From 49ede7983ab83a5ce37df87bb9f3264016e4e707 Mon Sep 17 00:00:00 2001 From: SDKAuto Date: Wed, 11 May 2022 00:16:06 +0000 Subject: [PATCH] CodeGen from PR 18856 in Azure/azure-rest-api-specs Azure Event Grid 2021-12-01: Add missing isDataAction property from operation resource to address s360 LPI (#18856) * Fix missing property * fix issecret Co-authored-by: Ashraf Hamad --- swaggerci/eventgrid/.gitattributes | 1 + swaggerci/eventgrid/.gitignore | 5 + swaggerci/eventgrid/Az.EventGrid.csproj | 43 + .../eventgrid/Az.EventGrid.format.ps1xml | 5071 +++ swaggerci/eventgrid/Az.EventGrid.nuspec | 32 + swaggerci/eventgrid/Az.EventGrid.psd1 | 24 + swaggerci/eventgrid/Az.EventGrid.psm1 | 107 + swaggerci/eventgrid/MSSharedLibKey.snk | Bin 0 -> 160 bytes swaggerci/eventgrid/README.md | 27 + swaggerci/eventgrid/build-module.ps1 | 153 + swaggerci/eventgrid/check-dependencies.ps1 | 57 + swaggerci/eventgrid/create-model-cmdlets.ps1 | 163 + .../eventgrid/custom/Az.EventGrid.custom.psm1 | 17 + swaggerci/eventgrid/custom/README.md | 41 + swaggerci/eventgrid/docs/Az.EventGrid.md | 312 + .../eventgrid/docs/Get-AzEventGridChannel.md | 254 + .../docs/Get-AzEventGridChannelFullUrl.md | 243 + .../eventgrid/docs/Get-AzEventGridDomain.md | 245 + .../Get-AzEventGridDomainEventSubscription.md | 219 + ...omainEventSubscriptionDeliveryAttribute.md | 243 + ...EventGridDomainEventSubscriptionFullUrl.md | 243 + .../Get-AzEventGridDomainSharedAccessKey.md | 171 + .../docs/Get-AzEventGridDomainTopic.md | 254 + ...AzEventGridDomainTopicEventSubscription.md | 234 + ...TopicEventSubscriptionDeliveryAttribute.md | 258 + ...GridDomainTopicEventSubscriptionFullUrl.md | 258 + .../docs/Get-AzEventGridEventChannel.md | 255 + .../docs/Get-AzEventGridEventSubscription.md | 339 + ...tGridEventSubscriptionDeliveryAttribute.md | 213 + ...Get-AzEventGridEventSubscriptionFullUrl.md | 213 + .../Get-AzEventGridEventSubscriptionGlobal.md | 196 + ...et-AzEventGridEventSubscriptionRegional.md | 213 + .../docs/Get-AzEventGridExtensionTopic.md | 166 + .../Get-AzEventGridPartnerConfiguration.md | 230 + .../docs/Get-AzEventGridPartnerDestination.md | 245 + .../docs/Get-AzEventGridPartnerNamespace.md | 245 + ...ventGridPartnerNamespaceSharedAccessKey.md | 171 + .../Get-AzEventGridPartnerRegistration.md | 245 + .../docs/Get-AzEventGridPartnerTopic.md | 245 + ...zEventGridPartnerTopicEventSubscription.md | 257 + ...TopicEventSubscriptionDeliveryAttribute.md | 244 + ...ridPartnerTopicEventSubscriptionFullUrl.md | 244 + ...et-AzEventGridPrivateEndpointConnection.md | 272 + .../Get-AzEventGridPrivateLinkResource.md | 272 + .../docs/Get-AzEventGridSystemTopic.md | 245 + ...AzEventGridSystemTopicEventSubscription.md | 257 + ...TopicEventSubscriptionDeliveryAttribute.md | 244 + ...GridSystemTopicEventSubscriptionFullUrl.md | 244 + .../eventgrid/docs/Get-AzEventGridTopic.md | 245 + .../Get-AzEventGridTopicEventSubscription.md | 219 + ...TopicEventSubscriptionDeliveryAttribute.md | 243 + ...zEventGridTopicEventSubscriptionFullUrl.md | 243 + .../docs/Get-AzEventGridTopicEventType.md | 170 + .../Get-AzEventGridTopicSharedAccessKey.md | 171 + .../docs/Get-AzEventGridTopicType.md | 169 + .../docs/Get-AzEventGridTopicTypeEventType.md | 108 + .../docs/Get-AzEventGridVerifiedPartner.md | 207 + ...-AzEventGridPartnerConfigurationPartner.md | 298 + ...nitialize-AzEventGridPartnerDestination.md | 227 + .../Initialize-AzEventGridPartnerTopic.md | 227 + ...nvoke-AzEventGridDeactivatePartnerTopic.md | 227 + ...ventGridPartnerConfigurationUnauthorize.md | 298 + .../eventgrid/docs/New-AzEventGridChannel.md | 452 + .../eventgrid/docs/New-AzEventGridDomain.md | 440 + .../New-AzEventGridDomainEventSubscription.md | 497 + .../docs/New-AzEventGridDomainKey.md | 276 + ...AzEventGridDomainTopicEventSubscription.md | 512 + .../docs/New-AzEventGridEventChannel.md | 324 + .../docs/New-AzEventGridEventSubscription.md | 467 + .../New-AzEventGridPartnerConfiguration.md | 276 + .../docs/New-AzEventGridPartnerDestination.md | 310 + .../docs/New-AzEventGridPartnerNamespace.md | 324 + .../New-AzEventGridPartnerNamespaceKey.md | 278 + .../New-AzEventGridPartnerRegistration.md | 441 + .../docs/New-AzEventGridPartnerTopic.md | 392 + ...zEventGridPartnerTopicEventSubscription.md | 499 + .../docs/New-AzEventGridSystemTopic.md | 326 + ...AzEventGridSystemTopicEventSubscription.md | 499 + .../eventgrid/docs/New-AzEventGridTopic.md | 449 + .../New-AzEventGridTopicEventSubscription.md | 497 + .../eventgrid/docs/New-AzEventGridTopicKey.md | 307 + swaggerci/eventgrid/docs/README.md | 11 + .../docs/Remove-AzEventGridChannel.md | 273 + .../docs/Remove-AzEventGridDomain.md | 257 + ...move-AzEventGridDomainEventSubscription.md | 274 + .../docs/Remove-AzEventGridDomainTopic.md | 273 + ...AzEventGridDomainTopicEventSubscription.md | 289 + .../docs/Remove-AzEventGridEventChannel.md | 273 + .../Remove-AzEventGridEventSubscription.md | 243 + .../Remove-AzEventGridPartnerConfiguration.md | 242 + .../Remove-AzEventGridPartnerDestination.md | 257 + .../Remove-AzEventGridPartnerNamespace.md | 257 + .../Remove-AzEventGridPartnerRegistration.md | 257 + .../docs/Remove-AzEventGridPartnerTopic.md | 257 + ...zEventGridPartnerTopicEventSubscription.md | 274 + ...ve-AzEventGridPrivateEndpointConnection.md | 289 + .../docs/Remove-AzEventGridSystemTopic.md | 257 + ...AzEventGridSystemTopicEventSubscription.md | 274 + .../eventgrid/docs/Remove-AzEventGridTopic.md | 257 + ...emove-AzEventGridTopicEventSubscription.md | 274 + .../docs/Update-AzEventGridChannel.md | 292 + .../docs/Update-AzEventGridDomain.md | 467 + ...date-AzEventGridDomainEventSubscription.md | 558 + ...AzEventGridDomainTopicEventSubscription.md | 573 + .../Update-AzEventGridEventSubscription.md | 528 + .../Update-AzEventGridPartnerConfiguration.md | 275 + .../Update-AzEventGridPartnerDestination.md | 242 + .../Update-AzEventGridPartnerNamespace.md | 330 + .../Update-AzEventGridPartnerRegistration.md | 370 + .../docs/Update-AzEventGridPartnerTopic.md | 308 + ...zEventGridPartnerTopicEventSubscription.md | 559 + .../docs/Update-AzEventGridSystemTopic.md | 339 + ...AzEventGridSystemTopicEventSubscription.md | 559 + .../eventgrid/docs/Update-AzEventGridTopic.md | 429 + ...pdate-AzEventGridTopicEventSubscription.md | 558 + .../examples/Get-AzEventGridChannel.md | 22 + .../examples/Get-AzEventGridChannelFullUrl.md | 22 + .../examples/Get-AzEventGridDomain.md | 22 + .../Get-AzEventGridDomainEventSubscription.md | 22 + ...omainEventSubscriptionDeliveryAttribute.md | 22 + ...EventGridDomainEventSubscriptionFullUrl.md | 22 + .../Get-AzEventGridDomainSharedAccessKey.md | 22 + .../examples/Get-AzEventGridDomainTopic.md | 22 + ...AzEventGridDomainTopicEventSubscription.md | 22 + ...TopicEventSubscriptionDeliveryAttribute.md | 22 + ...GridDomainTopicEventSubscriptionFullUrl.md | 22 + .../examples/Get-AzEventGridEventChannel.md | 22 + .../Get-AzEventGridEventSubscription.md | 22 + ...tGridEventSubscriptionDeliveryAttribute.md | 22 + ...Get-AzEventGridEventSubscriptionFullUrl.md | 22 + .../Get-AzEventGridEventSubscriptionGlobal.md | 22 + ...et-AzEventGridEventSubscriptionRegional.md | 22 + .../examples/Get-AzEventGridExtensionTopic.md | 22 + .../Get-AzEventGridPartnerConfiguration.md | 22 + .../Get-AzEventGridPartnerDestination.md | 22 + .../Get-AzEventGridPartnerNamespace.md | 22 + ...ventGridPartnerNamespaceSharedAccessKey.md | 22 + .../Get-AzEventGridPartnerRegistration.md | 22 + .../examples/Get-AzEventGridPartnerTopic.md | 22 + ...zEventGridPartnerTopicEventSubscription.md | 22 + ...TopicEventSubscriptionDeliveryAttribute.md | 22 + ...ridPartnerTopicEventSubscriptionFullUrl.md | 22 + ...et-AzEventGridPrivateEndpointConnection.md | 22 + .../Get-AzEventGridPrivateLinkResource.md | 22 + .../examples/Get-AzEventGridSystemTopic.md | 22 + ...AzEventGridSystemTopicEventSubscription.md | 22 + ...TopicEventSubscriptionDeliveryAttribute.md | 22 + ...GridSystemTopicEventSubscriptionFullUrl.md | 22 + .../examples/Get-AzEventGridTopic.md | 22 + .../Get-AzEventGridTopicEventSubscription.md | 22 + ...TopicEventSubscriptionDeliveryAttribute.md | 22 + ...zEventGridTopicEventSubscriptionFullUrl.md | 22 + .../examples/Get-AzEventGridTopicEventType.md | 22 + .../Get-AzEventGridTopicSharedAccessKey.md | 22 + .../examples/Get-AzEventGridTopicType.md | 22 + .../Get-AzEventGridTopicTypeEventType.md | 22 + .../Get-AzEventGridVerifiedPartner.md | 22 + ...-AzEventGridPartnerConfigurationPartner.md | 22 + ...nitialize-AzEventGridPartnerDestination.md | 22 + .../Initialize-AzEventGridPartnerTopic.md | 22 + ...nvoke-AzEventGridDeactivatePartnerTopic.md | 22 + ...ventGridPartnerConfigurationUnauthorize.md | 22 + .../examples/New-AzEventGridChannel.md | 22 + .../examples/New-AzEventGridDomain.md | 22 + .../New-AzEventGridDomainEventSubscription.md | 22 + .../examples/New-AzEventGridDomainKey.md | 22 + ...AzEventGridDomainTopicEventSubscription.md | 22 + .../examples/New-AzEventGridEventChannel.md | 22 + .../New-AzEventGridEventSubscription.md | 22 + .../New-AzEventGridPartnerConfiguration.md | 22 + .../New-AzEventGridPartnerDestination.md | 22 + .../New-AzEventGridPartnerNamespace.md | 22 + .../New-AzEventGridPartnerNamespaceKey.md | 22 + .../New-AzEventGridPartnerRegistration.md | 22 + .../examples/New-AzEventGridPartnerTopic.md | 22 + ...zEventGridPartnerTopicEventSubscription.md | 22 + .../examples/New-AzEventGridSystemTopic.md | 22 + ...AzEventGridSystemTopicEventSubscription.md | 22 + .../examples/New-AzEventGridTopic.md | 22 + .../New-AzEventGridTopicEventSubscription.md | 22 + .../examples/New-AzEventGridTopicKey.md | 22 + .../examples/Remove-AzEventGridChannel.md | 22 + .../examples/Remove-AzEventGridDomain.md | 22 + ...move-AzEventGridDomainEventSubscription.md | 22 + .../examples/Remove-AzEventGridDomainTopic.md | 22 + ...AzEventGridDomainTopicEventSubscription.md | 22 + .../Remove-AzEventGridEventChannel.md | 22 + .../Remove-AzEventGridEventSubscription.md | 22 + .../Remove-AzEventGridPartnerConfiguration.md | 22 + .../Remove-AzEventGridPartnerDestination.md | 22 + .../Remove-AzEventGridPartnerNamespace.md | 22 + .../Remove-AzEventGridPartnerRegistration.md | 22 + .../Remove-AzEventGridPartnerTopic.md | 22 + ...zEventGridPartnerTopicEventSubscription.md | 22 + ...ve-AzEventGridPrivateEndpointConnection.md | 22 + .../examples/Remove-AzEventGridSystemTopic.md | 22 + ...AzEventGridSystemTopicEventSubscription.md | 22 + .../examples/Remove-AzEventGridTopic.md | 22 + ...emove-AzEventGridTopicEventSubscription.md | 22 + .../examples/Update-AzEventGridChannel.md | 22 + .../examples/Update-AzEventGridDomain.md | 22 + ...date-AzEventGridDomainEventSubscription.md | 22 + ...AzEventGridDomainTopicEventSubscription.md | 22 + .../Update-AzEventGridEventSubscription.md | 22 + .../Update-AzEventGridPartnerConfiguration.md | 22 + .../Update-AzEventGridPartnerDestination.md | 22 + .../Update-AzEventGridPartnerNamespace.md | 22 + .../Update-AzEventGridPartnerRegistration.md | 22 + .../Update-AzEventGridPartnerTopic.md | 22 + ...zEventGridPartnerTopicEventSubscription.md | 22 + .../examples/Update-AzEventGridSystemTopic.md | 22 + ...AzEventGridSystemTopicEventSubscription.md | 22 + .../examples/Update-AzEventGridTopic.md | 22 + ...pdate-AzEventGridTopicEventSubscription.md | 22 + swaggerci/eventgrid/export-surface.ps1 | 33 + .../exports/Get-AzEventGridChannel.ps1 | 248 + .../exports/Get-AzEventGridChannelFullUrl.ps1 | 224 + .../exports/Get-AzEventGridDomain.ps1 | 245 + ...Get-AzEventGridDomainEventSubscription.ps1 | 229 + ...mainEventSubscriptionDeliveryAttribute.ps1 | 224 + ...ventGridDomainEventSubscriptionFullUrl.ps1 | 224 + .../Get-AzEventGridDomainSharedAccessKey.ps1 | 177 + .../exports/Get-AzEventGridDomainTopic.ps1 | 248 + ...zEventGridDomainTopicEventSubscription.ps1 | 235 + ...opicEventSubscriptionDeliveryAttribute.ps1 | 230 + ...ridDomainTopicEventSubscriptionFullUrl.ps1 | 230 + .../exports/Get-AzEventGridEventChannel.ps1 | 248 + .../Get-AzEventGridEventSubscription.ps1 | 282 + ...GridEventSubscriptionDeliveryAttribute.ps1 | 209 + ...et-AzEventGridEventSubscriptionFullUrl.ps1 | 209 + ...Get-AzEventGridEventSubscriptionGlobal.ps1 | 201 + ...t-AzEventGridEventSubscriptionRegional.ps1 | 207 + .../exports/Get-AzEventGridExtensionTopic.ps1 | 203 + .../Get-AzEventGridPartnerConfiguration.ps1 | 236 + .../Get-AzEventGridPartnerDestination.ps1 | 245 + .../Get-AzEventGridPartnerNamespace.ps1 | 245 + ...entGridPartnerNamespaceSharedAccessKey.ps1 | 177 + .../Get-AzEventGridPartnerRegistration.ps1 | 245 + .../exports/Get-AzEventGridPartnerTopic.ps1 | 245 + ...EventGridPartnerTopicEventSubscription.ps1 | 248 + ...opicEventSubscriptionDeliveryAttribute.ps1 | 225 + ...idPartnerTopicEventSubscriptionFullUrl.ps1 | 225 + ...t-AzEventGridPrivateEndpointConnection.ps1 | 257 + .../Get-AzEventGridPrivateLinkResource.ps1 | 256 + .../exports/Get-AzEventGridSystemTopic.ps1 | 245 + ...zEventGridSystemTopicEventSubscription.ps1 | 248 + ...opicEventSubscriptionDeliveryAttribute.ps1 | 225 + ...ridSystemTopicEventSubscriptionFullUrl.ps1 | 225 + .../exports/Get-AzEventGridTopic.ps1 | 245 + .../Get-AzEventGridTopicEventSubscription.ps1 | 229 + ...opicEventSubscriptionDeliveryAttribute.ps1 | 224 + ...EventGridTopicEventSubscriptionFullUrl.ps1 | 224 + .../exports/Get-AzEventGridTopicEventType.ps1 | 189 + .../Get-AzEventGridTopicSharedAccessKey.ps1 | 177 + .../exports/Get-AzEventGridTopicType.ps1 | 203 + .../Get-AzEventGridTopicTypeEventType.ps1 | 160 + .../Get-AzEventGridVerifiedPartner.ps1 | 222 + ...AzEventGridPartnerConfigurationPartner.ps1 | 255 + ...itialize-AzEventGridPartnerDestination.ps1 | 219 + .../Initialize-AzEventGridPartnerTopic.ps1 | 219 + ...voke-AzEventGridDeactivatePartnerTopic.ps1 | 218 + ...entGridPartnerConfigurationUnauthorize.ps1 | 255 + .../exports/New-AzEventGridChannel.ps1 | 303 + .../exports/New-AzEventGridDomain.ps1 | 306 + ...New-AzEventGridDomainEventSubscription.ps1 | 320 + .../exports/New-AzEventGridDomainKey.ps1 | 244 + ...zEventGridDomainTopicEventSubscription.ps1 | 326 + .../exports/New-AzEventGridEventChannel.ps1 | 247 + .../New-AzEventGridEventSubscription.ps1 | 306 + .../New-AzEventGridPartnerConfiguration.ps1 | 228 + .../New-AzEventGridPartnerDestination.ps1 | 236 + .../New-AzEventGridPartnerNamespace.ps1 | 251 + .../New-AzEventGridPartnerNamespaceKey.ps1 | 244 + .../New-AzEventGridPartnerRegistration.ps1 | 293 + .../exports/New-AzEventGridPartnerTopic.ps1 | 275 + ...EventGridPartnerTopicEventSubscription.ps1 | 322 + .../exports/New-AzEventGridSystemTopic.ps1 | 244 + ...zEventGridSystemTopicEventSubscription.ps1 | 322 + .../exports/New-AzEventGridTopic.ps1 | 307 + .../New-AzEventGridTopicEventSubscription.ps1 | 320 + .../exports/New-AzEventGridTopicKey.ps1 | 256 + .../exports/ProxyCmdletDefinitions.ps1 | 24084 +++++++++++++ swaggerci/eventgrid/exports/README.md | 20 + .../exports/Remove-AzEventGridChannel.ps1 | 237 + .../exports/Remove-AzEventGridDomain.ps1 | 231 + ...ove-AzEventGridDomainEventSubscription.ps1 | 237 + .../exports/Remove-AzEventGridDomainTopic.ps1 | 237 + ...zEventGridDomainTopicEventSubscription.ps1 | 243 + .../Remove-AzEventGridEventChannel.ps1 | 237 + .../Remove-AzEventGridEventSubscription.ps1 | 222 + ...Remove-AzEventGridPartnerConfiguration.ps1 | 224 + .../Remove-AzEventGridPartnerDestination.ps1 | 231 + .../Remove-AzEventGridPartnerNamespace.ps1 | 231 + .../Remove-AzEventGridPartnerRegistration.ps1 | 231 + .../Remove-AzEventGridPartnerTopic.ps1 | 231 + ...EventGridPartnerTopicEventSubscription.ps1 | 237 + ...e-AzEventGridPrivateEndpointConnection.ps1 | 245 + .../exports/Remove-AzEventGridSystemTopic.ps1 | 231 + ...zEventGridSystemTopicEventSubscription.ps1 | 237 + .../exports/Remove-AzEventGridTopic.ps1 | 231 + ...move-AzEventGridTopicEventSubscription.ps1 | 237 + .../exports/Update-AzEventGridChannel.ps1 | 247 + .../exports/Update-AzEventGridDomain.ps1 | 331 + ...ate-AzEventGridDomainEventSubscription.ps1 | 356 + ...zEventGridDomainTopicEventSubscription.ps1 | 362 + .../Update-AzEventGridEventSubscription.ps1 | 342 + ...Update-AzEventGridPartnerConfiguration.ps1 | 238 + .../Update-AzEventGridPartnerDestination.ps1 | 226 + .../Update-AzEventGridPartnerNamespace.ps1 | 268 + .../Update-AzEventGridPartnerRegistration.ps1 | 277 + .../Update-AzEventGridPartnerTopic.ps1 | 255 + ...EventGridPartnerTopicEventSubscription.ps1 | 357 + .../exports/Update-AzEventGridSystemTopic.ps1 | 267 + ...zEventGridSystemTopicEventSubscription.ps1 | 357 + .../exports/Update-AzEventGridTopic.ps1 | 312 + ...date-AzEventGridTopicEventSubscription.ps1 | 356 + swaggerci/eventgrid/generate-help.ps1 | 66 + swaggerci/eventgrid/generated/Module.cs | 181 + .../api/EventGridManagementClient.cs | 29644 ++++++++++++++++ .../generated/api/Models/Any.PowerShell.cs | 134 + .../generated/api/Models/Any.TypeConverter.cs | 146 + .../eventgrid/generated/api/Models/Any.cs | 34 + .../generated/api/Models/Any.json.cs | 102 + .../api/Models/Api20/SystemData.PowerShell.cs | 182 + .../Models/Api20/SystemData.TypeConverter.cs | 146 + .../generated/api/Models/Api20/SystemData.cs | 136 + .../api/Models/Api20/SystemData.json.cs | 116 + .../AdvancedFilter.PowerShell.cs | 156 + .../AdvancedFilter.TypeConverter.cs | 146 + .../Api20211015Preview/AdvancedFilter.cs | 82 + .../Api20211015Preview/AdvancedFilter.json.cs | 199 + ...dPartnerClientAuthentication.PowerShell.cs | 170 + ...rtnerClientAuthentication.TypeConverter.cs | 148 + .../AzureAdPartnerClientAuthentication.cs | 115 + ...AzureAdPartnerClientAuthentication.json.cs | 109 + ...ientAuthenticationProperties.PowerShell.cs | 155 + ...tAuthenticationProperties.TypeConverter.cs | 150 + ...AdPartnerClientAuthenticationProperties.cs | 87 + ...tnerClientAuthenticationProperties.json.cs | 111 + ...EventSubscriptionDestination.PowerShell.cs | 187 + ...ntSubscriptionDestination.TypeConverter.cs | 150 + ...ureFunctionEventSubscriptionDestination.cs | 133 + ...nctionEventSubscriptionDestination.json.cs | 110 + ...riptionDestinationProperties.PowerShell.cs | 173 + ...tionDestinationProperties.TypeConverter.cs | 152 + ...nEventSubscriptionDestinationProperties.cs | 112 + ...tSubscriptionDestinationProperties.json.cs | 125 + .../BoolEqualsAdvancedFilter.PowerShell.cs | 160 + .../BoolEqualsAdvancedFilter.TypeConverter.cs | 147 + .../BoolEqualsAdvancedFilter.cs | 80 + .../BoolEqualsAdvancedFilter.json.cs | 108 + .../Api20211015Preview/Channel.PowerShell.cs | 382 + .../Channel.TypeConverter.cs | 146 + .../api/Models/Api20211015Preview/Channel.cs | 537 + .../Models/Api20211015Preview/Channel.json.cs | 113 + .../ChannelProperties.PowerShell.cs | 294 + .../ChannelProperties.TypeConverter.cs | 146 + .../Api20211015Preview/ChannelProperties.cs | 424 + .../ChannelProperties.json.cs | 118 + .../ChannelUpdateParameters.PowerShell.cs | 200 + .../ChannelUpdateParameters.TypeConverter.cs | 147 + .../ChannelUpdateParameters.cs | 157 + .../ChannelUpdateParameters.json.cs | 106 + ...elUpdateParametersProperties.PowerShell.cs | 194 + ...pdateParametersProperties.TypeConverter.cs | 147 + .../ChannelUpdateParametersProperties.cs | 166 + .../ChannelUpdateParametersProperties.json.cs | 110 + .../ChannelsListResult.PowerShell.cs | 152 + .../ChannelsListResult.TypeConverter.cs | 147 + .../Api20211015Preview/ChannelsListResult.cs | 68 + .../ChannelsListResult.json.cs | 116 + .../ConnectionState.PowerShell.cs | 158 + .../ConnectionState.TypeConverter.cs | 146 + .../Api20211015Preview/ConnectionState.cs | 85 + .../ConnectionState.json.cs | 110 + .../DeadLetterDestination.PowerShell.cs | 150 + .../DeadLetterDestination.TypeConverter.cs | 147 + .../DeadLetterDestination.cs | 62 + .../DeadLetterDestination.json.cs | 125 + ...adLetterWithResourceIdentity.PowerShell.cs | 176 + ...etterWithResourceIdentity.TypeConverter.cs | 147 + .../DeadLetterWithResourceIdentity.cs | 120 + .../DeadLetterWithResourceIdentity.json.cs | 108 + .../DeliveryAttributeListResult.PowerShell.cs | 144 + ...liveryAttributeListResult.TypeConverter.cs | 147 + .../DeliveryAttributeListResult.cs | 51 + .../DeliveryAttributeListResult.json.cs | 114 + .../DeliveryAttributeMapping.PowerShell.cs | 152 + .../DeliveryAttributeMapping.TypeConverter.cs | 147 + .../DeliveryAttributeMapping.cs | 68 + .../DeliveryAttributeMapping.json.cs | 127 + ...DeliveryWithResourceIdentity.PowerShell.cs | 178 + ...iveryWithResourceIdentity.TypeConverter.cs | 147 + .../DeliveryWithResourceIdentity.cs | 117 + .../DeliveryWithResourceIdentity.json.cs | 110 + .../Api20211015Preview/Domain.PowerShell.cs | 398 + .../Domain.TypeConverter.cs | 146 + .../api/Models/Api20211015Preview/Domain.cs | 639 + .../Models/Api20211015Preview/Domain.json.cs | 117 + .../DomainProperties.PowerShell.cs | 238 + .../DomainProperties.TypeConverter.cs | 146 + .../Api20211015Preview/DomainProperties.cs | 405 + .../DomainProperties.json.cs | 156 + .../DomainRegenerateKeyRequest.PowerShell.cs | 144 + ...omainRegenerateKeyRequest.TypeConverter.cs | 147 + .../DomainRegenerateKeyRequest.cs | 51 + .../DomainRegenerateKeyRequest.json.cs | 106 + .../DomainSharedAccessKeys.PowerShell.cs | 152 + .../DomainSharedAccessKeys.TypeConverter.cs | 147 + .../DomainSharedAccessKeys.cs | 68 + .../DomainSharedAccessKeys.json.cs | 108 + .../DomainTopic.PowerShell.cs | 230 + .../DomainTopic.TypeConverter.cs | 146 + .../Models/Api20211015Preview/DomainTopic.cs | 199 + .../Api20211015Preview/DomainTopic.json.cs | 116 + .../DomainTopicProperties.PowerShell.cs | 144 + .../DomainTopicProperties.TypeConverter.cs | 147 + .../DomainTopicProperties.cs | 54 + .../DomainTopicProperties.json.cs | 109 + .../DomainTopicsListResult.PowerShell.cs | 152 + .../DomainTopicsListResult.TypeConverter.cs | 147 + .../DomainTopicsListResult.cs | 68 + .../DomainTopicsListResult.json.cs | 116 + ...ainUpdateParameterProperties.PowerShell.cs | 184 + ...UpdateParameterProperties.TypeConverter.cs | 147 + .../DomainUpdateParameterProperties.cs | 263 + .../DomainUpdateParameterProperties.json.cs | 124 + .../DomainUpdateParameters.PowerShell.cs | 256 + .../DomainUpdateParameters.TypeConverter.cs | 147 + .../DomainUpdateParameters.cs | 394 + .../DomainUpdateParameters.json.cs | 112 + .../DomainUpdateParametersTags.PowerShell.cs | 140 + ...omainUpdateParametersTags.TypeConverter.cs | 147 + .../DomainUpdateParametersTags.cs | 35 + .../DomainUpdateParametersTags.dictionary.cs | 75 + .../DomainUpdateParametersTags.json.cs | 107 + .../DomainsListResult.PowerShell.cs | 150 + .../DomainsListResult.TypeConverter.cs | 146 + .../Api20211015Preview/DomainsListResult.cs | 68 + .../DomainsListResult.json.cs | 116 + ...amicDeliveryAttributeMapping.PowerShell.cs | 168 + ...cDeliveryAttributeMapping.TypeConverter.cs | 147 + .../DynamicDeliveryAttributeMapping.cs | 87 + .../DynamicDeliveryAttributeMapping.json.cs | 108 + ...ryAttributeMappingProperties.PowerShell.cs | 147 + ...ttributeMappingProperties.TypeConverter.cs | 150 + ...namicDeliveryAttributeMappingProperties.cs | 53 + ...DeliveryAttributeMappingProperties.json.cs | 108 + .../EventChannel.PowerShell.cs | 326 + .../EventChannel.TypeConverter.cs | 146 + .../Models/Api20211015Preview/EventChannel.cs | 407 + .../Api20211015Preview/EventChannel.json.cs | 113 + .../EventChannelDestination.PowerShell.cs | 160 + .../EventChannelDestination.TypeConverter.cs | 147 + .../EventChannelDestination.cs | 105 + .../EventChannelDestination.json.cs | 110 + .../EventChannelFilter.PowerShell.cs | 152 + .../EventChannelFilter.TypeConverter.cs | 147 + .../Api20211015Preview/EventChannelFilter.cs | 77 + .../EventChannelFilter.json.cs | 116 + .../EventChannelProperties.PowerShell.cs | 240 + .../EventChannelProperties.TypeConverter.cs | 147 + .../EventChannelProperties.cs | 294 + .../EventChannelProperties.json.cs | 124 + .../EventChannelSource.PowerShell.cs | 144 + .../EventChannelSource.TypeConverter.cs | 147 + .../Api20211015Preview/EventChannelSource.cs | 61 + .../EventChannelSource.json.cs | 106 + .../EventChannelsListResult.PowerShell.cs | 152 + .../EventChannelsListResult.TypeConverter.cs | 147 + .../EventChannelsListResult.cs | 68 + .../EventChannelsListResult.json.cs | 116 + ...EventSubscriptionDestination.PowerShell.cs | 170 + ...ntSubscriptionDestination.TypeConverter.cs | 149 + .../EventHubEventSubscriptionDestination.cs | 103 + ...entHubEventSubscriptionDestination.json.cs | 109 + ...riptionDestinationProperties.PowerShell.cs | 155 + ...tionDestinationProperties.TypeConverter.cs | 150 + ...bEventSubscriptionDestinationProperties.cs | 76 + ...tSubscriptionDestinationProperties.json.cs | 119 + .../EventSubscription.PowerShell.cs | 470 + .../EventSubscription.TypeConverter.cs | 146 + .../Api20211015Preview/EventSubscription.cs | 632 + .../EventSubscription.json.cs | 113 + ...EventSubscriptionDestination.PowerShell.cs | 144 + ...ntSubscriptionDestination.TypeConverter.cs | 147 + .../EventSubscriptionDestination.cs | 51 + .../EventSubscriptionDestination.json.cs | 149 + .../EventSubscriptionFilter.PowerShell.cs | 184 + .../EventSubscriptionFilter.TypeConverter.cs | 147 + .../EventSubscriptionFilter.cs | 185 + .../EventSubscriptionFilter.json.cs | 132 + .../EventSubscriptionFullUrl.PowerShell.cs | 144 + .../EventSubscriptionFullUrl.TypeConverter.cs | 147 + .../EventSubscriptionFullUrl.cs | 57 + .../EventSubscriptionFullUrl.json.cs | 106 + .../EventSubscriptionIdentity.PowerShell.cs | 152 + ...EventSubscriptionIdentity.TypeConverter.cs | 147 + .../EventSubscriptionIdentity.cs | 77 + .../EventSubscriptionIdentity.json.cs | 108 + .../EventSubscriptionProperties.PowerShell.cs | 384 + ...entSubscriptionProperties.TypeConverter.cs | 147 + .../EventSubscriptionProperties.cs | 559 + .../EventSubscriptionProperties.json.cs | 140 + ...SubscriptionUpdateParameters.PowerShell.cs | 370 + ...scriptionUpdateParameters.TypeConverter.cs | 147 + .../EventSubscriptionUpdateParameters.cs | 519 + .../EventSubscriptionUpdateParameters.json.cs | 130 + ...EventSubscriptionsListResult.PowerShell.cs | 152 + ...ntSubscriptionsListResult.TypeConverter.cs | 147 + .../EventSubscriptionsListResult.cs | 68 + .../EventSubscriptionsListResult.json.cs | 116 + .../EventType.PowerShell.cs | 198 + .../EventType.TypeConverter.cs | 146 + .../Models/Api20211015Preview/EventType.cs | 142 + .../Api20211015Preview/EventType.json.cs | 108 + .../EventTypeInfo.PowerShell.cs | 150 + .../EventTypeInfo.TypeConverter.cs | 146 + .../Api20211015Preview/EventTypeInfo.cs | 88 + .../Api20211015Preview/EventTypeInfo.json.cs | 108 + ...ventTypeInfoInlineEventTypes.PowerShell.cs | 150 + ...tTypeInfoInlineEventTypes.TypeConverter.cs | 147 + .../EventTypeInfoInlineEventTypes.cs | 49 + ...ventTypeInfoInlineEventTypes.dictionary.cs | 75 + .../EventTypeInfoInlineEventTypes.json.cs | 113 + .../EventTypeProperties.PowerShell.cs | 168 + .../EventTypeProperties.TypeConverter.cs | 147 + .../Api20211015Preview/EventTypeProperties.cs | 102 + .../EventTypeProperties.json.cs | 112 + .../EventTypesListResult.PowerShell.cs | 144 + .../EventTypesListResult.TypeConverter.cs | 147 + .../EventTypesListResult.cs | 51 + .../EventTypesListResult.json.cs | 114 + .../ExtendedLocation.PowerShell.cs | 150 + .../ExtendedLocation.TypeConverter.cs | 146 + .../Api20211015Preview/ExtendedLocation.cs | 68 + .../ExtendedLocation.json.cs | 108 + .../ExtensionTopic.PowerShell.cs | 240 + .../ExtensionTopic.TypeConverter.cs | 146 + .../Api20211015Preview/ExtensionTopic.cs | 212 + .../Api20211015Preview/ExtensionTopic.json.cs | 115 + .../ExtensionTopicProperties.PowerShell.cs | 152 + .../ExtensionTopicProperties.TypeConverter.cs | 147 + .../ExtensionTopicProperties.cs | 68 + .../ExtensionTopicProperties.json.cs | 108 + ...EventSubscriptionDestination.PowerShell.cs | 171 + ...ntSubscriptionDestination.TypeConverter.cs | 150 + ...dConnectionEventSubscriptionDestination.cs | 105 + ...ectionEventSubscriptionDestination.json.cs | 111 + ...riptionDestinationProperties.PowerShell.cs | 155 + ...tionDestinationProperties.TypeConverter.cs | 152 + ...nEventSubscriptionDestinationProperties.cs | 76 + ...tSubscriptionDestinationProperties.json.cs | 119 + .../IdentityInfo.PowerShell.cs | 166 + .../IdentityInfo.TypeConverter.cs | 146 + .../Models/Api20211015Preview/IdentityInfo.cs | 128 + .../Api20211015Preview/IdentityInfo.json.cs | 112 + ...tyInfoUserAssignedIdentities.PowerShell.cs | 150 + ...nfoUserAssignedIdentities.TypeConverter.cs | 148 + .../IdentityInfoUserAssignedIdentities.cs | 46 + ...tyInfoUserAssignedIdentities.dictionary.cs | 75 + ...IdentityInfoUserAssignedIdentities.json.cs | 113 + .../InboundIPRule.PowerShell.cs | 148 + .../InboundIPRule.TypeConverter.cs | 146 + .../Api20211015Preview/InboundIPRule.cs | 65 + .../Api20211015Preview/InboundIPRule.json.cs | 107 + .../InlineEventProperties.PowerShell.cs | 160 + .../InlineEventProperties.TypeConverter.cs | 147 + .../InlineEventProperties.cs | 85 + .../InlineEventProperties.json.cs | 110 + .../InputSchemaMapping.PowerShell.cs | 148 + .../InputSchemaMapping.TypeConverter.cs | 147 + .../Api20211015Preview/InputSchemaMapping.cs | 59 + .../InputSchemaMapping.json.cs | 124 + .../IsNotNullAdvancedFilter.PowerShell.cs | 152 + .../IsNotNullAdvancedFilter.TypeConverter.cs | 147 + .../IsNotNullAdvancedFilter.cs | 63 + .../IsNotNullAdvancedFilter.json.cs | 106 + ...ullOrUndefinedAdvancedFilter.PowerShell.cs | 152 + ...OrUndefinedAdvancedFilter.TypeConverter.cs | 147 + .../IsNullOrUndefinedAdvancedFilter.cs | 63 + .../IsNullOrUndefinedAdvancedFilter.json.cs | 106 + .../JsonField.PowerShell.cs | 148 + .../JsonField.TypeConverter.cs | 146 + .../Models/Api20211015Preview/JsonField.cs | 65 + .../Api20211015Preview/JsonField.json.cs | 110 + .../JsonFieldWithDefault.PowerShell.cs | 160 + .../JsonFieldWithDefault.TypeConverter.cs | 147 + .../JsonFieldWithDefault.cs | 94 + .../JsonFieldWithDefault.json.cs | 113 + .../JsonInputSchemaMapping.PowerShell.cs | 276 + .../JsonInputSchemaMapping.TypeConverter.cs | 147 + .../JsonInputSchemaMapping.cs | 296 + .../JsonInputSchemaMapping.json.cs | 111 + ...InputSchemaMappingProperties.PowerShell.cs | 260 + ...utSchemaMappingProperties.TypeConverter.cs | 147 + .../JsonInputSchemaMappingProperties.cs | 300 + .../JsonInputSchemaMappingProperties.json.cs | 119 + ...berGreaterThanAdvancedFilter.PowerShell.cs | 160 + ...GreaterThanAdvancedFilter.TypeConverter.cs | 147 + .../NumberGreaterThanAdvancedFilter.cs | 80 + .../NumberGreaterThanAdvancedFilter.json.cs | 108 + ...erThanOrEqualsAdvancedFilter.PowerShell.cs | 163 + ...hanOrEqualsAdvancedFilter.TypeConverter.cs | 150 + ...NumberGreaterThanOrEqualsAdvancedFilter.cs | 80 + ...rGreaterThanOrEqualsAdvancedFilter.json.cs | 110 + .../NumberInAdvancedFilter.PowerShell.cs | 160 + .../NumberInAdvancedFilter.TypeConverter.cs | 147 + .../NumberInAdvancedFilter.cs | 80 + .../NumberInAdvancedFilter.json.cs | 116 + .../NumberInRangeAdvancedFilter.PowerShell.cs | 160 + ...mberInRangeAdvancedFilter.TypeConverter.cs | 147 + .../NumberInRangeAdvancedFilter.cs | 80 + .../NumberInRangeAdvancedFilter.json.cs | 116 + ...NumberLessThanAdvancedFilter.PowerShell.cs | 160 + ...berLessThanAdvancedFilter.TypeConverter.cs | 147 + .../NumberLessThanAdvancedFilter.cs | 80 + .../NumberLessThanAdvancedFilter.json.cs | 108 + ...ssThanOrEqualsAdvancedFilter.PowerShell.cs | 162 + ...hanOrEqualsAdvancedFilter.TypeConverter.cs | 149 + .../NumberLessThanOrEqualsAdvancedFilter.cs | 80 + ...mberLessThanOrEqualsAdvancedFilter.json.cs | 109 + .../NumberNotInAdvancedFilter.PowerShell.cs | 160 + ...NumberNotInAdvancedFilter.TypeConverter.cs | 147 + .../NumberNotInAdvancedFilter.cs | 80 + .../NumberNotInAdvancedFilter.json.cs | 116 + ...mberNotInRangeAdvancedFilter.PowerShell.cs | 160 + ...rNotInRangeAdvancedFilter.TypeConverter.cs | 147 + .../NumberNotInRangeAdvancedFilter.cs | 80 + .../NumberNotInRangeAdvancedFilter.json.cs | 116 + .../Operation.PowerShell.cs | 206 + .../Operation.TypeConverter.cs | 146 + .../Models/Api20211015Preview/Operation.cs | 176 + .../Api20211015Preview/Operation.json.cs | 114 + .../OperationInfo.PowerShell.cs | 166 + .../OperationInfo.TypeConverter.cs | 146 + .../Api20211015Preview/OperationInfo.cs | 102 + .../Api20211015Preview/OperationInfo.json.cs | 112 + .../OperationsListResult.PowerShell.cs | 144 + .../OperationsListResult.TypeConverter.cs | 147 + .../OperationsListResult.cs | 51 + .../OperationsListResult.json.cs | 114 + .../Api20211015Preview/Partner.PowerShell.cs | 158 + .../Partner.TypeConverter.cs | 146 + .../api/Models/Api20211015Preview/Partner.cs | 108 + .../Models/Api20211015Preview/Partner.json.cs | 110 + .../PartnerAuthorization.PowerShell.cs | 152 + .../PartnerAuthorization.TypeConverter.cs | 147 + .../PartnerAuthorization.cs | 81 + .../PartnerAuthorization.json.cs | 116 + .../PartnerClientAuthentication.PowerShell.cs | 144 + ...rtnerClientAuthentication.TypeConverter.cs | 147 + .../PartnerClientAuthentication.cs | 54 + .../PartnerClientAuthentication.json.cs | 121 + .../PartnerConfiguration.PowerShell.cs | 272 + .../PartnerConfiguration.TypeConverter.cs | 147 + .../PartnerConfiguration.cs | 276 + .../PartnerConfiguration.json.cs | 117 + ...rtnerConfigurationProperties.PowerShell.cs | 168 + ...erConfigurationProperties.TypeConverter.cs | 147 + .../PartnerConfigurationProperties.cs | 104 + .../PartnerConfigurationProperties.json.cs | 108 + .../PartnerConfigurationTags.PowerShell.cs | 140 + .../PartnerConfigurationTags.TypeConverter.cs | 147 + .../PartnerConfigurationTags.cs | 35 + .../PartnerConfigurationTags.dictionary.cs | 75 + .../PartnerConfigurationTags.json.cs | 107 + ...ionUpdateParameterProperties.PowerShell.cs | 147 + ...UpdateParameterProperties.TypeConverter.cs | 150 + ...rConfigurationUpdateParameterProperties.cs | 62 + ...igurationUpdateParameterProperties.json.cs | 109 + ...onfigurationUpdateParameters.PowerShell.cs | 162 + ...igurationUpdateParameters.TypeConverter.cs | 149 + .../PartnerConfigurationUpdateParameters.cs | 86 + ...rtnerConfigurationUpdateParameters.json.cs | 109 + ...gurationUpdateParametersTags.PowerShell.cs | 143 + ...ationUpdateParametersTags.TypeConverter.cs | 150 + ...artnerConfigurationUpdateParametersTags.cs | 37 + ...gurationUpdateParametersTags.dictionary.cs | 75 + ...rConfigurationUpdateParametersTags.json.cs | 109 + ...tnerConfigurationsListResult.PowerShell.cs | 152 + ...rConfigurationsListResult.TypeConverter.cs | 147 + .../PartnerConfigurationsListResult.cs | 68 + .../PartnerConfigurationsListResult.json.cs | 116 + .../PartnerDestination.PowerShell.cs | 296 + .../PartnerDestination.TypeConverter.cs | 147 + .../Api20211015Preview/PartnerDestination.cs | 298 + .../PartnerDestination.json.cs | 113 + .../PartnerDestinationInfo.PowerShell.cs | 184 + .../PartnerDestinationInfo.TypeConverter.cs | 147 + .../PartnerDestinationInfo.cs | 159 + .../PartnerDestinationInfo.json.cs | 139 + ...PartnerDestinationProperties.PowerShell.cs | 192 + ...tnerDestinationProperties.TypeConverter.cs | 147 + .../PartnerDestinationProperties.cs | 163 + .../PartnerDestinationProperties.json.cs | 118 + ...rDestinationUpdateParameters.PowerShell.cs | 146 + ...stinationUpdateParameters.TypeConverter.cs | 148 + .../PartnerDestinationUpdateParameters.cs | 51 + ...PartnerDestinationUpdateParameters.json.cs | 107 + ...tinationUpdateParametersTags.PowerShell.cs | 143 + ...ationUpdateParametersTags.TypeConverter.cs | 150 + .../PartnerDestinationUpdateParametersTags.cs | 35 + ...tinationUpdateParametersTags.dictionary.cs | 75 + ...nerDestinationUpdateParametersTags.json.cs | 108 + ...artnerDestinationsListResult.PowerShell.cs | 152 + ...nerDestinationsListResult.TypeConverter.cs | 147 + .../PartnerDestinationsListResult.cs | 68 + .../PartnerDestinationsListResult.json.cs | 116 + .../PartnerDetails.PowerShell.cs | 158 + .../PartnerDetails.TypeConverter.cs | 146 + .../Api20211015Preview/PartnerDetails.cs | 107 + .../Api20211015Preview/PartnerDetails.json.cs | 110 + ...EventSubscriptionDestination.PowerShell.cs | 160 + ...ntSubscriptionDestination.TypeConverter.cs | 148 + .../PartnerEventSubscriptionDestination.cs | 86 + ...artnerEventSubscriptionDestination.json.cs | 108 + ...riptionDestinationProperties.PowerShell.cs | 145 + ...tionDestinationProperties.TypeConverter.cs | 150 + ...rEventSubscriptionDestinationProperties.cs | 56 + ...tSubscriptionDestinationProperties.json.cs | 108 + .../PartnerNamespace.PowerShell.cs | 302 + .../PartnerNamespace.TypeConverter.cs | 146 + .../Api20211015Preview/PartnerNamespace.cs | 367 + .../PartnerNamespace.json.cs | 113 + .../PartnerNamespaceProperties.PowerShell.cs | 200 + ...artnerNamespaceProperties.TypeConverter.cs | 147 + .../PartnerNamespaceProperties.cs | 235 + .../PartnerNamespaceProperties.json.cs | 145 + ...amespaceRegenerateKeyRequest.PowerShell.cs | 146 + ...spaceRegenerateKeyRequest.TypeConverter.cs | 149 + .../PartnerNamespaceRegenerateKeyRequest.cs | 51 + ...rtnerNamespaceRegenerateKeyRequest.json.cs | 107 + ...nerNamespaceSharedAccessKeys.PowerShell.cs | 152 + ...NamespaceSharedAccessKeys.TypeConverter.cs | 147 + .../PartnerNamespaceSharedAccessKeys.cs | 68 + .../PartnerNamespaceSharedAccessKeys.json.cs | 108 + ...aceUpdateParameterProperties.PowerShell.cs | 163 + ...UpdateParameterProperties.TypeConverter.cs | 150 + ...rtnerNamespaceUpdateParameterProperties.cs | 118 + ...NamespaceUpdateParameterProperties.json.cs | 120 + ...nerNamespaceUpdateParameters.PowerShell.cs | 176 + ...NamespaceUpdateParameters.TypeConverter.cs | 147 + .../PartnerNamespaceUpdateParameters.cs | 136 + .../PartnerNamespaceUpdateParameters.json.cs | 108 + ...amespaceUpdateParametersTags.PowerShell.cs | 142 + ...spaceUpdateParametersTags.TypeConverter.cs | 149 + .../PartnerNamespaceUpdateParametersTags.cs | 35 + ...amespaceUpdateParametersTags.dictionary.cs | 75 + ...rtnerNamespaceUpdateParametersTags.json.cs | 108 + .../PartnerNamespacesListResult.PowerShell.cs | 152 + ...rtnerNamespacesListResult.TypeConverter.cs | 147 + .../PartnerNamespacesListResult.cs | 68 + .../PartnerNamespacesListResult.json.cs | 116 + .../PartnerRegistration.PowerShell.cs | 352 + .../PartnerRegistration.TypeConverter.cs | 147 + .../Api20211015Preview/PartnerRegistration.cs | 463 + .../PartnerRegistration.json.cs | 113 + ...artnerRegistrationProperties.PowerShell.cs | 248 + ...nerRegistrationProperties.TypeConverter.cs | 147 + .../PartnerRegistrationProperties.cs | 349 + .../PartnerRegistrationProperties.json.cs | 143 + ...RegistrationUpdateParameters.PowerShell.cs | 194 + ...istrationUpdateParameters.TypeConverter.cs | 148 + .../PartnerRegistrationUpdateParameters.cs | 181 + ...artnerRegistrationUpdateParameters.json.cs | 127 + ...strationUpdateParametersTags.PowerShell.cs | 143 + ...ationUpdateParametersTags.TypeConverter.cs | 150 + ...PartnerRegistrationUpdateParametersTags.cs | 35 + ...strationUpdateParametersTags.dictionary.cs | 75 + ...erRegistrationUpdateParametersTags.json.cs | 109 + ...rtnerRegistrationsListResult.PowerShell.cs | 152 + ...erRegistrationsListResult.TypeConverter.cs | 147 + .../PartnerRegistrationsListResult.cs | 68 + .../PartnerRegistrationsListResult.json.cs | 116 + .../PartnerTopic.PowerShell.cs | 358 + .../PartnerTopic.TypeConverter.cs | 146 + .../Models/Api20211015Preview/PartnerTopic.cs | 473 + .../Api20211015Preview/PartnerTopic.json.cs | 115 + .../PartnerTopicInfo.PowerShell.cs | 190 + .../PartnerTopicInfo.TypeConverter.cs | 146 + .../Api20211015Preview/PartnerTopicInfo.cs | 202 + .../PartnerTopicInfo.json.cs | 114 + .../PartnerTopicProperties.PowerShell.cs | 216 + .../PartnerTopicProperties.TypeConverter.cs | 147 + .../PartnerTopicProperties.cs | 251 + .../PartnerTopicProperties.json.cs | 123 + ...PartnerTopicUpdateParameters.PowerShell.cs | 184 + ...tnerTopicUpdateParameters.TypeConverter.cs | 147 + .../PartnerTopicUpdateParameters.cs | 145 + .../PartnerTopicUpdateParameters.json.cs | 108 + ...nerTopicUpdateParametersTags.PowerShell.cs | 140 + ...TopicUpdateParametersTags.TypeConverter.cs | 147 + .../PartnerTopicUpdateParametersTags.cs | 35 + ...nerTopicUpdateParametersTags.dictionary.cs | 75 + .../PartnerTopicUpdateParametersTags.json.cs | 107 + .../PartnerTopicsListResult.PowerShell.cs | 152 + .../PartnerTopicsListResult.TypeConverter.cs | 147 + .../PartnerTopicsListResult.cs | 68 + .../PartnerTopicsListResult.json.cs | 116 + ...PartnerUpdateDestinationInfo.PowerShell.cs | 144 + ...tnerUpdateDestinationInfo.TypeConverter.cs | 147 + .../PartnerUpdateDestinationInfo.cs | 54 + .../PartnerUpdateDestinationInfo.json.cs | 121 + .../PartnerUpdateTopicInfo.PowerShell.cs | 160 + .../PartnerUpdateTopicInfo.TypeConverter.cs | 147 + .../PartnerUpdateTopicInfo.cs | 94 + .../PartnerUpdateTopicInfo.json.cs | 106 + .../PrivateEndpoint.PowerShell.cs | 142 + .../PrivateEndpoint.TypeConverter.cs | 146 + .../Api20211015Preview/PrivateEndpoint.cs | 51 + .../PrivateEndpoint.json.cs | 106 + .../PrivateEndpointConnection.PowerShell.cs | 230 + ...PrivateEndpointConnection.TypeConverter.cs | 147 + .../PrivateEndpointConnection.cs | 177 + .../PrivateEndpointConnection.json.cs | 107 + ...EndpointConnectionListResult.PowerShell.cs | 154 + ...pointConnectionListResult.TypeConverter.cs | 148 + .../PrivateEndpointConnectionListResult.cs | 68 + ...rivateEndpointConnectionListResult.json.cs | 117 + ...EndpointConnectionProperties.PowerShell.cs | 202 + ...pointConnectionProperties.TypeConverter.cs | 148 + .../PrivateEndpointConnectionProperties.cs | 148 + ...rivateEndpointConnectionProperties.json.cs | 121 + .../PrivateLinkResource.PowerShell.cs | 200 + .../PrivateLinkResource.TypeConverter.cs | 147 + .../Api20211015Preview/PrivateLinkResource.cs | 147 + .../PrivateLinkResource.json.cs | 112 + ...rivateLinkResourceProperties.PowerShell.cs | 166 + ...ateLinkResourceProperties.TypeConverter.cs | 147 + .../PrivateLinkResourceProperties.cs | 93 + .../PrivateLinkResourceProperties.json.cs | 127 + ...ivateLinkResourcesListResult.PowerShell.cs | 152 + ...teLinkResourcesListResult.TypeConverter.cs | 147 + .../PrivateLinkResourcesListResult.cs | 68 + .../PrivateLinkResourcesListResult.json.cs | 116 + .../Api20211015Preview/Resource.PowerShell.cs | 158 + .../Resource.TypeConverter.cs | 146 + .../api/Models/Api20211015Preview/Resource.cs | 94 + .../Api20211015Preview/Resource.json.cs | 119 + .../ResourceMoveChangeHistory.PowerShell.cs | 160 + ...ResourceMoveChangeHistory.TypeConverter.cs | 147 + .../ResourceMoveChangeHistory.cs | 85 + .../ResourceMoveChangeHistory.json.cs | 110 + .../ResourceSku.PowerShell.cs | 142 + .../ResourceSku.TypeConverter.cs | 146 + .../Models/Api20211015Preview/ResourceSku.cs | 51 + .../Api20211015Preview/ResourceSku.json.cs | 106 + .../RetryPolicy.PowerShell.cs | 150 + .../RetryPolicy.TypeConverter.cs | 146 + .../Models/Api20211015Preview/RetryPolicy.cs | 68 + .../Api20211015Preview/RetryPolicy.json.cs | 108 + ...EventSubscriptionDestination.PowerShell.cs | 171 + ...ntSubscriptionDestination.TypeConverter.cs | 150 + ...iceBusQueueEventSubscriptionDestination.cs | 105 + ...sQueueEventSubscriptionDestination.json.cs | 110 + ...riptionDestinationProperties.PowerShell.cs | 157 + ...tionDestinationProperties.TypeConverter.cs | 152 + ...eEventSubscriptionDestinationProperties.cs | 78 + ...tSubscriptionDestinationProperties.json.cs | 121 + ...EventSubscriptionDestination.PowerShell.cs | 171 + ...ntSubscriptionDestination.TypeConverter.cs | 150 + ...iceBusTopicEventSubscriptionDestination.cs | 105 + ...sTopicEventSubscriptionDestination.json.cs | 110 + ...riptionDestinationProperties.PowerShell.cs | 157 + ...tionDestinationProperties.TypeConverter.cs | 152 + ...cEventSubscriptionDestinationProperties.cs | 78 + ...tSubscriptionDestinationProperties.json.cs | 121 + ...aticDeliveryAttributeMapping.PowerShell.cs | 176 + ...cDeliveryAttributeMapping.TypeConverter.cs | 147 + .../StaticDeliveryAttributeMapping.cs | 101 + .../StaticDeliveryAttributeMapping.json.cs | 108 + ...ryAttributeMappingProperties.PowerShell.cs | 155 + ...ttributeMappingProperties.TypeConverter.cs | 150 + ...taticDeliveryAttributeMappingProperties.cs | 70 + ...DeliveryAttributeMappingProperties.json.cs | 110 + ...ageBlobDeadLetterDestination.PowerShell.cs | 168 + ...BlobDeadLetterDestination.TypeConverter.cs | 147 + .../StorageBlobDeadLetterDestination.cs | 112 + .../StorageBlobDeadLetterDestination.json.cs | 108 + ...dLetterDestinationProperties.PowerShell.cs | 155 + ...tterDestinationProperties.TypeConverter.cs | 150 + ...rageBlobDeadLetterDestinationProperties.cs | 82 + ...lobDeadLetterDestinationProperties.json.cs | 110 + ...EventSubscriptionDestination.PowerShell.cs | 179 + ...ntSubscriptionDestination.TypeConverter.cs | 150 + ...torageQueueEventSubscriptionDestination.cs | 125 + ...eQueueEventSubscriptionDestination.json.cs | 110 + ...riptionDestinationProperties.PowerShell.cs | 163 + ...tionDestinationProperties.TypeConverter.cs | 152 + ...eEventSubscriptionDestinationProperties.cs | 99 + ...tSubscriptionDestinationProperties.json.cs | 113 + ...ringBeginsWithAdvancedFilter.PowerShell.cs | 160 + ...gBeginsWithAdvancedFilter.TypeConverter.cs | 147 + .../StringBeginsWithAdvancedFilter.cs | 80 + .../StringBeginsWithAdvancedFilter.json.cs | 116 + ...StringContainsAdvancedFilter.PowerShell.cs | 160 + ...ingContainsAdvancedFilter.TypeConverter.cs | 147 + .../StringContainsAdvancedFilter.cs | 80 + .../StringContainsAdvancedFilter.json.cs | 116 + ...StringEndsWithAdvancedFilter.PowerShell.cs | 160 + ...ingEndsWithAdvancedFilter.TypeConverter.cs | 147 + .../StringEndsWithAdvancedFilter.cs | 80 + .../StringEndsWithAdvancedFilter.json.cs | 116 + .../StringInAdvancedFilter.PowerShell.cs | 160 + .../StringInAdvancedFilter.TypeConverter.cs | 147 + .../StringInAdvancedFilter.cs | 80 + .../StringInAdvancedFilter.json.cs | 116 + ...gNotBeginsWithAdvancedFilter.PowerShell.cs | 162 + ...tBeginsWithAdvancedFilter.TypeConverter.cs | 147 + .../StringNotBeginsWithAdvancedFilter.cs | 80 + .../StringNotBeginsWithAdvancedFilter.json.cs | 116 + ...ingNotContainsAdvancedFilter.PowerShell.cs | 160 + ...NotContainsAdvancedFilter.TypeConverter.cs | 147 + .../StringNotContainsAdvancedFilter.cs | 80 + .../StringNotContainsAdvancedFilter.json.cs | 116 + ...ingNotEndsWithAdvancedFilter.PowerShell.cs | 160 + ...NotEndsWithAdvancedFilter.TypeConverter.cs | 147 + .../StringNotEndsWithAdvancedFilter.cs | 80 + .../StringNotEndsWithAdvancedFilter.json.cs | 116 + .../StringNotInAdvancedFilter.PowerShell.cs | 160 + ...StringNotInAdvancedFilter.TypeConverter.cs | 147 + .../StringNotInAdvancedFilter.cs | 80 + .../StringNotInAdvancedFilter.json.cs | 116 + .../SystemTopic.PowerShell.cs | 310 + .../SystemTopic.TypeConverter.cs | 146 + .../Models/Api20211015Preview/SystemTopic.cs | 346 + .../Api20211015Preview/SystemTopic.json.cs | 115 + .../SystemTopicProperties.PowerShell.cs | 168 + .../SystemTopicProperties.TypeConverter.cs | 147 + .../SystemTopicProperties.cs | 108 + .../SystemTopicProperties.json.cs | 118 + .../SystemTopicUpdateParameters.PowerShell.cs | 184 + ...stemTopicUpdateParameters.TypeConverter.cs | 147 + .../SystemTopicUpdateParameters.cs | 145 + .../SystemTopicUpdateParameters.json.cs | 108 + ...temTopicUpdateParametersTags.PowerShell.cs | 140 + ...TopicUpdateParametersTags.TypeConverter.cs | 147 + .../SystemTopicUpdateParametersTags.cs | 35 + ...temTopicUpdateParametersTags.dictionary.cs | 75 + .../SystemTopicUpdateParametersTags.json.cs | 107 + .../SystemTopicsListResult.PowerShell.cs | 152 + .../SystemTopicsListResult.TypeConverter.cs | 147 + .../SystemTopicsListResult.cs | 68 + .../SystemTopicsListResult.json.cs | 116 + .../Api20211015Preview/Topic.PowerShell.cs | 414 + .../Api20211015Preview/Topic.TypeConverter.cs | 146 + .../api/Models/Api20211015Preview/Topic.cs | 566 + .../Models/Api20211015Preview/Topic.json.cs | 121 + .../TopicProperties.PowerShell.cs | 222 + .../TopicProperties.TypeConverter.cs | 146 + .../Api20211015Preview/TopicProperties.cs | 270 + .../TopicProperties.json.cs | 152 + .../TopicRegenerateKeyRequest.PowerShell.cs | 144 + ...TopicRegenerateKeyRequest.TypeConverter.cs | 147 + .../TopicRegenerateKeyRequest.cs | 51 + .../TopicRegenerateKeyRequest.json.cs | 106 + .../TopicSharedAccessKeys.PowerShell.cs | 152 + .../TopicSharedAccessKeys.TypeConverter.cs | 147 + .../TopicSharedAccessKeys.cs | 68 + .../TopicSharedAccessKeys.json.cs | 108 + .../TopicTypeInfo.PowerShell.cs | 230 + .../TopicTypeInfo.TypeConverter.cs | 146 + .../Api20211015Preview/TopicTypeInfo.cs | 198 + .../Api20211015Preview/TopicTypeInfo.json.cs | 108 + .../TopicTypeProperties.PowerShell.cs | 200 + .../TopicTypeProperties.TypeConverter.cs | 147 + .../Api20211015Preview/TopicTypeProperties.cs | 170 + .../TopicTypeProperties.json.cs | 136 + .../TopicTypesListResult.PowerShell.cs | 144 + .../TopicTypesListResult.TypeConverter.cs | 147 + .../TopicTypesListResult.cs | 51 + .../TopicTypesListResult.json.cs | 114 + ...picUpdateParameterProperties.PowerShell.cs | 168 + ...UpdateParameterProperties.TypeConverter.cs | 147 + .../TopicUpdateParameterProperties.cs | 133 + .../TopicUpdateParameterProperties.json.cs | 120 + .../TopicUpdateParameters.PowerShell.cs | 240 + .../TopicUpdateParameters.TypeConverter.cs | 147 + .../TopicUpdateParameters.cs | 270 + .../TopicUpdateParameters.json.cs | 112 + .../TopicUpdateParametersTags.PowerShell.cs | 140 + ...TopicUpdateParametersTags.TypeConverter.cs | 147 + .../TopicUpdateParametersTags.cs | 35 + .../TopicUpdateParametersTags.dictionary.cs | 75 + .../TopicUpdateParametersTags.json.cs | 107 + .../TopicsListResult.PowerShell.cs | 150 + .../TopicsListResult.TypeConverter.cs | 146 + .../Api20211015Preview/TopicsListResult.cs | 68 + .../TopicsListResult.json.cs | 116 + .../TrackedResource.PowerShell.cs | 174 + .../TrackedResource.TypeConverter.cs | 146 + .../Api20211015Preview/TrackedResource.cs | 108 + .../TrackedResource.json.cs | 110 + .../TrackedResourceTags.PowerShell.cs | 140 + .../TrackedResourceTags.TypeConverter.cs | 147 + .../Api20211015Preview/TrackedResourceTags.cs | 35 + .../TrackedResourceTags.dictionary.cs | 75 + .../TrackedResourceTags.json.cs | 107 + .../UserIdentityProperties.PowerShell.cs | 152 + .../UserIdentityProperties.TypeConverter.cs | 147 + .../UserIdentityProperties.cs | 68 + .../UserIdentityProperties.json.cs | 108 + .../VerifiedPartner.PowerShell.cs | 318 + .../VerifiedPartner.TypeConverter.cs | 146 + .../Api20211015Preview/VerifiedPartner.cs | 376 + .../VerifiedPartner.json.cs | 113 + .../VerifiedPartnerProperties.PowerShell.cs | 232 + ...VerifiedPartnerProperties.TypeConverter.cs | 147 + .../VerifiedPartnerProperties.cs | 254 + .../VerifiedPartnerProperties.json.cs | 116 + .../VerifiedPartnersListResult.PowerShell.cs | 152 + ...erifiedPartnersListResult.TypeConverter.cs | 147 + .../VerifiedPartnersListResult.cs | 68 + .../VerifiedPartnersListResult.json.cs | 116 + ...EventSubscriptionDestination.PowerShell.cs | 210 + ...ntSubscriptionDestination.TypeConverter.cs | 148 + .../WebHookEventSubscriptionDestination.cs | 197 + ...ebHookEventSubscriptionDestination.json.cs | 109 + ...riptionDestinationProperties.PowerShell.cs | 195 + ...tionDestinationProperties.TypeConverter.cs | 150 + ...kEventSubscriptionDestinationProperties.cs | 187 + ...tSubscriptionDestinationProperties.json.cs | 132 + ...ebhookPartnerDestinationInfo.PowerShell.cs | 224 + ...ookPartnerDestinationInfo.TypeConverter.cs | 147 + .../WebhookPartnerDestinationInfo.cs | 148 + .../WebhookPartnerDestinationInfo.json.cs | 108 + ...PartnerDestinationProperties.PowerShell.cs | 170 + ...tnerDestinationProperties.TypeConverter.cs | 148 + .../WebhookPartnerDestinationProperties.cs | 97 + ...ebhookPartnerDestinationProperties.json.cs | 111 + ...UpdatePartnerDestinationInfo.PowerShell.cs | 186 + ...atePartnerDestinationInfo.TypeConverter.cs | 148 + .../WebhookUpdatePartnerDestinationInfo.cs | 122 + ...ebhookUpdatePartnerDestinationInfo.json.cs | 109 + .../Models/EventGridIdentity.PowerShell.cs | 332 + .../Models/EventGridIdentity.TypeConverter.cs | 156 + .../generated/api/Models/EventGridIdentity.cs | 495 + .../api/Models/EventGridIdentity.json.cs | 153 + .../AdvancedFilterOperatorType.Completer.cs | 109 + ...dvancedFilterOperatorType.TypeConverter.cs | 61 + .../api/Support/AdvancedFilterOperatorType.cs | 136 + .../ChannelProvisioningState.Completer.cs | 55 + .../ChannelProvisioningState.TypeConverter.cs | 59 + .../api/Support/ChannelProvisioningState.cs | 106 + .../api/Support/ChannelType.Completer.cs | 39 + .../api/Support/ChannelType.TypeConverter.cs | 59 + .../generated/api/Support/ChannelType.cs | 98 + .../api/Support/CreatedByType.Completer.cs | 47 + .../Support/CreatedByType.TypeConverter.cs | 59 + .../generated/api/Support/CreatedByType.cs | 102 + .../DataResidencyBoundary.Completer.cs | 39 + .../DataResidencyBoundary.TypeConverter.cs | 59 + .../api/Support/DataResidencyBoundary.cs | 98 + .../DeliveryAttributeMappingType.Completer.cs | 39 + ...iveryAttributeMappingType.TypeConverter.cs | 59 + .../Support/DeliveryAttributeMappingType.cs | 102 + .../DomainProvisioningState.Completer.cs | 55 + .../DomainProvisioningState.TypeConverter.cs | 59 + .../api/Support/DomainProvisioningState.cs | 106 + .../DomainTopicProvisioningState.Completer.cs | 55 + ...ainTopicProvisioningState.TypeConverter.cs | 59 + .../Support/DomainTopicProvisioningState.cs | 110 + .../api/Support/EndpointType.Completer.cs | 63 + .../api/Support/EndpointType.TypeConverter.cs | 59 + .../generated/api/Support/EndpointType.cs | 110 + ...EventChannelProvisioningState.Completer.cs | 55 + ...tChannelProvisioningState.TypeConverter.cs | 59 + .../Support/EventChannelProvisioningState.cs | 112 + .../Support/EventDefinitionKind.Completer.cs | 35 + .../EventDefinitionKind.TypeConverter.cs | 59 + .../api/Support/EventDefinitionKind.cs | 96 + .../Support/EventDeliverySchema.Completer.cs | 43 + .../EventDeliverySchema.TypeConverter.cs | 59 + .../api/Support/EventDeliverySchema.cs | 100 + ...EventSubscriptionIdentityType.Completer.cs | 42 + ...tSubscriptionIdentityType.TypeConverter.cs | 62 + .../Support/EventSubscriptionIdentityType.cs | 107 + ...SubscriptionProvisioningState.Completer.cs | 59 + ...criptionProvisioningState.TypeConverter.cs | 59 + .../EventSubscriptionProvisioningState.cs | 114 + .../api/Support/IPActionType.Completer.cs | 35 + .../api/Support/IPActionType.TypeConverter.cs | 59 + .../generated/api/Support/IPActionType.cs | 96 + .../api/Support/IdentityType.Completer.cs | 50 + .../api/Support/IdentityType.TypeConverter.cs | 62 + .../generated/api/Support/IdentityType.cs | 105 + .../api/Support/InputSchema.Completer.cs | 45 + .../api/Support/InputSchema.TypeConverter.cs | 61 + .../generated/api/Support/InputSchema.cs | 102 + .../api/Support/ParentType.Completer.cs | 43 + .../api/Support/ParentType.TypeConverter.cs | 59 + .../generated/api/Support/ParentType.cs | 99 + ...onfigurationProvisioningState.Completer.cs | 55 + ...gurationProvisioningState.TypeConverter.cs | 59 + .../PartnerConfigurationProvisioningState.cs | 112 + ...nerDestinationActivationState.Completer.cs | 39 + ...estinationActivationState.TypeConverter.cs | 59 + .../PartnerDestinationActivationState.cs | 104 + ...rDestinationProvisioningState.Completer.cs | 55 + ...tinationProvisioningState.TypeConverter.cs | 59 + .../PartnerDestinationProvisioningState.cs | 112 + ...nerNamespaceProvisioningState.Completer.cs | 55 + ...amespaceProvisioningState.TypeConverter.cs | 59 + .../PartnerNamespaceProvisioningState.cs | 112 + ...RegistrationProvisioningState.Completer.cs | 55 + ...strationProvisioningState.TypeConverter.cs | 59 + .../PartnerRegistrationProvisioningState.cs | 112 + ...erRegistrationVisibilityState.Completer.cs | 43 + ...gistrationVisibilityState.TypeConverter.cs | 59 + .../PartnerRegistrationVisibilityState.cs | 106 + .../PartnerTopicActivationState.Completer.cs | 43 + ...rtnerTopicActivationState.TypeConverter.cs | 59 + .../Support/PartnerTopicActivationState.cs | 104 + ...PartnerTopicProvisioningState.Completer.cs | 55 + ...nerTopicProvisioningState.TypeConverter.cs | 59 + .../Support/PartnerTopicProvisioningState.cs | 112 + .../PartnerTopicReadinessState.Completer.cs | 47 + ...artnerTopicReadinessState.TypeConverter.cs | 59 + .../api/Support/PartnerTopicReadinessState.cs | 104 + .../PartnerTopicRoutingMode.Completer.cs | 43 + .../PartnerTopicRoutingMode.TypeConverter.cs | 63 + .../api/Support/PartnerTopicRoutingMode.cs | 102 + .../PersistedConnectionStatus.Completer.cs | 47 + ...PersistedConnectionStatus.TypeConverter.cs | 59 + .../api/Support/PersistedConnectionStatus.cs | 102 + .../Support/PublicNetworkAccess.Completer.cs | 43 + .../PublicNetworkAccess.TypeConverter.cs | 63 + .../api/Support/PublicNetworkAccess.cs | 102 + .../api/Support/ReadinessState.Completer.cs | 39 + .../Support/ReadinessState.TypeConverter.cs | 59 + .../generated/api/Support/ReadinessState.cs | 98 + .../api/Support/ResourceKind.Completer.cs | 39 + .../api/Support/ResourceKind.TypeConverter.cs | 59 + .../generated/api/Support/ResourceKind.cs | 98 + .../ResourceProvisioningState.Completer.cs | 55 + ...ResourceProvisioningState.TypeConverter.cs | 59 + .../api/Support/ResourceProvisioningState.cs | 106 + .../Support/ResourceRegionType.Completer.cs | 39 + .../ResourceRegionType.TypeConverter.cs | 59 + .../api/Support/ResourceRegionType.cs | 98 + .../generated/api/Support/Sku.Completer.cs | 39 + .../api/Support/Sku.TypeConverter.cs | 59 + .../eventgrid/generated/api/Support/Sku.cs | 98 + .../TopicProvisioningState.Completer.cs | 55 + .../TopicProvisioningState.TypeConverter.cs | 59 + .../api/Support/TopicProvisioningState.cs | 106 + .../TopicTypeProvisioningState.Completer.cs | 55 + ...opicTypeProvisioningState.TypeConverter.cs | 59 + .../api/Support/TopicTypeProvisioningState.cs | 108 + ...ifiedPartnerProvisioningState.Completer.cs | 55 + ...dPartnerProvisioningState.TypeConverter.cs | 59 + .../VerifiedPartnerProvisioningState.cs | 112 + .../GetAzEventGridChannelFullUrl_Get.cs | 414 + ...zEventGridChannelFullUrl_GetViaIdentity.cs | 380 + .../cmdlets/GetAzEventGridChannel_Get.cs | 412 + .../GetAzEventGridChannel_GetViaIdentity.cs | 377 + .../cmdlets/GetAzEventGridChannel_List.cs | 456 + ...nEventSubscriptionDeliveryAttribute_Get.cs | 415 + ...riptionDeliveryAttribute_GetViaIdentity.cs | 382 + ...tGridDomainEventSubscriptionFullUrl_Get.cs | 414 + ...EventSubscriptionFullUrl_GetViaIdentity.cs | 380 + ...tAzEventGridDomainEventSubscription_Get.cs | 414 + ...dDomainEventSubscription_GetViaIdentity.cs | 377 + ...AzEventGridDomainEventSubscription_List.cs | 398 + ...etAzEventGridDomainSharedAccessKey_List.cs | 400 + ...cEventSubscriptionDeliveryAttribute_Get.cs | 430 + ...riptionDeliveryAttribute_GetViaIdentity.cs | 386 + ...DomainTopicEventSubscriptionFullUrl_Get.cs | 428 + ...EventSubscriptionFullUrl_GetViaIdentity.cs | 385 + ...entGridDomainTopicEventSubscription_Get.cs | 425 + ...inTopicEventSubscription_GetViaIdentity.cs | 381 + ...ntGridDomainTopicEventSubscription_List.cs | 414 + .../cmdlets/GetAzEventGridDomainTopic_Get.cs | 412 + ...etAzEventGridDomainTopic_GetViaIdentity.cs | 377 + .../cmdlets/GetAzEventGridDomainTopic_List.cs | 456 + .../cmdlets/GetAzEventGridDomain_Get.cs | 398 + .../GetAzEventGridDomain_GetViaIdentity.cs | 373 + .../cmdlets/GetAzEventGridDomain_List.cs | 428 + .../cmdlets/GetAzEventGridDomain_List1.cs | 442 + .../cmdlets/GetAzEventGridEventChannel_Get.cs | 412 + ...tAzEventGridEventChannel_GetViaIdentity.cs | 377 + .../GetAzEventGridEventChannel_List.cs | 456 + ...dEventSubscriptionDeliveryAttribute_Get.cs | 383 + ...riptionDeliveryAttribute_GetViaIdentity.cs | 374 + ...AzEventGridEventSubscriptionFullUrl_Get.cs | 382 + ...EventSubscriptionFullUrl_GetViaIdentity.cs | 372 + ...AzEventGridEventSubscriptionGlobal_List.cs | 430 + ...zEventGridEventSubscriptionGlobal_List1.cs | 444 + ...zEventGridEventSubscriptionGlobal_List2.cs | 444 + ...zEventGridEventSubscriptionGlobal_List3.cs | 458 + ...EventGridEventSubscriptionRegional_List.cs | 444 + ...ventGridEventSubscriptionRegional_List1.cs | 458 + ...ventGridEventSubscriptionRegional_List2.cs | 458 + ...ventGridEventSubscriptionRegional_List3.cs | 473 + .../GetAzEventGridEventSubscription_Get.cs | 380 + ...entGridEventSubscription_GetViaIdentity.cs | 369 + .../GetAzEventGridEventSubscription_List.cs | 484 + .../GetAzEventGridEventSubscription_List1.cs | 472 + .../GetAzEventGridExtensionTopic_Get.cs | 364 + ...zEventGridExtensionTopic_GetViaIdentity.cs | 365 + .../cmdlets/GetAzEventGridOperation_List.cs | 349 + .../GetAzEventGridPartnerConfiguration_Get.cs | 383 + ...GridPartnerConfiguration_GetViaIdentity.cs | 369 + ...GetAzEventGridPartnerConfiguration_List.cs | 384 + ...etAzEventGridPartnerConfiguration_List1.cs | 428 + .../GetAzEventGridPartnerDestination_Get.cs | 398 + ...ntGridPartnerDestination_GetViaIdentity.cs | 373 + .../GetAzEventGridPartnerDestination_List.cs | 428 + .../GetAzEventGridPartnerDestination_List1.cs | 442 + ...ridPartnerNamespaceSharedAccessKey_List.cs | 400 + .../GetAzEventGridPartnerNamespace_Get.cs | 398 + ...ventGridPartnerNamespace_GetViaIdentity.cs | 373 + .../GetAzEventGridPartnerNamespace_List.cs | 428 + .../GetAzEventGridPartnerNamespace_List1.cs | 442 + .../GetAzEventGridPartnerRegistration_Get.cs | 398 + ...tGridPartnerRegistration_GetViaIdentity.cs | 373 + .../GetAzEventGridPartnerRegistration_List.cs | 428 + ...GetAzEventGridPartnerRegistration_List1.cs | 442 + ...cEventSubscriptionDeliveryAttribute_Get.cs | 419 + ...riptionDeliveryAttribute_GetViaIdentity.cs | 382 + ...artnerTopicEventSubscriptionFullUrl_Get.cs | 417 + ...EventSubscriptionFullUrl_GetViaIdentity.cs | 381 + ...ntGridPartnerTopicEventSubscription_Get.cs | 414 + ...erTopicEventSubscription_GetViaIdentity.cs | 377 + ...tGridPartnerTopicEventSubscription_List.cs | 456 + .../cmdlets/GetAzEventGridPartnerTopic_Get.cs | 398 + ...tAzEventGridPartnerTopic_GetViaIdentity.cs | 373 + .../GetAzEventGridPartnerTopic_List.cs | 428 + .../GetAzEventGridPartnerTopic_List1.cs | 442 + ...zEventGridPrivateEndpointConnection_Get.cs | 433 + ...rivateEndpointConnection_GetViaIdentity.cs | 383 + ...EventGridPrivateEndpointConnection_List.cs | 477 + .../GetAzEventGridPrivateLinkResource_Get.cs | 430 + ...tGridPrivateLinkResource_GetViaIdentity.cs | 381 + .../GetAzEventGridPrivateLinkResource_List.cs | 476 + ...cEventSubscriptionDeliveryAttribute_Get.cs | 419 + ...riptionDeliveryAttribute_GetViaIdentity.cs | 382 + ...SystemTopicEventSubscriptionFullUrl_Get.cs | 417 + ...EventSubscriptionFullUrl_GetViaIdentity.cs | 381 + ...entGridSystemTopicEventSubscription_Get.cs | 414 + ...emTopicEventSubscription_GetViaIdentity.cs | 377 + ...ntGridSystemTopicEventSubscription_List.cs | 456 + .../cmdlets/GetAzEventGridSystemTopic_Get.cs | 398 + ...etAzEventGridSystemTopic_GetViaIdentity.cs | 373 + .../cmdlets/GetAzEventGridSystemTopic_List.cs | 428 + .../GetAzEventGridSystemTopic_List1.cs | 442 + ...cEventSubscriptionDeliveryAttribute_Get.cs | 415 + ...riptionDeliveryAttribute_GetViaIdentity.cs | 382 + ...ntGridTopicEventSubscriptionFullUrl_Get.cs | 414 + ...EventSubscriptionFullUrl_GetViaIdentity.cs | 380 + ...etAzEventGridTopicEventSubscription_Get.cs | 414 + ...idTopicEventSubscription_GetViaIdentity.cs | 377 + ...tAzEventGridTopicEventSubscription_List.cs | 398 + .../GetAzEventGridTopicEventType_List.cs | 426 + ...GetAzEventGridTopicSharedAccessKey_List.cs | 400 + .../GetAzEventGridTopicTypeEventType_List.cs | 360 + .../cmdlets/GetAzEventGridTopicType_Get.cs | 360 + .../GetAzEventGridTopicType_GetViaIdentity.cs | 365 + .../cmdlets/GetAzEventGridTopicType_List.cs | 346 + .../cmdlets/GetAzEventGridTopic_Get.cs | 398 + .../GetAzEventGridTopic_GetViaIdentity.cs | 373 + .../cmdlets/GetAzEventGridTopic_List.cs | 428 + .../cmdlets/GetAzEventGridTopic_List1.cs | 442 + .../GetAzEventGridVerifiedPartner_Get.cs | 360 + ...EventGridVerifiedPartner_GetViaIdentity.cs | 365 + .../GetAzEventGridVerifiedPartner_List.cs | 404 + ...idPartnerConfigurationPartner_Authorize.cs | 398 + ...rConfigurationPartner_AuthorizeExpanded.cs | 426 + ...nfigurationPartner_AuthorizeViaIdentity.cs | 388 + ...ionPartner_AuthorizeViaIdentityExpanded.cs | 416 + ...eAzEventGridPartnerDestination_Activate.cs | 398 + ...dPartnerDestination_ActivateViaIdentity.cs | 376 + ...tializeAzEventGridPartnerTopic_Activate.cs | 398 + ...entGridPartnerTopic_ActivateViaIdentity.cs | 376 + ...ntGridDeactivatePartnerTopic_Deactivate.cs | 397 + ...ivatePartnerTopic_DeactivateViaIdentity.cs | 376 + ...PartnerConfigurationUnauthorize_Partner.cs | 398 + ...onfigurationUnauthorize_PartnerExpanded.cs | 427 + ...igurationUnauthorize_PartnerViaIdentity.cs | 388 + ...nUnauthorize_PartnerViaIdentityExpanded.cs | 416 + .../NewAzEventGridChannel_CreateExpanded.cs | 657 + ...dDomainEventSubscription_CreateExpanded.cs | 702 + .../NewAzEventGridDomainKey_Regenerate.cs | 410 + ...AzEventGridDomainKey_RegenerateExpanded.cs | 411 + ...ventGridDomainKey_RegenerateViaIdentity.cs | 389 + ...DomainKey_RegenerateViaIdentityExpanded.cs | 390 + ...inTopicEventSubscription_CreateExpanded.cs | 719 + .../NewAzEventGridDomain_CreateExpanded.cs | 631 + ...wAzEventGridEventChannel_CreateExpanded.cs | 522 + ...entGridEventSubscription_CreateExpanded.cs | 637 + ...GridPartnerConfiguration_CreateExpanded.cs | 515 + ...ntGridPartnerDestination_CreateExpanded.cs | 542 + ...EventGridPartnerNamespaceKey_Regenerate.cs | 410 + ...dPartnerNamespaceKey_RegenerateExpanded.cs | 411 + ...rtnerNamespaceKey_RegenerateViaIdentity.cs | 389 + ...espaceKey_RegenerateViaIdentityExpanded.cs | 391 + ...ventGridPartnerNamespace_CreateExpanded.cs | 530 + ...tGridPartnerRegistration_CreateExpanded.cs | 655 + ...erTopicEventSubscription_CreateExpanded.cs | 705 + ...wAzEventGridPartnerTopic_CreateExpanded.cs | 618 + ...emTopicEventSubscription_CreateExpanded.cs | 669 + ...ewAzEventGridSystemTopic_CreateExpanded.cs | 566 + ...idTopicEventSubscription_CreateExpanded.cs | 702 + .../NewAzEventGridTopicKey_Regenerate.cs | 477 + ...wAzEventGridTopicKey_RegenerateExpanded.cs | 478 + ...EventGridTopicKey_RegenerateViaIdentity.cs | 453 + ...dTopicKey_RegenerateViaIdentityExpanded.cs | 454 + .../NewAzEventGridTopic_CreateExpanded.cs | 625 + .../RemoveAzEventGridChannel_Delete.cs | 511 + ...oveAzEventGridChannel_DeleteViaIdentity.cs | 475 + ...EventGridDomainEventSubscription_Delete.cs | 513 + ...mainEventSubscription_DeleteViaIdentity.cs | 477 + ...GridDomainTopicEventSubscription_Delete.cs | 528 + ...opicEventSubscription_DeleteViaIdentity.cs | 482 + .../RemoveAzEventGridDomainTopic_Delete.cs | 511 + ...zEventGridDomainTopic_DeleteViaIdentity.cs | 475 + .../cmdlets/RemoveAzEventGridDomain_Delete.cs | 496 + ...moveAzEventGridDomain_DeleteViaIdentity.cs | 471 + .../RemoveAzEventGridEventChannel_Delete.cs | 511 + ...EventGridEventChannel_DeleteViaIdentity.cs | 475 + ...moveAzEventGridEventSubscription_Delete.cs | 480 + ...GridEventSubscription_DeleteViaIdentity.cs | 467 + ...eAzEventGridPartnerConfiguration_Delete.cs | 480 + ...dPartnerConfiguration_DeleteViaIdentity.cs | 467 + ...oveAzEventGridPartnerDestination_Delete.cs | 496 + ...ridPartnerDestination_DeleteViaIdentity.cs | 471 + ...emoveAzEventGridPartnerNamespace_Delete.cs | 496 + ...tGridPartnerNamespace_DeleteViaIdentity.cs | 471 + ...veAzEventGridPartnerRegistration_Delete.cs | 496 + ...idPartnerRegistration_DeleteViaIdentity.cs | 471 + ...ridPartnerTopicEventSubscription_Delete.cs | 513 + ...opicEventSubscription_DeleteViaIdentity.cs | 478 + .../RemoveAzEventGridPartnerTopic_Delete.cs | 496 + ...EventGridPartnerTopic_DeleteViaIdentity.cs | 471 + ...entGridPrivateEndpointConnection_Delete.cs | 499 + ...ateEndpointConnection_DeleteViaIdentity.cs | 449 + ...GridSystemTopicEventSubscription_Delete.cs | 513 + ...opicEventSubscription_DeleteViaIdentity.cs | 478 + .../RemoveAzEventGridSystemTopic_Delete.cs | 496 + ...zEventGridSystemTopic_DeleteViaIdentity.cs | 471 + ...zEventGridTopicEventSubscription_Delete.cs | 513 + ...opicEventSubscription_DeleteViaIdentity.cs | 477 + .../cmdlets/RemoveAzEventGridTopic_Delete.cs | 462 + ...emoveAzEventGridTopic_DeleteViaIdentity.cs | 437 + ...UpdateAzEventGridChannel_UpdateExpanded.cs | 455 + ...ntGridChannel_UpdateViaIdentityExpanded.cs | 423 + ...dDomainEventSubscription_UpdateExpanded.cs | 661 + ...tSubscription_UpdateViaIdentityExpanded.cs | 629 + ...inTopicEventSubscription_UpdateExpanded.cs | 678 + ...tSubscription_UpdateViaIdentityExpanded.cs | 633 + .../UpdateAzEventGridDomain_UpdateExpanded.cs | 640 + ...entGridDomain_UpdateViaIdentityExpanded.cs | 615 + ...entGridEventSubscription_UpdateExpanded.cs | 631 + ...tSubscription_UpdateViaIdentityExpanded.cs | 620 + ...GridPartnerConfiguration_UpdateExpanded.cs | 478 + ...Configuration_UpdateViaIdentityExpanded.cs | 468 + ...ntGridPartnerDestination_UpdateExpanded.cs | 447 + ...erDestination_UpdateViaIdentityExpanded.cs | 425 + ...ventGridPartnerNamespace_UpdateExpanded.cs | 523 + ...tnerNamespace_UpdateViaIdentityExpanded.cs | 500 + ...tGridPartnerRegistration_UpdateExpanded.cs | 551 + ...rRegistration_UpdateViaIdentityExpanded.cs | 529 + ...erTopicEventSubscription_UpdateExpanded.cs | 666 + ...tSubscription_UpdateViaIdentityExpanded.cs | 629 + ...eAzEventGridPartnerTopic_UpdateExpanded.cs | 500 + ...dPartnerTopic_UpdateViaIdentityExpanded.cs | 478 + ...emTopicEventSubscription_UpdateExpanded.cs | 666 + ...tSubscription_UpdateViaIdentityExpanded.cs | 629 + ...teAzEventGridSystemTopic_UpdateExpanded.cs | 533 + ...idSystemTopic_UpdateViaIdentityExpanded.cs | 508 + ...idTopicEventSubscription_UpdateExpanded.cs | 661 + ...tSubscription_UpdateViaIdentityExpanded.cs | 629 + .../UpdateAzEventGridTopic_UpdateExpanded.cs | 600 + ...ventGridTopic_UpdateViaIdentityExpanded.cs | 575 + .../Az.Accounts/2.7.5/Accounts.format.ps1xml | 496 + .../2.7.5/Accounts.generated.format.ps1xml | 468 + .../Az.Accounts/2.7.5/Accounts.types.ps1xml | 303 + .../Az.Accounts/2.7.5/Az.Accounts.nuspec | 20 + .../Az.Accounts/2.7.5/Az.Accounts.psd1 | 387 + .../Az.Accounts/2.7.5/Az.Accounts.psm1 | 375 + .../AzSharedAlcAssemblies/Azure.Core.dll | Bin 0 -> 251816 bytes .../AzSharedAlcAssemblies/Azure.Identity.dll | Bin 0 -> 294288 bytes .../Microsoft.Bcl.AsyncInterfaces.dll | Bin 0 -> 20864 bytes ...rosoft.Identity.Client.Extensions.Msal.dll | Bin 0 -> 62472 bytes .../Microsoft.Identity.Client.dll | Bin 0 -> 1363896 bytes .../System.Memory.Data.dll | Bin 0 -> 21368 bytes .../System.Text.Json.dll | Bin 0 -> 293240 bytes .../modules/Az.Accounts/2.7.5/Hyak.Common.dll | Bin 0 -> 63880 bytes .../2.7.5/Microsoft.ApplicationInsights.dll | Bin 0 -> 336464 bytes .../2.7.5/Microsoft.Azure.Common.dll | Bin 0 -> 35720 bytes ...PowerShell.Authentication.Abstractions.dll | Bin 0 -> 119208 bytes ...l.Authentication.ResourceManager.deps.json | 2309 ++ ...erShell.Authentication.ResourceManager.dll | Bin 0 -> 79792 bytes ....Azure.PowerShell.Authentication.deps.json | 2273 ++ ...rosoft.Azure.PowerShell.Authentication.dll | Bin 0 -> 136096 bytes ...uthenticationAssemblyLoadContext.deps.json | 1316 + ...hell.AuthenticationAssemblyLoadContext.dll | Bin 0 -> 18344 bytes ...rosoft.Azure.PowerShell.Authenticators.dll | Bin 0 -> 85416 bytes ...Microsoft.Azure.PowerShell.Clients.Aks.dll | Bin 0 -> 90000 bytes ...Azure.PowerShell.Clients.Authorization.dll | Bin 0 -> 150928 bytes ...osoft.Azure.PowerShell.Clients.Compute.dll | Bin 0 -> 1419664 bytes ...ft.Azure.PowerShell.Clients.Graph.Rbac.dll | Bin 0 -> 759184 bytes ...soft.Azure.PowerShell.Clients.KeyVault.dll | Bin 0 -> 122792 bytes ...osoft.Azure.PowerShell.Clients.Monitor.dll | Bin 0 -> 413584 bytes ...osoft.Azure.PowerShell.Clients.Network.dll | Bin 0 -> 1688488 bytes ...zure.PowerShell.Clients.PolicyInsights.dll | Bin 0 -> 178064 bytes ...ure.PowerShell.Clients.ResourceManager.dll | Bin 0 -> 1220496 bytes ....PowerShell.Clients.Storage.Management.dll | Bin 0 -> 263080 bytes ...soft.Azure.PowerShell.Clients.Websites.dll | Bin 0 -> 3272080 bytes ...zure.PowerShell.Cmdlets.Accounts.deps.json | 2413 ++ ...soft.Azure.PowerShell.Cmdlets.Accounts.dll | Bin 0 -> 461744 bytes ...e.PowerShell.Cmdlets.Accounts.dll-Help.xml | 11900 +++++++ ...icrosoft.Azure.PowerShell.Common.Share.dll | Bin 0 -> 27048 bytes .../Microsoft.Azure.PowerShell.Common.dll | Bin 0 -> 276368 bytes .../Microsoft.Azure.PowerShell.Storage.dll | Bin 0 -> 20392 bytes .../Microsoft.Azure.PowerShell.Strategies.dll | Bin 0 -> 65424 bytes .../Microsoft.Rest.ClientRuntime.Azure.dll | Bin 0 -> 97872 bytes .../2.7.5/Microsoft.Rest.ClientRuntime.dll | Bin 0 -> 80248 bytes ...soft.WindowsAzure.Storage.DataMovement.dll | Bin 0 -> 302784 bytes .../2.7.5/Microsoft.WindowsAzure.Storage.dll | Bin 0 -> 784496 bytes .../PostImportScripts/LoadAuthenticators.ps1 | 219 + .../2.7.5/PreloadAssemblies/Azure.Core.dll | Bin 0 -> 259448 bytes .../PreloadAssemblies/Azure.Identity.dll | Bin 0 -> 294288 bytes ...rosoft.Azure.PowerShell.Authenticators.dll | Bin 0 -> 85416 bytes .../Microsoft.Bcl.AsyncInterfaces.dll | Bin 0 -> 20856 bytes ...rosoft.Identity.Client.Extensions.Msal.dll | Bin 0 -> 61944 bytes .../Microsoft.Identity.Client.dll | Bin 0 -> 1421752 bytes .../Newtonsoft.Json.12.0.3.dll | Bin 0 -> 702400 bytes .../PreloadAssemblies/Newtonsoft.Json.dll | Bin 0 -> 663992 bytes .../PreloadAssemblies/System.Buffers.dll | Bin 0 -> 28304 bytes .../System.Diagnostics.DiagnosticSource.dll | Bin 0 -> 49528 bytes .../PreloadAssemblies/System.Memory.Data.dll | Bin 0 -> 21880 bytes .../2.7.5/PreloadAssemblies/System.Memory.dll | Bin 0 -> 148760 bytes .../System.Net.Http.WinHttpHandler.dll | Bin 0 -> 117656 bytes .../System.Numerics.Vectors.dll | Bin 0 -> 115856 bytes .../System.Private.ServiceModel.dll | Bin 0 -> 2318920 bytes .../System.Reflection.DispatchProxy.dll | Bin 0 -> 24992 bytes ...System.Runtime.CompilerServices.Unsafe.dll | Bin 0 -> 16760 bytes .../System.Security.AccessControl.dll | Bin 0 -> 54416 bytes .../System.Security.Cryptography.Cng.dll | Bin 0 -> 23976 bytes .../System.Security.Permissions.dll | Bin 0 -> 96400 bytes .../System.Security.Principal.Windows.dll | Bin 0 -> 39056 bytes .../System.ServiceModel.Primitives.dll | Bin 0 -> 21576 bytes .../System.Text.Encodings.Web.dll | Bin 0 -> 59768 bytes .../PreloadAssemblies/System.Text.Json.dll | Bin 0 -> 293248 bytes .../System.Threading.Tasks.Extensions.dll | Bin 0 -> 25984 bytes .../System.Xml.ReaderWriter.dll | Bin 0 -> 606592 bytes .../2.7.5/StartupScripts/AzError.ps1 | 278 + .../InitializeAssemblyResolver.ps1 | 234 + .../Az.Accounts/2.7.5/[Content_Types].xml | 14 + .../modules/Az.Accounts/2.7.5/_rels/.rels | 5 + .../Az.Accounts/2.7.5/en-US/about_az.help.txt | 50 + .../1aa0749a068a4238881858013f1a5b7f.psmdcp | 11 + .../generated/runtime/AsyncCommandRuntime.cs | 832 + .../eventgrid/generated/runtime/AsyncJob.cs | 270 + .../runtime/AsyncOperationResponse.cs | 177 + .../BuildTime/Cmdlets/ExportCmdletSurface.cs | 113 + .../BuildTime/Cmdlets/ExportExampleStub.cs | 74 + .../BuildTime/Cmdlets/ExportFormatPs1xml.cs | 101 + .../BuildTime/Cmdlets/ExportHelpMarkdown.cs | 53 + .../BuildTime/Cmdlets/ExportModelSurface.cs | 117 + .../BuildTime/Cmdlets/ExportProxyCmdlet.cs | 169 + .../runtime/BuildTime/Cmdlets/ExportPsd1.cs | 191 + .../BuildTime/Cmdlets/ExportTestStub.cs | 148 + .../BuildTime/Cmdlets/GetCommonParameter.cs | 52 + .../BuildTime/Cmdlets/GetModuleGuid.cs | 31 + .../BuildTime/Cmdlets/GetScriptCmdlet.cs | 54 + .../runtime/BuildTime/CollectionExtensions.cs | 20 + .../runtime/BuildTime/MarkdownRenderer.cs | 114 + .../runtime/BuildTime/Models/PsFormatTypes.cs | 138 + .../BuildTime/Models/PsHelpMarkdownOutputs.cs | 199 + .../runtime/BuildTime/Models/PsHelpTypes.cs | 202 + .../BuildTime/Models/PsMarkdownTypes.cs | 294 + .../BuildTime/Models/PsProxyOutputs.cs | 611 + .../runtime/BuildTime/Models/PsProxyTypes.cs | 514 + .../runtime/BuildTime/PsAttributes.cs | 114 + .../runtime/BuildTime/PsExtensions.cs | 169 + .../generated/runtime/BuildTime/PsHelpers.cs | 104 + .../runtime/BuildTime/StringExtensions.cs | 24 + .../runtime/BuildTime/XmlExtensions.cs | 28 + .../generated/runtime/CmdInfoHandler.cs | 40 + .../Conversions/ConversionException.cs | 17 + .../runtime/Conversions/IJsonConverter.cs | 13 + .../Conversions/Instances/BinaryConverter.cs | 24 + .../Conversions/Instances/BooleanConverter.cs | 13 + .../Instances/DateTimeConverter.cs | 18 + .../Instances/DateTimeOffsetConverter.cs | 15 + .../Conversions/Instances/DecimalConverter.cs | 16 + .../Conversions/Instances/DoubleConverter.cs | 13 + .../Conversions/Instances/EnumConverter.cs | 30 + .../Conversions/Instances/GuidConverter.cs | 15 + .../Instances/HashSet'1Converter.cs | 27 + .../Conversions/Instances/Int16Converter.cs | 13 + .../Conversions/Instances/Int32Converter.cs | 13 + .../Conversions/Instances/Int64Converter.cs | 13 + .../Instances/JsonArrayConverter.cs | 13 + .../Instances/JsonObjectConverter.cs | 13 + .../Conversions/Instances/SingleConverter.cs | 13 + .../Conversions/Instances/StringConverter.cs | 13 + .../Instances/TimeSpanConverter.cs | 15 + .../Conversions/Instances/UInt16Converter.cs | 13 + .../Conversions/Instances/UInt32Converter.cs | 13 + .../Conversions/Instances/UInt64Converter.cs | 13 + .../Conversions/Instances/UriConverter.cs | 15 + .../runtime/Conversions/JsonConverter.cs | 21 + .../Conversions/JsonConverterAttribute.cs | 18 + .../Conversions/JsonConverterFactory.cs | 91 + .../Conversions/StringLikeConverter.cs | 45 + .../Customizations/IJsonSerializable.cs | 263 + .../runtime/Customizations/JsonArray.cs | 13 + .../runtime/Customizations/JsonBoolean.cs | 16 + .../runtime/Customizations/JsonNode.cs | 21 + .../runtime/Customizations/JsonNumber.cs | 78 + .../runtime/Customizations/JsonObject.cs | 183 + .../runtime/Customizations/JsonString.cs | 34 + .../runtime/Customizations/XNodeArray.cs | 44 + .../eventgrid/generated/runtime/Debugging.cs | 28 + .../generated/runtime/DictionaryExtensions.cs | 33 + .../eventgrid/generated/runtime/EventData.cs | 78 + .../generated/runtime/EventDataExtensions.cs | 94 + .../generated/runtime/EventListener.cs | 247 + .../eventgrid/generated/runtime/Events.cs | 27 + .../generated/runtime/EventsExtensions.cs | 27 + .../eventgrid/generated/runtime/Extensions.cs | 117 + .../Extensions/StringBuilderExtensions.cs | 23 + .../Helpers/Extensions/TypeExtensions.cs | 61 + .../generated/runtime/Helpers/Seperator.cs | 11 + .../generated/runtime/Helpers/TypeDetails.cs | 116 + .../generated/runtime/Helpers/XHelper.cs | 75 + .../generated/runtime/HttpPipeline.cs | 88 + .../generated/runtime/HttpPipelineMocking.ps1 | 110 + .../generated/runtime/IAssociativeArray.cs | 24 + .../generated/runtime/IHeaderSerializable.cs | 14 + .../eventgrid/generated/runtime/ISendAsync.cs | 296 + .../generated/runtime/InfoAttribute.cs | 34 + .../generated/runtime/Iso/IsoDate.cs | 214 + .../eventgrid/generated/runtime/JsonType.cs | 18 + .../generated/runtime/MessageAttribute.cs | 360 + .../runtime/MessageAttributeHelper.cs | 161 + .../eventgrid/generated/runtime/Method.cs | 19 + .../generated/runtime/Models/JsonMember.cs | 83 + .../generated/runtime/Models/JsonModel.cs | 89 + .../runtime/Models/JsonModelCache.cs | 19 + .../runtime/Nodes/Collections/JsonArray.cs | 65 + .../Nodes/Collections/XImmutableArray.cs | 62 + .../runtime/Nodes/Collections/XList.cs | 64 + .../runtime/Nodes/Collections/XNodeArray.cs | 68 + .../runtime/Nodes/Collections/XSet.cs | 60 + .../generated/runtime/Nodes/JsonBoolean.cs | 42 + .../generated/runtime/Nodes/JsonDate.cs | 173 + .../generated/runtime/Nodes/JsonNode.cs | 250 + .../generated/runtime/Nodes/JsonNumber.cs | 109 + .../generated/runtime/Nodes/JsonObject.cs | 172 + .../generated/runtime/Nodes/JsonString.cs | 42 + .../generated/runtime/Nodes/XBinary.cs | 40 + .../generated/runtime/Nodes/XNull.cs | 15 + .../Parser/Exceptions/ParseException.cs | 24 + .../generated/runtime/Parser/JsonParser.cs | 180 + .../generated/runtime/Parser/JsonToken.cs | 66 + .../generated/runtime/Parser/JsonTokenizer.cs | 177 + .../generated/runtime/Parser/Location.cs | 43 + .../runtime/Parser/Readers/SourceReader.cs | 130 + .../generated/runtime/Parser/TokenReader.cs | 39 + .../generated/runtime/PipelineMocking.cs | 262 + .../runtime/Properties/Resources.Designer.cs | 5633 +++ .../runtime/Properties/Resources.resx | 1741 + .../eventgrid/generated/runtime/Response.cs | 27 + .../runtime/Serialization/JsonSerializer.cs | 350 + .../Serialization/PropertyTransformation.cs | 21 + .../Serialization/SerializationOptions.cs | 65 + .../generated/runtime/SerializationMode.cs | 16 + .../runtime/TypeConverterExtensions.cs | 211 + .../runtime/UndeclaredResponseException.cs | 112 + .../generated/runtime/Writers/JsonWriter.cs | 223 + .../eventgrid/generated/runtime/delegates.cs | 23 + swaggerci/eventgrid/how-to.md | 58 + .../internal/Az.EventGrid.internal.psm1 | 38 + .../internal/Get-AzEventGridOperation.ps1 | 122 + .../internal/ProxyCmdletDefinitions.ps1 | 122 + swaggerci/eventgrid/internal/README.md | 14 + swaggerci/eventgrid/license.txt | 227 + swaggerci/eventgrid/pack-module.ps1 | 9 + swaggerci/eventgrid/readme.md | 10 + swaggerci/eventgrid/resources/README.md | 11 + swaggerci/eventgrid/run-module.ps1 | 54 + swaggerci/eventgrid/test-module.ps1 | 86 + .../test/Get-AzEventGridChannel.Tests.ps1 | 29 + .../Get-AzEventGridChannelFullUrl.Tests.ps1 | 25 + .../test/Get-AzEventGridDomain.Tests.ps1 | 33 + ...EventGridDomainEventSubscription.Tests.ps1 | 29 + ...entSubscriptionDeliveryAttribute.Tests.ps1 | 25 + ...idDomainEventSubscriptionFullUrl.Tests.ps1 | 25 + ...AzEventGridDomainSharedAccessKey.Tests.ps1 | 21 + .../test/Get-AzEventGridDomainTopic.Tests.ps1 | 29 + ...GridDomainTopicEventSubscription.Tests.ps1 | 29 + ...entSubscriptionDeliveryAttribute.Tests.ps1 | 25 + ...ainTopicEventSubscriptionFullUrl.Tests.ps1 | 25 + .../Get-AzEventGridEventChannel.Tests.ps1 | 29 + ...Get-AzEventGridEventSubscription.Tests.ps1 | 33 + ...entSubscriptionDeliveryAttribute.Tests.ps1 | 25 + ...ventGridEventSubscriptionFullUrl.Tests.ps1 | 25 + ...EventGridEventSubscriptionGlobal.Tests.ps1 | 33 + ...entGridEventSubscriptionRegional.Tests.ps1 | 33 + .../Get-AzEventGridExtensionTopic.Tests.ps1 | 25 + ...-AzEventGridPartnerConfiguration.Tests.ps1 | 33 + ...et-AzEventGridPartnerDestination.Tests.ps1 | 33 + .../Get-AzEventGridPartnerNamespace.Tests.ps1 | 33 + ...dPartnerNamespaceSharedAccessKey.Tests.ps1 | 21 + ...t-AzEventGridPartnerRegistration.Tests.ps1 | 33 + .../Get-AzEventGridPartnerTopic.Tests.ps1 | 33 + ...ridPartnerTopicEventSubscription.Tests.ps1 | 29 + ...entSubscriptionDeliveryAttribute.Tests.ps1 | 25 + ...nerTopicEventSubscriptionFullUrl.Tests.ps1 | 25 + ...entGridPrivateEndpointConnection.Tests.ps1 | 29 + ...t-AzEventGridPrivateLinkResource.Tests.ps1 | 29 + .../test/Get-AzEventGridSystemTopic.Tests.ps1 | 33 + ...GridSystemTopicEventSubscription.Tests.ps1 | 29 + ...entSubscriptionDeliveryAttribute.Tests.ps1 | 25 + ...temTopicEventSubscriptionFullUrl.Tests.ps1 | 25 + .../test/Get-AzEventGridTopic.Tests.ps1 | 33 + ...zEventGridTopicEventSubscription.Tests.ps1 | 29 + ...entSubscriptionDeliveryAttribute.Tests.ps1 | 25 + ...ridTopicEventSubscriptionFullUrl.Tests.ps1 | 25 + .../Get-AzEventGridTopicEventType.Tests.ps1 | 21 + ...-AzEventGridTopicSharedAccessKey.Tests.ps1 | 21 + .../test/Get-AzEventGridTopicType.Tests.ps1 | 29 + ...et-AzEventGridTopicTypeEventType.Tests.ps1 | 21 + .../Get-AzEventGridVerifiedPartner.Tests.ps1 | 29 + ...tGridPartnerConfigurationPartner.Tests.ps1 | 33 + ...ze-AzEventGridPartnerDestination.Tests.ps1 | 25 + ...itialize-AzEventGridPartnerTopic.Tests.ps1 | 25 + ...zEventGridDeactivatePartnerTopic.Tests.ps1 | 25 + ...dPartnerConfigurationUnauthorize.Tests.ps1 | 33 + .../test/New-AzEventGridChannel.Tests.ps1 | 21 + .../test/New-AzEventGridDomain.Tests.ps1 | 21 + ...EventGridDomainEventSubscription.Tests.ps1 | 21 + .../test/New-AzEventGridDomainKey.Tests.ps1 | 33 + ...GridDomainTopicEventSubscription.Tests.ps1 | 21 + .../New-AzEventGridEventChannel.Tests.ps1 | 21 + ...New-AzEventGridEventSubscription.Tests.ps1 | 21 + ...-AzEventGridPartnerConfiguration.Tests.ps1 | 21 + ...ew-AzEventGridPartnerDestination.Tests.ps1 | 21 + .../New-AzEventGridPartnerNamespace.Tests.ps1 | 21 + ...w-AzEventGridPartnerNamespaceKey.Tests.ps1 | 33 + ...w-AzEventGridPartnerRegistration.Tests.ps1 | 21 + .../New-AzEventGridPartnerTopic.Tests.ps1 | 21 + ...ridPartnerTopicEventSubscription.Tests.ps1 | 21 + .../test/New-AzEventGridSystemTopic.Tests.ps1 | 21 + ...GridSystemTopicEventSubscription.Tests.ps1 | 21 + .../test/New-AzEventGridTopic.Tests.ps1 | 21 + ...zEventGridTopicEventSubscription.Tests.ps1 | 21 + .../test/New-AzEventGridTopicKey.Tests.ps1 | 33 + swaggerci/eventgrid/test/README.md | 17 + .../test/Remove-AzEventGridChannel.Tests.ps1 | 25 + .../test/Remove-AzEventGridDomain.Tests.ps1 | 25 + ...EventGridDomainEventSubscription.Tests.ps1 | 25 + .../Remove-AzEventGridDomainTopic.Tests.ps1 | 25 + ...GridDomainTopicEventSubscription.Tests.ps1 | 25 + .../Remove-AzEventGridEventChannel.Tests.ps1 | 25 + ...ove-AzEventGridEventSubscription.Tests.ps1 | 25 + ...-AzEventGridPartnerConfiguration.Tests.ps1 | 25 + ...ve-AzEventGridPartnerDestination.Tests.ps1 | 25 + ...move-AzEventGridPartnerNamespace.Tests.ps1 | 25 + ...e-AzEventGridPartnerRegistration.Tests.ps1 | 25 + .../Remove-AzEventGridPartnerTopic.Tests.ps1 | 25 + ...ridPartnerTopicEventSubscription.Tests.ps1 | 25 + ...entGridPrivateEndpointConnection.Tests.ps1 | 25 + .../Remove-AzEventGridSystemTopic.Tests.ps1 | 25 + ...GridSystemTopicEventSubscription.Tests.ps1 | 25 + .../test/Remove-AzEventGridTopic.Tests.ps1 | 25 + ...zEventGridTopicEventSubscription.Tests.ps1 | 25 + .../test/Update-AzEventGridChannel.Tests.ps1 | 25 + .../test/Update-AzEventGridDomain.Tests.ps1 | 25 + ...EventGridDomainEventSubscription.Tests.ps1 | 25 + ...GridDomainTopicEventSubscription.Tests.ps1 | 25 + ...ate-AzEventGridEventSubscription.Tests.ps1 | 25 + ...-AzEventGridPartnerConfiguration.Tests.ps1 | 25 + ...te-AzEventGridPartnerDestination.Tests.ps1 | 25 + ...date-AzEventGridPartnerNamespace.Tests.ps1 | 25 + ...e-AzEventGridPartnerRegistration.Tests.ps1 | 25 + .../Update-AzEventGridPartnerTopic.Tests.ps1 | 25 + ...ridPartnerTopicEventSubscription.Tests.ps1 | 25 + .../Update-AzEventGridSystemTopic.Tests.ps1 | 25 + ...GridSystemTopicEventSubscription.Tests.ps1 | 25 + .../test/Update-AzEventGridTopic.Tests.ps1 | 25 + ...zEventGridTopicEventSubscription.Tests.ps1 | 25 + swaggerci/eventgrid/test/loadEnv.ps1 | 21 + swaggerci/eventgrid/test/utils.ps1 | 31 + .../utils/Unprotect-SecureString.ps1 | 16 + 1690 files changed, 376198 insertions(+) create mode 100644 swaggerci/eventgrid/.gitattributes create mode 100644 swaggerci/eventgrid/.gitignore create mode 100644 swaggerci/eventgrid/Az.EventGrid.csproj create mode 100644 swaggerci/eventgrid/Az.EventGrid.format.ps1xml create mode 100644 swaggerci/eventgrid/Az.EventGrid.nuspec create mode 100644 swaggerci/eventgrid/Az.EventGrid.psd1 create mode 100644 swaggerci/eventgrid/Az.EventGrid.psm1 create mode 100644 swaggerci/eventgrid/MSSharedLibKey.snk create mode 100644 swaggerci/eventgrid/README.md create mode 100644 swaggerci/eventgrid/build-module.ps1 create mode 100644 swaggerci/eventgrid/check-dependencies.ps1 create mode 100644 swaggerci/eventgrid/create-model-cmdlets.ps1 create mode 100644 swaggerci/eventgrid/custom/Az.EventGrid.custom.psm1 create mode 100644 swaggerci/eventgrid/custom/README.md create mode 100644 swaggerci/eventgrid/docs/Az.EventGrid.md create mode 100644 swaggerci/eventgrid/docs/Get-AzEventGridChannel.md create mode 100644 swaggerci/eventgrid/docs/Get-AzEventGridChannelFullUrl.md create mode 100644 swaggerci/eventgrid/docs/Get-AzEventGridDomain.md create mode 100644 swaggerci/eventgrid/docs/Get-AzEventGridDomainEventSubscription.md create mode 100644 swaggerci/eventgrid/docs/Get-AzEventGridDomainEventSubscriptionDeliveryAttribute.md create mode 100644 swaggerci/eventgrid/docs/Get-AzEventGridDomainEventSubscriptionFullUrl.md create mode 100644 swaggerci/eventgrid/docs/Get-AzEventGridDomainSharedAccessKey.md create mode 100644 swaggerci/eventgrid/docs/Get-AzEventGridDomainTopic.md create mode 100644 swaggerci/eventgrid/docs/Get-AzEventGridDomainTopicEventSubscription.md create mode 100644 swaggerci/eventgrid/docs/Get-AzEventGridDomainTopicEventSubscriptionDeliveryAttribute.md create mode 100644 swaggerci/eventgrid/docs/Get-AzEventGridDomainTopicEventSubscriptionFullUrl.md create mode 100644 swaggerci/eventgrid/docs/Get-AzEventGridEventChannel.md create mode 100644 swaggerci/eventgrid/docs/Get-AzEventGridEventSubscription.md create mode 100644 swaggerci/eventgrid/docs/Get-AzEventGridEventSubscriptionDeliveryAttribute.md create mode 100644 swaggerci/eventgrid/docs/Get-AzEventGridEventSubscriptionFullUrl.md create mode 100644 swaggerci/eventgrid/docs/Get-AzEventGridEventSubscriptionGlobal.md create mode 100644 swaggerci/eventgrid/docs/Get-AzEventGridEventSubscriptionRegional.md create mode 100644 swaggerci/eventgrid/docs/Get-AzEventGridExtensionTopic.md create mode 100644 swaggerci/eventgrid/docs/Get-AzEventGridPartnerConfiguration.md create mode 100644 swaggerci/eventgrid/docs/Get-AzEventGridPartnerDestination.md create mode 100644 swaggerci/eventgrid/docs/Get-AzEventGridPartnerNamespace.md create mode 100644 swaggerci/eventgrid/docs/Get-AzEventGridPartnerNamespaceSharedAccessKey.md create mode 100644 swaggerci/eventgrid/docs/Get-AzEventGridPartnerRegistration.md create mode 100644 swaggerci/eventgrid/docs/Get-AzEventGridPartnerTopic.md create mode 100644 swaggerci/eventgrid/docs/Get-AzEventGridPartnerTopicEventSubscription.md create mode 100644 swaggerci/eventgrid/docs/Get-AzEventGridPartnerTopicEventSubscriptionDeliveryAttribute.md create mode 100644 swaggerci/eventgrid/docs/Get-AzEventGridPartnerTopicEventSubscriptionFullUrl.md create mode 100644 swaggerci/eventgrid/docs/Get-AzEventGridPrivateEndpointConnection.md create mode 100644 swaggerci/eventgrid/docs/Get-AzEventGridPrivateLinkResource.md create mode 100644 swaggerci/eventgrid/docs/Get-AzEventGridSystemTopic.md create mode 100644 swaggerci/eventgrid/docs/Get-AzEventGridSystemTopicEventSubscription.md create mode 100644 swaggerci/eventgrid/docs/Get-AzEventGridSystemTopicEventSubscriptionDeliveryAttribute.md create mode 100644 swaggerci/eventgrid/docs/Get-AzEventGridSystemTopicEventSubscriptionFullUrl.md create mode 100644 swaggerci/eventgrid/docs/Get-AzEventGridTopic.md create mode 100644 swaggerci/eventgrid/docs/Get-AzEventGridTopicEventSubscription.md create mode 100644 swaggerci/eventgrid/docs/Get-AzEventGridTopicEventSubscriptionDeliveryAttribute.md create mode 100644 swaggerci/eventgrid/docs/Get-AzEventGridTopicEventSubscriptionFullUrl.md create mode 100644 swaggerci/eventgrid/docs/Get-AzEventGridTopicEventType.md create mode 100644 swaggerci/eventgrid/docs/Get-AzEventGridTopicSharedAccessKey.md create mode 100644 swaggerci/eventgrid/docs/Get-AzEventGridTopicType.md create mode 100644 swaggerci/eventgrid/docs/Get-AzEventGridTopicTypeEventType.md create mode 100644 swaggerci/eventgrid/docs/Get-AzEventGridVerifiedPartner.md create mode 100644 swaggerci/eventgrid/docs/Grant-AzEventGridPartnerConfigurationPartner.md create mode 100644 swaggerci/eventgrid/docs/Initialize-AzEventGridPartnerDestination.md create mode 100644 swaggerci/eventgrid/docs/Initialize-AzEventGridPartnerTopic.md create mode 100644 swaggerci/eventgrid/docs/Invoke-AzEventGridDeactivatePartnerTopic.md create mode 100644 swaggerci/eventgrid/docs/Invoke-AzEventGridPartnerConfigurationUnauthorize.md create mode 100644 swaggerci/eventgrid/docs/New-AzEventGridChannel.md create mode 100644 swaggerci/eventgrid/docs/New-AzEventGridDomain.md create mode 100644 swaggerci/eventgrid/docs/New-AzEventGridDomainEventSubscription.md create mode 100644 swaggerci/eventgrid/docs/New-AzEventGridDomainKey.md create mode 100644 swaggerci/eventgrid/docs/New-AzEventGridDomainTopicEventSubscription.md create mode 100644 swaggerci/eventgrid/docs/New-AzEventGridEventChannel.md create mode 100644 swaggerci/eventgrid/docs/New-AzEventGridEventSubscription.md create mode 100644 swaggerci/eventgrid/docs/New-AzEventGridPartnerConfiguration.md create mode 100644 swaggerci/eventgrid/docs/New-AzEventGridPartnerDestination.md create mode 100644 swaggerci/eventgrid/docs/New-AzEventGridPartnerNamespace.md create mode 100644 swaggerci/eventgrid/docs/New-AzEventGridPartnerNamespaceKey.md create mode 100644 swaggerci/eventgrid/docs/New-AzEventGridPartnerRegistration.md create mode 100644 swaggerci/eventgrid/docs/New-AzEventGridPartnerTopic.md create mode 100644 swaggerci/eventgrid/docs/New-AzEventGridPartnerTopicEventSubscription.md create mode 100644 swaggerci/eventgrid/docs/New-AzEventGridSystemTopic.md create mode 100644 swaggerci/eventgrid/docs/New-AzEventGridSystemTopicEventSubscription.md create mode 100644 swaggerci/eventgrid/docs/New-AzEventGridTopic.md create mode 100644 swaggerci/eventgrid/docs/New-AzEventGridTopicEventSubscription.md create mode 100644 swaggerci/eventgrid/docs/New-AzEventGridTopicKey.md create mode 100644 swaggerci/eventgrid/docs/README.md create mode 100644 swaggerci/eventgrid/docs/Remove-AzEventGridChannel.md create mode 100644 swaggerci/eventgrid/docs/Remove-AzEventGridDomain.md create mode 100644 swaggerci/eventgrid/docs/Remove-AzEventGridDomainEventSubscription.md create mode 100644 swaggerci/eventgrid/docs/Remove-AzEventGridDomainTopic.md create mode 100644 swaggerci/eventgrid/docs/Remove-AzEventGridDomainTopicEventSubscription.md create mode 100644 swaggerci/eventgrid/docs/Remove-AzEventGridEventChannel.md create mode 100644 swaggerci/eventgrid/docs/Remove-AzEventGridEventSubscription.md create mode 100644 swaggerci/eventgrid/docs/Remove-AzEventGridPartnerConfiguration.md create mode 100644 swaggerci/eventgrid/docs/Remove-AzEventGridPartnerDestination.md create mode 100644 swaggerci/eventgrid/docs/Remove-AzEventGridPartnerNamespace.md create mode 100644 swaggerci/eventgrid/docs/Remove-AzEventGridPartnerRegistration.md create mode 100644 swaggerci/eventgrid/docs/Remove-AzEventGridPartnerTopic.md create mode 100644 swaggerci/eventgrid/docs/Remove-AzEventGridPartnerTopicEventSubscription.md create mode 100644 swaggerci/eventgrid/docs/Remove-AzEventGridPrivateEndpointConnection.md create mode 100644 swaggerci/eventgrid/docs/Remove-AzEventGridSystemTopic.md create mode 100644 swaggerci/eventgrid/docs/Remove-AzEventGridSystemTopicEventSubscription.md create mode 100644 swaggerci/eventgrid/docs/Remove-AzEventGridTopic.md create mode 100644 swaggerci/eventgrid/docs/Remove-AzEventGridTopicEventSubscription.md create mode 100644 swaggerci/eventgrid/docs/Update-AzEventGridChannel.md create mode 100644 swaggerci/eventgrid/docs/Update-AzEventGridDomain.md create mode 100644 swaggerci/eventgrid/docs/Update-AzEventGridDomainEventSubscription.md create mode 100644 swaggerci/eventgrid/docs/Update-AzEventGridDomainTopicEventSubscription.md create mode 100644 swaggerci/eventgrid/docs/Update-AzEventGridEventSubscription.md create mode 100644 swaggerci/eventgrid/docs/Update-AzEventGridPartnerConfiguration.md create mode 100644 swaggerci/eventgrid/docs/Update-AzEventGridPartnerDestination.md create mode 100644 swaggerci/eventgrid/docs/Update-AzEventGridPartnerNamespace.md create mode 100644 swaggerci/eventgrid/docs/Update-AzEventGridPartnerRegistration.md create mode 100644 swaggerci/eventgrid/docs/Update-AzEventGridPartnerTopic.md create mode 100644 swaggerci/eventgrid/docs/Update-AzEventGridPartnerTopicEventSubscription.md create mode 100644 swaggerci/eventgrid/docs/Update-AzEventGridSystemTopic.md create mode 100644 swaggerci/eventgrid/docs/Update-AzEventGridSystemTopicEventSubscription.md create mode 100644 swaggerci/eventgrid/docs/Update-AzEventGridTopic.md create mode 100644 swaggerci/eventgrid/docs/Update-AzEventGridTopicEventSubscription.md create mode 100644 swaggerci/eventgrid/examples/Get-AzEventGridChannel.md create mode 100644 swaggerci/eventgrid/examples/Get-AzEventGridChannelFullUrl.md create mode 100644 swaggerci/eventgrid/examples/Get-AzEventGridDomain.md create mode 100644 swaggerci/eventgrid/examples/Get-AzEventGridDomainEventSubscription.md create mode 100644 swaggerci/eventgrid/examples/Get-AzEventGridDomainEventSubscriptionDeliveryAttribute.md create mode 100644 swaggerci/eventgrid/examples/Get-AzEventGridDomainEventSubscriptionFullUrl.md create mode 100644 swaggerci/eventgrid/examples/Get-AzEventGridDomainSharedAccessKey.md create mode 100644 swaggerci/eventgrid/examples/Get-AzEventGridDomainTopic.md create mode 100644 swaggerci/eventgrid/examples/Get-AzEventGridDomainTopicEventSubscription.md create mode 100644 swaggerci/eventgrid/examples/Get-AzEventGridDomainTopicEventSubscriptionDeliveryAttribute.md create mode 100644 swaggerci/eventgrid/examples/Get-AzEventGridDomainTopicEventSubscriptionFullUrl.md create mode 100644 swaggerci/eventgrid/examples/Get-AzEventGridEventChannel.md create mode 100644 swaggerci/eventgrid/examples/Get-AzEventGridEventSubscription.md create mode 100644 swaggerci/eventgrid/examples/Get-AzEventGridEventSubscriptionDeliveryAttribute.md create mode 100644 swaggerci/eventgrid/examples/Get-AzEventGridEventSubscriptionFullUrl.md create mode 100644 swaggerci/eventgrid/examples/Get-AzEventGridEventSubscriptionGlobal.md create mode 100644 swaggerci/eventgrid/examples/Get-AzEventGridEventSubscriptionRegional.md create mode 100644 swaggerci/eventgrid/examples/Get-AzEventGridExtensionTopic.md create mode 100644 swaggerci/eventgrid/examples/Get-AzEventGridPartnerConfiguration.md create mode 100644 swaggerci/eventgrid/examples/Get-AzEventGridPartnerDestination.md create mode 100644 swaggerci/eventgrid/examples/Get-AzEventGridPartnerNamespace.md create mode 100644 swaggerci/eventgrid/examples/Get-AzEventGridPartnerNamespaceSharedAccessKey.md create mode 100644 swaggerci/eventgrid/examples/Get-AzEventGridPartnerRegistration.md create mode 100644 swaggerci/eventgrid/examples/Get-AzEventGridPartnerTopic.md create mode 100644 swaggerci/eventgrid/examples/Get-AzEventGridPartnerTopicEventSubscription.md create mode 100644 swaggerci/eventgrid/examples/Get-AzEventGridPartnerTopicEventSubscriptionDeliveryAttribute.md create mode 100644 swaggerci/eventgrid/examples/Get-AzEventGridPartnerTopicEventSubscriptionFullUrl.md create mode 100644 swaggerci/eventgrid/examples/Get-AzEventGridPrivateEndpointConnection.md create mode 100644 swaggerci/eventgrid/examples/Get-AzEventGridPrivateLinkResource.md create mode 100644 swaggerci/eventgrid/examples/Get-AzEventGridSystemTopic.md create mode 100644 swaggerci/eventgrid/examples/Get-AzEventGridSystemTopicEventSubscription.md create mode 100644 swaggerci/eventgrid/examples/Get-AzEventGridSystemTopicEventSubscriptionDeliveryAttribute.md create mode 100644 swaggerci/eventgrid/examples/Get-AzEventGridSystemTopicEventSubscriptionFullUrl.md create mode 100644 swaggerci/eventgrid/examples/Get-AzEventGridTopic.md create mode 100644 swaggerci/eventgrid/examples/Get-AzEventGridTopicEventSubscription.md create mode 100644 swaggerci/eventgrid/examples/Get-AzEventGridTopicEventSubscriptionDeliveryAttribute.md create mode 100644 swaggerci/eventgrid/examples/Get-AzEventGridTopicEventSubscriptionFullUrl.md create mode 100644 swaggerci/eventgrid/examples/Get-AzEventGridTopicEventType.md create mode 100644 swaggerci/eventgrid/examples/Get-AzEventGridTopicSharedAccessKey.md create mode 100644 swaggerci/eventgrid/examples/Get-AzEventGridTopicType.md create mode 100644 swaggerci/eventgrid/examples/Get-AzEventGridTopicTypeEventType.md create mode 100644 swaggerci/eventgrid/examples/Get-AzEventGridVerifiedPartner.md create mode 100644 swaggerci/eventgrid/examples/Grant-AzEventGridPartnerConfigurationPartner.md create mode 100644 swaggerci/eventgrid/examples/Initialize-AzEventGridPartnerDestination.md create mode 100644 swaggerci/eventgrid/examples/Initialize-AzEventGridPartnerTopic.md create mode 100644 swaggerci/eventgrid/examples/Invoke-AzEventGridDeactivatePartnerTopic.md create mode 100644 swaggerci/eventgrid/examples/Invoke-AzEventGridPartnerConfigurationUnauthorize.md create mode 100644 swaggerci/eventgrid/examples/New-AzEventGridChannel.md create mode 100644 swaggerci/eventgrid/examples/New-AzEventGridDomain.md create mode 100644 swaggerci/eventgrid/examples/New-AzEventGridDomainEventSubscription.md create mode 100644 swaggerci/eventgrid/examples/New-AzEventGridDomainKey.md create mode 100644 swaggerci/eventgrid/examples/New-AzEventGridDomainTopicEventSubscription.md create mode 100644 swaggerci/eventgrid/examples/New-AzEventGridEventChannel.md create mode 100644 swaggerci/eventgrid/examples/New-AzEventGridEventSubscription.md create mode 100644 swaggerci/eventgrid/examples/New-AzEventGridPartnerConfiguration.md create mode 100644 swaggerci/eventgrid/examples/New-AzEventGridPartnerDestination.md create mode 100644 swaggerci/eventgrid/examples/New-AzEventGridPartnerNamespace.md create mode 100644 swaggerci/eventgrid/examples/New-AzEventGridPartnerNamespaceKey.md create mode 100644 swaggerci/eventgrid/examples/New-AzEventGridPartnerRegistration.md create mode 100644 swaggerci/eventgrid/examples/New-AzEventGridPartnerTopic.md create mode 100644 swaggerci/eventgrid/examples/New-AzEventGridPartnerTopicEventSubscription.md create mode 100644 swaggerci/eventgrid/examples/New-AzEventGridSystemTopic.md create mode 100644 swaggerci/eventgrid/examples/New-AzEventGridSystemTopicEventSubscription.md create mode 100644 swaggerci/eventgrid/examples/New-AzEventGridTopic.md create mode 100644 swaggerci/eventgrid/examples/New-AzEventGridTopicEventSubscription.md create mode 100644 swaggerci/eventgrid/examples/New-AzEventGridTopicKey.md create mode 100644 swaggerci/eventgrid/examples/Remove-AzEventGridChannel.md create mode 100644 swaggerci/eventgrid/examples/Remove-AzEventGridDomain.md create mode 100644 swaggerci/eventgrid/examples/Remove-AzEventGridDomainEventSubscription.md create mode 100644 swaggerci/eventgrid/examples/Remove-AzEventGridDomainTopic.md create mode 100644 swaggerci/eventgrid/examples/Remove-AzEventGridDomainTopicEventSubscription.md create mode 100644 swaggerci/eventgrid/examples/Remove-AzEventGridEventChannel.md create mode 100644 swaggerci/eventgrid/examples/Remove-AzEventGridEventSubscription.md create mode 100644 swaggerci/eventgrid/examples/Remove-AzEventGridPartnerConfiguration.md create mode 100644 swaggerci/eventgrid/examples/Remove-AzEventGridPartnerDestination.md create mode 100644 swaggerci/eventgrid/examples/Remove-AzEventGridPartnerNamespace.md create mode 100644 swaggerci/eventgrid/examples/Remove-AzEventGridPartnerRegistration.md create mode 100644 swaggerci/eventgrid/examples/Remove-AzEventGridPartnerTopic.md create mode 100644 swaggerci/eventgrid/examples/Remove-AzEventGridPartnerTopicEventSubscription.md create mode 100644 swaggerci/eventgrid/examples/Remove-AzEventGridPrivateEndpointConnection.md create mode 100644 swaggerci/eventgrid/examples/Remove-AzEventGridSystemTopic.md create mode 100644 swaggerci/eventgrid/examples/Remove-AzEventGridSystemTopicEventSubscription.md create mode 100644 swaggerci/eventgrid/examples/Remove-AzEventGridTopic.md create mode 100644 swaggerci/eventgrid/examples/Remove-AzEventGridTopicEventSubscription.md create mode 100644 swaggerci/eventgrid/examples/Update-AzEventGridChannel.md create mode 100644 swaggerci/eventgrid/examples/Update-AzEventGridDomain.md create mode 100644 swaggerci/eventgrid/examples/Update-AzEventGridDomainEventSubscription.md create mode 100644 swaggerci/eventgrid/examples/Update-AzEventGridDomainTopicEventSubscription.md create mode 100644 swaggerci/eventgrid/examples/Update-AzEventGridEventSubscription.md create mode 100644 swaggerci/eventgrid/examples/Update-AzEventGridPartnerConfiguration.md create mode 100644 swaggerci/eventgrid/examples/Update-AzEventGridPartnerDestination.md create mode 100644 swaggerci/eventgrid/examples/Update-AzEventGridPartnerNamespace.md create mode 100644 swaggerci/eventgrid/examples/Update-AzEventGridPartnerRegistration.md create mode 100644 swaggerci/eventgrid/examples/Update-AzEventGridPartnerTopic.md create mode 100644 swaggerci/eventgrid/examples/Update-AzEventGridPartnerTopicEventSubscription.md create mode 100644 swaggerci/eventgrid/examples/Update-AzEventGridSystemTopic.md create mode 100644 swaggerci/eventgrid/examples/Update-AzEventGridSystemTopicEventSubscription.md create mode 100644 swaggerci/eventgrid/examples/Update-AzEventGridTopic.md create mode 100644 swaggerci/eventgrid/examples/Update-AzEventGridTopicEventSubscription.md create mode 100644 swaggerci/eventgrid/export-surface.ps1 create mode 100644 swaggerci/eventgrid/exports/Get-AzEventGridChannel.ps1 create mode 100644 swaggerci/eventgrid/exports/Get-AzEventGridChannelFullUrl.ps1 create mode 100644 swaggerci/eventgrid/exports/Get-AzEventGridDomain.ps1 create mode 100644 swaggerci/eventgrid/exports/Get-AzEventGridDomainEventSubscription.ps1 create mode 100644 swaggerci/eventgrid/exports/Get-AzEventGridDomainEventSubscriptionDeliveryAttribute.ps1 create mode 100644 swaggerci/eventgrid/exports/Get-AzEventGridDomainEventSubscriptionFullUrl.ps1 create mode 100644 swaggerci/eventgrid/exports/Get-AzEventGridDomainSharedAccessKey.ps1 create mode 100644 swaggerci/eventgrid/exports/Get-AzEventGridDomainTopic.ps1 create mode 100644 swaggerci/eventgrid/exports/Get-AzEventGridDomainTopicEventSubscription.ps1 create mode 100644 swaggerci/eventgrid/exports/Get-AzEventGridDomainTopicEventSubscriptionDeliveryAttribute.ps1 create mode 100644 swaggerci/eventgrid/exports/Get-AzEventGridDomainTopicEventSubscriptionFullUrl.ps1 create mode 100644 swaggerci/eventgrid/exports/Get-AzEventGridEventChannel.ps1 create mode 100644 swaggerci/eventgrid/exports/Get-AzEventGridEventSubscription.ps1 create mode 100644 swaggerci/eventgrid/exports/Get-AzEventGridEventSubscriptionDeliveryAttribute.ps1 create mode 100644 swaggerci/eventgrid/exports/Get-AzEventGridEventSubscriptionFullUrl.ps1 create mode 100644 swaggerci/eventgrid/exports/Get-AzEventGridEventSubscriptionGlobal.ps1 create mode 100644 swaggerci/eventgrid/exports/Get-AzEventGridEventSubscriptionRegional.ps1 create mode 100644 swaggerci/eventgrid/exports/Get-AzEventGridExtensionTopic.ps1 create mode 100644 swaggerci/eventgrid/exports/Get-AzEventGridPartnerConfiguration.ps1 create mode 100644 swaggerci/eventgrid/exports/Get-AzEventGridPartnerDestination.ps1 create mode 100644 swaggerci/eventgrid/exports/Get-AzEventGridPartnerNamespace.ps1 create mode 100644 swaggerci/eventgrid/exports/Get-AzEventGridPartnerNamespaceSharedAccessKey.ps1 create mode 100644 swaggerci/eventgrid/exports/Get-AzEventGridPartnerRegistration.ps1 create mode 100644 swaggerci/eventgrid/exports/Get-AzEventGridPartnerTopic.ps1 create mode 100644 swaggerci/eventgrid/exports/Get-AzEventGridPartnerTopicEventSubscription.ps1 create mode 100644 swaggerci/eventgrid/exports/Get-AzEventGridPartnerTopicEventSubscriptionDeliveryAttribute.ps1 create mode 100644 swaggerci/eventgrid/exports/Get-AzEventGridPartnerTopicEventSubscriptionFullUrl.ps1 create mode 100644 swaggerci/eventgrid/exports/Get-AzEventGridPrivateEndpointConnection.ps1 create mode 100644 swaggerci/eventgrid/exports/Get-AzEventGridPrivateLinkResource.ps1 create mode 100644 swaggerci/eventgrid/exports/Get-AzEventGridSystemTopic.ps1 create mode 100644 swaggerci/eventgrid/exports/Get-AzEventGridSystemTopicEventSubscription.ps1 create mode 100644 swaggerci/eventgrid/exports/Get-AzEventGridSystemTopicEventSubscriptionDeliveryAttribute.ps1 create mode 100644 swaggerci/eventgrid/exports/Get-AzEventGridSystemTopicEventSubscriptionFullUrl.ps1 create mode 100644 swaggerci/eventgrid/exports/Get-AzEventGridTopic.ps1 create mode 100644 swaggerci/eventgrid/exports/Get-AzEventGridTopicEventSubscription.ps1 create mode 100644 swaggerci/eventgrid/exports/Get-AzEventGridTopicEventSubscriptionDeliveryAttribute.ps1 create mode 100644 swaggerci/eventgrid/exports/Get-AzEventGridTopicEventSubscriptionFullUrl.ps1 create mode 100644 swaggerci/eventgrid/exports/Get-AzEventGridTopicEventType.ps1 create mode 100644 swaggerci/eventgrid/exports/Get-AzEventGridTopicSharedAccessKey.ps1 create mode 100644 swaggerci/eventgrid/exports/Get-AzEventGridTopicType.ps1 create mode 100644 swaggerci/eventgrid/exports/Get-AzEventGridTopicTypeEventType.ps1 create mode 100644 swaggerci/eventgrid/exports/Get-AzEventGridVerifiedPartner.ps1 create mode 100644 swaggerci/eventgrid/exports/Grant-AzEventGridPartnerConfigurationPartner.ps1 create mode 100644 swaggerci/eventgrid/exports/Initialize-AzEventGridPartnerDestination.ps1 create mode 100644 swaggerci/eventgrid/exports/Initialize-AzEventGridPartnerTopic.ps1 create mode 100644 swaggerci/eventgrid/exports/Invoke-AzEventGridDeactivatePartnerTopic.ps1 create mode 100644 swaggerci/eventgrid/exports/Invoke-AzEventGridPartnerConfigurationUnauthorize.ps1 create mode 100644 swaggerci/eventgrid/exports/New-AzEventGridChannel.ps1 create mode 100644 swaggerci/eventgrid/exports/New-AzEventGridDomain.ps1 create mode 100644 swaggerci/eventgrid/exports/New-AzEventGridDomainEventSubscription.ps1 create mode 100644 swaggerci/eventgrid/exports/New-AzEventGridDomainKey.ps1 create mode 100644 swaggerci/eventgrid/exports/New-AzEventGridDomainTopicEventSubscription.ps1 create mode 100644 swaggerci/eventgrid/exports/New-AzEventGridEventChannel.ps1 create mode 100644 swaggerci/eventgrid/exports/New-AzEventGridEventSubscription.ps1 create mode 100644 swaggerci/eventgrid/exports/New-AzEventGridPartnerConfiguration.ps1 create mode 100644 swaggerci/eventgrid/exports/New-AzEventGridPartnerDestination.ps1 create mode 100644 swaggerci/eventgrid/exports/New-AzEventGridPartnerNamespace.ps1 create mode 100644 swaggerci/eventgrid/exports/New-AzEventGridPartnerNamespaceKey.ps1 create mode 100644 swaggerci/eventgrid/exports/New-AzEventGridPartnerRegistration.ps1 create mode 100644 swaggerci/eventgrid/exports/New-AzEventGridPartnerTopic.ps1 create mode 100644 swaggerci/eventgrid/exports/New-AzEventGridPartnerTopicEventSubscription.ps1 create mode 100644 swaggerci/eventgrid/exports/New-AzEventGridSystemTopic.ps1 create mode 100644 swaggerci/eventgrid/exports/New-AzEventGridSystemTopicEventSubscription.ps1 create mode 100644 swaggerci/eventgrid/exports/New-AzEventGridTopic.ps1 create mode 100644 swaggerci/eventgrid/exports/New-AzEventGridTopicEventSubscription.ps1 create mode 100644 swaggerci/eventgrid/exports/New-AzEventGridTopicKey.ps1 create mode 100644 swaggerci/eventgrid/exports/ProxyCmdletDefinitions.ps1 create mode 100644 swaggerci/eventgrid/exports/README.md create mode 100644 swaggerci/eventgrid/exports/Remove-AzEventGridChannel.ps1 create mode 100644 swaggerci/eventgrid/exports/Remove-AzEventGridDomain.ps1 create mode 100644 swaggerci/eventgrid/exports/Remove-AzEventGridDomainEventSubscription.ps1 create mode 100644 swaggerci/eventgrid/exports/Remove-AzEventGridDomainTopic.ps1 create mode 100644 swaggerci/eventgrid/exports/Remove-AzEventGridDomainTopicEventSubscription.ps1 create mode 100644 swaggerci/eventgrid/exports/Remove-AzEventGridEventChannel.ps1 create mode 100644 swaggerci/eventgrid/exports/Remove-AzEventGridEventSubscription.ps1 create mode 100644 swaggerci/eventgrid/exports/Remove-AzEventGridPartnerConfiguration.ps1 create mode 100644 swaggerci/eventgrid/exports/Remove-AzEventGridPartnerDestination.ps1 create mode 100644 swaggerci/eventgrid/exports/Remove-AzEventGridPartnerNamespace.ps1 create mode 100644 swaggerci/eventgrid/exports/Remove-AzEventGridPartnerRegistration.ps1 create mode 100644 swaggerci/eventgrid/exports/Remove-AzEventGridPartnerTopic.ps1 create mode 100644 swaggerci/eventgrid/exports/Remove-AzEventGridPartnerTopicEventSubscription.ps1 create mode 100644 swaggerci/eventgrid/exports/Remove-AzEventGridPrivateEndpointConnection.ps1 create mode 100644 swaggerci/eventgrid/exports/Remove-AzEventGridSystemTopic.ps1 create mode 100644 swaggerci/eventgrid/exports/Remove-AzEventGridSystemTopicEventSubscription.ps1 create mode 100644 swaggerci/eventgrid/exports/Remove-AzEventGridTopic.ps1 create mode 100644 swaggerci/eventgrid/exports/Remove-AzEventGridTopicEventSubscription.ps1 create mode 100644 swaggerci/eventgrid/exports/Update-AzEventGridChannel.ps1 create mode 100644 swaggerci/eventgrid/exports/Update-AzEventGridDomain.ps1 create mode 100644 swaggerci/eventgrid/exports/Update-AzEventGridDomainEventSubscription.ps1 create mode 100644 swaggerci/eventgrid/exports/Update-AzEventGridDomainTopicEventSubscription.ps1 create mode 100644 swaggerci/eventgrid/exports/Update-AzEventGridEventSubscription.ps1 create mode 100644 swaggerci/eventgrid/exports/Update-AzEventGridPartnerConfiguration.ps1 create mode 100644 swaggerci/eventgrid/exports/Update-AzEventGridPartnerDestination.ps1 create mode 100644 swaggerci/eventgrid/exports/Update-AzEventGridPartnerNamespace.ps1 create mode 100644 swaggerci/eventgrid/exports/Update-AzEventGridPartnerRegistration.ps1 create mode 100644 swaggerci/eventgrid/exports/Update-AzEventGridPartnerTopic.ps1 create mode 100644 swaggerci/eventgrid/exports/Update-AzEventGridPartnerTopicEventSubscription.ps1 create mode 100644 swaggerci/eventgrid/exports/Update-AzEventGridSystemTopic.ps1 create mode 100644 swaggerci/eventgrid/exports/Update-AzEventGridSystemTopicEventSubscription.ps1 create mode 100644 swaggerci/eventgrid/exports/Update-AzEventGridTopic.ps1 create mode 100644 swaggerci/eventgrid/exports/Update-AzEventGridTopicEventSubscription.ps1 create mode 100644 swaggerci/eventgrid/generate-help.ps1 create mode 100644 swaggerci/eventgrid/generated/Module.cs create mode 100644 swaggerci/eventgrid/generated/api/EventGridManagementClient.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Any.PowerShell.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Any.TypeConverter.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Any.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Any.json.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20/SystemData.PowerShell.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20/SystemData.TypeConverter.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20/SystemData.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20/SystemData.json.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/AdvancedFilter.PowerShell.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/AdvancedFilter.TypeConverter.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/AdvancedFilter.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/AdvancedFilter.json.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/AzureAdPartnerClientAuthentication.PowerShell.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/AzureAdPartnerClientAuthentication.TypeConverter.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/AzureAdPartnerClientAuthentication.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/AzureAdPartnerClientAuthentication.json.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/AzureAdPartnerClientAuthenticationProperties.PowerShell.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/AzureAdPartnerClientAuthenticationProperties.TypeConverter.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/AzureAdPartnerClientAuthenticationProperties.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/AzureAdPartnerClientAuthenticationProperties.json.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/AzureFunctionEventSubscriptionDestination.PowerShell.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/AzureFunctionEventSubscriptionDestination.TypeConverter.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/AzureFunctionEventSubscriptionDestination.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/AzureFunctionEventSubscriptionDestination.json.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/AzureFunctionEventSubscriptionDestinationProperties.PowerShell.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/AzureFunctionEventSubscriptionDestinationProperties.TypeConverter.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/AzureFunctionEventSubscriptionDestinationProperties.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/AzureFunctionEventSubscriptionDestinationProperties.json.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/BoolEqualsAdvancedFilter.PowerShell.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/BoolEqualsAdvancedFilter.TypeConverter.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/BoolEqualsAdvancedFilter.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/BoolEqualsAdvancedFilter.json.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/Channel.PowerShell.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/Channel.TypeConverter.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/Channel.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/Channel.json.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/ChannelProperties.PowerShell.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/ChannelProperties.TypeConverter.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/ChannelProperties.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/ChannelProperties.json.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/ChannelUpdateParameters.PowerShell.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/ChannelUpdateParameters.TypeConverter.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/ChannelUpdateParameters.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/ChannelUpdateParameters.json.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/ChannelUpdateParametersProperties.PowerShell.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/ChannelUpdateParametersProperties.TypeConverter.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/ChannelUpdateParametersProperties.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/ChannelUpdateParametersProperties.json.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/ChannelsListResult.PowerShell.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/ChannelsListResult.TypeConverter.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/ChannelsListResult.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/ChannelsListResult.json.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/ConnectionState.PowerShell.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/ConnectionState.TypeConverter.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/ConnectionState.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/ConnectionState.json.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/DeadLetterDestination.PowerShell.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/DeadLetterDestination.TypeConverter.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/DeadLetterDestination.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/DeadLetterDestination.json.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/DeadLetterWithResourceIdentity.PowerShell.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/DeadLetterWithResourceIdentity.TypeConverter.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/DeadLetterWithResourceIdentity.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/DeadLetterWithResourceIdentity.json.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/DeliveryAttributeListResult.PowerShell.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/DeliveryAttributeListResult.TypeConverter.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/DeliveryAttributeListResult.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/DeliveryAttributeListResult.json.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/DeliveryAttributeMapping.PowerShell.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/DeliveryAttributeMapping.TypeConverter.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/DeliveryAttributeMapping.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/DeliveryAttributeMapping.json.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/DeliveryWithResourceIdentity.PowerShell.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/DeliveryWithResourceIdentity.TypeConverter.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/DeliveryWithResourceIdentity.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/DeliveryWithResourceIdentity.json.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/Domain.PowerShell.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/Domain.TypeConverter.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/Domain.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/Domain.json.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/DomainProperties.PowerShell.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/DomainProperties.TypeConverter.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/DomainProperties.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/DomainProperties.json.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/DomainRegenerateKeyRequest.PowerShell.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/DomainRegenerateKeyRequest.TypeConverter.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/DomainRegenerateKeyRequest.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/DomainRegenerateKeyRequest.json.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/DomainSharedAccessKeys.PowerShell.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/DomainSharedAccessKeys.TypeConverter.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/DomainSharedAccessKeys.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/DomainSharedAccessKeys.json.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/DomainTopic.PowerShell.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/DomainTopic.TypeConverter.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/DomainTopic.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/DomainTopic.json.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/DomainTopicProperties.PowerShell.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/DomainTopicProperties.TypeConverter.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/DomainTopicProperties.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/DomainTopicProperties.json.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/DomainTopicsListResult.PowerShell.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/DomainTopicsListResult.TypeConverter.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/DomainTopicsListResult.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/DomainTopicsListResult.json.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/DomainUpdateParameterProperties.PowerShell.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/DomainUpdateParameterProperties.TypeConverter.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/DomainUpdateParameterProperties.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/DomainUpdateParameterProperties.json.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/DomainUpdateParameters.PowerShell.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/DomainUpdateParameters.TypeConverter.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/DomainUpdateParameters.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/DomainUpdateParameters.json.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/DomainUpdateParametersTags.PowerShell.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/DomainUpdateParametersTags.TypeConverter.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/DomainUpdateParametersTags.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/DomainUpdateParametersTags.dictionary.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/DomainUpdateParametersTags.json.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/DomainsListResult.PowerShell.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/DomainsListResult.TypeConverter.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/DomainsListResult.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/DomainsListResult.json.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/DynamicDeliveryAttributeMapping.PowerShell.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/DynamicDeliveryAttributeMapping.TypeConverter.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/DynamicDeliveryAttributeMapping.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/DynamicDeliveryAttributeMapping.json.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/DynamicDeliveryAttributeMappingProperties.PowerShell.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/DynamicDeliveryAttributeMappingProperties.TypeConverter.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/DynamicDeliveryAttributeMappingProperties.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/DynamicDeliveryAttributeMappingProperties.json.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/EventChannel.PowerShell.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/EventChannel.TypeConverter.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/EventChannel.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/EventChannel.json.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/EventChannelDestination.PowerShell.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/EventChannelDestination.TypeConverter.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/EventChannelDestination.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/EventChannelDestination.json.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/EventChannelFilter.PowerShell.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/EventChannelFilter.TypeConverter.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/EventChannelFilter.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/EventChannelFilter.json.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/EventChannelProperties.PowerShell.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/EventChannelProperties.TypeConverter.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/EventChannelProperties.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/EventChannelProperties.json.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/EventChannelSource.PowerShell.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/EventChannelSource.TypeConverter.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/EventChannelSource.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/EventChannelSource.json.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/EventChannelsListResult.PowerShell.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/EventChannelsListResult.TypeConverter.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/EventChannelsListResult.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/EventChannelsListResult.json.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/EventHubEventSubscriptionDestination.PowerShell.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/EventHubEventSubscriptionDestination.TypeConverter.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/EventHubEventSubscriptionDestination.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/EventHubEventSubscriptionDestination.json.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/EventHubEventSubscriptionDestinationProperties.PowerShell.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/EventHubEventSubscriptionDestinationProperties.TypeConverter.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/EventHubEventSubscriptionDestinationProperties.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/EventHubEventSubscriptionDestinationProperties.json.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/EventSubscription.PowerShell.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/EventSubscription.TypeConverter.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/EventSubscription.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/EventSubscription.json.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/EventSubscriptionDestination.PowerShell.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/EventSubscriptionDestination.TypeConverter.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/EventSubscriptionDestination.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/EventSubscriptionDestination.json.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/EventSubscriptionFilter.PowerShell.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/EventSubscriptionFilter.TypeConverter.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/EventSubscriptionFilter.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/EventSubscriptionFilter.json.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/EventSubscriptionFullUrl.PowerShell.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/EventSubscriptionFullUrl.TypeConverter.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/EventSubscriptionFullUrl.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/EventSubscriptionFullUrl.json.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/EventSubscriptionIdentity.PowerShell.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/EventSubscriptionIdentity.TypeConverter.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/EventSubscriptionIdentity.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/EventSubscriptionIdentity.json.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/EventSubscriptionProperties.PowerShell.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/EventSubscriptionProperties.TypeConverter.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/EventSubscriptionProperties.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/EventSubscriptionProperties.json.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/EventSubscriptionUpdateParameters.PowerShell.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/EventSubscriptionUpdateParameters.TypeConverter.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/EventSubscriptionUpdateParameters.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/EventSubscriptionUpdateParameters.json.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/EventSubscriptionsListResult.PowerShell.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/EventSubscriptionsListResult.TypeConverter.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/EventSubscriptionsListResult.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/EventSubscriptionsListResult.json.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/EventType.PowerShell.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/EventType.TypeConverter.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/EventType.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/EventType.json.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/EventTypeInfo.PowerShell.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/EventTypeInfo.TypeConverter.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/EventTypeInfo.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/EventTypeInfo.json.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/EventTypeInfoInlineEventTypes.PowerShell.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/EventTypeInfoInlineEventTypes.TypeConverter.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/EventTypeInfoInlineEventTypes.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/EventTypeInfoInlineEventTypes.dictionary.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/EventTypeInfoInlineEventTypes.json.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/EventTypeProperties.PowerShell.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/EventTypeProperties.TypeConverter.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/EventTypeProperties.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/EventTypeProperties.json.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/EventTypesListResult.PowerShell.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/EventTypesListResult.TypeConverter.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/EventTypesListResult.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/EventTypesListResult.json.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/ExtendedLocation.PowerShell.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/ExtendedLocation.TypeConverter.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/ExtendedLocation.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/ExtendedLocation.json.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/ExtensionTopic.PowerShell.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/ExtensionTopic.TypeConverter.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/ExtensionTopic.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/ExtensionTopic.json.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/ExtensionTopicProperties.PowerShell.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/ExtensionTopicProperties.TypeConverter.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/ExtensionTopicProperties.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/ExtensionTopicProperties.json.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/HybridConnectionEventSubscriptionDestination.PowerShell.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/HybridConnectionEventSubscriptionDestination.TypeConverter.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/HybridConnectionEventSubscriptionDestination.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/HybridConnectionEventSubscriptionDestination.json.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/HybridConnectionEventSubscriptionDestinationProperties.PowerShell.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/HybridConnectionEventSubscriptionDestinationProperties.TypeConverter.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/HybridConnectionEventSubscriptionDestinationProperties.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/HybridConnectionEventSubscriptionDestinationProperties.json.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/IdentityInfo.PowerShell.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/IdentityInfo.TypeConverter.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/IdentityInfo.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/IdentityInfo.json.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/IdentityInfoUserAssignedIdentities.PowerShell.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/IdentityInfoUserAssignedIdentities.TypeConverter.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/IdentityInfoUserAssignedIdentities.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/IdentityInfoUserAssignedIdentities.dictionary.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/IdentityInfoUserAssignedIdentities.json.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/InboundIPRule.PowerShell.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/InboundIPRule.TypeConverter.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/InboundIPRule.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/InboundIPRule.json.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/InlineEventProperties.PowerShell.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/InlineEventProperties.TypeConverter.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/InlineEventProperties.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/InlineEventProperties.json.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/InputSchemaMapping.PowerShell.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/InputSchemaMapping.TypeConverter.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/InputSchemaMapping.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/InputSchemaMapping.json.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/IsNotNullAdvancedFilter.PowerShell.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/IsNotNullAdvancedFilter.TypeConverter.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/IsNotNullAdvancedFilter.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/IsNotNullAdvancedFilter.json.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/IsNullOrUndefinedAdvancedFilter.PowerShell.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/IsNullOrUndefinedAdvancedFilter.TypeConverter.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/IsNullOrUndefinedAdvancedFilter.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/IsNullOrUndefinedAdvancedFilter.json.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/JsonField.PowerShell.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/JsonField.TypeConverter.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/JsonField.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/JsonField.json.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/JsonFieldWithDefault.PowerShell.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/JsonFieldWithDefault.TypeConverter.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/JsonFieldWithDefault.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/JsonFieldWithDefault.json.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/JsonInputSchemaMapping.PowerShell.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/JsonInputSchemaMapping.TypeConverter.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/JsonInputSchemaMapping.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/JsonInputSchemaMapping.json.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/JsonInputSchemaMappingProperties.PowerShell.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/JsonInputSchemaMappingProperties.TypeConverter.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/JsonInputSchemaMappingProperties.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/JsonInputSchemaMappingProperties.json.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/NumberGreaterThanAdvancedFilter.PowerShell.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/NumberGreaterThanAdvancedFilter.TypeConverter.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/NumberGreaterThanAdvancedFilter.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/NumberGreaterThanAdvancedFilter.json.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/NumberGreaterThanOrEqualsAdvancedFilter.PowerShell.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/NumberGreaterThanOrEqualsAdvancedFilter.TypeConverter.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/NumberGreaterThanOrEqualsAdvancedFilter.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/NumberGreaterThanOrEqualsAdvancedFilter.json.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/NumberInAdvancedFilter.PowerShell.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/NumberInAdvancedFilter.TypeConverter.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/NumberInAdvancedFilter.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/NumberInAdvancedFilter.json.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/NumberInRangeAdvancedFilter.PowerShell.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/NumberInRangeAdvancedFilter.TypeConverter.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/NumberInRangeAdvancedFilter.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/NumberInRangeAdvancedFilter.json.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/NumberLessThanAdvancedFilter.PowerShell.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/NumberLessThanAdvancedFilter.TypeConverter.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/NumberLessThanAdvancedFilter.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/NumberLessThanAdvancedFilter.json.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/NumberLessThanOrEqualsAdvancedFilter.PowerShell.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/NumberLessThanOrEqualsAdvancedFilter.TypeConverter.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/NumberLessThanOrEqualsAdvancedFilter.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/NumberLessThanOrEqualsAdvancedFilter.json.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/NumberNotInAdvancedFilter.PowerShell.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/NumberNotInAdvancedFilter.TypeConverter.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/NumberNotInAdvancedFilter.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/NumberNotInAdvancedFilter.json.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/NumberNotInRangeAdvancedFilter.PowerShell.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/NumberNotInRangeAdvancedFilter.TypeConverter.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/NumberNotInRangeAdvancedFilter.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/NumberNotInRangeAdvancedFilter.json.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/Operation.PowerShell.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/Operation.TypeConverter.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/Operation.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/Operation.json.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/OperationInfo.PowerShell.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/OperationInfo.TypeConverter.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/OperationInfo.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/OperationInfo.json.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/OperationsListResult.PowerShell.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/OperationsListResult.TypeConverter.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/OperationsListResult.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/OperationsListResult.json.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/Partner.PowerShell.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/Partner.TypeConverter.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/Partner.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/Partner.json.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PartnerAuthorization.PowerShell.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PartnerAuthorization.TypeConverter.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PartnerAuthorization.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PartnerAuthorization.json.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PartnerClientAuthentication.PowerShell.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PartnerClientAuthentication.TypeConverter.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PartnerClientAuthentication.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PartnerClientAuthentication.json.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PartnerConfiguration.PowerShell.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PartnerConfiguration.TypeConverter.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PartnerConfiguration.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PartnerConfiguration.json.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PartnerConfigurationProperties.PowerShell.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PartnerConfigurationProperties.TypeConverter.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PartnerConfigurationProperties.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PartnerConfigurationProperties.json.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PartnerConfigurationTags.PowerShell.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PartnerConfigurationTags.TypeConverter.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PartnerConfigurationTags.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PartnerConfigurationTags.dictionary.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PartnerConfigurationTags.json.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PartnerConfigurationUpdateParameterProperties.PowerShell.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PartnerConfigurationUpdateParameterProperties.TypeConverter.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PartnerConfigurationUpdateParameterProperties.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PartnerConfigurationUpdateParameterProperties.json.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PartnerConfigurationUpdateParameters.PowerShell.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PartnerConfigurationUpdateParameters.TypeConverter.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PartnerConfigurationUpdateParameters.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PartnerConfigurationUpdateParameters.json.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PartnerConfigurationUpdateParametersTags.PowerShell.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PartnerConfigurationUpdateParametersTags.TypeConverter.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PartnerConfigurationUpdateParametersTags.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PartnerConfigurationUpdateParametersTags.dictionary.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PartnerConfigurationUpdateParametersTags.json.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PartnerConfigurationsListResult.PowerShell.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PartnerConfigurationsListResult.TypeConverter.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PartnerConfigurationsListResult.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PartnerConfigurationsListResult.json.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PartnerDestination.PowerShell.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PartnerDestination.TypeConverter.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PartnerDestination.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PartnerDestination.json.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PartnerDestinationInfo.PowerShell.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PartnerDestinationInfo.TypeConverter.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PartnerDestinationInfo.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PartnerDestinationInfo.json.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PartnerDestinationProperties.PowerShell.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PartnerDestinationProperties.TypeConverter.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PartnerDestinationProperties.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PartnerDestinationProperties.json.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PartnerDestinationUpdateParameters.PowerShell.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PartnerDestinationUpdateParameters.TypeConverter.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PartnerDestinationUpdateParameters.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PartnerDestinationUpdateParameters.json.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PartnerDestinationUpdateParametersTags.PowerShell.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PartnerDestinationUpdateParametersTags.TypeConverter.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PartnerDestinationUpdateParametersTags.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PartnerDestinationUpdateParametersTags.dictionary.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PartnerDestinationUpdateParametersTags.json.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PartnerDestinationsListResult.PowerShell.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PartnerDestinationsListResult.TypeConverter.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PartnerDestinationsListResult.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PartnerDestinationsListResult.json.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PartnerDetails.PowerShell.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PartnerDetails.TypeConverter.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PartnerDetails.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PartnerDetails.json.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PartnerEventSubscriptionDestination.PowerShell.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PartnerEventSubscriptionDestination.TypeConverter.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PartnerEventSubscriptionDestination.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PartnerEventSubscriptionDestination.json.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PartnerEventSubscriptionDestinationProperties.PowerShell.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PartnerEventSubscriptionDestinationProperties.TypeConverter.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PartnerEventSubscriptionDestinationProperties.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PartnerEventSubscriptionDestinationProperties.json.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PartnerNamespace.PowerShell.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PartnerNamespace.TypeConverter.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PartnerNamespace.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PartnerNamespace.json.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PartnerNamespaceProperties.PowerShell.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PartnerNamespaceProperties.TypeConverter.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PartnerNamespaceProperties.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PartnerNamespaceProperties.json.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PartnerNamespaceRegenerateKeyRequest.PowerShell.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PartnerNamespaceRegenerateKeyRequest.TypeConverter.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PartnerNamespaceRegenerateKeyRequest.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PartnerNamespaceRegenerateKeyRequest.json.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PartnerNamespaceSharedAccessKeys.PowerShell.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PartnerNamespaceSharedAccessKeys.TypeConverter.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PartnerNamespaceSharedAccessKeys.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PartnerNamespaceSharedAccessKeys.json.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PartnerNamespaceUpdateParameterProperties.PowerShell.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PartnerNamespaceUpdateParameterProperties.TypeConverter.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PartnerNamespaceUpdateParameterProperties.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PartnerNamespaceUpdateParameterProperties.json.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PartnerNamespaceUpdateParameters.PowerShell.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PartnerNamespaceUpdateParameters.TypeConverter.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PartnerNamespaceUpdateParameters.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PartnerNamespaceUpdateParameters.json.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PartnerNamespaceUpdateParametersTags.PowerShell.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PartnerNamespaceUpdateParametersTags.TypeConverter.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PartnerNamespaceUpdateParametersTags.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PartnerNamespaceUpdateParametersTags.dictionary.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PartnerNamespaceUpdateParametersTags.json.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PartnerNamespacesListResult.PowerShell.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PartnerNamespacesListResult.TypeConverter.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PartnerNamespacesListResult.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PartnerNamespacesListResult.json.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PartnerRegistration.PowerShell.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PartnerRegistration.TypeConverter.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PartnerRegistration.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PartnerRegistration.json.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PartnerRegistrationProperties.PowerShell.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PartnerRegistrationProperties.TypeConverter.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PartnerRegistrationProperties.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PartnerRegistrationProperties.json.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PartnerRegistrationUpdateParameters.PowerShell.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PartnerRegistrationUpdateParameters.TypeConverter.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PartnerRegistrationUpdateParameters.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PartnerRegistrationUpdateParameters.json.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PartnerRegistrationUpdateParametersTags.PowerShell.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PartnerRegistrationUpdateParametersTags.TypeConverter.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PartnerRegistrationUpdateParametersTags.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PartnerRegistrationUpdateParametersTags.dictionary.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PartnerRegistrationUpdateParametersTags.json.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PartnerRegistrationsListResult.PowerShell.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PartnerRegistrationsListResult.TypeConverter.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PartnerRegistrationsListResult.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PartnerRegistrationsListResult.json.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PartnerTopic.PowerShell.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PartnerTopic.TypeConverter.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PartnerTopic.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PartnerTopic.json.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PartnerTopicInfo.PowerShell.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PartnerTopicInfo.TypeConverter.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PartnerTopicInfo.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PartnerTopicInfo.json.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PartnerTopicProperties.PowerShell.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PartnerTopicProperties.TypeConverter.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PartnerTopicProperties.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PartnerTopicProperties.json.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PartnerTopicUpdateParameters.PowerShell.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PartnerTopicUpdateParameters.TypeConverter.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PartnerTopicUpdateParameters.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PartnerTopicUpdateParameters.json.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PartnerTopicUpdateParametersTags.PowerShell.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PartnerTopicUpdateParametersTags.TypeConverter.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PartnerTopicUpdateParametersTags.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PartnerTopicUpdateParametersTags.dictionary.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PartnerTopicUpdateParametersTags.json.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PartnerTopicsListResult.PowerShell.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PartnerTopicsListResult.TypeConverter.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PartnerTopicsListResult.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PartnerTopicsListResult.json.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PartnerUpdateDestinationInfo.PowerShell.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PartnerUpdateDestinationInfo.TypeConverter.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PartnerUpdateDestinationInfo.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PartnerUpdateDestinationInfo.json.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PartnerUpdateTopicInfo.PowerShell.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PartnerUpdateTopicInfo.TypeConverter.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PartnerUpdateTopicInfo.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PartnerUpdateTopicInfo.json.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PrivateEndpoint.PowerShell.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PrivateEndpoint.TypeConverter.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PrivateEndpoint.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PrivateEndpoint.json.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PrivateEndpointConnection.PowerShell.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PrivateEndpointConnection.TypeConverter.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PrivateEndpointConnection.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PrivateEndpointConnection.json.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PrivateEndpointConnectionListResult.PowerShell.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PrivateEndpointConnectionListResult.TypeConverter.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PrivateEndpointConnectionListResult.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PrivateEndpointConnectionListResult.json.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PrivateEndpointConnectionProperties.PowerShell.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PrivateEndpointConnectionProperties.TypeConverter.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PrivateEndpointConnectionProperties.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PrivateEndpointConnectionProperties.json.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PrivateLinkResource.PowerShell.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PrivateLinkResource.TypeConverter.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PrivateLinkResource.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PrivateLinkResource.json.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PrivateLinkResourceProperties.PowerShell.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PrivateLinkResourceProperties.TypeConverter.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PrivateLinkResourceProperties.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PrivateLinkResourceProperties.json.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PrivateLinkResourcesListResult.PowerShell.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PrivateLinkResourcesListResult.TypeConverter.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PrivateLinkResourcesListResult.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PrivateLinkResourcesListResult.json.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/Resource.PowerShell.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/Resource.TypeConverter.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/Resource.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/Resource.json.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/ResourceMoveChangeHistory.PowerShell.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/ResourceMoveChangeHistory.TypeConverter.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/ResourceMoveChangeHistory.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/ResourceMoveChangeHistory.json.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/ResourceSku.PowerShell.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/ResourceSku.TypeConverter.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/ResourceSku.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/ResourceSku.json.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/RetryPolicy.PowerShell.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/RetryPolicy.TypeConverter.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/RetryPolicy.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/RetryPolicy.json.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/ServiceBusQueueEventSubscriptionDestination.PowerShell.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/ServiceBusQueueEventSubscriptionDestination.TypeConverter.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/ServiceBusQueueEventSubscriptionDestination.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/ServiceBusQueueEventSubscriptionDestination.json.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/ServiceBusQueueEventSubscriptionDestinationProperties.PowerShell.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/ServiceBusQueueEventSubscriptionDestinationProperties.TypeConverter.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/ServiceBusQueueEventSubscriptionDestinationProperties.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/ServiceBusQueueEventSubscriptionDestinationProperties.json.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/ServiceBusTopicEventSubscriptionDestination.PowerShell.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/ServiceBusTopicEventSubscriptionDestination.TypeConverter.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/ServiceBusTopicEventSubscriptionDestination.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/ServiceBusTopicEventSubscriptionDestination.json.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/ServiceBusTopicEventSubscriptionDestinationProperties.PowerShell.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/ServiceBusTopicEventSubscriptionDestinationProperties.TypeConverter.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/ServiceBusTopicEventSubscriptionDestinationProperties.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/ServiceBusTopicEventSubscriptionDestinationProperties.json.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/StaticDeliveryAttributeMapping.PowerShell.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/StaticDeliveryAttributeMapping.TypeConverter.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/StaticDeliveryAttributeMapping.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/StaticDeliveryAttributeMapping.json.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/StaticDeliveryAttributeMappingProperties.PowerShell.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/StaticDeliveryAttributeMappingProperties.TypeConverter.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/StaticDeliveryAttributeMappingProperties.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/StaticDeliveryAttributeMappingProperties.json.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/StorageBlobDeadLetterDestination.PowerShell.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/StorageBlobDeadLetterDestination.TypeConverter.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/StorageBlobDeadLetterDestination.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/StorageBlobDeadLetterDestination.json.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/StorageBlobDeadLetterDestinationProperties.PowerShell.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/StorageBlobDeadLetterDestinationProperties.TypeConverter.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/StorageBlobDeadLetterDestinationProperties.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/StorageBlobDeadLetterDestinationProperties.json.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/StorageQueueEventSubscriptionDestination.PowerShell.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/StorageQueueEventSubscriptionDestination.TypeConverter.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/StorageQueueEventSubscriptionDestination.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/StorageQueueEventSubscriptionDestination.json.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/StorageQueueEventSubscriptionDestinationProperties.PowerShell.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/StorageQueueEventSubscriptionDestinationProperties.TypeConverter.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/StorageQueueEventSubscriptionDestinationProperties.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/StorageQueueEventSubscriptionDestinationProperties.json.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/StringBeginsWithAdvancedFilter.PowerShell.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/StringBeginsWithAdvancedFilter.TypeConverter.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/StringBeginsWithAdvancedFilter.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/StringBeginsWithAdvancedFilter.json.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/StringContainsAdvancedFilter.PowerShell.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/StringContainsAdvancedFilter.TypeConverter.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/StringContainsAdvancedFilter.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/StringContainsAdvancedFilter.json.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/StringEndsWithAdvancedFilter.PowerShell.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/StringEndsWithAdvancedFilter.TypeConverter.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/StringEndsWithAdvancedFilter.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/StringEndsWithAdvancedFilter.json.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/StringInAdvancedFilter.PowerShell.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/StringInAdvancedFilter.TypeConverter.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/StringInAdvancedFilter.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/StringInAdvancedFilter.json.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/StringNotBeginsWithAdvancedFilter.PowerShell.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/StringNotBeginsWithAdvancedFilter.TypeConverter.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/StringNotBeginsWithAdvancedFilter.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/StringNotBeginsWithAdvancedFilter.json.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/StringNotContainsAdvancedFilter.PowerShell.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/StringNotContainsAdvancedFilter.TypeConverter.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/StringNotContainsAdvancedFilter.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/StringNotContainsAdvancedFilter.json.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/StringNotEndsWithAdvancedFilter.PowerShell.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/StringNotEndsWithAdvancedFilter.TypeConverter.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/StringNotEndsWithAdvancedFilter.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/StringNotEndsWithAdvancedFilter.json.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/StringNotInAdvancedFilter.PowerShell.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/StringNotInAdvancedFilter.TypeConverter.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/StringNotInAdvancedFilter.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/StringNotInAdvancedFilter.json.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/SystemTopic.PowerShell.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/SystemTopic.TypeConverter.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/SystemTopic.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/SystemTopic.json.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/SystemTopicProperties.PowerShell.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/SystemTopicProperties.TypeConverter.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/SystemTopicProperties.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/SystemTopicProperties.json.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/SystemTopicUpdateParameters.PowerShell.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/SystemTopicUpdateParameters.TypeConverter.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/SystemTopicUpdateParameters.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/SystemTopicUpdateParameters.json.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/SystemTopicUpdateParametersTags.PowerShell.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/SystemTopicUpdateParametersTags.TypeConverter.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/SystemTopicUpdateParametersTags.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/SystemTopicUpdateParametersTags.dictionary.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/SystemTopicUpdateParametersTags.json.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/SystemTopicsListResult.PowerShell.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/SystemTopicsListResult.TypeConverter.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/SystemTopicsListResult.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/SystemTopicsListResult.json.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/Topic.PowerShell.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/Topic.TypeConverter.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/Topic.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/Topic.json.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/TopicProperties.PowerShell.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/TopicProperties.TypeConverter.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/TopicProperties.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/TopicProperties.json.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/TopicRegenerateKeyRequest.PowerShell.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/TopicRegenerateKeyRequest.TypeConverter.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/TopicRegenerateKeyRequest.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/TopicRegenerateKeyRequest.json.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/TopicSharedAccessKeys.PowerShell.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/TopicSharedAccessKeys.TypeConverter.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/TopicSharedAccessKeys.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/TopicSharedAccessKeys.json.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/TopicTypeInfo.PowerShell.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/TopicTypeInfo.TypeConverter.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/TopicTypeInfo.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/TopicTypeInfo.json.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/TopicTypeProperties.PowerShell.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/TopicTypeProperties.TypeConverter.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/TopicTypeProperties.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/TopicTypeProperties.json.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/TopicTypesListResult.PowerShell.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/TopicTypesListResult.TypeConverter.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/TopicTypesListResult.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/TopicTypesListResult.json.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/TopicUpdateParameterProperties.PowerShell.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/TopicUpdateParameterProperties.TypeConverter.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/TopicUpdateParameterProperties.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/TopicUpdateParameterProperties.json.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/TopicUpdateParameters.PowerShell.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/TopicUpdateParameters.TypeConverter.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/TopicUpdateParameters.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/TopicUpdateParameters.json.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/TopicUpdateParametersTags.PowerShell.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/TopicUpdateParametersTags.TypeConverter.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/TopicUpdateParametersTags.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/TopicUpdateParametersTags.dictionary.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/TopicUpdateParametersTags.json.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/TopicsListResult.PowerShell.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/TopicsListResult.TypeConverter.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/TopicsListResult.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/TopicsListResult.json.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/TrackedResource.PowerShell.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/TrackedResource.TypeConverter.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/TrackedResource.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/TrackedResource.json.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/TrackedResourceTags.PowerShell.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/TrackedResourceTags.TypeConverter.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/TrackedResourceTags.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/TrackedResourceTags.dictionary.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/TrackedResourceTags.json.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/UserIdentityProperties.PowerShell.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/UserIdentityProperties.TypeConverter.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/UserIdentityProperties.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/UserIdentityProperties.json.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/VerifiedPartner.PowerShell.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/VerifiedPartner.TypeConverter.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/VerifiedPartner.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/VerifiedPartner.json.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/VerifiedPartnerProperties.PowerShell.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/VerifiedPartnerProperties.TypeConverter.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/VerifiedPartnerProperties.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/VerifiedPartnerProperties.json.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/VerifiedPartnersListResult.PowerShell.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/VerifiedPartnersListResult.TypeConverter.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/VerifiedPartnersListResult.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/VerifiedPartnersListResult.json.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/WebHookEventSubscriptionDestination.PowerShell.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/WebHookEventSubscriptionDestination.TypeConverter.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/WebHookEventSubscriptionDestination.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/WebHookEventSubscriptionDestination.json.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/WebHookEventSubscriptionDestinationProperties.PowerShell.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/WebHookEventSubscriptionDestinationProperties.TypeConverter.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/WebHookEventSubscriptionDestinationProperties.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/WebHookEventSubscriptionDestinationProperties.json.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/WebhookPartnerDestinationInfo.PowerShell.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/WebhookPartnerDestinationInfo.TypeConverter.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/WebhookPartnerDestinationInfo.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/WebhookPartnerDestinationInfo.json.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/WebhookPartnerDestinationProperties.PowerShell.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/WebhookPartnerDestinationProperties.TypeConverter.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/WebhookPartnerDestinationProperties.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/WebhookPartnerDestinationProperties.json.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/WebhookUpdatePartnerDestinationInfo.PowerShell.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/WebhookUpdatePartnerDestinationInfo.TypeConverter.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/WebhookUpdatePartnerDestinationInfo.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/Api20211015Preview/WebhookUpdatePartnerDestinationInfo.json.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/EventGridIdentity.PowerShell.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/EventGridIdentity.TypeConverter.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/EventGridIdentity.cs create mode 100644 swaggerci/eventgrid/generated/api/Models/EventGridIdentity.json.cs create mode 100644 swaggerci/eventgrid/generated/api/Support/AdvancedFilterOperatorType.Completer.cs create mode 100644 swaggerci/eventgrid/generated/api/Support/AdvancedFilterOperatorType.TypeConverter.cs create mode 100644 swaggerci/eventgrid/generated/api/Support/AdvancedFilterOperatorType.cs create mode 100644 swaggerci/eventgrid/generated/api/Support/ChannelProvisioningState.Completer.cs create mode 100644 swaggerci/eventgrid/generated/api/Support/ChannelProvisioningState.TypeConverter.cs create mode 100644 swaggerci/eventgrid/generated/api/Support/ChannelProvisioningState.cs create mode 100644 swaggerci/eventgrid/generated/api/Support/ChannelType.Completer.cs create mode 100644 swaggerci/eventgrid/generated/api/Support/ChannelType.TypeConverter.cs create mode 100644 swaggerci/eventgrid/generated/api/Support/ChannelType.cs create mode 100644 swaggerci/eventgrid/generated/api/Support/CreatedByType.Completer.cs create mode 100644 swaggerci/eventgrid/generated/api/Support/CreatedByType.TypeConverter.cs create mode 100644 swaggerci/eventgrid/generated/api/Support/CreatedByType.cs create mode 100644 swaggerci/eventgrid/generated/api/Support/DataResidencyBoundary.Completer.cs create mode 100644 swaggerci/eventgrid/generated/api/Support/DataResidencyBoundary.TypeConverter.cs create mode 100644 swaggerci/eventgrid/generated/api/Support/DataResidencyBoundary.cs create mode 100644 swaggerci/eventgrid/generated/api/Support/DeliveryAttributeMappingType.Completer.cs create mode 100644 swaggerci/eventgrid/generated/api/Support/DeliveryAttributeMappingType.TypeConverter.cs create mode 100644 swaggerci/eventgrid/generated/api/Support/DeliveryAttributeMappingType.cs create mode 100644 swaggerci/eventgrid/generated/api/Support/DomainProvisioningState.Completer.cs create mode 100644 swaggerci/eventgrid/generated/api/Support/DomainProvisioningState.TypeConverter.cs create mode 100644 swaggerci/eventgrid/generated/api/Support/DomainProvisioningState.cs create mode 100644 swaggerci/eventgrid/generated/api/Support/DomainTopicProvisioningState.Completer.cs create mode 100644 swaggerci/eventgrid/generated/api/Support/DomainTopicProvisioningState.TypeConverter.cs create mode 100644 swaggerci/eventgrid/generated/api/Support/DomainTopicProvisioningState.cs create mode 100644 swaggerci/eventgrid/generated/api/Support/EndpointType.Completer.cs create mode 100644 swaggerci/eventgrid/generated/api/Support/EndpointType.TypeConverter.cs create mode 100644 swaggerci/eventgrid/generated/api/Support/EndpointType.cs create mode 100644 swaggerci/eventgrid/generated/api/Support/EventChannelProvisioningState.Completer.cs create mode 100644 swaggerci/eventgrid/generated/api/Support/EventChannelProvisioningState.TypeConverter.cs create mode 100644 swaggerci/eventgrid/generated/api/Support/EventChannelProvisioningState.cs create mode 100644 swaggerci/eventgrid/generated/api/Support/EventDefinitionKind.Completer.cs create mode 100644 swaggerci/eventgrid/generated/api/Support/EventDefinitionKind.TypeConverter.cs create mode 100644 swaggerci/eventgrid/generated/api/Support/EventDefinitionKind.cs create mode 100644 swaggerci/eventgrid/generated/api/Support/EventDeliverySchema.Completer.cs create mode 100644 swaggerci/eventgrid/generated/api/Support/EventDeliverySchema.TypeConverter.cs create mode 100644 swaggerci/eventgrid/generated/api/Support/EventDeliverySchema.cs create mode 100644 swaggerci/eventgrid/generated/api/Support/EventSubscriptionIdentityType.Completer.cs create mode 100644 swaggerci/eventgrid/generated/api/Support/EventSubscriptionIdentityType.TypeConverter.cs create mode 100644 swaggerci/eventgrid/generated/api/Support/EventSubscriptionIdentityType.cs create mode 100644 swaggerci/eventgrid/generated/api/Support/EventSubscriptionProvisioningState.Completer.cs create mode 100644 swaggerci/eventgrid/generated/api/Support/EventSubscriptionProvisioningState.TypeConverter.cs create mode 100644 swaggerci/eventgrid/generated/api/Support/EventSubscriptionProvisioningState.cs create mode 100644 swaggerci/eventgrid/generated/api/Support/IPActionType.Completer.cs create mode 100644 swaggerci/eventgrid/generated/api/Support/IPActionType.TypeConverter.cs create mode 100644 swaggerci/eventgrid/generated/api/Support/IPActionType.cs create mode 100644 swaggerci/eventgrid/generated/api/Support/IdentityType.Completer.cs create mode 100644 swaggerci/eventgrid/generated/api/Support/IdentityType.TypeConverter.cs create mode 100644 swaggerci/eventgrid/generated/api/Support/IdentityType.cs create mode 100644 swaggerci/eventgrid/generated/api/Support/InputSchema.Completer.cs create mode 100644 swaggerci/eventgrid/generated/api/Support/InputSchema.TypeConverter.cs create mode 100644 swaggerci/eventgrid/generated/api/Support/InputSchema.cs create mode 100644 swaggerci/eventgrid/generated/api/Support/ParentType.Completer.cs create mode 100644 swaggerci/eventgrid/generated/api/Support/ParentType.TypeConverter.cs create mode 100644 swaggerci/eventgrid/generated/api/Support/ParentType.cs create mode 100644 swaggerci/eventgrid/generated/api/Support/PartnerConfigurationProvisioningState.Completer.cs create mode 100644 swaggerci/eventgrid/generated/api/Support/PartnerConfigurationProvisioningState.TypeConverter.cs create mode 100644 swaggerci/eventgrid/generated/api/Support/PartnerConfigurationProvisioningState.cs create mode 100644 swaggerci/eventgrid/generated/api/Support/PartnerDestinationActivationState.Completer.cs create mode 100644 swaggerci/eventgrid/generated/api/Support/PartnerDestinationActivationState.TypeConverter.cs create mode 100644 swaggerci/eventgrid/generated/api/Support/PartnerDestinationActivationState.cs create mode 100644 swaggerci/eventgrid/generated/api/Support/PartnerDestinationProvisioningState.Completer.cs create mode 100644 swaggerci/eventgrid/generated/api/Support/PartnerDestinationProvisioningState.TypeConverter.cs create mode 100644 swaggerci/eventgrid/generated/api/Support/PartnerDestinationProvisioningState.cs create mode 100644 swaggerci/eventgrid/generated/api/Support/PartnerNamespaceProvisioningState.Completer.cs create mode 100644 swaggerci/eventgrid/generated/api/Support/PartnerNamespaceProvisioningState.TypeConverter.cs create mode 100644 swaggerci/eventgrid/generated/api/Support/PartnerNamespaceProvisioningState.cs create mode 100644 swaggerci/eventgrid/generated/api/Support/PartnerRegistrationProvisioningState.Completer.cs create mode 100644 swaggerci/eventgrid/generated/api/Support/PartnerRegistrationProvisioningState.TypeConverter.cs create mode 100644 swaggerci/eventgrid/generated/api/Support/PartnerRegistrationProvisioningState.cs create mode 100644 swaggerci/eventgrid/generated/api/Support/PartnerRegistrationVisibilityState.Completer.cs create mode 100644 swaggerci/eventgrid/generated/api/Support/PartnerRegistrationVisibilityState.TypeConverter.cs create mode 100644 swaggerci/eventgrid/generated/api/Support/PartnerRegistrationVisibilityState.cs create mode 100644 swaggerci/eventgrid/generated/api/Support/PartnerTopicActivationState.Completer.cs create mode 100644 swaggerci/eventgrid/generated/api/Support/PartnerTopicActivationState.TypeConverter.cs create mode 100644 swaggerci/eventgrid/generated/api/Support/PartnerTopicActivationState.cs create mode 100644 swaggerci/eventgrid/generated/api/Support/PartnerTopicProvisioningState.Completer.cs create mode 100644 swaggerci/eventgrid/generated/api/Support/PartnerTopicProvisioningState.TypeConverter.cs create mode 100644 swaggerci/eventgrid/generated/api/Support/PartnerTopicProvisioningState.cs create mode 100644 swaggerci/eventgrid/generated/api/Support/PartnerTopicReadinessState.Completer.cs create mode 100644 swaggerci/eventgrid/generated/api/Support/PartnerTopicReadinessState.TypeConverter.cs create mode 100644 swaggerci/eventgrid/generated/api/Support/PartnerTopicReadinessState.cs create mode 100644 swaggerci/eventgrid/generated/api/Support/PartnerTopicRoutingMode.Completer.cs create mode 100644 swaggerci/eventgrid/generated/api/Support/PartnerTopicRoutingMode.TypeConverter.cs create mode 100644 swaggerci/eventgrid/generated/api/Support/PartnerTopicRoutingMode.cs create mode 100644 swaggerci/eventgrid/generated/api/Support/PersistedConnectionStatus.Completer.cs create mode 100644 swaggerci/eventgrid/generated/api/Support/PersistedConnectionStatus.TypeConverter.cs create mode 100644 swaggerci/eventgrid/generated/api/Support/PersistedConnectionStatus.cs create mode 100644 swaggerci/eventgrid/generated/api/Support/PublicNetworkAccess.Completer.cs create mode 100644 swaggerci/eventgrid/generated/api/Support/PublicNetworkAccess.TypeConverter.cs create mode 100644 swaggerci/eventgrid/generated/api/Support/PublicNetworkAccess.cs create mode 100644 swaggerci/eventgrid/generated/api/Support/ReadinessState.Completer.cs create mode 100644 swaggerci/eventgrid/generated/api/Support/ReadinessState.TypeConverter.cs create mode 100644 swaggerci/eventgrid/generated/api/Support/ReadinessState.cs create mode 100644 swaggerci/eventgrid/generated/api/Support/ResourceKind.Completer.cs create mode 100644 swaggerci/eventgrid/generated/api/Support/ResourceKind.TypeConverter.cs create mode 100644 swaggerci/eventgrid/generated/api/Support/ResourceKind.cs create mode 100644 swaggerci/eventgrid/generated/api/Support/ResourceProvisioningState.Completer.cs create mode 100644 swaggerci/eventgrid/generated/api/Support/ResourceProvisioningState.TypeConverter.cs create mode 100644 swaggerci/eventgrid/generated/api/Support/ResourceProvisioningState.cs create mode 100644 swaggerci/eventgrid/generated/api/Support/ResourceRegionType.Completer.cs create mode 100644 swaggerci/eventgrid/generated/api/Support/ResourceRegionType.TypeConverter.cs create mode 100644 swaggerci/eventgrid/generated/api/Support/ResourceRegionType.cs create mode 100644 swaggerci/eventgrid/generated/api/Support/Sku.Completer.cs create mode 100644 swaggerci/eventgrid/generated/api/Support/Sku.TypeConverter.cs create mode 100644 swaggerci/eventgrid/generated/api/Support/Sku.cs create mode 100644 swaggerci/eventgrid/generated/api/Support/TopicProvisioningState.Completer.cs create mode 100644 swaggerci/eventgrid/generated/api/Support/TopicProvisioningState.TypeConverter.cs create mode 100644 swaggerci/eventgrid/generated/api/Support/TopicProvisioningState.cs create mode 100644 swaggerci/eventgrid/generated/api/Support/TopicTypeProvisioningState.Completer.cs create mode 100644 swaggerci/eventgrid/generated/api/Support/TopicTypeProvisioningState.TypeConverter.cs create mode 100644 swaggerci/eventgrid/generated/api/Support/TopicTypeProvisioningState.cs create mode 100644 swaggerci/eventgrid/generated/api/Support/VerifiedPartnerProvisioningState.Completer.cs create mode 100644 swaggerci/eventgrid/generated/api/Support/VerifiedPartnerProvisioningState.TypeConverter.cs create mode 100644 swaggerci/eventgrid/generated/api/Support/VerifiedPartnerProvisioningState.cs create mode 100644 swaggerci/eventgrid/generated/cmdlets/GetAzEventGridChannelFullUrl_Get.cs create mode 100644 swaggerci/eventgrid/generated/cmdlets/GetAzEventGridChannelFullUrl_GetViaIdentity.cs create mode 100644 swaggerci/eventgrid/generated/cmdlets/GetAzEventGridChannel_Get.cs create mode 100644 swaggerci/eventgrid/generated/cmdlets/GetAzEventGridChannel_GetViaIdentity.cs create mode 100644 swaggerci/eventgrid/generated/cmdlets/GetAzEventGridChannel_List.cs create mode 100644 swaggerci/eventgrid/generated/cmdlets/GetAzEventGridDomainEventSubscriptionDeliveryAttribute_Get.cs create mode 100644 swaggerci/eventgrid/generated/cmdlets/GetAzEventGridDomainEventSubscriptionDeliveryAttribute_GetViaIdentity.cs create mode 100644 swaggerci/eventgrid/generated/cmdlets/GetAzEventGridDomainEventSubscriptionFullUrl_Get.cs create mode 100644 swaggerci/eventgrid/generated/cmdlets/GetAzEventGridDomainEventSubscriptionFullUrl_GetViaIdentity.cs create mode 100644 swaggerci/eventgrid/generated/cmdlets/GetAzEventGridDomainEventSubscription_Get.cs create mode 100644 swaggerci/eventgrid/generated/cmdlets/GetAzEventGridDomainEventSubscription_GetViaIdentity.cs create mode 100644 swaggerci/eventgrid/generated/cmdlets/GetAzEventGridDomainEventSubscription_List.cs create mode 100644 swaggerci/eventgrid/generated/cmdlets/GetAzEventGridDomainSharedAccessKey_List.cs create mode 100644 swaggerci/eventgrid/generated/cmdlets/GetAzEventGridDomainTopicEventSubscriptionDeliveryAttribute_Get.cs create mode 100644 swaggerci/eventgrid/generated/cmdlets/GetAzEventGridDomainTopicEventSubscriptionDeliveryAttribute_GetViaIdentity.cs create mode 100644 swaggerci/eventgrid/generated/cmdlets/GetAzEventGridDomainTopicEventSubscriptionFullUrl_Get.cs create mode 100644 swaggerci/eventgrid/generated/cmdlets/GetAzEventGridDomainTopicEventSubscriptionFullUrl_GetViaIdentity.cs create mode 100644 swaggerci/eventgrid/generated/cmdlets/GetAzEventGridDomainTopicEventSubscription_Get.cs create mode 100644 swaggerci/eventgrid/generated/cmdlets/GetAzEventGridDomainTopicEventSubscription_GetViaIdentity.cs create mode 100644 swaggerci/eventgrid/generated/cmdlets/GetAzEventGridDomainTopicEventSubscription_List.cs create mode 100644 swaggerci/eventgrid/generated/cmdlets/GetAzEventGridDomainTopic_Get.cs create mode 100644 swaggerci/eventgrid/generated/cmdlets/GetAzEventGridDomainTopic_GetViaIdentity.cs create mode 100644 swaggerci/eventgrid/generated/cmdlets/GetAzEventGridDomainTopic_List.cs create mode 100644 swaggerci/eventgrid/generated/cmdlets/GetAzEventGridDomain_Get.cs create mode 100644 swaggerci/eventgrid/generated/cmdlets/GetAzEventGridDomain_GetViaIdentity.cs create mode 100644 swaggerci/eventgrid/generated/cmdlets/GetAzEventGridDomain_List.cs create mode 100644 swaggerci/eventgrid/generated/cmdlets/GetAzEventGridDomain_List1.cs create mode 100644 swaggerci/eventgrid/generated/cmdlets/GetAzEventGridEventChannel_Get.cs create mode 100644 swaggerci/eventgrid/generated/cmdlets/GetAzEventGridEventChannel_GetViaIdentity.cs create mode 100644 swaggerci/eventgrid/generated/cmdlets/GetAzEventGridEventChannel_List.cs create mode 100644 swaggerci/eventgrid/generated/cmdlets/GetAzEventGridEventSubscriptionDeliveryAttribute_Get.cs create mode 100644 swaggerci/eventgrid/generated/cmdlets/GetAzEventGridEventSubscriptionDeliveryAttribute_GetViaIdentity.cs create mode 100644 swaggerci/eventgrid/generated/cmdlets/GetAzEventGridEventSubscriptionFullUrl_Get.cs create mode 100644 swaggerci/eventgrid/generated/cmdlets/GetAzEventGridEventSubscriptionFullUrl_GetViaIdentity.cs create mode 100644 swaggerci/eventgrid/generated/cmdlets/GetAzEventGridEventSubscriptionGlobal_List.cs create mode 100644 swaggerci/eventgrid/generated/cmdlets/GetAzEventGridEventSubscriptionGlobal_List1.cs create mode 100644 swaggerci/eventgrid/generated/cmdlets/GetAzEventGridEventSubscriptionGlobal_List2.cs create mode 100644 swaggerci/eventgrid/generated/cmdlets/GetAzEventGridEventSubscriptionGlobal_List3.cs create mode 100644 swaggerci/eventgrid/generated/cmdlets/GetAzEventGridEventSubscriptionRegional_List.cs create mode 100644 swaggerci/eventgrid/generated/cmdlets/GetAzEventGridEventSubscriptionRegional_List1.cs create mode 100644 swaggerci/eventgrid/generated/cmdlets/GetAzEventGridEventSubscriptionRegional_List2.cs create mode 100644 swaggerci/eventgrid/generated/cmdlets/GetAzEventGridEventSubscriptionRegional_List3.cs create mode 100644 swaggerci/eventgrid/generated/cmdlets/GetAzEventGridEventSubscription_Get.cs create mode 100644 swaggerci/eventgrid/generated/cmdlets/GetAzEventGridEventSubscription_GetViaIdentity.cs create mode 100644 swaggerci/eventgrid/generated/cmdlets/GetAzEventGridEventSubscription_List.cs create mode 100644 swaggerci/eventgrid/generated/cmdlets/GetAzEventGridEventSubscription_List1.cs create mode 100644 swaggerci/eventgrid/generated/cmdlets/GetAzEventGridExtensionTopic_Get.cs create mode 100644 swaggerci/eventgrid/generated/cmdlets/GetAzEventGridExtensionTopic_GetViaIdentity.cs create mode 100644 swaggerci/eventgrid/generated/cmdlets/GetAzEventGridOperation_List.cs create mode 100644 swaggerci/eventgrid/generated/cmdlets/GetAzEventGridPartnerConfiguration_Get.cs create mode 100644 swaggerci/eventgrid/generated/cmdlets/GetAzEventGridPartnerConfiguration_GetViaIdentity.cs create mode 100644 swaggerci/eventgrid/generated/cmdlets/GetAzEventGridPartnerConfiguration_List.cs create mode 100644 swaggerci/eventgrid/generated/cmdlets/GetAzEventGridPartnerConfiguration_List1.cs create mode 100644 swaggerci/eventgrid/generated/cmdlets/GetAzEventGridPartnerDestination_Get.cs create mode 100644 swaggerci/eventgrid/generated/cmdlets/GetAzEventGridPartnerDestination_GetViaIdentity.cs create mode 100644 swaggerci/eventgrid/generated/cmdlets/GetAzEventGridPartnerDestination_List.cs create mode 100644 swaggerci/eventgrid/generated/cmdlets/GetAzEventGridPartnerDestination_List1.cs create mode 100644 swaggerci/eventgrid/generated/cmdlets/GetAzEventGridPartnerNamespaceSharedAccessKey_List.cs create mode 100644 swaggerci/eventgrid/generated/cmdlets/GetAzEventGridPartnerNamespace_Get.cs create mode 100644 swaggerci/eventgrid/generated/cmdlets/GetAzEventGridPartnerNamespace_GetViaIdentity.cs create mode 100644 swaggerci/eventgrid/generated/cmdlets/GetAzEventGridPartnerNamespace_List.cs create mode 100644 swaggerci/eventgrid/generated/cmdlets/GetAzEventGridPartnerNamespace_List1.cs create mode 100644 swaggerci/eventgrid/generated/cmdlets/GetAzEventGridPartnerRegistration_Get.cs create mode 100644 swaggerci/eventgrid/generated/cmdlets/GetAzEventGridPartnerRegistration_GetViaIdentity.cs create mode 100644 swaggerci/eventgrid/generated/cmdlets/GetAzEventGridPartnerRegistration_List.cs create mode 100644 swaggerci/eventgrid/generated/cmdlets/GetAzEventGridPartnerRegistration_List1.cs create mode 100644 swaggerci/eventgrid/generated/cmdlets/GetAzEventGridPartnerTopicEventSubscriptionDeliveryAttribute_Get.cs create mode 100644 swaggerci/eventgrid/generated/cmdlets/GetAzEventGridPartnerTopicEventSubscriptionDeliveryAttribute_GetViaIdentity.cs create mode 100644 swaggerci/eventgrid/generated/cmdlets/GetAzEventGridPartnerTopicEventSubscriptionFullUrl_Get.cs create mode 100644 swaggerci/eventgrid/generated/cmdlets/GetAzEventGridPartnerTopicEventSubscriptionFullUrl_GetViaIdentity.cs create mode 100644 swaggerci/eventgrid/generated/cmdlets/GetAzEventGridPartnerTopicEventSubscription_Get.cs create mode 100644 swaggerci/eventgrid/generated/cmdlets/GetAzEventGridPartnerTopicEventSubscription_GetViaIdentity.cs create mode 100644 swaggerci/eventgrid/generated/cmdlets/GetAzEventGridPartnerTopicEventSubscription_List.cs create mode 100644 swaggerci/eventgrid/generated/cmdlets/GetAzEventGridPartnerTopic_Get.cs create mode 100644 swaggerci/eventgrid/generated/cmdlets/GetAzEventGridPartnerTopic_GetViaIdentity.cs create mode 100644 swaggerci/eventgrid/generated/cmdlets/GetAzEventGridPartnerTopic_List.cs create mode 100644 swaggerci/eventgrid/generated/cmdlets/GetAzEventGridPartnerTopic_List1.cs create mode 100644 swaggerci/eventgrid/generated/cmdlets/GetAzEventGridPrivateEndpointConnection_Get.cs create mode 100644 swaggerci/eventgrid/generated/cmdlets/GetAzEventGridPrivateEndpointConnection_GetViaIdentity.cs create mode 100644 swaggerci/eventgrid/generated/cmdlets/GetAzEventGridPrivateEndpointConnection_List.cs create mode 100644 swaggerci/eventgrid/generated/cmdlets/GetAzEventGridPrivateLinkResource_Get.cs create mode 100644 swaggerci/eventgrid/generated/cmdlets/GetAzEventGridPrivateLinkResource_GetViaIdentity.cs create mode 100644 swaggerci/eventgrid/generated/cmdlets/GetAzEventGridPrivateLinkResource_List.cs create mode 100644 swaggerci/eventgrid/generated/cmdlets/GetAzEventGridSystemTopicEventSubscriptionDeliveryAttribute_Get.cs create mode 100644 swaggerci/eventgrid/generated/cmdlets/GetAzEventGridSystemTopicEventSubscriptionDeliveryAttribute_GetViaIdentity.cs create mode 100644 swaggerci/eventgrid/generated/cmdlets/GetAzEventGridSystemTopicEventSubscriptionFullUrl_Get.cs create mode 100644 swaggerci/eventgrid/generated/cmdlets/GetAzEventGridSystemTopicEventSubscriptionFullUrl_GetViaIdentity.cs create mode 100644 swaggerci/eventgrid/generated/cmdlets/GetAzEventGridSystemTopicEventSubscription_Get.cs create mode 100644 swaggerci/eventgrid/generated/cmdlets/GetAzEventGridSystemTopicEventSubscription_GetViaIdentity.cs create mode 100644 swaggerci/eventgrid/generated/cmdlets/GetAzEventGridSystemTopicEventSubscription_List.cs create mode 100644 swaggerci/eventgrid/generated/cmdlets/GetAzEventGridSystemTopic_Get.cs create mode 100644 swaggerci/eventgrid/generated/cmdlets/GetAzEventGridSystemTopic_GetViaIdentity.cs create mode 100644 swaggerci/eventgrid/generated/cmdlets/GetAzEventGridSystemTopic_List.cs create mode 100644 swaggerci/eventgrid/generated/cmdlets/GetAzEventGridSystemTopic_List1.cs create mode 100644 swaggerci/eventgrid/generated/cmdlets/GetAzEventGridTopicEventSubscriptionDeliveryAttribute_Get.cs create mode 100644 swaggerci/eventgrid/generated/cmdlets/GetAzEventGridTopicEventSubscriptionDeliveryAttribute_GetViaIdentity.cs create mode 100644 swaggerci/eventgrid/generated/cmdlets/GetAzEventGridTopicEventSubscriptionFullUrl_Get.cs create mode 100644 swaggerci/eventgrid/generated/cmdlets/GetAzEventGridTopicEventSubscriptionFullUrl_GetViaIdentity.cs create mode 100644 swaggerci/eventgrid/generated/cmdlets/GetAzEventGridTopicEventSubscription_Get.cs create mode 100644 swaggerci/eventgrid/generated/cmdlets/GetAzEventGridTopicEventSubscription_GetViaIdentity.cs create mode 100644 swaggerci/eventgrid/generated/cmdlets/GetAzEventGridTopicEventSubscription_List.cs create mode 100644 swaggerci/eventgrid/generated/cmdlets/GetAzEventGridTopicEventType_List.cs create mode 100644 swaggerci/eventgrid/generated/cmdlets/GetAzEventGridTopicSharedAccessKey_List.cs create mode 100644 swaggerci/eventgrid/generated/cmdlets/GetAzEventGridTopicTypeEventType_List.cs create mode 100644 swaggerci/eventgrid/generated/cmdlets/GetAzEventGridTopicType_Get.cs create mode 100644 swaggerci/eventgrid/generated/cmdlets/GetAzEventGridTopicType_GetViaIdentity.cs create mode 100644 swaggerci/eventgrid/generated/cmdlets/GetAzEventGridTopicType_List.cs create mode 100644 swaggerci/eventgrid/generated/cmdlets/GetAzEventGridTopic_Get.cs create mode 100644 swaggerci/eventgrid/generated/cmdlets/GetAzEventGridTopic_GetViaIdentity.cs create mode 100644 swaggerci/eventgrid/generated/cmdlets/GetAzEventGridTopic_List.cs create mode 100644 swaggerci/eventgrid/generated/cmdlets/GetAzEventGridTopic_List1.cs create mode 100644 swaggerci/eventgrid/generated/cmdlets/GetAzEventGridVerifiedPartner_Get.cs create mode 100644 swaggerci/eventgrid/generated/cmdlets/GetAzEventGridVerifiedPartner_GetViaIdentity.cs create mode 100644 swaggerci/eventgrid/generated/cmdlets/GetAzEventGridVerifiedPartner_List.cs create mode 100644 swaggerci/eventgrid/generated/cmdlets/GrantAzEventGridPartnerConfigurationPartner_Authorize.cs create mode 100644 swaggerci/eventgrid/generated/cmdlets/GrantAzEventGridPartnerConfigurationPartner_AuthorizeExpanded.cs create mode 100644 swaggerci/eventgrid/generated/cmdlets/GrantAzEventGridPartnerConfigurationPartner_AuthorizeViaIdentity.cs create mode 100644 swaggerci/eventgrid/generated/cmdlets/GrantAzEventGridPartnerConfigurationPartner_AuthorizeViaIdentityExpanded.cs create mode 100644 swaggerci/eventgrid/generated/cmdlets/InitializeAzEventGridPartnerDestination_Activate.cs create mode 100644 swaggerci/eventgrid/generated/cmdlets/InitializeAzEventGridPartnerDestination_ActivateViaIdentity.cs create mode 100644 swaggerci/eventgrid/generated/cmdlets/InitializeAzEventGridPartnerTopic_Activate.cs create mode 100644 swaggerci/eventgrid/generated/cmdlets/InitializeAzEventGridPartnerTopic_ActivateViaIdentity.cs create mode 100644 swaggerci/eventgrid/generated/cmdlets/InvokeAzEventGridDeactivatePartnerTopic_Deactivate.cs create mode 100644 swaggerci/eventgrid/generated/cmdlets/InvokeAzEventGridDeactivatePartnerTopic_DeactivateViaIdentity.cs create mode 100644 swaggerci/eventgrid/generated/cmdlets/InvokeAzEventGridPartnerConfigurationUnauthorize_Partner.cs create mode 100644 swaggerci/eventgrid/generated/cmdlets/InvokeAzEventGridPartnerConfigurationUnauthorize_PartnerExpanded.cs create mode 100644 swaggerci/eventgrid/generated/cmdlets/InvokeAzEventGridPartnerConfigurationUnauthorize_PartnerViaIdentity.cs create mode 100644 swaggerci/eventgrid/generated/cmdlets/InvokeAzEventGridPartnerConfigurationUnauthorize_PartnerViaIdentityExpanded.cs create mode 100644 swaggerci/eventgrid/generated/cmdlets/NewAzEventGridChannel_CreateExpanded.cs create mode 100644 swaggerci/eventgrid/generated/cmdlets/NewAzEventGridDomainEventSubscription_CreateExpanded.cs create mode 100644 swaggerci/eventgrid/generated/cmdlets/NewAzEventGridDomainKey_Regenerate.cs create mode 100644 swaggerci/eventgrid/generated/cmdlets/NewAzEventGridDomainKey_RegenerateExpanded.cs create mode 100644 swaggerci/eventgrid/generated/cmdlets/NewAzEventGridDomainKey_RegenerateViaIdentity.cs create mode 100644 swaggerci/eventgrid/generated/cmdlets/NewAzEventGridDomainKey_RegenerateViaIdentityExpanded.cs create mode 100644 swaggerci/eventgrid/generated/cmdlets/NewAzEventGridDomainTopicEventSubscription_CreateExpanded.cs create mode 100644 swaggerci/eventgrid/generated/cmdlets/NewAzEventGridDomain_CreateExpanded.cs create mode 100644 swaggerci/eventgrid/generated/cmdlets/NewAzEventGridEventChannel_CreateExpanded.cs create mode 100644 swaggerci/eventgrid/generated/cmdlets/NewAzEventGridEventSubscription_CreateExpanded.cs create mode 100644 swaggerci/eventgrid/generated/cmdlets/NewAzEventGridPartnerConfiguration_CreateExpanded.cs create mode 100644 swaggerci/eventgrid/generated/cmdlets/NewAzEventGridPartnerDestination_CreateExpanded.cs create mode 100644 swaggerci/eventgrid/generated/cmdlets/NewAzEventGridPartnerNamespaceKey_Regenerate.cs create mode 100644 swaggerci/eventgrid/generated/cmdlets/NewAzEventGridPartnerNamespaceKey_RegenerateExpanded.cs create mode 100644 swaggerci/eventgrid/generated/cmdlets/NewAzEventGridPartnerNamespaceKey_RegenerateViaIdentity.cs create mode 100644 swaggerci/eventgrid/generated/cmdlets/NewAzEventGridPartnerNamespaceKey_RegenerateViaIdentityExpanded.cs create mode 100644 swaggerci/eventgrid/generated/cmdlets/NewAzEventGridPartnerNamespace_CreateExpanded.cs create mode 100644 swaggerci/eventgrid/generated/cmdlets/NewAzEventGridPartnerRegistration_CreateExpanded.cs create mode 100644 swaggerci/eventgrid/generated/cmdlets/NewAzEventGridPartnerTopicEventSubscription_CreateExpanded.cs create mode 100644 swaggerci/eventgrid/generated/cmdlets/NewAzEventGridPartnerTopic_CreateExpanded.cs create mode 100644 swaggerci/eventgrid/generated/cmdlets/NewAzEventGridSystemTopicEventSubscription_CreateExpanded.cs create mode 100644 swaggerci/eventgrid/generated/cmdlets/NewAzEventGridSystemTopic_CreateExpanded.cs create mode 100644 swaggerci/eventgrid/generated/cmdlets/NewAzEventGridTopicEventSubscription_CreateExpanded.cs create mode 100644 swaggerci/eventgrid/generated/cmdlets/NewAzEventGridTopicKey_Regenerate.cs create mode 100644 swaggerci/eventgrid/generated/cmdlets/NewAzEventGridTopicKey_RegenerateExpanded.cs create mode 100644 swaggerci/eventgrid/generated/cmdlets/NewAzEventGridTopicKey_RegenerateViaIdentity.cs create mode 100644 swaggerci/eventgrid/generated/cmdlets/NewAzEventGridTopicKey_RegenerateViaIdentityExpanded.cs create mode 100644 swaggerci/eventgrid/generated/cmdlets/NewAzEventGridTopic_CreateExpanded.cs create mode 100644 swaggerci/eventgrid/generated/cmdlets/RemoveAzEventGridChannel_Delete.cs create mode 100644 swaggerci/eventgrid/generated/cmdlets/RemoveAzEventGridChannel_DeleteViaIdentity.cs create mode 100644 swaggerci/eventgrid/generated/cmdlets/RemoveAzEventGridDomainEventSubscription_Delete.cs create mode 100644 swaggerci/eventgrid/generated/cmdlets/RemoveAzEventGridDomainEventSubscription_DeleteViaIdentity.cs create mode 100644 swaggerci/eventgrid/generated/cmdlets/RemoveAzEventGridDomainTopicEventSubscription_Delete.cs create mode 100644 swaggerci/eventgrid/generated/cmdlets/RemoveAzEventGridDomainTopicEventSubscription_DeleteViaIdentity.cs create mode 100644 swaggerci/eventgrid/generated/cmdlets/RemoveAzEventGridDomainTopic_Delete.cs create mode 100644 swaggerci/eventgrid/generated/cmdlets/RemoveAzEventGridDomainTopic_DeleteViaIdentity.cs create mode 100644 swaggerci/eventgrid/generated/cmdlets/RemoveAzEventGridDomain_Delete.cs create mode 100644 swaggerci/eventgrid/generated/cmdlets/RemoveAzEventGridDomain_DeleteViaIdentity.cs create mode 100644 swaggerci/eventgrid/generated/cmdlets/RemoveAzEventGridEventChannel_Delete.cs create mode 100644 swaggerci/eventgrid/generated/cmdlets/RemoveAzEventGridEventChannel_DeleteViaIdentity.cs create mode 100644 swaggerci/eventgrid/generated/cmdlets/RemoveAzEventGridEventSubscription_Delete.cs create mode 100644 swaggerci/eventgrid/generated/cmdlets/RemoveAzEventGridEventSubscription_DeleteViaIdentity.cs create mode 100644 swaggerci/eventgrid/generated/cmdlets/RemoveAzEventGridPartnerConfiguration_Delete.cs create mode 100644 swaggerci/eventgrid/generated/cmdlets/RemoveAzEventGridPartnerConfiguration_DeleteViaIdentity.cs create mode 100644 swaggerci/eventgrid/generated/cmdlets/RemoveAzEventGridPartnerDestination_Delete.cs create mode 100644 swaggerci/eventgrid/generated/cmdlets/RemoveAzEventGridPartnerDestination_DeleteViaIdentity.cs create mode 100644 swaggerci/eventgrid/generated/cmdlets/RemoveAzEventGridPartnerNamespace_Delete.cs create mode 100644 swaggerci/eventgrid/generated/cmdlets/RemoveAzEventGridPartnerNamespace_DeleteViaIdentity.cs create mode 100644 swaggerci/eventgrid/generated/cmdlets/RemoveAzEventGridPartnerRegistration_Delete.cs create mode 100644 swaggerci/eventgrid/generated/cmdlets/RemoveAzEventGridPartnerRegistration_DeleteViaIdentity.cs create mode 100644 swaggerci/eventgrid/generated/cmdlets/RemoveAzEventGridPartnerTopicEventSubscription_Delete.cs create mode 100644 swaggerci/eventgrid/generated/cmdlets/RemoveAzEventGridPartnerTopicEventSubscription_DeleteViaIdentity.cs create mode 100644 swaggerci/eventgrid/generated/cmdlets/RemoveAzEventGridPartnerTopic_Delete.cs create mode 100644 swaggerci/eventgrid/generated/cmdlets/RemoveAzEventGridPartnerTopic_DeleteViaIdentity.cs create mode 100644 swaggerci/eventgrid/generated/cmdlets/RemoveAzEventGridPrivateEndpointConnection_Delete.cs create mode 100644 swaggerci/eventgrid/generated/cmdlets/RemoveAzEventGridPrivateEndpointConnection_DeleteViaIdentity.cs create mode 100644 swaggerci/eventgrid/generated/cmdlets/RemoveAzEventGridSystemTopicEventSubscription_Delete.cs create mode 100644 swaggerci/eventgrid/generated/cmdlets/RemoveAzEventGridSystemTopicEventSubscription_DeleteViaIdentity.cs create mode 100644 swaggerci/eventgrid/generated/cmdlets/RemoveAzEventGridSystemTopic_Delete.cs create mode 100644 swaggerci/eventgrid/generated/cmdlets/RemoveAzEventGridSystemTopic_DeleteViaIdentity.cs create mode 100644 swaggerci/eventgrid/generated/cmdlets/RemoveAzEventGridTopicEventSubscription_Delete.cs create mode 100644 swaggerci/eventgrid/generated/cmdlets/RemoveAzEventGridTopicEventSubscription_DeleteViaIdentity.cs create mode 100644 swaggerci/eventgrid/generated/cmdlets/RemoveAzEventGridTopic_Delete.cs create mode 100644 swaggerci/eventgrid/generated/cmdlets/RemoveAzEventGridTopic_DeleteViaIdentity.cs create mode 100644 swaggerci/eventgrid/generated/cmdlets/UpdateAzEventGridChannel_UpdateExpanded.cs create mode 100644 swaggerci/eventgrid/generated/cmdlets/UpdateAzEventGridChannel_UpdateViaIdentityExpanded.cs create mode 100644 swaggerci/eventgrid/generated/cmdlets/UpdateAzEventGridDomainEventSubscription_UpdateExpanded.cs create mode 100644 swaggerci/eventgrid/generated/cmdlets/UpdateAzEventGridDomainEventSubscription_UpdateViaIdentityExpanded.cs create mode 100644 swaggerci/eventgrid/generated/cmdlets/UpdateAzEventGridDomainTopicEventSubscription_UpdateExpanded.cs create mode 100644 swaggerci/eventgrid/generated/cmdlets/UpdateAzEventGridDomainTopicEventSubscription_UpdateViaIdentityExpanded.cs create mode 100644 swaggerci/eventgrid/generated/cmdlets/UpdateAzEventGridDomain_UpdateExpanded.cs create mode 100644 swaggerci/eventgrid/generated/cmdlets/UpdateAzEventGridDomain_UpdateViaIdentityExpanded.cs create mode 100644 swaggerci/eventgrid/generated/cmdlets/UpdateAzEventGridEventSubscription_UpdateExpanded.cs create mode 100644 swaggerci/eventgrid/generated/cmdlets/UpdateAzEventGridEventSubscription_UpdateViaIdentityExpanded.cs create mode 100644 swaggerci/eventgrid/generated/cmdlets/UpdateAzEventGridPartnerConfiguration_UpdateExpanded.cs create mode 100644 swaggerci/eventgrid/generated/cmdlets/UpdateAzEventGridPartnerConfiguration_UpdateViaIdentityExpanded.cs create mode 100644 swaggerci/eventgrid/generated/cmdlets/UpdateAzEventGridPartnerDestination_UpdateExpanded.cs create mode 100644 swaggerci/eventgrid/generated/cmdlets/UpdateAzEventGridPartnerDestination_UpdateViaIdentityExpanded.cs create mode 100644 swaggerci/eventgrid/generated/cmdlets/UpdateAzEventGridPartnerNamespace_UpdateExpanded.cs create mode 100644 swaggerci/eventgrid/generated/cmdlets/UpdateAzEventGridPartnerNamespace_UpdateViaIdentityExpanded.cs create mode 100644 swaggerci/eventgrid/generated/cmdlets/UpdateAzEventGridPartnerRegistration_UpdateExpanded.cs create mode 100644 swaggerci/eventgrid/generated/cmdlets/UpdateAzEventGridPartnerRegistration_UpdateViaIdentityExpanded.cs create mode 100644 swaggerci/eventgrid/generated/cmdlets/UpdateAzEventGridPartnerTopicEventSubscription_UpdateExpanded.cs create mode 100644 swaggerci/eventgrid/generated/cmdlets/UpdateAzEventGridPartnerTopicEventSubscription_UpdateViaIdentityExpanded.cs create mode 100644 swaggerci/eventgrid/generated/cmdlets/UpdateAzEventGridPartnerTopic_UpdateExpanded.cs create mode 100644 swaggerci/eventgrid/generated/cmdlets/UpdateAzEventGridPartnerTopic_UpdateViaIdentityExpanded.cs create mode 100644 swaggerci/eventgrid/generated/cmdlets/UpdateAzEventGridSystemTopicEventSubscription_UpdateExpanded.cs create mode 100644 swaggerci/eventgrid/generated/cmdlets/UpdateAzEventGridSystemTopicEventSubscription_UpdateViaIdentityExpanded.cs create mode 100644 swaggerci/eventgrid/generated/cmdlets/UpdateAzEventGridSystemTopic_UpdateExpanded.cs create mode 100644 swaggerci/eventgrid/generated/cmdlets/UpdateAzEventGridSystemTopic_UpdateViaIdentityExpanded.cs create mode 100644 swaggerci/eventgrid/generated/cmdlets/UpdateAzEventGridTopicEventSubscription_UpdateExpanded.cs create mode 100644 swaggerci/eventgrid/generated/cmdlets/UpdateAzEventGridTopicEventSubscription_UpdateViaIdentityExpanded.cs create mode 100644 swaggerci/eventgrid/generated/cmdlets/UpdateAzEventGridTopic_UpdateExpanded.cs create mode 100644 swaggerci/eventgrid/generated/cmdlets/UpdateAzEventGridTopic_UpdateViaIdentityExpanded.cs create mode 100644 swaggerci/eventgrid/generated/modules/Az.Accounts/2.7.5/Accounts.format.ps1xml create mode 100644 swaggerci/eventgrid/generated/modules/Az.Accounts/2.7.5/Accounts.generated.format.ps1xml create mode 100644 swaggerci/eventgrid/generated/modules/Az.Accounts/2.7.5/Accounts.types.ps1xml create mode 100644 swaggerci/eventgrid/generated/modules/Az.Accounts/2.7.5/Az.Accounts.nuspec create mode 100644 swaggerci/eventgrid/generated/modules/Az.Accounts/2.7.5/Az.Accounts.psd1 create mode 100644 swaggerci/eventgrid/generated/modules/Az.Accounts/2.7.5/Az.Accounts.psm1 create mode 100644 swaggerci/eventgrid/generated/modules/Az.Accounts/2.7.5/AzSharedAlcAssemblies/Azure.Core.dll create mode 100644 swaggerci/eventgrid/generated/modules/Az.Accounts/2.7.5/AzSharedAlcAssemblies/Azure.Identity.dll create mode 100644 swaggerci/eventgrid/generated/modules/Az.Accounts/2.7.5/AzSharedAlcAssemblies/Microsoft.Bcl.AsyncInterfaces.dll create mode 100644 swaggerci/eventgrid/generated/modules/Az.Accounts/2.7.5/AzSharedAlcAssemblies/Microsoft.Identity.Client.Extensions.Msal.dll create mode 100644 swaggerci/eventgrid/generated/modules/Az.Accounts/2.7.5/AzSharedAlcAssemblies/Microsoft.Identity.Client.dll create mode 100644 swaggerci/eventgrid/generated/modules/Az.Accounts/2.7.5/AzSharedAlcAssemblies/System.Memory.Data.dll create mode 100644 swaggerci/eventgrid/generated/modules/Az.Accounts/2.7.5/AzSharedAlcAssemblies/System.Text.Json.dll create mode 100644 swaggerci/eventgrid/generated/modules/Az.Accounts/2.7.5/Hyak.Common.dll create mode 100644 swaggerci/eventgrid/generated/modules/Az.Accounts/2.7.5/Microsoft.ApplicationInsights.dll create mode 100644 swaggerci/eventgrid/generated/modules/Az.Accounts/2.7.5/Microsoft.Azure.Common.dll create mode 100644 swaggerci/eventgrid/generated/modules/Az.Accounts/2.7.5/Microsoft.Azure.PowerShell.Authentication.Abstractions.dll create mode 100644 swaggerci/eventgrid/generated/modules/Az.Accounts/2.7.5/Microsoft.Azure.PowerShell.Authentication.ResourceManager.deps.json create mode 100644 swaggerci/eventgrid/generated/modules/Az.Accounts/2.7.5/Microsoft.Azure.PowerShell.Authentication.ResourceManager.dll create mode 100644 swaggerci/eventgrid/generated/modules/Az.Accounts/2.7.5/Microsoft.Azure.PowerShell.Authentication.deps.json create mode 100644 swaggerci/eventgrid/generated/modules/Az.Accounts/2.7.5/Microsoft.Azure.PowerShell.Authentication.dll create mode 100644 swaggerci/eventgrid/generated/modules/Az.Accounts/2.7.5/Microsoft.Azure.PowerShell.AuthenticationAssemblyLoadContext.deps.json create mode 100644 swaggerci/eventgrid/generated/modules/Az.Accounts/2.7.5/Microsoft.Azure.PowerShell.AuthenticationAssemblyLoadContext.dll create mode 100644 swaggerci/eventgrid/generated/modules/Az.Accounts/2.7.5/Microsoft.Azure.PowerShell.Authenticators.dll create mode 100644 swaggerci/eventgrid/generated/modules/Az.Accounts/2.7.5/Microsoft.Azure.PowerShell.Clients.Aks.dll create mode 100644 swaggerci/eventgrid/generated/modules/Az.Accounts/2.7.5/Microsoft.Azure.PowerShell.Clients.Authorization.dll create mode 100644 swaggerci/eventgrid/generated/modules/Az.Accounts/2.7.5/Microsoft.Azure.PowerShell.Clients.Compute.dll create mode 100644 swaggerci/eventgrid/generated/modules/Az.Accounts/2.7.5/Microsoft.Azure.PowerShell.Clients.Graph.Rbac.dll create mode 100644 swaggerci/eventgrid/generated/modules/Az.Accounts/2.7.5/Microsoft.Azure.PowerShell.Clients.KeyVault.dll create mode 100644 swaggerci/eventgrid/generated/modules/Az.Accounts/2.7.5/Microsoft.Azure.PowerShell.Clients.Monitor.dll create mode 100644 swaggerci/eventgrid/generated/modules/Az.Accounts/2.7.5/Microsoft.Azure.PowerShell.Clients.Network.dll create mode 100644 swaggerci/eventgrid/generated/modules/Az.Accounts/2.7.5/Microsoft.Azure.PowerShell.Clients.PolicyInsights.dll create mode 100644 swaggerci/eventgrid/generated/modules/Az.Accounts/2.7.5/Microsoft.Azure.PowerShell.Clients.ResourceManager.dll create mode 100644 swaggerci/eventgrid/generated/modules/Az.Accounts/2.7.5/Microsoft.Azure.PowerShell.Clients.Storage.Management.dll create mode 100644 swaggerci/eventgrid/generated/modules/Az.Accounts/2.7.5/Microsoft.Azure.PowerShell.Clients.Websites.dll create mode 100644 swaggerci/eventgrid/generated/modules/Az.Accounts/2.7.5/Microsoft.Azure.PowerShell.Cmdlets.Accounts.deps.json create mode 100644 swaggerci/eventgrid/generated/modules/Az.Accounts/2.7.5/Microsoft.Azure.PowerShell.Cmdlets.Accounts.dll create mode 100644 swaggerci/eventgrid/generated/modules/Az.Accounts/2.7.5/Microsoft.Azure.PowerShell.Cmdlets.Accounts.dll-Help.xml create mode 100644 swaggerci/eventgrid/generated/modules/Az.Accounts/2.7.5/Microsoft.Azure.PowerShell.Common.Share.dll create mode 100644 swaggerci/eventgrid/generated/modules/Az.Accounts/2.7.5/Microsoft.Azure.PowerShell.Common.dll create mode 100644 swaggerci/eventgrid/generated/modules/Az.Accounts/2.7.5/Microsoft.Azure.PowerShell.Storage.dll create mode 100644 swaggerci/eventgrid/generated/modules/Az.Accounts/2.7.5/Microsoft.Azure.PowerShell.Strategies.dll create mode 100644 swaggerci/eventgrid/generated/modules/Az.Accounts/2.7.5/Microsoft.Rest.ClientRuntime.Azure.dll create mode 100644 swaggerci/eventgrid/generated/modules/Az.Accounts/2.7.5/Microsoft.Rest.ClientRuntime.dll create mode 100644 swaggerci/eventgrid/generated/modules/Az.Accounts/2.7.5/Microsoft.WindowsAzure.Storage.DataMovement.dll create mode 100644 swaggerci/eventgrid/generated/modules/Az.Accounts/2.7.5/Microsoft.WindowsAzure.Storage.dll create mode 100644 swaggerci/eventgrid/generated/modules/Az.Accounts/2.7.5/PostImportScripts/LoadAuthenticators.ps1 create mode 100644 swaggerci/eventgrid/generated/modules/Az.Accounts/2.7.5/PreloadAssemblies/Azure.Core.dll create mode 100644 swaggerci/eventgrid/generated/modules/Az.Accounts/2.7.5/PreloadAssemblies/Azure.Identity.dll create mode 100644 swaggerci/eventgrid/generated/modules/Az.Accounts/2.7.5/PreloadAssemblies/Microsoft.Azure.PowerShell.Authenticators.dll create mode 100644 swaggerci/eventgrid/generated/modules/Az.Accounts/2.7.5/PreloadAssemblies/Microsoft.Bcl.AsyncInterfaces.dll create mode 100644 swaggerci/eventgrid/generated/modules/Az.Accounts/2.7.5/PreloadAssemblies/Microsoft.Identity.Client.Extensions.Msal.dll create mode 100644 swaggerci/eventgrid/generated/modules/Az.Accounts/2.7.5/PreloadAssemblies/Microsoft.Identity.Client.dll create mode 100644 swaggerci/eventgrid/generated/modules/Az.Accounts/2.7.5/PreloadAssemblies/Newtonsoft.Json.12.0.3.dll create mode 100644 swaggerci/eventgrid/generated/modules/Az.Accounts/2.7.5/PreloadAssemblies/Newtonsoft.Json.dll create mode 100644 swaggerci/eventgrid/generated/modules/Az.Accounts/2.7.5/PreloadAssemblies/System.Buffers.dll create mode 100644 swaggerci/eventgrid/generated/modules/Az.Accounts/2.7.5/PreloadAssemblies/System.Diagnostics.DiagnosticSource.dll create mode 100644 swaggerci/eventgrid/generated/modules/Az.Accounts/2.7.5/PreloadAssemblies/System.Memory.Data.dll create mode 100644 swaggerci/eventgrid/generated/modules/Az.Accounts/2.7.5/PreloadAssemblies/System.Memory.dll create mode 100644 swaggerci/eventgrid/generated/modules/Az.Accounts/2.7.5/PreloadAssemblies/System.Net.Http.WinHttpHandler.dll create mode 100644 swaggerci/eventgrid/generated/modules/Az.Accounts/2.7.5/PreloadAssemblies/System.Numerics.Vectors.dll create mode 100644 swaggerci/eventgrid/generated/modules/Az.Accounts/2.7.5/PreloadAssemblies/System.Private.ServiceModel.dll create mode 100644 swaggerci/eventgrid/generated/modules/Az.Accounts/2.7.5/PreloadAssemblies/System.Reflection.DispatchProxy.dll create mode 100644 swaggerci/eventgrid/generated/modules/Az.Accounts/2.7.5/PreloadAssemblies/System.Runtime.CompilerServices.Unsafe.dll create mode 100644 swaggerci/eventgrid/generated/modules/Az.Accounts/2.7.5/PreloadAssemblies/System.Security.AccessControl.dll create mode 100644 swaggerci/eventgrid/generated/modules/Az.Accounts/2.7.5/PreloadAssemblies/System.Security.Cryptography.Cng.dll create mode 100644 swaggerci/eventgrid/generated/modules/Az.Accounts/2.7.5/PreloadAssemblies/System.Security.Permissions.dll create mode 100644 swaggerci/eventgrid/generated/modules/Az.Accounts/2.7.5/PreloadAssemblies/System.Security.Principal.Windows.dll create mode 100644 swaggerci/eventgrid/generated/modules/Az.Accounts/2.7.5/PreloadAssemblies/System.ServiceModel.Primitives.dll create mode 100644 swaggerci/eventgrid/generated/modules/Az.Accounts/2.7.5/PreloadAssemblies/System.Text.Encodings.Web.dll create mode 100644 swaggerci/eventgrid/generated/modules/Az.Accounts/2.7.5/PreloadAssemblies/System.Text.Json.dll create mode 100644 swaggerci/eventgrid/generated/modules/Az.Accounts/2.7.5/PreloadAssemblies/System.Threading.Tasks.Extensions.dll create mode 100644 swaggerci/eventgrid/generated/modules/Az.Accounts/2.7.5/PreloadAssemblies/System.Xml.ReaderWriter.dll create mode 100644 swaggerci/eventgrid/generated/modules/Az.Accounts/2.7.5/StartupScripts/AzError.ps1 create mode 100644 swaggerci/eventgrid/generated/modules/Az.Accounts/2.7.5/StartupScripts/InitializeAssemblyResolver.ps1 create mode 100644 swaggerci/eventgrid/generated/modules/Az.Accounts/2.7.5/[Content_Types].xml create mode 100644 swaggerci/eventgrid/generated/modules/Az.Accounts/2.7.5/_rels/.rels create mode 100644 swaggerci/eventgrid/generated/modules/Az.Accounts/2.7.5/en-US/about_az.help.txt create mode 100644 swaggerci/eventgrid/generated/modules/Az.Accounts/2.7.5/package/services/metadata/core-properties/1aa0749a068a4238881858013f1a5b7f.psmdcp create mode 100644 swaggerci/eventgrid/generated/runtime/AsyncCommandRuntime.cs create mode 100644 swaggerci/eventgrid/generated/runtime/AsyncJob.cs create mode 100644 swaggerci/eventgrid/generated/runtime/AsyncOperationResponse.cs create mode 100644 swaggerci/eventgrid/generated/runtime/BuildTime/Cmdlets/ExportCmdletSurface.cs create mode 100644 swaggerci/eventgrid/generated/runtime/BuildTime/Cmdlets/ExportExampleStub.cs create mode 100644 swaggerci/eventgrid/generated/runtime/BuildTime/Cmdlets/ExportFormatPs1xml.cs create mode 100644 swaggerci/eventgrid/generated/runtime/BuildTime/Cmdlets/ExportHelpMarkdown.cs create mode 100644 swaggerci/eventgrid/generated/runtime/BuildTime/Cmdlets/ExportModelSurface.cs create mode 100644 swaggerci/eventgrid/generated/runtime/BuildTime/Cmdlets/ExportProxyCmdlet.cs create mode 100644 swaggerci/eventgrid/generated/runtime/BuildTime/Cmdlets/ExportPsd1.cs create mode 100644 swaggerci/eventgrid/generated/runtime/BuildTime/Cmdlets/ExportTestStub.cs create mode 100644 swaggerci/eventgrid/generated/runtime/BuildTime/Cmdlets/GetCommonParameter.cs create mode 100644 swaggerci/eventgrid/generated/runtime/BuildTime/Cmdlets/GetModuleGuid.cs create mode 100644 swaggerci/eventgrid/generated/runtime/BuildTime/Cmdlets/GetScriptCmdlet.cs create mode 100644 swaggerci/eventgrid/generated/runtime/BuildTime/CollectionExtensions.cs create mode 100644 swaggerci/eventgrid/generated/runtime/BuildTime/MarkdownRenderer.cs create mode 100644 swaggerci/eventgrid/generated/runtime/BuildTime/Models/PsFormatTypes.cs create mode 100644 swaggerci/eventgrid/generated/runtime/BuildTime/Models/PsHelpMarkdownOutputs.cs create mode 100644 swaggerci/eventgrid/generated/runtime/BuildTime/Models/PsHelpTypes.cs create mode 100644 swaggerci/eventgrid/generated/runtime/BuildTime/Models/PsMarkdownTypes.cs create mode 100644 swaggerci/eventgrid/generated/runtime/BuildTime/Models/PsProxyOutputs.cs create mode 100644 swaggerci/eventgrid/generated/runtime/BuildTime/Models/PsProxyTypes.cs create mode 100644 swaggerci/eventgrid/generated/runtime/BuildTime/PsAttributes.cs create mode 100644 swaggerci/eventgrid/generated/runtime/BuildTime/PsExtensions.cs create mode 100644 swaggerci/eventgrid/generated/runtime/BuildTime/PsHelpers.cs create mode 100644 swaggerci/eventgrid/generated/runtime/BuildTime/StringExtensions.cs create mode 100644 swaggerci/eventgrid/generated/runtime/BuildTime/XmlExtensions.cs create mode 100644 swaggerci/eventgrid/generated/runtime/CmdInfoHandler.cs create mode 100644 swaggerci/eventgrid/generated/runtime/Conversions/ConversionException.cs create mode 100644 swaggerci/eventgrid/generated/runtime/Conversions/IJsonConverter.cs create mode 100644 swaggerci/eventgrid/generated/runtime/Conversions/Instances/BinaryConverter.cs create mode 100644 swaggerci/eventgrid/generated/runtime/Conversions/Instances/BooleanConverter.cs create mode 100644 swaggerci/eventgrid/generated/runtime/Conversions/Instances/DateTimeConverter.cs create mode 100644 swaggerci/eventgrid/generated/runtime/Conversions/Instances/DateTimeOffsetConverter.cs create mode 100644 swaggerci/eventgrid/generated/runtime/Conversions/Instances/DecimalConverter.cs create mode 100644 swaggerci/eventgrid/generated/runtime/Conversions/Instances/DoubleConverter.cs create mode 100644 swaggerci/eventgrid/generated/runtime/Conversions/Instances/EnumConverter.cs create mode 100644 swaggerci/eventgrid/generated/runtime/Conversions/Instances/GuidConverter.cs create mode 100644 swaggerci/eventgrid/generated/runtime/Conversions/Instances/HashSet'1Converter.cs create mode 100644 swaggerci/eventgrid/generated/runtime/Conversions/Instances/Int16Converter.cs create mode 100644 swaggerci/eventgrid/generated/runtime/Conversions/Instances/Int32Converter.cs create mode 100644 swaggerci/eventgrid/generated/runtime/Conversions/Instances/Int64Converter.cs create mode 100644 swaggerci/eventgrid/generated/runtime/Conversions/Instances/JsonArrayConverter.cs create mode 100644 swaggerci/eventgrid/generated/runtime/Conversions/Instances/JsonObjectConverter.cs create mode 100644 swaggerci/eventgrid/generated/runtime/Conversions/Instances/SingleConverter.cs create mode 100644 swaggerci/eventgrid/generated/runtime/Conversions/Instances/StringConverter.cs create mode 100644 swaggerci/eventgrid/generated/runtime/Conversions/Instances/TimeSpanConverter.cs create mode 100644 swaggerci/eventgrid/generated/runtime/Conversions/Instances/UInt16Converter.cs create mode 100644 swaggerci/eventgrid/generated/runtime/Conversions/Instances/UInt32Converter.cs create mode 100644 swaggerci/eventgrid/generated/runtime/Conversions/Instances/UInt64Converter.cs create mode 100644 swaggerci/eventgrid/generated/runtime/Conversions/Instances/UriConverter.cs create mode 100644 swaggerci/eventgrid/generated/runtime/Conversions/JsonConverter.cs create mode 100644 swaggerci/eventgrid/generated/runtime/Conversions/JsonConverterAttribute.cs create mode 100644 swaggerci/eventgrid/generated/runtime/Conversions/JsonConverterFactory.cs create mode 100644 swaggerci/eventgrid/generated/runtime/Conversions/StringLikeConverter.cs create mode 100644 swaggerci/eventgrid/generated/runtime/Customizations/IJsonSerializable.cs create mode 100644 swaggerci/eventgrid/generated/runtime/Customizations/JsonArray.cs create mode 100644 swaggerci/eventgrid/generated/runtime/Customizations/JsonBoolean.cs create mode 100644 swaggerci/eventgrid/generated/runtime/Customizations/JsonNode.cs create mode 100644 swaggerci/eventgrid/generated/runtime/Customizations/JsonNumber.cs create mode 100644 swaggerci/eventgrid/generated/runtime/Customizations/JsonObject.cs create mode 100644 swaggerci/eventgrid/generated/runtime/Customizations/JsonString.cs create mode 100644 swaggerci/eventgrid/generated/runtime/Customizations/XNodeArray.cs create mode 100644 swaggerci/eventgrid/generated/runtime/Debugging.cs create mode 100644 swaggerci/eventgrid/generated/runtime/DictionaryExtensions.cs create mode 100644 swaggerci/eventgrid/generated/runtime/EventData.cs create mode 100644 swaggerci/eventgrid/generated/runtime/EventDataExtensions.cs create mode 100644 swaggerci/eventgrid/generated/runtime/EventListener.cs create mode 100644 swaggerci/eventgrid/generated/runtime/Events.cs create mode 100644 swaggerci/eventgrid/generated/runtime/EventsExtensions.cs create mode 100644 swaggerci/eventgrid/generated/runtime/Extensions.cs create mode 100644 swaggerci/eventgrid/generated/runtime/Helpers/Extensions/StringBuilderExtensions.cs create mode 100644 swaggerci/eventgrid/generated/runtime/Helpers/Extensions/TypeExtensions.cs create mode 100644 swaggerci/eventgrid/generated/runtime/Helpers/Seperator.cs create mode 100644 swaggerci/eventgrid/generated/runtime/Helpers/TypeDetails.cs create mode 100644 swaggerci/eventgrid/generated/runtime/Helpers/XHelper.cs create mode 100644 swaggerci/eventgrid/generated/runtime/HttpPipeline.cs create mode 100644 swaggerci/eventgrid/generated/runtime/HttpPipelineMocking.ps1 create mode 100644 swaggerci/eventgrid/generated/runtime/IAssociativeArray.cs create mode 100644 swaggerci/eventgrid/generated/runtime/IHeaderSerializable.cs create mode 100644 swaggerci/eventgrid/generated/runtime/ISendAsync.cs create mode 100644 swaggerci/eventgrid/generated/runtime/InfoAttribute.cs create mode 100644 swaggerci/eventgrid/generated/runtime/Iso/IsoDate.cs create mode 100644 swaggerci/eventgrid/generated/runtime/JsonType.cs create mode 100644 swaggerci/eventgrid/generated/runtime/MessageAttribute.cs create mode 100644 swaggerci/eventgrid/generated/runtime/MessageAttributeHelper.cs create mode 100644 swaggerci/eventgrid/generated/runtime/Method.cs create mode 100644 swaggerci/eventgrid/generated/runtime/Models/JsonMember.cs create mode 100644 swaggerci/eventgrid/generated/runtime/Models/JsonModel.cs create mode 100644 swaggerci/eventgrid/generated/runtime/Models/JsonModelCache.cs create mode 100644 swaggerci/eventgrid/generated/runtime/Nodes/Collections/JsonArray.cs create mode 100644 swaggerci/eventgrid/generated/runtime/Nodes/Collections/XImmutableArray.cs create mode 100644 swaggerci/eventgrid/generated/runtime/Nodes/Collections/XList.cs create mode 100644 swaggerci/eventgrid/generated/runtime/Nodes/Collections/XNodeArray.cs create mode 100644 swaggerci/eventgrid/generated/runtime/Nodes/Collections/XSet.cs create mode 100644 swaggerci/eventgrid/generated/runtime/Nodes/JsonBoolean.cs create mode 100644 swaggerci/eventgrid/generated/runtime/Nodes/JsonDate.cs create mode 100644 swaggerci/eventgrid/generated/runtime/Nodes/JsonNode.cs create mode 100644 swaggerci/eventgrid/generated/runtime/Nodes/JsonNumber.cs create mode 100644 swaggerci/eventgrid/generated/runtime/Nodes/JsonObject.cs create mode 100644 swaggerci/eventgrid/generated/runtime/Nodes/JsonString.cs create mode 100644 swaggerci/eventgrid/generated/runtime/Nodes/XBinary.cs create mode 100644 swaggerci/eventgrid/generated/runtime/Nodes/XNull.cs create mode 100644 swaggerci/eventgrid/generated/runtime/Parser/Exceptions/ParseException.cs create mode 100644 swaggerci/eventgrid/generated/runtime/Parser/JsonParser.cs create mode 100644 swaggerci/eventgrid/generated/runtime/Parser/JsonToken.cs create mode 100644 swaggerci/eventgrid/generated/runtime/Parser/JsonTokenizer.cs create mode 100644 swaggerci/eventgrid/generated/runtime/Parser/Location.cs create mode 100644 swaggerci/eventgrid/generated/runtime/Parser/Readers/SourceReader.cs create mode 100644 swaggerci/eventgrid/generated/runtime/Parser/TokenReader.cs create mode 100644 swaggerci/eventgrid/generated/runtime/PipelineMocking.cs create mode 100644 swaggerci/eventgrid/generated/runtime/Properties/Resources.Designer.cs create mode 100644 swaggerci/eventgrid/generated/runtime/Properties/Resources.resx create mode 100644 swaggerci/eventgrid/generated/runtime/Response.cs create mode 100644 swaggerci/eventgrid/generated/runtime/Serialization/JsonSerializer.cs create mode 100644 swaggerci/eventgrid/generated/runtime/Serialization/PropertyTransformation.cs create mode 100644 swaggerci/eventgrid/generated/runtime/Serialization/SerializationOptions.cs create mode 100644 swaggerci/eventgrid/generated/runtime/SerializationMode.cs create mode 100644 swaggerci/eventgrid/generated/runtime/TypeConverterExtensions.cs create mode 100644 swaggerci/eventgrid/generated/runtime/UndeclaredResponseException.cs create mode 100644 swaggerci/eventgrid/generated/runtime/Writers/JsonWriter.cs create mode 100644 swaggerci/eventgrid/generated/runtime/delegates.cs create mode 100644 swaggerci/eventgrid/how-to.md create mode 100644 swaggerci/eventgrid/internal/Az.EventGrid.internal.psm1 create mode 100644 swaggerci/eventgrid/internal/Get-AzEventGridOperation.ps1 create mode 100644 swaggerci/eventgrid/internal/ProxyCmdletDefinitions.ps1 create mode 100644 swaggerci/eventgrid/internal/README.md create mode 100644 swaggerci/eventgrid/license.txt create mode 100644 swaggerci/eventgrid/pack-module.ps1 create mode 100644 swaggerci/eventgrid/readme.md create mode 100644 swaggerci/eventgrid/resources/README.md create mode 100644 swaggerci/eventgrid/run-module.ps1 create mode 100644 swaggerci/eventgrid/test-module.ps1 create mode 100644 swaggerci/eventgrid/test/Get-AzEventGridChannel.Tests.ps1 create mode 100644 swaggerci/eventgrid/test/Get-AzEventGridChannelFullUrl.Tests.ps1 create mode 100644 swaggerci/eventgrid/test/Get-AzEventGridDomain.Tests.ps1 create mode 100644 swaggerci/eventgrid/test/Get-AzEventGridDomainEventSubscription.Tests.ps1 create mode 100644 swaggerci/eventgrid/test/Get-AzEventGridDomainEventSubscriptionDeliveryAttribute.Tests.ps1 create mode 100644 swaggerci/eventgrid/test/Get-AzEventGridDomainEventSubscriptionFullUrl.Tests.ps1 create mode 100644 swaggerci/eventgrid/test/Get-AzEventGridDomainSharedAccessKey.Tests.ps1 create mode 100644 swaggerci/eventgrid/test/Get-AzEventGridDomainTopic.Tests.ps1 create mode 100644 swaggerci/eventgrid/test/Get-AzEventGridDomainTopicEventSubscription.Tests.ps1 create mode 100644 swaggerci/eventgrid/test/Get-AzEventGridDomainTopicEventSubscriptionDeliveryAttribute.Tests.ps1 create mode 100644 swaggerci/eventgrid/test/Get-AzEventGridDomainTopicEventSubscriptionFullUrl.Tests.ps1 create mode 100644 swaggerci/eventgrid/test/Get-AzEventGridEventChannel.Tests.ps1 create mode 100644 swaggerci/eventgrid/test/Get-AzEventGridEventSubscription.Tests.ps1 create mode 100644 swaggerci/eventgrid/test/Get-AzEventGridEventSubscriptionDeliveryAttribute.Tests.ps1 create mode 100644 swaggerci/eventgrid/test/Get-AzEventGridEventSubscriptionFullUrl.Tests.ps1 create mode 100644 swaggerci/eventgrid/test/Get-AzEventGridEventSubscriptionGlobal.Tests.ps1 create mode 100644 swaggerci/eventgrid/test/Get-AzEventGridEventSubscriptionRegional.Tests.ps1 create mode 100644 swaggerci/eventgrid/test/Get-AzEventGridExtensionTopic.Tests.ps1 create mode 100644 swaggerci/eventgrid/test/Get-AzEventGridPartnerConfiguration.Tests.ps1 create mode 100644 swaggerci/eventgrid/test/Get-AzEventGridPartnerDestination.Tests.ps1 create mode 100644 swaggerci/eventgrid/test/Get-AzEventGridPartnerNamespace.Tests.ps1 create mode 100644 swaggerci/eventgrid/test/Get-AzEventGridPartnerNamespaceSharedAccessKey.Tests.ps1 create mode 100644 swaggerci/eventgrid/test/Get-AzEventGridPartnerRegistration.Tests.ps1 create mode 100644 swaggerci/eventgrid/test/Get-AzEventGridPartnerTopic.Tests.ps1 create mode 100644 swaggerci/eventgrid/test/Get-AzEventGridPartnerTopicEventSubscription.Tests.ps1 create mode 100644 swaggerci/eventgrid/test/Get-AzEventGridPartnerTopicEventSubscriptionDeliveryAttribute.Tests.ps1 create mode 100644 swaggerci/eventgrid/test/Get-AzEventGridPartnerTopicEventSubscriptionFullUrl.Tests.ps1 create mode 100644 swaggerci/eventgrid/test/Get-AzEventGridPrivateEndpointConnection.Tests.ps1 create mode 100644 swaggerci/eventgrid/test/Get-AzEventGridPrivateLinkResource.Tests.ps1 create mode 100644 swaggerci/eventgrid/test/Get-AzEventGridSystemTopic.Tests.ps1 create mode 100644 swaggerci/eventgrid/test/Get-AzEventGridSystemTopicEventSubscription.Tests.ps1 create mode 100644 swaggerci/eventgrid/test/Get-AzEventGridSystemTopicEventSubscriptionDeliveryAttribute.Tests.ps1 create mode 100644 swaggerci/eventgrid/test/Get-AzEventGridSystemTopicEventSubscriptionFullUrl.Tests.ps1 create mode 100644 swaggerci/eventgrid/test/Get-AzEventGridTopic.Tests.ps1 create mode 100644 swaggerci/eventgrid/test/Get-AzEventGridTopicEventSubscription.Tests.ps1 create mode 100644 swaggerci/eventgrid/test/Get-AzEventGridTopicEventSubscriptionDeliveryAttribute.Tests.ps1 create mode 100644 swaggerci/eventgrid/test/Get-AzEventGridTopicEventSubscriptionFullUrl.Tests.ps1 create mode 100644 swaggerci/eventgrid/test/Get-AzEventGridTopicEventType.Tests.ps1 create mode 100644 swaggerci/eventgrid/test/Get-AzEventGridTopicSharedAccessKey.Tests.ps1 create mode 100644 swaggerci/eventgrid/test/Get-AzEventGridTopicType.Tests.ps1 create mode 100644 swaggerci/eventgrid/test/Get-AzEventGridTopicTypeEventType.Tests.ps1 create mode 100644 swaggerci/eventgrid/test/Get-AzEventGridVerifiedPartner.Tests.ps1 create mode 100644 swaggerci/eventgrid/test/Grant-AzEventGridPartnerConfigurationPartner.Tests.ps1 create mode 100644 swaggerci/eventgrid/test/Initialize-AzEventGridPartnerDestination.Tests.ps1 create mode 100644 swaggerci/eventgrid/test/Initialize-AzEventGridPartnerTopic.Tests.ps1 create mode 100644 swaggerci/eventgrid/test/Invoke-AzEventGridDeactivatePartnerTopic.Tests.ps1 create mode 100644 swaggerci/eventgrid/test/Invoke-AzEventGridPartnerConfigurationUnauthorize.Tests.ps1 create mode 100644 swaggerci/eventgrid/test/New-AzEventGridChannel.Tests.ps1 create mode 100644 swaggerci/eventgrid/test/New-AzEventGridDomain.Tests.ps1 create mode 100644 swaggerci/eventgrid/test/New-AzEventGridDomainEventSubscription.Tests.ps1 create mode 100644 swaggerci/eventgrid/test/New-AzEventGridDomainKey.Tests.ps1 create mode 100644 swaggerci/eventgrid/test/New-AzEventGridDomainTopicEventSubscription.Tests.ps1 create mode 100644 swaggerci/eventgrid/test/New-AzEventGridEventChannel.Tests.ps1 create mode 100644 swaggerci/eventgrid/test/New-AzEventGridEventSubscription.Tests.ps1 create mode 100644 swaggerci/eventgrid/test/New-AzEventGridPartnerConfiguration.Tests.ps1 create mode 100644 swaggerci/eventgrid/test/New-AzEventGridPartnerDestination.Tests.ps1 create mode 100644 swaggerci/eventgrid/test/New-AzEventGridPartnerNamespace.Tests.ps1 create mode 100644 swaggerci/eventgrid/test/New-AzEventGridPartnerNamespaceKey.Tests.ps1 create mode 100644 swaggerci/eventgrid/test/New-AzEventGridPartnerRegistration.Tests.ps1 create mode 100644 swaggerci/eventgrid/test/New-AzEventGridPartnerTopic.Tests.ps1 create mode 100644 swaggerci/eventgrid/test/New-AzEventGridPartnerTopicEventSubscription.Tests.ps1 create mode 100644 swaggerci/eventgrid/test/New-AzEventGridSystemTopic.Tests.ps1 create mode 100644 swaggerci/eventgrid/test/New-AzEventGridSystemTopicEventSubscription.Tests.ps1 create mode 100644 swaggerci/eventgrid/test/New-AzEventGridTopic.Tests.ps1 create mode 100644 swaggerci/eventgrid/test/New-AzEventGridTopicEventSubscription.Tests.ps1 create mode 100644 swaggerci/eventgrid/test/New-AzEventGridTopicKey.Tests.ps1 create mode 100644 swaggerci/eventgrid/test/README.md create mode 100644 swaggerci/eventgrid/test/Remove-AzEventGridChannel.Tests.ps1 create mode 100644 swaggerci/eventgrid/test/Remove-AzEventGridDomain.Tests.ps1 create mode 100644 swaggerci/eventgrid/test/Remove-AzEventGridDomainEventSubscription.Tests.ps1 create mode 100644 swaggerci/eventgrid/test/Remove-AzEventGridDomainTopic.Tests.ps1 create mode 100644 swaggerci/eventgrid/test/Remove-AzEventGridDomainTopicEventSubscription.Tests.ps1 create mode 100644 swaggerci/eventgrid/test/Remove-AzEventGridEventChannel.Tests.ps1 create mode 100644 swaggerci/eventgrid/test/Remove-AzEventGridEventSubscription.Tests.ps1 create mode 100644 swaggerci/eventgrid/test/Remove-AzEventGridPartnerConfiguration.Tests.ps1 create mode 100644 swaggerci/eventgrid/test/Remove-AzEventGridPartnerDestination.Tests.ps1 create mode 100644 swaggerci/eventgrid/test/Remove-AzEventGridPartnerNamespace.Tests.ps1 create mode 100644 swaggerci/eventgrid/test/Remove-AzEventGridPartnerRegistration.Tests.ps1 create mode 100644 swaggerci/eventgrid/test/Remove-AzEventGridPartnerTopic.Tests.ps1 create mode 100644 swaggerci/eventgrid/test/Remove-AzEventGridPartnerTopicEventSubscription.Tests.ps1 create mode 100644 swaggerci/eventgrid/test/Remove-AzEventGridPrivateEndpointConnection.Tests.ps1 create mode 100644 swaggerci/eventgrid/test/Remove-AzEventGridSystemTopic.Tests.ps1 create mode 100644 swaggerci/eventgrid/test/Remove-AzEventGridSystemTopicEventSubscription.Tests.ps1 create mode 100644 swaggerci/eventgrid/test/Remove-AzEventGridTopic.Tests.ps1 create mode 100644 swaggerci/eventgrid/test/Remove-AzEventGridTopicEventSubscription.Tests.ps1 create mode 100644 swaggerci/eventgrid/test/Update-AzEventGridChannel.Tests.ps1 create mode 100644 swaggerci/eventgrid/test/Update-AzEventGridDomain.Tests.ps1 create mode 100644 swaggerci/eventgrid/test/Update-AzEventGridDomainEventSubscription.Tests.ps1 create mode 100644 swaggerci/eventgrid/test/Update-AzEventGridDomainTopicEventSubscription.Tests.ps1 create mode 100644 swaggerci/eventgrid/test/Update-AzEventGridEventSubscription.Tests.ps1 create mode 100644 swaggerci/eventgrid/test/Update-AzEventGridPartnerConfiguration.Tests.ps1 create mode 100644 swaggerci/eventgrid/test/Update-AzEventGridPartnerDestination.Tests.ps1 create mode 100644 swaggerci/eventgrid/test/Update-AzEventGridPartnerNamespace.Tests.ps1 create mode 100644 swaggerci/eventgrid/test/Update-AzEventGridPartnerRegistration.Tests.ps1 create mode 100644 swaggerci/eventgrid/test/Update-AzEventGridPartnerTopic.Tests.ps1 create mode 100644 swaggerci/eventgrid/test/Update-AzEventGridPartnerTopicEventSubscription.Tests.ps1 create mode 100644 swaggerci/eventgrid/test/Update-AzEventGridSystemTopic.Tests.ps1 create mode 100644 swaggerci/eventgrid/test/Update-AzEventGridSystemTopicEventSubscription.Tests.ps1 create mode 100644 swaggerci/eventgrid/test/Update-AzEventGridTopic.Tests.ps1 create mode 100644 swaggerci/eventgrid/test/Update-AzEventGridTopicEventSubscription.Tests.ps1 create mode 100644 swaggerci/eventgrid/test/loadEnv.ps1 create mode 100644 swaggerci/eventgrid/test/utils.ps1 create mode 100644 swaggerci/eventgrid/utils/Unprotect-SecureString.ps1 diff --git a/swaggerci/eventgrid/.gitattributes b/swaggerci/eventgrid/.gitattributes new file mode 100644 index 000000000000..2125666142eb --- /dev/null +++ b/swaggerci/eventgrid/.gitattributes @@ -0,0 +1 @@ +* text=auto \ No newline at end of file diff --git a/swaggerci/eventgrid/.gitignore b/swaggerci/eventgrid/.gitignore new file mode 100644 index 000000000000..7998f37e1e47 --- /dev/null +++ b/swaggerci/eventgrid/.gitignore @@ -0,0 +1,5 @@ +bin +obj +.vs +tools +test/*-TestResults.xml \ No newline at end of file diff --git a/swaggerci/eventgrid/Az.EventGrid.csproj b/swaggerci/eventgrid/Az.EventGrid.csproj new file mode 100644 index 000000000000..96963581565e --- /dev/null +++ b/swaggerci/eventgrid/Az.EventGrid.csproj @@ -0,0 +1,43 @@ + + + + 0.1.0 + 7.1 + netstandard2.0 + Library + Az.EventGrid.private + Microsoft.Azure.PowerShell.Cmdlets.EventGrid + true + false + ./bin + $(OutputPath) + Az.EventGrid.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/eventgrid/Az.EventGrid.format.ps1xml b/swaggerci/eventgrid/Az.EventGrid.format.ps1xml new file mode 100644 index 000000000000..635de7016259 --- /dev/null +++ b/swaggerci/eventgrid/Az.EventGrid.format.ps1xml @@ -0,0 +1,5071 @@ + + + + + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.EventGridIdentity + + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.EventGridIdentity + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ChannelName + + + DomainName + + + DomainTopicName + + + EventChannelName + + + EventSubscriptionName + + + Id + + + Location + + + ParentName + + + ParentType + + + PartnerDestinationName + + + PartnerNamespaceName + + + PartnerRegistrationName + + + PartnerTopicName + + + PrivateEndpointConnectionName + + + PrivateLinkResourceName + + + ProviderNamespace + + + ResourceGroupName + + + ResourceName + + + ResourceTypeName + + + Scope + + + SubscriptionId + + + SystemTopicName + + + TopicName + + + TopicTypeName + + + VerifiedPartnerName + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.AdvancedFilter + + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.AdvancedFilter + + + + + + + + + + + + + + + Key + + + OperatorType + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.AzureAdPartnerClientAuthentication + + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.AzureAdPartnerClientAuthentication + + + + + + + + + + + + ClientAuthenticationType + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.AzureAdPartnerClientAuthenticationProperties + + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.AzureAdPartnerClientAuthenticationProperties + + + + + + + + + + + + + + + AzureActiveDirectoryApplicationIdOrUri + + + AzureActiveDirectoryTenantId + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.AzureFunctionEventSubscriptionDestination + + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.AzureFunctionEventSubscriptionDestination + + + + + + + + + + + + EndpointType + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.AzureFunctionEventSubscriptionDestinationProperties + + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.AzureFunctionEventSubscriptionDestinationProperties + + + + + + + + + + + + + + + + + + MaxEventsPerBatch + + + PreferredBatchSizeInKilobyte + + + ResourceId + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.BoolEqualsAdvancedFilter + + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.BoolEqualsAdvancedFilter + + + + + + + + + + + + + + + + + + Key + + + OperatorType + + + Value + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.Channel + + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.Channel + + + + + + + + + + + + + + + + + + Id + + + Name + + + Type + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ChannelProperties + + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ChannelProperties + + + + + + + + + + + + + + + + + + + + + + + + ChannelType + + + ExpirationTimeIfNotActivatedUtc + + + MessageForActivation + + + ProvisioningState + + + ReadinessState + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ChannelsListResult + + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ChannelsListResult + + + + + + + + + + + + NextLink + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ChannelUpdateParametersProperties + + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ChannelUpdateParametersProperties + + + + + + + + + + + + ExpirationTimeIfNotActivatedUtc + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ConnectionState + + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ConnectionState + + + + + + + + + + + + + + + + + + ActionsRequired + + + Description + + + Status + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.DeadLetterDestination + + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.DeadLetterDestination + + + + + + + + + + + + EndpointType + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.DeliveryAttributeMapping + + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.DeliveryAttributeMapping + + + + + + + + + + + + + + + Name + + + Type + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.Domain + + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.Domain + + + + + + + + + + + + + + + + + + + + + Id + + + Location + + + Name + + + Type + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.DomainProperties + + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.DomainProperties + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + AutoCreateTopicWithFirstSubscription + + + AutoDeleteTopicWithLastSubscription + + + DataResidencyBoundary + + + DisableLocalAuth + + + Endpoint + + + InputSchema + + + MetricResourceId + + + ProvisioningState + + + PublicNetworkAccess + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.DomainRegenerateKeyRequest + + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.DomainRegenerateKeyRequest + + + + + + + + + + + + KeyName + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.DomainSharedAccessKeys + + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.DomainSharedAccessKeys + + + + + + + + + + + + + + + Key1 + + + Key2 + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.DomainsListResult + + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.DomainsListResult + + + + + + + + + + + + NextLink + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.DomainTopic + + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.DomainTopic + + + + + + + + + + + + + + + + + + Id + + + Name + + + Type + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.DomainTopicProperties + + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.DomainTopicProperties + + + + + + + + + + + + ProvisioningState + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.DomainTopicsListResult + + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.DomainTopicsListResult + + + + + + + + + + + + NextLink + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.DomainUpdateParameterProperties + + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.DomainUpdateParameterProperties + + + + + + + + + + + + + + + + + + + + + + + + AutoCreateTopicWithFirstSubscription + + + AutoDeleteTopicWithLastSubscription + + + DataResidencyBoundary + + + DisableLocalAuth + + + PublicNetworkAccess + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.DomainUpdateParametersTags + + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.DomainUpdateParametersTags + + + + + + + + + + + + Item + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.DynamicDeliveryAttributeMapping + + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.DynamicDeliveryAttributeMapping + + + + + + + + + + + + + + + Name + + + Type + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.DynamicDeliveryAttributeMappingProperties + + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.DynamicDeliveryAttributeMappingProperties + + + + + + + + + + + + SourceField + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.EventChannel + + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.EventChannel + + + + + + + + + + + + + + + + + + Id + + + Name + + + Type + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.EventChannelDestination + + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.EventChannelDestination + + + + + + + + + + + + + + + + + + AzureSubscriptionId + + + PartnerTopicName + + + ResourceGroup + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.EventChannelFilter + + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.EventChannelFilter + + + + + + + + + + + + EnableAdvancedFilteringOnArray + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.EventChannelProperties + + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.EventChannelProperties + + + + + + + + + + + + + + + + + + + + + ExpirationTimeIfNotActivatedUtc + + + PartnerTopicFriendlyDescription + + + PartnerTopicReadinessState + + + ProvisioningState + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.EventChannelsListResult + + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.EventChannelsListResult + + + + + + + + + + + + NextLink + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.EventChannelSource + + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.EventChannelSource + + + + + + + + + + + + Source + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.EventHubEventSubscriptionDestination + + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.EventHubEventSubscriptionDestination + + + + + + + + + + + + EndpointType + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.EventHubEventSubscriptionDestinationProperties + + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.EventHubEventSubscriptionDestinationProperties + + + + + + + + + + + + ResourceId + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.EventSubscription + + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.EventSubscription + + + + + + + + + + + + + + + + + + Id + + + Name + + + Type + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.EventSubscriptionDestination + + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.EventSubscriptionDestination + + + + + + + + + + + + EndpointType + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.EventSubscriptionFilter + + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.EventSubscriptionFilter + + + + + + + + + + + + + + + + + + + + + + + + EnableAdvancedFilteringOnArray + + + IncludedEventType + + + IsSubjectCaseSensitive + + + SubjectBeginsWith + + + SubjectEndsWith + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.EventSubscriptionFullUrl + + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.EventSubscriptionFullUrl + + + + + + + + + + + + EndpointUrl + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.EventSubscriptionIdentity + + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.EventSubscriptionIdentity + + + + + + + + + + + + + + + Type + + + UserAssignedIdentity + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.EventSubscriptionProperties + + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.EventSubscriptionProperties + + + + + + + + + + + + + + + + + + + + + + + + EventDeliverySchema + + + ExpirationTimeUtc + + + Label + + + ProvisioningState + + + Topic + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.EventSubscriptionsListResult + + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.EventSubscriptionsListResult + + + + + + + + + + + + NextLink + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.EventSubscriptionUpdateParameters + + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.EventSubscriptionUpdateParameters + + + + + + + + + + + + + + + + + + EventDeliverySchema + + + ExpirationTimeUtc + + + Label + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.EventType + + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.EventType + + + + + + + + + + + + + + + + + + Id + + + Name + + + Type + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.EventTypeInfo + + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.EventTypeInfo + + + + + + + + + + + + Kind + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.EventTypeProperties + + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.EventTypeProperties + + + + + + + + + + + + + + + + + + + + + Description + + + DisplayName + + + IsInDefaultSet + + + SchemaUrl + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ExtendedLocation + + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ExtendedLocation + + + + + + + + + + + + + + + Name + + + Type + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ExtensionTopic + + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ExtensionTopic + + + + + + + + + + + + + + + + + + Id + + + Name + + + Type + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ExtensionTopicProperties + + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ExtensionTopicProperties + + + + + + + + + + + + + + + Description + + + SystemTopic + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.HybridConnectionEventSubscriptionDestination + + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.HybridConnectionEventSubscriptionDestination + + + + + + + + + + + + EndpointType + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.HybridConnectionEventSubscriptionDestinationProperties + + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.HybridConnectionEventSubscriptionDestinationProperties + + + + + + + + + + + + ResourceId + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IdentityInfo + + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IdentityInfo + + + + + + + + + + + + + + + + + + PrincipalId + + + TenantId + + + Type + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.InboundIPRule + + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.InboundIPRule + + + + + + + + + + + + + + + Action + + + IPMask + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.InlineEventProperties + + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.InlineEventProperties + + + + + + + + + + + + + + + + + + DataSchemaUrl + + + Description + + + DocumentationUrl + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.InputSchemaMapping + + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.InputSchemaMapping + + + + + + + + + + + + Type + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IsNotNullAdvancedFilter + + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IsNotNullAdvancedFilter + + + + + + + + + + + + + + + Key + + + OperatorType + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IsNullOrUndefinedAdvancedFilter + + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IsNullOrUndefinedAdvancedFilter + + + + + + + + + + + + + + + Key + + + OperatorType + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.JsonField + + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.JsonField + + + + + + + + + + + + SourceField + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.JsonFieldWithDefault + + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.JsonFieldWithDefault + + + + + + + + + + + + + + + DefaultValue + + + SourceField + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.JsonInputSchemaMapping + + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.JsonInputSchemaMapping + + + + + + + + + + + + Type + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.NumberGreaterThanAdvancedFilter + + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.NumberGreaterThanAdvancedFilter + + + + + + + + + + + + + + + + + + Key + + + OperatorType + + + Value + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.NumberGreaterThanOrEqualsAdvancedFilter + + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.NumberGreaterThanOrEqualsAdvancedFilter + + + + + + + + + + + + + + + + + + Key + + + OperatorType + + + Value + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.NumberInAdvancedFilter + + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.NumberInAdvancedFilter + + + + + + + + + + + + + + + + + + Key + + + OperatorType + + + Value + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.NumberInRangeAdvancedFilter + + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.NumberInRangeAdvancedFilter + + + + + + + + + + + + + + + + + + Key + + + OperatorType + + + Value + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.NumberLessThanAdvancedFilter + + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.NumberLessThanAdvancedFilter + + + + + + + + + + + + + + + + + + Key + + + OperatorType + + + Value + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.NumberLessThanOrEqualsAdvancedFilter + + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.NumberLessThanOrEqualsAdvancedFilter + + + + + + + + + + + + + + + + + + Key + + + OperatorType + + + Value + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.NumberNotInAdvancedFilter + + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.NumberNotInAdvancedFilter + + + + + + + + + + + + + + + + + + Key + + + OperatorType + + + Value + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.NumberNotInRangeAdvancedFilter + + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.NumberNotInRangeAdvancedFilter + + + + + + + + + + + + + + + + + + Key + + + OperatorType + + + Value + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.Operation + + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.Operation + + + + + + + + + + + + + + + + + + IsDataAction + + + Name + + + Origin + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.OperationInfo + + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.OperationInfo + + + + + + + + + + + + + + + + + + + + + Description + + + Operation + + + Provider + + + Resource + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.Partner + + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.Partner + + + + + + + + + + + + + + + + + + AuthorizationExpirationTimeInUtc + + + Name + + + RegistrationImmutableId + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.PartnerAuthorization + + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.PartnerAuthorization + + + + + + + + + + + + DefaultMaximumExpirationTimeInDay + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.PartnerClientAuthentication + + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.PartnerClientAuthentication + + + + + + + + + + + + ClientAuthenticationType + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.PartnerConfiguration + + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.PartnerConfiguration + + + + + + + + + + + + + + + + + + + + + Id + + + Name + + + Type + + + Location + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.PartnerConfigurationProperties + + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.PartnerConfigurationProperties + + + + + + + + + + + + ProvisioningState + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.PartnerConfigurationsListResult + + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.PartnerConfigurationsListResult + + + + + + + + + + + + NextLink + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.PartnerConfigurationTags + + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.PartnerConfigurationTags + + + + + + + + + + + + Item + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.PartnerConfigurationUpdateParameterProperties + + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.PartnerConfigurationUpdateParameterProperties + + + + + + + + + + + + DefaultMaximumExpirationTimeInDay + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.PartnerConfigurationUpdateParametersTags + + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.PartnerConfigurationUpdateParametersTags + + + + + + + + + + + + Item + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.PartnerDestination + + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.PartnerDestination + + + + + + + + + + + + + + + + + + + + + Id + + + Location + + + Name + + + Type + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.PartnerDestinationInfo + + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.PartnerDestinationInfo + + + + + + + + + + + + + + + + + + + + + + + + AzureSubscriptionId + + + EndpointServiceContext + + + EndpointType + + + Name + + + ResourceGroupName + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.PartnerDestinationProperties + + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.PartnerDestinationProperties + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ActivationState + + + EndpointBaseUrl + + + EndpointServiceContext + + + ExpirationTimeIfNotActivatedUtc + + + MessageForActivation + + + PartnerRegistrationImmutableId + + + ProvisioningState + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.PartnerDestinationsListResult + + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.PartnerDestinationsListResult + + + + + + + + + + + + NextLink + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.PartnerDestinationUpdateParametersTags + + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.PartnerDestinationUpdateParametersTags + + + + + + + + + + + + Item + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.PartnerDetails + + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.PartnerDetails + + + + + + + + + + + + + + + + + + Description + + + LongDescription + + + SetupUri + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.PartnerEventSubscriptionDestination + + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.PartnerEventSubscriptionDestination + + + + + + + + + + + + EndpointType + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.PartnerEventSubscriptionDestinationProperties + + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.PartnerEventSubscriptionDestinationProperties + + + + + + + + + + + + ResourceId + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.PartnerNamespace + + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.PartnerNamespace + + + + + + + + + + + + + + + + + + + + + Id + + + Location + + + Name + + + Type + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.PartnerNamespaceProperties + + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.PartnerNamespaceProperties + + + + + + + + + + + + + + + + + + + + + + + + + + + DisableLocalAuth + + + Endpoint + + + PartnerRegistrationFullyQualifiedId + + + PartnerTopicRoutingMode + + + ProvisioningState + + + PublicNetworkAccess + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.PartnerNamespaceRegenerateKeyRequest + + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.PartnerNamespaceRegenerateKeyRequest + + + + + + + + + + + + KeyName + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.PartnerNamespaceSharedAccessKeys + + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.PartnerNamespaceSharedAccessKeys + + + + + + + + + + + + + + + Key1 + + + Key2 + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.PartnerNamespacesListResult + + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.PartnerNamespacesListResult + + + + + + + + + + + + NextLink + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.PartnerNamespaceUpdateParameterProperties + + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.PartnerNamespaceUpdateParameterProperties + + + + + + + + + + + + + + + DisableLocalAuth + + + PublicNetworkAccess + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.PartnerNamespaceUpdateParametersTags + + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.PartnerNamespaceUpdateParametersTags + + + + + + + + + + + + Item + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.PartnerRegistration + + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.PartnerRegistration + + + + + + + + + + + + + + + + + + + + + Id + + + Location + + + Name + + + Type + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.PartnerRegistrationProperties + + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.PartnerRegistrationProperties + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + AuthorizedAzureSubscriptionId + + + CustomerServiceUri + + + LogoUri + + + LongDescription + + + PartnerCustomerServiceExtension + + + PartnerCustomerServiceNumber + + + PartnerName + + + PartnerRegistrationImmutableId + + + PartnerResourceTypeDescription + + + PartnerResourceTypeDisplayName + + + PartnerResourceTypeName + + + ProvisioningState + + + SetupUri + + + VisibilityState + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.PartnerRegistrationsListResult + + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.PartnerRegistrationsListResult + + + + + + + + + + + + NextLink + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.PartnerRegistrationUpdateParameters + + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.PartnerRegistrationUpdateParameters + + + + + + + + + + + + + + + + + + + + + + + + + + + AuthorizedAzureSubscriptionId + + + LogoUri + + + PartnerTopicTypeDescription + + + PartnerTopicTypeDisplayName + + + PartnerTopicTypeName + + + SetupUri + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.PartnerRegistrationUpdateParametersTags + + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.PartnerRegistrationUpdateParametersTags + + + + + + + + + + + + Item + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.PartnerTopic + + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.PartnerTopic + + + + + + + + + + + + + + + + + + + + + Id + + + Location + + + Name + + + Type + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.PartnerTopicInfo + + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.PartnerTopicInfo + + + + + + + + + + + + + + + + + + + + + AzureSubscriptionId + + + Name + + + ResourceGroupName + + + Source + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.PartnerTopicProperties + + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.PartnerTopicProperties + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ActivationState + + + ExpirationTimeIfNotActivatedUtc + + + MessageForActivation + + + PartnerRegistrationImmutableId + + + PartnerTopicFriendlyDescription + + + ProvisioningState + + + Source + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.PartnerTopicsListResult + + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.PartnerTopicsListResult + + + + + + + + + + + + NextLink + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.PartnerTopicUpdateParametersTags + + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.PartnerTopicUpdateParametersTags + + + + + + + + + + + + Item + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.PartnerUpdateDestinationInfo + + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.PartnerUpdateDestinationInfo + + + + + + + + + + + + EndpointType + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.PrivateEndpoint + + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.PrivateEndpoint + + + + + + + + + + + + Id + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.PrivateEndpointConnection + + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.PrivateEndpointConnection + + + + + + + + + + + + + + + + + + Id + + + Name + + + Type + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.PrivateEndpointConnectionListResult + + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.PrivateEndpointConnectionListResult + + + + + + + + + + + + NextLink + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.PrivateEndpointConnectionProperties + + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.PrivateEndpointConnectionProperties + + + + + + + + + + + + + + + GroupId + + + ProvisioningState + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.PrivateLinkResource + + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.PrivateLinkResource + + + + + + + + + + + + + + + + + + Id + + + Name + + + Type + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.PrivateLinkResourceProperties + + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.PrivateLinkResourceProperties + + + + + + + + + + + + + + + + + + + + + DisplayName + + + GroupId + + + RequiredMember + + + RequiredZoneName + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.PrivateLinkResourcesListResult + + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.PrivateLinkResourcesListResult + + + + + + + + + + + + NextLink + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.Resource + + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.Resource + + + + + + + + + + + + + + + + + + Id + + + Name + + + Type + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ResourceMoveChangeHistory + + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ResourceMoveChangeHistory + + + + + + + + + + + + + + + + + + AzureSubscriptionId + + + ChangedTimeUtc + + + ResourceGroupName + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ResourceSku + + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ResourceSku + + + + + + + + + + + + Name + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.RetryPolicy + + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.RetryPolicy + + + + + + + + + + + + + + + EventTimeToLiveInMinute + + + MaxDeliveryAttempt + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ServiceBusQueueEventSubscriptionDestination + + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ServiceBusQueueEventSubscriptionDestination + + + + + + + + + + + + EndpointType + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ServiceBusQueueEventSubscriptionDestinationProperties + + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ServiceBusQueueEventSubscriptionDestinationProperties + + + + + + + + + + + + ResourceId + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ServiceBusTopicEventSubscriptionDestination + + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ServiceBusTopicEventSubscriptionDestination + + + + + + + + + + + + EndpointType + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ServiceBusTopicEventSubscriptionDestinationProperties + + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ServiceBusTopicEventSubscriptionDestinationProperties + + + + + + + + + + + + ResourceId + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.StaticDeliveryAttributeMapping + + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.StaticDeliveryAttributeMapping + + + + + + + + + + + + + + + Name + + + Type + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.StaticDeliveryAttributeMappingProperties + + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.StaticDeliveryAttributeMappingProperties + + + + + + + + + + + + + + + IsSecret + + + Value + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.StorageBlobDeadLetterDestination + + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.StorageBlobDeadLetterDestination + + + + + + + + + + + + EndpointType + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.StorageBlobDeadLetterDestinationProperties + + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.StorageBlobDeadLetterDestinationProperties + + + + + + + + + + + + + + + BlobContainerName + + + ResourceId + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.StorageQueueEventSubscriptionDestination + + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.StorageQueueEventSubscriptionDestination + + + + + + + + + + + + EndpointType + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.StorageQueueEventSubscriptionDestinationProperties + + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.StorageQueueEventSubscriptionDestinationProperties + + + + + + + + + + + + + + + + + + QueueMessageTimeToLiveInSecond + + + QueueName + + + ResourceId + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.StringBeginsWithAdvancedFilter + + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.StringBeginsWithAdvancedFilter + + + + + + + + + + + + + + + + + + Key + + + OperatorType + + + Value + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.StringContainsAdvancedFilter + + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.StringContainsAdvancedFilter + + + + + + + + + + + + + + + + + + Key + + + OperatorType + + + Value + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.StringEndsWithAdvancedFilter + + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.StringEndsWithAdvancedFilter + + + + + + + + + + + + + + + + + + Key + + + OperatorType + + + Value + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.StringInAdvancedFilter + + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.StringInAdvancedFilter + + + + + + + + + + + + + + + + + + Key + + + OperatorType + + + Value + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.StringNotBeginsWithAdvancedFilter + + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.StringNotBeginsWithAdvancedFilter + + + + + + + + + + + + + + + + + + Key + + + OperatorType + + + Value + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.StringNotContainsAdvancedFilter + + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.StringNotContainsAdvancedFilter + + + + + + + + + + + + + + + + + + Key + + + OperatorType + + + Value + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.StringNotEndsWithAdvancedFilter + + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.StringNotEndsWithAdvancedFilter + + + + + + + + + + + + + + + + + + Key + + + OperatorType + + + Value + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.StringNotInAdvancedFilter + + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.StringNotInAdvancedFilter + + + + + + + + + + + + + + + + + + Key + + + OperatorType + + + Value + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.SystemTopic + + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.SystemTopic + + + + + + + + + + + + + + + + + + + + + Id + + + Location + + + Name + + + Type + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.SystemTopicProperties + + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.SystemTopicProperties + + + + + + + + + + + + + + + + + + + + + MetricResourceId + + + ProvisioningState + + + Source + + + TopicType + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.SystemTopicsListResult + + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.SystemTopicsListResult + + + + + + + + + + + + NextLink + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.SystemTopicUpdateParametersTags + + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.SystemTopicUpdateParametersTags + + + + + + + + + + + + Item + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.Topic + + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.Topic + + + + + + + + + + + + + + + + + + + + + + + + Id + + + Location + + + Name + + + Type + + + Kind + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.TopicProperties + + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.TopicProperties + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + DataResidencyBoundary + + + DisableLocalAuth + + + Endpoint + + + InputSchema + + + MetricResourceId + + + ProvisioningState + + + PublicNetworkAccess + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.TopicRegenerateKeyRequest + + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.TopicRegenerateKeyRequest + + + + + + + + + + + + KeyName + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.TopicSharedAccessKeys + + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.TopicSharedAccessKeys + + + + + + + + + + + + + + + Key1 + + + Key2 + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.TopicsListResult + + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.TopicsListResult + + + + + + + + + + + + NextLink + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.TopicTypeInfo + + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.TopicTypeInfo + + + + + + + + + + + + + + + + + + Id + + + Name + + + Type + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.TopicTypeProperties + + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.TopicTypeProperties + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Description + + + DisplayName + + + Provider + + + ProvisioningState + + + ResourceRegionType + + + SourceResourceFormat + + + SupportedLocation + + + SupportedScopesForSource + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.TopicUpdateParameterProperties + + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.TopicUpdateParameterProperties + + + + + + + + + + + + + + + + + + DataResidencyBoundary + + + DisableLocalAuth + + + PublicNetworkAccess + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.TopicUpdateParametersTags + + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.TopicUpdateParametersTags + + + + + + + + + + + + Item + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.TrackedResource + + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.TrackedResource + + + + + + + + + + + + + + + + + + + + + Id + + + Name + + + Type + + + Location + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.TrackedResourceTags + + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.TrackedResourceTags + + + + + + + + + + + + Item + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.UserIdentityProperties + + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.UserIdentityProperties + + + + + + + + + + + + + + + ClientId + + + PrincipalId + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.VerifiedPartner + + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.VerifiedPartner + + + + + + + + + + + + + + + + + + Id + + + Name + + + Type + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.VerifiedPartnerProperties + + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.VerifiedPartnerProperties + + + + + + + + + + + + + + + + + + + + + OrganizationName + + + PartnerDisplayName + + + PartnerRegistrationImmutableId + + + ProvisioningState + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.VerifiedPartnersListResult + + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.VerifiedPartnersListResult + + + + + + + + + + + + NextLink + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.WebHookEventSubscriptionDestination + + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.WebHookEventSubscriptionDestination + + + + + + + + + + + + EndpointType + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.WebHookEventSubscriptionDestinationProperties + + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.WebHookEventSubscriptionDestinationProperties + + + + + + + + + + + + + + + + + + + + + + + + + + + AzureActiveDirectoryApplicationIdOrUri + + + AzureActiveDirectoryTenantId + + + EndpointBaseUrl + + + EndpointUrl + + + MaxEventsPerBatch + + + PreferredBatchSizeInKilobyte + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.WebhookPartnerDestinationInfo + + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.WebhookPartnerDestinationInfo + + + + + + + + + + + + + + + + + + + + + + + + AzureSubscriptionId + + + EndpointServiceContext + + + EndpointType + + + Name + + + ResourceGroupName + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.WebhookPartnerDestinationProperties + + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.WebhookPartnerDestinationProperties + + + + + + + + + + + + + + + EndpointBaseUrl + + + EndpointUrl + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.WebhookUpdatePartnerDestinationInfo + + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.WebhookUpdatePartnerDestinationInfo + + + + + + + + + + + + EndpointType + + + + + + + + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20.SystemData + + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20.SystemData + + + + + + + + + + + + + + + + + + + + + + + + + + + CreatedAt + + + CreatedBy + + + CreatedByType + + + LastModifiedAt + + + LastModifiedBy + + + LastModifiedByType + + + + + + + + \ No newline at end of file diff --git a/swaggerci/eventgrid/Az.EventGrid.nuspec b/swaggerci/eventgrid/Az.EventGrid.nuspec new file mode 100644 index 000000000000..719fb5d97996 --- /dev/null +++ b/swaggerci/eventgrid/Az.EventGrid.nuspec @@ -0,0 +1,32 @@ + + + + Az.EventGrid + 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/eventgrid/Az.EventGrid.psd1 b/swaggerci/eventgrid/Az.EventGrid.psd1 new file mode 100644 index 000000000000..d3ddc0e9231a --- /dev/null +++ b/swaggerci/eventgrid/Az.EventGrid.psd1 @@ -0,0 +1,24 @@ +@{ + GUID = '03c08964-dac8-45d3-b0d9-a241c11df432' + RootModule = './Az.EventGrid.psm1' + ModuleVersion = '0.1.0' + CompatiblePSEditions = 'Core', 'Desktop' + Author = 'Microsoft Corporation' + CompanyName = 'Microsoft Corporation' + Copyright = 'Microsoft Corporation. All rights reserved.' + Description = 'Microsoft Azure PowerShell: EventGrid cmdlets' + PowerShellVersion = '5.1' + DotNetFrameworkVersion = '4.7.2' + RequiredAssemblies = './bin/Az.EventGrid.private.dll' + FormatsToProcess = './Az.EventGrid.format.ps1xml' + FunctionsToExport = 'Get-AzEventGridChannel', 'Get-AzEventGridChannelFullUrl', 'Get-AzEventGridDomain', 'Get-AzEventGridDomainEventSubscription', 'Get-AzEventGridDomainEventSubscriptionDeliveryAttribute', 'Get-AzEventGridDomainEventSubscriptionFullUrl', 'Get-AzEventGridDomainSharedAccessKey', 'Get-AzEventGridDomainTopic', 'Get-AzEventGridDomainTopicEventSubscription', 'Get-AzEventGridDomainTopicEventSubscriptionDeliveryAttribute', 'Get-AzEventGridDomainTopicEventSubscriptionFullUrl', 'Get-AzEventGridEventChannel', 'Get-AzEventGridEventSubscription', 'Get-AzEventGridEventSubscriptionDeliveryAttribute', 'Get-AzEventGridEventSubscriptionFullUrl', 'Get-AzEventGridEventSubscriptionGlobal', 'Get-AzEventGridEventSubscriptionRegional', 'Get-AzEventGridExtensionTopic', 'Get-AzEventGridPartnerConfiguration', 'Get-AzEventGridPartnerDestination', 'Get-AzEventGridPartnerNamespace', 'Get-AzEventGridPartnerNamespaceSharedAccessKey', 'Get-AzEventGridPartnerRegistration', 'Get-AzEventGridPartnerTopic', 'Get-AzEventGridPartnerTopicEventSubscription', 'Get-AzEventGridPartnerTopicEventSubscriptionDeliveryAttribute', 'Get-AzEventGridPartnerTopicEventSubscriptionFullUrl', 'Get-AzEventGridPrivateEndpointConnection', 'Get-AzEventGridPrivateLinkResource', 'Get-AzEventGridSystemTopic', 'Get-AzEventGridSystemTopicEventSubscription', 'Get-AzEventGridSystemTopicEventSubscriptionDeliveryAttribute', 'Get-AzEventGridSystemTopicEventSubscriptionFullUrl', 'Get-AzEventGridTopic', 'Get-AzEventGridTopicEventSubscription', 'Get-AzEventGridTopicEventSubscriptionDeliveryAttribute', 'Get-AzEventGridTopicEventSubscriptionFullUrl', 'Get-AzEventGridTopicEventType', 'Get-AzEventGridTopicSharedAccessKey', 'Get-AzEventGridTopicType', 'Get-AzEventGridTopicTypeEventType', 'Get-AzEventGridVerifiedPartner', 'Grant-AzEventGridPartnerConfigurationPartner', 'Initialize-AzEventGridPartnerDestination', 'Initialize-AzEventGridPartnerTopic', 'Invoke-AzEventGridDeactivatePartnerTopic', 'Invoke-AzEventGridPartnerConfigurationUnauthorize', 'New-AzEventGridChannel', 'New-AzEventGridDomain', 'New-AzEventGridDomainEventSubscription', 'New-AzEventGridDomainKey', 'New-AzEventGridDomainTopicEventSubscription', 'New-AzEventGridEventChannel', 'New-AzEventGridEventSubscription', 'New-AzEventGridPartnerConfiguration', 'New-AzEventGridPartnerDestination', 'New-AzEventGridPartnerNamespace', 'New-AzEventGridPartnerNamespaceKey', 'New-AzEventGridPartnerRegistration', 'New-AzEventGridPartnerTopic', 'New-AzEventGridPartnerTopicEventSubscription', 'New-AzEventGridSystemTopic', 'New-AzEventGridSystemTopicEventSubscription', 'New-AzEventGridTopic', 'New-AzEventGridTopicEventSubscription', 'New-AzEventGridTopicKey', 'Remove-AzEventGridChannel', 'Remove-AzEventGridDomain', 'Remove-AzEventGridDomainEventSubscription', 'Remove-AzEventGridDomainTopic', 'Remove-AzEventGridDomainTopicEventSubscription', 'Remove-AzEventGridEventChannel', 'Remove-AzEventGridEventSubscription', 'Remove-AzEventGridPartnerConfiguration', 'Remove-AzEventGridPartnerDestination', 'Remove-AzEventGridPartnerNamespace', 'Remove-AzEventGridPartnerRegistration', 'Remove-AzEventGridPartnerTopic', 'Remove-AzEventGridPartnerTopicEventSubscription', 'Remove-AzEventGridPrivateEndpointConnection', 'Remove-AzEventGridSystemTopic', 'Remove-AzEventGridSystemTopicEventSubscription', 'Remove-AzEventGridTopic', 'Remove-AzEventGridTopicEventSubscription', 'Update-AzEventGridChannel', 'Update-AzEventGridDomain', 'Update-AzEventGridDomainEventSubscription', 'Update-AzEventGridDomainTopicEventSubscription', 'Update-AzEventGridEventSubscription', 'Update-AzEventGridPartnerConfiguration', 'Update-AzEventGridPartnerDestination', 'Update-AzEventGridPartnerNamespace', 'Update-AzEventGridPartnerRegistration', 'Update-AzEventGridPartnerTopic', 'Update-AzEventGridPartnerTopicEventSubscription', 'Update-AzEventGridSystemTopic', 'Update-AzEventGridSystemTopicEventSubscription', 'Update-AzEventGridTopic', 'Update-AzEventGridTopicEventSubscription', '*' + AliasesToExport = '*' + PrivateData = @{ + PSData = @{ + Tags = 'Azure', 'ResourceManager', 'ARM', 'PSModule', 'EventGrid' + LicenseUri = 'https://aka.ms/azps-license' + ProjectUri = 'https://github.com/Azure/azure-powershell' + ReleaseNotes = '' + } + } +} diff --git a/swaggerci/eventgrid/Az.EventGrid.psm1 b/swaggerci/eventgrid/Az.EventGrid.psm1 new file mode 100644 index 000000000000..fa71f3f13a45 --- /dev/null +++ b/swaggerci/eventgrid/Az.EventGrid.psm1 @@ -0,0 +1,107 @@ +# region Generated + # ---------------------------------------------------------------------------------- + # Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for license information. +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is regenerated. + # ---------------------------------------------------------------------------------- + # Load required Az.Accounts module + $accountsName = 'Az.Accounts' + $accountsModule = Get-Module -Name $accountsName + if(-not $accountsModule) { + $localAccountsPath = Join-Path $PSScriptRoot 'generated/modules' + if(Test-Path -Path $localAccountsPath) { + $localAccounts = Get-ChildItem -Path $localAccountsPath -Recurse -Include 'Az.Accounts.psd1' | Select-Object -Last 1 + if($localAccounts) { + $accountsModule = Import-Module -Name ($localAccounts.FullName) -Scope Global -PassThru + } + } + if(-not $accountsModule) { + $hasAdequateVersion = (Get-Module -Name $accountsName -ListAvailable | Where-Object { $_.Version -ge [System.Version]'2.7.5' } | Measure-Object).Count -gt 0 + if($hasAdequateVersion) { + $accountsModule = Import-Module -Name $accountsName -MinimumVersion 2.7.5 -Scope Global -PassThru + } + } + } + + if(-not $accountsModule) { + Write-Error "`nThis module requires $accountsName version 2.7.5 or greater. For installation instructions, please see: https://docs.microsoft.com/powershell/azure/install-az-ps" -ErrorAction Stop + } elseif (($accountsModule.Version -lt [System.Version]'2.7.5') -and (-not $localAccounts)) { + Write-Error "`nThis module requires $accountsName version 2.7.5 or greater. An earlier version of Az.Accounts is imported in the current PowerShell session. If you are running test, please try to add the switch '-RegenerateSupportModule' when executing 'test-module.ps1'. Otherwise please open a new PowerShell session and import this module again.`nAdditionally, this error could indicate that multiple incompatible versions of Azure PowerShell modules are installed on your system. For troubleshooting information, please see: https://aka.ms/azps-version-error" -ErrorAction Stop + } + Write-Information "Loaded Module '$($accountsModule.Name)'" + + # Load the private module dll + $null = Import-Module -Name (Join-Path $PSScriptRoot './bin/Az.EventGrid.private.dll') + + # Get the private module's instance + $instance = [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module]::Instance + + # Ask for the shared functionality table + $VTable = Register-AzModule + + # Tweaks the pipeline on module load + $instance.OnModuleLoad = $VTable.OnModuleLoad + + # Following two delegates are added for telemetry + $instance.GetTelemetryId = $VTable.GetTelemetryId + $instance.Telemetry = $VTable.Telemetry + + + # Tweaks the pipeline per call + $instance.OnNewRequest = $VTable.OnNewRequest + + # Gets shared parameter values + $instance.GetParameterValue = $VTable.GetParameterValue + + # Allows shared module to listen to events from this module + $instance.EventListener = $VTable.EventListener + + # Gets shared argument completers + $instance.ArgumentCompleter = $VTable.ArgumentCompleter + + # The name of the currently selected Azure profile + $instance.ProfileName = $VTable.ProfileName + + + # Load the custom module + $customModulePath = Join-Path $PSScriptRoot './custom/Az.EventGrid.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/eventgrid/MSSharedLibKey.snk b/swaggerci/eventgrid/MSSharedLibKey.snk new file mode 100644 index 0000000000000000000000000000000000000000..695f1b38774e839e5b90059bfb7f32df1dff4223 GIT binary patch literal 160 zcmV;R0AK$ABme*efB*oL000060ssI2Bme+XQ$aBR1ONa50098C{E+7Ye`kjtcRG*W zi8#m|)B?I?xgZ^2Sw5D;l4TxtPwG;3)3^j?qDHjEteSTF{rM+4WI`v zCD?tsZ^;k+S&r1&HRMb=j738S=;J$tCKNrc$@P|lZ +# Az.EventGrid +This directory contains the PowerShell module for the EventGrid service. + +--- +## Status +[![Az.EventGrid](https://img.shields.io/powershellgallery/v/Az.EventGrid.svg?style=flat-square&label=Az.EventGrid "Az.EventGrid")](https://www.powershellgallery.com/packages/Az.EventGrid/) + +## Info +- Modifiable: yes +- Generated: all +- Committed: yes +- Packaged: yes + +--- +## Detail +This module was primarily generated via [AutoRest](https://github.com/Azure/autorest) using the [PowerShell](https://github.com/Azure/autorest.powershell) extension. + +## Module Requirements +- [Az.Accounts module](https://www.powershellgallery.com/packages/Az.Accounts/), version 2.7.5 or greater + +## Authentication +AutoRest does not generate authentication code for the module. Authentication is handled via Az.Accounts by altering the HTTP payload before it is sent. + +## Development +For information on how to develop for `Az.EventGrid`, see [how-to.md](how-to.md). + diff --git a/swaggerci/eventgrid/build-module.ps1 b/swaggerci/eventgrid/build-module.ps1 new file mode 100644 index 000000000000..931386b4ae3e --- /dev/null +++ b/swaggerci/eventgrid/build-module.ps1 @@ -0,0 +1,153 @@ +# ---------------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for license information. +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is regenerated. +# ---------------------------------------------------------------------------------- +param([switch]$Isolated, [switch]$Run, [switch]$Test, [switch]$Docs, [switch]$Pack, [switch]$Code, [switch]$Release, [switch]$Debugger, [switch]$NoDocs) +$ErrorActionPreference = 'Stop' + +if($PSEdition -ne 'Core') { + Write-Error 'This script requires PowerShell Core to execute. [Note] Generated cmdlets will work in both PowerShell Core or Windows PowerShell.' +} + +if(-not $Isolated -and -not $Debugger) { + Write-Host -ForegroundColor Green 'Creating isolated process...' + $pwsh = [System.Diagnostics.Process]::GetCurrentProcess().Path + & "$pwsh" -NonInteractive -NoLogo -NoProfile -File $MyInvocation.MyCommand.Path @PSBoundParameters -Isolated + + if($LastExitCode -ne 0) { + # Build failed. Don't attempt to run the module. + return + } + + if($Test) { + . (Join-Path $PSScriptRoot 'test-module.ps1') + if($LastExitCode -ne 0) { + # Tests failed. Don't attempt to run the module. + return + } + } + + if($Docs) { + . (Join-Path $PSScriptRoot 'generate-help.ps1') + if($LastExitCode -ne 0) { + # Docs generation failed. Don't attempt to run the module. + return + } + } + + if($Pack) { + . (Join-Path $PSScriptRoot 'pack-module.ps1') + if($LastExitCode -ne 0) { + # Packing failed. Don't attempt to run the module. + return + } + } + + $runModulePath = Join-Path $PSScriptRoot 'run-module.ps1' + if($Code) { + . $runModulePath -Code + } elseif($Run) { + . $runModulePath + } else { + Write-Host -ForegroundColor Cyan "To run this module in an isolated PowerShell session, run the 'run-module.ps1' script or provide the '-Run' parameter to this script." + } + return +} + +$binFolder = Join-Path $PSScriptRoot 'bin' +$objFolder = Join-Path $PSScriptRoot 'obj' + +if(-not $Debugger) { + Write-Host -ForegroundColor Green 'Cleaning build folders...' + $null = Remove-Item -Recurse -ErrorAction SilentlyContinue -Path $binFolder, $objFolder + + if((Test-Path $binFolder) -or (Test-Path $objFolder)) { + Write-Host -ForegroundColor Cyan 'Did you forget to exit your isolated module session before rebuilding?' + Write-Error 'Unable to clean ''bin'' or ''obj'' folder. A process may have an open handle.' + } + + Write-Host -ForegroundColor Green 'Compiling module...' + $buildConfig = 'Debug' + if($Release) { + $buildConfig = 'Release' + } + dotnet publish $PSScriptRoot --verbosity quiet --configuration $buildConfig /nologo + if($LastExitCode -ne 0) { + Write-Error 'Compilation failed.' + } + + $null = Remove-Item -Recurse -ErrorAction SilentlyContinue -Path (Join-Path $binFolder 'Debug'), (Join-Path $binFolder 'Release') +} + +$dll = Join-Path $PSScriptRoot 'bin/Az.EventGrid.private.dll' +if(-not (Test-Path $dll)) { + Write-Error "Unable to find output assembly in '$binFolder'." +} + +# Load DLL to use build-time cmdlets +$null = Import-Module -Name $dll + +$modulePaths = $dll +$customPsm1 = Join-Path $PSScriptRoot 'custom/Az.EventGrid.custom.psm1' +if(Test-Path $customPsm1) { + $modulePaths = @($dll, $customPsm1) +} + +$exportsFolder = Join-Path $PSScriptRoot 'exports' +if(Test-Path $exportsFolder) { + $null = Get-ChildItem -Path $exportsFolder -Recurse -Exclude 'README.md' | Remove-Item -Recurse -ErrorAction SilentlyContinue +} +$null = New-Item -ItemType Directory -Force -Path $exportsFolder + +$internalFolder = Join-Path $PSScriptRoot 'internal' +if(Test-Path $internalFolder) { + $null = Get-ChildItem -Path $internalFolder -Recurse -Exclude '*.psm1', 'README.md' | Remove-Item -Recurse -ErrorAction SilentlyContinue +} +$null = New-Item -ItemType Directory -Force -Path $internalFolder + +$psd1 = Join-Path $PSScriptRoot './Az.EventGrid.psd1' +$guid = Get-ModuleGuid -Psd1Path $psd1 +$moduleName = 'Az.EventGrid' +$examplesFolder = Join-Path $PSScriptRoot 'examples' +$null = New-Item -ItemType Directory -Force -Path $examplesFolder + +Write-Host -ForegroundColor Green 'Creating cmdlets for specified models...' +$modelCmdlets = @() +if ($modelCmdlets.Count -gt 0) { + . (Join-Path $PSScriptRoot 'create-model-cmdlets.ps1') + CreateModelCmdlet($modelCmdlets) +} + +if($NoDocs) { + Write-Host -ForegroundColor Green 'Creating exports...' + Export-ProxyCmdlet -ModuleName $moduleName -ModulePath $modulePaths -ExportsFolder $exportsFolder -InternalFolder $internalFolder -ExcludeDocs -ExamplesFolder $examplesFolder +} else { + Write-Host -ForegroundColor Green 'Creating exports and docs...' + $moduleDescription = 'Microsoft Azure PowerShell: EventGrid cmdlets' + $docsFolder = Join-Path $PSScriptRoot 'docs' + if(Test-Path $docsFolder) { + $null = Get-ChildItem -Path $docsFolder -Recurse -Exclude 'README.md' | Remove-Item -Recurse -ErrorAction SilentlyContinue + } + $null = New-Item -ItemType Directory -Force -Path $docsFolder + Export-ProxyCmdlet -ModuleName $moduleName -ModulePath $modulePaths -ExportsFolder $exportsFolder -InternalFolder $internalFolder -ModuleDescription $moduleDescription -DocsFolder $docsFolder -ExamplesFolder $examplesFolder -ModuleGuid $guid +} + +Write-Host -ForegroundColor Green 'Creating format.ps1xml...' +$formatPs1xml = Join-Path $PSScriptRoot './Az.EventGrid.format.ps1xml' +Export-FormatPs1xml -FilePath $formatPs1xml + +Write-Host -ForegroundColor Green 'Creating psd1...' +$customFolder = Join-Path $PSScriptRoot 'custom' +Export-Psd1 -ExportsFolder $exportsFolder -CustomFolder $customFolder -Psd1Path $psd1 -ModuleGuid $guid + +Write-Host -ForegroundColor Green 'Creating test stubs...' +$testFolder = Join-Path $PSScriptRoot 'test' +$null = New-Item -ItemType Directory -Force -Path $testFolder +Export-TestStub -ModuleName $moduleName -ExportsFolder $exportsFolder -OutputFolder $testFolder + +Write-Host -ForegroundColor Green 'Creating example stubs...' +Export-ExampleStub -ExportsFolder $exportsFolder -OutputFolder $examplesFolder + +Write-Host -ForegroundColor Green '-------------Done-------------' diff --git a/swaggerci/eventgrid/check-dependencies.ps1 b/swaggerci/eventgrid/check-dependencies.ps1 new file mode 100644 index 000000000000..ec3055201a71 --- /dev/null +++ b/swaggerci/eventgrid/check-dependencies.ps1 @@ -0,0 +1,57 @@ +# ---------------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for license information. +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is regenerated. +# ---------------------------------------------------------------------------------- +param([switch]$Isolated, [switch]$Accounts, [switch]$Pester, [switch]$Resources) +$ErrorActionPreference = 'Stop' + +if(-not $Isolated) { + Write-Host -ForegroundColor Green 'Creating isolated process...' + $pwsh = [System.Diagnostics.Process]::GetCurrentProcess().Path + & "$pwsh" -NoExit -NoLogo -NoProfile -File $MyInvocation.MyCommand.Path @PSBoundParameters -Isolated + return +} + +function DownloadModule ([bool]$predicate, [string]$path, [string]$moduleName, [string]$versionMinimum, [string]$requiredVersion) { + if($predicate) { + $module = Get-Module -ListAvailable -Name $moduleName + if((-not $module) -or ($versionMinimum -and ($module | ForEach-Object { $_.Version } | Where-Object { $_ -ge [System.Version]$versionMinimum } | Measure-Object).Count -eq 0) -or ($requiredVersion -and ($module | ForEach-Object { $_.Version } | Where-Object { $_ -eq [System.Version]$requiredVersion } | Measure-Object).Count -eq 0)) { + $null = New-Item -ItemType Directory -Force -Path $path + Write-Host -ForegroundColor Green "Installing local $moduleName module into '$path'..." + if ($requiredVersion) { + Find-Module -Name $moduleName -RequiredVersion $requiredVersion -Repository PSGallery | Save-Module -Path $path + }elseif($versionMinimum) { + Find-Module -Name $moduleName -MinimumVersion $versionMinimum -Repository PSGallery | Save-Module -Path $path + } else { + Find-Module -Name $moduleName -Repository PSGallery | Save-Module -Path $path + } + } + } +} + +$ProgressPreference = 'SilentlyContinue' +$all = (@($Accounts.IsPresent, $Pester.IsPresent) | Select-Object -Unique | Measure-Object).Count -eq 1 + +$localModulesPath = Join-Path $PSScriptRoot 'generated/modules' +if(Test-Path -Path $localModulesPath) { + $env:PSModulePath = "$localModulesPath$([IO.Path]::PathSeparator)$env:PSModulePath" +} + +DownloadModule -predicate ($all -or $Accounts) -path $localModulesPath -moduleName 'Az.Accounts' -versionMinimum '2.7.5' +DownloadModule -predicate ($all -or $Pester) -path $localModulesPath -moduleName 'Pester' -requiredVersion '4.10.1' + +$tools = Join-Path $PSScriptRoot 'tools' +$resourceDir = Join-Path $tools 'Resources' +$resourceModule = Join-Path $HOME '.PSSharedModules\Resources\Az.Resources.TestSupport.psm1' + +if ($Resources.IsPresent -and ((-not (Test-Path -Path $resourceModule)) -or $RegenerateSupportModule.IsPresent)) { + Write-Host -ForegroundColor Green "Building local Resource module used for test..." + Set-Location $resourceDir + $null = autorest .\README.md --use:@autorest/powershell@3.0.414 --output-folder=$HOME/.PSSharedModules/Resources + $null = Copy-Item custom/* $HOME/.PSSharedModules/Resources/custom/ + Set-Location $HOME/.PSSharedModules/Resources + $null = .\build-module.ps1 + Set-Location $PSScriptRoot +} diff --git a/swaggerci/eventgrid/create-model-cmdlets.ps1 b/swaggerci/eventgrid/create-model-cmdlets.ps1 new file mode 100644 index 000000000000..1ce75e45b308 --- /dev/null +++ b/swaggerci/eventgrid/create-model-cmdlets.ps1 @@ -0,0 +1,163 @@ +# ---------------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for license information. +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is regenerated. +# ---------------------------------------------------------------------------------- + +function CreateModelCmdlet { + + param([string[]]$Models) + + if ($Models.Count -eq 0) + { + return + } + + $ModelCsPath = Join-Path (Join-Path $PSScriptRoot 'generated/api') 'Models' + $ModuleName = 'EventGrid' + $OutputDir = Join-Path $PSScriptRoot 'custom/autogen-model-cmdlets' + $null = New-Item -ItemType Directory -Force -Path $OutputDir + + $CsFiles = Get-ChildItem -Path $ModelCsPath -Recurse -Filter *.cs + $Content = '' + $null = $CsFiles | ForEach-Object -Process { if ($_.Name.Split('.').count -eq 2 ) + { $Content += get-content $_.fullname -raw + } } + + $Tree = [Microsoft.CodeAnalysis.CSharp.SyntaxFactory]::ParseCompilationUnit($Content) + $Nodes = $Tree.ChildNodes().ChildNodes() + foreach ($Model in $Models) + { + $InterfaceNode = $Nodes | Where-Object { ($_.Keyword.value -eq 'interface') -and ($_.Identifier.value -eq "I$Model") } + if ($InterfaceNode.count -eq 0) { + continue + } + # through a queue, we iterate all the parent models. + $Queue = @($InterfaceNode) + $visited = @("I$Model") + $AllInterfaceNodes = @() + while ($Queue.count -ne 0) + { + $AllInterfaceNodes += $Queue[0] + # Baselist contains the direct parent models. + foreach ($parent in $Queue[0].BaseList.Types) + { + if (($parent.Type.Right.Identifier.Value -ne 'IJsonSerializable') -and (-not $visited.Contains($parent.Type.Right.Identifier.Value))) + { + $Queue = [Array]$Queue + ($Nodes | Where-Object { ($_.Keyword.value -eq 'interface') -and ($_.Identifier.value -eq $parent.Type.Right.Identifier.Value) }) + $visited = [Array]$visited + $parent.Type.Right.Identifier.Value + } + } + $first, $Queue = $Queue + } + + $Namespace = $InterfaceNode.Parent.Name + $ObjectType = $Model + $ObjectTypeWithNamespace = "${Namespace}.${ObjectType}" + # remove duplicated module name + if ($ObjectType.StartsWith($ModuleName)) { + $ModulePrefix = '' + } else { + $ModulePrefix = $ModuleName + } + $OutputPath = Join-Path -ChildPath "New-Az${ModulePrefix}${ObjectType}Object.ps1" -Path $OutputDir + + $ParameterDefineScriptList = New-Object System.Collections.Generic.List[string] + $ParameterAssignScriptList = New-Object System.Collections.Generic.List[string] + foreach ($Node in $AllInterfaceNodes) + { + foreach ($Member in $Node.Members) + { + $Arguments = $Member.AttributeLists.Attributes.ArgumentList.Arguments + $Required = $false + $Description = "" + $Readonly = $False + foreach ($Argument in $Arguments) + { + if ($Argument.NameEquals.Name.Identifier.Value -eq "Required") + { + $Required = $Argument.Expression.Token.Value + } + if ($Argument.NameEquals.Name.Identifier.Value -eq "Description") + { + $Description = $Argument.Expression.Token.Value.Trim('.').replace('"', '`"') + } + if ($Argument.NameEquals.Name.Identifier.Value -eq "Readonly") + { + $Readonly = $Argument.Expression.Token.Value + } + } + if ($Readonly) + { + continue + } + $Identifier = $Member.Identifier.Value + $Type = $Member.Type.ToString().replace('?', '').Split("::")[-1] + $ParameterDefinePropertyList = New-Object System.Collections.Generic.List[string] + if ($Required) + { + $ParameterDefinePropertyList.Add("Mandatory") + } + if ($Description -ne "") + { + $ParameterDefinePropertyList.Add("HelpMessage=`"${Description}.`"") + } + $ParameterDefineProperty = [System.String]::Join(", ", $ParameterDefinePropertyList) + # check whether completer is needed + $completer = ''; + if($Type.Split('.').Split('.')[-2] -eq 'Support') { + # If Type is an array, need to strip [] + $strippedType = $Type.Replace('[]', '') + $completer += "`n [ArgumentCompleter([${strippedType}])]" + } + $ParameterDefineScript = " + [Parameter($ParameterDefineProperty)]${completer} + [${Type}] + `$${Identifier}" + $ParameterDefineScriptList.Add($ParameterDefineScript) + $ParameterAssignScriptList.Add(" + if (`$PSBoundParameters.ContainsKey('${Identifier}')) { + `$Object.${Identifier} = `$${Identifier} + }") + } + } + $ParameterDefineScript = $ParameterDefineScriptList | Join-String -Separator "," + $ParameterAssignScript = $ParameterAssignScriptList | Join-String -Separator "" + + $Script = " +# ---------------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for license information. +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is regenerated. +# ---------------------------------------------------------------------------------- + +<# +.Synopsis +Create an in-memory object for ${ObjectType}. +.Description +Create an in-memory object for ${ObjectType}. + +.Outputs +${ObjectTypeWithNamespace} +.Link +https://docs.microsoft.com/en-us/powershell/module/az.${ModuleName}/new-Az${ModulePrefix}${ObjectType}Object +#> +function New-Az${ModulePrefix}${ObjectType}Object { + [OutputType('${ObjectTypeWithNamespace}')] + [CmdletBinding(PositionalBinding=`$false)] + Param( +${ParameterDefineScript} + ) + + process { + `$Object = [${ObjectTypeWithNamespace}]::New() +${ParameterAssignScript} + return `$Object + } +} +" + Set-Content -Path $OutputPath -Value $Script + } +} diff --git a/swaggerci/eventgrid/custom/Az.EventGrid.custom.psm1 b/swaggerci/eventgrid/custom/Az.EventGrid.custom.psm1 new file mode 100644 index 000000000000..2fc634378d25 --- /dev/null +++ b/swaggerci/eventgrid/custom/Az.EventGrid.custom.psm1 @@ -0,0 +1,17 @@ +# region Generated + # Load the private module dll + $null = Import-Module -PassThru -Name (Join-Path $PSScriptRoot '../bin/Az.EventGrid.private.dll') + + # Load the internal module + $internalModulePath = Join-Path $PSScriptRoot '../internal/Az.EventGrid.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/eventgrid/custom/README.md b/swaggerci/eventgrid/custom/README.md new file mode 100644 index 000000000000..65def177084a --- /dev/null +++ b/swaggerci/eventgrid/custom/README.md @@ -0,0 +1,41 @@ +# Custom +This directory contains custom implementation for non-generated cmdlets for the `Az.EventGrid` 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.EventGrid.custom.psm1`. This file should not be modified. + +## Info +- Modifiable: yes +- Generated: partial +- Committed: yes +- Packaged: yes + +## Details +For `Az.EventGrid` 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.EventGrid.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.EventGrid.custom.psm1`. Then, during the build process, this module is loaded and processed in the same manner as the C# cmdlets. The fundamental difference is the script cmdlets use the `ParameterSetName` attribute and C# cmdlets do not. To create a script cmdlet variant of a generated cmdlet, simply decorate all parameters in the script with the new `ParameterSetName` in the `Parameter` attribute. This will appropriately treat each parameter set as a separate variant when processed to be exported during the build. + +## Purpose +This allows the modules to have cmdlets that were not defined in the REST specification. It also allows combining logic using generated cmdlets. This is a level of customization beyond what can be done using the [readme configuration options](https://github.com/Azure/autorest/blob/master/docs/powershell/options.md) that are currently available. These custom cmdlets are then referenced by the cmdlets created at build-time in the `../exports` folder. + +## Usage +The easiest way currently to start developing custom cmdlets is to copy an existing cmdlet. For C# cmdlets, copy one from the `generated/cmdlets` folder. For script cmdlets, build the project using `build-module.ps1` and copy one of the scripts from the `../exports` folder. After that, if you want to add new parameter sets, follow the guidelines in the `Details` section above. For implementing a new cmdlets, at minimum, please keep these parameters: +- Break +- DefaultProfile +- HttpPipelineAppend +- HttpPipelinePrepend +- Proxy +- ProxyCredential +- ProxyUseDefaultCredentials + +These provide functionality to our HTTP pipeline and other useful features. In script, you can forward these parameters using `$PSBoundParameters` to the other cmdlets you're calling within `Az.EventGrid`. 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.EventGrid.DescriptionAttribute` + - Used in C# cmdlets to provide a high-level description of the cmdlet. This is propagated to reference documentation via [help comments](https://docs.microsoft.com/powershell/module/microsoft.powershell.core/about/about_comment_based_help) in the exported scripts. +- `Microsoft.Azure.PowerShell.Cmdlets.EventGrid.DoNotExportAttribute` + - Used in C# and script cmdlets to suppress creating an exported cmdlet at build-time. These cmdlets will *not be exposed* by `Az.EventGrid`. +- `Microsoft.Azure.PowerShell.Cmdlets.EventGrid.InternalExportAttribute` + - Used in C# cmdlets to route exported cmdlets to the `../internal`, which are *not exposed* by `Az.EventGrid`. For more information, see [README.md](../internal/README.md) in the `../internal` folder. +- `Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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/eventgrid/docs/Az.EventGrid.md b/swaggerci/eventgrid/docs/Az.EventGrid.md new file mode 100644 index 000000000000..4378d91e3ec6 --- /dev/null +++ b/swaggerci/eventgrid/docs/Az.EventGrid.md @@ -0,0 +1,312 @@ +--- +Module Name: Az.EventGrid +Module Guid: 03c08964-dac8-45d3-b0d9-a241c11df432 +Download Help Link: https://docs.microsoft.com/en-us/powershell/module/az.eventgrid +Help Version: 1.0.0.0 +Locale: en-US +--- + +# Az.EventGrid Module +## Description +Microsoft Azure PowerShell: EventGrid cmdlets + +## Az.EventGrid Cmdlets +### [Get-AzEventGridChannel](Get-AzEventGridChannel.md) +Get properties of a channel. + +### [Get-AzEventGridChannelFullUrl](Get-AzEventGridChannelFullUrl.md) +Get the full endpoint URL of a partner destination channel. + +### [Get-AzEventGridDomain](Get-AzEventGridDomain.md) +Get properties of a domain. + +### [Get-AzEventGridDomainEventSubscription](Get-AzEventGridDomainEventSubscription.md) +Get properties of an event subscription of a domain. + +### [Get-AzEventGridDomainEventSubscriptionDeliveryAttribute](Get-AzEventGridDomainEventSubscriptionDeliveryAttribute.md) +Get all delivery attributes for an event subscription for domain. + +### [Get-AzEventGridDomainEventSubscriptionFullUrl](Get-AzEventGridDomainEventSubscriptionFullUrl.md) +Get the full endpoint URL for an event subscription for domain. + +### [Get-AzEventGridDomainSharedAccessKey](Get-AzEventGridDomainSharedAccessKey.md) +List the two keys used to publish to a domain. + +### [Get-AzEventGridDomainTopic](Get-AzEventGridDomainTopic.md) +Get properties of a domain topic. + +### [Get-AzEventGridDomainTopicEventSubscription](Get-AzEventGridDomainTopicEventSubscription.md) +Get properties of a nested event subscription for a domain topic. + +### [Get-AzEventGridDomainTopicEventSubscriptionDeliveryAttribute](Get-AzEventGridDomainTopicEventSubscriptionDeliveryAttribute.md) +Get all delivery attributes for an event subscription for domain topic. + +### [Get-AzEventGridDomainTopicEventSubscriptionFullUrl](Get-AzEventGridDomainTopicEventSubscriptionFullUrl.md) +Get the full endpoint URL for a nested event subscription for domain topic. + +### [Get-AzEventGridEventChannel](Get-AzEventGridEventChannel.md) +Get properties of an event channel. + +### [Get-AzEventGridEventSubscription](Get-AzEventGridEventSubscription.md) +Get properties of an event subscription. + +### [Get-AzEventGridEventSubscriptionDeliveryAttribute](Get-AzEventGridEventSubscriptionDeliveryAttribute.md) +Get all delivery attributes for an event subscription. + +### [Get-AzEventGridEventSubscriptionFullUrl](Get-AzEventGridEventSubscriptionFullUrl.md) +Get the full endpoint URL for an event subscription. + +### [Get-AzEventGridEventSubscriptionGlobal](Get-AzEventGridEventSubscriptionGlobal.md) +List all aggregated global event subscriptions under a specific Azure subscription. + +### [Get-AzEventGridEventSubscriptionRegional](Get-AzEventGridEventSubscriptionRegional.md) +List all event subscriptions from the given location under a specific Azure subscription. + +### [Get-AzEventGridExtensionTopic](Get-AzEventGridExtensionTopic.md) +Get the properties of an extension topic. + +### [Get-AzEventGridPartnerConfiguration](Get-AzEventGridPartnerConfiguration.md) +Get properties of a partner configuration. + +### [Get-AzEventGridPartnerDestination](Get-AzEventGridPartnerDestination.md) +Get properties of a partner destination. + +### [Get-AzEventGridPartnerNamespace](Get-AzEventGridPartnerNamespace.md) +Get properties of a partner namespace. + +### [Get-AzEventGridPartnerNamespaceSharedAccessKey](Get-AzEventGridPartnerNamespaceSharedAccessKey.md) +List the two keys used to publish to a partner namespace. + +### [Get-AzEventGridPartnerRegistration](Get-AzEventGridPartnerRegistration.md) +Gets a partner registration with the specified parameters. + +### [Get-AzEventGridPartnerTopic](Get-AzEventGridPartnerTopic.md) +Get properties of a partner topic. + +### [Get-AzEventGridPartnerTopicEventSubscription](Get-AzEventGridPartnerTopicEventSubscription.md) +Get properties of an event subscription of a partner topic. + +### [Get-AzEventGridPartnerTopicEventSubscriptionDeliveryAttribute](Get-AzEventGridPartnerTopicEventSubscriptionDeliveryAttribute.md) +Get all delivery attributes for an event subscription of a partner topic. + +### [Get-AzEventGridPartnerTopicEventSubscriptionFullUrl](Get-AzEventGridPartnerTopicEventSubscriptionFullUrl.md) +Get the full endpoint URL for an event subscription of a partner topic. + +### [Get-AzEventGridPrivateEndpointConnection](Get-AzEventGridPrivateEndpointConnection.md) +Get a specific private endpoint connection under a topic, domain, or partner namespace. + +### [Get-AzEventGridPrivateLinkResource](Get-AzEventGridPrivateLinkResource.md) +Get properties of a private link resource. + +### [Get-AzEventGridSystemTopic](Get-AzEventGridSystemTopic.md) +Get properties of a system topic. + +### [Get-AzEventGridSystemTopicEventSubscription](Get-AzEventGridSystemTopicEventSubscription.md) +Get an event subscription. + +### [Get-AzEventGridSystemTopicEventSubscriptionDeliveryAttribute](Get-AzEventGridSystemTopicEventSubscriptionDeliveryAttribute.md) +Get all delivery attributes for an event subscription. + +### [Get-AzEventGridSystemTopicEventSubscriptionFullUrl](Get-AzEventGridSystemTopicEventSubscriptionFullUrl.md) +Get the full endpoint URL for an event subscription of a system topic. + +### [Get-AzEventGridTopic](Get-AzEventGridTopic.md) +Get properties of a topic. + +### [Get-AzEventGridTopicEventSubscription](Get-AzEventGridTopicEventSubscription.md) +Get properties of an event subscription of a topic. + +### [Get-AzEventGridTopicEventSubscriptionDeliveryAttribute](Get-AzEventGridTopicEventSubscriptionDeliveryAttribute.md) +Get all delivery attributes for an event subscription for topic. + +### [Get-AzEventGridTopicEventSubscriptionFullUrl](Get-AzEventGridTopicEventSubscriptionFullUrl.md) +Get the full endpoint URL for an event subscription for topic. + +### [Get-AzEventGridTopicEventType](Get-AzEventGridTopicEventType.md) +List event types for a topic. + +### [Get-AzEventGridTopicSharedAccessKey](Get-AzEventGridTopicSharedAccessKey.md) +List the two keys used to publish to a topic. + +### [Get-AzEventGridTopicType](Get-AzEventGridTopicType.md) +Get information about a topic type. + +### [Get-AzEventGridTopicTypeEventType](Get-AzEventGridTopicTypeEventType.md) +List event types for a topic type. + +### [Get-AzEventGridVerifiedPartner](Get-AzEventGridVerifiedPartner.md) +Get properties of a verified partner. + +### [Grant-AzEventGridPartnerConfigurationPartner](Grant-AzEventGridPartnerConfigurationPartner.md) +Authorize a single partner either by partner registration immutable Id or by partner name. + +### [Initialize-AzEventGridPartnerDestination](Initialize-AzEventGridPartnerDestination.md) +Activate a newly created partner destination. + +### [Initialize-AzEventGridPartnerTopic](Initialize-AzEventGridPartnerTopic.md) +Activate a newly created partner topic. + +### [Invoke-AzEventGridDeactivatePartnerTopic](Invoke-AzEventGridDeactivatePartnerTopic.md) +Deactivate specific partner topic. + +### [Invoke-AzEventGridPartnerConfigurationUnauthorize](Invoke-AzEventGridPartnerConfigurationUnauthorize.md) +Unauthorize a single partner either by partner registration immutable Id or by partner name. + +### [New-AzEventGridChannel](New-AzEventGridChannel.md) +Synchronously creates or updates a new channel with the specified parameters. + +### [New-AzEventGridDomain](New-AzEventGridDomain.md) +Asynchronously creates or updates a new domain with the specified parameters. + +### [New-AzEventGridDomainEventSubscription](New-AzEventGridDomainEventSubscription.md) +Asynchronously creates a new event subscription or updates an existing event subscription. + +### [New-AzEventGridDomainKey](New-AzEventGridDomainKey.md) +Regenerate a shared access key for a domain. + +### [New-AzEventGridDomainTopicEventSubscription](New-AzEventGridDomainTopicEventSubscription.md) +Asynchronously creates a new event subscription or updates an existing event subscription. + +### [New-AzEventGridEventChannel](New-AzEventGridEventChannel.md) +Asynchronously creates a new event channel with the specified parameters. + +### [New-AzEventGridEventSubscription](New-AzEventGridEventSubscription.md) +Asynchronously creates a new event subscription or updates an existing event subscription based on the specified scope. + +### [New-AzEventGridPartnerConfiguration](New-AzEventGridPartnerConfiguration.md) +Synchronously creates or updates a partner configuration with the specified parameters. + +### [New-AzEventGridPartnerDestination](New-AzEventGridPartnerDestination.md) +Asynchronously creates a new partner destination with the specified parameters. + +### [New-AzEventGridPartnerNamespace](New-AzEventGridPartnerNamespace.md) +Asynchronously creates a new partner namespace with the specified parameters. + +### [New-AzEventGridPartnerNamespaceKey](New-AzEventGridPartnerNamespaceKey.md) +Regenerate a shared access key for a partner namespace. + +### [New-AzEventGridPartnerRegistration](New-AzEventGridPartnerRegistration.md) +Creates a new partner registration with the specified parameters. + +### [New-AzEventGridPartnerTopic](New-AzEventGridPartnerTopic.md) +Asynchronously creates a new partner topic with the specified parameters. + +### [New-AzEventGridPartnerTopicEventSubscription](New-AzEventGridPartnerTopicEventSubscription.md) +Asynchronously creates or updates an event subscription of a partner topic with the specified parameters. +Existing event subscriptions will be updated with this API. + +### [New-AzEventGridSystemTopic](New-AzEventGridSystemTopic.md) +Asynchronously creates a new system topic with the specified parameters. + +### [New-AzEventGridSystemTopicEventSubscription](New-AzEventGridSystemTopicEventSubscription.md) +Asynchronously creates or updates an event subscription with the specified parameters. +Existing event subscriptions will be updated with this API. + +### [New-AzEventGridTopic](New-AzEventGridTopic.md) +Asynchronously creates a new topic with the specified parameters. + +### [New-AzEventGridTopicEventSubscription](New-AzEventGridTopicEventSubscription.md) +Asynchronously creates a new event subscription or updates an existing event subscription. + +### [New-AzEventGridTopicKey](New-AzEventGridTopicKey.md) +Regenerate a shared access key for a topic. + +### [Remove-AzEventGridChannel](Remove-AzEventGridChannel.md) +Delete an existing channel. + +### [Remove-AzEventGridDomain](Remove-AzEventGridDomain.md) +Delete existing domain. + +### [Remove-AzEventGridDomainEventSubscription](Remove-AzEventGridDomainEventSubscription.md) +Delete an existing event subscription for a domain. + +### [Remove-AzEventGridDomainTopic](Remove-AzEventGridDomainTopic.md) +Delete existing domain topic. + +### [Remove-AzEventGridDomainTopicEventSubscription](Remove-AzEventGridDomainTopicEventSubscription.md) +Delete a nested existing event subscription for a domain topic. + +### [Remove-AzEventGridEventChannel](Remove-AzEventGridEventChannel.md) +Delete existing event channel. + +### [Remove-AzEventGridEventSubscription](Remove-AzEventGridEventSubscription.md) +Delete an existing event subscription. + +### [Remove-AzEventGridPartnerConfiguration](Remove-AzEventGridPartnerConfiguration.md) +Delete existing partner configuration. + +### [Remove-AzEventGridPartnerDestination](Remove-AzEventGridPartnerDestination.md) +Delete existing partner destination. + +### [Remove-AzEventGridPartnerNamespace](Remove-AzEventGridPartnerNamespace.md) +Delete existing partner namespace. + +### [Remove-AzEventGridPartnerRegistration](Remove-AzEventGridPartnerRegistration.md) +Deletes a partner registration with the specified parameters. + +### [Remove-AzEventGridPartnerTopic](Remove-AzEventGridPartnerTopic.md) +Delete existing partner topic. + +### [Remove-AzEventGridPartnerTopicEventSubscription](Remove-AzEventGridPartnerTopicEventSubscription.md) +Delete an existing event subscription of a partner topic. + +### [Remove-AzEventGridPrivateEndpointConnection](Remove-AzEventGridPrivateEndpointConnection.md) +Delete a specific private endpoint connection under a topic, domain, or partner namespace. + +### [Remove-AzEventGridSystemTopic](Remove-AzEventGridSystemTopic.md) +Delete existing system topic. + +### [Remove-AzEventGridSystemTopicEventSubscription](Remove-AzEventGridSystemTopicEventSubscription.md) +Delete an existing event subscription of a system topic. + +### [Remove-AzEventGridTopic](Remove-AzEventGridTopic.md) +Delete existing topic. + +### [Remove-AzEventGridTopicEventSubscription](Remove-AzEventGridTopicEventSubscription.md) +Delete an existing event subscription for a topic. + +### [Update-AzEventGridChannel](Update-AzEventGridChannel.md) +Synchronously updates a channel with the specified parameters. + +### [Update-AzEventGridDomain](Update-AzEventGridDomain.md) +Asynchronously updates a domain with the specified parameters. + +### [Update-AzEventGridDomainEventSubscription](Update-AzEventGridDomainEventSubscription.md) +Update an existing event subscription for a topic. + +### [Update-AzEventGridDomainTopicEventSubscription](Update-AzEventGridDomainTopicEventSubscription.md) +Update an existing event subscription for a domain topic. + +### [Update-AzEventGridEventSubscription](Update-AzEventGridEventSubscription.md) +Asynchronously updates an existing event subscription. + +### [Update-AzEventGridPartnerConfiguration](Update-AzEventGridPartnerConfiguration.md) +Synchronously updates a partner configuration with the specified parameters. + +### [Update-AzEventGridPartnerDestination](Update-AzEventGridPartnerDestination.md) +Asynchronously updates a partner destination with the specified parameters. + +### [Update-AzEventGridPartnerNamespace](Update-AzEventGridPartnerNamespace.md) +Asynchronously updates a partner namespace with the specified parameters. + +### [Update-AzEventGridPartnerRegistration](Update-AzEventGridPartnerRegistration.md) +Updates a partner registration with the specified parameters. + +### [Update-AzEventGridPartnerTopic](Update-AzEventGridPartnerTopic.md) +Asynchronously updates a partner topic with the specified parameters. + +### [Update-AzEventGridPartnerTopicEventSubscription](Update-AzEventGridPartnerTopicEventSubscription.md) +Update an existing event subscription of a partner topic. + +### [Update-AzEventGridSystemTopic](Update-AzEventGridSystemTopic.md) +Asynchronously updates a system topic with the specified parameters. + +### [Update-AzEventGridSystemTopicEventSubscription](Update-AzEventGridSystemTopicEventSubscription.md) +Update an existing event subscription of a system topic. + +### [Update-AzEventGridTopic](Update-AzEventGridTopic.md) +Asynchronously updates a topic with the specified parameters. + +### [Update-AzEventGridTopicEventSubscription](Update-AzEventGridTopicEventSubscription.md) +Update an existing event subscription for a topic. + diff --git a/swaggerci/eventgrid/docs/Get-AzEventGridChannel.md b/swaggerci/eventgrid/docs/Get-AzEventGridChannel.md new file mode 100644 index 000000000000..6d019e5cdfe1 --- /dev/null +++ b/swaggerci/eventgrid/docs/Get-AzEventGridChannel.md @@ -0,0 +1,254 @@ +--- +external help file: +Module Name: Az.EventGrid +online version: https://docs.microsoft.com/en-us/powershell/module/az.eventgrid/get-azeventgridchannel +schema: 2.0.0 +--- + +# Get-AzEventGridChannel + +## SYNOPSIS +Get properties of a channel. + +## SYNTAX + +### List (Default) +``` +Get-AzEventGridChannel -PartnerNamespaceName -ResourceGroupName [-SubscriptionId ] + [-Filter ] [-Top ] [-DefaultProfile ] [-PassThru] [] +``` + +### Get +``` +Get-AzEventGridChannel -Name -PartnerNamespaceName -ResourceGroupName + [-SubscriptionId ] [-DefaultProfile ] [-PassThru] [] +``` + +### GetViaIdentity +``` +Get-AzEventGridChannel -InputObject [-DefaultProfile ] [-PassThru] + [] +``` + +## DESCRIPTION +Get properties of a channel. + +## EXAMPLES + +### Example 1: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +## PARAMETERS + +### -DefaultProfile +The credentials, account, tenant, and subscription used for communication with Azure. + +```yaml +Type: System.Management.Automation.PSObject +Parameter Sets: (All) +Aliases: AzureRMContext, AzureCredential + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -Filter +The query used to filter the search results using OData syntax. +Filtering is permitted on the 'name' property only and with limited number of OData operations. +These operations are: the 'contains' function as well as the following logical operations: not, and, or, eq (for equal), and ne (for not equal). +No arithmetic operations are supported. +The following is a valid filter example: $filter=contains(namE, 'PATTERN') and name ne 'PATTERN-1'. +The following is not a valid filter example: $filter=location eq 'westus'. + +```yaml +Type: System.String +Parameter Sets: List +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -InputObject +Identity Parameter +To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + +```yaml +Type: Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.IEventGridIdentity +Parameter Sets: GetViaIdentity +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: True (ByValue) +Accept wildcard characters: False +``` + +### -Name +Name of the channel. + +```yaml +Type: System.String +Parameter Sets: Get +Aliases: ChannelName + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -PartnerNamespaceName +Name of the partner namespace. + +```yaml +Type: System.String +Parameter Sets: Get, List +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -PassThru +Returns true when the command succeeds + +```yaml +Type: System.Management.Automation.SwitchParameter +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -ResourceGroupName +The name of the resource group within the partners subscription. + +```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 +Subscription credentials that uniquely identify a Microsoft Azure subscription. +The subscription ID forms part of the URI for every service call. + +```yaml +Type: System.String[] +Parameter Sets: Get, List +Aliases: + +Required: False +Position: Named +Default value: (Get-AzContext).Subscription.Id +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -Top +The number of results to return per page for the list operation. +Valid range for top parameter is 1 to 100. +If not specified, the default number of results to be returned is 20 items per page. + +```yaml +Type: System.Int32 +Parameter Sets: List +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### CommonParameters +This cmdlet supports the common parameters: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutVariable, -OutBuffer, -PipelineVariable, -Verbose, -WarningAction, and -WarningVariable. For more information, see [about_CommonParameters](http://go.microsoft.com/fwlink/?LinkID=113216). + +## INPUTS + +### Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.IEventGridIdentity + +## OUTPUTS + +### Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IChannel + +## 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 + - `[ChannelName ]`: Name of the channel. + - `[DomainName ]`: Name of the domain. + - `[DomainTopicName ]`: Name of the topic. + - `[EventChannelName ]`: Name of the event channel. + - `[EventSubscriptionName ]`: Name of the event subscription. + - `[Id ]`: Resource identity path + - `[Location ]`: Name of the location. + - `[ParentName ]`: The name of the parent resource (namely, either, the topic name, domain name, or partner namespace name). + - `[ParentType ]`: The type of the parent resource. This can be either \'topics\', \'domains\', or \'partnerNamespaces\'. + - `[PartnerDestinationName ]`: Name of the partner destination. + - `[PartnerNamespaceName ]`: Name of the partner namespace. + - `[PartnerRegistrationName ]`: Name of the partner registration. + - `[PartnerTopicName ]`: Name of the partner topic. + - `[PrivateEndpointConnectionName ]`: The name of the private endpoint connection connection. + - `[PrivateLinkResourceName ]`: The name of private link resource. + - `[ProviderNamespace ]`: Namespace of the provider of the topic. + - `[ResourceGroupName ]`: The name of the resource group within the partners subscription. + - `[ResourceName ]`: Name of the resource. + - `[ResourceTypeName ]`: Name of the resource type. + - `[Scope ]`: The scope of the event subscription. The scope can be a subscription, or a resource group, or a top level resource belonging to a resource provider namespace, or an EventGrid topic. For example, use '/subscriptions/{subscriptionId}/' for a subscription, '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}' for a resource group, and '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}' for a resource, and '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.EventGrid/topics/{topicName}' for an EventGrid topic. + - `[SubscriptionId ]`: Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription ID forms part of the URI for every service call. + - `[SystemTopicName ]`: Name of the system topic. + - `[TopicName ]`: Name of the domain topic. + - `[TopicTypeName ]`: Name of the topic type. + - `[VerifiedPartnerName ]`: Name of the verified partner. + +## RELATED LINKS + diff --git a/swaggerci/eventgrid/docs/Get-AzEventGridChannelFullUrl.md b/swaggerci/eventgrid/docs/Get-AzEventGridChannelFullUrl.md new file mode 100644 index 000000000000..b85b26a85830 --- /dev/null +++ b/swaggerci/eventgrid/docs/Get-AzEventGridChannelFullUrl.md @@ -0,0 +1,243 @@ +--- +external help file: +Module Name: Az.EventGrid +online version: https://docs.microsoft.com/en-us/powershell/module/az.eventgrid/get-azeventgridchannelfullurl +schema: 2.0.0 +--- + +# Get-AzEventGridChannelFullUrl + +## SYNOPSIS +Get the full endpoint URL of a partner destination channel. + +## SYNTAX + +### Get (Default) +``` +Get-AzEventGridChannelFullUrl -ChannelName -PartnerNamespaceName -ResourceGroupName + [-SubscriptionId ] [-DefaultProfile ] [-PassThru] [-Confirm] [-WhatIf] + [] +``` + +### GetViaIdentity +``` +Get-AzEventGridChannelFullUrl -InputObject [-DefaultProfile ] [-PassThru] + [-Confirm] [-WhatIf] [] +``` + +## DESCRIPTION +Get the full endpoint URL of a partner destination channel. + +## EXAMPLES + +### Example 1: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +## PARAMETERS + +### -ChannelName +Name of the Channel. + +```yaml +Type: System.String +Parameter Sets: Get +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -DefaultProfile +The credentials, account, tenant, and subscription used for communication with Azure. + +```yaml +Type: System.Management.Automation.PSObject +Parameter Sets: (All) +Aliases: AzureRMContext, AzureCredential + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -InputObject +Identity Parameter +To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + +```yaml +Type: Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.IEventGridIdentity +Parameter Sets: GetViaIdentity +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: True (ByValue) +Accept wildcard characters: False +``` + +### -PartnerNamespaceName +Name of the partner namespace. + +```yaml +Type: System.String +Parameter Sets: Get +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -PassThru +Returns true when the command succeeds + +```yaml +Type: System.Management.Automation.SwitchParameter +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -ResourceGroupName +The name of the resource group within the partners subscription. + +```yaml +Type: System.String +Parameter Sets: Get +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -SubscriptionId +Subscription credentials that uniquely identify a Microsoft Azure subscription. +The subscription ID forms part of the URI for every service call. + +```yaml +Type: System.String[] +Parameter Sets: Get +Aliases: + +Required: False +Position: Named +Default value: (Get-AzContext).Subscription.Id +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -Confirm +Prompts you for confirmation before running the cmdlet. + +```yaml +Type: System.Management.Automation.SwitchParameter +Parameter Sets: (All) +Aliases: cf + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -WhatIf +Shows what would happen if the cmdlet runs. +The cmdlet is not run. + +```yaml +Type: System.Management.Automation.SwitchParameter +Parameter Sets: (All) +Aliases: wi + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### CommonParameters +This cmdlet supports the common parameters: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutVariable, -OutBuffer, -PipelineVariable, -Verbose, -WarningAction, and -WarningVariable. For more information, see [about_CommonParameters](http://go.microsoft.com/fwlink/?LinkID=113216). + +## INPUTS + +### Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.IEventGridIdentity + +## OUTPUTS + +### System.String + +## NOTES + +ALIASES + +COMPLEX PARAMETER PROPERTIES + +To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. + + +INPUTOBJECT : Identity Parameter + - `[ChannelName ]`: Name of the channel. + - `[DomainName ]`: Name of the domain. + - `[DomainTopicName ]`: Name of the topic. + - `[EventChannelName ]`: Name of the event channel. + - `[EventSubscriptionName ]`: Name of the event subscription. + - `[Id ]`: Resource identity path + - `[Location ]`: Name of the location. + - `[ParentName ]`: The name of the parent resource (namely, either, the topic name, domain name, or partner namespace name). + - `[ParentType ]`: The type of the parent resource. This can be either \'topics\', \'domains\', or \'partnerNamespaces\'. + - `[PartnerDestinationName ]`: Name of the partner destination. + - `[PartnerNamespaceName ]`: Name of the partner namespace. + - `[PartnerRegistrationName ]`: Name of the partner registration. + - `[PartnerTopicName ]`: Name of the partner topic. + - `[PrivateEndpointConnectionName ]`: The name of the private endpoint connection connection. + - `[PrivateLinkResourceName ]`: The name of private link resource. + - `[ProviderNamespace ]`: Namespace of the provider of the topic. + - `[ResourceGroupName ]`: The name of the resource group within the partners subscription. + - `[ResourceName ]`: Name of the resource. + - `[ResourceTypeName ]`: Name of the resource type. + - `[Scope ]`: The scope of the event subscription. The scope can be a subscription, or a resource group, or a top level resource belonging to a resource provider namespace, or an EventGrid topic. For example, use '/subscriptions/{subscriptionId}/' for a subscription, '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}' for a resource group, and '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}' for a resource, and '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.EventGrid/topics/{topicName}' for an EventGrid topic. + - `[SubscriptionId ]`: Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription ID forms part of the URI for every service call. + - `[SystemTopicName ]`: Name of the system topic. + - `[TopicName ]`: Name of the domain topic. + - `[TopicTypeName ]`: Name of the topic type. + - `[VerifiedPartnerName ]`: Name of the verified partner. + +## RELATED LINKS + diff --git a/swaggerci/eventgrid/docs/Get-AzEventGridDomain.md b/swaggerci/eventgrid/docs/Get-AzEventGridDomain.md new file mode 100644 index 000000000000..cc5c964ada50 --- /dev/null +++ b/swaggerci/eventgrid/docs/Get-AzEventGridDomain.md @@ -0,0 +1,245 @@ +--- +external help file: +Module Name: Az.EventGrid +online version: https://docs.microsoft.com/en-us/powershell/module/az.eventgrid/get-azeventgriddomain +schema: 2.0.0 +--- + +# Get-AzEventGridDomain + +## SYNOPSIS +Get properties of a domain. + +## SYNTAX + +### List (Default) +``` +Get-AzEventGridDomain [-SubscriptionId ] [-Filter ] [-Top ] + [-DefaultProfile ] [-PassThru] [] +``` + +### Get +``` +Get-AzEventGridDomain -Name -ResourceGroupName [-SubscriptionId ] + [-DefaultProfile ] [-PassThru] [] +``` + +### GetViaIdentity +``` +Get-AzEventGridDomain -InputObject [-DefaultProfile ] [-PassThru] + [] +``` + +### List1 +``` +Get-AzEventGridDomain -ResourceGroupName [-SubscriptionId ] [-Filter ] + [-Top ] [-DefaultProfile ] [-PassThru] [] +``` + +## DESCRIPTION +Get properties of a domain. + +## EXAMPLES + +### Example 1: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +## PARAMETERS + +### -DefaultProfile +The credentials, account, tenant, and subscription used for communication with Azure. + +```yaml +Type: System.Management.Automation.PSObject +Parameter Sets: (All) +Aliases: AzureRMContext, AzureCredential + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -Filter +The query used to filter the search results using OData syntax. +Filtering is permitted on the 'name' property only and with limited number of OData operations. +These operations are: the 'contains' function as well as the following logical operations: not, and, or, eq (for equal), and ne (for not equal). +No arithmetic operations are supported. +The following is a valid filter example: $filter=contains(namE, 'PATTERN') and name ne 'PATTERN-1'. +The following is not a valid filter example: $filter=location eq 'westus'. + +```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.EventGrid.Models.IEventGridIdentity +Parameter Sets: GetViaIdentity +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: True (ByValue) +Accept wildcard characters: False +``` + +### -Name +Name of the domain. + +```yaml +Type: System.String +Parameter Sets: Get +Aliases: DomainName + +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 within the user's subscription. + +```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 +Subscription credentials that uniquely identify a Microsoft Azure subscription. +The subscription ID forms part of the URI for every service call. + +```yaml +Type: System.String[] +Parameter Sets: Get, List, List1 +Aliases: + +Required: False +Position: Named +Default value: (Get-AzContext).Subscription.Id +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -Top +The number of results to return per page for the list operation. +Valid range for top parameter is 1 to 100. +If not specified, the default number of results to be returned is 20 items per page. + +```yaml +Type: System.Int32 +Parameter Sets: List, List1 +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### CommonParameters +This cmdlet supports the common parameters: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutVariable, -OutBuffer, -PipelineVariable, -Verbose, -WarningAction, and -WarningVariable. For more information, see [about_CommonParameters](http://go.microsoft.com/fwlink/?LinkID=113216). + +## INPUTS + +### Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.IEventGridIdentity + +## OUTPUTS + +### Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDomain + +## 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 + - `[ChannelName ]`: Name of the channel. + - `[DomainName ]`: Name of the domain. + - `[DomainTopicName ]`: Name of the topic. + - `[EventChannelName ]`: Name of the event channel. + - `[EventSubscriptionName ]`: Name of the event subscription. + - `[Id ]`: Resource identity path + - `[Location ]`: Name of the location. + - `[ParentName ]`: The name of the parent resource (namely, either, the topic name, domain name, or partner namespace name). + - `[ParentType ]`: The type of the parent resource. This can be either \'topics\', \'domains\', or \'partnerNamespaces\'. + - `[PartnerDestinationName ]`: Name of the partner destination. + - `[PartnerNamespaceName ]`: Name of the partner namespace. + - `[PartnerRegistrationName ]`: Name of the partner registration. + - `[PartnerTopicName ]`: Name of the partner topic. + - `[PrivateEndpointConnectionName ]`: The name of the private endpoint connection connection. + - `[PrivateLinkResourceName ]`: The name of private link resource. + - `[ProviderNamespace ]`: Namespace of the provider of the topic. + - `[ResourceGroupName ]`: The name of the resource group within the partners subscription. + - `[ResourceName ]`: Name of the resource. + - `[ResourceTypeName ]`: Name of the resource type. + - `[Scope ]`: The scope of the event subscription. The scope can be a subscription, or a resource group, or a top level resource belonging to a resource provider namespace, or an EventGrid topic. For example, use '/subscriptions/{subscriptionId}/' for a subscription, '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}' for a resource group, and '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}' for a resource, and '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.EventGrid/topics/{topicName}' for an EventGrid topic. + - `[SubscriptionId ]`: Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription ID forms part of the URI for every service call. + - `[SystemTopicName ]`: Name of the system topic. + - `[TopicName ]`: Name of the domain topic. + - `[TopicTypeName ]`: Name of the topic type. + - `[VerifiedPartnerName ]`: Name of the verified partner. + +## RELATED LINKS + diff --git a/swaggerci/eventgrid/docs/Get-AzEventGridDomainEventSubscription.md b/swaggerci/eventgrid/docs/Get-AzEventGridDomainEventSubscription.md new file mode 100644 index 000000000000..291de5bbbec5 --- /dev/null +++ b/swaggerci/eventgrid/docs/Get-AzEventGridDomainEventSubscription.md @@ -0,0 +1,219 @@ +--- +external help file: +Module Name: Az.EventGrid +online version: https://docs.microsoft.com/en-us/powershell/module/az.eventgrid/get-azeventgriddomaineventsubscription +schema: 2.0.0 +--- + +# Get-AzEventGridDomainEventSubscription + +## SYNOPSIS +Get properties of an event subscription of a domain. + +## SYNTAX + +### List (Default) +``` +Get-AzEventGridDomainEventSubscription -DomainName -ResourceGroupName + [-SubscriptionId ] [-DefaultProfile ] [-PassThru] [] +``` + +### Get +``` +Get-AzEventGridDomainEventSubscription -DomainName -EventSubscriptionName + -ResourceGroupName [-SubscriptionId ] [-DefaultProfile ] [-PassThru] + [] +``` + +### GetViaIdentity +``` +Get-AzEventGridDomainEventSubscription -InputObject [-DefaultProfile ] + [-PassThru] [] +``` + +## DESCRIPTION +Get properties of an event subscription of a domain. + +## EXAMPLES + +### Example 1: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +## PARAMETERS + +### -DefaultProfile +The credentials, account, tenant, and subscription used for communication with Azure. + +```yaml +Type: System.Management.Automation.PSObject +Parameter Sets: (All) +Aliases: AzureRMContext, AzureCredential + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -DomainName +Name of the partner topic. + +```yaml +Type: System.String +Parameter Sets: Get, List +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -EventSubscriptionName +Name of the event subscription to be found. +Event subscription names must be between 3 and 100 characters in length and use alphanumeric letters only. + +```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.EventGrid.Models.IEventGridIdentity +Parameter Sets: GetViaIdentity +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: True (ByValue) +Accept wildcard characters: False +``` + +### -PassThru +Returns true when the command succeeds + +```yaml +Type: System.Management.Automation.SwitchParameter +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -ResourceGroupName +The name of the resource group within the user's subscription. + +```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 +Subscription credentials that uniquely identify a Microsoft Azure subscription. +The subscription ID forms part of the URI for every service call. + +```yaml +Type: System.String[] +Parameter Sets: Get, List +Aliases: + +Required: False +Position: Named +Default value: (Get-AzContext).Subscription.Id +Accept pipeline input: False +Accept wildcard characters: False +``` + +### CommonParameters +This cmdlet supports the common parameters: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutVariable, -OutBuffer, -PipelineVariable, -Verbose, -WarningAction, and -WarningVariable. For more information, see [about_CommonParameters](http://go.microsoft.com/fwlink/?LinkID=113216). + +## INPUTS + +### Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.IEventGridIdentity + +## OUTPUTS + +### Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscription + +## 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 + - `[ChannelName ]`: Name of the channel. + - `[DomainName ]`: Name of the domain. + - `[DomainTopicName ]`: Name of the topic. + - `[EventChannelName ]`: Name of the event channel. + - `[EventSubscriptionName ]`: Name of the event subscription. + - `[Id ]`: Resource identity path + - `[Location ]`: Name of the location. + - `[ParentName ]`: The name of the parent resource (namely, either, the topic name, domain name, or partner namespace name). + - `[ParentType ]`: The type of the parent resource. This can be either \'topics\', \'domains\', or \'partnerNamespaces\'. + - `[PartnerDestinationName ]`: Name of the partner destination. + - `[PartnerNamespaceName ]`: Name of the partner namespace. + - `[PartnerRegistrationName ]`: Name of the partner registration. + - `[PartnerTopicName ]`: Name of the partner topic. + - `[PrivateEndpointConnectionName ]`: The name of the private endpoint connection connection. + - `[PrivateLinkResourceName ]`: The name of private link resource. + - `[ProviderNamespace ]`: Namespace of the provider of the topic. + - `[ResourceGroupName ]`: The name of the resource group within the partners subscription. + - `[ResourceName ]`: Name of the resource. + - `[ResourceTypeName ]`: Name of the resource type. + - `[Scope ]`: The scope of the event subscription. The scope can be a subscription, or a resource group, or a top level resource belonging to a resource provider namespace, or an EventGrid topic. For example, use '/subscriptions/{subscriptionId}/' for a subscription, '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}' for a resource group, and '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}' for a resource, and '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.EventGrid/topics/{topicName}' for an EventGrid topic. + - `[SubscriptionId ]`: Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription ID forms part of the URI for every service call. + - `[SystemTopicName ]`: Name of the system topic. + - `[TopicName ]`: Name of the domain topic. + - `[TopicTypeName ]`: Name of the topic type. + - `[VerifiedPartnerName ]`: Name of the verified partner. + +## RELATED LINKS + diff --git a/swaggerci/eventgrid/docs/Get-AzEventGridDomainEventSubscriptionDeliveryAttribute.md b/swaggerci/eventgrid/docs/Get-AzEventGridDomainEventSubscriptionDeliveryAttribute.md new file mode 100644 index 000000000000..8a379fd603c3 --- /dev/null +++ b/swaggerci/eventgrid/docs/Get-AzEventGridDomainEventSubscriptionDeliveryAttribute.md @@ -0,0 +1,243 @@ +--- +external help file: +Module Name: Az.EventGrid +online version: https://docs.microsoft.com/en-us/powershell/module/az.eventgrid/get-azeventgriddomaineventsubscriptiondeliveryattribute +schema: 2.0.0 +--- + +# Get-AzEventGridDomainEventSubscriptionDeliveryAttribute + +## SYNOPSIS +Get all delivery attributes for an event subscription for domain. + +## SYNTAX + +### Get (Default) +``` +Get-AzEventGridDomainEventSubscriptionDeliveryAttribute -DomainName -EventSubscriptionName + -ResourceGroupName [-SubscriptionId ] [-DefaultProfile ] [-PassThru] [-Confirm] + [-WhatIf] [] +``` + +### GetViaIdentity +``` +Get-AzEventGridDomainEventSubscriptionDeliveryAttribute -InputObject + [-DefaultProfile ] [-PassThru] [-Confirm] [-WhatIf] [] +``` + +## DESCRIPTION +Get all delivery attributes for an event subscription for domain. + +## EXAMPLES + +### Example 1: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +## PARAMETERS + +### -DefaultProfile +The credentials, account, tenant, and subscription used for communication with Azure. + +```yaml +Type: System.Management.Automation.PSObject +Parameter Sets: (All) +Aliases: AzureRMContext, AzureCredential + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -DomainName +Name of the domain topic. + +```yaml +Type: System.String +Parameter Sets: Get +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -EventSubscriptionName +Name of the event subscription. + +```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.EventGrid.Models.IEventGridIdentity +Parameter Sets: GetViaIdentity +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: True (ByValue) +Accept wildcard characters: False +``` + +### -PassThru +Returns true when the command succeeds + +```yaml +Type: System.Management.Automation.SwitchParameter +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -ResourceGroupName +The name of the resource group within the user's subscription. + +```yaml +Type: System.String +Parameter Sets: Get +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -SubscriptionId +Subscription credentials that uniquely identify a Microsoft Azure subscription. +The subscription ID forms part of the URI for every service call. + +```yaml +Type: System.String[] +Parameter Sets: Get +Aliases: + +Required: False +Position: Named +Default value: (Get-AzContext).Subscription.Id +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -Confirm +Prompts you for confirmation before running the cmdlet. + +```yaml +Type: System.Management.Automation.SwitchParameter +Parameter Sets: (All) +Aliases: cf + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -WhatIf +Shows what would happen if the cmdlet runs. +The cmdlet is not run. + +```yaml +Type: System.Management.Automation.SwitchParameter +Parameter Sets: (All) +Aliases: wi + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### CommonParameters +This cmdlet supports the common parameters: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutVariable, -OutBuffer, -PipelineVariable, -Verbose, -WarningAction, and -WarningVariable. For more information, see [about_CommonParameters](http://go.microsoft.com/fwlink/?LinkID=113216). + +## INPUTS + +### Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.IEventGridIdentity + +## OUTPUTS + +### Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDeliveryAttributeMapping + +## 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 + - `[ChannelName ]`: Name of the channel. + - `[DomainName ]`: Name of the domain. + - `[DomainTopicName ]`: Name of the topic. + - `[EventChannelName ]`: Name of the event channel. + - `[EventSubscriptionName ]`: Name of the event subscription. + - `[Id ]`: Resource identity path + - `[Location ]`: Name of the location. + - `[ParentName ]`: The name of the parent resource (namely, either, the topic name, domain name, or partner namespace name). + - `[ParentType ]`: The type of the parent resource. This can be either \'topics\', \'domains\', or \'partnerNamespaces\'. + - `[PartnerDestinationName ]`: Name of the partner destination. + - `[PartnerNamespaceName ]`: Name of the partner namespace. + - `[PartnerRegistrationName ]`: Name of the partner registration. + - `[PartnerTopicName ]`: Name of the partner topic. + - `[PrivateEndpointConnectionName ]`: The name of the private endpoint connection connection. + - `[PrivateLinkResourceName ]`: The name of private link resource. + - `[ProviderNamespace ]`: Namespace of the provider of the topic. + - `[ResourceGroupName ]`: The name of the resource group within the partners subscription. + - `[ResourceName ]`: Name of the resource. + - `[ResourceTypeName ]`: Name of the resource type. + - `[Scope ]`: The scope of the event subscription. The scope can be a subscription, or a resource group, or a top level resource belonging to a resource provider namespace, or an EventGrid topic. For example, use '/subscriptions/{subscriptionId}/' for a subscription, '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}' for a resource group, and '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}' for a resource, and '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.EventGrid/topics/{topicName}' for an EventGrid topic. + - `[SubscriptionId ]`: Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription ID forms part of the URI for every service call. + - `[SystemTopicName ]`: Name of the system topic. + - `[TopicName ]`: Name of the domain topic. + - `[TopicTypeName ]`: Name of the topic type. + - `[VerifiedPartnerName ]`: Name of the verified partner. + +## RELATED LINKS + diff --git a/swaggerci/eventgrid/docs/Get-AzEventGridDomainEventSubscriptionFullUrl.md b/swaggerci/eventgrid/docs/Get-AzEventGridDomainEventSubscriptionFullUrl.md new file mode 100644 index 000000000000..4006b33b1bc5 --- /dev/null +++ b/swaggerci/eventgrid/docs/Get-AzEventGridDomainEventSubscriptionFullUrl.md @@ -0,0 +1,243 @@ +--- +external help file: +Module Name: Az.EventGrid +online version: https://docs.microsoft.com/en-us/powershell/module/az.eventgrid/get-azeventgriddomaineventsubscriptionfullurl +schema: 2.0.0 +--- + +# Get-AzEventGridDomainEventSubscriptionFullUrl + +## SYNOPSIS +Get the full endpoint URL for an event subscription for domain. + +## SYNTAX + +### Get (Default) +``` +Get-AzEventGridDomainEventSubscriptionFullUrl -DomainName -EventSubscriptionName + -ResourceGroupName [-SubscriptionId ] [-DefaultProfile ] [-PassThru] [-Confirm] + [-WhatIf] [] +``` + +### GetViaIdentity +``` +Get-AzEventGridDomainEventSubscriptionFullUrl -InputObject [-DefaultProfile ] + [-PassThru] [-Confirm] [-WhatIf] [] +``` + +## DESCRIPTION +Get the full endpoint URL for an event subscription for domain. + +## EXAMPLES + +### Example 1: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +## PARAMETERS + +### -DefaultProfile +The credentials, account, tenant, and subscription used for communication with Azure. + +```yaml +Type: System.Management.Automation.PSObject +Parameter Sets: (All) +Aliases: AzureRMContext, AzureCredential + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -DomainName +Name of the domain topic. + +```yaml +Type: System.String +Parameter Sets: Get +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -EventSubscriptionName +Name of the event subscription. + +```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.EventGrid.Models.IEventGridIdentity +Parameter Sets: GetViaIdentity +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: True (ByValue) +Accept wildcard characters: False +``` + +### -PassThru +Returns true when the command succeeds + +```yaml +Type: System.Management.Automation.SwitchParameter +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -ResourceGroupName +The name of the resource group within the user's subscription. + +```yaml +Type: System.String +Parameter Sets: Get +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -SubscriptionId +Subscription credentials that uniquely identify a Microsoft Azure subscription. +The subscription ID forms part of the URI for every service call. + +```yaml +Type: System.String[] +Parameter Sets: Get +Aliases: + +Required: False +Position: Named +Default value: (Get-AzContext).Subscription.Id +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -Confirm +Prompts you for confirmation before running the cmdlet. + +```yaml +Type: System.Management.Automation.SwitchParameter +Parameter Sets: (All) +Aliases: cf + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -WhatIf +Shows what would happen if the cmdlet runs. +The cmdlet is not run. + +```yaml +Type: System.Management.Automation.SwitchParameter +Parameter Sets: (All) +Aliases: wi + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### CommonParameters +This cmdlet supports the common parameters: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutVariable, -OutBuffer, -PipelineVariable, -Verbose, -WarningAction, and -WarningVariable. For more information, see [about_CommonParameters](http://go.microsoft.com/fwlink/?LinkID=113216). + +## INPUTS + +### Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.IEventGridIdentity + +## OUTPUTS + +### System.String + +## NOTES + +ALIASES + +COMPLEX PARAMETER PROPERTIES + +To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. + + +INPUTOBJECT : Identity Parameter + - `[ChannelName ]`: Name of the channel. + - `[DomainName ]`: Name of the domain. + - `[DomainTopicName ]`: Name of the topic. + - `[EventChannelName ]`: Name of the event channel. + - `[EventSubscriptionName ]`: Name of the event subscription. + - `[Id ]`: Resource identity path + - `[Location ]`: Name of the location. + - `[ParentName ]`: The name of the parent resource (namely, either, the topic name, domain name, or partner namespace name). + - `[ParentType ]`: The type of the parent resource. This can be either \'topics\', \'domains\', or \'partnerNamespaces\'. + - `[PartnerDestinationName ]`: Name of the partner destination. + - `[PartnerNamespaceName ]`: Name of the partner namespace. + - `[PartnerRegistrationName ]`: Name of the partner registration. + - `[PartnerTopicName ]`: Name of the partner topic. + - `[PrivateEndpointConnectionName ]`: The name of the private endpoint connection connection. + - `[PrivateLinkResourceName ]`: The name of private link resource. + - `[ProviderNamespace ]`: Namespace of the provider of the topic. + - `[ResourceGroupName ]`: The name of the resource group within the partners subscription. + - `[ResourceName ]`: Name of the resource. + - `[ResourceTypeName ]`: Name of the resource type. + - `[Scope ]`: The scope of the event subscription. The scope can be a subscription, or a resource group, or a top level resource belonging to a resource provider namespace, or an EventGrid topic. For example, use '/subscriptions/{subscriptionId}/' for a subscription, '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}' for a resource group, and '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}' for a resource, and '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.EventGrid/topics/{topicName}' for an EventGrid topic. + - `[SubscriptionId ]`: Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription ID forms part of the URI for every service call. + - `[SystemTopicName ]`: Name of the system topic. + - `[TopicName ]`: Name of the domain topic. + - `[TopicTypeName ]`: Name of the topic type. + - `[VerifiedPartnerName ]`: Name of the verified partner. + +## RELATED LINKS + diff --git a/swaggerci/eventgrid/docs/Get-AzEventGridDomainSharedAccessKey.md b/swaggerci/eventgrid/docs/Get-AzEventGridDomainSharedAccessKey.md new file mode 100644 index 000000000000..b2c8a316dddb --- /dev/null +++ b/swaggerci/eventgrid/docs/Get-AzEventGridDomainSharedAccessKey.md @@ -0,0 +1,171 @@ +--- +external help file: +Module Name: Az.EventGrid +online version: https://docs.microsoft.com/en-us/powershell/module/az.eventgrid/get-azeventgriddomainsharedaccesskey +schema: 2.0.0 +--- + +# Get-AzEventGridDomainSharedAccessKey + +## SYNOPSIS +List the two keys used to publish to a domain. + +## SYNTAX + +``` +Get-AzEventGridDomainSharedAccessKey -DomainName -ResourceGroupName + [-SubscriptionId ] [-DefaultProfile ] [-PassThru] [-Confirm] [-WhatIf] + [] +``` + +## DESCRIPTION +List the two keys used to publish to a domain. + +## EXAMPLES + +### Example 1: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +## PARAMETERS + +### -DefaultProfile +The credentials, account, tenant, and subscription used for communication with Azure. + +```yaml +Type: System.Management.Automation.PSObject +Parameter Sets: (All) +Aliases: AzureRMContext, AzureCredential + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -DomainName +Name of the domain. + +```yaml +Type: System.String +Parameter Sets: (All) +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -PassThru +Returns true when the command succeeds + +```yaml +Type: System.Management.Automation.SwitchParameter +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -ResourceGroupName +The name of the resource group within the user's subscription. + +```yaml +Type: System.String +Parameter Sets: (All) +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -SubscriptionId +Subscription credentials that uniquely identify a Microsoft Azure subscription. +The subscription ID forms part of the URI for every service call. + +```yaml +Type: System.String[] +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: (Get-AzContext).Subscription.Id +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -Confirm +Prompts you for confirmation before running the cmdlet. + +```yaml +Type: System.Management.Automation.SwitchParameter +Parameter Sets: (All) +Aliases: cf + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -WhatIf +Shows what would happen if the cmdlet runs. +The cmdlet is not run. + +```yaml +Type: System.Management.Automation.SwitchParameter +Parameter Sets: (All) +Aliases: wi + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### CommonParameters +This cmdlet supports the common parameters: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutVariable, -OutBuffer, -PipelineVariable, -Verbose, -WarningAction, and -WarningVariable. For more information, see [about_CommonParameters](http://go.microsoft.com/fwlink/?LinkID=113216). + +## INPUTS + +## OUTPUTS + +### Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDomainSharedAccessKeys + +## NOTES + +ALIASES + +## RELATED LINKS + diff --git a/swaggerci/eventgrid/docs/Get-AzEventGridDomainTopic.md b/swaggerci/eventgrid/docs/Get-AzEventGridDomainTopic.md new file mode 100644 index 000000000000..7f6c61a09c41 --- /dev/null +++ b/swaggerci/eventgrid/docs/Get-AzEventGridDomainTopic.md @@ -0,0 +1,254 @@ +--- +external help file: +Module Name: Az.EventGrid +online version: https://docs.microsoft.com/en-us/powershell/module/az.eventgrid/get-azeventgriddomaintopic +schema: 2.0.0 +--- + +# Get-AzEventGridDomainTopic + +## SYNOPSIS +Get properties of a domain topic. + +## SYNTAX + +### List (Default) +``` +Get-AzEventGridDomainTopic -DomainName -ResourceGroupName [-SubscriptionId ] + [-Filter ] [-Top ] [-DefaultProfile ] [-PassThru] [] +``` + +### Get +``` +Get-AzEventGridDomainTopic -DomainName -Name -ResourceGroupName + [-SubscriptionId ] [-DefaultProfile ] [-PassThru] [] +``` + +### GetViaIdentity +``` +Get-AzEventGridDomainTopic -InputObject [-DefaultProfile ] [-PassThru] + [] +``` + +## DESCRIPTION +Get properties of a domain topic. + +## EXAMPLES + +### Example 1: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +## PARAMETERS + +### -DefaultProfile +The credentials, account, tenant, and subscription used for communication with Azure. + +```yaml +Type: System.Management.Automation.PSObject +Parameter Sets: (All) +Aliases: AzureRMContext, AzureCredential + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -DomainName +Name of the domain. + +```yaml +Type: System.String +Parameter Sets: Get, List +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -Filter +The query used to filter the search results using OData syntax. +Filtering is permitted on the 'name' property only and with limited number of OData operations. +These operations are: the 'contains' function as well as the following logical operations: not, and, or, eq (for equal), and ne (for not equal). +No arithmetic operations are supported. +The following is a valid filter example: $filter=contains(namE, 'PATTERN') and name ne 'PATTERN-1'. +The following is not a valid filter example: $filter=location eq 'westus'. + +```yaml +Type: System.String +Parameter Sets: List +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -InputObject +Identity Parameter +To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + +```yaml +Type: Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.IEventGridIdentity +Parameter Sets: GetViaIdentity +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: True (ByValue) +Accept wildcard characters: False +``` + +### -Name +Name of the topic. + +```yaml +Type: System.String +Parameter Sets: Get +Aliases: DomainTopicName + +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 within the user's subscription. + +```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 +Subscription credentials that uniquely identify a Microsoft Azure subscription. +The subscription ID forms part of the URI for every service call. + +```yaml +Type: System.String[] +Parameter Sets: Get, List +Aliases: + +Required: False +Position: Named +Default value: (Get-AzContext).Subscription.Id +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -Top +The number of results to return per page for the list operation. +Valid range for top parameter is 1 to 100. +If not specified, the default number of results to be returned is 20 items per page. + +```yaml +Type: System.Int32 +Parameter Sets: List +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### CommonParameters +This cmdlet supports the common parameters: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutVariable, -OutBuffer, -PipelineVariable, -Verbose, -WarningAction, and -WarningVariable. For more information, see [about_CommonParameters](http://go.microsoft.com/fwlink/?LinkID=113216). + +## INPUTS + +### Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.IEventGridIdentity + +## OUTPUTS + +### Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDomainTopic + +## 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 + - `[ChannelName ]`: Name of the channel. + - `[DomainName ]`: Name of the domain. + - `[DomainTopicName ]`: Name of the topic. + - `[EventChannelName ]`: Name of the event channel. + - `[EventSubscriptionName ]`: Name of the event subscription. + - `[Id ]`: Resource identity path + - `[Location ]`: Name of the location. + - `[ParentName ]`: The name of the parent resource (namely, either, the topic name, domain name, or partner namespace name). + - `[ParentType ]`: The type of the parent resource. This can be either \'topics\', \'domains\', or \'partnerNamespaces\'. + - `[PartnerDestinationName ]`: Name of the partner destination. + - `[PartnerNamespaceName ]`: Name of the partner namespace. + - `[PartnerRegistrationName ]`: Name of the partner registration. + - `[PartnerTopicName ]`: Name of the partner topic. + - `[PrivateEndpointConnectionName ]`: The name of the private endpoint connection connection. + - `[PrivateLinkResourceName ]`: The name of private link resource. + - `[ProviderNamespace ]`: Namespace of the provider of the topic. + - `[ResourceGroupName ]`: The name of the resource group within the partners subscription. + - `[ResourceName ]`: Name of the resource. + - `[ResourceTypeName ]`: Name of the resource type. + - `[Scope ]`: The scope of the event subscription. The scope can be a subscription, or a resource group, or a top level resource belonging to a resource provider namespace, or an EventGrid topic. For example, use '/subscriptions/{subscriptionId}/' for a subscription, '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}' for a resource group, and '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}' for a resource, and '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.EventGrid/topics/{topicName}' for an EventGrid topic. + - `[SubscriptionId ]`: Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription ID forms part of the URI for every service call. + - `[SystemTopicName ]`: Name of the system topic. + - `[TopicName ]`: Name of the domain topic. + - `[TopicTypeName ]`: Name of the topic type. + - `[VerifiedPartnerName ]`: Name of the verified partner. + +## RELATED LINKS + diff --git a/swaggerci/eventgrid/docs/Get-AzEventGridDomainTopicEventSubscription.md b/swaggerci/eventgrid/docs/Get-AzEventGridDomainTopicEventSubscription.md new file mode 100644 index 000000000000..d539b427cbc8 --- /dev/null +++ b/swaggerci/eventgrid/docs/Get-AzEventGridDomainTopicEventSubscription.md @@ -0,0 +1,234 @@ +--- +external help file: +Module Name: Az.EventGrid +online version: https://docs.microsoft.com/en-us/powershell/module/az.eventgrid/get-azeventgriddomaintopiceventsubscription +schema: 2.0.0 +--- + +# Get-AzEventGridDomainTopicEventSubscription + +## SYNOPSIS +Get properties of a nested event subscription for a domain topic. + +## SYNTAX + +### List (Default) +``` +Get-AzEventGridDomainTopicEventSubscription -DomainName -ResourceGroupName + -TopicName [-SubscriptionId ] [-DefaultProfile ] [-PassThru] + [] +``` + +### Get +``` +Get-AzEventGridDomainTopicEventSubscription -DomainName -EventSubscriptionName + -ResourceGroupName -TopicName [-SubscriptionId ] [-DefaultProfile ] + [-PassThru] [] +``` + +### GetViaIdentity +``` +Get-AzEventGridDomainTopicEventSubscription -InputObject [-DefaultProfile ] + [-PassThru] [] +``` + +## DESCRIPTION +Get properties of a nested event subscription for a domain topic. + +## EXAMPLES + +### Example 1: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +## PARAMETERS + +### -DefaultProfile +The credentials, account, tenant, and subscription used for communication with Azure. + +```yaml +Type: System.Management.Automation.PSObject +Parameter Sets: (All) +Aliases: AzureRMContext, AzureCredential + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -DomainName +Name of the top level domain. + +```yaml +Type: System.String +Parameter Sets: Get, List +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -EventSubscriptionName +Name of the event subscription. + +```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.EventGrid.Models.IEventGridIdentity +Parameter Sets: GetViaIdentity +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: True (ByValue) +Accept wildcard characters: False +``` + +### -PassThru +Returns true when the command succeeds + +```yaml +Type: System.Management.Automation.SwitchParameter +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -ResourceGroupName +The name of the resource group within the user's subscription. + +```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 +Subscription credentials that uniquely identify a Microsoft Azure subscription. +The subscription ID forms part of the URI for every service call. + +```yaml +Type: System.String[] +Parameter Sets: Get, List +Aliases: + +Required: False +Position: Named +Default value: (Get-AzContext).Subscription.Id +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -TopicName +Name of the domain topic. + +```yaml +Type: System.String +Parameter Sets: Get, List +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.EventGrid.Models.IEventGridIdentity + +## OUTPUTS + +### Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscription + +## 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 + - `[ChannelName ]`: Name of the channel. + - `[DomainName ]`: Name of the domain. + - `[DomainTopicName ]`: Name of the topic. + - `[EventChannelName ]`: Name of the event channel. + - `[EventSubscriptionName ]`: Name of the event subscription. + - `[Id ]`: Resource identity path + - `[Location ]`: Name of the location. + - `[ParentName ]`: The name of the parent resource (namely, either, the topic name, domain name, or partner namespace name). + - `[ParentType ]`: The type of the parent resource. This can be either \'topics\', \'domains\', or \'partnerNamespaces\'. + - `[PartnerDestinationName ]`: Name of the partner destination. + - `[PartnerNamespaceName ]`: Name of the partner namespace. + - `[PartnerRegistrationName ]`: Name of the partner registration. + - `[PartnerTopicName ]`: Name of the partner topic. + - `[PrivateEndpointConnectionName ]`: The name of the private endpoint connection connection. + - `[PrivateLinkResourceName ]`: The name of private link resource. + - `[ProviderNamespace ]`: Namespace of the provider of the topic. + - `[ResourceGroupName ]`: The name of the resource group within the partners subscription. + - `[ResourceName ]`: Name of the resource. + - `[ResourceTypeName ]`: Name of the resource type. + - `[Scope ]`: The scope of the event subscription. The scope can be a subscription, or a resource group, or a top level resource belonging to a resource provider namespace, or an EventGrid topic. For example, use '/subscriptions/{subscriptionId}/' for a subscription, '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}' for a resource group, and '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}' for a resource, and '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.EventGrid/topics/{topicName}' for an EventGrid topic. + - `[SubscriptionId ]`: Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription ID forms part of the URI for every service call. + - `[SystemTopicName ]`: Name of the system topic. + - `[TopicName ]`: Name of the domain topic. + - `[TopicTypeName ]`: Name of the topic type. + - `[VerifiedPartnerName ]`: Name of the verified partner. + +## RELATED LINKS + diff --git a/swaggerci/eventgrid/docs/Get-AzEventGridDomainTopicEventSubscriptionDeliveryAttribute.md b/swaggerci/eventgrid/docs/Get-AzEventGridDomainTopicEventSubscriptionDeliveryAttribute.md new file mode 100644 index 000000000000..8ecb53bc960b --- /dev/null +++ b/swaggerci/eventgrid/docs/Get-AzEventGridDomainTopicEventSubscriptionDeliveryAttribute.md @@ -0,0 +1,258 @@ +--- +external help file: +Module Name: Az.EventGrid +online version: https://docs.microsoft.com/en-us/powershell/module/az.eventgrid/get-azeventgriddomaintopiceventsubscriptiondeliveryattribute +schema: 2.0.0 +--- + +# Get-AzEventGridDomainTopicEventSubscriptionDeliveryAttribute + +## SYNOPSIS +Get all delivery attributes for an event subscription for domain topic. + +## SYNTAX + +### Get (Default) +``` +Get-AzEventGridDomainTopicEventSubscriptionDeliveryAttribute -DomainName + -EventSubscriptionName -ResourceGroupName -TopicName [-SubscriptionId ] + [-DefaultProfile ] [-PassThru] [-Confirm] [-WhatIf] [] +``` + +### GetViaIdentity +``` +Get-AzEventGridDomainTopicEventSubscriptionDeliveryAttribute -InputObject + [-DefaultProfile ] [-PassThru] [-Confirm] [-WhatIf] [] +``` + +## DESCRIPTION +Get all delivery attributes for an event subscription for domain topic. + +## EXAMPLES + +### Example 1: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +## PARAMETERS + +### -DefaultProfile +The credentials, account, tenant, and subscription used for communication with Azure. + +```yaml +Type: System.Management.Automation.PSObject +Parameter Sets: (All) +Aliases: AzureRMContext, AzureCredential + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -DomainName +Name of the top level domain. + +```yaml +Type: System.String +Parameter Sets: Get +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -EventSubscriptionName +Name of the event subscription. + +```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.EventGrid.Models.IEventGridIdentity +Parameter Sets: GetViaIdentity +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: True (ByValue) +Accept wildcard characters: False +``` + +### -PassThru +Returns true when the command succeeds + +```yaml +Type: System.Management.Automation.SwitchParameter +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -ResourceGroupName +The name of the resource group within the user's subscription. + +```yaml +Type: System.String +Parameter Sets: Get +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -SubscriptionId +Subscription credentials that uniquely identify a Microsoft Azure subscription. +The subscription ID forms part of the URI for every service call. + +```yaml +Type: System.String[] +Parameter Sets: Get +Aliases: + +Required: False +Position: Named +Default value: (Get-AzContext).Subscription.Id +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -TopicName +Name of the domain topic. + +```yaml +Type: System.String +Parameter Sets: Get +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.EventGrid.Models.IEventGridIdentity + +## OUTPUTS + +### Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDeliveryAttributeMapping + +## 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 + - `[ChannelName ]`: Name of the channel. + - `[DomainName ]`: Name of the domain. + - `[DomainTopicName ]`: Name of the topic. + - `[EventChannelName ]`: Name of the event channel. + - `[EventSubscriptionName ]`: Name of the event subscription. + - `[Id ]`: Resource identity path + - `[Location ]`: Name of the location. + - `[ParentName ]`: The name of the parent resource (namely, either, the topic name, domain name, or partner namespace name). + - `[ParentType ]`: The type of the parent resource. This can be either \'topics\', \'domains\', or \'partnerNamespaces\'. + - `[PartnerDestinationName ]`: Name of the partner destination. + - `[PartnerNamespaceName ]`: Name of the partner namespace. + - `[PartnerRegistrationName ]`: Name of the partner registration. + - `[PartnerTopicName ]`: Name of the partner topic. + - `[PrivateEndpointConnectionName ]`: The name of the private endpoint connection connection. + - `[PrivateLinkResourceName ]`: The name of private link resource. + - `[ProviderNamespace ]`: Namespace of the provider of the topic. + - `[ResourceGroupName ]`: The name of the resource group within the partners subscription. + - `[ResourceName ]`: Name of the resource. + - `[ResourceTypeName ]`: Name of the resource type. + - `[Scope ]`: The scope of the event subscription. The scope can be a subscription, or a resource group, or a top level resource belonging to a resource provider namespace, or an EventGrid topic. For example, use '/subscriptions/{subscriptionId}/' for a subscription, '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}' for a resource group, and '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}' for a resource, and '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.EventGrid/topics/{topicName}' for an EventGrid topic. + - `[SubscriptionId ]`: Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription ID forms part of the URI for every service call. + - `[SystemTopicName ]`: Name of the system topic. + - `[TopicName ]`: Name of the domain topic. + - `[TopicTypeName ]`: Name of the topic type. + - `[VerifiedPartnerName ]`: Name of the verified partner. + +## RELATED LINKS + diff --git a/swaggerci/eventgrid/docs/Get-AzEventGridDomainTopicEventSubscriptionFullUrl.md b/swaggerci/eventgrid/docs/Get-AzEventGridDomainTopicEventSubscriptionFullUrl.md new file mode 100644 index 000000000000..71e8fc7f0997 --- /dev/null +++ b/swaggerci/eventgrid/docs/Get-AzEventGridDomainTopicEventSubscriptionFullUrl.md @@ -0,0 +1,258 @@ +--- +external help file: +Module Name: Az.EventGrid +online version: https://docs.microsoft.com/en-us/powershell/module/az.eventgrid/get-azeventgriddomaintopiceventsubscriptionfullurl +schema: 2.0.0 +--- + +# Get-AzEventGridDomainTopicEventSubscriptionFullUrl + +## SYNOPSIS +Get the full endpoint URL for a nested event subscription for domain topic. + +## SYNTAX + +### Get (Default) +``` +Get-AzEventGridDomainTopicEventSubscriptionFullUrl -DomainName -EventSubscriptionName + -ResourceGroupName -TopicName [-SubscriptionId ] [-DefaultProfile ] + [-PassThru] [-Confirm] [-WhatIf] [] +``` + +### GetViaIdentity +``` +Get-AzEventGridDomainTopicEventSubscriptionFullUrl -InputObject + [-DefaultProfile ] [-PassThru] [-Confirm] [-WhatIf] [] +``` + +## DESCRIPTION +Get the full endpoint URL for a nested event subscription for domain topic. + +## EXAMPLES + +### Example 1: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +## PARAMETERS + +### -DefaultProfile +The credentials, account, tenant, and subscription used for communication with Azure. + +```yaml +Type: System.Management.Automation.PSObject +Parameter Sets: (All) +Aliases: AzureRMContext, AzureCredential + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -DomainName +Name of the top level domain. + +```yaml +Type: System.String +Parameter Sets: Get +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -EventSubscriptionName +Name of the event subscription. + +```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.EventGrid.Models.IEventGridIdentity +Parameter Sets: GetViaIdentity +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: True (ByValue) +Accept wildcard characters: False +``` + +### -PassThru +Returns true when the command succeeds + +```yaml +Type: System.Management.Automation.SwitchParameter +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -ResourceGroupName +The name of the resource group within the user's subscription. + +```yaml +Type: System.String +Parameter Sets: Get +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -SubscriptionId +Subscription credentials that uniquely identify a Microsoft Azure subscription. +The subscription ID forms part of the URI for every service call. + +```yaml +Type: System.String[] +Parameter Sets: Get +Aliases: + +Required: False +Position: Named +Default value: (Get-AzContext).Subscription.Id +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -TopicName +Name of the domain topic. + +```yaml +Type: System.String +Parameter Sets: Get +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.EventGrid.Models.IEventGridIdentity + +## OUTPUTS + +### System.String + +## NOTES + +ALIASES + +COMPLEX PARAMETER PROPERTIES + +To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. + + +INPUTOBJECT : Identity Parameter + - `[ChannelName ]`: Name of the channel. + - `[DomainName ]`: Name of the domain. + - `[DomainTopicName ]`: Name of the topic. + - `[EventChannelName ]`: Name of the event channel. + - `[EventSubscriptionName ]`: Name of the event subscription. + - `[Id ]`: Resource identity path + - `[Location ]`: Name of the location. + - `[ParentName ]`: The name of the parent resource (namely, either, the topic name, domain name, or partner namespace name). + - `[ParentType ]`: The type of the parent resource. This can be either \'topics\', \'domains\', or \'partnerNamespaces\'. + - `[PartnerDestinationName ]`: Name of the partner destination. + - `[PartnerNamespaceName ]`: Name of the partner namespace. + - `[PartnerRegistrationName ]`: Name of the partner registration. + - `[PartnerTopicName ]`: Name of the partner topic. + - `[PrivateEndpointConnectionName ]`: The name of the private endpoint connection connection. + - `[PrivateLinkResourceName ]`: The name of private link resource. + - `[ProviderNamespace ]`: Namespace of the provider of the topic. + - `[ResourceGroupName ]`: The name of the resource group within the partners subscription. + - `[ResourceName ]`: Name of the resource. + - `[ResourceTypeName ]`: Name of the resource type. + - `[Scope ]`: The scope of the event subscription. The scope can be a subscription, or a resource group, or a top level resource belonging to a resource provider namespace, or an EventGrid topic. For example, use '/subscriptions/{subscriptionId}/' for a subscription, '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}' for a resource group, and '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}' for a resource, and '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.EventGrid/topics/{topicName}' for an EventGrid topic. + - `[SubscriptionId ]`: Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription ID forms part of the URI for every service call. + - `[SystemTopicName ]`: Name of the system topic. + - `[TopicName ]`: Name of the domain topic. + - `[TopicTypeName ]`: Name of the topic type. + - `[VerifiedPartnerName ]`: Name of the verified partner. + +## RELATED LINKS + diff --git a/swaggerci/eventgrid/docs/Get-AzEventGridEventChannel.md b/swaggerci/eventgrid/docs/Get-AzEventGridEventChannel.md new file mode 100644 index 000000000000..4798a9856671 --- /dev/null +++ b/swaggerci/eventgrid/docs/Get-AzEventGridEventChannel.md @@ -0,0 +1,255 @@ +--- +external help file: +Module Name: Az.EventGrid +online version: https://docs.microsoft.com/en-us/powershell/module/az.eventgrid/get-azeventgrideventchannel +schema: 2.0.0 +--- + +# Get-AzEventGridEventChannel + +## SYNOPSIS +Get properties of an event channel. + +## SYNTAX + +### List (Default) +``` +Get-AzEventGridEventChannel -PartnerNamespaceName -ResourceGroupName + [-SubscriptionId ] [-Filter ] [-Top ] [-DefaultProfile ] [-PassThru] + [] +``` + +### Get +``` +Get-AzEventGridEventChannel -Name -PartnerNamespaceName -ResourceGroupName + [-SubscriptionId ] [-DefaultProfile ] [-PassThru] [] +``` + +### GetViaIdentity +``` +Get-AzEventGridEventChannel -InputObject [-DefaultProfile ] [-PassThru] + [] +``` + +## DESCRIPTION +Get properties of an event channel. + +## EXAMPLES + +### Example 1: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +## PARAMETERS + +### -DefaultProfile +The credentials, account, tenant, and subscription used for communication with Azure. + +```yaml +Type: System.Management.Automation.PSObject +Parameter Sets: (All) +Aliases: AzureRMContext, AzureCredential + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -Filter +The query used to filter the search results using OData syntax. +Filtering is permitted on the 'name' property only and with limited number of OData operations. +These operations are: the 'contains' function as well as the following logical operations: not, and, or, eq (for equal), and ne (for not equal). +No arithmetic operations are supported. +The following is a valid filter example: $filter=contains(namE, 'PATTERN') and name ne 'PATTERN-1'. +The following is not a valid filter example: $filter=location eq 'westus'. + +```yaml +Type: System.String +Parameter Sets: List +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -InputObject +Identity Parameter +To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + +```yaml +Type: Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.IEventGridIdentity +Parameter Sets: GetViaIdentity +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: True (ByValue) +Accept wildcard characters: False +``` + +### -Name +Name of the event channel. + +```yaml +Type: System.String +Parameter Sets: Get +Aliases: EventChannelName + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -PartnerNamespaceName +Name of the partner namespace. + +```yaml +Type: System.String +Parameter Sets: Get, List +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -PassThru +Returns true when the command succeeds + +```yaml +Type: System.Management.Automation.SwitchParameter +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -ResourceGroupName +The name of the resource group within the user's subscription. + +```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 +Subscription credentials that uniquely identify a Microsoft Azure subscription. +The subscription ID forms part of the URI for every service call. + +```yaml +Type: System.String[] +Parameter Sets: Get, List +Aliases: + +Required: False +Position: Named +Default value: (Get-AzContext).Subscription.Id +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -Top +The number of results to return per page for the list operation. +Valid range for top parameter is 1 to 100. +If not specified, the default number of results to be returned is 20 items per page. + +```yaml +Type: System.Int32 +Parameter Sets: List +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### CommonParameters +This cmdlet supports the common parameters: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutVariable, -OutBuffer, -PipelineVariable, -Verbose, -WarningAction, and -WarningVariable. For more information, see [about_CommonParameters](http://go.microsoft.com/fwlink/?LinkID=113216). + +## INPUTS + +### Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.IEventGridIdentity + +## OUTPUTS + +### Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventChannel + +## 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 + - `[ChannelName ]`: Name of the channel. + - `[DomainName ]`: Name of the domain. + - `[DomainTopicName ]`: Name of the topic. + - `[EventChannelName ]`: Name of the event channel. + - `[EventSubscriptionName ]`: Name of the event subscription. + - `[Id ]`: Resource identity path + - `[Location ]`: Name of the location. + - `[ParentName ]`: The name of the parent resource (namely, either, the topic name, domain name, or partner namespace name). + - `[ParentType ]`: The type of the parent resource. This can be either \'topics\', \'domains\', or \'partnerNamespaces\'. + - `[PartnerDestinationName ]`: Name of the partner destination. + - `[PartnerNamespaceName ]`: Name of the partner namespace. + - `[PartnerRegistrationName ]`: Name of the partner registration. + - `[PartnerTopicName ]`: Name of the partner topic. + - `[PrivateEndpointConnectionName ]`: The name of the private endpoint connection connection. + - `[PrivateLinkResourceName ]`: The name of private link resource. + - `[ProviderNamespace ]`: Namespace of the provider of the topic. + - `[ResourceGroupName ]`: The name of the resource group within the partners subscription. + - `[ResourceName ]`: Name of the resource. + - `[ResourceTypeName ]`: Name of the resource type. + - `[Scope ]`: The scope of the event subscription. The scope can be a subscription, or a resource group, or a top level resource belonging to a resource provider namespace, or an EventGrid topic. For example, use '/subscriptions/{subscriptionId}/' for a subscription, '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}' for a resource group, and '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}' for a resource, and '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.EventGrid/topics/{topicName}' for an EventGrid topic. + - `[SubscriptionId ]`: Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription ID forms part of the URI for every service call. + - `[SystemTopicName ]`: Name of the system topic. + - `[TopicName ]`: Name of the domain topic. + - `[TopicTypeName ]`: Name of the topic type. + - `[VerifiedPartnerName ]`: Name of the verified partner. + +## RELATED LINKS + diff --git a/swaggerci/eventgrid/docs/Get-AzEventGridEventSubscription.md b/swaggerci/eventgrid/docs/Get-AzEventGridEventSubscription.md new file mode 100644 index 000000000000..daadf64a9f51 --- /dev/null +++ b/swaggerci/eventgrid/docs/Get-AzEventGridEventSubscription.md @@ -0,0 +1,339 @@ +--- +external help file: +Module Name: Az.EventGrid +online version: https://docs.microsoft.com/en-us/powershell/module/az.eventgrid/get-azeventgrideventsubscription +schema: 2.0.0 +--- + +# Get-AzEventGridEventSubscription + +## SYNOPSIS +Get properties of an event subscription. + +## SYNTAX + +### Get (Default) +``` +Get-AzEventGridEventSubscription -Name -Scope [-DefaultProfile ] [-PassThru] + [] +``` + +### GetViaIdentity +``` +Get-AzEventGridEventSubscription -InputObject [-DefaultProfile ] [-PassThru] + [] +``` + +### List +``` +Get-AzEventGridEventSubscription -ProviderNamespace -ResourceGroupName + -ResourceName -ResourceTypeName [-SubscriptionId ] [-Filter ] + [-Top ] [-DefaultProfile ] [-PassThru] [] +``` + +### List1 +``` +Get-AzEventGridEventSubscription -DomainName -ResourceGroupName -TopicName + [-SubscriptionId ] [-Filter ] [-Top ] [-DefaultProfile ] [-PassThru] + [] +``` + +## DESCRIPTION +Get properties of an event subscription. + +## EXAMPLES + +### Example 1: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +## PARAMETERS + +### -DefaultProfile +The credentials, account, tenant, and subscription used for communication with Azure. + +```yaml +Type: System.Management.Automation.PSObject +Parameter Sets: (All) +Aliases: AzureRMContext, AzureCredential + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -DomainName +Name of the top level domain. + +```yaml +Type: System.String +Parameter Sets: List1 +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -Filter +The query used to filter the search results using OData syntax. +Filtering is permitted on the 'name' property only and with limited number of OData operations. +These operations are: the 'contains' function as well as the following logical operations: not, and, or, eq (for equal), and ne (for not equal). +No arithmetic operations are supported. +The following is a valid filter example: $filter=contains(namE, 'PATTERN') and name ne 'PATTERN-1'. +The following is not a valid filter example: $filter=location eq 'westus'. + +```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.EventGrid.Models.IEventGridIdentity +Parameter Sets: GetViaIdentity +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: True (ByValue) +Accept wildcard characters: False +``` + +### -Name +Name of the event subscription. + +```yaml +Type: System.String +Parameter Sets: Get +Aliases: EventSubscriptionName + +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 +``` + +### -ProviderNamespace +Namespace of the provider of the topic. + +```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 within the user's subscription. + +```yaml +Type: System.String +Parameter Sets: List, List1 +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -ResourceName +Name of the resource. + +```yaml +Type: System.String +Parameter Sets: List +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -ResourceTypeName +Name of the resource type. + +```yaml +Type: System.String +Parameter Sets: List +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -Scope +The scope of the event subscription. +The scope can be a subscription, or a resource group, or a top level resource belonging to a resource provider namespace, or an EventGrid topic. +For example, use '/subscriptions/{subscriptionId}/' for a subscription, '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}' for a resource group, and '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}' for a resource, and '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.EventGrid/topics/{topicName}' for an EventGrid topic. + +```yaml +Type: System.String +Parameter Sets: Get +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -SubscriptionId +Subscription credentials that uniquely identify a Microsoft Azure subscription. +The subscription ID forms part of the URI for every service call. + +```yaml +Type: System.String[] +Parameter Sets: List, List1 +Aliases: + +Required: False +Position: Named +Default value: (Get-AzContext).Subscription.Id +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -Top +The number of results to return per page for the list operation. +Valid range for top parameter is 1 to 100. +If not specified, the default number of results to be returned is 20 items per page. + +```yaml +Type: System.Int32 +Parameter Sets: List, List1 +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -TopicName +Name of the domain topic. + +```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 + +### Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.IEventGridIdentity + +## OUTPUTS + +### Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscription + +## 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 + - `[ChannelName ]`: Name of the channel. + - `[DomainName ]`: Name of the domain. + - `[DomainTopicName ]`: Name of the topic. + - `[EventChannelName ]`: Name of the event channel. + - `[EventSubscriptionName ]`: Name of the event subscription. + - `[Id ]`: Resource identity path + - `[Location ]`: Name of the location. + - `[ParentName ]`: The name of the parent resource (namely, either, the topic name, domain name, or partner namespace name). + - `[ParentType ]`: The type of the parent resource. This can be either \'topics\', \'domains\', or \'partnerNamespaces\'. + - `[PartnerDestinationName ]`: Name of the partner destination. + - `[PartnerNamespaceName ]`: Name of the partner namespace. + - `[PartnerRegistrationName ]`: Name of the partner registration. + - `[PartnerTopicName ]`: Name of the partner topic. + - `[PrivateEndpointConnectionName ]`: The name of the private endpoint connection connection. + - `[PrivateLinkResourceName ]`: The name of private link resource. + - `[ProviderNamespace ]`: Namespace of the provider of the topic. + - `[ResourceGroupName ]`: The name of the resource group within the partners subscription. + - `[ResourceName ]`: Name of the resource. + - `[ResourceTypeName ]`: Name of the resource type. + - `[Scope ]`: The scope of the event subscription. The scope can be a subscription, or a resource group, or a top level resource belonging to a resource provider namespace, or an EventGrid topic. For example, use '/subscriptions/{subscriptionId}/' for a subscription, '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}' for a resource group, and '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}' for a resource, and '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.EventGrid/topics/{topicName}' for an EventGrid topic. + - `[SubscriptionId ]`: Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription ID forms part of the URI for every service call. + - `[SystemTopicName ]`: Name of the system topic. + - `[TopicName ]`: Name of the domain topic. + - `[TopicTypeName ]`: Name of the topic type. + - `[VerifiedPartnerName ]`: Name of the verified partner. + +## RELATED LINKS + diff --git a/swaggerci/eventgrid/docs/Get-AzEventGridEventSubscriptionDeliveryAttribute.md b/swaggerci/eventgrid/docs/Get-AzEventGridEventSubscriptionDeliveryAttribute.md new file mode 100644 index 000000000000..ddac05d5dc4d --- /dev/null +++ b/swaggerci/eventgrid/docs/Get-AzEventGridEventSubscriptionDeliveryAttribute.md @@ -0,0 +1,213 @@ +--- +external help file: +Module Name: Az.EventGrid +online version: https://docs.microsoft.com/en-us/powershell/module/az.eventgrid/get-azeventgrideventsubscriptiondeliveryattribute +schema: 2.0.0 +--- + +# Get-AzEventGridEventSubscriptionDeliveryAttribute + +## SYNOPSIS +Get all delivery attributes for an event subscription. + +## SYNTAX + +### Get (Default) +``` +Get-AzEventGridEventSubscriptionDeliveryAttribute -EventSubscriptionName -Scope + [-DefaultProfile ] [-PassThru] [-Confirm] [-WhatIf] [] +``` + +### GetViaIdentity +``` +Get-AzEventGridEventSubscriptionDeliveryAttribute -InputObject + [-DefaultProfile ] [-PassThru] [-Confirm] [-WhatIf] [] +``` + +## DESCRIPTION +Get all delivery attributes for an event subscription. + +## EXAMPLES + +### Example 1: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +## PARAMETERS + +### -DefaultProfile +The credentials, account, tenant, and subscription used for communication with Azure. + +```yaml +Type: System.Management.Automation.PSObject +Parameter Sets: (All) +Aliases: AzureRMContext, AzureCredential + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -EventSubscriptionName +Name of the event subscription. + +```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.EventGrid.Models.IEventGridIdentity +Parameter Sets: GetViaIdentity +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: True (ByValue) +Accept wildcard characters: False +``` + +### -PassThru +Returns true when the command succeeds + +```yaml +Type: System.Management.Automation.SwitchParameter +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -Scope +The scope of the event subscription. +The scope can be a subscription, or a resource group, or a top level resource belonging to a resource provider namespace, or an EventGrid topic. +For example, use '/subscriptions/{subscriptionId}/' for a subscription, '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}' for a resource group, and '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}' for a resource, and '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.EventGrid/topics/{topicName}' for an EventGrid topic. + +```yaml +Type: System.String +Parameter Sets: Get +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.EventGrid.Models.IEventGridIdentity + +## OUTPUTS + +### Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDeliveryAttributeMapping + +## 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 + - `[ChannelName ]`: Name of the channel. + - `[DomainName ]`: Name of the domain. + - `[DomainTopicName ]`: Name of the topic. + - `[EventChannelName ]`: Name of the event channel. + - `[EventSubscriptionName ]`: Name of the event subscription. + - `[Id ]`: Resource identity path + - `[Location ]`: Name of the location. + - `[ParentName ]`: The name of the parent resource (namely, either, the topic name, domain name, or partner namespace name). + - `[ParentType ]`: The type of the parent resource. This can be either \'topics\', \'domains\', or \'partnerNamespaces\'. + - `[PartnerDestinationName ]`: Name of the partner destination. + - `[PartnerNamespaceName ]`: Name of the partner namespace. + - `[PartnerRegistrationName ]`: Name of the partner registration. + - `[PartnerTopicName ]`: Name of the partner topic. + - `[PrivateEndpointConnectionName ]`: The name of the private endpoint connection connection. + - `[PrivateLinkResourceName ]`: The name of private link resource. + - `[ProviderNamespace ]`: Namespace of the provider of the topic. + - `[ResourceGroupName ]`: The name of the resource group within the partners subscription. + - `[ResourceName ]`: Name of the resource. + - `[ResourceTypeName ]`: Name of the resource type. + - `[Scope ]`: The scope of the event subscription. The scope can be a subscription, or a resource group, or a top level resource belonging to a resource provider namespace, or an EventGrid topic. For example, use '/subscriptions/{subscriptionId}/' for a subscription, '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}' for a resource group, and '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}' for a resource, and '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.EventGrid/topics/{topicName}' for an EventGrid topic. + - `[SubscriptionId ]`: Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription ID forms part of the URI for every service call. + - `[SystemTopicName ]`: Name of the system topic. + - `[TopicName ]`: Name of the domain topic. + - `[TopicTypeName ]`: Name of the topic type. + - `[VerifiedPartnerName ]`: Name of the verified partner. + +## RELATED LINKS + diff --git a/swaggerci/eventgrid/docs/Get-AzEventGridEventSubscriptionFullUrl.md b/swaggerci/eventgrid/docs/Get-AzEventGridEventSubscriptionFullUrl.md new file mode 100644 index 000000000000..caada10389f0 --- /dev/null +++ b/swaggerci/eventgrid/docs/Get-AzEventGridEventSubscriptionFullUrl.md @@ -0,0 +1,213 @@ +--- +external help file: +Module Name: Az.EventGrid +online version: https://docs.microsoft.com/en-us/powershell/module/az.eventgrid/get-azeventgrideventsubscriptionfullurl +schema: 2.0.0 +--- + +# Get-AzEventGridEventSubscriptionFullUrl + +## SYNOPSIS +Get the full endpoint URL for an event subscription. + +## SYNTAX + +### Get (Default) +``` +Get-AzEventGridEventSubscriptionFullUrl -EventSubscriptionName -Scope + [-DefaultProfile ] [-PassThru] [-Confirm] [-WhatIf] [] +``` + +### GetViaIdentity +``` +Get-AzEventGridEventSubscriptionFullUrl -InputObject [-DefaultProfile ] + [-PassThru] [-Confirm] [-WhatIf] [] +``` + +## DESCRIPTION +Get the full endpoint URL for an event subscription. + +## EXAMPLES + +### Example 1: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +## PARAMETERS + +### -DefaultProfile +The credentials, account, tenant, and subscription used for communication with Azure. + +```yaml +Type: System.Management.Automation.PSObject +Parameter Sets: (All) +Aliases: AzureRMContext, AzureCredential + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -EventSubscriptionName +Name of the event subscription. + +```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.EventGrid.Models.IEventGridIdentity +Parameter Sets: GetViaIdentity +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: True (ByValue) +Accept wildcard characters: False +``` + +### -PassThru +Returns true when the command succeeds + +```yaml +Type: System.Management.Automation.SwitchParameter +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -Scope +The scope of the event subscription. +The scope can be a subscription, or a resource group, or a top level resource belonging to a resource provider namespace, or an EventGrid topic. +For example, use '/subscriptions/{subscriptionId}/' for a subscription, '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}' for a resource group, and '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}' for a resource, and '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.EventGrid/topics/{topicName}' for an EventGrid topic. + +```yaml +Type: System.String +Parameter Sets: Get +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.EventGrid.Models.IEventGridIdentity + +## OUTPUTS + +### System.String + +## NOTES + +ALIASES + +COMPLEX PARAMETER PROPERTIES + +To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. + + +INPUTOBJECT : Identity Parameter + - `[ChannelName ]`: Name of the channel. + - `[DomainName ]`: Name of the domain. + - `[DomainTopicName ]`: Name of the topic. + - `[EventChannelName ]`: Name of the event channel. + - `[EventSubscriptionName ]`: Name of the event subscription. + - `[Id ]`: Resource identity path + - `[Location ]`: Name of the location. + - `[ParentName ]`: The name of the parent resource (namely, either, the topic name, domain name, or partner namespace name). + - `[ParentType ]`: The type of the parent resource. This can be either \'topics\', \'domains\', or \'partnerNamespaces\'. + - `[PartnerDestinationName ]`: Name of the partner destination. + - `[PartnerNamespaceName ]`: Name of the partner namespace. + - `[PartnerRegistrationName ]`: Name of the partner registration. + - `[PartnerTopicName ]`: Name of the partner topic. + - `[PrivateEndpointConnectionName ]`: The name of the private endpoint connection connection. + - `[PrivateLinkResourceName ]`: The name of private link resource. + - `[ProviderNamespace ]`: Namespace of the provider of the topic. + - `[ResourceGroupName ]`: The name of the resource group within the partners subscription. + - `[ResourceName ]`: Name of the resource. + - `[ResourceTypeName ]`: Name of the resource type. + - `[Scope ]`: The scope of the event subscription. The scope can be a subscription, or a resource group, or a top level resource belonging to a resource provider namespace, or an EventGrid topic. For example, use '/subscriptions/{subscriptionId}/' for a subscription, '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}' for a resource group, and '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}' for a resource, and '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.EventGrid/topics/{topicName}' for an EventGrid topic. + - `[SubscriptionId ]`: Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription ID forms part of the URI for every service call. + - `[SystemTopicName ]`: Name of the system topic. + - `[TopicName ]`: Name of the domain topic. + - `[TopicTypeName ]`: Name of the topic type. + - `[VerifiedPartnerName ]`: Name of the verified partner. + +## RELATED LINKS + diff --git a/swaggerci/eventgrid/docs/Get-AzEventGridEventSubscriptionGlobal.md b/swaggerci/eventgrid/docs/Get-AzEventGridEventSubscriptionGlobal.md new file mode 100644 index 000000000000..16d8a527597c --- /dev/null +++ b/swaggerci/eventgrid/docs/Get-AzEventGridEventSubscriptionGlobal.md @@ -0,0 +1,196 @@ +--- +external help file: +Module Name: Az.EventGrid +online version: https://docs.microsoft.com/en-us/powershell/module/az.eventgrid/get-azeventgrideventsubscriptionglobal +schema: 2.0.0 +--- + +# Get-AzEventGridEventSubscriptionGlobal + +## SYNOPSIS +List all aggregated global event subscriptions under a specific Azure subscription. + +## SYNTAX + +### List (Default) +``` +Get-AzEventGridEventSubscriptionGlobal [-SubscriptionId ] [-Filter ] [-Top ] + [-DefaultProfile ] [-PassThru] [] +``` + +### List1 +``` +Get-AzEventGridEventSubscriptionGlobal -TopicTypeName [-SubscriptionId ] [-Filter ] + [-Top ] [-DefaultProfile ] [-PassThru] [] +``` + +### List2 +``` +Get-AzEventGridEventSubscriptionGlobal -ResourceGroupName [-SubscriptionId ] + [-Filter ] [-Top ] [-DefaultProfile ] [-PassThru] [] +``` + +### List3 +``` +Get-AzEventGridEventSubscriptionGlobal -ResourceGroupName -TopicTypeName + [-SubscriptionId ] [-Filter ] [-Top ] [-DefaultProfile ] [-PassThru] + [] +``` + +## DESCRIPTION +List all aggregated global event subscriptions under a specific Azure subscription. + +## EXAMPLES + +### Example 1: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +## PARAMETERS + +### -DefaultProfile +The credentials, account, tenant, and subscription used for communication with Azure. + +```yaml +Type: System.Management.Automation.PSObject +Parameter Sets: (All) +Aliases: AzureRMContext, AzureCredential + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -Filter +The query used to filter the search results using OData syntax. +Filtering is permitted on the 'name' property only and with limited number of OData operations. +These operations are: the 'contains' function as well as the following logical operations: not, and, or, eq (for equal), and ne (for not equal). +No arithmetic operations are supported. +The following is a valid filter example: $filter=contains(namE, 'PATTERN') and name ne 'PATTERN-1'. +The following is not a valid filter example: $filter=location eq 'westus'. + +```yaml +Type: System.String +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -PassThru +Returns true when the command succeeds + +```yaml +Type: System.Management.Automation.SwitchParameter +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -ResourceGroupName +The name of the resource group within the user's subscription. + +```yaml +Type: System.String +Parameter Sets: List2, List3 +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -SubscriptionId +Subscription credentials that uniquely identify a Microsoft Azure subscription. +The subscription ID forms part of the URI for every service call. + +```yaml +Type: System.String[] +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: (Get-AzContext).Subscription.Id +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -Top +The number of results to return per page for the list operation. +Valid range for top parameter is 1 to 100. +If not specified, the default number of results to be returned is 20 items per page. + +```yaml +Type: System.Int32 +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -TopicTypeName +Name of the topic type. + +```yaml +Type: System.String +Parameter Sets: List1, List3 +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.EventGrid.Models.Api20211015Preview.IEventSubscription + +## NOTES + +ALIASES + +## RELATED LINKS + diff --git a/swaggerci/eventgrid/docs/Get-AzEventGridEventSubscriptionRegional.md b/swaggerci/eventgrid/docs/Get-AzEventGridEventSubscriptionRegional.md new file mode 100644 index 000000000000..73af77053fad --- /dev/null +++ b/swaggerci/eventgrid/docs/Get-AzEventGridEventSubscriptionRegional.md @@ -0,0 +1,213 @@ +--- +external help file: +Module Name: Az.EventGrid +online version: https://docs.microsoft.com/en-us/powershell/module/az.eventgrid/get-azeventgrideventsubscriptionregional +schema: 2.0.0 +--- + +# Get-AzEventGridEventSubscriptionRegional + +## SYNOPSIS +List all event subscriptions from the given location under a specific Azure subscription. + +## SYNTAX + +### List (Default) +``` +Get-AzEventGridEventSubscriptionRegional -Location [-SubscriptionId ] [-Filter ] + [-Top ] [-DefaultProfile ] [-PassThru] [] +``` + +### List1 +``` +Get-AzEventGridEventSubscriptionRegional -Location -ResourceGroupName + [-SubscriptionId ] [-Filter ] [-Top ] [-DefaultProfile ] [-PassThru] + [] +``` + +### List2 +``` +Get-AzEventGridEventSubscriptionRegional -Location -TopicTypeName + [-SubscriptionId ] [-Filter ] [-Top ] [-DefaultProfile ] [-PassThru] + [] +``` + +### List3 +``` +Get-AzEventGridEventSubscriptionRegional -Location -ResourceGroupName + -TopicTypeName [-SubscriptionId ] [-Filter ] [-Top ] + [-DefaultProfile ] [-PassThru] [] +``` + +## DESCRIPTION +List all event subscriptions from the given location under a specific Azure subscription. + +## EXAMPLES + +### Example 1: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +## PARAMETERS + +### -DefaultProfile +The credentials, account, tenant, and subscription used for communication with Azure. + +```yaml +Type: System.Management.Automation.PSObject +Parameter Sets: (All) +Aliases: AzureRMContext, AzureCredential + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -Filter +The query used to filter the search results using OData syntax. +Filtering is permitted on the 'name' property only and with limited number of OData operations. +These operations are: the 'contains' function as well as the following logical operations: not, and, or, eq (for equal), and ne (for not equal). +No arithmetic operations are supported. +The following is a valid filter example: $filter=contains(namE, 'PATTERN') and name ne 'PATTERN-1'. +The following is not a valid filter example: $filter=location eq 'westus'. + +```yaml +Type: System.String +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -Location +Name of the location. + +```yaml +Type: System.String +Parameter Sets: (All) +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -PassThru +Returns true when the command succeeds + +```yaml +Type: System.Management.Automation.SwitchParameter +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -ResourceGroupName +The name of the resource group within the user's subscription. + +```yaml +Type: System.String +Parameter Sets: List1, List3 +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -SubscriptionId +Subscription credentials that uniquely identify a Microsoft Azure subscription. +The subscription ID forms part of the URI for every service call. + +```yaml +Type: System.String[] +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: (Get-AzContext).Subscription.Id +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -Top +The number of results to return per page for the list operation. +Valid range for top parameter is 1 to 100. +If not specified, the default number of results to be returned is 20 items per page. + +```yaml +Type: System.Int32 +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -TopicTypeName +Name of the topic type. + +```yaml +Type: System.String +Parameter Sets: List2, List3 +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.EventGrid.Models.Api20211015Preview.IEventSubscription + +## NOTES + +ALIASES + +## RELATED LINKS + diff --git a/swaggerci/eventgrid/docs/Get-AzEventGridExtensionTopic.md b/swaggerci/eventgrid/docs/Get-AzEventGridExtensionTopic.md new file mode 100644 index 000000000000..1633c705d042 --- /dev/null +++ b/swaggerci/eventgrid/docs/Get-AzEventGridExtensionTopic.md @@ -0,0 +1,166 @@ +--- +external help file: +Module Name: Az.EventGrid +online version: https://docs.microsoft.com/en-us/powershell/module/az.eventgrid/get-azeventgridextensiontopic +schema: 2.0.0 +--- + +# Get-AzEventGridExtensionTopic + +## SYNOPSIS +Get the properties of an extension topic. + +## SYNTAX + +### Get (Default) +``` +Get-AzEventGridExtensionTopic -Scope [-DefaultProfile ] [-PassThru] [] +``` + +### GetViaIdentity +``` +Get-AzEventGridExtensionTopic -InputObject [-DefaultProfile ] [-PassThru] + [] +``` + +## DESCRIPTION +Get the properties of an extension topic. + +## EXAMPLES + +### Example 1: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +## PARAMETERS + +### -DefaultProfile +The credentials, account, tenant, and subscription used for communication with Azure. + +```yaml +Type: System.Management.Automation.PSObject +Parameter Sets: (All) +Aliases: AzureRMContext, AzureCredential + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -InputObject +Identity Parameter +To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + +```yaml +Type: Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.IEventGridIdentity +Parameter Sets: GetViaIdentity +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: True (ByValue) +Accept wildcard characters: False +``` + +### -PassThru +Returns true when the command succeeds + +```yaml +Type: System.Management.Automation.SwitchParameter +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -Scope +The identifier of the resource to which extension topic is queried. +The scope can be a subscription, or a resource group, or a top level resource belonging to a resource provider namespace. +For example, use '/subscriptions/{subscriptionId}/' for a subscription, '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}' for a resource group, and '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}' for Azure resource. + +```yaml +Type: System.String +Parameter Sets: Get +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.EventGrid.Models.IEventGridIdentity + +## OUTPUTS + +### Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IExtensionTopic + +## 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 + - `[ChannelName ]`: Name of the channel. + - `[DomainName ]`: Name of the domain. + - `[DomainTopicName ]`: Name of the topic. + - `[EventChannelName ]`: Name of the event channel. + - `[EventSubscriptionName ]`: Name of the event subscription. + - `[Id ]`: Resource identity path + - `[Location ]`: Name of the location. + - `[ParentName ]`: The name of the parent resource (namely, either, the topic name, domain name, or partner namespace name). + - `[ParentType ]`: The type of the parent resource. This can be either \'topics\', \'domains\', or \'partnerNamespaces\'. + - `[PartnerDestinationName ]`: Name of the partner destination. + - `[PartnerNamespaceName ]`: Name of the partner namespace. + - `[PartnerRegistrationName ]`: Name of the partner registration. + - `[PartnerTopicName ]`: Name of the partner topic. + - `[PrivateEndpointConnectionName ]`: The name of the private endpoint connection connection. + - `[PrivateLinkResourceName ]`: The name of private link resource. + - `[ProviderNamespace ]`: Namespace of the provider of the topic. + - `[ResourceGroupName ]`: The name of the resource group within the partners subscription. + - `[ResourceName ]`: Name of the resource. + - `[ResourceTypeName ]`: Name of the resource type. + - `[Scope ]`: The scope of the event subscription. The scope can be a subscription, or a resource group, or a top level resource belonging to a resource provider namespace, or an EventGrid topic. For example, use '/subscriptions/{subscriptionId}/' for a subscription, '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}' for a resource group, and '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}' for a resource, and '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.EventGrid/topics/{topicName}' for an EventGrid topic. + - `[SubscriptionId ]`: Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription ID forms part of the URI for every service call. + - `[SystemTopicName ]`: Name of the system topic. + - `[TopicName ]`: Name of the domain topic. + - `[TopicTypeName ]`: Name of the topic type. + - `[VerifiedPartnerName ]`: Name of the verified partner. + +## RELATED LINKS + diff --git a/swaggerci/eventgrid/docs/Get-AzEventGridPartnerConfiguration.md b/swaggerci/eventgrid/docs/Get-AzEventGridPartnerConfiguration.md new file mode 100644 index 000000000000..30766be5d32b --- /dev/null +++ b/swaggerci/eventgrid/docs/Get-AzEventGridPartnerConfiguration.md @@ -0,0 +1,230 @@ +--- +external help file: +Module Name: Az.EventGrid +online version: https://docs.microsoft.com/en-us/powershell/module/az.eventgrid/get-azeventgridpartnerconfiguration +schema: 2.0.0 +--- + +# Get-AzEventGridPartnerConfiguration + +## SYNOPSIS +Get properties of a partner configuration. + +## SYNTAX + +### List1 (Default) +``` +Get-AzEventGridPartnerConfiguration [-SubscriptionId ] [-Filter ] [-Top ] + [-DefaultProfile ] [-PassThru] [] +``` + +### Get +``` +Get-AzEventGridPartnerConfiguration -ResourceGroupName [-SubscriptionId ] + [-DefaultProfile ] [-PassThru] [] +``` + +### GetViaIdentity +``` +Get-AzEventGridPartnerConfiguration -InputObject [-DefaultProfile ] [-PassThru] + [] +``` + +### List +``` +Get-AzEventGridPartnerConfiguration -ResourceGroupName [-SubscriptionId ] + [-DefaultProfile ] [-PassThru] [] +``` + +## DESCRIPTION +Get properties of a partner configuration. + +## EXAMPLES + +### Example 1: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +## PARAMETERS + +### -DefaultProfile +The credentials, account, tenant, and subscription used for communication with Azure. + +```yaml +Type: System.Management.Automation.PSObject +Parameter Sets: (All) +Aliases: AzureRMContext, AzureCredential + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -Filter +The query used to filter the search results using OData syntax. +Filtering is permitted on the 'name' property only and with limited number of OData operations. +These operations are: the 'contains' function as well as the following logical operations: not, and, or, eq (for equal), and ne (for not equal). +No arithmetic operations are supported. +The following is a valid filter example: $filter=contains(namE, 'PATTERN') and name ne 'PATTERN-1'. +The following is not a valid filter example: $filter=location eq 'westus'. + +```yaml +Type: System.String +Parameter Sets: 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.EventGrid.Models.IEventGridIdentity +Parameter Sets: GetViaIdentity +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: True (ByValue) +Accept wildcard characters: False +``` + +### -PassThru +Returns true when the command succeeds + +```yaml +Type: System.Management.Automation.SwitchParameter +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -ResourceGroupName +The name of the resource group within the user's subscription. + +```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 +Subscription credentials that uniquely identify a Microsoft Azure subscription. +The subscription ID forms part of the URI for every service call. + +```yaml +Type: System.String[] +Parameter Sets: Get, List, List1 +Aliases: + +Required: False +Position: Named +Default value: (Get-AzContext).Subscription.Id +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -Top +The number of results to return per page for the list operation. +Valid range for top parameter is 1 to 100. +If not specified, the default number of results to be returned is 20 items per page. + +```yaml +Type: System.Int32 +Parameter Sets: List1 +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### CommonParameters +This cmdlet supports the common parameters: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutVariable, -OutBuffer, -PipelineVariable, -Verbose, -WarningAction, and -WarningVariable. For more information, see [about_CommonParameters](http://go.microsoft.com/fwlink/?LinkID=113216). + +## INPUTS + +### Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.IEventGridIdentity + +## OUTPUTS + +### Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerConfiguration + +## 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 + - `[ChannelName ]`: Name of the channel. + - `[DomainName ]`: Name of the domain. + - `[DomainTopicName ]`: Name of the topic. + - `[EventChannelName ]`: Name of the event channel. + - `[EventSubscriptionName ]`: Name of the event subscription. + - `[Id ]`: Resource identity path + - `[Location ]`: Name of the location. + - `[ParentName ]`: The name of the parent resource (namely, either, the topic name, domain name, or partner namespace name). + - `[ParentType ]`: The type of the parent resource. This can be either \'topics\', \'domains\', or \'partnerNamespaces\'. + - `[PartnerDestinationName ]`: Name of the partner destination. + - `[PartnerNamespaceName ]`: Name of the partner namespace. + - `[PartnerRegistrationName ]`: Name of the partner registration. + - `[PartnerTopicName ]`: Name of the partner topic. + - `[PrivateEndpointConnectionName ]`: The name of the private endpoint connection connection. + - `[PrivateLinkResourceName ]`: The name of private link resource. + - `[ProviderNamespace ]`: Namespace of the provider of the topic. + - `[ResourceGroupName ]`: The name of the resource group within the partners subscription. + - `[ResourceName ]`: Name of the resource. + - `[ResourceTypeName ]`: Name of the resource type. + - `[Scope ]`: The scope of the event subscription. The scope can be a subscription, or a resource group, or a top level resource belonging to a resource provider namespace, or an EventGrid topic. For example, use '/subscriptions/{subscriptionId}/' for a subscription, '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}' for a resource group, and '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}' for a resource, and '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.EventGrid/topics/{topicName}' for an EventGrid topic. + - `[SubscriptionId ]`: Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription ID forms part of the URI for every service call. + - `[SystemTopicName ]`: Name of the system topic. + - `[TopicName ]`: Name of the domain topic. + - `[TopicTypeName ]`: Name of the topic type. + - `[VerifiedPartnerName ]`: Name of the verified partner. + +## RELATED LINKS + diff --git a/swaggerci/eventgrid/docs/Get-AzEventGridPartnerDestination.md b/swaggerci/eventgrid/docs/Get-AzEventGridPartnerDestination.md new file mode 100644 index 000000000000..9a310ded5012 --- /dev/null +++ b/swaggerci/eventgrid/docs/Get-AzEventGridPartnerDestination.md @@ -0,0 +1,245 @@ +--- +external help file: +Module Name: Az.EventGrid +online version: https://docs.microsoft.com/en-us/powershell/module/az.eventgrid/get-azeventgridpartnerdestination +schema: 2.0.0 +--- + +# Get-AzEventGridPartnerDestination + +## SYNOPSIS +Get properties of a partner destination. + +## SYNTAX + +### List (Default) +``` +Get-AzEventGridPartnerDestination [-SubscriptionId ] [-Filter ] [-Top ] + [-DefaultProfile ] [-PassThru] [] +``` + +### Get +``` +Get-AzEventGridPartnerDestination -Name -ResourceGroupName [-SubscriptionId ] + [-DefaultProfile ] [-PassThru] [] +``` + +### GetViaIdentity +``` +Get-AzEventGridPartnerDestination -InputObject [-DefaultProfile ] [-PassThru] + [] +``` + +### List1 +``` +Get-AzEventGridPartnerDestination -ResourceGroupName [-SubscriptionId ] [-Filter ] + [-Top ] [-DefaultProfile ] [-PassThru] [] +``` + +## DESCRIPTION +Get properties of a partner destination. + +## EXAMPLES + +### Example 1: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +## PARAMETERS + +### -DefaultProfile +The credentials, account, tenant, and subscription used for communication with Azure. + +```yaml +Type: System.Management.Automation.PSObject +Parameter Sets: (All) +Aliases: AzureRMContext, AzureCredential + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -Filter +The query used to filter the search results using OData syntax. +Filtering is permitted on the 'name' property only and with limited number of OData operations. +These operations are: the 'contains' function as well as the following logical operations: not, and, or, eq (for equal), and ne (for not equal). +No arithmetic operations are supported. +The following is a valid filter example: $filter=contains(namE, 'PATTERN') and name ne 'PATTERN-1'. +The following is not a valid filter example: $filter=location eq 'westus'. + +```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.EventGrid.Models.IEventGridIdentity +Parameter Sets: GetViaIdentity +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: True (ByValue) +Accept wildcard characters: False +``` + +### -Name +Name of the partner destination. + +```yaml +Type: System.String +Parameter Sets: Get +Aliases: PartnerDestinationName + +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 within the user's subscription. + +```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 +Subscription credentials that uniquely identify a Microsoft Azure subscription. +The subscription ID forms part of the URI for every service call. + +```yaml +Type: System.String[] +Parameter Sets: Get, List, List1 +Aliases: + +Required: False +Position: Named +Default value: (Get-AzContext).Subscription.Id +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -Top +The number of results to return per page for the list operation. +Valid range for top parameter is 1 to 100. +If not specified, the default number of results to be returned is 20 items per page. + +```yaml +Type: System.Int32 +Parameter Sets: List, List1 +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### CommonParameters +This cmdlet supports the common parameters: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutVariable, -OutBuffer, -PipelineVariable, -Verbose, -WarningAction, and -WarningVariable. For more information, see [about_CommonParameters](http://go.microsoft.com/fwlink/?LinkID=113216). + +## INPUTS + +### Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.IEventGridIdentity + +## OUTPUTS + +### Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerDestination + +## 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 + - `[ChannelName ]`: Name of the channel. + - `[DomainName ]`: Name of the domain. + - `[DomainTopicName ]`: Name of the topic. + - `[EventChannelName ]`: Name of the event channel. + - `[EventSubscriptionName ]`: Name of the event subscription. + - `[Id ]`: Resource identity path + - `[Location ]`: Name of the location. + - `[ParentName ]`: The name of the parent resource (namely, either, the topic name, domain name, or partner namespace name). + - `[ParentType ]`: The type of the parent resource. This can be either \'topics\', \'domains\', or \'partnerNamespaces\'. + - `[PartnerDestinationName ]`: Name of the partner destination. + - `[PartnerNamespaceName ]`: Name of the partner namespace. + - `[PartnerRegistrationName ]`: Name of the partner registration. + - `[PartnerTopicName ]`: Name of the partner topic. + - `[PrivateEndpointConnectionName ]`: The name of the private endpoint connection connection. + - `[PrivateLinkResourceName ]`: The name of private link resource. + - `[ProviderNamespace ]`: Namespace of the provider of the topic. + - `[ResourceGroupName ]`: The name of the resource group within the partners subscription. + - `[ResourceName ]`: Name of the resource. + - `[ResourceTypeName ]`: Name of the resource type. + - `[Scope ]`: The scope of the event subscription. The scope can be a subscription, or a resource group, or a top level resource belonging to a resource provider namespace, or an EventGrid topic. For example, use '/subscriptions/{subscriptionId}/' for a subscription, '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}' for a resource group, and '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}' for a resource, and '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.EventGrid/topics/{topicName}' for an EventGrid topic. + - `[SubscriptionId ]`: Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription ID forms part of the URI for every service call. + - `[SystemTopicName ]`: Name of the system topic. + - `[TopicName ]`: Name of the domain topic. + - `[TopicTypeName ]`: Name of the topic type. + - `[VerifiedPartnerName ]`: Name of the verified partner. + +## RELATED LINKS + diff --git a/swaggerci/eventgrid/docs/Get-AzEventGridPartnerNamespace.md b/swaggerci/eventgrid/docs/Get-AzEventGridPartnerNamespace.md new file mode 100644 index 000000000000..5364fa4f800a --- /dev/null +++ b/swaggerci/eventgrid/docs/Get-AzEventGridPartnerNamespace.md @@ -0,0 +1,245 @@ +--- +external help file: +Module Name: Az.EventGrid +online version: https://docs.microsoft.com/en-us/powershell/module/az.eventgrid/get-azeventgridpartnernamespace +schema: 2.0.0 +--- + +# Get-AzEventGridPartnerNamespace + +## SYNOPSIS +Get properties of a partner namespace. + +## SYNTAX + +### List (Default) +``` +Get-AzEventGridPartnerNamespace [-SubscriptionId ] [-Filter ] [-Top ] + [-DefaultProfile ] [-PassThru] [] +``` + +### Get +``` +Get-AzEventGridPartnerNamespace -Name -ResourceGroupName [-SubscriptionId ] + [-DefaultProfile ] [-PassThru] [] +``` + +### GetViaIdentity +``` +Get-AzEventGridPartnerNamespace -InputObject [-DefaultProfile ] [-PassThru] + [] +``` + +### List1 +``` +Get-AzEventGridPartnerNamespace -ResourceGroupName [-SubscriptionId ] [-Filter ] + [-Top ] [-DefaultProfile ] [-PassThru] [] +``` + +## DESCRIPTION +Get properties of a partner namespace. + +## EXAMPLES + +### Example 1: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +## PARAMETERS + +### -DefaultProfile +The credentials, account, tenant, and subscription used for communication with Azure. + +```yaml +Type: System.Management.Automation.PSObject +Parameter Sets: (All) +Aliases: AzureRMContext, AzureCredential + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -Filter +The query used to filter the search results using OData syntax. +Filtering is permitted on the 'name' property only and with limited number of OData operations. +These operations are: the 'contains' function as well as the following logical operations: not, and, or, eq (for equal), and ne (for not equal). +No arithmetic operations are supported. +The following is a valid filter example: $filter=contains(namE, 'PATTERN') and name ne 'PATTERN-1'. +The following is not a valid filter example: $filter=location eq 'westus'. + +```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.EventGrid.Models.IEventGridIdentity +Parameter Sets: GetViaIdentity +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: True (ByValue) +Accept wildcard characters: False +``` + +### -Name +Name of the partner namespace. + +```yaml +Type: System.String +Parameter Sets: Get +Aliases: PartnerNamespaceName + +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 within the user's subscription. + +```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 +Subscription credentials that uniquely identify a Microsoft Azure subscription. +The subscription ID forms part of the URI for every service call. + +```yaml +Type: System.String[] +Parameter Sets: Get, List, List1 +Aliases: + +Required: False +Position: Named +Default value: (Get-AzContext).Subscription.Id +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -Top +The number of results to return per page for the list operation. +Valid range for top parameter is 1 to 100. +If not specified, the default number of results to be returned is 20 items per page. + +```yaml +Type: System.Int32 +Parameter Sets: List, List1 +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### CommonParameters +This cmdlet supports the common parameters: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutVariable, -OutBuffer, -PipelineVariable, -Verbose, -WarningAction, and -WarningVariable. For more information, see [about_CommonParameters](http://go.microsoft.com/fwlink/?LinkID=113216). + +## INPUTS + +### Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.IEventGridIdentity + +## OUTPUTS + +### Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerNamespace + +## 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 + - `[ChannelName ]`: Name of the channel. + - `[DomainName ]`: Name of the domain. + - `[DomainTopicName ]`: Name of the topic. + - `[EventChannelName ]`: Name of the event channel. + - `[EventSubscriptionName ]`: Name of the event subscription. + - `[Id ]`: Resource identity path + - `[Location ]`: Name of the location. + - `[ParentName ]`: The name of the parent resource (namely, either, the topic name, domain name, or partner namespace name). + - `[ParentType ]`: The type of the parent resource. This can be either \'topics\', \'domains\', or \'partnerNamespaces\'. + - `[PartnerDestinationName ]`: Name of the partner destination. + - `[PartnerNamespaceName ]`: Name of the partner namespace. + - `[PartnerRegistrationName ]`: Name of the partner registration. + - `[PartnerTopicName ]`: Name of the partner topic. + - `[PrivateEndpointConnectionName ]`: The name of the private endpoint connection connection. + - `[PrivateLinkResourceName ]`: The name of private link resource. + - `[ProviderNamespace ]`: Namespace of the provider of the topic. + - `[ResourceGroupName ]`: The name of the resource group within the partners subscription. + - `[ResourceName ]`: Name of the resource. + - `[ResourceTypeName ]`: Name of the resource type. + - `[Scope ]`: The scope of the event subscription. The scope can be a subscription, or a resource group, or a top level resource belonging to a resource provider namespace, or an EventGrid topic. For example, use '/subscriptions/{subscriptionId}/' for a subscription, '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}' for a resource group, and '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}' for a resource, and '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.EventGrid/topics/{topicName}' for an EventGrid topic. + - `[SubscriptionId ]`: Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription ID forms part of the URI for every service call. + - `[SystemTopicName ]`: Name of the system topic. + - `[TopicName ]`: Name of the domain topic. + - `[TopicTypeName ]`: Name of the topic type. + - `[VerifiedPartnerName ]`: Name of the verified partner. + +## RELATED LINKS + diff --git a/swaggerci/eventgrid/docs/Get-AzEventGridPartnerNamespaceSharedAccessKey.md b/swaggerci/eventgrid/docs/Get-AzEventGridPartnerNamespaceSharedAccessKey.md new file mode 100644 index 000000000000..d9ee32b9322a --- /dev/null +++ b/swaggerci/eventgrid/docs/Get-AzEventGridPartnerNamespaceSharedAccessKey.md @@ -0,0 +1,171 @@ +--- +external help file: +Module Name: Az.EventGrid +online version: https://docs.microsoft.com/en-us/powershell/module/az.eventgrid/get-azeventgridpartnernamespacesharedaccesskey +schema: 2.0.0 +--- + +# Get-AzEventGridPartnerNamespaceSharedAccessKey + +## SYNOPSIS +List the two keys used to publish to a partner namespace. + +## SYNTAX + +``` +Get-AzEventGridPartnerNamespaceSharedAccessKey -PartnerNamespaceName -ResourceGroupName + [-SubscriptionId ] [-DefaultProfile ] [-PassThru] [-Confirm] [-WhatIf] + [] +``` + +## DESCRIPTION +List the two keys used to publish to a partner namespace. + +## EXAMPLES + +### Example 1: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +## PARAMETERS + +### -DefaultProfile +The credentials, account, tenant, and subscription used for communication with Azure. + +```yaml +Type: System.Management.Automation.PSObject +Parameter Sets: (All) +Aliases: AzureRMContext, AzureCredential + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -PartnerNamespaceName +Name of the partner namespace. + +```yaml +Type: System.String +Parameter Sets: (All) +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -PassThru +Returns true when the command succeeds + +```yaml +Type: System.Management.Automation.SwitchParameter +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -ResourceGroupName +The name of the resource group within the user's subscription. + +```yaml +Type: System.String +Parameter Sets: (All) +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -SubscriptionId +Subscription credentials that uniquely identify a Microsoft Azure subscription. +The subscription ID forms part of the URI for every service call. + +```yaml +Type: System.String[] +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: (Get-AzContext).Subscription.Id +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -Confirm +Prompts you for confirmation before running the cmdlet. + +```yaml +Type: System.Management.Automation.SwitchParameter +Parameter Sets: (All) +Aliases: cf + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -WhatIf +Shows what would happen if the cmdlet runs. +The cmdlet is not run. + +```yaml +Type: System.Management.Automation.SwitchParameter +Parameter Sets: (All) +Aliases: wi + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### CommonParameters +This cmdlet supports the common parameters: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutVariable, -OutBuffer, -PipelineVariable, -Verbose, -WarningAction, and -WarningVariable. For more information, see [about_CommonParameters](http://go.microsoft.com/fwlink/?LinkID=113216). + +## INPUTS + +## OUTPUTS + +### Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerNamespaceSharedAccessKeys + +## NOTES + +ALIASES + +## RELATED LINKS + diff --git a/swaggerci/eventgrid/docs/Get-AzEventGridPartnerRegistration.md b/swaggerci/eventgrid/docs/Get-AzEventGridPartnerRegistration.md new file mode 100644 index 000000000000..b944ef21ddcc --- /dev/null +++ b/swaggerci/eventgrid/docs/Get-AzEventGridPartnerRegistration.md @@ -0,0 +1,245 @@ +--- +external help file: +Module Name: Az.EventGrid +online version: https://docs.microsoft.com/en-us/powershell/module/az.eventgrid/get-azeventgridpartnerregistration +schema: 2.0.0 +--- + +# Get-AzEventGridPartnerRegistration + +## SYNOPSIS +Gets a partner registration with the specified parameters. + +## SYNTAX + +### List (Default) +``` +Get-AzEventGridPartnerRegistration [-SubscriptionId ] [-Filter ] [-Top ] + [-DefaultProfile ] [-PassThru] [] +``` + +### Get +``` +Get-AzEventGridPartnerRegistration -Name -ResourceGroupName [-SubscriptionId ] + [-DefaultProfile ] [-PassThru] [] +``` + +### GetViaIdentity +``` +Get-AzEventGridPartnerRegistration -InputObject [-DefaultProfile ] [-PassThru] + [] +``` + +### List1 +``` +Get-AzEventGridPartnerRegistration -ResourceGroupName [-SubscriptionId ] [-Filter ] + [-Top ] [-DefaultProfile ] [-PassThru] [] +``` + +## DESCRIPTION +Gets a partner registration with the specified parameters. + +## EXAMPLES + +### Example 1: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +## PARAMETERS + +### -DefaultProfile +The credentials, account, tenant, and subscription used for communication with Azure. + +```yaml +Type: System.Management.Automation.PSObject +Parameter Sets: (All) +Aliases: AzureRMContext, AzureCredential + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -Filter +The query used to filter the search results using OData syntax. +Filtering is permitted on the 'name' property only and with limited number of OData operations. +These operations are: the 'contains' function as well as the following logical operations: not, and, or, eq (for equal), and ne (for not equal). +No arithmetic operations are supported. +The following is a valid filter example: $filter=contains(namE, 'PATTERN') and name ne 'PATTERN-1'. +The following is not a valid filter example: $filter=location eq 'westus'. + +```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.EventGrid.Models.IEventGridIdentity +Parameter Sets: GetViaIdentity +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: True (ByValue) +Accept wildcard characters: False +``` + +### -Name +Name of the partner registration. + +```yaml +Type: System.String +Parameter Sets: Get +Aliases: PartnerRegistrationName + +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 within the user's subscription. + +```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 +Subscription credentials that uniquely identify a Microsoft Azure subscription. +The subscription ID forms part of the URI for every service call. + +```yaml +Type: System.String[] +Parameter Sets: Get, List, List1 +Aliases: + +Required: False +Position: Named +Default value: (Get-AzContext).Subscription.Id +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -Top +The number of results to return per page for the list operation. +Valid range for top parameter is 1 to 100. +If not specified, the default number of results to be returned is 20 items per page. + +```yaml +Type: System.Int32 +Parameter Sets: List, List1 +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### CommonParameters +This cmdlet supports the common parameters: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutVariable, -OutBuffer, -PipelineVariable, -Verbose, -WarningAction, and -WarningVariable. For more information, see [about_CommonParameters](http://go.microsoft.com/fwlink/?LinkID=113216). + +## INPUTS + +### Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.IEventGridIdentity + +## OUTPUTS + +### Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerRegistration + +## 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 + - `[ChannelName ]`: Name of the channel. + - `[DomainName ]`: Name of the domain. + - `[DomainTopicName ]`: Name of the topic. + - `[EventChannelName ]`: Name of the event channel. + - `[EventSubscriptionName ]`: Name of the event subscription. + - `[Id ]`: Resource identity path + - `[Location ]`: Name of the location. + - `[ParentName ]`: The name of the parent resource (namely, either, the topic name, domain name, or partner namespace name). + - `[ParentType ]`: The type of the parent resource. This can be either \'topics\', \'domains\', or \'partnerNamespaces\'. + - `[PartnerDestinationName ]`: Name of the partner destination. + - `[PartnerNamespaceName ]`: Name of the partner namespace. + - `[PartnerRegistrationName ]`: Name of the partner registration. + - `[PartnerTopicName ]`: Name of the partner topic. + - `[PrivateEndpointConnectionName ]`: The name of the private endpoint connection connection. + - `[PrivateLinkResourceName ]`: The name of private link resource. + - `[ProviderNamespace ]`: Namespace of the provider of the topic. + - `[ResourceGroupName ]`: The name of the resource group within the partners subscription. + - `[ResourceName ]`: Name of the resource. + - `[ResourceTypeName ]`: Name of the resource type. + - `[Scope ]`: The scope of the event subscription. The scope can be a subscription, or a resource group, or a top level resource belonging to a resource provider namespace, or an EventGrid topic. For example, use '/subscriptions/{subscriptionId}/' for a subscription, '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}' for a resource group, and '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}' for a resource, and '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.EventGrid/topics/{topicName}' for an EventGrid topic. + - `[SubscriptionId ]`: Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription ID forms part of the URI for every service call. + - `[SystemTopicName ]`: Name of the system topic. + - `[TopicName ]`: Name of the domain topic. + - `[TopicTypeName ]`: Name of the topic type. + - `[VerifiedPartnerName ]`: Name of the verified partner. + +## RELATED LINKS + diff --git a/swaggerci/eventgrid/docs/Get-AzEventGridPartnerTopic.md b/swaggerci/eventgrid/docs/Get-AzEventGridPartnerTopic.md new file mode 100644 index 000000000000..22f0c79325bb --- /dev/null +++ b/swaggerci/eventgrid/docs/Get-AzEventGridPartnerTopic.md @@ -0,0 +1,245 @@ +--- +external help file: +Module Name: Az.EventGrid +online version: https://docs.microsoft.com/en-us/powershell/module/az.eventgrid/get-azeventgridpartnertopic +schema: 2.0.0 +--- + +# Get-AzEventGridPartnerTopic + +## SYNOPSIS +Get properties of a partner topic. + +## SYNTAX + +### List (Default) +``` +Get-AzEventGridPartnerTopic [-SubscriptionId ] [-Filter ] [-Top ] + [-DefaultProfile ] [-PassThru] [] +``` + +### Get +``` +Get-AzEventGridPartnerTopic -Name -ResourceGroupName [-SubscriptionId ] + [-DefaultProfile ] [-PassThru] [] +``` + +### GetViaIdentity +``` +Get-AzEventGridPartnerTopic -InputObject [-DefaultProfile ] [-PassThru] + [] +``` + +### List1 +``` +Get-AzEventGridPartnerTopic -ResourceGroupName [-SubscriptionId ] [-Filter ] + [-Top ] [-DefaultProfile ] [-PassThru] [] +``` + +## DESCRIPTION +Get properties of a partner topic. + +## EXAMPLES + +### Example 1: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +## PARAMETERS + +### -DefaultProfile +The credentials, account, tenant, and subscription used for communication with Azure. + +```yaml +Type: System.Management.Automation.PSObject +Parameter Sets: (All) +Aliases: AzureRMContext, AzureCredential + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -Filter +The query used to filter the search results using OData syntax. +Filtering is permitted on the 'name' property only and with limited number of OData operations. +These operations are: the 'contains' function as well as the following logical operations: not, and, or, eq (for equal), and ne (for not equal). +No arithmetic operations are supported. +The following is a valid filter example: $filter=contains(namE, 'PATTERN') and name ne 'PATTERN-1'. +The following is not a valid filter example: $filter=location eq 'westus'. + +```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.EventGrid.Models.IEventGridIdentity +Parameter Sets: GetViaIdentity +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: True (ByValue) +Accept wildcard characters: False +``` + +### -Name +Name of the partner topic. + +```yaml +Type: System.String +Parameter Sets: Get +Aliases: PartnerTopicName + +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 within the user's subscription. + +```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 +Subscription credentials that uniquely identify a Microsoft Azure subscription. +The subscription ID forms part of the URI for every service call. + +```yaml +Type: System.String[] +Parameter Sets: Get, List, List1 +Aliases: + +Required: False +Position: Named +Default value: (Get-AzContext).Subscription.Id +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -Top +The number of results to return per page for the list operation. +Valid range for top parameter is 1 to 100. +If not specified, the default number of results to be returned is 20 items per page. + +```yaml +Type: System.Int32 +Parameter Sets: List, List1 +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### CommonParameters +This cmdlet supports the common parameters: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutVariable, -OutBuffer, -PipelineVariable, -Verbose, -WarningAction, and -WarningVariable. For more information, see [about_CommonParameters](http://go.microsoft.com/fwlink/?LinkID=113216). + +## INPUTS + +### Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.IEventGridIdentity + +## OUTPUTS + +### Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerTopic + +## 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 + - `[ChannelName ]`: Name of the channel. + - `[DomainName ]`: Name of the domain. + - `[DomainTopicName ]`: Name of the topic. + - `[EventChannelName ]`: Name of the event channel. + - `[EventSubscriptionName ]`: Name of the event subscription. + - `[Id ]`: Resource identity path + - `[Location ]`: Name of the location. + - `[ParentName ]`: The name of the parent resource (namely, either, the topic name, domain name, or partner namespace name). + - `[ParentType ]`: The type of the parent resource. This can be either \'topics\', \'domains\', or \'partnerNamespaces\'. + - `[PartnerDestinationName ]`: Name of the partner destination. + - `[PartnerNamespaceName ]`: Name of the partner namespace. + - `[PartnerRegistrationName ]`: Name of the partner registration. + - `[PartnerTopicName ]`: Name of the partner topic. + - `[PrivateEndpointConnectionName ]`: The name of the private endpoint connection connection. + - `[PrivateLinkResourceName ]`: The name of private link resource. + - `[ProviderNamespace ]`: Namespace of the provider of the topic. + - `[ResourceGroupName ]`: The name of the resource group within the partners subscription. + - `[ResourceName ]`: Name of the resource. + - `[ResourceTypeName ]`: Name of the resource type. + - `[Scope ]`: The scope of the event subscription. The scope can be a subscription, or a resource group, or a top level resource belonging to a resource provider namespace, or an EventGrid topic. For example, use '/subscriptions/{subscriptionId}/' for a subscription, '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}' for a resource group, and '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}' for a resource, and '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.EventGrid/topics/{topicName}' for an EventGrid topic. + - `[SubscriptionId ]`: Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription ID forms part of the URI for every service call. + - `[SystemTopicName ]`: Name of the system topic. + - `[TopicName ]`: Name of the domain topic. + - `[TopicTypeName ]`: Name of the topic type. + - `[VerifiedPartnerName ]`: Name of the verified partner. + +## RELATED LINKS + diff --git a/swaggerci/eventgrid/docs/Get-AzEventGridPartnerTopicEventSubscription.md b/swaggerci/eventgrid/docs/Get-AzEventGridPartnerTopicEventSubscription.md new file mode 100644 index 000000000000..5721ab802ad7 --- /dev/null +++ b/swaggerci/eventgrid/docs/Get-AzEventGridPartnerTopicEventSubscription.md @@ -0,0 +1,257 @@ +--- +external help file: +Module Name: Az.EventGrid +online version: https://docs.microsoft.com/en-us/powershell/module/az.eventgrid/get-azeventgridpartnertopiceventsubscription +schema: 2.0.0 +--- + +# Get-AzEventGridPartnerTopicEventSubscription + +## SYNOPSIS +Get properties of an event subscription of a partner topic. + +## SYNTAX + +### List (Default) +``` +Get-AzEventGridPartnerTopicEventSubscription -PartnerTopicName -ResourceGroupName + [-SubscriptionId ] [-Filter ] [-Top ] [-DefaultProfile ] [-PassThru] + [] +``` + +### Get +``` +Get-AzEventGridPartnerTopicEventSubscription -EventSubscriptionName -PartnerTopicName + -ResourceGroupName [-SubscriptionId ] [-DefaultProfile ] [-PassThru] + [] +``` + +### GetViaIdentity +``` +Get-AzEventGridPartnerTopicEventSubscription -InputObject [-DefaultProfile ] + [-PassThru] [] +``` + +## DESCRIPTION +Get properties of an event subscription of a partner topic. + +## EXAMPLES + +### Example 1: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +## PARAMETERS + +### -DefaultProfile +The credentials, account, tenant, and subscription used for communication with Azure. + +```yaml +Type: System.Management.Automation.PSObject +Parameter Sets: (All) +Aliases: AzureRMContext, AzureCredential + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -EventSubscriptionName +Name of the event subscription to be found. +Event subscription names must be between 3 and 100 characters in length and use alphanumeric letters only. + +```yaml +Type: System.String +Parameter Sets: Get +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -Filter +The query used to filter the search results using OData syntax. +Filtering is permitted on the 'name' property only and with limited number of OData operations. +These operations are: the 'contains' function as well as the following logical operations: not, and, or, eq (for equal), and ne (for not equal). +No arithmetic operations are supported. +The following is a valid filter example: $filter=contains(namE, 'PATTERN') and name ne 'PATTERN-1'. +The following is not a valid filter example: $filter=location eq 'westus'. + +```yaml +Type: System.String +Parameter Sets: List +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -InputObject +Identity Parameter +To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + +```yaml +Type: Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.IEventGridIdentity +Parameter Sets: GetViaIdentity +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: True (ByValue) +Accept wildcard characters: False +``` + +### -PartnerTopicName +Name of the partner topic. + +```yaml +Type: System.String +Parameter Sets: Get, List +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -PassThru +Returns true when the command succeeds + +```yaml +Type: System.Management.Automation.SwitchParameter +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -ResourceGroupName +The name of the resource group within the user's subscription. + +```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 +Subscription credentials that uniquely identify a Microsoft Azure subscription. +The subscription ID forms part of the URI for every service call. + +```yaml +Type: System.String[] +Parameter Sets: Get, List +Aliases: + +Required: False +Position: Named +Default value: (Get-AzContext).Subscription.Id +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -Top +The number of results to return per page for the list operation. +Valid range for top parameter is 1 to 100. +If not specified, the default number of results to be returned is 20 items per page. + +```yaml +Type: System.Int32 +Parameter Sets: List +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### CommonParameters +This cmdlet supports the common parameters: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutVariable, -OutBuffer, -PipelineVariable, -Verbose, -WarningAction, and -WarningVariable. For more information, see [about_CommonParameters](http://go.microsoft.com/fwlink/?LinkID=113216). + +## INPUTS + +### Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.IEventGridIdentity + +## OUTPUTS + +### Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscription + +## 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 + - `[ChannelName ]`: Name of the channel. + - `[DomainName ]`: Name of the domain. + - `[DomainTopicName ]`: Name of the topic. + - `[EventChannelName ]`: Name of the event channel. + - `[EventSubscriptionName ]`: Name of the event subscription. + - `[Id ]`: Resource identity path + - `[Location ]`: Name of the location. + - `[ParentName ]`: The name of the parent resource (namely, either, the topic name, domain name, or partner namespace name). + - `[ParentType ]`: The type of the parent resource. This can be either \'topics\', \'domains\', or \'partnerNamespaces\'. + - `[PartnerDestinationName ]`: Name of the partner destination. + - `[PartnerNamespaceName ]`: Name of the partner namespace. + - `[PartnerRegistrationName ]`: Name of the partner registration. + - `[PartnerTopicName ]`: Name of the partner topic. + - `[PrivateEndpointConnectionName ]`: The name of the private endpoint connection connection. + - `[PrivateLinkResourceName ]`: The name of private link resource. + - `[ProviderNamespace ]`: Namespace of the provider of the topic. + - `[ResourceGroupName ]`: The name of the resource group within the partners subscription. + - `[ResourceName ]`: Name of the resource. + - `[ResourceTypeName ]`: Name of the resource type. + - `[Scope ]`: The scope of the event subscription. The scope can be a subscription, or a resource group, or a top level resource belonging to a resource provider namespace, or an EventGrid topic. For example, use '/subscriptions/{subscriptionId}/' for a subscription, '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}' for a resource group, and '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}' for a resource, and '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.EventGrid/topics/{topicName}' for an EventGrid topic. + - `[SubscriptionId ]`: Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription ID forms part of the URI for every service call. + - `[SystemTopicName ]`: Name of the system topic. + - `[TopicName ]`: Name of the domain topic. + - `[TopicTypeName ]`: Name of the topic type. + - `[VerifiedPartnerName ]`: Name of the verified partner. + +## RELATED LINKS + diff --git a/swaggerci/eventgrid/docs/Get-AzEventGridPartnerTopicEventSubscriptionDeliveryAttribute.md b/swaggerci/eventgrid/docs/Get-AzEventGridPartnerTopicEventSubscriptionDeliveryAttribute.md new file mode 100644 index 000000000000..f22de4519031 --- /dev/null +++ b/swaggerci/eventgrid/docs/Get-AzEventGridPartnerTopicEventSubscriptionDeliveryAttribute.md @@ -0,0 +1,244 @@ +--- +external help file: +Module Name: Az.EventGrid +online version: https://docs.microsoft.com/en-us/powershell/module/az.eventgrid/get-azeventgridpartnertopiceventsubscriptiondeliveryattribute +schema: 2.0.0 +--- + +# Get-AzEventGridPartnerTopicEventSubscriptionDeliveryAttribute + +## SYNOPSIS +Get all delivery attributes for an event subscription of a partner topic. + +## SYNTAX + +### Get (Default) +``` +Get-AzEventGridPartnerTopicEventSubscriptionDeliveryAttribute -EventSubscriptionName + -PartnerTopicName -ResourceGroupName [-SubscriptionId ] + [-DefaultProfile ] [-PassThru] [-Confirm] [-WhatIf] [] +``` + +### GetViaIdentity +``` +Get-AzEventGridPartnerTopicEventSubscriptionDeliveryAttribute -InputObject + [-DefaultProfile ] [-PassThru] [-Confirm] [-WhatIf] [] +``` + +## DESCRIPTION +Get all delivery attributes for an event subscription of a partner topic. + +## EXAMPLES + +### Example 1: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +## PARAMETERS + +### -DefaultProfile +The credentials, account, tenant, and subscription used for communication with Azure. + +```yaml +Type: System.Management.Automation.PSObject +Parameter Sets: (All) +Aliases: AzureRMContext, AzureCredential + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -EventSubscriptionName +Name of the event subscription to be created. +Event subscription names must be between 3 and 100 characters in length and use alphanumeric letters only. + +```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.EventGrid.Models.IEventGridIdentity +Parameter Sets: GetViaIdentity +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: True (ByValue) +Accept wildcard characters: False +``` + +### -PartnerTopicName +Name of the partner topic. + +```yaml +Type: System.String +Parameter Sets: Get +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -PassThru +Returns true when the command succeeds + +```yaml +Type: System.Management.Automation.SwitchParameter +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -ResourceGroupName +The name of the resource group within the user's subscription. + +```yaml +Type: System.String +Parameter Sets: Get +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -SubscriptionId +Subscription credentials that uniquely identify a Microsoft Azure subscription. +The subscription ID forms part of the URI for every service call. + +```yaml +Type: System.String[] +Parameter Sets: Get +Aliases: + +Required: False +Position: Named +Default value: (Get-AzContext).Subscription.Id +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -Confirm +Prompts you for confirmation before running the cmdlet. + +```yaml +Type: System.Management.Automation.SwitchParameter +Parameter Sets: (All) +Aliases: cf + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -WhatIf +Shows what would happen if the cmdlet runs. +The cmdlet is not run. + +```yaml +Type: System.Management.Automation.SwitchParameter +Parameter Sets: (All) +Aliases: wi + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### CommonParameters +This cmdlet supports the common parameters: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutVariable, -OutBuffer, -PipelineVariable, -Verbose, -WarningAction, and -WarningVariable. For more information, see [about_CommonParameters](http://go.microsoft.com/fwlink/?LinkID=113216). + +## INPUTS + +### Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.IEventGridIdentity + +## OUTPUTS + +### Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDeliveryAttributeMapping + +## 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 + - `[ChannelName ]`: Name of the channel. + - `[DomainName ]`: Name of the domain. + - `[DomainTopicName ]`: Name of the topic. + - `[EventChannelName ]`: Name of the event channel. + - `[EventSubscriptionName ]`: Name of the event subscription. + - `[Id ]`: Resource identity path + - `[Location ]`: Name of the location. + - `[ParentName ]`: The name of the parent resource (namely, either, the topic name, domain name, or partner namespace name). + - `[ParentType ]`: The type of the parent resource. This can be either \'topics\', \'domains\', or \'partnerNamespaces\'. + - `[PartnerDestinationName ]`: Name of the partner destination. + - `[PartnerNamespaceName ]`: Name of the partner namespace. + - `[PartnerRegistrationName ]`: Name of the partner registration. + - `[PartnerTopicName ]`: Name of the partner topic. + - `[PrivateEndpointConnectionName ]`: The name of the private endpoint connection connection. + - `[PrivateLinkResourceName ]`: The name of private link resource. + - `[ProviderNamespace ]`: Namespace of the provider of the topic. + - `[ResourceGroupName ]`: The name of the resource group within the partners subscription. + - `[ResourceName ]`: Name of the resource. + - `[ResourceTypeName ]`: Name of the resource type. + - `[Scope ]`: The scope of the event subscription. The scope can be a subscription, or a resource group, or a top level resource belonging to a resource provider namespace, or an EventGrid topic. For example, use '/subscriptions/{subscriptionId}/' for a subscription, '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}' for a resource group, and '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}' for a resource, and '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.EventGrid/topics/{topicName}' for an EventGrid topic. + - `[SubscriptionId ]`: Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription ID forms part of the URI for every service call. + - `[SystemTopicName ]`: Name of the system topic. + - `[TopicName ]`: Name of the domain topic. + - `[TopicTypeName ]`: Name of the topic type. + - `[VerifiedPartnerName ]`: Name of the verified partner. + +## RELATED LINKS + diff --git a/swaggerci/eventgrid/docs/Get-AzEventGridPartnerTopicEventSubscriptionFullUrl.md b/swaggerci/eventgrid/docs/Get-AzEventGridPartnerTopicEventSubscriptionFullUrl.md new file mode 100644 index 000000000000..9f84bce4a14d --- /dev/null +++ b/swaggerci/eventgrid/docs/Get-AzEventGridPartnerTopicEventSubscriptionFullUrl.md @@ -0,0 +1,244 @@ +--- +external help file: +Module Name: Az.EventGrid +online version: https://docs.microsoft.com/en-us/powershell/module/az.eventgrid/get-azeventgridpartnertopiceventsubscriptionfullurl +schema: 2.0.0 +--- + +# Get-AzEventGridPartnerTopicEventSubscriptionFullUrl + +## SYNOPSIS +Get the full endpoint URL for an event subscription of a partner topic. + +## SYNTAX + +### Get (Default) +``` +Get-AzEventGridPartnerTopicEventSubscriptionFullUrl -EventSubscriptionName -PartnerTopicName + -ResourceGroupName [-SubscriptionId ] [-DefaultProfile ] [-PassThru] [-Confirm] + [-WhatIf] [] +``` + +### GetViaIdentity +``` +Get-AzEventGridPartnerTopicEventSubscriptionFullUrl -InputObject + [-DefaultProfile ] [-PassThru] [-Confirm] [-WhatIf] [] +``` + +## DESCRIPTION +Get the full endpoint URL for an event subscription of a partner topic. + +## EXAMPLES + +### Example 1: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +## PARAMETERS + +### -DefaultProfile +The credentials, account, tenant, and subscription used for communication with Azure. + +```yaml +Type: System.Management.Automation.PSObject +Parameter Sets: (All) +Aliases: AzureRMContext, AzureCredential + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -EventSubscriptionName +Name of the event subscription to be created. +Event subscription names must be between 3 and 100 characters in length and use alphanumeric letters only. + +```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.EventGrid.Models.IEventGridIdentity +Parameter Sets: GetViaIdentity +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: True (ByValue) +Accept wildcard characters: False +``` + +### -PartnerTopicName +Name of the partner topic. + +```yaml +Type: System.String +Parameter Sets: Get +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -PassThru +Returns true when the command succeeds + +```yaml +Type: System.Management.Automation.SwitchParameter +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -ResourceGroupName +The name of the resource group within the user's subscription. + +```yaml +Type: System.String +Parameter Sets: Get +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -SubscriptionId +Subscription credentials that uniquely identify a Microsoft Azure subscription. +The subscription ID forms part of the URI for every service call. + +```yaml +Type: System.String[] +Parameter Sets: Get +Aliases: + +Required: False +Position: Named +Default value: (Get-AzContext).Subscription.Id +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -Confirm +Prompts you for confirmation before running the cmdlet. + +```yaml +Type: System.Management.Automation.SwitchParameter +Parameter Sets: (All) +Aliases: cf + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -WhatIf +Shows what would happen if the cmdlet runs. +The cmdlet is not run. + +```yaml +Type: System.Management.Automation.SwitchParameter +Parameter Sets: (All) +Aliases: wi + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### CommonParameters +This cmdlet supports the common parameters: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutVariable, -OutBuffer, -PipelineVariable, -Verbose, -WarningAction, and -WarningVariable. For more information, see [about_CommonParameters](http://go.microsoft.com/fwlink/?LinkID=113216). + +## INPUTS + +### Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.IEventGridIdentity + +## OUTPUTS + +### System.String + +## NOTES + +ALIASES + +COMPLEX PARAMETER PROPERTIES + +To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. + + +INPUTOBJECT : Identity Parameter + - `[ChannelName ]`: Name of the channel. + - `[DomainName ]`: Name of the domain. + - `[DomainTopicName ]`: Name of the topic. + - `[EventChannelName ]`: Name of the event channel. + - `[EventSubscriptionName ]`: Name of the event subscription. + - `[Id ]`: Resource identity path + - `[Location ]`: Name of the location. + - `[ParentName ]`: The name of the parent resource (namely, either, the topic name, domain name, or partner namespace name). + - `[ParentType ]`: The type of the parent resource. This can be either \'topics\', \'domains\', or \'partnerNamespaces\'. + - `[PartnerDestinationName ]`: Name of the partner destination. + - `[PartnerNamespaceName ]`: Name of the partner namespace. + - `[PartnerRegistrationName ]`: Name of the partner registration. + - `[PartnerTopicName ]`: Name of the partner topic. + - `[PrivateEndpointConnectionName ]`: The name of the private endpoint connection connection. + - `[PrivateLinkResourceName ]`: The name of private link resource. + - `[ProviderNamespace ]`: Namespace of the provider of the topic. + - `[ResourceGroupName ]`: The name of the resource group within the partners subscription. + - `[ResourceName ]`: Name of the resource. + - `[ResourceTypeName ]`: Name of the resource type. + - `[Scope ]`: The scope of the event subscription. The scope can be a subscription, or a resource group, or a top level resource belonging to a resource provider namespace, or an EventGrid topic. For example, use '/subscriptions/{subscriptionId}/' for a subscription, '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}' for a resource group, and '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}' for a resource, and '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.EventGrid/topics/{topicName}' for an EventGrid topic. + - `[SubscriptionId ]`: Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription ID forms part of the URI for every service call. + - `[SystemTopicName ]`: Name of the system topic. + - `[TopicName ]`: Name of the domain topic. + - `[TopicTypeName ]`: Name of the topic type. + - `[VerifiedPartnerName ]`: Name of the verified partner. + +## RELATED LINKS + diff --git a/swaggerci/eventgrid/docs/Get-AzEventGridPrivateEndpointConnection.md b/swaggerci/eventgrid/docs/Get-AzEventGridPrivateEndpointConnection.md new file mode 100644 index 000000000000..db94b858a231 --- /dev/null +++ b/swaggerci/eventgrid/docs/Get-AzEventGridPrivateEndpointConnection.md @@ -0,0 +1,272 @@ +--- +external help file: +Module Name: Az.EventGrid +online version: https://docs.microsoft.com/en-us/powershell/module/az.eventgrid/get-azeventgridprivateendpointconnection +schema: 2.0.0 +--- + +# Get-AzEventGridPrivateEndpointConnection + +## SYNOPSIS +Get a specific private endpoint connection under a topic, domain, or partner namespace. + +## SYNTAX + +### List (Default) +``` +Get-AzEventGridPrivateEndpointConnection -ParentName -ParentType + -ResourceGroupName [-SubscriptionId ] [-Filter ] [-Top ] + [-DefaultProfile ] [-PassThru] [] +``` + +### Get +``` +Get-AzEventGridPrivateEndpointConnection -Name -ParentName -ParentType + -ResourceGroupName [-SubscriptionId ] [-DefaultProfile ] [-PassThru] + [] +``` + +### GetViaIdentity +``` +Get-AzEventGridPrivateEndpointConnection -InputObject [-DefaultProfile ] + [-PassThru] [] +``` + +## DESCRIPTION +Get a specific private endpoint connection under a topic, domain, or partner namespace. + +## EXAMPLES + +### Example 1: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +## PARAMETERS + +### -DefaultProfile +The credentials, account, tenant, and subscription used for communication with Azure. + +```yaml +Type: System.Management.Automation.PSObject +Parameter Sets: (All) +Aliases: AzureRMContext, AzureCredential + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -Filter +The query used to filter the search results using OData syntax. +Filtering is permitted on the 'name' property only and with limited number of OData operations. +These operations are: the 'contains' function as well as the following logical operations: not, and, or, eq (for equal), and ne (for not equal). +No arithmetic operations are supported. +The following is a valid filter example: $filter=contains(namE, 'PATTERN') and name ne 'PATTERN-1'. +The following is not a valid filter example: $filter=location eq 'westus'. + +```yaml +Type: System.String +Parameter Sets: List +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -InputObject +Identity Parameter +To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + +```yaml +Type: Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.IEventGridIdentity +Parameter Sets: GetViaIdentity +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: True (ByValue) +Accept wildcard characters: False +``` + +### -Name +The name of the private endpoint connection connection. + +```yaml +Type: System.String +Parameter Sets: Get +Aliases: PrivateEndpointConnectionName + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -ParentName +The name of the parent resource (namely, either, the topic name, domain name, or partner namespace name). + +```yaml +Type: System.String +Parameter Sets: Get, List +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -ParentType +The type of the parent resource. +This can be either \'topics\', \'domains\', or \'partnerNamespaces\'. + +```yaml +Type: Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.ParentType +Parameter Sets: Get, List +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -PassThru +Returns true when the command succeeds + +```yaml +Type: System.Management.Automation.SwitchParameter +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -ResourceGroupName +The name of the resource group within the user's subscription. + +```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 +Subscription credentials that uniquely identify a Microsoft Azure subscription. +The subscription ID forms part of the URI for every service call. + +```yaml +Type: System.String[] +Parameter Sets: Get, List +Aliases: + +Required: False +Position: Named +Default value: (Get-AzContext).Subscription.Id +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -Top +The number of results to return per page for the list operation. +Valid range for top parameter is 1 to 100. +If not specified, the default number of results to be returned is 20 items per page. + +```yaml +Type: System.Int32 +Parameter Sets: List +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### CommonParameters +This cmdlet supports the common parameters: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutVariable, -OutBuffer, -PipelineVariable, -Verbose, -WarningAction, and -WarningVariable. For more information, see [about_CommonParameters](http://go.microsoft.com/fwlink/?LinkID=113216). + +## INPUTS + +### Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.IEventGridIdentity + +## OUTPUTS + +### Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPrivateEndpointConnection + +## NOTES + +ALIASES + +COMPLEX PARAMETER PROPERTIES + +To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. + + +INPUTOBJECT : Identity Parameter + - `[ChannelName ]`: Name of the channel. + - `[DomainName ]`: Name of the domain. + - `[DomainTopicName ]`: Name of the topic. + - `[EventChannelName ]`: Name of the event channel. + - `[EventSubscriptionName ]`: Name of the event subscription. + - `[Id ]`: Resource identity path + - `[Location ]`: Name of the location. + - `[ParentName ]`: The name of the parent resource (namely, either, the topic name, domain name, or partner namespace name). + - `[ParentType ]`: The type of the parent resource. This can be either \'topics\', \'domains\', or \'partnerNamespaces\'. + - `[PartnerDestinationName ]`: Name of the partner destination. + - `[PartnerNamespaceName ]`: Name of the partner namespace. + - `[PartnerRegistrationName ]`: Name of the partner registration. + - `[PartnerTopicName ]`: Name of the partner topic. + - `[PrivateEndpointConnectionName ]`: The name of the private endpoint connection connection. + - `[PrivateLinkResourceName ]`: The name of private link resource. + - `[ProviderNamespace ]`: Namespace of the provider of the topic. + - `[ResourceGroupName ]`: The name of the resource group within the partners subscription. + - `[ResourceName ]`: Name of the resource. + - `[ResourceTypeName ]`: Name of the resource type. + - `[Scope ]`: The scope of the event subscription. The scope can be a subscription, or a resource group, or a top level resource belonging to a resource provider namespace, or an EventGrid topic. For example, use '/subscriptions/{subscriptionId}/' for a subscription, '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}' for a resource group, and '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}' for a resource, and '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.EventGrid/topics/{topicName}' for an EventGrid topic. + - `[SubscriptionId ]`: Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription ID forms part of the URI for every service call. + - `[SystemTopicName ]`: Name of the system topic. + - `[TopicName ]`: Name of the domain topic. + - `[TopicTypeName ]`: Name of the topic type. + - `[VerifiedPartnerName ]`: Name of the verified partner. + +## RELATED LINKS + diff --git a/swaggerci/eventgrid/docs/Get-AzEventGridPrivateLinkResource.md b/swaggerci/eventgrid/docs/Get-AzEventGridPrivateLinkResource.md new file mode 100644 index 000000000000..1009eaf5d11c --- /dev/null +++ b/swaggerci/eventgrid/docs/Get-AzEventGridPrivateLinkResource.md @@ -0,0 +1,272 @@ +--- +external help file: +Module Name: Az.EventGrid +online version: https://docs.microsoft.com/en-us/powershell/module/az.eventgrid/get-azeventgridprivatelinkresource +schema: 2.0.0 +--- + +# Get-AzEventGridPrivateLinkResource + +## SYNOPSIS +Get properties of a private link resource. + +## SYNTAX + +### List (Default) +``` +Get-AzEventGridPrivateLinkResource -ParentName -ParentType -ResourceGroupName + [-SubscriptionId ] [-Filter ] [-Top ] [-DefaultProfile ] [-PassThru] + [] +``` + +### Get +``` +Get-AzEventGridPrivateLinkResource -Name -ParentName -ParentType + -ResourceGroupName [-SubscriptionId ] [-DefaultProfile ] [-PassThru] + [] +``` + +### GetViaIdentity +``` +Get-AzEventGridPrivateLinkResource -InputObject [-DefaultProfile ] [-PassThru] + [] +``` + +## DESCRIPTION +Get properties of a private link resource. + +## EXAMPLES + +### Example 1: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +## PARAMETERS + +### -DefaultProfile +The credentials, account, tenant, and subscription used for communication with Azure. + +```yaml +Type: System.Management.Automation.PSObject +Parameter Sets: (All) +Aliases: AzureRMContext, AzureCredential + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -Filter +The query used to filter the search results using OData syntax. +Filtering is permitted on the 'name' property only and with limited number of OData operations. +These operations are: the 'contains' function as well as the following logical operations: not, and, or, eq (for equal), and ne (for not equal). +No arithmetic operations are supported. +The following is a valid filter example: $filter=contains(namE, 'PATTERN') and name ne 'PATTERN-1'. +The following is not a valid filter example: $filter=location eq 'westus'. + +```yaml +Type: System.String +Parameter Sets: List +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -InputObject +Identity Parameter +To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + +```yaml +Type: Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.IEventGridIdentity +Parameter Sets: GetViaIdentity +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: True (ByValue) +Accept wildcard characters: False +``` + +### -Name +The name of private link resource. + +```yaml +Type: System.String +Parameter Sets: Get +Aliases: PrivateLinkResourceName + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -ParentName +The name of the parent resource (namely, either, the topic name, domain name, or partner namespace name). + +```yaml +Type: System.String +Parameter Sets: Get, List +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -ParentType +The type of the parent resource. +This can be either \'topics\', \'domains\', or \'partnerNamespaces\'. + +```yaml +Type: System.String +Parameter Sets: Get, List +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -PassThru +Returns true when the command succeeds + +```yaml +Type: System.Management.Automation.SwitchParameter +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -ResourceGroupName +The name of the resource group within the user's subscription. + +```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 +Subscription credentials that uniquely identify a Microsoft Azure subscription. +The subscription ID forms part of the URI for every service call. + +```yaml +Type: System.String[] +Parameter Sets: Get, List +Aliases: + +Required: False +Position: Named +Default value: (Get-AzContext).Subscription.Id +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -Top +The number of results to return per page for the list operation. +Valid range for top parameter is 1 to 100. +If not specified, the default number of results to be returned is 20 items per page. + +```yaml +Type: System.Int32 +Parameter Sets: List +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### CommonParameters +This cmdlet supports the common parameters: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutVariable, -OutBuffer, -PipelineVariable, -Verbose, -WarningAction, and -WarningVariable. For more information, see [about_CommonParameters](http://go.microsoft.com/fwlink/?LinkID=113216). + +## INPUTS + +### Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.IEventGridIdentity + +## OUTPUTS + +### Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPrivateLinkResource + +## NOTES + +ALIASES + +COMPLEX PARAMETER PROPERTIES + +To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. + + +INPUTOBJECT : Identity Parameter + - `[ChannelName ]`: Name of the channel. + - `[DomainName ]`: Name of the domain. + - `[DomainTopicName ]`: Name of the topic. + - `[EventChannelName ]`: Name of the event channel. + - `[EventSubscriptionName ]`: Name of the event subscription. + - `[Id ]`: Resource identity path + - `[Location ]`: Name of the location. + - `[ParentName ]`: The name of the parent resource (namely, either, the topic name, domain name, or partner namespace name). + - `[ParentType ]`: The type of the parent resource. This can be either \'topics\', \'domains\', or \'partnerNamespaces\'. + - `[PartnerDestinationName ]`: Name of the partner destination. + - `[PartnerNamespaceName ]`: Name of the partner namespace. + - `[PartnerRegistrationName ]`: Name of the partner registration. + - `[PartnerTopicName ]`: Name of the partner topic. + - `[PrivateEndpointConnectionName ]`: The name of the private endpoint connection connection. + - `[PrivateLinkResourceName ]`: The name of private link resource. + - `[ProviderNamespace ]`: Namespace of the provider of the topic. + - `[ResourceGroupName ]`: The name of the resource group within the partners subscription. + - `[ResourceName ]`: Name of the resource. + - `[ResourceTypeName ]`: Name of the resource type. + - `[Scope ]`: The scope of the event subscription. The scope can be a subscription, or a resource group, or a top level resource belonging to a resource provider namespace, or an EventGrid topic. For example, use '/subscriptions/{subscriptionId}/' for a subscription, '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}' for a resource group, and '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}' for a resource, and '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.EventGrid/topics/{topicName}' for an EventGrid topic. + - `[SubscriptionId ]`: Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription ID forms part of the URI for every service call. + - `[SystemTopicName ]`: Name of the system topic. + - `[TopicName ]`: Name of the domain topic. + - `[TopicTypeName ]`: Name of the topic type. + - `[VerifiedPartnerName ]`: Name of the verified partner. + +## RELATED LINKS + diff --git a/swaggerci/eventgrid/docs/Get-AzEventGridSystemTopic.md b/swaggerci/eventgrid/docs/Get-AzEventGridSystemTopic.md new file mode 100644 index 000000000000..c97c638a9960 --- /dev/null +++ b/swaggerci/eventgrid/docs/Get-AzEventGridSystemTopic.md @@ -0,0 +1,245 @@ +--- +external help file: +Module Name: Az.EventGrid +online version: https://docs.microsoft.com/en-us/powershell/module/az.eventgrid/get-azeventgridsystemtopic +schema: 2.0.0 +--- + +# Get-AzEventGridSystemTopic + +## SYNOPSIS +Get properties of a system topic. + +## SYNTAX + +### List (Default) +``` +Get-AzEventGridSystemTopic [-SubscriptionId ] [-Filter ] [-Top ] + [-DefaultProfile ] [-PassThru] [] +``` + +### Get +``` +Get-AzEventGridSystemTopic -Name -ResourceGroupName [-SubscriptionId ] + [-DefaultProfile ] [-PassThru] [] +``` + +### GetViaIdentity +``` +Get-AzEventGridSystemTopic -InputObject [-DefaultProfile ] [-PassThru] + [] +``` + +### List1 +``` +Get-AzEventGridSystemTopic -ResourceGroupName [-SubscriptionId ] [-Filter ] + [-Top ] [-DefaultProfile ] [-PassThru] [] +``` + +## DESCRIPTION +Get properties of a system topic. + +## EXAMPLES + +### Example 1: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +## PARAMETERS + +### -DefaultProfile +The credentials, account, tenant, and subscription used for communication with Azure. + +```yaml +Type: System.Management.Automation.PSObject +Parameter Sets: (All) +Aliases: AzureRMContext, AzureCredential + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -Filter +The query used to filter the search results using OData syntax. +Filtering is permitted on the 'name' property only and with limited number of OData operations. +These operations are: the 'contains' function as well as the following logical operations: not, and, or, eq (for equal), and ne (for not equal). +No arithmetic operations are supported. +The following is a valid filter example: $filter=contains(namE, 'PATTERN') and name ne 'PATTERN-1'. +The following is not a valid filter example: $filter=location eq 'westus'. + +```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.EventGrid.Models.IEventGridIdentity +Parameter Sets: GetViaIdentity +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: True (ByValue) +Accept wildcard characters: False +``` + +### -Name +Name of the system topic. + +```yaml +Type: System.String +Parameter Sets: Get +Aliases: SystemTopicName + +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 within the user's subscription. + +```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 +Subscription credentials that uniquely identify a Microsoft Azure subscription. +The subscription ID forms part of the URI for every service call. + +```yaml +Type: System.String[] +Parameter Sets: Get, List, List1 +Aliases: + +Required: False +Position: Named +Default value: (Get-AzContext).Subscription.Id +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -Top +The number of results to return per page for the list operation. +Valid range for top parameter is 1 to 100. +If not specified, the default number of results to be returned is 20 items per page. + +```yaml +Type: System.Int32 +Parameter Sets: List, List1 +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### CommonParameters +This cmdlet supports the common parameters: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutVariable, -OutBuffer, -PipelineVariable, -Verbose, -WarningAction, and -WarningVariable. For more information, see [about_CommonParameters](http://go.microsoft.com/fwlink/?LinkID=113216). + +## INPUTS + +### Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.IEventGridIdentity + +## OUTPUTS + +### Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ISystemTopic + +## 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 + - `[ChannelName ]`: Name of the channel. + - `[DomainName ]`: Name of the domain. + - `[DomainTopicName ]`: Name of the topic. + - `[EventChannelName ]`: Name of the event channel. + - `[EventSubscriptionName ]`: Name of the event subscription. + - `[Id ]`: Resource identity path + - `[Location ]`: Name of the location. + - `[ParentName ]`: The name of the parent resource (namely, either, the topic name, domain name, or partner namespace name). + - `[ParentType ]`: The type of the parent resource. This can be either \'topics\', \'domains\', or \'partnerNamespaces\'. + - `[PartnerDestinationName ]`: Name of the partner destination. + - `[PartnerNamespaceName ]`: Name of the partner namespace. + - `[PartnerRegistrationName ]`: Name of the partner registration. + - `[PartnerTopicName ]`: Name of the partner topic. + - `[PrivateEndpointConnectionName ]`: The name of the private endpoint connection connection. + - `[PrivateLinkResourceName ]`: The name of private link resource. + - `[ProviderNamespace ]`: Namespace of the provider of the topic. + - `[ResourceGroupName ]`: The name of the resource group within the partners subscription. + - `[ResourceName ]`: Name of the resource. + - `[ResourceTypeName ]`: Name of the resource type. + - `[Scope ]`: The scope of the event subscription. The scope can be a subscription, or a resource group, or a top level resource belonging to a resource provider namespace, or an EventGrid topic. For example, use '/subscriptions/{subscriptionId}/' for a subscription, '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}' for a resource group, and '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}' for a resource, and '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.EventGrid/topics/{topicName}' for an EventGrid topic. + - `[SubscriptionId ]`: Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription ID forms part of the URI for every service call. + - `[SystemTopicName ]`: Name of the system topic. + - `[TopicName ]`: Name of the domain topic. + - `[TopicTypeName ]`: Name of the topic type. + - `[VerifiedPartnerName ]`: Name of the verified partner. + +## RELATED LINKS + diff --git a/swaggerci/eventgrid/docs/Get-AzEventGridSystemTopicEventSubscription.md b/swaggerci/eventgrid/docs/Get-AzEventGridSystemTopicEventSubscription.md new file mode 100644 index 000000000000..1ca08a45741d --- /dev/null +++ b/swaggerci/eventgrid/docs/Get-AzEventGridSystemTopicEventSubscription.md @@ -0,0 +1,257 @@ +--- +external help file: +Module Name: Az.EventGrid +online version: https://docs.microsoft.com/en-us/powershell/module/az.eventgrid/get-azeventgridsystemtopiceventsubscription +schema: 2.0.0 +--- + +# Get-AzEventGridSystemTopicEventSubscription + +## SYNOPSIS +Get an event subscription. + +## SYNTAX + +### List (Default) +``` +Get-AzEventGridSystemTopicEventSubscription -ResourceGroupName -SystemTopicName + [-SubscriptionId ] [-Filter ] [-Top ] [-DefaultProfile ] [-PassThru] + [] +``` + +### Get +``` +Get-AzEventGridSystemTopicEventSubscription -EventSubscriptionName -ResourceGroupName + -SystemTopicName [-SubscriptionId ] [-DefaultProfile ] [-PassThru] + [] +``` + +### GetViaIdentity +``` +Get-AzEventGridSystemTopicEventSubscription -InputObject [-DefaultProfile ] + [-PassThru] [] +``` + +## DESCRIPTION +Get an event subscription. + +## EXAMPLES + +### Example 1: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +## PARAMETERS + +### -DefaultProfile +The credentials, account, tenant, and subscription used for communication with Azure. + +```yaml +Type: System.Management.Automation.PSObject +Parameter Sets: (All) +Aliases: AzureRMContext, AzureCredential + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -EventSubscriptionName +Name of the event subscription to be created. +Event subscription names must be between 3 and 100 characters in length and use alphanumeric letters only. + +```yaml +Type: System.String +Parameter Sets: Get +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -Filter +The query used to filter the search results using OData syntax. +Filtering is permitted on the 'name' property only and with limited number of OData operations. +These operations are: the 'contains' function as well as the following logical operations: not, and, or, eq (for equal), and ne (for not equal). +No arithmetic operations are supported. +The following is a valid filter example: $filter=contains(namE, 'PATTERN') and name ne 'PATTERN-1'. +The following is not a valid filter example: $filter=location eq 'westus'. + +```yaml +Type: System.String +Parameter Sets: List +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -InputObject +Identity Parameter +To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + +```yaml +Type: Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.IEventGridIdentity +Parameter Sets: GetViaIdentity +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: True (ByValue) +Accept wildcard characters: False +``` + +### -PassThru +Returns true when the command succeeds + +```yaml +Type: System.Management.Automation.SwitchParameter +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -ResourceGroupName +The name of the resource group within the user's subscription. + +```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 +Subscription credentials that uniquely identify a Microsoft Azure subscription. +The subscription ID forms part of the URI for every service call. + +```yaml +Type: System.String[] +Parameter Sets: Get, List +Aliases: + +Required: False +Position: Named +Default value: (Get-AzContext).Subscription.Id +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -SystemTopicName +Name of the system topic. + +```yaml +Type: System.String +Parameter Sets: Get, List +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -Top +The number of results to return per page for the list operation. +Valid range for top parameter is 1 to 100. +If not specified, the default number of results to be returned is 20 items per page. + +```yaml +Type: System.Int32 +Parameter Sets: List +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### CommonParameters +This cmdlet supports the common parameters: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutVariable, -OutBuffer, -PipelineVariable, -Verbose, -WarningAction, and -WarningVariable. For more information, see [about_CommonParameters](http://go.microsoft.com/fwlink/?LinkID=113216). + +## INPUTS + +### Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.IEventGridIdentity + +## OUTPUTS + +### Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscription + +## 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 + - `[ChannelName ]`: Name of the channel. + - `[DomainName ]`: Name of the domain. + - `[DomainTopicName ]`: Name of the topic. + - `[EventChannelName ]`: Name of the event channel. + - `[EventSubscriptionName ]`: Name of the event subscription. + - `[Id ]`: Resource identity path + - `[Location ]`: Name of the location. + - `[ParentName ]`: The name of the parent resource (namely, either, the topic name, domain name, or partner namespace name). + - `[ParentType ]`: The type of the parent resource. This can be either \'topics\', \'domains\', or \'partnerNamespaces\'. + - `[PartnerDestinationName ]`: Name of the partner destination. + - `[PartnerNamespaceName ]`: Name of the partner namespace. + - `[PartnerRegistrationName ]`: Name of the partner registration. + - `[PartnerTopicName ]`: Name of the partner topic. + - `[PrivateEndpointConnectionName ]`: The name of the private endpoint connection connection. + - `[PrivateLinkResourceName ]`: The name of private link resource. + - `[ProviderNamespace ]`: Namespace of the provider of the topic. + - `[ResourceGroupName ]`: The name of the resource group within the partners subscription. + - `[ResourceName ]`: Name of the resource. + - `[ResourceTypeName ]`: Name of the resource type. + - `[Scope ]`: The scope of the event subscription. The scope can be a subscription, or a resource group, or a top level resource belonging to a resource provider namespace, or an EventGrid topic. For example, use '/subscriptions/{subscriptionId}/' for a subscription, '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}' for a resource group, and '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}' for a resource, and '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.EventGrid/topics/{topicName}' for an EventGrid topic. + - `[SubscriptionId ]`: Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription ID forms part of the URI for every service call. + - `[SystemTopicName ]`: Name of the system topic. + - `[TopicName ]`: Name of the domain topic. + - `[TopicTypeName ]`: Name of the topic type. + - `[VerifiedPartnerName ]`: Name of the verified partner. + +## RELATED LINKS + diff --git a/swaggerci/eventgrid/docs/Get-AzEventGridSystemTopicEventSubscriptionDeliveryAttribute.md b/swaggerci/eventgrid/docs/Get-AzEventGridSystemTopicEventSubscriptionDeliveryAttribute.md new file mode 100644 index 000000000000..59771a471197 --- /dev/null +++ b/swaggerci/eventgrid/docs/Get-AzEventGridSystemTopicEventSubscriptionDeliveryAttribute.md @@ -0,0 +1,244 @@ +--- +external help file: +Module Name: Az.EventGrid +online version: https://docs.microsoft.com/en-us/powershell/module/az.eventgrid/get-azeventgridsystemtopiceventsubscriptiondeliveryattribute +schema: 2.0.0 +--- + +# Get-AzEventGridSystemTopicEventSubscriptionDeliveryAttribute + +## SYNOPSIS +Get all delivery attributes for an event subscription. + +## SYNTAX + +### Get (Default) +``` +Get-AzEventGridSystemTopicEventSubscriptionDeliveryAttribute -EventSubscriptionName + -ResourceGroupName -SystemTopicName [-SubscriptionId ] + [-DefaultProfile ] [-PassThru] [-Confirm] [-WhatIf] [] +``` + +### GetViaIdentity +``` +Get-AzEventGridSystemTopicEventSubscriptionDeliveryAttribute -InputObject + [-DefaultProfile ] [-PassThru] [-Confirm] [-WhatIf] [] +``` + +## DESCRIPTION +Get all delivery attributes for an event subscription. + +## EXAMPLES + +### Example 1: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +## PARAMETERS + +### -DefaultProfile +The credentials, account, tenant, and subscription used for communication with Azure. + +```yaml +Type: System.Management.Automation.PSObject +Parameter Sets: (All) +Aliases: AzureRMContext, AzureCredential + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -EventSubscriptionName +Name of the event subscription to be created. +Event subscription names must be between 3 and 100 characters in length and use alphanumeric letters only. + +```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.EventGrid.Models.IEventGridIdentity +Parameter Sets: GetViaIdentity +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: True (ByValue) +Accept wildcard characters: False +``` + +### -PassThru +Returns true when the command succeeds + +```yaml +Type: System.Management.Automation.SwitchParameter +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -ResourceGroupName +The name of the resource group within the user's subscription. + +```yaml +Type: System.String +Parameter Sets: Get +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -SubscriptionId +Subscription credentials that uniquely identify a Microsoft Azure subscription. +The subscription ID forms part of the URI for every service call. + +```yaml +Type: System.String[] +Parameter Sets: Get +Aliases: + +Required: False +Position: Named +Default value: (Get-AzContext).Subscription.Id +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -SystemTopicName +Name of the system topic. + +```yaml +Type: System.String +Parameter Sets: Get +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.EventGrid.Models.IEventGridIdentity + +## OUTPUTS + +### Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDeliveryAttributeMapping + +## 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 + - `[ChannelName ]`: Name of the channel. + - `[DomainName ]`: Name of the domain. + - `[DomainTopicName ]`: Name of the topic. + - `[EventChannelName ]`: Name of the event channel. + - `[EventSubscriptionName ]`: Name of the event subscription. + - `[Id ]`: Resource identity path + - `[Location ]`: Name of the location. + - `[ParentName ]`: The name of the parent resource (namely, either, the topic name, domain name, or partner namespace name). + - `[ParentType ]`: The type of the parent resource. This can be either \'topics\', \'domains\', or \'partnerNamespaces\'. + - `[PartnerDestinationName ]`: Name of the partner destination. + - `[PartnerNamespaceName ]`: Name of the partner namespace. + - `[PartnerRegistrationName ]`: Name of the partner registration. + - `[PartnerTopicName ]`: Name of the partner topic. + - `[PrivateEndpointConnectionName ]`: The name of the private endpoint connection connection. + - `[PrivateLinkResourceName ]`: The name of private link resource. + - `[ProviderNamespace ]`: Namespace of the provider of the topic. + - `[ResourceGroupName ]`: The name of the resource group within the partners subscription. + - `[ResourceName ]`: Name of the resource. + - `[ResourceTypeName ]`: Name of the resource type. + - `[Scope ]`: The scope of the event subscription. The scope can be a subscription, or a resource group, or a top level resource belonging to a resource provider namespace, or an EventGrid topic. For example, use '/subscriptions/{subscriptionId}/' for a subscription, '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}' for a resource group, and '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}' for a resource, and '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.EventGrid/topics/{topicName}' for an EventGrid topic. + - `[SubscriptionId ]`: Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription ID forms part of the URI for every service call. + - `[SystemTopicName ]`: Name of the system topic. + - `[TopicName ]`: Name of the domain topic. + - `[TopicTypeName ]`: Name of the topic type. + - `[VerifiedPartnerName ]`: Name of the verified partner. + +## RELATED LINKS + diff --git a/swaggerci/eventgrid/docs/Get-AzEventGridSystemTopicEventSubscriptionFullUrl.md b/swaggerci/eventgrid/docs/Get-AzEventGridSystemTopicEventSubscriptionFullUrl.md new file mode 100644 index 000000000000..662a1ae5f7a4 --- /dev/null +++ b/swaggerci/eventgrid/docs/Get-AzEventGridSystemTopicEventSubscriptionFullUrl.md @@ -0,0 +1,244 @@ +--- +external help file: +Module Name: Az.EventGrid +online version: https://docs.microsoft.com/en-us/powershell/module/az.eventgrid/get-azeventgridsystemtopiceventsubscriptionfullurl +schema: 2.0.0 +--- + +# Get-AzEventGridSystemTopicEventSubscriptionFullUrl + +## SYNOPSIS +Get the full endpoint URL for an event subscription of a system topic. + +## SYNTAX + +### Get (Default) +``` +Get-AzEventGridSystemTopicEventSubscriptionFullUrl -EventSubscriptionName -ResourceGroupName + -SystemTopicName [-SubscriptionId ] [-DefaultProfile ] [-PassThru] [-Confirm] + [-WhatIf] [] +``` + +### GetViaIdentity +``` +Get-AzEventGridSystemTopicEventSubscriptionFullUrl -InputObject + [-DefaultProfile ] [-PassThru] [-Confirm] [-WhatIf] [] +``` + +## DESCRIPTION +Get the full endpoint URL for an event subscription of a system topic. + +## EXAMPLES + +### Example 1: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +## PARAMETERS + +### -DefaultProfile +The credentials, account, tenant, and subscription used for communication with Azure. + +```yaml +Type: System.Management.Automation.PSObject +Parameter Sets: (All) +Aliases: AzureRMContext, AzureCredential + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -EventSubscriptionName +Name of the event subscription to be created. +Event subscription names must be between 3 and 100 characters in length and use alphanumeric letters only. + +```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.EventGrid.Models.IEventGridIdentity +Parameter Sets: GetViaIdentity +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: True (ByValue) +Accept wildcard characters: False +``` + +### -PassThru +Returns true when the command succeeds + +```yaml +Type: System.Management.Automation.SwitchParameter +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -ResourceGroupName +The name of the resource group within the user's subscription. + +```yaml +Type: System.String +Parameter Sets: Get +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -SubscriptionId +Subscription credentials that uniquely identify a Microsoft Azure subscription. +The subscription ID forms part of the URI for every service call. + +```yaml +Type: System.String[] +Parameter Sets: Get +Aliases: + +Required: False +Position: Named +Default value: (Get-AzContext).Subscription.Id +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -SystemTopicName +Name of the system topic. + +```yaml +Type: System.String +Parameter Sets: Get +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.EventGrid.Models.IEventGridIdentity + +## OUTPUTS + +### System.String + +## NOTES + +ALIASES + +COMPLEX PARAMETER PROPERTIES + +To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. + + +INPUTOBJECT : Identity Parameter + - `[ChannelName ]`: Name of the channel. + - `[DomainName ]`: Name of the domain. + - `[DomainTopicName ]`: Name of the topic. + - `[EventChannelName ]`: Name of the event channel. + - `[EventSubscriptionName ]`: Name of the event subscription. + - `[Id ]`: Resource identity path + - `[Location ]`: Name of the location. + - `[ParentName ]`: The name of the parent resource (namely, either, the topic name, domain name, or partner namespace name). + - `[ParentType ]`: The type of the parent resource. This can be either \'topics\', \'domains\', or \'partnerNamespaces\'. + - `[PartnerDestinationName ]`: Name of the partner destination. + - `[PartnerNamespaceName ]`: Name of the partner namespace. + - `[PartnerRegistrationName ]`: Name of the partner registration. + - `[PartnerTopicName ]`: Name of the partner topic. + - `[PrivateEndpointConnectionName ]`: The name of the private endpoint connection connection. + - `[PrivateLinkResourceName ]`: The name of private link resource. + - `[ProviderNamespace ]`: Namespace of the provider of the topic. + - `[ResourceGroupName ]`: The name of the resource group within the partners subscription. + - `[ResourceName ]`: Name of the resource. + - `[ResourceTypeName ]`: Name of the resource type. + - `[Scope ]`: The scope of the event subscription. The scope can be a subscription, or a resource group, or a top level resource belonging to a resource provider namespace, or an EventGrid topic. For example, use '/subscriptions/{subscriptionId}/' for a subscription, '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}' for a resource group, and '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}' for a resource, and '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.EventGrid/topics/{topicName}' for an EventGrid topic. + - `[SubscriptionId ]`: Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription ID forms part of the URI for every service call. + - `[SystemTopicName ]`: Name of the system topic. + - `[TopicName ]`: Name of the domain topic. + - `[TopicTypeName ]`: Name of the topic type. + - `[VerifiedPartnerName ]`: Name of the verified partner. + +## RELATED LINKS + diff --git a/swaggerci/eventgrid/docs/Get-AzEventGridTopic.md b/swaggerci/eventgrid/docs/Get-AzEventGridTopic.md new file mode 100644 index 000000000000..d6c445fd06ff --- /dev/null +++ b/swaggerci/eventgrid/docs/Get-AzEventGridTopic.md @@ -0,0 +1,245 @@ +--- +external help file: +Module Name: Az.EventGrid +online version: https://docs.microsoft.com/en-us/powershell/module/az.eventgrid/get-azeventgridtopic +schema: 2.0.0 +--- + +# Get-AzEventGridTopic + +## SYNOPSIS +Get properties of a topic. + +## SYNTAX + +### List (Default) +``` +Get-AzEventGridTopic [-SubscriptionId ] [-Filter ] [-Top ] + [-DefaultProfile ] [-PassThru] [] +``` + +### Get +``` +Get-AzEventGridTopic -Name -ResourceGroupName [-SubscriptionId ] + [-DefaultProfile ] [-PassThru] [] +``` + +### GetViaIdentity +``` +Get-AzEventGridTopic -InputObject [-DefaultProfile ] [-PassThru] + [] +``` + +### List1 +``` +Get-AzEventGridTopic -ResourceGroupName [-SubscriptionId ] [-Filter ] + [-Top ] [-DefaultProfile ] [-PassThru] [] +``` + +## DESCRIPTION +Get properties of a topic. + +## EXAMPLES + +### Example 1: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +## PARAMETERS + +### -DefaultProfile +The credentials, account, tenant, and subscription used for communication with Azure. + +```yaml +Type: System.Management.Automation.PSObject +Parameter Sets: (All) +Aliases: AzureRMContext, AzureCredential + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -Filter +The query used to filter the search results using OData syntax. +Filtering is permitted on the 'name' property only and with limited number of OData operations. +These operations are: the 'contains' function as well as the following logical operations: not, and, or, eq (for equal), and ne (for not equal). +No arithmetic operations are supported. +The following is a valid filter example: $filter=contains(namE, 'PATTERN') and name ne 'PATTERN-1'. +The following is not a valid filter example: $filter=location eq 'westus'. + +```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.EventGrid.Models.IEventGridIdentity +Parameter Sets: GetViaIdentity +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: True (ByValue) +Accept wildcard characters: False +``` + +### -Name +Name of the topic. + +```yaml +Type: System.String +Parameter Sets: Get +Aliases: TopicName + +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 within the user's subscription. + +```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 +Subscription credentials that uniquely identify a Microsoft Azure subscription. +The subscription ID forms part of the URI for every service call. + +```yaml +Type: System.String[] +Parameter Sets: Get, List, List1 +Aliases: + +Required: False +Position: Named +Default value: (Get-AzContext).Subscription.Id +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -Top +The number of results to return per page for the list operation. +Valid range for top parameter is 1 to 100. +If not specified, the default number of results to be returned is 20 items per page. + +```yaml +Type: System.Int32 +Parameter Sets: List, List1 +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### CommonParameters +This cmdlet supports the common parameters: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutVariable, -OutBuffer, -PipelineVariable, -Verbose, -WarningAction, and -WarningVariable. For more information, see [about_CommonParameters](http://go.microsoft.com/fwlink/?LinkID=113216). + +## INPUTS + +### Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.IEventGridIdentity + +## OUTPUTS + +### Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITopic + +## 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 + - `[ChannelName ]`: Name of the channel. + - `[DomainName ]`: Name of the domain. + - `[DomainTopicName ]`: Name of the topic. + - `[EventChannelName ]`: Name of the event channel. + - `[EventSubscriptionName ]`: Name of the event subscription. + - `[Id ]`: Resource identity path + - `[Location ]`: Name of the location. + - `[ParentName ]`: The name of the parent resource (namely, either, the topic name, domain name, or partner namespace name). + - `[ParentType ]`: The type of the parent resource. This can be either \'topics\', \'domains\', or \'partnerNamespaces\'. + - `[PartnerDestinationName ]`: Name of the partner destination. + - `[PartnerNamespaceName ]`: Name of the partner namespace. + - `[PartnerRegistrationName ]`: Name of the partner registration. + - `[PartnerTopicName ]`: Name of the partner topic. + - `[PrivateEndpointConnectionName ]`: The name of the private endpoint connection connection. + - `[PrivateLinkResourceName ]`: The name of private link resource. + - `[ProviderNamespace ]`: Namespace of the provider of the topic. + - `[ResourceGroupName ]`: The name of the resource group within the partners subscription. + - `[ResourceName ]`: Name of the resource. + - `[ResourceTypeName ]`: Name of the resource type. + - `[Scope ]`: The scope of the event subscription. The scope can be a subscription, or a resource group, or a top level resource belonging to a resource provider namespace, or an EventGrid topic. For example, use '/subscriptions/{subscriptionId}/' for a subscription, '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}' for a resource group, and '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}' for a resource, and '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.EventGrid/topics/{topicName}' for an EventGrid topic. + - `[SubscriptionId ]`: Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription ID forms part of the URI for every service call. + - `[SystemTopicName ]`: Name of the system topic. + - `[TopicName ]`: Name of the domain topic. + - `[TopicTypeName ]`: Name of the topic type. + - `[VerifiedPartnerName ]`: Name of the verified partner. + +## RELATED LINKS + diff --git a/swaggerci/eventgrid/docs/Get-AzEventGridTopicEventSubscription.md b/swaggerci/eventgrid/docs/Get-AzEventGridTopicEventSubscription.md new file mode 100644 index 000000000000..4644d3e5f791 --- /dev/null +++ b/swaggerci/eventgrid/docs/Get-AzEventGridTopicEventSubscription.md @@ -0,0 +1,219 @@ +--- +external help file: +Module Name: Az.EventGrid +online version: https://docs.microsoft.com/en-us/powershell/module/az.eventgrid/get-azeventgridtopiceventsubscription +schema: 2.0.0 +--- + +# Get-AzEventGridTopicEventSubscription + +## SYNOPSIS +Get properties of an event subscription of a topic. + +## SYNTAX + +### List (Default) +``` +Get-AzEventGridTopicEventSubscription -ResourceGroupName -TopicName + [-SubscriptionId ] [-DefaultProfile ] [-PassThru] [] +``` + +### Get +``` +Get-AzEventGridTopicEventSubscription -EventSubscriptionName -ResourceGroupName + -TopicName [-SubscriptionId ] [-DefaultProfile ] [-PassThru] + [] +``` + +### GetViaIdentity +``` +Get-AzEventGridTopicEventSubscription -InputObject [-DefaultProfile ] + [-PassThru] [] +``` + +## DESCRIPTION +Get properties of an event subscription of a topic. + +## EXAMPLES + +### Example 1: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +## PARAMETERS + +### -DefaultProfile +The credentials, account, tenant, and subscription used for communication with Azure. + +```yaml +Type: System.Management.Automation.PSObject +Parameter Sets: (All) +Aliases: AzureRMContext, AzureCredential + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -EventSubscriptionName +Name of the event subscription to be found. +Event subscription names must be between 3 and 100 characters in length and use alphanumeric letters only. + +```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.EventGrid.Models.IEventGridIdentity +Parameter Sets: GetViaIdentity +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: True (ByValue) +Accept wildcard characters: False +``` + +### -PassThru +Returns true when the command succeeds + +```yaml +Type: System.Management.Automation.SwitchParameter +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -ResourceGroupName +The name of the resource group within the user's subscription. + +```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 +Subscription credentials that uniquely identify a Microsoft Azure subscription. +The subscription ID forms part of the URI for every service call. + +```yaml +Type: System.String[] +Parameter Sets: Get, List +Aliases: + +Required: False +Position: Named +Default value: (Get-AzContext).Subscription.Id +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -TopicName +Name of the partner topic. + +```yaml +Type: System.String +Parameter Sets: Get, List +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.EventGrid.Models.IEventGridIdentity + +## OUTPUTS + +### Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscription + +## 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 + - `[ChannelName ]`: Name of the channel. + - `[DomainName ]`: Name of the domain. + - `[DomainTopicName ]`: Name of the topic. + - `[EventChannelName ]`: Name of the event channel. + - `[EventSubscriptionName ]`: Name of the event subscription. + - `[Id ]`: Resource identity path + - `[Location ]`: Name of the location. + - `[ParentName ]`: The name of the parent resource (namely, either, the topic name, domain name, or partner namespace name). + - `[ParentType ]`: The type of the parent resource. This can be either \'topics\', \'domains\', or \'partnerNamespaces\'. + - `[PartnerDestinationName ]`: Name of the partner destination. + - `[PartnerNamespaceName ]`: Name of the partner namespace. + - `[PartnerRegistrationName ]`: Name of the partner registration. + - `[PartnerTopicName ]`: Name of the partner topic. + - `[PrivateEndpointConnectionName ]`: The name of the private endpoint connection connection. + - `[PrivateLinkResourceName ]`: The name of private link resource. + - `[ProviderNamespace ]`: Namespace of the provider of the topic. + - `[ResourceGroupName ]`: The name of the resource group within the partners subscription. + - `[ResourceName ]`: Name of the resource. + - `[ResourceTypeName ]`: Name of the resource type. + - `[Scope ]`: The scope of the event subscription. The scope can be a subscription, or a resource group, or a top level resource belonging to a resource provider namespace, or an EventGrid topic. For example, use '/subscriptions/{subscriptionId}/' for a subscription, '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}' for a resource group, and '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}' for a resource, and '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.EventGrid/topics/{topicName}' for an EventGrid topic. + - `[SubscriptionId ]`: Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription ID forms part of the URI for every service call. + - `[SystemTopicName ]`: Name of the system topic. + - `[TopicName ]`: Name of the domain topic. + - `[TopicTypeName ]`: Name of the topic type. + - `[VerifiedPartnerName ]`: Name of the verified partner. + +## RELATED LINKS + diff --git a/swaggerci/eventgrid/docs/Get-AzEventGridTopicEventSubscriptionDeliveryAttribute.md b/swaggerci/eventgrid/docs/Get-AzEventGridTopicEventSubscriptionDeliveryAttribute.md new file mode 100644 index 000000000000..419e08200e31 --- /dev/null +++ b/swaggerci/eventgrid/docs/Get-AzEventGridTopicEventSubscriptionDeliveryAttribute.md @@ -0,0 +1,243 @@ +--- +external help file: +Module Name: Az.EventGrid +online version: https://docs.microsoft.com/en-us/powershell/module/az.eventgrid/get-azeventgridtopiceventsubscriptiondeliveryattribute +schema: 2.0.0 +--- + +# Get-AzEventGridTopicEventSubscriptionDeliveryAttribute + +## SYNOPSIS +Get all delivery attributes for an event subscription for topic. + +## SYNTAX + +### Get (Default) +``` +Get-AzEventGridTopicEventSubscriptionDeliveryAttribute -EventSubscriptionName + -ResourceGroupName -TopicName [-SubscriptionId ] [-DefaultProfile ] + [-PassThru] [-Confirm] [-WhatIf] [] +``` + +### GetViaIdentity +``` +Get-AzEventGridTopicEventSubscriptionDeliveryAttribute -InputObject + [-DefaultProfile ] [-PassThru] [-Confirm] [-WhatIf] [] +``` + +## DESCRIPTION +Get all delivery attributes for an event subscription for topic. + +## EXAMPLES + +### Example 1: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +## PARAMETERS + +### -DefaultProfile +The credentials, account, tenant, and subscription used for communication with Azure. + +```yaml +Type: System.Management.Automation.PSObject +Parameter Sets: (All) +Aliases: AzureRMContext, AzureCredential + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -EventSubscriptionName +Name of the event subscription. + +```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.EventGrid.Models.IEventGridIdentity +Parameter Sets: GetViaIdentity +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: True (ByValue) +Accept wildcard characters: False +``` + +### -PassThru +Returns true when the command succeeds + +```yaml +Type: System.Management.Automation.SwitchParameter +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -ResourceGroupName +The name of the resource group within the user's subscription. + +```yaml +Type: System.String +Parameter Sets: Get +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -SubscriptionId +Subscription credentials that uniquely identify a Microsoft Azure subscription. +The subscription ID forms part of the URI for every service call. + +```yaml +Type: System.String[] +Parameter Sets: Get +Aliases: + +Required: False +Position: Named +Default value: (Get-AzContext).Subscription.Id +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -TopicName +Name of the domain topic. + +```yaml +Type: System.String +Parameter Sets: Get +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.EventGrid.Models.IEventGridIdentity + +## OUTPUTS + +### Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDeliveryAttributeMapping + +## 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 + - `[ChannelName ]`: Name of the channel. + - `[DomainName ]`: Name of the domain. + - `[DomainTopicName ]`: Name of the topic. + - `[EventChannelName ]`: Name of the event channel. + - `[EventSubscriptionName ]`: Name of the event subscription. + - `[Id ]`: Resource identity path + - `[Location ]`: Name of the location. + - `[ParentName ]`: The name of the parent resource (namely, either, the topic name, domain name, or partner namespace name). + - `[ParentType ]`: The type of the parent resource. This can be either \'topics\', \'domains\', or \'partnerNamespaces\'. + - `[PartnerDestinationName ]`: Name of the partner destination. + - `[PartnerNamespaceName ]`: Name of the partner namespace. + - `[PartnerRegistrationName ]`: Name of the partner registration. + - `[PartnerTopicName ]`: Name of the partner topic. + - `[PrivateEndpointConnectionName ]`: The name of the private endpoint connection connection. + - `[PrivateLinkResourceName ]`: The name of private link resource. + - `[ProviderNamespace ]`: Namespace of the provider of the topic. + - `[ResourceGroupName ]`: The name of the resource group within the partners subscription. + - `[ResourceName ]`: Name of the resource. + - `[ResourceTypeName ]`: Name of the resource type. + - `[Scope ]`: The scope of the event subscription. The scope can be a subscription, or a resource group, or a top level resource belonging to a resource provider namespace, or an EventGrid topic. For example, use '/subscriptions/{subscriptionId}/' for a subscription, '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}' for a resource group, and '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}' for a resource, and '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.EventGrid/topics/{topicName}' for an EventGrid topic. + - `[SubscriptionId ]`: Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription ID forms part of the URI for every service call. + - `[SystemTopicName ]`: Name of the system topic. + - `[TopicName ]`: Name of the domain topic. + - `[TopicTypeName ]`: Name of the topic type. + - `[VerifiedPartnerName ]`: Name of the verified partner. + +## RELATED LINKS + diff --git a/swaggerci/eventgrid/docs/Get-AzEventGridTopicEventSubscriptionFullUrl.md b/swaggerci/eventgrid/docs/Get-AzEventGridTopicEventSubscriptionFullUrl.md new file mode 100644 index 000000000000..6e0fd51013fa --- /dev/null +++ b/swaggerci/eventgrid/docs/Get-AzEventGridTopicEventSubscriptionFullUrl.md @@ -0,0 +1,243 @@ +--- +external help file: +Module Name: Az.EventGrid +online version: https://docs.microsoft.com/en-us/powershell/module/az.eventgrid/get-azeventgridtopiceventsubscriptionfullurl +schema: 2.0.0 +--- + +# Get-AzEventGridTopicEventSubscriptionFullUrl + +## SYNOPSIS +Get the full endpoint URL for an event subscription for topic. + +## SYNTAX + +### Get (Default) +``` +Get-AzEventGridTopicEventSubscriptionFullUrl -EventSubscriptionName -ResourceGroupName + -TopicName [-SubscriptionId ] [-DefaultProfile ] [-PassThru] [-Confirm] + [-WhatIf] [] +``` + +### GetViaIdentity +``` +Get-AzEventGridTopicEventSubscriptionFullUrl -InputObject [-DefaultProfile ] + [-PassThru] [-Confirm] [-WhatIf] [] +``` + +## DESCRIPTION +Get the full endpoint URL for an event subscription for topic. + +## EXAMPLES + +### Example 1: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +## PARAMETERS + +### -DefaultProfile +The credentials, account, tenant, and subscription used for communication with Azure. + +```yaml +Type: System.Management.Automation.PSObject +Parameter Sets: (All) +Aliases: AzureRMContext, AzureCredential + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -EventSubscriptionName +Name of the event subscription. + +```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.EventGrid.Models.IEventGridIdentity +Parameter Sets: GetViaIdentity +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: True (ByValue) +Accept wildcard characters: False +``` + +### -PassThru +Returns true when the command succeeds + +```yaml +Type: System.Management.Automation.SwitchParameter +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -ResourceGroupName +The name of the resource group within the user's subscription. + +```yaml +Type: System.String +Parameter Sets: Get +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -SubscriptionId +Subscription credentials that uniquely identify a Microsoft Azure subscription. +The subscription ID forms part of the URI for every service call. + +```yaml +Type: System.String[] +Parameter Sets: Get +Aliases: + +Required: False +Position: Named +Default value: (Get-AzContext).Subscription.Id +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -TopicName +Name of the domain topic. + +```yaml +Type: System.String +Parameter Sets: Get +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.EventGrid.Models.IEventGridIdentity + +## OUTPUTS + +### System.String + +## NOTES + +ALIASES + +COMPLEX PARAMETER PROPERTIES + +To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. + + +INPUTOBJECT : Identity Parameter + - `[ChannelName ]`: Name of the channel. + - `[DomainName ]`: Name of the domain. + - `[DomainTopicName ]`: Name of the topic. + - `[EventChannelName ]`: Name of the event channel. + - `[EventSubscriptionName ]`: Name of the event subscription. + - `[Id ]`: Resource identity path + - `[Location ]`: Name of the location. + - `[ParentName ]`: The name of the parent resource (namely, either, the topic name, domain name, or partner namespace name). + - `[ParentType ]`: The type of the parent resource. This can be either \'topics\', \'domains\', or \'partnerNamespaces\'. + - `[PartnerDestinationName ]`: Name of the partner destination. + - `[PartnerNamespaceName ]`: Name of the partner namespace. + - `[PartnerRegistrationName ]`: Name of the partner registration. + - `[PartnerTopicName ]`: Name of the partner topic. + - `[PrivateEndpointConnectionName ]`: The name of the private endpoint connection connection. + - `[PrivateLinkResourceName ]`: The name of private link resource. + - `[ProviderNamespace ]`: Namespace of the provider of the topic. + - `[ResourceGroupName ]`: The name of the resource group within the partners subscription. + - `[ResourceName ]`: Name of the resource. + - `[ResourceTypeName ]`: Name of the resource type. + - `[Scope ]`: The scope of the event subscription. The scope can be a subscription, or a resource group, or a top level resource belonging to a resource provider namespace, or an EventGrid topic. For example, use '/subscriptions/{subscriptionId}/' for a subscription, '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}' for a resource group, and '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}' for a resource, and '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.EventGrid/topics/{topicName}' for an EventGrid topic. + - `[SubscriptionId ]`: Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription ID forms part of the URI for every service call. + - `[SystemTopicName ]`: Name of the system topic. + - `[TopicName ]`: Name of the domain topic. + - `[TopicTypeName ]`: Name of the topic type. + - `[VerifiedPartnerName ]`: Name of the verified partner. + +## RELATED LINKS + diff --git a/swaggerci/eventgrid/docs/Get-AzEventGridTopicEventType.md b/swaggerci/eventgrid/docs/Get-AzEventGridTopicEventType.md new file mode 100644 index 000000000000..0b508997fbaa --- /dev/null +++ b/swaggerci/eventgrid/docs/Get-AzEventGridTopicEventType.md @@ -0,0 +1,170 @@ +--- +external help file: +Module Name: Az.EventGrid +online version: https://docs.microsoft.com/en-us/powershell/module/az.eventgrid/get-azeventgridtopiceventtype +schema: 2.0.0 +--- + +# Get-AzEventGridTopicEventType + +## SYNOPSIS +List event types for a topic. + +## SYNTAX + +``` +Get-AzEventGridTopicEventType -ProviderNamespace -ResourceGroupName -ResourceName + -ResourceTypeName [-SubscriptionId ] [-DefaultProfile ] [-PassThru] + [] +``` + +## DESCRIPTION +List event types for a topic. + +## EXAMPLES + +### Example 1: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +## PARAMETERS + +### -DefaultProfile +The credentials, account, tenant, and subscription used for communication with Azure. + +```yaml +Type: System.Management.Automation.PSObject +Parameter Sets: (All) +Aliases: AzureRMContext, AzureCredential + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -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 +``` + +### -ProviderNamespace +Namespace of the provider of the topic. + +```yaml +Type: System.String +Parameter Sets: (All) +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -ResourceGroupName +The name of the resource group within the user's subscription. + +```yaml +Type: System.String +Parameter Sets: (All) +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -ResourceName +Name of the topic. + +```yaml +Type: System.String +Parameter Sets: (All) +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -ResourceTypeName +Name of the topic type. + +```yaml +Type: System.String +Parameter Sets: (All) +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -SubscriptionId +Subscription credentials that uniquely identify a Microsoft Azure subscription. +The subscription ID forms part of the URI for every service call. + +```yaml +Type: System.String[] +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: (Get-AzContext).Subscription.Id +Accept pipeline input: False +Accept wildcard characters: False +``` + +### CommonParameters +This cmdlet supports the common parameters: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutVariable, -OutBuffer, -PipelineVariable, -Verbose, -WarningAction, and -WarningVariable. For more information, see [about_CommonParameters](http://go.microsoft.com/fwlink/?LinkID=113216). + +## INPUTS + +## OUTPUTS + +### Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventType + +## NOTES + +ALIASES + +## RELATED LINKS + diff --git a/swaggerci/eventgrid/docs/Get-AzEventGridTopicSharedAccessKey.md b/swaggerci/eventgrid/docs/Get-AzEventGridTopicSharedAccessKey.md new file mode 100644 index 000000000000..1d25ca36d62b --- /dev/null +++ b/swaggerci/eventgrid/docs/Get-AzEventGridTopicSharedAccessKey.md @@ -0,0 +1,171 @@ +--- +external help file: +Module Name: Az.EventGrid +online version: https://docs.microsoft.com/en-us/powershell/module/az.eventgrid/get-azeventgridtopicsharedaccesskey +schema: 2.0.0 +--- + +# Get-AzEventGridTopicSharedAccessKey + +## SYNOPSIS +List the two keys used to publish to a topic. + +## SYNTAX + +``` +Get-AzEventGridTopicSharedAccessKey -ResourceGroupName -TopicName + [-SubscriptionId ] [-DefaultProfile ] [-PassThru] [-Confirm] [-WhatIf] + [] +``` + +## DESCRIPTION +List the two keys used to publish to a topic. + +## EXAMPLES + +### Example 1: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +## PARAMETERS + +### -DefaultProfile +The credentials, account, tenant, and subscription used for communication with Azure. + +```yaml +Type: System.Management.Automation.PSObject +Parameter Sets: (All) +Aliases: AzureRMContext, AzureCredential + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -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 within the user's subscription. + +```yaml +Type: System.String +Parameter Sets: (All) +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -SubscriptionId +Subscription credentials that uniquely identify a Microsoft Azure subscription. +The subscription ID forms part of the URI for every service call. + +```yaml +Type: System.String[] +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: (Get-AzContext).Subscription.Id +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -TopicName +Name of the topic. + +```yaml +Type: System.String +Parameter Sets: (All) +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 + +## OUTPUTS + +### Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITopicSharedAccessKeys + +## NOTES + +ALIASES + +## RELATED LINKS + diff --git a/swaggerci/eventgrid/docs/Get-AzEventGridTopicType.md b/swaggerci/eventgrid/docs/Get-AzEventGridTopicType.md new file mode 100644 index 000000000000..ed64f7fb34a6 --- /dev/null +++ b/swaggerci/eventgrid/docs/Get-AzEventGridTopicType.md @@ -0,0 +1,169 @@ +--- +external help file: +Module Name: Az.EventGrid +online version: https://docs.microsoft.com/en-us/powershell/module/az.eventgrid/get-azeventgridtopictype +schema: 2.0.0 +--- + +# Get-AzEventGridTopicType + +## SYNOPSIS +Get information about a topic type. + +## SYNTAX + +### List (Default) +``` +Get-AzEventGridTopicType [-DefaultProfile ] [-PassThru] [] +``` + +### Get +``` +Get-AzEventGridTopicType -Name [-DefaultProfile ] [-PassThru] [] +``` + +### GetViaIdentity +``` +Get-AzEventGridTopicType -InputObject [-DefaultProfile ] [-PassThru] + [] +``` + +## DESCRIPTION +Get information about a topic type. + +## EXAMPLES + +### Example 1: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +## PARAMETERS + +### -DefaultProfile +The credentials, account, tenant, and subscription used for communication with Azure. + +```yaml +Type: System.Management.Automation.PSObject +Parameter Sets: (All) +Aliases: AzureRMContext, AzureCredential + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -InputObject +Identity Parameter +To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + +```yaml +Type: Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.IEventGridIdentity +Parameter Sets: GetViaIdentity +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: True (ByValue) +Accept wildcard characters: False +``` + +### -Name +Name of the topic type. + +```yaml +Type: System.String +Parameter Sets: Get +Aliases: TopicTypeName + +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 +``` + +### CommonParameters +This cmdlet supports the common parameters: -Debug, -ErrorAction, -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.EventGrid.Models.IEventGridIdentity + +## OUTPUTS + +### Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITopicTypeInfo + +## 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 + - `[ChannelName ]`: Name of the channel. + - `[DomainName ]`: Name of the domain. + - `[DomainTopicName ]`: Name of the topic. + - `[EventChannelName ]`: Name of the event channel. + - `[EventSubscriptionName ]`: Name of the event subscription. + - `[Id ]`: Resource identity path + - `[Location ]`: Name of the location. + - `[ParentName ]`: The name of the parent resource (namely, either, the topic name, domain name, or partner namespace name). + - `[ParentType ]`: The type of the parent resource. This can be either \'topics\', \'domains\', or \'partnerNamespaces\'. + - `[PartnerDestinationName ]`: Name of the partner destination. + - `[PartnerNamespaceName ]`: Name of the partner namespace. + - `[PartnerRegistrationName ]`: Name of the partner registration. + - `[PartnerTopicName ]`: Name of the partner topic. + - `[PrivateEndpointConnectionName ]`: The name of the private endpoint connection connection. + - `[PrivateLinkResourceName ]`: The name of private link resource. + - `[ProviderNamespace ]`: Namespace of the provider of the topic. + - `[ResourceGroupName ]`: The name of the resource group within the partners subscription. + - `[ResourceName ]`: Name of the resource. + - `[ResourceTypeName ]`: Name of the resource type. + - `[Scope ]`: The scope of the event subscription. The scope can be a subscription, or a resource group, or a top level resource belonging to a resource provider namespace, or an EventGrid topic. For example, use '/subscriptions/{subscriptionId}/' for a subscription, '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}' for a resource group, and '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}' for a resource, and '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.EventGrid/topics/{topicName}' for an EventGrid topic. + - `[SubscriptionId ]`: Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription ID forms part of the URI for every service call. + - `[SystemTopicName ]`: Name of the system topic. + - `[TopicName ]`: Name of the domain topic. + - `[TopicTypeName ]`: Name of the topic type. + - `[VerifiedPartnerName ]`: Name of the verified partner. + +## RELATED LINKS + diff --git a/swaggerci/eventgrid/docs/Get-AzEventGridTopicTypeEventType.md b/swaggerci/eventgrid/docs/Get-AzEventGridTopicTypeEventType.md new file mode 100644 index 000000000000..99ab477ff20f --- /dev/null +++ b/swaggerci/eventgrid/docs/Get-AzEventGridTopicTypeEventType.md @@ -0,0 +1,108 @@ +--- +external help file: +Module Name: Az.EventGrid +online version: https://docs.microsoft.com/en-us/powershell/module/az.eventgrid/get-azeventgridtopictypeeventtype +schema: 2.0.0 +--- + +# Get-AzEventGridTopicTypeEventType + +## SYNOPSIS +List event types for a topic type. + +## SYNTAX + +``` +Get-AzEventGridTopicTypeEventType -TopicTypeName [-DefaultProfile ] [-PassThru] + [] +``` + +## DESCRIPTION +List event types for a topic type. + +## EXAMPLES + +### Example 1: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +## PARAMETERS + +### -DefaultProfile +The credentials, account, tenant, and subscription used for communication with Azure. + +```yaml +Type: System.Management.Automation.PSObject +Parameter Sets: (All) +Aliases: AzureRMContext, AzureCredential + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -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 +``` + +### -TopicTypeName +Name of the topic type. + +```yaml +Type: System.String +Parameter Sets: (All) +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.EventGrid.Models.Api20211015Preview.IEventType + +## NOTES + +ALIASES + +## RELATED LINKS + diff --git a/swaggerci/eventgrid/docs/Get-AzEventGridVerifiedPartner.md b/swaggerci/eventgrid/docs/Get-AzEventGridVerifiedPartner.md new file mode 100644 index 000000000000..1d67380eca64 --- /dev/null +++ b/swaggerci/eventgrid/docs/Get-AzEventGridVerifiedPartner.md @@ -0,0 +1,207 @@ +--- +external help file: +Module Name: Az.EventGrid +online version: https://docs.microsoft.com/en-us/powershell/module/az.eventgrid/get-azeventgridverifiedpartner +schema: 2.0.0 +--- + +# Get-AzEventGridVerifiedPartner + +## SYNOPSIS +Get properties of a verified partner. + +## SYNTAX + +### List (Default) +``` +Get-AzEventGridVerifiedPartner [-Filter ] [-Top ] [-DefaultProfile ] [-PassThru] + [] +``` + +### Get +``` +Get-AzEventGridVerifiedPartner -Name [-DefaultProfile ] [-PassThru] [] +``` + +### GetViaIdentity +``` +Get-AzEventGridVerifiedPartner -InputObject [-DefaultProfile ] [-PassThru] + [] +``` + +## DESCRIPTION +Get properties of a verified partner. + +## EXAMPLES + +### Example 1: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +## PARAMETERS + +### -DefaultProfile +The credentials, account, tenant, and subscription used for communication with Azure. + +```yaml +Type: System.Management.Automation.PSObject +Parameter Sets: (All) +Aliases: AzureRMContext, AzureCredential + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -Filter +The query used to filter the search results using OData syntax. +Filtering is permitted on the 'name' property only and with limited number of OData operations. +These operations are: the 'contains' function as well as the following logical operations: not, and, or, eq (for equal), and ne (for not equal). +No arithmetic operations are supported. +The following is a valid filter example: $filter=contains(namE, 'PATTERN') and name ne 'PATTERN-1'. +The following is not a valid filter example: $filter=location eq 'westus'. + +```yaml +Type: System.String +Parameter Sets: List +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -InputObject +Identity Parameter +To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + +```yaml +Type: Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.IEventGridIdentity +Parameter Sets: GetViaIdentity +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: True (ByValue) +Accept wildcard characters: False +``` + +### -Name +Name of the verified partner. + +```yaml +Type: System.String +Parameter Sets: Get +Aliases: VerifiedPartnerName + +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 +``` + +### -Top +The number of results to return per page for the list operation. +Valid range for top parameter is 1 to 100. +If not specified, the default number of results to be returned is 20 items per page. + +```yaml +Type: System.Int32 +Parameter Sets: List +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### CommonParameters +This cmdlet supports the common parameters: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutVariable, -OutBuffer, -PipelineVariable, -Verbose, -WarningAction, and -WarningVariable. For more information, see [about_CommonParameters](http://go.microsoft.com/fwlink/?LinkID=113216). + +## INPUTS + +### Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.IEventGridIdentity + +## OUTPUTS + +### Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IVerifiedPartner + +## 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 + - `[ChannelName ]`: Name of the channel. + - `[DomainName ]`: Name of the domain. + - `[DomainTopicName ]`: Name of the topic. + - `[EventChannelName ]`: Name of the event channel. + - `[EventSubscriptionName ]`: Name of the event subscription. + - `[Id ]`: Resource identity path + - `[Location ]`: Name of the location. + - `[ParentName ]`: The name of the parent resource (namely, either, the topic name, domain name, or partner namespace name). + - `[ParentType ]`: The type of the parent resource. This can be either \'topics\', \'domains\', or \'partnerNamespaces\'. + - `[PartnerDestinationName ]`: Name of the partner destination. + - `[PartnerNamespaceName ]`: Name of the partner namespace. + - `[PartnerRegistrationName ]`: Name of the partner registration. + - `[PartnerTopicName ]`: Name of the partner topic. + - `[PrivateEndpointConnectionName ]`: The name of the private endpoint connection connection. + - `[PrivateLinkResourceName ]`: The name of private link resource. + - `[ProviderNamespace ]`: Namespace of the provider of the topic. + - `[ResourceGroupName ]`: The name of the resource group within the partners subscription. + - `[ResourceName ]`: Name of the resource. + - `[ResourceTypeName ]`: Name of the resource type. + - `[Scope ]`: The scope of the event subscription. The scope can be a subscription, or a resource group, or a top level resource belonging to a resource provider namespace, or an EventGrid topic. For example, use '/subscriptions/{subscriptionId}/' for a subscription, '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}' for a resource group, and '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}' for a resource, and '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.EventGrid/topics/{topicName}' for an EventGrid topic. + - `[SubscriptionId ]`: Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription ID forms part of the URI for every service call. + - `[SystemTopicName ]`: Name of the system topic. + - `[TopicName ]`: Name of the domain topic. + - `[TopicTypeName ]`: Name of the topic type. + - `[VerifiedPartnerName ]`: Name of the verified partner. + +## RELATED LINKS + diff --git a/swaggerci/eventgrid/docs/Grant-AzEventGridPartnerConfigurationPartner.md b/swaggerci/eventgrid/docs/Grant-AzEventGridPartnerConfigurationPartner.md new file mode 100644 index 000000000000..9eda8871b705 --- /dev/null +++ b/swaggerci/eventgrid/docs/Grant-AzEventGridPartnerConfigurationPartner.md @@ -0,0 +1,298 @@ +--- +external help file: +Module Name: Az.EventGrid +online version: https://docs.microsoft.com/en-us/powershell/module/az.eventgrid/grant-azeventgridpartnerconfigurationpartner +schema: 2.0.0 +--- + +# Grant-AzEventGridPartnerConfigurationPartner + +## SYNOPSIS +Authorize a single partner either by partner registration immutable Id or by partner name. + +## SYNTAX + +### AuthorizeExpanded (Default) +``` +Grant-AzEventGridPartnerConfigurationPartner -ResourceGroupName [-SubscriptionId ] + [-AuthorizationExpirationTimeInUtc ] [-PartnerName ] + [-PartnerRegistrationImmutableId ] [-DefaultProfile ] [-PassThru] [-Confirm] [-WhatIf] + [] +``` + +### Authorize +``` +Grant-AzEventGridPartnerConfigurationPartner -ResourceGroupName -PartnerInfo + [-SubscriptionId ] [-DefaultProfile ] [-PassThru] [-Confirm] [-WhatIf] [] +``` + +### AuthorizeViaIdentity +``` +Grant-AzEventGridPartnerConfigurationPartner -InputObject -PartnerInfo + [-DefaultProfile ] [-PassThru] [-Confirm] [-WhatIf] [] +``` + +### AuthorizeViaIdentityExpanded +``` +Grant-AzEventGridPartnerConfigurationPartner -InputObject + [-AuthorizationExpirationTimeInUtc ] [-PartnerName ] + [-PartnerRegistrationImmutableId ] [-DefaultProfile ] [-PassThru] [-Confirm] [-WhatIf] + [] +``` + +## DESCRIPTION +Authorize a single partner either by partner registration immutable Id or by partner name. + +## EXAMPLES + +### Example 1: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +## PARAMETERS + +### -AuthorizationExpirationTimeInUtc +Expiration time of the partner authorization. +If this timer expires, any request from this partner to create, update or delete resources in subscriber'scontext will fail. +If specified, the allowed values are between 1 to the value of defaultMaximumExpirationTimeInDays specified in PartnerConfiguration.If not specified, the default value will be the value of defaultMaximumExpirationTimeInDays specified in PartnerConfiguration or 7 if this value is not specified. + +```yaml +Type: System.DateTime +Parameter Sets: AuthorizeExpanded, AuthorizeViaIdentityExpanded +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -DefaultProfile +The credentials, account, tenant, and subscription used for communication with Azure. + +```yaml +Type: System.Management.Automation.PSObject +Parameter Sets: (All) +Aliases: AzureRMContext, AzureCredential + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -InputObject +Identity Parameter +To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + +```yaml +Type: Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.IEventGridIdentity +Parameter Sets: AuthorizeViaIdentity, AuthorizeViaIdentityExpanded +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: True (ByValue) +Accept wildcard characters: False +``` + +### -PartnerInfo +Information about the partner. +To construct, see NOTES section for PARTNERINFO properties and create a hash table. + +```yaml +Type: Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartner +Parameter Sets: Authorize, AuthorizeViaIdentity +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: True (ByValue) +Accept wildcard characters: False +``` + +### -PartnerName +The partner name. + +```yaml +Type: System.String +Parameter Sets: AuthorizeExpanded, AuthorizeViaIdentityExpanded +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -PartnerRegistrationImmutableId +The immutableId of the corresponding partner registration. + +```yaml +Type: System.String +Parameter Sets: AuthorizeExpanded, AuthorizeViaIdentityExpanded +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 within the user's subscription. + +```yaml +Type: System.String +Parameter Sets: Authorize, AuthorizeExpanded +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -SubscriptionId +Subscription credentials that uniquely identify a Microsoft Azure subscription. +The subscription ID forms part of the URI for every service call. + +```yaml +Type: System.String +Parameter Sets: Authorize, AuthorizeExpanded +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.EventGrid.Models.Api20211015Preview.IPartner + +### Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.IEventGridIdentity + +## OUTPUTS + +### Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerConfiguration + +## 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 + - `[ChannelName ]`: Name of the channel. + - `[DomainName ]`: Name of the domain. + - `[DomainTopicName ]`: Name of the topic. + - `[EventChannelName ]`: Name of the event channel. + - `[EventSubscriptionName ]`: Name of the event subscription. + - `[Id ]`: Resource identity path + - `[Location ]`: Name of the location. + - `[ParentName ]`: The name of the parent resource (namely, either, the topic name, domain name, or partner namespace name). + - `[ParentType ]`: The type of the parent resource. This can be either \'topics\', \'domains\', or \'partnerNamespaces\'. + - `[PartnerDestinationName ]`: Name of the partner destination. + - `[PartnerNamespaceName ]`: Name of the partner namespace. + - `[PartnerRegistrationName ]`: Name of the partner registration. + - `[PartnerTopicName ]`: Name of the partner topic. + - `[PrivateEndpointConnectionName ]`: The name of the private endpoint connection connection. + - `[PrivateLinkResourceName ]`: The name of private link resource. + - `[ProviderNamespace ]`: Namespace of the provider of the topic. + - `[ResourceGroupName ]`: The name of the resource group within the partners subscription. + - `[ResourceName ]`: Name of the resource. + - `[ResourceTypeName ]`: Name of the resource type. + - `[Scope ]`: The scope of the event subscription. The scope can be a subscription, or a resource group, or a top level resource belonging to a resource provider namespace, or an EventGrid topic. For example, use '/subscriptions/{subscriptionId}/' for a subscription, '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}' for a resource group, and '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}' for a resource, and '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.EventGrid/topics/{topicName}' for an EventGrid topic. + - `[SubscriptionId ]`: Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription ID forms part of the URI for every service call. + - `[SystemTopicName ]`: Name of the system topic. + - `[TopicName ]`: Name of the domain topic. + - `[TopicTypeName ]`: Name of the topic type. + - `[VerifiedPartnerName ]`: Name of the verified partner. + +PARTNERINFO : Information about the partner. + - `[AuthorizationExpirationTimeInUtc ]`: Expiration time of the partner authorization. If this timer expires, any request from this partner to create, update or delete resources in subscriber's context will fail. If specified, the allowed values are between 1 to the value of defaultMaximumExpirationTimeInDays specified in PartnerConfiguration. If not specified, the default value will be the value of defaultMaximumExpirationTimeInDays specified in PartnerConfiguration or 7 if this value is not specified. + - `[Name ]`: The partner name. + - `[RegistrationImmutableId ]`: The immutableId of the corresponding partner registration. + +## RELATED LINKS + diff --git a/swaggerci/eventgrid/docs/Initialize-AzEventGridPartnerDestination.md b/swaggerci/eventgrid/docs/Initialize-AzEventGridPartnerDestination.md new file mode 100644 index 000000000000..497b88c3ab22 --- /dev/null +++ b/swaggerci/eventgrid/docs/Initialize-AzEventGridPartnerDestination.md @@ -0,0 +1,227 @@ +--- +external help file: +Module Name: Az.EventGrid +online version: https://docs.microsoft.com/en-us/powershell/module/az.eventgrid/initialize-azeventgridpartnerdestination +schema: 2.0.0 +--- + +# Initialize-AzEventGridPartnerDestination + +## SYNOPSIS +Activate a newly created partner destination. + +## SYNTAX + +### Activate (Default) +``` +Initialize-AzEventGridPartnerDestination -Name -ResourceGroupName [-SubscriptionId ] + [-DefaultProfile ] [-PassThru] [-Confirm] [-WhatIf] [] +``` + +### ActivateViaIdentity +``` +Initialize-AzEventGridPartnerDestination -InputObject [-DefaultProfile ] + [-PassThru] [-Confirm] [-WhatIf] [] +``` + +## DESCRIPTION +Activate a newly created partner destination. + +## EXAMPLES + +### Example 1: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +## PARAMETERS + +### -DefaultProfile +The credentials, account, tenant, and subscription used for communication with Azure. + +```yaml +Type: System.Management.Automation.PSObject +Parameter Sets: (All) +Aliases: AzureRMContext, AzureCredential + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -InputObject +Identity Parameter +To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + +```yaml +Type: Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.IEventGridIdentity +Parameter Sets: ActivateViaIdentity +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: True (ByValue) +Accept wildcard characters: False +``` + +### -Name +Name of the partner destination. + +```yaml +Type: System.String +Parameter Sets: Activate +Aliases: PartnerDestinationName + +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 within the user's subscription. + +```yaml +Type: System.String +Parameter Sets: Activate +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -SubscriptionId +Subscription credentials that uniquely identify a Microsoft Azure subscription. +The subscription ID forms part of the URI for every service call. + +```yaml +Type: System.String +Parameter Sets: Activate +Aliases: + +Required: False +Position: Named +Default value: (Get-AzContext).Subscription.Id +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -Confirm +Prompts you for confirmation before running the cmdlet. + +```yaml +Type: System.Management.Automation.SwitchParameter +Parameter Sets: (All) +Aliases: cf + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -WhatIf +Shows what would happen if the cmdlet runs. +The cmdlet is not run. + +```yaml +Type: System.Management.Automation.SwitchParameter +Parameter Sets: (All) +Aliases: wi + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### CommonParameters +This cmdlet supports the common parameters: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutVariable, -OutBuffer, -PipelineVariable, -Verbose, -WarningAction, and -WarningVariable. For more information, see [about_CommonParameters](http://go.microsoft.com/fwlink/?LinkID=113216). + +## INPUTS + +### Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.IEventGridIdentity + +## OUTPUTS + +### Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerDestination + +## 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 + - `[ChannelName ]`: Name of the channel. + - `[DomainName ]`: Name of the domain. + - `[DomainTopicName ]`: Name of the topic. + - `[EventChannelName ]`: Name of the event channel. + - `[EventSubscriptionName ]`: Name of the event subscription. + - `[Id ]`: Resource identity path + - `[Location ]`: Name of the location. + - `[ParentName ]`: The name of the parent resource (namely, either, the topic name, domain name, or partner namespace name). + - `[ParentType ]`: The type of the parent resource. This can be either \'topics\', \'domains\', or \'partnerNamespaces\'. + - `[PartnerDestinationName ]`: Name of the partner destination. + - `[PartnerNamespaceName ]`: Name of the partner namespace. + - `[PartnerRegistrationName ]`: Name of the partner registration. + - `[PartnerTopicName ]`: Name of the partner topic. + - `[PrivateEndpointConnectionName ]`: The name of the private endpoint connection connection. + - `[PrivateLinkResourceName ]`: The name of private link resource. + - `[ProviderNamespace ]`: Namespace of the provider of the topic. + - `[ResourceGroupName ]`: The name of the resource group within the partners subscription. + - `[ResourceName ]`: Name of the resource. + - `[ResourceTypeName ]`: Name of the resource type. + - `[Scope ]`: The scope of the event subscription. The scope can be a subscription, or a resource group, or a top level resource belonging to a resource provider namespace, or an EventGrid topic. For example, use '/subscriptions/{subscriptionId}/' for a subscription, '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}' for a resource group, and '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}' for a resource, and '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.EventGrid/topics/{topicName}' for an EventGrid topic. + - `[SubscriptionId ]`: Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription ID forms part of the URI for every service call. + - `[SystemTopicName ]`: Name of the system topic. + - `[TopicName ]`: Name of the domain topic. + - `[TopicTypeName ]`: Name of the topic type. + - `[VerifiedPartnerName ]`: Name of the verified partner. + +## RELATED LINKS + diff --git a/swaggerci/eventgrid/docs/Initialize-AzEventGridPartnerTopic.md b/swaggerci/eventgrid/docs/Initialize-AzEventGridPartnerTopic.md new file mode 100644 index 000000000000..58d78e53dca5 --- /dev/null +++ b/swaggerci/eventgrid/docs/Initialize-AzEventGridPartnerTopic.md @@ -0,0 +1,227 @@ +--- +external help file: +Module Name: Az.EventGrid +online version: https://docs.microsoft.com/en-us/powershell/module/az.eventgrid/initialize-azeventgridpartnertopic +schema: 2.0.0 +--- + +# Initialize-AzEventGridPartnerTopic + +## SYNOPSIS +Activate a newly created partner topic. + +## SYNTAX + +### Activate (Default) +``` +Initialize-AzEventGridPartnerTopic -Name -ResourceGroupName [-SubscriptionId ] + [-DefaultProfile ] [-PassThru] [-Confirm] [-WhatIf] [] +``` + +### ActivateViaIdentity +``` +Initialize-AzEventGridPartnerTopic -InputObject [-DefaultProfile ] [-PassThru] + [-Confirm] [-WhatIf] [] +``` + +## DESCRIPTION +Activate a newly created partner topic. + +## EXAMPLES + +### Example 1: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +## PARAMETERS + +### -DefaultProfile +The credentials, account, tenant, and subscription used for communication with Azure. + +```yaml +Type: System.Management.Automation.PSObject +Parameter Sets: (All) +Aliases: AzureRMContext, AzureCredential + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -InputObject +Identity Parameter +To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + +```yaml +Type: Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.IEventGridIdentity +Parameter Sets: ActivateViaIdentity +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: True (ByValue) +Accept wildcard characters: False +``` + +### -Name +Name of the partner topic. + +```yaml +Type: System.String +Parameter Sets: Activate +Aliases: PartnerTopicName + +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 within the user's subscription. + +```yaml +Type: System.String +Parameter Sets: Activate +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -SubscriptionId +Subscription credentials that uniquely identify a Microsoft Azure subscription. +The subscription ID forms part of the URI for every service call. + +```yaml +Type: System.String +Parameter Sets: Activate +Aliases: + +Required: False +Position: Named +Default value: (Get-AzContext).Subscription.Id +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -Confirm +Prompts you for confirmation before running the cmdlet. + +```yaml +Type: System.Management.Automation.SwitchParameter +Parameter Sets: (All) +Aliases: cf + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -WhatIf +Shows what would happen if the cmdlet runs. +The cmdlet is not run. + +```yaml +Type: System.Management.Automation.SwitchParameter +Parameter Sets: (All) +Aliases: wi + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### CommonParameters +This cmdlet supports the common parameters: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutVariable, -OutBuffer, -PipelineVariable, -Verbose, -WarningAction, and -WarningVariable. For more information, see [about_CommonParameters](http://go.microsoft.com/fwlink/?LinkID=113216). + +## INPUTS + +### Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.IEventGridIdentity + +## OUTPUTS + +### Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerTopic + +## 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 + - `[ChannelName ]`: Name of the channel. + - `[DomainName ]`: Name of the domain. + - `[DomainTopicName ]`: Name of the topic. + - `[EventChannelName ]`: Name of the event channel. + - `[EventSubscriptionName ]`: Name of the event subscription. + - `[Id ]`: Resource identity path + - `[Location ]`: Name of the location. + - `[ParentName ]`: The name of the parent resource (namely, either, the topic name, domain name, or partner namespace name). + - `[ParentType ]`: The type of the parent resource. This can be either \'topics\', \'domains\', or \'partnerNamespaces\'. + - `[PartnerDestinationName ]`: Name of the partner destination. + - `[PartnerNamespaceName ]`: Name of the partner namespace. + - `[PartnerRegistrationName ]`: Name of the partner registration. + - `[PartnerTopicName ]`: Name of the partner topic. + - `[PrivateEndpointConnectionName ]`: The name of the private endpoint connection connection. + - `[PrivateLinkResourceName ]`: The name of private link resource. + - `[ProviderNamespace ]`: Namespace of the provider of the topic. + - `[ResourceGroupName ]`: The name of the resource group within the partners subscription. + - `[ResourceName ]`: Name of the resource. + - `[ResourceTypeName ]`: Name of the resource type. + - `[Scope ]`: The scope of the event subscription. The scope can be a subscription, or a resource group, or a top level resource belonging to a resource provider namespace, or an EventGrid topic. For example, use '/subscriptions/{subscriptionId}/' for a subscription, '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}' for a resource group, and '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}' for a resource, and '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.EventGrid/topics/{topicName}' for an EventGrid topic. + - `[SubscriptionId ]`: Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription ID forms part of the URI for every service call. + - `[SystemTopicName ]`: Name of the system topic. + - `[TopicName ]`: Name of the domain topic. + - `[TopicTypeName ]`: Name of the topic type. + - `[VerifiedPartnerName ]`: Name of the verified partner. + +## RELATED LINKS + diff --git a/swaggerci/eventgrid/docs/Invoke-AzEventGridDeactivatePartnerTopic.md b/swaggerci/eventgrid/docs/Invoke-AzEventGridDeactivatePartnerTopic.md new file mode 100644 index 000000000000..dc47fb94f32b --- /dev/null +++ b/swaggerci/eventgrid/docs/Invoke-AzEventGridDeactivatePartnerTopic.md @@ -0,0 +1,227 @@ +--- +external help file: +Module Name: Az.EventGrid +online version: https://docs.microsoft.com/en-us/powershell/module/az.eventgrid/invoke-azeventgriddeactivatepartnertopic +schema: 2.0.0 +--- + +# Invoke-AzEventGridDeactivatePartnerTopic + +## SYNOPSIS +Deactivate specific partner topic. + +## SYNTAX + +### Deactivate (Default) +``` +Invoke-AzEventGridDeactivatePartnerTopic -PartnerTopicName -ResourceGroupName + [-SubscriptionId ] [-DefaultProfile ] [-PassThru] [-Confirm] [-WhatIf] [] +``` + +### DeactivateViaIdentity +``` +Invoke-AzEventGridDeactivatePartnerTopic -InputObject [-DefaultProfile ] + [-PassThru] [-Confirm] [-WhatIf] [] +``` + +## DESCRIPTION +Deactivate specific partner topic. + +## EXAMPLES + +### Example 1: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +## PARAMETERS + +### -DefaultProfile +The credentials, account, tenant, and subscription used for communication with Azure. + +```yaml +Type: System.Management.Automation.PSObject +Parameter Sets: (All) +Aliases: AzureRMContext, AzureCredential + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -InputObject +Identity Parameter +To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + +```yaml +Type: Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.IEventGridIdentity +Parameter Sets: DeactivateViaIdentity +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: True (ByValue) +Accept wildcard characters: False +``` + +### -PartnerTopicName +Name of the partner topic. + +```yaml +Type: System.String +Parameter Sets: Deactivate +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -PassThru +Returns true when the command succeeds + +```yaml +Type: System.Management.Automation.SwitchParameter +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -ResourceGroupName +The name of the resource group within the user's subscription. + +```yaml +Type: System.String +Parameter Sets: Deactivate +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -SubscriptionId +Subscription credentials that uniquely identify a Microsoft Azure subscription. +The subscription ID forms part of the URI for every service call. + +```yaml +Type: System.String +Parameter Sets: Deactivate +Aliases: + +Required: False +Position: Named +Default value: (Get-AzContext).Subscription.Id +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -Confirm +Prompts you for confirmation before running the cmdlet. + +```yaml +Type: System.Management.Automation.SwitchParameter +Parameter Sets: (All) +Aliases: cf + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -WhatIf +Shows what would happen if the cmdlet runs. +The cmdlet is not run. + +```yaml +Type: System.Management.Automation.SwitchParameter +Parameter Sets: (All) +Aliases: wi + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### CommonParameters +This cmdlet supports the common parameters: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutVariable, -OutBuffer, -PipelineVariable, -Verbose, -WarningAction, and -WarningVariable. For more information, see [about_CommonParameters](http://go.microsoft.com/fwlink/?LinkID=113216). + +## INPUTS + +### Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.IEventGridIdentity + +## OUTPUTS + +### Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerTopic + +## 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 + - `[ChannelName ]`: Name of the channel. + - `[DomainName ]`: Name of the domain. + - `[DomainTopicName ]`: Name of the topic. + - `[EventChannelName ]`: Name of the event channel. + - `[EventSubscriptionName ]`: Name of the event subscription. + - `[Id ]`: Resource identity path + - `[Location ]`: Name of the location. + - `[ParentName ]`: The name of the parent resource (namely, either, the topic name, domain name, or partner namespace name). + - `[ParentType ]`: The type of the parent resource. This can be either \'topics\', \'domains\', or \'partnerNamespaces\'. + - `[PartnerDestinationName ]`: Name of the partner destination. + - `[PartnerNamespaceName ]`: Name of the partner namespace. + - `[PartnerRegistrationName ]`: Name of the partner registration. + - `[PartnerTopicName ]`: Name of the partner topic. + - `[PrivateEndpointConnectionName ]`: The name of the private endpoint connection connection. + - `[PrivateLinkResourceName ]`: The name of private link resource. + - `[ProviderNamespace ]`: Namespace of the provider of the topic. + - `[ResourceGroupName ]`: The name of the resource group within the partners subscription. + - `[ResourceName ]`: Name of the resource. + - `[ResourceTypeName ]`: Name of the resource type. + - `[Scope ]`: The scope of the event subscription. The scope can be a subscription, or a resource group, or a top level resource belonging to a resource provider namespace, or an EventGrid topic. For example, use '/subscriptions/{subscriptionId}/' for a subscription, '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}' for a resource group, and '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}' for a resource, and '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.EventGrid/topics/{topicName}' for an EventGrid topic. + - `[SubscriptionId ]`: Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription ID forms part of the URI for every service call. + - `[SystemTopicName ]`: Name of the system topic. + - `[TopicName ]`: Name of the domain topic. + - `[TopicTypeName ]`: Name of the topic type. + - `[VerifiedPartnerName ]`: Name of the verified partner. + +## RELATED LINKS + diff --git a/swaggerci/eventgrid/docs/Invoke-AzEventGridPartnerConfigurationUnauthorize.md b/swaggerci/eventgrid/docs/Invoke-AzEventGridPartnerConfigurationUnauthorize.md new file mode 100644 index 000000000000..19d9427c40cd --- /dev/null +++ b/swaggerci/eventgrid/docs/Invoke-AzEventGridPartnerConfigurationUnauthorize.md @@ -0,0 +1,298 @@ +--- +external help file: +Module Name: Az.EventGrid +online version: https://docs.microsoft.com/en-us/powershell/module/az.eventgrid/invoke-azeventgridpartnerconfigurationunauthorize +schema: 2.0.0 +--- + +# Invoke-AzEventGridPartnerConfigurationUnauthorize + +## SYNOPSIS +Unauthorize a single partner either by partner registration immutable Id or by partner name. + +## SYNTAX + +### PartnerExpanded (Default) +``` +Invoke-AzEventGridPartnerConfigurationUnauthorize -ResourceGroupName [-SubscriptionId ] + [-AuthorizationExpirationTimeInUtc ] [-PartnerName ] + [-PartnerRegistrationImmutableId ] [-DefaultProfile ] [-PassThru] [-Confirm] [-WhatIf] + [] +``` + +### Partner +``` +Invoke-AzEventGridPartnerConfigurationUnauthorize -ResourceGroupName -PartnerInfo + [-SubscriptionId ] [-DefaultProfile ] [-PassThru] [-Confirm] [-WhatIf] [] +``` + +### PartnerViaIdentity +``` +Invoke-AzEventGridPartnerConfigurationUnauthorize -InputObject -PartnerInfo + [-DefaultProfile ] [-PassThru] [-Confirm] [-WhatIf] [] +``` + +### PartnerViaIdentityExpanded +``` +Invoke-AzEventGridPartnerConfigurationUnauthorize -InputObject + [-AuthorizationExpirationTimeInUtc ] [-PartnerName ] + [-PartnerRegistrationImmutableId ] [-DefaultProfile ] [-PassThru] [-Confirm] [-WhatIf] + [] +``` + +## DESCRIPTION +Unauthorize a single partner either by partner registration immutable Id or by partner name. + +## EXAMPLES + +### Example 1: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +## PARAMETERS + +### -AuthorizationExpirationTimeInUtc +Expiration time of the partner authorization. +If this timer expires, any request from this partner to create, update or delete resources in subscriber'scontext will fail. +If specified, the allowed values are between 1 to the value of defaultMaximumExpirationTimeInDays specified in PartnerConfiguration.If not specified, the default value will be the value of defaultMaximumExpirationTimeInDays specified in PartnerConfiguration or 7 if this value is not specified. + +```yaml +Type: System.DateTime +Parameter Sets: PartnerExpanded, PartnerViaIdentityExpanded +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -DefaultProfile +The credentials, account, tenant, and subscription used for communication with Azure. + +```yaml +Type: System.Management.Automation.PSObject +Parameter Sets: (All) +Aliases: AzureRMContext, AzureCredential + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -InputObject +Identity Parameter +To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + +```yaml +Type: Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.IEventGridIdentity +Parameter Sets: PartnerViaIdentity, PartnerViaIdentityExpanded +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: True (ByValue) +Accept wildcard characters: False +``` + +### -PartnerInfo +Information about the partner. +To construct, see NOTES section for PARTNERINFO properties and create a hash table. + +```yaml +Type: Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartner +Parameter Sets: Partner, PartnerViaIdentity +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: True (ByValue) +Accept wildcard characters: False +``` + +### -PartnerName +The partner name. + +```yaml +Type: System.String +Parameter Sets: PartnerExpanded, PartnerViaIdentityExpanded +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -PartnerRegistrationImmutableId +The immutableId of the corresponding partner registration. + +```yaml +Type: System.String +Parameter Sets: PartnerExpanded, PartnerViaIdentityExpanded +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 within the user's subscription. + +```yaml +Type: System.String +Parameter Sets: Partner, PartnerExpanded +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -SubscriptionId +Subscription credentials that uniquely identify a Microsoft Azure subscription. +The subscription ID forms part of the URI for every service call. + +```yaml +Type: System.String +Parameter Sets: Partner, PartnerExpanded +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.EventGrid.Models.Api20211015Preview.IPartner + +### Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.IEventGridIdentity + +## OUTPUTS + +### Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerConfiguration + +## 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 + - `[ChannelName ]`: Name of the channel. + - `[DomainName ]`: Name of the domain. + - `[DomainTopicName ]`: Name of the topic. + - `[EventChannelName ]`: Name of the event channel. + - `[EventSubscriptionName ]`: Name of the event subscription. + - `[Id ]`: Resource identity path + - `[Location ]`: Name of the location. + - `[ParentName ]`: The name of the parent resource (namely, either, the topic name, domain name, or partner namespace name). + - `[ParentType ]`: The type of the parent resource. This can be either \'topics\', \'domains\', or \'partnerNamespaces\'. + - `[PartnerDestinationName ]`: Name of the partner destination. + - `[PartnerNamespaceName ]`: Name of the partner namespace. + - `[PartnerRegistrationName ]`: Name of the partner registration. + - `[PartnerTopicName ]`: Name of the partner topic. + - `[PrivateEndpointConnectionName ]`: The name of the private endpoint connection connection. + - `[PrivateLinkResourceName ]`: The name of private link resource. + - `[ProviderNamespace ]`: Namespace of the provider of the topic. + - `[ResourceGroupName ]`: The name of the resource group within the partners subscription. + - `[ResourceName ]`: Name of the resource. + - `[ResourceTypeName ]`: Name of the resource type. + - `[Scope ]`: The scope of the event subscription. The scope can be a subscription, or a resource group, or a top level resource belonging to a resource provider namespace, or an EventGrid topic. For example, use '/subscriptions/{subscriptionId}/' for a subscription, '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}' for a resource group, and '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}' for a resource, and '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.EventGrid/topics/{topicName}' for an EventGrid topic. + - `[SubscriptionId ]`: Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription ID forms part of the URI for every service call. + - `[SystemTopicName ]`: Name of the system topic. + - `[TopicName ]`: Name of the domain topic. + - `[TopicTypeName ]`: Name of the topic type. + - `[VerifiedPartnerName ]`: Name of the verified partner. + +PARTNERINFO : Information about the partner. + - `[AuthorizationExpirationTimeInUtc ]`: Expiration time of the partner authorization. If this timer expires, any request from this partner to create, update or delete resources in subscriber's context will fail. If specified, the allowed values are between 1 to the value of defaultMaximumExpirationTimeInDays specified in PartnerConfiguration. If not specified, the default value will be the value of defaultMaximumExpirationTimeInDays specified in PartnerConfiguration or 7 if this value is not specified. + - `[Name ]`: The partner name. + - `[RegistrationImmutableId ]`: The immutableId of the corresponding partner registration. + +## RELATED LINKS + diff --git a/swaggerci/eventgrid/docs/New-AzEventGridChannel.md b/swaggerci/eventgrid/docs/New-AzEventGridChannel.md new file mode 100644 index 000000000000..c2084902bcb0 --- /dev/null +++ b/swaggerci/eventgrid/docs/New-AzEventGridChannel.md @@ -0,0 +1,452 @@ +--- +external help file: +Module Name: Az.EventGrid +online version: https://docs.microsoft.com/en-us/powershell/module/az.eventgrid/new-azeventgridchannel +schema: 2.0.0 +--- + +# New-AzEventGridChannel + +## SYNOPSIS +Synchronously creates or updates a new channel with the specified parameters. + +## SYNTAX + +``` +New-AzEventGridChannel -Name -PartnerNamespaceName -ResourceGroupName + [-SubscriptionId ] [-ChannelType ] [-EventTypeInfoInlineEventType ] + [-EventTypeInfoKind ] [-ExpirationTimeIfNotActivatedUtc ] + [-MessageForActivation ] [-PartnerDestinationInfoAzureSubscriptionId ] + [-PartnerDestinationInfoEndpointServiceContext ] [-PartnerDestinationInfoName ] + [-PartnerDestinationInfoResourceGroupName ] + [-PartnerDestinationInfoResourceMoveChangeHistory ] + [-PartnerTopicInfoAzureSubscriptionId ] [-PartnerTopicInfoName ] + [-PartnerTopicInfoResourceGroupName ] [-PartnerTopicInfoSource ] + [-ProvisioningState ] [-ReadinessState ] + [-DefaultProfile ] [-PassThru] [-Confirm] [-WhatIf] [] +``` + +## DESCRIPTION +Synchronously creates or updates a new channel with the specified parameters. + +## EXAMPLES + +### Example 1: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +## PARAMETERS + +### -ChannelType +The type of the event channel which represents the direction flow of events. + +```yaml +Type: Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.ChannelType +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 +``` + +### -EventTypeInfoInlineEventType +A collection of inline event types for the resource. +The inline event type keys are of type string which represents the name of the event.An example of a valid inline event name is "Contoso.OrderCreated".The inline event type values are of type InlineEventProperties and will contain additional information for every inline event type. + +```yaml +Type: System.Collections.Hashtable +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -EventTypeInfoKind +The kind of event type used. + +```yaml +Type: Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EventDefinitionKind +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -ExpirationTimeIfNotActivatedUtc +Expiration time of the channel. +If this timer expires while the corresponding partner topic is never activated,the channel and corresponding partner topic are deleted. + +```yaml +Type: System.DateTime +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -MessageForActivation +Context or helpful message that can be used during the approval process by the subscriber. + +```yaml +Type: System.String +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -Name +Name of the channel. + +```yaml +Type: System.String +Parameter Sets: (All) +Aliases: ChannelName + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -PartnerDestinationInfoAzureSubscriptionId +Azure subscription ID of the subscriber. +The partner destination associated with the channel will becreated under this Azure subscription. + +```yaml +Type: System.String +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -PartnerDestinationInfoEndpointServiceContext +Additional context of the partner destination endpoint. + +```yaml +Type: System.String +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -PartnerDestinationInfoName +Name of the partner destination associated with the channel. + +```yaml +Type: System.String +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -PartnerDestinationInfoResourceGroupName +Azure Resource Group of the subscriber. +The partner destination associated with the channel will becreated under this resource group. + +```yaml +Type: System.String +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -PartnerDestinationInfoResourceMoveChangeHistory +Change history of the resource move. +To construct, see NOTES section for PARTNERDESTINATIONINFORESOURCEMOVECHANGEHISTORY properties and create a hash table. + +```yaml +Type: Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IResourceMoveChangeHistory[] +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -PartnerNamespaceName +Name of the partner namespace. + +```yaml +Type: System.String +Parameter Sets: (All) +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -PartnerTopicInfoAzureSubscriptionId +Azure subscription ID of the subscriber. +The partner topic associated with the channel will becreated under this Azure subscription. + +```yaml +Type: System.String +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -PartnerTopicInfoName +Name of the partner topic associated with the channel. + +```yaml +Type: System.String +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -PartnerTopicInfoResourceGroupName +Azure Resource Group of the subscriber. +The partner topic associated with the channel will becreated under this resource group. + +```yaml +Type: System.String +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -PartnerTopicInfoSource +The source information is provided by the publisher to determine the scope or context from which the eventsare originating. +This information can be used by the subscriber during the approval process of thecreated partner topic. + +```yaml +Type: System.String +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -PassThru +Returns true when the command succeeds + +```yaml +Type: System.Management.Automation.SwitchParameter +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -ProvisioningState +Provisioning state of the channel. + +```yaml +Type: Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.ChannelProvisioningState +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -ReadinessState +The readiness state of the corresponding partner topic. + +```yaml +Type: Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.ReadinessState +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 within the partners subscription. + +```yaml +Type: System.String +Parameter Sets: (All) +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -SubscriptionId +Subscription credentials that uniquely identify a Microsoft Azure subscription. +The subscription ID forms part of the URI for every service call. + +```yaml +Type: System.String +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: (Get-AzContext).Subscription.Id +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -Confirm +Prompts you for confirmation before running the cmdlet. + +```yaml +Type: System.Management.Automation.SwitchParameter +Parameter Sets: (All) +Aliases: cf + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -WhatIf +Shows what would happen if the cmdlet runs. +The cmdlet is not run. + +```yaml +Type: System.Management.Automation.SwitchParameter +Parameter Sets: (All) +Aliases: wi + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### CommonParameters +This cmdlet supports the common parameters: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutVariable, -OutBuffer, -PipelineVariable, -Verbose, -WarningAction, and -WarningVariable. For more information, see [about_CommonParameters](http://go.microsoft.com/fwlink/?LinkID=113216). + +## INPUTS + +## OUTPUTS + +### Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IChannel + +## 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. + + +PARTNERDESTINATIONINFORESOURCEMOVECHANGEHISTORY : Change history of the resource move. + - `[AzureSubscriptionId ]`: Azure subscription ID of the resource. + - `[ChangedTimeUtc ]`: UTC timestamp of when the resource was changed. + - `[ResourceGroupName ]`: Azure Resource Group of the resource. + +## RELATED LINKS + diff --git a/swaggerci/eventgrid/docs/New-AzEventGridDomain.md b/swaggerci/eventgrid/docs/New-AzEventGridDomain.md new file mode 100644 index 000000000000..4836d57e2477 --- /dev/null +++ b/swaggerci/eventgrid/docs/New-AzEventGridDomain.md @@ -0,0 +1,440 @@ +--- +external help file: +Module Name: Az.EventGrid +online version: https://docs.microsoft.com/en-us/powershell/module/az.eventgrid/new-azeventgriddomain +schema: 2.0.0 +--- + +# New-AzEventGridDomain + +## SYNOPSIS +Asynchronously creates or updates a new domain with the specified parameters. + +## SYNTAX + +``` +New-AzEventGridDomain -Name -ResourceGroupName -Location [-SubscriptionId ] + [-AutoCreateTopicWithFirstSubscription] [-AutoDeleteTopicWithLastSubscription] + [-DataResidencyBoundary ] [-DisableLocalAuth] [-IdentityPrincipalId ] + [-IdentityTenantId ] [-IdentityType ] [-IdentityUserAssignedIdentity ] + [-InboundIPRule ] [-InputSchema ] [-PublicNetworkAccess ] + [-SkuName ] [-Tag ] [-DefaultProfile ] [-AsJob] [-NoWait] [-PassThru] [-Confirm] + [-WhatIf] [] +``` + +## DESCRIPTION +Asynchronously creates or updates a new domain with the specified parameters. + +## EXAMPLES + +### Example 1: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +## PARAMETERS + +### -AsJob +Run the command as a job + +```yaml +Type: System.Management.Automation.SwitchParameter +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -AutoCreateTopicWithFirstSubscription +This Boolean is used to specify the creation mechanism for 'all' the Event Grid Domain Topics associated with this Event Grid Domain resource.In this context, creation of domain topic can be auto-managed (when true) or self-managed (when false). +The default value for this property is true.When this property is null or set to true, Event Grid is responsible of automatically creating the domain topic when the first event subscription iscreated at the scope of the domain topic. +If this property is set to false, then creating the first event subscription will require creating a domain topicby the user. +The self-management mode can be used if the user wants full control of when the domain topic is created, while auto-managed mode provides theflexibility to perform less operations and manage fewer resources by the user. +Also, note that in auto-managed creation mode, user is allowed to create thedomain topic on demand if needed. + +```yaml +Type: System.Management.Automation.SwitchParameter +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -AutoDeleteTopicWithLastSubscription +This Boolean is used to specify the deletion mechanism for 'all' the Event Grid Domain Topics associated with this Event Grid Domain resource.In this context, deletion of domain topic can be auto-managed (when true) or self-managed (when false). +The default value for this property is true.When this property is set to true, Event Grid is responsible of automatically deleting the domain topic when the last event subscription at the scopeof the domain topic is deleted. +If this property is set to false, then the user needs to manually delete the domain topic when it is no longer needed(e.g., when last event subscription is deleted and the resource needs to be cleaned up). +The self-management mode can be used if the user wants fullcontrol of when the domain topic needs to be deleted, while auto-managed mode provides the flexibility to perform less operations and manage fewerresources by the user. + +```yaml +Type: System.Management.Automation.SwitchParameter +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -DataResidencyBoundary +Data Residency Boundary of the resource. + +```yaml +Type: Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.DataResidencyBoundary +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 +``` + +### -DisableLocalAuth +This boolean is used to enable or disable local auth. +Default value is false. +When the property is set to true, only AAD token will be used to authenticate if user is allowed to publish to the domain. + +```yaml +Type: System.Management.Automation.SwitchParameter +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -IdentityPrincipalId +The principal ID of resource identity. + +```yaml +Type: System.String +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -IdentityTenantId +The tenant ID of resource. + +```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 type of managed identity used. +The type 'SystemAssigned, UserAssigned' includes both an implicitly created identity and a set of user-assigned identities. +The type 'None' will remove any identity. + +```yaml +Type: Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.IdentityType +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -IdentityUserAssignedIdentity +The list of user identities associated with the resource. +The user identity dictionary key references will be ARM resource ids in the form:'/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ManagedIdentity/userAssignedIdentities/{identityName}'.This property is currently not used and reserved for future usage. + +```yaml +Type: System.Collections.Hashtable +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -InboundIPRule +This can be used to restrict traffic from specific IPs instead of all IPs. +Note: These are considered only if PublicNetworkAccess is enabled. +To construct, see NOTES section for INBOUNDIPRULE properties and create a hash table. + +```yaml +Type: Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IInboundIPRule[] +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -InputSchema +This determines the format that Event Grid should expect for incoming events published to the Event Grid Domain Resource. + +```yaml +Type: Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.InputSchema +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -Location +Location of the resource. + +```yaml +Type: System.String +Parameter Sets: (All) +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -Name +Name of the domain. + +```yaml +Type: System.String +Parameter Sets: (All) +Aliases: DomainName + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -NoWait +Run the command asynchronously + +```yaml +Type: System.Management.Automation.SwitchParameter +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -PassThru +Returns true when the command succeeds + +```yaml +Type: System.Management.Automation.SwitchParameter +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -PublicNetworkAccess +This determines if traffic is allowed over public network. +By default it is enabled.You can further restrict to specific IPs by configuring \ + +```yaml +Type: Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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 within the user's subscription. + +```yaml +Type: System.String +Parameter Sets: (All) +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -SkuName +The Sku name of the resource. +The possible values are: Basic or Premium. + +```yaml +Type: Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.Sku +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -SubscriptionId +Subscription credentials that uniquely identify a Microsoft Azure subscription. +The subscription ID forms part of the URI for every service call. + +```yaml +Type: System.String +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: (Get-AzContext).Subscription.Id +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -Tag +Tags of the resource. + +```yaml +Type: System.Collections.Hashtable +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -Confirm +Prompts you for confirmation before running the cmdlet. + +```yaml +Type: System.Management.Automation.SwitchParameter +Parameter Sets: (All) +Aliases: cf + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -WhatIf +Shows what would happen if the cmdlet runs. +The cmdlet is not run. + +```yaml +Type: System.Management.Automation.SwitchParameter +Parameter Sets: (All) +Aliases: wi + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### CommonParameters +This cmdlet supports the common parameters: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutVariable, -OutBuffer, -PipelineVariable, -Verbose, -WarningAction, and -WarningVariable. For more information, see [about_CommonParameters](http://go.microsoft.com/fwlink/?LinkID=113216). + +## INPUTS + +## OUTPUTS + +### 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. + + +INBOUNDIPRULE : This can be used to restrict traffic from specific IPs instead of all IPs. Note: These are considered only if PublicNetworkAccess is enabled. + - `[Action ]`: Action to perform based on the match or no match of the IpMask. + - `[IPMask ]`: IP Address in CIDR notation e.g., 10.0.0.0/8. + +## RELATED LINKS + diff --git a/swaggerci/eventgrid/docs/New-AzEventGridDomainEventSubscription.md b/swaggerci/eventgrid/docs/New-AzEventGridDomainEventSubscription.md new file mode 100644 index 000000000000..35ec7cb7c568 --- /dev/null +++ b/swaggerci/eventgrid/docs/New-AzEventGridDomainEventSubscription.md @@ -0,0 +1,497 @@ +--- +external help file: +Module Name: Az.EventGrid +online version: https://docs.microsoft.com/en-us/powershell/module/az.eventgrid/new-azeventgriddomaineventsubscription +schema: 2.0.0 +--- + +# New-AzEventGridDomainEventSubscription + +## SYNOPSIS +Asynchronously creates a new event subscription or updates an existing event subscription. + +## SYNTAX + +``` +New-AzEventGridDomainEventSubscription -DomainName -EventSubscriptionName + -ResourceGroupName [-SubscriptionId ] + [-DeadLetterWithResourceIdentityType ] + [-DeadLetterWithResourceIdentityUserAssignedIdentity ] + [-DeliveryWithResourceIdentityDestinationEndpointType ] + [-DeliveryWithResourceIdentityType ] + [-DeliveryWithResourceIdentityUserAssignedIdentity ] [-EndpointType ] + [-EventDeliverySchema ] [-ExpirationTimeUtc ] + [-FilterAdvancedFilter ] [-FilterEnableAdvancedFilteringOnArray] + [-FilterIncludedEventType ] [-FilterIsSubjectCaseSensitive] [-FilterSubjectBeginsWith ] + [-FilterSubjectEndsWith ] [-Label ] [-RetryPolicyEventTimeToLiveInMinute ] + [-RetryPolicyMaxDeliveryAttempt ] [-DefaultProfile ] [-AsJob] [-NoWait] [-PassThru] + [-Confirm] [-WhatIf] [] +``` + +## DESCRIPTION +Asynchronously creates a new event subscription or updates an existing event subscription. + +## EXAMPLES + +### Example 1: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +## PARAMETERS + +### -AsJob +Run the command as a job + +```yaml +Type: System.Management.Automation.SwitchParameter +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -DeadLetterWithResourceIdentityType +The type of managed identity used. +The type 'SystemAssigned, UserAssigned' includes both an implicitly created identity and a set of user-assigned identities. +The type 'None' will remove any identity. + +```yaml +Type: Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EventSubscriptionIdentityType +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -DeadLetterWithResourceIdentityUserAssignedIdentity +The user identity associated with the resource. + +```yaml +Type: System.String +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -DefaultProfile +The credentials, account, tenant, and subscription used for communication with Azure. + +```yaml +Type: System.Management.Automation.PSObject +Parameter Sets: (All) +Aliases: AzureRMContext, AzureCredential + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -DeliveryWithResourceIdentityDestinationEndpointType +Type of the endpoint for the event subscription destination. + +```yaml +Type: Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EndpointType +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -DeliveryWithResourceIdentityType +The type of managed identity used. +The type 'SystemAssigned, UserAssigned' includes both an implicitly created identity and a set of user-assigned identities. +The type 'None' will remove any identity. + +```yaml +Type: Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EventSubscriptionIdentityType +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -DeliveryWithResourceIdentityUserAssignedIdentity +The user identity associated with the resource. + +```yaml +Type: System.String +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -DomainName +Name of the domain topic. + +```yaml +Type: System.String +Parameter Sets: (All) +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -EndpointType +Type of the endpoint for the event subscription destination. + +```yaml +Type: Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EndpointType +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -EventDeliverySchema +The event delivery schema for the event subscription. + +```yaml +Type: Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EventDeliverySchema +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -EventSubscriptionName +Name of the event subscription to be created. +Event subscription names must be between 3 and 100 characters in length and use alphanumeric letters only. + +```yaml +Type: System.String +Parameter Sets: (All) +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -ExpirationTimeUtc +Expiration time of the event subscription. + +```yaml +Type: System.DateTime +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -FilterAdvancedFilter +An array of advanced filters that are used for filtering event subscriptions. +To construct, see NOTES section for FILTERADVANCEDFILTER properties and create a hash table. + +```yaml +Type: Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IAdvancedFilter[] +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -FilterEnableAdvancedFilteringOnArray +Allows advanced filters to be evaluated against an array of values instead of expecting a singular value. + +```yaml +Type: System.Management.Automation.SwitchParameter +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -FilterIncludedEventType +A list of applicable event types that need to be part of the event subscription. +If it is desired to subscribe to all default event types, set the IncludedEventTypes to null. + +```yaml +Type: System.String[] +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -FilterIsSubjectCaseSensitive +Specifies if the SubjectBeginsWith and SubjectEndsWith properties of the filtershould be compared in a case sensitive manner. + +```yaml +Type: System.Management.Automation.SwitchParameter +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -FilterSubjectBeginsWith +An optional string to filter events for an event subscription based on a resource path prefix.The format of this depends on the publisher of the events.Wildcard characters are not supported in this path. + +```yaml +Type: System.String +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -FilterSubjectEndsWith +An optional string to filter events for an event subscription based on a resource path suffix.Wildcard characters are not supported in this path. + +```yaml +Type: System.String +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -Label +List of user defined labels. + +```yaml +Type: System.String[] +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -NoWait +Run the command asynchronously + +```yaml +Type: System.Management.Automation.SwitchParameter +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -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 within the user's subscription. + +```yaml +Type: System.String +Parameter Sets: (All) +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -RetryPolicyEventTimeToLiveInMinute +Time To Live (in minutes) for events. + +```yaml +Type: System.Int32 +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -RetryPolicyMaxDeliveryAttempt +Maximum number of delivery retry attempts for events. + +```yaml +Type: System.Int32 +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -SubscriptionId +Subscription credentials that uniquely identify a Microsoft Azure subscription. +The subscription ID forms part of the URI for every service call. + +```yaml +Type: System.String +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: (Get-AzContext).Subscription.Id +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -Confirm +Prompts you for confirmation before running the cmdlet. + +```yaml +Type: System.Management.Automation.SwitchParameter +Parameter Sets: (All) +Aliases: cf + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -WhatIf +Shows what would happen if the cmdlet runs. +The cmdlet is not run. + +```yaml +Type: System.Management.Automation.SwitchParameter +Parameter Sets: (All) +Aliases: wi + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### CommonParameters +This cmdlet supports the common parameters: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutVariable, -OutBuffer, -PipelineVariable, -Verbose, -WarningAction, and -WarningVariable. For more information, see [about_CommonParameters](http://go.microsoft.com/fwlink/?LinkID=113216). + +## INPUTS + +## OUTPUTS + +### Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscription + +## 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. + + +FILTERADVANCEDFILTER : An array of advanced filters that are used for filtering event subscriptions. + - `OperatorType `: The operator type used for filtering, e.g., NumberIn, StringContains, BoolEquals and others. + - `[Key ]`: The field/property in the event based on which you want to filter. + +## RELATED LINKS + diff --git a/swaggerci/eventgrid/docs/New-AzEventGridDomainKey.md b/swaggerci/eventgrid/docs/New-AzEventGridDomainKey.md new file mode 100644 index 000000000000..7c9e018686d6 --- /dev/null +++ b/swaggerci/eventgrid/docs/New-AzEventGridDomainKey.md @@ -0,0 +1,276 @@ +--- +external help file: +Module Name: Az.EventGrid +online version: https://docs.microsoft.com/en-us/powershell/module/az.eventgrid/new-azeventgriddomainkey +schema: 2.0.0 +--- + +# New-AzEventGridDomainKey + +## SYNOPSIS +Regenerate a shared access key for a domain. + +## SYNTAX + +### RegenerateExpanded (Default) +``` +New-AzEventGridDomainKey -DomainName -ResourceGroupName -KeyName + [-SubscriptionId ] [-DefaultProfile ] [-PassThru] [-Confirm] [-WhatIf] [] +``` + +### Regenerate +``` +New-AzEventGridDomainKey -DomainName -ResourceGroupName + -RegenerateKeyRequest [-SubscriptionId ] [-DefaultProfile ] + [-PassThru] [-Confirm] [-WhatIf] [] +``` + +### RegenerateViaIdentity +``` +New-AzEventGridDomainKey -InputObject -RegenerateKeyRequest + [-DefaultProfile ] [-PassThru] [-Confirm] [-WhatIf] [] +``` + +### RegenerateViaIdentityExpanded +``` +New-AzEventGridDomainKey -InputObject -KeyName [-DefaultProfile ] + [-PassThru] [-Confirm] [-WhatIf] [] +``` + +## DESCRIPTION +Regenerate a shared access key for a domain. + +## EXAMPLES + +### Example 1: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +## PARAMETERS + +### -DefaultProfile +The credentials, account, tenant, and subscription used for communication with Azure. + +```yaml +Type: System.Management.Automation.PSObject +Parameter Sets: (All) +Aliases: AzureRMContext, AzureCredential + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -DomainName +Name of the domain. + +```yaml +Type: System.String +Parameter Sets: Regenerate, RegenerateExpanded +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.EventGrid.Models.IEventGridIdentity +Parameter Sets: RegenerateViaIdentity, RegenerateViaIdentityExpanded +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: True (ByValue) +Accept wildcard characters: False +``` + +### -KeyName +Key name to regenerate key1 or key2. + +```yaml +Type: System.String +Parameter Sets: RegenerateExpanded, RegenerateViaIdentityExpanded +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -PassThru +Returns true when the command succeeds + +```yaml +Type: System.Management.Automation.SwitchParameter +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -RegenerateKeyRequest +Domain regenerate share access key request. +To construct, see NOTES section for REGENERATEKEYREQUEST properties and create a hash table. + +```yaml +Type: Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDomainRegenerateKeyRequest +Parameter Sets: Regenerate, RegenerateViaIdentity +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: True (ByValue) +Accept wildcard characters: False +``` + +### -ResourceGroupName +The name of the resource group within the user's subscription. + +```yaml +Type: System.String +Parameter Sets: Regenerate, RegenerateExpanded +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -SubscriptionId +Subscription credentials that uniquely identify a Microsoft Azure subscription. +The subscription ID forms part of the URI for every service call. + +```yaml +Type: System.String +Parameter Sets: Regenerate, RegenerateExpanded +Aliases: + +Required: False +Position: Named +Default value: (Get-AzContext).Subscription.Id +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -Confirm +Prompts you for confirmation before running the cmdlet. + +```yaml +Type: System.Management.Automation.SwitchParameter +Parameter Sets: (All) +Aliases: cf + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -WhatIf +Shows what would happen if the cmdlet runs. +The cmdlet is not run. + +```yaml +Type: System.Management.Automation.SwitchParameter +Parameter Sets: (All) +Aliases: wi + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### CommonParameters +This cmdlet supports the common parameters: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutVariable, -OutBuffer, -PipelineVariable, -Verbose, -WarningAction, and -WarningVariable. For more information, see [about_CommonParameters](http://go.microsoft.com/fwlink/?LinkID=113216). + +## INPUTS + +### Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDomainRegenerateKeyRequest + +### Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.IEventGridIdentity + +## OUTPUTS + +### Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDomainSharedAccessKeys + +## 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 + - `[ChannelName ]`: Name of the channel. + - `[DomainName ]`: Name of the domain. + - `[DomainTopicName ]`: Name of the topic. + - `[EventChannelName ]`: Name of the event channel. + - `[EventSubscriptionName ]`: Name of the event subscription. + - `[Id ]`: Resource identity path + - `[Location ]`: Name of the location. + - `[ParentName ]`: The name of the parent resource (namely, either, the topic name, domain name, or partner namespace name). + - `[ParentType ]`: The type of the parent resource. This can be either \'topics\', \'domains\', or \'partnerNamespaces\'. + - `[PartnerDestinationName ]`: Name of the partner destination. + - `[PartnerNamespaceName ]`: Name of the partner namespace. + - `[PartnerRegistrationName ]`: Name of the partner registration. + - `[PartnerTopicName ]`: Name of the partner topic. + - `[PrivateEndpointConnectionName ]`: The name of the private endpoint connection connection. + - `[PrivateLinkResourceName ]`: The name of private link resource. + - `[ProviderNamespace ]`: Namespace of the provider of the topic. + - `[ResourceGroupName ]`: The name of the resource group within the partners subscription. + - `[ResourceName ]`: Name of the resource. + - `[ResourceTypeName ]`: Name of the resource type. + - `[Scope ]`: The scope of the event subscription. The scope can be a subscription, or a resource group, or a top level resource belonging to a resource provider namespace, or an EventGrid topic. For example, use '/subscriptions/{subscriptionId}/' for a subscription, '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}' for a resource group, and '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}' for a resource, and '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.EventGrid/topics/{topicName}' for an EventGrid topic. + - `[SubscriptionId ]`: Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription ID forms part of the URI for every service call. + - `[SystemTopicName ]`: Name of the system topic. + - `[TopicName ]`: Name of the domain topic. + - `[TopicTypeName ]`: Name of the topic type. + - `[VerifiedPartnerName ]`: Name of the verified partner. + +REGENERATEKEYREQUEST : Domain regenerate share access key request. + - `KeyName `: Key name to regenerate key1 or key2. + +## RELATED LINKS + diff --git a/swaggerci/eventgrid/docs/New-AzEventGridDomainTopicEventSubscription.md b/swaggerci/eventgrid/docs/New-AzEventGridDomainTopicEventSubscription.md new file mode 100644 index 000000000000..30d0da8d87fe --- /dev/null +++ b/swaggerci/eventgrid/docs/New-AzEventGridDomainTopicEventSubscription.md @@ -0,0 +1,512 @@ +--- +external help file: +Module Name: Az.EventGrid +online version: https://docs.microsoft.com/en-us/powershell/module/az.eventgrid/new-azeventgriddomaintopiceventsubscription +schema: 2.0.0 +--- + +# New-AzEventGridDomainTopicEventSubscription + +## SYNOPSIS +Asynchronously creates a new event subscription or updates an existing event subscription. + +## SYNTAX + +``` +New-AzEventGridDomainTopicEventSubscription -DomainName -EventSubscriptionName + -ResourceGroupName -TopicName [-SubscriptionId ] + [-DeadLetterWithResourceIdentityType ] + [-DeadLetterWithResourceIdentityUserAssignedIdentity ] + [-DeliveryWithResourceIdentityDestinationEndpointType ] + [-DeliveryWithResourceIdentityType ] + [-DeliveryWithResourceIdentityUserAssignedIdentity ] [-EndpointType ] + [-EventDeliverySchema ] [-ExpirationTimeUtc ] + [-FilterAdvancedFilter ] [-FilterEnableAdvancedFilteringOnArray] + [-FilterIncludedEventType ] [-FilterIsSubjectCaseSensitive] [-FilterSubjectBeginsWith ] + [-FilterSubjectEndsWith ] [-Label ] [-RetryPolicyEventTimeToLiveInMinute ] + [-RetryPolicyMaxDeliveryAttempt ] [-DefaultProfile ] [-AsJob] [-NoWait] [-PassThru] + [-Confirm] [-WhatIf] [] +``` + +## DESCRIPTION +Asynchronously creates a new event subscription or updates an existing event subscription. + +## EXAMPLES + +### Example 1: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +## PARAMETERS + +### -AsJob +Run the command as a job + +```yaml +Type: System.Management.Automation.SwitchParameter +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -DeadLetterWithResourceIdentityType +The type of managed identity used. +The type 'SystemAssigned, UserAssigned' includes both an implicitly created identity and a set of user-assigned identities. +The type 'None' will remove any identity. + +```yaml +Type: Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EventSubscriptionIdentityType +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -DeadLetterWithResourceIdentityUserAssignedIdentity +The user identity associated with the resource. + +```yaml +Type: System.String +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -DefaultProfile +The credentials, account, tenant, and subscription used for communication with Azure. + +```yaml +Type: System.Management.Automation.PSObject +Parameter Sets: (All) +Aliases: AzureRMContext, AzureCredential + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -DeliveryWithResourceIdentityDestinationEndpointType +Type of the endpoint for the event subscription destination. + +```yaml +Type: Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EndpointType +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -DeliveryWithResourceIdentityType +The type of managed identity used. +The type 'SystemAssigned, UserAssigned' includes both an implicitly created identity and a set of user-assigned identities. +The type 'None' will remove any identity. + +```yaml +Type: Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EventSubscriptionIdentityType +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -DeliveryWithResourceIdentityUserAssignedIdentity +The user identity associated with the resource. + +```yaml +Type: System.String +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -DomainName +Name of the top level domain. + +```yaml +Type: System.String +Parameter Sets: (All) +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -EndpointType +Type of the endpoint for the event subscription destination. + +```yaml +Type: Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EndpointType +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -EventDeliverySchema +The event delivery schema for the event subscription. + +```yaml +Type: Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EventDeliverySchema +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -EventSubscriptionName +Name of the event subscription to be created. +Event subscription names must be between 3 and 100 characters in length and use alphanumeric letters only. + +```yaml +Type: System.String +Parameter Sets: (All) +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -ExpirationTimeUtc +Expiration time of the event subscription. + +```yaml +Type: System.DateTime +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -FilterAdvancedFilter +An array of advanced filters that are used for filtering event subscriptions. +To construct, see NOTES section for FILTERADVANCEDFILTER properties and create a hash table. + +```yaml +Type: Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IAdvancedFilter[] +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -FilterEnableAdvancedFilteringOnArray +Allows advanced filters to be evaluated against an array of values instead of expecting a singular value. + +```yaml +Type: System.Management.Automation.SwitchParameter +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -FilterIncludedEventType +A list of applicable event types that need to be part of the event subscription. +If it is desired to subscribe to all default event types, set the IncludedEventTypes to null. + +```yaml +Type: System.String[] +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -FilterIsSubjectCaseSensitive +Specifies if the SubjectBeginsWith and SubjectEndsWith properties of the filtershould be compared in a case sensitive manner. + +```yaml +Type: System.Management.Automation.SwitchParameter +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -FilterSubjectBeginsWith +An optional string to filter events for an event subscription based on a resource path prefix.The format of this depends on the publisher of the events.Wildcard characters are not supported in this path. + +```yaml +Type: System.String +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -FilterSubjectEndsWith +An optional string to filter events for an event subscription based on a resource path suffix.Wildcard characters are not supported in this path. + +```yaml +Type: System.String +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -Label +List of user defined labels. + +```yaml +Type: System.String[] +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -NoWait +Run the command asynchronously + +```yaml +Type: System.Management.Automation.SwitchParameter +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -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 within the user's subscription. + +```yaml +Type: System.String +Parameter Sets: (All) +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -RetryPolicyEventTimeToLiveInMinute +Time To Live (in minutes) for events. + +```yaml +Type: System.Int32 +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -RetryPolicyMaxDeliveryAttempt +Maximum number of delivery retry attempts for events. + +```yaml +Type: System.Int32 +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -SubscriptionId +Subscription credentials that uniquely identify a Microsoft Azure subscription. +The subscription ID forms part of the URI for every service call. + +```yaml +Type: System.String +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: (Get-AzContext).Subscription.Id +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -TopicName +Name of the domain topic. + +```yaml +Type: System.String +Parameter Sets: (All) +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 + +## OUTPUTS + +### Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscription + +## 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. + + +FILTERADVANCEDFILTER : An array of advanced filters that are used for filtering event subscriptions. + - `OperatorType `: The operator type used for filtering, e.g., NumberIn, StringContains, BoolEquals and others. + - `[Key ]`: The field/property in the event based on which you want to filter. + +## RELATED LINKS + diff --git a/swaggerci/eventgrid/docs/New-AzEventGridEventChannel.md b/swaggerci/eventgrid/docs/New-AzEventGridEventChannel.md new file mode 100644 index 000000000000..79af38db04fb --- /dev/null +++ b/swaggerci/eventgrid/docs/New-AzEventGridEventChannel.md @@ -0,0 +1,324 @@ +--- +external help file: +Module Name: Az.EventGrid +online version: https://docs.microsoft.com/en-us/powershell/module/az.eventgrid/new-azeventgrideventchannel +schema: 2.0.0 +--- + +# New-AzEventGridEventChannel + +## SYNOPSIS +Asynchronously creates a new event channel with the specified parameters. + +## SYNTAX + +``` +New-AzEventGridEventChannel -Name -PartnerNamespaceName -ResourceGroupName + [-SubscriptionId ] [-DestinationAzureSubscriptionId ] [-DestinationPartnerTopicName ] + [-DestinationResourceGroup ] [-EventChannelSource ] + [-ExpirationTimeIfNotActivatedUtc ] [-FilterAdvancedFilter ] + [-FilterEnableAdvancedFilteringOnArray] [-PartnerTopicFriendlyDescription ] + [-DefaultProfile ] [-PassThru] [-Confirm] [-WhatIf] [] +``` + +## DESCRIPTION +Asynchronously creates a new event channel with the specified parameters. + +## EXAMPLES + +### Example 1: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +## PARAMETERS + +### -DefaultProfile +The credentials, account, tenant, and subscription used for communication with Azure. + +```yaml +Type: System.Management.Automation.PSObject +Parameter Sets: (All) +Aliases: AzureRMContext, AzureCredential + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -DestinationAzureSubscriptionId +Azure subscription ID of the customer creating the event channel. +The partner topicassociated with the event channel will be created under this Azure subscription. + +```yaml +Type: System.String +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -DestinationPartnerTopicName +Name of the partner topic associated with the event channel. + +```yaml +Type: System.String +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -DestinationResourceGroup +Azure Resource Group of the customer creating the event channel. +The partner topicassociated with the event channel will be created under this resource group. + +```yaml +Type: System.String +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -EventChannelSource +The identifier of the resource that's the source of the events.This represents a unique resource in the partner's resource model. + +```yaml +Type: System.String +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -ExpirationTimeIfNotActivatedUtc +Expiration time of the event channel. +If this timer expires while the corresponding partner topic is never activated,the event channel and corresponding partner topic are deleted. + +```yaml +Type: System.DateTime +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -FilterAdvancedFilter +An array of advanced filters that are used for filtering event channels. +To construct, see NOTES section for FILTERADVANCEDFILTER properties and create a hash table. + +```yaml +Type: Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IAdvancedFilter[] +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -FilterEnableAdvancedFilteringOnArray +Allows advanced filters to be evaluated against an array of values instead of expecting a singular value. +The default value is either false or null. + +```yaml +Type: System.Management.Automation.SwitchParameter +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -Name +Name of the event channel. + +```yaml +Type: System.String +Parameter Sets: (All) +Aliases: EventChannelName + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -PartnerNamespaceName +Name of the partner namespace. + +```yaml +Type: System.String +Parameter Sets: (All) +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -PartnerTopicFriendlyDescription +Friendly description about the topic. +This can be set by the publisher/partner to show custom description for the customer partner topic.This will be helpful to remove any ambiguity of the origin of creation of the partner topic for the customer. + +```yaml +Type: System.String +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -PassThru +Returns true when the command succeeds + +```yaml +Type: System.Management.Automation.SwitchParameter +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -ResourceGroupName +The name of the resource group within the user's subscription. + +```yaml +Type: System.String +Parameter Sets: (All) +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -SubscriptionId +Subscription credentials that uniquely identify a Microsoft Azure subscription. +The subscription ID forms part of the URI for every service call. + +```yaml +Type: System.String +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: (Get-AzContext).Subscription.Id +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -Confirm +Prompts you for confirmation before running the cmdlet. + +```yaml +Type: System.Management.Automation.SwitchParameter +Parameter Sets: (All) +Aliases: cf + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -WhatIf +Shows what would happen if the cmdlet runs. +The cmdlet is not run. + +```yaml +Type: System.Management.Automation.SwitchParameter +Parameter Sets: (All) +Aliases: wi + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### CommonParameters +This cmdlet supports the common parameters: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutVariable, -OutBuffer, -PipelineVariable, -Verbose, -WarningAction, and -WarningVariable. For more information, see [about_CommonParameters](http://go.microsoft.com/fwlink/?LinkID=113216). + +## INPUTS + +## OUTPUTS + +### Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventChannel + +## 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. + + +FILTERADVANCEDFILTER : An array of advanced filters that are used for filtering event channels. + - `OperatorType `: The operator type used for filtering, e.g., NumberIn, StringContains, BoolEquals and others. + - `[Key ]`: The field/property in the event based on which you want to filter. + +## RELATED LINKS + diff --git a/swaggerci/eventgrid/docs/New-AzEventGridEventSubscription.md b/swaggerci/eventgrid/docs/New-AzEventGridEventSubscription.md new file mode 100644 index 000000000000..df737cccc73b --- /dev/null +++ b/swaggerci/eventgrid/docs/New-AzEventGridEventSubscription.md @@ -0,0 +1,467 @@ +--- +external help file: +Module Name: Az.EventGrid +online version: https://docs.microsoft.com/en-us/powershell/module/az.eventgrid/new-azeventgrideventsubscription +schema: 2.0.0 +--- + +# New-AzEventGridEventSubscription + +## SYNOPSIS +Asynchronously creates a new event subscription or updates an existing event subscription based on the specified scope. + +## SYNTAX + +``` +New-AzEventGridEventSubscription -Name -Scope + [-DeadLetterWithResourceIdentityType ] + [-DeadLetterWithResourceIdentityUserAssignedIdentity ] + [-DeliveryWithResourceIdentityDestinationEndpointType ] + [-DeliveryWithResourceIdentityType ] + [-DeliveryWithResourceIdentityUserAssignedIdentity ] [-EndpointType ] + [-EventDeliverySchema ] [-ExpirationTimeUtc ] + [-FilterAdvancedFilter ] [-FilterEnableAdvancedFilteringOnArray] + [-FilterIncludedEventType ] [-FilterIsSubjectCaseSensitive] [-FilterSubjectBeginsWith ] + [-FilterSubjectEndsWith ] [-Label ] [-RetryPolicyEventTimeToLiveInMinute ] + [-RetryPolicyMaxDeliveryAttempt ] [-DefaultProfile ] [-AsJob] [-NoWait] [-PassThru] + [-Confirm] [-WhatIf] [] +``` + +## DESCRIPTION +Asynchronously creates a new event subscription or updates an existing event subscription based on the specified scope. + +## EXAMPLES + +### Example 1: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +## PARAMETERS + +### -AsJob +Run the command as a job + +```yaml +Type: System.Management.Automation.SwitchParameter +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -DeadLetterWithResourceIdentityType +The type of managed identity used. +The type 'SystemAssigned, UserAssigned' includes both an implicitly created identity and a set of user-assigned identities. +The type 'None' will remove any identity. + +```yaml +Type: Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EventSubscriptionIdentityType +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -DeadLetterWithResourceIdentityUserAssignedIdentity +The user identity associated with the resource. + +```yaml +Type: System.String +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -DefaultProfile +The credentials, account, tenant, and subscription used for communication with Azure. + +```yaml +Type: System.Management.Automation.PSObject +Parameter Sets: (All) +Aliases: AzureRMContext, AzureCredential + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -DeliveryWithResourceIdentityDestinationEndpointType +Type of the endpoint for the event subscription destination. + +```yaml +Type: Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EndpointType +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -DeliveryWithResourceIdentityType +The type of managed identity used. +The type 'SystemAssigned, UserAssigned' includes both an implicitly created identity and a set of user-assigned identities. +The type 'None' will remove any identity. + +```yaml +Type: Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EventSubscriptionIdentityType +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -DeliveryWithResourceIdentityUserAssignedIdentity +The user identity associated with the resource. + +```yaml +Type: System.String +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -EndpointType +Type of the endpoint for the event subscription destination. + +```yaml +Type: Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EndpointType +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -EventDeliverySchema +The event delivery schema for the event subscription. + +```yaml +Type: Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EventDeliverySchema +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -ExpirationTimeUtc +Expiration time of the event subscription. + +```yaml +Type: System.DateTime +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -FilterAdvancedFilter +An array of advanced filters that are used for filtering event subscriptions. +To construct, see NOTES section for FILTERADVANCEDFILTER properties and create a hash table. + +```yaml +Type: Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IAdvancedFilter[] +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -FilterEnableAdvancedFilteringOnArray +Allows advanced filters to be evaluated against an array of values instead of expecting a singular value. + +```yaml +Type: System.Management.Automation.SwitchParameter +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -FilterIncludedEventType +A list of applicable event types that need to be part of the event subscription. +If it is desired to subscribe to all default event types, set the IncludedEventTypes to null. + +```yaml +Type: System.String[] +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -FilterIsSubjectCaseSensitive +Specifies if the SubjectBeginsWith and SubjectEndsWith properties of the filtershould be compared in a case sensitive manner. + +```yaml +Type: System.Management.Automation.SwitchParameter +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -FilterSubjectBeginsWith +An optional string to filter events for an event subscription based on a resource path prefix.The format of this depends on the publisher of the events.Wildcard characters are not supported in this path. + +```yaml +Type: System.String +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -FilterSubjectEndsWith +An optional string to filter events for an event subscription based on a resource path suffix.Wildcard characters are not supported in this path. + +```yaml +Type: System.String +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -Label +List of user defined labels. + +```yaml +Type: System.String[] +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -Name +Name of the event subscription. +Event subscription names must be between 3 and 64 characters in length and should use alphanumeric letters only. + +```yaml +Type: System.String +Parameter Sets: (All) +Aliases: EventSubscriptionName + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -NoWait +Run the command asynchronously + +```yaml +Type: System.Management.Automation.SwitchParameter +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -PassThru +Returns true when the command succeeds + +```yaml +Type: System.Management.Automation.SwitchParameter +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -RetryPolicyEventTimeToLiveInMinute +Time To Live (in minutes) for events. + +```yaml +Type: System.Int32 +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -RetryPolicyMaxDeliveryAttempt +Maximum number of delivery retry attempts for events. + +```yaml +Type: System.Int32 +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -Scope +The identifier of the resource to which the event subscription needs to be created or updated. +The scope can be a subscription, or a resource group, or a top level resource belonging to a resource provider namespace, or an EventGrid topic. +For example, use '/subscriptions/{subscriptionId}/' for a subscription, '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}' for a resource group, and '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}' for a resource, and '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.EventGrid/topics/{topicName}' for an EventGrid topic. + +```yaml +Type: System.String +Parameter Sets: (All) +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 + +## 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. + + +FILTERADVANCEDFILTER : An array of advanced filters that are used for filtering event subscriptions. + - `OperatorType `: The operator type used for filtering, e.g., NumberIn, StringContains, BoolEquals and others. + - `[Key ]`: The field/property in the event based on which you want to filter. + +## RELATED LINKS + diff --git a/swaggerci/eventgrid/docs/New-AzEventGridPartnerConfiguration.md b/swaggerci/eventgrid/docs/New-AzEventGridPartnerConfiguration.md new file mode 100644 index 000000000000..c820c0509a4e --- /dev/null +++ b/swaggerci/eventgrid/docs/New-AzEventGridPartnerConfiguration.md @@ -0,0 +1,276 @@ +--- +external help file: +Module Name: Az.EventGrid +online version: https://docs.microsoft.com/en-us/powershell/module/az.eventgrid/new-azeventgridpartnerconfiguration +schema: 2.0.0 +--- + +# New-AzEventGridPartnerConfiguration + +## SYNOPSIS +Synchronously creates or updates a partner configuration with the specified parameters. + +## SYNTAX + +``` +New-AzEventGridPartnerConfiguration -ResourceGroupName [-SubscriptionId ] + [-Location ] [-PartnerAuthorizationAuthorizedPartnersList ] + [-PartnerAuthorizationDefaultMaximumExpirationTimeInDay ] + [-ProvisioningState ] [-Tag ] [-DefaultProfile ] + [-AsJob] [-NoWait] [-PassThru] [-Confirm] [-WhatIf] [] +``` + +## DESCRIPTION +Synchronously creates or updates a partner configuration with the specified parameters. + +## EXAMPLES + +### Example 1: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +## PARAMETERS + +### -AsJob +Run the command as a job + +```yaml +Type: System.Management.Automation.SwitchParameter +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -DefaultProfile +The credentials, account, tenant, and subscription used for communication with Azure. + +```yaml +Type: System.Management.Automation.PSObject +Parameter Sets: (All) +Aliases: AzureRMContext, AzureCredential + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -Location +Location of the resource. + +```yaml +Type: System.String +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -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 +``` + +### -PartnerAuthorizationAuthorizedPartnersList +The list of authorized partners. +To construct, see NOTES section for PARTNERAUTHORIZATIONAUTHORIZEDPARTNERSLIST properties and create a hash table. + +```yaml +Type: Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartner[] +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -PartnerAuthorizationDefaultMaximumExpirationTimeInDay +Time used to validate the authorization expiration time for each authorized partner. +If DefaultMaximumExpirationTimeInDays isnot specified, the default is 7 days. +Otherwise, allowed values are between 1 and 365 days. + +```yaml +Type: System.Int32 +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -PassThru +Returns true when the command succeeds + +```yaml +Type: System.Management.Automation.SwitchParameter +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -ProvisioningState +Provisioning state of the partner configuration. + +```yaml +Type: Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.PartnerConfigurationProvisioningState +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 within the user's subscription. + +```yaml +Type: System.String +Parameter Sets: (All) +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -SubscriptionId +Subscription credentials that uniquely identify a Microsoft Azure subscription. +The subscription ID forms part of the URI for every service call. + +```yaml +Type: System.String +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: (Get-AzContext).Subscription.Id +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -Tag +Tags of the resource. + +```yaml +Type: System.Collections.Hashtable +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -Confirm +Prompts you for confirmation before running the cmdlet. + +```yaml +Type: System.Management.Automation.SwitchParameter +Parameter Sets: (All) +Aliases: cf + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -WhatIf +Shows what would happen if the cmdlet runs. +The cmdlet is not run. + +```yaml +Type: System.Management.Automation.SwitchParameter +Parameter Sets: (All) +Aliases: wi + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### CommonParameters +This cmdlet supports the common parameters: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutVariable, -OutBuffer, -PipelineVariable, -Verbose, -WarningAction, and -WarningVariable. For more information, see [about_CommonParameters](http://go.microsoft.com/fwlink/?LinkID=113216). + +## INPUTS + +## OUTPUTS + +### Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerConfiguration + +## 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. + + +PARTNERAUTHORIZATIONAUTHORIZEDPARTNERSLIST : The list of authorized partners. + - `[AuthorizationExpirationTimeInUtc ]`: Expiration time of the partner authorization. If this timer expires, any request from this partner to create, update or delete resources in subscriber's context will fail. If specified, the allowed values are between 1 to the value of defaultMaximumExpirationTimeInDays specified in PartnerConfiguration. If not specified, the default value will be the value of defaultMaximumExpirationTimeInDays specified in PartnerConfiguration or 7 if this value is not specified. + - `[Name ]`: The partner name. + - `[RegistrationImmutableId ]`: The immutableId of the corresponding partner registration. + +## RELATED LINKS + diff --git a/swaggerci/eventgrid/docs/New-AzEventGridPartnerDestination.md b/swaggerci/eventgrid/docs/New-AzEventGridPartnerDestination.md new file mode 100644 index 000000000000..28d1c23a2a36 --- /dev/null +++ b/swaggerci/eventgrid/docs/New-AzEventGridPartnerDestination.md @@ -0,0 +1,310 @@ +--- +external help file: +Module Name: Az.EventGrid +online version: https://docs.microsoft.com/en-us/powershell/module/az.eventgrid/new-azeventgridpartnerdestination +schema: 2.0.0 +--- + +# New-AzEventGridPartnerDestination + +## SYNOPSIS +Asynchronously creates a new partner destination with the specified parameters. + +## SYNTAX + +``` +New-AzEventGridPartnerDestination -Name -ResourceGroupName -Location + [-SubscriptionId ] [-ActivationState ] [-EndpointBaseUrl ] + [-EndpointServiceContext ] [-ExpirationTimeIfNotActivatedUtc ] + [-MessageForActivation ] [-PartnerRegistrationImmutableId ] + [-ProvisioningState ] [-Tag ] [-DefaultProfile ] + [-PassThru] [-Confirm] [-WhatIf] [] +``` + +## DESCRIPTION +Asynchronously creates a new partner destination with the specified parameters. + +## EXAMPLES + +### Example 1: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +## PARAMETERS + +### -ActivationState +Activation state of the partner destination. + +```yaml +Type: Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.PartnerDestinationActivationState +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 +``` + +### -EndpointBaseUrl +Endpoint Base URL of the partner destination + +```yaml +Type: System.String +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -EndpointServiceContext +Endpoint context associated with this partner destination. + +```yaml +Type: System.String +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -ExpirationTimeIfNotActivatedUtc +Expiration time of the partner destination. +If this timer expires and the partner destination was never activated,the partner destination and corresponding channel are deleted. + +```yaml +Type: System.DateTime +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -Location +Location of the resource. + +```yaml +Type: System.String +Parameter Sets: (All) +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -MessageForActivation +Context or helpful message that can be used during the approval process. + +```yaml +Type: System.String +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -Name +Name of the partner destination. + +```yaml +Type: System.String +Parameter Sets: (All) +Aliases: PartnerDestinationName + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -PartnerRegistrationImmutableId +The immutable Id of the corresponding partner registration. + +```yaml +Type: System.String +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -PassThru +Returns true when the command succeeds + +```yaml +Type: System.Management.Automation.SwitchParameter +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -ProvisioningState +Provisioning state of the partner destination. + +```yaml +Type: Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.PartnerDestinationProvisioningState +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 within the user's subscription. + +```yaml +Type: System.String +Parameter Sets: (All) +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -SubscriptionId +Subscription credentials that uniquely identify a Microsoft Azure subscription. +The subscription ID forms part of the URI for every service call. + +```yaml +Type: System.String +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: (Get-AzContext).Subscription.Id +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -Tag +Tags of the resource. + +```yaml +Type: System.Collections.Hashtable +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -Confirm +Prompts you for confirmation before running the cmdlet. + +```yaml +Type: System.Management.Automation.SwitchParameter +Parameter Sets: (All) +Aliases: cf + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -WhatIf +Shows what would happen if the cmdlet runs. +The cmdlet is not run. + +```yaml +Type: System.Management.Automation.SwitchParameter +Parameter Sets: (All) +Aliases: wi + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### CommonParameters +This cmdlet supports the common parameters: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutVariable, -OutBuffer, -PipelineVariable, -Verbose, -WarningAction, and -WarningVariable. For more information, see [about_CommonParameters](http://go.microsoft.com/fwlink/?LinkID=113216). + +## INPUTS + +## OUTPUTS + +### Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerDestination + +## NOTES + +ALIASES + +## RELATED LINKS + diff --git a/swaggerci/eventgrid/docs/New-AzEventGridPartnerNamespace.md b/swaggerci/eventgrid/docs/New-AzEventGridPartnerNamespace.md new file mode 100644 index 000000000000..a947b85e8a95 --- /dev/null +++ b/swaggerci/eventgrid/docs/New-AzEventGridPartnerNamespace.md @@ -0,0 +1,324 @@ +--- +external help file: +Module Name: Az.EventGrid +online version: https://docs.microsoft.com/en-us/powershell/module/az.eventgrid/new-azeventgridpartnernamespace +schema: 2.0.0 +--- + +# New-AzEventGridPartnerNamespace + +## SYNOPSIS +Asynchronously creates a new partner namespace with the specified parameters. + +## SYNTAX + +``` +New-AzEventGridPartnerNamespace -Name -ResourceGroupName -Location + [-SubscriptionId ] [-DisableLocalAuth] [-InboundIPRule ] + [-PartnerRegistrationFullyQualifiedId ] [-PartnerTopicRoutingMode ] + [-PublicNetworkAccess ] [-Tag ] [-DefaultProfile ] [-AsJob] + [-NoWait] [-PassThru] [-Confirm] [-WhatIf] [] +``` + +## DESCRIPTION +Asynchronously creates a new partner namespace with the specified parameters. + +## EXAMPLES + +### Example 1: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +## PARAMETERS + +### -AsJob +Run the command as a job + +```yaml +Type: System.Management.Automation.SwitchParameter +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -DefaultProfile +The credentials, account, tenant, and subscription used for communication with Azure. + +```yaml +Type: System.Management.Automation.PSObject +Parameter Sets: (All) +Aliases: AzureRMContext, AzureCredential + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -DisableLocalAuth +This boolean is used to enable or disable local auth. +Default value is false. +When the property is set to true, only AAD token will be used to authenticate if user is allowed to publish to the partner namespace. + +```yaml +Type: System.Management.Automation.SwitchParameter +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -InboundIPRule +This can be used to restrict traffic from specific IPs instead of all IPs. +Note: These are considered only if PublicNetworkAccess is enabled. +To construct, see NOTES section for INBOUNDIPRULE properties and create a hash table. + +```yaml +Type: Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IInboundIPRule[] +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -Location +Location of the resource. + +```yaml +Type: System.String +Parameter Sets: (All) +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -Name +Name of the partner namespace. + +```yaml +Type: System.String +Parameter Sets: (All) +Aliases: PartnerNamespaceName + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -NoWait +Run the command asynchronously + +```yaml +Type: System.Management.Automation.SwitchParameter +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -PartnerRegistrationFullyQualifiedId +The fully qualified ARM Id of the partner registration that should be associated with this partner namespace. +This takes the following format:/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.EventGrid/partnerRegistrations/{partnerRegistrationName}. + +```yaml +Type: System.String +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -PartnerTopicRoutingMode +This determines if events published to this partner namespace should use the source attribute in the event payloador use the channel name in the header when matching to the partner topic. +If none is specified, source attribute routing will be used to match the partner topic. + +```yaml +Type: Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.PartnerTopicRoutingMode +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -PassThru +Returns true when the command succeeds + +```yaml +Type: System.Management.Automation.SwitchParameter +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -PublicNetworkAccess +This determines if traffic is allowed over public network. +By default it is enabled.You can further restrict to specific IPs by configuring \ + +```yaml +Type: Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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 within the user's subscription. + +```yaml +Type: System.String +Parameter Sets: (All) +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -SubscriptionId +Subscription credentials that uniquely identify a Microsoft Azure subscription. +The subscription ID forms part of the URI for every service call. + +```yaml +Type: System.String +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: (Get-AzContext).Subscription.Id +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -Tag +Tags of the resource. + +```yaml +Type: System.Collections.Hashtable +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -Confirm +Prompts you for confirmation before running the cmdlet. + +```yaml +Type: System.Management.Automation.SwitchParameter +Parameter Sets: (All) +Aliases: cf + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -WhatIf +Shows what would happen if the cmdlet runs. +The cmdlet is not run. + +```yaml +Type: System.Management.Automation.SwitchParameter +Parameter Sets: (All) +Aliases: wi + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### CommonParameters +This cmdlet supports the common parameters: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutVariable, -OutBuffer, -PipelineVariable, -Verbose, -WarningAction, and -WarningVariable. For more information, see [about_CommonParameters](http://go.microsoft.com/fwlink/?LinkID=113216). + +## INPUTS + +## OUTPUTS + +### 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. + + +INBOUNDIPRULE : This can be used to restrict traffic from specific IPs instead of all IPs. Note: These are considered only if PublicNetworkAccess is enabled. + - `[Action ]`: Action to perform based on the match or no match of the IpMask. + - `[IPMask ]`: IP Address in CIDR notation e.g., 10.0.0.0/8. + +## RELATED LINKS + diff --git a/swaggerci/eventgrid/docs/New-AzEventGridPartnerNamespaceKey.md b/swaggerci/eventgrid/docs/New-AzEventGridPartnerNamespaceKey.md new file mode 100644 index 000000000000..690c0baf611a --- /dev/null +++ b/swaggerci/eventgrid/docs/New-AzEventGridPartnerNamespaceKey.md @@ -0,0 +1,278 @@ +--- +external help file: +Module Name: Az.EventGrid +online version: https://docs.microsoft.com/en-us/powershell/module/az.eventgrid/new-azeventgridpartnernamespacekey +schema: 2.0.0 +--- + +# New-AzEventGridPartnerNamespaceKey + +## SYNOPSIS +Regenerate a shared access key for a partner namespace. + +## SYNTAX + +### RegenerateExpanded (Default) +``` +New-AzEventGridPartnerNamespaceKey -PartnerNamespaceName -ResourceGroupName + -KeyName [-SubscriptionId ] [-DefaultProfile ] [-PassThru] [-Confirm] [-WhatIf] + [] +``` + +### Regenerate +``` +New-AzEventGridPartnerNamespaceKey -PartnerNamespaceName -ResourceGroupName + -RegenerateKeyRequest [-SubscriptionId ] + [-DefaultProfile ] [-PassThru] [-Confirm] [-WhatIf] [] +``` + +### RegenerateViaIdentity +``` +New-AzEventGridPartnerNamespaceKey -InputObject + -RegenerateKeyRequest [-DefaultProfile ] [-PassThru] + [-Confirm] [-WhatIf] [] +``` + +### RegenerateViaIdentityExpanded +``` +New-AzEventGridPartnerNamespaceKey -InputObject -KeyName + [-DefaultProfile ] [-PassThru] [-Confirm] [-WhatIf] [] +``` + +## DESCRIPTION +Regenerate a shared access key for a partner namespace. + +## EXAMPLES + +### Example 1: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +## PARAMETERS + +### -DefaultProfile +The credentials, account, tenant, and subscription used for communication with Azure. + +```yaml +Type: System.Management.Automation.PSObject +Parameter Sets: (All) +Aliases: AzureRMContext, AzureCredential + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -InputObject +Identity Parameter +To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + +```yaml +Type: Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.IEventGridIdentity +Parameter Sets: RegenerateViaIdentity, RegenerateViaIdentityExpanded +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: True (ByValue) +Accept wildcard characters: False +``` + +### -KeyName +Key name to regenerate (key1 or key2). + +```yaml +Type: System.String +Parameter Sets: RegenerateExpanded, RegenerateViaIdentityExpanded +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -PartnerNamespaceName +Name of the partner namespace. + +```yaml +Type: System.String +Parameter Sets: Regenerate, RegenerateExpanded +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -PassThru +Returns true when the command succeeds + +```yaml +Type: System.Management.Automation.SwitchParameter +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -RegenerateKeyRequest +PartnerNamespace regenerate shared access key request. +To construct, see NOTES section for REGENERATEKEYREQUEST properties and create a hash table. + +```yaml +Type: Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerNamespaceRegenerateKeyRequest +Parameter Sets: Regenerate, RegenerateViaIdentity +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: True (ByValue) +Accept wildcard characters: False +``` + +### -ResourceGroupName +The name of the resource group within the user's subscription. + +```yaml +Type: System.String +Parameter Sets: Regenerate, RegenerateExpanded +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -SubscriptionId +Subscription credentials that uniquely identify a Microsoft Azure subscription. +The subscription ID forms part of the URI for every service call. + +```yaml +Type: System.String +Parameter Sets: Regenerate, RegenerateExpanded +Aliases: + +Required: False +Position: Named +Default value: (Get-AzContext).Subscription.Id +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -Confirm +Prompts you for confirmation before running the cmdlet. + +```yaml +Type: System.Management.Automation.SwitchParameter +Parameter Sets: (All) +Aliases: cf + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -WhatIf +Shows what would happen if the cmdlet runs. +The cmdlet is not run. + +```yaml +Type: System.Management.Automation.SwitchParameter +Parameter Sets: (All) +Aliases: wi + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### CommonParameters +This cmdlet supports the common parameters: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutVariable, -OutBuffer, -PipelineVariable, -Verbose, -WarningAction, and -WarningVariable. For more information, see [about_CommonParameters](http://go.microsoft.com/fwlink/?LinkID=113216). + +## INPUTS + +### Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerNamespaceRegenerateKeyRequest + +### Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.IEventGridIdentity + +## OUTPUTS + +### Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerNamespaceSharedAccessKeys + +## 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 + - `[ChannelName ]`: Name of the channel. + - `[DomainName ]`: Name of the domain. + - `[DomainTopicName ]`: Name of the topic. + - `[EventChannelName ]`: Name of the event channel. + - `[EventSubscriptionName ]`: Name of the event subscription. + - `[Id ]`: Resource identity path + - `[Location ]`: Name of the location. + - `[ParentName ]`: The name of the parent resource (namely, either, the topic name, domain name, or partner namespace name). + - `[ParentType ]`: The type of the parent resource. This can be either \'topics\', \'domains\', or \'partnerNamespaces\'. + - `[PartnerDestinationName ]`: Name of the partner destination. + - `[PartnerNamespaceName ]`: Name of the partner namespace. + - `[PartnerRegistrationName ]`: Name of the partner registration. + - `[PartnerTopicName ]`: Name of the partner topic. + - `[PrivateEndpointConnectionName ]`: The name of the private endpoint connection connection. + - `[PrivateLinkResourceName ]`: The name of private link resource. + - `[ProviderNamespace ]`: Namespace of the provider of the topic. + - `[ResourceGroupName ]`: The name of the resource group within the partners subscription. + - `[ResourceName ]`: Name of the resource. + - `[ResourceTypeName ]`: Name of the resource type. + - `[Scope ]`: The scope of the event subscription. The scope can be a subscription, or a resource group, or a top level resource belonging to a resource provider namespace, or an EventGrid topic. For example, use '/subscriptions/{subscriptionId}/' for a subscription, '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}' for a resource group, and '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}' for a resource, and '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.EventGrid/topics/{topicName}' for an EventGrid topic. + - `[SubscriptionId ]`: Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription ID forms part of the URI for every service call. + - `[SystemTopicName ]`: Name of the system topic. + - `[TopicName ]`: Name of the domain topic. + - `[TopicTypeName ]`: Name of the topic type. + - `[VerifiedPartnerName ]`: Name of the verified partner. + +REGENERATEKEYREQUEST : PartnerNamespace regenerate shared access key request. + - `KeyName `: Key name to regenerate (key1 or key2). + +## RELATED LINKS + diff --git a/swaggerci/eventgrid/docs/New-AzEventGridPartnerRegistration.md b/swaggerci/eventgrid/docs/New-AzEventGridPartnerRegistration.md new file mode 100644 index 000000000000..bb0ceea1ae54 --- /dev/null +++ b/swaggerci/eventgrid/docs/New-AzEventGridPartnerRegistration.md @@ -0,0 +1,441 @@ +--- +external help file: +Module Name: Az.EventGrid +online version: https://docs.microsoft.com/en-us/powershell/module/az.eventgrid/new-azeventgridpartnerregistration +schema: 2.0.0 +--- + +# New-AzEventGridPartnerRegistration + +## SYNOPSIS +Creates a new partner registration with the specified parameters. + +## SYNTAX + +``` +New-AzEventGridPartnerRegistration -Name -ResourceGroupName -Location + [-SubscriptionId ] [-AuthorizedAzureSubscriptionId ] [-CustomerServiceUri ] + [-LogoUri ] [-LongDescription ] [-PartnerCustomerServiceExtension ] + [-PartnerCustomerServiceNumber ] [-PartnerName ] [-PartnerRegistrationImmutableId ] + [-PartnerResourceTypeDescription ] [-PartnerResourceTypeDisplayName ] + [-PartnerResourceTypeName ] [-SetupUri ] [-Tag ] + [-VisibilityState ] [-DefaultProfile ] [-AsJob] [-NoWait] + [-PassThru] [-Confirm] [-WhatIf] [] +``` + +## DESCRIPTION +Creates a new partner registration with the specified parameters. + +## EXAMPLES + +### Example 1: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +## PARAMETERS + +### -AsJob +Run the command as a job + +```yaml +Type: System.Management.Automation.SwitchParameter +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -AuthorizedAzureSubscriptionId +List of Azure subscription Ids that are authorized to create a partner namespaceassociated with this partner registration. +This is an optional property. +Creatingpartner namespaces is always permitted under the same Azure subscription as the one usedfor creating the partner registration. + +```yaml +Type: System.String[] +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -CustomerServiceUri +The extension of the customer service URI of the publisher. + +```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 +``` + +### -Location +Location of the resource. + +```yaml +Type: System.String +Parameter Sets: (All) +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -LogoUri +URI of the logo. + +```yaml +Type: System.String +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -LongDescription +Long description for the custom scenarios and integration to be displayed in the portal if needed.Length of this description should not exceed 2048 characters. + +```yaml +Type: System.String +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -Name +Name of the partner registration. + +```yaml +Type: System.String +Parameter Sets: (All) +Aliases: PartnerRegistrationName + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -NoWait +Run the command asynchronously + +```yaml +Type: System.Management.Automation.SwitchParameter +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -PartnerCustomerServiceExtension +The extension of the customer service number of the publisher. +Only digits are allowed and number of digits should not exceed 10. + +```yaml +Type: System.String +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -PartnerCustomerServiceNumber +The customer service number of the publisher. +The expected phone format should start with a '+' sign followed by the country code. +The remaining digits are then followed. +Only digits and spaces are allowed and itslength cannot exceed 16 digits including country code. +Examples of valid phone numbers are: +1 515 123 4567 and+966 7 5115 2471. +Examples of invalid phone numbers are: +1 (515) 123-4567, 1 515 123 4567 and +966 121 5115 24 7 551 1234 43 + +```yaml +Type: System.String +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -PartnerName +Official name of the partner name. +For example: "Contoso". + +```yaml +Type: System.String +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -PartnerRegistrationImmutableId +The immutableId of the corresponding partner registration. + +```yaml +Type: System.String +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -PartnerResourceTypeDescription +Short description of the partner resource type. +The length of this description should not exceed 256 characters. + +```yaml +Type: System.String +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -PartnerResourceTypeDisplayName +Display name of the partner resource type. + +```yaml +Type: System.String +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -PartnerResourceTypeName +Name of the partner resource type. + +```yaml +Type: System.String +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -PassThru +Returns true when the command succeeds + +```yaml +Type: System.Management.Automation.SwitchParameter +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -ResourceGroupName +The name of the resource group within the user's subscription. + +```yaml +Type: System.String +Parameter Sets: (All) +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -SetupUri +URI of the partner website that can be used by Azure customers to setup Event Gridintegration on an event source. + +```yaml +Type: System.String +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -SubscriptionId +Subscription credentials that uniquely identify a Microsoft Azure subscription. +The subscription ID forms part of the URI for every service call. + +```yaml +Type: System.String +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: (Get-AzContext).Subscription.Id +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -Tag +Tags of the resource. + +```yaml +Type: System.Collections.Hashtable +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -VisibilityState +Visibility state of the partner registration. + +```yaml +Type: Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.PartnerRegistrationVisibilityState +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.EventGrid.Models.Api20211015Preview.IPartnerRegistration + +## NOTES + +ALIASES + +## RELATED LINKS + diff --git a/swaggerci/eventgrid/docs/New-AzEventGridPartnerTopic.md b/swaggerci/eventgrid/docs/New-AzEventGridPartnerTopic.md new file mode 100644 index 000000000000..0d695ef132ca --- /dev/null +++ b/swaggerci/eventgrid/docs/New-AzEventGridPartnerTopic.md @@ -0,0 +1,392 @@ +--- +external help file: +Module Name: Az.EventGrid +online version: https://docs.microsoft.com/en-us/powershell/module/az.eventgrid/new-azeventgridpartnertopic +schema: 2.0.0 +--- + +# New-AzEventGridPartnerTopic + +## SYNOPSIS +Asynchronously creates a new partner topic with the specified parameters. + +## SYNTAX + +``` +New-AzEventGridPartnerTopic -Name -ResourceGroupName -Location + [-SubscriptionId ] [-ActivationState ] + [-EventTypeInfoInlineEventType ] [-EventTypeInfoKind ] + [-ExpirationTimeIfNotActivatedUtc ] [-IdentityPrincipalId ] [-IdentityTenantId ] + [-IdentityType ] [-IdentityUserAssignedIdentity ] [-MessageForActivation ] + [-PartnerRegistrationImmutableId ] [-PartnerTopicFriendlyDescription ] [-Source ] + [-Tag ] [-DefaultProfile ] [-PassThru] [-Confirm] [-WhatIf] [] +``` + +## DESCRIPTION +Asynchronously creates a new partner topic with the specified parameters. + +## EXAMPLES + +### Example 1: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +## PARAMETERS + +### -ActivationState +Activation state of the partner topic. + +```yaml +Type: Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.PartnerTopicActivationState +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 +``` + +### -EventTypeInfoInlineEventType +A collection of inline event types for the resource. +The inline event type keys are of type string which represents the name of the event.An example of a valid inline event name is "Contoso.OrderCreated".The inline event type values are of type InlineEventProperties and will contain additional information for every inline event type. + +```yaml +Type: System.Collections.Hashtable +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -EventTypeInfoKind +The kind of event type used. + +```yaml +Type: Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EventDefinitionKind +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -ExpirationTimeIfNotActivatedUtc +Expiration time of the partner topic. +If this timer expires while the partner topic is still never activated,the partner topic and corresponding event channel are deleted. + +```yaml +Type: System.DateTime +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -IdentityPrincipalId +The principal ID of resource identity. + +```yaml +Type: System.String +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -IdentityTenantId +The tenant ID of resource. + +```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 type of managed identity used. +The type 'SystemAssigned, UserAssigned' includes both an implicitly created identity and a set of user-assigned identities. +The type 'None' will remove any identity. + +```yaml +Type: Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.IdentityType +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -IdentityUserAssignedIdentity +The list of user identities associated with the resource. +The user identity dictionary key references will be ARM resource ids in the form:'/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ManagedIdentity/userAssignedIdentities/{identityName}'.This property is currently not used and reserved for future usage. + +```yaml +Type: System.Collections.Hashtable +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -Location +Location of the resource. + +```yaml +Type: System.String +Parameter Sets: (All) +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -MessageForActivation +Context or helpful message that can be used during the approval process by the subscriber. + +```yaml +Type: System.String +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -Name +Name of the partner topic. + +```yaml +Type: System.String +Parameter Sets: (All) +Aliases: PartnerTopicName + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -PartnerRegistrationImmutableId +The immutableId of the corresponding partner registration. + +```yaml +Type: System.String +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -PartnerTopicFriendlyDescription +Friendly description about the topic. +This can be set by the publisher/partner to show custom description for the customer partner topic.This will be helpful to remove any ambiguity of the origin of creation of the partner topic for the customer. + +```yaml +Type: System.String +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -PassThru +Returns true when the command succeeds + +```yaml +Type: System.Management.Automation.SwitchParameter +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -ResourceGroupName +The name of the resource group within the user's subscription. + +```yaml +Type: System.String +Parameter Sets: (All) +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -Source +Source associated with this partner topic. +This represents a unique partner resource. + +```yaml +Type: System.String +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -SubscriptionId +Subscription credentials that uniquely identify a Microsoft Azure subscription. +The subscription ID forms part of the URI for every service call. + +```yaml +Type: System.String +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: (Get-AzContext).Subscription.Id +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -Tag +Tags of the resource. + +```yaml +Type: System.Collections.Hashtable +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -Confirm +Prompts you for confirmation before running the cmdlet. + +```yaml +Type: System.Management.Automation.SwitchParameter +Parameter Sets: (All) +Aliases: cf + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -WhatIf +Shows what would happen if the cmdlet runs. +The cmdlet is not run. + +```yaml +Type: System.Management.Automation.SwitchParameter +Parameter Sets: (All) +Aliases: wi + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### CommonParameters +This cmdlet supports the common parameters: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutVariable, -OutBuffer, -PipelineVariable, -Verbose, -WarningAction, and -WarningVariable. For more information, see [about_CommonParameters](http://go.microsoft.com/fwlink/?LinkID=113216). + +## INPUTS + +## OUTPUTS + +### Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerTopic + +## NOTES + +ALIASES + +## RELATED LINKS + diff --git a/swaggerci/eventgrid/docs/New-AzEventGridPartnerTopicEventSubscription.md b/swaggerci/eventgrid/docs/New-AzEventGridPartnerTopicEventSubscription.md new file mode 100644 index 000000000000..243f487514ba --- /dev/null +++ b/swaggerci/eventgrid/docs/New-AzEventGridPartnerTopicEventSubscription.md @@ -0,0 +1,499 @@ +--- +external help file: +Module Name: Az.EventGrid +online version: https://docs.microsoft.com/en-us/powershell/module/az.eventgrid/new-azeventgridpartnertopiceventsubscription +schema: 2.0.0 +--- + +# New-AzEventGridPartnerTopicEventSubscription + +## SYNOPSIS +Asynchronously creates or updates an event subscription of a partner topic with the specified parameters. +Existing event subscriptions will be updated with this API. + +## SYNTAX + +``` +New-AzEventGridPartnerTopicEventSubscription -EventSubscriptionName -PartnerTopicName + -ResourceGroupName [-SubscriptionId ] + [-DeadLetterWithResourceIdentityType ] + [-DeadLetterWithResourceIdentityUserAssignedIdentity ] + [-DeliveryWithResourceIdentityDestinationEndpointType ] + [-DeliveryWithResourceIdentityType ] + [-DeliveryWithResourceIdentityUserAssignedIdentity ] [-EndpointType ] + [-EventDeliverySchema ] [-ExpirationTimeUtc ] + [-FilterAdvancedFilter ] [-FilterEnableAdvancedFilteringOnArray] + [-FilterIncludedEventType ] [-FilterIsSubjectCaseSensitive] [-FilterSubjectBeginsWith ] + [-FilterSubjectEndsWith ] [-Label ] [-RetryPolicyEventTimeToLiveInMinute ] + [-RetryPolicyMaxDeliveryAttempt ] [-DefaultProfile ] [-AsJob] [-NoWait] [-PassThru] + [-Confirm] [-WhatIf] [] +``` + +## DESCRIPTION +Asynchronously creates or updates an event subscription of a partner topic with the specified parameters. +Existing event subscriptions will be updated with this API. + +## EXAMPLES + +### Example 1: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +## PARAMETERS + +### -AsJob +Run the command as a job + +```yaml +Type: System.Management.Automation.SwitchParameter +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -DeadLetterWithResourceIdentityType +The type of managed identity used. +The type 'SystemAssigned, UserAssigned' includes both an implicitly created identity and a set of user-assigned identities. +The type 'None' will remove any identity. + +```yaml +Type: Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EventSubscriptionIdentityType +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -DeadLetterWithResourceIdentityUserAssignedIdentity +The user identity associated with the resource. + +```yaml +Type: System.String +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -DefaultProfile +The credentials, account, tenant, and subscription used for communication with Azure. + +```yaml +Type: System.Management.Automation.PSObject +Parameter Sets: (All) +Aliases: AzureRMContext, AzureCredential + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -DeliveryWithResourceIdentityDestinationEndpointType +Type of the endpoint for the event subscription destination. + +```yaml +Type: Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EndpointType +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -DeliveryWithResourceIdentityType +The type of managed identity used. +The type 'SystemAssigned, UserAssigned' includes both an implicitly created identity and a set of user-assigned identities. +The type 'None' will remove any identity. + +```yaml +Type: Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EventSubscriptionIdentityType +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -DeliveryWithResourceIdentityUserAssignedIdentity +The user identity associated with the resource. + +```yaml +Type: System.String +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -EndpointType +Type of the endpoint for the event subscription destination. + +```yaml +Type: Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EndpointType +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -EventDeliverySchema +The event delivery schema for the event subscription. + +```yaml +Type: Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EventDeliverySchema +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -EventSubscriptionName +Name of the event subscription to be created. +Event subscription names must be between 3 and 100 characters in length and use alphanumeric letters only. + +```yaml +Type: System.String +Parameter Sets: (All) +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -ExpirationTimeUtc +Expiration time of the event subscription. + +```yaml +Type: System.DateTime +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -FilterAdvancedFilter +An array of advanced filters that are used for filtering event subscriptions. +To construct, see NOTES section for FILTERADVANCEDFILTER properties and create a hash table. + +```yaml +Type: Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IAdvancedFilter[] +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -FilterEnableAdvancedFilteringOnArray +Allows advanced filters to be evaluated against an array of values instead of expecting a singular value. + +```yaml +Type: System.Management.Automation.SwitchParameter +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -FilterIncludedEventType +A list of applicable event types that need to be part of the event subscription. +If it is desired to subscribe to all default event types, set the IncludedEventTypes to null. + +```yaml +Type: System.String[] +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -FilterIsSubjectCaseSensitive +Specifies if the SubjectBeginsWith and SubjectEndsWith properties of the filtershould be compared in a case sensitive manner. + +```yaml +Type: System.Management.Automation.SwitchParameter +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -FilterSubjectBeginsWith +An optional string to filter events for an event subscription based on a resource path prefix.The format of this depends on the publisher of the events.Wildcard characters are not supported in this path. + +```yaml +Type: System.String +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -FilterSubjectEndsWith +An optional string to filter events for an event subscription based on a resource path suffix.Wildcard characters are not supported in this path. + +```yaml +Type: System.String +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -Label +List of user defined labels. + +```yaml +Type: System.String[] +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -NoWait +Run the command asynchronously + +```yaml +Type: System.Management.Automation.SwitchParameter +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -PartnerTopicName +Name of the partner topic. + +```yaml +Type: System.String +Parameter Sets: (All) +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -PassThru +Returns true when the command succeeds + +```yaml +Type: System.Management.Automation.SwitchParameter +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -ResourceGroupName +The name of the resource group within the user's subscription. + +```yaml +Type: System.String +Parameter Sets: (All) +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -RetryPolicyEventTimeToLiveInMinute +Time To Live (in minutes) for events. + +```yaml +Type: System.Int32 +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -RetryPolicyMaxDeliveryAttempt +Maximum number of delivery retry attempts for events. + +```yaml +Type: System.Int32 +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -SubscriptionId +Subscription credentials that uniquely identify a Microsoft Azure subscription. +The subscription ID forms part of the URI for every service call. + +```yaml +Type: System.String +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: (Get-AzContext).Subscription.Id +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -Confirm +Prompts you for confirmation before running the cmdlet. + +```yaml +Type: System.Management.Automation.SwitchParameter +Parameter Sets: (All) +Aliases: cf + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -WhatIf +Shows what would happen if the cmdlet runs. +The cmdlet is not run. + +```yaml +Type: System.Management.Automation.SwitchParameter +Parameter Sets: (All) +Aliases: wi + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### CommonParameters +This cmdlet supports the common parameters: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutVariable, -OutBuffer, -PipelineVariable, -Verbose, -WarningAction, and -WarningVariable. For more information, see [about_CommonParameters](http://go.microsoft.com/fwlink/?LinkID=113216). + +## INPUTS + +## OUTPUTS + +### Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscription + +## 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. + + +FILTERADVANCEDFILTER : An array of advanced filters that are used for filtering event subscriptions. + - `OperatorType `: The operator type used for filtering, e.g., NumberIn, StringContains, BoolEquals and others. + - `[Key ]`: The field/property in the event based on which you want to filter. + +## RELATED LINKS + diff --git a/swaggerci/eventgrid/docs/New-AzEventGridSystemTopic.md b/swaggerci/eventgrid/docs/New-AzEventGridSystemTopic.md new file mode 100644 index 000000000000..41f9c34cfc90 --- /dev/null +++ b/swaggerci/eventgrid/docs/New-AzEventGridSystemTopic.md @@ -0,0 +1,326 @@ +--- +external help file: +Module Name: Az.EventGrid +online version: https://docs.microsoft.com/en-us/powershell/module/az.eventgrid/new-azeventgridsystemtopic +schema: 2.0.0 +--- + +# New-AzEventGridSystemTopic + +## SYNOPSIS +Asynchronously creates a new system topic with the specified parameters. + +## SYNTAX + +``` +New-AzEventGridSystemTopic -Name -ResourceGroupName -Location + [-SubscriptionId ] [-IdentityPrincipalId ] [-IdentityTenantId ] + [-IdentityType ] [-IdentityUserAssignedIdentity ] [-Source ] + [-Tag ] [-TopicType ] [-DefaultProfile ] [-AsJob] [-NoWait] [-PassThru] + [-Confirm] [-WhatIf] [] +``` + +## DESCRIPTION +Asynchronously creates a new system topic with the specified parameters. + +## EXAMPLES + +### Example 1: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +## PARAMETERS + +### -AsJob +Run the command as a job + +```yaml +Type: System.Management.Automation.SwitchParameter +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -DefaultProfile +The credentials, account, tenant, and subscription used for communication with Azure. + +```yaml +Type: System.Management.Automation.PSObject +Parameter Sets: (All) +Aliases: AzureRMContext, AzureCredential + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -IdentityPrincipalId +The principal ID of resource identity. + +```yaml +Type: System.String +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -IdentityTenantId +The tenant ID of resource. + +```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 type of managed identity used. +The type 'SystemAssigned, UserAssigned' includes both an implicitly created identity and a set of user-assigned identities. +The type 'None' will remove any identity. + +```yaml +Type: Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.IdentityType +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -IdentityUserAssignedIdentity +The list of user identities associated with the resource. +The user identity dictionary key references will be ARM resource ids in the form:'/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ManagedIdentity/userAssignedIdentities/{identityName}'.This property is currently not used and reserved for future usage. + +```yaml +Type: System.Collections.Hashtable +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -Location +Location of the resource. + +```yaml +Type: System.String +Parameter Sets: (All) +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -Name +Name of the system topic. + +```yaml +Type: System.String +Parameter Sets: (All) +Aliases: SystemTopicName + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -NoWait +Run the command asynchronously + +```yaml +Type: System.Management.Automation.SwitchParameter +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -PassThru +Returns true when the command succeeds + +```yaml +Type: System.Management.Automation.SwitchParameter +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -ResourceGroupName +The name of the resource group within the user's subscription. + +```yaml +Type: System.String +Parameter Sets: (All) +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -Source +Source for the system topic. + +```yaml +Type: System.String +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -SubscriptionId +Subscription credentials that uniquely identify a Microsoft Azure subscription. +The subscription ID forms part of the URI for every service call. + +```yaml +Type: System.String +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: (Get-AzContext).Subscription.Id +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -Tag +Tags of the resource. + +```yaml +Type: System.Collections.Hashtable +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -TopicType +TopicType for the system topic. + +```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.EventGrid.Models.Api20211015Preview.ISystemTopic + +## NOTES + +ALIASES + +## RELATED LINKS + diff --git a/swaggerci/eventgrid/docs/New-AzEventGridSystemTopicEventSubscription.md b/swaggerci/eventgrid/docs/New-AzEventGridSystemTopicEventSubscription.md new file mode 100644 index 000000000000..398a9ad8e4b4 --- /dev/null +++ b/swaggerci/eventgrid/docs/New-AzEventGridSystemTopicEventSubscription.md @@ -0,0 +1,499 @@ +--- +external help file: +Module Name: Az.EventGrid +online version: https://docs.microsoft.com/en-us/powershell/module/az.eventgrid/new-azeventgridsystemtopiceventsubscription +schema: 2.0.0 +--- + +# New-AzEventGridSystemTopicEventSubscription + +## SYNOPSIS +Asynchronously creates or updates an event subscription with the specified parameters. +Existing event subscriptions will be updated with this API. + +## SYNTAX + +``` +New-AzEventGridSystemTopicEventSubscription -EventSubscriptionName -ResourceGroupName + -SystemTopicName [-SubscriptionId ] + [-DeadLetterWithResourceIdentityType ] + [-DeadLetterWithResourceIdentityUserAssignedIdentity ] + [-DeliveryWithResourceIdentityDestinationEndpointType ] + [-DeliveryWithResourceIdentityType ] + [-DeliveryWithResourceIdentityUserAssignedIdentity ] [-EndpointType ] + [-EventDeliverySchema ] [-ExpirationTimeUtc ] + [-FilterAdvancedFilter ] [-FilterEnableAdvancedFilteringOnArray] + [-FilterIncludedEventType ] [-FilterIsSubjectCaseSensitive] [-FilterSubjectBeginsWith ] + [-FilterSubjectEndsWith ] [-Label ] [-RetryPolicyEventTimeToLiveInMinute ] + [-RetryPolicyMaxDeliveryAttempt ] [-DefaultProfile ] [-AsJob] [-NoWait] [-PassThru] + [-Confirm] [-WhatIf] [] +``` + +## DESCRIPTION +Asynchronously creates or updates an event subscription with the specified parameters. +Existing event subscriptions will be updated with this API. + +## EXAMPLES + +### Example 1: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +## PARAMETERS + +### -AsJob +Run the command as a job + +```yaml +Type: System.Management.Automation.SwitchParameter +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -DeadLetterWithResourceIdentityType +The type of managed identity used. +The type 'SystemAssigned, UserAssigned' includes both an implicitly created identity and a set of user-assigned identities. +The type 'None' will remove any identity. + +```yaml +Type: Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EventSubscriptionIdentityType +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -DeadLetterWithResourceIdentityUserAssignedIdentity +The user identity associated with the resource. + +```yaml +Type: System.String +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -DefaultProfile +The credentials, account, tenant, and subscription used for communication with Azure. + +```yaml +Type: System.Management.Automation.PSObject +Parameter Sets: (All) +Aliases: AzureRMContext, AzureCredential + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -DeliveryWithResourceIdentityDestinationEndpointType +Type of the endpoint for the event subscription destination. + +```yaml +Type: Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EndpointType +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -DeliveryWithResourceIdentityType +The type of managed identity used. +The type 'SystemAssigned, UserAssigned' includes both an implicitly created identity and a set of user-assigned identities. +The type 'None' will remove any identity. + +```yaml +Type: Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EventSubscriptionIdentityType +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -DeliveryWithResourceIdentityUserAssignedIdentity +The user identity associated with the resource. + +```yaml +Type: System.String +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -EndpointType +Type of the endpoint for the event subscription destination. + +```yaml +Type: Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EndpointType +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -EventDeliverySchema +The event delivery schema for the event subscription. + +```yaml +Type: Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EventDeliverySchema +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -EventSubscriptionName +Name of the event subscription to be created. +Event subscription names must be between 3 and 100 characters in length and use alphanumeric letters only. + +```yaml +Type: System.String +Parameter Sets: (All) +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -ExpirationTimeUtc +Expiration time of the event subscription. + +```yaml +Type: System.DateTime +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -FilterAdvancedFilter +An array of advanced filters that are used for filtering event subscriptions. +To construct, see NOTES section for FILTERADVANCEDFILTER properties and create a hash table. + +```yaml +Type: Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IAdvancedFilter[] +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -FilterEnableAdvancedFilteringOnArray +Allows advanced filters to be evaluated against an array of values instead of expecting a singular value. + +```yaml +Type: System.Management.Automation.SwitchParameter +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -FilterIncludedEventType +A list of applicable event types that need to be part of the event subscription. +If it is desired to subscribe to all default event types, set the IncludedEventTypes to null. + +```yaml +Type: System.String[] +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -FilterIsSubjectCaseSensitive +Specifies if the SubjectBeginsWith and SubjectEndsWith properties of the filtershould be compared in a case sensitive manner. + +```yaml +Type: System.Management.Automation.SwitchParameter +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -FilterSubjectBeginsWith +An optional string to filter events for an event subscription based on a resource path prefix.The format of this depends on the publisher of the events.Wildcard characters are not supported in this path. + +```yaml +Type: System.String +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -FilterSubjectEndsWith +An optional string to filter events for an event subscription based on a resource path suffix.Wildcard characters are not supported in this path. + +```yaml +Type: System.String +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -Label +List of user defined labels. + +```yaml +Type: System.String[] +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -NoWait +Run the command asynchronously + +```yaml +Type: System.Management.Automation.SwitchParameter +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -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 within the user's subscription. + +```yaml +Type: System.String +Parameter Sets: (All) +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -RetryPolicyEventTimeToLiveInMinute +Time To Live (in minutes) for events. + +```yaml +Type: System.Int32 +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -RetryPolicyMaxDeliveryAttempt +Maximum number of delivery retry attempts for events. + +```yaml +Type: System.Int32 +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -SubscriptionId +Subscription credentials that uniquely identify a Microsoft Azure subscription. +The subscription ID forms part of the URI for every service call. + +```yaml +Type: System.String +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: (Get-AzContext).Subscription.Id +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -SystemTopicName +Name of the system topic. + +```yaml +Type: System.String +Parameter Sets: (All) +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 + +## 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. + + +FILTERADVANCEDFILTER : An array of advanced filters that are used for filtering event subscriptions. + - `OperatorType `: The operator type used for filtering, e.g., NumberIn, StringContains, BoolEquals and others. + - `[Key ]`: The field/property in the event based on which you want to filter. + +## RELATED LINKS + diff --git a/swaggerci/eventgrid/docs/New-AzEventGridTopic.md b/swaggerci/eventgrid/docs/New-AzEventGridTopic.md new file mode 100644 index 000000000000..eaae02c3e85b --- /dev/null +++ b/swaggerci/eventgrid/docs/New-AzEventGridTopic.md @@ -0,0 +1,449 @@ +--- +external help file: +Module Name: Az.EventGrid +online version: https://docs.microsoft.com/en-us/powershell/module/az.eventgrid/new-azeventgridtopic +schema: 2.0.0 +--- + +# New-AzEventGridTopic + +## SYNOPSIS +Asynchronously creates a new topic with the specified parameters. + +## SYNTAX + +``` +New-AzEventGridTopic -Name -ResourceGroupName -Location [-SubscriptionId ] + [-DataResidencyBoundary ] [-DisableLocalAuth] [-ExtendedLocationName ] + [-ExtendedLocationType ] [-IdentityPrincipalId ] [-IdentityTenantId ] + [-IdentityType ] [-IdentityUserAssignedIdentity ] + [-InboundIPRule ] [-InputSchema ] [-Kind ] + [-PublicNetworkAccess ] [-SkuName ] [-Tag ] [-DefaultProfile ] + [-AsJob] [-NoWait] [-PassThru] [-Confirm] [-WhatIf] [] +``` + +## DESCRIPTION +Asynchronously creates a new topic with the specified parameters. + +## EXAMPLES + +### Example 1: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +## PARAMETERS + +### -AsJob +Run the command as a job + +```yaml +Type: System.Management.Automation.SwitchParameter +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -DataResidencyBoundary +Data Residency Boundary of the resource. + +```yaml +Type: Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.DataResidencyBoundary +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 +``` + +### -DisableLocalAuth +This boolean is used to enable or disable local auth. +Default value is false. +When the property is set to true, only AAD token will be used to authenticate if user is allowed to publish to the topic. + +```yaml +Type: System.Management.Automation.SwitchParameter +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -ExtendedLocationName +Fully qualified name of the extended location. + +```yaml +Type: System.String +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -ExtendedLocationType +Type of the extended location. + +```yaml +Type: System.String +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -IdentityPrincipalId +The principal ID of resource identity. + +```yaml +Type: System.String +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -IdentityTenantId +The tenant ID of resource. + +```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 type of managed identity used. +The type 'SystemAssigned, UserAssigned' includes both an implicitly created identity and a set of user-assigned identities. +The type 'None' will remove any identity. + +```yaml +Type: Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.IdentityType +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -IdentityUserAssignedIdentity +The list of user identities associated with the resource. +The user identity dictionary key references will be ARM resource ids in the form:'/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ManagedIdentity/userAssignedIdentities/{identityName}'.This property is currently not used and reserved for future usage. + +```yaml +Type: System.Collections.Hashtable +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -InboundIPRule +This can be used to restrict traffic from specific IPs instead of all IPs. +Note: These are considered only if PublicNetworkAccess is enabled. +To construct, see NOTES section for INBOUNDIPRULE properties and create a hash table. + +```yaml +Type: Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IInboundIPRule[] +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -InputSchema +This determines the format that Event Grid should expect for incoming events published to the topic. + +```yaml +Type: Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.InputSchema +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -Kind +Kind of the resource. + +```yaml +Type: Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.ResourceKind +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -Location +Location of the resource. + +```yaml +Type: System.String +Parameter Sets: (All) +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -Name +Name of the topic. + +```yaml +Type: System.String +Parameter Sets: (All) +Aliases: TopicName + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -NoWait +Run the command asynchronously + +```yaml +Type: System.Management.Automation.SwitchParameter +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -PassThru +Returns true when the command succeeds + +```yaml +Type: System.Management.Automation.SwitchParameter +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -PublicNetworkAccess +This determines if traffic is allowed over public network. +By default it is enabled. +You can further restrict to specific IPs by configuring \ + +```yaml +Type: Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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 within the user's subscription. + +```yaml +Type: System.String +Parameter Sets: (All) +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -SkuName +The Sku name of the resource. +The possible values are: Basic or Premium. + +```yaml +Type: Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.Sku +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -SubscriptionId +Subscription credentials that uniquely identify a Microsoft Azure subscription. +The subscription ID forms part of the URI for every service call. + +```yaml +Type: System.String +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: (Get-AzContext).Subscription.Id +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -Tag +Tags of the resource. + +```yaml +Type: System.Collections.Hashtable +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -Confirm +Prompts you for confirmation before running the cmdlet. + +```yaml +Type: System.Management.Automation.SwitchParameter +Parameter Sets: (All) +Aliases: cf + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -WhatIf +Shows what would happen if the cmdlet runs. +The cmdlet is not run. + +```yaml +Type: System.Management.Automation.SwitchParameter +Parameter Sets: (All) +Aliases: wi + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### CommonParameters +This cmdlet supports the common parameters: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutVariable, -OutBuffer, -PipelineVariable, -Verbose, -WarningAction, and -WarningVariable. For more information, see [about_CommonParameters](http://go.microsoft.com/fwlink/?LinkID=113216). + +## INPUTS + +## OUTPUTS + +### 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. + + +INBOUNDIPRULE : This can be used to restrict traffic from specific IPs instead of all IPs. Note: These are considered only if PublicNetworkAccess is enabled. + - `[Action ]`: Action to perform based on the match or no match of the IpMask. + - `[IPMask ]`: IP Address in CIDR notation e.g., 10.0.0.0/8. + +## RELATED LINKS + diff --git a/swaggerci/eventgrid/docs/New-AzEventGridTopicEventSubscription.md b/swaggerci/eventgrid/docs/New-AzEventGridTopicEventSubscription.md new file mode 100644 index 000000000000..279f7e637ba0 --- /dev/null +++ b/swaggerci/eventgrid/docs/New-AzEventGridTopicEventSubscription.md @@ -0,0 +1,497 @@ +--- +external help file: +Module Name: Az.EventGrid +online version: https://docs.microsoft.com/en-us/powershell/module/az.eventgrid/new-azeventgridtopiceventsubscription +schema: 2.0.0 +--- + +# New-AzEventGridTopicEventSubscription + +## SYNOPSIS +Asynchronously creates a new event subscription or updates an existing event subscription. + +## SYNTAX + +``` +New-AzEventGridTopicEventSubscription -EventSubscriptionName -ResourceGroupName + -TopicName [-SubscriptionId ] + [-DeadLetterWithResourceIdentityType ] + [-DeadLetterWithResourceIdentityUserAssignedIdentity ] + [-DeliveryWithResourceIdentityDestinationEndpointType ] + [-DeliveryWithResourceIdentityType ] + [-DeliveryWithResourceIdentityUserAssignedIdentity ] [-EndpointType ] + [-EventDeliverySchema ] [-ExpirationTimeUtc ] + [-FilterAdvancedFilter ] [-FilterEnableAdvancedFilteringOnArray] + [-FilterIncludedEventType ] [-FilterIsSubjectCaseSensitive] [-FilterSubjectBeginsWith ] + [-FilterSubjectEndsWith ] [-Label ] [-RetryPolicyEventTimeToLiveInMinute ] + [-RetryPolicyMaxDeliveryAttempt ] [-DefaultProfile ] [-AsJob] [-NoWait] [-PassThru] + [-Confirm] [-WhatIf] [] +``` + +## DESCRIPTION +Asynchronously creates a new event subscription or updates an existing event subscription. + +## EXAMPLES + +### Example 1: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +## PARAMETERS + +### -AsJob +Run the command as a job + +```yaml +Type: System.Management.Automation.SwitchParameter +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -DeadLetterWithResourceIdentityType +The type of managed identity used. +The type 'SystemAssigned, UserAssigned' includes both an implicitly created identity and a set of user-assigned identities. +The type 'None' will remove any identity. + +```yaml +Type: Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EventSubscriptionIdentityType +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -DeadLetterWithResourceIdentityUserAssignedIdentity +The user identity associated with the resource. + +```yaml +Type: System.String +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -DefaultProfile +The credentials, account, tenant, and subscription used for communication with Azure. + +```yaml +Type: System.Management.Automation.PSObject +Parameter Sets: (All) +Aliases: AzureRMContext, AzureCredential + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -DeliveryWithResourceIdentityDestinationEndpointType +Type of the endpoint for the event subscription destination. + +```yaml +Type: Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EndpointType +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -DeliveryWithResourceIdentityType +The type of managed identity used. +The type 'SystemAssigned, UserAssigned' includes both an implicitly created identity and a set of user-assigned identities. +The type 'None' will remove any identity. + +```yaml +Type: Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EventSubscriptionIdentityType +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -DeliveryWithResourceIdentityUserAssignedIdentity +The user identity associated with the resource. + +```yaml +Type: System.String +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -EndpointType +Type of the endpoint for the event subscription destination. + +```yaml +Type: Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EndpointType +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -EventDeliverySchema +The event delivery schema for the event subscription. + +```yaml +Type: Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EventDeliverySchema +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -EventSubscriptionName +Name of the event subscription to be created. +Event subscription names must be between 3 and 100 characters in length and use alphanumeric letters only. + +```yaml +Type: System.String +Parameter Sets: (All) +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -ExpirationTimeUtc +Expiration time of the event subscription. + +```yaml +Type: System.DateTime +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -FilterAdvancedFilter +An array of advanced filters that are used for filtering event subscriptions. +To construct, see NOTES section for FILTERADVANCEDFILTER properties and create a hash table. + +```yaml +Type: Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IAdvancedFilter[] +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -FilterEnableAdvancedFilteringOnArray +Allows advanced filters to be evaluated against an array of values instead of expecting a singular value. + +```yaml +Type: System.Management.Automation.SwitchParameter +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -FilterIncludedEventType +A list of applicable event types that need to be part of the event subscription. +If it is desired to subscribe to all default event types, set the IncludedEventTypes to null. + +```yaml +Type: System.String[] +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -FilterIsSubjectCaseSensitive +Specifies if the SubjectBeginsWith and SubjectEndsWith properties of the filtershould be compared in a case sensitive manner. + +```yaml +Type: System.Management.Automation.SwitchParameter +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -FilterSubjectBeginsWith +An optional string to filter events for an event subscription based on a resource path prefix.The format of this depends on the publisher of the events.Wildcard characters are not supported in this path. + +```yaml +Type: System.String +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -FilterSubjectEndsWith +An optional string to filter events for an event subscription based on a resource path suffix.Wildcard characters are not supported in this path. + +```yaml +Type: System.String +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -Label +List of user defined labels. + +```yaml +Type: System.String[] +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -NoWait +Run the command asynchronously + +```yaml +Type: System.Management.Automation.SwitchParameter +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -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 within the user's subscription. + +```yaml +Type: System.String +Parameter Sets: (All) +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -RetryPolicyEventTimeToLiveInMinute +Time To Live (in minutes) for events. + +```yaml +Type: System.Int32 +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -RetryPolicyMaxDeliveryAttempt +Maximum number of delivery retry attempts for events. + +```yaml +Type: System.Int32 +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -SubscriptionId +Subscription credentials that uniquely identify a Microsoft Azure subscription. +The subscription ID forms part of the URI for every service call. + +```yaml +Type: System.String +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: (Get-AzContext).Subscription.Id +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -TopicName +Name of the domain topic. + +```yaml +Type: System.String +Parameter Sets: (All) +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 + +## OUTPUTS + +### Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscription + +## 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. + + +FILTERADVANCEDFILTER : An array of advanced filters that are used for filtering event subscriptions. + - `OperatorType `: The operator type used for filtering, e.g., NumberIn, StringContains, BoolEquals and others. + - `[Key ]`: The field/property in the event based on which you want to filter. + +## RELATED LINKS + diff --git a/swaggerci/eventgrid/docs/New-AzEventGridTopicKey.md b/swaggerci/eventgrid/docs/New-AzEventGridTopicKey.md new file mode 100644 index 000000000000..fb33cbd877f2 --- /dev/null +++ b/swaggerci/eventgrid/docs/New-AzEventGridTopicKey.md @@ -0,0 +1,307 @@ +--- +external help file: +Module Name: Az.EventGrid +online version: https://docs.microsoft.com/en-us/powershell/module/az.eventgrid/new-azeventgridtopickey +schema: 2.0.0 +--- + +# New-AzEventGridTopicKey + +## SYNOPSIS +Regenerate a shared access key for a topic. + +## SYNTAX + +### RegenerateExpanded (Default) +``` +New-AzEventGridTopicKey -ResourceGroupName -TopicName -KeyName + [-SubscriptionId ] [-DefaultProfile ] [-AsJob] [-NoWait] [-PassThru] [-Confirm] [-WhatIf] + [] +``` + +### Regenerate +``` +New-AzEventGridTopicKey -ResourceGroupName -TopicName + -RegenerateKeyRequest [-SubscriptionId ] [-DefaultProfile ] + [-AsJob] [-NoWait] [-PassThru] [-Confirm] [-WhatIf] [] +``` + +### RegenerateViaIdentity +``` +New-AzEventGridTopicKey -InputObject -RegenerateKeyRequest + [-DefaultProfile ] [-AsJob] [-NoWait] [-PassThru] [-Confirm] [-WhatIf] [] +``` + +### RegenerateViaIdentityExpanded +``` +New-AzEventGridTopicKey -InputObject -KeyName [-DefaultProfile ] + [-AsJob] [-NoWait] [-PassThru] [-Confirm] [-WhatIf] [] +``` + +## DESCRIPTION +Regenerate a shared access key for a topic. + +## EXAMPLES + +### Example 1: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +## PARAMETERS + +### -AsJob +Run the command as a job + +```yaml +Type: System.Management.Automation.SwitchParameter +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -DefaultProfile +The credentials, account, tenant, and subscription used for communication with Azure. + +```yaml +Type: System.Management.Automation.PSObject +Parameter Sets: (All) +Aliases: AzureRMContext, AzureCredential + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -InputObject +Identity Parameter +To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + +```yaml +Type: Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.IEventGridIdentity +Parameter Sets: RegenerateViaIdentity, RegenerateViaIdentityExpanded +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: True (ByValue) +Accept wildcard characters: False +``` + +### -KeyName +Key name to regenerate key1 or key2 + +```yaml +Type: System.String +Parameter Sets: RegenerateExpanded, RegenerateViaIdentityExpanded +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -NoWait +Run the command asynchronously + +```yaml +Type: System.Management.Automation.SwitchParameter +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -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 +``` + +### -RegenerateKeyRequest +Topic regenerate share access key request +To construct, see NOTES section for REGENERATEKEYREQUEST properties and create a hash table. + +```yaml +Type: Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITopicRegenerateKeyRequest +Parameter Sets: Regenerate, RegenerateViaIdentity +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: True (ByValue) +Accept wildcard characters: False +``` + +### -ResourceGroupName +The name of the resource group within the user's subscription. + +```yaml +Type: System.String +Parameter Sets: Regenerate, RegenerateExpanded +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -SubscriptionId +Subscription credentials that uniquely identify a Microsoft Azure subscription. +The subscription ID forms part of the URI for every service call. + +```yaml +Type: System.String +Parameter Sets: Regenerate, RegenerateExpanded +Aliases: + +Required: False +Position: Named +Default value: (Get-AzContext).Subscription.Id +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -TopicName +Name of the topic. + +```yaml +Type: System.String +Parameter Sets: Regenerate, RegenerateExpanded +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.EventGrid.Models.Api20211015Preview.ITopicRegenerateKeyRequest + +### Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.IEventGridIdentity + +## OUTPUTS + +### Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITopicSharedAccessKeys + +## 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 + - `[ChannelName ]`: Name of the channel. + - `[DomainName ]`: Name of the domain. + - `[DomainTopicName ]`: Name of the topic. + - `[EventChannelName ]`: Name of the event channel. + - `[EventSubscriptionName ]`: Name of the event subscription. + - `[Id ]`: Resource identity path + - `[Location ]`: Name of the location. + - `[ParentName ]`: The name of the parent resource (namely, either, the topic name, domain name, or partner namespace name). + - `[ParentType ]`: The type of the parent resource. This can be either \'topics\', \'domains\', or \'partnerNamespaces\'. + - `[PartnerDestinationName ]`: Name of the partner destination. + - `[PartnerNamespaceName ]`: Name of the partner namespace. + - `[PartnerRegistrationName ]`: Name of the partner registration. + - `[PartnerTopicName ]`: Name of the partner topic. + - `[PrivateEndpointConnectionName ]`: The name of the private endpoint connection connection. + - `[PrivateLinkResourceName ]`: The name of private link resource. + - `[ProviderNamespace ]`: Namespace of the provider of the topic. + - `[ResourceGroupName ]`: The name of the resource group within the partners subscription. + - `[ResourceName ]`: Name of the resource. + - `[ResourceTypeName ]`: Name of the resource type. + - `[Scope ]`: The scope of the event subscription. The scope can be a subscription, or a resource group, or a top level resource belonging to a resource provider namespace, or an EventGrid topic. For example, use '/subscriptions/{subscriptionId}/' for a subscription, '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}' for a resource group, and '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}' for a resource, and '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.EventGrid/topics/{topicName}' for an EventGrid topic. + - `[SubscriptionId ]`: Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription ID forms part of the URI for every service call. + - `[SystemTopicName ]`: Name of the system topic. + - `[TopicName ]`: Name of the domain topic. + - `[TopicTypeName ]`: Name of the topic type. + - `[VerifiedPartnerName ]`: Name of the verified partner. + +REGENERATEKEYREQUEST : Topic regenerate share access key request + - `KeyName `: Key name to regenerate key1 or key2 + +## RELATED LINKS + diff --git a/swaggerci/eventgrid/docs/README.md b/swaggerci/eventgrid/docs/README.md new file mode 100644 index 000000000000..4dba8efda8f9 --- /dev/null +++ b/swaggerci/eventgrid/docs/README.md @@ -0,0 +1,11 @@ +# Docs +This directory contains the documentation of the cmdlets for the `Az.EventGrid` module. To run documentation generation, use the `generate-help.ps1` script at the root module folder. Files in this folder will *always be overridden on regeneration*. To update documentation examples, please use the `../examples` folder. + +## Info +- Modifiable: no +- Generated: all +- Committed: yes +- Packaged: yes + +## Details +The process of documentation generation loads `Az.EventGrid` and analyzes the exported cmdlets from the module. It recognizes the [help comments](https://docs.microsoft.com/powershell/module/microsoft.powershell.core/about/about_comment_based_help) that are generated into the scripts in the `../exports` folder. Additionally, when writing custom cmdlets in the `../custom` folder, you can use the help comments syntax, which decorate the exported scripts at build-time. The documentation examples are taken from the `../examples` folder. \ No newline at end of file diff --git a/swaggerci/eventgrid/docs/Remove-AzEventGridChannel.md b/swaggerci/eventgrid/docs/Remove-AzEventGridChannel.md new file mode 100644 index 000000000000..51db6611eb11 --- /dev/null +++ b/swaggerci/eventgrid/docs/Remove-AzEventGridChannel.md @@ -0,0 +1,273 @@ +--- +external help file: +Module Name: Az.EventGrid +online version: https://docs.microsoft.com/en-us/powershell/module/az.eventgrid/remove-azeventgridchannel +schema: 2.0.0 +--- + +# Remove-AzEventGridChannel + +## SYNOPSIS +Delete an existing channel. + +## SYNTAX + +### Delete (Default) +``` +Remove-AzEventGridChannel -Name -PartnerNamespaceName -ResourceGroupName + [-SubscriptionId ] [-DefaultProfile ] [-AsJob] [-NoWait] [-PassThru] [-Confirm] [-WhatIf] + [] +``` + +### DeleteViaIdentity +``` +Remove-AzEventGridChannel -InputObject [-DefaultProfile ] [-AsJob] [-NoWait] + [-PassThru] [-Confirm] [-WhatIf] [] +``` + +## DESCRIPTION +Delete an existing channel. + +## EXAMPLES + +### Example 1: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +## PARAMETERS + +### -AsJob +Run the command as a job + +```yaml +Type: System.Management.Automation.SwitchParameter +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -DefaultProfile +The credentials, account, tenant, and subscription used for communication with Azure. + +```yaml +Type: System.Management.Automation.PSObject +Parameter Sets: (All) +Aliases: AzureRMContext, AzureCredential + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -InputObject +Identity Parameter +To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + +```yaml +Type: Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.IEventGridIdentity +Parameter Sets: DeleteViaIdentity +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: True (ByValue) +Accept wildcard characters: False +``` + +### -Name +Name of the channel. + +```yaml +Type: System.String +Parameter Sets: Delete +Aliases: ChannelName + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -NoWait +Run the command asynchronously + +```yaml +Type: System.Management.Automation.SwitchParameter +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -PartnerNamespaceName +Name of the partner namespace. + +```yaml +Type: System.String +Parameter Sets: Delete +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -PassThru +Returns true when the command succeeds + +```yaml +Type: System.Management.Automation.SwitchParameter +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -ResourceGroupName +The name of the resource group within the partners subscription. + +```yaml +Type: System.String +Parameter Sets: Delete +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -SubscriptionId +Subscription credentials that uniquely identify a Microsoft Azure subscription. +The subscription ID forms part of the URI for every service call. + +```yaml +Type: System.String +Parameter Sets: Delete +Aliases: + +Required: False +Position: Named +Default value: (Get-AzContext).Subscription.Id +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -Confirm +Prompts you for confirmation before running the cmdlet. + +```yaml +Type: System.Management.Automation.SwitchParameter +Parameter Sets: (All) +Aliases: cf + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -WhatIf +Shows what would happen if the cmdlet runs. +The cmdlet is not run. + +```yaml +Type: System.Management.Automation.SwitchParameter +Parameter Sets: (All) +Aliases: wi + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### CommonParameters +This cmdlet supports the common parameters: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutVariable, -OutBuffer, -PipelineVariable, -Verbose, -WarningAction, and -WarningVariable. For more information, see [about_CommonParameters](http://go.microsoft.com/fwlink/?LinkID=113216). + +## INPUTS + +### Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.IEventGridIdentity + +## 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 + - `[ChannelName ]`: Name of the channel. + - `[DomainName ]`: Name of the domain. + - `[DomainTopicName ]`: Name of the topic. + - `[EventChannelName ]`: Name of the event channel. + - `[EventSubscriptionName ]`: Name of the event subscription. + - `[Id ]`: Resource identity path + - `[Location ]`: Name of the location. + - `[ParentName ]`: The name of the parent resource (namely, either, the topic name, domain name, or partner namespace name). + - `[ParentType ]`: The type of the parent resource. This can be either \'topics\', \'domains\', or \'partnerNamespaces\'. + - `[PartnerDestinationName ]`: Name of the partner destination. + - `[PartnerNamespaceName ]`: Name of the partner namespace. + - `[PartnerRegistrationName ]`: Name of the partner registration. + - `[PartnerTopicName ]`: Name of the partner topic. + - `[PrivateEndpointConnectionName ]`: The name of the private endpoint connection connection. + - `[PrivateLinkResourceName ]`: The name of private link resource. + - `[ProviderNamespace ]`: Namespace of the provider of the topic. + - `[ResourceGroupName ]`: The name of the resource group within the partners subscription. + - `[ResourceName ]`: Name of the resource. + - `[ResourceTypeName ]`: Name of the resource type. + - `[Scope ]`: The scope of the event subscription. The scope can be a subscription, or a resource group, or a top level resource belonging to a resource provider namespace, or an EventGrid topic. For example, use '/subscriptions/{subscriptionId}/' for a subscription, '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}' for a resource group, and '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}' for a resource, and '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.EventGrid/topics/{topicName}' for an EventGrid topic. + - `[SubscriptionId ]`: Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription ID forms part of the URI for every service call. + - `[SystemTopicName ]`: Name of the system topic. + - `[TopicName ]`: Name of the domain topic. + - `[TopicTypeName ]`: Name of the topic type. + - `[VerifiedPartnerName ]`: Name of the verified partner. + +## RELATED LINKS + diff --git a/swaggerci/eventgrid/docs/Remove-AzEventGridDomain.md b/swaggerci/eventgrid/docs/Remove-AzEventGridDomain.md new file mode 100644 index 000000000000..ed0a1ef0bfe0 --- /dev/null +++ b/swaggerci/eventgrid/docs/Remove-AzEventGridDomain.md @@ -0,0 +1,257 @@ +--- +external help file: +Module Name: Az.EventGrid +online version: https://docs.microsoft.com/en-us/powershell/module/az.eventgrid/remove-azeventgriddomain +schema: 2.0.0 +--- + +# Remove-AzEventGridDomain + +## SYNOPSIS +Delete existing domain. + +## SYNTAX + +### Delete (Default) +``` +Remove-AzEventGridDomain -Name -ResourceGroupName [-SubscriptionId ] + [-DefaultProfile ] [-AsJob] [-NoWait] [-PassThru] [-Confirm] [-WhatIf] [] +``` + +### DeleteViaIdentity +``` +Remove-AzEventGridDomain -InputObject [-DefaultProfile ] [-AsJob] [-NoWait] + [-PassThru] [-Confirm] [-WhatIf] [] +``` + +## DESCRIPTION +Delete existing domain. + +## EXAMPLES + +### Example 1: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +## PARAMETERS + +### -AsJob +Run the command as a job + +```yaml +Type: System.Management.Automation.SwitchParameter +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -DefaultProfile +The credentials, account, tenant, and subscription used for communication with Azure. + +```yaml +Type: System.Management.Automation.PSObject +Parameter Sets: (All) +Aliases: AzureRMContext, AzureCredential + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -InputObject +Identity Parameter +To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + +```yaml +Type: Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.IEventGridIdentity +Parameter Sets: DeleteViaIdentity +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: True (ByValue) +Accept wildcard characters: False +``` + +### -Name +Name of the domain. + +```yaml +Type: System.String +Parameter Sets: Delete +Aliases: DomainName + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -NoWait +Run the command asynchronously + +```yaml +Type: System.Management.Automation.SwitchParameter +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -PassThru +Returns true when the command succeeds + +```yaml +Type: System.Management.Automation.SwitchParameter +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -ResourceGroupName +The name of the resource group within the user's subscription. + +```yaml +Type: System.String +Parameter Sets: Delete +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -SubscriptionId +Subscription credentials that uniquely identify a Microsoft Azure subscription. +The subscription ID forms part of the URI for every service call. + +```yaml +Type: System.String +Parameter Sets: Delete +Aliases: + +Required: False +Position: Named +Default value: (Get-AzContext).Subscription.Id +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -Confirm +Prompts you for confirmation before running the cmdlet. + +```yaml +Type: System.Management.Automation.SwitchParameter +Parameter Sets: (All) +Aliases: cf + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -WhatIf +Shows what would happen if the cmdlet runs. +The cmdlet is not run. + +```yaml +Type: System.Management.Automation.SwitchParameter +Parameter Sets: (All) +Aliases: wi + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### CommonParameters +This cmdlet supports the common parameters: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutVariable, -OutBuffer, -PipelineVariable, -Verbose, -WarningAction, and -WarningVariable. For more information, see [about_CommonParameters](http://go.microsoft.com/fwlink/?LinkID=113216). + +## INPUTS + +### Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.IEventGridIdentity + +## 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 + - `[ChannelName ]`: Name of the channel. + - `[DomainName ]`: Name of the domain. + - `[DomainTopicName ]`: Name of the topic. + - `[EventChannelName ]`: Name of the event channel. + - `[EventSubscriptionName ]`: Name of the event subscription. + - `[Id ]`: Resource identity path + - `[Location ]`: Name of the location. + - `[ParentName ]`: The name of the parent resource (namely, either, the topic name, domain name, or partner namespace name). + - `[ParentType ]`: The type of the parent resource. This can be either \'topics\', \'domains\', or \'partnerNamespaces\'. + - `[PartnerDestinationName ]`: Name of the partner destination. + - `[PartnerNamespaceName ]`: Name of the partner namespace. + - `[PartnerRegistrationName ]`: Name of the partner registration. + - `[PartnerTopicName ]`: Name of the partner topic. + - `[PrivateEndpointConnectionName ]`: The name of the private endpoint connection connection. + - `[PrivateLinkResourceName ]`: The name of private link resource. + - `[ProviderNamespace ]`: Namespace of the provider of the topic. + - `[ResourceGroupName ]`: The name of the resource group within the partners subscription. + - `[ResourceName ]`: Name of the resource. + - `[ResourceTypeName ]`: Name of the resource type. + - `[Scope ]`: The scope of the event subscription. The scope can be a subscription, or a resource group, or a top level resource belonging to a resource provider namespace, or an EventGrid topic. For example, use '/subscriptions/{subscriptionId}/' for a subscription, '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}' for a resource group, and '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}' for a resource, and '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.EventGrid/topics/{topicName}' for an EventGrid topic. + - `[SubscriptionId ]`: Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription ID forms part of the URI for every service call. + - `[SystemTopicName ]`: Name of the system topic. + - `[TopicName ]`: Name of the domain topic. + - `[TopicTypeName ]`: Name of the topic type. + - `[VerifiedPartnerName ]`: Name of the verified partner. + +## RELATED LINKS + diff --git a/swaggerci/eventgrid/docs/Remove-AzEventGridDomainEventSubscription.md b/swaggerci/eventgrid/docs/Remove-AzEventGridDomainEventSubscription.md new file mode 100644 index 000000000000..7eb4d2d7cfbc --- /dev/null +++ b/swaggerci/eventgrid/docs/Remove-AzEventGridDomainEventSubscription.md @@ -0,0 +1,274 @@ +--- +external help file: +Module Name: Az.EventGrid +online version: https://docs.microsoft.com/en-us/powershell/module/az.eventgrid/remove-azeventgriddomaineventsubscription +schema: 2.0.0 +--- + +# Remove-AzEventGridDomainEventSubscription + +## SYNOPSIS +Delete an existing event subscription for a domain. + +## SYNTAX + +### Delete (Default) +``` +Remove-AzEventGridDomainEventSubscription -DomainName -EventSubscriptionName + -ResourceGroupName [-SubscriptionId ] [-DefaultProfile ] [-AsJob] [-NoWait] + [-PassThru] [-Confirm] [-WhatIf] [] +``` + +### DeleteViaIdentity +``` +Remove-AzEventGridDomainEventSubscription -InputObject [-DefaultProfile ] + [-AsJob] [-NoWait] [-PassThru] [-Confirm] [-WhatIf] [] +``` + +## DESCRIPTION +Delete an existing event subscription for a domain. + +## EXAMPLES + +### Example 1: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +## PARAMETERS + +### -AsJob +Run the command as a job + +```yaml +Type: System.Management.Automation.SwitchParameter +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -DefaultProfile +The credentials, account, tenant, and subscription used for communication with Azure. + +```yaml +Type: System.Management.Automation.PSObject +Parameter Sets: (All) +Aliases: AzureRMContext, AzureCredential + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -DomainName +Name of the domain. + +```yaml +Type: System.String +Parameter Sets: Delete +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -EventSubscriptionName +Name of the event subscription to be deleted. +Event subscription names must be between 3 and 100 characters in length and use alphanumeric letters only. + +```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.EventGrid.Models.IEventGridIdentity +Parameter Sets: DeleteViaIdentity +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: True (ByValue) +Accept wildcard characters: False +``` + +### -NoWait +Run the command asynchronously + +```yaml +Type: System.Management.Automation.SwitchParameter +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -PassThru +Returns true when the command succeeds + +```yaml +Type: System.Management.Automation.SwitchParameter +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -ResourceGroupName +The name of the resource group within the user's subscription. + +```yaml +Type: System.String +Parameter Sets: Delete +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -SubscriptionId +Subscription credentials that uniquely identify a Microsoft Azure subscription. +The subscription ID forms part of the URI for every service call. + +```yaml +Type: System.String +Parameter Sets: Delete +Aliases: + +Required: False +Position: Named +Default value: (Get-AzContext).Subscription.Id +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -Confirm +Prompts you for confirmation before running the cmdlet. + +```yaml +Type: System.Management.Automation.SwitchParameter +Parameter Sets: (All) +Aliases: cf + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -WhatIf +Shows what would happen if the cmdlet runs. +The cmdlet is not run. + +```yaml +Type: System.Management.Automation.SwitchParameter +Parameter Sets: (All) +Aliases: wi + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### CommonParameters +This cmdlet supports the common parameters: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutVariable, -OutBuffer, -PipelineVariable, -Verbose, -WarningAction, and -WarningVariable. For more information, see [about_CommonParameters](http://go.microsoft.com/fwlink/?LinkID=113216). + +## INPUTS + +### Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.IEventGridIdentity + +## 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 + - `[ChannelName ]`: Name of the channel. + - `[DomainName ]`: Name of the domain. + - `[DomainTopicName ]`: Name of the topic. + - `[EventChannelName ]`: Name of the event channel. + - `[EventSubscriptionName ]`: Name of the event subscription. + - `[Id ]`: Resource identity path + - `[Location ]`: Name of the location. + - `[ParentName ]`: The name of the parent resource (namely, either, the topic name, domain name, or partner namespace name). + - `[ParentType ]`: The type of the parent resource. This can be either \'topics\', \'domains\', or \'partnerNamespaces\'. + - `[PartnerDestinationName ]`: Name of the partner destination. + - `[PartnerNamespaceName ]`: Name of the partner namespace. + - `[PartnerRegistrationName ]`: Name of the partner registration. + - `[PartnerTopicName ]`: Name of the partner topic. + - `[PrivateEndpointConnectionName ]`: The name of the private endpoint connection connection. + - `[PrivateLinkResourceName ]`: The name of private link resource. + - `[ProviderNamespace ]`: Namespace of the provider of the topic. + - `[ResourceGroupName ]`: The name of the resource group within the partners subscription. + - `[ResourceName ]`: Name of the resource. + - `[ResourceTypeName ]`: Name of the resource type. + - `[Scope ]`: The scope of the event subscription. The scope can be a subscription, or a resource group, or a top level resource belonging to a resource provider namespace, or an EventGrid topic. For example, use '/subscriptions/{subscriptionId}/' for a subscription, '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}' for a resource group, and '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}' for a resource, and '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.EventGrid/topics/{topicName}' for an EventGrid topic. + - `[SubscriptionId ]`: Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription ID forms part of the URI for every service call. + - `[SystemTopicName ]`: Name of the system topic. + - `[TopicName ]`: Name of the domain topic. + - `[TopicTypeName ]`: Name of the topic type. + - `[VerifiedPartnerName ]`: Name of the verified partner. + +## RELATED LINKS + diff --git a/swaggerci/eventgrid/docs/Remove-AzEventGridDomainTopic.md b/swaggerci/eventgrid/docs/Remove-AzEventGridDomainTopic.md new file mode 100644 index 000000000000..b05fc2966e04 --- /dev/null +++ b/swaggerci/eventgrid/docs/Remove-AzEventGridDomainTopic.md @@ -0,0 +1,273 @@ +--- +external help file: +Module Name: Az.EventGrid +online version: https://docs.microsoft.com/en-us/powershell/module/az.eventgrid/remove-azeventgriddomaintopic +schema: 2.0.0 +--- + +# Remove-AzEventGridDomainTopic + +## SYNOPSIS +Delete existing domain topic. + +## SYNTAX + +### Delete (Default) +``` +Remove-AzEventGridDomainTopic -DomainName -Name -ResourceGroupName + [-SubscriptionId ] [-DefaultProfile ] [-AsJob] [-NoWait] [-PassThru] [-Confirm] [-WhatIf] + [] +``` + +### DeleteViaIdentity +``` +Remove-AzEventGridDomainTopic -InputObject [-DefaultProfile ] [-AsJob] + [-NoWait] [-PassThru] [-Confirm] [-WhatIf] [] +``` + +## DESCRIPTION +Delete existing domain topic. + +## EXAMPLES + +### Example 1: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +## PARAMETERS + +### -AsJob +Run the command as a job + +```yaml +Type: System.Management.Automation.SwitchParameter +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -DefaultProfile +The credentials, account, tenant, and subscription used for communication with Azure. + +```yaml +Type: System.Management.Automation.PSObject +Parameter Sets: (All) +Aliases: AzureRMContext, AzureCredential + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -DomainName +Name of the domain. + +```yaml +Type: System.String +Parameter Sets: Delete +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -InputObject +Identity Parameter +To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + +```yaml +Type: Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.IEventGridIdentity +Parameter Sets: DeleteViaIdentity +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: True (ByValue) +Accept wildcard characters: False +``` + +### -Name +Name of the domain topic. + +```yaml +Type: System.String +Parameter Sets: Delete +Aliases: DomainTopicName + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -NoWait +Run the command asynchronously + +```yaml +Type: System.Management.Automation.SwitchParameter +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -PassThru +Returns true when the command succeeds + +```yaml +Type: System.Management.Automation.SwitchParameter +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -ResourceGroupName +The name of the resource group within the user's subscription. + +```yaml +Type: System.String +Parameter Sets: Delete +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -SubscriptionId +Subscription credentials that uniquely identify a Microsoft Azure subscription. +The subscription ID forms part of the URI for every service call. + +```yaml +Type: System.String +Parameter Sets: Delete +Aliases: + +Required: False +Position: Named +Default value: (Get-AzContext).Subscription.Id +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -Confirm +Prompts you for confirmation before running the cmdlet. + +```yaml +Type: System.Management.Automation.SwitchParameter +Parameter Sets: (All) +Aliases: cf + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -WhatIf +Shows what would happen if the cmdlet runs. +The cmdlet is not run. + +```yaml +Type: System.Management.Automation.SwitchParameter +Parameter Sets: (All) +Aliases: wi + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### CommonParameters +This cmdlet supports the common parameters: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutVariable, -OutBuffer, -PipelineVariable, -Verbose, -WarningAction, and -WarningVariable. For more information, see [about_CommonParameters](http://go.microsoft.com/fwlink/?LinkID=113216). + +## INPUTS + +### Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.IEventGridIdentity + +## 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 + - `[ChannelName ]`: Name of the channel. + - `[DomainName ]`: Name of the domain. + - `[DomainTopicName ]`: Name of the topic. + - `[EventChannelName ]`: Name of the event channel. + - `[EventSubscriptionName ]`: Name of the event subscription. + - `[Id ]`: Resource identity path + - `[Location ]`: Name of the location. + - `[ParentName ]`: The name of the parent resource (namely, either, the topic name, domain name, or partner namespace name). + - `[ParentType ]`: The type of the parent resource. This can be either \'topics\', \'domains\', or \'partnerNamespaces\'. + - `[PartnerDestinationName ]`: Name of the partner destination. + - `[PartnerNamespaceName ]`: Name of the partner namespace. + - `[PartnerRegistrationName ]`: Name of the partner registration. + - `[PartnerTopicName ]`: Name of the partner topic. + - `[PrivateEndpointConnectionName ]`: The name of the private endpoint connection connection. + - `[PrivateLinkResourceName ]`: The name of private link resource. + - `[ProviderNamespace ]`: Namespace of the provider of the topic. + - `[ResourceGroupName ]`: The name of the resource group within the partners subscription. + - `[ResourceName ]`: Name of the resource. + - `[ResourceTypeName ]`: Name of the resource type. + - `[Scope ]`: The scope of the event subscription. The scope can be a subscription, or a resource group, or a top level resource belonging to a resource provider namespace, or an EventGrid topic. For example, use '/subscriptions/{subscriptionId}/' for a subscription, '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}' for a resource group, and '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}' for a resource, and '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.EventGrid/topics/{topicName}' for an EventGrid topic. + - `[SubscriptionId ]`: Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription ID forms part of the URI for every service call. + - `[SystemTopicName ]`: Name of the system topic. + - `[TopicName ]`: Name of the domain topic. + - `[TopicTypeName ]`: Name of the topic type. + - `[VerifiedPartnerName ]`: Name of the verified partner. + +## RELATED LINKS + diff --git a/swaggerci/eventgrid/docs/Remove-AzEventGridDomainTopicEventSubscription.md b/swaggerci/eventgrid/docs/Remove-AzEventGridDomainTopicEventSubscription.md new file mode 100644 index 000000000000..49ed4e3d97af --- /dev/null +++ b/swaggerci/eventgrid/docs/Remove-AzEventGridDomainTopicEventSubscription.md @@ -0,0 +1,289 @@ +--- +external help file: +Module Name: Az.EventGrid +online version: https://docs.microsoft.com/en-us/powershell/module/az.eventgrid/remove-azeventgriddomaintopiceventsubscription +schema: 2.0.0 +--- + +# Remove-AzEventGridDomainTopicEventSubscription + +## SYNOPSIS +Delete a nested existing event subscription for a domain topic. + +## SYNTAX + +### Delete (Default) +``` +Remove-AzEventGridDomainTopicEventSubscription -DomainName -EventSubscriptionName + -ResourceGroupName -TopicName [-SubscriptionId ] [-DefaultProfile ] + [-AsJob] [-NoWait] [-PassThru] [-Confirm] [-WhatIf] [] +``` + +### DeleteViaIdentity +``` +Remove-AzEventGridDomainTopicEventSubscription -InputObject [-DefaultProfile ] + [-AsJob] [-NoWait] [-PassThru] [-Confirm] [-WhatIf] [] +``` + +## DESCRIPTION +Delete a nested existing event subscription for a domain topic. + +## EXAMPLES + +### Example 1: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +## PARAMETERS + +### -AsJob +Run the command as a job + +```yaml +Type: System.Management.Automation.SwitchParameter +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -DefaultProfile +The credentials, account, tenant, and subscription used for communication with Azure. + +```yaml +Type: System.Management.Automation.PSObject +Parameter Sets: (All) +Aliases: AzureRMContext, AzureCredential + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -DomainName +Name of the top level domain. + +```yaml +Type: System.String +Parameter Sets: Delete +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -EventSubscriptionName +Name of the event subscription to be deleted. +Event subscription names must be between 3 and 100 characters in length and use alphanumeric letters only. + +```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.EventGrid.Models.IEventGridIdentity +Parameter Sets: DeleteViaIdentity +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: True (ByValue) +Accept wildcard characters: False +``` + +### -NoWait +Run the command asynchronously + +```yaml +Type: System.Management.Automation.SwitchParameter +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -PassThru +Returns true when the command succeeds + +```yaml +Type: System.Management.Automation.SwitchParameter +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -ResourceGroupName +The name of the resource group within the user's subscription. + +```yaml +Type: System.String +Parameter Sets: Delete +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -SubscriptionId +Subscription credentials that uniquely identify a Microsoft Azure subscription. +The subscription ID forms part of the URI for every service call. + +```yaml +Type: System.String +Parameter Sets: Delete +Aliases: + +Required: False +Position: Named +Default value: (Get-AzContext).Subscription.Id +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -TopicName +Name of the domain topic. + +```yaml +Type: System.String +Parameter Sets: Delete +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.EventGrid.Models.IEventGridIdentity + +## 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 + - `[ChannelName ]`: Name of the channel. + - `[DomainName ]`: Name of the domain. + - `[DomainTopicName ]`: Name of the topic. + - `[EventChannelName ]`: Name of the event channel. + - `[EventSubscriptionName ]`: Name of the event subscription. + - `[Id ]`: Resource identity path + - `[Location ]`: Name of the location. + - `[ParentName ]`: The name of the parent resource (namely, either, the topic name, domain name, or partner namespace name). + - `[ParentType ]`: The type of the parent resource. This can be either \'topics\', \'domains\', or \'partnerNamespaces\'. + - `[PartnerDestinationName ]`: Name of the partner destination. + - `[PartnerNamespaceName ]`: Name of the partner namespace. + - `[PartnerRegistrationName ]`: Name of the partner registration. + - `[PartnerTopicName ]`: Name of the partner topic. + - `[PrivateEndpointConnectionName ]`: The name of the private endpoint connection connection. + - `[PrivateLinkResourceName ]`: The name of private link resource. + - `[ProviderNamespace ]`: Namespace of the provider of the topic. + - `[ResourceGroupName ]`: The name of the resource group within the partners subscription. + - `[ResourceName ]`: Name of the resource. + - `[ResourceTypeName ]`: Name of the resource type. + - `[Scope ]`: The scope of the event subscription. The scope can be a subscription, or a resource group, or a top level resource belonging to a resource provider namespace, or an EventGrid topic. For example, use '/subscriptions/{subscriptionId}/' for a subscription, '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}' for a resource group, and '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}' for a resource, and '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.EventGrid/topics/{topicName}' for an EventGrid topic. + - `[SubscriptionId ]`: Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription ID forms part of the URI for every service call. + - `[SystemTopicName ]`: Name of the system topic. + - `[TopicName ]`: Name of the domain topic. + - `[TopicTypeName ]`: Name of the topic type. + - `[VerifiedPartnerName ]`: Name of the verified partner. + +## RELATED LINKS + diff --git a/swaggerci/eventgrid/docs/Remove-AzEventGridEventChannel.md b/swaggerci/eventgrid/docs/Remove-AzEventGridEventChannel.md new file mode 100644 index 000000000000..11224b097aeb --- /dev/null +++ b/swaggerci/eventgrid/docs/Remove-AzEventGridEventChannel.md @@ -0,0 +1,273 @@ +--- +external help file: +Module Name: Az.EventGrid +online version: https://docs.microsoft.com/en-us/powershell/module/az.eventgrid/remove-azeventgrideventchannel +schema: 2.0.0 +--- + +# Remove-AzEventGridEventChannel + +## SYNOPSIS +Delete existing event channel. + +## SYNTAX + +### Delete (Default) +``` +Remove-AzEventGridEventChannel -Name -PartnerNamespaceName -ResourceGroupName + [-SubscriptionId ] [-DefaultProfile ] [-AsJob] [-NoWait] [-PassThru] [-Confirm] [-WhatIf] + [] +``` + +### DeleteViaIdentity +``` +Remove-AzEventGridEventChannel -InputObject [-DefaultProfile ] [-AsJob] + [-NoWait] [-PassThru] [-Confirm] [-WhatIf] [] +``` + +## DESCRIPTION +Delete existing event channel. + +## EXAMPLES + +### Example 1: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +## PARAMETERS + +### -AsJob +Run the command as a job + +```yaml +Type: System.Management.Automation.SwitchParameter +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -DefaultProfile +The credentials, account, tenant, and subscription used for communication with Azure. + +```yaml +Type: System.Management.Automation.PSObject +Parameter Sets: (All) +Aliases: AzureRMContext, AzureCredential + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -InputObject +Identity Parameter +To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + +```yaml +Type: Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.IEventGridIdentity +Parameter Sets: DeleteViaIdentity +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: True (ByValue) +Accept wildcard characters: False +``` + +### -Name +Name of the event channel. + +```yaml +Type: System.String +Parameter Sets: Delete +Aliases: EventChannelName + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -NoWait +Run the command asynchronously + +```yaml +Type: System.Management.Automation.SwitchParameter +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -PartnerNamespaceName +Name of the partner namespace. + +```yaml +Type: System.String +Parameter Sets: Delete +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -PassThru +Returns true when the command succeeds + +```yaml +Type: System.Management.Automation.SwitchParameter +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -ResourceGroupName +The name of the resource group within the user's subscription. + +```yaml +Type: System.String +Parameter Sets: Delete +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -SubscriptionId +Subscription credentials that uniquely identify a Microsoft Azure subscription. +The subscription ID forms part of the URI for every service call. + +```yaml +Type: System.String +Parameter Sets: Delete +Aliases: + +Required: False +Position: Named +Default value: (Get-AzContext).Subscription.Id +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -Confirm +Prompts you for confirmation before running the cmdlet. + +```yaml +Type: System.Management.Automation.SwitchParameter +Parameter Sets: (All) +Aliases: cf + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -WhatIf +Shows what would happen if the cmdlet runs. +The cmdlet is not run. + +```yaml +Type: System.Management.Automation.SwitchParameter +Parameter Sets: (All) +Aliases: wi + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### CommonParameters +This cmdlet supports the common parameters: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutVariable, -OutBuffer, -PipelineVariable, -Verbose, -WarningAction, and -WarningVariable. For more information, see [about_CommonParameters](http://go.microsoft.com/fwlink/?LinkID=113216). + +## INPUTS + +### Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.IEventGridIdentity + +## 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 + - `[ChannelName ]`: Name of the channel. + - `[DomainName ]`: Name of the domain. + - `[DomainTopicName ]`: Name of the topic. + - `[EventChannelName ]`: Name of the event channel. + - `[EventSubscriptionName ]`: Name of the event subscription. + - `[Id ]`: Resource identity path + - `[Location ]`: Name of the location. + - `[ParentName ]`: The name of the parent resource (namely, either, the topic name, domain name, or partner namespace name). + - `[ParentType ]`: The type of the parent resource. This can be either \'topics\', \'domains\', or \'partnerNamespaces\'. + - `[PartnerDestinationName ]`: Name of the partner destination. + - `[PartnerNamespaceName ]`: Name of the partner namespace. + - `[PartnerRegistrationName ]`: Name of the partner registration. + - `[PartnerTopicName ]`: Name of the partner topic. + - `[PrivateEndpointConnectionName ]`: The name of the private endpoint connection connection. + - `[PrivateLinkResourceName ]`: The name of private link resource. + - `[ProviderNamespace ]`: Namespace of the provider of the topic. + - `[ResourceGroupName ]`: The name of the resource group within the partners subscription. + - `[ResourceName ]`: Name of the resource. + - `[ResourceTypeName ]`: Name of the resource type. + - `[Scope ]`: The scope of the event subscription. The scope can be a subscription, or a resource group, or a top level resource belonging to a resource provider namespace, or an EventGrid topic. For example, use '/subscriptions/{subscriptionId}/' for a subscription, '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}' for a resource group, and '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}' for a resource, and '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.EventGrid/topics/{topicName}' for an EventGrid topic. + - `[SubscriptionId ]`: Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription ID forms part of the URI for every service call. + - `[SystemTopicName ]`: Name of the system topic. + - `[TopicName ]`: Name of the domain topic. + - `[TopicTypeName ]`: Name of the topic type. + - `[VerifiedPartnerName ]`: Name of the verified partner. + +## RELATED LINKS + diff --git a/swaggerci/eventgrid/docs/Remove-AzEventGridEventSubscription.md b/swaggerci/eventgrid/docs/Remove-AzEventGridEventSubscription.md new file mode 100644 index 000000000000..6221d3439ef6 --- /dev/null +++ b/swaggerci/eventgrid/docs/Remove-AzEventGridEventSubscription.md @@ -0,0 +1,243 @@ +--- +external help file: +Module Name: Az.EventGrid +online version: https://docs.microsoft.com/en-us/powershell/module/az.eventgrid/remove-azeventgrideventsubscription +schema: 2.0.0 +--- + +# Remove-AzEventGridEventSubscription + +## SYNOPSIS +Delete an existing event subscription. + +## SYNTAX + +### Delete (Default) +``` +Remove-AzEventGridEventSubscription -Name -Scope [-DefaultProfile ] [-AsJob] + [-NoWait] [-PassThru] [-Confirm] [-WhatIf] [] +``` + +### DeleteViaIdentity +``` +Remove-AzEventGridEventSubscription -InputObject [-DefaultProfile ] [-AsJob] + [-NoWait] [-PassThru] [-Confirm] [-WhatIf] [] +``` + +## DESCRIPTION +Delete an existing event subscription. + +## EXAMPLES + +### Example 1: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +## PARAMETERS + +### -AsJob +Run the command as a job + +```yaml +Type: System.Management.Automation.SwitchParameter +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -DefaultProfile +The credentials, account, tenant, and subscription used for communication with Azure. + +```yaml +Type: System.Management.Automation.PSObject +Parameter Sets: (All) +Aliases: AzureRMContext, AzureCredential + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -InputObject +Identity Parameter +To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + +```yaml +Type: Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.IEventGridIdentity +Parameter Sets: DeleteViaIdentity +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: True (ByValue) +Accept wildcard characters: False +``` + +### -Name +Name of the event subscription. + +```yaml +Type: System.String +Parameter Sets: Delete +Aliases: EventSubscriptionName + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -NoWait +Run the command asynchronously + +```yaml +Type: System.Management.Automation.SwitchParameter +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -PassThru +Returns true when the command succeeds + +```yaml +Type: System.Management.Automation.SwitchParameter +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -Scope +The scope of the event subscription. +The scope can be a subscription, or a resource group, or a top level resource belonging to a resource provider namespace, or an EventGrid topic. +For example, use '/subscriptions/{subscriptionId}/' for a subscription, '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}' for a resource group, and '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}' for a resource, and '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.EventGrid/topics/{topicName}' for an EventGrid topic. + +```yaml +Type: System.String +Parameter Sets: Delete +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.EventGrid.Models.IEventGridIdentity + +## 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 + - `[ChannelName ]`: Name of the channel. + - `[DomainName ]`: Name of the domain. + - `[DomainTopicName ]`: Name of the topic. + - `[EventChannelName ]`: Name of the event channel. + - `[EventSubscriptionName ]`: Name of the event subscription. + - `[Id ]`: Resource identity path + - `[Location ]`: Name of the location. + - `[ParentName ]`: The name of the parent resource (namely, either, the topic name, domain name, or partner namespace name). + - `[ParentType ]`: The type of the parent resource. This can be either \'topics\', \'domains\', or \'partnerNamespaces\'. + - `[PartnerDestinationName ]`: Name of the partner destination. + - `[PartnerNamespaceName ]`: Name of the partner namespace. + - `[PartnerRegistrationName ]`: Name of the partner registration. + - `[PartnerTopicName ]`: Name of the partner topic. + - `[PrivateEndpointConnectionName ]`: The name of the private endpoint connection connection. + - `[PrivateLinkResourceName ]`: The name of private link resource. + - `[ProviderNamespace ]`: Namespace of the provider of the topic. + - `[ResourceGroupName ]`: The name of the resource group within the partners subscription. + - `[ResourceName ]`: Name of the resource. + - `[ResourceTypeName ]`: Name of the resource type. + - `[Scope ]`: The scope of the event subscription. The scope can be a subscription, or a resource group, or a top level resource belonging to a resource provider namespace, or an EventGrid topic. For example, use '/subscriptions/{subscriptionId}/' for a subscription, '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}' for a resource group, and '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}' for a resource, and '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.EventGrid/topics/{topicName}' for an EventGrid topic. + - `[SubscriptionId ]`: Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription ID forms part of the URI for every service call. + - `[SystemTopicName ]`: Name of the system topic. + - `[TopicName ]`: Name of the domain topic. + - `[TopicTypeName ]`: Name of the topic type. + - `[VerifiedPartnerName ]`: Name of the verified partner. + +## RELATED LINKS + diff --git a/swaggerci/eventgrid/docs/Remove-AzEventGridPartnerConfiguration.md b/swaggerci/eventgrid/docs/Remove-AzEventGridPartnerConfiguration.md new file mode 100644 index 000000000000..8d0ceb488f14 --- /dev/null +++ b/swaggerci/eventgrid/docs/Remove-AzEventGridPartnerConfiguration.md @@ -0,0 +1,242 @@ +--- +external help file: +Module Name: Az.EventGrid +online version: https://docs.microsoft.com/en-us/powershell/module/az.eventgrid/remove-azeventgridpartnerconfiguration +schema: 2.0.0 +--- + +# Remove-AzEventGridPartnerConfiguration + +## SYNOPSIS +Delete existing partner configuration. + +## SYNTAX + +### Delete (Default) +``` +Remove-AzEventGridPartnerConfiguration -ResourceGroupName [-SubscriptionId ] + [-DefaultProfile ] [-AsJob] [-NoWait] [-PassThru] [-Confirm] [-WhatIf] [] +``` + +### DeleteViaIdentity +``` +Remove-AzEventGridPartnerConfiguration -InputObject [-DefaultProfile ] [-AsJob] + [-NoWait] [-PassThru] [-Confirm] [-WhatIf] [] +``` + +## DESCRIPTION +Delete existing partner configuration. + +## EXAMPLES + +### Example 1: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +## PARAMETERS + +### -AsJob +Run the command as a job + +```yaml +Type: System.Management.Automation.SwitchParameter +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -DefaultProfile +The credentials, account, tenant, and subscription used for communication with Azure. + +```yaml +Type: System.Management.Automation.PSObject +Parameter Sets: (All) +Aliases: AzureRMContext, AzureCredential + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -InputObject +Identity Parameter +To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + +```yaml +Type: Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.IEventGridIdentity +Parameter Sets: DeleteViaIdentity +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: True (ByValue) +Accept wildcard characters: False +``` + +### -NoWait +Run the command asynchronously + +```yaml +Type: System.Management.Automation.SwitchParameter +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -PassThru +Returns true when the command succeeds + +```yaml +Type: System.Management.Automation.SwitchParameter +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -ResourceGroupName +The name of the resource group within the user's subscription. + +```yaml +Type: System.String +Parameter Sets: Delete +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -SubscriptionId +Subscription credentials that uniquely identify a Microsoft Azure subscription. +The subscription ID forms part of the URI for every service call. + +```yaml +Type: System.String +Parameter Sets: Delete +Aliases: + +Required: False +Position: Named +Default value: (Get-AzContext).Subscription.Id +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -Confirm +Prompts you for confirmation before running the cmdlet. + +```yaml +Type: System.Management.Automation.SwitchParameter +Parameter Sets: (All) +Aliases: cf + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -WhatIf +Shows what would happen if the cmdlet runs. +The cmdlet is not run. + +```yaml +Type: System.Management.Automation.SwitchParameter +Parameter Sets: (All) +Aliases: wi + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### CommonParameters +This cmdlet supports the common parameters: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutVariable, -OutBuffer, -PipelineVariable, -Verbose, -WarningAction, and -WarningVariable. For more information, see [about_CommonParameters](http://go.microsoft.com/fwlink/?LinkID=113216). + +## INPUTS + +### Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.IEventGridIdentity + +## 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 + - `[ChannelName ]`: Name of the channel. + - `[DomainName ]`: Name of the domain. + - `[DomainTopicName ]`: Name of the topic. + - `[EventChannelName ]`: Name of the event channel. + - `[EventSubscriptionName ]`: Name of the event subscription. + - `[Id ]`: Resource identity path + - `[Location ]`: Name of the location. + - `[ParentName ]`: The name of the parent resource (namely, either, the topic name, domain name, or partner namespace name). + - `[ParentType ]`: The type of the parent resource. This can be either \'topics\', \'domains\', or \'partnerNamespaces\'. + - `[PartnerDestinationName ]`: Name of the partner destination. + - `[PartnerNamespaceName ]`: Name of the partner namespace. + - `[PartnerRegistrationName ]`: Name of the partner registration. + - `[PartnerTopicName ]`: Name of the partner topic. + - `[PrivateEndpointConnectionName ]`: The name of the private endpoint connection connection. + - `[PrivateLinkResourceName ]`: The name of private link resource. + - `[ProviderNamespace ]`: Namespace of the provider of the topic. + - `[ResourceGroupName ]`: The name of the resource group within the partners subscription. + - `[ResourceName ]`: Name of the resource. + - `[ResourceTypeName ]`: Name of the resource type. + - `[Scope ]`: The scope of the event subscription. The scope can be a subscription, or a resource group, or a top level resource belonging to a resource provider namespace, or an EventGrid topic. For example, use '/subscriptions/{subscriptionId}/' for a subscription, '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}' for a resource group, and '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}' for a resource, and '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.EventGrid/topics/{topicName}' for an EventGrid topic. + - `[SubscriptionId ]`: Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription ID forms part of the URI for every service call. + - `[SystemTopicName ]`: Name of the system topic. + - `[TopicName ]`: Name of the domain topic. + - `[TopicTypeName ]`: Name of the topic type. + - `[VerifiedPartnerName ]`: Name of the verified partner. + +## RELATED LINKS + diff --git a/swaggerci/eventgrid/docs/Remove-AzEventGridPartnerDestination.md b/swaggerci/eventgrid/docs/Remove-AzEventGridPartnerDestination.md new file mode 100644 index 000000000000..91f167336efb --- /dev/null +++ b/swaggerci/eventgrid/docs/Remove-AzEventGridPartnerDestination.md @@ -0,0 +1,257 @@ +--- +external help file: +Module Name: Az.EventGrid +online version: https://docs.microsoft.com/en-us/powershell/module/az.eventgrid/remove-azeventgridpartnerdestination +schema: 2.0.0 +--- + +# Remove-AzEventGridPartnerDestination + +## SYNOPSIS +Delete existing partner destination. + +## SYNTAX + +### Delete (Default) +``` +Remove-AzEventGridPartnerDestination -Name -ResourceGroupName [-SubscriptionId ] + [-DefaultProfile ] [-AsJob] [-NoWait] [-PassThru] [-Confirm] [-WhatIf] [] +``` + +### DeleteViaIdentity +``` +Remove-AzEventGridPartnerDestination -InputObject [-DefaultProfile ] [-AsJob] + [-NoWait] [-PassThru] [-Confirm] [-WhatIf] [] +``` + +## DESCRIPTION +Delete existing partner destination. + +## EXAMPLES + +### Example 1: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +## PARAMETERS + +### -AsJob +Run the command as a job + +```yaml +Type: System.Management.Automation.SwitchParameter +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -DefaultProfile +The credentials, account, tenant, and subscription used for communication with Azure. + +```yaml +Type: System.Management.Automation.PSObject +Parameter Sets: (All) +Aliases: AzureRMContext, AzureCredential + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -InputObject +Identity Parameter +To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + +```yaml +Type: Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.IEventGridIdentity +Parameter Sets: DeleteViaIdentity +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: True (ByValue) +Accept wildcard characters: False +``` + +### -Name +Name of the partner destination. + +```yaml +Type: System.String +Parameter Sets: Delete +Aliases: PartnerDestinationName + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -NoWait +Run the command asynchronously + +```yaml +Type: System.Management.Automation.SwitchParameter +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -PassThru +Returns true when the command succeeds + +```yaml +Type: System.Management.Automation.SwitchParameter +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -ResourceGroupName +The name of the resource group within the user's subscription. + +```yaml +Type: System.String +Parameter Sets: Delete +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -SubscriptionId +Subscription credentials that uniquely identify a Microsoft Azure subscription. +The subscription ID forms part of the URI for every service call. + +```yaml +Type: System.String +Parameter Sets: Delete +Aliases: + +Required: False +Position: Named +Default value: (Get-AzContext).Subscription.Id +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -Confirm +Prompts you for confirmation before running the cmdlet. + +```yaml +Type: System.Management.Automation.SwitchParameter +Parameter Sets: (All) +Aliases: cf + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -WhatIf +Shows what would happen if the cmdlet runs. +The cmdlet is not run. + +```yaml +Type: System.Management.Automation.SwitchParameter +Parameter Sets: (All) +Aliases: wi + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### CommonParameters +This cmdlet supports the common parameters: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutVariable, -OutBuffer, -PipelineVariable, -Verbose, -WarningAction, and -WarningVariable. For more information, see [about_CommonParameters](http://go.microsoft.com/fwlink/?LinkID=113216). + +## INPUTS + +### Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.IEventGridIdentity + +## 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 + - `[ChannelName ]`: Name of the channel. + - `[DomainName ]`: Name of the domain. + - `[DomainTopicName ]`: Name of the topic. + - `[EventChannelName ]`: Name of the event channel. + - `[EventSubscriptionName ]`: Name of the event subscription. + - `[Id ]`: Resource identity path + - `[Location ]`: Name of the location. + - `[ParentName ]`: The name of the parent resource (namely, either, the topic name, domain name, or partner namespace name). + - `[ParentType ]`: The type of the parent resource. This can be either \'topics\', \'domains\', or \'partnerNamespaces\'. + - `[PartnerDestinationName ]`: Name of the partner destination. + - `[PartnerNamespaceName ]`: Name of the partner namespace. + - `[PartnerRegistrationName ]`: Name of the partner registration. + - `[PartnerTopicName ]`: Name of the partner topic. + - `[PrivateEndpointConnectionName ]`: The name of the private endpoint connection connection. + - `[PrivateLinkResourceName ]`: The name of private link resource. + - `[ProviderNamespace ]`: Namespace of the provider of the topic. + - `[ResourceGroupName ]`: The name of the resource group within the partners subscription. + - `[ResourceName ]`: Name of the resource. + - `[ResourceTypeName ]`: Name of the resource type. + - `[Scope ]`: The scope of the event subscription. The scope can be a subscription, or a resource group, or a top level resource belonging to a resource provider namespace, or an EventGrid topic. For example, use '/subscriptions/{subscriptionId}/' for a subscription, '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}' for a resource group, and '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}' for a resource, and '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.EventGrid/topics/{topicName}' for an EventGrid topic. + - `[SubscriptionId ]`: Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription ID forms part of the URI for every service call. + - `[SystemTopicName ]`: Name of the system topic. + - `[TopicName ]`: Name of the domain topic. + - `[TopicTypeName ]`: Name of the topic type. + - `[VerifiedPartnerName ]`: Name of the verified partner. + +## RELATED LINKS + diff --git a/swaggerci/eventgrid/docs/Remove-AzEventGridPartnerNamespace.md b/swaggerci/eventgrid/docs/Remove-AzEventGridPartnerNamespace.md new file mode 100644 index 000000000000..7cc129e9c173 --- /dev/null +++ b/swaggerci/eventgrid/docs/Remove-AzEventGridPartnerNamespace.md @@ -0,0 +1,257 @@ +--- +external help file: +Module Name: Az.EventGrid +online version: https://docs.microsoft.com/en-us/powershell/module/az.eventgrid/remove-azeventgridpartnernamespace +schema: 2.0.0 +--- + +# Remove-AzEventGridPartnerNamespace + +## SYNOPSIS +Delete existing partner namespace. + +## SYNTAX + +### Delete (Default) +``` +Remove-AzEventGridPartnerNamespace -Name -ResourceGroupName [-SubscriptionId ] + [-DefaultProfile ] [-AsJob] [-NoWait] [-PassThru] [-Confirm] [-WhatIf] [] +``` + +### DeleteViaIdentity +``` +Remove-AzEventGridPartnerNamespace -InputObject [-DefaultProfile ] [-AsJob] + [-NoWait] [-PassThru] [-Confirm] [-WhatIf] [] +``` + +## DESCRIPTION +Delete existing partner namespace. + +## EXAMPLES + +### Example 1: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +## PARAMETERS + +### -AsJob +Run the command as a job + +```yaml +Type: System.Management.Automation.SwitchParameter +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -DefaultProfile +The credentials, account, tenant, and subscription used for communication with Azure. + +```yaml +Type: System.Management.Automation.PSObject +Parameter Sets: (All) +Aliases: AzureRMContext, AzureCredential + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -InputObject +Identity Parameter +To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + +```yaml +Type: Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.IEventGridIdentity +Parameter Sets: DeleteViaIdentity +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: True (ByValue) +Accept wildcard characters: False +``` + +### -Name +Name of the partner namespace. + +```yaml +Type: System.String +Parameter Sets: Delete +Aliases: PartnerNamespaceName + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -NoWait +Run the command asynchronously + +```yaml +Type: System.Management.Automation.SwitchParameter +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -PassThru +Returns true when the command succeeds + +```yaml +Type: System.Management.Automation.SwitchParameter +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -ResourceGroupName +The name of the resource group within the user's subscription. + +```yaml +Type: System.String +Parameter Sets: Delete +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -SubscriptionId +Subscription credentials that uniquely identify a Microsoft Azure subscription. +The subscription ID forms part of the URI for every service call. + +```yaml +Type: System.String +Parameter Sets: Delete +Aliases: + +Required: False +Position: Named +Default value: (Get-AzContext).Subscription.Id +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -Confirm +Prompts you for confirmation before running the cmdlet. + +```yaml +Type: System.Management.Automation.SwitchParameter +Parameter Sets: (All) +Aliases: cf + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -WhatIf +Shows what would happen if the cmdlet runs. +The cmdlet is not run. + +```yaml +Type: System.Management.Automation.SwitchParameter +Parameter Sets: (All) +Aliases: wi + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### CommonParameters +This cmdlet supports the common parameters: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutVariable, -OutBuffer, -PipelineVariable, -Verbose, -WarningAction, and -WarningVariable. For more information, see [about_CommonParameters](http://go.microsoft.com/fwlink/?LinkID=113216). + +## INPUTS + +### Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.IEventGridIdentity + +## 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 + - `[ChannelName ]`: Name of the channel. + - `[DomainName ]`: Name of the domain. + - `[DomainTopicName ]`: Name of the topic. + - `[EventChannelName ]`: Name of the event channel. + - `[EventSubscriptionName ]`: Name of the event subscription. + - `[Id ]`: Resource identity path + - `[Location ]`: Name of the location. + - `[ParentName ]`: The name of the parent resource (namely, either, the topic name, domain name, or partner namespace name). + - `[ParentType ]`: The type of the parent resource. This can be either \'topics\', \'domains\', or \'partnerNamespaces\'. + - `[PartnerDestinationName ]`: Name of the partner destination. + - `[PartnerNamespaceName ]`: Name of the partner namespace. + - `[PartnerRegistrationName ]`: Name of the partner registration. + - `[PartnerTopicName ]`: Name of the partner topic. + - `[PrivateEndpointConnectionName ]`: The name of the private endpoint connection connection. + - `[PrivateLinkResourceName ]`: The name of private link resource. + - `[ProviderNamespace ]`: Namespace of the provider of the topic. + - `[ResourceGroupName ]`: The name of the resource group within the partners subscription. + - `[ResourceName ]`: Name of the resource. + - `[ResourceTypeName ]`: Name of the resource type. + - `[Scope ]`: The scope of the event subscription. The scope can be a subscription, or a resource group, or a top level resource belonging to a resource provider namespace, or an EventGrid topic. For example, use '/subscriptions/{subscriptionId}/' for a subscription, '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}' for a resource group, and '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}' for a resource, and '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.EventGrid/topics/{topicName}' for an EventGrid topic. + - `[SubscriptionId ]`: Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription ID forms part of the URI for every service call. + - `[SystemTopicName ]`: Name of the system topic. + - `[TopicName ]`: Name of the domain topic. + - `[TopicTypeName ]`: Name of the topic type. + - `[VerifiedPartnerName ]`: Name of the verified partner. + +## RELATED LINKS + diff --git a/swaggerci/eventgrid/docs/Remove-AzEventGridPartnerRegistration.md b/swaggerci/eventgrid/docs/Remove-AzEventGridPartnerRegistration.md new file mode 100644 index 000000000000..e01f03fe032e --- /dev/null +++ b/swaggerci/eventgrid/docs/Remove-AzEventGridPartnerRegistration.md @@ -0,0 +1,257 @@ +--- +external help file: +Module Name: Az.EventGrid +online version: https://docs.microsoft.com/en-us/powershell/module/az.eventgrid/remove-azeventgridpartnerregistration +schema: 2.0.0 +--- + +# Remove-AzEventGridPartnerRegistration + +## SYNOPSIS +Deletes a partner registration with the specified parameters. + +## SYNTAX + +### Delete (Default) +``` +Remove-AzEventGridPartnerRegistration -Name -ResourceGroupName [-SubscriptionId ] + [-DefaultProfile ] [-AsJob] [-NoWait] [-PassThru] [-Confirm] [-WhatIf] [] +``` + +### DeleteViaIdentity +``` +Remove-AzEventGridPartnerRegistration -InputObject [-DefaultProfile ] [-AsJob] + [-NoWait] [-PassThru] [-Confirm] [-WhatIf] [] +``` + +## DESCRIPTION +Deletes a partner registration with the specified parameters. + +## EXAMPLES + +### Example 1: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +## PARAMETERS + +### -AsJob +Run the command as a job + +```yaml +Type: System.Management.Automation.SwitchParameter +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -DefaultProfile +The credentials, account, tenant, and subscription used for communication with Azure. + +```yaml +Type: System.Management.Automation.PSObject +Parameter Sets: (All) +Aliases: AzureRMContext, AzureCredential + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -InputObject +Identity Parameter +To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + +```yaml +Type: Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.IEventGridIdentity +Parameter Sets: DeleteViaIdentity +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: True (ByValue) +Accept wildcard characters: False +``` + +### -Name +Name of the partner registration. + +```yaml +Type: System.String +Parameter Sets: Delete +Aliases: PartnerRegistrationName + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -NoWait +Run the command asynchronously + +```yaml +Type: System.Management.Automation.SwitchParameter +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -PassThru +Returns true when the command succeeds + +```yaml +Type: System.Management.Automation.SwitchParameter +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -ResourceGroupName +The name of the resource group within the user's subscription. + +```yaml +Type: System.String +Parameter Sets: Delete +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -SubscriptionId +Subscription credentials that uniquely identify a Microsoft Azure subscription. +The subscription ID forms part of the URI for every service call. + +```yaml +Type: System.String +Parameter Sets: Delete +Aliases: + +Required: False +Position: Named +Default value: (Get-AzContext).Subscription.Id +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -Confirm +Prompts you for confirmation before running the cmdlet. + +```yaml +Type: System.Management.Automation.SwitchParameter +Parameter Sets: (All) +Aliases: cf + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -WhatIf +Shows what would happen if the cmdlet runs. +The cmdlet is not run. + +```yaml +Type: System.Management.Automation.SwitchParameter +Parameter Sets: (All) +Aliases: wi + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### CommonParameters +This cmdlet supports the common parameters: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutVariable, -OutBuffer, -PipelineVariable, -Verbose, -WarningAction, and -WarningVariable. For more information, see [about_CommonParameters](http://go.microsoft.com/fwlink/?LinkID=113216). + +## INPUTS + +### Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.IEventGridIdentity + +## 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 + - `[ChannelName ]`: Name of the channel. + - `[DomainName ]`: Name of the domain. + - `[DomainTopicName ]`: Name of the topic. + - `[EventChannelName ]`: Name of the event channel. + - `[EventSubscriptionName ]`: Name of the event subscription. + - `[Id ]`: Resource identity path + - `[Location ]`: Name of the location. + - `[ParentName ]`: The name of the parent resource (namely, either, the topic name, domain name, or partner namespace name). + - `[ParentType ]`: The type of the parent resource. This can be either \'topics\', \'domains\', or \'partnerNamespaces\'. + - `[PartnerDestinationName ]`: Name of the partner destination. + - `[PartnerNamespaceName ]`: Name of the partner namespace. + - `[PartnerRegistrationName ]`: Name of the partner registration. + - `[PartnerTopicName ]`: Name of the partner topic. + - `[PrivateEndpointConnectionName ]`: The name of the private endpoint connection connection. + - `[PrivateLinkResourceName ]`: The name of private link resource. + - `[ProviderNamespace ]`: Namespace of the provider of the topic. + - `[ResourceGroupName ]`: The name of the resource group within the partners subscription. + - `[ResourceName ]`: Name of the resource. + - `[ResourceTypeName ]`: Name of the resource type. + - `[Scope ]`: The scope of the event subscription. The scope can be a subscription, or a resource group, or a top level resource belonging to a resource provider namespace, or an EventGrid topic. For example, use '/subscriptions/{subscriptionId}/' for a subscription, '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}' for a resource group, and '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}' for a resource, and '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.EventGrid/topics/{topicName}' for an EventGrid topic. + - `[SubscriptionId ]`: Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription ID forms part of the URI for every service call. + - `[SystemTopicName ]`: Name of the system topic. + - `[TopicName ]`: Name of the domain topic. + - `[TopicTypeName ]`: Name of the topic type. + - `[VerifiedPartnerName ]`: Name of the verified partner. + +## RELATED LINKS + diff --git a/swaggerci/eventgrid/docs/Remove-AzEventGridPartnerTopic.md b/swaggerci/eventgrid/docs/Remove-AzEventGridPartnerTopic.md new file mode 100644 index 000000000000..a511abe6c61f --- /dev/null +++ b/swaggerci/eventgrid/docs/Remove-AzEventGridPartnerTopic.md @@ -0,0 +1,257 @@ +--- +external help file: +Module Name: Az.EventGrid +online version: https://docs.microsoft.com/en-us/powershell/module/az.eventgrid/remove-azeventgridpartnertopic +schema: 2.0.0 +--- + +# Remove-AzEventGridPartnerTopic + +## SYNOPSIS +Delete existing partner topic. + +## SYNTAX + +### Delete (Default) +``` +Remove-AzEventGridPartnerTopic -Name -ResourceGroupName [-SubscriptionId ] + [-DefaultProfile ] [-AsJob] [-NoWait] [-PassThru] [-Confirm] [-WhatIf] [] +``` + +### DeleteViaIdentity +``` +Remove-AzEventGridPartnerTopic -InputObject [-DefaultProfile ] [-AsJob] + [-NoWait] [-PassThru] [-Confirm] [-WhatIf] [] +``` + +## DESCRIPTION +Delete existing partner topic. + +## EXAMPLES + +### Example 1: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +## PARAMETERS + +### -AsJob +Run the command as a job + +```yaml +Type: System.Management.Automation.SwitchParameter +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -DefaultProfile +The credentials, account, tenant, and subscription used for communication with Azure. + +```yaml +Type: System.Management.Automation.PSObject +Parameter Sets: (All) +Aliases: AzureRMContext, AzureCredential + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -InputObject +Identity Parameter +To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + +```yaml +Type: Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.IEventGridIdentity +Parameter Sets: DeleteViaIdentity +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: True (ByValue) +Accept wildcard characters: False +``` + +### -Name +Name of the partner topic. + +```yaml +Type: System.String +Parameter Sets: Delete +Aliases: PartnerTopicName + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -NoWait +Run the command asynchronously + +```yaml +Type: System.Management.Automation.SwitchParameter +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -PassThru +Returns true when the command succeeds + +```yaml +Type: System.Management.Automation.SwitchParameter +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -ResourceGroupName +The name of the resource group within the user's subscription. + +```yaml +Type: System.String +Parameter Sets: Delete +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -SubscriptionId +Subscription credentials that uniquely identify a Microsoft Azure subscription. +The subscription ID forms part of the URI for every service call. + +```yaml +Type: System.String +Parameter Sets: Delete +Aliases: + +Required: False +Position: Named +Default value: (Get-AzContext).Subscription.Id +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -Confirm +Prompts you for confirmation before running the cmdlet. + +```yaml +Type: System.Management.Automation.SwitchParameter +Parameter Sets: (All) +Aliases: cf + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -WhatIf +Shows what would happen if the cmdlet runs. +The cmdlet is not run. + +```yaml +Type: System.Management.Automation.SwitchParameter +Parameter Sets: (All) +Aliases: wi + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### CommonParameters +This cmdlet supports the common parameters: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutVariable, -OutBuffer, -PipelineVariable, -Verbose, -WarningAction, and -WarningVariable. For more information, see [about_CommonParameters](http://go.microsoft.com/fwlink/?LinkID=113216). + +## INPUTS + +### Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.IEventGridIdentity + +## 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 + - `[ChannelName ]`: Name of the channel. + - `[DomainName ]`: Name of the domain. + - `[DomainTopicName ]`: Name of the topic. + - `[EventChannelName ]`: Name of the event channel. + - `[EventSubscriptionName ]`: Name of the event subscription. + - `[Id ]`: Resource identity path + - `[Location ]`: Name of the location. + - `[ParentName ]`: The name of the parent resource (namely, either, the topic name, domain name, or partner namespace name). + - `[ParentType ]`: The type of the parent resource. This can be either \'topics\', \'domains\', or \'partnerNamespaces\'. + - `[PartnerDestinationName ]`: Name of the partner destination. + - `[PartnerNamespaceName ]`: Name of the partner namespace. + - `[PartnerRegistrationName ]`: Name of the partner registration. + - `[PartnerTopicName ]`: Name of the partner topic. + - `[PrivateEndpointConnectionName ]`: The name of the private endpoint connection connection. + - `[PrivateLinkResourceName ]`: The name of private link resource. + - `[ProviderNamespace ]`: Namespace of the provider of the topic. + - `[ResourceGroupName ]`: The name of the resource group within the partners subscription. + - `[ResourceName ]`: Name of the resource. + - `[ResourceTypeName ]`: Name of the resource type. + - `[Scope ]`: The scope of the event subscription. The scope can be a subscription, or a resource group, or a top level resource belonging to a resource provider namespace, or an EventGrid topic. For example, use '/subscriptions/{subscriptionId}/' for a subscription, '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}' for a resource group, and '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}' for a resource, and '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.EventGrid/topics/{topicName}' for an EventGrid topic. + - `[SubscriptionId ]`: Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription ID forms part of the URI for every service call. + - `[SystemTopicName ]`: Name of the system topic. + - `[TopicName ]`: Name of the domain topic. + - `[TopicTypeName ]`: Name of the topic type. + - `[VerifiedPartnerName ]`: Name of the verified partner. + +## RELATED LINKS + diff --git a/swaggerci/eventgrid/docs/Remove-AzEventGridPartnerTopicEventSubscription.md b/swaggerci/eventgrid/docs/Remove-AzEventGridPartnerTopicEventSubscription.md new file mode 100644 index 000000000000..ee190f560694 --- /dev/null +++ b/swaggerci/eventgrid/docs/Remove-AzEventGridPartnerTopicEventSubscription.md @@ -0,0 +1,274 @@ +--- +external help file: +Module Name: Az.EventGrid +online version: https://docs.microsoft.com/en-us/powershell/module/az.eventgrid/remove-azeventgridpartnertopiceventsubscription +schema: 2.0.0 +--- + +# Remove-AzEventGridPartnerTopicEventSubscription + +## SYNOPSIS +Delete an existing event subscription of a partner topic. + +## SYNTAX + +### Delete (Default) +``` +Remove-AzEventGridPartnerTopicEventSubscription -EventSubscriptionName -PartnerTopicName + -ResourceGroupName [-SubscriptionId ] [-DefaultProfile ] [-AsJob] [-NoWait] + [-PassThru] [-Confirm] [-WhatIf] [] +``` + +### DeleteViaIdentity +``` +Remove-AzEventGridPartnerTopicEventSubscription -InputObject [-DefaultProfile ] + [-AsJob] [-NoWait] [-PassThru] [-Confirm] [-WhatIf] [] +``` + +## DESCRIPTION +Delete an existing event subscription of a partner topic. + +## EXAMPLES + +### Example 1: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +## PARAMETERS + +### -AsJob +Run the command as a job + +```yaml +Type: System.Management.Automation.SwitchParameter +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -DefaultProfile +The credentials, account, tenant, and subscription used for communication with Azure. + +```yaml +Type: System.Management.Automation.PSObject +Parameter Sets: (All) +Aliases: AzureRMContext, AzureCredential + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -EventSubscriptionName +Name of the event subscription to be created. +Event subscription names must be between 3 and 100 characters in length and use alphanumeric letters only. + +```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.EventGrid.Models.IEventGridIdentity +Parameter Sets: DeleteViaIdentity +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: True (ByValue) +Accept wildcard characters: False +``` + +### -NoWait +Run the command asynchronously + +```yaml +Type: System.Management.Automation.SwitchParameter +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -PartnerTopicName +Name of the partner topic. + +```yaml +Type: System.String +Parameter Sets: Delete +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -PassThru +Returns true when the command succeeds + +```yaml +Type: System.Management.Automation.SwitchParameter +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -ResourceGroupName +The name of the resource group within the user's subscription. + +```yaml +Type: System.String +Parameter Sets: Delete +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -SubscriptionId +Subscription credentials that uniquely identify a Microsoft Azure subscription. +The subscription ID forms part of the URI for every service call. + +```yaml +Type: System.String +Parameter Sets: Delete +Aliases: + +Required: False +Position: Named +Default value: (Get-AzContext).Subscription.Id +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -Confirm +Prompts you for confirmation before running the cmdlet. + +```yaml +Type: System.Management.Automation.SwitchParameter +Parameter Sets: (All) +Aliases: cf + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -WhatIf +Shows what would happen if the cmdlet runs. +The cmdlet is not run. + +```yaml +Type: System.Management.Automation.SwitchParameter +Parameter Sets: (All) +Aliases: wi + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### CommonParameters +This cmdlet supports the common parameters: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutVariable, -OutBuffer, -PipelineVariable, -Verbose, -WarningAction, and -WarningVariable. For more information, see [about_CommonParameters](http://go.microsoft.com/fwlink/?LinkID=113216). + +## INPUTS + +### Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.IEventGridIdentity + +## 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 + - `[ChannelName ]`: Name of the channel. + - `[DomainName ]`: Name of the domain. + - `[DomainTopicName ]`: Name of the topic. + - `[EventChannelName ]`: Name of the event channel. + - `[EventSubscriptionName ]`: Name of the event subscription. + - `[Id ]`: Resource identity path + - `[Location ]`: Name of the location. + - `[ParentName ]`: The name of the parent resource (namely, either, the topic name, domain name, or partner namespace name). + - `[ParentType ]`: The type of the parent resource. This can be either \'topics\', \'domains\', or \'partnerNamespaces\'. + - `[PartnerDestinationName ]`: Name of the partner destination. + - `[PartnerNamespaceName ]`: Name of the partner namespace. + - `[PartnerRegistrationName ]`: Name of the partner registration. + - `[PartnerTopicName ]`: Name of the partner topic. + - `[PrivateEndpointConnectionName ]`: The name of the private endpoint connection connection. + - `[PrivateLinkResourceName ]`: The name of private link resource. + - `[ProviderNamespace ]`: Namespace of the provider of the topic. + - `[ResourceGroupName ]`: The name of the resource group within the partners subscription. + - `[ResourceName ]`: Name of the resource. + - `[ResourceTypeName ]`: Name of the resource type. + - `[Scope ]`: The scope of the event subscription. The scope can be a subscription, or a resource group, or a top level resource belonging to a resource provider namespace, or an EventGrid topic. For example, use '/subscriptions/{subscriptionId}/' for a subscription, '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}' for a resource group, and '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}' for a resource, and '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.EventGrid/topics/{topicName}' for an EventGrid topic. + - `[SubscriptionId ]`: Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription ID forms part of the URI for every service call. + - `[SystemTopicName ]`: Name of the system topic. + - `[TopicName ]`: Name of the domain topic. + - `[TopicTypeName ]`: Name of the topic type. + - `[VerifiedPartnerName ]`: Name of the verified partner. + +## RELATED LINKS + diff --git a/swaggerci/eventgrid/docs/Remove-AzEventGridPrivateEndpointConnection.md b/swaggerci/eventgrid/docs/Remove-AzEventGridPrivateEndpointConnection.md new file mode 100644 index 000000000000..ab717673aa1b --- /dev/null +++ b/swaggerci/eventgrid/docs/Remove-AzEventGridPrivateEndpointConnection.md @@ -0,0 +1,289 @@ +--- +external help file: +Module Name: Az.EventGrid +online version: https://docs.microsoft.com/en-us/powershell/module/az.eventgrid/remove-azeventgridprivateendpointconnection +schema: 2.0.0 +--- + +# Remove-AzEventGridPrivateEndpointConnection + +## SYNOPSIS +Delete a specific private endpoint connection under a topic, domain, or partner namespace. + +## SYNTAX + +### Delete (Default) +``` +Remove-AzEventGridPrivateEndpointConnection -Name -ParentName -ParentType + -ResourceGroupName [-SubscriptionId ] [-DefaultProfile ] [-AsJob] [-NoWait] + [-PassThru] [-Confirm] [-WhatIf] [] +``` + +### DeleteViaIdentity +``` +Remove-AzEventGridPrivateEndpointConnection -InputObject [-DefaultProfile ] + [-AsJob] [-NoWait] [-PassThru] [-Confirm] [-WhatIf] [] +``` + +## DESCRIPTION +Delete a specific private endpoint connection under a topic, domain, or partner namespace. + +## EXAMPLES + +### Example 1: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +## PARAMETERS + +### -AsJob +Run the command as a job + +```yaml +Type: System.Management.Automation.SwitchParameter +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -DefaultProfile +The credentials, account, tenant, and subscription used for communication with Azure. + +```yaml +Type: System.Management.Automation.PSObject +Parameter Sets: (All) +Aliases: AzureRMContext, AzureCredential + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -InputObject +Identity Parameter +To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + +```yaml +Type: Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.IEventGridIdentity +Parameter Sets: DeleteViaIdentity +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: True (ByValue) +Accept wildcard characters: False +``` + +### -Name +The name of the private endpoint connection connection. + +```yaml +Type: System.String +Parameter Sets: Delete +Aliases: PrivateEndpointConnectionName + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -NoWait +Run the command asynchronously + +```yaml +Type: System.Management.Automation.SwitchParameter +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -ParentName +The name of the parent resource (namely, either, the topic name, domain name, or partner namespace name). + +```yaml +Type: System.String +Parameter Sets: Delete +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -ParentType +The type of the parent resource. +This can be either \'topics\', \'domains\', or \'partnerNamespaces\'. + +```yaml +Type: Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.ParentType +Parameter Sets: Delete +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -PassThru +Returns true when the command succeeds + +```yaml +Type: System.Management.Automation.SwitchParameter +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -ResourceGroupName +The name of the resource group within the user's subscription. + +```yaml +Type: System.String +Parameter Sets: Delete +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -SubscriptionId +Subscription credentials that uniquely identify a Microsoft Azure subscription. +The subscription ID forms part of the URI for every service call. + +```yaml +Type: System.String +Parameter Sets: Delete +Aliases: + +Required: False +Position: Named +Default value: (Get-AzContext).Subscription.Id +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -Confirm +Prompts you for confirmation before running the cmdlet. + +```yaml +Type: System.Management.Automation.SwitchParameter +Parameter Sets: (All) +Aliases: cf + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -WhatIf +Shows what would happen if the cmdlet runs. +The cmdlet is not run. + +```yaml +Type: System.Management.Automation.SwitchParameter +Parameter Sets: (All) +Aliases: wi + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### CommonParameters +This cmdlet supports the common parameters: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutVariable, -OutBuffer, -PipelineVariable, -Verbose, -WarningAction, and -WarningVariable. For more information, see [about_CommonParameters](http://go.microsoft.com/fwlink/?LinkID=113216). + +## INPUTS + +### Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.IEventGridIdentity + +## 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 + - `[ChannelName ]`: Name of the channel. + - `[DomainName ]`: Name of the domain. + - `[DomainTopicName ]`: Name of the topic. + - `[EventChannelName ]`: Name of the event channel. + - `[EventSubscriptionName ]`: Name of the event subscription. + - `[Id ]`: Resource identity path + - `[Location ]`: Name of the location. + - `[ParentName ]`: The name of the parent resource (namely, either, the topic name, domain name, or partner namespace name). + - `[ParentType ]`: The type of the parent resource. This can be either \'topics\', \'domains\', or \'partnerNamespaces\'. + - `[PartnerDestinationName ]`: Name of the partner destination. + - `[PartnerNamespaceName ]`: Name of the partner namespace. + - `[PartnerRegistrationName ]`: Name of the partner registration. + - `[PartnerTopicName ]`: Name of the partner topic. + - `[PrivateEndpointConnectionName ]`: The name of the private endpoint connection connection. + - `[PrivateLinkResourceName ]`: The name of private link resource. + - `[ProviderNamespace ]`: Namespace of the provider of the topic. + - `[ResourceGroupName ]`: The name of the resource group within the partners subscription. + - `[ResourceName ]`: Name of the resource. + - `[ResourceTypeName ]`: Name of the resource type. + - `[Scope ]`: The scope of the event subscription. The scope can be a subscription, or a resource group, or a top level resource belonging to a resource provider namespace, or an EventGrid topic. For example, use '/subscriptions/{subscriptionId}/' for a subscription, '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}' for a resource group, and '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}' for a resource, and '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.EventGrid/topics/{topicName}' for an EventGrid topic. + - `[SubscriptionId ]`: Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription ID forms part of the URI for every service call. + - `[SystemTopicName ]`: Name of the system topic. + - `[TopicName ]`: Name of the domain topic. + - `[TopicTypeName ]`: Name of the topic type. + - `[VerifiedPartnerName ]`: Name of the verified partner. + +## RELATED LINKS + diff --git a/swaggerci/eventgrid/docs/Remove-AzEventGridSystemTopic.md b/swaggerci/eventgrid/docs/Remove-AzEventGridSystemTopic.md new file mode 100644 index 000000000000..e49f1563dfed --- /dev/null +++ b/swaggerci/eventgrid/docs/Remove-AzEventGridSystemTopic.md @@ -0,0 +1,257 @@ +--- +external help file: +Module Name: Az.EventGrid +online version: https://docs.microsoft.com/en-us/powershell/module/az.eventgrid/remove-azeventgridsystemtopic +schema: 2.0.0 +--- + +# Remove-AzEventGridSystemTopic + +## SYNOPSIS +Delete existing system topic. + +## SYNTAX + +### Delete (Default) +``` +Remove-AzEventGridSystemTopic -Name -ResourceGroupName [-SubscriptionId ] + [-DefaultProfile ] [-AsJob] [-NoWait] [-PassThru] [-Confirm] [-WhatIf] [] +``` + +### DeleteViaIdentity +``` +Remove-AzEventGridSystemTopic -InputObject [-DefaultProfile ] [-AsJob] + [-NoWait] [-PassThru] [-Confirm] [-WhatIf] [] +``` + +## DESCRIPTION +Delete existing system topic. + +## EXAMPLES + +### Example 1: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +## PARAMETERS + +### -AsJob +Run the command as a job + +```yaml +Type: System.Management.Automation.SwitchParameter +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -DefaultProfile +The credentials, account, tenant, and subscription used for communication with Azure. + +```yaml +Type: System.Management.Automation.PSObject +Parameter Sets: (All) +Aliases: AzureRMContext, AzureCredential + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -InputObject +Identity Parameter +To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + +```yaml +Type: Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.IEventGridIdentity +Parameter Sets: DeleteViaIdentity +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: True (ByValue) +Accept wildcard characters: False +``` + +### -Name +Name of the system topic. + +```yaml +Type: System.String +Parameter Sets: Delete +Aliases: SystemTopicName + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -NoWait +Run the command asynchronously + +```yaml +Type: System.Management.Automation.SwitchParameter +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -PassThru +Returns true when the command succeeds + +```yaml +Type: System.Management.Automation.SwitchParameter +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -ResourceGroupName +The name of the resource group within the user's subscription. + +```yaml +Type: System.String +Parameter Sets: Delete +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -SubscriptionId +Subscription credentials that uniquely identify a Microsoft Azure subscription. +The subscription ID forms part of the URI for every service call. + +```yaml +Type: System.String +Parameter Sets: Delete +Aliases: + +Required: False +Position: Named +Default value: (Get-AzContext).Subscription.Id +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -Confirm +Prompts you for confirmation before running the cmdlet. + +```yaml +Type: System.Management.Automation.SwitchParameter +Parameter Sets: (All) +Aliases: cf + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -WhatIf +Shows what would happen if the cmdlet runs. +The cmdlet is not run. + +```yaml +Type: System.Management.Automation.SwitchParameter +Parameter Sets: (All) +Aliases: wi + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### CommonParameters +This cmdlet supports the common parameters: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutVariable, -OutBuffer, -PipelineVariable, -Verbose, -WarningAction, and -WarningVariable. For more information, see [about_CommonParameters](http://go.microsoft.com/fwlink/?LinkID=113216). + +## INPUTS + +### Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.IEventGridIdentity + +## 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 + - `[ChannelName ]`: Name of the channel. + - `[DomainName ]`: Name of the domain. + - `[DomainTopicName ]`: Name of the topic. + - `[EventChannelName ]`: Name of the event channel. + - `[EventSubscriptionName ]`: Name of the event subscription. + - `[Id ]`: Resource identity path + - `[Location ]`: Name of the location. + - `[ParentName ]`: The name of the parent resource (namely, either, the topic name, domain name, or partner namespace name). + - `[ParentType ]`: The type of the parent resource. This can be either \'topics\', \'domains\', or \'partnerNamespaces\'. + - `[PartnerDestinationName ]`: Name of the partner destination. + - `[PartnerNamespaceName ]`: Name of the partner namespace. + - `[PartnerRegistrationName ]`: Name of the partner registration. + - `[PartnerTopicName ]`: Name of the partner topic. + - `[PrivateEndpointConnectionName ]`: The name of the private endpoint connection connection. + - `[PrivateLinkResourceName ]`: The name of private link resource. + - `[ProviderNamespace ]`: Namespace of the provider of the topic. + - `[ResourceGroupName ]`: The name of the resource group within the partners subscription. + - `[ResourceName ]`: Name of the resource. + - `[ResourceTypeName ]`: Name of the resource type. + - `[Scope ]`: The scope of the event subscription. The scope can be a subscription, or a resource group, or a top level resource belonging to a resource provider namespace, or an EventGrid topic. For example, use '/subscriptions/{subscriptionId}/' for a subscription, '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}' for a resource group, and '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}' for a resource, and '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.EventGrid/topics/{topicName}' for an EventGrid topic. + - `[SubscriptionId ]`: Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription ID forms part of the URI for every service call. + - `[SystemTopicName ]`: Name of the system topic. + - `[TopicName ]`: Name of the domain topic. + - `[TopicTypeName ]`: Name of the topic type. + - `[VerifiedPartnerName ]`: Name of the verified partner. + +## RELATED LINKS + diff --git a/swaggerci/eventgrid/docs/Remove-AzEventGridSystemTopicEventSubscription.md b/swaggerci/eventgrid/docs/Remove-AzEventGridSystemTopicEventSubscription.md new file mode 100644 index 000000000000..46d57a676bb1 --- /dev/null +++ b/swaggerci/eventgrid/docs/Remove-AzEventGridSystemTopicEventSubscription.md @@ -0,0 +1,274 @@ +--- +external help file: +Module Name: Az.EventGrid +online version: https://docs.microsoft.com/en-us/powershell/module/az.eventgrid/remove-azeventgridsystemtopiceventsubscription +schema: 2.0.0 +--- + +# Remove-AzEventGridSystemTopicEventSubscription + +## SYNOPSIS +Delete an existing event subscription of a system topic. + +## SYNTAX + +### Delete (Default) +``` +Remove-AzEventGridSystemTopicEventSubscription -EventSubscriptionName -ResourceGroupName + -SystemTopicName [-SubscriptionId ] [-DefaultProfile ] [-AsJob] [-NoWait] + [-PassThru] [-Confirm] [-WhatIf] [] +``` + +### DeleteViaIdentity +``` +Remove-AzEventGridSystemTopicEventSubscription -InputObject [-DefaultProfile ] + [-AsJob] [-NoWait] [-PassThru] [-Confirm] [-WhatIf] [] +``` + +## DESCRIPTION +Delete an existing event subscription of a system topic. + +## EXAMPLES + +### Example 1: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +## PARAMETERS + +### -AsJob +Run the command as a job + +```yaml +Type: System.Management.Automation.SwitchParameter +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -DefaultProfile +The credentials, account, tenant, and subscription used for communication with Azure. + +```yaml +Type: System.Management.Automation.PSObject +Parameter Sets: (All) +Aliases: AzureRMContext, AzureCredential + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -EventSubscriptionName +Name of the event subscription to be created. +Event subscription names must be between 3 and 100 characters in length and use alphanumeric letters only. + +```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.EventGrid.Models.IEventGridIdentity +Parameter Sets: DeleteViaIdentity +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: True (ByValue) +Accept wildcard characters: False +``` + +### -NoWait +Run the command asynchronously + +```yaml +Type: System.Management.Automation.SwitchParameter +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -PassThru +Returns true when the command succeeds + +```yaml +Type: System.Management.Automation.SwitchParameter +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -ResourceGroupName +The name of the resource group within the user's subscription. + +```yaml +Type: System.String +Parameter Sets: Delete +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -SubscriptionId +Subscription credentials that uniquely identify a Microsoft Azure subscription. +The subscription ID forms part of the URI for every service call. + +```yaml +Type: System.String +Parameter Sets: Delete +Aliases: + +Required: False +Position: Named +Default value: (Get-AzContext).Subscription.Id +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -SystemTopicName +Name of the system topic. + +```yaml +Type: System.String +Parameter Sets: Delete +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.EventGrid.Models.IEventGridIdentity + +## 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 + - `[ChannelName ]`: Name of the channel. + - `[DomainName ]`: Name of the domain. + - `[DomainTopicName ]`: Name of the topic. + - `[EventChannelName ]`: Name of the event channel. + - `[EventSubscriptionName ]`: Name of the event subscription. + - `[Id ]`: Resource identity path + - `[Location ]`: Name of the location. + - `[ParentName ]`: The name of the parent resource (namely, either, the topic name, domain name, or partner namespace name). + - `[ParentType ]`: The type of the parent resource. This can be either \'topics\', \'domains\', or \'partnerNamespaces\'. + - `[PartnerDestinationName ]`: Name of the partner destination. + - `[PartnerNamespaceName ]`: Name of the partner namespace. + - `[PartnerRegistrationName ]`: Name of the partner registration. + - `[PartnerTopicName ]`: Name of the partner topic. + - `[PrivateEndpointConnectionName ]`: The name of the private endpoint connection connection. + - `[PrivateLinkResourceName ]`: The name of private link resource. + - `[ProviderNamespace ]`: Namespace of the provider of the topic. + - `[ResourceGroupName ]`: The name of the resource group within the partners subscription. + - `[ResourceName ]`: Name of the resource. + - `[ResourceTypeName ]`: Name of the resource type. + - `[Scope ]`: The scope of the event subscription. The scope can be a subscription, or a resource group, or a top level resource belonging to a resource provider namespace, or an EventGrid topic. For example, use '/subscriptions/{subscriptionId}/' for a subscription, '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}' for a resource group, and '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}' for a resource, and '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.EventGrid/topics/{topicName}' for an EventGrid topic. + - `[SubscriptionId ]`: Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription ID forms part of the URI for every service call. + - `[SystemTopicName ]`: Name of the system topic. + - `[TopicName ]`: Name of the domain topic. + - `[TopicTypeName ]`: Name of the topic type. + - `[VerifiedPartnerName ]`: Name of the verified partner. + +## RELATED LINKS + diff --git a/swaggerci/eventgrid/docs/Remove-AzEventGridTopic.md b/swaggerci/eventgrid/docs/Remove-AzEventGridTopic.md new file mode 100644 index 000000000000..7534f002eed3 --- /dev/null +++ b/swaggerci/eventgrid/docs/Remove-AzEventGridTopic.md @@ -0,0 +1,257 @@ +--- +external help file: +Module Name: Az.EventGrid +online version: https://docs.microsoft.com/en-us/powershell/module/az.eventgrid/remove-azeventgridtopic +schema: 2.0.0 +--- + +# Remove-AzEventGridTopic + +## SYNOPSIS +Delete existing topic. + +## SYNTAX + +### Delete (Default) +``` +Remove-AzEventGridTopic -Name -ResourceGroupName [-SubscriptionId ] + [-DefaultProfile ] [-AsJob] [-NoWait] [-PassThru] [-Confirm] [-WhatIf] [] +``` + +### DeleteViaIdentity +``` +Remove-AzEventGridTopic -InputObject [-DefaultProfile ] [-AsJob] [-NoWait] + [-PassThru] [-Confirm] [-WhatIf] [] +``` + +## DESCRIPTION +Delete existing topic. + +## EXAMPLES + +### Example 1: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +## PARAMETERS + +### -AsJob +Run the command as a job + +```yaml +Type: System.Management.Automation.SwitchParameter +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -DefaultProfile +The credentials, account, tenant, and subscription used for communication with Azure. + +```yaml +Type: System.Management.Automation.PSObject +Parameter Sets: (All) +Aliases: AzureRMContext, AzureCredential + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -InputObject +Identity Parameter +To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + +```yaml +Type: Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.IEventGridIdentity +Parameter Sets: DeleteViaIdentity +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: True (ByValue) +Accept wildcard characters: False +``` + +### -Name +Name of the topic. + +```yaml +Type: System.String +Parameter Sets: Delete +Aliases: TopicName + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -NoWait +Run the command asynchronously + +```yaml +Type: System.Management.Automation.SwitchParameter +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -PassThru +Returns true when the command succeeds + +```yaml +Type: System.Management.Automation.SwitchParameter +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -ResourceGroupName +The name of the resource group within the user's subscription. + +```yaml +Type: System.String +Parameter Sets: Delete +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -SubscriptionId +Subscription credentials that uniquely identify a Microsoft Azure subscription. +The subscription ID forms part of the URI for every service call. + +```yaml +Type: System.String +Parameter Sets: Delete +Aliases: + +Required: False +Position: Named +Default value: (Get-AzContext).Subscription.Id +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -Confirm +Prompts you for confirmation before running the cmdlet. + +```yaml +Type: System.Management.Automation.SwitchParameter +Parameter Sets: (All) +Aliases: cf + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -WhatIf +Shows what would happen if the cmdlet runs. +The cmdlet is not run. + +```yaml +Type: System.Management.Automation.SwitchParameter +Parameter Sets: (All) +Aliases: wi + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### CommonParameters +This cmdlet supports the common parameters: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutVariable, -OutBuffer, -PipelineVariable, -Verbose, -WarningAction, and -WarningVariable. For more information, see [about_CommonParameters](http://go.microsoft.com/fwlink/?LinkID=113216). + +## INPUTS + +### Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.IEventGridIdentity + +## 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 + - `[ChannelName ]`: Name of the channel. + - `[DomainName ]`: Name of the domain. + - `[DomainTopicName ]`: Name of the topic. + - `[EventChannelName ]`: Name of the event channel. + - `[EventSubscriptionName ]`: Name of the event subscription. + - `[Id ]`: Resource identity path + - `[Location ]`: Name of the location. + - `[ParentName ]`: The name of the parent resource (namely, either, the topic name, domain name, or partner namespace name). + - `[ParentType ]`: The type of the parent resource. This can be either \'topics\', \'domains\', or \'partnerNamespaces\'. + - `[PartnerDestinationName ]`: Name of the partner destination. + - `[PartnerNamespaceName ]`: Name of the partner namespace. + - `[PartnerRegistrationName ]`: Name of the partner registration. + - `[PartnerTopicName ]`: Name of the partner topic. + - `[PrivateEndpointConnectionName ]`: The name of the private endpoint connection connection. + - `[PrivateLinkResourceName ]`: The name of private link resource. + - `[ProviderNamespace ]`: Namespace of the provider of the topic. + - `[ResourceGroupName ]`: The name of the resource group within the partners subscription. + - `[ResourceName ]`: Name of the resource. + - `[ResourceTypeName ]`: Name of the resource type. + - `[Scope ]`: The scope of the event subscription. The scope can be a subscription, or a resource group, or a top level resource belonging to a resource provider namespace, or an EventGrid topic. For example, use '/subscriptions/{subscriptionId}/' for a subscription, '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}' for a resource group, and '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}' for a resource, and '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.EventGrid/topics/{topicName}' for an EventGrid topic. + - `[SubscriptionId ]`: Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription ID forms part of the URI for every service call. + - `[SystemTopicName ]`: Name of the system topic. + - `[TopicName ]`: Name of the domain topic. + - `[TopicTypeName ]`: Name of the topic type. + - `[VerifiedPartnerName ]`: Name of the verified partner. + +## RELATED LINKS + diff --git a/swaggerci/eventgrid/docs/Remove-AzEventGridTopicEventSubscription.md b/swaggerci/eventgrid/docs/Remove-AzEventGridTopicEventSubscription.md new file mode 100644 index 000000000000..86840dd84406 --- /dev/null +++ b/swaggerci/eventgrid/docs/Remove-AzEventGridTopicEventSubscription.md @@ -0,0 +1,274 @@ +--- +external help file: +Module Name: Az.EventGrid +online version: https://docs.microsoft.com/en-us/powershell/module/az.eventgrid/remove-azeventgridtopiceventsubscription +schema: 2.0.0 +--- + +# Remove-AzEventGridTopicEventSubscription + +## SYNOPSIS +Delete an existing event subscription for a topic. + +## SYNTAX + +### Delete (Default) +``` +Remove-AzEventGridTopicEventSubscription -EventSubscriptionName -ResourceGroupName + -TopicName [-SubscriptionId ] [-DefaultProfile ] [-AsJob] [-NoWait] [-PassThru] + [-Confirm] [-WhatIf] [] +``` + +### DeleteViaIdentity +``` +Remove-AzEventGridTopicEventSubscription -InputObject [-DefaultProfile ] + [-AsJob] [-NoWait] [-PassThru] [-Confirm] [-WhatIf] [] +``` + +## DESCRIPTION +Delete an existing event subscription for a topic. + +## EXAMPLES + +### Example 1: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +## PARAMETERS + +### -AsJob +Run the command as a job + +```yaml +Type: System.Management.Automation.SwitchParameter +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -DefaultProfile +The credentials, account, tenant, and subscription used for communication with Azure. + +```yaml +Type: System.Management.Automation.PSObject +Parameter Sets: (All) +Aliases: AzureRMContext, AzureCredential + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -EventSubscriptionName +Name of the event subscription to be deleted. +Event subscription names must be between 3 and 100 characters in length and use alphanumeric letters only. + +```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.EventGrid.Models.IEventGridIdentity +Parameter Sets: DeleteViaIdentity +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: True (ByValue) +Accept wildcard characters: False +``` + +### -NoWait +Run the command asynchronously + +```yaml +Type: System.Management.Automation.SwitchParameter +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -PassThru +Returns true when the command succeeds + +```yaml +Type: System.Management.Automation.SwitchParameter +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -ResourceGroupName +The name of the resource group within the user's subscription. + +```yaml +Type: System.String +Parameter Sets: Delete +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -SubscriptionId +Subscription credentials that uniquely identify a Microsoft Azure subscription. +The subscription ID forms part of the URI for every service call. + +```yaml +Type: System.String +Parameter Sets: Delete +Aliases: + +Required: False +Position: Named +Default value: (Get-AzContext).Subscription.Id +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -TopicName +Name of the topic. + +```yaml +Type: System.String +Parameter Sets: Delete +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.EventGrid.Models.IEventGridIdentity + +## 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 + - `[ChannelName ]`: Name of the channel. + - `[DomainName ]`: Name of the domain. + - `[DomainTopicName ]`: Name of the topic. + - `[EventChannelName ]`: Name of the event channel. + - `[EventSubscriptionName ]`: Name of the event subscription. + - `[Id ]`: Resource identity path + - `[Location ]`: Name of the location. + - `[ParentName ]`: The name of the parent resource (namely, either, the topic name, domain name, or partner namespace name). + - `[ParentType ]`: The type of the parent resource. This can be either \'topics\', \'domains\', or \'partnerNamespaces\'. + - `[PartnerDestinationName ]`: Name of the partner destination. + - `[PartnerNamespaceName ]`: Name of the partner namespace. + - `[PartnerRegistrationName ]`: Name of the partner registration. + - `[PartnerTopicName ]`: Name of the partner topic. + - `[PrivateEndpointConnectionName ]`: The name of the private endpoint connection connection. + - `[PrivateLinkResourceName ]`: The name of private link resource. + - `[ProviderNamespace ]`: Namespace of the provider of the topic. + - `[ResourceGroupName ]`: The name of the resource group within the partners subscription. + - `[ResourceName ]`: Name of the resource. + - `[ResourceTypeName ]`: Name of the resource type. + - `[Scope ]`: The scope of the event subscription. The scope can be a subscription, or a resource group, or a top level resource belonging to a resource provider namespace, or an EventGrid topic. For example, use '/subscriptions/{subscriptionId}/' for a subscription, '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}' for a resource group, and '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}' for a resource, and '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.EventGrid/topics/{topicName}' for an EventGrid topic. + - `[SubscriptionId ]`: Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription ID forms part of the URI for every service call. + - `[SystemTopicName ]`: Name of the system topic. + - `[TopicName ]`: Name of the domain topic. + - `[TopicTypeName ]`: Name of the topic type. + - `[VerifiedPartnerName ]`: Name of the verified partner. + +## RELATED LINKS + diff --git a/swaggerci/eventgrid/docs/Update-AzEventGridChannel.md b/swaggerci/eventgrid/docs/Update-AzEventGridChannel.md new file mode 100644 index 000000000000..73e00bc6f53d --- /dev/null +++ b/swaggerci/eventgrid/docs/Update-AzEventGridChannel.md @@ -0,0 +1,292 @@ +--- +external help file: +Module Name: Az.EventGrid +online version: https://docs.microsoft.com/en-us/powershell/module/az.eventgrid/update-azeventgridchannel +schema: 2.0.0 +--- + +# Update-AzEventGridChannel + +## SYNOPSIS +Synchronously updates a channel with the specified parameters. + +## SYNTAX + +### UpdateExpanded (Default) +``` +Update-AzEventGridChannel -Name -PartnerNamespaceName -ResourceGroupName + [-SubscriptionId ] [-EventTypeInfoInlineEventType ] + [-EventTypeInfoKind ] [-ExpirationTimeIfNotActivatedUtc ] + [-DefaultProfile ] [-PassThru] [-Confirm] [-WhatIf] [] +``` + +### UpdateViaIdentityExpanded +``` +Update-AzEventGridChannel -InputObject [-EventTypeInfoInlineEventType ] + [-EventTypeInfoKind ] [-ExpirationTimeIfNotActivatedUtc ] + [-DefaultProfile ] [-PassThru] [-Confirm] [-WhatIf] [] +``` + +## DESCRIPTION +Synchronously updates a channel with the specified parameters. + +## EXAMPLES + +### Example 1: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +## PARAMETERS + +### -DefaultProfile +The credentials, account, tenant, and subscription used for communication with Azure. + +```yaml +Type: System.Management.Automation.PSObject +Parameter Sets: (All) +Aliases: AzureRMContext, AzureCredential + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -EventTypeInfoInlineEventType +A collection of inline event types for the resource. +The inline event type keys are of type string which represents the name of the event.An example of a valid inline event name is "Contoso.OrderCreated".The inline event type values are of type InlineEventProperties and will contain additional information for every inline event type. + +```yaml +Type: System.Collections.Hashtable +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -EventTypeInfoKind +The kind of event type used. + +```yaml +Type: Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EventDefinitionKind +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -ExpirationTimeIfNotActivatedUtc +Expiration time of the event channel. +If this timer expires while the corresponding partner topic or partner destination is never activated,the channel and corresponding partner topic or partner destination are deleted. + +```yaml +Type: System.DateTime +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.EventGrid.Models.IEventGridIdentity +Parameter Sets: UpdateViaIdentityExpanded +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: True (ByValue) +Accept wildcard characters: False +``` + +### -Name +Name of the channel. + +```yaml +Type: System.String +Parameter Sets: UpdateExpanded +Aliases: ChannelName + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -PartnerNamespaceName +Name of the partner namespace. + +```yaml +Type: System.String +Parameter Sets: UpdateExpanded +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -PassThru +Returns true when the command succeeds + +```yaml +Type: System.Management.Automation.SwitchParameter +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -ResourceGroupName +The name of the resource group within the partners subscription. + +```yaml +Type: System.String +Parameter Sets: UpdateExpanded +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -SubscriptionId +Subscription credentials that uniquely identify a Microsoft Azure subscription. +The subscription ID forms part of the URI for every service call. + +```yaml +Type: System.String +Parameter Sets: UpdateExpanded +Aliases: + +Required: False +Position: Named +Default value: (Get-AzContext).Subscription.Id +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -Confirm +Prompts you for confirmation before running the cmdlet. + +```yaml +Type: System.Management.Automation.SwitchParameter +Parameter Sets: (All) +Aliases: cf + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -WhatIf +Shows what would happen if the cmdlet runs. +The cmdlet is not run. + +```yaml +Type: System.Management.Automation.SwitchParameter +Parameter Sets: (All) +Aliases: wi + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### CommonParameters +This cmdlet supports the common parameters: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutVariable, -OutBuffer, -PipelineVariable, -Verbose, -WarningAction, and -WarningVariable. For more information, see [about_CommonParameters](http://go.microsoft.com/fwlink/?LinkID=113216). + +## INPUTS + +### Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.IEventGridIdentity + +## 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 + - `[ChannelName ]`: Name of the channel. + - `[DomainName ]`: Name of the domain. + - `[DomainTopicName ]`: Name of the topic. + - `[EventChannelName ]`: Name of the event channel. + - `[EventSubscriptionName ]`: Name of the event subscription. + - `[Id ]`: Resource identity path + - `[Location ]`: Name of the location. + - `[ParentName ]`: The name of the parent resource (namely, either, the topic name, domain name, or partner namespace name). + - `[ParentType ]`: The type of the parent resource. This can be either \'topics\', \'domains\', or \'partnerNamespaces\'. + - `[PartnerDestinationName ]`: Name of the partner destination. + - `[PartnerNamespaceName ]`: Name of the partner namespace. + - `[PartnerRegistrationName ]`: Name of the partner registration. + - `[PartnerTopicName ]`: Name of the partner topic. + - `[PrivateEndpointConnectionName ]`: The name of the private endpoint connection connection. + - `[PrivateLinkResourceName ]`: The name of private link resource. + - `[ProviderNamespace ]`: Namespace of the provider of the topic. + - `[ResourceGroupName ]`: The name of the resource group within the partners subscription. + - `[ResourceName ]`: Name of the resource. + - `[ResourceTypeName ]`: Name of the resource type. + - `[Scope ]`: The scope of the event subscription. The scope can be a subscription, or a resource group, or a top level resource belonging to a resource provider namespace, or an EventGrid topic. For example, use '/subscriptions/{subscriptionId}/' for a subscription, '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}' for a resource group, and '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}' for a resource, and '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.EventGrid/topics/{topicName}' for an EventGrid topic. + - `[SubscriptionId ]`: Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription ID forms part of the URI for every service call. + - `[SystemTopicName ]`: Name of the system topic. + - `[TopicName ]`: Name of the domain topic. + - `[TopicTypeName ]`: Name of the topic type. + - `[VerifiedPartnerName ]`: Name of the verified partner. + +## RELATED LINKS + diff --git a/swaggerci/eventgrid/docs/Update-AzEventGridDomain.md b/swaggerci/eventgrid/docs/Update-AzEventGridDomain.md new file mode 100644 index 000000000000..c6efe3c556af --- /dev/null +++ b/swaggerci/eventgrid/docs/Update-AzEventGridDomain.md @@ -0,0 +1,467 @@ +--- +external help file: +Module Name: Az.EventGrid +online version: https://docs.microsoft.com/en-us/powershell/module/az.eventgrid/update-azeventgriddomain +schema: 2.0.0 +--- + +# Update-AzEventGridDomain + +## SYNOPSIS +Asynchronously updates a domain with the specified parameters. + +## SYNTAX + +### UpdateExpanded (Default) +``` +Update-AzEventGridDomain -Name -ResourceGroupName [-SubscriptionId ] + [-AutoCreateTopicWithFirstSubscription] [-AutoDeleteTopicWithLastSubscription] + [-DataResidencyBoundary ] [-DisableLocalAuth] [-IdentityPrincipalId ] + [-IdentityTenantId ] [-IdentityType ] [-IdentityUserAssignedIdentity ] + [-InboundIPRule ] [-PublicNetworkAccess ] [-SkuName ] + [-Tag ] [-DefaultProfile ] [-AsJob] [-NoWait] [-PassThru] [-Confirm] [-WhatIf] + [] +``` + +### UpdateViaIdentityExpanded +``` +Update-AzEventGridDomain -InputObject [-AutoCreateTopicWithFirstSubscription] + [-AutoDeleteTopicWithLastSubscription] [-DataResidencyBoundary ] [-DisableLocalAuth] + [-IdentityPrincipalId ] [-IdentityTenantId ] [-IdentityType ] + [-IdentityUserAssignedIdentity ] [-InboundIPRule ] + [-PublicNetworkAccess ] [-SkuName ] [-Tag ] [-DefaultProfile ] + [-AsJob] [-NoWait] [-PassThru] [-Confirm] [-WhatIf] [] +``` + +## DESCRIPTION +Asynchronously updates a domain with the specified parameters. + +## EXAMPLES + +### Example 1: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +## PARAMETERS + +### -AsJob +Run the command as a job + +```yaml +Type: System.Management.Automation.SwitchParameter +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -AutoCreateTopicWithFirstSubscription +This Boolean is used to specify the creation mechanism for 'all' the Event Grid Domain Topics associated with this Event Grid Domain resource.In this context, creation of domain topic can be auto-managed (when true) or self-managed (when false). +The default value for this property is true.When this property is null or set to true, Event Grid is responsible of automatically creating the domain topic when the first event subscription iscreated at the scope of the domain topic. +If this property is set to false, then creating the first event subscription will require creating a domain topicby the user. +The self-management mode can be used if the user wants full control of when the domain topic is created, while auto-managed mode provides theflexibility to perform less operations and manage fewer resources by the user. +Also, note that in auto-managed creation mode, user is allowed to create thedomain topic on demand if needed. + +```yaml +Type: System.Management.Automation.SwitchParameter +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -AutoDeleteTopicWithLastSubscription +This Boolean is used to specify the deletion mechanism for 'all' the Event Grid Domain Topics associated with this Event Grid Domain resource.In this context, deletion of domain topic can be auto-managed (when true) or self-managed (when false). +The default value for this property is true.When this property is set to true, Event Grid is responsible of automatically deleting the domain topic when the last event subscription at the scopeof the domain topic is deleted. +If this property is set to false, then the user needs to manually delete the domain topic when it is no longer needed(e.g., when last event subscription is deleted and the resource needs to be cleaned up). +The self-management mode can be used if the user wants fullcontrol of when the domain topic needs to be deleted, while auto-managed mode provides the flexibility to perform less operations and manage fewerresources by the user. + +```yaml +Type: System.Management.Automation.SwitchParameter +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -DataResidencyBoundary +The data residency boundary for the domain. + +```yaml +Type: Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.DataResidencyBoundary +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 +``` + +### -DisableLocalAuth +This boolean is used to enable or disable local auth. +Default value is false. +When the property is set to true, only AAD token will be used to authenticate if user is allowed to publish to the domain. + +```yaml +Type: System.Management.Automation.SwitchParameter +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -IdentityPrincipalId +The principal ID of resource identity. + +```yaml +Type: System.String +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -IdentityTenantId +The tenant ID of resource. + +```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 type of managed identity used. +The type 'SystemAssigned, UserAssigned' includes both an implicitly created identity and a set of user-assigned identities. +The type 'None' will remove any identity. + +```yaml +Type: Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.IdentityType +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -IdentityUserAssignedIdentity +The list of user identities associated with the resource. +The user identity dictionary key references will be ARM resource ids in the form:'/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ManagedIdentity/userAssignedIdentities/{identityName}'.This property is currently not used and reserved for future usage. + +```yaml +Type: System.Collections.Hashtable +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -InboundIPRule +This can be used to restrict traffic from specific IPs instead of all IPs. +Note: These are considered only if PublicNetworkAccess is enabled. +To construct, see NOTES section for INBOUNDIPRULE properties and create a hash table. + +```yaml +Type: Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IInboundIPRule[] +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.EventGrid.Models.IEventGridIdentity +Parameter Sets: UpdateViaIdentityExpanded +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: True (ByValue) +Accept wildcard characters: False +``` + +### -Name +Name of the domain. + +```yaml +Type: System.String +Parameter Sets: UpdateExpanded +Aliases: DomainName + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -NoWait +Run the command asynchronously + +```yaml +Type: System.Management.Automation.SwitchParameter +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -PassThru +Returns true when the command succeeds + +```yaml +Type: System.Management.Automation.SwitchParameter +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -PublicNetworkAccess +This determines if traffic is allowed over public network. +By default it is enabled. +You can further restrict to specific IPs by configuring \ + +```yaml +Type: Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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 within the user's subscription. + +```yaml +Type: System.String +Parameter Sets: UpdateExpanded +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -SkuName +The Sku name of the resource. +The possible values are: Basic or Premium. + +```yaml +Type: Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.Sku +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -SubscriptionId +Subscription credentials that uniquely identify a Microsoft Azure subscription. +The subscription ID forms part of the URI for every service call. + +```yaml +Type: System.String +Parameter Sets: UpdateExpanded +Aliases: + +Required: False +Position: Named +Default value: (Get-AzContext).Subscription.Id +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -Tag +Tags of the domains resource. + +```yaml +Type: System.Collections.Hashtable +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -Confirm +Prompts you for confirmation before running the cmdlet. + +```yaml +Type: System.Management.Automation.SwitchParameter +Parameter Sets: (All) +Aliases: cf + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -WhatIf +Shows what would happen if the cmdlet runs. +The cmdlet is not run. + +```yaml +Type: System.Management.Automation.SwitchParameter +Parameter Sets: (All) +Aliases: wi + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### CommonParameters +This cmdlet supports the common parameters: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutVariable, -OutBuffer, -PipelineVariable, -Verbose, -WarningAction, and -WarningVariable. For more information, see [about_CommonParameters](http://go.microsoft.com/fwlink/?LinkID=113216). + +## INPUTS + +### Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.IEventGridIdentity + +## 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. + + +INBOUNDIPRULE : This can be used to restrict traffic from specific IPs instead of all IPs. Note: These are considered only if PublicNetworkAccess is enabled. + - `[Action ]`: Action to perform based on the match or no match of the IpMask. + - `[IPMask ]`: IP Address in CIDR notation e.g., 10.0.0.0/8. + +INPUTOBJECT : Identity Parameter + - `[ChannelName ]`: Name of the channel. + - `[DomainName ]`: Name of the domain. + - `[DomainTopicName ]`: Name of the topic. + - `[EventChannelName ]`: Name of the event channel. + - `[EventSubscriptionName ]`: Name of the event subscription. + - `[Id ]`: Resource identity path + - `[Location ]`: Name of the location. + - `[ParentName ]`: The name of the parent resource (namely, either, the topic name, domain name, or partner namespace name). + - `[ParentType ]`: The type of the parent resource. This can be either \'topics\', \'domains\', or \'partnerNamespaces\'. + - `[PartnerDestinationName ]`: Name of the partner destination. + - `[PartnerNamespaceName ]`: Name of the partner namespace. + - `[PartnerRegistrationName ]`: Name of the partner registration. + - `[PartnerTopicName ]`: Name of the partner topic. + - `[PrivateEndpointConnectionName ]`: The name of the private endpoint connection connection. + - `[PrivateLinkResourceName ]`: The name of private link resource. + - `[ProviderNamespace ]`: Namespace of the provider of the topic. + - `[ResourceGroupName ]`: The name of the resource group within the partners subscription. + - `[ResourceName ]`: Name of the resource. + - `[ResourceTypeName ]`: Name of the resource type. + - `[Scope ]`: The scope of the event subscription. The scope can be a subscription, or a resource group, or a top level resource belonging to a resource provider namespace, or an EventGrid topic. For example, use '/subscriptions/{subscriptionId}/' for a subscription, '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}' for a resource group, and '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}' for a resource, and '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.EventGrid/topics/{topicName}' for an EventGrid topic. + - `[SubscriptionId ]`: Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription ID forms part of the URI for every service call. + - `[SystemTopicName ]`: Name of the system topic. + - `[TopicName ]`: Name of the domain topic. + - `[TopicTypeName ]`: Name of the topic type. + - `[VerifiedPartnerName ]`: Name of the verified partner. + +## RELATED LINKS + diff --git a/swaggerci/eventgrid/docs/Update-AzEventGridDomainEventSubscription.md b/swaggerci/eventgrid/docs/Update-AzEventGridDomainEventSubscription.md new file mode 100644 index 000000000000..2f852340156e --- /dev/null +++ b/swaggerci/eventgrid/docs/Update-AzEventGridDomainEventSubscription.md @@ -0,0 +1,558 @@ +--- +external help file: +Module Name: Az.EventGrid +online version: https://docs.microsoft.com/en-us/powershell/module/az.eventgrid/update-azeventgriddomaineventsubscription +schema: 2.0.0 +--- + +# Update-AzEventGridDomainEventSubscription + +## SYNOPSIS +Update an existing event subscription for a topic. + +## SYNTAX + +### UpdateExpanded (Default) +``` +Update-AzEventGridDomainEventSubscription -DomainName -EventSubscriptionName + -ResourceGroupName [-SubscriptionId ] + [-DeadLetterWithResourceIdentityType ] + [-DeadLetterWithResourceIdentityUserAssignedIdentity ] + [-DeliveryWithResourceIdentityDestinationEndpointType ] + [-DeliveryWithResourceIdentityType ] + [-DeliveryWithResourceIdentityUserAssignedIdentity ] [-EndpointType ] + [-EventDeliverySchema ] [-ExpirationTimeUtc ] + [-FilterAdvancedFilter ] [-FilterEnableAdvancedFilteringOnArray] + [-FilterIncludedEventType ] [-FilterIsSubjectCaseSensitive] [-FilterSubjectBeginsWith ] + [-FilterSubjectEndsWith ] [-Label ] [-RetryPolicyEventTimeToLiveInMinute ] + [-RetryPolicyMaxDeliveryAttempt ] [-DefaultProfile ] [-AsJob] [-NoWait] [-PassThru] + [-Confirm] [-WhatIf] [] +``` + +### UpdateViaIdentityExpanded +``` +Update-AzEventGridDomainEventSubscription -InputObject + [-DeadLetterWithResourceIdentityType ] + [-DeadLetterWithResourceIdentityUserAssignedIdentity ] + [-DeliveryWithResourceIdentityDestinationEndpointType ] + [-DeliveryWithResourceIdentityType ] + [-DeliveryWithResourceIdentityUserAssignedIdentity ] [-EndpointType ] + [-EventDeliverySchema ] [-ExpirationTimeUtc ] + [-FilterAdvancedFilter ] [-FilterEnableAdvancedFilteringOnArray] + [-FilterIncludedEventType ] [-FilterIsSubjectCaseSensitive] [-FilterSubjectBeginsWith ] + [-FilterSubjectEndsWith ] [-Label ] [-RetryPolicyEventTimeToLiveInMinute ] + [-RetryPolicyMaxDeliveryAttempt ] [-DefaultProfile ] [-AsJob] [-NoWait] [-PassThru] + [-Confirm] [-WhatIf] [] +``` + +## DESCRIPTION +Update an existing event subscription for a topic. + +## EXAMPLES + +### Example 1: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +## PARAMETERS + +### -AsJob +Run the command as a job + +```yaml +Type: System.Management.Automation.SwitchParameter +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -DeadLetterWithResourceIdentityType +The type of managed identity used. +The type 'SystemAssigned, UserAssigned' includes both an implicitly created identity and a set of user-assigned identities. +The type 'None' will remove any identity. + +```yaml +Type: Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EventSubscriptionIdentityType +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -DeadLetterWithResourceIdentityUserAssignedIdentity +The user identity associated with the resource. + +```yaml +Type: System.String +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -DefaultProfile +The credentials, account, tenant, and subscription used for communication with Azure. + +```yaml +Type: System.Management.Automation.PSObject +Parameter Sets: (All) +Aliases: AzureRMContext, AzureCredential + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -DeliveryWithResourceIdentityDestinationEndpointType +Type of the endpoint for the event subscription destination. + +```yaml +Type: Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EndpointType +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -DeliveryWithResourceIdentityType +The type of managed identity used. +The type 'SystemAssigned, UserAssigned' includes both an implicitly created identity and a set of user-assigned identities. +The type 'None' will remove any identity. + +```yaml +Type: Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EventSubscriptionIdentityType +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -DeliveryWithResourceIdentityUserAssignedIdentity +The user identity associated with the resource. + +```yaml +Type: System.String +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -DomainName +Name of the domain. + +```yaml +Type: System.String +Parameter Sets: UpdateExpanded +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -EndpointType +Type of the endpoint for the event subscription destination. + +```yaml +Type: Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EndpointType +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -EventDeliverySchema +The event delivery schema for the event subscription. + +```yaml +Type: Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EventDeliverySchema +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -EventSubscriptionName +Name of the event subscription to be updated. + +```yaml +Type: System.String +Parameter Sets: UpdateExpanded +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -ExpirationTimeUtc +Information about the expiration time for the event subscription. + +```yaml +Type: System.DateTime +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -FilterAdvancedFilter +An array of advanced filters that are used for filtering event subscriptions. +To construct, see NOTES section for FILTERADVANCEDFILTER properties and create a hash table. + +```yaml +Type: Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IAdvancedFilter[] +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -FilterEnableAdvancedFilteringOnArray +Allows advanced filters to be evaluated against an array of values instead of expecting a singular value. + +```yaml +Type: System.Management.Automation.SwitchParameter +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -FilterIncludedEventType +A list of applicable event types that need to be part of the event subscription. +If it is desired to subscribe to all default event types, set the IncludedEventTypes to null. + +```yaml +Type: System.String[] +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -FilterIsSubjectCaseSensitive +Specifies if the SubjectBeginsWith and SubjectEndsWith properties of the filtershould be compared in a case sensitive manner. + +```yaml +Type: System.Management.Automation.SwitchParameter +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -FilterSubjectBeginsWith +An optional string to filter events for an event subscription based on a resource path prefix.The format of this depends on the publisher of the events.Wildcard characters are not supported in this path. + +```yaml +Type: System.String +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -FilterSubjectEndsWith +An optional string to filter events for an event subscription based on a resource path suffix.Wildcard characters are not supported in this path. + +```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.EventGrid.Models.IEventGridIdentity +Parameter Sets: UpdateViaIdentityExpanded +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: True (ByValue) +Accept wildcard characters: False +``` + +### -Label +List of user defined labels. + +```yaml +Type: System.String[] +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -NoWait +Run the command asynchronously + +```yaml +Type: System.Management.Automation.SwitchParameter +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -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 within the user's subscription. + +```yaml +Type: System.String +Parameter Sets: UpdateExpanded +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -RetryPolicyEventTimeToLiveInMinute +Time To Live (in minutes) for events. + +```yaml +Type: System.Int32 +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -RetryPolicyMaxDeliveryAttempt +Maximum number of delivery retry attempts for events. + +```yaml +Type: System.Int32 +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -SubscriptionId +Subscription credentials that uniquely identify a Microsoft Azure subscription. +The subscription ID forms part of the URI for every service call. + +```yaml +Type: System.String +Parameter Sets: UpdateExpanded +Aliases: + +Required: False +Position: Named +Default value: (Get-AzContext).Subscription.Id +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -Confirm +Prompts you for confirmation before running the cmdlet. + +```yaml +Type: System.Management.Automation.SwitchParameter +Parameter Sets: (All) +Aliases: cf + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -WhatIf +Shows what would happen if the cmdlet runs. +The cmdlet is not run. + +```yaml +Type: System.Management.Automation.SwitchParameter +Parameter Sets: (All) +Aliases: wi + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### CommonParameters +This cmdlet supports the common parameters: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutVariable, -OutBuffer, -PipelineVariable, -Verbose, -WarningAction, and -WarningVariable. For more information, see [about_CommonParameters](http://go.microsoft.com/fwlink/?LinkID=113216). + +## INPUTS + +### Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.IEventGridIdentity + +## 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. + + +FILTERADVANCEDFILTER : An array of advanced filters that are used for filtering event subscriptions. + - `OperatorType `: The operator type used for filtering, e.g., NumberIn, StringContains, BoolEquals and others. + - `[Key ]`: The field/property in the event based on which you want to filter. + +INPUTOBJECT : Identity Parameter + - `[ChannelName ]`: Name of the channel. + - `[DomainName ]`: Name of the domain. + - `[DomainTopicName ]`: Name of the topic. + - `[EventChannelName ]`: Name of the event channel. + - `[EventSubscriptionName ]`: Name of the event subscription. + - `[Id ]`: Resource identity path + - `[Location ]`: Name of the location. + - `[ParentName ]`: The name of the parent resource (namely, either, the topic name, domain name, or partner namespace name). + - `[ParentType ]`: The type of the parent resource. This can be either \'topics\', \'domains\', or \'partnerNamespaces\'. + - `[PartnerDestinationName ]`: Name of the partner destination. + - `[PartnerNamespaceName ]`: Name of the partner namespace. + - `[PartnerRegistrationName ]`: Name of the partner registration. + - `[PartnerTopicName ]`: Name of the partner topic. + - `[PrivateEndpointConnectionName ]`: The name of the private endpoint connection connection. + - `[PrivateLinkResourceName ]`: The name of private link resource. + - `[ProviderNamespace ]`: Namespace of the provider of the topic. + - `[ResourceGroupName ]`: The name of the resource group within the partners subscription. + - `[ResourceName ]`: Name of the resource. + - `[ResourceTypeName ]`: Name of the resource type. + - `[Scope ]`: The scope of the event subscription. The scope can be a subscription, or a resource group, or a top level resource belonging to a resource provider namespace, or an EventGrid topic. For example, use '/subscriptions/{subscriptionId}/' for a subscription, '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}' for a resource group, and '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}' for a resource, and '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.EventGrid/topics/{topicName}' for an EventGrid topic. + - `[SubscriptionId ]`: Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription ID forms part of the URI for every service call. + - `[SystemTopicName ]`: Name of the system topic. + - `[TopicName ]`: Name of the domain topic. + - `[TopicTypeName ]`: Name of the topic type. + - `[VerifiedPartnerName ]`: Name of the verified partner. + +## RELATED LINKS + diff --git a/swaggerci/eventgrid/docs/Update-AzEventGridDomainTopicEventSubscription.md b/swaggerci/eventgrid/docs/Update-AzEventGridDomainTopicEventSubscription.md new file mode 100644 index 000000000000..be91879f696d --- /dev/null +++ b/swaggerci/eventgrid/docs/Update-AzEventGridDomainTopicEventSubscription.md @@ -0,0 +1,573 @@ +--- +external help file: +Module Name: Az.EventGrid +online version: https://docs.microsoft.com/en-us/powershell/module/az.eventgrid/update-azeventgriddomaintopiceventsubscription +schema: 2.0.0 +--- + +# Update-AzEventGridDomainTopicEventSubscription + +## SYNOPSIS +Update an existing event subscription for a domain topic. + +## SYNTAX + +### UpdateExpanded (Default) +``` +Update-AzEventGridDomainTopicEventSubscription -DomainName -EventSubscriptionName + -ResourceGroupName -TopicName [-SubscriptionId ] + [-DeadLetterWithResourceIdentityType ] + [-DeadLetterWithResourceIdentityUserAssignedIdentity ] + [-DeliveryWithResourceIdentityDestinationEndpointType ] + [-DeliveryWithResourceIdentityType ] + [-DeliveryWithResourceIdentityUserAssignedIdentity ] [-EndpointType ] + [-EventDeliverySchema ] [-ExpirationTimeUtc ] + [-FilterAdvancedFilter ] [-FilterEnableAdvancedFilteringOnArray] + [-FilterIncludedEventType ] [-FilterIsSubjectCaseSensitive] [-FilterSubjectBeginsWith ] + [-FilterSubjectEndsWith ] [-Label ] [-RetryPolicyEventTimeToLiveInMinute ] + [-RetryPolicyMaxDeliveryAttempt ] [-DefaultProfile ] [-AsJob] [-NoWait] [-PassThru] + [-Confirm] [-WhatIf] [] +``` + +### UpdateViaIdentityExpanded +``` +Update-AzEventGridDomainTopicEventSubscription -InputObject + [-DeadLetterWithResourceIdentityType ] + [-DeadLetterWithResourceIdentityUserAssignedIdentity ] + [-DeliveryWithResourceIdentityDestinationEndpointType ] + [-DeliveryWithResourceIdentityType ] + [-DeliveryWithResourceIdentityUserAssignedIdentity ] [-EndpointType ] + [-EventDeliverySchema ] [-ExpirationTimeUtc ] + [-FilterAdvancedFilter ] [-FilterEnableAdvancedFilteringOnArray] + [-FilterIncludedEventType ] [-FilterIsSubjectCaseSensitive] [-FilterSubjectBeginsWith ] + [-FilterSubjectEndsWith ] [-Label ] [-RetryPolicyEventTimeToLiveInMinute ] + [-RetryPolicyMaxDeliveryAttempt ] [-DefaultProfile ] [-AsJob] [-NoWait] [-PassThru] + [-Confirm] [-WhatIf] [] +``` + +## DESCRIPTION +Update an existing event subscription for a domain topic. + +## EXAMPLES + +### Example 1: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +## PARAMETERS + +### -AsJob +Run the command as a job + +```yaml +Type: System.Management.Automation.SwitchParameter +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -DeadLetterWithResourceIdentityType +The type of managed identity used. +The type 'SystemAssigned, UserAssigned' includes both an implicitly created identity and a set of user-assigned identities. +The type 'None' will remove any identity. + +```yaml +Type: Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EventSubscriptionIdentityType +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -DeadLetterWithResourceIdentityUserAssignedIdentity +The user identity associated with the resource. + +```yaml +Type: System.String +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -DefaultProfile +The credentials, account, tenant, and subscription used for communication with Azure. + +```yaml +Type: System.Management.Automation.PSObject +Parameter Sets: (All) +Aliases: AzureRMContext, AzureCredential + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -DeliveryWithResourceIdentityDestinationEndpointType +Type of the endpoint for the event subscription destination. + +```yaml +Type: Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EndpointType +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -DeliveryWithResourceIdentityType +The type of managed identity used. +The type 'SystemAssigned, UserAssigned' includes both an implicitly created identity and a set of user-assigned identities. +The type 'None' will remove any identity. + +```yaml +Type: Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EventSubscriptionIdentityType +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -DeliveryWithResourceIdentityUserAssignedIdentity +The user identity associated with the resource. + +```yaml +Type: System.String +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -DomainName +Name of the domain. + +```yaml +Type: System.String +Parameter Sets: UpdateExpanded +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -EndpointType +Type of the endpoint for the event subscription destination. + +```yaml +Type: Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EndpointType +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -EventDeliverySchema +The event delivery schema for the event subscription. + +```yaml +Type: Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EventDeliverySchema +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -EventSubscriptionName +Name of the event subscription to be updated. + +```yaml +Type: System.String +Parameter Sets: UpdateExpanded +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -ExpirationTimeUtc +Information about the expiration time for the event subscription. + +```yaml +Type: System.DateTime +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -FilterAdvancedFilter +An array of advanced filters that are used for filtering event subscriptions. +To construct, see NOTES section for FILTERADVANCEDFILTER properties and create a hash table. + +```yaml +Type: Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IAdvancedFilter[] +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -FilterEnableAdvancedFilteringOnArray +Allows advanced filters to be evaluated against an array of values instead of expecting a singular value. + +```yaml +Type: System.Management.Automation.SwitchParameter +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -FilterIncludedEventType +A list of applicable event types that need to be part of the event subscription. +If it is desired to subscribe to all default event types, set the IncludedEventTypes to null. + +```yaml +Type: System.String[] +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -FilterIsSubjectCaseSensitive +Specifies if the SubjectBeginsWith and SubjectEndsWith properties of the filtershould be compared in a case sensitive manner. + +```yaml +Type: System.Management.Automation.SwitchParameter +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -FilterSubjectBeginsWith +An optional string to filter events for an event subscription based on a resource path prefix.The format of this depends on the publisher of the events.Wildcard characters are not supported in this path. + +```yaml +Type: System.String +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -FilterSubjectEndsWith +An optional string to filter events for an event subscription based on a resource path suffix.Wildcard characters are not supported in this path. + +```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.EventGrid.Models.IEventGridIdentity +Parameter Sets: UpdateViaIdentityExpanded +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: True (ByValue) +Accept wildcard characters: False +``` + +### -Label +List of user defined labels. + +```yaml +Type: System.String[] +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -NoWait +Run the command asynchronously + +```yaml +Type: System.Management.Automation.SwitchParameter +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -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 within the user's subscription. + +```yaml +Type: System.String +Parameter Sets: UpdateExpanded +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -RetryPolicyEventTimeToLiveInMinute +Time To Live (in minutes) for events. + +```yaml +Type: System.Int32 +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -RetryPolicyMaxDeliveryAttempt +Maximum number of delivery retry attempts for events. + +```yaml +Type: System.Int32 +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -SubscriptionId +Subscription credentials that uniquely identify a Microsoft Azure subscription. +The subscription ID forms part of the URI for every service call. + +```yaml +Type: System.String +Parameter Sets: UpdateExpanded +Aliases: + +Required: False +Position: Named +Default value: (Get-AzContext).Subscription.Id +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -TopicName +Name of the topic. + +```yaml +Type: System.String +Parameter Sets: UpdateExpanded +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.EventGrid.Models.IEventGridIdentity + +## 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. + + +FILTERADVANCEDFILTER : An array of advanced filters that are used for filtering event subscriptions. + - `OperatorType `: The operator type used for filtering, e.g., NumberIn, StringContains, BoolEquals and others. + - `[Key ]`: The field/property in the event based on which you want to filter. + +INPUTOBJECT : Identity Parameter + - `[ChannelName ]`: Name of the channel. + - `[DomainName ]`: Name of the domain. + - `[DomainTopicName ]`: Name of the topic. + - `[EventChannelName ]`: Name of the event channel. + - `[EventSubscriptionName ]`: Name of the event subscription. + - `[Id ]`: Resource identity path + - `[Location ]`: Name of the location. + - `[ParentName ]`: The name of the parent resource (namely, either, the topic name, domain name, or partner namespace name). + - `[ParentType ]`: The type of the parent resource. This can be either \'topics\', \'domains\', or \'partnerNamespaces\'. + - `[PartnerDestinationName ]`: Name of the partner destination. + - `[PartnerNamespaceName ]`: Name of the partner namespace. + - `[PartnerRegistrationName ]`: Name of the partner registration. + - `[PartnerTopicName ]`: Name of the partner topic. + - `[PrivateEndpointConnectionName ]`: The name of the private endpoint connection connection. + - `[PrivateLinkResourceName ]`: The name of private link resource. + - `[ProviderNamespace ]`: Namespace of the provider of the topic. + - `[ResourceGroupName ]`: The name of the resource group within the partners subscription. + - `[ResourceName ]`: Name of the resource. + - `[ResourceTypeName ]`: Name of the resource type. + - `[Scope ]`: The scope of the event subscription. The scope can be a subscription, or a resource group, or a top level resource belonging to a resource provider namespace, or an EventGrid topic. For example, use '/subscriptions/{subscriptionId}/' for a subscription, '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}' for a resource group, and '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}' for a resource, and '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.EventGrid/topics/{topicName}' for an EventGrid topic. + - `[SubscriptionId ]`: Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription ID forms part of the URI for every service call. + - `[SystemTopicName ]`: Name of the system topic. + - `[TopicName ]`: Name of the domain topic. + - `[TopicTypeName ]`: Name of the topic type. + - `[VerifiedPartnerName ]`: Name of the verified partner. + +## RELATED LINKS + diff --git a/swaggerci/eventgrid/docs/Update-AzEventGridEventSubscription.md b/swaggerci/eventgrid/docs/Update-AzEventGridEventSubscription.md new file mode 100644 index 000000000000..7e1685d84b3b --- /dev/null +++ b/swaggerci/eventgrid/docs/Update-AzEventGridEventSubscription.md @@ -0,0 +1,528 @@ +--- +external help file: +Module Name: Az.EventGrid +online version: https://docs.microsoft.com/en-us/powershell/module/az.eventgrid/update-azeventgrideventsubscription +schema: 2.0.0 +--- + +# Update-AzEventGridEventSubscription + +## SYNOPSIS +Asynchronously updates an existing event subscription. + +## SYNTAX + +### UpdateExpanded (Default) +``` +Update-AzEventGridEventSubscription -Name -Scope + [-DeadLetterWithResourceIdentityType ] + [-DeadLetterWithResourceIdentityUserAssignedIdentity ] + [-DeliveryWithResourceIdentityDestinationEndpointType ] + [-DeliveryWithResourceIdentityType ] + [-DeliveryWithResourceIdentityUserAssignedIdentity ] [-EndpointType ] + [-EventDeliverySchema ] [-ExpirationTimeUtc ] + [-FilterAdvancedFilter ] [-FilterEnableAdvancedFilteringOnArray] + [-FilterIncludedEventType ] [-FilterIsSubjectCaseSensitive] [-FilterSubjectBeginsWith ] + [-FilterSubjectEndsWith ] [-Label ] [-RetryPolicyEventTimeToLiveInMinute ] + [-RetryPolicyMaxDeliveryAttempt ] [-DefaultProfile ] [-AsJob] [-NoWait] [-PassThru] + [-Confirm] [-WhatIf] [] +``` + +### UpdateViaIdentityExpanded +``` +Update-AzEventGridEventSubscription -InputObject + [-DeadLetterWithResourceIdentityType ] + [-DeadLetterWithResourceIdentityUserAssignedIdentity ] + [-DeliveryWithResourceIdentityDestinationEndpointType ] + [-DeliveryWithResourceIdentityType ] + [-DeliveryWithResourceIdentityUserAssignedIdentity ] [-EndpointType ] + [-EventDeliverySchema ] [-ExpirationTimeUtc ] + [-FilterAdvancedFilter ] [-FilterEnableAdvancedFilteringOnArray] + [-FilterIncludedEventType ] [-FilterIsSubjectCaseSensitive] [-FilterSubjectBeginsWith ] + [-FilterSubjectEndsWith ] [-Label ] [-RetryPolicyEventTimeToLiveInMinute ] + [-RetryPolicyMaxDeliveryAttempt ] [-DefaultProfile ] [-AsJob] [-NoWait] [-PassThru] + [-Confirm] [-WhatIf] [] +``` + +## DESCRIPTION +Asynchronously updates an existing event subscription. + +## EXAMPLES + +### Example 1: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +## PARAMETERS + +### -AsJob +Run the command as a job + +```yaml +Type: System.Management.Automation.SwitchParameter +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -DeadLetterWithResourceIdentityType +The type of managed identity used. +The type 'SystemAssigned, UserAssigned' includes both an implicitly created identity and a set of user-assigned identities. +The type 'None' will remove any identity. + +```yaml +Type: Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EventSubscriptionIdentityType +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -DeadLetterWithResourceIdentityUserAssignedIdentity +The user identity associated with the resource. + +```yaml +Type: System.String +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -DefaultProfile +The credentials, account, tenant, and subscription used for communication with Azure. + +```yaml +Type: System.Management.Automation.PSObject +Parameter Sets: (All) +Aliases: AzureRMContext, AzureCredential + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -DeliveryWithResourceIdentityDestinationEndpointType +Type of the endpoint for the event subscription destination. + +```yaml +Type: Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EndpointType +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -DeliveryWithResourceIdentityType +The type of managed identity used. +The type 'SystemAssigned, UserAssigned' includes both an implicitly created identity and a set of user-assigned identities. +The type 'None' will remove any identity. + +```yaml +Type: Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EventSubscriptionIdentityType +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -DeliveryWithResourceIdentityUserAssignedIdentity +The user identity associated with the resource. + +```yaml +Type: System.String +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -EndpointType +Type of the endpoint for the event subscription destination. + +```yaml +Type: Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EndpointType +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -EventDeliverySchema +The event delivery schema for the event subscription. + +```yaml +Type: Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EventDeliverySchema +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -ExpirationTimeUtc +Information about the expiration time for the event subscription. + +```yaml +Type: System.DateTime +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -FilterAdvancedFilter +An array of advanced filters that are used for filtering event subscriptions. +To construct, see NOTES section for FILTERADVANCEDFILTER properties and create a hash table. + +```yaml +Type: Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IAdvancedFilter[] +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -FilterEnableAdvancedFilteringOnArray +Allows advanced filters to be evaluated against an array of values instead of expecting a singular value. + +```yaml +Type: System.Management.Automation.SwitchParameter +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -FilterIncludedEventType +A list of applicable event types that need to be part of the event subscription. +If it is desired to subscribe to all default event types, set the IncludedEventTypes to null. + +```yaml +Type: System.String[] +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -FilterIsSubjectCaseSensitive +Specifies if the SubjectBeginsWith and SubjectEndsWith properties of the filtershould be compared in a case sensitive manner. + +```yaml +Type: System.Management.Automation.SwitchParameter +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -FilterSubjectBeginsWith +An optional string to filter events for an event subscription based on a resource path prefix.The format of this depends on the publisher of the events.Wildcard characters are not supported in this path. + +```yaml +Type: System.String +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -FilterSubjectEndsWith +An optional string to filter events for an event subscription based on a resource path suffix.Wildcard characters are not supported in this path. + +```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.EventGrid.Models.IEventGridIdentity +Parameter Sets: UpdateViaIdentityExpanded +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: True (ByValue) +Accept wildcard characters: False +``` + +### -Label +List of user defined labels. + +```yaml +Type: System.String[] +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -Name +Name of the event subscription to be updated. + +```yaml +Type: System.String +Parameter Sets: UpdateExpanded +Aliases: EventSubscriptionName + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -NoWait +Run the command asynchronously + +```yaml +Type: System.Management.Automation.SwitchParameter +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -PassThru +Returns true when the command succeeds + +```yaml +Type: System.Management.Automation.SwitchParameter +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -RetryPolicyEventTimeToLiveInMinute +Time To Live (in minutes) for events. + +```yaml +Type: System.Int32 +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -RetryPolicyMaxDeliveryAttempt +Maximum number of delivery retry attempts for events. + +```yaml +Type: System.Int32 +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -Scope +The scope of existing event subscription. +The scope can be a subscription, or a resource group, or a top level resource belonging to a resource provider namespace, or an EventGrid topic. +For example, use '/subscriptions/{subscriptionId}/' for a subscription, '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}' for a resource group, and '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}' for a resource, and '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.EventGrid/topics/{topicName}' for an EventGrid topic. + +```yaml +Type: System.String +Parameter Sets: UpdateExpanded +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.EventGrid.Models.IEventGridIdentity + +## 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. + + +FILTERADVANCEDFILTER : An array of advanced filters that are used for filtering event subscriptions. + - `OperatorType `: The operator type used for filtering, e.g., NumberIn, StringContains, BoolEquals and others. + - `[Key ]`: The field/property in the event based on which you want to filter. + +INPUTOBJECT : Identity Parameter + - `[ChannelName ]`: Name of the channel. + - `[DomainName ]`: Name of the domain. + - `[DomainTopicName ]`: Name of the topic. + - `[EventChannelName ]`: Name of the event channel. + - `[EventSubscriptionName ]`: Name of the event subscription. + - `[Id ]`: Resource identity path + - `[Location ]`: Name of the location. + - `[ParentName ]`: The name of the parent resource (namely, either, the topic name, domain name, or partner namespace name). + - `[ParentType ]`: The type of the parent resource. This can be either \'topics\', \'domains\', or \'partnerNamespaces\'. + - `[PartnerDestinationName ]`: Name of the partner destination. + - `[PartnerNamespaceName ]`: Name of the partner namespace. + - `[PartnerRegistrationName ]`: Name of the partner registration. + - `[PartnerTopicName ]`: Name of the partner topic. + - `[PrivateEndpointConnectionName ]`: The name of the private endpoint connection connection. + - `[PrivateLinkResourceName ]`: The name of private link resource. + - `[ProviderNamespace ]`: Namespace of the provider of the topic. + - `[ResourceGroupName ]`: The name of the resource group within the partners subscription. + - `[ResourceName ]`: Name of the resource. + - `[ResourceTypeName ]`: Name of the resource type. + - `[Scope ]`: The scope of the event subscription. The scope can be a subscription, or a resource group, or a top level resource belonging to a resource provider namespace, or an EventGrid topic. For example, use '/subscriptions/{subscriptionId}/' for a subscription, '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}' for a resource group, and '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}' for a resource, and '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.EventGrid/topics/{topicName}' for an EventGrid topic. + - `[SubscriptionId ]`: Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription ID forms part of the URI for every service call. + - `[SystemTopicName ]`: Name of the system topic. + - `[TopicName ]`: Name of the domain topic. + - `[TopicTypeName ]`: Name of the topic type. + - `[VerifiedPartnerName ]`: Name of the verified partner. + +## RELATED LINKS + diff --git a/swaggerci/eventgrid/docs/Update-AzEventGridPartnerConfiguration.md b/swaggerci/eventgrid/docs/Update-AzEventGridPartnerConfiguration.md new file mode 100644 index 000000000000..748c8cfb28e8 --- /dev/null +++ b/swaggerci/eventgrid/docs/Update-AzEventGridPartnerConfiguration.md @@ -0,0 +1,275 @@ +--- +external help file: +Module Name: Az.EventGrid +online version: https://docs.microsoft.com/en-us/powershell/module/az.eventgrid/update-azeventgridpartnerconfiguration +schema: 2.0.0 +--- + +# Update-AzEventGridPartnerConfiguration + +## SYNOPSIS +Synchronously updates a partner configuration with the specified parameters. + +## SYNTAX + +### UpdateExpanded (Default) +``` +Update-AzEventGridPartnerConfiguration -ResourceGroupName [-SubscriptionId ] + [-DefaultMaximumExpirationTimeInDay ] [-Tag ] [-DefaultProfile ] [-AsJob] + [-NoWait] [-PassThru] [-Confirm] [-WhatIf] [] +``` + +### UpdateViaIdentityExpanded +``` +Update-AzEventGridPartnerConfiguration -InputObject + [-DefaultMaximumExpirationTimeInDay ] [-Tag ] [-DefaultProfile ] [-AsJob] + [-NoWait] [-PassThru] [-Confirm] [-WhatIf] [] +``` + +## DESCRIPTION +Synchronously updates a partner configuration with the specified parameters. + +## EXAMPLES + +### Example 1: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +## PARAMETERS + +### -AsJob +Run the command as a job + +```yaml +Type: System.Management.Automation.SwitchParameter +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -DefaultMaximumExpirationTimeInDay +The default time used to validate the maximum expiration time for each authorized partners in days. +Allowed values ar between 1 and 365 days. + +```yaml +Type: System.Int32 +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -DefaultProfile +The credentials, account, tenant, and subscription used for communication with Azure. + +```yaml +Type: System.Management.Automation.PSObject +Parameter Sets: (All) +Aliases: AzureRMContext, AzureCredential + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -InputObject +Identity Parameter +To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + +```yaml +Type: Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.IEventGridIdentity +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 +``` + +### -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 within the user's subscription. + +```yaml +Type: System.String +Parameter Sets: UpdateExpanded +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -SubscriptionId +Subscription credentials that uniquely identify a Microsoft Azure subscription. +The subscription ID forms part of the URI for every service call. + +```yaml +Type: System.String +Parameter Sets: UpdateExpanded +Aliases: + +Required: False +Position: Named +Default value: (Get-AzContext).Subscription.Id +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -Tag +Tags of the partner configuration resource. + +```yaml +Type: System.Collections.Hashtable +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -Confirm +Prompts you for confirmation before running the cmdlet. + +```yaml +Type: System.Management.Automation.SwitchParameter +Parameter Sets: (All) +Aliases: cf + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -WhatIf +Shows what would happen if the cmdlet runs. +The cmdlet is not run. + +```yaml +Type: System.Management.Automation.SwitchParameter +Parameter Sets: (All) +Aliases: wi + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### CommonParameters +This cmdlet supports the common parameters: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutVariable, -OutBuffer, -PipelineVariable, -Verbose, -WarningAction, and -WarningVariable. For more information, see [about_CommonParameters](http://go.microsoft.com/fwlink/?LinkID=113216). + +## INPUTS + +### Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.IEventGridIdentity + +## OUTPUTS + +### Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerConfiguration + +## 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 + - `[ChannelName ]`: Name of the channel. + - `[DomainName ]`: Name of the domain. + - `[DomainTopicName ]`: Name of the topic. + - `[EventChannelName ]`: Name of the event channel. + - `[EventSubscriptionName ]`: Name of the event subscription. + - `[Id ]`: Resource identity path + - `[Location ]`: Name of the location. + - `[ParentName ]`: The name of the parent resource (namely, either, the topic name, domain name, or partner namespace name). + - `[ParentType ]`: The type of the parent resource. This can be either \'topics\', \'domains\', or \'partnerNamespaces\'. + - `[PartnerDestinationName ]`: Name of the partner destination. + - `[PartnerNamespaceName ]`: Name of the partner namespace. + - `[PartnerRegistrationName ]`: Name of the partner registration. + - `[PartnerTopicName ]`: Name of the partner topic. + - `[PrivateEndpointConnectionName ]`: The name of the private endpoint connection connection. + - `[PrivateLinkResourceName ]`: The name of private link resource. + - `[ProviderNamespace ]`: Namespace of the provider of the topic. + - `[ResourceGroupName ]`: The name of the resource group within the partners subscription. + - `[ResourceName ]`: Name of the resource. + - `[ResourceTypeName ]`: Name of the resource type. + - `[Scope ]`: The scope of the event subscription. The scope can be a subscription, or a resource group, or a top level resource belonging to a resource provider namespace, or an EventGrid topic. For example, use '/subscriptions/{subscriptionId}/' for a subscription, '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}' for a resource group, and '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}' for a resource, and '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.EventGrid/topics/{topicName}' for an EventGrid topic. + - `[SubscriptionId ]`: Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription ID forms part of the URI for every service call. + - `[SystemTopicName ]`: Name of the system topic. + - `[TopicName ]`: Name of the domain topic. + - `[TopicTypeName ]`: Name of the topic type. + - `[VerifiedPartnerName ]`: Name of the verified partner. + +## RELATED LINKS + diff --git a/swaggerci/eventgrid/docs/Update-AzEventGridPartnerDestination.md b/swaggerci/eventgrid/docs/Update-AzEventGridPartnerDestination.md new file mode 100644 index 000000000000..e7eec81b0923 --- /dev/null +++ b/swaggerci/eventgrid/docs/Update-AzEventGridPartnerDestination.md @@ -0,0 +1,242 @@ +--- +external help file: +Module Name: Az.EventGrid +online version: https://docs.microsoft.com/en-us/powershell/module/az.eventgrid/update-azeventgridpartnerdestination +schema: 2.0.0 +--- + +# Update-AzEventGridPartnerDestination + +## SYNOPSIS +Asynchronously updates a partner destination with the specified parameters. + +## SYNTAX + +### UpdateExpanded (Default) +``` +Update-AzEventGridPartnerDestination -Name -ResourceGroupName [-SubscriptionId ] + [-Tag ] [-DefaultProfile ] [-PassThru] [-Confirm] [-WhatIf] [] +``` + +### UpdateViaIdentityExpanded +``` +Update-AzEventGridPartnerDestination -InputObject [-Tag ] + [-DefaultProfile ] [-PassThru] [-Confirm] [-WhatIf] [] +``` + +## DESCRIPTION +Asynchronously updates a partner destination with the specified parameters. + +## EXAMPLES + +### Example 1: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +## PARAMETERS + +### -DefaultProfile +The credentials, account, tenant, and subscription used for communication with Azure. + +```yaml +Type: System.Management.Automation.PSObject +Parameter Sets: (All) +Aliases: AzureRMContext, AzureCredential + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -InputObject +Identity Parameter +To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + +```yaml +Type: Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.IEventGridIdentity +Parameter Sets: UpdateViaIdentityExpanded +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: True (ByValue) +Accept wildcard characters: False +``` + +### -Name +Name of the partner destination. + +```yaml +Type: System.String +Parameter Sets: UpdateExpanded +Aliases: PartnerDestinationName + +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 within the user's subscription. + +```yaml +Type: System.String +Parameter Sets: UpdateExpanded +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -SubscriptionId +Subscription credentials that uniquely identify a Microsoft Azure subscription. +The subscription ID forms part of the URI for every service call. + +```yaml +Type: System.String +Parameter Sets: UpdateExpanded +Aliases: + +Required: False +Position: Named +Default value: (Get-AzContext).Subscription.Id +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -Tag +Tags of the Partner Destination resource. + +```yaml +Type: System.Collections.Hashtable +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -Confirm +Prompts you for confirmation before running the cmdlet. + +```yaml +Type: System.Management.Automation.SwitchParameter +Parameter Sets: (All) +Aliases: cf + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -WhatIf +Shows what would happen if the cmdlet runs. +The cmdlet is not run. + +```yaml +Type: System.Management.Automation.SwitchParameter +Parameter Sets: (All) +Aliases: wi + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### CommonParameters +This cmdlet supports the common parameters: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutVariable, -OutBuffer, -PipelineVariable, -Verbose, -WarningAction, and -WarningVariable. For more information, see [about_CommonParameters](http://go.microsoft.com/fwlink/?LinkID=113216). + +## INPUTS + +### Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.IEventGridIdentity + +## OUTPUTS + +### Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerDestination + +## 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 + - `[ChannelName ]`: Name of the channel. + - `[DomainName ]`: Name of the domain. + - `[DomainTopicName ]`: Name of the topic. + - `[EventChannelName ]`: Name of the event channel. + - `[EventSubscriptionName ]`: Name of the event subscription. + - `[Id ]`: Resource identity path + - `[Location ]`: Name of the location. + - `[ParentName ]`: The name of the parent resource (namely, either, the topic name, domain name, or partner namespace name). + - `[ParentType ]`: The type of the parent resource. This can be either \'topics\', \'domains\', or \'partnerNamespaces\'. + - `[PartnerDestinationName ]`: Name of the partner destination. + - `[PartnerNamespaceName ]`: Name of the partner namespace. + - `[PartnerRegistrationName ]`: Name of the partner registration. + - `[PartnerTopicName ]`: Name of the partner topic. + - `[PrivateEndpointConnectionName ]`: The name of the private endpoint connection connection. + - `[PrivateLinkResourceName ]`: The name of private link resource. + - `[ProviderNamespace ]`: Namespace of the provider of the topic. + - `[ResourceGroupName ]`: The name of the resource group within the partners subscription. + - `[ResourceName ]`: Name of the resource. + - `[ResourceTypeName ]`: Name of the resource type. + - `[Scope ]`: The scope of the event subscription. The scope can be a subscription, or a resource group, or a top level resource belonging to a resource provider namespace, or an EventGrid topic. For example, use '/subscriptions/{subscriptionId}/' for a subscription, '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}' for a resource group, and '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}' for a resource, and '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.EventGrid/topics/{topicName}' for an EventGrid topic. + - `[SubscriptionId ]`: Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription ID forms part of the URI for every service call. + - `[SystemTopicName ]`: Name of the system topic. + - `[TopicName ]`: Name of the domain topic. + - `[TopicTypeName ]`: Name of the topic type. + - `[VerifiedPartnerName ]`: Name of the verified partner. + +## RELATED LINKS + diff --git a/swaggerci/eventgrid/docs/Update-AzEventGridPartnerNamespace.md b/swaggerci/eventgrid/docs/Update-AzEventGridPartnerNamespace.md new file mode 100644 index 000000000000..84d01a04d988 --- /dev/null +++ b/swaggerci/eventgrid/docs/Update-AzEventGridPartnerNamespace.md @@ -0,0 +1,330 @@ +--- +external help file: +Module Name: Az.EventGrid +online version: https://docs.microsoft.com/en-us/powershell/module/az.eventgrid/update-azeventgridpartnernamespace +schema: 2.0.0 +--- + +# Update-AzEventGridPartnerNamespace + +## SYNOPSIS +Asynchronously updates a partner namespace with the specified parameters. + +## SYNTAX + +### UpdateExpanded (Default) +``` +Update-AzEventGridPartnerNamespace -Name -ResourceGroupName [-SubscriptionId ] + [-DisableLocalAuth] [-InboundIPRule ] [-PublicNetworkAccess ] + [-Tag ] [-DefaultProfile ] [-AsJob] [-NoWait] [-PassThru] [-Confirm] [-WhatIf] + [] +``` + +### UpdateViaIdentityExpanded +``` +Update-AzEventGridPartnerNamespace -InputObject [-DisableLocalAuth] + [-InboundIPRule ] [-PublicNetworkAccess ] [-Tag ] + [-DefaultProfile ] [-AsJob] [-NoWait] [-PassThru] [-Confirm] [-WhatIf] [] +``` + +## DESCRIPTION +Asynchronously updates a partner namespace with the specified parameters. + +## EXAMPLES + +### Example 1: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +## PARAMETERS + +### -AsJob +Run the command as a job + +```yaml +Type: System.Management.Automation.SwitchParameter +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -DefaultProfile +The credentials, account, tenant, and subscription used for communication with Azure. + +```yaml +Type: System.Management.Automation.PSObject +Parameter Sets: (All) +Aliases: AzureRMContext, AzureCredential + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -DisableLocalAuth +This boolean is used to enable or disable local auth. +Default value is false. +When the property is set to true, only AAD token will be used to authenticate if user is allowed to publish to the partner namespace. + +```yaml +Type: System.Management.Automation.SwitchParameter +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -InboundIPRule +This can be used to restrict traffic from specific IPs instead of all IPs. +Note: These are considered only if PublicNetworkAccess is enabled. +To construct, see NOTES section for INBOUNDIPRULE properties and create a hash table. + +```yaml +Type: Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IInboundIPRule[] +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.EventGrid.Models.IEventGridIdentity +Parameter Sets: UpdateViaIdentityExpanded +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: True (ByValue) +Accept wildcard characters: False +``` + +### -Name +Name of the partner namespace. + +```yaml +Type: System.String +Parameter Sets: UpdateExpanded +Aliases: PartnerNamespaceName + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -NoWait +Run the command asynchronously + +```yaml +Type: System.Management.Automation.SwitchParameter +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -PassThru +Returns true when the command succeeds + +```yaml +Type: System.Management.Automation.SwitchParameter +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -PublicNetworkAccess +This determines if traffic is allowed over public network. +By default it is enabled. +You can further restrict to specific IPs by configuring \ + +```yaml +Type: Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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 within the user's subscription. + +```yaml +Type: System.String +Parameter Sets: UpdateExpanded +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -SubscriptionId +Subscription credentials that uniquely identify a Microsoft Azure subscription. +The subscription ID forms part of the URI for every service call. + +```yaml +Type: System.String +Parameter Sets: UpdateExpanded +Aliases: + +Required: False +Position: Named +Default value: (Get-AzContext).Subscription.Id +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -Tag +Tags of the Partner Namespace. + +```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.EventGrid.Models.IEventGridIdentity + +## 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. + + +INBOUNDIPRULE : This can be used to restrict traffic from specific IPs instead of all IPs. Note: These are considered only if PublicNetworkAccess is enabled. + - `[Action ]`: Action to perform based on the match or no match of the IpMask. + - `[IPMask ]`: IP Address in CIDR notation e.g., 10.0.0.0/8. + +INPUTOBJECT : Identity Parameter + - `[ChannelName ]`: Name of the channel. + - `[DomainName ]`: Name of the domain. + - `[DomainTopicName ]`: Name of the topic. + - `[EventChannelName ]`: Name of the event channel. + - `[EventSubscriptionName ]`: Name of the event subscription. + - `[Id ]`: Resource identity path + - `[Location ]`: Name of the location. + - `[ParentName ]`: The name of the parent resource (namely, either, the topic name, domain name, or partner namespace name). + - `[ParentType ]`: The type of the parent resource. This can be either \'topics\', \'domains\', or \'partnerNamespaces\'. + - `[PartnerDestinationName ]`: Name of the partner destination. + - `[PartnerNamespaceName ]`: Name of the partner namespace. + - `[PartnerRegistrationName ]`: Name of the partner registration. + - `[PartnerTopicName ]`: Name of the partner topic. + - `[PrivateEndpointConnectionName ]`: The name of the private endpoint connection connection. + - `[PrivateLinkResourceName ]`: The name of private link resource. + - `[ProviderNamespace ]`: Namespace of the provider of the topic. + - `[ResourceGroupName ]`: The name of the resource group within the partners subscription. + - `[ResourceName ]`: Name of the resource. + - `[ResourceTypeName ]`: Name of the resource type. + - `[Scope ]`: The scope of the event subscription. The scope can be a subscription, or a resource group, or a top level resource belonging to a resource provider namespace, or an EventGrid topic. For example, use '/subscriptions/{subscriptionId}/' for a subscription, '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}' for a resource group, and '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}' for a resource, and '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.EventGrid/topics/{topicName}' for an EventGrid topic. + - `[SubscriptionId ]`: Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription ID forms part of the URI for every service call. + - `[SystemTopicName ]`: Name of the system topic. + - `[TopicName ]`: Name of the domain topic. + - `[TopicTypeName ]`: Name of the topic type. + - `[VerifiedPartnerName ]`: Name of the verified partner. + +## RELATED LINKS + diff --git a/swaggerci/eventgrid/docs/Update-AzEventGridPartnerRegistration.md b/swaggerci/eventgrid/docs/Update-AzEventGridPartnerRegistration.md new file mode 100644 index 000000000000..66b10a5054bf --- /dev/null +++ b/swaggerci/eventgrid/docs/Update-AzEventGridPartnerRegistration.md @@ -0,0 +1,370 @@ +--- +external help file: +Module Name: Az.EventGrid +online version: https://docs.microsoft.com/en-us/powershell/module/az.eventgrid/update-azeventgridpartnerregistration +schema: 2.0.0 +--- + +# Update-AzEventGridPartnerRegistration + +## SYNOPSIS +Updates a partner registration with the specified parameters. + +## SYNTAX + +### UpdateExpanded (Default) +``` +Update-AzEventGridPartnerRegistration -Name -ResourceGroupName [-SubscriptionId ] + [-AuthorizedAzureSubscriptionId ] [-LogoUri ] [-PartnerTopicTypeDescription ] + [-PartnerTopicTypeDisplayName ] [-PartnerTopicTypeName ] [-SetupUri ] + [-Tag ] [-DefaultProfile ] [-AsJob] [-NoWait] [-PassThru] [-Confirm] [-WhatIf] + [] +``` + +### UpdateViaIdentityExpanded +``` +Update-AzEventGridPartnerRegistration -InputObject + [-AuthorizedAzureSubscriptionId ] [-LogoUri ] [-PartnerTopicTypeDescription ] + [-PartnerTopicTypeDisplayName ] [-PartnerTopicTypeName ] [-SetupUri ] + [-Tag ] [-DefaultProfile ] [-AsJob] [-NoWait] [-PassThru] [-Confirm] [-WhatIf] + [] +``` + +## DESCRIPTION +Updates a partner registration with the specified parameters. + +## EXAMPLES + +### Example 1: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +## PARAMETERS + +### -AsJob +Run the command as a job + +```yaml +Type: System.Management.Automation.SwitchParameter +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -AuthorizedAzureSubscriptionId +List of IDs of Azure AD applications that are authorized to create a partner namespaceassociated with this partner registration. +This is an optional property. +Creatingpartner namespaces is always permitted under the same Azure subscription as the one usedfor creating the partner registration. + +```yaml +Type: System.String[] +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -DefaultProfile +The credentials, account, tenant, and subscription used for communication with Azure. + +```yaml +Type: System.Management.Automation.PSObject +Parameter Sets: (All) +Aliases: AzureRMContext, AzureCredential + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -InputObject +Identity Parameter +To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + +```yaml +Type: Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.IEventGridIdentity +Parameter Sets: UpdateViaIdentityExpanded +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: True (ByValue) +Accept wildcard characters: False +``` + +### -LogoUri +URI of the partner logo. + +```yaml +Type: System.String +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -Name +Name of the partner registration. + +```yaml +Type: System.String +Parameter Sets: UpdateExpanded +Aliases: PartnerRegistrationName + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -NoWait +Run the command asynchronously + +```yaml +Type: System.Management.Automation.SwitchParameter +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -PartnerTopicTypeDescription +Description of the partner topic type. + +```yaml +Type: System.String +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -PartnerTopicTypeDisplayName +Display name of the partner topic type. + +```yaml +Type: System.String +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -PartnerTopicTypeName +Name of the partner topic type. + +```yaml +Type: System.String +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -PassThru +Returns true when the command succeeds + +```yaml +Type: System.Management.Automation.SwitchParameter +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -ResourceGroupName +The name of the resource group within the user's subscription. + +```yaml +Type: System.String +Parameter Sets: UpdateExpanded +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -SetupUri +URI of the partner website that can be used by Azure customers to setup Event Gridintegration on an event source. + +```yaml +Type: System.String +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -SubscriptionId +Subscription credentials that uniquely identify a Microsoft Azure subscription. +The subscription ID forms part of the URI for every service call. + +```yaml +Type: System.String +Parameter Sets: UpdateExpanded +Aliases: + +Required: False +Position: Named +Default value: (Get-AzContext).Subscription.Id +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -Tag +Tags of the partner registration resource. + +```yaml +Type: System.Collections.Hashtable +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -Confirm +Prompts you for confirmation before running the cmdlet. + +```yaml +Type: System.Management.Automation.SwitchParameter +Parameter Sets: (All) +Aliases: cf + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -WhatIf +Shows what would happen if the cmdlet runs. +The cmdlet is not run. + +```yaml +Type: System.Management.Automation.SwitchParameter +Parameter Sets: (All) +Aliases: wi + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### CommonParameters +This cmdlet supports the common parameters: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutVariable, -OutBuffer, -PipelineVariable, -Verbose, -WarningAction, and -WarningVariable. For more information, see [about_CommonParameters](http://go.microsoft.com/fwlink/?LinkID=113216). + +## INPUTS + +### Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.IEventGridIdentity + +## 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 + - `[ChannelName ]`: Name of the channel. + - `[DomainName ]`: Name of the domain. + - `[DomainTopicName ]`: Name of the topic. + - `[EventChannelName ]`: Name of the event channel. + - `[EventSubscriptionName ]`: Name of the event subscription. + - `[Id ]`: Resource identity path + - `[Location ]`: Name of the location. + - `[ParentName ]`: The name of the parent resource (namely, either, the topic name, domain name, or partner namespace name). + - `[ParentType ]`: The type of the parent resource. This can be either \'topics\', \'domains\', or \'partnerNamespaces\'. + - `[PartnerDestinationName ]`: Name of the partner destination. + - `[PartnerNamespaceName ]`: Name of the partner namespace. + - `[PartnerRegistrationName ]`: Name of the partner registration. + - `[PartnerTopicName ]`: Name of the partner topic. + - `[PrivateEndpointConnectionName ]`: The name of the private endpoint connection connection. + - `[PrivateLinkResourceName ]`: The name of private link resource. + - `[ProviderNamespace ]`: Namespace of the provider of the topic. + - `[ResourceGroupName ]`: The name of the resource group within the partners subscription. + - `[ResourceName ]`: Name of the resource. + - `[ResourceTypeName ]`: Name of the resource type. + - `[Scope ]`: The scope of the event subscription. The scope can be a subscription, or a resource group, or a top level resource belonging to a resource provider namespace, or an EventGrid topic. For example, use '/subscriptions/{subscriptionId}/' for a subscription, '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}' for a resource group, and '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}' for a resource, and '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.EventGrid/topics/{topicName}' for an EventGrid topic. + - `[SubscriptionId ]`: Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription ID forms part of the URI for every service call. + - `[SystemTopicName ]`: Name of the system topic. + - `[TopicName ]`: Name of the domain topic. + - `[TopicTypeName ]`: Name of the topic type. + - `[VerifiedPartnerName ]`: Name of the verified partner. + +## RELATED LINKS + diff --git a/swaggerci/eventgrid/docs/Update-AzEventGridPartnerTopic.md b/swaggerci/eventgrid/docs/Update-AzEventGridPartnerTopic.md new file mode 100644 index 000000000000..9e08817d47a4 --- /dev/null +++ b/swaggerci/eventgrid/docs/Update-AzEventGridPartnerTopic.md @@ -0,0 +1,308 @@ +--- +external help file: +Module Name: Az.EventGrid +online version: https://docs.microsoft.com/en-us/powershell/module/az.eventgrid/update-azeventgridpartnertopic +schema: 2.0.0 +--- + +# Update-AzEventGridPartnerTopic + +## SYNOPSIS +Asynchronously updates a partner topic with the specified parameters. + +## SYNTAX + +### UpdateExpanded (Default) +``` +Update-AzEventGridPartnerTopic -Name -ResourceGroupName [-SubscriptionId ] + [-IdentityPrincipalId ] [-IdentityTenantId ] [-IdentityType ] + [-IdentityUserAssignedIdentity ] [-Tag ] [-DefaultProfile ] [-PassThru] + [-Confirm] [-WhatIf] [] +``` + +### UpdateViaIdentityExpanded +``` +Update-AzEventGridPartnerTopic -InputObject [-IdentityPrincipalId ] + [-IdentityTenantId ] [-IdentityType ] [-IdentityUserAssignedIdentity ] + [-Tag ] [-DefaultProfile ] [-PassThru] [-Confirm] [-WhatIf] [] +``` + +## DESCRIPTION +Asynchronously updates a partner topic with the specified parameters. + +## EXAMPLES + +### Example 1: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +## PARAMETERS + +### -DefaultProfile +The credentials, account, tenant, and subscription used for communication with Azure. + +```yaml +Type: System.Management.Automation.PSObject +Parameter Sets: (All) +Aliases: AzureRMContext, AzureCredential + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -IdentityPrincipalId +The principal ID of resource identity. + +```yaml +Type: System.String +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -IdentityTenantId +The tenant ID of resource. + +```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 type of managed identity used. +The type 'SystemAssigned, UserAssigned' includes both an implicitly created identity and a set of user-assigned identities. +The type 'None' will remove any identity. + +```yaml +Type: Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.IdentityType +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -IdentityUserAssignedIdentity +The list of user identities associated with the resource. +The user identity dictionary key references will be ARM resource ids in the form:'/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ManagedIdentity/userAssignedIdentities/{identityName}'.This property is currently not used and reserved for future usage. + +```yaml +Type: System.Collections.Hashtable +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.EventGrid.Models.IEventGridIdentity +Parameter Sets: UpdateViaIdentityExpanded +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: True (ByValue) +Accept wildcard characters: False +``` + +### -Name +Name of the partner topic. + +```yaml +Type: System.String +Parameter Sets: UpdateExpanded +Aliases: PartnerTopicName + +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 within the user's subscription. + +```yaml +Type: System.String +Parameter Sets: UpdateExpanded +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -SubscriptionId +Subscription credentials that uniquely identify a Microsoft Azure subscription. +The subscription ID forms part of the URI for every service call. + +```yaml +Type: System.String +Parameter Sets: UpdateExpanded +Aliases: + +Required: False +Position: Named +Default value: (Get-AzContext).Subscription.Id +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -Tag +Tags of the Partner Topic resource. + +```yaml +Type: System.Collections.Hashtable +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -Confirm +Prompts you for confirmation before running the cmdlet. + +```yaml +Type: System.Management.Automation.SwitchParameter +Parameter Sets: (All) +Aliases: cf + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -WhatIf +Shows what would happen if the cmdlet runs. +The cmdlet is not run. + +```yaml +Type: System.Management.Automation.SwitchParameter +Parameter Sets: (All) +Aliases: wi + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### CommonParameters +This cmdlet supports the common parameters: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutVariable, -OutBuffer, -PipelineVariable, -Verbose, -WarningAction, and -WarningVariable. For more information, see [about_CommonParameters](http://go.microsoft.com/fwlink/?LinkID=113216). + +## INPUTS + +### Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.IEventGridIdentity + +## OUTPUTS + +### Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerTopic + +## 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 + - `[ChannelName ]`: Name of the channel. + - `[DomainName ]`: Name of the domain. + - `[DomainTopicName ]`: Name of the topic. + - `[EventChannelName ]`: Name of the event channel. + - `[EventSubscriptionName ]`: Name of the event subscription. + - `[Id ]`: Resource identity path + - `[Location ]`: Name of the location. + - `[ParentName ]`: The name of the parent resource (namely, either, the topic name, domain name, or partner namespace name). + - `[ParentType ]`: The type of the parent resource. This can be either \'topics\', \'domains\', or \'partnerNamespaces\'. + - `[PartnerDestinationName ]`: Name of the partner destination. + - `[PartnerNamespaceName ]`: Name of the partner namespace. + - `[PartnerRegistrationName ]`: Name of the partner registration. + - `[PartnerTopicName ]`: Name of the partner topic. + - `[PrivateEndpointConnectionName ]`: The name of the private endpoint connection connection. + - `[PrivateLinkResourceName ]`: The name of private link resource. + - `[ProviderNamespace ]`: Namespace of the provider of the topic. + - `[ResourceGroupName ]`: The name of the resource group within the partners subscription. + - `[ResourceName ]`: Name of the resource. + - `[ResourceTypeName ]`: Name of the resource type. + - `[Scope ]`: The scope of the event subscription. The scope can be a subscription, or a resource group, or a top level resource belonging to a resource provider namespace, or an EventGrid topic. For example, use '/subscriptions/{subscriptionId}/' for a subscription, '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}' for a resource group, and '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}' for a resource, and '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.EventGrid/topics/{topicName}' for an EventGrid topic. + - `[SubscriptionId ]`: Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription ID forms part of the URI for every service call. + - `[SystemTopicName ]`: Name of the system topic. + - `[TopicName ]`: Name of the domain topic. + - `[TopicTypeName ]`: Name of the topic type. + - `[VerifiedPartnerName ]`: Name of the verified partner. + +## RELATED LINKS + diff --git a/swaggerci/eventgrid/docs/Update-AzEventGridPartnerTopicEventSubscription.md b/swaggerci/eventgrid/docs/Update-AzEventGridPartnerTopicEventSubscription.md new file mode 100644 index 000000000000..bafc83b617e4 --- /dev/null +++ b/swaggerci/eventgrid/docs/Update-AzEventGridPartnerTopicEventSubscription.md @@ -0,0 +1,559 @@ +--- +external help file: +Module Name: Az.EventGrid +online version: https://docs.microsoft.com/en-us/powershell/module/az.eventgrid/update-azeventgridpartnertopiceventsubscription +schema: 2.0.0 +--- + +# Update-AzEventGridPartnerTopicEventSubscription + +## SYNOPSIS +Update an existing event subscription of a partner topic. + +## SYNTAX + +### UpdateExpanded (Default) +``` +Update-AzEventGridPartnerTopicEventSubscription -EventSubscriptionName -PartnerTopicName + -ResourceGroupName [-SubscriptionId ] + [-DeadLetterWithResourceIdentityType ] + [-DeadLetterWithResourceIdentityUserAssignedIdentity ] + [-DeliveryWithResourceIdentityDestinationEndpointType ] + [-DeliveryWithResourceIdentityType ] + [-DeliveryWithResourceIdentityUserAssignedIdentity ] [-EndpointType ] + [-EventDeliverySchema ] [-ExpirationTimeUtc ] + [-FilterAdvancedFilter ] [-FilterEnableAdvancedFilteringOnArray] + [-FilterIncludedEventType ] [-FilterIsSubjectCaseSensitive] [-FilterSubjectBeginsWith ] + [-FilterSubjectEndsWith ] [-Label ] [-RetryPolicyEventTimeToLiveInMinute ] + [-RetryPolicyMaxDeliveryAttempt ] [-DefaultProfile ] [-AsJob] [-NoWait] [-PassThru] + [-Confirm] [-WhatIf] [] +``` + +### UpdateViaIdentityExpanded +``` +Update-AzEventGridPartnerTopicEventSubscription -InputObject + [-DeadLetterWithResourceIdentityType ] + [-DeadLetterWithResourceIdentityUserAssignedIdentity ] + [-DeliveryWithResourceIdentityDestinationEndpointType ] + [-DeliveryWithResourceIdentityType ] + [-DeliveryWithResourceIdentityUserAssignedIdentity ] [-EndpointType ] + [-EventDeliverySchema ] [-ExpirationTimeUtc ] + [-FilterAdvancedFilter ] [-FilterEnableAdvancedFilteringOnArray] + [-FilterIncludedEventType ] [-FilterIsSubjectCaseSensitive] [-FilterSubjectBeginsWith ] + [-FilterSubjectEndsWith ] [-Label ] [-RetryPolicyEventTimeToLiveInMinute ] + [-RetryPolicyMaxDeliveryAttempt ] [-DefaultProfile ] [-AsJob] [-NoWait] [-PassThru] + [-Confirm] [-WhatIf] [] +``` + +## DESCRIPTION +Update an existing event subscription of a partner topic. + +## EXAMPLES + +### Example 1: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +## PARAMETERS + +### -AsJob +Run the command as a job + +```yaml +Type: System.Management.Automation.SwitchParameter +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -DeadLetterWithResourceIdentityType +The type of managed identity used. +The type 'SystemAssigned, UserAssigned' includes both an implicitly created identity and a set of user-assigned identities. +The type 'None' will remove any identity. + +```yaml +Type: Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EventSubscriptionIdentityType +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -DeadLetterWithResourceIdentityUserAssignedIdentity +The user identity associated with the resource. + +```yaml +Type: System.String +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -DefaultProfile +The credentials, account, tenant, and subscription used for communication with Azure. + +```yaml +Type: System.Management.Automation.PSObject +Parameter Sets: (All) +Aliases: AzureRMContext, AzureCredential + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -DeliveryWithResourceIdentityDestinationEndpointType +Type of the endpoint for the event subscription destination. + +```yaml +Type: Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EndpointType +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -DeliveryWithResourceIdentityType +The type of managed identity used. +The type 'SystemAssigned, UserAssigned' includes both an implicitly created identity and a set of user-assigned identities. +The type 'None' will remove any identity. + +```yaml +Type: Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EventSubscriptionIdentityType +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -DeliveryWithResourceIdentityUserAssignedIdentity +The user identity associated with the resource. + +```yaml +Type: System.String +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -EndpointType +Type of the endpoint for the event subscription destination. + +```yaml +Type: Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EndpointType +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -EventDeliverySchema +The event delivery schema for the event subscription. + +```yaml +Type: Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EventDeliverySchema +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -EventSubscriptionName +Name of the event subscription to be created. +Event subscription names must be between 3 and 100 characters in length and use alphanumeric letters only. + +```yaml +Type: System.String +Parameter Sets: UpdateExpanded +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -ExpirationTimeUtc +Information about the expiration time for the event subscription. + +```yaml +Type: System.DateTime +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -FilterAdvancedFilter +An array of advanced filters that are used for filtering event subscriptions. +To construct, see NOTES section for FILTERADVANCEDFILTER properties and create a hash table. + +```yaml +Type: Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IAdvancedFilter[] +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -FilterEnableAdvancedFilteringOnArray +Allows advanced filters to be evaluated against an array of values instead of expecting a singular value. + +```yaml +Type: System.Management.Automation.SwitchParameter +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -FilterIncludedEventType +A list of applicable event types that need to be part of the event subscription. +If it is desired to subscribe to all default event types, set the IncludedEventTypes to null. + +```yaml +Type: System.String[] +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -FilterIsSubjectCaseSensitive +Specifies if the SubjectBeginsWith and SubjectEndsWith properties of the filtershould be compared in a case sensitive manner. + +```yaml +Type: System.Management.Automation.SwitchParameter +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -FilterSubjectBeginsWith +An optional string to filter events for an event subscription based on a resource path prefix.The format of this depends on the publisher of the events.Wildcard characters are not supported in this path. + +```yaml +Type: System.String +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -FilterSubjectEndsWith +An optional string to filter events for an event subscription based on a resource path suffix.Wildcard characters are not supported in this path. + +```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.EventGrid.Models.IEventGridIdentity +Parameter Sets: UpdateViaIdentityExpanded +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: True (ByValue) +Accept wildcard characters: False +``` + +### -Label +List of user defined labels. + +```yaml +Type: System.String[] +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -NoWait +Run the command asynchronously + +```yaml +Type: System.Management.Automation.SwitchParameter +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -PartnerTopicName +Name of the partner topic. + +```yaml +Type: System.String +Parameter Sets: UpdateExpanded +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -PassThru +Returns true when the command succeeds + +```yaml +Type: System.Management.Automation.SwitchParameter +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -ResourceGroupName +The name of the resource group within the user's subscription. + +```yaml +Type: System.String +Parameter Sets: UpdateExpanded +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -RetryPolicyEventTimeToLiveInMinute +Time To Live (in minutes) for events. + +```yaml +Type: System.Int32 +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -RetryPolicyMaxDeliveryAttempt +Maximum number of delivery retry attempts for events. + +```yaml +Type: System.Int32 +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -SubscriptionId +Subscription credentials that uniquely identify a Microsoft Azure subscription. +The subscription ID forms part of the URI for every service call. + +```yaml +Type: System.String +Parameter Sets: UpdateExpanded +Aliases: + +Required: False +Position: Named +Default value: (Get-AzContext).Subscription.Id +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -Confirm +Prompts you for confirmation before running the cmdlet. + +```yaml +Type: System.Management.Automation.SwitchParameter +Parameter Sets: (All) +Aliases: cf + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -WhatIf +Shows what would happen if the cmdlet runs. +The cmdlet is not run. + +```yaml +Type: System.Management.Automation.SwitchParameter +Parameter Sets: (All) +Aliases: wi + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### CommonParameters +This cmdlet supports the common parameters: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutVariable, -OutBuffer, -PipelineVariable, -Verbose, -WarningAction, and -WarningVariable. For more information, see [about_CommonParameters](http://go.microsoft.com/fwlink/?LinkID=113216). + +## INPUTS + +### Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.IEventGridIdentity + +## 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. + + +FILTERADVANCEDFILTER : An array of advanced filters that are used for filtering event subscriptions. + - `OperatorType `: The operator type used for filtering, e.g., NumberIn, StringContains, BoolEquals and others. + - `[Key ]`: The field/property in the event based on which you want to filter. + +INPUTOBJECT : Identity Parameter + - `[ChannelName ]`: Name of the channel. + - `[DomainName ]`: Name of the domain. + - `[DomainTopicName ]`: Name of the topic. + - `[EventChannelName ]`: Name of the event channel. + - `[EventSubscriptionName ]`: Name of the event subscription. + - `[Id ]`: Resource identity path + - `[Location ]`: Name of the location. + - `[ParentName ]`: The name of the parent resource (namely, either, the topic name, domain name, or partner namespace name). + - `[ParentType ]`: The type of the parent resource. This can be either \'topics\', \'domains\', or \'partnerNamespaces\'. + - `[PartnerDestinationName ]`: Name of the partner destination. + - `[PartnerNamespaceName ]`: Name of the partner namespace. + - `[PartnerRegistrationName ]`: Name of the partner registration. + - `[PartnerTopicName ]`: Name of the partner topic. + - `[PrivateEndpointConnectionName ]`: The name of the private endpoint connection connection. + - `[PrivateLinkResourceName ]`: The name of private link resource. + - `[ProviderNamespace ]`: Namespace of the provider of the topic. + - `[ResourceGroupName ]`: The name of the resource group within the partners subscription. + - `[ResourceName ]`: Name of the resource. + - `[ResourceTypeName ]`: Name of the resource type. + - `[Scope ]`: The scope of the event subscription. The scope can be a subscription, or a resource group, or a top level resource belonging to a resource provider namespace, or an EventGrid topic. For example, use '/subscriptions/{subscriptionId}/' for a subscription, '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}' for a resource group, and '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}' for a resource, and '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.EventGrid/topics/{topicName}' for an EventGrid topic. + - `[SubscriptionId ]`: Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription ID forms part of the URI for every service call. + - `[SystemTopicName ]`: Name of the system topic. + - `[TopicName ]`: Name of the domain topic. + - `[TopicTypeName ]`: Name of the topic type. + - `[VerifiedPartnerName ]`: Name of the verified partner. + +## RELATED LINKS + diff --git a/swaggerci/eventgrid/docs/Update-AzEventGridSystemTopic.md b/swaggerci/eventgrid/docs/Update-AzEventGridSystemTopic.md new file mode 100644 index 000000000000..6a1d0e210a6b --- /dev/null +++ b/swaggerci/eventgrid/docs/Update-AzEventGridSystemTopic.md @@ -0,0 +1,339 @@ +--- +external help file: +Module Name: Az.EventGrid +online version: https://docs.microsoft.com/en-us/powershell/module/az.eventgrid/update-azeventgridsystemtopic +schema: 2.0.0 +--- + +# Update-AzEventGridSystemTopic + +## SYNOPSIS +Asynchronously updates a system topic with the specified parameters. + +## SYNTAX + +### UpdateExpanded (Default) +``` +Update-AzEventGridSystemTopic -Name -ResourceGroupName [-SubscriptionId ] + [-IdentityPrincipalId ] [-IdentityTenantId ] [-IdentityType ] + [-IdentityUserAssignedIdentity ] [-Tag ] [-DefaultProfile ] [-AsJob] + [-NoWait] [-PassThru] [-Confirm] [-WhatIf] [] +``` + +### UpdateViaIdentityExpanded +``` +Update-AzEventGridSystemTopic -InputObject [-IdentityPrincipalId ] + [-IdentityTenantId ] [-IdentityType ] [-IdentityUserAssignedIdentity ] + [-Tag ] [-DefaultProfile ] [-AsJob] [-NoWait] [-PassThru] [-Confirm] [-WhatIf] + [] +``` + +## DESCRIPTION +Asynchronously updates a system topic with the specified parameters. + +## EXAMPLES + +### Example 1: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +## PARAMETERS + +### -AsJob +Run the command as a job + +```yaml +Type: System.Management.Automation.SwitchParameter +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -DefaultProfile +The credentials, account, tenant, and subscription used for communication with Azure. + +```yaml +Type: System.Management.Automation.PSObject +Parameter Sets: (All) +Aliases: AzureRMContext, AzureCredential + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -IdentityPrincipalId +The principal ID of resource identity. + +```yaml +Type: System.String +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -IdentityTenantId +The tenant ID of resource. + +```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 type of managed identity used. +The type 'SystemAssigned, UserAssigned' includes both an implicitly created identity and a set of user-assigned identities. +The type 'None' will remove any identity. + +```yaml +Type: Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.IdentityType +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -IdentityUserAssignedIdentity +The list of user identities associated with the resource. +The user identity dictionary key references will be ARM resource ids in the form:'/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ManagedIdentity/userAssignedIdentities/{identityName}'.This property is currently not used and reserved for future usage. + +```yaml +Type: System.Collections.Hashtable +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.EventGrid.Models.IEventGridIdentity +Parameter Sets: UpdateViaIdentityExpanded +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: True (ByValue) +Accept wildcard characters: False +``` + +### -Name +Name of the system topic. + +```yaml +Type: System.String +Parameter Sets: UpdateExpanded +Aliases: SystemTopicName + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -NoWait +Run the command asynchronously + +```yaml +Type: System.Management.Automation.SwitchParameter +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -PassThru +Returns true when the command succeeds + +```yaml +Type: System.Management.Automation.SwitchParameter +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -ResourceGroupName +The name of the resource group within the user's subscription. + +```yaml +Type: System.String +Parameter Sets: UpdateExpanded +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -SubscriptionId +Subscription credentials that uniquely identify a Microsoft Azure subscription. +The subscription ID forms part of the URI for every service call. + +```yaml +Type: System.String +Parameter Sets: UpdateExpanded +Aliases: + +Required: False +Position: Named +Default value: (Get-AzContext).Subscription.Id +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -Tag +Tags of the system topic. + +```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.EventGrid.Models.IEventGridIdentity + +## OUTPUTS + +### Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ISystemTopic + +## 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 + - `[ChannelName ]`: Name of the channel. + - `[DomainName ]`: Name of the domain. + - `[DomainTopicName ]`: Name of the topic. + - `[EventChannelName ]`: Name of the event channel. + - `[EventSubscriptionName ]`: Name of the event subscription. + - `[Id ]`: Resource identity path + - `[Location ]`: Name of the location. + - `[ParentName ]`: The name of the parent resource (namely, either, the topic name, domain name, or partner namespace name). + - `[ParentType ]`: The type of the parent resource. This can be either \'topics\', \'domains\', or \'partnerNamespaces\'. + - `[PartnerDestinationName ]`: Name of the partner destination. + - `[PartnerNamespaceName ]`: Name of the partner namespace. + - `[PartnerRegistrationName ]`: Name of the partner registration. + - `[PartnerTopicName ]`: Name of the partner topic. + - `[PrivateEndpointConnectionName ]`: The name of the private endpoint connection connection. + - `[PrivateLinkResourceName ]`: The name of private link resource. + - `[ProviderNamespace ]`: Namespace of the provider of the topic. + - `[ResourceGroupName ]`: The name of the resource group within the partners subscription. + - `[ResourceName ]`: Name of the resource. + - `[ResourceTypeName ]`: Name of the resource type. + - `[Scope ]`: The scope of the event subscription. The scope can be a subscription, or a resource group, or a top level resource belonging to a resource provider namespace, or an EventGrid topic. For example, use '/subscriptions/{subscriptionId}/' for a subscription, '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}' for a resource group, and '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}' for a resource, and '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.EventGrid/topics/{topicName}' for an EventGrid topic. + - `[SubscriptionId ]`: Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription ID forms part of the URI for every service call. + - `[SystemTopicName ]`: Name of the system topic. + - `[TopicName ]`: Name of the domain topic. + - `[TopicTypeName ]`: Name of the topic type. + - `[VerifiedPartnerName ]`: Name of the verified partner. + +## RELATED LINKS + diff --git a/swaggerci/eventgrid/docs/Update-AzEventGridSystemTopicEventSubscription.md b/swaggerci/eventgrid/docs/Update-AzEventGridSystemTopicEventSubscription.md new file mode 100644 index 000000000000..703130313f2a --- /dev/null +++ b/swaggerci/eventgrid/docs/Update-AzEventGridSystemTopicEventSubscription.md @@ -0,0 +1,559 @@ +--- +external help file: +Module Name: Az.EventGrid +online version: https://docs.microsoft.com/en-us/powershell/module/az.eventgrid/update-azeventgridsystemtopiceventsubscription +schema: 2.0.0 +--- + +# Update-AzEventGridSystemTopicEventSubscription + +## SYNOPSIS +Update an existing event subscription of a system topic. + +## SYNTAX + +### UpdateExpanded (Default) +``` +Update-AzEventGridSystemTopicEventSubscription -EventSubscriptionName -ResourceGroupName + -SystemTopicName [-SubscriptionId ] + [-DeadLetterWithResourceIdentityType ] + [-DeadLetterWithResourceIdentityUserAssignedIdentity ] + [-DeliveryWithResourceIdentityDestinationEndpointType ] + [-DeliveryWithResourceIdentityType ] + [-DeliveryWithResourceIdentityUserAssignedIdentity ] [-EndpointType ] + [-EventDeliverySchema ] [-ExpirationTimeUtc ] + [-FilterAdvancedFilter ] [-FilterEnableAdvancedFilteringOnArray] + [-FilterIncludedEventType ] [-FilterIsSubjectCaseSensitive] [-FilterSubjectBeginsWith ] + [-FilterSubjectEndsWith ] [-Label ] [-RetryPolicyEventTimeToLiveInMinute ] + [-RetryPolicyMaxDeliveryAttempt ] [-DefaultProfile ] [-AsJob] [-NoWait] [-PassThru] + [-Confirm] [-WhatIf] [] +``` + +### UpdateViaIdentityExpanded +``` +Update-AzEventGridSystemTopicEventSubscription -InputObject + [-DeadLetterWithResourceIdentityType ] + [-DeadLetterWithResourceIdentityUserAssignedIdentity ] + [-DeliveryWithResourceIdentityDestinationEndpointType ] + [-DeliveryWithResourceIdentityType ] + [-DeliveryWithResourceIdentityUserAssignedIdentity ] [-EndpointType ] + [-EventDeliverySchema ] [-ExpirationTimeUtc ] + [-FilterAdvancedFilter ] [-FilterEnableAdvancedFilteringOnArray] + [-FilterIncludedEventType ] [-FilterIsSubjectCaseSensitive] [-FilterSubjectBeginsWith ] + [-FilterSubjectEndsWith ] [-Label ] [-RetryPolicyEventTimeToLiveInMinute ] + [-RetryPolicyMaxDeliveryAttempt ] [-DefaultProfile ] [-AsJob] [-NoWait] [-PassThru] + [-Confirm] [-WhatIf] [] +``` + +## DESCRIPTION +Update an existing event subscription of a system topic. + +## EXAMPLES + +### Example 1: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +## PARAMETERS + +### -AsJob +Run the command as a job + +```yaml +Type: System.Management.Automation.SwitchParameter +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -DeadLetterWithResourceIdentityType +The type of managed identity used. +The type 'SystemAssigned, UserAssigned' includes both an implicitly created identity and a set of user-assigned identities. +The type 'None' will remove any identity. + +```yaml +Type: Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EventSubscriptionIdentityType +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -DeadLetterWithResourceIdentityUserAssignedIdentity +The user identity associated with the resource. + +```yaml +Type: System.String +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -DefaultProfile +The credentials, account, tenant, and subscription used for communication with Azure. + +```yaml +Type: System.Management.Automation.PSObject +Parameter Sets: (All) +Aliases: AzureRMContext, AzureCredential + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -DeliveryWithResourceIdentityDestinationEndpointType +Type of the endpoint for the event subscription destination. + +```yaml +Type: Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EndpointType +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -DeliveryWithResourceIdentityType +The type of managed identity used. +The type 'SystemAssigned, UserAssigned' includes both an implicitly created identity and a set of user-assigned identities. +The type 'None' will remove any identity. + +```yaml +Type: Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EventSubscriptionIdentityType +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -DeliveryWithResourceIdentityUserAssignedIdentity +The user identity associated with the resource. + +```yaml +Type: System.String +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -EndpointType +Type of the endpoint for the event subscription destination. + +```yaml +Type: Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EndpointType +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -EventDeliverySchema +The event delivery schema for the event subscription. + +```yaml +Type: Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EventDeliverySchema +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -EventSubscriptionName +Name of the event subscription to be created. +Event subscription names must be between 3 and 100 characters in length and use alphanumeric letters only. + +```yaml +Type: System.String +Parameter Sets: UpdateExpanded +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -ExpirationTimeUtc +Information about the expiration time for the event subscription. + +```yaml +Type: System.DateTime +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -FilterAdvancedFilter +An array of advanced filters that are used for filtering event subscriptions. +To construct, see NOTES section for FILTERADVANCEDFILTER properties and create a hash table. + +```yaml +Type: Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IAdvancedFilter[] +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -FilterEnableAdvancedFilteringOnArray +Allows advanced filters to be evaluated against an array of values instead of expecting a singular value. + +```yaml +Type: System.Management.Automation.SwitchParameter +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -FilterIncludedEventType +A list of applicable event types that need to be part of the event subscription. +If it is desired to subscribe to all default event types, set the IncludedEventTypes to null. + +```yaml +Type: System.String[] +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -FilterIsSubjectCaseSensitive +Specifies if the SubjectBeginsWith and SubjectEndsWith properties of the filtershould be compared in a case sensitive manner. + +```yaml +Type: System.Management.Automation.SwitchParameter +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -FilterSubjectBeginsWith +An optional string to filter events for an event subscription based on a resource path prefix.The format of this depends on the publisher of the events.Wildcard characters are not supported in this path. + +```yaml +Type: System.String +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -FilterSubjectEndsWith +An optional string to filter events for an event subscription based on a resource path suffix.Wildcard characters are not supported in this path. + +```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.EventGrid.Models.IEventGridIdentity +Parameter Sets: UpdateViaIdentityExpanded +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: True (ByValue) +Accept wildcard characters: False +``` + +### -Label +List of user defined labels. + +```yaml +Type: System.String[] +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -NoWait +Run the command asynchronously + +```yaml +Type: System.Management.Automation.SwitchParameter +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -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 within the user's subscription. + +```yaml +Type: System.String +Parameter Sets: UpdateExpanded +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -RetryPolicyEventTimeToLiveInMinute +Time To Live (in minutes) for events. + +```yaml +Type: System.Int32 +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -RetryPolicyMaxDeliveryAttempt +Maximum number of delivery retry attempts for events. + +```yaml +Type: System.Int32 +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -SubscriptionId +Subscription credentials that uniquely identify a Microsoft Azure subscription. +The subscription ID forms part of the URI for every service call. + +```yaml +Type: System.String +Parameter Sets: UpdateExpanded +Aliases: + +Required: False +Position: Named +Default value: (Get-AzContext).Subscription.Id +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -SystemTopicName +Name of the system topic. + +```yaml +Type: System.String +Parameter Sets: UpdateExpanded +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.EventGrid.Models.IEventGridIdentity + +## 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. + + +FILTERADVANCEDFILTER : An array of advanced filters that are used for filtering event subscriptions. + - `OperatorType `: The operator type used for filtering, e.g., NumberIn, StringContains, BoolEquals and others. + - `[Key ]`: The field/property in the event based on which you want to filter. + +INPUTOBJECT : Identity Parameter + - `[ChannelName ]`: Name of the channel. + - `[DomainName ]`: Name of the domain. + - `[DomainTopicName ]`: Name of the topic. + - `[EventChannelName ]`: Name of the event channel. + - `[EventSubscriptionName ]`: Name of the event subscription. + - `[Id ]`: Resource identity path + - `[Location ]`: Name of the location. + - `[ParentName ]`: The name of the parent resource (namely, either, the topic name, domain name, or partner namespace name). + - `[ParentType ]`: The type of the parent resource. This can be either \'topics\', \'domains\', or \'partnerNamespaces\'. + - `[PartnerDestinationName ]`: Name of the partner destination. + - `[PartnerNamespaceName ]`: Name of the partner namespace. + - `[PartnerRegistrationName ]`: Name of the partner registration. + - `[PartnerTopicName ]`: Name of the partner topic. + - `[PrivateEndpointConnectionName ]`: The name of the private endpoint connection connection. + - `[PrivateLinkResourceName ]`: The name of private link resource. + - `[ProviderNamespace ]`: Namespace of the provider of the topic. + - `[ResourceGroupName ]`: The name of the resource group within the partners subscription. + - `[ResourceName ]`: Name of the resource. + - `[ResourceTypeName ]`: Name of the resource type. + - `[Scope ]`: The scope of the event subscription. The scope can be a subscription, or a resource group, or a top level resource belonging to a resource provider namespace, or an EventGrid topic. For example, use '/subscriptions/{subscriptionId}/' for a subscription, '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}' for a resource group, and '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}' for a resource, and '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.EventGrid/topics/{topicName}' for an EventGrid topic. + - `[SubscriptionId ]`: Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription ID forms part of the URI for every service call. + - `[SystemTopicName ]`: Name of the system topic. + - `[TopicName ]`: Name of the domain topic. + - `[TopicTypeName ]`: Name of the topic type. + - `[VerifiedPartnerName ]`: Name of the verified partner. + +## RELATED LINKS + diff --git a/swaggerci/eventgrid/docs/Update-AzEventGridTopic.md b/swaggerci/eventgrid/docs/Update-AzEventGridTopic.md new file mode 100644 index 000000000000..878a33011fc4 --- /dev/null +++ b/swaggerci/eventgrid/docs/Update-AzEventGridTopic.md @@ -0,0 +1,429 @@ +--- +external help file: +Module Name: Az.EventGrid +online version: https://docs.microsoft.com/en-us/powershell/module/az.eventgrid/update-azeventgridtopic +schema: 2.0.0 +--- + +# Update-AzEventGridTopic + +## SYNOPSIS +Asynchronously updates a topic with the specified parameters. + +## SYNTAX + +### UpdateExpanded (Default) +``` +Update-AzEventGridTopic -Name -ResourceGroupName [-SubscriptionId ] + [-DataResidencyBoundary ] [-DisableLocalAuth] [-IdentityPrincipalId ] + [-IdentityTenantId ] [-IdentityType ] [-IdentityUserAssignedIdentity ] + [-InboundIPRule ] [-PublicNetworkAccess ] [-SkuName ] + [-Tag ] [-DefaultProfile ] [-AsJob] [-NoWait] [-PassThru] [-Confirm] [-WhatIf] + [] +``` + +### UpdateViaIdentityExpanded +``` +Update-AzEventGridTopic -InputObject [-DataResidencyBoundary ] + [-DisableLocalAuth] [-IdentityPrincipalId ] [-IdentityTenantId ] + [-IdentityType ] [-IdentityUserAssignedIdentity ] + [-InboundIPRule ] [-PublicNetworkAccess ] [-SkuName ] + [-Tag ] [-DefaultProfile ] [-AsJob] [-NoWait] [-PassThru] [-Confirm] [-WhatIf] + [] +``` + +## DESCRIPTION +Asynchronously updates a topic with the specified parameters. + +## EXAMPLES + +### Example 1: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +## PARAMETERS + +### -AsJob +Run the command as a job + +```yaml +Type: System.Management.Automation.SwitchParameter +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -DataResidencyBoundary +The data residency boundary for the topic. + +```yaml +Type: Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.DataResidencyBoundary +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 +``` + +### -DisableLocalAuth +This boolean is used to enable or disable local auth. +Default value is false. +When the property is set to true, only AAD token will be used to authenticate if user is allowed to publish to the topic. + +```yaml +Type: System.Management.Automation.SwitchParameter +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -IdentityPrincipalId +The principal ID of resource identity. + +```yaml +Type: System.String +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -IdentityTenantId +The tenant ID of resource. + +```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 type of managed identity used. +The type 'SystemAssigned, UserAssigned' includes both an implicitly created identity and a set of user-assigned identities. +The type 'None' will remove any identity. + +```yaml +Type: Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.IdentityType +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -IdentityUserAssignedIdentity +The list of user identities associated with the resource. +The user identity dictionary key references will be ARM resource ids in the form:'/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ManagedIdentity/userAssignedIdentities/{identityName}'.This property is currently not used and reserved for future usage. + +```yaml +Type: System.Collections.Hashtable +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -InboundIPRule +This can be used to restrict traffic from specific IPs instead of all IPs. +Note: These are considered only if PublicNetworkAccess is enabled. +To construct, see NOTES section for INBOUNDIPRULE properties and create a hash table. + +```yaml +Type: Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IInboundIPRule[] +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.EventGrid.Models.IEventGridIdentity +Parameter Sets: UpdateViaIdentityExpanded +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: True (ByValue) +Accept wildcard characters: False +``` + +### -Name +Name of the topic. + +```yaml +Type: System.String +Parameter Sets: UpdateExpanded +Aliases: TopicName + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -NoWait +Run the command asynchronously + +```yaml +Type: System.Management.Automation.SwitchParameter +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -PassThru +Returns true when the command succeeds + +```yaml +Type: System.Management.Automation.SwitchParameter +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -PublicNetworkAccess +This determines if traffic is allowed over public network. +By default it is enabled. +You can further restrict to specific IPs by configuring \ + +```yaml +Type: Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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 within the user's subscription. + +```yaml +Type: System.String +Parameter Sets: UpdateExpanded +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -SkuName +The Sku name of the resource. +The possible values are: Basic or Premium. + +```yaml +Type: Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.Sku +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -SubscriptionId +Subscription credentials that uniquely identify a Microsoft Azure subscription. +The subscription ID forms part of the URI for every service call. + +```yaml +Type: System.String +Parameter Sets: UpdateExpanded +Aliases: + +Required: False +Position: Named +Default value: (Get-AzContext).Subscription.Id +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -Tag +Tags of the Topic resource. + +```yaml +Type: System.Collections.Hashtable +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -Confirm +Prompts you for confirmation before running the cmdlet. + +```yaml +Type: System.Management.Automation.SwitchParameter +Parameter Sets: (All) +Aliases: cf + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -WhatIf +Shows what would happen if the cmdlet runs. +The cmdlet is not run. + +```yaml +Type: System.Management.Automation.SwitchParameter +Parameter Sets: (All) +Aliases: wi + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### CommonParameters +This cmdlet supports the common parameters: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutVariable, -OutBuffer, -PipelineVariable, -Verbose, -WarningAction, and -WarningVariable. For more information, see [about_CommonParameters](http://go.microsoft.com/fwlink/?LinkID=113216). + +## INPUTS + +### Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.IEventGridIdentity + +## 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. + + +INBOUNDIPRULE : This can be used to restrict traffic from specific IPs instead of all IPs. Note: These are considered only if PublicNetworkAccess is enabled. + - `[Action ]`: Action to perform based on the match or no match of the IpMask. + - `[IPMask ]`: IP Address in CIDR notation e.g., 10.0.0.0/8. + +INPUTOBJECT : Identity Parameter + - `[ChannelName ]`: Name of the channel. + - `[DomainName ]`: Name of the domain. + - `[DomainTopicName ]`: Name of the topic. + - `[EventChannelName ]`: Name of the event channel. + - `[EventSubscriptionName ]`: Name of the event subscription. + - `[Id ]`: Resource identity path + - `[Location ]`: Name of the location. + - `[ParentName ]`: The name of the parent resource (namely, either, the topic name, domain name, or partner namespace name). + - `[ParentType ]`: The type of the parent resource. This can be either \'topics\', \'domains\', or \'partnerNamespaces\'. + - `[PartnerDestinationName ]`: Name of the partner destination. + - `[PartnerNamespaceName ]`: Name of the partner namespace. + - `[PartnerRegistrationName ]`: Name of the partner registration. + - `[PartnerTopicName ]`: Name of the partner topic. + - `[PrivateEndpointConnectionName ]`: The name of the private endpoint connection connection. + - `[PrivateLinkResourceName ]`: The name of private link resource. + - `[ProviderNamespace ]`: Namespace of the provider of the topic. + - `[ResourceGroupName ]`: The name of the resource group within the partners subscription. + - `[ResourceName ]`: Name of the resource. + - `[ResourceTypeName ]`: Name of the resource type. + - `[Scope ]`: The scope of the event subscription. The scope can be a subscription, or a resource group, or a top level resource belonging to a resource provider namespace, or an EventGrid topic. For example, use '/subscriptions/{subscriptionId}/' for a subscription, '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}' for a resource group, and '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}' for a resource, and '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.EventGrid/topics/{topicName}' for an EventGrid topic. + - `[SubscriptionId ]`: Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription ID forms part of the URI for every service call. + - `[SystemTopicName ]`: Name of the system topic. + - `[TopicName ]`: Name of the domain topic. + - `[TopicTypeName ]`: Name of the topic type. + - `[VerifiedPartnerName ]`: Name of the verified partner. + +## RELATED LINKS + diff --git a/swaggerci/eventgrid/docs/Update-AzEventGridTopicEventSubscription.md b/swaggerci/eventgrid/docs/Update-AzEventGridTopicEventSubscription.md new file mode 100644 index 000000000000..726df02bc099 --- /dev/null +++ b/swaggerci/eventgrid/docs/Update-AzEventGridTopicEventSubscription.md @@ -0,0 +1,558 @@ +--- +external help file: +Module Name: Az.EventGrid +online version: https://docs.microsoft.com/en-us/powershell/module/az.eventgrid/update-azeventgridtopiceventsubscription +schema: 2.0.0 +--- + +# Update-AzEventGridTopicEventSubscription + +## SYNOPSIS +Update an existing event subscription for a topic. + +## SYNTAX + +### UpdateExpanded (Default) +``` +Update-AzEventGridTopicEventSubscription -EventSubscriptionName -ResourceGroupName + -TopicName [-SubscriptionId ] + [-DeadLetterWithResourceIdentityType ] + [-DeadLetterWithResourceIdentityUserAssignedIdentity ] + [-DeliveryWithResourceIdentityDestinationEndpointType ] + [-DeliveryWithResourceIdentityType ] + [-DeliveryWithResourceIdentityUserAssignedIdentity ] [-EndpointType ] + [-EventDeliverySchema ] [-ExpirationTimeUtc ] + [-FilterAdvancedFilter ] [-FilterEnableAdvancedFilteringOnArray] + [-FilterIncludedEventType ] [-FilterIsSubjectCaseSensitive] [-FilterSubjectBeginsWith ] + [-FilterSubjectEndsWith ] [-Label ] [-RetryPolicyEventTimeToLiveInMinute ] + [-RetryPolicyMaxDeliveryAttempt ] [-DefaultProfile ] [-AsJob] [-NoWait] [-PassThru] + [-Confirm] [-WhatIf] [] +``` + +### UpdateViaIdentityExpanded +``` +Update-AzEventGridTopicEventSubscription -InputObject + [-DeadLetterWithResourceIdentityType ] + [-DeadLetterWithResourceIdentityUserAssignedIdentity ] + [-DeliveryWithResourceIdentityDestinationEndpointType ] + [-DeliveryWithResourceIdentityType ] + [-DeliveryWithResourceIdentityUserAssignedIdentity ] [-EndpointType ] + [-EventDeliverySchema ] [-ExpirationTimeUtc ] + [-FilterAdvancedFilter ] [-FilterEnableAdvancedFilteringOnArray] + [-FilterIncludedEventType ] [-FilterIsSubjectCaseSensitive] [-FilterSubjectBeginsWith ] + [-FilterSubjectEndsWith ] [-Label ] [-RetryPolicyEventTimeToLiveInMinute ] + [-RetryPolicyMaxDeliveryAttempt ] [-DefaultProfile ] [-AsJob] [-NoWait] [-PassThru] + [-Confirm] [-WhatIf] [] +``` + +## DESCRIPTION +Update an existing event subscription for a topic. + +## EXAMPLES + +### Example 1: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +## PARAMETERS + +### -AsJob +Run the command as a job + +```yaml +Type: System.Management.Automation.SwitchParameter +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -DeadLetterWithResourceIdentityType +The type of managed identity used. +The type 'SystemAssigned, UserAssigned' includes both an implicitly created identity and a set of user-assigned identities. +The type 'None' will remove any identity. + +```yaml +Type: Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EventSubscriptionIdentityType +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -DeadLetterWithResourceIdentityUserAssignedIdentity +The user identity associated with the resource. + +```yaml +Type: System.String +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -DefaultProfile +The credentials, account, tenant, and subscription used for communication with Azure. + +```yaml +Type: System.Management.Automation.PSObject +Parameter Sets: (All) +Aliases: AzureRMContext, AzureCredential + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -DeliveryWithResourceIdentityDestinationEndpointType +Type of the endpoint for the event subscription destination. + +```yaml +Type: Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EndpointType +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -DeliveryWithResourceIdentityType +The type of managed identity used. +The type 'SystemAssigned, UserAssigned' includes both an implicitly created identity and a set of user-assigned identities. +The type 'None' will remove any identity. + +```yaml +Type: Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EventSubscriptionIdentityType +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -DeliveryWithResourceIdentityUserAssignedIdentity +The user identity associated with the resource. + +```yaml +Type: System.String +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -EndpointType +Type of the endpoint for the event subscription destination. + +```yaml +Type: Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EndpointType +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -EventDeliverySchema +The event delivery schema for the event subscription. + +```yaml +Type: Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EventDeliverySchema +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -EventSubscriptionName +Name of the event subscription to be updated. + +```yaml +Type: System.String +Parameter Sets: UpdateExpanded +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -ExpirationTimeUtc +Information about the expiration time for the event subscription. + +```yaml +Type: System.DateTime +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -FilterAdvancedFilter +An array of advanced filters that are used for filtering event subscriptions. +To construct, see NOTES section for FILTERADVANCEDFILTER properties and create a hash table. + +```yaml +Type: Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IAdvancedFilter[] +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -FilterEnableAdvancedFilteringOnArray +Allows advanced filters to be evaluated against an array of values instead of expecting a singular value. + +```yaml +Type: System.Management.Automation.SwitchParameter +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -FilterIncludedEventType +A list of applicable event types that need to be part of the event subscription. +If it is desired to subscribe to all default event types, set the IncludedEventTypes to null. + +```yaml +Type: System.String[] +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -FilterIsSubjectCaseSensitive +Specifies if the SubjectBeginsWith and SubjectEndsWith properties of the filtershould be compared in a case sensitive manner. + +```yaml +Type: System.Management.Automation.SwitchParameter +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -FilterSubjectBeginsWith +An optional string to filter events for an event subscription based on a resource path prefix.The format of this depends on the publisher of the events.Wildcard characters are not supported in this path. + +```yaml +Type: System.String +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -FilterSubjectEndsWith +An optional string to filter events for an event subscription based on a resource path suffix.Wildcard characters are not supported in this path. + +```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.EventGrid.Models.IEventGridIdentity +Parameter Sets: UpdateViaIdentityExpanded +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: True (ByValue) +Accept wildcard characters: False +``` + +### -Label +List of user defined labels. + +```yaml +Type: System.String[] +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -NoWait +Run the command asynchronously + +```yaml +Type: System.Management.Automation.SwitchParameter +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -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 within the user's subscription. + +```yaml +Type: System.String +Parameter Sets: UpdateExpanded +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -RetryPolicyEventTimeToLiveInMinute +Time To Live (in minutes) for events. + +```yaml +Type: System.Int32 +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -RetryPolicyMaxDeliveryAttempt +Maximum number of delivery retry attempts for events. + +```yaml +Type: System.Int32 +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -SubscriptionId +Subscription credentials that uniquely identify a Microsoft Azure subscription. +The subscription ID forms part of the URI for every service call. + +```yaml +Type: System.String +Parameter Sets: UpdateExpanded +Aliases: + +Required: False +Position: Named +Default value: (Get-AzContext).Subscription.Id +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -TopicName +Name of the domain. + +```yaml +Type: System.String +Parameter Sets: UpdateExpanded +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.EventGrid.Models.IEventGridIdentity + +## 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. + + +FILTERADVANCEDFILTER : An array of advanced filters that are used for filtering event subscriptions. + - `OperatorType `: The operator type used for filtering, e.g., NumberIn, StringContains, BoolEquals and others. + - `[Key ]`: The field/property in the event based on which you want to filter. + +INPUTOBJECT : Identity Parameter + - `[ChannelName ]`: Name of the channel. + - `[DomainName ]`: Name of the domain. + - `[DomainTopicName ]`: Name of the topic. + - `[EventChannelName ]`: Name of the event channel. + - `[EventSubscriptionName ]`: Name of the event subscription. + - `[Id ]`: Resource identity path + - `[Location ]`: Name of the location. + - `[ParentName ]`: The name of the parent resource (namely, either, the topic name, domain name, or partner namespace name). + - `[ParentType ]`: The type of the parent resource. This can be either \'topics\', \'domains\', or \'partnerNamespaces\'. + - `[PartnerDestinationName ]`: Name of the partner destination. + - `[PartnerNamespaceName ]`: Name of the partner namespace. + - `[PartnerRegistrationName ]`: Name of the partner registration. + - `[PartnerTopicName ]`: Name of the partner topic. + - `[PrivateEndpointConnectionName ]`: The name of the private endpoint connection connection. + - `[PrivateLinkResourceName ]`: The name of private link resource. + - `[ProviderNamespace ]`: Namespace of the provider of the topic. + - `[ResourceGroupName ]`: The name of the resource group within the partners subscription. + - `[ResourceName ]`: Name of the resource. + - `[ResourceTypeName ]`: Name of the resource type. + - `[Scope ]`: The scope of the event subscription. The scope can be a subscription, or a resource group, or a top level resource belonging to a resource provider namespace, or an EventGrid topic. For example, use '/subscriptions/{subscriptionId}/' for a subscription, '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}' for a resource group, and '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}' for a resource, and '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.EventGrid/topics/{topicName}' for an EventGrid topic. + - `[SubscriptionId ]`: Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription ID forms part of the URI for every service call. + - `[SystemTopicName ]`: Name of the system topic. + - `[TopicName ]`: Name of the domain topic. + - `[TopicTypeName ]`: Name of the topic type. + - `[VerifiedPartnerName ]`: Name of the verified partner. + +## RELATED LINKS + diff --git a/swaggerci/eventgrid/examples/Get-AzEventGridChannel.md b/swaggerci/eventgrid/examples/Get-AzEventGridChannel.md new file mode 100644 index 000000000000..6ee1a83db970 --- /dev/null +++ b/swaggerci/eventgrid/examples/Get-AzEventGridChannel.md @@ -0,0 +1,22 @@ +### Example 1: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + diff --git a/swaggerci/eventgrid/examples/Get-AzEventGridChannelFullUrl.md b/swaggerci/eventgrid/examples/Get-AzEventGridChannelFullUrl.md new file mode 100644 index 000000000000..6ee1a83db970 --- /dev/null +++ b/swaggerci/eventgrid/examples/Get-AzEventGridChannelFullUrl.md @@ -0,0 +1,22 @@ +### Example 1: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + diff --git a/swaggerci/eventgrid/examples/Get-AzEventGridDomain.md b/swaggerci/eventgrid/examples/Get-AzEventGridDomain.md new file mode 100644 index 000000000000..6ee1a83db970 --- /dev/null +++ b/swaggerci/eventgrid/examples/Get-AzEventGridDomain.md @@ -0,0 +1,22 @@ +### Example 1: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + diff --git a/swaggerci/eventgrid/examples/Get-AzEventGridDomainEventSubscription.md b/swaggerci/eventgrid/examples/Get-AzEventGridDomainEventSubscription.md new file mode 100644 index 000000000000..6ee1a83db970 --- /dev/null +++ b/swaggerci/eventgrid/examples/Get-AzEventGridDomainEventSubscription.md @@ -0,0 +1,22 @@ +### Example 1: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + diff --git a/swaggerci/eventgrid/examples/Get-AzEventGridDomainEventSubscriptionDeliveryAttribute.md b/swaggerci/eventgrid/examples/Get-AzEventGridDomainEventSubscriptionDeliveryAttribute.md new file mode 100644 index 000000000000..6ee1a83db970 --- /dev/null +++ b/swaggerci/eventgrid/examples/Get-AzEventGridDomainEventSubscriptionDeliveryAttribute.md @@ -0,0 +1,22 @@ +### Example 1: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + diff --git a/swaggerci/eventgrid/examples/Get-AzEventGridDomainEventSubscriptionFullUrl.md b/swaggerci/eventgrid/examples/Get-AzEventGridDomainEventSubscriptionFullUrl.md new file mode 100644 index 000000000000..6ee1a83db970 --- /dev/null +++ b/swaggerci/eventgrid/examples/Get-AzEventGridDomainEventSubscriptionFullUrl.md @@ -0,0 +1,22 @@ +### Example 1: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + diff --git a/swaggerci/eventgrid/examples/Get-AzEventGridDomainSharedAccessKey.md b/swaggerci/eventgrid/examples/Get-AzEventGridDomainSharedAccessKey.md new file mode 100644 index 000000000000..6ee1a83db970 --- /dev/null +++ b/swaggerci/eventgrid/examples/Get-AzEventGridDomainSharedAccessKey.md @@ -0,0 +1,22 @@ +### Example 1: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + diff --git a/swaggerci/eventgrid/examples/Get-AzEventGridDomainTopic.md b/swaggerci/eventgrid/examples/Get-AzEventGridDomainTopic.md new file mode 100644 index 000000000000..6ee1a83db970 --- /dev/null +++ b/swaggerci/eventgrid/examples/Get-AzEventGridDomainTopic.md @@ -0,0 +1,22 @@ +### Example 1: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + diff --git a/swaggerci/eventgrid/examples/Get-AzEventGridDomainTopicEventSubscription.md b/swaggerci/eventgrid/examples/Get-AzEventGridDomainTopicEventSubscription.md new file mode 100644 index 000000000000..6ee1a83db970 --- /dev/null +++ b/swaggerci/eventgrid/examples/Get-AzEventGridDomainTopicEventSubscription.md @@ -0,0 +1,22 @@ +### Example 1: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + diff --git a/swaggerci/eventgrid/examples/Get-AzEventGridDomainTopicEventSubscriptionDeliveryAttribute.md b/swaggerci/eventgrid/examples/Get-AzEventGridDomainTopicEventSubscriptionDeliveryAttribute.md new file mode 100644 index 000000000000..6ee1a83db970 --- /dev/null +++ b/swaggerci/eventgrid/examples/Get-AzEventGridDomainTopicEventSubscriptionDeliveryAttribute.md @@ -0,0 +1,22 @@ +### Example 1: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + diff --git a/swaggerci/eventgrid/examples/Get-AzEventGridDomainTopicEventSubscriptionFullUrl.md b/swaggerci/eventgrid/examples/Get-AzEventGridDomainTopicEventSubscriptionFullUrl.md new file mode 100644 index 000000000000..6ee1a83db970 --- /dev/null +++ b/swaggerci/eventgrid/examples/Get-AzEventGridDomainTopicEventSubscriptionFullUrl.md @@ -0,0 +1,22 @@ +### Example 1: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + diff --git a/swaggerci/eventgrid/examples/Get-AzEventGridEventChannel.md b/swaggerci/eventgrid/examples/Get-AzEventGridEventChannel.md new file mode 100644 index 000000000000..6ee1a83db970 --- /dev/null +++ b/swaggerci/eventgrid/examples/Get-AzEventGridEventChannel.md @@ -0,0 +1,22 @@ +### Example 1: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + diff --git a/swaggerci/eventgrid/examples/Get-AzEventGridEventSubscription.md b/swaggerci/eventgrid/examples/Get-AzEventGridEventSubscription.md new file mode 100644 index 000000000000..6ee1a83db970 --- /dev/null +++ b/swaggerci/eventgrid/examples/Get-AzEventGridEventSubscription.md @@ -0,0 +1,22 @@ +### Example 1: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + diff --git a/swaggerci/eventgrid/examples/Get-AzEventGridEventSubscriptionDeliveryAttribute.md b/swaggerci/eventgrid/examples/Get-AzEventGridEventSubscriptionDeliveryAttribute.md new file mode 100644 index 000000000000..6ee1a83db970 --- /dev/null +++ b/swaggerci/eventgrid/examples/Get-AzEventGridEventSubscriptionDeliveryAttribute.md @@ -0,0 +1,22 @@ +### Example 1: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + diff --git a/swaggerci/eventgrid/examples/Get-AzEventGridEventSubscriptionFullUrl.md b/swaggerci/eventgrid/examples/Get-AzEventGridEventSubscriptionFullUrl.md new file mode 100644 index 000000000000..6ee1a83db970 --- /dev/null +++ b/swaggerci/eventgrid/examples/Get-AzEventGridEventSubscriptionFullUrl.md @@ -0,0 +1,22 @@ +### Example 1: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + diff --git a/swaggerci/eventgrid/examples/Get-AzEventGridEventSubscriptionGlobal.md b/swaggerci/eventgrid/examples/Get-AzEventGridEventSubscriptionGlobal.md new file mode 100644 index 000000000000..6ee1a83db970 --- /dev/null +++ b/swaggerci/eventgrid/examples/Get-AzEventGridEventSubscriptionGlobal.md @@ -0,0 +1,22 @@ +### Example 1: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + diff --git a/swaggerci/eventgrid/examples/Get-AzEventGridEventSubscriptionRegional.md b/swaggerci/eventgrid/examples/Get-AzEventGridEventSubscriptionRegional.md new file mode 100644 index 000000000000..6ee1a83db970 --- /dev/null +++ b/swaggerci/eventgrid/examples/Get-AzEventGridEventSubscriptionRegional.md @@ -0,0 +1,22 @@ +### Example 1: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + diff --git a/swaggerci/eventgrid/examples/Get-AzEventGridExtensionTopic.md b/swaggerci/eventgrid/examples/Get-AzEventGridExtensionTopic.md new file mode 100644 index 000000000000..6ee1a83db970 --- /dev/null +++ b/swaggerci/eventgrid/examples/Get-AzEventGridExtensionTopic.md @@ -0,0 +1,22 @@ +### Example 1: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + diff --git a/swaggerci/eventgrid/examples/Get-AzEventGridPartnerConfiguration.md b/swaggerci/eventgrid/examples/Get-AzEventGridPartnerConfiguration.md new file mode 100644 index 000000000000..6ee1a83db970 --- /dev/null +++ b/swaggerci/eventgrid/examples/Get-AzEventGridPartnerConfiguration.md @@ -0,0 +1,22 @@ +### Example 1: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + diff --git a/swaggerci/eventgrid/examples/Get-AzEventGridPartnerDestination.md b/swaggerci/eventgrid/examples/Get-AzEventGridPartnerDestination.md new file mode 100644 index 000000000000..6ee1a83db970 --- /dev/null +++ b/swaggerci/eventgrid/examples/Get-AzEventGridPartnerDestination.md @@ -0,0 +1,22 @@ +### Example 1: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + diff --git a/swaggerci/eventgrid/examples/Get-AzEventGridPartnerNamespace.md b/swaggerci/eventgrid/examples/Get-AzEventGridPartnerNamespace.md new file mode 100644 index 000000000000..6ee1a83db970 --- /dev/null +++ b/swaggerci/eventgrid/examples/Get-AzEventGridPartnerNamespace.md @@ -0,0 +1,22 @@ +### Example 1: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + diff --git a/swaggerci/eventgrid/examples/Get-AzEventGridPartnerNamespaceSharedAccessKey.md b/swaggerci/eventgrid/examples/Get-AzEventGridPartnerNamespaceSharedAccessKey.md new file mode 100644 index 000000000000..6ee1a83db970 --- /dev/null +++ b/swaggerci/eventgrid/examples/Get-AzEventGridPartnerNamespaceSharedAccessKey.md @@ -0,0 +1,22 @@ +### Example 1: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + diff --git a/swaggerci/eventgrid/examples/Get-AzEventGridPartnerRegistration.md b/swaggerci/eventgrid/examples/Get-AzEventGridPartnerRegistration.md new file mode 100644 index 000000000000..6ee1a83db970 --- /dev/null +++ b/swaggerci/eventgrid/examples/Get-AzEventGridPartnerRegistration.md @@ -0,0 +1,22 @@ +### Example 1: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + diff --git a/swaggerci/eventgrid/examples/Get-AzEventGridPartnerTopic.md b/swaggerci/eventgrid/examples/Get-AzEventGridPartnerTopic.md new file mode 100644 index 000000000000..6ee1a83db970 --- /dev/null +++ b/swaggerci/eventgrid/examples/Get-AzEventGridPartnerTopic.md @@ -0,0 +1,22 @@ +### Example 1: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + diff --git a/swaggerci/eventgrid/examples/Get-AzEventGridPartnerTopicEventSubscription.md b/swaggerci/eventgrid/examples/Get-AzEventGridPartnerTopicEventSubscription.md new file mode 100644 index 000000000000..6ee1a83db970 --- /dev/null +++ b/swaggerci/eventgrid/examples/Get-AzEventGridPartnerTopicEventSubscription.md @@ -0,0 +1,22 @@ +### Example 1: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + diff --git a/swaggerci/eventgrid/examples/Get-AzEventGridPartnerTopicEventSubscriptionDeliveryAttribute.md b/swaggerci/eventgrid/examples/Get-AzEventGridPartnerTopicEventSubscriptionDeliveryAttribute.md new file mode 100644 index 000000000000..6ee1a83db970 --- /dev/null +++ b/swaggerci/eventgrid/examples/Get-AzEventGridPartnerTopicEventSubscriptionDeliveryAttribute.md @@ -0,0 +1,22 @@ +### Example 1: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + diff --git a/swaggerci/eventgrid/examples/Get-AzEventGridPartnerTopicEventSubscriptionFullUrl.md b/swaggerci/eventgrid/examples/Get-AzEventGridPartnerTopicEventSubscriptionFullUrl.md new file mode 100644 index 000000000000..6ee1a83db970 --- /dev/null +++ b/swaggerci/eventgrid/examples/Get-AzEventGridPartnerTopicEventSubscriptionFullUrl.md @@ -0,0 +1,22 @@ +### Example 1: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + diff --git a/swaggerci/eventgrid/examples/Get-AzEventGridPrivateEndpointConnection.md b/swaggerci/eventgrid/examples/Get-AzEventGridPrivateEndpointConnection.md new file mode 100644 index 000000000000..6ee1a83db970 --- /dev/null +++ b/swaggerci/eventgrid/examples/Get-AzEventGridPrivateEndpointConnection.md @@ -0,0 +1,22 @@ +### Example 1: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + diff --git a/swaggerci/eventgrid/examples/Get-AzEventGridPrivateLinkResource.md b/swaggerci/eventgrid/examples/Get-AzEventGridPrivateLinkResource.md new file mode 100644 index 000000000000..6ee1a83db970 --- /dev/null +++ b/swaggerci/eventgrid/examples/Get-AzEventGridPrivateLinkResource.md @@ -0,0 +1,22 @@ +### Example 1: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + diff --git a/swaggerci/eventgrid/examples/Get-AzEventGridSystemTopic.md b/swaggerci/eventgrid/examples/Get-AzEventGridSystemTopic.md new file mode 100644 index 000000000000..6ee1a83db970 --- /dev/null +++ b/swaggerci/eventgrid/examples/Get-AzEventGridSystemTopic.md @@ -0,0 +1,22 @@ +### Example 1: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + diff --git a/swaggerci/eventgrid/examples/Get-AzEventGridSystemTopicEventSubscription.md b/swaggerci/eventgrid/examples/Get-AzEventGridSystemTopicEventSubscription.md new file mode 100644 index 000000000000..6ee1a83db970 --- /dev/null +++ b/swaggerci/eventgrid/examples/Get-AzEventGridSystemTopicEventSubscription.md @@ -0,0 +1,22 @@ +### Example 1: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + diff --git a/swaggerci/eventgrid/examples/Get-AzEventGridSystemTopicEventSubscriptionDeliveryAttribute.md b/swaggerci/eventgrid/examples/Get-AzEventGridSystemTopicEventSubscriptionDeliveryAttribute.md new file mode 100644 index 000000000000..6ee1a83db970 --- /dev/null +++ b/swaggerci/eventgrid/examples/Get-AzEventGridSystemTopicEventSubscriptionDeliveryAttribute.md @@ -0,0 +1,22 @@ +### Example 1: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + diff --git a/swaggerci/eventgrid/examples/Get-AzEventGridSystemTopicEventSubscriptionFullUrl.md b/swaggerci/eventgrid/examples/Get-AzEventGridSystemTopicEventSubscriptionFullUrl.md new file mode 100644 index 000000000000..6ee1a83db970 --- /dev/null +++ b/swaggerci/eventgrid/examples/Get-AzEventGridSystemTopicEventSubscriptionFullUrl.md @@ -0,0 +1,22 @@ +### Example 1: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + diff --git a/swaggerci/eventgrid/examples/Get-AzEventGridTopic.md b/swaggerci/eventgrid/examples/Get-AzEventGridTopic.md new file mode 100644 index 000000000000..6ee1a83db970 --- /dev/null +++ b/swaggerci/eventgrid/examples/Get-AzEventGridTopic.md @@ -0,0 +1,22 @@ +### Example 1: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + diff --git a/swaggerci/eventgrid/examples/Get-AzEventGridTopicEventSubscription.md b/swaggerci/eventgrid/examples/Get-AzEventGridTopicEventSubscription.md new file mode 100644 index 000000000000..6ee1a83db970 --- /dev/null +++ b/swaggerci/eventgrid/examples/Get-AzEventGridTopicEventSubscription.md @@ -0,0 +1,22 @@ +### Example 1: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + diff --git a/swaggerci/eventgrid/examples/Get-AzEventGridTopicEventSubscriptionDeliveryAttribute.md b/swaggerci/eventgrid/examples/Get-AzEventGridTopicEventSubscriptionDeliveryAttribute.md new file mode 100644 index 000000000000..6ee1a83db970 --- /dev/null +++ b/swaggerci/eventgrid/examples/Get-AzEventGridTopicEventSubscriptionDeliveryAttribute.md @@ -0,0 +1,22 @@ +### Example 1: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + diff --git a/swaggerci/eventgrid/examples/Get-AzEventGridTopicEventSubscriptionFullUrl.md b/swaggerci/eventgrid/examples/Get-AzEventGridTopicEventSubscriptionFullUrl.md new file mode 100644 index 000000000000..6ee1a83db970 --- /dev/null +++ b/swaggerci/eventgrid/examples/Get-AzEventGridTopicEventSubscriptionFullUrl.md @@ -0,0 +1,22 @@ +### Example 1: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + diff --git a/swaggerci/eventgrid/examples/Get-AzEventGridTopicEventType.md b/swaggerci/eventgrid/examples/Get-AzEventGridTopicEventType.md new file mode 100644 index 000000000000..6ee1a83db970 --- /dev/null +++ b/swaggerci/eventgrid/examples/Get-AzEventGridTopicEventType.md @@ -0,0 +1,22 @@ +### Example 1: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + diff --git a/swaggerci/eventgrid/examples/Get-AzEventGridTopicSharedAccessKey.md b/swaggerci/eventgrid/examples/Get-AzEventGridTopicSharedAccessKey.md new file mode 100644 index 000000000000..6ee1a83db970 --- /dev/null +++ b/swaggerci/eventgrid/examples/Get-AzEventGridTopicSharedAccessKey.md @@ -0,0 +1,22 @@ +### Example 1: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + diff --git a/swaggerci/eventgrid/examples/Get-AzEventGridTopicType.md b/swaggerci/eventgrid/examples/Get-AzEventGridTopicType.md new file mode 100644 index 000000000000..6ee1a83db970 --- /dev/null +++ b/swaggerci/eventgrid/examples/Get-AzEventGridTopicType.md @@ -0,0 +1,22 @@ +### Example 1: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + diff --git a/swaggerci/eventgrid/examples/Get-AzEventGridTopicTypeEventType.md b/swaggerci/eventgrid/examples/Get-AzEventGridTopicTypeEventType.md new file mode 100644 index 000000000000..6ee1a83db970 --- /dev/null +++ b/swaggerci/eventgrid/examples/Get-AzEventGridTopicTypeEventType.md @@ -0,0 +1,22 @@ +### Example 1: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + diff --git a/swaggerci/eventgrid/examples/Get-AzEventGridVerifiedPartner.md b/swaggerci/eventgrid/examples/Get-AzEventGridVerifiedPartner.md new file mode 100644 index 000000000000..6ee1a83db970 --- /dev/null +++ b/swaggerci/eventgrid/examples/Get-AzEventGridVerifiedPartner.md @@ -0,0 +1,22 @@ +### Example 1: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + diff --git a/swaggerci/eventgrid/examples/Grant-AzEventGridPartnerConfigurationPartner.md b/swaggerci/eventgrid/examples/Grant-AzEventGridPartnerConfigurationPartner.md new file mode 100644 index 000000000000..6ee1a83db970 --- /dev/null +++ b/swaggerci/eventgrid/examples/Grant-AzEventGridPartnerConfigurationPartner.md @@ -0,0 +1,22 @@ +### Example 1: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + diff --git a/swaggerci/eventgrid/examples/Initialize-AzEventGridPartnerDestination.md b/swaggerci/eventgrid/examples/Initialize-AzEventGridPartnerDestination.md new file mode 100644 index 000000000000..6ee1a83db970 --- /dev/null +++ b/swaggerci/eventgrid/examples/Initialize-AzEventGridPartnerDestination.md @@ -0,0 +1,22 @@ +### Example 1: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + diff --git a/swaggerci/eventgrid/examples/Initialize-AzEventGridPartnerTopic.md b/swaggerci/eventgrid/examples/Initialize-AzEventGridPartnerTopic.md new file mode 100644 index 000000000000..6ee1a83db970 --- /dev/null +++ b/swaggerci/eventgrid/examples/Initialize-AzEventGridPartnerTopic.md @@ -0,0 +1,22 @@ +### Example 1: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + diff --git a/swaggerci/eventgrid/examples/Invoke-AzEventGridDeactivatePartnerTopic.md b/swaggerci/eventgrid/examples/Invoke-AzEventGridDeactivatePartnerTopic.md new file mode 100644 index 000000000000..6ee1a83db970 --- /dev/null +++ b/swaggerci/eventgrid/examples/Invoke-AzEventGridDeactivatePartnerTopic.md @@ -0,0 +1,22 @@ +### Example 1: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + diff --git a/swaggerci/eventgrid/examples/Invoke-AzEventGridPartnerConfigurationUnauthorize.md b/swaggerci/eventgrid/examples/Invoke-AzEventGridPartnerConfigurationUnauthorize.md new file mode 100644 index 000000000000..6ee1a83db970 --- /dev/null +++ b/swaggerci/eventgrid/examples/Invoke-AzEventGridPartnerConfigurationUnauthorize.md @@ -0,0 +1,22 @@ +### Example 1: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + diff --git a/swaggerci/eventgrid/examples/New-AzEventGridChannel.md b/swaggerci/eventgrid/examples/New-AzEventGridChannel.md new file mode 100644 index 000000000000..6ee1a83db970 --- /dev/null +++ b/swaggerci/eventgrid/examples/New-AzEventGridChannel.md @@ -0,0 +1,22 @@ +### Example 1: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + diff --git a/swaggerci/eventgrid/examples/New-AzEventGridDomain.md b/swaggerci/eventgrid/examples/New-AzEventGridDomain.md new file mode 100644 index 000000000000..6ee1a83db970 --- /dev/null +++ b/swaggerci/eventgrid/examples/New-AzEventGridDomain.md @@ -0,0 +1,22 @@ +### Example 1: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + diff --git a/swaggerci/eventgrid/examples/New-AzEventGridDomainEventSubscription.md b/swaggerci/eventgrid/examples/New-AzEventGridDomainEventSubscription.md new file mode 100644 index 000000000000..6ee1a83db970 --- /dev/null +++ b/swaggerci/eventgrid/examples/New-AzEventGridDomainEventSubscription.md @@ -0,0 +1,22 @@ +### Example 1: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + diff --git a/swaggerci/eventgrid/examples/New-AzEventGridDomainKey.md b/swaggerci/eventgrid/examples/New-AzEventGridDomainKey.md new file mode 100644 index 000000000000..6ee1a83db970 --- /dev/null +++ b/swaggerci/eventgrid/examples/New-AzEventGridDomainKey.md @@ -0,0 +1,22 @@ +### Example 1: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + diff --git a/swaggerci/eventgrid/examples/New-AzEventGridDomainTopicEventSubscription.md b/swaggerci/eventgrid/examples/New-AzEventGridDomainTopicEventSubscription.md new file mode 100644 index 000000000000..6ee1a83db970 --- /dev/null +++ b/swaggerci/eventgrid/examples/New-AzEventGridDomainTopicEventSubscription.md @@ -0,0 +1,22 @@ +### Example 1: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + diff --git a/swaggerci/eventgrid/examples/New-AzEventGridEventChannel.md b/swaggerci/eventgrid/examples/New-AzEventGridEventChannel.md new file mode 100644 index 000000000000..6ee1a83db970 --- /dev/null +++ b/swaggerci/eventgrid/examples/New-AzEventGridEventChannel.md @@ -0,0 +1,22 @@ +### Example 1: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + diff --git a/swaggerci/eventgrid/examples/New-AzEventGridEventSubscription.md b/swaggerci/eventgrid/examples/New-AzEventGridEventSubscription.md new file mode 100644 index 000000000000..6ee1a83db970 --- /dev/null +++ b/swaggerci/eventgrid/examples/New-AzEventGridEventSubscription.md @@ -0,0 +1,22 @@ +### Example 1: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + diff --git a/swaggerci/eventgrid/examples/New-AzEventGridPartnerConfiguration.md b/swaggerci/eventgrid/examples/New-AzEventGridPartnerConfiguration.md new file mode 100644 index 000000000000..6ee1a83db970 --- /dev/null +++ b/swaggerci/eventgrid/examples/New-AzEventGridPartnerConfiguration.md @@ -0,0 +1,22 @@ +### Example 1: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + diff --git a/swaggerci/eventgrid/examples/New-AzEventGridPartnerDestination.md b/swaggerci/eventgrid/examples/New-AzEventGridPartnerDestination.md new file mode 100644 index 000000000000..6ee1a83db970 --- /dev/null +++ b/swaggerci/eventgrid/examples/New-AzEventGridPartnerDestination.md @@ -0,0 +1,22 @@ +### Example 1: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + diff --git a/swaggerci/eventgrid/examples/New-AzEventGridPartnerNamespace.md b/swaggerci/eventgrid/examples/New-AzEventGridPartnerNamespace.md new file mode 100644 index 000000000000..6ee1a83db970 --- /dev/null +++ b/swaggerci/eventgrid/examples/New-AzEventGridPartnerNamespace.md @@ -0,0 +1,22 @@ +### Example 1: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + diff --git a/swaggerci/eventgrid/examples/New-AzEventGridPartnerNamespaceKey.md b/swaggerci/eventgrid/examples/New-AzEventGridPartnerNamespaceKey.md new file mode 100644 index 000000000000..6ee1a83db970 --- /dev/null +++ b/swaggerci/eventgrid/examples/New-AzEventGridPartnerNamespaceKey.md @@ -0,0 +1,22 @@ +### Example 1: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + diff --git a/swaggerci/eventgrid/examples/New-AzEventGridPartnerRegistration.md b/swaggerci/eventgrid/examples/New-AzEventGridPartnerRegistration.md new file mode 100644 index 000000000000..6ee1a83db970 --- /dev/null +++ b/swaggerci/eventgrid/examples/New-AzEventGridPartnerRegistration.md @@ -0,0 +1,22 @@ +### Example 1: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + diff --git a/swaggerci/eventgrid/examples/New-AzEventGridPartnerTopic.md b/swaggerci/eventgrid/examples/New-AzEventGridPartnerTopic.md new file mode 100644 index 000000000000..6ee1a83db970 --- /dev/null +++ b/swaggerci/eventgrid/examples/New-AzEventGridPartnerTopic.md @@ -0,0 +1,22 @@ +### Example 1: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + diff --git a/swaggerci/eventgrid/examples/New-AzEventGridPartnerTopicEventSubscription.md b/swaggerci/eventgrid/examples/New-AzEventGridPartnerTopicEventSubscription.md new file mode 100644 index 000000000000..6ee1a83db970 --- /dev/null +++ b/swaggerci/eventgrid/examples/New-AzEventGridPartnerTopicEventSubscription.md @@ -0,0 +1,22 @@ +### Example 1: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + diff --git a/swaggerci/eventgrid/examples/New-AzEventGridSystemTopic.md b/swaggerci/eventgrid/examples/New-AzEventGridSystemTopic.md new file mode 100644 index 000000000000..6ee1a83db970 --- /dev/null +++ b/swaggerci/eventgrid/examples/New-AzEventGridSystemTopic.md @@ -0,0 +1,22 @@ +### Example 1: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + diff --git a/swaggerci/eventgrid/examples/New-AzEventGridSystemTopicEventSubscription.md b/swaggerci/eventgrid/examples/New-AzEventGridSystemTopicEventSubscription.md new file mode 100644 index 000000000000..6ee1a83db970 --- /dev/null +++ b/swaggerci/eventgrid/examples/New-AzEventGridSystemTopicEventSubscription.md @@ -0,0 +1,22 @@ +### Example 1: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + diff --git a/swaggerci/eventgrid/examples/New-AzEventGridTopic.md b/swaggerci/eventgrid/examples/New-AzEventGridTopic.md new file mode 100644 index 000000000000..6ee1a83db970 --- /dev/null +++ b/swaggerci/eventgrid/examples/New-AzEventGridTopic.md @@ -0,0 +1,22 @@ +### Example 1: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + diff --git a/swaggerci/eventgrid/examples/New-AzEventGridTopicEventSubscription.md b/swaggerci/eventgrid/examples/New-AzEventGridTopicEventSubscription.md new file mode 100644 index 000000000000..6ee1a83db970 --- /dev/null +++ b/swaggerci/eventgrid/examples/New-AzEventGridTopicEventSubscription.md @@ -0,0 +1,22 @@ +### Example 1: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + diff --git a/swaggerci/eventgrid/examples/New-AzEventGridTopicKey.md b/swaggerci/eventgrid/examples/New-AzEventGridTopicKey.md new file mode 100644 index 000000000000..6ee1a83db970 --- /dev/null +++ b/swaggerci/eventgrid/examples/New-AzEventGridTopicKey.md @@ -0,0 +1,22 @@ +### Example 1: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + diff --git a/swaggerci/eventgrid/examples/Remove-AzEventGridChannel.md b/swaggerci/eventgrid/examples/Remove-AzEventGridChannel.md new file mode 100644 index 000000000000..6ee1a83db970 --- /dev/null +++ b/swaggerci/eventgrid/examples/Remove-AzEventGridChannel.md @@ -0,0 +1,22 @@ +### Example 1: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + diff --git a/swaggerci/eventgrid/examples/Remove-AzEventGridDomain.md b/swaggerci/eventgrid/examples/Remove-AzEventGridDomain.md new file mode 100644 index 000000000000..6ee1a83db970 --- /dev/null +++ b/swaggerci/eventgrid/examples/Remove-AzEventGridDomain.md @@ -0,0 +1,22 @@ +### Example 1: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + diff --git a/swaggerci/eventgrid/examples/Remove-AzEventGridDomainEventSubscription.md b/swaggerci/eventgrid/examples/Remove-AzEventGridDomainEventSubscription.md new file mode 100644 index 000000000000..6ee1a83db970 --- /dev/null +++ b/swaggerci/eventgrid/examples/Remove-AzEventGridDomainEventSubscription.md @@ -0,0 +1,22 @@ +### Example 1: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + diff --git a/swaggerci/eventgrid/examples/Remove-AzEventGridDomainTopic.md b/swaggerci/eventgrid/examples/Remove-AzEventGridDomainTopic.md new file mode 100644 index 000000000000..6ee1a83db970 --- /dev/null +++ b/swaggerci/eventgrid/examples/Remove-AzEventGridDomainTopic.md @@ -0,0 +1,22 @@ +### Example 1: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + diff --git a/swaggerci/eventgrid/examples/Remove-AzEventGridDomainTopicEventSubscription.md b/swaggerci/eventgrid/examples/Remove-AzEventGridDomainTopicEventSubscription.md new file mode 100644 index 000000000000..6ee1a83db970 --- /dev/null +++ b/swaggerci/eventgrid/examples/Remove-AzEventGridDomainTopicEventSubscription.md @@ -0,0 +1,22 @@ +### Example 1: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + diff --git a/swaggerci/eventgrid/examples/Remove-AzEventGridEventChannel.md b/swaggerci/eventgrid/examples/Remove-AzEventGridEventChannel.md new file mode 100644 index 000000000000..6ee1a83db970 --- /dev/null +++ b/swaggerci/eventgrid/examples/Remove-AzEventGridEventChannel.md @@ -0,0 +1,22 @@ +### Example 1: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + diff --git a/swaggerci/eventgrid/examples/Remove-AzEventGridEventSubscription.md b/swaggerci/eventgrid/examples/Remove-AzEventGridEventSubscription.md new file mode 100644 index 000000000000..6ee1a83db970 --- /dev/null +++ b/swaggerci/eventgrid/examples/Remove-AzEventGridEventSubscription.md @@ -0,0 +1,22 @@ +### Example 1: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + diff --git a/swaggerci/eventgrid/examples/Remove-AzEventGridPartnerConfiguration.md b/swaggerci/eventgrid/examples/Remove-AzEventGridPartnerConfiguration.md new file mode 100644 index 000000000000..6ee1a83db970 --- /dev/null +++ b/swaggerci/eventgrid/examples/Remove-AzEventGridPartnerConfiguration.md @@ -0,0 +1,22 @@ +### Example 1: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + diff --git a/swaggerci/eventgrid/examples/Remove-AzEventGridPartnerDestination.md b/swaggerci/eventgrid/examples/Remove-AzEventGridPartnerDestination.md new file mode 100644 index 000000000000..6ee1a83db970 --- /dev/null +++ b/swaggerci/eventgrid/examples/Remove-AzEventGridPartnerDestination.md @@ -0,0 +1,22 @@ +### Example 1: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + diff --git a/swaggerci/eventgrid/examples/Remove-AzEventGridPartnerNamespace.md b/swaggerci/eventgrid/examples/Remove-AzEventGridPartnerNamespace.md new file mode 100644 index 000000000000..6ee1a83db970 --- /dev/null +++ b/swaggerci/eventgrid/examples/Remove-AzEventGridPartnerNamespace.md @@ -0,0 +1,22 @@ +### Example 1: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + diff --git a/swaggerci/eventgrid/examples/Remove-AzEventGridPartnerRegistration.md b/swaggerci/eventgrid/examples/Remove-AzEventGridPartnerRegistration.md new file mode 100644 index 000000000000..6ee1a83db970 --- /dev/null +++ b/swaggerci/eventgrid/examples/Remove-AzEventGridPartnerRegistration.md @@ -0,0 +1,22 @@ +### Example 1: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + diff --git a/swaggerci/eventgrid/examples/Remove-AzEventGridPartnerTopic.md b/swaggerci/eventgrid/examples/Remove-AzEventGridPartnerTopic.md new file mode 100644 index 000000000000..6ee1a83db970 --- /dev/null +++ b/swaggerci/eventgrid/examples/Remove-AzEventGridPartnerTopic.md @@ -0,0 +1,22 @@ +### Example 1: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + diff --git a/swaggerci/eventgrid/examples/Remove-AzEventGridPartnerTopicEventSubscription.md b/swaggerci/eventgrid/examples/Remove-AzEventGridPartnerTopicEventSubscription.md new file mode 100644 index 000000000000..6ee1a83db970 --- /dev/null +++ b/swaggerci/eventgrid/examples/Remove-AzEventGridPartnerTopicEventSubscription.md @@ -0,0 +1,22 @@ +### Example 1: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + diff --git a/swaggerci/eventgrid/examples/Remove-AzEventGridPrivateEndpointConnection.md b/swaggerci/eventgrid/examples/Remove-AzEventGridPrivateEndpointConnection.md new file mode 100644 index 000000000000..6ee1a83db970 --- /dev/null +++ b/swaggerci/eventgrid/examples/Remove-AzEventGridPrivateEndpointConnection.md @@ -0,0 +1,22 @@ +### Example 1: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + diff --git a/swaggerci/eventgrid/examples/Remove-AzEventGridSystemTopic.md b/swaggerci/eventgrid/examples/Remove-AzEventGridSystemTopic.md new file mode 100644 index 000000000000..6ee1a83db970 --- /dev/null +++ b/swaggerci/eventgrid/examples/Remove-AzEventGridSystemTopic.md @@ -0,0 +1,22 @@ +### Example 1: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + diff --git a/swaggerci/eventgrid/examples/Remove-AzEventGridSystemTopicEventSubscription.md b/swaggerci/eventgrid/examples/Remove-AzEventGridSystemTopicEventSubscription.md new file mode 100644 index 000000000000..6ee1a83db970 --- /dev/null +++ b/swaggerci/eventgrid/examples/Remove-AzEventGridSystemTopicEventSubscription.md @@ -0,0 +1,22 @@ +### Example 1: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + diff --git a/swaggerci/eventgrid/examples/Remove-AzEventGridTopic.md b/swaggerci/eventgrid/examples/Remove-AzEventGridTopic.md new file mode 100644 index 000000000000..6ee1a83db970 --- /dev/null +++ b/swaggerci/eventgrid/examples/Remove-AzEventGridTopic.md @@ -0,0 +1,22 @@ +### Example 1: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + diff --git a/swaggerci/eventgrid/examples/Remove-AzEventGridTopicEventSubscription.md b/swaggerci/eventgrid/examples/Remove-AzEventGridTopicEventSubscription.md new file mode 100644 index 000000000000..6ee1a83db970 --- /dev/null +++ b/swaggerci/eventgrid/examples/Remove-AzEventGridTopicEventSubscription.md @@ -0,0 +1,22 @@ +### Example 1: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + diff --git a/swaggerci/eventgrid/examples/Update-AzEventGridChannel.md b/swaggerci/eventgrid/examples/Update-AzEventGridChannel.md new file mode 100644 index 000000000000..6ee1a83db970 --- /dev/null +++ b/swaggerci/eventgrid/examples/Update-AzEventGridChannel.md @@ -0,0 +1,22 @@ +### Example 1: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + diff --git a/swaggerci/eventgrid/examples/Update-AzEventGridDomain.md b/swaggerci/eventgrid/examples/Update-AzEventGridDomain.md new file mode 100644 index 000000000000..6ee1a83db970 --- /dev/null +++ b/swaggerci/eventgrid/examples/Update-AzEventGridDomain.md @@ -0,0 +1,22 @@ +### Example 1: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + diff --git a/swaggerci/eventgrid/examples/Update-AzEventGridDomainEventSubscription.md b/swaggerci/eventgrid/examples/Update-AzEventGridDomainEventSubscription.md new file mode 100644 index 000000000000..6ee1a83db970 --- /dev/null +++ b/swaggerci/eventgrid/examples/Update-AzEventGridDomainEventSubscription.md @@ -0,0 +1,22 @@ +### Example 1: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + diff --git a/swaggerci/eventgrid/examples/Update-AzEventGridDomainTopicEventSubscription.md b/swaggerci/eventgrid/examples/Update-AzEventGridDomainTopicEventSubscription.md new file mode 100644 index 000000000000..6ee1a83db970 --- /dev/null +++ b/swaggerci/eventgrid/examples/Update-AzEventGridDomainTopicEventSubscription.md @@ -0,0 +1,22 @@ +### Example 1: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + diff --git a/swaggerci/eventgrid/examples/Update-AzEventGridEventSubscription.md b/swaggerci/eventgrid/examples/Update-AzEventGridEventSubscription.md new file mode 100644 index 000000000000..6ee1a83db970 --- /dev/null +++ b/swaggerci/eventgrid/examples/Update-AzEventGridEventSubscription.md @@ -0,0 +1,22 @@ +### Example 1: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + diff --git a/swaggerci/eventgrid/examples/Update-AzEventGridPartnerConfiguration.md b/swaggerci/eventgrid/examples/Update-AzEventGridPartnerConfiguration.md new file mode 100644 index 000000000000..6ee1a83db970 --- /dev/null +++ b/swaggerci/eventgrid/examples/Update-AzEventGridPartnerConfiguration.md @@ -0,0 +1,22 @@ +### Example 1: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + diff --git a/swaggerci/eventgrid/examples/Update-AzEventGridPartnerDestination.md b/swaggerci/eventgrid/examples/Update-AzEventGridPartnerDestination.md new file mode 100644 index 000000000000..6ee1a83db970 --- /dev/null +++ b/swaggerci/eventgrid/examples/Update-AzEventGridPartnerDestination.md @@ -0,0 +1,22 @@ +### Example 1: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + diff --git a/swaggerci/eventgrid/examples/Update-AzEventGridPartnerNamespace.md b/swaggerci/eventgrid/examples/Update-AzEventGridPartnerNamespace.md new file mode 100644 index 000000000000..6ee1a83db970 --- /dev/null +++ b/swaggerci/eventgrid/examples/Update-AzEventGridPartnerNamespace.md @@ -0,0 +1,22 @@ +### Example 1: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + diff --git a/swaggerci/eventgrid/examples/Update-AzEventGridPartnerRegistration.md b/swaggerci/eventgrid/examples/Update-AzEventGridPartnerRegistration.md new file mode 100644 index 000000000000..6ee1a83db970 --- /dev/null +++ b/swaggerci/eventgrid/examples/Update-AzEventGridPartnerRegistration.md @@ -0,0 +1,22 @@ +### Example 1: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + diff --git a/swaggerci/eventgrid/examples/Update-AzEventGridPartnerTopic.md b/swaggerci/eventgrid/examples/Update-AzEventGridPartnerTopic.md new file mode 100644 index 000000000000..6ee1a83db970 --- /dev/null +++ b/swaggerci/eventgrid/examples/Update-AzEventGridPartnerTopic.md @@ -0,0 +1,22 @@ +### Example 1: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + diff --git a/swaggerci/eventgrid/examples/Update-AzEventGridPartnerTopicEventSubscription.md b/swaggerci/eventgrid/examples/Update-AzEventGridPartnerTopicEventSubscription.md new file mode 100644 index 000000000000..6ee1a83db970 --- /dev/null +++ b/swaggerci/eventgrid/examples/Update-AzEventGridPartnerTopicEventSubscription.md @@ -0,0 +1,22 @@ +### Example 1: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + diff --git a/swaggerci/eventgrid/examples/Update-AzEventGridSystemTopic.md b/swaggerci/eventgrid/examples/Update-AzEventGridSystemTopic.md new file mode 100644 index 000000000000..6ee1a83db970 --- /dev/null +++ b/swaggerci/eventgrid/examples/Update-AzEventGridSystemTopic.md @@ -0,0 +1,22 @@ +### Example 1: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + diff --git a/swaggerci/eventgrid/examples/Update-AzEventGridSystemTopicEventSubscription.md b/swaggerci/eventgrid/examples/Update-AzEventGridSystemTopicEventSubscription.md new file mode 100644 index 000000000000..6ee1a83db970 --- /dev/null +++ b/swaggerci/eventgrid/examples/Update-AzEventGridSystemTopicEventSubscription.md @@ -0,0 +1,22 @@ +### Example 1: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + diff --git a/swaggerci/eventgrid/examples/Update-AzEventGridTopic.md b/swaggerci/eventgrid/examples/Update-AzEventGridTopic.md new file mode 100644 index 000000000000..6ee1a83db970 --- /dev/null +++ b/swaggerci/eventgrid/examples/Update-AzEventGridTopic.md @@ -0,0 +1,22 @@ +### Example 1: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + diff --git a/swaggerci/eventgrid/examples/Update-AzEventGridTopicEventSubscription.md b/swaggerci/eventgrid/examples/Update-AzEventGridTopicEventSubscription.md new file mode 100644 index 000000000000..6ee1a83db970 --- /dev/null +++ b/swaggerci/eventgrid/examples/Update-AzEventGridTopicEventSubscription.md @@ -0,0 +1,22 @@ +### Example 1: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + +### Example 2: {{ Add title here }} +```powershell +{{ Add code here }} +``` + +```output +{{ Add output here }} +``` + +{{ Add description here }} + diff --git a/swaggerci/eventgrid/export-surface.ps1 b/swaggerci/eventgrid/export-surface.ps1 new file mode 100644 index 000000000000..4d7ca89c62bb --- /dev/null +++ b/swaggerci/eventgrid/export-surface.ps1 @@ -0,0 +1,33 @@ +# ---------------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for license information. +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is regenerated. +# ---------------------------------------------------------------------------------- +param([switch]$Isolated, [switch]$IncludeGeneralParameters, [switch]$UseExpandedFormat) +$ErrorActionPreference = 'Stop' + +$pwsh = [System.Diagnostics.Process]::GetCurrentProcess().Path +if(-not $Isolated) { + Write-Host -ForegroundColor Green 'Creating isolated process...' + & "$pwsh" -NonInteractive -NoLogo -NoProfile -File $MyInvocation.MyCommand.Path @PSBoundParameters -Isolated + return +} + +$dll = Join-Path $PSScriptRoot 'bin/Az.EventGrid.private.dll' +if(-not (Test-Path $dll)) { + Write-Error "Unable to find output assembly in '$binFolder'." +} +$null = Import-Module -Name $dll + +$moduleName = 'Az.EventGrid' +$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/eventgrid/exports/Get-AzEventGridChannel.ps1 b/swaggerci/eventgrid/exports/Get-AzEventGridChannel.ps1 new file mode 100644 index 000000000000..472f5edfde37 --- /dev/null +++ b/swaggerci/eventgrid/exports/Get-AzEventGridChannel.ps1 @@ -0,0 +1,248 @@ + +# ---------------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for license information. +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is regenerated. +# ---------------------------------------------------------------------------------- + +<# +.Synopsis +Get properties of a channel. +.Description +Get properties of a channel. +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Inputs +Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.IEventGridIdentity +.Outputs +Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IChannel +.Notes +COMPLEX PARAMETER PROPERTIES + +To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. + +INPUTOBJECT : Identity Parameter + [ChannelName ]: Name of the channel. + [DomainName ]: Name of the domain. + [DomainTopicName ]: Name of the topic. + [EventChannelName ]: Name of the event channel. + [EventSubscriptionName ]: Name of the event subscription. + [Id ]: Resource identity path + [Location ]: Name of the location. + [ParentName ]: The name of the parent resource (namely, either, the topic name, domain name, or partner namespace name). + [ParentType ]: The type of the parent resource. This can be either \'topics\', \'domains\', or \'partnerNamespaces\'. + [PartnerDestinationName ]: Name of the partner destination. + [PartnerNamespaceName ]: Name of the partner namespace. + [PartnerRegistrationName ]: Name of the partner registration. + [PartnerTopicName ]: Name of the partner topic. + [PrivateEndpointConnectionName ]: The name of the private endpoint connection connection. + [PrivateLinkResourceName ]: The name of private link resource. + [ProviderNamespace ]: Namespace of the provider of the topic. + [ResourceGroupName ]: The name of the resource group within the partners subscription. + [ResourceName ]: Name of the resource. + [ResourceTypeName ]: Name of the resource type. + [Scope ]: The scope of the event subscription. The scope can be a subscription, or a resource group, or a top level resource belonging to a resource provider namespace, or an EventGrid topic. For example, use '/subscriptions/{subscriptionId}/' for a subscription, '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}' for a resource group, and '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}' for a resource, and '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.EventGrid/topics/{topicName}' for an EventGrid topic. + [SubscriptionId ]: Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription ID forms part of the URI for every service call. + [SystemTopicName ]: Name of the system topic. + [TopicName ]: Name of the domain topic. + [TopicTypeName ]: Name of the topic type. + [VerifiedPartnerName ]: Name of the verified partner. +.Link +https://docs.microsoft.com/en-us/powershell/module/az.eventgrid/get-azeventgridchannel +#> +function Get-AzEventGridChannel { +[OutputType([Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IChannel])] +[CmdletBinding(DefaultParameterSetName='List', PositionalBinding=$false)] +param( + [Parameter(ParameterSetName='Get', Mandatory)] + [Alias('ChannelName')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [System.String] + # Name of the channel. + ${Name}, + + [Parameter(ParameterSetName='Get', Mandatory)] + [Parameter(ParameterSetName='List', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [System.String] + # Name of the partner namespace. + ${PartnerNamespaceName}, + + [Parameter(ParameterSetName='Get', Mandatory)] + [Parameter(ParameterSetName='List', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [System.String] + # The name of the resource group within the partners subscription. + ${ResourceGroupName}, + + [Parameter(ParameterSetName='Get')] + [Parameter(ParameterSetName='List')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] + [System.String[]] + # Subscription credentials that uniquely identify a Microsoft Azure subscription. + # The subscription ID forms part of the URI for every service call. + ${SubscriptionId}, + + [Parameter(ParameterSetName='GetViaIdentity', Mandatory, ValueFromPipeline)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.IEventGridIdentity] + # Identity Parameter + # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + ${InputObject}, + + [Parameter(ParameterSetName='List')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Query')] + [System.String] + # The query used to filter the search results using OData syntax. + # Filtering is permitted on the 'name' property only and with limited number of OData operations. + # These operations are: the 'contains' function as well as the following logical operations: not, and, or, eq (for equal), and ne (for not equal). + # No arithmetic operations are supported. + # The following is a valid filter example: $filter=contains(namE, 'PATTERN') and name ne 'PATTERN-1'. + # The following is not a valid filter example: $filter=location eq 'westus'. + ${Filter}, + + [Parameter(ParameterSetName='List')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Query')] + [System.Int32] + # The number of results to return per page for the list operation. + # Valid range for top parameter is 1 to 100. + # If not specified, the default number of results to be returned is 20 items per page. + ${Top}, + + [Parameter()] + [Alias('AzureRMContext', 'AzureCredential')] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Returns true when the command succeeds + ${PassThru}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + if ($null -eq [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion) { + [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion = $Host.Runspace.Version.ToString() + } + $preTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + if ($preTelemetryId -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId =(New-Guid).ToString() + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.module]::Instance.Telemetry.Invoke('Create', $MyInvocation, $parameterSet, $PSCmdlet) + } else { + $internalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + if ($internalCalledCmdlets -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $MyInvocation.MyCommand.Name + } else { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets += ',' + $MyInvocation.MyCommand.Name + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = 'internal' + } + + $mapping = @{ + Get = 'Az.EventGrid.private\Get-AzEventGridChannel_Get'; + GetViaIdentity = 'Az.EventGrid.private\Get-AzEventGridChannel_GetViaIdentity'; + List = 'Az.EventGrid.private\Get-AzEventGridChannel_List'; + } + if (('Get', 'List') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { + $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } + + finally { + $backupTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + $backupInternalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + +} +end { + try { + $steppablePipeline.End() + + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $backupTelemetryId + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $backupInternalCalledCmdlets + if ($preTelemetryId -eq '') { + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.module]::Instance.Telemetry.Invoke('Send', $MyInvocation, $parameterSet, $PSCmdlet) + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $preTelemetryId + + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} +} diff --git a/swaggerci/eventgrid/exports/Get-AzEventGridChannelFullUrl.ps1 b/swaggerci/eventgrid/exports/Get-AzEventGridChannelFullUrl.ps1 new file mode 100644 index 000000000000..e11bd8e88ea1 --- /dev/null +++ b/swaggerci/eventgrid/exports/Get-AzEventGridChannelFullUrl.ps1 @@ -0,0 +1,224 @@ + +# ---------------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for license information. +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is regenerated. +# ---------------------------------------------------------------------------------- + +<# +.Synopsis +Get the full endpoint URL of a partner destination channel. +.Description +Get the full endpoint URL of a partner destination channel. +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Inputs +Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.IEventGridIdentity +.Outputs +System.String +.Notes +COMPLEX PARAMETER PROPERTIES + +To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. + +INPUTOBJECT : Identity Parameter + [ChannelName ]: Name of the channel. + [DomainName ]: Name of the domain. + [DomainTopicName ]: Name of the topic. + [EventChannelName ]: Name of the event channel. + [EventSubscriptionName ]: Name of the event subscription. + [Id ]: Resource identity path + [Location ]: Name of the location. + [ParentName ]: The name of the parent resource (namely, either, the topic name, domain name, or partner namespace name). + [ParentType ]: The type of the parent resource. This can be either \'topics\', \'domains\', or \'partnerNamespaces\'. + [PartnerDestinationName ]: Name of the partner destination. + [PartnerNamespaceName ]: Name of the partner namespace. + [PartnerRegistrationName ]: Name of the partner registration. + [PartnerTopicName ]: Name of the partner topic. + [PrivateEndpointConnectionName ]: The name of the private endpoint connection connection. + [PrivateLinkResourceName ]: The name of private link resource. + [ProviderNamespace ]: Namespace of the provider of the topic. + [ResourceGroupName ]: The name of the resource group within the partners subscription. + [ResourceName ]: Name of the resource. + [ResourceTypeName ]: Name of the resource type. + [Scope ]: The scope of the event subscription. The scope can be a subscription, or a resource group, or a top level resource belonging to a resource provider namespace, or an EventGrid topic. For example, use '/subscriptions/{subscriptionId}/' for a subscription, '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}' for a resource group, and '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}' for a resource, and '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.EventGrid/topics/{topicName}' for an EventGrid topic. + [SubscriptionId ]: Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription ID forms part of the URI for every service call. + [SystemTopicName ]: Name of the system topic. + [TopicName ]: Name of the domain topic. + [TopicTypeName ]: Name of the topic type. + [VerifiedPartnerName ]: Name of the verified partner. +.Link +https://docs.microsoft.com/en-us/powershell/module/az.eventgrid/get-azeventgridchannelfullurl +#> +function Get-AzEventGridChannelFullUrl { +[OutputType([System.String])] +[CmdletBinding(DefaultParameterSetName='Get', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(ParameterSetName='Get', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [System.String] + # Name of the Channel. + ${ChannelName}, + + [Parameter(ParameterSetName='Get', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [System.String] + # Name of the partner namespace. + ${PartnerNamespaceName}, + + [Parameter(ParameterSetName='Get', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [System.String] + # The name of the resource group within the partners subscription. + ${ResourceGroupName}, + + [Parameter(ParameterSetName='Get')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] + [System.String[]] + # Subscription credentials that uniquely identify a Microsoft Azure subscription. + # The subscription ID forms part of the URI for every service call. + ${SubscriptionId}, + + [Parameter(ParameterSetName='GetViaIdentity', Mandatory, ValueFromPipeline)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.IEventGridIdentity] + # Identity Parameter + # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + ${InputObject}, + + [Parameter()] + [Alias('AzureRMContext', 'AzureCredential')] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Returns true when the command succeeds + ${PassThru}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + if ($null -eq [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion) { + [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion = $Host.Runspace.Version.ToString() + } + $preTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + if ($preTelemetryId -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId =(New-Guid).ToString() + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.module]::Instance.Telemetry.Invoke('Create', $MyInvocation, $parameterSet, $PSCmdlet) + } else { + $internalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + if ($internalCalledCmdlets -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $MyInvocation.MyCommand.Name + } else { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets += ',' + $MyInvocation.MyCommand.Name + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = 'internal' + } + + $mapping = @{ + Get = 'Az.EventGrid.private\Get-AzEventGridChannelFullUrl_Get'; + GetViaIdentity = 'Az.EventGrid.private\Get-AzEventGridChannelFullUrl_GetViaIdentity'; + } + if (('Get') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { + $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } + + finally { + $backupTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + $backupInternalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + +} +end { + try { + $steppablePipeline.End() + + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $backupTelemetryId + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $backupInternalCalledCmdlets + if ($preTelemetryId -eq '') { + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.module]::Instance.Telemetry.Invoke('Send', $MyInvocation, $parameterSet, $PSCmdlet) + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $preTelemetryId + + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} +} diff --git a/swaggerci/eventgrid/exports/Get-AzEventGridDomain.ps1 b/swaggerci/eventgrid/exports/Get-AzEventGridDomain.ps1 new file mode 100644 index 000000000000..b8974cd2a78d --- /dev/null +++ b/swaggerci/eventgrid/exports/Get-AzEventGridDomain.ps1 @@ -0,0 +1,245 @@ + +# ---------------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for license information. +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is regenerated. +# ---------------------------------------------------------------------------------- + +<# +.Synopsis +Get properties of a domain. +.Description +Get properties of a domain. +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Inputs +Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.IEventGridIdentity +.Outputs +Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDomain +.Notes +COMPLEX PARAMETER PROPERTIES + +To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. + +INPUTOBJECT : Identity Parameter + [ChannelName ]: Name of the channel. + [DomainName ]: Name of the domain. + [DomainTopicName ]: Name of the topic. + [EventChannelName ]: Name of the event channel. + [EventSubscriptionName ]: Name of the event subscription. + [Id ]: Resource identity path + [Location ]: Name of the location. + [ParentName ]: The name of the parent resource (namely, either, the topic name, domain name, or partner namespace name). + [ParentType ]: The type of the parent resource. This can be either \'topics\', \'domains\', or \'partnerNamespaces\'. + [PartnerDestinationName ]: Name of the partner destination. + [PartnerNamespaceName ]: Name of the partner namespace. + [PartnerRegistrationName ]: Name of the partner registration. + [PartnerTopicName ]: Name of the partner topic. + [PrivateEndpointConnectionName ]: The name of the private endpoint connection connection. + [PrivateLinkResourceName ]: The name of private link resource. + [ProviderNamespace ]: Namespace of the provider of the topic. + [ResourceGroupName ]: The name of the resource group within the partners subscription. + [ResourceName ]: Name of the resource. + [ResourceTypeName ]: Name of the resource type. + [Scope ]: The scope of the event subscription. The scope can be a subscription, or a resource group, or a top level resource belonging to a resource provider namespace, or an EventGrid topic. For example, use '/subscriptions/{subscriptionId}/' for a subscription, '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}' for a resource group, and '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}' for a resource, and '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.EventGrid/topics/{topicName}' for an EventGrid topic. + [SubscriptionId ]: Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription ID forms part of the URI for every service call. + [SystemTopicName ]: Name of the system topic. + [TopicName ]: Name of the domain topic. + [TopicTypeName ]: Name of the topic type. + [VerifiedPartnerName ]: Name of the verified partner. +.Link +https://docs.microsoft.com/en-us/powershell/module/az.eventgrid/get-azeventgriddomain +#> +function Get-AzEventGridDomain { +[OutputType([Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDomain])] +[CmdletBinding(DefaultParameterSetName='List', PositionalBinding=$false)] +param( + [Parameter(ParameterSetName='Get', Mandatory)] + [Alias('DomainName')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [System.String] + # Name of the domain. + ${Name}, + + [Parameter(ParameterSetName='Get', Mandatory)] + [Parameter(ParameterSetName='List1', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [System.String] + # The name of the resource group within the user's subscription. + ${ResourceGroupName}, + + [Parameter(ParameterSetName='Get')] + [Parameter(ParameterSetName='List')] + [Parameter(ParameterSetName='List1')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] + [System.String[]] + # Subscription credentials that uniquely identify a Microsoft Azure subscription. + # The subscription ID forms part of the URI for every service call. + ${SubscriptionId}, + + [Parameter(ParameterSetName='GetViaIdentity', Mandatory, ValueFromPipeline)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.IEventGridIdentity] + # 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.EventGrid.Category('Query')] + [System.String] + # The query used to filter the search results using OData syntax. + # Filtering is permitted on the 'name' property only and with limited number of OData operations. + # These operations are: the 'contains' function as well as the following logical operations: not, and, or, eq (for equal), and ne (for not equal). + # No arithmetic operations are supported. + # The following is a valid filter example: $filter=contains(namE, 'PATTERN') and name ne 'PATTERN-1'. + # The following is not a valid filter example: $filter=location eq 'westus'. + ${Filter}, + + [Parameter(ParameterSetName='List')] + [Parameter(ParameterSetName='List1')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Query')] + [System.Int32] + # The number of results to return per page for the list operation. + # Valid range for top parameter is 1 to 100. + # If not specified, the default number of results to be returned is 20 items per page. + ${Top}, + + [Parameter()] + [Alias('AzureRMContext', 'AzureCredential')] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Returns true when the command succeeds + ${PassThru}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + if ($null -eq [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion) { + [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion = $Host.Runspace.Version.ToString() + } + $preTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + if ($preTelemetryId -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId =(New-Guid).ToString() + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.module]::Instance.Telemetry.Invoke('Create', $MyInvocation, $parameterSet, $PSCmdlet) + } else { + $internalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + if ($internalCalledCmdlets -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $MyInvocation.MyCommand.Name + } else { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets += ',' + $MyInvocation.MyCommand.Name + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = 'internal' + } + + $mapping = @{ + Get = 'Az.EventGrid.private\Get-AzEventGridDomain_Get'; + GetViaIdentity = 'Az.EventGrid.private\Get-AzEventGridDomain_GetViaIdentity'; + List = 'Az.EventGrid.private\Get-AzEventGridDomain_List'; + List1 = 'Az.EventGrid.private\Get-AzEventGridDomain_List1'; + } + if (('Get', 'List', 'List1') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { + $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } + + finally { + $backupTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + $backupInternalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + +} +end { + try { + $steppablePipeline.End() + + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $backupTelemetryId + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $backupInternalCalledCmdlets + if ($preTelemetryId -eq '') { + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.module]::Instance.Telemetry.Invoke('Send', $MyInvocation, $parameterSet, $PSCmdlet) + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $preTelemetryId + + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} +} diff --git a/swaggerci/eventgrid/exports/Get-AzEventGridDomainEventSubscription.ps1 b/swaggerci/eventgrid/exports/Get-AzEventGridDomainEventSubscription.ps1 new file mode 100644 index 000000000000..0885ebb10eaf --- /dev/null +++ b/swaggerci/eventgrid/exports/Get-AzEventGridDomainEventSubscription.ps1 @@ -0,0 +1,229 @@ + +# ---------------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for license information. +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is regenerated. +# ---------------------------------------------------------------------------------- + +<# +.Synopsis +Get properties of an event subscription of a domain. +.Description +Get properties of an event subscription of a domain. +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Inputs +Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.IEventGridIdentity +.Outputs +Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscription +.Notes +COMPLEX PARAMETER PROPERTIES + +To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. + +INPUTOBJECT : Identity Parameter + [ChannelName ]: Name of the channel. + [DomainName ]: Name of the domain. + [DomainTopicName ]: Name of the topic. + [EventChannelName ]: Name of the event channel. + [EventSubscriptionName ]: Name of the event subscription. + [Id ]: Resource identity path + [Location ]: Name of the location. + [ParentName ]: The name of the parent resource (namely, either, the topic name, domain name, or partner namespace name). + [ParentType ]: The type of the parent resource. This can be either \'topics\', \'domains\', or \'partnerNamespaces\'. + [PartnerDestinationName ]: Name of the partner destination. + [PartnerNamespaceName ]: Name of the partner namespace. + [PartnerRegistrationName ]: Name of the partner registration. + [PartnerTopicName ]: Name of the partner topic. + [PrivateEndpointConnectionName ]: The name of the private endpoint connection connection. + [PrivateLinkResourceName ]: The name of private link resource. + [ProviderNamespace ]: Namespace of the provider of the topic. + [ResourceGroupName ]: The name of the resource group within the partners subscription. + [ResourceName ]: Name of the resource. + [ResourceTypeName ]: Name of the resource type. + [Scope ]: The scope of the event subscription. The scope can be a subscription, or a resource group, or a top level resource belonging to a resource provider namespace, or an EventGrid topic. For example, use '/subscriptions/{subscriptionId}/' for a subscription, '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}' for a resource group, and '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}' for a resource, and '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.EventGrid/topics/{topicName}' for an EventGrid topic. + [SubscriptionId ]: Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription ID forms part of the URI for every service call. + [SystemTopicName ]: Name of the system topic. + [TopicName ]: Name of the domain topic. + [TopicTypeName ]: Name of the topic type. + [VerifiedPartnerName ]: Name of the verified partner. +.Link +https://docs.microsoft.com/en-us/powershell/module/az.eventgrid/get-azeventgriddomaineventsubscription +#> +function Get-AzEventGridDomainEventSubscription { +[OutputType([Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscription])] +[CmdletBinding(DefaultParameterSetName='List', PositionalBinding=$false)] +param( + [Parameter(ParameterSetName='Get', Mandatory)] + [Parameter(ParameterSetName='List', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [System.String] + # Name of the partner topic. + ${DomainName}, + + [Parameter(ParameterSetName='Get', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [System.String] + # Name of the event subscription to be found. + # Event subscription names must be between 3 and 100 characters in length and use alphanumeric letters only. + ${EventSubscriptionName}, + + [Parameter(ParameterSetName='Get', Mandatory)] + [Parameter(ParameterSetName='List', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [System.String] + # The name of the resource group within the user's subscription. + ${ResourceGroupName}, + + [Parameter(ParameterSetName='Get')] + [Parameter(ParameterSetName='List')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] + [System.String[]] + # Subscription credentials that uniquely identify a Microsoft Azure subscription. + # The subscription ID forms part of the URI for every service call. + ${SubscriptionId}, + + [Parameter(ParameterSetName='GetViaIdentity', Mandatory, ValueFromPipeline)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.IEventGridIdentity] + # Identity Parameter + # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + ${InputObject}, + + [Parameter()] + [Alias('AzureRMContext', 'AzureCredential')] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Returns true when the command succeeds + ${PassThru}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + if ($null -eq [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion) { + [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion = $Host.Runspace.Version.ToString() + } + $preTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + if ($preTelemetryId -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId =(New-Guid).ToString() + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.module]::Instance.Telemetry.Invoke('Create', $MyInvocation, $parameterSet, $PSCmdlet) + } else { + $internalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + if ($internalCalledCmdlets -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $MyInvocation.MyCommand.Name + } else { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets += ',' + $MyInvocation.MyCommand.Name + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = 'internal' + } + + $mapping = @{ + Get = 'Az.EventGrid.private\Get-AzEventGridDomainEventSubscription_Get'; + GetViaIdentity = 'Az.EventGrid.private\Get-AzEventGridDomainEventSubscription_GetViaIdentity'; + List = 'Az.EventGrid.private\Get-AzEventGridDomainEventSubscription_List'; + } + if (('Get', 'List') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { + $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } + + finally { + $backupTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + $backupInternalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + +} +end { + try { + $steppablePipeline.End() + + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $backupTelemetryId + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $backupInternalCalledCmdlets + if ($preTelemetryId -eq '') { + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.module]::Instance.Telemetry.Invoke('Send', $MyInvocation, $parameterSet, $PSCmdlet) + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $preTelemetryId + + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} +} diff --git a/swaggerci/eventgrid/exports/Get-AzEventGridDomainEventSubscriptionDeliveryAttribute.ps1 b/swaggerci/eventgrid/exports/Get-AzEventGridDomainEventSubscriptionDeliveryAttribute.ps1 new file mode 100644 index 000000000000..77b0d5c73da0 --- /dev/null +++ b/swaggerci/eventgrid/exports/Get-AzEventGridDomainEventSubscriptionDeliveryAttribute.ps1 @@ -0,0 +1,224 @@ + +# ---------------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for license information. +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is regenerated. +# ---------------------------------------------------------------------------------- + +<# +.Synopsis +Get all delivery attributes for an event subscription for domain. +.Description +Get all delivery attributes for an event subscription for domain. +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Inputs +Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.IEventGridIdentity +.Outputs +Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDeliveryAttributeMapping +.Notes +COMPLEX PARAMETER PROPERTIES + +To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. + +INPUTOBJECT : Identity Parameter + [ChannelName ]: Name of the channel. + [DomainName ]: Name of the domain. + [DomainTopicName ]: Name of the topic. + [EventChannelName ]: Name of the event channel. + [EventSubscriptionName ]: Name of the event subscription. + [Id ]: Resource identity path + [Location ]: Name of the location. + [ParentName ]: The name of the parent resource (namely, either, the topic name, domain name, or partner namespace name). + [ParentType ]: The type of the parent resource. This can be either \'topics\', \'domains\', or \'partnerNamespaces\'. + [PartnerDestinationName ]: Name of the partner destination. + [PartnerNamespaceName ]: Name of the partner namespace. + [PartnerRegistrationName ]: Name of the partner registration. + [PartnerTopicName ]: Name of the partner topic. + [PrivateEndpointConnectionName ]: The name of the private endpoint connection connection. + [PrivateLinkResourceName ]: The name of private link resource. + [ProviderNamespace ]: Namespace of the provider of the topic. + [ResourceGroupName ]: The name of the resource group within the partners subscription. + [ResourceName ]: Name of the resource. + [ResourceTypeName ]: Name of the resource type. + [Scope ]: The scope of the event subscription. The scope can be a subscription, or a resource group, or a top level resource belonging to a resource provider namespace, or an EventGrid topic. For example, use '/subscriptions/{subscriptionId}/' for a subscription, '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}' for a resource group, and '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}' for a resource, and '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.EventGrid/topics/{topicName}' for an EventGrid topic. + [SubscriptionId ]: Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription ID forms part of the URI for every service call. + [SystemTopicName ]: Name of the system topic. + [TopicName ]: Name of the domain topic. + [TopicTypeName ]: Name of the topic type. + [VerifiedPartnerName ]: Name of the verified partner. +.Link +https://docs.microsoft.com/en-us/powershell/module/az.eventgrid/get-azeventgriddomaineventsubscriptiondeliveryattribute +#> +function Get-AzEventGridDomainEventSubscriptionDeliveryAttribute { +[OutputType([Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDeliveryAttributeMapping])] +[CmdletBinding(DefaultParameterSetName='Get', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(ParameterSetName='Get', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [System.String] + # Name of the domain topic. + ${DomainName}, + + [Parameter(ParameterSetName='Get', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [System.String] + # Name of the event subscription. + ${EventSubscriptionName}, + + [Parameter(ParameterSetName='Get', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [System.String] + # The name of the resource group within the user's subscription. + ${ResourceGroupName}, + + [Parameter(ParameterSetName='Get')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] + [System.String[]] + # Subscription credentials that uniquely identify a Microsoft Azure subscription. + # The subscription ID forms part of the URI for every service call. + ${SubscriptionId}, + + [Parameter(ParameterSetName='GetViaIdentity', Mandatory, ValueFromPipeline)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.IEventGridIdentity] + # Identity Parameter + # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + ${InputObject}, + + [Parameter()] + [Alias('AzureRMContext', 'AzureCredential')] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Returns true when the command succeeds + ${PassThru}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + if ($null -eq [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion) { + [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion = $Host.Runspace.Version.ToString() + } + $preTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + if ($preTelemetryId -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId =(New-Guid).ToString() + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.module]::Instance.Telemetry.Invoke('Create', $MyInvocation, $parameterSet, $PSCmdlet) + } else { + $internalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + if ($internalCalledCmdlets -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $MyInvocation.MyCommand.Name + } else { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets += ',' + $MyInvocation.MyCommand.Name + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = 'internal' + } + + $mapping = @{ + Get = 'Az.EventGrid.private\Get-AzEventGridDomainEventSubscriptionDeliveryAttribute_Get'; + GetViaIdentity = 'Az.EventGrid.private\Get-AzEventGridDomainEventSubscriptionDeliveryAttribute_GetViaIdentity'; + } + if (('Get') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { + $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } + + finally { + $backupTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + $backupInternalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + +} +end { + try { + $steppablePipeline.End() + + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $backupTelemetryId + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $backupInternalCalledCmdlets + if ($preTelemetryId -eq '') { + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.module]::Instance.Telemetry.Invoke('Send', $MyInvocation, $parameterSet, $PSCmdlet) + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $preTelemetryId + + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} +} diff --git a/swaggerci/eventgrid/exports/Get-AzEventGridDomainEventSubscriptionFullUrl.ps1 b/swaggerci/eventgrid/exports/Get-AzEventGridDomainEventSubscriptionFullUrl.ps1 new file mode 100644 index 000000000000..1f0fdc2db6b4 --- /dev/null +++ b/swaggerci/eventgrid/exports/Get-AzEventGridDomainEventSubscriptionFullUrl.ps1 @@ -0,0 +1,224 @@ + +# ---------------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for license information. +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is regenerated. +# ---------------------------------------------------------------------------------- + +<# +.Synopsis +Get the full endpoint URL for an event subscription for domain. +.Description +Get the full endpoint URL for an event subscription for domain. +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Inputs +Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.IEventGridIdentity +.Outputs +System.String +.Notes +COMPLEX PARAMETER PROPERTIES + +To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. + +INPUTOBJECT : Identity Parameter + [ChannelName ]: Name of the channel. + [DomainName ]: Name of the domain. + [DomainTopicName ]: Name of the topic. + [EventChannelName ]: Name of the event channel. + [EventSubscriptionName ]: Name of the event subscription. + [Id ]: Resource identity path + [Location ]: Name of the location. + [ParentName ]: The name of the parent resource (namely, either, the topic name, domain name, or partner namespace name). + [ParentType ]: The type of the parent resource. This can be either \'topics\', \'domains\', or \'partnerNamespaces\'. + [PartnerDestinationName ]: Name of the partner destination. + [PartnerNamespaceName ]: Name of the partner namespace. + [PartnerRegistrationName ]: Name of the partner registration. + [PartnerTopicName ]: Name of the partner topic. + [PrivateEndpointConnectionName ]: The name of the private endpoint connection connection. + [PrivateLinkResourceName ]: The name of private link resource. + [ProviderNamespace ]: Namespace of the provider of the topic. + [ResourceGroupName ]: The name of the resource group within the partners subscription. + [ResourceName ]: Name of the resource. + [ResourceTypeName ]: Name of the resource type. + [Scope ]: The scope of the event subscription. The scope can be a subscription, or a resource group, or a top level resource belonging to a resource provider namespace, or an EventGrid topic. For example, use '/subscriptions/{subscriptionId}/' for a subscription, '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}' for a resource group, and '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}' for a resource, and '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.EventGrid/topics/{topicName}' for an EventGrid topic. + [SubscriptionId ]: Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription ID forms part of the URI for every service call. + [SystemTopicName ]: Name of the system topic. + [TopicName ]: Name of the domain topic. + [TopicTypeName ]: Name of the topic type. + [VerifiedPartnerName ]: Name of the verified partner. +.Link +https://docs.microsoft.com/en-us/powershell/module/az.eventgrid/get-azeventgriddomaineventsubscriptionfullurl +#> +function Get-AzEventGridDomainEventSubscriptionFullUrl { +[OutputType([System.String])] +[CmdletBinding(DefaultParameterSetName='Get', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(ParameterSetName='Get', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [System.String] + # Name of the domain topic. + ${DomainName}, + + [Parameter(ParameterSetName='Get', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [System.String] + # Name of the event subscription. + ${EventSubscriptionName}, + + [Parameter(ParameterSetName='Get', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [System.String] + # The name of the resource group within the user's subscription. + ${ResourceGroupName}, + + [Parameter(ParameterSetName='Get')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] + [System.String[]] + # Subscription credentials that uniquely identify a Microsoft Azure subscription. + # The subscription ID forms part of the URI for every service call. + ${SubscriptionId}, + + [Parameter(ParameterSetName='GetViaIdentity', Mandatory, ValueFromPipeline)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.IEventGridIdentity] + # Identity Parameter + # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + ${InputObject}, + + [Parameter()] + [Alias('AzureRMContext', 'AzureCredential')] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Returns true when the command succeeds + ${PassThru}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + if ($null -eq [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion) { + [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion = $Host.Runspace.Version.ToString() + } + $preTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + if ($preTelemetryId -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId =(New-Guid).ToString() + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.module]::Instance.Telemetry.Invoke('Create', $MyInvocation, $parameterSet, $PSCmdlet) + } else { + $internalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + if ($internalCalledCmdlets -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $MyInvocation.MyCommand.Name + } else { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets += ',' + $MyInvocation.MyCommand.Name + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = 'internal' + } + + $mapping = @{ + Get = 'Az.EventGrid.private\Get-AzEventGridDomainEventSubscriptionFullUrl_Get'; + GetViaIdentity = 'Az.EventGrid.private\Get-AzEventGridDomainEventSubscriptionFullUrl_GetViaIdentity'; + } + if (('Get') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { + $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } + + finally { + $backupTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + $backupInternalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + +} +end { + try { + $steppablePipeline.End() + + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $backupTelemetryId + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $backupInternalCalledCmdlets + if ($preTelemetryId -eq '') { + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.module]::Instance.Telemetry.Invoke('Send', $MyInvocation, $parameterSet, $PSCmdlet) + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $preTelemetryId + + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} +} diff --git a/swaggerci/eventgrid/exports/Get-AzEventGridDomainSharedAccessKey.ps1 b/swaggerci/eventgrid/exports/Get-AzEventGridDomainSharedAccessKey.ps1 new file mode 100644 index 000000000000..7d18072e20f4 --- /dev/null +++ b/swaggerci/eventgrid/exports/Get-AzEventGridDomainSharedAccessKey.ps1 @@ -0,0 +1,177 @@ + +# ---------------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for license information. +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is regenerated. +# ---------------------------------------------------------------------------------- + +<# +.Synopsis +List the two keys used to publish to a domain. +.Description +List the two keys used to publish to a domain. +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Outputs +Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDomainSharedAccessKeys +.Link +https://docs.microsoft.com/en-us/powershell/module/az.eventgrid/get-azeventgriddomainsharedaccesskey +#> +function Get-AzEventGridDomainSharedAccessKey { +[OutputType([Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDomainSharedAccessKeys])] +[CmdletBinding(DefaultParameterSetName='List', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [System.String] + # Name of the domain. + ${DomainName}, + + [Parameter(Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [System.String] + # The name of the resource group within the user's subscription. + ${ResourceGroupName}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] + [System.String[]] + # Subscription credentials that uniquely identify a Microsoft Azure subscription. + # The subscription ID forms part of the URI for every service call. + ${SubscriptionId}, + + [Parameter()] + [Alias('AzureRMContext', 'AzureCredential')] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Returns true when the command succeeds + ${PassThru}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + if ($null -eq [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion) { + [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion = $Host.Runspace.Version.ToString() + } + $preTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + if ($preTelemetryId -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId =(New-Guid).ToString() + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.module]::Instance.Telemetry.Invoke('Create', $MyInvocation, $parameterSet, $PSCmdlet) + } else { + $internalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + if ($internalCalledCmdlets -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $MyInvocation.MyCommand.Name + } else { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets += ',' + $MyInvocation.MyCommand.Name + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = 'internal' + } + + $mapping = @{ + List = 'Az.EventGrid.private\Get-AzEventGridDomainSharedAccessKey_List'; + } + if (('List') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { + $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } + + finally { + $backupTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + $backupInternalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + +} +end { + try { + $steppablePipeline.End() + + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $backupTelemetryId + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $backupInternalCalledCmdlets + if ($preTelemetryId -eq '') { + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.module]::Instance.Telemetry.Invoke('Send', $MyInvocation, $parameterSet, $PSCmdlet) + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $preTelemetryId + + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} +} diff --git a/swaggerci/eventgrid/exports/Get-AzEventGridDomainTopic.ps1 b/swaggerci/eventgrid/exports/Get-AzEventGridDomainTopic.ps1 new file mode 100644 index 000000000000..6f0ba56205ca --- /dev/null +++ b/swaggerci/eventgrid/exports/Get-AzEventGridDomainTopic.ps1 @@ -0,0 +1,248 @@ + +# ---------------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for license information. +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is regenerated. +# ---------------------------------------------------------------------------------- + +<# +.Synopsis +Get properties of a domain topic. +.Description +Get properties of a domain topic. +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Inputs +Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.IEventGridIdentity +.Outputs +Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDomainTopic +.Notes +COMPLEX PARAMETER PROPERTIES + +To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. + +INPUTOBJECT : Identity Parameter + [ChannelName ]: Name of the channel. + [DomainName ]: Name of the domain. + [DomainTopicName ]: Name of the topic. + [EventChannelName ]: Name of the event channel. + [EventSubscriptionName ]: Name of the event subscription. + [Id ]: Resource identity path + [Location ]: Name of the location. + [ParentName ]: The name of the parent resource (namely, either, the topic name, domain name, or partner namespace name). + [ParentType ]: The type of the parent resource. This can be either \'topics\', \'domains\', or \'partnerNamespaces\'. + [PartnerDestinationName ]: Name of the partner destination. + [PartnerNamespaceName ]: Name of the partner namespace. + [PartnerRegistrationName ]: Name of the partner registration. + [PartnerTopicName ]: Name of the partner topic. + [PrivateEndpointConnectionName ]: The name of the private endpoint connection connection. + [PrivateLinkResourceName ]: The name of private link resource. + [ProviderNamespace ]: Namespace of the provider of the topic. + [ResourceGroupName ]: The name of the resource group within the partners subscription. + [ResourceName ]: Name of the resource. + [ResourceTypeName ]: Name of the resource type. + [Scope ]: The scope of the event subscription. The scope can be a subscription, or a resource group, or a top level resource belonging to a resource provider namespace, or an EventGrid topic. For example, use '/subscriptions/{subscriptionId}/' for a subscription, '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}' for a resource group, and '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}' for a resource, and '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.EventGrid/topics/{topicName}' for an EventGrid topic. + [SubscriptionId ]: Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription ID forms part of the URI for every service call. + [SystemTopicName ]: Name of the system topic. + [TopicName ]: Name of the domain topic. + [TopicTypeName ]: Name of the topic type. + [VerifiedPartnerName ]: Name of the verified partner. +.Link +https://docs.microsoft.com/en-us/powershell/module/az.eventgrid/get-azeventgriddomaintopic +#> +function Get-AzEventGridDomainTopic { +[OutputType([Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDomainTopic])] +[CmdletBinding(DefaultParameterSetName='List', PositionalBinding=$false)] +param( + [Parameter(ParameterSetName='Get', Mandatory)] + [Parameter(ParameterSetName='List', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [System.String] + # Name of the domain. + ${DomainName}, + + [Parameter(ParameterSetName='Get', Mandatory)] + [Alias('DomainTopicName')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [System.String] + # Name of the topic. + ${Name}, + + [Parameter(ParameterSetName='Get', Mandatory)] + [Parameter(ParameterSetName='List', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [System.String] + # The name of the resource group within the user's subscription. + ${ResourceGroupName}, + + [Parameter(ParameterSetName='Get')] + [Parameter(ParameterSetName='List')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] + [System.String[]] + # Subscription credentials that uniquely identify a Microsoft Azure subscription. + # The subscription ID forms part of the URI for every service call. + ${SubscriptionId}, + + [Parameter(ParameterSetName='GetViaIdentity', Mandatory, ValueFromPipeline)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.IEventGridIdentity] + # Identity Parameter + # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + ${InputObject}, + + [Parameter(ParameterSetName='List')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Query')] + [System.String] + # The query used to filter the search results using OData syntax. + # Filtering is permitted on the 'name' property only and with limited number of OData operations. + # These operations are: the 'contains' function as well as the following logical operations: not, and, or, eq (for equal), and ne (for not equal). + # No arithmetic operations are supported. + # The following is a valid filter example: $filter=contains(namE, 'PATTERN') and name ne 'PATTERN-1'. + # The following is not a valid filter example: $filter=location eq 'westus'. + ${Filter}, + + [Parameter(ParameterSetName='List')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Query')] + [System.Int32] + # The number of results to return per page for the list operation. + # Valid range for top parameter is 1 to 100. + # If not specified, the default number of results to be returned is 20 items per page. + ${Top}, + + [Parameter()] + [Alias('AzureRMContext', 'AzureCredential')] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Returns true when the command succeeds + ${PassThru}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + if ($null -eq [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion) { + [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion = $Host.Runspace.Version.ToString() + } + $preTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + if ($preTelemetryId -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId =(New-Guid).ToString() + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.module]::Instance.Telemetry.Invoke('Create', $MyInvocation, $parameterSet, $PSCmdlet) + } else { + $internalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + if ($internalCalledCmdlets -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $MyInvocation.MyCommand.Name + } else { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets += ',' + $MyInvocation.MyCommand.Name + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = 'internal' + } + + $mapping = @{ + Get = 'Az.EventGrid.private\Get-AzEventGridDomainTopic_Get'; + GetViaIdentity = 'Az.EventGrid.private\Get-AzEventGridDomainTopic_GetViaIdentity'; + List = 'Az.EventGrid.private\Get-AzEventGridDomainTopic_List'; + } + if (('Get', 'List') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { + $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } + + finally { + $backupTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + $backupInternalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + +} +end { + try { + $steppablePipeline.End() + + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $backupTelemetryId + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $backupInternalCalledCmdlets + if ($preTelemetryId -eq '') { + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.module]::Instance.Telemetry.Invoke('Send', $MyInvocation, $parameterSet, $PSCmdlet) + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $preTelemetryId + + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} +} diff --git a/swaggerci/eventgrid/exports/Get-AzEventGridDomainTopicEventSubscription.ps1 b/swaggerci/eventgrid/exports/Get-AzEventGridDomainTopicEventSubscription.ps1 new file mode 100644 index 000000000000..9634b682c794 --- /dev/null +++ b/swaggerci/eventgrid/exports/Get-AzEventGridDomainTopicEventSubscription.ps1 @@ -0,0 +1,235 @@ + +# ---------------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for license information. +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is regenerated. +# ---------------------------------------------------------------------------------- + +<# +.Synopsis +Get properties of a nested event subscription for a domain topic. +.Description +Get properties of a nested event subscription for a domain topic. +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Inputs +Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.IEventGridIdentity +.Outputs +Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscription +.Notes +COMPLEX PARAMETER PROPERTIES + +To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. + +INPUTOBJECT : Identity Parameter + [ChannelName ]: Name of the channel. + [DomainName ]: Name of the domain. + [DomainTopicName ]: Name of the topic. + [EventChannelName ]: Name of the event channel. + [EventSubscriptionName ]: Name of the event subscription. + [Id ]: Resource identity path + [Location ]: Name of the location. + [ParentName ]: The name of the parent resource (namely, either, the topic name, domain name, or partner namespace name). + [ParentType ]: The type of the parent resource. This can be either \'topics\', \'domains\', or \'partnerNamespaces\'. + [PartnerDestinationName ]: Name of the partner destination. + [PartnerNamespaceName ]: Name of the partner namespace. + [PartnerRegistrationName ]: Name of the partner registration. + [PartnerTopicName ]: Name of the partner topic. + [PrivateEndpointConnectionName ]: The name of the private endpoint connection connection. + [PrivateLinkResourceName ]: The name of private link resource. + [ProviderNamespace ]: Namespace of the provider of the topic. + [ResourceGroupName ]: The name of the resource group within the partners subscription. + [ResourceName ]: Name of the resource. + [ResourceTypeName ]: Name of the resource type. + [Scope ]: The scope of the event subscription. The scope can be a subscription, or a resource group, or a top level resource belonging to a resource provider namespace, or an EventGrid topic. For example, use '/subscriptions/{subscriptionId}/' for a subscription, '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}' for a resource group, and '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}' for a resource, and '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.EventGrid/topics/{topicName}' for an EventGrid topic. + [SubscriptionId ]: Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription ID forms part of the URI for every service call. + [SystemTopicName ]: Name of the system topic. + [TopicName ]: Name of the domain topic. + [TopicTypeName ]: Name of the topic type. + [VerifiedPartnerName ]: Name of the verified partner. +.Link +https://docs.microsoft.com/en-us/powershell/module/az.eventgrid/get-azeventgriddomaintopiceventsubscription +#> +function Get-AzEventGridDomainTopicEventSubscription { +[OutputType([Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscription])] +[CmdletBinding(DefaultParameterSetName='List', PositionalBinding=$false)] +param( + [Parameter(ParameterSetName='Get', Mandatory)] + [Parameter(ParameterSetName='List', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [System.String] + # Name of the top level domain. + ${DomainName}, + + [Parameter(ParameterSetName='Get', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [System.String] + # Name of the event subscription. + ${EventSubscriptionName}, + + [Parameter(ParameterSetName='Get', Mandatory)] + [Parameter(ParameterSetName='List', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [System.String] + # The name of the resource group within the user's subscription. + ${ResourceGroupName}, + + [Parameter(ParameterSetName='Get')] + [Parameter(ParameterSetName='List')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] + [System.String[]] + # Subscription credentials that uniquely identify a Microsoft Azure subscription. + # The subscription ID forms part of the URI for every service call. + ${SubscriptionId}, + + [Parameter(ParameterSetName='Get', Mandatory)] + [Parameter(ParameterSetName='List', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [System.String] + # Name of the domain topic. + ${TopicName}, + + [Parameter(ParameterSetName='GetViaIdentity', Mandatory, ValueFromPipeline)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.IEventGridIdentity] + # Identity Parameter + # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + ${InputObject}, + + [Parameter()] + [Alias('AzureRMContext', 'AzureCredential')] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Returns true when the command succeeds + ${PassThru}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + if ($null -eq [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion) { + [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion = $Host.Runspace.Version.ToString() + } + $preTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + if ($preTelemetryId -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId =(New-Guid).ToString() + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.module]::Instance.Telemetry.Invoke('Create', $MyInvocation, $parameterSet, $PSCmdlet) + } else { + $internalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + if ($internalCalledCmdlets -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $MyInvocation.MyCommand.Name + } else { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets += ',' + $MyInvocation.MyCommand.Name + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = 'internal' + } + + $mapping = @{ + Get = 'Az.EventGrid.private\Get-AzEventGridDomainTopicEventSubscription_Get'; + GetViaIdentity = 'Az.EventGrid.private\Get-AzEventGridDomainTopicEventSubscription_GetViaIdentity'; + List = 'Az.EventGrid.private\Get-AzEventGridDomainTopicEventSubscription_List'; + } + if (('Get', 'List') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { + $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } + + finally { + $backupTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + $backupInternalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + +} +end { + try { + $steppablePipeline.End() + + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $backupTelemetryId + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $backupInternalCalledCmdlets + if ($preTelemetryId -eq '') { + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.module]::Instance.Telemetry.Invoke('Send', $MyInvocation, $parameterSet, $PSCmdlet) + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $preTelemetryId + + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} +} diff --git a/swaggerci/eventgrid/exports/Get-AzEventGridDomainTopicEventSubscriptionDeliveryAttribute.ps1 b/swaggerci/eventgrid/exports/Get-AzEventGridDomainTopicEventSubscriptionDeliveryAttribute.ps1 new file mode 100644 index 000000000000..deeccf911a5a --- /dev/null +++ b/swaggerci/eventgrid/exports/Get-AzEventGridDomainTopicEventSubscriptionDeliveryAttribute.ps1 @@ -0,0 +1,230 @@ + +# ---------------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for license information. +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is regenerated. +# ---------------------------------------------------------------------------------- + +<# +.Synopsis +Get all delivery attributes for an event subscription for domain topic. +.Description +Get all delivery attributes for an event subscription for domain topic. +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Inputs +Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.IEventGridIdentity +.Outputs +Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDeliveryAttributeMapping +.Notes +COMPLEX PARAMETER PROPERTIES + +To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. + +INPUTOBJECT : Identity Parameter + [ChannelName ]: Name of the channel. + [DomainName ]: Name of the domain. + [DomainTopicName ]: Name of the topic. + [EventChannelName ]: Name of the event channel. + [EventSubscriptionName ]: Name of the event subscription. + [Id ]: Resource identity path + [Location ]: Name of the location. + [ParentName ]: The name of the parent resource (namely, either, the topic name, domain name, or partner namespace name). + [ParentType ]: The type of the parent resource. This can be either \'topics\', \'domains\', or \'partnerNamespaces\'. + [PartnerDestinationName ]: Name of the partner destination. + [PartnerNamespaceName ]: Name of the partner namespace. + [PartnerRegistrationName ]: Name of the partner registration. + [PartnerTopicName ]: Name of the partner topic. + [PrivateEndpointConnectionName ]: The name of the private endpoint connection connection. + [PrivateLinkResourceName ]: The name of private link resource. + [ProviderNamespace ]: Namespace of the provider of the topic. + [ResourceGroupName ]: The name of the resource group within the partners subscription. + [ResourceName ]: Name of the resource. + [ResourceTypeName ]: Name of the resource type. + [Scope ]: The scope of the event subscription. The scope can be a subscription, or a resource group, or a top level resource belonging to a resource provider namespace, or an EventGrid topic. For example, use '/subscriptions/{subscriptionId}/' for a subscription, '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}' for a resource group, and '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}' for a resource, and '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.EventGrid/topics/{topicName}' for an EventGrid topic. + [SubscriptionId ]: Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription ID forms part of the URI for every service call. + [SystemTopicName ]: Name of the system topic. + [TopicName ]: Name of the domain topic. + [TopicTypeName ]: Name of the topic type. + [VerifiedPartnerName ]: Name of the verified partner. +.Link +https://docs.microsoft.com/en-us/powershell/module/az.eventgrid/get-azeventgriddomaintopiceventsubscriptiondeliveryattribute +#> +function Get-AzEventGridDomainTopicEventSubscriptionDeliveryAttribute { +[OutputType([Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDeliveryAttributeMapping])] +[CmdletBinding(DefaultParameterSetName='Get', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(ParameterSetName='Get', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [System.String] + # Name of the top level domain. + ${DomainName}, + + [Parameter(ParameterSetName='Get', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [System.String] + # Name of the event subscription. + ${EventSubscriptionName}, + + [Parameter(ParameterSetName='Get', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [System.String] + # The name of the resource group within the user's subscription. + ${ResourceGroupName}, + + [Parameter(ParameterSetName='Get')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] + [System.String[]] + # Subscription credentials that uniquely identify a Microsoft Azure subscription. + # The subscription ID forms part of the URI for every service call. + ${SubscriptionId}, + + [Parameter(ParameterSetName='Get', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [System.String] + # Name of the domain topic. + ${TopicName}, + + [Parameter(ParameterSetName='GetViaIdentity', Mandatory, ValueFromPipeline)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.IEventGridIdentity] + # Identity Parameter + # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + ${InputObject}, + + [Parameter()] + [Alias('AzureRMContext', 'AzureCredential')] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Returns true when the command succeeds + ${PassThru}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + if ($null -eq [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion) { + [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion = $Host.Runspace.Version.ToString() + } + $preTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + if ($preTelemetryId -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId =(New-Guid).ToString() + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.module]::Instance.Telemetry.Invoke('Create', $MyInvocation, $parameterSet, $PSCmdlet) + } else { + $internalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + if ($internalCalledCmdlets -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $MyInvocation.MyCommand.Name + } else { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets += ',' + $MyInvocation.MyCommand.Name + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = 'internal' + } + + $mapping = @{ + Get = 'Az.EventGrid.private\Get-AzEventGridDomainTopicEventSubscriptionDeliveryAttribute_Get'; + GetViaIdentity = 'Az.EventGrid.private\Get-AzEventGridDomainTopicEventSubscriptionDeliveryAttribute_GetViaIdentity'; + } + if (('Get') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { + $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } + + finally { + $backupTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + $backupInternalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + +} +end { + try { + $steppablePipeline.End() + + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $backupTelemetryId + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $backupInternalCalledCmdlets + if ($preTelemetryId -eq '') { + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.module]::Instance.Telemetry.Invoke('Send', $MyInvocation, $parameterSet, $PSCmdlet) + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $preTelemetryId + + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} +} diff --git a/swaggerci/eventgrid/exports/Get-AzEventGridDomainTopicEventSubscriptionFullUrl.ps1 b/swaggerci/eventgrid/exports/Get-AzEventGridDomainTopicEventSubscriptionFullUrl.ps1 new file mode 100644 index 000000000000..394105825de9 --- /dev/null +++ b/swaggerci/eventgrid/exports/Get-AzEventGridDomainTopicEventSubscriptionFullUrl.ps1 @@ -0,0 +1,230 @@ + +# ---------------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for license information. +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is regenerated. +# ---------------------------------------------------------------------------------- + +<# +.Synopsis +Get the full endpoint URL for a nested event subscription for domain topic. +.Description +Get the full endpoint URL for a nested event subscription for domain topic. +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Inputs +Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.IEventGridIdentity +.Outputs +System.String +.Notes +COMPLEX PARAMETER PROPERTIES + +To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. + +INPUTOBJECT : Identity Parameter + [ChannelName ]: Name of the channel. + [DomainName ]: Name of the domain. + [DomainTopicName ]: Name of the topic. + [EventChannelName ]: Name of the event channel. + [EventSubscriptionName ]: Name of the event subscription. + [Id ]: Resource identity path + [Location ]: Name of the location. + [ParentName ]: The name of the parent resource (namely, either, the topic name, domain name, or partner namespace name). + [ParentType ]: The type of the parent resource. This can be either \'topics\', \'domains\', or \'partnerNamespaces\'. + [PartnerDestinationName ]: Name of the partner destination. + [PartnerNamespaceName ]: Name of the partner namespace. + [PartnerRegistrationName ]: Name of the partner registration. + [PartnerTopicName ]: Name of the partner topic. + [PrivateEndpointConnectionName ]: The name of the private endpoint connection connection. + [PrivateLinkResourceName ]: The name of private link resource. + [ProviderNamespace ]: Namespace of the provider of the topic. + [ResourceGroupName ]: The name of the resource group within the partners subscription. + [ResourceName ]: Name of the resource. + [ResourceTypeName ]: Name of the resource type. + [Scope ]: The scope of the event subscription. The scope can be a subscription, or a resource group, or a top level resource belonging to a resource provider namespace, or an EventGrid topic. For example, use '/subscriptions/{subscriptionId}/' for a subscription, '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}' for a resource group, and '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}' for a resource, and '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.EventGrid/topics/{topicName}' for an EventGrid topic. + [SubscriptionId ]: Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription ID forms part of the URI for every service call. + [SystemTopicName ]: Name of the system topic. + [TopicName ]: Name of the domain topic. + [TopicTypeName ]: Name of the topic type. + [VerifiedPartnerName ]: Name of the verified partner. +.Link +https://docs.microsoft.com/en-us/powershell/module/az.eventgrid/get-azeventgriddomaintopiceventsubscriptionfullurl +#> +function Get-AzEventGridDomainTopicEventSubscriptionFullUrl { +[OutputType([System.String])] +[CmdletBinding(DefaultParameterSetName='Get', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(ParameterSetName='Get', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [System.String] + # Name of the top level domain. + ${DomainName}, + + [Parameter(ParameterSetName='Get', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [System.String] + # Name of the event subscription. + ${EventSubscriptionName}, + + [Parameter(ParameterSetName='Get', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [System.String] + # The name of the resource group within the user's subscription. + ${ResourceGroupName}, + + [Parameter(ParameterSetName='Get')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] + [System.String[]] + # Subscription credentials that uniquely identify a Microsoft Azure subscription. + # The subscription ID forms part of the URI for every service call. + ${SubscriptionId}, + + [Parameter(ParameterSetName='Get', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [System.String] + # Name of the domain topic. + ${TopicName}, + + [Parameter(ParameterSetName='GetViaIdentity', Mandatory, ValueFromPipeline)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.IEventGridIdentity] + # Identity Parameter + # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + ${InputObject}, + + [Parameter()] + [Alias('AzureRMContext', 'AzureCredential')] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Returns true when the command succeeds + ${PassThru}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + if ($null -eq [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion) { + [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion = $Host.Runspace.Version.ToString() + } + $preTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + if ($preTelemetryId -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId =(New-Guid).ToString() + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.module]::Instance.Telemetry.Invoke('Create', $MyInvocation, $parameterSet, $PSCmdlet) + } else { + $internalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + if ($internalCalledCmdlets -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $MyInvocation.MyCommand.Name + } else { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets += ',' + $MyInvocation.MyCommand.Name + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = 'internal' + } + + $mapping = @{ + Get = 'Az.EventGrid.private\Get-AzEventGridDomainTopicEventSubscriptionFullUrl_Get'; + GetViaIdentity = 'Az.EventGrid.private\Get-AzEventGridDomainTopicEventSubscriptionFullUrl_GetViaIdentity'; + } + if (('Get') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { + $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } + + finally { + $backupTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + $backupInternalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + +} +end { + try { + $steppablePipeline.End() + + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $backupTelemetryId + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $backupInternalCalledCmdlets + if ($preTelemetryId -eq '') { + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.module]::Instance.Telemetry.Invoke('Send', $MyInvocation, $parameterSet, $PSCmdlet) + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $preTelemetryId + + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} +} diff --git a/swaggerci/eventgrid/exports/Get-AzEventGridEventChannel.ps1 b/swaggerci/eventgrid/exports/Get-AzEventGridEventChannel.ps1 new file mode 100644 index 000000000000..9df7f4373b9e --- /dev/null +++ b/swaggerci/eventgrid/exports/Get-AzEventGridEventChannel.ps1 @@ -0,0 +1,248 @@ + +# ---------------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for license information. +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is regenerated. +# ---------------------------------------------------------------------------------- + +<# +.Synopsis +Get properties of an event channel. +.Description +Get properties of an event channel. +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Inputs +Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.IEventGridIdentity +.Outputs +Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventChannel +.Notes +COMPLEX PARAMETER PROPERTIES + +To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. + +INPUTOBJECT : Identity Parameter + [ChannelName ]: Name of the channel. + [DomainName ]: Name of the domain. + [DomainTopicName ]: Name of the topic. + [EventChannelName ]: Name of the event channel. + [EventSubscriptionName ]: Name of the event subscription. + [Id ]: Resource identity path + [Location ]: Name of the location. + [ParentName ]: The name of the parent resource (namely, either, the topic name, domain name, or partner namespace name). + [ParentType ]: The type of the parent resource. This can be either \'topics\', \'domains\', or \'partnerNamespaces\'. + [PartnerDestinationName ]: Name of the partner destination. + [PartnerNamespaceName ]: Name of the partner namespace. + [PartnerRegistrationName ]: Name of the partner registration. + [PartnerTopicName ]: Name of the partner topic. + [PrivateEndpointConnectionName ]: The name of the private endpoint connection connection. + [PrivateLinkResourceName ]: The name of private link resource. + [ProviderNamespace ]: Namespace of the provider of the topic. + [ResourceGroupName ]: The name of the resource group within the partners subscription. + [ResourceName ]: Name of the resource. + [ResourceTypeName ]: Name of the resource type. + [Scope ]: The scope of the event subscription. The scope can be a subscription, or a resource group, or a top level resource belonging to a resource provider namespace, or an EventGrid topic. For example, use '/subscriptions/{subscriptionId}/' for a subscription, '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}' for a resource group, and '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}' for a resource, and '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.EventGrid/topics/{topicName}' for an EventGrid topic. + [SubscriptionId ]: Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription ID forms part of the URI for every service call. + [SystemTopicName ]: Name of the system topic. + [TopicName ]: Name of the domain topic. + [TopicTypeName ]: Name of the topic type. + [VerifiedPartnerName ]: Name of the verified partner. +.Link +https://docs.microsoft.com/en-us/powershell/module/az.eventgrid/get-azeventgrideventchannel +#> +function Get-AzEventGridEventChannel { +[OutputType([Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventChannel])] +[CmdletBinding(DefaultParameterSetName='List', PositionalBinding=$false)] +param( + [Parameter(ParameterSetName='Get', Mandatory)] + [Alias('EventChannelName')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [System.String] + # Name of the event channel. + ${Name}, + + [Parameter(ParameterSetName='Get', Mandatory)] + [Parameter(ParameterSetName='List', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [System.String] + # Name of the partner namespace. + ${PartnerNamespaceName}, + + [Parameter(ParameterSetName='Get', Mandatory)] + [Parameter(ParameterSetName='List', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [System.String] + # The name of the resource group within the user's subscription. + ${ResourceGroupName}, + + [Parameter(ParameterSetName='Get')] + [Parameter(ParameterSetName='List')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] + [System.String[]] + # Subscription credentials that uniquely identify a Microsoft Azure subscription. + # The subscription ID forms part of the URI for every service call. + ${SubscriptionId}, + + [Parameter(ParameterSetName='GetViaIdentity', Mandatory, ValueFromPipeline)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.IEventGridIdentity] + # Identity Parameter + # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + ${InputObject}, + + [Parameter(ParameterSetName='List')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Query')] + [System.String] + # The query used to filter the search results using OData syntax. + # Filtering is permitted on the 'name' property only and with limited number of OData operations. + # These operations are: the 'contains' function as well as the following logical operations: not, and, or, eq (for equal), and ne (for not equal). + # No arithmetic operations are supported. + # The following is a valid filter example: $filter=contains(namE, 'PATTERN') and name ne 'PATTERN-1'. + # The following is not a valid filter example: $filter=location eq 'westus'. + ${Filter}, + + [Parameter(ParameterSetName='List')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Query')] + [System.Int32] + # The number of results to return per page for the list operation. + # Valid range for top parameter is 1 to 100. + # If not specified, the default number of results to be returned is 20 items per page. + ${Top}, + + [Parameter()] + [Alias('AzureRMContext', 'AzureCredential')] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Returns true when the command succeeds + ${PassThru}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + if ($null -eq [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion) { + [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion = $Host.Runspace.Version.ToString() + } + $preTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + if ($preTelemetryId -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId =(New-Guid).ToString() + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.module]::Instance.Telemetry.Invoke('Create', $MyInvocation, $parameterSet, $PSCmdlet) + } else { + $internalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + if ($internalCalledCmdlets -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $MyInvocation.MyCommand.Name + } else { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets += ',' + $MyInvocation.MyCommand.Name + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = 'internal' + } + + $mapping = @{ + Get = 'Az.EventGrid.private\Get-AzEventGridEventChannel_Get'; + GetViaIdentity = 'Az.EventGrid.private\Get-AzEventGridEventChannel_GetViaIdentity'; + List = 'Az.EventGrid.private\Get-AzEventGridEventChannel_List'; + } + if (('Get', 'List') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { + $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } + + finally { + $backupTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + $backupInternalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + +} +end { + try { + $steppablePipeline.End() + + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $backupTelemetryId + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $backupInternalCalledCmdlets + if ($preTelemetryId -eq '') { + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.module]::Instance.Telemetry.Invoke('Send', $MyInvocation, $parameterSet, $PSCmdlet) + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $preTelemetryId + + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} +} diff --git a/swaggerci/eventgrid/exports/Get-AzEventGridEventSubscription.ps1 b/swaggerci/eventgrid/exports/Get-AzEventGridEventSubscription.ps1 new file mode 100644 index 000000000000..862268cb7c4e --- /dev/null +++ b/swaggerci/eventgrid/exports/Get-AzEventGridEventSubscription.ps1 @@ -0,0 +1,282 @@ + +# ---------------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for license information. +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is regenerated. +# ---------------------------------------------------------------------------------- + +<# +.Synopsis +Get properties of an event subscription. +.Description +Get properties of an event subscription. +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Inputs +Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.IEventGridIdentity +.Outputs +Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscription +.Notes +COMPLEX PARAMETER PROPERTIES + +To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. + +INPUTOBJECT : Identity Parameter + [ChannelName ]: Name of the channel. + [DomainName ]: Name of the domain. + [DomainTopicName ]: Name of the topic. + [EventChannelName ]: Name of the event channel. + [EventSubscriptionName ]: Name of the event subscription. + [Id ]: Resource identity path + [Location ]: Name of the location. + [ParentName ]: The name of the parent resource (namely, either, the topic name, domain name, or partner namespace name). + [ParentType ]: The type of the parent resource. This can be either \'topics\', \'domains\', or \'partnerNamespaces\'. + [PartnerDestinationName ]: Name of the partner destination. + [PartnerNamespaceName ]: Name of the partner namespace. + [PartnerRegistrationName ]: Name of the partner registration. + [PartnerTopicName ]: Name of the partner topic. + [PrivateEndpointConnectionName ]: The name of the private endpoint connection connection. + [PrivateLinkResourceName ]: The name of private link resource. + [ProviderNamespace ]: Namespace of the provider of the topic. + [ResourceGroupName ]: The name of the resource group within the partners subscription. + [ResourceName ]: Name of the resource. + [ResourceTypeName ]: Name of the resource type. + [Scope ]: The scope of the event subscription. The scope can be a subscription, or a resource group, or a top level resource belonging to a resource provider namespace, or an EventGrid topic. For example, use '/subscriptions/{subscriptionId}/' for a subscription, '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}' for a resource group, and '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}' for a resource, and '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.EventGrid/topics/{topicName}' for an EventGrid topic. + [SubscriptionId ]: Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription ID forms part of the URI for every service call. + [SystemTopicName ]: Name of the system topic. + [TopicName ]: Name of the domain topic. + [TopicTypeName ]: Name of the topic type. + [VerifiedPartnerName ]: Name of the verified partner. +.Link +https://docs.microsoft.com/en-us/powershell/module/az.eventgrid/get-azeventgrideventsubscription +#> +function Get-AzEventGridEventSubscription { +[OutputType([Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscription])] +[CmdletBinding(DefaultParameterSetName='Get', PositionalBinding=$false)] +param( + [Parameter(ParameterSetName='Get', Mandatory)] + [Alias('EventSubscriptionName')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [System.String] + # Name of the event subscription. + ${Name}, + + [Parameter(ParameterSetName='Get', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [System.String] + # The scope of the event subscription. + # The scope can be a subscription, or a resource group, or a top level resource belonging to a resource provider namespace, or an EventGrid topic. + # For example, use '/subscriptions/{subscriptionId}/' for a subscription, '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}' for a resource group, and '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}' for a resource, and '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.EventGrid/topics/{topicName}' for an EventGrid topic. + ${Scope}, + + [Parameter(ParameterSetName='GetViaIdentity', Mandatory, ValueFromPipeline)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.IEventGridIdentity] + # Identity Parameter + # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + ${InputObject}, + + [Parameter(ParameterSetName='List', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [System.String] + # Namespace of the provider of the topic. + ${ProviderNamespace}, + + [Parameter(ParameterSetName='List', Mandatory)] + [Parameter(ParameterSetName='List1', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [System.String] + # The name of the resource group within the user's subscription. + ${ResourceGroupName}, + + [Parameter(ParameterSetName='List', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [System.String] + # Name of the resource. + ${ResourceName}, + + [Parameter(ParameterSetName='List', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [System.String] + # Name of the resource type. + ${ResourceTypeName}, + + [Parameter(ParameterSetName='List')] + [Parameter(ParameterSetName='List1')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] + [System.String[]] + # Subscription credentials that uniquely identify a Microsoft Azure subscription. + # The subscription ID forms part of the URI for every service call. + ${SubscriptionId}, + + [Parameter(ParameterSetName='List1', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [System.String] + # Name of the top level domain. + ${DomainName}, + + [Parameter(ParameterSetName='List1', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [System.String] + # Name of the domain topic. + ${TopicName}, + + [Parameter(ParameterSetName='List')] + [Parameter(ParameterSetName='List1')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Query')] + [System.String] + # The query used to filter the search results using OData syntax. + # Filtering is permitted on the 'name' property only and with limited number of OData operations. + # These operations are: the 'contains' function as well as the following logical operations: not, and, or, eq (for equal), and ne (for not equal). + # No arithmetic operations are supported. + # The following is a valid filter example: $filter=contains(namE, 'PATTERN') and name ne 'PATTERN-1'. + # The following is not a valid filter example: $filter=location eq 'westus'. + ${Filter}, + + [Parameter(ParameterSetName='List')] + [Parameter(ParameterSetName='List1')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Query')] + [System.Int32] + # The number of results to return per page for the list operation. + # Valid range for top parameter is 1 to 100. + # If not specified, the default number of results to be returned is 20 items per page. + ${Top}, + + [Parameter()] + [Alias('AzureRMContext', 'AzureCredential')] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Returns true when the command succeeds + ${PassThru}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + if ($null -eq [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion) { + [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion = $Host.Runspace.Version.ToString() + } + $preTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + if ($preTelemetryId -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId =(New-Guid).ToString() + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.module]::Instance.Telemetry.Invoke('Create', $MyInvocation, $parameterSet, $PSCmdlet) + } else { + $internalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + if ($internalCalledCmdlets -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $MyInvocation.MyCommand.Name + } else { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets += ',' + $MyInvocation.MyCommand.Name + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = 'internal' + } + + $mapping = @{ + Get = 'Az.EventGrid.private\Get-AzEventGridEventSubscription_Get'; + GetViaIdentity = 'Az.EventGrid.private\Get-AzEventGridEventSubscription_GetViaIdentity'; + List = 'Az.EventGrid.private\Get-AzEventGridEventSubscription_List'; + List1 = 'Az.EventGrid.private\Get-AzEventGridEventSubscription_List1'; + } + if (('List', 'List1') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { + $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } + + finally { + $backupTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + $backupInternalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + +} +end { + try { + $steppablePipeline.End() + + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $backupTelemetryId + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $backupInternalCalledCmdlets + if ($preTelemetryId -eq '') { + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.module]::Instance.Telemetry.Invoke('Send', $MyInvocation, $parameterSet, $PSCmdlet) + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $preTelemetryId + + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} +} diff --git a/swaggerci/eventgrid/exports/Get-AzEventGridEventSubscriptionDeliveryAttribute.ps1 b/swaggerci/eventgrid/exports/Get-AzEventGridEventSubscriptionDeliveryAttribute.ps1 new file mode 100644 index 000000000000..af1a16659e7e --- /dev/null +++ b/swaggerci/eventgrid/exports/Get-AzEventGridEventSubscriptionDeliveryAttribute.ps1 @@ -0,0 +1,209 @@ + +# ---------------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for license information. +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is regenerated. +# ---------------------------------------------------------------------------------- + +<# +.Synopsis +Get all delivery attributes for an event subscription. +.Description +Get all delivery attributes for an event subscription. +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Inputs +Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.IEventGridIdentity +.Outputs +Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDeliveryAttributeMapping +.Notes +COMPLEX PARAMETER PROPERTIES + +To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. + +INPUTOBJECT : Identity Parameter + [ChannelName ]: Name of the channel. + [DomainName ]: Name of the domain. + [DomainTopicName ]: Name of the topic. + [EventChannelName ]: Name of the event channel. + [EventSubscriptionName ]: Name of the event subscription. + [Id ]: Resource identity path + [Location ]: Name of the location. + [ParentName ]: The name of the parent resource (namely, either, the topic name, domain name, or partner namespace name). + [ParentType ]: The type of the parent resource. This can be either \'topics\', \'domains\', or \'partnerNamespaces\'. + [PartnerDestinationName ]: Name of the partner destination. + [PartnerNamespaceName ]: Name of the partner namespace. + [PartnerRegistrationName ]: Name of the partner registration. + [PartnerTopicName ]: Name of the partner topic. + [PrivateEndpointConnectionName ]: The name of the private endpoint connection connection. + [PrivateLinkResourceName ]: The name of private link resource. + [ProviderNamespace ]: Namespace of the provider of the topic. + [ResourceGroupName ]: The name of the resource group within the partners subscription. + [ResourceName ]: Name of the resource. + [ResourceTypeName ]: Name of the resource type. + [Scope ]: The scope of the event subscription. The scope can be a subscription, or a resource group, or a top level resource belonging to a resource provider namespace, or an EventGrid topic. For example, use '/subscriptions/{subscriptionId}/' for a subscription, '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}' for a resource group, and '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}' for a resource, and '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.EventGrid/topics/{topicName}' for an EventGrid topic. + [SubscriptionId ]: Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription ID forms part of the URI for every service call. + [SystemTopicName ]: Name of the system topic. + [TopicName ]: Name of the domain topic. + [TopicTypeName ]: Name of the topic type. + [VerifiedPartnerName ]: Name of the verified partner. +.Link +https://docs.microsoft.com/en-us/powershell/module/az.eventgrid/get-azeventgrideventsubscriptiondeliveryattribute +#> +function Get-AzEventGridEventSubscriptionDeliveryAttribute { +[OutputType([Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDeliveryAttributeMapping])] +[CmdletBinding(DefaultParameterSetName='Get', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(ParameterSetName='Get', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [System.String] + # Name of the event subscription. + ${EventSubscriptionName}, + + [Parameter(ParameterSetName='Get', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [System.String] + # The scope of the event subscription. + # The scope can be a subscription, or a resource group, or a top level resource belonging to a resource provider namespace, or an EventGrid topic. + # For example, use '/subscriptions/{subscriptionId}/' for a subscription, '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}' for a resource group, and '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}' for a resource, and '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.EventGrid/topics/{topicName}' for an EventGrid topic. + ${Scope}, + + [Parameter(ParameterSetName='GetViaIdentity', Mandatory, ValueFromPipeline)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.IEventGridIdentity] + # Identity Parameter + # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + ${InputObject}, + + [Parameter()] + [Alias('AzureRMContext', 'AzureCredential')] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Returns true when the command succeeds + ${PassThru}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + if ($null -eq [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion) { + [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion = $Host.Runspace.Version.ToString() + } + $preTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + if ($preTelemetryId -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId =(New-Guid).ToString() + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.module]::Instance.Telemetry.Invoke('Create', $MyInvocation, $parameterSet, $PSCmdlet) + } else { + $internalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + if ($internalCalledCmdlets -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $MyInvocation.MyCommand.Name + } else { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets += ',' + $MyInvocation.MyCommand.Name + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = 'internal' + } + + $mapping = @{ + Get = 'Az.EventGrid.private\Get-AzEventGridEventSubscriptionDeliveryAttribute_Get'; + GetViaIdentity = 'Az.EventGrid.private\Get-AzEventGridEventSubscriptionDeliveryAttribute_GetViaIdentity'; + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } + + finally { + $backupTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + $backupInternalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + +} +end { + try { + $steppablePipeline.End() + + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $backupTelemetryId + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $backupInternalCalledCmdlets + if ($preTelemetryId -eq '') { + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.module]::Instance.Telemetry.Invoke('Send', $MyInvocation, $parameterSet, $PSCmdlet) + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $preTelemetryId + + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} +} diff --git a/swaggerci/eventgrid/exports/Get-AzEventGridEventSubscriptionFullUrl.ps1 b/swaggerci/eventgrid/exports/Get-AzEventGridEventSubscriptionFullUrl.ps1 new file mode 100644 index 000000000000..31778857972a --- /dev/null +++ b/swaggerci/eventgrid/exports/Get-AzEventGridEventSubscriptionFullUrl.ps1 @@ -0,0 +1,209 @@ + +# ---------------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for license information. +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is regenerated. +# ---------------------------------------------------------------------------------- + +<# +.Synopsis +Get the full endpoint URL for an event subscription. +.Description +Get the full endpoint URL for an event subscription. +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Inputs +Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.IEventGridIdentity +.Outputs +System.String +.Notes +COMPLEX PARAMETER PROPERTIES + +To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. + +INPUTOBJECT : Identity Parameter + [ChannelName ]: Name of the channel. + [DomainName ]: Name of the domain. + [DomainTopicName ]: Name of the topic. + [EventChannelName ]: Name of the event channel. + [EventSubscriptionName ]: Name of the event subscription. + [Id ]: Resource identity path + [Location ]: Name of the location. + [ParentName ]: The name of the parent resource (namely, either, the topic name, domain name, or partner namespace name). + [ParentType ]: The type of the parent resource. This can be either \'topics\', \'domains\', or \'partnerNamespaces\'. + [PartnerDestinationName ]: Name of the partner destination. + [PartnerNamespaceName ]: Name of the partner namespace. + [PartnerRegistrationName ]: Name of the partner registration. + [PartnerTopicName ]: Name of the partner topic. + [PrivateEndpointConnectionName ]: The name of the private endpoint connection connection. + [PrivateLinkResourceName ]: The name of private link resource. + [ProviderNamespace ]: Namespace of the provider of the topic. + [ResourceGroupName ]: The name of the resource group within the partners subscription. + [ResourceName ]: Name of the resource. + [ResourceTypeName ]: Name of the resource type. + [Scope ]: The scope of the event subscription. The scope can be a subscription, or a resource group, or a top level resource belonging to a resource provider namespace, or an EventGrid topic. For example, use '/subscriptions/{subscriptionId}/' for a subscription, '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}' for a resource group, and '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}' for a resource, and '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.EventGrid/topics/{topicName}' for an EventGrid topic. + [SubscriptionId ]: Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription ID forms part of the URI for every service call. + [SystemTopicName ]: Name of the system topic. + [TopicName ]: Name of the domain topic. + [TopicTypeName ]: Name of the topic type. + [VerifiedPartnerName ]: Name of the verified partner. +.Link +https://docs.microsoft.com/en-us/powershell/module/az.eventgrid/get-azeventgrideventsubscriptionfullurl +#> +function Get-AzEventGridEventSubscriptionFullUrl { +[OutputType([System.String])] +[CmdletBinding(DefaultParameterSetName='Get', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(ParameterSetName='Get', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [System.String] + # Name of the event subscription. + ${EventSubscriptionName}, + + [Parameter(ParameterSetName='Get', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [System.String] + # The scope of the event subscription. + # The scope can be a subscription, or a resource group, or a top level resource belonging to a resource provider namespace, or an EventGrid topic. + # For example, use '/subscriptions/{subscriptionId}/' for a subscription, '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}' for a resource group, and '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}' for a resource, and '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.EventGrid/topics/{topicName}' for an EventGrid topic. + ${Scope}, + + [Parameter(ParameterSetName='GetViaIdentity', Mandatory, ValueFromPipeline)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.IEventGridIdentity] + # Identity Parameter + # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + ${InputObject}, + + [Parameter()] + [Alias('AzureRMContext', 'AzureCredential')] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Returns true when the command succeeds + ${PassThru}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + if ($null -eq [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion) { + [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion = $Host.Runspace.Version.ToString() + } + $preTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + if ($preTelemetryId -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId =(New-Guid).ToString() + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.module]::Instance.Telemetry.Invoke('Create', $MyInvocation, $parameterSet, $PSCmdlet) + } else { + $internalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + if ($internalCalledCmdlets -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $MyInvocation.MyCommand.Name + } else { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets += ',' + $MyInvocation.MyCommand.Name + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = 'internal' + } + + $mapping = @{ + Get = 'Az.EventGrid.private\Get-AzEventGridEventSubscriptionFullUrl_Get'; + GetViaIdentity = 'Az.EventGrid.private\Get-AzEventGridEventSubscriptionFullUrl_GetViaIdentity'; + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } + + finally { + $backupTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + $backupInternalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + +} +end { + try { + $steppablePipeline.End() + + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $backupTelemetryId + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $backupInternalCalledCmdlets + if ($preTelemetryId -eq '') { + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.module]::Instance.Telemetry.Invoke('Send', $MyInvocation, $parameterSet, $PSCmdlet) + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $preTelemetryId + + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} +} diff --git a/swaggerci/eventgrid/exports/Get-AzEventGridEventSubscriptionGlobal.ps1 b/swaggerci/eventgrid/exports/Get-AzEventGridEventSubscriptionGlobal.ps1 new file mode 100644 index 000000000000..e7f90a8e8e66 --- /dev/null +++ b/swaggerci/eventgrid/exports/Get-AzEventGridEventSubscriptionGlobal.ps1 @@ -0,0 +1,201 @@ + +# ---------------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for license information. +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is regenerated. +# ---------------------------------------------------------------------------------- + +<# +.Synopsis +List all aggregated global event subscriptions under a specific Azure subscription. +.Description +List all aggregated global event subscriptions under a specific Azure subscription. +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Outputs +Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscription +.Link +https://docs.microsoft.com/en-us/powershell/module/az.eventgrid/get-azeventgrideventsubscriptionglobal +#> +function Get-AzEventGridEventSubscriptionGlobal { +[OutputType([Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscription])] +[CmdletBinding(DefaultParameterSetName='List', PositionalBinding=$false)] +param( + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] + [System.String[]] + # Subscription credentials that uniquely identify a Microsoft Azure subscription. + # The subscription ID forms part of the URI for every service call. + ${SubscriptionId}, + + [Parameter(ParameterSetName='List1', Mandatory)] + [Parameter(ParameterSetName='List3', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [System.String] + # Name of the topic type. + ${TopicTypeName}, + + [Parameter(ParameterSetName='List2', Mandatory)] + [Parameter(ParameterSetName='List3', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [System.String] + # The name of the resource group within the user's subscription. + ${ResourceGroupName}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Query')] + [System.String] + # The query used to filter the search results using OData syntax. + # Filtering is permitted on the 'name' property only and with limited number of OData operations. + # These operations are: the 'contains' function as well as the following logical operations: not, and, or, eq (for equal), and ne (for not equal). + # No arithmetic operations are supported. + # The following is a valid filter example: $filter=contains(namE, 'PATTERN') and name ne 'PATTERN-1'. + # The following is not a valid filter example: $filter=location eq 'westus'. + ${Filter}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Query')] + [System.Int32] + # The number of results to return per page for the list operation. + # Valid range for top parameter is 1 to 100. + # If not specified, the default number of results to be returned is 20 items per page. + ${Top}, + + [Parameter()] + [Alias('AzureRMContext', 'AzureCredential')] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Returns true when the command succeeds + ${PassThru}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + if ($null -eq [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion) { + [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion = $Host.Runspace.Version.ToString() + } + $preTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + if ($preTelemetryId -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId =(New-Guid).ToString() + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.module]::Instance.Telemetry.Invoke('Create', $MyInvocation, $parameterSet, $PSCmdlet) + } else { + $internalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + if ($internalCalledCmdlets -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $MyInvocation.MyCommand.Name + } else { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets += ',' + $MyInvocation.MyCommand.Name + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = 'internal' + } + + $mapping = @{ + List = 'Az.EventGrid.private\Get-AzEventGridEventSubscriptionGlobal_List'; + List1 = 'Az.EventGrid.private\Get-AzEventGridEventSubscriptionGlobal_List1'; + List2 = 'Az.EventGrid.private\Get-AzEventGridEventSubscriptionGlobal_List2'; + List3 = 'Az.EventGrid.private\Get-AzEventGridEventSubscriptionGlobal_List3'; + } + if (('List', 'List1', 'List2', 'List3') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { + $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } + + finally { + $backupTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + $backupInternalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + +} +end { + try { + $steppablePipeline.End() + + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $backupTelemetryId + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $backupInternalCalledCmdlets + if ($preTelemetryId -eq '') { + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.module]::Instance.Telemetry.Invoke('Send', $MyInvocation, $parameterSet, $PSCmdlet) + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $preTelemetryId + + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} +} diff --git a/swaggerci/eventgrid/exports/Get-AzEventGridEventSubscriptionRegional.ps1 b/swaggerci/eventgrid/exports/Get-AzEventGridEventSubscriptionRegional.ps1 new file mode 100644 index 000000000000..00bd9a7a0fc8 --- /dev/null +++ b/swaggerci/eventgrid/exports/Get-AzEventGridEventSubscriptionRegional.ps1 @@ -0,0 +1,207 @@ + +# ---------------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for license information. +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is regenerated. +# ---------------------------------------------------------------------------------- + +<# +.Synopsis +List all event subscriptions from the given location under a specific Azure subscription. +.Description +List all event subscriptions from the given location under a specific Azure subscription. +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Outputs +Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscription +.Link +https://docs.microsoft.com/en-us/powershell/module/az.eventgrid/get-azeventgrideventsubscriptionregional +#> +function Get-AzEventGridEventSubscriptionRegional { +[OutputType([Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscription])] +[CmdletBinding(DefaultParameterSetName='List', PositionalBinding=$false)] +param( + [Parameter(Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [System.String] + # Name of the location. + ${Location}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] + [System.String[]] + # Subscription credentials that uniquely identify a Microsoft Azure subscription. + # The subscription ID forms part of the URI for every service call. + ${SubscriptionId}, + + [Parameter(ParameterSetName='List1', Mandatory)] + [Parameter(ParameterSetName='List3', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [System.String] + # The name of the resource group within the user's subscription. + ${ResourceGroupName}, + + [Parameter(ParameterSetName='List2', Mandatory)] + [Parameter(ParameterSetName='List3', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [System.String] + # Name of the topic type. + ${TopicTypeName}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Query')] + [System.String] + # The query used to filter the search results using OData syntax. + # Filtering is permitted on the 'name' property only and with limited number of OData operations. + # These operations are: the 'contains' function as well as the following logical operations: not, and, or, eq (for equal), and ne (for not equal). + # No arithmetic operations are supported. + # The following is a valid filter example: $filter=contains(namE, 'PATTERN') and name ne 'PATTERN-1'. + # The following is not a valid filter example: $filter=location eq 'westus'. + ${Filter}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Query')] + [System.Int32] + # The number of results to return per page for the list operation. + # Valid range for top parameter is 1 to 100. + # If not specified, the default number of results to be returned is 20 items per page. + ${Top}, + + [Parameter()] + [Alias('AzureRMContext', 'AzureCredential')] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Returns true when the command succeeds + ${PassThru}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + if ($null -eq [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion) { + [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion = $Host.Runspace.Version.ToString() + } + $preTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + if ($preTelemetryId -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId =(New-Guid).ToString() + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.module]::Instance.Telemetry.Invoke('Create', $MyInvocation, $parameterSet, $PSCmdlet) + } else { + $internalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + if ($internalCalledCmdlets -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $MyInvocation.MyCommand.Name + } else { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets += ',' + $MyInvocation.MyCommand.Name + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = 'internal' + } + + $mapping = @{ + List = 'Az.EventGrid.private\Get-AzEventGridEventSubscriptionRegional_List'; + List1 = 'Az.EventGrid.private\Get-AzEventGridEventSubscriptionRegional_List1'; + List2 = 'Az.EventGrid.private\Get-AzEventGridEventSubscriptionRegional_List2'; + List3 = 'Az.EventGrid.private\Get-AzEventGridEventSubscriptionRegional_List3'; + } + if (('List', 'List1', 'List2', 'List3') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { + $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } + + finally { + $backupTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + $backupInternalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + +} +end { + try { + $steppablePipeline.End() + + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $backupTelemetryId + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $backupInternalCalledCmdlets + if ($preTelemetryId -eq '') { + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.module]::Instance.Telemetry.Invoke('Send', $MyInvocation, $parameterSet, $PSCmdlet) + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $preTelemetryId + + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} +} diff --git a/swaggerci/eventgrid/exports/Get-AzEventGridExtensionTopic.ps1 b/swaggerci/eventgrid/exports/Get-AzEventGridExtensionTopic.ps1 new file mode 100644 index 000000000000..7f4620c513f3 --- /dev/null +++ b/swaggerci/eventgrid/exports/Get-AzEventGridExtensionTopic.ps1 @@ -0,0 +1,203 @@ + +# ---------------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for license information. +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is regenerated. +# ---------------------------------------------------------------------------------- + +<# +.Synopsis +Get the properties of an extension topic. +.Description +Get the properties of an extension topic. +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Inputs +Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.IEventGridIdentity +.Outputs +Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IExtensionTopic +.Notes +COMPLEX PARAMETER PROPERTIES + +To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. + +INPUTOBJECT : Identity Parameter + [ChannelName ]: Name of the channel. + [DomainName ]: Name of the domain. + [DomainTopicName ]: Name of the topic. + [EventChannelName ]: Name of the event channel. + [EventSubscriptionName ]: Name of the event subscription. + [Id ]: Resource identity path + [Location ]: Name of the location. + [ParentName ]: The name of the parent resource (namely, either, the topic name, domain name, or partner namespace name). + [ParentType ]: The type of the parent resource. This can be either \'topics\', \'domains\', or \'partnerNamespaces\'. + [PartnerDestinationName ]: Name of the partner destination. + [PartnerNamespaceName ]: Name of the partner namespace. + [PartnerRegistrationName ]: Name of the partner registration. + [PartnerTopicName ]: Name of the partner topic. + [PrivateEndpointConnectionName ]: The name of the private endpoint connection connection. + [PrivateLinkResourceName ]: The name of private link resource. + [ProviderNamespace ]: Namespace of the provider of the topic. + [ResourceGroupName ]: The name of the resource group within the partners subscription. + [ResourceName ]: Name of the resource. + [ResourceTypeName ]: Name of the resource type. + [Scope ]: The scope of the event subscription. The scope can be a subscription, or a resource group, or a top level resource belonging to a resource provider namespace, or an EventGrid topic. For example, use '/subscriptions/{subscriptionId}/' for a subscription, '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}' for a resource group, and '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}' for a resource, and '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.EventGrid/topics/{topicName}' for an EventGrid topic. + [SubscriptionId ]: Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription ID forms part of the URI for every service call. + [SystemTopicName ]: Name of the system topic. + [TopicName ]: Name of the domain topic. + [TopicTypeName ]: Name of the topic type. + [VerifiedPartnerName ]: Name of the verified partner. +.Link +https://docs.microsoft.com/en-us/powershell/module/az.eventgrid/get-azeventgridextensiontopic +#> +function Get-AzEventGridExtensionTopic { +[OutputType([Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IExtensionTopic])] +[CmdletBinding(DefaultParameterSetName='Get', PositionalBinding=$false)] +param( + [Parameter(ParameterSetName='Get', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [System.String] + # The identifier of the resource to which extension topic is queried. + # The scope can be a subscription, or a resource group, or a top level resource belonging to a resource provider namespace. + # For example, use '/subscriptions/{subscriptionId}/' for a subscription, '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}' for a resource group, and '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}' for Azure resource. + ${Scope}, + + [Parameter(ParameterSetName='GetViaIdentity', Mandatory, ValueFromPipeline)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.IEventGridIdentity] + # Identity Parameter + # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + ${InputObject}, + + [Parameter()] + [Alias('AzureRMContext', 'AzureCredential')] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Returns true when the command succeeds + ${PassThru}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + if ($null -eq [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion) { + [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion = $Host.Runspace.Version.ToString() + } + $preTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + if ($preTelemetryId -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId =(New-Guid).ToString() + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.module]::Instance.Telemetry.Invoke('Create', $MyInvocation, $parameterSet, $PSCmdlet) + } else { + $internalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + if ($internalCalledCmdlets -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $MyInvocation.MyCommand.Name + } else { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets += ',' + $MyInvocation.MyCommand.Name + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = 'internal' + } + + $mapping = @{ + Get = 'Az.EventGrid.private\Get-AzEventGridExtensionTopic_Get'; + GetViaIdentity = 'Az.EventGrid.private\Get-AzEventGridExtensionTopic_GetViaIdentity'; + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } + + finally { + $backupTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + $backupInternalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + +} +end { + try { + $steppablePipeline.End() + + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $backupTelemetryId + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $backupInternalCalledCmdlets + if ($preTelemetryId -eq '') { + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.module]::Instance.Telemetry.Invoke('Send', $MyInvocation, $parameterSet, $PSCmdlet) + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $preTelemetryId + + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} +} diff --git a/swaggerci/eventgrid/exports/Get-AzEventGridPartnerConfiguration.ps1 b/swaggerci/eventgrid/exports/Get-AzEventGridPartnerConfiguration.ps1 new file mode 100644 index 000000000000..5ec671256d21 --- /dev/null +++ b/swaggerci/eventgrid/exports/Get-AzEventGridPartnerConfiguration.ps1 @@ -0,0 +1,236 @@ + +# ---------------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for license information. +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is regenerated. +# ---------------------------------------------------------------------------------- + +<# +.Synopsis +Get properties of a partner configuration. +.Description +Get properties of a partner configuration. +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Inputs +Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.IEventGridIdentity +.Outputs +Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerConfiguration +.Notes +COMPLEX PARAMETER PROPERTIES + +To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. + +INPUTOBJECT : Identity Parameter + [ChannelName ]: Name of the channel. + [DomainName ]: Name of the domain. + [DomainTopicName ]: Name of the topic. + [EventChannelName ]: Name of the event channel. + [EventSubscriptionName ]: Name of the event subscription. + [Id ]: Resource identity path + [Location ]: Name of the location. + [ParentName ]: The name of the parent resource (namely, either, the topic name, domain name, or partner namespace name). + [ParentType ]: The type of the parent resource. This can be either \'topics\', \'domains\', or \'partnerNamespaces\'. + [PartnerDestinationName ]: Name of the partner destination. + [PartnerNamespaceName ]: Name of the partner namespace. + [PartnerRegistrationName ]: Name of the partner registration. + [PartnerTopicName ]: Name of the partner topic. + [PrivateEndpointConnectionName ]: The name of the private endpoint connection connection. + [PrivateLinkResourceName ]: The name of private link resource. + [ProviderNamespace ]: Namespace of the provider of the topic. + [ResourceGroupName ]: The name of the resource group within the partners subscription. + [ResourceName ]: Name of the resource. + [ResourceTypeName ]: Name of the resource type. + [Scope ]: The scope of the event subscription. The scope can be a subscription, or a resource group, or a top level resource belonging to a resource provider namespace, or an EventGrid topic. For example, use '/subscriptions/{subscriptionId}/' for a subscription, '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}' for a resource group, and '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}' for a resource, and '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.EventGrid/topics/{topicName}' for an EventGrid topic. + [SubscriptionId ]: Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription ID forms part of the URI for every service call. + [SystemTopicName ]: Name of the system topic. + [TopicName ]: Name of the domain topic. + [TopicTypeName ]: Name of the topic type. + [VerifiedPartnerName ]: Name of the verified partner. +.Link +https://docs.microsoft.com/en-us/powershell/module/az.eventgrid/get-azeventgridpartnerconfiguration +#> +function Get-AzEventGridPartnerConfiguration { +[OutputType([Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerConfiguration])] +[CmdletBinding(DefaultParameterSetName='List1', PositionalBinding=$false)] +param( + [Parameter(ParameterSetName='Get', Mandatory)] + [Parameter(ParameterSetName='List', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [System.String] + # The name of the resource group within the user's subscription. + ${ResourceGroupName}, + + [Parameter(ParameterSetName='Get')] + [Parameter(ParameterSetName='List')] + [Parameter(ParameterSetName='List1')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] + [System.String[]] + # Subscription credentials that uniquely identify a Microsoft Azure subscription. + # The subscription ID forms part of the URI for every service call. + ${SubscriptionId}, + + [Parameter(ParameterSetName='GetViaIdentity', Mandatory, ValueFromPipeline)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.IEventGridIdentity] + # Identity Parameter + # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + ${InputObject}, + + [Parameter(ParameterSetName='List1')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Query')] + [System.String] + # The query used to filter the search results using OData syntax. + # Filtering is permitted on the 'name' property only and with limited number of OData operations. + # These operations are: the 'contains' function as well as the following logical operations: not, and, or, eq (for equal), and ne (for not equal). + # No arithmetic operations are supported. + # The following is a valid filter example: $filter=contains(namE, 'PATTERN') and name ne 'PATTERN-1'. + # The following is not a valid filter example: $filter=location eq 'westus'. + ${Filter}, + + [Parameter(ParameterSetName='List1')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Query')] + [System.Int32] + # The number of results to return per page for the list operation. + # Valid range for top parameter is 1 to 100. + # If not specified, the default number of results to be returned is 20 items per page. + ${Top}, + + [Parameter()] + [Alias('AzureRMContext', 'AzureCredential')] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Returns true when the command succeeds + ${PassThru}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + if ($null -eq [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion) { + [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion = $Host.Runspace.Version.ToString() + } + $preTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + if ($preTelemetryId -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId =(New-Guid).ToString() + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.module]::Instance.Telemetry.Invoke('Create', $MyInvocation, $parameterSet, $PSCmdlet) + } else { + $internalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + if ($internalCalledCmdlets -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $MyInvocation.MyCommand.Name + } else { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets += ',' + $MyInvocation.MyCommand.Name + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = 'internal' + } + + $mapping = @{ + Get = 'Az.EventGrid.private\Get-AzEventGridPartnerConfiguration_Get'; + GetViaIdentity = 'Az.EventGrid.private\Get-AzEventGridPartnerConfiguration_GetViaIdentity'; + List = 'Az.EventGrid.private\Get-AzEventGridPartnerConfiguration_List'; + List1 = 'Az.EventGrid.private\Get-AzEventGridPartnerConfiguration_List1'; + } + if (('Get', 'List', 'List1') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { + $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } + + finally { + $backupTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + $backupInternalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + +} +end { + try { + $steppablePipeline.End() + + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $backupTelemetryId + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $backupInternalCalledCmdlets + if ($preTelemetryId -eq '') { + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.module]::Instance.Telemetry.Invoke('Send', $MyInvocation, $parameterSet, $PSCmdlet) + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $preTelemetryId + + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} +} diff --git a/swaggerci/eventgrid/exports/Get-AzEventGridPartnerDestination.ps1 b/swaggerci/eventgrid/exports/Get-AzEventGridPartnerDestination.ps1 new file mode 100644 index 000000000000..ac3f77ccbba4 --- /dev/null +++ b/swaggerci/eventgrid/exports/Get-AzEventGridPartnerDestination.ps1 @@ -0,0 +1,245 @@ + +# ---------------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for license information. +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is regenerated. +# ---------------------------------------------------------------------------------- + +<# +.Synopsis +Get properties of a partner destination. +.Description +Get properties of a partner destination. +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Inputs +Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.IEventGridIdentity +.Outputs +Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerDestination +.Notes +COMPLEX PARAMETER PROPERTIES + +To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. + +INPUTOBJECT : Identity Parameter + [ChannelName ]: Name of the channel. + [DomainName ]: Name of the domain. + [DomainTopicName ]: Name of the topic. + [EventChannelName ]: Name of the event channel. + [EventSubscriptionName ]: Name of the event subscription. + [Id ]: Resource identity path + [Location ]: Name of the location. + [ParentName ]: The name of the parent resource (namely, either, the topic name, domain name, or partner namespace name). + [ParentType ]: The type of the parent resource. This can be either \'topics\', \'domains\', or \'partnerNamespaces\'. + [PartnerDestinationName ]: Name of the partner destination. + [PartnerNamespaceName ]: Name of the partner namespace. + [PartnerRegistrationName ]: Name of the partner registration. + [PartnerTopicName ]: Name of the partner topic. + [PrivateEndpointConnectionName ]: The name of the private endpoint connection connection. + [PrivateLinkResourceName ]: The name of private link resource. + [ProviderNamespace ]: Namespace of the provider of the topic. + [ResourceGroupName ]: The name of the resource group within the partners subscription. + [ResourceName ]: Name of the resource. + [ResourceTypeName ]: Name of the resource type. + [Scope ]: The scope of the event subscription. The scope can be a subscription, or a resource group, or a top level resource belonging to a resource provider namespace, or an EventGrid topic. For example, use '/subscriptions/{subscriptionId}/' for a subscription, '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}' for a resource group, and '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}' for a resource, and '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.EventGrid/topics/{topicName}' for an EventGrid topic. + [SubscriptionId ]: Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription ID forms part of the URI for every service call. + [SystemTopicName ]: Name of the system topic. + [TopicName ]: Name of the domain topic. + [TopicTypeName ]: Name of the topic type. + [VerifiedPartnerName ]: Name of the verified partner. +.Link +https://docs.microsoft.com/en-us/powershell/module/az.eventgrid/get-azeventgridpartnerdestination +#> +function Get-AzEventGridPartnerDestination { +[OutputType([Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerDestination])] +[CmdletBinding(DefaultParameterSetName='List', PositionalBinding=$false)] +param( + [Parameter(ParameterSetName='Get', Mandatory)] + [Alias('PartnerDestinationName')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [System.String] + # Name of the partner destination. + ${Name}, + + [Parameter(ParameterSetName='Get', Mandatory)] + [Parameter(ParameterSetName='List1', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [System.String] + # The name of the resource group within the user's subscription. + ${ResourceGroupName}, + + [Parameter(ParameterSetName='Get')] + [Parameter(ParameterSetName='List')] + [Parameter(ParameterSetName='List1')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] + [System.String[]] + # Subscription credentials that uniquely identify a Microsoft Azure subscription. + # The subscription ID forms part of the URI for every service call. + ${SubscriptionId}, + + [Parameter(ParameterSetName='GetViaIdentity', Mandatory, ValueFromPipeline)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.IEventGridIdentity] + # 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.EventGrid.Category('Query')] + [System.String] + # The query used to filter the search results using OData syntax. + # Filtering is permitted on the 'name' property only and with limited number of OData operations. + # These operations are: the 'contains' function as well as the following logical operations: not, and, or, eq (for equal), and ne (for not equal). + # No arithmetic operations are supported. + # The following is a valid filter example: $filter=contains(namE, 'PATTERN') and name ne 'PATTERN-1'. + # The following is not a valid filter example: $filter=location eq 'westus'. + ${Filter}, + + [Parameter(ParameterSetName='List')] + [Parameter(ParameterSetName='List1')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Query')] + [System.Int32] + # The number of results to return per page for the list operation. + # Valid range for top parameter is 1 to 100. + # If not specified, the default number of results to be returned is 20 items per page. + ${Top}, + + [Parameter()] + [Alias('AzureRMContext', 'AzureCredential')] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Returns true when the command succeeds + ${PassThru}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + if ($null -eq [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion) { + [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion = $Host.Runspace.Version.ToString() + } + $preTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + if ($preTelemetryId -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId =(New-Guid).ToString() + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.module]::Instance.Telemetry.Invoke('Create', $MyInvocation, $parameterSet, $PSCmdlet) + } else { + $internalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + if ($internalCalledCmdlets -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $MyInvocation.MyCommand.Name + } else { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets += ',' + $MyInvocation.MyCommand.Name + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = 'internal' + } + + $mapping = @{ + Get = 'Az.EventGrid.private\Get-AzEventGridPartnerDestination_Get'; + GetViaIdentity = 'Az.EventGrid.private\Get-AzEventGridPartnerDestination_GetViaIdentity'; + List = 'Az.EventGrid.private\Get-AzEventGridPartnerDestination_List'; + List1 = 'Az.EventGrid.private\Get-AzEventGridPartnerDestination_List1'; + } + if (('Get', 'List', 'List1') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { + $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } + + finally { + $backupTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + $backupInternalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + +} +end { + try { + $steppablePipeline.End() + + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $backupTelemetryId + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $backupInternalCalledCmdlets + if ($preTelemetryId -eq '') { + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.module]::Instance.Telemetry.Invoke('Send', $MyInvocation, $parameterSet, $PSCmdlet) + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $preTelemetryId + + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} +} diff --git a/swaggerci/eventgrid/exports/Get-AzEventGridPartnerNamespace.ps1 b/swaggerci/eventgrid/exports/Get-AzEventGridPartnerNamespace.ps1 new file mode 100644 index 000000000000..6d8be216e08d --- /dev/null +++ b/swaggerci/eventgrid/exports/Get-AzEventGridPartnerNamespace.ps1 @@ -0,0 +1,245 @@ + +# ---------------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for license information. +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is regenerated. +# ---------------------------------------------------------------------------------- + +<# +.Synopsis +Get properties of a partner namespace. +.Description +Get properties of a partner namespace. +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Inputs +Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.IEventGridIdentity +.Outputs +Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerNamespace +.Notes +COMPLEX PARAMETER PROPERTIES + +To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. + +INPUTOBJECT : Identity Parameter + [ChannelName ]: Name of the channel. + [DomainName ]: Name of the domain. + [DomainTopicName ]: Name of the topic. + [EventChannelName ]: Name of the event channel. + [EventSubscriptionName ]: Name of the event subscription. + [Id ]: Resource identity path + [Location ]: Name of the location. + [ParentName ]: The name of the parent resource (namely, either, the topic name, domain name, or partner namespace name). + [ParentType ]: The type of the parent resource. This can be either \'topics\', \'domains\', or \'partnerNamespaces\'. + [PartnerDestinationName ]: Name of the partner destination. + [PartnerNamespaceName ]: Name of the partner namespace. + [PartnerRegistrationName ]: Name of the partner registration. + [PartnerTopicName ]: Name of the partner topic. + [PrivateEndpointConnectionName ]: The name of the private endpoint connection connection. + [PrivateLinkResourceName ]: The name of private link resource. + [ProviderNamespace ]: Namespace of the provider of the topic. + [ResourceGroupName ]: The name of the resource group within the partners subscription. + [ResourceName ]: Name of the resource. + [ResourceTypeName ]: Name of the resource type. + [Scope ]: The scope of the event subscription. The scope can be a subscription, or a resource group, or a top level resource belonging to a resource provider namespace, or an EventGrid topic. For example, use '/subscriptions/{subscriptionId}/' for a subscription, '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}' for a resource group, and '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}' for a resource, and '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.EventGrid/topics/{topicName}' for an EventGrid topic. + [SubscriptionId ]: Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription ID forms part of the URI for every service call. + [SystemTopicName ]: Name of the system topic. + [TopicName ]: Name of the domain topic. + [TopicTypeName ]: Name of the topic type. + [VerifiedPartnerName ]: Name of the verified partner. +.Link +https://docs.microsoft.com/en-us/powershell/module/az.eventgrid/get-azeventgridpartnernamespace +#> +function Get-AzEventGridPartnerNamespace { +[OutputType([Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerNamespace])] +[CmdletBinding(DefaultParameterSetName='List', PositionalBinding=$false)] +param( + [Parameter(ParameterSetName='Get', Mandatory)] + [Alias('PartnerNamespaceName')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [System.String] + # Name of the partner namespace. + ${Name}, + + [Parameter(ParameterSetName='Get', Mandatory)] + [Parameter(ParameterSetName='List1', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [System.String] + # The name of the resource group within the user's subscription. + ${ResourceGroupName}, + + [Parameter(ParameterSetName='Get')] + [Parameter(ParameterSetName='List')] + [Parameter(ParameterSetName='List1')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] + [System.String[]] + # Subscription credentials that uniquely identify a Microsoft Azure subscription. + # The subscription ID forms part of the URI for every service call. + ${SubscriptionId}, + + [Parameter(ParameterSetName='GetViaIdentity', Mandatory, ValueFromPipeline)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.IEventGridIdentity] + # 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.EventGrid.Category('Query')] + [System.String] + # The query used to filter the search results using OData syntax. + # Filtering is permitted on the 'name' property only and with limited number of OData operations. + # These operations are: the 'contains' function as well as the following logical operations: not, and, or, eq (for equal), and ne (for not equal). + # No arithmetic operations are supported. + # The following is a valid filter example: $filter=contains(namE, 'PATTERN') and name ne 'PATTERN-1'. + # The following is not a valid filter example: $filter=location eq 'westus'. + ${Filter}, + + [Parameter(ParameterSetName='List')] + [Parameter(ParameterSetName='List1')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Query')] + [System.Int32] + # The number of results to return per page for the list operation. + # Valid range for top parameter is 1 to 100. + # If not specified, the default number of results to be returned is 20 items per page. + ${Top}, + + [Parameter()] + [Alias('AzureRMContext', 'AzureCredential')] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Returns true when the command succeeds + ${PassThru}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + if ($null -eq [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion) { + [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion = $Host.Runspace.Version.ToString() + } + $preTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + if ($preTelemetryId -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId =(New-Guid).ToString() + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.module]::Instance.Telemetry.Invoke('Create', $MyInvocation, $parameterSet, $PSCmdlet) + } else { + $internalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + if ($internalCalledCmdlets -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $MyInvocation.MyCommand.Name + } else { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets += ',' + $MyInvocation.MyCommand.Name + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = 'internal' + } + + $mapping = @{ + Get = 'Az.EventGrid.private\Get-AzEventGridPartnerNamespace_Get'; + GetViaIdentity = 'Az.EventGrid.private\Get-AzEventGridPartnerNamespace_GetViaIdentity'; + List = 'Az.EventGrid.private\Get-AzEventGridPartnerNamespace_List'; + List1 = 'Az.EventGrid.private\Get-AzEventGridPartnerNamespace_List1'; + } + if (('Get', 'List', 'List1') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { + $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } + + finally { + $backupTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + $backupInternalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + +} +end { + try { + $steppablePipeline.End() + + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $backupTelemetryId + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $backupInternalCalledCmdlets + if ($preTelemetryId -eq '') { + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.module]::Instance.Telemetry.Invoke('Send', $MyInvocation, $parameterSet, $PSCmdlet) + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $preTelemetryId + + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} +} diff --git a/swaggerci/eventgrid/exports/Get-AzEventGridPartnerNamespaceSharedAccessKey.ps1 b/swaggerci/eventgrid/exports/Get-AzEventGridPartnerNamespaceSharedAccessKey.ps1 new file mode 100644 index 000000000000..05a52020e2dd --- /dev/null +++ b/swaggerci/eventgrid/exports/Get-AzEventGridPartnerNamespaceSharedAccessKey.ps1 @@ -0,0 +1,177 @@ + +# ---------------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for license information. +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is regenerated. +# ---------------------------------------------------------------------------------- + +<# +.Synopsis +List the two keys used to publish to a partner namespace. +.Description +List the two keys used to publish to a partner namespace. +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Outputs +Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerNamespaceSharedAccessKeys +.Link +https://docs.microsoft.com/en-us/powershell/module/az.eventgrid/get-azeventgridpartnernamespacesharedaccesskey +#> +function Get-AzEventGridPartnerNamespaceSharedAccessKey { +[OutputType([Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerNamespaceSharedAccessKeys])] +[CmdletBinding(DefaultParameterSetName='List', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [System.String] + # Name of the partner namespace. + ${PartnerNamespaceName}, + + [Parameter(Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [System.String] + # The name of the resource group within the user's subscription. + ${ResourceGroupName}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] + [System.String[]] + # Subscription credentials that uniquely identify a Microsoft Azure subscription. + # The subscription ID forms part of the URI for every service call. + ${SubscriptionId}, + + [Parameter()] + [Alias('AzureRMContext', 'AzureCredential')] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Returns true when the command succeeds + ${PassThru}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + if ($null -eq [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion) { + [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion = $Host.Runspace.Version.ToString() + } + $preTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + if ($preTelemetryId -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId =(New-Guid).ToString() + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.module]::Instance.Telemetry.Invoke('Create', $MyInvocation, $parameterSet, $PSCmdlet) + } else { + $internalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + if ($internalCalledCmdlets -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $MyInvocation.MyCommand.Name + } else { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets += ',' + $MyInvocation.MyCommand.Name + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = 'internal' + } + + $mapping = @{ + List = 'Az.EventGrid.private\Get-AzEventGridPartnerNamespaceSharedAccessKey_List'; + } + if (('List') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { + $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } + + finally { + $backupTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + $backupInternalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + +} +end { + try { + $steppablePipeline.End() + + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $backupTelemetryId + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $backupInternalCalledCmdlets + if ($preTelemetryId -eq '') { + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.module]::Instance.Telemetry.Invoke('Send', $MyInvocation, $parameterSet, $PSCmdlet) + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $preTelemetryId + + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} +} diff --git a/swaggerci/eventgrid/exports/Get-AzEventGridPartnerRegistration.ps1 b/swaggerci/eventgrid/exports/Get-AzEventGridPartnerRegistration.ps1 new file mode 100644 index 000000000000..851d53f0eda2 --- /dev/null +++ b/swaggerci/eventgrid/exports/Get-AzEventGridPartnerRegistration.ps1 @@ -0,0 +1,245 @@ + +# ---------------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for license information. +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is regenerated. +# ---------------------------------------------------------------------------------- + +<# +.Synopsis +Gets a partner registration with the specified parameters. +.Description +Gets a partner registration with the specified parameters. +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Inputs +Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.IEventGridIdentity +.Outputs +Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerRegistration +.Notes +COMPLEX PARAMETER PROPERTIES + +To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. + +INPUTOBJECT : Identity Parameter + [ChannelName ]: Name of the channel. + [DomainName ]: Name of the domain. + [DomainTopicName ]: Name of the topic. + [EventChannelName ]: Name of the event channel. + [EventSubscriptionName ]: Name of the event subscription. + [Id ]: Resource identity path + [Location ]: Name of the location. + [ParentName ]: The name of the parent resource (namely, either, the topic name, domain name, or partner namespace name). + [ParentType ]: The type of the parent resource. This can be either \'topics\', \'domains\', or \'partnerNamespaces\'. + [PartnerDestinationName ]: Name of the partner destination. + [PartnerNamespaceName ]: Name of the partner namespace. + [PartnerRegistrationName ]: Name of the partner registration. + [PartnerTopicName ]: Name of the partner topic. + [PrivateEndpointConnectionName ]: The name of the private endpoint connection connection. + [PrivateLinkResourceName ]: The name of private link resource. + [ProviderNamespace ]: Namespace of the provider of the topic. + [ResourceGroupName ]: The name of the resource group within the partners subscription. + [ResourceName ]: Name of the resource. + [ResourceTypeName ]: Name of the resource type. + [Scope ]: The scope of the event subscription. The scope can be a subscription, or a resource group, or a top level resource belonging to a resource provider namespace, or an EventGrid topic. For example, use '/subscriptions/{subscriptionId}/' for a subscription, '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}' for a resource group, and '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}' for a resource, and '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.EventGrid/topics/{topicName}' for an EventGrid topic. + [SubscriptionId ]: Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription ID forms part of the URI for every service call. + [SystemTopicName ]: Name of the system topic. + [TopicName ]: Name of the domain topic. + [TopicTypeName ]: Name of the topic type. + [VerifiedPartnerName ]: Name of the verified partner. +.Link +https://docs.microsoft.com/en-us/powershell/module/az.eventgrid/get-azeventgridpartnerregistration +#> +function Get-AzEventGridPartnerRegistration { +[OutputType([Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerRegistration])] +[CmdletBinding(DefaultParameterSetName='List', PositionalBinding=$false)] +param( + [Parameter(ParameterSetName='Get', Mandatory)] + [Alias('PartnerRegistrationName')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [System.String] + # Name of the partner registration. + ${Name}, + + [Parameter(ParameterSetName='Get', Mandatory)] + [Parameter(ParameterSetName='List1', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [System.String] + # The name of the resource group within the user's subscription. + ${ResourceGroupName}, + + [Parameter(ParameterSetName='Get')] + [Parameter(ParameterSetName='List')] + [Parameter(ParameterSetName='List1')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] + [System.String[]] + # Subscription credentials that uniquely identify a Microsoft Azure subscription. + # The subscription ID forms part of the URI for every service call. + ${SubscriptionId}, + + [Parameter(ParameterSetName='GetViaIdentity', Mandatory, ValueFromPipeline)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.IEventGridIdentity] + # 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.EventGrid.Category('Query')] + [System.String] + # The query used to filter the search results using OData syntax. + # Filtering is permitted on the 'name' property only and with limited number of OData operations. + # These operations are: the 'contains' function as well as the following logical operations: not, and, or, eq (for equal), and ne (for not equal). + # No arithmetic operations are supported. + # The following is a valid filter example: $filter=contains(namE, 'PATTERN') and name ne 'PATTERN-1'. + # The following is not a valid filter example: $filter=location eq 'westus'. + ${Filter}, + + [Parameter(ParameterSetName='List')] + [Parameter(ParameterSetName='List1')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Query')] + [System.Int32] + # The number of results to return per page for the list operation. + # Valid range for top parameter is 1 to 100. + # If not specified, the default number of results to be returned is 20 items per page. + ${Top}, + + [Parameter()] + [Alias('AzureRMContext', 'AzureCredential')] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Returns true when the command succeeds + ${PassThru}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + if ($null -eq [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion) { + [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion = $Host.Runspace.Version.ToString() + } + $preTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + if ($preTelemetryId -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId =(New-Guid).ToString() + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.module]::Instance.Telemetry.Invoke('Create', $MyInvocation, $parameterSet, $PSCmdlet) + } else { + $internalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + if ($internalCalledCmdlets -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $MyInvocation.MyCommand.Name + } else { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets += ',' + $MyInvocation.MyCommand.Name + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = 'internal' + } + + $mapping = @{ + Get = 'Az.EventGrid.private\Get-AzEventGridPartnerRegistration_Get'; + GetViaIdentity = 'Az.EventGrid.private\Get-AzEventGridPartnerRegistration_GetViaIdentity'; + List = 'Az.EventGrid.private\Get-AzEventGridPartnerRegistration_List'; + List1 = 'Az.EventGrid.private\Get-AzEventGridPartnerRegistration_List1'; + } + if (('Get', 'List', 'List1') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { + $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } + + finally { + $backupTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + $backupInternalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + +} +end { + try { + $steppablePipeline.End() + + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $backupTelemetryId + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $backupInternalCalledCmdlets + if ($preTelemetryId -eq '') { + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.module]::Instance.Telemetry.Invoke('Send', $MyInvocation, $parameterSet, $PSCmdlet) + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $preTelemetryId + + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} +} diff --git a/swaggerci/eventgrid/exports/Get-AzEventGridPartnerTopic.ps1 b/swaggerci/eventgrid/exports/Get-AzEventGridPartnerTopic.ps1 new file mode 100644 index 000000000000..641b91b227fc --- /dev/null +++ b/swaggerci/eventgrid/exports/Get-AzEventGridPartnerTopic.ps1 @@ -0,0 +1,245 @@ + +# ---------------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for license information. +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is regenerated. +# ---------------------------------------------------------------------------------- + +<# +.Synopsis +Get properties of a partner topic. +.Description +Get properties of a partner topic. +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Inputs +Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.IEventGridIdentity +.Outputs +Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerTopic +.Notes +COMPLEX PARAMETER PROPERTIES + +To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. + +INPUTOBJECT : Identity Parameter + [ChannelName ]: Name of the channel. + [DomainName ]: Name of the domain. + [DomainTopicName ]: Name of the topic. + [EventChannelName ]: Name of the event channel. + [EventSubscriptionName ]: Name of the event subscription. + [Id ]: Resource identity path + [Location ]: Name of the location. + [ParentName ]: The name of the parent resource (namely, either, the topic name, domain name, or partner namespace name). + [ParentType ]: The type of the parent resource. This can be either \'topics\', \'domains\', or \'partnerNamespaces\'. + [PartnerDestinationName ]: Name of the partner destination. + [PartnerNamespaceName ]: Name of the partner namespace. + [PartnerRegistrationName ]: Name of the partner registration. + [PartnerTopicName ]: Name of the partner topic. + [PrivateEndpointConnectionName ]: The name of the private endpoint connection connection. + [PrivateLinkResourceName ]: The name of private link resource. + [ProviderNamespace ]: Namespace of the provider of the topic. + [ResourceGroupName ]: The name of the resource group within the partners subscription. + [ResourceName ]: Name of the resource. + [ResourceTypeName ]: Name of the resource type. + [Scope ]: The scope of the event subscription. The scope can be a subscription, or a resource group, or a top level resource belonging to a resource provider namespace, or an EventGrid topic. For example, use '/subscriptions/{subscriptionId}/' for a subscription, '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}' for a resource group, and '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}' for a resource, and '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.EventGrid/topics/{topicName}' for an EventGrid topic. + [SubscriptionId ]: Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription ID forms part of the URI for every service call. + [SystemTopicName ]: Name of the system topic. + [TopicName ]: Name of the domain topic. + [TopicTypeName ]: Name of the topic type. + [VerifiedPartnerName ]: Name of the verified partner. +.Link +https://docs.microsoft.com/en-us/powershell/module/az.eventgrid/get-azeventgridpartnertopic +#> +function Get-AzEventGridPartnerTopic { +[OutputType([Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerTopic])] +[CmdletBinding(DefaultParameterSetName='List', PositionalBinding=$false)] +param( + [Parameter(ParameterSetName='Get', Mandatory)] + [Alias('PartnerTopicName')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [System.String] + # Name of the partner topic. + ${Name}, + + [Parameter(ParameterSetName='Get', Mandatory)] + [Parameter(ParameterSetName='List1', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [System.String] + # The name of the resource group within the user's subscription. + ${ResourceGroupName}, + + [Parameter(ParameterSetName='Get')] + [Parameter(ParameterSetName='List')] + [Parameter(ParameterSetName='List1')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] + [System.String[]] + # Subscription credentials that uniquely identify a Microsoft Azure subscription. + # The subscription ID forms part of the URI for every service call. + ${SubscriptionId}, + + [Parameter(ParameterSetName='GetViaIdentity', Mandatory, ValueFromPipeline)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.IEventGridIdentity] + # 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.EventGrid.Category('Query')] + [System.String] + # The query used to filter the search results using OData syntax. + # Filtering is permitted on the 'name' property only and with limited number of OData operations. + # These operations are: the 'contains' function as well as the following logical operations: not, and, or, eq (for equal), and ne (for not equal). + # No arithmetic operations are supported. + # The following is a valid filter example: $filter=contains(namE, 'PATTERN') and name ne 'PATTERN-1'. + # The following is not a valid filter example: $filter=location eq 'westus'. + ${Filter}, + + [Parameter(ParameterSetName='List')] + [Parameter(ParameterSetName='List1')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Query')] + [System.Int32] + # The number of results to return per page for the list operation. + # Valid range for top parameter is 1 to 100. + # If not specified, the default number of results to be returned is 20 items per page. + ${Top}, + + [Parameter()] + [Alias('AzureRMContext', 'AzureCredential')] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Returns true when the command succeeds + ${PassThru}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + if ($null -eq [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion) { + [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion = $Host.Runspace.Version.ToString() + } + $preTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + if ($preTelemetryId -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId =(New-Guid).ToString() + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.module]::Instance.Telemetry.Invoke('Create', $MyInvocation, $parameterSet, $PSCmdlet) + } else { + $internalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + if ($internalCalledCmdlets -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $MyInvocation.MyCommand.Name + } else { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets += ',' + $MyInvocation.MyCommand.Name + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = 'internal' + } + + $mapping = @{ + Get = 'Az.EventGrid.private\Get-AzEventGridPartnerTopic_Get'; + GetViaIdentity = 'Az.EventGrid.private\Get-AzEventGridPartnerTopic_GetViaIdentity'; + List = 'Az.EventGrid.private\Get-AzEventGridPartnerTopic_List'; + List1 = 'Az.EventGrid.private\Get-AzEventGridPartnerTopic_List1'; + } + if (('Get', 'List', 'List1') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { + $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } + + finally { + $backupTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + $backupInternalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + +} +end { + try { + $steppablePipeline.End() + + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $backupTelemetryId + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $backupInternalCalledCmdlets + if ($preTelemetryId -eq '') { + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.module]::Instance.Telemetry.Invoke('Send', $MyInvocation, $parameterSet, $PSCmdlet) + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $preTelemetryId + + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} +} diff --git a/swaggerci/eventgrid/exports/Get-AzEventGridPartnerTopicEventSubscription.ps1 b/swaggerci/eventgrid/exports/Get-AzEventGridPartnerTopicEventSubscription.ps1 new file mode 100644 index 000000000000..25c5eccf6640 --- /dev/null +++ b/swaggerci/eventgrid/exports/Get-AzEventGridPartnerTopicEventSubscription.ps1 @@ -0,0 +1,248 @@ + +# ---------------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for license information. +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is regenerated. +# ---------------------------------------------------------------------------------- + +<# +.Synopsis +Get properties of an event subscription of a partner topic. +.Description +Get properties of an event subscription of a partner topic. +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Inputs +Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.IEventGridIdentity +.Outputs +Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscription +.Notes +COMPLEX PARAMETER PROPERTIES + +To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. + +INPUTOBJECT : Identity Parameter + [ChannelName ]: Name of the channel. + [DomainName ]: Name of the domain. + [DomainTopicName ]: Name of the topic. + [EventChannelName ]: Name of the event channel. + [EventSubscriptionName ]: Name of the event subscription. + [Id ]: Resource identity path + [Location ]: Name of the location. + [ParentName ]: The name of the parent resource (namely, either, the topic name, domain name, or partner namespace name). + [ParentType ]: The type of the parent resource. This can be either \'topics\', \'domains\', or \'partnerNamespaces\'. + [PartnerDestinationName ]: Name of the partner destination. + [PartnerNamespaceName ]: Name of the partner namespace. + [PartnerRegistrationName ]: Name of the partner registration. + [PartnerTopicName ]: Name of the partner topic. + [PrivateEndpointConnectionName ]: The name of the private endpoint connection connection. + [PrivateLinkResourceName ]: The name of private link resource. + [ProviderNamespace ]: Namespace of the provider of the topic. + [ResourceGroupName ]: The name of the resource group within the partners subscription. + [ResourceName ]: Name of the resource. + [ResourceTypeName ]: Name of the resource type. + [Scope ]: The scope of the event subscription. The scope can be a subscription, or a resource group, or a top level resource belonging to a resource provider namespace, or an EventGrid topic. For example, use '/subscriptions/{subscriptionId}/' for a subscription, '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}' for a resource group, and '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}' for a resource, and '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.EventGrid/topics/{topicName}' for an EventGrid topic. + [SubscriptionId ]: Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription ID forms part of the URI for every service call. + [SystemTopicName ]: Name of the system topic. + [TopicName ]: Name of the domain topic. + [TopicTypeName ]: Name of the topic type. + [VerifiedPartnerName ]: Name of the verified partner. +.Link +https://docs.microsoft.com/en-us/powershell/module/az.eventgrid/get-azeventgridpartnertopiceventsubscription +#> +function Get-AzEventGridPartnerTopicEventSubscription { +[OutputType([Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscription])] +[CmdletBinding(DefaultParameterSetName='List', PositionalBinding=$false)] +param( + [Parameter(ParameterSetName='Get', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [System.String] + # Name of the event subscription to be found. + # Event subscription names must be between 3 and 100 characters in length and use alphanumeric letters only. + ${EventSubscriptionName}, + + [Parameter(ParameterSetName='Get', Mandatory)] + [Parameter(ParameterSetName='List', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [System.String] + # Name of the partner topic. + ${PartnerTopicName}, + + [Parameter(ParameterSetName='Get', Mandatory)] + [Parameter(ParameterSetName='List', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [System.String] + # The name of the resource group within the user's subscription. + ${ResourceGroupName}, + + [Parameter(ParameterSetName='Get')] + [Parameter(ParameterSetName='List')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] + [System.String[]] + # Subscription credentials that uniquely identify a Microsoft Azure subscription. + # The subscription ID forms part of the URI for every service call. + ${SubscriptionId}, + + [Parameter(ParameterSetName='GetViaIdentity', Mandatory, ValueFromPipeline)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.IEventGridIdentity] + # Identity Parameter + # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + ${InputObject}, + + [Parameter(ParameterSetName='List')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Query')] + [System.String] + # The query used to filter the search results using OData syntax. + # Filtering is permitted on the 'name' property only and with limited number of OData operations. + # These operations are: the 'contains' function as well as the following logical operations: not, and, or, eq (for equal), and ne (for not equal). + # No arithmetic operations are supported. + # The following is a valid filter example: $filter=contains(namE, 'PATTERN') and name ne 'PATTERN-1'. + # The following is not a valid filter example: $filter=location eq 'westus'. + ${Filter}, + + [Parameter(ParameterSetName='List')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Query')] + [System.Int32] + # The number of results to return per page for the list operation. + # Valid range for top parameter is 1 to 100. + # If not specified, the default number of results to be returned is 20 items per page. + ${Top}, + + [Parameter()] + [Alias('AzureRMContext', 'AzureCredential')] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Returns true when the command succeeds + ${PassThru}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + if ($null -eq [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion) { + [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion = $Host.Runspace.Version.ToString() + } + $preTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + if ($preTelemetryId -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId =(New-Guid).ToString() + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.module]::Instance.Telemetry.Invoke('Create', $MyInvocation, $parameterSet, $PSCmdlet) + } else { + $internalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + if ($internalCalledCmdlets -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $MyInvocation.MyCommand.Name + } else { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets += ',' + $MyInvocation.MyCommand.Name + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = 'internal' + } + + $mapping = @{ + Get = 'Az.EventGrid.private\Get-AzEventGridPartnerTopicEventSubscription_Get'; + GetViaIdentity = 'Az.EventGrid.private\Get-AzEventGridPartnerTopicEventSubscription_GetViaIdentity'; + List = 'Az.EventGrid.private\Get-AzEventGridPartnerTopicEventSubscription_List'; + } + if (('Get', 'List') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { + $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } + + finally { + $backupTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + $backupInternalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + +} +end { + try { + $steppablePipeline.End() + + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $backupTelemetryId + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $backupInternalCalledCmdlets + if ($preTelemetryId -eq '') { + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.module]::Instance.Telemetry.Invoke('Send', $MyInvocation, $parameterSet, $PSCmdlet) + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $preTelemetryId + + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} +} diff --git a/swaggerci/eventgrid/exports/Get-AzEventGridPartnerTopicEventSubscriptionDeliveryAttribute.ps1 b/swaggerci/eventgrid/exports/Get-AzEventGridPartnerTopicEventSubscriptionDeliveryAttribute.ps1 new file mode 100644 index 000000000000..6851e1f5f3ed --- /dev/null +++ b/swaggerci/eventgrid/exports/Get-AzEventGridPartnerTopicEventSubscriptionDeliveryAttribute.ps1 @@ -0,0 +1,225 @@ + +# ---------------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for license information. +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is regenerated. +# ---------------------------------------------------------------------------------- + +<# +.Synopsis +Get all delivery attributes for an event subscription of a partner topic. +.Description +Get all delivery attributes for an event subscription of a partner topic. +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Inputs +Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.IEventGridIdentity +.Outputs +Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDeliveryAttributeMapping +.Notes +COMPLEX PARAMETER PROPERTIES + +To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. + +INPUTOBJECT : Identity Parameter + [ChannelName ]: Name of the channel. + [DomainName ]: Name of the domain. + [DomainTopicName ]: Name of the topic. + [EventChannelName ]: Name of the event channel. + [EventSubscriptionName ]: Name of the event subscription. + [Id ]: Resource identity path + [Location ]: Name of the location. + [ParentName ]: The name of the parent resource (namely, either, the topic name, domain name, or partner namespace name). + [ParentType ]: The type of the parent resource. This can be either \'topics\', \'domains\', or \'partnerNamespaces\'. + [PartnerDestinationName ]: Name of the partner destination. + [PartnerNamespaceName ]: Name of the partner namespace. + [PartnerRegistrationName ]: Name of the partner registration. + [PartnerTopicName ]: Name of the partner topic. + [PrivateEndpointConnectionName ]: The name of the private endpoint connection connection. + [PrivateLinkResourceName ]: The name of private link resource. + [ProviderNamespace ]: Namespace of the provider of the topic. + [ResourceGroupName ]: The name of the resource group within the partners subscription. + [ResourceName ]: Name of the resource. + [ResourceTypeName ]: Name of the resource type. + [Scope ]: The scope of the event subscription. The scope can be a subscription, or a resource group, or a top level resource belonging to a resource provider namespace, or an EventGrid topic. For example, use '/subscriptions/{subscriptionId}/' for a subscription, '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}' for a resource group, and '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}' for a resource, and '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.EventGrid/topics/{topicName}' for an EventGrid topic. + [SubscriptionId ]: Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription ID forms part of the URI for every service call. + [SystemTopicName ]: Name of the system topic. + [TopicName ]: Name of the domain topic. + [TopicTypeName ]: Name of the topic type. + [VerifiedPartnerName ]: Name of the verified partner. +.Link +https://docs.microsoft.com/en-us/powershell/module/az.eventgrid/get-azeventgridpartnertopiceventsubscriptiondeliveryattribute +#> +function Get-AzEventGridPartnerTopicEventSubscriptionDeliveryAttribute { +[OutputType([Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDeliveryAttributeMapping])] +[CmdletBinding(DefaultParameterSetName='Get', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(ParameterSetName='Get', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [System.String] + # Name of the event subscription to be created. + # Event subscription names must be between 3 and 100 characters in length and use alphanumeric letters only. + ${EventSubscriptionName}, + + [Parameter(ParameterSetName='Get', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [System.String] + # Name of the partner topic. + ${PartnerTopicName}, + + [Parameter(ParameterSetName='Get', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [System.String] + # The name of the resource group within the user's subscription. + ${ResourceGroupName}, + + [Parameter(ParameterSetName='Get')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] + [System.String[]] + # Subscription credentials that uniquely identify a Microsoft Azure subscription. + # The subscription ID forms part of the URI for every service call. + ${SubscriptionId}, + + [Parameter(ParameterSetName='GetViaIdentity', Mandatory, ValueFromPipeline)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.IEventGridIdentity] + # Identity Parameter + # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + ${InputObject}, + + [Parameter()] + [Alias('AzureRMContext', 'AzureCredential')] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Returns true when the command succeeds + ${PassThru}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + if ($null -eq [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion) { + [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion = $Host.Runspace.Version.ToString() + } + $preTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + if ($preTelemetryId -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId =(New-Guid).ToString() + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.module]::Instance.Telemetry.Invoke('Create', $MyInvocation, $parameterSet, $PSCmdlet) + } else { + $internalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + if ($internalCalledCmdlets -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $MyInvocation.MyCommand.Name + } else { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets += ',' + $MyInvocation.MyCommand.Name + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = 'internal' + } + + $mapping = @{ + Get = 'Az.EventGrid.private\Get-AzEventGridPartnerTopicEventSubscriptionDeliveryAttribute_Get'; + GetViaIdentity = 'Az.EventGrid.private\Get-AzEventGridPartnerTopicEventSubscriptionDeliveryAttribute_GetViaIdentity'; + } + if (('Get') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { + $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } + + finally { + $backupTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + $backupInternalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + +} +end { + try { + $steppablePipeline.End() + + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $backupTelemetryId + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $backupInternalCalledCmdlets + if ($preTelemetryId -eq '') { + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.module]::Instance.Telemetry.Invoke('Send', $MyInvocation, $parameterSet, $PSCmdlet) + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $preTelemetryId + + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} +} diff --git a/swaggerci/eventgrid/exports/Get-AzEventGridPartnerTopicEventSubscriptionFullUrl.ps1 b/swaggerci/eventgrid/exports/Get-AzEventGridPartnerTopicEventSubscriptionFullUrl.ps1 new file mode 100644 index 000000000000..0900916034bd --- /dev/null +++ b/swaggerci/eventgrid/exports/Get-AzEventGridPartnerTopicEventSubscriptionFullUrl.ps1 @@ -0,0 +1,225 @@ + +# ---------------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for license information. +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is regenerated. +# ---------------------------------------------------------------------------------- + +<# +.Synopsis +Get the full endpoint URL for an event subscription of a partner topic. +.Description +Get the full endpoint URL for an event subscription of a partner topic. +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Inputs +Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.IEventGridIdentity +.Outputs +System.String +.Notes +COMPLEX PARAMETER PROPERTIES + +To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. + +INPUTOBJECT : Identity Parameter + [ChannelName ]: Name of the channel. + [DomainName ]: Name of the domain. + [DomainTopicName ]: Name of the topic. + [EventChannelName ]: Name of the event channel. + [EventSubscriptionName ]: Name of the event subscription. + [Id ]: Resource identity path + [Location ]: Name of the location. + [ParentName ]: The name of the parent resource (namely, either, the topic name, domain name, or partner namespace name). + [ParentType ]: The type of the parent resource. This can be either \'topics\', \'domains\', or \'partnerNamespaces\'. + [PartnerDestinationName ]: Name of the partner destination. + [PartnerNamespaceName ]: Name of the partner namespace. + [PartnerRegistrationName ]: Name of the partner registration. + [PartnerTopicName ]: Name of the partner topic. + [PrivateEndpointConnectionName ]: The name of the private endpoint connection connection. + [PrivateLinkResourceName ]: The name of private link resource. + [ProviderNamespace ]: Namespace of the provider of the topic. + [ResourceGroupName ]: The name of the resource group within the partners subscription. + [ResourceName ]: Name of the resource. + [ResourceTypeName ]: Name of the resource type. + [Scope ]: The scope of the event subscription. The scope can be a subscription, or a resource group, or a top level resource belonging to a resource provider namespace, or an EventGrid topic. For example, use '/subscriptions/{subscriptionId}/' for a subscription, '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}' for a resource group, and '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}' for a resource, and '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.EventGrid/topics/{topicName}' for an EventGrid topic. + [SubscriptionId ]: Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription ID forms part of the URI for every service call. + [SystemTopicName ]: Name of the system topic. + [TopicName ]: Name of the domain topic. + [TopicTypeName ]: Name of the topic type. + [VerifiedPartnerName ]: Name of the verified partner. +.Link +https://docs.microsoft.com/en-us/powershell/module/az.eventgrid/get-azeventgridpartnertopiceventsubscriptionfullurl +#> +function Get-AzEventGridPartnerTopicEventSubscriptionFullUrl { +[OutputType([System.String])] +[CmdletBinding(DefaultParameterSetName='Get', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(ParameterSetName='Get', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [System.String] + # Name of the event subscription to be created. + # Event subscription names must be between 3 and 100 characters in length and use alphanumeric letters only. + ${EventSubscriptionName}, + + [Parameter(ParameterSetName='Get', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [System.String] + # Name of the partner topic. + ${PartnerTopicName}, + + [Parameter(ParameterSetName='Get', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [System.String] + # The name of the resource group within the user's subscription. + ${ResourceGroupName}, + + [Parameter(ParameterSetName='Get')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] + [System.String[]] + # Subscription credentials that uniquely identify a Microsoft Azure subscription. + # The subscription ID forms part of the URI for every service call. + ${SubscriptionId}, + + [Parameter(ParameterSetName='GetViaIdentity', Mandatory, ValueFromPipeline)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.IEventGridIdentity] + # Identity Parameter + # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + ${InputObject}, + + [Parameter()] + [Alias('AzureRMContext', 'AzureCredential')] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Returns true when the command succeeds + ${PassThru}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + if ($null -eq [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion) { + [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion = $Host.Runspace.Version.ToString() + } + $preTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + if ($preTelemetryId -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId =(New-Guid).ToString() + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.module]::Instance.Telemetry.Invoke('Create', $MyInvocation, $parameterSet, $PSCmdlet) + } else { + $internalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + if ($internalCalledCmdlets -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $MyInvocation.MyCommand.Name + } else { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets += ',' + $MyInvocation.MyCommand.Name + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = 'internal' + } + + $mapping = @{ + Get = 'Az.EventGrid.private\Get-AzEventGridPartnerTopicEventSubscriptionFullUrl_Get'; + GetViaIdentity = 'Az.EventGrid.private\Get-AzEventGridPartnerTopicEventSubscriptionFullUrl_GetViaIdentity'; + } + if (('Get') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { + $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } + + finally { + $backupTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + $backupInternalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + +} +end { + try { + $steppablePipeline.End() + + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $backupTelemetryId + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $backupInternalCalledCmdlets + if ($preTelemetryId -eq '') { + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.module]::Instance.Telemetry.Invoke('Send', $MyInvocation, $parameterSet, $PSCmdlet) + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $preTelemetryId + + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} +} diff --git a/swaggerci/eventgrid/exports/Get-AzEventGridPrivateEndpointConnection.ps1 b/swaggerci/eventgrid/exports/Get-AzEventGridPrivateEndpointConnection.ps1 new file mode 100644 index 000000000000..b69cc29b0454 --- /dev/null +++ b/swaggerci/eventgrid/exports/Get-AzEventGridPrivateEndpointConnection.ps1 @@ -0,0 +1,257 @@ + +# ---------------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for license information. +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is regenerated. +# ---------------------------------------------------------------------------------- + +<# +.Synopsis +Get a specific private endpoint connection under a topic, domain, or partner namespace. +.Description +Get a specific private endpoint connection under a topic, domain, or partner namespace. +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Inputs +Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.IEventGridIdentity +.Outputs +Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPrivateEndpointConnection +.Notes +COMPLEX PARAMETER PROPERTIES + +To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. + +INPUTOBJECT : Identity Parameter + [ChannelName ]: Name of the channel. + [DomainName ]: Name of the domain. + [DomainTopicName ]: Name of the topic. + [EventChannelName ]: Name of the event channel. + [EventSubscriptionName ]: Name of the event subscription. + [Id ]: Resource identity path + [Location ]: Name of the location. + [ParentName ]: The name of the parent resource (namely, either, the topic name, domain name, or partner namespace name). + [ParentType ]: The type of the parent resource. This can be either \'topics\', \'domains\', or \'partnerNamespaces\'. + [PartnerDestinationName ]: Name of the partner destination. + [PartnerNamespaceName ]: Name of the partner namespace. + [PartnerRegistrationName ]: Name of the partner registration. + [PartnerTopicName ]: Name of the partner topic. + [PrivateEndpointConnectionName ]: The name of the private endpoint connection connection. + [PrivateLinkResourceName ]: The name of private link resource. + [ProviderNamespace ]: Namespace of the provider of the topic. + [ResourceGroupName ]: The name of the resource group within the partners subscription. + [ResourceName ]: Name of the resource. + [ResourceTypeName ]: Name of the resource type. + [Scope ]: The scope of the event subscription. The scope can be a subscription, or a resource group, or a top level resource belonging to a resource provider namespace, or an EventGrid topic. For example, use '/subscriptions/{subscriptionId}/' for a subscription, '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}' for a resource group, and '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}' for a resource, and '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.EventGrid/topics/{topicName}' for an EventGrid topic. + [SubscriptionId ]: Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription ID forms part of the URI for every service call. + [SystemTopicName ]: Name of the system topic. + [TopicName ]: Name of the domain topic. + [TopicTypeName ]: Name of the topic type. + [VerifiedPartnerName ]: Name of the verified partner. +.Link +https://docs.microsoft.com/en-us/powershell/module/az.eventgrid/get-azeventgridprivateendpointconnection +#> +function Get-AzEventGridPrivateEndpointConnection { +[OutputType([Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPrivateEndpointConnection])] +[CmdletBinding(DefaultParameterSetName='List', PositionalBinding=$false)] +param( + [Parameter(ParameterSetName='Get', Mandatory)] + [Alias('PrivateEndpointConnectionName')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [System.String] + # The name of the private endpoint connection connection. + ${Name}, + + [Parameter(ParameterSetName='Get', Mandatory)] + [Parameter(ParameterSetName='List', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [System.String] + # The name of the parent resource (namely, either, the topic name, domain name, or partner namespace name). + ${ParentName}, + + [Parameter(ParameterSetName='Get', Mandatory)] + [Parameter(ParameterSetName='List', Mandatory)] + [ArgumentCompleter([Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.ParentType])] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.ParentType] + # The type of the parent resource. + # This can be either \'topics\', \'domains\', or \'partnerNamespaces\'. + ${ParentType}, + + [Parameter(ParameterSetName='Get', Mandatory)] + [Parameter(ParameterSetName='List', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [System.String] + # The name of the resource group within the user's subscription. + ${ResourceGroupName}, + + [Parameter(ParameterSetName='Get')] + [Parameter(ParameterSetName='List')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] + [System.String[]] + # Subscription credentials that uniquely identify a Microsoft Azure subscription. + # The subscription ID forms part of the URI for every service call. + ${SubscriptionId}, + + [Parameter(ParameterSetName='GetViaIdentity', Mandatory, ValueFromPipeline)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.IEventGridIdentity] + # Identity Parameter + # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + ${InputObject}, + + [Parameter(ParameterSetName='List')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Query')] + [System.String] + # The query used to filter the search results using OData syntax. + # Filtering is permitted on the 'name' property only and with limited number of OData operations. + # These operations are: the 'contains' function as well as the following logical operations: not, and, or, eq (for equal), and ne (for not equal). + # No arithmetic operations are supported. + # The following is a valid filter example: $filter=contains(namE, 'PATTERN') and name ne 'PATTERN-1'. + # The following is not a valid filter example: $filter=location eq 'westus'. + ${Filter}, + + [Parameter(ParameterSetName='List')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Query')] + [System.Int32] + # The number of results to return per page for the list operation. + # Valid range for top parameter is 1 to 100. + # If not specified, the default number of results to be returned is 20 items per page. + ${Top}, + + [Parameter()] + [Alias('AzureRMContext', 'AzureCredential')] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Returns true when the command succeeds + ${PassThru}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + if ($null -eq [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion) { + [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion = $Host.Runspace.Version.ToString() + } + $preTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + if ($preTelemetryId -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId =(New-Guid).ToString() + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.module]::Instance.Telemetry.Invoke('Create', $MyInvocation, $parameterSet, $PSCmdlet) + } else { + $internalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + if ($internalCalledCmdlets -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $MyInvocation.MyCommand.Name + } else { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets += ',' + $MyInvocation.MyCommand.Name + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = 'internal' + } + + $mapping = @{ + Get = 'Az.EventGrid.private\Get-AzEventGridPrivateEndpointConnection_Get'; + GetViaIdentity = 'Az.EventGrid.private\Get-AzEventGridPrivateEndpointConnection_GetViaIdentity'; + List = 'Az.EventGrid.private\Get-AzEventGridPrivateEndpointConnection_List'; + } + if (('Get', 'List') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { + $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } + + finally { + $backupTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + $backupInternalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + +} +end { + try { + $steppablePipeline.End() + + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $backupTelemetryId + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $backupInternalCalledCmdlets + if ($preTelemetryId -eq '') { + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.module]::Instance.Telemetry.Invoke('Send', $MyInvocation, $parameterSet, $PSCmdlet) + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $preTelemetryId + + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} +} diff --git a/swaggerci/eventgrid/exports/Get-AzEventGridPrivateLinkResource.ps1 b/swaggerci/eventgrid/exports/Get-AzEventGridPrivateLinkResource.ps1 new file mode 100644 index 000000000000..f9b1cbf6ee50 --- /dev/null +++ b/swaggerci/eventgrid/exports/Get-AzEventGridPrivateLinkResource.ps1 @@ -0,0 +1,256 @@ + +# ---------------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for license information. +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is regenerated. +# ---------------------------------------------------------------------------------- + +<# +.Synopsis +Get properties of a private link resource. +.Description +Get properties of a private link resource. +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Inputs +Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.IEventGridIdentity +.Outputs +Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPrivateLinkResource +.Notes +COMPLEX PARAMETER PROPERTIES + +To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. + +INPUTOBJECT : Identity Parameter + [ChannelName ]: Name of the channel. + [DomainName ]: Name of the domain. + [DomainTopicName ]: Name of the topic. + [EventChannelName ]: Name of the event channel. + [EventSubscriptionName ]: Name of the event subscription. + [Id ]: Resource identity path + [Location ]: Name of the location. + [ParentName ]: The name of the parent resource (namely, either, the topic name, domain name, or partner namespace name). + [ParentType ]: The type of the parent resource. This can be either \'topics\', \'domains\', or \'partnerNamespaces\'. + [PartnerDestinationName ]: Name of the partner destination. + [PartnerNamespaceName ]: Name of the partner namespace. + [PartnerRegistrationName ]: Name of the partner registration. + [PartnerTopicName ]: Name of the partner topic. + [PrivateEndpointConnectionName ]: The name of the private endpoint connection connection. + [PrivateLinkResourceName ]: The name of private link resource. + [ProviderNamespace ]: Namespace of the provider of the topic. + [ResourceGroupName ]: The name of the resource group within the partners subscription. + [ResourceName ]: Name of the resource. + [ResourceTypeName ]: Name of the resource type. + [Scope ]: The scope of the event subscription. The scope can be a subscription, or a resource group, or a top level resource belonging to a resource provider namespace, or an EventGrid topic. For example, use '/subscriptions/{subscriptionId}/' for a subscription, '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}' for a resource group, and '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}' for a resource, and '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.EventGrid/topics/{topicName}' for an EventGrid topic. + [SubscriptionId ]: Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription ID forms part of the URI for every service call. + [SystemTopicName ]: Name of the system topic. + [TopicName ]: Name of the domain topic. + [TopicTypeName ]: Name of the topic type. + [VerifiedPartnerName ]: Name of the verified partner. +.Link +https://docs.microsoft.com/en-us/powershell/module/az.eventgrid/get-azeventgridprivatelinkresource +#> +function Get-AzEventGridPrivateLinkResource { +[OutputType([Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPrivateLinkResource])] +[CmdletBinding(DefaultParameterSetName='List', PositionalBinding=$false)] +param( + [Parameter(ParameterSetName='Get', Mandatory)] + [Alias('PrivateLinkResourceName')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [System.String] + # The name of private link resource. + ${Name}, + + [Parameter(ParameterSetName='Get', Mandatory)] + [Parameter(ParameterSetName='List', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [System.String] + # The name of the parent resource (namely, either, the topic name, domain name, or partner namespace name). + ${ParentName}, + + [Parameter(ParameterSetName='Get', Mandatory)] + [Parameter(ParameterSetName='List', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [System.String] + # The type of the parent resource. + # This can be either \'topics\', \'domains\', or \'partnerNamespaces\'. + ${ParentType}, + + [Parameter(ParameterSetName='Get', Mandatory)] + [Parameter(ParameterSetName='List', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [System.String] + # The name of the resource group within the user's subscription. + ${ResourceGroupName}, + + [Parameter(ParameterSetName='Get')] + [Parameter(ParameterSetName='List')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] + [System.String[]] + # Subscription credentials that uniquely identify a Microsoft Azure subscription. + # The subscription ID forms part of the URI for every service call. + ${SubscriptionId}, + + [Parameter(ParameterSetName='GetViaIdentity', Mandatory, ValueFromPipeline)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.IEventGridIdentity] + # Identity Parameter + # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + ${InputObject}, + + [Parameter(ParameterSetName='List')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Query')] + [System.String] + # The query used to filter the search results using OData syntax. + # Filtering is permitted on the 'name' property only and with limited number of OData operations. + # These operations are: the 'contains' function as well as the following logical operations: not, and, or, eq (for equal), and ne (for not equal). + # No arithmetic operations are supported. + # The following is a valid filter example: $filter=contains(namE, 'PATTERN') and name ne 'PATTERN-1'. + # The following is not a valid filter example: $filter=location eq 'westus'. + ${Filter}, + + [Parameter(ParameterSetName='List')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Query')] + [System.Int32] + # The number of results to return per page for the list operation. + # Valid range for top parameter is 1 to 100. + # If not specified, the default number of results to be returned is 20 items per page. + ${Top}, + + [Parameter()] + [Alias('AzureRMContext', 'AzureCredential')] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Returns true when the command succeeds + ${PassThru}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + if ($null -eq [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion) { + [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion = $Host.Runspace.Version.ToString() + } + $preTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + if ($preTelemetryId -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId =(New-Guid).ToString() + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.module]::Instance.Telemetry.Invoke('Create', $MyInvocation, $parameterSet, $PSCmdlet) + } else { + $internalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + if ($internalCalledCmdlets -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $MyInvocation.MyCommand.Name + } else { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets += ',' + $MyInvocation.MyCommand.Name + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = 'internal' + } + + $mapping = @{ + Get = 'Az.EventGrid.private\Get-AzEventGridPrivateLinkResource_Get'; + GetViaIdentity = 'Az.EventGrid.private\Get-AzEventGridPrivateLinkResource_GetViaIdentity'; + List = 'Az.EventGrid.private\Get-AzEventGridPrivateLinkResource_List'; + } + if (('Get', 'List') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { + $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } + + finally { + $backupTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + $backupInternalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + +} +end { + try { + $steppablePipeline.End() + + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $backupTelemetryId + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $backupInternalCalledCmdlets + if ($preTelemetryId -eq '') { + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.module]::Instance.Telemetry.Invoke('Send', $MyInvocation, $parameterSet, $PSCmdlet) + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $preTelemetryId + + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} +} diff --git a/swaggerci/eventgrid/exports/Get-AzEventGridSystemTopic.ps1 b/swaggerci/eventgrid/exports/Get-AzEventGridSystemTopic.ps1 new file mode 100644 index 000000000000..09b138a5054b --- /dev/null +++ b/swaggerci/eventgrid/exports/Get-AzEventGridSystemTopic.ps1 @@ -0,0 +1,245 @@ + +# ---------------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for license information. +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is regenerated. +# ---------------------------------------------------------------------------------- + +<# +.Synopsis +Get properties of a system topic. +.Description +Get properties of a system topic. +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Inputs +Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.IEventGridIdentity +.Outputs +Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ISystemTopic +.Notes +COMPLEX PARAMETER PROPERTIES + +To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. + +INPUTOBJECT : Identity Parameter + [ChannelName ]: Name of the channel. + [DomainName ]: Name of the domain. + [DomainTopicName ]: Name of the topic. + [EventChannelName ]: Name of the event channel. + [EventSubscriptionName ]: Name of the event subscription. + [Id ]: Resource identity path + [Location ]: Name of the location. + [ParentName ]: The name of the parent resource (namely, either, the topic name, domain name, or partner namespace name). + [ParentType ]: The type of the parent resource. This can be either \'topics\', \'domains\', or \'partnerNamespaces\'. + [PartnerDestinationName ]: Name of the partner destination. + [PartnerNamespaceName ]: Name of the partner namespace. + [PartnerRegistrationName ]: Name of the partner registration. + [PartnerTopicName ]: Name of the partner topic. + [PrivateEndpointConnectionName ]: The name of the private endpoint connection connection. + [PrivateLinkResourceName ]: The name of private link resource. + [ProviderNamespace ]: Namespace of the provider of the topic. + [ResourceGroupName ]: The name of the resource group within the partners subscription. + [ResourceName ]: Name of the resource. + [ResourceTypeName ]: Name of the resource type. + [Scope ]: The scope of the event subscription. The scope can be a subscription, or a resource group, or a top level resource belonging to a resource provider namespace, or an EventGrid topic. For example, use '/subscriptions/{subscriptionId}/' for a subscription, '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}' for a resource group, and '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}' for a resource, and '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.EventGrid/topics/{topicName}' for an EventGrid topic. + [SubscriptionId ]: Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription ID forms part of the URI for every service call. + [SystemTopicName ]: Name of the system topic. + [TopicName ]: Name of the domain topic. + [TopicTypeName ]: Name of the topic type. + [VerifiedPartnerName ]: Name of the verified partner. +.Link +https://docs.microsoft.com/en-us/powershell/module/az.eventgrid/get-azeventgridsystemtopic +#> +function Get-AzEventGridSystemTopic { +[OutputType([Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ISystemTopic])] +[CmdletBinding(DefaultParameterSetName='List', PositionalBinding=$false)] +param( + [Parameter(ParameterSetName='Get', Mandatory)] + [Alias('SystemTopicName')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [System.String] + # Name of the system topic. + ${Name}, + + [Parameter(ParameterSetName='Get', Mandatory)] + [Parameter(ParameterSetName='List1', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [System.String] + # The name of the resource group within the user's subscription. + ${ResourceGroupName}, + + [Parameter(ParameterSetName='Get')] + [Parameter(ParameterSetName='List')] + [Parameter(ParameterSetName='List1')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] + [System.String[]] + # Subscription credentials that uniquely identify a Microsoft Azure subscription. + # The subscription ID forms part of the URI for every service call. + ${SubscriptionId}, + + [Parameter(ParameterSetName='GetViaIdentity', Mandatory, ValueFromPipeline)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.IEventGridIdentity] + # 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.EventGrid.Category('Query')] + [System.String] + # The query used to filter the search results using OData syntax. + # Filtering is permitted on the 'name' property only and with limited number of OData operations. + # These operations are: the 'contains' function as well as the following logical operations: not, and, or, eq (for equal), and ne (for not equal). + # No arithmetic operations are supported. + # The following is a valid filter example: $filter=contains(namE, 'PATTERN') and name ne 'PATTERN-1'. + # The following is not a valid filter example: $filter=location eq 'westus'. + ${Filter}, + + [Parameter(ParameterSetName='List')] + [Parameter(ParameterSetName='List1')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Query')] + [System.Int32] + # The number of results to return per page for the list operation. + # Valid range for top parameter is 1 to 100. + # If not specified, the default number of results to be returned is 20 items per page. + ${Top}, + + [Parameter()] + [Alias('AzureRMContext', 'AzureCredential')] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Returns true when the command succeeds + ${PassThru}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + if ($null -eq [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion) { + [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion = $Host.Runspace.Version.ToString() + } + $preTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + if ($preTelemetryId -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId =(New-Guid).ToString() + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.module]::Instance.Telemetry.Invoke('Create', $MyInvocation, $parameterSet, $PSCmdlet) + } else { + $internalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + if ($internalCalledCmdlets -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $MyInvocation.MyCommand.Name + } else { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets += ',' + $MyInvocation.MyCommand.Name + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = 'internal' + } + + $mapping = @{ + Get = 'Az.EventGrid.private\Get-AzEventGridSystemTopic_Get'; + GetViaIdentity = 'Az.EventGrid.private\Get-AzEventGridSystemTopic_GetViaIdentity'; + List = 'Az.EventGrid.private\Get-AzEventGridSystemTopic_List'; + List1 = 'Az.EventGrid.private\Get-AzEventGridSystemTopic_List1'; + } + if (('Get', 'List', 'List1') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { + $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } + + finally { + $backupTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + $backupInternalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + +} +end { + try { + $steppablePipeline.End() + + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $backupTelemetryId + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $backupInternalCalledCmdlets + if ($preTelemetryId -eq '') { + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.module]::Instance.Telemetry.Invoke('Send', $MyInvocation, $parameterSet, $PSCmdlet) + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $preTelemetryId + + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} +} diff --git a/swaggerci/eventgrid/exports/Get-AzEventGridSystemTopicEventSubscription.ps1 b/swaggerci/eventgrid/exports/Get-AzEventGridSystemTopicEventSubscription.ps1 new file mode 100644 index 000000000000..5e4d9d4aefa0 --- /dev/null +++ b/swaggerci/eventgrid/exports/Get-AzEventGridSystemTopicEventSubscription.ps1 @@ -0,0 +1,248 @@ + +# ---------------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for license information. +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is regenerated. +# ---------------------------------------------------------------------------------- + +<# +.Synopsis +Get an event subscription. +.Description +Get an event subscription. +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Inputs +Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.IEventGridIdentity +.Outputs +Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscription +.Notes +COMPLEX PARAMETER PROPERTIES + +To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. + +INPUTOBJECT : Identity Parameter + [ChannelName ]: Name of the channel. + [DomainName ]: Name of the domain. + [DomainTopicName ]: Name of the topic. + [EventChannelName ]: Name of the event channel. + [EventSubscriptionName ]: Name of the event subscription. + [Id ]: Resource identity path + [Location ]: Name of the location. + [ParentName ]: The name of the parent resource (namely, either, the topic name, domain name, or partner namespace name). + [ParentType ]: The type of the parent resource. This can be either \'topics\', \'domains\', or \'partnerNamespaces\'. + [PartnerDestinationName ]: Name of the partner destination. + [PartnerNamespaceName ]: Name of the partner namespace. + [PartnerRegistrationName ]: Name of the partner registration. + [PartnerTopicName ]: Name of the partner topic. + [PrivateEndpointConnectionName ]: The name of the private endpoint connection connection. + [PrivateLinkResourceName ]: The name of private link resource. + [ProviderNamespace ]: Namespace of the provider of the topic. + [ResourceGroupName ]: The name of the resource group within the partners subscription. + [ResourceName ]: Name of the resource. + [ResourceTypeName ]: Name of the resource type. + [Scope ]: The scope of the event subscription. The scope can be a subscription, or a resource group, or a top level resource belonging to a resource provider namespace, or an EventGrid topic. For example, use '/subscriptions/{subscriptionId}/' for a subscription, '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}' for a resource group, and '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}' for a resource, and '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.EventGrid/topics/{topicName}' for an EventGrid topic. + [SubscriptionId ]: Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription ID forms part of the URI for every service call. + [SystemTopicName ]: Name of the system topic. + [TopicName ]: Name of the domain topic. + [TopicTypeName ]: Name of the topic type. + [VerifiedPartnerName ]: Name of the verified partner. +.Link +https://docs.microsoft.com/en-us/powershell/module/az.eventgrid/get-azeventgridsystemtopiceventsubscription +#> +function Get-AzEventGridSystemTopicEventSubscription { +[OutputType([Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscription])] +[CmdletBinding(DefaultParameterSetName='List', PositionalBinding=$false)] +param( + [Parameter(ParameterSetName='Get', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [System.String] + # Name of the event subscription to be created. + # Event subscription names must be between 3 and 100 characters in length and use alphanumeric letters only. + ${EventSubscriptionName}, + + [Parameter(ParameterSetName='Get', Mandatory)] + [Parameter(ParameterSetName='List', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [System.String] + # The name of the resource group within the user's subscription. + ${ResourceGroupName}, + + [Parameter(ParameterSetName='Get')] + [Parameter(ParameterSetName='List')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] + [System.String[]] + # Subscription credentials that uniquely identify a Microsoft Azure subscription. + # The subscription ID forms part of the URI for every service call. + ${SubscriptionId}, + + [Parameter(ParameterSetName='Get', Mandatory)] + [Parameter(ParameterSetName='List', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [System.String] + # Name of the system topic. + ${SystemTopicName}, + + [Parameter(ParameterSetName='GetViaIdentity', Mandatory, ValueFromPipeline)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.IEventGridIdentity] + # Identity Parameter + # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + ${InputObject}, + + [Parameter(ParameterSetName='List')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Query')] + [System.String] + # The query used to filter the search results using OData syntax. + # Filtering is permitted on the 'name' property only and with limited number of OData operations. + # These operations are: the 'contains' function as well as the following logical operations: not, and, or, eq (for equal), and ne (for not equal). + # No arithmetic operations are supported. + # The following is a valid filter example: $filter=contains(namE, 'PATTERN') and name ne 'PATTERN-1'. + # The following is not a valid filter example: $filter=location eq 'westus'. + ${Filter}, + + [Parameter(ParameterSetName='List')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Query')] + [System.Int32] + # The number of results to return per page for the list operation. + # Valid range for top parameter is 1 to 100. + # If not specified, the default number of results to be returned is 20 items per page. + ${Top}, + + [Parameter()] + [Alias('AzureRMContext', 'AzureCredential')] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Returns true when the command succeeds + ${PassThru}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + if ($null -eq [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion) { + [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion = $Host.Runspace.Version.ToString() + } + $preTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + if ($preTelemetryId -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId =(New-Guid).ToString() + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.module]::Instance.Telemetry.Invoke('Create', $MyInvocation, $parameterSet, $PSCmdlet) + } else { + $internalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + if ($internalCalledCmdlets -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $MyInvocation.MyCommand.Name + } else { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets += ',' + $MyInvocation.MyCommand.Name + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = 'internal' + } + + $mapping = @{ + Get = 'Az.EventGrid.private\Get-AzEventGridSystemTopicEventSubscription_Get'; + GetViaIdentity = 'Az.EventGrid.private\Get-AzEventGridSystemTopicEventSubscription_GetViaIdentity'; + List = 'Az.EventGrid.private\Get-AzEventGridSystemTopicEventSubscription_List'; + } + if (('Get', 'List') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { + $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } + + finally { + $backupTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + $backupInternalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + +} +end { + try { + $steppablePipeline.End() + + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $backupTelemetryId + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $backupInternalCalledCmdlets + if ($preTelemetryId -eq '') { + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.module]::Instance.Telemetry.Invoke('Send', $MyInvocation, $parameterSet, $PSCmdlet) + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $preTelemetryId + + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} +} diff --git a/swaggerci/eventgrid/exports/Get-AzEventGridSystemTopicEventSubscriptionDeliveryAttribute.ps1 b/swaggerci/eventgrid/exports/Get-AzEventGridSystemTopicEventSubscriptionDeliveryAttribute.ps1 new file mode 100644 index 000000000000..d66bc44629d1 --- /dev/null +++ b/swaggerci/eventgrid/exports/Get-AzEventGridSystemTopicEventSubscriptionDeliveryAttribute.ps1 @@ -0,0 +1,225 @@ + +# ---------------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for license information. +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is regenerated. +# ---------------------------------------------------------------------------------- + +<# +.Synopsis +Get all delivery attributes for an event subscription. +.Description +Get all delivery attributes for an event subscription. +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Inputs +Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.IEventGridIdentity +.Outputs +Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDeliveryAttributeMapping +.Notes +COMPLEX PARAMETER PROPERTIES + +To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. + +INPUTOBJECT : Identity Parameter + [ChannelName ]: Name of the channel. + [DomainName ]: Name of the domain. + [DomainTopicName ]: Name of the topic. + [EventChannelName ]: Name of the event channel. + [EventSubscriptionName ]: Name of the event subscription. + [Id ]: Resource identity path + [Location ]: Name of the location. + [ParentName ]: The name of the parent resource (namely, either, the topic name, domain name, or partner namespace name). + [ParentType ]: The type of the parent resource. This can be either \'topics\', \'domains\', or \'partnerNamespaces\'. + [PartnerDestinationName ]: Name of the partner destination. + [PartnerNamespaceName ]: Name of the partner namespace. + [PartnerRegistrationName ]: Name of the partner registration. + [PartnerTopicName ]: Name of the partner topic. + [PrivateEndpointConnectionName ]: The name of the private endpoint connection connection. + [PrivateLinkResourceName ]: The name of private link resource. + [ProviderNamespace ]: Namespace of the provider of the topic. + [ResourceGroupName ]: The name of the resource group within the partners subscription. + [ResourceName ]: Name of the resource. + [ResourceTypeName ]: Name of the resource type. + [Scope ]: The scope of the event subscription. The scope can be a subscription, or a resource group, or a top level resource belonging to a resource provider namespace, or an EventGrid topic. For example, use '/subscriptions/{subscriptionId}/' for a subscription, '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}' for a resource group, and '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}' for a resource, and '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.EventGrid/topics/{topicName}' for an EventGrid topic. + [SubscriptionId ]: Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription ID forms part of the URI for every service call. + [SystemTopicName ]: Name of the system topic. + [TopicName ]: Name of the domain topic. + [TopicTypeName ]: Name of the topic type. + [VerifiedPartnerName ]: Name of the verified partner. +.Link +https://docs.microsoft.com/en-us/powershell/module/az.eventgrid/get-azeventgridsystemtopiceventsubscriptiondeliveryattribute +#> +function Get-AzEventGridSystemTopicEventSubscriptionDeliveryAttribute { +[OutputType([Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDeliveryAttributeMapping])] +[CmdletBinding(DefaultParameterSetName='Get', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(ParameterSetName='Get', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [System.String] + # Name of the event subscription to be created. + # Event subscription names must be between 3 and 100 characters in length and use alphanumeric letters only. + ${EventSubscriptionName}, + + [Parameter(ParameterSetName='Get', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [System.String] + # The name of the resource group within the user's subscription. + ${ResourceGroupName}, + + [Parameter(ParameterSetName='Get')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] + [System.String[]] + # Subscription credentials that uniquely identify a Microsoft Azure subscription. + # The subscription ID forms part of the URI for every service call. + ${SubscriptionId}, + + [Parameter(ParameterSetName='Get', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [System.String] + # Name of the system topic. + ${SystemTopicName}, + + [Parameter(ParameterSetName='GetViaIdentity', Mandatory, ValueFromPipeline)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.IEventGridIdentity] + # Identity Parameter + # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + ${InputObject}, + + [Parameter()] + [Alias('AzureRMContext', 'AzureCredential')] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Returns true when the command succeeds + ${PassThru}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + if ($null -eq [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion) { + [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion = $Host.Runspace.Version.ToString() + } + $preTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + if ($preTelemetryId -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId =(New-Guid).ToString() + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.module]::Instance.Telemetry.Invoke('Create', $MyInvocation, $parameterSet, $PSCmdlet) + } else { + $internalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + if ($internalCalledCmdlets -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $MyInvocation.MyCommand.Name + } else { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets += ',' + $MyInvocation.MyCommand.Name + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = 'internal' + } + + $mapping = @{ + Get = 'Az.EventGrid.private\Get-AzEventGridSystemTopicEventSubscriptionDeliveryAttribute_Get'; + GetViaIdentity = 'Az.EventGrid.private\Get-AzEventGridSystemTopicEventSubscriptionDeliveryAttribute_GetViaIdentity'; + } + if (('Get') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { + $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } + + finally { + $backupTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + $backupInternalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + +} +end { + try { + $steppablePipeline.End() + + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $backupTelemetryId + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $backupInternalCalledCmdlets + if ($preTelemetryId -eq '') { + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.module]::Instance.Telemetry.Invoke('Send', $MyInvocation, $parameterSet, $PSCmdlet) + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $preTelemetryId + + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} +} diff --git a/swaggerci/eventgrid/exports/Get-AzEventGridSystemTopicEventSubscriptionFullUrl.ps1 b/swaggerci/eventgrid/exports/Get-AzEventGridSystemTopicEventSubscriptionFullUrl.ps1 new file mode 100644 index 000000000000..4d56e37b47c9 --- /dev/null +++ b/swaggerci/eventgrid/exports/Get-AzEventGridSystemTopicEventSubscriptionFullUrl.ps1 @@ -0,0 +1,225 @@ + +# ---------------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for license information. +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is regenerated. +# ---------------------------------------------------------------------------------- + +<# +.Synopsis +Get the full endpoint URL for an event subscription of a system topic. +.Description +Get the full endpoint URL for an event subscription of a system topic. +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Inputs +Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.IEventGridIdentity +.Outputs +System.String +.Notes +COMPLEX PARAMETER PROPERTIES + +To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. + +INPUTOBJECT : Identity Parameter + [ChannelName ]: Name of the channel. + [DomainName ]: Name of the domain. + [DomainTopicName ]: Name of the topic. + [EventChannelName ]: Name of the event channel. + [EventSubscriptionName ]: Name of the event subscription. + [Id ]: Resource identity path + [Location ]: Name of the location. + [ParentName ]: The name of the parent resource (namely, either, the topic name, domain name, or partner namespace name). + [ParentType ]: The type of the parent resource. This can be either \'topics\', \'domains\', or \'partnerNamespaces\'. + [PartnerDestinationName ]: Name of the partner destination. + [PartnerNamespaceName ]: Name of the partner namespace. + [PartnerRegistrationName ]: Name of the partner registration. + [PartnerTopicName ]: Name of the partner topic. + [PrivateEndpointConnectionName ]: The name of the private endpoint connection connection. + [PrivateLinkResourceName ]: The name of private link resource. + [ProviderNamespace ]: Namespace of the provider of the topic. + [ResourceGroupName ]: The name of the resource group within the partners subscription. + [ResourceName ]: Name of the resource. + [ResourceTypeName ]: Name of the resource type. + [Scope ]: The scope of the event subscription. The scope can be a subscription, or a resource group, or a top level resource belonging to a resource provider namespace, or an EventGrid topic. For example, use '/subscriptions/{subscriptionId}/' for a subscription, '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}' for a resource group, and '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}' for a resource, and '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.EventGrid/topics/{topicName}' for an EventGrid topic. + [SubscriptionId ]: Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription ID forms part of the URI for every service call. + [SystemTopicName ]: Name of the system topic. + [TopicName ]: Name of the domain topic. + [TopicTypeName ]: Name of the topic type. + [VerifiedPartnerName ]: Name of the verified partner. +.Link +https://docs.microsoft.com/en-us/powershell/module/az.eventgrid/get-azeventgridsystemtopiceventsubscriptionfullurl +#> +function Get-AzEventGridSystemTopicEventSubscriptionFullUrl { +[OutputType([System.String])] +[CmdletBinding(DefaultParameterSetName='Get', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(ParameterSetName='Get', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [System.String] + # Name of the event subscription to be created. + # Event subscription names must be between 3 and 100 characters in length and use alphanumeric letters only. + ${EventSubscriptionName}, + + [Parameter(ParameterSetName='Get', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [System.String] + # The name of the resource group within the user's subscription. + ${ResourceGroupName}, + + [Parameter(ParameterSetName='Get')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] + [System.String[]] + # Subscription credentials that uniquely identify a Microsoft Azure subscription. + # The subscription ID forms part of the URI for every service call. + ${SubscriptionId}, + + [Parameter(ParameterSetName='Get', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [System.String] + # Name of the system topic. + ${SystemTopicName}, + + [Parameter(ParameterSetName='GetViaIdentity', Mandatory, ValueFromPipeline)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.IEventGridIdentity] + # Identity Parameter + # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + ${InputObject}, + + [Parameter()] + [Alias('AzureRMContext', 'AzureCredential')] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Returns true when the command succeeds + ${PassThru}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + if ($null -eq [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion) { + [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion = $Host.Runspace.Version.ToString() + } + $preTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + if ($preTelemetryId -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId =(New-Guid).ToString() + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.module]::Instance.Telemetry.Invoke('Create', $MyInvocation, $parameterSet, $PSCmdlet) + } else { + $internalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + if ($internalCalledCmdlets -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $MyInvocation.MyCommand.Name + } else { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets += ',' + $MyInvocation.MyCommand.Name + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = 'internal' + } + + $mapping = @{ + Get = 'Az.EventGrid.private\Get-AzEventGridSystemTopicEventSubscriptionFullUrl_Get'; + GetViaIdentity = 'Az.EventGrid.private\Get-AzEventGridSystemTopicEventSubscriptionFullUrl_GetViaIdentity'; + } + if (('Get') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { + $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } + + finally { + $backupTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + $backupInternalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + +} +end { + try { + $steppablePipeline.End() + + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $backupTelemetryId + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $backupInternalCalledCmdlets + if ($preTelemetryId -eq '') { + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.module]::Instance.Telemetry.Invoke('Send', $MyInvocation, $parameterSet, $PSCmdlet) + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $preTelemetryId + + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} +} diff --git a/swaggerci/eventgrid/exports/Get-AzEventGridTopic.ps1 b/swaggerci/eventgrid/exports/Get-AzEventGridTopic.ps1 new file mode 100644 index 000000000000..0c284114c779 --- /dev/null +++ b/swaggerci/eventgrid/exports/Get-AzEventGridTopic.ps1 @@ -0,0 +1,245 @@ + +# ---------------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for license information. +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is regenerated. +# ---------------------------------------------------------------------------------- + +<# +.Synopsis +Get properties of a topic. +.Description +Get properties of a topic. +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Inputs +Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.IEventGridIdentity +.Outputs +Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITopic +.Notes +COMPLEX PARAMETER PROPERTIES + +To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. + +INPUTOBJECT : Identity Parameter + [ChannelName ]: Name of the channel. + [DomainName ]: Name of the domain. + [DomainTopicName ]: Name of the topic. + [EventChannelName ]: Name of the event channel. + [EventSubscriptionName ]: Name of the event subscription. + [Id ]: Resource identity path + [Location ]: Name of the location. + [ParentName ]: The name of the parent resource (namely, either, the topic name, domain name, or partner namespace name). + [ParentType ]: The type of the parent resource. This can be either \'topics\', \'domains\', or \'partnerNamespaces\'. + [PartnerDestinationName ]: Name of the partner destination. + [PartnerNamespaceName ]: Name of the partner namespace. + [PartnerRegistrationName ]: Name of the partner registration. + [PartnerTopicName ]: Name of the partner topic. + [PrivateEndpointConnectionName ]: The name of the private endpoint connection connection. + [PrivateLinkResourceName ]: The name of private link resource. + [ProviderNamespace ]: Namespace of the provider of the topic. + [ResourceGroupName ]: The name of the resource group within the partners subscription. + [ResourceName ]: Name of the resource. + [ResourceTypeName ]: Name of the resource type. + [Scope ]: The scope of the event subscription. The scope can be a subscription, or a resource group, or a top level resource belonging to a resource provider namespace, or an EventGrid topic. For example, use '/subscriptions/{subscriptionId}/' for a subscription, '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}' for a resource group, and '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}' for a resource, and '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.EventGrid/topics/{topicName}' for an EventGrid topic. + [SubscriptionId ]: Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription ID forms part of the URI for every service call. + [SystemTopicName ]: Name of the system topic. + [TopicName ]: Name of the domain topic. + [TopicTypeName ]: Name of the topic type. + [VerifiedPartnerName ]: Name of the verified partner. +.Link +https://docs.microsoft.com/en-us/powershell/module/az.eventgrid/get-azeventgridtopic +#> +function Get-AzEventGridTopic { +[OutputType([Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITopic])] +[CmdletBinding(DefaultParameterSetName='List', PositionalBinding=$false)] +param( + [Parameter(ParameterSetName='Get', Mandatory)] + [Alias('TopicName')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [System.String] + # Name of the topic. + ${Name}, + + [Parameter(ParameterSetName='Get', Mandatory)] + [Parameter(ParameterSetName='List1', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [System.String] + # The name of the resource group within the user's subscription. + ${ResourceGroupName}, + + [Parameter(ParameterSetName='Get')] + [Parameter(ParameterSetName='List')] + [Parameter(ParameterSetName='List1')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] + [System.String[]] + # Subscription credentials that uniquely identify a Microsoft Azure subscription. + # The subscription ID forms part of the URI for every service call. + ${SubscriptionId}, + + [Parameter(ParameterSetName='GetViaIdentity', Mandatory, ValueFromPipeline)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.IEventGridIdentity] + # 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.EventGrid.Category('Query')] + [System.String] + # The query used to filter the search results using OData syntax. + # Filtering is permitted on the 'name' property only and with limited number of OData operations. + # These operations are: the 'contains' function as well as the following logical operations: not, and, or, eq (for equal), and ne (for not equal). + # No arithmetic operations are supported. + # The following is a valid filter example: $filter=contains(namE, 'PATTERN') and name ne 'PATTERN-1'. + # The following is not a valid filter example: $filter=location eq 'westus'. + ${Filter}, + + [Parameter(ParameterSetName='List')] + [Parameter(ParameterSetName='List1')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Query')] + [System.Int32] + # The number of results to return per page for the list operation. + # Valid range for top parameter is 1 to 100. + # If not specified, the default number of results to be returned is 20 items per page. + ${Top}, + + [Parameter()] + [Alias('AzureRMContext', 'AzureCredential')] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Returns true when the command succeeds + ${PassThru}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + if ($null -eq [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion) { + [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion = $Host.Runspace.Version.ToString() + } + $preTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + if ($preTelemetryId -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId =(New-Guid).ToString() + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.module]::Instance.Telemetry.Invoke('Create', $MyInvocation, $parameterSet, $PSCmdlet) + } else { + $internalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + if ($internalCalledCmdlets -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $MyInvocation.MyCommand.Name + } else { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets += ',' + $MyInvocation.MyCommand.Name + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = 'internal' + } + + $mapping = @{ + Get = 'Az.EventGrid.private\Get-AzEventGridTopic_Get'; + GetViaIdentity = 'Az.EventGrid.private\Get-AzEventGridTopic_GetViaIdentity'; + List = 'Az.EventGrid.private\Get-AzEventGridTopic_List'; + List1 = 'Az.EventGrid.private\Get-AzEventGridTopic_List1'; + } + if (('Get', 'List', 'List1') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { + $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } + + finally { + $backupTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + $backupInternalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + +} +end { + try { + $steppablePipeline.End() + + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $backupTelemetryId + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $backupInternalCalledCmdlets + if ($preTelemetryId -eq '') { + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.module]::Instance.Telemetry.Invoke('Send', $MyInvocation, $parameterSet, $PSCmdlet) + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $preTelemetryId + + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} +} diff --git a/swaggerci/eventgrid/exports/Get-AzEventGridTopicEventSubscription.ps1 b/swaggerci/eventgrid/exports/Get-AzEventGridTopicEventSubscription.ps1 new file mode 100644 index 000000000000..caf15e1a74f9 --- /dev/null +++ b/swaggerci/eventgrid/exports/Get-AzEventGridTopicEventSubscription.ps1 @@ -0,0 +1,229 @@ + +# ---------------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for license information. +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is regenerated. +# ---------------------------------------------------------------------------------- + +<# +.Synopsis +Get properties of an event subscription of a topic. +.Description +Get properties of an event subscription of a topic. +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Inputs +Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.IEventGridIdentity +.Outputs +Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscription +.Notes +COMPLEX PARAMETER PROPERTIES + +To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. + +INPUTOBJECT : Identity Parameter + [ChannelName ]: Name of the channel. + [DomainName ]: Name of the domain. + [DomainTopicName ]: Name of the topic. + [EventChannelName ]: Name of the event channel. + [EventSubscriptionName ]: Name of the event subscription. + [Id ]: Resource identity path + [Location ]: Name of the location. + [ParentName ]: The name of the parent resource (namely, either, the topic name, domain name, or partner namespace name). + [ParentType ]: The type of the parent resource. This can be either \'topics\', \'domains\', or \'partnerNamespaces\'. + [PartnerDestinationName ]: Name of the partner destination. + [PartnerNamespaceName ]: Name of the partner namespace. + [PartnerRegistrationName ]: Name of the partner registration. + [PartnerTopicName ]: Name of the partner topic. + [PrivateEndpointConnectionName ]: The name of the private endpoint connection connection. + [PrivateLinkResourceName ]: The name of private link resource. + [ProviderNamespace ]: Namespace of the provider of the topic. + [ResourceGroupName ]: The name of the resource group within the partners subscription. + [ResourceName ]: Name of the resource. + [ResourceTypeName ]: Name of the resource type. + [Scope ]: The scope of the event subscription. The scope can be a subscription, or a resource group, or a top level resource belonging to a resource provider namespace, or an EventGrid topic. For example, use '/subscriptions/{subscriptionId}/' for a subscription, '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}' for a resource group, and '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}' for a resource, and '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.EventGrid/topics/{topicName}' for an EventGrid topic. + [SubscriptionId ]: Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription ID forms part of the URI for every service call. + [SystemTopicName ]: Name of the system topic. + [TopicName ]: Name of the domain topic. + [TopicTypeName ]: Name of the topic type. + [VerifiedPartnerName ]: Name of the verified partner. +.Link +https://docs.microsoft.com/en-us/powershell/module/az.eventgrid/get-azeventgridtopiceventsubscription +#> +function Get-AzEventGridTopicEventSubscription { +[OutputType([Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscription])] +[CmdletBinding(DefaultParameterSetName='List', PositionalBinding=$false)] +param( + [Parameter(ParameterSetName='Get', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [System.String] + # Name of the event subscription to be found. + # Event subscription names must be between 3 and 100 characters in length and use alphanumeric letters only. + ${EventSubscriptionName}, + + [Parameter(ParameterSetName='Get', Mandatory)] + [Parameter(ParameterSetName='List', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [System.String] + # The name of the resource group within the user's subscription. + ${ResourceGroupName}, + + [Parameter(ParameterSetName='Get')] + [Parameter(ParameterSetName='List')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] + [System.String[]] + # Subscription credentials that uniquely identify a Microsoft Azure subscription. + # The subscription ID forms part of the URI for every service call. + ${SubscriptionId}, + + [Parameter(ParameterSetName='Get', Mandatory)] + [Parameter(ParameterSetName='List', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [System.String] + # Name of the partner topic. + ${TopicName}, + + [Parameter(ParameterSetName='GetViaIdentity', Mandatory, ValueFromPipeline)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.IEventGridIdentity] + # Identity Parameter + # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + ${InputObject}, + + [Parameter()] + [Alias('AzureRMContext', 'AzureCredential')] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Returns true when the command succeeds + ${PassThru}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + if ($null -eq [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion) { + [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion = $Host.Runspace.Version.ToString() + } + $preTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + if ($preTelemetryId -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId =(New-Guid).ToString() + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.module]::Instance.Telemetry.Invoke('Create', $MyInvocation, $parameterSet, $PSCmdlet) + } else { + $internalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + if ($internalCalledCmdlets -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $MyInvocation.MyCommand.Name + } else { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets += ',' + $MyInvocation.MyCommand.Name + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = 'internal' + } + + $mapping = @{ + Get = 'Az.EventGrid.private\Get-AzEventGridTopicEventSubscription_Get'; + GetViaIdentity = 'Az.EventGrid.private\Get-AzEventGridTopicEventSubscription_GetViaIdentity'; + List = 'Az.EventGrid.private\Get-AzEventGridTopicEventSubscription_List'; + } + if (('Get', 'List') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { + $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } + + finally { + $backupTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + $backupInternalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + +} +end { + try { + $steppablePipeline.End() + + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $backupTelemetryId + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $backupInternalCalledCmdlets + if ($preTelemetryId -eq '') { + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.module]::Instance.Telemetry.Invoke('Send', $MyInvocation, $parameterSet, $PSCmdlet) + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $preTelemetryId + + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} +} diff --git a/swaggerci/eventgrid/exports/Get-AzEventGridTopicEventSubscriptionDeliveryAttribute.ps1 b/swaggerci/eventgrid/exports/Get-AzEventGridTopicEventSubscriptionDeliveryAttribute.ps1 new file mode 100644 index 000000000000..f940683ea4d3 --- /dev/null +++ b/swaggerci/eventgrid/exports/Get-AzEventGridTopicEventSubscriptionDeliveryAttribute.ps1 @@ -0,0 +1,224 @@ + +# ---------------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for license information. +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is regenerated. +# ---------------------------------------------------------------------------------- + +<# +.Synopsis +Get all delivery attributes for an event subscription for topic. +.Description +Get all delivery attributes for an event subscription for topic. +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Inputs +Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.IEventGridIdentity +.Outputs +Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDeliveryAttributeMapping +.Notes +COMPLEX PARAMETER PROPERTIES + +To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. + +INPUTOBJECT : Identity Parameter + [ChannelName ]: Name of the channel. + [DomainName ]: Name of the domain. + [DomainTopicName ]: Name of the topic. + [EventChannelName ]: Name of the event channel. + [EventSubscriptionName ]: Name of the event subscription. + [Id ]: Resource identity path + [Location ]: Name of the location. + [ParentName ]: The name of the parent resource (namely, either, the topic name, domain name, or partner namespace name). + [ParentType ]: The type of the parent resource. This can be either \'topics\', \'domains\', or \'partnerNamespaces\'. + [PartnerDestinationName ]: Name of the partner destination. + [PartnerNamespaceName ]: Name of the partner namespace. + [PartnerRegistrationName ]: Name of the partner registration. + [PartnerTopicName ]: Name of the partner topic. + [PrivateEndpointConnectionName ]: The name of the private endpoint connection connection. + [PrivateLinkResourceName ]: The name of private link resource. + [ProviderNamespace ]: Namespace of the provider of the topic. + [ResourceGroupName ]: The name of the resource group within the partners subscription. + [ResourceName ]: Name of the resource. + [ResourceTypeName ]: Name of the resource type. + [Scope ]: The scope of the event subscription. The scope can be a subscription, or a resource group, or a top level resource belonging to a resource provider namespace, or an EventGrid topic. For example, use '/subscriptions/{subscriptionId}/' for a subscription, '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}' for a resource group, and '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}' for a resource, and '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.EventGrid/topics/{topicName}' for an EventGrid topic. + [SubscriptionId ]: Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription ID forms part of the URI for every service call. + [SystemTopicName ]: Name of the system topic. + [TopicName ]: Name of the domain topic. + [TopicTypeName ]: Name of the topic type. + [VerifiedPartnerName ]: Name of the verified partner. +.Link +https://docs.microsoft.com/en-us/powershell/module/az.eventgrid/get-azeventgridtopiceventsubscriptiondeliveryattribute +#> +function Get-AzEventGridTopicEventSubscriptionDeliveryAttribute { +[OutputType([Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDeliveryAttributeMapping])] +[CmdletBinding(DefaultParameterSetName='Get', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(ParameterSetName='Get', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [System.String] + # Name of the event subscription. + ${EventSubscriptionName}, + + [Parameter(ParameterSetName='Get', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [System.String] + # The name of the resource group within the user's subscription. + ${ResourceGroupName}, + + [Parameter(ParameterSetName='Get')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] + [System.String[]] + # Subscription credentials that uniquely identify a Microsoft Azure subscription. + # The subscription ID forms part of the URI for every service call. + ${SubscriptionId}, + + [Parameter(ParameterSetName='Get', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [System.String] + # Name of the domain topic. + ${TopicName}, + + [Parameter(ParameterSetName='GetViaIdentity', Mandatory, ValueFromPipeline)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.IEventGridIdentity] + # Identity Parameter + # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + ${InputObject}, + + [Parameter()] + [Alias('AzureRMContext', 'AzureCredential')] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Returns true when the command succeeds + ${PassThru}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + if ($null -eq [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion) { + [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion = $Host.Runspace.Version.ToString() + } + $preTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + if ($preTelemetryId -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId =(New-Guid).ToString() + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.module]::Instance.Telemetry.Invoke('Create', $MyInvocation, $parameterSet, $PSCmdlet) + } else { + $internalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + if ($internalCalledCmdlets -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $MyInvocation.MyCommand.Name + } else { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets += ',' + $MyInvocation.MyCommand.Name + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = 'internal' + } + + $mapping = @{ + Get = 'Az.EventGrid.private\Get-AzEventGridTopicEventSubscriptionDeliveryAttribute_Get'; + GetViaIdentity = 'Az.EventGrid.private\Get-AzEventGridTopicEventSubscriptionDeliveryAttribute_GetViaIdentity'; + } + if (('Get') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { + $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } + + finally { + $backupTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + $backupInternalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + +} +end { + try { + $steppablePipeline.End() + + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $backupTelemetryId + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $backupInternalCalledCmdlets + if ($preTelemetryId -eq '') { + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.module]::Instance.Telemetry.Invoke('Send', $MyInvocation, $parameterSet, $PSCmdlet) + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $preTelemetryId + + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} +} diff --git a/swaggerci/eventgrid/exports/Get-AzEventGridTopicEventSubscriptionFullUrl.ps1 b/swaggerci/eventgrid/exports/Get-AzEventGridTopicEventSubscriptionFullUrl.ps1 new file mode 100644 index 000000000000..9ec130d1b423 --- /dev/null +++ b/swaggerci/eventgrid/exports/Get-AzEventGridTopicEventSubscriptionFullUrl.ps1 @@ -0,0 +1,224 @@ + +# ---------------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for license information. +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is regenerated. +# ---------------------------------------------------------------------------------- + +<# +.Synopsis +Get the full endpoint URL for an event subscription for topic. +.Description +Get the full endpoint URL for an event subscription for topic. +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Inputs +Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.IEventGridIdentity +.Outputs +System.String +.Notes +COMPLEX PARAMETER PROPERTIES + +To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. + +INPUTOBJECT : Identity Parameter + [ChannelName ]: Name of the channel. + [DomainName ]: Name of the domain. + [DomainTopicName ]: Name of the topic. + [EventChannelName ]: Name of the event channel. + [EventSubscriptionName ]: Name of the event subscription. + [Id ]: Resource identity path + [Location ]: Name of the location. + [ParentName ]: The name of the parent resource (namely, either, the topic name, domain name, or partner namespace name). + [ParentType ]: The type of the parent resource. This can be either \'topics\', \'domains\', or \'partnerNamespaces\'. + [PartnerDestinationName ]: Name of the partner destination. + [PartnerNamespaceName ]: Name of the partner namespace. + [PartnerRegistrationName ]: Name of the partner registration. + [PartnerTopicName ]: Name of the partner topic. + [PrivateEndpointConnectionName ]: The name of the private endpoint connection connection. + [PrivateLinkResourceName ]: The name of private link resource. + [ProviderNamespace ]: Namespace of the provider of the topic. + [ResourceGroupName ]: The name of the resource group within the partners subscription. + [ResourceName ]: Name of the resource. + [ResourceTypeName ]: Name of the resource type. + [Scope ]: The scope of the event subscription. The scope can be a subscription, or a resource group, or a top level resource belonging to a resource provider namespace, or an EventGrid topic. For example, use '/subscriptions/{subscriptionId}/' for a subscription, '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}' for a resource group, and '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}' for a resource, and '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.EventGrid/topics/{topicName}' for an EventGrid topic. + [SubscriptionId ]: Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription ID forms part of the URI for every service call. + [SystemTopicName ]: Name of the system topic. + [TopicName ]: Name of the domain topic. + [TopicTypeName ]: Name of the topic type. + [VerifiedPartnerName ]: Name of the verified partner. +.Link +https://docs.microsoft.com/en-us/powershell/module/az.eventgrid/get-azeventgridtopiceventsubscriptionfullurl +#> +function Get-AzEventGridTopicEventSubscriptionFullUrl { +[OutputType([System.String])] +[CmdletBinding(DefaultParameterSetName='Get', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(ParameterSetName='Get', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [System.String] + # Name of the event subscription. + ${EventSubscriptionName}, + + [Parameter(ParameterSetName='Get', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [System.String] + # The name of the resource group within the user's subscription. + ${ResourceGroupName}, + + [Parameter(ParameterSetName='Get')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] + [System.String[]] + # Subscription credentials that uniquely identify a Microsoft Azure subscription. + # The subscription ID forms part of the URI for every service call. + ${SubscriptionId}, + + [Parameter(ParameterSetName='Get', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [System.String] + # Name of the domain topic. + ${TopicName}, + + [Parameter(ParameterSetName='GetViaIdentity', Mandatory, ValueFromPipeline)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.IEventGridIdentity] + # Identity Parameter + # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + ${InputObject}, + + [Parameter()] + [Alias('AzureRMContext', 'AzureCredential')] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Returns true when the command succeeds + ${PassThru}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + if ($null -eq [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion) { + [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion = $Host.Runspace.Version.ToString() + } + $preTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + if ($preTelemetryId -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId =(New-Guid).ToString() + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.module]::Instance.Telemetry.Invoke('Create', $MyInvocation, $parameterSet, $PSCmdlet) + } else { + $internalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + if ($internalCalledCmdlets -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $MyInvocation.MyCommand.Name + } else { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets += ',' + $MyInvocation.MyCommand.Name + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = 'internal' + } + + $mapping = @{ + Get = 'Az.EventGrid.private\Get-AzEventGridTopicEventSubscriptionFullUrl_Get'; + GetViaIdentity = 'Az.EventGrid.private\Get-AzEventGridTopicEventSubscriptionFullUrl_GetViaIdentity'; + } + if (('Get') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { + $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } + + finally { + $backupTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + $backupInternalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + +} +end { + try { + $steppablePipeline.End() + + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $backupTelemetryId + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $backupInternalCalledCmdlets + if ($preTelemetryId -eq '') { + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.module]::Instance.Telemetry.Invoke('Send', $MyInvocation, $parameterSet, $PSCmdlet) + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $preTelemetryId + + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} +} diff --git a/swaggerci/eventgrid/exports/Get-AzEventGridTopicEventType.ps1 b/swaggerci/eventgrid/exports/Get-AzEventGridTopicEventType.ps1 new file mode 100644 index 000000000000..a73d120abaa6 --- /dev/null +++ b/swaggerci/eventgrid/exports/Get-AzEventGridTopicEventType.ps1 @@ -0,0 +1,189 @@ + +# ---------------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for license information. +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is regenerated. +# ---------------------------------------------------------------------------------- + +<# +.Synopsis +List event types for a topic. +.Description +List event types for a topic. +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Outputs +Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventType +.Link +https://docs.microsoft.com/en-us/powershell/module/az.eventgrid/get-azeventgridtopiceventtype +#> +function Get-AzEventGridTopicEventType { +[OutputType([Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventType])] +[CmdletBinding(DefaultParameterSetName='List', PositionalBinding=$false)] +param( + [Parameter(Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [System.String] + # Namespace of the provider of the topic. + ${ProviderNamespace}, + + [Parameter(Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [System.String] + # The name of the resource group within the user's subscription. + ${ResourceGroupName}, + + [Parameter(Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [System.String] + # Name of the topic. + ${ResourceName}, + + [Parameter(Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [System.String] + # Name of the topic type. + ${ResourceTypeName}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] + [System.String[]] + # Subscription credentials that uniquely identify a Microsoft Azure subscription. + # The subscription ID forms part of the URI for every service call. + ${SubscriptionId}, + + [Parameter()] + [Alias('AzureRMContext', 'AzureCredential')] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Returns true when the command succeeds + ${PassThru}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + if ($null -eq [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion) { + [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion = $Host.Runspace.Version.ToString() + } + $preTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + if ($preTelemetryId -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId =(New-Guid).ToString() + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.module]::Instance.Telemetry.Invoke('Create', $MyInvocation, $parameterSet, $PSCmdlet) + } else { + $internalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + if ($internalCalledCmdlets -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $MyInvocation.MyCommand.Name + } else { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets += ',' + $MyInvocation.MyCommand.Name + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = 'internal' + } + + $mapping = @{ + List = 'Az.EventGrid.private\Get-AzEventGridTopicEventType_List'; + } + if (('List') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { + $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } + + finally { + $backupTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + $backupInternalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + +} +end { + try { + $steppablePipeline.End() + + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $backupTelemetryId + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $backupInternalCalledCmdlets + if ($preTelemetryId -eq '') { + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.module]::Instance.Telemetry.Invoke('Send', $MyInvocation, $parameterSet, $PSCmdlet) + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $preTelemetryId + + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} +} diff --git a/swaggerci/eventgrid/exports/Get-AzEventGridTopicSharedAccessKey.ps1 b/swaggerci/eventgrid/exports/Get-AzEventGridTopicSharedAccessKey.ps1 new file mode 100644 index 000000000000..915445bcd46b --- /dev/null +++ b/swaggerci/eventgrid/exports/Get-AzEventGridTopicSharedAccessKey.ps1 @@ -0,0 +1,177 @@ + +# ---------------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for license information. +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is regenerated. +# ---------------------------------------------------------------------------------- + +<# +.Synopsis +List the two keys used to publish to a topic. +.Description +List the two keys used to publish to a topic. +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Outputs +Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITopicSharedAccessKeys +.Link +https://docs.microsoft.com/en-us/powershell/module/az.eventgrid/get-azeventgridtopicsharedaccesskey +#> +function Get-AzEventGridTopicSharedAccessKey { +[OutputType([Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITopicSharedAccessKeys])] +[CmdletBinding(DefaultParameterSetName='List', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [System.String] + # The name of the resource group within the user's subscription. + ${ResourceGroupName}, + + [Parameter(Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [System.String] + # Name of the topic. + ${TopicName}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] + [System.String[]] + # Subscription credentials that uniquely identify a Microsoft Azure subscription. + # The subscription ID forms part of the URI for every service call. + ${SubscriptionId}, + + [Parameter()] + [Alias('AzureRMContext', 'AzureCredential')] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Returns true when the command succeeds + ${PassThru}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + if ($null -eq [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion) { + [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion = $Host.Runspace.Version.ToString() + } + $preTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + if ($preTelemetryId -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId =(New-Guid).ToString() + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.module]::Instance.Telemetry.Invoke('Create', $MyInvocation, $parameterSet, $PSCmdlet) + } else { + $internalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + if ($internalCalledCmdlets -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $MyInvocation.MyCommand.Name + } else { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets += ',' + $MyInvocation.MyCommand.Name + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = 'internal' + } + + $mapping = @{ + List = 'Az.EventGrid.private\Get-AzEventGridTopicSharedAccessKey_List'; + } + if (('List') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { + $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } + + finally { + $backupTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + $backupInternalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + +} +end { + try { + $steppablePipeline.End() + + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $backupTelemetryId + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $backupInternalCalledCmdlets + if ($preTelemetryId -eq '') { + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.module]::Instance.Telemetry.Invoke('Send', $MyInvocation, $parameterSet, $PSCmdlet) + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $preTelemetryId + + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} +} diff --git a/swaggerci/eventgrid/exports/Get-AzEventGridTopicType.ps1 b/swaggerci/eventgrid/exports/Get-AzEventGridTopicType.ps1 new file mode 100644 index 000000000000..099c2d851c3e --- /dev/null +++ b/swaggerci/eventgrid/exports/Get-AzEventGridTopicType.ps1 @@ -0,0 +1,203 @@ + +# ---------------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for license information. +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is regenerated. +# ---------------------------------------------------------------------------------- + +<# +.Synopsis +Get information about a topic type. +.Description +Get information about a topic type. +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Inputs +Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.IEventGridIdentity +.Outputs +Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITopicTypeInfo +.Notes +COMPLEX PARAMETER PROPERTIES + +To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. + +INPUTOBJECT : Identity Parameter + [ChannelName ]: Name of the channel. + [DomainName ]: Name of the domain. + [DomainTopicName ]: Name of the topic. + [EventChannelName ]: Name of the event channel. + [EventSubscriptionName ]: Name of the event subscription. + [Id ]: Resource identity path + [Location ]: Name of the location. + [ParentName ]: The name of the parent resource (namely, either, the topic name, domain name, or partner namespace name). + [ParentType ]: The type of the parent resource. This can be either \'topics\', \'domains\', or \'partnerNamespaces\'. + [PartnerDestinationName ]: Name of the partner destination. + [PartnerNamespaceName ]: Name of the partner namespace. + [PartnerRegistrationName ]: Name of the partner registration. + [PartnerTopicName ]: Name of the partner topic. + [PrivateEndpointConnectionName ]: The name of the private endpoint connection connection. + [PrivateLinkResourceName ]: The name of private link resource. + [ProviderNamespace ]: Namespace of the provider of the topic. + [ResourceGroupName ]: The name of the resource group within the partners subscription. + [ResourceName ]: Name of the resource. + [ResourceTypeName ]: Name of the resource type. + [Scope ]: The scope of the event subscription. The scope can be a subscription, or a resource group, or a top level resource belonging to a resource provider namespace, or an EventGrid topic. For example, use '/subscriptions/{subscriptionId}/' for a subscription, '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}' for a resource group, and '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}' for a resource, and '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.EventGrid/topics/{topicName}' for an EventGrid topic. + [SubscriptionId ]: Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription ID forms part of the URI for every service call. + [SystemTopicName ]: Name of the system topic. + [TopicName ]: Name of the domain topic. + [TopicTypeName ]: Name of the topic type. + [VerifiedPartnerName ]: Name of the verified partner. +.Link +https://docs.microsoft.com/en-us/powershell/module/az.eventgrid/get-azeventgridtopictype +#> +function Get-AzEventGridTopicType { +[OutputType([Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITopicTypeInfo])] +[CmdletBinding(DefaultParameterSetName='List', PositionalBinding=$false)] +param( + [Parameter(ParameterSetName='Get', Mandatory)] + [Alias('TopicTypeName')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [System.String] + # Name of the topic type. + ${Name}, + + [Parameter(ParameterSetName='GetViaIdentity', Mandatory, ValueFromPipeline)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.IEventGridIdentity] + # Identity Parameter + # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + ${InputObject}, + + [Parameter()] + [Alias('AzureRMContext', 'AzureCredential')] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Returns true when the command succeeds + ${PassThru}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + if ($null -eq [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion) { + [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion = $Host.Runspace.Version.ToString() + } + $preTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + if ($preTelemetryId -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId =(New-Guid).ToString() + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.module]::Instance.Telemetry.Invoke('Create', $MyInvocation, $parameterSet, $PSCmdlet) + } else { + $internalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + if ($internalCalledCmdlets -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $MyInvocation.MyCommand.Name + } else { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets += ',' + $MyInvocation.MyCommand.Name + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = 'internal' + } + + $mapping = @{ + Get = 'Az.EventGrid.private\Get-AzEventGridTopicType_Get'; + GetViaIdentity = 'Az.EventGrid.private\Get-AzEventGridTopicType_GetViaIdentity'; + List = 'Az.EventGrid.private\Get-AzEventGridTopicType_List'; + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } + + finally { + $backupTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + $backupInternalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + +} +end { + try { + $steppablePipeline.End() + + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $backupTelemetryId + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $backupInternalCalledCmdlets + if ($preTelemetryId -eq '') { + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.module]::Instance.Telemetry.Invoke('Send', $MyInvocation, $parameterSet, $PSCmdlet) + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $preTelemetryId + + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} +} diff --git a/swaggerci/eventgrid/exports/Get-AzEventGridTopicTypeEventType.ps1 b/swaggerci/eventgrid/exports/Get-AzEventGridTopicTypeEventType.ps1 new file mode 100644 index 000000000000..2965dbbbb226 --- /dev/null +++ b/swaggerci/eventgrid/exports/Get-AzEventGridTopicTypeEventType.ps1 @@ -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. +# ---------------------------------------------------------------------------------- + +<# +.Synopsis +List event types for a topic type. +.Description +List event types for a topic type. +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Outputs +Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventType +.Link +https://docs.microsoft.com/en-us/powershell/module/az.eventgrid/get-azeventgridtopictypeeventtype +#> +function Get-AzEventGridTopicTypeEventType { +[OutputType([Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventType])] +[CmdletBinding(DefaultParameterSetName='List', PositionalBinding=$false)] +param( + [Parameter(Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [System.String] + # Name of the topic type. + ${TopicTypeName}, + + [Parameter()] + [Alias('AzureRMContext', 'AzureCredential')] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Returns true when the command succeeds + ${PassThru}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + if ($null -eq [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion) { + [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion = $Host.Runspace.Version.ToString() + } + $preTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + if ($preTelemetryId -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId =(New-Guid).ToString() + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.module]::Instance.Telemetry.Invoke('Create', $MyInvocation, $parameterSet, $PSCmdlet) + } else { + $internalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + if ($internalCalledCmdlets -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $MyInvocation.MyCommand.Name + } else { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets += ',' + $MyInvocation.MyCommand.Name + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = 'internal' + } + + $mapping = @{ + List = 'Az.EventGrid.private\Get-AzEventGridTopicTypeEventType_List'; + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } + + finally { + $backupTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + $backupInternalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + +} +end { + try { + $steppablePipeline.End() + + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $backupTelemetryId + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $backupInternalCalledCmdlets + if ($preTelemetryId -eq '') { + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.module]::Instance.Telemetry.Invoke('Send', $MyInvocation, $parameterSet, $PSCmdlet) + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $preTelemetryId + + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} +} diff --git a/swaggerci/eventgrid/exports/Get-AzEventGridVerifiedPartner.ps1 b/swaggerci/eventgrid/exports/Get-AzEventGridVerifiedPartner.ps1 new file mode 100644 index 000000000000..2f9f084c4577 --- /dev/null +++ b/swaggerci/eventgrid/exports/Get-AzEventGridVerifiedPartner.ps1 @@ -0,0 +1,222 @@ + +# ---------------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for license information. +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is regenerated. +# ---------------------------------------------------------------------------------- + +<# +.Synopsis +Get properties of a verified partner. +.Description +Get properties of a verified partner. +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Inputs +Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.IEventGridIdentity +.Outputs +Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IVerifiedPartner +.Notes +COMPLEX PARAMETER PROPERTIES + +To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. + +INPUTOBJECT : Identity Parameter + [ChannelName ]: Name of the channel. + [DomainName ]: Name of the domain. + [DomainTopicName ]: Name of the topic. + [EventChannelName ]: Name of the event channel. + [EventSubscriptionName ]: Name of the event subscription. + [Id ]: Resource identity path + [Location ]: Name of the location. + [ParentName ]: The name of the parent resource (namely, either, the topic name, domain name, or partner namespace name). + [ParentType ]: The type of the parent resource. This can be either \'topics\', \'domains\', or \'partnerNamespaces\'. + [PartnerDestinationName ]: Name of the partner destination. + [PartnerNamespaceName ]: Name of the partner namespace. + [PartnerRegistrationName ]: Name of the partner registration. + [PartnerTopicName ]: Name of the partner topic. + [PrivateEndpointConnectionName ]: The name of the private endpoint connection connection. + [PrivateLinkResourceName ]: The name of private link resource. + [ProviderNamespace ]: Namespace of the provider of the topic. + [ResourceGroupName ]: The name of the resource group within the partners subscription. + [ResourceName ]: Name of the resource. + [ResourceTypeName ]: Name of the resource type. + [Scope ]: The scope of the event subscription. The scope can be a subscription, or a resource group, or a top level resource belonging to a resource provider namespace, or an EventGrid topic. For example, use '/subscriptions/{subscriptionId}/' for a subscription, '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}' for a resource group, and '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}' for a resource, and '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.EventGrid/topics/{topicName}' for an EventGrid topic. + [SubscriptionId ]: Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription ID forms part of the URI for every service call. + [SystemTopicName ]: Name of the system topic. + [TopicName ]: Name of the domain topic. + [TopicTypeName ]: Name of the topic type. + [VerifiedPartnerName ]: Name of the verified partner. +.Link +https://docs.microsoft.com/en-us/powershell/module/az.eventgrid/get-azeventgridverifiedpartner +#> +function Get-AzEventGridVerifiedPartner { +[OutputType([Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IVerifiedPartner])] +[CmdletBinding(DefaultParameterSetName='List', PositionalBinding=$false)] +param( + [Parameter(ParameterSetName='Get', Mandatory)] + [Alias('VerifiedPartnerName')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [System.String] + # Name of the verified partner. + ${Name}, + + [Parameter(ParameterSetName='GetViaIdentity', Mandatory, ValueFromPipeline)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.IEventGridIdentity] + # Identity Parameter + # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + ${InputObject}, + + [Parameter(ParameterSetName='List')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Query')] + [System.String] + # The query used to filter the search results using OData syntax. + # Filtering is permitted on the 'name' property only and with limited number of OData operations. + # These operations are: the 'contains' function as well as the following logical operations: not, and, or, eq (for equal), and ne (for not equal). + # No arithmetic operations are supported. + # The following is a valid filter example: $filter=contains(namE, 'PATTERN') and name ne 'PATTERN-1'. + # The following is not a valid filter example: $filter=location eq 'westus'. + ${Filter}, + + [Parameter(ParameterSetName='List')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Query')] + [System.Int32] + # The number of results to return per page for the list operation. + # Valid range for top parameter is 1 to 100. + # If not specified, the default number of results to be returned is 20 items per page. + ${Top}, + + [Parameter()] + [Alias('AzureRMContext', 'AzureCredential')] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Returns true when the command succeeds + ${PassThru}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + if ($null -eq [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion) { + [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion = $Host.Runspace.Version.ToString() + } + $preTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + if ($preTelemetryId -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId =(New-Guid).ToString() + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.module]::Instance.Telemetry.Invoke('Create', $MyInvocation, $parameterSet, $PSCmdlet) + } else { + $internalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + if ($internalCalledCmdlets -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $MyInvocation.MyCommand.Name + } else { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets += ',' + $MyInvocation.MyCommand.Name + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = 'internal' + } + + $mapping = @{ + Get = 'Az.EventGrid.private\Get-AzEventGridVerifiedPartner_Get'; + GetViaIdentity = 'Az.EventGrid.private\Get-AzEventGridVerifiedPartner_GetViaIdentity'; + List = 'Az.EventGrid.private\Get-AzEventGridVerifiedPartner_List'; + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } + + finally { + $backupTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + $backupInternalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + +} +end { + try { + $steppablePipeline.End() + + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $backupTelemetryId + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $backupInternalCalledCmdlets + if ($preTelemetryId -eq '') { + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.module]::Instance.Telemetry.Invoke('Send', $MyInvocation, $parameterSet, $PSCmdlet) + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $preTelemetryId + + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} +} diff --git a/swaggerci/eventgrid/exports/Grant-AzEventGridPartnerConfigurationPartner.ps1 b/swaggerci/eventgrid/exports/Grant-AzEventGridPartnerConfigurationPartner.ps1 new file mode 100644 index 000000000000..62039b4a212e --- /dev/null +++ b/swaggerci/eventgrid/exports/Grant-AzEventGridPartnerConfigurationPartner.ps1 @@ -0,0 +1,255 @@ + +# ---------------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for license information. +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is regenerated. +# ---------------------------------------------------------------------------------- + +<# +.Synopsis +Authorize a single partner either by partner registration immutable Id or by partner name. +.Description +Authorize a single partner either by partner registration immutable Id or by partner name. +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Inputs +Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartner +.Inputs +Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.IEventGridIdentity +.Outputs +Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerConfiguration +.Notes +COMPLEX PARAMETER PROPERTIES + +To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. + +INPUTOBJECT : Identity Parameter + [ChannelName ]: Name of the channel. + [DomainName ]: Name of the domain. + [DomainTopicName ]: Name of the topic. + [EventChannelName ]: Name of the event channel. + [EventSubscriptionName ]: Name of the event subscription. + [Id ]: Resource identity path + [Location ]: Name of the location. + [ParentName ]: The name of the parent resource (namely, either, the topic name, domain name, or partner namespace name). + [ParentType ]: The type of the parent resource. This can be either \'topics\', \'domains\', or \'partnerNamespaces\'. + [PartnerDestinationName ]: Name of the partner destination. + [PartnerNamespaceName ]: Name of the partner namespace. + [PartnerRegistrationName ]: Name of the partner registration. + [PartnerTopicName ]: Name of the partner topic. + [PrivateEndpointConnectionName ]: The name of the private endpoint connection connection. + [PrivateLinkResourceName ]: The name of private link resource. + [ProviderNamespace ]: Namespace of the provider of the topic. + [ResourceGroupName ]: The name of the resource group within the partners subscription. + [ResourceName ]: Name of the resource. + [ResourceTypeName ]: Name of the resource type. + [Scope ]: The scope of the event subscription. The scope can be a subscription, or a resource group, or a top level resource belonging to a resource provider namespace, or an EventGrid topic. For example, use '/subscriptions/{subscriptionId}/' for a subscription, '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}' for a resource group, and '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}' for a resource, and '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.EventGrid/topics/{topicName}' for an EventGrid topic. + [SubscriptionId ]: Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription ID forms part of the URI for every service call. + [SystemTopicName ]: Name of the system topic. + [TopicName ]: Name of the domain topic. + [TopicTypeName ]: Name of the topic type. + [VerifiedPartnerName ]: Name of the verified partner. + +PARTNERINFO : Information about the partner. + [AuthorizationExpirationTimeInUtc ]: Expiration time of the partner authorization. If this timer expires, any request from this partner to create, update or delete resources in subscriber's context will fail. If specified, the allowed values are between 1 to the value of defaultMaximumExpirationTimeInDays specified in PartnerConfiguration. If not specified, the default value will be the value of defaultMaximumExpirationTimeInDays specified in PartnerConfiguration or 7 if this value is not specified. + [Name ]: The partner name. + [RegistrationImmutableId ]: The immutableId of the corresponding partner registration. +.Link +https://docs.microsoft.com/en-us/powershell/module/az.eventgrid/grant-azeventgridpartnerconfigurationpartner +#> +function Grant-AzEventGridPartnerConfigurationPartner { +[OutputType([Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerConfiguration])] +[CmdletBinding(DefaultParameterSetName='AuthorizeExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(ParameterSetName='Authorize', Mandatory)] + [Parameter(ParameterSetName='AuthorizeExpanded', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [System.String] + # The name of the resource group within the user's subscription. + ${ResourceGroupName}, + + [Parameter(ParameterSetName='Authorize')] + [Parameter(ParameterSetName='AuthorizeExpanded')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] + [System.String] + # Subscription credentials that uniquely identify a Microsoft Azure subscription. + # The subscription ID forms part of the URI for every service call. + ${SubscriptionId}, + + [Parameter(ParameterSetName='AuthorizeViaIdentity', Mandatory, ValueFromPipeline)] + [Parameter(ParameterSetName='AuthorizeViaIdentityExpanded', Mandatory, ValueFromPipeline)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.IEventGridIdentity] + # Identity Parameter + # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + ${InputObject}, + + [Parameter(ParameterSetName='Authorize', Mandatory, ValueFromPipeline)] + [Parameter(ParameterSetName='AuthorizeViaIdentity', Mandatory, ValueFromPipeline)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartner] + # Information about the partner. + # To construct, see NOTES section for PARTNERINFO properties and create a hash table. + ${PartnerInfo}, + + [Parameter(ParameterSetName='AuthorizeExpanded')] + [Parameter(ParameterSetName='AuthorizeViaIdentityExpanded')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [System.DateTime] + # Expiration time of the partner authorization. + # If this timer expires, any request from this partner to create, update or delete resources in subscriber'scontext will fail. + # If specified, the allowed values are between 1 to the value of defaultMaximumExpirationTimeInDays specified in PartnerConfiguration.If not specified, the default value will be the value of defaultMaximumExpirationTimeInDays specified in PartnerConfiguration or 7 if this value is not specified. + ${AuthorizationExpirationTimeInUtc}, + + [Parameter(ParameterSetName='AuthorizeExpanded')] + [Parameter(ParameterSetName='AuthorizeViaIdentityExpanded')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [System.String] + # The partner name. + ${PartnerName}, + + [Parameter(ParameterSetName='AuthorizeExpanded')] + [Parameter(ParameterSetName='AuthorizeViaIdentityExpanded')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [System.String] + # The immutableId of the corresponding partner registration. + ${PartnerRegistrationImmutableId}, + + [Parameter()] + [Alias('AzureRMContext', 'AzureCredential')] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Returns true when the command succeeds + ${PassThru}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + if ($null -eq [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion) { + [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion = $Host.Runspace.Version.ToString() + } + $preTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + if ($preTelemetryId -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId =(New-Guid).ToString() + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.module]::Instance.Telemetry.Invoke('Create', $MyInvocation, $parameterSet, $PSCmdlet) + } else { + $internalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + if ($internalCalledCmdlets -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $MyInvocation.MyCommand.Name + } else { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets += ',' + $MyInvocation.MyCommand.Name + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = 'internal' + } + + $mapping = @{ + Authorize = 'Az.EventGrid.private\Grant-AzEventGridPartnerConfigurationPartner_Authorize'; + AuthorizeExpanded = 'Az.EventGrid.private\Grant-AzEventGridPartnerConfigurationPartner_AuthorizeExpanded'; + AuthorizeViaIdentity = 'Az.EventGrid.private\Grant-AzEventGridPartnerConfigurationPartner_AuthorizeViaIdentity'; + AuthorizeViaIdentityExpanded = 'Az.EventGrid.private\Grant-AzEventGridPartnerConfigurationPartner_AuthorizeViaIdentityExpanded'; + } + if (('Authorize', 'AuthorizeExpanded') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { + $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } + + finally { + $backupTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + $backupInternalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + +} +end { + try { + $steppablePipeline.End() + + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $backupTelemetryId + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $backupInternalCalledCmdlets + if ($preTelemetryId -eq '') { + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.module]::Instance.Telemetry.Invoke('Send', $MyInvocation, $parameterSet, $PSCmdlet) + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $preTelemetryId + + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} +} diff --git a/swaggerci/eventgrid/exports/Initialize-AzEventGridPartnerDestination.ps1 b/swaggerci/eventgrid/exports/Initialize-AzEventGridPartnerDestination.ps1 new file mode 100644 index 000000000000..f1a321842c39 --- /dev/null +++ b/swaggerci/eventgrid/exports/Initialize-AzEventGridPartnerDestination.ps1 @@ -0,0 +1,219 @@ + +# ---------------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for license information. +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is regenerated. +# ---------------------------------------------------------------------------------- + +<# +.Synopsis +Activate a newly created partner destination. +.Description +Activate a newly created partner destination. +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Inputs +Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.IEventGridIdentity +.Outputs +Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerDestination +.Notes +COMPLEX PARAMETER PROPERTIES + +To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. + +INPUTOBJECT : Identity Parameter + [ChannelName ]: Name of the channel. + [DomainName ]: Name of the domain. + [DomainTopicName ]: Name of the topic. + [EventChannelName ]: Name of the event channel. + [EventSubscriptionName ]: Name of the event subscription. + [Id ]: Resource identity path + [Location ]: Name of the location. + [ParentName ]: The name of the parent resource (namely, either, the topic name, domain name, or partner namespace name). + [ParentType ]: The type of the parent resource. This can be either \'topics\', \'domains\', or \'partnerNamespaces\'. + [PartnerDestinationName ]: Name of the partner destination. + [PartnerNamespaceName ]: Name of the partner namespace. + [PartnerRegistrationName ]: Name of the partner registration. + [PartnerTopicName ]: Name of the partner topic. + [PrivateEndpointConnectionName ]: The name of the private endpoint connection connection. + [PrivateLinkResourceName ]: The name of private link resource. + [ProviderNamespace ]: Namespace of the provider of the topic. + [ResourceGroupName ]: The name of the resource group within the partners subscription. + [ResourceName ]: Name of the resource. + [ResourceTypeName ]: Name of the resource type. + [Scope ]: The scope of the event subscription. The scope can be a subscription, or a resource group, or a top level resource belonging to a resource provider namespace, or an EventGrid topic. For example, use '/subscriptions/{subscriptionId}/' for a subscription, '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}' for a resource group, and '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}' for a resource, and '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.EventGrid/topics/{topicName}' for an EventGrid topic. + [SubscriptionId ]: Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription ID forms part of the URI for every service call. + [SystemTopicName ]: Name of the system topic. + [TopicName ]: Name of the domain topic. + [TopicTypeName ]: Name of the topic type. + [VerifiedPartnerName ]: Name of the verified partner. +.Link +https://docs.microsoft.com/en-us/powershell/module/az.eventgrid/initialize-azeventgridpartnerdestination +#> +function Initialize-AzEventGridPartnerDestination { +[OutputType([Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerDestination])] +[CmdletBinding(DefaultParameterSetName='Activate', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(ParameterSetName='Activate', Mandatory)] + [Alias('PartnerDestinationName')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [System.String] + # Name of the partner destination. + ${Name}, + + [Parameter(ParameterSetName='Activate', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [System.String] + # The name of the resource group within the user's subscription. + ${ResourceGroupName}, + + [Parameter(ParameterSetName='Activate')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] + [System.String] + # Subscription credentials that uniquely identify a Microsoft Azure subscription. + # The subscription ID forms part of the URI for every service call. + ${SubscriptionId}, + + [Parameter(ParameterSetName='ActivateViaIdentity', Mandatory, ValueFromPipeline)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.IEventGridIdentity] + # Identity Parameter + # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + ${InputObject}, + + [Parameter()] + [Alias('AzureRMContext', 'AzureCredential')] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Returns true when the command succeeds + ${PassThru}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + if ($null -eq [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion) { + [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion = $Host.Runspace.Version.ToString() + } + $preTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + if ($preTelemetryId -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId =(New-Guid).ToString() + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.module]::Instance.Telemetry.Invoke('Create', $MyInvocation, $parameterSet, $PSCmdlet) + } else { + $internalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + if ($internalCalledCmdlets -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $MyInvocation.MyCommand.Name + } else { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets += ',' + $MyInvocation.MyCommand.Name + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = 'internal' + } + + $mapping = @{ + Activate = 'Az.EventGrid.private\Initialize-AzEventGridPartnerDestination_Activate'; + ActivateViaIdentity = 'Az.EventGrid.private\Initialize-AzEventGridPartnerDestination_ActivateViaIdentity'; + } + if (('Activate') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { + $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } + + finally { + $backupTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + $backupInternalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + +} +end { + try { + $steppablePipeline.End() + + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $backupTelemetryId + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $backupInternalCalledCmdlets + if ($preTelemetryId -eq '') { + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.module]::Instance.Telemetry.Invoke('Send', $MyInvocation, $parameterSet, $PSCmdlet) + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $preTelemetryId + + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} +} diff --git a/swaggerci/eventgrid/exports/Initialize-AzEventGridPartnerTopic.ps1 b/swaggerci/eventgrid/exports/Initialize-AzEventGridPartnerTopic.ps1 new file mode 100644 index 000000000000..7dbaed3362e4 --- /dev/null +++ b/swaggerci/eventgrid/exports/Initialize-AzEventGridPartnerTopic.ps1 @@ -0,0 +1,219 @@ + +# ---------------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for license information. +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is regenerated. +# ---------------------------------------------------------------------------------- + +<# +.Synopsis +Activate a newly created partner topic. +.Description +Activate a newly created partner topic. +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Inputs +Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.IEventGridIdentity +.Outputs +Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerTopic +.Notes +COMPLEX PARAMETER PROPERTIES + +To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. + +INPUTOBJECT : Identity Parameter + [ChannelName ]: Name of the channel. + [DomainName ]: Name of the domain. + [DomainTopicName ]: Name of the topic. + [EventChannelName ]: Name of the event channel. + [EventSubscriptionName ]: Name of the event subscription. + [Id ]: Resource identity path + [Location ]: Name of the location. + [ParentName ]: The name of the parent resource (namely, either, the topic name, domain name, or partner namespace name). + [ParentType ]: The type of the parent resource. This can be either \'topics\', \'domains\', or \'partnerNamespaces\'. + [PartnerDestinationName ]: Name of the partner destination. + [PartnerNamespaceName ]: Name of the partner namespace. + [PartnerRegistrationName ]: Name of the partner registration. + [PartnerTopicName ]: Name of the partner topic. + [PrivateEndpointConnectionName ]: The name of the private endpoint connection connection. + [PrivateLinkResourceName ]: The name of private link resource. + [ProviderNamespace ]: Namespace of the provider of the topic. + [ResourceGroupName ]: The name of the resource group within the partners subscription. + [ResourceName ]: Name of the resource. + [ResourceTypeName ]: Name of the resource type. + [Scope ]: The scope of the event subscription. The scope can be a subscription, or a resource group, or a top level resource belonging to a resource provider namespace, or an EventGrid topic. For example, use '/subscriptions/{subscriptionId}/' for a subscription, '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}' for a resource group, and '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}' for a resource, and '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.EventGrid/topics/{topicName}' for an EventGrid topic. + [SubscriptionId ]: Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription ID forms part of the URI for every service call. + [SystemTopicName ]: Name of the system topic. + [TopicName ]: Name of the domain topic. + [TopicTypeName ]: Name of the topic type. + [VerifiedPartnerName ]: Name of the verified partner. +.Link +https://docs.microsoft.com/en-us/powershell/module/az.eventgrid/initialize-azeventgridpartnertopic +#> +function Initialize-AzEventGridPartnerTopic { +[OutputType([Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerTopic])] +[CmdletBinding(DefaultParameterSetName='Activate', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(ParameterSetName='Activate', Mandatory)] + [Alias('PartnerTopicName')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [System.String] + # Name of the partner topic. + ${Name}, + + [Parameter(ParameterSetName='Activate', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [System.String] + # The name of the resource group within the user's subscription. + ${ResourceGroupName}, + + [Parameter(ParameterSetName='Activate')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] + [System.String] + # Subscription credentials that uniquely identify a Microsoft Azure subscription. + # The subscription ID forms part of the URI for every service call. + ${SubscriptionId}, + + [Parameter(ParameterSetName='ActivateViaIdentity', Mandatory, ValueFromPipeline)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.IEventGridIdentity] + # Identity Parameter + # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + ${InputObject}, + + [Parameter()] + [Alias('AzureRMContext', 'AzureCredential')] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Returns true when the command succeeds + ${PassThru}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + if ($null -eq [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion) { + [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion = $Host.Runspace.Version.ToString() + } + $preTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + if ($preTelemetryId -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId =(New-Guid).ToString() + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.module]::Instance.Telemetry.Invoke('Create', $MyInvocation, $parameterSet, $PSCmdlet) + } else { + $internalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + if ($internalCalledCmdlets -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $MyInvocation.MyCommand.Name + } else { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets += ',' + $MyInvocation.MyCommand.Name + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = 'internal' + } + + $mapping = @{ + Activate = 'Az.EventGrid.private\Initialize-AzEventGridPartnerTopic_Activate'; + ActivateViaIdentity = 'Az.EventGrid.private\Initialize-AzEventGridPartnerTopic_ActivateViaIdentity'; + } + if (('Activate') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { + $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } + + finally { + $backupTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + $backupInternalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + +} +end { + try { + $steppablePipeline.End() + + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $backupTelemetryId + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $backupInternalCalledCmdlets + if ($preTelemetryId -eq '') { + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.module]::Instance.Telemetry.Invoke('Send', $MyInvocation, $parameterSet, $PSCmdlet) + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $preTelemetryId + + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} +} diff --git a/swaggerci/eventgrid/exports/Invoke-AzEventGridDeactivatePartnerTopic.ps1 b/swaggerci/eventgrid/exports/Invoke-AzEventGridDeactivatePartnerTopic.ps1 new file mode 100644 index 000000000000..3b111ff8f515 --- /dev/null +++ b/swaggerci/eventgrid/exports/Invoke-AzEventGridDeactivatePartnerTopic.ps1 @@ -0,0 +1,218 @@ + +# ---------------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for license information. +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is regenerated. +# ---------------------------------------------------------------------------------- + +<# +.Synopsis +Deactivate specific partner topic. +.Description +Deactivate specific partner topic. +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Inputs +Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.IEventGridIdentity +.Outputs +Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerTopic +.Notes +COMPLEX PARAMETER PROPERTIES + +To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. + +INPUTOBJECT : Identity Parameter + [ChannelName ]: Name of the channel. + [DomainName ]: Name of the domain. + [DomainTopicName ]: Name of the topic. + [EventChannelName ]: Name of the event channel. + [EventSubscriptionName ]: Name of the event subscription. + [Id ]: Resource identity path + [Location ]: Name of the location. + [ParentName ]: The name of the parent resource (namely, either, the topic name, domain name, or partner namespace name). + [ParentType ]: The type of the parent resource. This can be either \'topics\', \'domains\', or \'partnerNamespaces\'. + [PartnerDestinationName ]: Name of the partner destination. + [PartnerNamespaceName ]: Name of the partner namespace. + [PartnerRegistrationName ]: Name of the partner registration. + [PartnerTopicName ]: Name of the partner topic. + [PrivateEndpointConnectionName ]: The name of the private endpoint connection connection. + [PrivateLinkResourceName ]: The name of private link resource. + [ProviderNamespace ]: Namespace of the provider of the topic. + [ResourceGroupName ]: The name of the resource group within the partners subscription. + [ResourceName ]: Name of the resource. + [ResourceTypeName ]: Name of the resource type. + [Scope ]: The scope of the event subscription. The scope can be a subscription, or a resource group, or a top level resource belonging to a resource provider namespace, or an EventGrid topic. For example, use '/subscriptions/{subscriptionId}/' for a subscription, '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}' for a resource group, and '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}' for a resource, and '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.EventGrid/topics/{topicName}' for an EventGrid topic. + [SubscriptionId ]: Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription ID forms part of the URI for every service call. + [SystemTopicName ]: Name of the system topic. + [TopicName ]: Name of the domain topic. + [TopicTypeName ]: Name of the topic type. + [VerifiedPartnerName ]: Name of the verified partner. +.Link +https://docs.microsoft.com/en-us/powershell/module/az.eventgrid/invoke-azeventgriddeactivatepartnertopic +#> +function Invoke-AzEventGridDeactivatePartnerTopic { +[OutputType([Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerTopic])] +[CmdletBinding(DefaultParameterSetName='Deactivate', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(ParameterSetName='Deactivate', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [System.String] + # Name of the partner topic. + ${PartnerTopicName}, + + [Parameter(ParameterSetName='Deactivate', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [System.String] + # The name of the resource group within the user's subscription. + ${ResourceGroupName}, + + [Parameter(ParameterSetName='Deactivate')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] + [System.String] + # Subscription credentials that uniquely identify a Microsoft Azure subscription. + # The subscription ID forms part of the URI for every service call. + ${SubscriptionId}, + + [Parameter(ParameterSetName='DeactivateViaIdentity', Mandatory, ValueFromPipeline)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.IEventGridIdentity] + # Identity Parameter + # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + ${InputObject}, + + [Parameter()] + [Alias('AzureRMContext', 'AzureCredential')] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Returns true when the command succeeds + ${PassThru}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + if ($null -eq [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion) { + [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion = $Host.Runspace.Version.ToString() + } + $preTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + if ($preTelemetryId -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId =(New-Guid).ToString() + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.module]::Instance.Telemetry.Invoke('Create', $MyInvocation, $parameterSet, $PSCmdlet) + } else { + $internalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + if ($internalCalledCmdlets -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $MyInvocation.MyCommand.Name + } else { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets += ',' + $MyInvocation.MyCommand.Name + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = 'internal' + } + + $mapping = @{ + Deactivate = 'Az.EventGrid.private\Invoke-AzEventGridDeactivatePartnerTopic_Deactivate'; + DeactivateViaIdentity = 'Az.EventGrid.private\Invoke-AzEventGridDeactivatePartnerTopic_DeactivateViaIdentity'; + } + if (('Deactivate') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { + $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } + + finally { + $backupTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + $backupInternalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + +} +end { + try { + $steppablePipeline.End() + + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $backupTelemetryId + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $backupInternalCalledCmdlets + if ($preTelemetryId -eq '') { + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.module]::Instance.Telemetry.Invoke('Send', $MyInvocation, $parameterSet, $PSCmdlet) + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $preTelemetryId + + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} +} diff --git a/swaggerci/eventgrid/exports/Invoke-AzEventGridPartnerConfigurationUnauthorize.ps1 b/swaggerci/eventgrid/exports/Invoke-AzEventGridPartnerConfigurationUnauthorize.ps1 new file mode 100644 index 000000000000..b5c26659b8eb --- /dev/null +++ b/swaggerci/eventgrid/exports/Invoke-AzEventGridPartnerConfigurationUnauthorize.ps1 @@ -0,0 +1,255 @@ + +# ---------------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for license information. +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is regenerated. +# ---------------------------------------------------------------------------------- + +<# +.Synopsis +Unauthorize a single partner either by partner registration immutable Id or by partner name. +.Description +Unauthorize a single partner either by partner registration immutable Id or by partner name. +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Inputs +Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartner +.Inputs +Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.IEventGridIdentity +.Outputs +Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerConfiguration +.Notes +COMPLEX PARAMETER PROPERTIES + +To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. + +INPUTOBJECT : Identity Parameter + [ChannelName ]: Name of the channel. + [DomainName ]: Name of the domain. + [DomainTopicName ]: Name of the topic. + [EventChannelName ]: Name of the event channel. + [EventSubscriptionName ]: Name of the event subscription. + [Id ]: Resource identity path + [Location ]: Name of the location. + [ParentName ]: The name of the parent resource (namely, either, the topic name, domain name, or partner namespace name). + [ParentType ]: The type of the parent resource. This can be either \'topics\', \'domains\', or \'partnerNamespaces\'. + [PartnerDestinationName ]: Name of the partner destination. + [PartnerNamespaceName ]: Name of the partner namespace. + [PartnerRegistrationName ]: Name of the partner registration. + [PartnerTopicName ]: Name of the partner topic. + [PrivateEndpointConnectionName ]: The name of the private endpoint connection connection. + [PrivateLinkResourceName ]: The name of private link resource. + [ProviderNamespace ]: Namespace of the provider of the topic. + [ResourceGroupName ]: The name of the resource group within the partners subscription. + [ResourceName ]: Name of the resource. + [ResourceTypeName ]: Name of the resource type. + [Scope ]: The scope of the event subscription. The scope can be a subscription, or a resource group, or a top level resource belonging to a resource provider namespace, or an EventGrid topic. For example, use '/subscriptions/{subscriptionId}/' for a subscription, '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}' for a resource group, and '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}' for a resource, and '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.EventGrid/topics/{topicName}' for an EventGrid topic. + [SubscriptionId ]: Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription ID forms part of the URI for every service call. + [SystemTopicName ]: Name of the system topic. + [TopicName ]: Name of the domain topic. + [TopicTypeName ]: Name of the topic type. + [VerifiedPartnerName ]: Name of the verified partner. + +PARTNERINFO : Information about the partner. + [AuthorizationExpirationTimeInUtc ]: Expiration time of the partner authorization. If this timer expires, any request from this partner to create, update or delete resources in subscriber's context will fail. If specified, the allowed values are between 1 to the value of defaultMaximumExpirationTimeInDays specified in PartnerConfiguration. If not specified, the default value will be the value of defaultMaximumExpirationTimeInDays specified in PartnerConfiguration or 7 if this value is not specified. + [Name ]: The partner name. + [RegistrationImmutableId ]: The immutableId of the corresponding partner registration. +.Link +https://docs.microsoft.com/en-us/powershell/module/az.eventgrid/invoke-azeventgridpartnerconfigurationunauthorize +#> +function Invoke-AzEventGridPartnerConfigurationUnauthorize { +[OutputType([Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerConfiguration])] +[CmdletBinding(DefaultParameterSetName='PartnerExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(ParameterSetName='Partner', Mandatory)] + [Parameter(ParameterSetName='PartnerExpanded', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [System.String] + # The name of the resource group within the user's subscription. + ${ResourceGroupName}, + + [Parameter(ParameterSetName='Partner')] + [Parameter(ParameterSetName='PartnerExpanded')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] + [System.String] + # Subscription credentials that uniquely identify a Microsoft Azure subscription. + # The subscription ID forms part of the URI for every service call. + ${SubscriptionId}, + + [Parameter(ParameterSetName='PartnerViaIdentity', Mandatory, ValueFromPipeline)] + [Parameter(ParameterSetName='PartnerViaIdentityExpanded', Mandatory, ValueFromPipeline)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.IEventGridIdentity] + # Identity Parameter + # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + ${InputObject}, + + [Parameter(ParameterSetName='Partner', Mandatory, ValueFromPipeline)] + [Parameter(ParameterSetName='PartnerViaIdentity', Mandatory, ValueFromPipeline)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartner] + # Information about the partner. + # To construct, see NOTES section for PARTNERINFO properties and create a hash table. + ${PartnerInfo}, + + [Parameter(ParameterSetName='PartnerExpanded')] + [Parameter(ParameterSetName='PartnerViaIdentityExpanded')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [System.DateTime] + # Expiration time of the partner authorization. + # If this timer expires, any request from this partner to create, update or delete resources in subscriber'scontext will fail. + # If specified, the allowed values are between 1 to the value of defaultMaximumExpirationTimeInDays specified in PartnerConfiguration.If not specified, the default value will be the value of defaultMaximumExpirationTimeInDays specified in PartnerConfiguration or 7 if this value is not specified. + ${AuthorizationExpirationTimeInUtc}, + + [Parameter(ParameterSetName='PartnerExpanded')] + [Parameter(ParameterSetName='PartnerViaIdentityExpanded')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [System.String] + # The partner name. + ${PartnerName}, + + [Parameter(ParameterSetName='PartnerExpanded')] + [Parameter(ParameterSetName='PartnerViaIdentityExpanded')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [System.String] + # The immutableId of the corresponding partner registration. + ${PartnerRegistrationImmutableId}, + + [Parameter()] + [Alias('AzureRMContext', 'AzureCredential')] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Returns true when the command succeeds + ${PassThru}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + if ($null -eq [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion) { + [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion = $Host.Runspace.Version.ToString() + } + $preTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + if ($preTelemetryId -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId =(New-Guid).ToString() + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.module]::Instance.Telemetry.Invoke('Create', $MyInvocation, $parameterSet, $PSCmdlet) + } else { + $internalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + if ($internalCalledCmdlets -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $MyInvocation.MyCommand.Name + } else { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets += ',' + $MyInvocation.MyCommand.Name + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = 'internal' + } + + $mapping = @{ + Partner = 'Az.EventGrid.private\Invoke-AzEventGridPartnerConfigurationUnauthorize_Partner'; + PartnerExpanded = 'Az.EventGrid.private\Invoke-AzEventGridPartnerConfigurationUnauthorize_PartnerExpanded'; + PartnerViaIdentity = 'Az.EventGrid.private\Invoke-AzEventGridPartnerConfigurationUnauthorize_PartnerViaIdentity'; + PartnerViaIdentityExpanded = 'Az.EventGrid.private\Invoke-AzEventGridPartnerConfigurationUnauthorize_PartnerViaIdentityExpanded'; + } + if (('Partner', 'PartnerExpanded') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { + $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } + + finally { + $backupTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + $backupInternalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + +} +end { + try { + $steppablePipeline.End() + + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $backupTelemetryId + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $backupInternalCalledCmdlets + if ($preTelemetryId -eq '') { + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.module]::Instance.Telemetry.Invoke('Send', $MyInvocation, $parameterSet, $PSCmdlet) + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $preTelemetryId + + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} +} diff --git a/swaggerci/eventgrid/exports/New-AzEventGridChannel.ps1 b/swaggerci/eventgrid/exports/New-AzEventGridChannel.ps1 new file mode 100644 index 000000000000..25f484bf6b03 --- /dev/null +++ b/swaggerci/eventgrid/exports/New-AzEventGridChannel.ps1 @@ -0,0 +1,303 @@ + +# ---------------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for license information. +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is regenerated. +# ---------------------------------------------------------------------------------- + +<# +.Synopsis +Synchronously creates or updates a new channel with the specified parameters. +.Description +Synchronously creates or updates a new channel with the specified parameters. +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Outputs +Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IChannel +.Notes +COMPLEX PARAMETER PROPERTIES + +To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. + +PARTNERDESTINATIONINFORESOURCEMOVECHANGEHISTORY : Change history of the resource move. + [AzureSubscriptionId ]: Azure subscription ID of the resource. + [ChangedTimeUtc ]: UTC timestamp of when the resource was changed. + [ResourceGroupName ]: Azure Resource Group of the resource. +.Link +https://docs.microsoft.com/en-us/powershell/module/az.eventgrid/new-azeventgridchannel +#> +function New-AzEventGridChannel { +[OutputType([Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IChannel])] +[CmdletBinding(DefaultParameterSetName='CreateExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(Mandatory)] + [Alias('ChannelName')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [System.String] + # Name of the channel. + ${Name}, + + [Parameter(Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [System.String] + # Name of the partner namespace. + ${PartnerNamespaceName}, + + [Parameter(Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [System.String] + # The name of the resource group within the partners subscription. + ${ResourceGroupName}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] + [System.String] + # Subscription credentials that uniquely identify a Microsoft Azure subscription. + # The subscription ID forms part of the URI for every service call. + ${SubscriptionId}, + + [Parameter()] + [ArgumentCompleter([Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.ChannelType])] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.ChannelType] + # The type of the event channel which represents the direction flow of events. + ${ChannelType}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info(PossibleTypes=([Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventTypeInfoInlineEventTypes]))] + [System.Collections.Hashtable] + # A collection of inline event types for the resource. + # The inline event type keys are of type string which represents the name of the event.An example of a valid inline event name is "Contoso.OrderCreated".The inline event type values are of type InlineEventProperties and will contain additional information for every inline event type. + ${EventTypeInfoInlineEventType}, + + [Parameter()] + [ArgumentCompleter([Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EventDefinitionKind])] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EventDefinitionKind] + # The kind of event type used. + ${EventTypeInfoKind}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [System.DateTime] + # Expiration time of the channel. + # If this timer expires while the corresponding partner topic is never activated,the channel and corresponding partner topic are deleted. + ${ExpirationTimeIfNotActivatedUtc}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [System.String] + # Context or helpful message that can be used during the approval process by the subscriber. + ${MessageForActivation}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [System.String] + # Azure subscription ID of the subscriber. + # The partner destination associated with the channel will becreated under this Azure subscription. + ${PartnerDestinationInfoAzureSubscriptionId}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [System.String] + # Additional context of the partner destination endpoint. + ${PartnerDestinationInfoEndpointServiceContext}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [System.String] + # Name of the partner destination associated with the channel. + ${PartnerDestinationInfoName}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [System.String] + # Azure Resource Group of the subscriber. + # The partner destination associated with the channel will becreated under this resource group. + ${PartnerDestinationInfoResourceGroupName}, + + [Parameter()] + [AllowEmptyCollection()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IResourceMoveChangeHistory[]] + # Change history of the resource move. + # To construct, see NOTES section for PARTNERDESTINATIONINFORESOURCEMOVECHANGEHISTORY properties and create a hash table. + ${PartnerDestinationInfoResourceMoveChangeHistory}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [System.String] + # Azure subscription ID of the subscriber. + # The partner topic associated with the channel will becreated under this Azure subscription. + ${PartnerTopicInfoAzureSubscriptionId}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [System.String] + # Name of the partner topic associated with the channel. + ${PartnerTopicInfoName}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [System.String] + # Azure Resource Group of the subscriber. + # The partner topic associated with the channel will becreated under this resource group. + ${PartnerTopicInfoResourceGroupName}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [System.String] + # The source information is provided by the publisher to determine the scope or context from which the eventsare originating. + # This information can be used by the subscriber during the approval process of thecreated partner topic. + ${PartnerTopicInfoSource}, + + [Parameter()] + [ArgumentCompleter([Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.ChannelProvisioningState])] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.ChannelProvisioningState] + # Provisioning state of the channel. + ${ProvisioningState}, + + [Parameter()] + [ArgumentCompleter([Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.ReadinessState])] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.ReadinessState] + # The readiness state of the corresponding partner topic. + ${ReadinessState}, + + [Parameter()] + [Alias('AzureRMContext', 'AzureCredential')] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Returns true when the command succeeds + ${PassThru}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + if ($null -eq [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion) { + [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion = $Host.Runspace.Version.ToString() + } + $preTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + if ($preTelemetryId -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId =(New-Guid).ToString() + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.module]::Instance.Telemetry.Invoke('Create', $MyInvocation, $parameterSet, $PSCmdlet) + } else { + $internalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + if ($internalCalledCmdlets -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $MyInvocation.MyCommand.Name + } else { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets += ',' + $MyInvocation.MyCommand.Name + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = 'internal' + } + + $mapping = @{ + CreateExpanded = 'Az.EventGrid.private\New-AzEventGridChannel_CreateExpanded'; + } + if (('CreateExpanded') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { + $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } + + finally { + $backupTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + $backupInternalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + +} +end { + try { + $steppablePipeline.End() + + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $backupTelemetryId + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $backupInternalCalledCmdlets + if ($preTelemetryId -eq '') { + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.module]::Instance.Telemetry.Invoke('Send', $MyInvocation, $parameterSet, $PSCmdlet) + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $preTelemetryId + + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} +} diff --git a/swaggerci/eventgrid/exports/New-AzEventGridDomain.ps1 b/swaggerci/eventgrid/exports/New-AzEventGridDomain.ps1 new file mode 100644 index 000000000000..49e4886f36e2 --- /dev/null +++ b/swaggerci/eventgrid/exports/New-AzEventGridDomain.ps1 @@ -0,0 +1,306 @@ + +# ---------------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for license information. +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is regenerated. +# ---------------------------------------------------------------------------------- + +<# +.Synopsis +Asynchronously creates or updates a new domain with the specified parameters. +.Description +Asynchronously creates or updates a new domain with the specified parameters. +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.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. + +INBOUNDIPRULE : This can be used to restrict traffic from specific IPs instead of all IPs. Note: These are considered only if PublicNetworkAccess is enabled. + [Action ]: Action to perform based on the match or no match of the IpMask. + [IPMask ]: IP Address in CIDR notation e.g., 10.0.0.0/8. +.Link +https://docs.microsoft.com/en-us/powershell/module/az.eventgrid/new-azeventgriddomain +#> +function New-AzEventGridDomain { +[OutputType([System.Boolean])] +[CmdletBinding(DefaultParameterSetName='CreateExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(Mandatory)] + [Alias('DomainName')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [System.String] + # Name of the domain. + ${Name}, + + [Parameter(Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [System.String] + # The name of the resource group within the user's subscription. + ${ResourceGroupName}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] + [System.String] + # Subscription credentials that uniquely identify a Microsoft Azure subscription. + # The subscription ID forms part of the URI for every service call. + ${SubscriptionId}, + + [Parameter(Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [System.String] + # Location of the resource. + ${Location}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [System.Management.Automation.SwitchParameter] + # This Boolean is used to specify the creation mechanism for 'all' the Event Grid Domain Topics associated with this Event Grid Domain resource.In this context, creation of domain topic can be auto-managed (when true) or self-managed (when false). + # The default value for this property is true.When this property is null or set to true, Event Grid is responsible of automatically creating the domain topic when the first event subscription iscreated at the scope of the domain topic. + # If this property is set to false, then creating the first event subscription will require creating a domain topicby the user. + # The self-management mode can be used if the user wants full control of when the domain topic is created, while auto-managed mode provides theflexibility to perform less operations and manage fewer resources by the user. + # Also, note that in auto-managed creation mode, user is allowed to create thedomain topic on demand if needed. + ${AutoCreateTopicWithFirstSubscription}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [System.Management.Automation.SwitchParameter] + # This Boolean is used to specify the deletion mechanism for 'all' the Event Grid Domain Topics associated with this Event Grid Domain resource.In this context, deletion of domain topic can be auto-managed (when true) or self-managed (when false). + # The default value for this property is true.When this property is set to true, Event Grid is responsible of automatically deleting the domain topic when the last event subscription at the scopeof the domain topic is deleted. + # If this property is set to false, then the user needs to manually delete the domain topic when it is no longer needed(e.g., when last event subscription is deleted and the resource needs to be cleaned up). + # The self-management mode can be used if the user wants fullcontrol of when the domain topic needs to be deleted, while auto-managed mode provides the flexibility to perform less operations and manage fewerresources by the user. + ${AutoDeleteTopicWithLastSubscription}, + + [Parameter()] + [ArgumentCompleter([Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.DataResidencyBoundary])] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.DataResidencyBoundary] + # Data Residency Boundary of the resource. + ${DataResidencyBoundary}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [System.Management.Automation.SwitchParameter] + # This boolean is used to enable or disable local auth. + # Default value is false. + # When the property is set to true, only AAD token will be used to authenticate if user is allowed to publish to the domain. + ${DisableLocalAuth}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [System.String] + # The principal ID of resource identity. + ${IdentityPrincipalId}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [System.String] + # The tenant ID of resource. + ${IdentityTenantId}, + + [Parameter()] + [ArgumentCompleter([Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.IdentityType])] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.IdentityType] + # The type of managed identity used. + # The type 'SystemAssigned, UserAssigned' includes both an implicitly created identity and a set of user-assigned identities. + # The type 'None' will remove any identity. + ${IdentityType}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info(PossibleTypes=([Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IIdentityInfoUserAssignedIdentities]))] + [System.Collections.Hashtable] + # The list of user identities associated with the resource. + # The user identity dictionary key references will be ARM resource ids in the form:'/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ManagedIdentity/userAssignedIdentities/{identityName}'.This property is currently not used and reserved for future usage. + ${IdentityUserAssignedIdentity}, + + [Parameter()] + [AllowEmptyCollection()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IInboundIPRule[]] + # This can be used to restrict traffic from specific IPs instead of all IPs. + # Note: These are considered only if PublicNetworkAccess is enabled. + # To construct, see NOTES section for INBOUNDIPRULE properties and create a hash table. + ${InboundIPRule}, + + [Parameter()] + [ArgumentCompleter([Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.InputSchema])] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.InputSchema] + # This determines the format that Event Grid should expect for incoming events published to the Event Grid Domain Resource. + ${InputSchema}, + + [Parameter()] + [ArgumentCompleter([Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.PublicNetworkAccess])] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.PublicNetworkAccess] + # This determines if traffic is allowed over public network. + # By default it is enabled.You can further restrict to specific IPs by configuring + ${PublicNetworkAccess}, + + [Parameter()] + [ArgumentCompleter([Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.Sku])] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.Sku] + # The Sku name of the resource. + # The possible values are: Basic or Premium. + ${SkuName}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info(PossibleTypes=([Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITrackedResourceTags]))] + [System.Collections.Hashtable] + # Tags of the resource. + ${Tag}, + + [Parameter()] + [Alias('AzureRMContext', 'AzureCredential')] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Run the command as a job + ${AsJob}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Run the command asynchronously + ${NoWait}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Returns true when the command succeeds + ${PassThru}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + if ($null -eq [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion) { + [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion = $Host.Runspace.Version.ToString() + } + $preTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + if ($preTelemetryId -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId =(New-Guid).ToString() + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.module]::Instance.Telemetry.Invoke('Create', $MyInvocation, $parameterSet, $PSCmdlet) + } else { + $internalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + if ($internalCalledCmdlets -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $MyInvocation.MyCommand.Name + } else { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets += ',' + $MyInvocation.MyCommand.Name + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = 'internal' + } + + $mapping = @{ + CreateExpanded = 'Az.EventGrid.private\New-AzEventGridDomain_CreateExpanded'; + } + if (('CreateExpanded') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { + $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } + + finally { + $backupTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + $backupInternalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + +} +end { + try { + $steppablePipeline.End() + + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $backupTelemetryId + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $backupInternalCalledCmdlets + if ($preTelemetryId -eq '') { + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.module]::Instance.Telemetry.Invoke('Send', $MyInvocation, $parameterSet, $PSCmdlet) + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $preTelemetryId + + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} +} diff --git a/swaggerci/eventgrid/exports/New-AzEventGridDomainEventSubscription.ps1 b/swaggerci/eventgrid/exports/New-AzEventGridDomainEventSubscription.ps1 new file mode 100644 index 000000000000..bf2ed369adb4 --- /dev/null +++ b/swaggerci/eventgrid/exports/New-AzEventGridDomainEventSubscription.ps1 @@ -0,0 +1,320 @@ + +# ---------------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for license information. +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is regenerated. +# ---------------------------------------------------------------------------------- + +<# +.Synopsis +Asynchronously creates a new event subscription or updates an existing event subscription. +.Description +Asynchronously creates a new event subscription or updates an existing event subscription. +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Outputs +Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscription +.Notes +COMPLEX PARAMETER PROPERTIES + +To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. + +FILTERADVANCEDFILTER : An array of advanced filters that are used for filtering event subscriptions. + OperatorType : The operator type used for filtering, e.g., NumberIn, StringContains, BoolEquals and others. + [Key ]: The field/property in the event based on which you want to filter. +.Link +https://docs.microsoft.com/en-us/powershell/module/az.eventgrid/new-azeventgriddomaineventsubscription +#> +function New-AzEventGridDomainEventSubscription { +[OutputType([Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscription])] +[CmdletBinding(DefaultParameterSetName='CreateExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [System.String] + # Name of the domain topic. + ${DomainName}, + + [Parameter(Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [System.String] + # Name of the event subscription to be created. + # Event subscription names must be between 3 and 100 characters in length and use alphanumeric letters only. + ${EventSubscriptionName}, + + [Parameter(Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [System.String] + # The name of the resource group within the user's subscription. + ${ResourceGroupName}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] + [System.String] + # Subscription credentials that uniquely identify a Microsoft Azure subscription. + # The subscription ID forms part of the URI for every service call. + ${SubscriptionId}, + + [Parameter()] + [ArgumentCompleter([Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EventSubscriptionIdentityType])] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EventSubscriptionIdentityType] + # The type of managed identity used. + # The type 'SystemAssigned, UserAssigned' includes both an implicitly created identity and a set of user-assigned identities. + # The type 'None' will remove any identity. + ${DeadLetterWithResourceIdentityType}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [System.String] + # The user identity associated with the resource. + ${DeadLetterWithResourceIdentityUserAssignedIdentity}, + + [Parameter()] + [ArgumentCompleter([Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EndpointType])] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EndpointType] + # Type of the endpoint for the event subscription destination. + ${DeliveryWithResourceIdentityDestinationEndpointType}, + + [Parameter()] + [ArgumentCompleter([Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EventSubscriptionIdentityType])] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EventSubscriptionIdentityType] + # The type of managed identity used. + # The type 'SystemAssigned, UserAssigned' includes both an implicitly created identity and a set of user-assigned identities. + # The type 'None' will remove any identity. + ${DeliveryWithResourceIdentityType}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [System.String] + # The user identity associated with the resource. + ${DeliveryWithResourceIdentityUserAssignedIdentity}, + + [Parameter()] + [ArgumentCompleter([Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EndpointType])] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EndpointType] + # Type of the endpoint for the event subscription destination. + ${EndpointType}, + + [Parameter()] + [ArgumentCompleter([Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EventDeliverySchema])] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EventDeliverySchema] + # The event delivery schema for the event subscription. + ${EventDeliverySchema}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [System.DateTime] + # Expiration time of the event subscription. + ${ExpirationTimeUtc}, + + [Parameter()] + [AllowEmptyCollection()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IAdvancedFilter[]] + # An array of advanced filters that are used for filtering event subscriptions. + # To construct, see NOTES section for FILTERADVANCEDFILTER properties and create a hash table. + ${FilterAdvancedFilter}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [System.Management.Automation.SwitchParameter] + # Allows advanced filters to be evaluated against an array of values instead of expecting a singular value. + ${FilterEnableAdvancedFilteringOnArray}, + + [Parameter()] + [AllowEmptyCollection()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [System.String[]] + # A list of applicable event types that need to be part of the event subscription. + # If it is desired to subscribe to all default event types, set the IncludedEventTypes to null. + ${FilterIncludedEventType}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [System.Management.Automation.SwitchParameter] + # Specifies if the SubjectBeginsWith and SubjectEndsWith properties of the filtershould be compared in a case sensitive manner. + ${FilterIsSubjectCaseSensitive}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [System.String] + # An optional string to filter events for an event subscription based on a resource path prefix.The format of this depends on the publisher of the events.Wildcard characters are not supported in this path. + ${FilterSubjectBeginsWith}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [System.String] + # An optional string to filter events for an event subscription based on a resource path suffix.Wildcard characters are not supported in this path. + ${FilterSubjectEndsWith}, + + [Parameter()] + [AllowEmptyCollection()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [System.String[]] + # List of user defined labels. + ${Label}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [System.Int32] + # Time To Live (in minutes) for events. + ${RetryPolicyEventTimeToLiveInMinute}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [System.Int32] + # Maximum number of delivery retry attempts for events. + ${RetryPolicyMaxDeliveryAttempt}, + + [Parameter()] + [Alias('AzureRMContext', 'AzureCredential')] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Run the command as a job + ${AsJob}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Run the command asynchronously + ${NoWait}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Returns true when the command succeeds + ${PassThru}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + if ($null -eq [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion) { + [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion = $Host.Runspace.Version.ToString() + } + $preTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + if ($preTelemetryId -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId =(New-Guid).ToString() + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.module]::Instance.Telemetry.Invoke('Create', $MyInvocation, $parameterSet, $PSCmdlet) + } else { + $internalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + if ($internalCalledCmdlets -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $MyInvocation.MyCommand.Name + } else { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets += ',' + $MyInvocation.MyCommand.Name + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = 'internal' + } + + $mapping = @{ + CreateExpanded = 'Az.EventGrid.private\New-AzEventGridDomainEventSubscription_CreateExpanded'; + } + if (('CreateExpanded') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { + $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } + + finally { + $backupTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + $backupInternalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + +} +end { + try { + $steppablePipeline.End() + + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $backupTelemetryId + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $backupInternalCalledCmdlets + if ($preTelemetryId -eq '') { + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.module]::Instance.Telemetry.Invoke('Send', $MyInvocation, $parameterSet, $PSCmdlet) + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $preTelemetryId + + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} +} diff --git a/swaggerci/eventgrid/exports/New-AzEventGridDomainKey.ps1 b/swaggerci/eventgrid/exports/New-AzEventGridDomainKey.ps1 new file mode 100644 index 000000000000..2a59380e3abd --- /dev/null +++ b/swaggerci/eventgrid/exports/New-AzEventGridDomainKey.ps1 @@ -0,0 +1,244 @@ + +# ---------------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for license information. +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is regenerated. +# ---------------------------------------------------------------------------------- + +<# +.Synopsis +Regenerate a shared access key for a domain. +.Description +Regenerate a shared access key for a domain. +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Inputs +Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDomainRegenerateKeyRequest +.Inputs +Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.IEventGridIdentity +.Outputs +Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDomainSharedAccessKeys +.Notes +COMPLEX PARAMETER PROPERTIES + +To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. + +INPUTOBJECT : Identity Parameter + [ChannelName ]: Name of the channel. + [DomainName ]: Name of the domain. + [DomainTopicName ]: Name of the topic. + [EventChannelName ]: Name of the event channel. + [EventSubscriptionName ]: Name of the event subscription. + [Id ]: Resource identity path + [Location ]: Name of the location. + [ParentName ]: The name of the parent resource (namely, either, the topic name, domain name, or partner namespace name). + [ParentType ]: The type of the parent resource. This can be either \'topics\', \'domains\', or \'partnerNamespaces\'. + [PartnerDestinationName ]: Name of the partner destination. + [PartnerNamespaceName ]: Name of the partner namespace. + [PartnerRegistrationName ]: Name of the partner registration. + [PartnerTopicName ]: Name of the partner topic. + [PrivateEndpointConnectionName ]: The name of the private endpoint connection connection. + [PrivateLinkResourceName ]: The name of private link resource. + [ProviderNamespace ]: Namespace of the provider of the topic. + [ResourceGroupName ]: The name of the resource group within the partners subscription. + [ResourceName ]: Name of the resource. + [ResourceTypeName ]: Name of the resource type. + [Scope ]: The scope of the event subscription. The scope can be a subscription, or a resource group, or a top level resource belonging to a resource provider namespace, or an EventGrid topic. For example, use '/subscriptions/{subscriptionId}/' for a subscription, '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}' for a resource group, and '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}' for a resource, and '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.EventGrid/topics/{topicName}' for an EventGrid topic. + [SubscriptionId ]: Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription ID forms part of the URI for every service call. + [SystemTopicName ]: Name of the system topic. + [TopicName ]: Name of the domain topic. + [TopicTypeName ]: Name of the topic type. + [VerifiedPartnerName ]: Name of the verified partner. + +REGENERATEKEYREQUEST : Domain regenerate share access key request. + KeyName : Key name to regenerate key1 or key2. +.Link +https://docs.microsoft.com/en-us/powershell/module/az.eventgrid/new-azeventgriddomainkey +#> +function New-AzEventGridDomainKey { +[OutputType([Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDomainSharedAccessKeys])] +[CmdletBinding(DefaultParameterSetName='RegenerateExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(ParameterSetName='Regenerate', Mandatory)] + [Parameter(ParameterSetName='RegenerateExpanded', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [System.String] + # Name of the domain. + ${DomainName}, + + [Parameter(ParameterSetName='Regenerate', Mandatory)] + [Parameter(ParameterSetName='RegenerateExpanded', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [System.String] + # The name of the resource group within the user's subscription. + ${ResourceGroupName}, + + [Parameter(ParameterSetName='Regenerate')] + [Parameter(ParameterSetName='RegenerateExpanded')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] + [System.String] + # Subscription credentials that uniquely identify a Microsoft Azure subscription. + # The subscription ID forms part of the URI for every service call. + ${SubscriptionId}, + + [Parameter(ParameterSetName='RegenerateViaIdentity', Mandatory, ValueFromPipeline)] + [Parameter(ParameterSetName='RegenerateViaIdentityExpanded', Mandatory, ValueFromPipeline)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.IEventGridIdentity] + # Identity Parameter + # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + ${InputObject}, + + [Parameter(ParameterSetName='Regenerate', Mandatory, ValueFromPipeline)] + [Parameter(ParameterSetName='RegenerateViaIdentity', Mandatory, ValueFromPipeline)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDomainRegenerateKeyRequest] + # Domain regenerate share access key request. + # To construct, see NOTES section for REGENERATEKEYREQUEST properties and create a hash table. + ${RegenerateKeyRequest}, + + [Parameter(ParameterSetName='RegenerateExpanded', Mandatory)] + [Parameter(ParameterSetName='RegenerateViaIdentityExpanded', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [System.String] + # Key name to regenerate key1 or key2. + ${KeyName}, + + [Parameter()] + [Alias('AzureRMContext', 'AzureCredential')] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Returns true when the command succeeds + ${PassThru}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + if ($null -eq [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion) { + [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion = $Host.Runspace.Version.ToString() + } + $preTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + if ($preTelemetryId -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId =(New-Guid).ToString() + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.module]::Instance.Telemetry.Invoke('Create', $MyInvocation, $parameterSet, $PSCmdlet) + } else { + $internalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + if ($internalCalledCmdlets -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $MyInvocation.MyCommand.Name + } else { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets += ',' + $MyInvocation.MyCommand.Name + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = 'internal' + } + + $mapping = @{ + Regenerate = 'Az.EventGrid.private\New-AzEventGridDomainKey_Regenerate'; + RegenerateExpanded = 'Az.EventGrid.private\New-AzEventGridDomainKey_RegenerateExpanded'; + RegenerateViaIdentity = 'Az.EventGrid.private\New-AzEventGridDomainKey_RegenerateViaIdentity'; + RegenerateViaIdentityExpanded = 'Az.EventGrid.private\New-AzEventGridDomainKey_RegenerateViaIdentityExpanded'; + } + if (('Regenerate', 'RegenerateExpanded') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { + $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } + + finally { + $backupTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + $backupInternalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + +} +end { + try { + $steppablePipeline.End() + + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $backupTelemetryId + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $backupInternalCalledCmdlets + if ($preTelemetryId -eq '') { + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.module]::Instance.Telemetry.Invoke('Send', $MyInvocation, $parameterSet, $PSCmdlet) + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $preTelemetryId + + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} +} diff --git a/swaggerci/eventgrid/exports/New-AzEventGridDomainTopicEventSubscription.ps1 b/swaggerci/eventgrid/exports/New-AzEventGridDomainTopicEventSubscription.ps1 new file mode 100644 index 000000000000..e688b2e33fe0 --- /dev/null +++ b/swaggerci/eventgrid/exports/New-AzEventGridDomainTopicEventSubscription.ps1 @@ -0,0 +1,326 @@ + +# ---------------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for license information. +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is regenerated. +# ---------------------------------------------------------------------------------- + +<# +.Synopsis +Asynchronously creates a new event subscription or updates an existing event subscription. +.Description +Asynchronously creates a new event subscription or updates an existing event subscription. +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Outputs +Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscription +.Notes +COMPLEX PARAMETER PROPERTIES + +To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. + +FILTERADVANCEDFILTER : An array of advanced filters that are used for filtering event subscriptions. + OperatorType : The operator type used for filtering, e.g., NumberIn, StringContains, BoolEquals and others. + [Key ]: The field/property in the event based on which you want to filter. +.Link +https://docs.microsoft.com/en-us/powershell/module/az.eventgrid/new-azeventgriddomaintopiceventsubscription +#> +function New-AzEventGridDomainTopicEventSubscription { +[OutputType([Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscription])] +[CmdletBinding(DefaultParameterSetName='CreateExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [System.String] + # Name of the top level domain. + ${DomainName}, + + [Parameter(Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [System.String] + # Name of the event subscription to be created. + # Event subscription names must be between 3 and 100 characters in length and use alphanumeric letters only. + ${EventSubscriptionName}, + + [Parameter(Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [System.String] + # The name of the resource group within the user's subscription. + ${ResourceGroupName}, + + [Parameter(Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [System.String] + # Name of the domain topic. + ${TopicName}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] + [System.String] + # Subscription credentials that uniquely identify a Microsoft Azure subscription. + # The subscription ID forms part of the URI for every service call. + ${SubscriptionId}, + + [Parameter()] + [ArgumentCompleter([Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EventSubscriptionIdentityType])] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EventSubscriptionIdentityType] + # The type of managed identity used. + # The type 'SystemAssigned, UserAssigned' includes both an implicitly created identity and a set of user-assigned identities. + # The type 'None' will remove any identity. + ${DeadLetterWithResourceIdentityType}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [System.String] + # The user identity associated with the resource. + ${DeadLetterWithResourceIdentityUserAssignedIdentity}, + + [Parameter()] + [ArgumentCompleter([Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EndpointType])] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EndpointType] + # Type of the endpoint for the event subscription destination. + ${DeliveryWithResourceIdentityDestinationEndpointType}, + + [Parameter()] + [ArgumentCompleter([Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EventSubscriptionIdentityType])] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EventSubscriptionIdentityType] + # The type of managed identity used. + # The type 'SystemAssigned, UserAssigned' includes both an implicitly created identity and a set of user-assigned identities. + # The type 'None' will remove any identity. + ${DeliveryWithResourceIdentityType}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [System.String] + # The user identity associated with the resource. + ${DeliveryWithResourceIdentityUserAssignedIdentity}, + + [Parameter()] + [ArgumentCompleter([Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EndpointType])] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EndpointType] + # Type of the endpoint for the event subscription destination. + ${EndpointType}, + + [Parameter()] + [ArgumentCompleter([Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EventDeliverySchema])] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EventDeliverySchema] + # The event delivery schema for the event subscription. + ${EventDeliverySchema}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [System.DateTime] + # Expiration time of the event subscription. + ${ExpirationTimeUtc}, + + [Parameter()] + [AllowEmptyCollection()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IAdvancedFilter[]] + # An array of advanced filters that are used for filtering event subscriptions. + # To construct, see NOTES section for FILTERADVANCEDFILTER properties and create a hash table. + ${FilterAdvancedFilter}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [System.Management.Automation.SwitchParameter] + # Allows advanced filters to be evaluated against an array of values instead of expecting a singular value. + ${FilterEnableAdvancedFilteringOnArray}, + + [Parameter()] + [AllowEmptyCollection()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [System.String[]] + # A list of applicable event types that need to be part of the event subscription. + # If it is desired to subscribe to all default event types, set the IncludedEventTypes to null. + ${FilterIncludedEventType}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [System.Management.Automation.SwitchParameter] + # Specifies if the SubjectBeginsWith and SubjectEndsWith properties of the filtershould be compared in a case sensitive manner. + ${FilterIsSubjectCaseSensitive}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [System.String] + # An optional string to filter events for an event subscription based on a resource path prefix.The format of this depends on the publisher of the events.Wildcard characters are not supported in this path. + ${FilterSubjectBeginsWith}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [System.String] + # An optional string to filter events for an event subscription based on a resource path suffix.Wildcard characters are not supported in this path. + ${FilterSubjectEndsWith}, + + [Parameter()] + [AllowEmptyCollection()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [System.String[]] + # List of user defined labels. + ${Label}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [System.Int32] + # Time To Live (in minutes) for events. + ${RetryPolicyEventTimeToLiveInMinute}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [System.Int32] + # Maximum number of delivery retry attempts for events. + ${RetryPolicyMaxDeliveryAttempt}, + + [Parameter()] + [Alias('AzureRMContext', 'AzureCredential')] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Run the command as a job + ${AsJob}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Run the command asynchronously + ${NoWait}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Returns true when the command succeeds + ${PassThru}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + if ($null -eq [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion) { + [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion = $Host.Runspace.Version.ToString() + } + $preTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + if ($preTelemetryId -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId =(New-Guid).ToString() + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.module]::Instance.Telemetry.Invoke('Create', $MyInvocation, $parameterSet, $PSCmdlet) + } else { + $internalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + if ($internalCalledCmdlets -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $MyInvocation.MyCommand.Name + } else { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets += ',' + $MyInvocation.MyCommand.Name + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = 'internal' + } + + $mapping = @{ + CreateExpanded = 'Az.EventGrid.private\New-AzEventGridDomainTopicEventSubscription_CreateExpanded'; + } + if (('CreateExpanded') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { + $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } + + finally { + $backupTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + $backupInternalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + +} +end { + try { + $steppablePipeline.End() + + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $backupTelemetryId + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $backupInternalCalledCmdlets + if ($preTelemetryId -eq '') { + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.module]::Instance.Telemetry.Invoke('Send', $MyInvocation, $parameterSet, $PSCmdlet) + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $preTelemetryId + + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} +} diff --git a/swaggerci/eventgrid/exports/New-AzEventGridEventChannel.ps1 b/swaggerci/eventgrid/exports/New-AzEventGridEventChannel.ps1 new file mode 100644 index 000000000000..b656f7f3306d --- /dev/null +++ b/swaggerci/eventgrid/exports/New-AzEventGridEventChannel.ps1 @@ -0,0 +1,247 @@ + +# ---------------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for license information. +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is regenerated. +# ---------------------------------------------------------------------------------- + +<# +.Synopsis +Asynchronously creates a new event channel with the specified parameters. +.Description +Asynchronously creates a new event channel with the specified parameters. +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Outputs +Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventChannel +.Notes +COMPLEX PARAMETER PROPERTIES + +To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. + +FILTERADVANCEDFILTER : An array of advanced filters that are used for filtering event channels. + OperatorType : The operator type used for filtering, e.g., NumberIn, StringContains, BoolEquals and others. + [Key ]: The field/property in the event based on which you want to filter. +.Link +https://docs.microsoft.com/en-us/powershell/module/az.eventgrid/new-azeventgrideventchannel +#> +function New-AzEventGridEventChannel { +[OutputType([Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventChannel])] +[CmdletBinding(DefaultParameterSetName='CreateExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(Mandatory)] + [Alias('EventChannelName')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [System.String] + # Name of the event channel. + ${Name}, + + [Parameter(Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [System.String] + # Name of the partner namespace. + ${PartnerNamespaceName}, + + [Parameter(Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [System.String] + # The name of the resource group within the user's subscription. + ${ResourceGroupName}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] + [System.String] + # Subscription credentials that uniquely identify a Microsoft Azure subscription. + # The subscription ID forms part of the URI for every service call. + ${SubscriptionId}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [System.String] + # Azure subscription ID of the customer creating the event channel. + # The partner topicassociated with the event channel will be created under this Azure subscription. + ${DestinationAzureSubscriptionId}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [System.String] + # Name of the partner topic associated with the event channel. + ${DestinationPartnerTopicName}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [System.String] + # Azure Resource Group of the customer creating the event channel. + # The partner topicassociated with the event channel will be created under this resource group. + ${DestinationResourceGroup}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [System.String] + # The identifier of the resource that's the source of the events.This represents a unique resource in the partner's resource model. + ${EventChannelSource}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [System.DateTime] + # Expiration time of the event channel. + # If this timer expires while the corresponding partner topic is never activated,the event channel and corresponding partner topic are deleted. + ${ExpirationTimeIfNotActivatedUtc}, + + [Parameter()] + [AllowEmptyCollection()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IAdvancedFilter[]] + # An array of advanced filters that are used for filtering event channels. + # To construct, see NOTES section for FILTERADVANCEDFILTER properties and create a hash table. + ${FilterAdvancedFilter}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [System.Management.Automation.SwitchParameter] + # Allows advanced filters to be evaluated against an array of values instead of expecting a singular value. + # The default value is either false or null. + ${FilterEnableAdvancedFilteringOnArray}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [System.String] + # Friendly description about the topic. + # This can be set by the publisher/partner to show custom description for the customer partner topic.This will be helpful to remove any ambiguity of the origin of creation of the partner topic for the customer. + ${PartnerTopicFriendlyDescription}, + + [Parameter()] + [Alias('AzureRMContext', 'AzureCredential')] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Returns true when the command succeeds + ${PassThru}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + if ($null -eq [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion) { + [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion = $Host.Runspace.Version.ToString() + } + $preTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + if ($preTelemetryId -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId =(New-Guid).ToString() + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.module]::Instance.Telemetry.Invoke('Create', $MyInvocation, $parameterSet, $PSCmdlet) + } else { + $internalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + if ($internalCalledCmdlets -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $MyInvocation.MyCommand.Name + } else { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets += ',' + $MyInvocation.MyCommand.Name + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = 'internal' + } + + $mapping = @{ + CreateExpanded = 'Az.EventGrid.private\New-AzEventGridEventChannel_CreateExpanded'; + } + if (('CreateExpanded') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { + $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } + + finally { + $backupTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + $backupInternalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + +} +end { + try { + $steppablePipeline.End() + + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $backupTelemetryId + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $backupInternalCalledCmdlets + if ($preTelemetryId -eq '') { + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.module]::Instance.Telemetry.Invoke('Send', $MyInvocation, $parameterSet, $PSCmdlet) + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $preTelemetryId + + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} +} diff --git a/swaggerci/eventgrid/exports/New-AzEventGridEventSubscription.ps1 b/swaggerci/eventgrid/exports/New-AzEventGridEventSubscription.ps1 new file mode 100644 index 000000000000..3432f6decc42 --- /dev/null +++ b/swaggerci/eventgrid/exports/New-AzEventGridEventSubscription.ps1 @@ -0,0 +1,306 @@ + +# ---------------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for license information. +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is regenerated. +# ---------------------------------------------------------------------------------- + +<# +.Synopsis +Asynchronously creates a new event subscription or updates an existing event subscription based on the specified scope. +.Description +Asynchronously creates a new event subscription or updates an existing event subscription based on the specified scope. +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.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. + +FILTERADVANCEDFILTER : An array of advanced filters that are used for filtering event subscriptions. + OperatorType : The operator type used for filtering, e.g., NumberIn, StringContains, BoolEquals and others. + [Key ]: The field/property in the event based on which you want to filter. +.Link +https://docs.microsoft.com/en-us/powershell/module/az.eventgrid/new-azeventgrideventsubscription +#> +function New-AzEventGridEventSubscription { +[OutputType([System.Boolean])] +[CmdletBinding(DefaultParameterSetName='CreateExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(Mandatory)] + [Alias('EventSubscriptionName')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [System.String] + # Name of the event subscription. + # Event subscription names must be between 3 and 64 characters in length and should use alphanumeric letters only. + ${Name}, + + [Parameter(Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [System.String] + # The identifier of the resource to which the event subscription needs to be created or updated. + # The scope can be a subscription, or a resource group, or a top level resource belonging to a resource provider namespace, or an EventGrid topic. + # For example, use '/subscriptions/{subscriptionId}/' for a subscription, '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}' for a resource group, and '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}' for a resource, and '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.EventGrid/topics/{topicName}' for an EventGrid topic. + ${Scope}, + + [Parameter()] + [ArgumentCompleter([Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EventSubscriptionIdentityType])] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EventSubscriptionIdentityType] + # The type of managed identity used. + # The type 'SystemAssigned, UserAssigned' includes both an implicitly created identity and a set of user-assigned identities. + # The type 'None' will remove any identity. + ${DeadLetterWithResourceIdentityType}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [System.String] + # The user identity associated with the resource. + ${DeadLetterWithResourceIdentityUserAssignedIdentity}, + + [Parameter()] + [ArgumentCompleter([Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EndpointType])] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EndpointType] + # Type of the endpoint for the event subscription destination. + ${DeliveryWithResourceIdentityDestinationEndpointType}, + + [Parameter()] + [ArgumentCompleter([Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EventSubscriptionIdentityType])] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EventSubscriptionIdentityType] + # The type of managed identity used. + # The type 'SystemAssigned, UserAssigned' includes both an implicitly created identity and a set of user-assigned identities. + # The type 'None' will remove any identity. + ${DeliveryWithResourceIdentityType}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [System.String] + # The user identity associated with the resource. + ${DeliveryWithResourceIdentityUserAssignedIdentity}, + + [Parameter()] + [ArgumentCompleter([Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EndpointType])] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EndpointType] + # Type of the endpoint for the event subscription destination. + ${EndpointType}, + + [Parameter()] + [ArgumentCompleter([Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EventDeliverySchema])] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EventDeliverySchema] + # The event delivery schema for the event subscription. + ${EventDeliverySchema}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [System.DateTime] + # Expiration time of the event subscription. + ${ExpirationTimeUtc}, + + [Parameter()] + [AllowEmptyCollection()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IAdvancedFilter[]] + # An array of advanced filters that are used for filtering event subscriptions. + # To construct, see NOTES section for FILTERADVANCEDFILTER properties and create a hash table. + ${FilterAdvancedFilter}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [System.Management.Automation.SwitchParameter] + # Allows advanced filters to be evaluated against an array of values instead of expecting a singular value. + ${FilterEnableAdvancedFilteringOnArray}, + + [Parameter()] + [AllowEmptyCollection()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [System.String[]] + # A list of applicable event types that need to be part of the event subscription. + # If it is desired to subscribe to all default event types, set the IncludedEventTypes to null. + ${FilterIncludedEventType}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [System.Management.Automation.SwitchParameter] + # Specifies if the SubjectBeginsWith and SubjectEndsWith properties of the filtershould be compared in a case sensitive manner. + ${FilterIsSubjectCaseSensitive}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [System.String] + # An optional string to filter events for an event subscription based on a resource path prefix.The format of this depends on the publisher of the events.Wildcard characters are not supported in this path. + ${FilterSubjectBeginsWith}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [System.String] + # An optional string to filter events for an event subscription based on a resource path suffix.Wildcard characters are not supported in this path. + ${FilterSubjectEndsWith}, + + [Parameter()] + [AllowEmptyCollection()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [System.String[]] + # List of user defined labels. + ${Label}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [System.Int32] + # Time To Live (in minutes) for events. + ${RetryPolicyEventTimeToLiveInMinute}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [System.Int32] + # Maximum number of delivery retry attempts for events. + ${RetryPolicyMaxDeliveryAttempt}, + + [Parameter()] + [Alias('AzureRMContext', 'AzureCredential')] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Run the command as a job + ${AsJob}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Run the command asynchronously + ${NoWait}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Returns true when the command succeeds + ${PassThru}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + if ($null -eq [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion) { + [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion = $Host.Runspace.Version.ToString() + } + $preTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + if ($preTelemetryId -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId =(New-Guid).ToString() + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.module]::Instance.Telemetry.Invoke('Create', $MyInvocation, $parameterSet, $PSCmdlet) + } else { + $internalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + if ($internalCalledCmdlets -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $MyInvocation.MyCommand.Name + } else { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets += ',' + $MyInvocation.MyCommand.Name + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = 'internal' + } + + $mapping = @{ + CreateExpanded = 'Az.EventGrid.private\New-AzEventGridEventSubscription_CreateExpanded'; + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } + + finally { + $backupTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + $backupInternalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + +} +end { + try { + $steppablePipeline.End() + + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $backupTelemetryId + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $backupInternalCalledCmdlets + if ($preTelemetryId -eq '') { + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.module]::Instance.Telemetry.Invoke('Send', $MyInvocation, $parameterSet, $PSCmdlet) + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $preTelemetryId + + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} +} diff --git a/swaggerci/eventgrid/exports/New-AzEventGridPartnerConfiguration.ps1 b/swaggerci/eventgrid/exports/New-AzEventGridPartnerConfiguration.ps1 new file mode 100644 index 000000000000..66062faefa7d --- /dev/null +++ b/swaggerci/eventgrid/exports/New-AzEventGridPartnerConfiguration.ps1 @@ -0,0 +1,228 @@ + +# ---------------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for license information. +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is regenerated. +# ---------------------------------------------------------------------------------- + +<# +.Synopsis +Synchronously creates or updates a partner configuration with the specified parameters. +.Description +Synchronously creates or updates a partner configuration with the specified parameters. +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Outputs +Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerConfiguration +.Notes +COMPLEX PARAMETER PROPERTIES + +To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. + +PARTNERAUTHORIZATIONAUTHORIZEDPARTNERSLIST : The list of authorized partners. + [AuthorizationExpirationTimeInUtc ]: Expiration time of the partner authorization. If this timer expires, any request from this partner to create, update or delete resources in subscriber's context will fail. If specified, the allowed values are between 1 to the value of defaultMaximumExpirationTimeInDays specified in PartnerConfiguration. If not specified, the default value will be the value of defaultMaximumExpirationTimeInDays specified in PartnerConfiguration or 7 if this value is not specified. + [Name ]: The partner name. + [RegistrationImmutableId ]: The immutableId of the corresponding partner registration. +.Link +https://docs.microsoft.com/en-us/powershell/module/az.eventgrid/new-azeventgridpartnerconfiguration +#> +function New-AzEventGridPartnerConfiguration { +[OutputType([Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerConfiguration])] +[CmdletBinding(DefaultParameterSetName='CreateExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [System.String] + # The name of the resource group within the user's subscription. + ${ResourceGroupName}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] + [System.String] + # Subscription credentials that uniquely identify a Microsoft Azure subscription. + # The subscription ID forms part of the URI for every service call. + ${SubscriptionId}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [System.String] + # Location of the resource. + ${Location}, + + [Parameter()] + [AllowEmptyCollection()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartner[]] + # The list of authorized partners. + # To construct, see NOTES section for PARTNERAUTHORIZATIONAUTHORIZEDPARTNERSLIST properties and create a hash table. + ${PartnerAuthorizationAuthorizedPartnersList}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [System.Int32] + # Time used to validate the authorization expiration time for each authorized partner. + # If DefaultMaximumExpirationTimeInDays isnot specified, the default is 7 days. + # Otherwise, allowed values are between 1 and 365 days. + ${PartnerAuthorizationDefaultMaximumExpirationTimeInDay}, + + [Parameter()] + [ArgumentCompleter([Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.PartnerConfigurationProvisioningState])] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.PartnerConfigurationProvisioningState] + # Provisioning state of the partner configuration. + ${ProvisioningState}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info(PossibleTypes=([Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerConfigurationTags]))] + [System.Collections.Hashtable] + # Tags of the resource. + ${Tag}, + + [Parameter()] + [Alias('AzureRMContext', 'AzureCredential')] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Run the command as a job + ${AsJob}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Run the command asynchronously + ${NoWait}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Returns true when the command succeeds + ${PassThru}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + if ($null -eq [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion) { + [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion = $Host.Runspace.Version.ToString() + } + $preTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + if ($preTelemetryId -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId =(New-Guid).ToString() + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.module]::Instance.Telemetry.Invoke('Create', $MyInvocation, $parameterSet, $PSCmdlet) + } else { + $internalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + if ($internalCalledCmdlets -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $MyInvocation.MyCommand.Name + } else { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets += ',' + $MyInvocation.MyCommand.Name + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = 'internal' + } + + $mapping = @{ + CreateExpanded = 'Az.EventGrid.private\New-AzEventGridPartnerConfiguration_CreateExpanded'; + } + if (('CreateExpanded') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { + $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } + + finally { + $backupTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + $backupInternalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + +} +end { + try { + $steppablePipeline.End() + + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $backupTelemetryId + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $backupInternalCalledCmdlets + if ($preTelemetryId -eq '') { + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.module]::Instance.Telemetry.Invoke('Send', $MyInvocation, $parameterSet, $PSCmdlet) + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $preTelemetryId + + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} +} diff --git a/swaggerci/eventgrid/exports/New-AzEventGridPartnerDestination.ps1 b/swaggerci/eventgrid/exports/New-AzEventGridPartnerDestination.ps1 new file mode 100644 index 000000000000..38776efe9de8 --- /dev/null +++ b/swaggerci/eventgrid/exports/New-AzEventGridPartnerDestination.ps1 @@ -0,0 +1,236 @@ + +# ---------------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for license information. +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is regenerated. +# ---------------------------------------------------------------------------------- + +<# +.Synopsis +Asynchronously creates a new partner destination with the specified parameters. +.Description +Asynchronously creates a new partner destination with the specified parameters. +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Outputs +Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerDestination +.Link +https://docs.microsoft.com/en-us/powershell/module/az.eventgrid/new-azeventgridpartnerdestination +#> +function New-AzEventGridPartnerDestination { +[OutputType([Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerDestination])] +[CmdletBinding(DefaultParameterSetName='CreateExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(Mandatory)] + [Alias('PartnerDestinationName')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [System.String] + # Name of the partner destination. + ${Name}, + + [Parameter(Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [System.String] + # The name of the resource group within the user's subscription. + ${ResourceGroupName}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] + [System.String] + # Subscription credentials that uniquely identify a Microsoft Azure subscription. + # The subscription ID forms part of the URI for every service call. + ${SubscriptionId}, + + [Parameter(Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [System.String] + # Location of the resource. + ${Location}, + + [Parameter()] + [ArgumentCompleter([Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.PartnerDestinationActivationState])] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.PartnerDestinationActivationState] + # Activation state of the partner destination. + ${ActivationState}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [System.String] + # Endpoint Base URL of the partner destination + ${EndpointBaseUrl}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [System.String] + # Endpoint context associated with this partner destination. + ${EndpointServiceContext}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [System.DateTime] + # Expiration time of the partner destination. + # If this timer expires and the partner destination was never activated,the partner destination and corresponding channel are deleted. + ${ExpirationTimeIfNotActivatedUtc}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [System.String] + # Context or helpful message that can be used during the approval process. + ${MessageForActivation}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [System.String] + # The immutable Id of the corresponding partner registration. + ${PartnerRegistrationImmutableId}, + + [Parameter()] + [ArgumentCompleter([Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.PartnerDestinationProvisioningState])] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.PartnerDestinationProvisioningState] + # Provisioning state of the partner destination. + ${ProvisioningState}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info(PossibleTypes=([Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITrackedResourceTags]))] + [System.Collections.Hashtable] + # Tags of the resource. + ${Tag}, + + [Parameter()] + [Alias('AzureRMContext', 'AzureCredential')] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Returns true when the command succeeds + ${PassThru}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + if ($null -eq [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion) { + [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion = $Host.Runspace.Version.ToString() + } + $preTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + if ($preTelemetryId -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId =(New-Guid).ToString() + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.module]::Instance.Telemetry.Invoke('Create', $MyInvocation, $parameterSet, $PSCmdlet) + } else { + $internalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + if ($internalCalledCmdlets -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $MyInvocation.MyCommand.Name + } else { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets += ',' + $MyInvocation.MyCommand.Name + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = 'internal' + } + + $mapping = @{ + CreateExpanded = 'Az.EventGrid.private\New-AzEventGridPartnerDestination_CreateExpanded'; + } + if (('CreateExpanded') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { + $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } + + finally { + $backupTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + $backupInternalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + +} +end { + try { + $steppablePipeline.End() + + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $backupTelemetryId + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $backupInternalCalledCmdlets + if ($preTelemetryId -eq '') { + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.module]::Instance.Telemetry.Invoke('Send', $MyInvocation, $parameterSet, $PSCmdlet) + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $preTelemetryId + + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} +} diff --git a/swaggerci/eventgrid/exports/New-AzEventGridPartnerNamespace.ps1 b/swaggerci/eventgrid/exports/New-AzEventGridPartnerNamespace.ps1 new file mode 100644 index 000000000000..f86d49771285 --- /dev/null +++ b/swaggerci/eventgrid/exports/New-AzEventGridPartnerNamespace.ps1 @@ -0,0 +1,251 @@ + +# ---------------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for license information. +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is regenerated. +# ---------------------------------------------------------------------------------- + +<# +.Synopsis +Asynchronously creates a new partner namespace with the specified parameters. +.Description +Asynchronously creates a new partner namespace with the specified parameters. +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.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. + +INBOUNDIPRULE : This can be used to restrict traffic from specific IPs instead of all IPs. Note: These are considered only if PublicNetworkAccess is enabled. + [Action ]: Action to perform based on the match or no match of the IpMask. + [IPMask ]: IP Address in CIDR notation e.g., 10.0.0.0/8. +.Link +https://docs.microsoft.com/en-us/powershell/module/az.eventgrid/new-azeventgridpartnernamespace +#> +function New-AzEventGridPartnerNamespace { +[OutputType([System.Boolean])] +[CmdletBinding(DefaultParameterSetName='CreateExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(Mandatory)] + [Alias('PartnerNamespaceName')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [System.String] + # Name of the partner namespace. + ${Name}, + + [Parameter(Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [System.String] + # The name of the resource group within the user's subscription. + ${ResourceGroupName}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] + [System.String] + # Subscription credentials that uniquely identify a Microsoft Azure subscription. + # The subscription ID forms part of the URI for every service call. + ${SubscriptionId}, + + [Parameter(Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [System.String] + # Location of the resource. + ${Location}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [System.Management.Automation.SwitchParameter] + # This boolean is used to enable or disable local auth. + # Default value is false. + # When the property is set to true, only AAD token will be used to authenticate if user is allowed to publish to the partner namespace. + ${DisableLocalAuth}, + + [Parameter()] + [AllowEmptyCollection()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IInboundIPRule[]] + # This can be used to restrict traffic from specific IPs instead of all IPs. + # Note: These are considered only if PublicNetworkAccess is enabled. + # To construct, see NOTES section for INBOUNDIPRULE properties and create a hash table. + ${InboundIPRule}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [System.String] + # The fully qualified ARM Id of the partner registration that should be associated with this partner namespace. + # This takes the following format:/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.EventGrid/partnerRegistrations/{partnerRegistrationName}. + ${PartnerRegistrationFullyQualifiedId}, + + [Parameter()] + [ArgumentCompleter([Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.PartnerTopicRoutingMode])] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.PartnerTopicRoutingMode] + # This determines if events published to this partner namespace should use the source attribute in the event payloador use the channel name in the header when matching to the partner topic. + # If none is specified, source attribute routing will be used to match the partner topic. + ${PartnerTopicRoutingMode}, + + [Parameter()] + [ArgumentCompleter([Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.PublicNetworkAccess])] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.PublicNetworkAccess] + # This determines if traffic is allowed over public network. + # By default it is enabled.You can further restrict to specific IPs by configuring + ${PublicNetworkAccess}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info(PossibleTypes=([Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITrackedResourceTags]))] + [System.Collections.Hashtable] + # Tags of the resource. + ${Tag}, + + [Parameter()] + [Alias('AzureRMContext', 'AzureCredential')] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Run the command as a job + ${AsJob}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Run the command asynchronously + ${NoWait}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Returns true when the command succeeds + ${PassThru}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + if ($null -eq [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion) { + [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion = $Host.Runspace.Version.ToString() + } + $preTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + if ($preTelemetryId -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId =(New-Guid).ToString() + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.module]::Instance.Telemetry.Invoke('Create', $MyInvocation, $parameterSet, $PSCmdlet) + } else { + $internalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + if ($internalCalledCmdlets -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $MyInvocation.MyCommand.Name + } else { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets += ',' + $MyInvocation.MyCommand.Name + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = 'internal' + } + + $mapping = @{ + CreateExpanded = 'Az.EventGrid.private\New-AzEventGridPartnerNamespace_CreateExpanded'; + } + if (('CreateExpanded') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { + $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } + + finally { + $backupTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + $backupInternalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + +} +end { + try { + $steppablePipeline.End() + + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $backupTelemetryId + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $backupInternalCalledCmdlets + if ($preTelemetryId -eq '') { + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.module]::Instance.Telemetry.Invoke('Send', $MyInvocation, $parameterSet, $PSCmdlet) + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $preTelemetryId + + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} +} diff --git a/swaggerci/eventgrid/exports/New-AzEventGridPartnerNamespaceKey.ps1 b/swaggerci/eventgrid/exports/New-AzEventGridPartnerNamespaceKey.ps1 new file mode 100644 index 000000000000..1f9ad1013c40 --- /dev/null +++ b/swaggerci/eventgrid/exports/New-AzEventGridPartnerNamespaceKey.ps1 @@ -0,0 +1,244 @@ + +# ---------------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for license information. +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is regenerated. +# ---------------------------------------------------------------------------------- + +<# +.Synopsis +Regenerate a shared access key for a partner namespace. +.Description +Regenerate a shared access key for a partner namespace. +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Inputs +Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerNamespaceRegenerateKeyRequest +.Inputs +Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.IEventGridIdentity +.Outputs +Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerNamespaceSharedAccessKeys +.Notes +COMPLEX PARAMETER PROPERTIES + +To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. + +INPUTOBJECT : Identity Parameter + [ChannelName ]: Name of the channel. + [DomainName ]: Name of the domain. + [DomainTopicName ]: Name of the topic. + [EventChannelName ]: Name of the event channel. + [EventSubscriptionName ]: Name of the event subscription. + [Id ]: Resource identity path + [Location ]: Name of the location. + [ParentName ]: The name of the parent resource (namely, either, the topic name, domain name, or partner namespace name). + [ParentType ]: The type of the parent resource. This can be either \'topics\', \'domains\', or \'partnerNamespaces\'. + [PartnerDestinationName ]: Name of the partner destination. + [PartnerNamespaceName ]: Name of the partner namespace. + [PartnerRegistrationName ]: Name of the partner registration. + [PartnerTopicName ]: Name of the partner topic. + [PrivateEndpointConnectionName ]: The name of the private endpoint connection connection. + [PrivateLinkResourceName ]: The name of private link resource. + [ProviderNamespace ]: Namespace of the provider of the topic. + [ResourceGroupName ]: The name of the resource group within the partners subscription. + [ResourceName ]: Name of the resource. + [ResourceTypeName ]: Name of the resource type. + [Scope ]: The scope of the event subscription. The scope can be a subscription, or a resource group, or a top level resource belonging to a resource provider namespace, or an EventGrid topic. For example, use '/subscriptions/{subscriptionId}/' for a subscription, '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}' for a resource group, and '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}' for a resource, and '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.EventGrid/topics/{topicName}' for an EventGrid topic. + [SubscriptionId ]: Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription ID forms part of the URI for every service call. + [SystemTopicName ]: Name of the system topic. + [TopicName ]: Name of the domain topic. + [TopicTypeName ]: Name of the topic type. + [VerifiedPartnerName ]: Name of the verified partner. + +REGENERATEKEYREQUEST : PartnerNamespace regenerate shared access key request. + KeyName : Key name to regenerate (key1 or key2). +.Link +https://docs.microsoft.com/en-us/powershell/module/az.eventgrid/new-azeventgridpartnernamespacekey +#> +function New-AzEventGridPartnerNamespaceKey { +[OutputType([Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerNamespaceSharedAccessKeys])] +[CmdletBinding(DefaultParameterSetName='RegenerateExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(ParameterSetName='Regenerate', Mandatory)] + [Parameter(ParameterSetName='RegenerateExpanded', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [System.String] + # Name of the partner namespace. + ${PartnerNamespaceName}, + + [Parameter(ParameterSetName='Regenerate', Mandatory)] + [Parameter(ParameterSetName='RegenerateExpanded', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [System.String] + # The name of the resource group within the user's subscription. + ${ResourceGroupName}, + + [Parameter(ParameterSetName='Regenerate')] + [Parameter(ParameterSetName='RegenerateExpanded')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] + [System.String] + # Subscription credentials that uniquely identify a Microsoft Azure subscription. + # The subscription ID forms part of the URI for every service call. + ${SubscriptionId}, + + [Parameter(ParameterSetName='RegenerateViaIdentity', Mandatory, ValueFromPipeline)] + [Parameter(ParameterSetName='RegenerateViaIdentityExpanded', Mandatory, ValueFromPipeline)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.IEventGridIdentity] + # Identity Parameter + # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + ${InputObject}, + + [Parameter(ParameterSetName='Regenerate', Mandatory, ValueFromPipeline)] + [Parameter(ParameterSetName='RegenerateViaIdentity', Mandatory, ValueFromPipeline)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerNamespaceRegenerateKeyRequest] + # PartnerNamespace regenerate shared access key request. + # To construct, see NOTES section for REGENERATEKEYREQUEST properties and create a hash table. + ${RegenerateKeyRequest}, + + [Parameter(ParameterSetName='RegenerateExpanded', Mandatory)] + [Parameter(ParameterSetName='RegenerateViaIdentityExpanded', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [System.String] + # Key name to regenerate (key1 or key2). + ${KeyName}, + + [Parameter()] + [Alias('AzureRMContext', 'AzureCredential')] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Returns true when the command succeeds + ${PassThru}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + if ($null -eq [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion) { + [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion = $Host.Runspace.Version.ToString() + } + $preTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + if ($preTelemetryId -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId =(New-Guid).ToString() + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.module]::Instance.Telemetry.Invoke('Create', $MyInvocation, $parameterSet, $PSCmdlet) + } else { + $internalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + if ($internalCalledCmdlets -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $MyInvocation.MyCommand.Name + } else { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets += ',' + $MyInvocation.MyCommand.Name + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = 'internal' + } + + $mapping = @{ + Regenerate = 'Az.EventGrid.private\New-AzEventGridPartnerNamespaceKey_Regenerate'; + RegenerateExpanded = 'Az.EventGrid.private\New-AzEventGridPartnerNamespaceKey_RegenerateExpanded'; + RegenerateViaIdentity = 'Az.EventGrid.private\New-AzEventGridPartnerNamespaceKey_RegenerateViaIdentity'; + RegenerateViaIdentityExpanded = 'Az.EventGrid.private\New-AzEventGridPartnerNamespaceKey_RegenerateViaIdentityExpanded'; + } + if (('Regenerate', 'RegenerateExpanded') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { + $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } + + finally { + $backupTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + $backupInternalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + +} +end { + try { + $steppablePipeline.End() + + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $backupTelemetryId + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $backupInternalCalledCmdlets + if ($preTelemetryId -eq '') { + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.module]::Instance.Telemetry.Invoke('Send', $MyInvocation, $parameterSet, $PSCmdlet) + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $preTelemetryId + + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} +} diff --git a/swaggerci/eventgrid/exports/New-AzEventGridPartnerRegistration.ps1 b/swaggerci/eventgrid/exports/New-AzEventGridPartnerRegistration.ps1 new file mode 100644 index 000000000000..95003435e91d --- /dev/null +++ b/swaggerci/eventgrid/exports/New-AzEventGridPartnerRegistration.ps1 @@ -0,0 +1,293 @@ + +# ---------------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for license information. +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is regenerated. +# ---------------------------------------------------------------------------------- + +<# +.Synopsis +Creates a new partner registration with the specified parameters. +.Description +Creates a new partner registration with the specified parameters. +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Outputs +Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerRegistration +.Link +https://docs.microsoft.com/en-us/powershell/module/az.eventgrid/new-azeventgridpartnerregistration +#> +function New-AzEventGridPartnerRegistration { +[OutputType([Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerRegistration])] +[CmdletBinding(DefaultParameterSetName='CreateExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(Mandatory)] + [Alias('PartnerRegistrationName')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [System.String] + # Name of the partner registration. + ${Name}, + + [Parameter(Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [System.String] + # The name of the resource group within the user's subscription. + ${ResourceGroupName}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] + [System.String] + # Subscription credentials that uniquely identify a Microsoft Azure subscription. + # The subscription ID forms part of the URI for every service call. + ${SubscriptionId}, + + [Parameter(Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [System.String] + # Location of the resource. + ${Location}, + + [Parameter()] + [AllowEmptyCollection()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [System.String[]] + # List of Azure subscription Ids that are authorized to create a partner namespaceassociated with this partner registration. + # This is an optional property. + # Creatingpartner namespaces is always permitted under the same Azure subscription as the one usedfor creating the partner registration. + ${AuthorizedAzureSubscriptionId}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [System.String] + # The extension of the customer service URI of the publisher. + ${CustomerServiceUri}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [System.String] + # URI of the logo. + ${LogoUri}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [System.String] + # Long description for the custom scenarios and integration to be displayed in the portal if needed.Length of this description should not exceed 2048 characters. + ${LongDescription}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [System.String] + # The extension of the customer service number of the publisher. + # Only digits are allowed and number of digits should not exceed 10. + ${PartnerCustomerServiceExtension}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [System.String] + # The customer service number of the publisher. + # The expected phone format should start with a '+' sign followed by the country code. + # The remaining digits are then followed. + # Only digits and spaces are allowed and itslength cannot exceed 16 digits including country code. + # Examples of valid phone numbers are: +1 515 123 4567 and+966 7 5115 2471. + # Examples of invalid phone numbers are: +1 (515) 123-4567, 1 515 123 4567 and +966 121 5115 24 7 551 1234 43 + ${PartnerCustomerServiceNumber}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [System.String] + # Official name of the partner name. + # For example: "Contoso". + ${PartnerName}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [System.String] + # The immutableId of the corresponding partner registration. + ${PartnerRegistrationImmutableId}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [System.String] + # Short description of the partner resource type. + # The length of this description should not exceed 256 characters. + ${PartnerResourceTypeDescription}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [System.String] + # Display name of the partner resource type. + ${PartnerResourceTypeDisplayName}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [System.String] + # Name of the partner resource type. + ${PartnerResourceTypeName}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [System.String] + # URI of the partner website that can be used by Azure customers to setup Event Gridintegration on an event source. + ${SetupUri}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info(PossibleTypes=([Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITrackedResourceTags]))] + [System.Collections.Hashtable] + # Tags of the resource. + ${Tag}, + + [Parameter()] + [ArgumentCompleter([Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.PartnerRegistrationVisibilityState])] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.PartnerRegistrationVisibilityState] + # Visibility state of the partner registration. + ${VisibilityState}, + + [Parameter()] + [Alias('AzureRMContext', 'AzureCredential')] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Run the command as a job + ${AsJob}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Run the command asynchronously + ${NoWait}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Returns true when the command succeeds + ${PassThru}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + if ($null -eq [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion) { + [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion = $Host.Runspace.Version.ToString() + } + $preTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + if ($preTelemetryId -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId =(New-Guid).ToString() + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.module]::Instance.Telemetry.Invoke('Create', $MyInvocation, $parameterSet, $PSCmdlet) + } else { + $internalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + if ($internalCalledCmdlets -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $MyInvocation.MyCommand.Name + } else { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets += ',' + $MyInvocation.MyCommand.Name + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = 'internal' + } + + $mapping = @{ + CreateExpanded = 'Az.EventGrid.private\New-AzEventGridPartnerRegistration_CreateExpanded'; + } + if (('CreateExpanded') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { + $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } + + finally { + $backupTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + $backupInternalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + +} +end { + try { + $steppablePipeline.End() + + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $backupTelemetryId + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $backupInternalCalledCmdlets + if ($preTelemetryId -eq '') { + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.module]::Instance.Telemetry.Invoke('Send', $MyInvocation, $parameterSet, $PSCmdlet) + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $preTelemetryId + + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} +} diff --git a/swaggerci/eventgrid/exports/New-AzEventGridPartnerTopic.ps1 b/swaggerci/eventgrid/exports/New-AzEventGridPartnerTopic.ps1 new file mode 100644 index 000000000000..a8e434c9499e --- /dev/null +++ b/swaggerci/eventgrid/exports/New-AzEventGridPartnerTopic.ps1 @@ -0,0 +1,275 @@ + +# ---------------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for license information. +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is regenerated. +# ---------------------------------------------------------------------------------- + +<# +.Synopsis +Asynchronously creates a new partner topic with the specified parameters. +.Description +Asynchronously creates a new partner topic with the specified parameters. +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Outputs +Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerTopic +.Link +https://docs.microsoft.com/en-us/powershell/module/az.eventgrid/new-azeventgridpartnertopic +#> +function New-AzEventGridPartnerTopic { +[OutputType([Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerTopic])] +[CmdletBinding(DefaultParameterSetName='CreateExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(Mandatory)] + [Alias('PartnerTopicName')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [System.String] + # Name of the partner topic. + ${Name}, + + [Parameter(Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [System.String] + # The name of the resource group within the user's subscription. + ${ResourceGroupName}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] + [System.String] + # Subscription credentials that uniquely identify a Microsoft Azure subscription. + # The subscription ID forms part of the URI for every service call. + ${SubscriptionId}, + + [Parameter(Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [System.String] + # Location of the resource. + ${Location}, + + [Parameter()] + [ArgumentCompleter([Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.PartnerTopicActivationState])] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.PartnerTopicActivationState] + # Activation state of the partner topic. + ${ActivationState}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info(PossibleTypes=([Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventTypeInfoInlineEventTypes]))] + [System.Collections.Hashtable] + # A collection of inline event types for the resource. + # The inline event type keys are of type string which represents the name of the event.An example of a valid inline event name is "Contoso.OrderCreated".The inline event type values are of type InlineEventProperties and will contain additional information for every inline event type. + ${EventTypeInfoInlineEventType}, + + [Parameter()] + [ArgumentCompleter([Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EventDefinitionKind])] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EventDefinitionKind] + # The kind of event type used. + ${EventTypeInfoKind}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [System.DateTime] + # Expiration time of the partner topic. + # If this timer expires while the partner topic is still never activated,the partner topic and corresponding event channel are deleted. + ${ExpirationTimeIfNotActivatedUtc}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [System.String] + # The principal ID of resource identity. + ${IdentityPrincipalId}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [System.String] + # The tenant ID of resource. + ${IdentityTenantId}, + + [Parameter()] + [ArgumentCompleter([Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.IdentityType])] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.IdentityType] + # The type of managed identity used. + # The type 'SystemAssigned, UserAssigned' includes both an implicitly created identity and a set of user-assigned identities. + # The type 'None' will remove any identity. + ${IdentityType}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info(PossibleTypes=([Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IIdentityInfoUserAssignedIdentities]))] + [System.Collections.Hashtable] + # The list of user identities associated with the resource. + # The user identity dictionary key references will be ARM resource ids in the form:'/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ManagedIdentity/userAssignedIdentities/{identityName}'.This property is currently not used and reserved for future usage. + ${IdentityUserAssignedIdentity}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [System.String] + # Context or helpful message that can be used during the approval process by the subscriber. + ${MessageForActivation}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [System.String] + # The immutableId of the corresponding partner registration. + ${PartnerRegistrationImmutableId}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [System.String] + # Friendly description about the topic. + # This can be set by the publisher/partner to show custom description for the customer partner topic.This will be helpful to remove any ambiguity of the origin of creation of the partner topic for the customer. + ${PartnerTopicFriendlyDescription}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [System.String] + # Source associated with this partner topic. + # This represents a unique partner resource. + ${Source}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info(PossibleTypes=([Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITrackedResourceTags]))] + [System.Collections.Hashtable] + # Tags of the resource. + ${Tag}, + + [Parameter()] + [Alias('AzureRMContext', 'AzureCredential')] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Returns true when the command succeeds + ${PassThru}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + if ($null -eq [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion) { + [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion = $Host.Runspace.Version.ToString() + } + $preTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + if ($preTelemetryId -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId =(New-Guid).ToString() + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.module]::Instance.Telemetry.Invoke('Create', $MyInvocation, $parameterSet, $PSCmdlet) + } else { + $internalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + if ($internalCalledCmdlets -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $MyInvocation.MyCommand.Name + } else { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets += ',' + $MyInvocation.MyCommand.Name + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = 'internal' + } + + $mapping = @{ + CreateExpanded = 'Az.EventGrid.private\New-AzEventGridPartnerTopic_CreateExpanded'; + } + if (('CreateExpanded') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { + $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } + + finally { + $backupTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + $backupInternalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + +} +end { + try { + $steppablePipeline.End() + + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $backupTelemetryId + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $backupInternalCalledCmdlets + if ($preTelemetryId -eq '') { + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.module]::Instance.Telemetry.Invoke('Send', $MyInvocation, $parameterSet, $PSCmdlet) + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $preTelemetryId + + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} +} diff --git a/swaggerci/eventgrid/exports/New-AzEventGridPartnerTopicEventSubscription.ps1 b/swaggerci/eventgrid/exports/New-AzEventGridPartnerTopicEventSubscription.ps1 new file mode 100644 index 000000000000..49aba5af4a21 --- /dev/null +++ b/swaggerci/eventgrid/exports/New-AzEventGridPartnerTopicEventSubscription.ps1 @@ -0,0 +1,322 @@ + +# ---------------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for license information. +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is regenerated. +# ---------------------------------------------------------------------------------- + +<# +.Synopsis +Asynchronously creates or updates an event subscription of a partner topic with the specified parameters. +Existing event subscriptions will be updated with this API. +.Description +Asynchronously creates or updates an event subscription of a partner topic with the specified parameters. +Existing event subscriptions will be updated with this API. +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Outputs +Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscription +.Notes +COMPLEX PARAMETER PROPERTIES + +To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. + +FILTERADVANCEDFILTER : An array of advanced filters that are used for filtering event subscriptions. + OperatorType : The operator type used for filtering, e.g., NumberIn, StringContains, BoolEquals and others. + [Key ]: The field/property in the event based on which you want to filter. +.Link +https://docs.microsoft.com/en-us/powershell/module/az.eventgrid/new-azeventgridpartnertopiceventsubscription +#> +function New-AzEventGridPartnerTopicEventSubscription { +[OutputType([Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscription])] +[CmdletBinding(DefaultParameterSetName='CreateExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [System.String] + # Name of the event subscription to be created. + # Event subscription names must be between 3 and 100 characters in length and use alphanumeric letters only. + ${EventSubscriptionName}, + + [Parameter(Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [System.String] + # Name of the partner topic. + ${PartnerTopicName}, + + [Parameter(Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [System.String] + # The name of the resource group within the user's subscription. + ${ResourceGroupName}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] + [System.String] + # Subscription credentials that uniquely identify a Microsoft Azure subscription. + # The subscription ID forms part of the URI for every service call. + ${SubscriptionId}, + + [Parameter()] + [ArgumentCompleter([Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EventSubscriptionIdentityType])] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EventSubscriptionIdentityType] + # The type of managed identity used. + # The type 'SystemAssigned, UserAssigned' includes both an implicitly created identity and a set of user-assigned identities. + # The type 'None' will remove any identity. + ${DeadLetterWithResourceIdentityType}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [System.String] + # The user identity associated with the resource. + ${DeadLetterWithResourceIdentityUserAssignedIdentity}, + + [Parameter()] + [ArgumentCompleter([Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EndpointType])] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EndpointType] + # Type of the endpoint for the event subscription destination. + ${DeliveryWithResourceIdentityDestinationEndpointType}, + + [Parameter()] + [ArgumentCompleter([Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EventSubscriptionIdentityType])] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EventSubscriptionIdentityType] + # The type of managed identity used. + # The type 'SystemAssigned, UserAssigned' includes both an implicitly created identity and a set of user-assigned identities. + # The type 'None' will remove any identity. + ${DeliveryWithResourceIdentityType}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [System.String] + # The user identity associated with the resource. + ${DeliveryWithResourceIdentityUserAssignedIdentity}, + + [Parameter()] + [ArgumentCompleter([Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EndpointType])] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EndpointType] + # Type of the endpoint for the event subscription destination. + ${EndpointType}, + + [Parameter()] + [ArgumentCompleter([Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EventDeliverySchema])] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EventDeliverySchema] + # The event delivery schema for the event subscription. + ${EventDeliverySchema}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [System.DateTime] + # Expiration time of the event subscription. + ${ExpirationTimeUtc}, + + [Parameter()] + [AllowEmptyCollection()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IAdvancedFilter[]] + # An array of advanced filters that are used for filtering event subscriptions. + # To construct, see NOTES section for FILTERADVANCEDFILTER properties and create a hash table. + ${FilterAdvancedFilter}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [System.Management.Automation.SwitchParameter] + # Allows advanced filters to be evaluated against an array of values instead of expecting a singular value. + ${FilterEnableAdvancedFilteringOnArray}, + + [Parameter()] + [AllowEmptyCollection()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [System.String[]] + # A list of applicable event types that need to be part of the event subscription. + # If it is desired to subscribe to all default event types, set the IncludedEventTypes to null. + ${FilterIncludedEventType}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [System.Management.Automation.SwitchParameter] + # Specifies if the SubjectBeginsWith and SubjectEndsWith properties of the filtershould be compared in a case sensitive manner. + ${FilterIsSubjectCaseSensitive}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [System.String] + # An optional string to filter events for an event subscription based on a resource path prefix.The format of this depends on the publisher of the events.Wildcard characters are not supported in this path. + ${FilterSubjectBeginsWith}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [System.String] + # An optional string to filter events for an event subscription based on a resource path suffix.Wildcard characters are not supported in this path. + ${FilterSubjectEndsWith}, + + [Parameter()] + [AllowEmptyCollection()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [System.String[]] + # List of user defined labels. + ${Label}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [System.Int32] + # Time To Live (in minutes) for events. + ${RetryPolicyEventTimeToLiveInMinute}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [System.Int32] + # Maximum number of delivery retry attempts for events. + ${RetryPolicyMaxDeliveryAttempt}, + + [Parameter()] + [Alias('AzureRMContext', 'AzureCredential')] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Run the command as a job + ${AsJob}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Run the command asynchronously + ${NoWait}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Returns true when the command succeeds + ${PassThru}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + if ($null -eq [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion) { + [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion = $Host.Runspace.Version.ToString() + } + $preTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + if ($preTelemetryId -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId =(New-Guid).ToString() + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.module]::Instance.Telemetry.Invoke('Create', $MyInvocation, $parameterSet, $PSCmdlet) + } else { + $internalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + if ($internalCalledCmdlets -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $MyInvocation.MyCommand.Name + } else { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets += ',' + $MyInvocation.MyCommand.Name + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = 'internal' + } + + $mapping = @{ + CreateExpanded = 'Az.EventGrid.private\New-AzEventGridPartnerTopicEventSubscription_CreateExpanded'; + } + if (('CreateExpanded') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { + $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } + + finally { + $backupTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + $backupInternalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + +} +end { + try { + $steppablePipeline.End() + + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $backupTelemetryId + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $backupInternalCalledCmdlets + if ($preTelemetryId -eq '') { + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.module]::Instance.Telemetry.Invoke('Send', $MyInvocation, $parameterSet, $PSCmdlet) + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $preTelemetryId + + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} +} diff --git a/swaggerci/eventgrid/exports/New-AzEventGridSystemTopic.ps1 b/swaggerci/eventgrid/exports/New-AzEventGridSystemTopic.ps1 new file mode 100644 index 000000000000..93ec139b8e01 --- /dev/null +++ b/swaggerci/eventgrid/exports/New-AzEventGridSystemTopic.ps1 @@ -0,0 +1,244 @@ + +# ---------------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for license information. +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is regenerated. +# ---------------------------------------------------------------------------------- + +<# +.Synopsis +Asynchronously creates a new system topic with the specified parameters. +.Description +Asynchronously creates a new system topic with the specified parameters. +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Outputs +Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ISystemTopic +.Link +https://docs.microsoft.com/en-us/powershell/module/az.eventgrid/new-azeventgridsystemtopic +#> +function New-AzEventGridSystemTopic { +[OutputType([Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ISystemTopic])] +[CmdletBinding(DefaultParameterSetName='CreateExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(Mandatory)] + [Alias('SystemTopicName')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [System.String] + # Name of the system topic. + ${Name}, + + [Parameter(Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [System.String] + # The name of the resource group within the user's subscription. + ${ResourceGroupName}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] + [System.String] + # Subscription credentials that uniquely identify a Microsoft Azure subscription. + # The subscription ID forms part of the URI for every service call. + ${SubscriptionId}, + + [Parameter(Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [System.String] + # Location of the resource. + ${Location}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [System.String] + # The principal ID of resource identity. + ${IdentityPrincipalId}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [System.String] + # The tenant ID of resource. + ${IdentityTenantId}, + + [Parameter()] + [ArgumentCompleter([Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.IdentityType])] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.IdentityType] + # The type of managed identity used. + # The type 'SystemAssigned, UserAssigned' includes both an implicitly created identity and a set of user-assigned identities. + # The type 'None' will remove any identity. + ${IdentityType}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info(PossibleTypes=([Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IIdentityInfoUserAssignedIdentities]))] + [System.Collections.Hashtable] + # The list of user identities associated with the resource. + # The user identity dictionary key references will be ARM resource ids in the form:'/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ManagedIdentity/userAssignedIdentities/{identityName}'.This property is currently not used and reserved for future usage. + ${IdentityUserAssignedIdentity}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [System.String] + # Source for the system topic. + ${Source}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info(PossibleTypes=([Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITrackedResourceTags]))] + [System.Collections.Hashtable] + # Tags of the resource. + ${Tag}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [System.String] + # TopicType for the system topic. + ${TopicType}, + + [Parameter()] + [Alias('AzureRMContext', 'AzureCredential')] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Run the command as a job + ${AsJob}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Run the command asynchronously + ${NoWait}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Returns true when the command succeeds + ${PassThru}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + if ($null -eq [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion) { + [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion = $Host.Runspace.Version.ToString() + } + $preTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + if ($preTelemetryId -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId =(New-Guid).ToString() + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.module]::Instance.Telemetry.Invoke('Create', $MyInvocation, $parameterSet, $PSCmdlet) + } else { + $internalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + if ($internalCalledCmdlets -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $MyInvocation.MyCommand.Name + } else { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets += ',' + $MyInvocation.MyCommand.Name + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = 'internal' + } + + $mapping = @{ + CreateExpanded = 'Az.EventGrid.private\New-AzEventGridSystemTopic_CreateExpanded'; + } + if (('CreateExpanded') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { + $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } + + finally { + $backupTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + $backupInternalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + +} +end { + try { + $steppablePipeline.End() + + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $backupTelemetryId + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $backupInternalCalledCmdlets + if ($preTelemetryId -eq '') { + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.module]::Instance.Telemetry.Invoke('Send', $MyInvocation, $parameterSet, $PSCmdlet) + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $preTelemetryId + + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} +} diff --git a/swaggerci/eventgrid/exports/New-AzEventGridSystemTopicEventSubscription.ps1 b/swaggerci/eventgrid/exports/New-AzEventGridSystemTopicEventSubscription.ps1 new file mode 100644 index 000000000000..b9ce2948d6bf --- /dev/null +++ b/swaggerci/eventgrid/exports/New-AzEventGridSystemTopicEventSubscription.ps1 @@ -0,0 +1,322 @@ + +# ---------------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for license information. +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is regenerated. +# ---------------------------------------------------------------------------------- + +<# +.Synopsis +Asynchronously creates or updates an event subscription with the specified parameters. +Existing event subscriptions will be updated with this API. +.Description +Asynchronously creates or updates an event subscription with the specified parameters. +Existing event subscriptions will be updated with this API. +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.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. + +FILTERADVANCEDFILTER : An array of advanced filters that are used for filtering event subscriptions. + OperatorType : The operator type used for filtering, e.g., NumberIn, StringContains, BoolEquals and others. + [Key ]: The field/property in the event based on which you want to filter. +.Link +https://docs.microsoft.com/en-us/powershell/module/az.eventgrid/new-azeventgridsystemtopiceventsubscription +#> +function New-AzEventGridSystemTopicEventSubscription { +[OutputType([System.Boolean])] +[CmdletBinding(DefaultParameterSetName='CreateExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [System.String] + # Name of the event subscription to be created. + # Event subscription names must be between 3 and 100 characters in length and use alphanumeric letters only. + ${EventSubscriptionName}, + + [Parameter(Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [System.String] + # The name of the resource group within the user's subscription. + ${ResourceGroupName}, + + [Parameter(Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [System.String] + # Name of the system topic. + ${SystemTopicName}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] + [System.String] + # Subscription credentials that uniquely identify a Microsoft Azure subscription. + # The subscription ID forms part of the URI for every service call. + ${SubscriptionId}, + + [Parameter()] + [ArgumentCompleter([Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EventSubscriptionIdentityType])] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EventSubscriptionIdentityType] + # The type of managed identity used. + # The type 'SystemAssigned, UserAssigned' includes both an implicitly created identity and a set of user-assigned identities. + # The type 'None' will remove any identity. + ${DeadLetterWithResourceIdentityType}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [System.String] + # The user identity associated with the resource. + ${DeadLetterWithResourceIdentityUserAssignedIdentity}, + + [Parameter()] + [ArgumentCompleter([Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EndpointType])] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EndpointType] + # Type of the endpoint for the event subscription destination. + ${DeliveryWithResourceIdentityDestinationEndpointType}, + + [Parameter()] + [ArgumentCompleter([Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EventSubscriptionIdentityType])] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EventSubscriptionIdentityType] + # The type of managed identity used. + # The type 'SystemAssigned, UserAssigned' includes both an implicitly created identity and a set of user-assigned identities. + # The type 'None' will remove any identity. + ${DeliveryWithResourceIdentityType}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [System.String] + # The user identity associated with the resource. + ${DeliveryWithResourceIdentityUserAssignedIdentity}, + + [Parameter()] + [ArgumentCompleter([Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EndpointType])] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EndpointType] + # Type of the endpoint for the event subscription destination. + ${EndpointType}, + + [Parameter()] + [ArgumentCompleter([Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EventDeliverySchema])] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EventDeliverySchema] + # The event delivery schema for the event subscription. + ${EventDeliverySchema}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [System.DateTime] + # Expiration time of the event subscription. + ${ExpirationTimeUtc}, + + [Parameter()] + [AllowEmptyCollection()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IAdvancedFilter[]] + # An array of advanced filters that are used for filtering event subscriptions. + # To construct, see NOTES section for FILTERADVANCEDFILTER properties and create a hash table. + ${FilterAdvancedFilter}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [System.Management.Automation.SwitchParameter] + # Allows advanced filters to be evaluated against an array of values instead of expecting a singular value. + ${FilterEnableAdvancedFilteringOnArray}, + + [Parameter()] + [AllowEmptyCollection()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [System.String[]] + # A list of applicable event types that need to be part of the event subscription. + # If it is desired to subscribe to all default event types, set the IncludedEventTypes to null. + ${FilterIncludedEventType}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [System.Management.Automation.SwitchParameter] + # Specifies if the SubjectBeginsWith and SubjectEndsWith properties of the filtershould be compared in a case sensitive manner. + ${FilterIsSubjectCaseSensitive}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [System.String] + # An optional string to filter events for an event subscription based on a resource path prefix.The format of this depends on the publisher of the events.Wildcard characters are not supported in this path. + ${FilterSubjectBeginsWith}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [System.String] + # An optional string to filter events for an event subscription based on a resource path suffix.Wildcard characters are not supported in this path. + ${FilterSubjectEndsWith}, + + [Parameter()] + [AllowEmptyCollection()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [System.String[]] + # List of user defined labels. + ${Label}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [System.Int32] + # Time To Live (in minutes) for events. + ${RetryPolicyEventTimeToLiveInMinute}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [System.Int32] + # Maximum number of delivery retry attempts for events. + ${RetryPolicyMaxDeliveryAttempt}, + + [Parameter()] + [Alias('AzureRMContext', 'AzureCredential')] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Run the command as a job + ${AsJob}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Run the command asynchronously + ${NoWait}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Returns true when the command succeeds + ${PassThru}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + if ($null -eq [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion) { + [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion = $Host.Runspace.Version.ToString() + } + $preTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + if ($preTelemetryId -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId =(New-Guid).ToString() + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.module]::Instance.Telemetry.Invoke('Create', $MyInvocation, $parameterSet, $PSCmdlet) + } else { + $internalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + if ($internalCalledCmdlets -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $MyInvocation.MyCommand.Name + } else { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets += ',' + $MyInvocation.MyCommand.Name + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = 'internal' + } + + $mapping = @{ + CreateExpanded = 'Az.EventGrid.private\New-AzEventGridSystemTopicEventSubscription_CreateExpanded'; + } + if (('CreateExpanded') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { + $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } + + finally { + $backupTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + $backupInternalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + +} +end { + try { + $steppablePipeline.End() + + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $backupTelemetryId + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $backupInternalCalledCmdlets + if ($preTelemetryId -eq '') { + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.module]::Instance.Telemetry.Invoke('Send', $MyInvocation, $parameterSet, $PSCmdlet) + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $preTelemetryId + + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} +} diff --git a/swaggerci/eventgrid/exports/New-AzEventGridTopic.ps1 b/swaggerci/eventgrid/exports/New-AzEventGridTopic.ps1 new file mode 100644 index 000000000000..6df70a7cfb3f --- /dev/null +++ b/swaggerci/eventgrid/exports/New-AzEventGridTopic.ps1 @@ -0,0 +1,307 @@ + +# ---------------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for license information. +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is regenerated. +# ---------------------------------------------------------------------------------- + +<# +.Synopsis +Asynchronously creates a new topic with the specified parameters. +.Description +Asynchronously creates a new topic with the specified parameters. +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.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. + +INBOUNDIPRULE : This can be used to restrict traffic from specific IPs instead of all IPs. Note: These are considered only if PublicNetworkAccess is enabled. + [Action ]: Action to perform based on the match or no match of the IpMask. + [IPMask ]: IP Address in CIDR notation e.g., 10.0.0.0/8. +.Link +https://docs.microsoft.com/en-us/powershell/module/az.eventgrid/new-azeventgridtopic +#> +function New-AzEventGridTopic { +[OutputType([System.Boolean])] +[CmdletBinding(DefaultParameterSetName='CreateExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(Mandatory)] + [Alias('TopicName')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [System.String] + # Name of the topic. + ${Name}, + + [Parameter(Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [System.String] + # The name of the resource group within the user's subscription. + ${ResourceGroupName}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] + [System.String] + # Subscription credentials that uniquely identify a Microsoft Azure subscription. + # The subscription ID forms part of the URI for every service call. + ${SubscriptionId}, + + [Parameter(Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [System.String] + # Location of the resource. + ${Location}, + + [Parameter()] + [ArgumentCompleter([Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.DataResidencyBoundary])] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.DataResidencyBoundary] + # Data Residency Boundary of the resource. + ${DataResidencyBoundary}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [System.Management.Automation.SwitchParameter] + # This boolean is used to enable or disable local auth. + # Default value is false. + # When the property is set to true, only AAD token will be used to authenticate if user is allowed to publish to the topic. + ${DisableLocalAuth}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [System.String] + # Fully qualified name of the extended location. + ${ExtendedLocationName}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [System.String] + # Type of the extended location. + ${ExtendedLocationType}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [System.String] + # The principal ID of resource identity. + ${IdentityPrincipalId}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [System.String] + # The tenant ID of resource. + ${IdentityTenantId}, + + [Parameter()] + [ArgumentCompleter([Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.IdentityType])] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.IdentityType] + # The type of managed identity used. + # The type 'SystemAssigned, UserAssigned' includes both an implicitly created identity and a set of user-assigned identities. + # The type 'None' will remove any identity. + ${IdentityType}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info(PossibleTypes=([Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IIdentityInfoUserAssignedIdentities]))] + [System.Collections.Hashtable] + # The list of user identities associated with the resource. + # The user identity dictionary key references will be ARM resource ids in the form:'/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ManagedIdentity/userAssignedIdentities/{identityName}'.This property is currently not used and reserved for future usage. + ${IdentityUserAssignedIdentity}, + + [Parameter()] + [AllowEmptyCollection()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IInboundIPRule[]] + # This can be used to restrict traffic from specific IPs instead of all IPs. + # Note: These are considered only if PublicNetworkAccess is enabled. + # To construct, see NOTES section for INBOUNDIPRULE properties and create a hash table. + ${InboundIPRule}, + + [Parameter()] + [ArgumentCompleter([Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.InputSchema])] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.InputSchema] + # This determines the format that Event Grid should expect for incoming events published to the topic. + ${InputSchema}, + + [Parameter()] + [ArgumentCompleter([Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.ResourceKind])] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.ResourceKind] + # Kind of the resource. + ${Kind}, + + [Parameter()] + [ArgumentCompleter([Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.PublicNetworkAccess])] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.PublicNetworkAccess] + # This determines if traffic is allowed over public network. + # By default it is enabled. + # You can further restrict to specific IPs by configuring + ${PublicNetworkAccess}, + + [Parameter()] + [ArgumentCompleter([Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.Sku])] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.Sku] + # The Sku name of the resource. + # The possible values are: Basic or Premium. + ${SkuName}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info(PossibleTypes=([Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITrackedResourceTags]))] + [System.Collections.Hashtable] + # Tags of the resource. + ${Tag}, + + [Parameter()] + [Alias('AzureRMContext', 'AzureCredential')] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Run the command as a job + ${AsJob}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Run the command asynchronously + ${NoWait}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Returns true when the command succeeds + ${PassThru}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + if ($null -eq [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion) { + [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion = $Host.Runspace.Version.ToString() + } + $preTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + if ($preTelemetryId -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId =(New-Guid).ToString() + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.module]::Instance.Telemetry.Invoke('Create', $MyInvocation, $parameterSet, $PSCmdlet) + } else { + $internalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + if ($internalCalledCmdlets -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $MyInvocation.MyCommand.Name + } else { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets += ',' + $MyInvocation.MyCommand.Name + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = 'internal' + } + + $mapping = @{ + CreateExpanded = 'Az.EventGrid.private\New-AzEventGridTopic_CreateExpanded'; + } + if (('CreateExpanded') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { + $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } + + finally { + $backupTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + $backupInternalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + +} +end { + try { + $steppablePipeline.End() + + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $backupTelemetryId + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $backupInternalCalledCmdlets + if ($preTelemetryId -eq '') { + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.module]::Instance.Telemetry.Invoke('Send', $MyInvocation, $parameterSet, $PSCmdlet) + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $preTelemetryId + + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} +} diff --git a/swaggerci/eventgrid/exports/New-AzEventGridTopicEventSubscription.ps1 b/swaggerci/eventgrid/exports/New-AzEventGridTopicEventSubscription.ps1 new file mode 100644 index 000000000000..57b7717d19ac --- /dev/null +++ b/swaggerci/eventgrid/exports/New-AzEventGridTopicEventSubscription.ps1 @@ -0,0 +1,320 @@ + +# ---------------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for license information. +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is regenerated. +# ---------------------------------------------------------------------------------- + +<# +.Synopsis +Asynchronously creates a new event subscription or updates an existing event subscription. +.Description +Asynchronously creates a new event subscription or updates an existing event subscription. +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Outputs +Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscription +.Notes +COMPLEX PARAMETER PROPERTIES + +To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. + +FILTERADVANCEDFILTER : An array of advanced filters that are used for filtering event subscriptions. + OperatorType : The operator type used for filtering, e.g., NumberIn, StringContains, BoolEquals and others. + [Key ]: The field/property in the event based on which you want to filter. +.Link +https://docs.microsoft.com/en-us/powershell/module/az.eventgrid/new-azeventgridtopiceventsubscription +#> +function New-AzEventGridTopicEventSubscription { +[OutputType([Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscription])] +[CmdletBinding(DefaultParameterSetName='CreateExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [System.String] + # Name of the event subscription to be created. + # Event subscription names must be between 3 and 100 characters in length and use alphanumeric letters only. + ${EventSubscriptionName}, + + [Parameter(Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [System.String] + # The name of the resource group within the user's subscription. + ${ResourceGroupName}, + + [Parameter(Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [System.String] + # Name of the domain topic. + ${TopicName}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] + [System.String] + # Subscription credentials that uniquely identify a Microsoft Azure subscription. + # The subscription ID forms part of the URI for every service call. + ${SubscriptionId}, + + [Parameter()] + [ArgumentCompleter([Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EventSubscriptionIdentityType])] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EventSubscriptionIdentityType] + # The type of managed identity used. + # The type 'SystemAssigned, UserAssigned' includes both an implicitly created identity and a set of user-assigned identities. + # The type 'None' will remove any identity. + ${DeadLetterWithResourceIdentityType}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [System.String] + # The user identity associated with the resource. + ${DeadLetterWithResourceIdentityUserAssignedIdentity}, + + [Parameter()] + [ArgumentCompleter([Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EndpointType])] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EndpointType] + # Type of the endpoint for the event subscription destination. + ${DeliveryWithResourceIdentityDestinationEndpointType}, + + [Parameter()] + [ArgumentCompleter([Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EventSubscriptionIdentityType])] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EventSubscriptionIdentityType] + # The type of managed identity used. + # The type 'SystemAssigned, UserAssigned' includes both an implicitly created identity and a set of user-assigned identities. + # The type 'None' will remove any identity. + ${DeliveryWithResourceIdentityType}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [System.String] + # The user identity associated with the resource. + ${DeliveryWithResourceIdentityUserAssignedIdentity}, + + [Parameter()] + [ArgumentCompleter([Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EndpointType])] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EndpointType] + # Type of the endpoint for the event subscription destination. + ${EndpointType}, + + [Parameter()] + [ArgumentCompleter([Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EventDeliverySchema])] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EventDeliverySchema] + # The event delivery schema for the event subscription. + ${EventDeliverySchema}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [System.DateTime] + # Expiration time of the event subscription. + ${ExpirationTimeUtc}, + + [Parameter()] + [AllowEmptyCollection()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IAdvancedFilter[]] + # An array of advanced filters that are used for filtering event subscriptions. + # To construct, see NOTES section for FILTERADVANCEDFILTER properties and create a hash table. + ${FilterAdvancedFilter}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [System.Management.Automation.SwitchParameter] + # Allows advanced filters to be evaluated against an array of values instead of expecting a singular value. + ${FilterEnableAdvancedFilteringOnArray}, + + [Parameter()] + [AllowEmptyCollection()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [System.String[]] + # A list of applicable event types that need to be part of the event subscription. + # If it is desired to subscribe to all default event types, set the IncludedEventTypes to null. + ${FilterIncludedEventType}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [System.Management.Automation.SwitchParameter] + # Specifies if the SubjectBeginsWith and SubjectEndsWith properties of the filtershould be compared in a case sensitive manner. + ${FilterIsSubjectCaseSensitive}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [System.String] + # An optional string to filter events for an event subscription based on a resource path prefix.The format of this depends on the publisher of the events.Wildcard characters are not supported in this path. + ${FilterSubjectBeginsWith}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [System.String] + # An optional string to filter events for an event subscription based on a resource path suffix.Wildcard characters are not supported in this path. + ${FilterSubjectEndsWith}, + + [Parameter()] + [AllowEmptyCollection()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [System.String[]] + # List of user defined labels. + ${Label}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [System.Int32] + # Time To Live (in minutes) for events. + ${RetryPolicyEventTimeToLiveInMinute}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [System.Int32] + # Maximum number of delivery retry attempts for events. + ${RetryPolicyMaxDeliveryAttempt}, + + [Parameter()] + [Alias('AzureRMContext', 'AzureCredential')] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Run the command as a job + ${AsJob}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Run the command asynchronously + ${NoWait}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Returns true when the command succeeds + ${PassThru}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + if ($null -eq [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion) { + [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion = $Host.Runspace.Version.ToString() + } + $preTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + if ($preTelemetryId -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId =(New-Guid).ToString() + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.module]::Instance.Telemetry.Invoke('Create', $MyInvocation, $parameterSet, $PSCmdlet) + } else { + $internalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + if ($internalCalledCmdlets -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $MyInvocation.MyCommand.Name + } else { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets += ',' + $MyInvocation.MyCommand.Name + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = 'internal' + } + + $mapping = @{ + CreateExpanded = 'Az.EventGrid.private\New-AzEventGridTopicEventSubscription_CreateExpanded'; + } + if (('CreateExpanded') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { + $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } + + finally { + $backupTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + $backupInternalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + +} +end { + try { + $steppablePipeline.End() + + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $backupTelemetryId + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $backupInternalCalledCmdlets + if ($preTelemetryId -eq '') { + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.module]::Instance.Telemetry.Invoke('Send', $MyInvocation, $parameterSet, $PSCmdlet) + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $preTelemetryId + + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} +} diff --git a/swaggerci/eventgrid/exports/New-AzEventGridTopicKey.ps1 b/swaggerci/eventgrid/exports/New-AzEventGridTopicKey.ps1 new file mode 100644 index 000000000000..af0e80b91ad1 --- /dev/null +++ b/swaggerci/eventgrid/exports/New-AzEventGridTopicKey.ps1 @@ -0,0 +1,256 @@ + +# ---------------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for license information. +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is regenerated. +# ---------------------------------------------------------------------------------- + +<# +.Synopsis +Regenerate a shared access key for a topic. +.Description +Regenerate a shared access key for a topic. +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Inputs +Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITopicRegenerateKeyRequest +.Inputs +Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.IEventGridIdentity +.Outputs +Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITopicSharedAccessKeys +.Notes +COMPLEX PARAMETER PROPERTIES + +To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. + +INPUTOBJECT : Identity Parameter + [ChannelName ]: Name of the channel. + [DomainName ]: Name of the domain. + [DomainTopicName ]: Name of the topic. + [EventChannelName ]: Name of the event channel. + [EventSubscriptionName ]: Name of the event subscription. + [Id ]: Resource identity path + [Location ]: Name of the location. + [ParentName ]: The name of the parent resource (namely, either, the topic name, domain name, or partner namespace name). + [ParentType ]: The type of the parent resource. This can be either \'topics\', \'domains\', or \'partnerNamespaces\'. + [PartnerDestinationName ]: Name of the partner destination. + [PartnerNamespaceName ]: Name of the partner namespace. + [PartnerRegistrationName ]: Name of the partner registration. + [PartnerTopicName ]: Name of the partner topic. + [PrivateEndpointConnectionName ]: The name of the private endpoint connection connection. + [PrivateLinkResourceName ]: The name of private link resource. + [ProviderNamespace ]: Namespace of the provider of the topic. + [ResourceGroupName ]: The name of the resource group within the partners subscription. + [ResourceName ]: Name of the resource. + [ResourceTypeName ]: Name of the resource type. + [Scope ]: The scope of the event subscription. The scope can be a subscription, or a resource group, or a top level resource belonging to a resource provider namespace, or an EventGrid topic. For example, use '/subscriptions/{subscriptionId}/' for a subscription, '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}' for a resource group, and '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}' for a resource, and '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.EventGrid/topics/{topicName}' for an EventGrid topic. + [SubscriptionId ]: Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription ID forms part of the URI for every service call. + [SystemTopicName ]: Name of the system topic. + [TopicName ]: Name of the domain topic. + [TopicTypeName ]: Name of the topic type. + [VerifiedPartnerName ]: Name of the verified partner. + +REGENERATEKEYREQUEST : Topic regenerate share access key request + KeyName : Key name to regenerate key1 or key2 +.Link +https://docs.microsoft.com/en-us/powershell/module/az.eventgrid/new-azeventgridtopickey +#> +function New-AzEventGridTopicKey { +[OutputType([Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITopicSharedAccessKeys])] +[CmdletBinding(DefaultParameterSetName='RegenerateExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(ParameterSetName='Regenerate', Mandatory)] + [Parameter(ParameterSetName='RegenerateExpanded', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [System.String] + # The name of the resource group within the user's subscription. + ${ResourceGroupName}, + + [Parameter(ParameterSetName='Regenerate')] + [Parameter(ParameterSetName='RegenerateExpanded')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] + [System.String] + # Subscription credentials that uniquely identify a Microsoft Azure subscription. + # The subscription ID forms part of the URI for every service call. + ${SubscriptionId}, + + [Parameter(ParameterSetName='Regenerate', Mandatory)] + [Parameter(ParameterSetName='RegenerateExpanded', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [System.String] + # Name of the topic. + ${TopicName}, + + [Parameter(ParameterSetName='RegenerateViaIdentity', Mandatory, ValueFromPipeline)] + [Parameter(ParameterSetName='RegenerateViaIdentityExpanded', Mandatory, ValueFromPipeline)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.IEventGridIdentity] + # Identity Parameter + # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + ${InputObject}, + + [Parameter(ParameterSetName='Regenerate', Mandatory, ValueFromPipeline)] + [Parameter(ParameterSetName='RegenerateViaIdentity', Mandatory, ValueFromPipeline)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITopicRegenerateKeyRequest] + # Topic regenerate share access key request + # To construct, see NOTES section for REGENERATEKEYREQUEST properties and create a hash table. + ${RegenerateKeyRequest}, + + [Parameter(ParameterSetName='RegenerateExpanded', Mandatory)] + [Parameter(ParameterSetName='RegenerateViaIdentityExpanded', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [System.String] + # Key name to regenerate key1 or key2 + ${KeyName}, + + [Parameter()] + [Alias('AzureRMContext', 'AzureCredential')] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Run the command as a job + ${AsJob}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Run the command asynchronously + ${NoWait}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Returns true when the command succeeds + ${PassThru}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + if ($null -eq [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion) { + [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion = $Host.Runspace.Version.ToString() + } + $preTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + if ($preTelemetryId -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId =(New-Guid).ToString() + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.module]::Instance.Telemetry.Invoke('Create', $MyInvocation, $parameterSet, $PSCmdlet) + } else { + $internalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + if ($internalCalledCmdlets -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $MyInvocation.MyCommand.Name + } else { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets += ',' + $MyInvocation.MyCommand.Name + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = 'internal' + } + + $mapping = @{ + Regenerate = 'Az.EventGrid.private\New-AzEventGridTopicKey_Regenerate'; + RegenerateExpanded = 'Az.EventGrid.private\New-AzEventGridTopicKey_RegenerateExpanded'; + RegenerateViaIdentity = 'Az.EventGrid.private\New-AzEventGridTopicKey_RegenerateViaIdentity'; + RegenerateViaIdentityExpanded = 'Az.EventGrid.private\New-AzEventGridTopicKey_RegenerateViaIdentityExpanded'; + } + if (('Regenerate', 'RegenerateExpanded') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { + $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } + + finally { + $backupTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + $backupInternalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + +} +end { + try { + $steppablePipeline.End() + + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $backupTelemetryId + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $backupInternalCalledCmdlets + if ($preTelemetryId -eq '') { + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.module]::Instance.Telemetry.Invoke('Send', $MyInvocation, $parameterSet, $PSCmdlet) + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $preTelemetryId + + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} +} diff --git a/swaggerci/eventgrid/exports/ProxyCmdletDefinitions.ps1 b/swaggerci/eventgrid/exports/ProxyCmdletDefinitions.ps1 new file mode 100644 index 000000000000..234c1a7a36eb --- /dev/null +++ b/swaggerci/eventgrid/exports/ProxyCmdletDefinitions.ps1 @@ -0,0 +1,24084 @@ + +# ---------------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for license information. +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is regenerated. +# ---------------------------------------------------------------------------------- + +<# +.Synopsis +Get the full endpoint URL of a partner destination channel. +.Description +Get the full endpoint URL of a partner destination channel. +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Inputs +Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.IEventGridIdentity +.Outputs +System.String +.Notes +COMPLEX PARAMETER PROPERTIES + +To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. + +INPUTOBJECT : Identity Parameter + [ChannelName ]: Name of the channel. + [DomainName ]: Name of the domain. + [DomainTopicName ]: Name of the topic. + [EventChannelName ]: Name of the event channel. + [EventSubscriptionName ]: Name of the event subscription. + [Id ]: Resource identity path + [Location ]: Name of the location. + [ParentName ]: The name of the parent resource (namely, either, the topic name, domain name, or partner namespace name). + [ParentType ]: The type of the parent resource. This can be either \'topics\', \'domains\', or \'partnerNamespaces\'. + [PartnerDestinationName ]: Name of the partner destination. + [PartnerNamespaceName ]: Name of the partner namespace. + [PartnerRegistrationName ]: Name of the partner registration. + [PartnerTopicName ]: Name of the partner topic. + [PrivateEndpointConnectionName ]: The name of the private endpoint connection connection. + [PrivateLinkResourceName ]: The name of private link resource. + [ProviderNamespace ]: Namespace of the provider of the topic. + [ResourceGroupName ]: The name of the resource group within the partners subscription. + [ResourceName ]: Name of the resource. + [ResourceTypeName ]: Name of the resource type. + [Scope ]: The scope of the event subscription. The scope can be a subscription, or a resource group, or a top level resource belonging to a resource provider namespace, or an EventGrid topic. For example, use '/subscriptions/{subscriptionId}/' for a subscription, '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}' for a resource group, and '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}' for a resource, and '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.EventGrid/topics/{topicName}' for an EventGrid topic. + [SubscriptionId ]: Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription ID forms part of the URI for every service call. + [SystemTopicName ]: Name of the system topic. + [TopicName ]: Name of the domain topic. + [TopicTypeName ]: Name of the topic type. + [VerifiedPartnerName ]: Name of the verified partner. +.Link +https://docs.microsoft.com/en-us/powershell/module/az.eventgrid/get-azeventgridchannelfullurl +#> +function Get-AzEventGridChannelFullUrl { +[OutputType([System.String])] +[CmdletBinding(DefaultParameterSetName='Get', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(ParameterSetName='Get', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [System.String] + # Name of the Channel. + ${ChannelName}, + + [Parameter(ParameterSetName='Get', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [System.String] + # Name of the partner namespace. + ${PartnerNamespaceName}, + + [Parameter(ParameterSetName='Get', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [System.String] + # The name of the resource group within the partners subscription. + ${ResourceGroupName}, + + [Parameter(ParameterSetName='Get')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] + [System.String[]] + # Subscription credentials that uniquely identify a Microsoft Azure subscription. + # The subscription ID forms part of the URI for every service call. + ${SubscriptionId}, + + [Parameter(ParameterSetName='GetViaIdentity', Mandatory, ValueFromPipeline)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.IEventGridIdentity] + # Identity Parameter + # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + ${InputObject}, + + [Parameter()] + [Alias('AzureRMContext', 'AzureCredential')] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Returns true when the command succeeds + ${PassThru}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + if ($null -eq [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion) { + [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion = $Host.Runspace.Version.ToString() + } + $preTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + if ($preTelemetryId -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId =(New-Guid).ToString() + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.module]::Instance.Telemetry.Invoke('Create', $MyInvocation, $parameterSet, $PSCmdlet) + } else { + $internalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + if ($internalCalledCmdlets -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $MyInvocation.MyCommand.Name + } else { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets += ',' + $MyInvocation.MyCommand.Name + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = 'internal' + } + + $mapping = @{ + Get = 'Az.EventGrid.private\Get-AzEventGridChannelFullUrl_Get'; + GetViaIdentity = 'Az.EventGrid.private\Get-AzEventGridChannelFullUrl_GetViaIdentity'; + } + if (('Get') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { + $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } + + finally { + $backupTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + $backupInternalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + +} +end { + try { + $steppablePipeline.End() + + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $backupTelemetryId + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $backupInternalCalledCmdlets + if ($preTelemetryId -eq '') { + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.module]::Instance.Telemetry.Invoke('Send', $MyInvocation, $parameterSet, $PSCmdlet) + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $preTelemetryId + + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} +} + +<# +.Synopsis +Get properties of a channel. +.Description +Get properties of a channel. +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Inputs +Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.IEventGridIdentity +.Outputs +Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IChannel +.Notes +COMPLEX PARAMETER PROPERTIES + +To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. + +INPUTOBJECT : Identity Parameter + [ChannelName ]: Name of the channel. + [DomainName ]: Name of the domain. + [DomainTopicName ]: Name of the topic. + [EventChannelName ]: Name of the event channel. + [EventSubscriptionName ]: Name of the event subscription. + [Id ]: Resource identity path + [Location ]: Name of the location. + [ParentName ]: The name of the parent resource (namely, either, the topic name, domain name, or partner namespace name). + [ParentType ]: The type of the parent resource. This can be either \'topics\', \'domains\', or \'partnerNamespaces\'. + [PartnerDestinationName ]: Name of the partner destination. + [PartnerNamespaceName ]: Name of the partner namespace. + [PartnerRegistrationName ]: Name of the partner registration. + [PartnerTopicName ]: Name of the partner topic. + [PrivateEndpointConnectionName ]: The name of the private endpoint connection connection. + [PrivateLinkResourceName ]: The name of private link resource. + [ProviderNamespace ]: Namespace of the provider of the topic. + [ResourceGroupName ]: The name of the resource group within the partners subscription. + [ResourceName ]: Name of the resource. + [ResourceTypeName ]: Name of the resource type. + [Scope ]: The scope of the event subscription. The scope can be a subscription, or a resource group, or a top level resource belonging to a resource provider namespace, or an EventGrid topic. For example, use '/subscriptions/{subscriptionId}/' for a subscription, '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}' for a resource group, and '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}' for a resource, and '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.EventGrid/topics/{topicName}' for an EventGrid topic. + [SubscriptionId ]: Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription ID forms part of the URI for every service call. + [SystemTopicName ]: Name of the system topic. + [TopicName ]: Name of the domain topic. + [TopicTypeName ]: Name of the topic type. + [VerifiedPartnerName ]: Name of the verified partner. +.Link +https://docs.microsoft.com/en-us/powershell/module/az.eventgrid/get-azeventgridchannel +#> +function Get-AzEventGridChannel { +[OutputType([Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IChannel])] +[CmdletBinding(DefaultParameterSetName='List', PositionalBinding=$false)] +param( + [Parameter(ParameterSetName='Get', Mandatory)] + [Alias('ChannelName')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [System.String] + # Name of the channel. + ${Name}, + + [Parameter(ParameterSetName='Get', Mandatory)] + [Parameter(ParameterSetName='List', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [System.String] + # Name of the partner namespace. + ${PartnerNamespaceName}, + + [Parameter(ParameterSetName='Get', Mandatory)] + [Parameter(ParameterSetName='List', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [System.String] + # The name of the resource group within the partners subscription. + ${ResourceGroupName}, + + [Parameter(ParameterSetName='Get')] + [Parameter(ParameterSetName='List')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] + [System.String[]] + # Subscription credentials that uniquely identify a Microsoft Azure subscription. + # The subscription ID forms part of the URI for every service call. + ${SubscriptionId}, + + [Parameter(ParameterSetName='GetViaIdentity', Mandatory, ValueFromPipeline)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.IEventGridIdentity] + # Identity Parameter + # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + ${InputObject}, + + [Parameter(ParameterSetName='List')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Query')] + [System.String] + # The query used to filter the search results using OData syntax. + # Filtering is permitted on the 'name' property only and with limited number of OData operations. + # These operations are: the 'contains' function as well as the following logical operations: not, and, or, eq (for equal), and ne (for not equal). + # No arithmetic operations are supported. + # The following is a valid filter example: $filter=contains(namE, 'PATTERN') and name ne 'PATTERN-1'. + # The following is not a valid filter example: $filter=location eq 'westus'. + ${Filter}, + + [Parameter(ParameterSetName='List')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Query')] + [System.Int32] + # The number of results to return per page for the list operation. + # Valid range for top parameter is 1 to 100. + # If not specified, the default number of results to be returned is 20 items per page. + ${Top}, + + [Parameter()] + [Alias('AzureRMContext', 'AzureCredential')] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Returns true when the command succeeds + ${PassThru}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + if ($null -eq [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion) { + [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion = $Host.Runspace.Version.ToString() + } + $preTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + if ($preTelemetryId -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId =(New-Guid).ToString() + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.module]::Instance.Telemetry.Invoke('Create', $MyInvocation, $parameterSet, $PSCmdlet) + } else { + $internalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + if ($internalCalledCmdlets -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $MyInvocation.MyCommand.Name + } else { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets += ',' + $MyInvocation.MyCommand.Name + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = 'internal' + } + + $mapping = @{ + Get = 'Az.EventGrid.private\Get-AzEventGridChannel_Get'; + GetViaIdentity = 'Az.EventGrid.private\Get-AzEventGridChannel_GetViaIdentity'; + List = 'Az.EventGrid.private\Get-AzEventGridChannel_List'; + } + if (('Get', 'List') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { + $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } + + finally { + $backupTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + $backupInternalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + +} +end { + try { + $steppablePipeline.End() + + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $backupTelemetryId + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $backupInternalCalledCmdlets + if ($preTelemetryId -eq '') { + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.module]::Instance.Telemetry.Invoke('Send', $MyInvocation, $parameterSet, $PSCmdlet) + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $preTelemetryId + + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} +} + +<# +.Synopsis +Get all delivery attributes for an event subscription for domain. +.Description +Get all delivery attributes for an event subscription for domain. +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Inputs +Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.IEventGridIdentity +.Outputs +Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDeliveryAttributeMapping +.Notes +COMPLEX PARAMETER PROPERTIES + +To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. + +INPUTOBJECT : Identity Parameter + [ChannelName ]: Name of the channel. + [DomainName ]: Name of the domain. + [DomainTopicName ]: Name of the topic. + [EventChannelName ]: Name of the event channel. + [EventSubscriptionName ]: Name of the event subscription. + [Id ]: Resource identity path + [Location ]: Name of the location. + [ParentName ]: The name of the parent resource (namely, either, the topic name, domain name, or partner namespace name). + [ParentType ]: The type of the parent resource. This can be either \'topics\', \'domains\', or \'partnerNamespaces\'. + [PartnerDestinationName ]: Name of the partner destination. + [PartnerNamespaceName ]: Name of the partner namespace. + [PartnerRegistrationName ]: Name of the partner registration. + [PartnerTopicName ]: Name of the partner topic. + [PrivateEndpointConnectionName ]: The name of the private endpoint connection connection. + [PrivateLinkResourceName ]: The name of private link resource. + [ProviderNamespace ]: Namespace of the provider of the topic. + [ResourceGroupName ]: The name of the resource group within the partners subscription. + [ResourceName ]: Name of the resource. + [ResourceTypeName ]: Name of the resource type. + [Scope ]: The scope of the event subscription. The scope can be a subscription, or a resource group, or a top level resource belonging to a resource provider namespace, or an EventGrid topic. For example, use '/subscriptions/{subscriptionId}/' for a subscription, '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}' for a resource group, and '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}' for a resource, and '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.EventGrid/topics/{topicName}' for an EventGrid topic. + [SubscriptionId ]: Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription ID forms part of the URI for every service call. + [SystemTopicName ]: Name of the system topic. + [TopicName ]: Name of the domain topic. + [TopicTypeName ]: Name of the topic type. + [VerifiedPartnerName ]: Name of the verified partner. +.Link +https://docs.microsoft.com/en-us/powershell/module/az.eventgrid/get-azeventgriddomaineventsubscriptiondeliveryattribute +#> +function Get-AzEventGridDomainEventSubscriptionDeliveryAttribute { +[OutputType([Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDeliveryAttributeMapping])] +[CmdletBinding(DefaultParameterSetName='Get', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(ParameterSetName='Get', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [System.String] + # Name of the domain topic. + ${DomainName}, + + [Parameter(ParameterSetName='Get', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [System.String] + # Name of the event subscription. + ${EventSubscriptionName}, + + [Parameter(ParameterSetName='Get', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [System.String] + # The name of the resource group within the user's subscription. + ${ResourceGroupName}, + + [Parameter(ParameterSetName='Get')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] + [System.String[]] + # Subscription credentials that uniquely identify a Microsoft Azure subscription. + # The subscription ID forms part of the URI for every service call. + ${SubscriptionId}, + + [Parameter(ParameterSetName='GetViaIdentity', Mandatory, ValueFromPipeline)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.IEventGridIdentity] + # Identity Parameter + # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + ${InputObject}, + + [Parameter()] + [Alias('AzureRMContext', 'AzureCredential')] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Returns true when the command succeeds + ${PassThru}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + if ($null -eq [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion) { + [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion = $Host.Runspace.Version.ToString() + } + $preTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + if ($preTelemetryId -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId =(New-Guid).ToString() + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.module]::Instance.Telemetry.Invoke('Create', $MyInvocation, $parameterSet, $PSCmdlet) + } else { + $internalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + if ($internalCalledCmdlets -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $MyInvocation.MyCommand.Name + } else { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets += ',' + $MyInvocation.MyCommand.Name + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = 'internal' + } + + $mapping = @{ + Get = 'Az.EventGrid.private\Get-AzEventGridDomainEventSubscriptionDeliveryAttribute_Get'; + GetViaIdentity = 'Az.EventGrid.private\Get-AzEventGridDomainEventSubscriptionDeliveryAttribute_GetViaIdentity'; + } + if (('Get') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { + $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } + + finally { + $backupTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + $backupInternalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + +} +end { + try { + $steppablePipeline.End() + + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $backupTelemetryId + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $backupInternalCalledCmdlets + if ($preTelemetryId -eq '') { + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.module]::Instance.Telemetry.Invoke('Send', $MyInvocation, $parameterSet, $PSCmdlet) + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $preTelemetryId + + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} +} + +<# +.Synopsis +Get the full endpoint URL for an event subscription for domain. +.Description +Get the full endpoint URL for an event subscription for domain. +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Inputs +Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.IEventGridIdentity +.Outputs +System.String +.Notes +COMPLEX PARAMETER PROPERTIES + +To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. + +INPUTOBJECT : Identity Parameter + [ChannelName ]: Name of the channel. + [DomainName ]: Name of the domain. + [DomainTopicName ]: Name of the topic. + [EventChannelName ]: Name of the event channel. + [EventSubscriptionName ]: Name of the event subscription. + [Id ]: Resource identity path + [Location ]: Name of the location. + [ParentName ]: The name of the parent resource (namely, either, the topic name, domain name, or partner namespace name). + [ParentType ]: The type of the parent resource. This can be either \'topics\', \'domains\', or \'partnerNamespaces\'. + [PartnerDestinationName ]: Name of the partner destination. + [PartnerNamespaceName ]: Name of the partner namespace. + [PartnerRegistrationName ]: Name of the partner registration. + [PartnerTopicName ]: Name of the partner topic. + [PrivateEndpointConnectionName ]: The name of the private endpoint connection connection. + [PrivateLinkResourceName ]: The name of private link resource. + [ProviderNamespace ]: Namespace of the provider of the topic. + [ResourceGroupName ]: The name of the resource group within the partners subscription. + [ResourceName ]: Name of the resource. + [ResourceTypeName ]: Name of the resource type. + [Scope ]: The scope of the event subscription. The scope can be a subscription, or a resource group, or a top level resource belonging to a resource provider namespace, or an EventGrid topic. For example, use '/subscriptions/{subscriptionId}/' for a subscription, '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}' for a resource group, and '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}' for a resource, and '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.EventGrid/topics/{topicName}' for an EventGrid topic. + [SubscriptionId ]: Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription ID forms part of the URI for every service call. + [SystemTopicName ]: Name of the system topic. + [TopicName ]: Name of the domain topic. + [TopicTypeName ]: Name of the topic type. + [VerifiedPartnerName ]: Name of the verified partner. +.Link +https://docs.microsoft.com/en-us/powershell/module/az.eventgrid/get-azeventgriddomaineventsubscriptionfullurl +#> +function Get-AzEventGridDomainEventSubscriptionFullUrl { +[OutputType([System.String])] +[CmdletBinding(DefaultParameterSetName='Get', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(ParameterSetName='Get', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [System.String] + # Name of the domain topic. + ${DomainName}, + + [Parameter(ParameterSetName='Get', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [System.String] + # Name of the event subscription. + ${EventSubscriptionName}, + + [Parameter(ParameterSetName='Get', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [System.String] + # The name of the resource group within the user's subscription. + ${ResourceGroupName}, + + [Parameter(ParameterSetName='Get')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] + [System.String[]] + # Subscription credentials that uniquely identify a Microsoft Azure subscription. + # The subscription ID forms part of the URI for every service call. + ${SubscriptionId}, + + [Parameter(ParameterSetName='GetViaIdentity', Mandatory, ValueFromPipeline)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.IEventGridIdentity] + # Identity Parameter + # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + ${InputObject}, + + [Parameter()] + [Alias('AzureRMContext', 'AzureCredential')] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Returns true when the command succeeds + ${PassThru}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + if ($null -eq [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion) { + [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion = $Host.Runspace.Version.ToString() + } + $preTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + if ($preTelemetryId -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId =(New-Guid).ToString() + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.module]::Instance.Telemetry.Invoke('Create', $MyInvocation, $parameterSet, $PSCmdlet) + } else { + $internalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + if ($internalCalledCmdlets -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $MyInvocation.MyCommand.Name + } else { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets += ',' + $MyInvocation.MyCommand.Name + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = 'internal' + } + + $mapping = @{ + Get = 'Az.EventGrid.private\Get-AzEventGridDomainEventSubscriptionFullUrl_Get'; + GetViaIdentity = 'Az.EventGrid.private\Get-AzEventGridDomainEventSubscriptionFullUrl_GetViaIdentity'; + } + if (('Get') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { + $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } + + finally { + $backupTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + $backupInternalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + +} +end { + try { + $steppablePipeline.End() + + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $backupTelemetryId + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $backupInternalCalledCmdlets + if ($preTelemetryId -eq '') { + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.module]::Instance.Telemetry.Invoke('Send', $MyInvocation, $parameterSet, $PSCmdlet) + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $preTelemetryId + + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} +} + +<# +.Synopsis +Get properties of an event subscription of a domain. +.Description +Get properties of an event subscription of a domain. +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Inputs +Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.IEventGridIdentity +.Outputs +Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscription +.Notes +COMPLEX PARAMETER PROPERTIES + +To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. + +INPUTOBJECT : Identity Parameter + [ChannelName ]: Name of the channel. + [DomainName ]: Name of the domain. + [DomainTopicName ]: Name of the topic. + [EventChannelName ]: Name of the event channel. + [EventSubscriptionName ]: Name of the event subscription. + [Id ]: Resource identity path + [Location ]: Name of the location. + [ParentName ]: The name of the parent resource (namely, either, the topic name, domain name, or partner namespace name). + [ParentType ]: The type of the parent resource. This can be either \'topics\', \'domains\', or \'partnerNamespaces\'. + [PartnerDestinationName ]: Name of the partner destination. + [PartnerNamespaceName ]: Name of the partner namespace. + [PartnerRegistrationName ]: Name of the partner registration. + [PartnerTopicName ]: Name of the partner topic. + [PrivateEndpointConnectionName ]: The name of the private endpoint connection connection. + [PrivateLinkResourceName ]: The name of private link resource. + [ProviderNamespace ]: Namespace of the provider of the topic. + [ResourceGroupName ]: The name of the resource group within the partners subscription. + [ResourceName ]: Name of the resource. + [ResourceTypeName ]: Name of the resource type. + [Scope ]: The scope of the event subscription. The scope can be a subscription, or a resource group, or a top level resource belonging to a resource provider namespace, or an EventGrid topic. For example, use '/subscriptions/{subscriptionId}/' for a subscription, '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}' for a resource group, and '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}' for a resource, and '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.EventGrid/topics/{topicName}' for an EventGrid topic. + [SubscriptionId ]: Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription ID forms part of the URI for every service call. + [SystemTopicName ]: Name of the system topic. + [TopicName ]: Name of the domain topic. + [TopicTypeName ]: Name of the topic type. + [VerifiedPartnerName ]: Name of the verified partner. +.Link +https://docs.microsoft.com/en-us/powershell/module/az.eventgrid/get-azeventgriddomaineventsubscription +#> +function Get-AzEventGridDomainEventSubscription { +[OutputType([Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscription])] +[CmdletBinding(DefaultParameterSetName='List', PositionalBinding=$false)] +param( + [Parameter(ParameterSetName='Get', Mandatory)] + [Parameter(ParameterSetName='List', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [System.String] + # Name of the partner topic. + ${DomainName}, + + [Parameter(ParameterSetName='Get', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [System.String] + # Name of the event subscription to be found. + # Event subscription names must be between 3 and 100 characters in length and use alphanumeric letters only. + ${EventSubscriptionName}, + + [Parameter(ParameterSetName='Get', Mandatory)] + [Parameter(ParameterSetName='List', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [System.String] + # The name of the resource group within the user's subscription. + ${ResourceGroupName}, + + [Parameter(ParameterSetName='Get')] + [Parameter(ParameterSetName='List')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] + [System.String[]] + # Subscription credentials that uniquely identify a Microsoft Azure subscription. + # The subscription ID forms part of the URI for every service call. + ${SubscriptionId}, + + [Parameter(ParameterSetName='GetViaIdentity', Mandatory, ValueFromPipeline)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.IEventGridIdentity] + # Identity Parameter + # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + ${InputObject}, + + [Parameter()] + [Alias('AzureRMContext', 'AzureCredential')] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Returns true when the command succeeds + ${PassThru}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + if ($null -eq [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion) { + [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion = $Host.Runspace.Version.ToString() + } + $preTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + if ($preTelemetryId -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId =(New-Guid).ToString() + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.module]::Instance.Telemetry.Invoke('Create', $MyInvocation, $parameterSet, $PSCmdlet) + } else { + $internalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + if ($internalCalledCmdlets -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $MyInvocation.MyCommand.Name + } else { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets += ',' + $MyInvocation.MyCommand.Name + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = 'internal' + } + + $mapping = @{ + Get = 'Az.EventGrid.private\Get-AzEventGridDomainEventSubscription_Get'; + GetViaIdentity = 'Az.EventGrid.private\Get-AzEventGridDomainEventSubscription_GetViaIdentity'; + List = 'Az.EventGrid.private\Get-AzEventGridDomainEventSubscription_List'; + } + if (('Get', 'List') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { + $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } + + finally { + $backupTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + $backupInternalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + +} +end { + try { + $steppablePipeline.End() + + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $backupTelemetryId + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $backupInternalCalledCmdlets + if ($preTelemetryId -eq '') { + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.module]::Instance.Telemetry.Invoke('Send', $MyInvocation, $parameterSet, $PSCmdlet) + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $preTelemetryId + + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} +} + +<# +.Synopsis +List the two keys used to publish to a domain. +.Description +List the two keys used to publish to a domain. +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Outputs +Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDomainSharedAccessKeys +.Link +https://docs.microsoft.com/en-us/powershell/module/az.eventgrid/get-azeventgriddomainsharedaccesskey +#> +function Get-AzEventGridDomainSharedAccessKey { +[OutputType([Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDomainSharedAccessKeys])] +[CmdletBinding(DefaultParameterSetName='List', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [System.String] + # Name of the domain. + ${DomainName}, + + [Parameter(Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [System.String] + # The name of the resource group within the user's subscription. + ${ResourceGroupName}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] + [System.String[]] + # Subscription credentials that uniquely identify a Microsoft Azure subscription. + # The subscription ID forms part of the URI for every service call. + ${SubscriptionId}, + + [Parameter()] + [Alias('AzureRMContext', 'AzureCredential')] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Returns true when the command succeeds + ${PassThru}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + if ($null -eq [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion) { + [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion = $Host.Runspace.Version.ToString() + } + $preTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + if ($preTelemetryId -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId =(New-Guid).ToString() + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.module]::Instance.Telemetry.Invoke('Create', $MyInvocation, $parameterSet, $PSCmdlet) + } else { + $internalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + if ($internalCalledCmdlets -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $MyInvocation.MyCommand.Name + } else { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets += ',' + $MyInvocation.MyCommand.Name + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = 'internal' + } + + $mapping = @{ + List = 'Az.EventGrid.private\Get-AzEventGridDomainSharedAccessKey_List'; + } + if (('List') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { + $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } + + finally { + $backupTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + $backupInternalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + +} +end { + try { + $steppablePipeline.End() + + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $backupTelemetryId + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $backupInternalCalledCmdlets + if ($preTelemetryId -eq '') { + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.module]::Instance.Telemetry.Invoke('Send', $MyInvocation, $parameterSet, $PSCmdlet) + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $preTelemetryId + + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} +} + +<# +.Synopsis +Get all delivery attributes for an event subscription for domain topic. +.Description +Get all delivery attributes for an event subscription for domain topic. +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Inputs +Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.IEventGridIdentity +.Outputs +Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDeliveryAttributeMapping +.Notes +COMPLEX PARAMETER PROPERTIES + +To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. + +INPUTOBJECT : Identity Parameter + [ChannelName ]: Name of the channel. + [DomainName ]: Name of the domain. + [DomainTopicName ]: Name of the topic. + [EventChannelName ]: Name of the event channel. + [EventSubscriptionName ]: Name of the event subscription. + [Id ]: Resource identity path + [Location ]: Name of the location. + [ParentName ]: The name of the parent resource (namely, either, the topic name, domain name, or partner namespace name). + [ParentType ]: The type of the parent resource. This can be either \'topics\', \'domains\', or \'partnerNamespaces\'. + [PartnerDestinationName ]: Name of the partner destination. + [PartnerNamespaceName ]: Name of the partner namespace. + [PartnerRegistrationName ]: Name of the partner registration. + [PartnerTopicName ]: Name of the partner topic. + [PrivateEndpointConnectionName ]: The name of the private endpoint connection connection. + [PrivateLinkResourceName ]: The name of private link resource. + [ProviderNamespace ]: Namespace of the provider of the topic. + [ResourceGroupName ]: The name of the resource group within the partners subscription. + [ResourceName ]: Name of the resource. + [ResourceTypeName ]: Name of the resource type. + [Scope ]: The scope of the event subscription. The scope can be a subscription, or a resource group, or a top level resource belonging to a resource provider namespace, or an EventGrid topic. For example, use '/subscriptions/{subscriptionId}/' for a subscription, '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}' for a resource group, and '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}' for a resource, and '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.EventGrid/topics/{topicName}' for an EventGrid topic. + [SubscriptionId ]: Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription ID forms part of the URI for every service call. + [SystemTopicName ]: Name of the system topic. + [TopicName ]: Name of the domain topic. + [TopicTypeName ]: Name of the topic type. + [VerifiedPartnerName ]: Name of the verified partner. +.Link +https://docs.microsoft.com/en-us/powershell/module/az.eventgrid/get-azeventgriddomaintopiceventsubscriptiondeliveryattribute +#> +function Get-AzEventGridDomainTopicEventSubscriptionDeliveryAttribute { +[OutputType([Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDeliveryAttributeMapping])] +[CmdletBinding(DefaultParameterSetName='Get', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(ParameterSetName='Get', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [System.String] + # Name of the top level domain. + ${DomainName}, + + [Parameter(ParameterSetName='Get', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [System.String] + # Name of the event subscription. + ${EventSubscriptionName}, + + [Parameter(ParameterSetName='Get', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [System.String] + # The name of the resource group within the user's subscription. + ${ResourceGroupName}, + + [Parameter(ParameterSetName='Get')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] + [System.String[]] + # Subscription credentials that uniquely identify a Microsoft Azure subscription. + # The subscription ID forms part of the URI for every service call. + ${SubscriptionId}, + + [Parameter(ParameterSetName='Get', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [System.String] + # Name of the domain topic. + ${TopicName}, + + [Parameter(ParameterSetName='GetViaIdentity', Mandatory, ValueFromPipeline)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.IEventGridIdentity] + # Identity Parameter + # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + ${InputObject}, + + [Parameter()] + [Alias('AzureRMContext', 'AzureCredential')] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Returns true when the command succeeds + ${PassThru}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + if ($null -eq [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion) { + [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion = $Host.Runspace.Version.ToString() + } + $preTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + if ($preTelemetryId -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId =(New-Guid).ToString() + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.module]::Instance.Telemetry.Invoke('Create', $MyInvocation, $parameterSet, $PSCmdlet) + } else { + $internalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + if ($internalCalledCmdlets -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $MyInvocation.MyCommand.Name + } else { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets += ',' + $MyInvocation.MyCommand.Name + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = 'internal' + } + + $mapping = @{ + Get = 'Az.EventGrid.private\Get-AzEventGridDomainTopicEventSubscriptionDeliveryAttribute_Get'; + GetViaIdentity = 'Az.EventGrid.private\Get-AzEventGridDomainTopicEventSubscriptionDeliveryAttribute_GetViaIdentity'; + } + if (('Get') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { + $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } + + finally { + $backupTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + $backupInternalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + +} +end { + try { + $steppablePipeline.End() + + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $backupTelemetryId + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $backupInternalCalledCmdlets + if ($preTelemetryId -eq '') { + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.module]::Instance.Telemetry.Invoke('Send', $MyInvocation, $parameterSet, $PSCmdlet) + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $preTelemetryId + + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} +} + +<# +.Synopsis +Get the full endpoint URL for a nested event subscription for domain topic. +.Description +Get the full endpoint URL for a nested event subscription for domain topic. +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Inputs +Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.IEventGridIdentity +.Outputs +System.String +.Notes +COMPLEX PARAMETER PROPERTIES + +To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. + +INPUTOBJECT : Identity Parameter + [ChannelName ]: Name of the channel. + [DomainName ]: Name of the domain. + [DomainTopicName ]: Name of the topic. + [EventChannelName ]: Name of the event channel. + [EventSubscriptionName ]: Name of the event subscription. + [Id ]: Resource identity path + [Location ]: Name of the location. + [ParentName ]: The name of the parent resource (namely, either, the topic name, domain name, or partner namespace name). + [ParentType ]: The type of the parent resource. This can be either \'topics\', \'domains\', or \'partnerNamespaces\'. + [PartnerDestinationName ]: Name of the partner destination. + [PartnerNamespaceName ]: Name of the partner namespace. + [PartnerRegistrationName ]: Name of the partner registration. + [PartnerTopicName ]: Name of the partner topic. + [PrivateEndpointConnectionName ]: The name of the private endpoint connection connection. + [PrivateLinkResourceName ]: The name of private link resource. + [ProviderNamespace ]: Namespace of the provider of the topic. + [ResourceGroupName ]: The name of the resource group within the partners subscription. + [ResourceName ]: Name of the resource. + [ResourceTypeName ]: Name of the resource type. + [Scope ]: The scope of the event subscription. The scope can be a subscription, or a resource group, or a top level resource belonging to a resource provider namespace, or an EventGrid topic. For example, use '/subscriptions/{subscriptionId}/' for a subscription, '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}' for a resource group, and '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}' for a resource, and '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.EventGrid/topics/{topicName}' for an EventGrid topic. + [SubscriptionId ]: Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription ID forms part of the URI for every service call. + [SystemTopicName ]: Name of the system topic. + [TopicName ]: Name of the domain topic. + [TopicTypeName ]: Name of the topic type. + [VerifiedPartnerName ]: Name of the verified partner. +.Link +https://docs.microsoft.com/en-us/powershell/module/az.eventgrid/get-azeventgriddomaintopiceventsubscriptionfullurl +#> +function Get-AzEventGridDomainTopicEventSubscriptionFullUrl { +[OutputType([System.String])] +[CmdletBinding(DefaultParameterSetName='Get', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(ParameterSetName='Get', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [System.String] + # Name of the top level domain. + ${DomainName}, + + [Parameter(ParameterSetName='Get', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [System.String] + # Name of the event subscription. + ${EventSubscriptionName}, + + [Parameter(ParameterSetName='Get', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [System.String] + # The name of the resource group within the user's subscription. + ${ResourceGroupName}, + + [Parameter(ParameterSetName='Get')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] + [System.String[]] + # Subscription credentials that uniquely identify a Microsoft Azure subscription. + # The subscription ID forms part of the URI for every service call. + ${SubscriptionId}, + + [Parameter(ParameterSetName='Get', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [System.String] + # Name of the domain topic. + ${TopicName}, + + [Parameter(ParameterSetName='GetViaIdentity', Mandatory, ValueFromPipeline)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.IEventGridIdentity] + # Identity Parameter + # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + ${InputObject}, + + [Parameter()] + [Alias('AzureRMContext', 'AzureCredential')] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Returns true when the command succeeds + ${PassThru}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + if ($null -eq [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion) { + [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion = $Host.Runspace.Version.ToString() + } + $preTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + if ($preTelemetryId -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId =(New-Guid).ToString() + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.module]::Instance.Telemetry.Invoke('Create', $MyInvocation, $parameterSet, $PSCmdlet) + } else { + $internalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + if ($internalCalledCmdlets -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $MyInvocation.MyCommand.Name + } else { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets += ',' + $MyInvocation.MyCommand.Name + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = 'internal' + } + + $mapping = @{ + Get = 'Az.EventGrid.private\Get-AzEventGridDomainTopicEventSubscriptionFullUrl_Get'; + GetViaIdentity = 'Az.EventGrid.private\Get-AzEventGridDomainTopicEventSubscriptionFullUrl_GetViaIdentity'; + } + if (('Get') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { + $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } + + finally { + $backupTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + $backupInternalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + +} +end { + try { + $steppablePipeline.End() + + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $backupTelemetryId + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $backupInternalCalledCmdlets + if ($preTelemetryId -eq '') { + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.module]::Instance.Telemetry.Invoke('Send', $MyInvocation, $parameterSet, $PSCmdlet) + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $preTelemetryId + + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} +} + +<# +.Synopsis +Get properties of a nested event subscription for a domain topic. +.Description +Get properties of a nested event subscription for a domain topic. +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Inputs +Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.IEventGridIdentity +.Outputs +Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscription +.Notes +COMPLEX PARAMETER PROPERTIES + +To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. + +INPUTOBJECT : Identity Parameter + [ChannelName ]: Name of the channel. + [DomainName ]: Name of the domain. + [DomainTopicName ]: Name of the topic. + [EventChannelName ]: Name of the event channel. + [EventSubscriptionName ]: Name of the event subscription. + [Id ]: Resource identity path + [Location ]: Name of the location. + [ParentName ]: The name of the parent resource (namely, either, the topic name, domain name, or partner namespace name). + [ParentType ]: The type of the parent resource. This can be either \'topics\', \'domains\', or \'partnerNamespaces\'. + [PartnerDestinationName ]: Name of the partner destination. + [PartnerNamespaceName ]: Name of the partner namespace. + [PartnerRegistrationName ]: Name of the partner registration. + [PartnerTopicName ]: Name of the partner topic. + [PrivateEndpointConnectionName ]: The name of the private endpoint connection connection. + [PrivateLinkResourceName ]: The name of private link resource. + [ProviderNamespace ]: Namespace of the provider of the topic. + [ResourceGroupName ]: The name of the resource group within the partners subscription. + [ResourceName ]: Name of the resource. + [ResourceTypeName ]: Name of the resource type. + [Scope ]: The scope of the event subscription. The scope can be a subscription, or a resource group, or a top level resource belonging to a resource provider namespace, or an EventGrid topic. For example, use '/subscriptions/{subscriptionId}/' for a subscription, '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}' for a resource group, and '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}' for a resource, and '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.EventGrid/topics/{topicName}' for an EventGrid topic. + [SubscriptionId ]: Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription ID forms part of the URI for every service call. + [SystemTopicName ]: Name of the system topic. + [TopicName ]: Name of the domain topic. + [TopicTypeName ]: Name of the topic type. + [VerifiedPartnerName ]: Name of the verified partner. +.Link +https://docs.microsoft.com/en-us/powershell/module/az.eventgrid/get-azeventgriddomaintopiceventsubscription +#> +function Get-AzEventGridDomainTopicEventSubscription { +[OutputType([Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscription])] +[CmdletBinding(DefaultParameterSetName='List', PositionalBinding=$false)] +param( + [Parameter(ParameterSetName='Get', Mandatory)] + [Parameter(ParameterSetName='List', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [System.String] + # Name of the top level domain. + ${DomainName}, + + [Parameter(ParameterSetName='Get', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [System.String] + # Name of the event subscription. + ${EventSubscriptionName}, + + [Parameter(ParameterSetName='Get', Mandatory)] + [Parameter(ParameterSetName='List', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [System.String] + # The name of the resource group within the user's subscription. + ${ResourceGroupName}, + + [Parameter(ParameterSetName='Get')] + [Parameter(ParameterSetName='List')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] + [System.String[]] + # Subscription credentials that uniquely identify a Microsoft Azure subscription. + # The subscription ID forms part of the URI for every service call. + ${SubscriptionId}, + + [Parameter(ParameterSetName='Get', Mandatory)] + [Parameter(ParameterSetName='List', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [System.String] + # Name of the domain topic. + ${TopicName}, + + [Parameter(ParameterSetName='GetViaIdentity', Mandatory, ValueFromPipeline)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.IEventGridIdentity] + # Identity Parameter + # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + ${InputObject}, + + [Parameter()] + [Alias('AzureRMContext', 'AzureCredential')] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Returns true when the command succeeds + ${PassThru}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + if ($null -eq [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion) { + [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion = $Host.Runspace.Version.ToString() + } + $preTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + if ($preTelemetryId -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId =(New-Guid).ToString() + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.module]::Instance.Telemetry.Invoke('Create', $MyInvocation, $parameterSet, $PSCmdlet) + } else { + $internalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + if ($internalCalledCmdlets -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $MyInvocation.MyCommand.Name + } else { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets += ',' + $MyInvocation.MyCommand.Name + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = 'internal' + } + + $mapping = @{ + Get = 'Az.EventGrid.private\Get-AzEventGridDomainTopicEventSubscription_Get'; + GetViaIdentity = 'Az.EventGrid.private\Get-AzEventGridDomainTopicEventSubscription_GetViaIdentity'; + List = 'Az.EventGrid.private\Get-AzEventGridDomainTopicEventSubscription_List'; + } + if (('Get', 'List') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { + $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } + + finally { + $backupTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + $backupInternalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + +} +end { + try { + $steppablePipeline.End() + + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $backupTelemetryId + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $backupInternalCalledCmdlets + if ($preTelemetryId -eq '') { + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.module]::Instance.Telemetry.Invoke('Send', $MyInvocation, $parameterSet, $PSCmdlet) + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $preTelemetryId + + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} +} + +<# +.Synopsis +Get properties of a domain topic. +.Description +Get properties of a domain topic. +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Inputs +Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.IEventGridIdentity +.Outputs +Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDomainTopic +.Notes +COMPLEX PARAMETER PROPERTIES + +To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. + +INPUTOBJECT : Identity Parameter + [ChannelName ]: Name of the channel. + [DomainName ]: Name of the domain. + [DomainTopicName ]: Name of the topic. + [EventChannelName ]: Name of the event channel. + [EventSubscriptionName ]: Name of the event subscription. + [Id ]: Resource identity path + [Location ]: Name of the location. + [ParentName ]: The name of the parent resource (namely, either, the topic name, domain name, or partner namespace name). + [ParentType ]: The type of the parent resource. This can be either \'topics\', \'domains\', or \'partnerNamespaces\'. + [PartnerDestinationName ]: Name of the partner destination. + [PartnerNamespaceName ]: Name of the partner namespace. + [PartnerRegistrationName ]: Name of the partner registration. + [PartnerTopicName ]: Name of the partner topic. + [PrivateEndpointConnectionName ]: The name of the private endpoint connection connection. + [PrivateLinkResourceName ]: The name of private link resource. + [ProviderNamespace ]: Namespace of the provider of the topic. + [ResourceGroupName ]: The name of the resource group within the partners subscription. + [ResourceName ]: Name of the resource. + [ResourceTypeName ]: Name of the resource type. + [Scope ]: The scope of the event subscription. The scope can be a subscription, or a resource group, or a top level resource belonging to a resource provider namespace, or an EventGrid topic. For example, use '/subscriptions/{subscriptionId}/' for a subscription, '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}' for a resource group, and '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}' for a resource, and '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.EventGrid/topics/{topicName}' for an EventGrid topic. + [SubscriptionId ]: Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription ID forms part of the URI for every service call. + [SystemTopicName ]: Name of the system topic. + [TopicName ]: Name of the domain topic. + [TopicTypeName ]: Name of the topic type. + [VerifiedPartnerName ]: Name of the verified partner. +.Link +https://docs.microsoft.com/en-us/powershell/module/az.eventgrid/get-azeventgriddomaintopic +#> +function Get-AzEventGridDomainTopic { +[OutputType([Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDomainTopic])] +[CmdletBinding(DefaultParameterSetName='List', PositionalBinding=$false)] +param( + [Parameter(ParameterSetName='Get', Mandatory)] + [Parameter(ParameterSetName='List', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [System.String] + # Name of the domain. + ${DomainName}, + + [Parameter(ParameterSetName='Get', Mandatory)] + [Alias('DomainTopicName')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [System.String] + # Name of the topic. + ${Name}, + + [Parameter(ParameterSetName='Get', Mandatory)] + [Parameter(ParameterSetName='List', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [System.String] + # The name of the resource group within the user's subscription. + ${ResourceGroupName}, + + [Parameter(ParameterSetName='Get')] + [Parameter(ParameterSetName='List')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] + [System.String[]] + # Subscription credentials that uniquely identify a Microsoft Azure subscription. + # The subscription ID forms part of the URI for every service call. + ${SubscriptionId}, + + [Parameter(ParameterSetName='GetViaIdentity', Mandatory, ValueFromPipeline)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.IEventGridIdentity] + # Identity Parameter + # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + ${InputObject}, + + [Parameter(ParameterSetName='List')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Query')] + [System.String] + # The query used to filter the search results using OData syntax. + # Filtering is permitted on the 'name' property only and with limited number of OData operations. + # These operations are: the 'contains' function as well as the following logical operations: not, and, or, eq (for equal), and ne (for not equal). + # No arithmetic operations are supported. + # The following is a valid filter example: $filter=contains(namE, 'PATTERN') and name ne 'PATTERN-1'. + # The following is not a valid filter example: $filter=location eq 'westus'. + ${Filter}, + + [Parameter(ParameterSetName='List')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Query')] + [System.Int32] + # The number of results to return per page for the list operation. + # Valid range for top parameter is 1 to 100. + # If not specified, the default number of results to be returned is 20 items per page. + ${Top}, + + [Parameter()] + [Alias('AzureRMContext', 'AzureCredential')] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Returns true when the command succeeds + ${PassThru}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + if ($null -eq [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion) { + [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion = $Host.Runspace.Version.ToString() + } + $preTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + if ($preTelemetryId -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId =(New-Guid).ToString() + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.module]::Instance.Telemetry.Invoke('Create', $MyInvocation, $parameterSet, $PSCmdlet) + } else { + $internalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + if ($internalCalledCmdlets -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $MyInvocation.MyCommand.Name + } else { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets += ',' + $MyInvocation.MyCommand.Name + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = 'internal' + } + + $mapping = @{ + Get = 'Az.EventGrid.private\Get-AzEventGridDomainTopic_Get'; + GetViaIdentity = 'Az.EventGrid.private\Get-AzEventGridDomainTopic_GetViaIdentity'; + List = 'Az.EventGrid.private\Get-AzEventGridDomainTopic_List'; + } + if (('Get', 'List') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { + $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } + + finally { + $backupTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + $backupInternalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + +} +end { + try { + $steppablePipeline.End() + + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $backupTelemetryId + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $backupInternalCalledCmdlets + if ($preTelemetryId -eq '') { + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.module]::Instance.Telemetry.Invoke('Send', $MyInvocation, $parameterSet, $PSCmdlet) + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $preTelemetryId + + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} +} + +<# +.Synopsis +Get properties of a domain. +.Description +Get properties of a domain. +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Inputs +Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.IEventGridIdentity +.Outputs +Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDomain +.Notes +COMPLEX PARAMETER PROPERTIES + +To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. + +INPUTOBJECT : Identity Parameter + [ChannelName ]: Name of the channel. + [DomainName ]: Name of the domain. + [DomainTopicName ]: Name of the topic. + [EventChannelName ]: Name of the event channel. + [EventSubscriptionName ]: Name of the event subscription. + [Id ]: Resource identity path + [Location ]: Name of the location. + [ParentName ]: The name of the parent resource (namely, either, the topic name, domain name, or partner namespace name). + [ParentType ]: The type of the parent resource. This can be either \'topics\', \'domains\', or \'partnerNamespaces\'. + [PartnerDestinationName ]: Name of the partner destination. + [PartnerNamespaceName ]: Name of the partner namespace. + [PartnerRegistrationName ]: Name of the partner registration. + [PartnerTopicName ]: Name of the partner topic. + [PrivateEndpointConnectionName ]: The name of the private endpoint connection connection. + [PrivateLinkResourceName ]: The name of private link resource. + [ProviderNamespace ]: Namespace of the provider of the topic. + [ResourceGroupName ]: The name of the resource group within the partners subscription. + [ResourceName ]: Name of the resource. + [ResourceTypeName ]: Name of the resource type. + [Scope ]: The scope of the event subscription. The scope can be a subscription, or a resource group, or a top level resource belonging to a resource provider namespace, or an EventGrid topic. For example, use '/subscriptions/{subscriptionId}/' for a subscription, '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}' for a resource group, and '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}' for a resource, and '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.EventGrid/topics/{topicName}' for an EventGrid topic. + [SubscriptionId ]: Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription ID forms part of the URI for every service call. + [SystemTopicName ]: Name of the system topic. + [TopicName ]: Name of the domain topic. + [TopicTypeName ]: Name of the topic type. + [VerifiedPartnerName ]: Name of the verified partner. +.Link +https://docs.microsoft.com/en-us/powershell/module/az.eventgrid/get-azeventgriddomain +#> +function Get-AzEventGridDomain { +[OutputType([Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDomain])] +[CmdletBinding(DefaultParameterSetName='List', PositionalBinding=$false)] +param( + [Parameter(ParameterSetName='Get', Mandatory)] + [Alias('DomainName')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [System.String] + # Name of the domain. + ${Name}, + + [Parameter(ParameterSetName='Get', Mandatory)] + [Parameter(ParameterSetName='List1', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [System.String] + # The name of the resource group within the user's subscription. + ${ResourceGroupName}, + + [Parameter(ParameterSetName='Get')] + [Parameter(ParameterSetName='List')] + [Parameter(ParameterSetName='List1')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] + [System.String[]] + # Subscription credentials that uniquely identify a Microsoft Azure subscription. + # The subscription ID forms part of the URI for every service call. + ${SubscriptionId}, + + [Parameter(ParameterSetName='GetViaIdentity', Mandatory, ValueFromPipeline)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.IEventGridIdentity] + # 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.EventGrid.Category('Query')] + [System.String] + # The query used to filter the search results using OData syntax. + # Filtering is permitted on the 'name' property only and with limited number of OData operations. + # These operations are: the 'contains' function as well as the following logical operations: not, and, or, eq (for equal), and ne (for not equal). + # No arithmetic operations are supported. + # The following is a valid filter example: $filter=contains(namE, 'PATTERN') and name ne 'PATTERN-1'. + # The following is not a valid filter example: $filter=location eq 'westus'. + ${Filter}, + + [Parameter(ParameterSetName='List')] + [Parameter(ParameterSetName='List1')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Query')] + [System.Int32] + # The number of results to return per page for the list operation. + # Valid range for top parameter is 1 to 100. + # If not specified, the default number of results to be returned is 20 items per page. + ${Top}, + + [Parameter()] + [Alias('AzureRMContext', 'AzureCredential')] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Returns true when the command succeeds + ${PassThru}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + if ($null -eq [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion) { + [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion = $Host.Runspace.Version.ToString() + } + $preTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + if ($preTelemetryId -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId =(New-Guid).ToString() + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.module]::Instance.Telemetry.Invoke('Create', $MyInvocation, $parameterSet, $PSCmdlet) + } else { + $internalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + if ($internalCalledCmdlets -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $MyInvocation.MyCommand.Name + } else { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets += ',' + $MyInvocation.MyCommand.Name + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = 'internal' + } + + $mapping = @{ + Get = 'Az.EventGrid.private\Get-AzEventGridDomain_Get'; + GetViaIdentity = 'Az.EventGrid.private\Get-AzEventGridDomain_GetViaIdentity'; + List = 'Az.EventGrid.private\Get-AzEventGridDomain_List'; + List1 = 'Az.EventGrid.private\Get-AzEventGridDomain_List1'; + } + if (('Get', 'List', 'List1') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { + $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } + + finally { + $backupTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + $backupInternalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + +} +end { + try { + $steppablePipeline.End() + + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $backupTelemetryId + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $backupInternalCalledCmdlets + if ($preTelemetryId -eq '') { + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.module]::Instance.Telemetry.Invoke('Send', $MyInvocation, $parameterSet, $PSCmdlet) + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $preTelemetryId + + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} +} + +<# +.Synopsis +Get properties of an event channel. +.Description +Get properties of an event channel. +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Inputs +Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.IEventGridIdentity +.Outputs +Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventChannel +.Notes +COMPLEX PARAMETER PROPERTIES + +To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. + +INPUTOBJECT : Identity Parameter + [ChannelName ]: Name of the channel. + [DomainName ]: Name of the domain. + [DomainTopicName ]: Name of the topic. + [EventChannelName ]: Name of the event channel. + [EventSubscriptionName ]: Name of the event subscription. + [Id ]: Resource identity path + [Location ]: Name of the location. + [ParentName ]: The name of the parent resource (namely, either, the topic name, domain name, or partner namespace name). + [ParentType ]: The type of the parent resource. This can be either \'topics\', \'domains\', or \'partnerNamespaces\'. + [PartnerDestinationName ]: Name of the partner destination. + [PartnerNamespaceName ]: Name of the partner namespace. + [PartnerRegistrationName ]: Name of the partner registration. + [PartnerTopicName ]: Name of the partner topic. + [PrivateEndpointConnectionName ]: The name of the private endpoint connection connection. + [PrivateLinkResourceName ]: The name of private link resource. + [ProviderNamespace ]: Namespace of the provider of the topic. + [ResourceGroupName ]: The name of the resource group within the partners subscription. + [ResourceName ]: Name of the resource. + [ResourceTypeName ]: Name of the resource type. + [Scope ]: The scope of the event subscription. The scope can be a subscription, or a resource group, or a top level resource belonging to a resource provider namespace, or an EventGrid topic. For example, use '/subscriptions/{subscriptionId}/' for a subscription, '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}' for a resource group, and '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}' for a resource, and '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.EventGrid/topics/{topicName}' for an EventGrid topic. + [SubscriptionId ]: Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription ID forms part of the URI for every service call. + [SystemTopicName ]: Name of the system topic. + [TopicName ]: Name of the domain topic. + [TopicTypeName ]: Name of the topic type. + [VerifiedPartnerName ]: Name of the verified partner. +.Link +https://docs.microsoft.com/en-us/powershell/module/az.eventgrid/get-azeventgrideventchannel +#> +function Get-AzEventGridEventChannel { +[OutputType([Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventChannel])] +[CmdletBinding(DefaultParameterSetName='List', PositionalBinding=$false)] +param( + [Parameter(ParameterSetName='Get', Mandatory)] + [Alias('EventChannelName')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [System.String] + # Name of the event channel. + ${Name}, + + [Parameter(ParameterSetName='Get', Mandatory)] + [Parameter(ParameterSetName='List', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [System.String] + # Name of the partner namespace. + ${PartnerNamespaceName}, + + [Parameter(ParameterSetName='Get', Mandatory)] + [Parameter(ParameterSetName='List', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [System.String] + # The name of the resource group within the user's subscription. + ${ResourceGroupName}, + + [Parameter(ParameterSetName='Get')] + [Parameter(ParameterSetName='List')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] + [System.String[]] + # Subscription credentials that uniquely identify a Microsoft Azure subscription. + # The subscription ID forms part of the URI for every service call. + ${SubscriptionId}, + + [Parameter(ParameterSetName='GetViaIdentity', Mandatory, ValueFromPipeline)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.IEventGridIdentity] + # Identity Parameter + # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + ${InputObject}, + + [Parameter(ParameterSetName='List')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Query')] + [System.String] + # The query used to filter the search results using OData syntax. + # Filtering is permitted on the 'name' property only and with limited number of OData operations. + # These operations are: the 'contains' function as well as the following logical operations: not, and, or, eq (for equal), and ne (for not equal). + # No arithmetic operations are supported. + # The following is a valid filter example: $filter=contains(namE, 'PATTERN') and name ne 'PATTERN-1'. + # The following is not a valid filter example: $filter=location eq 'westus'. + ${Filter}, + + [Parameter(ParameterSetName='List')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Query')] + [System.Int32] + # The number of results to return per page for the list operation. + # Valid range for top parameter is 1 to 100. + # If not specified, the default number of results to be returned is 20 items per page. + ${Top}, + + [Parameter()] + [Alias('AzureRMContext', 'AzureCredential')] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Returns true when the command succeeds + ${PassThru}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + if ($null -eq [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion) { + [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion = $Host.Runspace.Version.ToString() + } + $preTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + if ($preTelemetryId -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId =(New-Guid).ToString() + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.module]::Instance.Telemetry.Invoke('Create', $MyInvocation, $parameterSet, $PSCmdlet) + } else { + $internalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + if ($internalCalledCmdlets -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $MyInvocation.MyCommand.Name + } else { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets += ',' + $MyInvocation.MyCommand.Name + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = 'internal' + } + + $mapping = @{ + Get = 'Az.EventGrid.private\Get-AzEventGridEventChannel_Get'; + GetViaIdentity = 'Az.EventGrid.private\Get-AzEventGridEventChannel_GetViaIdentity'; + List = 'Az.EventGrid.private\Get-AzEventGridEventChannel_List'; + } + if (('Get', 'List') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { + $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } + + finally { + $backupTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + $backupInternalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + +} +end { + try { + $steppablePipeline.End() + + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $backupTelemetryId + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $backupInternalCalledCmdlets + if ($preTelemetryId -eq '') { + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.module]::Instance.Telemetry.Invoke('Send', $MyInvocation, $parameterSet, $PSCmdlet) + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $preTelemetryId + + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} +} + +<# +.Synopsis +Get all delivery attributes for an event subscription. +.Description +Get all delivery attributes for an event subscription. +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Inputs +Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.IEventGridIdentity +.Outputs +Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDeliveryAttributeMapping +.Notes +COMPLEX PARAMETER PROPERTIES + +To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. + +INPUTOBJECT : Identity Parameter + [ChannelName ]: Name of the channel. + [DomainName ]: Name of the domain. + [DomainTopicName ]: Name of the topic. + [EventChannelName ]: Name of the event channel. + [EventSubscriptionName ]: Name of the event subscription. + [Id ]: Resource identity path + [Location ]: Name of the location. + [ParentName ]: The name of the parent resource (namely, either, the topic name, domain name, or partner namespace name). + [ParentType ]: The type of the parent resource. This can be either \'topics\', \'domains\', or \'partnerNamespaces\'. + [PartnerDestinationName ]: Name of the partner destination. + [PartnerNamespaceName ]: Name of the partner namespace. + [PartnerRegistrationName ]: Name of the partner registration. + [PartnerTopicName ]: Name of the partner topic. + [PrivateEndpointConnectionName ]: The name of the private endpoint connection connection. + [PrivateLinkResourceName ]: The name of private link resource. + [ProviderNamespace ]: Namespace of the provider of the topic. + [ResourceGroupName ]: The name of the resource group within the partners subscription. + [ResourceName ]: Name of the resource. + [ResourceTypeName ]: Name of the resource type. + [Scope ]: The scope of the event subscription. The scope can be a subscription, or a resource group, or a top level resource belonging to a resource provider namespace, or an EventGrid topic. For example, use '/subscriptions/{subscriptionId}/' for a subscription, '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}' for a resource group, and '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}' for a resource, and '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.EventGrid/topics/{topicName}' for an EventGrid topic. + [SubscriptionId ]: Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription ID forms part of the URI for every service call. + [SystemTopicName ]: Name of the system topic. + [TopicName ]: Name of the domain topic. + [TopicTypeName ]: Name of the topic type. + [VerifiedPartnerName ]: Name of the verified partner. +.Link +https://docs.microsoft.com/en-us/powershell/module/az.eventgrid/get-azeventgrideventsubscriptiondeliveryattribute +#> +function Get-AzEventGridEventSubscriptionDeliveryAttribute { +[OutputType([Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDeliveryAttributeMapping])] +[CmdletBinding(DefaultParameterSetName='Get', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(ParameterSetName='Get', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [System.String] + # Name of the event subscription. + ${EventSubscriptionName}, + + [Parameter(ParameterSetName='Get', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [System.String] + # The scope of the event subscription. + # The scope can be a subscription, or a resource group, or a top level resource belonging to a resource provider namespace, or an EventGrid topic. + # For example, use '/subscriptions/{subscriptionId}/' for a subscription, '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}' for a resource group, and '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}' for a resource, and '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.EventGrid/topics/{topicName}' for an EventGrid topic. + ${Scope}, + + [Parameter(ParameterSetName='GetViaIdentity', Mandatory, ValueFromPipeline)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.IEventGridIdentity] + # Identity Parameter + # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + ${InputObject}, + + [Parameter()] + [Alias('AzureRMContext', 'AzureCredential')] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Returns true when the command succeeds + ${PassThru}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + if ($null -eq [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion) { + [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion = $Host.Runspace.Version.ToString() + } + $preTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + if ($preTelemetryId -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId =(New-Guid).ToString() + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.module]::Instance.Telemetry.Invoke('Create', $MyInvocation, $parameterSet, $PSCmdlet) + } else { + $internalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + if ($internalCalledCmdlets -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $MyInvocation.MyCommand.Name + } else { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets += ',' + $MyInvocation.MyCommand.Name + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = 'internal' + } + + $mapping = @{ + Get = 'Az.EventGrid.private\Get-AzEventGridEventSubscriptionDeliveryAttribute_Get'; + GetViaIdentity = 'Az.EventGrid.private\Get-AzEventGridEventSubscriptionDeliveryAttribute_GetViaIdentity'; + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } + + finally { + $backupTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + $backupInternalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + +} +end { + try { + $steppablePipeline.End() + + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $backupTelemetryId + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $backupInternalCalledCmdlets + if ($preTelemetryId -eq '') { + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.module]::Instance.Telemetry.Invoke('Send', $MyInvocation, $parameterSet, $PSCmdlet) + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $preTelemetryId + + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} +} + +<# +.Synopsis +Get the full endpoint URL for an event subscription. +.Description +Get the full endpoint URL for an event subscription. +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Inputs +Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.IEventGridIdentity +.Outputs +System.String +.Notes +COMPLEX PARAMETER PROPERTIES + +To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. + +INPUTOBJECT : Identity Parameter + [ChannelName ]: Name of the channel. + [DomainName ]: Name of the domain. + [DomainTopicName ]: Name of the topic. + [EventChannelName ]: Name of the event channel. + [EventSubscriptionName ]: Name of the event subscription. + [Id ]: Resource identity path + [Location ]: Name of the location. + [ParentName ]: The name of the parent resource (namely, either, the topic name, domain name, or partner namespace name). + [ParentType ]: The type of the parent resource. This can be either \'topics\', \'domains\', or \'partnerNamespaces\'. + [PartnerDestinationName ]: Name of the partner destination. + [PartnerNamespaceName ]: Name of the partner namespace. + [PartnerRegistrationName ]: Name of the partner registration. + [PartnerTopicName ]: Name of the partner topic. + [PrivateEndpointConnectionName ]: The name of the private endpoint connection connection. + [PrivateLinkResourceName ]: The name of private link resource. + [ProviderNamespace ]: Namespace of the provider of the topic. + [ResourceGroupName ]: The name of the resource group within the partners subscription. + [ResourceName ]: Name of the resource. + [ResourceTypeName ]: Name of the resource type. + [Scope ]: The scope of the event subscription. The scope can be a subscription, or a resource group, or a top level resource belonging to a resource provider namespace, or an EventGrid topic. For example, use '/subscriptions/{subscriptionId}/' for a subscription, '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}' for a resource group, and '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}' for a resource, and '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.EventGrid/topics/{topicName}' for an EventGrid topic. + [SubscriptionId ]: Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription ID forms part of the URI for every service call. + [SystemTopicName ]: Name of the system topic. + [TopicName ]: Name of the domain topic. + [TopicTypeName ]: Name of the topic type. + [VerifiedPartnerName ]: Name of the verified partner. +.Link +https://docs.microsoft.com/en-us/powershell/module/az.eventgrid/get-azeventgrideventsubscriptionfullurl +#> +function Get-AzEventGridEventSubscriptionFullUrl { +[OutputType([System.String])] +[CmdletBinding(DefaultParameterSetName='Get', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(ParameterSetName='Get', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [System.String] + # Name of the event subscription. + ${EventSubscriptionName}, + + [Parameter(ParameterSetName='Get', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [System.String] + # The scope of the event subscription. + # The scope can be a subscription, or a resource group, or a top level resource belonging to a resource provider namespace, or an EventGrid topic. + # For example, use '/subscriptions/{subscriptionId}/' for a subscription, '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}' for a resource group, and '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}' for a resource, and '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.EventGrid/topics/{topicName}' for an EventGrid topic. + ${Scope}, + + [Parameter(ParameterSetName='GetViaIdentity', Mandatory, ValueFromPipeline)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.IEventGridIdentity] + # Identity Parameter + # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + ${InputObject}, + + [Parameter()] + [Alias('AzureRMContext', 'AzureCredential')] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Returns true when the command succeeds + ${PassThru}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + if ($null -eq [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion) { + [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion = $Host.Runspace.Version.ToString() + } + $preTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + if ($preTelemetryId -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId =(New-Guid).ToString() + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.module]::Instance.Telemetry.Invoke('Create', $MyInvocation, $parameterSet, $PSCmdlet) + } else { + $internalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + if ($internalCalledCmdlets -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $MyInvocation.MyCommand.Name + } else { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets += ',' + $MyInvocation.MyCommand.Name + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = 'internal' + } + + $mapping = @{ + Get = 'Az.EventGrid.private\Get-AzEventGridEventSubscriptionFullUrl_Get'; + GetViaIdentity = 'Az.EventGrid.private\Get-AzEventGridEventSubscriptionFullUrl_GetViaIdentity'; + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } + + finally { + $backupTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + $backupInternalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + +} +end { + try { + $steppablePipeline.End() + + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $backupTelemetryId + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $backupInternalCalledCmdlets + if ($preTelemetryId -eq '') { + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.module]::Instance.Telemetry.Invoke('Send', $MyInvocation, $parameterSet, $PSCmdlet) + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $preTelemetryId + + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} +} + +<# +.Synopsis +List all aggregated global event subscriptions under a specific Azure subscription. +.Description +List all aggregated global event subscriptions under a specific Azure subscription. +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Outputs +Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscription +.Link +https://docs.microsoft.com/en-us/powershell/module/az.eventgrid/get-azeventgrideventsubscriptionglobal +#> +function Get-AzEventGridEventSubscriptionGlobal { +[OutputType([Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscription])] +[CmdletBinding(DefaultParameterSetName='List', PositionalBinding=$false)] +param( + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] + [System.String[]] + # Subscription credentials that uniquely identify a Microsoft Azure subscription. + # The subscription ID forms part of the URI for every service call. + ${SubscriptionId}, + + [Parameter(ParameterSetName='List1', Mandatory)] + [Parameter(ParameterSetName='List3', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [System.String] + # Name of the topic type. + ${TopicTypeName}, + + [Parameter(ParameterSetName='List2', Mandatory)] + [Parameter(ParameterSetName='List3', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [System.String] + # The name of the resource group within the user's subscription. + ${ResourceGroupName}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Query')] + [System.String] + # The query used to filter the search results using OData syntax. + # Filtering is permitted on the 'name' property only and with limited number of OData operations. + # These operations are: the 'contains' function as well as the following logical operations: not, and, or, eq (for equal), and ne (for not equal). + # No arithmetic operations are supported. + # The following is a valid filter example: $filter=contains(namE, 'PATTERN') and name ne 'PATTERN-1'. + # The following is not a valid filter example: $filter=location eq 'westus'. + ${Filter}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Query')] + [System.Int32] + # The number of results to return per page for the list operation. + # Valid range for top parameter is 1 to 100. + # If not specified, the default number of results to be returned is 20 items per page. + ${Top}, + + [Parameter()] + [Alias('AzureRMContext', 'AzureCredential')] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Returns true when the command succeeds + ${PassThru}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + if ($null -eq [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion) { + [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion = $Host.Runspace.Version.ToString() + } + $preTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + if ($preTelemetryId -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId =(New-Guid).ToString() + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.module]::Instance.Telemetry.Invoke('Create', $MyInvocation, $parameterSet, $PSCmdlet) + } else { + $internalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + if ($internalCalledCmdlets -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $MyInvocation.MyCommand.Name + } else { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets += ',' + $MyInvocation.MyCommand.Name + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = 'internal' + } + + $mapping = @{ + List = 'Az.EventGrid.private\Get-AzEventGridEventSubscriptionGlobal_List'; + List1 = 'Az.EventGrid.private\Get-AzEventGridEventSubscriptionGlobal_List1'; + List2 = 'Az.EventGrid.private\Get-AzEventGridEventSubscriptionGlobal_List2'; + List3 = 'Az.EventGrid.private\Get-AzEventGridEventSubscriptionGlobal_List3'; + } + if (('List', 'List1', 'List2', 'List3') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { + $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } + + finally { + $backupTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + $backupInternalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + +} +end { + try { + $steppablePipeline.End() + + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $backupTelemetryId + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $backupInternalCalledCmdlets + if ($preTelemetryId -eq '') { + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.module]::Instance.Telemetry.Invoke('Send', $MyInvocation, $parameterSet, $PSCmdlet) + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $preTelemetryId + + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} +} + +<# +.Synopsis +List all event subscriptions from the given location under a specific Azure subscription. +.Description +List all event subscriptions from the given location under a specific Azure subscription. +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Outputs +Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscription +.Link +https://docs.microsoft.com/en-us/powershell/module/az.eventgrid/get-azeventgrideventsubscriptionregional +#> +function Get-AzEventGridEventSubscriptionRegional { +[OutputType([Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscription])] +[CmdletBinding(DefaultParameterSetName='List', PositionalBinding=$false)] +param( + [Parameter(Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [System.String] + # Name of the location. + ${Location}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] + [System.String[]] + # Subscription credentials that uniquely identify a Microsoft Azure subscription. + # The subscription ID forms part of the URI for every service call. + ${SubscriptionId}, + + [Parameter(ParameterSetName='List1', Mandatory)] + [Parameter(ParameterSetName='List3', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [System.String] + # The name of the resource group within the user's subscription. + ${ResourceGroupName}, + + [Parameter(ParameterSetName='List2', Mandatory)] + [Parameter(ParameterSetName='List3', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [System.String] + # Name of the topic type. + ${TopicTypeName}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Query')] + [System.String] + # The query used to filter the search results using OData syntax. + # Filtering is permitted on the 'name' property only and with limited number of OData operations. + # These operations are: the 'contains' function as well as the following logical operations: not, and, or, eq (for equal), and ne (for not equal). + # No arithmetic operations are supported. + # The following is a valid filter example: $filter=contains(namE, 'PATTERN') and name ne 'PATTERN-1'. + # The following is not a valid filter example: $filter=location eq 'westus'. + ${Filter}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Query')] + [System.Int32] + # The number of results to return per page for the list operation. + # Valid range for top parameter is 1 to 100. + # If not specified, the default number of results to be returned is 20 items per page. + ${Top}, + + [Parameter()] + [Alias('AzureRMContext', 'AzureCredential')] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Returns true when the command succeeds + ${PassThru}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + if ($null -eq [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion) { + [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion = $Host.Runspace.Version.ToString() + } + $preTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + if ($preTelemetryId -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId =(New-Guid).ToString() + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.module]::Instance.Telemetry.Invoke('Create', $MyInvocation, $parameterSet, $PSCmdlet) + } else { + $internalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + if ($internalCalledCmdlets -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $MyInvocation.MyCommand.Name + } else { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets += ',' + $MyInvocation.MyCommand.Name + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = 'internal' + } + + $mapping = @{ + List = 'Az.EventGrid.private\Get-AzEventGridEventSubscriptionRegional_List'; + List1 = 'Az.EventGrid.private\Get-AzEventGridEventSubscriptionRegional_List1'; + List2 = 'Az.EventGrid.private\Get-AzEventGridEventSubscriptionRegional_List2'; + List3 = 'Az.EventGrid.private\Get-AzEventGridEventSubscriptionRegional_List3'; + } + if (('List', 'List1', 'List2', 'List3') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { + $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } + + finally { + $backupTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + $backupInternalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + +} +end { + try { + $steppablePipeline.End() + + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $backupTelemetryId + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $backupInternalCalledCmdlets + if ($preTelemetryId -eq '') { + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.module]::Instance.Telemetry.Invoke('Send', $MyInvocation, $parameterSet, $PSCmdlet) + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $preTelemetryId + + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} +} + +<# +.Synopsis +Get properties of an event subscription. +.Description +Get properties of an event subscription. +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Inputs +Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.IEventGridIdentity +.Outputs +Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscription +.Notes +COMPLEX PARAMETER PROPERTIES + +To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. + +INPUTOBJECT : Identity Parameter + [ChannelName ]: Name of the channel. + [DomainName ]: Name of the domain. + [DomainTopicName ]: Name of the topic. + [EventChannelName ]: Name of the event channel. + [EventSubscriptionName ]: Name of the event subscription. + [Id ]: Resource identity path + [Location ]: Name of the location. + [ParentName ]: The name of the parent resource (namely, either, the topic name, domain name, or partner namespace name). + [ParentType ]: The type of the parent resource. This can be either \'topics\', \'domains\', or \'partnerNamespaces\'. + [PartnerDestinationName ]: Name of the partner destination. + [PartnerNamespaceName ]: Name of the partner namespace. + [PartnerRegistrationName ]: Name of the partner registration. + [PartnerTopicName ]: Name of the partner topic. + [PrivateEndpointConnectionName ]: The name of the private endpoint connection connection. + [PrivateLinkResourceName ]: The name of private link resource. + [ProviderNamespace ]: Namespace of the provider of the topic. + [ResourceGroupName ]: The name of the resource group within the partners subscription. + [ResourceName ]: Name of the resource. + [ResourceTypeName ]: Name of the resource type. + [Scope ]: The scope of the event subscription. The scope can be a subscription, or a resource group, or a top level resource belonging to a resource provider namespace, or an EventGrid topic. For example, use '/subscriptions/{subscriptionId}/' for a subscription, '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}' for a resource group, and '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}' for a resource, and '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.EventGrid/topics/{topicName}' for an EventGrid topic. + [SubscriptionId ]: Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription ID forms part of the URI for every service call. + [SystemTopicName ]: Name of the system topic. + [TopicName ]: Name of the domain topic. + [TopicTypeName ]: Name of the topic type. + [VerifiedPartnerName ]: Name of the verified partner. +.Link +https://docs.microsoft.com/en-us/powershell/module/az.eventgrid/get-azeventgrideventsubscription +#> +function Get-AzEventGridEventSubscription { +[OutputType([Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscription])] +[CmdletBinding(DefaultParameterSetName='Get', PositionalBinding=$false)] +param( + [Parameter(ParameterSetName='Get', Mandatory)] + [Alias('EventSubscriptionName')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [System.String] + # Name of the event subscription. + ${Name}, + + [Parameter(ParameterSetName='Get', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [System.String] + # The scope of the event subscription. + # The scope can be a subscription, or a resource group, or a top level resource belonging to a resource provider namespace, or an EventGrid topic. + # For example, use '/subscriptions/{subscriptionId}/' for a subscription, '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}' for a resource group, and '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}' for a resource, and '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.EventGrid/topics/{topicName}' for an EventGrid topic. + ${Scope}, + + [Parameter(ParameterSetName='GetViaIdentity', Mandatory, ValueFromPipeline)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.IEventGridIdentity] + # Identity Parameter + # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + ${InputObject}, + + [Parameter(ParameterSetName='List', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [System.String] + # Namespace of the provider of the topic. + ${ProviderNamespace}, + + [Parameter(ParameterSetName='List', Mandatory)] + [Parameter(ParameterSetName='List1', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [System.String] + # The name of the resource group within the user's subscription. + ${ResourceGroupName}, + + [Parameter(ParameterSetName='List', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [System.String] + # Name of the resource. + ${ResourceName}, + + [Parameter(ParameterSetName='List', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [System.String] + # Name of the resource type. + ${ResourceTypeName}, + + [Parameter(ParameterSetName='List')] + [Parameter(ParameterSetName='List1')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] + [System.String[]] + # Subscription credentials that uniquely identify a Microsoft Azure subscription. + # The subscription ID forms part of the URI for every service call. + ${SubscriptionId}, + + [Parameter(ParameterSetName='List1', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [System.String] + # Name of the top level domain. + ${DomainName}, + + [Parameter(ParameterSetName='List1', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [System.String] + # Name of the domain topic. + ${TopicName}, + + [Parameter(ParameterSetName='List')] + [Parameter(ParameterSetName='List1')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Query')] + [System.String] + # The query used to filter the search results using OData syntax. + # Filtering is permitted on the 'name' property only and with limited number of OData operations. + # These operations are: the 'contains' function as well as the following logical operations: not, and, or, eq (for equal), and ne (for not equal). + # No arithmetic operations are supported. + # The following is a valid filter example: $filter=contains(namE, 'PATTERN') and name ne 'PATTERN-1'. + # The following is not a valid filter example: $filter=location eq 'westus'. + ${Filter}, + + [Parameter(ParameterSetName='List')] + [Parameter(ParameterSetName='List1')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Query')] + [System.Int32] + # The number of results to return per page for the list operation. + # Valid range for top parameter is 1 to 100. + # If not specified, the default number of results to be returned is 20 items per page. + ${Top}, + + [Parameter()] + [Alias('AzureRMContext', 'AzureCredential')] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Returns true when the command succeeds + ${PassThru}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + if ($null -eq [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion) { + [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion = $Host.Runspace.Version.ToString() + } + $preTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + if ($preTelemetryId -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId =(New-Guid).ToString() + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.module]::Instance.Telemetry.Invoke('Create', $MyInvocation, $parameterSet, $PSCmdlet) + } else { + $internalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + if ($internalCalledCmdlets -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $MyInvocation.MyCommand.Name + } else { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets += ',' + $MyInvocation.MyCommand.Name + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = 'internal' + } + + $mapping = @{ + Get = 'Az.EventGrid.private\Get-AzEventGridEventSubscription_Get'; + GetViaIdentity = 'Az.EventGrid.private\Get-AzEventGridEventSubscription_GetViaIdentity'; + List = 'Az.EventGrid.private\Get-AzEventGridEventSubscription_List'; + List1 = 'Az.EventGrid.private\Get-AzEventGridEventSubscription_List1'; + } + if (('List', 'List1') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { + $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } + + finally { + $backupTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + $backupInternalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + +} +end { + try { + $steppablePipeline.End() + + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $backupTelemetryId + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $backupInternalCalledCmdlets + if ($preTelemetryId -eq '') { + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.module]::Instance.Telemetry.Invoke('Send', $MyInvocation, $parameterSet, $PSCmdlet) + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $preTelemetryId + + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} +} + +<# +.Synopsis +Get the properties of an extension topic. +.Description +Get the properties of an extension topic. +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Inputs +Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.IEventGridIdentity +.Outputs +Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IExtensionTopic +.Notes +COMPLEX PARAMETER PROPERTIES + +To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. + +INPUTOBJECT : Identity Parameter + [ChannelName ]: Name of the channel. + [DomainName ]: Name of the domain. + [DomainTopicName ]: Name of the topic. + [EventChannelName ]: Name of the event channel. + [EventSubscriptionName ]: Name of the event subscription. + [Id ]: Resource identity path + [Location ]: Name of the location. + [ParentName ]: The name of the parent resource (namely, either, the topic name, domain name, or partner namespace name). + [ParentType ]: The type of the parent resource. This can be either \'topics\', \'domains\', or \'partnerNamespaces\'. + [PartnerDestinationName ]: Name of the partner destination. + [PartnerNamespaceName ]: Name of the partner namespace. + [PartnerRegistrationName ]: Name of the partner registration. + [PartnerTopicName ]: Name of the partner topic. + [PrivateEndpointConnectionName ]: The name of the private endpoint connection connection. + [PrivateLinkResourceName ]: The name of private link resource. + [ProviderNamespace ]: Namespace of the provider of the topic. + [ResourceGroupName ]: The name of the resource group within the partners subscription. + [ResourceName ]: Name of the resource. + [ResourceTypeName ]: Name of the resource type. + [Scope ]: The scope of the event subscription. The scope can be a subscription, or a resource group, or a top level resource belonging to a resource provider namespace, or an EventGrid topic. For example, use '/subscriptions/{subscriptionId}/' for a subscription, '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}' for a resource group, and '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}' for a resource, and '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.EventGrid/topics/{topicName}' for an EventGrid topic. + [SubscriptionId ]: Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription ID forms part of the URI for every service call. + [SystemTopicName ]: Name of the system topic. + [TopicName ]: Name of the domain topic. + [TopicTypeName ]: Name of the topic type. + [VerifiedPartnerName ]: Name of the verified partner. +.Link +https://docs.microsoft.com/en-us/powershell/module/az.eventgrid/get-azeventgridextensiontopic +#> +function Get-AzEventGridExtensionTopic { +[OutputType([Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IExtensionTopic])] +[CmdletBinding(DefaultParameterSetName='Get', PositionalBinding=$false)] +param( + [Parameter(ParameterSetName='Get', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [System.String] + # The identifier of the resource to which extension topic is queried. + # The scope can be a subscription, or a resource group, or a top level resource belonging to a resource provider namespace. + # For example, use '/subscriptions/{subscriptionId}/' for a subscription, '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}' for a resource group, and '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}' for Azure resource. + ${Scope}, + + [Parameter(ParameterSetName='GetViaIdentity', Mandatory, ValueFromPipeline)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.IEventGridIdentity] + # Identity Parameter + # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + ${InputObject}, + + [Parameter()] + [Alias('AzureRMContext', 'AzureCredential')] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Returns true when the command succeeds + ${PassThru}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + if ($null -eq [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion) { + [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion = $Host.Runspace.Version.ToString() + } + $preTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + if ($preTelemetryId -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId =(New-Guid).ToString() + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.module]::Instance.Telemetry.Invoke('Create', $MyInvocation, $parameterSet, $PSCmdlet) + } else { + $internalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + if ($internalCalledCmdlets -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $MyInvocation.MyCommand.Name + } else { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets += ',' + $MyInvocation.MyCommand.Name + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = 'internal' + } + + $mapping = @{ + Get = 'Az.EventGrid.private\Get-AzEventGridExtensionTopic_Get'; + GetViaIdentity = 'Az.EventGrid.private\Get-AzEventGridExtensionTopic_GetViaIdentity'; + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } + + finally { + $backupTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + $backupInternalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + +} +end { + try { + $steppablePipeline.End() + + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $backupTelemetryId + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $backupInternalCalledCmdlets + if ($preTelemetryId -eq '') { + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.module]::Instance.Telemetry.Invoke('Send', $MyInvocation, $parameterSet, $PSCmdlet) + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $preTelemetryId + + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} +} + +<# +.Synopsis +Get properties of a partner configuration. +.Description +Get properties of a partner configuration. +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Inputs +Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.IEventGridIdentity +.Outputs +Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerConfiguration +.Notes +COMPLEX PARAMETER PROPERTIES + +To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. + +INPUTOBJECT : Identity Parameter + [ChannelName ]: Name of the channel. + [DomainName ]: Name of the domain. + [DomainTopicName ]: Name of the topic. + [EventChannelName ]: Name of the event channel. + [EventSubscriptionName ]: Name of the event subscription. + [Id ]: Resource identity path + [Location ]: Name of the location. + [ParentName ]: The name of the parent resource (namely, either, the topic name, domain name, or partner namespace name). + [ParentType ]: The type of the parent resource. This can be either \'topics\', \'domains\', or \'partnerNamespaces\'. + [PartnerDestinationName ]: Name of the partner destination. + [PartnerNamespaceName ]: Name of the partner namespace. + [PartnerRegistrationName ]: Name of the partner registration. + [PartnerTopicName ]: Name of the partner topic. + [PrivateEndpointConnectionName ]: The name of the private endpoint connection connection. + [PrivateLinkResourceName ]: The name of private link resource. + [ProviderNamespace ]: Namespace of the provider of the topic. + [ResourceGroupName ]: The name of the resource group within the partners subscription. + [ResourceName ]: Name of the resource. + [ResourceTypeName ]: Name of the resource type. + [Scope ]: The scope of the event subscription. The scope can be a subscription, or a resource group, or a top level resource belonging to a resource provider namespace, or an EventGrid topic. For example, use '/subscriptions/{subscriptionId}/' for a subscription, '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}' for a resource group, and '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}' for a resource, and '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.EventGrid/topics/{topicName}' for an EventGrid topic. + [SubscriptionId ]: Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription ID forms part of the URI for every service call. + [SystemTopicName ]: Name of the system topic. + [TopicName ]: Name of the domain topic. + [TopicTypeName ]: Name of the topic type. + [VerifiedPartnerName ]: Name of the verified partner. +.Link +https://docs.microsoft.com/en-us/powershell/module/az.eventgrid/get-azeventgridpartnerconfiguration +#> +function Get-AzEventGridPartnerConfiguration { +[OutputType([Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerConfiguration])] +[CmdletBinding(DefaultParameterSetName='List1', PositionalBinding=$false)] +param( + [Parameter(ParameterSetName='Get', Mandatory)] + [Parameter(ParameterSetName='List', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [System.String] + # The name of the resource group within the user's subscription. + ${ResourceGroupName}, + + [Parameter(ParameterSetName='Get')] + [Parameter(ParameterSetName='List')] + [Parameter(ParameterSetName='List1')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] + [System.String[]] + # Subscription credentials that uniquely identify a Microsoft Azure subscription. + # The subscription ID forms part of the URI for every service call. + ${SubscriptionId}, + + [Parameter(ParameterSetName='GetViaIdentity', Mandatory, ValueFromPipeline)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.IEventGridIdentity] + # Identity Parameter + # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + ${InputObject}, + + [Parameter(ParameterSetName='List1')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Query')] + [System.String] + # The query used to filter the search results using OData syntax. + # Filtering is permitted on the 'name' property only and with limited number of OData operations. + # These operations are: the 'contains' function as well as the following logical operations: not, and, or, eq (for equal), and ne (for not equal). + # No arithmetic operations are supported. + # The following is a valid filter example: $filter=contains(namE, 'PATTERN') and name ne 'PATTERN-1'. + # The following is not a valid filter example: $filter=location eq 'westus'. + ${Filter}, + + [Parameter(ParameterSetName='List1')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Query')] + [System.Int32] + # The number of results to return per page for the list operation. + # Valid range for top parameter is 1 to 100. + # If not specified, the default number of results to be returned is 20 items per page. + ${Top}, + + [Parameter()] + [Alias('AzureRMContext', 'AzureCredential')] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Returns true when the command succeeds + ${PassThru}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + if ($null -eq [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion) { + [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion = $Host.Runspace.Version.ToString() + } + $preTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + if ($preTelemetryId -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId =(New-Guid).ToString() + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.module]::Instance.Telemetry.Invoke('Create', $MyInvocation, $parameterSet, $PSCmdlet) + } else { + $internalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + if ($internalCalledCmdlets -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $MyInvocation.MyCommand.Name + } else { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets += ',' + $MyInvocation.MyCommand.Name + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = 'internal' + } + + $mapping = @{ + Get = 'Az.EventGrid.private\Get-AzEventGridPartnerConfiguration_Get'; + GetViaIdentity = 'Az.EventGrid.private\Get-AzEventGridPartnerConfiguration_GetViaIdentity'; + List = 'Az.EventGrid.private\Get-AzEventGridPartnerConfiguration_List'; + List1 = 'Az.EventGrid.private\Get-AzEventGridPartnerConfiguration_List1'; + } + if (('Get', 'List', 'List1') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { + $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } + + finally { + $backupTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + $backupInternalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + +} +end { + try { + $steppablePipeline.End() + + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $backupTelemetryId + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $backupInternalCalledCmdlets + if ($preTelemetryId -eq '') { + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.module]::Instance.Telemetry.Invoke('Send', $MyInvocation, $parameterSet, $PSCmdlet) + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $preTelemetryId + + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} +} + +<# +.Synopsis +Get properties of a partner destination. +.Description +Get properties of a partner destination. +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Inputs +Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.IEventGridIdentity +.Outputs +Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerDestination +.Notes +COMPLEX PARAMETER PROPERTIES + +To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. + +INPUTOBJECT : Identity Parameter + [ChannelName ]: Name of the channel. + [DomainName ]: Name of the domain. + [DomainTopicName ]: Name of the topic. + [EventChannelName ]: Name of the event channel. + [EventSubscriptionName ]: Name of the event subscription. + [Id ]: Resource identity path + [Location ]: Name of the location. + [ParentName ]: The name of the parent resource (namely, either, the topic name, domain name, or partner namespace name). + [ParentType ]: The type of the parent resource. This can be either \'topics\', \'domains\', or \'partnerNamespaces\'. + [PartnerDestinationName ]: Name of the partner destination. + [PartnerNamespaceName ]: Name of the partner namespace. + [PartnerRegistrationName ]: Name of the partner registration. + [PartnerTopicName ]: Name of the partner topic. + [PrivateEndpointConnectionName ]: The name of the private endpoint connection connection. + [PrivateLinkResourceName ]: The name of private link resource. + [ProviderNamespace ]: Namespace of the provider of the topic. + [ResourceGroupName ]: The name of the resource group within the partners subscription. + [ResourceName ]: Name of the resource. + [ResourceTypeName ]: Name of the resource type. + [Scope ]: The scope of the event subscription. The scope can be a subscription, or a resource group, or a top level resource belonging to a resource provider namespace, or an EventGrid topic. For example, use '/subscriptions/{subscriptionId}/' for a subscription, '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}' for a resource group, and '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}' for a resource, and '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.EventGrid/topics/{topicName}' for an EventGrid topic. + [SubscriptionId ]: Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription ID forms part of the URI for every service call. + [SystemTopicName ]: Name of the system topic. + [TopicName ]: Name of the domain topic. + [TopicTypeName ]: Name of the topic type. + [VerifiedPartnerName ]: Name of the verified partner. +.Link +https://docs.microsoft.com/en-us/powershell/module/az.eventgrid/get-azeventgridpartnerdestination +#> +function Get-AzEventGridPartnerDestination { +[OutputType([Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerDestination])] +[CmdletBinding(DefaultParameterSetName='List', PositionalBinding=$false)] +param( + [Parameter(ParameterSetName='Get', Mandatory)] + [Alias('PartnerDestinationName')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [System.String] + # Name of the partner destination. + ${Name}, + + [Parameter(ParameterSetName='Get', Mandatory)] + [Parameter(ParameterSetName='List1', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [System.String] + # The name of the resource group within the user's subscription. + ${ResourceGroupName}, + + [Parameter(ParameterSetName='Get')] + [Parameter(ParameterSetName='List')] + [Parameter(ParameterSetName='List1')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] + [System.String[]] + # Subscription credentials that uniquely identify a Microsoft Azure subscription. + # The subscription ID forms part of the URI for every service call. + ${SubscriptionId}, + + [Parameter(ParameterSetName='GetViaIdentity', Mandatory, ValueFromPipeline)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.IEventGridIdentity] + # 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.EventGrid.Category('Query')] + [System.String] + # The query used to filter the search results using OData syntax. + # Filtering is permitted on the 'name' property only and with limited number of OData operations. + # These operations are: the 'contains' function as well as the following logical operations: not, and, or, eq (for equal), and ne (for not equal). + # No arithmetic operations are supported. + # The following is a valid filter example: $filter=contains(namE, 'PATTERN') and name ne 'PATTERN-1'. + # The following is not a valid filter example: $filter=location eq 'westus'. + ${Filter}, + + [Parameter(ParameterSetName='List')] + [Parameter(ParameterSetName='List1')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Query')] + [System.Int32] + # The number of results to return per page for the list operation. + # Valid range for top parameter is 1 to 100. + # If not specified, the default number of results to be returned is 20 items per page. + ${Top}, + + [Parameter()] + [Alias('AzureRMContext', 'AzureCredential')] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Returns true when the command succeeds + ${PassThru}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + if ($null -eq [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion) { + [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion = $Host.Runspace.Version.ToString() + } + $preTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + if ($preTelemetryId -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId =(New-Guid).ToString() + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.module]::Instance.Telemetry.Invoke('Create', $MyInvocation, $parameterSet, $PSCmdlet) + } else { + $internalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + if ($internalCalledCmdlets -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $MyInvocation.MyCommand.Name + } else { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets += ',' + $MyInvocation.MyCommand.Name + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = 'internal' + } + + $mapping = @{ + Get = 'Az.EventGrid.private\Get-AzEventGridPartnerDestination_Get'; + GetViaIdentity = 'Az.EventGrid.private\Get-AzEventGridPartnerDestination_GetViaIdentity'; + List = 'Az.EventGrid.private\Get-AzEventGridPartnerDestination_List'; + List1 = 'Az.EventGrid.private\Get-AzEventGridPartnerDestination_List1'; + } + if (('Get', 'List', 'List1') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { + $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } + + finally { + $backupTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + $backupInternalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + +} +end { + try { + $steppablePipeline.End() + + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $backupTelemetryId + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $backupInternalCalledCmdlets + if ($preTelemetryId -eq '') { + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.module]::Instance.Telemetry.Invoke('Send', $MyInvocation, $parameterSet, $PSCmdlet) + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $preTelemetryId + + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} +} + +<# +.Synopsis +List the two keys used to publish to a partner namespace. +.Description +List the two keys used to publish to a partner namespace. +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Outputs +Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerNamespaceSharedAccessKeys +.Link +https://docs.microsoft.com/en-us/powershell/module/az.eventgrid/get-azeventgridpartnernamespacesharedaccesskey +#> +function Get-AzEventGridPartnerNamespaceSharedAccessKey { +[OutputType([Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerNamespaceSharedAccessKeys])] +[CmdletBinding(DefaultParameterSetName='List', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [System.String] + # Name of the partner namespace. + ${PartnerNamespaceName}, + + [Parameter(Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [System.String] + # The name of the resource group within the user's subscription. + ${ResourceGroupName}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] + [System.String[]] + # Subscription credentials that uniquely identify a Microsoft Azure subscription. + # The subscription ID forms part of the URI for every service call. + ${SubscriptionId}, + + [Parameter()] + [Alias('AzureRMContext', 'AzureCredential')] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Returns true when the command succeeds + ${PassThru}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + if ($null -eq [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion) { + [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion = $Host.Runspace.Version.ToString() + } + $preTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + if ($preTelemetryId -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId =(New-Guid).ToString() + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.module]::Instance.Telemetry.Invoke('Create', $MyInvocation, $parameterSet, $PSCmdlet) + } else { + $internalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + if ($internalCalledCmdlets -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $MyInvocation.MyCommand.Name + } else { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets += ',' + $MyInvocation.MyCommand.Name + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = 'internal' + } + + $mapping = @{ + List = 'Az.EventGrid.private\Get-AzEventGridPartnerNamespaceSharedAccessKey_List'; + } + if (('List') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { + $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } + + finally { + $backupTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + $backupInternalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + +} +end { + try { + $steppablePipeline.End() + + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $backupTelemetryId + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $backupInternalCalledCmdlets + if ($preTelemetryId -eq '') { + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.module]::Instance.Telemetry.Invoke('Send', $MyInvocation, $parameterSet, $PSCmdlet) + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $preTelemetryId + + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} +} + +<# +.Synopsis +Get properties of a partner namespace. +.Description +Get properties of a partner namespace. +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Inputs +Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.IEventGridIdentity +.Outputs +Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerNamespace +.Notes +COMPLEX PARAMETER PROPERTIES + +To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. + +INPUTOBJECT : Identity Parameter + [ChannelName ]: Name of the channel. + [DomainName ]: Name of the domain. + [DomainTopicName ]: Name of the topic. + [EventChannelName ]: Name of the event channel. + [EventSubscriptionName ]: Name of the event subscription. + [Id ]: Resource identity path + [Location ]: Name of the location. + [ParentName ]: The name of the parent resource (namely, either, the topic name, domain name, or partner namespace name). + [ParentType ]: The type of the parent resource. This can be either \'topics\', \'domains\', or \'partnerNamespaces\'. + [PartnerDestinationName ]: Name of the partner destination. + [PartnerNamespaceName ]: Name of the partner namespace. + [PartnerRegistrationName ]: Name of the partner registration. + [PartnerTopicName ]: Name of the partner topic. + [PrivateEndpointConnectionName ]: The name of the private endpoint connection connection. + [PrivateLinkResourceName ]: The name of private link resource. + [ProviderNamespace ]: Namespace of the provider of the topic. + [ResourceGroupName ]: The name of the resource group within the partners subscription. + [ResourceName ]: Name of the resource. + [ResourceTypeName ]: Name of the resource type. + [Scope ]: The scope of the event subscription. The scope can be a subscription, or a resource group, or a top level resource belonging to a resource provider namespace, or an EventGrid topic. For example, use '/subscriptions/{subscriptionId}/' for a subscription, '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}' for a resource group, and '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}' for a resource, and '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.EventGrid/topics/{topicName}' for an EventGrid topic. + [SubscriptionId ]: Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription ID forms part of the URI for every service call. + [SystemTopicName ]: Name of the system topic. + [TopicName ]: Name of the domain topic. + [TopicTypeName ]: Name of the topic type. + [VerifiedPartnerName ]: Name of the verified partner. +.Link +https://docs.microsoft.com/en-us/powershell/module/az.eventgrid/get-azeventgridpartnernamespace +#> +function Get-AzEventGridPartnerNamespace { +[OutputType([Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerNamespace])] +[CmdletBinding(DefaultParameterSetName='List', PositionalBinding=$false)] +param( + [Parameter(ParameterSetName='Get', Mandatory)] + [Alias('PartnerNamespaceName')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [System.String] + # Name of the partner namespace. + ${Name}, + + [Parameter(ParameterSetName='Get', Mandatory)] + [Parameter(ParameterSetName='List1', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [System.String] + # The name of the resource group within the user's subscription. + ${ResourceGroupName}, + + [Parameter(ParameterSetName='Get')] + [Parameter(ParameterSetName='List')] + [Parameter(ParameterSetName='List1')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] + [System.String[]] + # Subscription credentials that uniquely identify a Microsoft Azure subscription. + # The subscription ID forms part of the URI for every service call. + ${SubscriptionId}, + + [Parameter(ParameterSetName='GetViaIdentity', Mandatory, ValueFromPipeline)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.IEventGridIdentity] + # 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.EventGrid.Category('Query')] + [System.String] + # The query used to filter the search results using OData syntax. + # Filtering is permitted on the 'name' property only and with limited number of OData operations. + # These operations are: the 'contains' function as well as the following logical operations: not, and, or, eq (for equal), and ne (for not equal). + # No arithmetic operations are supported. + # The following is a valid filter example: $filter=contains(namE, 'PATTERN') and name ne 'PATTERN-1'. + # The following is not a valid filter example: $filter=location eq 'westus'. + ${Filter}, + + [Parameter(ParameterSetName='List')] + [Parameter(ParameterSetName='List1')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Query')] + [System.Int32] + # The number of results to return per page for the list operation. + # Valid range for top parameter is 1 to 100. + # If not specified, the default number of results to be returned is 20 items per page. + ${Top}, + + [Parameter()] + [Alias('AzureRMContext', 'AzureCredential')] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Returns true when the command succeeds + ${PassThru}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + if ($null -eq [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion) { + [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion = $Host.Runspace.Version.ToString() + } + $preTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + if ($preTelemetryId -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId =(New-Guid).ToString() + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.module]::Instance.Telemetry.Invoke('Create', $MyInvocation, $parameterSet, $PSCmdlet) + } else { + $internalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + if ($internalCalledCmdlets -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $MyInvocation.MyCommand.Name + } else { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets += ',' + $MyInvocation.MyCommand.Name + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = 'internal' + } + + $mapping = @{ + Get = 'Az.EventGrid.private\Get-AzEventGridPartnerNamespace_Get'; + GetViaIdentity = 'Az.EventGrid.private\Get-AzEventGridPartnerNamespace_GetViaIdentity'; + List = 'Az.EventGrid.private\Get-AzEventGridPartnerNamespace_List'; + List1 = 'Az.EventGrid.private\Get-AzEventGridPartnerNamespace_List1'; + } + if (('Get', 'List', 'List1') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { + $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } + + finally { + $backupTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + $backupInternalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + +} +end { + try { + $steppablePipeline.End() + + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $backupTelemetryId + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $backupInternalCalledCmdlets + if ($preTelemetryId -eq '') { + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.module]::Instance.Telemetry.Invoke('Send', $MyInvocation, $parameterSet, $PSCmdlet) + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $preTelemetryId + + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} +} + +<# +.Synopsis +Gets a partner registration with the specified parameters. +.Description +Gets a partner registration with the specified parameters. +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Inputs +Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.IEventGridIdentity +.Outputs +Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerRegistration +.Notes +COMPLEX PARAMETER PROPERTIES + +To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. + +INPUTOBJECT : Identity Parameter + [ChannelName ]: Name of the channel. + [DomainName ]: Name of the domain. + [DomainTopicName ]: Name of the topic. + [EventChannelName ]: Name of the event channel. + [EventSubscriptionName ]: Name of the event subscription. + [Id ]: Resource identity path + [Location ]: Name of the location. + [ParentName ]: The name of the parent resource (namely, either, the topic name, domain name, or partner namespace name). + [ParentType ]: The type of the parent resource. This can be either \'topics\', \'domains\', or \'partnerNamespaces\'. + [PartnerDestinationName ]: Name of the partner destination. + [PartnerNamespaceName ]: Name of the partner namespace. + [PartnerRegistrationName ]: Name of the partner registration. + [PartnerTopicName ]: Name of the partner topic. + [PrivateEndpointConnectionName ]: The name of the private endpoint connection connection. + [PrivateLinkResourceName ]: The name of private link resource. + [ProviderNamespace ]: Namespace of the provider of the topic. + [ResourceGroupName ]: The name of the resource group within the partners subscription. + [ResourceName ]: Name of the resource. + [ResourceTypeName ]: Name of the resource type. + [Scope ]: The scope of the event subscription. The scope can be a subscription, or a resource group, or a top level resource belonging to a resource provider namespace, or an EventGrid topic. For example, use '/subscriptions/{subscriptionId}/' for a subscription, '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}' for a resource group, and '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}' for a resource, and '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.EventGrid/topics/{topicName}' for an EventGrid topic. + [SubscriptionId ]: Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription ID forms part of the URI for every service call. + [SystemTopicName ]: Name of the system topic. + [TopicName ]: Name of the domain topic. + [TopicTypeName ]: Name of the topic type. + [VerifiedPartnerName ]: Name of the verified partner. +.Link +https://docs.microsoft.com/en-us/powershell/module/az.eventgrid/get-azeventgridpartnerregistration +#> +function Get-AzEventGridPartnerRegistration { +[OutputType([Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerRegistration])] +[CmdletBinding(DefaultParameterSetName='List', PositionalBinding=$false)] +param( + [Parameter(ParameterSetName='Get', Mandatory)] + [Alias('PartnerRegistrationName')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [System.String] + # Name of the partner registration. + ${Name}, + + [Parameter(ParameterSetName='Get', Mandatory)] + [Parameter(ParameterSetName='List1', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [System.String] + # The name of the resource group within the user's subscription. + ${ResourceGroupName}, + + [Parameter(ParameterSetName='Get')] + [Parameter(ParameterSetName='List')] + [Parameter(ParameterSetName='List1')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] + [System.String[]] + # Subscription credentials that uniquely identify a Microsoft Azure subscription. + # The subscription ID forms part of the URI for every service call. + ${SubscriptionId}, + + [Parameter(ParameterSetName='GetViaIdentity', Mandatory, ValueFromPipeline)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.IEventGridIdentity] + # 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.EventGrid.Category('Query')] + [System.String] + # The query used to filter the search results using OData syntax. + # Filtering is permitted on the 'name' property only and with limited number of OData operations. + # These operations are: the 'contains' function as well as the following logical operations: not, and, or, eq (for equal), and ne (for not equal). + # No arithmetic operations are supported. + # The following is a valid filter example: $filter=contains(namE, 'PATTERN') and name ne 'PATTERN-1'. + # The following is not a valid filter example: $filter=location eq 'westus'. + ${Filter}, + + [Parameter(ParameterSetName='List')] + [Parameter(ParameterSetName='List1')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Query')] + [System.Int32] + # The number of results to return per page for the list operation. + # Valid range for top parameter is 1 to 100. + # If not specified, the default number of results to be returned is 20 items per page. + ${Top}, + + [Parameter()] + [Alias('AzureRMContext', 'AzureCredential')] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Returns true when the command succeeds + ${PassThru}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + if ($null -eq [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion) { + [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion = $Host.Runspace.Version.ToString() + } + $preTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + if ($preTelemetryId -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId =(New-Guid).ToString() + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.module]::Instance.Telemetry.Invoke('Create', $MyInvocation, $parameterSet, $PSCmdlet) + } else { + $internalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + if ($internalCalledCmdlets -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $MyInvocation.MyCommand.Name + } else { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets += ',' + $MyInvocation.MyCommand.Name + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = 'internal' + } + + $mapping = @{ + Get = 'Az.EventGrid.private\Get-AzEventGridPartnerRegistration_Get'; + GetViaIdentity = 'Az.EventGrid.private\Get-AzEventGridPartnerRegistration_GetViaIdentity'; + List = 'Az.EventGrid.private\Get-AzEventGridPartnerRegistration_List'; + List1 = 'Az.EventGrid.private\Get-AzEventGridPartnerRegistration_List1'; + } + if (('Get', 'List', 'List1') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { + $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } + + finally { + $backupTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + $backupInternalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + +} +end { + try { + $steppablePipeline.End() + + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $backupTelemetryId + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $backupInternalCalledCmdlets + if ($preTelemetryId -eq '') { + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.module]::Instance.Telemetry.Invoke('Send', $MyInvocation, $parameterSet, $PSCmdlet) + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $preTelemetryId + + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} +} + +<# +.Synopsis +Get all delivery attributes for an event subscription of a partner topic. +.Description +Get all delivery attributes for an event subscription of a partner topic. +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Inputs +Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.IEventGridIdentity +.Outputs +Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDeliveryAttributeMapping +.Notes +COMPLEX PARAMETER PROPERTIES + +To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. + +INPUTOBJECT : Identity Parameter + [ChannelName ]: Name of the channel. + [DomainName ]: Name of the domain. + [DomainTopicName ]: Name of the topic. + [EventChannelName ]: Name of the event channel. + [EventSubscriptionName ]: Name of the event subscription. + [Id ]: Resource identity path + [Location ]: Name of the location. + [ParentName ]: The name of the parent resource (namely, either, the topic name, domain name, or partner namespace name). + [ParentType ]: The type of the parent resource. This can be either \'topics\', \'domains\', or \'partnerNamespaces\'. + [PartnerDestinationName ]: Name of the partner destination. + [PartnerNamespaceName ]: Name of the partner namespace. + [PartnerRegistrationName ]: Name of the partner registration. + [PartnerTopicName ]: Name of the partner topic. + [PrivateEndpointConnectionName ]: The name of the private endpoint connection connection. + [PrivateLinkResourceName ]: The name of private link resource. + [ProviderNamespace ]: Namespace of the provider of the topic. + [ResourceGroupName ]: The name of the resource group within the partners subscription. + [ResourceName ]: Name of the resource. + [ResourceTypeName ]: Name of the resource type. + [Scope ]: The scope of the event subscription. The scope can be a subscription, or a resource group, or a top level resource belonging to a resource provider namespace, or an EventGrid topic. For example, use '/subscriptions/{subscriptionId}/' for a subscription, '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}' for a resource group, and '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}' for a resource, and '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.EventGrid/topics/{topicName}' for an EventGrid topic. + [SubscriptionId ]: Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription ID forms part of the URI for every service call. + [SystemTopicName ]: Name of the system topic. + [TopicName ]: Name of the domain topic. + [TopicTypeName ]: Name of the topic type. + [VerifiedPartnerName ]: Name of the verified partner. +.Link +https://docs.microsoft.com/en-us/powershell/module/az.eventgrid/get-azeventgridpartnertopiceventsubscriptiondeliveryattribute +#> +function Get-AzEventGridPartnerTopicEventSubscriptionDeliveryAttribute { +[OutputType([Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDeliveryAttributeMapping])] +[CmdletBinding(DefaultParameterSetName='Get', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(ParameterSetName='Get', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [System.String] + # Name of the event subscription to be created. + # Event subscription names must be between 3 and 100 characters in length and use alphanumeric letters only. + ${EventSubscriptionName}, + + [Parameter(ParameterSetName='Get', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [System.String] + # Name of the partner topic. + ${PartnerTopicName}, + + [Parameter(ParameterSetName='Get', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [System.String] + # The name of the resource group within the user's subscription. + ${ResourceGroupName}, + + [Parameter(ParameterSetName='Get')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] + [System.String[]] + # Subscription credentials that uniquely identify a Microsoft Azure subscription. + # The subscription ID forms part of the URI for every service call. + ${SubscriptionId}, + + [Parameter(ParameterSetName='GetViaIdentity', Mandatory, ValueFromPipeline)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.IEventGridIdentity] + # Identity Parameter + # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + ${InputObject}, + + [Parameter()] + [Alias('AzureRMContext', 'AzureCredential')] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Returns true when the command succeeds + ${PassThru}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + if ($null -eq [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion) { + [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion = $Host.Runspace.Version.ToString() + } + $preTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + if ($preTelemetryId -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId =(New-Guid).ToString() + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.module]::Instance.Telemetry.Invoke('Create', $MyInvocation, $parameterSet, $PSCmdlet) + } else { + $internalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + if ($internalCalledCmdlets -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $MyInvocation.MyCommand.Name + } else { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets += ',' + $MyInvocation.MyCommand.Name + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = 'internal' + } + + $mapping = @{ + Get = 'Az.EventGrid.private\Get-AzEventGridPartnerTopicEventSubscriptionDeliveryAttribute_Get'; + GetViaIdentity = 'Az.EventGrid.private\Get-AzEventGridPartnerTopicEventSubscriptionDeliveryAttribute_GetViaIdentity'; + } + if (('Get') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { + $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } + + finally { + $backupTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + $backupInternalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + +} +end { + try { + $steppablePipeline.End() + + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $backupTelemetryId + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $backupInternalCalledCmdlets + if ($preTelemetryId -eq '') { + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.module]::Instance.Telemetry.Invoke('Send', $MyInvocation, $parameterSet, $PSCmdlet) + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $preTelemetryId + + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} +} + +<# +.Synopsis +Get the full endpoint URL for an event subscription of a partner topic. +.Description +Get the full endpoint URL for an event subscription of a partner topic. +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Inputs +Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.IEventGridIdentity +.Outputs +System.String +.Notes +COMPLEX PARAMETER PROPERTIES + +To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. + +INPUTOBJECT : Identity Parameter + [ChannelName ]: Name of the channel. + [DomainName ]: Name of the domain. + [DomainTopicName ]: Name of the topic. + [EventChannelName ]: Name of the event channel. + [EventSubscriptionName ]: Name of the event subscription. + [Id ]: Resource identity path + [Location ]: Name of the location. + [ParentName ]: The name of the parent resource (namely, either, the topic name, domain name, or partner namespace name). + [ParentType ]: The type of the parent resource. This can be either \'topics\', \'domains\', or \'partnerNamespaces\'. + [PartnerDestinationName ]: Name of the partner destination. + [PartnerNamespaceName ]: Name of the partner namespace. + [PartnerRegistrationName ]: Name of the partner registration. + [PartnerTopicName ]: Name of the partner topic. + [PrivateEndpointConnectionName ]: The name of the private endpoint connection connection. + [PrivateLinkResourceName ]: The name of private link resource. + [ProviderNamespace ]: Namespace of the provider of the topic. + [ResourceGroupName ]: The name of the resource group within the partners subscription. + [ResourceName ]: Name of the resource. + [ResourceTypeName ]: Name of the resource type. + [Scope ]: The scope of the event subscription. The scope can be a subscription, or a resource group, or a top level resource belonging to a resource provider namespace, or an EventGrid topic. For example, use '/subscriptions/{subscriptionId}/' for a subscription, '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}' for a resource group, and '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}' for a resource, and '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.EventGrid/topics/{topicName}' for an EventGrid topic. + [SubscriptionId ]: Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription ID forms part of the URI for every service call. + [SystemTopicName ]: Name of the system topic. + [TopicName ]: Name of the domain topic. + [TopicTypeName ]: Name of the topic type. + [VerifiedPartnerName ]: Name of the verified partner. +.Link +https://docs.microsoft.com/en-us/powershell/module/az.eventgrid/get-azeventgridpartnertopiceventsubscriptionfullurl +#> +function Get-AzEventGridPartnerTopicEventSubscriptionFullUrl { +[OutputType([System.String])] +[CmdletBinding(DefaultParameterSetName='Get', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(ParameterSetName='Get', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [System.String] + # Name of the event subscription to be created. + # Event subscription names must be between 3 and 100 characters in length and use alphanumeric letters only. + ${EventSubscriptionName}, + + [Parameter(ParameterSetName='Get', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [System.String] + # Name of the partner topic. + ${PartnerTopicName}, + + [Parameter(ParameterSetName='Get', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [System.String] + # The name of the resource group within the user's subscription. + ${ResourceGroupName}, + + [Parameter(ParameterSetName='Get')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] + [System.String[]] + # Subscription credentials that uniquely identify a Microsoft Azure subscription. + # The subscription ID forms part of the URI for every service call. + ${SubscriptionId}, + + [Parameter(ParameterSetName='GetViaIdentity', Mandatory, ValueFromPipeline)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.IEventGridIdentity] + # Identity Parameter + # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + ${InputObject}, + + [Parameter()] + [Alias('AzureRMContext', 'AzureCredential')] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Returns true when the command succeeds + ${PassThru}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + if ($null -eq [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion) { + [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion = $Host.Runspace.Version.ToString() + } + $preTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + if ($preTelemetryId -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId =(New-Guid).ToString() + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.module]::Instance.Telemetry.Invoke('Create', $MyInvocation, $parameterSet, $PSCmdlet) + } else { + $internalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + if ($internalCalledCmdlets -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $MyInvocation.MyCommand.Name + } else { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets += ',' + $MyInvocation.MyCommand.Name + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = 'internal' + } + + $mapping = @{ + Get = 'Az.EventGrid.private\Get-AzEventGridPartnerTopicEventSubscriptionFullUrl_Get'; + GetViaIdentity = 'Az.EventGrid.private\Get-AzEventGridPartnerTopicEventSubscriptionFullUrl_GetViaIdentity'; + } + if (('Get') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { + $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } + + finally { + $backupTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + $backupInternalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + +} +end { + try { + $steppablePipeline.End() + + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $backupTelemetryId + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $backupInternalCalledCmdlets + if ($preTelemetryId -eq '') { + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.module]::Instance.Telemetry.Invoke('Send', $MyInvocation, $parameterSet, $PSCmdlet) + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $preTelemetryId + + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} +} + +<# +.Synopsis +Get properties of an event subscription of a partner topic. +.Description +Get properties of an event subscription of a partner topic. +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Inputs +Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.IEventGridIdentity +.Outputs +Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscription +.Notes +COMPLEX PARAMETER PROPERTIES + +To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. + +INPUTOBJECT : Identity Parameter + [ChannelName ]: Name of the channel. + [DomainName ]: Name of the domain. + [DomainTopicName ]: Name of the topic. + [EventChannelName ]: Name of the event channel. + [EventSubscriptionName ]: Name of the event subscription. + [Id ]: Resource identity path + [Location ]: Name of the location. + [ParentName ]: The name of the parent resource (namely, either, the topic name, domain name, or partner namespace name). + [ParentType ]: The type of the parent resource. This can be either \'topics\', \'domains\', or \'partnerNamespaces\'. + [PartnerDestinationName ]: Name of the partner destination. + [PartnerNamespaceName ]: Name of the partner namespace. + [PartnerRegistrationName ]: Name of the partner registration. + [PartnerTopicName ]: Name of the partner topic. + [PrivateEndpointConnectionName ]: The name of the private endpoint connection connection. + [PrivateLinkResourceName ]: The name of private link resource. + [ProviderNamespace ]: Namespace of the provider of the topic. + [ResourceGroupName ]: The name of the resource group within the partners subscription. + [ResourceName ]: Name of the resource. + [ResourceTypeName ]: Name of the resource type. + [Scope ]: The scope of the event subscription. The scope can be a subscription, or a resource group, or a top level resource belonging to a resource provider namespace, or an EventGrid topic. For example, use '/subscriptions/{subscriptionId}/' for a subscription, '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}' for a resource group, and '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}' for a resource, and '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.EventGrid/topics/{topicName}' for an EventGrid topic. + [SubscriptionId ]: Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription ID forms part of the URI for every service call. + [SystemTopicName ]: Name of the system topic. + [TopicName ]: Name of the domain topic. + [TopicTypeName ]: Name of the topic type. + [VerifiedPartnerName ]: Name of the verified partner. +.Link +https://docs.microsoft.com/en-us/powershell/module/az.eventgrid/get-azeventgridpartnertopiceventsubscription +#> +function Get-AzEventGridPartnerTopicEventSubscription { +[OutputType([Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscription])] +[CmdletBinding(DefaultParameterSetName='List', PositionalBinding=$false)] +param( + [Parameter(ParameterSetName='Get', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [System.String] + # Name of the event subscription to be found. + # Event subscription names must be between 3 and 100 characters in length and use alphanumeric letters only. + ${EventSubscriptionName}, + + [Parameter(ParameterSetName='Get', Mandatory)] + [Parameter(ParameterSetName='List', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [System.String] + # Name of the partner topic. + ${PartnerTopicName}, + + [Parameter(ParameterSetName='Get', Mandatory)] + [Parameter(ParameterSetName='List', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [System.String] + # The name of the resource group within the user's subscription. + ${ResourceGroupName}, + + [Parameter(ParameterSetName='Get')] + [Parameter(ParameterSetName='List')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] + [System.String[]] + # Subscription credentials that uniquely identify a Microsoft Azure subscription. + # The subscription ID forms part of the URI for every service call. + ${SubscriptionId}, + + [Parameter(ParameterSetName='GetViaIdentity', Mandatory, ValueFromPipeline)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.IEventGridIdentity] + # Identity Parameter + # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + ${InputObject}, + + [Parameter(ParameterSetName='List')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Query')] + [System.String] + # The query used to filter the search results using OData syntax. + # Filtering is permitted on the 'name' property only and with limited number of OData operations. + # These operations are: the 'contains' function as well as the following logical operations: not, and, or, eq (for equal), and ne (for not equal). + # No arithmetic operations are supported. + # The following is a valid filter example: $filter=contains(namE, 'PATTERN') and name ne 'PATTERN-1'. + # The following is not a valid filter example: $filter=location eq 'westus'. + ${Filter}, + + [Parameter(ParameterSetName='List')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Query')] + [System.Int32] + # The number of results to return per page for the list operation. + # Valid range for top parameter is 1 to 100. + # If not specified, the default number of results to be returned is 20 items per page. + ${Top}, + + [Parameter()] + [Alias('AzureRMContext', 'AzureCredential')] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Returns true when the command succeeds + ${PassThru}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + if ($null -eq [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion) { + [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion = $Host.Runspace.Version.ToString() + } + $preTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + if ($preTelemetryId -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId =(New-Guid).ToString() + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.module]::Instance.Telemetry.Invoke('Create', $MyInvocation, $parameterSet, $PSCmdlet) + } else { + $internalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + if ($internalCalledCmdlets -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $MyInvocation.MyCommand.Name + } else { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets += ',' + $MyInvocation.MyCommand.Name + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = 'internal' + } + + $mapping = @{ + Get = 'Az.EventGrid.private\Get-AzEventGridPartnerTopicEventSubscription_Get'; + GetViaIdentity = 'Az.EventGrid.private\Get-AzEventGridPartnerTopicEventSubscription_GetViaIdentity'; + List = 'Az.EventGrid.private\Get-AzEventGridPartnerTopicEventSubscription_List'; + } + if (('Get', 'List') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { + $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } + + finally { + $backupTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + $backupInternalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + +} +end { + try { + $steppablePipeline.End() + + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $backupTelemetryId + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $backupInternalCalledCmdlets + if ($preTelemetryId -eq '') { + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.module]::Instance.Telemetry.Invoke('Send', $MyInvocation, $parameterSet, $PSCmdlet) + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $preTelemetryId + + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} +} + +<# +.Synopsis +Get properties of a partner topic. +.Description +Get properties of a partner topic. +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Inputs +Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.IEventGridIdentity +.Outputs +Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerTopic +.Notes +COMPLEX PARAMETER PROPERTIES + +To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. + +INPUTOBJECT : Identity Parameter + [ChannelName ]: Name of the channel. + [DomainName ]: Name of the domain. + [DomainTopicName ]: Name of the topic. + [EventChannelName ]: Name of the event channel. + [EventSubscriptionName ]: Name of the event subscription. + [Id ]: Resource identity path + [Location ]: Name of the location. + [ParentName ]: The name of the parent resource (namely, either, the topic name, domain name, or partner namespace name). + [ParentType ]: The type of the parent resource. This can be either \'topics\', \'domains\', or \'partnerNamespaces\'. + [PartnerDestinationName ]: Name of the partner destination. + [PartnerNamespaceName ]: Name of the partner namespace. + [PartnerRegistrationName ]: Name of the partner registration. + [PartnerTopicName ]: Name of the partner topic. + [PrivateEndpointConnectionName ]: The name of the private endpoint connection connection. + [PrivateLinkResourceName ]: The name of private link resource. + [ProviderNamespace ]: Namespace of the provider of the topic. + [ResourceGroupName ]: The name of the resource group within the partners subscription. + [ResourceName ]: Name of the resource. + [ResourceTypeName ]: Name of the resource type. + [Scope ]: The scope of the event subscription. The scope can be a subscription, or a resource group, or a top level resource belonging to a resource provider namespace, or an EventGrid topic. For example, use '/subscriptions/{subscriptionId}/' for a subscription, '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}' for a resource group, and '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}' for a resource, and '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.EventGrid/topics/{topicName}' for an EventGrid topic. + [SubscriptionId ]: Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription ID forms part of the URI for every service call. + [SystemTopicName ]: Name of the system topic. + [TopicName ]: Name of the domain topic. + [TopicTypeName ]: Name of the topic type. + [VerifiedPartnerName ]: Name of the verified partner. +.Link +https://docs.microsoft.com/en-us/powershell/module/az.eventgrid/get-azeventgridpartnertopic +#> +function Get-AzEventGridPartnerTopic { +[OutputType([Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerTopic])] +[CmdletBinding(DefaultParameterSetName='List', PositionalBinding=$false)] +param( + [Parameter(ParameterSetName='Get', Mandatory)] + [Alias('PartnerTopicName')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [System.String] + # Name of the partner topic. + ${Name}, + + [Parameter(ParameterSetName='Get', Mandatory)] + [Parameter(ParameterSetName='List1', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [System.String] + # The name of the resource group within the user's subscription. + ${ResourceGroupName}, + + [Parameter(ParameterSetName='Get')] + [Parameter(ParameterSetName='List')] + [Parameter(ParameterSetName='List1')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] + [System.String[]] + # Subscription credentials that uniquely identify a Microsoft Azure subscription. + # The subscription ID forms part of the URI for every service call. + ${SubscriptionId}, + + [Parameter(ParameterSetName='GetViaIdentity', Mandatory, ValueFromPipeline)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.IEventGridIdentity] + # 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.EventGrid.Category('Query')] + [System.String] + # The query used to filter the search results using OData syntax. + # Filtering is permitted on the 'name' property only and with limited number of OData operations. + # These operations are: the 'contains' function as well as the following logical operations: not, and, or, eq (for equal), and ne (for not equal). + # No arithmetic operations are supported. + # The following is a valid filter example: $filter=contains(namE, 'PATTERN') and name ne 'PATTERN-1'. + # The following is not a valid filter example: $filter=location eq 'westus'. + ${Filter}, + + [Parameter(ParameterSetName='List')] + [Parameter(ParameterSetName='List1')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Query')] + [System.Int32] + # The number of results to return per page for the list operation. + # Valid range for top parameter is 1 to 100. + # If not specified, the default number of results to be returned is 20 items per page. + ${Top}, + + [Parameter()] + [Alias('AzureRMContext', 'AzureCredential')] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Returns true when the command succeeds + ${PassThru}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + if ($null -eq [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion) { + [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion = $Host.Runspace.Version.ToString() + } + $preTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + if ($preTelemetryId -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId =(New-Guid).ToString() + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.module]::Instance.Telemetry.Invoke('Create', $MyInvocation, $parameterSet, $PSCmdlet) + } else { + $internalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + if ($internalCalledCmdlets -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $MyInvocation.MyCommand.Name + } else { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets += ',' + $MyInvocation.MyCommand.Name + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = 'internal' + } + + $mapping = @{ + Get = 'Az.EventGrid.private\Get-AzEventGridPartnerTopic_Get'; + GetViaIdentity = 'Az.EventGrid.private\Get-AzEventGridPartnerTopic_GetViaIdentity'; + List = 'Az.EventGrid.private\Get-AzEventGridPartnerTopic_List'; + List1 = 'Az.EventGrid.private\Get-AzEventGridPartnerTopic_List1'; + } + if (('Get', 'List', 'List1') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { + $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } + + finally { + $backupTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + $backupInternalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + +} +end { + try { + $steppablePipeline.End() + + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $backupTelemetryId + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $backupInternalCalledCmdlets + if ($preTelemetryId -eq '') { + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.module]::Instance.Telemetry.Invoke('Send', $MyInvocation, $parameterSet, $PSCmdlet) + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $preTelemetryId + + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} +} + +<# +.Synopsis +Get a specific private endpoint connection under a topic, domain, or partner namespace. +.Description +Get a specific private endpoint connection under a topic, domain, or partner namespace. +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Inputs +Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.IEventGridIdentity +.Outputs +Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPrivateEndpointConnection +.Notes +COMPLEX PARAMETER PROPERTIES + +To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. + +INPUTOBJECT : Identity Parameter + [ChannelName ]: Name of the channel. + [DomainName ]: Name of the domain. + [DomainTopicName ]: Name of the topic. + [EventChannelName ]: Name of the event channel. + [EventSubscriptionName ]: Name of the event subscription. + [Id ]: Resource identity path + [Location ]: Name of the location. + [ParentName ]: The name of the parent resource (namely, either, the topic name, domain name, or partner namespace name). + [ParentType ]: The type of the parent resource. This can be either \'topics\', \'domains\', or \'partnerNamespaces\'. + [PartnerDestinationName ]: Name of the partner destination. + [PartnerNamespaceName ]: Name of the partner namespace. + [PartnerRegistrationName ]: Name of the partner registration. + [PartnerTopicName ]: Name of the partner topic. + [PrivateEndpointConnectionName ]: The name of the private endpoint connection connection. + [PrivateLinkResourceName ]: The name of private link resource. + [ProviderNamespace ]: Namespace of the provider of the topic. + [ResourceGroupName ]: The name of the resource group within the partners subscription. + [ResourceName ]: Name of the resource. + [ResourceTypeName ]: Name of the resource type. + [Scope ]: The scope of the event subscription. The scope can be a subscription, or a resource group, or a top level resource belonging to a resource provider namespace, or an EventGrid topic. For example, use '/subscriptions/{subscriptionId}/' for a subscription, '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}' for a resource group, and '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}' for a resource, and '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.EventGrid/topics/{topicName}' for an EventGrid topic. + [SubscriptionId ]: Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription ID forms part of the URI for every service call. + [SystemTopicName ]: Name of the system topic. + [TopicName ]: Name of the domain topic. + [TopicTypeName ]: Name of the topic type. + [VerifiedPartnerName ]: Name of the verified partner. +.Link +https://docs.microsoft.com/en-us/powershell/module/az.eventgrid/get-azeventgridprivateendpointconnection +#> +function Get-AzEventGridPrivateEndpointConnection { +[OutputType([Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPrivateEndpointConnection])] +[CmdletBinding(DefaultParameterSetName='List', PositionalBinding=$false)] +param( + [Parameter(ParameterSetName='Get', Mandatory)] + [Alias('PrivateEndpointConnectionName')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [System.String] + # The name of the private endpoint connection connection. + ${Name}, + + [Parameter(ParameterSetName='Get', Mandatory)] + [Parameter(ParameterSetName='List', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [System.String] + # The name of the parent resource (namely, either, the topic name, domain name, or partner namespace name). + ${ParentName}, + + [Parameter(ParameterSetName='Get', Mandatory)] + [Parameter(ParameterSetName='List', Mandatory)] + [ArgumentCompleter([Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.ParentType])] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.ParentType] + # The type of the parent resource. + # This can be either \'topics\', \'domains\', or \'partnerNamespaces\'. + ${ParentType}, + + [Parameter(ParameterSetName='Get', Mandatory)] + [Parameter(ParameterSetName='List', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [System.String] + # The name of the resource group within the user's subscription. + ${ResourceGroupName}, + + [Parameter(ParameterSetName='Get')] + [Parameter(ParameterSetName='List')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] + [System.String[]] + # Subscription credentials that uniquely identify a Microsoft Azure subscription. + # The subscription ID forms part of the URI for every service call. + ${SubscriptionId}, + + [Parameter(ParameterSetName='GetViaIdentity', Mandatory, ValueFromPipeline)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.IEventGridIdentity] + # Identity Parameter + # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + ${InputObject}, + + [Parameter(ParameterSetName='List')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Query')] + [System.String] + # The query used to filter the search results using OData syntax. + # Filtering is permitted on the 'name' property only and with limited number of OData operations. + # These operations are: the 'contains' function as well as the following logical operations: not, and, or, eq (for equal), and ne (for not equal). + # No arithmetic operations are supported. + # The following is a valid filter example: $filter=contains(namE, 'PATTERN') and name ne 'PATTERN-1'. + # The following is not a valid filter example: $filter=location eq 'westus'. + ${Filter}, + + [Parameter(ParameterSetName='List')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Query')] + [System.Int32] + # The number of results to return per page for the list operation. + # Valid range for top parameter is 1 to 100. + # If not specified, the default number of results to be returned is 20 items per page. + ${Top}, + + [Parameter()] + [Alias('AzureRMContext', 'AzureCredential')] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Returns true when the command succeeds + ${PassThru}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + if ($null -eq [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion) { + [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion = $Host.Runspace.Version.ToString() + } + $preTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + if ($preTelemetryId -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId =(New-Guid).ToString() + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.module]::Instance.Telemetry.Invoke('Create', $MyInvocation, $parameterSet, $PSCmdlet) + } else { + $internalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + if ($internalCalledCmdlets -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $MyInvocation.MyCommand.Name + } else { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets += ',' + $MyInvocation.MyCommand.Name + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = 'internal' + } + + $mapping = @{ + Get = 'Az.EventGrid.private\Get-AzEventGridPrivateEndpointConnection_Get'; + GetViaIdentity = 'Az.EventGrid.private\Get-AzEventGridPrivateEndpointConnection_GetViaIdentity'; + List = 'Az.EventGrid.private\Get-AzEventGridPrivateEndpointConnection_List'; + } + if (('Get', 'List') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { + $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } + + finally { + $backupTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + $backupInternalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + +} +end { + try { + $steppablePipeline.End() + + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $backupTelemetryId + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $backupInternalCalledCmdlets + if ($preTelemetryId -eq '') { + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.module]::Instance.Telemetry.Invoke('Send', $MyInvocation, $parameterSet, $PSCmdlet) + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $preTelemetryId + + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} +} + +<# +.Synopsis +Get properties of a private link resource. +.Description +Get properties of a private link resource. +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Inputs +Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.IEventGridIdentity +.Outputs +Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPrivateLinkResource +.Notes +COMPLEX PARAMETER PROPERTIES + +To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. + +INPUTOBJECT : Identity Parameter + [ChannelName ]: Name of the channel. + [DomainName ]: Name of the domain. + [DomainTopicName ]: Name of the topic. + [EventChannelName ]: Name of the event channel. + [EventSubscriptionName ]: Name of the event subscription. + [Id ]: Resource identity path + [Location ]: Name of the location. + [ParentName ]: The name of the parent resource (namely, either, the topic name, domain name, or partner namespace name). + [ParentType ]: The type of the parent resource. This can be either \'topics\', \'domains\', or \'partnerNamespaces\'. + [PartnerDestinationName ]: Name of the partner destination. + [PartnerNamespaceName ]: Name of the partner namespace. + [PartnerRegistrationName ]: Name of the partner registration. + [PartnerTopicName ]: Name of the partner topic. + [PrivateEndpointConnectionName ]: The name of the private endpoint connection connection. + [PrivateLinkResourceName ]: The name of private link resource. + [ProviderNamespace ]: Namespace of the provider of the topic. + [ResourceGroupName ]: The name of the resource group within the partners subscription. + [ResourceName ]: Name of the resource. + [ResourceTypeName ]: Name of the resource type. + [Scope ]: The scope of the event subscription. The scope can be a subscription, or a resource group, or a top level resource belonging to a resource provider namespace, or an EventGrid topic. For example, use '/subscriptions/{subscriptionId}/' for a subscription, '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}' for a resource group, and '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}' for a resource, and '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.EventGrid/topics/{topicName}' for an EventGrid topic. + [SubscriptionId ]: Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription ID forms part of the URI for every service call. + [SystemTopicName ]: Name of the system topic. + [TopicName ]: Name of the domain topic. + [TopicTypeName ]: Name of the topic type. + [VerifiedPartnerName ]: Name of the verified partner. +.Link +https://docs.microsoft.com/en-us/powershell/module/az.eventgrid/get-azeventgridprivatelinkresource +#> +function Get-AzEventGridPrivateLinkResource { +[OutputType([Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPrivateLinkResource])] +[CmdletBinding(DefaultParameterSetName='List', PositionalBinding=$false)] +param( + [Parameter(ParameterSetName='Get', Mandatory)] + [Alias('PrivateLinkResourceName')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [System.String] + # The name of private link resource. + ${Name}, + + [Parameter(ParameterSetName='Get', Mandatory)] + [Parameter(ParameterSetName='List', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [System.String] + # The name of the parent resource (namely, either, the topic name, domain name, or partner namespace name). + ${ParentName}, + + [Parameter(ParameterSetName='Get', Mandatory)] + [Parameter(ParameterSetName='List', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [System.String] + # The type of the parent resource. + # This can be either \'topics\', \'domains\', or \'partnerNamespaces\'. + ${ParentType}, + + [Parameter(ParameterSetName='Get', Mandatory)] + [Parameter(ParameterSetName='List', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [System.String] + # The name of the resource group within the user's subscription. + ${ResourceGroupName}, + + [Parameter(ParameterSetName='Get')] + [Parameter(ParameterSetName='List')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] + [System.String[]] + # Subscription credentials that uniquely identify a Microsoft Azure subscription. + # The subscription ID forms part of the URI for every service call. + ${SubscriptionId}, + + [Parameter(ParameterSetName='GetViaIdentity', Mandatory, ValueFromPipeline)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.IEventGridIdentity] + # Identity Parameter + # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + ${InputObject}, + + [Parameter(ParameterSetName='List')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Query')] + [System.String] + # The query used to filter the search results using OData syntax. + # Filtering is permitted on the 'name' property only and with limited number of OData operations. + # These operations are: the 'contains' function as well as the following logical operations: not, and, or, eq (for equal), and ne (for not equal). + # No arithmetic operations are supported. + # The following is a valid filter example: $filter=contains(namE, 'PATTERN') and name ne 'PATTERN-1'. + # The following is not a valid filter example: $filter=location eq 'westus'. + ${Filter}, + + [Parameter(ParameterSetName='List')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Query')] + [System.Int32] + # The number of results to return per page for the list operation. + # Valid range for top parameter is 1 to 100. + # If not specified, the default number of results to be returned is 20 items per page. + ${Top}, + + [Parameter()] + [Alias('AzureRMContext', 'AzureCredential')] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Returns true when the command succeeds + ${PassThru}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + if ($null -eq [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion) { + [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion = $Host.Runspace.Version.ToString() + } + $preTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + if ($preTelemetryId -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId =(New-Guid).ToString() + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.module]::Instance.Telemetry.Invoke('Create', $MyInvocation, $parameterSet, $PSCmdlet) + } else { + $internalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + if ($internalCalledCmdlets -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $MyInvocation.MyCommand.Name + } else { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets += ',' + $MyInvocation.MyCommand.Name + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = 'internal' + } + + $mapping = @{ + Get = 'Az.EventGrid.private\Get-AzEventGridPrivateLinkResource_Get'; + GetViaIdentity = 'Az.EventGrid.private\Get-AzEventGridPrivateLinkResource_GetViaIdentity'; + List = 'Az.EventGrid.private\Get-AzEventGridPrivateLinkResource_List'; + } + if (('Get', 'List') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { + $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } + + finally { + $backupTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + $backupInternalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + +} +end { + try { + $steppablePipeline.End() + + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $backupTelemetryId + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $backupInternalCalledCmdlets + if ($preTelemetryId -eq '') { + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.module]::Instance.Telemetry.Invoke('Send', $MyInvocation, $parameterSet, $PSCmdlet) + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $preTelemetryId + + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} +} + +<# +.Synopsis +Get all delivery attributes for an event subscription. +.Description +Get all delivery attributes for an event subscription. +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Inputs +Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.IEventGridIdentity +.Outputs +Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDeliveryAttributeMapping +.Notes +COMPLEX PARAMETER PROPERTIES + +To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. + +INPUTOBJECT : Identity Parameter + [ChannelName ]: Name of the channel. + [DomainName ]: Name of the domain. + [DomainTopicName ]: Name of the topic. + [EventChannelName ]: Name of the event channel. + [EventSubscriptionName ]: Name of the event subscription. + [Id ]: Resource identity path + [Location ]: Name of the location. + [ParentName ]: The name of the parent resource (namely, either, the topic name, domain name, or partner namespace name). + [ParentType ]: The type of the parent resource. This can be either \'topics\', \'domains\', or \'partnerNamespaces\'. + [PartnerDestinationName ]: Name of the partner destination. + [PartnerNamespaceName ]: Name of the partner namespace. + [PartnerRegistrationName ]: Name of the partner registration. + [PartnerTopicName ]: Name of the partner topic. + [PrivateEndpointConnectionName ]: The name of the private endpoint connection connection. + [PrivateLinkResourceName ]: The name of private link resource. + [ProviderNamespace ]: Namespace of the provider of the topic. + [ResourceGroupName ]: The name of the resource group within the partners subscription. + [ResourceName ]: Name of the resource. + [ResourceTypeName ]: Name of the resource type. + [Scope ]: The scope of the event subscription. The scope can be a subscription, or a resource group, or a top level resource belonging to a resource provider namespace, or an EventGrid topic. For example, use '/subscriptions/{subscriptionId}/' for a subscription, '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}' for a resource group, and '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}' for a resource, and '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.EventGrid/topics/{topicName}' for an EventGrid topic. + [SubscriptionId ]: Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription ID forms part of the URI for every service call. + [SystemTopicName ]: Name of the system topic. + [TopicName ]: Name of the domain topic. + [TopicTypeName ]: Name of the topic type. + [VerifiedPartnerName ]: Name of the verified partner. +.Link +https://docs.microsoft.com/en-us/powershell/module/az.eventgrid/get-azeventgridsystemtopiceventsubscriptiondeliveryattribute +#> +function Get-AzEventGridSystemTopicEventSubscriptionDeliveryAttribute { +[OutputType([Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDeliveryAttributeMapping])] +[CmdletBinding(DefaultParameterSetName='Get', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(ParameterSetName='Get', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [System.String] + # Name of the event subscription to be created. + # Event subscription names must be between 3 and 100 characters in length and use alphanumeric letters only. + ${EventSubscriptionName}, + + [Parameter(ParameterSetName='Get', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [System.String] + # The name of the resource group within the user's subscription. + ${ResourceGroupName}, + + [Parameter(ParameterSetName='Get')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] + [System.String[]] + # Subscription credentials that uniquely identify a Microsoft Azure subscription. + # The subscription ID forms part of the URI for every service call. + ${SubscriptionId}, + + [Parameter(ParameterSetName='Get', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [System.String] + # Name of the system topic. + ${SystemTopicName}, + + [Parameter(ParameterSetName='GetViaIdentity', Mandatory, ValueFromPipeline)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.IEventGridIdentity] + # Identity Parameter + # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + ${InputObject}, + + [Parameter()] + [Alias('AzureRMContext', 'AzureCredential')] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Returns true when the command succeeds + ${PassThru}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + if ($null -eq [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion) { + [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion = $Host.Runspace.Version.ToString() + } + $preTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + if ($preTelemetryId -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId =(New-Guid).ToString() + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.module]::Instance.Telemetry.Invoke('Create', $MyInvocation, $parameterSet, $PSCmdlet) + } else { + $internalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + if ($internalCalledCmdlets -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $MyInvocation.MyCommand.Name + } else { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets += ',' + $MyInvocation.MyCommand.Name + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = 'internal' + } + + $mapping = @{ + Get = 'Az.EventGrid.private\Get-AzEventGridSystemTopicEventSubscriptionDeliveryAttribute_Get'; + GetViaIdentity = 'Az.EventGrid.private\Get-AzEventGridSystemTopicEventSubscriptionDeliveryAttribute_GetViaIdentity'; + } + if (('Get') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { + $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } + + finally { + $backupTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + $backupInternalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + +} +end { + try { + $steppablePipeline.End() + + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $backupTelemetryId + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $backupInternalCalledCmdlets + if ($preTelemetryId -eq '') { + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.module]::Instance.Telemetry.Invoke('Send', $MyInvocation, $parameterSet, $PSCmdlet) + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $preTelemetryId + + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} +} + +<# +.Synopsis +Get the full endpoint URL for an event subscription of a system topic. +.Description +Get the full endpoint URL for an event subscription of a system topic. +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Inputs +Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.IEventGridIdentity +.Outputs +System.String +.Notes +COMPLEX PARAMETER PROPERTIES + +To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. + +INPUTOBJECT : Identity Parameter + [ChannelName ]: Name of the channel. + [DomainName ]: Name of the domain. + [DomainTopicName ]: Name of the topic. + [EventChannelName ]: Name of the event channel. + [EventSubscriptionName ]: Name of the event subscription. + [Id ]: Resource identity path + [Location ]: Name of the location. + [ParentName ]: The name of the parent resource (namely, either, the topic name, domain name, or partner namespace name). + [ParentType ]: The type of the parent resource. This can be either \'topics\', \'domains\', or \'partnerNamespaces\'. + [PartnerDestinationName ]: Name of the partner destination. + [PartnerNamespaceName ]: Name of the partner namespace. + [PartnerRegistrationName ]: Name of the partner registration. + [PartnerTopicName ]: Name of the partner topic. + [PrivateEndpointConnectionName ]: The name of the private endpoint connection connection. + [PrivateLinkResourceName ]: The name of private link resource. + [ProviderNamespace ]: Namespace of the provider of the topic. + [ResourceGroupName ]: The name of the resource group within the partners subscription. + [ResourceName ]: Name of the resource. + [ResourceTypeName ]: Name of the resource type. + [Scope ]: The scope of the event subscription. The scope can be a subscription, or a resource group, or a top level resource belonging to a resource provider namespace, or an EventGrid topic. For example, use '/subscriptions/{subscriptionId}/' for a subscription, '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}' for a resource group, and '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}' for a resource, and '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.EventGrid/topics/{topicName}' for an EventGrid topic. + [SubscriptionId ]: Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription ID forms part of the URI for every service call. + [SystemTopicName ]: Name of the system topic. + [TopicName ]: Name of the domain topic. + [TopicTypeName ]: Name of the topic type. + [VerifiedPartnerName ]: Name of the verified partner. +.Link +https://docs.microsoft.com/en-us/powershell/module/az.eventgrid/get-azeventgridsystemtopiceventsubscriptionfullurl +#> +function Get-AzEventGridSystemTopicEventSubscriptionFullUrl { +[OutputType([System.String])] +[CmdletBinding(DefaultParameterSetName='Get', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(ParameterSetName='Get', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [System.String] + # Name of the event subscription to be created. + # Event subscription names must be between 3 and 100 characters in length and use alphanumeric letters only. + ${EventSubscriptionName}, + + [Parameter(ParameterSetName='Get', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [System.String] + # The name of the resource group within the user's subscription. + ${ResourceGroupName}, + + [Parameter(ParameterSetName='Get')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] + [System.String[]] + # Subscription credentials that uniquely identify a Microsoft Azure subscription. + # The subscription ID forms part of the URI for every service call. + ${SubscriptionId}, + + [Parameter(ParameterSetName='Get', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [System.String] + # Name of the system topic. + ${SystemTopicName}, + + [Parameter(ParameterSetName='GetViaIdentity', Mandatory, ValueFromPipeline)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.IEventGridIdentity] + # Identity Parameter + # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + ${InputObject}, + + [Parameter()] + [Alias('AzureRMContext', 'AzureCredential')] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Returns true when the command succeeds + ${PassThru}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + if ($null -eq [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion) { + [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion = $Host.Runspace.Version.ToString() + } + $preTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + if ($preTelemetryId -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId =(New-Guid).ToString() + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.module]::Instance.Telemetry.Invoke('Create', $MyInvocation, $parameterSet, $PSCmdlet) + } else { + $internalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + if ($internalCalledCmdlets -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $MyInvocation.MyCommand.Name + } else { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets += ',' + $MyInvocation.MyCommand.Name + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = 'internal' + } + + $mapping = @{ + Get = 'Az.EventGrid.private\Get-AzEventGridSystemTopicEventSubscriptionFullUrl_Get'; + GetViaIdentity = 'Az.EventGrid.private\Get-AzEventGridSystemTopicEventSubscriptionFullUrl_GetViaIdentity'; + } + if (('Get') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { + $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } + + finally { + $backupTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + $backupInternalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + +} +end { + try { + $steppablePipeline.End() + + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $backupTelemetryId + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $backupInternalCalledCmdlets + if ($preTelemetryId -eq '') { + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.module]::Instance.Telemetry.Invoke('Send', $MyInvocation, $parameterSet, $PSCmdlet) + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $preTelemetryId + + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} +} + +<# +.Synopsis +Get an event subscription. +.Description +Get an event subscription. +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Inputs +Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.IEventGridIdentity +.Outputs +Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscription +.Notes +COMPLEX PARAMETER PROPERTIES + +To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. + +INPUTOBJECT : Identity Parameter + [ChannelName ]: Name of the channel. + [DomainName ]: Name of the domain. + [DomainTopicName ]: Name of the topic. + [EventChannelName ]: Name of the event channel. + [EventSubscriptionName ]: Name of the event subscription. + [Id ]: Resource identity path + [Location ]: Name of the location. + [ParentName ]: The name of the parent resource (namely, either, the topic name, domain name, or partner namespace name). + [ParentType ]: The type of the parent resource. This can be either \'topics\', \'domains\', or \'partnerNamespaces\'. + [PartnerDestinationName ]: Name of the partner destination. + [PartnerNamespaceName ]: Name of the partner namespace. + [PartnerRegistrationName ]: Name of the partner registration. + [PartnerTopicName ]: Name of the partner topic. + [PrivateEndpointConnectionName ]: The name of the private endpoint connection connection. + [PrivateLinkResourceName ]: The name of private link resource. + [ProviderNamespace ]: Namespace of the provider of the topic. + [ResourceGroupName ]: The name of the resource group within the partners subscription. + [ResourceName ]: Name of the resource. + [ResourceTypeName ]: Name of the resource type. + [Scope ]: The scope of the event subscription. The scope can be a subscription, or a resource group, or a top level resource belonging to a resource provider namespace, or an EventGrid topic. For example, use '/subscriptions/{subscriptionId}/' for a subscription, '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}' for a resource group, and '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}' for a resource, and '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.EventGrid/topics/{topicName}' for an EventGrid topic. + [SubscriptionId ]: Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription ID forms part of the URI for every service call. + [SystemTopicName ]: Name of the system topic. + [TopicName ]: Name of the domain topic. + [TopicTypeName ]: Name of the topic type. + [VerifiedPartnerName ]: Name of the verified partner. +.Link +https://docs.microsoft.com/en-us/powershell/module/az.eventgrid/get-azeventgridsystemtopiceventsubscription +#> +function Get-AzEventGridSystemTopicEventSubscription { +[OutputType([Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscription])] +[CmdletBinding(DefaultParameterSetName='List', PositionalBinding=$false)] +param( + [Parameter(ParameterSetName='Get', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [System.String] + # Name of the event subscription to be created. + # Event subscription names must be between 3 and 100 characters in length and use alphanumeric letters only. + ${EventSubscriptionName}, + + [Parameter(ParameterSetName='Get', Mandatory)] + [Parameter(ParameterSetName='List', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [System.String] + # The name of the resource group within the user's subscription. + ${ResourceGroupName}, + + [Parameter(ParameterSetName='Get')] + [Parameter(ParameterSetName='List')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] + [System.String[]] + # Subscription credentials that uniquely identify a Microsoft Azure subscription. + # The subscription ID forms part of the URI for every service call. + ${SubscriptionId}, + + [Parameter(ParameterSetName='Get', Mandatory)] + [Parameter(ParameterSetName='List', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [System.String] + # Name of the system topic. + ${SystemTopicName}, + + [Parameter(ParameterSetName='GetViaIdentity', Mandatory, ValueFromPipeline)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.IEventGridIdentity] + # Identity Parameter + # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + ${InputObject}, + + [Parameter(ParameterSetName='List')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Query')] + [System.String] + # The query used to filter the search results using OData syntax. + # Filtering is permitted on the 'name' property only and with limited number of OData operations. + # These operations are: the 'contains' function as well as the following logical operations: not, and, or, eq (for equal), and ne (for not equal). + # No arithmetic operations are supported. + # The following is a valid filter example: $filter=contains(namE, 'PATTERN') and name ne 'PATTERN-1'. + # The following is not a valid filter example: $filter=location eq 'westus'. + ${Filter}, + + [Parameter(ParameterSetName='List')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Query')] + [System.Int32] + # The number of results to return per page for the list operation. + # Valid range for top parameter is 1 to 100. + # If not specified, the default number of results to be returned is 20 items per page. + ${Top}, + + [Parameter()] + [Alias('AzureRMContext', 'AzureCredential')] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Returns true when the command succeeds + ${PassThru}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + if ($null -eq [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion) { + [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion = $Host.Runspace.Version.ToString() + } + $preTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + if ($preTelemetryId -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId =(New-Guid).ToString() + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.module]::Instance.Telemetry.Invoke('Create', $MyInvocation, $parameterSet, $PSCmdlet) + } else { + $internalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + if ($internalCalledCmdlets -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $MyInvocation.MyCommand.Name + } else { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets += ',' + $MyInvocation.MyCommand.Name + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = 'internal' + } + + $mapping = @{ + Get = 'Az.EventGrid.private\Get-AzEventGridSystemTopicEventSubscription_Get'; + GetViaIdentity = 'Az.EventGrid.private\Get-AzEventGridSystemTopicEventSubscription_GetViaIdentity'; + List = 'Az.EventGrid.private\Get-AzEventGridSystemTopicEventSubscription_List'; + } + if (('Get', 'List') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { + $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } + + finally { + $backupTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + $backupInternalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + +} +end { + try { + $steppablePipeline.End() + + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $backupTelemetryId + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $backupInternalCalledCmdlets + if ($preTelemetryId -eq '') { + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.module]::Instance.Telemetry.Invoke('Send', $MyInvocation, $parameterSet, $PSCmdlet) + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $preTelemetryId + + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} +} + +<# +.Synopsis +Get properties of a system topic. +.Description +Get properties of a system topic. +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Inputs +Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.IEventGridIdentity +.Outputs +Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ISystemTopic +.Notes +COMPLEX PARAMETER PROPERTIES + +To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. + +INPUTOBJECT : Identity Parameter + [ChannelName ]: Name of the channel. + [DomainName ]: Name of the domain. + [DomainTopicName ]: Name of the topic. + [EventChannelName ]: Name of the event channel. + [EventSubscriptionName ]: Name of the event subscription. + [Id ]: Resource identity path + [Location ]: Name of the location. + [ParentName ]: The name of the parent resource (namely, either, the topic name, domain name, or partner namespace name). + [ParentType ]: The type of the parent resource. This can be either \'topics\', \'domains\', or \'partnerNamespaces\'. + [PartnerDestinationName ]: Name of the partner destination. + [PartnerNamespaceName ]: Name of the partner namespace. + [PartnerRegistrationName ]: Name of the partner registration. + [PartnerTopicName ]: Name of the partner topic. + [PrivateEndpointConnectionName ]: The name of the private endpoint connection connection. + [PrivateLinkResourceName ]: The name of private link resource. + [ProviderNamespace ]: Namespace of the provider of the topic. + [ResourceGroupName ]: The name of the resource group within the partners subscription. + [ResourceName ]: Name of the resource. + [ResourceTypeName ]: Name of the resource type. + [Scope ]: The scope of the event subscription. The scope can be a subscription, or a resource group, or a top level resource belonging to a resource provider namespace, or an EventGrid topic. For example, use '/subscriptions/{subscriptionId}/' for a subscription, '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}' for a resource group, and '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}' for a resource, and '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.EventGrid/topics/{topicName}' for an EventGrid topic. + [SubscriptionId ]: Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription ID forms part of the URI for every service call. + [SystemTopicName ]: Name of the system topic. + [TopicName ]: Name of the domain topic. + [TopicTypeName ]: Name of the topic type. + [VerifiedPartnerName ]: Name of the verified partner. +.Link +https://docs.microsoft.com/en-us/powershell/module/az.eventgrid/get-azeventgridsystemtopic +#> +function Get-AzEventGridSystemTopic { +[OutputType([Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ISystemTopic])] +[CmdletBinding(DefaultParameterSetName='List', PositionalBinding=$false)] +param( + [Parameter(ParameterSetName='Get', Mandatory)] + [Alias('SystemTopicName')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [System.String] + # Name of the system topic. + ${Name}, + + [Parameter(ParameterSetName='Get', Mandatory)] + [Parameter(ParameterSetName='List1', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [System.String] + # The name of the resource group within the user's subscription. + ${ResourceGroupName}, + + [Parameter(ParameterSetName='Get')] + [Parameter(ParameterSetName='List')] + [Parameter(ParameterSetName='List1')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] + [System.String[]] + # Subscription credentials that uniquely identify a Microsoft Azure subscription. + # The subscription ID forms part of the URI for every service call. + ${SubscriptionId}, + + [Parameter(ParameterSetName='GetViaIdentity', Mandatory, ValueFromPipeline)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.IEventGridIdentity] + # 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.EventGrid.Category('Query')] + [System.String] + # The query used to filter the search results using OData syntax. + # Filtering is permitted on the 'name' property only and with limited number of OData operations. + # These operations are: the 'contains' function as well as the following logical operations: not, and, or, eq (for equal), and ne (for not equal). + # No arithmetic operations are supported. + # The following is a valid filter example: $filter=contains(namE, 'PATTERN') and name ne 'PATTERN-1'. + # The following is not a valid filter example: $filter=location eq 'westus'. + ${Filter}, + + [Parameter(ParameterSetName='List')] + [Parameter(ParameterSetName='List1')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Query')] + [System.Int32] + # The number of results to return per page for the list operation. + # Valid range for top parameter is 1 to 100. + # If not specified, the default number of results to be returned is 20 items per page. + ${Top}, + + [Parameter()] + [Alias('AzureRMContext', 'AzureCredential')] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Returns true when the command succeeds + ${PassThru}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + if ($null -eq [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion) { + [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion = $Host.Runspace.Version.ToString() + } + $preTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + if ($preTelemetryId -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId =(New-Guid).ToString() + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.module]::Instance.Telemetry.Invoke('Create', $MyInvocation, $parameterSet, $PSCmdlet) + } else { + $internalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + if ($internalCalledCmdlets -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $MyInvocation.MyCommand.Name + } else { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets += ',' + $MyInvocation.MyCommand.Name + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = 'internal' + } + + $mapping = @{ + Get = 'Az.EventGrid.private\Get-AzEventGridSystemTopic_Get'; + GetViaIdentity = 'Az.EventGrid.private\Get-AzEventGridSystemTopic_GetViaIdentity'; + List = 'Az.EventGrid.private\Get-AzEventGridSystemTopic_List'; + List1 = 'Az.EventGrid.private\Get-AzEventGridSystemTopic_List1'; + } + if (('Get', 'List', 'List1') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { + $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } + + finally { + $backupTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + $backupInternalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + +} +end { + try { + $steppablePipeline.End() + + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $backupTelemetryId + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $backupInternalCalledCmdlets + if ($preTelemetryId -eq '') { + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.module]::Instance.Telemetry.Invoke('Send', $MyInvocation, $parameterSet, $PSCmdlet) + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $preTelemetryId + + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} +} + +<# +.Synopsis +Get all delivery attributes for an event subscription for topic. +.Description +Get all delivery attributes for an event subscription for topic. +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Inputs +Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.IEventGridIdentity +.Outputs +Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDeliveryAttributeMapping +.Notes +COMPLEX PARAMETER PROPERTIES + +To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. + +INPUTOBJECT : Identity Parameter + [ChannelName ]: Name of the channel. + [DomainName ]: Name of the domain. + [DomainTopicName ]: Name of the topic. + [EventChannelName ]: Name of the event channel. + [EventSubscriptionName ]: Name of the event subscription. + [Id ]: Resource identity path + [Location ]: Name of the location. + [ParentName ]: The name of the parent resource (namely, either, the topic name, domain name, or partner namespace name). + [ParentType ]: The type of the parent resource. This can be either \'topics\', \'domains\', or \'partnerNamespaces\'. + [PartnerDestinationName ]: Name of the partner destination. + [PartnerNamespaceName ]: Name of the partner namespace. + [PartnerRegistrationName ]: Name of the partner registration. + [PartnerTopicName ]: Name of the partner topic. + [PrivateEndpointConnectionName ]: The name of the private endpoint connection connection. + [PrivateLinkResourceName ]: The name of private link resource. + [ProviderNamespace ]: Namespace of the provider of the topic. + [ResourceGroupName ]: The name of the resource group within the partners subscription. + [ResourceName ]: Name of the resource. + [ResourceTypeName ]: Name of the resource type. + [Scope ]: The scope of the event subscription. The scope can be a subscription, or a resource group, or a top level resource belonging to a resource provider namespace, or an EventGrid topic. For example, use '/subscriptions/{subscriptionId}/' for a subscription, '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}' for a resource group, and '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}' for a resource, and '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.EventGrid/topics/{topicName}' for an EventGrid topic. + [SubscriptionId ]: Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription ID forms part of the URI for every service call. + [SystemTopicName ]: Name of the system topic. + [TopicName ]: Name of the domain topic. + [TopicTypeName ]: Name of the topic type. + [VerifiedPartnerName ]: Name of the verified partner. +.Link +https://docs.microsoft.com/en-us/powershell/module/az.eventgrid/get-azeventgridtopiceventsubscriptiondeliveryattribute +#> +function Get-AzEventGridTopicEventSubscriptionDeliveryAttribute { +[OutputType([Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDeliveryAttributeMapping])] +[CmdletBinding(DefaultParameterSetName='Get', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(ParameterSetName='Get', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [System.String] + # Name of the event subscription. + ${EventSubscriptionName}, + + [Parameter(ParameterSetName='Get', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [System.String] + # The name of the resource group within the user's subscription. + ${ResourceGroupName}, + + [Parameter(ParameterSetName='Get')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] + [System.String[]] + # Subscription credentials that uniquely identify a Microsoft Azure subscription. + # The subscription ID forms part of the URI for every service call. + ${SubscriptionId}, + + [Parameter(ParameterSetName='Get', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [System.String] + # Name of the domain topic. + ${TopicName}, + + [Parameter(ParameterSetName='GetViaIdentity', Mandatory, ValueFromPipeline)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.IEventGridIdentity] + # Identity Parameter + # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + ${InputObject}, + + [Parameter()] + [Alias('AzureRMContext', 'AzureCredential')] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Returns true when the command succeeds + ${PassThru}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + if ($null -eq [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion) { + [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion = $Host.Runspace.Version.ToString() + } + $preTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + if ($preTelemetryId -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId =(New-Guid).ToString() + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.module]::Instance.Telemetry.Invoke('Create', $MyInvocation, $parameterSet, $PSCmdlet) + } else { + $internalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + if ($internalCalledCmdlets -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $MyInvocation.MyCommand.Name + } else { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets += ',' + $MyInvocation.MyCommand.Name + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = 'internal' + } + + $mapping = @{ + Get = 'Az.EventGrid.private\Get-AzEventGridTopicEventSubscriptionDeliveryAttribute_Get'; + GetViaIdentity = 'Az.EventGrid.private\Get-AzEventGridTopicEventSubscriptionDeliveryAttribute_GetViaIdentity'; + } + if (('Get') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { + $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } + + finally { + $backupTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + $backupInternalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + +} +end { + try { + $steppablePipeline.End() + + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $backupTelemetryId + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $backupInternalCalledCmdlets + if ($preTelemetryId -eq '') { + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.module]::Instance.Telemetry.Invoke('Send', $MyInvocation, $parameterSet, $PSCmdlet) + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $preTelemetryId + + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} +} + +<# +.Synopsis +Get the full endpoint URL for an event subscription for topic. +.Description +Get the full endpoint URL for an event subscription for topic. +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Inputs +Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.IEventGridIdentity +.Outputs +System.String +.Notes +COMPLEX PARAMETER PROPERTIES + +To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. + +INPUTOBJECT : Identity Parameter + [ChannelName ]: Name of the channel. + [DomainName ]: Name of the domain. + [DomainTopicName ]: Name of the topic. + [EventChannelName ]: Name of the event channel. + [EventSubscriptionName ]: Name of the event subscription. + [Id ]: Resource identity path + [Location ]: Name of the location. + [ParentName ]: The name of the parent resource (namely, either, the topic name, domain name, or partner namespace name). + [ParentType ]: The type of the parent resource. This can be either \'topics\', \'domains\', or \'partnerNamespaces\'. + [PartnerDestinationName ]: Name of the partner destination. + [PartnerNamespaceName ]: Name of the partner namespace. + [PartnerRegistrationName ]: Name of the partner registration. + [PartnerTopicName ]: Name of the partner topic. + [PrivateEndpointConnectionName ]: The name of the private endpoint connection connection. + [PrivateLinkResourceName ]: The name of private link resource. + [ProviderNamespace ]: Namespace of the provider of the topic. + [ResourceGroupName ]: The name of the resource group within the partners subscription. + [ResourceName ]: Name of the resource. + [ResourceTypeName ]: Name of the resource type. + [Scope ]: The scope of the event subscription. The scope can be a subscription, or a resource group, or a top level resource belonging to a resource provider namespace, or an EventGrid topic. For example, use '/subscriptions/{subscriptionId}/' for a subscription, '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}' for a resource group, and '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}' for a resource, and '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.EventGrid/topics/{topicName}' for an EventGrid topic. + [SubscriptionId ]: Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription ID forms part of the URI for every service call. + [SystemTopicName ]: Name of the system topic. + [TopicName ]: Name of the domain topic. + [TopicTypeName ]: Name of the topic type. + [VerifiedPartnerName ]: Name of the verified partner. +.Link +https://docs.microsoft.com/en-us/powershell/module/az.eventgrid/get-azeventgridtopiceventsubscriptionfullurl +#> +function Get-AzEventGridTopicEventSubscriptionFullUrl { +[OutputType([System.String])] +[CmdletBinding(DefaultParameterSetName='Get', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(ParameterSetName='Get', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [System.String] + # Name of the event subscription. + ${EventSubscriptionName}, + + [Parameter(ParameterSetName='Get', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [System.String] + # The name of the resource group within the user's subscription. + ${ResourceGroupName}, + + [Parameter(ParameterSetName='Get')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] + [System.String[]] + # Subscription credentials that uniquely identify a Microsoft Azure subscription. + # The subscription ID forms part of the URI for every service call. + ${SubscriptionId}, + + [Parameter(ParameterSetName='Get', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [System.String] + # Name of the domain topic. + ${TopicName}, + + [Parameter(ParameterSetName='GetViaIdentity', Mandatory, ValueFromPipeline)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.IEventGridIdentity] + # Identity Parameter + # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + ${InputObject}, + + [Parameter()] + [Alias('AzureRMContext', 'AzureCredential')] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Returns true when the command succeeds + ${PassThru}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + if ($null -eq [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion) { + [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion = $Host.Runspace.Version.ToString() + } + $preTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + if ($preTelemetryId -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId =(New-Guid).ToString() + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.module]::Instance.Telemetry.Invoke('Create', $MyInvocation, $parameterSet, $PSCmdlet) + } else { + $internalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + if ($internalCalledCmdlets -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $MyInvocation.MyCommand.Name + } else { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets += ',' + $MyInvocation.MyCommand.Name + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = 'internal' + } + + $mapping = @{ + Get = 'Az.EventGrid.private\Get-AzEventGridTopicEventSubscriptionFullUrl_Get'; + GetViaIdentity = 'Az.EventGrid.private\Get-AzEventGridTopicEventSubscriptionFullUrl_GetViaIdentity'; + } + if (('Get') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { + $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } + + finally { + $backupTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + $backupInternalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + +} +end { + try { + $steppablePipeline.End() + + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $backupTelemetryId + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $backupInternalCalledCmdlets + if ($preTelemetryId -eq '') { + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.module]::Instance.Telemetry.Invoke('Send', $MyInvocation, $parameterSet, $PSCmdlet) + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $preTelemetryId + + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} +} + +<# +.Synopsis +Get properties of an event subscription of a topic. +.Description +Get properties of an event subscription of a topic. +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Inputs +Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.IEventGridIdentity +.Outputs +Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscription +.Notes +COMPLEX PARAMETER PROPERTIES + +To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. + +INPUTOBJECT : Identity Parameter + [ChannelName ]: Name of the channel. + [DomainName ]: Name of the domain. + [DomainTopicName ]: Name of the topic. + [EventChannelName ]: Name of the event channel. + [EventSubscriptionName ]: Name of the event subscription. + [Id ]: Resource identity path + [Location ]: Name of the location. + [ParentName ]: The name of the parent resource (namely, either, the topic name, domain name, or partner namespace name). + [ParentType ]: The type of the parent resource. This can be either \'topics\', \'domains\', or \'partnerNamespaces\'. + [PartnerDestinationName ]: Name of the partner destination. + [PartnerNamespaceName ]: Name of the partner namespace. + [PartnerRegistrationName ]: Name of the partner registration. + [PartnerTopicName ]: Name of the partner topic. + [PrivateEndpointConnectionName ]: The name of the private endpoint connection connection. + [PrivateLinkResourceName ]: The name of private link resource. + [ProviderNamespace ]: Namespace of the provider of the topic. + [ResourceGroupName ]: The name of the resource group within the partners subscription. + [ResourceName ]: Name of the resource. + [ResourceTypeName ]: Name of the resource type. + [Scope ]: The scope of the event subscription. The scope can be a subscription, or a resource group, or a top level resource belonging to a resource provider namespace, or an EventGrid topic. For example, use '/subscriptions/{subscriptionId}/' for a subscription, '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}' for a resource group, and '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}' for a resource, and '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.EventGrid/topics/{topicName}' for an EventGrid topic. + [SubscriptionId ]: Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription ID forms part of the URI for every service call. + [SystemTopicName ]: Name of the system topic. + [TopicName ]: Name of the domain topic. + [TopicTypeName ]: Name of the topic type. + [VerifiedPartnerName ]: Name of the verified partner. +.Link +https://docs.microsoft.com/en-us/powershell/module/az.eventgrid/get-azeventgridtopiceventsubscription +#> +function Get-AzEventGridTopicEventSubscription { +[OutputType([Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscription])] +[CmdletBinding(DefaultParameterSetName='List', PositionalBinding=$false)] +param( + [Parameter(ParameterSetName='Get', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [System.String] + # Name of the event subscription to be found. + # Event subscription names must be between 3 and 100 characters in length and use alphanumeric letters only. + ${EventSubscriptionName}, + + [Parameter(ParameterSetName='Get', Mandatory)] + [Parameter(ParameterSetName='List', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [System.String] + # The name of the resource group within the user's subscription. + ${ResourceGroupName}, + + [Parameter(ParameterSetName='Get')] + [Parameter(ParameterSetName='List')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] + [System.String[]] + # Subscription credentials that uniquely identify a Microsoft Azure subscription. + # The subscription ID forms part of the URI for every service call. + ${SubscriptionId}, + + [Parameter(ParameterSetName='Get', Mandatory)] + [Parameter(ParameterSetName='List', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [System.String] + # Name of the partner topic. + ${TopicName}, + + [Parameter(ParameterSetName='GetViaIdentity', Mandatory, ValueFromPipeline)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.IEventGridIdentity] + # Identity Parameter + # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + ${InputObject}, + + [Parameter()] + [Alias('AzureRMContext', 'AzureCredential')] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Returns true when the command succeeds + ${PassThru}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + if ($null -eq [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion) { + [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion = $Host.Runspace.Version.ToString() + } + $preTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + if ($preTelemetryId -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId =(New-Guid).ToString() + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.module]::Instance.Telemetry.Invoke('Create', $MyInvocation, $parameterSet, $PSCmdlet) + } else { + $internalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + if ($internalCalledCmdlets -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $MyInvocation.MyCommand.Name + } else { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets += ',' + $MyInvocation.MyCommand.Name + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = 'internal' + } + + $mapping = @{ + Get = 'Az.EventGrid.private\Get-AzEventGridTopicEventSubscription_Get'; + GetViaIdentity = 'Az.EventGrid.private\Get-AzEventGridTopicEventSubscription_GetViaIdentity'; + List = 'Az.EventGrid.private\Get-AzEventGridTopicEventSubscription_List'; + } + if (('Get', 'List') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { + $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } + + finally { + $backupTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + $backupInternalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + +} +end { + try { + $steppablePipeline.End() + + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $backupTelemetryId + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $backupInternalCalledCmdlets + if ($preTelemetryId -eq '') { + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.module]::Instance.Telemetry.Invoke('Send', $MyInvocation, $parameterSet, $PSCmdlet) + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $preTelemetryId + + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} +} + +<# +.Synopsis +List event types for a topic. +.Description +List event types for a topic. +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Outputs +Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventType +.Link +https://docs.microsoft.com/en-us/powershell/module/az.eventgrid/get-azeventgridtopiceventtype +#> +function Get-AzEventGridTopicEventType { +[OutputType([Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventType])] +[CmdletBinding(DefaultParameterSetName='List', PositionalBinding=$false)] +param( + [Parameter(Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [System.String] + # Namespace of the provider of the topic. + ${ProviderNamespace}, + + [Parameter(Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [System.String] + # The name of the resource group within the user's subscription. + ${ResourceGroupName}, + + [Parameter(Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [System.String] + # Name of the topic. + ${ResourceName}, + + [Parameter(Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [System.String] + # Name of the topic type. + ${ResourceTypeName}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] + [System.String[]] + # Subscription credentials that uniquely identify a Microsoft Azure subscription. + # The subscription ID forms part of the URI for every service call. + ${SubscriptionId}, + + [Parameter()] + [Alias('AzureRMContext', 'AzureCredential')] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Returns true when the command succeeds + ${PassThru}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + if ($null -eq [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion) { + [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion = $Host.Runspace.Version.ToString() + } + $preTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + if ($preTelemetryId -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId =(New-Guid).ToString() + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.module]::Instance.Telemetry.Invoke('Create', $MyInvocation, $parameterSet, $PSCmdlet) + } else { + $internalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + if ($internalCalledCmdlets -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $MyInvocation.MyCommand.Name + } else { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets += ',' + $MyInvocation.MyCommand.Name + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = 'internal' + } + + $mapping = @{ + List = 'Az.EventGrid.private\Get-AzEventGridTopicEventType_List'; + } + if (('List') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { + $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } + + finally { + $backupTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + $backupInternalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + +} +end { + try { + $steppablePipeline.End() + + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $backupTelemetryId + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $backupInternalCalledCmdlets + if ($preTelemetryId -eq '') { + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.module]::Instance.Telemetry.Invoke('Send', $MyInvocation, $parameterSet, $PSCmdlet) + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $preTelemetryId + + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} +} + +<# +.Synopsis +List the two keys used to publish to a topic. +.Description +List the two keys used to publish to a topic. +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Outputs +Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITopicSharedAccessKeys +.Link +https://docs.microsoft.com/en-us/powershell/module/az.eventgrid/get-azeventgridtopicsharedaccesskey +#> +function Get-AzEventGridTopicSharedAccessKey { +[OutputType([Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITopicSharedAccessKeys])] +[CmdletBinding(DefaultParameterSetName='List', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [System.String] + # The name of the resource group within the user's subscription. + ${ResourceGroupName}, + + [Parameter(Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [System.String] + # Name of the topic. + ${TopicName}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] + [System.String[]] + # Subscription credentials that uniquely identify a Microsoft Azure subscription. + # The subscription ID forms part of the URI for every service call. + ${SubscriptionId}, + + [Parameter()] + [Alias('AzureRMContext', 'AzureCredential')] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Returns true when the command succeeds + ${PassThru}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + if ($null -eq [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion) { + [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion = $Host.Runspace.Version.ToString() + } + $preTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + if ($preTelemetryId -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId =(New-Guid).ToString() + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.module]::Instance.Telemetry.Invoke('Create', $MyInvocation, $parameterSet, $PSCmdlet) + } else { + $internalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + if ($internalCalledCmdlets -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $MyInvocation.MyCommand.Name + } else { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets += ',' + $MyInvocation.MyCommand.Name + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = 'internal' + } + + $mapping = @{ + List = 'Az.EventGrid.private\Get-AzEventGridTopicSharedAccessKey_List'; + } + if (('List') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { + $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } + + finally { + $backupTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + $backupInternalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + +} +end { + try { + $steppablePipeline.End() + + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $backupTelemetryId + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $backupInternalCalledCmdlets + if ($preTelemetryId -eq '') { + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.module]::Instance.Telemetry.Invoke('Send', $MyInvocation, $parameterSet, $PSCmdlet) + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $preTelemetryId + + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} +} + +<# +.Synopsis +List event types for a topic type. +.Description +List event types for a topic type. +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Outputs +Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventType +.Link +https://docs.microsoft.com/en-us/powershell/module/az.eventgrid/get-azeventgridtopictypeeventtype +#> +function Get-AzEventGridTopicTypeEventType { +[OutputType([Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventType])] +[CmdletBinding(DefaultParameterSetName='List', PositionalBinding=$false)] +param( + [Parameter(Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [System.String] + # Name of the topic type. + ${TopicTypeName}, + + [Parameter()] + [Alias('AzureRMContext', 'AzureCredential')] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Returns true when the command succeeds + ${PassThru}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + if ($null -eq [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion) { + [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion = $Host.Runspace.Version.ToString() + } + $preTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + if ($preTelemetryId -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId =(New-Guid).ToString() + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.module]::Instance.Telemetry.Invoke('Create', $MyInvocation, $parameterSet, $PSCmdlet) + } else { + $internalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + if ($internalCalledCmdlets -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $MyInvocation.MyCommand.Name + } else { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets += ',' + $MyInvocation.MyCommand.Name + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = 'internal' + } + + $mapping = @{ + List = 'Az.EventGrid.private\Get-AzEventGridTopicTypeEventType_List'; + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } + + finally { + $backupTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + $backupInternalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + +} +end { + try { + $steppablePipeline.End() + + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $backupTelemetryId + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $backupInternalCalledCmdlets + if ($preTelemetryId -eq '') { + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.module]::Instance.Telemetry.Invoke('Send', $MyInvocation, $parameterSet, $PSCmdlet) + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $preTelemetryId + + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} +} + +<# +.Synopsis +Get information about a topic type. +.Description +Get information about a topic type. +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Inputs +Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.IEventGridIdentity +.Outputs +Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITopicTypeInfo +.Notes +COMPLEX PARAMETER PROPERTIES + +To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. + +INPUTOBJECT : Identity Parameter + [ChannelName ]: Name of the channel. + [DomainName ]: Name of the domain. + [DomainTopicName ]: Name of the topic. + [EventChannelName ]: Name of the event channel. + [EventSubscriptionName ]: Name of the event subscription. + [Id ]: Resource identity path + [Location ]: Name of the location. + [ParentName ]: The name of the parent resource (namely, either, the topic name, domain name, or partner namespace name). + [ParentType ]: The type of the parent resource. This can be either \'topics\', \'domains\', or \'partnerNamespaces\'. + [PartnerDestinationName ]: Name of the partner destination. + [PartnerNamespaceName ]: Name of the partner namespace. + [PartnerRegistrationName ]: Name of the partner registration. + [PartnerTopicName ]: Name of the partner topic. + [PrivateEndpointConnectionName ]: The name of the private endpoint connection connection. + [PrivateLinkResourceName ]: The name of private link resource. + [ProviderNamespace ]: Namespace of the provider of the topic. + [ResourceGroupName ]: The name of the resource group within the partners subscription. + [ResourceName ]: Name of the resource. + [ResourceTypeName ]: Name of the resource type. + [Scope ]: The scope of the event subscription. The scope can be a subscription, or a resource group, or a top level resource belonging to a resource provider namespace, or an EventGrid topic. For example, use '/subscriptions/{subscriptionId}/' for a subscription, '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}' for a resource group, and '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}' for a resource, and '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.EventGrid/topics/{topicName}' for an EventGrid topic. + [SubscriptionId ]: Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription ID forms part of the URI for every service call. + [SystemTopicName ]: Name of the system topic. + [TopicName ]: Name of the domain topic. + [TopicTypeName ]: Name of the topic type. + [VerifiedPartnerName ]: Name of the verified partner. +.Link +https://docs.microsoft.com/en-us/powershell/module/az.eventgrid/get-azeventgridtopictype +#> +function Get-AzEventGridTopicType { +[OutputType([Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITopicTypeInfo])] +[CmdletBinding(DefaultParameterSetName='List', PositionalBinding=$false)] +param( + [Parameter(ParameterSetName='Get', Mandatory)] + [Alias('TopicTypeName')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [System.String] + # Name of the topic type. + ${Name}, + + [Parameter(ParameterSetName='GetViaIdentity', Mandatory, ValueFromPipeline)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.IEventGridIdentity] + # Identity Parameter + # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + ${InputObject}, + + [Parameter()] + [Alias('AzureRMContext', 'AzureCredential')] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Returns true when the command succeeds + ${PassThru}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + if ($null -eq [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion) { + [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion = $Host.Runspace.Version.ToString() + } + $preTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + if ($preTelemetryId -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId =(New-Guid).ToString() + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.module]::Instance.Telemetry.Invoke('Create', $MyInvocation, $parameterSet, $PSCmdlet) + } else { + $internalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + if ($internalCalledCmdlets -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $MyInvocation.MyCommand.Name + } else { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets += ',' + $MyInvocation.MyCommand.Name + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = 'internal' + } + + $mapping = @{ + Get = 'Az.EventGrid.private\Get-AzEventGridTopicType_Get'; + GetViaIdentity = 'Az.EventGrid.private\Get-AzEventGridTopicType_GetViaIdentity'; + List = 'Az.EventGrid.private\Get-AzEventGridTopicType_List'; + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } + + finally { + $backupTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + $backupInternalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + +} +end { + try { + $steppablePipeline.End() + + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $backupTelemetryId + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $backupInternalCalledCmdlets + if ($preTelemetryId -eq '') { + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.module]::Instance.Telemetry.Invoke('Send', $MyInvocation, $parameterSet, $PSCmdlet) + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $preTelemetryId + + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} +} + +<# +.Synopsis +Get properties of a topic. +.Description +Get properties of a topic. +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Inputs +Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.IEventGridIdentity +.Outputs +Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITopic +.Notes +COMPLEX PARAMETER PROPERTIES + +To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. + +INPUTOBJECT : Identity Parameter + [ChannelName ]: Name of the channel. + [DomainName ]: Name of the domain. + [DomainTopicName ]: Name of the topic. + [EventChannelName ]: Name of the event channel. + [EventSubscriptionName ]: Name of the event subscription. + [Id ]: Resource identity path + [Location ]: Name of the location. + [ParentName ]: The name of the parent resource (namely, either, the topic name, domain name, or partner namespace name). + [ParentType ]: The type of the parent resource. This can be either \'topics\', \'domains\', or \'partnerNamespaces\'. + [PartnerDestinationName ]: Name of the partner destination. + [PartnerNamespaceName ]: Name of the partner namespace. + [PartnerRegistrationName ]: Name of the partner registration. + [PartnerTopicName ]: Name of the partner topic. + [PrivateEndpointConnectionName ]: The name of the private endpoint connection connection. + [PrivateLinkResourceName ]: The name of private link resource. + [ProviderNamespace ]: Namespace of the provider of the topic. + [ResourceGroupName ]: The name of the resource group within the partners subscription. + [ResourceName ]: Name of the resource. + [ResourceTypeName ]: Name of the resource type. + [Scope ]: The scope of the event subscription. The scope can be a subscription, or a resource group, or a top level resource belonging to a resource provider namespace, or an EventGrid topic. For example, use '/subscriptions/{subscriptionId}/' for a subscription, '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}' for a resource group, and '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}' for a resource, and '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.EventGrid/topics/{topicName}' for an EventGrid topic. + [SubscriptionId ]: Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription ID forms part of the URI for every service call. + [SystemTopicName ]: Name of the system topic. + [TopicName ]: Name of the domain topic. + [TopicTypeName ]: Name of the topic type. + [VerifiedPartnerName ]: Name of the verified partner. +.Link +https://docs.microsoft.com/en-us/powershell/module/az.eventgrid/get-azeventgridtopic +#> +function Get-AzEventGridTopic { +[OutputType([Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITopic])] +[CmdletBinding(DefaultParameterSetName='List', PositionalBinding=$false)] +param( + [Parameter(ParameterSetName='Get', Mandatory)] + [Alias('TopicName')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [System.String] + # Name of the topic. + ${Name}, + + [Parameter(ParameterSetName='Get', Mandatory)] + [Parameter(ParameterSetName='List1', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [System.String] + # The name of the resource group within the user's subscription. + ${ResourceGroupName}, + + [Parameter(ParameterSetName='Get')] + [Parameter(ParameterSetName='List')] + [Parameter(ParameterSetName='List1')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] + [System.String[]] + # Subscription credentials that uniquely identify a Microsoft Azure subscription. + # The subscription ID forms part of the URI for every service call. + ${SubscriptionId}, + + [Parameter(ParameterSetName='GetViaIdentity', Mandatory, ValueFromPipeline)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.IEventGridIdentity] + # 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.EventGrid.Category('Query')] + [System.String] + # The query used to filter the search results using OData syntax. + # Filtering is permitted on the 'name' property only and with limited number of OData operations. + # These operations are: the 'contains' function as well as the following logical operations: not, and, or, eq (for equal), and ne (for not equal). + # No arithmetic operations are supported. + # The following is a valid filter example: $filter=contains(namE, 'PATTERN') and name ne 'PATTERN-1'. + # The following is not a valid filter example: $filter=location eq 'westus'. + ${Filter}, + + [Parameter(ParameterSetName='List')] + [Parameter(ParameterSetName='List1')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Query')] + [System.Int32] + # The number of results to return per page for the list operation. + # Valid range for top parameter is 1 to 100. + # If not specified, the default number of results to be returned is 20 items per page. + ${Top}, + + [Parameter()] + [Alias('AzureRMContext', 'AzureCredential')] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Returns true when the command succeeds + ${PassThru}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + if ($null -eq [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion) { + [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion = $Host.Runspace.Version.ToString() + } + $preTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + if ($preTelemetryId -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId =(New-Guid).ToString() + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.module]::Instance.Telemetry.Invoke('Create', $MyInvocation, $parameterSet, $PSCmdlet) + } else { + $internalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + if ($internalCalledCmdlets -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $MyInvocation.MyCommand.Name + } else { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets += ',' + $MyInvocation.MyCommand.Name + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = 'internal' + } + + $mapping = @{ + Get = 'Az.EventGrid.private\Get-AzEventGridTopic_Get'; + GetViaIdentity = 'Az.EventGrid.private\Get-AzEventGridTopic_GetViaIdentity'; + List = 'Az.EventGrid.private\Get-AzEventGridTopic_List'; + List1 = 'Az.EventGrid.private\Get-AzEventGridTopic_List1'; + } + if (('Get', 'List', 'List1') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { + $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } + + finally { + $backupTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + $backupInternalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + +} +end { + try { + $steppablePipeline.End() + + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $backupTelemetryId + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $backupInternalCalledCmdlets + if ($preTelemetryId -eq '') { + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.module]::Instance.Telemetry.Invoke('Send', $MyInvocation, $parameterSet, $PSCmdlet) + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $preTelemetryId + + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} +} + +<# +.Synopsis +Get properties of a verified partner. +.Description +Get properties of a verified partner. +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Inputs +Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.IEventGridIdentity +.Outputs +Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IVerifiedPartner +.Notes +COMPLEX PARAMETER PROPERTIES + +To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. + +INPUTOBJECT : Identity Parameter + [ChannelName ]: Name of the channel. + [DomainName ]: Name of the domain. + [DomainTopicName ]: Name of the topic. + [EventChannelName ]: Name of the event channel. + [EventSubscriptionName ]: Name of the event subscription. + [Id ]: Resource identity path + [Location ]: Name of the location. + [ParentName ]: The name of the parent resource (namely, either, the topic name, domain name, or partner namespace name). + [ParentType ]: The type of the parent resource. This can be either \'topics\', \'domains\', or \'partnerNamespaces\'. + [PartnerDestinationName ]: Name of the partner destination. + [PartnerNamespaceName ]: Name of the partner namespace. + [PartnerRegistrationName ]: Name of the partner registration. + [PartnerTopicName ]: Name of the partner topic. + [PrivateEndpointConnectionName ]: The name of the private endpoint connection connection. + [PrivateLinkResourceName ]: The name of private link resource. + [ProviderNamespace ]: Namespace of the provider of the topic. + [ResourceGroupName ]: The name of the resource group within the partners subscription. + [ResourceName ]: Name of the resource. + [ResourceTypeName ]: Name of the resource type. + [Scope ]: The scope of the event subscription. The scope can be a subscription, or a resource group, or a top level resource belonging to a resource provider namespace, or an EventGrid topic. For example, use '/subscriptions/{subscriptionId}/' for a subscription, '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}' for a resource group, and '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}' for a resource, and '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.EventGrid/topics/{topicName}' for an EventGrid topic. + [SubscriptionId ]: Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription ID forms part of the URI for every service call. + [SystemTopicName ]: Name of the system topic. + [TopicName ]: Name of the domain topic. + [TopicTypeName ]: Name of the topic type. + [VerifiedPartnerName ]: Name of the verified partner. +.Link +https://docs.microsoft.com/en-us/powershell/module/az.eventgrid/get-azeventgridverifiedpartner +#> +function Get-AzEventGridVerifiedPartner { +[OutputType([Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IVerifiedPartner])] +[CmdletBinding(DefaultParameterSetName='List', PositionalBinding=$false)] +param( + [Parameter(ParameterSetName='Get', Mandatory)] + [Alias('VerifiedPartnerName')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [System.String] + # Name of the verified partner. + ${Name}, + + [Parameter(ParameterSetName='GetViaIdentity', Mandatory, ValueFromPipeline)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.IEventGridIdentity] + # Identity Parameter + # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + ${InputObject}, + + [Parameter(ParameterSetName='List')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Query')] + [System.String] + # The query used to filter the search results using OData syntax. + # Filtering is permitted on the 'name' property only and with limited number of OData operations. + # These operations are: the 'contains' function as well as the following logical operations: not, and, or, eq (for equal), and ne (for not equal). + # No arithmetic operations are supported. + # The following is a valid filter example: $filter=contains(namE, 'PATTERN') and name ne 'PATTERN-1'. + # The following is not a valid filter example: $filter=location eq 'westus'. + ${Filter}, + + [Parameter(ParameterSetName='List')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Query')] + [System.Int32] + # The number of results to return per page for the list operation. + # Valid range for top parameter is 1 to 100. + # If not specified, the default number of results to be returned is 20 items per page. + ${Top}, + + [Parameter()] + [Alias('AzureRMContext', 'AzureCredential')] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Returns true when the command succeeds + ${PassThru}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + if ($null -eq [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion) { + [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion = $Host.Runspace.Version.ToString() + } + $preTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + if ($preTelemetryId -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId =(New-Guid).ToString() + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.module]::Instance.Telemetry.Invoke('Create', $MyInvocation, $parameterSet, $PSCmdlet) + } else { + $internalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + if ($internalCalledCmdlets -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $MyInvocation.MyCommand.Name + } else { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets += ',' + $MyInvocation.MyCommand.Name + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = 'internal' + } + + $mapping = @{ + Get = 'Az.EventGrid.private\Get-AzEventGridVerifiedPartner_Get'; + GetViaIdentity = 'Az.EventGrid.private\Get-AzEventGridVerifiedPartner_GetViaIdentity'; + List = 'Az.EventGrid.private\Get-AzEventGridVerifiedPartner_List'; + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } + + finally { + $backupTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + $backupInternalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + +} +end { + try { + $steppablePipeline.End() + + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $backupTelemetryId + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $backupInternalCalledCmdlets + if ($preTelemetryId -eq '') { + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.module]::Instance.Telemetry.Invoke('Send', $MyInvocation, $parameterSet, $PSCmdlet) + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $preTelemetryId + + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} +} + +<# +.Synopsis +Authorize a single partner either by partner registration immutable Id or by partner name. +.Description +Authorize a single partner either by partner registration immutable Id or by partner name. +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Inputs +Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartner +.Inputs +Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.IEventGridIdentity +.Outputs +Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerConfiguration +.Notes +COMPLEX PARAMETER PROPERTIES + +To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. + +INPUTOBJECT : Identity Parameter + [ChannelName ]: Name of the channel. + [DomainName ]: Name of the domain. + [DomainTopicName ]: Name of the topic. + [EventChannelName ]: Name of the event channel. + [EventSubscriptionName ]: Name of the event subscription. + [Id ]: Resource identity path + [Location ]: Name of the location. + [ParentName ]: The name of the parent resource (namely, either, the topic name, domain name, or partner namespace name). + [ParentType ]: The type of the parent resource. This can be either \'topics\', \'domains\', or \'partnerNamespaces\'. + [PartnerDestinationName ]: Name of the partner destination. + [PartnerNamespaceName ]: Name of the partner namespace. + [PartnerRegistrationName ]: Name of the partner registration. + [PartnerTopicName ]: Name of the partner topic. + [PrivateEndpointConnectionName ]: The name of the private endpoint connection connection. + [PrivateLinkResourceName ]: The name of private link resource. + [ProviderNamespace ]: Namespace of the provider of the topic. + [ResourceGroupName ]: The name of the resource group within the partners subscription. + [ResourceName ]: Name of the resource. + [ResourceTypeName ]: Name of the resource type. + [Scope ]: The scope of the event subscription. The scope can be a subscription, or a resource group, or a top level resource belonging to a resource provider namespace, or an EventGrid topic. For example, use '/subscriptions/{subscriptionId}/' for a subscription, '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}' for a resource group, and '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}' for a resource, and '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.EventGrid/topics/{topicName}' for an EventGrid topic. + [SubscriptionId ]: Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription ID forms part of the URI for every service call. + [SystemTopicName ]: Name of the system topic. + [TopicName ]: Name of the domain topic. + [TopicTypeName ]: Name of the topic type. + [VerifiedPartnerName ]: Name of the verified partner. + +PARTNERINFO : Information about the partner. + [AuthorizationExpirationTimeInUtc ]: Expiration time of the partner authorization. If this timer expires, any request from this partner to create, update or delete resources in subscriber's context will fail. If specified, the allowed values are between 1 to the value of defaultMaximumExpirationTimeInDays specified in PartnerConfiguration. If not specified, the default value will be the value of defaultMaximumExpirationTimeInDays specified in PartnerConfiguration or 7 if this value is not specified. + [Name ]: The partner name. + [RegistrationImmutableId ]: The immutableId of the corresponding partner registration. +.Link +https://docs.microsoft.com/en-us/powershell/module/az.eventgrid/grant-azeventgridpartnerconfigurationpartner +#> +function Grant-AzEventGridPartnerConfigurationPartner { +[OutputType([Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerConfiguration])] +[CmdletBinding(DefaultParameterSetName='AuthorizeExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(ParameterSetName='Authorize', Mandatory)] + [Parameter(ParameterSetName='AuthorizeExpanded', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [System.String] + # The name of the resource group within the user's subscription. + ${ResourceGroupName}, + + [Parameter(ParameterSetName='Authorize')] + [Parameter(ParameterSetName='AuthorizeExpanded')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] + [System.String] + # Subscription credentials that uniquely identify a Microsoft Azure subscription. + # The subscription ID forms part of the URI for every service call. + ${SubscriptionId}, + + [Parameter(ParameterSetName='AuthorizeViaIdentity', Mandatory, ValueFromPipeline)] + [Parameter(ParameterSetName='AuthorizeViaIdentityExpanded', Mandatory, ValueFromPipeline)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.IEventGridIdentity] + # Identity Parameter + # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + ${InputObject}, + + [Parameter(ParameterSetName='Authorize', Mandatory, ValueFromPipeline)] + [Parameter(ParameterSetName='AuthorizeViaIdentity', Mandatory, ValueFromPipeline)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartner] + # Information about the partner. + # To construct, see NOTES section for PARTNERINFO properties and create a hash table. + ${PartnerInfo}, + + [Parameter(ParameterSetName='AuthorizeExpanded')] + [Parameter(ParameterSetName='AuthorizeViaIdentityExpanded')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [System.DateTime] + # Expiration time of the partner authorization. + # If this timer expires, any request from this partner to create, update or delete resources in subscriber'scontext will fail. + # If specified, the allowed values are between 1 to the value of defaultMaximumExpirationTimeInDays specified in PartnerConfiguration.If not specified, the default value will be the value of defaultMaximumExpirationTimeInDays specified in PartnerConfiguration or 7 if this value is not specified. + ${AuthorizationExpirationTimeInUtc}, + + [Parameter(ParameterSetName='AuthorizeExpanded')] + [Parameter(ParameterSetName='AuthorizeViaIdentityExpanded')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [System.String] + # The partner name. + ${PartnerName}, + + [Parameter(ParameterSetName='AuthorizeExpanded')] + [Parameter(ParameterSetName='AuthorizeViaIdentityExpanded')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [System.String] + # The immutableId of the corresponding partner registration. + ${PartnerRegistrationImmutableId}, + + [Parameter()] + [Alias('AzureRMContext', 'AzureCredential')] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Returns true when the command succeeds + ${PassThru}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + if ($null -eq [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion) { + [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion = $Host.Runspace.Version.ToString() + } + $preTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + if ($preTelemetryId -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId =(New-Guid).ToString() + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.module]::Instance.Telemetry.Invoke('Create', $MyInvocation, $parameterSet, $PSCmdlet) + } else { + $internalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + if ($internalCalledCmdlets -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $MyInvocation.MyCommand.Name + } else { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets += ',' + $MyInvocation.MyCommand.Name + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = 'internal' + } + + $mapping = @{ + Authorize = 'Az.EventGrid.private\Grant-AzEventGridPartnerConfigurationPartner_Authorize'; + AuthorizeExpanded = 'Az.EventGrid.private\Grant-AzEventGridPartnerConfigurationPartner_AuthorizeExpanded'; + AuthorizeViaIdentity = 'Az.EventGrid.private\Grant-AzEventGridPartnerConfigurationPartner_AuthorizeViaIdentity'; + AuthorizeViaIdentityExpanded = 'Az.EventGrid.private\Grant-AzEventGridPartnerConfigurationPartner_AuthorizeViaIdentityExpanded'; + } + if (('Authorize', 'AuthorizeExpanded') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { + $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } + + finally { + $backupTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + $backupInternalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + +} +end { + try { + $steppablePipeline.End() + + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $backupTelemetryId + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $backupInternalCalledCmdlets + if ($preTelemetryId -eq '') { + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.module]::Instance.Telemetry.Invoke('Send', $MyInvocation, $parameterSet, $PSCmdlet) + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $preTelemetryId + + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} +} + +<# +.Synopsis +Activate a newly created partner destination. +.Description +Activate a newly created partner destination. +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Inputs +Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.IEventGridIdentity +.Outputs +Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerDestination +.Notes +COMPLEX PARAMETER PROPERTIES + +To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. + +INPUTOBJECT : Identity Parameter + [ChannelName ]: Name of the channel. + [DomainName ]: Name of the domain. + [DomainTopicName ]: Name of the topic. + [EventChannelName ]: Name of the event channel. + [EventSubscriptionName ]: Name of the event subscription. + [Id ]: Resource identity path + [Location ]: Name of the location. + [ParentName ]: The name of the parent resource (namely, either, the topic name, domain name, or partner namespace name). + [ParentType ]: The type of the parent resource. This can be either \'topics\', \'domains\', or \'partnerNamespaces\'. + [PartnerDestinationName ]: Name of the partner destination. + [PartnerNamespaceName ]: Name of the partner namespace. + [PartnerRegistrationName ]: Name of the partner registration. + [PartnerTopicName ]: Name of the partner topic. + [PrivateEndpointConnectionName ]: The name of the private endpoint connection connection. + [PrivateLinkResourceName ]: The name of private link resource. + [ProviderNamespace ]: Namespace of the provider of the topic. + [ResourceGroupName ]: The name of the resource group within the partners subscription. + [ResourceName ]: Name of the resource. + [ResourceTypeName ]: Name of the resource type. + [Scope ]: The scope of the event subscription. The scope can be a subscription, or a resource group, or a top level resource belonging to a resource provider namespace, or an EventGrid topic. For example, use '/subscriptions/{subscriptionId}/' for a subscription, '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}' for a resource group, and '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}' for a resource, and '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.EventGrid/topics/{topicName}' for an EventGrid topic. + [SubscriptionId ]: Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription ID forms part of the URI for every service call. + [SystemTopicName ]: Name of the system topic. + [TopicName ]: Name of the domain topic. + [TopicTypeName ]: Name of the topic type. + [VerifiedPartnerName ]: Name of the verified partner. +.Link +https://docs.microsoft.com/en-us/powershell/module/az.eventgrid/initialize-azeventgridpartnerdestination +#> +function Initialize-AzEventGridPartnerDestination { +[OutputType([Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerDestination])] +[CmdletBinding(DefaultParameterSetName='Activate', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(ParameterSetName='Activate', Mandatory)] + [Alias('PartnerDestinationName')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [System.String] + # Name of the partner destination. + ${Name}, + + [Parameter(ParameterSetName='Activate', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [System.String] + # The name of the resource group within the user's subscription. + ${ResourceGroupName}, + + [Parameter(ParameterSetName='Activate')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] + [System.String] + # Subscription credentials that uniquely identify a Microsoft Azure subscription. + # The subscription ID forms part of the URI for every service call. + ${SubscriptionId}, + + [Parameter(ParameterSetName='ActivateViaIdentity', Mandatory, ValueFromPipeline)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.IEventGridIdentity] + # Identity Parameter + # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + ${InputObject}, + + [Parameter()] + [Alias('AzureRMContext', 'AzureCredential')] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Returns true when the command succeeds + ${PassThru}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + if ($null -eq [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion) { + [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion = $Host.Runspace.Version.ToString() + } + $preTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + if ($preTelemetryId -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId =(New-Guid).ToString() + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.module]::Instance.Telemetry.Invoke('Create', $MyInvocation, $parameterSet, $PSCmdlet) + } else { + $internalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + if ($internalCalledCmdlets -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $MyInvocation.MyCommand.Name + } else { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets += ',' + $MyInvocation.MyCommand.Name + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = 'internal' + } + + $mapping = @{ + Activate = 'Az.EventGrid.private\Initialize-AzEventGridPartnerDestination_Activate'; + ActivateViaIdentity = 'Az.EventGrid.private\Initialize-AzEventGridPartnerDestination_ActivateViaIdentity'; + } + if (('Activate') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { + $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } + + finally { + $backupTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + $backupInternalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + +} +end { + try { + $steppablePipeline.End() + + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $backupTelemetryId + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $backupInternalCalledCmdlets + if ($preTelemetryId -eq '') { + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.module]::Instance.Telemetry.Invoke('Send', $MyInvocation, $parameterSet, $PSCmdlet) + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $preTelemetryId + + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} +} + +<# +.Synopsis +Activate a newly created partner topic. +.Description +Activate a newly created partner topic. +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Inputs +Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.IEventGridIdentity +.Outputs +Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerTopic +.Notes +COMPLEX PARAMETER PROPERTIES + +To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. + +INPUTOBJECT : Identity Parameter + [ChannelName ]: Name of the channel. + [DomainName ]: Name of the domain. + [DomainTopicName ]: Name of the topic. + [EventChannelName ]: Name of the event channel. + [EventSubscriptionName ]: Name of the event subscription. + [Id ]: Resource identity path + [Location ]: Name of the location. + [ParentName ]: The name of the parent resource (namely, either, the topic name, domain name, or partner namespace name). + [ParentType ]: The type of the parent resource. This can be either \'topics\', \'domains\', or \'partnerNamespaces\'. + [PartnerDestinationName ]: Name of the partner destination. + [PartnerNamespaceName ]: Name of the partner namespace. + [PartnerRegistrationName ]: Name of the partner registration. + [PartnerTopicName ]: Name of the partner topic. + [PrivateEndpointConnectionName ]: The name of the private endpoint connection connection. + [PrivateLinkResourceName ]: The name of private link resource. + [ProviderNamespace ]: Namespace of the provider of the topic. + [ResourceGroupName ]: The name of the resource group within the partners subscription. + [ResourceName ]: Name of the resource. + [ResourceTypeName ]: Name of the resource type. + [Scope ]: The scope of the event subscription. The scope can be a subscription, or a resource group, or a top level resource belonging to a resource provider namespace, or an EventGrid topic. For example, use '/subscriptions/{subscriptionId}/' for a subscription, '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}' for a resource group, and '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}' for a resource, and '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.EventGrid/topics/{topicName}' for an EventGrid topic. + [SubscriptionId ]: Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription ID forms part of the URI for every service call. + [SystemTopicName ]: Name of the system topic. + [TopicName ]: Name of the domain topic. + [TopicTypeName ]: Name of the topic type. + [VerifiedPartnerName ]: Name of the verified partner. +.Link +https://docs.microsoft.com/en-us/powershell/module/az.eventgrid/initialize-azeventgridpartnertopic +#> +function Initialize-AzEventGridPartnerTopic { +[OutputType([Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerTopic])] +[CmdletBinding(DefaultParameterSetName='Activate', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(ParameterSetName='Activate', Mandatory)] + [Alias('PartnerTopicName')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [System.String] + # Name of the partner topic. + ${Name}, + + [Parameter(ParameterSetName='Activate', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [System.String] + # The name of the resource group within the user's subscription. + ${ResourceGroupName}, + + [Parameter(ParameterSetName='Activate')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] + [System.String] + # Subscription credentials that uniquely identify a Microsoft Azure subscription. + # The subscription ID forms part of the URI for every service call. + ${SubscriptionId}, + + [Parameter(ParameterSetName='ActivateViaIdentity', Mandatory, ValueFromPipeline)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.IEventGridIdentity] + # Identity Parameter + # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + ${InputObject}, + + [Parameter()] + [Alias('AzureRMContext', 'AzureCredential')] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Returns true when the command succeeds + ${PassThru}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + if ($null -eq [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion) { + [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion = $Host.Runspace.Version.ToString() + } + $preTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + if ($preTelemetryId -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId =(New-Guid).ToString() + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.module]::Instance.Telemetry.Invoke('Create', $MyInvocation, $parameterSet, $PSCmdlet) + } else { + $internalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + if ($internalCalledCmdlets -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $MyInvocation.MyCommand.Name + } else { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets += ',' + $MyInvocation.MyCommand.Name + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = 'internal' + } + + $mapping = @{ + Activate = 'Az.EventGrid.private\Initialize-AzEventGridPartnerTopic_Activate'; + ActivateViaIdentity = 'Az.EventGrid.private\Initialize-AzEventGridPartnerTopic_ActivateViaIdentity'; + } + if (('Activate') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { + $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } + + finally { + $backupTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + $backupInternalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + +} +end { + try { + $steppablePipeline.End() + + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $backupTelemetryId + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $backupInternalCalledCmdlets + if ($preTelemetryId -eq '') { + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.module]::Instance.Telemetry.Invoke('Send', $MyInvocation, $parameterSet, $PSCmdlet) + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $preTelemetryId + + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} +} + +<# +.Synopsis +Deactivate specific partner topic. +.Description +Deactivate specific partner topic. +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Inputs +Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.IEventGridIdentity +.Outputs +Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerTopic +.Notes +COMPLEX PARAMETER PROPERTIES + +To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. + +INPUTOBJECT : Identity Parameter + [ChannelName ]: Name of the channel. + [DomainName ]: Name of the domain. + [DomainTopicName ]: Name of the topic. + [EventChannelName ]: Name of the event channel. + [EventSubscriptionName ]: Name of the event subscription. + [Id ]: Resource identity path + [Location ]: Name of the location. + [ParentName ]: The name of the parent resource (namely, either, the topic name, domain name, or partner namespace name). + [ParentType ]: The type of the parent resource. This can be either \'topics\', \'domains\', or \'partnerNamespaces\'. + [PartnerDestinationName ]: Name of the partner destination. + [PartnerNamespaceName ]: Name of the partner namespace. + [PartnerRegistrationName ]: Name of the partner registration. + [PartnerTopicName ]: Name of the partner topic. + [PrivateEndpointConnectionName ]: The name of the private endpoint connection connection. + [PrivateLinkResourceName ]: The name of private link resource. + [ProviderNamespace ]: Namespace of the provider of the topic. + [ResourceGroupName ]: The name of the resource group within the partners subscription. + [ResourceName ]: Name of the resource. + [ResourceTypeName ]: Name of the resource type. + [Scope ]: The scope of the event subscription. The scope can be a subscription, or a resource group, or a top level resource belonging to a resource provider namespace, or an EventGrid topic. For example, use '/subscriptions/{subscriptionId}/' for a subscription, '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}' for a resource group, and '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}' for a resource, and '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.EventGrid/topics/{topicName}' for an EventGrid topic. + [SubscriptionId ]: Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription ID forms part of the URI for every service call. + [SystemTopicName ]: Name of the system topic. + [TopicName ]: Name of the domain topic. + [TopicTypeName ]: Name of the topic type. + [VerifiedPartnerName ]: Name of the verified partner. +.Link +https://docs.microsoft.com/en-us/powershell/module/az.eventgrid/invoke-azeventgriddeactivatepartnertopic +#> +function Invoke-AzEventGridDeactivatePartnerTopic { +[OutputType([Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerTopic])] +[CmdletBinding(DefaultParameterSetName='Deactivate', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(ParameterSetName='Deactivate', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [System.String] + # Name of the partner topic. + ${PartnerTopicName}, + + [Parameter(ParameterSetName='Deactivate', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [System.String] + # The name of the resource group within the user's subscription. + ${ResourceGroupName}, + + [Parameter(ParameterSetName='Deactivate')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] + [System.String] + # Subscription credentials that uniquely identify a Microsoft Azure subscription. + # The subscription ID forms part of the URI for every service call. + ${SubscriptionId}, + + [Parameter(ParameterSetName='DeactivateViaIdentity', Mandatory, ValueFromPipeline)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.IEventGridIdentity] + # Identity Parameter + # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + ${InputObject}, + + [Parameter()] + [Alias('AzureRMContext', 'AzureCredential')] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Returns true when the command succeeds + ${PassThru}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + if ($null -eq [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion) { + [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion = $Host.Runspace.Version.ToString() + } + $preTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + if ($preTelemetryId -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId =(New-Guid).ToString() + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.module]::Instance.Telemetry.Invoke('Create', $MyInvocation, $parameterSet, $PSCmdlet) + } else { + $internalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + if ($internalCalledCmdlets -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $MyInvocation.MyCommand.Name + } else { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets += ',' + $MyInvocation.MyCommand.Name + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = 'internal' + } + + $mapping = @{ + Deactivate = 'Az.EventGrid.private\Invoke-AzEventGridDeactivatePartnerTopic_Deactivate'; + DeactivateViaIdentity = 'Az.EventGrid.private\Invoke-AzEventGridDeactivatePartnerTopic_DeactivateViaIdentity'; + } + if (('Deactivate') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { + $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } + + finally { + $backupTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + $backupInternalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + +} +end { + try { + $steppablePipeline.End() + + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $backupTelemetryId + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $backupInternalCalledCmdlets + if ($preTelemetryId -eq '') { + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.module]::Instance.Telemetry.Invoke('Send', $MyInvocation, $parameterSet, $PSCmdlet) + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $preTelemetryId + + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} +} + +<# +.Synopsis +Unauthorize a single partner either by partner registration immutable Id or by partner name. +.Description +Unauthorize a single partner either by partner registration immutable Id or by partner name. +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Inputs +Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartner +.Inputs +Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.IEventGridIdentity +.Outputs +Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerConfiguration +.Notes +COMPLEX PARAMETER PROPERTIES + +To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. + +INPUTOBJECT : Identity Parameter + [ChannelName ]: Name of the channel. + [DomainName ]: Name of the domain. + [DomainTopicName ]: Name of the topic. + [EventChannelName ]: Name of the event channel. + [EventSubscriptionName ]: Name of the event subscription. + [Id ]: Resource identity path + [Location ]: Name of the location. + [ParentName ]: The name of the parent resource (namely, either, the topic name, domain name, or partner namespace name). + [ParentType ]: The type of the parent resource. This can be either \'topics\', \'domains\', or \'partnerNamespaces\'. + [PartnerDestinationName ]: Name of the partner destination. + [PartnerNamespaceName ]: Name of the partner namespace. + [PartnerRegistrationName ]: Name of the partner registration. + [PartnerTopicName ]: Name of the partner topic. + [PrivateEndpointConnectionName ]: The name of the private endpoint connection connection. + [PrivateLinkResourceName ]: The name of private link resource. + [ProviderNamespace ]: Namespace of the provider of the topic. + [ResourceGroupName ]: The name of the resource group within the partners subscription. + [ResourceName ]: Name of the resource. + [ResourceTypeName ]: Name of the resource type. + [Scope ]: The scope of the event subscription. The scope can be a subscription, or a resource group, or a top level resource belonging to a resource provider namespace, or an EventGrid topic. For example, use '/subscriptions/{subscriptionId}/' for a subscription, '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}' for a resource group, and '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}' for a resource, and '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.EventGrid/topics/{topicName}' for an EventGrid topic. + [SubscriptionId ]: Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription ID forms part of the URI for every service call. + [SystemTopicName ]: Name of the system topic. + [TopicName ]: Name of the domain topic. + [TopicTypeName ]: Name of the topic type. + [VerifiedPartnerName ]: Name of the verified partner. + +PARTNERINFO : Information about the partner. + [AuthorizationExpirationTimeInUtc ]: Expiration time of the partner authorization. If this timer expires, any request from this partner to create, update or delete resources in subscriber's context will fail. If specified, the allowed values are between 1 to the value of defaultMaximumExpirationTimeInDays specified in PartnerConfiguration. If not specified, the default value will be the value of defaultMaximumExpirationTimeInDays specified in PartnerConfiguration or 7 if this value is not specified. + [Name ]: The partner name. + [RegistrationImmutableId ]: The immutableId of the corresponding partner registration. +.Link +https://docs.microsoft.com/en-us/powershell/module/az.eventgrid/invoke-azeventgridpartnerconfigurationunauthorize +#> +function Invoke-AzEventGridPartnerConfigurationUnauthorize { +[OutputType([Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerConfiguration])] +[CmdletBinding(DefaultParameterSetName='PartnerExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(ParameterSetName='Partner', Mandatory)] + [Parameter(ParameterSetName='PartnerExpanded', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [System.String] + # The name of the resource group within the user's subscription. + ${ResourceGroupName}, + + [Parameter(ParameterSetName='Partner')] + [Parameter(ParameterSetName='PartnerExpanded')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] + [System.String] + # Subscription credentials that uniquely identify a Microsoft Azure subscription. + # The subscription ID forms part of the URI for every service call. + ${SubscriptionId}, + + [Parameter(ParameterSetName='PartnerViaIdentity', Mandatory, ValueFromPipeline)] + [Parameter(ParameterSetName='PartnerViaIdentityExpanded', Mandatory, ValueFromPipeline)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.IEventGridIdentity] + # Identity Parameter + # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + ${InputObject}, + + [Parameter(ParameterSetName='Partner', Mandatory, ValueFromPipeline)] + [Parameter(ParameterSetName='PartnerViaIdentity', Mandatory, ValueFromPipeline)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartner] + # Information about the partner. + # To construct, see NOTES section for PARTNERINFO properties and create a hash table. + ${PartnerInfo}, + + [Parameter(ParameterSetName='PartnerExpanded')] + [Parameter(ParameterSetName='PartnerViaIdentityExpanded')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [System.DateTime] + # Expiration time of the partner authorization. + # If this timer expires, any request from this partner to create, update or delete resources in subscriber'scontext will fail. + # If specified, the allowed values are between 1 to the value of defaultMaximumExpirationTimeInDays specified in PartnerConfiguration.If not specified, the default value will be the value of defaultMaximumExpirationTimeInDays specified in PartnerConfiguration or 7 if this value is not specified. + ${AuthorizationExpirationTimeInUtc}, + + [Parameter(ParameterSetName='PartnerExpanded')] + [Parameter(ParameterSetName='PartnerViaIdentityExpanded')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [System.String] + # The partner name. + ${PartnerName}, + + [Parameter(ParameterSetName='PartnerExpanded')] + [Parameter(ParameterSetName='PartnerViaIdentityExpanded')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [System.String] + # The immutableId of the corresponding partner registration. + ${PartnerRegistrationImmutableId}, + + [Parameter()] + [Alias('AzureRMContext', 'AzureCredential')] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Returns true when the command succeeds + ${PassThru}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + if ($null -eq [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion) { + [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion = $Host.Runspace.Version.ToString() + } + $preTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + if ($preTelemetryId -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId =(New-Guid).ToString() + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.module]::Instance.Telemetry.Invoke('Create', $MyInvocation, $parameterSet, $PSCmdlet) + } else { + $internalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + if ($internalCalledCmdlets -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $MyInvocation.MyCommand.Name + } else { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets += ',' + $MyInvocation.MyCommand.Name + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = 'internal' + } + + $mapping = @{ + Partner = 'Az.EventGrid.private\Invoke-AzEventGridPartnerConfigurationUnauthorize_Partner'; + PartnerExpanded = 'Az.EventGrid.private\Invoke-AzEventGridPartnerConfigurationUnauthorize_PartnerExpanded'; + PartnerViaIdentity = 'Az.EventGrid.private\Invoke-AzEventGridPartnerConfigurationUnauthorize_PartnerViaIdentity'; + PartnerViaIdentityExpanded = 'Az.EventGrid.private\Invoke-AzEventGridPartnerConfigurationUnauthorize_PartnerViaIdentityExpanded'; + } + if (('Partner', 'PartnerExpanded') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { + $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } + + finally { + $backupTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + $backupInternalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + +} +end { + try { + $steppablePipeline.End() + + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $backupTelemetryId + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $backupInternalCalledCmdlets + if ($preTelemetryId -eq '') { + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.module]::Instance.Telemetry.Invoke('Send', $MyInvocation, $parameterSet, $PSCmdlet) + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $preTelemetryId + + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} +} + +<# +.Synopsis +Synchronously creates or updates a new channel with the specified parameters. +.Description +Synchronously creates or updates a new channel with the specified parameters. +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Outputs +Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IChannel +.Notes +COMPLEX PARAMETER PROPERTIES + +To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. + +PARTNERDESTINATIONINFORESOURCEMOVECHANGEHISTORY : Change history of the resource move. + [AzureSubscriptionId ]: Azure subscription ID of the resource. + [ChangedTimeUtc ]: UTC timestamp of when the resource was changed. + [ResourceGroupName ]: Azure Resource Group of the resource. +.Link +https://docs.microsoft.com/en-us/powershell/module/az.eventgrid/new-azeventgridchannel +#> +function New-AzEventGridChannel { +[OutputType([Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IChannel])] +[CmdletBinding(DefaultParameterSetName='CreateExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(Mandatory)] + [Alias('ChannelName')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [System.String] + # Name of the channel. + ${Name}, + + [Parameter(Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [System.String] + # Name of the partner namespace. + ${PartnerNamespaceName}, + + [Parameter(Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [System.String] + # The name of the resource group within the partners subscription. + ${ResourceGroupName}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] + [System.String] + # Subscription credentials that uniquely identify a Microsoft Azure subscription. + # The subscription ID forms part of the URI for every service call. + ${SubscriptionId}, + + [Parameter()] + [ArgumentCompleter([Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.ChannelType])] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.ChannelType] + # The type of the event channel which represents the direction flow of events. + ${ChannelType}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info(PossibleTypes=([Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventTypeInfoInlineEventTypes]))] + [System.Collections.Hashtable] + # A collection of inline event types for the resource. + # The inline event type keys are of type string which represents the name of the event.An example of a valid inline event name is "Contoso.OrderCreated".The inline event type values are of type InlineEventProperties and will contain additional information for every inline event type. + ${EventTypeInfoInlineEventType}, + + [Parameter()] + [ArgumentCompleter([Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EventDefinitionKind])] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EventDefinitionKind] + # The kind of event type used. + ${EventTypeInfoKind}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [System.DateTime] + # Expiration time of the channel. + # If this timer expires while the corresponding partner topic is never activated,the channel and corresponding partner topic are deleted. + ${ExpirationTimeIfNotActivatedUtc}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [System.String] + # Context or helpful message that can be used during the approval process by the subscriber. + ${MessageForActivation}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [System.String] + # Azure subscription ID of the subscriber. + # The partner destination associated with the channel will becreated under this Azure subscription. + ${PartnerDestinationInfoAzureSubscriptionId}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [System.String] + # Additional context of the partner destination endpoint. + ${PartnerDestinationInfoEndpointServiceContext}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [System.String] + # Name of the partner destination associated with the channel. + ${PartnerDestinationInfoName}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [System.String] + # Azure Resource Group of the subscriber. + # The partner destination associated with the channel will becreated under this resource group. + ${PartnerDestinationInfoResourceGroupName}, + + [Parameter()] + [AllowEmptyCollection()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IResourceMoveChangeHistory[]] + # Change history of the resource move. + # To construct, see NOTES section for PARTNERDESTINATIONINFORESOURCEMOVECHANGEHISTORY properties and create a hash table. + ${PartnerDestinationInfoResourceMoveChangeHistory}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [System.String] + # Azure subscription ID of the subscriber. + # The partner topic associated with the channel will becreated under this Azure subscription. + ${PartnerTopicInfoAzureSubscriptionId}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [System.String] + # Name of the partner topic associated with the channel. + ${PartnerTopicInfoName}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [System.String] + # Azure Resource Group of the subscriber. + # The partner topic associated with the channel will becreated under this resource group. + ${PartnerTopicInfoResourceGroupName}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [System.String] + # The source information is provided by the publisher to determine the scope or context from which the eventsare originating. + # This information can be used by the subscriber during the approval process of thecreated partner topic. + ${PartnerTopicInfoSource}, + + [Parameter()] + [ArgumentCompleter([Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.ChannelProvisioningState])] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.ChannelProvisioningState] + # Provisioning state of the channel. + ${ProvisioningState}, + + [Parameter()] + [ArgumentCompleter([Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.ReadinessState])] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.ReadinessState] + # The readiness state of the corresponding partner topic. + ${ReadinessState}, + + [Parameter()] + [Alias('AzureRMContext', 'AzureCredential')] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Returns true when the command succeeds + ${PassThru}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + if ($null -eq [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion) { + [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion = $Host.Runspace.Version.ToString() + } + $preTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + if ($preTelemetryId -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId =(New-Guid).ToString() + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.module]::Instance.Telemetry.Invoke('Create', $MyInvocation, $parameterSet, $PSCmdlet) + } else { + $internalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + if ($internalCalledCmdlets -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $MyInvocation.MyCommand.Name + } else { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets += ',' + $MyInvocation.MyCommand.Name + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = 'internal' + } + + $mapping = @{ + CreateExpanded = 'Az.EventGrid.private\New-AzEventGridChannel_CreateExpanded'; + } + if (('CreateExpanded') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { + $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } + + finally { + $backupTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + $backupInternalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + +} +end { + try { + $steppablePipeline.End() + + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $backupTelemetryId + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $backupInternalCalledCmdlets + if ($preTelemetryId -eq '') { + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.module]::Instance.Telemetry.Invoke('Send', $MyInvocation, $parameterSet, $PSCmdlet) + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $preTelemetryId + + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} +} + +<# +.Synopsis +Asynchronously creates a new event subscription or updates an existing event subscription. +.Description +Asynchronously creates a new event subscription or updates an existing event subscription. +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Outputs +Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscription +.Notes +COMPLEX PARAMETER PROPERTIES + +To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. + +FILTERADVANCEDFILTER : An array of advanced filters that are used for filtering event subscriptions. + OperatorType : The operator type used for filtering, e.g., NumberIn, StringContains, BoolEquals and others. + [Key ]: The field/property in the event based on which you want to filter. +.Link +https://docs.microsoft.com/en-us/powershell/module/az.eventgrid/new-azeventgriddomaineventsubscription +#> +function New-AzEventGridDomainEventSubscription { +[OutputType([Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscription])] +[CmdletBinding(DefaultParameterSetName='CreateExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [System.String] + # Name of the domain topic. + ${DomainName}, + + [Parameter(Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [System.String] + # Name of the event subscription to be created. + # Event subscription names must be between 3 and 100 characters in length and use alphanumeric letters only. + ${EventSubscriptionName}, + + [Parameter(Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [System.String] + # The name of the resource group within the user's subscription. + ${ResourceGroupName}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] + [System.String] + # Subscription credentials that uniquely identify a Microsoft Azure subscription. + # The subscription ID forms part of the URI for every service call. + ${SubscriptionId}, + + [Parameter()] + [ArgumentCompleter([Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EventSubscriptionIdentityType])] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EventSubscriptionIdentityType] + # The type of managed identity used. + # The type 'SystemAssigned, UserAssigned' includes both an implicitly created identity and a set of user-assigned identities. + # The type 'None' will remove any identity. + ${DeadLetterWithResourceIdentityType}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [System.String] + # The user identity associated with the resource. + ${DeadLetterWithResourceIdentityUserAssignedIdentity}, + + [Parameter()] + [ArgumentCompleter([Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EndpointType])] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EndpointType] + # Type of the endpoint for the event subscription destination. + ${DeliveryWithResourceIdentityDestinationEndpointType}, + + [Parameter()] + [ArgumentCompleter([Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EventSubscriptionIdentityType])] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EventSubscriptionIdentityType] + # The type of managed identity used. + # The type 'SystemAssigned, UserAssigned' includes both an implicitly created identity and a set of user-assigned identities. + # The type 'None' will remove any identity. + ${DeliveryWithResourceIdentityType}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [System.String] + # The user identity associated with the resource. + ${DeliveryWithResourceIdentityUserAssignedIdentity}, + + [Parameter()] + [ArgumentCompleter([Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EndpointType])] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EndpointType] + # Type of the endpoint for the event subscription destination. + ${EndpointType}, + + [Parameter()] + [ArgumentCompleter([Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EventDeliverySchema])] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EventDeliverySchema] + # The event delivery schema for the event subscription. + ${EventDeliverySchema}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [System.DateTime] + # Expiration time of the event subscription. + ${ExpirationTimeUtc}, + + [Parameter()] + [AllowEmptyCollection()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IAdvancedFilter[]] + # An array of advanced filters that are used for filtering event subscriptions. + # To construct, see NOTES section for FILTERADVANCEDFILTER properties and create a hash table. + ${FilterAdvancedFilter}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [System.Management.Automation.SwitchParameter] + # Allows advanced filters to be evaluated against an array of values instead of expecting a singular value. + ${FilterEnableAdvancedFilteringOnArray}, + + [Parameter()] + [AllowEmptyCollection()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [System.String[]] + # A list of applicable event types that need to be part of the event subscription. + # If it is desired to subscribe to all default event types, set the IncludedEventTypes to null. + ${FilterIncludedEventType}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [System.Management.Automation.SwitchParameter] + # Specifies if the SubjectBeginsWith and SubjectEndsWith properties of the filtershould be compared in a case sensitive manner. + ${FilterIsSubjectCaseSensitive}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [System.String] + # An optional string to filter events for an event subscription based on a resource path prefix.The format of this depends on the publisher of the events.Wildcard characters are not supported in this path. + ${FilterSubjectBeginsWith}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [System.String] + # An optional string to filter events for an event subscription based on a resource path suffix.Wildcard characters are not supported in this path. + ${FilterSubjectEndsWith}, + + [Parameter()] + [AllowEmptyCollection()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [System.String[]] + # List of user defined labels. + ${Label}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [System.Int32] + # Time To Live (in minutes) for events. + ${RetryPolicyEventTimeToLiveInMinute}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [System.Int32] + # Maximum number of delivery retry attempts for events. + ${RetryPolicyMaxDeliveryAttempt}, + + [Parameter()] + [Alias('AzureRMContext', 'AzureCredential')] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Run the command as a job + ${AsJob}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Run the command asynchronously + ${NoWait}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Returns true when the command succeeds + ${PassThru}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + if ($null -eq [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion) { + [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion = $Host.Runspace.Version.ToString() + } + $preTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + if ($preTelemetryId -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId =(New-Guid).ToString() + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.module]::Instance.Telemetry.Invoke('Create', $MyInvocation, $parameterSet, $PSCmdlet) + } else { + $internalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + if ($internalCalledCmdlets -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $MyInvocation.MyCommand.Name + } else { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets += ',' + $MyInvocation.MyCommand.Name + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = 'internal' + } + + $mapping = @{ + CreateExpanded = 'Az.EventGrid.private\New-AzEventGridDomainEventSubscription_CreateExpanded'; + } + if (('CreateExpanded') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { + $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } + + finally { + $backupTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + $backupInternalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + +} +end { + try { + $steppablePipeline.End() + + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $backupTelemetryId + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $backupInternalCalledCmdlets + if ($preTelemetryId -eq '') { + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.module]::Instance.Telemetry.Invoke('Send', $MyInvocation, $parameterSet, $PSCmdlet) + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $preTelemetryId + + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} +} + +<# +.Synopsis +Regenerate a shared access key for a domain. +.Description +Regenerate a shared access key for a domain. +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Inputs +Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDomainRegenerateKeyRequest +.Inputs +Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.IEventGridIdentity +.Outputs +Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDomainSharedAccessKeys +.Notes +COMPLEX PARAMETER PROPERTIES + +To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. + +INPUTOBJECT : Identity Parameter + [ChannelName ]: Name of the channel. + [DomainName ]: Name of the domain. + [DomainTopicName ]: Name of the topic. + [EventChannelName ]: Name of the event channel. + [EventSubscriptionName ]: Name of the event subscription. + [Id ]: Resource identity path + [Location ]: Name of the location. + [ParentName ]: The name of the parent resource (namely, either, the topic name, domain name, or partner namespace name). + [ParentType ]: The type of the parent resource. This can be either \'topics\', \'domains\', or \'partnerNamespaces\'. + [PartnerDestinationName ]: Name of the partner destination. + [PartnerNamespaceName ]: Name of the partner namespace. + [PartnerRegistrationName ]: Name of the partner registration. + [PartnerTopicName ]: Name of the partner topic. + [PrivateEndpointConnectionName ]: The name of the private endpoint connection connection. + [PrivateLinkResourceName ]: The name of private link resource. + [ProviderNamespace ]: Namespace of the provider of the topic. + [ResourceGroupName ]: The name of the resource group within the partners subscription. + [ResourceName ]: Name of the resource. + [ResourceTypeName ]: Name of the resource type. + [Scope ]: The scope of the event subscription. The scope can be a subscription, or a resource group, or a top level resource belonging to a resource provider namespace, or an EventGrid topic. For example, use '/subscriptions/{subscriptionId}/' for a subscription, '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}' for a resource group, and '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}' for a resource, and '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.EventGrid/topics/{topicName}' for an EventGrid topic. + [SubscriptionId ]: Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription ID forms part of the URI for every service call. + [SystemTopicName ]: Name of the system topic. + [TopicName ]: Name of the domain topic. + [TopicTypeName ]: Name of the topic type. + [VerifiedPartnerName ]: Name of the verified partner. + +REGENERATEKEYREQUEST : Domain regenerate share access key request. + KeyName : Key name to regenerate key1 or key2. +.Link +https://docs.microsoft.com/en-us/powershell/module/az.eventgrid/new-azeventgriddomainkey +#> +function New-AzEventGridDomainKey { +[OutputType([Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDomainSharedAccessKeys])] +[CmdletBinding(DefaultParameterSetName='RegenerateExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(ParameterSetName='Regenerate', Mandatory)] + [Parameter(ParameterSetName='RegenerateExpanded', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [System.String] + # Name of the domain. + ${DomainName}, + + [Parameter(ParameterSetName='Regenerate', Mandatory)] + [Parameter(ParameterSetName='RegenerateExpanded', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [System.String] + # The name of the resource group within the user's subscription. + ${ResourceGroupName}, + + [Parameter(ParameterSetName='Regenerate')] + [Parameter(ParameterSetName='RegenerateExpanded')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] + [System.String] + # Subscription credentials that uniquely identify a Microsoft Azure subscription. + # The subscription ID forms part of the URI for every service call. + ${SubscriptionId}, + + [Parameter(ParameterSetName='RegenerateViaIdentity', Mandatory, ValueFromPipeline)] + [Parameter(ParameterSetName='RegenerateViaIdentityExpanded', Mandatory, ValueFromPipeline)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.IEventGridIdentity] + # Identity Parameter + # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + ${InputObject}, + + [Parameter(ParameterSetName='Regenerate', Mandatory, ValueFromPipeline)] + [Parameter(ParameterSetName='RegenerateViaIdentity', Mandatory, ValueFromPipeline)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDomainRegenerateKeyRequest] + # Domain regenerate share access key request. + # To construct, see NOTES section for REGENERATEKEYREQUEST properties and create a hash table. + ${RegenerateKeyRequest}, + + [Parameter(ParameterSetName='RegenerateExpanded', Mandatory)] + [Parameter(ParameterSetName='RegenerateViaIdentityExpanded', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [System.String] + # Key name to regenerate key1 or key2. + ${KeyName}, + + [Parameter()] + [Alias('AzureRMContext', 'AzureCredential')] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Returns true when the command succeeds + ${PassThru}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + if ($null -eq [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion) { + [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion = $Host.Runspace.Version.ToString() + } + $preTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + if ($preTelemetryId -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId =(New-Guid).ToString() + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.module]::Instance.Telemetry.Invoke('Create', $MyInvocation, $parameterSet, $PSCmdlet) + } else { + $internalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + if ($internalCalledCmdlets -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $MyInvocation.MyCommand.Name + } else { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets += ',' + $MyInvocation.MyCommand.Name + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = 'internal' + } + + $mapping = @{ + Regenerate = 'Az.EventGrid.private\New-AzEventGridDomainKey_Regenerate'; + RegenerateExpanded = 'Az.EventGrid.private\New-AzEventGridDomainKey_RegenerateExpanded'; + RegenerateViaIdentity = 'Az.EventGrid.private\New-AzEventGridDomainKey_RegenerateViaIdentity'; + RegenerateViaIdentityExpanded = 'Az.EventGrid.private\New-AzEventGridDomainKey_RegenerateViaIdentityExpanded'; + } + if (('Regenerate', 'RegenerateExpanded') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { + $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } + + finally { + $backupTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + $backupInternalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + +} +end { + try { + $steppablePipeline.End() + + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $backupTelemetryId + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $backupInternalCalledCmdlets + if ($preTelemetryId -eq '') { + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.module]::Instance.Telemetry.Invoke('Send', $MyInvocation, $parameterSet, $PSCmdlet) + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $preTelemetryId + + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} +} + +<# +.Synopsis +Asynchronously creates a new event subscription or updates an existing event subscription. +.Description +Asynchronously creates a new event subscription or updates an existing event subscription. +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Outputs +Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscription +.Notes +COMPLEX PARAMETER PROPERTIES + +To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. + +FILTERADVANCEDFILTER : An array of advanced filters that are used for filtering event subscriptions. + OperatorType : The operator type used for filtering, e.g., NumberIn, StringContains, BoolEquals and others. + [Key ]: The field/property in the event based on which you want to filter. +.Link +https://docs.microsoft.com/en-us/powershell/module/az.eventgrid/new-azeventgriddomaintopiceventsubscription +#> +function New-AzEventGridDomainTopicEventSubscription { +[OutputType([Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscription])] +[CmdletBinding(DefaultParameterSetName='CreateExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [System.String] + # Name of the top level domain. + ${DomainName}, + + [Parameter(Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [System.String] + # Name of the event subscription to be created. + # Event subscription names must be between 3 and 100 characters in length and use alphanumeric letters only. + ${EventSubscriptionName}, + + [Parameter(Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [System.String] + # The name of the resource group within the user's subscription. + ${ResourceGroupName}, + + [Parameter(Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [System.String] + # Name of the domain topic. + ${TopicName}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] + [System.String] + # Subscription credentials that uniquely identify a Microsoft Azure subscription. + # The subscription ID forms part of the URI for every service call. + ${SubscriptionId}, + + [Parameter()] + [ArgumentCompleter([Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EventSubscriptionIdentityType])] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EventSubscriptionIdentityType] + # The type of managed identity used. + # The type 'SystemAssigned, UserAssigned' includes both an implicitly created identity and a set of user-assigned identities. + # The type 'None' will remove any identity. + ${DeadLetterWithResourceIdentityType}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [System.String] + # The user identity associated with the resource. + ${DeadLetterWithResourceIdentityUserAssignedIdentity}, + + [Parameter()] + [ArgumentCompleter([Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EndpointType])] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EndpointType] + # Type of the endpoint for the event subscription destination. + ${DeliveryWithResourceIdentityDestinationEndpointType}, + + [Parameter()] + [ArgumentCompleter([Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EventSubscriptionIdentityType])] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EventSubscriptionIdentityType] + # The type of managed identity used. + # The type 'SystemAssigned, UserAssigned' includes both an implicitly created identity and a set of user-assigned identities. + # The type 'None' will remove any identity. + ${DeliveryWithResourceIdentityType}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [System.String] + # The user identity associated with the resource. + ${DeliveryWithResourceIdentityUserAssignedIdentity}, + + [Parameter()] + [ArgumentCompleter([Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EndpointType])] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EndpointType] + # Type of the endpoint for the event subscription destination. + ${EndpointType}, + + [Parameter()] + [ArgumentCompleter([Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EventDeliverySchema])] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EventDeliverySchema] + # The event delivery schema for the event subscription. + ${EventDeliverySchema}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [System.DateTime] + # Expiration time of the event subscription. + ${ExpirationTimeUtc}, + + [Parameter()] + [AllowEmptyCollection()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IAdvancedFilter[]] + # An array of advanced filters that are used for filtering event subscriptions. + # To construct, see NOTES section for FILTERADVANCEDFILTER properties and create a hash table. + ${FilterAdvancedFilter}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [System.Management.Automation.SwitchParameter] + # Allows advanced filters to be evaluated against an array of values instead of expecting a singular value. + ${FilterEnableAdvancedFilteringOnArray}, + + [Parameter()] + [AllowEmptyCollection()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [System.String[]] + # A list of applicable event types that need to be part of the event subscription. + # If it is desired to subscribe to all default event types, set the IncludedEventTypes to null. + ${FilterIncludedEventType}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [System.Management.Automation.SwitchParameter] + # Specifies if the SubjectBeginsWith and SubjectEndsWith properties of the filtershould be compared in a case sensitive manner. + ${FilterIsSubjectCaseSensitive}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [System.String] + # An optional string to filter events for an event subscription based on a resource path prefix.The format of this depends on the publisher of the events.Wildcard characters are not supported in this path. + ${FilterSubjectBeginsWith}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [System.String] + # An optional string to filter events for an event subscription based on a resource path suffix.Wildcard characters are not supported in this path. + ${FilterSubjectEndsWith}, + + [Parameter()] + [AllowEmptyCollection()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [System.String[]] + # List of user defined labels. + ${Label}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [System.Int32] + # Time To Live (in minutes) for events. + ${RetryPolicyEventTimeToLiveInMinute}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [System.Int32] + # Maximum number of delivery retry attempts for events. + ${RetryPolicyMaxDeliveryAttempt}, + + [Parameter()] + [Alias('AzureRMContext', 'AzureCredential')] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Run the command as a job + ${AsJob}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Run the command asynchronously + ${NoWait}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Returns true when the command succeeds + ${PassThru}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + if ($null -eq [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion) { + [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion = $Host.Runspace.Version.ToString() + } + $preTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + if ($preTelemetryId -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId =(New-Guid).ToString() + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.module]::Instance.Telemetry.Invoke('Create', $MyInvocation, $parameterSet, $PSCmdlet) + } else { + $internalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + if ($internalCalledCmdlets -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $MyInvocation.MyCommand.Name + } else { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets += ',' + $MyInvocation.MyCommand.Name + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = 'internal' + } + + $mapping = @{ + CreateExpanded = 'Az.EventGrid.private\New-AzEventGridDomainTopicEventSubscription_CreateExpanded'; + } + if (('CreateExpanded') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { + $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } + + finally { + $backupTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + $backupInternalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + +} +end { + try { + $steppablePipeline.End() + + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $backupTelemetryId + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $backupInternalCalledCmdlets + if ($preTelemetryId -eq '') { + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.module]::Instance.Telemetry.Invoke('Send', $MyInvocation, $parameterSet, $PSCmdlet) + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $preTelemetryId + + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} +} + +<# +.Synopsis +Asynchronously creates or updates a new domain with the specified parameters. +.Description +Asynchronously creates or updates a new domain with the specified parameters. +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.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. + +INBOUNDIPRULE : This can be used to restrict traffic from specific IPs instead of all IPs. Note: These are considered only if PublicNetworkAccess is enabled. + [Action ]: Action to perform based on the match or no match of the IpMask. + [IPMask ]: IP Address in CIDR notation e.g., 10.0.0.0/8. +.Link +https://docs.microsoft.com/en-us/powershell/module/az.eventgrid/new-azeventgriddomain +#> +function New-AzEventGridDomain { +[OutputType([System.Boolean])] +[CmdletBinding(DefaultParameterSetName='CreateExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(Mandatory)] + [Alias('DomainName')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [System.String] + # Name of the domain. + ${Name}, + + [Parameter(Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [System.String] + # The name of the resource group within the user's subscription. + ${ResourceGroupName}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] + [System.String] + # Subscription credentials that uniquely identify a Microsoft Azure subscription. + # The subscription ID forms part of the URI for every service call. + ${SubscriptionId}, + + [Parameter(Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [System.String] + # Location of the resource. + ${Location}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [System.Management.Automation.SwitchParameter] + # This Boolean is used to specify the creation mechanism for 'all' the Event Grid Domain Topics associated with this Event Grid Domain resource.In this context, creation of domain topic can be auto-managed (when true) or self-managed (when false). + # The default value for this property is true.When this property is null or set to true, Event Grid is responsible of automatically creating the domain topic when the first event subscription iscreated at the scope of the domain topic. + # If this property is set to false, then creating the first event subscription will require creating a domain topicby the user. + # The self-management mode can be used if the user wants full control of when the domain topic is created, while auto-managed mode provides theflexibility to perform less operations and manage fewer resources by the user. + # Also, note that in auto-managed creation mode, user is allowed to create thedomain topic on demand if needed. + ${AutoCreateTopicWithFirstSubscription}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [System.Management.Automation.SwitchParameter] + # This Boolean is used to specify the deletion mechanism for 'all' the Event Grid Domain Topics associated with this Event Grid Domain resource.In this context, deletion of domain topic can be auto-managed (when true) or self-managed (when false). + # The default value for this property is true.When this property is set to true, Event Grid is responsible of automatically deleting the domain topic when the last event subscription at the scopeof the domain topic is deleted. + # If this property is set to false, then the user needs to manually delete the domain topic when it is no longer needed(e.g., when last event subscription is deleted and the resource needs to be cleaned up). + # The self-management mode can be used if the user wants fullcontrol of when the domain topic needs to be deleted, while auto-managed mode provides the flexibility to perform less operations and manage fewerresources by the user. + ${AutoDeleteTopicWithLastSubscription}, + + [Parameter()] + [ArgumentCompleter([Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.DataResidencyBoundary])] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.DataResidencyBoundary] + # Data Residency Boundary of the resource. + ${DataResidencyBoundary}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [System.Management.Automation.SwitchParameter] + # This boolean is used to enable or disable local auth. + # Default value is false. + # When the property is set to true, only AAD token will be used to authenticate if user is allowed to publish to the domain. + ${DisableLocalAuth}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [System.String] + # The principal ID of resource identity. + ${IdentityPrincipalId}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [System.String] + # The tenant ID of resource. + ${IdentityTenantId}, + + [Parameter()] + [ArgumentCompleter([Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.IdentityType])] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.IdentityType] + # The type of managed identity used. + # The type 'SystemAssigned, UserAssigned' includes both an implicitly created identity and a set of user-assigned identities. + # The type 'None' will remove any identity. + ${IdentityType}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info(PossibleTypes=([Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IIdentityInfoUserAssignedIdentities]))] + [System.Collections.Hashtable] + # The list of user identities associated with the resource. + # The user identity dictionary key references will be ARM resource ids in the form:'/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ManagedIdentity/userAssignedIdentities/{identityName}'.This property is currently not used and reserved for future usage. + ${IdentityUserAssignedIdentity}, + + [Parameter()] + [AllowEmptyCollection()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IInboundIPRule[]] + # This can be used to restrict traffic from specific IPs instead of all IPs. + # Note: These are considered only if PublicNetworkAccess is enabled. + # To construct, see NOTES section for INBOUNDIPRULE properties and create a hash table. + ${InboundIPRule}, + + [Parameter()] + [ArgumentCompleter([Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.InputSchema])] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.InputSchema] + # This determines the format that Event Grid should expect for incoming events published to the Event Grid Domain Resource. + ${InputSchema}, + + [Parameter()] + [ArgumentCompleter([Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.PublicNetworkAccess])] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.PublicNetworkAccess] + # This determines if traffic is allowed over public network. + # By default it is enabled.You can further restrict to specific IPs by configuring + ${PublicNetworkAccess}, + + [Parameter()] + [ArgumentCompleter([Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.Sku])] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.Sku] + # The Sku name of the resource. + # The possible values are: Basic or Premium. + ${SkuName}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info(PossibleTypes=([Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITrackedResourceTags]))] + [System.Collections.Hashtable] + # Tags of the resource. + ${Tag}, + + [Parameter()] + [Alias('AzureRMContext', 'AzureCredential')] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Run the command as a job + ${AsJob}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Run the command asynchronously + ${NoWait}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Returns true when the command succeeds + ${PassThru}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + if ($null -eq [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion) { + [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion = $Host.Runspace.Version.ToString() + } + $preTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + if ($preTelemetryId -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId =(New-Guid).ToString() + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.module]::Instance.Telemetry.Invoke('Create', $MyInvocation, $parameterSet, $PSCmdlet) + } else { + $internalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + if ($internalCalledCmdlets -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $MyInvocation.MyCommand.Name + } else { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets += ',' + $MyInvocation.MyCommand.Name + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = 'internal' + } + + $mapping = @{ + CreateExpanded = 'Az.EventGrid.private\New-AzEventGridDomain_CreateExpanded'; + } + if (('CreateExpanded') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { + $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } + + finally { + $backupTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + $backupInternalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + +} +end { + try { + $steppablePipeline.End() + + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $backupTelemetryId + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $backupInternalCalledCmdlets + if ($preTelemetryId -eq '') { + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.module]::Instance.Telemetry.Invoke('Send', $MyInvocation, $parameterSet, $PSCmdlet) + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $preTelemetryId + + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} +} + +<# +.Synopsis +Asynchronously creates a new event channel with the specified parameters. +.Description +Asynchronously creates a new event channel with the specified parameters. +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Outputs +Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventChannel +.Notes +COMPLEX PARAMETER PROPERTIES + +To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. + +FILTERADVANCEDFILTER : An array of advanced filters that are used for filtering event channels. + OperatorType : The operator type used for filtering, e.g., NumberIn, StringContains, BoolEquals and others. + [Key ]: The field/property in the event based on which you want to filter. +.Link +https://docs.microsoft.com/en-us/powershell/module/az.eventgrid/new-azeventgrideventchannel +#> +function New-AzEventGridEventChannel { +[OutputType([Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventChannel])] +[CmdletBinding(DefaultParameterSetName='CreateExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(Mandatory)] + [Alias('EventChannelName')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [System.String] + # Name of the event channel. + ${Name}, + + [Parameter(Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [System.String] + # Name of the partner namespace. + ${PartnerNamespaceName}, + + [Parameter(Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [System.String] + # The name of the resource group within the user's subscription. + ${ResourceGroupName}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] + [System.String] + # Subscription credentials that uniquely identify a Microsoft Azure subscription. + # The subscription ID forms part of the URI for every service call. + ${SubscriptionId}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [System.String] + # Azure subscription ID of the customer creating the event channel. + # The partner topicassociated with the event channel will be created under this Azure subscription. + ${DestinationAzureSubscriptionId}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [System.String] + # Name of the partner topic associated with the event channel. + ${DestinationPartnerTopicName}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [System.String] + # Azure Resource Group of the customer creating the event channel. + # The partner topicassociated with the event channel will be created under this resource group. + ${DestinationResourceGroup}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [System.String] + # The identifier of the resource that's the source of the events.This represents a unique resource in the partner's resource model. + ${EventChannelSource}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [System.DateTime] + # Expiration time of the event channel. + # If this timer expires while the corresponding partner topic is never activated,the event channel and corresponding partner topic are deleted. + ${ExpirationTimeIfNotActivatedUtc}, + + [Parameter()] + [AllowEmptyCollection()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IAdvancedFilter[]] + # An array of advanced filters that are used for filtering event channels. + # To construct, see NOTES section for FILTERADVANCEDFILTER properties and create a hash table. + ${FilterAdvancedFilter}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [System.Management.Automation.SwitchParameter] + # Allows advanced filters to be evaluated against an array of values instead of expecting a singular value. + # The default value is either false or null. + ${FilterEnableAdvancedFilteringOnArray}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [System.String] + # Friendly description about the topic. + # This can be set by the publisher/partner to show custom description for the customer partner topic.This will be helpful to remove any ambiguity of the origin of creation of the partner topic for the customer. + ${PartnerTopicFriendlyDescription}, + + [Parameter()] + [Alias('AzureRMContext', 'AzureCredential')] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Returns true when the command succeeds + ${PassThru}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + if ($null -eq [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion) { + [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion = $Host.Runspace.Version.ToString() + } + $preTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + if ($preTelemetryId -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId =(New-Guid).ToString() + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.module]::Instance.Telemetry.Invoke('Create', $MyInvocation, $parameterSet, $PSCmdlet) + } else { + $internalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + if ($internalCalledCmdlets -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $MyInvocation.MyCommand.Name + } else { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets += ',' + $MyInvocation.MyCommand.Name + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = 'internal' + } + + $mapping = @{ + CreateExpanded = 'Az.EventGrid.private\New-AzEventGridEventChannel_CreateExpanded'; + } + if (('CreateExpanded') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { + $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } + + finally { + $backupTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + $backupInternalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + +} +end { + try { + $steppablePipeline.End() + + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $backupTelemetryId + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $backupInternalCalledCmdlets + if ($preTelemetryId -eq '') { + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.module]::Instance.Telemetry.Invoke('Send', $MyInvocation, $parameterSet, $PSCmdlet) + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $preTelemetryId + + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} +} + +<# +.Synopsis +Asynchronously creates a new event subscription or updates an existing event subscription based on the specified scope. +.Description +Asynchronously creates a new event subscription or updates an existing event subscription based on the specified scope. +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.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. + +FILTERADVANCEDFILTER : An array of advanced filters that are used for filtering event subscriptions. + OperatorType : The operator type used for filtering, e.g., NumberIn, StringContains, BoolEquals and others. + [Key ]: The field/property in the event based on which you want to filter. +.Link +https://docs.microsoft.com/en-us/powershell/module/az.eventgrid/new-azeventgrideventsubscription +#> +function New-AzEventGridEventSubscription { +[OutputType([System.Boolean])] +[CmdletBinding(DefaultParameterSetName='CreateExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(Mandatory)] + [Alias('EventSubscriptionName')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [System.String] + # Name of the event subscription. + # Event subscription names must be between 3 and 64 characters in length and should use alphanumeric letters only. + ${Name}, + + [Parameter(Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [System.String] + # The identifier of the resource to which the event subscription needs to be created or updated. + # The scope can be a subscription, or a resource group, or a top level resource belonging to a resource provider namespace, or an EventGrid topic. + # For example, use '/subscriptions/{subscriptionId}/' for a subscription, '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}' for a resource group, and '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}' for a resource, and '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.EventGrid/topics/{topicName}' for an EventGrid topic. + ${Scope}, + + [Parameter()] + [ArgumentCompleter([Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EventSubscriptionIdentityType])] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EventSubscriptionIdentityType] + # The type of managed identity used. + # The type 'SystemAssigned, UserAssigned' includes both an implicitly created identity and a set of user-assigned identities. + # The type 'None' will remove any identity. + ${DeadLetterWithResourceIdentityType}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [System.String] + # The user identity associated with the resource. + ${DeadLetterWithResourceIdentityUserAssignedIdentity}, + + [Parameter()] + [ArgumentCompleter([Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EndpointType])] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EndpointType] + # Type of the endpoint for the event subscription destination. + ${DeliveryWithResourceIdentityDestinationEndpointType}, + + [Parameter()] + [ArgumentCompleter([Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EventSubscriptionIdentityType])] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EventSubscriptionIdentityType] + # The type of managed identity used. + # The type 'SystemAssigned, UserAssigned' includes both an implicitly created identity and a set of user-assigned identities. + # The type 'None' will remove any identity. + ${DeliveryWithResourceIdentityType}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [System.String] + # The user identity associated with the resource. + ${DeliveryWithResourceIdentityUserAssignedIdentity}, + + [Parameter()] + [ArgumentCompleter([Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EndpointType])] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EndpointType] + # Type of the endpoint for the event subscription destination. + ${EndpointType}, + + [Parameter()] + [ArgumentCompleter([Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EventDeliverySchema])] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EventDeliverySchema] + # The event delivery schema for the event subscription. + ${EventDeliverySchema}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [System.DateTime] + # Expiration time of the event subscription. + ${ExpirationTimeUtc}, + + [Parameter()] + [AllowEmptyCollection()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IAdvancedFilter[]] + # An array of advanced filters that are used for filtering event subscriptions. + # To construct, see NOTES section for FILTERADVANCEDFILTER properties and create a hash table. + ${FilterAdvancedFilter}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [System.Management.Automation.SwitchParameter] + # Allows advanced filters to be evaluated against an array of values instead of expecting a singular value. + ${FilterEnableAdvancedFilteringOnArray}, + + [Parameter()] + [AllowEmptyCollection()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [System.String[]] + # A list of applicable event types that need to be part of the event subscription. + # If it is desired to subscribe to all default event types, set the IncludedEventTypes to null. + ${FilterIncludedEventType}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [System.Management.Automation.SwitchParameter] + # Specifies if the SubjectBeginsWith and SubjectEndsWith properties of the filtershould be compared in a case sensitive manner. + ${FilterIsSubjectCaseSensitive}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [System.String] + # An optional string to filter events for an event subscription based on a resource path prefix.The format of this depends on the publisher of the events.Wildcard characters are not supported in this path. + ${FilterSubjectBeginsWith}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [System.String] + # An optional string to filter events for an event subscription based on a resource path suffix.Wildcard characters are not supported in this path. + ${FilterSubjectEndsWith}, + + [Parameter()] + [AllowEmptyCollection()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [System.String[]] + # List of user defined labels. + ${Label}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [System.Int32] + # Time To Live (in minutes) for events. + ${RetryPolicyEventTimeToLiveInMinute}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [System.Int32] + # Maximum number of delivery retry attempts for events. + ${RetryPolicyMaxDeliveryAttempt}, + + [Parameter()] + [Alias('AzureRMContext', 'AzureCredential')] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Run the command as a job + ${AsJob}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Run the command asynchronously + ${NoWait}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Returns true when the command succeeds + ${PassThru}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + if ($null -eq [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion) { + [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion = $Host.Runspace.Version.ToString() + } + $preTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + if ($preTelemetryId -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId =(New-Guid).ToString() + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.module]::Instance.Telemetry.Invoke('Create', $MyInvocation, $parameterSet, $PSCmdlet) + } else { + $internalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + if ($internalCalledCmdlets -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $MyInvocation.MyCommand.Name + } else { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets += ',' + $MyInvocation.MyCommand.Name + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = 'internal' + } + + $mapping = @{ + CreateExpanded = 'Az.EventGrid.private\New-AzEventGridEventSubscription_CreateExpanded'; + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } + + finally { + $backupTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + $backupInternalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + +} +end { + try { + $steppablePipeline.End() + + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $backupTelemetryId + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $backupInternalCalledCmdlets + if ($preTelemetryId -eq '') { + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.module]::Instance.Telemetry.Invoke('Send', $MyInvocation, $parameterSet, $PSCmdlet) + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $preTelemetryId + + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} +} + +<# +.Synopsis +Synchronously creates or updates a partner configuration with the specified parameters. +.Description +Synchronously creates or updates a partner configuration with the specified parameters. +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Outputs +Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerConfiguration +.Notes +COMPLEX PARAMETER PROPERTIES + +To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. + +PARTNERAUTHORIZATIONAUTHORIZEDPARTNERSLIST : The list of authorized partners. + [AuthorizationExpirationTimeInUtc ]: Expiration time of the partner authorization. If this timer expires, any request from this partner to create, update or delete resources in subscriber's context will fail. If specified, the allowed values are between 1 to the value of defaultMaximumExpirationTimeInDays specified in PartnerConfiguration. If not specified, the default value will be the value of defaultMaximumExpirationTimeInDays specified in PartnerConfiguration or 7 if this value is not specified. + [Name ]: The partner name. + [RegistrationImmutableId ]: The immutableId of the corresponding partner registration. +.Link +https://docs.microsoft.com/en-us/powershell/module/az.eventgrid/new-azeventgridpartnerconfiguration +#> +function New-AzEventGridPartnerConfiguration { +[OutputType([Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerConfiguration])] +[CmdletBinding(DefaultParameterSetName='CreateExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [System.String] + # The name of the resource group within the user's subscription. + ${ResourceGroupName}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] + [System.String] + # Subscription credentials that uniquely identify a Microsoft Azure subscription. + # The subscription ID forms part of the URI for every service call. + ${SubscriptionId}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [System.String] + # Location of the resource. + ${Location}, + + [Parameter()] + [AllowEmptyCollection()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartner[]] + # The list of authorized partners. + # To construct, see NOTES section for PARTNERAUTHORIZATIONAUTHORIZEDPARTNERSLIST properties and create a hash table. + ${PartnerAuthorizationAuthorizedPartnersList}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [System.Int32] + # Time used to validate the authorization expiration time for each authorized partner. + # If DefaultMaximumExpirationTimeInDays isnot specified, the default is 7 days. + # Otherwise, allowed values are between 1 and 365 days. + ${PartnerAuthorizationDefaultMaximumExpirationTimeInDay}, + + [Parameter()] + [ArgumentCompleter([Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.PartnerConfigurationProvisioningState])] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.PartnerConfigurationProvisioningState] + # Provisioning state of the partner configuration. + ${ProvisioningState}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info(PossibleTypes=([Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerConfigurationTags]))] + [System.Collections.Hashtable] + # Tags of the resource. + ${Tag}, + + [Parameter()] + [Alias('AzureRMContext', 'AzureCredential')] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Run the command as a job + ${AsJob}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Run the command asynchronously + ${NoWait}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Returns true when the command succeeds + ${PassThru}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + if ($null -eq [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion) { + [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion = $Host.Runspace.Version.ToString() + } + $preTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + if ($preTelemetryId -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId =(New-Guid).ToString() + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.module]::Instance.Telemetry.Invoke('Create', $MyInvocation, $parameterSet, $PSCmdlet) + } else { + $internalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + if ($internalCalledCmdlets -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $MyInvocation.MyCommand.Name + } else { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets += ',' + $MyInvocation.MyCommand.Name + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = 'internal' + } + + $mapping = @{ + CreateExpanded = 'Az.EventGrid.private\New-AzEventGridPartnerConfiguration_CreateExpanded'; + } + if (('CreateExpanded') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { + $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } + + finally { + $backupTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + $backupInternalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + +} +end { + try { + $steppablePipeline.End() + + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $backupTelemetryId + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $backupInternalCalledCmdlets + if ($preTelemetryId -eq '') { + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.module]::Instance.Telemetry.Invoke('Send', $MyInvocation, $parameterSet, $PSCmdlet) + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $preTelemetryId + + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} +} + +<# +.Synopsis +Asynchronously creates a new partner destination with the specified parameters. +.Description +Asynchronously creates a new partner destination with the specified parameters. +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Outputs +Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerDestination +.Link +https://docs.microsoft.com/en-us/powershell/module/az.eventgrid/new-azeventgridpartnerdestination +#> +function New-AzEventGridPartnerDestination { +[OutputType([Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerDestination])] +[CmdletBinding(DefaultParameterSetName='CreateExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(Mandatory)] + [Alias('PartnerDestinationName')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [System.String] + # Name of the partner destination. + ${Name}, + + [Parameter(Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [System.String] + # The name of the resource group within the user's subscription. + ${ResourceGroupName}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] + [System.String] + # Subscription credentials that uniquely identify a Microsoft Azure subscription. + # The subscription ID forms part of the URI for every service call. + ${SubscriptionId}, + + [Parameter(Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [System.String] + # Location of the resource. + ${Location}, + + [Parameter()] + [ArgumentCompleter([Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.PartnerDestinationActivationState])] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.PartnerDestinationActivationState] + # Activation state of the partner destination. + ${ActivationState}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [System.String] + # Endpoint Base URL of the partner destination + ${EndpointBaseUrl}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [System.String] + # Endpoint context associated with this partner destination. + ${EndpointServiceContext}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [System.DateTime] + # Expiration time of the partner destination. + # If this timer expires and the partner destination was never activated,the partner destination and corresponding channel are deleted. + ${ExpirationTimeIfNotActivatedUtc}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [System.String] + # Context or helpful message that can be used during the approval process. + ${MessageForActivation}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [System.String] + # The immutable Id of the corresponding partner registration. + ${PartnerRegistrationImmutableId}, + + [Parameter()] + [ArgumentCompleter([Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.PartnerDestinationProvisioningState])] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.PartnerDestinationProvisioningState] + # Provisioning state of the partner destination. + ${ProvisioningState}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info(PossibleTypes=([Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITrackedResourceTags]))] + [System.Collections.Hashtable] + # Tags of the resource. + ${Tag}, + + [Parameter()] + [Alias('AzureRMContext', 'AzureCredential')] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Returns true when the command succeeds + ${PassThru}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + if ($null -eq [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion) { + [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion = $Host.Runspace.Version.ToString() + } + $preTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + if ($preTelemetryId -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId =(New-Guid).ToString() + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.module]::Instance.Telemetry.Invoke('Create', $MyInvocation, $parameterSet, $PSCmdlet) + } else { + $internalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + if ($internalCalledCmdlets -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $MyInvocation.MyCommand.Name + } else { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets += ',' + $MyInvocation.MyCommand.Name + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = 'internal' + } + + $mapping = @{ + CreateExpanded = 'Az.EventGrid.private\New-AzEventGridPartnerDestination_CreateExpanded'; + } + if (('CreateExpanded') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { + $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } + + finally { + $backupTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + $backupInternalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + +} +end { + try { + $steppablePipeline.End() + + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $backupTelemetryId + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $backupInternalCalledCmdlets + if ($preTelemetryId -eq '') { + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.module]::Instance.Telemetry.Invoke('Send', $MyInvocation, $parameterSet, $PSCmdlet) + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $preTelemetryId + + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} +} + +<# +.Synopsis +Regenerate a shared access key for a partner namespace. +.Description +Regenerate a shared access key for a partner namespace. +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Inputs +Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerNamespaceRegenerateKeyRequest +.Inputs +Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.IEventGridIdentity +.Outputs +Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerNamespaceSharedAccessKeys +.Notes +COMPLEX PARAMETER PROPERTIES + +To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. + +INPUTOBJECT : Identity Parameter + [ChannelName ]: Name of the channel. + [DomainName ]: Name of the domain. + [DomainTopicName ]: Name of the topic. + [EventChannelName ]: Name of the event channel. + [EventSubscriptionName ]: Name of the event subscription. + [Id ]: Resource identity path + [Location ]: Name of the location. + [ParentName ]: The name of the parent resource (namely, either, the topic name, domain name, or partner namespace name). + [ParentType ]: The type of the parent resource. This can be either \'topics\', \'domains\', or \'partnerNamespaces\'. + [PartnerDestinationName ]: Name of the partner destination. + [PartnerNamespaceName ]: Name of the partner namespace. + [PartnerRegistrationName ]: Name of the partner registration. + [PartnerTopicName ]: Name of the partner topic. + [PrivateEndpointConnectionName ]: The name of the private endpoint connection connection. + [PrivateLinkResourceName ]: The name of private link resource. + [ProviderNamespace ]: Namespace of the provider of the topic. + [ResourceGroupName ]: The name of the resource group within the partners subscription. + [ResourceName ]: Name of the resource. + [ResourceTypeName ]: Name of the resource type. + [Scope ]: The scope of the event subscription. The scope can be a subscription, or a resource group, or a top level resource belonging to a resource provider namespace, or an EventGrid topic. For example, use '/subscriptions/{subscriptionId}/' for a subscription, '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}' for a resource group, and '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}' for a resource, and '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.EventGrid/topics/{topicName}' for an EventGrid topic. + [SubscriptionId ]: Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription ID forms part of the URI for every service call. + [SystemTopicName ]: Name of the system topic. + [TopicName ]: Name of the domain topic. + [TopicTypeName ]: Name of the topic type. + [VerifiedPartnerName ]: Name of the verified partner. + +REGENERATEKEYREQUEST : PartnerNamespace regenerate shared access key request. + KeyName : Key name to regenerate (key1 or key2). +.Link +https://docs.microsoft.com/en-us/powershell/module/az.eventgrid/new-azeventgridpartnernamespacekey +#> +function New-AzEventGridPartnerNamespaceKey { +[OutputType([Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerNamespaceSharedAccessKeys])] +[CmdletBinding(DefaultParameterSetName='RegenerateExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(ParameterSetName='Regenerate', Mandatory)] + [Parameter(ParameterSetName='RegenerateExpanded', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [System.String] + # Name of the partner namespace. + ${PartnerNamespaceName}, + + [Parameter(ParameterSetName='Regenerate', Mandatory)] + [Parameter(ParameterSetName='RegenerateExpanded', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [System.String] + # The name of the resource group within the user's subscription. + ${ResourceGroupName}, + + [Parameter(ParameterSetName='Regenerate')] + [Parameter(ParameterSetName='RegenerateExpanded')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] + [System.String] + # Subscription credentials that uniquely identify a Microsoft Azure subscription. + # The subscription ID forms part of the URI for every service call. + ${SubscriptionId}, + + [Parameter(ParameterSetName='RegenerateViaIdentity', Mandatory, ValueFromPipeline)] + [Parameter(ParameterSetName='RegenerateViaIdentityExpanded', Mandatory, ValueFromPipeline)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.IEventGridIdentity] + # Identity Parameter + # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + ${InputObject}, + + [Parameter(ParameterSetName='Regenerate', Mandatory, ValueFromPipeline)] + [Parameter(ParameterSetName='RegenerateViaIdentity', Mandatory, ValueFromPipeline)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerNamespaceRegenerateKeyRequest] + # PartnerNamespace regenerate shared access key request. + # To construct, see NOTES section for REGENERATEKEYREQUEST properties and create a hash table. + ${RegenerateKeyRequest}, + + [Parameter(ParameterSetName='RegenerateExpanded', Mandatory)] + [Parameter(ParameterSetName='RegenerateViaIdentityExpanded', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [System.String] + # Key name to regenerate (key1 or key2). + ${KeyName}, + + [Parameter()] + [Alias('AzureRMContext', 'AzureCredential')] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Returns true when the command succeeds + ${PassThru}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + if ($null -eq [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion) { + [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion = $Host.Runspace.Version.ToString() + } + $preTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + if ($preTelemetryId -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId =(New-Guid).ToString() + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.module]::Instance.Telemetry.Invoke('Create', $MyInvocation, $parameterSet, $PSCmdlet) + } else { + $internalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + if ($internalCalledCmdlets -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $MyInvocation.MyCommand.Name + } else { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets += ',' + $MyInvocation.MyCommand.Name + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = 'internal' + } + + $mapping = @{ + Regenerate = 'Az.EventGrid.private\New-AzEventGridPartnerNamespaceKey_Regenerate'; + RegenerateExpanded = 'Az.EventGrid.private\New-AzEventGridPartnerNamespaceKey_RegenerateExpanded'; + RegenerateViaIdentity = 'Az.EventGrid.private\New-AzEventGridPartnerNamespaceKey_RegenerateViaIdentity'; + RegenerateViaIdentityExpanded = 'Az.EventGrid.private\New-AzEventGridPartnerNamespaceKey_RegenerateViaIdentityExpanded'; + } + if (('Regenerate', 'RegenerateExpanded') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { + $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } + + finally { + $backupTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + $backupInternalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + +} +end { + try { + $steppablePipeline.End() + + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $backupTelemetryId + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $backupInternalCalledCmdlets + if ($preTelemetryId -eq '') { + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.module]::Instance.Telemetry.Invoke('Send', $MyInvocation, $parameterSet, $PSCmdlet) + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $preTelemetryId + + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} +} + +<# +.Synopsis +Asynchronously creates a new partner namespace with the specified parameters. +.Description +Asynchronously creates a new partner namespace with the specified parameters. +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.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. + +INBOUNDIPRULE : This can be used to restrict traffic from specific IPs instead of all IPs. Note: These are considered only if PublicNetworkAccess is enabled. + [Action ]: Action to perform based on the match or no match of the IpMask. + [IPMask ]: IP Address in CIDR notation e.g., 10.0.0.0/8. +.Link +https://docs.microsoft.com/en-us/powershell/module/az.eventgrid/new-azeventgridpartnernamespace +#> +function New-AzEventGridPartnerNamespace { +[OutputType([System.Boolean])] +[CmdletBinding(DefaultParameterSetName='CreateExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(Mandatory)] + [Alias('PartnerNamespaceName')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [System.String] + # Name of the partner namespace. + ${Name}, + + [Parameter(Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [System.String] + # The name of the resource group within the user's subscription. + ${ResourceGroupName}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] + [System.String] + # Subscription credentials that uniquely identify a Microsoft Azure subscription. + # The subscription ID forms part of the URI for every service call. + ${SubscriptionId}, + + [Parameter(Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [System.String] + # Location of the resource. + ${Location}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [System.Management.Automation.SwitchParameter] + # This boolean is used to enable or disable local auth. + # Default value is false. + # When the property is set to true, only AAD token will be used to authenticate if user is allowed to publish to the partner namespace. + ${DisableLocalAuth}, + + [Parameter()] + [AllowEmptyCollection()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IInboundIPRule[]] + # This can be used to restrict traffic from specific IPs instead of all IPs. + # Note: These are considered only if PublicNetworkAccess is enabled. + # To construct, see NOTES section for INBOUNDIPRULE properties and create a hash table. + ${InboundIPRule}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [System.String] + # The fully qualified ARM Id of the partner registration that should be associated with this partner namespace. + # This takes the following format:/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.EventGrid/partnerRegistrations/{partnerRegistrationName}. + ${PartnerRegistrationFullyQualifiedId}, + + [Parameter()] + [ArgumentCompleter([Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.PartnerTopicRoutingMode])] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.PartnerTopicRoutingMode] + # This determines if events published to this partner namespace should use the source attribute in the event payloador use the channel name in the header when matching to the partner topic. + # If none is specified, source attribute routing will be used to match the partner topic. + ${PartnerTopicRoutingMode}, + + [Parameter()] + [ArgumentCompleter([Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.PublicNetworkAccess])] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.PublicNetworkAccess] + # This determines if traffic is allowed over public network. + # By default it is enabled.You can further restrict to specific IPs by configuring + ${PublicNetworkAccess}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info(PossibleTypes=([Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITrackedResourceTags]))] + [System.Collections.Hashtable] + # Tags of the resource. + ${Tag}, + + [Parameter()] + [Alias('AzureRMContext', 'AzureCredential')] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Run the command as a job + ${AsJob}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Run the command asynchronously + ${NoWait}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Returns true when the command succeeds + ${PassThru}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + if ($null -eq [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion) { + [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion = $Host.Runspace.Version.ToString() + } + $preTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + if ($preTelemetryId -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId =(New-Guid).ToString() + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.module]::Instance.Telemetry.Invoke('Create', $MyInvocation, $parameterSet, $PSCmdlet) + } else { + $internalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + if ($internalCalledCmdlets -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $MyInvocation.MyCommand.Name + } else { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets += ',' + $MyInvocation.MyCommand.Name + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = 'internal' + } + + $mapping = @{ + CreateExpanded = 'Az.EventGrid.private\New-AzEventGridPartnerNamespace_CreateExpanded'; + } + if (('CreateExpanded') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { + $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } + + finally { + $backupTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + $backupInternalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + +} +end { + try { + $steppablePipeline.End() + + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $backupTelemetryId + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $backupInternalCalledCmdlets + if ($preTelemetryId -eq '') { + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.module]::Instance.Telemetry.Invoke('Send', $MyInvocation, $parameterSet, $PSCmdlet) + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $preTelemetryId + + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} +} + +<# +.Synopsis +Creates a new partner registration with the specified parameters. +.Description +Creates a new partner registration with the specified parameters. +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Outputs +Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerRegistration +.Link +https://docs.microsoft.com/en-us/powershell/module/az.eventgrid/new-azeventgridpartnerregistration +#> +function New-AzEventGridPartnerRegistration { +[OutputType([Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerRegistration])] +[CmdletBinding(DefaultParameterSetName='CreateExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(Mandatory)] + [Alias('PartnerRegistrationName')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [System.String] + # Name of the partner registration. + ${Name}, + + [Parameter(Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [System.String] + # The name of the resource group within the user's subscription. + ${ResourceGroupName}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] + [System.String] + # Subscription credentials that uniquely identify a Microsoft Azure subscription. + # The subscription ID forms part of the URI for every service call. + ${SubscriptionId}, + + [Parameter(Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [System.String] + # Location of the resource. + ${Location}, + + [Parameter()] + [AllowEmptyCollection()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [System.String[]] + # List of Azure subscription Ids that are authorized to create a partner namespaceassociated with this partner registration. + # This is an optional property. + # Creatingpartner namespaces is always permitted under the same Azure subscription as the one usedfor creating the partner registration. + ${AuthorizedAzureSubscriptionId}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [System.String] + # The extension of the customer service URI of the publisher. + ${CustomerServiceUri}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [System.String] + # URI of the logo. + ${LogoUri}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [System.String] + # Long description for the custom scenarios and integration to be displayed in the portal if needed.Length of this description should not exceed 2048 characters. + ${LongDescription}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [System.String] + # The extension of the customer service number of the publisher. + # Only digits are allowed and number of digits should not exceed 10. + ${PartnerCustomerServiceExtension}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [System.String] + # The customer service number of the publisher. + # The expected phone format should start with a '+' sign followed by the country code. + # The remaining digits are then followed. + # Only digits and spaces are allowed and itslength cannot exceed 16 digits including country code. + # Examples of valid phone numbers are: +1 515 123 4567 and+966 7 5115 2471. + # Examples of invalid phone numbers are: +1 (515) 123-4567, 1 515 123 4567 and +966 121 5115 24 7 551 1234 43 + ${PartnerCustomerServiceNumber}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [System.String] + # Official name of the partner name. + # For example: "Contoso". + ${PartnerName}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [System.String] + # The immutableId of the corresponding partner registration. + ${PartnerRegistrationImmutableId}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [System.String] + # Short description of the partner resource type. + # The length of this description should not exceed 256 characters. + ${PartnerResourceTypeDescription}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [System.String] + # Display name of the partner resource type. + ${PartnerResourceTypeDisplayName}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [System.String] + # Name of the partner resource type. + ${PartnerResourceTypeName}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [System.String] + # URI of the partner website that can be used by Azure customers to setup Event Gridintegration on an event source. + ${SetupUri}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info(PossibleTypes=([Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITrackedResourceTags]))] + [System.Collections.Hashtable] + # Tags of the resource. + ${Tag}, + + [Parameter()] + [ArgumentCompleter([Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.PartnerRegistrationVisibilityState])] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.PartnerRegistrationVisibilityState] + # Visibility state of the partner registration. + ${VisibilityState}, + + [Parameter()] + [Alias('AzureRMContext', 'AzureCredential')] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Run the command as a job + ${AsJob}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Run the command asynchronously + ${NoWait}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Returns true when the command succeeds + ${PassThru}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + if ($null -eq [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion) { + [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion = $Host.Runspace.Version.ToString() + } + $preTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + if ($preTelemetryId -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId =(New-Guid).ToString() + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.module]::Instance.Telemetry.Invoke('Create', $MyInvocation, $parameterSet, $PSCmdlet) + } else { + $internalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + if ($internalCalledCmdlets -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $MyInvocation.MyCommand.Name + } else { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets += ',' + $MyInvocation.MyCommand.Name + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = 'internal' + } + + $mapping = @{ + CreateExpanded = 'Az.EventGrid.private\New-AzEventGridPartnerRegistration_CreateExpanded'; + } + if (('CreateExpanded') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { + $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } + + finally { + $backupTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + $backupInternalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + +} +end { + try { + $steppablePipeline.End() + + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $backupTelemetryId + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $backupInternalCalledCmdlets + if ($preTelemetryId -eq '') { + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.module]::Instance.Telemetry.Invoke('Send', $MyInvocation, $parameterSet, $PSCmdlet) + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $preTelemetryId + + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} +} + +<# +.Synopsis +Asynchronously creates or updates an event subscription of a partner topic with the specified parameters. +Existing event subscriptions will be updated with this API. +.Description +Asynchronously creates or updates an event subscription of a partner topic with the specified parameters. +Existing event subscriptions will be updated with this API. +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Outputs +Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscription +.Notes +COMPLEX PARAMETER PROPERTIES + +To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. + +FILTERADVANCEDFILTER : An array of advanced filters that are used for filtering event subscriptions. + OperatorType : The operator type used for filtering, e.g., NumberIn, StringContains, BoolEquals and others. + [Key ]: The field/property in the event based on which you want to filter. +.Link +https://docs.microsoft.com/en-us/powershell/module/az.eventgrid/new-azeventgridpartnertopiceventsubscription +#> +function New-AzEventGridPartnerTopicEventSubscription { +[OutputType([Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscription])] +[CmdletBinding(DefaultParameterSetName='CreateExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [System.String] + # Name of the event subscription to be created. + # Event subscription names must be between 3 and 100 characters in length and use alphanumeric letters only. + ${EventSubscriptionName}, + + [Parameter(Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [System.String] + # Name of the partner topic. + ${PartnerTopicName}, + + [Parameter(Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [System.String] + # The name of the resource group within the user's subscription. + ${ResourceGroupName}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] + [System.String] + # Subscription credentials that uniquely identify a Microsoft Azure subscription. + # The subscription ID forms part of the URI for every service call. + ${SubscriptionId}, + + [Parameter()] + [ArgumentCompleter([Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EventSubscriptionIdentityType])] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EventSubscriptionIdentityType] + # The type of managed identity used. + # The type 'SystemAssigned, UserAssigned' includes both an implicitly created identity and a set of user-assigned identities. + # The type 'None' will remove any identity. + ${DeadLetterWithResourceIdentityType}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [System.String] + # The user identity associated with the resource. + ${DeadLetterWithResourceIdentityUserAssignedIdentity}, + + [Parameter()] + [ArgumentCompleter([Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EndpointType])] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EndpointType] + # Type of the endpoint for the event subscription destination. + ${DeliveryWithResourceIdentityDestinationEndpointType}, + + [Parameter()] + [ArgumentCompleter([Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EventSubscriptionIdentityType])] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EventSubscriptionIdentityType] + # The type of managed identity used. + # The type 'SystemAssigned, UserAssigned' includes both an implicitly created identity and a set of user-assigned identities. + # The type 'None' will remove any identity. + ${DeliveryWithResourceIdentityType}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [System.String] + # The user identity associated with the resource. + ${DeliveryWithResourceIdentityUserAssignedIdentity}, + + [Parameter()] + [ArgumentCompleter([Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EndpointType])] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EndpointType] + # Type of the endpoint for the event subscription destination. + ${EndpointType}, + + [Parameter()] + [ArgumentCompleter([Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EventDeliverySchema])] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EventDeliverySchema] + # The event delivery schema for the event subscription. + ${EventDeliverySchema}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [System.DateTime] + # Expiration time of the event subscription. + ${ExpirationTimeUtc}, + + [Parameter()] + [AllowEmptyCollection()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IAdvancedFilter[]] + # An array of advanced filters that are used for filtering event subscriptions. + # To construct, see NOTES section for FILTERADVANCEDFILTER properties and create a hash table. + ${FilterAdvancedFilter}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [System.Management.Automation.SwitchParameter] + # Allows advanced filters to be evaluated against an array of values instead of expecting a singular value. + ${FilterEnableAdvancedFilteringOnArray}, + + [Parameter()] + [AllowEmptyCollection()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [System.String[]] + # A list of applicable event types that need to be part of the event subscription. + # If it is desired to subscribe to all default event types, set the IncludedEventTypes to null. + ${FilterIncludedEventType}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [System.Management.Automation.SwitchParameter] + # Specifies if the SubjectBeginsWith and SubjectEndsWith properties of the filtershould be compared in a case sensitive manner. + ${FilterIsSubjectCaseSensitive}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [System.String] + # An optional string to filter events for an event subscription based on a resource path prefix.The format of this depends on the publisher of the events.Wildcard characters are not supported in this path. + ${FilterSubjectBeginsWith}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [System.String] + # An optional string to filter events for an event subscription based on a resource path suffix.Wildcard characters are not supported in this path. + ${FilterSubjectEndsWith}, + + [Parameter()] + [AllowEmptyCollection()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [System.String[]] + # List of user defined labels. + ${Label}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [System.Int32] + # Time To Live (in minutes) for events. + ${RetryPolicyEventTimeToLiveInMinute}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [System.Int32] + # Maximum number of delivery retry attempts for events. + ${RetryPolicyMaxDeliveryAttempt}, + + [Parameter()] + [Alias('AzureRMContext', 'AzureCredential')] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Run the command as a job + ${AsJob}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Run the command asynchronously + ${NoWait}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Returns true when the command succeeds + ${PassThru}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + if ($null -eq [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion) { + [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion = $Host.Runspace.Version.ToString() + } + $preTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + if ($preTelemetryId -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId =(New-Guid).ToString() + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.module]::Instance.Telemetry.Invoke('Create', $MyInvocation, $parameterSet, $PSCmdlet) + } else { + $internalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + if ($internalCalledCmdlets -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $MyInvocation.MyCommand.Name + } else { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets += ',' + $MyInvocation.MyCommand.Name + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = 'internal' + } + + $mapping = @{ + CreateExpanded = 'Az.EventGrid.private\New-AzEventGridPartnerTopicEventSubscription_CreateExpanded'; + } + if (('CreateExpanded') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { + $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } + + finally { + $backupTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + $backupInternalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + +} +end { + try { + $steppablePipeline.End() + + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $backupTelemetryId + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $backupInternalCalledCmdlets + if ($preTelemetryId -eq '') { + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.module]::Instance.Telemetry.Invoke('Send', $MyInvocation, $parameterSet, $PSCmdlet) + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $preTelemetryId + + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} +} + +<# +.Synopsis +Asynchronously creates a new partner topic with the specified parameters. +.Description +Asynchronously creates a new partner topic with the specified parameters. +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Outputs +Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerTopic +.Link +https://docs.microsoft.com/en-us/powershell/module/az.eventgrid/new-azeventgridpartnertopic +#> +function New-AzEventGridPartnerTopic { +[OutputType([Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerTopic])] +[CmdletBinding(DefaultParameterSetName='CreateExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(Mandatory)] + [Alias('PartnerTopicName')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [System.String] + # Name of the partner topic. + ${Name}, + + [Parameter(Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [System.String] + # The name of the resource group within the user's subscription. + ${ResourceGroupName}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] + [System.String] + # Subscription credentials that uniquely identify a Microsoft Azure subscription. + # The subscription ID forms part of the URI for every service call. + ${SubscriptionId}, + + [Parameter(Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [System.String] + # Location of the resource. + ${Location}, + + [Parameter()] + [ArgumentCompleter([Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.PartnerTopicActivationState])] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.PartnerTopicActivationState] + # Activation state of the partner topic. + ${ActivationState}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info(PossibleTypes=([Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventTypeInfoInlineEventTypes]))] + [System.Collections.Hashtable] + # A collection of inline event types for the resource. + # The inline event type keys are of type string which represents the name of the event.An example of a valid inline event name is "Contoso.OrderCreated".The inline event type values are of type InlineEventProperties and will contain additional information for every inline event type. + ${EventTypeInfoInlineEventType}, + + [Parameter()] + [ArgumentCompleter([Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EventDefinitionKind])] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EventDefinitionKind] + # The kind of event type used. + ${EventTypeInfoKind}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [System.DateTime] + # Expiration time of the partner topic. + # If this timer expires while the partner topic is still never activated,the partner topic and corresponding event channel are deleted. + ${ExpirationTimeIfNotActivatedUtc}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [System.String] + # The principal ID of resource identity. + ${IdentityPrincipalId}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [System.String] + # The tenant ID of resource. + ${IdentityTenantId}, + + [Parameter()] + [ArgumentCompleter([Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.IdentityType])] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.IdentityType] + # The type of managed identity used. + # The type 'SystemAssigned, UserAssigned' includes both an implicitly created identity and a set of user-assigned identities. + # The type 'None' will remove any identity. + ${IdentityType}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info(PossibleTypes=([Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IIdentityInfoUserAssignedIdentities]))] + [System.Collections.Hashtable] + # The list of user identities associated with the resource. + # The user identity dictionary key references will be ARM resource ids in the form:'/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ManagedIdentity/userAssignedIdentities/{identityName}'.This property is currently not used and reserved for future usage. + ${IdentityUserAssignedIdentity}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [System.String] + # Context or helpful message that can be used during the approval process by the subscriber. + ${MessageForActivation}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [System.String] + # The immutableId of the corresponding partner registration. + ${PartnerRegistrationImmutableId}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [System.String] + # Friendly description about the topic. + # This can be set by the publisher/partner to show custom description for the customer partner topic.This will be helpful to remove any ambiguity of the origin of creation of the partner topic for the customer. + ${PartnerTopicFriendlyDescription}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [System.String] + # Source associated with this partner topic. + # This represents a unique partner resource. + ${Source}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info(PossibleTypes=([Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITrackedResourceTags]))] + [System.Collections.Hashtable] + # Tags of the resource. + ${Tag}, + + [Parameter()] + [Alias('AzureRMContext', 'AzureCredential')] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Returns true when the command succeeds + ${PassThru}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + if ($null -eq [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion) { + [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion = $Host.Runspace.Version.ToString() + } + $preTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + if ($preTelemetryId -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId =(New-Guid).ToString() + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.module]::Instance.Telemetry.Invoke('Create', $MyInvocation, $parameterSet, $PSCmdlet) + } else { + $internalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + if ($internalCalledCmdlets -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $MyInvocation.MyCommand.Name + } else { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets += ',' + $MyInvocation.MyCommand.Name + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = 'internal' + } + + $mapping = @{ + CreateExpanded = 'Az.EventGrid.private\New-AzEventGridPartnerTopic_CreateExpanded'; + } + if (('CreateExpanded') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { + $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } + + finally { + $backupTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + $backupInternalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + +} +end { + try { + $steppablePipeline.End() + + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $backupTelemetryId + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $backupInternalCalledCmdlets + if ($preTelemetryId -eq '') { + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.module]::Instance.Telemetry.Invoke('Send', $MyInvocation, $parameterSet, $PSCmdlet) + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $preTelemetryId + + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} +} + +<# +.Synopsis +Asynchronously creates or updates an event subscription with the specified parameters. +Existing event subscriptions will be updated with this API. +.Description +Asynchronously creates or updates an event subscription with the specified parameters. +Existing event subscriptions will be updated with this API. +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.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. + +FILTERADVANCEDFILTER : An array of advanced filters that are used for filtering event subscriptions. + OperatorType : The operator type used for filtering, e.g., NumberIn, StringContains, BoolEquals and others. + [Key ]: The field/property in the event based on which you want to filter. +.Link +https://docs.microsoft.com/en-us/powershell/module/az.eventgrid/new-azeventgridsystemtopiceventsubscription +#> +function New-AzEventGridSystemTopicEventSubscription { +[OutputType([System.Boolean])] +[CmdletBinding(DefaultParameterSetName='CreateExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [System.String] + # Name of the event subscription to be created. + # Event subscription names must be between 3 and 100 characters in length and use alphanumeric letters only. + ${EventSubscriptionName}, + + [Parameter(Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [System.String] + # The name of the resource group within the user's subscription. + ${ResourceGroupName}, + + [Parameter(Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [System.String] + # Name of the system topic. + ${SystemTopicName}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] + [System.String] + # Subscription credentials that uniquely identify a Microsoft Azure subscription. + # The subscription ID forms part of the URI for every service call. + ${SubscriptionId}, + + [Parameter()] + [ArgumentCompleter([Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EventSubscriptionIdentityType])] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EventSubscriptionIdentityType] + # The type of managed identity used. + # The type 'SystemAssigned, UserAssigned' includes both an implicitly created identity and a set of user-assigned identities. + # The type 'None' will remove any identity. + ${DeadLetterWithResourceIdentityType}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [System.String] + # The user identity associated with the resource. + ${DeadLetterWithResourceIdentityUserAssignedIdentity}, + + [Parameter()] + [ArgumentCompleter([Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EndpointType])] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EndpointType] + # Type of the endpoint for the event subscription destination. + ${DeliveryWithResourceIdentityDestinationEndpointType}, + + [Parameter()] + [ArgumentCompleter([Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EventSubscriptionIdentityType])] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EventSubscriptionIdentityType] + # The type of managed identity used. + # The type 'SystemAssigned, UserAssigned' includes both an implicitly created identity and a set of user-assigned identities. + # The type 'None' will remove any identity. + ${DeliveryWithResourceIdentityType}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [System.String] + # The user identity associated with the resource. + ${DeliveryWithResourceIdentityUserAssignedIdentity}, + + [Parameter()] + [ArgumentCompleter([Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EndpointType])] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EndpointType] + # Type of the endpoint for the event subscription destination. + ${EndpointType}, + + [Parameter()] + [ArgumentCompleter([Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EventDeliverySchema])] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EventDeliverySchema] + # The event delivery schema for the event subscription. + ${EventDeliverySchema}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [System.DateTime] + # Expiration time of the event subscription. + ${ExpirationTimeUtc}, + + [Parameter()] + [AllowEmptyCollection()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IAdvancedFilter[]] + # An array of advanced filters that are used for filtering event subscriptions. + # To construct, see NOTES section for FILTERADVANCEDFILTER properties and create a hash table. + ${FilterAdvancedFilter}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [System.Management.Automation.SwitchParameter] + # Allows advanced filters to be evaluated against an array of values instead of expecting a singular value. + ${FilterEnableAdvancedFilteringOnArray}, + + [Parameter()] + [AllowEmptyCollection()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [System.String[]] + # A list of applicable event types that need to be part of the event subscription. + # If it is desired to subscribe to all default event types, set the IncludedEventTypes to null. + ${FilterIncludedEventType}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [System.Management.Automation.SwitchParameter] + # Specifies if the SubjectBeginsWith and SubjectEndsWith properties of the filtershould be compared in a case sensitive manner. + ${FilterIsSubjectCaseSensitive}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [System.String] + # An optional string to filter events for an event subscription based on a resource path prefix.The format of this depends on the publisher of the events.Wildcard characters are not supported in this path. + ${FilterSubjectBeginsWith}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [System.String] + # An optional string to filter events for an event subscription based on a resource path suffix.Wildcard characters are not supported in this path. + ${FilterSubjectEndsWith}, + + [Parameter()] + [AllowEmptyCollection()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [System.String[]] + # List of user defined labels. + ${Label}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [System.Int32] + # Time To Live (in minutes) for events. + ${RetryPolicyEventTimeToLiveInMinute}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [System.Int32] + # Maximum number of delivery retry attempts for events. + ${RetryPolicyMaxDeliveryAttempt}, + + [Parameter()] + [Alias('AzureRMContext', 'AzureCredential')] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Run the command as a job + ${AsJob}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Run the command asynchronously + ${NoWait}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Returns true when the command succeeds + ${PassThru}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + if ($null -eq [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion) { + [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion = $Host.Runspace.Version.ToString() + } + $preTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + if ($preTelemetryId -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId =(New-Guid).ToString() + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.module]::Instance.Telemetry.Invoke('Create', $MyInvocation, $parameterSet, $PSCmdlet) + } else { + $internalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + if ($internalCalledCmdlets -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $MyInvocation.MyCommand.Name + } else { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets += ',' + $MyInvocation.MyCommand.Name + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = 'internal' + } + + $mapping = @{ + CreateExpanded = 'Az.EventGrid.private\New-AzEventGridSystemTopicEventSubscription_CreateExpanded'; + } + if (('CreateExpanded') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { + $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } + + finally { + $backupTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + $backupInternalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + +} +end { + try { + $steppablePipeline.End() + + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $backupTelemetryId + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $backupInternalCalledCmdlets + if ($preTelemetryId -eq '') { + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.module]::Instance.Telemetry.Invoke('Send', $MyInvocation, $parameterSet, $PSCmdlet) + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $preTelemetryId + + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} +} + +<# +.Synopsis +Asynchronously creates a new system topic with the specified parameters. +.Description +Asynchronously creates a new system topic with the specified parameters. +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Outputs +Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ISystemTopic +.Link +https://docs.microsoft.com/en-us/powershell/module/az.eventgrid/new-azeventgridsystemtopic +#> +function New-AzEventGridSystemTopic { +[OutputType([Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ISystemTopic])] +[CmdletBinding(DefaultParameterSetName='CreateExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(Mandatory)] + [Alias('SystemTopicName')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [System.String] + # Name of the system topic. + ${Name}, + + [Parameter(Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [System.String] + # The name of the resource group within the user's subscription. + ${ResourceGroupName}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] + [System.String] + # Subscription credentials that uniquely identify a Microsoft Azure subscription. + # The subscription ID forms part of the URI for every service call. + ${SubscriptionId}, + + [Parameter(Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [System.String] + # Location of the resource. + ${Location}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [System.String] + # The principal ID of resource identity. + ${IdentityPrincipalId}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [System.String] + # The tenant ID of resource. + ${IdentityTenantId}, + + [Parameter()] + [ArgumentCompleter([Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.IdentityType])] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.IdentityType] + # The type of managed identity used. + # The type 'SystemAssigned, UserAssigned' includes both an implicitly created identity and a set of user-assigned identities. + # The type 'None' will remove any identity. + ${IdentityType}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info(PossibleTypes=([Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IIdentityInfoUserAssignedIdentities]))] + [System.Collections.Hashtable] + # The list of user identities associated with the resource. + # The user identity dictionary key references will be ARM resource ids in the form:'/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ManagedIdentity/userAssignedIdentities/{identityName}'.This property is currently not used and reserved for future usage. + ${IdentityUserAssignedIdentity}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [System.String] + # Source for the system topic. + ${Source}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info(PossibleTypes=([Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITrackedResourceTags]))] + [System.Collections.Hashtable] + # Tags of the resource. + ${Tag}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [System.String] + # TopicType for the system topic. + ${TopicType}, + + [Parameter()] + [Alias('AzureRMContext', 'AzureCredential')] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Run the command as a job + ${AsJob}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Run the command asynchronously + ${NoWait}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Returns true when the command succeeds + ${PassThru}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + if ($null -eq [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion) { + [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion = $Host.Runspace.Version.ToString() + } + $preTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + if ($preTelemetryId -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId =(New-Guid).ToString() + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.module]::Instance.Telemetry.Invoke('Create', $MyInvocation, $parameterSet, $PSCmdlet) + } else { + $internalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + if ($internalCalledCmdlets -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $MyInvocation.MyCommand.Name + } else { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets += ',' + $MyInvocation.MyCommand.Name + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = 'internal' + } + + $mapping = @{ + CreateExpanded = 'Az.EventGrid.private\New-AzEventGridSystemTopic_CreateExpanded'; + } + if (('CreateExpanded') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { + $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } + + finally { + $backupTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + $backupInternalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + +} +end { + try { + $steppablePipeline.End() + + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $backupTelemetryId + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $backupInternalCalledCmdlets + if ($preTelemetryId -eq '') { + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.module]::Instance.Telemetry.Invoke('Send', $MyInvocation, $parameterSet, $PSCmdlet) + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $preTelemetryId + + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} +} + +<# +.Synopsis +Asynchronously creates a new event subscription or updates an existing event subscription. +.Description +Asynchronously creates a new event subscription or updates an existing event subscription. +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Outputs +Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscription +.Notes +COMPLEX PARAMETER PROPERTIES + +To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. + +FILTERADVANCEDFILTER : An array of advanced filters that are used for filtering event subscriptions. + OperatorType : The operator type used for filtering, e.g., NumberIn, StringContains, BoolEquals and others. + [Key ]: The field/property in the event based on which you want to filter. +.Link +https://docs.microsoft.com/en-us/powershell/module/az.eventgrid/new-azeventgridtopiceventsubscription +#> +function New-AzEventGridTopicEventSubscription { +[OutputType([Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscription])] +[CmdletBinding(DefaultParameterSetName='CreateExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [System.String] + # Name of the event subscription to be created. + # Event subscription names must be between 3 and 100 characters in length and use alphanumeric letters only. + ${EventSubscriptionName}, + + [Parameter(Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [System.String] + # The name of the resource group within the user's subscription. + ${ResourceGroupName}, + + [Parameter(Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [System.String] + # Name of the domain topic. + ${TopicName}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] + [System.String] + # Subscription credentials that uniquely identify a Microsoft Azure subscription. + # The subscription ID forms part of the URI for every service call. + ${SubscriptionId}, + + [Parameter()] + [ArgumentCompleter([Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EventSubscriptionIdentityType])] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EventSubscriptionIdentityType] + # The type of managed identity used. + # The type 'SystemAssigned, UserAssigned' includes both an implicitly created identity and a set of user-assigned identities. + # The type 'None' will remove any identity. + ${DeadLetterWithResourceIdentityType}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [System.String] + # The user identity associated with the resource. + ${DeadLetterWithResourceIdentityUserAssignedIdentity}, + + [Parameter()] + [ArgumentCompleter([Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EndpointType])] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EndpointType] + # Type of the endpoint for the event subscription destination. + ${DeliveryWithResourceIdentityDestinationEndpointType}, + + [Parameter()] + [ArgumentCompleter([Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EventSubscriptionIdentityType])] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EventSubscriptionIdentityType] + # The type of managed identity used. + # The type 'SystemAssigned, UserAssigned' includes both an implicitly created identity and a set of user-assigned identities. + # The type 'None' will remove any identity. + ${DeliveryWithResourceIdentityType}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [System.String] + # The user identity associated with the resource. + ${DeliveryWithResourceIdentityUserAssignedIdentity}, + + [Parameter()] + [ArgumentCompleter([Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EndpointType])] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EndpointType] + # Type of the endpoint for the event subscription destination. + ${EndpointType}, + + [Parameter()] + [ArgumentCompleter([Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EventDeliverySchema])] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EventDeliverySchema] + # The event delivery schema for the event subscription. + ${EventDeliverySchema}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [System.DateTime] + # Expiration time of the event subscription. + ${ExpirationTimeUtc}, + + [Parameter()] + [AllowEmptyCollection()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IAdvancedFilter[]] + # An array of advanced filters that are used for filtering event subscriptions. + # To construct, see NOTES section for FILTERADVANCEDFILTER properties and create a hash table. + ${FilterAdvancedFilter}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [System.Management.Automation.SwitchParameter] + # Allows advanced filters to be evaluated against an array of values instead of expecting a singular value. + ${FilterEnableAdvancedFilteringOnArray}, + + [Parameter()] + [AllowEmptyCollection()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [System.String[]] + # A list of applicable event types that need to be part of the event subscription. + # If it is desired to subscribe to all default event types, set the IncludedEventTypes to null. + ${FilterIncludedEventType}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [System.Management.Automation.SwitchParameter] + # Specifies if the SubjectBeginsWith and SubjectEndsWith properties of the filtershould be compared in a case sensitive manner. + ${FilterIsSubjectCaseSensitive}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [System.String] + # An optional string to filter events for an event subscription based on a resource path prefix.The format of this depends on the publisher of the events.Wildcard characters are not supported in this path. + ${FilterSubjectBeginsWith}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [System.String] + # An optional string to filter events for an event subscription based on a resource path suffix.Wildcard characters are not supported in this path. + ${FilterSubjectEndsWith}, + + [Parameter()] + [AllowEmptyCollection()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [System.String[]] + # List of user defined labels. + ${Label}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [System.Int32] + # Time To Live (in minutes) for events. + ${RetryPolicyEventTimeToLiveInMinute}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [System.Int32] + # Maximum number of delivery retry attempts for events. + ${RetryPolicyMaxDeliveryAttempt}, + + [Parameter()] + [Alias('AzureRMContext', 'AzureCredential')] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Run the command as a job + ${AsJob}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Run the command asynchronously + ${NoWait}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Returns true when the command succeeds + ${PassThru}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + if ($null -eq [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion) { + [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion = $Host.Runspace.Version.ToString() + } + $preTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + if ($preTelemetryId -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId =(New-Guid).ToString() + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.module]::Instance.Telemetry.Invoke('Create', $MyInvocation, $parameterSet, $PSCmdlet) + } else { + $internalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + if ($internalCalledCmdlets -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $MyInvocation.MyCommand.Name + } else { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets += ',' + $MyInvocation.MyCommand.Name + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = 'internal' + } + + $mapping = @{ + CreateExpanded = 'Az.EventGrid.private\New-AzEventGridTopicEventSubscription_CreateExpanded'; + } + if (('CreateExpanded') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { + $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } + + finally { + $backupTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + $backupInternalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + +} +end { + try { + $steppablePipeline.End() + + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $backupTelemetryId + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $backupInternalCalledCmdlets + if ($preTelemetryId -eq '') { + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.module]::Instance.Telemetry.Invoke('Send', $MyInvocation, $parameterSet, $PSCmdlet) + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $preTelemetryId + + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} +} + +<# +.Synopsis +Regenerate a shared access key for a topic. +.Description +Regenerate a shared access key for a topic. +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Inputs +Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITopicRegenerateKeyRequest +.Inputs +Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.IEventGridIdentity +.Outputs +Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITopicSharedAccessKeys +.Notes +COMPLEX PARAMETER PROPERTIES + +To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. + +INPUTOBJECT : Identity Parameter + [ChannelName ]: Name of the channel. + [DomainName ]: Name of the domain. + [DomainTopicName ]: Name of the topic. + [EventChannelName ]: Name of the event channel. + [EventSubscriptionName ]: Name of the event subscription. + [Id ]: Resource identity path + [Location ]: Name of the location. + [ParentName ]: The name of the parent resource (namely, either, the topic name, domain name, or partner namespace name). + [ParentType ]: The type of the parent resource. This can be either \'topics\', \'domains\', or \'partnerNamespaces\'. + [PartnerDestinationName ]: Name of the partner destination. + [PartnerNamespaceName ]: Name of the partner namespace. + [PartnerRegistrationName ]: Name of the partner registration. + [PartnerTopicName ]: Name of the partner topic. + [PrivateEndpointConnectionName ]: The name of the private endpoint connection connection. + [PrivateLinkResourceName ]: The name of private link resource. + [ProviderNamespace ]: Namespace of the provider of the topic. + [ResourceGroupName ]: The name of the resource group within the partners subscription. + [ResourceName ]: Name of the resource. + [ResourceTypeName ]: Name of the resource type. + [Scope ]: The scope of the event subscription. The scope can be a subscription, or a resource group, or a top level resource belonging to a resource provider namespace, or an EventGrid topic. For example, use '/subscriptions/{subscriptionId}/' for a subscription, '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}' for a resource group, and '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}' for a resource, and '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.EventGrid/topics/{topicName}' for an EventGrid topic. + [SubscriptionId ]: Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription ID forms part of the URI for every service call. + [SystemTopicName ]: Name of the system topic. + [TopicName ]: Name of the domain topic. + [TopicTypeName ]: Name of the topic type. + [VerifiedPartnerName ]: Name of the verified partner. + +REGENERATEKEYREQUEST : Topic regenerate share access key request + KeyName : Key name to regenerate key1 or key2 +.Link +https://docs.microsoft.com/en-us/powershell/module/az.eventgrid/new-azeventgridtopickey +#> +function New-AzEventGridTopicKey { +[OutputType([Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITopicSharedAccessKeys])] +[CmdletBinding(DefaultParameterSetName='RegenerateExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(ParameterSetName='Regenerate', Mandatory)] + [Parameter(ParameterSetName='RegenerateExpanded', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [System.String] + # The name of the resource group within the user's subscription. + ${ResourceGroupName}, + + [Parameter(ParameterSetName='Regenerate')] + [Parameter(ParameterSetName='RegenerateExpanded')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] + [System.String] + # Subscription credentials that uniquely identify a Microsoft Azure subscription. + # The subscription ID forms part of the URI for every service call. + ${SubscriptionId}, + + [Parameter(ParameterSetName='Regenerate', Mandatory)] + [Parameter(ParameterSetName='RegenerateExpanded', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [System.String] + # Name of the topic. + ${TopicName}, + + [Parameter(ParameterSetName='RegenerateViaIdentity', Mandatory, ValueFromPipeline)] + [Parameter(ParameterSetName='RegenerateViaIdentityExpanded', Mandatory, ValueFromPipeline)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.IEventGridIdentity] + # Identity Parameter + # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + ${InputObject}, + + [Parameter(ParameterSetName='Regenerate', Mandatory, ValueFromPipeline)] + [Parameter(ParameterSetName='RegenerateViaIdentity', Mandatory, ValueFromPipeline)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITopicRegenerateKeyRequest] + # Topic regenerate share access key request + # To construct, see NOTES section for REGENERATEKEYREQUEST properties and create a hash table. + ${RegenerateKeyRequest}, + + [Parameter(ParameterSetName='RegenerateExpanded', Mandatory)] + [Parameter(ParameterSetName='RegenerateViaIdentityExpanded', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [System.String] + # Key name to regenerate key1 or key2 + ${KeyName}, + + [Parameter()] + [Alias('AzureRMContext', 'AzureCredential')] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Run the command as a job + ${AsJob}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Run the command asynchronously + ${NoWait}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Returns true when the command succeeds + ${PassThru}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + if ($null -eq [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion) { + [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion = $Host.Runspace.Version.ToString() + } + $preTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + if ($preTelemetryId -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId =(New-Guid).ToString() + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.module]::Instance.Telemetry.Invoke('Create', $MyInvocation, $parameterSet, $PSCmdlet) + } else { + $internalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + if ($internalCalledCmdlets -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $MyInvocation.MyCommand.Name + } else { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets += ',' + $MyInvocation.MyCommand.Name + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = 'internal' + } + + $mapping = @{ + Regenerate = 'Az.EventGrid.private\New-AzEventGridTopicKey_Regenerate'; + RegenerateExpanded = 'Az.EventGrid.private\New-AzEventGridTopicKey_RegenerateExpanded'; + RegenerateViaIdentity = 'Az.EventGrid.private\New-AzEventGridTopicKey_RegenerateViaIdentity'; + RegenerateViaIdentityExpanded = 'Az.EventGrid.private\New-AzEventGridTopicKey_RegenerateViaIdentityExpanded'; + } + if (('Regenerate', 'RegenerateExpanded') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { + $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } + + finally { + $backupTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + $backupInternalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + +} +end { + try { + $steppablePipeline.End() + + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $backupTelemetryId + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $backupInternalCalledCmdlets + if ($preTelemetryId -eq '') { + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.module]::Instance.Telemetry.Invoke('Send', $MyInvocation, $parameterSet, $PSCmdlet) + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $preTelemetryId + + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} +} + +<# +.Synopsis +Asynchronously creates a new topic with the specified parameters. +.Description +Asynchronously creates a new topic with the specified parameters. +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.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. + +INBOUNDIPRULE : This can be used to restrict traffic from specific IPs instead of all IPs. Note: These are considered only if PublicNetworkAccess is enabled. + [Action ]: Action to perform based on the match or no match of the IpMask. + [IPMask ]: IP Address in CIDR notation e.g., 10.0.0.0/8. +.Link +https://docs.microsoft.com/en-us/powershell/module/az.eventgrid/new-azeventgridtopic +#> +function New-AzEventGridTopic { +[OutputType([System.Boolean])] +[CmdletBinding(DefaultParameterSetName='CreateExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(Mandatory)] + [Alias('TopicName')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [System.String] + # Name of the topic. + ${Name}, + + [Parameter(Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [System.String] + # The name of the resource group within the user's subscription. + ${ResourceGroupName}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] + [System.String] + # Subscription credentials that uniquely identify a Microsoft Azure subscription. + # The subscription ID forms part of the URI for every service call. + ${SubscriptionId}, + + [Parameter(Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [System.String] + # Location of the resource. + ${Location}, + + [Parameter()] + [ArgumentCompleter([Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.DataResidencyBoundary])] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.DataResidencyBoundary] + # Data Residency Boundary of the resource. + ${DataResidencyBoundary}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [System.Management.Automation.SwitchParameter] + # This boolean is used to enable or disable local auth. + # Default value is false. + # When the property is set to true, only AAD token will be used to authenticate if user is allowed to publish to the topic. + ${DisableLocalAuth}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [System.String] + # Fully qualified name of the extended location. + ${ExtendedLocationName}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [System.String] + # Type of the extended location. + ${ExtendedLocationType}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [System.String] + # The principal ID of resource identity. + ${IdentityPrincipalId}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [System.String] + # The tenant ID of resource. + ${IdentityTenantId}, + + [Parameter()] + [ArgumentCompleter([Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.IdentityType])] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.IdentityType] + # The type of managed identity used. + # The type 'SystemAssigned, UserAssigned' includes both an implicitly created identity and a set of user-assigned identities. + # The type 'None' will remove any identity. + ${IdentityType}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info(PossibleTypes=([Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IIdentityInfoUserAssignedIdentities]))] + [System.Collections.Hashtable] + # The list of user identities associated with the resource. + # The user identity dictionary key references will be ARM resource ids in the form:'/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ManagedIdentity/userAssignedIdentities/{identityName}'.This property is currently not used and reserved for future usage. + ${IdentityUserAssignedIdentity}, + + [Parameter()] + [AllowEmptyCollection()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IInboundIPRule[]] + # This can be used to restrict traffic from specific IPs instead of all IPs. + # Note: These are considered only if PublicNetworkAccess is enabled. + # To construct, see NOTES section for INBOUNDIPRULE properties and create a hash table. + ${InboundIPRule}, + + [Parameter()] + [ArgumentCompleter([Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.InputSchema])] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.InputSchema] + # This determines the format that Event Grid should expect for incoming events published to the topic. + ${InputSchema}, + + [Parameter()] + [ArgumentCompleter([Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.ResourceKind])] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.ResourceKind] + # Kind of the resource. + ${Kind}, + + [Parameter()] + [ArgumentCompleter([Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.PublicNetworkAccess])] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.PublicNetworkAccess] + # This determines if traffic is allowed over public network. + # By default it is enabled. + # You can further restrict to specific IPs by configuring + ${PublicNetworkAccess}, + + [Parameter()] + [ArgumentCompleter([Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.Sku])] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.Sku] + # The Sku name of the resource. + # The possible values are: Basic or Premium. + ${SkuName}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info(PossibleTypes=([Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITrackedResourceTags]))] + [System.Collections.Hashtable] + # Tags of the resource. + ${Tag}, + + [Parameter()] + [Alias('AzureRMContext', 'AzureCredential')] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Run the command as a job + ${AsJob}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Run the command asynchronously + ${NoWait}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Returns true when the command succeeds + ${PassThru}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + if ($null -eq [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion) { + [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion = $Host.Runspace.Version.ToString() + } + $preTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + if ($preTelemetryId -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId =(New-Guid).ToString() + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.module]::Instance.Telemetry.Invoke('Create', $MyInvocation, $parameterSet, $PSCmdlet) + } else { + $internalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + if ($internalCalledCmdlets -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $MyInvocation.MyCommand.Name + } else { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets += ',' + $MyInvocation.MyCommand.Name + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = 'internal' + } + + $mapping = @{ + CreateExpanded = 'Az.EventGrid.private\New-AzEventGridTopic_CreateExpanded'; + } + if (('CreateExpanded') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { + $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } + + finally { + $backupTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + $backupInternalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + +} +end { + try { + $steppablePipeline.End() + + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $backupTelemetryId + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $backupInternalCalledCmdlets + if ($preTelemetryId -eq '') { + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.module]::Instance.Telemetry.Invoke('Send', $MyInvocation, $parameterSet, $PSCmdlet) + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $preTelemetryId + + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} +} + +<# +.Synopsis +Delete an existing channel. +.Description +Delete an existing channel. +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Inputs +Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.IEventGridIdentity +.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 + [ChannelName ]: Name of the channel. + [DomainName ]: Name of the domain. + [DomainTopicName ]: Name of the topic. + [EventChannelName ]: Name of the event channel. + [EventSubscriptionName ]: Name of the event subscription. + [Id ]: Resource identity path + [Location ]: Name of the location. + [ParentName ]: The name of the parent resource (namely, either, the topic name, domain name, or partner namespace name). + [ParentType ]: The type of the parent resource. This can be either \'topics\', \'domains\', or \'partnerNamespaces\'. + [PartnerDestinationName ]: Name of the partner destination. + [PartnerNamespaceName ]: Name of the partner namespace. + [PartnerRegistrationName ]: Name of the partner registration. + [PartnerTopicName ]: Name of the partner topic. + [PrivateEndpointConnectionName ]: The name of the private endpoint connection connection. + [PrivateLinkResourceName ]: The name of private link resource. + [ProviderNamespace ]: Namespace of the provider of the topic. + [ResourceGroupName ]: The name of the resource group within the partners subscription. + [ResourceName ]: Name of the resource. + [ResourceTypeName ]: Name of the resource type. + [Scope ]: The scope of the event subscription. The scope can be a subscription, or a resource group, or a top level resource belonging to a resource provider namespace, or an EventGrid topic. For example, use '/subscriptions/{subscriptionId}/' for a subscription, '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}' for a resource group, and '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}' for a resource, and '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.EventGrid/topics/{topicName}' for an EventGrid topic. + [SubscriptionId ]: Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription ID forms part of the URI for every service call. + [SystemTopicName ]: Name of the system topic. + [TopicName ]: Name of the domain topic. + [TopicTypeName ]: Name of the topic type. + [VerifiedPartnerName ]: Name of the verified partner. +.Link +https://docs.microsoft.com/en-us/powershell/module/az.eventgrid/remove-azeventgridchannel +#> +function Remove-AzEventGridChannel { +[OutputType([System.Boolean])] +[CmdletBinding(DefaultParameterSetName='Delete', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(ParameterSetName='Delete', Mandatory)] + [Alias('ChannelName')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [System.String] + # Name of the channel. + ${Name}, + + [Parameter(ParameterSetName='Delete', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [System.String] + # Name of the partner namespace. + ${PartnerNamespaceName}, + + [Parameter(ParameterSetName='Delete', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [System.String] + # The name of the resource group within the partners subscription. + ${ResourceGroupName}, + + [Parameter(ParameterSetName='Delete')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] + [System.String] + # Subscription credentials that uniquely identify a Microsoft Azure subscription. + # The subscription ID forms part of the URI for every service call. + ${SubscriptionId}, + + [Parameter(ParameterSetName='DeleteViaIdentity', Mandatory, ValueFromPipeline)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.IEventGridIdentity] + # Identity Parameter + # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + ${InputObject}, + + [Parameter()] + [Alias('AzureRMContext', 'AzureCredential')] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Run the command as a job + ${AsJob}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Run the command asynchronously + ${NoWait}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Returns true when the command succeeds + ${PassThru}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + if ($null -eq [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion) { + [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion = $Host.Runspace.Version.ToString() + } + $preTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + if ($preTelemetryId -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId =(New-Guid).ToString() + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.module]::Instance.Telemetry.Invoke('Create', $MyInvocation, $parameterSet, $PSCmdlet) + } else { + $internalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + if ($internalCalledCmdlets -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $MyInvocation.MyCommand.Name + } else { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets += ',' + $MyInvocation.MyCommand.Name + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = 'internal' + } + + $mapping = @{ + Delete = 'Az.EventGrid.private\Remove-AzEventGridChannel_Delete'; + DeleteViaIdentity = 'Az.EventGrid.private\Remove-AzEventGridChannel_DeleteViaIdentity'; + } + if (('Delete') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { + $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } + + finally { + $backupTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + $backupInternalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + +} +end { + try { + $steppablePipeline.End() + + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $backupTelemetryId + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $backupInternalCalledCmdlets + if ($preTelemetryId -eq '') { + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.module]::Instance.Telemetry.Invoke('Send', $MyInvocation, $parameterSet, $PSCmdlet) + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $preTelemetryId + + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} +} + +<# +.Synopsis +Delete an existing event subscription for a domain. +.Description +Delete an existing event subscription for a domain. +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Inputs +Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.IEventGridIdentity +.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 + [ChannelName ]: Name of the channel. + [DomainName ]: Name of the domain. + [DomainTopicName ]: Name of the topic. + [EventChannelName ]: Name of the event channel. + [EventSubscriptionName ]: Name of the event subscription. + [Id ]: Resource identity path + [Location ]: Name of the location. + [ParentName ]: The name of the parent resource (namely, either, the topic name, domain name, or partner namespace name). + [ParentType ]: The type of the parent resource. This can be either \'topics\', \'domains\', or \'partnerNamespaces\'. + [PartnerDestinationName ]: Name of the partner destination. + [PartnerNamespaceName ]: Name of the partner namespace. + [PartnerRegistrationName ]: Name of the partner registration. + [PartnerTopicName ]: Name of the partner topic. + [PrivateEndpointConnectionName ]: The name of the private endpoint connection connection. + [PrivateLinkResourceName ]: The name of private link resource. + [ProviderNamespace ]: Namespace of the provider of the topic. + [ResourceGroupName ]: The name of the resource group within the partners subscription. + [ResourceName ]: Name of the resource. + [ResourceTypeName ]: Name of the resource type. + [Scope ]: The scope of the event subscription. The scope can be a subscription, or a resource group, or a top level resource belonging to a resource provider namespace, or an EventGrid topic. For example, use '/subscriptions/{subscriptionId}/' for a subscription, '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}' for a resource group, and '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}' for a resource, and '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.EventGrid/topics/{topicName}' for an EventGrid topic. + [SubscriptionId ]: Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription ID forms part of the URI for every service call. + [SystemTopicName ]: Name of the system topic. + [TopicName ]: Name of the domain topic. + [TopicTypeName ]: Name of the topic type. + [VerifiedPartnerName ]: Name of the verified partner. +.Link +https://docs.microsoft.com/en-us/powershell/module/az.eventgrid/remove-azeventgriddomaineventsubscription +#> +function Remove-AzEventGridDomainEventSubscription { +[OutputType([System.Boolean])] +[CmdletBinding(DefaultParameterSetName='Delete', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(ParameterSetName='Delete', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [System.String] + # Name of the domain. + ${DomainName}, + + [Parameter(ParameterSetName='Delete', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [System.String] + # Name of the event subscription to be deleted. + # Event subscription names must be between 3 and 100 characters in length and use alphanumeric letters only. + ${EventSubscriptionName}, + + [Parameter(ParameterSetName='Delete', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [System.String] + # The name of the resource group within the user's subscription. + ${ResourceGroupName}, + + [Parameter(ParameterSetName='Delete')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] + [System.String] + # Subscription credentials that uniquely identify a Microsoft Azure subscription. + # The subscription ID forms part of the URI for every service call. + ${SubscriptionId}, + + [Parameter(ParameterSetName='DeleteViaIdentity', Mandatory, ValueFromPipeline)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.IEventGridIdentity] + # Identity Parameter + # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + ${InputObject}, + + [Parameter()] + [Alias('AzureRMContext', 'AzureCredential')] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Run the command as a job + ${AsJob}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Run the command asynchronously + ${NoWait}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Returns true when the command succeeds + ${PassThru}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + if ($null -eq [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion) { + [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion = $Host.Runspace.Version.ToString() + } + $preTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + if ($preTelemetryId -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId =(New-Guid).ToString() + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.module]::Instance.Telemetry.Invoke('Create', $MyInvocation, $parameterSet, $PSCmdlet) + } else { + $internalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + if ($internalCalledCmdlets -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $MyInvocation.MyCommand.Name + } else { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets += ',' + $MyInvocation.MyCommand.Name + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = 'internal' + } + + $mapping = @{ + Delete = 'Az.EventGrid.private\Remove-AzEventGridDomainEventSubscription_Delete'; + DeleteViaIdentity = 'Az.EventGrid.private\Remove-AzEventGridDomainEventSubscription_DeleteViaIdentity'; + } + if (('Delete') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { + $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } + + finally { + $backupTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + $backupInternalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + +} +end { + try { + $steppablePipeline.End() + + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $backupTelemetryId + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $backupInternalCalledCmdlets + if ($preTelemetryId -eq '') { + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.module]::Instance.Telemetry.Invoke('Send', $MyInvocation, $parameterSet, $PSCmdlet) + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $preTelemetryId + + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} +} + +<# +.Synopsis +Delete a nested existing event subscription for a domain topic. +.Description +Delete a nested existing event subscription for a domain topic. +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Inputs +Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.IEventGridIdentity +.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 + [ChannelName ]: Name of the channel. + [DomainName ]: Name of the domain. + [DomainTopicName ]: Name of the topic. + [EventChannelName ]: Name of the event channel. + [EventSubscriptionName ]: Name of the event subscription. + [Id ]: Resource identity path + [Location ]: Name of the location. + [ParentName ]: The name of the parent resource (namely, either, the topic name, domain name, or partner namespace name). + [ParentType ]: The type of the parent resource. This can be either \'topics\', \'domains\', or \'partnerNamespaces\'. + [PartnerDestinationName ]: Name of the partner destination. + [PartnerNamespaceName ]: Name of the partner namespace. + [PartnerRegistrationName ]: Name of the partner registration. + [PartnerTopicName ]: Name of the partner topic. + [PrivateEndpointConnectionName ]: The name of the private endpoint connection connection. + [PrivateLinkResourceName ]: The name of private link resource. + [ProviderNamespace ]: Namespace of the provider of the topic. + [ResourceGroupName ]: The name of the resource group within the partners subscription. + [ResourceName ]: Name of the resource. + [ResourceTypeName ]: Name of the resource type. + [Scope ]: The scope of the event subscription. The scope can be a subscription, or a resource group, or a top level resource belonging to a resource provider namespace, or an EventGrid topic. For example, use '/subscriptions/{subscriptionId}/' for a subscription, '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}' for a resource group, and '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}' for a resource, and '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.EventGrid/topics/{topicName}' for an EventGrid topic. + [SubscriptionId ]: Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription ID forms part of the URI for every service call. + [SystemTopicName ]: Name of the system topic. + [TopicName ]: Name of the domain topic. + [TopicTypeName ]: Name of the topic type. + [VerifiedPartnerName ]: Name of the verified partner. +.Link +https://docs.microsoft.com/en-us/powershell/module/az.eventgrid/remove-azeventgriddomaintopiceventsubscription +#> +function Remove-AzEventGridDomainTopicEventSubscription { +[OutputType([System.Boolean])] +[CmdletBinding(DefaultParameterSetName='Delete', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(ParameterSetName='Delete', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [System.String] + # Name of the top level domain. + ${DomainName}, + + [Parameter(ParameterSetName='Delete', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [System.String] + # Name of the event subscription to be deleted. + # Event subscription names must be between 3 and 100 characters in length and use alphanumeric letters only. + ${EventSubscriptionName}, + + [Parameter(ParameterSetName='Delete', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [System.String] + # The name of the resource group within the user's subscription. + ${ResourceGroupName}, + + [Parameter(ParameterSetName='Delete')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] + [System.String] + # Subscription credentials that uniquely identify a Microsoft Azure subscription. + # The subscription ID forms part of the URI for every service call. + ${SubscriptionId}, + + [Parameter(ParameterSetName='Delete', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [System.String] + # Name of the domain topic. + ${TopicName}, + + [Parameter(ParameterSetName='DeleteViaIdentity', Mandatory, ValueFromPipeline)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.IEventGridIdentity] + # Identity Parameter + # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + ${InputObject}, + + [Parameter()] + [Alias('AzureRMContext', 'AzureCredential')] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Run the command as a job + ${AsJob}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Run the command asynchronously + ${NoWait}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Returns true when the command succeeds + ${PassThru}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + if ($null -eq [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion) { + [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion = $Host.Runspace.Version.ToString() + } + $preTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + if ($preTelemetryId -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId =(New-Guid).ToString() + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.module]::Instance.Telemetry.Invoke('Create', $MyInvocation, $parameterSet, $PSCmdlet) + } else { + $internalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + if ($internalCalledCmdlets -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $MyInvocation.MyCommand.Name + } else { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets += ',' + $MyInvocation.MyCommand.Name + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = 'internal' + } + + $mapping = @{ + Delete = 'Az.EventGrid.private\Remove-AzEventGridDomainTopicEventSubscription_Delete'; + DeleteViaIdentity = 'Az.EventGrid.private\Remove-AzEventGridDomainTopicEventSubscription_DeleteViaIdentity'; + } + if (('Delete') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { + $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } + + finally { + $backupTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + $backupInternalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + +} +end { + try { + $steppablePipeline.End() + + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $backupTelemetryId + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $backupInternalCalledCmdlets + if ($preTelemetryId -eq '') { + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.module]::Instance.Telemetry.Invoke('Send', $MyInvocation, $parameterSet, $PSCmdlet) + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $preTelemetryId + + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} +} + +<# +.Synopsis +Delete existing domain topic. +.Description +Delete existing domain topic. +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Inputs +Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.IEventGridIdentity +.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 + [ChannelName ]: Name of the channel. + [DomainName ]: Name of the domain. + [DomainTopicName ]: Name of the topic. + [EventChannelName ]: Name of the event channel. + [EventSubscriptionName ]: Name of the event subscription. + [Id ]: Resource identity path + [Location ]: Name of the location. + [ParentName ]: The name of the parent resource (namely, either, the topic name, domain name, or partner namespace name). + [ParentType ]: The type of the parent resource. This can be either \'topics\', \'domains\', or \'partnerNamespaces\'. + [PartnerDestinationName ]: Name of the partner destination. + [PartnerNamespaceName ]: Name of the partner namespace. + [PartnerRegistrationName ]: Name of the partner registration. + [PartnerTopicName ]: Name of the partner topic. + [PrivateEndpointConnectionName ]: The name of the private endpoint connection connection. + [PrivateLinkResourceName ]: The name of private link resource. + [ProviderNamespace ]: Namespace of the provider of the topic. + [ResourceGroupName ]: The name of the resource group within the partners subscription. + [ResourceName ]: Name of the resource. + [ResourceTypeName ]: Name of the resource type. + [Scope ]: The scope of the event subscription. The scope can be a subscription, or a resource group, or a top level resource belonging to a resource provider namespace, or an EventGrid topic. For example, use '/subscriptions/{subscriptionId}/' for a subscription, '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}' for a resource group, and '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}' for a resource, and '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.EventGrid/topics/{topicName}' for an EventGrid topic. + [SubscriptionId ]: Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription ID forms part of the URI for every service call. + [SystemTopicName ]: Name of the system topic. + [TopicName ]: Name of the domain topic. + [TopicTypeName ]: Name of the topic type. + [VerifiedPartnerName ]: Name of the verified partner. +.Link +https://docs.microsoft.com/en-us/powershell/module/az.eventgrid/remove-azeventgriddomaintopic +#> +function Remove-AzEventGridDomainTopic { +[OutputType([System.Boolean])] +[CmdletBinding(DefaultParameterSetName='Delete', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(ParameterSetName='Delete', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [System.String] + # Name of the domain. + ${DomainName}, + + [Parameter(ParameterSetName='Delete', Mandatory)] + [Alias('DomainTopicName')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [System.String] + # Name of the domain topic. + ${Name}, + + [Parameter(ParameterSetName='Delete', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [System.String] + # The name of the resource group within the user's subscription. + ${ResourceGroupName}, + + [Parameter(ParameterSetName='Delete')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] + [System.String] + # Subscription credentials that uniquely identify a Microsoft Azure subscription. + # The subscription ID forms part of the URI for every service call. + ${SubscriptionId}, + + [Parameter(ParameterSetName='DeleteViaIdentity', Mandatory, ValueFromPipeline)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.IEventGridIdentity] + # Identity Parameter + # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + ${InputObject}, + + [Parameter()] + [Alias('AzureRMContext', 'AzureCredential')] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Run the command as a job + ${AsJob}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Run the command asynchronously + ${NoWait}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Returns true when the command succeeds + ${PassThru}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + if ($null -eq [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion) { + [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion = $Host.Runspace.Version.ToString() + } + $preTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + if ($preTelemetryId -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId =(New-Guid).ToString() + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.module]::Instance.Telemetry.Invoke('Create', $MyInvocation, $parameterSet, $PSCmdlet) + } else { + $internalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + if ($internalCalledCmdlets -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $MyInvocation.MyCommand.Name + } else { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets += ',' + $MyInvocation.MyCommand.Name + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = 'internal' + } + + $mapping = @{ + Delete = 'Az.EventGrid.private\Remove-AzEventGridDomainTopic_Delete'; + DeleteViaIdentity = 'Az.EventGrid.private\Remove-AzEventGridDomainTopic_DeleteViaIdentity'; + } + if (('Delete') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { + $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } + + finally { + $backupTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + $backupInternalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + +} +end { + try { + $steppablePipeline.End() + + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $backupTelemetryId + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $backupInternalCalledCmdlets + if ($preTelemetryId -eq '') { + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.module]::Instance.Telemetry.Invoke('Send', $MyInvocation, $parameterSet, $PSCmdlet) + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $preTelemetryId + + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} +} + +<# +.Synopsis +Delete existing domain. +.Description +Delete existing domain. +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Inputs +Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.IEventGridIdentity +.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 + [ChannelName ]: Name of the channel. + [DomainName ]: Name of the domain. + [DomainTopicName ]: Name of the topic. + [EventChannelName ]: Name of the event channel. + [EventSubscriptionName ]: Name of the event subscription. + [Id ]: Resource identity path + [Location ]: Name of the location. + [ParentName ]: The name of the parent resource (namely, either, the topic name, domain name, or partner namespace name). + [ParentType ]: The type of the parent resource. This can be either \'topics\', \'domains\', or \'partnerNamespaces\'. + [PartnerDestinationName ]: Name of the partner destination. + [PartnerNamespaceName ]: Name of the partner namespace. + [PartnerRegistrationName ]: Name of the partner registration. + [PartnerTopicName ]: Name of the partner topic. + [PrivateEndpointConnectionName ]: The name of the private endpoint connection connection. + [PrivateLinkResourceName ]: The name of private link resource. + [ProviderNamespace ]: Namespace of the provider of the topic. + [ResourceGroupName ]: The name of the resource group within the partners subscription. + [ResourceName ]: Name of the resource. + [ResourceTypeName ]: Name of the resource type. + [Scope ]: The scope of the event subscription. The scope can be a subscription, or a resource group, or a top level resource belonging to a resource provider namespace, or an EventGrid topic. For example, use '/subscriptions/{subscriptionId}/' for a subscription, '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}' for a resource group, and '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}' for a resource, and '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.EventGrid/topics/{topicName}' for an EventGrid topic. + [SubscriptionId ]: Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription ID forms part of the URI for every service call. + [SystemTopicName ]: Name of the system topic. + [TopicName ]: Name of the domain topic. + [TopicTypeName ]: Name of the topic type. + [VerifiedPartnerName ]: Name of the verified partner. +.Link +https://docs.microsoft.com/en-us/powershell/module/az.eventgrid/remove-azeventgriddomain +#> +function Remove-AzEventGridDomain { +[OutputType([System.Boolean])] +[CmdletBinding(DefaultParameterSetName='Delete', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(ParameterSetName='Delete', Mandatory)] + [Alias('DomainName')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [System.String] + # Name of the domain. + ${Name}, + + [Parameter(ParameterSetName='Delete', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [System.String] + # The name of the resource group within the user's subscription. + ${ResourceGroupName}, + + [Parameter(ParameterSetName='Delete')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] + [System.String] + # Subscription credentials that uniquely identify a Microsoft Azure subscription. + # The subscription ID forms part of the URI for every service call. + ${SubscriptionId}, + + [Parameter(ParameterSetName='DeleteViaIdentity', Mandatory, ValueFromPipeline)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.IEventGridIdentity] + # Identity Parameter + # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + ${InputObject}, + + [Parameter()] + [Alias('AzureRMContext', 'AzureCredential')] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Run the command as a job + ${AsJob}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Run the command asynchronously + ${NoWait}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Returns true when the command succeeds + ${PassThru}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + if ($null -eq [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion) { + [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion = $Host.Runspace.Version.ToString() + } + $preTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + if ($preTelemetryId -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId =(New-Guid).ToString() + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.module]::Instance.Telemetry.Invoke('Create', $MyInvocation, $parameterSet, $PSCmdlet) + } else { + $internalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + if ($internalCalledCmdlets -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $MyInvocation.MyCommand.Name + } else { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets += ',' + $MyInvocation.MyCommand.Name + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = 'internal' + } + + $mapping = @{ + Delete = 'Az.EventGrid.private\Remove-AzEventGridDomain_Delete'; + DeleteViaIdentity = 'Az.EventGrid.private\Remove-AzEventGridDomain_DeleteViaIdentity'; + } + if (('Delete') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { + $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } + + finally { + $backupTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + $backupInternalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + +} +end { + try { + $steppablePipeline.End() + + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $backupTelemetryId + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $backupInternalCalledCmdlets + if ($preTelemetryId -eq '') { + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.module]::Instance.Telemetry.Invoke('Send', $MyInvocation, $parameterSet, $PSCmdlet) + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $preTelemetryId + + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} +} + +<# +.Synopsis +Delete existing event channel. +.Description +Delete existing event channel. +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Inputs +Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.IEventGridIdentity +.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 + [ChannelName ]: Name of the channel. + [DomainName ]: Name of the domain. + [DomainTopicName ]: Name of the topic. + [EventChannelName ]: Name of the event channel. + [EventSubscriptionName ]: Name of the event subscription. + [Id ]: Resource identity path + [Location ]: Name of the location. + [ParentName ]: The name of the parent resource (namely, either, the topic name, domain name, or partner namespace name). + [ParentType ]: The type of the parent resource. This can be either \'topics\', \'domains\', or \'partnerNamespaces\'. + [PartnerDestinationName ]: Name of the partner destination. + [PartnerNamespaceName ]: Name of the partner namespace. + [PartnerRegistrationName ]: Name of the partner registration. + [PartnerTopicName ]: Name of the partner topic. + [PrivateEndpointConnectionName ]: The name of the private endpoint connection connection. + [PrivateLinkResourceName ]: The name of private link resource. + [ProviderNamespace ]: Namespace of the provider of the topic. + [ResourceGroupName ]: The name of the resource group within the partners subscription. + [ResourceName ]: Name of the resource. + [ResourceTypeName ]: Name of the resource type. + [Scope ]: The scope of the event subscription. The scope can be a subscription, or a resource group, or a top level resource belonging to a resource provider namespace, or an EventGrid topic. For example, use '/subscriptions/{subscriptionId}/' for a subscription, '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}' for a resource group, and '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}' for a resource, and '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.EventGrid/topics/{topicName}' for an EventGrid topic. + [SubscriptionId ]: Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription ID forms part of the URI for every service call. + [SystemTopicName ]: Name of the system topic. + [TopicName ]: Name of the domain topic. + [TopicTypeName ]: Name of the topic type. + [VerifiedPartnerName ]: Name of the verified partner. +.Link +https://docs.microsoft.com/en-us/powershell/module/az.eventgrid/remove-azeventgrideventchannel +#> +function Remove-AzEventGridEventChannel { +[OutputType([System.Boolean])] +[CmdletBinding(DefaultParameterSetName='Delete', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(ParameterSetName='Delete', Mandatory)] + [Alias('EventChannelName')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [System.String] + # Name of the event channel. + ${Name}, + + [Parameter(ParameterSetName='Delete', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [System.String] + # Name of the partner namespace. + ${PartnerNamespaceName}, + + [Parameter(ParameterSetName='Delete', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [System.String] + # The name of the resource group within the user's subscription. + ${ResourceGroupName}, + + [Parameter(ParameterSetName='Delete')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] + [System.String] + # Subscription credentials that uniquely identify a Microsoft Azure subscription. + # The subscription ID forms part of the URI for every service call. + ${SubscriptionId}, + + [Parameter(ParameterSetName='DeleteViaIdentity', Mandatory, ValueFromPipeline)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.IEventGridIdentity] + # Identity Parameter + # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + ${InputObject}, + + [Parameter()] + [Alias('AzureRMContext', 'AzureCredential')] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Run the command as a job + ${AsJob}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Run the command asynchronously + ${NoWait}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Returns true when the command succeeds + ${PassThru}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + if ($null -eq [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion) { + [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion = $Host.Runspace.Version.ToString() + } + $preTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + if ($preTelemetryId -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId =(New-Guid).ToString() + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.module]::Instance.Telemetry.Invoke('Create', $MyInvocation, $parameterSet, $PSCmdlet) + } else { + $internalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + if ($internalCalledCmdlets -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $MyInvocation.MyCommand.Name + } else { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets += ',' + $MyInvocation.MyCommand.Name + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = 'internal' + } + + $mapping = @{ + Delete = 'Az.EventGrid.private\Remove-AzEventGridEventChannel_Delete'; + DeleteViaIdentity = 'Az.EventGrid.private\Remove-AzEventGridEventChannel_DeleteViaIdentity'; + } + if (('Delete') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { + $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } + + finally { + $backupTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + $backupInternalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + +} +end { + try { + $steppablePipeline.End() + + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $backupTelemetryId + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $backupInternalCalledCmdlets + if ($preTelemetryId -eq '') { + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.module]::Instance.Telemetry.Invoke('Send', $MyInvocation, $parameterSet, $PSCmdlet) + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $preTelemetryId + + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} +} + +<# +.Synopsis +Delete an existing event subscription. +.Description +Delete an existing event subscription. +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Inputs +Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.IEventGridIdentity +.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 + [ChannelName ]: Name of the channel. + [DomainName ]: Name of the domain. + [DomainTopicName ]: Name of the topic. + [EventChannelName ]: Name of the event channel. + [EventSubscriptionName ]: Name of the event subscription. + [Id ]: Resource identity path + [Location ]: Name of the location. + [ParentName ]: The name of the parent resource (namely, either, the topic name, domain name, or partner namespace name). + [ParentType ]: The type of the parent resource. This can be either \'topics\', \'domains\', or \'partnerNamespaces\'. + [PartnerDestinationName ]: Name of the partner destination. + [PartnerNamespaceName ]: Name of the partner namespace. + [PartnerRegistrationName ]: Name of the partner registration. + [PartnerTopicName ]: Name of the partner topic. + [PrivateEndpointConnectionName ]: The name of the private endpoint connection connection. + [PrivateLinkResourceName ]: The name of private link resource. + [ProviderNamespace ]: Namespace of the provider of the topic. + [ResourceGroupName ]: The name of the resource group within the partners subscription. + [ResourceName ]: Name of the resource. + [ResourceTypeName ]: Name of the resource type. + [Scope ]: The scope of the event subscription. The scope can be a subscription, or a resource group, or a top level resource belonging to a resource provider namespace, or an EventGrid topic. For example, use '/subscriptions/{subscriptionId}/' for a subscription, '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}' for a resource group, and '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}' for a resource, and '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.EventGrid/topics/{topicName}' for an EventGrid topic. + [SubscriptionId ]: Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription ID forms part of the URI for every service call. + [SystemTopicName ]: Name of the system topic. + [TopicName ]: Name of the domain topic. + [TopicTypeName ]: Name of the topic type. + [VerifiedPartnerName ]: Name of the verified partner. +.Link +https://docs.microsoft.com/en-us/powershell/module/az.eventgrid/remove-azeventgrideventsubscription +#> +function Remove-AzEventGridEventSubscription { +[OutputType([System.Boolean])] +[CmdletBinding(DefaultParameterSetName='Delete', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(ParameterSetName='Delete', Mandatory)] + [Alias('EventSubscriptionName')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [System.String] + # Name of the event subscription. + ${Name}, + + [Parameter(ParameterSetName='Delete', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [System.String] + # The scope of the event subscription. + # The scope can be a subscription, or a resource group, or a top level resource belonging to a resource provider namespace, or an EventGrid topic. + # For example, use '/subscriptions/{subscriptionId}/' for a subscription, '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}' for a resource group, and '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}' for a resource, and '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.EventGrid/topics/{topicName}' for an EventGrid topic. + ${Scope}, + + [Parameter(ParameterSetName='DeleteViaIdentity', Mandatory, ValueFromPipeline)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.IEventGridIdentity] + # Identity Parameter + # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + ${InputObject}, + + [Parameter()] + [Alias('AzureRMContext', 'AzureCredential')] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Run the command as a job + ${AsJob}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Run the command asynchronously + ${NoWait}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Returns true when the command succeeds + ${PassThru}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + if ($null -eq [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion) { + [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion = $Host.Runspace.Version.ToString() + } + $preTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + if ($preTelemetryId -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId =(New-Guid).ToString() + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.module]::Instance.Telemetry.Invoke('Create', $MyInvocation, $parameterSet, $PSCmdlet) + } else { + $internalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + if ($internalCalledCmdlets -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $MyInvocation.MyCommand.Name + } else { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets += ',' + $MyInvocation.MyCommand.Name + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = 'internal' + } + + $mapping = @{ + Delete = 'Az.EventGrid.private\Remove-AzEventGridEventSubscription_Delete'; + DeleteViaIdentity = 'Az.EventGrid.private\Remove-AzEventGridEventSubscription_DeleteViaIdentity'; + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } + + finally { + $backupTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + $backupInternalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + +} +end { + try { + $steppablePipeline.End() + + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $backupTelemetryId + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $backupInternalCalledCmdlets + if ($preTelemetryId -eq '') { + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.module]::Instance.Telemetry.Invoke('Send', $MyInvocation, $parameterSet, $PSCmdlet) + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $preTelemetryId + + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} +} + +<# +.Synopsis +Delete existing partner configuration. +.Description +Delete existing partner configuration. +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Inputs +Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.IEventGridIdentity +.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 + [ChannelName ]: Name of the channel. + [DomainName ]: Name of the domain. + [DomainTopicName ]: Name of the topic. + [EventChannelName ]: Name of the event channel. + [EventSubscriptionName ]: Name of the event subscription. + [Id ]: Resource identity path + [Location ]: Name of the location. + [ParentName ]: The name of the parent resource (namely, either, the topic name, domain name, or partner namespace name). + [ParentType ]: The type of the parent resource. This can be either \'topics\', \'domains\', or \'partnerNamespaces\'. + [PartnerDestinationName ]: Name of the partner destination. + [PartnerNamespaceName ]: Name of the partner namespace. + [PartnerRegistrationName ]: Name of the partner registration. + [PartnerTopicName ]: Name of the partner topic. + [PrivateEndpointConnectionName ]: The name of the private endpoint connection connection. + [PrivateLinkResourceName ]: The name of private link resource. + [ProviderNamespace ]: Namespace of the provider of the topic. + [ResourceGroupName ]: The name of the resource group within the partners subscription. + [ResourceName ]: Name of the resource. + [ResourceTypeName ]: Name of the resource type. + [Scope ]: The scope of the event subscription. The scope can be a subscription, or a resource group, or a top level resource belonging to a resource provider namespace, or an EventGrid topic. For example, use '/subscriptions/{subscriptionId}/' for a subscription, '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}' for a resource group, and '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}' for a resource, and '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.EventGrid/topics/{topicName}' for an EventGrid topic. + [SubscriptionId ]: Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription ID forms part of the URI for every service call. + [SystemTopicName ]: Name of the system topic. + [TopicName ]: Name of the domain topic. + [TopicTypeName ]: Name of the topic type. + [VerifiedPartnerName ]: Name of the verified partner. +.Link +https://docs.microsoft.com/en-us/powershell/module/az.eventgrid/remove-azeventgridpartnerconfiguration +#> +function Remove-AzEventGridPartnerConfiguration { +[OutputType([System.Boolean])] +[CmdletBinding(DefaultParameterSetName='Delete', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(ParameterSetName='Delete', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [System.String] + # The name of the resource group within the user's subscription. + ${ResourceGroupName}, + + [Parameter(ParameterSetName='Delete')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] + [System.String] + # Subscription credentials that uniquely identify a Microsoft Azure subscription. + # The subscription ID forms part of the URI for every service call. + ${SubscriptionId}, + + [Parameter(ParameterSetName='DeleteViaIdentity', Mandatory, ValueFromPipeline)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.IEventGridIdentity] + # Identity Parameter + # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + ${InputObject}, + + [Parameter()] + [Alias('AzureRMContext', 'AzureCredential')] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Run the command as a job + ${AsJob}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Run the command asynchronously + ${NoWait}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Returns true when the command succeeds + ${PassThru}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + if ($null -eq [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion) { + [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion = $Host.Runspace.Version.ToString() + } + $preTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + if ($preTelemetryId -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId =(New-Guid).ToString() + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.module]::Instance.Telemetry.Invoke('Create', $MyInvocation, $parameterSet, $PSCmdlet) + } else { + $internalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + if ($internalCalledCmdlets -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $MyInvocation.MyCommand.Name + } else { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets += ',' + $MyInvocation.MyCommand.Name + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = 'internal' + } + + $mapping = @{ + Delete = 'Az.EventGrid.private\Remove-AzEventGridPartnerConfiguration_Delete'; + DeleteViaIdentity = 'Az.EventGrid.private\Remove-AzEventGridPartnerConfiguration_DeleteViaIdentity'; + } + if (('Delete') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { + $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } + + finally { + $backupTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + $backupInternalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + +} +end { + try { + $steppablePipeline.End() + + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $backupTelemetryId + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $backupInternalCalledCmdlets + if ($preTelemetryId -eq '') { + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.module]::Instance.Telemetry.Invoke('Send', $MyInvocation, $parameterSet, $PSCmdlet) + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $preTelemetryId + + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} +} + +<# +.Synopsis +Delete existing partner destination. +.Description +Delete existing partner destination. +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Inputs +Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.IEventGridIdentity +.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 + [ChannelName ]: Name of the channel. + [DomainName ]: Name of the domain. + [DomainTopicName ]: Name of the topic. + [EventChannelName ]: Name of the event channel. + [EventSubscriptionName ]: Name of the event subscription. + [Id ]: Resource identity path + [Location ]: Name of the location. + [ParentName ]: The name of the parent resource (namely, either, the topic name, domain name, or partner namespace name). + [ParentType ]: The type of the parent resource. This can be either \'topics\', \'domains\', or \'partnerNamespaces\'. + [PartnerDestinationName ]: Name of the partner destination. + [PartnerNamespaceName ]: Name of the partner namespace. + [PartnerRegistrationName ]: Name of the partner registration. + [PartnerTopicName ]: Name of the partner topic. + [PrivateEndpointConnectionName ]: The name of the private endpoint connection connection. + [PrivateLinkResourceName ]: The name of private link resource. + [ProviderNamespace ]: Namespace of the provider of the topic. + [ResourceGroupName ]: The name of the resource group within the partners subscription. + [ResourceName ]: Name of the resource. + [ResourceTypeName ]: Name of the resource type. + [Scope ]: The scope of the event subscription. The scope can be a subscription, or a resource group, or a top level resource belonging to a resource provider namespace, or an EventGrid topic. For example, use '/subscriptions/{subscriptionId}/' for a subscription, '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}' for a resource group, and '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}' for a resource, and '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.EventGrid/topics/{topicName}' for an EventGrid topic. + [SubscriptionId ]: Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription ID forms part of the URI for every service call. + [SystemTopicName ]: Name of the system topic. + [TopicName ]: Name of the domain topic. + [TopicTypeName ]: Name of the topic type. + [VerifiedPartnerName ]: Name of the verified partner. +.Link +https://docs.microsoft.com/en-us/powershell/module/az.eventgrid/remove-azeventgridpartnerdestination +#> +function Remove-AzEventGridPartnerDestination { +[OutputType([System.Boolean])] +[CmdletBinding(DefaultParameterSetName='Delete', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(ParameterSetName='Delete', Mandatory)] + [Alias('PartnerDestinationName')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [System.String] + # Name of the partner destination. + ${Name}, + + [Parameter(ParameterSetName='Delete', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [System.String] + # The name of the resource group within the user's subscription. + ${ResourceGroupName}, + + [Parameter(ParameterSetName='Delete')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] + [System.String] + # Subscription credentials that uniquely identify a Microsoft Azure subscription. + # The subscription ID forms part of the URI for every service call. + ${SubscriptionId}, + + [Parameter(ParameterSetName='DeleteViaIdentity', Mandatory, ValueFromPipeline)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.IEventGridIdentity] + # Identity Parameter + # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + ${InputObject}, + + [Parameter()] + [Alias('AzureRMContext', 'AzureCredential')] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Run the command as a job + ${AsJob}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Run the command asynchronously + ${NoWait}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Returns true when the command succeeds + ${PassThru}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + if ($null -eq [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion) { + [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion = $Host.Runspace.Version.ToString() + } + $preTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + if ($preTelemetryId -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId =(New-Guid).ToString() + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.module]::Instance.Telemetry.Invoke('Create', $MyInvocation, $parameterSet, $PSCmdlet) + } else { + $internalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + if ($internalCalledCmdlets -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $MyInvocation.MyCommand.Name + } else { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets += ',' + $MyInvocation.MyCommand.Name + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = 'internal' + } + + $mapping = @{ + Delete = 'Az.EventGrid.private\Remove-AzEventGridPartnerDestination_Delete'; + DeleteViaIdentity = 'Az.EventGrid.private\Remove-AzEventGridPartnerDestination_DeleteViaIdentity'; + } + if (('Delete') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { + $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } + + finally { + $backupTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + $backupInternalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + +} +end { + try { + $steppablePipeline.End() + + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $backupTelemetryId + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $backupInternalCalledCmdlets + if ($preTelemetryId -eq '') { + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.module]::Instance.Telemetry.Invoke('Send', $MyInvocation, $parameterSet, $PSCmdlet) + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $preTelemetryId + + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} +} + +<# +.Synopsis +Delete existing partner namespace. +.Description +Delete existing partner namespace. +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Inputs +Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.IEventGridIdentity +.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 + [ChannelName ]: Name of the channel. + [DomainName ]: Name of the domain. + [DomainTopicName ]: Name of the topic. + [EventChannelName ]: Name of the event channel. + [EventSubscriptionName ]: Name of the event subscription. + [Id ]: Resource identity path + [Location ]: Name of the location. + [ParentName ]: The name of the parent resource (namely, either, the topic name, domain name, or partner namespace name). + [ParentType ]: The type of the parent resource. This can be either \'topics\', \'domains\', or \'partnerNamespaces\'. + [PartnerDestinationName ]: Name of the partner destination. + [PartnerNamespaceName ]: Name of the partner namespace. + [PartnerRegistrationName ]: Name of the partner registration. + [PartnerTopicName ]: Name of the partner topic. + [PrivateEndpointConnectionName ]: The name of the private endpoint connection connection. + [PrivateLinkResourceName ]: The name of private link resource. + [ProviderNamespace ]: Namespace of the provider of the topic. + [ResourceGroupName ]: The name of the resource group within the partners subscription. + [ResourceName ]: Name of the resource. + [ResourceTypeName ]: Name of the resource type. + [Scope ]: The scope of the event subscription. The scope can be a subscription, or a resource group, or a top level resource belonging to a resource provider namespace, or an EventGrid topic. For example, use '/subscriptions/{subscriptionId}/' for a subscription, '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}' for a resource group, and '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}' for a resource, and '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.EventGrid/topics/{topicName}' for an EventGrid topic. + [SubscriptionId ]: Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription ID forms part of the URI for every service call. + [SystemTopicName ]: Name of the system topic. + [TopicName ]: Name of the domain topic. + [TopicTypeName ]: Name of the topic type. + [VerifiedPartnerName ]: Name of the verified partner. +.Link +https://docs.microsoft.com/en-us/powershell/module/az.eventgrid/remove-azeventgridpartnernamespace +#> +function Remove-AzEventGridPartnerNamespace { +[OutputType([System.Boolean])] +[CmdletBinding(DefaultParameterSetName='Delete', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(ParameterSetName='Delete', Mandatory)] + [Alias('PartnerNamespaceName')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [System.String] + # Name of the partner namespace. + ${Name}, + + [Parameter(ParameterSetName='Delete', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [System.String] + # The name of the resource group within the user's subscription. + ${ResourceGroupName}, + + [Parameter(ParameterSetName='Delete')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] + [System.String] + # Subscription credentials that uniquely identify a Microsoft Azure subscription. + # The subscription ID forms part of the URI for every service call. + ${SubscriptionId}, + + [Parameter(ParameterSetName='DeleteViaIdentity', Mandatory, ValueFromPipeline)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.IEventGridIdentity] + # Identity Parameter + # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + ${InputObject}, + + [Parameter()] + [Alias('AzureRMContext', 'AzureCredential')] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Run the command as a job + ${AsJob}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Run the command asynchronously + ${NoWait}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Returns true when the command succeeds + ${PassThru}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + if ($null -eq [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion) { + [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion = $Host.Runspace.Version.ToString() + } + $preTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + if ($preTelemetryId -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId =(New-Guid).ToString() + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.module]::Instance.Telemetry.Invoke('Create', $MyInvocation, $parameterSet, $PSCmdlet) + } else { + $internalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + if ($internalCalledCmdlets -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $MyInvocation.MyCommand.Name + } else { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets += ',' + $MyInvocation.MyCommand.Name + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = 'internal' + } + + $mapping = @{ + Delete = 'Az.EventGrid.private\Remove-AzEventGridPartnerNamespace_Delete'; + DeleteViaIdentity = 'Az.EventGrid.private\Remove-AzEventGridPartnerNamespace_DeleteViaIdentity'; + } + if (('Delete') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { + $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } + + finally { + $backupTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + $backupInternalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + +} +end { + try { + $steppablePipeline.End() + + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $backupTelemetryId + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $backupInternalCalledCmdlets + if ($preTelemetryId -eq '') { + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.module]::Instance.Telemetry.Invoke('Send', $MyInvocation, $parameterSet, $PSCmdlet) + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $preTelemetryId + + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} +} + +<# +.Synopsis +Deletes a partner registration with the specified parameters. +.Description +Deletes a partner registration with the specified parameters. +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Inputs +Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.IEventGridIdentity +.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 + [ChannelName ]: Name of the channel. + [DomainName ]: Name of the domain. + [DomainTopicName ]: Name of the topic. + [EventChannelName ]: Name of the event channel. + [EventSubscriptionName ]: Name of the event subscription. + [Id ]: Resource identity path + [Location ]: Name of the location. + [ParentName ]: The name of the parent resource (namely, either, the topic name, domain name, or partner namespace name). + [ParentType ]: The type of the parent resource. This can be either \'topics\', \'domains\', or \'partnerNamespaces\'. + [PartnerDestinationName ]: Name of the partner destination. + [PartnerNamespaceName ]: Name of the partner namespace. + [PartnerRegistrationName ]: Name of the partner registration. + [PartnerTopicName ]: Name of the partner topic. + [PrivateEndpointConnectionName ]: The name of the private endpoint connection connection. + [PrivateLinkResourceName ]: The name of private link resource. + [ProviderNamespace ]: Namespace of the provider of the topic. + [ResourceGroupName ]: The name of the resource group within the partners subscription. + [ResourceName ]: Name of the resource. + [ResourceTypeName ]: Name of the resource type. + [Scope ]: The scope of the event subscription. The scope can be a subscription, or a resource group, or a top level resource belonging to a resource provider namespace, or an EventGrid topic. For example, use '/subscriptions/{subscriptionId}/' for a subscription, '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}' for a resource group, and '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}' for a resource, and '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.EventGrid/topics/{topicName}' for an EventGrid topic. + [SubscriptionId ]: Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription ID forms part of the URI for every service call. + [SystemTopicName ]: Name of the system topic. + [TopicName ]: Name of the domain topic. + [TopicTypeName ]: Name of the topic type. + [VerifiedPartnerName ]: Name of the verified partner. +.Link +https://docs.microsoft.com/en-us/powershell/module/az.eventgrid/remove-azeventgridpartnerregistration +#> +function Remove-AzEventGridPartnerRegistration { +[OutputType([System.Boolean])] +[CmdletBinding(DefaultParameterSetName='Delete', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(ParameterSetName='Delete', Mandatory)] + [Alias('PartnerRegistrationName')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [System.String] + # Name of the partner registration. + ${Name}, + + [Parameter(ParameterSetName='Delete', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [System.String] + # The name of the resource group within the user's subscription. + ${ResourceGroupName}, + + [Parameter(ParameterSetName='Delete')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] + [System.String] + # Subscription credentials that uniquely identify a Microsoft Azure subscription. + # The subscription ID forms part of the URI for every service call. + ${SubscriptionId}, + + [Parameter(ParameterSetName='DeleteViaIdentity', Mandatory, ValueFromPipeline)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.IEventGridIdentity] + # Identity Parameter + # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + ${InputObject}, + + [Parameter()] + [Alias('AzureRMContext', 'AzureCredential')] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Run the command as a job + ${AsJob}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Run the command asynchronously + ${NoWait}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Returns true when the command succeeds + ${PassThru}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + if ($null -eq [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion) { + [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion = $Host.Runspace.Version.ToString() + } + $preTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + if ($preTelemetryId -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId =(New-Guid).ToString() + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.module]::Instance.Telemetry.Invoke('Create', $MyInvocation, $parameterSet, $PSCmdlet) + } else { + $internalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + if ($internalCalledCmdlets -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $MyInvocation.MyCommand.Name + } else { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets += ',' + $MyInvocation.MyCommand.Name + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = 'internal' + } + + $mapping = @{ + Delete = 'Az.EventGrid.private\Remove-AzEventGridPartnerRegistration_Delete'; + DeleteViaIdentity = 'Az.EventGrid.private\Remove-AzEventGridPartnerRegistration_DeleteViaIdentity'; + } + if (('Delete') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { + $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } + + finally { + $backupTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + $backupInternalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + +} +end { + try { + $steppablePipeline.End() + + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $backupTelemetryId + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $backupInternalCalledCmdlets + if ($preTelemetryId -eq '') { + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.module]::Instance.Telemetry.Invoke('Send', $MyInvocation, $parameterSet, $PSCmdlet) + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $preTelemetryId + + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} +} + +<# +.Synopsis +Delete an existing event subscription of a partner topic. +.Description +Delete an existing event subscription of a partner topic. +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Inputs +Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.IEventGridIdentity +.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 + [ChannelName ]: Name of the channel. + [DomainName ]: Name of the domain. + [DomainTopicName ]: Name of the topic. + [EventChannelName ]: Name of the event channel. + [EventSubscriptionName ]: Name of the event subscription. + [Id ]: Resource identity path + [Location ]: Name of the location. + [ParentName ]: The name of the parent resource (namely, either, the topic name, domain name, or partner namespace name). + [ParentType ]: The type of the parent resource. This can be either \'topics\', \'domains\', or \'partnerNamespaces\'. + [PartnerDestinationName ]: Name of the partner destination. + [PartnerNamespaceName ]: Name of the partner namespace. + [PartnerRegistrationName ]: Name of the partner registration. + [PartnerTopicName ]: Name of the partner topic. + [PrivateEndpointConnectionName ]: The name of the private endpoint connection connection. + [PrivateLinkResourceName ]: The name of private link resource. + [ProviderNamespace ]: Namespace of the provider of the topic. + [ResourceGroupName ]: The name of the resource group within the partners subscription. + [ResourceName ]: Name of the resource. + [ResourceTypeName ]: Name of the resource type. + [Scope ]: The scope of the event subscription. The scope can be a subscription, or a resource group, or a top level resource belonging to a resource provider namespace, or an EventGrid topic. For example, use '/subscriptions/{subscriptionId}/' for a subscription, '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}' for a resource group, and '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}' for a resource, and '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.EventGrid/topics/{topicName}' for an EventGrid topic. + [SubscriptionId ]: Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription ID forms part of the URI for every service call. + [SystemTopicName ]: Name of the system topic. + [TopicName ]: Name of the domain topic. + [TopicTypeName ]: Name of the topic type. + [VerifiedPartnerName ]: Name of the verified partner. +.Link +https://docs.microsoft.com/en-us/powershell/module/az.eventgrid/remove-azeventgridpartnertopiceventsubscription +#> +function Remove-AzEventGridPartnerTopicEventSubscription { +[OutputType([System.Boolean])] +[CmdletBinding(DefaultParameterSetName='Delete', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(ParameterSetName='Delete', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [System.String] + # Name of the event subscription to be created. + # Event subscription names must be between 3 and 100 characters in length and use alphanumeric letters only. + ${EventSubscriptionName}, + + [Parameter(ParameterSetName='Delete', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [System.String] + # Name of the partner topic. + ${PartnerTopicName}, + + [Parameter(ParameterSetName='Delete', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [System.String] + # The name of the resource group within the user's subscription. + ${ResourceGroupName}, + + [Parameter(ParameterSetName='Delete')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] + [System.String] + # Subscription credentials that uniquely identify a Microsoft Azure subscription. + # The subscription ID forms part of the URI for every service call. + ${SubscriptionId}, + + [Parameter(ParameterSetName='DeleteViaIdentity', Mandatory, ValueFromPipeline)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.IEventGridIdentity] + # Identity Parameter + # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + ${InputObject}, + + [Parameter()] + [Alias('AzureRMContext', 'AzureCredential')] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Run the command as a job + ${AsJob}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Run the command asynchronously + ${NoWait}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Returns true when the command succeeds + ${PassThru}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + if ($null -eq [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion) { + [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion = $Host.Runspace.Version.ToString() + } + $preTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + if ($preTelemetryId -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId =(New-Guid).ToString() + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.module]::Instance.Telemetry.Invoke('Create', $MyInvocation, $parameterSet, $PSCmdlet) + } else { + $internalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + if ($internalCalledCmdlets -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $MyInvocation.MyCommand.Name + } else { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets += ',' + $MyInvocation.MyCommand.Name + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = 'internal' + } + + $mapping = @{ + Delete = 'Az.EventGrid.private\Remove-AzEventGridPartnerTopicEventSubscription_Delete'; + DeleteViaIdentity = 'Az.EventGrid.private\Remove-AzEventGridPartnerTopicEventSubscription_DeleteViaIdentity'; + } + if (('Delete') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { + $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } + + finally { + $backupTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + $backupInternalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + +} +end { + try { + $steppablePipeline.End() + + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $backupTelemetryId + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $backupInternalCalledCmdlets + if ($preTelemetryId -eq '') { + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.module]::Instance.Telemetry.Invoke('Send', $MyInvocation, $parameterSet, $PSCmdlet) + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $preTelemetryId + + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} +} + +<# +.Synopsis +Delete existing partner topic. +.Description +Delete existing partner topic. +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Inputs +Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.IEventGridIdentity +.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 + [ChannelName ]: Name of the channel. + [DomainName ]: Name of the domain. + [DomainTopicName ]: Name of the topic. + [EventChannelName ]: Name of the event channel. + [EventSubscriptionName ]: Name of the event subscription. + [Id ]: Resource identity path + [Location ]: Name of the location. + [ParentName ]: The name of the parent resource (namely, either, the topic name, domain name, or partner namespace name). + [ParentType ]: The type of the parent resource. This can be either \'topics\', \'domains\', or \'partnerNamespaces\'. + [PartnerDestinationName ]: Name of the partner destination. + [PartnerNamespaceName ]: Name of the partner namespace. + [PartnerRegistrationName ]: Name of the partner registration. + [PartnerTopicName ]: Name of the partner topic. + [PrivateEndpointConnectionName ]: The name of the private endpoint connection connection. + [PrivateLinkResourceName ]: The name of private link resource. + [ProviderNamespace ]: Namespace of the provider of the topic. + [ResourceGroupName ]: The name of the resource group within the partners subscription. + [ResourceName ]: Name of the resource. + [ResourceTypeName ]: Name of the resource type. + [Scope ]: The scope of the event subscription. The scope can be a subscription, or a resource group, or a top level resource belonging to a resource provider namespace, or an EventGrid topic. For example, use '/subscriptions/{subscriptionId}/' for a subscription, '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}' for a resource group, and '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}' for a resource, and '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.EventGrid/topics/{topicName}' for an EventGrid topic. + [SubscriptionId ]: Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription ID forms part of the URI for every service call. + [SystemTopicName ]: Name of the system topic. + [TopicName ]: Name of the domain topic. + [TopicTypeName ]: Name of the topic type. + [VerifiedPartnerName ]: Name of the verified partner. +.Link +https://docs.microsoft.com/en-us/powershell/module/az.eventgrid/remove-azeventgridpartnertopic +#> +function Remove-AzEventGridPartnerTopic { +[OutputType([System.Boolean])] +[CmdletBinding(DefaultParameterSetName='Delete', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(ParameterSetName='Delete', Mandatory)] + [Alias('PartnerTopicName')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [System.String] + # Name of the partner topic. + ${Name}, + + [Parameter(ParameterSetName='Delete', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [System.String] + # The name of the resource group within the user's subscription. + ${ResourceGroupName}, + + [Parameter(ParameterSetName='Delete')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] + [System.String] + # Subscription credentials that uniquely identify a Microsoft Azure subscription. + # The subscription ID forms part of the URI for every service call. + ${SubscriptionId}, + + [Parameter(ParameterSetName='DeleteViaIdentity', Mandatory, ValueFromPipeline)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.IEventGridIdentity] + # Identity Parameter + # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + ${InputObject}, + + [Parameter()] + [Alias('AzureRMContext', 'AzureCredential')] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Run the command as a job + ${AsJob}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Run the command asynchronously + ${NoWait}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Returns true when the command succeeds + ${PassThru}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + if ($null -eq [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion) { + [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion = $Host.Runspace.Version.ToString() + } + $preTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + if ($preTelemetryId -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId =(New-Guid).ToString() + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.module]::Instance.Telemetry.Invoke('Create', $MyInvocation, $parameterSet, $PSCmdlet) + } else { + $internalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + if ($internalCalledCmdlets -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $MyInvocation.MyCommand.Name + } else { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets += ',' + $MyInvocation.MyCommand.Name + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = 'internal' + } + + $mapping = @{ + Delete = 'Az.EventGrid.private\Remove-AzEventGridPartnerTopic_Delete'; + DeleteViaIdentity = 'Az.EventGrid.private\Remove-AzEventGridPartnerTopic_DeleteViaIdentity'; + } + if (('Delete') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { + $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } + + finally { + $backupTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + $backupInternalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + +} +end { + try { + $steppablePipeline.End() + + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $backupTelemetryId + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $backupInternalCalledCmdlets + if ($preTelemetryId -eq '') { + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.module]::Instance.Telemetry.Invoke('Send', $MyInvocation, $parameterSet, $PSCmdlet) + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $preTelemetryId + + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} +} + +<# +.Synopsis +Delete a specific private endpoint connection under a topic, domain, or partner namespace. +.Description +Delete a specific private endpoint connection under a topic, domain, or partner namespace. +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Inputs +Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.IEventGridIdentity +.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 + [ChannelName ]: Name of the channel. + [DomainName ]: Name of the domain. + [DomainTopicName ]: Name of the topic. + [EventChannelName ]: Name of the event channel. + [EventSubscriptionName ]: Name of the event subscription. + [Id ]: Resource identity path + [Location ]: Name of the location. + [ParentName ]: The name of the parent resource (namely, either, the topic name, domain name, or partner namespace name). + [ParentType ]: The type of the parent resource. This can be either \'topics\', \'domains\', or \'partnerNamespaces\'. + [PartnerDestinationName ]: Name of the partner destination. + [PartnerNamespaceName ]: Name of the partner namespace. + [PartnerRegistrationName ]: Name of the partner registration. + [PartnerTopicName ]: Name of the partner topic. + [PrivateEndpointConnectionName ]: The name of the private endpoint connection connection. + [PrivateLinkResourceName ]: The name of private link resource. + [ProviderNamespace ]: Namespace of the provider of the topic. + [ResourceGroupName ]: The name of the resource group within the partners subscription. + [ResourceName ]: Name of the resource. + [ResourceTypeName ]: Name of the resource type. + [Scope ]: The scope of the event subscription. The scope can be a subscription, or a resource group, or a top level resource belonging to a resource provider namespace, or an EventGrid topic. For example, use '/subscriptions/{subscriptionId}/' for a subscription, '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}' for a resource group, and '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}' for a resource, and '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.EventGrid/topics/{topicName}' for an EventGrid topic. + [SubscriptionId ]: Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription ID forms part of the URI for every service call. + [SystemTopicName ]: Name of the system topic. + [TopicName ]: Name of the domain topic. + [TopicTypeName ]: Name of the topic type. + [VerifiedPartnerName ]: Name of the verified partner. +.Link +https://docs.microsoft.com/en-us/powershell/module/az.eventgrid/remove-azeventgridprivateendpointconnection +#> +function Remove-AzEventGridPrivateEndpointConnection { +[OutputType([System.Boolean])] +[CmdletBinding(DefaultParameterSetName='Delete', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(ParameterSetName='Delete', Mandatory)] + [Alias('PrivateEndpointConnectionName')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [System.String] + # The name of the private endpoint connection connection. + ${Name}, + + [Parameter(ParameterSetName='Delete', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [System.String] + # The name of the parent resource (namely, either, the topic name, domain name, or partner namespace name). + ${ParentName}, + + [Parameter(ParameterSetName='Delete', Mandatory)] + [ArgumentCompleter([Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.ParentType])] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.ParentType] + # The type of the parent resource. + # This can be either \'topics\', \'domains\', or \'partnerNamespaces\'. + ${ParentType}, + + [Parameter(ParameterSetName='Delete', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [System.String] + # The name of the resource group within the user's subscription. + ${ResourceGroupName}, + + [Parameter(ParameterSetName='Delete')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] + [System.String] + # Subscription credentials that uniquely identify a Microsoft Azure subscription. + # The subscription ID forms part of the URI for every service call. + ${SubscriptionId}, + + [Parameter(ParameterSetName='DeleteViaIdentity', Mandatory, ValueFromPipeline)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.IEventGridIdentity] + # Identity Parameter + # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + ${InputObject}, + + [Parameter()] + [Alias('AzureRMContext', 'AzureCredential')] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Run the command as a job + ${AsJob}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Run the command asynchronously + ${NoWait}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Returns true when the command succeeds + ${PassThru}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + if ($null -eq [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion) { + [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion = $Host.Runspace.Version.ToString() + } + $preTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + if ($preTelemetryId -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId =(New-Guid).ToString() + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.module]::Instance.Telemetry.Invoke('Create', $MyInvocation, $parameterSet, $PSCmdlet) + } else { + $internalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + if ($internalCalledCmdlets -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $MyInvocation.MyCommand.Name + } else { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets += ',' + $MyInvocation.MyCommand.Name + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = 'internal' + } + + $mapping = @{ + Delete = 'Az.EventGrid.private\Remove-AzEventGridPrivateEndpointConnection_Delete'; + DeleteViaIdentity = 'Az.EventGrid.private\Remove-AzEventGridPrivateEndpointConnection_DeleteViaIdentity'; + } + if (('Delete') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { + $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } + + finally { + $backupTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + $backupInternalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + +} +end { + try { + $steppablePipeline.End() + + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $backupTelemetryId + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $backupInternalCalledCmdlets + if ($preTelemetryId -eq '') { + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.module]::Instance.Telemetry.Invoke('Send', $MyInvocation, $parameterSet, $PSCmdlet) + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $preTelemetryId + + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} +} + +<# +.Synopsis +Delete an existing event subscription of a system topic. +.Description +Delete an existing event subscription of a system topic. +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Inputs +Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.IEventGridIdentity +.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 + [ChannelName ]: Name of the channel. + [DomainName ]: Name of the domain. + [DomainTopicName ]: Name of the topic. + [EventChannelName ]: Name of the event channel. + [EventSubscriptionName ]: Name of the event subscription. + [Id ]: Resource identity path + [Location ]: Name of the location. + [ParentName ]: The name of the parent resource (namely, either, the topic name, domain name, or partner namespace name). + [ParentType ]: The type of the parent resource. This can be either \'topics\', \'domains\', or \'partnerNamespaces\'. + [PartnerDestinationName ]: Name of the partner destination. + [PartnerNamespaceName ]: Name of the partner namespace. + [PartnerRegistrationName ]: Name of the partner registration. + [PartnerTopicName ]: Name of the partner topic. + [PrivateEndpointConnectionName ]: The name of the private endpoint connection connection. + [PrivateLinkResourceName ]: The name of private link resource. + [ProviderNamespace ]: Namespace of the provider of the topic. + [ResourceGroupName ]: The name of the resource group within the partners subscription. + [ResourceName ]: Name of the resource. + [ResourceTypeName ]: Name of the resource type. + [Scope ]: The scope of the event subscription. The scope can be a subscription, or a resource group, or a top level resource belonging to a resource provider namespace, or an EventGrid topic. For example, use '/subscriptions/{subscriptionId}/' for a subscription, '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}' for a resource group, and '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}' for a resource, and '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.EventGrid/topics/{topicName}' for an EventGrid topic. + [SubscriptionId ]: Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription ID forms part of the URI for every service call. + [SystemTopicName ]: Name of the system topic. + [TopicName ]: Name of the domain topic. + [TopicTypeName ]: Name of the topic type. + [VerifiedPartnerName ]: Name of the verified partner. +.Link +https://docs.microsoft.com/en-us/powershell/module/az.eventgrid/remove-azeventgridsystemtopiceventsubscription +#> +function Remove-AzEventGridSystemTopicEventSubscription { +[OutputType([System.Boolean])] +[CmdletBinding(DefaultParameterSetName='Delete', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(ParameterSetName='Delete', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [System.String] + # Name of the event subscription to be created. + # Event subscription names must be between 3 and 100 characters in length and use alphanumeric letters only. + ${EventSubscriptionName}, + + [Parameter(ParameterSetName='Delete', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [System.String] + # The name of the resource group within the user's subscription. + ${ResourceGroupName}, + + [Parameter(ParameterSetName='Delete')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] + [System.String] + # Subscription credentials that uniquely identify a Microsoft Azure subscription. + # The subscription ID forms part of the URI for every service call. + ${SubscriptionId}, + + [Parameter(ParameterSetName='Delete', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [System.String] + # Name of the system topic. + ${SystemTopicName}, + + [Parameter(ParameterSetName='DeleteViaIdentity', Mandatory, ValueFromPipeline)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.IEventGridIdentity] + # Identity Parameter + # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + ${InputObject}, + + [Parameter()] + [Alias('AzureRMContext', 'AzureCredential')] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Run the command as a job + ${AsJob}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Run the command asynchronously + ${NoWait}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Returns true when the command succeeds + ${PassThru}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + if ($null -eq [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion) { + [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion = $Host.Runspace.Version.ToString() + } + $preTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + if ($preTelemetryId -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId =(New-Guid).ToString() + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.module]::Instance.Telemetry.Invoke('Create', $MyInvocation, $parameterSet, $PSCmdlet) + } else { + $internalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + if ($internalCalledCmdlets -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $MyInvocation.MyCommand.Name + } else { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets += ',' + $MyInvocation.MyCommand.Name + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = 'internal' + } + + $mapping = @{ + Delete = 'Az.EventGrid.private\Remove-AzEventGridSystemTopicEventSubscription_Delete'; + DeleteViaIdentity = 'Az.EventGrid.private\Remove-AzEventGridSystemTopicEventSubscription_DeleteViaIdentity'; + } + if (('Delete') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { + $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } + + finally { + $backupTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + $backupInternalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + +} +end { + try { + $steppablePipeline.End() + + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $backupTelemetryId + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $backupInternalCalledCmdlets + if ($preTelemetryId -eq '') { + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.module]::Instance.Telemetry.Invoke('Send', $MyInvocation, $parameterSet, $PSCmdlet) + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $preTelemetryId + + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} +} + +<# +.Synopsis +Delete existing system topic. +.Description +Delete existing system topic. +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Inputs +Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.IEventGridIdentity +.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 + [ChannelName ]: Name of the channel. + [DomainName ]: Name of the domain. + [DomainTopicName ]: Name of the topic. + [EventChannelName ]: Name of the event channel. + [EventSubscriptionName ]: Name of the event subscription. + [Id ]: Resource identity path + [Location ]: Name of the location. + [ParentName ]: The name of the parent resource (namely, either, the topic name, domain name, or partner namespace name). + [ParentType ]: The type of the parent resource. This can be either \'topics\', \'domains\', or \'partnerNamespaces\'. + [PartnerDestinationName ]: Name of the partner destination. + [PartnerNamespaceName ]: Name of the partner namespace. + [PartnerRegistrationName ]: Name of the partner registration. + [PartnerTopicName ]: Name of the partner topic. + [PrivateEndpointConnectionName ]: The name of the private endpoint connection connection. + [PrivateLinkResourceName ]: The name of private link resource. + [ProviderNamespace ]: Namespace of the provider of the topic. + [ResourceGroupName ]: The name of the resource group within the partners subscription. + [ResourceName ]: Name of the resource. + [ResourceTypeName ]: Name of the resource type. + [Scope ]: The scope of the event subscription. The scope can be a subscription, or a resource group, or a top level resource belonging to a resource provider namespace, or an EventGrid topic. For example, use '/subscriptions/{subscriptionId}/' for a subscription, '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}' for a resource group, and '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}' for a resource, and '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.EventGrid/topics/{topicName}' for an EventGrid topic. + [SubscriptionId ]: Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription ID forms part of the URI for every service call. + [SystemTopicName ]: Name of the system topic. + [TopicName ]: Name of the domain topic. + [TopicTypeName ]: Name of the topic type. + [VerifiedPartnerName ]: Name of the verified partner. +.Link +https://docs.microsoft.com/en-us/powershell/module/az.eventgrid/remove-azeventgridsystemtopic +#> +function Remove-AzEventGridSystemTopic { +[OutputType([System.Boolean])] +[CmdletBinding(DefaultParameterSetName='Delete', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(ParameterSetName='Delete', Mandatory)] + [Alias('SystemTopicName')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [System.String] + # Name of the system topic. + ${Name}, + + [Parameter(ParameterSetName='Delete', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [System.String] + # The name of the resource group within the user's subscription. + ${ResourceGroupName}, + + [Parameter(ParameterSetName='Delete')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] + [System.String] + # Subscription credentials that uniquely identify a Microsoft Azure subscription. + # The subscription ID forms part of the URI for every service call. + ${SubscriptionId}, + + [Parameter(ParameterSetName='DeleteViaIdentity', Mandatory, ValueFromPipeline)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.IEventGridIdentity] + # Identity Parameter + # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + ${InputObject}, + + [Parameter()] + [Alias('AzureRMContext', 'AzureCredential')] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Run the command as a job + ${AsJob}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Run the command asynchronously + ${NoWait}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Returns true when the command succeeds + ${PassThru}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + if ($null -eq [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion) { + [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion = $Host.Runspace.Version.ToString() + } + $preTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + if ($preTelemetryId -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId =(New-Guid).ToString() + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.module]::Instance.Telemetry.Invoke('Create', $MyInvocation, $parameterSet, $PSCmdlet) + } else { + $internalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + if ($internalCalledCmdlets -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $MyInvocation.MyCommand.Name + } else { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets += ',' + $MyInvocation.MyCommand.Name + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = 'internal' + } + + $mapping = @{ + Delete = 'Az.EventGrid.private\Remove-AzEventGridSystemTopic_Delete'; + DeleteViaIdentity = 'Az.EventGrid.private\Remove-AzEventGridSystemTopic_DeleteViaIdentity'; + } + if (('Delete') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { + $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } + + finally { + $backupTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + $backupInternalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + +} +end { + try { + $steppablePipeline.End() + + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $backupTelemetryId + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $backupInternalCalledCmdlets + if ($preTelemetryId -eq '') { + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.module]::Instance.Telemetry.Invoke('Send', $MyInvocation, $parameterSet, $PSCmdlet) + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $preTelemetryId + + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} +} + +<# +.Synopsis +Delete an existing event subscription for a topic. +.Description +Delete an existing event subscription for a topic. +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Inputs +Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.IEventGridIdentity +.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 + [ChannelName ]: Name of the channel. + [DomainName ]: Name of the domain. + [DomainTopicName ]: Name of the topic. + [EventChannelName ]: Name of the event channel. + [EventSubscriptionName ]: Name of the event subscription. + [Id ]: Resource identity path + [Location ]: Name of the location. + [ParentName ]: The name of the parent resource (namely, either, the topic name, domain name, or partner namespace name). + [ParentType ]: The type of the parent resource. This can be either \'topics\', \'domains\', or \'partnerNamespaces\'. + [PartnerDestinationName ]: Name of the partner destination. + [PartnerNamespaceName ]: Name of the partner namespace. + [PartnerRegistrationName ]: Name of the partner registration. + [PartnerTopicName ]: Name of the partner topic. + [PrivateEndpointConnectionName ]: The name of the private endpoint connection connection. + [PrivateLinkResourceName ]: The name of private link resource. + [ProviderNamespace ]: Namespace of the provider of the topic. + [ResourceGroupName ]: The name of the resource group within the partners subscription. + [ResourceName ]: Name of the resource. + [ResourceTypeName ]: Name of the resource type. + [Scope ]: The scope of the event subscription. The scope can be a subscription, or a resource group, or a top level resource belonging to a resource provider namespace, or an EventGrid topic. For example, use '/subscriptions/{subscriptionId}/' for a subscription, '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}' for a resource group, and '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}' for a resource, and '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.EventGrid/topics/{topicName}' for an EventGrid topic. + [SubscriptionId ]: Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription ID forms part of the URI for every service call. + [SystemTopicName ]: Name of the system topic. + [TopicName ]: Name of the domain topic. + [TopicTypeName ]: Name of the topic type. + [VerifiedPartnerName ]: Name of the verified partner. +.Link +https://docs.microsoft.com/en-us/powershell/module/az.eventgrid/remove-azeventgridtopiceventsubscription +#> +function Remove-AzEventGridTopicEventSubscription { +[OutputType([System.Boolean])] +[CmdletBinding(DefaultParameterSetName='Delete', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(ParameterSetName='Delete', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [System.String] + # Name of the event subscription to be deleted. + # Event subscription names must be between 3 and 100 characters in length and use alphanumeric letters only. + ${EventSubscriptionName}, + + [Parameter(ParameterSetName='Delete', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [System.String] + # The name of the resource group within the user's subscription. + ${ResourceGroupName}, + + [Parameter(ParameterSetName='Delete')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] + [System.String] + # Subscription credentials that uniquely identify a Microsoft Azure subscription. + # The subscription ID forms part of the URI for every service call. + ${SubscriptionId}, + + [Parameter(ParameterSetName='Delete', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [System.String] + # Name of the topic. + ${TopicName}, + + [Parameter(ParameterSetName='DeleteViaIdentity', Mandatory, ValueFromPipeline)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.IEventGridIdentity] + # Identity Parameter + # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + ${InputObject}, + + [Parameter()] + [Alias('AzureRMContext', 'AzureCredential')] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Run the command as a job + ${AsJob}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Run the command asynchronously + ${NoWait}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Returns true when the command succeeds + ${PassThru}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + if ($null -eq [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion) { + [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion = $Host.Runspace.Version.ToString() + } + $preTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + if ($preTelemetryId -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId =(New-Guid).ToString() + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.module]::Instance.Telemetry.Invoke('Create', $MyInvocation, $parameterSet, $PSCmdlet) + } else { + $internalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + if ($internalCalledCmdlets -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $MyInvocation.MyCommand.Name + } else { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets += ',' + $MyInvocation.MyCommand.Name + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = 'internal' + } + + $mapping = @{ + Delete = 'Az.EventGrid.private\Remove-AzEventGridTopicEventSubscription_Delete'; + DeleteViaIdentity = 'Az.EventGrid.private\Remove-AzEventGridTopicEventSubscription_DeleteViaIdentity'; + } + if (('Delete') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { + $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } + + finally { + $backupTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + $backupInternalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + +} +end { + try { + $steppablePipeline.End() + + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $backupTelemetryId + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $backupInternalCalledCmdlets + if ($preTelemetryId -eq '') { + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.module]::Instance.Telemetry.Invoke('Send', $MyInvocation, $parameterSet, $PSCmdlet) + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $preTelemetryId + + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} +} + +<# +.Synopsis +Delete existing topic. +.Description +Delete existing topic. +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Inputs +Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.IEventGridIdentity +.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 + [ChannelName ]: Name of the channel. + [DomainName ]: Name of the domain. + [DomainTopicName ]: Name of the topic. + [EventChannelName ]: Name of the event channel. + [EventSubscriptionName ]: Name of the event subscription. + [Id ]: Resource identity path + [Location ]: Name of the location. + [ParentName ]: The name of the parent resource (namely, either, the topic name, domain name, or partner namespace name). + [ParentType ]: The type of the parent resource. This can be either \'topics\', \'domains\', or \'partnerNamespaces\'. + [PartnerDestinationName ]: Name of the partner destination. + [PartnerNamespaceName ]: Name of the partner namespace. + [PartnerRegistrationName ]: Name of the partner registration. + [PartnerTopicName ]: Name of the partner topic. + [PrivateEndpointConnectionName ]: The name of the private endpoint connection connection. + [PrivateLinkResourceName ]: The name of private link resource. + [ProviderNamespace ]: Namespace of the provider of the topic. + [ResourceGroupName ]: The name of the resource group within the partners subscription. + [ResourceName ]: Name of the resource. + [ResourceTypeName ]: Name of the resource type. + [Scope ]: The scope of the event subscription. The scope can be a subscription, or a resource group, or a top level resource belonging to a resource provider namespace, or an EventGrid topic. For example, use '/subscriptions/{subscriptionId}/' for a subscription, '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}' for a resource group, and '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}' for a resource, and '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.EventGrid/topics/{topicName}' for an EventGrid topic. + [SubscriptionId ]: Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription ID forms part of the URI for every service call. + [SystemTopicName ]: Name of the system topic. + [TopicName ]: Name of the domain topic. + [TopicTypeName ]: Name of the topic type. + [VerifiedPartnerName ]: Name of the verified partner. +.Link +https://docs.microsoft.com/en-us/powershell/module/az.eventgrid/remove-azeventgridtopic +#> +function Remove-AzEventGridTopic { +[OutputType([System.Boolean])] +[CmdletBinding(DefaultParameterSetName='Delete', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(ParameterSetName='Delete', Mandatory)] + [Alias('TopicName')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [System.String] + # Name of the topic. + ${Name}, + + [Parameter(ParameterSetName='Delete', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [System.String] + # The name of the resource group within the user's subscription. + ${ResourceGroupName}, + + [Parameter(ParameterSetName='Delete')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] + [System.String] + # Subscription credentials that uniquely identify a Microsoft Azure subscription. + # The subscription ID forms part of the URI for every service call. + ${SubscriptionId}, + + [Parameter(ParameterSetName='DeleteViaIdentity', Mandatory, ValueFromPipeline)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.IEventGridIdentity] + # Identity Parameter + # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + ${InputObject}, + + [Parameter()] + [Alias('AzureRMContext', 'AzureCredential')] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Run the command as a job + ${AsJob}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Run the command asynchronously + ${NoWait}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Returns true when the command succeeds + ${PassThru}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + if ($null -eq [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion) { + [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion = $Host.Runspace.Version.ToString() + } + $preTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + if ($preTelemetryId -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId =(New-Guid).ToString() + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.module]::Instance.Telemetry.Invoke('Create', $MyInvocation, $parameterSet, $PSCmdlet) + } else { + $internalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + if ($internalCalledCmdlets -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $MyInvocation.MyCommand.Name + } else { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets += ',' + $MyInvocation.MyCommand.Name + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = 'internal' + } + + $mapping = @{ + Delete = 'Az.EventGrid.private\Remove-AzEventGridTopic_Delete'; + DeleteViaIdentity = 'Az.EventGrid.private\Remove-AzEventGridTopic_DeleteViaIdentity'; + } + if (('Delete') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { + $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } + + finally { + $backupTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + $backupInternalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + +} +end { + try { + $steppablePipeline.End() + + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $backupTelemetryId + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $backupInternalCalledCmdlets + if ($preTelemetryId -eq '') { + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.module]::Instance.Telemetry.Invoke('Send', $MyInvocation, $parameterSet, $PSCmdlet) + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $preTelemetryId + + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} +} + +<# +.Synopsis +Synchronously updates a channel with the specified parameters. +.Description +Synchronously updates a channel with the specified parameters. +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Inputs +Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.IEventGridIdentity +.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 + [ChannelName ]: Name of the channel. + [DomainName ]: Name of the domain. + [DomainTopicName ]: Name of the topic. + [EventChannelName ]: Name of the event channel. + [EventSubscriptionName ]: Name of the event subscription. + [Id ]: Resource identity path + [Location ]: Name of the location. + [ParentName ]: The name of the parent resource (namely, either, the topic name, domain name, or partner namespace name). + [ParentType ]: The type of the parent resource. This can be either \'topics\', \'domains\', or \'partnerNamespaces\'. + [PartnerDestinationName ]: Name of the partner destination. + [PartnerNamespaceName ]: Name of the partner namespace. + [PartnerRegistrationName ]: Name of the partner registration. + [PartnerTopicName ]: Name of the partner topic. + [PrivateEndpointConnectionName ]: The name of the private endpoint connection connection. + [PrivateLinkResourceName ]: The name of private link resource. + [ProviderNamespace ]: Namespace of the provider of the topic. + [ResourceGroupName ]: The name of the resource group within the partners subscription. + [ResourceName ]: Name of the resource. + [ResourceTypeName ]: Name of the resource type. + [Scope ]: The scope of the event subscription. The scope can be a subscription, or a resource group, or a top level resource belonging to a resource provider namespace, or an EventGrid topic. For example, use '/subscriptions/{subscriptionId}/' for a subscription, '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}' for a resource group, and '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}' for a resource, and '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.EventGrid/topics/{topicName}' for an EventGrid topic. + [SubscriptionId ]: Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription ID forms part of the URI for every service call. + [SystemTopicName ]: Name of the system topic. + [TopicName ]: Name of the domain topic. + [TopicTypeName ]: Name of the topic type. + [VerifiedPartnerName ]: Name of the verified partner. +.Link +https://docs.microsoft.com/en-us/powershell/module/az.eventgrid/update-azeventgridchannel +#> +function Update-AzEventGridChannel { +[OutputType([System.Boolean])] +[CmdletBinding(DefaultParameterSetName='UpdateExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(ParameterSetName='UpdateExpanded', Mandatory)] + [Alias('ChannelName')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [System.String] + # Name of the channel. + ${Name}, + + [Parameter(ParameterSetName='UpdateExpanded', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [System.String] + # Name of the partner namespace. + ${PartnerNamespaceName}, + + [Parameter(ParameterSetName='UpdateExpanded', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [System.String] + # The name of the resource group within the partners subscription. + ${ResourceGroupName}, + + [Parameter(ParameterSetName='UpdateExpanded')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] + [System.String] + # Subscription credentials that uniquely identify a Microsoft Azure subscription. + # The subscription ID forms part of the URI for every service call. + ${SubscriptionId}, + + [Parameter(ParameterSetName='UpdateViaIdentityExpanded', Mandatory, ValueFromPipeline)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.IEventGridIdentity] + # Identity Parameter + # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + ${InputObject}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info(PossibleTypes=([Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventTypeInfoInlineEventTypes]))] + [System.Collections.Hashtable] + # A collection of inline event types for the resource. + # The inline event type keys are of type string which represents the name of the event.An example of a valid inline event name is "Contoso.OrderCreated".The inline event type values are of type InlineEventProperties and will contain additional information for every inline event type. + ${EventTypeInfoInlineEventType}, + + [Parameter()] + [ArgumentCompleter([Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EventDefinitionKind])] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EventDefinitionKind] + # The kind of event type used. + ${EventTypeInfoKind}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [System.DateTime] + # Expiration time of the event channel. + # If this timer expires while the corresponding partner topic or partner destination is never activated,the channel and corresponding partner topic or partner destination are deleted. + ${ExpirationTimeIfNotActivatedUtc}, + + [Parameter()] + [Alias('AzureRMContext', 'AzureCredential')] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Returns true when the command succeeds + ${PassThru}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + if ($null -eq [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion) { + [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion = $Host.Runspace.Version.ToString() + } + $preTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + if ($preTelemetryId -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId =(New-Guid).ToString() + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.module]::Instance.Telemetry.Invoke('Create', $MyInvocation, $parameterSet, $PSCmdlet) + } else { + $internalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + if ($internalCalledCmdlets -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $MyInvocation.MyCommand.Name + } else { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets += ',' + $MyInvocation.MyCommand.Name + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = 'internal' + } + + $mapping = @{ + UpdateExpanded = 'Az.EventGrid.private\Update-AzEventGridChannel_UpdateExpanded'; + UpdateViaIdentityExpanded = 'Az.EventGrid.private\Update-AzEventGridChannel_UpdateViaIdentityExpanded'; + } + if (('UpdateExpanded') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { + $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } + + finally { + $backupTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + $backupInternalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + +} +end { + try { + $steppablePipeline.End() + + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $backupTelemetryId + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $backupInternalCalledCmdlets + if ($preTelemetryId -eq '') { + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.module]::Instance.Telemetry.Invoke('Send', $MyInvocation, $parameterSet, $PSCmdlet) + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $preTelemetryId + + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} +} + +<# +.Synopsis +Update an existing event subscription for a topic. +.Description +Update an existing event subscription for a topic. +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Inputs +Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.IEventGridIdentity +.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. + +FILTERADVANCEDFILTER : An array of advanced filters that are used for filtering event subscriptions. + OperatorType : The operator type used for filtering, e.g., NumberIn, StringContains, BoolEquals and others. + [Key ]: The field/property in the event based on which you want to filter. + +INPUTOBJECT : Identity Parameter + [ChannelName ]: Name of the channel. + [DomainName ]: Name of the domain. + [DomainTopicName ]: Name of the topic. + [EventChannelName ]: Name of the event channel. + [EventSubscriptionName ]: Name of the event subscription. + [Id ]: Resource identity path + [Location ]: Name of the location. + [ParentName ]: The name of the parent resource (namely, either, the topic name, domain name, or partner namespace name). + [ParentType ]: The type of the parent resource. This can be either \'topics\', \'domains\', or \'partnerNamespaces\'. + [PartnerDestinationName ]: Name of the partner destination. + [PartnerNamespaceName ]: Name of the partner namespace. + [PartnerRegistrationName ]: Name of the partner registration. + [PartnerTopicName ]: Name of the partner topic. + [PrivateEndpointConnectionName ]: The name of the private endpoint connection connection. + [PrivateLinkResourceName ]: The name of private link resource. + [ProviderNamespace ]: Namespace of the provider of the topic. + [ResourceGroupName ]: The name of the resource group within the partners subscription. + [ResourceName ]: Name of the resource. + [ResourceTypeName ]: Name of the resource type. + [Scope ]: The scope of the event subscription. The scope can be a subscription, or a resource group, or a top level resource belonging to a resource provider namespace, or an EventGrid topic. For example, use '/subscriptions/{subscriptionId}/' for a subscription, '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}' for a resource group, and '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}' for a resource, and '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.EventGrid/topics/{topicName}' for an EventGrid topic. + [SubscriptionId ]: Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription ID forms part of the URI for every service call. + [SystemTopicName ]: Name of the system topic. + [TopicName ]: Name of the domain topic. + [TopicTypeName ]: Name of the topic type. + [VerifiedPartnerName ]: Name of the verified partner. +.Link +https://docs.microsoft.com/en-us/powershell/module/az.eventgrid/update-azeventgriddomaineventsubscription +#> +function Update-AzEventGridDomainEventSubscription { +[OutputType([System.Boolean])] +[CmdletBinding(DefaultParameterSetName='UpdateExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(ParameterSetName='UpdateExpanded', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [System.String] + # Name of the domain. + ${DomainName}, + + [Parameter(ParameterSetName='UpdateExpanded', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [System.String] + # Name of the event subscription to be updated. + ${EventSubscriptionName}, + + [Parameter(ParameterSetName='UpdateExpanded', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [System.String] + # The name of the resource group within the user's subscription. + ${ResourceGroupName}, + + [Parameter(ParameterSetName='UpdateExpanded')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] + [System.String] + # Subscription credentials that uniquely identify a Microsoft Azure subscription. + # The subscription ID forms part of the URI for every service call. + ${SubscriptionId}, + + [Parameter(ParameterSetName='UpdateViaIdentityExpanded', Mandatory, ValueFromPipeline)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.IEventGridIdentity] + # Identity Parameter + # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + ${InputObject}, + + [Parameter()] + [ArgumentCompleter([Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EventSubscriptionIdentityType])] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EventSubscriptionIdentityType] + # The type of managed identity used. + # The type 'SystemAssigned, UserAssigned' includes both an implicitly created identity and a set of user-assigned identities. + # The type 'None' will remove any identity. + ${DeadLetterWithResourceIdentityType}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [System.String] + # The user identity associated with the resource. + ${DeadLetterWithResourceIdentityUserAssignedIdentity}, + + [Parameter()] + [ArgumentCompleter([Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EndpointType])] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EndpointType] + # Type of the endpoint for the event subscription destination. + ${DeliveryWithResourceIdentityDestinationEndpointType}, + + [Parameter()] + [ArgumentCompleter([Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EventSubscriptionIdentityType])] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EventSubscriptionIdentityType] + # The type of managed identity used. + # The type 'SystemAssigned, UserAssigned' includes both an implicitly created identity and a set of user-assigned identities. + # The type 'None' will remove any identity. + ${DeliveryWithResourceIdentityType}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [System.String] + # The user identity associated with the resource. + ${DeliveryWithResourceIdentityUserAssignedIdentity}, + + [Parameter()] + [ArgumentCompleter([Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EndpointType])] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EndpointType] + # Type of the endpoint for the event subscription destination. + ${EndpointType}, + + [Parameter()] + [ArgumentCompleter([Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EventDeliverySchema])] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EventDeliverySchema] + # The event delivery schema for the event subscription. + ${EventDeliverySchema}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [System.DateTime] + # Information about the expiration time for the event subscription. + ${ExpirationTimeUtc}, + + [Parameter()] + [AllowEmptyCollection()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IAdvancedFilter[]] + # An array of advanced filters that are used for filtering event subscriptions. + # To construct, see NOTES section for FILTERADVANCEDFILTER properties and create a hash table. + ${FilterAdvancedFilter}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [System.Management.Automation.SwitchParameter] + # Allows advanced filters to be evaluated against an array of values instead of expecting a singular value. + ${FilterEnableAdvancedFilteringOnArray}, + + [Parameter()] + [AllowEmptyCollection()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [System.String[]] + # A list of applicable event types that need to be part of the event subscription. + # If it is desired to subscribe to all default event types, set the IncludedEventTypes to null. + ${FilterIncludedEventType}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [System.Management.Automation.SwitchParameter] + # Specifies if the SubjectBeginsWith and SubjectEndsWith properties of the filtershould be compared in a case sensitive manner. + ${FilterIsSubjectCaseSensitive}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [System.String] + # An optional string to filter events for an event subscription based on a resource path prefix.The format of this depends on the publisher of the events.Wildcard characters are not supported in this path. + ${FilterSubjectBeginsWith}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [System.String] + # An optional string to filter events for an event subscription based on a resource path suffix.Wildcard characters are not supported in this path. + ${FilterSubjectEndsWith}, + + [Parameter()] + [AllowEmptyCollection()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [System.String[]] + # List of user defined labels. + ${Label}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [System.Int32] + # Time To Live (in minutes) for events. + ${RetryPolicyEventTimeToLiveInMinute}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [System.Int32] + # Maximum number of delivery retry attempts for events. + ${RetryPolicyMaxDeliveryAttempt}, + + [Parameter()] + [Alias('AzureRMContext', 'AzureCredential')] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Run the command as a job + ${AsJob}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Run the command asynchronously + ${NoWait}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Returns true when the command succeeds + ${PassThru}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + if ($null -eq [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion) { + [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion = $Host.Runspace.Version.ToString() + } + $preTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + if ($preTelemetryId -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId =(New-Guid).ToString() + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.module]::Instance.Telemetry.Invoke('Create', $MyInvocation, $parameterSet, $PSCmdlet) + } else { + $internalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + if ($internalCalledCmdlets -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $MyInvocation.MyCommand.Name + } else { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets += ',' + $MyInvocation.MyCommand.Name + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = 'internal' + } + + $mapping = @{ + UpdateExpanded = 'Az.EventGrid.private\Update-AzEventGridDomainEventSubscription_UpdateExpanded'; + UpdateViaIdentityExpanded = 'Az.EventGrid.private\Update-AzEventGridDomainEventSubscription_UpdateViaIdentityExpanded'; + } + if (('UpdateExpanded') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { + $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } + + finally { + $backupTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + $backupInternalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + +} +end { + try { + $steppablePipeline.End() + + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $backupTelemetryId + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $backupInternalCalledCmdlets + if ($preTelemetryId -eq '') { + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.module]::Instance.Telemetry.Invoke('Send', $MyInvocation, $parameterSet, $PSCmdlet) + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $preTelemetryId + + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} +} + +<# +.Synopsis +Update an existing event subscription for a domain topic. +.Description +Update an existing event subscription for a domain topic. +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Inputs +Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.IEventGridIdentity +.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. + +FILTERADVANCEDFILTER : An array of advanced filters that are used for filtering event subscriptions. + OperatorType : The operator type used for filtering, e.g., NumberIn, StringContains, BoolEquals and others. + [Key ]: The field/property in the event based on which you want to filter. + +INPUTOBJECT : Identity Parameter + [ChannelName ]: Name of the channel. + [DomainName ]: Name of the domain. + [DomainTopicName ]: Name of the topic. + [EventChannelName ]: Name of the event channel. + [EventSubscriptionName ]: Name of the event subscription. + [Id ]: Resource identity path + [Location ]: Name of the location. + [ParentName ]: The name of the parent resource (namely, either, the topic name, domain name, or partner namespace name). + [ParentType ]: The type of the parent resource. This can be either \'topics\', \'domains\', or \'partnerNamespaces\'. + [PartnerDestinationName ]: Name of the partner destination. + [PartnerNamespaceName ]: Name of the partner namespace. + [PartnerRegistrationName ]: Name of the partner registration. + [PartnerTopicName ]: Name of the partner topic. + [PrivateEndpointConnectionName ]: The name of the private endpoint connection connection. + [PrivateLinkResourceName ]: The name of private link resource. + [ProviderNamespace ]: Namespace of the provider of the topic. + [ResourceGroupName ]: The name of the resource group within the partners subscription. + [ResourceName ]: Name of the resource. + [ResourceTypeName ]: Name of the resource type. + [Scope ]: The scope of the event subscription. The scope can be a subscription, or a resource group, or a top level resource belonging to a resource provider namespace, or an EventGrid topic. For example, use '/subscriptions/{subscriptionId}/' for a subscription, '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}' for a resource group, and '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}' for a resource, and '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.EventGrid/topics/{topicName}' for an EventGrid topic. + [SubscriptionId ]: Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription ID forms part of the URI for every service call. + [SystemTopicName ]: Name of the system topic. + [TopicName ]: Name of the domain topic. + [TopicTypeName ]: Name of the topic type. + [VerifiedPartnerName ]: Name of the verified partner. +.Link +https://docs.microsoft.com/en-us/powershell/module/az.eventgrid/update-azeventgriddomaintopiceventsubscription +#> +function Update-AzEventGridDomainTopicEventSubscription { +[OutputType([System.Boolean])] +[CmdletBinding(DefaultParameterSetName='UpdateExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(ParameterSetName='UpdateExpanded', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [System.String] + # Name of the domain. + ${DomainName}, + + [Parameter(ParameterSetName='UpdateExpanded', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [System.String] + # Name of the event subscription to be updated. + ${EventSubscriptionName}, + + [Parameter(ParameterSetName='UpdateExpanded', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [System.String] + # The name of the resource group within the user's subscription. + ${ResourceGroupName}, + + [Parameter(ParameterSetName='UpdateExpanded')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] + [System.String] + # Subscription credentials that uniquely identify a Microsoft Azure subscription. + # The subscription ID forms part of the URI for every service call. + ${SubscriptionId}, + + [Parameter(ParameterSetName='UpdateExpanded', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [System.String] + # Name of the topic. + ${TopicName}, + + [Parameter(ParameterSetName='UpdateViaIdentityExpanded', Mandatory, ValueFromPipeline)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.IEventGridIdentity] + # Identity Parameter + # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + ${InputObject}, + + [Parameter()] + [ArgumentCompleter([Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EventSubscriptionIdentityType])] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EventSubscriptionIdentityType] + # The type of managed identity used. + # The type 'SystemAssigned, UserAssigned' includes both an implicitly created identity and a set of user-assigned identities. + # The type 'None' will remove any identity. + ${DeadLetterWithResourceIdentityType}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [System.String] + # The user identity associated with the resource. + ${DeadLetterWithResourceIdentityUserAssignedIdentity}, + + [Parameter()] + [ArgumentCompleter([Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EndpointType])] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EndpointType] + # Type of the endpoint for the event subscription destination. + ${DeliveryWithResourceIdentityDestinationEndpointType}, + + [Parameter()] + [ArgumentCompleter([Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EventSubscriptionIdentityType])] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EventSubscriptionIdentityType] + # The type of managed identity used. + # The type 'SystemAssigned, UserAssigned' includes both an implicitly created identity and a set of user-assigned identities. + # The type 'None' will remove any identity. + ${DeliveryWithResourceIdentityType}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [System.String] + # The user identity associated with the resource. + ${DeliveryWithResourceIdentityUserAssignedIdentity}, + + [Parameter()] + [ArgumentCompleter([Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EndpointType])] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EndpointType] + # Type of the endpoint for the event subscription destination. + ${EndpointType}, + + [Parameter()] + [ArgumentCompleter([Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EventDeliverySchema])] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EventDeliverySchema] + # The event delivery schema for the event subscription. + ${EventDeliverySchema}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [System.DateTime] + # Information about the expiration time for the event subscription. + ${ExpirationTimeUtc}, + + [Parameter()] + [AllowEmptyCollection()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IAdvancedFilter[]] + # An array of advanced filters that are used for filtering event subscriptions. + # To construct, see NOTES section for FILTERADVANCEDFILTER properties and create a hash table. + ${FilterAdvancedFilter}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [System.Management.Automation.SwitchParameter] + # Allows advanced filters to be evaluated against an array of values instead of expecting a singular value. + ${FilterEnableAdvancedFilteringOnArray}, + + [Parameter()] + [AllowEmptyCollection()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [System.String[]] + # A list of applicable event types that need to be part of the event subscription. + # If it is desired to subscribe to all default event types, set the IncludedEventTypes to null. + ${FilterIncludedEventType}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [System.Management.Automation.SwitchParameter] + # Specifies if the SubjectBeginsWith and SubjectEndsWith properties of the filtershould be compared in a case sensitive manner. + ${FilterIsSubjectCaseSensitive}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [System.String] + # An optional string to filter events for an event subscription based on a resource path prefix.The format of this depends on the publisher of the events.Wildcard characters are not supported in this path. + ${FilterSubjectBeginsWith}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [System.String] + # An optional string to filter events for an event subscription based on a resource path suffix.Wildcard characters are not supported in this path. + ${FilterSubjectEndsWith}, + + [Parameter()] + [AllowEmptyCollection()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [System.String[]] + # List of user defined labels. + ${Label}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [System.Int32] + # Time To Live (in minutes) for events. + ${RetryPolicyEventTimeToLiveInMinute}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [System.Int32] + # Maximum number of delivery retry attempts for events. + ${RetryPolicyMaxDeliveryAttempt}, + + [Parameter()] + [Alias('AzureRMContext', 'AzureCredential')] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Run the command as a job + ${AsJob}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Run the command asynchronously + ${NoWait}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Returns true when the command succeeds + ${PassThru}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + if ($null -eq [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion) { + [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion = $Host.Runspace.Version.ToString() + } + $preTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + if ($preTelemetryId -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId =(New-Guid).ToString() + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.module]::Instance.Telemetry.Invoke('Create', $MyInvocation, $parameterSet, $PSCmdlet) + } else { + $internalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + if ($internalCalledCmdlets -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $MyInvocation.MyCommand.Name + } else { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets += ',' + $MyInvocation.MyCommand.Name + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = 'internal' + } + + $mapping = @{ + UpdateExpanded = 'Az.EventGrid.private\Update-AzEventGridDomainTopicEventSubscription_UpdateExpanded'; + UpdateViaIdentityExpanded = 'Az.EventGrid.private\Update-AzEventGridDomainTopicEventSubscription_UpdateViaIdentityExpanded'; + } + if (('UpdateExpanded') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { + $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } + + finally { + $backupTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + $backupInternalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + +} +end { + try { + $steppablePipeline.End() + + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $backupTelemetryId + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $backupInternalCalledCmdlets + if ($preTelemetryId -eq '') { + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.module]::Instance.Telemetry.Invoke('Send', $MyInvocation, $parameterSet, $PSCmdlet) + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $preTelemetryId + + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} +} + +<# +.Synopsis +Asynchronously updates a domain with the specified parameters. +.Description +Asynchronously updates a domain with the specified parameters. +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Inputs +Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.IEventGridIdentity +.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. + +INBOUNDIPRULE : This can be used to restrict traffic from specific IPs instead of all IPs. Note: These are considered only if PublicNetworkAccess is enabled. + [Action ]: Action to perform based on the match or no match of the IpMask. + [IPMask ]: IP Address in CIDR notation e.g., 10.0.0.0/8. + +INPUTOBJECT : Identity Parameter + [ChannelName ]: Name of the channel. + [DomainName ]: Name of the domain. + [DomainTopicName ]: Name of the topic. + [EventChannelName ]: Name of the event channel. + [EventSubscriptionName ]: Name of the event subscription. + [Id ]: Resource identity path + [Location ]: Name of the location. + [ParentName ]: The name of the parent resource (namely, either, the topic name, domain name, or partner namespace name). + [ParentType ]: The type of the parent resource. This can be either \'topics\', \'domains\', or \'partnerNamespaces\'. + [PartnerDestinationName ]: Name of the partner destination. + [PartnerNamespaceName ]: Name of the partner namespace. + [PartnerRegistrationName ]: Name of the partner registration. + [PartnerTopicName ]: Name of the partner topic. + [PrivateEndpointConnectionName ]: The name of the private endpoint connection connection. + [PrivateLinkResourceName ]: The name of private link resource. + [ProviderNamespace ]: Namespace of the provider of the topic. + [ResourceGroupName ]: The name of the resource group within the partners subscription. + [ResourceName ]: Name of the resource. + [ResourceTypeName ]: Name of the resource type. + [Scope ]: The scope of the event subscription. The scope can be a subscription, or a resource group, or a top level resource belonging to a resource provider namespace, or an EventGrid topic. For example, use '/subscriptions/{subscriptionId}/' for a subscription, '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}' for a resource group, and '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}' for a resource, and '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.EventGrid/topics/{topicName}' for an EventGrid topic. + [SubscriptionId ]: Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription ID forms part of the URI for every service call. + [SystemTopicName ]: Name of the system topic. + [TopicName ]: Name of the domain topic. + [TopicTypeName ]: Name of the topic type. + [VerifiedPartnerName ]: Name of the verified partner. +.Link +https://docs.microsoft.com/en-us/powershell/module/az.eventgrid/update-azeventgriddomain +#> +function Update-AzEventGridDomain { +[OutputType([System.Boolean])] +[CmdletBinding(DefaultParameterSetName='UpdateExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(ParameterSetName='UpdateExpanded', Mandatory)] + [Alias('DomainName')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [System.String] + # Name of the domain. + ${Name}, + + [Parameter(ParameterSetName='UpdateExpanded', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [System.String] + # The name of the resource group within the user's subscription. + ${ResourceGroupName}, + + [Parameter(ParameterSetName='UpdateExpanded')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] + [System.String] + # Subscription credentials that uniquely identify a Microsoft Azure subscription. + # The subscription ID forms part of the URI for every service call. + ${SubscriptionId}, + + [Parameter(ParameterSetName='UpdateViaIdentityExpanded', Mandatory, ValueFromPipeline)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.IEventGridIdentity] + # Identity Parameter + # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + ${InputObject}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [System.Management.Automation.SwitchParameter] + # This Boolean is used to specify the creation mechanism for 'all' the Event Grid Domain Topics associated with this Event Grid Domain resource.In this context, creation of domain topic can be auto-managed (when true) or self-managed (when false). + # The default value for this property is true.When this property is null or set to true, Event Grid is responsible of automatically creating the domain topic when the first event subscription iscreated at the scope of the domain topic. + # If this property is set to false, then creating the first event subscription will require creating a domain topicby the user. + # The self-management mode can be used if the user wants full control of when the domain topic is created, while auto-managed mode provides theflexibility to perform less operations and manage fewer resources by the user. + # Also, note that in auto-managed creation mode, user is allowed to create thedomain topic on demand if needed. + ${AutoCreateTopicWithFirstSubscription}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [System.Management.Automation.SwitchParameter] + # This Boolean is used to specify the deletion mechanism for 'all' the Event Grid Domain Topics associated with this Event Grid Domain resource.In this context, deletion of domain topic can be auto-managed (when true) or self-managed (when false). + # The default value for this property is true.When this property is set to true, Event Grid is responsible of automatically deleting the domain topic when the last event subscription at the scopeof the domain topic is deleted. + # If this property is set to false, then the user needs to manually delete the domain topic when it is no longer needed(e.g., when last event subscription is deleted and the resource needs to be cleaned up). + # The self-management mode can be used if the user wants fullcontrol of when the domain topic needs to be deleted, while auto-managed mode provides the flexibility to perform less operations and manage fewerresources by the user. + ${AutoDeleteTopicWithLastSubscription}, + + [Parameter()] + [ArgumentCompleter([Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.DataResidencyBoundary])] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.DataResidencyBoundary] + # The data residency boundary for the domain. + ${DataResidencyBoundary}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [System.Management.Automation.SwitchParameter] + # This boolean is used to enable or disable local auth. + # Default value is false. + # When the property is set to true, only AAD token will be used to authenticate if user is allowed to publish to the domain. + ${DisableLocalAuth}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [System.String] + # The principal ID of resource identity. + ${IdentityPrincipalId}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [System.String] + # The tenant ID of resource. + ${IdentityTenantId}, + + [Parameter()] + [ArgumentCompleter([Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.IdentityType])] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.IdentityType] + # The type of managed identity used. + # The type 'SystemAssigned, UserAssigned' includes both an implicitly created identity and a set of user-assigned identities. + # The type 'None' will remove any identity. + ${IdentityType}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info(PossibleTypes=([Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IIdentityInfoUserAssignedIdentities]))] + [System.Collections.Hashtable] + # The list of user identities associated with the resource. + # The user identity dictionary key references will be ARM resource ids in the form:'/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ManagedIdentity/userAssignedIdentities/{identityName}'.This property is currently not used and reserved for future usage. + ${IdentityUserAssignedIdentity}, + + [Parameter()] + [AllowEmptyCollection()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IInboundIPRule[]] + # This can be used to restrict traffic from specific IPs instead of all IPs. + # Note: These are considered only if PublicNetworkAccess is enabled. + # To construct, see NOTES section for INBOUNDIPRULE properties and create a hash table. + ${InboundIPRule}, + + [Parameter()] + [ArgumentCompleter([Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.PublicNetworkAccess])] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.PublicNetworkAccess] + # This determines if traffic is allowed over public network. + # By default it is enabled. + # You can further restrict to specific IPs by configuring + ${PublicNetworkAccess}, + + [Parameter()] + [ArgumentCompleter([Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.Sku])] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.Sku] + # The Sku name of the resource. + # The possible values are: Basic or Premium. + ${SkuName}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info(PossibleTypes=([Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDomainUpdateParametersTags]))] + [System.Collections.Hashtable] + # Tags of the domains resource. + ${Tag}, + + [Parameter()] + [Alias('AzureRMContext', 'AzureCredential')] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Run the command as a job + ${AsJob}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Run the command asynchronously + ${NoWait}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Returns true when the command succeeds + ${PassThru}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + if ($null -eq [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion) { + [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion = $Host.Runspace.Version.ToString() + } + $preTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + if ($preTelemetryId -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId =(New-Guid).ToString() + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.module]::Instance.Telemetry.Invoke('Create', $MyInvocation, $parameterSet, $PSCmdlet) + } else { + $internalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + if ($internalCalledCmdlets -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $MyInvocation.MyCommand.Name + } else { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets += ',' + $MyInvocation.MyCommand.Name + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = 'internal' + } + + $mapping = @{ + UpdateExpanded = 'Az.EventGrid.private\Update-AzEventGridDomain_UpdateExpanded'; + UpdateViaIdentityExpanded = 'Az.EventGrid.private\Update-AzEventGridDomain_UpdateViaIdentityExpanded'; + } + if (('UpdateExpanded') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { + $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } + + finally { + $backupTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + $backupInternalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + +} +end { + try { + $steppablePipeline.End() + + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $backupTelemetryId + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $backupInternalCalledCmdlets + if ($preTelemetryId -eq '') { + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.module]::Instance.Telemetry.Invoke('Send', $MyInvocation, $parameterSet, $PSCmdlet) + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $preTelemetryId + + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} +} + +<# +.Synopsis +Asynchronously updates an existing event subscription. +.Description +Asynchronously updates an existing event subscription. +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Inputs +Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.IEventGridIdentity +.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. + +FILTERADVANCEDFILTER : An array of advanced filters that are used for filtering event subscriptions. + OperatorType : The operator type used for filtering, e.g., NumberIn, StringContains, BoolEquals and others. + [Key ]: The field/property in the event based on which you want to filter. + +INPUTOBJECT : Identity Parameter + [ChannelName ]: Name of the channel. + [DomainName ]: Name of the domain. + [DomainTopicName ]: Name of the topic. + [EventChannelName ]: Name of the event channel. + [EventSubscriptionName ]: Name of the event subscription. + [Id ]: Resource identity path + [Location ]: Name of the location. + [ParentName ]: The name of the parent resource (namely, either, the topic name, domain name, or partner namespace name). + [ParentType ]: The type of the parent resource. This can be either \'topics\', \'domains\', or \'partnerNamespaces\'. + [PartnerDestinationName ]: Name of the partner destination. + [PartnerNamespaceName ]: Name of the partner namespace. + [PartnerRegistrationName ]: Name of the partner registration. + [PartnerTopicName ]: Name of the partner topic. + [PrivateEndpointConnectionName ]: The name of the private endpoint connection connection. + [PrivateLinkResourceName ]: The name of private link resource. + [ProviderNamespace ]: Namespace of the provider of the topic. + [ResourceGroupName ]: The name of the resource group within the partners subscription. + [ResourceName ]: Name of the resource. + [ResourceTypeName ]: Name of the resource type. + [Scope ]: The scope of the event subscription. The scope can be a subscription, or a resource group, or a top level resource belonging to a resource provider namespace, or an EventGrid topic. For example, use '/subscriptions/{subscriptionId}/' for a subscription, '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}' for a resource group, and '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}' for a resource, and '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.EventGrid/topics/{topicName}' for an EventGrid topic. + [SubscriptionId ]: Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription ID forms part of the URI for every service call. + [SystemTopicName ]: Name of the system topic. + [TopicName ]: Name of the domain topic. + [TopicTypeName ]: Name of the topic type. + [VerifiedPartnerName ]: Name of the verified partner. +.Link +https://docs.microsoft.com/en-us/powershell/module/az.eventgrid/update-azeventgrideventsubscription +#> +function Update-AzEventGridEventSubscription { +[OutputType([System.Boolean])] +[CmdletBinding(DefaultParameterSetName='UpdateExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(ParameterSetName='UpdateExpanded', Mandatory)] + [Alias('EventSubscriptionName')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [System.String] + # Name of the event subscription to be updated. + ${Name}, + + [Parameter(ParameterSetName='UpdateExpanded', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [System.String] + # The scope of existing event subscription. + # The scope can be a subscription, or a resource group, or a top level resource belonging to a resource provider namespace, or an EventGrid topic. + # For example, use '/subscriptions/{subscriptionId}/' for a subscription, '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}' for a resource group, and '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}' for a resource, and '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.EventGrid/topics/{topicName}' for an EventGrid topic. + ${Scope}, + + [Parameter(ParameterSetName='UpdateViaIdentityExpanded', Mandatory, ValueFromPipeline)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.IEventGridIdentity] + # Identity Parameter + # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + ${InputObject}, + + [Parameter()] + [ArgumentCompleter([Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EventSubscriptionIdentityType])] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EventSubscriptionIdentityType] + # The type of managed identity used. + # The type 'SystemAssigned, UserAssigned' includes both an implicitly created identity and a set of user-assigned identities. + # The type 'None' will remove any identity. + ${DeadLetterWithResourceIdentityType}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [System.String] + # The user identity associated with the resource. + ${DeadLetterWithResourceIdentityUserAssignedIdentity}, + + [Parameter()] + [ArgumentCompleter([Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EndpointType])] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EndpointType] + # Type of the endpoint for the event subscription destination. + ${DeliveryWithResourceIdentityDestinationEndpointType}, + + [Parameter()] + [ArgumentCompleter([Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EventSubscriptionIdentityType])] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EventSubscriptionIdentityType] + # The type of managed identity used. + # The type 'SystemAssigned, UserAssigned' includes both an implicitly created identity and a set of user-assigned identities. + # The type 'None' will remove any identity. + ${DeliveryWithResourceIdentityType}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [System.String] + # The user identity associated with the resource. + ${DeliveryWithResourceIdentityUserAssignedIdentity}, + + [Parameter()] + [ArgumentCompleter([Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EndpointType])] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EndpointType] + # Type of the endpoint for the event subscription destination. + ${EndpointType}, + + [Parameter()] + [ArgumentCompleter([Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EventDeliverySchema])] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EventDeliverySchema] + # The event delivery schema for the event subscription. + ${EventDeliverySchema}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [System.DateTime] + # Information about the expiration time for the event subscription. + ${ExpirationTimeUtc}, + + [Parameter()] + [AllowEmptyCollection()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IAdvancedFilter[]] + # An array of advanced filters that are used for filtering event subscriptions. + # To construct, see NOTES section for FILTERADVANCEDFILTER properties and create a hash table. + ${FilterAdvancedFilter}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [System.Management.Automation.SwitchParameter] + # Allows advanced filters to be evaluated against an array of values instead of expecting a singular value. + ${FilterEnableAdvancedFilteringOnArray}, + + [Parameter()] + [AllowEmptyCollection()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [System.String[]] + # A list of applicable event types that need to be part of the event subscription. + # If it is desired to subscribe to all default event types, set the IncludedEventTypes to null. + ${FilterIncludedEventType}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [System.Management.Automation.SwitchParameter] + # Specifies if the SubjectBeginsWith and SubjectEndsWith properties of the filtershould be compared in a case sensitive manner. + ${FilterIsSubjectCaseSensitive}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [System.String] + # An optional string to filter events for an event subscription based on a resource path prefix.The format of this depends on the publisher of the events.Wildcard characters are not supported in this path. + ${FilterSubjectBeginsWith}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [System.String] + # An optional string to filter events for an event subscription based on a resource path suffix.Wildcard characters are not supported in this path. + ${FilterSubjectEndsWith}, + + [Parameter()] + [AllowEmptyCollection()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [System.String[]] + # List of user defined labels. + ${Label}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [System.Int32] + # Time To Live (in minutes) for events. + ${RetryPolicyEventTimeToLiveInMinute}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [System.Int32] + # Maximum number of delivery retry attempts for events. + ${RetryPolicyMaxDeliveryAttempt}, + + [Parameter()] + [Alias('AzureRMContext', 'AzureCredential')] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Run the command as a job + ${AsJob}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Run the command asynchronously + ${NoWait}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Returns true when the command succeeds + ${PassThru}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + if ($null -eq [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion) { + [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion = $Host.Runspace.Version.ToString() + } + $preTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + if ($preTelemetryId -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId =(New-Guid).ToString() + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.module]::Instance.Telemetry.Invoke('Create', $MyInvocation, $parameterSet, $PSCmdlet) + } else { + $internalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + if ($internalCalledCmdlets -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $MyInvocation.MyCommand.Name + } else { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets += ',' + $MyInvocation.MyCommand.Name + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = 'internal' + } + + $mapping = @{ + UpdateExpanded = 'Az.EventGrid.private\Update-AzEventGridEventSubscription_UpdateExpanded'; + UpdateViaIdentityExpanded = 'Az.EventGrid.private\Update-AzEventGridEventSubscription_UpdateViaIdentityExpanded'; + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } + + finally { + $backupTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + $backupInternalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + +} +end { + try { + $steppablePipeline.End() + + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $backupTelemetryId + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $backupInternalCalledCmdlets + if ($preTelemetryId -eq '') { + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.module]::Instance.Telemetry.Invoke('Send', $MyInvocation, $parameterSet, $PSCmdlet) + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $preTelemetryId + + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} +} + +<# +.Synopsis +Synchronously updates a partner configuration with the specified parameters. +.Description +Synchronously updates a partner configuration with the specified parameters. +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Inputs +Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.IEventGridIdentity +.Outputs +Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerConfiguration +.Notes +COMPLEX PARAMETER PROPERTIES + +To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. + +INPUTOBJECT : Identity Parameter + [ChannelName ]: Name of the channel. + [DomainName ]: Name of the domain. + [DomainTopicName ]: Name of the topic. + [EventChannelName ]: Name of the event channel. + [EventSubscriptionName ]: Name of the event subscription. + [Id ]: Resource identity path + [Location ]: Name of the location. + [ParentName ]: The name of the parent resource (namely, either, the topic name, domain name, or partner namespace name). + [ParentType ]: The type of the parent resource. This can be either \'topics\', \'domains\', or \'partnerNamespaces\'. + [PartnerDestinationName ]: Name of the partner destination. + [PartnerNamespaceName ]: Name of the partner namespace. + [PartnerRegistrationName ]: Name of the partner registration. + [PartnerTopicName ]: Name of the partner topic. + [PrivateEndpointConnectionName ]: The name of the private endpoint connection connection. + [PrivateLinkResourceName ]: The name of private link resource. + [ProviderNamespace ]: Namespace of the provider of the topic. + [ResourceGroupName ]: The name of the resource group within the partners subscription. + [ResourceName ]: Name of the resource. + [ResourceTypeName ]: Name of the resource type. + [Scope ]: The scope of the event subscription. The scope can be a subscription, or a resource group, or a top level resource belonging to a resource provider namespace, or an EventGrid topic. For example, use '/subscriptions/{subscriptionId}/' for a subscription, '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}' for a resource group, and '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}' for a resource, and '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.EventGrid/topics/{topicName}' for an EventGrid topic. + [SubscriptionId ]: Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription ID forms part of the URI for every service call. + [SystemTopicName ]: Name of the system topic. + [TopicName ]: Name of the domain topic. + [TopicTypeName ]: Name of the topic type. + [VerifiedPartnerName ]: Name of the verified partner. +.Link +https://docs.microsoft.com/en-us/powershell/module/az.eventgrid/update-azeventgridpartnerconfiguration +#> +function Update-AzEventGridPartnerConfiguration { +[OutputType([Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerConfiguration])] +[CmdletBinding(DefaultParameterSetName='UpdateExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(ParameterSetName='UpdateExpanded', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [System.String] + # The name of the resource group within the user's subscription. + ${ResourceGroupName}, + + [Parameter(ParameterSetName='UpdateExpanded')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] + [System.String] + # Subscription credentials that uniquely identify a Microsoft Azure subscription. + # The subscription ID forms part of the URI for every service call. + ${SubscriptionId}, + + [Parameter(ParameterSetName='UpdateViaIdentityExpanded', Mandatory, ValueFromPipeline)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.IEventGridIdentity] + # Identity Parameter + # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + ${InputObject}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [System.Int32] + # The default time used to validate the maximum expiration time for each authorized partners in days. + # Allowed values ar between 1 and 365 days. + ${DefaultMaximumExpirationTimeInDay}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info(PossibleTypes=([Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerConfigurationUpdateParametersTags]))] + [System.Collections.Hashtable] + # Tags of the partner configuration resource. + ${Tag}, + + [Parameter()] + [Alias('AzureRMContext', 'AzureCredential')] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Run the command as a job + ${AsJob}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Run the command asynchronously + ${NoWait}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Returns true when the command succeeds + ${PassThru}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + if ($null -eq [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion) { + [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion = $Host.Runspace.Version.ToString() + } + $preTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + if ($preTelemetryId -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId =(New-Guid).ToString() + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.module]::Instance.Telemetry.Invoke('Create', $MyInvocation, $parameterSet, $PSCmdlet) + } else { + $internalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + if ($internalCalledCmdlets -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $MyInvocation.MyCommand.Name + } else { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets += ',' + $MyInvocation.MyCommand.Name + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = 'internal' + } + + $mapping = @{ + UpdateExpanded = 'Az.EventGrid.private\Update-AzEventGridPartnerConfiguration_UpdateExpanded'; + UpdateViaIdentityExpanded = 'Az.EventGrid.private\Update-AzEventGridPartnerConfiguration_UpdateViaIdentityExpanded'; + } + if (('UpdateExpanded') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { + $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } + + finally { + $backupTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + $backupInternalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + +} +end { + try { + $steppablePipeline.End() + + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $backupTelemetryId + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $backupInternalCalledCmdlets + if ($preTelemetryId -eq '') { + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.module]::Instance.Telemetry.Invoke('Send', $MyInvocation, $parameterSet, $PSCmdlet) + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $preTelemetryId + + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} +} + +<# +.Synopsis +Asynchronously updates a partner destination with the specified parameters. +.Description +Asynchronously updates a partner destination with the specified parameters. +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Inputs +Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.IEventGridIdentity +.Outputs +Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerDestination +.Notes +COMPLEX PARAMETER PROPERTIES + +To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. + +INPUTOBJECT : Identity Parameter + [ChannelName ]: Name of the channel. + [DomainName ]: Name of the domain. + [DomainTopicName ]: Name of the topic. + [EventChannelName ]: Name of the event channel. + [EventSubscriptionName ]: Name of the event subscription. + [Id ]: Resource identity path + [Location ]: Name of the location. + [ParentName ]: The name of the parent resource (namely, either, the topic name, domain name, or partner namespace name). + [ParentType ]: The type of the parent resource. This can be either \'topics\', \'domains\', or \'partnerNamespaces\'. + [PartnerDestinationName ]: Name of the partner destination. + [PartnerNamespaceName ]: Name of the partner namespace. + [PartnerRegistrationName ]: Name of the partner registration. + [PartnerTopicName ]: Name of the partner topic. + [PrivateEndpointConnectionName ]: The name of the private endpoint connection connection. + [PrivateLinkResourceName ]: The name of private link resource. + [ProviderNamespace ]: Namespace of the provider of the topic. + [ResourceGroupName ]: The name of the resource group within the partners subscription. + [ResourceName ]: Name of the resource. + [ResourceTypeName ]: Name of the resource type. + [Scope ]: The scope of the event subscription. The scope can be a subscription, or a resource group, or a top level resource belonging to a resource provider namespace, or an EventGrid topic. For example, use '/subscriptions/{subscriptionId}/' for a subscription, '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}' for a resource group, and '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}' for a resource, and '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.EventGrid/topics/{topicName}' for an EventGrid topic. + [SubscriptionId ]: Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription ID forms part of the URI for every service call. + [SystemTopicName ]: Name of the system topic. + [TopicName ]: Name of the domain topic. + [TopicTypeName ]: Name of the topic type. + [VerifiedPartnerName ]: Name of the verified partner. +.Link +https://docs.microsoft.com/en-us/powershell/module/az.eventgrid/update-azeventgridpartnerdestination +#> +function Update-AzEventGridPartnerDestination { +[OutputType([Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerDestination])] +[CmdletBinding(DefaultParameterSetName='UpdateExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(ParameterSetName='UpdateExpanded', Mandatory)] + [Alias('PartnerDestinationName')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [System.String] + # Name of the partner destination. + ${Name}, + + [Parameter(ParameterSetName='UpdateExpanded', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [System.String] + # The name of the resource group within the user's subscription. + ${ResourceGroupName}, + + [Parameter(ParameterSetName='UpdateExpanded')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] + [System.String] + # Subscription credentials that uniquely identify a Microsoft Azure subscription. + # The subscription ID forms part of the URI for every service call. + ${SubscriptionId}, + + [Parameter(ParameterSetName='UpdateViaIdentityExpanded', Mandatory, ValueFromPipeline)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.IEventGridIdentity] + # Identity Parameter + # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + ${InputObject}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info(PossibleTypes=([Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerDestinationUpdateParametersTags]))] + [System.Collections.Hashtable] + # Tags of the Partner Destination resource. + ${Tag}, + + [Parameter()] + [Alias('AzureRMContext', 'AzureCredential')] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Returns true when the command succeeds + ${PassThru}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + if ($null -eq [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion) { + [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion = $Host.Runspace.Version.ToString() + } + $preTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + if ($preTelemetryId -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId =(New-Guid).ToString() + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.module]::Instance.Telemetry.Invoke('Create', $MyInvocation, $parameterSet, $PSCmdlet) + } else { + $internalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + if ($internalCalledCmdlets -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $MyInvocation.MyCommand.Name + } else { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets += ',' + $MyInvocation.MyCommand.Name + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = 'internal' + } + + $mapping = @{ + UpdateExpanded = 'Az.EventGrid.private\Update-AzEventGridPartnerDestination_UpdateExpanded'; + UpdateViaIdentityExpanded = 'Az.EventGrid.private\Update-AzEventGridPartnerDestination_UpdateViaIdentityExpanded'; + } + if (('UpdateExpanded') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { + $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } + + finally { + $backupTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + $backupInternalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + +} +end { + try { + $steppablePipeline.End() + + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $backupTelemetryId + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $backupInternalCalledCmdlets + if ($preTelemetryId -eq '') { + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.module]::Instance.Telemetry.Invoke('Send', $MyInvocation, $parameterSet, $PSCmdlet) + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $preTelemetryId + + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} +} + +<# +.Synopsis +Asynchronously updates a partner namespace with the specified parameters. +.Description +Asynchronously updates a partner namespace with the specified parameters. +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Inputs +Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.IEventGridIdentity +.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. + +INBOUNDIPRULE : This can be used to restrict traffic from specific IPs instead of all IPs. Note: These are considered only if PublicNetworkAccess is enabled. + [Action ]: Action to perform based on the match or no match of the IpMask. + [IPMask ]: IP Address in CIDR notation e.g., 10.0.0.0/8. + +INPUTOBJECT : Identity Parameter + [ChannelName ]: Name of the channel. + [DomainName ]: Name of the domain. + [DomainTopicName ]: Name of the topic. + [EventChannelName ]: Name of the event channel. + [EventSubscriptionName ]: Name of the event subscription. + [Id ]: Resource identity path + [Location ]: Name of the location. + [ParentName ]: The name of the parent resource (namely, either, the topic name, domain name, or partner namespace name). + [ParentType ]: The type of the parent resource. This can be either \'topics\', \'domains\', or \'partnerNamespaces\'. + [PartnerDestinationName ]: Name of the partner destination. + [PartnerNamespaceName ]: Name of the partner namespace. + [PartnerRegistrationName ]: Name of the partner registration. + [PartnerTopicName ]: Name of the partner topic. + [PrivateEndpointConnectionName ]: The name of the private endpoint connection connection. + [PrivateLinkResourceName ]: The name of private link resource. + [ProviderNamespace ]: Namespace of the provider of the topic. + [ResourceGroupName ]: The name of the resource group within the partners subscription. + [ResourceName ]: Name of the resource. + [ResourceTypeName ]: Name of the resource type. + [Scope ]: The scope of the event subscription. The scope can be a subscription, or a resource group, or a top level resource belonging to a resource provider namespace, or an EventGrid topic. For example, use '/subscriptions/{subscriptionId}/' for a subscription, '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}' for a resource group, and '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}' for a resource, and '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.EventGrid/topics/{topicName}' for an EventGrid topic. + [SubscriptionId ]: Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription ID forms part of the URI for every service call. + [SystemTopicName ]: Name of the system topic. + [TopicName ]: Name of the domain topic. + [TopicTypeName ]: Name of the topic type. + [VerifiedPartnerName ]: Name of the verified partner. +.Link +https://docs.microsoft.com/en-us/powershell/module/az.eventgrid/update-azeventgridpartnernamespace +#> +function Update-AzEventGridPartnerNamespace { +[OutputType([System.Boolean])] +[CmdletBinding(DefaultParameterSetName='UpdateExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(ParameterSetName='UpdateExpanded', Mandatory)] + [Alias('PartnerNamespaceName')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [System.String] + # Name of the partner namespace. + ${Name}, + + [Parameter(ParameterSetName='UpdateExpanded', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [System.String] + # The name of the resource group within the user's subscription. + ${ResourceGroupName}, + + [Parameter(ParameterSetName='UpdateExpanded')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] + [System.String] + # Subscription credentials that uniquely identify a Microsoft Azure subscription. + # The subscription ID forms part of the URI for every service call. + ${SubscriptionId}, + + [Parameter(ParameterSetName='UpdateViaIdentityExpanded', Mandatory, ValueFromPipeline)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.IEventGridIdentity] + # Identity Parameter + # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + ${InputObject}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [System.Management.Automation.SwitchParameter] + # This boolean is used to enable or disable local auth. + # Default value is false. + # When the property is set to true, only AAD token will be used to authenticate if user is allowed to publish to the partner namespace. + ${DisableLocalAuth}, + + [Parameter()] + [AllowEmptyCollection()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IInboundIPRule[]] + # This can be used to restrict traffic from specific IPs instead of all IPs. + # Note: These are considered only if PublicNetworkAccess is enabled. + # To construct, see NOTES section for INBOUNDIPRULE properties and create a hash table. + ${InboundIPRule}, + + [Parameter()] + [ArgumentCompleter([Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.PublicNetworkAccess])] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.PublicNetworkAccess] + # This determines if traffic is allowed over public network. + # By default it is enabled. + # You can further restrict to specific IPs by configuring + ${PublicNetworkAccess}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info(PossibleTypes=([Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerNamespaceUpdateParametersTags]))] + [System.Collections.Hashtable] + # Tags of the Partner Namespace. + ${Tag}, + + [Parameter()] + [Alias('AzureRMContext', 'AzureCredential')] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Run the command as a job + ${AsJob}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Run the command asynchronously + ${NoWait}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Returns true when the command succeeds + ${PassThru}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + if ($null -eq [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion) { + [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion = $Host.Runspace.Version.ToString() + } + $preTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + if ($preTelemetryId -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId =(New-Guid).ToString() + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.module]::Instance.Telemetry.Invoke('Create', $MyInvocation, $parameterSet, $PSCmdlet) + } else { + $internalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + if ($internalCalledCmdlets -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $MyInvocation.MyCommand.Name + } else { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets += ',' + $MyInvocation.MyCommand.Name + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = 'internal' + } + + $mapping = @{ + UpdateExpanded = 'Az.EventGrid.private\Update-AzEventGridPartnerNamespace_UpdateExpanded'; + UpdateViaIdentityExpanded = 'Az.EventGrid.private\Update-AzEventGridPartnerNamespace_UpdateViaIdentityExpanded'; + } + if (('UpdateExpanded') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { + $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } + + finally { + $backupTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + $backupInternalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + +} +end { + try { + $steppablePipeline.End() + + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $backupTelemetryId + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $backupInternalCalledCmdlets + if ($preTelemetryId -eq '') { + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.module]::Instance.Telemetry.Invoke('Send', $MyInvocation, $parameterSet, $PSCmdlet) + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $preTelemetryId + + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} +} + +<# +.Synopsis +Updates a partner registration with the specified parameters. +.Description +Updates a partner registration with the specified parameters. +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Inputs +Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.IEventGridIdentity +.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 + [ChannelName ]: Name of the channel. + [DomainName ]: Name of the domain. + [DomainTopicName ]: Name of the topic. + [EventChannelName ]: Name of the event channel. + [EventSubscriptionName ]: Name of the event subscription. + [Id ]: Resource identity path + [Location ]: Name of the location. + [ParentName ]: The name of the parent resource (namely, either, the topic name, domain name, or partner namespace name). + [ParentType ]: The type of the parent resource. This can be either \'topics\', \'domains\', or \'partnerNamespaces\'. + [PartnerDestinationName ]: Name of the partner destination. + [PartnerNamespaceName ]: Name of the partner namespace. + [PartnerRegistrationName ]: Name of the partner registration. + [PartnerTopicName ]: Name of the partner topic. + [PrivateEndpointConnectionName ]: The name of the private endpoint connection connection. + [PrivateLinkResourceName ]: The name of private link resource. + [ProviderNamespace ]: Namespace of the provider of the topic. + [ResourceGroupName ]: The name of the resource group within the partners subscription. + [ResourceName ]: Name of the resource. + [ResourceTypeName ]: Name of the resource type. + [Scope ]: The scope of the event subscription. The scope can be a subscription, or a resource group, or a top level resource belonging to a resource provider namespace, or an EventGrid topic. For example, use '/subscriptions/{subscriptionId}/' for a subscription, '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}' for a resource group, and '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}' for a resource, and '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.EventGrid/topics/{topicName}' for an EventGrid topic. + [SubscriptionId ]: Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription ID forms part of the URI for every service call. + [SystemTopicName ]: Name of the system topic. + [TopicName ]: Name of the domain topic. + [TopicTypeName ]: Name of the topic type. + [VerifiedPartnerName ]: Name of the verified partner. +.Link +https://docs.microsoft.com/en-us/powershell/module/az.eventgrid/update-azeventgridpartnerregistration +#> +function Update-AzEventGridPartnerRegistration { +[OutputType([System.Boolean])] +[CmdletBinding(DefaultParameterSetName='UpdateExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(ParameterSetName='UpdateExpanded', Mandatory)] + [Alias('PartnerRegistrationName')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [System.String] + # Name of the partner registration. + ${Name}, + + [Parameter(ParameterSetName='UpdateExpanded', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [System.String] + # The name of the resource group within the user's subscription. + ${ResourceGroupName}, + + [Parameter(ParameterSetName='UpdateExpanded')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] + [System.String] + # Subscription credentials that uniquely identify a Microsoft Azure subscription. + # The subscription ID forms part of the URI for every service call. + ${SubscriptionId}, + + [Parameter(ParameterSetName='UpdateViaIdentityExpanded', Mandatory, ValueFromPipeline)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.IEventGridIdentity] + # Identity Parameter + # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + ${InputObject}, + + [Parameter()] + [AllowEmptyCollection()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [System.String[]] + # List of IDs of Azure AD applications that are authorized to create a partner namespaceassociated with this partner registration. + # This is an optional property. + # Creatingpartner namespaces is always permitted under the same Azure subscription as the one usedfor creating the partner registration. + ${AuthorizedAzureSubscriptionId}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [System.String] + # URI of the partner logo. + ${LogoUri}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [System.String] + # Description of the partner topic type. + ${PartnerTopicTypeDescription}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [System.String] + # Display name of the partner topic type. + ${PartnerTopicTypeDisplayName}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [System.String] + # Name of the partner topic type. + ${PartnerTopicTypeName}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [System.String] + # URI of the partner website that can be used by Azure customers to setup Event Gridintegration on an event source. + ${SetupUri}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info(PossibleTypes=([Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerRegistrationUpdateParametersTags]))] + [System.Collections.Hashtable] + # Tags of the partner registration resource. + ${Tag}, + + [Parameter()] + [Alias('AzureRMContext', 'AzureCredential')] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Run the command as a job + ${AsJob}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Run the command asynchronously + ${NoWait}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Returns true when the command succeeds + ${PassThru}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + if ($null -eq [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion) { + [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion = $Host.Runspace.Version.ToString() + } + $preTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + if ($preTelemetryId -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId =(New-Guid).ToString() + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.module]::Instance.Telemetry.Invoke('Create', $MyInvocation, $parameterSet, $PSCmdlet) + } else { + $internalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + if ($internalCalledCmdlets -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $MyInvocation.MyCommand.Name + } else { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets += ',' + $MyInvocation.MyCommand.Name + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = 'internal' + } + + $mapping = @{ + UpdateExpanded = 'Az.EventGrid.private\Update-AzEventGridPartnerRegistration_UpdateExpanded'; + UpdateViaIdentityExpanded = 'Az.EventGrid.private\Update-AzEventGridPartnerRegistration_UpdateViaIdentityExpanded'; + } + if (('UpdateExpanded') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { + $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } + + finally { + $backupTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + $backupInternalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + +} +end { + try { + $steppablePipeline.End() + + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $backupTelemetryId + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $backupInternalCalledCmdlets + if ($preTelemetryId -eq '') { + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.module]::Instance.Telemetry.Invoke('Send', $MyInvocation, $parameterSet, $PSCmdlet) + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $preTelemetryId + + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} +} + +<# +.Synopsis +Update an existing event subscription of a partner topic. +.Description +Update an existing event subscription of a partner topic. +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Inputs +Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.IEventGridIdentity +.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. + +FILTERADVANCEDFILTER : An array of advanced filters that are used for filtering event subscriptions. + OperatorType : The operator type used for filtering, e.g., NumberIn, StringContains, BoolEquals and others. + [Key ]: The field/property in the event based on which you want to filter. + +INPUTOBJECT : Identity Parameter + [ChannelName ]: Name of the channel. + [DomainName ]: Name of the domain. + [DomainTopicName ]: Name of the topic. + [EventChannelName ]: Name of the event channel. + [EventSubscriptionName ]: Name of the event subscription. + [Id ]: Resource identity path + [Location ]: Name of the location. + [ParentName ]: The name of the parent resource (namely, either, the topic name, domain name, or partner namespace name). + [ParentType ]: The type of the parent resource. This can be either \'topics\', \'domains\', or \'partnerNamespaces\'. + [PartnerDestinationName ]: Name of the partner destination. + [PartnerNamespaceName ]: Name of the partner namespace. + [PartnerRegistrationName ]: Name of the partner registration. + [PartnerTopicName ]: Name of the partner topic. + [PrivateEndpointConnectionName ]: The name of the private endpoint connection connection. + [PrivateLinkResourceName ]: The name of private link resource. + [ProviderNamespace ]: Namespace of the provider of the topic. + [ResourceGroupName ]: The name of the resource group within the partners subscription. + [ResourceName ]: Name of the resource. + [ResourceTypeName ]: Name of the resource type. + [Scope ]: The scope of the event subscription. The scope can be a subscription, or a resource group, or a top level resource belonging to a resource provider namespace, or an EventGrid topic. For example, use '/subscriptions/{subscriptionId}/' for a subscription, '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}' for a resource group, and '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}' for a resource, and '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.EventGrid/topics/{topicName}' for an EventGrid topic. + [SubscriptionId ]: Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription ID forms part of the URI for every service call. + [SystemTopicName ]: Name of the system topic. + [TopicName ]: Name of the domain topic. + [TopicTypeName ]: Name of the topic type. + [VerifiedPartnerName ]: Name of the verified partner. +.Link +https://docs.microsoft.com/en-us/powershell/module/az.eventgrid/update-azeventgridpartnertopiceventsubscription +#> +function Update-AzEventGridPartnerTopicEventSubscription { +[OutputType([System.Boolean])] +[CmdletBinding(DefaultParameterSetName='UpdateExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(ParameterSetName='UpdateExpanded', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [System.String] + # Name of the event subscription to be created. + # Event subscription names must be between 3 and 100 characters in length and use alphanumeric letters only. + ${EventSubscriptionName}, + + [Parameter(ParameterSetName='UpdateExpanded', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [System.String] + # Name of the partner topic. + ${PartnerTopicName}, + + [Parameter(ParameterSetName='UpdateExpanded', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [System.String] + # The name of the resource group within the user's subscription. + ${ResourceGroupName}, + + [Parameter(ParameterSetName='UpdateExpanded')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] + [System.String] + # Subscription credentials that uniquely identify a Microsoft Azure subscription. + # The subscription ID forms part of the URI for every service call. + ${SubscriptionId}, + + [Parameter(ParameterSetName='UpdateViaIdentityExpanded', Mandatory, ValueFromPipeline)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.IEventGridIdentity] + # Identity Parameter + # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + ${InputObject}, + + [Parameter()] + [ArgumentCompleter([Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EventSubscriptionIdentityType])] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EventSubscriptionIdentityType] + # The type of managed identity used. + # The type 'SystemAssigned, UserAssigned' includes both an implicitly created identity and a set of user-assigned identities. + # The type 'None' will remove any identity. + ${DeadLetterWithResourceIdentityType}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [System.String] + # The user identity associated with the resource. + ${DeadLetterWithResourceIdentityUserAssignedIdentity}, + + [Parameter()] + [ArgumentCompleter([Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EndpointType])] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EndpointType] + # Type of the endpoint for the event subscription destination. + ${DeliveryWithResourceIdentityDestinationEndpointType}, + + [Parameter()] + [ArgumentCompleter([Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EventSubscriptionIdentityType])] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EventSubscriptionIdentityType] + # The type of managed identity used. + # The type 'SystemAssigned, UserAssigned' includes both an implicitly created identity and a set of user-assigned identities. + # The type 'None' will remove any identity. + ${DeliveryWithResourceIdentityType}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [System.String] + # The user identity associated with the resource. + ${DeliveryWithResourceIdentityUserAssignedIdentity}, + + [Parameter()] + [ArgumentCompleter([Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EndpointType])] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EndpointType] + # Type of the endpoint for the event subscription destination. + ${EndpointType}, + + [Parameter()] + [ArgumentCompleter([Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EventDeliverySchema])] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EventDeliverySchema] + # The event delivery schema for the event subscription. + ${EventDeliverySchema}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [System.DateTime] + # Information about the expiration time for the event subscription. + ${ExpirationTimeUtc}, + + [Parameter()] + [AllowEmptyCollection()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IAdvancedFilter[]] + # An array of advanced filters that are used for filtering event subscriptions. + # To construct, see NOTES section for FILTERADVANCEDFILTER properties and create a hash table. + ${FilterAdvancedFilter}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [System.Management.Automation.SwitchParameter] + # Allows advanced filters to be evaluated against an array of values instead of expecting a singular value. + ${FilterEnableAdvancedFilteringOnArray}, + + [Parameter()] + [AllowEmptyCollection()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [System.String[]] + # A list of applicable event types that need to be part of the event subscription. + # If it is desired to subscribe to all default event types, set the IncludedEventTypes to null. + ${FilterIncludedEventType}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [System.Management.Automation.SwitchParameter] + # Specifies if the SubjectBeginsWith and SubjectEndsWith properties of the filtershould be compared in a case sensitive manner. + ${FilterIsSubjectCaseSensitive}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [System.String] + # An optional string to filter events for an event subscription based on a resource path prefix.The format of this depends on the publisher of the events.Wildcard characters are not supported in this path. + ${FilterSubjectBeginsWith}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [System.String] + # An optional string to filter events for an event subscription based on a resource path suffix.Wildcard characters are not supported in this path. + ${FilterSubjectEndsWith}, + + [Parameter()] + [AllowEmptyCollection()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [System.String[]] + # List of user defined labels. + ${Label}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [System.Int32] + # Time To Live (in minutes) for events. + ${RetryPolicyEventTimeToLiveInMinute}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [System.Int32] + # Maximum number of delivery retry attempts for events. + ${RetryPolicyMaxDeliveryAttempt}, + + [Parameter()] + [Alias('AzureRMContext', 'AzureCredential')] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Run the command as a job + ${AsJob}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Run the command asynchronously + ${NoWait}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Returns true when the command succeeds + ${PassThru}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + if ($null -eq [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion) { + [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion = $Host.Runspace.Version.ToString() + } + $preTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + if ($preTelemetryId -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId =(New-Guid).ToString() + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.module]::Instance.Telemetry.Invoke('Create', $MyInvocation, $parameterSet, $PSCmdlet) + } else { + $internalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + if ($internalCalledCmdlets -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $MyInvocation.MyCommand.Name + } else { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets += ',' + $MyInvocation.MyCommand.Name + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = 'internal' + } + + $mapping = @{ + UpdateExpanded = 'Az.EventGrid.private\Update-AzEventGridPartnerTopicEventSubscription_UpdateExpanded'; + UpdateViaIdentityExpanded = 'Az.EventGrid.private\Update-AzEventGridPartnerTopicEventSubscription_UpdateViaIdentityExpanded'; + } + if (('UpdateExpanded') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { + $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } + + finally { + $backupTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + $backupInternalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + +} +end { + try { + $steppablePipeline.End() + + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $backupTelemetryId + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $backupInternalCalledCmdlets + if ($preTelemetryId -eq '') { + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.module]::Instance.Telemetry.Invoke('Send', $MyInvocation, $parameterSet, $PSCmdlet) + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $preTelemetryId + + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} +} + +<# +.Synopsis +Asynchronously updates a partner topic with the specified parameters. +.Description +Asynchronously updates a partner topic with the specified parameters. +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Inputs +Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.IEventGridIdentity +.Outputs +Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerTopic +.Notes +COMPLEX PARAMETER PROPERTIES + +To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. + +INPUTOBJECT : Identity Parameter + [ChannelName ]: Name of the channel. + [DomainName ]: Name of the domain. + [DomainTopicName ]: Name of the topic. + [EventChannelName ]: Name of the event channel. + [EventSubscriptionName ]: Name of the event subscription. + [Id ]: Resource identity path + [Location ]: Name of the location. + [ParentName ]: The name of the parent resource (namely, either, the topic name, domain name, or partner namespace name). + [ParentType ]: The type of the parent resource. This can be either \'topics\', \'domains\', or \'partnerNamespaces\'. + [PartnerDestinationName ]: Name of the partner destination. + [PartnerNamespaceName ]: Name of the partner namespace. + [PartnerRegistrationName ]: Name of the partner registration. + [PartnerTopicName ]: Name of the partner topic. + [PrivateEndpointConnectionName ]: The name of the private endpoint connection connection. + [PrivateLinkResourceName ]: The name of private link resource. + [ProviderNamespace ]: Namespace of the provider of the topic. + [ResourceGroupName ]: The name of the resource group within the partners subscription. + [ResourceName ]: Name of the resource. + [ResourceTypeName ]: Name of the resource type. + [Scope ]: The scope of the event subscription. The scope can be a subscription, or a resource group, or a top level resource belonging to a resource provider namespace, or an EventGrid topic. For example, use '/subscriptions/{subscriptionId}/' for a subscription, '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}' for a resource group, and '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}' for a resource, and '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.EventGrid/topics/{topicName}' for an EventGrid topic. + [SubscriptionId ]: Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription ID forms part of the URI for every service call. + [SystemTopicName ]: Name of the system topic. + [TopicName ]: Name of the domain topic. + [TopicTypeName ]: Name of the topic type. + [VerifiedPartnerName ]: Name of the verified partner. +.Link +https://docs.microsoft.com/en-us/powershell/module/az.eventgrid/update-azeventgridpartnertopic +#> +function Update-AzEventGridPartnerTopic { +[OutputType([Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerTopic])] +[CmdletBinding(DefaultParameterSetName='UpdateExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(ParameterSetName='UpdateExpanded', Mandatory)] + [Alias('PartnerTopicName')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [System.String] + # Name of the partner topic. + ${Name}, + + [Parameter(ParameterSetName='UpdateExpanded', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [System.String] + # The name of the resource group within the user's subscription. + ${ResourceGroupName}, + + [Parameter(ParameterSetName='UpdateExpanded')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] + [System.String] + # Subscription credentials that uniquely identify a Microsoft Azure subscription. + # The subscription ID forms part of the URI for every service call. + ${SubscriptionId}, + + [Parameter(ParameterSetName='UpdateViaIdentityExpanded', Mandatory, ValueFromPipeline)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.IEventGridIdentity] + # Identity Parameter + # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + ${InputObject}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [System.String] + # The principal ID of resource identity. + ${IdentityPrincipalId}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [System.String] + # The tenant ID of resource. + ${IdentityTenantId}, + + [Parameter()] + [ArgumentCompleter([Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.IdentityType])] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.IdentityType] + # The type of managed identity used. + # The type 'SystemAssigned, UserAssigned' includes both an implicitly created identity and a set of user-assigned identities. + # The type 'None' will remove any identity. + ${IdentityType}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info(PossibleTypes=([Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IIdentityInfoUserAssignedIdentities]))] + [System.Collections.Hashtable] + # The list of user identities associated with the resource. + # The user identity dictionary key references will be ARM resource ids in the form:'/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ManagedIdentity/userAssignedIdentities/{identityName}'.This property is currently not used and reserved for future usage. + ${IdentityUserAssignedIdentity}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info(PossibleTypes=([Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerTopicUpdateParametersTags]))] + [System.Collections.Hashtable] + # Tags of the Partner Topic resource. + ${Tag}, + + [Parameter()] + [Alias('AzureRMContext', 'AzureCredential')] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Returns true when the command succeeds + ${PassThru}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + if ($null -eq [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion) { + [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion = $Host.Runspace.Version.ToString() + } + $preTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + if ($preTelemetryId -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId =(New-Guid).ToString() + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.module]::Instance.Telemetry.Invoke('Create', $MyInvocation, $parameterSet, $PSCmdlet) + } else { + $internalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + if ($internalCalledCmdlets -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $MyInvocation.MyCommand.Name + } else { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets += ',' + $MyInvocation.MyCommand.Name + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = 'internal' + } + + $mapping = @{ + UpdateExpanded = 'Az.EventGrid.private\Update-AzEventGridPartnerTopic_UpdateExpanded'; + UpdateViaIdentityExpanded = 'Az.EventGrid.private\Update-AzEventGridPartnerTopic_UpdateViaIdentityExpanded'; + } + if (('UpdateExpanded') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { + $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } + + finally { + $backupTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + $backupInternalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + +} +end { + try { + $steppablePipeline.End() + + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $backupTelemetryId + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $backupInternalCalledCmdlets + if ($preTelemetryId -eq '') { + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.module]::Instance.Telemetry.Invoke('Send', $MyInvocation, $parameterSet, $PSCmdlet) + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $preTelemetryId + + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} +} + +<# +.Synopsis +Update an existing event subscription of a system topic. +.Description +Update an existing event subscription of a system topic. +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Inputs +Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.IEventGridIdentity +.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. + +FILTERADVANCEDFILTER : An array of advanced filters that are used for filtering event subscriptions. + OperatorType : The operator type used for filtering, e.g., NumberIn, StringContains, BoolEquals and others. + [Key ]: The field/property in the event based on which you want to filter. + +INPUTOBJECT : Identity Parameter + [ChannelName ]: Name of the channel. + [DomainName ]: Name of the domain. + [DomainTopicName ]: Name of the topic. + [EventChannelName ]: Name of the event channel. + [EventSubscriptionName ]: Name of the event subscription. + [Id ]: Resource identity path + [Location ]: Name of the location. + [ParentName ]: The name of the parent resource (namely, either, the topic name, domain name, or partner namespace name). + [ParentType ]: The type of the parent resource. This can be either \'topics\', \'domains\', or \'partnerNamespaces\'. + [PartnerDestinationName ]: Name of the partner destination. + [PartnerNamespaceName ]: Name of the partner namespace. + [PartnerRegistrationName ]: Name of the partner registration. + [PartnerTopicName ]: Name of the partner topic. + [PrivateEndpointConnectionName ]: The name of the private endpoint connection connection. + [PrivateLinkResourceName ]: The name of private link resource. + [ProviderNamespace ]: Namespace of the provider of the topic. + [ResourceGroupName ]: The name of the resource group within the partners subscription. + [ResourceName ]: Name of the resource. + [ResourceTypeName ]: Name of the resource type. + [Scope ]: The scope of the event subscription. The scope can be a subscription, or a resource group, or a top level resource belonging to a resource provider namespace, or an EventGrid topic. For example, use '/subscriptions/{subscriptionId}/' for a subscription, '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}' for a resource group, and '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}' for a resource, and '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.EventGrid/topics/{topicName}' for an EventGrid topic. + [SubscriptionId ]: Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription ID forms part of the URI for every service call. + [SystemTopicName ]: Name of the system topic. + [TopicName ]: Name of the domain topic. + [TopicTypeName ]: Name of the topic type. + [VerifiedPartnerName ]: Name of the verified partner. +.Link +https://docs.microsoft.com/en-us/powershell/module/az.eventgrid/update-azeventgridsystemtopiceventsubscription +#> +function Update-AzEventGridSystemTopicEventSubscription { +[OutputType([System.Boolean])] +[CmdletBinding(DefaultParameterSetName='UpdateExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(ParameterSetName='UpdateExpanded', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [System.String] + # Name of the event subscription to be created. + # Event subscription names must be between 3 and 100 characters in length and use alphanumeric letters only. + ${EventSubscriptionName}, + + [Parameter(ParameterSetName='UpdateExpanded', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [System.String] + # The name of the resource group within the user's subscription. + ${ResourceGroupName}, + + [Parameter(ParameterSetName='UpdateExpanded')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] + [System.String] + # Subscription credentials that uniquely identify a Microsoft Azure subscription. + # The subscription ID forms part of the URI for every service call. + ${SubscriptionId}, + + [Parameter(ParameterSetName='UpdateExpanded', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [System.String] + # Name of the system topic. + ${SystemTopicName}, + + [Parameter(ParameterSetName='UpdateViaIdentityExpanded', Mandatory, ValueFromPipeline)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.IEventGridIdentity] + # Identity Parameter + # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + ${InputObject}, + + [Parameter()] + [ArgumentCompleter([Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EventSubscriptionIdentityType])] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EventSubscriptionIdentityType] + # The type of managed identity used. + # The type 'SystemAssigned, UserAssigned' includes both an implicitly created identity and a set of user-assigned identities. + # The type 'None' will remove any identity. + ${DeadLetterWithResourceIdentityType}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [System.String] + # The user identity associated with the resource. + ${DeadLetterWithResourceIdentityUserAssignedIdentity}, + + [Parameter()] + [ArgumentCompleter([Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EndpointType])] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EndpointType] + # Type of the endpoint for the event subscription destination. + ${DeliveryWithResourceIdentityDestinationEndpointType}, + + [Parameter()] + [ArgumentCompleter([Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EventSubscriptionIdentityType])] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EventSubscriptionIdentityType] + # The type of managed identity used. + # The type 'SystemAssigned, UserAssigned' includes both an implicitly created identity and a set of user-assigned identities. + # The type 'None' will remove any identity. + ${DeliveryWithResourceIdentityType}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [System.String] + # The user identity associated with the resource. + ${DeliveryWithResourceIdentityUserAssignedIdentity}, + + [Parameter()] + [ArgumentCompleter([Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EndpointType])] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EndpointType] + # Type of the endpoint for the event subscription destination. + ${EndpointType}, + + [Parameter()] + [ArgumentCompleter([Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EventDeliverySchema])] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EventDeliverySchema] + # The event delivery schema for the event subscription. + ${EventDeliverySchema}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [System.DateTime] + # Information about the expiration time for the event subscription. + ${ExpirationTimeUtc}, + + [Parameter()] + [AllowEmptyCollection()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IAdvancedFilter[]] + # An array of advanced filters that are used for filtering event subscriptions. + # To construct, see NOTES section for FILTERADVANCEDFILTER properties and create a hash table. + ${FilterAdvancedFilter}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [System.Management.Automation.SwitchParameter] + # Allows advanced filters to be evaluated against an array of values instead of expecting a singular value. + ${FilterEnableAdvancedFilteringOnArray}, + + [Parameter()] + [AllowEmptyCollection()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [System.String[]] + # A list of applicable event types that need to be part of the event subscription. + # If it is desired to subscribe to all default event types, set the IncludedEventTypes to null. + ${FilterIncludedEventType}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [System.Management.Automation.SwitchParameter] + # Specifies if the SubjectBeginsWith and SubjectEndsWith properties of the filtershould be compared in a case sensitive manner. + ${FilterIsSubjectCaseSensitive}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [System.String] + # An optional string to filter events for an event subscription based on a resource path prefix.The format of this depends on the publisher of the events.Wildcard characters are not supported in this path. + ${FilterSubjectBeginsWith}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [System.String] + # An optional string to filter events for an event subscription based on a resource path suffix.Wildcard characters are not supported in this path. + ${FilterSubjectEndsWith}, + + [Parameter()] + [AllowEmptyCollection()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [System.String[]] + # List of user defined labels. + ${Label}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [System.Int32] + # Time To Live (in minutes) for events. + ${RetryPolicyEventTimeToLiveInMinute}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [System.Int32] + # Maximum number of delivery retry attempts for events. + ${RetryPolicyMaxDeliveryAttempt}, + + [Parameter()] + [Alias('AzureRMContext', 'AzureCredential')] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Run the command as a job + ${AsJob}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Run the command asynchronously + ${NoWait}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Returns true when the command succeeds + ${PassThru}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + if ($null -eq [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion) { + [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion = $Host.Runspace.Version.ToString() + } + $preTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + if ($preTelemetryId -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId =(New-Guid).ToString() + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.module]::Instance.Telemetry.Invoke('Create', $MyInvocation, $parameterSet, $PSCmdlet) + } else { + $internalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + if ($internalCalledCmdlets -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $MyInvocation.MyCommand.Name + } else { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets += ',' + $MyInvocation.MyCommand.Name + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = 'internal' + } + + $mapping = @{ + UpdateExpanded = 'Az.EventGrid.private\Update-AzEventGridSystemTopicEventSubscription_UpdateExpanded'; + UpdateViaIdentityExpanded = 'Az.EventGrid.private\Update-AzEventGridSystemTopicEventSubscription_UpdateViaIdentityExpanded'; + } + if (('UpdateExpanded') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { + $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } + + finally { + $backupTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + $backupInternalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + +} +end { + try { + $steppablePipeline.End() + + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $backupTelemetryId + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $backupInternalCalledCmdlets + if ($preTelemetryId -eq '') { + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.module]::Instance.Telemetry.Invoke('Send', $MyInvocation, $parameterSet, $PSCmdlet) + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $preTelemetryId + + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} +} + +<# +.Synopsis +Asynchronously updates a system topic with the specified parameters. +.Description +Asynchronously updates a system topic with the specified parameters. +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Inputs +Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.IEventGridIdentity +.Outputs +Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ISystemTopic +.Notes +COMPLEX PARAMETER PROPERTIES + +To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. + +INPUTOBJECT : Identity Parameter + [ChannelName ]: Name of the channel. + [DomainName ]: Name of the domain. + [DomainTopicName ]: Name of the topic. + [EventChannelName ]: Name of the event channel. + [EventSubscriptionName ]: Name of the event subscription. + [Id ]: Resource identity path + [Location ]: Name of the location. + [ParentName ]: The name of the parent resource (namely, either, the topic name, domain name, or partner namespace name). + [ParentType ]: The type of the parent resource. This can be either \'topics\', \'domains\', or \'partnerNamespaces\'. + [PartnerDestinationName ]: Name of the partner destination. + [PartnerNamespaceName ]: Name of the partner namespace. + [PartnerRegistrationName ]: Name of the partner registration. + [PartnerTopicName ]: Name of the partner topic. + [PrivateEndpointConnectionName ]: The name of the private endpoint connection connection. + [PrivateLinkResourceName ]: The name of private link resource. + [ProviderNamespace ]: Namespace of the provider of the topic. + [ResourceGroupName ]: The name of the resource group within the partners subscription. + [ResourceName ]: Name of the resource. + [ResourceTypeName ]: Name of the resource type. + [Scope ]: The scope of the event subscription. The scope can be a subscription, or a resource group, or a top level resource belonging to a resource provider namespace, or an EventGrid topic. For example, use '/subscriptions/{subscriptionId}/' for a subscription, '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}' for a resource group, and '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}' for a resource, and '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.EventGrid/topics/{topicName}' for an EventGrid topic. + [SubscriptionId ]: Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription ID forms part of the URI for every service call. + [SystemTopicName ]: Name of the system topic. + [TopicName ]: Name of the domain topic. + [TopicTypeName ]: Name of the topic type. + [VerifiedPartnerName ]: Name of the verified partner. +.Link +https://docs.microsoft.com/en-us/powershell/module/az.eventgrid/update-azeventgridsystemtopic +#> +function Update-AzEventGridSystemTopic { +[OutputType([Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ISystemTopic])] +[CmdletBinding(DefaultParameterSetName='UpdateExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(ParameterSetName='UpdateExpanded', Mandatory)] + [Alias('SystemTopicName')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [System.String] + # Name of the system topic. + ${Name}, + + [Parameter(ParameterSetName='UpdateExpanded', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [System.String] + # The name of the resource group within the user's subscription. + ${ResourceGroupName}, + + [Parameter(ParameterSetName='UpdateExpanded')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] + [System.String] + # Subscription credentials that uniquely identify a Microsoft Azure subscription. + # The subscription ID forms part of the URI for every service call. + ${SubscriptionId}, + + [Parameter(ParameterSetName='UpdateViaIdentityExpanded', Mandatory, ValueFromPipeline)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.IEventGridIdentity] + # Identity Parameter + # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + ${InputObject}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [System.String] + # The principal ID of resource identity. + ${IdentityPrincipalId}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [System.String] + # The tenant ID of resource. + ${IdentityTenantId}, + + [Parameter()] + [ArgumentCompleter([Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.IdentityType])] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.IdentityType] + # The type of managed identity used. + # The type 'SystemAssigned, UserAssigned' includes both an implicitly created identity and a set of user-assigned identities. + # The type 'None' will remove any identity. + ${IdentityType}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info(PossibleTypes=([Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IIdentityInfoUserAssignedIdentities]))] + [System.Collections.Hashtable] + # The list of user identities associated with the resource. + # The user identity dictionary key references will be ARM resource ids in the form:'/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ManagedIdentity/userAssignedIdentities/{identityName}'.This property is currently not used and reserved for future usage. + ${IdentityUserAssignedIdentity}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info(PossibleTypes=([Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ISystemTopicUpdateParametersTags]))] + [System.Collections.Hashtable] + # Tags of the system topic. + ${Tag}, + + [Parameter()] + [Alias('AzureRMContext', 'AzureCredential')] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Run the command as a job + ${AsJob}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Run the command asynchronously + ${NoWait}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Returns true when the command succeeds + ${PassThru}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + if ($null -eq [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion) { + [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion = $Host.Runspace.Version.ToString() + } + $preTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + if ($preTelemetryId -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId =(New-Guid).ToString() + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.module]::Instance.Telemetry.Invoke('Create', $MyInvocation, $parameterSet, $PSCmdlet) + } else { + $internalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + if ($internalCalledCmdlets -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $MyInvocation.MyCommand.Name + } else { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets += ',' + $MyInvocation.MyCommand.Name + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = 'internal' + } + + $mapping = @{ + UpdateExpanded = 'Az.EventGrid.private\Update-AzEventGridSystemTopic_UpdateExpanded'; + UpdateViaIdentityExpanded = 'Az.EventGrid.private\Update-AzEventGridSystemTopic_UpdateViaIdentityExpanded'; + } + if (('UpdateExpanded') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { + $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } + + finally { + $backupTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + $backupInternalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + +} +end { + try { + $steppablePipeline.End() + + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $backupTelemetryId + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $backupInternalCalledCmdlets + if ($preTelemetryId -eq '') { + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.module]::Instance.Telemetry.Invoke('Send', $MyInvocation, $parameterSet, $PSCmdlet) + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $preTelemetryId + + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} +} + +<# +.Synopsis +Update an existing event subscription for a topic. +.Description +Update an existing event subscription for a topic. +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Inputs +Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.IEventGridIdentity +.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. + +FILTERADVANCEDFILTER : An array of advanced filters that are used for filtering event subscriptions. + OperatorType : The operator type used for filtering, e.g., NumberIn, StringContains, BoolEquals and others. + [Key ]: The field/property in the event based on which you want to filter. + +INPUTOBJECT : Identity Parameter + [ChannelName ]: Name of the channel. + [DomainName ]: Name of the domain. + [DomainTopicName ]: Name of the topic. + [EventChannelName ]: Name of the event channel. + [EventSubscriptionName ]: Name of the event subscription. + [Id ]: Resource identity path + [Location ]: Name of the location. + [ParentName ]: The name of the parent resource (namely, either, the topic name, domain name, or partner namespace name). + [ParentType ]: The type of the parent resource. This can be either \'topics\', \'domains\', or \'partnerNamespaces\'. + [PartnerDestinationName ]: Name of the partner destination. + [PartnerNamespaceName ]: Name of the partner namespace. + [PartnerRegistrationName ]: Name of the partner registration. + [PartnerTopicName ]: Name of the partner topic. + [PrivateEndpointConnectionName ]: The name of the private endpoint connection connection. + [PrivateLinkResourceName ]: The name of private link resource. + [ProviderNamespace ]: Namespace of the provider of the topic. + [ResourceGroupName ]: The name of the resource group within the partners subscription. + [ResourceName ]: Name of the resource. + [ResourceTypeName ]: Name of the resource type. + [Scope ]: The scope of the event subscription. The scope can be a subscription, or a resource group, or a top level resource belonging to a resource provider namespace, or an EventGrid topic. For example, use '/subscriptions/{subscriptionId}/' for a subscription, '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}' for a resource group, and '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}' for a resource, and '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.EventGrid/topics/{topicName}' for an EventGrid topic. + [SubscriptionId ]: Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription ID forms part of the URI for every service call. + [SystemTopicName ]: Name of the system topic. + [TopicName ]: Name of the domain topic. + [TopicTypeName ]: Name of the topic type. + [VerifiedPartnerName ]: Name of the verified partner. +.Link +https://docs.microsoft.com/en-us/powershell/module/az.eventgrid/update-azeventgridtopiceventsubscription +#> +function Update-AzEventGridTopicEventSubscription { +[OutputType([System.Boolean])] +[CmdletBinding(DefaultParameterSetName='UpdateExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(ParameterSetName='UpdateExpanded', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [System.String] + # Name of the event subscription to be updated. + ${EventSubscriptionName}, + + [Parameter(ParameterSetName='UpdateExpanded', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [System.String] + # The name of the resource group within the user's subscription. + ${ResourceGroupName}, + + [Parameter(ParameterSetName='UpdateExpanded')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] + [System.String] + # Subscription credentials that uniquely identify a Microsoft Azure subscription. + # The subscription ID forms part of the URI for every service call. + ${SubscriptionId}, + + [Parameter(ParameterSetName='UpdateExpanded', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [System.String] + # Name of the domain. + ${TopicName}, + + [Parameter(ParameterSetName='UpdateViaIdentityExpanded', Mandatory, ValueFromPipeline)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.IEventGridIdentity] + # Identity Parameter + # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + ${InputObject}, + + [Parameter()] + [ArgumentCompleter([Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EventSubscriptionIdentityType])] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EventSubscriptionIdentityType] + # The type of managed identity used. + # The type 'SystemAssigned, UserAssigned' includes both an implicitly created identity and a set of user-assigned identities. + # The type 'None' will remove any identity. + ${DeadLetterWithResourceIdentityType}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [System.String] + # The user identity associated with the resource. + ${DeadLetterWithResourceIdentityUserAssignedIdentity}, + + [Parameter()] + [ArgumentCompleter([Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EndpointType])] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EndpointType] + # Type of the endpoint for the event subscription destination. + ${DeliveryWithResourceIdentityDestinationEndpointType}, + + [Parameter()] + [ArgumentCompleter([Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EventSubscriptionIdentityType])] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EventSubscriptionIdentityType] + # The type of managed identity used. + # The type 'SystemAssigned, UserAssigned' includes both an implicitly created identity and a set of user-assigned identities. + # The type 'None' will remove any identity. + ${DeliveryWithResourceIdentityType}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [System.String] + # The user identity associated with the resource. + ${DeliveryWithResourceIdentityUserAssignedIdentity}, + + [Parameter()] + [ArgumentCompleter([Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EndpointType])] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EndpointType] + # Type of the endpoint for the event subscription destination. + ${EndpointType}, + + [Parameter()] + [ArgumentCompleter([Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EventDeliverySchema])] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EventDeliverySchema] + # The event delivery schema for the event subscription. + ${EventDeliverySchema}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [System.DateTime] + # Information about the expiration time for the event subscription. + ${ExpirationTimeUtc}, + + [Parameter()] + [AllowEmptyCollection()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IAdvancedFilter[]] + # An array of advanced filters that are used for filtering event subscriptions. + # To construct, see NOTES section for FILTERADVANCEDFILTER properties and create a hash table. + ${FilterAdvancedFilter}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [System.Management.Automation.SwitchParameter] + # Allows advanced filters to be evaluated against an array of values instead of expecting a singular value. + ${FilterEnableAdvancedFilteringOnArray}, + + [Parameter()] + [AllowEmptyCollection()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [System.String[]] + # A list of applicable event types that need to be part of the event subscription. + # If it is desired to subscribe to all default event types, set the IncludedEventTypes to null. + ${FilterIncludedEventType}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [System.Management.Automation.SwitchParameter] + # Specifies if the SubjectBeginsWith and SubjectEndsWith properties of the filtershould be compared in a case sensitive manner. + ${FilterIsSubjectCaseSensitive}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [System.String] + # An optional string to filter events for an event subscription based on a resource path prefix.The format of this depends on the publisher of the events.Wildcard characters are not supported in this path. + ${FilterSubjectBeginsWith}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [System.String] + # An optional string to filter events for an event subscription based on a resource path suffix.Wildcard characters are not supported in this path. + ${FilterSubjectEndsWith}, + + [Parameter()] + [AllowEmptyCollection()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [System.String[]] + # List of user defined labels. + ${Label}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [System.Int32] + # Time To Live (in minutes) for events. + ${RetryPolicyEventTimeToLiveInMinute}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [System.Int32] + # Maximum number of delivery retry attempts for events. + ${RetryPolicyMaxDeliveryAttempt}, + + [Parameter()] + [Alias('AzureRMContext', 'AzureCredential')] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Run the command as a job + ${AsJob}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Run the command asynchronously + ${NoWait}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Returns true when the command succeeds + ${PassThru}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + if ($null -eq [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion) { + [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion = $Host.Runspace.Version.ToString() + } + $preTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + if ($preTelemetryId -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId =(New-Guid).ToString() + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.module]::Instance.Telemetry.Invoke('Create', $MyInvocation, $parameterSet, $PSCmdlet) + } else { + $internalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + if ($internalCalledCmdlets -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $MyInvocation.MyCommand.Name + } else { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets += ',' + $MyInvocation.MyCommand.Name + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = 'internal' + } + + $mapping = @{ + UpdateExpanded = 'Az.EventGrid.private\Update-AzEventGridTopicEventSubscription_UpdateExpanded'; + UpdateViaIdentityExpanded = 'Az.EventGrid.private\Update-AzEventGridTopicEventSubscription_UpdateViaIdentityExpanded'; + } + if (('UpdateExpanded') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { + $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } + + finally { + $backupTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + $backupInternalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + +} +end { + try { + $steppablePipeline.End() + + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $backupTelemetryId + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $backupInternalCalledCmdlets + if ($preTelemetryId -eq '') { + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.module]::Instance.Telemetry.Invoke('Send', $MyInvocation, $parameterSet, $PSCmdlet) + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $preTelemetryId + + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} +} + +<# +.Synopsis +Asynchronously updates a topic with the specified parameters. +.Description +Asynchronously updates a topic with the specified parameters. +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Inputs +Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.IEventGridIdentity +.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. + +INBOUNDIPRULE : This can be used to restrict traffic from specific IPs instead of all IPs. Note: These are considered only if PublicNetworkAccess is enabled. + [Action ]: Action to perform based on the match or no match of the IpMask. + [IPMask ]: IP Address in CIDR notation e.g., 10.0.0.0/8. + +INPUTOBJECT : Identity Parameter + [ChannelName ]: Name of the channel. + [DomainName ]: Name of the domain. + [DomainTopicName ]: Name of the topic. + [EventChannelName ]: Name of the event channel. + [EventSubscriptionName ]: Name of the event subscription. + [Id ]: Resource identity path + [Location ]: Name of the location. + [ParentName ]: The name of the parent resource (namely, either, the topic name, domain name, or partner namespace name). + [ParentType ]: The type of the parent resource. This can be either \'topics\', \'domains\', or \'partnerNamespaces\'. + [PartnerDestinationName ]: Name of the partner destination. + [PartnerNamespaceName ]: Name of the partner namespace. + [PartnerRegistrationName ]: Name of the partner registration. + [PartnerTopicName ]: Name of the partner topic. + [PrivateEndpointConnectionName ]: The name of the private endpoint connection connection. + [PrivateLinkResourceName ]: The name of private link resource. + [ProviderNamespace ]: Namespace of the provider of the topic. + [ResourceGroupName ]: The name of the resource group within the partners subscription. + [ResourceName ]: Name of the resource. + [ResourceTypeName ]: Name of the resource type. + [Scope ]: The scope of the event subscription. The scope can be a subscription, or a resource group, or a top level resource belonging to a resource provider namespace, or an EventGrid topic. For example, use '/subscriptions/{subscriptionId}/' for a subscription, '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}' for a resource group, and '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}' for a resource, and '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.EventGrid/topics/{topicName}' for an EventGrid topic. + [SubscriptionId ]: Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription ID forms part of the URI for every service call. + [SystemTopicName ]: Name of the system topic. + [TopicName ]: Name of the domain topic. + [TopicTypeName ]: Name of the topic type. + [VerifiedPartnerName ]: Name of the verified partner. +.Link +https://docs.microsoft.com/en-us/powershell/module/az.eventgrid/update-azeventgridtopic +#> +function Update-AzEventGridTopic { +[OutputType([System.Boolean])] +[CmdletBinding(DefaultParameterSetName='UpdateExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(ParameterSetName='UpdateExpanded', Mandatory)] + [Alias('TopicName')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [System.String] + # Name of the topic. + ${Name}, + + [Parameter(ParameterSetName='UpdateExpanded', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [System.String] + # The name of the resource group within the user's subscription. + ${ResourceGroupName}, + + [Parameter(ParameterSetName='UpdateExpanded')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] + [System.String] + # Subscription credentials that uniquely identify a Microsoft Azure subscription. + # The subscription ID forms part of the URI for every service call. + ${SubscriptionId}, + + [Parameter(ParameterSetName='UpdateViaIdentityExpanded', Mandatory, ValueFromPipeline)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.IEventGridIdentity] + # Identity Parameter + # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + ${InputObject}, + + [Parameter()] + [ArgumentCompleter([Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.DataResidencyBoundary])] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.DataResidencyBoundary] + # The data residency boundary for the topic. + ${DataResidencyBoundary}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [System.Management.Automation.SwitchParameter] + # This boolean is used to enable or disable local auth. + # Default value is false. + # When the property is set to true, only AAD token will be used to authenticate if user is allowed to publish to the topic. + ${DisableLocalAuth}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [System.String] + # The principal ID of resource identity. + ${IdentityPrincipalId}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [System.String] + # The tenant ID of resource. + ${IdentityTenantId}, + + [Parameter()] + [ArgumentCompleter([Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.IdentityType])] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.IdentityType] + # The type of managed identity used. + # The type 'SystemAssigned, UserAssigned' includes both an implicitly created identity and a set of user-assigned identities. + # The type 'None' will remove any identity. + ${IdentityType}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info(PossibleTypes=([Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IIdentityInfoUserAssignedIdentities]))] + [System.Collections.Hashtable] + # The list of user identities associated with the resource. + # The user identity dictionary key references will be ARM resource ids in the form:'/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ManagedIdentity/userAssignedIdentities/{identityName}'.This property is currently not used and reserved for future usage. + ${IdentityUserAssignedIdentity}, + + [Parameter()] + [AllowEmptyCollection()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IInboundIPRule[]] + # This can be used to restrict traffic from specific IPs instead of all IPs. + # Note: These are considered only if PublicNetworkAccess is enabled. + # To construct, see NOTES section for INBOUNDIPRULE properties and create a hash table. + ${InboundIPRule}, + + [Parameter()] + [ArgumentCompleter([Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.PublicNetworkAccess])] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.PublicNetworkAccess] + # This determines if traffic is allowed over public network. + # By default it is enabled. + # You can further restrict to specific IPs by configuring + ${PublicNetworkAccess}, + + [Parameter()] + [ArgumentCompleter([Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.Sku])] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.Sku] + # The Sku name of the resource. + # The possible values are: Basic or Premium. + ${SkuName}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info(PossibleTypes=([Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITopicUpdateParametersTags]))] + [System.Collections.Hashtable] + # Tags of the Topic resource. + ${Tag}, + + [Parameter()] + [Alias('AzureRMContext', 'AzureCredential')] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Run the command as a job + ${AsJob}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Run the command asynchronously + ${NoWait}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Returns true when the command succeeds + ${PassThru}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + if ($null -eq [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion) { + [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion = $Host.Runspace.Version.ToString() + } + $preTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + if ($preTelemetryId -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId =(New-Guid).ToString() + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.module]::Instance.Telemetry.Invoke('Create', $MyInvocation, $parameterSet, $PSCmdlet) + } else { + $internalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + if ($internalCalledCmdlets -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $MyInvocation.MyCommand.Name + } else { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets += ',' + $MyInvocation.MyCommand.Name + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = 'internal' + } + + $mapping = @{ + UpdateExpanded = 'Az.EventGrid.private\Update-AzEventGridTopic_UpdateExpanded'; + UpdateViaIdentityExpanded = 'Az.EventGrid.private\Update-AzEventGridTopic_UpdateViaIdentityExpanded'; + } + if (('UpdateExpanded') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { + $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } + + finally { + $backupTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + $backupInternalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + +} +end { + try { + $steppablePipeline.End() + + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $backupTelemetryId + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $backupInternalCalledCmdlets + if ($preTelemetryId -eq '') { + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.module]::Instance.Telemetry.Invoke('Send', $MyInvocation, $parameterSet, $PSCmdlet) + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $preTelemetryId + + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} +} diff --git a/swaggerci/eventgrid/exports/README.md b/swaggerci/eventgrid/exports/README.md new file mode 100644 index 000000000000..5a156e94b5b0 --- /dev/null +++ b/swaggerci/eventgrid/exports/README.md @@ -0,0 +1,20 @@ +# Exports +This directory contains the cmdlets *exported by* `Az.EventGrid`. No other cmdlets in this repository are directly exported. What that means is the `Az.EventGrid` module will run [Export-ModuleMember](https://docs.microsoft.com/powershell/module/microsoft.powershell.core/export-modulemember) on the cmldets in this directory. The cmdlets in this directory are generated at **build-time**. Do not put any custom code, files, cmdlets, etc. into this directory. Please use `../custom` for all custom implementation. + +## Info +- Modifiable: no +- Generated: all +- Committed: no +- Packaged: yes + +## Details +The cmdlets generated here are created every time you run `build-module.ps1`. These cmdlets are a merge of all (excluding `InternalExport`) cmdlets from the private binary (`../bin/Az.EventGrid.private.dll`) and from the `../custom/Az.EventGrid.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.EventGrid.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/eventgrid/exports/Remove-AzEventGridChannel.ps1 b/swaggerci/eventgrid/exports/Remove-AzEventGridChannel.ps1 new file mode 100644 index 000000000000..9d1138dac49d --- /dev/null +++ b/swaggerci/eventgrid/exports/Remove-AzEventGridChannel.ps1 @@ -0,0 +1,237 @@ + +# ---------------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for license information. +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is regenerated. +# ---------------------------------------------------------------------------------- + +<# +.Synopsis +Delete an existing channel. +.Description +Delete an existing channel. +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Inputs +Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.IEventGridIdentity +.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 + [ChannelName ]: Name of the channel. + [DomainName ]: Name of the domain. + [DomainTopicName ]: Name of the topic. + [EventChannelName ]: Name of the event channel. + [EventSubscriptionName ]: Name of the event subscription. + [Id ]: Resource identity path + [Location ]: Name of the location. + [ParentName ]: The name of the parent resource (namely, either, the topic name, domain name, or partner namespace name). + [ParentType ]: The type of the parent resource. This can be either \'topics\', \'domains\', or \'partnerNamespaces\'. + [PartnerDestinationName ]: Name of the partner destination. + [PartnerNamespaceName ]: Name of the partner namespace. + [PartnerRegistrationName ]: Name of the partner registration. + [PartnerTopicName ]: Name of the partner topic. + [PrivateEndpointConnectionName ]: The name of the private endpoint connection connection. + [PrivateLinkResourceName ]: The name of private link resource. + [ProviderNamespace ]: Namespace of the provider of the topic. + [ResourceGroupName ]: The name of the resource group within the partners subscription. + [ResourceName ]: Name of the resource. + [ResourceTypeName ]: Name of the resource type. + [Scope ]: The scope of the event subscription. The scope can be a subscription, or a resource group, or a top level resource belonging to a resource provider namespace, or an EventGrid topic. For example, use '/subscriptions/{subscriptionId}/' for a subscription, '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}' for a resource group, and '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}' for a resource, and '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.EventGrid/topics/{topicName}' for an EventGrid topic. + [SubscriptionId ]: Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription ID forms part of the URI for every service call. + [SystemTopicName ]: Name of the system topic. + [TopicName ]: Name of the domain topic. + [TopicTypeName ]: Name of the topic type. + [VerifiedPartnerName ]: Name of the verified partner. +.Link +https://docs.microsoft.com/en-us/powershell/module/az.eventgrid/remove-azeventgridchannel +#> +function Remove-AzEventGridChannel { +[OutputType([System.Boolean])] +[CmdletBinding(DefaultParameterSetName='Delete', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(ParameterSetName='Delete', Mandatory)] + [Alias('ChannelName')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [System.String] + # Name of the channel. + ${Name}, + + [Parameter(ParameterSetName='Delete', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [System.String] + # Name of the partner namespace. + ${PartnerNamespaceName}, + + [Parameter(ParameterSetName='Delete', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [System.String] + # The name of the resource group within the partners subscription. + ${ResourceGroupName}, + + [Parameter(ParameterSetName='Delete')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] + [System.String] + # Subscription credentials that uniquely identify a Microsoft Azure subscription. + # The subscription ID forms part of the URI for every service call. + ${SubscriptionId}, + + [Parameter(ParameterSetName='DeleteViaIdentity', Mandatory, ValueFromPipeline)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.IEventGridIdentity] + # Identity Parameter + # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + ${InputObject}, + + [Parameter()] + [Alias('AzureRMContext', 'AzureCredential')] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Run the command as a job + ${AsJob}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Run the command asynchronously + ${NoWait}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Returns true when the command succeeds + ${PassThru}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + if ($null -eq [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion) { + [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion = $Host.Runspace.Version.ToString() + } + $preTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + if ($preTelemetryId -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId =(New-Guid).ToString() + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.module]::Instance.Telemetry.Invoke('Create', $MyInvocation, $parameterSet, $PSCmdlet) + } else { + $internalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + if ($internalCalledCmdlets -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $MyInvocation.MyCommand.Name + } else { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets += ',' + $MyInvocation.MyCommand.Name + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = 'internal' + } + + $mapping = @{ + Delete = 'Az.EventGrid.private\Remove-AzEventGridChannel_Delete'; + DeleteViaIdentity = 'Az.EventGrid.private\Remove-AzEventGridChannel_DeleteViaIdentity'; + } + if (('Delete') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { + $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } + + finally { + $backupTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + $backupInternalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + +} +end { + try { + $steppablePipeline.End() + + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $backupTelemetryId + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $backupInternalCalledCmdlets + if ($preTelemetryId -eq '') { + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.module]::Instance.Telemetry.Invoke('Send', $MyInvocation, $parameterSet, $PSCmdlet) + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $preTelemetryId + + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} +} diff --git a/swaggerci/eventgrid/exports/Remove-AzEventGridDomain.ps1 b/swaggerci/eventgrid/exports/Remove-AzEventGridDomain.ps1 new file mode 100644 index 000000000000..46a73d86bccf --- /dev/null +++ b/swaggerci/eventgrid/exports/Remove-AzEventGridDomain.ps1 @@ -0,0 +1,231 @@ + +# ---------------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for license information. +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is regenerated. +# ---------------------------------------------------------------------------------- + +<# +.Synopsis +Delete existing domain. +.Description +Delete existing domain. +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Inputs +Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.IEventGridIdentity +.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 + [ChannelName ]: Name of the channel. + [DomainName ]: Name of the domain. + [DomainTopicName ]: Name of the topic. + [EventChannelName ]: Name of the event channel. + [EventSubscriptionName ]: Name of the event subscription. + [Id ]: Resource identity path + [Location ]: Name of the location. + [ParentName ]: The name of the parent resource (namely, either, the topic name, domain name, or partner namespace name). + [ParentType ]: The type of the parent resource. This can be either \'topics\', \'domains\', or \'partnerNamespaces\'. + [PartnerDestinationName ]: Name of the partner destination. + [PartnerNamespaceName ]: Name of the partner namespace. + [PartnerRegistrationName ]: Name of the partner registration. + [PartnerTopicName ]: Name of the partner topic. + [PrivateEndpointConnectionName ]: The name of the private endpoint connection connection. + [PrivateLinkResourceName ]: The name of private link resource. + [ProviderNamespace ]: Namespace of the provider of the topic. + [ResourceGroupName ]: The name of the resource group within the partners subscription. + [ResourceName ]: Name of the resource. + [ResourceTypeName ]: Name of the resource type. + [Scope ]: The scope of the event subscription. The scope can be a subscription, or a resource group, or a top level resource belonging to a resource provider namespace, or an EventGrid topic. For example, use '/subscriptions/{subscriptionId}/' for a subscription, '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}' for a resource group, and '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}' for a resource, and '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.EventGrid/topics/{topicName}' for an EventGrid topic. + [SubscriptionId ]: Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription ID forms part of the URI for every service call. + [SystemTopicName ]: Name of the system topic. + [TopicName ]: Name of the domain topic. + [TopicTypeName ]: Name of the topic type. + [VerifiedPartnerName ]: Name of the verified partner. +.Link +https://docs.microsoft.com/en-us/powershell/module/az.eventgrid/remove-azeventgriddomain +#> +function Remove-AzEventGridDomain { +[OutputType([System.Boolean])] +[CmdletBinding(DefaultParameterSetName='Delete', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(ParameterSetName='Delete', Mandatory)] + [Alias('DomainName')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [System.String] + # Name of the domain. + ${Name}, + + [Parameter(ParameterSetName='Delete', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [System.String] + # The name of the resource group within the user's subscription. + ${ResourceGroupName}, + + [Parameter(ParameterSetName='Delete')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] + [System.String] + # Subscription credentials that uniquely identify a Microsoft Azure subscription. + # The subscription ID forms part of the URI for every service call. + ${SubscriptionId}, + + [Parameter(ParameterSetName='DeleteViaIdentity', Mandatory, ValueFromPipeline)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.IEventGridIdentity] + # Identity Parameter + # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + ${InputObject}, + + [Parameter()] + [Alias('AzureRMContext', 'AzureCredential')] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Run the command as a job + ${AsJob}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Run the command asynchronously + ${NoWait}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Returns true when the command succeeds + ${PassThru}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + if ($null -eq [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion) { + [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion = $Host.Runspace.Version.ToString() + } + $preTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + if ($preTelemetryId -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId =(New-Guid).ToString() + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.module]::Instance.Telemetry.Invoke('Create', $MyInvocation, $parameterSet, $PSCmdlet) + } else { + $internalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + if ($internalCalledCmdlets -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $MyInvocation.MyCommand.Name + } else { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets += ',' + $MyInvocation.MyCommand.Name + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = 'internal' + } + + $mapping = @{ + Delete = 'Az.EventGrid.private\Remove-AzEventGridDomain_Delete'; + DeleteViaIdentity = 'Az.EventGrid.private\Remove-AzEventGridDomain_DeleteViaIdentity'; + } + if (('Delete') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { + $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } + + finally { + $backupTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + $backupInternalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + +} +end { + try { + $steppablePipeline.End() + + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $backupTelemetryId + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $backupInternalCalledCmdlets + if ($preTelemetryId -eq '') { + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.module]::Instance.Telemetry.Invoke('Send', $MyInvocation, $parameterSet, $PSCmdlet) + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $preTelemetryId + + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} +} diff --git a/swaggerci/eventgrid/exports/Remove-AzEventGridDomainEventSubscription.ps1 b/swaggerci/eventgrid/exports/Remove-AzEventGridDomainEventSubscription.ps1 new file mode 100644 index 000000000000..bdaf7a85c55c --- /dev/null +++ b/swaggerci/eventgrid/exports/Remove-AzEventGridDomainEventSubscription.ps1 @@ -0,0 +1,237 @@ + +# ---------------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for license information. +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is regenerated. +# ---------------------------------------------------------------------------------- + +<# +.Synopsis +Delete an existing event subscription for a domain. +.Description +Delete an existing event subscription for a domain. +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Inputs +Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.IEventGridIdentity +.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 + [ChannelName ]: Name of the channel. + [DomainName ]: Name of the domain. + [DomainTopicName ]: Name of the topic. + [EventChannelName ]: Name of the event channel. + [EventSubscriptionName ]: Name of the event subscription. + [Id ]: Resource identity path + [Location ]: Name of the location. + [ParentName ]: The name of the parent resource (namely, either, the topic name, domain name, or partner namespace name). + [ParentType ]: The type of the parent resource. This can be either \'topics\', \'domains\', or \'partnerNamespaces\'. + [PartnerDestinationName ]: Name of the partner destination. + [PartnerNamespaceName ]: Name of the partner namespace. + [PartnerRegistrationName ]: Name of the partner registration. + [PartnerTopicName ]: Name of the partner topic. + [PrivateEndpointConnectionName ]: The name of the private endpoint connection connection. + [PrivateLinkResourceName ]: The name of private link resource. + [ProviderNamespace ]: Namespace of the provider of the topic. + [ResourceGroupName ]: The name of the resource group within the partners subscription. + [ResourceName ]: Name of the resource. + [ResourceTypeName ]: Name of the resource type. + [Scope ]: The scope of the event subscription. The scope can be a subscription, or a resource group, or a top level resource belonging to a resource provider namespace, or an EventGrid topic. For example, use '/subscriptions/{subscriptionId}/' for a subscription, '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}' for a resource group, and '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}' for a resource, and '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.EventGrid/topics/{topicName}' for an EventGrid topic. + [SubscriptionId ]: Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription ID forms part of the URI for every service call. + [SystemTopicName ]: Name of the system topic. + [TopicName ]: Name of the domain topic. + [TopicTypeName ]: Name of the topic type. + [VerifiedPartnerName ]: Name of the verified partner. +.Link +https://docs.microsoft.com/en-us/powershell/module/az.eventgrid/remove-azeventgriddomaineventsubscription +#> +function Remove-AzEventGridDomainEventSubscription { +[OutputType([System.Boolean])] +[CmdletBinding(DefaultParameterSetName='Delete', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(ParameterSetName='Delete', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [System.String] + # Name of the domain. + ${DomainName}, + + [Parameter(ParameterSetName='Delete', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [System.String] + # Name of the event subscription to be deleted. + # Event subscription names must be between 3 and 100 characters in length and use alphanumeric letters only. + ${EventSubscriptionName}, + + [Parameter(ParameterSetName='Delete', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [System.String] + # The name of the resource group within the user's subscription. + ${ResourceGroupName}, + + [Parameter(ParameterSetName='Delete')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] + [System.String] + # Subscription credentials that uniquely identify a Microsoft Azure subscription. + # The subscription ID forms part of the URI for every service call. + ${SubscriptionId}, + + [Parameter(ParameterSetName='DeleteViaIdentity', Mandatory, ValueFromPipeline)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.IEventGridIdentity] + # Identity Parameter + # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + ${InputObject}, + + [Parameter()] + [Alias('AzureRMContext', 'AzureCredential')] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Run the command as a job + ${AsJob}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Run the command asynchronously + ${NoWait}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Returns true when the command succeeds + ${PassThru}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + if ($null -eq [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion) { + [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion = $Host.Runspace.Version.ToString() + } + $preTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + if ($preTelemetryId -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId =(New-Guid).ToString() + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.module]::Instance.Telemetry.Invoke('Create', $MyInvocation, $parameterSet, $PSCmdlet) + } else { + $internalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + if ($internalCalledCmdlets -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $MyInvocation.MyCommand.Name + } else { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets += ',' + $MyInvocation.MyCommand.Name + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = 'internal' + } + + $mapping = @{ + Delete = 'Az.EventGrid.private\Remove-AzEventGridDomainEventSubscription_Delete'; + DeleteViaIdentity = 'Az.EventGrid.private\Remove-AzEventGridDomainEventSubscription_DeleteViaIdentity'; + } + if (('Delete') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { + $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } + + finally { + $backupTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + $backupInternalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + +} +end { + try { + $steppablePipeline.End() + + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $backupTelemetryId + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $backupInternalCalledCmdlets + if ($preTelemetryId -eq '') { + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.module]::Instance.Telemetry.Invoke('Send', $MyInvocation, $parameterSet, $PSCmdlet) + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $preTelemetryId + + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} +} diff --git a/swaggerci/eventgrid/exports/Remove-AzEventGridDomainTopic.ps1 b/swaggerci/eventgrid/exports/Remove-AzEventGridDomainTopic.ps1 new file mode 100644 index 000000000000..a34b4860fc80 --- /dev/null +++ b/swaggerci/eventgrid/exports/Remove-AzEventGridDomainTopic.ps1 @@ -0,0 +1,237 @@ + +# ---------------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for license information. +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is regenerated. +# ---------------------------------------------------------------------------------- + +<# +.Synopsis +Delete existing domain topic. +.Description +Delete existing domain topic. +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Inputs +Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.IEventGridIdentity +.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 + [ChannelName ]: Name of the channel. + [DomainName ]: Name of the domain. + [DomainTopicName ]: Name of the topic. + [EventChannelName ]: Name of the event channel. + [EventSubscriptionName ]: Name of the event subscription. + [Id ]: Resource identity path + [Location ]: Name of the location. + [ParentName ]: The name of the parent resource (namely, either, the topic name, domain name, or partner namespace name). + [ParentType ]: The type of the parent resource. This can be either \'topics\', \'domains\', or \'partnerNamespaces\'. + [PartnerDestinationName ]: Name of the partner destination. + [PartnerNamespaceName ]: Name of the partner namespace. + [PartnerRegistrationName ]: Name of the partner registration. + [PartnerTopicName ]: Name of the partner topic. + [PrivateEndpointConnectionName ]: The name of the private endpoint connection connection. + [PrivateLinkResourceName ]: The name of private link resource. + [ProviderNamespace ]: Namespace of the provider of the topic. + [ResourceGroupName ]: The name of the resource group within the partners subscription. + [ResourceName ]: Name of the resource. + [ResourceTypeName ]: Name of the resource type. + [Scope ]: The scope of the event subscription. The scope can be a subscription, or a resource group, or a top level resource belonging to a resource provider namespace, or an EventGrid topic. For example, use '/subscriptions/{subscriptionId}/' for a subscription, '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}' for a resource group, and '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}' for a resource, and '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.EventGrid/topics/{topicName}' for an EventGrid topic. + [SubscriptionId ]: Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription ID forms part of the URI for every service call. + [SystemTopicName ]: Name of the system topic. + [TopicName ]: Name of the domain topic. + [TopicTypeName ]: Name of the topic type. + [VerifiedPartnerName ]: Name of the verified partner. +.Link +https://docs.microsoft.com/en-us/powershell/module/az.eventgrid/remove-azeventgriddomaintopic +#> +function Remove-AzEventGridDomainTopic { +[OutputType([System.Boolean])] +[CmdletBinding(DefaultParameterSetName='Delete', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(ParameterSetName='Delete', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [System.String] + # Name of the domain. + ${DomainName}, + + [Parameter(ParameterSetName='Delete', Mandatory)] + [Alias('DomainTopicName')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [System.String] + # Name of the domain topic. + ${Name}, + + [Parameter(ParameterSetName='Delete', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [System.String] + # The name of the resource group within the user's subscription. + ${ResourceGroupName}, + + [Parameter(ParameterSetName='Delete')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] + [System.String] + # Subscription credentials that uniquely identify a Microsoft Azure subscription. + # The subscription ID forms part of the URI for every service call. + ${SubscriptionId}, + + [Parameter(ParameterSetName='DeleteViaIdentity', Mandatory, ValueFromPipeline)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.IEventGridIdentity] + # Identity Parameter + # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + ${InputObject}, + + [Parameter()] + [Alias('AzureRMContext', 'AzureCredential')] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Run the command as a job + ${AsJob}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Run the command asynchronously + ${NoWait}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Returns true when the command succeeds + ${PassThru}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + if ($null -eq [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion) { + [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion = $Host.Runspace.Version.ToString() + } + $preTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + if ($preTelemetryId -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId =(New-Guid).ToString() + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.module]::Instance.Telemetry.Invoke('Create', $MyInvocation, $parameterSet, $PSCmdlet) + } else { + $internalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + if ($internalCalledCmdlets -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $MyInvocation.MyCommand.Name + } else { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets += ',' + $MyInvocation.MyCommand.Name + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = 'internal' + } + + $mapping = @{ + Delete = 'Az.EventGrid.private\Remove-AzEventGridDomainTopic_Delete'; + DeleteViaIdentity = 'Az.EventGrid.private\Remove-AzEventGridDomainTopic_DeleteViaIdentity'; + } + if (('Delete') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { + $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } + + finally { + $backupTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + $backupInternalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + +} +end { + try { + $steppablePipeline.End() + + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $backupTelemetryId + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $backupInternalCalledCmdlets + if ($preTelemetryId -eq '') { + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.module]::Instance.Telemetry.Invoke('Send', $MyInvocation, $parameterSet, $PSCmdlet) + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $preTelemetryId + + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} +} diff --git a/swaggerci/eventgrid/exports/Remove-AzEventGridDomainTopicEventSubscription.ps1 b/swaggerci/eventgrid/exports/Remove-AzEventGridDomainTopicEventSubscription.ps1 new file mode 100644 index 000000000000..7b03a2c8a43b --- /dev/null +++ b/swaggerci/eventgrid/exports/Remove-AzEventGridDomainTopicEventSubscription.ps1 @@ -0,0 +1,243 @@ + +# ---------------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for license information. +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is regenerated. +# ---------------------------------------------------------------------------------- + +<# +.Synopsis +Delete a nested existing event subscription for a domain topic. +.Description +Delete a nested existing event subscription for a domain topic. +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Inputs +Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.IEventGridIdentity +.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 + [ChannelName ]: Name of the channel. + [DomainName ]: Name of the domain. + [DomainTopicName ]: Name of the topic. + [EventChannelName ]: Name of the event channel. + [EventSubscriptionName ]: Name of the event subscription. + [Id ]: Resource identity path + [Location ]: Name of the location. + [ParentName ]: The name of the parent resource (namely, either, the topic name, domain name, or partner namespace name). + [ParentType ]: The type of the parent resource. This can be either \'topics\', \'domains\', or \'partnerNamespaces\'. + [PartnerDestinationName ]: Name of the partner destination. + [PartnerNamespaceName ]: Name of the partner namespace. + [PartnerRegistrationName ]: Name of the partner registration. + [PartnerTopicName ]: Name of the partner topic. + [PrivateEndpointConnectionName ]: The name of the private endpoint connection connection. + [PrivateLinkResourceName ]: The name of private link resource. + [ProviderNamespace ]: Namespace of the provider of the topic. + [ResourceGroupName ]: The name of the resource group within the partners subscription. + [ResourceName ]: Name of the resource. + [ResourceTypeName ]: Name of the resource type. + [Scope ]: The scope of the event subscription. The scope can be a subscription, or a resource group, or a top level resource belonging to a resource provider namespace, or an EventGrid topic. For example, use '/subscriptions/{subscriptionId}/' for a subscription, '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}' for a resource group, and '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}' for a resource, and '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.EventGrid/topics/{topicName}' for an EventGrid topic. + [SubscriptionId ]: Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription ID forms part of the URI for every service call. + [SystemTopicName ]: Name of the system topic. + [TopicName ]: Name of the domain topic. + [TopicTypeName ]: Name of the topic type. + [VerifiedPartnerName ]: Name of the verified partner. +.Link +https://docs.microsoft.com/en-us/powershell/module/az.eventgrid/remove-azeventgriddomaintopiceventsubscription +#> +function Remove-AzEventGridDomainTopicEventSubscription { +[OutputType([System.Boolean])] +[CmdletBinding(DefaultParameterSetName='Delete', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(ParameterSetName='Delete', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [System.String] + # Name of the top level domain. + ${DomainName}, + + [Parameter(ParameterSetName='Delete', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [System.String] + # Name of the event subscription to be deleted. + # Event subscription names must be between 3 and 100 characters in length and use alphanumeric letters only. + ${EventSubscriptionName}, + + [Parameter(ParameterSetName='Delete', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [System.String] + # The name of the resource group within the user's subscription. + ${ResourceGroupName}, + + [Parameter(ParameterSetName='Delete')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] + [System.String] + # Subscription credentials that uniquely identify a Microsoft Azure subscription. + # The subscription ID forms part of the URI for every service call. + ${SubscriptionId}, + + [Parameter(ParameterSetName='Delete', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [System.String] + # Name of the domain topic. + ${TopicName}, + + [Parameter(ParameterSetName='DeleteViaIdentity', Mandatory, ValueFromPipeline)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.IEventGridIdentity] + # Identity Parameter + # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + ${InputObject}, + + [Parameter()] + [Alias('AzureRMContext', 'AzureCredential')] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Run the command as a job + ${AsJob}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Run the command asynchronously + ${NoWait}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Returns true when the command succeeds + ${PassThru}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + if ($null -eq [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion) { + [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion = $Host.Runspace.Version.ToString() + } + $preTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + if ($preTelemetryId -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId =(New-Guid).ToString() + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.module]::Instance.Telemetry.Invoke('Create', $MyInvocation, $parameterSet, $PSCmdlet) + } else { + $internalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + if ($internalCalledCmdlets -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $MyInvocation.MyCommand.Name + } else { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets += ',' + $MyInvocation.MyCommand.Name + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = 'internal' + } + + $mapping = @{ + Delete = 'Az.EventGrid.private\Remove-AzEventGridDomainTopicEventSubscription_Delete'; + DeleteViaIdentity = 'Az.EventGrid.private\Remove-AzEventGridDomainTopicEventSubscription_DeleteViaIdentity'; + } + if (('Delete') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { + $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } + + finally { + $backupTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + $backupInternalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + +} +end { + try { + $steppablePipeline.End() + + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $backupTelemetryId + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $backupInternalCalledCmdlets + if ($preTelemetryId -eq '') { + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.module]::Instance.Telemetry.Invoke('Send', $MyInvocation, $parameterSet, $PSCmdlet) + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $preTelemetryId + + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} +} diff --git a/swaggerci/eventgrid/exports/Remove-AzEventGridEventChannel.ps1 b/swaggerci/eventgrid/exports/Remove-AzEventGridEventChannel.ps1 new file mode 100644 index 000000000000..2615bc556c70 --- /dev/null +++ b/swaggerci/eventgrid/exports/Remove-AzEventGridEventChannel.ps1 @@ -0,0 +1,237 @@ + +# ---------------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for license information. +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is regenerated. +# ---------------------------------------------------------------------------------- + +<# +.Synopsis +Delete existing event channel. +.Description +Delete existing event channel. +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Inputs +Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.IEventGridIdentity +.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 + [ChannelName ]: Name of the channel. + [DomainName ]: Name of the domain. + [DomainTopicName ]: Name of the topic. + [EventChannelName ]: Name of the event channel. + [EventSubscriptionName ]: Name of the event subscription. + [Id ]: Resource identity path + [Location ]: Name of the location. + [ParentName ]: The name of the parent resource (namely, either, the topic name, domain name, or partner namespace name). + [ParentType ]: The type of the parent resource. This can be either \'topics\', \'domains\', or \'partnerNamespaces\'. + [PartnerDestinationName ]: Name of the partner destination. + [PartnerNamespaceName ]: Name of the partner namespace. + [PartnerRegistrationName ]: Name of the partner registration. + [PartnerTopicName ]: Name of the partner topic. + [PrivateEndpointConnectionName ]: The name of the private endpoint connection connection. + [PrivateLinkResourceName ]: The name of private link resource. + [ProviderNamespace ]: Namespace of the provider of the topic. + [ResourceGroupName ]: The name of the resource group within the partners subscription. + [ResourceName ]: Name of the resource. + [ResourceTypeName ]: Name of the resource type. + [Scope ]: The scope of the event subscription. The scope can be a subscription, or a resource group, or a top level resource belonging to a resource provider namespace, or an EventGrid topic. For example, use '/subscriptions/{subscriptionId}/' for a subscription, '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}' for a resource group, and '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}' for a resource, and '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.EventGrid/topics/{topicName}' for an EventGrid topic. + [SubscriptionId ]: Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription ID forms part of the URI for every service call. + [SystemTopicName ]: Name of the system topic. + [TopicName ]: Name of the domain topic. + [TopicTypeName ]: Name of the topic type. + [VerifiedPartnerName ]: Name of the verified partner. +.Link +https://docs.microsoft.com/en-us/powershell/module/az.eventgrid/remove-azeventgrideventchannel +#> +function Remove-AzEventGridEventChannel { +[OutputType([System.Boolean])] +[CmdletBinding(DefaultParameterSetName='Delete', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(ParameterSetName='Delete', Mandatory)] + [Alias('EventChannelName')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [System.String] + # Name of the event channel. + ${Name}, + + [Parameter(ParameterSetName='Delete', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [System.String] + # Name of the partner namespace. + ${PartnerNamespaceName}, + + [Parameter(ParameterSetName='Delete', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [System.String] + # The name of the resource group within the user's subscription. + ${ResourceGroupName}, + + [Parameter(ParameterSetName='Delete')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] + [System.String] + # Subscription credentials that uniquely identify a Microsoft Azure subscription. + # The subscription ID forms part of the URI for every service call. + ${SubscriptionId}, + + [Parameter(ParameterSetName='DeleteViaIdentity', Mandatory, ValueFromPipeline)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.IEventGridIdentity] + # Identity Parameter + # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + ${InputObject}, + + [Parameter()] + [Alias('AzureRMContext', 'AzureCredential')] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Run the command as a job + ${AsJob}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Run the command asynchronously + ${NoWait}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Returns true when the command succeeds + ${PassThru}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + if ($null -eq [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion) { + [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion = $Host.Runspace.Version.ToString() + } + $preTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + if ($preTelemetryId -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId =(New-Guid).ToString() + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.module]::Instance.Telemetry.Invoke('Create', $MyInvocation, $parameterSet, $PSCmdlet) + } else { + $internalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + if ($internalCalledCmdlets -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $MyInvocation.MyCommand.Name + } else { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets += ',' + $MyInvocation.MyCommand.Name + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = 'internal' + } + + $mapping = @{ + Delete = 'Az.EventGrid.private\Remove-AzEventGridEventChannel_Delete'; + DeleteViaIdentity = 'Az.EventGrid.private\Remove-AzEventGridEventChannel_DeleteViaIdentity'; + } + if (('Delete') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { + $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } + + finally { + $backupTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + $backupInternalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + +} +end { + try { + $steppablePipeline.End() + + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $backupTelemetryId + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $backupInternalCalledCmdlets + if ($preTelemetryId -eq '') { + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.module]::Instance.Telemetry.Invoke('Send', $MyInvocation, $parameterSet, $PSCmdlet) + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $preTelemetryId + + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} +} diff --git a/swaggerci/eventgrid/exports/Remove-AzEventGridEventSubscription.ps1 b/swaggerci/eventgrid/exports/Remove-AzEventGridEventSubscription.ps1 new file mode 100644 index 000000000000..a4b0262ad4d6 --- /dev/null +++ b/swaggerci/eventgrid/exports/Remove-AzEventGridEventSubscription.ps1 @@ -0,0 +1,222 @@ + +# ---------------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for license information. +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is regenerated. +# ---------------------------------------------------------------------------------- + +<# +.Synopsis +Delete an existing event subscription. +.Description +Delete an existing event subscription. +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Inputs +Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.IEventGridIdentity +.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 + [ChannelName ]: Name of the channel. + [DomainName ]: Name of the domain. + [DomainTopicName ]: Name of the topic. + [EventChannelName ]: Name of the event channel. + [EventSubscriptionName ]: Name of the event subscription. + [Id ]: Resource identity path + [Location ]: Name of the location. + [ParentName ]: The name of the parent resource (namely, either, the topic name, domain name, or partner namespace name). + [ParentType ]: The type of the parent resource. This can be either \'topics\', \'domains\', or \'partnerNamespaces\'. + [PartnerDestinationName ]: Name of the partner destination. + [PartnerNamespaceName ]: Name of the partner namespace. + [PartnerRegistrationName ]: Name of the partner registration. + [PartnerTopicName ]: Name of the partner topic. + [PrivateEndpointConnectionName ]: The name of the private endpoint connection connection. + [PrivateLinkResourceName ]: The name of private link resource. + [ProviderNamespace ]: Namespace of the provider of the topic. + [ResourceGroupName ]: The name of the resource group within the partners subscription. + [ResourceName ]: Name of the resource. + [ResourceTypeName ]: Name of the resource type. + [Scope ]: The scope of the event subscription. The scope can be a subscription, or a resource group, or a top level resource belonging to a resource provider namespace, or an EventGrid topic. For example, use '/subscriptions/{subscriptionId}/' for a subscription, '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}' for a resource group, and '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}' for a resource, and '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.EventGrid/topics/{topicName}' for an EventGrid topic. + [SubscriptionId ]: Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription ID forms part of the URI for every service call. + [SystemTopicName ]: Name of the system topic. + [TopicName ]: Name of the domain topic. + [TopicTypeName ]: Name of the topic type. + [VerifiedPartnerName ]: Name of the verified partner. +.Link +https://docs.microsoft.com/en-us/powershell/module/az.eventgrid/remove-azeventgrideventsubscription +#> +function Remove-AzEventGridEventSubscription { +[OutputType([System.Boolean])] +[CmdletBinding(DefaultParameterSetName='Delete', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(ParameterSetName='Delete', Mandatory)] + [Alias('EventSubscriptionName')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [System.String] + # Name of the event subscription. + ${Name}, + + [Parameter(ParameterSetName='Delete', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [System.String] + # The scope of the event subscription. + # The scope can be a subscription, or a resource group, or a top level resource belonging to a resource provider namespace, or an EventGrid topic. + # For example, use '/subscriptions/{subscriptionId}/' for a subscription, '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}' for a resource group, and '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}' for a resource, and '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.EventGrid/topics/{topicName}' for an EventGrid topic. + ${Scope}, + + [Parameter(ParameterSetName='DeleteViaIdentity', Mandatory, ValueFromPipeline)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.IEventGridIdentity] + # Identity Parameter + # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + ${InputObject}, + + [Parameter()] + [Alias('AzureRMContext', 'AzureCredential')] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Run the command as a job + ${AsJob}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Run the command asynchronously + ${NoWait}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Returns true when the command succeeds + ${PassThru}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + if ($null -eq [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion) { + [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion = $Host.Runspace.Version.ToString() + } + $preTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + if ($preTelemetryId -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId =(New-Guid).ToString() + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.module]::Instance.Telemetry.Invoke('Create', $MyInvocation, $parameterSet, $PSCmdlet) + } else { + $internalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + if ($internalCalledCmdlets -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $MyInvocation.MyCommand.Name + } else { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets += ',' + $MyInvocation.MyCommand.Name + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = 'internal' + } + + $mapping = @{ + Delete = 'Az.EventGrid.private\Remove-AzEventGridEventSubscription_Delete'; + DeleteViaIdentity = 'Az.EventGrid.private\Remove-AzEventGridEventSubscription_DeleteViaIdentity'; + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } + + finally { + $backupTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + $backupInternalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + +} +end { + try { + $steppablePipeline.End() + + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $backupTelemetryId + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $backupInternalCalledCmdlets + if ($preTelemetryId -eq '') { + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.module]::Instance.Telemetry.Invoke('Send', $MyInvocation, $parameterSet, $PSCmdlet) + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $preTelemetryId + + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} +} diff --git a/swaggerci/eventgrid/exports/Remove-AzEventGridPartnerConfiguration.ps1 b/swaggerci/eventgrid/exports/Remove-AzEventGridPartnerConfiguration.ps1 new file mode 100644 index 000000000000..256e71422092 --- /dev/null +++ b/swaggerci/eventgrid/exports/Remove-AzEventGridPartnerConfiguration.ps1 @@ -0,0 +1,224 @@ + +# ---------------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for license information. +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is regenerated. +# ---------------------------------------------------------------------------------- + +<# +.Synopsis +Delete existing partner configuration. +.Description +Delete existing partner configuration. +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Inputs +Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.IEventGridIdentity +.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 + [ChannelName ]: Name of the channel. + [DomainName ]: Name of the domain. + [DomainTopicName ]: Name of the topic. + [EventChannelName ]: Name of the event channel. + [EventSubscriptionName ]: Name of the event subscription. + [Id ]: Resource identity path + [Location ]: Name of the location. + [ParentName ]: The name of the parent resource (namely, either, the topic name, domain name, or partner namespace name). + [ParentType ]: The type of the parent resource. This can be either \'topics\', \'domains\', or \'partnerNamespaces\'. + [PartnerDestinationName ]: Name of the partner destination. + [PartnerNamespaceName ]: Name of the partner namespace. + [PartnerRegistrationName ]: Name of the partner registration. + [PartnerTopicName ]: Name of the partner topic. + [PrivateEndpointConnectionName ]: The name of the private endpoint connection connection. + [PrivateLinkResourceName ]: The name of private link resource. + [ProviderNamespace ]: Namespace of the provider of the topic. + [ResourceGroupName ]: The name of the resource group within the partners subscription. + [ResourceName ]: Name of the resource. + [ResourceTypeName ]: Name of the resource type. + [Scope ]: The scope of the event subscription. The scope can be a subscription, or a resource group, or a top level resource belonging to a resource provider namespace, or an EventGrid topic. For example, use '/subscriptions/{subscriptionId}/' for a subscription, '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}' for a resource group, and '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}' for a resource, and '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.EventGrid/topics/{topicName}' for an EventGrid topic. + [SubscriptionId ]: Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription ID forms part of the URI for every service call. + [SystemTopicName ]: Name of the system topic. + [TopicName ]: Name of the domain topic. + [TopicTypeName ]: Name of the topic type. + [VerifiedPartnerName ]: Name of the verified partner. +.Link +https://docs.microsoft.com/en-us/powershell/module/az.eventgrid/remove-azeventgridpartnerconfiguration +#> +function Remove-AzEventGridPartnerConfiguration { +[OutputType([System.Boolean])] +[CmdletBinding(DefaultParameterSetName='Delete', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(ParameterSetName='Delete', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [System.String] + # The name of the resource group within the user's subscription. + ${ResourceGroupName}, + + [Parameter(ParameterSetName='Delete')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] + [System.String] + # Subscription credentials that uniquely identify a Microsoft Azure subscription. + # The subscription ID forms part of the URI for every service call. + ${SubscriptionId}, + + [Parameter(ParameterSetName='DeleteViaIdentity', Mandatory, ValueFromPipeline)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.IEventGridIdentity] + # Identity Parameter + # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + ${InputObject}, + + [Parameter()] + [Alias('AzureRMContext', 'AzureCredential')] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Run the command as a job + ${AsJob}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Run the command asynchronously + ${NoWait}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Returns true when the command succeeds + ${PassThru}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + if ($null -eq [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion) { + [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion = $Host.Runspace.Version.ToString() + } + $preTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + if ($preTelemetryId -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId =(New-Guid).ToString() + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.module]::Instance.Telemetry.Invoke('Create', $MyInvocation, $parameterSet, $PSCmdlet) + } else { + $internalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + if ($internalCalledCmdlets -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $MyInvocation.MyCommand.Name + } else { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets += ',' + $MyInvocation.MyCommand.Name + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = 'internal' + } + + $mapping = @{ + Delete = 'Az.EventGrid.private\Remove-AzEventGridPartnerConfiguration_Delete'; + DeleteViaIdentity = 'Az.EventGrid.private\Remove-AzEventGridPartnerConfiguration_DeleteViaIdentity'; + } + if (('Delete') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { + $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } + + finally { + $backupTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + $backupInternalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + +} +end { + try { + $steppablePipeline.End() + + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $backupTelemetryId + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $backupInternalCalledCmdlets + if ($preTelemetryId -eq '') { + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.module]::Instance.Telemetry.Invoke('Send', $MyInvocation, $parameterSet, $PSCmdlet) + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $preTelemetryId + + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} +} diff --git a/swaggerci/eventgrid/exports/Remove-AzEventGridPartnerDestination.ps1 b/swaggerci/eventgrid/exports/Remove-AzEventGridPartnerDestination.ps1 new file mode 100644 index 000000000000..76fc99aa96df --- /dev/null +++ b/swaggerci/eventgrid/exports/Remove-AzEventGridPartnerDestination.ps1 @@ -0,0 +1,231 @@ + +# ---------------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for license information. +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is regenerated. +# ---------------------------------------------------------------------------------- + +<# +.Synopsis +Delete existing partner destination. +.Description +Delete existing partner destination. +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Inputs +Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.IEventGridIdentity +.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 + [ChannelName ]: Name of the channel. + [DomainName ]: Name of the domain. + [DomainTopicName ]: Name of the topic. + [EventChannelName ]: Name of the event channel. + [EventSubscriptionName ]: Name of the event subscription. + [Id ]: Resource identity path + [Location ]: Name of the location. + [ParentName ]: The name of the parent resource (namely, either, the topic name, domain name, or partner namespace name). + [ParentType ]: The type of the parent resource. This can be either \'topics\', \'domains\', or \'partnerNamespaces\'. + [PartnerDestinationName ]: Name of the partner destination. + [PartnerNamespaceName ]: Name of the partner namespace. + [PartnerRegistrationName ]: Name of the partner registration. + [PartnerTopicName ]: Name of the partner topic. + [PrivateEndpointConnectionName ]: The name of the private endpoint connection connection. + [PrivateLinkResourceName ]: The name of private link resource. + [ProviderNamespace ]: Namespace of the provider of the topic. + [ResourceGroupName ]: The name of the resource group within the partners subscription. + [ResourceName ]: Name of the resource. + [ResourceTypeName ]: Name of the resource type. + [Scope ]: The scope of the event subscription. The scope can be a subscription, or a resource group, or a top level resource belonging to a resource provider namespace, or an EventGrid topic. For example, use '/subscriptions/{subscriptionId}/' for a subscription, '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}' for a resource group, and '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}' for a resource, and '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.EventGrid/topics/{topicName}' for an EventGrid topic. + [SubscriptionId ]: Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription ID forms part of the URI for every service call. + [SystemTopicName ]: Name of the system topic. + [TopicName ]: Name of the domain topic. + [TopicTypeName ]: Name of the topic type. + [VerifiedPartnerName ]: Name of the verified partner. +.Link +https://docs.microsoft.com/en-us/powershell/module/az.eventgrid/remove-azeventgridpartnerdestination +#> +function Remove-AzEventGridPartnerDestination { +[OutputType([System.Boolean])] +[CmdletBinding(DefaultParameterSetName='Delete', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(ParameterSetName='Delete', Mandatory)] + [Alias('PartnerDestinationName')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [System.String] + # Name of the partner destination. + ${Name}, + + [Parameter(ParameterSetName='Delete', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [System.String] + # The name of the resource group within the user's subscription. + ${ResourceGroupName}, + + [Parameter(ParameterSetName='Delete')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] + [System.String] + # Subscription credentials that uniquely identify a Microsoft Azure subscription. + # The subscription ID forms part of the URI for every service call. + ${SubscriptionId}, + + [Parameter(ParameterSetName='DeleteViaIdentity', Mandatory, ValueFromPipeline)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.IEventGridIdentity] + # Identity Parameter + # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + ${InputObject}, + + [Parameter()] + [Alias('AzureRMContext', 'AzureCredential')] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Run the command as a job + ${AsJob}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Run the command asynchronously + ${NoWait}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Returns true when the command succeeds + ${PassThru}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + if ($null -eq [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion) { + [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion = $Host.Runspace.Version.ToString() + } + $preTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + if ($preTelemetryId -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId =(New-Guid).ToString() + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.module]::Instance.Telemetry.Invoke('Create', $MyInvocation, $parameterSet, $PSCmdlet) + } else { + $internalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + if ($internalCalledCmdlets -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $MyInvocation.MyCommand.Name + } else { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets += ',' + $MyInvocation.MyCommand.Name + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = 'internal' + } + + $mapping = @{ + Delete = 'Az.EventGrid.private\Remove-AzEventGridPartnerDestination_Delete'; + DeleteViaIdentity = 'Az.EventGrid.private\Remove-AzEventGridPartnerDestination_DeleteViaIdentity'; + } + if (('Delete') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { + $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } + + finally { + $backupTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + $backupInternalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + +} +end { + try { + $steppablePipeline.End() + + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $backupTelemetryId + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $backupInternalCalledCmdlets + if ($preTelemetryId -eq '') { + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.module]::Instance.Telemetry.Invoke('Send', $MyInvocation, $parameterSet, $PSCmdlet) + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $preTelemetryId + + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} +} diff --git a/swaggerci/eventgrid/exports/Remove-AzEventGridPartnerNamespace.ps1 b/swaggerci/eventgrid/exports/Remove-AzEventGridPartnerNamespace.ps1 new file mode 100644 index 000000000000..c069b35b1e31 --- /dev/null +++ b/swaggerci/eventgrid/exports/Remove-AzEventGridPartnerNamespace.ps1 @@ -0,0 +1,231 @@ + +# ---------------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for license information. +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is regenerated. +# ---------------------------------------------------------------------------------- + +<# +.Synopsis +Delete existing partner namespace. +.Description +Delete existing partner namespace. +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Inputs +Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.IEventGridIdentity +.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 + [ChannelName ]: Name of the channel. + [DomainName ]: Name of the domain. + [DomainTopicName ]: Name of the topic. + [EventChannelName ]: Name of the event channel. + [EventSubscriptionName ]: Name of the event subscription. + [Id ]: Resource identity path + [Location ]: Name of the location. + [ParentName ]: The name of the parent resource (namely, either, the topic name, domain name, or partner namespace name). + [ParentType ]: The type of the parent resource. This can be either \'topics\', \'domains\', or \'partnerNamespaces\'. + [PartnerDestinationName ]: Name of the partner destination. + [PartnerNamespaceName ]: Name of the partner namespace. + [PartnerRegistrationName ]: Name of the partner registration. + [PartnerTopicName ]: Name of the partner topic. + [PrivateEndpointConnectionName ]: The name of the private endpoint connection connection. + [PrivateLinkResourceName ]: The name of private link resource. + [ProviderNamespace ]: Namespace of the provider of the topic. + [ResourceGroupName ]: The name of the resource group within the partners subscription. + [ResourceName ]: Name of the resource. + [ResourceTypeName ]: Name of the resource type. + [Scope ]: The scope of the event subscription. The scope can be a subscription, or a resource group, or a top level resource belonging to a resource provider namespace, or an EventGrid topic. For example, use '/subscriptions/{subscriptionId}/' for a subscription, '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}' for a resource group, and '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}' for a resource, and '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.EventGrid/topics/{topicName}' for an EventGrid topic. + [SubscriptionId ]: Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription ID forms part of the URI for every service call. + [SystemTopicName ]: Name of the system topic. + [TopicName ]: Name of the domain topic. + [TopicTypeName ]: Name of the topic type. + [VerifiedPartnerName ]: Name of the verified partner. +.Link +https://docs.microsoft.com/en-us/powershell/module/az.eventgrid/remove-azeventgridpartnernamespace +#> +function Remove-AzEventGridPartnerNamespace { +[OutputType([System.Boolean])] +[CmdletBinding(DefaultParameterSetName='Delete', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(ParameterSetName='Delete', Mandatory)] + [Alias('PartnerNamespaceName')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [System.String] + # Name of the partner namespace. + ${Name}, + + [Parameter(ParameterSetName='Delete', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [System.String] + # The name of the resource group within the user's subscription. + ${ResourceGroupName}, + + [Parameter(ParameterSetName='Delete')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] + [System.String] + # Subscription credentials that uniquely identify a Microsoft Azure subscription. + # The subscription ID forms part of the URI for every service call. + ${SubscriptionId}, + + [Parameter(ParameterSetName='DeleteViaIdentity', Mandatory, ValueFromPipeline)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.IEventGridIdentity] + # Identity Parameter + # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + ${InputObject}, + + [Parameter()] + [Alias('AzureRMContext', 'AzureCredential')] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Run the command as a job + ${AsJob}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Run the command asynchronously + ${NoWait}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Returns true when the command succeeds + ${PassThru}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + if ($null -eq [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion) { + [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion = $Host.Runspace.Version.ToString() + } + $preTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + if ($preTelemetryId -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId =(New-Guid).ToString() + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.module]::Instance.Telemetry.Invoke('Create', $MyInvocation, $parameterSet, $PSCmdlet) + } else { + $internalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + if ($internalCalledCmdlets -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $MyInvocation.MyCommand.Name + } else { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets += ',' + $MyInvocation.MyCommand.Name + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = 'internal' + } + + $mapping = @{ + Delete = 'Az.EventGrid.private\Remove-AzEventGridPartnerNamespace_Delete'; + DeleteViaIdentity = 'Az.EventGrid.private\Remove-AzEventGridPartnerNamespace_DeleteViaIdentity'; + } + if (('Delete') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { + $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } + + finally { + $backupTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + $backupInternalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + +} +end { + try { + $steppablePipeline.End() + + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $backupTelemetryId + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $backupInternalCalledCmdlets + if ($preTelemetryId -eq '') { + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.module]::Instance.Telemetry.Invoke('Send', $MyInvocation, $parameterSet, $PSCmdlet) + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $preTelemetryId + + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} +} diff --git a/swaggerci/eventgrid/exports/Remove-AzEventGridPartnerRegistration.ps1 b/swaggerci/eventgrid/exports/Remove-AzEventGridPartnerRegistration.ps1 new file mode 100644 index 000000000000..3bad289d38ec --- /dev/null +++ b/swaggerci/eventgrid/exports/Remove-AzEventGridPartnerRegistration.ps1 @@ -0,0 +1,231 @@ + +# ---------------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for license information. +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is regenerated. +# ---------------------------------------------------------------------------------- + +<# +.Synopsis +Deletes a partner registration with the specified parameters. +.Description +Deletes a partner registration with the specified parameters. +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Inputs +Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.IEventGridIdentity +.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 + [ChannelName ]: Name of the channel. + [DomainName ]: Name of the domain. + [DomainTopicName ]: Name of the topic. + [EventChannelName ]: Name of the event channel. + [EventSubscriptionName ]: Name of the event subscription. + [Id ]: Resource identity path + [Location ]: Name of the location. + [ParentName ]: The name of the parent resource (namely, either, the topic name, domain name, or partner namespace name). + [ParentType ]: The type of the parent resource. This can be either \'topics\', \'domains\', or \'partnerNamespaces\'. + [PartnerDestinationName ]: Name of the partner destination. + [PartnerNamespaceName ]: Name of the partner namespace. + [PartnerRegistrationName ]: Name of the partner registration. + [PartnerTopicName ]: Name of the partner topic. + [PrivateEndpointConnectionName ]: The name of the private endpoint connection connection. + [PrivateLinkResourceName ]: The name of private link resource. + [ProviderNamespace ]: Namespace of the provider of the topic. + [ResourceGroupName ]: The name of the resource group within the partners subscription. + [ResourceName ]: Name of the resource. + [ResourceTypeName ]: Name of the resource type. + [Scope ]: The scope of the event subscription. The scope can be a subscription, or a resource group, or a top level resource belonging to a resource provider namespace, or an EventGrid topic. For example, use '/subscriptions/{subscriptionId}/' for a subscription, '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}' for a resource group, and '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}' for a resource, and '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.EventGrid/topics/{topicName}' for an EventGrid topic. + [SubscriptionId ]: Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription ID forms part of the URI for every service call. + [SystemTopicName ]: Name of the system topic. + [TopicName ]: Name of the domain topic. + [TopicTypeName ]: Name of the topic type. + [VerifiedPartnerName ]: Name of the verified partner. +.Link +https://docs.microsoft.com/en-us/powershell/module/az.eventgrid/remove-azeventgridpartnerregistration +#> +function Remove-AzEventGridPartnerRegistration { +[OutputType([System.Boolean])] +[CmdletBinding(DefaultParameterSetName='Delete', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(ParameterSetName='Delete', Mandatory)] + [Alias('PartnerRegistrationName')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [System.String] + # Name of the partner registration. + ${Name}, + + [Parameter(ParameterSetName='Delete', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [System.String] + # The name of the resource group within the user's subscription. + ${ResourceGroupName}, + + [Parameter(ParameterSetName='Delete')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] + [System.String] + # Subscription credentials that uniquely identify a Microsoft Azure subscription. + # The subscription ID forms part of the URI for every service call. + ${SubscriptionId}, + + [Parameter(ParameterSetName='DeleteViaIdentity', Mandatory, ValueFromPipeline)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.IEventGridIdentity] + # Identity Parameter + # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + ${InputObject}, + + [Parameter()] + [Alias('AzureRMContext', 'AzureCredential')] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Run the command as a job + ${AsJob}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Run the command asynchronously + ${NoWait}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Returns true when the command succeeds + ${PassThru}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + if ($null -eq [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion) { + [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion = $Host.Runspace.Version.ToString() + } + $preTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + if ($preTelemetryId -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId =(New-Guid).ToString() + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.module]::Instance.Telemetry.Invoke('Create', $MyInvocation, $parameterSet, $PSCmdlet) + } else { + $internalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + if ($internalCalledCmdlets -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $MyInvocation.MyCommand.Name + } else { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets += ',' + $MyInvocation.MyCommand.Name + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = 'internal' + } + + $mapping = @{ + Delete = 'Az.EventGrid.private\Remove-AzEventGridPartnerRegistration_Delete'; + DeleteViaIdentity = 'Az.EventGrid.private\Remove-AzEventGridPartnerRegistration_DeleteViaIdentity'; + } + if (('Delete') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { + $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } + + finally { + $backupTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + $backupInternalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + +} +end { + try { + $steppablePipeline.End() + + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $backupTelemetryId + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $backupInternalCalledCmdlets + if ($preTelemetryId -eq '') { + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.module]::Instance.Telemetry.Invoke('Send', $MyInvocation, $parameterSet, $PSCmdlet) + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $preTelemetryId + + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} +} diff --git a/swaggerci/eventgrid/exports/Remove-AzEventGridPartnerTopic.ps1 b/swaggerci/eventgrid/exports/Remove-AzEventGridPartnerTopic.ps1 new file mode 100644 index 000000000000..71b8000a03e8 --- /dev/null +++ b/swaggerci/eventgrid/exports/Remove-AzEventGridPartnerTopic.ps1 @@ -0,0 +1,231 @@ + +# ---------------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for license information. +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is regenerated. +# ---------------------------------------------------------------------------------- + +<# +.Synopsis +Delete existing partner topic. +.Description +Delete existing partner topic. +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Inputs +Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.IEventGridIdentity +.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 + [ChannelName ]: Name of the channel. + [DomainName ]: Name of the domain. + [DomainTopicName ]: Name of the topic. + [EventChannelName ]: Name of the event channel. + [EventSubscriptionName ]: Name of the event subscription. + [Id ]: Resource identity path + [Location ]: Name of the location. + [ParentName ]: The name of the parent resource (namely, either, the topic name, domain name, or partner namespace name). + [ParentType ]: The type of the parent resource. This can be either \'topics\', \'domains\', or \'partnerNamespaces\'. + [PartnerDestinationName ]: Name of the partner destination. + [PartnerNamespaceName ]: Name of the partner namespace. + [PartnerRegistrationName ]: Name of the partner registration. + [PartnerTopicName ]: Name of the partner topic. + [PrivateEndpointConnectionName ]: The name of the private endpoint connection connection. + [PrivateLinkResourceName ]: The name of private link resource. + [ProviderNamespace ]: Namespace of the provider of the topic. + [ResourceGroupName ]: The name of the resource group within the partners subscription. + [ResourceName ]: Name of the resource. + [ResourceTypeName ]: Name of the resource type. + [Scope ]: The scope of the event subscription. The scope can be a subscription, or a resource group, or a top level resource belonging to a resource provider namespace, or an EventGrid topic. For example, use '/subscriptions/{subscriptionId}/' for a subscription, '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}' for a resource group, and '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}' for a resource, and '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.EventGrid/topics/{topicName}' for an EventGrid topic. + [SubscriptionId ]: Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription ID forms part of the URI for every service call. + [SystemTopicName ]: Name of the system topic. + [TopicName ]: Name of the domain topic. + [TopicTypeName ]: Name of the topic type. + [VerifiedPartnerName ]: Name of the verified partner. +.Link +https://docs.microsoft.com/en-us/powershell/module/az.eventgrid/remove-azeventgridpartnertopic +#> +function Remove-AzEventGridPartnerTopic { +[OutputType([System.Boolean])] +[CmdletBinding(DefaultParameterSetName='Delete', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(ParameterSetName='Delete', Mandatory)] + [Alias('PartnerTopicName')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [System.String] + # Name of the partner topic. + ${Name}, + + [Parameter(ParameterSetName='Delete', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [System.String] + # The name of the resource group within the user's subscription. + ${ResourceGroupName}, + + [Parameter(ParameterSetName='Delete')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] + [System.String] + # Subscription credentials that uniquely identify a Microsoft Azure subscription. + # The subscription ID forms part of the URI for every service call. + ${SubscriptionId}, + + [Parameter(ParameterSetName='DeleteViaIdentity', Mandatory, ValueFromPipeline)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.IEventGridIdentity] + # Identity Parameter + # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + ${InputObject}, + + [Parameter()] + [Alias('AzureRMContext', 'AzureCredential')] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Run the command as a job + ${AsJob}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Run the command asynchronously + ${NoWait}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Returns true when the command succeeds + ${PassThru}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + if ($null -eq [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion) { + [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion = $Host.Runspace.Version.ToString() + } + $preTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + if ($preTelemetryId -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId =(New-Guid).ToString() + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.module]::Instance.Telemetry.Invoke('Create', $MyInvocation, $parameterSet, $PSCmdlet) + } else { + $internalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + if ($internalCalledCmdlets -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $MyInvocation.MyCommand.Name + } else { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets += ',' + $MyInvocation.MyCommand.Name + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = 'internal' + } + + $mapping = @{ + Delete = 'Az.EventGrid.private\Remove-AzEventGridPartnerTopic_Delete'; + DeleteViaIdentity = 'Az.EventGrid.private\Remove-AzEventGridPartnerTopic_DeleteViaIdentity'; + } + if (('Delete') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { + $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } + + finally { + $backupTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + $backupInternalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + +} +end { + try { + $steppablePipeline.End() + + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $backupTelemetryId + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $backupInternalCalledCmdlets + if ($preTelemetryId -eq '') { + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.module]::Instance.Telemetry.Invoke('Send', $MyInvocation, $parameterSet, $PSCmdlet) + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $preTelemetryId + + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} +} diff --git a/swaggerci/eventgrid/exports/Remove-AzEventGridPartnerTopicEventSubscription.ps1 b/swaggerci/eventgrid/exports/Remove-AzEventGridPartnerTopicEventSubscription.ps1 new file mode 100644 index 000000000000..19fdf4c0eab0 --- /dev/null +++ b/swaggerci/eventgrid/exports/Remove-AzEventGridPartnerTopicEventSubscription.ps1 @@ -0,0 +1,237 @@ + +# ---------------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for license information. +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is regenerated. +# ---------------------------------------------------------------------------------- + +<# +.Synopsis +Delete an existing event subscription of a partner topic. +.Description +Delete an existing event subscription of a partner topic. +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Inputs +Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.IEventGridIdentity +.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 + [ChannelName ]: Name of the channel. + [DomainName ]: Name of the domain. + [DomainTopicName ]: Name of the topic. + [EventChannelName ]: Name of the event channel. + [EventSubscriptionName ]: Name of the event subscription. + [Id ]: Resource identity path + [Location ]: Name of the location. + [ParentName ]: The name of the parent resource (namely, either, the topic name, domain name, or partner namespace name). + [ParentType ]: The type of the parent resource. This can be either \'topics\', \'domains\', or \'partnerNamespaces\'. + [PartnerDestinationName ]: Name of the partner destination. + [PartnerNamespaceName ]: Name of the partner namespace. + [PartnerRegistrationName ]: Name of the partner registration. + [PartnerTopicName ]: Name of the partner topic. + [PrivateEndpointConnectionName ]: The name of the private endpoint connection connection. + [PrivateLinkResourceName ]: The name of private link resource. + [ProviderNamespace ]: Namespace of the provider of the topic. + [ResourceGroupName ]: The name of the resource group within the partners subscription. + [ResourceName ]: Name of the resource. + [ResourceTypeName ]: Name of the resource type. + [Scope ]: The scope of the event subscription. The scope can be a subscription, or a resource group, or a top level resource belonging to a resource provider namespace, or an EventGrid topic. For example, use '/subscriptions/{subscriptionId}/' for a subscription, '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}' for a resource group, and '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}' for a resource, and '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.EventGrid/topics/{topicName}' for an EventGrid topic. + [SubscriptionId ]: Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription ID forms part of the URI for every service call. + [SystemTopicName ]: Name of the system topic. + [TopicName ]: Name of the domain topic. + [TopicTypeName ]: Name of the topic type. + [VerifiedPartnerName ]: Name of the verified partner. +.Link +https://docs.microsoft.com/en-us/powershell/module/az.eventgrid/remove-azeventgridpartnertopiceventsubscription +#> +function Remove-AzEventGridPartnerTopicEventSubscription { +[OutputType([System.Boolean])] +[CmdletBinding(DefaultParameterSetName='Delete', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(ParameterSetName='Delete', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [System.String] + # Name of the event subscription to be created. + # Event subscription names must be between 3 and 100 characters in length and use alphanumeric letters only. + ${EventSubscriptionName}, + + [Parameter(ParameterSetName='Delete', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [System.String] + # Name of the partner topic. + ${PartnerTopicName}, + + [Parameter(ParameterSetName='Delete', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [System.String] + # The name of the resource group within the user's subscription. + ${ResourceGroupName}, + + [Parameter(ParameterSetName='Delete')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] + [System.String] + # Subscription credentials that uniquely identify a Microsoft Azure subscription. + # The subscription ID forms part of the URI for every service call. + ${SubscriptionId}, + + [Parameter(ParameterSetName='DeleteViaIdentity', Mandatory, ValueFromPipeline)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.IEventGridIdentity] + # Identity Parameter + # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + ${InputObject}, + + [Parameter()] + [Alias('AzureRMContext', 'AzureCredential')] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Run the command as a job + ${AsJob}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Run the command asynchronously + ${NoWait}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Returns true when the command succeeds + ${PassThru}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + if ($null -eq [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion) { + [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion = $Host.Runspace.Version.ToString() + } + $preTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + if ($preTelemetryId -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId =(New-Guid).ToString() + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.module]::Instance.Telemetry.Invoke('Create', $MyInvocation, $parameterSet, $PSCmdlet) + } else { + $internalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + if ($internalCalledCmdlets -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $MyInvocation.MyCommand.Name + } else { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets += ',' + $MyInvocation.MyCommand.Name + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = 'internal' + } + + $mapping = @{ + Delete = 'Az.EventGrid.private\Remove-AzEventGridPartnerTopicEventSubscription_Delete'; + DeleteViaIdentity = 'Az.EventGrid.private\Remove-AzEventGridPartnerTopicEventSubscription_DeleteViaIdentity'; + } + if (('Delete') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { + $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } + + finally { + $backupTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + $backupInternalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + +} +end { + try { + $steppablePipeline.End() + + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $backupTelemetryId + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $backupInternalCalledCmdlets + if ($preTelemetryId -eq '') { + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.module]::Instance.Telemetry.Invoke('Send', $MyInvocation, $parameterSet, $PSCmdlet) + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $preTelemetryId + + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} +} diff --git a/swaggerci/eventgrid/exports/Remove-AzEventGridPrivateEndpointConnection.ps1 b/swaggerci/eventgrid/exports/Remove-AzEventGridPrivateEndpointConnection.ps1 new file mode 100644 index 000000000000..1d7533ea9625 --- /dev/null +++ b/swaggerci/eventgrid/exports/Remove-AzEventGridPrivateEndpointConnection.ps1 @@ -0,0 +1,245 @@ + +# ---------------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for license information. +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is regenerated. +# ---------------------------------------------------------------------------------- + +<# +.Synopsis +Delete a specific private endpoint connection under a topic, domain, or partner namespace. +.Description +Delete a specific private endpoint connection under a topic, domain, or partner namespace. +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Inputs +Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.IEventGridIdentity +.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 + [ChannelName ]: Name of the channel. + [DomainName ]: Name of the domain. + [DomainTopicName ]: Name of the topic. + [EventChannelName ]: Name of the event channel. + [EventSubscriptionName ]: Name of the event subscription. + [Id ]: Resource identity path + [Location ]: Name of the location. + [ParentName ]: The name of the parent resource (namely, either, the topic name, domain name, or partner namespace name). + [ParentType ]: The type of the parent resource. This can be either \'topics\', \'domains\', or \'partnerNamespaces\'. + [PartnerDestinationName ]: Name of the partner destination. + [PartnerNamespaceName ]: Name of the partner namespace. + [PartnerRegistrationName ]: Name of the partner registration. + [PartnerTopicName ]: Name of the partner topic. + [PrivateEndpointConnectionName ]: The name of the private endpoint connection connection. + [PrivateLinkResourceName ]: The name of private link resource. + [ProviderNamespace ]: Namespace of the provider of the topic. + [ResourceGroupName ]: The name of the resource group within the partners subscription. + [ResourceName ]: Name of the resource. + [ResourceTypeName ]: Name of the resource type. + [Scope ]: The scope of the event subscription. The scope can be a subscription, or a resource group, or a top level resource belonging to a resource provider namespace, or an EventGrid topic. For example, use '/subscriptions/{subscriptionId}/' for a subscription, '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}' for a resource group, and '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}' for a resource, and '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.EventGrid/topics/{topicName}' for an EventGrid topic. + [SubscriptionId ]: Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription ID forms part of the URI for every service call. + [SystemTopicName ]: Name of the system topic. + [TopicName ]: Name of the domain topic. + [TopicTypeName ]: Name of the topic type. + [VerifiedPartnerName ]: Name of the verified partner. +.Link +https://docs.microsoft.com/en-us/powershell/module/az.eventgrid/remove-azeventgridprivateendpointconnection +#> +function Remove-AzEventGridPrivateEndpointConnection { +[OutputType([System.Boolean])] +[CmdletBinding(DefaultParameterSetName='Delete', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(ParameterSetName='Delete', Mandatory)] + [Alias('PrivateEndpointConnectionName')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [System.String] + # The name of the private endpoint connection connection. + ${Name}, + + [Parameter(ParameterSetName='Delete', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [System.String] + # The name of the parent resource (namely, either, the topic name, domain name, or partner namespace name). + ${ParentName}, + + [Parameter(ParameterSetName='Delete', Mandatory)] + [ArgumentCompleter([Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.ParentType])] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.ParentType] + # The type of the parent resource. + # This can be either \'topics\', \'domains\', or \'partnerNamespaces\'. + ${ParentType}, + + [Parameter(ParameterSetName='Delete', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [System.String] + # The name of the resource group within the user's subscription. + ${ResourceGroupName}, + + [Parameter(ParameterSetName='Delete')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] + [System.String] + # Subscription credentials that uniquely identify a Microsoft Azure subscription. + # The subscription ID forms part of the URI for every service call. + ${SubscriptionId}, + + [Parameter(ParameterSetName='DeleteViaIdentity', Mandatory, ValueFromPipeline)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.IEventGridIdentity] + # Identity Parameter + # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + ${InputObject}, + + [Parameter()] + [Alias('AzureRMContext', 'AzureCredential')] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Run the command as a job + ${AsJob}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Run the command asynchronously + ${NoWait}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Returns true when the command succeeds + ${PassThru}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + if ($null -eq [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion) { + [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion = $Host.Runspace.Version.ToString() + } + $preTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + if ($preTelemetryId -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId =(New-Guid).ToString() + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.module]::Instance.Telemetry.Invoke('Create', $MyInvocation, $parameterSet, $PSCmdlet) + } else { + $internalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + if ($internalCalledCmdlets -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $MyInvocation.MyCommand.Name + } else { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets += ',' + $MyInvocation.MyCommand.Name + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = 'internal' + } + + $mapping = @{ + Delete = 'Az.EventGrid.private\Remove-AzEventGridPrivateEndpointConnection_Delete'; + DeleteViaIdentity = 'Az.EventGrid.private\Remove-AzEventGridPrivateEndpointConnection_DeleteViaIdentity'; + } + if (('Delete') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { + $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } + + finally { + $backupTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + $backupInternalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + +} +end { + try { + $steppablePipeline.End() + + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $backupTelemetryId + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $backupInternalCalledCmdlets + if ($preTelemetryId -eq '') { + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.module]::Instance.Telemetry.Invoke('Send', $MyInvocation, $parameterSet, $PSCmdlet) + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $preTelemetryId + + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} +} diff --git a/swaggerci/eventgrid/exports/Remove-AzEventGridSystemTopic.ps1 b/swaggerci/eventgrid/exports/Remove-AzEventGridSystemTopic.ps1 new file mode 100644 index 000000000000..f6cd5560954e --- /dev/null +++ b/swaggerci/eventgrid/exports/Remove-AzEventGridSystemTopic.ps1 @@ -0,0 +1,231 @@ + +# ---------------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for license information. +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is regenerated. +# ---------------------------------------------------------------------------------- + +<# +.Synopsis +Delete existing system topic. +.Description +Delete existing system topic. +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Inputs +Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.IEventGridIdentity +.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 + [ChannelName ]: Name of the channel. + [DomainName ]: Name of the domain. + [DomainTopicName ]: Name of the topic. + [EventChannelName ]: Name of the event channel. + [EventSubscriptionName ]: Name of the event subscription. + [Id ]: Resource identity path + [Location ]: Name of the location. + [ParentName ]: The name of the parent resource (namely, either, the topic name, domain name, or partner namespace name). + [ParentType ]: The type of the parent resource. This can be either \'topics\', \'domains\', or \'partnerNamespaces\'. + [PartnerDestinationName ]: Name of the partner destination. + [PartnerNamespaceName ]: Name of the partner namespace. + [PartnerRegistrationName ]: Name of the partner registration. + [PartnerTopicName ]: Name of the partner topic. + [PrivateEndpointConnectionName ]: The name of the private endpoint connection connection. + [PrivateLinkResourceName ]: The name of private link resource. + [ProviderNamespace ]: Namespace of the provider of the topic. + [ResourceGroupName ]: The name of the resource group within the partners subscription. + [ResourceName ]: Name of the resource. + [ResourceTypeName ]: Name of the resource type. + [Scope ]: The scope of the event subscription. The scope can be a subscription, or a resource group, or a top level resource belonging to a resource provider namespace, or an EventGrid topic. For example, use '/subscriptions/{subscriptionId}/' for a subscription, '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}' for a resource group, and '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}' for a resource, and '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.EventGrid/topics/{topicName}' for an EventGrid topic. + [SubscriptionId ]: Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription ID forms part of the URI for every service call. + [SystemTopicName ]: Name of the system topic. + [TopicName ]: Name of the domain topic. + [TopicTypeName ]: Name of the topic type. + [VerifiedPartnerName ]: Name of the verified partner. +.Link +https://docs.microsoft.com/en-us/powershell/module/az.eventgrid/remove-azeventgridsystemtopic +#> +function Remove-AzEventGridSystemTopic { +[OutputType([System.Boolean])] +[CmdletBinding(DefaultParameterSetName='Delete', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(ParameterSetName='Delete', Mandatory)] + [Alias('SystemTopicName')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [System.String] + # Name of the system topic. + ${Name}, + + [Parameter(ParameterSetName='Delete', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [System.String] + # The name of the resource group within the user's subscription. + ${ResourceGroupName}, + + [Parameter(ParameterSetName='Delete')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] + [System.String] + # Subscription credentials that uniquely identify a Microsoft Azure subscription. + # The subscription ID forms part of the URI for every service call. + ${SubscriptionId}, + + [Parameter(ParameterSetName='DeleteViaIdentity', Mandatory, ValueFromPipeline)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.IEventGridIdentity] + # Identity Parameter + # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + ${InputObject}, + + [Parameter()] + [Alias('AzureRMContext', 'AzureCredential')] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Run the command as a job + ${AsJob}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Run the command asynchronously + ${NoWait}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Returns true when the command succeeds + ${PassThru}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + if ($null -eq [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion) { + [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion = $Host.Runspace.Version.ToString() + } + $preTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + if ($preTelemetryId -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId =(New-Guid).ToString() + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.module]::Instance.Telemetry.Invoke('Create', $MyInvocation, $parameterSet, $PSCmdlet) + } else { + $internalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + if ($internalCalledCmdlets -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $MyInvocation.MyCommand.Name + } else { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets += ',' + $MyInvocation.MyCommand.Name + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = 'internal' + } + + $mapping = @{ + Delete = 'Az.EventGrid.private\Remove-AzEventGridSystemTopic_Delete'; + DeleteViaIdentity = 'Az.EventGrid.private\Remove-AzEventGridSystemTopic_DeleteViaIdentity'; + } + if (('Delete') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { + $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } + + finally { + $backupTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + $backupInternalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + +} +end { + try { + $steppablePipeline.End() + + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $backupTelemetryId + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $backupInternalCalledCmdlets + if ($preTelemetryId -eq '') { + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.module]::Instance.Telemetry.Invoke('Send', $MyInvocation, $parameterSet, $PSCmdlet) + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $preTelemetryId + + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} +} diff --git a/swaggerci/eventgrid/exports/Remove-AzEventGridSystemTopicEventSubscription.ps1 b/swaggerci/eventgrid/exports/Remove-AzEventGridSystemTopicEventSubscription.ps1 new file mode 100644 index 000000000000..301550948516 --- /dev/null +++ b/swaggerci/eventgrid/exports/Remove-AzEventGridSystemTopicEventSubscription.ps1 @@ -0,0 +1,237 @@ + +# ---------------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for license information. +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is regenerated. +# ---------------------------------------------------------------------------------- + +<# +.Synopsis +Delete an existing event subscription of a system topic. +.Description +Delete an existing event subscription of a system topic. +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Inputs +Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.IEventGridIdentity +.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 + [ChannelName ]: Name of the channel. + [DomainName ]: Name of the domain. + [DomainTopicName ]: Name of the topic. + [EventChannelName ]: Name of the event channel. + [EventSubscriptionName ]: Name of the event subscription. + [Id ]: Resource identity path + [Location ]: Name of the location. + [ParentName ]: The name of the parent resource (namely, either, the topic name, domain name, or partner namespace name). + [ParentType ]: The type of the parent resource. This can be either \'topics\', \'domains\', or \'partnerNamespaces\'. + [PartnerDestinationName ]: Name of the partner destination. + [PartnerNamespaceName ]: Name of the partner namespace. + [PartnerRegistrationName ]: Name of the partner registration. + [PartnerTopicName ]: Name of the partner topic. + [PrivateEndpointConnectionName ]: The name of the private endpoint connection connection. + [PrivateLinkResourceName ]: The name of private link resource. + [ProviderNamespace ]: Namespace of the provider of the topic. + [ResourceGroupName ]: The name of the resource group within the partners subscription. + [ResourceName ]: Name of the resource. + [ResourceTypeName ]: Name of the resource type. + [Scope ]: The scope of the event subscription. The scope can be a subscription, or a resource group, or a top level resource belonging to a resource provider namespace, or an EventGrid topic. For example, use '/subscriptions/{subscriptionId}/' for a subscription, '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}' for a resource group, and '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}' for a resource, and '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.EventGrid/topics/{topicName}' for an EventGrid topic. + [SubscriptionId ]: Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription ID forms part of the URI for every service call. + [SystemTopicName ]: Name of the system topic. + [TopicName ]: Name of the domain topic. + [TopicTypeName ]: Name of the topic type. + [VerifiedPartnerName ]: Name of the verified partner. +.Link +https://docs.microsoft.com/en-us/powershell/module/az.eventgrid/remove-azeventgridsystemtopiceventsubscription +#> +function Remove-AzEventGridSystemTopicEventSubscription { +[OutputType([System.Boolean])] +[CmdletBinding(DefaultParameterSetName='Delete', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(ParameterSetName='Delete', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [System.String] + # Name of the event subscription to be created. + # Event subscription names must be between 3 and 100 characters in length and use alphanumeric letters only. + ${EventSubscriptionName}, + + [Parameter(ParameterSetName='Delete', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [System.String] + # The name of the resource group within the user's subscription. + ${ResourceGroupName}, + + [Parameter(ParameterSetName='Delete')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] + [System.String] + # Subscription credentials that uniquely identify a Microsoft Azure subscription. + # The subscription ID forms part of the URI for every service call. + ${SubscriptionId}, + + [Parameter(ParameterSetName='Delete', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [System.String] + # Name of the system topic. + ${SystemTopicName}, + + [Parameter(ParameterSetName='DeleteViaIdentity', Mandatory, ValueFromPipeline)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.IEventGridIdentity] + # Identity Parameter + # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + ${InputObject}, + + [Parameter()] + [Alias('AzureRMContext', 'AzureCredential')] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Run the command as a job + ${AsJob}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Run the command asynchronously + ${NoWait}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Returns true when the command succeeds + ${PassThru}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + if ($null -eq [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion) { + [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion = $Host.Runspace.Version.ToString() + } + $preTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + if ($preTelemetryId -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId =(New-Guid).ToString() + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.module]::Instance.Telemetry.Invoke('Create', $MyInvocation, $parameterSet, $PSCmdlet) + } else { + $internalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + if ($internalCalledCmdlets -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $MyInvocation.MyCommand.Name + } else { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets += ',' + $MyInvocation.MyCommand.Name + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = 'internal' + } + + $mapping = @{ + Delete = 'Az.EventGrid.private\Remove-AzEventGridSystemTopicEventSubscription_Delete'; + DeleteViaIdentity = 'Az.EventGrid.private\Remove-AzEventGridSystemTopicEventSubscription_DeleteViaIdentity'; + } + if (('Delete') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { + $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } + + finally { + $backupTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + $backupInternalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + +} +end { + try { + $steppablePipeline.End() + + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $backupTelemetryId + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $backupInternalCalledCmdlets + if ($preTelemetryId -eq '') { + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.module]::Instance.Telemetry.Invoke('Send', $MyInvocation, $parameterSet, $PSCmdlet) + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $preTelemetryId + + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} +} diff --git a/swaggerci/eventgrid/exports/Remove-AzEventGridTopic.ps1 b/swaggerci/eventgrid/exports/Remove-AzEventGridTopic.ps1 new file mode 100644 index 000000000000..7c93222f8657 --- /dev/null +++ b/swaggerci/eventgrid/exports/Remove-AzEventGridTopic.ps1 @@ -0,0 +1,231 @@ + +# ---------------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for license information. +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is regenerated. +# ---------------------------------------------------------------------------------- + +<# +.Synopsis +Delete existing topic. +.Description +Delete existing topic. +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Inputs +Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.IEventGridIdentity +.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 + [ChannelName ]: Name of the channel. + [DomainName ]: Name of the domain. + [DomainTopicName ]: Name of the topic. + [EventChannelName ]: Name of the event channel. + [EventSubscriptionName ]: Name of the event subscription. + [Id ]: Resource identity path + [Location ]: Name of the location. + [ParentName ]: The name of the parent resource (namely, either, the topic name, domain name, or partner namespace name). + [ParentType ]: The type of the parent resource. This can be either \'topics\', \'domains\', or \'partnerNamespaces\'. + [PartnerDestinationName ]: Name of the partner destination. + [PartnerNamespaceName ]: Name of the partner namespace. + [PartnerRegistrationName ]: Name of the partner registration. + [PartnerTopicName ]: Name of the partner topic. + [PrivateEndpointConnectionName ]: The name of the private endpoint connection connection. + [PrivateLinkResourceName ]: The name of private link resource. + [ProviderNamespace ]: Namespace of the provider of the topic. + [ResourceGroupName ]: The name of the resource group within the partners subscription. + [ResourceName ]: Name of the resource. + [ResourceTypeName ]: Name of the resource type. + [Scope ]: The scope of the event subscription. The scope can be a subscription, or a resource group, or a top level resource belonging to a resource provider namespace, or an EventGrid topic. For example, use '/subscriptions/{subscriptionId}/' for a subscription, '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}' for a resource group, and '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}' for a resource, and '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.EventGrid/topics/{topicName}' for an EventGrid topic. + [SubscriptionId ]: Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription ID forms part of the URI for every service call. + [SystemTopicName ]: Name of the system topic. + [TopicName ]: Name of the domain topic. + [TopicTypeName ]: Name of the topic type. + [VerifiedPartnerName ]: Name of the verified partner. +.Link +https://docs.microsoft.com/en-us/powershell/module/az.eventgrid/remove-azeventgridtopic +#> +function Remove-AzEventGridTopic { +[OutputType([System.Boolean])] +[CmdletBinding(DefaultParameterSetName='Delete', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(ParameterSetName='Delete', Mandatory)] + [Alias('TopicName')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [System.String] + # Name of the topic. + ${Name}, + + [Parameter(ParameterSetName='Delete', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [System.String] + # The name of the resource group within the user's subscription. + ${ResourceGroupName}, + + [Parameter(ParameterSetName='Delete')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] + [System.String] + # Subscription credentials that uniquely identify a Microsoft Azure subscription. + # The subscription ID forms part of the URI for every service call. + ${SubscriptionId}, + + [Parameter(ParameterSetName='DeleteViaIdentity', Mandatory, ValueFromPipeline)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.IEventGridIdentity] + # Identity Parameter + # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + ${InputObject}, + + [Parameter()] + [Alias('AzureRMContext', 'AzureCredential')] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Run the command as a job + ${AsJob}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Run the command asynchronously + ${NoWait}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Returns true when the command succeeds + ${PassThru}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + if ($null -eq [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion) { + [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion = $Host.Runspace.Version.ToString() + } + $preTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + if ($preTelemetryId -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId =(New-Guid).ToString() + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.module]::Instance.Telemetry.Invoke('Create', $MyInvocation, $parameterSet, $PSCmdlet) + } else { + $internalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + if ($internalCalledCmdlets -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $MyInvocation.MyCommand.Name + } else { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets += ',' + $MyInvocation.MyCommand.Name + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = 'internal' + } + + $mapping = @{ + Delete = 'Az.EventGrid.private\Remove-AzEventGridTopic_Delete'; + DeleteViaIdentity = 'Az.EventGrid.private\Remove-AzEventGridTopic_DeleteViaIdentity'; + } + if (('Delete') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { + $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } + + finally { + $backupTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + $backupInternalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + +} +end { + try { + $steppablePipeline.End() + + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $backupTelemetryId + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $backupInternalCalledCmdlets + if ($preTelemetryId -eq '') { + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.module]::Instance.Telemetry.Invoke('Send', $MyInvocation, $parameterSet, $PSCmdlet) + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $preTelemetryId + + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} +} diff --git a/swaggerci/eventgrid/exports/Remove-AzEventGridTopicEventSubscription.ps1 b/swaggerci/eventgrid/exports/Remove-AzEventGridTopicEventSubscription.ps1 new file mode 100644 index 000000000000..552a1551509e --- /dev/null +++ b/swaggerci/eventgrid/exports/Remove-AzEventGridTopicEventSubscription.ps1 @@ -0,0 +1,237 @@ + +# ---------------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for license information. +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is regenerated. +# ---------------------------------------------------------------------------------- + +<# +.Synopsis +Delete an existing event subscription for a topic. +.Description +Delete an existing event subscription for a topic. +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Inputs +Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.IEventGridIdentity +.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 + [ChannelName ]: Name of the channel. + [DomainName ]: Name of the domain. + [DomainTopicName ]: Name of the topic. + [EventChannelName ]: Name of the event channel. + [EventSubscriptionName ]: Name of the event subscription. + [Id ]: Resource identity path + [Location ]: Name of the location. + [ParentName ]: The name of the parent resource (namely, either, the topic name, domain name, or partner namespace name). + [ParentType ]: The type of the parent resource. This can be either \'topics\', \'domains\', or \'partnerNamespaces\'. + [PartnerDestinationName ]: Name of the partner destination. + [PartnerNamespaceName ]: Name of the partner namespace. + [PartnerRegistrationName ]: Name of the partner registration. + [PartnerTopicName ]: Name of the partner topic. + [PrivateEndpointConnectionName ]: The name of the private endpoint connection connection. + [PrivateLinkResourceName ]: The name of private link resource. + [ProviderNamespace ]: Namespace of the provider of the topic. + [ResourceGroupName ]: The name of the resource group within the partners subscription. + [ResourceName ]: Name of the resource. + [ResourceTypeName ]: Name of the resource type. + [Scope ]: The scope of the event subscription. The scope can be a subscription, or a resource group, or a top level resource belonging to a resource provider namespace, or an EventGrid topic. For example, use '/subscriptions/{subscriptionId}/' for a subscription, '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}' for a resource group, and '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}' for a resource, and '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.EventGrid/topics/{topicName}' for an EventGrid topic. + [SubscriptionId ]: Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription ID forms part of the URI for every service call. + [SystemTopicName ]: Name of the system topic. + [TopicName ]: Name of the domain topic. + [TopicTypeName ]: Name of the topic type. + [VerifiedPartnerName ]: Name of the verified partner. +.Link +https://docs.microsoft.com/en-us/powershell/module/az.eventgrid/remove-azeventgridtopiceventsubscription +#> +function Remove-AzEventGridTopicEventSubscription { +[OutputType([System.Boolean])] +[CmdletBinding(DefaultParameterSetName='Delete', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(ParameterSetName='Delete', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [System.String] + # Name of the event subscription to be deleted. + # Event subscription names must be between 3 and 100 characters in length and use alphanumeric letters only. + ${EventSubscriptionName}, + + [Parameter(ParameterSetName='Delete', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [System.String] + # The name of the resource group within the user's subscription. + ${ResourceGroupName}, + + [Parameter(ParameterSetName='Delete')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] + [System.String] + # Subscription credentials that uniquely identify a Microsoft Azure subscription. + # The subscription ID forms part of the URI for every service call. + ${SubscriptionId}, + + [Parameter(ParameterSetName='Delete', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [System.String] + # Name of the topic. + ${TopicName}, + + [Parameter(ParameterSetName='DeleteViaIdentity', Mandatory, ValueFromPipeline)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.IEventGridIdentity] + # Identity Parameter + # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + ${InputObject}, + + [Parameter()] + [Alias('AzureRMContext', 'AzureCredential')] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Run the command as a job + ${AsJob}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Run the command asynchronously + ${NoWait}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Returns true when the command succeeds + ${PassThru}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + if ($null -eq [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion) { + [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion = $Host.Runspace.Version.ToString() + } + $preTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + if ($preTelemetryId -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId =(New-Guid).ToString() + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.module]::Instance.Telemetry.Invoke('Create', $MyInvocation, $parameterSet, $PSCmdlet) + } else { + $internalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + if ($internalCalledCmdlets -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $MyInvocation.MyCommand.Name + } else { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets += ',' + $MyInvocation.MyCommand.Name + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = 'internal' + } + + $mapping = @{ + Delete = 'Az.EventGrid.private\Remove-AzEventGridTopicEventSubscription_Delete'; + DeleteViaIdentity = 'Az.EventGrid.private\Remove-AzEventGridTopicEventSubscription_DeleteViaIdentity'; + } + if (('Delete') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { + $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } + + finally { + $backupTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + $backupInternalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + +} +end { + try { + $steppablePipeline.End() + + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $backupTelemetryId + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $backupInternalCalledCmdlets + if ($preTelemetryId -eq '') { + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.module]::Instance.Telemetry.Invoke('Send', $MyInvocation, $parameterSet, $PSCmdlet) + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $preTelemetryId + + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} +} diff --git a/swaggerci/eventgrid/exports/Update-AzEventGridChannel.ps1 b/swaggerci/eventgrid/exports/Update-AzEventGridChannel.ps1 new file mode 100644 index 000000000000..a9fa5d9853b6 --- /dev/null +++ b/swaggerci/eventgrid/exports/Update-AzEventGridChannel.ps1 @@ -0,0 +1,247 @@ + +# ---------------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for license information. +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is regenerated. +# ---------------------------------------------------------------------------------- + +<# +.Synopsis +Synchronously updates a channel with the specified parameters. +.Description +Synchronously updates a channel with the specified parameters. +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Inputs +Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.IEventGridIdentity +.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 + [ChannelName ]: Name of the channel. + [DomainName ]: Name of the domain. + [DomainTopicName ]: Name of the topic. + [EventChannelName ]: Name of the event channel. + [EventSubscriptionName ]: Name of the event subscription. + [Id ]: Resource identity path + [Location ]: Name of the location. + [ParentName ]: The name of the parent resource (namely, either, the topic name, domain name, or partner namespace name). + [ParentType ]: The type of the parent resource. This can be either \'topics\', \'domains\', or \'partnerNamespaces\'. + [PartnerDestinationName ]: Name of the partner destination. + [PartnerNamespaceName ]: Name of the partner namespace. + [PartnerRegistrationName ]: Name of the partner registration. + [PartnerTopicName ]: Name of the partner topic. + [PrivateEndpointConnectionName ]: The name of the private endpoint connection connection. + [PrivateLinkResourceName ]: The name of private link resource. + [ProviderNamespace ]: Namespace of the provider of the topic. + [ResourceGroupName ]: The name of the resource group within the partners subscription. + [ResourceName ]: Name of the resource. + [ResourceTypeName ]: Name of the resource type. + [Scope ]: The scope of the event subscription. The scope can be a subscription, or a resource group, or a top level resource belonging to a resource provider namespace, or an EventGrid topic. For example, use '/subscriptions/{subscriptionId}/' for a subscription, '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}' for a resource group, and '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}' for a resource, and '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.EventGrid/topics/{topicName}' for an EventGrid topic. + [SubscriptionId ]: Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription ID forms part of the URI for every service call. + [SystemTopicName ]: Name of the system topic. + [TopicName ]: Name of the domain topic. + [TopicTypeName ]: Name of the topic type. + [VerifiedPartnerName ]: Name of the verified partner. +.Link +https://docs.microsoft.com/en-us/powershell/module/az.eventgrid/update-azeventgridchannel +#> +function Update-AzEventGridChannel { +[OutputType([System.Boolean])] +[CmdletBinding(DefaultParameterSetName='UpdateExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(ParameterSetName='UpdateExpanded', Mandatory)] + [Alias('ChannelName')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [System.String] + # Name of the channel. + ${Name}, + + [Parameter(ParameterSetName='UpdateExpanded', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [System.String] + # Name of the partner namespace. + ${PartnerNamespaceName}, + + [Parameter(ParameterSetName='UpdateExpanded', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [System.String] + # The name of the resource group within the partners subscription. + ${ResourceGroupName}, + + [Parameter(ParameterSetName='UpdateExpanded')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] + [System.String] + # Subscription credentials that uniquely identify a Microsoft Azure subscription. + # The subscription ID forms part of the URI for every service call. + ${SubscriptionId}, + + [Parameter(ParameterSetName='UpdateViaIdentityExpanded', Mandatory, ValueFromPipeline)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.IEventGridIdentity] + # Identity Parameter + # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + ${InputObject}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info(PossibleTypes=([Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventTypeInfoInlineEventTypes]))] + [System.Collections.Hashtable] + # A collection of inline event types for the resource. + # The inline event type keys are of type string which represents the name of the event.An example of a valid inline event name is "Contoso.OrderCreated".The inline event type values are of type InlineEventProperties and will contain additional information for every inline event type. + ${EventTypeInfoInlineEventType}, + + [Parameter()] + [ArgumentCompleter([Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EventDefinitionKind])] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EventDefinitionKind] + # The kind of event type used. + ${EventTypeInfoKind}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [System.DateTime] + # Expiration time of the event channel. + # If this timer expires while the corresponding partner topic or partner destination is never activated,the channel and corresponding partner topic or partner destination are deleted. + ${ExpirationTimeIfNotActivatedUtc}, + + [Parameter()] + [Alias('AzureRMContext', 'AzureCredential')] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Returns true when the command succeeds + ${PassThru}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + if ($null -eq [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion) { + [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion = $Host.Runspace.Version.ToString() + } + $preTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + if ($preTelemetryId -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId =(New-Guid).ToString() + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.module]::Instance.Telemetry.Invoke('Create', $MyInvocation, $parameterSet, $PSCmdlet) + } else { + $internalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + if ($internalCalledCmdlets -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $MyInvocation.MyCommand.Name + } else { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets += ',' + $MyInvocation.MyCommand.Name + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = 'internal' + } + + $mapping = @{ + UpdateExpanded = 'Az.EventGrid.private\Update-AzEventGridChannel_UpdateExpanded'; + UpdateViaIdentityExpanded = 'Az.EventGrid.private\Update-AzEventGridChannel_UpdateViaIdentityExpanded'; + } + if (('UpdateExpanded') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { + $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } + + finally { + $backupTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + $backupInternalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + +} +end { + try { + $steppablePipeline.End() + + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $backupTelemetryId + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $backupInternalCalledCmdlets + if ($preTelemetryId -eq '') { + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.module]::Instance.Telemetry.Invoke('Send', $MyInvocation, $parameterSet, $PSCmdlet) + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $preTelemetryId + + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} +} diff --git a/swaggerci/eventgrid/exports/Update-AzEventGridDomain.ps1 b/swaggerci/eventgrid/exports/Update-AzEventGridDomain.ps1 new file mode 100644 index 000000000000..157bae46c902 --- /dev/null +++ b/swaggerci/eventgrid/exports/Update-AzEventGridDomain.ps1 @@ -0,0 +1,331 @@ + +# ---------------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for license information. +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is regenerated. +# ---------------------------------------------------------------------------------- + +<# +.Synopsis +Asynchronously updates a domain with the specified parameters. +.Description +Asynchronously updates a domain with the specified parameters. +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Inputs +Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.IEventGridIdentity +.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. + +INBOUNDIPRULE : This can be used to restrict traffic from specific IPs instead of all IPs. Note: These are considered only if PublicNetworkAccess is enabled. + [Action ]: Action to perform based on the match or no match of the IpMask. + [IPMask ]: IP Address in CIDR notation e.g., 10.0.0.0/8. + +INPUTOBJECT : Identity Parameter + [ChannelName ]: Name of the channel. + [DomainName ]: Name of the domain. + [DomainTopicName ]: Name of the topic. + [EventChannelName ]: Name of the event channel. + [EventSubscriptionName ]: Name of the event subscription. + [Id ]: Resource identity path + [Location ]: Name of the location. + [ParentName ]: The name of the parent resource (namely, either, the topic name, domain name, or partner namespace name). + [ParentType ]: The type of the parent resource. This can be either \'topics\', \'domains\', or \'partnerNamespaces\'. + [PartnerDestinationName ]: Name of the partner destination. + [PartnerNamespaceName ]: Name of the partner namespace. + [PartnerRegistrationName ]: Name of the partner registration. + [PartnerTopicName ]: Name of the partner topic. + [PrivateEndpointConnectionName ]: The name of the private endpoint connection connection. + [PrivateLinkResourceName ]: The name of private link resource. + [ProviderNamespace ]: Namespace of the provider of the topic. + [ResourceGroupName ]: The name of the resource group within the partners subscription. + [ResourceName ]: Name of the resource. + [ResourceTypeName ]: Name of the resource type. + [Scope ]: The scope of the event subscription. The scope can be a subscription, or a resource group, or a top level resource belonging to a resource provider namespace, or an EventGrid topic. For example, use '/subscriptions/{subscriptionId}/' for a subscription, '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}' for a resource group, and '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}' for a resource, and '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.EventGrid/topics/{topicName}' for an EventGrid topic. + [SubscriptionId ]: Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription ID forms part of the URI for every service call. + [SystemTopicName ]: Name of the system topic. + [TopicName ]: Name of the domain topic. + [TopicTypeName ]: Name of the topic type. + [VerifiedPartnerName ]: Name of the verified partner. +.Link +https://docs.microsoft.com/en-us/powershell/module/az.eventgrid/update-azeventgriddomain +#> +function Update-AzEventGridDomain { +[OutputType([System.Boolean])] +[CmdletBinding(DefaultParameterSetName='UpdateExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(ParameterSetName='UpdateExpanded', Mandatory)] + [Alias('DomainName')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [System.String] + # Name of the domain. + ${Name}, + + [Parameter(ParameterSetName='UpdateExpanded', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [System.String] + # The name of the resource group within the user's subscription. + ${ResourceGroupName}, + + [Parameter(ParameterSetName='UpdateExpanded')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] + [System.String] + # Subscription credentials that uniquely identify a Microsoft Azure subscription. + # The subscription ID forms part of the URI for every service call. + ${SubscriptionId}, + + [Parameter(ParameterSetName='UpdateViaIdentityExpanded', Mandatory, ValueFromPipeline)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.IEventGridIdentity] + # Identity Parameter + # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + ${InputObject}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [System.Management.Automation.SwitchParameter] + # This Boolean is used to specify the creation mechanism for 'all' the Event Grid Domain Topics associated with this Event Grid Domain resource.In this context, creation of domain topic can be auto-managed (when true) or self-managed (when false). + # The default value for this property is true.When this property is null or set to true, Event Grid is responsible of automatically creating the domain topic when the first event subscription iscreated at the scope of the domain topic. + # If this property is set to false, then creating the first event subscription will require creating a domain topicby the user. + # The self-management mode can be used if the user wants full control of when the domain topic is created, while auto-managed mode provides theflexibility to perform less operations and manage fewer resources by the user. + # Also, note that in auto-managed creation mode, user is allowed to create thedomain topic on demand if needed. + ${AutoCreateTopicWithFirstSubscription}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [System.Management.Automation.SwitchParameter] + # This Boolean is used to specify the deletion mechanism for 'all' the Event Grid Domain Topics associated with this Event Grid Domain resource.In this context, deletion of domain topic can be auto-managed (when true) or self-managed (when false). + # The default value for this property is true.When this property is set to true, Event Grid is responsible of automatically deleting the domain topic when the last event subscription at the scopeof the domain topic is deleted. + # If this property is set to false, then the user needs to manually delete the domain topic when it is no longer needed(e.g., when last event subscription is deleted and the resource needs to be cleaned up). + # The self-management mode can be used if the user wants fullcontrol of when the domain topic needs to be deleted, while auto-managed mode provides the flexibility to perform less operations and manage fewerresources by the user. + ${AutoDeleteTopicWithLastSubscription}, + + [Parameter()] + [ArgumentCompleter([Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.DataResidencyBoundary])] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.DataResidencyBoundary] + # The data residency boundary for the domain. + ${DataResidencyBoundary}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [System.Management.Automation.SwitchParameter] + # This boolean is used to enable or disable local auth. + # Default value is false. + # When the property is set to true, only AAD token will be used to authenticate if user is allowed to publish to the domain. + ${DisableLocalAuth}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [System.String] + # The principal ID of resource identity. + ${IdentityPrincipalId}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [System.String] + # The tenant ID of resource. + ${IdentityTenantId}, + + [Parameter()] + [ArgumentCompleter([Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.IdentityType])] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.IdentityType] + # The type of managed identity used. + # The type 'SystemAssigned, UserAssigned' includes both an implicitly created identity and a set of user-assigned identities. + # The type 'None' will remove any identity. + ${IdentityType}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info(PossibleTypes=([Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IIdentityInfoUserAssignedIdentities]))] + [System.Collections.Hashtable] + # The list of user identities associated with the resource. + # The user identity dictionary key references will be ARM resource ids in the form:'/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ManagedIdentity/userAssignedIdentities/{identityName}'.This property is currently not used and reserved for future usage. + ${IdentityUserAssignedIdentity}, + + [Parameter()] + [AllowEmptyCollection()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IInboundIPRule[]] + # This can be used to restrict traffic from specific IPs instead of all IPs. + # Note: These are considered only if PublicNetworkAccess is enabled. + # To construct, see NOTES section for INBOUNDIPRULE properties and create a hash table. + ${InboundIPRule}, + + [Parameter()] + [ArgumentCompleter([Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.PublicNetworkAccess])] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.PublicNetworkAccess] + # This determines if traffic is allowed over public network. + # By default it is enabled. + # You can further restrict to specific IPs by configuring + ${PublicNetworkAccess}, + + [Parameter()] + [ArgumentCompleter([Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.Sku])] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.Sku] + # The Sku name of the resource. + # The possible values are: Basic or Premium. + ${SkuName}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info(PossibleTypes=([Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDomainUpdateParametersTags]))] + [System.Collections.Hashtable] + # Tags of the domains resource. + ${Tag}, + + [Parameter()] + [Alias('AzureRMContext', 'AzureCredential')] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Run the command as a job + ${AsJob}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Run the command asynchronously + ${NoWait}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Returns true when the command succeeds + ${PassThru}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + if ($null -eq [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion) { + [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion = $Host.Runspace.Version.ToString() + } + $preTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + if ($preTelemetryId -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId =(New-Guid).ToString() + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.module]::Instance.Telemetry.Invoke('Create', $MyInvocation, $parameterSet, $PSCmdlet) + } else { + $internalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + if ($internalCalledCmdlets -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $MyInvocation.MyCommand.Name + } else { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets += ',' + $MyInvocation.MyCommand.Name + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = 'internal' + } + + $mapping = @{ + UpdateExpanded = 'Az.EventGrid.private\Update-AzEventGridDomain_UpdateExpanded'; + UpdateViaIdentityExpanded = 'Az.EventGrid.private\Update-AzEventGridDomain_UpdateViaIdentityExpanded'; + } + if (('UpdateExpanded') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { + $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } + + finally { + $backupTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + $backupInternalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + +} +end { + try { + $steppablePipeline.End() + + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $backupTelemetryId + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $backupInternalCalledCmdlets + if ($preTelemetryId -eq '') { + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.module]::Instance.Telemetry.Invoke('Send', $MyInvocation, $parameterSet, $PSCmdlet) + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $preTelemetryId + + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} +} diff --git a/swaggerci/eventgrid/exports/Update-AzEventGridDomainEventSubscription.ps1 b/swaggerci/eventgrid/exports/Update-AzEventGridDomainEventSubscription.ps1 new file mode 100644 index 000000000000..35d20944e6aa --- /dev/null +++ b/swaggerci/eventgrid/exports/Update-AzEventGridDomainEventSubscription.ps1 @@ -0,0 +1,356 @@ + +# ---------------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for license information. +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is regenerated. +# ---------------------------------------------------------------------------------- + +<# +.Synopsis +Update an existing event subscription for a topic. +.Description +Update an existing event subscription for a topic. +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Inputs +Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.IEventGridIdentity +.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. + +FILTERADVANCEDFILTER : An array of advanced filters that are used for filtering event subscriptions. + OperatorType : The operator type used for filtering, e.g., NumberIn, StringContains, BoolEquals and others. + [Key ]: The field/property in the event based on which you want to filter. + +INPUTOBJECT : Identity Parameter + [ChannelName ]: Name of the channel. + [DomainName ]: Name of the domain. + [DomainTopicName ]: Name of the topic. + [EventChannelName ]: Name of the event channel. + [EventSubscriptionName ]: Name of the event subscription. + [Id ]: Resource identity path + [Location ]: Name of the location. + [ParentName ]: The name of the parent resource (namely, either, the topic name, domain name, or partner namespace name). + [ParentType ]: The type of the parent resource. This can be either \'topics\', \'domains\', or \'partnerNamespaces\'. + [PartnerDestinationName ]: Name of the partner destination. + [PartnerNamespaceName ]: Name of the partner namespace. + [PartnerRegistrationName ]: Name of the partner registration. + [PartnerTopicName ]: Name of the partner topic. + [PrivateEndpointConnectionName ]: The name of the private endpoint connection connection. + [PrivateLinkResourceName ]: The name of private link resource. + [ProviderNamespace ]: Namespace of the provider of the topic. + [ResourceGroupName ]: The name of the resource group within the partners subscription. + [ResourceName ]: Name of the resource. + [ResourceTypeName ]: Name of the resource type. + [Scope ]: The scope of the event subscription. The scope can be a subscription, or a resource group, or a top level resource belonging to a resource provider namespace, or an EventGrid topic. For example, use '/subscriptions/{subscriptionId}/' for a subscription, '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}' for a resource group, and '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}' for a resource, and '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.EventGrid/topics/{topicName}' for an EventGrid topic. + [SubscriptionId ]: Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription ID forms part of the URI for every service call. + [SystemTopicName ]: Name of the system topic. + [TopicName ]: Name of the domain topic. + [TopicTypeName ]: Name of the topic type. + [VerifiedPartnerName ]: Name of the verified partner. +.Link +https://docs.microsoft.com/en-us/powershell/module/az.eventgrid/update-azeventgriddomaineventsubscription +#> +function Update-AzEventGridDomainEventSubscription { +[OutputType([System.Boolean])] +[CmdletBinding(DefaultParameterSetName='UpdateExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(ParameterSetName='UpdateExpanded', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [System.String] + # Name of the domain. + ${DomainName}, + + [Parameter(ParameterSetName='UpdateExpanded', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [System.String] + # Name of the event subscription to be updated. + ${EventSubscriptionName}, + + [Parameter(ParameterSetName='UpdateExpanded', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [System.String] + # The name of the resource group within the user's subscription. + ${ResourceGroupName}, + + [Parameter(ParameterSetName='UpdateExpanded')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] + [System.String] + # Subscription credentials that uniquely identify a Microsoft Azure subscription. + # The subscription ID forms part of the URI for every service call. + ${SubscriptionId}, + + [Parameter(ParameterSetName='UpdateViaIdentityExpanded', Mandatory, ValueFromPipeline)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.IEventGridIdentity] + # Identity Parameter + # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + ${InputObject}, + + [Parameter()] + [ArgumentCompleter([Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EventSubscriptionIdentityType])] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EventSubscriptionIdentityType] + # The type of managed identity used. + # The type 'SystemAssigned, UserAssigned' includes both an implicitly created identity and a set of user-assigned identities. + # The type 'None' will remove any identity. + ${DeadLetterWithResourceIdentityType}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [System.String] + # The user identity associated with the resource. + ${DeadLetterWithResourceIdentityUserAssignedIdentity}, + + [Parameter()] + [ArgumentCompleter([Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EndpointType])] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EndpointType] + # Type of the endpoint for the event subscription destination. + ${DeliveryWithResourceIdentityDestinationEndpointType}, + + [Parameter()] + [ArgumentCompleter([Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EventSubscriptionIdentityType])] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EventSubscriptionIdentityType] + # The type of managed identity used. + # The type 'SystemAssigned, UserAssigned' includes both an implicitly created identity and a set of user-assigned identities. + # The type 'None' will remove any identity. + ${DeliveryWithResourceIdentityType}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [System.String] + # The user identity associated with the resource. + ${DeliveryWithResourceIdentityUserAssignedIdentity}, + + [Parameter()] + [ArgumentCompleter([Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EndpointType])] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EndpointType] + # Type of the endpoint for the event subscription destination. + ${EndpointType}, + + [Parameter()] + [ArgumentCompleter([Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EventDeliverySchema])] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EventDeliverySchema] + # The event delivery schema for the event subscription. + ${EventDeliverySchema}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [System.DateTime] + # Information about the expiration time for the event subscription. + ${ExpirationTimeUtc}, + + [Parameter()] + [AllowEmptyCollection()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IAdvancedFilter[]] + # An array of advanced filters that are used for filtering event subscriptions. + # To construct, see NOTES section for FILTERADVANCEDFILTER properties and create a hash table. + ${FilterAdvancedFilter}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [System.Management.Automation.SwitchParameter] + # Allows advanced filters to be evaluated against an array of values instead of expecting a singular value. + ${FilterEnableAdvancedFilteringOnArray}, + + [Parameter()] + [AllowEmptyCollection()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [System.String[]] + # A list of applicable event types that need to be part of the event subscription. + # If it is desired to subscribe to all default event types, set the IncludedEventTypes to null. + ${FilterIncludedEventType}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [System.Management.Automation.SwitchParameter] + # Specifies if the SubjectBeginsWith and SubjectEndsWith properties of the filtershould be compared in a case sensitive manner. + ${FilterIsSubjectCaseSensitive}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [System.String] + # An optional string to filter events for an event subscription based on a resource path prefix.The format of this depends on the publisher of the events.Wildcard characters are not supported in this path. + ${FilterSubjectBeginsWith}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [System.String] + # An optional string to filter events for an event subscription based on a resource path suffix.Wildcard characters are not supported in this path. + ${FilterSubjectEndsWith}, + + [Parameter()] + [AllowEmptyCollection()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [System.String[]] + # List of user defined labels. + ${Label}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [System.Int32] + # Time To Live (in minutes) for events. + ${RetryPolicyEventTimeToLiveInMinute}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [System.Int32] + # Maximum number of delivery retry attempts for events. + ${RetryPolicyMaxDeliveryAttempt}, + + [Parameter()] + [Alias('AzureRMContext', 'AzureCredential')] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Run the command as a job + ${AsJob}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Run the command asynchronously + ${NoWait}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Returns true when the command succeeds + ${PassThru}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + if ($null -eq [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion) { + [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion = $Host.Runspace.Version.ToString() + } + $preTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + if ($preTelemetryId -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId =(New-Guid).ToString() + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.module]::Instance.Telemetry.Invoke('Create', $MyInvocation, $parameterSet, $PSCmdlet) + } else { + $internalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + if ($internalCalledCmdlets -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $MyInvocation.MyCommand.Name + } else { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets += ',' + $MyInvocation.MyCommand.Name + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = 'internal' + } + + $mapping = @{ + UpdateExpanded = 'Az.EventGrid.private\Update-AzEventGridDomainEventSubscription_UpdateExpanded'; + UpdateViaIdentityExpanded = 'Az.EventGrid.private\Update-AzEventGridDomainEventSubscription_UpdateViaIdentityExpanded'; + } + if (('UpdateExpanded') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { + $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } + + finally { + $backupTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + $backupInternalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + +} +end { + try { + $steppablePipeline.End() + + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $backupTelemetryId + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $backupInternalCalledCmdlets + if ($preTelemetryId -eq '') { + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.module]::Instance.Telemetry.Invoke('Send', $MyInvocation, $parameterSet, $PSCmdlet) + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $preTelemetryId + + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} +} diff --git a/swaggerci/eventgrid/exports/Update-AzEventGridDomainTopicEventSubscription.ps1 b/swaggerci/eventgrid/exports/Update-AzEventGridDomainTopicEventSubscription.ps1 new file mode 100644 index 000000000000..3bd710f8c4fe --- /dev/null +++ b/swaggerci/eventgrid/exports/Update-AzEventGridDomainTopicEventSubscription.ps1 @@ -0,0 +1,362 @@ + +# ---------------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for license information. +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is regenerated. +# ---------------------------------------------------------------------------------- + +<# +.Synopsis +Update an existing event subscription for a domain topic. +.Description +Update an existing event subscription for a domain topic. +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Inputs +Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.IEventGridIdentity +.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. + +FILTERADVANCEDFILTER : An array of advanced filters that are used for filtering event subscriptions. + OperatorType : The operator type used for filtering, e.g., NumberIn, StringContains, BoolEquals and others. + [Key ]: The field/property in the event based on which you want to filter. + +INPUTOBJECT : Identity Parameter + [ChannelName ]: Name of the channel. + [DomainName ]: Name of the domain. + [DomainTopicName ]: Name of the topic. + [EventChannelName ]: Name of the event channel. + [EventSubscriptionName ]: Name of the event subscription. + [Id ]: Resource identity path + [Location ]: Name of the location. + [ParentName ]: The name of the parent resource (namely, either, the topic name, domain name, or partner namespace name). + [ParentType ]: The type of the parent resource. This can be either \'topics\', \'domains\', or \'partnerNamespaces\'. + [PartnerDestinationName ]: Name of the partner destination. + [PartnerNamespaceName ]: Name of the partner namespace. + [PartnerRegistrationName ]: Name of the partner registration. + [PartnerTopicName ]: Name of the partner topic. + [PrivateEndpointConnectionName ]: The name of the private endpoint connection connection. + [PrivateLinkResourceName ]: The name of private link resource. + [ProviderNamespace ]: Namespace of the provider of the topic. + [ResourceGroupName ]: The name of the resource group within the partners subscription. + [ResourceName ]: Name of the resource. + [ResourceTypeName ]: Name of the resource type. + [Scope ]: The scope of the event subscription. The scope can be a subscription, or a resource group, or a top level resource belonging to a resource provider namespace, or an EventGrid topic. For example, use '/subscriptions/{subscriptionId}/' for a subscription, '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}' for a resource group, and '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}' for a resource, and '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.EventGrid/topics/{topicName}' for an EventGrid topic. + [SubscriptionId ]: Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription ID forms part of the URI for every service call. + [SystemTopicName ]: Name of the system topic. + [TopicName ]: Name of the domain topic. + [TopicTypeName ]: Name of the topic type. + [VerifiedPartnerName ]: Name of the verified partner. +.Link +https://docs.microsoft.com/en-us/powershell/module/az.eventgrid/update-azeventgriddomaintopiceventsubscription +#> +function Update-AzEventGridDomainTopicEventSubscription { +[OutputType([System.Boolean])] +[CmdletBinding(DefaultParameterSetName='UpdateExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(ParameterSetName='UpdateExpanded', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [System.String] + # Name of the domain. + ${DomainName}, + + [Parameter(ParameterSetName='UpdateExpanded', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [System.String] + # Name of the event subscription to be updated. + ${EventSubscriptionName}, + + [Parameter(ParameterSetName='UpdateExpanded', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [System.String] + # The name of the resource group within the user's subscription. + ${ResourceGroupName}, + + [Parameter(ParameterSetName='UpdateExpanded')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] + [System.String] + # Subscription credentials that uniquely identify a Microsoft Azure subscription. + # The subscription ID forms part of the URI for every service call. + ${SubscriptionId}, + + [Parameter(ParameterSetName='UpdateExpanded', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [System.String] + # Name of the topic. + ${TopicName}, + + [Parameter(ParameterSetName='UpdateViaIdentityExpanded', Mandatory, ValueFromPipeline)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.IEventGridIdentity] + # Identity Parameter + # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + ${InputObject}, + + [Parameter()] + [ArgumentCompleter([Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EventSubscriptionIdentityType])] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EventSubscriptionIdentityType] + # The type of managed identity used. + # The type 'SystemAssigned, UserAssigned' includes both an implicitly created identity and a set of user-assigned identities. + # The type 'None' will remove any identity. + ${DeadLetterWithResourceIdentityType}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [System.String] + # The user identity associated with the resource. + ${DeadLetterWithResourceIdentityUserAssignedIdentity}, + + [Parameter()] + [ArgumentCompleter([Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EndpointType])] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EndpointType] + # Type of the endpoint for the event subscription destination. + ${DeliveryWithResourceIdentityDestinationEndpointType}, + + [Parameter()] + [ArgumentCompleter([Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EventSubscriptionIdentityType])] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EventSubscriptionIdentityType] + # The type of managed identity used. + # The type 'SystemAssigned, UserAssigned' includes both an implicitly created identity and a set of user-assigned identities. + # The type 'None' will remove any identity. + ${DeliveryWithResourceIdentityType}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [System.String] + # The user identity associated with the resource. + ${DeliveryWithResourceIdentityUserAssignedIdentity}, + + [Parameter()] + [ArgumentCompleter([Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EndpointType])] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EndpointType] + # Type of the endpoint for the event subscription destination. + ${EndpointType}, + + [Parameter()] + [ArgumentCompleter([Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EventDeliverySchema])] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EventDeliverySchema] + # The event delivery schema for the event subscription. + ${EventDeliverySchema}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [System.DateTime] + # Information about the expiration time for the event subscription. + ${ExpirationTimeUtc}, + + [Parameter()] + [AllowEmptyCollection()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IAdvancedFilter[]] + # An array of advanced filters that are used for filtering event subscriptions. + # To construct, see NOTES section for FILTERADVANCEDFILTER properties and create a hash table. + ${FilterAdvancedFilter}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [System.Management.Automation.SwitchParameter] + # Allows advanced filters to be evaluated against an array of values instead of expecting a singular value. + ${FilterEnableAdvancedFilteringOnArray}, + + [Parameter()] + [AllowEmptyCollection()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [System.String[]] + # A list of applicable event types that need to be part of the event subscription. + # If it is desired to subscribe to all default event types, set the IncludedEventTypes to null. + ${FilterIncludedEventType}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [System.Management.Automation.SwitchParameter] + # Specifies if the SubjectBeginsWith and SubjectEndsWith properties of the filtershould be compared in a case sensitive manner. + ${FilterIsSubjectCaseSensitive}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [System.String] + # An optional string to filter events for an event subscription based on a resource path prefix.The format of this depends on the publisher of the events.Wildcard characters are not supported in this path. + ${FilterSubjectBeginsWith}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [System.String] + # An optional string to filter events for an event subscription based on a resource path suffix.Wildcard characters are not supported in this path. + ${FilterSubjectEndsWith}, + + [Parameter()] + [AllowEmptyCollection()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [System.String[]] + # List of user defined labels. + ${Label}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [System.Int32] + # Time To Live (in minutes) for events. + ${RetryPolicyEventTimeToLiveInMinute}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [System.Int32] + # Maximum number of delivery retry attempts for events. + ${RetryPolicyMaxDeliveryAttempt}, + + [Parameter()] + [Alias('AzureRMContext', 'AzureCredential')] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Run the command as a job + ${AsJob}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Run the command asynchronously + ${NoWait}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Returns true when the command succeeds + ${PassThru}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + if ($null -eq [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion) { + [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion = $Host.Runspace.Version.ToString() + } + $preTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + if ($preTelemetryId -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId =(New-Guid).ToString() + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.module]::Instance.Telemetry.Invoke('Create', $MyInvocation, $parameterSet, $PSCmdlet) + } else { + $internalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + if ($internalCalledCmdlets -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $MyInvocation.MyCommand.Name + } else { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets += ',' + $MyInvocation.MyCommand.Name + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = 'internal' + } + + $mapping = @{ + UpdateExpanded = 'Az.EventGrid.private\Update-AzEventGridDomainTopicEventSubscription_UpdateExpanded'; + UpdateViaIdentityExpanded = 'Az.EventGrid.private\Update-AzEventGridDomainTopicEventSubscription_UpdateViaIdentityExpanded'; + } + if (('UpdateExpanded') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { + $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } + + finally { + $backupTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + $backupInternalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + +} +end { + try { + $steppablePipeline.End() + + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $backupTelemetryId + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $backupInternalCalledCmdlets + if ($preTelemetryId -eq '') { + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.module]::Instance.Telemetry.Invoke('Send', $MyInvocation, $parameterSet, $PSCmdlet) + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $preTelemetryId + + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} +} diff --git a/swaggerci/eventgrid/exports/Update-AzEventGridEventSubscription.ps1 b/swaggerci/eventgrid/exports/Update-AzEventGridEventSubscription.ps1 new file mode 100644 index 000000000000..2013f0c5acfc --- /dev/null +++ b/swaggerci/eventgrid/exports/Update-AzEventGridEventSubscription.ps1 @@ -0,0 +1,342 @@ + +# ---------------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for license information. +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is regenerated. +# ---------------------------------------------------------------------------------- + +<# +.Synopsis +Asynchronously updates an existing event subscription. +.Description +Asynchronously updates an existing event subscription. +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Inputs +Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.IEventGridIdentity +.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. + +FILTERADVANCEDFILTER : An array of advanced filters that are used for filtering event subscriptions. + OperatorType : The operator type used for filtering, e.g., NumberIn, StringContains, BoolEquals and others. + [Key ]: The field/property in the event based on which you want to filter. + +INPUTOBJECT : Identity Parameter + [ChannelName ]: Name of the channel. + [DomainName ]: Name of the domain. + [DomainTopicName ]: Name of the topic. + [EventChannelName ]: Name of the event channel. + [EventSubscriptionName ]: Name of the event subscription. + [Id ]: Resource identity path + [Location ]: Name of the location. + [ParentName ]: The name of the parent resource (namely, either, the topic name, domain name, or partner namespace name). + [ParentType ]: The type of the parent resource. This can be either \'topics\', \'domains\', or \'partnerNamespaces\'. + [PartnerDestinationName ]: Name of the partner destination. + [PartnerNamespaceName ]: Name of the partner namespace. + [PartnerRegistrationName ]: Name of the partner registration. + [PartnerTopicName ]: Name of the partner topic. + [PrivateEndpointConnectionName ]: The name of the private endpoint connection connection. + [PrivateLinkResourceName ]: The name of private link resource. + [ProviderNamespace ]: Namespace of the provider of the topic. + [ResourceGroupName ]: The name of the resource group within the partners subscription. + [ResourceName ]: Name of the resource. + [ResourceTypeName ]: Name of the resource type. + [Scope ]: The scope of the event subscription. The scope can be a subscription, or a resource group, or a top level resource belonging to a resource provider namespace, or an EventGrid topic. For example, use '/subscriptions/{subscriptionId}/' for a subscription, '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}' for a resource group, and '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}' for a resource, and '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.EventGrid/topics/{topicName}' for an EventGrid topic. + [SubscriptionId ]: Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription ID forms part of the URI for every service call. + [SystemTopicName ]: Name of the system topic. + [TopicName ]: Name of the domain topic. + [TopicTypeName ]: Name of the topic type. + [VerifiedPartnerName ]: Name of the verified partner. +.Link +https://docs.microsoft.com/en-us/powershell/module/az.eventgrid/update-azeventgrideventsubscription +#> +function Update-AzEventGridEventSubscription { +[OutputType([System.Boolean])] +[CmdletBinding(DefaultParameterSetName='UpdateExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(ParameterSetName='UpdateExpanded', Mandatory)] + [Alias('EventSubscriptionName')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [System.String] + # Name of the event subscription to be updated. + ${Name}, + + [Parameter(ParameterSetName='UpdateExpanded', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [System.String] + # The scope of existing event subscription. + # The scope can be a subscription, or a resource group, or a top level resource belonging to a resource provider namespace, or an EventGrid topic. + # For example, use '/subscriptions/{subscriptionId}/' for a subscription, '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}' for a resource group, and '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}' for a resource, and '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.EventGrid/topics/{topicName}' for an EventGrid topic. + ${Scope}, + + [Parameter(ParameterSetName='UpdateViaIdentityExpanded', Mandatory, ValueFromPipeline)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.IEventGridIdentity] + # Identity Parameter + # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + ${InputObject}, + + [Parameter()] + [ArgumentCompleter([Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EventSubscriptionIdentityType])] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EventSubscriptionIdentityType] + # The type of managed identity used. + # The type 'SystemAssigned, UserAssigned' includes both an implicitly created identity and a set of user-assigned identities. + # The type 'None' will remove any identity. + ${DeadLetterWithResourceIdentityType}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [System.String] + # The user identity associated with the resource. + ${DeadLetterWithResourceIdentityUserAssignedIdentity}, + + [Parameter()] + [ArgumentCompleter([Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EndpointType])] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EndpointType] + # Type of the endpoint for the event subscription destination. + ${DeliveryWithResourceIdentityDestinationEndpointType}, + + [Parameter()] + [ArgumentCompleter([Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EventSubscriptionIdentityType])] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EventSubscriptionIdentityType] + # The type of managed identity used. + # The type 'SystemAssigned, UserAssigned' includes both an implicitly created identity and a set of user-assigned identities. + # The type 'None' will remove any identity. + ${DeliveryWithResourceIdentityType}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [System.String] + # The user identity associated with the resource. + ${DeliveryWithResourceIdentityUserAssignedIdentity}, + + [Parameter()] + [ArgumentCompleter([Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EndpointType])] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EndpointType] + # Type of the endpoint for the event subscription destination. + ${EndpointType}, + + [Parameter()] + [ArgumentCompleter([Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EventDeliverySchema])] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EventDeliverySchema] + # The event delivery schema for the event subscription. + ${EventDeliverySchema}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [System.DateTime] + # Information about the expiration time for the event subscription. + ${ExpirationTimeUtc}, + + [Parameter()] + [AllowEmptyCollection()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IAdvancedFilter[]] + # An array of advanced filters that are used for filtering event subscriptions. + # To construct, see NOTES section for FILTERADVANCEDFILTER properties and create a hash table. + ${FilterAdvancedFilter}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [System.Management.Automation.SwitchParameter] + # Allows advanced filters to be evaluated against an array of values instead of expecting a singular value. + ${FilterEnableAdvancedFilteringOnArray}, + + [Parameter()] + [AllowEmptyCollection()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [System.String[]] + # A list of applicable event types that need to be part of the event subscription. + # If it is desired to subscribe to all default event types, set the IncludedEventTypes to null. + ${FilterIncludedEventType}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [System.Management.Automation.SwitchParameter] + # Specifies if the SubjectBeginsWith and SubjectEndsWith properties of the filtershould be compared in a case sensitive manner. + ${FilterIsSubjectCaseSensitive}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [System.String] + # An optional string to filter events for an event subscription based on a resource path prefix.The format of this depends on the publisher of the events.Wildcard characters are not supported in this path. + ${FilterSubjectBeginsWith}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [System.String] + # An optional string to filter events for an event subscription based on a resource path suffix.Wildcard characters are not supported in this path. + ${FilterSubjectEndsWith}, + + [Parameter()] + [AllowEmptyCollection()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [System.String[]] + # List of user defined labels. + ${Label}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [System.Int32] + # Time To Live (in minutes) for events. + ${RetryPolicyEventTimeToLiveInMinute}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [System.Int32] + # Maximum number of delivery retry attempts for events. + ${RetryPolicyMaxDeliveryAttempt}, + + [Parameter()] + [Alias('AzureRMContext', 'AzureCredential')] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Run the command as a job + ${AsJob}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Run the command asynchronously + ${NoWait}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Returns true when the command succeeds + ${PassThru}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + if ($null -eq [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion) { + [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion = $Host.Runspace.Version.ToString() + } + $preTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + if ($preTelemetryId -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId =(New-Guid).ToString() + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.module]::Instance.Telemetry.Invoke('Create', $MyInvocation, $parameterSet, $PSCmdlet) + } else { + $internalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + if ($internalCalledCmdlets -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $MyInvocation.MyCommand.Name + } else { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets += ',' + $MyInvocation.MyCommand.Name + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = 'internal' + } + + $mapping = @{ + UpdateExpanded = 'Az.EventGrid.private\Update-AzEventGridEventSubscription_UpdateExpanded'; + UpdateViaIdentityExpanded = 'Az.EventGrid.private\Update-AzEventGridEventSubscription_UpdateViaIdentityExpanded'; + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } + + finally { + $backupTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + $backupInternalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + +} +end { + try { + $steppablePipeline.End() + + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $backupTelemetryId + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $backupInternalCalledCmdlets + if ($preTelemetryId -eq '') { + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.module]::Instance.Telemetry.Invoke('Send', $MyInvocation, $parameterSet, $PSCmdlet) + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $preTelemetryId + + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} +} diff --git a/swaggerci/eventgrid/exports/Update-AzEventGridPartnerConfiguration.ps1 b/swaggerci/eventgrid/exports/Update-AzEventGridPartnerConfiguration.ps1 new file mode 100644 index 000000000000..358a28876494 --- /dev/null +++ b/swaggerci/eventgrid/exports/Update-AzEventGridPartnerConfiguration.ps1 @@ -0,0 +1,238 @@ + +# ---------------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for license information. +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is regenerated. +# ---------------------------------------------------------------------------------- + +<# +.Synopsis +Synchronously updates a partner configuration with the specified parameters. +.Description +Synchronously updates a partner configuration with the specified parameters. +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Inputs +Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.IEventGridIdentity +.Outputs +Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerConfiguration +.Notes +COMPLEX PARAMETER PROPERTIES + +To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. + +INPUTOBJECT : Identity Parameter + [ChannelName ]: Name of the channel. + [DomainName ]: Name of the domain. + [DomainTopicName ]: Name of the topic. + [EventChannelName ]: Name of the event channel. + [EventSubscriptionName ]: Name of the event subscription. + [Id ]: Resource identity path + [Location ]: Name of the location. + [ParentName ]: The name of the parent resource (namely, either, the topic name, domain name, or partner namespace name). + [ParentType ]: The type of the parent resource. This can be either \'topics\', \'domains\', or \'partnerNamespaces\'. + [PartnerDestinationName ]: Name of the partner destination. + [PartnerNamespaceName ]: Name of the partner namespace. + [PartnerRegistrationName ]: Name of the partner registration. + [PartnerTopicName ]: Name of the partner topic. + [PrivateEndpointConnectionName ]: The name of the private endpoint connection connection. + [PrivateLinkResourceName ]: The name of private link resource. + [ProviderNamespace ]: Namespace of the provider of the topic. + [ResourceGroupName ]: The name of the resource group within the partners subscription. + [ResourceName ]: Name of the resource. + [ResourceTypeName ]: Name of the resource type. + [Scope ]: The scope of the event subscription. The scope can be a subscription, or a resource group, or a top level resource belonging to a resource provider namespace, or an EventGrid topic. For example, use '/subscriptions/{subscriptionId}/' for a subscription, '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}' for a resource group, and '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}' for a resource, and '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.EventGrid/topics/{topicName}' for an EventGrid topic. + [SubscriptionId ]: Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription ID forms part of the URI for every service call. + [SystemTopicName ]: Name of the system topic. + [TopicName ]: Name of the domain topic. + [TopicTypeName ]: Name of the topic type. + [VerifiedPartnerName ]: Name of the verified partner. +.Link +https://docs.microsoft.com/en-us/powershell/module/az.eventgrid/update-azeventgridpartnerconfiguration +#> +function Update-AzEventGridPartnerConfiguration { +[OutputType([Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerConfiguration])] +[CmdletBinding(DefaultParameterSetName='UpdateExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(ParameterSetName='UpdateExpanded', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [System.String] + # The name of the resource group within the user's subscription. + ${ResourceGroupName}, + + [Parameter(ParameterSetName='UpdateExpanded')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] + [System.String] + # Subscription credentials that uniquely identify a Microsoft Azure subscription. + # The subscription ID forms part of the URI for every service call. + ${SubscriptionId}, + + [Parameter(ParameterSetName='UpdateViaIdentityExpanded', Mandatory, ValueFromPipeline)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.IEventGridIdentity] + # Identity Parameter + # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + ${InputObject}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [System.Int32] + # The default time used to validate the maximum expiration time for each authorized partners in days. + # Allowed values ar between 1 and 365 days. + ${DefaultMaximumExpirationTimeInDay}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info(PossibleTypes=([Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerConfigurationUpdateParametersTags]))] + [System.Collections.Hashtable] + # Tags of the partner configuration resource. + ${Tag}, + + [Parameter()] + [Alias('AzureRMContext', 'AzureCredential')] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Run the command as a job + ${AsJob}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Run the command asynchronously + ${NoWait}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Returns true when the command succeeds + ${PassThru}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + if ($null -eq [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion) { + [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion = $Host.Runspace.Version.ToString() + } + $preTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + if ($preTelemetryId -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId =(New-Guid).ToString() + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.module]::Instance.Telemetry.Invoke('Create', $MyInvocation, $parameterSet, $PSCmdlet) + } else { + $internalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + if ($internalCalledCmdlets -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $MyInvocation.MyCommand.Name + } else { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets += ',' + $MyInvocation.MyCommand.Name + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = 'internal' + } + + $mapping = @{ + UpdateExpanded = 'Az.EventGrid.private\Update-AzEventGridPartnerConfiguration_UpdateExpanded'; + UpdateViaIdentityExpanded = 'Az.EventGrid.private\Update-AzEventGridPartnerConfiguration_UpdateViaIdentityExpanded'; + } + if (('UpdateExpanded') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { + $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } + + finally { + $backupTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + $backupInternalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + +} +end { + try { + $steppablePipeline.End() + + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $backupTelemetryId + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $backupInternalCalledCmdlets + if ($preTelemetryId -eq '') { + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.module]::Instance.Telemetry.Invoke('Send', $MyInvocation, $parameterSet, $PSCmdlet) + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $preTelemetryId + + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} +} diff --git a/swaggerci/eventgrid/exports/Update-AzEventGridPartnerDestination.ps1 b/swaggerci/eventgrid/exports/Update-AzEventGridPartnerDestination.ps1 new file mode 100644 index 000000000000..1c13c3d6a44f --- /dev/null +++ b/swaggerci/eventgrid/exports/Update-AzEventGridPartnerDestination.ps1 @@ -0,0 +1,226 @@ + +# ---------------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for license information. +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is regenerated. +# ---------------------------------------------------------------------------------- + +<# +.Synopsis +Asynchronously updates a partner destination with the specified parameters. +.Description +Asynchronously updates a partner destination with the specified parameters. +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Inputs +Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.IEventGridIdentity +.Outputs +Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerDestination +.Notes +COMPLEX PARAMETER PROPERTIES + +To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. + +INPUTOBJECT : Identity Parameter + [ChannelName ]: Name of the channel. + [DomainName ]: Name of the domain. + [DomainTopicName ]: Name of the topic. + [EventChannelName ]: Name of the event channel. + [EventSubscriptionName ]: Name of the event subscription. + [Id ]: Resource identity path + [Location ]: Name of the location. + [ParentName ]: The name of the parent resource (namely, either, the topic name, domain name, or partner namespace name). + [ParentType ]: The type of the parent resource. This can be either \'topics\', \'domains\', or \'partnerNamespaces\'. + [PartnerDestinationName ]: Name of the partner destination. + [PartnerNamespaceName ]: Name of the partner namespace. + [PartnerRegistrationName ]: Name of the partner registration. + [PartnerTopicName ]: Name of the partner topic. + [PrivateEndpointConnectionName ]: The name of the private endpoint connection connection. + [PrivateLinkResourceName ]: The name of private link resource. + [ProviderNamespace ]: Namespace of the provider of the topic. + [ResourceGroupName ]: The name of the resource group within the partners subscription. + [ResourceName ]: Name of the resource. + [ResourceTypeName ]: Name of the resource type. + [Scope ]: The scope of the event subscription. The scope can be a subscription, or a resource group, or a top level resource belonging to a resource provider namespace, or an EventGrid topic. For example, use '/subscriptions/{subscriptionId}/' for a subscription, '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}' for a resource group, and '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}' for a resource, and '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.EventGrid/topics/{topicName}' for an EventGrid topic. + [SubscriptionId ]: Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription ID forms part of the URI for every service call. + [SystemTopicName ]: Name of the system topic. + [TopicName ]: Name of the domain topic. + [TopicTypeName ]: Name of the topic type. + [VerifiedPartnerName ]: Name of the verified partner. +.Link +https://docs.microsoft.com/en-us/powershell/module/az.eventgrid/update-azeventgridpartnerdestination +#> +function Update-AzEventGridPartnerDestination { +[OutputType([Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerDestination])] +[CmdletBinding(DefaultParameterSetName='UpdateExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(ParameterSetName='UpdateExpanded', Mandatory)] + [Alias('PartnerDestinationName')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [System.String] + # Name of the partner destination. + ${Name}, + + [Parameter(ParameterSetName='UpdateExpanded', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [System.String] + # The name of the resource group within the user's subscription. + ${ResourceGroupName}, + + [Parameter(ParameterSetName='UpdateExpanded')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] + [System.String] + # Subscription credentials that uniquely identify a Microsoft Azure subscription. + # The subscription ID forms part of the URI for every service call. + ${SubscriptionId}, + + [Parameter(ParameterSetName='UpdateViaIdentityExpanded', Mandatory, ValueFromPipeline)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.IEventGridIdentity] + # Identity Parameter + # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + ${InputObject}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info(PossibleTypes=([Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerDestinationUpdateParametersTags]))] + [System.Collections.Hashtable] + # Tags of the Partner Destination resource. + ${Tag}, + + [Parameter()] + [Alias('AzureRMContext', 'AzureCredential')] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Returns true when the command succeeds + ${PassThru}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + if ($null -eq [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion) { + [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion = $Host.Runspace.Version.ToString() + } + $preTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + if ($preTelemetryId -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId =(New-Guid).ToString() + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.module]::Instance.Telemetry.Invoke('Create', $MyInvocation, $parameterSet, $PSCmdlet) + } else { + $internalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + if ($internalCalledCmdlets -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $MyInvocation.MyCommand.Name + } else { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets += ',' + $MyInvocation.MyCommand.Name + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = 'internal' + } + + $mapping = @{ + UpdateExpanded = 'Az.EventGrid.private\Update-AzEventGridPartnerDestination_UpdateExpanded'; + UpdateViaIdentityExpanded = 'Az.EventGrid.private\Update-AzEventGridPartnerDestination_UpdateViaIdentityExpanded'; + } + if (('UpdateExpanded') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { + $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } + + finally { + $backupTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + $backupInternalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + +} +end { + try { + $steppablePipeline.End() + + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $backupTelemetryId + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $backupInternalCalledCmdlets + if ($preTelemetryId -eq '') { + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.module]::Instance.Telemetry.Invoke('Send', $MyInvocation, $parameterSet, $PSCmdlet) + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $preTelemetryId + + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} +} diff --git a/swaggerci/eventgrid/exports/Update-AzEventGridPartnerNamespace.ps1 b/swaggerci/eventgrid/exports/Update-AzEventGridPartnerNamespace.ps1 new file mode 100644 index 000000000000..b2901712dc51 --- /dev/null +++ b/swaggerci/eventgrid/exports/Update-AzEventGridPartnerNamespace.ps1 @@ -0,0 +1,268 @@ + +# ---------------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for license information. +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is regenerated. +# ---------------------------------------------------------------------------------- + +<# +.Synopsis +Asynchronously updates a partner namespace with the specified parameters. +.Description +Asynchronously updates a partner namespace with the specified parameters. +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Inputs +Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.IEventGridIdentity +.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. + +INBOUNDIPRULE : This can be used to restrict traffic from specific IPs instead of all IPs. Note: These are considered only if PublicNetworkAccess is enabled. + [Action ]: Action to perform based on the match or no match of the IpMask. + [IPMask ]: IP Address in CIDR notation e.g., 10.0.0.0/8. + +INPUTOBJECT : Identity Parameter + [ChannelName ]: Name of the channel. + [DomainName ]: Name of the domain. + [DomainTopicName ]: Name of the topic. + [EventChannelName ]: Name of the event channel. + [EventSubscriptionName ]: Name of the event subscription. + [Id ]: Resource identity path + [Location ]: Name of the location. + [ParentName ]: The name of the parent resource (namely, either, the topic name, domain name, or partner namespace name). + [ParentType ]: The type of the parent resource. This can be either \'topics\', \'domains\', or \'partnerNamespaces\'. + [PartnerDestinationName ]: Name of the partner destination. + [PartnerNamespaceName ]: Name of the partner namespace. + [PartnerRegistrationName ]: Name of the partner registration. + [PartnerTopicName ]: Name of the partner topic. + [PrivateEndpointConnectionName ]: The name of the private endpoint connection connection. + [PrivateLinkResourceName ]: The name of private link resource. + [ProviderNamespace ]: Namespace of the provider of the topic. + [ResourceGroupName ]: The name of the resource group within the partners subscription. + [ResourceName ]: Name of the resource. + [ResourceTypeName ]: Name of the resource type. + [Scope ]: The scope of the event subscription. The scope can be a subscription, or a resource group, or a top level resource belonging to a resource provider namespace, or an EventGrid topic. For example, use '/subscriptions/{subscriptionId}/' for a subscription, '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}' for a resource group, and '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}' for a resource, and '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.EventGrid/topics/{topicName}' for an EventGrid topic. + [SubscriptionId ]: Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription ID forms part of the URI for every service call. + [SystemTopicName ]: Name of the system topic. + [TopicName ]: Name of the domain topic. + [TopicTypeName ]: Name of the topic type. + [VerifiedPartnerName ]: Name of the verified partner. +.Link +https://docs.microsoft.com/en-us/powershell/module/az.eventgrid/update-azeventgridpartnernamespace +#> +function Update-AzEventGridPartnerNamespace { +[OutputType([System.Boolean])] +[CmdletBinding(DefaultParameterSetName='UpdateExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(ParameterSetName='UpdateExpanded', Mandatory)] + [Alias('PartnerNamespaceName')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [System.String] + # Name of the partner namespace. + ${Name}, + + [Parameter(ParameterSetName='UpdateExpanded', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [System.String] + # The name of the resource group within the user's subscription. + ${ResourceGroupName}, + + [Parameter(ParameterSetName='UpdateExpanded')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] + [System.String] + # Subscription credentials that uniquely identify a Microsoft Azure subscription. + # The subscription ID forms part of the URI for every service call. + ${SubscriptionId}, + + [Parameter(ParameterSetName='UpdateViaIdentityExpanded', Mandatory, ValueFromPipeline)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.IEventGridIdentity] + # Identity Parameter + # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + ${InputObject}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [System.Management.Automation.SwitchParameter] + # This boolean is used to enable or disable local auth. + # Default value is false. + # When the property is set to true, only AAD token will be used to authenticate if user is allowed to publish to the partner namespace. + ${DisableLocalAuth}, + + [Parameter()] + [AllowEmptyCollection()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IInboundIPRule[]] + # This can be used to restrict traffic from specific IPs instead of all IPs. + # Note: These are considered only if PublicNetworkAccess is enabled. + # To construct, see NOTES section for INBOUNDIPRULE properties and create a hash table. + ${InboundIPRule}, + + [Parameter()] + [ArgumentCompleter([Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.PublicNetworkAccess])] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.PublicNetworkAccess] + # This determines if traffic is allowed over public network. + # By default it is enabled. + # You can further restrict to specific IPs by configuring + ${PublicNetworkAccess}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info(PossibleTypes=([Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerNamespaceUpdateParametersTags]))] + [System.Collections.Hashtable] + # Tags of the Partner Namespace. + ${Tag}, + + [Parameter()] + [Alias('AzureRMContext', 'AzureCredential')] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Run the command as a job + ${AsJob}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Run the command asynchronously + ${NoWait}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Returns true when the command succeeds + ${PassThru}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + if ($null -eq [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion) { + [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion = $Host.Runspace.Version.ToString() + } + $preTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + if ($preTelemetryId -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId =(New-Guid).ToString() + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.module]::Instance.Telemetry.Invoke('Create', $MyInvocation, $parameterSet, $PSCmdlet) + } else { + $internalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + if ($internalCalledCmdlets -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $MyInvocation.MyCommand.Name + } else { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets += ',' + $MyInvocation.MyCommand.Name + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = 'internal' + } + + $mapping = @{ + UpdateExpanded = 'Az.EventGrid.private\Update-AzEventGridPartnerNamespace_UpdateExpanded'; + UpdateViaIdentityExpanded = 'Az.EventGrid.private\Update-AzEventGridPartnerNamespace_UpdateViaIdentityExpanded'; + } + if (('UpdateExpanded') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { + $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } + + finally { + $backupTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + $backupInternalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + +} +end { + try { + $steppablePipeline.End() + + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $backupTelemetryId + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $backupInternalCalledCmdlets + if ($preTelemetryId -eq '') { + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.module]::Instance.Telemetry.Invoke('Send', $MyInvocation, $parameterSet, $PSCmdlet) + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $preTelemetryId + + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} +} diff --git a/swaggerci/eventgrid/exports/Update-AzEventGridPartnerRegistration.ps1 b/swaggerci/eventgrid/exports/Update-AzEventGridPartnerRegistration.ps1 new file mode 100644 index 000000000000..55af70f3df93 --- /dev/null +++ b/swaggerci/eventgrid/exports/Update-AzEventGridPartnerRegistration.ps1 @@ -0,0 +1,277 @@ + +# ---------------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for license information. +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is regenerated. +# ---------------------------------------------------------------------------------- + +<# +.Synopsis +Updates a partner registration with the specified parameters. +.Description +Updates a partner registration with the specified parameters. +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Inputs +Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.IEventGridIdentity +.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 + [ChannelName ]: Name of the channel. + [DomainName ]: Name of the domain. + [DomainTopicName ]: Name of the topic. + [EventChannelName ]: Name of the event channel. + [EventSubscriptionName ]: Name of the event subscription. + [Id ]: Resource identity path + [Location ]: Name of the location. + [ParentName ]: The name of the parent resource (namely, either, the topic name, domain name, or partner namespace name). + [ParentType ]: The type of the parent resource. This can be either \'topics\', \'domains\', or \'partnerNamespaces\'. + [PartnerDestinationName ]: Name of the partner destination. + [PartnerNamespaceName ]: Name of the partner namespace. + [PartnerRegistrationName ]: Name of the partner registration. + [PartnerTopicName ]: Name of the partner topic. + [PrivateEndpointConnectionName ]: The name of the private endpoint connection connection. + [PrivateLinkResourceName ]: The name of private link resource. + [ProviderNamespace ]: Namespace of the provider of the topic. + [ResourceGroupName ]: The name of the resource group within the partners subscription. + [ResourceName ]: Name of the resource. + [ResourceTypeName ]: Name of the resource type. + [Scope ]: The scope of the event subscription. The scope can be a subscription, or a resource group, or a top level resource belonging to a resource provider namespace, or an EventGrid topic. For example, use '/subscriptions/{subscriptionId}/' for a subscription, '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}' for a resource group, and '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}' for a resource, and '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.EventGrid/topics/{topicName}' for an EventGrid topic. + [SubscriptionId ]: Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription ID forms part of the URI for every service call. + [SystemTopicName ]: Name of the system topic. + [TopicName ]: Name of the domain topic. + [TopicTypeName ]: Name of the topic type. + [VerifiedPartnerName ]: Name of the verified partner. +.Link +https://docs.microsoft.com/en-us/powershell/module/az.eventgrid/update-azeventgridpartnerregistration +#> +function Update-AzEventGridPartnerRegistration { +[OutputType([System.Boolean])] +[CmdletBinding(DefaultParameterSetName='UpdateExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(ParameterSetName='UpdateExpanded', Mandatory)] + [Alias('PartnerRegistrationName')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [System.String] + # Name of the partner registration. + ${Name}, + + [Parameter(ParameterSetName='UpdateExpanded', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [System.String] + # The name of the resource group within the user's subscription. + ${ResourceGroupName}, + + [Parameter(ParameterSetName='UpdateExpanded')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] + [System.String] + # Subscription credentials that uniquely identify a Microsoft Azure subscription. + # The subscription ID forms part of the URI for every service call. + ${SubscriptionId}, + + [Parameter(ParameterSetName='UpdateViaIdentityExpanded', Mandatory, ValueFromPipeline)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.IEventGridIdentity] + # Identity Parameter + # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + ${InputObject}, + + [Parameter()] + [AllowEmptyCollection()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [System.String[]] + # List of IDs of Azure AD applications that are authorized to create a partner namespaceassociated with this partner registration. + # This is an optional property. + # Creatingpartner namespaces is always permitted under the same Azure subscription as the one usedfor creating the partner registration. + ${AuthorizedAzureSubscriptionId}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [System.String] + # URI of the partner logo. + ${LogoUri}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [System.String] + # Description of the partner topic type. + ${PartnerTopicTypeDescription}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [System.String] + # Display name of the partner topic type. + ${PartnerTopicTypeDisplayName}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [System.String] + # Name of the partner topic type. + ${PartnerTopicTypeName}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [System.String] + # URI of the partner website that can be used by Azure customers to setup Event Gridintegration on an event source. + ${SetupUri}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info(PossibleTypes=([Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerRegistrationUpdateParametersTags]))] + [System.Collections.Hashtable] + # Tags of the partner registration resource. + ${Tag}, + + [Parameter()] + [Alias('AzureRMContext', 'AzureCredential')] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Run the command as a job + ${AsJob}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Run the command asynchronously + ${NoWait}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Returns true when the command succeeds + ${PassThru}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + if ($null -eq [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion) { + [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion = $Host.Runspace.Version.ToString() + } + $preTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + if ($preTelemetryId -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId =(New-Guid).ToString() + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.module]::Instance.Telemetry.Invoke('Create', $MyInvocation, $parameterSet, $PSCmdlet) + } else { + $internalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + if ($internalCalledCmdlets -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $MyInvocation.MyCommand.Name + } else { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets += ',' + $MyInvocation.MyCommand.Name + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = 'internal' + } + + $mapping = @{ + UpdateExpanded = 'Az.EventGrid.private\Update-AzEventGridPartnerRegistration_UpdateExpanded'; + UpdateViaIdentityExpanded = 'Az.EventGrid.private\Update-AzEventGridPartnerRegistration_UpdateViaIdentityExpanded'; + } + if (('UpdateExpanded') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { + $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } + + finally { + $backupTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + $backupInternalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + +} +end { + try { + $steppablePipeline.End() + + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $backupTelemetryId + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $backupInternalCalledCmdlets + if ($preTelemetryId -eq '') { + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.module]::Instance.Telemetry.Invoke('Send', $MyInvocation, $parameterSet, $PSCmdlet) + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $preTelemetryId + + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} +} diff --git a/swaggerci/eventgrid/exports/Update-AzEventGridPartnerTopic.ps1 b/swaggerci/eventgrid/exports/Update-AzEventGridPartnerTopic.ps1 new file mode 100644 index 000000000000..a6880ded26bc --- /dev/null +++ b/swaggerci/eventgrid/exports/Update-AzEventGridPartnerTopic.ps1 @@ -0,0 +1,255 @@ + +# ---------------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for license information. +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is regenerated. +# ---------------------------------------------------------------------------------- + +<# +.Synopsis +Asynchronously updates a partner topic with the specified parameters. +.Description +Asynchronously updates a partner topic with the specified parameters. +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Inputs +Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.IEventGridIdentity +.Outputs +Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerTopic +.Notes +COMPLEX PARAMETER PROPERTIES + +To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. + +INPUTOBJECT : Identity Parameter + [ChannelName ]: Name of the channel. + [DomainName ]: Name of the domain. + [DomainTopicName ]: Name of the topic. + [EventChannelName ]: Name of the event channel. + [EventSubscriptionName ]: Name of the event subscription. + [Id ]: Resource identity path + [Location ]: Name of the location. + [ParentName ]: The name of the parent resource (namely, either, the topic name, domain name, or partner namespace name). + [ParentType ]: The type of the parent resource. This can be either \'topics\', \'domains\', or \'partnerNamespaces\'. + [PartnerDestinationName ]: Name of the partner destination. + [PartnerNamespaceName ]: Name of the partner namespace. + [PartnerRegistrationName ]: Name of the partner registration. + [PartnerTopicName ]: Name of the partner topic. + [PrivateEndpointConnectionName ]: The name of the private endpoint connection connection. + [PrivateLinkResourceName ]: The name of private link resource. + [ProviderNamespace ]: Namespace of the provider of the topic. + [ResourceGroupName ]: The name of the resource group within the partners subscription. + [ResourceName ]: Name of the resource. + [ResourceTypeName ]: Name of the resource type. + [Scope ]: The scope of the event subscription. The scope can be a subscription, or a resource group, or a top level resource belonging to a resource provider namespace, or an EventGrid topic. For example, use '/subscriptions/{subscriptionId}/' for a subscription, '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}' for a resource group, and '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}' for a resource, and '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.EventGrid/topics/{topicName}' for an EventGrid topic. + [SubscriptionId ]: Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription ID forms part of the URI for every service call. + [SystemTopicName ]: Name of the system topic. + [TopicName ]: Name of the domain topic. + [TopicTypeName ]: Name of the topic type. + [VerifiedPartnerName ]: Name of the verified partner. +.Link +https://docs.microsoft.com/en-us/powershell/module/az.eventgrid/update-azeventgridpartnertopic +#> +function Update-AzEventGridPartnerTopic { +[OutputType([Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerTopic])] +[CmdletBinding(DefaultParameterSetName='UpdateExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(ParameterSetName='UpdateExpanded', Mandatory)] + [Alias('PartnerTopicName')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [System.String] + # Name of the partner topic. + ${Name}, + + [Parameter(ParameterSetName='UpdateExpanded', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [System.String] + # The name of the resource group within the user's subscription. + ${ResourceGroupName}, + + [Parameter(ParameterSetName='UpdateExpanded')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] + [System.String] + # Subscription credentials that uniquely identify a Microsoft Azure subscription. + # The subscription ID forms part of the URI for every service call. + ${SubscriptionId}, + + [Parameter(ParameterSetName='UpdateViaIdentityExpanded', Mandatory, ValueFromPipeline)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.IEventGridIdentity] + # Identity Parameter + # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + ${InputObject}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [System.String] + # The principal ID of resource identity. + ${IdentityPrincipalId}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [System.String] + # The tenant ID of resource. + ${IdentityTenantId}, + + [Parameter()] + [ArgumentCompleter([Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.IdentityType])] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.IdentityType] + # The type of managed identity used. + # The type 'SystemAssigned, UserAssigned' includes both an implicitly created identity and a set of user-assigned identities. + # The type 'None' will remove any identity. + ${IdentityType}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info(PossibleTypes=([Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IIdentityInfoUserAssignedIdentities]))] + [System.Collections.Hashtable] + # The list of user identities associated with the resource. + # The user identity dictionary key references will be ARM resource ids in the form:'/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ManagedIdentity/userAssignedIdentities/{identityName}'.This property is currently not used and reserved for future usage. + ${IdentityUserAssignedIdentity}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info(PossibleTypes=([Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerTopicUpdateParametersTags]))] + [System.Collections.Hashtable] + # Tags of the Partner Topic resource. + ${Tag}, + + [Parameter()] + [Alias('AzureRMContext', 'AzureCredential')] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Returns true when the command succeeds + ${PassThru}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + if ($null -eq [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion) { + [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion = $Host.Runspace.Version.ToString() + } + $preTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + if ($preTelemetryId -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId =(New-Guid).ToString() + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.module]::Instance.Telemetry.Invoke('Create', $MyInvocation, $parameterSet, $PSCmdlet) + } else { + $internalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + if ($internalCalledCmdlets -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $MyInvocation.MyCommand.Name + } else { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets += ',' + $MyInvocation.MyCommand.Name + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = 'internal' + } + + $mapping = @{ + UpdateExpanded = 'Az.EventGrid.private\Update-AzEventGridPartnerTopic_UpdateExpanded'; + UpdateViaIdentityExpanded = 'Az.EventGrid.private\Update-AzEventGridPartnerTopic_UpdateViaIdentityExpanded'; + } + if (('UpdateExpanded') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { + $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } + + finally { + $backupTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + $backupInternalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + +} +end { + try { + $steppablePipeline.End() + + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $backupTelemetryId + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $backupInternalCalledCmdlets + if ($preTelemetryId -eq '') { + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.module]::Instance.Telemetry.Invoke('Send', $MyInvocation, $parameterSet, $PSCmdlet) + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $preTelemetryId + + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} +} diff --git a/swaggerci/eventgrid/exports/Update-AzEventGridPartnerTopicEventSubscription.ps1 b/swaggerci/eventgrid/exports/Update-AzEventGridPartnerTopicEventSubscription.ps1 new file mode 100644 index 000000000000..ce19407ebcb0 --- /dev/null +++ b/swaggerci/eventgrid/exports/Update-AzEventGridPartnerTopicEventSubscription.ps1 @@ -0,0 +1,357 @@ + +# ---------------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for license information. +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is regenerated. +# ---------------------------------------------------------------------------------- + +<# +.Synopsis +Update an existing event subscription of a partner topic. +.Description +Update an existing event subscription of a partner topic. +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Inputs +Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.IEventGridIdentity +.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. + +FILTERADVANCEDFILTER : An array of advanced filters that are used for filtering event subscriptions. + OperatorType : The operator type used for filtering, e.g., NumberIn, StringContains, BoolEquals and others. + [Key ]: The field/property in the event based on which you want to filter. + +INPUTOBJECT : Identity Parameter + [ChannelName ]: Name of the channel. + [DomainName ]: Name of the domain. + [DomainTopicName ]: Name of the topic. + [EventChannelName ]: Name of the event channel. + [EventSubscriptionName ]: Name of the event subscription. + [Id ]: Resource identity path + [Location ]: Name of the location. + [ParentName ]: The name of the parent resource (namely, either, the topic name, domain name, or partner namespace name). + [ParentType ]: The type of the parent resource. This can be either \'topics\', \'domains\', or \'partnerNamespaces\'. + [PartnerDestinationName ]: Name of the partner destination. + [PartnerNamespaceName ]: Name of the partner namespace. + [PartnerRegistrationName ]: Name of the partner registration. + [PartnerTopicName ]: Name of the partner topic. + [PrivateEndpointConnectionName ]: The name of the private endpoint connection connection. + [PrivateLinkResourceName ]: The name of private link resource. + [ProviderNamespace ]: Namespace of the provider of the topic. + [ResourceGroupName ]: The name of the resource group within the partners subscription. + [ResourceName ]: Name of the resource. + [ResourceTypeName ]: Name of the resource type. + [Scope ]: The scope of the event subscription. The scope can be a subscription, or a resource group, or a top level resource belonging to a resource provider namespace, or an EventGrid topic. For example, use '/subscriptions/{subscriptionId}/' for a subscription, '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}' for a resource group, and '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}' for a resource, and '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.EventGrid/topics/{topicName}' for an EventGrid topic. + [SubscriptionId ]: Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription ID forms part of the URI for every service call. + [SystemTopicName ]: Name of the system topic. + [TopicName ]: Name of the domain topic. + [TopicTypeName ]: Name of the topic type. + [VerifiedPartnerName ]: Name of the verified partner. +.Link +https://docs.microsoft.com/en-us/powershell/module/az.eventgrid/update-azeventgridpartnertopiceventsubscription +#> +function Update-AzEventGridPartnerTopicEventSubscription { +[OutputType([System.Boolean])] +[CmdletBinding(DefaultParameterSetName='UpdateExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(ParameterSetName='UpdateExpanded', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [System.String] + # Name of the event subscription to be created. + # Event subscription names must be between 3 and 100 characters in length and use alphanumeric letters only. + ${EventSubscriptionName}, + + [Parameter(ParameterSetName='UpdateExpanded', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [System.String] + # Name of the partner topic. + ${PartnerTopicName}, + + [Parameter(ParameterSetName='UpdateExpanded', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [System.String] + # The name of the resource group within the user's subscription. + ${ResourceGroupName}, + + [Parameter(ParameterSetName='UpdateExpanded')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] + [System.String] + # Subscription credentials that uniquely identify a Microsoft Azure subscription. + # The subscription ID forms part of the URI for every service call. + ${SubscriptionId}, + + [Parameter(ParameterSetName='UpdateViaIdentityExpanded', Mandatory, ValueFromPipeline)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.IEventGridIdentity] + # Identity Parameter + # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + ${InputObject}, + + [Parameter()] + [ArgumentCompleter([Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EventSubscriptionIdentityType])] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EventSubscriptionIdentityType] + # The type of managed identity used. + # The type 'SystemAssigned, UserAssigned' includes both an implicitly created identity and a set of user-assigned identities. + # The type 'None' will remove any identity. + ${DeadLetterWithResourceIdentityType}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [System.String] + # The user identity associated with the resource. + ${DeadLetterWithResourceIdentityUserAssignedIdentity}, + + [Parameter()] + [ArgumentCompleter([Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EndpointType])] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EndpointType] + # Type of the endpoint for the event subscription destination. + ${DeliveryWithResourceIdentityDestinationEndpointType}, + + [Parameter()] + [ArgumentCompleter([Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EventSubscriptionIdentityType])] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EventSubscriptionIdentityType] + # The type of managed identity used. + # The type 'SystemAssigned, UserAssigned' includes both an implicitly created identity and a set of user-assigned identities. + # The type 'None' will remove any identity. + ${DeliveryWithResourceIdentityType}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [System.String] + # The user identity associated with the resource. + ${DeliveryWithResourceIdentityUserAssignedIdentity}, + + [Parameter()] + [ArgumentCompleter([Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EndpointType])] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EndpointType] + # Type of the endpoint for the event subscription destination. + ${EndpointType}, + + [Parameter()] + [ArgumentCompleter([Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EventDeliverySchema])] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EventDeliverySchema] + # The event delivery schema for the event subscription. + ${EventDeliverySchema}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [System.DateTime] + # Information about the expiration time for the event subscription. + ${ExpirationTimeUtc}, + + [Parameter()] + [AllowEmptyCollection()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IAdvancedFilter[]] + # An array of advanced filters that are used for filtering event subscriptions. + # To construct, see NOTES section for FILTERADVANCEDFILTER properties and create a hash table. + ${FilterAdvancedFilter}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [System.Management.Automation.SwitchParameter] + # Allows advanced filters to be evaluated against an array of values instead of expecting a singular value. + ${FilterEnableAdvancedFilteringOnArray}, + + [Parameter()] + [AllowEmptyCollection()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [System.String[]] + # A list of applicable event types that need to be part of the event subscription. + # If it is desired to subscribe to all default event types, set the IncludedEventTypes to null. + ${FilterIncludedEventType}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [System.Management.Automation.SwitchParameter] + # Specifies if the SubjectBeginsWith and SubjectEndsWith properties of the filtershould be compared in a case sensitive manner. + ${FilterIsSubjectCaseSensitive}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [System.String] + # An optional string to filter events for an event subscription based on a resource path prefix.The format of this depends on the publisher of the events.Wildcard characters are not supported in this path. + ${FilterSubjectBeginsWith}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [System.String] + # An optional string to filter events for an event subscription based on a resource path suffix.Wildcard characters are not supported in this path. + ${FilterSubjectEndsWith}, + + [Parameter()] + [AllowEmptyCollection()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [System.String[]] + # List of user defined labels. + ${Label}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [System.Int32] + # Time To Live (in minutes) for events. + ${RetryPolicyEventTimeToLiveInMinute}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [System.Int32] + # Maximum number of delivery retry attempts for events. + ${RetryPolicyMaxDeliveryAttempt}, + + [Parameter()] + [Alias('AzureRMContext', 'AzureCredential')] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Run the command as a job + ${AsJob}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Run the command asynchronously + ${NoWait}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Returns true when the command succeeds + ${PassThru}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + if ($null -eq [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion) { + [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion = $Host.Runspace.Version.ToString() + } + $preTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + if ($preTelemetryId -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId =(New-Guid).ToString() + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.module]::Instance.Telemetry.Invoke('Create', $MyInvocation, $parameterSet, $PSCmdlet) + } else { + $internalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + if ($internalCalledCmdlets -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $MyInvocation.MyCommand.Name + } else { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets += ',' + $MyInvocation.MyCommand.Name + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = 'internal' + } + + $mapping = @{ + UpdateExpanded = 'Az.EventGrid.private\Update-AzEventGridPartnerTopicEventSubscription_UpdateExpanded'; + UpdateViaIdentityExpanded = 'Az.EventGrid.private\Update-AzEventGridPartnerTopicEventSubscription_UpdateViaIdentityExpanded'; + } + if (('UpdateExpanded') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { + $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } + + finally { + $backupTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + $backupInternalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + +} +end { + try { + $steppablePipeline.End() + + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $backupTelemetryId + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $backupInternalCalledCmdlets + if ($preTelemetryId -eq '') { + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.module]::Instance.Telemetry.Invoke('Send', $MyInvocation, $parameterSet, $PSCmdlet) + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $preTelemetryId + + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} +} diff --git a/swaggerci/eventgrid/exports/Update-AzEventGridSystemTopic.ps1 b/swaggerci/eventgrid/exports/Update-AzEventGridSystemTopic.ps1 new file mode 100644 index 000000000000..4b3039bc3385 --- /dev/null +++ b/swaggerci/eventgrid/exports/Update-AzEventGridSystemTopic.ps1 @@ -0,0 +1,267 @@ + +# ---------------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for license information. +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is regenerated. +# ---------------------------------------------------------------------------------- + +<# +.Synopsis +Asynchronously updates a system topic with the specified parameters. +.Description +Asynchronously updates a system topic with the specified parameters. +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Inputs +Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.IEventGridIdentity +.Outputs +Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ISystemTopic +.Notes +COMPLEX PARAMETER PROPERTIES + +To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. + +INPUTOBJECT : Identity Parameter + [ChannelName ]: Name of the channel. + [DomainName ]: Name of the domain. + [DomainTopicName ]: Name of the topic. + [EventChannelName ]: Name of the event channel. + [EventSubscriptionName ]: Name of the event subscription. + [Id ]: Resource identity path + [Location ]: Name of the location. + [ParentName ]: The name of the parent resource (namely, either, the topic name, domain name, or partner namespace name). + [ParentType ]: The type of the parent resource. This can be either \'topics\', \'domains\', or \'partnerNamespaces\'. + [PartnerDestinationName ]: Name of the partner destination. + [PartnerNamespaceName ]: Name of the partner namespace. + [PartnerRegistrationName ]: Name of the partner registration. + [PartnerTopicName ]: Name of the partner topic. + [PrivateEndpointConnectionName ]: The name of the private endpoint connection connection. + [PrivateLinkResourceName ]: The name of private link resource. + [ProviderNamespace ]: Namespace of the provider of the topic. + [ResourceGroupName ]: The name of the resource group within the partners subscription. + [ResourceName ]: Name of the resource. + [ResourceTypeName ]: Name of the resource type. + [Scope ]: The scope of the event subscription. The scope can be a subscription, or a resource group, or a top level resource belonging to a resource provider namespace, or an EventGrid topic. For example, use '/subscriptions/{subscriptionId}/' for a subscription, '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}' for a resource group, and '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}' for a resource, and '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.EventGrid/topics/{topicName}' for an EventGrid topic. + [SubscriptionId ]: Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription ID forms part of the URI for every service call. + [SystemTopicName ]: Name of the system topic. + [TopicName ]: Name of the domain topic. + [TopicTypeName ]: Name of the topic type. + [VerifiedPartnerName ]: Name of the verified partner. +.Link +https://docs.microsoft.com/en-us/powershell/module/az.eventgrid/update-azeventgridsystemtopic +#> +function Update-AzEventGridSystemTopic { +[OutputType([Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ISystemTopic])] +[CmdletBinding(DefaultParameterSetName='UpdateExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(ParameterSetName='UpdateExpanded', Mandatory)] + [Alias('SystemTopicName')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [System.String] + # Name of the system topic. + ${Name}, + + [Parameter(ParameterSetName='UpdateExpanded', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [System.String] + # The name of the resource group within the user's subscription. + ${ResourceGroupName}, + + [Parameter(ParameterSetName='UpdateExpanded')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] + [System.String] + # Subscription credentials that uniquely identify a Microsoft Azure subscription. + # The subscription ID forms part of the URI for every service call. + ${SubscriptionId}, + + [Parameter(ParameterSetName='UpdateViaIdentityExpanded', Mandatory, ValueFromPipeline)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.IEventGridIdentity] + # Identity Parameter + # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + ${InputObject}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [System.String] + # The principal ID of resource identity. + ${IdentityPrincipalId}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [System.String] + # The tenant ID of resource. + ${IdentityTenantId}, + + [Parameter()] + [ArgumentCompleter([Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.IdentityType])] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.IdentityType] + # The type of managed identity used. + # The type 'SystemAssigned, UserAssigned' includes both an implicitly created identity and a set of user-assigned identities. + # The type 'None' will remove any identity. + ${IdentityType}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info(PossibleTypes=([Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IIdentityInfoUserAssignedIdentities]))] + [System.Collections.Hashtable] + # The list of user identities associated with the resource. + # The user identity dictionary key references will be ARM resource ids in the form:'/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ManagedIdentity/userAssignedIdentities/{identityName}'.This property is currently not used and reserved for future usage. + ${IdentityUserAssignedIdentity}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info(PossibleTypes=([Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ISystemTopicUpdateParametersTags]))] + [System.Collections.Hashtable] + # Tags of the system topic. + ${Tag}, + + [Parameter()] + [Alias('AzureRMContext', 'AzureCredential')] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Run the command as a job + ${AsJob}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Run the command asynchronously + ${NoWait}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Returns true when the command succeeds + ${PassThru}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + if ($null -eq [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion) { + [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion = $Host.Runspace.Version.ToString() + } + $preTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + if ($preTelemetryId -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId =(New-Guid).ToString() + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.module]::Instance.Telemetry.Invoke('Create', $MyInvocation, $parameterSet, $PSCmdlet) + } else { + $internalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + if ($internalCalledCmdlets -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $MyInvocation.MyCommand.Name + } else { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets += ',' + $MyInvocation.MyCommand.Name + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = 'internal' + } + + $mapping = @{ + UpdateExpanded = 'Az.EventGrid.private\Update-AzEventGridSystemTopic_UpdateExpanded'; + UpdateViaIdentityExpanded = 'Az.EventGrid.private\Update-AzEventGridSystemTopic_UpdateViaIdentityExpanded'; + } + if (('UpdateExpanded') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { + $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } + + finally { + $backupTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + $backupInternalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + +} +end { + try { + $steppablePipeline.End() + + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $backupTelemetryId + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $backupInternalCalledCmdlets + if ($preTelemetryId -eq '') { + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.module]::Instance.Telemetry.Invoke('Send', $MyInvocation, $parameterSet, $PSCmdlet) + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $preTelemetryId + + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} +} diff --git a/swaggerci/eventgrid/exports/Update-AzEventGridSystemTopicEventSubscription.ps1 b/swaggerci/eventgrid/exports/Update-AzEventGridSystemTopicEventSubscription.ps1 new file mode 100644 index 000000000000..3aed31427c6e --- /dev/null +++ b/swaggerci/eventgrid/exports/Update-AzEventGridSystemTopicEventSubscription.ps1 @@ -0,0 +1,357 @@ + +# ---------------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for license information. +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is regenerated. +# ---------------------------------------------------------------------------------- + +<# +.Synopsis +Update an existing event subscription of a system topic. +.Description +Update an existing event subscription of a system topic. +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Inputs +Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.IEventGridIdentity +.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. + +FILTERADVANCEDFILTER : An array of advanced filters that are used for filtering event subscriptions. + OperatorType : The operator type used for filtering, e.g., NumberIn, StringContains, BoolEquals and others. + [Key ]: The field/property in the event based on which you want to filter. + +INPUTOBJECT : Identity Parameter + [ChannelName ]: Name of the channel. + [DomainName ]: Name of the domain. + [DomainTopicName ]: Name of the topic. + [EventChannelName ]: Name of the event channel. + [EventSubscriptionName ]: Name of the event subscription. + [Id ]: Resource identity path + [Location ]: Name of the location. + [ParentName ]: The name of the parent resource (namely, either, the topic name, domain name, or partner namespace name). + [ParentType ]: The type of the parent resource. This can be either \'topics\', \'domains\', or \'partnerNamespaces\'. + [PartnerDestinationName ]: Name of the partner destination. + [PartnerNamespaceName ]: Name of the partner namespace. + [PartnerRegistrationName ]: Name of the partner registration. + [PartnerTopicName ]: Name of the partner topic. + [PrivateEndpointConnectionName ]: The name of the private endpoint connection connection. + [PrivateLinkResourceName ]: The name of private link resource. + [ProviderNamespace ]: Namespace of the provider of the topic. + [ResourceGroupName ]: The name of the resource group within the partners subscription. + [ResourceName ]: Name of the resource. + [ResourceTypeName ]: Name of the resource type. + [Scope ]: The scope of the event subscription. The scope can be a subscription, or a resource group, or a top level resource belonging to a resource provider namespace, or an EventGrid topic. For example, use '/subscriptions/{subscriptionId}/' for a subscription, '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}' for a resource group, and '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}' for a resource, and '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.EventGrid/topics/{topicName}' for an EventGrid topic. + [SubscriptionId ]: Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription ID forms part of the URI for every service call. + [SystemTopicName ]: Name of the system topic. + [TopicName ]: Name of the domain topic. + [TopicTypeName ]: Name of the topic type. + [VerifiedPartnerName ]: Name of the verified partner. +.Link +https://docs.microsoft.com/en-us/powershell/module/az.eventgrid/update-azeventgridsystemtopiceventsubscription +#> +function Update-AzEventGridSystemTopicEventSubscription { +[OutputType([System.Boolean])] +[CmdletBinding(DefaultParameterSetName='UpdateExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(ParameterSetName='UpdateExpanded', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [System.String] + # Name of the event subscription to be created. + # Event subscription names must be between 3 and 100 characters in length and use alphanumeric letters only. + ${EventSubscriptionName}, + + [Parameter(ParameterSetName='UpdateExpanded', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [System.String] + # The name of the resource group within the user's subscription. + ${ResourceGroupName}, + + [Parameter(ParameterSetName='UpdateExpanded')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] + [System.String] + # Subscription credentials that uniquely identify a Microsoft Azure subscription. + # The subscription ID forms part of the URI for every service call. + ${SubscriptionId}, + + [Parameter(ParameterSetName='UpdateExpanded', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [System.String] + # Name of the system topic. + ${SystemTopicName}, + + [Parameter(ParameterSetName='UpdateViaIdentityExpanded', Mandatory, ValueFromPipeline)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.IEventGridIdentity] + # Identity Parameter + # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + ${InputObject}, + + [Parameter()] + [ArgumentCompleter([Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EventSubscriptionIdentityType])] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EventSubscriptionIdentityType] + # The type of managed identity used. + # The type 'SystemAssigned, UserAssigned' includes both an implicitly created identity and a set of user-assigned identities. + # The type 'None' will remove any identity. + ${DeadLetterWithResourceIdentityType}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [System.String] + # The user identity associated with the resource. + ${DeadLetterWithResourceIdentityUserAssignedIdentity}, + + [Parameter()] + [ArgumentCompleter([Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EndpointType])] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EndpointType] + # Type of the endpoint for the event subscription destination. + ${DeliveryWithResourceIdentityDestinationEndpointType}, + + [Parameter()] + [ArgumentCompleter([Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EventSubscriptionIdentityType])] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EventSubscriptionIdentityType] + # The type of managed identity used. + # The type 'SystemAssigned, UserAssigned' includes both an implicitly created identity and a set of user-assigned identities. + # The type 'None' will remove any identity. + ${DeliveryWithResourceIdentityType}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [System.String] + # The user identity associated with the resource. + ${DeliveryWithResourceIdentityUserAssignedIdentity}, + + [Parameter()] + [ArgumentCompleter([Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EndpointType])] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EndpointType] + # Type of the endpoint for the event subscription destination. + ${EndpointType}, + + [Parameter()] + [ArgumentCompleter([Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EventDeliverySchema])] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EventDeliverySchema] + # The event delivery schema for the event subscription. + ${EventDeliverySchema}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [System.DateTime] + # Information about the expiration time for the event subscription. + ${ExpirationTimeUtc}, + + [Parameter()] + [AllowEmptyCollection()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IAdvancedFilter[]] + # An array of advanced filters that are used for filtering event subscriptions. + # To construct, see NOTES section for FILTERADVANCEDFILTER properties and create a hash table. + ${FilterAdvancedFilter}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [System.Management.Automation.SwitchParameter] + # Allows advanced filters to be evaluated against an array of values instead of expecting a singular value. + ${FilterEnableAdvancedFilteringOnArray}, + + [Parameter()] + [AllowEmptyCollection()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [System.String[]] + # A list of applicable event types that need to be part of the event subscription. + # If it is desired to subscribe to all default event types, set the IncludedEventTypes to null. + ${FilterIncludedEventType}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [System.Management.Automation.SwitchParameter] + # Specifies if the SubjectBeginsWith and SubjectEndsWith properties of the filtershould be compared in a case sensitive manner. + ${FilterIsSubjectCaseSensitive}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [System.String] + # An optional string to filter events for an event subscription based on a resource path prefix.The format of this depends on the publisher of the events.Wildcard characters are not supported in this path. + ${FilterSubjectBeginsWith}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [System.String] + # An optional string to filter events for an event subscription based on a resource path suffix.Wildcard characters are not supported in this path. + ${FilterSubjectEndsWith}, + + [Parameter()] + [AllowEmptyCollection()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [System.String[]] + # List of user defined labels. + ${Label}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [System.Int32] + # Time To Live (in minutes) for events. + ${RetryPolicyEventTimeToLiveInMinute}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [System.Int32] + # Maximum number of delivery retry attempts for events. + ${RetryPolicyMaxDeliveryAttempt}, + + [Parameter()] + [Alias('AzureRMContext', 'AzureCredential')] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Run the command as a job + ${AsJob}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Run the command asynchronously + ${NoWait}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Returns true when the command succeeds + ${PassThru}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + if ($null -eq [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion) { + [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion = $Host.Runspace.Version.ToString() + } + $preTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + if ($preTelemetryId -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId =(New-Guid).ToString() + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.module]::Instance.Telemetry.Invoke('Create', $MyInvocation, $parameterSet, $PSCmdlet) + } else { + $internalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + if ($internalCalledCmdlets -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $MyInvocation.MyCommand.Name + } else { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets += ',' + $MyInvocation.MyCommand.Name + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = 'internal' + } + + $mapping = @{ + UpdateExpanded = 'Az.EventGrid.private\Update-AzEventGridSystemTopicEventSubscription_UpdateExpanded'; + UpdateViaIdentityExpanded = 'Az.EventGrid.private\Update-AzEventGridSystemTopicEventSubscription_UpdateViaIdentityExpanded'; + } + if (('UpdateExpanded') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { + $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } + + finally { + $backupTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + $backupInternalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + +} +end { + try { + $steppablePipeline.End() + + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $backupTelemetryId + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $backupInternalCalledCmdlets + if ($preTelemetryId -eq '') { + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.module]::Instance.Telemetry.Invoke('Send', $MyInvocation, $parameterSet, $PSCmdlet) + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $preTelemetryId + + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} +} diff --git a/swaggerci/eventgrid/exports/Update-AzEventGridTopic.ps1 b/swaggerci/eventgrid/exports/Update-AzEventGridTopic.ps1 new file mode 100644 index 000000000000..9a454d75619f --- /dev/null +++ b/swaggerci/eventgrid/exports/Update-AzEventGridTopic.ps1 @@ -0,0 +1,312 @@ + +# ---------------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for license information. +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is regenerated. +# ---------------------------------------------------------------------------------- + +<# +.Synopsis +Asynchronously updates a topic with the specified parameters. +.Description +Asynchronously updates a topic with the specified parameters. +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Inputs +Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.IEventGridIdentity +.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. + +INBOUNDIPRULE : This can be used to restrict traffic from specific IPs instead of all IPs. Note: These are considered only if PublicNetworkAccess is enabled. + [Action ]: Action to perform based on the match or no match of the IpMask. + [IPMask ]: IP Address in CIDR notation e.g., 10.0.0.0/8. + +INPUTOBJECT : Identity Parameter + [ChannelName ]: Name of the channel. + [DomainName ]: Name of the domain. + [DomainTopicName ]: Name of the topic. + [EventChannelName ]: Name of the event channel. + [EventSubscriptionName ]: Name of the event subscription. + [Id ]: Resource identity path + [Location ]: Name of the location. + [ParentName ]: The name of the parent resource (namely, either, the topic name, domain name, or partner namespace name). + [ParentType ]: The type of the parent resource. This can be either \'topics\', \'domains\', or \'partnerNamespaces\'. + [PartnerDestinationName ]: Name of the partner destination. + [PartnerNamespaceName ]: Name of the partner namespace. + [PartnerRegistrationName ]: Name of the partner registration. + [PartnerTopicName ]: Name of the partner topic. + [PrivateEndpointConnectionName ]: The name of the private endpoint connection connection. + [PrivateLinkResourceName ]: The name of private link resource. + [ProviderNamespace ]: Namespace of the provider of the topic. + [ResourceGroupName ]: The name of the resource group within the partners subscription. + [ResourceName ]: Name of the resource. + [ResourceTypeName ]: Name of the resource type. + [Scope ]: The scope of the event subscription. The scope can be a subscription, or a resource group, or a top level resource belonging to a resource provider namespace, or an EventGrid topic. For example, use '/subscriptions/{subscriptionId}/' for a subscription, '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}' for a resource group, and '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}' for a resource, and '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.EventGrid/topics/{topicName}' for an EventGrid topic. + [SubscriptionId ]: Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription ID forms part of the URI for every service call. + [SystemTopicName ]: Name of the system topic. + [TopicName ]: Name of the domain topic. + [TopicTypeName ]: Name of the topic type. + [VerifiedPartnerName ]: Name of the verified partner. +.Link +https://docs.microsoft.com/en-us/powershell/module/az.eventgrid/update-azeventgridtopic +#> +function Update-AzEventGridTopic { +[OutputType([System.Boolean])] +[CmdletBinding(DefaultParameterSetName='UpdateExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(ParameterSetName='UpdateExpanded', Mandatory)] + [Alias('TopicName')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [System.String] + # Name of the topic. + ${Name}, + + [Parameter(ParameterSetName='UpdateExpanded', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [System.String] + # The name of the resource group within the user's subscription. + ${ResourceGroupName}, + + [Parameter(ParameterSetName='UpdateExpanded')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] + [System.String] + # Subscription credentials that uniquely identify a Microsoft Azure subscription. + # The subscription ID forms part of the URI for every service call. + ${SubscriptionId}, + + [Parameter(ParameterSetName='UpdateViaIdentityExpanded', Mandatory, ValueFromPipeline)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.IEventGridIdentity] + # Identity Parameter + # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + ${InputObject}, + + [Parameter()] + [ArgumentCompleter([Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.DataResidencyBoundary])] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.DataResidencyBoundary] + # The data residency boundary for the topic. + ${DataResidencyBoundary}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [System.Management.Automation.SwitchParameter] + # This boolean is used to enable or disable local auth. + # Default value is false. + # When the property is set to true, only AAD token will be used to authenticate if user is allowed to publish to the topic. + ${DisableLocalAuth}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [System.String] + # The principal ID of resource identity. + ${IdentityPrincipalId}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [System.String] + # The tenant ID of resource. + ${IdentityTenantId}, + + [Parameter()] + [ArgumentCompleter([Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.IdentityType])] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.IdentityType] + # The type of managed identity used. + # The type 'SystemAssigned, UserAssigned' includes both an implicitly created identity and a set of user-assigned identities. + # The type 'None' will remove any identity. + ${IdentityType}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info(PossibleTypes=([Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IIdentityInfoUserAssignedIdentities]))] + [System.Collections.Hashtable] + # The list of user identities associated with the resource. + # The user identity dictionary key references will be ARM resource ids in the form:'/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ManagedIdentity/userAssignedIdentities/{identityName}'.This property is currently not used and reserved for future usage. + ${IdentityUserAssignedIdentity}, + + [Parameter()] + [AllowEmptyCollection()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IInboundIPRule[]] + # This can be used to restrict traffic from specific IPs instead of all IPs. + # Note: These are considered only if PublicNetworkAccess is enabled. + # To construct, see NOTES section for INBOUNDIPRULE properties and create a hash table. + ${InboundIPRule}, + + [Parameter()] + [ArgumentCompleter([Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.PublicNetworkAccess])] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.PublicNetworkAccess] + # This determines if traffic is allowed over public network. + # By default it is enabled. + # You can further restrict to specific IPs by configuring + ${PublicNetworkAccess}, + + [Parameter()] + [ArgumentCompleter([Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.Sku])] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.Sku] + # The Sku name of the resource. + # The possible values are: Basic or Premium. + ${SkuName}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info(PossibleTypes=([Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITopicUpdateParametersTags]))] + [System.Collections.Hashtable] + # Tags of the Topic resource. + ${Tag}, + + [Parameter()] + [Alias('AzureRMContext', 'AzureCredential')] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Run the command as a job + ${AsJob}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Run the command asynchronously + ${NoWait}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Returns true when the command succeeds + ${PassThru}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + if ($null -eq [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion) { + [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion = $Host.Runspace.Version.ToString() + } + $preTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + if ($preTelemetryId -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId =(New-Guid).ToString() + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.module]::Instance.Telemetry.Invoke('Create', $MyInvocation, $parameterSet, $PSCmdlet) + } else { + $internalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + if ($internalCalledCmdlets -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $MyInvocation.MyCommand.Name + } else { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets += ',' + $MyInvocation.MyCommand.Name + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = 'internal' + } + + $mapping = @{ + UpdateExpanded = 'Az.EventGrid.private\Update-AzEventGridTopic_UpdateExpanded'; + UpdateViaIdentityExpanded = 'Az.EventGrid.private\Update-AzEventGridTopic_UpdateViaIdentityExpanded'; + } + if (('UpdateExpanded') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { + $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } + + finally { + $backupTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + $backupInternalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + +} +end { + try { + $steppablePipeline.End() + + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $backupTelemetryId + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $backupInternalCalledCmdlets + if ($preTelemetryId -eq '') { + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.module]::Instance.Telemetry.Invoke('Send', $MyInvocation, $parameterSet, $PSCmdlet) + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $preTelemetryId + + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} +} diff --git a/swaggerci/eventgrid/exports/Update-AzEventGridTopicEventSubscription.ps1 b/swaggerci/eventgrid/exports/Update-AzEventGridTopicEventSubscription.ps1 new file mode 100644 index 000000000000..96a166bdb56b --- /dev/null +++ b/swaggerci/eventgrid/exports/Update-AzEventGridTopicEventSubscription.ps1 @@ -0,0 +1,356 @@ + +# ---------------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for license information. +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is regenerated. +# ---------------------------------------------------------------------------------- + +<# +.Synopsis +Update an existing event subscription for a topic. +.Description +Update an existing event subscription for a topic. +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Inputs +Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.IEventGridIdentity +.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. + +FILTERADVANCEDFILTER : An array of advanced filters that are used for filtering event subscriptions. + OperatorType : The operator type used for filtering, e.g., NumberIn, StringContains, BoolEquals and others. + [Key ]: The field/property in the event based on which you want to filter. + +INPUTOBJECT : Identity Parameter + [ChannelName ]: Name of the channel. + [DomainName ]: Name of the domain. + [DomainTopicName ]: Name of the topic. + [EventChannelName ]: Name of the event channel. + [EventSubscriptionName ]: Name of the event subscription. + [Id ]: Resource identity path + [Location ]: Name of the location. + [ParentName ]: The name of the parent resource (namely, either, the topic name, domain name, or partner namespace name). + [ParentType ]: The type of the parent resource. This can be either \'topics\', \'domains\', or \'partnerNamespaces\'. + [PartnerDestinationName ]: Name of the partner destination. + [PartnerNamespaceName ]: Name of the partner namespace. + [PartnerRegistrationName ]: Name of the partner registration. + [PartnerTopicName ]: Name of the partner topic. + [PrivateEndpointConnectionName ]: The name of the private endpoint connection connection. + [PrivateLinkResourceName ]: The name of private link resource. + [ProviderNamespace ]: Namespace of the provider of the topic. + [ResourceGroupName ]: The name of the resource group within the partners subscription. + [ResourceName ]: Name of the resource. + [ResourceTypeName ]: Name of the resource type. + [Scope ]: The scope of the event subscription. The scope can be a subscription, or a resource group, or a top level resource belonging to a resource provider namespace, or an EventGrid topic. For example, use '/subscriptions/{subscriptionId}/' for a subscription, '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}' for a resource group, and '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}' for a resource, and '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.EventGrid/topics/{topicName}' for an EventGrid topic. + [SubscriptionId ]: Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription ID forms part of the URI for every service call. + [SystemTopicName ]: Name of the system topic. + [TopicName ]: Name of the domain topic. + [TopicTypeName ]: Name of the topic type. + [VerifiedPartnerName ]: Name of the verified partner. +.Link +https://docs.microsoft.com/en-us/powershell/module/az.eventgrid/update-azeventgridtopiceventsubscription +#> +function Update-AzEventGridTopicEventSubscription { +[OutputType([System.Boolean])] +[CmdletBinding(DefaultParameterSetName='UpdateExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] +param( + [Parameter(ParameterSetName='UpdateExpanded', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [System.String] + # Name of the event subscription to be updated. + ${EventSubscriptionName}, + + [Parameter(ParameterSetName='UpdateExpanded', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [System.String] + # The name of the resource group within the user's subscription. + ${ResourceGroupName}, + + [Parameter(ParameterSetName='UpdateExpanded')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.DefaultInfo(Script='(Get-AzContext).Subscription.Id')] + [System.String] + # Subscription credentials that uniquely identify a Microsoft Azure subscription. + # The subscription ID forms part of the URI for every service call. + ${SubscriptionId}, + + [Parameter(ParameterSetName='UpdateExpanded', Mandatory)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [System.String] + # Name of the domain. + ${TopicName}, + + [Parameter(ParameterSetName='UpdateViaIdentityExpanded', Mandatory, ValueFromPipeline)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Path')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.IEventGridIdentity] + # Identity Parameter + # To construct, see NOTES section for INPUTOBJECT properties and create a hash table. + ${InputObject}, + + [Parameter()] + [ArgumentCompleter([Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EventSubscriptionIdentityType])] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EventSubscriptionIdentityType] + # The type of managed identity used. + # The type 'SystemAssigned, UserAssigned' includes both an implicitly created identity and a set of user-assigned identities. + # The type 'None' will remove any identity. + ${DeadLetterWithResourceIdentityType}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [System.String] + # The user identity associated with the resource. + ${DeadLetterWithResourceIdentityUserAssignedIdentity}, + + [Parameter()] + [ArgumentCompleter([Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EndpointType])] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EndpointType] + # Type of the endpoint for the event subscription destination. + ${DeliveryWithResourceIdentityDestinationEndpointType}, + + [Parameter()] + [ArgumentCompleter([Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EventSubscriptionIdentityType])] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EventSubscriptionIdentityType] + # The type of managed identity used. + # The type 'SystemAssigned, UserAssigned' includes both an implicitly created identity and a set of user-assigned identities. + # The type 'None' will remove any identity. + ${DeliveryWithResourceIdentityType}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [System.String] + # The user identity associated with the resource. + ${DeliveryWithResourceIdentityUserAssignedIdentity}, + + [Parameter()] + [ArgumentCompleter([Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EndpointType])] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EndpointType] + # Type of the endpoint for the event subscription destination. + ${EndpointType}, + + [Parameter()] + [ArgumentCompleter([Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EventDeliverySchema])] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EventDeliverySchema] + # The event delivery schema for the event subscription. + ${EventDeliverySchema}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [System.DateTime] + # Information about the expiration time for the event subscription. + ${ExpirationTimeUtc}, + + [Parameter()] + [AllowEmptyCollection()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IAdvancedFilter[]] + # An array of advanced filters that are used for filtering event subscriptions. + # To construct, see NOTES section for FILTERADVANCEDFILTER properties and create a hash table. + ${FilterAdvancedFilter}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [System.Management.Automation.SwitchParameter] + # Allows advanced filters to be evaluated against an array of values instead of expecting a singular value. + ${FilterEnableAdvancedFilteringOnArray}, + + [Parameter()] + [AllowEmptyCollection()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [System.String[]] + # A list of applicable event types that need to be part of the event subscription. + # If it is desired to subscribe to all default event types, set the IncludedEventTypes to null. + ${FilterIncludedEventType}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [System.Management.Automation.SwitchParameter] + # Specifies if the SubjectBeginsWith and SubjectEndsWith properties of the filtershould be compared in a case sensitive manner. + ${FilterIsSubjectCaseSensitive}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [System.String] + # An optional string to filter events for an event subscription based on a resource path prefix.The format of this depends on the publisher of the events.Wildcard characters are not supported in this path. + ${FilterSubjectBeginsWith}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [System.String] + # An optional string to filter events for an event subscription based on a resource path suffix.Wildcard characters are not supported in this path. + ${FilterSubjectEndsWith}, + + [Parameter()] + [AllowEmptyCollection()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [System.String[]] + # List of user defined labels. + ${Label}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [System.Int32] + # Time To Live (in minutes) for events. + ${RetryPolicyEventTimeToLiveInMinute}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Body')] + [System.Int32] + # Maximum number of delivery retry attempts for events. + ${RetryPolicyMaxDeliveryAttempt}, + + [Parameter()] + [Alias('AzureRMContext', 'AzureCredential')] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Run the command as a job + ${AsJob}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Run the command asynchronously + ${NoWait}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Returns true when the command succeeds + ${PassThru}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use the default credentials for the proxy + ${ProxyUseDefaultCredentials} +) + +begin { + try { + $outBuffer = $null + if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) { + $PSBoundParameters['OutBuffer'] = 1 + } + $parameterSet = $PSCmdlet.ParameterSetName + + if ($null -eq [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion) { + [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion = $Host.Runspace.Version.ToString() + } + $preTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + if ($preTelemetryId -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId =(New-Guid).ToString() + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.module]::Instance.Telemetry.Invoke('Create', $MyInvocation, $parameterSet, $PSCmdlet) + } else { + $internalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + if ($internalCalledCmdlets -eq '') { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $MyInvocation.MyCommand.Name + } else { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets += ',' + $MyInvocation.MyCommand.Name + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = 'internal' + } + + $mapping = @{ + UpdateExpanded = 'Az.EventGrid.private\Update-AzEventGridTopicEventSubscription_UpdateExpanded'; + UpdateViaIdentityExpanded = 'Az.EventGrid.private\Update-AzEventGridTopicEventSubscription_UpdateViaIdentityExpanded'; + } + if (('UpdateExpanded') -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('SubscriptionId')) { + $PSBoundParameters['SubscriptionId'] = (Get-AzContext).Subscription.Id + } + $cmdInfo = Get-Command -Name $mapping[$parameterSet] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet) + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } + + finally { + $backupTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId + $backupInternalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + +} +end { + try { + $steppablePipeline.End() + + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $backupTelemetryId + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $backupInternalCalledCmdlets + if ($preTelemetryId -eq '') { + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.module]::Instance.Telemetry.Invoke('Send', $MyInvocation, $parameterSet, $PSCmdlet) + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + } + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $preTelemetryId + + } catch { + [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() + throw + } +} +} diff --git a/swaggerci/eventgrid/generate-help.ps1 b/swaggerci/eventgrid/generate-help.ps1 new file mode 100644 index 000000000000..87220f557f07 --- /dev/null +++ b/swaggerci/eventgrid/generate-help.ps1 @@ -0,0 +1,66 @@ +# ---------------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for license information. +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is regenerated. +# ---------------------------------------------------------------------------------- +param([switch]$Isolated) +$ErrorActionPreference = 'Stop' + +$pwsh = [System.Diagnostics.Process]::GetCurrentProcess().Path +if(-not $Isolated) { + Write-Host -ForegroundColor Green 'Creating isolated process...' + & "$pwsh" -NonInteractive -NoLogo -NoProfile -File $MyInvocation.MyCommand.Path @PSBoundParameters -Isolated + return +} + +$exportsFolder = Join-Path $PSScriptRoot 'exports' +if(-not (Test-Path $exportsFolder)) { + Write-Error "Exports folder '$exportsFolder' was not found." +} + +$directories = Get-ChildItem -Directory -Path $exportsFolder +$hasProfiles = ($directories | Measure-Object).Count -gt 0 +if(-not $hasProfiles) { + $directories = Get-Item -Path $exportsFolder +} + +$docsFolder = Join-Path $PSScriptRoot 'docs' +if(Test-Path $docsFolder) { + $null = Get-ChildItem -Path $docsFolder -Recurse -Exclude 'README.md' | Remove-Item -Recurse -ErrorAction SilentlyContinue +} +$null = New-Item -ItemType Directory -Force -Path $docsFolder -ErrorAction SilentlyContinue +$examplesFolder = Join-Path $PSScriptRoot 'examples' + +$modulePsd1 = Get-Item -Path (Join-Path $PSScriptRoot './Az.EventGrid.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.EventGrid.private.dll') +$instance = [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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/eventgrid/generated/Module.cs b/swaggerci/eventgrid/generated/Module.cs new file mode 100644 index 000000000000..5836a918eb42 --- /dev/null +++ b/swaggerci/eventgrid/generated/Module.cs @@ -0,0 +1,181 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid +{ + using static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Extensions; + using SendAsyncStepDelegate = global::System.Func, global::System.Threading.Tasks.Task>, global::System.Func, global::System.Threading.Tasks.Task>, global::System.Threading.Tasks.Task>, global::System.Threading.Tasks.Task>; + using PipelineChangeDelegate = global::System.Action, global::System.Threading.Tasks.Task>, global::System.Func, global::System.Threading.Tasks.Task>, global::System.Threading.Tasks.Task>, global::System.Threading.Tasks.Task>>; + using GetParameterDelegate = global::System.Func; + using ModuleLoadPipelineDelegate = global::System.Action, global::System.Threading.Tasks.Task>, global::System.Func, global::System.Threading.Tasks.Task>, global::System.Threading.Tasks.Task>, global::System.Threading.Tasks.Task>>, global::System.Action, global::System.Threading.Tasks.Task>, global::System.Func, global::System.Threading.Tasks.Task>, global::System.Threading.Tasks.Task>, global::System.Threading.Tasks.Task>>>; + using ArgumentCompleterDelegate = global::System.Func; + using GetTelemetryIdDelegate = global::System.Func; + using TelemetryDelegate = global::System.Action; + using NewRequestPipelineDelegate = global::System.Action, global::System.Threading.Tasks.Task>, global::System.Func, global::System.Threading.Tasks.Task>, global::System.Threading.Tasks.Task>, global::System.Threading.Tasks.Task>>, global::System.Action, global::System.Threading.Tasks.Task>, global::System.Func, global::System.Threading.Tasks.Task>, global::System.Threading.Tasks.Task>, global::System.Threading.Tasks.Task>>>; + using SignalDelegate = global::System.Func, global::System.Threading.Tasks.Task>; + using EventListenerDelegate = global::System.Func, global::System.Func, global::System.Threading.Tasks.Task>, global::System.Management.Automation.InvocationInfo, string, string, string, global::System.Exception, global::System.Threading.Tasks.Task>; + using NextDelegate = global::System.Func, global::System.Threading.Tasks.Task>, global::System.Threading.Tasks.Task>; + + /// A class that contains the module-common code and data. + public partial class Module + { + /// The currently selected profile. + public string Profile = global::System.String.Empty; + + public global::System.Net.Http.HttpClientHandler _handler = new global::System.Net.Http.HttpClientHandler(); + + /// the ISendAsync pipeline instance + private Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.HttpPipeline _pipeline; + + /// the ISendAsync pipeline instance (when proxy is enabled) + private Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.HttpPipeline _pipelineWithProxy; + + public bool _useProxy = false; + + public global::System.Net.WebProxy _webProxy = new global::System.Net.WebProxy(); + + /// Gets completion data for azure specific fields + public ArgumentCompleterDelegate ArgumentCompleter { get; set; } + + /// The instance of the Client API + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.EventGridManagementClient ClientAPI { get; set; } + + /// A delegate that gets called for each signalled event + public EventListenerDelegate EventListener { get; set; } + + /// The delegate to call to get parameter data from a common module. + public GetParameterDelegate GetParameterValue { get; set; } + + /// The delegate to get the telemetry Id. + public GetTelemetryIdDelegate GetTelemetryId { get; set; } + + /// Backing field for property. + private static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module _instance; + + /// the singleton of this module class + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module Instance => Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module._instance?? (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module._instance = new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module()); + + /// The Name of this module + public string Name => @"Az.EventGrid"; + + /// 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.EventGrid"; + + /// The delegate for creating a telemetry. + public TelemetryDelegate Telemetry { get; set; } + + /// The from the cmdlet + /// The HttpPipeline for the request + + partial void AfterCreatePipeline(global::System.Management.Automation.InvocationInfo invocationInfo, ref Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Runtime.HttpPipeline pipeline); + + partial void CustomInit(); + + /// Creates an instance of the HttpPipeline for each call. + /// The from the cmdlet + /// the cmdlet's correlation id. + /// the cmdlet's process record correlation id. + /// the cmdlet's parameterset name. + /// a dict for extensible parameters + /// An instance of Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.HttpPipeline for the remote call. + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.HttpPipeline CreatePipeline(global::System.Management.Automation.InvocationInfo invocationInfo, string correlationId, string processRecordId, string parameterSetName = null, global::System.Collections.Generic.IDictionary extensibleParameters = null) + { + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.HttpPipeline pipeline = null; + BeforeCreatePipeline(invocationInfo, ref pipeline); + pipeline = (pipeline ?? (_useProxy ? _pipelineWithProxy : _pipeline)).Clone(); + AfterCreatePipeline(invocationInfo, ref pipeline); + pipeline.Append(new Runtime.CmdInfoHandler(processRecordId, invocationInfo, parameterSetName).SendAsync); + OnNewRequest?.Invoke( invocationInfo, correlationId,processRecordId, (step)=> { pipeline.Prepend(step); } , (step)=> { pipeline.Append(step); } ); + return pipeline; + } + + /// Gets parameters from a common module. + /// The from the cmdlet + /// the cmdlet's correlation id. + /// The name of the parameter to get the value for. + /// + /// The parameter value from the common module. (Note: this should be type converted on the way back) + /// + public object GetParameter(global::System.Management.Automation.InvocationInfo invocationInfo, string correlationId, string parameterName) => GetParameterValue?.Invoke( ResourceId, Name, invocationInfo, correlationId,parameterName ); + + /// Initialization steps performed after the module is loaded. + public void Init() + { + OnModuleLoad?.Invoke( ResourceId, Name ,(step)=> { _pipeline.Prepend(step); } , (step)=> { _pipeline.Append(step); } ); + OnModuleLoad?.Invoke( ResourceId, Name ,(step)=> { _pipelineWithProxy.Prepend(step); } , (step)=> { _pipelineWithProxy.Append(step); } ); + CustomInit(); + } + + /// Creates the module instance. + private Module() + { + /// constructor + ClientAPI = new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.EventGridManagementClient(); + _handler.Proxy = _webProxy; + _pipeline = new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.HttpPipeline(new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.HttpClientFactory(new global::System.Net.Http.HttpClient())); + _pipelineWithProxy = new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.HttpPipeline(new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.HttpClientFactory(new global::System.Net.Http.HttpClient(_handler))); + } + + /// The HTTP Proxy to use. + /// The HTTP Proxy Credentials + /// True if the proxy should use default credentials + public void SetProxyConfiguration(global::System.Uri proxy, global::System.Management.Automation.PSCredential proxyCredential, bool proxyUseDefaultCredentials) + { + _useProxy = proxy != null; + if (proxy == null) + { + return; + } + // set the proxy configuration + _webProxy.Address = proxy; + _webProxy.BypassProxyOnLocal = false; + if (proxyUseDefaultCredentials) + { + _webProxy.Credentials = null; + _webProxy.UseDefaultCredentials = true; + } + else + { + _webProxy.UseDefaultCredentials = false; + _webProxy.Credentials = proxyCredential ?.GetNetworkCredential(); + } + } + + /// Called to dispatch events to the common module listener + /// The ID of the event + /// The cancellation token for the event + /// A delegate to get the detailed event data + /// The callback for the event dispatcher + /// The from the cmdlet + /// the cmdlet's parameterset name. + /// the cmdlet's correlation id. + /// the cmdlet's process record correlation id. + /// the exception that is being thrown (if available) + /// + /// A that will be complete when handling of the event is completed. + /// + public async global::System.Threading.Tasks.Task Signal(string id, global::System.Threading.CancellationToken token, global::System.Func getEventData, SignalDelegate signal, global::System.Management.Automation.InvocationInfo invocationInfo, string parameterSetName, string correlationId, string processRecordId, global::System.Exception exception) + { + using( NoSynchronizationContext ) + { + await EventListener?.Invoke(id,token,getEventData, signal, invocationInfo, parameterSetName, correlationId,processRecordId,exception); + } + } + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/EventGridManagementClient.cs b/swaggerci/eventgrid/generated/api/EventGridManagementClient.cs new file mode 100644 index 000000000000..27cfff4a374d --- /dev/null +++ b/swaggerci/eventgrid/generated/api/EventGridManagementClient.cs @@ -0,0 +1,29644 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid +{ + using static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Extensions; + + /// + /// Low-level API implementation for the EventGridManagementClient service. + /// Azure EventGrid Management Client + /// + public partial class EventGridManagementClient + { + + /// Synchronously creates or updates a new channel with the specified parameters. + /// Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription + /// ID forms part of the URI for every service call. + /// The name of the resource group within the partners subscription. + /// Name of the partner namespace. + /// Name of the channel. + /// Channel information. + /// 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.EventGrid.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task ChannelsCreateOrUpdate(string subscriptionId, string resourceGroupName, string partnerNamespaceName, string channelName, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IChannel body, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func, global::System.Threading.Tasks.Task> onCreated, global::System.Func onDefault, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync sender) + { + var apiVersion = @"2021-10-15-preview"; + // Constant Parameters + using( NoSynchronizationContext ) + { + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + global::System.Uri.EscapeDataString(subscriptionId) + + "/resourceGroups/" + + global::System.Uri.EscapeDataString(resourceGroupName) + + "/providers/Microsoft.EventGrid/partnerNamespaces/" + + global::System.Uri.EscapeDataString(partnerNamespaceName) + + "/channels/" + + global::System.Uri.EscapeDataString(channelName) + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Method.Put, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // set body content + request.Content = new global::System.Net.Http.StringContent(null != body ? body.ToJson(null).ToString() : @"{}", global::System.Text.Encoding.UTF8); + request.Content.Headers.ContentType = global::System.Net.Http.Headers.MediaTypeHeaderValue.Parse("application/json"); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.BodyContentSet); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.ChannelsCreateOrUpdate_Call(request,onOk,onCreated,onDefault,eventListener,sender); + } + } + + /// Synchronously creates or updates a new channel with the specified parameters. + /// + /// Channel information. + /// 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.EventGrid.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task ChannelsCreateOrUpdateViaIdentity(global::System.String viaIdentity, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IChannel body, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func, global::System.Threading.Tasks.Task> onCreated, global::System.Func onDefault, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync sender) + { + var apiVersion = @"2021-10-15-preview"; + // Constant Parameters + using( NoSynchronizationContext ) + { + // verify that Identity format is an exact match for uri + + var _match = new global::System.Text.RegularExpressions.Regex("^/subscriptions/(?[^/]+)/resourceGroups/(?[^/]+)/providers/Microsoft.EventGrid/partnerNamespaces/(?[^/]+)/channels/(?[^/]+)$", global::System.Text.RegularExpressions.RegexOptions.IgnoreCase).Match(viaIdentity); + if (!_match.Success) + { + throw new global::System.Exception("Invalid identity for URI '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.EventGrid/partnerNamespaces/{partnerNamespaceName}/channels/{channelName}'"); + } + + // replace URI parameters with values from identity + var subscriptionId = _match.Groups["subscriptionId"].Value; + var resourceGroupName = _match.Groups["resourceGroupName"].Value; + var partnerNamespaceName = _match.Groups["partnerNamespaceName"].Value; + var channelName = _match.Groups["channelName"].Value; + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + subscriptionId + + "/resourceGroups/" + + resourceGroupName + + "/providers/Microsoft.EventGrid/partnerNamespaces/" + + partnerNamespaceName + + "/channels/" + + channelName + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Method.Put, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // set body content + request.Content = new global::System.Net.Http.StringContent(null != body ? body.ToJson(null).ToString() : @"{}", global::System.Text.Encoding.UTF8); + request.Content.Headers.ContentType = global::System.Net.Http.Headers.MediaTypeHeaderValue.Parse("application/json"); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.BodyContentSet); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.ChannelsCreateOrUpdate_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.EventGrid.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + internal async global::System.Threading.Tasks.Task ChannelsCreateOrUpdate_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 onDefault, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync sender) + { + using( NoSynchronizationContext ) + { + global::System.Net.Http.HttpResponseMessage _response = null; + try + { + var sendTask = sender.SendAsync(request, eventListener); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.BeforeCall, request); if( eventListener.Token.IsCancellationRequested ) { return; } + _response = await sendTask; + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.ResponseCreated, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + var _contentType = _response.Content.Headers.ContentType?.MediaType; + + switch ( _response.StatusCode ) + { + case global::System.Net.HttpStatusCode.OK: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onOk(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.Channel.FromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + case global::System.Net.HttpStatusCode.Created: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onCreated(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.Channel.FromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + default: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onDefault(_response); + break; + } + } + } + finally + { + // finally statements + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Finally, request, _response); + _response?.Dispose(); + request?.Dispose(); + } + } + } + + /// + /// Validation method for method. Call this like the actual call, but you will get validation + /// events back. + /// + /// Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription + /// ID forms part of the URI for every service call. + /// The name of the resource group within the partners subscription. + /// Name of the partner namespace. + /// Name of the channel. + /// Channel information. + /// an instance that will receive events. + /// + /// A that will be complete when handling of the response is completed. + /// + internal async global::System.Threading.Tasks.Task ChannelsCreateOrUpdate_Validate(string subscriptionId, string resourceGroupName, string partnerNamespaceName, string channelName, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IChannel body, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener eventListener) + { + using( NoSynchronizationContext ) + { + await eventListener.AssertNotNull(nameof(subscriptionId),subscriptionId); + await eventListener.AssertNotNull(nameof(resourceGroupName),resourceGroupName); + await eventListener.AssertNotNull(nameof(partnerNamespaceName),partnerNamespaceName); + await eventListener.AssertNotNull(nameof(channelName),channelName); + await eventListener.AssertNotNull(nameof(body), body); + await eventListener.AssertObjectIsValid(nameof(body), body); + } + } + + /// Delete an existing channel. + /// Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription + /// ID forms part of the URI for every service call. + /// The name of the resource group within the partners subscription. + /// Name of the partner namespace. + /// Name of the channel. + /// 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.EventGrid.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task ChannelsDelete(string subscriptionId, string resourceGroupName, string partnerNamespaceName, string channelName, global::System.Func onOk, global::System.Func onNoContent, global::System.Func onDefault, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync sender) + { + var apiVersion = @"2021-10-15-preview"; + // Constant Parameters + using( NoSynchronizationContext ) + { + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + global::System.Uri.EscapeDataString(subscriptionId) + + "/resourceGroups/" + + global::System.Uri.EscapeDataString(resourceGroupName) + + "/providers/Microsoft.EventGrid/partnerNamespaces/" + + global::System.Uri.EscapeDataString(partnerNamespaceName) + + "/channels/" + + global::System.Uri.EscapeDataString(channelName) + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Method.Delete, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.ChannelsDelete_Call(request,onOk,onNoContent,onDefault,eventListener,sender); + } + } + + /// Delete an existing channel. + /// + /// 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.EventGrid.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task ChannelsDeleteViaIdentity(global::System.String viaIdentity, global::System.Func onOk, global::System.Func onNoContent, global::System.Func onDefault, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync sender) + { + var apiVersion = @"2021-10-15-preview"; + // Constant Parameters + using( NoSynchronizationContext ) + { + // verify that Identity format is an exact match for uri + + var _match = new global::System.Text.RegularExpressions.Regex("^/subscriptions/(?[^/]+)/resourceGroups/(?[^/]+)/providers/Microsoft.EventGrid/partnerNamespaces/(?[^/]+)/channels/(?[^/]+)$", global::System.Text.RegularExpressions.RegexOptions.IgnoreCase).Match(viaIdentity); + if (!_match.Success) + { + throw new global::System.Exception("Invalid identity for URI '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.EventGrid/partnerNamespaces/{partnerNamespaceName}/channels/{channelName}'"); + } + + // replace URI parameters with values from identity + var subscriptionId = _match.Groups["subscriptionId"].Value; + var resourceGroupName = _match.Groups["resourceGroupName"].Value; + var partnerNamespaceName = _match.Groups["partnerNamespaceName"].Value; + var channelName = _match.Groups["channelName"].Value; + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + subscriptionId + + "/resourceGroups/" + + resourceGroupName + + "/providers/Microsoft.EventGrid/partnerNamespaces/" + + partnerNamespaceName + + "/channels/" + + channelName + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Method.Delete, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.ChannelsDelete_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.EventGrid.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + internal async global::System.Threading.Tasks.Task ChannelsDelete_Call(global::System.Net.Http.HttpRequestMessage request, global::System.Func onOk, global::System.Func onNoContent, global::System.Func onDefault, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync sender) + { + using( NoSynchronizationContext ) + { + global::System.Net.Http.HttpResponseMessage _response = null; + try + { + var sendTask = sender.SendAsync(request, eventListener); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.BeforeCall, request); if( eventListener.Token.IsCancellationRequested ) { return; } + _response = await sendTask; + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.ResponseCreated, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + // this operation supports x-ms-long-running-operation + var _originalUri = request.RequestUri.AbsoluteUri; + // declared final-state-via: default + var _finalUri = _response.GetFirstHeader(@"Location"); + var asyncOperation = _response.GetFirstHeader(@"Azure-AsyncOperation"); + var location = _response.GetFirstHeader(@"Location"); + while (request.Method == System.Net.Http.HttpMethod.Put && _response.StatusCode == global::System.Net.HttpStatusCode.OK || _response.StatusCode == global::System.Net.HttpStatusCode.Created || _response.StatusCode == global::System.Net.HttpStatusCode.Accepted ) + { + + // get the delay before polling. (default to 30 seconds if not present) + int delay = (int)(_response.Headers.RetryAfter?.Delta?.TotalSeconds ?? 30); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.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.EventGrid.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.EventGrid.Runtime.Json.JsonNode.Parse(await _response.Content.ReadAsStringAsync()) is Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Runtime.UndeclaredResponseException(_response); + } + } + + // check for terminal status code + if (_response.StatusCode == global::System.Net.HttpStatusCode.Created || _response.StatusCode == global::System.Net.HttpStatusCode.Accepted ) + { + continue; + } + // we are done polling, do a request on final target? + if (!string.IsNullOrWhiteSpace(_finalUri)) + { + // create a new request with the final uri + request = request.CloneAndDispose(new global::System.Uri(_finalUri), Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.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.EventGrid.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onNoContent(_response); + break; + } + default: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onDefault(_response); + break; + } + } + } + finally + { + // finally statements + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Finally, request, _response); + _response?.Dispose(); + request?.Dispose(); + } + } + } + + /// + /// Validation method for method. Call this like the actual call, but you will get validation + /// events back. + /// + /// Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription + /// ID forms part of the URI for every service call. + /// The name of the resource group within the partners subscription. + /// Name of the partner namespace. + /// Name of the channel. + /// an instance that will receive events. + /// + /// A that will be complete when handling of the response is completed. + /// + internal async global::System.Threading.Tasks.Task ChannelsDelete_Validate(string subscriptionId, string resourceGroupName, string partnerNamespaceName, string channelName, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener eventListener) + { + using( NoSynchronizationContext ) + { + await eventListener.AssertNotNull(nameof(subscriptionId),subscriptionId); + await eventListener.AssertNotNull(nameof(resourceGroupName),resourceGroupName); + await eventListener.AssertNotNull(nameof(partnerNamespaceName),partnerNamespaceName); + await eventListener.AssertNotNull(nameof(channelName),channelName); + } + } + + /// Get properties of a channel. + /// Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription + /// ID forms part of the URI for every service call. + /// The name of the resource group within the partners subscription. + /// Name of the partner namespace. + /// Name of the channel. + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task ChannelsGet(string subscriptionId, string resourceGroupName, string partnerNamespaceName, string channelName, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func onDefault, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync sender) + { + var apiVersion = @"2021-10-15-preview"; + // Constant Parameters + using( NoSynchronizationContext ) + { + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + global::System.Uri.EscapeDataString(subscriptionId) + + "/resourceGroups/" + + global::System.Uri.EscapeDataString(resourceGroupName) + + "/providers/Microsoft.EventGrid/partnerNamespaces/" + + global::System.Uri.EscapeDataString(partnerNamespaceName) + + "/channels/" + + global::System.Uri.EscapeDataString(channelName) + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Method.Get, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.ChannelsGet_Call(request,onOk,onDefault,eventListener,sender); + } + } + + /// Get the full endpoint URL of a partner destination channel. + /// Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription + /// ID forms part of the URI for every service call. + /// The name of the resource group within the partners subscription. + /// Name of the partner namespace. + /// Name of the Channel. + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task ChannelsGetFullUrl(string subscriptionId, string resourceGroupName, string partnerNamespaceName, string channelName, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func onDefault, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync sender) + { + var apiVersion = @"2021-10-15-preview"; + // Constant Parameters + using( NoSynchronizationContext ) + { + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + global::System.Uri.EscapeDataString(subscriptionId) + + "/resourceGroups/" + + global::System.Uri.EscapeDataString(resourceGroupName) + + "/providers/Microsoft.EventGrid/partnerNamespaces/" + + global::System.Uri.EscapeDataString(partnerNamespaceName) + + "/channels/" + + global::System.Uri.EscapeDataString(channelName) + + "/getFullUrl" + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Method.Post, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.ChannelsGetFullUrl_Call(request,onOk,onDefault,eventListener,sender); + } + } + + /// Get the full endpoint URL of a partner destination channel. + /// + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task ChannelsGetFullUrlViaIdentity(global::System.String viaIdentity, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func onDefault, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync sender) + { + var apiVersion = @"2021-10-15-preview"; + // Constant Parameters + using( NoSynchronizationContext ) + { + // verify that Identity format is an exact match for uri + + var _match = new global::System.Text.RegularExpressions.Regex("^/subscriptions/(?[^/]+)/resourceGroups/(?[^/]+)/providers/Microsoft.EventGrid/partnerNamespaces/(?[^/]+)/channels/(?[^/]+)/getFullUrl$", global::System.Text.RegularExpressions.RegexOptions.IgnoreCase).Match(viaIdentity); + if (!_match.Success) + { + throw new global::System.Exception("Invalid identity for URI '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.EventGrid/partnerNamespaces/{partnerNamespaceName}/channels/{channelName}/getFullUrl'"); + } + + // replace URI parameters with values from identity + var subscriptionId = _match.Groups["subscriptionId"].Value; + var resourceGroupName = _match.Groups["resourceGroupName"].Value; + var partnerNamespaceName = _match.Groups["partnerNamespaceName"].Value; + var channelName = _match.Groups["channelName"].Value; + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + subscriptionId + + "/resourceGroups/" + + resourceGroupName + + "/providers/Microsoft.EventGrid/partnerNamespaces/" + + partnerNamespaceName + + "/channels/" + + channelName + + "/getFullUrl" + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Method.Post, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.ChannelsGetFullUrl_Call(request,onOk,onDefault,eventListener,sender); + } + } + + /// Actual wire call for method. + /// the prepared HttpRequestMessage to send. + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + internal async global::System.Threading.Tasks.Task ChannelsGetFullUrl_Call(global::System.Net.Http.HttpRequestMessage request, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func onDefault, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync sender) + { + using( NoSynchronizationContext ) + { + global::System.Net.Http.HttpResponseMessage _response = null; + try + { + var sendTask = sender.SendAsync(request, eventListener); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.BeforeCall, request); if( eventListener.Token.IsCancellationRequested ) { return; } + _response = await sendTask; + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.ResponseCreated, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + var _contentType = _response.Content.Headers.ContentType?.MediaType; + + switch ( _response.StatusCode ) + { + case global::System.Net.HttpStatusCode.OK: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onOk(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.EventSubscriptionFullUrl.FromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + default: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onDefault(_response); + break; + } + } + } + finally + { + // finally statements + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Finally, request, _response); + _response?.Dispose(); + request?.Dispose(); + } + } + } + + /// + /// Validation method for method. Call this like the actual call, but you will get validation + /// events back. + /// + /// Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription + /// ID forms part of the URI for every service call. + /// The name of the resource group within the partners subscription. + /// Name of the partner namespace. + /// Name of the Channel. + /// an instance that will receive events. + /// + /// A that will be complete when handling of the response is completed. + /// + internal async global::System.Threading.Tasks.Task ChannelsGetFullUrl_Validate(string subscriptionId, string resourceGroupName, string partnerNamespaceName, string channelName, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener eventListener) + { + using( NoSynchronizationContext ) + { + await eventListener.AssertNotNull(nameof(subscriptionId),subscriptionId); + await eventListener.AssertNotNull(nameof(resourceGroupName),resourceGroupName); + await eventListener.AssertNotNull(nameof(partnerNamespaceName),partnerNamespaceName); + await eventListener.AssertNotNull(nameof(channelName),channelName); + } + } + + /// Get properties of a channel. + /// + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task ChannelsGetViaIdentity(global::System.String viaIdentity, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func onDefault, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync sender) + { + var apiVersion = @"2021-10-15-preview"; + // Constant Parameters + using( NoSynchronizationContext ) + { + // verify that Identity format is an exact match for uri + + var _match = new global::System.Text.RegularExpressions.Regex("^/subscriptions/(?[^/]+)/resourceGroups/(?[^/]+)/providers/Microsoft.EventGrid/partnerNamespaces/(?[^/]+)/channels/(?[^/]+)$", global::System.Text.RegularExpressions.RegexOptions.IgnoreCase).Match(viaIdentity); + if (!_match.Success) + { + throw new global::System.Exception("Invalid identity for URI '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.EventGrid/partnerNamespaces/{partnerNamespaceName}/channels/{channelName}'"); + } + + // replace URI parameters with values from identity + var subscriptionId = _match.Groups["subscriptionId"].Value; + var resourceGroupName = _match.Groups["resourceGroupName"].Value; + var partnerNamespaceName = _match.Groups["partnerNamespaceName"].Value; + var channelName = _match.Groups["channelName"].Value; + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + subscriptionId + + "/resourceGroups/" + + resourceGroupName + + "/providers/Microsoft.EventGrid/partnerNamespaces/" + + partnerNamespaceName + + "/channels/" + + channelName + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Method.Get, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.ChannelsGet_Call(request,onOk,onDefault,eventListener,sender); + } + } + + /// Actual wire call for method. + /// the prepared HttpRequestMessage to send. + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + internal async global::System.Threading.Tasks.Task ChannelsGet_Call(global::System.Net.Http.HttpRequestMessage request, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func onDefault, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync sender) + { + using( NoSynchronizationContext ) + { + global::System.Net.Http.HttpResponseMessage _response = null; + try + { + var sendTask = sender.SendAsync(request, eventListener); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.BeforeCall, request); if( eventListener.Token.IsCancellationRequested ) { return; } + _response = await sendTask; + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.ResponseCreated, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + var _contentType = _response.Content.Headers.ContentType?.MediaType; + + switch ( _response.StatusCode ) + { + case global::System.Net.HttpStatusCode.OK: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onOk(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.Channel.FromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + default: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onDefault(_response); + break; + } + } + } + finally + { + // finally statements + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Finally, request, _response); + _response?.Dispose(); + request?.Dispose(); + } + } + } + + /// + /// Validation method for method. Call this like the actual call, but you will get validation events + /// back. + /// + /// Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription + /// ID forms part of the URI for every service call. + /// The name of the resource group within the partners subscription. + /// Name of the partner namespace. + /// Name of the channel. + /// an instance that will receive events. + /// + /// A that will be complete when handling of the response is completed. + /// + internal async global::System.Threading.Tasks.Task ChannelsGet_Validate(string subscriptionId, string resourceGroupName, string partnerNamespaceName, string channelName, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener eventListener) + { + using( NoSynchronizationContext ) + { + await eventListener.AssertNotNull(nameof(subscriptionId),subscriptionId); + await eventListener.AssertNotNull(nameof(resourceGroupName),resourceGroupName); + await eventListener.AssertNotNull(nameof(partnerNamespaceName),partnerNamespaceName); + await eventListener.AssertNotNull(nameof(channelName),channelName); + } + } + + /// List all the channels in a partner namespace. + /// Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription + /// ID forms part of the URI for every service call. + /// The name of the resource group within the partners subscription. + /// Name of the partner namespace. + /// The query used to filter the search results using OData syntax. Filtering is permitted on the 'name' + /// property only and with limited number of OData operations. These operations are: the 'contains' function as well as the + /// following logical operations: not, and, or, eq (for equal), and ne (for not equal). No arithmetic operations are supported. + /// The following is a valid filter example: $filter=contains(namE, 'PATTERN') and name ne 'PATTERN-1'. The following is not + /// a valid filter example: $filter=location eq 'westus'. + /// The number of results to return per page for the list operation. Valid range for top parameter is 1 + /// to 100. If not specified, the default number of results to be returned is 20 items per page. + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task ChannelsListByPartnerNamespace(string subscriptionId, string resourceGroupName, string partnerNamespaceName, string Filter, int? Top, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func onDefault, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync sender) + { + var apiVersion = @"2021-10-15-preview"; + // Constant Parameters + using( NoSynchronizationContext ) + { + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + global::System.Uri.EscapeDataString(subscriptionId) + + "/resourceGroups/" + + global::System.Uri.EscapeDataString(resourceGroupName) + + "/providers/Microsoft.EventGrid/partnerNamespaces/" + + global::System.Uri.EscapeDataString(partnerNamespaceName) + + "/channels" + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + + "&" + + (string.IsNullOrEmpty(Filter) ? global::System.String.Empty : "$filter=" + global::System.Uri.EscapeDataString(Filter)) + + "&" + + (null == Top ? global::System.String.Empty : "$top=" + global::System.Uri.EscapeDataString(Top.ToString())) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Method.Get, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.ChannelsListByPartnerNamespace_Call(request,onOk,onDefault,eventListener,sender); + } + } + + /// List all the channels in a partner namespace. + /// + /// The query used to filter the search results using OData syntax. Filtering is permitted on the 'name' + /// property only and with limited number of OData operations. These operations are: the 'contains' function as well as the + /// following logical operations: not, and, or, eq (for equal), and ne (for not equal). No arithmetic operations are supported. + /// The following is a valid filter example: $filter=contains(namE, 'PATTERN') and name ne 'PATTERN-1'. The following is not + /// a valid filter example: $filter=location eq 'westus'. + /// The number of results to return per page for the list operation. Valid range for top parameter is 1 + /// to 100. If not specified, the default number of results to be returned is 20 items per page. + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task ChannelsListByPartnerNamespaceViaIdentity(global::System.String viaIdentity, string Filter, int? Top, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func onDefault, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync sender) + { + var apiVersion = @"2021-10-15-preview"; + // Constant Parameters + using( NoSynchronizationContext ) + { + // verify that Identity format is an exact match for uri + + var _match = new global::System.Text.RegularExpressions.Regex("^/subscriptions/(?[^/]+)/resourceGroups/(?[^/]+)/providers/Microsoft.EventGrid/partnerNamespaces/(?[^/]+)/channels$", global::System.Text.RegularExpressions.RegexOptions.IgnoreCase).Match(viaIdentity); + if (!_match.Success) + { + throw new global::System.Exception("Invalid identity for URI '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.EventGrid/partnerNamespaces/{partnerNamespaceName}/channels'"); + } + + // replace URI parameters with values from identity + var subscriptionId = _match.Groups["subscriptionId"].Value; + var resourceGroupName = _match.Groups["resourceGroupName"].Value; + var partnerNamespaceName = _match.Groups["partnerNamespaceName"].Value; + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + subscriptionId + + "/resourceGroups/" + + resourceGroupName + + "/providers/Microsoft.EventGrid/partnerNamespaces/" + + partnerNamespaceName + + "/channels" + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + + "&" + + (string.IsNullOrEmpty(Filter) ? global::System.String.Empty : "$filter=" + global::System.Uri.EscapeDataString(Filter)) + + "&" + + (null == Top ? global::System.String.Empty : "$top=" + global::System.Uri.EscapeDataString(Top.ToString())) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Method.Get, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.ChannelsListByPartnerNamespace_Call(request,onOk,onDefault,eventListener,sender); + } + } + + /// Actual wire call for method. + /// the prepared HttpRequestMessage to send. + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + internal async global::System.Threading.Tasks.Task ChannelsListByPartnerNamespace_Call(global::System.Net.Http.HttpRequestMessage request, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func onDefault, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync sender) + { + using( NoSynchronizationContext ) + { + global::System.Net.Http.HttpResponseMessage _response = null; + try + { + var sendTask = sender.SendAsync(request, eventListener); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.BeforeCall, request); if( eventListener.Token.IsCancellationRequested ) { return; } + _response = await sendTask; + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.ResponseCreated, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + var _contentType = _response.Content.Headers.ContentType?.MediaType; + + switch ( _response.StatusCode ) + { + case global::System.Net.HttpStatusCode.OK: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onOk(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ChannelsListResult.FromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + default: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onDefault(_response); + break; + } + } + } + finally + { + // finally statements + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Finally, request, _response); + _response?.Dispose(); + request?.Dispose(); + } + } + } + + /// + /// Validation method for method. Call this like the actual call, but you will + /// get validation events back. + /// + /// Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription + /// ID forms part of the URI for every service call. + /// The name of the resource group within the partners subscription. + /// Name of the partner namespace. + /// The query used to filter the search results using OData syntax. Filtering is permitted on the 'name' + /// property only and with limited number of OData operations. These operations are: the 'contains' function as well as the + /// following logical operations: not, and, or, eq (for equal), and ne (for not equal). No arithmetic operations are supported. + /// The following is a valid filter example: $filter=contains(namE, 'PATTERN') and name ne 'PATTERN-1'. The following is not + /// a valid filter example: $filter=location eq 'westus'. + /// The number of results to return per page for the list operation. Valid range for top parameter is 1 + /// to 100. If not specified, the default number of results to be returned is 20 items per page. + /// an instance that will receive events. + /// + /// A that will be complete when handling of the response is completed. + /// + internal async global::System.Threading.Tasks.Task ChannelsListByPartnerNamespace_Validate(string subscriptionId, string resourceGroupName, string partnerNamespaceName, string Filter, int? Top, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener eventListener) + { + using( NoSynchronizationContext ) + { + await eventListener.AssertNotNull(nameof(subscriptionId),subscriptionId); + await eventListener.AssertNotNull(nameof(resourceGroupName),resourceGroupName); + await eventListener.AssertNotNull(nameof(partnerNamespaceName),partnerNamespaceName); + await eventListener.AssertNotNull(nameof(Filter),Filter); + } + } + + /// Synchronously updates a channel with the specified parameters. + /// Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription + /// ID forms part of the URI for every service call. + /// The name of the resource group within the partners subscription. + /// Name of the partner namespace. + /// Name of the channel. + /// Channel update information. + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task ChannelsUpdate(string subscriptionId, string resourceGroupName, string partnerNamespaceName, string channelName, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IChannelUpdateParameters body, global::System.Func onOk, global::System.Func onDefault, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync sender) + { + var apiVersion = @"2021-10-15-preview"; + // Constant Parameters + using( NoSynchronizationContext ) + { + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + global::System.Uri.EscapeDataString(subscriptionId) + + "/resourceGroups/" + + global::System.Uri.EscapeDataString(resourceGroupName) + + "/providers/Microsoft.EventGrid/partnerNamespaces/" + + global::System.Uri.EscapeDataString(partnerNamespaceName) + + "/channels/" + + global::System.Uri.EscapeDataString(channelName) + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Method.Patch, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // set body content + request.Content = new global::System.Net.Http.StringContent(null != body ? body.ToJson(null).ToString() : @"{}", global::System.Text.Encoding.UTF8); + request.Content.Headers.ContentType = global::System.Net.Http.Headers.MediaTypeHeaderValue.Parse("application/json"); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.BodyContentSet); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.ChannelsUpdate_Call(request,onOk,onDefault,eventListener,sender); + } + } + + /// Synchronously updates a channel with the specified parameters. + /// + /// Channel update information. + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task ChannelsUpdateViaIdentity(global::System.String viaIdentity, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IChannelUpdateParameters body, global::System.Func onOk, global::System.Func onDefault, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync sender) + { + var apiVersion = @"2021-10-15-preview"; + // Constant Parameters + using( NoSynchronizationContext ) + { + // verify that Identity format is an exact match for uri + + var _match = new global::System.Text.RegularExpressions.Regex("^/subscriptions/(?[^/]+)/resourceGroups/(?[^/]+)/providers/Microsoft.EventGrid/partnerNamespaces/(?[^/]+)/channels/(?[^/]+)$", global::System.Text.RegularExpressions.RegexOptions.IgnoreCase).Match(viaIdentity); + if (!_match.Success) + { + throw new global::System.Exception("Invalid identity for URI '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.EventGrid/partnerNamespaces/{partnerNamespaceName}/channels/{channelName}'"); + } + + // replace URI parameters with values from identity + var subscriptionId = _match.Groups["subscriptionId"].Value; + var resourceGroupName = _match.Groups["resourceGroupName"].Value; + var partnerNamespaceName = _match.Groups["partnerNamespaceName"].Value; + var channelName = _match.Groups["channelName"].Value; + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + subscriptionId + + "/resourceGroups/" + + resourceGroupName + + "/providers/Microsoft.EventGrid/partnerNamespaces/" + + partnerNamespaceName + + "/channels/" + + channelName + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Method.Patch, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // set body content + request.Content = new global::System.Net.Http.StringContent(null != body ? body.ToJson(null).ToString() : @"{}", global::System.Text.Encoding.UTF8); + request.Content.Headers.ContentType = global::System.Net.Http.Headers.MediaTypeHeaderValue.Parse("application/json"); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.BodyContentSet); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.ChannelsUpdate_Call(request,onOk,onDefault,eventListener,sender); + } + } + + /// Actual wire call for method. + /// the prepared HttpRequestMessage to send. + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + internal async global::System.Threading.Tasks.Task ChannelsUpdate_Call(global::System.Net.Http.HttpRequestMessage request, global::System.Func onOk, global::System.Func onDefault, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync sender) + { + using( NoSynchronizationContext ) + { + global::System.Net.Http.HttpResponseMessage _response = null; + try + { + var sendTask = sender.SendAsync(request, eventListener); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.BeforeCall, request); if( eventListener.Token.IsCancellationRequested ) { return; } + _response = await sendTask; + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.ResponseCreated, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + var _contentType = _response.Content.Headers.ContentType?.MediaType; + + switch ( _response.StatusCode ) + { + case global::System.Net.HttpStatusCode.OK: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onOk(_response); + break; + } + default: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onDefault(_response); + break; + } + } + } + finally + { + // finally statements + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Finally, request, _response); + _response?.Dispose(); + request?.Dispose(); + } + } + } + + /// + /// Validation method for method. Call this like the actual call, but you will get validation + /// events back. + /// + /// Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription + /// ID forms part of the URI for every service call. + /// The name of the resource group within the partners subscription. + /// Name of the partner namespace. + /// Name of the channel. + /// Channel update information. + /// an instance that will receive events. + /// + /// A that will be complete when handling of the response is completed. + /// + internal async global::System.Threading.Tasks.Task ChannelsUpdate_Validate(string subscriptionId, string resourceGroupName, string partnerNamespaceName, string channelName, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IChannelUpdateParameters body, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener eventListener) + { + using( NoSynchronizationContext ) + { + await eventListener.AssertNotNull(nameof(subscriptionId),subscriptionId); + await eventListener.AssertNotNull(nameof(resourceGroupName),resourceGroupName); + await eventListener.AssertNotNull(nameof(partnerNamespaceName),partnerNamespaceName); + await eventListener.AssertNotNull(nameof(channelName),channelName); + await eventListener.AssertNotNull(nameof(body), body); + await eventListener.AssertObjectIsValid(nameof(body), body); + } + } + + /// + /// Asynchronously creates a new event subscription or updates an existing event subscription. + /// + /// Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription + /// ID forms part of the URI for every service call. + /// The name of the resource group within the user's subscription. + /// Name of the domain topic. + /// Name of the event subscription to be created. Event subscription names must be between + /// 3 and 100 characters in length and use alphanumeric letters only. + /// Event subscription properties containing the destination and filter information. + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task DomainEventSubscriptionsCreateOrUpdate(string subscriptionId, string resourceGroupName, string domainName, string eventSubscriptionName, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscription body, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func onDefault, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync sender) + { + var apiVersion = @"2021-10-15-preview"; + // Constant Parameters + using( NoSynchronizationContext ) + { + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + global::System.Uri.EscapeDataString(subscriptionId) + + "/resourceGroups/" + + global::System.Uri.EscapeDataString(resourceGroupName) + + "/providers/Microsoft.EventGrid/domains/" + + global::System.Uri.EscapeDataString(domainName) + + "/eventSubscriptions/" + + global::System.Uri.EscapeDataString(eventSubscriptionName) + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Method.Put, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // set body content + request.Content = new global::System.Net.Http.StringContent(null != body ? body.ToJson(null).ToString() : @"{}", global::System.Text.Encoding.UTF8); + request.Content.Headers.ContentType = global::System.Net.Http.Headers.MediaTypeHeaderValue.Parse("application/json"); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.BodyContentSet); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.DomainEventSubscriptionsCreateOrUpdate_Call(request,onOk,onDefault,eventListener,sender); + } + } + + /// + /// Asynchronously creates a new event subscription or updates an existing event subscription. + /// + /// + /// Event subscription properties containing the destination and filter information. + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task DomainEventSubscriptionsCreateOrUpdateViaIdentity(global::System.String viaIdentity, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscription body, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func onDefault, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync sender) + { + var apiVersion = @"2021-10-15-preview"; + // Constant Parameters + using( NoSynchronizationContext ) + { + // verify that Identity format is an exact match for uri + + var _match = new global::System.Text.RegularExpressions.Regex("^/subscriptions/(?[^/]+)/resourceGroups/(?[^/]+)/providers/Microsoft.EventGrid/domains/(?[^/]+)/eventSubscriptions/(?[^/]+)$", global::System.Text.RegularExpressions.RegexOptions.IgnoreCase).Match(viaIdentity); + if (!_match.Success) + { + throw new global::System.Exception("Invalid identity for URI '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.EventGrid/domains/{domainName}/eventSubscriptions/{eventSubscriptionName}'"); + } + + // replace URI parameters with values from identity + var subscriptionId = _match.Groups["subscriptionId"].Value; + var resourceGroupName = _match.Groups["resourceGroupName"].Value; + var domainName = _match.Groups["domainName"].Value; + var eventSubscriptionName = _match.Groups["eventSubscriptionName"].Value; + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + subscriptionId + + "/resourceGroups/" + + resourceGroupName + + "/providers/Microsoft.EventGrid/domains/" + + domainName + + "/eventSubscriptions/" + + eventSubscriptionName + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Method.Put, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // set body content + request.Content = new global::System.Net.Http.StringContent(null != body ? body.ToJson(null).ToString() : @"{}", global::System.Text.Encoding.UTF8); + request.Content.Headers.ContentType = global::System.Net.Http.Headers.MediaTypeHeaderValue.Parse("application/json"); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.BodyContentSet); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.DomainEventSubscriptionsCreateOrUpdate_Call(request,onOk,onDefault,eventListener,sender); + } + } + + /// + /// Actual wire call for method. + /// + /// the prepared HttpRequestMessage to send. + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + internal async global::System.Threading.Tasks.Task DomainEventSubscriptionsCreateOrUpdate_Call(global::System.Net.Http.HttpRequestMessage request, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func onDefault, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync sender) + { + using( NoSynchronizationContext ) + { + global::System.Net.Http.HttpResponseMessage _response = null; + try + { + var sendTask = sender.SendAsync(request, eventListener); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.BeforeCall, request); if( eventListener.Token.IsCancellationRequested ) { return; } + _response = await sendTask; + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.ResponseCreated, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + // this operation supports x-ms-long-running-operation + var _originalUri = request.RequestUri.AbsoluteUri; + // declared final-state-via: default + var asyncOperation = _response.GetFirstHeader(@"Azure-AsyncOperation"); + var location = _response.GetFirstHeader(@"Location"); + while (request.Method == System.Net.Http.HttpMethod.Put && _response.StatusCode == global::System.Net.HttpStatusCode.OK || _response.StatusCode == global::System.Net.HttpStatusCode.Created || _response.StatusCode == global::System.Net.HttpStatusCode.Accepted ) + { + + // get the delay before polling. (default to 30 seconds if not present) + int delay = (int)(_response.Headers.RetryAfter?.Delta?.TotalSeconds ?? 30); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.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.EventGrid.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.EventGrid.Runtime.Json.JsonNode.Parse(await _response.Content.ReadAsStringAsync()) is Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Runtime.UndeclaredResponseException(_response); + } + } + + // check for terminal status code + if (_response.StatusCode == global::System.Net.HttpStatusCode.Created || _response.StatusCode == global::System.Net.HttpStatusCode.Accepted ) + { + continue; + } + // we are done polling, do a request on final target? + if (!string.IsNullOrWhiteSpace(_originalUri)) + { + // create a new request with the final uri + request = request.CloneAndDispose(new global::System.Uri(_originalUri), Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onOk(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.EventSubscription.FromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + default: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onDefault(_response); + break; + } + } + } + finally + { + // finally statements + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Finally, request, _response); + _response?.Dispose(); + request?.Dispose(); + } + } + } + + /// + /// Validation method for method. Call this like the actual call, but + /// you will get validation events back. + /// + /// Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription + /// ID forms part of the URI for every service call. + /// The name of the resource group within the user's subscription. + /// Name of the domain topic. + /// Name of the event subscription to be created. Event subscription names must be between + /// 3 and 100 characters in length and use alphanumeric letters only. + /// Event subscription properties containing the destination and filter information. + /// an instance that will receive events. + /// + /// A that will be complete when handling of the response is completed. + /// + internal async global::System.Threading.Tasks.Task DomainEventSubscriptionsCreateOrUpdate_Validate(string subscriptionId, string resourceGroupName, string domainName, string eventSubscriptionName, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscription body, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener eventListener) + { + using( NoSynchronizationContext ) + { + await eventListener.AssertNotNull(nameof(subscriptionId),subscriptionId); + await eventListener.AssertNotNull(nameof(resourceGroupName),resourceGroupName); + await eventListener.AssertNotNull(nameof(domainName),domainName); + await eventListener.AssertNotNull(nameof(eventSubscriptionName),eventSubscriptionName); + await eventListener.AssertNotNull(nameof(body), body); + await eventListener.AssertObjectIsValid(nameof(body), body); + } + } + + /// Delete an existing event subscription for a domain. + /// Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription + /// ID forms part of the URI for every service call. + /// The name of the resource group within the user's subscription. + /// Name of the domain. + /// Name of the event subscription to be deleted. Event subscription names must be between + /// 3 and 100 characters in length and use alphanumeric letters only. + /// 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.EventGrid.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task DomainEventSubscriptionsDelete(string subscriptionId, string resourceGroupName, string domainName, string eventSubscriptionName, global::System.Func onOk, global::System.Func onNoContent, global::System.Func onDefault, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync sender) + { + var apiVersion = @"2021-10-15-preview"; + // Constant Parameters + using( NoSynchronizationContext ) + { + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + global::System.Uri.EscapeDataString(subscriptionId) + + "/resourceGroups/" + + global::System.Uri.EscapeDataString(resourceGroupName) + + "/providers/Microsoft.EventGrid/domains/" + + global::System.Uri.EscapeDataString(domainName) + + "/eventSubscriptions/" + + global::System.Uri.EscapeDataString(eventSubscriptionName) + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Method.Delete, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.DomainEventSubscriptionsDelete_Call(request,onOk,onNoContent,onDefault,eventListener,sender); + } + } + + /// Delete an existing event subscription for a domain. + /// + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns 204 (NoContent). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task DomainEventSubscriptionsDeleteViaIdentity(global::System.String viaIdentity, global::System.Func onOk, global::System.Func onNoContent, global::System.Func onDefault, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync sender) + { + var apiVersion = @"2021-10-15-preview"; + // Constant Parameters + using( NoSynchronizationContext ) + { + // verify that Identity format is an exact match for uri + + var _match = new global::System.Text.RegularExpressions.Regex("^/subscriptions/(?[^/]+)/resourceGroups/(?[^/]+)/providers/Microsoft.EventGrid/domains/(?[^/]+)/eventSubscriptions/(?[^/]+)$", global::System.Text.RegularExpressions.RegexOptions.IgnoreCase).Match(viaIdentity); + if (!_match.Success) + { + throw new global::System.Exception("Invalid identity for URI '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.EventGrid/domains/{domainName}/eventSubscriptions/{eventSubscriptionName}'"); + } + + // replace URI parameters with values from identity + var subscriptionId = _match.Groups["subscriptionId"].Value; + var resourceGroupName = _match.Groups["resourceGroupName"].Value; + var domainName = _match.Groups["domainName"].Value; + var eventSubscriptionName = _match.Groups["eventSubscriptionName"].Value; + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + subscriptionId + + "/resourceGroups/" + + resourceGroupName + + "/providers/Microsoft.EventGrid/domains/" + + domainName + + "/eventSubscriptions/" + + eventSubscriptionName + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Method.Delete, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.DomainEventSubscriptionsDelete_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.EventGrid.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + internal async global::System.Threading.Tasks.Task DomainEventSubscriptionsDelete_Call(global::System.Net.Http.HttpRequestMessage request, global::System.Func onOk, global::System.Func onNoContent, global::System.Func onDefault, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync sender) + { + using( NoSynchronizationContext ) + { + global::System.Net.Http.HttpResponseMessage _response = null; + try + { + var sendTask = sender.SendAsync(request, eventListener); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.BeforeCall, request); if( eventListener.Token.IsCancellationRequested ) { return; } + _response = await sendTask; + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.ResponseCreated, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + // this operation supports x-ms-long-running-operation + var _originalUri = request.RequestUri.AbsoluteUri; + // declared final-state-via: default + var _finalUri = _response.GetFirstHeader(@"Location"); + var asyncOperation = _response.GetFirstHeader(@"Azure-AsyncOperation"); + var location = _response.GetFirstHeader(@"Location"); + while (request.Method == System.Net.Http.HttpMethod.Put && _response.StatusCode == global::System.Net.HttpStatusCode.OK || _response.StatusCode == global::System.Net.HttpStatusCode.Created || _response.StatusCode == global::System.Net.HttpStatusCode.Accepted ) + { + + // get the delay before polling. (default to 30 seconds if not present) + int delay = (int)(_response.Headers.RetryAfter?.Delta?.TotalSeconds ?? 30); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.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.EventGrid.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.EventGrid.Runtime.Json.JsonNode.Parse(await _response.Content.ReadAsStringAsync()) is Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Runtime.UndeclaredResponseException(_response); + } + } + + // check for terminal status code + if (_response.StatusCode == global::System.Net.HttpStatusCode.Created || _response.StatusCode == global::System.Net.HttpStatusCode.Accepted ) + { + continue; + } + // we are done polling, do a request on final target? + if (!string.IsNullOrWhiteSpace(_finalUri)) + { + // create a new request with the final uri + request = request.CloneAndDispose(new global::System.Uri(_finalUri), Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.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.EventGrid.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onNoContent(_response); + break; + } + default: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onDefault(_response); + break; + } + } + } + finally + { + // finally statements + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Finally, request, _response); + _response?.Dispose(); + request?.Dispose(); + } + } + } + + /// + /// Validation method for method. Call this like the actual call, but you will + /// get validation events back. + /// + /// Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription + /// ID forms part of the URI for every service call. + /// The name of the resource group within the user's subscription. + /// Name of the domain. + /// Name of the event subscription to be deleted. Event subscription names must be between + /// 3 and 100 characters in length and use alphanumeric letters only. + /// an instance that will receive events. + /// + /// A that will be complete when handling of the response is completed. + /// + internal async global::System.Threading.Tasks.Task DomainEventSubscriptionsDelete_Validate(string subscriptionId, string resourceGroupName, string domainName, string eventSubscriptionName, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener eventListener) + { + using( NoSynchronizationContext ) + { + await eventListener.AssertNotNull(nameof(subscriptionId),subscriptionId); + await eventListener.AssertNotNull(nameof(resourceGroupName),resourceGroupName); + await eventListener.AssertNotNull(nameof(domainName),domainName); + await eventListener.AssertNotNull(nameof(eventSubscriptionName),eventSubscriptionName); + } + } + + /// Get properties of an event subscription of a domain. + /// Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription + /// ID forms part of the URI for every service call. + /// The name of the resource group within the user's subscription. + /// Name of the partner topic. + /// Name of the event subscription to be found. Event subscription names must be between + /// 3 and 100 characters in length and use alphanumeric letters only. + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task DomainEventSubscriptionsGet(string subscriptionId, string resourceGroupName, string domainName, string eventSubscriptionName, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func onDefault, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync sender) + { + var apiVersion = @"2021-10-15-preview"; + // Constant Parameters + using( NoSynchronizationContext ) + { + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + global::System.Uri.EscapeDataString(subscriptionId) + + "/resourceGroups/" + + global::System.Uri.EscapeDataString(resourceGroupName) + + "/providers/Microsoft.EventGrid/domains/" + + global::System.Uri.EscapeDataString(domainName) + + "/eventSubscriptions/" + + global::System.Uri.EscapeDataString(eventSubscriptionName) + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Method.Get, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.DomainEventSubscriptionsGet_Call(request,onOk,onDefault,eventListener,sender); + } + } + + /// Get all delivery attributes for an event subscription for domain. + /// Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription + /// ID forms part of the URI for every service call. + /// The name of the resource group within the user's subscription. + /// Name of the domain topic. + /// Name of the event 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.EventGrid.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task DomainEventSubscriptionsGetDeliveryAttributes(string subscriptionId, string resourceGroupName, string domainName, string eventSubscriptionName, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func onDefault, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync sender) + { + var apiVersion = @"2021-10-15-preview"; + // Constant Parameters + using( NoSynchronizationContext ) + { + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + global::System.Uri.EscapeDataString(subscriptionId) + + "/resourceGroups/" + + global::System.Uri.EscapeDataString(resourceGroupName) + + "/providers/Microsoft.EventGrid/domains/" + + global::System.Uri.EscapeDataString(domainName) + + "/eventSubscriptions/" + + global::System.Uri.EscapeDataString(eventSubscriptionName) + + "/getDeliveryAttributes" + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Method.Post, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.DomainEventSubscriptionsGetDeliveryAttributes_Call(request,onOk,onDefault,eventListener,sender); + } + } + + /// Get all delivery attributes for an event subscription for domain. + /// + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task DomainEventSubscriptionsGetDeliveryAttributesViaIdentity(global::System.String viaIdentity, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func onDefault, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync sender) + { + var apiVersion = @"2021-10-15-preview"; + // Constant Parameters + using( NoSynchronizationContext ) + { + // verify that Identity format is an exact match for uri + + var _match = new global::System.Text.RegularExpressions.Regex("^/subscriptions/(?[^/]+)/resourceGroups/(?[^/]+)/providers/Microsoft.EventGrid/domains/(?[^/]+)/eventSubscriptions/(?[^/]+)/getDeliveryAttributes$", global::System.Text.RegularExpressions.RegexOptions.IgnoreCase).Match(viaIdentity); + if (!_match.Success) + { + throw new global::System.Exception("Invalid identity for URI '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.EventGrid/domains/{domainName}/eventSubscriptions/{eventSubscriptionName}/getDeliveryAttributes'"); + } + + // replace URI parameters with values from identity + var subscriptionId = _match.Groups["subscriptionId"].Value; + var resourceGroupName = _match.Groups["resourceGroupName"].Value; + var domainName = _match.Groups["domainName"].Value; + var eventSubscriptionName = _match.Groups["eventSubscriptionName"].Value; + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + subscriptionId + + "/resourceGroups/" + + resourceGroupName + + "/providers/Microsoft.EventGrid/domains/" + + domainName + + "/eventSubscriptions/" + + eventSubscriptionName + + "/getDeliveryAttributes" + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Method.Post, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.DomainEventSubscriptionsGetDeliveryAttributes_Call(request,onOk,onDefault,eventListener,sender); + } + } + + /// + /// Actual wire call for method. + /// + /// the prepared HttpRequestMessage to send. + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + internal async global::System.Threading.Tasks.Task DomainEventSubscriptionsGetDeliveryAttributes_Call(global::System.Net.Http.HttpRequestMessage request, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func onDefault, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync sender) + { + using( NoSynchronizationContext ) + { + global::System.Net.Http.HttpResponseMessage _response = null; + try + { + var sendTask = sender.SendAsync(request, eventListener); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.BeforeCall, request); if( eventListener.Token.IsCancellationRequested ) { return; } + _response = await sendTask; + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.ResponseCreated, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + var _contentType = _response.Content.Headers.ContentType?.MediaType; + + switch ( _response.StatusCode ) + { + case global::System.Net.HttpStatusCode.OK: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onOk(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.DeliveryAttributeListResult.FromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + default: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onDefault(_response); + break; + } + } + } + finally + { + // finally statements + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Finally, request, _response); + _response?.Dispose(); + request?.Dispose(); + } + } + } + + /// + /// Validation method for method. Call this like the actual call, + /// but you will get validation events back. + /// + /// Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription + /// ID forms part of the URI for every service call. + /// The name of the resource group within the user's subscription. + /// Name of the domain topic. + /// Name of the event 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 DomainEventSubscriptionsGetDeliveryAttributes_Validate(string subscriptionId, string resourceGroupName, string domainName, string eventSubscriptionName, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener eventListener) + { + using( NoSynchronizationContext ) + { + await eventListener.AssertNotNull(nameof(subscriptionId),subscriptionId); + await eventListener.AssertNotNull(nameof(resourceGroupName),resourceGroupName); + await eventListener.AssertNotNull(nameof(domainName),domainName); + await eventListener.AssertNotNull(nameof(eventSubscriptionName),eventSubscriptionName); + } + } + + /// Get the full endpoint URL for an event subscription for domain. + /// Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription + /// ID forms part of the URI for every service call. + /// The name of the resource group within the user's subscription. + /// Name of the domain topic. + /// Name of the event 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.EventGrid.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task DomainEventSubscriptionsGetFullUrl(string subscriptionId, string resourceGroupName, string domainName, string eventSubscriptionName, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func onDefault, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync sender) + { + var apiVersion = @"2021-10-15-preview"; + // Constant Parameters + using( NoSynchronizationContext ) + { + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + global::System.Uri.EscapeDataString(subscriptionId) + + "/resourceGroups/" + + global::System.Uri.EscapeDataString(resourceGroupName) + + "/providers/Microsoft.EventGrid/domains/" + + global::System.Uri.EscapeDataString(domainName) + + "/eventSubscriptions/" + + global::System.Uri.EscapeDataString(eventSubscriptionName) + + "/getFullUrl" + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Method.Post, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.DomainEventSubscriptionsGetFullUrl_Call(request,onOk,onDefault,eventListener,sender); + } + } + + /// Get the full endpoint URL for an event subscription for domain. + /// + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task DomainEventSubscriptionsGetFullUrlViaIdentity(global::System.String viaIdentity, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func onDefault, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync sender) + { + var apiVersion = @"2021-10-15-preview"; + // Constant Parameters + using( NoSynchronizationContext ) + { + // verify that Identity format is an exact match for uri + + var _match = new global::System.Text.RegularExpressions.Regex("^/subscriptions/(?[^/]+)/resourceGroups/(?[^/]+)/providers/Microsoft.EventGrid/domains/(?[^/]+)/eventSubscriptions/(?[^/]+)/getFullUrl$", global::System.Text.RegularExpressions.RegexOptions.IgnoreCase).Match(viaIdentity); + if (!_match.Success) + { + throw new global::System.Exception("Invalid identity for URI '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.EventGrid/domains/{domainName}/eventSubscriptions/{eventSubscriptionName}/getFullUrl'"); + } + + // replace URI parameters with values from identity + var subscriptionId = _match.Groups["subscriptionId"].Value; + var resourceGroupName = _match.Groups["resourceGroupName"].Value; + var domainName = _match.Groups["domainName"].Value; + var eventSubscriptionName = _match.Groups["eventSubscriptionName"].Value; + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + subscriptionId + + "/resourceGroups/" + + resourceGroupName + + "/providers/Microsoft.EventGrid/domains/" + + domainName + + "/eventSubscriptions/" + + eventSubscriptionName + + "/getFullUrl" + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Method.Post, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.DomainEventSubscriptionsGetFullUrl_Call(request,onOk,onDefault,eventListener,sender); + } + } + + /// Actual wire call for method. + /// the prepared HttpRequestMessage to send. + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + internal async global::System.Threading.Tasks.Task DomainEventSubscriptionsGetFullUrl_Call(global::System.Net.Http.HttpRequestMessage request, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func onDefault, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync sender) + { + using( NoSynchronizationContext ) + { + global::System.Net.Http.HttpResponseMessage _response = null; + try + { + var sendTask = sender.SendAsync(request, eventListener); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.BeforeCall, request); if( eventListener.Token.IsCancellationRequested ) { return; } + _response = await sendTask; + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.ResponseCreated, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + var _contentType = _response.Content.Headers.ContentType?.MediaType; + + switch ( _response.StatusCode ) + { + case global::System.Net.HttpStatusCode.OK: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onOk(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.EventSubscriptionFullUrl.FromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + default: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onDefault(_response); + break; + } + } + } + finally + { + // finally statements + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Finally, request, _response); + _response?.Dispose(); + request?.Dispose(); + } + } + } + + /// + /// Validation method for method. Call this like the actual call, but you + /// will get validation events back. + /// + /// Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription + /// ID forms part of the URI for every service call. + /// The name of the resource group within the user's subscription. + /// Name of the domain topic. + /// Name of the event 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 DomainEventSubscriptionsGetFullUrl_Validate(string subscriptionId, string resourceGroupName, string domainName, string eventSubscriptionName, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener eventListener) + { + using( NoSynchronizationContext ) + { + await eventListener.AssertNotNull(nameof(subscriptionId),subscriptionId); + await eventListener.AssertNotNull(nameof(resourceGroupName),resourceGroupName); + await eventListener.AssertNotNull(nameof(domainName),domainName); + await eventListener.AssertNotNull(nameof(eventSubscriptionName),eventSubscriptionName); + } + } + + /// Get properties of an event subscription of a domain. + /// + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task DomainEventSubscriptionsGetViaIdentity(global::System.String viaIdentity, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func onDefault, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync sender) + { + var apiVersion = @"2021-10-15-preview"; + // Constant Parameters + using( NoSynchronizationContext ) + { + // verify that Identity format is an exact match for uri + + var _match = new global::System.Text.RegularExpressions.Regex("^/subscriptions/(?[^/]+)/resourceGroups/(?[^/]+)/providers/Microsoft.EventGrid/domains/(?[^/]+)/eventSubscriptions/(?[^/]+)$", global::System.Text.RegularExpressions.RegexOptions.IgnoreCase).Match(viaIdentity); + if (!_match.Success) + { + throw new global::System.Exception("Invalid identity for URI '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.EventGrid/domains/{domainName}/eventSubscriptions/{eventSubscriptionName}'"); + } + + // replace URI parameters with values from identity + var subscriptionId = _match.Groups["subscriptionId"].Value; + var resourceGroupName = _match.Groups["resourceGroupName"].Value; + var domainName = _match.Groups["domainName"].Value; + var eventSubscriptionName = _match.Groups["eventSubscriptionName"].Value; + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + subscriptionId + + "/resourceGroups/" + + resourceGroupName + + "/providers/Microsoft.EventGrid/domains/" + + domainName + + "/eventSubscriptions/" + + eventSubscriptionName + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Method.Get, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.DomainEventSubscriptionsGet_Call(request,onOk,onDefault,eventListener,sender); + } + } + + /// Actual wire call for method. + /// the prepared HttpRequestMessage to send. + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + internal async global::System.Threading.Tasks.Task DomainEventSubscriptionsGet_Call(global::System.Net.Http.HttpRequestMessage request, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func onDefault, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync sender) + { + using( NoSynchronizationContext ) + { + global::System.Net.Http.HttpResponseMessage _response = null; + try + { + var sendTask = sender.SendAsync(request, eventListener); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.BeforeCall, request); if( eventListener.Token.IsCancellationRequested ) { return; } + _response = await sendTask; + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.ResponseCreated, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + var _contentType = _response.Content.Headers.ContentType?.MediaType; + + switch ( _response.StatusCode ) + { + case global::System.Net.HttpStatusCode.OK: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onOk(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.EventSubscription.FromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + default: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onDefault(_response); + break; + } + } + } + finally + { + // finally statements + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Finally, request, _response); + _response?.Dispose(); + request?.Dispose(); + } + } + } + + /// + /// Validation method for method. Call this like the actual call, but you will + /// get validation events back. + /// + /// Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription + /// ID forms part of the URI for every service call. + /// The name of the resource group within the user's subscription. + /// Name of the partner topic. + /// Name of the event subscription to be found. Event subscription names must be between + /// 3 and 100 characters in length and use alphanumeric letters only. + /// an instance that will receive events. + /// + /// A that will be complete when handling of the response is completed. + /// + internal async global::System.Threading.Tasks.Task DomainEventSubscriptionsGet_Validate(string subscriptionId, string resourceGroupName, string domainName, string eventSubscriptionName, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener eventListener) + { + using( NoSynchronizationContext ) + { + await eventListener.AssertNotNull(nameof(subscriptionId),subscriptionId); + await eventListener.AssertNotNull(nameof(resourceGroupName),resourceGroupName); + await eventListener.AssertNotNull(nameof(domainName),domainName); + await eventListener.AssertNotNull(nameof(eventSubscriptionName),eventSubscriptionName); + } + } + + /// List all event subscriptions that have been created for a specific topic. + /// Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription + /// ID forms part of the URI for every service call. + /// The name of the resource group within the user's subscription. + /// Name of the domain. + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task DomainEventSubscriptionsList(string subscriptionId, string resourceGroupName, string domainName, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func onDefault, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync sender) + { + var apiVersion = @"2021-10-15-preview"; + // Constant Parameters + using( NoSynchronizationContext ) + { + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + global::System.Uri.EscapeDataString(subscriptionId) + + "/resourceGroups/" + + global::System.Uri.EscapeDataString(resourceGroupName) + + "/providers/Microsoft.EventGrid/domains/" + + global::System.Uri.EscapeDataString(domainName) + + "/eventSubscriptions" + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Method.Get, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.DomainEventSubscriptionsList_Call(request,onOk,onDefault,eventListener,sender); + } + } + + /// List all event subscriptions that have been created for a specific topic. + /// + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task DomainEventSubscriptionsListViaIdentity(global::System.String viaIdentity, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func onDefault, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync sender) + { + var apiVersion = @"2021-10-15-preview"; + // Constant Parameters + using( NoSynchronizationContext ) + { + // verify that Identity format is an exact match for uri + + var _match = new global::System.Text.RegularExpressions.Regex("^/subscriptions/(?[^/]+)/resourceGroups/(?[^/]+)/providers/Microsoft.EventGrid/domains/(?[^/]+)/eventSubscriptions$", global::System.Text.RegularExpressions.RegexOptions.IgnoreCase).Match(viaIdentity); + if (!_match.Success) + { + throw new global::System.Exception("Invalid identity for URI '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.EventGrid/domains/{domainName}/eventSubscriptions'"); + } + + // replace URI parameters with values from identity + var subscriptionId = _match.Groups["subscriptionId"].Value; + var resourceGroupName = _match.Groups["resourceGroupName"].Value; + var domainName = _match.Groups["domainName"].Value; + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + subscriptionId + + "/resourceGroups/" + + resourceGroupName + + "/providers/Microsoft.EventGrid/domains/" + + domainName + + "/eventSubscriptions" + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Method.Get, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.DomainEventSubscriptionsList_Call(request,onOk,onDefault,eventListener,sender); + } + } + + /// Actual wire call for method. + /// the prepared HttpRequestMessage to send. + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + internal async global::System.Threading.Tasks.Task DomainEventSubscriptionsList_Call(global::System.Net.Http.HttpRequestMessage request, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func onDefault, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync sender) + { + using( NoSynchronizationContext ) + { + global::System.Net.Http.HttpResponseMessage _response = null; + try + { + var sendTask = sender.SendAsync(request, eventListener); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.BeforeCall, request); if( eventListener.Token.IsCancellationRequested ) { return; } + _response = await sendTask; + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.ResponseCreated, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + var _contentType = _response.Content.Headers.ContentType?.MediaType; + + switch ( _response.StatusCode ) + { + case global::System.Net.HttpStatusCode.OK: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onOk(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.EventSubscriptionsListResult.FromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + default: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onDefault(_response); + break; + } + } + } + finally + { + // finally statements + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Finally, request, _response); + _response?.Dispose(); + request?.Dispose(); + } + } + } + + /// + /// Validation method for method. Call this like the actual call, but you will + /// get validation events back. + /// + /// Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription + /// ID forms part of the URI for every service call. + /// The name of the resource group within the user's subscription. + /// Name of the domain. + /// an instance that will receive events. + /// + /// A that will be complete when handling of the response is completed. + /// + internal async global::System.Threading.Tasks.Task DomainEventSubscriptionsList_Validate(string subscriptionId, string resourceGroupName, string domainName, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener eventListener) + { + using( NoSynchronizationContext ) + { + await eventListener.AssertNotNull(nameof(subscriptionId),subscriptionId); + await eventListener.AssertNotNull(nameof(resourceGroupName),resourceGroupName); + await eventListener.AssertNotNull(nameof(domainName),domainName); + } + } + + /// Update an existing event subscription for a topic. + /// Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription + /// ID forms part of the URI for every service call. + /// The name of the resource group within the user's subscription. + /// Name of the domain. + /// Name of the event subscription to be updated. + /// Updated event subscription information. + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task DomainEventSubscriptionsUpdate(string subscriptionId, string resourceGroupName, string domainName, string eventSubscriptionName, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionUpdateParameters body, global::System.Func onDefault, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync sender) + { + var apiVersion = @"2021-10-15-preview"; + // Constant Parameters + using( NoSynchronizationContext ) + { + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + global::System.Uri.EscapeDataString(subscriptionId) + + "/resourceGroups/" + + global::System.Uri.EscapeDataString(resourceGroupName) + + "/providers/Microsoft.EventGrid/domains/" + + global::System.Uri.EscapeDataString(domainName) + + "/eventSubscriptions/" + + global::System.Uri.EscapeDataString(eventSubscriptionName) + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Method.Patch, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // set body content + request.Content = new global::System.Net.Http.StringContent(null != body ? body.ToJson(null).ToString() : @"{}", global::System.Text.Encoding.UTF8); + request.Content.Headers.ContentType = global::System.Net.Http.Headers.MediaTypeHeaderValue.Parse("application/json"); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.BodyContentSet); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.DomainEventSubscriptionsUpdate_Call(request,onDefault,eventListener,sender); + } + } + + /// Update an existing event subscription for a topic. + /// + /// Updated event subscription information. + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task DomainEventSubscriptionsUpdateViaIdentity(global::System.String viaIdentity, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionUpdateParameters body, global::System.Func onDefault, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync sender) + { + var apiVersion = @"2021-10-15-preview"; + // Constant Parameters + using( NoSynchronizationContext ) + { + // verify that Identity format is an exact match for uri + + var _match = new global::System.Text.RegularExpressions.Regex("^/subscriptions/(?[^/]+)/resourceGroups/(?[^/]+)/providers/Microsoft.EventGrid/domains/(?[^/]+)/eventSubscriptions/(?[^/]+)$", global::System.Text.RegularExpressions.RegexOptions.IgnoreCase).Match(viaIdentity); + if (!_match.Success) + { + throw new global::System.Exception("Invalid identity for URI '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.EventGrid/domains/{domainName}/eventSubscriptions/{eventSubscriptionName}'"); + } + + // replace URI parameters with values from identity + var subscriptionId = _match.Groups["subscriptionId"].Value; + var resourceGroupName = _match.Groups["resourceGroupName"].Value; + var domainName = _match.Groups["domainName"].Value; + var eventSubscriptionName = _match.Groups["eventSubscriptionName"].Value; + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + subscriptionId + + "/resourceGroups/" + + resourceGroupName + + "/providers/Microsoft.EventGrid/domains/" + + domainName + + "/eventSubscriptions/" + + eventSubscriptionName + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Method.Patch, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // set body content + request.Content = new global::System.Net.Http.StringContent(null != body ? body.ToJson(null).ToString() : @"{}", global::System.Text.Encoding.UTF8); + request.Content.Headers.ContentType = global::System.Net.Http.Headers.MediaTypeHeaderValue.Parse("application/json"); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.BodyContentSet); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.DomainEventSubscriptionsUpdate_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.EventGrid.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + internal async global::System.Threading.Tasks.Task DomainEventSubscriptionsUpdate_Call(global::System.Net.Http.HttpRequestMessage request, global::System.Func onDefault, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync sender) + { + using( NoSynchronizationContext ) + { + global::System.Net.Http.HttpResponseMessage _response = null; + try + { + var sendTask = sender.SendAsync(request, eventListener); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.BeforeCall, request); if( eventListener.Token.IsCancellationRequested ) { return; } + _response = await sendTask; + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.ResponseCreated, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + // this operation supports x-ms-long-running-operation + var _originalUri = request.RequestUri.AbsoluteUri; + // declared final-state-via: default + var asyncOperation = _response.GetFirstHeader(@"Azure-AsyncOperation"); + var location = _response.GetFirstHeader(@"Location"); + while (request.Method == System.Net.Http.HttpMethod.Put && _response.StatusCode == global::System.Net.HttpStatusCode.OK || _response.StatusCode == global::System.Net.HttpStatusCode.Created || _response.StatusCode == global::System.Net.HttpStatusCode.Accepted ) + { + + // get the delay before polling. (default to 30 seconds if not present) + int delay = (int)(_response.Headers.RetryAfter?.Delta?.TotalSeconds ?? 30); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.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.EventGrid.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.EventGrid.Runtime.Json.JsonNode.Parse(await _response.Content.ReadAsStringAsync()) is Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Runtime.UndeclaredResponseException(_response); + } + } + + // check for terminal status code + if (_response.StatusCode == global::System.Net.HttpStatusCode.Created || _response.StatusCode == global::System.Net.HttpStatusCode.Accepted ) + { + continue; + } + // we are done polling, do a request on final target? + if (!string.IsNullOrWhiteSpace(_originalUri)) + { + // create a new request with the final uri + request = request.CloneAndDispose(new global::System.Uri(_originalUri), Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onDefault(_response); + break; + } + } + } + finally + { + // finally statements + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Finally, request, _response); + _response?.Dispose(); + request?.Dispose(); + } + } + } + + /// + /// Validation method for method. Call this like the actual call, but you will + /// get validation events back. + /// + /// Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription + /// ID forms part of the URI for every service call. + /// The name of the resource group within the user's subscription. + /// Name of the domain. + /// Name of the event subscription to be updated. + /// Updated event subscription information. + /// an instance that will receive events. + /// + /// A that will be complete when handling of the response is completed. + /// + internal async global::System.Threading.Tasks.Task DomainEventSubscriptionsUpdate_Validate(string subscriptionId, string resourceGroupName, string domainName, string eventSubscriptionName, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionUpdateParameters body, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener eventListener) + { + using( NoSynchronizationContext ) + { + await eventListener.AssertNotNull(nameof(subscriptionId),subscriptionId); + await eventListener.AssertNotNull(nameof(resourceGroupName),resourceGroupName); + await eventListener.AssertNotNull(nameof(domainName),domainName); + await eventListener.AssertNotNull(nameof(eventSubscriptionName),eventSubscriptionName); + await eventListener.AssertNotNull(nameof(body), body); + await eventListener.AssertObjectIsValid(nameof(body), body); + } + } + + /// + /// Asynchronously creates a new event subscription or updates an existing event subscription. + /// + /// Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription + /// ID forms part of the URI for every service call. + /// The name of the resource group within the user's subscription. + /// Name of the top level domain. + /// Name of the domain topic. + /// Name of the event subscription to be created. Event subscription names must be between + /// 3 and 100 characters in length and use alphanumeric letters only. + /// Event subscription properties containing the destination and filter information. + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task DomainTopicEventSubscriptionsCreateOrUpdate(string subscriptionId, string resourceGroupName, string domainName, string topicName, string eventSubscriptionName, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscription body, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func onDefault, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync sender) + { + var apiVersion = @"2021-10-15-preview"; + // Constant Parameters + using( NoSynchronizationContext ) + { + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + global::System.Uri.EscapeDataString(subscriptionId) + + "/resourceGroups/" + + global::System.Uri.EscapeDataString(resourceGroupName) + + "/providers/Microsoft.EventGrid/domains/" + + global::System.Uri.EscapeDataString(domainName) + + "/topics/" + + global::System.Uri.EscapeDataString(topicName) + + "/eventSubscriptions/" + + global::System.Uri.EscapeDataString(eventSubscriptionName) + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Method.Put, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // set body content + request.Content = new global::System.Net.Http.StringContent(null != body ? body.ToJson(null).ToString() : @"{}", global::System.Text.Encoding.UTF8); + request.Content.Headers.ContentType = global::System.Net.Http.Headers.MediaTypeHeaderValue.Parse("application/json"); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.BodyContentSet); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.DomainTopicEventSubscriptionsCreateOrUpdate_Call(request,onOk,onDefault,eventListener,sender); + } + } + + /// + /// Asynchronously creates a new event subscription or updates an existing event subscription. + /// + /// + /// Event subscription properties containing the destination and filter information. + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task DomainTopicEventSubscriptionsCreateOrUpdateViaIdentity(global::System.String viaIdentity, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscription body, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func onDefault, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync sender) + { + var apiVersion = @"2021-10-15-preview"; + // Constant Parameters + using( NoSynchronizationContext ) + { + // verify that Identity format is an exact match for uri + + var _match = new global::System.Text.RegularExpressions.Regex("^/subscriptions/(?[^/]+)/resourceGroups/(?[^/]+)/providers/Microsoft.EventGrid/domains/(?[^/]+)/topics/(?[^/]+)/eventSubscriptions/(?[^/]+)$", global::System.Text.RegularExpressions.RegexOptions.IgnoreCase).Match(viaIdentity); + if (!_match.Success) + { + throw new global::System.Exception("Invalid identity for URI '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.EventGrid/domains/{domainName}/topics/{topicName}/eventSubscriptions/{eventSubscriptionName}'"); + } + + // replace URI parameters with values from identity + var subscriptionId = _match.Groups["subscriptionId"].Value; + var resourceGroupName = _match.Groups["resourceGroupName"].Value; + var domainName = _match.Groups["domainName"].Value; + var topicName = _match.Groups["topicName"].Value; + var eventSubscriptionName = _match.Groups["eventSubscriptionName"].Value; + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + subscriptionId + + "/resourceGroups/" + + resourceGroupName + + "/providers/Microsoft.EventGrid/domains/" + + domainName + + "/topics/" + + topicName + + "/eventSubscriptions/" + + eventSubscriptionName + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Method.Put, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // set body content + request.Content = new global::System.Net.Http.StringContent(null != body ? body.ToJson(null).ToString() : @"{}", global::System.Text.Encoding.UTF8); + request.Content.Headers.ContentType = global::System.Net.Http.Headers.MediaTypeHeaderValue.Parse("application/json"); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.BodyContentSet); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.DomainTopicEventSubscriptionsCreateOrUpdate_Call(request,onOk,onDefault,eventListener,sender); + } + } + + /// + /// Actual wire call for method. + /// + /// the prepared HttpRequestMessage to send. + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + internal async global::System.Threading.Tasks.Task DomainTopicEventSubscriptionsCreateOrUpdate_Call(global::System.Net.Http.HttpRequestMessage request, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func onDefault, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync sender) + { + using( NoSynchronizationContext ) + { + global::System.Net.Http.HttpResponseMessage _response = null; + try + { + var sendTask = sender.SendAsync(request, eventListener); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.BeforeCall, request); if( eventListener.Token.IsCancellationRequested ) { return; } + _response = await sendTask; + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.ResponseCreated, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + // this operation supports x-ms-long-running-operation + var _originalUri = request.RequestUri.AbsoluteUri; + // declared final-state-via: default + var asyncOperation = _response.GetFirstHeader(@"Azure-AsyncOperation"); + var location = _response.GetFirstHeader(@"Location"); + while (request.Method == System.Net.Http.HttpMethod.Put && _response.StatusCode == global::System.Net.HttpStatusCode.OK || _response.StatusCode == global::System.Net.HttpStatusCode.Created || _response.StatusCode == global::System.Net.HttpStatusCode.Accepted ) + { + + // get the delay before polling. (default to 30 seconds if not present) + int delay = (int)(_response.Headers.RetryAfter?.Delta?.TotalSeconds ?? 30); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.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.EventGrid.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.EventGrid.Runtime.Json.JsonNode.Parse(await _response.Content.ReadAsStringAsync()) is Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Runtime.UndeclaredResponseException(_response); + } + } + + // check for terminal status code + if (_response.StatusCode == global::System.Net.HttpStatusCode.Created || _response.StatusCode == global::System.Net.HttpStatusCode.Accepted ) + { + continue; + } + // we are done polling, do a request on final target? + if (!string.IsNullOrWhiteSpace(_originalUri)) + { + // create a new request with the final uri + request = request.CloneAndDispose(new global::System.Uri(_originalUri), Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onOk(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.EventSubscription.FromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + default: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onDefault(_response); + break; + } + } + } + finally + { + // finally statements + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Finally, request, _response); + _response?.Dispose(); + request?.Dispose(); + } + } + } + + /// + /// Validation method for method. Call this like the actual call, + /// but you will get validation events back. + /// + /// Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription + /// ID forms part of the URI for every service call. + /// The name of the resource group within the user's subscription. + /// Name of the top level domain. + /// Name of the domain topic. + /// Name of the event subscription to be created. Event subscription names must be between + /// 3 and 100 characters in length and use alphanumeric letters only. + /// Event subscription properties containing the destination and filter information. + /// an instance that will receive events. + /// + /// A that will be complete when handling of the response is completed. + /// + internal async global::System.Threading.Tasks.Task DomainTopicEventSubscriptionsCreateOrUpdate_Validate(string subscriptionId, string resourceGroupName, string domainName, string topicName, string eventSubscriptionName, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscription body, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener eventListener) + { + using( NoSynchronizationContext ) + { + await eventListener.AssertNotNull(nameof(subscriptionId),subscriptionId); + await eventListener.AssertNotNull(nameof(resourceGroupName),resourceGroupName); + await eventListener.AssertNotNull(nameof(domainName),domainName); + await eventListener.AssertNotNull(nameof(topicName),topicName); + await eventListener.AssertNotNull(nameof(eventSubscriptionName),eventSubscriptionName); + await eventListener.AssertNotNull(nameof(body), body); + await eventListener.AssertObjectIsValid(nameof(body), body); + } + } + + /// Delete a nested existing event subscription for a domain topic. + /// Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription + /// ID forms part of the URI for every service call. + /// The name of the resource group within the user's subscription. + /// Name of the top level domain. + /// Name of the domain topic. + /// Name of the event subscription to be deleted. Event subscription names must be between + /// 3 and 100 characters in length and use alphanumeric letters only. + /// 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.EventGrid.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task DomainTopicEventSubscriptionsDelete(string subscriptionId, string resourceGroupName, string domainName, string topicName, string eventSubscriptionName, global::System.Func onOk, global::System.Func onNoContent, global::System.Func onDefault, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync sender) + { + var apiVersion = @"2021-10-15-preview"; + // Constant Parameters + using( NoSynchronizationContext ) + { + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + global::System.Uri.EscapeDataString(subscriptionId) + + "/resourceGroups/" + + global::System.Uri.EscapeDataString(resourceGroupName) + + "/providers/Microsoft.EventGrid/domains/" + + global::System.Uri.EscapeDataString(domainName) + + "/topics/" + + global::System.Uri.EscapeDataString(topicName) + + "/eventSubscriptions/" + + global::System.Uri.EscapeDataString(eventSubscriptionName) + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Method.Delete, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.DomainTopicEventSubscriptionsDelete_Call(request,onOk,onNoContent,onDefault,eventListener,sender); + } + } + + /// Delete a nested existing event subscription for a domain topic. + /// + /// 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.EventGrid.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task DomainTopicEventSubscriptionsDeleteViaIdentity(global::System.String viaIdentity, global::System.Func onOk, global::System.Func onNoContent, global::System.Func onDefault, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync sender) + { + var apiVersion = @"2021-10-15-preview"; + // Constant Parameters + using( NoSynchronizationContext ) + { + // verify that Identity format is an exact match for uri + + var _match = new global::System.Text.RegularExpressions.Regex("^/subscriptions/(?[^/]+)/resourceGroups/(?[^/]+)/providers/Microsoft.EventGrid/domains/(?[^/]+)/topics/(?[^/]+)/eventSubscriptions/(?[^/]+)$", global::System.Text.RegularExpressions.RegexOptions.IgnoreCase).Match(viaIdentity); + if (!_match.Success) + { + throw new global::System.Exception("Invalid identity for URI '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.EventGrid/domains/{domainName}/topics/{topicName}/eventSubscriptions/{eventSubscriptionName}'"); + } + + // replace URI parameters with values from identity + var subscriptionId = _match.Groups["subscriptionId"].Value; + var resourceGroupName = _match.Groups["resourceGroupName"].Value; + var domainName = _match.Groups["domainName"].Value; + var topicName = _match.Groups["topicName"].Value; + var eventSubscriptionName = _match.Groups["eventSubscriptionName"].Value; + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + subscriptionId + + "/resourceGroups/" + + resourceGroupName + + "/providers/Microsoft.EventGrid/domains/" + + domainName + + "/topics/" + + topicName + + "/eventSubscriptions/" + + eventSubscriptionName + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Method.Delete, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.DomainTopicEventSubscriptionsDelete_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.EventGrid.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + internal async global::System.Threading.Tasks.Task DomainTopicEventSubscriptionsDelete_Call(global::System.Net.Http.HttpRequestMessage request, global::System.Func onOk, global::System.Func onNoContent, global::System.Func onDefault, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync sender) + { + using( NoSynchronizationContext ) + { + global::System.Net.Http.HttpResponseMessage _response = null; + try + { + var sendTask = sender.SendAsync(request, eventListener); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.BeforeCall, request); if( eventListener.Token.IsCancellationRequested ) { return; } + _response = await sendTask; + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.ResponseCreated, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + // this operation supports x-ms-long-running-operation + var _originalUri = request.RequestUri.AbsoluteUri; + // declared final-state-via: default + var _finalUri = _response.GetFirstHeader(@"Location"); + var asyncOperation = _response.GetFirstHeader(@"Azure-AsyncOperation"); + var location = _response.GetFirstHeader(@"Location"); + while (request.Method == System.Net.Http.HttpMethod.Put && _response.StatusCode == global::System.Net.HttpStatusCode.OK || _response.StatusCode == global::System.Net.HttpStatusCode.Created || _response.StatusCode == global::System.Net.HttpStatusCode.Accepted ) + { + + // get the delay before polling. (default to 30 seconds if not present) + int delay = (int)(_response.Headers.RetryAfter?.Delta?.TotalSeconds ?? 30); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.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.EventGrid.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.EventGrid.Runtime.Json.JsonNode.Parse(await _response.Content.ReadAsStringAsync()) is Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Runtime.UndeclaredResponseException(_response); + } + } + + // check for terminal status code + if (_response.StatusCode == global::System.Net.HttpStatusCode.Created || _response.StatusCode == global::System.Net.HttpStatusCode.Accepted ) + { + continue; + } + // we are done polling, do a request on final target? + if (!string.IsNullOrWhiteSpace(_finalUri)) + { + // create a new request with the final uri + request = request.CloneAndDispose(new global::System.Uri(_finalUri), Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.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.EventGrid.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onNoContent(_response); + break; + } + default: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onDefault(_response); + break; + } + } + } + finally + { + // finally statements + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Finally, request, _response); + _response?.Dispose(); + request?.Dispose(); + } + } + } + + /// + /// Validation method for method. Call this like the actual call, but you + /// will get validation events back. + /// + /// Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription + /// ID forms part of the URI for every service call. + /// The name of the resource group within the user's subscription. + /// Name of the top level domain. + /// Name of the domain topic. + /// Name of the event subscription to be deleted. Event subscription names must be between + /// 3 and 100 characters in length and use alphanumeric letters only. + /// an instance that will receive events. + /// + /// A that will be complete when handling of the response is completed. + /// + internal async global::System.Threading.Tasks.Task DomainTopicEventSubscriptionsDelete_Validate(string subscriptionId, string resourceGroupName, string domainName, string topicName, string eventSubscriptionName, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener eventListener) + { + using( NoSynchronizationContext ) + { + await eventListener.AssertNotNull(nameof(subscriptionId),subscriptionId); + await eventListener.AssertNotNull(nameof(resourceGroupName),resourceGroupName); + await eventListener.AssertNotNull(nameof(domainName),domainName); + await eventListener.AssertNotNull(nameof(topicName),topicName); + await eventListener.AssertNotNull(nameof(eventSubscriptionName),eventSubscriptionName); + } + } + + /// Get properties of a nested event subscription for a domain topic. + /// Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription + /// ID forms part of the URI for every service call. + /// The name of the resource group within the user's subscription. + /// Name of the top level domain. + /// Name of the domain topic. + /// Name of the event 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.EventGrid.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task DomainTopicEventSubscriptionsGet(string subscriptionId, string resourceGroupName, string domainName, string topicName, string eventSubscriptionName, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func onDefault, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync sender) + { + var apiVersion = @"2021-10-15-preview"; + // Constant Parameters + using( NoSynchronizationContext ) + { + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + global::System.Uri.EscapeDataString(subscriptionId) + + "/resourceGroups/" + + global::System.Uri.EscapeDataString(resourceGroupName) + + "/providers/Microsoft.EventGrid/domains/" + + global::System.Uri.EscapeDataString(domainName) + + "/topics/" + + global::System.Uri.EscapeDataString(topicName) + + "/eventSubscriptions/" + + global::System.Uri.EscapeDataString(eventSubscriptionName) + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Method.Get, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.DomainTopicEventSubscriptionsGet_Call(request,onOk,onDefault,eventListener,sender); + } + } + + /// Get all delivery attributes for an event subscription for domain topic. + /// Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription + /// ID forms part of the URI for every service call. + /// The name of the resource group within the user's subscription. + /// Name of the top level domain. + /// Name of the domain topic. + /// Name of the event 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.EventGrid.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task DomainTopicEventSubscriptionsGetDeliveryAttributes(string subscriptionId, string resourceGroupName, string domainName, string topicName, string eventSubscriptionName, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func onDefault, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync sender) + { + var apiVersion = @"2021-10-15-preview"; + // Constant Parameters + using( NoSynchronizationContext ) + { + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + global::System.Uri.EscapeDataString(subscriptionId) + + "/resourceGroups/" + + global::System.Uri.EscapeDataString(resourceGroupName) + + "/providers/Microsoft.EventGrid/domains/" + + global::System.Uri.EscapeDataString(domainName) + + "/topics/" + + global::System.Uri.EscapeDataString(topicName) + + "/eventSubscriptions/" + + global::System.Uri.EscapeDataString(eventSubscriptionName) + + "/getDeliveryAttributes" + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Method.Post, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.DomainTopicEventSubscriptionsGetDeliveryAttributes_Call(request,onOk,onDefault,eventListener,sender); + } + } + + /// Get all delivery attributes for an event subscription for domain topic. + /// + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task DomainTopicEventSubscriptionsGetDeliveryAttributesViaIdentity(global::System.String viaIdentity, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func onDefault, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync sender) + { + var apiVersion = @"2021-10-15-preview"; + // Constant Parameters + using( NoSynchronizationContext ) + { + // verify that Identity format is an exact match for uri + + var _match = new global::System.Text.RegularExpressions.Regex("^/subscriptions/(?[^/]+)/resourceGroups/(?[^/]+)/providers/Microsoft.EventGrid/domains/(?[^/]+)/topics/(?[^/]+)/eventSubscriptions/(?[^/]+)/getDeliveryAttributes$", global::System.Text.RegularExpressions.RegexOptions.IgnoreCase).Match(viaIdentity); + if (!_match.Success) + { + throw new global::System.Exception("Invalid identity for URI '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.EventGrid/domains/{domainName}/topics/{topicName}/eventSubscriptions/{eventSubscriptionName}/getDeliveryAttributes'"); + } + + // replace URI parameters with values from identity + var subscriptionId = _match.Groups["subscriptionId"].Value; + var resourceGroupName = _match.Groups["resourceGroupName"].Value; + var domainName = _match.Groups["domainName"].Value; + var topicName = _match.Groups["topicName"].Value; + var eventSubscriptionName = _match.Groups["eventSubscriptionName"].Value; + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + subscriptionId + + "/resourceGroups/" + + resourceGroupName + + "/providers/Microsoft.EventGrid/domains/" + + domainName + + "/topics/" + + topicName + + "/eventSubscriptions/" + + eventSubscriptionName + + "/getDeliveryAttributes" + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Method.Post, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.DomainTopicEventSubscriptionsGetDeliveryAttributes_Call(request,onOk,onDefault,eventListener,sender); + } + } + + /// + /// Actual wire call for method. + /// + /// the prepared HttpRequestMessage to send. + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + internal async global::System.Threading.Tasks.Task DomainTopicEventSubscriptionsGetDeliveryAttributes_Call(global::System.Net.Http.HttpRequestMessage request, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func onDefault, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync sender) + { + using( NoSynchronizationContext ) + { + global::System.Net.Http.HttpResponseMessage _response = null; + try + { + var sendTask = sender.SendAsync(request, eventListener); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.BeforeCall, request); if( eventListener.Token.IsCancellationRequested ) { return; } + _response = await sendTask; + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.ResponseCreated, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + var _contentType = _response.Content.Headers.ContentType?.MediaType; + + switch ( _response.StatusCode ) + { + case global::System.Net.HttpStatusCode.OK: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onOk(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.DeliveryAttributeListResult.FromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + default: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onDefault(_response); + break; + } + } + } + finally + { + // finally statements + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Finally, request, _response); + _response?.Dispose(); + request?.Dispose(); + } + } + } + + /// + /// Validation method for method. Call this like the actual + /// call, but you will get validation events back. + /// + /// Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription + /// ID forms part of the URI for every service call. + /// The name of the resource group within the user's subscription. + /// Name of the top level domain. + /// Name of the domain topic. + /// Name of the event 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 DomainTopicEventSubscriptionsGetDeliveryAttributes_Validate(string subscriptionId, string resourceGroupName, string domainName, string topicName, string eventSubscriptionName, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener eventListener) + { + using( NoSynchronizationContext ) + { + await eventListener.AssertNotNull(nameof(subscriptionId),subscriptionId); + await eventListener.AssertNotNull(nameof(resourceGroupName),resourceGroupName); + await eventListener.AssertNotNull(nameof(domainName),domainName); + await eventListener.AssertNotNull(nameof(topicName),topicName); + await eventListener.AssertNotNull(nameof(eventSubscriptionName),eventSubscriptionName); + } + } + + /// Get the full endpoint URL for a nested event subscription for domain topic. + /// Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription + /// ID forms part of the URI for every service call. + /// The name of the resource group within the user's subscription. + /// Name of the top level domain. + /// Name of the domain topic. + /// Name of the event 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.EventGrid.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task DomainTopicEventSubscriptionsGetFullUrl(string subscriptionId, string resourceGroupName, string domainName, string topicName, string eventSubscriptionName, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func onDefault, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync sender) + { + var apiVersion = @"2021-10-15-preview"; + // Constant Parameters + using( NoSynchronizationContext ) + { + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + global::System.Uri.EscapeDataString(subscriptionId) + + "/resourceGroups/" + + global::System.Uri.EscapeDataString(resourceGroupName) + + "/providers/Microsoft.EventGrid/domains/" + + global::System.Uri.EscapeDataString(domainName) + + "/topics/" + + global::System.Uri.EscapeDataString(topicName) + + "/eventSubscriptions/" + + global::System.Uri.EscapeDataString(eventSubscriptionName) + + "/getFullUrl" + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Method.Post, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.DomainTopicEventSubscriptionsGetFullUrl_Call(request,onOk,onDefault,eventListener,sender); + } + } + + /// Get the full endpoint URL for a nested event subscription for domain topic. + /// + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task DomainTopicEventSubscriptionsGetFullUrlViaIdentity(global::System.String viaIdentity, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func onDefault, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync sender) + { + var apiVersion = @"2021-10-15-preview"; + // Constant Parameters + using( NoSynchronizationContext ) + { + // verify that Identity format is an exact match for uri + + var _match = new global::System.Text.RegularExpressions.Regex("^/subscriptions/(?[^/]+)/resourceGroups/(?[^/]+)/providers/Microsoft.EventGrid/domains/(?[^/]+)/topics/(?[^/]+)/eventSubscriptions/(?[^/]+)/getFullUrl$", global::System.Text.RegularExpressions.RegexOptions.IgnoreCase).Match(viaIdentity); + if (!_match.Success) + { + throw new global::System.Exception("Invalid identity for URI '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.EventGrid/domains/{domainName}/topics/{topicName}/eventSubscriptions/{eventSubscriptionName}/getFullUrl'"); + } + + // replace URI parameters with values from identity + var subscriptionId = _match.Groups["subscriptionId"].Value; + var resourceGroupName = _match.Groups["resourceGroupName"].Value; + var domainName = _match.Groups["domainName"].Value; + var topicName = _match.Groups["topicName"].Value; + var eventSubscriptionName = _match.Groups["eventSubscriptionName"].Value; + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + subscriptionId + + "/resourceGroups/" + + resourceGroupName + + "/providers/Microsoft.EventGrid/domains/" + + domainName + + "/topics/" + + topicName + + "/eventSubscriptions/" + + eventSubscriptionName + + "/getFullUrl" + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Method.Post, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.DomainTopicEventSubscriptionsGetFullUrl_Call(request,onOk,onDefault,eventListener,sender); + } + } + + /// + /// Actual wire call for method. + /// + /// the prepared HttpRequestMessage to send. + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + internal async global::System.Threading.Tasks.Task DomainTopicEventSubscriptionsGetFullUrl_Call(global::System.Net.Http.HttpRequestMessage request, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func onDefault, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync sender) + { + using( NoSynchronizationContext ) + { + global::System.Net.Http.HttpResponseMessage _response = null; + try + { + var sendTask = sender.SendAsync(request, eventListener); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.BeforeCall, request); if( eventListener.Token.IsCancellationRequested ) { return; } + _response = await sendTask; + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.ResponseCreated, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + var _contentType = _response.Content.Headers.ContentType?.MediaType; + + switch ( _response.StatusCode ) + { + case global::System.Net.HttpStatusCode.OK: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onOk(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.EventSubscriptionFullUrl.FromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + default: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onDefault(_response); + break; + } + } + } + finally + { + // finally statements + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Finally, request, _response); + _response?.Dispose(); + request?.Dispose(); + } + } + } + + /// + /// Validation method for method. Call this like the actual call, but + /// you will get validation events back. + /// + /// Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription + /// ID forms part of the URI for every service call. + /// The name of the resource group within the user's subscription. + /// Name of the top level domain. + /// Name of the domain topic. + /// Name of the event 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 DomainTopicEventSubscriptionsGetFullUrl_Validate(string subscriptionId, string resourceGroupName, string domainName, string topicName, string eventSubscriptionName, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener eventListener) + { + using( NoSynchronizationContext ) + { + await eventListener.AssertNotNull(nameof(subscriptionId),subscriptionId); + await eventListener.AssertNotNull(nameof(resourceGroupName),resourceGroupName); + await eventListener.AssertNotNull(nameof(domainName),domainName); + await eventListener.AssertNotNull(nameof(topicName),topicName); + await eventListener.AssertNotNull(nameof(eventSubscriptionName),eventSubscriptionName); + } + } + + /// Get properties of a nested event subscription for a domain topic. + /// + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task DomainTopicEventSubscriptionsGetViaIdentity(global::System.String viaIdentity, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func onDefault, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync sender) + { + var apiVersion = @"2021-10-15-preview"; + // Constant Parameters + using( NoSynchronizationContext ) + { + // verify that Identity format is an exact match for uri + + var _match = new global::System.Text.RegularExpressions.Regex("^/subscriptions/(?[^/]+)/resourceGroups/(?[^/]+)/providers/Microsoft.EventGrid/domains/(?[^/]+)/topics/(?[^/]+)/eventSubscriptions/(?[^/]+)$", global::System.Text.RegularExpressions.RegexOptions.IgnoreCase).Match(viaIdentity); + if (!_match.Success) + { + throw new global::System.Exception("Invalid identity for URI '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.EventGrid/domains/{domainName}/topics/{topicName}/eventSubscriptions/{eventSubscriptionName}'"); + } + + // replace URI parameters with values from identity + var subscriptionId = _match.Groups["subscriptionId"].Value; + var resourceGroupName = _match.Groups["resourceGroupName"].Value; + var domainName = _match.Groups["domainName"].Value; + var topicName = _match.Groups["topicName"].Value; + var eventSubscriptionName = _match.Groups["eventSubscriptionName"].Value; + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + subscriptionId + + "/resourceGroups/" + + resourceGroupName + + "/providers/Microsoft.EventGrid/domains/" + + domainName + + "/topics/" + + topicName + + "/eventSubscriptions/" + + eventSubscriptionName + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Method.Get, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.DomainTopicEventSubscriptionsGet_Call(request,onOk,onDefault,eventListener,sender); + } + } + + /// Actual wire call for method. + /// the prepared HttpRequestMessage to send. + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + internal async global::System.Threading.Tasks.Task DomainTopicEventSubscriptionsGet_Call(global::System.Net.Http.HttpRequestMessage request, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func onDefault, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync sender) + { + using( NoSynchronizationContext ) + { + global::System.Net.Http.HttpResponseMessage _response = null; + try + { + var sendTask = sender.SendAsync(request, eventListener); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.BeforeCall, request); if( eventListener.Token.IsCancellationRequested ) { return; } + _response = await sendTask; + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.ResponseCreated, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + var _contentType = _response.Content.Headers.ContentType?.MediaType; + + switch ( _response.StatusCode ) + { + case global::System.Net.HttpStatusCode.OK: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onOk(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.EventSubscription.FromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + default: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onDefault(_response); + break; + } + } + } + finally + { + // finally statements + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Finally, request, _response); + _response?.Dispose(); + request?.Dispose(); + } + } + } + + /// + /// Validation method for method. Call this like the actual call, but you + /// will get validation events back. + /// + /// Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription + /// ID forms part of the URI for every service call. + /// The name of the resource group within the user's subscription. + /// Name of the top level domain. + /// Name of the domain topic. + /// Name of the event 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 DomainTopicEventSubscriptionsGet_Validate(string subscriptionId, string resourceGroupName, string domainName, string topicName, string eventSubscriptionName, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener eventListener) + { + using( NoSynchronizationContext ) + { + await eventListener.AssertNotNull(nameof(subscriptionId),subscriptionId); + await eventListener.AssertNotNull(nameof(resourceGroupName),resourceGroupName); + await eventListener.AssertNotNull(nameof(domainName),domainName); + await eventListener.AssertNotNull(nameof(topicName),topicName); + await eventListener.AssertNotNull(nameof(eventSubscriptionName),eventSubscriptionName); + } + } + + /// + /// List all event subscriptions that have been created for a specific domain topic. + /// + /// Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription + /// ID forms part of the URI for every service call. + /// The name of the resource group within the user's subscription. + /// Name of the top level domain. + /// Name of the domain topic. + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task DomainTopicEventSubscriptionsList(string subscriptionId, string resourceGroupName, string domainName, string topicName, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func onDefault, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync sender) + { + var apiVersion = @"2021-10-15-preview"; + // Constant Parameters + using( NoSynchronizationContext ) + { + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + global::System.Uri.EscapeDataString(subscriptionId) + + "/resourceGroups/" + + global::System.Uri.EscapeDataString(resourceGroupName) + + "/providers/Microsoft.EventGrid/domains/" + + global::System.Uri.EscapeDataString(domainName) + + "/topics/" + + global::System.Uri.EscapeDataString(topicName) + + "/eventSubscriptions" + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Method.Get, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.DomainTopicEventSubscriptionsList_Call(request,onOk,onDefault,eventListener,sender); + } + } + + /// + /// List all event subscriptions that have been created for a specific domain topic. + /// + /// + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task DomainTopicEventSubscriptionsListViaIdentity(global::System.String viaIdentity, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func onDefault, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync sender) + { + var apiVersion = @"2021-10-15-preview"; + // Constant Parameters + using( NoSynchronizationContext ) + { + // verify that Identity format is an exact match for uri + + var _match = new global::System.Text.RegularExpressions.Regex("^/subscriptions/(?[^/]+)/resourceGroups/(?[^/]+)/providers/Microsoft.EventGrid/domains/(?[^/]+)/topics/(?[^/]+)/eventSubscriptions$", global::System.Text.RegularExpressions.RegexOptions.IgnoreCase).Match(viaIdentity); + if (!_match.Success) + { + throw new global::System.Exception("Invalid identity for URI '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.EventGrid/domains/{domainName}/topics/{topicName}/eventSubscriptions'"); + } + + // replace URI parameters with values from identity + var subscriptionId = _match.Groups["subscriptionId"].Value; + var resourceGroupName = _match.Groups["resourceGroupName"].Value; + var domainName = _match.Groups["domainName"].Value; + var topicName = _match.Groups["topicName"].Value; + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + subscriptionId + + "/resourceGroups/" + + resourceGroupName + + "/providers/Microsoft.EventGrid/domains/" + + domainName + + "/topics/" + + topicName + + "/eventSubscriptions" + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Method.Get, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.DomainTopicEventSubscriptionsList_Call(request,onOk,onDefault,eventListener,sender); + } + } + + /// Actual wire call for method. + /// the prepared HttpRequestMessage to send. + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + internal async global::System.Threading.Tasks.Task DomainTopicEventSubscriptionsList_Call(global::System.Net.Http.HttpRequestMessage request, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func onDefault, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync sender) + { + using( NoSynchronizationContext ) + { + global::System.Net.Http.HttpResponseMessage _response = null; + try + { + var sendTask = sender.SendAsync(request, eventListener); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.BeforeCall, request); if( eventListener.Token.IsCancellationRequested ) { return; } + _response = await sendTask; + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.ResponseCreated, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + var _contentType = _response.Content.Headers.ContentType?.MediaType; + + switch ( _response.StatusCode ) + { + case global::System.Net.HttpStatusCode.OK: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onOk(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.EventSubscriptionsListResult.FromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + default: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onDefault(_response); + break; + } + } + } + finally + { + // finally statements + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Finally, request, _response); + _response?.Dispose(); + request?.Dispose(); + } + } + } + + /// + /// Validation method for method. Call this like the actual call, but you + /// will get validation events back. + /// + /// Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription + /// ID forms part of the URI for every service call. + /// The name of the resource group within the user's subscription. + /// Name of the top level domain. + /// Name of the domain topic. + /// an instance that will receive events. + /// + /// A that will be complete when handling of the response is completed. + /// + internal async global::System.Threading.Tasks.Task DomainTopicEventSubscriptionsList_Validate(string subscriptionId, string resourceGroupName, string domainName, string topicName, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener eventListener) + { + using( NoSynchronizationContext ) + { + await eventListener.AssertNotNull(nameof(subscriptionId),subscriptionId); + await eventListener.AssertNotNull(nameof(resourceGroupName),resourceGroupName); + await eventListener.AssertNotNull(nameof(domainName),domainName); + await eventListener.AssertNotNull(nameof(topicName),topicName); + } + } + + /// Update an existing event subscription for a domain topic. + /// Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription + /// ID forms part of the URI for every service call. + /// The name of the resource group within the user's subscription. + /// Name of the domain. + /// Name of the topic. + /// Name of the event subscription to be updated. + /// Updated event subscription information. + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task DomainTopicEventSubscriptionsUpdate(string subscriptionId, string resourceGroupName, string domainName, string topicName, string eventSubscriptionName, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionUpdateParameters body, global::System.Func onDefault, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync sender) + { + var apiVersion = @"2021-10-15-preview"; + // Constant Parameters + using( NoSynchronizationContext ) + { + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + global::System.Uri.EscapeDataString(subscriptionId) + + "/resourceGroups/" + + global::System.Uri.EscapeDataString(resourceGroupName) + + "/providers/Microsoft.EventGrid/domains/" + + global::System.Uri.EscapeDataString(domainName) + + "/topics/" + + global::System.Uri.EscapeDataString(topicName) + + "/eventSubscriptions/" + + global::System.Uri.EscapeDataString(eventSubscriptionName) + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Method.Patch, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // set body content + request.Content = new global::System.Net.Http.StringContent(null != body ? body.ToJson(null).ToString() : @"{}", global::System.Text.Encoding.UTF8); + request.Content.Headers.ContentType = global::System.Net.Http.Headers.MediaTypeHeaderValue.Parse("application/json"); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.BodyContentSet); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.DomainTopicEventSubscriptionsUpdate_Call(request,onDefault,eventListener,sender); + } + } + + /// Update an existing event subscription for a domain topic. + /// + /// Updated event subscription information. + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task DomainTopicEventSubscriptionsUpdateViaIdentity(global::System.String viaIdentity, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionUpdateParameters body, global::System.Func onDefault, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync sender) + { + var apiVersion = @"2021-10-15-preview"; + // Constant Parameters + using( NoSynchronizationContext ) + { + // verify that Identity format is an exact match for uri + + var _match = new global::System.Text.RegularExpressions.Regex("^/subscriptions/(?[^/]+)/resourceGroups/(?[^/]+)/providers/Microsoft.EventGrid/domains/(?[^/]+)/topics/(?[^/]+)/eventSubscriptions/(?[^/]+)$", global::System.Text.RegularExpressions.RegexOptions.IgnoreCase).Match(viaIdentity); + if (!_match.Success) + { + throw new global::System.Exception("Invalid identity for URI '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.EventGrid/domains/{domainName}/topics/{topicName}/eventSubscriptions/{eventSubscriptionName}'"); + } + + // replace URI parameters with values from identity + var subscriptionId = _match.Groups["subscriptionId"].Value; + var resourceGroupName = _match.Groups["resourceGroupName"].Value; + var domainName = _match.Groups["domainName"].Value; + var topicName = _match.Groups["topicName"].Value; + var eventSubscriptionName = _match.Groups["eventSubscriptionName"].Value; + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + subscriptionId + + "/resourceGroups/" + + resourceGroupName + + "/providers/Microsoft.EventGrid/domains/" + + domainName + + "/topics/" + + topicName + + "/eventSubscriptions/" + + eventSubscriptionName + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Method.Patch, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // set body content + request.Content = new global::System.Net.Http.StringContent(null != body ? body.ToJson(null).ToString() : @"{}", global::System.Text.Encoding.UTF8); + request.Content.Headers.ContentType = global::System.Net.Http.Headers.MediaTypeHeaderValue.Parse("application/json"); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.BodyContentSet); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.DomainTopicEventSubscriptionsUpdate_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.EventGrid.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + internal async global::System.Threading.Tasks.Task DomainTopicEventSubscriptionsUpdate_Call(global::System.Net.Http.HttpRequestMessage request, global::System.Func onDefault, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync sender) + { + using( NoSynchronizationContext ) + { + global::System.Net.Http.HttpResponseMessage _response = null; + try + { + var sendTask = sender.SendAsync(request, eventListener); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.BeforeCall, request); if( eventListener.Token.IsCancellationRequested ) { return; } + _response = await sendTask; + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.ResponseCreated, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + // this operation supports x-ms-long-running-operation + var _originalUri = request.RequestUri.AbsoluteUri; + // declared final-state-via: default + var asyncOperation = _response.GetFirstHeader(@"Azure-AsyncOperation"); + var location = _response.GetFirstHeader(@"Location"); + while (request.Method == System.Net.Http.HttpMethod.Put && _response.StatusCode == global::System.Net.HttpStatusCode.OK || _response.StatusCode == global::System.Net.HttpStatusCode.Created || _response.StatusCode == global::System.Net.HttpStatusCode.Accepted ) + { + + // get the delay before polling. (default to 30 seconds if not present) + int delay = (int)(_response.Headers.RetryAfter?.Delta?.TotalSeconds ?? 30); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.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.EventGrid.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.EventGrid.Runtime.Json.JsonNode.Parse(await _response.Content.ReadAsStringAsync()) is Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Runtime.UndeclaredResponseException(_response); + } + } + + // check for terminal status code + if (_response.StatusCode == global::System.Net.HttpStatusCode.Created || _response.StatusCode == global::System.Net.HttpStatusCode.Accepted ) + { + continue; + } + // we are done polling, do a request on final target? + if (!string.IsNullOrWhiteSpace(_originalUri)) + { + // create a new request with the final uri + request = request.CloneAndDispose(new global::System.Uri(_originalUri), Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onDefault(_response); + break; + } + } + } + finally + { + // finally statements + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Finally, request, _response); + _response?.Dispose(); + request?.Dispose(); + } + } + } + + /// + /// Validation method for method. Call this like the actual call, but you + /// will get validation events back. + /// + /// Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription + /// ID forms part of the URI for every service call. + /// The name of the resource group within the user's subscription. + /// Name of the domain. + /// Name of the topic. + /// Name of the event subscription to be updated. + /// Updated event subscription information. + /// an instance that will receive events. + /// + /// A that will be complete when handling of the response is completed. + /// + internal async global::System.Threading.Tasks.Task DomainTopicEventSubscriptionsUpdate_Validate(string subscriptionId, string resourceGroupName, string domainName, string topicName, string eventSubscriptionName, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionUpdateParameters body, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener eventListener) + { + using( NoSynchronizationContext ) + { + await eventListener.AssertNotNull(nameof(subscriptionId),subscriptionId); + await eventListener.AssertNotNull(nameof(resourceGroupName),resourceGroupName); + await eventListener.AssertNotNull(nameof(domainName),domainName); + await eventListener.AssertNotNull(nameof(topicName),topicName); + await eventListener.AssertNotNull(nameof(eventSubscriptionName),eventSubscriptionName); + await eventListener.AssertNotNull(nameof(body), body); + await eventListener.AssertObjectIsValid(nameof(body), body); + } + } + + /// + /// Asynchronously creates or updates a new domain topic with the specified parameters. + /// + /// Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription + /// ID forms part of the URI for every service call. + /// The name of the resource group within the user's subscription. + /// Name of the domain. + /// Name of the domain topic. + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task DomainTopicsCreateOrUpdate(string subscriptionId, string resourceGroupName, string domainName, string domainTopicName, global::System.Func onDefault, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync sender) + { + var apiVersion = @"2021-10-15-preview"; + // Constant Parameters + using( NoSynchronizationContext ) + { + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + global::System.Uri.EscapeDataString(subscriptionId) + + "/resourceGroups/" + + global::System.Uri.EscapeDataString(resourceGroupName) + + "/providers/Microsoft.EventGrid/domains/" + + global::System.Uri.EscapeDataString(domainName) + + "/topics/" + + global::System.Uri.EscapeDataString(domainTopicName) + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Method.Put, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.DomainTopicsCreateOrUpdate_Call(request,onDefault,eventListener,sender); + } + } + + /// + /// Asynchronously creates or updates a new domain topic with the specified parameters. + /// + /// + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task DomainTopicsCreateOrUpdateViaIdentity(global::System.String viaIdentity, global::System.Func onDefault, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync sender) + { + var apiVersion = @"2021-10-15-preview"; + // Constant Parameters + using( NoSynchronizationContext ) + { + // verify that Identity format is an exact match for uri + + var _match = new global::System.Text.RegularExpressions.Regex("^/subscriptions/(?[^/]+)/resourceGroups/(?[^/]+)/providers/Microsoft.EventGrid/domains/(?[^/]+)/topics/(?[^/]+)$", global::System.Text.RegularExpressions.RegexOptions.IgnoreCase).Match(viaIdentity); + if (!_match.Success) + { + throw new global::System.Exception("Invalid identity for URI '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.EventGrid/domains/{domainName}/topics/{domainTopicName}'"); + } + + // replace URI parameters with values from identity + var subscriptionId = _match.Groups["subscriptionId"].Value; + var resourceGroupName = _match.Groups["resourceGroupName"].Value; + var domainName = _match.Groups["domainName"].Value; + var domainTopicName = _match.Groups["domainTopicName"].Value; + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + subscriptionId + + "/resourceGroups/" + + resourceGroupName + + "/providers/Microsoft.EventGrid/domains/" + + domainName + + "/topics/" + + domainTopicName + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Method.Put, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.DomainTopicsCreateOrUpdate_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.EventGrid.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + internal async global::System.Threading.Tasks.Task DomainTopicsCreateOrUpdate_Call(global::System.Net.Http.HttpRequestMessage request, global::System.Func onDefault, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync sender) + { + using( NoSynchronizationContext ) + { + global::System.Net.Http.HttpResponseMessage _response = null; + try + { + var sendTask = sender.SendAsync(request, eventListener); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.BeforeCall, request); if( eventListener.Token.IsCancellationRequested ) { return; } + _response = await sendTask; + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.ResponseCreated, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + // this operation supports x-ms-long-running-operation + var _originalUri = request.RequestUri.AbsoluteUri; + // declared final-state-via: default + var asyncOperation = _response.GetFirstHeader(@"Azure-AsyncOperation"); + var location = _response.GetFirstHeader(@"Location"); + while (request.Method == System.Net.Http.HttpMethod.Put && _response.StatusCode == global::System.Net.HttpStatusCode.OK || _response.StatusCode == global::System.Net.HttpStatusCode.Created || _response.StatusCode == global::System.Net.HttpStatusCode.Accepted ) + { + + // get the delay before polling. (default to 30 seconds if not present) + int delay = (int)(_response.Headers.RetryAfter?.Delta?.TotalSeconds ?? 30); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.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.EventGrid.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.EventGrid.Runtime.Json.JsonNode.Parse(await _response.Content.ReadAsStringAsync()) is Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Runtime.UndeclaredResponseException(_response); + } + } + + // check for terminal status code + if (_response.StatusCode == global::System.Net.HttpStatusCode.Created || _response.StatusCode == global::System.Net.HttpStatusCode.Accepted ) + { + continue; + } + // we are done polling, do a request on final target? + if (!string.IsNullOrWhiteSpace(_originalUri)) + { + // create a new request with the final uri + request = request.CloneAndDispose(new global::System.Uri(_originalUri), Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onDefault(_response); + break; + } + } + } + finally + { + // finally statements + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Finally, request, _response); + _response?.Dispose(); + request?.Dispose(); + } + } + } + + /// + /// Validation method for method. Call this like the actual call, but you will get + /// validation events back. + /// + /// Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription + /// ID forms part of the URI for every service call. + /// The name of the resource group within the user's subscription. + /// Name of the domain. + /// Name of the domain topic. + /// an instance that will receive events. + /// + /// A that will be complete when handling of the response is completed. + /// + internal async global::System.Threading.Tasks.Task DomainTopicsCreateOrUpdate_Validate(string subscriptionId, string resourceGroupName, string domainName, string domainTopicName, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener eventListener) + { + using( NoSynchronizationContext ) + { + await eventListener.AssertNotNull(nameof(subscriptionId),subscriptionId); + await eventListener.AssertNotNull(nameof(resourceGroupName),resourceGroupName); + await eventListener.AssertNotNull(nameof(domainName),domainName); + await eventListener.AssertNotNull(nameof(domainTopicName),domainTopicName); + } + } + + /// Delete existing domain topic. + /// Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription + /// ID forms part of the URI for every service call. + /// The name of the resource group within the user's subscription. + /// Name of the domain. + /// Name of the domain topic. + /// 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.EventGrid.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task DomainTopicsDelete(string subscriptionId, string resourceGroupName, string domainName, string domainTopicName, global::System.Func onOk, global::System.Func onNoContent, global::System.Func onDefault, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync sender) + { + var apiVersion = @"2021-10-15-preview"; + // Constant Parameters + using( NoSynchronizationContext ) + { + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + global::System.Uri.EscapeDataString(subscriptionId) + + "/resourceGroups/" + + global::System.Uri.EscapeDataString(resourceGroupName) + + "/providers/Microsoft.EventGrid/domains/" + + global::System.Uri.EscapeDataString(domainName) + + "/topics/" + + global::System.Uri.EscapeDataString(domainTopicName) + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Method.Delete, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.DomainTopicsDelete_Call(request,onOk,onNoContent,onDefault,eventListener,sender); + } + } + + /// Delete existing domain topic. + /// + /// 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.EventGrid.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task DomainTopicsDeleteViaIdentity(global::System.String viaIdentity, global::System.Func onOk, global::System.Func onNoContent, global::System.Func onDefault, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync sender) + { + var apiVersion = @"2021-10-15-preview"; + // Constant Parameters + using( NoSynchronizationContext ) + { + // verify that Identity format is an exact match for uri + + var _match = new global::System.Text.RegularExpressions.Regex("^/subscriptions/(?[^/]+)/resourceGroups/(?[^/]+)/providers/Microsoft.EventGrid/domains/(?[^/]+)/topics/(?[^/]+)$", global::System.Text.RegularExpressions.RegexOptions.IgnoreCase).Match(viaIdentity); + if (!_match.Success) + { + throw new global::System.Exception("Invalid identity for URI '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.EventGrid/domains/{domainName}/topics/{domainTopicName}'"); + } + + // replace URI parameters with values from identity + var subscriptionId = _match.Groups["subscriptionId"].Value; + var resourceGroupName = _match.Groups["resourceGroupName"].Value; + var domainName = _match.Groups["domainName"].Value; + var domainTopicName = _match.Groups["domainTopicName"].Value; + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + subscriptionId + + "/resourceGroups/" + + resourceGroupName + + "/providers/Microsoft.EventGrid/domains/" + + domainName + + "/topics/" + + domainTopicName + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Method.Delete, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.DomainTopicsDelete_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.EventGrid.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + internal async global::System.Threading.Tasks.Task DomainTopicsDelete_Call(global::System.Net.Http.HttpRequestMessage request, global::System.Func onOk, global::System.Func onNoContent, global::System.Func onDefault, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync sender) + { + using( NoSynchronizationContext ) + { + global::System.Net.Http.HttpResponseMessage _response = null; + try + { + var sendTask = sender.SendAsync(request, eventListener); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.BeforeCall, request); if( eventListener.Token.IsCancellationRequested ) { return; } + _response = await sendTask; + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.ResponseCreated, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + // this operation supports x-ms-long-running-operation + var _originalUri = request.RequestUri.AbsoluteUri; + // declared final-state-via: default + var _finalUri = _response.GetFirstHeader(@"Location"); + var asyncOperation = _response.GetFirstHeader(@"Azure-AsyncOperation"); + var location = _response.GetFirstHeader(@"Location"); + while (request.Method == System.Net.Http.HttpMethod.Put && _response.StatusCode == global::System.Net.HttpStatusCode.OK || _response.StatusCode == global::System.Net.HttpStatusCode.Created || _response.StatusCode == global::System.Net.HttpStatusCode.Accepted ) + { + + // get the delay before polling. (default to 30 seconds if not present) + int delay = (int)(_response.Headers.RetryAfter?.Delta?.TotalSeconds ?? 30); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.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.EventGrid.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.EventGrid.Runtime.Json.JsonNode.Parse(await _response.Content.ReadAsStringAsync()) is Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Runtime.UndeclaredResponseException(_response); + } + } + + // check for terminal status code + if (_response.StatusCode == global::System.Net.HttpStatusCode.Created || _response.StatusCode == global::System.Net.HttpStatusCode.Accepted ) + { + continue; + } + // we are done polling, do a request on final target? + if (!string.IsNullOrWhiteSpace(_finalUri)) + { + // create a new request with the final uri + request = request.CloneAndDispose(new global::System.Uri(_finalUri), Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.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.EventGrid.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onNoContent(_response); + break; + } + default: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onDefault(_response); + break; + } + } + } + finally + { + // finally statements + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Finally, request, _response); + _response?.Dispose(); + request?.Dispose(); + } + } + } + + /// + /// Validation method for method. Call this like the actual call, but you will get validation + /// events back. + /// + /// Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription + /// ID forms part of the URI for every service call. + /// The name of the resource group within the user's subscription. + /// Name of the domain. + /// Name of the domain topic. + /// an instance that will receive events. + /// + /// A that will be complete when handling of the response is completed. + /// + internal async global::System.Threading.Tasks.Task DomainTopicsDelete_Validate(string subscriptionId, string resourceGroupName, string domainName, string domainTopicName, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener eventListener) + { + using( NoSynchronizationContext ) + { + await eventListener.AssertNotNull(nameof(subscriptionId),subscriptionId); + await eventListener.AssertNotNull(nameof(resourceGroupName),resourceGroupName); + await eventListener.AssertNotNull(nameof(domainName),domainName); + await eventListener.AssertNotNull(nameof(domainTopicName),domainTopicName); + } + } + + /// Get properties of a domain topic. + /// Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription + /// ID forms part of the URI for every service call. + /// The name of the resource group within the user's subscription. + /// Name of the domain. + /// Name of the topic. + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task DomainTopicsGet(string subscriptionId, string resourceGroupName, string domainName, string domainTopicName, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func onDefault, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync sender) + { + var apiVersion = @"2021-10-15-preview"; + // Constant Parameters + using( NoSynchronizationContext ) + { + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + global::System.Uri.EscapeDataString(subscriptionId) + + "/resourceGroups/" + + global::System.Uri.EscapeDataString(resourceGroupName) + + "/providers/Microsoft.EventGrid/domains/" + + global::System.Uri.EscapeDataString(domainName) + + "/topics/" + + global::System.Uri.EscapeDataString(domainTopicName) + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Method.Get, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.DomainTopicsGet_Call(request,onOk,onDefault,eventListener,sender); + } + } + + /// Get properties of a domain topic. + /// + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task DomainTopicsGetViaIdentity(global::System.String viaIdentity, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func onDefault, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync sender) + { + var apiVersion = @"2021-10-15-preview"; + // Constant Parameters + using( NoSynchronizationContext ) + { + // verify that Identity format is an exact match for uri + + var _match = new global::System.Text.RegularExpressions.Regex("^/subscriptions/(?[^/]+)/resourceGroups/(?[^/]+)/providers/Microsoft.EventGrid/domains/(?[^/]+)/topics/(?[^/]+)$", global::System.Text.RegularExpressions.RegexOptions.IgnoreCase).Match(viaIdentity); + if (!_match.Success) + { + throw new global::System.Exception("Invalid identity for URI '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.EventGrid/domains/{domainName}/topics/{domainTopicName}'"); + } + + // replace URI parameters with values from identity + var subscriptionId = _match.Groups["subscriptionId"].Value; + var resourceGroupName = _match.Groups["resourceGroupName"].Value; + var domainName = _match.Groups["domainName"].Value; + var domainTopicName = _match.Groups["domainTopicName"].Value; + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + subscriptionId + + "/resourceGroups/" + + resourceGroupName + + "/providers/Microsoft.EventGrid/domains/" + + domainName + + "/topics/" + + domainTopicName + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Method.Get, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.DomainTopicsGet_Call(request,onOk,onDefault,eventListener,sender); + } + } + + /// Actual wire call for method. + /// the prepared HttpRequestMessage to send. + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + internal async global::System.Threading.Tasks.Task DomainTopicsGet_Call(global::System.Net.Http.HttpRequestMessage request, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func onDefault, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync sender) + { + using( NoSynchronizationContext ) + { + global::System.Net.Http.HttpResponseMessage _response = null; + try + { + var sendTask = sender.SendAsync(request, eventListener); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.BeforeCall, request); if( eventListener.Token.IsCancellationRequested ) { return; } + _response = await sendTask; + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.ResponseCreated, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + var _contentType = _response.Content.Headers.ContentType?.MediaType; + + switch ( _response.StatusCode ) + { + case global::System.Net.HttpStatusCode.OK: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onOk(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.DomainTopic.FromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + default: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onDefault(_response); + break; + } + } + } + finally + { + // finally statements + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Finally, request, _response); + _response?.Dispose(); + request?.Dispose(); + } + } + } + + /// + /// Validation method for method. Call this like the actual call, but you will get validation + /// events back. + /// + /// Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription + /// ID forms part of the URI for every service call. + /// The name of the resource group within the user's subscription. + /// Name of the domain. + /// Name of the topic. + /// an instance that will receive events. + /// + /// A that will be complete when handling of the response is completed. + /// + internal async global::System.Threading.Tasks.Task DomainTopicsGet_Validate(string subscriptionId, string resourceGroupName, string domainName, string domainTopicName, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener eventListener) + { + using( NoSynchronizationContext ) + { + await eventListener.AssertNotNull(nameof(subscriptionId),subscriptionId); + await eventListener.AssertNotNull(nameof(resourceGroupName),resourceGroupName); + await eventListener.AssertNotNull(nameof(domainName),domainName); + await eventListener.AssertNotNull(nameof(domainTopicName),domainTopicName); + } + } + + /// List all the topics in a domain. + /// Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription + /// ID forms part of the URI for every service call. + /// The name of the resource group within the user's subscription. + /// Domain name. + /// The query used to filter the search results using OData syntax. Filtering is permitted on the 'name' + /// property only and with limited number of OData operations. These operations are: the 'contains' function as well as the + /// following logical operations: not, and, or, eq (for equal), and ne (for not equal). No arithmetic operations are supported. + /// The following is a valid filter example: $filter=contains(namE, 'PATTERN') and name ne 'PATTERN-1'. The following is not + /// a valid filter example: $filter=location eq 'westus'. + /// The number of results to return per page for the list operation. Valid range for top parameter is 1 + /// to 100. If not specified, the default number of results to be returned is 20 items per page. + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task DomainTopicsListByDomain(string subscriptionId, string resourceGroupName, string domainName, string Filter, int? Top, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func onDefault, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync sender) + { + var apiVersion = @"2021-10-15-preview"; + // Constant Parameters + using( NoSynchronizationContext ) + { + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + global::System.Uri.EscapeDataString(subscriptionId) + + "/resourceGroups/" + + global::System.Uri.EscapeDataString(resourceGroupName) + + "/providers/Microsoft.EventGrid/domains/" + + global::System.Uri.EscapeDataString(domainName) + + "/topics" + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + + "&" + + (string.IsNullOrEmpty(Filter) ? global::System.String.Empty : "$filter=" + global::System.Uri.EscapeDataString(Filter)) + + "&" + + (null == Top ? global::System.String.Empty : "$top=" + global::System.Uri.EscapeDataString(Top.ToString())) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Method.Get, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.DomainTopicsListByDomain_Call(request,onOk,onDefault,eventListener,sender); + } + } + + /// List all the topics in a domain. + /// + /// The query used to filter the search results using OData syntax. Filtering is permitted on the 'name' + /// property only and with limited number of OData operations. These operations are: the 'contains' function as well as the + /// following logical operations: not, and, or, eq (for equal), and ne (for not equal). No arithmetic operations are supported. + /// The following is a valid filter example: $filter=contains(namE, 'PATTERN') and name ne 'PATTERN-1'. The following is not + /// a valid filter example: $filter=location eq 'westus'. + /// The number of results to return per page for the list operation. Valid range for top parameter is 1 + /// to 100. If not specified, the default number of results to be returned is 20 items per page. + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task DomainTopicsListByDomainViaIdentity(global::System.String viaIdentity, string Filter, int? Top, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func onDefault, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync sender) + { + var apiVersion = @"2021-10-15-preview"; + // Constant Parameters + using( NoSynchronizationContext ) + { + // verify that Identity format is an exact match for uri + + var _match = new global::System.Text.RegularExpressions.Regex("^/subscriptions/(?[^/]+)/resourceGroups/(?[^/]+)/providers/Microsoft.EventGrid/domains/(?[^/]+)/topics$", global::System.Text.RegularExpressions.RegexOptions.IgnoreCase).Match(viaIdentity); + if (!_match.Success) + { + throw new global::System.Exception("Invalid identity for URI '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.EventGrid/domains/{domainName}/topics'"); + } + + // replace URI parameters with values from identity + var subscriptionId = _match.Groups["subscriptionId"].Value; + var resourceGroupName = _match.Groups["resourceGroupName"].Value; + var domainName = _match.Groups["domainName"].Value; + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + subscriptionId + + "/resourceGroups/" + + resourceGroupName + + "/providers/Microsoft.EventGrid/domains/" + + domainName + + "/topics" + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + + "&" + + (string.IsNullOrEmpty(Filter) ? global::System.String.Empty : "$filter=" + global::System.Uri.EscapeDataString(Filter)) + + "&" + + (null == Top ? global::System.String.Empty : "$top=" + global::System.Uri.EscapeDataString(Top.ToString())) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Method.Get, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.DomainTopicsListByDomain_Call(request,onOk,onDefault,eventListener,sender); + } + } + + /// Actual wire call for method. + /// the prepared HttpRequestMessage to send. + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + internal async global::System.Threading.Tasks.Task DomainTopicsListByDomain_Call(global::System.Net.Http.HttpRequestMessage request, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func onDefault, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync sender) + { + using( NoSynchronizationContext ) + { + global::System.Net.Http.HttpResponseMessage _response = null; + try + { + var sendTask = sender.SendAsync(request, eventListener); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.BeforeCall, request); if( eventListener.Token.IsCancellationRequested ) { return; } + _response = await sendTask; + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.ResponseCreated, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + var _contentType = _response.Content.Headers.ContentType?.MediaType; + + switch ( _response.StatusCode ) + { + case global::System.Net.HttpStatusCode.OK: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onOk(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.DomainTopicsListResult.FromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + default: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onDefault(_response); + break; + } + } + } + finally + { + // finally statements + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Finally, request, _response); + _response?.Dispose(); + request?.Dispose(); + } + } + } + + /// + /// Validation method for method. Call this like the actual call, but you will get + /// validation events back. + /// + /// Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription + /// ID forms part of the URI for every service call. + /// The name of the resource group within the user's subscription. + /// Domain name. + /// The query used to filter the search results using OData syntax. Filtering is permitted on the 'name' + /// property only and with limited number of OData operations. These operations are: the 'contains' function as well as the + /// following logical operations: not, and, or, eq (for equal), and ne (for not equal). No arithmetic operations are supported. + /// The following is a valid filter example: $filter=contains(namE, 'PATTERN') and name ne 'PATTERN-1'. The following is not + /// a valid filter example: $filter=location eq 'westus'. + /// The number of results to return per page for the list operation. Valid range for top parameter is 1 + /// to 100. If not specified, the default number of results to be returned is 20 items per page. + /// an instance that will receive events. + /// + /// A that will be complete when handling of the response is completed. + /// + internal async global::System.Threading.Tasks.Task DomainTopicsListByDomain_Validate(string subscriptionId, string resourceGroupName, string domainName, string Filter, int? Top, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener eventListener) + { + using( NoSynchronizationContext ) + { + await eventListener.AssertNotNull(nameof(subscriptionId),subscriptionId); + await eventListener.AssertNotNull(nameof(resourceGroupName),resourceGroupName); + await eventListener.AssertNotNull(nameof(domainName),domainName); + await eventListener.AssertNotNull(nameof(Filter),Filter); + } + } + + /// Asynchronously creates or updates a new domain with the specified parameters. + /// Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription + /// ID forms part of the URI for every service call. + /// The name of the resource group within the user's subscription. + /// Name of the domain. + /// Domain information. + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task DomainsCreateOrUpdate(string subscriptionId, string resourceGroupName, string domainName, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDomain body, global::System.Func onDefault, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync sender) + { + var apiVersion = @"2021-10-15-preview"; + // Constant Parameters + using( NoSynchronizationContext ) + { + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + global::System.Uri.EscapeDataString(subscriptionId) + + "/resourceGroups/" + + global::System.Uri.EscapeDataString(resourceGroupName) + + "/providers/Microsoft.EventGrid/domains/" + + global::System.Uri.EscapeDataString(domainName) + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Method.Put, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // set body content + request.Content = new global::System.Net.Http.StringContent(null != body ? body.ToJson(null).ToString() : @"{}", global::System.Text.Encoding.UTF8); + request.Content.Headers.ContentType = global::System.Net.Http.Headers.MediaTypeHeaderValue.Parse("application/json"); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.BodyContentSet); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.DomainsCreateOrUpdate_Call(request,onDefault,eventListener,sender); + } + } + + /// Asynchronously creates or updates a new domain with the specified parameters. + /// + /// Domain information. + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task DomainsCreateOrUpdateViaIdentity(global::System.String viaIdentity, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDomain body, global::System.Func onDefault, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync sender) + { + var apiVersion = @"2021-10-15-preview"; + // Constant Parameters + using( NoSynchronizationContext ) + { + // verify that Identity format is an exact match for uri + + var _match = new global::System.Text.RegularExpressions.Regex("^/subscriptions/(?[^/]+)/resourceGroups/(?[^/]+)/providers/Microsoft.EventGrid/domains/(?[^/]+)$", global::System.Text.RegularExpressions.RegexOptions.IgnoreCase).Match(viaIdentity); + if (!_match.Success) + { + throw new global::System.Exception("Invalid identity for URI '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.EventGrid/domains/{domainName}'"); + } + + // replace URI parameters with values from identity + var subscriptionId = _match.Groups["subscriptionId"].Value; + var resourceGroupName = _match.Groups["resourceGroupName"].Value; + var domainName = _match.Groups["domainName"].Value; + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + subscriptionId + + "/resourceGroups/" + + resourceGroupName + + "/providers/Microsoft.EventGrid/domains/" + + domainName + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Method.Put, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // set body content + request.Content = new global::System.Net.Http.StringContent(null != body ? body.ToJson(null).ToString() : @"{}", global::System.Text.Encoding.UTF8); + request.Content.Headers.ContentType = global::System.Net.Http.Headers.MediaTypeHeaderValue.Parse("application/json"); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.BodyContentSet); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.DomainsCreateOrUpdate_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.EventGrid.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + internal async global::System.Threading.Tasks.Task DomainsCreateOrUpdate_Call(global::System.Net.Http.HttpRequestMessage request, global::System.Func onDefault, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync sender) + { + using( NoSynchronizationContext ) + { + global::System.Net.Http.HttpResponseMessage _response = null; + try + { + var sendTask = sender.SendAsync(request, eventListener); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.BeforeCall, request); if( eventListener.Token.IsCancellationRequested ) { return; } + _response = await sendTask; + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.ResponseCreated, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + // this operation supports x-ms-long-running-operation + var _originalUri = request.RequestUri.AbsoluteUri; + // declared final-state-via: default + var asyncOperation = _response.GetFirstHeader(@"Azure-AsyncOperation"); + var location = _response.GetFirstHeader(@"Location"); + while (request.Method == System.Net.Http.HttpMethod.Put && _response.StatusCode == global::System.Net.HttpStatusCode.OK || _response.StatusCode == global::System.Net.HttpStatusCode.Created || _response.StatusCode == global::System.Net.HttpStatusCode.Accepted ) + { + + // get the delay before polling. (default to 30 seconds if not present) + int delay = (int)(_response.Headers.RetryAfter?.Delta?.TotalSeconds ?? 30); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.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.EventGrid.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.EventGrid.Runtime.Json.JsonNode.Parse(await _response.Content.ReadAsStringAsync()) is Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Runtime.UndeclaredResponseException(_response); + } + } + + // check for terminal status code + if (_response.StatusCode == global::System.Net.HttpStatusCode.Created || _response.StatusCode == global::System.Net.HttpStatusCode.Accepted ) + { + continue; + } + // we are done polling, do a request on final target? + if (!string.IsNullOrWhiteSpace(_originalUri)) + { + // create a new request with the final uri + request = request.CloneAndDispose(new global::System.Uri(_originalUri), Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onDefault(_response); + break; + } + } + } + finally + { + // finally statements + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Finally, request, _response); + _response?.Dispose(); + request?.Dispose(); + } + } + } + + /// + /// Validation method for method. Call this like the actual call, but you will get validation + /// events back. + /// + /// Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription + /// ID forms part of the URI for every service call. + /// The name of the resource group within the user's subscription. + /// Name of the domain. + /// Domain information. + /// an instance that will receive events. + /// + /// A that will be complete when handling of the response is completed. + /// + internal async global::System.Threading.Tasks.Task DomainsCreateOrUpdate_Validate(string subscriptionId, string resourceGroupName, string domainName, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDomain body, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener eventListener) + { + using( NoSynchronizationContext ) + { + await eventListener.AssertNotNull(nameof(subscriptionId),subscriptionId); + await eventListener.AssertNotNull(nameof(resourceGroupName),resourceGroupName); + await eventListener.AssertNotNull(nameof(domainName),domainName); + await eventListener.AssertNotNull(nameof(body), body); + await eventListener.AssertObjectIsValid(nameof(body), body); + } + } + + /// Delete existing domain. + /// Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription + /// ID forms part of the URI for every service call. + /// The name of the resource group within the user's subscription. + /// Name of the domain. + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns 204 (NoContent). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task DomainsDelete(string subscriptionId, string resourceGroupName, string domainName, global::System.Func onOk, global::System.Func onNoContent, global::System.Func onDefault, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync sender) + { + var apiVersion = @"2021-10-15-preview"; + // Constant Parameters + using( NoSynchronizationContext ) + { + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + global::System.Uri.EscapeDataString(subscriptionId) + + "/resourceGroups/" + + global::System.Uri.EscapeDataString(resourceGroupName) + + "/providers/Microsoft.EventGrid/domains/" + + global::System.Uri.EscapeDataString(domainName) + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Method.Delete, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.DomainsDelete_Call(request,onOk,onNoContent,onDefault,eventListener,sender); + } + } + + /// Delete existing domain. + /// + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns 204 (NoContent). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task DomainsDeleteViaIdentity(global::System.String viaIdentity, global::System.Func onOk, global::System.Func onNoContent, global::System.Func onDefault, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync sender) + { + var apiVersion = @"2021-10-15-preview"; + // Constant Parameters + using( NoSynchronizationContext ) + { + // verify that Identity format is an exact match for uri + + var _match = new global::System.Text.RegularExpressions.Regex("^/subscriptions/(?[^/]+)/resourceGroups/(?[^/]+)/providers/Microsoft.EventGrid/domains/(?[^/]+)$", global::System.Text.RegularExpressions.RegexOptions.IgnoreCase).Match(viaIdentity); + if (!_match.Success) + { + throw new global::System.Exception("Invalid identity for URI '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.EventGrid/domains/{domainName}'"); + } + + // replace URI parameters with values from identity + var subscriptionId = _match.Groups["subscriptionId"].Value; + var resourceGroupName = _match.Groups["resourceGroupName"].Value; + var domainName = _match.Groups["domainName"].Value; + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + subscriptionId + + "/resourceGroups/" + + resourceGroupName + + "/providers/Microsoft.EventGrid/domains/" + + domainName + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Method.Delete, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.DomainsDelete_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.EventGrid.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + internal async global::System.Threading.Tasks.Task DomainsDelete_Call(global::System.Net.Http.HttpRequestMessage request, global::System.Func onOk, global::System.Func onNoContent, global::System.Func onDefault, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync sender) + { + using( NoSynchronizationContext ) + { + global::System.Net.Http.HttpResponseMessage _response = null; + try + { + var sendTask = sender.SendAsync(request, eventListener); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.BeforeCall, request); if( eventListener.Token.IsCancellationRequested ) { return; } + _response = await sendTask; + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.ResponseCreated, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + // this operation supports x-ms-long-running-operation + var _originalUri = request.RequestUri.AbsoluteUri; + // declared final-state-via: default + var _finalUri = _response.GetFirstHeader(@"Location"); + var asyncOperation = _response.GetFirstHeader(@"Azure-AsyncOperation"); + var location = _response.GetFirstHeader(@"Location"); + while (request.Method == System.Net.Http.HttpMethod.Put && _response.StatusCode == global::System.Net.HttpStatusCode.OK || _response.StatusCode == global::System.Net.HttpStatusCode.Created || _response.StatusCode == global::System.Net.HttpStatusCode.Accepted ) + { + + // get the delay before polling. (default to 30 seconds if not present) + int delay = (int)(_response.Headers.RetryAfter?.Delta?.TotalSeconds ?? 30); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.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.EventGrid.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.EventGrid.Runtime.Json.JsonNode.Parse(await _response.Content.ReadAsStringAsync()) is Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Runtime.UndeclaredResponseException(_response); + } + } + + // check for terminal status code + if (_response.StatusCode == global::System.Net.HttpStatusCode.Created || _response.StatusCode == global::System.Net.HttpStatusCode.Accepted ) + { + continue; + } + // we are done polling, do a request on final target? + if (!string.IsNullOrWhiteSpace(_finalUri)) + { + // create a new request with the final uri + request = request.CloneAndDispose(new global::System.Uri(_finalUri), Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.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.EventGrid.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onNoContent(_response); + break; + } + default: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onDefault(_response); + break; + } + } + } + finally + { + // finally statements + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Finally, request, _response); + _response?.Dispose(); + request?.Dispose(); + } + } + } + + /// + /// Validation method for method. Call this like the actual call, but you will get validation + /// events back. + /// + /// Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription + /// ID forms part of the URI for every service call. + /// The name of the resource group within the user's subscription. + /// Name of the domain. + /// an instance that will receive events. + /// + /// A that will be complete when handling of the response is completed. + /// + internal async global::System.Threading.Tasks.Task DomainsDelete_Validate(string subscriptionId, string resourceGroupName, string domainName, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener eventListener) + { + using( NoSynchronizationContext ) + { + await eventListener.AssertNotNull(nameof(subscriptionId),subscriptionId); + await eventListener.AssertNotNull(nameof(resourceGroupName),resourceGroupName); + await eventListener.AssertNotNull(nameof(domainName),domainName); + } + } + + /// Get properties of a domain. + /// Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription + /// ID forms part of the URI for every service call. + /// The name of the resource group within the user's subscription. + /// Name of the domain. + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task DomainsGet(string subscriptionId, string resourceGroupName, string domainName, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func onDefault, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync sender) + { + var apiVersion = @"2021-10-15-preview"; + // Constant Parameters + using( NoSynchronizationContext ) + { + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + global::System.Uri.EscapeDataString(subscriptionId) + + "/resourceGroups/" + + global::System.Uri.EscapeDataString(resourceGroupName) + + "/providers/Microsoft.EventGrid/domains/" + + global::System.Uri.EscapeDataString(domainName) + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Method.Get, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.DomainsGet_Call(request,onOk,onDefault,eventListener,sender); + } + } + + /// Get properties of a domain. + /// + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task DomainsGetViaIdentity(global::System.String viaIdentity, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func onDefault, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync sender) + { + var apiVersion = @"2021-10-15-preview"; + // Constant Parameters + using( NoSynchronizationContext ) + { + // verify that Identity format is an exact match for uri + + var _match = new global::System.Text.RegularExpressions.Regex("^/subscriptions/(?[^/]+)/resourceGroups/(?[^/]+)/providers/Microsoft.EventGrid/domains/(?[^/]+)$", global::System.Text.RegularExpressions.RegexOptions.IgnoreCase).Match(viaIdentity); + if (!_match.Success) + { + throw new global::System.Exception("Invalid identity for URI '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.EventGrid/domains/{domainName}'"); + } + + // replace URI parameters with values from identity + var subscriptionId = _match.Groups["subscriptionId"].Value; + var resourceGroupName = _match.Groups["resourceGroupName"].Value; + var domainName = _match.Groups["domainName"].Value; + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + subscriptionId + + "/resourceGroups/" + + resourceGroupName + + "/providers/Microsoft.EventGrid/domains/" + + domainName + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Method.Get, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.DomainsGet_Call(request,onOk,onDefault,eventListener,sender); + } + } + + /// Actual wire call for method. + /// the prepared HttpRequestMessage to send. + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + internal async global::System.Threading.Tasks.Task DomainsGet_Call(global::System.Net.Http.HttpRequestMessage request, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func onDefault, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync sender) + { + using( NoSynchronizationContext ) + { + global::System.Net.Http.HttpResponseMessage _response = null; + try + { + var sendTask = sender.SendAsync(request, eventListener); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.BeforeCall, request); if( eventListener.Token.IsCancellationRequested ) { return; } + _response = await sendTask; + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.ResponseCreated, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + var _contentType = _response.Content.Headers.ContentType?.MediaType; + + switch ( _response.StatusCode ) + { + case global::System.Net.HttpStatusCode.OK: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onOk(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.Domain.FromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + default: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onDefault(_response); + break; + } + } + } + finally + { + // finally statements + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Finally, request, _response); + _response?.Dispose(); + request?.Dispose(); + } + } + } + + /// + /// Validation method for method. Call this like the actual call, but you will get validation events + /// back. + /// + /// Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription + /// ID forms part of the URI for every service call. + /// The name of the resource group within the user's subscription. + /// Name of the domain. + /// an instance that will receive events. + /// + /// A that will be complete when handling of the response is completed. + /// + internal async global::System.Threading.Tasks.Task DomainsGet_Validate(string subscriptionId, string resourceGroupName, string domainName, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener eventListener) + { + using( NoSynchronizationContext ) + { + await eventListener.AssertNotNull(nameof(subscriptionId),subscriptionId); + await eventListener.AssertNotNull(nameof(resourceGroupName),resourceGroupName); + await eventListener.AssertNotNull(nameof(domainName),domainName); + } + } + + /// List all the domains under a resource group. + /// Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription + /// ID forms part of the URI for every service call. + /// The name of the resource group within the user's subscription. + /// The query used to filter the search results using OData syntax. Filtering is permitted on the 'name' + /// property only and with limited number of OData operations. These operations are: the 'contains' function as well as the + /// following logical operations: not, and, or, eq (for equal), and ne (for not equal). No arithmetic operations are supported. + /// The following is a valid filter example: $filter=contains(namE, 'PATTERN') and name ne 'PATTERN-1'. The following is not + /// a valid filter example: $filter=location eq 'westus'. + /// The number of results to return per page for the list operation. Valid range for top parameter is 1 + /// to 100. If not specified, the default number of results to be returned is 20 items per page. + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task DomainsListByResourceGroup(string subscriptionId, string resourceGroupName, string Filter, int? Top, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func onDefault, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync sender) + { + var apiVersion = @"2021-10-15-preview"; + // Constant Parameters + using( NoSynchronizationContext ) + { + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + global::System.Uri.EscapeDataString(subscriptionId) + + "/resourceGroups/" + + global::System.Uri.EscapeDataString(resourceGroupName) + + "/providers/Microsoft.EventGrid/domains" + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + + "&" + + (string.IsNullOrEmpty(Filter) ? global::System.String.Empty : "$filter=" + global::System.Uri.EscapeDataString(Filter)) + + "&" + + (null == Top ? global::System.String.Empty : "$top=" + global::System.Uri.EscapeDataString(Top.ToString())) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Method.Get, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.DomainsListByResourceGroup_Call(request,onOk,onDefault,eventListener,sender); + } + } + + /// List all the domains under a resource group. + /// + /// The query used to filter the search results using OData syntax. Filtering is permitted on the 'name' + /// property only and with limited number of OData operations. These operations are: the 'contains' function as well as the + /// following logical operations: not, and, or, eq (for equal), and ne (for not equal). No arithmetic operations are supported. + /// The following is a valid filter example: $filter=contains(namE, 'PATTERN') and name ne 'PATTERN-1'. The following is not + /// a valid filter example: $filter=location eq 'westus'. + /// The number of results to return per page for the list operation. Valid range for top parameter is 1 + /// to 100. If not specified, the default number of results to be returned is 20 items per page. + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task DomainsListByResourceGroupViaIdentity(global::System.String viaIdentity, string Filter, int? Top, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func onDefault, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync sender) + { + var apiVersion = @"2021-10-15-preview"; + // Constant Parameters + using( NoSynchronizationContext ) + { + // verify that Identity format is an exact match for uri + + var _match = new global::System.Text.RegularExpressions.Regex("^/subscriptions/(?[^/]+)/resourceGroups/(?[^/]+)/providers/Microsoft.EventGrid/domains$", global::System.Text.RegularExpressions.RegexOptions.IgnoreCase).Match(viaIdentity); + if (!_match.Success) + { + throw new global::System.Exception("Invalid identity for URI '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.EventGrid/domains'"); + } + + // 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.EventGrid/domains" + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + + "&" + + (string.IsNullOrEmpty(Filter) ? global::System.String.Empty : "$filter=" + global::System.Uri.EscapeDataString(Filter)) + + "&" + + (null == Top ? global::System.String.Empty : "$top=" + global::System.Uri.EscapeDataString(Top.ToString())) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Method.Get, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.DomainsListByResourceGroup_Call(request,onOk,onDefault,eventListener,sender); + } + } + + /// Actual wire call for method. + /// the prepared HttpRequestMessage to send. + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + internal async global::System.Threading.Tasks.Task DomainsListByResourceGroup_Call(global::System.Net.Http.HttpRequestMessage request, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func onDefault, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync sender) + { + using( NoSynchronizationContext ) + { + global::System.Net.Http.HttpResponseMessage _response = null; + try + { + var sendTask = sender.SendAsync(request, eventListener); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.BeforeCall, request); if( eventListener.Token.IsCancellationRequested ) { return; } + _response = await sendTask; + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.ResponseCreated, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + var _contentType = _response.Content.Headers.ContentType?.MediaType; + + switch ( _response.StatusCode ) + { + case global::System.Net.HttpStatusCode.OK: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onOk(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.DomainsListResult.FromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + default: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onDefault(_response); + break; + } + } + } + finally + { + // finally statements + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Finally, request, _response); + _response?.Dispose(); + request?.Dispose(); + } + } + } + + /// + /// Validation method for method. Call this like the actual call, but you will get + /// validation events back. + /// + /// Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription + /// ID forms part of the URI for every service call. + /// The name of the resource group within the user's subscription. + /// The query used to filter the search results using OData syntax. Filtering is permitted on the 'name' + /// property only and with limited number of OData operations. These operations are: the 'contains' function as well as the + /// following logical operations: not, and, or, eq (for equal), and ne (for not equal). No arithmetic operations are supported. + /// The following is a valid filter example: $filter=contains(namE, 'PATTERN') and name ne 'PATTERN-1'. The following is not + /// a valid filter example: $filter=location eq 'westus'. + /// The number of results to return per page for the list operation. Valid range for top parameter is 1 + /// to 100. If not specified, the default number of results to be returned is 20 items per page. + /// an instance that will receive events. + /// + /// A that will be complete when handling of the response is completed. + /// + internal async global::System.Threading.Tasks.Task DomainsListByResourceGroup_Validate(string subscriptionId, string resourceGroupName, string Filter, int? Top, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener eventListener) + { + using( NoSynchronizationContext ) + { + await eventListener.AssertNotNull(nameof(subscriptionId),subscriptionId); + await eventListener.AssertNotNull(nameof(resourceGroupName),resourceGroupName); + await eventListener.AssertNotNull(nameof(Filter),Filter); + } + } + + /// List all the domains under an Azure subscription. + /// Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription + /// ID forms part of the URI for every service call. + /// The query used to filter the search results using OData syntax. Filtering is permitted on the 'name' + /// property only and with limited number of OData operations. These operations are: the 'contains' function as well as the + /// following logical operations: not, and, or, eq (for equal), and ne (for not equal). No arithmetic operations are supported. + /// The following is a valid filter example: $filter=contains(namE, 'PATTERN') and name ne 'PATTERN-1'. The following is not + /// a valid filter example: $filter=location eq 'westus'. + /// The number of results to return per page for the list operation. Valid range for top parameter is 1 + /// to 100. If not specified, the default number of results to be returned is 20 items per page. + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task DomainsListBySubscription(string subscriptionId, string Filter, int? Top, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func onDefault, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync sender) + { + var apiVersion = @"2021-10-15-preview"; + // Constant Parameters + using( NoSynchronizationContext ) + { + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + global::System.Uri.EscapeDataString(subscriptionId) + + "/providers/Microsoft.EventGrid/domains" + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + + "&" + + (string.IsNullOrEmpty(Filter) ? global::System.String.Empty : "$filter=" + global::System.Uri.EscapeDataString(Filter)) + + "&" + + (null == Top ? global::System.String.Empty : "$top=" + global::System.Uri.EscapeDataString(Top.ToString())) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Method.Get, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.DomainsListBySubscription_Call(request,onOk,onDefault,eventListener,sender); + } + } + + /// List all the domains under an Azure subscription. + /// + /// The query used to filter the search results using OData syntax. Filtering is permitted on the 'name' + /// property only and with limited number of OData operations. These operations are: the 'contains' function as well as the + /// following logical operations: not, and, or, eq (for equal), and ne (for not equal). No arithmetic operations are supported. + /// The following is a valid filter example: $filter=contains(namE, 'PATTERN') and name ne 'PATTERN-1'. The following is not + /// a valid filter example: $filter=location eq 'westus'. + /// The number of results to return per page for the list operation. Valid range for top parameter is 1 + /// to 100. If not specified, the default number of results to be returned is 20 items per page. + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task DomainsListBySubscriptionViaIdentity(global::System.String viaIdentity, string Filter, int? Top, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func onDefault, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync sender) + { + var apiVersion = @"2021-10-15-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.EventGrid/domains$", global::System.Text.RegularExpressions.RegexOptions.IgnoreCase).Match(viaIdentity); + if (!_match.Success) + { + throw new global::System.Exception("Invalid identity for URI '/subscriptions/{subscriptionId}/providers/Microsoft.EventGrid/domains'"); + } + + // 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.EventGrid/domains" + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + + "&" + + (string.IsNullOrEmpty(Filter) ? global::System.String.Empty : "$filter=" + global::System.Uri.EscapeDataString(Filter)) + + "&" + + (null == Top ? global::System.String.Empty : "$top=" + global::System.Uri.EscapeDataString(Top.ToString())) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Method.Get, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.DomainsListBySubscription_Call(request,onOk,onDefault,eventListener,sender); + } + } + + /// Actual wire call for method. + /// the prepared HttpRequestMessage to send. + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + internal async global::System.Threading.Tasks.Task DomainsListBySubscription_Call(global::System.Net.Http.HttpRequestMessage request, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func onDefault, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync sender) + { + using( NoSynchronizationContext ) + { + global::System.Net.Http.HttpResponseMessage _response = null; + try + { + var sendTask = sender.SendAsync(request, eventListener); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.BeforeCall, request); if( eventListener.Token.IsCancellationRequested ) { return; } + _response = await sendTask; + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.ResponseCreated, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + var _contentType = _response.Content.Headers.ContentType?.MediaType; + + switch ( _response.StatusCode ) + { + case global::System.Net.HttpStatusCode.OK: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onOk(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.DomainsListResult.FromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + default: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onDefault(_response); + break; + } + } + } + finally + { + // finally statements + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Finally, request, _response); + _response?.Dispose(); + request?.Dispose(); + } + } + } + + /// + /// Validation method for method. Call this like the actual call, but you will get + /// validation events back. + /// + /// Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription + /// ID forms part of the URI for every service call. + /// The query used to filter the search results using OData syntax. Filtering is permitted on the 'name' + /// property only and with limited number of OData operations. These operations are: the 'contains' function as well as the + /// following logical operations: not, and, or, eq (for equal), and ne (for not equal). No arithmetic operations are supported. + /// The following is a valid filter example: $filter=contains(namE, 'PATTERN') and name ne 'PATTERN-1'. The following is not + /// a valid filter example: $filter=location eq 'westus'. + /// The number of results to return per page for the list operation. Valid range for top parameter is 1 + /// to 100. If not specified, the default number of results to be returned is 20 items per page. + /// an instance that will receive events. + /// + /// A that will be complete when handling of the response is completed. + /// + internal async global::System.Threading.Tasks.Task DomainsListBySubscription_Validate(string subscriptionId, string Filter, int? Top, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener eventListener) + { + using( NoSynchronizationContext ) + { + await eventListener.AssertNotNull(nameof(subscriptionId),subscriptionId); + await eventListener.AssertNotNull(nameof(Filter),Filter); + } + } + + /// List the two keys used to publish to a domain. + /// Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription + /// ID forms part of the URI for every service call. + /// The name of the resource group within the user's subscription. + /// Name of the domain. + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task DomainsListSharedAccessKeys(string subscriptionId, string resourceGroupName, string domainName, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func onDefault, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync sender) + { + var apiVersion = @"2021-10-15-preview"; + // Constant Parameters + using( NoSynchronizationContext ) + { + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + global::System.Uri.EscapeDataString(subscriptionId) + + "/resourceGroups/" + + global::System.Uri.EscapeDataString(resourceGroupName) + + "/providers/Microsoft.EventGrid/domains/" + + global::System.Uri.EscapeDataString(domainName) + + "/listKeys" + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Method.Post, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.DomainsListSharedAccessKeys_Call(request,onOk,onDefault,eventListener,sender); + } + } + + /// List the two keys used to publish to a domain. + /// + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task DomainsListSharedAccessKeysViaIdentity(global::System.String viaIdentity, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func onDefault, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync sender) + { + var apiVersion = @"2021-10-15-preview"; + // Constant Parameters + using( NoSynchronizationContext ) + { + // verify that Identity format is an exact match for uri + + var _match = new global::System.Text.RegularExpressions.Regex("^/subscriptions/(?[^/]+)/resourceGroups/(?[^/]+)/providers/Microsoft.EventGrid/domains/(?[^/]+)/listKeys$", global::System.Text.RegularExpressions.RegexOptions.IgnoreCase).Match(viaIdentity); + if (!_match.Success) + { + throw new global::System.Exception("Invalid identity for URI '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.EventGrid/domains/{domainName}/listKeys'"); + } + + // replace URI parameters with values from identity + var subscriptionId = _match.Groups["subscriptionId"].Value; + var resourceGroupName = _match.Groups["resourceGroupName"].Value; + var domainName = _match.Groups["domainName"].Value; + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + subscriptionId + + "/resourceGroups/" + + resourceGroupName + + "/providers/Microsoft.EventGrid/domains/" + + domainName + + "/listKeys" + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Method.Post, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.DomainsListSharedAccessKeys_Call(request,onOk,onDefault,eventListener,sender); + } + } + + /// Actual wire call for method. + /// the prepared HttpRequestMessage to send. + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + internal async global::System.Threading.Tasks.Task DomainsListSharedAccessKeys_Call(global::System.Net.Http.HttpRequestMessage request, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func onDefault, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync sender) + { + using( NoSynchronizationContext ) + { + global::System.Net.Http.HttpResponseMessage _response = null; + try + { + var sendTask = sender.SendAsync(request, eventListener); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.BeforeCall, request); if( eventListener.Token.IsCancellationRequested ) { return; } + _response = await sendTask; + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.ResponseCreated, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + var _contentType = _response.Content.Headers.ContentType?.MediaType; + + switch ( _response.StatusCode ) + { + case global::System.Net.HttpStatusCode.OK: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onOk(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.DomainSharedAccessKeys.FromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + default: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onDefault(_response); + break; + } + } + } + finally + { + // finally statements + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Finally, request, _response); + _response?.Dispose(); + request?.Dispose(); + } + } + } + + /// + /// Validation method for method. Call this like the actual call, but you will + /// get validation events back. + /// + /// Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription + /// ID forms part of the URI for every service call. + /// The name of the resource group within the user's subscription. + /// Name of the domain. + /// an instance that will receive events. + /// + /// A that will be complete when handling of the response is completed. + /// + internal async global::System.Threading.Tasks.Task DomainsListSharedAccessKeys_Validate(string subscriptionId, string resourceGroupName, string domainName, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener eventListener) + { + using( NoSynchronizationContext ) + { + await eventListener.AssertNotNull(nameof(subscriptionId),subscriptionId); + await eventListener.AssertNotNull(nameof(resourceGroupName),resourceGroupName); + await eventListener.AssertNotNull(nameof(domainName),domainName); + } + } + + /// Regenerate a shared access key for a domain. + /// Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription + /// ID forms part of the URI for every service call. + /// The name of the resource group within the user's subscription. + /// Name of the domain. + /// Request body to regenerate key. + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task DomainsRegenerateKey(string subscriptionId, string resourceGroupName, string domainName, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDomainRegenerateKeyRequest body, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func onDefault, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync sender) + { + var apiVersion = @"2021-10-15-preview"; + // Constant Parameters + using( NoSynchronizationContext ) + { + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + global::System.Uri.EscapeDataString(subscriptionId) + + "/resourceGroups/" + + global::System.Uri.EscapeDataString(resourceGroupName) + + "/providers/Microsoft.EventGrid/domains/" + + global::System.Uri.EscapeDataString(domainName) + + "/regenerateKey" + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Method.Post, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // set body content + request.Content = new global::System.Net.Http.StringContent(null != body ? body.ToJson(null).ToString() : @"{}", global::System.Text.Encoding.UTF8); + request.Content.Headers.ContentType = global::System.Net.Http.Headers.MediaTypeHeaderValue.Parse("application/json"); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.BodyContentSet); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.DomainsRegenerateKey_Call(request,onOk,onDefault,eventListener,sender); + } + } + + /// Regenerate a shared access key for a domain. + /// + /// Request body to regenerate key. + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task DomainsRegenerateKeyViaIdentity(global::System.String viaIdentity, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDomainRegenerateKeyRequest body, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func onDefault, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync sender) + { + var apiVersion = @"2021-10-15-preview"; + // Constant Parameters + using( NoSynchronizationContext ) + { + // verify that Identity format is an exact match for uri + + var _match = new global::System.Text.RegularExpressions.Regex("^/subscriptions/(?[^/]+)/resourceGroups/(?[^/]+)/providers/Microsoft.EventGrid/domains/(?[^/]+)/regenerateKey$", global::System.Text.RegularExpressions.RegexOptions.IgnoreCase).Match(viaIdentity); + if (!_match.Success) + { + throw new global::System.Exception("Invalid identity for URI '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.EventGrid/domains/{domainName}/regenerateKey'"); + } + + // replace URI parameters with values from identity + var subscriptionId = _match.Groups["subscriptionId"].Value; + var resourceGroupName = _match.Groups["resourceGroupName"].Value; + var domainName = _match.Groups["domainName"].Value; + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + subscriptionId + + "/resourceGroups/" + + resourceGroupName + + "/providers/Microsoft.EventGrid/domains/" + + domainName + + "/regenerateKey" + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Method.Post, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // set body content + request.Content = new global::System.Net.Http.StringContent(null != body ? body.ToJson(null).ToString() : @"{}", global::System.Text.Encoding.UTF8); + request.Content.Headers.ContentType = global::System.Net.Http.Headers.MediaTypeHeaderValue.Parse("application/json"); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.BodyContentSet); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.DomainsRegenerateKey_Call(request,onOk,onDefault,eventListener,sender); + } + } + + /// Actual wire call for method. + /// the prepared HttpRequestMessage to send. + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + internal async global::System.Threading.Tasks.Task DomainsRegenerateKey_Call(global::System.Net.Http.HttpRequestMessage request, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func onDefault, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync sender) + { + using( NoSynchronizationContext ) + { + global::System.Net.Http.HttpResponseMessage _response = null; + try + { + var sendTask = sender.SendAsync(request, eventListener); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.BeforeCall, request); if( eventListener.Token.IsCancellationRequested ) { return; } + _response = await sendTask; + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.ResponseCreated, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + var _contentType = _response.Content.Headers.ContentType?.MediaType; + + switch ( _response.StatusCode ) + { + case global::System.Net.HttpStatusCode.OK: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onOk(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.DomainSharedAccessKeys.FromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + default: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onDefault(_response); + break; + } + } + } + finally + { + // finally statements + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Finally, request, _response); + _response?.Dispose(); + request?.Dispose(); + } + } + } + + /// + /// Validation method for method. Call this like the actual call, but you will get validation + /// events back. + /// + /// Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription + /// ID forms part of the URI for every service call. + /// The name of the resource group within the user's subscription. + /// Name of the domain. + /// Request body to regenerate key. + /// an instance that will receive events. + /// + /// A that will be complete when handling of the response is completed. + /// + internal async global::System.Threading.Tasks.Task DomainsRegenerateKey_Validate(string subscriptionId, string resourceGroupName, string domainName, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDomainRegenerateKeyRequest body, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener eventListener) + { + using( NoSynchronizationContext ) + { + await eventListener.AssertNotNull(nameof(subscriptionId),subscriptionId); + await eventListener.AssertNotNull(nameof(resourceGroupName),resourceGroupName); + await eventListener.AssertNotNull(nameof(domainName),domainName); + await eventListener.AssertNotNull(nameof(body), body); + await eventListener.AssertObjectIsValid(nameof(body), body); + } + } + + /// Asynchronously updates a domain with the specified parameters. + /// Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription + /// ID forms part of the URI for every service call. + /// The name of the resource group within the user's subscription. + /// Name of the domain. + /// Domain update information. + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task DomainsUpdate(string subscriptionId, string resourceGroupName, string domainName, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDomainUpdateParameters body, global::System.Func onOk, global::System.Func onDefault, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync sender) + { + var apiVersion = @"2021-10-15-preview"; + // Constant Parameters + using( NoSynchronizationContext ) + { + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + global::System.Uri.EscapeDataString(subscriptionId) + + "/resourceGroups/" + + global::System.Uri.EscapeDataString(resourceGroupName) + + "/providers/Microsoft.EventGrid/domains/" + + global::System.Uri.EscapeDataString(domainName) + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Method.Patch, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // set body content + request.Content = new global::System.Net.Http.StringContent(null != body ? body.ToJson(null).ToString() : @"{}", global::System.Text.Encoding.UTF8); + request.Content.Headers.ContentType = global::System.Net.Http.Headers.MediaTypeHeaderValue.Parse("application/json"); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.BodyContentSet); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.DomainsUpdate_Call(request,onOk,onDefault,eventListener,sender); + } + } + + /// Asynchronously updates a domain with the specified parameters. + /// + /// Domain update information. + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task DomainsUpdateViaIdentity(global::System.String viaIdentity, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDomainUpdateParameters body, global::System.Func onOk, global::System.Func onDefault, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync sender) + { + var apiVersion = @"2021-10-15-preview"; + // Constant Parameters + using( NoSynchronizationContext ) + { + // verify that Identity format is an exact match for uri + + var _match = new global::System.Text.RegularExpressions.Regex("^/subscriptions/(?[^/]+)/resourceGroups/(?[^/]+)/providers/Microsoft.EventGrid/domains/(?[^/]+)$", global::System.Text.RegularExpressions.RegexOptions.IgnoreCase).Match(viaIdentity); + if (!_match.Success) + { + throw new global::System.Exception("Invalid identity for URI '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.EventGrid/domains/{domainName}'"); + } + + // replace URI parameters with values from identity + var subscriptionId = _match.Groups["subscriptionId"].Value; + var resourceGroupName = _match.Groups["resourceGroupName"].Value; + var domainName = _match.Groups["domainName"].Value; + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + subscriptionId + + "/resourceGroups/" + + resourceGroupName + + "/providers/Microsoft.EventGrid/domains/" + + domainName + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Method.Patch, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // set body content + request.Content = new global::System.Net.Http.StringContent(null != body ? body.ToJson(null).ToString() : @"{}", global::System.Text.Encoding.UTF8); + request.Content.Headers.ContentType = global::System.Net.Http.Headers.MediaTypeHeaderValue.Parse("application/json"); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.BodyContentSet); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.DomainsUpdate_Call(request,onOk,onDefault,eventListener,sender); + } + } + + /// Actual wire call for method. + /// the prepared HttpRequestMessage to send. + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + internal async global::System.Threading.Tasks.Task DomainsUpdate_Call(global::System.Net.Http.HttpRequestMessage request, global::System.Func onOk, global::System.Func onDefault, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync sender) + { + using( NoSynchronizationContext ) + { + global::System.Net.Http.HttpResponseMessage _response = null; + try + { + var sendTask = sender.SendAsync(request, eventListener); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.BeforeCall, request); if( eventListener.Token.IsCancellationRequested ) { return; } + _response = await sendTask; + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.ResponseCreated, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + // this operation supports x-ms-long-running-operation + var _originalUri = request.RequestUri.AbsoluteUri; + // declared final-state-via: default + var asyncOperation = _response.GetFirstHeader(@"Azure-AsyncOperation"); + var location = _response.GetFirstHeader(@"Location"); + while (request.Method == System.Net.Http.HttpMethod.Put && _response.StatusCode == global::System.Net.HttpStatusCode.OK || _response.StatusCode == global::System.Net.HttpStatusCode.Created || _response.StatusCode == global::System.Net.HttpStatusCode.Accepted ) + { + + // get the delay before polling. (default to 30 seconds if not present) + int delay = (int)(_response.Headers.RetryAfter?.Delta?.TotalSeconds ?? 30); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.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.EventGrid.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.EventGrid.Runtime.Json.JsonNode.Parse(await _response.Content.ReadAsStringAsync()) is Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Runtime.UndeclaredResponseException(_response); + } + } + + // check for terminal status code + if (_response.StatusCode == global::System.Net.HttpStatusCode.Created || _response.StatusCode == global::System.Net.HttpStatusCode.Accepted ) + { + continue; + } + // we are done polling, do a request on final target? + if (!string.IsNullOrWhiteSpace(_originalUri)) + { + // create a new request with the final uri + request = request.CloneAndDispose(new global::System.Uri(_originalUri), Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onOk(_response); + break; + } + default: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onDefault(_response); + break; + } + } + } + finally + { + // finally statements + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Finally, request, _response); + _response?.Dispose(); + request?.Dispose(); + } + } + } + + /// + /// Validation method for method. Call this like the actual call, but you will get validation + /// events back. + /// + /// Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription + /// ID forms part of the URI for every service call. + /// The name of the resource group within the user's subscription. + /// Name of the domain. + /// Domain update information. + /// an instance that will receive events. + /// + /// A that will be complete when handling of the response is completed. + /// + internal async global::System.Threading.Tasks.Task DomainsUpdate_Validate(string subscriptionId, string resourceGroupName, string domainName, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDomainUpdateParameters body, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener eventListener) + { + using( NoSynchronizationContext ) + { + await eventListener.AssertNotNull(nameof(subscriptionId),subscriptionId); + await eventListener.AssertNotNull(nameof(resourceGroupName),resourceGroupName); + await eventListener.AssertNotNull(nameof(domainName),domainName); + await eventListener.AssertNotNull(nameof(body), body); + await eventListener.AssertObjectIsValid(nameof(body), body); + } + } + + /// Asynchronously creates a new event channel with the specified parameters. + /// Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription + /// ID forms part of the URI for every service call. + /// The name of the resource group within the user's subscription. + /// Name of the partner namespace. + /// Name of the event channel. + /// EventChannel information. + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task EventChannelsCreateOrUpdate(string subscriptionId, string resourceGroupName, string partnerNamespaceName, string eventChannelName, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventChannel body, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func onDefault, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync sender) + { + var apiVersion = @"2021-10-15-preview"; + // Constant Parameters + using( NoSynchronizationContext ) + { + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + global::System.Uri.EscapeDataString(subscriptionId) + + "/resourceGroups/" + + global::System.Uri.EscapeDataString(resourceGroupName) + + "/providers/Microsoft.EventGrid/partnerNamespaces/" + + global::System.Uri.EscapeDataString(partnerNamespaceName) + + "/eventChannels/" + + global::System.Uri.EscapeDataString(eventChannelName) + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Method.Put, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // set body content + request.Content = new global::System.Net.Http.StringContent(null != body ? body.ToJson(null).ToString() : @"{}", global::System.Text.Encoding.UTF8); + request.Content.Headers.ContentType = global::System.Net.Http.Headers.MediaTypeHeaderValue.Parse("application/json"); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.BodyContentSet); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.EventChannelsCreateOrUpdate_Call(request,onOk,onDefault,eventListener,sender); + } + } + + /// Asynchronously creates a new event channel with the specified parameters. + /// + /// EventChannel information. + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task EventChannelsCreateOrUpdateViaIdentity(global::System.String viaIdentity, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventChannel body, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func onDefault, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync sender) + { + var apiVersion = @"2021-10-15-preview"; + // Constant Parameters + using( NoSynchronizationContext ) + { + // verify that Identity format is an exact match for uri + + var _match = new global::System.Text.RegularExpressions.Regex("^/subscriptions/(?[^/]+)/resourceGroups/(?[^/]+)/providers/Microsoft.EventGrid/partnerNamespaces/(?[^/]+)/eventChannels/(?[^/]+)$", global::System.Text.RegularExpressions.RegexOptions.IgnoreCase).Match(viaIdentity); + if (!_match.Success) + { + throw new global::System.Exception("Invalid identity for URI '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.EventGrid/partnerNamespaces/{partnerNamespaceName}/eventChannels/{eventChannelName}'"); + } + + // replace URI parameters with values from identity + var subscriptionId = _match.Groups["subscriptionId"].Value; + var resourceGroupName = _match.Groups["resourceGroupName"].Value; + var partnerNamespaceName = _match.Groups["partnerNamespaceName"].Value; + var eventChannelName = _match.Groups["eventChannelName"].Value; + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + subscriptionId + + "/resourceGroups/" + + resourceGroupName + + "/providers/Microsoft.EventGrid/partnerNamespaces/" + + partnerNamespaceName + + "/eventChannels/" + + eventChannelName + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Method.Put, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // set body content + request.Content = new global::System.Net.Http.StringContent(null != body ? body.ToJson(null).ToString() : @"{}", global::System.Text.Encoding.UTF8); + request.Content.Headers.ContentType = global::System.Net.Http.Headers.MediaTypeHeaderValue.Parse("application/json"); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.BodyContentSet); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.EventChannelsCreateOrUpdate_Call(request,onOk,onDefault,eventListener,sender); + } + } + + /// Actual wire call for method. + /// the prepared HttpRequestMessage to send. + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + internal async global::System.Threading.Tasks.Task EventChannelsCreateOrUpdate_Call(global::System.Net.Http.HttpRequestMessage request, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func onDefault, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync sender) + { + using( NoSynchronizationContext ) + { + global::System.Net.Http.HttpResponseMessage _response = null; + try + { + var sendTask = sender.SendAsync(request, eventListener); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.BeforeCall, request); if( eventListener.Token.IsCancellationRequested ) { return; } + _response = await sendTask; + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.ResponseCreated, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + var _contentType = _response.Content.Headers.ContentType?.MediaType; + + switch ( _response.StatusCode ) + { + case global::System.Net.HttpStatusCode.OK: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onOk(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.EventChannel.FromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + default: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onDefault(_response); + break; + } + } + } + finally + { + // finally statements + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Finally, request, _response); + _response?.Dispose(); + request?.Dispose(); + } + } + } + + /// + /// Validation method for method. Call this like the actual call, but you will + /// get validation events back. + /// + /// Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription + /// ID forms part of the URI for every service call. + /// The name of the resource group within the user's subscription. + /// Name of the partner namespace. + /// Name of the event channel. + /// EventChannel information. + /// an instance that will receive events. + /// + /// A that will be complete when handling of the response is completed. + /// + internal async global::System.Threading.Tasks.Task EventChannelsCreateOrUpdate_Validate(string subscriptionId, string resourceGroupName, string partnerNamespaceName, string eventChannelName, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventChannel body, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener eventListener) + { + using( NoSynchronizationContext ) + { + await eventListener.AssertNotNull(nameof(subscriptionId),subscriptionId); + await eventListener.AssertNotNull(nameof(resourceGroupName),resourceGroupName); + await eventListener.AssertNotNull(nameof(partnerNamespaceName),partnerNamespaceName); + await eventListener.AssertNotNull(nameof(eventChannelName),eventChannelName); + await eventListener.AssertNotNull(nameof(body), body); + await eventListener.AssertObjectIsValid(nameof(body), body); + } + } + + /// Delete existing event channel. + /// Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription + /// ID forms part of the URI for every service call. + /// The name of the resource group within the user's subscription. + /// Name of the partner namespace. + /// Name of the event channel. + /// 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.EventGrid.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task EventChannelsDelete(string subscriptionId, string resourceGroupName, string partnerNamespaceName, string eventChannelName, global::System.Func onOk, global::System.Func onNoContent, global::System.Func onDefault, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync sender) + { + var apiVersion = @"2021-10-15-preview"; + // Constant Parameters + using( NoSynchronizationContext ) + { + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + global::System.Uri.EscapeDataString(subscriptionId) + + "/resourceGroups/" + + global::System.Uri.EscapeDataString(resourceGroupName) + + "/providers/Microsoft.EventGrid/partnerNamespaces/" + + global::System.Uri.EscapeDataString(partnerNamespaceName) + + "/eventChannels/" + + global::System.Uri.EscapeDataString(eventChannelName) + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Method.Delete, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.EventChannelsDelete_Call(request,onOk,onNoContent,onDefault,eventListener,sender); + } + } + + /// Delete existing event channel. + /// + /// 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.EventGrid.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task EventChannelsDeleteViaIdentity(global::System.String viaIdentity, global::System.Func onOk, global::System.Func onNoContent, global::System.Func onDefault, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync sender) + { + var apiVersion = @"2021-10-15-preview"; + // Constant Parameters + using( NoSynchronizationContext ) + { + // verify that Identity format is an exact match for uri + + var _match = new global::System.Text.RegularExpressions.Regex("^/subscriptions/(?[^/]+)/resourceGroups/(?[^/]+)/providers/Microsoft.EventGrid/partnerNamespaces/(?[^/]+)/eventChannels/(?[^/]+)$", global::System.Text.RegularExpressions.RegexOptions.IgnoreCase).Match(viaIdentity); + if (!_match.Success) + { + throw new global::System.Exception("Invalid identity for URI '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.EventGrid/partnerNamespaces/{partnerNamespaceName}/eventChannels/{eventChannelName}'"); + } + + // replace URI parameters with values from identity + var subscriptionId = _match.Groups["subscriptionId"].Value; + var resourceGroupName = _match.Groups["resourceGroupName"].Value; + var partnerNamespaceName = _match.Groups["partnerNamespaceName"].Value; + var eventChannelName = _match.Groups["eventChannelName"].Value; + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + subscriptionId + + "/resourceGroups/" + + resourceGroupName + + "/providers/Microsoft.EventGrid/partnerNamespaces/" + + partnerNamespaceName + + "/eventChannels/" + + eventChannelName + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Method.Delete, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.EventChannelsDelete_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.EventGrid.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + internal async global::System.Threading.Tasks.Task EventChannelsDelete_Call(global::System.Net.Http.HttpRequestMessage request, global::System.Func onOk, global::System.Func onNoContent, global::System.Func onDefault, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync sender) + { + using( NoSynchronizationContext ) + { + global::System.Net.Http.HttpResponseMessage _response = null; + try + { + var sendTask = sender.SendAsync(request, eventListener); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.BeforeCall, request); if( eventListener.Token.IsCancellationRequested ) { return; } + _response = await sendTask; + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.ResponseCreated, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + // this operation supports x-ms-long-running-operation + var _originalUri = request.RequestUri.AbsoluteUri; + // declared final-state-via: default + var _finalUri = _response.GetFirstHeader(@"Location"); + var asyncOperation = _response.GetFirstHeader(@"Azure-AsyncOperation"); + var location = _response.GetFirstHeader(@"Location"); + while (request.Method == System.Net.Http.HttpMethod.Put && _response.StatusCode == global::System.Net.HttpStatusCode.OK || _response.StatusCode == global::System.Net.HttpStatusCode.Created || _response.StatusCode == global::System.Net.HttpStatusCode.Accepted ) + { + + // get the delay before polling. (default to 30 seconds if not present) + int delay = (int)(_response.Headers.RetryAfter?.Delta?.TotalSeconds ?? 30); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.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.EventGrid.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.EventGrid.Runtime.Json.JsonNode.Parse(await _response.Content.ReadAsStringAsync()) is Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Runtime.UndeclaredResponseException(_response); + } + } + + // check for terminal status code + if (_response.StatusCode == global::System.Net.HttpStatusCode.Created || _response.StatusCode == global::System.Net.HttpStatusCode.Accepted ) + { + continue; + } + // we are done polling, do a request on final target? + if (!string.IsNullOrWhiteSpace(_finalUri)) + { + // create a new request with the final uri + request = request.CloneAndDispose(new global::System.Uri(_finalUri), Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.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.EventGrid.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onNoContent(_response); + break; + } + default: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onDefault(_response); + break; + } + } + } + finally + { + // finally statements + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Finally, request, _response); + _response?.Dispose(); + request?.Dispose(); + } + } + } + + /// + /// Validation method for method. Call this like the actual call, but you will get validation + /// events back. + /// + /// Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription + /// ID forms part of the URI for every service call. + /// The name of the resource group within the user's subscription. + /// Name of the partner namespace. + /// Name of the event channel. + /// an instance that will receive events. + /// + /// A that will be complete when handling of the response is completed. + /// + internal async global::System.Threading.Tasks.Task EventChannelsDelete_Validate(string subscriptionId, string resourceGroupName, string partnerNamespaceName, string eventChannelName, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener eventListener) + { + using( NoSynchronizationContext ) + { + await eventListener.AssertNotNull(nameof(subscriptionId),subscriptionId); + await eventListener.AssertNotNull(nameof(resourceGroupName),resourceGroupName); + await eventListener.AssertNotNull(nameof(partnerNamespaceName),partnerNamespaceName); + await eventListener.AssertNotNull(nameof(eventChannelName),eventChannelName); + } + } + + /// Get properties of an event channel. + /// Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription + /// ID forms part of the URI for every service call. + /// The name of the resource group within the user's subscription. + /// Name of the partner namespace. + /// Name of the event channel. + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task EventChannelsGet(string subscriptionId, string resourceGroupName, string partnerNamespaceName, string eventChannelName, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func onDefault, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync sender) + { + var apiVersion = @"2021-10-15-preview"; + // Constant Parameters + using( NoSynchronizationContext ) + { + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + global::System.Uri.EscapeDataString(subscriptionId) + + "/resourceGroups/" + + global::System.Uri.EscapeDataString(resourceGroupName) + + "/providers/Microsoft.EventGrid/partnerNamespaces/" + + global::System.Uri.EscapeDataString(partnerNamespaceName) + + "/eventChannels/" + + global::System.Uri.EscapeDataString(eventChannelName) + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Method.Get, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.EventChannelsGet_Call(request,onOk,onDefault,eventListener,sender); + } + } + + /// Get properties of an event channel. + /// + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task EventChannelsGetViaIdentity(global::System.String viaIdentity, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func onDefault, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync sender) + { + var apiVersion = @"2021-10-15-preview"; + // Constant Parameters + using( NoSynchronizationContext ) + { + // verify that Identity format is an exact match for uri + + var _match = new global::System.Text.RegularExpressions.Regex("^/subscriptions/(?[^/]+)/resourceGroups/(?[^/]+)/providers/Microsoft.EventGrid/partnerNamespaces/(?[^/]+)/eventChannels/(?[^/]+)$", global::System.Text.RegularExpressions.RegexOptions.IgnoreCase).Match(viaIdentity); + if (!_match.Success) + { + throw new global::System.Exception("Invalid identity for URI '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.EventGrid/partnerNamespaces/{partnerNamespaceName}/eventChannels/{eventChannelName}'"); + } + + // replace URI parameters with values from identity + var subscriptionId = _match.Groups["subscriptionId"].Value; + var resourceGroupName = _match.Groups["resourceGroupName"].Value; + var partnerNamespaceName = _match.Groups["partnerNamespaceName"].Value; + var eventChannelName = _match.Groups["eventChannelName"].Value; + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + subscriptionId + + "/resourceGroups/" + + resourceGroupName + + "/providers/Microsoft.EventGrid/partnerNamespaces/" + + partnerNamespaceName + + "/eventChannels/" + + eventChannelName + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Method.Get, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.EventChannelsGet_Call(request,onOk,onDefault,eventListener,sender); + } + } + + /// Actual wire call for method. + /// the prepared HttpRequestMessage to send. + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + internal async global::System.Threading.Tasks.Task EventChannelsGet_Call(global::System.Net.Http.HttpRequestMessage request, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func onDefault, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync sender) + { + using( NoSynchronizationContext ) + { + global::System.Net.Http.HttpResponseMessage _response = null; + try + { + var sendTask = sender.SendAsync(request, eventListener); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.BeforeCall, request); if( eventListener.Token.IsCancellationRequested ) { return; } + _response = await sendTask; + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.ResponseCreated, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + var _contentType = _response.Content.Headers.ContentType?.MediaType; + + switch ( _response.StatusCode ) + { + case global::System.Net.HttpStatusCode.OK: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onOk(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.EventChannel.FromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + default: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onDefault(_response); + break; + } + } + } + finally + { + // finally statements + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Finally, request, _response); + _response?.Dispose(); + request?.Dispose(); + } + } + } + + /// + /// Validation method for method. Call this like the actual call, but you will get validation + /// events back. + /// + /// Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription + /// ID forms part of the URI for every service call. + /// The name of the resource group within the user's subscription. + /// Name of the partner namespace. + /// Name of the event channel. + /// an instance that will receive events. + /// + /// A that will be complete when handling of the response is completed. + /// + internal async global::System.Threading.Tasks.Task EventChannelsGet_Validate(string subscriptionId, string resourceGroupName, string partnerNamespaceName, string eventChannelName, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener eventListener) + { + using( NoSynchronizationContext ) + { + await eventListener.AssertNotNull(nameof(subscriptionId),subscriptionId); + await eventListener.AssertNotNull(nameof(resourceGroupName),resourceGroupName); + await eventListener.AssertNotNull(nameof(partnerNamespaceName),partnerNamespaceName); + await eventListener.AssertNotNull(nameof(eventChannelName),eventChannelName); + } + } + + /// List all the event channels in a partner namespace. + /// Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription + /// ID forms part of the URI for every service call. + /// The name of the resource group within the user's subscription. + /// Name of the partner namespace. + /// The query used to filter the search results using OData syntax. Filtering is permitted on the 'name' + /// property only and with limited number of OData operations. These operations are: the 'contains' function as well as the + /// following logical operations: not, and, or, eq (for equal), and ne (for not equal). No arithmetic operations are supported. + /// The following is a valid filter example: $filter=contains(namE, 'PATTERN') and name ne 'PATTERN-1'. The following is not + /// a valid filter example: $filter=location eq 'westus'. + /// The number of results to return per page for the list operation. Valid range for top parameter is 1 + /// to 100. If not specified, the default number of results to be returned is 20 items per page. + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task EventChannelsListByPartnerNamespace(string subscriptionId, string resourceGroupName, string partnerNamespaceName, string Filter, int? Top, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func onDefault, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync sender) + { + var apiVersion = @"2021-10-15-preview"; + // Constant Parameters + using( NoSynchronizationContext ) + { + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + global::System.Uri.EscapeDataString(subscriptionId) + + "/resourceGroups/" + + global::System.Uri.EscapeDataString(resourceGroupName) + + "/providers/Microsoft.EventGrid/partnerNamespaces/" + + global::System.Uri.EscapeDataString(partnerNamespaceName) + + "/eventChannels" + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + + "&" + + (string.IsNullOrEmpty(Filter) ? global::System.String.Empty : "$filter=" + global::System.Uri.EscapeDataString(Filter)) + + "&" + + (null == Top ? global::System.String.Empty : "$top=" + global::System.Uri.EscapeDataString(Top.ToString())) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Method.Get, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.EventChannelsListByPartnerNamespace_Call(request,onOk,onDefault,eventListener,sender); + } + } + + /// List all the event channels in a partner namespace. + /// + /// The query used to filter the search results using OData syntax. Filtering is permitted on the 'name' + /// property only and with limited number of OData operations. These operations are: the 'contains' function as well as the + /// following logical operations: not, and, or, eq (for equal), and ne (for not equal). No arithmetic operations are supported. + /// The following is a valid filter example: $filter=contains(namE, 'PATTERN') and name ne 'PATTERN-1'. The following is not + /// a valid filter example: $filter=location eq 'westus'. + /// The number of results to return per page for the list operation. Valid range for top parameter is 1 + /// to 100. If not specified, the default number of results to be returned is 20 items per page. + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task EventChannelsListByPartnerNamespaceViaIdentity(global::System.String viaIdentity, string Filter, int? Top, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func onDefault, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync sender) + { + var apiVersion = @"2021-10-15-preview"; + // Constant Parameters + using( NoSynchronizationContext ) + { + // verify that Identity format is an exact match for uri + + var _match = new global::System.Text.RegularExpressions.Regex("^/subscriptions/(?[^/]+)/resourceGroups/(?[^/]+)/providers/Microsoft.EventGrid/partnerNamespaces/(?[^/]+)/eventChannels$", global::System.Text.RegularExpressions.RegexOptions.IgnoreCase).Match(viaIdentity); + if (!_match.Success) + { + throw new global::System.Exception("Invalid identity for URI '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.EventGrid/partnerNamespaces/{partnerNamespaceName}/eventChannels'"); + } + + // replace URI parameters with values from identity + var subscriptionId = _match.Groups["subscriptionId"].Value; + var resourceGroupName = _match.Groups["resourceGroupName"].Value; + var partnerNamespaceName = _match.Groups["partnerNamespaceName"].Value; + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + subscriptionId + + "/resourceGroups/" + + resourceGroupName + + "/providers/Microsoft.EventGrid/partnerNamespaces/" + + partnerNamespaceName + + "/eventChannels" + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + + "&" + + (string.IsNullOrEmpty(Filter) ? global::System.String.Empty : "$filter=" + global::System.Uri.EscapeDataString(Filter)) + + "&" + + (null == Top ? global::System.String.Empty : "$top=" + global::System.Uri.EscapeDataString(Top.ToString())) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Method.Get, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.EventChannelsListByPartnerNamespace_Call(request,onOk,onDefault,eventListener,sender); + } + } + + /// Actual wire call for method. + /// the prepared HttpRequestMessage to send. + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + internal async global::System.Threading.Tasks.Task EventChannelsListByPartnerNamespace_Call(global::System.Net.Http.HttpRequestMessage request, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func onDefault, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync sender) + { + using( NoSynchronizationContext ) + { + global::System.Net.Http.HttpResponseMessage _response = null; + try + { + var sendTask = sender.SendAsync(request, eventListener); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.BeforeCall, request); if( eventListener.Token.IsCancellationRequested ) { return; } + _response = await sendTask; + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.ResponseCreated, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + var _contentType = _response.Content.Headers.ContentType?.MediaType; + + switch ( _response.StatusCode ) + { + case global::System.Net.HttpStatusCode.OK: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onOk(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.EventChannelsListResult.FromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + default: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onDefault(_response); + break; + } + } + } + finally + { + // finally statements + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Finally, request, _response); + _response?.Dispose(); + request?.Dispose(); + } + } + } + + /// + /// Validation method for method. Call this like the actual call, but you + /// will get validation events back. + /// + /// Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription + /// ID forms part of the URI for every service call. + /// The name of the resource group within the user's subscription. + /// Name of the partner namespace. + /// The query used to filter the search results using OData syntax. Filtering is permitted on the 'name' + /// property only and with limited number of OData operations. These operations are: the 'contains' function as well as the + /// following logical operations: not, and, or, eq (for equal), and ne (for not equal). No arithmetic operations are supported. + /// The following is a valid filter example: $filter=contains(namE, 'PATTERN') and name ne 'PATTERN-1'. The following is not + /// a valid filter example: $filter=location eq 'westus'. + /// The number of results to return per page for the list operation. Valid range for top parameter is 1 + /// to 100. If not specified, the default number of results to be returned is 20 items per page. + /// an instance that will receive events. + /// + /// A that will be complete when handling of the response is completed. + /// + internal async global::System.Threading.Tasks.Task EventChannelsListByPartnerNamespace_Validate(string subscriptionId, string resourceGroupName, string partnerNamespaceName, string Filter, int? Top, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener eventListener) + { + using( NoSynchronizationContext ) + { + await eventListener.AssertNotNull(nameof(subscriptionId),subscriptionId); + await eventListener.AssertNotNull(nameof(resourceGroupName),resourceGroupName); + await eventListener.AssertNotNull(nameof(partnerNamespaceName),partnerNamespaceName); + await eventListener.AssertNotNull(nameof(Filter),Filter); + } + } + + /// + /// Asynchronously creates a new event subscription or updates an existing event subscription based on the specified scope. + /// + /// The identifier of the resource to which the event subscription needs to be created or updated. The + /// scope can be a subscription, or a resource group, or a top level resource belonging to a resource provider namespace, + /// or an EventGrid topic. For example, use '/subscriptions/{subscriptionId}/' for a subscription, '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}' + /// for a resource group, and '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}' + /// for a resource, and '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.EventGrid/topics/{topicName}' + /// for an EventGrid topic. + /// Name of the event subscription. Event subscription names must be between 3 and 64 + /// characters in length and should use alphanumeric letters only. + /// Event subscription properties containing the destination and filter information. + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task EventSubscriptionsCreateOrUpdate(string scope, string eventSubscriptionName, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscription body, global::System.Func onDefault, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync sender) + { + var apiVersion = @"2021-10-15-preview"; + // Constant Parameters + using( NoSynchronizationContext ) + { + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/" + + (scope) + + "/providers/Microsoft.EventGrid/eventSubscriptions/" + + global::System.Uri.EscapeDataString(eventSubscriptionName) + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Method.Put, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // set body content + request.Content = new global::System.Net.Http.StringContent(null != body ? body.ToJson(null).ToString() : @"{}", global::System.Text.Encoding.UTF8); + request.Content.Headers.ContentType = global::System.Net.Http.Headers.MediaTypeHeaderValue.Parse("application/json"); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.BodyContentSet); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.EventSubscriptionsCreateOrUpdate_Call(request,onDefault,eventListener,sender); + } + } + + /// + /// Asynchronously creates a new event subscription or updates an existing event subscription based on the specified scope. + /// + /// + /// Event subscription properties containing the destination and filter information. + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task EventSubscriptionsCreateOrUpdateViaIdentity(global::System.String viaIdentity, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscription body, global::System.Func onDefault, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync sender) + { + var apiVersion = @"2021-10-15-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.EventGrid/eventSubscriptions/(?[^/]+)$", global::System.Text.RegularExpressions.RegexOptions.IgnoreCase).Match(viaIdentity); + if (!_match.Success) + { + throw new global::System.Exception("Invalid identity for URI '/{scope}/providers/Microsoft.EventGrid/eventSubscriptions/{eventSubscriptionName}'"); + } + + // replace URI parameters with values from identity + var scope = _match.Groups["scope"].Value; + var eventSubscriptionName = _match.Groups["eventSubscriptionName"].Value; + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/" + + scope + + "/providers/Microsoft.EventGrid/eventSubscriptions/" + + eventSubscriptionName + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Method.Put, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // set body content + request.Content = new global::System.Net.Http.StringContent(null != body ? body.ToJson(null).ToString() : @"{}", global::System.Text.Encoding.UTF8); + request.Content.Headers.ContentType = global::System.Net.Http.Headers.MediaTypeHeaderValue.Parse("application/json"); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.BodyContentSet); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.EventSubscriptionsCreateOrUpdate_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.EventGrid.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + internal async global::System.Threading.Tasks.Task EventSubscriptionsCreateOrUpdate_Call(global::System.Net.Http.HttpRequestMessage request, global::System.Func onDefault, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync sender) + { + using( NoSynchronizationContext ) + { + global::System.Net.Http.HttpResponseMessage _response = null; + try + { + var sendTask = sender.SendAsync(request, eventListener); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.BeforeCall, request); if( eventListener.Token.IsCancellationRequested ) { return; } + _response = await sendTask; + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.ResponseCreated, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + // this operation supports x-ms-long-running-operation + var _originalUri = request.RequestUri.AbsoluteUri; + // declared final-state-via: default + var asyncOperation = _response.GetFirstHeader(@"Azure-AsyncOperation"); + var location = _response.GetFirstHeader(@"Location"); + while (request.Method == System.Net.Http.HttpMethod.Put && _response.StatusCode == global::System.Net.HttpStatusCode.OK || _response.StatusCode == global::System.Net.HttpStatusCode.Created || _response.StatusCode == global::System.Net.HttpStatusCode.Accepted ) + { + + // get the delay before polling. (default to 30 seconds if not present) + int delay = (int)(_response.Headers.RetryAfter?.Delta?.TotalSeconds ?? 30); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.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.EventGrid.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.EventGrid.Runtime.Json.JsonNode.Parse(await _response.Content.ReadAsStringAsync()) is Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Runtime.UndeclaredResponseException(_response); + } + } + + // check for terminal status code + if (_response.StatusCode == global::System.Net.HttpStatusCode.Created || _response.StatusCode == global::System.Net.HttpStatusCode.Accepted ) + { + continue; + } + // we are done polling, do a request on final target? + if (!string.IsNullOrWhiteSpace(_originalUri)) + { + // create a new request with the final uri + request = request.CloneAndDispose(new global::System.Uri(_originalUri), Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onDefault(_response); + break; + } + } + } + finally + { + // finally statements + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.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 identifier of the resource to which the event subscription needs to be created or updated. The + /// scope can be a subscription, or a resource group, or a top level resource belonging to a resource provider namespace, + /// or an EventGrid topic. For example, use '/subscriptions/{subscriptionId}/' for a subscription, '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}' + /// for a resource group, and '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}' + /// for a resource, and '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.EventGrid/topics/{topicName}' + /// for an EventGrid topic. + /// Name of the event subscription. Event subscription names must be between 3 and 64 + /// characters in length and should use alphanumeric letters only. + /// Event subscription properties containing the destination and filter information. + /// an instance that will receive events. + /// + /// A that will be complete when handling of the response is completed. + /// + internal async global::System.Threading.Tasks.Task EventSubscriptionsCreateOrUpdate_Validate(string scope, string eventSubscriptionName, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscription body, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener eventListener) + { + using( NoSynchronizationContext ) + { + await eventListener.AssertNotNull(nameof(scope),scope); + await eventListener.AssertNotNull(nameof(eventSubscriptionName),eventSubscriptionName); + await eventListener.AssertNotNull(nameof(body), body); + await eventListener.AssertObjectIsValid(nameof(body), body); + } + } + + /// Delete an existing event subscription. + /// The scope of the event subscription. The scope can be a subscription, or a resource group, or a top + /// level resource belonging to a resource provider namespace, or an EventGrid topic. For example, use '/subscriptions/{subscriptionId}/' + /// for a subscription, '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}' for a resource group, and '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}' + /// for a resource, and '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.EventGrid/topics/{topicName}' + /// for an EventGrid topic. + /// Name of the event subscription. + /// 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.EventGrid.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task EventSubscriptionsDelete(string scope, string eventSubscriptionName, global::System.Func onOk, global::System.Func onNoContent, global::System.Func onDefault, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync sender) + { + var apiVersion = @"2021-10-15-preview"; + // Constant Parameters + using( NoSynchronizationContext ) + { + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/" + + (scope) + + "/providers/Microsoft.EventGrid/eventSubscriptions/" + + global::System.Uri.EscapeDataString(eventSubscriptionName) + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Method.Delete, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.EventSubscriptionsDelete_Call(request,onOk,onNoContent,onDefault,eventListener,sender); + } + } + + /// Delete an existing event subscription. + /// + /// 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.EventGrid.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task EventSubscriptionsDeleteViaIdentity(global::System.String viaIdentity, global::System.Func onOk, global::System.Func onNoContent, global::System.Func onDefault, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync sender) + { + var apiVersion = @"2021-10-15-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.EventGrid/eventSubscriptions/(?[^/]+)$", global::System.Text.RegularExpressions.RegexOptions.IgnoreCase).Match(viaIdentity); + if (!_match.Success) + { + throw new global::System.Exception("Invalid identity for URI '/{scope}/providers/Microsoft.EventGrid/eventSubscriptions/{eventSubscriptionName}'"); + } + + // replace URI parameters with values from identity + var scope = _match.Groups["scope"].Value; + var eventSubscriptionName = _match.Groups["eventSubscriptionName"].Value; + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/" + + scope + + "/providers/Microsoft.EventGrid/eventSubscriptions/" + + eventSubscriptionName + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Method.Delete, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.EventSubscriptionsDelete_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.EventGrid.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + internal async global::System.Threading.Tasks.Task EventSubscriptionsDelete_Call(global::System.Net.Http.HttpRequestMessage request, global::System.Func onOk, global::System.Func onNoContent, global::System.Func onDefault, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync sender) + { + using( NoSynchronizationContext ) + { + global::System.Net.Http.HttpResponseMessage _response = null; + try + { + var sendTask = sender.SendAsync(request, eventListener); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.BeforeCall, request); if( eventListener.Token.IsCancellationRequested ) { return; } + _response = await sendTask; + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.ResponseCreated, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + // this operation supports x-ms-long-running-operation + var _originalUri = request.RequestUri.AbsoluteUri; + // declared final-state-via: default + var _finalUri = _response.GetFirstHeader(@"Location"); + var asyncOperation = _response.GetFirstHeader(@"Azure-AsyncOperation"); + var location = _response.GetFirstHeader(@"Location"); + while (request.Method == System.Net.Http.HttpMethod.Put && _response.StatusCode == global::System.Net.HttpStatusCode.OK || _response.StatusCode == global::System.Net.HttpStatusCode.Created || _response.StatusCode == global::System.Net.HttpStatusCode.Accepted ) + { + + // get the delay before polling. (default to 30 seconds if not present) + int delay = (int)(_response.Headers.RetryAfter?.Delta?.TotalSeconds ?? 30); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.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.EventGrid.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.EventGrid.Runtime.Json.JsonNode.Parse(await _response.Content.ReadAsStringAsync()) is Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Runtime.UndeclaredResponseException(_response); + } + } + + // check for terminal status code + if (_response.StatusCode == global::System.Net.HttpStatusCode.Created || _response.StatusCode == global::System.Net.HttpStatusCode.Accepted ) + { + continue; + } + // we are done polling, do a request on final target? + if (!string.IsNullOrWhiteSpace(_finalUri)) + { + // create a new request with the final uri + request = request.CloneAndDispose(new global::System.Uri(_finalUri), Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.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.EventGrid.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onNoContent(_response); + break; + } + default: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onDefault(_response); + break; + } + } + } + finally + { + // finally statements + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.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 scope of the event subscription. The scope can be a subscription, or a resource group, or a top + /// level resource belonging to a resource provider namespace, or an EventGrid topic. For example, use '/subscriptions/{subscriptionId}/' + /// for a subscription, '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}' for a resource group, and '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}' + /// for a resource, and '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.EventGrid/topics/{topicName}' + /// for an EventGrid topic. + /// Name of the event 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 EventSubscriptionsDelete_Validate(string scope, string eventSubscriptionName, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener eventListener) + { + using( NoSynchronizationContext ) + { + await eventListener.AssertNotNull(nameof(scope),scope); + await eventListener.AssertNotNull(nameof(eventSubscriptionName),eventSubscriptionName); + } + } + + /// Get properties of an event subscription. + /// The scope of the event subscription. The scope can be a subscription, or a resource group, or a top + /// level resource belonging to a resource provider namespace, or an EventGrid topic. For example, use '/subscriptions/{subscriptionId}/' + /// for a subscription, '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}' for a resource group, and '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}' + /// for a resource, and '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.EventGrid/topics/{topicName}' + /// for an EventGrid topic. + /// Name of the event 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.EventGrid.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task EventSubscriptionsGet(string scope, string eventSubscriptionName, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func onDefault, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync sender) + { + var apiVersion = @"2021-10-15-preview"; + // Constant Parameters + using( NoSynchronizationContext ) + { + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/" + + (scope) + + "/providers/Microsoft.EventGrid/eventSubscriptions/" + + global::System.Uri.EscapeDataString(eventSubscriptionName) + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Method.Get, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.EventSubscriptionsGet_Call(request,onOk,onDefault,eventListener,sender); + } + } + + /// Get all delivery attributes for an event subscription. + /// The scope of the event subscription. The scope can be a subscription, or a resource group, or a top + /// level resource belonging to a resource provider namespace, or an EventGrid topic. For example, use '/subscriptions/{subscriptionId}/' + /// for a subscription, '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}' for a resource group, and '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}' + /// for a resource, and '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.EventGrid/topics/{topicName}' + /// for an EventGrid topic. + /// Name of the event 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.EventGrid.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task EventSubscriptionsGetDeliveryAttributes(string scope, string eventSubscriptionName, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func onDefault, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync sender) + { + var apiVersion = @"2021-10-15-preview"; + // Constant Parameters + using( NoSynchronizationContext ) + { + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/" + + (scope) + + "/providers/Microsoft.EventGrid/eventSubscriptions/" + + global::System.Uri.EscapeDataString(eventSubscriptionName) + + "/getDeliveryAttributes" + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Method.Post, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.EventSubscriptionsGetDeliveryAttributes_Call(request,onOk,onDefault,eventListener,sender); + } + } + + /// Get all delivery attributes for an event 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.EventGrid.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task EventSubscriptionsGetDeliveryAttributesViaIdentity(global::System.String viaIdentity, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func onDefault, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync sender) + { + var apiVersion = @"2021-10-15-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.EventGrid/eventSubscriptions/(?[^/]+)/getDeliveryAttributes$", global::System.Text.RegularExpressions.RegexOptions.IgnoreCase).Match(viaIdentity); + if (!_match.Success) + { + throw new global::System.Exception("Invalid identity for URI '/{scope}/providers/Microsoft.EventGrid/eventSubscriptions/{eventSubscriptionName}/getDeliveryAttributes'"); + } + + // replace URI parameters with values from identity + var scope = _match.Groups["scope"].Value; + var eventSubscriptionName = _match.Groups["eventSubscriptionName"].Value; + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/" + + scope + + "/providers/Microsoft.EventGrid/eventSubscriptions/" + + eventSubscriptionName + + "/getDeliveryAttributes" + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Method.Post, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.EventSubscriptionsGetDeliveryAttributes_Call(request,onOk,onDefault,eventListener,sender); + } + } + + /// + /// Actual wire call for method. + /// + /// the prepared HttpRequestMessage to send. + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + internal async global::System.Threading.Tasks.Task EventSubscriptionsGetDeliveryAttributes_Call(global::System.Net.Http.HttpRequestMessage request, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func onDefault, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync sender) + { + using( NoSynchronizationContext ) + { + global::System.Net.Http.HttpResponseMessage _response = null; + try + { + var sendTask = sender.SendAsync(request, eventListener); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.BeforeCall, request); if( eventListener.Token.IsCancellationRequested ) { return; } + _response = await sendTask; + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.ResponseCreated, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + var _contentType = _response.Content.Headers.ContentType?.MediaType; + + switch ( _response.StatusCode ) + { + case global::System.Net.HttpStatusCode.OK: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onOk(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.DeliveryAttributeListResult.FromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + default: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onDefault(_response); + break; + } + } + } + finally + { + // finally statements + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.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 scope of the event subscription. The scope can be a subscription, or a resource group, or a top + /// level resource belonging to a resource provider namespace, or an EventGrid topic. For example, use '/subscriptions/{subscriptionId}/' + /// for a subscription, '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}' for a resource group, and '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}' + /// for a resource, and '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.EventGrid/topics/{topicName}' + /// for an EventGrid topic. + /// Name of the event 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 EventSubscriptionsGetDeliveryAttributes_Validate(string scope, string eventSubscriptionName, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener eventListener) + { + using( NoSynchronizationContext ) + { + await eventListener.AssertNotNull(nameof(scope),scope); + await eventListener.AssertNotNull(nameof(eventSubscriptionName),eventSubscriptionName); + } + } + + /// Get the full endpoint URL for an event subscription. + /// The scope of the event subscription. The scope can be a subscription, or a resource group, or a top + /// level resource belonging to a resource provider namespace, or an EventGrid topic. For example, use '/subscriptions/{subscriptionId}/' + /// for a subscription, '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}' for a resource group, and '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}' + /// for a resource, and '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.EventGrid/topics/{topicName}' + /// for an EventGrid topic. + /// Name of the event 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.EventGrid.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task EventSubscriptionsGetFullUrl(string scope, string eventSubscriptionName, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func onDefault, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync sender) + { + var apiVersion = @"2021-10-15-preview"; + // Constant Parameters + using( NoSynchronizationContext ) + { + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/" + + (scope) + + "/providers/Microsoft.EventGrid/eventSubscriptions/" + + global::System.Uri.EscapeDataString(eventSubscriptionName) + + "/getFullUrl" + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Method.Post, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.EventSubscriptionsGetFullUrl_Call(request,onOk,onDefault,eventListener,sender); + } + } + + /// Get the full endpoint URL for an event 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.EventGrid.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task EventSubscriptionsGetFullUrlViaIdentity(global::System.String viaIdentity, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func onDefault, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync sender) + { + var apiVersion = @"2021-10-15-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.EventGrid/eventSubscriptions/(?[^/]+)/getFullUrl$", global::System.Text.RegularExpressions.RegexOptions.IgnoreCase).Match(viaIdentity); + if (!_match.Success) + { + throw new global::System.Exception("Invalid identity for URI '/{scope}/providers/Microsoft.EventGrid/eventSubscriptions/{eventSubscriptionName}/getFullUrl'"); + } + + // replace URI parameters with values from identity + var scope = _match.Groups["scope"].Value; + var eventSubscriptionName = _match.Groups["eventSubscriptionName"].Value; + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/" + + scope + + "/providers/Microsoft.EventGrid/eventSubscriptions/" + + eventSubscriptionName + + "/getFullUrl" + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Method.Post, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.EventSubscriptionsGetFullUrl_Call(request,onOk,onDefault,eventListener,sender); + } + } + + /// Actual wire call for method. + /// the prepared HttpRequestMessage to send. + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + internal async global::System.Threading.Tasks.Task EventSubscriptionsGetFullUrl_Call(global::System.Net.Http.HttpRequestMessage request, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func onDefault, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync sender) + { + using( NoSynchronizationContext ) + { + global::System.Net.Http.HttpResponseMessage _response = null; + try + { + var sendTask = sender.SendAsync(request, eventListener); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.BeforeCall, request); if( eventListener.Token.IsCancellationRequested ) { return; } + _response = await sendTask; + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.ResponseCreated, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + var _contentType = _response.Content.Headers.ContentType?.MediaType; + + switch ( _response.StatusCode ) + { + case global::System.Net.HttpStatusCode.OK: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onOk(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.EventSubscriptionFullUrl.FromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + default: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onDefault(_response); + break; + } + } + } + finally + { + // finally statements + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.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 scope of the event subscription. The scope can be a subscription, or a resource group, or a top + /// level resource belonging to a resource provider namespace, or an EventGrid topic. For example, use '/subscriptions/{subscriptionId}/' + /// for a subscription, '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}' for a resource group, and '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}' + /// for a resource, and '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.EventGrid/topics/{topicName}' + /// for an EventGrid topic. + /// Name of the event 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 EventSubscriptionsGetFullUrl_Validate(string scope, string eventSubscriptionName, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener eventListener) + { + using( NoSynchronizationContext ) + { + await eventListener.AssertNotNull(nameof(scope),scope); + await eventListener.AssertNotNull(nameof(eventSubscriptionName),eventSubscriptionName); + } + } + + /// Get properties of an event 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.EventGrid.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task EventSubscriptionsGetViaIdentity(global::System.String viaIdentity, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func onDefault, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync sender) + { + var apiVersion = @"2021-10-15-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.EventGrid/eventSubscriptions/(?[^/]+)$", global::System.Text.RegularExpressions.RegexOptions.IgnoreCase).Match(viaIdentity); + if (!_match.Success) + { + throw new global::System.Exception("Invalid identity for URI '/{scope}/providers/Microsoft.EventGrid/eventSubscriptions/{eventSubscriptionName}'"); + } + + // replace URI parameters with values from identity + var scope = _match.Groups["scope"].Value; + var eventSubscriptionName = _match.Groups["eventSubscriptionName"].Value; + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/" + + scope + + "/providers/Microsoft.EventGrid/eventSubscriptions/" + + eventSubscriptionName + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Method.Get, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.EventSubscriptionsGet_Call(request,onOk,onDefault,eventListener,sender); + } + } + + /// Actual wire call for method. + /// the prepared HttpRequestMessage to send. + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + internal async global::System.Threading.Tasks.Task EventSubscriptionsGet_Call(global::System.Net.Http.HttpRequestMessage request, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func onDefault, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync sender) + { + using( NoSynchronizationContext ) + { + global::System.Net.Http.HttpResponseMessage _response = null; + try + { + var sendTask = sender.SendAsync(request, eventListener); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.BeforeCall, request); if( eventListener.Token.IsCancellationRequested ) { return; } + _response = await sendTask; + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.ResponseCreated, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + var _contentType = _response.Content.Headers.ContentType?.MediaType; + + switch ( _response.StatusCode ) + { + case global::System.Net.HttpStatusCode.OK: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onOk(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.EventSubscription.FromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + default: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onDefault(_response); + break; + } + } + } + finally + { + // finally statements + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.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 scope of the event subscription. The scope can be a subscription, or a resource group, or a top + /// level resource belonging to a resource provider namespace, or an EventGrid topic. For example, use '/subscriptions/{subscriptionId}/' + /// for a subscription, '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}' for a resource group, and '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}' + /// for a resource, and '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.EventGrid/topics/{topicName}' + /// for an EventGrid topic. + /// Name of the event 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 EventSubscriptionsGet_Validate(string scope, string eventSubscriptionName, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener eventListener) + { + using( NoSynchronizationContext ) + { + await eventListener.AssertNotNull(nameof(scope),scope); + await eventListener.AssertNotNull(nameof(eventSubscriptionName),eventSubscriptionName); + } + } + + /// + /// List all event subscriptions that have been created for a specific domain topic. + /// + /// Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription + /// ID forms part of the URI for every service call. + /// The name of the resource group within the user's subscription. + /// Name of the top level domain. + /// Name of the domain topic. + /// The query used to filter the search results using OData syntax. Filtering is permitted on the 'name' + /// property only and with limited number of OData operations. These operations are: the 'contains' function as well as the + /// following logical operations: not, and, or, eq (for equal), and ne (for not equal). No arithmetic operations are supported. + /// The following is a valid filter example: $filter=contains(namE, 'PATTERN') and name ne 'PATTERN-1'. The following is not + /// a valid filter example: $filter=location eq 'westus'. + /// The number of results to return per page for the list operation. Valid range for top parameter is 1 + /// to 100. If not specified, the default number of results to be returned is 20 items per page. + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task EventSubscriptionsListByDomainTopic(string subscriptionId, string resourceGroupName, string domainName, string topicName, string Filter, int? Top, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func onDefault, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync sender) + { + var apiVersion = @"2021-10-15-preview"; + // Constant Parameters + using( NoSynchronizationContext ) + { + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + global::System.Uri.EscapeDataString(subscriptionId) + + "/resourceGroups/" + + global::System.Uri.EscapeDataString(resourceGroupName) + + "/providers/Microsoft.EventGrid/domains/" + + global::System.Uri.EscapeDataString(domainName) + + "/topics/" + + global::System.Uri.EscapeDataString(topicName) + + "/providers/Microsoft.EventGrid/eventSubscriptions" + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + + "&" + + (string.IsNullOrEmpty(Filter) ? global::System.String.Empty : "$filter=" + global::System.Uri.EscapeDataString(Filter)) + + "&" + + (null == Top ? global::System.String.Empty : "$top=" + global::System.Uri.EscapeDataString(Top.ToString())) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Method.Get, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.EventSubscriptionsListByDomainTopic_Call(request,onOk,onDefault,eventListener,sender); + } + } + + /// + /// List all event subscriptions that have been created for a specific domain topic. + /// + /// + /// The query used to filter the search results using OData syntax. Filtering is permitted on the 'name' + /// property only and with limited number of OData operations. These operations are: the 'contains' function as well as the + /// following logical operations: not, and, or, eq (for equal), and ne (for not equal). No arithmetic operations are supported. + /// The following is a valid filter example: $filter=contains(namE, 'PATTERN') and name ne 'PATTERN-1'. The following is not + /// a valid filter example: $filter=location eq 'westus'. + /// The number of results to return per page for the list operation. Valid range for top parameter is 1 + /// to 100. If not specified, the default number of results to be returned is 20 items per page. + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task EventSubscriptionsListByDomainTopicViaIdentity(global::System.String viaIdentity, string Filter, int? Top, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func onDefault, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync sender) + { + var apiVersion = @"2021-10-15-preview"; + // Constant Parameters + using( NoSynchronizationContext ) + { + // verify that Identity format is an exact match for uri + + var _match = new global::System.Text.RegularExpressions.Regex("^/subscriptions/(?[^/]+)/resourceGroups/(?[^/]+)/providers/Microsoft.EventGrid/domains/(?[^/]+)/topics/(?[^/]+)/providers/Microsoft.EventGrid/eventSubscriptions$", global::System.Text.RegularExpressions.RegexOptions.IgnoreCase).Match(viaIdentity); + if (!_match.Success) + { + throw new global::System.Exception("Invalid identity for URI '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.EventGrid/domains/{domainName}/topics/{topicName}/providers/Microsoft.EventGrid/eventSubscriptions'"); + } + + // replace URI parameters with values from identity + var subscriptionId = _match.Groups["subscriptionId"].Value; + var resourceGroupName = _match.Groups["resourceGroupName"].Value; + var domainName = _match.Groups["domainName"].Value; + var topicName = _match.Groups["topicName"].Value; + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + subscriptionId + + "/resourceGroups/" + + resourceGroupName + + "/providers/Microsoft.EventGrid/domains/" + + domainName + + "/topics/" + + topicName + + "/providers/Microsoft.EventGrid/eventSubscriptions" + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + + "&" + + (string.IsNullOrEmpty(Filter) ? global::System.String.Empty : "$filter=" + global::System.Uri.EscapeDataString(Filter)) + + "&" + + (null == Top ? global::System.String.Empty : "$top=" + global::System.Uri.EscapeDataString(Top.ToString())) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Method.Get, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.EventSubscriptionsListByDomainTopic_Call(request,onOk,onDefault,eventListener,sender); + } + } + + /// Actual wire call for method. + /// the prepared HttpRequestMessage to send. + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + internal async global::System.Threading.Tasks.Task EventSubscriptionsListByDomainTopic_Call(global::System.Net.Http.HttpRequestMessage request, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func onDefault, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync sender) + { + using( NoSynchronizationContext ) + { + global::System.Net.Http.HttpResponseMessage _response = null; + try + { + var sendTask = sender.SendAsync(request, eventListener); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.BeforeCall, request); if( eventListener.Token.IsCancellationRequested ) { return; } + _response = await sendTask; + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.ResponseCreated, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + var _contentType = _response.Content.Headers.ContentType?.MediaType; + + switch ( _response.StatusCode ) + { + case global::System.Net.HttpStatusCode.OK: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onOk(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.EventSubscriptionsListResult.FromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + default: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onDefault(_response); + break; + } + } + } + finally + { + // finally statements + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Finally, request, _response); + _response?.Dispose(); + request?.Dispose(); + } + } + } + + /// + /// Validation method for method. Call this like the actual call, but you + /// will get validation events back. + /// + /// Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription + /// ID forms part of the URI for every service call. + /// The name of the resource group within the user's subscription. + /// Name of the top level domain. + /// Name of the domain topic. + /// The query used to filter the search results using OData syntax. Filtering is permitted on the 'name' + /// property only and with limited number of OData operations. These operations are: the 'contains' function as well as the + /// following logical operations: not, and, or, eq (for equal), and ne (for not equal). No arithmetic operations are supported. + /// The following is a valid filter example: $filter=contains(namE, 'PATTERN') and name ne 'PATTERN-1'. The following is not + /// a valid filter example: $filter=location eq 'westus'. + /// The number of results to return per page for the list operation. Valid range for top parameter is 1 + /// to 100. If not specified, the default number of results to be returned is 20 items per page. + /// an instance that will receive events. + /// + /// A that will be complete when handling of the response is completed. + /// + internal async global::System.Threading.Tasks.Task EventSubscriptionsListByDomainTopic_Validate(string subscriptionId, string resourceGroupName, string domainName, string topicName, string Filter, int? Top, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener eventListener) + { + using( NoSynchronizationContext ) + { + await eventListener.AssertNotNull(nameof(subscriptionId),subscriptionId); + await eventListener.AssertNotNull(nameof(resourceGroupName),resourceGroupName); + await eventListener.AssertNotNull(nameof(domainName),domainName); + await eventListener.AssertNotNull(nameof(topicName),topicName); + await eventListener.AssertNotNull(nameof(Filter),Filter); + } + } + + /// List all event subscriptions that have been created for a specific resource. + /// Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription + /// ID forms part of the URI for every service call. + /// The name of the resource group within the user's subscription. + /// Namespace of the provider of the topic. + /// Name of the resource type. + /// Name of the resource. + /// The query used to filter the search results using OData syntax. Filtering is permitted on the 'name' + /// property only and with limited number of OData operations. These operations are: the 'contains' function as well as the + /// following logical operations: not, and, or, eq (for equal), and ne (for not equal). No arithmetic operations are supported. + /// The following is a valid filter example: $filter=contains(namE, 'PATTERN') and name ne 'PATTERN-1'. The following is not + /// a valid filter example: $filter=location eq 'westus'. + /// The number of results to return per page for the list operation. Valid range for top parameter is 1 + /// to 100. If not specified, the default number of results to be returned is 20 items per page. + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task EventSubscriptionsListByResource(string subscriptionId, string resourceGroupName, string providerNamespace, string resourceTypeName, string resourceName, string Filter, int? Top, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func onDefault, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync sender) + { + var apiVersion = @"2021-10-15-preview"; + // Constant Parameters + using( NoSynchronizationContext ) + { + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + global::System.Uri.EscapeDataString(subscriptionId) + + "/resourceGroups/" + + global::System.Uri.EscapeDataString(resourceGroupName) + + "/providers/" + + global::System.Uri.EscapeDataString(providerNamespace) + + "/" + + global::System.Uri.EscapeDataString(resourceTypeName) + + "/" + + global::System.Uri.EscapeDataString(resourceName) + + "/providers/Microsoft.EventGrid/eventSubscriptions" + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + + "&" + + (string.IsNullOrEmpty(Filter) ? global::System.String.Empty : "$filter=" + global::System.Uri.EscapeDataString(Filter)) + + "&" + + (null == Top ? global::System.String.Empty : "$top=" + global::System.Uri.EscapeDataString(Top.ToString())) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Method.Get, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.EventSubscriptionsListByResource_Call(request,onOk,onDefault,eventListener,sender); + } + } + + /// List all event subscriptions that have been created for a specific resource. + /// + /// The query used to filter the search results using OData syntax. Filtering is permitted on the 'name' + /// property only and with limited number of OData operations. These operations are: the 'contains' function as well as the + /// following logical operations: not, and, or, eq (for equal), and ne (for not equal). No arithmetic operations are supported. + /// The following is a valid filter example: $filter=contains(namE, 'PATTERN') and name ne 'PATTERN-1'. The following is not + /// a valid filter example: $filter=location eq 'westus'. + /// The number of results to return per page for the list operation. Valid range for top parameter is 1 + /// to 100. If not specified, the default number of results to be returned is 20 items per page. + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task EventSubscriptionsListByResourceViaIdentity(global::System.String viaIdentity, string Filter, int? Top, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func onDefault, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync sender) + { + var apiVersion = @"2021-10-15-preview"; + // Constant Parameters + using( NoSynchronizationContext ) + { + // verify that Identity format is an exact match for uri + + var _match = new global::System.Text.RegularExpressions.Regex("^/subscriptions/(?[^/]+)/resourceGroups/(?[^/]+)/providers/(?[^/]+)/(?[^/]+)/(?[^/]+)/providers/Microsoft.EventGrid/eventSubscriptions$", global::System.Text.RegularExpressions.RegexOptions.IgnoreCase).Match(viaIdentity); + if (!_match.Success) + { + throw new global::System.Exception("Invalid identity for URI '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{providerNamespace}/{resourceTypeName}/{resourceName}/providers/Microsoft.EventGrid/eventSubscriptions'"); + } + + // replace URI parameters with values from identity + var subscriptionId = _match.Groups["subscriptionId"].Value; + var resourceGroupName = _match.Groups["resourceGroupName"].Value; + var providerNamespace = _match.Groups["providerNamespace"].Value; + var resourceTypeName = _match.Groups["resourceTypeName"].Value; + var resourceName = _match.Groups["resourceName"].Value; + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + subscriptionId + + "/resourceGroups/" + + resourceGroupName + + "/providers/" + + providerNamespace + + "/" + + resourceTypeName + + "/" + + resourceName + + "/providers/Microsoft.EventGrid/eventSubscriptions" + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + + "&" + + (string.IsNullOrEmpty(Filter) ? global::System.String.Empty : "$filter=" + global::System.Uri.EscapeDataString(Filter)) + + "&" + + (null == Top ? global::System.String.Empty : "$top=" + global::System.Uri.EscapeDataString(Top.ToString())) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Method.Get, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.EventSubscriptionsListByResource_Call(request,onOk,onDefault,eventListener,sender); + } + } + + /// Actual wire call for method. + /// the prepared HttpRequestMessage to send. + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + internal async global::System.Threading.Tasks.Task EventSubscriptionsListByResource_Call(global::System.Net.Http.HttpRequestMessage request, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func onDefault, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync sender) + { + using( NoSynchronizationContext ) + { + global::System.Net.Http.HttpResponseMessage _response = null; + try + { + var sendTask = sender.SendAsync(request, eventListener); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.BeforeCall, request); if( eventListener.Token.IsCancellationRequested ) { return; } + _response = await sendTask; + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.ResponseCreated, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + var _contentType = _response.Content.Headers.ContentType?.MediaType; + + switch ( _response.StatusCode ) + { + case global::System.Net.HttpStatusCode.OK: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onOk(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.EventSubscriptionsListResult.FromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + default: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onDefault(_response); + break; + } + } + } + finally + { + // finally statements + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Finally, request, _response); + _response?.Dispose(); + request?.Dispose(); + } + } + } + + /// + /// Validation method for method. Call this like the actual call, but you + /// will get validation events back. + /// + /// Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription + /// ID forms part of the URI for every service call. + /// The name of the resource group within the user's subscription. + /// Namespace of the provider of the topic. + /// Name of the resource type. + /// Name of the resource. + /// The query used to filter the search results using OData syntax. Filtering is permitted on the 'name' + /// property only and with limited number of OData operations. These operations are: the 'contains' function as well as the + /// following logical operations: not, and, or, eq (for equal), and ne (for not equal). No arithmetic operations are supported. + /// The following is a valid filter example: $filter=contains(namE, 'PATTERN') and name ne 'PATTERN-1'. The following is not + /// a valid filter example: $filter=location eq 'westus'. + /// The number of results to return per page for the list operation. Valid range for top parameter is 1 + /// to 100. If not specified, the default number of results to be returned is 20 items per page. + /// an instance that will receive events. + /// + /// A that will be complete when handling of the response is completed. + /// + internal async global::System.Threading.Tasks.Task EventSubscriptionsListByResource_Validate(string subscriptionId, string resourceGroupName, string providerNamespace, string resourceTypeName, string resourceName, string Filter, int? Top, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener eventListener) + { + using( NoSynchronizationContext ) + { + await eventListener.AssertNotNull(nameof(subscriptionId),subscriptionId); + await eventListener.AssertNotNull(nameof(resourceGroupName),resourceGroupName); + await eventListener.AssertNotNull(nameof(providerNamespace),providerNamespace); + await eventListener.AssertNotNull(nameof(resourceTypeName),resourceTypeName); + await eventListener.AssertNotNull(nameof(resourceName),resourceName); + await eventListener.AssertNotNull(nameof(Filter),Filter); + } + } + + /// + /// List all global event subscriptions under a specific Azure subscription and resource group. + /// + /// Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription + /// ID forms part of the URI for every service call. + /// The name of the resource group within the user's subscription. + /// The query used to filter the search results using OData syntax. Filtering is permitted on the 'name' + /// property only and with limited number of OData operations. These operations are: the 'contains' function as well as the + /// following logical operations: not, and, or, eq (for equal), and ne (for not equal). No arithmetic operations are supported. + /// The following is a valid filter example: $filter=contains(namE, 'PATTERN') and name ne 'PATTERN-1'. The following is not + /// a valid filter example: $filter=location eq 'westus'. + /// The number of results to return per page for the list operation. Valid range for top parameter is 1 + /// to 100. If not specified, the default number of results to be returned is 20 items per page. + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task EventSubscriptionsListGlobalByResourceGroup(string subscriptionId, string resourceGroupName, string Filter, int? Top, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func onDefault, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync sender) + { + var apiVersion = @"2021-10-15-preview"; + // Constant Parameters + using( NoSynchronizationContext ) + { + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + global::System.Uri.EscapeDataString(subscriptionId) + + "/resourceGroups/" + + global::System.Uri.EscapeDataString(resourceGroupName) + + "/providers/Microsoft.EventGrid/eventSubscriptions" + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + + "&" + + (string.IsNullOrEmpty(Filter) ? global::System.String.Empty : "$filter=" + global::System.Uri.EscapeDataString(Filter)) + + "&" + + (null == Top ? global::System.String.Empty : "$top=" + global::System.Uri.EscapeDataString(Top.ToString())) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Method.Get, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.EventSubscriptionsListGlobalByResourceGroup_Call(request,onOk,onDefault,eventListener,sender); + } + } + + /// + /// List all global event subscriptions under a resource group for a specific topic type. + /// + /// Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription + /// ID forms part of the URI for every service call. + /// The name of the resource group within the user's subscription. + /// Name of the topic type. + /// The query used to filter the search results using OData syntax. Filtering is permitted on the 'name' + /// property only and with limited number of OData operations. These operations are: the 'contains' function as well as the + /// following logical operations: not, and, or, eq (for equal), and ne (for not equal). No arithmetic operations are supported. + /// The following is a valid filter example: $filter=contains(namE, 'PATTERN') and name ne 'PATTERN-1'. The following is not + /// a valid filter example: $filter=location eq 'westus'. + /// The number of results to return per page for the list operation. Valid range for top parameter is 1 + /// to 100. If not specified, the default number of results to be returned is 20 items per page. + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task EventSubscriptionsListGlobalByResourceGroupForTopicType(string subscriptionId, string resourceGroupName, string topicTypeName, string Filter, int? Top, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func onDefault, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync sender) + { + var apiVersion = @"2021-10-15-preview"; + // Constant Parameters + using( NoSynchronizationContext ) + { + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + global::System.Uri.EscapeDataString(subscriptionId) + + "/resourceGroups/" + + global::System.Uri.EscapeDataString(resourceGroupName) + + "/providers/Microsoft.EventGrid/topicTypes/" + + global::System.Uri.EscapeDataString(topicTypeName) + + "/eventSubscriptions" + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + + "&" + + (string.IsNullOrEmpty(Filter) ? global::System.String.Empty : "$filter=" + global::System.Uri.EscapeDataString(Filter)) + + "&" + + (null == Top ? global::System.String.Empty : "$top=" + global::System.Uri.EscapeDataString(Top.ToString())) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Method.Get, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.EventSubscriptionsListGlobalByResourceGroupForTopicType_Call(request,onOk,onDefault,eventListener,sender); + } + } + + /// + /// List all global event subscriptions under a resource group for a specific topic type. + /// + /// + /// The query used to filter the search results using OData syntax. Filtering is permitted on the 'name' + /// property only and with limited number of OData operations. These operations are: the 'contains' function as well as the + /// following logical operations: not, and, or, eq (for equal), and ne (for not equal). No arithmetic operations are supported. + /// The following is a valid filter example: $filter=contains(namE, 'PATTERN') and name ne 'PATTERN-1'. The following is not + /// a valid filter example: $filter=location eq 'westus'. + /// The number of results to return per page for the list operation. Valid range for top parameter is 1 + /// to 100. If not specified, the default number of results to be returned is 20 items per page. + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task EventSubscriptionsListGlobalByResourceGroupForTopicTypeViaIdentity(global::System.String viaIdentity, string Filter, int? Top, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func onDefault, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync sender) + { + var apiVersion = @"2021-10-15-preview"; + // Constant Parameters + using( NoSynchronizationContext ) + { + // verify that Identity format is an exact match for uri + + var _match = new global::System.Text.RegularExpressions.Regex("^/subscriptions/(?[^/]+)/resourceGroups/(?[^/]+)/providers/Microsoft.EventGrid/topicTypes/(?[^/]+)/eventSubscriptions$", global::System.Text.RegularExpressions.RegexOptions.IgnoreCase).Match(viaIdentity); + if (!_match.Success) + { + throw new global::System.Exception("Invalid identity for URI '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.EventGrid/topicTypes/{topicTypeName}/eventSubscriptions'"); + } + + // replace URI parameters with values from identity + var subscriptionId = _match.Groups["subscriptionId"].Value; + var resourceGroupName = _match.Groups["resourceGroupName"].Value; + var topicTypeName = _match.Groups["topicTypeName"].Value; + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + subscriptionId + + "/resourceGroups/" + + resourceGroupName + + "/providers/Microsoft.EventGrid/topicTypes/" + + topicTypeName + + "/eventSubscriptions" + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + + "&" + + (string.IsNullOrEmpty(Filter) ? global::System.String.Empty : "$filter=" + global::System.Uri.EscapeDataString(Filter)) + + "&" + + (null == Top ? global::System.String.Empty : "$top=" + global::System.Uri.EscapeDataString(Top.ToString())) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Method.Get, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.EventSubscriptionsListGlobalByResourceGroupForTopicType_Call(request,onOk,onDefault,eventListener,sender); + } + } + + /// + /// Actual wire call for method. + /// + /// the prepared HttpRequestMessage to send. + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + internal async global::System.Threading.Tasks.Task EventSubscriptionsListGlobalByResourceGroupForTopicType_Call(global::System.Net.Http.HttpRequestMessage request, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func onDefault, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync sender) + { + using( NoSynchronizationContext ) + { + global::System.Net.Http.HttpResponseMessage _response = null; + try + { + var sendTask = sender.SendAsync(request, eventListener); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.BeforeCall, request); if( eventListener.Token.IsCancellationRequested ) { return; } + _response = await sendTask; + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.ResponseCreated, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + var _contentType = _response.Content.Headers.ContentType?.MediaType; + + switch ( _response.StatusCode ) + { + case global::System.Net.HttpStatusCode.OK: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onOk(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.EventSubscriptionsListResult.FromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + default: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onDefault(_response); + break; + } + } + } + finally + { + // finally statements + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Finally, request, _response); + _response?.Dispose(); + request?.Dispose(); + } + } + } + + /// + /// Validation method for method. Call this like the + /// actual call, but you will get validation events back. + /// + /// Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription + /// ID forms part of the URI for every service call. + /// The name of the resource group within the user's subscription. + /// Name of the topic type. + /// The query used to filter the search results using OData syntax. Filtering is permitted on the 'name' + /// property only and with limited number of OData operations. These operations are: the 'contains' function as well as the + /// following logical operations: not, and, or, eq (for equal), and ne (for not equal). No arithmetic operations are supported. + /// The following is a valid filter example: $filter=contains(namE, 'PATTERN') and name ne 'PATTERN-1'. The following is not + /// a valid filter example: $filter=location eq 'westus'. + /// The number of results to return per page for the list operation. Valid range for top parameter is 1 + /// to 100. If not specified, the default number of results to be returned is 20 items per page. + /// an instance that will receive events. + /// + /// A that will be complete when handling of the response is completed. + /// + internal async global::System.Threading.Tasks.Task EventSubscriptionsListGlobalByResourceGroupForTopicType_Validate(string subscriptionId, string resourceGroupName, string topicTypeName, string Filter, int? Top, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener eventListener) + { + using( NoSynchronizationContext ) + { + await eventListener.AssertNotNull(nameof(subscriptionId),subscriptionId); + await eventListener.AssertNotNull(nameof(resourceGroupName),resourceGroupName); + await eventListener.AssertNotNull(nameof(topicTypeName),topicTypeName); + await eventListener.AssertNotNull(nameof(Filter),Filter); + } + } + + /// + /// List all global event subscriptions under a specific Azure subscription and resource group. + /// + /// + /// The query used to filter the search results using OData syntax. Filtering is permitted on the 'name' + /// property only and with limited number of OData operations. These operations are: the 'contains' function as well as the + /// following logical operations: not, and, or, eq (for equal), and ne (for not equal). No arithmetic operations are supported. + /// The following is a valid filter example: $filter=contains(namE, 'PATTERN') and name ne 'PATTERN-1'. The following is not + /// a valid filter example: $filter=location eq 'westus'. + /// The number of results to return per page for the list operation. Valid range for top parameter is 1 + /// to 100. If not specified, the default number of results to be returned is 20 items per page. + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task EventSubscriptionsListGlobalByResourceGroupViaIdentity(global::System.String viaIdentity, string Filter, int? Top, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func onDefault, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync sender) + { + var apiVersion = @"2021-10-15-preview"; + // Constant Parameters + using( NoSynchronizationContext ) + { + // verify that Identity format is an exact match for uri + + var _match = new global::System.Text.RegularExpressions.Regex("^/subscriptions/(?[^/]+)/resourceGroups/(?[^/]+)/providers/Microsoft.EventGrid/eventSubscriptions$", global::System.Text.RegularExpressions.RegexOptions.IgnoreCase).Match(viaIdentity); + if (!_match.Success) + { + throw new global::System.Exception("Invalid identity for URI '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.EventGrid/eventSubscriptions'"); + } + + // 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.EventGrid/eventSubscriptions" + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + + "&" + + (string.IsNullOrEmpty(Filter) ? global::System.String.Empty : "$filter=" + global::System.Uri.EscapeDataString(Filter)) + + "&" + + (null == Top ? global::System.String.Empty : "$top=" + global::System.Uri.EscapeDataString(Top.ToString())) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Method.Get, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.EventSubscriptionsListGlobalByResourceGroup_Call(request,onOk,onDefault,eventListener,sender); + } + } + + /// + /// Actual wire call for method. + /// + /// the prepared HttpRequestMessage to send. + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + internal async global::System.Threading.Tasks.Task EventSubscriptionsListGlobalByResourceGroup_Call(global::System.Net.Http.HttpRequestMessage request, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func onDefault, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync sender) + { + using( NoSynchronizationContext ) + { + global::System.Net.Http.HttpResponseMessage _response = null; + try + { + var sendTask = sender.SendAsync(request, eventListener); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.BeforeCall, request); if( eventListener.Token.IsCancellationRequested ) { return; } + _response = await sendTask; + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.ResponseCreated, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + var _contentType = _response.Content.Headers.ContentType?.MediaType; + + switch ( _response.StatusCode ) + { + case global::System.Net.HttpStatusCode.OK: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onOk(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.EventSubscriptionsListResult.FromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + default: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onDefault(_response); + break; + } + } + } + finally + { + // finally statements + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Finally, request, _response); + _response?.Dispose(); + request?.Dispose(); + } + } + } + + /// + /// Validation method for method. Call this like the actual call, + /// but you will get validation events back. + /// + /// Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription + /// ID forms part of the URI for every service call. + /// The name of the resource group within the user's subscription. + /// The query used to filter the search results using OData syntax. Filtering is permitted on the 'name' + /// property only and with limited number of OData operations. These operations are: the 'contains' function as well as the + /// following logical operations: not, and, or, eq (for equal), and ne (for not equal). No arithmetic operations are supported. + /// The following is a valid filter example: $filter=contains(namE, 'PATTERN') and name ne 'PATTERN-1'. The following is not + /// a valid filter example: $filter=location eq 'westus'. + /// The number of results to return per page for the list operation. Valid range for top parameter is 1 + /// to 100. If not specified, the default number of results to be returned is 20 items per page. + /// an instance that will receive events. + /// + /// A that will be complete when handling of the response is completed. + /// + internal async global::System.Threading.Tasks.Task EventSubscriptionsListGlobalByResourceGroup_Validate(string subscriptionId, string resourceGroupName, string Filter, int? Top, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener eventListener) + { + using( NoSynchronizationContext ) + { + await eventListener.AssertNotNull(nameof(subscriptionId),subscriptionId); + await eventListener.AssertNotNull(nameof(resourceGroupName),resourceGroupName); + await eventListener.AssertNotNull(nameof(Filter),Filter); + } + } + + /// + /// List all aggregated global event subscriptions under a specific Azure subscription. + /// + /// Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription + /// ID forms part of the URI for every service call. + /// The query used to filter the search results using OData syntax. Filtering is permitted on the 'name' + /// property only and with limited number of OData operations. These operations are: the 'contains' function as well as the + /// following logical operations: not, and, or, eq (for equal), and ne (for not equal). No arithmetic operations are supported. + /// The following is a valid filter example: $filter=contains(namE, 'PATTERN') and name ne 'PATTERN-1'. The following is not + /// a valid filter example: $filter=location eq 'westus'. + /// The number of results to return per page for the list operation. Valid range for top parameter is 1 + /// to 100. If not specified, the default number of results to be returned is 20 items per page. + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task EventSubscriptionsListGlobalBySubscription(string subscriptionId, string Filter, int? Top, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func onDefault, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync sender) + { + var apiVersion = @"2021-10-15-preview"; + // Constant Parameters + using( NoSynchronizationContext ) + { + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + global::System.Uri.EscapeDataString(subscriptionId) + + "/providers/Microsoft.EventGrid/eventSubscriptions" + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + + "&" + + (string.IsNullOrEmpty(Filter) ? global::System.String.Empty : "$filter=" + global::System.Uri.EscapeDataString(Filter)) + + "&" + + (null == Top ? global::System.String.Empty : "$top=" + global::System.Uri.EscapeDataString(Top.ToString())) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Method.Get, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.EventSubscriptionsListGlobalBySubscription_Call(request,onOk,onDefault,eventListener,sender); + } + } + + /// + /// List all global event subscriptions under an Azure subscription for a topic type. + /// + /// Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription + /// ID forms part of the URI for every service call. + /// Name of the topic type. + /// The query used to filter the search results using OData syntax. Filtering is permitted on the 'name' + /// property only and with limited number of OData operations. These operations are: the 'contains' function as well as the + /// following logical operations: not, and, or, eq (for equal), and ne (for not equal). No arithmetic operations are supported. + /// The following is a valid filter example: $filter=contains(namE, 'PATTERN') and name ne 'PATTERN-1'. The following is not + /// a valid filter example: $filter=location eq 'westus'. + /// The number of results to return per page for the list operation. Valid range for top parameter is 1 + /// to 100. If not specified, the default number of results to be returned is 20 items per page. + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task EventSubscriptionsListGlobalBySubscriptionForTopicType(string subscriptionId, string topicTypeName, string Filter, int? Top, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func onDefault, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync sender) + { + var apiVersion = @"2021-10-15-preview"; + // Constant Parameters + using( NoSynchronizationContext ) + { + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + global::System.Uri.EscapeDataString(subscriptionId) + + "/providers/Microsoft.EventGrid/topicTypes/" + + global::System.Uri.EscapeDataString(topicTypeName) + + "/eventSubscriptions" + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + + "&" + + (string.IsNullOrEmpty(Filter) ? global::System.String.Empty : "$filter=" + global::System.Uri.EscapeDataString(Filter)) + + "&" + + (null == Top ? global::System.String.Empty : "$top=" + global::System.Uri.EscapeDataString(Top.ToString())) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Method.Get, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.EventSubscriptionsListGlobalBySubscriptionForTopicType_Call(request,onOk,onDefault,eventListener,sender); + } + } + + /// + /// List all global event subscriptions under an Azure subscription for a topic type. + /// + /// + /// The query used to filter the search results using OData syntax. Filtering is permitted on the 'name' + /// property only and with limited number of OData operations. These operations are: the 'contains' function as well as the + /// following logical operations: not, and, or, eq (for equal), and ne (for not equal). No arithmetic operations are supported. + /// The following is a valid filter example: $filter=contains(namE, 'PATTERN') and name ne 'PATTERN-1'. The following is not + /// a valid filter example: $filter=location eq 'westus'. + /// The number of results to return per page for the list operation. Valid range for top parameter is 1 + /// to 100. If not specified, the default number of results to be returned is 20 items per page. + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task EventSubscriptionsListGlobalBySubscriptionForTopicTypeViaIdentity(global::System.String viaIdentity, string Filter, int? Top, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func onDefault, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync sender) + { + var apiVersion = @"2021-10-15-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.EventGrid/topicTypes/(?[^/]+)/eventSubscriptions$", global::System.Text.RegularExpressions.RegexOptions.IgnoreCase).Match(viaIdentity); + if (!_match.Success) + { + throw new global::System.Exception("Invalid identity for URI '/subscriptions/{subscriptionId}/providers/Microsoft.EventGrid/topicTypes/{topicTypeName}/eventSubscriptions'"); + } + + // replace URI parameters with values from identity + var subscriptionId = _match.Groups["subscriptionId"].Value; + var topicTypeName = _match.Groups["topicTypeName"].Value; + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + subscriptionId + + "/providers/Microsoft.EventGrid/topicTypes/" + + topicTypeName + + "/eventSubscriptions" + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + + "&" + + (string.IsNullOrEmpty(Filter) ? global::System.String.Empty : "$filter=" + global::System.Uri.EscapeDataString(Filter)) + + "&" + + (null == Top ? global::System.String.Empty : "$top=" + global::System.Uri.EscapeDataString(Top.ToString())) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Method.Get, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.EventSubscriptionsListGlobalBySubscriptionForTopicType_Call(request,onOk,onDefault,eventListener,sender); + } + } + + /// + /// Actual wire call for method. + /// + /// the prepared HttpRequestMessage to send. + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + internal async global::System.Threading.Tasks.Task EventSubscriptionsListGlobalBySubscriptionForTopicType_Call(global::System.Net.Http.HttpRequestMessage request, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func onDefault, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync sender) + { + using( NoSynchronizationContext ) + { + global::System.Net.Http.HttpResponseMessage _response = null; + try + { + var sendTask = sender.SendAsync(request, eventListener); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.BeforeCall, request); if( eventListener.Token.IsCancellationRequested ) { return; } + _response = await sendTask; + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.ResponseCreated, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + var _contentType = _response.Content.Headers.ContentType?.MediaType; + + switch ( _response.StatusCode ) + { + case global::System.Net.HttpStatusCode.OK: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onOk(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.EventSubscriptionsListResult.FromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + default: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onDefault(_response); + break; + } + } + } + finally + { + // finally statements + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Finally, request, _response); + _response?.Dispose(); + request?.Dispose(); + } + } + } + + /// + /// Validation method for method. Call this like the + /// actual call, but you will get validation events back. + /// + /// Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription + /// ID forms part of the URI for every service call. + /// Name of the topic type. + /// The query used to filter the search results using OData syntax. Filtering is permitted on the 'name' + /// property only and with limited number of OData operations. These operations are: the 'contains' function as well as the + /// following logical operations: not, and, or, eq (for equal), and ne (for not equal). No arithmetic operations are supported. + /// The following is a valid filter example: $filter=contains(namE, 'PATTERN') and name ne 'PATTERN-1'. The following is not + /// a valid filter example: $filter=location eq 'westus'. + /// The number of results to return per page for the list operation. Valid range for top parameter is 1 + /// to 100. If not specified, the default number of results to be returned is 20 items per page. + /// an instance that will receive events. + /// + /// A that will be complete when handling of the response is completed. + /// + internal async global::System.Threading.Tasks.Task EventSubscriptionsListGlobalBySubscriptionForTopicType_Validate(string subscriptionId, string topicTypeName, string Filter, int? Top, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener eventListener) + { + using( NoSynchronizationContext ) + { + await eventListener.AssertNotNull(nameof(subscriptionId),subscriptionId); + await eventListener.AssertNotNull(nameof(topicTypeName),topicTypeName); + await eventListener.AssertNotNull(nameof(Filter),Filter); + } + } + + /// + /// List all aggregated global event subscriptions under a specific Azure subscription. + /// + /// + /// The query used to filter the search results using OData syntax. Filtering is permitted on the 'name' + /// property only and with limited number of OData operations. These operations are: the 'contains' function as well as the + /// following logical operations: not, and, or, eq (for equal), and ne (for not equal). No arithmetic operations are supported. + /// The following is a valid filter example: $filter=contains(namE, 'PATTERN') and name ne 'PATTERN-1'. The following is not + /// a valid filter example: $filter=location eq 'westus'. + /// The number of results to return per page for the list operation. Valid range for top parameter is 1 + /// to 100. If not specified, the default number of results to be returned is 20 items per page. + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task EventSubscriptionsListGlobalBySubscriptionViaIdentity(global::System.String viaIdentity, string Filter, int? Top, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func onDefault, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync sender) + { + var apiVersion = @"2021-10-15-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.EventGrid/eventSubscriptions$", global::System.Text.RegularExpressions.RegexOptions.IgnoreCase).Match(viaIdentity); + if (!_match.Success) + { + throw new global::System.Exception("Invalid identity for URI '/subscriptions/{subscriptionId}/providers/Microsoft.EventGrid/eventSubscriptions'"); + } + + // 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.EventGrid/eventSubscriptions" + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + + "&" + + (string.IsNullOrEmpty(Filter) ? global::System.String.Empty : "$filter=" + global::System.Uri.EscapeDataString(Filter)) + + "&" + + (null == Top ? global::System.String.Empty : "$top=" + global::System.Uri.EscapeDataString(Top.ToString())) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Method.Get, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.EventSubscriptionsListGlobalBySubscription_Call(request,onOk,onDefault,eventListener,sender); + } + } + + /// + /// Actual wire call for method. + /// + /// the prepared HttpRequestMessage to send. + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + internal async global::System.Threading.Tasks.Task EventSubscriptionsListGlobalBySubscription_Call(global::System.Net.Http.HttpRequestMessage request, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func onDefault, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync sender) + { + using( NoSynchronizationContext ) + { + global::System.Net.Http.HttpResponseMessage _response = null; + try + { + var sendTask = sender.SendAsync(request, eventListener); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.BeforeCall, request); if( eventListener.Token.IsCancellationRequested ) { return; } + _response = await sendTask; + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.ResponseCreated, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + var _contentType = _response.Content.Headers.ContentType?.MediaType; + + switch ( _response.StatusCode ) + { + case global::System.Net.HttpStatusCode.OK: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onOk(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.EventSubscriptionsListResult.FromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + default: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onDefault(_response); + break; + } + } + } + finally + { + // finally statements + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Finally, request, _response); + _response?.Dispose(); + request?.Dispose(); + } + } + } + + /// + /// Validation method for method. Call this like the actual call, + /// but you will get validation events back. + /// + /// Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription + /// ID forms part of the URI for every service call. + /// The query used to filter the search results using OData syntax. Filtering is permitted on the 'name' + /// property only and with limited number of OData operations. These operations are: the 'contains' function as well as the + /// following logical operations: not, and, or, eq (for equal), and ne (for not equal). No arithmetic operations are supported. + /// The following is a valid filter example: $filter=contains(namE, 'PATTERN') and name ne 'PATTERN-1'. The following is not + /// a valid filter example: $filter=location eq 'westus'. + /// The number of results to return per page for the list operation. Valid range for top parameter is 1 + /// to 100. If not specified, the default number of results to be returned is 20 items per page. + /// an instance that will receive events. + /// + /// A that will be complete when handling of the response is completed. + /// + internal async global::System.Threading.Tasks.Task EventSubscriptionsListGlobalBySubscription_Validate(string subscriptionId, string Filter, int? Top, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener eventListener) + { + using( NoSynchronizationContext ) + { + await eventListener.AssertNotNull(nameof(subscriptionId),subscriptionId); + await eventListener.AssertNotNull(nameof(Filter),Filter); + } + } + + /// + /// List all event subscriptions from the given location under a specific Azure subscription and resource group. + /// + /// Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription + /// ID forms part of the URI for every service call. + /// The name of the resource group within the user's subscription. + /// Name of the location. + /// The query used to filter the search results using OData syntax. Filtering is permitted on the 'name' + /// property only and with limited number of OData operations. These operations are: the 'contains' function as well as the + /// following logical operations: not, and, or, eq (for equal), and ne (for not equal). No arithmetic operations are supported. + /// The following is a valid filter example: $filter=contains(namE, 'PATTERN') and name ne 'PATTERN-1'. The following is not + /// a valid filter example: $filter=location eq 'westus'. + /// The number of results to return per page for the list operation. Valid range for top parameter is 1 + /// to 100. If not specified, the default number of results to be returned is 20 items per page. + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task EventSubscriptionsListRegionalByResourceGroup(string subscriptionId, string resourceGroupName, string location, string Filter, int? Top, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func onDefault, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync sender) + { + var apiVersion = @"2021-10-15-preview"; + // Constant Parameters + using( NoSynchronizationContext ) + { + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + global::System.Uri.EscapeDataString(subscriptionId) + + "/resourceGroups/" + + global::System.Uri.EscapeDataString(resourceGroupName) + + "/providers/Microsoft.EventGrid/locations/" + + global::System.Uri.EscapeDataString(location) + + "/eventSubscriptions" + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + + "&" + + (string.IsNullOrEmpty(Filter) ? global::System.String.Empty : "$filter=" + global::System.Uri.EscapeDataString(Filter)) + + "&" + + (null == Top ? global::System.String.Empty : "$top=" + global::System.Uri.EscapeDataString(Top.ToString())) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Method.Get, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.EventSubscriptionsListRegionalByResourceGroup_Call(request,onOk,onDefault,eventListener,sender); + } + } + + /// + /// List all event subscriptions from the given location under a specific Azure subscription and resource group and topic + /// type. + /// + /// Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription + /// ID forms part of the URI for every service call. + /// The name of the resource group within the user's subscription. + /// Name of the location. + /// Name of the topic type. + /// The query used to filter the search results using OData syntax. Filtering is permitted on the 'name' + /// property only and with limited number of OData operations. These operations are: the 'contains' function as well as the + /// following logical operations: not, and, or, eq (for equal), and ne (for not equal). No arithmetic operations are supported. + /// The following is a valid filter example: $filter=contains(namE, 'PATTERN') and name ne 'PATTERN-1'. The following is not + /// a valid filter example: $filter=location eq 'westus'. + /// The number of results to return per page for the list operation. Valid range for top parameter is 1 + /// to 100. If not specified, the default number of results to be returned is 20 items per page. + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task EventSubscriptionsListRegionalByResourceGroupForTopicType(string subscriptionId, string resourceGroupName, string location, string topicTypeName, string Filter, int? Top, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func onDefault, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync sender) + { + var apiVersion = @"2021-10-15-preview"; + // Constant Parameters + using( NoSynchronizationContext ) + { + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + global::System.Uri.EscapeDataString(subscriptionId) + + "/resourceGroups/" + + global::System.Uri.EscapeDataString(resourceGroupName) + + "/providers/Microsoft.EventGrid/locations/" + + global::System.Uri.EscapeDataString(location) + + "/topicTypes/" + + global::System.Uri.EscapeDataString(topicTypeName) + + "/eventSubscriptions" + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + + "&" + + (string.IsNullOrEmpty(Filter) ? global::System.String.Empty : "$filter=" + global::System.Uri.EscapeDataString(Filter)) + + "&" + + (null == Top ? global::System.String.Empty : "$top=" + global::System.Uri.EscapeDataString(Top.ToString())) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Method.Get, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.EventSubscriptionsListRegionalByResourceGroupForTopicType_Call(request,onOk,onDefault,eventListener,sender); + } + } + + /// + /// List all event subscriptions from the given location under a specific Azure subscription and resource group and topic + /// type. + /// + /// + /// The query used to filter the search results using OData syntax. Filtering is permitted on the 'name' + /// property only and with limited number of OData operations. These operations are: the 'contains' function as well as the + /// following logical operations: not, and, or, eq (for equal), and ne (for not equal). No arithmetic operations are supported. + /// The following is a valid filter example: $filter=contains(namE, 'PATTERN') and name ne 'PATTERN-1'. The following is not + /// a valid filter example: $filter=location eq 'westus'. + /// The number of results to return per page for the list operation. Valid range for top parameter is 1 + /// to 100. If not specified, the default number of results to be returned is 20 items per page. + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task EventSubscriptionsListRegionalByResourceGroupForTopicTypeViaIdentity(global::System.String viaIdentity, string Filter, int? Top, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func onDefault, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync sender) + { + var apiVersion = @"2021-10-15-preview"; + // Constant Parameters + using( NoSynchronizationContext ) + { + // verify that Identity format is an exact match for uri + + var _match = new global::System.Text.RegularExpressions.Regex("^/subscriptions/(?[^/]+)/resourceGroups/(?[^/]+)/providers/Microsoft.EventGrid/locations/(?[^/]+)/topicTypes/(?[^/]+)/eventSubscriptions$", global::System.Text.RegularExpressions.RegexOptions.IgnoreCase).Match(viaIdentity); + if (!_match.Success) + { + throw new global::System.Exception("Invalid identity for URI '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.EventGrid/locations/{location}/topicTypes/{topicTypeName}/eventSubscriptions'"); + } + + // replace URI parameters with values from identity + var subscriptionId = _match.Groups["subscriptionId"].Value; + var resourceGroupName = _match.Groups["resourceGroupName"].Value; + var location = _match.Groups["location"].Value; + var topicTypeName = _match.Groups["topicTypeName"].Value; + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + subscriptionId + + "/resourceGroups/" + + resourceGroupName + + "/providers/Microsoft.EventGrid/locations/" + + location + + "/topicTypes/" + + topicTypeName + + "/eventSubscriptions" + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + + "&" + + (string.IsNullOrEmpty(Filter) ? global::System.String.Empty : "$filter=" + global::System.Uri.EscapeDataString(Filter)) + + "&" + + (null == Top ? global::System.String.Empty : "$top=" + global::System.Uri.EscapeDataString(Top.ToString())) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Method.Get, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.EventSubscriptionsListRegionalByResourceGroupForTopicType_Call(request,onOk,onDefault,eventListener,sender); + } + } + + /// + /// Actual wire call for method. + /// + /// the prepared HttpRequestMessage to send. + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + internal async global::System.Threading.Tasks.Task EventSubscriptionsListRegionalByResourceGroupForTopicType_Call(global::System.Net.Http.HttpRequestMessage request, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func onDefault, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync sender) + { + using( NoSynchronizationContext ) + { + global::System.Net.Http.HttpResponseMessage _response = null; + try + { + var sendTask = sender.SendAsync(request, eventListener); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.BeforeCall, request); if( eventListener.Token.IsCancellationRequested ) { return; } + _response = await sendTask; + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.ResponseCreated, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + var _contentType = _response.Content.Headers.ContentType?.MediaType; + + switch ( _response.StatusCode ) + { + case global::System.Net.HttpStatusCode.OK: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onOk(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.EventSubscriptionsListResult.FromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + default: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onDefault(_response); + break; + } + } + } + finally + { + // finally statements + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Finally, request, _response); + _response?.Dispose(); + request?.Dispose(); + } + } + } + + /// + /// Validation method for method. Call this like + /// the actual call, but you will get validation events back. + /// + /// Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription + /// ID forms part of the URI for every service call. + /// The name of the resource group within the user's subscription. + /// Name of the location. + /// Name of the topic type. + /// The query used to filter the search results using OData syntax. Filtering is permitted on the 'name' + /// property only and with limited number of OData operations. These operations are: the 'contains' function as well as the + /// following logical operations: not, and, or, eq (for equal), and ne (for not equal). No arithmetic operations are supported. + /// The following is a valid filter example: $filter=contains(namE, 'PATTERN') and name ne 'PATTERN-1'. The following is not + /// a valid filter example: $filter=location eq 'westus'. + /// The number of results to return per page for the list operation. Valid range for top parameter is 1 + /// to 100. If not specified, the default number of results to be returned is 20 items per page. + /// an instance that will receive events. + /// + /// A that will be complete when handling of the response is completed. + /// + internal async global::System.Threading.Tasks.Task EventSubscriptionsListRegionalByResourceGroupForTopicType_Validate(string subscriptionId, string resourceGroupName, string location, string topicTypeName, string Filter, int? Top, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener eventListener) + { + using( NoSynchronizationContext ) + { + await eventListener.AssertNotNull(nameof(subscriptionId),subscriptionId); + await eventListener.AssertNotNull(nameof(resourceGroupName),resourceGroupName); + await eventListener.AssertNotNull(nameof(location),location); + await eventListener.AssertNotNull(nameof(topicTypeName),topicTypeName); + await eventListener.AssertNotNull(nameof(Filter),Filter); + } + } + + /// + /// List all event subscriptions from the given location under a specific Azure subscription and resource group. + /// + /// + /// The query used to filter the search results using OData syntax. Filtering is permitted on the 'name' + /// property only and with limited number of OData operations. These operations are: the 'contains' function as well as the + /// following logical operations: not, and, or, eq (for equal), and ne (for not equal). No arithmetic operations are supported. + /// The following is a valid filter example: $filter=contains(namE, 'PATTERN') and name ne 'PATTERN-1'. The following is not + /// a valid filter example: $filter=location eq 'westus'. + /// The number of results to return per page for the list operation. Valid range for top parameter is 1 + /// to 100. If not specified, the default number of results to be returned is 20 items per page. + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task EventSubscriptionsListRegionalByResourceGroupViaIdentity(global::System.String viaIdentity, string Filter, int? Top, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func onDefault, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync sender) + { + var apiVersion = @"2021-10-15-preview"; + // Constant Parameters + using( NoSynchronizationContext ) + { + // verify that Identity format is an exact match for uri + + var _match = new global::System.Text.RegularExpressions.Regex("^/subscriptions/(?[^/]+)/resourceGroups/(?[^/]+)/providers/Microsoft.EventGrid/locations/(?[^/]+)/eventSubscriptions$", global::System.Text.RegularExpressions.RegexOptions.IgnoreCase).Match(viaIdentity); + if (!_match.Success) + { + throw new global::System.Exception("Invalid identity for URI '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.EventGrid/locations/{location}/eventSubscriptions'"); + } + + // replace URI parameters with values from identity + var subscriptionId = _match.Groups["subscriptionId"].Value; + var resourceGroupName = _match.Groups["resourceGroupName"].Value; + var location = _match.Groups["location"].Value; + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + subscriptionId + + "/resourceGroups/" + + resourceGroupName + + "/providers/Microsoft.EventGrid/locations/" + + location + + "/eventSubscriptions" + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + + "&" + + (string.IsNullOrEmpty(Filter) ? global::System.String.Empty : "$filter=" + global::System.Uri.EscapeDataString(Filter)) + + "&" + + (null == Top ? global::System.String.Empty : "$top=" + global::System.Uri.EscapeDataString(Top.ToString())) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Method.Get, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.EventSubscriptionsListRegionalByResourceGroup_Call(request,onOk,onDefault,eventListener,sender); + } + } + + /// + /// Actual wire call for method. + /// + /// the prepared HttpRequestMessage to send. + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + internal async global::System.Threading.Tasks.Task EventSubscriptionsListRegionalByResourceGroup_Call(global::System.Net.Http.HttpRequestMessage request, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func onDefault, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync sender) + { + using( NoSynchronizationContext ) + { + global::System.Net.Http.HttpResponseMessage _response = null; + try + { + var sendTask = sender.SendAsync(request, eventListener); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.BeforeCall, request); if( eventListener.Token.IsCancellationRequested ) { return; } + _response = await sendTask; + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.ResponseCreated, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + var _contentType = _response.Content.Headers.ContentType?.MediaType; + + switch ( _response.StatusCode ) + { + case global::System.Net.HttpStatusCode.OK: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onOk(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.EventSubscriptionsListResult.FromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + default: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onDefault(_response); + break; + } + } + } + finally + { + // finally statements + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Finally, request, _response); + _response?.Dispose(); + request?.Dispose(); + } + } + } + + /// + /// Validation method for method. Call this like the actual call, + /// but you will get validation events back. + /// + /// Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription + /// ID forms part of the URI for every service call. + /// The name of the resource group within the user's subscription. + /// Name of the location. + /// The query used to filter the search results using OData syntax. Filtering is permitted on the 'name' + /// property only and with limited number of OData operations. These operations are: the 'contains' function as well as the + /// following logical operations: not, and, or, eq (for equal), and ne (for not equal). No arithmetic operations are supported. + /// The following is a valid filter example: $filter=contains(namE, 'PATTERN') and name ne 'PATTERN-1'. The following is not + /// a valid filter example: $filter=location eq 'westus'. + /// The number of results to return per page for the list operation. Valid range for top parameter is 1 + /// to 100. If not specified, the default number of results to be returned is 20 items per page. + /// an instance that will receive events. + /// + /// A that will be complete when handling of the response is completed. + /// + internal async global::System.Threading.Tasks.Task EventSubscriptionsListRegionalByResourceGroup_Validate(string subscriptionId, string resourceGroupName, string location, string Filter, int? Top, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener eventListener) + { + using( NoSynchronizationContext ) + { + await eventListener.AssertNotNull(nameof(subscriptionId),subscriptionId); + await eventListener.AssertNotNull(nameof(resourceGroupName),resourceGroupName); + await eventListener.AssertNotNull(nameof(location),location); + await eventListener.AssertNotNull(nameof(Filter),Filter); + } + } + + /// + /// List all event subscriptions from the given location under a specific Azure subscription. + /// + /// Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription + /// ID forms part of the URI for every service call. + /// Name of the location. + /// The query used to filter the search results using OData syntax. Filtering is permitted on the 'name' + /// property only and with limited number of OData operations. These operations are: the 'contains' function as well as the + /// following logical operations: not, and, or, eq (for equal), and ne (for not equal). No arithmetic operations are supported. + /// The following is a valid filter example: $filter=contains(namE, 'PATTERN') and name ne 'PATTERN-1'. The following is not + /// a valid filter example: $filter=location eq 'westus'. + /// The number of results to return per page for the list operation. Valid range for top parameter is 1 + /// to 100. If not specified, the default number of results to be returned is 20 items per page. + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task EventSubscriptionsListRegionalBySubscription(string subscriptionId, string location, string Filter, int? Top, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func onDefault, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync sender) + { + var apiVersion = @"2021-10-15-preview"; + // Constant Parameters + using( NoSynchronizationContext ) + { + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + global::System.Uri.EscapeDataString(subscriptionId) + + "/providers/Microsoft.EventGrid/locations/" + + global::System.Uri.EscapeDataString(location) + + "/eventSubscriptions" + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + + "&" + + (string.IsNullOrEmpty(Filter) ? global::System.String.Empty : "$filter=" + global::System.Uri.EscapeDataString(Filter)) + + "&" + + (null == Top ? global::System.String.Empty : "$top=" + global::System.Uri.EscapeDataString(Top.ToString())) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Method.Get, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.EventSubscriptionsListRegionalBySubscription_Call(request,onOk,onDefault,eventListener,sender); + } + } + + /// + /// List all event subscriptions from the given location under a specific Azure subscription and topic type. + /// + /// Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription + /// ID forms part of the URI for every service call. + /// Name of the location. + /// Name of the topic type. + /// The query used to filter the search results using OData syntax. Filtering is permitted on the 'name' + /// property only and with limited number of OData operations. These operations are: the 'contains' function as well as the + /// following logical operations: not, and, or, eq (for equal), and ne (for not equal). No arithmetic operations are supported. + /// The following is a valid filter example: $filter=contains(namE, 'PATTERN') and name ne 'PATTERN-1'. The following is not + /// a valid filter example: $filter=location eq 'westus'. + /// The number of results to return per page for the list operation. Valid range for top parameter is 1 + /// to 100. If not specified, the default number of results to be returned is 20 items per page. + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task EventSubscriptionsListRegionalBySubscriptionForTopicType(string subscriptionId, string location, string topicTypeName, string Filter, int? Top, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func onDefault, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync sender) + { + var apiVersion = @"2021-10-15-preview"; + // Constant Parameters + using( NoSynchronizationContext ) + { + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + global::System.Uri.EscapeDataString(subscriptionId) + + "/providers/Microsoft.EventGrid/locations/" + + global::System.Uri.EscapeDataString(location) + + "/topicTypes/" + + global::System.Uri.EscapeDataString(topicTypeName) + + "/eventSubscriptions" + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + + "&" + + (string.IsNullOrEmpty(Filter) ? global::System.String.Empty : "$filter=" + global::System.Uri.EscapeDataString(Filter)) + + "&" + + (null == Top ? global::System.String.Empty : "$top=" + global::System.Uri.EscapeDataString(Top.ToString())) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Method.Get, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.EventSubscriptionsListRegionalBySubscriptionForTopicType_Call(request,onOk,onDefault,eventListener,sender); + } + } + + /// + /// List all event subscriptions from the given location under a specific Azure subscription and topic type. + /// + /// + /// The query used to filter the search results using OData syntax. Filtering is permitted on the 'name' + /// property only and with limited number of OData operations. These operations are: the 'contains' function as well as the + /// following logical operations: not, and, or, eq (for equal), and ne (for not equal). No arithmetic operations are supported. + /// The following is a valid filter example: $filter=contains(namE, 'PATTERN') and name ne 'PATTERN-1'. The following is not + /// a valid filter example: $filter=location eq 'westus'. + /// The number of results to return per page for the list operation. Valid range for top parameter is 1 + /// to 100. If not specified, the default number of results to be returned is 20 items per page. + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task EventSubscriptionsListRegionalBySubscriptionForTopicTypeViaIdentity(global::System.String viaIdentity, string Filter, int? Top, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func onDefault, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync sender) + { + var apiVersion = @"2021-10-15-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.EventGrid/locations/(?[^/]+)/topicTypes/(?[^/]+)/eventSubscriptions$", global::System.Text.RegularExpressions.RegexOptions.IgnoreCase).Match(viaIdentity); + if (!_match.Success) + { + throw new global::System.Exception("Invalid identity for URI '/subscriptions/{subscriptionId}/providers/Microsoft.EventGrid/locations/{location}/topicTypes/{topicTypeName}/eventSubscriptions'"); + } + + // replace URI parameters with values from identity + var subscriptionId = _match.Groups["subscriptionId"].Value; + var location = _match.Groups["location"].Value; + var topicTypeName = _match.Groups["topicTypeName"].Value; + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + subscriptionId + + "/providers/Microsoft.EventGrid/locations/" + + location + + "/topicTypes/" + + topicTypeName + + "/eventSubscriptions" + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + + "&" + + (string.IsNullOrEmpty(Filter) ? global::System.String.Empty : "$filter=" + global::System.Uri.EscapeDataString(Filter)) + + "&" + + (null == Top ? global::System.String.Empty : "$top=" + global::System.Uri.EscapeDataString(Top.ToString())) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Method.Get, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.EventSubscriptionsListRegionalBySubscriptionForTopicType_Call(request,onOk,onDefault,eventListener,sender); + } + } + + /// + /// Actual wire call for method. + /// + /// the prepared HttpRequestMessage to send. + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + internal async global::System.Threading.Tasks.Task EventSubscriptionsListRegionalBySubscriptionForTopicType_Call(global::System.Net.Http.HttpRequestMessage request, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func onDefault, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync sender) + { + using( NoSynchronizationContext ) + { + global::System.Net.Http.HttpResponseMessage _response = null; + try + { + var sendTask = sender.SendAsync(request, eventListener); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.BeforeCall, request); if( eventListener.Token.IsCancellationRequested ) { return; } + _response = await sendTask; + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.ResponseCreated, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + var _contentType = _response.Content.Headers.ContentType?.MediaType; + + switch ( _response.StatusCode ) + { + case global::System.Net.HttpStatusCode.OK: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onOk(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.EventSubscriptionsListResult.FromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + default: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onDefault(_response); + break; + } + } + } + finally + { + // finally statements + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Finally, request, _response); + _response?.Dispose(); + request?.Dispose(); + } + } + } + + /// + /// Validation method for method. Call this like the + /// actual call, but you will get validation events back. + /// + /// Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription + /// ID forms part of the URI for every service call. + /// Name of the location. + /// Name of the topic type. + /// The query used to filter the search results using OData syntax. Filtering is permitted on the 'name' + /// property only and with limited number of OData operations. These operations are: the 'contains' function as well as the + /// following logical operations: not, and, or, eq (for equal), and ne (for not equal). No arithmetic operations are supported. + /// The following is a valid filter example: $filter=contains(namE, 'PATTERN') and name ne 'PATTERN-1'. The following is not + /// a valid filter example: $filter=location eq 'westus'. + /// The number of results to return per page for the list operation. Valid range for top parameter is 1 + /// to 100. If not specified, the default number of results to be returned is 20 items per page. + /// an instance that will receive events. + /// + /// A that will be complete when handling of the response is completed. + /// + internal async global::System.Threading.Tasks.Task EventSubscriptionsListRegionalBySubscriptionForTopicType_Validate(string subscriptionId, string location, string topicTypeName, string Filter, int? Top, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener eventListener) + { + using( NoSynchronizationContext ) + { + await eventListener.AssertNotNull(nameof(subscriptionId),subscriptionId); + await eventListener.AssertNotNull(nameof(location),location); + await eventListener.AssertNotNull(nameof(topicTypeName),topicTypeName); + await eventListener.AssertNotNull(nameof(Filter),Filter); + } + } + + /// + /// List all event subscriptions from the given location under a specific Azure subscription. + /// + /// + /// The query used to filter the search results using OData syntax. Filtering is permitted on the 'name' + /// property only and with limited number of OData operations. These operations are: the 'contains' function as well as the + /// following logical operations: not, and, or, eq (for equal), and ne (for not equal). No arithmetic operations are supported. + /// The following is a valid filter example: $filter=contains(namE, 'PATTERN') and name ne 'PATTERN-1'. The following is not + /// a valid filter example: $filter=location eq 'westus'. + /// The number of results to return per page for the list operation. Valid range for top parameter is 1 + /// to 100. If not specified, the default number of results to be returned is 20 items per page. + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task EventSubscriptionsListRegionalBySubscriptionViaIdentity(global::System.String viaIdentity, string Filter, int? Top, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func onDefault, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync sender) + { + var apiVersion = @"2021-10-15-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.EventGrid/locations/(?[^/]+)/eventSubscriptions$", global::System.Text.RegularExpressions.RegexOptions.IgnoreCase).Match(viaIdentity); + if (!_match.Success) + { + throw new global::System.Exception("Invalid identity for URI '/subscriptions/{subscriptionId}/providers/Microsoft.EventGrid/locations/{location}/eventSubscriptions'"); + } + + // replace URI parameters with values from identity + var subscriptionId = _match.Groups["subscriptionId"].Value; + var location = _match.Groups["location"].Value; + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + subscriptionId + + "/providers/Microsoft.EventGrid/locations/" + + location + + "/eventSubscriptions" + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + + "&" + + (string.IsNullOrEmpty(Filter) ? global::System.String.Empty : "$filter=" + global::System.Uri.EscapeDataString(Filter)) + + "&" + + (null == Top ? global::System.String.Empty : "$top=" + global::System.Uri.EscapeDataString(Top.ToString())) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Method.Get, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.EventSubscriptionsListRegionalBySubscription_Call(request,onOk,onDefault,eventListener,sender); + } + } + + /// + /// Actual wire call for method. + /// + /// the prepared HttpRequestMessage to send. + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + internal async global::System.Threading.Tasks.Task EventSubscriptionsListRegionalBySubscription_Call(global::System.Net.Http.HttpRequestMessage request, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func onDefault, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync sender) + { + using( NoSynchronizationContext ) + { + global::System.Net.Http.HttpResponseMessage _response = null; + try + { + var sendTask = sender.SendAsync(request, eventListener); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.BeforeCall, request); if( eventListener.Token.IsCancellationRequested ) { return; } + _response = await sendTask; + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.ResponseCreated, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + var _contentType = _response.Content.Headers.ContentType?.MediaType; + + switch ( _response.StatusCode ) + { + case global::System.Net.HttpStatusCode.OK: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onOk(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.EventSubscriptionsListResult.FromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + default: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onDefault(_response); + break; + } + } + } + finally + { + // finally statements + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Finally, request, _response); + _response?.Dispose(); + request?.Dispose(); + } + } + } + + /// + /// Validation method for method. Call this like the actual call, + /// but you will get validation events back. + /// + /// Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription + /// ID forms part of the URI for every service call. + /// Name of the location. + /// The query used to filter the search results using OData syntax. Filtering is permitted on the 'name' + /// property only and with limited number of OData operations. These operations are: the 'contains' function as well as the + /// following logical operations: not, and, or, eq (for equal), and ne (for not equal). No arithmetic operations are supported. + /// The following is a valid filter example: $filter=contains(namE, 'PATTERN') and name ne 'PATTERN-1'. The following is not + /// a valid filter example: $filter=location eq 'westus'. + /// The number of results to return per page for the list operation. Valid range for top parameter is 1 + /// to 100. If not specified, the default number of results to be returned is 20 items per page. + /// an instance that will receive events. + /// + /// A that will be complete when handling of the response is completed. + /// + internal async global::System.Threading.Tasks.Task EventSubscriptionsListRegionalBySubscription_Validate(string subscriptionId, string location, string Filter, int? Top, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener eventListener) + { + using( NoSynchronizationContext ) + { + await eventListener.AssertNotNull(nameof(subscriptionId),subscriptionId); + await eventListener.AssertNotNull(nameof(location),location); + await eventListener.AssertNotNull(nameof(Filter),Filter); + } + } + + /// Asynchronously updates an existing event subscription. + /// The scope of existing event subscription. The scope can be a subscription, or a resource group, or + /// a top level resource belonging to a resource provider namespace, or an EventGrid topic. For example, use '/subscriptions/{subscriptionId}/' + /// for a subscription, '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}' for a resource group, and '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}' + /// for a resource, and '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.EventGrid/topics/{topicName}' + /// for an EventGrid topic. + /// Name of the event subscription to be updated. + /// Updated event subscription information. + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task EventSubscriptionsUpdate(string scope, string eventSubscriptionName, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionUpdateParameters body, global::System.Func onDefault, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync sender) + { + var apiVersion = @"2021-10-15-preview"; + // Constant Parameters + using( NoSynchronizationContext ) + { + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/" + + (scope) + + "/providers/Microsoft.EventGrid/eventSubscriptions/" + + global::System.Uri.EscapeDataString(eventSubscriptionName) + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Method.Patch, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // set body content + request.Content = new global::System.Net.Http.StringContent(null != body ? body.ToJson(null).ToString() : @"{}", global::System.Text.Encoding.UTF8); + request.Content.Headers.ContentType = global::System.Net.Http.Headers.MediaTypeHeaderValue.Parse("application/json"); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.BodyContentSet); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.EventSubscriptionsUpdate_Call(request,onDefault,eventListener,sender); + } + } + + /// Asynchronously updates an existing event subscription. + /// + /// Updated event subscription information. + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task EventSubscriptionsUpdateViaIdentity(global::System.String viaIdentity, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionUpdateParameters body, global::System.Func onDefault, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync sender) + { + var apiVersion = @"2021-10-15-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.EventGrid/eventSubscriptions/(?[^/]+)$", global::System.Text.RegularExpressions.RegexOptions.IgnoreCase).Match(viaIdentity); + if (!_match.Success) + { + throw new global::System.Exception("Invalid identity for URI '/{scope}/providers/Microsoft.EventGrid/eventSubscriptions/{eventSubscriptionName}'"); + } + + // replace URI parameters with values from identity + var scope = _match.Groups["scope"].Value; + var eventSubscriptionName = _match.Groups["eventSubscriptionName"].Value; + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/" + + scope + + "/providers/Microsoft.EventGrid/eventSubscriptions/" + + eventSubscriptionName + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Method.Patch, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // set body content + request.Content = new global::System.Net.Http.StringContent(null != body ? body.ToJson(null).ToString() : @"{}", global::System.Text.Encoding.UTF8); + request.Content.Headers.ContentType = global::System.Net.Http.Headers.MediaTypeHeaderValue.Parse("application/json"); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.BodyContentSet); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.EventSubscriptionsUpdate_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.EventGrid.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + internal async global::System.Threading.Tasks.Task EventSubscriptionsUpdate_Call(global::System.Net.Http.HttpRequestMessage request, global::System.Func onDefault, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync sender) + { + using( NoSynchronizationContext ) + { + global::System.Net.Http.HttpResponseMessage _response = null; + try + { + var sendTask = sender.SendAsync(request, eventListener); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.BeforeCall, request); if( eventListener.Token.IsCancellationRequested ) { return; } + _response = await sendTask; + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.ResponseCreated, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + // this operation supports x-ms-long-running-operation + var _originalUri = request.RequestUri.AbsoluteUri; + // declared final-state-via: default + var asyncOperation = _response.GetFirstHeader(@"Azure-AsyncOperation"); + var location = _response.GetFirstHeader(@"Location"); + while (request.Method == System.Net.Http.HttpMethod.Put && _response.StatusCode == global::System.Net.HttpStatusCode.OK || _response.StatusCode == global::System.Net.HttpStatusCode.Created || _response.StatusCode == global::System.Net.HttpStatusCode.Accepted ) + { + + // get the delay before polling. (default to 30 seconds if not present) + int delay = (int)(_response.Headers.RetryAfter?.Delta?.TotalSeconds ?? 30); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.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.EventGrid.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.EventGrid.Runtime.Json.JsonNode.Parse(await _response.Content.ReadAsStringAsync()) is Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Runtime.UndeclaredResponseException(_response); + } + } + + // check for terminal status code + if (_response.StatusCode == global::System.Net.HttpStatusCode.Created || _response.StatusCode == global::System.Net.HttpStatusCode.Accepted ) + { + continue; + } + // we are done polling, do a request on final target? + if (!string.IsNullOrWhiteSpace(_originalUri)) + { + // create a new request with the final uri + request = request.CloneAndDispose(new global::System.Uri(_originalUri), Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onDefault(_response); + break; + } + } + } + finally + { + // finally statements + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.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 scope of existing event subscription. The scope can be a subscription, or a resource group, or + /// a top level resource belonging to a resource provider namespace, or an EventGrid topic. For example, use '/subscriptions/{subscriptionId}/' + /// for a subscription, '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}' for a resource group, and '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}' + /// for a resource, and '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.EventGrid/topics/{topicName}' + /// for an EventGrid topic. + /// Name of the event subscription to be updated. + /// Updated event subscription information. + /// an instance that will receive events. + /// + /// A that will be complete when handling of the response is completed. + /// + internal async global::System.Threading.Tasks.Task EventSubscriptionsUpdate_Validate(string scope, string eventSubscriptionName, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionUpdateParameters body, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener eventListener) + { + using( NoSynchronizationContext ) + { + await eventListener.AssertNotNull(nameof(scope),scope); + await eventListener.AssertNotNull(nameof(eventSubscriptionName),eventSubscriptionName); + await eventListener.AssertNotNull(nameof(body), body); + await eventListener.AssertObjectIsValid(nameof(body), body); + } + } + + /// Get the properties of an extension topic. + /// The identifier of the resource to which extension topic is queried. The scope can be a subscription, + /// or a resource group, or a top level resource belonging to a resource provider namespace. For example, use '/subscriptions/{subscriptionId}/' + /// for a subscription, '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}' for a resource group, and '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}' + /// for 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.EventGrid.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task ExtensionTopicsGet(string scope, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func onDefault, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync sender) + { + var apiVersion = @"2021-10-15-preview"; + // Constant Parameters + using( NoSynchronizationContext ) + { + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/" + + global::System.Uri.EscapeDataString(scope) + + "/providers/Microsoft.EventGrid/extensionTopics/default" + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Method.Get, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.ExtensionTopicsGet_Call(request,onOk,onDefault,eventListener,sender); + } + } + + /// Get the properties of an extension topic. + /// + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task ExtensionTopicsGetViaIdentity(global::System.String viaIdentity, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func onDefault, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync sender) + { + var apiVersion = @"2021-10-15-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.EventGrid/extensionTopics/default$", global::System.Text.RegularExpressions.RegexOptions.IgnoreCase).Match(viaIdentity); + if (!_match.Success) + { + throw new global::System.Exception("Invalid identity for URI '/{scope}/providers/Microsoft.EventGrid/extensionTopics/default'"); + } + + // replace URI parameters with values from identity + var scope = _match.Groups["scope"].Value; + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/" + + scope + + "/providers/Microsoft.EventGrid/extensionTopics/default" + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Method.Get, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.ExtensionTopicsGet_Call(request,onOk,onDefault,eventListener,sender); + } + } + + /// Actual wire call for method. + /// the prepared HttpRequestMessage to send. + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + internal async global::System.Threading.Tasks.Task ExtensionTopicsGet_Call(global::System.Net.Http.HttpRequestMessage request, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func onDefault, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync sender) + { + using( NoSynchronizationContext ) + { + global::System.Net.Http.HttpResponseMessage _response = null; + try + { + var sendTask = sender.SendAsync(request, eventListener); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.BeforeCall, request); if( eventListener.Token.IsCancellationRequested ) { return; } + _response = await sendTask; + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.ResponseCreated, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + var _contentType = _response.Content.Headers.ContentType?.MediaType; + + switch ( _response.StatusCode ) + { + case global::System.Net.HttpStatusCode.OK: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onOk(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ExtensionTopic.FromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + default: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onDefault(_response); + break; + } + } + } + finally + { + // finally statements + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.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 identifier of the resource to which extension topic is queried. The scope can be a subscription, + /// or a resource group, or a top level resource belonging to a resource provider namespace. For example, use '/subscriptions/{subscriptionId}/' + /// for a subscription, '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}' for a resource group, and '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}' + /// for 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 ExtensionTopicsGet_Validate(string scope, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener eventListener) + { + using( NoSynchronizationContext ) + { + await eventListener.AssertNotNull(nameof(scope),scope); + } + } + + /// + /// List the available operations supported by the Microsoft.EventGrid resource provider. + /// + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task OperationsList(global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func onDefault, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync sender) + { + var apiVersion = @"2021-10-15-preview"; + // Constant Parameters + using( NoSynchronizationContext ) + { + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/providers/Microsoft.EventGrid/operations" + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Method.Get, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.OperationsList_Call(request,onOk,onDefault,eventListener,sender); + } + } + + /// + /// List the available operations supported by the Microsoft.EventGrid resource provider. + /// + /// + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task OperationsListViaIdentity(global::System.String viaIdentity, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func onDefault, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync sender) + { + var apiVersion = @"2021-10-15-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.EventGrid/operations$", global::System.Text.RegularExpressions.RegexOptions.IgnoreCase).Match(viaIdentity); + if (!_match.Success) + { + throw new global::System.Exception("Invalid identity for URI '/providers/Microsoft.EventGrid/operations'"); + } + + // replace URI parameters with values from identity + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/providers/Microsoft.EventGrid/operations" + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Method.Get, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.OperationsList_Call(request,onOk,onDefault,eventListener,sender); + } + } + + /// Actual wire call for method. + /// the prepared HttpRequestMessage to send. + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + internal async global::System.Threading.Tasks.Task OperationsList_Call(global::System.Net.Http.HttpRequestMessage request, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func onDefault, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync sender) + { + using( NoSynchronizationContext ) + { + global::System.Net.Http.HttpResponseMessage _response = null; + try + { + var sendTask = sender.SendAsync(request, eventListener); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.BeforeCall, request); if( eventListener.Token.IsCancellationRequested ) { return; } + _response = await sendTask; + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.ResponseCreated, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + var _contentType = _response.Content.Headers.ContentType?.MediaType; + + switch ( _response.StatusCode ) + { + case global::System.Net.HttpStatusCode.OK: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onOk(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.OperationsListResult.FromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + default: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onDefault(_response); + break; + } + } + } + finally + { + // finally statements + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.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.EventGrid.Runtime.IEventListener eventListener) + { + using( NoSynchronizationContext ) + { + + } + } + + /// + /// Authorize a single partner either by partner registration immutable Id or by partner name. + /// + /// Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription + /// ID forms part of the URI for every service call. + /// The name of the resource group within the user's subscription. + /// The information of the partner to be authorized. + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task PartnerConfigurationsAuthorizePartner(string subscriptionId, string resourceGroupName, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartner body, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func onDefault, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync sender) + { + var apiVersion = @"2021-10-15-preview"; + // Constant Parameters + using( NoSynchronizationContext ) + { + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + global::System.Uri.EscapeDataString(subscriptionId) + + "/resourceGroups/" + + global::System.Uri.EscapeDataString(resourceGroupName) + + "/providers/Microsoft.EventGrid/partnerConfigurations/default/authorizePartner" + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Method.Post, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // set body content + request.Content = new global::System.Net.Http.StringContent(null != body ? body.ToJson(null).ToString() : @"{}", global::System.Text.Encoding.UTF8); + request.Content.Headers.ContentType = global::System.Net.Http.Headers.MediaTypeHeaderValue.Parse("application/json"); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.BodyContentSet); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.PartnerConfigurationsAuthorizePartner_Call(request,onOk,onDefault,eventListener,sender); + } + } + + /// + /// Authorize a single partner either by partner registration immutable Id or by partner name. + /// + /// + /// The information of the partner to be authorized. + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task PartnerConfigurationsAuthorizePartnerViaIdentity(global::System.String viaIdentity, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartner body, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func onDefault, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync sender) + { + var apiVersion = @"2021-10-15-preview"; + // Constant Parameters + using( NoSynchronizationContext ) + { + // verify that Identity format is an exact match for uri + + var _match = new global::System.Text.RegularExpressions.Regex("^/subscriptions/(?[^/]+)/resourceGroups/(?[^/]+)/providers/Microsoft.EventGrid/partnerConfigurations/default/authorizePartner$", global::System.Text.RegularExpressions.RegexOptions.IgnoreCase).Match(viaIdentity); + if (!_match.Success) + { + throw new global::System.Exception("Invalid identity for URI '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.EventGrid/partnerConfigurations/default/authorizePartner'"); + } + + // 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.EventGrid/partnerConfigurations/default/authorizePartner" + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Method.Post, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // set body content + request.Content = new global::System.Net.Http.StringContent(null != body ? body.ToJson(null).ToString() : @"{}", global::System.Text.Encoding.UTF8); + request.Content.Headers.ContentType = global::System.Net.Http.Headers.MediaTypeHeaderValue.Parse("application/json"); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.BodyContentSet); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.PartnerConfigurationsAuthorizePartner_Call(request,onOk,onDefault,eventListener,sender); + } + } + + /// + /// Actual wire call for method. + /// + /// the prepared HttpRequestMessage to send. + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + internal async global::System.Threading.Tasks.Task PartnerConfigurationsAuthorizePartner_Call(global::System.Net.Http.HttpRequestMessage request, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func onDefault, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync sender) + { + using( NoSynchronizationContext ) + { + global::System.Net.Http.HttpResponseMessage _response = null; + try + { + var sendTask = sender.SendAsync(request, eventListener); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.BeforeCall, request); if( eventListener.Token.IsCancellationRequested ) { return; } + _response = await sendTask; + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.ResponseCreated, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + var _contentType = _response.Content.Headers.ContentType?.MediaType; + + switch ( _response.StatusCode ) + { + case global::System.Net.HttpStatusCode.OK: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onOk(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.PartnerConfiguration.FromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + default: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onDefault(_response); + break; + } + } + } + finally + { + // finally statements + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Finally, request, _response); + _response?.Dispose(); + request?.Dispose(); + } + } + } + + /// + /// Validation method for method. Call this like the actual call, but + /// you will get validation events back. + /// + /// Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription + /// ID forms part of the URI for every service call. + /// The name of the resource group within the user's subscription. + /// The information of the partner to be authorized. + /// an instance that will receive events. + /// + /// A that will be complete when handling of the response is completed. + /// + internal async global::System.Threading.Tasks.Task PartnerConfigurationsAuthorizePartner_Validate(string subscriptionId, string resourceGroupName, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartner body, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener eventListener) + { + using( NoSynchronizationContext ) + { + await eventListener.AssertNotNull(nameof(subscriptionId),subscriptionId); + await eventListener.AssertNotNull(nameof(resourceGroupName),resourceGroupName); + await eventListener.AssertNotNull(nameof(body), body); + await eventListener.AssertObjectIsValid(nameof(body), body); + } + } + + /// + /// Synchronously creates or updates a partner configuration with the specified parameters. + /// + /// Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription + /// ID forms part of the URI for every service call. + /// The name of the resource group within the user's subscription. + /// Partner configuration information. + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task PartnerConfigurationsCreateOrUpdate(string subscriptionId, string resourceGroupName, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerConfiguration body, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func onDefault, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync sender) + { + var apiVersion = @"2021-10-15-preview"; + // Constant Parameters + using( NoSynchronizationContext ) + { + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + global::System.Uri.EscapeDataString(subscriptionId) + + "/resourceGroups/" + + global::System.Uri.EscapeDataString(resourceGroupName) + + "/providers/Microsoft.EventGrid/partnerConfigurations/default" + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Method.Put, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // set body content + request.Content = new global::System.Net.Http.StringContent(null != body ? body.ToJson(null).ToString() : @"{}", global::System.Text.Encoding.UTF8); + request.Content.Headers.ContentType = global::System.Net.Http.Headers.MediaTypeHeaderValue.Parse("application/json"); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.BodyContentSet); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.PartnerConfigurationsCreateOrUpdate_Call(request,onOk,onDefault,eventListener,sender); + } + } + + /// + /// Synchronously creates or updates a partner configuration with the specified parameters. + /// + /// + /// Partner configuration information. + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task PartnerConfigurationsCreateOrUpdateViaIdentity(global::System.String viaIdentity, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerConfiguration body, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func onDefault, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync sender) + { + var apiVersion = @"2021-10-15-preview"; + // Constant Parameters + using( NoSynchronizationContext ) + { + // verify that Identity format is an exact match for uri + + var _match = new global::System.Text.RegularExpressions.Regex("^/subscriptions/(?[^/]+)/resourceGroups/(?[^/]+)/providers/Microsoft.EventGrid/partnerConfigurations/default$", global::System.Text.RegularExpressions.RegexOptions.IgnoreCase).Match(viaIdentity); + if (!_match.Success) + { + throw new global::System.Exception("Invalid identity for URI '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.EventGrid/partnerConfigurations/default'"); + } + + // 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.EventGrid/partnerConfigurations/default" + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Method.Put, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // set body content + request.Content = new global::System.Net.Http.StringContent(null != body ? body.ToJson(null).ToString() : @"{}", global::System.Text.Encoding.UTF8); + request.Content.Headers.ContentType = global::System.Net.Http.Headers.MediaTypeHeaderValue.Parse("application/json"); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.BodyContentSet); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.PartnerConfigurationsCreateOrUpdate_Call(request,onOk,onDefault,eventListener,sender); + } + } + + /// Actual wire call for method. + /// the prepared HttpRequestMessage to send. + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + internal async global::System.Threading.Tasks.Task PartnerConfigurationsCreateOrUpdate_Call(global::System.Net.Http.HttpRequestMessage request, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func onDefault, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync sender) + { + using( NoSynchronizationContext ) + { + global::System.Net.Http.HttpResponseMessage _response = null; + try + { + var sendTask = sender.SendAsync(request, eventListener); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.BeforeCall, request); if( eventListener.Token.IsCancellationRequested ) { return; } + _response = await sendTask; + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.ResponseCreated, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + // this operation supports x-ms-long-running-operation + var _originalUri = request.RequestUri.AbsoluteUri; + // declared final-state-via: default + var asyncOperation = _response.GetFirstHeader(@"Azure-AsyncOperation"); + var location = _response.GetFirstHeader(@"Location"); + while (request.Method == System.Net.Http.HttpMethod.Put && _response.StatusCode == global::System.Net.HttpStatusCode.OK || _response.StatusCode == global::System.Net.HttpStatusCode.Created || _response.StatusCode == global::System.Net.HttpStatusCode.Accepted ) + { + + // get the delay before polling. (default to 30 seconds if not present) + int delay = (int)(_response.Headers.RetryAfter?.Delta?.TotalSeconds ?? 30); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.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.EventGrid.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.EventGrid.Runtime.Json.JsonNode.Parse(await _response.Content.ReadAsStringAsync()) is Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Runtime.UndeclaredResponseException(_response); + } + } + + // check for terminal status code + if (_response.StatusCode == global::System.Net.HttpStatusCode.Created || _response.StatusCode == global::System.Net.HttpStatusCode.Accepted ) + { + continue; + } + // we are done polling, do a request on final target? + if (!string.IsNullOrWhiteSpace(_originalUri)) + { + // create a new request with the final uri + request = request.CloneAndDispose(new global::System.Uri(_originalUri), Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onOk(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.PartnerConfiguration.FromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + default: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onDefault(_response); + break; + } + } + } + finally + { + // finally statements + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Finally, request, _response); + _response?.Dispose(); + request?.Dispose(); + } + } + } + + /// + /// Validation method for method. Call this like the actual call, but you + /// will get validation events back. + /// + /// Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription + /// ID forms part of the URI for every service call. + /// The name of the resource group within the user's subscription. + /// Partner configuration information. + /// an instance that will receive events. + /// + /// A that will be complete when handling of the response is completed. + /// + internal async global::System.Threading.Tasks.Task PartnerConfigurationsCreateOrUpdate_Validate(string subscriptionId, string resourceGroupName, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerConfiguration body, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener eventListener) + { + using( NoSynchronizationContext ) + { + await eventListener.AssertNotNull(nameof(subscriptionId),subscriptionId); + await eventListener.AssertNotNull(nameof(resourceGroupName),resourceGroupName); + await eventListener.AssertNotNull(nameof(body), body); + await eventListener.AssertObjectIsValid(nameof(body), body); + } + } + + /// Delete existing partner configuration. + /// Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription + /// ID forms part of the URI for every service call. + /// The name of the resource group within the user's subscription. + /// 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.EventGrid.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task PartnerConfigurationsDelete(string subscriptionId, string resourceGroupName, global::System.Func onOk, global::System.Func onNoContent, global::System.Func onDefault, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync sender) + { + var apiVersion = @"2021-10-15-preview"; + // Constant Parameters + using( NoSynchronizationContext ) + { + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + global::System.Uri.EscapeDataString(subscriptionId) + + "/resourceGroups/" + + global::System.Uri.EscapeDataString(resourceGroupName) + + "/providers/Microsoft.EventGrid/partnerConfigurations/default" + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Method.Delete, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.PartnerConfigurationsDelete_Call(request,onOk,onNoContent,onDefault,eventListener,sender); + } + } + + /// Delete existing partner configuration. + /// + /// 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.EventGrid.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task PartnerConfigurationsDeleteViaIdentity(global::System.String viaIdentity, global::System.Func onOk, global::System.Func onNoContent, global::System.Func onDefault, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync sender) + { + var apiVersion = @"2021-10-15-preview"; + // Constant Parameters + using( NoSynchronizationContext ) + { + // verify that Identity format is an exact match for uri + + var _match = new global::System.Text.RegularExpressions.Regex("^/subscriptions/(?[^/]+)/resourceGroups/(?[^/]+)/providers/Microsoft.EventGrid/partnerConfigurations/default$", global::System.Text.RegularExpressions.RegexOptions.IgnoreCase).Match(viaIdentity); + if (!_match.Success) + { + throw new global::System.Exception("Invalid identity for URI '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.EventGrid/partnerConfigurations/default'"); + } + + // 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.EventGrid/partnerConfigurations/default" + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Method.Delete, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.PartnerConfigurationsDelete_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.EventGrid.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + internal async global::System.Threading.Tasks.Task PartnerConfigurationsDelete_Call(global::System.Net.Http.HttpRequestMessage request, global::System.Func onOk, global::System.Func onNoContent, global::System.Func onDefault, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync sender) + { + using( NoSynchronizationContext ) + { + global::System.Net.Http.HttpResponseMessage _response = null; + try + { + var sendTask = sender.SendAsync(request, eventListener); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.BeforeCall, request); if( eventListener.Token.IsCancellationRequested ) { return; } + _response = await sendTask; + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.ResponseCreated, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + // this operation supports x-ms-long-running-operation + var _originalUri = request.RequestUri.AbsoluteUri; + // declared final-state-via: default + var _finalUri = _response.GetFirstHeader(@"Location"); + var asyncOperation = _response.GetFirstHeader(@"Azure-AsyncOperation"); + var location = _response.GetFirstHeader(@"Location"); + while (request.Method == System.Net.Http.HttpMethod.Put && _response.StatusCode == global::System.Net.HttpStatusCode.OK || _response.StatusCode == global::System.Net.HttpStatusCode.Created || _response.StatusCode == global::System.Net.HttpStatusCode.Accepted ) + { + + // get the delay before polling. (default to 30 seconds if not present) + int delay = (int)(_response.Headers.RetryAfter?.Delta?.TotalSeconds ?? 30); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.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.EventGrid.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.EventGrid.Runtime.Json.JsonNode.Parse(await _response.Content.ReadAsStringAsync()) is Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Runtime.UndeclaredResponseException(_response); + } + } + + // check for terminal status code + if (_response.StatusCode == global::System.Net.HttpStatusCode.Created || _response.StatusCode == global::System.Net.HttpStatusCode.Accepted ) + { + continue; + } + // we are done polling, do a request on final target? + if (!string.IsNullOrWhiteSpace(_finalUri)) + { + // create a new request with the final uri + request = request.CloneAndDispose(new global::System.Uri(_finalUri), Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.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.EventGrid.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onNoContent(_response); + break; + } + default: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onDefault(_response); + break; + } + } + } + finally + { + // finally statements + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Finally, request, _response); + _response?.Dispose(); + request?.Dispose(); + } + } + } + + /// + /// Validation method for method. Call this like the actual call, but you will + /// get validation events back. + /// + /// Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription + /// ID forms part of the URI for every service call. + /// The name of the resource group within the user's 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 PartnerConfigurationsDelete_Validate(string subscriptionId, string resourceGroupName, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener eventListener) + { + using( NoSynchronizationContext ) + { + await eventListener.AssertNotNull(nameof(subscriptionId),subscriptionId); + await eventListener.AssertNotNull(nameof(resourceGroupName),resourceGroupName); + } + } + + /// Get properties of a partner configuration. + /// Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription + /// ID forms part of the URI for every service call. + /// The name of the resource group within the user's 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.EventGrid.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task PartnerConfigurationsGet(string subscriptionId, string resourceGroupName, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func onDefault, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync sender) + { + var apiVersion = @"2021-10-15-preview"; + // Constant Parameters + using( NoSynchronizationContext ) + { + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + global::System.Uri.EscapeDataString(subscriptionId) + + "/resourceGroups/" + + global::System.Uri.EscapeDataString(resourceGroupName) + + "/providers/Microsoft.EventGrid/partnerConfigurations/default" + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Method.Get, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.PartnerConfigurationsGet_Call(request,onOk,onDefault,eventListener,sender); + } + } + + /// Get properties of a partner configuration. + /// + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task PartnerConfigurationsGetViaIdentity(global::System.String viaIdentity, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func onDefault, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync sender) + { + var apiVersion = @"2021-10-15-preview"; + // Constant Parameters + using( NoSynchronizationContext ) + { + // verify that Identity format is an exact match for uri + + var _match = new global::System.Text.RegularExpressions.Regex("^/subscriptions/(?[^/]+)/resourceGroups/(?[^/]+)/providers/Microsoft.EventGrid/partnerConfigurations/default$", global::System.Text.RegularExpressions.RegexOptions.IgnoreCase).Match(viaIdentity); + if (!_match.Success) + { + throw new global::System.Exception("Invalid identity for URI '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.EventGrid/partnerConfigurations/default'"); + } + + // 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.EventGrid/partnerConfigurations/default" + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Method.Get, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.PartnerConfigurationsGet_Call(request,onOk,onDefault,eventListener,sender); + } + } + + /// Actual wire call for method. + /// the prepared HttpRequestMessage to send. + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + internal async global::System.Threading.Tasks.Task PartnerConfigurationsGet_Call(global::System.Net.Http.HttpRequestMessage request, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func onDefault, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync sender) + { + using( NoSynchronizationContext ) + { + global::System.Net.Http.HttpResponseMessage _response = null; + try + { + var sendTask = sender.SendAsync(request, eventListener); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.BeforeCall, request); if( eventListener.Token.IsCancellationRequested ) { return; } + _response = await sendTask; + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.ResponseCreated, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + var _contentType = _response.Content.Headers.ContentType?.MediaType; + + switch ( _response.StatusCode ) + { + case global::System.Net.HttpStatusCode.OK: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onOk(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.PartnerConfiguration.FromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + default: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onDefault(_response); + break; + } + } + } + finally + { + // finally statements + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Finally, request, _response); + _response?.Dispose(); + request?.Dispose(); + } + } + } + + /// + /// Validation method for method. Call this like the actual call, but you will get + /// validation events back. + /// + /// Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription + /// ID forms part of the URI for every service call. + /// The name of the resource group within the user's 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 PartnerConfigurationsGet_Validate(string subscriptionId, string resourceGroupName, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener eventListener) + { + using( NoSynchronizationContext ) + { + await eventListener.AssertNotNull(nameof(subscriptionId),subscriptionId); + await eventListener.AssertNotNull(nameof(resourceGroupName),resourceGroupName); + } + } + + /// List all the partner configurations under a resource group. + /// Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription + /// ID forms part of the URI for every service call. + /// The name of the resource group within the user's 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.EventGrid.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task PartnerConfigurationsListByResourceGroup(string subscriptionId, string resourceGroupName, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func onDefault, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync sender) + { + var apiVersion = @"2021-10-15-preview"; + // Constant Parameters + using( NoSynchronizationContext ) + { + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + global::System.Uri.EscapeDataString(subscriptionId) + + "/resourceGroups/" + + global::System.Uri.EscapeDataString(resourceGroupName) + + "/providers/Microsoft.EventGrid/partnerConfigurations" + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Method.Get, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.PartnerConfigurationsListByResourceGroup_Call(request,onOk,onDefault,eventListener,sender); + } + } + + /// List all the partner configurations under a resource group. + /// + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task PartnerConfigurationsListByResourceGroupViaIdentity(global::System.String viaIdentity, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func onDefault, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync sender) + { + var apiVersion = @"2021-10-15-preview"; + // Constant Parameters + using( NoSynchronizationContext ) + { + // verify that Identity format is an exact match for uri + + var _match = new global::System.Text.RegularExpressions.Regex("^/subscriptions/(?[^/]+)/resourceGroups/(?[^/]+)/providers/Microsoft.EventGrid/partnerConfigurations$", global::System.Text.RegularExpressions.RegexOptions.IgnoreCase).Match(viaIdentity); + if (!_match.Success) + { + throw new global::System.Exception("Invalid identity for URI '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.EventGrid/partnerConfigurations'"); + } + + // 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.EventGrid/partnerConfigurations" + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Method.Get, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.PartnerConfigurationsListByResourceGroup_Call(request,onOk,onDefault,eventListener,sender); + } + } + + /// + /// Actual wire call for method. + /// + /// the prepared HttpRequestMessage to send. + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + internal async global::System.Threading.Tasks.Task PartnerConfigurationsListByResourceGroup_Call(global::System.Net.Http.HttpRequestMessage request, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func onDefault, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync sender) + { + using( NoSynchronizationContext ) + { + global::System.Net.Http.HttpResponseMessage _response = null; + try + { + var sendTask = sender.SendAsync(request, eventListener); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.BeforeCall, request); if( eventListener.Token.IsCancellationRequested ) { return; } + _response = await sendTask; + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.ResponseCreated, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + var _contentType = _response.Content.Headers.ContentType?.MediaType; + + switch ( _response.StatusCode ) + { + case global::System.Net.HttpStatusCode.OK: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onOk(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.PartnerConfigurationsListResult.FromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + default: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onDefault(_response); + break; + } + } + } + finally + { + // finally statements + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Finally, request, _response); + _response?.Dispose(); + request?.Dispose(); + } + } + } + + /// + /// Validation method for method. Call this like the actual call, + /// but you will get validation events back. + /// + /// Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription + /// ID forms part of the URI for every service call. + /// The name of the resource group within the user's 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 PartnerConfigurationsListByResourceGroup_Validate(string subscriptionId, string resourceGroupName, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener eventListener) + { + using( NoSynchronizationContext ) + { + await eventListener.AssertNotNull(nameof(subscriptionId),subscriptionId); + await eventListener.AssertNotNull(nameof(resourceGroupName),resourceGroupName); + } + } + + /// List all the partner configurations under an Azure subscription. + /// Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription + /// ID forms part of the URI for every service call. + /// The query used to filter the search results using OData syntax. Filtering is permitted on the 'name' + /// property only and with limited number of OData operations. These operations are: the 'contains' function as well as the + /// following logical operations: not, and, or, eq (for equal), and ne (for not equal). No arithmetic operations are supported. + /// The following is a valid filter example: $filter=contains(namE, 'PATTERN') and name ne 'PATTERN-1'. The following is not + /// a valid filter example: $filter=location eq 'westus'. + /// The number of results to return per page for the list operation. Valid range for top parameter is 1 + /// to 100. If not specified, the default number of results to be returned is 20 items per page. + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task PartnerConfigurationsListBySubscription(string subscriptionId, string Filter, int? Top, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func onDefault, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync sender) + { + var apiVersion = @"2021-10-15-preview"; + // Constant Parameters + using( NoSynchronizationContext ) + { + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + global::System.Uri.EscapeDataString(subscriptionId) + + "/providers/Microsoft.EventGrid/partnerConfigurations" + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + + "&" + + (string.IsNullOrEmpty(Filter) ? global::System.String.Empty : "$filter=" + global::System.Uri.EscapeDataString(Filter)) + + "&" + + (null == Top ? global::System.String.Empty : "$top=" + global::System.Uri.EscapeDataString(Top.ToString())) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Method.Get, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.PartnerConfigurationsListBySubscription_Call(request,onOk,onDefault,eventListener,sender); + } + } + + /// List all the partner configurations under an Azure subscription. + /// + /// The query used to filter the search results using OData syntax. Filtering is permitted on the 'name' + /// property only and with limited number of OData operations. These operations are: the 'contains' function as well as the + /// following logical operations: not, and, or, eq (for equal), and ne (for not equal). No arithmetic operations are supported. + /// The following is a valid filter example: $filter=contains(namE, 'PATTERN') and name ne 'PATTERN-1'. The following is not + /// a valid filter example: $filter=location eq 'westus'. + /// The number of results to return per page for the list operation. Valid range for top parameter is 1 + /// to 100. If not specified, the default number of results to be returned is 20 items per page. + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task PartnerConfigurationsListBySubscriptionViaIdentity(global::System.String viaIdentity, string Filter, int? Top, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func onDefault, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync sender) + { + var apiVersion = @"2021-10-15-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.EventGrid/partnerConfigurations$", global::System.Text.RegularExpressions.RegexOptions.IgnoreCase).Match(viaIdentity); + if (!_match.Success) + { + throw new global::System.Exception("Invalid identity for URI '/subscriptions/{subscriptionId}/providers/Microsoft.EventGrid/partnerConfigurations'"); + } + + // 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.EventGrid/partnerConfigurations" + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + + "&" + + (string.IsNullOrEmpty(Filter) ? global::System.String.Empty : "$filter=" + global::System.Uri.EscapeDataString(Filter)) + + "&" + + (null == Top ? global::System.String.Empty : "$top=" + global::System.Uri.EscapeDataString(Top.ToString())) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Method.Get, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.PartnerConfigurationsListBySubscription_Call(request,onOk,onDefault,eventListener,sender); + } + } + + /// + /// Actual wire call for method. + /// + /// the prepared HttpRequestMessage to send. + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + internal async global::System.Threading.Tasks.Task PartnerConfigurationsListBySubscription_Call(global::System.Net.Http.HttpRequestMessage request, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func onDefault, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync sender) + { + using( NoSynchronizationContext ) + { + global::System.Net.Http.HttpResponseMessage _response = null; + try + { + var sendTask = sender.SendAsync(request, eventListener); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.BeforeCall, request); if( eventListener.Token.IsCancellationRequested ) { return; } + _response = await sendTask; + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.ResponseCreated, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + var _contentType = _response.Content.Headers.ContentType?.MediaType; + + switch ( _response.StatusCode ) + { + case global::System.Net.HttpStatusCode.OK: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onOk(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.PartnerConfigurationsListResult.FromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + default: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onDefault(_response); + break; + } + } + } + finally + { + // finally statements + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Finally, request, _response); + _response?.Dispose(); + request?.Dispose(); + } + } + } + + /// + /// Validation method for method. Call this like the actual call, but + /// you will get validation events back. + /// + /// Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription + /// ID forms part of the URI for every service call. + /// The query used to filter the search results using OData syntax. Filtering is permitted on the 'name' + /// property only and with limited number of OData operations. These operations are: the 'contains' function as well as the + /// following logical operations: not, and, or, eq (for equal), and ne (for not equal). No arithmetic operations are supported. + /// The following is a valid filter example: $filter=contains(namE, 'PATTERN') and name ne 'PATTERN-1'. The following is not + /// a valid filter example: $filter=location eq 'westus'. + /// The number of results to return per page for the list operation. Valid range for top parameter is 1 + /// to 100. If not specified, the default number of results to be returned is 20 items per page. + /// an instance that will receive events. + /// + /// A that will be complete when handling of the response is completed. + /// + internal async global::System.Threading.Tasks.Task PartnerConfigurationsListBySubscription_Validate(string subscriptionId, string Filter, int? Top, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener eventListener) + { + using( NoSynchronizationContext ) + { + await eventListener.AssertNotNull(nameof(subscriptionId),subscriptionId); + await eventListener.AssertNotNull(nameof(Filter),Filter); + } + } + + /// + /// Unauthorize a single partner either by partner registration immutable Id or by partner name. + /// + /// Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription + /// ID forms part of the URI for every service call. + /// The name of the resource group within the user's subscription. + /// The information of the partner to be unauthorized. + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task PartnerConfigurationsUnauthorizePartner(string subscriptionId, string resourceGroupName, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartner body, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func onDefault, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync sender) + { + var apiVersion = @"2021-10-15-preview"; + // Constant Parameters + using( NoSynchronizationContext ) + { + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + global::System.Uri.EscapeDataString(subscriptionId) + + "/resourceGroups/" + + global::System.Uri.EscapeDataString(resourceGroupName) + + "/providers/Microsoft.EventGrid/partnerConfigurations/default/unauthorizePartner" + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Method.Post, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // set body content + request.Content = new global::System.Net.Http.StringContent(null != body ? body.ToJson(null).ToString() : @"{}", global::System.Text.Encoding.UTF8); + request.Content.Headers.ContentType = global::System.Net.Http.Headers.MediaTypeHeaderValue.Parse("application/json"); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.BodyContentSet); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.PartnerConfigurationsUnauthorizePartner_Call(request,onOk,onDefault,eventListener,sender); + } + } + + /// + /// Unauthorize a single partner either by partner registration immutable Id or by partner name. + /// + /// + /// The information of the partner to be unauthorized. + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task PartnerConfigurationsUnauthorizePartnerViaIdentity(global::System.String viaIdentity, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartner body, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func onDefault, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync sender) + { + var apiVersion = @"2021-10-15-preview"; + // Constant Parameters + using( NoSynchronizationContext ) + { + // verify that Identity format is an exact match for uri + + var _match = new global::System.Text.RegularExpressions.Regex("^/subscriptions/(?[^/]+)/resourceGroups/(?[^/]+)/providers/Microsoft.EventGrid/partnerConfigurations/default/unauthorizePartner$", global::System.Text.RegularExpressions.RegexOptions.IgnoreCase).Match(viaIdentity); + if (!_match.Success) + { + throw new global::System.Exception("Invalid identity for URI '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.EventGrid/partnerConfigurations/default/unauthorizePartner'"); + } + + // 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.EventGrid/partnerConfigurations/default/unauthorizePartner" + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Method.Post, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // set body content + request.Content = new global::System.Net.Http.StringContent(null != body ? body.ToJson(null).ToString() : @"{}", global::System.Text.Encoding.UTF8); + request.Content.Headers.ContentType = global::System.Net.Http.Headers.MediaTypeHeaderValue.Parse("application/json"); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.BodyContentSet); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.PartnerConfigurationsUnauthorizePartner_Call(request,onOk,onDefault,eventListener,sender); + } + } + + /// + /// Actual wire call for method. + /// + /// the prepared HttpRequestMessage to send. + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + internal async global::System.Threading.Tasks.Task PartnerConfigurationsUnauthorizePartner_Call(global::System.Net.Http.HttpRequestMessage request, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func onDefault, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync sender) + { + using( NoSynchronizationContext ) + { + global::System.Net.Http.HttpResponseMessage _response = null; + try + { + var sendTask = sender.SendAsync(request, eventListener); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.BeforeCall, request); if( eventListener.Token.IsCancellationRequested ) { return; } + _response = await sendTask; + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.ResponseCreated, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + var _contentType = _response.Content.Headers.ContentType?.MediaType; + + switch ( _response.StatusCode ) + { + case global::System.Net.HttpStatusCode.OK: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onOk(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.PartnerConfiguration.FromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + default: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onDefault(_response); + break; + } + } + } + finally + { + // finally statements + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Finally, request, _response); + _response?.Dispose(); + request?.Dispose(); + } + } + } + + /// + /// Validation method for method. Call this like the actual call, but + /// you will get validation events back. + /// + /// Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription + /// ID forms part of the URI for every service call. + /// The name of the resource group within the user's subscription. + /// The information of the partner to be unauthorized. + /// an instance that will receive events. + /// + /// A that will be complete when handling of the response is completed. + /// + internal async global::System.Threading.Tasks.Task PartnerConfigurationsUnauthorizePartner_Validate(string subscriptionId, string resourceGroupName, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartner body, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener eventListener) + { + using( NoSynchronizationContext ) + { + await eventListener.AssertNotNull(nameof(subscriptionId),subscriptionId); + await eventListener.AssertNotNull(nameof(resourceGroupName),resourceGroupName); + await eventListener.AssertNotNull(nameof(body), body); + await eventListener.AssertObjectIsValid(nameof(body), body); + } + } + + /// Synchronously updates a partner configuration with the specified parameters. + /// Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription + /// ID forms part of the URI for every service call. + /// The name of the resource group within the user's subscription. + /// Partner configuration update information. + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task PartnerConfigurationsUpdate(string subscriptionId, string resourceGroupName, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerConfigurationUpdateParameters body, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func onDefault, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync sender) + { + var apiVersion = @"2021-10-15-preview"; + // Constant Parameters + using( NoSynchronizationContext ) + { + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + global::System.Uri.EscapeDataString(subscriptionId) + + "/resourceGroups/" + + global::System.Uri.EscapeDataString(resourceGroupName) + + "/providers/Microsoft.EventGrid/partnerConfigurations/default" + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Method.Patch, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // set body content + request.Content = new global::System.Net.Http.StringContent(null != body ? body.ToJson(null).ToString() : @"{}", global::System.Text.Encoding.UTF8); + request.Content.Headers.ContentType = global::System.Net.Http.Headers.MediaTypeHeaderValue.Parse("application/json"); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.BodyContentSet); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.PartnerConfigurationsUpdate_Call(request,onOk,onDefault,eventListener,sender); + } + } + + /// Synchronously updates a partner configuration with the specified parameters. + /// + /// Partner configuration update information. + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task PartnerConfigurationsUpdateViaIdentity(global::System.String viaIdentity, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerConfigurationUpdateParameters body, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func onDefault, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync sender) + { + var apiVersion = @"2021-10-15-preview"; + // Constant Parameters + using( NoSynchronizationContext ) + { + // verify that Identity format is an exact match for uri + + var _match = new global::System.Text.RegularExpressions.Regex("^/subscriptions/(?[^/]+)/resourceGroups/(?[^/]+)/providers/Microsoft.EventGrid/partnerConfigurations/default$", global::System.Text.RegularExpressions.RegexOptions.IgnoreCase).Match(viaIdentity); + if (!_match.Success) + { + throw new global::System.Exception("Invalid identity for URI '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.EventGrid/partnerConfigurations/default'"); + } + + // 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.EventGrid/partnerConfigurations/default" + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Method.Patch, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // set body content + request.Content = new global::System.Net.Http.StringContent(null != body ? body.ToJson(null).ToString() : @"{}", global::System.Text.Encoding.UTF8); + request.Content.Headers.ContentType = global::System.Net.Http.Headers.MediaTypeHeaderValue.Parse("application/json"); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.BodyContentSet); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.PartnerConfigurationsUpdate_Call(request,onOk,onDefault,eventListener,sender); + } + } + + /// Actual wire call for method. + /// the prepared HttpRequestMessage to send. + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + internal async global::System.Threading.Tasks.Task PartnerConfigurationsUpdate_Call(global::System.Net.Http.HttpRequestMessage request, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func onDefault, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync sender) + { + using( NoSynchronizationContext ) + { + global::System.Net.Http.HttpResponseMessage _response = null; + try + { + var sendTask = sender.SendAsync(request, eventListener); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.BeforeCall, request); if( eventListener.Token.IsCancellationRequested ) { return; } + _response = await sendTask; + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.ResponseCreated, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + // this operation supports x-ms-long-running-operation + var _originalUri = request.RequestUri.AbsoluteUri; + // declared final-state-via: default + var asyncOperation = _response.GetFirstHeader(@"Azure-AsyncOperation"); + var location = _response.GetFirstHeader(@"Location"); + while (request.Method == System.Net.Http.HttpMethod.Put && _response.StatusCode == global::System.Net.HttpStatusCode.OK || _response.StatusCode == global::System.Net.HttpStatusCode.Created || _response.StatusCode == global::System.Net.HttpStatusCode.Accepted ) + { + + // get the delay before polling. (default to 30 seconds if not present) + int delay = (int)(_response.Headers.RetryAfter?.Delta?.TotalSeconds ?? 30); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.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.EventGrid.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.EventGrid.Runtime.Json.JsonNode.Parse(await _response.Content.ReadAsStringAsync()) is Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Runtime.UndeclaredResponseException(_response); + } + } + + // check for terminal status code + if (_response.StatusCode == global::System.Net.HttpStatusCode.Created || _response.StatusCode == global::System.Net.HttpStatusCode.Accepted ) + { + continue; + } + // we are done polling, do a request on final target? + if (!string.IsNullOrWhiteSpace(_originalUri)) + { + // create a new request with the final uri + request = request.CloneAndDispose(new global::System.Uri(_originalUri), Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onOk(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.PartnerConfiguration.FromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + default: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onDefault(_response); + break; + } + } + } + finally + { + // finally statements + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Finally, request, _response); + _response?.Dispose(); + request?.Dispose(); + } + } + } + + /// + /// Validation method for method. Call this like the actual call, but you will + /// get validation events back. + /// + /// Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription + /// ID forms part of the URI for every service call. + /// The name of the resource group within the user's subscription. + /// Partner configuration update information. + /// an instance that will receive events. + /// + /// A that will be complete when handling of the response is completed. + /// + internal async global::System.Threading.Tasks.Task PartnerConfigurationsUpdate_Validate(string subscriptionId, string resourceGroupName, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerConfigurationUpdateParameters body, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener eventListener) + { + using( NoSynchronizationContext ) + { + await eventListener.AssertNotNull(nameof(subscriptionId),subscriptionId); + await eventListener.AssertNotNull(nameof(resourceGroupName),resourceGroupName); + await eventListener.AssertNotNull(nameof(body), body); + await eventListener.AssertObjectIsValid(nameof(body), body); + } + } + + /// Activate a newly created partner destination. + /// Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription + /// ID forms part of the URI for every service call. + /// The name of the resource group within the user's subscription. + /// Name of the partner destination. + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task PartnerDestinationsActivate(string subscriptionId, string resourceGroupName, string partnerDestinationName, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func onDefault, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync sender) + { + var apiVersion = @"2021-10-15-preview"; + // Constant Parameters + using( NoSynchronizationContext ) + { + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + global::System.Uri.EscapeDataString(subscriptionId) + + "/resourceGroups/" + + global::System.Uri.EscapeDataString(resourceGroupName) + + "/providers/Microsoft.EventGrid/partnerDestinations/" + + global::System.Uri.EscapeDataString(partnerDestinationName) + + "/activate" + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Method.Post, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.PartnerDestinationsActivate_Call(request,onOk,onDefault,eventListener,sender); + } + } + + /// Activate a newly created partner destination. + /// + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task PartnerDestinationsActivateViaIdentity(global::System.String viaIdentity, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func onDefault, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync sender) + { + var apiVersion = @"2021-10-15-preview"; + // Constant Parameters + using( NoSynchronizationContext ) + { + // verify that Identity format is an exact match for uri + + var _match = new global::System.Text.RegularExpressions.Regex("^/subscriptions/(?[^/]+)/resourceGroups/(?[^/]+)/providers/Microsoft.EventGrid/partnerDestinations/(?[^/]+)/activate$", global::System.Text.RegularExpressions.RegexOptions.IgnoreCase).Match(viaIdentity); + if (!_match.Success) + { + throw new global::System.Exception("Invalid identity for URI '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.EventGrid/partnerDestinations/{partnerDestinationName}/activate'"); + } + + // replace URI parameters with values from identity + var subscriptionId = _match.Groups["subscriptionId"].Value; + var resourceGroupName = _match.Groups["resourceGroupName"].Value; + var partnerDestinationName = _match.Groups["partnerDestinationName"].Value; + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + subscriptionId + + "/resourceGroups/" + + resourceGroupName + + "/providers/Microsoft.EventGrid/partnerDestinations/" + + partnerDestinationName + + "/activate" + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Method.Post, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.PartnerDestinationsActivate_Call(request,onOk,onDefault,eventListener,sender); + } + } + + /// Actual wire call for method. + /// the prepared HttpRequestMessage to send. + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + internal async global::System.Threading.Tasks.Task PartnerDestinationsActivate_Call(global::System.Net.Http.HttpRequestMessage request, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func onDefault, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync sender) + { + using( NoSynchronizationContext ) + { + global::System.Net.Http.HttpResponseMessage _response = null; + try + { + var sendTask = sender.SendAsync(request, eventListener); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.BeforeCall, request); if( eventListener.Token.IsCancellationRequested ) { return; } + _response = await sendTask; + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.ResponseCreated, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + var _contentType = _response.Content.Headers.ContentType?.MediaType; + + switch ( _response.StatusCode ) + { + case global::System.Net.HttpStatusCode.OK: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onOk(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.PartnerDestination.FromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + default: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onDefault(_response); + break; + } + } + } + finally + { + // finally statements + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Finally, request, _response); + _response?.Dispose(); + request?.Dispose(); + } + } + } + + /// + /// Validation method for method. Call this like the actual call, but you will + /// get validation events back. + /// + /// Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription + /// ID forms part of the URI for every service call. + /// The name of the resource group within the user's subscription. + /// Name of the partner destination. + /// an instance that will receive events. + /// + /// A that will be complete when handling of the response is completed. + /// + internal async global::System.Threading.Tasks.Task PartnerDestinationsActivate_Validate(string subscriptionId, string resourceGroupName, string partnerDestinationName, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener eventListener) + { + using( NoSynchronizationContext ) + { + await eventListener.AssertNotNull(nameof(subscriptionId),subscriptionId); + await eventListener.AssertNotNull(nameof(resourceGroupName),resourceGroupName); + await eventListener.AssertNotNull(nameof(partnerDestinationName),partnerDestinationName); + } + } + + /// Asynchronously creates a new partner destination with the specified parameters. + /// Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription + /// ID forms part of the URI for every service call. + /// The name of the resource group within the user's subscription. + /// Name of the partner destination. + /// Partner destination create information. + /// 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.EventGrid.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task PartnerDestinationsCreateOrUpdate(string subscriptionId, string resourceGroupName, string partnerDestinationName, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerDestination body, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func, global::System.Threading.Tasks.Task> onCreated, global::System.Func onDefault, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync sender) + { + var apiVersion = @"2021-10-15-preview"; + // Constant Parameters + using( NoSynchronizationContext ) + { + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + global::System.Uri.EscapeDataString(subscriptionId) + + "/resourceGroups/" + + global::System.Uri.EscapeDataString(resourceGroupName) + + "/providers/Microsoft.EventGrid/partnerDestinations/" + + global::System.Uri.EscapeDataString(partnerDestinationName) + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Method.Put, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // set body content + request.Content = new global::System.Net.Http.StringContent(null != body ? body.ToJson(null).ToString() : @"{}", global::System.Text.Encoding.UTF8); + request.Content.Headers.ContentType = global::System.Net.Http.Headers.MediaTypeHeaderValue.Parse("application/json"); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.BodyContentSet); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.PartnerDestinationsCreateOrUpdate_Call(request,onOk,onCreated,onDefault,eventListener,sender); + } + } + + /// Asynchronously creates a new partner destination with the specified parameters. + /// + /// Partner destination create information. + /// 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.EventGrid.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task PartnerDestinationsCreateOrUpdateViaIdentity(global::System.String viaIdentity, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerDestination body, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func, global::System.Threading.Tasks.Task> onCreated, global::System.Func onDefault, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync sender) + { + var apiVersion = @"2021-10-15-preview"; + // Constant Parameters + using( NoSynchronizationContext ) + { + // verify that Identity format is an exact match for uri + + var _match = new global::System.Text.RegularExpressions.Regex("^/subscriptions/(?[^/]+)/resourceGroups/(?[^/]+)/providers/Microsoft.EventGrid/partnerDestinations/(?[^/]+)$", global::System.Text.RegularExpressions.RegexOptions.IgnoreCase).Match(viaIdentity); + if (!_match.Success) + { + throw new global::System.Exception("Invalid identity for URI '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.EventGrid/partnerDestinations/{partnerDestinationName}'"); + } + + // replace URI parameters with values from identity + var subscriptionId = _match.Groups["subscriptionId"].Value; + var resourceGroupName = _match.Groups["resourceGroupName"].Value; + var partnerDestinationName = _match.Groups["partnerDestinationName"].Value; + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + subscriptionId + + "/resourceGroups/" + + resourceGroupName + + "/providers/Microsoft.EventGrid/partnerDestinations/" + + partnerDestinationName + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Method.Put, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // set body content + request.Content = new global::System.Net.Http.StringContent(null != body ? body.ToJson(null).ToString() : @"{}", global::System.Text.Encoding.UTF8); + request.Content.Headers.ContentType = global::System.Net.Http.Headers.MediaTypeHeaderValue.Parse("application/json"); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.BodyContentSet); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.PartnerDestinationsCreateOrUpdate_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.EventGrid.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + internal async global::System.Threading.Tasks.Task PartnerDestinationsCreateOrUpdate_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 onDefault, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync sender) + { + using( NoSynchronizationContext ) + { + global::System.Net.Http.HttpResponseMessage _response = null; + try + { + var sendTask = sender.SendAsync(request, eventListener); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.BeforeCall, request); if( eventListener.Token.IsCancellationRequested ) { return; } + _response = await sendTask; + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.ResponseCreated, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + var _contentType = _response.Content.Headers.ContentType?.MediaType; + + switch ( _response.StatusCode ) + { + case global::System.Net.HttpStatusCode.OK: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onOk(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.PartnerDestination.FromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + case global::System.Net.HttpStatusCode.Created: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onCreated(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.PartnerDestination.FromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + default: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onDefault(_response); + break; + } + } + } + finally + { + // finally statements + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Finally, request, _response); + _response?.Dispose(); + request?.Dispose(); + } + } + } + + /// + /// Validation method for method. Call this like the actual call, but you + /// will get validation events back. + /// + /// Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription + /// ID forms part of the URI for every service call. + /// The name of the resource group within the user's subscription. + /// Name of the partner destination. + /// Partner destination create information. + /// an instance that will receive events. + /// + /// A that will be complete when handling of the response is completed. + /// + internal async global::System.Threading.Tasks.Task PartnerDestinationsCreateOrUpdate_Validate(string subscriptionId, string resourceGroupName, string partnerDestinationName, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerDestination body, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener eventListener) + { + using( NoSynchronizationContext ) + { + await eventListener.AssertNotNull(nameof(subscriptionId),subscriptionId); + await eventListener.AssertNotNull(nameof(resourceGroupName),resourceGroupName); + await eventListener.AssertNotNull(nameof(partnerDestinationName),partnerDestinationName); + await eventListener.AssertNotNull(nameof(body), body); + await eventListener.AssertObjectIsValid(nameof(body), body); + } + } + + /// Delete existing partner destination. + /// Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription + /// ID forms part of the URI for every service call. + /// The name of the resource group within the user's subscription. + /// Name of the partner destination. + /// 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.EventGrid.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task PartnerDestinationsDelete(string subscriptionId, string resourceGroupName, string partnerDestinationName, global::System.Func onOk, global::System.Func onNoContent, global::System.Func onDefault, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync sender) + { + var apiVersion = @"2021-10-15-preview"; + // Constant Parameters + using( NoSynchronizationContext ) + { + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + global::System.Uri.EscapeDataString(subscriptionId) + + "/resourceGroups/" + + global::System.Uri.EscapeDataString(resourceGroupName) + + "/providers/Microsoft.EventGrid/partnerDestinations/" + + global::System.Uri.EscapeDataString(partnerDestinationName) + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Method.Delete, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.PartnerDestinationsDelete_Call(request,onOk,onNoContent,onDefault,eventListener,sender); + } + } + + /// Delete existing partner destination. + /// + /// 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.EventGrid.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task PartnerDestinationsDeleteViaIdentity(global::System.String viaIdentity, global::System.Func onOk, global::System.Func onNoContent, global::System.Func onDefault, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync sender) + { + var apiVersion = @"2021-10-15-preview"; + // Constant Parameters + using( NoSynchronizationContext ) + { + // verify that Identity format is an exact match for uri + + var _match = new global::System.Text.RegularExpressions.Regex("^/subscriptions/(?[^/]+)/resourceGroups/(?[^/]+)/providers/Microsoft.EventGrid/partnerDestinations/(?[^/]+)$", global::System.Text.RegularExpressions.RegexOptions.IgnoreCase).Match(viaIdentity); + if (!_match.Success) + { + throw new global::System.Exception("Invalid identity for URI '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.EventGrid/partnerDestinations/{partnerDestinationName}'"); + } + + // replace URI parameters with values from identity + var subscriptionId = _match.Groups["subscriptionId"].Value; + var resourceGroupName = _match.Groups["resourceGroupName"].Value; + var partnerDestinationName = _match.Groups["partnerDestinationName"].Value; + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + subscriptionId + + "/resourceGroups/" + + resourceGroupName + + "/providers/Microsoft.EventGrid/partnerDestinations/" + + partnerDestinationName + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Method.Delete, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.PartnerDestinationsDelete_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.EventGrid.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + internal async global::System.Threading.Tasks.Task PartnerDestinationsDelete_Call(global::System.Net.Http.HttpRequestMessage request, global::System.Func onOk, global::System.Func onNoContent, global::System.Func onDefault, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync sender) + { + using( NoSynchronizationContext ) + { + global::System.Net.Http.HttpResponseMessage _response = null; + try + { + var sendTask = sender.SendAsync(request, eventListener); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.BeforeCall, request); if( eventListener.Token.IsCancellationRequested ) { return; } + _response = await sendTask; + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.ResponseCreated, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + // this operation supports x-ms-long-running-operation + var _originalUri = request.RequestUri.AbsoluteUri; + // declared final-state-via: default + var _finalUri = _response.GetFirstHeader(@"Location"); + var asyncOperation = _response.GetFirstHeader(@"Azure-AsyncOperation"); + var location = _response.GetFirstHeader(@"Location"); + while (request.Method == System.Net.Http.HttpMethod.Put && _response.StatusCode == global::System.Net.HttpStatusCode.OK || _response.StatusCode == global::System.Net.HttpStatusCode.Created || _response.StatusCode == global::System.Net.HttpStatusCode.Accepted ) + { + + // get the delay before polling. (default to 30 seconds if not present) + int delay = (int)(_response.Headers.RetryAfter?.Delta?.TotalSeconds ?? 30); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.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.EventGrid.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.EventGrid.Runtime.Json.JsonNode.Parse(await _response.Content.ReadAsStringAsync()) is Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Runtime.UndeclaredResponseException(_response); + } + } + + // check for terminal status code + if (_response.StatusCode == global::System.Net.HttpStatusCode.Created || _response.StatusCode == global::System.Net.HttpStatusCode.Accepted ) + { + continue; + } + // we are done polling, do a request on final target? + if (!string.IsNullOrWhiteSpace(_finalUri)) + { + // create a new request with the final uri + request = request.CloneAndDispose(new global::System.Uri(_finalUri), Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.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.EventGrid.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onNoContent(_response); + break; + } + default: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onDefault(_response); + break; + } + } + } + finally + { + // finally statements + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Finally, request, _response); + _response?.Dispose(); + request?.Dispose(); + } + } + } + + /// + /// Validation method for method. Call this like the actual call, but you will get + /// validation events back. + /// + /// Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription + /// ID forms part of the URI for every service call. + /// The name of the resource group within the user's subscription. + /// Name of the partner destination. + /// an instance that will receive events. + /// + /// A that will be complete when handling of the response is completed. + /// + internal async global::System.Threading.Tasks.Task PartnerDestinationsDelete_Validate(string subscriptionId, string resourceGroupName, string partnerDestinationName, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener eventListener) + { + using( NoSynchronizationContext ) + { + await eventListener.AssertNotNull(nameof(subscriptionId),subscriptionId); + await eventListener.AssertNotNull(nameof(resourceGroupName),resourceGroupName); + await eventListener.AssertNotNull(nameof(partnerDestinationName),partnerDestinationName); + } + } + + /// Get properties of a partner destination. + /// Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription + /// ID forms part of the URI for every service call. + /// The name of the resource group within the user's subscription. + /// Name of the partner destination. + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task PartnerDestinationsGet(string subscriptionId, string resourceGroupName, string partnerDestinationName, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func onDefault, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync sender) + { + var apiVersion = @"2021-10-15-preview"; + // Constant Parameters + using( NoSynchronizationContext ) + { + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + global::System.Uri.EscapeDataString(subscriptionId) + + "/resourceGroups/" + + global::System.Uri.EscapeDataString(resourceGroupName) + + "/providers/Microsoft.EventGrid/partnerDestinations/" + + global::System.Uri.EscapeDataString(partnerDestinationName) + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Method.Get, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.PartnerDestinationsGet_Call(request,onOk,onDefault,eventListener,sender); + } + } + + /// Get properties of a partner destination. + /// + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task PartnerDestinationsGetViaIdentity(global::System.String viaIdentity, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func onDefault, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync sender) + { + var apiVersion = @"2021-10-15-preview"; + // Constant Parameters + using( NoSynchronizationContext ) + { + // verify that Identity format is an exact match for uri + + var _match = new global::System.Text.RegularExpressions.Regex("^/subscriptions/(?[^/]+)/resourceGroups/(?[^/]+)/providers/Microsoft.EventGrid/partnerDestinations/(?[^/]+)$", global::System.Text.RegularExpressions.RegexOptions.IgnoreCase).Match(viaIdentity); + if (!_match.Success) + { + throw new global::System.Exception("Invalid identity for URI '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.EventGrid/partnerDestinations/{partnerDestinationName}'"); + } + + // replace URI parameters with values from identity + var subscriptionId = _match.Groups["subscriptionId"].Value; + var resourceGroupName = _match.Groups["resourceGroupName"].Value; + var partnerDestinationName = _match.Groups["partnerDestinationName"].Value; + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + subscriptionId + + "/resourceGroups/" + + resourceGroupName + + "/providers/Microsoft.EventGrid/partnerDestinations/" + + partnerDestinationName + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Method.Get, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.PartnerDestinationsGet_Call(request,onOk,onDefault,eventListener,sender); + } + } + + /// Actual wire call for method. + /// the prepared HttpRequestMessage to send. + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + internal async global::System.Threading.Tasks.Task PartnerDestinationsGet_Call(global::System.Net.Http.HttpRequestMessage request, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func onDefault, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync sender) + { + using( NoSynchronizationContext ) + { + global::System.Net.Http.HttpResponseMessage _response = null; + try + { + var sendTask = sender.SendAsync(request, eventListener); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.BeforeCall, request); if( eventListener.Token.IsCancellationRequested ) { return; } + _response = await sendTask; + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.ResponseCreated, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + var _contentType = _response.Content.Headers.ContentType?.MediaType; + + switch ( _response.StatusCode ) + { + case global::System.Net.HttpStatusCode.OK: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onOk(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.PartnerDestination.FromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + default: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onDefault(_response); + break; + } + } + } + finally + { + // finally statements + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Finally, request, _response); + _response?.Dispose(); + request?.Dispose(); + } + } + } + + /// + /// Validation method for method. Call this like the actual call, but you will get validation + /// events back. + /// + /// Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription + /// ID forms part of the URI for every service call. + /// The name of the resource group within the user's subscription. + /// Name of the partner destination. + /// an instance that will receive events. + /// + /// A that will be complete when handling of the response is completed. + /// + internal async global::System.Threading.Tasks.Task PartnerDestinationsGet_Validate(string subscriptionId, string resourceGroupName, string partnerDestinationName, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener eventListener) + { + using( NoSynchronizationContext ) + { + await eventListener.AssertNotNull(nameof(subscriptionId),subscriptionId); + await eventListener.AssertNotNull(nameof(resourceGroupName),resourceGroupName); + await eventListener.AssertNotNull(nameof(partnerDestinationName),partnerDestinationName); + } + } + + /// List all the partner destinations under a resource group. + /// Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription + /// ID forms part of the URI for every service call. + /// The name of the resource group within the user's subscription. + /// The query used to filter the search results using OData syntax. Filtering is permitted on the 'name' + /// property only and with limited number of OData operations. These operations are: the 'contains' function as well as the + /// following logical operations: not, and, or, eq (for equal), and ne (for not equal). No arithmetic operations are supported. + /// The following is a valid filter example: $filter=contains(namE, 'PATTERN') and name ne 'PATTERN-1'. The following is not + /// a valid filter example: $filter=location eq 'westus'. + /// The number of results to return per page for the list operation. Valid range for top parameter is 1 + /// to 100. If not specified, the default number of results to be returned is 20 items per page. + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task PartnerDestinationsListByResourceGroup(string subscriptionId, string resourceGroupName, string Filter, int? Top, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func onDefault, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync sender) + { + var apiVersion = @"2021-10-15-preview"; + // Constant Parameters + using( NoSynchronizationContext ) + { + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + global::System.Uri.EscapeDataString(subscriptionId) + + "/resourceGroups/" + + global::System.Uri.EscapeDataString(resourceGroupName) + + "/providers/Microsoft.EventGrid/partnerDestinations" + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + + "&" + + (string.IsNullOrEmpty(Filter) ? global::System.String.Empty : "$filter=" + global::System.Uri.EscapeDataString(Filter)) + + "&" + + (null == Top ? global::System.String.Empty : "$top=" + global::System.Uri.EscapeDataString(Top.ToString())) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Method.Get, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.PartnerDestinationsListByResourceGroup_Call(request,onOk,onDefault,eventListener,sender); + } + } + + /// List all the partner destinations under a resource group. + /// + /// The query used to filter the search results using OData syntax. Filtering is permitted on the 'name' + /// property only and with limited number of OData operations. These operations are: the 'contains' function as well as the + /// following logical operations: not, and, or, eq (for equal), and ne (for not equal). No arithmetic operations are supported. + /// The following is a valid filter example: $filter=contains(namE, 'PATTERN') and name ne 'PATTERN-1'. The following is not + /// a valid filter example: $filter=location eq 'westus'. + /// The number of results to return per page for the list operation. Valid range for top parameter is 1 + /// to 100. If not specified, the default number of results to be returned is 20 items per page. + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task PartnerDestinationsListByResourceGroupViaIdentity(global::System.String viaIdentity, string Filter, int? Top, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func onDefault, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync sender) + { + var apiVersion = @"2021-10-15-preview"; + // Constant Parameters + using( NoSynchronizationContext ) + { + // verify that Identity format is an exact match for uri + + var _match = new global::System.Text.RegularExpressions.Regex("^/subscriptions/(?[^/]+)/resourceGroups/(?[^/]+)/providers/Microsoft.EventGrid/partnerDestinations$", global::System.Text.RegularExpressions.RegexOptions.IgnoreCase).Match(viaIdentity); + if (!_match.Success) + { + throw new global::System.Exception("Invalid identity for URI '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.EventGrid/partnerDestinations'"); + } + + // 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.EventGrid/partnerDestinations" + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + + "&" + + (string.IsNullOrEmpty(Filter) ? global::System.String.Empty : "$filter=" + global::System.Uri.EscapeDataString(Filter)) + + "&" + + (null == Top ? global::System.String.Empty : "$top=" + global::System.Uri.EscapeDataString(Top.ToString())) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Method.Get, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.PartnerDestinationsListByResourceGroup_Call(request,onOk,onDefault,eventListener,sender); + } + } + + /// + /// Actual wire call for method. + /// + /// the prepared HttpRequestMessage to send. + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + internal async global::System.Threading.Tasks.Task PartnerDestinationsListByResourceGroup_Call(global::System.Net.Http.HttpRequestMessage request, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func onDefault, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync sender) + { + using( NoSynchronizationContext ) + { + global::System.Net.Http.HttpResponseMessage _response = null; + try + { + var sendTask = sender.SendAsync(request, eventListener); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.BeforeCall, request); if( eventListener.Token.IsCancellationRequested ) { return; } + _response = await sendTask; + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.ResponseCreated, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + var _contentType = _response.Content.Headers.ContentType?.MediaType; + + switch ( _response.StatusCode ) + { + case global::System.Net.HttpStatusCode.OK: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onOk(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.PartnerDestinationsListResult.FromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + default: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onDefault(_response); + break; + } + } + } + finally + { + // finally statements + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Finally, request, _response); + _response?.Dispose(); + request?.Dispose(); + } + } + } + + /// + /// Validation method for method. Call this like the actual call, but + /// you will get validation events back. + /// + /// Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription + /// ID forms part of the URI for every service call. + /// The name of the resource group within the user's subscription. + /// The query used to filter the search results using OData syntax. Filtering is permitted on the 'name' + /// property only and with limited number of OData operations. These operations are: the 'contains' function as well as the + /// following logical operations: not, and, or, eq (for equal), and ne (for not equal). No arithmetic operations are supported. + /// The following is a valid filter example: $filter=contains(namE, 'PATTERN') and name ne 'PATTERN-1'. The following is not + /// a valid filter example: $filter=location eq 'westus'. + /// The number of results to return per page for the list operation. Valid range for top parameter is 1 + /// to 100. If not specified, the default number of results to be returned is 20 items per page. + /// an instance that will receive events. + /// + /// A that will be complete when handling of the response is completed. + /// + internal async global::System.Threading.Tasks.Task PartnerDestinationsListByResourceGroup_Validate(string subscriptionId, string resourceGroupName, string Filter, int? Top, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener eventListener) + { + using( NoSynchronizationContext ) + { + await eventListener.AssertNotNull(nameof(subscriptionId),subscriptionId); + await eventListener.AssertNotNull(nameof(resourceGroupName),resourceGroupName); + await eventListener.AssertNotNull(nameof(Filter),Filter); + } + } + + /// List all the partner destinations under an Azure subscription. + /// Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription + /// ID forms part of the URI for every service call. + /// The query used to filter the search results using OData syntax. Filtering is permitted on the 'name' + /// property only and with limited number of OData operations. These operations are: the 'contains' function as well as the + /// following logical operations: not, and, or, eq (for equal), and ne (for not equal). No arithmetic operations are supported. + /// The following is a valid filter example: $filter=contains(namE, 'PATTERN') and name ne 'PATTERN-1'. The following is not + /// a valid filter example: $filter=location eq 'westus'. + /// The number of results to return per page for the list operation. Valid range for top parameter is 1 + /// to 100. If not specified, the default number of results to be returned is 20 items per page. + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task PartnerDestinationsListBySubscription(string subscriptionId, string Filter, int? Top, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func onDefault, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync sender) + { + var apiVersion = @"2021-10-15-preview"; + // Constant Parameters + using( NoSynchronizationContext ) + { + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + global::System.Uri.EscapeDataString(subscriptionId) + + "/providers/Microsoft.EventGrid/partnerDestinations" + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + + "&" + + (string.IsNullOrEmpty(Filter) ? global::System.String.Empty : "$filter=" + global::System.Uri.EscapeDataString(Filter)) + + "&" + + (null == Top ? global::System.String.Empty : "$top=" + global::System.Uri.EscapeDataString(Top.ToString())) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Method.Get, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.PartnerDestinationsListBySubscription_Call(request,onOk,onDefault,eventListener,sender); + } + } + + /// List all the partner destinations under an Azure subscription. + /// + /// The query used to filter the search results using OData syntax. Filtering is permitted on the 'name' + /// property only and with limited number of OData operations. These operations are: the 'contains' function as well as the + /// following logical operations: not, and, or, eq (for equal), and ne (for not equal). No arithmetic operations are supported. + /// The following is a valid filter example: $filter=contains(namE, 'PATTERN') and name ne 'PATTERN-1'. The following is not + /// a valid filter example: $filter=location eq 'westus'. + /// The number of results to return per page for the list operation. Valid range for top parameter is 1 + /// to 100. If not specified, the default number of results to be returned is 20 items per page. + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task PartnerDestinationsListBySubscriptionViaIdentity(global::System.String viaIdentity, string Filter, int? Top, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func onDefault, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync sender) + { + var apiVersion = @"2021-10-15-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.EventGrid/partnerDestinations$", global::System.Text.RegularExpressions.RegexOptions.IgnoreCase).Match(viaIdentity); + if (!_match.Success) + { + throw new global::System.Exception("Invalid identity for URI '/subscriptions/{subscriptionId}/providers/Microsoft.EventGrid/partnerDestinations'"); + } + + // 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.EventGrid/partnerDestinations" + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + + "&" + + (string.IsNullOrEmpty(Filter) ? global::System.String.Empty : "$filter=" + global::System.Uri.EscapeDataString(Filter)) + + "&" + + (null == Top ? global::System.String.Empty : "$top=" + global::System.Uri.EscapeDataString(Top.ToString())) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Method.Get, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.PartnerDestinationsListBySubscription_Call(request,onOk,onDefault,eventListener,sender); + } + } + + /// + /// Actual wire call for method. + /// + /// the prepared HttpRequestMessage to send. + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + internal async global::System.Threading.Tasks.Task PartnerDestinationsListBySubscription_Call(global::System.Net.Http.HttpRequestMessage request, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func onDefault, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync sender) + { + using( NoSynchronizationContext ) + { + global::System.Net.Http.HttpResponseMessage _response = null; + try + { + var sendTask = sender.SendAsync(request, eventListener); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.BeforeCall, request); if( eventListener.Token.IsCancellationRequested ) { return; } + _response = await sendTask; + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.ResponseCreated, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + var _contentType = _response.Content.Headers.ContentType?.MediaType; + + switch ( _response.StatusCode ) + { + case global::System.Net.HttpStatusCode.OK: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onOk(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.PartnerDestinationsListResult.FromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + default: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onDefault(_response); + break; + } + } + } + finally + { + // finally statements + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Finally, request, _response); + _response?.Dispose(); + request?.Dispose(); + } + } + } + + /// + /// Validation method for method. Call this like the actual call, but + /// you will get validation events back. + /// + /// Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription + /// ID forms part of the URI for every service call. + /// The query used to filter the search results using OData syntax. Filtering is permitted on the 'name' + /// property only and with limited number of OData operations. These operations are: the 'contains' function as well as the + /// following logical operations: not, and, or, eq (for equal), and ne (for not equal). No arithmetic operations are supported. + /// The following is a valid filter example: $filter=contains(namE, 'PATTERN') and name ne 'PATTERN-1'. The following is not + /// a valid filter example: $filter=location eq 'westus'. + /// The number of results to return per page for the list operation. Valid range for top parameter is 1 + /// to 100. If not specified, the default number of results to be returned is 20 items per page. + /// an instance that will receive events. + /// + /// A that will be complete when handling of the response is completed. + /// + internal async global::System.Threading.Tasks.Task PartnerDestinationsListBySubscription_Validate(string subscriptionId, string Filter, int? Top, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener eventListener) + { + using( NoSynchronizationContext ) + { + await eventListener.AssertNotNull(nameof(subscriptionId),subscriptionId); + await eventListener.AssertNotNull(nameof(Filter),Filter); + } + } + + /// Asynchronously updates a partner destination with the specified parameters. + /// Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription + /// ID forms part of the URI for every service call. + /// The name of the resource group within the user's subscription. + /// Name of the partner destination. + /// Partner destination update information. + /// 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.EventGrid.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task PartnerDestinationsUpdate(string subscriptionId, string resourceGroupName, string partnerDestinationName, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerDestinationUpdateParameters body, global::System.Func onOk, global::System.Func, global::System.Threading.Tasks.Task> onCreated, global::System.Func onDefault, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync sender) + { + var apiVersion = @"2021-10-15-preview"; + // Constant Parameters + using( NoSynchronizationContext ) + { + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + global::System.Uri.EscapeDataString(subscriptionId) + + "/resourceGroups/" + + global::System.Uri.EscapeDataString(resourceGroupName) + + "/providers/Microsoft.EventGrid/partnerDestinations/" + + global::System.Uri.EscapeDataString(partnerDestinationName) + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Method.Patch, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // set body content + request.Content = new global::System.Net.Http.StringContent(null != body ? body.ToJson(null).ToString() : @"{}", global::System.Text.Encoding.UTF8); + request.Content.Headers.ContentType = global::System.Net.Http.Headers.MediaTypeHeaderValue.Parse("application/json"); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.BodyContentSet); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.PartnerDestinationsUpdate_Call(request,onOk,onCreated,onDefault,eventListener,sender); + } + } + + /// Asynchronously updates a partner destination with the specified parameters. + /// + /// Partner destination update information. + /// 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.EventGrid.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task PartnerDestinationsUpdateViaIdentity(global::System.String viaIdentity, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerDestinationUpdateParameters body, global::System.Func onOk, global::System.Func, global::System.Threading.Tasks.Task> onCreated, global::System.Func onDefault, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync sender) + { + var apiVersion = @"2021-10-15-preview"; + // Constant Parameters + using( NoSynchronizationContext ) + { + // verify that Identity format is an exact match for uri + + var _match = new global::System.Text.RegularExpressions.Regex("^/subscriptions/(?[^/]+)/resourceGroups/(?[^/]+)/providers/Microsoft.EventGrid/partnerDestinations/(?[^/]+)$", global::System.Text.RegularExpressions.RegexOptions.IgnoreCase).Match(viaIdentity); + if (!_match.Success) + { + throw new global::System.Exception("Invalid identity for URI '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.EventGrid/partnerDestinations/{partnerDestinationName}'"); + } + + // replace URI parameters with values from identity + var subscriptionId = _match.Groups["subscriptionId"].Value; + var resourceGroupName = _match.Groups["resourceGroupName"].Value; + var partnerDestinationName = _match.Groups["partnerDestinationName"].Value; + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + subscriptionId + + "/resourceGroups/" + + resourceGroupName + + "/providers/Microsoft.EventGrid/partnerDestinations/" + + partnerDestinationName + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Method.Patch, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // set body content + request.Content = new global::System.Net.Http.StringContent(null != body ? body.ToJson(null).ToString() : @"{}", global::System.Text.Encoding.UTF8); + request.Content.Headers.ContentType = global::System.Net.Http.Headers.MediaTypeHeaderValue.Parse("application/json"); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.BodyContentSet); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.PartnerDestinationsUpdate_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.EventGrid.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + internal async global::System.Threading.Tasks.Task PartnerDestinationsUpdate_Call(global::System.Net.Http.HttpRequestMessage request, global::System.Func onOk, global::System.Func, global::System.Threading.Tasks.Task> onCreated, global::System.Func onDefault, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync sender) + { + using( NoSynchronizationContext ) + { + global::System.Net.Http.HttpResponseMessage _response = null; + try + { + var sendTask = sender.SendAsync(request, eventListener); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.BeforeCall, request); if( eventListener.Token.IsCancellationRequested ) { return; } + _response = await sendTask; + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.ResponseCreated, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + var _contentType = _response.Content.Headers.ContentType?.MediaType; + + switch ( _response.StatusCode ) + { + case global::System.Net.HttpStatusCode.OK: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onOk(_response); + break; + } + case global::System.Net.HttpStatusCode.Created: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onCreated(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.PartnerDestination.FromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + default: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onDefault(_response); + break; + } + } + } + finally + { + // finally statements + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Finally, request, _response); + _response?.Dispose(); + request?.Dispose(); + } + } + } + + /// + /// Validation method for method. Call this like the actual call, but you will get + /// validation events back. + /// + /// Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription + /// ID forms part of the URI for every service call. + /// The name of the resource group within the user's subscription. + /// Name of the partner destination. + /// Partner destination update information. + /// an instance that will receive events. + /// + /// A that will be complete when handling of the response is completed. + /// + internal async global::System.Threading.Tasks.Task PartnerDestinationsUpdate_Validate(string subscriptionId, string resourceGroupName, string partnerDestinationName, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerDestinationUpdateParameters body, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener eventListener) + { + using( NoSynchronizationContext ) + { + await eventListener.AssertNotNull(nameof(subscriptionId),subscriptionId); + await eventListener.AssertNotNull(nameof(resourceGroupName),resourceGroupName); + await eventListener.AssertNotNull(nameof(partnerDestinationName),partnerDestinationName); + await eventListener.AssertNotNull(nameof(body), body); + await eventListener.AssertObjectIsValid(nameof(body), body); + } + } + + /// Asynchronously creates a new partner namespace with the specified parameters. + /// Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription + /// ID forms part of the URI for every service call. + /// The name of the resource group within the user's subscription. + /// Name of the partner namespace. + /// PartnerNamespace information. + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task PartnerNamespacesCreateOrUpdate(string subscriptionId, string resourceGroupName, string partnerNamespaceName, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerNamespace body, global::System.Func onDefault, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync sender) + { + var apiVersion = @"2021-10-15-preview"; + // Constant Parameters + using( NoSynchronizationContext ) + { + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + global::System.Uri.EscapeDataString(subscriptionId) + + "/resourceGroups/" + + global::System.Uri.EscapeDataString(resourceGroupName) + + "/providers/Microsoft.EventGrid/partnerNamespaces/" + + global::System.Uri.EscapeDataString(partnerNamespaceName) + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Method.Put, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // set body content + request.Content = new global::System.Net.Http.StringContent(null != body ? body.ToJson(null).ToString() : @"{}", global::System.Text.Encoding.UTF8); + request.Content.Headers.ContentType = global::System.Net.Http.Headers.MediaTypeHeaderValue.Parse("application/json"); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.BodyContentSet); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.PartnerNamespacesCreateOrUpdate_Call(request,onDefault,eventListener,sender); + } + } + + /// Asynchronously creates a new partner namespace with the specified parameters. + /// + /// PartnerNamespace information. + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task PartnerNamespacesCreateOrUpdateViaIdentity(global::System.String viaIdentity, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerNamespace body, global::System.Func onDefault, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync sender) + { + var apiVersion = @"2021-10-15-preview"; + // Constant Parameters + using( NoSynchronizationContext ) + { + // verify that Identity format is an exact match for uri + + var _match = new global::System.Text.RegularExpressions.Regex("^/subscriptions/(?[^/]+)/resourceGroups/(?[^/]+)/providers/Microsoft.EventGrid/partnerNamespaces/(?[^/]+)$", global::System.Text.RegularExpressions.RegexOptions.IgnoreCase).Match(viaIdentity); + if (!_match.Success) + { + throw new global::System.Exception("Invalid identity for URI '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.EventGrid/partnerNamespaces/{partnerNamespaceName}'"); + } + + // replace URI parameters with values from identity + var subscriptionId = _match.Groups["subscriptionId"].Value; + var resourceGroupName = _match.Groups["resourceGroupName"].Value; + var partnerNamespaceName = _match.Groups["partnerNamespaceName"].Value; + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + subscriptionId + + "/resourceGroups/" + + resourceGroupName + + "/providers/Microsoft.EventGrid/partnerNamespaces/" + + partnerNamespaceName + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Method.Put, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // set body content + request.Content = new global::System.Net.Http.StringContent(null != body ? body.ToJson(null).ToString() : @"{}", global::System.Text.Encoding.UTF8); + request.Content.Headers.ContentType = global::System.Net.Http.Headers.MediaTypeHeaderValue.Parse("application/json"); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.BodyContentSet); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.PartnerNamespacesCreateOrUpdate_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.EventGrid.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + internal async global::System.Threading.Tasks.Task PartnerNamespacesCreateOrUpdate_Call(global::System.Net.Http.HttpRequestMessage request, global::System.Func onDefault, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync sender) + { + using( NoSynchronizationContext ) + { + global::System.Net.Http.HttpResponseMessage _response = null; + try + { + var sendTask = sender.SendAsync(request, eventListener); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.BeforeCall, request); if( eventListener.Token.IsCancellationRequested ) { return; } + _response = await sendTask; + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.ResponseCreated, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + // this operation supports x-ms-long-running-operation + var _originalUri = request.RequestUri.AbsoluteUri; + // declared final-state-via: default + var asyncOperation = _response.GetFirstHeader(@"Azure-AsyncOperation"); + var location = _response.GetFirstHeader(@"Location"); + while (request.Method == System.Net.Http.HttpMethod.Put && _response.StatusCode == global::System.Net.HttpStatusCode.OK || _response.StatusCode == global::System.Net.HttpStatusCode.Created || _response.StatusCode == global::System.Net.HttpStatusCode.Accepted ) + { + + // get the delay before polling. (default to 30 seconds if not present) + int delay = (int)(_response.Headers.RetryAfter?.Delta?.TotalSeconds ?? 30); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.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.EventGrid.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.EventGrid.Runtime.Json.JsonNode.Parse(await _response.Content.ReadAsStringAsync()) is Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Runtime.UndeclaredResponseException(_response); + } + } + + // check for terminal status code + if (_response.StatusCode == global::System.Net.HttpStatusCode.Created || _response.StatusCode == global::System.Net.HttpStatusCode.Accepted ) + { + continue; + } + // we are done polling, do a request on final target? + if (!string.IsNullOrWhiteSpace(_originalUri)) + { + // create a new request with the final uri + request = request.CloneAndDispose(new global::System.Uri(_originalUri), Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onDefault(_response); + break; + } + } + } + finally + { + // finally statements + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Finally, request, _response); + _response?.Dispose(); + request?.Dispose(); + } + } + } + + /// + /// Validation method for method. Call this like the actual call, but you will + /// get validation events back. + /// + /// Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription + /// ID forms part of the URI for every service call. + /// The name of the resource group within the user's subscription. + /// Name of the partner namespace. + /// PartnerNamespace information. + /// an instance that will receive events. + /// + /// A that will be complete when handling of the response is completed. + /// + internal async global::System.Threading.Tasks.Task PartnerNamespacesCreateOrUpdate_Validate(string subscriptionId, string resourceGroupName, string partnerNamespaceName, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerNamespace body, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener eventListener) + { + using( NoSynchronizationContext ) + { + await eventListener.AssertNotNull(nameof(subscriptionId),subscriptionId); + await eventListener.AssertNotNull(nameof(resourceGroupName),resourceGroupName); + await eventListener.AssertNotNull(nameof(partnerNamespaceName),partnerNamespaceName); + await eventListener.AssertNotNull(nameof(body), body); + await eventListener.AssertObjectIsValid(nameof(body), body); + } + } + + /// Delete existing partner namespace. + /// Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription + /// ID forms part of the URI for every service call. + /// The name of the resource group within the user's subscription. + /// Name of the partner namespace. + /// 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.EventGrid.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task PartnerNamespacesDelete(string subscriptionId, string resourceGroupName, string partnerNamespaceName, global::System.Func onOk, global::System.Func onNoContent, global::System.Func onDefault, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync sender) + { + var apiVersion = @"2021-10-15-preview"; + // Constant Parameters + using( NoSynchronizationContext ) + { + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + global::System.Uri.EscapeDataString(subscriptionId) + + "/resourceGroups/" + + global::System.Uri.EscapeDataString(resourceGroupName) + + "/providers/Microsoft.EventGrid/partnerNamespaces/" + + global::System.Uri.EscapeDataString(partnerNamespaceName) + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Method.Delete, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.PartnerNamespacesDelete_Call(request,onOk,onNoContent,onDefault,eventListener,sender); + } + } + + /// Delete existing partner namespace. + /// + /// 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.EventGrid.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task PartnerNamespacesDeleteViaIdentity(global::System.String viaIdentity, global::System.Func onOk, global::System.Func onNoContent, global::System.Func onDefault, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync sender) + { + var apiVersion = @"2021-10-15-preview"; + // Constant Parameters + using( NoSynchronizationContext ) + { + // verify that Identity format is an exact match for uri + + var _match = new global::System.Text.RegularExpressions.Regex("^/subscriptions/(?[^/]+)/resourceGroups/(?[^/]+)/providers/Microsoft.EventGrid/partnerNamespaces/(?[^/]+)$", global::System.Text.RegularExpressions.RegexOptions.IgnoreCase).Match(viaIdentity); + if (!_match.Success) + { + throw new global::System.Exception("Invalid identity for URI '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.EventGrid/partnerNamespaces/{partnerNamespaceName}'"); + } + + // replace URI parameters with values from identity + var subscriptionId = _match.Groups["subscriptionId"].Value; + var resourceGroupName = _match.Groups["resourceGroupName"].Value; + var partnerNamespaceName = _match.Groups["partnerNamespaceName"].Value; + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + subscriptionId + + "/resourceGroups/" + + resourceGroupName + + "/providers/Microsoft.EventGrid/partnerNamespaces/" + + partnerNamespaceName + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Method.Delete, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.PartnerNamespacesDelete_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.EventGrid.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + internal async global::System.Threading.Tasks.Task PartnerNamespacesDelete_Call(global::System.Net.Http.HttpRequestMessage request, global::System.Func onOk, global::System.Func onNoContent, global::System.Func onDefault, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync sender) + { + using( NoSynchronizationContext ) + { + global::System.Net.Http.HttpResponseMessage _response = null; + try + { + var sendTask = sender.SendAsync(request, eventListener); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.BeforeCall, request); if( eventListener.Token.IsCancellationRequested ) { return; } + _response = await sendTask; + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.ResponseCreated, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + // this operation supports x-ms-long-running-operation + var _originalUri = request.RequestUri.AbsoluteUri; + // declared final-state-via: default + var _finalUri = _response.GetFirstHeader(@"Location"); + var asyncOperation = _response.GetFirstHeader(@"Azure-AsyncOperation"); + var location = _response.GetFirstHeader(@"Location"); + while (request.Method == System.Net.Http.HttpMethod.Put && _response.StatusCode == global::System.Net.HttpStatusCode.OK || _response.StatusCode == global::System.Net.HttpStatusCode.Created || _response.StatusCode == global::System.Net.HttpStatusCode.Accepted ) + { + + // get the delay before polling. (default to 30 seconds if not present) + int delay = (int)(_response.Headers.RetryAfter?.Delta?.TotalSeconds ?? 30); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.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.EventGrid.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.EventGrid.Runtime.Json.JsonNode.Parse(await _response.Content.ReadAsStringAsync()) is Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Runtime.UndeclaredResponseException(_response); + } + } + + // check for terminal status code + if (_response.StatusCode == global::System.Net.HttpStatusCode.Created || _response.StatusCode == global::System.Net.HttpStatusCode.Accepted ) + { + continue; + } + // we are done polling, do a request on final target? + if (!string.IsNullOrWhiteSpace(_finalUri)) + { + // create a new request with the final uri + request = request.CloneAndDispose(new global::System.Uri(_finalUri), Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.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.EventGrid.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onNoContent(_response); + break; + } + default: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onDefault(_response); + break; + } + } + } + finally + { + // finally statements + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Finally, request, _response); + _response?.Dispose(); + request?.Dispose(); + } + } + } + + /// + /// Validation method for method. Call this like the actual call, but you will get + /// validation events back. + /// + /// Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription + /// ID forms part of the URI for every service call. + /// The name of the resource group within the user's subscription. + /// Name of the partner namespace. + /// an instance that will receive events. + /// + /// A that will be complete when handling of the response is completed. + /// + internal async global::System.Threading.Tasks.Task PartnerNamespacesDelete_Validate(string subscriptionId, string resourceGroupName, string partnerNamespaceName, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener eventListener) + { + using( NoSynchronizationContext ) + { + await eventListener.AssertNotNull(nameof(subscriptionId),subscriptionId); + await eventListener.AssertNotNull(nameof(resourceGroupName),resourceGroupName); + await eventListener.AssertNotNull(nameof(partnerNamespaceName),partnerNamespaceName); + } + } + + /// Get properties of a partner namespace. + /// Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription + /// ID forms part of the URI for every service call. + /// The name of the resource group within the user's subscription. + /// Name of the partner namespace. + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task PartnerNamespacesGet(string subscriptionId, string resourceGroupName, string partnerNamespaceName, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func onDefault, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync sender) + { + var apiVersion = @"2021-10-15-preview"; + // Constant Parameters + using( NoSynchronizationContext ) + { + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + global::System.Uri.EscapeDataString(subscriptionId) + + "/resourceGroups/" + + global::System.Uri.EscapeDataString(resourceGroupName) + + "/providers/Microsoft.EventGrid/partnerNamespaces/" + + global::System.Uri.EscapeDataString(partnerNamespaceName) + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Method.Get, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.PartnerNamespacesGet_Call(request,onOk,onDefault,eventListener,sender); + } + } + + /// Get properties of a partner namespace. + /// + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task PartnerNamespacesGetViaIdentity(global::System.String viaIdentity, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func onDefault, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync sender) + { + var apiVersion = @"2021-10-15-preview"; + // Constant Parameters + using( NoSynchronizationContext ) + { + // verify that Identity format is an exact match for uri + + var _match = new global::System.Text.RegularExpressions.Regex("^/subscriptions/(?[^/]+)/resourceGroups/(?[^/]+)/providers/Microsoft.EventGrid/partnerNamespaces/(?[^/]+)$", global::System.Text.RegularExpressions.RegexOptions.IgnoreCase).Match(viaIdentity); + if (!_match.Success) + { + throw new global::System.Exception("Invalid identity for URI '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.EventGrid/partnerNamespaces/{partnerNamespaceName}'"); + } + + // replace URI parameters with values from identity + var subscriptionId = _match.Groups["subscriptionId"].Value; + var resourceGroupName = _match.Groups["resourceGroupName"].Value; + var partnerNamespaceName = _match.Groups["partnerNamespaceName"].Value; + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + subscriptionId + + "/resourceGroups/" + + resourceGroupName + + "/providers/Microsoft.EventGrid/partnerNamespaces/" + + partnerNamespaceName + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Method.Get, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.PartnerNamespacesGet_Call(request,onOk,onDefault,eventListener,sender); + } + } + + /// Actual wire call for method. + /// the prepared HttpRequestMessage to send. + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + internal async global::System.Threading.Tasks.Task PartnerNamespacesGet_Call(global::System.Net.Http.HttpRequestMessage request, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func onDefault, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync sender) + { + using( NoSynchronizationContext ) + { + global::System.Net.Http.HttpResponseMessage _response = null; + try + { + var sendTask = sender.SendAsync(request, eventListener); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.BeforeCall, request); if( eventListener.Token.IsCancellationRequested ) { return; } + _response = await sendTask; + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.ResponseCreated, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + var _contentType = _response.Content.Headers.ContentType?.MediaType; + + switch ( _response.StatusCode ) + { + case global::System.Net.HttpStatusCode.OK: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onOk(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.PartnerNamespace.FromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + default: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onDefault(_response); + break; + } + } + } + finally + { + // finally statements + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Finally, request, _response); + _response?.Dispose(); + request?.Dispose(); + } + } + } + + /// + /// Validation method for method. Call this like the actual call, but you will get validation + /// events back. + /// + /// Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription + /// ID forms part of the URI for every service call. + /// The name of the resource group within the user's subscription. + /// Name of the partner namespace. + /// an instance that will receive events. + /// + /// A that will be complete when handling of the response is completed. + /// + internal async global::System.Threading.Tasks.Task PartnerNamespacesGet_Validate(string subscriptionId, string resourceGroupName, string partnerNamespaceName, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener eventListener) + { + using( NoSynchronizationContext ) + { + await eventListener.AssertNotNull(nameof(subscriptionId),subscriptionId); + await eventListener.AssertNotNull(nameof(resourceGroupName),resourceGroupName); + await eventListener.AssertNotNull(nameof(partnerNamespaceName),partnerNamespaceName); + } + } + + /// List all the partner namespaces under a resource group. + /// Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription + /// ID forms part of the URI for every service call. + /// The name of the resource group within the user's subscription. + /// The query used to filter the search results using OData syntax. Filtering is permitted on the 'name' + /// property only and with limited number of OData operations. These operations are: the 'contains' function as well as the + /// following logical operations: not, and, or, eq (for equal), and ne (for not equal). No arithmetic operations are supported. + /// The following is a valid filter example: $filter=contains(namE, 'PATTERN') and name ne 'PATTERN-1'. The following is not + /// a valid filter example: $filter=location eq 'westus'. + /// The number of results to return per page for the list operation. Valid range for top parameter is 1 + /// to 100. If not specified, the default number of results to be returned is 20 items per page. + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task PartnerNamespacesListByResourceGroup(string subscriptionId, string resourceGroupName, string Filter, int? Top, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func onDefault, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync sender) + { + var apiVersion = @"2021-10-15-preview"; + // Constant Parameters + using( NoSynchronizationContext ) + { + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + global::System.Uri.EscapeDataString(subscriptionId) + + "/resourceGroups/" + + global::System.Uri.EscapeDataString(resourceGroupName) + + "/providers/Microsoft.EventGrid/partnerNamespaces" + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + + "&" + + (string.IsNullOrEmpty(Filter) ? global::System.String.Empty : "$filter=" + global::System.Uri.EscapeDataString(Filter)) + + "&" + + (null == Top ? global::System.String.Empty : "$top=" + global::System.Uri.EscapeDataString(Top.ToString())) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Method.Get, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.PartnerNamespacesListByResourceGroup_Call(request,onOk,onDefault,eventListener,sender); + } + } + + /// List all the partner namespaces under a resource group. + /// + /// The query used to filter the search results using OData syntax. Filtering is permitted on the 'name' + /// property only and with limited number of OData operations. These operations are: the 'contains' function as well as the + /// following logical operations: not, and, or, eq (for equal), and ne (for not equal). No arithmetic operations are supported. + /// The following is a valid filter example: $filter=contains(namE, 'PATTERN') and name ne 'PATTERN-1'. The following is not + /// a valid filter example: $filter=location eq 'westus'. + /// The number of results to return per page for the list operation. Valid range for top parameter is 1 + /// to 100. If not specified, the default number of results to be returned is 20 items per page. + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task PartnerNamespacesListByResourceGroupViaIdentity(global::System.String viaIdentity, string Filter, int? Top, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func onDefault, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync sender) + { + var apiVersion = @"2021-10-15-preview"; + // Constant Parameters + using( NoSynchronizationContext ) + { + // verify that Identity format is an exact match for uri + + var _match = new global::System.Text.RegularExpressions.Regex("^/subscriptions/(?[^/]+)/resourceGroups/(?[^/]+)/providers/Microsoft.EventGrid/partnerNamespaces$", global::System.Text.RegularExpressions.RegexOptions.IgnoreCase).Match(viaIdentity); + if (!_match.Success) + { + throw new global::System.Exception("Invalid identity for URI '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.EventGrid/partnerNamespaces'"); + } + + // 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.EventGrid/partnerNamespaces" + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + + "&" + + (string.IsNullOrEmpty(Filter) ? global::System.String.Empty : "$filter=" + global::System.Uri.EscapeDataString(Filter)) + + "&" + + (null == Top ? global::System.String.Empty : "$top=" + global::System.Uri.EscapeDataString(Top.ToString())) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Method.Get, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.PartnerNamespacesListByResourceGroup_Call(request,onOk,onDefault,eventListener,sender); + } + } + + /// + /// Actual wire call for method. + /// + /// the prepared HttpRequestMessage to send. + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + internal async global::System.Threading.Tasks.Task PartnerNamespacesListByResourceGroup_Call(global::System.Net.Http.HttpRequestMessage request, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func onDefault, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync sender) + { + using( NoSynchronizationContext ) + { + global::System.Net.Http.HttpResponseMessage _response = null; + try + { + var sendTask = sender.SendAsync(request, eventListener); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.BeforeCall, request); if( eventListener.Token.IsCancellationRequested ) { return; } + _response = await sendTask; + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.ResponseCreated, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + var _contentType = _response.Content.Headers.ContentType?.MediaType; + + switch ( _response.StatusCode ) + { + case global::System.Net.HttpStatusCode.OK: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onOk(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.PartnerNamespacesListResult.FromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + default: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onDefault(_response); + break; + } + } + } + finally + { + // finally statements + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Finally, request, _response); + _response?.Dispose(); + request?.Dispose(); + } + } + } + + /// + /// Validation method for method. Call this like the actual call, but + /// you will get validation events back. + /// + /// Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription + /// ID forms part of the URI for every service call. + /// The name of the resource group within the user's subscription. + /// The query used to filter the search results using OData syntax. Filtering is permitted on the 'name' + /// property only and with limited number of OData operations. These operations are: the 'contains' function as well as the + /// following logical operations: not, and, or, eq (for equal), and ne (for not equal). No arithmetic operations are supported. + /// The following is a valid filter example: $filter=contains(namE, 'PATTERN') and name ne 'PATTERN-1'. The following is not + /// a valid filter example: $filter=location eq 'westus'. + /// The number of results to return per page for the list operation. Valid range for top parameter is 1 + /// to 100. If not specified, the default number of results to be returned is 20 items per page. + /// an instance that will receive events. + /// + /// A that will be complete when handling of the response is completed. + /// + internal async global::System.Threading.Tasks.Task PartnerNamespacesListByResourceGroup_Validate(string subscriptionId, string resourceGroupName, string Filter, int? Top, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener eventListener) + { + using( NoSynchronizationContext ) + { + await eventListener.AssertNotNull(nameof(subscriptionId),subscriptionId); + await eventListener.AssertNotNull(nameof(resourceGroupName),resourceGroupName); + await eventListener.AssertNotNull(nameof(Filter),Filter); + } + } + + /// List all the partner namespaces under an Azure subscription. + /// Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription + /// ID forms part of the URI for every service call. + /// The query used to filter the search results using OData syntax. Filtering is permitted on the 'name' + /// property only and with limited number of OData operations. These operations are: the 'contains' function as well as the + /// following logical operations: not, and, or, eq (for equal), and ne (for not equal). No arithmetic operations are supported. + /// The following is a valid filter example: $filter=contains(namE, 'PATTERN') and name ne 'PATTERN-1'. The following is not + /// a valid filter example: $filter=location eq 'westus'. + /// The number of results to return per page for the list operation. Valid range for top parameter is 1 + /// to 100. If not specified, the default number of results to be returned is 20 items per page. + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task PartnerNamespacesListBySubscription(string subscriptionId, string Filter, int? Top, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func onDefault, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync sender) + { + var apiVersion = @"2021-10-15-preview"; + // Constant Parameters + using( NoSynchronizationContext ) + { + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + global::System.Uri.EscapeDataString(subscriptionId) + + "/providers/Microsoft.EventGrid/partnerNamespaces" + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + + "&" + + (string.IsNullOrEmpty(Filter) ? global::System.String.Empty : "$filter=" + global::System.Uri.EscapeDataString(Filter)) + + "&" + + (null == Top ? global::System.String.Empty : "$top=" + global::System.Uri.EscapeDataString(Top.ToString())) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Method.Get, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.PartnerNamespacesListBySubscription_Call(request,onOk,onDefault,eventListener,sender); + } + } + + /// List all the partner namespaces under an Azure subscription. + /// + /// The query used to filter the search results using OData syntax. Filtering is permitted on the 'name' + /// property only and with limited number of OData operations. These operations are: the 'contains' function as well as the + /// following logical operations: not, and, or, eq (for equal), and ne (for not equal). No arithmetic operations are supported. + /// The following is a valid filter example: $filter=contains(namE, 'PATTERN') and name ne 'PATTERN-1'. The following is not + /// a valid filter example: $filter=location eq 'westus'. + /// The number of results to return per page for the list operation. Valid range for top parameter is 1 + /// to 100. If not specified, the default number of results to be returned is 20 items per page. + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task PartnerNamespacesListBySubscriptionViaIdentity(global::System.String viaIdentity, string Filter, int? Top, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func onDefault, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync sender) + { + var apiVersion = @"2021-10-15-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.EventGrid/partnerNamespaces$", global::System.Text.RegularExpressions.RegexOptions.IgnoreCase).Match(viaIdentity); + if (!_match.Success) + { + throw new global::System.Exception("Invalid identity for URI '/subscriptions/{subscriptionId}/providers/Microsoft.EventGrid/partnerNamespaces'"); + } + + // 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.EventGrid/partnerNamespaces" + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + + "&" + + (string.IsNullOrEmpty(Filter) ? global::System.String.Empty : "$filter=" + global::System.Uri.EscapeDataString(Filter)) + + "&" + + (null == Top ? global::System.String.Empty : "$top=" + global::System.Uri.EscapeDataString(Top.ToString())) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Method.Get, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.PartnerNamespacesListBySubscription_Call(request,onOk,onDefault,eventListener,sender); + } + } + + /// Actual wire call for method. + /// the prepared HttpRequestMessage to send. + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + internal async global::System.Threading.Tasks.Task PartnerNamespacesListBySubscription_Call(global::System.Net.Http.HttpRequestMessage request, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func onDefault, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync sender) + { + using( NoSynchronizationContext ) + { + global::System.Net.Http.HttpResponseMessage _response = null; + try + { + var sendTask = sender.SendAsync(request, eventListener); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.BeforeCall, request); if( eventListener.Token.IsCancellationRequested ) { return; } + _response = await sendTask; + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.ResponseCreated, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + var _contentType = _response.Content.Headers.ContentType?.MediaType; + + switch ( _response.StatusCode ) + { + case global::System.Net.HttpStatusCode.OK: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onOk(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.PartnerNamespacesListResult.FromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + default: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onDefault(_response); + break; + } + } + } + finally + { + // finally statements + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Finally, request, _response); + _response?.Dispose(); + request?.Dispose(); + } + } + } + + /// + /// Validation method for method. Call this like the actual call, but you + /// will get validation events back. + /// + /// Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription + /// ID forms part of the URI for every service call. + /// The query used to filter the search results using OData syntax. Filtering is permitted on the 'name' + /// property only and with limited number of OData operations. These operations are: the 'contains' function as well as the + /// following logical operations: not, and, or, eq (for equal), and ne (for not equal). No arithmetic operations are supported. + /// The following is a valid filter example: $filter=contains(namE, 'PATTERN') and name ne 'PATTERN-1'. The following is not + /// a valid filter example: $filter=location eq 'westus'. + /// The number of results to return per page for the list operation. Valid range for top parameter is 1 + /// to 100. If not specified, the default number of results to be returned is 20 items per page. + /// an instance that will receive events. + /// + /// A that will be complete when handling of the response is completed. + /// + internal async global::System.Threading.Tasks.Task PartnerNamespacesListBySubscription_Validate(string subscriptionId, string Filter, int? Top, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener eventListener) + { + using( NoSynchronizationContext ) + { + await eventListener.AssertNotNull(nameof(subscriptionId),subscriptionId); + await eventListener.AssertNotNull(nameof(Filter),Filter); + } + } + + /// List the two keys used to publish to a partner namespace. + /// Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription + /// ID forms part of the URI for every service call. + /// The name of the resource group within the user's subscription. + /// Name of the partner namespace. + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task PartnerNamespacesListSharedAccessKeys(string subscriptionId, string resourceGroupName, string partnerNamespaceName, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func onDefault, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync sender) + { + var apiVersion = @"2021-10-15-preview"; + // Constant Parameters + using( NoSynchronizationContext ) + { + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + global::System.Uri.EscapeDataString(subscriptionId) + + "/resourceGroups/" + + global::System.Uri.EscapeDataString(resourceGroupName) + + "/providers/Microsoft.EventGrid/partnerNamespaces/" + + global::System.Uri.EscapeDataString(partnerNamespaceName) + + "/listKeys" + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Method.Post, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.PartnerNamespacesListSharedAccessKeys_Call(request,onOk,onDefault,eventListener,sender); + } + } + + /// List the two keys used to publish to a partner namespace. + /// + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task PartnerNamespacesListSharedAccessKeysViaIdentity(global::System.String viaIdentity, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func onDefault, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync sender) + { + var apiVersion = @"2021-10-15-preview"; + // Constant Parameters + using( NoSynchronizationContext ) + { + // verify that Identity format is an exact match for uri + + var _match = new global::System.Text.RegularExpressions.Regex("^/subscriptions/(?[^/]+)/resourceGroups/(?[^/]+)/providers/Microsoft.EventGrid/partnerNamespaces/(?[^/]+)/listKeys$", global::System.Text.RegularExpressions.RegexOptions.IgnoreCase).Match(viaIdentity); + if (!_match.Success) + { + throw new global::System.Exception("Invalid identity for URI '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.EventGrid/partnerNamespaces/{partnerNamespaceName}/listKeys'"); + } + + // replace URI parameters with values from identity + var subscriptionId = _match.Groups["subscriptionId"].Value; + var resourceGroupName = _match.Groups["resourceGroupName"].Value; + var partnerNamespaceName = _match.Groups["partnerNamespaceName"].Value; + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + subscriptionId + + "/resourceGroups/" + + resourceGroupName + + "/providers/Microsoft.EventGrid/partnerNamespaces/" + + partnerNamespaceName + + "/listKeys" + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Method.Post, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.PartnerNamespacesListSharedAccessKeys_Call(request,onOk,onDefault,eventListener,sender); + } + } + + /// + /// Actual wire call for method. + /// + /// the prepared HttpRequestMessage to send. + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + internal async global::System.Threading.Tasks.Task PartnerNamespacesListSharedAccessKeys_Call(global::System.Net.Http.HttpRequestMessage request, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func onDefault, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync sender) + { + using( NoSynchronizationContext ) + { + global::System.Net.Http.HttpResponseMessage _response = null; + try + { + var sendTask = sender.SendAsync(request, eventListener); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.BeforeCall, request); if( eventListener.Token.IsCancellationRequested ) { return; } + _response = await sendTask; + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.ResponseCreated, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + var _contentType = _response.Content.Headers.ContentType?.MediaType; + + switch ( _response.StatusCode ) + { + case global::System.Net.HttpStatusCode.OK: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onOk(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.PartnerNamespaceSharedAccessKeys.FromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + default: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onDefault(_response); + break; + } + } + } + finally + { + // finally statements + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Finally, request, _response); + _response?.Dispose(); + request?.Dispose(); + } + } + } + + /// + /// Validation method for method. Call this like the actual call, but + /// you will get validation events back. + /// + /// Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription + /// ID forms part of the URI for every service call. + /// The name of the resource group within the user's subscription. + /// Name of the partner namespace. + /// an instance that will receive events. + /// + /// A that will be complete when handling of the response is completed. + /// + internal async global::System.Threading.Tasks.Task PartnerNamespacesListSharedAccessKeys_Validate(string subscriptionId, string resourceGroupName, string partnerNamespaceName, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener eventListener) + { + using( NoSynchronizationContext ) + { + await eventListener.AssertNotNull(nameof(subscriptionId),subscriptionId); + await eventListener.AssertNotNull(nameof(resourceGroupName),resourceGroupName); + await eventListener.AssertNotNull(nameof(partnerNamespaceName),partnerNamespaceName); + } + } + + /// Regenerate a shared access key for a partner namespace. + /// Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription + /// ID forms part of the URI for every service call. + /// The name of the resource group within the user's subscription. + /// Name of the partner namespace. + /// Request body to regenerate key. + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task PartnerNamespacesRegenerateKey(string subscriptionId, string resourceGroupName, string partnerNamespaceName, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerNamespaceRegenerateKeyRequest body, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func onDefault, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync sender) + { + var apiVersion = @"2021-10-15-preview"; + // Constant Parameters + using( NoSynchronizationContext ) + { + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + global::System.Uri.EscapeDataString(subscriptionId) + + "/resourceGroups/" + + global::System.Uri.EscapeDataString(resourceGroupName) + + "/providers/Microsoft.EventGrid/partnerNamespaces/" + + global::System.Uri.EscapeDataString(partnerNamespaceName) + + "/regenerateKey" + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Method.Post, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // set body content + request.Content = new global::System.Net.Http.StringContent(null != body ? body.ToJson(null).ToString() : @"{}", global::System.Text.Encoding.UTF8); + request.Content.Headers.ContentType = global::System.Net.Http.Headers.MediaTypeHeaderValue.Parse("application/json"); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.BodyContentSet); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.PartnerNamespacesRegenerateKey_Call(request,onOk,onDefault,eventListener,sender); + } + } + + /// Regenerate a shared access key for a partner namespace. + /// + /// Request body to regenerate key. + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task PartnerNamespacesRegenerateKeyViaIdentity(global::System.String viaIdentity, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerNamespaceRegenerateKeyRequest body, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func onDefault, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync sender) + { + var apiVersion = @"2021-10-15-preview"; + // Constant Parameters + using( NoSynchronizationContext ) + { + // verify that Identity format is an exact match for uri + + var _match = new global::System.Text.RegularExpressions.Regex("^/subscriptions/(?[^/]+)/resourceGroups/(?[^/]+)/providers/Microsoft.EventGrid/partnerNamespaces/(?[^/]+)/regenerateKey$", global::System.Text.RegularExpressions.RegexOptions.IgnoreCase).Match(viaIdentity); + if (!_match.Success) + { + throw new global::System.Exception("Invalid identity for URI '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.EventGrid/partnerNamespaces/{partnerNamespaceName}/regenerateKey'"); + } + + // replace URI parameters with values from identity + var subscriptionId = _match.Groups["subscriptionId"].Value; + var resourceGroupName = _match.Groups["resourceGroupName"].Value; + var partnerNamespaceName = _match.Groups["partnerNamespaceName"].Value; + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + subscriptionId + + "/resourceGroups/" + + resourceGroupName + + "/providers/Microsoft.EventGrid/partnerNamespaces/" + + partnerNamespaceName + + "/regenerateKey" + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Method.Post, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // set body content + request.Content = new global::System.Net.Http.StringContent(null != body ? body.ToJson(null).ToString() : @"{}", global::System.Text.Encoding.UTF8); + request.Content.Headers.ContentType = global::System.Net.Http.Headers.MediaTypeHeaderValue.Parse("application/json"); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.BodyContentSet); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.PartnerNamespacesRegenerateKey_Call(request,onOk,onDefault,eventListener,sender); + } + } + + /// Actual wire call for method. + /// the prepared HttpRequestMessage to send. + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + internal async global::System.Threading.Tasks.Task PartnerNamespacesRegenerateKey_Call(global::System.Net.Http.HttpRequestMessage request, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func onDefault, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync sender) + { + using( NoSynchronizationContext ) + { + global::System.Net.Http.HttpResponseMessage _response = null; + try + { + var sendTask = sender.SendAsync(request, eventListener); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.BeforeCall, request); if( eventListener.Token.IsCancellationRequested ) { return; } + _response = await sendTask; + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.ResponseCreated, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + var _contentType = _response.Content.Headers.ContentType?.MediaType; + + switch ( _response.StatusCode ) + { + case global::System.Net.HttpStatusCode.OK: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onOk(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.PartnerNamespaceSharedAccessKeys.FromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + default: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onDefault(_response); + break; + } + } + } + finally + { + // finally statements + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Finally, request, _response); + _response?.Dispose(); + request?.Dispose(); + } + } + } + + /// + /// Validation method for method. Call this like the actual call, but you will + /// get validation events back. + /// + /// Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription + /// ID forms part of the URI for every service call. + /// The name of the resource group within the user's subscription. + /// Name of the partner namespace. + /// Request body to regenerate key. + /// an instance that will receive events. + /// + /// A that will be complete when handling of the response is completed. + /// + internal async global::System.Threading.Tasks.Task PartnerNamespacesRegenerateKey_Validate(string subscriptionId, string resourceGroupName, string partnerNamespaceName, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerNamespaceRegenerateKeyRequest body, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener eventListener) + { + using( NoSynchronizationContext ) + { + await eventListener.AssertNotNull(nameof(subscriptionId),subscriptionId); + await eventListener.AssertNotNull(nameof(resourceGroupName),resourceGroupName); + await eventListener.AssertNotNull(nameof(partnerNamespaceName),partnerNamespaceName); + await eventListener.AssertNotNull(nameof(body), body); + await eventListener.AssertObjectIsValid(nameof(body), body); + } + } + + /// Asynchronously updates a partner namespace with the specified parameters. + /// Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription + /// ID forms part of the URI for every service call. + /// The name of the resource group within the user's subscription. + /// Name of the partner namespace. + /// Partner namespace update information. + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task PartnerNamespacesUpdate(string subscriptionId, string resourceGroupName, string partnerNamespaceName, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerNamespaceUpdateParameters body, global::System.Func onOk, global::System.Func onDefault, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync sender) + { + var apiVersion = @"2021-10-15-preview"; + // Constant Parameters + using( NoSynchronizationContext ) + { + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + global::System.Uri.EscapeDataString(subscriptionId) + + "/resourceGroups/" + + global::System.Uri.EscapeDataString(resourceGroupName) + + "/providers/Microsoft.EventGrid/partnerNamespaces/" + + global::System.Uri.EscapeDataString(partnerNamespaceName) + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Method.Patch, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // set body content + request.Content = new global::System.Net.Http.StringContent(null != body ? body.ToJson(null).ToString() : @"{}", global::System.Text.Encoding.UTF8); + request.Content.Headers.ContentType = global::System.Net.Http.Headers.MediaTypeHeaderValue.Parse("application/json"); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.BodyContentSet); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.PartnerNamespacesUpdate_Call(request,onOk,onDefault,eventListener,sender); + } + } + + /// Asynchronously updates a partner namespace with the specified parameters. + /// + /// Partner namespace update information. + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task PartnerNamespacesUpdateViaIdentity(global::System.String viaIdentity, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerNamespaceUpdateParameters body, global::System.Func onOk, global::System.Func onDefault, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync sender) + { + var apiVersion = @"2021-10-15-preview"; + // Constant Parameters + using( NoSynchronizationContext ) + { + // verify that Identity format is an exact match for uri + + var _match = new global::System.Text.RegularExpressions.Regex("^/subscriptions/(?[^/]+)/resourceGroups/(?[^/]+)/providers/Microsoft.EventGrid/partnerNamespaces/(?[^/]+)$", global::System.Text.RegularExpressions.RegexOptions.IgnoreCase).Match(viaIdentity); + if (!_match.Success) + { + throw new global::System.Exception("Invalid identity for URI '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.EventGrid/partnerNamespaces/{partnerNamespaceName}'"); + } + + // replace URI parameters with values from identity + var subscriptionId = _match.Groups["subscriptionId"].Value; + var resourceGroupName = _match.Groups["resourceGroupName"].Value; + var partnerNamespaceName = _match.Groups["partnerNamespaceName"].Value; + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + subscriptionId + + "/resourceGroups/" + + resourceGroupName + + "/providers/Microsoft.EventGrid/partnerNamespaces/" + + partnerNamespaceName + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Method.Patch, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // set body content + request.Content = new global::System.Net.Http.StringContent(null != body ? body.ToJson(null).ToString() : @"{}", global::System.Text.Encoding.UTF8); + request.Content.Headers.ContentType = global::System.Net.Http.Headers.MediaTypeHeaderValue.Parse("application/json"); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.BodyContentSet); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.PartnerNamespacesUpdate_Call(request,onOk,onDefault,eventListener,sender); + } + } + + /// Actual wire call for method. + /// the prepared HttpRequestMessage to send. + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + internal async global::System.Threading.Tasks.Task PartnerNamespacesUpdate_Call(global::System.Net.Http.HttpRequestMessage request, global::System.Func onOk, global::System.Func onDefault, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync sender) + { + using( NoSynchronizationContext ) + { + global::System.Net.Http.HttpResponseMessage _response = null; + try + { + var sendTask = sender.SendAsync(request, eventListener); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.BeforeCall, request); if( eventListener.Token.IsCancellationRequested ) { return; } + _response = await sendTask; + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.ResponseCreated, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + // this operation supports x-ms-long-running-operation + var _originalUri = request.RequestUri.AbsoluteUri; + // declared final-state-via: default + var asyncOperation = _response.GetFirstHeader(@"Azure-AsyncOperation"); + var location = _response.GetFirstHeader(@"Location"); + while (request.Method == System.Net.Http.HttpMethod.Put && _response.StatusCode == global::System.Net.HttpStatusCode.OK || _response.StatusCode == global::System.Net.HttpStatusCode.Created || _response.StatusCode == global::System.Net.HttpStatusCode.Accepted ) + { + + // get the delay before polling. (default to 30 seconds if not present) + int delay = (int)(_response.Headers.RetryAfter?.Delta?.TotalSeconds ?? 30); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.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.EventGrid.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.EventGrid.Runtime.Json.JsonNode.Parse(await _response.Content.ReadAsStringAsync()) is Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Runtime.UndeclaredResponseException(_response); + } + } + + // check for terminal status code + if (_response.StatusCode == global::System.Net.HttpStatusCode.Created || _response.StatusCode == global::System.Net.HttpStatusCode.Accepted ) + { + continue; + } + // we are done polling, do a request on final target? + if (!string.IsNullOrWhiteSpace(_originalUri)) + { + // create a new request with the final uri + request = request.CloneAndDispose(new global::System.Uri(_originalUri), Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onOk(_response); + break; + } + default: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onDefault(_response); + break; + } + } + } + finally + { + // finally statements + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Finally, request, _response); + _response?.Dispose(); + request?.Dispose(); + } + } + } + + /// + /// Validation method for method. Call this like the actual call, but you will get + /// validation events back. + /// + /// Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription + /// ID forms part of the URI for every service call. + /// The name of the resource group within the user's subscription. + /// Name of the partner namespace. + /// Partner namespace update information. + /// an instance that will receive events. + /// + /// A that will be complete when handling of the response is completed. + /// + internal async global::System.Threading.Tasks.Task PartnerNamespacesUpdate_Validate(string subscriptionId, string resourceGroupName, string partnerNamespaceName, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerNamespaceUpdateParameters body, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener eventListener) + { + using( NoSynchronizationContext ) + { + await eventListener.AssertNotNull(nameof(subscriptionId),subscriptionId); + await eventListener.AssertNotNull(nameof(resourceGroupName),resourceGroupName); + await eventListener.AssertNotNull(nameof(partnerNamespaceName),partnerNamespaceName); + await eventListener.AssertNotNull(nameof(body), body); + await eventListener.AssertObjectIsValid(nameof(body), body); + } + } + + /// Creates a new partner registration with the specified parameters. + /// Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription + /// ID forms part of the URI for every service call. + /// The name of the resource group within the user's subscription. + /// Name of the partner registration. + /// PartnerRegistration information. + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task PartnerRegistrationsCreateOrUpdate(string subscriptionId, string resourceGroupName, string partnerRegistrationName, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerRegistration body, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func onDefault, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync sender) + { + var apiVersion = @"2021-10-15-preview"; + // Constant Parameters + using( NoSynchronizationContext ) + { + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + global::System.Uri.EscapeDataString(subscriptionId) + + "/resourceGroups/" + + global::System.Uri.EscapeDataString(resourceGroupName) + + "/providers/Microsoft.EventGrid/partnerRegistrations/" + + global::System.Uri.EscapeDataString(partnerRegistrationName) + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Method.Put, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // set body content + request.Content = new global::System.Net.Http.StringContent(null != body ? body.ToJson(null).ToString() : @"{}", global::System.Text.Encoding.UTF8); + request.Content.Headers.ContentType = global::System.Net.Http.Headers.MediaTypeHeaderValue.Parse("application/json"); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.BodyContentSet); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.PartnerRegistrationsCreateOrUpdate_Call(request,onOk,onDefault,eventListener,sender); + } + } + + /// Creates a new partner registration with the specified parameters. + /// + /// PartnerRegistration information. + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task PartnerRegistrationsCreateOrUpdateViaIdentity(global::System.String viaIdentity, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerRegistration body, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func onDefault, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync sender) + { + var apiVersion = @"2021-10-15-preview"; + // Constant Parameters + using( NoSynchronizationContext ) + { + // verify that Identity format is an exact match for uri + + var _match = new global::System.Text.RegularExpressions.Regex("^/subscriptions/(?[^/]+)/resourceGroups/(?[^/]+)/providers/Microsoft.EventGrid/partnerRegistrations/(?[^/]+)$", global::System.Text.RegularExpressions.RegexOptions.IgnoreCase).Match(viaIdentity); + if (!_match.Success) + { + throw new global::System.Exception("Invalid identity for URI '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.EventGrid/partnerRegistrations/{partnerRegistrationName}'"); + } + + // replace URI parameters with values from identity + var subscriptionId = _match.Groups["subscriptionId"].Value; + var resourceGroupName = _match.Groups["resourceGroupName"].Value; + var partnerRegistrationName = _match.Groups["partnerRegistrationName"].Value; + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + subscriptionId + + "/resourceGroups/" + + resourceGroupName + + "/providers/Microsoft.EventGrid/partnerRegistrations/" + + partnerRegistrationName + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Method.Put, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // set body content + request.Content = new global::System.Net.Http.StringContent(null != body ? body.ToJson(null).ToString() : @"{}", global::System.Text.Encoding.UTF8); + request.Content.Headers.ContentType = global::System.Net.Http.Headers.MediaTypeHeaderValue.Parse("application/json"); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.BodyContentSet); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.PartnerRegistrationsCreateOrUpdate_Call(request,onOk,onDefault,eventListener,sender); + } + } + + /// Actual wire call for method. + /// the prepared HttpRequestMessage to send. + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + internal async global::System.Threading.Tasks.Task PartnerRegistrationsCreateOrUpdate_Call(global::System.Net.Http.HttpRequestMessage request, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func onDefault, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync sender) + { + using( NoSynchronizationContext ) + { + global::System.Net.Http.HttpResponseMessage _response = null; + try + { + var sendTask = sender.SendAsync(request, eventListener); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.BeforeCall, request); if( eventListener.Token.IsCancellationRequested ) { return; } + _response = await sendTask; + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.ResponseCreated, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + // this operation supports x-ms-long-running-operation + var _originalUri = request.RequestUri.AbsoluteUri; + // declared final-state-via: default + var asyncOperation = _response.GetFirstHeader(@"Azure-AsyncOperation"); + var location = _response.GetFirstHeader(@"Location"); + while (request.Method == System.Net.Http.HttpMethod.Put && _response.StatusCode == global::System.Net.HttpStatusCode.OK || _response.StatusCode == global::System.Net.HttpStatusCode.Created || _response.StatusCode == global::System.Net.HttpStatusCode.Accepted ) + { + + // get the delay before polling. (default to 30 seconds if not present) + int delay = (int)(_response.Headers.RetryAfter?.Delta?.TotalSeconds ?? 30); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.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.EventGrid.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.EventGrid.Runtime.Json.JsonNode.Parse(await _response.Content.ReadAsStringAsync()) is Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Runtime.UndeclaredResponseException(_response); + } + } + + // check for terminal status code + if (_response.StatusCode == global::System.Net.HttpStatusCode.Created || _response.StatusCode == global::System.Net.HttpStatusCode.Accepted ) + { + continue; + } + // we are done polling, do a request on final target? + if (!string.IsNullOrWhiteSpace(_originalUri)) + { + // create a new request with the final uri + request = request.CloneAndDispose(new global::System.Uri(_originalUri), Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onOk(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.PartnerRegistration.FromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + default: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onDefault(_response); + break; + } + } + } + finally + { + // finally statements + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Finally, request, _response); + _response?.Dispose(); + request?.Dispose(); + } + } + } + + /// + /// Validation method for method. Call this like the actual call, but you + /// will get validation events back. + /// + /// Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription + /// ID forms part of the URI for every service call. + /// The name of the resource group within the user's subscription. + /// Name of the partner registration. + /// PartnerRegistration information. + /// an instance that will receive events. + /// + /// A that will be complete when handling of the response is completed. + /// + internal async global::System.Threading.Tasks.Task PartnerRegistrationsCreateOrUpdate_Validate(string subscriptionId, string resourceGroupName, string partnerRegistrationName, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerRegistration body, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener eventListener) + { + using( NoSynchronizationContext ) + { + await eventListener.AssertNotNull(nameof(subscriptionId),subscriptionId); + await eventListener.AssertNotNull(nameof(resourceGroupName),resourceGroupName); + await eventListener.AssertNotNull(nameof(partnerRegistrationName),partnerRegistrationName); + await eventListener.AssertNotNull(nameof(body), body); + await eventListener.AssertObjectIsValid(nameof(body), body); + } + } + + /// Deletes a partner registration with the specified parameters. + /// Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription + /// ID forms part of the URI for every service call. + /// The name of the resource group within the user's subscription. + /// Name of the partner registration. + /// 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.EventGrid.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task PartnerRegistrationsDelete(string subscriptionId, string resourceGroupName, string partnerRegistrationName, global::System.Func onOk, global::System.Func onNoContent, global::System.Func onDefault, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync sender) + { + var apiVersion = @"2021-10-15-preview"; + // Constant Parameters + using( NoSynchronizationContext ) + { + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + global::System.Uri.EscapeDataString(subscriptionId) + + "/resourceGroups/" + + global::System.Uri.EscapeDataString(resourceGroupName) + + "/providers/Microsoft.EventGrid/partnerRegistrations/" + + global::System.Uri.EscapeDataString(partnerRegistrationName) + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Method.Delete, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.PartnerRegistrationsDelete_Call(request,onOk,onNoContent,onDefault,eventListener,sender); + } + } + + /// Deletes a partner registration with the specified parameters. + /// + /// 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.EventGrid.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task PartnerRegistrationsDeleteViaIdentity(global::System.String viaIdentity, global::System.Func onOk, global::System.Func onNoContent, global::System.Func onDefault, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync sender) + { + var apiVersion = @"2021-10-15-preview"; + // Constant Parameters + using( NoSynchronizationContext ) + { + // verify that Identity format is an exact match for uri + + var _match = new global::System.Text.RegularExpressions.Regex("^/subscriptions/(?[^/]+)/resourceGroups/(?[^/]+)/providers/Microsoft.EventGrid/partnerRegistrations/(?[^/]+)$", global::System.Text.RegularExpressions.RegexOptions.IgnoreCase).Match(viaIdentity); + if (!_match.Success) + { + throw new global::System.Exception("Invalid identity for URI '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.EventGrid/partnerRegistrations/{partnerRegistrationName}'"); + } + + // replace URI parameters with values from identity + var subscriptionId = _match.Groups["subscriptionId"].Value; + var resourceGroupName = _match.Groups["resourceGroupName"].Value; + var partnerRegistrationName = _match.Groups["partnerRegistrationName"].Value; + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + subscriptionId + + "/resourceGroups/" + + resourceGroupName + + "/providers/Microsoft.EventGrid/partnerRegistrations/" + + partnerRegistrationName + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Method.Delete, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.PartnerRegistrationsDelete_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.EventGrid.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + internal async global::System.Threading.Tasks.Task PartnerRegistrationsDelete_Call(global::System.Net.Http.HttpRequestMessage request, global::System.Func onOk, global::System.Func onNoContent, global::System.Func onDefault, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync sender) + { + using( NoSynchronizationContext ) + { + global::System.Net.Http.HttpResponseMessage _response = null; + try + { + var sendTask = sender.SendAsync(request, eventListener); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.BeforeCall, request); if( eventListener.Token.IsCancellationRequested ) { return; } + _response = await sendTask; + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.ResponseCreated, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + // this operation supports x-ms-long-running-operation + var _originalUri = request.RequestUri.AbsoluteUri; + // declared final-state-via: default + var _finalUri = _response.GetFirstHeader(@"Location"); + var asyncOperation = _response.GetFirstHeader(@"Azure-AsyncOperation"); + var location = _response.GetFirstHeader(@"Location"); + while (request.Method == System.Net.Http.HttpMethod.Put && _response.StatusCode == global::System.Net.HttpStatusCode.OK || _response.StatusCode == global::System.Net.HttpStatusCode.Created || _response.StatusCode == global::System.Net.HttpStatusCode.Accepted ) + { + + // get the delay before polling. (default to 30 seconds if not present) + int delay = (int)(_response.Headers.RetryAfter?.Delta?.TotalSeconds ?? 30); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.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.EventGrid.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.EventGrid.Runtime.Json.JsonNode.Parse(await _response.Content.ReadAsStringAsync()) is Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Runtime.UndeclaredResponseException(_response); + } + } + + // check for terminal status code + if (_response.StatusCode == global::System.Net.HttpStatusCode.Created || _response.StatusCode == global::System.Net.HttpStatusCode.Accepted ) + { + continue; + } + // we are done polling, do a request on final target? + if (!string.IsNullOrWhiteSpace(_finalUri)) + { + // create a new request with the final uri + request = request.CloneAndDispose(new global::System.Uri(_finalUri), Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.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.EventGrid.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onNoContent(_response); + break; + } + default: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onDefault(_response); + break; + } + } + } + finally + { + // finally statements + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Finally, request, _response); + _response?.Dispose(); + request?.Dispose(); + } + } + } + + /// + /// Validation method for method. Call this like the actual call, but you will get + /// validation events back. + /// + /// Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription + /// ID forms part of the URI for every service call. + /// The name of the resource group within the user's subscription. + /// Name of the partner registration. + /// an instance that will receive events. + /// + /// A that will be complete when handling of the response is completed. + /// + internal async global::System.Threading.Tasks.Task PartnerRegistrationsDelete_Validate(string subscriptionId, string resourceGroupName, string partnerRegistrationName, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener eventListener) + { + using( NoSynchronizationContext ) + { + await eventListener.AssertNotNull(nameof(subscriptionId),subscriptionId); + await eventListener.AssertNotNull(nameof(resourceGroupName),resourceGroupName); + await eventListener.AssertNotNull(nameof(partnerRegistrationName),partnerRegistrationName); + } + } + + /// Gets a partner registration with the specified parameters. + /// Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription + /// ID forms part of the URI for every service call. + /// The name of the resource group within the user's subscription. + /// Name of the partner registration. + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task PartnerRegistrationsGet(string subscriptionId, string resourceGroupName, string partnerRegistrationName, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func onDefault, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync sender) + { + var apiVersion = @"2021-10-15-preview"; + // Constant Parameters + using( NoSynchronizationContext ) + { + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + global::System.Uri.EscapeDataString(subscriptionId) + + "/resourceGroups/" + + global::System.Uri.EscapeDataString(resourceGroupName) + + "/providers/Microsoft.EventGrid/partnerRegistrations/" + + global::System.Uri.EscapeDataString(partnerRegistrationName) + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Method.Get, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.PartnerRegistrationsGet_Call(request,onOk,onDefault,eventListener,sender); + } + } + + /// Gets a partner registration with the specified parameters. + /// + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task PartnerRegistrationsGetViaIdentity(global::System.String viaIdentity, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func onDefault, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync sender) + { + var apiVersion = @"2021-10-15-preview"; + // Constant Parameters + using( NoSynchronizationContext ) + { + // verify that Identity format is an exact match for uri + + var _match = new global::System.Text.RegularExpressions.Regex("^/subscriptions/(?[^/]+)/resourceGroups/(?[^/]+)/providers/Microsoft.EventGrid/partnerRegistrations/(?[^/]+)$", global::System.Text.RegularExpressions.RegexOptions.IgnoreCase).Match(viaIdentity); + if (!_match.Success) + { + throw new global::System.Exception("Invalid identity for URI '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.EventGrid/partnerRegistrations/{partnerRegistrationName}'"); + } + + // replace URI parameters with values from identity + var subscriptionId = _match.Groups["subscriptionId"].Value; + var resourceGroupName = _match.Groups["resourceGroupName"].Value; + var partnerRegistrationName = _match.Groups["partnerRegistrationName"].Value; + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + subscriptionId + + "/resourceGroups/" + + resourceGroupName + + "/providers/Microsoft.EventGrid/partnerRegistrations/" + + partnerRegistrationName + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Method.Get, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.PartnerRegistrationsGet_Call(request,onOk,onDefault,eventListener,sender); + } + } + + /// Actual wire call for method. + /// the prepared HttpRequestMessage to send. + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + internal async global::System.Threading.Tasks.Task PartnerRegistrationsGet_Call(global::System.Net.Http.HttpRequestMessage request, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func onDefault, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync sender) + { + using( NoSynchronizationContext ) + { + global::System.Net.Http.HttpResponseMessage _response = null; + try + { + var sendTask = sender.SendAsync(request, eventListener); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.BeforeCall, request); if( eventListener.Token.IsCancellationRequested ) { return; } + _response = await sendTask; + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.ResponseCreated, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + var _contentType = _response.Content.Headers.ContentType?.MediaType; + + switch ( _response.StatusCode ) + { + case global::System.Net.HttpStatusCode.OK: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onOk(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.PartnerRegistration.FromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + default: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onDefault(_response); + break; + } + } + } + finally + { + // finally statements + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Finally, request, _response); + _response?.Dispose(); + request?.Dispose(); + } + } + } + + /// + /// Validation method for method. Call this like the actual call, but you will get + /// validation events back. + /// + /// Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription + /// ID forms part of the URI for every service call. + /// The name of the resource group within the user's subscription. + /// Name of the partner registration. + /// an instance that will receive events. + /// + /// A that will be complete when handling of the response is completed. + /// + internal async global::System.Threading.Tasks.Task PartnerRegistrationsGet_Validate(string subscriptionId, string resourceGroupName, string partnerRegistrationName, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener eventListener) + { + using( NoSynchronizationContext ) + { + await eventListener.AssertNotNull(nameof(subscriptionId),subscriptionId); + await eventListener.AssertNotNull(nameof(resourceGroupName),resourceGroupName); + await eventListener.AssertNotNull(nameof(partnerRegistrationName),partnerRegistrationName); + } + } + + /// List all the partner registrations under a resource group. + /// Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription + /// ID forms part of the URI for every service call. + /// The name of the resource group within the user's subscription. + /// The query used to filter the search results using OData syntax. Filtering is permitted on the 'name' + /// property only and with limited number of OData operations. These operations are: the 'contains' function as well as the + /// following logical operations: not, and, or, eq (for equal), and ne (for not equal). No arithmetic operations are supported. + /// The following is a valid filter example: $filter=contains(namE, 'PATTERN') and name ne 'PATTERN-1'. The following is not + /// a valid filter example: $filter=location eq 'westus'. + /// The number of results to return per page for the list operation. Valid range for top parameter is 1 + /// to 100. If not specified, the default number of results to be returned is 20 items per page. + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task PartnerRegistrationsListByResourceGroup(string subscriptionId, string resourceGroupName, string Filter, int? Top, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func onDefault, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync sender) + { + var apiVersion = @"2021-10-15-preview"; + // Constant Parameters + using( NoSynchronizationContext ) + { + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + global::System.Uri.EscapeDataString(subscriptionId) + + "/resourceGroups/" + + global::System.Uri.EscapeDataString(resourceGroupName) + + "/providers/Microsoft.EventGrid/partnerRegistrations" + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + + "&" + + (string.IsNullOrEmpty(Filter) ? global::System.String.Empty : "$filter=" + global::System.Uri.EscapeDataString(Filter)) + + "&" + + (null == Top ? global::System.String.Empty : "$top=" + global::System.Uri.EscapeDataString(Top.ToString())) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Method.Get, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.PartnerRegistrationsListByResourceGroup_Call(request,onOk,onDefault,eventListener,sender); + } + } + + /// List all the partner registrations under a resource group. + /// + /// The query used to filter the search results using OData syntax. Filtering is permitted on the 'name' + /// property only and with limited number of OData operations. These operations are: the 'contains' function as well as the + /// following logical operations: not, and, or, eq (for equal), and ne (for not equal). No arithmetic operations are supported. + /// The following is a valid filter example: $filter=contains(namE, 'PATTERN') and name ne 'PATTERN-1'. The following is not + /// a valid filter example: $filter=location eq 'westus'. + /// The number of results to return per page for the list operation. Valid range for top parameter is 1 + /// to 100. If not specified, the default number of results to be returned is 20 items per page. + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task PartnerRegistrationsListByResourceGroupViaIdentity(global::System.String viaIdentity, string Filter, int? Top, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func onDefault, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync sender) + { + var apiVersion = @"2021-10-15-preview"; + // Constant Parameters + using( NoSynchronizationContext ) + { + // verify that Identity format is an exact match for uri + + var _match = new global::System.Text.RegularExpressions.Regex("^/subscriptions/(?[^/]+)/resourceGroups/(?[^/]+)/providers/Microsoft.EventGrid/partnerRegistrations$", global::System.Text.RegularExpressions.RegexOptions.IgnoreCase).Match(viaIdentity); + if (!_match.Success) + { + throw new global::System.Exception("Invalid identity for URI '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.EventGrid/partnerRegistrations'"); + } + + // 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.EventGrid/partnerRegistrations" + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + + "&" + + (string.IsNullOrEmpty(Filter) ? global::System.String.Empty : "$filter=" + global::System.Uri.EscapeDataString(Filter)) + + "&" + + (null == Top ? global::System.String.Empty : "$top=" + global::System.Uri.EscapeDataString(Top.ToString())) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Method.Get, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.PartnerRegistrationsListByResourceGroup_Call(request,onOk,onDefault,eventListener,sender); + } + } + + /// + /// Actual wire call for method. + /// + /// the prepared HttpRequestMessage to send. + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + internal async global::System.Threading.Tasks.Task PartnerRegistrationsListByResourceGroup_Call(global::System.Net.Http.HttpRequestMessage request, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func onDefault, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync sender) + { + using( NoSynchronizationContext ) + { + global::System.Net.Http.HttpResponseMessage _response = null; + try + { + var sendTask = sender.SendAsync(request, eventListener); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.BeforeCall, request); if( eventListener.Token.IsCancellationRequested ) { return; } + _response = await sendTask; + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.ResponseCreated, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + var _contentType = _response.Content.Headers.ContentType?.MediaType; + + switch ( _response.StatusCode ) + { + case global::System.Net.HttpStatusCode.OK: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onOk(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.PartnerRegistrationsListResult.FromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + default: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onDefault(_response); + break; + } + } + } + finally + { + // finally statements + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Finally, request, _response); + _response?.Dispose(); + request?.Dispose(); + } + } + } + + /// + /// Validation method for method. Call this like the actual call, but + /// you will get validation events back. + /// + /// Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription + /// ID forms part of the URI for every service call. + /// The name of the resource group within the user's subscription. + /// The query used to filter the search results using OData syntax. Filtering is permitted on the 'name' + /// property only and with limited number of OData operations. These operations are: the 'contains' function as well as the + /// following logical operations: not, and, or, eq (for equal), and ne (for not equal). No arithmetic operations are supported. + /// The following is a valid filter example: $filter=contains(namE, 'PATTERN') and name ne 'PATTERN-1'. The following is not + /// a valid filter example: $filter=location eq 'westus'. + /// The number of results to return per page for the list operation. Valid range for top parameter is 1 + /// to 100. If not specified, the default number of results to be returned is 20 items per page. + /// an instance that will receive events. + /// + /// A that will be complete when handling of the response is completed. + /// + internal async global::System.Threading.Tasks.Task PartnerRegistrationsListByResourceGroup_Validate(string subscriptionId, string resourceGroupName, string Filter, int? Top, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener eventListener) + { + using( NoSynchronizationContext ) + { + await eventListener.AssertNotNull(nameof(subscriptionId),subscriptionId); + await eventListener.AssertNotNull(nameof(resourceGroupName),resourceGroupName); + await eventListener.AssertNotNull(nameof(Filter),Filter); + } + } + + /// List all the partner registrations under an Azure subscription. + /// Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription + /// ID forms part of the URI for every service call. + /// The query used to filter the search results using OData syntax. Filtering is permitted on the 'name' + /// property only and with limited number of OData operations. These operations are: the 'contains' function as well as the + /// following logical operations: not, and, or, eq (for equal), and ne (for not equal). No arithmetic operations are supported. + /// The following is a valid filter example: $filter=contains(namE, 'PATTERN') and name ne 'PATTERN-1'. The following is not + /// a valid filter example: $filter=location eq 'westus'. + /// The number of results to return per page for the list operation. Valid range for top parameter is 1 + /// to 100. If not specified, the default number of results to be returned is 20 items per page. + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task PartnerRegistrationsListBySubscription(string subscriptionId, string Filter, int? Top, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func onDefault, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync sender) + { + var apiVersion = @"2021-10-15-preview"; + // Constant Parameters + using( NoSynchronizationContext ) + { + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + global::System.Uri.EscapeDataString(subscriptionId) + + "/providers/Microsoft.EventGrid/partnerRegistrations" + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + + "&" + + (string.IsNullOrEmpty(Filter) ? global::System.String.Empty : "$filter=" + global::System.Uri.EscapeDataString(Filter)) + + "&" + + (null == Top ? global::System.String.Empty : "$top=" + global::System.Uri.EscapeDataString(Top.ToString())) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Method.Get, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.PartnerRegistrationsListBySubscription_Call(request,onOk,onDefault,eventListener,sender); + } + } + + /// List all the partner registrations under an Azure subscription. + /// + /// The query used to filter the search results using OData syntax. Filtering is permitted on the 'name' + /// property only and with limited number of OData operations. These operations are: the 'contains' function as well as the + /// following logical operations: not, and, or, eq (for equal), and ne (for not equal). No arithmetic operations are supported. + /// The following is a valid filter example: $filter=contains(namE, 'PATTERN') and name ne 'PATTERN-1'. The following is not + /// a valid filter example: $filter=location eq 'westus'. + /// The number of results to return per page for the list operation. Valid range for top parameter is 1 + /// to 100. If not specified, the default number of results to be returned is 20 items per page. + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task PartnerRegistrationsListBySubscriptionViaIdentity(global::System.String viaIdentity, string Filter, int? Top, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func onDefault, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync sender) + { + var apiVersion = @"2021-10-15-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.EventGrid/partnerRegistrations$", global::System.Text.RegularExpressions.RegexOptions.IgnoreCase).Match(viaIdentity); + if (!_match.Success) + { + throw new global::System.Exception("Invalid identity for URI '/subscriptions/{subscriptionId}/providers/Microsoft.EventGrid/partnerRegistrations'"); + } + + // 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.EventGrid/partnerRegistrations" + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + + "&" + + (string.IsNullOrEmpty(Filter) ? global::System.String.Empty : "$filter=" + global::System.Uri.EscapeDataString(Filter)) + + "&" + + (null == Top ? global::System.String.Empty : "$top=" + global::System.Uri.EscapeDataString(Top.ToString())) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Method.Get, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.PartnerRegistrationsListBySubscription_Call(request,onOk,onDefault,eventListener,sender); + } + } + + /// + /// Actual wire call for method. + /// + /// the prepared HttpRequestMessage to send. + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + internal async global::System.Threading.Tasks.Task PartnerRegistrationsListBySubscription_Call(global::System.Net.Http.HttpRequestMessage request, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func onDefault, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync sender) + { + using( NoSynchronizationContext ) + { + global::System.Net.Http.HttpResponseMessage _response = null; + try + { + var sendTask = sender.SendAsync(request, eventListener); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.BeforeCall, request); if( eventListener.Token.IsCancellationRequested ) { return; } + _response = await sendTask; + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.ResponseCreated, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + var _contentType = _response.Content.Headers.ContentType?.MediaType; + + switch ( _response.StatusCode ) + { + case global::System.Net.HttpStatusCode.OK: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onOk(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.PartnerRegistrationsListResult.FromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + default: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onDefault(_response); + break; + } + } + } + finally + { + // finally statements + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Finally, request, _response); + _response?.Dispose(); + request?.Dispose(); + } + } + } + + /// + /// Validation method for method. Call this like the actual call, but + /// you will get validation events back. + /// + /// Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription + /// ID forms part of the URI for every service call. + /// The query used to filter the search results using OData syntax. Filtering is permitted on the 'name' + /// property only and with limited number of OData operations. These operations are: the 'contains' function as well as the + /// following logical operations: not, and, or, eq (for equal), and ne (for not equal). No arithmetic operations are supported. + /// The following is a valid filter example: $filter=contains(namE, 'PATTERN') and name ne 'PATTERN-1'. The following is not + /// a valid filter example: $filter=location eq 'westus'. + /// The number of results to return per page for the list operation. Valid range for top parameter is 1 + /// to 100. If not specified, the default number of results to be returned is 20 items per page. + /// an instance that will receive events. + /// + /// A that will be complete when handling of the response is completed. + /// + internal async global::System.Threading.Tasks.Task PartnerRegistrationsListBySubscription_Validate(string subscriptionId, string Filter, int? Top, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener eventListener) + { + using( NoSynchronizationContext ) + { + await eventListener.AssertNotNull(nameof(subscriptionId),subscriptionId); + await eventListener.AssertNotNull(nameof(Filter),Filter); + } + } + + /// Updates a partner registration with the specified parameters. + /// Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription + /// ID forms part of the URI for every service call. + /// The name of the resource group within the user's subscription. + /// Name of the partner registration. + /// Partner registration update information. + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task PartnerRegistrationsUpdate(string subscriptionId, string resourceGroupName, string partnerRegistrationName, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerRegistrationUpdateParameters body, global::System.Func onOk, global::System.Func onDefault, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync sender) + { + var apiVersion = @"2021-10-15-preview"; + // Constant Parameters + using( NoSynchronizationContext ) + { + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + global::System.Uri.EscapeDataString(subscriptionId) + + "/resourceGroups/" + + global::System.Uri.EscapeDataString(resourceGroupName) + + "/providers/Microsoft.EventGrid/partnerRegistrations/" + + global::System.Uri.EscapeDataString(partnerRegistrationName) + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Method.Patch, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // set body content + request.Content = new global::System.Net.Http.StringContent(null != body ? body.ToJson(null).ToString() : @"{}", global::System.Text.Encoding.UTF8); + request.Content.Headers.ContentType = global::System.Net.Http.Headers.MediaTypeHeaderValue.Parse("application/json"); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.BodyContentSet); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.PartnerRegistrationsUpdate_Call(request,onOk,onDefault,eventListener,sender); + } + } + + /// Updates a partner registration with the specified parameters. + /// + /// Partner registration update information. + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task PartnerRegistrationsUpdateViaIdentity(global::System.String viaIdentity, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerRegistrationUpdateParameters body, global::System.Func onOk, global::System.Func onDefault, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync sender) + { + var apiVersion = @"2021-10-15-preview"; + // Constant Parameters + using( NoSynchronizationContext ) + { + // verify that Identity format is an exact match for uri + + var _match = new global::System.Text.RegularExpressions.Regex("^/subscriptions/(?[^/]+)/resourceGroups/(?[^/]+)/providers/Microsoft.EventGrid/partnerRegistrations/(?[^/]+)$", global::System.Text.RegularExpressions.RegexOptions.IgnoreCase).Match(viaIdentity); + if (!_match.Success) + { + throw new global::System.Exception("Invalid identity for URI '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.EventGrid/partnerRegistrations/{partnerRegistrationName}'"); + } + + // replace URI parameters with values from identity + var subscriptionId = _match.Groups["subscriptionId"].Value; + var resourceGroupName = _match.Groups["resourceGroupName"].Value; + var partnerRegistrationName = _match.Groups["partnerRegistrationName"].Value; + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + subscriptionId + + "/resourceGroups/" + + resourceGroupName + + "/providers/Microsoft.EventGrid/partnerRegistrations/" + + partnerRegistrationName + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Method.Patch, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // set body content + request.Content = new global::System.Net.Http.StringContent(null != body ? body.ToJson(null).ToString() : @"{}", global::System.Text.Encoding.UTF8); + request.Content.Headers.ContentType = global::System.Net.Http.Headers.MediaTypeHeaderValue.Parse("application/json"); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.BodyContentSet); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.PartnerRegistrationsUpdate_Call(request,onOk,onDefault,eventListener,sender); + } + } + + /// Actual wire call for method. + /// the prepared HttpRequestMessage to send. + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + internal async global::System.Threading.Tasks.Task PartnerRegistrationsUpdate_Call(global::System.Net.Http.HttpRequestMessage request, global::System.Func onOk, global::System.Func onDefault, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync sender) + { + using( NoSynchronizationContext ) + { + global::System.Net.Http.HttpResponseMessage _response = null; + try + { + var sendTask = sender.SendAsync(request, eventListener); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.BeforeCall, request); if( eventListener.Token.IsCancellationRequested ) { return; } + _response = await sendTask; + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.ResponseCreated, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + // this operation supports x-ms-long-running-operation + var _originalUri = request.RequestUri.AbsoluteUri; + // declared final-state-via: default + var asyncOperation = _response.GetFirstHeader(@"Azure-AsyncOperation"); + var location = _response.GetFirstHeader(@"Location"); + while (request.Method == System.Net.Http.HttpMethod.Put && _response.StatusCode == global::System.Net.HttpStatusCode.OK || _response.StatusCode == global::System.Net.HttpStatusCode.Created || _response.StatusCode == global::System.Net.HttpStatusCode.Accepted ) + { + + // get the delay before polling. (default to 30 seconds if not present) + int delay = (int)(_response.Headers.RetryAfter?.Delta?.TotalSeconds ?? 30); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.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.EventGrid.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.EventGrid.Runtime.Json.JsonNode.Parse(await _response.Content.ReadAsStringAsync()) is Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Runtime.UndeclaredResponseException(_response); + } + } + + // check for terminal status code + if (_response.StatusCode == global::System.Net.HttpStatusCode.Created || _response.StatusCode == global::System.Net.HttpStatusCode.Accepted ) + { + continue; + } + // we are done polling, do a request on final target? + if (!string.IsNullOrWhiteSpace(_originalUri)) + { + // create a new request with the final uri + request = request.CloneAndDispose(new global::System.Uri(_originalUri), Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onOk(_response); + break; + } + default: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onDefault(_response); + break; + } + } + } + finally + { + // finally statements + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Finally, request, _response); + _response?.Dispose(); + request?.Dispose(); + } + } + } + + /// + /// Validation method for method. Call this like the actual call, but you will get + /// validation events back. + /// + /// Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription + /// ID forms part of the URI for every service call. + /// The name of the resource group within the user's subscription. + /// Name of the partner registration. + /// Partner registration update information. + /// an instance that will receive events. + /// + /// A that will be complete when handling of the response is completed. + /// + internal async global::System.Threading.Tasks.Task PartnerRegistrationsUpdate_Validate(string subscriptionId, string resourceGroupName, string partnerRegistrationName, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerRegistrationUpdateParameters body, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener eventListener) + { + using( NoSynchronizationContext ) + { + await eventListener.AssertNotNull(nameof(subscriptionId),subscriptionId); + await eventListener.AssertNotNull(nameof(resourceGroupName),resourceGroupName); + await eventListener.AssertNotNull(nameof(partnerRegistrationName),partnerRegistrationName); + await eventListener.AssertNotNull(nameof(body), body); + await eventListener.AssertObjectIsValid(nameof(body), body); + } + } + + /// + /// Asynchronously creates or updates an event subscription of a partner topic with the specified parameters. Existing event + /// subscriptions will be updated with this API. + /// + /// Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription + /// ID forms part of the URI for every service call. + /// The name of the resource group within the user's subscription. + /// Name of the partner topic. + /// Name of the event subscription to be created. Event subscription names must be between + /// 3 and 100 characters in length and use alphanumeric letters only. + /// Event subscription properties containing the destination and filter information. + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task PartnerTopicEventSubscriptionsCreateOrUpdate(string subscriptionId, string resourceGroupName, string partnerTopicName, string eventSubscriptionName, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscription body, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func onDefault, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync sender) + { + var apiVersion = @"2021-10-15-preview"; + // Constant Parameters + using( NoSynchronizationContext ) + { + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + global::System.Uri.EscapeDataString(subscriptionId) + + "/resourceGroups/" + + global::System.Uri.EscapeDataString(resourceGroupName) + + "/providers/Microsoft.EventGrid/partnerTopics/" + + global::System.Uri.EscapeDataString(partnerTopicName) + + "/eventSubscriptions/" + + global::System.Uri.EscapeDataString(eventSubscriptionName) + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Method.Put, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // set body content + request.Content = new global::System.Net.Http.StringContent(null != body ? body.ToJson(null).ToString() : @"{}", global::System.Text.Encoding.UTF8); + request.Content.Headers.ContentType = global::System.Net.Http.Headers.MediaTypeHeaderValue.Parse("application/json"); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.BodyContentSet); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.PartnerTopicEventSubscriptionsCreateOrUpdate_Call(request,onOk,onDefault,eventListener,sender); + } + } + + /// + /// Asynchronously creates or updates an event subscription of a partner topic with the specified parameters. Existing event + /// subscriptions will be updated with this API. + /// + /// + /// Event subscription properties containing the destination and filter information. + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task PartnerTopicEventSubscriptionsCreateOrUpdateViaIdentity(global::System.String viaIdentity, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscription body, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func onDefault, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync sender) + { + var apiVersion = @"2021-10-15-preview"; + // Constant Parameters + using( NoSynchronizationContext ) + { + // verify that Identity format is an exact match for uri + + var _match = new global::System.Text.RegularExpressions.Regex("^/subscriptions/(?[^/]+)/resourceGroups/(?[^/]+)/providers/Microsoft.EventGrid/partnerTopics/(?[^/]+)/eventSubscriptions/(?[^/]+)$", global::System.Text.RegularExpressions.RegexOptions.IgnoreCase).Match(viaIdentity); + if (!_match.Success) + { + throw new global::System.Exception("Invalid identity for URI '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.EventGrid/partnerTopics/{partnerTopicName}/eventSubscriptions/{eventSubscriptionName}'"); + } + + // replace URI parameters with values from identity + var subscriptionId = _match.Groups["subscriptionId"].Value; + var resourceGroupName = _match.Groups["resourceGroupName"].Value; + var partnerTopicName = _match.Groups["partnerTopicName"].Value; + var eventSubscriptionName = _match.Groups["eventSubscriptionName"].Value; + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + subscriptionId + + "/resourceGroups/" + + resourceGroupName + + "/providers/Microsoft.EventGrid/partnerTopics/" + + partnerTopicName + + "/eventSubscriptions/" + + eventSubscriptionName + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Method.Put, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // set body content + request.Content = new global::System.Net.Http.StringContent(null != body ? body.ToJson(null).ToString() : @"{}", global::System.Text.Encoding.UTF8); + request.Content.Headers.ContentType = global::System.Net.Http.Headers.MediaTypeHeaderValue.Parse("application/json"); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.BodyContentSet); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.PartnerTopicEventSubscriptionsCreateOrUpdate_Call(request,onOk,onDefault,eventListener,sender); + } + } + + /// + /// Actual wire call for method. + /// + /// the prepared HttpRequestMessage to send. + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + internal async global::System.Threading.Tasks.Task PartnerTopicEventSubscriptionsCreateOrUpdate_Call(global::System.Net.Http.HttpRequestMessage request, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func onDefault, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync sender) + { + using( NoSynchronizationContext ) + { + global::System.Net.Http.HttpResponseMessage _response = null; + try + { + var sendTask = sender.SendAsync(request, eventListener); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.BeforeCall, request); if( eventListener.Token.IsCancellationRequested ) { return; } + _response = await sendTask; + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.ResponseCreated, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + // this operation supports x-ms-long-running-operation + var _originalUri = request.RequestUri.AbsoluteUri; + // declared final-state-via: default + var asyncOperation = _response.GetFirstHeader(@"Azure-AsyncOperation"); + var location = _response.GetFirstHeader(@"Location"); + while (request.Method == System.Net.Http.HttpMethod.Put && _response.StatusCode == global::System.Net.HttpStatusCode.OK || _response.StatusCode == global::System.Net.HttpStatusCode.Created || _response.StatusCode == global::System.Net.HttpStatusCode.Accepted ) + { + + // get the delay before polling. (default to 30 seconds if not present) + int delay = (int)(_response.Headers.RetryAfter?.Delta?.TotalSeconds ?? 30); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.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.EventGrid.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.EventGrid.Runtime.Json.JsonNode.Parse(await _response.Content.ReadAsStringAsync()) is Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Runtime.UndeclaredResponseException(_response); + } + } + + // check for terminal status code + if (_response.StatusCode == global::System.Net.HttpStatusCode.Created || _response.StatusCode == global::System.Net.HttpStatusCode.Accepted ) + { + continue; + } + // we are done polling, do a request on final target? + if (!string.IsNullOrWhiteSpace(_originalUri)) + { + // create a new request with the final uri + request = request.CloneAndDispose(new global::System.Uri(_originalUri), Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onOk(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.EventSubscription.FromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + default: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onDefault(_response); + break; + } + } + } + finally + { + // finally statements + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Finally, request, _response); + _response?.Dispose(); + request?.Dispose(); + } + } + } + + /// + /// Validation method for method. Call this like the actual call, + /// but you will get validation events back. + /// + /// Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription + /// ID forms part of the URI for every service call. + /// The name of the resource group within the user's subscription. + /// Name of the partner topic. + /// Name of the event subscription to be created. Event subscription names must be between + /// 3 and 100 characters in length and use alphanumeric letters only. + /// Event subscription properties containing the destination and filter information. + /// an instance that will receive events. + /// + /// A that will be complete when handling of the response is completed. + /// + internal async global::System.Threading.Tasks.Task PartnerTopicEventSubscriptionsCreateOrUpdate_Validate(string subscriptionId, string resourceGroupName, string partnerTopicName, string eventSubscriptionName, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscription body, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener eventListener) + { + using( NoSynchronizationContext ) + { + await eventListener.AssertNotNull(nameof(subscriptionId),subscriptionId); + await eventListener.AssertNotNull(nameof(resourceGroupName),resourceGroupName); + await eventListener.AssertNotNull(nameof(partnerTopicName),partnerTopicName); + await eventListener.AssertNotNull(nameof(eventSubscriptionName),eventSubscriptionName); + await eventListener.AssertNotNull(nameof(body), body); + await eventListener.AssertObjectIsValid(nameof(body), body); + } + } + + /// Delete an existing event subscription of a partner topic. + /// Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription + /// ID forms part of the URI for every service call. + /// The name of the resource group within the user's subscription. + /// Name of the partner topic. + /// Name of the event subscription to be created. Event subscription names must be between + /// 3 and 100 characters in length and use alphanumeric letters only. + /// 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.EventGrid.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task PartnerTopicEventSubscriptionsDelete(string subscriptionId, string resourceGroupName, string partnerTopicName, string eventSubscriptionName, global::System.Func onOk, global::System.Func onNoContent, global::System.Func onDefault, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync sender) + { + var apiVersion = @"2021-10-15-preview"; + // Constant Parameters + using( NoSynchronizationContext ) + { + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + global::System.Uri.EscapeDataString(subscriptionId) + + "/resourceGroups/" + + global::System.Uri.EscapeDataString(resourceGroupName) + + "/providers/Microsoft.EventGrid/partnerTopics/" + + global::System.Uri.EscapeDataString(partnerTopicName) + + "/eventSubscriptions/" + + global::System.Uri.EscapeDataString(eventSubscriptionName) + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Method.Delete, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.PartnerTopicEventSubscriptionsDelete_Call(request,onOk,onNoContent,onDefault,eventListener,sender); + } + } + + /// Delete an existing event subscription of a partner topic. + /// + /// 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.EventGrid.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task PartnerTopicEventSubscriptionsDeleteViaIdentity(global::System.String viaIdentity, global::System.Func onOk, global::System.Func onNoContent, global::System.Func onDefault, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync sender) + { + var apiVersion = @"2021-10-15-preview"; + // Constant Parameters + using( NoSynchronizationContext ) + { + // verify that Identity format is an exact match for uri + + var _match = new global::System.Text.RegularExpressions.Regex("^/subscriptions/(?[^/]+)/resourceGroups/(?[^/]+)/providers/Microsoft.EventGrid/partnerTopics/(?[^/]+)/eventSubscriptions/(?[^/]+)$", global::System.Text.RegularExpressions.RegexOptions.IgnoreCase).Match(viaIdentity); + if (!_match.Success) + { + throw new global::System.Exception("Invalid identity for URI '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.EventGrid/partnerTopics/{partnerTopicName}/eventSubscriptions/{eventSubscriptionName}'"); + } + + // replace URI parameters with values from identity + var subscriptionId = _match.Groups["subscriptionId"].Value; + var resourceGroupName = _match.Groups["resourceGroupName"].Value; + var partnerTopicName = _match.Groups["partnerTopicName"].Value; + var eventSubscriptionName = _match.Groups["eventSubscriptionName"].Value; + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + subscriptionId + + "/resourceGroups/" + + resourceGroupName + + "/providers/Microsoft.EventGrid/partnerTopics/" + + partnerTopicName + + "/eventSubscriptions/" + + eventSubscriptionName + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Method.Delete, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.PartnerTopicEventSubscriptionsDelete_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.EventGrid.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + internal async global::System.Threading.Tasks.Task PartnerTopicEventSubscriptionsDelete_Call(global::System.Net.Http.HttpRequestMessage request, global::System.Func onOk, global::System.Func onNoContent, global::System.Func onDefault, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync sender) + { + using( NoSynchronizationContext ) + { + global::System.Net.Http.HttpResponseMessage _response = null; + try + { + var sendTask = sender.SendAsync(request, eventListener); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.BeforeCall, request); if( eventListener.Token.IsCancellationRequested ) { return; } + _response = await sendTask; + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.ResponseCreated, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + // this operation supports x-ms-long-running-operation + var _originalUri = request.RequestUri.AbsoluteUri; + // declared final-state-via: default + var _finalUri = _response.GetFirstHeader(@"Location"); + var asyncOperation = _response.GetFirstHeader(@"Azure-AsyncOperation"); + var location = _response.GetFirstHeader(@"Location"); + while (request.Method == System.Net.Http.HttpMethod.Put && _response.StatusCode == global::System.Net.HttpStatusCode.OK || _response.StatusCode == global::System.Net.HttpStatusCode.Created || _response.StatusCode == global::System.Net.HttpStatusCode.Accepted ) + { + + // get the delay before polling. (default to 30 seconds if not present) + int delay = (int)(_response.Headers.RetryAfter?.Delta?.TotalSeconds ?? 30); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.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.EventGrid.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.EventGrid.Runtime.Json.JsonNode.Parse(await _response.Content.ReadAsStringAsync()) is Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Runtime.UndeclaredResponseException(_response); + } + } + + // check for terminal status code + if (_response.StatusCode == global::System.Net.HttpStatusCode.Created || _response.StatusCode == global::System.Net.HttpStatusCode.Accepted ) + { + continue; + } + // we are done polling, do a request on final target? + if (!string.IsNullOrWhiteSpace(_finalUri)) + { + // create a new request with the final uri + request = request.CloneAndDispose(new global::System.Uri(_finalUri), Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.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.EventGrid.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onNoContent(_response); + break; + } + default: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onDefault(_response); + break; + } + } + } + finally + { + // finally statements + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Finally, request, _response); + _response?.Dispose(); + request?.Dispose(); + } + } + } + + /// + /// Validation method for method. Call this like the actual call, but + /// you will get validation events back. + /// + /// Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription + /// ID forms part of the URI for every service call. + /// The name of the resource group within the user's subscription. + /// Name of the partner topic. + /// Name of the event subscription to be created. Event subscription names must be between + /// 3 and 100 characters in length and use alphanumeric letters only. + /// an instance that will receive events. + /// + /// A that will be complete when handling of the response is completed. + /// + internal async global::System.Threading.Tasks.Task PartnerTopicEventSubscriptionsDelete_Validate(string subscriptionId, string resourceGroupName, string partnerTopicName, string eventSubscriptionName, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener eventListener) + { + using( NoSynchronizationContext ) + { + await eventListener.AssertNotNull(nameof(subscriptionId),subscriptionId); + await eventListener.AssertNotNull(nameof(resourceGroupName),resourceGroupName); + await eventListener.AssertNotNull(nameof(partnerTopicName),partnerTopicName); + await eventListener.AssertNotNull(nameof(eventSubscriptionName),eventSubscriptionName); + } + } + + /// Get properties of an event subscription of a partner topic. + /// Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription + /// ID forms part of the URI for every service call. + /// The name of the resource group within the user's subscription. + /// Name of the partner topic. + /// Name of the event subscription to be found. Event subscription names must be between + /// 3 and 100 characters in length and use alphanumeric letters only. + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task PartnerTopicEventSubscriptionsGet(string subscriptionId, string resourceGroupName, string partnerTopicName, string eventSubscriptionName, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func onDefault, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync sender) + { + var apiVersion = @"2021-10-15-preview"; + // Constant Parameters + using( NoSynchronizationContext ) + { + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + global::System.Uri.EscapeDataString(subscriptionId) + + "/resourceGroups/" + + global::System.Uri.EscapeDataString(resourceGroupName) + + "/providers/Microsoft.EventGrid/partnerTopics/" + + global::System.Uri.EscapeDataString(partnerTopicName) + + "/eventSubscriptions/" + + global::System.Uri.EscapeDataString(eventSubscriptionName) + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Method.Get, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.PartnerTopicEventSubscriptionsGet_Call(request,onOk,onDefault,eventListener,sender); + } + } + + /// Get all delivery attributes for an event subscription of a partner topic. + /// Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription + /// ID forms part of the URI for every service call. + /// The name of the resource group within the user's subscription. + /// Name of the partner topic. + /// Name of the event subscription to be created. Event subscription names must be between + /// 3 and 100 characters in length and use alphanumeric letters only. + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task PartnerTopicEventSubscriptionsGetDeliveryAttributes(string subscriptionId, string resourceGroupName, string partnerTopicName, string eventSubscriptionName, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func onDefault, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync sender) + { + var apiVersion = @"2021-10-15-preview"; + // Constant Parameters + using( NoSynchronizationContext ) + { + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + global::System.Uri.EscapeDataString(subscriptionId) + + "/resourceGroups/" + + global::System.Uri.EscapeDataString(resourceGroupName) + + "/providers/Microsoft.EventGrid/partnerTopics/" + + global::System.Uri.EscapeDataString(partnerTopicName) + + "/eventSubscriptions/" + + global::System.Uri.EscapeDataString(eventSubscriptionName) + + "/getDeliveryAttributes" + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Method.Post, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.PartnerTopicEventSubscriptionsGetDeliveryAttributes_Call(request,onOk,onDefault,eventListener,sender); + } + } + + /// Get all delivery attributes for an event subscription of a partner topic. + /// + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task PartnerTopicEventSubscriptionsGetDeliveryAttributesViaIdentity(global::System.String viaIdentity, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func onDefault, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync sender) + { + var apiVersion = @"2021-10-15-preview"; + // Constant Parameters + using( NoSynchronizationContext ) + { + // verify that Identity format is an exact match for uri + + var _match = new global::System.Text.RegularExpressions.Regex("^/subscriptions/(?[^/]+)/resourceGroups/(?[^/]+)/providers/Microsoft.EventGrid/partnerTopics/(?[^/]+)/eventSubscriptions/(?[^/]+)/getDeliveryAttributes$", global::System.Text.RegularExpressions.RegexOptions.IgnoreCase).Match(viaIdentity); + if (!_match.Success) + { + throw new global::System.Exception("Invalid identity for URI '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.EventGrid/partnerTopics/{partnerTopicName}/eventSubscriptions/{eventSubscriptionName}/getDeliveryAttributes'"); + } + + // replace URI parameters with values from identity + var subscriptionId = _match.Groups["subscriptionId"].Value; + var resourceGroupName = _match.Groups["resourceGroupName"].Value; + var partnerTopicName = _match.Groups["partnerTopicName"].Value; + var eventSubscriptionName = _match.Groups["eventSubscriptionName"].Value; + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + subscriptionId + + "/resourceGroups/" + + resourceGroupName + + "/providers/Microsoft.EventGrid/partnerTopics/" + + partnerTopicName + + "/eventSubscriptions/" + + eventSubscriptionName + + "/getDeliveryAttributes" + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Method.Post, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.PartnerTopicEventSubscriptionsGetDeliveryAttributes_Call(request,onOk,onDefault,eventListener,sender); + } + } + + /// + /// Actual wire call for method. + /// + /// the prepared HttpRequestMessage to send. + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + internal async global::System.Threading.Tasks.Task PartnerTopicEventSubscriptionsGetDeliveryAttributes_Call(global::System.Net.Http.HttpRequestMessage request, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func onDefault, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync sender) + { + using( NoSynchronizationContext ) + { + global::System.Net.Http.HttpResponseMessage _response = null; + try + { + var sendTask = sender.SendAsync(request, eventListener); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.BeforeCall, request); if( eventListener.Token.IsCancellationRequested ) { return; } + _response = await sendTask; + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.ResponseCreated, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + var _contentType = _response.Content.Headers.ContentType?.MediaType; + + switch ( _response.StatusCode ) + { + case global::System.Net.HttpStatusCode.OK: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onOk(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.DeliveryAttributeListResult.FromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + default: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onDefault(_response); + break; + } + } + } + finally + { + // finally statements + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Finally, request, _response); + _response?.Dispose(); + request?.Dispose(); + } + } + } + + /// + /// Validation method for method. Call this like the actual + /// call, but you will get validation events back. + /// + /// Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription + /// ID forms part of the URI for every service call. + /// The name of the resource group within the user's subscription. + /// Name of the partner topic. + /// Name of the event subscription to be created. Event subscription names must be between + /// 3 and 100 characters in length and use alphanumeric letters only. + /// an instance that will receive events. + /// + /// A that will be complete when handling of the response is completed. + /// + internal async global::System.Threading.Tasks.Task PartnerTopicEventSubscriptionsGetDeliveryAttributes_Validate(string subscriptionId, string resourceGroupName, string partnerTopicName, string eventSubscriptionName, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener eventListener) + { + using( NoSynchronizationContext ) + { + await eventListener.AssertNotNull(nameof(subscriptionId),subscriptionId); + await eventListener.AssertNotNull(nameof(resourceGroupName),resourceGroupName); + await eventListener.AssertNotNull(nameof(partnerTopicName),partnerTopicName); + await eventListener.AssertNotNull(nameof(eventSubscriptionName),eventSubscriptionName); + } + } + + /// Get the full endpoint URL for an event subscription of a partner topic. + /// Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription + /// ID forms part of the URI for every service call. + /// The name of the resource group within the user's subscription. + /// Name of the partner topic. + /// Name of the event subscription to be created. Event subscription names must be between + /// 3 and 100 characters in length and use alphanumeric letters only. + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task PartnerTopicEventSubscriptionsGetFullUrl(string subscriptionId, string resourceGroupName, string partnerTopicName, string eventSubscriptionName, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func onDefault, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync sender) + { + var apiVersion = @"2021-10-15-preview"; + // Constant Parameters + using( NoSynchronizationContext ) + { + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + global::System.Uri.EscapeDataString(subscriptionId) + + "/resourceGroups/" + + global::System.Uri.EscapeDataString(resourceGroupName) + + "/providers/Microsoft.EventGrid/partnerTopics/" + + global::System.Uri.EscapeDataString(partnerTopicName) + + "/eventSubscriptions/" + + global::System.Uri.EscapeDataString(eventSubscriptionName) + + "/getFullUrl" + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Method.Post, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.PartnerTopicEventSubscriptionsGetFullUrl_Call(request,onOk,onDefault,eventListener,sender); + } + } + + /// Get the full endpoint URL for an event subscription of a partner topic. + /// + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task PartnerTopicEventSubscriptionsGetFullUrlViaIdentity(global::System.String viaIdentity, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func onDefault, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync sender) + { + var apiVersion = @"2021-10-15-preview"; + // Constant Parameters + using( NoSynchronizationContext ) + { + // verify that Identity format is an exact match for uri + + var _match = new global::System.Text.RegularExpressions.Regex("^/subscriptions/(?[^/]+)/resourceGroups/(?[^/]+)/providers/Microsoft.EventGrid/partnerTopics/(?[^/]+)/eventSubscriptions/(?[^/]+)/getFullUrl$", global::System.Text.RegularExpressions.RegexOptions.IgnoreCase).Match(viaIdentity); + if (!_match.Success) + { + throw new global::System.Exception("Invalid identity for URI '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.EventGrid/partnerTopics/{partnerTopicName}/eventSubscriptions/{eventSubscriptionName}/getFullUrl'"); + } + + // replace URI parameters with values from identity + var subscriptionId = _match.Groups["subscriptionId"].Value; + var resourceGroupName = _match.Groups["resourceGroupName"].Value; + var partnerTopicName = _match.Groups["partnerTopicName"].Value; + var eventSubscriptionName = _match.Groups["eventSubscriptionName"].Value; + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + subscriptionId + + "/resourceGroups/" + + resourceGroupName + + "/providers/Microsoft.EventGrid/partnerTopics/" + + partnerTopicName + + "/eventSubscriptions/" + + eventSubscriptionName + + "/getFullUrl" + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Method.Post, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.PartnerTopicEventSubscriptionsGetFullUrl_Call(request,onOk,onDefault,eventListener,sender); + } + } + + /// + /// Actual wire call for method. + /// + /// the prepared HttpRequestMessage to send. + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + internal async global::System.Threading.Tasks.Task PartnerTopicEventSubscriptionsGetFullUrl_Call(global::System.Net.Http.HttpRequestMessage request, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func onDefault, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync sender) + { + using( NoSynchronizationContext ) + { + global::System.Net.Http.HttpResponseMessage _response = null; + try + { + var sendTask = sender.SendAsync(request, eventListener); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.BeforeCall, request); if( eventListener.Token.IsCancellationRequested ) { return; } + _response = await sendTask; + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.ResponseCreated, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + var _contentType = _response.Content.Headers.ContentType?.MediaType; + + switch ( _response.StatusCode ) + { + case global::System.Net.HttpStatusCode.OK: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onOk(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.EventSubscriptionFullUrl.FromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + default: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onDefault(_response); + break; + } + } + } + finally + { + // finally statements + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Finally, request, _response); + _response?.Dispose(); + request?.Dispose(); + } + } + } + + /// + /// Validation method for method. Call this like the actual call, + /// but you will get validation events back. + /// + /// Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription + /// ID forms part of the URI for every service call. + /// The name of the resource group within the user's subscription. + /// Name of the partner topic. + /// Name of the event subscription to be created. Event subscription names must be between + /// 3 and 100 characters in length and use alphanumeric letters only. + /// an instance that will receive events. + /// + /// A that will be complete when handling of the response is completed. + /// + internal async global::System.Threading.Tasks.Task PartnerTopicEventSubscriptionsGetFullUrl_Validate(string subscriptionId, string resourceGroupName, string partnerTopicName, string eventSubscriptionName, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener eventListener) + { + using( NoSynchronizationContext ) + { + await eventListener.AssertNotNull(nameof(subscriptionId),subscriptionId); + await eventListener.AssertNotNull(nameof(resourceGroupName),resourceGroupName); + await eventListener.AssertNotNull(nameof(partnerTopicName),partnerTopicName); + await eventListener.AssertNotNull(nameof(eventSubscriptionName),eventSubscriptionName); + } + } + + /// Get properties of an event subscription of a partner topic. + /// + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task PartnerTopicEventSubscriptionsGetViaIdentity(global::System.String viaIdentity, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func onDefault, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync sender) + { + var apiVersion = @"2021-10-15-preview"; + // Constant Parameters + using( NoSynchronizationContext ) + { + // verify that Identity format is an exact match for uri + + var _match = new global::System.Text.RegularExpressions.Regex("^/subscriptions/(?[^/]+)/resourceGroups/(?[^/]+)/providers/Microsoft.EventGrid/partnerTopics/(?[^/]+)/eventSubscriptions/(?[^/]+)$", global::System.Text.RegularExpressions.RegexOptions.IgnoreCase).Match(viaIdentity); + if (!_match.Success) + { + throw new global::System.Exception("Invalid identity for URI '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.EventGrid/partnerTopics/{partnerTopicName}/eventSubscriptions/{eventSubscriptionName}'"); + } + + // replace URI parameters with values from identity + var subscriptionId = _match.Groups["subscriptionId"].Value; + var resourceGroupName = _match.Groups["resourceGroupName"].Value; + var partnerTopicName = _match.Groups["partnerTopicName"].Value; + var eventSubscriptionName = _match.Groups["eventSubscriptionName"].Value; + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + subscriptionId + + "/resourceGroups/" + + resourceGroupName + + "/providers/Microsoft.EventGrid/partnerTopics/" + + partnerTopicName + + "/eventSubscriptions/" + + eventSubscriptionName + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Method.Get, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.PartnerTopicEventSubscriptionsGet_Call(request,onOk,onDefault,eventListener,sender); + } + } + + /// Actual wire call for method. + /// the prepared HttpRequestMessage to send. + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + internal async global::System.Threading.Tasks.Task PartnerTopicEventSubscriptionsGet_Call(global::System.Net.Http.HttpRequestMessage request, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func onDefault, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync sender) + { + using( NoSynchronizationContext ) + { + global::System.Net.Http.HttpResponseMessage _response = null; + try + { + var sendTask = sender.SendAsync(request, eventListener); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.BeforeCall, request); if( eventListener.Token.IsCancellationRequested ) { return; } + _response = await sendTask; + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.ResponseCreated, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + var _contentType = _response.Content.Headers.ContentType?.MediaType; + + switch ( _response.StatusCode ) + { + case global::System.Net.HttpStatusCode.OK: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onOk(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.EventSubscription.FromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + default: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onDefault(_response); + break; + } + } + } + finally + { + // finally statements + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Finally, request, _response); + _response?.Dispose(); + request?.Dispose(); + } + } + } + + /// + /// Validation method for method. Call this like the actual call, but you + /// will get validation events back. + /// + /// Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription + /// ID forms part of the URI for every service call. + /// The name of the resource group within the user's subscription. + /// Name of the partner topic. + /// Name of the event subscription to be found. Event subscription names must be between + /// 3 and 100 characters in length and use alphanumeric letters only. + /// an instance that will receive events. + /// + /// A that will be complete when handling of the response is completed. + /// + internal async global::System.Threading.Tasks.Task PartnerTopicEventSubscriptionsGet_Validate(string subscriptionId, string resourceGroupName, string partnerTopicName, string eventSubscriptionName, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener eventListener) + { + using( NoSynchronizationContext ) + { + await eventListener.AssertNotNull(nameof(subscriptionId),subscriptionId); + await eventListener.AssertNotNull(nameof(resourceGroupName),resourceGroupName); + await eventListener.AssertNotNull(nameof(partnerTopicName),partnerTopicName); + await eventListener.AssertNotNull(nameof(eventSubscriptionName),eventSubscriptionName); + } + } + + /// List event subscriptions that belong to a specific partner topic. + /// Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription + /// ID forms part of the URI for every service call. + /// The name of the resource group within the user's subscription. + /// Name of the partner topic. + /// The query used to filter the search results using OData syntax. Filtering is permitted on the 'name' + /// property only and with limited number of OData operations. These operations are: the 'contains' function as well as the + /// following logical operations: not, and, or, eq (for equal), and ne (for not equal). No arithmetic operations are supported. + /// The following is a valid filter example: $filter=contains(namE, 'PATTERN') and name ne 'PATTERN-1'. The following is not + /// a valid filter example: $filter=location eq 'westus'. + /// The number of results to return per page for the list operation. Valid range for top parameter is 1 + /// to 100. If not specified, the default number of results to be returned is 20 items per page. + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task PartnerTopicEventSubscriptionsListByPartnerTopic(string subscriptionId, string resourceGroupName, string partnerTopicName, string Filter, int? Top, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func onDefault, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync sender) + { + var apiVersion = @"2021-10-15-preview"; + // Constant Parameters + using( NoSynchronizationContext ) + { + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + global::System.Uri.EscapeDataString(subscriptionId) + + "/resourceGroups/" + + global::System.Uri.EscapeDataString(resourceGroupName) + + "/providers/Microsoft.EventGrid/partnerTopics/" + + global::System.Uri.EscapeDataString(partnerTopicName) + + "/eventSubscriptions" + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + + "&" + + (string.IsNullOrEmpty(Filter) ? global::System.String.Empty : "$filter=" + global::System.Uri.EscapeDataString(Filter)) + + "&" + + (null == Top ? global::System.String.Empty : "$top=" + global::System.Uri.EscapeDataString(Top.ToString())) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Method.Get, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.PartnerTopicEventSubscriptionsListByPartnerTopic_Call(request,onOk,onDefault,eventListener,sender); + } + } + + /// List event subscriptions that belong to a specific partner topic. + /// + /// The query used to filter the search results using OData syntax. Filtering is permitted on the 'name' + /// property only and with limited number of OData operations. These operations are: the 'contains' function as well as the + /// following logical operations: not, and, or, eq (for equal), and ne (for not equal). No arithmetic operations are supported. + /// The following is a valid filter example: $filter=contains(namE, 'PATTERN') and name ne 'PATTERN-1'. The following is not + /// a valid filter example: $filter=location eq 'westus'. + /// The number of results to return per page for the list operation. Valid range for top parameter is 1 + /// to 100. If not specified, the default number of results to be returned is 20 items per page. + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task PartnerTopicEventSubscriptionsListByPartnerTopicViaIdentity(global::System.String viaIdentity, string Filter, int? Top, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func onDefault, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync sender) + { + var apiVersion = @"2021-10-15-preview"; + // Constant Parameters + using( NoSynchronizationContext ) + { + // verify that Identity format is an exact match for uri + + var _match = new global::System.Text.RegularExpressions.Regex("^/subscriptions/(?[^/]+)/resourceGroups/(?[^/]+)/providers/Microsoft.EventGrid/partnerTopics/(?[^/]+)/eventSubscriptions$", global::System.Text.RegularExpressions.RegexOptions.IgnoreCase).Match(viaIdentity); + if (!_match.Success) + { + throw new global::System.Exception("Invalid identity for URI '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.EventGrid/partnerTopics/{partnerTopicName}/eventSubscriptions'"); + } + + // replace URI parameters with values from identity + var subscriptionId = _match.Groups["subscriptionId"].Value; + var resourceGroupName = _match.Groups["resourceGroupName"].Value; + var partnerTopicName = _match.Groups["partnerTopicName"].Value; + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + subscriptionId + + "/resourceGroups/" + + resourceGroupName + + "/providers/Microsoft.EventGrid/partnerTopics/" + + partnerTopicName + + "/eventSubscriptions" + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + + "&" + + (string.IsNullOrEmpty(Filter) ? global::System.String.Empty : "$filter=" + global::System.Uri.EscapeDataString(Filter)) + + "&" + + (null == Top ? global::System.String.Empty : "$top=" + global::System.Uri.EscapeDataString(Top.ToString())) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Method.Get, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.PartnerTopicEventSubscriptionsListByPartnerTopic_Call(request,onOk,onDefault,eventListener,sender); + } + } + + /// + /// Actual wire call for method. + /// + /// the prepared HttpRequestMessage to send. + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + internal async global::System.Threading.Tasks.Task PartnerTopicEventSubscriptionsListByPartnerTopic_Call(global::System.Net.Http.HttpRequestMessage request, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func onDefault, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync sender) + { + using( NoSynchronizationContext ) + { + global::System.Net.Http.HttpResponseMessage _response = null; + try + { + var sendTask = sender.SendAsync(request, eventListener); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.BeforeCall, request); if( eventListener.Token.IsCancellationRequested ) { return; } + _response = await sendTask; + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.ResponseCreated, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + var _contentType = _response.Content.Headers.ContentType?.MediaType; + + switch ( _response.StatusCode ) + { + case global::System.Net.HttpStatusCode.OK: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onOk(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.EventSubscriptionsListResult.FromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + default: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onDefault(_response); + break; + } + } + } + finally + { + // finally statements + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Finally, request, _response); + _response?.Dispose(); + request?.Dispose(); + } + } + } + + /// + /// Validation method for method. Call this like the actual + /// call, but you will get validation events back. + /// + /// Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription + /// ID forms part of the URI for every service call. + /// The name of the resource group within the user's subscription. + /// Name of the partner topic. + /// The query used to filter the search results using OData syntax. Filtering is permitted on the 'name' + /// property only and with limited number of OData operations. These operations are: the 'contains' function as well as the + /// following logical operations: not, and, or, eq (for equal), and ne (for not equal). No arithmetic operations are supported. + /// The following is a valid filter example: $filter=contains(namE, 'PATTERN') and name ne 'PATTERN-1'. The following is not + /// a valid filter example: $filter=location eq 'westus'. + /// The number of results to return per page for the list operation. Valid range for top parameter is 1 + /// to 100. If not specified, the default number of results to be returned is 20 items per page. + /// an instance that will receive events. + /// + /// A that will be complete when handling of the response is completed. + /// + internal async global::System.Threading.Tasks.Task PartnerTopicEventSubscriptionsListByPartnerTopic_Validate(string subscriptionId, string resourceGroupName, string partnerTopicName, string Filter, int? Top, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener eventListener) + { + using( NoSynchronizationContext ) + { + await eventListener.AssertNotNull(nameof(subscriptionId),subscriptionId); + await eventListener.AssertNotNull(nameof(resourceGroupName),resourceGroupName); + await eventListener.AssertNotNull(nameof(partnerTopicName),partnerTopicName); + await eventListener.AssertNotNull(nameof(Filter),Filter); + } + } + + /// Update an existing event subscription of a partner topic. + /// Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription + /// ID forms part of the URI for every service call. + /// The name of the resource group within the user's subscription. + /// Name of the partner topic. + /// Name of the event subscription to be created. Event subscription names must be between + /// 3 and 100 characters in length and use alphanumeric letters only. + /// Updated event subscription information. + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task PartnerTopicEventSubscriptionsUpdate(string subscriptionId, string resourceGroupName, string partnerTopicName, string eventSubscriptionName, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionUpdateParameters body, global::System.Func onDefault, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync sender) + { + var apiVersion = @"2021-10-15-preview"; + // Constant Parameters + using( NoSynchronizationContext ) + { + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + global::System.Uri.EscapeDataString(subscriptionId) + + "/resourceGroups/" + + global::System.Uri.EscapeDataString(resourceGroupName) + + "/providers/Microsoft.EventGrid/partnerTopics/" + + global::System.Uri.EscapeDataString(partnerTopicName) + + "/eventSubscriptions/" + + global::System.Uri.EscapeDataString(eventSubscriptionName) + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Method.Patch, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // set body content + request.Content = new global::System.Net.Http.StringContent(null != body ? body.ToJson(null).ToString() : @"{}", global::System.Text.Encoding.UTF8); + request.Content.Headers.ContentType = global::System.Net.Http.Headers.MediaTypeHeaderValue.Parse("application/json"); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.BodyContentSet); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.PartnerTopicEventSubscriptionsUpdate_Call(request,onDefault,eventListener,sender); + } + } + + /// Update an existing event subscription of a partner topic. + /// + /// Updated event subscription information. + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task PartnerTopicEventSubscriptionsUpdateViaIdentity(global::System.String viaIdentity, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionUpdateParameters body, global::System.Func onDefault, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync sender) + { + var apiVersion = @"2021-10-15-preview"; + // Constant Parameters + using( NoSynchronizationContext ) + { + // verify that Identity format is an exact match for uri + + var _match = new global::System.Text.RegularExpressions.Regex("^/subscriptions/(?[^/]+)/resourceGroups/(?[^/]+)/providers/Microsoft.EventGrid/partnerTopics/(?[^/]+)/eventSubscriptions/(?[^/]+)$", global::System.Text.RegularExpressions.RegexOptions.IgnoreCase).Match(viaIdentity); + if (!_match.Success) + { + throw new global::System.Exception("Invalid identity for URI '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.EventGrid/partnerTopics/{partnerTopicName}/eventSubscriptions/{eventSubscriptionName}'"); + } + + // replace URI parameters with values from identity + var subscriptionId = _match.Groups["subscriptionId"].Value; + var resourceGroupName = _match.Groups["resourceGroupName"].Value; + var partnerTopicName = _match.Groups["partnerTopicName"].Value; + var eventSubscriptionName = _match.Groups["eventSubscriptionName"].Value; + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + subscriptionId + + "/resourceGroups/" + + resourceGroupName + + "/providers/Microsoft.EventGrid/partnerTopics/" + + partnerTopicName + + "/eventSubscriptions/" + + eventSubscriptionName + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Method.Patch, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // set body content + request.Content = new global::System.Net.Http.StringContent(null != body ? body.ToJson(null).ToString() : @"{}", global::System.Text.Encoding.UTF8); + request.Content.Headers.ContentType = global::System.Net.Http.Headers.MediaTypeHeaderValue.Parse("application/json"); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.BodyContentSet); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.PartnerTopicEventSubscriptionsUpdate_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.EventGrid.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + internal async global::System.Threading.Tasks.Task PartnerTopicEventSubscriptionsUpdate_Call(global::System.Net.Http.HttpRequestMessage request, global::System.Func onDefault, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync sender) + { + using( NoSynchronizationContext ) + { + global::System.Net.Http.HttpResponseMessage _response = null; + try + { + var sendTask = sender.SendAsync(request, eventListener); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.BeforeCall, request); if( eventListener.Token.IsCancellationRequested ) { return; } + _response = await sendTask; + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.ResponseCreated, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + // this operation supports x-ms-long-running-operation + var _originalUri = request.RequestUri.AbsoluteUri; + // declared final-state-via: default + var asyncOperation = _response.GetFirstHeader(@"Azure-AsyncOperation"); + var location = _response.GetFirstHeader(@"Location"); + while (request.Method == System.Net.Http.HttpMethod.Put && _response.StatusCode == global::System.Net.HttpStatusCode.OK || _response.StatusCode == global::System.Net.HttpStatusCode.Created || _response.StatusCode == global::System.Net.HttpStatusCode.Accepted ) + { + + // get the delay before polling. (default to 30 seconds if not present) + int delay = (int)(_response.Headers.RetryAfter?.Delta?.TotalSeconds ?? 30); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.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.EventGrid.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.EventGrid.Runtime.Json.JsonNode.Parse(await _response.Content.ReadAsStringAsync()) is Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Runtime.UndeclaredResponseException(_response); + } + } + + // check for terminal status code + if (_response.StatusCode == global::System.Net.HttpStatusCode.Created || _response.StatusCode == global::System.Net.HttpStatusCode.Accepted ) + { + continue; + } + // we are done polling, do a request on final target? + if (!string.IsNullOrWhiteSpace(_originalUri)) + { + // create a new request with the final uri + request = request.CloneAndDispose(new global::System.Uri(_originalUri), Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onDefault(_response); + break; + } + } + } + finally + { + // finally statements + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Finally, request, _response); + _response?.Dispose(); + request?.Dispose(); + } + } + } + + /// + /// Validation method for method. Call this like the actual call, but + /// you will get validation events back. + /// + /// Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription + /// ID forms part of the URI for every service call. + /// The name of the resource group within the user's subscription. + /// Name of the partner topic. + /// Name of the event subscription to be created. Event subscription names must be between + /// 3 and 100 characters in length and use alphanumeric letters only. + /// Updated event subscription information. + /// an instance that will receive events. + /// + /// A that will be complete when handling of the response is completed. + /// + internal async global::System.Threading.Tasks.Task PartnerTopicEventSubscriptionsUpdate_Validate(string subscriptionId, string resourceGroupName, string partnerTopicName, string eventSubscriptionName, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionUpdateParameters body, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener eventListener) + { + using( NoSynchronizationContext ) + { + await eventListener.AssertNotNull(nameof(subscriptionId),subscriptionId); + await eventListener.AssertNotNull(nameof(resourceGroupName),resourceGroupName); + await eventListener.AssertNotNull(nameof(partnerTopicName),partnerTopicName); + await eventListener.AssertNotNull(nameof(eventSubscriptionName),eventSubscriptionName); + await eventListener.AssertNotNull(nameof(body), body); + await eventListener.AssertObjectIsValid(nameof(body), body); + } + } + + /// Activate a newly created partner topic. + /// Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription + /// ID forms part of the URI for every service call. + /// The name of the resource group within the user's subscription. + /// Name of the partner topic. + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task PartnerTopicsActivate(string subscriptionId, string resourceGroupName, string partnerTopicName, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func onDefault, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync sender) + { + var apiVersion = @"2021-10-15-preview"; + // Constant Parameters + using( NoSynchronizationContext ) + { + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + global::System.Uri.EscapeDataString(subscriptionId) + + "/resourceGroups/" + + global::System.Uri.EscapeDataString(resourceGroupName) + + "/providers/Microsoft.EventGrid/partnerTopics/" + + global::System.Uri.EscapeDataString(partnerTopicName) + + "/activate" + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Method.Post, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.PartnerTopicsActivate_Call(request,onOk,onDefault,eventListener,sender); + } + } + + /// Activate a newly created partner topic. + /// + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task PartnerTopicsActivateViaIdentity(global::System.String viaIdentity, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func onDefault, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync sender) + { + var apiVersion = @"2021-10-15-preview"; + // Constant Parameters + using( NoSynchronizationContext ) + { + // verify that Identity format is an exact match for uri + + var _match = new global::System.Text.RegularExpressions.Regex("^/subscriptions/(?[^/]+)/resourceGroups/(?[^/]+)/providers/Microsoft.EventGrid/partnerTopics/(?[^/]+)/activate$", global::System.Text.RegularExpressions.RegexOptions.IgnoreCase).Match(viaIdentity); + if (!_match.Success) + { + throw new global::System.Exception("Invalid identity for URI '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.EventGrid/partnerTopics/{partnerTopicName}/activate'"); + } + + // replace URI parameters with values from identity + var subscriptionId = _match.Groups["subscriptionId"].Value; + var resourceGroupName = _match.Groups["resourceGroupName"].Value; + var partnerTopicName = _match.Groups["partnerTopicName"].Value; + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + subscriptionId + + "/resourceGroups/" + + resourceGroupName + + "/providers/Microsoft.EventGrid/partnerTopics/" + + partnerTopicName + + "/activate" + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Method.Post, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.PartnerTopicsActivate_Call(request,onOk,onDefault,eventListener,sender); + } + } + + /// Actual wire call for method. + /// the prepared HttpRequestMessage to send. + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + internal async global::System.Threading.Tasks.Task PartnerTopicsActivate_Call(global::System.Net.Http.HttpRequestMessage request, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func onDefault, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync sender) + { + using( NoSynchronizationContext ) + { + global::System.Net.Http.HttpResponseMessage _response = null; + try + { + var sendTask = sender.SendAsync(request, eventListener); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.BeforeCall, request); if( eventListener.Token.IsCancellationRequested ) { return; } + _response = await sendTask; + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.ResponseCreated, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + var _contentType = _response.Content.Headers.ContentType?.MediaType; + + switch ( _response.StatusCode ) + { + case global::System.Net.HttpStatusCode.OK: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onOk(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.PartnerTopic.FromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + default: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onDefault(_response); + break; + } + } + } + finally + { + // finally statements + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Finally, request, _response); + _response?.Dispose(); + request?.Dispose(); + } + } + } + + /// + /// Validation method for method. Call this like the actual call, but you will get validation + /// events back. + /// + /// Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription + /// ID forms part of the URI for every service call. + /// The name of the resource group within the user's subscription. + /// Name of the partner topic. + /// an instance that will receive events. + /// + /// A that will be complete when handling of the response is completed. + /// + internal async global::System.Threading.Tasks.Task PartnerTopicsActivate_Validate(string subscriptionId, string resourceGroupName, string partnerTopicName, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener eventListener) + { + using( NoSynchronizationContext ) + { + await eventListener.AssertNotNull(nameof(subscriptionId),subscriptionId); + await eventListener.AssertNotNull(nameof(resourceGroupName),resourceGroupName); + await eventListener.AssertNotNull(nameof(partnerTopicName),partnerTopicName); + } + } + + /// Asynchronously creates a new partner topic with the specified parameters. + /// Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription + /// ID forms part of the URI for every service call. + /// The name of the resource group within the user's subscription. + /// Name of the partner topic. + /// Partner Topic information. + /// 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.EventGrid.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task PartnerTopicsCreateOrUpdate(string subscriptionId, string resourceGroupName, string partnerTopicName, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerTopic body, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func, global::System.Threading.Tasks.Task> onCreated, global::System.Func onDefault, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync sender) + { + var apiVersion = @"2021-10-15-preview"; + // Constant Parameters + using( NoSynchronizationContext ) + { + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + global::System.Uri.EscapeDataString(subscriptionId) + + "/resourceGroups/" + + global::System.Uri.EscapeDataString(resourceGroupName) + + "/providers/Microsoft.EventGrid/partnerTopics/" + + global::System.Uri.EscapeDataString(partnerTopicName) + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Method.Put, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // set body content + request.Content = new global::System.Net.Http.StringContent(null != body ? body.ToJson(null).ToString() : @"{}", global::System.Text.Encoding.UTF8); + request.Content.Headers.ContentType = global::System.Net.Http.Headers.MediaTypeHeaderValue.Parse("application/json"); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.BodyContentSet); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.PartnerTopicsCreateOrUpdate_Call(request,onOk,onCreated,onDefault,eventListener,sender); + } + } + + /// Asynchronously creates a new partner topic with the specified parameters. + /// + /// Partner Topic information. + /// 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.EventGrid.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task PartnerTopicsCreateOrUpdateViaIdentity(global::System.String viaIdentity, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerTopic body, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func, global::System.Threading.Tasks.Task> onCreated, global::System.Func onDefault, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync sender) + { + var apiVersion = @"2021-10-15-preview"; + // Constant Parameters + using( NoSynchronizationContext ) + { + // verify that Identity format is an exact match for uri + + var _match = new global::System.Text.RegularExpressions.Regex("^/subscriptions/(?[^/]+)/resourceGroups/(?[^/]+)/providers/Microsoft.EventGrid/partnerTopics/(?[^/]+)$", global::System.Text.RegularExpressions.RegexOptions.IgnoreCase).Match(viaIdentity); + if (!_match.Success) + { + throw new global::System.Exception("Invalid identity for URI '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.EventGrid/partnerTopics/{partnerTopicName}'"); + } + + // replace URI parameters with values from identity + var subscriptionId = _match.Groups["subscriptionId"].Value; + var resourceGroupName = _match.Groups["resourceGroupName"].Value; + var partnerTopicName = _match.Groups["partnerTopicName"].Value; + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + subscriptionId + + "/resourceGroups/" + + resourceGroupName + + "/providers/Microsoft.EventGrid/partnerTopics/" + + partnerTopicName + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Method.Put, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // set body content + request.Content = new global::System.Net.Http.StringContent(null != body ? body.ToJson(null).ToString() : @"{}", global::System.Text.Encoding.UTF8); + request.Content.Headers.ContentType = global::System.Net.Http.Headers.MediaTypeHeaderValue.Parse("application/json"); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.BodyContentSet); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.PartnerTopicsCreateOrUpdate_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.EventGrid.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + internal async global::System.Threading.Tasks.Task PartnerTopicsCreateOrUpdate_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 onDefault, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync sender) + { + using( NoSynchronizationContext ) + { + global::System.Net.Http.HttpResponseMessage _response = null; + try + { + var sendTask = sender.SendAsync(request, eventListener); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.BeforeCall, request); if( eventListener.Token.IsCancellationRequested ) { return; } + _response = await sendTask; + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.ResponseCreated, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + var _contentType = _response.Content.Headers.ContentType?.MediaType; + + switch ( _response.StatusCode ) + { + case global::System.Net.HttpStatusCode.OK: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onOk(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.PartnerTopic.FromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + case global::System.Net.HttpStatusCode.Created: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onCreated(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.PartnerTopic.FromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + default: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onDefault(_response); + break; + } + } + } + finally + { + // finally statements + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Finally, request, _response); + _response?.Dispose(); + request?.Dispose(); + } + } + } + + /// + /// Validation method for method. Call this like the actual call, but you will + /// get validation events back. + /// + /// Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription + /// ID forms part of the URI for every service call. + /// The name of the resource group within the user's subscription. + /// Name of the partner topic. + /// Partner Topic information. + /// an instance that will receive events. + /// + /// A that will be complete when handling of the response is completed. + /// + internal async global::System.Threading.Tasks.Task PartnerTopicsCreateOrUpdate_Validate(string subscriptionId, string resourceGroupName, string partnerTopicName, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerTopic body, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener eventListener) + { + using( NoSynchronizationContext ) + { + await eventListener.AssertNotNull(nameof(subscriptionId),subscriptionId); + await eventListener.AssertNotNull(nameof(resourceGroupName),resourceGroupName); + await eventListener.AssertNotNull(nameof(partnerTopicName),partnerTopicName); + await eventListener.AssertNotNull(nameof(body), body); + await eventListener.AssertObjectIsValid(nameof(body), body); + } + } + + /// Deactivate specific partner topic. + /// Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription + /// ID forms part of the URI for every service call. + /// The name of the resource group within the user's subscription. + /// Name of the partner topic. + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task PartnerTopicsDeactivate(string subscriptionId, string resourceGroupName, string partnerTopicName, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func onDefault, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync sender) + { + var apiVersion = @"2021-10-15-preview"; + // Constant Parameters + using( NoSynchronizationContext ) + { + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + global::System.Uri.EscapeDataString(subscriptionId) + + "/resourceGroups/" + + global::System.Uri.EscapeDataString(resourceGroupName) + + "/providers/Microsoft.EventGrid/partnerTopics/" + + global::System.Uri.EscapeDataString(partnerTopicName) + + "/deactivate" + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Method.Post, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.PartnerTopicsDeactivate_Call(request,onOk,onDefault,eventListener,sender); + } + } + + /// Deactivate specific partner topic. + /// + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task PartnerTopicsDeactivateViaIdentity(global::System.String viaIdentity, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func onDefault, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync sender) + { + var apiVersion = @"2021-10-15-preview"; + // Constant Parameters + using( NoSynchronizationContext ) + { + // verify that Identity format is an exact match for uri + + var _match = new global::System.Text.RegularExpressions.Regex("^/subscriptions/(?[^/]+)/resourceGroups/(?[^/]+)/providers/Microsoft.EventGrid/partnerTopics/(?[^/]+)/deactivate$", global::System.Text.RegularExpressions.RegexOptions.IgnoreCase).Match(viaIdentity); + if (!_match.Success) + { + throw new global::System.Exception("Invalid identity for URI '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.EventGrid/partnerTopics/{partnerTopicName}/deactivate'"); + } + + // replace URI parameters with values from identity + var subscriptionId = _match.Groups["subscriptionId"].Value; + var resourceGroupName = _match.Groups["resourceGroupName"].Value; + var partnerTopicName = _match.Groups["partnerTopicName"].Value; + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + subscriptionId + + "/resourceGroups/" + + resourceGroupName + + "/providers/Microsoft.EventGrid/partnerTopics/" + + partnerTopicName + + "/deactivate" + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Method.Post, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.PartnerTopicsDeactivate_Call(request,onOk,onDefault,eventListener,sender); + } + } + + /// Actual wire call for method. + /// the prepared HttpRequestMessage to send. + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + internal async global::System.Threading.Tasks.Task PartnerTopicsDeactivate_Call(global::System.Net.Http.HttpRequestMessage request, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func onDefault, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync sender) + { + using( NoSynchronizationContext ) + { + global::System.Net.Http.HttpResponseMessage _response = null; + try + { + var sendTask = sender.SendAsync(request, eventListener); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.BeforeCall, request); if( eventListener.Token.IsCancellationRequested ) { return; } + _response = await sendTask; + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.ResponseCreated, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + var _contentType = _response.Content.Headers.ContentType?.MediaType; + + switch ( _response.StatusCode ) + { + case global::System.Net.HttpStatusCode.OK: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onOk(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.PartnerTopic.FromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + default: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onDefault(_response); + break; + } + } + } + finally + { + // finally statements + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Finally, request, _response); + _response?.Dispose(); + request?.Dispose(); + } + } + } + + /// + /// Validation method for method. Call this like the actual call, but you will get + /// validation events back. + /// + /// Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription + /// ID forms part of the URI for every service call. + /// The name of the resource group within the user's subscription. + /// Name of the partner topic. + /// an instance that will receive events. + /// + /// A that will be complete when handling of the response is completed. + /// + internal async global::System.Threading.Tasks.Task PartnerTopicsDeactivate_Validate(string subscriptionId, string resourceGroupName, string partnerTopicName, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener eventListener) + { + using( NoSynchronizationContext ) + { + await eventListener.AssertNotNull(nameof(subscriptionId),subscriptionId); + await eventListener.AssertNotNull(nameof(resourceGroupName),resourceGroupName); + await eventListener.AssertNotNull(nameof(partnerTopicName),partnerTopicName); + } + } + + /// Delete existing partner topic. + /// Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription + /// ID forms part of the URI for every service call. + /// The name of the resource group within the user's subscription. + /// Name of the partner topic. + /// 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.EventGrid.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task PartnerTopicsDelete(string subscriptionId, string resourceGroupName, string partnerTopicName, global::System.Func onOk, global::System.Func onNoContent, global::System.Func onDefault, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync sender) + { + var apiVersion = @"2021-10-15-preview"; + // Constant Parameters + using( NoSynchronizationContext ) + { + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + global::System.Uri.EscapeDataString(subscriptionId) + + "/resourceGroups/" + + global::System.Uri.EscapeDataString(resourceGroupName) + + "/providers/Microsoft.EventGrid/partnerTopics/" + + global::System.Uri.EscapeDataString(partnerTopicName) + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Method.Delete, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.PartnerTopicsDelete_Call(request,onOk,onNoContent,onDefault,eventListener,sender); + } + } + + /// Delete existing partner topic. + /// + /// 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.EventGrid.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task PartnerTopicsDeleteViaIdentity(global::System.String viaIdentity, global::System.Func onOk, global::System.Func onNoContent, global::System.Func onDefault, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync sender) + { + var apiVersion = @"2021-10-15-preview"; + // Constant Parameters + using( NoSynchronizationContext ) + { + // verify that Identity format is an exact match for uri + + var _match = new global::System.Text.RegularExpressions.Regex("^/subscriptions/(?[^/]+)/resourceGroups/(?[^/]+)/providers/Microsoft.EventGrid/partnerTopics/(?[^/]+)$", global::System.Text.RegularExpressions.RegexOptions.IgnoreCase).Match(viaIdentity); + if (!_match.Success) + { + throw new global::System.Exception("Invalid identity for URI '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.EventGrid/partnerTopics/{partnerTopicName}'"); + } + + // replace URI parameters with values from identity + var subscriptionId = _match.Groups["subscriptionId"].Value; + var resourceGroupName = _match.Groups["resourceGroupName"].Value; + var partnerTopicName = _match.Groups["partnerTopicName"].Value; + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + subscriptionId + + "/resourceGroups/" + + resourceGroupName + + "/providers/Microsoft.EventGrid/partnerTopics/" + + partnerTopicName + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Method.Delete, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.PartnerTopicsDelete_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.EventGrid.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + internal async global::System.Threading.Tasks.Task PartnerTopicsDelete_Call(global::System.Net.Http.HttpRequestMessage request, global::System.Func onOk, global::System.Func onNoContent, global::System.Func onDefault, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync sender) + { + using( NoSynchronizationContext ) + { + global::System.Net.Http.HttpResponseMessage _response = null; + try + { + var sendTask = sender.SendAsync(request, eventListener); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.BeforeCall, request); if( eventListener.Token.IsCancellationRequested ) { return; } + _response = await sendTask; + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.ResponseCreated, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + // this operation supports x-ms-long-running-operation + var _originalUri = request.RequestUri.AbsoluteUri; + // declared final-state-via: default + var _finalUri = _response.GetFirstHeader(@"Location"); + var asyncOperation = _response.GetFirstHeader(@"Azure-AsyncOperation"); + var location = _response.GetFirstHeader(@"Location"); + while (request.Method == System.Net.Http.HttpMethod.Put && _response.StatusCode == global::System.Net.HttpStatusCode.OK || _response.StatusCode == global::System.Net.HttpStatusCode.Created || _response.StatusCode == global::System.Net.HttpStatusCode.Accepted ) + { + + // get the delay before polling. (default to 30 seconds if not present) + int delay = (int)(_response.Headers.RetryAfter?.Delta?.TotalSeconds ?? 30); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.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.EventGrid.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.EventGrid.Runtime.Json.JsonNode.Parse(await _response.Content.ReadAsStringAsync()) is Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Runtime.UndeclaredResponseException(_response); + } + } + + // check for terminal status code + if (_response.StatusCode == global::System.Net.HttpStatusCode.Created || _response.StatusCode == global::System.Net.HttpStatusCode.Accepted ) + { + continue; + } + // we are done polling, do a request on final target? + if (!string.IsNullOrWhiteSpace(_finalUri)) + { + // create a new request with the final uri + request = request.CloneAndDispose(new global::System.Uri(_finalUri), Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.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.EventGrid.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onNoContent(_response); + break; + } + default: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onDefault(_response); + break; + } + } + } + finally + { + // finally statements + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Finally, request, _response); + _response?.Dispose(); + request?.Dispose(); + } + } + } + + /// + /// Validation method for method. Call this like the actual call, but you will get validation + /// events back. + /// + /// Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription + /// ID forms part of the URI for every service call. + /// The name of the resource group within the user's subscription. + /// Name of the partner topic. + /// an instance that will receive events. + /// + /// A that will be complete when handling of the response is completed. + /// + internal async global::System.Threading.Tasks.Task PartnerTopicsDelete_Validate(string subscriptionId, string resourceGroupName, string partnerTopicName, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener eventListener) + { + using( NoSynchronizationContext ) + { + await eventListener.AssertNotNull(nameof(subscriptionId),subscriptionId); + await eventListener.AssertNotNull(nameof(resourceGroupName),resourceGroupName); + await eventListener.AssertNotNull(nameof(partnerTopicName),partnerTopicName); + } + } + + /// Get properties of a partner topic. + /// Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription + /// ID forms part of the URI for every service call. + /// The name of the resource group within the user's subscription. + /// Name of the partner topic. + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task PartnerTopicsGet(string subscriptionId, string resourceGroupName, string partnerTopicName, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func onDefault, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync sender) + { + var apiVersion = @"2021-10-15-preview"; + // Constant Parameters + using( NoSynchronizationContext ) + { + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + global::System.Uri.EscapeDataString(subscriptionId) + + "/resourceGroups/" + + global::System.Uri.EscapeDataString(resourceGroupName) + + "/providers/Microsoft.EventGrid/partnerTopics/" + + global::System.Uri.EscapeDataString(partnerTopicName) + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Method.Get, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.PartnerTopicsGet_Call(request,onOk,onDefault,eventListener,sender); + } + } + + /// Get properties of a partner topic. + /// + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task PartnerTopicsGetViaIdentity(global::System.String viaIdentity, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func onDefault, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync sender) + { + var apiVersion = @"2021-10-15-preview"; + // Constant Parameters + using( NoSynchronizationContext ) + { + // verify that Identity format is an exact match for uri + + var _match = new global::System.Text.RegularExpressions.Regex("^/subscriptions/(?[^/]+)/resourceGroups/(?[^/]+)/providers/Microsoft.EventGrid/partnerTopics/(?[^/]+)$", global::System.Text.RegularExpressions.RegexOptions.IgnoreCase).Match(viaIdentity); + if (!_match.Success) + { + throw new global::System.Exception("Invalid identity for URI '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.EventGrid/partnerTopics/{partnerTopicName}'"); + } + + // replace URI parameters with values from identity + var subscriptionId = _match.Groups["subscriptionId"].Value; + var resourceGroupName = _match.Groups["resourceGroupName"].Value; + var partnerTopicName = _match.Groups["partnerTopicName"].Value; + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + subscriptionId + + "/resourceGroups/" + + resourceGroupName + + "/providers/Microsoft.EventGrid/partnerTopics/" + + partnerTopicName + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Method.Get, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.PartnerTopicsGet_Call(request,onOk,onDefault,eventListener,sender); + } + } + + /// Actual wire call for method. + /// the prepared HttpRequestMessage to send. + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + internal async global::System.Threading.Tasks.Task PartnerTopicsGet_Call(global::System.Net.Http.HttpRequestMessage request, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func onDefault, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync sender) + { + using( NoSynchronizationContext ) + { + global::System.Net.Http.HttpResponseMessage _response = null; + try + { + var sendTask = sender.SendAsync(request, eventListener); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.BeforeCall, request); if( eventListener.Token.IsCancellationRequested ) { return; } + _response = await sendTask; + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.ResponseCreated, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + var _contentType = _response.Content.Headers.ContentType?.MediaType; + + switch ( _response.StatusCode ) + { + case global::System.Net.HttpStatusCode.OK: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onOk(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.PartnerTopic.FromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + default: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onDefault(_response); + break; + } + } + } + finally + { + // finally statements + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Finally, request, _response); + _response?.Dispose(); + request?.Dispose(); + } + } + } + + /// + /// Validation method for method. Call this like the actual call, but you will get validation + /// events back. + /// + /// Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription + /// ID forms part of the URI for every service call. + /// The name of the resource group within the user's subscription. + /// Name of the partner topic. + /// an instance that will receive events. + /// + /// A that will be complete when handling of the response is completed. + /// + internal async global::System.Threading.Tasks.Task PartnerTopicsGet_Validate(string subscriptionId, string resourceGroupName, string partnerTopicName, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener eventListener) + { + using( NoSynchronizationContext ) + { + await eventListener.AssertNotNull(nameof(subscriptionId),subscriptionId); + await eventListener.AssertNotNull(nameof(resourceGroupName),resourceGroupName); + await eventListener.AssertNotNull(nameof(partnerTopicName),partnerTopicName); + } + } + + /// List all the partner topics under a resource group. + /// Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription + /// ID forms part of the URI for every service call. + /// The name of the resource group within the user's subscription. + /// The query used to filter the search results using OData syntax. Filtering is permitted on the 'name' + /// property only and with limited number of OData operations. These operations are: the 'contains' function as well as the + /// following logical operations: not, and, or, eq (for equal), and ne (for not equal). No arithmetic operations are supported. + /// The following is a valid filter example: $filter=contains(namE, 'PATTERN') and name ne 'PATTERN-1'. The following is not + /// a valid filter example: $filter=location eq 'westus'. + /// The number of results to return per page for the list operation. Valid range for top parameter is 1 + /// to 100. If not specified, the default number of results to be returned is 20 items per page. + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task PartnerTopicsListByResourceGroup(string subscriptionId, string resourceGroupName, string Filter, int? Top, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func onDefault, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync sender) + { + var apiVersion = @"2021-10-15-preview"; + // Constant Parameters + using( NoSynchronizationContext ) + { + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + global::System.Uri.EscapeDataString(subscriptionId) + + "/resourceGroups/" + + global::System.Uri.EscapeDataString(resourceGroupName) + + "/providers/Microsoft.EventGrid/partnerTopics" + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + + "&" + + (string.IsNullOrEmpty(Filter) ? global::System.String.Empty : "$filter=" + global::System.Uri.EscapeDataString(Filter)) + + "&" + + (null == Top ? global::System.String.Empty : "$top=" + global::System.Uri.EscapeDataString(Top.ToString())) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Method.Get, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.PartnerTopicsListByResourceGroup_Call(request,onOk,onDefault,eventListener,sender); + } + } + + /// List all the partner topics under a resource group. + /// + /// The query used to filter the search results using OData syntax. Filtering is permitted on the 'name' + /// property only and with limited number of OData operations. These operations are: the 'contains' function as well as the + /// following logical operations: not, and, or, eq (for equal), and ne (for not equal). No arithmetic operations are supported. + /// The following is a valid filter example: $filter=contains(namE, 'PATTERN') and name ne 'PATTERN-1'. The following is not + /// a valid filter example: $filter=location eq 'westus'. + /// The number of results to return per page for the list operation. Valid range for top parameter is 1 + /// to 100. If not specified, the default number of results to be returned is 20 items per page. + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task PartnerTopicsListByResourceGroupViaIdentity(global::System.String viaIdentity, string Filter, int? Top, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func onDefault, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync sender) + { + var apiVersion = @"2021-10-15-preview"; + // Constant Parameters + using( NoSynchronizationContext ) + { + // verify that Identity format is an exact match for uri + + var _match = new global::System.Text.RegularExpressions.Regex("^/subscriptions/(?[^/]+)/resourceGroups/(?[^/]+)/providers/Microsoft.EventGrid/partnerTopics$", global::System.Text.RegularExpressions.RegexOptions.IgnoreCase).Match(viaIdentity); + if (!_match.Success) + { + throw new global::System.Exception("Invalid identity for URI '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.EventGrid/partnerTopics'"); + } + + // 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.EventGrid/partnerTopics" + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + + "&" + + (string.IsNullOrEmpty(Filter) ? global::System.String.Empty : "$filter=" + global::System.Uri.EscapeDataString(Filter)) + + "&" + + (null == Top ? global::System.String.Empty : "$top=" + global::System.Uri.EscapeDataString(Top.ToString())) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Method.Get, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.PartnerTopicsListByResourceGroup_Call(request,onOk,onDefault,eventListener,sender); + } + } + + /// Actual wire call for method. + /// the prepared HttpRequestMessage to send. + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + internal async global::System.Threading.Tasks.Task PartnerTopicsListByResourceGroup_Call(global::System.Net.Http.HttpRequestMessage request, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func onDefault, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync sender) + { + using( NoSynchronizationContext ) + { + global::System.Net.Http.HttpResponseMessage _response = null; + try + { + var sendTask = sender.SendAsync(request, eventListener); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.BeforeCall, request); if( eventListener.Token.IsCancellationRequested ) { return; } + _response = await sendTask; + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.ResponseCreated, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + var _contentType = _response.Content.Headers.ContentType?.MediaType; + + switch ( _response.StatusCode ) + { + case global::System.Net.HttpStatusCode.OK: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onOk(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.PartnerTopicsListResult.FromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + default: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onDefault(_response); + break; + } + } + } + finally + { + // finally statements + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Finally, request, _response); + _response?.Dispose(); + request?.Dispose(); + } + } + } + + /// + /// Validation method for method. Call this like the actual call, but you + /// will get validation events back. + /// + /// Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription + /// ID forms part of the URI for every service call. + /// The name of the resource group within the user's subscription. + /// The query used to filter the search results using OData syntax. Filtering is permitted on the 'name' + /// property only and with limited number of OData operations. These operations are: the 'contains' function as well as the + /// following logical operations: not, and, or, eq (for equal), and ne (for not equal). No arithmetic operations are supported. + /// The following is a valid filter example: $filter=contains(namE, 'PATTERN') and name ne 'PATTERN-1'. The following is not + /// a valid filter example: $filter=location eq 'westus'. + /// The number of results to return per page for the list operation. Valid range for top parameter is 1 + /// to 100. If not specified, the default number of results to be returned is 20 items per page. + /// an instance that will receive events. + /// + /// A that will be complete when handling of the response is completed. + /// + internal async global::System.Threading.Tasks.Task PartnerTopicsListByResourceGroup_Validate(string subscriptionId, string resourceGroupName, string Filter, int? Top, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener eventListener) + { + using( NoSynchronizationContext ) + { + await eventListener.AssertNotNull(nameof(subscriptionId),subscriptionId); + await eventListener.AssertNotNull(nameof(resourceGroupName),resourceGroupName); + await eventListener.AssertNotNull(nameof(Filter),Filter); + } + } + + /// List all the partner topics under an Azure subscription. + /// Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription + /// ID forms part of the URI for every service call. + /// The query used to filter the search results using OData syntax. Filtering is permitted on the 'name' + /// property only and with limited number of OData operations. These operations are: the 'contains' function as well as the + /// following logical operations: not, and, or, eq (for equal), and ne (for not equal). No arithmetic operations are supported. + /// The following is a valid filter example: $filter=contains(namE, 'PATTERN') and name ne 'PATTERN-1'. The following is not + /// a valid filter example: $filter=location eq 'westus'. + /// The number of results to return per page for the list operation. Valid range for top parameter is 1 + /// to 100. If not specified, the default number of results to be returned is 20 items per page. + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task PartnerTopicsListBySubscription(string subscriptionId, string Filter, int? Top, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func onDefault, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync sender) + { + var apiVersion = @"2021-10-15-preview"; + // Constant Parameters + using( NoSynchronizationContext ) + { + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + global::System.Uri.EscapeDataString(subscriptionId) + + "/providers/Microsoft.EventGrid/partnerTopics" + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + + "&" + + (string.IsNullOrEmpty(Filter) ? global::System.String.Empty : "$filter=" + global::System.Uri.EscapeDataString(Filter)) + + "&" + + (null == Top ? global::System.String.Empty : "$top=" + global::System.Uri.EscapeDataString(Top.ToString())) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Method.Get, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.PartnerTopicsListBySubscription_Call(request,onOk,onDefault,eventListener,sender); + } + } + + /// List all the partner topics under an Azure subscription. + /// + /// The query used to filter the search results using OData syntax. Filtering is permitted on the 'name' + /// property only and with limited number of OData operations. These operations are: the 'contains' function as well as the + /// following logical operations: not, and, or, eq (for equal), and ne (for not equal). No arithmetic operations are supported. + /// The following is a valid filter example: $filter=contains(namE, 'PATTERN') and name ne 'PATTERN-1'. The following is not + /// a valid filter example: $filter=location eq 'westus'. + /// The number of results to return per page for the list operation. Valid range for top parameter is 1 + /// to 100. If not specified, the default number of results to be returned is 20 items per page. + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task PartnerTopicsListBySubscriptionViaIdentity(global::System.String viaIdentity, string Filter, int? Top, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func onDefault, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync sender) + { + var apiVersion = @"2021-10-15-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.EventGrid/partnerTopics$", global::System.Text.RegularExpressions.RegexOptions.IgnoreCase).Match(viaIdentity); + if (!_match.Success) + { + throw new global::System.Exception("Invalid identity for URI '/subscriptions/{subscriptionId}/providers/Microsoft.EventGrid/partnerTopics'"); + } + + // 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.EventGrid/partnerTopics" + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + + "&" + + (string.IsNullOrEmpty(Filter) ? global::System.String.Empty : "$filter=" + global::System.Uri.EscapeDataString(Filter)) + + "&" + + (null == Top ? global::System.String.Empty : "$top=" + global::System.Uri.EscapeDataString(Top.ToString())) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Method.Get, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.PartnerTopicsListBySubscription_Call(request,onOk,onDefault,eventListener,sender); + } + } + + /// Actual wire call for method. + /// the prepared HttpRequestMessage to send. + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + internal async global::System.Threading.Tasks.Task PartnerTopicsListBySubscription_Call(global::System.Net.Http.HttpRequestMessage request, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func onDefault, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync sender) + { + using( NoSynchronizationContext ) + { + global::System.Net.Http.HttpResponseMessage _response = null; + try + { + var sendTask = sender.SendAsync(request, eventListener); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.BeforeCall, request); if( eventListener.Token.IsCancellationRequested ) { return; } + _response = await sendTask; + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.ResponseCreated, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + var _contentType = _response.Content.Headers.ContentType?.MediaType; + + switch ( _response.StatusCode ) + { + case global::System.Net.HttpStatusCode.OK: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onOk(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.PartnerTopicsListResult.FromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + default: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onDefault(_response); + break; + } + } + } + finally + { + // finally statements + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Finally, request, _response); + _response?.Dispose(); + request?.Dispose(); + } + } + } + + /// + /// Validation method for method. Call this like the actual call, but you will + /// get validation events back. + /// + /// Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription + /// ID forms part of the URI for every service call. + /// The query used to filter the search results using OData syntax. Filtering is permitted on the 'name' + /// property only and with limited number of OData operations. These operations are: the 'contains' function as well as the + /// following logical operations: not, and, or, eq (for equal), and ne (for not equal). No arithmetic operations are supported. + /// The following is a valid filter example: $filter=contains(namE, 'PATTERN') and name ne 'PATTERN-1'. The following is not + /// a valid filter example: $filter=location eq 'westus'. + /// The number of results to return per page for the list operation. Valid range for top parameter is 1 + /// to 100. If not specified, the default number of results to be returned is 20 items per page. + /// an instance that will receive events. + /// + /// A that will be complete when handling of the response is completed. + /// + internal async global::System.Threading.Tasks.Task PartnerTopicsListBySubscription_Validate(string subscriptionId, string Filter, int? Top, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener eventListener) + { + using( NoSynchronizationContext ) + { + await eventListener.AssertNotNull(nameof(subscriptionId),subscriptionId); + await eventListener.AssertNotNull(nameof(Filter),Filter); + } + } + + /// Asynchronously updates a partner topic with the specified parameters. + /// Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription + /// ID forms part of the URI for every service call. + /// The name of the resource group within the user's subscription. + /// Name of the partner topic. + /// PartnerTopic update information. + /// 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.EventGrid.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task PartnerTopicsUpdate(string subscriptionId, string resourceGroupName, string partnerTopicName, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerTopicUpdateParameters body, global::System.Func onOk, global::System.Func, global::System.Threading.Tasks.Task> onCreated, global::System.Func onDefault, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync sender) + { + var apiVersion = @"2021-10-15-preview"; + // Constant Parameters + using( NoSynchronizationContext ) + { + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + global::System.Uri.EscapeDataString(subscriptionId) + + "/resourceGroups/" + + global::System.Uri.EscapeDataString(resourceGroupName) + + "/providers/Microsoft.EventGrid/partnerTopics/" + + global::System.Uri.EscapeDataString(partnerTopicName) + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Method.Patch, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // set body content + request.Content = new global::System.Net.Http.StringContent(null != body ? body.ToJson(null).ToString() : @"{}", global::System.Text.Encoding.UTF8); + request.Content.Headers.ContentType = global::System.Net.Http.Headers.MediaTypeHeaderValue.Parse("application/json"); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.BodyContentSet); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.PartnerTopicsUpdate_Call(request,onOk,onCreated,onDefault,eventListener,sender); + } + } + + /// Asynchronously updates a partner topic with the specified parameters. + /// + /// PartnerTopic update information. + /// 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.EventGrid.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task PartnerTopicsUpdateViaIdentity(global::System.String viaIdentity, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerTopicUpdateParameters body, global::System.Func onOk, global::System.Func, global::System.Threading.Tasks.Task> onCreated, global::System.Func onDefault, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync sender) + { + var apiVersion = @"2021-10-15-preview"; + // Constant Parameters + using( NoSynchronizationContext ) + { + // verify that Identity format is an exact match for uri + + var _match = new global::System.Text.RegularExpressions.Regex("^/subscriptions/(?[^/]+)/resourceGroups/(?[^/]+)/providers/Microsoft.EventGrid/partnerTopics/(?[^/]+)$", global::System.Text.RegularExpressions.RegexOptions.IgnoreCase).Match(viaIdentity); + if (!_match.Success) + { + throw new global::System.Exception("Invalid identity for URI '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.EventGrid/partnerTopics/{partnerTopicName}'"); + } + + // replace URI parameters with values from identity + var subscriptionId = _match.Groups["subscriptionId"].Value; + var resourceGroupName = _match.Groups["resourceGroupName"].Value; + var partnerTopicName = _match.Groups["partnerTopicName"].Value; + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + subscriptionId + + "/resourceGroups/" + + resourceGroupName + + "/providers/Microsoft.EventGrid/partnerTopics/" + + partnerTopicName + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Method.Patch, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // set body content + request.Content = new global::System.Net.Http.StringContent(null != body ? body.ToJson(null).ToString() : @"{}", global::System.Text.Encoding.UTF8); + request.Content.Headers.ContentType = global::System.Net.Http.Headers.MediaTypeHeaderValue.Parse("application/json"); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.BodyContentSet); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.PartnerTopicsUpdate_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.EventGrid.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + internal async global::System.Threading.Tasks.Task PartnerTopicsUpdate_Call(global::System.Net.Http.HttpRequestMessage request, global::System.Func onOk, global::System.Func, global::System.Threading.Tasks.Task> onCreated, global::System.Func onDefault, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync sender) + { + using( NoSynchronizationContext ) + { + global::System.Net.Http.HttpResponseMessage _response = null; + try + { + var sendTask = sender.SendAsync(request, eventListener); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.BeforeCall, request); if( eventListener.Token.IsCancellationRequested ) { return; } + _response = await sendTask; + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.ResponseCreated, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + var _contentType = _response.Content.Headers.ContentType?.MediaType; + + switch ( _response.StatusCode ) + { + case global::System.Net.HttpStatusCode.OK: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onOk(_response); + break; + } + case global::System.Net.HttpStatusCode.Created: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onCreated(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.PartnerTopic.FromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + default: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onDefault(_response); + break; + } + } + } + finally + { + // finally statements + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Finally, request, _response); + _response?.Dispose(); + request?.Dispose(); + } + } + } + + /// + /// Validation method for method. Call this like the actual call, but you will get validation + /// events back. + /// + /// Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription + /// ID forms part of the URI for every service call. + /// The name of the resource group within the user's subscription. + /// Name of the partner topic. + /// PartnerTopic update information. + /// an instance that will receive events. + /// + /// A that will be complete when handling of the response is completed. + /// + internal async global::System.Threading.Tasks.Task PartnerTopicsUpdate_Validate(string subscriptionId, string resourceGroupName, string partnerTopicName, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerTopicUpdateParameters body, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener eventListener) + { + using( NoSynchronizationContext ) + { + await eventListener.AssertNotNull(nameof(subscriptionId),subscriptionId); + await eventListener.AssertNotNull(nameof(resourceGroupName),resourceGroupName); + await eventListener.AssertNotNull(nameof(partnerTopicName),partnerTopicName); + await eventListener.AssertNotNull(nameof(body), body); + await eventListener.AssertObjectIsValid(nameof(body), body); + } + } + + /// + /// Delete a specific private endpoint connection under a topic, domain, or partner namespace. + /// + /// Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription + /// ID forms part of the URI for every service call. + /// The name of the resource group within the user's subscription. + /// The type of the parent resource. This can be either \'topics\', \'domains\', or \'partnerNamespaces\'. + /// The name of the parent resource (namely, either, the topic name, domain name, or partner namespace + /// name). + /// The name of the private endpoint connection connection. + /// 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.EventGrid.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task PrivateEndpointConnectionsDelete(string subscriptionId, string resourceGroupName, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.ParentType parentType, string parentName, string privateEndpointConnectionName, global::System.Func onNoContent, global::System.Func onDefault, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync sender) + { + var apiVersion = @"2021-10-15-preview"; + // Constant Parameters + using( NoSynchronizationContext ) + { + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + global::System.Uri.EscapeDataString(subscriptionId) + + "/resourceGroups/" + + global::System.Uri.EscapeDataString(resourceGroupName) + + "/providers/Microsoft.EventGrid/" + + global::System.Uri.EscapeDataString(parentType) + + "/" + + global::System.Uri.EscapeDataString(parentName) + + "/privateEndpointConnections/" + + global::System.Uri.EscapeDataString(privateEndpointConnectionName) + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Method.Delete, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.PrivateEndpointConnectionsDelete_Call(request,onNoContent,onDefault,eventListener,sender); + } + } + + /// + /// Delete a specific private endpoint connection under a topic, domain, or partner namespace. + /// + /// + /// 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.EventGrid.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task PrivateEndpointConnectionsDeleteViaIdentity(global::System.String viaIdentity, global::System.Func onNoContent, global::System.Func onDefault, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync sender) + { + var apiVersion = @"2021-10-15-preview"; + // Constant Parameters + using( NoSynchronizationContext ) + { + // verify that Identity format is an exact match for uri + + var _match = new global::System.Text.RegularExpressions.Regex("^/subscriptions/(?[^/]+)/resourceGroups/(?[^/]+)/providers/Microsoft.EventGrid/(?[^/]+)/(?[^/]+)/privateEndpointConnections/(?[^/]+)$", global::System.Text.RegularExpressions.RegexOptions.IgnoreCase).Match(viaIdentity); + if (!_match.Success) + { + throw new global::System.Exception("Invalid identity for URI '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.EventGrid/{parentType}/{parentName}/privateEndpointConnections/{privateEndpointConnectionName}'"); + } + + // replace URI parameters with values from identity + var subscriptionId = _match.Groups["subscriptionId"].Value; + var resourceGroupName = _match.Groups["resourceGroupName"].Value; + var parentType = _match.Groups["parentType"].Value; + var parentName = _match.Groups["parentName"].Value; + var privateEndpointConnectionName = _match.Groups["privateEndpointConnectionName"].Value; + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + subscriptionId + + "/resourceGroups/" + + resourceGroupName + + "/providers/Microsoft.EventGrid/" + + parentType + + "/" + + parentName + + "/privateEndpointConnections/" + + privateEndpointConnectionName + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Method.Delete, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.PrivateEndpointConnectionsDelete_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.EventGrid.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + internal async global::System.Threading.Tasks.Task PrivateEndpointConnectionsDelete_Call(global::System.Net.Http.HttpRequestMessage request, global::System.Func onNoContent, global::System.Func onDefault, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync sender) + { + using( NoSynchronizationContext ) + { + global::System.Net.Http.HttpResponseMessage _response = null; + try + { + var sendTask = sender.SendAsync(request, eventListener); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.BeforeCall, request); if( eventListener.Token.IsCancellationRequested ) { return; } + _response = await sendTask; + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.ResponseCreated, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + // this operation supports x-ms-long-running-operation + var _originalUri = request.RequestUri.AbsoluteUri; + // declared final-state-via: default + var _finalUri = _response.GetFirstHeader(@"Location"); + var asyncOperation = _response.GetFirstHeader(@"Azure-AsyncOperation"); + var location = _response.GetFirstHeader(@"Location"); + while (request.Method == System.Net.Http.HttpMethod.Put && _response.StatusCode == global::System.Net.HttpStatusCode.OK || _response.StatusCode == global::System.Net.HttpStatusCode.Created || _response.StatusCode == global::System.Net.HttpStatusCode.Accepted ) + { + + // get the delay before polling. (default to 30 seconds if not present) + int delay = (int)(_response.Headers.RetryAfter?.Delta?.TotalSeconds ?? 30); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.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.EventGrid.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.EventGrid.Runtime.Json.JsonNode.Parse(await _response.Content.ReadAsStringAsync()) is Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Runtime.UndeclaredResponseException(_response); + } + } + + // check for terminal status code + if (_response.StatusCode == global::System.Net.HttpStatusCode.Created || _response.StatusCode == global::System.Net.HttpStatusCode.Accepted ) + { + continue; + } + // we are done polling, do a request on final target? + if (!string.IsNullOrWhiteSpace(_finalUri)) + { + // create a new request with the final uri + request = request.CloneAndDispose(new global::System.Uri(_finalUri), Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Method.Get); + + // drop the old response + _response?.Dispose(); + + // make the final call + _response = await sender.SendAsync(request, eventListener); + break; + } + } + var _contentType = _response.Content.Headers.ContentType?.MediaType; + + switch ( _response.StatusCode ) + { + case global::System.Net.HttpStatusCode.NoContent: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onNoContent(_response); + break; + } + default: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onDefault(_response); + break; + } + } + } + finally + { + // finally statements + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Finally, request, _response); + _response?.Dispose(); + request?.Dispose(); + } + } + } + + /// + /// Validation method for method. Call this like the actual call, but you + /// will get validation events back. + /// + /// Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription + /// ID forms part of the URI for every service call. + /// The name of the resource group within the user's subscription. + /// The type of the parent resource. This can be either \'topics\', \'domains\', or \'partnerNamespaces\'. + /// The name of the parent resource (namely, either, the topic name, domain name, or partner namespace + /// name). + /// The name of the private endpoint connection connection. + /// an instance that will receive events. + /// + /// A that will be complete when handling of the response is completed. + /// + internal async global::System.Threading.Tasks.Task PrivateEndpointConnectionsDelete_Validate(string subscriptionId, string resourceGroupName, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.ParentType parentType, string parentName, string privateEndpointConnectionName, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener eventListener) + { + using( NoSynchronizationContext ) + { + await eventListener.AssertNotNull(nameof(subscriptionId),subscriptionId); + await eventListener.AssertNotNull(nameof(resourceGroupName),resourceGroupName); + await eventListener.AssertNotNull(nameof(parentType),parentType); + await eventListener.AssertEnum(nameof(parentType),parentType,@"topics", @"domains", @"partnerNamespaces"); + await eventListener.AssertNotNull(nameof(parentName),parentName); + await eventListener.AssertNotNull(nameof(privateEndpointConnectionName),privateEndpointConnectionName); + } + } + + /// + /// Get a specific private endpoint connection under a topic, domain, or partner namespace. + /// + /// Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription + /// ID forms part of the URI for every service call. + /// The name of the resource group within the user's subscription. + /// The type of the parent resource. This can be either \'topics\', \'domains\', or \'partnerNamespaces\'. + /// The name of the parent resource (namely, either, the topic name, domain name, or partner namespace + /// name). + /// The name of the private endpoint connection 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.EventGrid.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task PrivateEndpointConnectionsGet(string subscriptionId, string resourceGroupName, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.ParentType parentType, string parentName, string privateEndpointConnectionName, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func onDefault, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync sender) + { + var apiVersion = @"2021-10-15-preview"; + // Constant Parameters + using( NoSynchronizationContext ) + { + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + global::System.Uri.EscapeDataString(subscriptionId) + + "/resourceGroups/" + + global::System.Uri.EscapeDataString(resourceGroupName) + + "/providers/Microsoft.EventGrid/" + + global::System.Uri.EscapeDataString(parentType) + + "/" + + global::System.Uri.EscapeDataString(parentName) + + "/privateEndpointConnections/" + + global::System.Uri.EscapeDataString(privateEndpointConnectionName) + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Method.Get, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.PrivateEndpointConnectionsGet_Call(request,onOk,onDefault,eventListener,sender); + } + } + + /// + /// Get a specific private endpoint connection under a topic, domain, or partner namespace. + /// + /// + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task PrivateEndpointConnectionsGetViaIdentity(global::System.String viaIdentity, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func onDefault, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync sender) + { + var apiVersion = @"2021-10-15-preview"; + // Constant Parameters + using( NoSynchronizationContext ) + { + // verify that Identity format is an exact match for uri + + var _match = new global::System.Text.RegularExpressions.Regex("^/subscriptions/(?[^/]+)/resourceGroups/(?[^/]+)/providers/Microsoft.EventGrid/(?[^/]+)/(?[^/]+)/privateEndpointConnections/(?[^/]+)$", global::System.Text.RegularExpressions.RegexOptions.IgnoreCase).Match(viaIdentity); + if (!_match.Success) + { + throw new global::System.Exception("Invalid identity for URI '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.EventGrid/{parentType}/{parentName}/privateEndpointConnections/{privateEndpointConnectionName}'"); + } + + // replace URI parameters with values from identity + var subscriptionId = _match.Groups["subscriptionId"].Value; + var resourceGroupName = _match.Groups["resourceGroupName"].Value; + var parentType = _match.Groups["parentType"].Value; + var parentName = _match.Groups["parentName"].Value; + var privateEndpointConnectionName = _match.Groups["privateEndpointConnectionName"].Value; + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + subscriptionId + + "/resourceGroups/" + + resourceGroupName + + "/providers/Microsoft.EventGrid/" + + parentType + + "/" + + parentName + + "/privateEndpointConnections/" + + privateEndpointConnectionName + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Method.Get, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.PrivateEndpointConnectionsGet_Call(request,onOk,onDefault,eventListener,sender); + } + } + + /// Actual wire call for method. + /// the prepared HttpRequestMessage to send. + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + internal async global::System.Threading.Tasks.Task PrivateEndpointConnectionsGet_Call(global::System.Net.Http.HttpRequestMessage request, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func onDefault, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync sender) + { + using( NoSynchronizationContext ) + { + global::System.Net.Http.HttpResponseMessage _response = null; + try + { + var sendTask = sender.SendAsync(request, eventListener); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.BeforeCall, request); if( eventListener.Token.IsCancellationRequested ) { return; } + _response = await sendTask; + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.ResponseCreated, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + var _contentType = _response.Content.Headers.ContentType?.MediaType; + + switch ( _response.StatusCode ) + { + case global::System.Net.HttpStatusCode.OK: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onOk(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.PrivateEndpointConnection.FromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + default: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onDefault(_response); + break; + } + } + } + finally + { + // finally statements + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Finally, request, _response); + _response?.Dispose(); + request?.Dispose(); + } + } + } + + /// + /// Validation method for method. Call this like the actual call, but you will + /// get validation events back. + /// + /// Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription + /// ID forms part of the URI for every service call. + /// The name of the resource group within the user's subscription. + /// The type of the parent resource. This can be either \'topics\', \'domains\', or \'partnerNamespaces\'. + /// The name of the parent resource (namely, either, the topic name, domain name, or partner namespace + /// name). + /// The name of the private endpoint connection connection. + /// an instance that will receive events. + /// + /// A that will be complete when handling of the response is completed. + /// + internal async global::System.Threading.Tasks.Task PrivateEndpointConnectionsGet_Validate(string subscriptionId, string resourceGroupName, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.ParentType parentType, string parentName, string privateEndpointConnectionName, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener eventListener) + { + using( NoSynchronizationContext ) + { + await eventListener.AssertNotNull(nameof(subscriptionId),subscriptionId); + await eventListener.AssertNotNull(nameof(resourceGroupName),resourceGroupName); + await eventListener.AssertNotNull(nameof(parentType),parentType); + await eventListener.AssertEnum(nameof(parentType),parentType,@"topics", @"domains", @"partnerNamespaces"); + await eventListener.AssertNotNull(nameof(parentName),parentName); + await eventListener.AssertNotNull(nameof(privateEndpointConnectionName),privateEndpointConnectionName); + } + } + + /// + /// Get all private endpoint connections under a topic, domain, or partner namespace. + /// + /// Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription + /// ID forms part of the URI for every service call. + /// The name of the resource group within the user's subscription. + /// The type of the parent resource. This can be either \'topics\', \'domains\', or \'partnerNamespaces\'. + /// The name of the parent resource (namely, either, the topic name, domain name, or partner namespace + /// name). + /// The query used to filter the search results using OData syntax. Filtering is permitted on the 'name' + /// property only and with limited number of OData operations. These operations are: the 'contains' function as well as the + /// following logical operations: not, and, or, eq (for equal), and ne (for not equal). No arithmetic operations are supported. + /// The following is a valid filter example: $filter=contains(namE, 'PATTERN') and name ne 'PATTERN-1'. The following is not + /// a valid filter example: $filter=location eq 'westus'. + /// The number of results to return per page for the list operation. Valid range for top parameter is 1 + /// to 100. If not specified, the default number of results to be returned is 20 items per page. + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task PrivateEndpointConnectionsListByResource(string subscriptionId, string resourceGroupName, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.ParentType parentType, string parentName, string Filter, int? Top, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func onDefault, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync sender) + { + var apiVersion = @"2021-10-15-preview"; + // Constant Parameters + using( NoSynchronizationContext ) + { + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + global::System.Uri.EscapeDataString(subscriptionId) + + "/resourceGroups/" + + global::System.Uri.EscapeDataString(resourceGroupName) + + "/providers/Microsoft.EventGrid/" + + global::System.Uri.EscapeDataString(parentType) + + "/" + + global::System.Uri.EscapeDataString(parentName) + + "/privateEndpointConnections" + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + + "&" + + (string.IsNullOrEmpty(Filter) ? global::System.String.Empty : "$filter=" + global::System.Uri.EscapeDataString(Filter)) + + "&" + + (null == Top ? global::System.String.Empty : "$top=" + global::System.Uri.EscapeDataString(Top.ToString())) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Method.Get, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.PrivateEndpointConnectionsListByResource_Call(request,onOk,onDefault,eventListener,sender); + } + } + + /// + /// Get all private endpoint connections under a topic, domain, or partner namespace. + /// + /// + /// The query used to filter the search results using OData syntax. Filtering is permitted on the 'name' + /// property only and with limited number of OData operations. These operations are: the 'contains' function as well as the + /// following logical operations: not, and, or, eq (for equal), and ne (for not equal). No arithmetic operations are supported. + /// The following is a valid filter example: $filter=contains(namE, 'PATTERN') and name ne 'PATTERN-1'. The following is not + /// a valid filter example: $filter=location eq 'westus'. + /// The number of results to return per page for the list operation. Valid range for top parameter is 1 + /// to 100. If not specified, the default number of results to be returned is 20 items per page. + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task PrivateEndpointConnectionsListByResourceViaIdentity(global::System.String viaIdentity, string Filter, int? Top, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func onDefault, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync sender) + { + var apiVersion = @"2021-10-15-preview"; + // Constant Parameters + using( NoSynchronizationContext ) + { + // verify that Identity format is an exact match for uri + + var _match = new global::System.Text.RegularExpressions.Regex("^/subscriptions/(?[^/]+)/resourceGroups/(?[^/]+)/providers/Microsoft.EventGrid/(?[^/]+)/(?[^/]+)/privateEndpointConnections$", global::System.Text.RegularExpressions.RegexOptions.IgnoreCase).Match(viaIdentity); + if (!_match.Success) + { + throw new global::System.Exception("Invalid identity for URI '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.EventGrid/{parentType}/{parentName}/privateEndpointConnections'"); + } + + // replace URI parameters with values from identity + var subscriptionId = _match.Groups["subscriptionId"].Value; + var resourceGroupName = _match.Groups["resourceGroupName"].Value; + var parentType = _match.Groups["parentType"].Value; + var parentName = _match.Groups["parentName"].Value; + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + subscriptionId + + "/resourceGroups/" + + resourceGroupName + + "/providers/Microsoft.EventGrid/" + + parentType + + "/" + + parentName + + "/privateEndpointConnections" + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + + "&" + + (string.IsNullOrEmpty(Filter) ? global::System.String.Empty : "$filter=" + global::System.Uri.EscapeDataString(Filter)) + + "&" + + (null == Top ? global::System.String.Empty : "$top=" + global::System.Uri.EscapeDataString(Top.ToString())) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Method.Get, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.PrivateEndpointConnectionsListByResource_Call(request,onOk,onDefault,eventListener,sender); + } + } + + /// + /// Actual wire call for method. + /// + /// the prepared HttpRequestMessage to send. + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + internal async global::System.Threading.Tasks.Task PrivateEndpointConnectionsListByResource_Call(global::System.Net.Http.HttpRequestMessage request, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func onDefault, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync sender) + { + using( NoSynchronizationContext ) + { + global::System.Net.Http.HttpResponseMessage _response = null; + try + { + var sendTask = sender.SendAsync(request, eventListener); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.BeforeCall, request); if( eventListener.Token.IsCancellationRequested ) { return; } + _response = await sendTask; + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.ResponseCreated, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + var _contentType = _response.Content.Headers.ContentType?.MediaType; + + switch ( _response.StatusCode ) + { + case global::System.Net.HttpStatusCode.OK: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onOk(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.PrivateEndpointConnectionListResult.FromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + default: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onDefault(_response); + break; + } + } + } + finally + { + // finally statements + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Finally, request, _response); + _response?.Dispose(); + request?.Dispose(); + } + } + } + + /// + /// Validation method for method. Call this like the actual call, + /// but you will get validation events back. + /// + /// Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription + /// ID forms part of the URI for every service call. + /// The name of the resource group within the user's subscription. + /// The type of the parent resource. This can be either \'topics\', \'domains\', or \'partnerNamespaces\'. + /// The name of the parent resource (namely, either, the topic name, domain name, or partner namespace + /// name). + /// The query used to filter the search results using OData syntax. Filtering is permitted on the 'name' + /// property only and with limited number of OData operations. These operations are: the 'contains' function as well as the + /// following logical operations: not, and, or, eq (for equal), and ne (for not equal). No arithmetic operations are supported. + /// The following is a valid filter example: $filter=contains(namE, 'PATTERN') and name ne 'PATTERN-1'. The following is not + /// a valid filter example: $filter=location eq 'westus'. + /// The number of results to return per page for the list operation. Valid range for top parameter is 1 + /// to 100. If not specified, the default number of results to be returned is 20 items per page. + /// an instance that will receive events. + /// + /// A that will be complete when handling of the response is completed. + /// + internal async global::System.Threading.Tasks.Task PrivateEndpointConnectionsListByResource_Validate(string subscriptionId, string resourceGroupName, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.ParentType parentType, string parentName, string Filter, int? Top, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener eventListener) + { + using( NoSynchronizationContext ) + { + await eventListener.AssertNotNull(nameof(subscriptionId),subscriptionId); + await eventListener.AssertNotNull(nameof(resourceGroupName),resourceGroupName); + await eventListener.AssertNotNull(nameof(parentType),parentType); + await eventListener.AssertEnum(nameof(parentType),parentType,@"topics", @"domains", @"partnerNamespaces"); + await eventListener.AssertNotNull(nameof(parentName),parentName); + await eventListener.AssertNotNull(nameof(Filter),Filter); + } + } + + /// + /// Update a specific private endpoint connection under a topic, domain or partner namespace. + /// + /// Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription + /// ID forms part of the URI for every service call. + /// The name of the resource group within the user's subscription. + /// The type of the parent resource. This can be either \'topics\', \'domains\', or \'partnerNamespaces\'. + /// The name of the parent resource (namely, either, the topic name, domain name, or partner namespace + /// name). + /// The name of the private endpoint connection connection. + /// The private endpoint connection object to 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.EventGrid.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task PrivateEndpointConnectionsUpdate(string subscriptionId, string resourceGroupName, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.ParentType parentType, string parentName, string privateEndpointConnectionName, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPrivateEndpointConnection body, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func onDefault, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync sender) + { + var apiVersion = @"2021-10-15-preview"; + // Constant Parameters + using( NoSynchronizationContext ) + { + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + global::System.Uri.EscapeDataString(subscriptionId) + + "/resourceGroups/" + + global::System.Uri.EscapeDataString(resourceGroupName) + + "/providers/Microsoft.EventGrid/" + + global::System.Uri.EscapeDataString(parentType) + + "/" + + global::System.Uri.EscapeDataString(parentName) + + "/privateEndpointConnections/" + + global::System.Uri.EscapeDataString(privateEndpointConnectionName) + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Method.Put, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // set body content + request.Content = new global::System.Net.Http.StringContent(null != body ? body.ToJson(null).ToString() : @"{}", global::System.Text.Encoding.UTF8); + request.Content.Headers.ContentType = global::System.Net.Http.Headers.MediaTypeHeaderValue.Parse("application/json"); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.BodyContentSet); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.PrivateEndpointConnectionsUpdate_Call(request,onOk,onDefault,eventListener,sender); + } + } + + /// + /// Update a specific private endpoint connection under a topic, domain or partner namespace. + /// + /// + /// The private endpoint connection object to 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.EventGrid.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task PrivateEndpointConnectionsUpdateViaIdentity(global::System.String viaIdentity, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPrivateEndpointConnection body, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func onDefault, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync sender) + { + var apiVersion = @"2021-10-15-preview"; + // Constant Parameters + using( NoSynchronizationContext ) + { + // verify that Identity format is an exact match for uri + + var _match = new global::System.Text.RegularExpressions.Regex("^/subscriptions/(?[^/]+)/resourceGroups/(?[^/]+)/providers/Microsoft.EventGrid/(?[^/]+)/(?[^/]+)/privateEndpointConnections/(?[^/]+)$", global::System.Text.RegularExpressions.RegexOptions.IgnoreCase).Match(viaIdentity); + if (!_match.Success) + { + throw new global::System.Exception("Invalid identity for URI '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.EventGrid/{parentType}/{parentName}/privateEndpointConnections/{privateEndpointConnectionName}'"); + } + + // replace URI parameters with values from identity + var subscriptionId = _match.Groups["subscriptionId"].Value; + var resourceGroupName = _match.Groups["resourceGroupName"].Value; + var parentType = _match.Groups["parentType"].Value; + var parentName = _match.Groups["parentName"].Value; + var privateEndpointConnectionName = _match.Groups["privateEndpointConnectionName"].Value; + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + subscriptionId + + "/resourceGroups/" + + resourceGroupName + + "/providers/Microsoft.EventGrid/" + + parentType + + "/" + + parentName + + "/privateEndpointConnections/" + + privateEndpointConnectionName + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Method.Put, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // set body content + request.Content = new global::System.Net.Http.StringContent(null != body ? body.ToJson(null).ToString() : @"{}", global::System.Text.Encoding.UTF8); + request.Content.Headers.ContentType = global::System.Net.Http.Headers.MediaTypeHeaderValue.Parse("application/json"); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.BodyContentSet); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.PrivateEndpointConnectionsUpdate_Call(request,onOk,onDefault,eventListener,sender); + } + } + + /// Actual wire call for method. + /// the prepared HttpRequestMessage to send. + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + internal async global::System.Threading.Tasks.Task PrivateEndpointConnectionsUpdate_Call(global::System.Net.Http.HttpRequestMessage request, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func onDefault, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync sender) + { + using( NoSynchronizationContext ) + { + global::System.Net.Http.HttpResponseMessage _response = null; + try + { + var sendTask = sender.SendAsync(request, eventListener); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.BeforeCall, request); if( eventListener.Token.IsCancellationRequested ) { return; } + _response = await sendTask; + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.ResponseCreated, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + // this operation supports x-ms-long-running-operation + var _originalUri = request.RequestUri.AbsoluteUri; + // declared final-state-via: default + var asyncOperation = _response.GetFirstHeader(@"Azure-AsyncOperation"); + var location = _response.GetFirstHeader(@"Location"); + while (request.Method == System.Net.Http.HttpMethod.Put && _response.StatusCode == global::System.Net.HttpStatusCode.OK || _response.StatusCode == global::System.Net.HttpStatusCode.Created || _response.StatusCode == global::System.Net.HttpStatusCode.Accepted ) + { + + // get the delay before polling. (default to 30 seconds if not present) + int delay = (int)(_response.Headers.RetryAfter?.Delta?.TotalSeconds ?? 30); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.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.EventGrid.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.EventGrid.Runtime.Json.JsonNode.Parse(await _response.Content.ReadAsStringAsync()) is Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Runtime.UndeclaredResponseException(_response); + } + } + + // check for terminal status code + if (_response.StatusCode == global::System.Net.HttpStatusCode.Created || _response.StatusCode == global::System.Net.HttpStatusCode.Accepted ) + { + continue; + } + // we are done polling, do a request on final target? + if (!string.IsNullOrWhiteSpace(_originalUri)) + { + // create a new request with the final uri + request = request.CloneAndDispose(new global::System.Uri(_originalUri), Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onOk(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.PrivateEndpointConnection.FromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + default: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onDefault(_response); + break; + } + } + } + finally + { + // finally statements + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Finally, request, _response); + _response?.Dispose(); + request?.Dispose(); + } + } + } + + /// + /// Validation method for method. Call this like the actual call, but you + /// will get validation events back. + /// + /// Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription + /// ID forms part of the URI for every service call. + /// The name of the resource group within the user's subscription. + /// The type of the parent resource. This can be either \'topics\', \'domains\', or \'partnerNamespaces\'. + /// The name of the parent resource (namely, either, the topic name, domain name, or partner namespace + /// name). + /// The name of the private endpoint connection connection. + /// The private endpoint connection object to 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 PrivateEndpointConnectionsUpdate_Validate(string subscriptionId, string resourceGroupName, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.ParentType parentType, string parentName, string privateEndpointConnectionName, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPrivateEndpointConnection body, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener eventListener) + { + using( NoSynchronizationContext ) + { + await eventListener.AssertNotNull(nameof(subscriptionId),subscriptionId); + await eventListener.AssertNotNull(nameof(resourceGroupName),resourceGroupName); + await eventListener.AssertNotNull(nameof(parentType),parentType); + await eventListener.AssertEnum(nameof(parentType),parentType,@"topics", @"domains", @"partnerNamespaces"); + await eventListener.AssertNotNull(nameof(parentName),parentName); + await eventListener.AssertNotNull(nameof(privateEndpointConnectionName),privateEndpointConnectionName); + await eventListener.AssertNotNull(nameof(body), body); + await eventListener.AssertObjectIsValid(nameof(body), body); + } + } + + /// Get properties of a private link resource. + /// Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription + /// ID forms part of the URI for every service call. + /// The name of the resource group within the user's subscription. + /// The type of the parent resource. This can be either \'topics\', \'domains\', or \'partnerNamespaces\'. + /// The name of the parent resource (namely, either, the topic name, domain name, or partner namespace + /// name). + /// The name of private link resource. + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task PrivateLinkResourcesGet(string subscriptionId, string resourceGroupName, string parentType, string parentName, string privateLinkResourceName, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func onDefault, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync sender) + { + var apiVersion = @"2021-10-15-preview"; + // Constant Parameters + using( NoSynchronizationContext ) + { + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + global::System.Uri.EscapeDataString(subscriptionId) + + "/resourceGroups/" + + global::System.Uri.EscapeDataString(resourceGroupName) + + "/providers/Microsoft.EventGrid/" + + global::System.Uri.EscapeDataString(parentType) + + "/" + + global::System.Uri.EscapeDataString(parentName) + + "/privateLinkResources/" + + global::System.Uri.EscapeDataString(privateLinkResourceName) + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Method.Get, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.PrivateLinkResourcesGet_Call(request,onOk,onDefault,eventListener,sender); + } + } + + /// Get properties of a private link resource. + /// + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task PrivateLinkResourcesGetViaIdentity(global::System.String viaIdentity, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func onDefault, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync sender) + { + var apiVersion = @"2021-10-15-preview"; + // Constant Parameters + using( NoSynchronizationContext ) + { + // verify that Identity format is an exact match for uri + + var _match = new global::System.Text.RegularExpressions.Regex("^/subscriptions/(?[^/]+)/resourceGroups/(?[^/]+)/providers/Microsoft.EventGrid/(?[^/]+)/(?[^/]+)/privateLinkResources/(?[^/]+)$", global::System.Text.RegularExpressions.RegexOptions.IgnoreCase).Match(viaIdentity); + if (!_match.Success) + { + throw new global::System.Exception("Invalid identity for URI '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.EventGrid/{parentType}/{parentName}/privateLinkResources/{privateLinkResourceName}'"); + } + + // replace URI parameters with values from identity + var subscriptionId = _match.Groups["subscriptionId"].Value; + var resourceGroupName = _match.Groups["resourceGroupName"].Value; + var parentType = _match.Groups["parentType"].Value; + var parentName = _match.Groups["parentName"].Value; + var privateLinkResourceName = _match.Groups["privateLinkResourceName"].Value; + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + subscriptionId + + "/resourceGroups/" + + resourceGroupName + + "/providers/Microsoft.EventGrid/" + + parentType + + "/" + + parentName + + "/privateLinkResources/" + + privateLinkResourceName + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Method.Get, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.PrivateLinkResourcesGet_Call(request,onOk,onDefault,eventListener,sender); + } + } + + /// Actual wire call for method. + /// the prepared HttpRequestMessage to send. + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + internal async global::System.Threading.Tasks.Task PrivateLinkResourcesGet_Call(global::System.Net.Http.HttpRequestMessage request, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func onDefault, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync sender) + { + using( NoSynchronizationContext ) + { + global::System.Net.Http.HttpResponseMessage _response = null; + try + { + var sendTask = sender.SendAsync(request, eventListener); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.BeforeCall, request); if( eventListener.Token.IsCancellationRequested ) { return; } + _response = await sendTask; + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.ResponseCreated, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + var _contentType = _response.Content.Headers.ContentType?.MediaType; + + switch ( _response.StatusCode ) + { + case global::System.Net.HttpStatusCode.OK: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onOk(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.PrivateLinkResource.FromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + default: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onDefault(_response); + break; + } + } + } + finally + { + // finally statements + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Finally, request, _response); + _response?.Dispose(); + request?.Dispose(); + } + } + } + + /// + /// Validation method for method. Call this like the actual call, but you will get + /// validation events back. + /// + /// Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription + /// ID forms part of the URI for every service call. + /// The name of the resource group within the user's subscription. + /// The type of the parent resource. This can be either \'topics\', \'domains\', or \'partnerNamespaces\'. + /// The name of the parent resource (namely, either, the topic name, domain name, or partner namespace + /// name). + /// The name of private link resource. + /// an instance that will receive events. + /// + /// A that will be complete when handling of the response is completed. + /// + internal async global::System.Threading.Tasks.Task PrivateLinkResourcesGet_Validate(string subscriptionId, string resourceGroupName, string parentType, string parentName, string privateLinkResourceName, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener eventListener) + { + using( NoSynchronizationContext ) + { + await eventListener.AssertNotNull(nameof(subscriptionId),subscriptionId); + await eventListener.AssertNotNull(nameof(resourceGroupName),resourceGroupName); + await eventListener.AssertNotNull(nameof(parentType),parentType); + await eventListener.AssertNotNull(nameof(parentName),parentName); + await eventListener.AssertNotNull(nameof(privateLinkResourceName),privateLinkResourceName); + } + } + + /// + /// List all the private link resources under a topic, domain, or partner namespace. + /// + /// Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription + /// ID forms part of the URI for every service call. + /// The name of the resource group within the user's subscription. + /// The type of the parent resource. This can be either \'topics\', \'domains\', or \'partnerNamespaces\'. + /// The name of the parent resource (namely, either, the topic name, domain name, or partner namespace + /// name). + /// The query used to filter the search results using OData syntax. Filtering is permitted on the 'name' + /// property only and with limited number of OData operations. These operations are: the 'contains' function as well as the + /// following logical operations: not, and, or, eq (for equal), and ne (for not equal). No arithmetic operations are supported. + /// The following is a valid filter example: $filter=contains(namE, 'PATTERN') and name ne 'PATTERN-1'. The following is not + /// a valid filter example: $filter=location eq 'westus'. + /// The number of results to return per page for the list operation. Valid range for top parameter is 1 + /// to 100. If not specified, the default number of results to be returned is 20 items per page. + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task PrivateLinkResourcesListByResource(string subscriptionId, string resourceGroupName, string parentType, string parentName, string Filter, int? Top, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func onDefault, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync sender) + { + var apiVersion = @"2021-10-15-preview"; + // Constant Parameters + using( NoSynchronizationContext ) + { + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + global::System.Uri.EscapeDataString(subscriptionId) + + "/resourceGroups/" + + global::System.Uri.EscapeDataString(resourceGroupName) + + "/providers/Microsoft.EventGrid/" + + global::System.Uri.EscapeDataString(parentType) + + "/" + + global::System.Uri.EscapeDataString(parentName) + + "/privateLinkResources" + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + + "&" + + (string.IsNullOrEmpty(Filter) ? global::System.String.Empty : "$filter=" + global::System.Uri.EscapeDataString(Filter)) + + "&" + + (null == Top ? global::System.String.Empty : "$top=" + global::System.Uri.EscapeDataString(Top.ToString())) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Method.Get, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.PrivateLinkResourcesListByResource_Call(request,onOk,onDefault,eventListener,sender); + } + } + + /// + /// List all the private link resources under a topic, domain, or partner namespace. + /// + /// + /// The query used to filter the search results using OData syntax. Filtering is permitted on the 'name' + /// property only and with limited number of OData operations. These operations are: the 'contains' function as well as the + /// following logical operations: not, and, or, eq (for equal), and ne (for not equal). No arithmetic operations are supported. + /// The following is a valid filter example: $filter=contains(namE, 'PATTERN') and name ne 'PATTERN-1'. The following is not + /// a valid filter example: $filter=location eq 'westus'. + /// The number of results to return per page for the list operation. Valid range for top parameter is 1 + /// to 100. If not specified, the default number of results to be returned is 20 items per page. + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task PrivateLinkResourcesListByResourceViaIdentity(global::System.String viaIdentity, string Filter, int? Top, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func onDefault, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync sender) + { + var apiVersion = @"2021-10-15-preview"; + // Constant Parameters + using( NoSynchronizationContext ) + { + // verify that Identity format is an exact match for uri + + var _match = new global::System.Text.RegularExpressions.Regex("^/subscriptions/(?[^/]+)/resourceGroups/(?[^/]+)/providers/Microsoft.EventGrid/(?[^/]+)/(?[^/]+)/privateLinkResources$", global::System.Text.RegularExpressions.RegexOptions.IgnoreCase).Match(viaIdentity); + if (!_match.Success) + { + throw new global::System.Exception("Invalid identity for URI '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.EventGrid/{parentType}/{parentName}/privateLinkResources'"); + } + + // replace URI parameters with values from identity + var subscriptionId = _match.Groups["subscriptionId"].Value; + var resourceGroupName = _match.Groups["resourceGroupName"].Value; + var parentType = _match.Groups["parentType"].Value; + var parentName = _match.Groups["parentName"].Value; + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + subscriptionId + + "/resourceGroups/" + + resourceGroupName + + "/providers/Microsoft.EventGrid/" + + parentType + + "/" + + parentName + + "/privateLinkResources" + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + + "&" + + (string.IsNullOrEmpty(Filter) ? global::System.String.Empty : "$filter=" + global::System.Uri.EscapeDataString(Filter)) + + "&" + + (null == Top ? global::System.String.Empty : "$top=" + global::System.Uri.EscapeDataString(Top.ToString())) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Method.Get, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.PrivateLinkResourcesListByResource_Call(request,onOk,onDefault,eventListener,sender); + } + } + + /// Actual wire call for method. + /// the prepared HttpRequestMessage to send. + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + internal async global::System.Threading.Tasks.Task PrivateLinkResourcesListByResource_Call(global::System.Net.Http.HttpRequestMessage request, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func onDefault, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync sender) + { + using( NoSynchronizationContext ) + { + global::System.Net.Http.HttpResponseMessage _response = null; + try + { + var sendTask = sender.SendAsync(request, eventListener); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.BeforeCall, request); if( eventListener.Token.IsCancellationRequested ) { return; } + _response = await sendTask; + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.ResponseCreated, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + var _contentType = _response.Content.Headers.ContentType?.MediaType; + + switch ( _response.StatusCode ) + { + case global::System.Net.HttpStatusCode.OK: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onOk(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.PrivateLinkResourcesListResult.FromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + default: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onDefault(_response); + break; + } + } + } + finally + { + // finally statements + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Finally, request, _response); + _response?.Dispose(); + request?.Dispose(); + } + } + } + + /// + /// Validation method for method. Call this like the actual call, but you + /// will get validation events back. + /// + /// Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription + /// ID forms part of the URI for every service call. + /// The name of the resource group within the user's subscription. + /// The type of the parent resource. This can be either \'topics\', \'domains\', or \'partnerNamespaces\'. + /// The name of the parent resource (namely, either, the topic name, domain name, or partner namespace + /// name). + /// The query used to filter the search results using OData syntax. Filtering is permitted on the 'name' + /// property only and with limited number of OData operations. These operations are: the 'contains' function as well as the + /// following logical operations: not, and, or, eq (for equal), and ne (for not equal). No arithmetic operations are supported. + /// The following is a valid filter example: $filter=contains(namE, 'PATTERN') and name ne 'PATTERN-1'. The following is not + /// a valid filter example: $filter=location eq 'westus'. + /// The number of results to return per page for the list operation. Valid range for top parameter is 1 + /// to 100. If not specified, the default number of results to be returned is 20 items per page. + /// an instance that will receive events. + /// + /// A that will be complete when handling of the response is completed. + /// + internal async global::System.Threading.Tasks.Task PrivateLinkResourcesListByResource_Validate(string subscriptionId, string resourceGroupName, string parentType, string parentName, string Filter, int? Top, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener eventListener) + { + using( NoSynchronizationContext ) + { + await eventListener.AssertNotNull(nameof(subscriptionId),subscriptionId); + await eventListener.AssertNotNull(nameof(resourceGroupName),resourceGroupName); + await eventListener.AssertNotNull(nameof(parentType),parentType); + await eventListener.AssertNotNull(nameof(parentName),parentName); + await eventListener.AssertNotNull(nameof(Filter),Filter); + } + } + + /// + /// Asynchronously creates or updates an event subscription with the specified parameters. Existing event subscriptions will + /// be updated with this API. + /// + /// Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription + /// ID forms part of the URI for every service call. + /// The name of the resource group within the user's subscription. + /// Name of the system topic. + /// Name of the event subscription to be created. Event subscription names must be between + /// 3 and 100 characters in length and use alphanumeric letters only. + /// Event subscription properties containing the destination and filter information. + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task SystemTopicEventSubscriptionsCreateOrUpdate(string subscriptionId, string resourceGroupName, string systemTopicName, string eventSubscriptionName, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscription body, global::System.Func onDefault, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync sender) + { + var apiVersion = @"2021-10-15-preview"; + // Constant Parameters + using( NoSynchronizationContext ) + { + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + global::System.Uri.EscapeDataString(subscriptionId) + + "/resourceGroups/" + + global::System.Uri.EscapeDataString(resourceGroupName) + + "/providers/Microsoft.EventGrid/systemTopics/" + + global::System.Uri.EscapeDataString(systemTopicName) + + "/eventSubscriptions/" + + global::System.Uri.EscapeDataString(eventSubscriptionName) + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Method.Put, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // set body content + request.Content = new global::System.Net.Http.StringContent(null != body ? body.ToJson(null).ToString() : @"{}", global::System.Text.Encoding.UTF8); + request.Content.Headers.ContentType = global::System.Net.Http.Headers.MediaTypeHeaderValue.Parse("application/json"); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.BodyContentSet); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.SystemTopicEventSubscriptionsCreateOrUpdate_Call(request,onDefault,eventListener,sender); + } + } + + /// + /// Asynchronously creates or updates an event subscription with the specified parameters. Existing event subscriptions will + /// be updated with this API. + /// + /// + /// Event subscription properties containing the destination and filter information. + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task SystemTopicEventSubscriptionsCreateOrUpdateViaIdentity(global::System.String viaIdentity, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscription body, global::System.Func onDefault, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync sender) + { + var apiVersion = @"2021-10-15-preview"; + // Constant Parameters + using( NoSynchronizationContext ) + { + // verify that Identity format is an exact match for uri + + var _match = new global::System.Text.RegularExpressions.Regex("^/subscriptions/(?[^/]+)/resourceGroups/(?[^/]+)/providers/Microsoft.EventGrid/systemTopics/(?[^/]+)/eventSubscriptions/(?[^/]+)$", global::System.Text.RegularExpressions.RegexOptions.IgnoreCase).Match(viaIdentity); + if (!_match.Success) + { + throw new global::System.Exception("Invalid identity for URI '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.EventGrid/systemTopics/{systemTopicName}/eventSubscriptions/{eventSubscriptionName}'"); + } + + // replace URI parameters with values from identity + var subscriptionId = _match.Groups["subscriptionId"].Value; + var resourceGroupName = _match.Groups["resourceGroupName"].Value; + var systemTopicName = _match.Groups["systemTopicName"].Value; + var eventSubscriptionName = _match.Groups["eventSubscriptionName"].Value; + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + subscriptionId + + "/resourceGroups/" + + resourceGroupName + + "/providers/Microsoft.EventGrid/systemTopics/" + + systemTopicName + + "/eventSubscriptions/" + + eventSubscriptionName + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Method.Put, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // set body content + request.Content = new global::System.Net.Http.StringContent(null != body ? body.ToJson(null).ToString() : @"{}", global::System.Text.Encoding.UTF8); + request.Content.Headers.ContentType = global::System.Net.Http.Headers.MediaTypeHeaderValue.Parse("application/json"); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.BodyContentSet); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.SystemTopicEventSubscriptionsCreateOrUpdate_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.EventGrid.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + internal async global::System.Threading.Tasks.Task SystemTopicEventSubscriptionsCreateOrUpdate_Call(global::System.Net.Http.HttpRequestMessage request, global::System.Func onDefault, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync sender) + { + using( NoSynchronizationContext ) + { + global::System.Net.Http.HttpResponseMessage _response = null; + try + { + var sendTask = sender.SendAsync(request, eventListener); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.BeforeCall, request); if( eventListener.Token.IsCancellationRequested ) { return; } + _response = await sendTask; + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.ResponseCreated, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + // this operation supports x-ms-long-running-operation + var _originalUri = request.RequestUri.AbsoluteUri; + // declared final-state-via: default + var asyncOperation = _response.GetFirstHeader(@"Azure-AsyncOperation"); + var location = _response.GetFirstHeader(@"Location"); + while (request.Method == System.Net.Http.HttpMethod.Put && _response.StatusCode == global::System.Net.HttpStatusCode.OK || _response.StatusCode == global::System.Net.HttpStatusCode.Created || _response.StatusCode == global::System.Net.HttpStatusCode.Accepted ) + { + + // get the delay before polling. (default to 30 seconds if not present) + int delay = (int)(_response.Headers.RetryAfter?.Delta?.TotalSeconds ?? 30); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.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.EventGrid.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.EventGrid.Runtime.Json.JsonNode.Parse(await _response.Content.ReadAsStringAsync()) is Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Runtime.UndeclaredResponseException(_response); + } + } + + // check for terminal status code + if (_response.StatusCode == global::System.Net.HttpStatusCode.Created || _response.StatusCode == global::System.Net.HttpStatusCode.Accepted ) + { + continue; + } + // we are done polling, do a request on final target? + if (!string.IsNullOrWhiteSpace(_originalUri)) + { + // create a new request with the final uri + request = request.CloneAndDispose(new global::System.Uri(_originalUri), Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onDefault(_response); + break; + } + } + } + finally + { + // finally statements + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Finally, request, _response); + _response?.Dispose(); + request?.Dispose(); + } + } + } + + /// + /// Validation method for method. Call this like the actual call, + /// but you will get validation events back. + /// + /// Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription + /// ID forms part of the URI for every service call. + /// The name of the resource group within the user's subscription. + /// Name of the system topic. + /// Name of the event subscription to be created. Event subscription names must be between + /// 3 and 100 characters in length and use alphanumeric letters only. + /// Event subscription properties containing the destination and filter information. + /// an instance that will receive events. + /// + /// A that will be complete when handling of the response is completed. + /// + internal async global::System.Threading.Tasks.Task SystemTopicEventSubscriptionsCreateOrUpdate_Validate(string subscriptionId, string resourceGroupName, string systemTopicName, string eventSubscriptionName, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscription body, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener eventListener) + { + using( NoSynchronizationContext ) + { + await eventListener.AssertNotNull(nameof(subscriptionId),subscriptionId); + await eventListener.AssertNotNull(nameof(resourceGroupName),resourceGroupName); + await eventListener.AssertNotNull(nameof(systemTopicName),systemTopicName); + await eventListener.AssertNotNull(nameof(eventSubscriptionName),eventSubscriptionName); + await eventListener.AssertNotNull(nameof(body), body); + await eventListener.AssertObjectIsValid(nameof(body), body); + } + } + + /// Delete an existing event subscription of a system topic. + /// Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription + /// ID forms part of the URI for every service call. + /// The name of the resource group within the user's subscription. + /// Name of the system topic. + /// Name of the event subscription to be created. Event subscription names must be between + /// 3 and 100 characters in length and use alphanumeric letters only. + /// 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.EventGrid.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task SystemTopicEventSubscriptionsDelete(string subscriptionId, string resourceGroupName, string systemTopicName, string eventSubscriptionName, global::System.Func onOk, global::System.Func onNoContent, global::System.Func onDefault, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync sender) + { + var apiVersion = @"2021-10-15-preview"; + // Constant Parameters + using( NoSynchronizationContext ) + { + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + global::System.Uri.EscapeDataString(subscriptionId) + + "/resourceGroups/" + + global::System.Uri.EscapeDataString(resourceGroupName) + + "/providers/Microsoft.EventGrid/systemTopics/" + + global::System.Uri.EscapeDataString(systemTopicName) + + "/eventSubscriptions/" + + global::System.Uri.EscapeDataString(eventSubscriptionName) + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Method.Delete, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.SystemTopicEventSubscriptionsDelete_Call(request,onOk,onNoContent,onDefault,eventListener,sender); + } + } + + /// Delete an existing event subscription of a system topic. + /// + /// 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.EventGrid.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task SystemTopicEventSubscriptionsDeleteViaIdentity(global::System.String viaIdentity, global::System.Func onOk, global::System.Func onNoContent, global::System.Func onDefault, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync sender) + { + var apiVersion = @"2021-10-15-preview"; + // Constant Parameters + using( NoSynchronizationContext ) + { + // verify that Identity format is an exact match for uri + + var _match = new global::System.Text.RegularExpressions.Regex("^/subscriptions/(?[^/]+)/resourceGroups/(?[^/]+)/providers/Microsoft.EventGrid/systemTopics/(?[^/]+)/eventSubscriptions/(?[^/]+)$", global::System.Text.RegularExpressions.RegexOptions.IgnoreCase).Match(viaIdentity); + if (!_match.Success) + { + throw new global::System.Exception("Invalid identity for URI '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.EventGrid/systemTopics/{systemTopicName}/eventSubscriptions/{eventSubscriptionName}'"); + } + + // replace URI parameters with values from identity + var subscriptionId = _match.Groups["subscriptionId"].Value; + var resourceGroupName = _match.Groups["resourceGroupName"].Value; + var systemTopicName = _match.Groups["systemTopicName"].Value; + var eventSubscriptionName = _match.Groups["eventSubscriptionName"].Value; + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + subscriptionId + + "/resourceGroups/" + + resourceGroupName + + "/providers/Microsoft.EventGrid/systemTopics/" + + systemTopicName + + "/eventSubscriptions/" + + eventSubscriptionName + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Method.Delete, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.SystemTopicEventSubscriptionsDelete_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.EventGrid.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + internal async global::System.Threading.Tasks.Task SystemTopicEventSubscriptionsDelete_Call(global::System.Net.Http.HttpRequestMessage request, global::System.Func onOk, global::System.Func onNoContent, global::System.Func onDefault, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync sender) + { + using( NoSynchronizationContext ) + { + global::System.Net.Http.HttpResponseMessage _response = null; + try + { + var sendTask = sender.SendAsync(request, eventListener); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.BeforeCall, request); if( eventListener.Token.IsCancellationRequested ) { return; } + _response = await sendTask; + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.ResponseCreated, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + // this operation supports x-ms-long-running-operation + var _originalUri = request.RequestUri.AbsoluteUri; + // declared final-state-via: default + var _finalUri = _response.GetFirstHeader(@"Location"); + var asyncOperation = _response.GetFirstHeader(@"Azure-AsyncOperation"); + var location = _response.GetFirstHeader(@"Location"); + while (request.Method == System.Net.Http.HttpMethod.Put && _response.StatusCode == global::System.Net.HttpStatusCode.OK || _response.StatusCode == global::System.Net.HttpStatusCode.Created || _response.StatusCode == global::System.Net.HttpStatusCode.Accepted ) + { + + // get the delay before polling. (default to 30 seconds if not present) + int delay = (int)(_response.Headers.RetryAfter?.Delta?.TotalSeconds ?? 30); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.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.EventGrid.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.EventGrid.Runtime.Json.JsonNode.Parse(await _response.Content.ReadAsStringAsync()) is Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Runtime.UndeclaredResponseException(_response); + } + } + + // check for terminal status code + if (_response.StatusCode == global::System.Net.HttpStatusCode.Created || _response.StatusCode == global::System.Net.HttpStatusCode.Accepted ) + { + continue; + } + // we are done polling, do a request on final target? + if (!string.IsNullOrWhiteSpace(_finalUri)) + { + // create a new request with the final uri + request = request.CloneAndDispose(new global::System.Uri(_finalUri), Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.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.EventGrid.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onNoContent(_response); + break; + } + default: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onDefault(_response); + break; + } + } + } + finally + { + // finally statements + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Finally, request, _response); + _response?.Dispose(); + request?.Dispose(); + } + } + } + + /// + /// Validation method for method. Call this like the actual call, but you + /// will get validation events back. + /// + /// Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription + /// ID forms part of the URI for every service call. + /// The name of the resource group within the user's subscription. + /// Name of the system topic. + /// Name of the event subscription to be created. Event subscription names must be between + /// 3 and 100 characters in length and use alphanumeric letters only. + /// an instance that will receive events. + /// + /// A that will be complete when handling of the response is completed. + /// + internal async global::System.Threading.Tasks.Task SystemTopicEventSubscriptionsDelete_Validate(string subscriptionId, string resourceGroupName, string systemTopicName, string eventSubscriptionName, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener eventListener) + { + using( NoSynchronizationContext ) + { + await eventListener.AssertNotNull(nameof(subscriptionId),subscriptionId); + await eventListener.AssertNotNull(nameof(resourceGroupName),resourceGroupName); + await eventListener.AssertNotNull(nameof(systemTopicName),systemTopicName); + await eventListener.AssertNotNull(nameof(eventSubscriptionName),eventSubscriptionName); + } + } + + /// Get an event subscription. + /// Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription + /// ID forms part of the URI for every service call. + /// The name of the resource group within the user's subscription. + /// Name of the system topic. + /// Name of the event subscription to be created. Event subscription names must be between + /// 3 and 100 characters in length and use alphanumeric letters only. + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task SystemTopicEventSubscriptionsGet(string subscriptionId, string resourceGroupName, string systemTopicName, string eventSubscriptionName, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func onDefault, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync sender) + { + var apiVersion = @"2021-10-15-preview"; + // Constant Parameters + using( NoSynchronizationContext ) + { + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + global::System.Uri.EscapeDataString(subscriptionId) + + "/resourceGroups/" + + global::System.Uri.EscapeDataString(resourceGroupName) + + "/providers/Microsoft.EventGrid/systemTopics/" + + global::System.Uri.EscapeDataString(systemTopicName) + + "/eventSubscriptions/" + + global::System.Uri.EscapeDataString(eventSubscriptionName) + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Method.Get, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.SystemTopicEventSubscriptionsGet_Call(request,onOk,onDefault,eventListener,sender); + } + } + + /// Get all delivery attributes for an event subscription. + /// Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription + /// ID forms part of the URI for every service call. + /// The name of the resource group within the user's subscription. + /// Name of the system topic. + /// Name of the event subscription to be created. Event subscription names must be between + /// 3 and 100 characters in length and use alphanumeric letters only. + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task SystemTopicEventSubscriptionsGetDeliveryAttributes(string subscriptionId, string resourceGroupName, string systemTopicName, string eventSubscriptionName, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func onDefault, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync sender) + { + var apiVersion = @"2021-10-15-preview"; + // Constant Parameters + using( NoSynchronizationContext ) + { + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + global::System.Uri.EscapeDataString(subscriptionId) + + "/resourceGroups/" + + global::System.Uri.EscapeDataString(resourceGroupName) + + "/providers/Microsoft.EventGrid/systemTopics/" + + global::System.Uri.EscapeDataString(systemTopicName) + + "/eventSubscriptions/" + + global::System.Uri.EscapeDataString(eventSubscriptionName) + + "/getDeliveryAttributes" + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Method.Post, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.SystemTopicEventSubscriptionsGetDeliveryAttributes_Call(request,onOk,onDefault,eventListener,sender); + } + } + + /// Get all delivery attributes for an event 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.EventGrid.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task SystemTopicEventSubscriptionsGetDeliveryAttributesViaIdentity(global::System.String viaIdentity, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func onDefault, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync sender) + { + var apiVersion = @"2021-10-15-preview"; + // Constant Parameters + using( NoSynchronizationContext ) + { + // verify that Identity format is an exact match for uri + + var _match = new global::System.Text.RegularExpressions.Regex("^/subscriptions/(?[^/]+)/resourceGroups/(?[^/]+)/providers/Microsoft.EventGrid/systemTopics/(?[^/]+)/eventSubscriptions/(?[^/]+)/getDeliveryAttributes$", global::System.Text.RegularExpressions.RegexOptions.IgnoreCase).Match(viaIdentity); + if (!_match.Success) + { + throw new global::System.Exception("Invalid identity for URI '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.EventGrid/systemTopics/{systemTopicName}/eventSubscriptions/{eventSubscriptionName}/getDeliveryAttributes'"); + } + + // replace URI parameters with values from identity + var subscriptionId = _match.Groups["subscriptionId"].Value; + var resourceGroupName = _match.Groups["resourceGroupName"].Value; + var systemTopicName = _match.Groups["systemTopicName"].Value; + var eventSubscriptionName = _match.Groups["eventSubscriptionName"].Value; + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + subscriptionId + + "/resourceGroups/" + + resourceGroupName + + "/providers/Microsoft.EventGrid/systemTopics/" + + systemTopicName + + "/eventSubscriptions/" + + eventSubscriptionName + + "/getDeliveryAttributes" + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Method.Post, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.SystemTopicEventSubscriptionsGetDeliveryAttributes_Call(request,onOk,onDefault,eventListener,sender); + } + } + + /// + /// Actual wire call for method. + /// + /// the prepared HttpRequestMessage to send. + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + internal async global::System.Threading.Tasks.Task SystemTopicEventSubscriptionsGetDeliveryAttributes_Call(global::System.Net.Http.HttpRequestMessage request, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func onDefault, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync sender) + { + using( NoSynchronizationContext ) + { + global::System.Net.Http.HttpResponseMessage _response = null; + try + { + var sendTask = sender.SendAsync(request, eventListener); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.BeforeCall, request); if( eventListener.Token.IsCancellationRequested ) { return; } + _response = await sendTask; + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.ResponseCreated, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + var _contentType = _response.Content.Headers.ContentType?.MediaType; + + switch ( _response.StatusCode ) + { + case global::System.Net.HttpStatusCode.OK: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onOk(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.DeliveryAttributeListResult.FromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + default: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onDefault(_response); + break; + } + } + } + finally + { + // finally statements + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Finally, request, _response); + _response?.Dispose(); + request?.Dispose(); + } + } + } + + /// + /// Validation method for method. Call this like the actual + /// call, but you will get validation events back. + /// + /// Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription + /// ID forms part of the URI for every service call. + /// The name of the resource group within the user's subscription. + /// Name of the system topic. + /// Name of the event subscription to be created. Event subscription names must be between + /// 3 and 100 characters in length and use alphanumeric letters only. + /// an instance that will receive events. + /// + /// A that will be complete when handling of the response is completed. + /// + internal async global::System.Threading.Tasks.Task SystemTopicEventSubscriptionsGetDeliveryAttributes_Validate(string subscriptionId, string resourceGroupName, string systemTopicName, string eventSubscriptionName, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener eventListener) + { + using( NoSynchronizationContext ) + { + await eventListener.AssertNotNull(nameof(subscriptionId),subscriptionId); + await eventListener.AssertNotNull(nameof(resourceGroupName),resourceGroupName); + await eventListener.AssertNotNull(nameof(systemTopicName),systemTopicName); + await eventListener.AssertNotNull(nameof(eventSubscriptionName),eventSubscriptionName); + } + } + + /// Get the full endpoint URL for an event subscription of a system topic. + /// Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription + /// ID forms part of the URI for every service call. + /// The name of the resource group within the user's subscription. + /// Name of the system topic. + /// Name of the event subscription to be created. Event subscription names must be between + /// 3 and 100 characters in length and use alphanumeric letters only. + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task SystemTopicEventSubscriptionsGetFullUrl(string subscriptionId, string resourceGroupName, string systemTopicName, string eventSubscriptionName, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func onDefault, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync sender) + { + var apiVersion = @"2021-10-15-preview"; + // Constant Parameters + using( NoSynchronizationContext ) + { + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + global::System.Uri.EscapeDataString(subscriptionId) + + "/resourceGroups/" + + global::System.Uri.EscapeDataString(resourceGroupName) + + "/providers/Microsoft.EventGrid/systemTopics/" + + global::System.Uri.EscapeDataString(systemTopicName) + + "/eventSubscriptions/" + + global::System.Uri.EscapeDataString(eventSubscriptionName) + + "/getFullUrl" + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Method.Post, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.SystemTopicEventSubscriptionsGetFullUrl_Call(request,onOk,onDefault,eventListener,sender); + } + } + + /// Get the full endpoint URL for an event subscription of a system topic. + /// + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task SystemTopicEventSubscriptionsGetFullUrlViaIdentity(global::System.String viaIdentity, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func onDefault, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync sender) + { + var apiVersion = @"2021-10-15-preview"; + // Constant Parameters + using( NoSynchronizationContext ) + { + // verify that Identity format is an exact match for uri + + var _match = new global::System.Text.RegularExpressions.Regex("^/subscriptions/(?[^/]+)/resourceGroups/(?[^/]+)/providers/Microsoft.EventGrid/systemTopics/(?[^/]+)/eventSubscriptions/(?[^/]+)/getFullUrl$", global::System.Text.RegularExpressions.RegexOptions.IgnoreCase).Match(viaIdentity); + if (!_match.Success) + { + throw new global::System.Exception("Invalid identity for URI '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.EventGrid/systemTopics/{systemTopicName}/eventSubscriptions/{eventSubscriptionName}/getFullUrl'"); + } + + // replace URI parameters with values from identity + var subscriptionId = _match.Groups["subscriptionId"].Value; + var resourceGroupName = _match.Groups["resourceGroupName"].Value; + var systemTopicName = _match.Groups["systemTopicName"].Value; + var eventSubscriptionName = _match.Groups["eventSubscriptionName"].Value; + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + subscriptionId + + "/resourceGroups/" + + resourceGroupName + + "/providers/Microsoft.EventGrid/systemTopics/" + + systemTopicName + + "/eventSubscriptions/" + + eventSubscriptionName + + "/getFullUrl" + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Method.Post, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.SystemTopicEventSubscriptionsGetFullUrl_Call(request,onOk,onDefault,eventListener,sender); + } + } + + /// + /// Actual wire call for method. + /// + /// the prepared HttpRequestMessage to send. + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + internal async global::System.Threading.Tasks.Task SystemTopicEventSubscriptionsGetFullUrl_Call(global::System.Net.Http.HttpRequestMessage request, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func onDefault, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync sender) + { + using( NoSynchronizationContext ) + { + global::System.Net.Http.HttpResponseMessage _response = null; + try + { + var sendTask = sender.SendAsync(request, eventListener); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.BeforeCall, request); if( eventListener.Token.IsCancellationRequested ) { return; } + _response = await sendTask; + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.ResponseCreated, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + var _contentType = _response.Content.Headers.ContentType?.MediaType; + + switch ( _response.StatusCode ) + { + case global::System.Net.HttpStatusCode.OK: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onOk(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.EventSubscriptionFullUrl.FromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + default: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onDefault(_response); + break; + } + } + } + finally + { + // finally statements + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Finally, request, _response); + _response?.Dispose(); + request?.Dispose(); + } + } + } + + /// + /// Validation method for method. Call this like the actual call, but + /// you will get validation events back. + /// + /// Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription + /// ID forms part of the URI for every service call. + /// The name of the resource group within the user's subscription. + /// Name of the system topic. + /// Name of the event subscription to be created. Event subscription names must be between + /// 3 and 100 characters in length and use alphanumeric letters only. + /// an instance that will receive events. + /// + /// A that will be complete when handling of the response is completed. + /// + internal async global::System.Threading.Tasks.Task SystemTopicEventSubscriptionsGetFullUrl_Validate(string subscriptionId, string resourceGroupName, string systemTopicName, string eventSubscriptionName, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener eventListener) + { + using( NoSynchronizationContext ) + { + await eventListener.AssertNotNull(nameof(subscriptionId),subscriptionId); + await eventListener.AssertNotNull(nameof(resourceGroupName),resourceGroupName); + await eventListener.AssertNotNull(nameof(systemTopicName),systemTopicName); + await eventListener.AssertNotNull(nameof(eventSubscriptionName),eventSubscriptionName); + } + } + + /// Get an event 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.EventGrid.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task SystemTopicEventSubscriptionsGetViaIdentity(global::System.String viaIdentity, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func onDefault, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync sender) + { + var apiVersion = @"2021-10-15-preview"; + // Constant Parameters + using( NoSynchronizationContext ) + { + // verify that Identity format is an exact match for uri + + var _match = new global::System.Text.RegularExpressions.Regex("^/subscriptions/(?[^/]+)/resourceGroups/(?[^/]+)/providers/Microsoft.EventGrid/systemTopics/(?[^/]+)/eventSubscriptions/(?[^/]+)$", global::System.Text.RegularExpressions.RegexOptions.IgnoreCase).Match(viaIdentity); + if (!_match.Success) + { + throw new global::System.Exception("Invalid identity for URI '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.EventGrid/systemTopics/{systemTopicName}/eventSubscriptions/{eventSubscriptionName}'"); + } + + // replace URI parameters with values from identity + var subscriptionId = _match.Groups["subscriptionId"].Value; + var resourceGroupName = _match.Groups["resourceGroupName"].Value; + var systemTopicName = _match.Groups["systemTopicName"].Value; + var eventSubscriptionName = _match.Groups["eventSubscriptionName"].Value; + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + subscriptionId + + "/resourceGroups/" + + resourceGroupName + + "/providers/Microsoft.EventGrid/systemTopics/" + + systemTopicName + + "/eventSubscriptions/" + + eventSubscriptionName + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Method.Get, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.SystemTopicEventSubscriptionsGet_Call(request,onOk,onDefault,eventListener,sender); + } + } + + /// Actual wire call for method. + /// the prepared HttpRequestMessage to send. + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + internal async global::System.Threading.Tasks.Task SystemTopicEventSubscriptionsGet_Call(global::System.Net.Http.HttpRequestMessage request, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func onDefault, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync sender) + { + using( NoSynchronizationContext ) + { + global::System.Net.Http.HttpResponseMessage _response = null; + try + { + var sendTask = sender.SendAsync(request, eventListener); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.BeforeCall, request); if( eventListener.Token.IsCancellationRequested ) { return; } + _response = await sendTask; + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.ResponseCreated, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + var _contentType = _response.Content.Headers.ContentType?.MediaType; + + switch ( _response.StatusCode ) + { + case global::System.Net.HttpStatusCode.OK: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onOk(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.EventSubscription.FromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + default: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onDefault(_response); + break; + } + } + } + finally + { + // finally statements + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Finally, request, _response); + _response?.Dispose(); + request?.Dispose(); + } + } + } + + /// + /// Validation method for method. Call this like the actual call, but you + /// will get validation events back. + /// + /// Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription + /// ID forms part of the URI for every service call. + /// The name of the resource group within the user's subscription. + /// Name of the system topic. + /// Name of the event subscription to be created. Event subscription names must be between + /// 3 and 100 characters in length and use alphanumeric letters only. + /// an instance that will receive events. + /// + /// A that will be complete when handling of the response is completed. + /// + internal async global::System.Threading.Tasks.Task SystemTopicEventSubscriptionsGet_Validate(string subscriptionId, string resourceGroupName, string systemTopicName, string eventSubscriptionName, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener eventListener) + { + using( NoSynchronizationContext ) + { + await eventListener.AssertNotNull(nameof(subscriptionId),subscriptionId); + await eventListener.AssertNotNull(nameof(resourceGroupName),resourceGroupName); + await eventListener.AssertNotNull(nameof(systemTopicName),systemTopicName); + await eventListener.AssertNotNull(nameof(eventSubscriptionName),eventSubscriptionName); + } + } + + /// List event subscriptions that belong to a specific system topic. + /// Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription + /// ID forms part of the URI for every service call. + /// The name of the resource group within the user's subscription. + /// Name of the system topic. + /// The query used to filter the search results using OData syntax. Filtering is permitted on the 'name' + /// property only and with limited number of OData operations. These operations are: the 'contains' function as well as the + /// following logical operations: not, and, or, eq (for equal), and ne (for not equal). No arithmetic operations are supported. + /// The following is a valid filter example: $filter=contains(namE, 'PATTERN') and name ne 'PATTERN-1'. The following is not + /// a valid filter example: $filter=location eq 'westus'. + /// The number of results to return per page for the list operation. Valid range for top parameter is 1 + /// to 100. If not specified, the default number of results to be returned is 20 items per page. + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task SystemTopicEventSubscriptionsListBySystemTopic(string subscriptionId, string resourceGroupName, string systemTopicName, string Filter, int? Top, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func onDefault, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync sender) + { + var apiVersion = @"2021-10-15-preview"; + // Constant Parameters + using( NoSynchronizationContext ) + { + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + global::System.Uri.EscapeDataString(subscriptionId) + + "/resourceGroups/" + + global::System.Uri.EscapeDataString(resourceGroupName) + + "/providers/Microsoft.EventGrid/systemTopics/" + + global::System.Uri.EscapeDataString(systemTopicName) + + "/eventSubscriptions" + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + + "&" + + (string.IsNullOrEmpty(Filter) ? global::System.String.Empty : "$filter=" + global::System.Uri.EscapeDataString(Filter)) + + "&" + + (null == Top ? global::System.String.Empty : "$top=" + global::System.Uri.EscapeDataString(Top.ToString())) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Method.Get, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.SystemTopicEventSubscriptionsListBySystemTopic_Call(request,onOk,onDefault,eventListener,sender); + } + } + + /// List event subscriptions that belong to a specific system topic. + /// + /// The query used to filter the search results using OData syntax. Filtering is permitted on the 'name' + /// property only and with limited number of OData operations. These operations are: the 'contains' function as well as the + /// following logical operations: not, and, or, eq (for equal), and ne (for not equal). No arithmetic operations are supported. + /// The following is a valid filter example: $filter=contains(namE, 'PATTERN') and name ne 'PATTERN-1'. The following is not + /// a valid filter example: $filter=location eq 'westus'. + /// The number of results to return per page for the list operation. Valid range for top parameter is 1 + /// to 100. If not specified, the default number of results to be returned is 20 items per page. + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task SystemTopicEventSubscriptionsListBySystemTopicViaIdentity(global::System.String viaIdentity, string Filter, int? Top, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func onDefault, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync sender) + { + var apiVersion = @"2021-10-15-preview"; + // Constant Parameters + using( NoSynchronizationContext ) + { + // verify that Identity format is an exact match for uri + + var _match = new global::System.Text.RegularExpressions.Regex("^/subscriptions/(?[^/]+)/resourceGroups/(?[^/]+)/providers/Microsoft.EventGrid/systemTopics/(?[^/]+)/eventSubscriptions$", global::System.Text.RegularExpressions.RegexOptions.IgnoreCase).Match(viaIdentity); + if (!_match.Success) + { + throw new global::System.Exception("Invalid identity for URI '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.EventGrid/systemTopics/{systemTopicName}/eventSubscriptions'"); + } + + // replace URI parameters with values from identity + var subscriptionId = _match.Groups["subscriptionId"].Value; + var resourceGroupName = _match.Groups["resourceGroupName"].Value; + var systemTopicName = _match.Groups["systemTopicName"].Value; + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + subscriptionId + + "/resourceGroups/" + + resourceGroupName + + "/providers/Microsoft.EventGrid/systemTopics/" + + systemTopicName + + "/eventSubscriptions" + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + + "&" + + (string.IsNullOrEmpty(Filter) ? global::System.String.Empty : "$filter=" + global::System.Uri.EscapeDataString(Filter)) + + "&" + + (null == Top ? global::System.String.Empty : "$top=" + global::System.Uri.EscapeDataString(Top.ToString())) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Method.Get, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.SystemTopicEventSubscriptionsListBySystemTopic_Call(request,onOk,onDefault,eventListener,sender); + } + } + + /// + /// Actual wire call for method. + /// + /// the prepared HttpRequestMessage to send. + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + internal async global::System.Threading.Tasks.Task SystemTopicEventSubscriptionsListBySystemTopic_Call(global::System.Net.Http.HttpRequestMessage request, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func onDefault, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync sender) + { + using( NoSynchronizationContext ) + { + global::System.Net.Http.HttpResponseMessage _response = null; + try + { + var sendTask = sender.SendAsync(request, eventListener); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.BeforeCall, request); if( eventListener.Token.IsCancellationRequested ) { return; } + _response = await sendTask; + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.ResponseCreated, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + var _contentType = _response.Content.Headers.ContentType?.MediaType; + + switch ( _response.StatusCode ) + { + case global::System.Net.HttpStatusCode.OK: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onOk(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.EventSubscriptionsListResult.FromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + default: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onDefault(_response); + break; + } + } + } + finally + { + // finally statements + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Finally, request, _response); + _response?.Dispose(); + request?.Dispose(); + } + } + } + + /// + /// Validation method for method. Call this like the actual + /// call, but you will get validation events back. + /// + /// Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription + /// ID forms part of the URI for every service call. + /// The name of the resource group within the user's subscription. + /// Name of the system topic. + /// The query used to filter the search results using OData syntax. Filtering is permitted on the 'name' + /// property only and with limited number of OData operations. These operations are: the 'contains' function as well as the + /// following logical operations: not, and, or, eq (for equal), and ne (for not equal). No arithmetic operations are supported. + /// The following is a valid filter example: $filter=contains(namE, 'PATTERN') and name ne 'PATTERN-1'. The following is not + /// a valid filter example: $filter=location eq 'westus'. + /// The number of results to return per page for the list operation. Valid range for top parameter is 1 + /// to 100. If not specified, the default number of results to be returned is 20 items per page. + /// an instance that will receive events. + /// + /// A that will be complete when handling of the response is completed. + /// + internal async global::System.Threading.Tasks.Task SystemTopicEventSubscriptionsListBySystemTopic_Validate(string subscriptionId, string resourceGroupName, string systemTopicName, string Filter, int? Top, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener eventListener) + { + using( NoSynchronizationContext ) + { + await eventListener.AssertNotNull(nameof(subscriptionId),subscriptionId); + await eventListener.AssertNotNull(nameof(resourceGroupName),resourceGroupName); + await eventListener.AssertNotNull(nameof(systemTopicName),systemTopicName); + await eventListener.AssertNotNull(nameof(Filter),Filter); + } + } + + /// Update an existing event subscription of a system topic. + /// Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription + /// ID forms part of the URI for every service call. + /// The name of the resource group within the user's subscription. + /// Name of the system topic. + /// Name of the event subscription to be created. Event subscription names must be between + /// 3 and 100 characters in length and use alphanumeric letters only. + /// Updated event subscription information. + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task SystemTopicEventSubscriptionsUpdate(string subscriptionId, string resourceGroupName, string systemTopicName, string eventSubscriptionName, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionUpdateParameters body, global::System.Func onDefault, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync sender) + { + var apiVersion = @"2021-10-15-preview"; + // Constant Parameters + using( NoSynchronizationContext ) + { + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + global::System.Uri.EscapeDataString(subscriptionId) + + "/resourceGroups/" + + global::System.Uri.EscapeDataString(resourceGroupName) + + "/providers/Microsoft.EventGrid/systemTopics/" + + global::System.Uri.EscapeDataString(systemTopicName) + + "/eventSubscriptions/" + + global::System.Uri.EscapeDataString(eventSubscriptionName) + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Method.Patch, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // set body content + request.Content = new global::System.Net.Http.StringContent(null != body ? body.ToJson(null).ToString() : @"{}", global::System.Text.Encoding.UTF8); + request.Content.Headers.ContentType = global::System.Net.Http.Headers.MediaTypeHeaderValue.Parse("application/json"); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.BodyContentSet); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.SystemTopicEventSubscriptionsUpdate_Call(request,onDefault,eventListener,sender); + } + } + + /// Update an existing event subscription of a system topic. + /// + /// Updated event subscription information. + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task SystemTopicEventSubscriptionsUpdateViaIdentity(global::System.String viaIdentity, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionUpdateParameters body, global::System.Func onDefault, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync sender) + { + var apiVersion = @"2021-10-15-preview"; + // Constant Parameters + using( NoSynchronizationContext ) + { + // verify that Identity format is an exact match for uri + + var _match = new global::System.Text.RegularExpressions.Regex("^/subscriptions/(?[^/]+)/resourceGroups/(?[^/]+)/providers/Microsoft.EventGrid/systemTopics/(?[^/]+)/eventSubscriptions/(?[^/]+)$", global::System.Text.RegularExpressions.RegexOptions.IgnoreCase).Match(viaIdentity); + if (!_match.Success) + { + throw new global::System.Exception("Invalid identity for URI '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.EventGrid/systemTopics/{systemTopicName}/eventSubscriptions/{eventSubscriptionName}'"); + } + + // replace URI parameters with values from identity + var subscriptionId = _match.Groups["subscriptionId"].Value; + var resourceGroupName = _match.Groups["resourceGroupName"].Value; + var systemTopicName = _match.Groups["systemTopicName"].Value; + var eventSubscriptionName = _match.Groups["eventSubscriptionName"].Value; + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + subscriptionId + + "/resourceGroups/" + + resourceGroupName + + "/providers/Microsoft.EventGrid/systemTopics/" + + systemTopicName + + "/eventSubscriptions/" + + eventSubscriptionName + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Method.Patch, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // set body content + request.Content = new global::System.Net.Http.StringContent(null != body ? body.ToJson(null).ToString() : @"{}", global::System.Text.Encoding.UTF8); + request.Content.Headers.ContentType = global::System.Net.Http.Headers.MediaTypeHeaderValue.Parse("application/json"); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.BodyContentSet); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.SystemTopicEventSubscriptionsUpdate_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.EventGrid.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + internal async global::System.Threading.Tasks.Task SystemTopicEventSubscriptionsUpdate_Call(global::System.Net.Http.HttpRequestMessage request, global::System.Func onDefault, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync sender) + { + using( NoSynchronizationContext ) + { + global::System.Net.Http.HttpResponseMessage _response = null; + try + { + var sendTask = sender.SendAsync(request, eventListener); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.BeforeCall, request); if( eventListener.Token.IsCancellationRequested ) { return; } + _response = await sendTask; + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.ResponseCreated, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + // this operation supports x-ms-long-running-operation + var _originalUri = request.RequestUri.AbsoluteUri; + // declared final-state-via: default + var asyncOperation = _response.GetFirstHeader(@"Azure-AsyncOperation"); + var location = _response.GetFirstHeader(@"Location"); + while (request.Method == System.Net.Http.HttpMethod.Put && _response.StatusCode == global::System.Net.HttpStatusCode.OK || _response.StatusCode == global::System.Net.HttpStatusCode.Created || _response.StatusCode == global::System.Net.HttpStatusCode.Accepted ) + { + + // get the delay before polling. (default to 30 seconds if not present) + int delay = (int)(_response.Headers.RetryAfter?.Delta?.TotalSeconds ?? 30); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.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.EventGrid.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.EventGrid.Runtime.Json.JsonNode.Parse(await _response.Content.ReadAsStringAsync()) is Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Runtime.UndeclaredResponseException(_response); + } + } + + // check for terminal status code + if (_response.StatusCode == global::System.Net.HttpStatusCode.Created || _response.StatusCode == global::System.Net.HttpStatusCode.Accepted ) + { + continue; + } + // we are done polling, do a request on final target? + if (!string.IsNullOrWhiteSpace(_originalUri)) + { + // create a new request with the final uri + request = request.CloneAndDispose(new global::System.Uri(_originalUri), Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onDefault(_response); + break; + } + } + } + finally + { + // finally statements + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Finally, request, _response); + _response?.Dispose(); + request?.Dispose(); + } + } + } + + /// + /// Validation method for method. Call this like the actual call, but you + /// will get validation events back. + /// + /// Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription + /// ID forms part of the URI for every service call. + /// The name of the resource group within the user's subscription. + /// Name of the system topic. + /// Name of the event subscription to be created. Event subscription names must be between + /// 3 and 100 characters in length and use alphanumeric letters only. + /// Updated event subscription information. + /// an instance that will receive events. + /// + /// A that will be complete when handling of the response is completed. + /// + internal async global::System.Threading.Tasks.Task SystemTopicEventSubscriptionsUpdate_Validate(string subscriptionId, string resourceGroupName, string systemTopicName, string eventSubscriptionName, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionUpdateParameters body, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener eventListener) + { + using( NoSynchronizationContext ) + { + await eventListener.AssertNotNull(nameof(subscriptionId),subscriptionId); + await eventListener.AssertNotNull(nameof(resourceGroupName),resourceGroupName); + await eventListener.AssertNotNull(nameof(systemTopicName),systemTopicName); + await eventListener.AssertNotNull(nameof(eventSubscriptionName),eventSubscriptionName); + await eventListener.AssertNotNull(nameof(body), body); + await eventListener.AssertObjectIsValid(nameof(body), body); + } + } + + /// Asynchronously creates a new system topic with the specified parameters. + /// Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription + /// ID forms part of the URI for every service call. + /// The name of the resource group within the user's subscription. + /// Name of the system topic. + /// System Topic information. + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task SystemTopicsCreateOrUpdate(string subscriptionId, string resourceGroupName, string systemTopicName, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ISystemTopic body, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func onDefault, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync sender) + { + var apiVersion = @"2021-10-15-preview"; + // Constant Parameters + using( NoSynchronizationContext ) + { + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + global::System.Uri.EscapeDataString(subscriptionId) + + "/resourceGroups/" + + global::System.Uri.EscapeDataString(resourceGroupName) + + "/providers/Microsoft.EventGrid/systemTopics/" + + global::System.Uri.EscapeDataString(systemTopicName) + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Method.Put, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // set body content + request.Content = new global::System.Net.Http.StringContent(null != body ? body.ToJson(null).ToString() : @"{}", global::System.Text.Encoding.UTF8); + request.Content.Headers.ContentType = global::System.Net.Http.Headers.MediaTypeHeaderValue.Parse("application/json"); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.BodyContentSet); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.SystemTopicsCreateOrUpdate_Call(request,onOk,onDefault,eventListener,sender); + } + } + + /// Asynchronously creates a new system topic with the specified parameters. + /// + /// System Topic information. + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task SystemTopicsCreateOrUpdateViaIdentity(global::System.String viaIdentity, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ISystemTopic body, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func onDefault, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync sender) + { + var apiVersion = @"2021-10-15-preview"; + // Constant Parameters + using( NoSynchronizationContext ) + { + // verify that Identity format is an exact match for uri + + var _match = new global::System.Text.RegularExpressions.Regex("^/subscriptions/(?[^/]+)/resourceGroups/(?[^/]+)/providers/Microsoft.EventGrid/systemTopics/(?[^/]+)$", global::System.Text.RegularExpressions.RegexOptions.IgnoreCase).Match(viaIdentity); + if (!_match.Success) + { + throw new global::System.Exception("Invalid identity for URI '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.EventGrid/systemTopics/{systemTopicName}'"); + } + + // replace URI parameters with values from identity + var subscriptionId = _match.Groups["subscriptionId"].Value; + var resourceGroupName = _match.Groups["resourceGroupName"].Value; + var systemTopicName = _match.Groups["systemTopicName"].Value; + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + subscriptionId + + "/resourceGroups/" + + resourceGroupName + + "/providers/Microsoft.EventGrid/systemTopics/" + + systemTopicName + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Method.Put, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // set body content + request.Content = new global::System.Net.Http.StringContent(null != body ? body.ToJson(null).ToString() : @"{}", global::System.Text.Encoding.UTF8); + request.Content.Headers.ContentType = global::System.Net.Http.Headers.MediaTypeHeaderValue.Parse("application/json"); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.BodyContentSet); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.SystemTopicsCreateOrUpdate_Call(request,onOk,onDefault,eventListener,sender); + } + } + + /// Actual wire call for method. + /// the prepared HttpRequestMessage to send. + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + internal async global::System.Threading.Tasks.Task SystemTopicsCreateOrUpdate_Call(global::System.Net.Http.HttpRequestMessage request, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func onDefault, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync sender) + { + using( NoSynchronizationContext ) + { + global::System.Net.Http.HttpResponseMessage _response = null; + try + { + var sendTask = sender.SendAsync(request, eventListener); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.BeforeCall, request); if( eventListener.Token.IsCancellationRequested ) { return; } + _response = await sendTask; + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.ResponseCreated, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + // this operation supports x-ms-long-running-operation + var _originalUri = request.RequestUri.AbsoluteUri; + // declared final-state-via: default + var asyncOperation = _response.GetFirstHeader(@"Azure-AsyncOperation"); + var location = _response.GetFirstHeader(@"Location"); + while (request.Method == System.Net.Http.HttpMethod.Put && _response.StatusCode == global::System.Net.HttpStatusCode.OK || _response.StatusCode == global::System.Net.HttpStatusCode.Created || _response.StatusCode == global::System.Net.HttpStatusCode.Accepted ) + { + + // get the delay before polling. (default to 30 seconds if not present) + int delay = (int)(_response.Headers.RetryAfter?.Delta?.TotalSeconds ?? 30); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.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.EventGrid.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.EventGrid.Runtime.Json.JsonNode.Parse(await _response.Content.ReadAsStringAsync()) is Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Runtime.UndeclaredResponseException(_response); + } + } + + // check for terminal status code + if (_response.StatusCode == global::System.Net.HttpStatusCode.Created || _response.StatusCode == global::System.Net.HttpStatusCode.Accepted ) + { + continue; + } + // we are done polling, do a request on final target? + if (!string.IsNullOrWhiteSpace(_originalUri)) + { + // create a new request with the final uri + request = request.CloneAndDispose(new global::System.Uri(_originalUri), Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onOk(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.SystemTopic.FromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + default: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onDefault(_response); + break; + } + } + } + finally + { + // finally statements + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Finally, request, _response); + _response?.Dispose(); + request?.Dispose(); + } + } + } + + /// + /// Validation method for method. Call this like the actual call, but you will get + /// validation events back. + /// + /// Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription + /// ID forms part of the URI for every service call. + /// The name of the resource group within the user's subscription. + /// Name of the system topic. + /// System Topic information. + /// an instance that will receive events. + /// + /// A that will be complete when handling of the response is completed. + /// + internal async global::System.Threading.Tasks.Task SystemTopicsCreateOrUpdate_Validate(string subscriptionId, string resourceGroupName, string systemTopicName, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ISystemTopic body, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener eventListener) + { + using( NoSynchronizationContext ) + { + await eventListener.AssertNotNull(nameof(subscriptionId),subscriptionId); + await eventListener.AssertNotNull(nameof(resourceGroupName),resourceGroupName); + await eventListener.AssertNotNull(nameof(systemTopicName),systemTopicName); + await eventListener.AssertNotNull(nameof(body), body); + await eventListener.AssertObjectIsValid(nameof(body), body); + } + } + + /// Delete existing system topic. + /// Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription + /// ID forms part of the URI for every service call. + /// The name of the resource group within the user's subscription. + /// Name of the system topic. + /// 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.EventGrid.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task SystemTopicsDelete(string subscriptionId, string resourceGroupName, string systemTopicName, global::System.Func onOk, global::System.Func onNoContent, global::System.Func onDefault, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync sender) + { + var apiVersion = @"2021-10-15-preview"; + // Constant Parameters + using( NoSynchronizationContext ) + { + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + global::System.Uri.EscapeDataString(subscriptionId) + + "/resourceGroups/" + + global::System.Uri.EscapeDataString(resourceGroupName) + + "/providers/Microsoft.EventGrid/systemTopics/" + + global::System.Uri.EscapeDataString(systemTopicName) + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Method.Delete, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.SystemTopicsDelete_Call(request,onOk,onNoContent,onDefault,eventListener,sender); + } + } + + /// Delete existing system topic. + /// + /// 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.EventGrid.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task SystemTopicsDeleteViaIdentity(global::System.String viaIdentity, global::System.Func onOk, global::System.Func onNoContent, global::System.Func onDefault, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync sender) + { + var apiVersion = @"2021-10-15-preview"; + // Constant Parameters + using( NoSynchronizationContext ) + { + // verify that Identity format is an exact match for uri + + var _match = new global::System.Text.RegularExpressions.Regex("^/subscriptions/(?[^/]+)/resourceGroups/(?[^/]+)/providers/Microsoft.EventGrid/systemTopics/(?[^/]+)$", global::System.Text.RegularExpressions.RegexOptions.IgnoreCase).Match(viaIdentity); + if (!_match.Success) + { + throw new global::System.Exception("Invalid identity for URI '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.EventGrid/systemTopics/{systemTopicName}'"); + } + + // replace URI parameters with values from identity + var subscriptionId = _match.Groups["subscriptionId"].Value; + var resourceGroupName = _match.Groups["resourceGroupName"].Value; + var systemTopicName = _match.Groups["systemTopicName"].Value; + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + subscriptionId + + "/resourceGroups/" + + resourceGroupName + + "/providers/Microsoft.EventGrid/systemTopics/" + + systemTopicName + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Method.Delete, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.SystemTopicsDelete_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.EventGrid.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + internal async global::System.Threading.Tasks.Task SystemTopicsDelete_Call(global::System.Net.Http.HttpRequestMessage request, global::System.Func onOk, global::System.Func onNoContent, global::System.Func onDefault, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync sender) + { + using( NoSynchronizationContext ) + { + global::System.Net.Http.HttpResponseMessage _response = null; + try + { + var sendTask = sender.SendAsync(request, eventListener); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.BeforeCall, request); if( eventListener.Token.IsCancellationRequested ) { return; } + _response = await sendTask; + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.ResponseCreated, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + // this operation supports x-ms-long-running-operation + var _originalUri = request.RequestUri.AbsoluteUri; + // declared final-state-via: default + var _finalUri = _response.GetFirstHeader(@"Location"); + var asyncOperation = _response.GetFirstHeader(@"Azure-AsyncOperation"); + var location = _response.GetFirstHeader(@"Location"); + while (request.Method == System.Net.Http.HttpMethod.Put && _response.StatusCode == global::System.Net.HttpStatusCode.OK || _response.StatusCode == global::System.Net.HttpStatusCode.Created || _response.StatusCode == global::System.Net.HttpStatusCode.Accepted ) + { + + // get the delay before polling. (default to 30 seconds if not present) + int delay = (int)(_response.Headers.RetryAfter?.Delta?.TotalSeconds ?? 30); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.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.EventGrid.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.EventGrid.Runtime.Json.JsonNode.Parse(await _response.Content.ReadAsStringAsync()) is Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Runtime.UndeclaredResponseException(_response); + } + } + + // check for terminal status code + if (_response.StatusCode == global::System.Net.HttpStatusCode.Created || _response.StatusCode == global::System.Net.HttpStatusCode.Accepted ) + { + continue; + } + // we are done polling, do a request on final target? + if (!string.IsNullOrWhiteSpace(_finalUri)) + { + // create a new request with the final uri + request = request.CloneAndDispose(new global::System.Uri(_finalUri), Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.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.EventGrid.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onNoContent(_response); + break; + } + default: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onDefault(_response); + break; + } + } + } + finally + { + // finally statements + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Finally, request, _response); + _response?.Dispose(); + request?.Dispose(); + } + } + } + + /// + /// Validation method for method. Call this like the actual call, but you will get validation + /// events back. + /// + /// Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription + /// ID forms part of the URI for every service call. + /// The name of the resource group within the user's subscription. + /// Name of the system topic. + /// an instance that will receive events. + /// + /// A that will be complete when handling of the response is completed. + /// + internal async global::System.Threading.Tasks.Task SystemTopicsDelete_Validate(string subscriptionId, string resourceGroupName, string systemTopicName, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener eventListener) + { + using( NoSynchronizationContext ) + { + await eventListener.AssertNotNull(nameof(subscriptionId),subscriptionId); + await eventListener.AssertNotNull(nameof(resourceGroupName),resourceGroupName); + await eventListener.AssertNotNull(nameof(systemTopicName),systemTopicName); + } + } + + /// Get properties of a system topic. + /// Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription + /// ID forms part of the URI for every service call. + /// The name of the resource group within the user's subscription. + /// Name of the system topic. + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task SystemTopicsGet(string subscriptionId, string resourceGroupName, string systemTopicName, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func onDefault, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync sender) + { + var apiVersion = @"2021-10-15-preview"; + // Constant Parameters + using( NoSynchronizationContext ) + { + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + global::System.Uri.EscapeDataString(subscriptionId) + + "/resourceGroups/" + + global::System.Uri.EscapeDataString(resourceGroupName) + + "/providers/Microsoft.EventGrid/systemTopics/" + + global::System.Uri.EscapeDataString(systemTopicName) + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Method.Get, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.SystemTopicsGet_Call(request,onOk,onDefault,eventListener,sender); + } + } + + /// Get properties of a system topic. + /// + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task SystemTopicsGetViaIdentity(global::System.String viaIdentity, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func onDefault, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync sender) + { + var apiVersion = @"2021-10-15-preview"; + // Constant Parameters + using( NoSynchronizationContext ) + { + // verify that Identity format is an exact match for uri + + var _match = new global::System.Text.RegularExpressions.Regex("^/subscriptions/(?[^/]+)/resourceGroups/(?[^/]+)/providers/Microsoft.EventGrid/systemTopics/(?[^/]+)$", global::System.Text.RegularExpressions.RegexOptions.IgnoreCase).Match(viaIdentity); + if (!_match.Success) + { + throw new global::System.Exception("Invalid identity for URI '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.EventGrid/systemTopics/{systemTopicName}'"); + } + + // replace URI parameters with values from identity + var subscriptionId = _match.Groups["subscriptionId"].Value; + var resourceGroupName = _match.Groups["resourceGroupName"].Value; + var systemTopicName = _match.Groups["systemTopicName"].Value; + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + subscriptionId + + "/resourceGroups/" + + resourceGroupName + + "/providers/Microsoft.EventGrid/systemTopics/" + + systemTopicName + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Method.Get, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.SystemTopicsGet_Call(request,onOk,onDefault,eventListener,sender); + } + } + + /// Actual wire call for method. + /// the prepared HttpRequestMessage to send. + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + internal async global::System.Threading.Tasks.Task SystemTopicsGet_Call(global::System.Net.Http.HttpRequestMessage request, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func onDefault, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync sender) + { + using( NoSynchronizationContext ) + { + global::System.Net.Http.HttpResponseMessage _response = null; + try + { + var sendTask = sender.SendAsync(request, eventListener); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.BeforeCall, request); if( eventListener.Token.IsCancellationRequested ) { return; } + _response = await sendTask; + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.ResponseCreated, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + var _contentType = _response.Content.Headers.ContentType?.MediaType; + + switch ( _response.StatusCode ) + { + case global::System.Net.HttpStatusCode.OK: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onOk(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.SystemTopic.FromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + default: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onDefault(_response); + break; + } + } + } + finally + { + // finally statements + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Finally, request, _response); + _response?.Dispose(); + request?.Dispose(); + } + } + } + + /// + /// Validation method for method. Call this like the actual call, but you will get validation + /// events back. + /// + /// Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription + /// ID forms part of the URI for every service call. + /// The name of the resource group within the user's subscription. + /// Name of the system topic. + /// an instance that will receive events. + /// + /// A that will be complete when handling of the response is completed. + /// + internal async global::System.Threading.Tasks.Task SystemTopicsGet_Validate(string subscriptionId, string resourceGroupName, string systemTopicName, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener eventListener) + { + using( NoSynchronizationContext ) + { + await eventListener.AssertNotNull(nameof(subscriptionId),subscriptionId); + await eventListener.AssertNotNull(nameof(resourceGroupName),resourceGroupName); + await eventListener.AssertNotNull(nameof(systemTopicName),systemTopicName); + } + } + + /// List all the system topics under a resource group. + /// Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription + /// ID forms part of the URI for every service call. + /// The name of the resource group within the user's subscription. + /// The query used to filter the search results using OData syntax. Filtering is permitted on the 'name' + /// property only and with limited number of OData operations. These operations are: the 'contains' function as well as the + /// following logical operations: not, and, or, eq (for equal), and ne (for not equal). No arithmetic operations are supported. + /// The following is a valid filter example: $filter=contains(namE, 'PATTERN') and name ne 'PATTERN-1'. The following is not + /// a valid filter example: $filter=location eq 'westus'. + /// The number of results to return per page for the list operation. Valid range for top parameter is 1 + /// to 100. If not specified, the default number of results to be returned is 20 items per page. + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task SystemTopicsListByResourceGroup(string subscriptionId, string resourceGroupName, string Filter, int? Top, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func onDefault, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync sender) + { + var apiVersion = @"2021-10-15-preview"; + // Constant Parameters + using( NoSynchronizationContext ) + { + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + global::System.Uri.EscapeDataString(subscriptionId) + + "/resourceGroups/" + + global::System.Uri.EscapeDataString(resourceGroupName) + + "/providers/Microsoft.EventGrid/systemTopics" + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + + "&" + + (string.IsNullOrEmpty(Filter) ? global::System.String.Empty : "$filter=" + global::System.Uri.EscapeDataString(Filter)) + + "&" + + (null == Top ? global::System.String.Empty : "$top=" + global::System.Uri.EscapeDataString(Top.ToString())) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Method.Get, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.SystemTopicsListByResourceGroup_Call(request,onOk,onDefault,eventListener,sender); + } + } + + /// List all the system topics under a resource group. + /// + /// The query used to filter the search results using OData syntax. Filtering is permitted on the 'name' + /// property only and with limited number of OData operations. These operations are: the 'contains' function as well as the + /// following logical operations: not, and, or, eq (for equal), and ne (for not equal). No arithmetic operations are supported. + /// The following is a valid filter example: $filter=contains(namE, 'PATTERN') and name ne 'PATTERN-1'. The following is not + /// a valid filter example: $filter=location eq 'westus'. + /// The number of results to return per page for the list operation. Valid range for top parameter is 1 + /// to 100. If not specified, the default number of results to be returned is 20 items per page. + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task SystemTopicsListByResourceGroupViaIdentity(global::System.String viaIdentity, string Filter, int? Top, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func onDefault, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync sender) + { + var apiVersion = @"2021-10-15-preview"; + // Constant Parameters + using( NoSynchronizationContext ) + { + // verify that Identity format is an exact match for uri + + var _match = new global::System.Text.RegularExpressions.Regex("^/subscriptions/(?[^/]+)/resourceGroups/(?[^/]+)/providers/Microsoft.EventGrid/systemTopics$", global::System.Text.RegularExpressions.RegexOptions.IgnoreCase).Match(viaIdentity); + if (!_match.Success) + { + throw new global::System.Exception("Invalid identity for URI '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.EventGrid/systemTopics'"); + } + + // 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.EventGrid/systemTopics" + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + + "&" + + (string.IsNullOrEmpty(Filter) ? global::System.String.Empty : "$filter=" + global::System.Uri.EscapeDataString(Filter)) + + "&" + + (null == Top ? global::System.String.Empty : "$top=" + global::System.Uri.EscapeDataString(Top.ToString())) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Method.Get, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.SystemTopicsListByResourceGroup_Call(request,onOk,onDefault,eventListener,sender); + } + } + + /// Actual wire call for method. + /// the prepared HttpRequestMessage to send. + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + internal async global::System.Threading.Tasks.Task SystemTopicsListByResourceGroup_Call(global::System.Net.Http.HttpRequestMessage request, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func onDefault, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync sender) + { + using( NoSynchronizationContext ) + { + global::System.Net.Http.HttpResponseMessage _response = null; + try + { + var sendTask = sender.SendAsync(request, eventListener); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.BeforeCall, request); if( eventListener.Token.IsCancellationRequested ) { return; } + _response = await sendTask; + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.ResponseCreated, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + var _contentType = _response.Content.Headers.ContentType?.MediaType; + + switch ( _response.StatusCode ) + { + case global::System.Net.HttpStatusCode.OK: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onOk(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.SystemTopicsListResult.FromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + default: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onDefault(_response); + break; + } + } + } + finally + { + // finally statements + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Finally, request, _response); + _response?.Dispose(); + request?.Dispose(); + } + } + } + + /// + /// Validation method for method. Call this like the actual call, but you will + /// get validation events back. + /// + /// Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription + /// ID forms part of the URI for every service call. + /// The name of the resource group within the user's subscription. + /// The query used to filter the search results using OData syntax. Filtering is permitted on the 'name' + /// property only and with limited number of OData operations. These operations are: the 'contains' function as well as the + /// following logical operations: not, and, or, eq (for equal), and ne (for not equal). No arithmetic operations are supported. + /// The following is a valid filter example: $filter=contains(namE, 'PATTERN') and name ne 'PATTERN-1'. The following is not + /// a valid filter example: $filter=location eq 'westus'. + /// The number of results to return per page for the list operation. Valid range for top parameter is 1 + /// to 100. If not specified, the default number of results to be returned is 20 items per page. + /// an instance that will receive events. + /// + /// A that will be complete when handling of the response is completed. + /// + internal async global::System.Threading.Tasks.Task SystemTopicsListByResourceGroup_Validate(string subscriptionId, string resourceGroupName, string Filter, int? Top, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener eventListener) + { + using( NoSynchronizationContext ) + { + await eventListener.AssertNotNull(nameof(subscriptionId),subscriptionId); + await eventListener.AssertNotNull(nameof(resourceGroupName),resourceGroupName); + await eventListener.AssertNotNull(nameof(Filter),Filter); + } + } + + /// List all the system topics under an Azure subscription. + /// Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription + /// ID forms part of the URI for every service call. + /// The query used to filter the search results using OData syntax. Filtering is permitted on the 'name' + /// property only and with limited number of OData operations. These operations are: the 'contains' function as well as the + /// following logical operations: not, and, or, eq (for equal), and ne (for not equal). No arithmetic operations are supported. + /// The following is a valid filter example: $filter=contains(namE, 'PATTERN') and name ne 'PATTERN-1'. The following is not + /// a valid filter example: $filter=location eq 'westus'. + /// The number of results to return per page for the list operation. Valid range for top parameter is 1 + /// to 100. If not specified, the default number of results to be returned is 20 items per page. + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task SystemTopicsListBySubscription(string subscriptionId, string Filter, int? Top, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func onDefault, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync sender) + { + var apiVersion = @"2021-10-15-preview"; + // Constant Parameters + using( NoSynchronizationContext ) + { + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + global::System.Uri.EscapeDataString(subscriptionId) + + "/providers/Microsoft.EventGrid/systemTopics" + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + + "&" + + (string.IsNullOrEmpty(Filter) ? global::System.String.Empty : "$filter=" + global::System.Uri.EscapeDataString(Filter)) + + "&" + + (null == Top ? global::System.String.Empty : "$top=" + global::System.Uri.EscapeDataString(Top.ToString())) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Method.Get, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.SystemTopicsListBySubscription_Call(request,onOk,onDefault,eventListener,sender); + } + } + + /// List all the system topics under an Azure subscription. + /// + /// The query used to filter the search results using OData syntax. Filtering is permitted on the 'name' + /// property only and with limited number of OData operations. These operations are: the 'contains' function as well as the + /// following logical operations: not, and, or, eq (for equal), and ne (for not equal). No arithmetic operations are supported. + /// The following is a valid filter example: $filter=contains(namE, 'PATTERN') and name ne 'PATTERN-1'. The following is not + /// a valid filter example: $filter=location eq 'westus'. + /// The number of results to return per page for the list operation. Valid range for top parameter is 1 + /// to 100. If not specified, the default number of results to be returned is 20 items per page. + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task SystemTopicsListBySubscriptionViaIdentity(global::System.String viaIdentity, string Filter, int? Top, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func onDefault, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync sender) + { + var apiVersion = @"2021-10-15-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.EventGrid/systemTopics$", global::System.Text.RegularExpressions.RegexOptions.IgnoreCase).Match(viaIdentity); + if (!_match.Success) + { + throw new global::System.Exception("Invalid identity for URI '/subscriptions/{subscriptionId}/providers/Microsoft.EventGrid/systemTopics'"); + } + + // 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.EventGrid/systemTopics" + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + + "&" + + (string.IsNullOrEmpty(Filter) ? global::System.String.Empty : "$filter=" + global::System.Uri.EscapeDataString(Filter)) + + "&" + + (null == Top ? global::System.String.Empty : "$top=" + global::System.Uri.EscapeDataString(Top.ToString())) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Method.Get, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.SystemTopicsListBySubscription_Call(request,onOk,onDefault,eventListener,sender); + } + } + + /// Actual wire call for method. + /// the prepared HttpRequestMessage to send. + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + internal async global::System.Threading.Tasks.Task SystemTopicsListBySubscription_Call(global::System.Net.Http.HttpRequestMessage request, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func onDefault, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync sender) + { + using( NoSynchronizationContext ) + { + global::System.Net.Http.HttpResponseMessage _response = null; + try + { + var sendTask = sender.SendAsync(request, eventListener); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.BeforeCall, request); if( eventListener.Token.IsCancellationRequested ) { return; } + _response = await sendTask; + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.ResponseCreated, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + var _contentType = _response.Content.Headers.ContentType?.MediaType; + + switch ( _response.StatusCode ) + { + case global::System.Net.HttpStatusCode.OK: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onOk(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.SystemTopicsListResult.FromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + default: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onDefault(_response); + break; + } + } + } + finally + { + // finally statements + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Finally, request, _response); + _response?.Dispose(); + request?.Dispose(); + } + } + } + + /// + /// Validation method for method. Call this like the actual call, but you will + /// get validation events back. + /// + /// Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription + /// ID forms part of the URI for every service call. + /// The query used to filter the search results using OData syntax. Filtering is permitted on the 'name' + /// property only and with limited number of OData operations. These operations are: the 'contains' function as well as the + /// following logical operations: not, and, or, eq (for equal), and ne (for not equal). No arithmetic operations are supported. + /// The following is a valid filter example: $filter=contains(namE, 'PATTERN') and name ne 'PATTERN-1'. The following is not + /// a valid filter example: $filter=location eq 'westus'. + /// The number of results to return per page for the list operation. Valid range for top parameter is 1 + /// to 100. If not specified, the default number of results to be returned is 20 items per page. + /// an instance that will receive events. + /// + /// A that will be complete when handling of the response is completed. + /// + internal async global::System.Threading.Tasks.Task SystemTopicsListBySubscription_Validate(string subscriptionId, string Filter, int? Top, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener eventListener) + { + using( NoSynchronizationContext ) + { + await eventListener.AssertNotNull(nameof(subscriptionId),subscriptionId); + await eventListener.AssertNotNull(nameof(Filter),Filter); + } + } + + /// Asynchronously updates a system topic with the specified parameters. + /// Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription + /// ID forms part of the URI for every service call. + /// The name of the resource group within the user's subscription. + /// Name of the system topic. + /// SystemTopic update information. + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task SystemTopicsUpdate(string subscriptionId, string resourceGroupName, string systemTopicName, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ISystemTopicUpdateParameters body, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func onDefault, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync sender) + { + var apiVersion = @"2021-10-15-preview"; + // Constant Parameters + using( NoSynchronizationContext ) + { + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + global::System.Uri.EscapeDataString(subscriptionId) + + "/resourceGroups/" + + global::System.Uri.EscapeDataString(resourceGroupName) + + "/providers/Microsoft.EventGrid/systemTopics/" + + global::System.Uri.EscapeDataString(systemTopicName) + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Method.Patch, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // set body content + request.Content = new global::System.Net.Http.StringContent(null != body ? body.ToJson(null).ToString() : @"{}", global::System.Text.Encoding.UTF8); + request.Content.Headers.ContentType = global::System.Net.Http.Headers.MediaTypeHeaderValue.Parse("application/json"); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.BodyContentSet); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.SystemTopicsUpdate_Call(request,onOk,onDefault,eventListener,sender); + } + } + + /// Asynchronously updates a system topic with the specified parameters. + /// + /// SystemTopic update information. + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task SystemTopicsUpdateViaIdentity(global::System.String viaIdentity, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ISystemTopicUpdateParameters body, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func onDefault, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync sender) + { + var apiVersion = @"2021-10-15-preview"; + // Constant Parameters + using( NoSynchronizationContext ) + { + // verify that Identity format is an exact match for uri + + var _match = new global::System.Text.RegularExpressions.Regex("^/subscriptions/(?[^/]+)/resourceGroups/(?[^/]+)/providers/Microsoft.EventGrid/systemTopics/(?[^/]+)$", global::System.Text.RegularExpressions.RegexOptions.IgnoreCase).Match(viaIdentity); + if (!_match.Success) + { + throw new global::System.Exception("Invalid identity for URI '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.EventGrid/systemTopics/{systemTopicName}'"); + } + + // replace URI parameters with values from identity + var subscriptionId = _match.Groups["subscriptionId"].Value; + var resourceGroupName = _match.Groups["resourceGroupName"].Value; + var systemTopicName = _match.Groups["systemTopicName"].Value; + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + subscriptionId + + "/resourceGroups/" + + resourceGroupName + + "/providers/Microsoft.EventGrid/systemTopics/" + + systemTopicName + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Method.Patch, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // set body content + request.Content = new global::System.Net.Http.StringContent(null != body ? body.ToJson(null).ToString() : @"{}", global::System.Text.Encoding.UTF8); + request.Content.Headers.ContentType = global::System.Net.Http.Headers.MediaTypeHeaderValue.Parse("application/json"); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.BodyContentSet); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.SystemTopicsUpdate_Call(request,onOk,onDefault,eventListener,sender); + } + } + + /// Actual wire call for method. + /// the prepared HttpRequestMessage to send. + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + internal async global::System.Threading.Tasks.Task SystemTopicsUpdate_Call(global::System.Net.Http.HttpRequestMessage request, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func onDefault, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync sender) + { + using( NoSynchronizationContext ) + { + global::System.Net.Http.HttpResponseMessage _response = null; + try + { + var sendTask = sender.SendAsync(request, eventListener); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.BeforeCall, request); if( eventListener.Token.IsCancellationRequested ) { return; } + _response = await sendTask; + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.ResponseCreated, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + // this operation supports x-ms-long-running-operation + var _originalUri = request.RequestUri.AbsoluteUri; + // declared final-state-via: default + var asyncOperation = _response.GetFirstHeader(@"Azure-AsyncOperation"); + var location = _response.GetFirstHeader(@"Location"); + while (request.Method == System.Net.Http.HttpMethod.Put && _response.StatusCode == global::System.Net.HttpStatusCode.OK || _response.StatusCode == global::System.Net.HttpStatusCode.Created || _response.StatusCode == global::System.Net.HttpStatusCode.Accepted ) + { + + // get the delay before polling. (default to 30 seconds if not present) + int delay = (int)(_response.Headers.RetryAfter?.Delta?.TotalSeconds ?? 30); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.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.EventGrid.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.EventGrid.Runtime.Json.JsonNode.Parse(await _response.Content.ReadAsStringAsync()) is Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Runtime.UndeclaredResponseException(_response); + } + } + + // check for terminal status code + if (_response.StatusCode == global::System.Net.HttpStatusCode.Created || _response.StatusCode == global::System.Net.HttpStatusCode.Accepted ) + { + continue; + } + // we are done polling, do a request on final target? + if (!string.IsNullOrWhiteSpace(_originalUri)) + { + // create a new request with the final uri + request = request.CloneAndDispose(new global::System.Uri(_originalUri), Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onOk(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.SystemTopic.FromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + default: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onDefault(_response); + break; + } + } + } + finally + { + // finally statements + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Finally, request, _response); + _response?.Dispose(); + request?.Dispose(); + } + } + } + + /// + /// Validation method for method. Call this like the actual call, but you will get validation + /// events back. + /// + /// Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription + /// ID forms part of the URI for every service call. + /// The name of the resource group within the user's subscription. + /// Name of the system topic. + /// SystemTopic update information. + /// an instance that will receive events. + /// + /// A that will be complete when handling of the response is completed. + /// + internal async global::System.Threading.Tasks.Task SystemTopicsUpdate_Validate(string subscriptionId, string resourceGroupName, string systemTopicName, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ISystemTopicUpdateParameters body, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener eventListener) + { + using( NoSynchronizationContext ) + { + await eventListener.AssertNotNull(nameof(subscriptionId),subscriptionId); + await eventListener.AssertNotNull(nameof(resourceGroupName),resourceGroupName); + await eventListener.AssertNotNull(nameof(systemTopicName),systemTopicName); + await eventListener.AssertNotNull(nameof(body), body); + await eventListener.AssertObjectIsValid(nameof(body), body); + } + } + + /// + /// Asynchronously creates a new event subscription or updates an existing event subscription. + /// + /// Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription + /// ID forms part of the URI for every service call. + /// The name of the resource group within the user's subscription. + /// Name of the domain topic. + /// Name of the event subscription to be created. Event subscription names must be between + /// 3 and 100 characters in length and use alphanumeric letters only. + /// Event subscription properties containing the destination and filter information. + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task TopicEventSubscriptionsCreateOrUpdate(string subscriptionId, string resourceGroupName, string topicName, string eventSubscriptionName, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscription body, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func onDefault, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync sender) + { + var apiVersion = @"2021-10-15-preview"; + // Constant Parameters + using( NoSynchronizationContext ) + { + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + global::System.Uri.EscapeDataString(subscriptionId) + + "/resourceGroups/" + + global::System.Uri.EscapeDataString(resourceGroupName) + + "/providers/Microsoft.EventGrid/topics/" + + global::System.Uri.EscapeDataString(topicName) + + "/eventSubscriptions/" + + global::System.Uri.EscapeDataString(eventSubscriptionName) + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Method.Put, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // set body content + request.Content = new global::System.Net.Http.StringContent(null != body ? body.ToJson(null).ToString() : @"{}", global::System.Text.Encoding.UTF8); + request.Content.Headers.ContentType = global::System.Net.Http.Headers.MediaTypeHeaderValue.Parse("application/json"); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.BodyContentSet); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.TopicEventSubscriptionsCreateOrUpdate_Call(request,onOk,onDefault,eventListener,sender); + } + } + + /// + /// Asynchronously creates a new event subscription or updates an existing event subscription. + /// + /// + /// Event subscription properties containing the destination and filter information. + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task TopicEventSubscriptionsCreateOrUpdateViaIdentity(global::System.String viaIdentity, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscription body, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func onDefault, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync sender) + { + var apiVersion = @"2021-10-15-preview"; + // Constant Parameters + using( NoSynchronizationContext ) + { + // verify that Identity format is an exact match for uri + + var _match = new global::System.Text.RegularExpressions.Regex("^/subscriptions/(?[^/]+)/resourceGroups/(?[^/]+)/providers/Microsoft.EventGrid/topics/(?[^/]+)/eventSubscriptions/(?[^/]+)$", global::System.Text.RegularExpressions.RegexOptions.IgnoreCase).Match(viaIdentity); + if (!_match.Success) + { + throw new global::System.Exception("Invalid identity for URI '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.EventGrid/topics/{topicName}/eventSubscriptions/{eventSubscriptionName}'"); + } + + // replace URI parameters with values from identity + var subscriptionId = _match.Groups["subscriptionId"].Value; + var resourceGroupName = _match.Groups["resourceGroupName"].Value; + var topicName = _match.Groups["topicName"].Value; + var eventSubscriptionName = _match.Groups["eventSubscriptionName"].Value; + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + subscriptionId + + "/resourceGroups/" + + resourceGroupName + + "/providers/Microsoft.EventGrid/topics/" + + topicName + + "/eventSubscriptions/" + + eventSubscriptionName + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Method.Put, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // set body content + request.Content = new global::System.Net.Http.StringContent(null != body ? body.ToJson(null).ToString() : @"{}", global::System.Text.Encoding.UTF8); + request.Content.Headers.ContentType = global::System.Net.Http.Headers.MediaTypeHeaderValue.Parse("application/json"); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.BodyContentSet); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.TopicEventSubscriptionsCreateOrUpdate_Call(request,onOk,onDefault,eventListener,sender); + } + } + + /// + /// Actual wire call for method. + /// + /// the prepared HttpRequestMessage to send. + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + internal async global::System.Threading.Tasks.Task TopicEventSubscriptionsCreateOrUpdate_Call(global::System.Net.Http.HttpRequestMessage request, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func onDefault, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync sender) + { + using( NoSynchronizationContext ) + { + global::System.Net.Http.HttpResponseMessage _response = null; + try + { + var sendTask = sender.SendAsync(request, eventListener); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.BeforeCall, request); if( eventListener.Token.IsCancellationRequested ) { return; } + _response = await sendTask; + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.ResponseCreated, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + // this operation supports x-ms-long-running-operation + var _originalUri = request.RequestUri.AbsoluteUri; + // declared final-state-via: default + var asyncOperation = _response.GetFirstHeader(@"Azure-AsyncOperation"); + var location = _response.GetFirstHeader(@"Location"); + while (request.Method == System.Net.Http.HttpMethod.Put && _response.StatusCode == global::System.Net.HttpStatusCode.OK || _response.StatusCode == global::System.Net.HttpStatusCode.Created || _response.StatusCode == global::System.Net.HttpStatusCode.Accepted ) + { + + // get the delay before polling. (default to 30 seconds if not present) + int delay = (int)(_response.Headers.RetryAfter?.Delta?.TotalSeconds ?? 30); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.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.EventGrid.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.EventGrid.Runtime.Json.JsonNode.Parse(await _response.Content.ReadAsStringAsync()) is Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Runtime.UndeclaredResponseException(_response); + } + } + + // check for terminal status code + if (_response.StatusCode == global::System.Net.HttpStatusCode.Created || _response.StatusCode == global::System.Net.HttpStatusCode.Accepted ) + { + continue; + } + // we are done polling, do a request on final target? + if (!string.IsNullOrWhiteSpace(_originalUri)) + { + // create a new request with the final uri + request = request.CloneAndDispose(new global::System.Uri(_originalUri), Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onOk(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.EventSubscription.FromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + default: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onDefault(_response); + break; + } + } + } + finally + { + // finally statements + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Finally, request, _response); + _response?.Dispose(); + request?.Dispose(); + } + } + } + + /// + /// Validation method for method. Call this like the actual call, but + /// you will get validation events back. + /// + /// Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription + /// ID forms part of the URI for every service call. + /// The name of the resource group within the user's subscription. + /// Name of the domain topic. + /// Name of the event subscription to be created. Event subscription names must be between + /// 3 and 100 characters in length and use alphanumeric letters only. + /// Event subscription properties containing the destination and filter information. + /// an instance that will receive events. + /// + /// A that will be complete when handling of the response is completed. + /// + internal async global::System.Threading.Tasks.Task TopicEventSubscriptionsCreateOrUpdate_Validate(string subscriptionId, string resourceGroupName, string topicName, string eventSubscriptionName, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscription body, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener eventListener) + { + using( NoSynchronizationContext ) + { + await eventListener.AssertNotNull(nameof(subscriptionId),subscriptionId); + await eventListener.AssertNotNull(nameof(resourceGroupName),resourceGroupName); + await eventListener.AssertNotNull(nameof(topicName),topicName); + await eventListener.AssertNotNull(nameof(eventSubscriptionName),eventSubscriptionName); + await eventListener.AssertNotNull(nameof(body), body); + await eventListener.AssertObjectIsValid(nameof(body), body); + } + } + + /// Delete an existing event subscription for a topic. + /// Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription + /// ID forms part of the URI for every service call. + /// The name of the resource group within the user's subscription. + /// Name of the topic. + /// Name of the event subscription to be deleted. Event subscription names must be between + /// 3 and 100 characters in length and use alphanumeric letters only. + /// 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.EventGrid.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task TopicEventSubscriptionsDelete(string subscriptionId, string resourceGroupName, string topicName, string eventSubscriptionName, global::System.Func onOk, global::System.Func onNoContent, global::System.Func onDefault, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync sender) + { + var apiVersion = @"2021-10-15-preview"; + // Constant Parameters + using( NoSynchronizationContext ) + { + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + global::System.Uri.EscapeDataString(subscriptionId) + + "/resourceGroups/" + + global::System.Uri.EscapeDataString(resourceGroupName) + + "/providers/Microsoft.EventGrid/topics/" + + global::System.Uri.EscapeDataString(topicName) + + "/eventSubscriptions/" + + global::System.Uri.EscapeDataString(eventSubscriptionName) + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Method.Delete, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.TopicEventSubscriptionsDelete_Call(request,onOk,onNoContent,onDefault,eventListener,sender); + } + } + + /// Delete an existing event subscription for a topic. + /// + /// 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.EventGrid.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task TopicEventSubscriptionsDeleteViaIdentity(global::System.String viaIdentity, global::System.Func onOk, global::System.Func onNoContent, global::System.Func onDefault, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync sender) + { + var apiVersion = @"2021-10-15-preview"; + // Constant Parameters + using( NoSynchronizationContext ) + { + // verify that Identity format is an exact match for uri + + var _match = new global::System.Text.RegularExpressions.Regex("^/subscriptions/(?[^/]+)/resourceGroups/(?[^/]+)/providers/Microsoft.EventGrid/topics/(?[^/]+)/eventSubscriptions/(?[^/]+)$", global::System.Text.RegularExpressions.RegexOptions.IgnoreCase).Match(viaIdentity); + if (!_match.Success) + { + throw new global::System.Exception("Invalid identity for URI '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.EventGrid/topics/{topicName}/eventSubscriptions/{eventSubscriptionName}'"); + } + + // replace URI parameters with values from identity + var subscriptionId = _match.Groups["subscriptionId"].Value; + var resourceGroupName = _match.Groups["resourceGroupName"].Value; + var topicName = _match.Groups["topicName"].Value; + var eventSubscriptionName = _match.Groups["eventSubscriptionName"].Value; + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + subscriptionId + + "/resourceGroups/" + + resourceGroupName + + "/providers/Microsoft.EventGrid/topics/" + + topicName + + "/eventSubscriptions/" + + eventSubscriptionName + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Method.Delete, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.TopicEventSubscriptionsDelete_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.EventGrid.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + internal async global::System.Threading.Tasks.Task TopicEventSubscriptionsDelete_Call(global::System.Net.Http.HttpRequestMessage request, global::System.Func onOk, global::System.Func onNoContent, global::System.Func onDefault, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync sender) + { + using( NoSynchronizationContext ) + { + global::System.Net.Http.HttpResponseMessage _response = null; + try + { + var sendTask = sender.SendAsync(request, eventListener); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.BeforeCall, request); if( eventListener.Token.IsCancellationRequested ) { return; } + _response = await sendTask; + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.ResponseCreated, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + // this operation supports x-ms-long-running-operation + var _originalUri = request.RequestUri.AbsoluteUri; + // declared final-state-via: default + var _finalUri = _response.GetFirstHeader(@"Location"); + var asyncOperation = _response.GetFirstHeader(@"Azure-AsyncOperation"); + var location = _response.GetFirstHeader(@"Location"); + while (request.Method == System.Net.Http.HttpMethod.Put && _response.StatusCode == global::System.Net.HttpStatusCode.OK || _response.StatusCode == global::System.Net.HttpStatusCode.Created || _response.StatusCode == global::System.Net.HttpStatusCode.Accepted ) + { + + // get the delay before polling. (default to 30 seconds if not present) + int delay = (int)(_response.Headers.RetryAfter?.Delta?.TotalSeconds ?? 30); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.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.EventGrid.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.EventGrid.Runtime.Json.JsonNode.Parse(await _response.Content.ReadAsStringAsync()) is Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Runtime.UndeclaredResponseException(_response); + } + } + + // check for terminal status code + if (_response.StatusCode == global::System.Net.HttpStatusCode.Created || _response.StatusCode == global::System.Net.HttpStatusCode.Accepted ) + { + continue; + } + // we are done polling, do a request on final target? + if (!string.IsNullOrWhiteSpace(_finalUri)) + { + // create a new request with the final uri + request = request.CloneAndDispose(new global::System.Uri(_finalUri), Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.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.EventGrid.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onNoContent(_response); + break; + } + default: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onDefault(_response); + break; + } + } + } + finally + { + // finally statements + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Finally, request, _response); + _response?.Dispose(); + request?.Dispose(); + } + } + } + + /// + /// Validation method for method. Call this like the actual call, but you will + /// get validation events back. + /// + /// Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription + /// ID forms part of the URI for every service call. + /// The name of the resource group within the user's subscription. + /// Name of the topic. + /// Name of the event subscription to be deleted. Event subscription names must be between + /// 3 and 100 characters in length and use alphanumeric letters only. + /// an instance that will receive events. + /// + /// A that will be complete when handling of the response is completed. + /// + internal async global::System.Threading.Tasks.Task TopicEventSubscriptionsDelete_Validate(string subscriptionId, string resourceGroupName, string topicName, string eventSubscriptionName, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener eventListener) + { + using( NoSynchronizationContext ) + { + await eventListener.AssertNotNull(nameof(subscriptionId),subscriptionId); + await eventListener.AssertNotNull(nameof(resourceGroupName),resourceGroupName); + await eventListener.AssertNotNull(nameof(topicName),topicName); + await eventListener.AssertNotNull(nameof(eventSubscriptionName),eventSubscriptionName); + } + } + + /// Get properties of an event subscription of a topic. + /// Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription + /// ID forms part of the URI for every service call. + /// The name of the resource group within the user's subscription. + /// Name of the partner topic. + /// Name of the event subscription to be found. Event subscription names must be between + /// 3 and 100 characters in length and use alphanumeric letters only. + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task TopicEventSubscriptionsGet(string subscriptionId, string resourceGroupName, string topicName, string eventSubscriptionName, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func onDefault, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync sender) + { + var apiVersion = @"2021-10-15-preview"; + // Constant Parameters + using( NoSynchronizationContext ) + { + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + global::System.Uri.EscapeDataString(subscriptionId) + + "/resourceGroups/" + + global::System.Uri.EscapeDataString(resourceGroupName) + + "/providers/Microsoft.EventGrid/topics/" + + global::System.Uri.EscapeDataString(topicName) + + "/eventSubscriptions/" + + global::System.Uri.EscapeDataString(eventSubscriptionName) + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Method.Get, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.TopicEventSubscriptionsGet_Call(request,onOk,onDefault,eventListener,sender); + } + } + + /// Get all delivery attributes for an event subscription for topic. + /// Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription + /// ID forms part of the URI for every service call. + /// The name of the resource group within the user's subscription. + /// Name of the domain topic. + /// Name of the event 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.EventGrid.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task TopicEventSubscriptionsGetDeliveryAttributes(string subscriptionId, string resourceGroupName, string topicName, string eventSubscriptionName, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func onDefault, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync sender) + { + var apiVersion = @"2021-10-15-preview"; + // Constant Parameters + using( NoSynchronizationContext ) + { + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + global::System.Uri.EscapeDataString(subscriptionId) + + "/resourceGroups/" + + global::System.Uri.EscapeDataString(resourceGroupName) + + "/providers/Microsoft.EventGrid/topics/" + + global::System.Uri.EscapeDataString(topicName) + + "/eventSubscriptions/" + + global::System.Uri.EscapeDataString(eventSubscriptionName) + + "/getDeliveryAttributes" + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Method.Post, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.TopicEventSubscriptionsGetDeliveryAttributes_Call(request,onOk,onDefault,eventListener,sender); + } + } + + /// Get all delivery attributes for an event subscription for topic. + /// + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task TopicEventSubscriptionsGetDeliveryAttributesViaIdentity(global::System.String viaIdentity, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func onDefault, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync sender) + { + var apiVersion = @"2021-10-15-preview"; + // Constant Parameters + using( NoSynchronizationContext ) + { + // verify that Identity format is an exact match for uri + + var _match = new global::System.Text.RegularExpressions.Regex("^/subscriptions/(?[^/]+)/resourceGroups/(?[^/]+)/providers/Microsoft.EventGrid/topics/(?[^/]+)/eventSubscriptions/(?[^/]+)/getDeliveryAttributes$", global::System.Text.RegularExpressions.RegexOptions.IgnoreCase).Match(viaIdentity); + if (!_match.Success) + { + throw new global::System.Exception("Invalid identity for URI '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.EventGrid/topics/{topicName}/eventSubscriptions/{eventSubscriptionName}/getDeliveryAttributes'"); + } + + // replace URI parameters with values from identity + var subscriptionId = _match.Groups["subscriptionId"].Value; + var resourceGroupName = _match.Groups["resourceGroupName"].Value; + var topicName = _match.Groups["topicName"].Value; + var eventSubscriptionName = _match.Groups["eventSubscriptionName"].Value; + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + subscriptionId + + "/resourceGroups/" + + resourceGroupName + + "/providers/Microsoft.EventGrid/topics/" + + topicName + + "/eventSubscriptions/" + + eventSubscriptionName + + "/getDeliveryAttributes" + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Method.Post, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.TopicEventSubscriptionsGetDeliveryAttributes_Call(request,onOk,onDefault,eventListener,sender); + } + } + + /// + /// Actual wire call for method. + /// + /// the prepared HttpRequestMessage to send. + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + internal async global::System.Threading.Tasks.Task TopicEventSubscriptionsGetDeliveryAttributes_Call(global::System.Net.Http.HttpRequestMessage request, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func onDefault, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync sender) + { + using( NoSynchronizationContext ) + { + global::System.Net.Http.HttpResponseMessage _response = null; + try + { + var sendTask = sender.SendAsync(request, eventListener); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.BeforeCall, request); if( eventListener.Token.IsCancellationRequested ) { return; } + _response = await sendTask; + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.ResponseCreated, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + var _contentType = _response.Content.Headers.ContentType?.MediaType; + + switch ( _response.StatusCode ) + { + case global::System.Net.HttpStatusCode.OK: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onOk(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.DeliveryAttributeListResult.FromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + default: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onDefault(_response); + break; + } + } + } + finally + { + // finally statements + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Finally, request, _response); + _response?.Dispose(); + request?.Dispose(); + } + } + } + + /// + /// Validation method for method. Call this like the actual call, + /// but you will get validation events back. + /// + /// Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription + /// ID forms part of the URI for every service call. + /// The name of the resource group within the user's subscription. + /// Name of the domain topic. + /// Name of the event 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 TopicEventSubscriptionsGetDeliveryAttributes_Validate(string subscriptionId, string resourceGroupName, string topicName, string eventSubscriptionName, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener eventListener) + { + using( NoSynchronizationContext ) + { + await eventListener.AssertNotNull(nameof(subscriptionId),subscriptionId); + await eventListener.AssertNotNull(nameof(resourceGroupName),resourceGroupName); + await eventListener.AssertNotNull(nameof(topicName),topicName); + await eventListener.AssertNotNull(nameof(eventSubscriptionName),eventSubscriptionName); + } + } + + /// Get the full endpoint URL for an event subscription for topic. + /// Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription + /// ID forms part of the URI for every service call. + /// The name of the resource group within the user's subscription. + /// Name of the domain topic. + /// Name of the event 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.EventGrid.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task TopicEventSubscriptionsGetFullUrl(string subscriptionId, string resourceGroupName, string topicName, string eventSubscriptionName, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func onDefault, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync sender) + { + var apiVersion = @"2021-10-15-preview"; + // Constant Parameters + using( NoSynchronizationContext ) + { + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + global::System.Uri.EscapeDataString(subscriptionId) + + "/resourceGroups/" + + global::System.Uri.EscapeDataString(resourceGroupName) + + "/providers/Microsoft.EventGrid/topics/" + + global::System.Uri.EscapeDataString(topicName) + + "/eventSubscriptions/" + + global::System.Uri.EscapeDataString(eventSubscriptionName) + + "/getFullUrl" + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Method.Post, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.TopicEventSubscriptionsGetFullUrl_Call(request,onOk,onDefault,eventListener,sender); + } + } + + /// Get the full endpoint URL for an event subscription for topic. + /// + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task TopicEventSubscriptionsGetFullUrlViaIdentity(global::System.String viaIdentity, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func onDefault, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync sender) + { + var apiVersion = @"2021-10-15-preview"; + // Constant Parameters + using( NoSynchronizationContext ) + { + // verify that Identity format is an exact match for uri + + var _match = new global::System.Text.RegularExpressions.Regex("^/subscriptions/(?[^/]+)/resourceGroups/(?[^/]+)/providers/Microsoft.EventGrid/topics/(?[^/]+)/eventSubscriptions/(?[^/]+)/getFullUrl$", global::System.Text.RegularExpressions.RegexOptions.IgnoreCase).Match(viaIdentity); + if (!_match.Success) + { + throw new global::System.Exception("Invalid identity for URI '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.EventGrid/topics/{topicName}/eventSubscriptions/{eventSubscriptionName}/getFullUrl'"); + } + + // replace URI parameters with values from identity + var subscriptionId = _match.Groups["subscriptionId"].Value; + var resourceGroupName = _match.Groups["resourceGroupName"].Value; + var topicName = _match.Groups["topicName"].Value; + var eventSubscriptionName = _match.Groups["eventSubscriptionName"].Value; + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + subscriptionId + + "/resourceGroups/" + + resourceGroupName + + "/providers/Microsoft.EventGrid/topics/" + + topicName + + "/eventSubscriptions/" + + eventSubscriptionName + + "/getFullUrl" + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Method.Post, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.TopicEventSubscriptionsGetFullUrl_Call(request,onOk,onDefault,eventListener,sender); + } + } + + /// Actual wire call for method. + /// the prepared HttpRequestMessage to send. + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + internal async global::System.Threading.Tasks.Task TopicEventSubscriptionsGetFullUrl_Call(global::System.Net.Http.HttpRequestMessage request, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func onDefault, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync sender) + { + using( NoSynchronizationContext ) + { + global::System.Net.Http.HttpResponseMessage _response = null; + try + { + var sendTask = sender.SendAsync(request, eventListener); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.BeforeCall, request); if( eventListener.Token.IsCancellationRequested ) { return; } + _response = await sendTask; + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.ResponseCreated, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + var _contentType = _response.Content.Headers.ContentType?.MediaType; + + switch ( _response.StatusCode ) + { + case global::System.Net.HttpStatusCode.OK: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onOk(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.EventSubscriptionFullUrl.FromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + default: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onDefault(_response); + break; + } + } + } + finally + { + // finally statements + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Finally, request, _response); + _response?.Dispose(); + request?.Dispose(); + } + } + } + + /// + /// Validation method for method. Call this like the actual call, but you + /// will get validation events back. + /// + /// Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription + /// ID forms part of the URI for every service call. + /// The name of the resource group within the user's subscription. + /// Name of the domain topic. + /// Name of the event 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 TopicEventSubscriptionsGetFullUrl_Validate(string subscriptionId, string resourceGroupName, string topicName, string eventSubscriptionName, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener eventListener) + { + using( NoSynchronizationContext ) + { + await eventListener.AssertNotNull(nameof(subscriptionId),subscriptionId); + await eventListener.AssertNotNull(nameof(resourceGroupName),resourceGroupName); + await eventListener.AssertNotNull(nameof(topicName),topicName); + await eventListener.AssertNotNull(nameof(eventSubscriptionName),eventSubscriptionName); + } + } + + /// Get properties of an event subscription of a topic. + /// + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task TopicEventSubscriptionsGetViaIdentity(global::System.String viaIdentity, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func onDefault, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync sender) + { + var apiVersion = @"2021-10-15-preview"; + // Constant Parameters + using( NoSynchronizationContext ) + { + // verify that Identity format is an exact match for uri + + var _match = new global::System.Text.RegularExpressions.Regex("^/subscriptions/(?[^/]+)/resourceGroups/(?[^/]+)/providers/Microsoft.EventGrid/topics/(?[^/]+)/eventSubscriptions/(?[^/]+)$", global::System.Text.RegularExpressions.RegexOptions.IgnoreCase).Match(viaIdentity); + if (!_match.Success) + { + throw new global::System.Exception("Invalid identity for URI '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.EventGrid/topics/{topicName}/eventSubscriptions/{eventSubscriptionName}'"); + } + + // replace URI parameters with values from identity + var subscriptionId = _match.Groups["subscriptionId"].Value; + var resourceGroupName = _match.Groups["resourceGroupName"].Value; + var topicName = _match.Groups["topicName"].Value; + var eventSubscriptionName = _match.Groups["eventSubscriptionName"].Value; + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + subscriptionId + + "/resourceGroups/" + + resourceGroupName + + "/providers/Microsoft.EventGrid/topics/" + + topicName + + "/eventSubscriptions/" + + eventSubscriptionName + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Method.Get, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.TopicEventSubscriptionsGet_Call(request,onOk,onDefault,eventListener,sender); + } + } + + /// Actual wire call for method. + /// the prepared HttpRequestMessage to send. + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + internal async global::System.Threading.Tasks.Task TopicEventSubscriptionsGet_Call(global::System.Net.Http.HttpRequestMessage request, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func onDefault, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync sender) + { + using( NoSynchronizationContext ) + { + global::System.Net.Http.HttpResponseMessage _response = null; + try + { + var sendTask = sender.SendAsync(request, eventListener); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.BeforeCall, request); if( eventListener.Token.IsCancellationRequested ) { return; } + _response = await sendTask; + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.ResponseCreated, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + var _contentType = _response.Content.Headers.ContentType?.MediaType; + + switch ( _response.StatusCode ) + { + case global::System.Net.HttpStatusCode.OK: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onOk(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.EventSubscription.FromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + default: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onDefault(_response); + break; + } + } + } + finally + { + // finally statements + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Finally, request, _response); + _response?.Dispose(); + request?.Dispose(); + } + } + } + + /// + /// Validation method for method. Call this like the actual call, but you will get + /// validation events back. + /// + /// Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription + /// ID forms part of the URI for every service call. + /// The name of the resource group within the user's subscription. + /// Name of the partner topic. + /// Name of the event subscription to be found. Event subscription names must be between + /// 3 and 100 characters in length and use alphanumeric letters only. + /// an instance that will receive events. + /// + /// A that will be complete when handling of the response is completed. + /// + internal async global::System.Threading.Tasks.Task TopicEventSubscriptionsGet_Validate(string subscriptionId, string resourceGroupName, string topicName, string eventSubscriptionName, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener eventListener) + { + using( NoSynchronizationContext ) + { + await eventListener.AssertNotNull(nameof(subscriptionId),subscriptionId); + await eventListener.AssertNotNull(nameof(resourceGroupName),resourceGroupName); + await eventListener.AssertNotNull(nameof(topicName),topicName); + await eventListener.AssertNotNull(nameof(eventSubscriptionName),eventSubscriptionName); + } + } + + /// List all event subscriptions that have been created for a specific topic. + /// Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription + /// ID forms part of the URI for every service call. + /// The name of the resource group within the user's subscription. + /// Name of the topic. + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task TopicEventSubscriptionsList(string subscriptionId, string resourceGroupName, string topicName, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func onDefault, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync sender) + { + var apiVersion = @"2021-10-15-preview"; + // Constant Parameters + using( NoSynchronizationContext ) + { + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + global::System.Uri.EscapeDataString(subscriptionId) + + "/resourceGroups/" + + global::System.Uri.EscapeDataString(resourceGroupName) + + "/providers/Microsoft.EventGrid/topics/" + + global::System.Uri.EscapeDataString(topicName) + + "/eventSubscriptions" + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Method.Get, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.TopicEventSubscriptionsList_Call(request,onOk,onDefault,eventListener,sender); + } + } + + /// List all event subscriptions that have been created for a specific topic. + /// + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task TopicEventSubscriptionsListViaIdentity(global::System.String viaIdentity, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func onDefault, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync sender) + { + var apiVersion = @"2021-10-15-preview"; + // Constant Parameters + using( NoSynchronizationContext ) + { + // verify that Identity format is an exact match for uri + + var _match = new global::System.Text.RegularExpressions.Regex("^/subscriptions/(?[^/]+)/resourceGroups/(?[^/]+)/providers/Microsoft.EventGrid/topics/(?[^/]+)/eventSubscriptions$", global::System.Text.RegularExpressions.RegexOptions.IgnoreCase).Match(viaIdentity); + if (!_match.Success) + { + throw new global::System.Exception("Invalid identity for URI '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.EventGrid/topics/{topicName}/eventSubscriptions'"); + } + + // replace URI parameters with values from identity + var subscriptionId = _match.Groups["subscriptionId"].Value; + var resourceGroupName = _match.Groups["resourceGroupName"].Value; + var topicName = _match.Groups["topicName"].Value; + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + subscriptionId + + "/resourceGroups/" + + resourceGroupName + + "/providers/Microsoft.EventGrid/topics/" + + topicName + + "/eventSubscriptions" + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Method.Get, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.TopicEventSubscriptionsList_Call(request,onOk,onDefault,eventListener,sender); + } + } + + /// Actual wire call for method. + /// the prepared HttpRequestMessage to send. + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + internal async global::System.Threading.Tasks.Task TopicEventSubscriptionsList_Call(global::System.Net.Http.HttpRequestMessage request, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func onDefault, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync sender) + { + using( NoSynchronizationContext ) + { + global::System.Net.Http.HttpResponseMessage _response = null; + try + { + var sendTask = sender.SendAsync(request, eventListener); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.BeforeCall, request); if( eventListener.Token.IsCancellationRequested ) { return; } + _response = await sendTask; + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.ResponseCreated, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + var _contentType = _response.Content.Headers.ContentType?.MediaType; + + switch ( _response.StatusCode ) + { + case global::System.Net.HttpStatusCode.OK: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onOk(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.EventSubscriptionsListResult.FromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + default: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onDefault(_response); + break; + } + } + } + finally + { + // finally statements + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Finally, request, _response); + _response?.Dispose(); + request?.Dispose(); + } + } + } + + /// + /// Validation method for method. Call this like the actual call, but you will + /// get validation events back. + /// + /// Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription + /// ID forms part of the URI for every service call. + /// The name of the resource group within the user's subscription. + /// Name of the topic. + /// an instance that will receive events. + /// + /// A that will be complete when handling of the response is completed. + /// + internal async global::System.Threading.Tasks.Task TopicEventSubscriptionsList_Validate(string subscriptionId, string resourceGroupName, string topicName, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener eventListener) + { + using( NoSynchronizationContext ) + { + await eventListener.AssertNotNull(nameof(subscriptionId),subscriptionId); + await eventListener.AssertNotNull(nameof(resourceGroupName),resourceGroupName); + await eventListener.AssertNotNull(nameof(topicName),topicName); + } + } + + /// Update an existing event subscription for a topic. + /// Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription + /// ID forms part of the URI for every service call. + /// The name of the resource group within the user's subscription. + /// Name of the domain. + /// Name of the event subscription to be updated. + /// Updated event subscription information. + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task TopicEventSubscriptionsUpdate(string subscriptionId, string resourceGroupName, string topicName, string eventSubscriptionName, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionUpdateParameters body, global::System.Func onDefault, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync sender) + { + var apiVersion = @"2021-10-15-preview"; + // Constant Parameters + using( NoSynchronizationContext ) + { + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + global::System.Uri.EscapeDataString(subscriptionId) + + "/resourceGroups/" + + global::System.Uri.EscapeDataString(resourceGroupName) + + "/providers/Microsoft.EventGrid/topics/" + + global::System.Uri.EscapeDataString(topicName) + + "/eventSubscriptions/" + + global::System.Uri.EscapeDataString(eventSubscriptionName) + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Method.Patch, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // set body content + request.Content = new global::System.Net.Http.StringContent(null != body ? body.ToJson(null).ToString() : @"{}", global::System.Text.Encoding.UTF8); + request.Content.Headers.ContentType = global::System.Net.Http.Headers.MediaTypeHeaderValue.Parse("application/json"); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.BodyContentSet); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.TopicEventSubscriptionsUpdate_Call(request,onDefault,eventListener,sender); + } + } + + /// Update an existing event subscription for a topic. + /// + /// Updated event subscription information. + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task TopicEventSubscriptionsUpdateViaIdentity(global::System.String viaIdentity, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionUpdateParameters body, global::System.Func onDefault, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync sender) + { + var apiVersion = @"2021-10-15-preview"; + // Constant Parameters + using( NoSynchronizationContext ) + { + // verify that Identity format is an exact match for uri + + var _match = new global::System.Text.RegularExpressions.Regex("^/subscriptions/(?[^/]+)/resourceGroups/(?[^/]+)/providers/Microsoft.EventGrid/topics/(?[^/]+)/eventSubscriptions/(?[^/]+)$", global::System.Text.RegularExpressions.RegexOptions.IgnoreCase).Match(viaIdentity); + if (!_match.Success) + { + throw new global::System.Exception("Invalid identity for URI '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.EventGrid/topics/{topicName}/eventSubscriptions/{eventSubscriptionName}'"); + } + + // replace URI parameters with values from identity + var subscriptionId = _match.Groups["subscriptionId"].Value; + var resourceGroupName = _match.Groups["resourceGroupName"].Value; + var topicName = _match.Groups["topicName"].Value; + var eventSubscriptionName = _match.Groups["eventSubscriptionName"].Value; + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + subscriptionId + + "/resourceGroups/" + + resourceGroupName + + "/providers/Microsoft.EventGrid/topics/" + + topicName + + "/eventSubscriptions/" + + eventSubscriptionName + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Method.Patch, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // set body content + request.Content = new global::System.Net.Http.StringContent(null != body ? body.ToJson(null).ToString() : @"{}", global::System.Text.Encoding.UTF8); + request.Content.Headers.ContentType = global::System.Net.Http.Headers.MediaTypeHeaderValue.Parse("application/json"); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.BodyContentSet); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.TopicEventSubscriptionsUpdate_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.EventGrid.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + internal async global::System.Threading.Tasks.Task TopicEventSubscriptionsUpdate_Call(global::System.Net.Http.HttpRequestMessage request, global::System.Func onDefault, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync sender) + { + using( NoSynchronizationContext ) + { + global::System.Net.Http.HttpResponseMessage _response = null; + try + { + var sendTask = sender.SendAsync(request, eventListener); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.BeforeCall, request); if( eventListener.Token.IsCancellationRequested ) { return; } + _response = await sendTask; + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.ResponseCreated, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + // this operation supports x-ms-long-running-operation + var _originalUri = request.RequestUri.AbsoluteUri; + // declared final-state-via: default + var asyncOperation = _response.GetFirstHeader(@"Azure-AsyncOperation"); + var location = _response.GetFirstHeader(@"Location"); + while (request.Method == System.Net.Http.HttpMethod.Put && _response.StatusCode == global::System.Net.HttpStatusCode.OK || _response.StatusCode == global::System.Net.HttpStatusCode.Created || _response.StatusCode == global::System.Net.HttpStatusCode.Accepted ) + { + + // get the delay before polling. (default to 30 seconds if not present) + int delay = (int)(_response.Headers.RetryAfter?.Delta?.TotalSeconds ?? 30); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.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.EventGrid.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.EventGrid.Runtime.Json.JsonNode.Parse(await _response.Content.ReadAsStringAsync()) is Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Runtime.UndeclaredResponseException(_response); + } + } + + // check for terminal status code + if (_response.StatusCode == global::System.Net.HttpStatusCode.Created || _response.StatusCode == global::System.Net.HttpStatusCode.Accepted ) + { + continue; + } + // we are done polling, do a request on final target? + if (!string.IsNullOrWhiteSpace(_originalUri)) + { + // create a new request with the final uri + request = request.CloneAndDispose(new global::System.Uri(_originalUri), Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onDefault(_response); + break; + } + } + } + finally + { + // finally statements + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Finally, request, _response); + _response?.Dispose(); + request?.Dispose(); + } + } + } + + /// + /// Validation method for method. Call this like the actual call, but you will + /// get validation events back. + /// + /// Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription + /// ID forms part of the URI for every service call. + /// The name of the resource group within the user's subscription. + /// Name of the domain. + /// Name of the event subscription to be updated. + /// Updated event subscription information. + /// an instance that will receive events. + /// + /// A that will be complete when handling of the response is completed. + /// + internal async global::System.Threading.Tasks.Task TopicEventSubscriptionsUpdate_Validate(string subscriptionId, string resourceGroupName, string topicName, string eventSubscriptionName, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionUpdateParameters body, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener eventListener) + { + using( NoSynchronizationContext ) + { + await eventListener.AssertNotNull(nameof(subscriptionId),subscriptionId); + await eventListener.AssertNotNull(nameof(resourceGroupName),resourceGroupName); + await eventListener.AssertNotNull(nameof(topicName),topicName); + await eventListener.AssertNotNull(nameof(eventSubscriptionName),eventSubscriptionName); + await eventListener.AssertNotNull(nameof(body), body); + await eventListener.AssertObjectIsValid(nameof(body), body); + } + } + + /// Get information about a topic type. + /// Name of the topic type. + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task TopicTypesGet(string topicTypeName, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func onDefault, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync sender) + { + var apiVersion = @"2021-10-15-preview"; + // Constant Parameters + using( NoSynchronizationContext ) + { + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/providers/Microsoft.EventGrid/topicTypes/" + + global::System.Uri.EscapeDataString(topicTypeName) + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Method.Get, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.TopicTypesGet_Call(request,onOk,onDefault,eventListener,sender); + } + } + + /// Get information about a topic type. + /// + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task TopicTypesGetViaIdentity(global::System.String viaIdentity, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func onDefault, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync sender) + { + var apiVersion = @"2021-10-15-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.EventGrid/topicTypes/(?[^/]+)$", global::System.Text.RegularExpressions.RegexOptions.IgnoreCase).Match(viaIdentity); + if (!_match.Success) + { + throw new global::System.Exception("Invalid identity for URI '/providers/Microsoft.EventGrid/topicTypes/{topicTypeName}'"); + } + + // replace URI parameters with values from identity + var topicTypeName = _match.Groups["topicTypeName"].Value; + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/providers/Microsoft.EventGrid/topicTypes/" + + topicTypeName + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Method.Get, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.TopicTypesGet_Call(request,onOk,onDefault,eventListener,sender); + } + } + + /// Actual wire call for method. + /// the prepared HttpRequestMessage to send. + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + internal async global::System.Threading.Tasks.Task TopicTypesGet_Call(global::System.Net.Http.HttpRequestMessage request, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func onDefault, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync sender) + { + using( NoSynchronizationContext ) + { + global::System.Net.Http.HttpResponseMessage _response = null; + try + { + var sendTask = sender.SendAsync(request, eventListener); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.BeforeCall, request); if( eventListener.Token.IsCancellationRequested ) { return; } + _response = await sendTask; + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.ResponseCreated, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + var _contentType = _response.Content.Headers.ContentType?.MediaType; + + switch ( _response.StatusCode ) + { + case global::System.Net.HttpStatusCode.OK: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onOk(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.TopicTypeInfo.FromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + default: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onDefault(_response); + break; + } + } + } + finally + { + // finally statements + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Finally, request, _response); + _response?.Dispose(); + request?.Dispose(); + } + } + } + + /// + /// Validation method for method. Call this like the actual call, but you will get validation + /// events back. + /// + /// Name of the topic type. + /// an instance that will receive events. + /// + /// A that will be complete when handling of the response is completed. + /// + internal async global::System.Threading.Tasks.Task TopicTypesGet_Validate(string topicTypeName, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener eventListener) + { + using( NoSynchronizationContext ) + { + await eventListener.AssertNotNull(nameof(topicTypeName),topicTypeName); + } + } + + /// List all registered topic types. + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task TopicTypesList(global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func onDefault, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync sender) + { + var apiVersion = @"2021-10-15-preview"; + // Constant Parameters + using( NoSynchronizationContext ) + { + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/providers/Microsoft.EventGrid/topicTypes" + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Method.Get, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.TopicTypesList_Call(request,onOk,onDefault,eventListener,sender); + } + } + + /// List event types for a topic type. + /// Name of the topic type. + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task TopicTypesListEventTypes(string topicTypeName, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func onDefault, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync sender) + { + var apiVersion = @"2021-10-15-preview"; + // Constant Parameters + using( NoSynchronizationContext ) + { + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/providers/Microsoft.EventGrid/topicTypes/" + + global::System.Uri.EscapeDataString(topicTypeName) + + "/eventTypes" + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Method.Get, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.TopicTypesListEventTypes_Call(request,onOk,onDefault,eventListener,sender); + } + } + + /// List event types for a topic type. + /// + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task TopicTypesListEventTypesViaIdentity(global::System.String viaIdentity, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func onDefault, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync sender) + { + var apiVersion = @"2021-10-15-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.EventGrid/topicTypes/(?[^/]+)/eventTypes$", global::System.Text.RegularExpressions.RegexOptions.IgnoreCase).Match(viaIdentity); + if (!_match.Success) + { + throw new global::System.Exception("Invalid identity for URI '/providers/Microsoft.EventGrid/topicTypes/{topicTypeName}/eventTypes'"); + } + + // replace URI parameters with values from identity + var topicTypeName = _match.Groups["topicTypeName"].Value; + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/providers/Microsoft.EventGrid/topicTypes/" + + topicTypeName + + "/eventTypes" + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Method.Get, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.TopicTypesListEventTypes_Call(request,onOk,onDefault,eventListener,sender); + } + } + + /// Actual wire call for method. + /// the prepared HttpRequestMessage to send. + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + internal async global::System.Threading.Tasks.Task TopicTypesListEventTypes_Call(global::System.Net.Http.HttpRequestMessage request, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func onDefault, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync sender) + { + using( NoSynchronizationContext ) + { + global::System.Net.Http.HttpResponseMessage _response = null; + try + { + var sendTask = sender.SendAsync(request, eventListener); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.BeforeCall, request); if( eventListener.Token.IsCancellationRequested ) { return; } + _response = await sendTask; + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.ResponseCreated, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + var _contentType = _response.Content.Headers.ContentType?.MediaType; + + switch ( _response.StatusCode ) + { + case global::System.Net.HttpStatusCode.OK: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onOk(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.EventTypesListResult.FromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + default: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onDefault(_response); + break; + } + } + } + finally + { + // finally statements + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Finally, request, _response); + _response?.Dispose(); + request?.Dispose(); + } + } + } + + /// + /// Validation method for method. Call this like the actual call, but you will get + /// validation events back. + /// + /// Name of the topic type. + /// an instance that will receive events. + /// + /// A that will be complete when handling of the response is completed. + /// + internal async global::System.Threading.Tasks.Task TopicTypesListEventTypes_Validate(string topicTypeName, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener eventListener) + { + using( NoSynchronizationContext ) + { + await eventListener.AssertNotNull(nameof(topicTypeName),topicTypeName); + } + } + + /// List all registered topic types. + /// + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task TopicTypesListViaIdentity(global::System.String viaIdentity, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func onDefault, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync sender) + { + var apiVersion = @"2021-10-15-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.EventGrid/topicTypes$", global::System.Text.RegularExpressions.RegexOptions.IgnoreCase).Match(viaIdentity); + if (!_match.Success) + { + throw new global::System.Exception("Invalid identity for URI '/providers/Microsoft.EventGrid/topicTypes'"); + } + + // replace URI parameters with values from identity + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/providers/Microsoft.EventGrid/topicTypes" + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Method.Get, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.TopicTypesList_Call(request,onOk,onDefault,eventListener,sender); + } + } + + /// Actual wire call for method. + /// the prepared HttpRequestMessage to send. + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + internal async global::System.Threading.Tasks.Task TopicTypesList_Call(global::System.Net.Http.HttpRequestMessage request, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func onDefault, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync sender) + { + using( NoSynchronizationContext ) + { + global::System.Net.Http.HttpResponseMessage _response = null; + try + { + var sendTask = sender.SendAsync(request, eventListener); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.BeforeCall, request); if( eventListener.Token.IsCancellationRequested ) { return; } + _response = await sendTask; + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.ResponseCreated, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + var _contentType = _response.Content.Headers.ContentType?.MediaType; + + switch ( _response.StatusCode ) + { + case global::System.Net.HttpStatusCode.OK: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onOk(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.TopicTypesListResult.FromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + default: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onDefault(_response); + break; + } + } + } + finally + { + // finally statements + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.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 TopicTypesList_Validate(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener eventListener) + { + using( NoSynchronizationContext ) + { + + } + } + + /// Asynchronously creates a new topic with the specified parameters. + /// Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription + /// ID forms part of the URI for every service call. + /// The name of the resource group within the user's subscription. + /// Name of the topic. + /// Topic information. + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task TopicsCreateOrUpdate(string subscriptionId, string resourceGroupName, string topicName, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITopic body, global::System.Func onDefault, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync sender) + { + var apiVersion = @"2021-10-15-preview"; + // Constant Parameters + using( NoSynchronizationContext ) + { + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + global::System.Uri.EscapeDataString(subscriptionId) + + "/resourceGroups/" + + global::System.Uri.EscapeDataString(resourceGroupName) + + "/providers/Microsoft.EventGrid/topics/" + + global::System.Uri.EscapeDataString(topicName) + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Method.Put, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // set body content + request.Content = new global::System.Net.Http.StringContent(null != body ? body.ToJson(null).ToString() : @"{}", global::System.Text.Encoding.UTF8); + request.Content.Headers.ContentType = global::System.Net.Http.Headers.MediaTypeHeaderValue.Parse("application/json"); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.BodyContentSet); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.TopicsCreateOrUpdate_Call(request,onDefault,eventListener,sender); + } + } + + /// Asynchronously creates a new topic with the specified parameters. + /// + /// Topic information. + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task TopicsCreateOrUpdateViaIdentity(global::System.String viaIdentity, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITopic body, global::System.Func onDefault, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync sender) + { + var apiVersion = @"2021-10-15-preview"; + // Constant Parameters + using( NoSynchronizationContext ) + { + // verify that Identity format is an exact match for uri + + var _match = new global::System.Text.RegularExpressions.Regex("^/subscriptions/(?[^/]+)/resourceGroups/(?[^/]+)/providers/Microsoft.EventGrid/topics/(?[^/]+)$", global::System.Text.RegularExpressions.RegexOptions.IgnoreCase).Match(viaIdentity); + if (!_match.Success) + { + throw new global::System.Exception("Invalid identity for URI '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.EventGrid/topics/{topicName}'"); + } + + // replace URI parameters with values from identity + var subscriptionId = _match.Groups["subscriptionId"].Value; + var resourceGroupName = _match.Groups["resourceGroupName"].Value; + var topicName = _match.Groups["topicName"].Value; + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + subscriptionId + + "/resourceGroups/" + + resourceGroupName + + "/providers/Microsoft.EventGrid/topics/" + + topicName + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Method.Put, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // set body content + request.Content = new global::System.Net.Http.StringContent(null != body ? body.ToJson(null).ToString() : @"{}", global::System.Text.Encoding.UTF8); + request.Content.Headers.ContentType = global::System.Net.Http.Headers.MediaTypeHeaderValue.Parse("application/json"); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.BodyContentSet); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.TopicsCreateOrUpdate_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.EventGrid.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + internal async global::System.Threading.Tasks.Task TopicsCreateOrUpdate_Call(global::System.Net.Http.HttpRequestMessage request, global::System.Func onDefault, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync sender) + { + using( NoSynchronizationContext ) + { + global::System.Net.Http.HttpResponseMessage _response = null; + try + { + var sendTask = sender.SendAsync(request, eventListener); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.BeforeCall, request); if( eventListener.Token.IsCancellationRequested ) { return; } + _response = await sendTask; + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.ResponseCreated, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + // this operation supports x-ms-long-running-operation + var _originalUri = request.RequestUri.AbsoluteUri; + // declared final-state-via: default + var asyncOperation = _response.GetFirstHeader(@"Azure-AsyncOperation"); + var location = _response.GetFirstHeader(@"Location"); + while (request.Method == System.Net.Http.HttpMethod.Put && _response.StatusCode == global::System.Net.HttpStatusCode.OK || _response.StatusCode == global::System.Net.HttpStatusCode.Created || _response.StatusCode == global::System.Net.HttpStatusCode.Accepted ) + { + + // get the delay before polling. (default to 30 seconds if not present) + int delay = (int)(_response.Headers.RetryAfter?.Delta?.TotalSeconds ?? 30); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.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.EventGrid.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.EventGrid.Runtime.Json.JsonNode.Parse(await _response.Content.ReadAsStringAsync()) is Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Runtime.UndeclaredResponseException(_response); + } + } + + // check for terminal status code + if (_response.StatusCode == global::System.Net.HttpStatusCode.Created || _response.StatusCode == global::System.Net.HttpStatusCode.Accepted ) + { + continue; + } + // we are done polling, do a request on final target? + if (!string.IsNullOrWhiteSpace(_originalUri)) + { + // create a new request with the final uri + request = request.CloneAndDispose(new global::System.Uri(_originalUri), Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onDefault(_response); + break; + } + } + } + finally + { + // finally statements + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Finally, request, _response); + _response?.Dispose(); + request?.Dispose(); + } + } + } + + /// + /// Validation method for method. Call this like the actual call, but you will get validation + /// events back. + /// + /// Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription + /// ID forms part of the URI for every service call. + /// The name of the resource group within the user's subscription. + /// Name of the topic. + /// Topic information. + /// an instance that will receive events. + /// + /// A that will be complete when handling of the response is completed. + /// + internal async global::System.Threading.Tasks.Task TopicsCreateOrUpdate_Validate(string subscriptionId, string resourceGroupName, string topicName, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITopic body, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener eventListener) + { + using( NoSynchronizationContext ) + { + await eventListener.AssertNotNull(nameof(subscriptionId),subscriptionId); + await eventListener.AssertNotNull(nameof(resourceGroupName),resourceGroupName); + await eventListener.AssertNotNull(nameof(topicName),topicName); + await eventListener.AssertNotNull(nameof(body), body); + await eventListener.AssertObjectIsValid(nameof(body), body); + } + } + + /// Delete existing topic. + /// Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription + /// ID forms part of the URI for every service call. + /// The name of the resource group within the user's subscription. + /// Name of the topic. + /// 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.EventGrid.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task TopicsDelete(string subscriptionId, string resourceGroupName, string topicName, global::System.Func onNoContent, global::System.Func onDefault, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync sender) + { + var apiVersion = @"2021-10-15-preview"; + // Constant Parameters + using( NoSynchronizationContext ) + { + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + global::System.Uri.EscapeDataString(subscriptionId) + + "/resourceGroups/" + + global::System.Uri.EscapeDataString(resourceGroupName) + + "/providers/Microsoft.EventGrid/topics/" + + global::System.Uri.EscapeDataString(topicName) + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Method.Delete, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.TopicsDelete_Call(request,onNoContent,onDefault,eventListener,sender); + } + } + + /// Delete existing topic. + /// + /// 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.EventGrid.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task TopicsDeleteViaIdentity(global::System.String viaIdentity, global::System.Func onNoContent, global::System.Func onDefault, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync sender) + { + var apiVersion = @"2021-10-15-preview"; + // Constant Parameters + using( NoSynchronizationContext ) + { + // verify that Identity format is an exact match for uri + + var _match = new global::System.Text.RegularExpressions.Regex("^/subscriptions/(?[^/]+)/resourceGroups/(?[^/]+)/providers/Microsoft.EventGrid/topics/(?[^/]+)$", global::System.Text.RegularExpressions.RegexOptions.IgnoreCase).Match(viaIdentity); + if (!_match.Success) + { + throw new global::System.Exception("Invalid identity for URI '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.EventGrid/topics/{topicName}'"); + } + + // replace URI parameters with values from identity + var subscriptionId = _match.Groups["subscriptionId"].Value; + var resourceGroupName = _match.Groups["resourceGroupName"].Value; + var topicName = _match.Groups["topicName"].Value; + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + subscriptionId + + "/resourceGroups/" + + resourceGroupName + + "/providers/Microsoft.EventGrid/topics/" + + topicName + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Method.Delete, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.TopicsDelete_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.EventGrid.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + internal async global::System.Threading.Tasks.Task TopicsDelete_Call(global::System.Net.Http.HttpRequestMessage request, global::System.Func onNoContent, global::System.Func onDefault, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync sender) + { + using( NoSynchronizationContext ) + { + global::System.Net.Http.HttpResponseMessage _response = null; + try + { + var sendTask = sender.SendAsync(request, eventListener); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.BeforeCall, request); if( eventListener.Token.IsCancellationRequested ) { return; } + _response = await sendTask; + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.ResponseCreated, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + // this operation supports x-ms-long-running-operation + var _originalUri = request.RequestUri.AbsoluteUri; + // declared final-state-via: default + var _finalUri = _response.GetFirstHeader(@"Location"); + var asyncOperation = _response.GetFirstHeader(@"Azure-AsyncOperation"); + var location = _response.GetFirstHeader(@"Location"); + while (request.Method == System.Net.Http.HttpMethod.Put && _response.StatusCode == global::System.Net.HttpStatusCode.OK || _response.StatusCode == global::System.Net.HttpStatusCode.Created || _response.StatusCode == global::System.Net.HttpStatusCode.Accepted ) + { + + // get the delay before polling. (default to 30 seconds if not present) + int delay = (int)(_response.Headers.RetryAfter?.Delta?.TotalSeconds ?? 30); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.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.EventGrid.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.EventGrid.Runtime.Json.JsonNode.Parse(await _response.Content.ReadAsStringAsync()) is Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Runtime.UndeclaredResponseException(_response); + } + } + + // check for terminal status code + if (_response.StatusCode == global::System.Net.HttpStatusCode.Created || _response.StatusCode == global::System.Net.HttpStatusCode.Accepted ) + { + continue; + } + // we are done polling, do a request on final target? + if (!string.IsNullOrWhiteSpace(_finalUri)) + { + // create a new request with the final uri + request = request.CloneAndDispose(new global::System.Uri(_finalUri), Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Method.Get); + + // drop the old response + _response?.Dispose(); + + // make the final call + _response = await sender.SendAsync(request, eventListener); + break; + } + } + var _contentType = _response.Content.Headers.ContentType?.MediaType; + + switch ( _response.StatusCode ) + { + case global::System.Net.HttpStatusCode.NoContent: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onNoContent(_response); + break; + } + default: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onDefault(_response); + break; + } + } + } + finally + { + // finally statements + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Finally, request, _response); + _response?.Dispose(); + request?.Dispose(); + } + } + } + + /// + /// Validation method for method. Call this like the actual call, but you will get validation + /// events back. + /// + /// Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription + /// ID forms part of the URI for every service call. + /// The name of the resource group within the user's subscription. + /// Name of the topic. + /// an instance that will receive events. + /// + /// A that will be complete when handling of the response is completed. + /// + internal async global::System.Threading.Tasks.Task TopicsDelete_Validate(string subscriptionId, string resourceGroupName, string topicName, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener eventListener) + { + using( NoSynchronizationContext ) + { + await eventListener.AssertNotNull(nameof(subscriptionId),subscriptionId); + await eventListener.AssertNotNull(nameof(resourceGroupName),resourceGroupName); + await eventListener.AssertNotNull(nameof(topicName),topicName); + } + } + + /// Get properties of a topic. + /// Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription + /// ID forms part of the URI for every service call. + /// The name of the resource group within the user's subscription. + /// Name of the topic. + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task TopicsGet(string subscriptionId, string resourceGroupName, string topicName, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func onDefault, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync sender) + { + var apiVersion = @"2021-10-15-preview"; + // Constant Parameters + using( NoSynchronizationContext ) + { + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + global::System.Uri.EscapeDataString(subscriptionId) + + "/resourceGroups/" + + global::System.Uri.EscapeDataString(resourceGroupName) + + "/providers/Microsoft.EventGrid/topics/" + + global::System.Uri.EscapeDataString(topicName) + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Method.Get, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.TopicsGet_Call(request,onOk,onDefault,eventListener,sender); + } + } + + /// Get properties of a topic. + /// + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task TopicsGetViaIdentity(global::System.String viaIdentity, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func onDefault, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync sender) + { + var apiVersion = @"2021-10-15-preview"; + // Constant Parameters + using( NoSynchronizationContext ) + { + // verify that Identity format is an exact match for uri + + var _match = new global::System.Text.RegularExpressions.Regex("^/subscriptions/(?[^/]+)/resourceGroups/(?[^/]+)/providers/Microsoft.EventGrid/topics/(?[^/]+)$", global::System.Text.RegularExpressions.RegexOptions.IgnoreCase).Match(viaIdentity); + if (!_match.Success) + { + throw new global::System.Exception("Invalid identity for URI '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.EventGrid/topics/{topicName}'"); + } + + // replace URI parameters with values from identity + var subscriptionId = _match.Groups["subscriptionId"].Value; + var resourceGroupName = _match.Groups["resourceGroupName"].Value; + var topicName = _match.Groups["topicName"].Value; + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + subscriptionId + + "/resourceGroups/" + + resourceGroupName + + "/providers/Microsoft.EventGrid/topics/" + + topicName + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Method.Get, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.TopicsGet_Call(request,onOk,onDefault,eventListener,sender); + } + } + + /// Actual wire call for method. + /// the prepared HttpRequestMessage to send. + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + internal async global::System.Threading.Tasks.Task TopicsGet_Call(global::System.Net.Http.HttpRequestMessage request, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func onDefault, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync sender) + { + using( NoSynchronizationContext ) + { + global::System.Net.Http.HttpResponseMessage _response = null; + try + { + var sendTask = sender.SendAsync(request, eventListener); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.BeforeCall, request); if( eventListener.Token.IsCancellationRequested ) { return; } + _response = await sendTask; + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.ResponseCreated, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + var _contentType = _response.Content.Headers.ContentType?.MediaType; + + switch ( _response.StatusCode ) + { + case global::System.Net.HttpStatusCode.OK: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onOk(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.Topic.FromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + default: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onDefault(_response); + break; + } + } + } + finally + { + // finally statements + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Finally, request, _response); + _response?.Dispose(); + request?.Dispose(); + } + } + } + + /// + /// Validation method for method. Call this like the actual call, but you will get validation events + /// back. + /// + /// Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription + /// ID forms part of the URI for every service call. + /// The name of the resource group within the user's subscription. + /// Name of the topic. + /// an instance that will receive events. + /// + /// A that will be complete when handling of the response is completed. + /// + internal async global::System.Threading.Tasks.Task TopicsGet_Validate(string subscriptionId, string resourceGroupName, string topicName, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener eventListener) + { + using( NoSynchronizationContext ) + { + await eventListener.AssertNotNull(nameof(subscriptionId),subscriptionId); + await eventListener.AssertNotNull(nameof(resourceGroupName),resourceGroupName); + await eventListener.AssertNotNull(nameof(topicName),topicName); + } + } + + /// List all the topics under a resource group. + /// Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription + /// ID forms part of the URI for every service call. + /// The name of the resource group within the user's subscription. + /// The query used to filter the search results using OData syntax. Filtering is permitted on the 'name' + /// property only and with limited number of OData operations. These operations are: the 'contains' function as well as the + /// following logical operations: not, and, or, eq (for equal), and ne (for not equal). No arithmetic operations are supported. + /// The following is a valid filter example: $filter=contains(namE, 'PATTERN') and name ne 'PATTERN-1'. The following is not + /// a valid filter example: $filter=location eq 'westus'. + /// The number of results to return per page for the list operation. Valid range for top parameter is 1 + /// to 100. If not specified, the default number of results to be returned is 20 items per page. + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task TopicsListByResourceGroup(string subscriptionId, string resourceGroupName, string Filter, int? Top, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func onDefault, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync sender) + { + var apiVersion = @"2021-10-15-preview"; + // Constant Parameters + using( NoSynchronizationContext ) + { + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + global::System.Uri.EscapeDataString(subscriptionId) + + "/resourceGroups/" + + global::System.Uri.EscapeDataString(resourceGroupName) + + "/providers/Microsoft.EventGrid/topics" + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + + "&" + + (string.IsNullOrEmpty(Filter) ? global::System.String.Empty : "$filter=" + global::System.Uri.EscapeDataString(Filter)) + + "&" + + (null == Top ? global::System.String.Empty : "$top=" + global::System.Uri.EscapeDataString(Top.ToString())) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Method.Get, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.TopicsListByResourceGroup_Call(request,onOk,onDefault,eventListener,sender); + } + } + + /// List all the topics under a resource group. + /// + /// The query used to filter the search results using OData syntax. Filtering is permitted on the 'name' + /// property only and with limited number of OData operations. These operations are: the 'contains' function as well as the + /// following logical operations: not, and, or, eq (for equal), and ne (for not equal). No arithmetic operations are supported. + /// The following is a valid filter example: $filter=contains(namE, 'PATTERN') and name ne 'PATTERN-1'. The following is not + /// a valid filter example: $filter=location eq 'westus'. + /// The number of results to return per page for the list operation. Valid range for top parameter is 1 + /// to 100. If not specified, the default number of results to be returned is 20 items per page. + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task TopicsListByResourceGroupViaIdentity(global::System.String viaIdentity, string Filter, int? Top, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func onDefault, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync sender) + { + var apiVersion = @"2021-10-15-preview"; + // Constant Parameters + using( NoSynchronizationContext ) + { + // verify that Identity format is an exact match for uri + + var _match = new global::System.Text.RegularExpressions.Regex("^/subscriptions/(?[^/]+)/resourceGroups/(?[^/]+)/providers/Microsoft.EventGrid/topics$", global::System.Text.RegularExpressions.RegexOptions.IgnoreCase).Match(viaIdentity); + if (!_match.Success) + { + throw new global::System.Exception("Invalid identity for URI '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.EventGrid/topics'"); + } + + // 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.EventGrid/topics" + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + + "&" + + (string.IsNullOrEmpty(Filter) ? global::System.String.Empty : "$filter=" + global::System.Uri.EscapeDataString(Filter)) + + "&" + + (null == Top ? global::System.String.Empty : "$top=" + global::System.Uri.EscapeDataString(Top.ToString())) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Method.Get, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.TopicsListByResourceGroup_Call(request,onOk,onDefault,eventListener,sender); + } + } + + /// Actual wire call for method. + /// the prepared HttpRequestMessage to send. + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + internal async global::System.Threading.Tasks.Task TopicsListByResourceGroup_Call(global::System.Net.Http.HttpRequestMessage request, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func onDefault, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync sender) + { + using( NoSynchronizationContext ) + { + global::System.Net.Http.HttpResponseMessage _response = null; + try + { + var sendTask = sender.SendAsync(request, eventListener); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.BeforeCall, request); if( eventListener.Token.IsCancellationRequested ) { return; } + _response = await sendTask; + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.ResponseCreated, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + var _contentType = _response.Content.Headers.ContentType?.MediaType; + + switch ( _response.StatusCode ) + { + case global::System.Net.HttpStatusCode.OK: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onOk(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.TopicsListResult.FromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + default: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onDefault(_response); + break; + } + } + } + finally + { + // finally statements + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Finally, request, _response); + _response?.Dispose(); + request?.Dispose(); + } + } + } + + /// + /// Validation method for method. Call this like the actual call, but you will get + /// validation events back. + /// + /// Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription + /// ID forms part of the URI for every service call. + /// The name of the resource group within the user's subscription. + /// The query used to filter the search results using OData syntax. Filtering is permitted on the 'name' + /// property only and with limited number of OData operations. These operations are: the 'contains' function as well as the + /// following logical operations: not, and, or, eq (for equal), and ne (for not equal). No arithmetic operations are supported. + /// The following is a valid filter example: $filter=contains(namE, 'PATTERN') and name ne 'PATTERN-1'. The following is not + /// a valid filter example: $filter=location eq 'westus'. + /// The number of results to return per page for the list operation. Valid range for top parameter is 1 + /// to 100. If not specified, the default number of results to be returned is 20 items per page. + /// an instance that will receive events. + /// + /// A that will be complete when handling of the response is completed. + /// + internal async global::System.Threading.Tasks.Task TopicsListByResourceGroup_Validate(string subscriptionId, string resourceGroupName, string Filter, int? Top, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener eventListener) + { + using( NoSynchronizationContext ) + { + await eventListener.AssertNotNull(nameof(subscriptionId),subscriptionId); + await eventListener.AssertNotNull(nameof(resourceGroupName),resourceGroupName); + await eventListener.AssertNotNull(nameof(Filter),Filter); + } + } + + /// List all the topics under an Azure subscription. + /// Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription + /// ID forms part of the URI for every service call. + /// The query used to filter the search results using OData syntax. Filtering is permitted on the 'name' + /// property only and with limited number of OData operations. These operations are: the 'contains' function as well as the + /// following logical operations: not, and, or, eq (for equal), and ne (for not equal). No arithmetic operations are supported. + /// The following is a valid filter example: $filter=contains(namE, 'PATTERN') and name ne 'PATTERN-1'. The following is not + /// a valid filter example: $filter=location eq 'westus'. + /// The number of results to return per page for the list operation. Valid range for top parameter is 1 + /// to 100. If not specified, the default number of results to be returned is 20 items per page. + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task TopicsListBySubscription(string subscriptionId, string Filter, int? Top, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func onDefault, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync sender) + { + var apiVersion = @"2021-10-15-preview"; + // Constant Parameters + using( NoSynchronizationContext ) + { + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + global::System.Uri.EscapeDataString(subscriptionId) + + "/providers/Microsoft.EventGrid/topics" + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + + "&" + + (string.IsNullOrEmpty(Filter) ? global::System.String.Empty : "$filter=" + global::System.Uri.EscapeDataString(Filter)) + + "&" + + (null == Top ? global::System.String.Empty : "$top=" + global::System.Uri.EscapeDataString(Top.ToString())) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Method.Get, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.TopicsListBySubscription_Call(request,onOk,onDefault,eventListener,sender); + } + } + + /// List all the topics under an Azure subscription. + /// + /// The query used to filter the search results using OData syntax. Filtering is permitted on the 'name' + /// property only and with limited number of OData operations. These operations are: the 'contains' function as well as the + /// following logical operations: not, and, or, eq (for equal), and ne (for not equal). No arithmetic operations are supported. + /// The following is a valid filter example: $filter=contains(namE, 'PATTERN') and name ne 'PATTERN-1'. The following is not + /// a valid filter example: $filter=location eq 'westus'. + /// The number of results to return per page for the list operation. Valid range for top parameter is 1 + /// to 100. If not specified, the default number of results to be returned is 20 items per page. + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task TopicsListBySubscriptionViaIdentity(global::System.String viaIdentity, string Filter, int? Top, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func onDefault, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync sender) + { + var apiVersion = @"2021-10-15-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.EventGrid/topics$", global::System.Text.RegularExpressions.RegexOptions.IgnoreCase).Match(viaIdentity); + if (!_match.Success) + { + throw new global::System.Exception("Invalid identity for URI '/subscriptions/{subscriptionId}/providers/Microsoft.EventGrid/topics'"); + } + + // 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.EventGrid/topics" + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + + "&" + + (string.IsNullOrEmpty(Filter) ? global::System.String.Empty : "$filter=" + global::System.Uri.EscapeDataString(Filter)) + + "&" + + (null == Top ? global::System.String.Empty : "$top=" + global::System.Uri.EscapeDataString(Top.ToString())) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Method.Get, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.TopicsListBySubscription_Call(request,onOk,onDefault,eventListener,sender); + } + } + + /// Actual wire call for method. + /// the prepared HttpRequestMessage to send. + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + internal async global::System.Threading.Tasks.Task TopicsListBySubscription_Call(global::System.Net.Http.HttpRequestMessage request, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func onDefault, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync sender) + { + using( NoSynchronizationContext ) + { + global::System.Net.Http.HttpResponseMessage _response = null; + try + { + var sendTask = sender.SendAsync(request, eventListener); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.BeforeCall, request); if( eventListener.Token.IsCancellationRequested ) { return; } + _response = await sendTask; + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.ResponseCreated, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + var _contentType = _response.Content.Headers.ContentType?.MediaType; + + switch ( _response.StatusCode ) + { + case global::System.Net.HttpStatusCode.OK: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onOk(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.TopicsListResult.FromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + default: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onDefault(_response); + break; + } + } + } + finally + { + // finally statements + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Finally, request, _response); + _response?.Dispose(); + request?.Dispose(); + } + } + } + + /// + /// Validation method for method. Call this like the actual call, but you will get + /// validation events back. + /// + /// Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription + /// ID forms part of the URI for every service call. + /// The query used to filter the search results using OData syntax. Filtering is permitted on the 'name' + /// property only and with limited number of OData operations. These operations are: the 'contains' function as well as the + /// following logical operations: not, and, or, eq (for equal), and ne (for not equal). No arithmetic operations are supported. + /// The following is a valid filter example: $filter=contains(namE, 'PATTERN') and name ne 'PATTERN-1'. The following is not + /// a valid filter example: $filter=location eq 'westus'. + /// The number of results to return per page for the list operation. Valid range for top parameter is 1 + /// to 100. If not specified, the default number of results to be returned is 20 items per page. + /// an instance that will receive events. + /// + /// A that will be complete when handling of the response is completed. + /// + internal async global::System.Threading.Tasks.Task TopicsListBySubscription_Validate(string subscriptionId, string Filter, int? Top, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener eventListener) + { + using( NoSynchronizationContext ) + { + await eventListener.AssertNotNull(nameof(subscriptionId),subscriptionId); + await eventListener.AssertNotNull(nameof(Filter),Filter); + } + } + + /// List event types for a topic. + /// Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription + /// ID forms part of the URI for every service call. + /// The name of the resource group within the user's subscription. + /// Namespace of the provider of the topic. + /// Name of the topic type. + /// Name of the topic. + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task TopicsListEventTypes(string subscriptionId, string resourceGroupName, string providerNamespace, string resourceTypeName, string resourceName, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func onDefault, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync sender) + { + var apiVersion = @"2021-10-15-preview"; + // Constant Parameters + using( NoSynchronizationContext ) + { + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + global::System.Uri.EscapeDataString(subscriptionId) + + "/resourceGroups/" + + global::System.Uri.EscapeDataString(resourceGroupName) + + "/providers/" + + global::System.Uri.EscapeDataString(providerNamespace) + + "/" + + global::System.Uri.EscapeDataString(resourceTypeName) + + "/" + + global::System.Uri.EscapeDataString(resourceName) + + "/providers/Microsoft.EventGrid/eventTypes" + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Method.Get, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.TopicsListEventTypes_Call(request,onOk,onDefault,eventListener,sender); + } + } + + /// List event types for a topic. + /// + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task TopicsListEventTypesViaIdentity(global::System.String viaIdentity, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func onDefault, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync sender) + { + var apiVersion = @"2021-10-15-preview"; + // Constant Parameters + using( NoSynchronizationContext ) + { + // verify that Identity format is an exact match for uri + + var _match = new global::System.Text.RegularExpressions.Regex("^/subscriptions/(?[^/]+)/resourceGroups/(?[^/]+)/providers/(?[^/]+)/(?[^/]+)/(?[^/]+)/providers/Microsoft.EventGrid/eventTypes$", global::System.Text.RegularExpressions.RegexOptions.IgnoreCase).Match(viaIdentity); + if (!_match.Success) + { + throw new global::System.Exception("Invalid identity for URI '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{providerNamespace}/{resourceTypeName}/{resourceName}/providers/Microsoft.EventGrid/eventTypes'"); + } + + // replace URI parameters with values from identity + var subscriptionId = _match.Groups["subscriptionId"].Value; + var resourceGroupName = _match.Groups["resourceGroupName"].Value; + var providerNamespace = _match.Groups["providerNamespace"].Value; + var resourceTypeName = _match.Groups["resourceTypeName"].Value; + var resourceName = _match.Groups["resourceName"].Value; + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + subscriptionId + + "/resourceGroups/" + + resourceGroupName + + "/providers/" + + providerNamespace + + "/" + + resourceTypeName + + "/" + + resourceName + + "/providers/Microsoft.EventGrid/eventTypes" + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Method.Get, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.TopicsListEventTypes_Call(request,onOk,onDefault,eventListener,sender); + } + } + + /// Actual wire call for method. + /// the prepared HttpRequestMessage to send. + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + internal async global::System.Threading.Tasks.Task TopicsListEventTypes_Call(global::System.Net.Http.HttpRequestMessage request, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func onDefault, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync sender) + { + using( NoSynchronizationContext ) + { + global::System.Net.Http.HttpResponseMessage _response = null; + try + { + var sendTask = sender.SendAsync(request, eventListener); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.BeforeCall, request); if( eventListener.Token.IsCancellationRequested ) { return; } + _response = await sendTask; + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.ResponseCreated, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + var _contentType = _response.Content.Headers.ContentType?.MediaType; + + switch ( _response.StatusCode ) + { + case global::System.Net.HttpStatusCode.OK: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onOk(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.EventTypesListResult.FromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + default: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onDefault(_response); + break; + } + } + } + finally + { + // finally statements + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Finally, request, _response); + _response?.Dispose(); + request?.Dispose(); + } + } + } + + /// + /// Validation method for method. Call this like the actual call, but you will get validation + /// events back. + /// + /// Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription + /// ID forms part of the URI for every service call. + /// The name of the resource group within the user's subscription. + /// Namespace of the provider of the topic. + /// Name of the topic type. + /// Name of the topic. + /// an instance that will receive events. + /// + /// A that will be complete when handling of the response is completed. + /// + internal async global::System.Threading.Tasks.Task TopicsListEventTypes_Validate(string subscriptionId, string resourceGroupName, string providerNamespace, string resourceTypeName, string resourceName, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener eventListener) + { + using( NoSynchronizationContext ) + { + await eventListener.AssertNotNull(nameof(subscriptionId),subscriptionId); + await eventListener.AssertNotNull(nameof(resourceGroupName),resourceGroupName); + await eventListener.AssertNotNull(nameof(providerNamespace),providerNamespace); + await eventListener.AssertNotNull(nameof(resourceTypeName),resourceTypeName); + await eventListener.AssertNotNull(nameof(resourceName),resourceName); + } + } + + /// List the two keys used to publish to a topic. + /// Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription + /// ID forms part of the URI for every service call. + /// The name of the resource group within the user's subscription. + /// Name of the topic. + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task TopicsListSharedAccessKeys(string subscriptionId, string resourceGroupName, string topicName, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func onDefault, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync sender) + { + var apiVersion = @"2021-10-15-preview"; + // Constant Parameters + using( NoSynchronizationContext ) + { + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + global::System.Uri.EscapeDataString(subscriptionId) + + "/resourceGroups/" + + global::System.Uri.EscapeDataString(resourceGroupName) + + "/providers/Microsoft.EventGrid/topics/" + + global::System.Uri.EscapeDataString(topicName) + + "/listKeys" + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Method.Post, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.TopicsListSharedAccessKeys_Call(request,onOk,onDefault,eventListener,sender); + } + } + + /// List the two keys used to publish to a topic. + /// + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task TopicsListSharedAccessKeysViaIdentity(global::System.String viaIdentity, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func onDefault, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync sender) + { + var apiVersion = @"2021-10-15-preview"; + // Constant Parameters + using( NoSynchronizationContext ) + { + // verify that Identity format is an exact match for uri + + var _match = new global::System.Text.RegularExpressions.Regex("^/subscriptions/(?[^/]+)/resourceGroups/(?[^/]+)/providers/Microsoft.EventGrid/topics/(?[^/]+)/listKeys$", global::System.Text.RegularExpressions.RegexOptions.IgnoreCase).Match(viaIdentity); + if (!_match.Success) + { + throw new global::System.Exception("Invalid identity for URI '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.EventGrid/topics/{topicName}/listKeys'"); + } + + // replace URI parameters with values from identity + var subscriptionId = _match.Groups["subscriptionId"].Value; + var resourceGroupName = _match.Groups["resourceGroupName"].Value; + var topicName = _match.Groups["topicName"].Value; + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + subscriptionId + + "/resourceGroups/" + + resourceGroupName + + "/providers/Microsoft.EventGrid/topics/" + + topicName + + "/listKeys" + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Method.Post, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.TopicsListSharedAccessKeys_Call(request,onOk,onDefault,eventListener,sender); + } + } + + /// Actual wire call for method. + /// the prepared HttpRequestMessage to send. + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + internal async global::System.Threading.Tasks.Task TopicsListSharedAccessKeys_Call(global::System.Net.Http.HttpRequestMessage request, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func onDefault, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync sender) + { + using( NoSynchronizationContext ) + { + global::System.Net.Http.HttpResponseMessage _response = null; + try + { + var sendTask = sender.SendAsync(request, eventListener); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.BeforeCall, request); if( eventListener.Token.IsCancellationRequested ) { return; } + _response = await sendTask; + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.ResponseCreated, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + var _contentType = _response.Content.Headers.ContentType?.MediaType; + + switch ( _response.StatusCode ) + { + case global::System.Net.HttpStatusCode.OK: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onOk(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.TopicSharedAccessKeys.FromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + default: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onDefault(_response); + break; + } + } + } + finally + { + // finally statements + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Finally, request, _response); + _response?.Dispose(); + request?.Dispose(); + } + } + } + + /// + /// Validation method for method. Call this like the actual call, but you will get + /// validation events back. + /// + /// Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription + /// ID forms part of the URI for every service call. + /// The name of the resource group within the user's subscription. + /// Name of the topic. + /// an instance that will receive events. + /// + /// A that will be complete when handling of the response is completed. + /// + internal async global::System.Threading.Tasks.Task TopicsListSharedAccessKeys_Validate(string subscriptionId, string resourceGroupName, string topicName, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener eventListener) + { + using( NoSynchronizationContext ) + { + await eventListener.AssertNotNull(nameof(subscriptionId),subscriptionId); + await eventListener.AssertNotNull(nameof(resourceGroupName),resourceGroupName); + await eventListener.AssertNotNull(nameof(topicName),topicName); + } + } + + /// Regenerate a shared access key for a topic. + /// Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription + /// ID forms part of the URI for every service call. + /// The name of the resource group within the user's subscription. + /// Name of the topic. + /// Request body to regenerate key. + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task TopicsRegenerateKey(string subscriptionId, string resourceGroupName, string topicName, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITopicRegenerateKeyRequest body, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func onDefault, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync sender) + { + var apiVersion = @"2021-10-15-preview"; + // Constant Parameters + using( NoSynchronizationContext ) + { + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + global::System.Uri.EscapeDataString(subscriptionId) + + "/resourceGroups/" + + global::System.Uri.EscapeDataString(resourceGroupName) + + "/providers/Microsoft.EventGrid/topics/" + + global::System.Uri.EscapeDataString(topicName) + + "/regenerateKey" + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Method.Post, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // set body content + request.Content = new global::System.Net.Http.StringContent(null != body ? body.ToJson(null).ToString() : @"{}", global::System.Text.Encoding.UTF8); + request.Content.Headers.ContentType = global::System.Net.Http.Headers.MediaTypeHeaderValue.Parse("application/json"); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.BodyContentSet); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.TopicsRegenerateKey_Call(request,onOk,onDefault,eventListener,sender); + } + } + + /// Regenerate a shared access key for a topic. + /// + /// Request body to regenerate key. + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task TopicsRegenerateKeyViaIdentity(global::System.String viaIdentity, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITopicRegenerateKeyRequest body, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func onDefault, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync sender) + { + var apiVersion = @"2021-10-15-preview"; + // Constant Parameters + using( NoSynchronizationContext ) + { + // verify that Identity format is an exact match for uri + + var _match = new global::System.Text.RegularExpressions.Regex("^/subscriptions/(?[^/]+)/resourceGroups/(?[^/]+)/providers/Microsoft.EventGrid/topics/(?[^/]+)/regenerateKey$", global::System.Text.RegularExpressions.RegexOptions.IgnoreCase).Match(viaIdentity); + if (!_match.Success) + { + throw new global::System.Exception("Invalid identity for URI '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.EventGrid/topics/{topicName}/regenerateKey'"); + } + + // replace URI parameters with values from identity + var subscriptionId = _match.Groups["subscriptionId"].Value; + var resourceGroupName = _match.Groups["resourceGroupName"].Value; + var topicName = _match.Groups["topicName"].Value; + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + subscriptionId + + "/resourceGroups/" + + resourceGroupName + + "/providers/Microsoft.EventGrid/topics/" + + topicName + + "/regenerateKey" + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Method.Post, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // set body content + request.Content = new global::System.Net.Http.StringContent(null != body ? body.ToJson(null).ToString() : @"{}", global::System.Text.Encoding.UTF8); + request.Content.Headers.ContentType = global::System.Net.Http.Headers.MediaTypeHeaderValue.Parse("application/json"); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.BodyContentSet); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.TopicsRegenerateKey_Call(request,onOk,onDefault,eventListener,sender); + } + } + + /// Actual wire call for method. + /// the prepared HttpRequestMessage to send. + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + internal async global::System.Threading.Tasks.Task TopicsRegenerateKey_Call(global::System.Net.Http.HttpRequestMessage request, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func onDefault, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync sender) + { + using( NoSynchronizationContext ) + { + global::System.Net.Http.HttpResponseMessage _response = null; + try + { + var sendTask = sender.SendAsync(request, eventListener); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.BeforeCall, request); if( eventListener.Token.IsCancellationRequested ) { return; } + _response = await sendTask; + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.ResponseCreated, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + // this operation supports x-ms-long-running-operation + var _originalUri = request.RequestUri.AbsoluteUri; + // declared final-state-via: default + var _finalUri = _response.GetFirstHeader(@"Location"); + var asyncOperation = _response.GetFirstHeader(@"Azure-AsyncOperation"); + var location = _response.GetFirstHeader(@"Location"); + while (request.Method == System.Net.Http.HttpMethod.Put && _response.StatusCode == global::System.Net.HttpStatusCode.OK || _response.StatusCode == global::System.Net.HttpStatusCode.Created || _response.StatusCode == global::System.Net.HttpStatusCode.Accepted ) + { + + // get the delay before polling. (default to 30 seconds if not present) + int delay = (int)(_response.Headers.RetryAfter?.Delta?.TotalSeconds ?? 30); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.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.EventGrid.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.EventGrid.Runtime.Json.JsonNode.Parse(await _response.Content.ReadAsStringAsync()) is Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Runtime.UndeclaredResponseException(_response); + } + } + + // check for terminal status code + if (_response.StatusCode == global::System.Net.HttpStatusCode.Created || _response.StatusCode == global::System.Net.HttpStatusCode.Accepted ) + { + continue; + } + // we are done polling, do a request on final target? + if (!string.IsNullOrWhiteSpace(_finalUri)) + { + // create a new request with the final uri + request = request.CloneAndDispose(new global::System.Uri(_finalUri), Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onOk(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.TopicSharedAccessKeys.FromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + default: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onDefault(_response); + break; + } + } + } + finally + { + // finally statements + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Finally, request, _response); + _response?.Dispose(); + request?.Dispose(); + } + } + } + + /// + /// Validation method for method. Call this like the actual call, but you will get validation + /// events back. + /// + /// Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription + /// ID forms part of the URI for every service call. + /// The name of the resource group within the user's subscription. + /// Name of the topic. + /// Request body to regenerate key. + /// an instance that will receive events. + /// + /// A that will be complete when handling of the response is completed. + /// + internal async global::System.Threading.Tasks.Task TopicsRegenerateKey_Validate(string subscriptionId, string resourceGroupName, string topicName, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITopicRegenerateKeyRequest body, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener eventListener) + { + using( NoSynchronizationContext ) + { + await eventListener.AssertNotNull(nameof(subscriptionId),subscriptionId); + await eventListener.AssertNotNull(nameof(resourceGroupName),resourceGroupName); + await eventListener.AssertNotNull(nameof(topicName),topicName); + await eventListener.AssertNotNull(nameof(body), body); + await eventListener.AssertObjectIsValid(nameof(body), body); + } + } + + /// Asynchronously updates a topic with the specified parameters. + /// Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription + /// ID forms part of the URI for every service call. + /// The name of the resource group within the user's subscription. + /// Name of the topic. + /// Topic update information. + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task TopicsUpdate(string subscriptionId, string resourceGroupName, string topicName, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITopicUpdateParameters body, global::System.Func onOk, global::System.Func onDefault, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync sender) + { + var apiVersion = @"2021-10-15-preview"; + // Constant Parameters + using( NoSynchronizationContext ) + { + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + global::System.Uri.EscapeDataString(subscriptionId) + + "/resourceGroups/" + + global::System.Uri.EscapeDataString(resourceGroupName) + + "/providers/Microsoft.EventGrid/topics/" + + global::System.Uri.EscapeDataString(topicName) + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Method.Patch, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // set body content + request.Content = new global::System.Net.Http.StringContent(null != body ? body.ToJson(null).ToString() : @"{}", global::System.Text.Encoding.UTF8); + request.Content.Headers.ContentType = global::System.Net.Http.Headers.MediaTypeHeaderValue.Parse("application/json"); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.BodyContentSet); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.TopicsUpdate_Call(request,onOk,onDefault,eventListener,sender); + } + } + + /// Asynchronously updates a topic with the specified parameters. + /// + /// Topic update information. + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task TopicsUpdateViaIdentity(global::System.String viaIdentity, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITopicUpdateParameters body, global::System.Func onOk, global::System.Func onDefault, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync sender) + { + var apiVersion = @"2021-10-15-preview"; + // Constant Parameters + using( NoSynchronizationContext ) + { + // verify that Identity format is an exact match for uri + + var _match = new global::System.Text.RegularExpressions.Regex("^/subscriptions/(?[^/]+)/resourceGroups/(?[^/]+)/providers/Microsoft.EventGrid/topics/(?[^/]+)$", global::System.Text.RegularExpressions.RegexOptions.IgnoreCase).Match(viaIdentity); + if (!_match.Success) + { + throw new global::System.Exception("Invalid identity for URI '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.EventGrid/topics/{topicName}'"); + } + + // replace URI parameters with values from identity + var subscriptionId = _match.Groups["subscriptionId"].Value; + var resourceGroupName = _match.Groups["resourceGroupName"].Value; + var topicName = _match.Groups["topicName"].Value; + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/subscriptions/" + + subscriptionId + + "/resourceGroups/" + + resourceGroupName + + "/providers/Microsoft.EventGrid/topics/" + + topicName + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Method.Patch, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // set body content + request.Content = new global::System.Net.Http.StringContent(null != body ? body.ToJson(null).ToString() : @"{}", global::System.Text.Encoding.UTF8); + request.Content.Headers.ContentType = global::System.Net.Http.Headers.MediaTypeHeaderValue.Parse("application/json"); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.BodyContentSet); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.TopicsUpdate_Call(request,onOk,onDefault,eventListener,sender); + } + } + + /// Actual wire call for method. + /// the prepared HttpRequestMessage to send. + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + internal async global::System.Threading.Tasks.Task TopicsUpdate_Call(global::System.Net.Http.HttpRequestMessage request, global::System.Func onOk, global::System.Func onDefault, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync sender) + { + using( NoSynchronizationContext ) + { + global::System.Net.Http.HttpResponseMessage _response = null; + try + { + var sendTask = sender.SendAsync(request, eventListener); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.BeforeCall, request); if( eventListener.Token.IsCancellationRequested ) { return; } + _response = await sendTask; + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.ResponseCreated, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + // this operation supports x-ms-long-running-operation + var _originalUri = request.RequestUri.AbsoluteUri; + // declared final-state-via: default + var asyncOperation = _response.GetFirstHeader(@"Azure-AsyncOperation"); + var location = _response.GetFirstHeader(@"Location"); + while (request.Method == System.Net.Http.HttpMethod.Put && _response.StatusCode == global::System.Net.HttpStatusCode.OK || _response.StatusCode == global::System.Net.HttpStatusCode.Created || _response.StatusCode == global::System.Net.HttpStatusCode.Accepted ) + { + + // get the delay before polling. (default to 30 seconds if not present) + int delay = (int)(_response.Headers.RetryAfter?.Delta?.TotalSeconds ?? 30); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.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.EventGrid.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.EventGrid.Runtime.Json.JsonNode.Parse(await _response.Content.ReadAsStringAsync()) is Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Runtime.UndeclaredResponseException(_response); + } + } + + // check for terminal status code + if (_response.StatusCode == global::System.Net.HttpStatusCode.Created || _response.StatusCode == global::System.Net.HttpStatusCode.Accepted ) + { + continue; + } + // we are done polling, do a request on final target? + if (!string.IsNullOrWhiteSpace(_originalUri)) + { + // create a new request with the final uri + request = request.CloneAndDispose(new global::System.Uri(_originalUri), Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onOk(_response); + break; + } + default: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onDefault(_response); + break; + } + } + } + finally + { + // finally statements + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Finally, request, _response); + _response?.Dispose(); + request?.Dispose(); + } + } + } + + /// + /// Validation method for method. Call this like the actual call, but you will get validation + /// events back. + /// + /// Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription + /// ID forms part of the URI for every service call. + /// The name of the resource group within the user's subscription. + /// Name of the topic. + /// Topic update information. + /// an instance that will receive events. + /// + /// A that will be complete when handling of the response is completed. + /// + internal async global::System.Threading.Tasks.Task TopicsUpdate_Validate(string subscriptionId, string resourceGroupName, string topicName, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITopicUpdateParameters body, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener eventListener) + { + using( NoSynchronizationContext ) + { + await eventListener.AssertNotNull(nameof(subscriptionId),subscriptionId); + await eventListener.AssertNotNull(nameof(resourceGroupName),resourceGroupName); + await eventListener.AssertNotNull(nameof(topicName),topicName); + await eventListener.AssertNotNull(nameof(body), body); + await eventListener.AssertObjectIsValid(nameof(body), body); + } + } + + /// Get properties of a verified partner. + /// Name of the verified partner. + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task VerifiedPartnersGet(string verifiedPartnerName, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func onDefault, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync sender) + { + var apiVersion = @"2021-10-15-preview"; + // Constant Parameters + using( NoSynchronizationContext ) + { + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/providers/Microsoft.EventGrid/verifiedPartners/" + + global::System.Uri.EscapeDataString(verifiedPartnerName) + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Method.Get, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.VerifiedPartnersGet_Call(request,onOk,onDefault,eventListener,sender); + } + } + + /// Get properties of a verified partner. + /// + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task VerifiedPartnersGetViaIdentity(global::System.String viaIdentity, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func onDefault, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync sender) + { + var apiVersion = @"2021-10-15-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.EventGrid/verifiedPartners/(?[^/]+)$", global::System.Text.RegularExpressions.RegexOptions.IgnoreCase).Match(viaIdentity); + if (!_match.Success) + { + throw new global::System.Exception("Invalid identity for URI '/providers/Microsoft.EventGrid/verifiedPartners/{verifiedPartnerName}'"); + } + + // replace URI parameters with values from identity + var verifiedPartnerName = _match.Groups["verifiedPartnerName"].Value; + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/providers/Microsoft.EventGrid/verifiedPartners/" + + verifiedPartnerName + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Method.Get, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.VerifiedPartnersGet_Call(request,onOk,onDefault,eventListener,sender); + } + } + + /// Actual wire call for method. + /// the prepared HttpRequestMessage to send. + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + internal async global::System.Threading.Tasks.Task VerifiedPartnersGet_Call(global::System.Net.Http.HttpRequestMessage request, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func onDefault, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync sender) + { + using( NoSynchronizationContext ) + { + global::System.Net.Http.HttpResponseMessage _response = null; + try + { + var sendTask = sender.SendAsync(request, eventListener); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.BeforeCall, request); if( eventListener.Token.IsCancellationRequested ) { return; } + _response = await sendTask; + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.ResponseCreated, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + var _contentType = _response.Content.Headers.ContentType?.MediaType; + + switch ( _response.StatusCode ) + { + case global::System.Net.HttpStatusCode.OK: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onOk(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.VerifiedPartner.FromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + default: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onDefault(_response); + break; + } + } + } + finally + { + // finally statements + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Finally, request, _response); + _response?.Dispose(); + request?.Dispose(); + } + } + } + + /// + /// Validation method for method. Call this like the actual call, but you will get validation + /// events back. + /// + /// Name of the verified partner. + /// an instance that will receive events. + /// + /// A that will be complete when handling of the response is completed. + /// + internal async global::System.Threading.Tasks.Task VerifiedPartnersGet_Validate(string verifiedPartnerName, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener eventListener) + { + using( NoSynchronizationContext ) + { + await eventListener.AssertNotNull(nameof(verifiedPartnerName),verifiedPartnerName); + } + } + + /// Get a list of all verified partners. + /// The query used to filter the search results using OData syntax. Filtering is permitted on the 'name' + /// property only and with limited number of OData operations. These operations are: the 'contains' function as well as the + /// following logical operations: not, and, or, eq (for equal), and ne (for not equal). No arithmetic operations are supported. + /// The following is a valid filter example: $filter=contains(namE, 'PATTERN') and name ne 'PATTERN-1'. The following is not + /// a valid filter example: $filter=location eq 'westus'. + /// The number of results to return per page for the list operation. Valid range for top parameter is 1 + /// to 100. If not specified, the default number of results to be returned is 20 items per page. + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task VerifiedPartnersList(string Filter, int? Top, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func onDefault, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync sender) + { + var apiVersion = @"2021-10-15-preview"; + // Constant Parameters + using( NoSynchronizationContext ) + { + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/providers/Microsoft.EventGrid/verifiedPartners" + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + + "&" + + (string.IsNullOrEmpty(Filter) ? global::System.String.Empty : "$filter=" + global::System.Uri.EscapeDataString(Filter)) + + "&" + + (null == Top ? global::System.String.Empty : "$top=" + global::System.Uri.EscapeDataString(Top.ToString())) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Method.Get, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.VerifiedPartnersList_Call(request,onOk,onDefault,eventListener,sender); + } + } + + /// Get a list of all verified partners. + /// + /// The query used to filter the search results using OData syntax. Filtering is permitted on the 'name' + /// property only and with limited number of OData operations. These operations are: the 'contains' function as well as the + /// following logical operations: not, and, or, eq (for equal), and ne (for not equal). No arithmetic operations are supported. + /// The following is a valid filter example: $filter=contains(namE, 'PATTERN') and name ne 'PATTERN-1'. The following is not + /// a valid filter example: $filter=location eq 'westus'. + /// The number of results to return per page for the list operation. Valid range for top parameter is 1 + /// to 100. If not specified, the default number of results to be returned is 20 items per page. + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + public async global::System.Threading.Tasks.Task VerifiedPartnersListViaIdentity(global::System.String viaIdentity, string Filter, int? Top, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func onDefault, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync sender) + { + var apiVersion = @"2021-10-15-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.EventGrid/verifiedPartners$", global::System.Text.RegularExpressions.RegexOptions.IgnoreCase).Match(viaIdentity); + if (!_match.Success) + { + throw new global::System.Exception("Invalid identity for URI '/providers/Microsoft.EventGrid/verifiedPartners'"); + } + + // replace URI parameters with values from identity + // construct URL + var pathAndQuery = global::System.Text.RegularExpressions.Regex.Replace( + "/providers/Microsoft.EventGrid/verifiedPartners" + + "?" + + "api-version=" + global::System.Uri.EscapeDataString(apiVersion) + + "&" + + (string.IsNullOrEmpty(Filter) ? global::System.String.Empty : "$filter=" + global::System.Uri.EscapeDataString(Filter)) + + "&" + + (null == Top ? global::System.String.Empty : "$top=" + global::System.Uri.EscapeDataString(Top.ToString())) + ,"\\?&*$|&*$|(\\?)&+|(&)&+","$1$2"); + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.URLCreated, pathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + // generate request object + var _url = new global::System.Uri($"https://management.azure.com{pathAndQuery}"); + var request = new global::System.Net.Http.HttpRequestMessage(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Method.Get, _url); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.RequestCreated, request.RequestUri.PathAndQuery); if( eventListener.Token.IsCancellationRequested ) { return; } + + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.HeaderParametersAdded); if( eventListener.Token.IsCancellationRequested ) { return; } + // make the call + await this.VerifiedPartnersList_Call(request,onOk,onDefault,eventListener,sender); + } + } + + /// Actual wire call for method. + /// the prepared HttpRequestMessage to send. + /// a delegate that is called when the remote service returns 200 (OK). + /// a delegate that is called when the remote service returns default (any response code not handled + /// elsewhere). + /// an instance that will receive events. + /// an instance of an Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync pipeline to use to make the request. + /// + /// A that will be complete when handling of the response is completed. + /// + internal async global::System.Threading.Tasks.Task VerifiedPartnersList_Call(global::System.Net.Http.HttpRequestMessage request, global::System.Func, global::System.Threading.Tasks.Task> onOk, global::System.Func onDefault, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener eventListener, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.ISendAsync sender) + { + using( NoSynchronizationContext ) + { + global::System.Net.Http.HttpResponseMessage _response = null; + try + { + var sendTask = sender.SendAsync(request, eventListener); + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.BeforeCall, request); if( eventListener.Token.IsCancellationRequested ) { return; } + _response = await sendTask; + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.ResponseCreated, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + var _contentType = _response.Content.Headers.ContentType?.MediaType; + + switch ( _response.StatusCode ) + { + case global::System.Net.HttpStatusCode.OK: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onOk(_response,_response.Content.ReadAsStringAsync().ContinueWith( body => Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.VerifiedPartnersListResult.FromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode.Parse(body.Result)) )); + break; + } + default: + { + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.BeforeResponseDispatch, _response); if( eventListener.Token.IsCancellationRequested ) { return; } + await onDefault(_response); + break; + } + } + } + finally + { + // finally statements + await eventListener.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.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 query used to filter the search results using OData syntax. Filtering is permitted on the 'name' + /// property only and with limited number of OData operations. These operations are: the 'contains' function as well as the + /// following logical operations: not, and, or, eq (for equal), and ne (for not equal). No arithmetic operations are supported. + /// The following is a valid filter example: $filter=contains(namE, 'PATTERN') and name ne 'PATTERN-1'. The following is not + /// a valid filter example: $filter=location eq 'westus'. + /// The number of results to return per page for the list operation. Valid range for top parameter is 1 + /// to 100. If not specified, the default number of results to be returned is 20 items per page. + /// an instance that will receive events. + /// + /// A that will be complete when handling of the response is completed. + /// + internal async global::System.Threading.Tasks.Task VerifiedPartnersList_Validate(string Filter, int? Top, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener eventListener) + { + using( NoSynchronizationContext ) + { + await eventListener.AssertNotNull(nameof(Filter),Filter); + } + } + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Models/Any.PowerShell.cs b/swaggerci/eventgrid/generated/api/Models/Any.PowerShell.cs new file mode 100644 index 000000000000..c52c0e47a785 --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Any.PowerShell.cs @@ -0,0 +1,134 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models +{ + using Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell; + + /// Any object + [System.ComponentModel.TypeConverter(typeof(AnyTypeConverter))] + public partial class Any + { + + /// + /// AfterDeserializeDictionary will be called after the deserialization has finished, allowing customization of the + /// object before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Collections.IDictionary content that should be used. + + partial void AfterDeserializeDictionary(global::System.Collections.IDictionary content); + + /// + /// AfterDeserializePSObject will be called after the deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Management.Automation.PSObject content that should be used. + + partial void AfterDeserializePSObject(global::System.Management.Automation.PSObject content); + + /// + /// BeforeDeserializeDictionary will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Collections.IDictionary content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializeDictionary(global::System.Collections.IDictionary content, ref bool returnNow); + + /// + /// BeforeDeserializePSObject will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializePSObject(global::System.Management.Automation.PSObject content, ref bool returnNow); + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + internal Any(global::System.Collections.IDictionary content) + { + bool returnNow = false; + BeforeDeserializeDictionary(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + AfterDeserializeDictionary(content); + } + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + internal Any(global::System.Management.Automation.PSObject content) + { + bool returnNow = false; + BeforeDeserializePSObject(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + AfterDeserializePSObject(content); + } + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.IAny DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new Any(content); + } + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.IAny DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new Any(content); + } + + /// + /// Creates a new instance of , deserializing the content from a json string. + /// + /// a string containing a JSON serialized instance of this model. + /// an instance of the model class. + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.IAny FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode.Parse(jsonText)); + + /// Serializes this instance to a json string. + + /// a containing this model serialized to JSON text. + public string ToJsonString() => ToJson(null, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// Any object + [System.ComponentModel.TypeConverter(typeof(AnyTypeConverter))] + public partial interface IAny + + { + + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Models/Any.TypeConverter.cs b/swaggerci/eventgrid/generated/api/Models/Any.TypeConverter.cs new file mode 100644 index 000000000000..24bceae58a2b --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Any.TypeConverter.cs @@ -0,0 +1,146 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models +{ + using Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class AnyTypeConverter : global::System.Management.Automation.PSTypeConverter + { + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false. + /// + public override bool CanConvertFrom(object sourceValue, global::System.Type destinationType) => CanConvertFrom(sourceValue); + + /// + /// Determines if the converter can convert the parameter to the . + /// + /// the instance to check if it can be converted to the type. + /// + /// true if the instance could be converted to a type, otherwise false + /// + public static bool CanConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return true; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + // we say yest to PSObjects + return true; + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + // we say yest to Hashtables/dictionaries + return true; + } + try + { + if (null != sourceValue.ToJsonString()) + { + return true; + } + } + catch + { + // Not one of our objects + } + try + { + string text = sourceValue.ToString()?.Trim(); + return true == text?.StartsWith("{") && true == text?.EndsWith("}") && Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonType.Object; + } + catch + { + // Doesn't look like it can be treated as JSON + } + return false; + } + + /// + /// Determines if the parameter can be converted to the parameter + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false + /// + public override bool CanConvertTo(object sourceValue, global::System.Type destinationType) => false; + + /// + /// Converts the parameter to the parameter using and + /// + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// + /// an instance of , or null if there is no suitable conversion. + /// + public override object ConvertFrom(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => ConvertFrom(sourceValue); + + /// + /// Converts the parameter to the parameter using and + /// + /// the value to convert into an instance of . + /// + /// an instance of , or null if there is no suitable conversion. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.IAny ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.IAny).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return Any.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return Any.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return Any.DeserializeFromDictionary(sourceValue); + } + return null; + } + + /// NotImplemented -- this will return null + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// will always return null. + public override object ConvertTo(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => null; + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Models/Any.cs b/swaggerci/eventgrid/generated/api/Models/Any.cs new file mode 100644 index 000000000000..666d184f39d3 --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Any.cs @@ -0,0 +1,34 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models +{ + using static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Extensions; + + /// Any object + public partial class Any : + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.IAny, + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.IAnyInternal + { + + /// Creates an new instance. + public Any() + { + + } + } + /// Any object + public partial interface IAny : + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IJsonSerializable + { + + } + /// Any object + internal partial interface IAnyInternal + + { + + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Models/Any.json.cs b/swaggerci/eventgrid/generated/api/Models/Any.json.cs new file mode 100644 index 000000000000..9fca156bf2b9 --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Any.json.cs @@ -0,0 +1,102 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models +{ + using static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Extensions; + + /// Any object + public partial class Any + { + + /// + /// AfterFromJson will be called after the json deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JsonNode that should be deserialized into this object. + + partial void AfterFromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json erialization has finished, allowing customization of the before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JSON container that the serialization result will be placed in. + + partial void AfterToJson(ref Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject container); + + /// + /// BeforeFromJson will be called before the json deserialization has commenced, allowing complete customization of + /// the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JsonNode that should be deserialized into this object. + /// Determines if the rest of the deserialization should be processed, or if the method should return + /// instantly. + + partial void BeforeFromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject json, ref bool returnNow); + + /// + /// BeforeToJson will be called before the json serialization has commenced, allowing complete customization of the + /// object before it is serialized. + /// If you wish to disable the default serialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JSON container that the serialization result will be placed in. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeToJson(ref Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject instance to deserialize from. + internal Any(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject json) + { + bool returnNow = false; + BeforeFromJson(json, ref returnNow); + if (returnNow) + { + return; + } + AfterFromJson(json); + } + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.IAny. + /// + /// a to deserialize from. + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.IAny. + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.IAny FromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject json ? new Any(json) : null; + } + + /// + /// Serializes this instance of into a . + /// + /// The container to serialize this object into. If the caller + /// passes in null, a new instance will be created and returned to the caller. + /// Allows the caller to choose the depth of the serialization. See . + /// + /// a serialized instance of as a . + /// + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject(); + + bool returnNow = false; + BeforeToJson(ref container, ref returnNow); + if (returnNow) + { + return container; + } + AfterToJson(ref container); + return container; + } + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Models/Api20/SystemData.PowerShell.cs b/swaggerci/eventgrid/generated/api/Models/Api20/SystemData.PowerShell.cs new file mode 100644 index 000000000000..c309219f257d --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20/SystemData.PowerShell.cs @@ -0,0 +1,182 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20 +{ + using Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.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.EventGrid.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.EventGrid.Models.Api20.ISystemData FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode.Parse(jsonText)); + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + internal SystemData(global::System.Collections.IDictionary content) + { + bool returnNow = false; + BeforeDeserializeDictionary(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("CreatedBy")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20.ISystemDataInternal)this).CreatedBy = (string) content.GetValueForProperty("CreatedBy",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20.ISystemDataInternal)this).CreatedBy, global::System.Convert.ToString); + } + if (content.Contains("CreatedByType")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20.ISystemDataInternal)this).CreatedByType = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.CreatedByType?) content.GetValueForProperty("CreatedByType",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20.ISystemDataInternal)this).CreatedByType, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.CreatedByType.CreateFrom); + } + if (content.Contains("CreatedAt")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20.ISystemDataInternal)this).CreatedAt = (global::System.DateTime?) content.GetValueForProperty("CreatedAt",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20.ISystemDataInternal)this).CreatedAt, (v) => v is global::System.DateTime _v ? _v : global::System.Xml.XmlConvert.ToDateTime( v.ToString() , global::System.Xml.XmlDateTimeSerializationMode.Unspecified)); + } + if (content.Contains("LastModifiedBy")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20.ISystemDataInternal)this).LastModifiedBy = (string) content.GetValueForProperty("LastModifiedBy",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20.ISystemDataInternal)this).LastModifiedBy, global::System.Convert.ToString); + } + if (content.Contains("LastModifiedByType")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20.ISystemDataInternal)this).LastModifiedByType = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.CreatedByType?) content.GetValueForProperty("LastModifiedByType",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20.ISystemDataInternal)this).LastModifiedByType, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.CreatedByType.CreateFrom); + } + if (content.Contains("LastModifiedAt")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20.ISystemDataInternal)this).LastModifiedAt = (global::System.DateTime?) content.GetValueForProperty("LastModifiedAt",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20.ISystemDataInternal)this).LastModifiedAt, (v) => v is global::System.DateTime _v ? _v : global::System.Xml.XmlConvert.ToDateTime( v.ToString() , global::System.Xml.XmlDateTimeSerializationMode.Unspecified)); + } + AfterDeserializeDictionary(content); + } + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + internal SystemData(global::System.Management.Automation.PSObject content) + { + bool returnNow = false; + BeforeDeserializePSObject(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("CreatedBy")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20.ISystemDataInternal)this).CreatedBy = (string) content.GetValueForProperty("CreatedBy",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20.ISystemDataInternal)this).CreatedBy, global::System.Convert.ToString); + } + if (content.Contains("CreatedByType")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20.ISystemDataInternal)this).CreatedByType = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.CreatedByType?) content.GetValueForProperty("CreatedByType",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20.ISystemDataInternal)this).CreatedByType, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.CreatedByType.CreateFrom); + } + if (content.Contains("CreatedAt")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20.ISystemDataInternal)this).CreatedAt = (global::System.DateTime?) content.GetValueForProperty("CreatedAt",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20.ISystemDataInternal)this).CreatedAt, (v) => v is global::System.DateTime _v ? _v : global::System.Xml.XmlConvert.ToDateTime( v.ToString() , global::System.Xml.XmlDateTimeSerializationMode.Unspecified)); + } + if (content.Contains("LastModifiedBy")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20.ISystemDataInternal)this).LastModifiedBy = (string) content.GetValueForProperty("LastModifiedBy",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20.ISystemDataInternal)this).LastModifiedBy, global::System.Convert.ToString); + } + if (content.Contains("LastModifiedByType")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20.ISystemDataInternal)this).LastModifiedByType = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.CreatedByType?) content.GetValueForProperty("LastModifiedByType",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20.ISystemDataInternal)this).LastModifiedByType, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.CreatedByType.CreateFrom); + } + if (content.Contains("LastModifiedAt")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20.ISystemDataInternal)this).LastModifiedAt = (global::System.DateTime?) content.GetValueForProperty("LastModifiedAt",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.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/eventgrid/generated/api/Models/Api20/SystemData.TypeConverter.cs b/swaggerci/eventgrid/generated/api/Models/Api20/SystemData.TypeConverter.cs new file mode 100644 index 000000000000..c9121e4fe927 --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20/SystemData.TypeConverter.cs @@ -0,0 +1,146 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20 +{ + using Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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 . + /// + /// the instance to check if it can be converted to the type. + /// + /// true if the instance could be converted to a type, otherwise false + /// + public static bool CanConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return true; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + // we say yest to PSObjects + return true; + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + // we say yest to Hashtables/dictionaries + return true; + } + try + { + if (null != sourceValue.ToJsonString()) + { + return true; + } + } + catch + { + // Not one of our objects + } + try + { + string text = sourceValue.ToString()?.Trim(); + return true == text?.StartsWith("{") && true == text?.EndsWith("}") && Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonType.Object; + } + catch + { + // Doesn't look like it can be treated as JSON + } + return false; + } + + /// + /// Determines if the parameter can be converted to the parameter + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false + /// + public override bool CanConvertTo(object sourceValue, global::System.Type destinationType) => false; + + /// + /// Converts the parameter to the parameter using and + /// + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// + /// an instance of , or null if there is no suitable conversion. + /// + public override object ConvertFrom(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => ConvertFrom(sourceValue); + + /// + /// Converts the parameter to the parameter using and + /// + /// the value to convert into an instance of . + /// + /// an instance of , or null if there is no suitable conversion. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20.ISystemData ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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/eventgrid/generated/api/Models/Api20/SystemData.cs b/swaggerci/eventgrid/generated/api/Models/Api20/SystemData.cs new file mode 100644 index 000000000000..fb6090f104a0 --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20/SystemData.cs @@ -0,0 +1,136 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20 +{ + using static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Extensions; + + /// Metadata pertaining to creation and last modification of the resource. + public partial class SystemData : + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20.ISystemData, + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20.ISystemDataInternal + { + + /// Backing field for property. + private global::System.DateTime? _createdAt; + + /// The timestamp of resource creation (UTC). + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Owned)] + public string CreatedBy { get => this._createdBy; set => this._createdBy = value; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.CreatedByType? _createdByType; + + /// The type of identity that created the resource. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Owned)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Owned)] + public string LastModifiedBy { get => this._lastModifiedBy; set => this._lastModifiedBy = value; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.CreatedByType? _lastModifiedByType; + + /// The type of identity that last modified the resource. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Owned)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Runtime.IJsonSerializable + { + /// The timestamp of resource creation (UTC). + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.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.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The type of identity that created the resource.", + SerializedName = @"createdByType", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.CreatedByType) })] + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.CreatedByType? CreatedByType { get; set; } + /// The timestamp of resource last modification (UTC) + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.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.EventGrid.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.EventGrid.Support.CreatedByType) })] + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.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.EventGrid.Support.CreatedByType? LastModifiedByType { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Models/Api20/SystemData.json.cs b/swaggerci/eventgrid/generated/api/Models/Api20/SystemData.json.cs new file mode 100644 index 000000000000..c1c4e0cda55f --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20/SystemData.json.cs @@ -0,0 +1,116 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20 +{ + using static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json erialization has finished, allowing customization of the before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JSON container that the serialization result will be placed in. + + partial void AfterToJson(ref Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject container); + + /// + /// BeforeFromJson will be called before the json deserialization has commenced, allowing complete customization of + /// the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JsonNode that should be deserialized into this object. + /// Determines if the rest of the deserialization should be processed, or if the method should return + /// instantly. + + partial void BeforeFromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject json, ref bool returnNow); + + /// + /// BeforeToJson will be called before the json serialization has commenced, allowing complete customization of the + /// object before it is serialized. + /// If you wish to disable the default serialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JSON container that the serialization result will be placed in. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeToJson(ref Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20.ISystemData. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20.ISystemData. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20.ISystemData FromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject json ? new SystemData(json) : null; + } + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject instance to deserialize from. + internal SystemData(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonString(this._createdBy.ToString()) : null, "createdBy" ,container.Add ); + AddIf( null != (((object)this._createdByType)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonString(this._createdByType.ToString()) : null, "createdByType" ,container.Add ); + AddIf( null != this._createdAt ? (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonString(this._lastModifiedBy.ToString()) : null, "lastModifiedBy" ,container.Add ); + AddIf( null != (((object)this._lastModifiedByType)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonString(this._lastModifiedByType.ToString()) : null, "lastModifiedByType" ,container.Add ); + AddIf( null != this._lastModifiedAt ? (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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/eventgrid/generated/api/Models/Api20211015Preview/AdvancedFilter.PowerShell.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/AdvancedFilter.PowerShell.cs new file mode 100644 index 000000000000..9b1da8fe02bd --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/AdvancedFilter.PowerShell.cs @@ -0,0 +1,156 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell; + + /// + /// This is the base type that represents an advanced filter. To configure an advanced filter, do not directly instantiate + /// an object of this class. Instead, instantiate an object of a derived class such as BoolEqualsAdvancedFilter, NumberInAdvancedFilter, + /// StringEqualsAdvancedFilter etc. depending on the type of the key based on which you want to filter. + /// + [System.ComponentModel.TypeConverter(typeof(AdvancedFilterTypeConverter))] + public partial class AdvancedFilter + { + + /// + /// AfterDeserializeDictionary will be called after the deserialization has finished, allowing customization of the + /// object before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Collections.IDictionary content that should be used. + + partial void AfterDeserializeDictionary(global::System.Collections.IDictionary content); + + /// + /// AfterDeserializePSObject will be called after the deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Management.Automation.PSObject content that should be used. + + partial void AfterDeserializePSObject(global::System.Management.Automation.PSObject content); + + /// + /// BeforeDeserializeDictionary will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Collections.IDictionary content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializeDictionary(global::System.Collections.IDictionary content, ref bool returnNow); + + /// + /// BeforeDeserializePSObject will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializePSObject(global::System.Management.Automation.PSObject content, ref bool returnNow); + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + internal AdvancedFilter(global::System.Collections.IDictionary content) + { + bool returnNow = false; + BeforeDeserializeDictionary(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("OperatorType")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IAdvancedFilterInternal)this).OperatorType = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.AdvancedFilterOperatorType) content.GetValueForProperty("OperatorType",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IAdvancedFilterInternal)this).OperatorType, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.AdvancedFilterOperatorType.CreateFrom); + } + if (content.Contains("Key")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IAdvancedFilterInternal)this).Key = (string) content.GetValueForProperty("Key",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IAdvancedFilterInternal)this).Key, global::System.Convert.ToString); + } + AfterDeserializeDictionary(content); + } + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + internal AdvancedFilter(global::System.Management.Automation.PSObject content) + { + bool returnNow = false; + BeforeDeserializePSObject(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("OperatorType")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IAdvancedFilterInternal)this).OperatorType = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.AdvancedFilterOperatorType) content.GetValueForProperty("OperatorType",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IAdvancedFilterInternal)this).OperatorType, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.AdvancedFilterOperatorType.CreateFrom); + } + if (content.Contains("Key")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IAdvancedFilterInternal)this).Key = (string) content.GetValueForProperty("Key",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IAdvancedFilterInternal)this).Key, 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.EventGrid.Models.Api20211015Preview.IAdvancedFilter DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new AdvancedFilter(content); + } + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IAdvancedFilter DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new AdvancedFilter(content); + } + + /// + /// Creates a new instance of , deserializing the content from a json string. + /// + /// a string containing a JSON serialized instance of this model. + /// an instance of the model class. + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IAdvancedFilter FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode.Parse(jsonText)); + + /// Serializes this instance to a json string. + + /// a containing this model serialized to JSON text. + public string ToJsonString() => ToJson(null, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// This is the base type that represents an advanced filter. To configure an advanced filter, do not directly instantiate + /// an object of this class. Instead, instantiate an object of a derived class such as BoolEqualsAdvancedFilter, NumberInAdvancedFilter, + /// StringEqualsAdvancedFilter etc. depending on the type of the key based on which you want to filter. + [System.ComponentModel.TypeConverter(typeof(AdvancedFilterTypeConverter))] + public partial interface IAdvancedFilter + + { + + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/AdvancedFilter.TypeConverter.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/AdvancedFilter.TypeConverter.cs new file mode 100644 index 000000000000..9a38a3a8a5c9 --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/AdvancedFilter.TypeConverter.cs @@ -0,0 +1,146 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class AdvancedFilterTypeConverter : global::System.Management.Automation.PSTypeConverter + { + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false. + /// + public override bool CanConvertFrom(object sourceValue, global::System.Type destinationType) => CanConvertFrom(sourceValue); + + /// + /// Determines if the converter can convert the parameter to the . + /// + /// the instance to check if it can be converted to the type. + /// + /// true if the instance could be converted to a type, otherwise false + /// + public static bool CanConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return true; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + // we say yest to PSObjects + return true; + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + // we say yest to Hashtables/dictionaries + return true; + } + try + { + if (null != sourceValue.ToJsonString()) + { + return true; + } + } + catch + { + // Not one of our objects + } + try + { + string text = sourceValue.ToString()?.Trim(); + return true == text?.StartsWith("{") && true == text?.EndsWith("}") && Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonType.Object; + } + catch + { + // Doesn't look like it can be treated as JSON + } + return false; + } + + /// + /// Determines if the parameter can be converted to the parameter + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false + /// + public override bool CanConvertTo(object sourceValue, global::System.Type destinationType) => false; + + /// + /// Converts the parameter to the parameter using and + /// + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// + /// an instance of , or null if there is no suitable conversion. + /// + public override object ConvertFrom(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => ConvertFrom(sourceValue); + + /// + /// Converts the parameter to the parameter using and + /// + /// the value to convert into an instance of . + /// + /// an instance of , or null if there is no suitable conversion. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IAdvancedFilter ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IAdvancedFilter).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return AdvancedFilter.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return AdvancedFilter.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return AdvancedFilter.DeserializeFromDictionary(sourceValue); + } + return null; + } + + /// NotImplemented -- this will return null + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// will always return null. + public override object ConvertTo(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => null; + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/AdvancedFilter.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/AdvancedFilter.cs new file mode 100644 index 000000000000..78c9e034e788 --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/AdvancedFilter.cs @@ -0,0 +1,82 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Extensions; + + /// + /// This is the base type that represents an advanced filter. To configure an advanced filter, do not directly instantiate + /// an object of this class. Instead, instantiate an object of a derived class such as BoolEqualsAdvancedFilter, NumberInAdvancedFilter, + /// StringEqualsAdvancedFilter etc. depending on the type of the key based on which you want to filter. + /// + public partial class AdvancedFilter : + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IAdvancedFilter, + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IAdvancedFilterInternal + { + + /// Backing field for property. + private string _key; + + /// The field/property in the event based on which you want to filter. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Owned)] + public string Key { get => this._key; set => this._key = value; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.AdvancedFilterOperatorType _operatorType; + + /// + /// The operator type used for filtering, e.g., NumberIn, StringContains, BoolEquals and others. + /// + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Owned)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.AdvancedFilterOperatorType OperatorType { get => this._operatorType; set => this._operatorType = value; } + + /// Creates an new instance. + public AdvancedFilter() + { + + } + } + /// This is the base type that represents an advanced filter. To configure an advanced filter, do not directly instantiate + /// an object of this class. Instead, instantiate an object of a derived class such as BoolEqualsAdvancedFilter, NumberInAdvancedFilter, + /// StringEqualsAdvancedFilter etc. depending on the type of the key based on which you want to filter. + public partial interface IAdvancedFilter : + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IJsonSerializable + { + /// The field/property in the event based on which you want to filter. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The field/property in the event based on which you want to filter.", + SerializedName = @"key", + PossibleTypes = new [] { typeof(string) })] + string Key { get; set; } + /// + /// The operator type used for filtering, e.g., NumberIn, StringContains, BoolEquals and others. + /// + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The operator type used for filtering, e.g., NumberIn, StringContains, BoolEquals and others.", + SerializedName = @"operatorType", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.AdvancedFilterOperatorType) })] + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.AdvancedFilterOperatorType OperatorType { get; set; } + + } + /// This is the base type that represents an advanced filter. To configure an advanced filter, do not directly instantiate + /// an object of this class. Instead, instantiate an object of a derived class such as BoolEqualsAdvancedFilter, NumberInAdvancedFilter, + /// StringEqualsAdvancedFilter etc. depending on the type of the key based on which you want to filter. + internal partial interface IAdvancedFilterInternal + + { + /// The field/property in the event based on which you want to filter. + string Key { get; set; } + /// + /// The operator type used for filtering, e.g., NumberIn, StringContains, BoolEquals and others. + /// + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.AdvancedFilterOperatorType OperatorType { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/AdvancedFilter.json.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/AdvancedFilter.json.cs new file mode 100644 index 000000000000..f1b65c432e82 --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/AdvancedFilter.json.cs @@ -0,0 +1,199 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Extensions; + + /// + /// This is the base type that represents an advanced filter. To configure an advanced filter, do not directly instantiate + /// an object of this class. Instead, instantiate an object of a derived class such as BoolEqualsAdvancedFilter, NumberInAdvancedFilter, + /// StringEqualsAdvancedFilter etc. depending on the type of the key based on which you want to filter. + /// + public partial class AdvancedFilter + { + + /// + /// AfterFromJson will be called after the json deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JsonNode that should be deserialized into this object. + + partial void AfterFromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json erialization has finished, allowing customization of the before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JSON container that the serialization result will be placed in. + + partial void AfterToJson(ref Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject container); + + /// + /// BeforeFromJson will be called before the json deserialization has commenced, allowing complete customization of + /// the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JsonNode that should be deserialized into this object. + /// Determines if the rest of the deserialization should be processed, or if the method should return + /// instantly. + + partial void BeforeFromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject json, ref bool returnNow); + + /// + /// BeforeToJson will be called before the json serialization has commenced, allowing complete customization of the + /// object before it is serialized. + /// If you wish to disable the default serialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JSON container that the serialization result will be placed in. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeToJson(ref Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject instance to deserialize from. + internal AdvancedFilter(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject json) + { + bool returnNow = false; + BeforeFromJson(json, ref returnNow); + if (returnNow) + { + return; + } + {_operatorType = If( json?.PropertyT("operatorType"), out var __jsonOperatorType) ? (string)__jsonOperatorType : (string)OperatorType;} + {_key = If( json?.PropertyT("key"), out var __jsonKey) ? (string)__jsonKey : (string)Key;} + AfterFromJson(json); + } + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IAdvancedFilter. + /// Note: the Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IAdvancedFilter interface is polymorphic, + /// and the precise model class that will get deserialized is determined at runtime based on the payload. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IAdvancedFilter. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IAdvancedFilter FromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode node) + { + if (!(node is Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject json)) + { + return null; + } + // Polymorphic type -- select the appropriate constructor using the discriminator + + switch ( json.StringProperty("operatorType") ) + { + case "NumberIn": + { + return new NumberInAdvancedFilter(json); + } + case "NumberNotIn": + { + return new NumberNotInAdvancedFilter(json); + } + case "NumberLessThan": + { + return new NumberLessThanAdvancedFilter(json); + } + case "NumberGreaterThan": + { + return new NumberGreaterThanAdvancedFilter(json); + } + case "NumberLessThanOrEquals": + { + return new NumberLessThanOrEqualsAdvancedFilter(json); + } + case "NumberGreaterThanOrEquals": + { + return new NumberGreaterThanOrEqualsAdvancedFilter(json); + } + case "BoolEquals": + { + return new BoolEqualsAdvancedFilter(json); + } + case "StringIn": + { + return new StringInAdvancedFilter(json); + } + case "StringNotIn": + { + return new StringNotInAdvancedFilter(json); + } + case "StringBeginsWith": + { + return new StringBeginsWithAdvancedFilter(json); + } + case "StringEndsWith": + { + return new StringEndsWithAdvancedFilter(json); + } + case "StringContains": + { + return new StringContainsAdvancedFilter(json); + } + case "NumberInRange": + { + return new NumberInRangeAdvancedFilter(json); + } + case "NumberNotInRange": + { + return new NumberNotInRangeAdvancedFilter(json); + } + case "StringNotBeginsWith": + { + return new StringNotBeginsWithAdvancedFilter(json); + } + case "StringNotEndsWith": + { + return new StringNotEndsWithAdvancedFilter(json); + } + case "StringNotContains": + { + return new StringNotContainsAdvancedFilter(json); + } + case "IsNullOrUndefined": + { + return new IsNullOrUndefinedAdvancedFilter(json); + } + case "IsNotNull": + { + return new IsNotNullAdvancedFilter(json); + } + } + return new AdvancedFilter(json); + } + + /// + /// Serializes this instance of into a . + /// + /// The container to serialize this object into. If the caller + /// passes in null, a new instance will be created and returned to the caller. + /// Allows the caller to choose the depth of the serialization. See . + /// + /// a serialized instance of as a . + /// + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject(); + + bool returnNow = false; + BeforeToJson(ref container, ref returnNow); + if (returnNow) + { + return container; + } + AddIf( null != (((object)this._operatorType)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonString(this._operatorType.ToString()) : null, "operatorType" ,container.Add ); + AddIf( null != (((object)this._key)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonString(this._key.ToString()) : null, "key" ,container.Add ); + AfterToJson(ref container); + return container; + } + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/AzureAdPartnerClientAuthentication.PowerShell.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/AzureAdPartnerClientAuthentication.PowerShell.cs new file mode 100644 index 000000000000..de154de58a7f --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/AzureAdPartnerClientAuthentication.PowerShell.cs @@ -0,0 +1,170 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell; + + /// Azure Active Directory Partner Client Authentication + [System.ComponentModel.TypeConverter(typeof(AzureAdPartnerClientAuthenticationTypeConverter))] + public partial class AzureAdPartnerClientAuthentication + { + + /// + /// AfterDeserializeDictionary will be called after the deserialization has finished, allowing customization of the + /// object before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Collections.IDictionary content that should be used. + + partial void AfterDeserializeDictionary(global::System.Collections.IDictionary content); + + /// + /// AfterDeserializePSObject will be called after the deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Management.Automation.PSObject content that should be used. + + partial void AfterDeserializePSObject(global::System.Management.Automation.PSObject content); + + /// + /// BeforeDeserializeDictionary will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Collections.IDictionary content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializeDictionary(global::System.Collections.IDictionary content, ref bool returnNow); + + /// + /// BeforeDeserializePSObject will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializePSObject(global::System.Management.Automation.PSObject content, ref bool returnNow); + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + internal AzureAdPartnerClientAuthentication(global::System.Collections.IDictionary content) + { + bool returnNow = false; + BeforeDeserializeDictionary(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("Property")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IAzureAdPartnerClientAuthenticationInternal)this).Property = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IAzureAdPartnerClientAuthenticationProperties) content.GetValueForProperty("Property",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IAzureAdPartnerClientAuthenticationInternal)this).Property, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.AzureAdPartnerClientAuthenticationPropertiesTypeConverter.ConvertFrom); + } + if (content.Contains("ClientAuthenticationType")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerClientAuthenticationInternal)this).ClientAuthenticationType = (string) content.GetValueForProperty("ClientAuthenticationType",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerClientAuthenticationInternal)this).ClientAuthenticationType, global::System.Convert.ToString); + } + if (content.Contains("AzureActiveDirectoryTenantId")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IAzureAdPartnerClientAuthenticationInternal)this).AzureActiveDirectoryTenantId = (string) content.GetValueForProperty("AzureActiveDirectoryTenantId",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IAzureAdPartnerClientAuthenticationInternal)this).AzureActiveDirectoryTenantId, global::System.Convert.ToString); + } + if (content.Contains("AzureActiveDirectoryApplicationIdOrUri")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IAzureAdPartnerClientAuthenticationInternal)this).AzureActiveDirectoryApplicationIdOrUri = (string) content.GetValueForProperty("AzureActiveDirectoryApplicationIdOrUri",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IAzureAdPartnerClientAuthenticationInternal)this).AzureActiveDirectoryApplicationIdOrUri, global::System.Convert.ToString); + } + AfterDeserializeDictionary(content); + } + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + internal AzureAdPartnerClientAuthentication(global::System.Management.Automation.PSObject content) + { + bool returnNow = false; + BeforeDeserializePSObject(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("Property")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IAzureAdPartnerClientAuthenticationInternal)this).Property = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IAzureAdPartnerClientAuthenticationProperties) content.GetValueForProperty("Property",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IAzureAdPartnerClientAuthenticationInternal)this).Property, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.AzureAdPartnerClientAuthenticationPropertiesTypeConverter.ConvertFrom); + } + if (content.Contains("ClientAuthenticationType")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerClientAuthenticationInternal)this).ClientAuthenticationType = (string) content.GetValueForProperty("ClientAuthenticationType",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerClientAuthenticationInternal)this).ClientAuthenticationType, global::System.Convert.ToString); + } + if (content.Contains("AzureActiveDirectoryTenantId")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IAzureAdPartnerClientAuthenticationInternal)this).AzureActiveDirectoryTenantId = (string) content.GetValueForProperty("AzureActiveDirectoryTenantId",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IAzureAdPartnerClientAuthenticationInternal)this).AzureActiveDirectoryTenantId, global::System.Convert.ToString); + } + if (content.Contains("AzureActiveDirectoryApplicationIdOrUri")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IAzureAdPartnerClientAuthenticationInternal)this).AzureActiveDirectoryApplicationIdOrUri = (string) content.GetValueForProperty("AzureActiveDirectoryApplicationIdOrUri",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IAzureAdPartnerClientAuthenticationInternal)this).AzureActiveDirectoryApplicationIdOrUri, 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.EventGrid.Models.Api20211015Preview.IAzureAdPartnerClientAuthentication DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new AzureAdPartnerClientAuthentication(content); + } + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IAzureAdPartnerClientAuthentication DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new AzureAdPartnerClientAuthentication(content); + } + + /// + /// Creates a new instance of , deserializing the content from a json string. + /// + /// a string containing a JSON serialized instance of this model. + /// + /// an instance of the model class. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IAzureAdPartnerClientAuthentication FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode.Parse(jsonText)); + + /// Serializes this instance to a json string. + + /// a containing this model serialized to JSON text. + public string ToJsonString() => ToJson(null, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// Azure Active Directory Partner Client Authentication + [System.ComponentModel.TypeConverter(typeof(AzureAdPartnerClientAuthenticationTypeConverter))] + public partial interface IAzureAdPartnerClientAuthentication + + { + + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/AzureAdPartnerClientAuthentication.TypeConverter.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/AzureAdPartnerClientAuthentication.TypeConverter.cs new file mode 100644 index 000000000000..5b2faab36b69 --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/AzureAdPartnerClientAuthentication.TypeConverter.cs @@ -0,0 +1,148 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class AzureAdPartnerClientAuthenticationTypeConverter : global::System.Management.Automation.PSTypeConverter + { + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false. + /// + public override bool CanConvertFrom(object sourceValue, global::System.Type destinationType) => CanConvertFrom(sourceValue); + + /// + /// Determines if the converter can convert the parameter to the . + /// + /// the instance to check if it can be converted to the type. + /// + /// true if the instance could be converted to a type, otherwise + /// false + /// + public static bool CanConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return true; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + // we say yest to PSObjects + return true; + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + // we say yest to Hashtables/dictionaries + return true; + } + try + { + if (null != sourceValue.ToJsonString()) + { + return true; + } + } + catch + { + // Not one of our objects + } + try + { + string text = sourceValue.ToString()?.Trim(); + return true == text?.StartsWith("{") && true == text?.EndsWith("}") && Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonType.Object; + } + catch + { + // Doesn't look like it can be treated as JSON + } + return false; + } + + /// + /// Determines if the parameter can be converted to the parameter + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false + /// + public override bool CanConvertTo(object sourceValue, global::System.Type destinationType) => false; + + /// + /// Converts the parameter to the parameter using and + /// + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// + /// an instance of , or null if there is no suitable conversion. + /// + public override object ConvertFrom(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => ConvertFrom(sourceValue); + + /// + /// Converts the parameter to the parameter using and + /// + /// the value to convert into an instance of . + /// + /// an instance of , or null if there is no suitable conversion. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IAzureAdPartnerClientAuthentication ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IAzureAdPartnerClientAuthentication).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return AzureAdPartnerClientAuthentication.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return AzureAdPartnerClientAuthentication.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return AzureAdPartnerClientAuthentication.DeserializeFromDictionary(sourceValue); + } + return null; + } + + /// NotImplemented -- this will return null + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// will always return null. + public override object ConvertTo(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => null; + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/AzureAdPartnerClientAuthentication.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/AzureAdPartnerClientAuthentication.cs new file mode 100644 index 000000000000..18210025d954 --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/AzureAdPartnerClientAuthentication.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.EventGrid.Models.Api20211015Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Extensions; + + /// Azure Active Directory Partner Client Authentication + public partial class AzureAdPartnerClientAuthentication : + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IAzureAdPartnerClientAuthentication, + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IAzureAdPartnerClientAuthenticationInternal, + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IValidates + { + /// + /// Backing field for Inherited model + /// + private Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerClientAuthentication __partnerClientAuthentication = new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.PartnerClientAuthentication(); + + /// + /// The Azure Active Directory Application ID or URI to get the access token that will be included as the bearer token in + /// delivery requests. + /// + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Inlined)] + public string AzureActiveDirectoryApplicationIdOrUri { get => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IAzureAdPartnerClientAuthenticationPropertiesInternal)Property).AzureActiveDirectoryApplicationIdOrUri; set => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IAzureAdPartnerClientAuthenticationPropertiesInternal)Property).AzureActiveDirectoryApplicationIdOrUri = value ?? null; } + + /// + /// The Azure Active Directory Tenant ID to get the access token that will be included as the bearer token in delivery requests. + /// + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Inlined)] + public string AzureActiveDirectoryTenantId { get => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IAzureAdPartnerClientAuthenticationPropertiesInternal)Property).AzureActiveDirectoryTenantId; set => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IAzureAdPartnerClientAuthenticationPropertiesInternal)Property).AzureActiveDirectoryTenantId = value ?? null; } + + /// Type of client authentication + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Inherited)] + public string ClientAuthenticationType { get => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerClientAuthenticationInternal)__partnerClientAuthentication).ClientAuthenticationType; } + + /// Internal Acessors for Property + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IAzureAdPartnerClientAuthenticationProperties Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IAzureAdPartnerClientAuthenticationInternal.Property { get => (this._property = this._property ?? new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.AzureAdPartnerClientAuthenticationProperties()); set { {_property = value;} } } + + /// Internal Acessors for ClientAuthenticationType + string Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerClientAuthenticationInternal.ClientAuthenticationType { get => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerClientAuthenticationInternal)__partnerClientAuthentication).ClientAuthenticationType; set => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerClientAuthenticationInternal)__partnerClientAuthentication).ClientAuthenticationType = value; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IAzureAdPartnerClientAuthenticationProperties _property; + + /// AzureAD ClientAuthentication Properties + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Owned)] + internal Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IAzureAdPartnerClientAuthenticationProperties Property { get => (this._property = this._property ?? new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.AzureAdPartnerClientAuthenticationProperties()); set => this._property = value; } + + /// Creates an new instance. + public AzureAdPartnerClientAuthentication() + { + + } + + /// Validates that this object meets the validation criteria. + /// an instance that will receive validation + /// events. + /// + /// A that will be complete when validation is completed. + /// + public async global::System.Threading.Tasks.Task Validate(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener eventListener) + { + await eventListener.AssertNotNull(nameof(__partnerClientAuthentication), __partnerClientAuthentication); + await eventListener.AssertObjectIsValid(nameof(__partnerClientAuthentication), __partnerClientAuthentication); + } + } + /// Azure Active Directory Partner Client Authentication + public partial interface IAzureAdPartnerClientAuthentication : + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IJsonSerializable, + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerClientAuthentication + { + /// + /// The Azure Active Directory Application ID or URI to get the access token that will be included as the bearer token in + /// delivery requests. + /// + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The Azure Active Directory Application ID or URI to get the access token that will be included as the bearer token in delivery requests.", + SerializedName = @"azureActiveDirectoryApplicationIdOrUri", + PossibleTypes = new [] { typeof(string) })] + string AzureActiveDirectoryApplicationIdOrUri { get; set; } + /// + /// The Azure Active Directory Tenant ID to get the access token that will be included as the bearer token in delivery requests. + /// + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The Azure Active Directory Tenant ID to get the access token that will be included as the bearer token in delivery requests.", + SerializedName = @"azureActiveDirectoryTenantId", + PossibleTypes = new [] { typeof(string) })] + string AzureActiveDirectoryTenantId { get; set; } + + } + /// Azure Active Directory Partner Client Authentication + internal partial interface IAzureAdPartnerClientAuthenticationInternal : + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerClientAuthenticationInternal + { + /// + /// The Azure Active Directory Application ID or URI to get the access token that will be included as the bearer token in + /// delivery requests. + /// + string AzureActiveDirectoryApplicationIdOrUri { get; set; } + /// + /// The Azure Active Directory Tenant ID to get the access token that will be included as the bearer token in delivery requests. + /// + string AzureActiveDirectoryTenantId { get; set; } + /// AzureAD ClientAuthentication Properties + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IAzureAdPartnerClientAuthenticationProperties Property { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/AzureAdPartnerClientAuthentication.json.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/AzureAdPartnerClientAuthentication.json.cs new file mode 100644 index 000000000000..468d459c154c --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/AzureAdPartnerClientAuthentication.json.cs @@ -0,0 +1,109 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Extensions; + + /// Azure Active Directory Partner Client Authentication + public partial class AzureAdPartnerClientAuthentication + { + + /// + /// AfterFromJson will be called after the json deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JsonNode that should be deserialized into this object. + + partial void AfterFromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json erialization has finished, allowing customization of the before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JSON container that the serialization result will be placed in. + + partial void AfterToJson(ref Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject container); + + /// + /// BeforeFromJson will be called before the json deserialization has commenced, allowing complete customization of + /// the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JsonNode that should be deserialized into this object. + /// Determines if the rest of the deserialization should be processed, or if the method should return + /// instantly. + + partial void BeforeFromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject json, ref bool returnNow); + + /// + /// BeforeToJson will be called before the json serialization has commenced, allowing complete customization of the + /// object before it is serialized. + /// If you wish to disable the default serialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JSON container that the serialization result will be placed in. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeToJson(ref Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject instance to deserialize from. + internal AzureAdPartnerClientAuthentication(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject json) + { + bool returnNow = false; + BeforeFromJson(json, ref returnNow); + if (returnNow) + { + return; + } + __partnerClientAuthentication = new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.PartnerClientAuthentication(json); + {_property = If( json?.PropertyT("properties"), out var __jsonProperties) ? Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.AzureAdPartnerClientAuthenticationProperties.FromJson(__jsonProperties) : Property;} + AfterFromJson(json); + } + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IAzureAdPartnerClientAuthentication. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IAzureAdPartnerClientAuthentication. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IAzureAdPartnerClientAuthentication FromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject json ? new AzureAdPartnerClientAuthentication(json) : null; + } + + /// + /// Serializes this instance of into a . + /// + /// The container to serialize this object into. If the caller + /// passes in null, a new instance will be created and returned to the caller. + /// Allows the caller to choose the depth of the serialization. See . + /// + /// a serialized instance of as a . + /// + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject(); + + bool returnNow = false; + BeforeToJson(ref container, ref returnNow); + if (returnNow) + { + return container; + } + __partnerClientAuthentication?.ToJson(container, serializationMode); + AddIf( null != this._property ? (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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/eventgrid/generated/api/Models/Api20211015Preview/AzureAdPartnerClientAuthenticationProperties.PowerShell.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/AzureAdPartnerClientAuthenticationProperties.PowerShell.cs new file mode 100644 index 000000000000..55e94a528969 --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/AzureAdPartnerClientAuthenticationProperties.PowerShell.cs @@ -0,0 +1,155 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell; + + /// Properties of an Azure Active Directory Partner Client Authentication. + [System.ComponentModel.TypeConverter(typeof(AzureAdPartnerClientAuthenticationPropertiesTypeConverter))] + public partial class AzureAdPartnerClientAuthenticationProperties + { + + /// + /// AfterDeserializeDictionary will be called after the deserialization has finished, allowing customization of the + /// object before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Collections.IDictionary content that should be used. + + partial void AfterDeserializeDictionary(global::System.Collections.IDictionary content); + + /// + /// AfterDeserializePSObject will be called after the deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Management.Automation.PSObject content that should be used. + + partial void AfterDeserializePSObject(global::System.Management.Automation.PSObject content); + + /// + /// BeforeDeserializeDictionary will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Collections.IDictionary content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializeDictionary(global::System.Collections.IDictionary content, ref bool returnNow); + + /// + /// BeforeDeserializePSObject will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializePSObject(global::System.Management.Automation.PSObject content, ref bool returnNow); + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + internal AzureAdPartnerClientAuthenticationProperties(global::System.Collections.IDictionary content) + { + bool returnNow = false; + BeforeDeserializeDictionary(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("AzureActiveDirectoryTenantId")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IAzureAdPartnerClientAuthenticationPropertiesInternal)this).AzureActiveDirectoryTenantId = (string) content.GetValueForProperty("AzureActiveDirectoryTenantId",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IAzureAdPartnerClientAuthenticationPropertiesInternal)this).AzureActiveDirectoryTenantId, global::System.Convert.ToString); + } + if (content.Contains("AzureActiveDirectoryApplicationIdOrUri")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IAzureAdPartnerClientAuthenticationPropertiesInternal)this).AzureActiveDirectoryApplicationIdOrUri = (string) content.GetValueForProperty("AzureActiveDirectoryApplicationIdOrUri",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IAzureAdPartnerClientAuthenticationPropertiesInternal)this).AzureActiveDirectoryApplicationIdOrUri, global::System.Convert.ToString); + } + AfterDeserializeDictionary(content); + } + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + internal AzureAdPartnerClientAuthenticationProperties(global::System.Management.Automation.PSObject content) + { + bool returnNow = false; + BeforeDeserializePSObject(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("AzureActiveDirectoryTenantId")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IAzureAdPartnerClientAuthenticationPropertiesInternal)this).AzureActiveDirectoryTenantId = (string) content.GetValueForProperty("AzureActiveDirectoryTenantId",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IAzureAdPartnerClientAuthenticationPropertiesInternal)this).AzureActiveDirectoryTenantId, global::System.Convert.ToString); + } + if (content.Contains("AzureActiveDirectoryApplicationIdOrUri")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IAzureAdPartnerClientAuthenticationPropertiesInternal)this).AzureActiveDirectoryApplicationIdOrUri = (string) content.GetValueForProperty("AzureActiveDirectoryApplicationIdOrUri",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IAzureAdPartnerClientAuthenticationPropertiesInternal)this).AzureActiveDirectoryApplicationIdOrUri, 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.EventGrid.Models.Api20211015Preview.IAzureAdPartnerClientAuthenticationProperties DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new AzureAdPartnerClientAuthenticationProperties(content); + } + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IAzureAdPartnerClientAuthenticationProperties DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new AzureAdPartnerClientAuthenticationProperties(content); + } + + /// + /// Creates a new instance of , deserializing the content from + /// a json string. + /// + /// a string containing a JSON serialized instance of this model. + /// + /// an instance of the model class. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IAzureAdPartnerClientAuthenticationProperties FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode.Parse(jsonText)); + + /// Serializes this instance to a json string. + + /// a containing this model serialized to JSON text. + public string ToJsonString() => ToJson(null, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// Properties of an Azure Active Directory Partner Client Authentication. + [System.ComponentModel.TypeConverter(typeof(AzureAdPartnerClientAuthenticationPropertiesTypeConverter))] + public partial interface IAzureAdPartnerClientAuthenticationProperties + + { + + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/AzureAdPartnerClientAuthenticationProperties.TypeConverter.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/AzureAdPartnerClientAuthenticationProperties.TypeConverter.cs new file mode 100644 index 000000000000..73775002235e --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/AzureAdPartnerClientAuthenticationProperties.TypeConverter.cs @@ -0,0 +1,150 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class AzureAdPartnerClientAuthenticationPropertiesTypeConverter : global::System.Management.Automation.PSTypeConverter + { + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false. + /// + public override bool CanConvertFrom(object sourceValue, global::System.Type destinationType) => CanConvertFrom(sourceValue); + + /// + /// Determines if the converter can convert the parameter to the . + /// + /// the instance to check if it can be converted to the type. + /// + /// true if the instance could be converted to a type, + /// otherwise false + /// + public static bool CanConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return true; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + // we say yest to PSObjects + return true; + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + // we say yest to Hashtables/dictionaries + return true; + } + try + { + if (null != sourceValue.ToJsonString()) + { + return true; + } + } + catch + { + // Not one of our objects + } + try + { + string text = sourceValue.ToString()?.Trim(); + return true == text?.StartsWith("{") && true == text?.EndsWith("}") && Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonType.Object; + } + catch + { + // Doesn't look like it can be treated as JSON + } + return false; + } + + /// + /// Determines if the parameter can be converted to the parameter + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false + /// + public override bool CanConvertTo(object sourceValue, global::System.Type destinationType) => false; + + /// + /// Converts the parameter to the parameter using and + /// + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// + /// an instance of , or null if there is no suitable conversion. + /// + public override object ConvertFrom(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => ConvertFrom(sourceValue); + + /// + /// Converts the parameter to the parameter using and + /// + /// the value to convert into an instance of . + /// + /// an instance of , or null if there is no suitable conversion. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IAzureAdPartnerClientAuthenticationProperties ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IAzureAdPartnerClientAuthenticationProperties).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return AzureAdPartnerClientAuthenticationProperties.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return AzureAdPartnerClientAuthenticationProperties.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return AzureAdPartnerClientAuthenticationProperties.DeserializeFromDictionary(sourceValue); + } + return null; + } + + /// NotImplemented -- this will return null + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// will always return null. + public override object ConvertTo(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => null; + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/AzureAdPartnerClientAuthenticationProperties.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/AzureAdPartnerClientAuthenticationProperties.cs new file mode 100644 index 000000000000..c718b5956d91 --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/AzureAdPartnerClientAuthenticationProperties.cs @@ -0,0 +1,87 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Extensions; + + /// Properties of an Azure Active Directory Partner Client Authentication. + public partial class AzureAdPartnerClientAuthenticationProperties : + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IAzureAdPartnerClientAuthenticationProperties, + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IAzureAdPartnerClientAuthenticationPropertiesInternal + { + + /// + /// Backing field for property. + /// + private string _azureActiveDirectoryApplicationIdOrUri; + + /// + /// The Azure Active Directory Application ID or URI to get the access token that will be included as the bearer token in + /// delivery requests. + /// + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Owned)] + public string AzureActiveDirectoryApplicationIdOrUri { get => this._azureActiveDirectoryApplicationIdOrUri; set => this._azureActiveDirectoryApplicationIdOrUri = value; } + + /// Backing field for property. + private string _azureActiveDirectoryTenantId; + + /// + /// The Azure Active Directory Tenant ID to get the access token that will be included as the bearer token in delivery requests. + /// + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Owned)] + public string AzureActiveDirectoryTenantId { get => this._azureActiveDirectoryTenantId; set => this._azureActiveDirectoryTenantId = value; } + + /// + /// Creates an new instance. + /// + public AzureAdPartnerClientAuthenticationProperties() + { + + } + } + /// Properties of an Azure Active Directory Partner Client Authentication. + public partial interface IAzureAdPartnerClientAuthenticationProperties : + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IJsonSerializable + { + /// + /// The Azure Active Directory Application ID or URI to get the access token that will be included as the bearer token in + /// delivery requests. + /// + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The Azure Active Directory Application ID or URI to get the access token that will be included as the bearer token in delivery requests.", + SerializedName = @"azureActiveDirectoryApplicationIdOrUri", + PossibleTypes = new [] { typeof(string) })] + string AzureActiveDirectoryApplicationIdOrUri { get; set; } + /// + /// The Azure Active Directory Tenant ID to get the access token that will be included as the bearer token in delivery requests. + /// + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The Azure Active Directory Tenant ID to get the access token that will be included as the bearer token in delivery requests.", + SerializedName = @"azureActiveDirectoryTenantId", + PossibleTypes = new [] { typeof(string) })] + string AzureActiveDirectoryTenantId { get; set; } + + } + /// Properties of an Azure Active Directory Partner Client Authentication. + internal partial interface IAzureAdPartnerClientAuthenticationPropertiesInternal + + { + /// + /// The Azure Active Directory Application ID or URI to get the access token that will be included as the bearer token in + /// delivery requests. + /// + string AzureActiveDirectoryApplicationIdOrUri { get; set; } + /// + /// The Azure Active Directory Tenant ID to get the access token that will be included as the bearer token in delivery requests. + /// + string AzureActiveDirectoryTenantId { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/AzureAdPartnerClientAuthenticationProperties.json.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/AzureAdPartnerClientAuthenticationProperties.json.cs new file mode 100644 index 000000000000..e015e7b11503 --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/AzureAdPartnerClientAuthenticationProperties.json.cs @@ -0,0 +1,111 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Extensions; + + /// Properties of an Azure Active Directory Partner Client Authentication. + public partial class AzureAdPartnerClientAuthenticationProperties + { + + /// + /// AfterFromJson will be called after the json deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JsonNode that should be deserialized into this object. + + partial void AfterFromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json erialization has finished, allowing customization of the before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JSON container that the serialization result will be placed in. + + partial void AfterToJson(ref Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject container); + + /// + /// BeforeFromJson will be called before the json deserialization has commenced, allowing complete customization of + /// the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JsonNode that should be deserialized into this object. + /// Determines if the rest of the deserialization should be processed, or if the method should return + /// instantly. + + partial void BeforeFromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject json, ref bool returnNow); + + /// + /// BeforeToJson will be called before the json serialization has commenced, allowing complete customization of the + /// object before it is serialized. + /// If you wish to disable the default serialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JSON container that the serialization result will be placed in. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeToJson(ref Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject instance to deserialize from. + internal AzureAdPartnerClientAuthenticationProperties(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject json) + { + bool returnNow = false; + BeforeFromJson(json, ref returnNow); + if (returnNow) + { + return; + } + {_azureActiveDirectoryTenantId = If( json?.PropertyT("azureActiveDirectoryTenantId"), out var __jsonAzureActiveDirectoryTenantId) ? (string)__jsonAzureActiveDirectoryTenantId : (string)AzureActiveDirectoryTenantId;} + {_azureActiveDirectoryApplicationIdOrUri = If( json?.PropertyT("azureActiveDirectoryApplicationIdOrUri"), out var __jsonAzureActiveDirectoryApplicationIdOrUri) ? (string)__jsonAzureActiveDirectoryApplicationIdOrUri : (string)AzureActiveDirectoryApplicationIdOrUri;} + AfterFromJson(json); + } + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IAzureAdPartnerClientAuthenticationProperties. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IAzureAdPartnerClientAuthenticationProperties. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IAzureAdPartnerClientAuthenticationProperties FromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject json ? new AzureAdPartnerClientAuthenticationProperties(json) : null; + } + + /// + /// Serializes this instance of into a . + /// + /// The container to serialize this object into. If the caller + /// passes in null, a new instance will be created and returned to the caller. + /// Allows the caller to choose the depth of the serialization. See . + /// + /// a serialized instance of as a . + /// + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject(); + + bool returnNow = false; + BeforeToJson(ref container, ref returnNow); + if (returnNow) + { + return container; + } + AddIf( null != (((object)this._azureActiveDirectoryTenantId)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonString(this._azureActiveDirectoryTenantId.ToString()) : null, "azureActiveDirectoryTenantId" ,container.Add ); + AddIf( null != (((object)this._azureActiveDirectoryApplicationIdOrUri)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonString(this._azureActiveDirectoryApplicationIdOrUri.ToString()) : null, "azureActiveDirectoryApplicationIdOrUri" ,container.Add ); + AfterToJson(ref container); + return container; + } + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/AzureFunctionEventSubscriptionDestination.PowerShell.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/AzureFunctionEventSubscriptionDestination.PowerShell.cs new file mode 100644 index 000000000000..51d5b70d7d0a --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/AzureFunctionEventSubscriptionDestination.PowerShell.cs @@ -0,0 +1,187 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell; + + /// Information about the azure function destination for an event subscription. + [System.ComponentModel.TypeConverter(typeof(AzureFunctionEventSubscriptionDestinationTypeConverter))] + public partial class AzureFunctionEventSubscriptionDestination + { + + /// + /// AfterDeserializeDictionary will be called after the deserialization has finished, allowing customization of the + /// object before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Collections.IDictionary content that should be used. + + partial void AfterDeserializeDictionary(global::System.Collections.IDictionary content); + + /// + /// AfterDeserializePSObject will be called after the deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Management.Automation.PSObject content that should be used. + + partial void AfterDeserializePSObject(global::System.Management.Automation.PSObject content); + + /// + /// BeforeDeserializeDictionary will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Collections.IDictionary content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializeDictionary(global::System.Collections.IDictionary content, ref bool returnNow); + + /// + /// BeforeDeserializePSObject will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializePSObject(global::System.Management.Automation.PSObject content, ref bool returnNow); + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + internal AzureFunctionEventSubscriptionDestination(global::System.Collections.IDictionary content) + { + bool returnNow = false; + BeforeDeserializeDictionary(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("Property")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IAzureFunctionEventSubscriptionDestinationInternal)this).Property = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IAzureFunctionEventSubscriptionDestinationProperties) content.GetValueForProperty("Property",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IAzureFunctionEventSubscriptionDestinationInternal)this).Property, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.AzureFunctionEventSubscriptionDestinationPropertiesTypeConverter.ConvertFrom); + } + if (content.Contains("EndpointType")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionDestinationInternal)this).EndpointType = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EndpointType) content.GetValueForProperty("EndpointType",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionDestinationInternal)this).EndpointType, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EndpointType.CreateFrom); + } + if (content.Contains("ResourceId")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IAzureFunctionEventSubscriptionDestinationInternal)this).ResourceId = (string) content.GetValueForProperty("ResourceId",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IAzureFunctionEventSubscriptionDestinationInternal)this).ResourceId, global::System.Convert.ToString); + } + if (content.Contains("MaxEventsPerBatch")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IAzureFunctionEventSubscriptionDestinationInternal)this).MaxEventsPerBatch = (int?) content.GetValueForProperty("MaxEventsPerBatch",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IAzureFunctionEventSubscriptionDestinationInternal)this).MaxEventsPerBatch, (__y)=> (int) global::System.Convert.ChangeType(__y, typeof(int))); + } + if (content.Contains("PreferredBatchSizeInKilobyte")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IAzureFunctionEventSubscriptionDestinationInternal)this).PreferredBatchSizeInKilobyte = (int?) content.GetValueForProperty("PreferredBatchSizeInKilobyte",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IAzureFunctionEventSubscriptionDestinationInternal)this).PreferredBatchSizeInKilobyte, (__y)=> (int) global::System.Convert.ChangeType(__y, typeof(int))); + } + if (content.Contains("DeliveryAttributeMapping")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IAzureFunctionEventSubscriptionDestinationInternal)this).DeliveryAttributeMapping = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDeliveryAttributeMapping[]) content.GetValueForProperty("DeliveryAttributeMapping",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IAzureFunctionEventSubscriptionDestinationInternal)this).DeliveryAttributeMapping, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.DeliveryAttributeMappingTypeConverter.ConvertFrom)); + } + AfterDeserializeDictionary(content); + } + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + internal AzureFunctionEventSubscriptionDestination(global::System.Management.Automation.PSObject content) + { + bool returnNow = false; + BeforeDeserializePSObject(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("Property")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IAzureFunctionEventSubscriptionDestinationInternal)this).Property = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IAzureFunctionEventSubscriptionDestinationProperties) content.GetValueForProperty("Property",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IAzureFunctionEventSubscriptionDestinationInternal)this).Property, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.AzureFunctionEventSubscriptionDestinationPropertiesTypeConverter.ConvertFrom); + } + if (content.Contains("EndpointType")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionDestinationInternal)this).EndpointType = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EndpointType) content.GetValueForProperty("EndpointType",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionDestinationInternal)this).EndpointType, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EndpointType.CreateFrom); + } + if (content.Contains("ResourceId")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IAzureFunctionEventSubscriptionDestinationInternal)this).ResourceId = (string) content.GetValueForProperty("ResourceId",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IAzureFunctionEventSubscriptionDestinationInternal)this).ResourceId, global::System.Convert.ToString); + } + if (content.Contains("MaxEventsPerBatch")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IAzureFunctionEventSubscriptionDestinationInternal)this).MaxEventsPerBatch = (int?) content.GetValueForProperty("MaxEventsPerBatch",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IAzureFunctionEventSubscriptionDestinationInternal)this).MaxEventsPerBatch, (__y)=> (int) global::System.Convert.ChangeType(__y, typeof(int))); + } + if (content.Contains("PreferredBatchSizeInKilobyte")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IAzureFunctionEventSubscriptionDestinationInternal)this).PreferredBatchSizeInKilobyte = (int?) content.GetValueForProperty("PreferredBatchSizeInKilobyte",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IAzureFunctionEventSubscriptionDestinationInternal)this).PreferredBatchSizeInKilobyte, (__y)=> (int) global::System.Convert.ChangeType(__y, typeof(int))); + } + if (content.Contains("DeliveryAttributeMapping")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IAzureFunctionEventSubscriptionDestinationInternal)this).DeliveryAttributeMapping = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDeliveryAttributeMapping[]) content.GetValueForProperty("DeliveryAttributeMapping",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IAzureFunctionEventSubscriptionDestinationInternal)this).DeliveryAttributeMapping, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.DeliveryAttributeMappingTypeConverter.ConvertFrom)); + } + AfterDeserializePSObject(content); + } + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IAzureFunctionEventSubscriptionDestination DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new AzureFunctionEventSubscriptionDestination(content); + } + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IAzureFunctionEventSubscriptionDestination DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new AzureFunctionEventSubscriptionDestination(content); + } + + /// + /// Creates a new instance of , deserializing the content from a json + /// string. + /// + /// a string containing a JSON serialized instance of this model. + /// + /// an instance of the model class. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IAzureFunctionEventSubscriptionDestination FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode.Parse(jsonText)); + + /// Serializes this instance to a json string. + + /// a containing this model serialized to JSON text. + public string ToJsonString() => ToJson(null, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// Information about the azure function destination for an event subscription. + [System.ComponentModel.TypeConverter(typeof(AzureFunctionEventSubscriptionDestinationTypeConverter))] + public partial interface IAzureFunctionEventSubscriptionDestination + + { + + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/AzureFunctionEventSubscriptionDestination.TypeConverter.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/AzureFunctionEventSubscriptionDestination.TypeConverter.cs new file mode 100644 index 000000000000..11f1f8d55be3 --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/AzureFunctionEventSubscriptionDestination.TypeConverter.cs @@ -0,0 +1,150 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class AzureFunctionEventSubscriptionDestinationTypeConverter : global::System.Management.Automation.PSTypeConverter + { + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false. + /// + public override bool CanConvertFrom(object sourceValue, global::System.Type destinationType) => CanConvertFrom(sourceValue); + + /// + /// Determines if the converter can convert the parameter to the . + /// + /// the instance to check if it can be converted to the type. + /// + /// true if the instance could be converted to a type, otherwise + /// false + /// + public static bool CanConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return true; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + // we say yest to PSObjects + return true; + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + // we say yest to Hashtables/dictionaries + return true; + } + try + { + if (null != sourceValue.ToJsonString()) + { + return true; + } + } + catch + { + // Not one of our objects + } + try + { + string text = sourceValue.ToString()?.Trim(); + return true == text?.StartsWith("{") && true == text?.EndsWith("}") && Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonType.Object; + } + catch + { + // Doesn't look like it can be treated as JSON + } + return false; + } + + /// + /// Determines if the parameter can be converted to the parameter + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false + /// + public override bool CanConvertTo(object sourceValue, global::System.Type destinationType) => false; + + /// + /// Converts the parameter to the parameter using and + /// + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// + /// an instance of , or null if there is no suitable conversion. + /// + public override object ConvertFrom(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => ConvertFrom(sourceValue); + + /// + /// Converts the parameter to the parameter using and + /// + /// the value to convert into an instance of . + /// + /// an instance of , or null if there is no suitable conversion. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IAzureFunctionEventSubscriptionDestination ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IAzureFunctionEventSubscriptionDestination).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return AzureFunctionEventSubscriptionDestination.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return AzureFunctionEventSubscriptionDestination.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return AzureFunctionEventSubscriptionDestination.DeserializeFromDictionary(sourceValue); + } + return null; + } + + /// NotImplemented -- this will return null + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// will always return null. + public override object ConvertTo(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => null; + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/AzureFunctionEventSubscriptionDestination.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/AzureFunctionEventSubscriptionDestination.cs new file mode 100644 index 000000000000..a7c700ffa9d1 --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/AzureFunctionEventSubscriptionDestination.cs @@ -0,0 +1,133 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Extensions; + + /// Information about the azure function destination for an event subscription. + public partial class AzureFunctionEventSubscriptionDestination : + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IAzureFunctionEventSubscriptionDestination, + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IAzureFunctionEventSubscriptionDestinationInternal, + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IValidates + { + /// + /// Backing field for Inherited model + /// + private Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionDestination __eventSubscriptionDestination = new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.EventSubscriptionDestination(); + + /// Delivery attribute details. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Inlined)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDeliveryAttributeMapping[] DeliveryAttributeMapping { get => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IAzureFunctionEventSubscriptionDestinationPropertiesInternal)Property).DeliveryAttributeMapping; set => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IAzureFunctionEventSubscriptionDestinationPropertiesInternal)Property).DeliveryAttributeMapping = value ?? null /* arrayOf */; } + + /// Type of the endpoint for the event subscription destination. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Inherited)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EndpointType EndpointType { get => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionDestinationInternal)__eventSubscriptionDestination).EndpointType; set => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionDestinationInternal)__eventSubscriptionDestination).EndpointType = value ; } + + /// Maximum number of events per batch. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Inlined)] + public int? MaxEventsPerBatch { get => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IAzureFunctionEventSubscriptionDestinationPropertiesInternal)Property).MaxEventsPerBatch; set => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IAzureFunctionEventSubscriptionDestinationPropertiesInternal)Property).MaxEventsPerBatch = value ?? default(int); } + + /// Internal Acessors for Property + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IAzureFunctionEventSubscriptionDestinationProperties Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IAzureFunctionEventSubscriptionDestinationInternal.Property { get => (this._property = this._property ?? new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.AzureFunctionEventSubscriptionDestinationProperties()); set { {_property = value;} } } + + /// Preferred batch size in Kilobytes. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Inlined)] + public int? PreferredBatchSizeInKilobyte { get => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IAzureFunctionEventSubscriptionDestinationPropertiesInternal)Property).PreferredBatchSizeInKilobyte; set => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IAzureFunctionEventSubscriptionDestinationPropertiesInternal)Property).PreferredBatchSizeInKilobyte = value ?? default(int); } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IAzureFunctionEventSubscriptionDestinationProperties _property; + + /// Azure Function Properties of the event subscription destination. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Owned)] + internal Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IAzureFunctionEventSubscriptionDestinationProperties Property { get => (this._property = this._property ?? new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.AzureFunctionEventSubscriptionDestinationProperties()); set => this._property = value; } + + /// + /// The Azure Resource Id that represents the endpoint of the Azure Function destination of an event subscription. + /// + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Inlined)] + public string ResourceId { get => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IAzureFunctionEventSubscriptionDestinationPropertiesInternal)Property).ResourceId; set => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IAzureFunctionEventSubscriptionDestinationPropertiesInternal)Property).ResourceId = value ?? null; } + + /// + /// Creates an new instance. + /// + public AzureFunctionEventSubscriptionDestination() + { + + } + + /// Validates that this object meets the validation criteria. + /// an instance that will receive validation + /// events. + /// + /// A that will be complete when validation is completed. + /// + public async global::System.Threading.Tasks.Task Validate(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener eventListener) + { + await eventListener.AssertNotNull(nameof(__eventSubscriptionDestination), __eventSubscriptionDestination); + await eventListener.AssertObjectIsValid(nameof(__eventSubscriptionDestination), __eventSubscriptionDestination); + } + } + /// Information about the azure function destination for an event subscription. + public partial interface IAzureFunctionEventSubscriptionDestination : + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IJsonSerializable, + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionDestination + { + /// Delivery attribute details. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Delivery attribute details.", + SerializedName = @"deliveryAttributeMappings", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDeliveryAttributeMapping),typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IStaticDeliveryAttributeMapping),typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDynamicDeliveryAttributeMapping) })] + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDeliveryAttributeMapping[] DeliveryAttributeMapping { get; set; } + /// Maximum number of events per batch. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Maximum number of events per batch.", + SerializedName = @"maxEventsPerBatch", + PossibleTypes = new [] { typeof(int) })] + int? MaxEventsPerBatch { get; set; } + /// Preferred batch size in Kilobytes. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Preferred batch size in Kilobytes.", + SerializedName = @"preferredBatchSizeInKilobytes", + PossibleTypes = new [] { typeof(int) })] + int? PreferredBatchSizeInKilobyte { get; set; } + /// + /// The Azure Resource Id that represents the endpoint of the Azure Function destination of an event subscription. + /// + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The Azure Resource Id that represents the endpoint of the Azure Function destination of an event subscription.", + SerializedName = @"resourceId", + PossibleTypes = new [] { typeof(string) })] + string ResourceId { get; set; } + + } + /// Information about the azure function destination for an event subscription. + internal partial interface IAzureFunctionEventSubscriptionDestinationInternal : + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionDestinationInternal + { + /// Delivery attribute details. + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDeliveryAttributeMapping[] DeliveryAttributeMapping { get; set; } + /// Maximum number of events per batch. + int? MaxEventsPerBatch { get; set; } + /// Preferred batch size in Kilobytes. + int? PreferredBatchSizeInKilobyte { get; set; } + /// Azure Function Properties of the event subscription destination. + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IAzureFunctionEventSubscriptionDestinationProperties Property { get; set; } + /// + /// The Azure Resource Id that represents the endpoint of the Azure Function destination of an event subscription. + /// + string ResourceId { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/AzureFunctionEventSubscriptionDestination.json.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/AzureFunctionEventSubscriptionDestination.json.cs new file mode 100644 index 000000000000..0bbf2b1ac22d --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/AzureFunctionEventSubscriptionDestination.json.cs @@ -0,0 +1,110 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Extensions; + + /// Information about the azure function destination for an event subscription. + public partial class AzureFunctionEventSubscriptionDestination + { + + /// + /// AfterFromJson will be called after the json deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JsonNode that should be deserialized into this object. + + partial void AfterFromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json erialization has finished, allowing customization of the before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JSON container that the serialization result will be placed in. + + partial void AfterToJson(ref Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject container); + + /// + /// BeforeFromJson will be called before the json deserialization has commenced, allowing complete customization of + /// the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JsonNode that should be deserialized into this object. + /// Determines if the rest of the deserialization should be processed, or if the method should return + /// instantly. + + partial void BeforeFromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject json, ref bool returnNow); + + /// + /// BeforeToJson will be called before the json serialization has commenced, allowing complete customization of the + /// object before it is serialized. + /// If you wish to disable the default serialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JSON container that the serialization result will be placed in. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeToJson(ref Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject instance to deserialize from. + internal AzureFunctionEventSubscriptionDestination(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject json) + { + bool returnNow = false; + BeforeFromJson(json, ref returnNow); + if (returnNow) + { + return; + } + __eventSubscriptionDestination = new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.EventSubscriptionDestination(json); + {_property = If( json?.PropertyT("properties"), out var __jsonProperties) ? Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.AzureFunctionEventSubscriptionDestinationProperties.FromJson(__jsonProperties) : Property;} + AfterFromJson(json); + } + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IAzureFunctionEventSubscriptionDestination. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IAzureFunctionEventSubscriptionDestination. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IAzureFunctionEventSubscriptionDestination FromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject json ? new AzureFunctionEventSubscriptionDestination(json) : null; + } + + /// + /// Serializes this instance of into a . + /// + /// The container to serialize this object into. If the caller + /// passes in null, a new instance will be created and returned to the caller. + /// Allows the caller to choose the depth of the serialization. See . + /// + /// a serialized instance of as a . + /// + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject(); + + bool returnNow = false; + BeforeToJson(ref container, ref returnNow); + if (returnNow) + { + return container; + } + __eventSubscriptionDestination?.ToJson(container, serializationMode); + AddIf( null != this._property ? (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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/eventgrid/generated/api/Models/Api20211015Preview/AzureFunctionEventSubscriptionDestinationProperties.PowerShell.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/AzureFunctionEventSubscriptionDestinationProperties.PowerShell.cs new file mode 100644 index 000000000000..6d969cf7819c --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/AzureFunctionEventSubscriptionDestinationProperties.PowerShell.cs @@ -0,0 +1,173 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell; + + /// + /// The properties that represent the Azure Function destination of an event subscription. + /// + [System.ComponentModel.TypeConverter(typeof(AzureFunctionEventSubscriptionDestinationPropertiesTypeConverter))] + public partial class AzureFunctionEventSubscriptionDestinationProperties + { + + /// + /// AfterDeserializeDictionary will be called after the deserialization has finished, allowing customization of the + /// object before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Collections.IDictionary content that should be used. + + partial void AfterDeserializeDictionary(global::System.Collections.IDictionary content); + + /// + /// AfterDeserializePSObject will be called after the deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Management.Automation.PSObject content that should be used. + + partial void AfterDeserializePSObject(global::System.Management.Automation.PSObject content); + + /// + /// BeforeDeserializeDictionary will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Collections.IDictionary content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializeDictionary(global::System.Collections.IDictionary content, ref bool returnNow); + + /// + /// BeforeDeserializePSObject will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializePSObject(global::System.Management.Automation.PSObject content, ref bool returnNow); + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + internal AzureFunctionEventSubscriptionDestinationProperties(global::System.Collections.IDictionary content) + { + bool returnNow = false; + BeforeDeserializeDictionary(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("ResourceId")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IAzureFunctionEventSubscriptionDestinationPropertiesInternal)this).ResourceId = (string) content.GetValueForProperty("ResourceId",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IAzureFunctionEventSubscriptionDestinationPropertiesInternal)this).ResourceId, global::System.Convert.ToString); + } + if (content.Contains("MaxEventsPerBatch")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IAzureFunctionEventSubscriptionDestinationPropertiesInternal)this).MaxEventsPerBatch = (int?) content.GetValueForProperty("MaxEventsPerBatch",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IAzureFunctionEventSubscriptionDestinationPropertiesInternal)this).MaxEventsPerBatch, (__y)=> (int) global::System.Convert.ChangeType(__y, typeof(int))); + } + if (content.Contains("PreferredBatchSizeInKilobyte")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IAzureFunctionEventSubscriptionDestinationPropertiesInternal)this).PreferredBatchSizeInKilobyte = (int?) content.GetValueForProperty("PreferredBatchSizeInKilobyte",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IAzureFunctionEventSubscriptionDestinationPropertiesInternal)this).PreferredBatchSizeInKilobyte, (__y)=> (int) global::System.Convert.ChangeType(__y, typeof(int))); + } + if (content.Contains("DeliveryAttributeMapping")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IAzureFunctionEventSubscriptionDestinationPropertiesInternal)this).DeliveryAttributeMapping = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDeliveryAttributeMapping[]) content.GetValueForProperty("DeliveryAttributeMapping",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IAzureFunctionEventSubscriptionDestinationPropertiesInternal)this).DeliveryAttributeMapping, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.DeliveryAttributeMappingTypeConverter.ConvertFrom)); + } + AfterDeserializeDictionary(content); + } + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + internal AzureFunctionEventSubscriptionDestinationProperties(global::System.Management.Automation.PSObject content) + { + bool returnNow = false; + BeforeDeserializePSObject(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("ResourceId")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IAzureFunctionEventSubscriptionDestinationPropertiesInternal)this).ResourceId = (string) content.GetValueForProperty("ResourceId",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IAzureFunctionEventSubscriptionDestinationPropertiesInternal)this).ResourceId, global::System.Convert.ToString); + } + if (content.Contains("MaxEventsPerBatch")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IAzureFunctionEventSubscriptionDestinationPropertiesInternal)this).MaxEventsPerBatch = (int?) content.GetValueForProperty("MaxEventsPerBatch",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IAzureFunctionEventSubscriptionDestinationPropertiesInternal)this).MaxEventsPerBatch, (__y)=> (int) global::System.Convert.ChangeType(__y, typeof(int))); + } + if (content.Contains("PreferredBatchSizeInKilobyte")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IAzureFunctionEventSubscriptionDestinationPropertiesInternal)this).PreferredBatchSizeInKilobyte = (int?) content.GetValueForProperty("PreferredBatchSizeInKilobyte",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IAzureFunctionEventSubscriptionDestinationPropertiesInternal)this).PreferredBatchSizeInKilobyte, (__y)=> (int) global::System.Convert.ChangeType(__y, typeof(int))); + } + if (content.Contains("DeliveryAttributeMapping")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IAzureFunctionEventSubscriptionDestinationPropertiesInternal)this).DeliveryAttributeMapping = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDeliveryAttributeMapping[]) content.GetValueForProperty("DeliveryAttributeMapping",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IAzureFunctionEventSubscriptionDestinationPropertiesInternal)this).DeliveryAttributeMapping, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.DeliveryAttributeMappingTypeConverter.ConvertFrom)); + } + AfterDeserializePSObject(content); + } + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IAzureFunctionEventSubscriptionDestinationProperties DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new AzureFunctionEventSubscriptionDestinationProperties(content); + } + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IAzureFunctionEventSubscriptionDestinationProperties DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new AzureFunctionEventSubscriptionDestinationProperties(content); + } + + /// + /// Creates a new instance of , deserializing the content + /// from a json string. + /// + /// a string containing a JSON serialized instance of this model. + /// + /// an instance of the model class. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IAzureFunctionEventSubscriptionDestinationProperties FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode.Parse(jsonText)); + + /// Serializes this instance to a json string. + + /// a containing this model serialized to JSON text. + public string ToJsonString() => ToJson(null, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// The properties that represent the Azure Function destination of an event subscription. + [System.ComponentModel.TypeConverter(typeof(AzureFunctionEventSubscriptionDestinationPropertiesTypeConverter))] + public partial interface IAzureFunctionEventSubscriptionDestinationProperties + + { + + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/AzureFunctionEventSubscriptionDestinationProperties.TypeConverter.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/AzureFunctionEventSubscriptionDestinationProperties.TypeConverter.cs new file mode 100644 index 000000000000..876fcdee2185 --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/AzureFunctionEventSubscriptionDestinationProperties.TypeConverter.cs @@ -0,0 +1,152 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class AzureFunctionEventSubscriptionDestinationPropertiesTypeConverter : global::System.Management.Automation.PSTypeConverter + { + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false. + /// + public override bool CanConvertFrom(object sourceValue, global::System.Type destinationType) => CanConvertFrom(sourceValue); + + /// + /// Determines if the converter can convert the parameter to the . + /// + /// the instance to check if it can be converted to the type. + /// + /// true if the instance could be converted to a + /// type, otherwise false + /// + public static bool CanConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return true; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + // we say yest to PSObjects + return true; + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + // we say yest to Hashtables/dictionaries + return true; + } + try + { + if (null != sourceValue.ToJsonString()) + { + return true; + } + } + catch + { + // Not one of our objects + } + try + { + string text = sourceValue.ToString()?.Trim(); + return true == text?.StartsWith("{") && true == text?.EndsWith("}") && Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonType.Object; + } + catch + { + // Doesn't look like it can be treated as JSON + } + return false; + } + + /// + /// Determines if the parameter can be converted to the parameter + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false + /// + public override bool CanConvertTo(object sourceValue, global::System.Type destinationType) => false; + + /// + /// Converts the parameter to the parameter using and + /// + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// + /// an instance of , or null if there is no suitable + /// conversion. + /// + public override object ConvertFrom(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => ConvertFrom(sourceValue); + + /// + /// Converts the parameter to the parameter using and + /// + /// the value to convert into an instance of . + /// + /// an instance of , or null if there is no suitable + /// conversion. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IAzureFunctionEventSubscriptionDestinationProperties ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IAzureFunctionEventSubscriptionDestinationProperties).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return AzureFunctionEventSubscriptionDestinationProperties.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return AzureFunctionEventSubscriptionDestinationProperties.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return AzureFunctionEventSubscriptionDestinationProperties.DeserializeFromDictionary(sourceValue); + } + return null; + } + + /// NotImplemented -- this will return null + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// will always return null. + public override object ConvertTo(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => null; + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/AzureFunctionEventSubscriptionDestinationProperties.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/AzureFunctionEventSubscriptionDestinationProperties.cs new file mode 100644 index 000000000000..789a9685b589 --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/AzureFunctionEventSubscriptionDestinationProperties.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.EventGrid.Models.Api20211015Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Extensions; + + /// + /// The properties that represent the Azure Function destination of an event subscription. + /// + public partial class AzureFunctionEventSubscriptionDestinationProperties : + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IAzureFunctionEventSubscriptionDestinationProperties, + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IAzureFunctionEventSubscriptionDestinationPropertiesInternal + { + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDeliveryAttributeMapping[] _deliveryAttributeMapping; + + /// Delivery attribute details. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Owned)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDeliveryAttributeMapping[] DeliveryAttributeMapping { get => this._deliveryAttributeMapping; set => this._deliveryAttributeMapping = value; } + + /// Backing field for property. + private int? _maxEventsPerBatch; + + /// Maximum number of events per batch. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Owned)] + public int? MaxEventsPerBatch { get => this._maxEventsPerBatch; set => this._maxEventsPerBatch = value; } + + /// Backing field for property. + private int? _preferredBatchSizeInKilobyte; + + /// Preferred batch size in Kilobytes. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Owned)] + public int? PreferredBatchSizeInKilobyte { get => this._preferredBatchSizeInKilobyte; set => this._preferredBatchSizeInKilobyte = value; } + + /// Backing field for property. + private string _resourceId; + + /// + /// The Azure Resource Id that represents the endpoint of the Azure Function destination of an event subscription. + /// + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Owned)] + public string ResourceId { get => this._resourceId; set => this._resourceId = value; } + + /// + /// Creates an new instance. + /// + public AzureFunctionEventSubscriptionDestinationProperties() + { + + } + } + /// The properties that represent the Azure Function destination of an event subscription. + public partial interface IAzureFunctionEventSubscriptionDestinationProperties : + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IJsonSerializable + { + /// Delivery attribute details. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Delivery attribute details.", + SerializedName = @"deliveryAttributeMappings", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDeliveryAttributeMapping),typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IStaticDeliveryAttributeMapping),typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDynamicDeliveryAttributeMapping) })] + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDeliveryAttributeMapping[] DeliveryAttributeMapping { get; set; } + /// Maximum number of events per batch. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Maximum number of events per batch.", + SerializedName = @"maxEventsPerBatch", + PossibleTypes = new [] { typeof(int) })] + int? MaxEventsPerBatch { get; set; } + /// Preferred batch size in Kilobytes. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Preferred batch size in Kilobytes.", + SerializedName = @"preferredBatchSizeInKilobytes", + PossibleTypes = new [] { typeof(int) })] + int? PreferredBatchSizeInKilobyte { get; set; } + /// + /// The Azure Resource Id that represents the endpoint of the Azure Function destination of an event subscription. + /// + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The Azure Resource Id that represents the endpoint of the Azure Function destination of an event subscription.", + SerializedName = @"resourceId", + PossibleTypes = new [] { typeof(string) })] + string ResourceId { get; set; } + + } + /// The properties that represent the Azure Function destination of an event subscription. + internal partial interface IAzureFunctionEventSubscriptionDestinationPropertiesInternal + + { + /// Delivery attribute details. + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDeliveryAttributeMapping[] DeliveryAttributeMapping { get; set; } + /// Maximum number of events per batch. + int? MaxEventsPerBatch { get; set; } + /// Preferred batch size in Kilobytes. + int? PreferredBatchSizeInKilobyte { get; set; } + /// + /// The Azure Resource Id that represents the endpoint of the Azure Function destination of an event subscription. + /// + string ResourceId { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/AzureFunctionEventSubscriptionDestinationProperties.json.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/AzureFunctionEventSubscriptionDestinationProperties.json.cs new file mode 100644 index 000000000000..03a02ad392b5 --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/AzureFunctionEventSubscriptionDestinationProperties.json.cs @@ -0,0 +1,125 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Extensions; + + /// + /// The properties that represent the Azure Function destination of an event subscription. + /// + public partial class AzureFunctionEventSubscriptionDestinationProperties + { + + /// + /// AfterFromJson will be called after the json deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JsonNode that should be deserialized into this object. + + partial void AfterFromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json erialization has finished, allowing customization of the before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JSON container that the serialization result will be placed in. + + partial void AfterToJson(ref Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject container); + + /// + /// BeforeFromJson will be called before the json deserialization has commenced, allowing complete customization of + /// the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JsonNode that should be deserialized into this object. + /// Determines if the rest of the deserialization should be processed, or if the method should return + /// instantly. + + partial void BeforeFromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject json, ref bool returnNow); + + /// + /// BeforeToJson will be called before the json serialization has commenced, allowing complete customization of the + /// object before it is serialized. + /// If you wish to disable the default serialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JSON container that the serialization result will be placed in. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeToJson(ref Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject instance to deserialize from. + internal AzureFunctionEventSubscriptionDestinationProperties(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject json) + { + bool returnNow = false; + BeforeFromJson(json, ref returnNow); + if (returnNow) + { + return; + } + {_resourceId = If( json?.PropertyT("resourceId"), out var __jsonResourceId) ? (string)__jsonResourceId : (string)ResourceId;} + {_maxEventsPerBatch = If( json?.PropertyT("maxEventsPerBatch"), out var __jsonMaxEventsPerBatch) ? (int?)__jsonMaxEventsPerBatch : MaxEventsPerBatch;} + {_preferredBatchSizeInKilobyte = If( json?.PropertyT("preferredBatchSizeInKilobytes"), out var __jsonPreferredBatchSizeInKilobytes) ? (int?)__jsonPreferredBatchSizeInKilobytes : PreferredBatchSizeInKilobyte;} + {_deliveryAttributeMapping = If( json?.PropertyT("deliveryAttributeMappings"), out var __jsonDeliveryAttributeMappings) ? If( __jsonDeliveryAttributeMappings as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Models.Api20211015Preview.IDeliveryAttributeMapping) (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.DeliveryAttributeMapping.FromJson(__u) )) ))() : null : DeliveryAttributeMapping;} + AfterFromJson(json); + } + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IAzureFunctionEventSubscriptionDestinationProperties. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IAzureFunctionEventSubscriptionDestinationProperties. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IAzureFunctionEventSubscriptionDestinationProperties FromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject json ? new AzureFunctionEventSubscriptionDestinationProperties(json) : null; + } + + /// + /// Serializes this instance of into a . + /// + /// The container to serialize this object into. If the caller + /// passes in null, a new instance will be created and returned to the caller. + /// Allows the caller to choose the depth of the serialization. See . + /// + /// a serialized instance of as a . + /// + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject(); + + bool returnNow = false; + BeforeToJson(ref container, ref returnNow); + if (returnNow) + { + return container; + } + AddIf( null != (((object)this._resourceId)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonString(this._resourceId.ToString()) : null, "resourceId" ,container.Add ); + AddIf( null != this._maxEventsPerBatch ? (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode)new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNumber((int)this._maxEventsPerBatch) : null, "maxEventsPerBatch" ,container.Add ); + AddIf( null != this._preferredBatchSizeInKilobyte ? (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode)new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNumber((int)this._preferredBatchSizeInKilobyte) : null, "preferredBatchSizeInKilobytes" ,container.Add ); + if (null != this._deliveryAttributeMapping) + { + var __w = new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.XNodeArray(); + foreach( var __x in this._deliveryAttributeMapping ) + { + AddIf(__x?.ToJson(null, serializationMode) ,__w.Add); + } + container.Add("deliveryAttributeMappings",__w); + } + AfterToJson(ref container); + return container; + } + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/BoolEqualsAdvancedFilter.PowerShell.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/BoolEqualsAdvancedFilter.PowerShell.cs new file mode 100644 index 000000000000..76c5bc75f4c7 --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/BoolEqualsAdvancedFilter.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.EventGrid.Models.Api20211015Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell; + + /// BoolEquals Advanced Filter. + [System.ComponentModel.TypeConverter(typeof(BoolEqualsAdvancedFilterTypeConverter))] + public partial class BoolEqualsAdvancedFilter + { + + /// + /// AfterDeserializeDictionary will be called after the deserialization has finished, allowing customization of the + /// object before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Collections.IDictionary content that should be used. + + partial void AfterDeserializeDictionary(global::System.Collections.IDictionary content); + + /// + /// AfterDeserializePSObject will be called after the deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Management.Automation.PSObject content that should be used. + + partial void AfterDeserializePSObject(global::System.Management.Automation.PSObject content); + + /// + /// BeforeDeserializeDictionary will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Collections.IDictionary content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializeDictionary(global::System.Collections.IDictionary content, ref bool returnNow); + + /// + /// BeforeDeserializePSObject will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializePSObject(global::System.Management.Automation.PSObject content, ref bool returnNow); + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + internal BoolEqualsAdvancedFilter(global::System.Collections.IDictionary content) + { + bool returnNow = false; + BeforeDeserializeDictionary(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("Value")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IBoolEqualsAdvancedFilterInternal)this).Value = (bool?) content.GetValueForProperty("Value",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IBoolEqualsAdvancedFilterInternal)this).Value, (__y)=> (bool) global::System.Convert.ChangeType(__y, typeof(bool))); + } + if (content.Contains("OperatorType")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IAdvancedFilterInternal)this).OperatorType = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.AdvancedFilterOperatorType) content.GetValueForProperty("OperatorType",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IAdvancedFilterInternal)this).OperatorType, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.AdvancedFilterOperatorType.CreateFrom); + } + if (content.Contains("Key")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IAdvancedFilterInternal)this).Key = (string) content.GetValueForProperty("Key",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IAdvancedFilterInternal)this).Key, global::System.Convert.ToString); + } + AfterDeserializeDictionary(content); + } + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + internal BoolEqualsAdvancedFilter(global::System.Management.Automation.PSObject content) + { + bool returnNow = false; + BeforeDeserializePSObject(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("Value")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IBoolEqualsAdvancedFilterInternal)this).Value = (bool?) content.GetValueForProperty("Value",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IBoolEqualsAdvancedFilterInternal)this).Value, (__y)=> (bool) global::System.Convert.ChangeType(__y, typeof(bool))); + } + if (content.Contains("OperatorType")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IAdvancedFilterInternal)this).OperatorType = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.AdvancedFilterOperatorType) content.GetValueForProperty("OperatorType",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IAdvancedFilterInternal)this).OperatorType, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.AdvancedFilterOperatorType.CreateFrom); + } + if (content.Contains("Key")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IAdvancedFilterInternal)this).Key = (string) content.GetValueForProperty("Key",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IAdvancedFilterInternal)this).Key, 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.EventGrid.Models.Api20211015Preview.IBoolEqualsAdvancedFilter DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new BoolEqualsAdvancedFilter(content); + } + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IBoolEqualsAdvancedFilter DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new BoolEqualsAdvancedFilter(content); + } + + /// + /// Creates a new instance of , deserializing the content from a json string. + /// + /// a string containing a JSON serialized instance of this model. + /// an instance of the model class. + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IBoolEqualsAdvancedFilter FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode.Parse(jsonText)); + + /// Serializes this instance to a json string. + + /// a containing this model serialized to JSON text. + public string ToJsonString() => ToJson(null, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// BoolEquals Advanced Filter. + [System.ComponentModel.TypeConverter(typeof(BoolEqualsAdvancedFilterTypeConverter))] + public partial interface IBoolEqualsAdvancedFilter + + { + + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/BoolEqualsAdvancedFilter.TypeConverter.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/BoolEqualsAdvancedFilter.TypeConverter.cs new file mode 100644 index 000000000000..478ba3a22f4d --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/BoolEqualsAdvancedFilter.TypeConverter.cs @@ -0,0 +1,147 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class BoolEqualsAdvancedFilterTypeConverter : global::System.Management.Automation.PSTypeConverter + { + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false. + /// + public override bool CanConvertFrom(object sourceValue, global::System.Type destinationType) => CanConvertFrom(sourceValue); + + /// + /// Determines if the converter can convert the parameter to the . + /// + /// the instance to check if it can be converted to the type. + /// + /// true if the instance could be converted to a type, otherwise false + /// + public static bool CanConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return true; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + // we say yest to PSObjects + return true; + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + // we say yest to Hashtables/dictionaries + return true; + } + try + { + if (null != sourceValue.ToJsonString()) + { + return true; + } + } + catch + { + // Not one of our objects + } + try + { + string text = sourceValue.ToString()?.Trim(); + return true == text?.StartsWith("{") && true == text?.EndsWith("}") && Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonType.Object; + } + catch + { + // Doesn't look like it can be treated as JSON + } + return false; + } + + /// + /// Determines if the parameter can be converted to the parameter + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false + /// + public override bool CanConvertTo(object sourceValue, global::System.Type destinationType) => false; + + /// + /// Converts the parameter to the parameter using and + /// + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// + /// an instance of , or null if there is no suitable conversion. + /// + public override object ConvertFrom(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => ConvertFrom(sourceValue); + + /// + /// Converts the parameter to the parameter using and + /// + /// the value to convert into an instance of . + /// + /// an instance of , or null if there is no suitable conversion. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IBoolEqualsAdvancedFilter ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IBoolEqualsAdvancedFilter).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return BoolEqualsAdvancedFilter.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return BoolEqualsAdvancedFilter.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return BoolEqualsAdvancedFilter.DeserializeFromDictionary(sourceValue); + } + return null; + } + + /// NotImplemented -- this will return null + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// will always return null. + public override object ConvertTo(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => null; + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/BoolEqualsAdvancedFilter.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/BoolEqualsAdvancedFilter.cs new file mode 100644 index 000000000000..41a6d0e479f2 --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/BoolEqualsAdvancedFilter.cs @@ -0,0 +1,80 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Extensions; + + /// BoolEquals Advanced Filter. + public partial class BoolEqualsAdvancedFilter : + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IBoolEqualsAdvancedFilter, + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IBoolEqualsAdvancedFilterInternal, + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IValidates + { + /// + /// Backing field for Inherited model + /// + private Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IAdvancedFilter __advancedFilter = new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.AdvancedFilter(); + + /// The field/property in the event based on which you want to filter. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Inherited)] + public string Key { get => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IAdvancedFilterInternal)__advancedFilter).Key; set => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IAdvancedFilterInternal)__advancedFilter).Key = value ?? null; } + + /// + /// The operator type used for filtering, e.g., NumberIn, StringContains, BoolEquals and others. + /// + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Inherited)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.AdvancedFilterOperatorType OperatorType { get => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IAdvancedFilterInternal)__advancedFilter).OperatorType; set => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IAdvancedFilterInternal)__advancedFilter).OperatorType = value ; } + + /// Backing field for property. + private bool? _value; + + /// The boolean filter value. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Owned)] + public bool? Value { get => this._value; set => this._value = value; } + + /// Creates an new instance. + public BoolEqualsAdvancedFilter() + { + + } + + /// Validates that this object meets the validation criteria. + /// an instance that will receive validation + /// events. + /// + /// A that will be complete when validation is completed. + /// + public async global::System.Threading.Tasks.Task Validate(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener eventListener) + { + await eventListener.AssertNotNull(nameof(__advancedFilter), __advancedFilter); + await eventListener.AssertObjectIsValid(nameof(__advancedFilter), __advancedFilter); + } + } + /// BoolEquals Advanced Filter. + public partial interface IBoolEqualsAdvancedFilter : + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IJsonSerializable, + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IAdvancedFilter + { + /// The boolean filter value. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The boolean filter value.", + SerializedName = @"value", + PossibleTypes = new [] { typeof(bool) })] + bool? Value { get; set; } + + } + /// BoolEquals Advanced Filter. + internal partial interface IBoolEqualsAdvancedFilterInternal : + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IAdvancedFilterInternal + { + /// The boolean filter value. + bool? Value { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/BoolEqualsAdvancedFilter.json.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/BoolEqualsAdvancedFilter.json.cs new file mode 100644 index 000000000000..a0dfc3217a89 --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/BoolEqualsAdvancedFilter.json.cs @@ -0,0 +1,108 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Extensions; + + /// BoolEquals Advanced Filter. + public partial class BoolEqualsAdvancedFilter + { + + /// + /// AfterFromJson will be called after the json deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JsonNode that should be deserialized into this object. + + partial void AfterFromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json erialization has finished, allowing customization of the before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JSON container that the serialization result will be placed in. + + partial void AfterToJson(ref Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject container); + + /// + /// BeforeFromJson will be called before the json deserialization has commenced, allowing complete customization of + /// the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JsonNode that should be deserialized into this object. + /// Determines if the rest of the deserialization should be processed, or if the method should return + /// instantly. + + partial void BeforeFromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject json, ref bool returnNow); + + /// + /// BeforeToJson will be called before the json serialization has commenced, allowing complete customization of the + /// object before it is serialized. + /// If you wish to disable the default serialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JSON container that the serialization result will be placed in. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeToJson(ref Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject instance to deserialize from. + internal BoolEqualsAdvancedFilter(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject json) + { + bool returnNow = false; + BeforeFromJson(json, ref returnNow); + if (returnNow) + { + return; + } + __advancedFilter = new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.AdvancedFilter(json); + {_value = If( json?.PropertyT("value"), out var __jsonValue) ? (bool?)__jsonValue : Value;} + AfterFromJson(json); + } + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IBoolEqualsAdvancedFilter. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IBoolEqualsAdvancedFilter. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IBoolEqualsAdvancedFilter FromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject json ? new BoolEqualsAdvancedFilter(json) : null; + } + + /// + /// Serializes this instance of into a . + /// + /// The container to serialize this object into. If the caller + /// passes in null, a new instance will be created and returned to the caller. + /// Allows the caller to choose the depth of the serialization. See . + /// + /// a serialized instance of as a . + /// + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject(); + + bool returnNow = false; + BeforeToJson(ref container, ref returnNow); + if (returnNow) + { + return container; + } + __advancedFilter?.ToJson(container, serializationMode); + AddIf( null != this._value ? (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode)new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonBoolean((bool)this._value) : null, "value" ,container.Add ); + AfterToJson(ref container); + return container; + } + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/Channel.PowerShell.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/Channel.PowerShell.cs new file mode 100644 index 000000000000..ce88b8b66c5f --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/Channel.PowerShell.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.EventGrid.Models.Api20211015Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell; + + /// Channel info. + [System.ComponentModel.TypeConverter(typeof(ChannelTypeConverter))] + public partial class Channel + { + + /// + /// AfterDeserializeDictionary will be called after the deserialization has finished, allowing customization of the + /// object before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Collections.IDictionary content that should be used. + + partial void AfterDeserializeDictionary(global::System.Collections.IDictionary content); + + /// + /// AfterDeserializePSObject will be called after the deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Management.Automation.PSObject content that should be used. + + partial void AfterDeserializePSObject(global::System.Management.Automation.PSObject content); + + /// + /// BeforeDeserializeDictionary will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Collections.IDictionary content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializeDictionary(global::System.Collections.IDictionary content, ref bool returnNow); + + /// + /// BeforeDeserializePSObject will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializePSObject(global::System.Management.Automation.PSObject content, ref bool returnNow); + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + internal Channel(global::System.Collections.IDictionary content) + { + bool returnNow = false; + BeforeDeserializeDictionary(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("Property")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IChannelInternal)this).Property = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IChannelProperties) content.GetValueForProperty("Property",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IChannelInternal)this).Property, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ChannelPropertiesTypeConverter.ConvertFrom); + } + if (content.Contains("SystemData")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IChannelInternal)this).SystemData = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20.ISystemData) content.GetValueForProperty("SystemData",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IChannelInternal)this).SystemData, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20.SystemDataTypeConverter.ConvertFrom); + } + if (content.Contains("Id")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IResourceInternal)this).Id = (string) content.GetValueForProperty("Id",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IResourceInternal)this).Id, global::System.Convert.ToString); + } + if (content.Contains("Name")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IResourceInternal)this).Name = (string) content.GetValueForProperty("Name",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IResourceInternal)this).Name, global::System.Convert.ToString); + } + if (content.Contains("Type")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IResourceInternal)this).Type = (string) content.GetValueForProperty("Type",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IResourceInternal)this).Type, global::System.Convert.ToString); + } + if (content.Contains("ChannelType")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IChannelInternal)this).ChannelType = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.ChannelType?) content.GetValueForProperty("ChannelType",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IChannelInternal)this).ChannelType, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.ChannelType.CreateFrom); + } + if (content.Contains("ReadinessState")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IChannelInternal)this).ReadinessState = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.ReadinessState?) content.GetValueForProperty("ReadinessState",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IChannelInternal)this).ReadinessState, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.ReadinessState.CreateFrom); + } + if (content.Contains("SystemDataCreatedBy")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IChannelInternal)this).SystemDataCreatedBy = (string) content.GetValueForProperty("SystemDataCreatedBy",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IChannelInternal)this).SystemDataCreatedBy, global::System.Convert.ToString); + } + if (content.Contains("SystemDataCreatedAt")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IChannelInternal)this).SystemDataCreatedAt = (global::System.DateTime?) content.GetValueForProperty("SystemDataCreatedAt",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IChannelInternal)this).SystemDataCreatedAt, (v) => v is global::System.DateTime _v ? _v : global::System.Xml.XmlConvert.ToDateTime( v.ToString() , global::System.Xml.XmlDateTimeSerializationMode.Unspecified)); + } + if (content.Contains("PartnerTopicInfo")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IChannelInternal)this).PartnerTopicInfo = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerTopicInfo) content.GetValueForProperty("PartnerTopicInfo",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IChannelInternal)this).PartnerTopicInfo, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.PartnerTopicInfoTypeConverter.ConvertFrom); + } + if (content.Contains("PartnerDestinationInfo")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IChannelInternal)this).PartnerDestinationInfo = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerDestinationInfo) content.GetValueForProperty("PartnerDestinationInfo",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IChannelInternal)this).PartnerDestinationInfo, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.PartnerDestinationInfoTypeConverter.ConvertFrom); + } + if (content.Contains("MessageForActivation")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IChannelInternal)this).MessageForActivation = (string) content.GetValueForProperty("MessageForActivation",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IChannelInternal)this).MessageForActivation, global::System.Convert.ToString); + } + if (content.Contains("ProvisioningState")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IChannelInternal)this).ProvisioningState = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.ChannelProvisioningState?) content.GetValueForProperty("ProvisioningState",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IChannelInternal)this).ProvisioningState, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.ChannelProvisioningState.CreateFrom); + } + if (content.Contains("ExpirationTimeIfNotActivatedUtc")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IChannelInternal)this).ExpirationTimeIfNotActivatedUtc = (global::System.DateTime?) content.GetValueForProperty("ExpirationTimeIfNotActivatedUtc",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IChannelInternal)this).ExpirationTimeIfNotActivatedUtc, (v) => v is global::System.DateTime _v ? _v : global::System.Xml.XmlConvert.ToDateTime( v.ToString() , global::System.Xml.XmlDateTimeSerializationMode.Unspecified)); + } + if (content.Contains("PartnerTopicInfoName")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IChannelInternal)this).PartnerTopicInfoName = (string) content.GetValueForProperty("PartnerTopicInfoName",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IChannelInternal)this).PartnerTopicInfoName, global::System.Convert.ToString); + } + if (content.Contains("PartnerTopicInfoSource")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IChannelInternal)this).PartnerTopicInfoSource = (string) content.GetValueForProperty("PartnerTopicInfoSource",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IChannelInternal)this).PartnerTopicInfoSource, global::System.Convert.ToString); + } + if (content.Contains("PartnerDestinationInfoName")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IChannelInternal)this).PartnerDestinationInfoName = (string) content.GetValueForProperty("PartnerDestinationInfoName",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IChannelInternal)this).PartnerDestinationInfoName, global::System.Convert.ToString); + } + if (content.Contains("SystemDataCreatedByType")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IChannelInternal)this).SystemDataCreatedByType = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.CreatedByType?) content.GetValueForProperty("SystemDataCreatedByType",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IChannelInternal)this).SystemDataCreatedByType, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.CreatedByType.CreateFrom); + } + if (content.Contains("SystemDataLastModifiedBy")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IChannelInternal)this).SystemDataLastModifiedBy = (string) content.GetValueForProperty("SystemDataLastModifiedBy",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IChannelInternal)this).SystemDataLastModifiedBy, global::System.Convert.ToString); + } + if (content.Contains("SystemDataLastModifiedByType")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IChannelInternal)this).SystemDataLastModifiedByType = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.CreatedByType?) content.GetValueForProperty("SystemDataLastModifiedByType",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IChannelInternal)this).SystemDataLastModifiedByType, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.CreatedByType.CreateFrom); + } + if (content.Contains("SystemDataLastModifiedAt")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IChannelInternal)this).SystemDataLastModifiedAt = (global::System.DateTime?) content.GetValueForProperty("SystemDataLastModifiedAt",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IChannelInternal)this).SystemDataLastModifiedAt, (v) => v is global::System.DateTime _v ? _v : global::System.Xml.XmlConvert.ToDateTime( v.ToString() , global::System.Xml.XmlDateTimeSerializationMode.Unspecified)); + } + if (content.Contains("PartnerTopicInfoEventTypeInfo")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IChannelInternal)this).PartnerTopicInfoEventTypeInfo = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventTypeInfo) content.GetValueForProperty("PartnerTopicInfoEventTypeInfo",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IChannelInternal)this).PartnerTopicInfoEventTypeInfo, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.EventTypeInfoTypeConverter.ConvertFrom); + } + if (content.Contains("PartnerTopicInfoAzureSubscriptionId")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IChannelInternal)this).PartnerTopicInfoAzureSubscriptionId = (string) content.GetValueForProperty("PartnerTopicInfoAzureSubscriptionId",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IChannelInternal)this).PartnerTopicInfoAzureSubscriptionId, global::System.Convert.ToString); + } + if (content.Contains("PartnerTopicInfoResourceGroupName")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IChannelInternal)this).PartnerTopicInfoResourceGroupName = (string) content.GetValueForProperty("PartnerTopicInfoResourceGroupName",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IChannelInternal)this).PartnerTopicInfoResourceGroupName, global::System.Convert.ToString); + } + if (content.Contains("PartnerDestinationInfoAzureSubscriptionId")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IChannelInternal)this).PartnerDestinationInfoAzureSubscriptionId = (string) content.GetValueForProperty("PartnerDestinationInfoAzureSubscriptionId",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IChannelInternal)this).PartnerDestinationInfoAzureSubscriptionId, global::System.Convert.ToString); + } + if (content.Contains("PartnerDestinationInfoResourceGroupName")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IChannelInternal)this).PartnerDestinationInfoResourceGroupName = (string) content.GetValueForProperty("PartnerDestinationInfoResourceGroupName",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IChannelInternal)this).PartnerDestinationInfoResourceGroupName, global::System.Convert.ToString); + } + if (content.Contains("PartnerDestinationInfoEndpointType")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IChannelInternal)this).PartnerDestinationInfoEndpointType = (string) content.GetValueForProperty("PartnerDestinationInfoEndpointType",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IChannelInternal)this).PartnerDestinationInfoEndpointType, global::System.Convert.ToString); + } + if (content.Contains("PartnerDestinationInfoEndpointServiceContext")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IChannelInternal)this).PartnerDestinationInfoEndpointServiceContext = (string) content.GetValueForProperty("PartnerDestinationInfoEndpointServiceContext",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IChannelInternal)this).PartnerDestinationInfoEndpointServiceContext, global::System.Convert.ToString); + } + if (content.Contains("PartnerDestinationInfoResourceMoveChangeHistory")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IChannelInternal)this).PartnerDestinationInfoResourceMoveChangeHistory = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IResourceMoveChangeHistory[]) content.GetValueForProperty("PartnerDestinationInfoResourceMoveChangeHistory",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IChannelInternal)this).PartnerDestinationInfoResourceMoveChangeHistory, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ResourceMoveChangeHistoryTypeConverter.ConvertFrom)); + } + if (content.Contains("EventTypeInfoKind")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IChannelInternal)this).EventTypeInfoKind = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EventDefinitionKind?) content.GetValueForProperty("EventTypeInfoKind",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IChannelInternal)this).EventTypeInfoKind, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EventDefinitionKind.CreateFrom); + } + if (content.Contains("EventTypeInfoInlineEventType")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IChannelInternal)this).EventTypeInfoInlineEventType = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventTypeInfoInlineEventTypes) content.GetValueForProperty("EventTypeInfoInlineEventType",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IChannelInternal)this).EventTypeInfoInlineEventType, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.EventTypeInfoInlineEventTypesTypeConverter.ConvertFrom); + } + AfterDeserializeDictionary(content); + } + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + internal Channel(global::System.Management.Automation.PSObject content) + { + bool returnNow = false; + BeforeDeserializePSObject(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("Property")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IChannelInternal)this).Property = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IChannelProperties) content.GetValueForProperty("Property",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IChannelInternal)this).Property, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ChannelPropertiesTypeConverter.ConvertFrom); + } + if (content.Contains("SystemData")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IChannelInternal)this).SystemData = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20.ISystemData) content.GetValueForProperty("SystemData",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IChannelInternal)this).SystemData, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20.SystemDataTypeConverter.ConvertFrom); + } + if (content.Contains("Id")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IResourceInternal)this).Id = (string) content.GetValueForProperty("Id",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IResourceInternal)this).Id, global::System.Convert.ToString); + } + if (content.Contains("Name")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IResourceInternal)this).Name = (string) content.GetValueForProperty("Name",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IResourceInternal)this).Name, global::System.Convert.ToString); + } + if (content.Contains("Type")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IResourceInternal)this).Type = (string) content.GetValueForProperty("Type",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IResourceInternal)this).Type, global::System.Convert.ToString); + } + if (content.Contains("ChannelType")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IChannelInternal)this).ChannelType = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.ChannelType?) content.GetValueForProperty("ChannelType",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IChannelInternal)this).ChannelType, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.ChannelType.CreateFrom); + } + if (content.Contains("ReadinessState")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IChannelInternal)this).ReadinessState = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.ReadinessState?) content.GetValueForProperty("ReadinessState",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IChannelInternal)this).ReadinessState, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.ReadinessState.CreateFrom); + } + if (content.Contains("SystemDataCreatedBy")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IChannelInternal)this).SystemDataCreatedBy = (string) content.GetValueForProperty("SystemDataCreatedBy",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IChannelInternal)this).SystemDataCreatedBy, global::System.Convert.ToString); + } + if (content.Contains("SystemDataCreatedAt")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IChannelInternal)this).SystemDataCreatedAt = (global::System.DateTime?) content.GetValueForProperty("SystemDataCreatedAt",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IChannelInternal)this).SystemDataCreatedAt, (v) => v is global::System.DateTime _v ? _v : global::System.Xml.XmlConvert.ToDateTime( v.ToString() , global::System.Xml.XmlDateTimeSerializationMode.Unspecified)); + } + if (content.Contains("PartnerTopicInfo")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IChannelInternal)this).PartnerTopicInfo = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerTopicInfo) content.GetValueForProperty("PartnerTopicInfo",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IChannelInternal)this).PartnerTopicInfo, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.PartnerTopicInfoTypeConverter.ConvertFrom); + } + if (content.Contains("PartnerDestinationInfo")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IChannelInternal)this).PartnerDestinationInfo = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerDestinationInfo) content.GetValueForProperty("PartnerDestinationInfo",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IChannelInternal)this).PartnerDestinationInfo, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.PartnerDestinationInfoTypeConverter.ConvertFrom); + } + if (content.Contains("MessageForActivation")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IChannelInternal)this).MessageForActivation = (string) content.GetValueForProperty("MessageForActivation",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IChannelInternal)this).MessageForActivation, global::System.Convert.ToString); + } + if (content.Contains("ProvisioningState")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IChannelInternal)this).ProvisioningState = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.ChannelProvisioningState?) content.GetValueForProperty("ProvisioningState",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IChannelInternal)this).ProvisioningState, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.ChannelProvisioningState.CreateFrom); + } + if (content.Contains("ExpirationTimeIfNotActivatedUtc")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IChannelInternal)this).ExpirationTimeIfNotActivatedUtc = (global::System.DateTime?) content.GetValueForProperty("ExpirationTimeIfNotActivatedUtc",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IChannelInternal)this).ExpirationTimeIfNotActivatedUtc, (v) => v is global::System.DateTime _v ? _v : global::System.Xml.XmlConvert.ToDateTime( v.ToString() , global::System.Xml.XmlDateTimeSerializationMode.Unspecified)); + } + if (content.Contains("PartnerTopicInfoName")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IChannelInternal)this).PartnerTopicInfoName = (string) content.GetValueForProperty("PartnerTopicInfoName",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IChannelInternal)this).PartnerTopicInfoName, global::System.Convert.ToString); + } + if (content.Contains("PartnerTopicInfoSource")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IChannelInternal)this).PartnerTopicInfoSource = (string) content.GetValueForProperty("PartnerTopicInfoSource",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IChannelInternal)this).PartnerTopicInfoSource, global::System.Convert.ToString); + } + if (content.Contains("PartnerDestinationInfoName")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IChannelInternal)this).PartnerDestinationInfoName = (string) content.GetValueForProperty("PartnerDestinationInfoName",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IChannelInternal)this).PartnerDestinationInfoName, global::System.Convert.ToString); + } + if (content.Contains("SystemDataCreatedByType")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IChannelInternal)this).SystemDataCreatedByType = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.CreatedByType?) content.GetValueForProperty("SystemDataCreatedByType",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IChannelInternal)this).SystemDataCreatedByType, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.CreatedByType.CreateFrom); + } + if (content.Contains("SystemDataLastModifiedBy")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IChannelInternal)this).SystemDataLastModifiedBy = (string) content.GetValueForProperty("SystemDataLastModifiedBy",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IChannelInternal)this).SystemDataLastModifiedBy, global::System.Convert.ToString); + } + if (content.Contains("SystemDataLastModifiedByType")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IChannelInternal)this).SystemDataLastModifiedByType = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.CreatedByType?) content.GetValueForProperty("SystemDataLastModifiedByType",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IChannelInternal)this).SystemDataLastModifiedByType, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.CreatedByType.CreateFrom); + } + if (content.Contains("SystemDataLastModifiedAt")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IChannelInternal)this).SystemDataLastModifiedAt = (global::System.DateTime?) content.GetValueForProperty("SystemDataLastModifiedAt",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IChannelInternal)this).SystemDataLastModifiedAt, (v) => v is global::System.DateTime _v ? _v : global::System.Xml.XmlConvert.ToDateTime( v.ToString() , global::System.Xml.XmlDateTimeSerializationMode.Unspecified)); + } + if (content.Contains("PartnerTopicInfoEventTypeInfo")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IChannelInternal)this).PartnerTopicInfoEventTypeInfo = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventTypeInfo) content.GetValueForProperty("PartnerTopicInfoEventTypeInfo",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IChannelInternal)this).PartnerTopicInfoEventTypeInfo, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.EventTypeInfoTypeConverter.ConvertFrom); + } + if (content.Contains("PartnerTopicInfoAzureSubscriptionId")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IChannelInternal)this).PartnerTopicInfoAzureSubscriptionId = (string) content.GetValueForProperty("PartnerTopicInfoAzureSubscriptionId",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IChannelInternal)this).PartnerTopicInfoAzureSubscriptionId, global::System.Convert.ToString); + } + if (content.Contains("PartnerTopicInfoResourceGroupName")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IChannelInternal)this).PartnerTopicInfoResourceGroupName = (string) content.GetValueForProperty("PartnerTopicInfoResourceGroupName",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IChannelInternal)this).PartnerTopicInfoResourceGroupName, global::System.Convert.ToString); + } + if (content.Contains("PartnerDestinationInfoAzureSubscriptionId")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IChannelInternal)this).PartnerDestinationInfoAzureSubscriptionId = (string) content.GetValueForProperty("PartnerDestinationInfoAzureSubscriptionId",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IChannelInternal)this).PartnerDestinationInfoAzureSubscriptionId, global::System.Convert.ToString); + } + if (content.Contains("PartnerDestinationInfoResourceGroupName")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IChannelInternal)this).PartnerDestinationInfoResourceGroupName = (string) content.GetValueForProperty("PartnerDestinationInfoResourceGroupName",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IChannelInternal)this).PartnerDestinationInfoResourceGroupName, global::System.Convert.ToString); + } + if (content.Contains("PartnerDestinationInfoEndpointType")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IChannelInternal)this).PartnerDestinationInfoEndpointType = (string) content.GetValueForProperty("PartnerDestinationInfoEndpointType",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IChannelInternal)this).PartnerDestinationInfoEndpointType, global::System.Convert.ToString); + } + if (content.Contains("PartnerDestinationInfoEndpointServiceContext")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IChannelInternal)this).PartnerDestinationInfoEndpointServiceContext = (string) content.GetValueForProperty("PartnerDestinationInfoEndpointServiceContext",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IChannelInternal)this).PartnerDestinationInfoEndpointServiceContext, global::System.Convert.ToString); + } + if (content.Contains("PartnerDestinationInfoResourceMoveChangeHistory")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IChannelInternal)this).PartnerDestinationInfoResourceMoveChangeHistory = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IResourceMoveChangeHistory[]) content.GetValueForProperty("PartnerDestinationInfoResourceMoveChangeHistory",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IChannelInternal)this).PartnerDestinationInfoResourceMoveChangeHistory, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ResourceMoveChangeHistoryTypeConverter.ConvertFrom)); + } + if (content.Contains("EventTypeInfoKind")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IChannelInternal)this).EventTypeInfoKind = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EventDefinitionKind?) content.GetValueForProperty("EventTypeInfoKind",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IChannelInternal)this).EventTypeInfoKind, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EventDefinitionKind.CreateFrom); + } + if (content.Contains("EventTypeInfoInlineEventType")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IChannelInternal)this).EventTypeInfoInlineEventType = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventTypeInfoInlineEventTypes) content.GetValueForProperty("EventTypeInfoInlineEventType",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IChannelInternal)this).EventTypeInfoInlineEventType, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.EventTypeInfoInlineEventTypesTypeConverter.ConvertFrom); + } + AfterDeserializePSObject(content); + } + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IChannel DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new Channel(content); + } + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IChannel DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new Channel(content); + } + + /// + /// Creates a new instance of , deserializing the content from a json string. + /// + /// a string containing a JSON serialized instance of this model. + /// an instance of the model class. + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IChannel FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode.Parse(jsonText)); + + /// Serializes this instance to a json string. + + /// a containing this model serialized to JSON text. + public string ToJsonString() => ToJson(null, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// Channel info. + [System.ComponentModel.TypeConverter(typeof(ChannelTypeConverter))] + public partial interface IChannel + + { + + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/Channel.TypeConverter.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/Channel.TypeConverter.cs new file mode 100644 index 000000000000..2e4536021d39 --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/Channel.TypeConverter.cs @@ -0,0 +1,146 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class ChannelTypeConverter : global::System.Management.Automation.PSTypeConverter + { + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false. + /// + public override bool CanConvertFrom(object sourceValue, global::System.Type destinationType) => CanConvertFrom(sourceValue); + + /// + /// Determines if the converter can convert the parameter to the . + /// + /// the instance to check if it can be converted to the type. + /// + /// true if the instance could be converted to a type, otherwise false + /// + public static bool CanConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return true; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + // we say yest to PSObjects + return true; + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + // we say yest to Hashtables/dictionaries + return true; + } + try + { + if (null != sourceValue.ToJsonString()) + { + return true; + } + } + catch + { + // Not one of our objects + } + try + { + string text = sourceValue.ToString()?.Trim(); + return true == text?.StartsWith("{") && true == text?.EndsWith("}") && Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonType.Object; + } + catch + { + // Doesn't look like it can be treated as JSON + } + return false; + } + + /// + /// Determines if the parameter can be converted to the parameter + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false + /// + public override bool CanConvertTo(object sourceValue, global::System.Type destinationType) => false; + + /// + /// Converts the parameter to the parameter using and + /// + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// + /// an instance of , or null if there is no suitable conversion. + /// + public override object ConvertFrom(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => ConvertFrom(sourceValue); + + /// + /// Converts the parameter to the parameter using and + /// + /// the value to convert into an instance of . + /// + /// an instance of , or null if there is no suitable conversion. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IChannel ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IChannel).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return Channel.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return Channel.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return Channel.DeserializeFromDictionary(sourceValue); + } + return null; + } + + /// NotImplemented -- this will return null + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// will always return null. + public override object ConvertTo(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => null; + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/Channel.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/Channel.cs new file mode 100644 index 000000000000..fdffa258ceec --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/Channel.cs @@ -0,0 +1,537 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Extensions; + + /// Channel info. + public partial class Channel : + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IChannel, + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IChannelInternal, + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IValidates + { + /// + /// Backing field for Inherited model + /// + private Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IResource __resource = new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.Resource(); + + /// The type of the event channel which represents the direction flow of events. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Inlined)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.ChannelType? ChannelType { get => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IChannelPropertiesInternal)Property).ChannelType; set => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IChannelPropertiesInternal)Property).ChannelType = value ?? ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.ChannelType)""); } + + /// + /// A collection of inline event types for the resource. The inline event type keys are of type string which represents the + /// name of the event. + /// An example of a valid inline event name is "Contoso.OrderCreated". + /// The inline event type values are of type InlineEventProperties and will contain additional information for every inline + /// event type. + /// + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Inlined)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventTypeInfoInlineEventTypes EventTypeInfoInlineEventType { get => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IChannelPropertiesInternal)Property).EventTypeInfoInlineEventType; set => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IChannelPropertiesInternal)Property).EventTypeInfoInlineEventType = value ?? null /* model class */; } + + /// The kind of event type used. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Inlined)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EventDefinitionKind? EventTypeInfoKind { get => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IChannelPropertiesInternal)Property).EventTypeInfoKind; set => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IChannelPropertiesInternal)Property).EventTypeInfoKind = value ?? ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EventDefinitionKind)""); } + + /// + /// Expiration time of the channel. If this timer expires while the corresponding partner topic is never activated, + /// the channel and corresponding partner topic are deleted. + /// + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Inlined)] + public global::System.DateTime? ExpirationTimeIfNotActivatedUtc { get => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IChannelPropertiesInternal)Property).ExpirationTimeIfNotActivatedUtc; set => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IChannelPropertiesInternal)Property).ExpirationTimeIfNotActivatedUtc = value ?? default(global::System.DateTime); } + + /// Fully qualified identifier of the resource. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Inherited)] + public string Id { get => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IResourceInternal)__resource).Id; } + + /// + /// Context or helpful message that can be used during the approval process by the subscriber. + /// + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Inlined)] + public string MessageForActivation { get => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IChannelPropertiesInternal)Property).MessageForActivation; set => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IChannelPropertiesInternal)Property).MessageForActivation = value ?? null; } + + /// Internal Acessors for PartnerDestinationInfo + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerDestinationInfo Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IChannelInternal.PartnerDestinationInfo { get => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IChannelPropertiesInternal)Property).PartnerDestinationInfo; set => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IChannelPropertiesInternal)Property).PartnerDestinationInfo = value; } + + /// Internal Acessors for PartnerDestinationInfoEndpointType + string Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IChannelInternal.PartnerDestinationInfoEndpointType { get => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IChannelPropertiesInternal)Property).PartnerDestinationInfoEndpointType; set => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IChannelPropertiesInternal)Property).PartnerDestinationInfoEndpointType = value; } + + /// Internal Acessors for PartnerTopicInfo + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerTopicInfo Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IChannelInternal.PartnerTopicInfo { get => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IChannelPropertiesInternal)Property).PartnerTopicInfo; set => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IChannelPropertiesInternal)Property).PartnerTopicInfo = value; } + + /// Internal Acessors for PartnerTopicInfoEventTypeInfo + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventTypeInfo Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IChannelInternal.PartnerTopicInfoEventTypeInfo { get => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IChannelPropertiesInternal)Property).PartnerTopicInfoEventTypeInfo; set => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IChannelPropertiesInternal)Property).PartnerTopicInfoEventTypeInfo = value; } + + /// Internal Acessors for Property + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IChannelProperties Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IChannelInternal.Property { get => (this._property = this._property ?? new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ChannelProperties()); set { {_property = value;} } } + + /// Internal Acessors for SystemData + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20.ISystemData Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IChannelInternal.SystemData { get => (this._systemData = this._systemData ?? new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20.SystemData()); set { {_systemData = value;} } } + + /// Internal Acessors for Id + string Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IResourceInternal.Id { get => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IResourceInternal)__resource).Id; set => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IResourceInternal)__resource).Id = value; } + + /// Internal Acessors for Name + string Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IResourceInternal.Name { get => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IResourceInternal)__resource).Name; set => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IResourceInternal)__resource).Name = value; } + + /// Internal Acessors for Type + string Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IResourceInternal.Type { get => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IResourceInternal)__resource).Type; set => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IResourceInternal)__resource).Type = value; } + + /// Name of the resource. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Inherited)] + public string Name { get => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IResourceInternal)__resource).Name; } + + /// + /// Azure subscription ID of the subscriber. The partner destination associated with the channel will be + /// created under this Azure subscription. + /// + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Inlined)] + public string PartnerDestinationInfoAzureSubscriptionId { get => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IChannelPropertiesInternal)Property).PartnerDestinationInfoAzureSubscriptionId; set => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IChannelPropertiesInternal)Property).PartnerDestinationInfoAzureSubscriptionId = value ?? null; } + + /// Additional context of the partner destination endpoint. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Inlined)] + public string PartnerDestinationInfoEndpointServiceContext { get => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IChannelPropertiesInternal)Property).PartnerDestinationInfoEndpointServiceContext; set => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IChannelPropertiesInternal)Property).PartnerDestinationInfoEndpointServiceContext = value ?? null; } + + /// Type of the endpoint for the partner destination + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Inlined)] + public string PartnerDestinationInfoEndpointType { get => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IChannelPropertiesInternal)Property).PartnerDestinationInfoEndpointType; } + + /// Name of the partner destination associated with the channel. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Inlined)] + public string PartnerDestinationInfoName { get => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IChannelPropertiesInternal)Property).PartnerDestinationInfoName; set => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IChannelPropertiesInternal)Property).PartnerDestinationInfoName = value ?? null; } + + /// + /// Azure Resource Group of the subscriber. The partner destination associated with the channel will be + /// created under this resource group. + /// + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Inlined)] + public string PartnerDestinationInfoResourceGroupName { get => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IChannelPropertiesInternal)Property).PartnerDestinationInfoResourceGroupName; set => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IChannelPropertiesInternal)Property).PartnerDestinationInfoResourceGroupName = value ?? null; } + + /// Change history of the resource move. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Inlined)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IResourceMoveChangeHistory[] PartnerDestinationInfoResourceMoveChangeHistory { get => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IChannelPropertiesInternal)Property).PartnerDestinationInfoResourceMoveChangeHistory; set => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IChannelPropertiesInternal)Property).PartnerDestinationInfoResourceMoveChangeHistory = value ?? null /* arrayOf */; } + + /// + /// Azure subscription ID of the subscriber. The partner topic associated with the channel will be + /// created under this Azure subscription. + /// + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Inlined)] + public string PartnerTopicInfoAzureSubscriptionId { get => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IChannelPropertiesInternal)Property).PartnerTopicInfoAzureSubscriptionId; set => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IChannelPropertiesInternal)Property).PartnerTopicInfoAzureSubscriptionId = value ?? null; } + + /// Name of the partner topic associated with the channel. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Inlined)] + public string PartnerTopicInfoName { get => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IChannelPropertiesInternal)Property).PartnerTopicInfoName; set => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IChannelPropertiesInternal)Property).PartnerTopicInfoName = value ?? null; } + + /// + /// Azure Resource Group of the subscriber. The partner topic associated with the channel will be + /// created under this resource group. + /// + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Inlined)] + public string PartnerTopicInfoResourceGroupName { get => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IChannelPropertiesInternal)Property).PartnerTopicInfoResourceGroupName; set => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IChannelPropertiesInternal)Property).PartnerTopicInfoResourceGroupName = value ?? null; } + + /// + /// The source information is provided by the publisher to determine the scope or context from which the events + /// are originating. This information can be used by the subscriber during the approval process of the + /// created partner topic. + /// + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Inlined)] + public string PartnerTopicInfoSource { get => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IChannelPropertiesInternal)Property).PartnerTopicInfoSource; set => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IChannelPropertiesInternal)Property).PartnerTopicInfoSource = value ?? null; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IChannelProperties _property; + + /// Properties of the Channel. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Owned)] + internal Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IChannelProperties Property { get => (this._property = this._property ?? new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ChannelProperties()); set => this._property = value; } + + /// Provisioning state of the channel. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Inlined)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.ChannelProvisioningState? ProvisioningState { get => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IChannelPropertiesInternal)Property).ProvisioningState; set => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IChannelPropertiesInternal)Property).ProvisioningState = value ?? ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.ChannelProvisioningState)""); } + + /// The readiness state of the corresponding partner topic. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Inlined)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.ReadinessState? ReadinessState { get => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IChannelPropertiesInternal)Property).ReadinessState; set => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IChannelPropertiesInternal)Property).ReadinessState = value ?? ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.ReadinessState)""); } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20.ISystemData _systemData; + + /// The system metadata relating to Channel resource. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Owned)] + internal Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20.ISystemData SystemData { get => (this._systemData = this._systemData ?? new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20.SystemData()); } + + /// The timestamp of resource creation (UTC). + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Inlined)] + public global::System.DateTime? SystemDataCreatedAt { get => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20.ISystemDataInternal)SystemData).CreatedAt; set => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20.ISystemDataInternal)SystemData).CreatedAt = value ?? default(global::System.DateTime); } + + /// The identity that created the resource. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Inlined)] + public string SystemDataCreatedBy { get => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20.ISystemDataInternal)SystemData).CreatedBy; set => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20.ISystemDataInternal)SystemData).CreatedBy = value ?? null; } + + /// The type of identity that created the resource. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Inlined)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.CreatedByType? SystemDataCreatedByType { get => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20.ISystemDataInternal)SystemData).CreatedByType; set => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20.ISystemDataInternal)SystemData).CreatedByType = value ?? ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.CreatedByType)""); } + + /// The timestamp of resource last modification (UTC) + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Inlined)] + public global::System.DateTime? SystemDataLastModifiedAt { get => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20.ISystemDataInternal)SystemData).LastModifiedAt; set => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20.ISystemDataInternal)SystemData).LastModifiedAt = value ?? default(global::System.DateTime); } + + /// The identity that last modified the resource. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Inlined)] + public string SystemDataLastModifiedBy { get => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20.ISystemDataInternal)SystemData).LastModifiedBy; set => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20.ISystemDataInternal)SystemData).LastModifiedBy = value ?? null; } + + /// The type of identity that last modified the resource. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Inlined)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.CreatedByType? SystemDataLastModifiedByType { get => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20.ISystemDataInternal)SystemData).LastModifiedByType; set => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20.ISystemDataInternal)SystemData).LastModifiedByType = value ?? ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.CreatedByType)""); } + + /// Type of the resource. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Inherited)] + public string Type { get => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IResourceInternal)__resource).Type; } + + /// Creates an new instance. + public Channel() + { + + } + + /// Validates that this object meets the validation criteria. + /// an instance that will receive validation + /// events. + /// + /// A that will be complete when validation is completed. + /// + public async global::System.Threading.Tasks.Task Validate(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener eventListener) + { + await eventListener.AssertNotNull(nameof(__resource), __resource); + await eventListener.AssertObjectIsValid(nameof(__resource), __resource); + } + } + /// Channel info. + public partial interface IChannel : + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IJsonSerializable, + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IResource + { + /// The type of the event channel which represents the direction flow of events. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The type of the event channel which represents the direction flow of events.", + SerializedName = @"channelType", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.ChannelType) })] + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.ChannelType? ChannelType { get; set; } + /// + /// A collection of inline event types for the resource. The inline event type keys are of type string which represents the + /// name of the event. + /// An example of a valid inline event name is "Contoso.OrderCreated". + /// The inline event type values are of type InlineEventProperties and will contain additional information for every inline + /// event type. + /// + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"A collection of inline event types for the resource. The inline event type keys are of type string which represents the name of the event. + An example of a valid inline event name is ""Contoso.OrderCreated"". + The inline event type values are of type InlineEventProperties and will contain additional information for every inline event type.", + SerializedName = @"inlineEventTypes", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventTypeInfoInlineEventTypes) })] + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventTypeInfoInlineEventTypes EventTypeInfoInlineEventType { get; set; } + /// The kind of event type used. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The kind of event type used.", + SerializedName = @"kind", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EventDefinitionKind) })] + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EventDefinitionKind? EventTypeInfoKind { get; set; } + /// + /// Expiration time of the channel. If this timer expires while the corresponding partner topic is never activated, + /// the channel and corresponding partner topic are deleted. + /// + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Expiration time of the channel. If this timer expires while the corresponding partner topic is never activated, + the channel and corresponding partner topic are deleted.", + SerializedName = @"expirationTimeIfNotActivatedUtc", + PossibleTypes = new [] { typeof(global::System.DateTime) })] + global::System.DateTime? ExpirationTimeIfNotActivatedUtc { get; set; } + /// + /// Context or helpful message that can be used during the approval process by the subscriber. + /// + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Context or helpful message that can be used during the approval process by the subscriber.", + SerializedName = @"messageForActivation", + PossibleTypes = new [] { typeof(string) })] + string MessageForActivation { get; set; } + /// + /// Azure subscription ID of the subscriber. The partner destination associated with the channel will be + /// created under this Azure subscription. + /// + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Azure subscription ID of the subscriber. The partner destination associated with the channel will be + created under this Azure subscription.", + SerializedName = @"azureSubscriptionId", + PossibleTypes = new [] { typeof(string) })] + string PartnerDestinationInfoAzureSubscriptionId { get; set; } + /// Additional context of the partner destination endpoint. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Additional context of the partner destination endpoint.", + SerializedName = @"endpointServiceContext", + PossibleTypes = new [] { typeof(string) })] + string PartnerDestinationInfoEndpointServiceContext { get; set; } + /// Type of the endpoint for the partner destination + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"Type of the endpoint for the partner destination", + SerializedName = @"endpointType", + PossibleTypes = new [] { typeof(string) })] + string PartnerDestinationInfoEndpointType { get; } + /// Name of the partner destination associated with the channel. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Name of the partner destination associated with the channel.", + SerializedName = @"name", + PossibleTypes = new [] { typeof(string) })] + string PartnerDestinationInfoName { get; set; } + /// + /// Azure Resource Group of the subscriber. The partner destination associated with the channel will be + /// created under this resource group. + /// + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Azure Resource Group of the subscriber. The partner destination associated with the channel will be + created under this resource group.", + SerializedName = @"resourceGroupName", + PossibleTypes = new [] { typeof(string) })] + string PartnerDestinationInfoResourceGroupName { get; set; } + /// Change history of the resource move. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Change history of the resource move.", + SerializedName = @"resourceMoveChangeHistory", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IResourceMoveChangeHistory) })] + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IResourceMoveChangeHistory[] PartnerDestinationInfoResourceMoveChangeHistory { get; set; } + /// + /// Azure subscription ID of the subscriber. The partner topic associated with the channel will be + /// created under this Azure subscription. + /// + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Azure subscription ID of the subscriber. The partner topic associated with the channel will be + created under this Azure subscription.", + SerializedName = @"azureSubscriptionId", + PossibleTypes = new [] { typeof(string) })] + string PartnerTopicInfoAzureSubscriptionId { get; set; } + /// Name of the partner topic associated with the channel. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Name of the partner topic associated with the channel.", + SerializedName = @"name", + PossibleTypes = new [] { typeof(string) })] + string PartnerTopicInfoName { get; set; } + /// + /// Azure Resource Group of the subscriber. The partner topic associated with the channel will be + /// created under this resource group. + /// + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Azure Resource Group of the subscriber. The partner topic associated with the channel will be + created under this resource group.", + SerializedName = @"resourceGroupName", + PossibleTypes = new [] { typeof(string) })] + string PartnerTopicInfoResourceGroupName { get; set; } + /// + /// The source information is provided by the publisher to determine the scope or context from which the events + /// are originating. This information can be used by the subscriber during the approval process of the + /// created partner topic. + /// + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The source information is provided by the publisher to determine the scope or context from which the events + are originating. This information can be used by the subscriber during the approval process of the + created partner topic.", + SerializedName = @"source", + PossibleTypes = new [] { typeof(string) })] + string PartnerTopicInfoSource { get; set; } + /// Provisioning state of the channel. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Provisioning state of the channel.", + SerializedName = @"provisioningState", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.ChannelProvisioningState) })] + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.ChannelProvisioningState? ProvisioningState { get; set; } + /// The readiness state of the corresponding partner topic. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The readiness state of the corresponding partner topic.", + SerializedName = @"readinessState", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.ReadinessState) })] + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.ReadinessState? ReadinessState { get; set; } + /// The timestamp of resource creation (UTC). + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.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.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The type of identity that created the resource.", + SerializedName = @"createdByType", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.CreatedByType) })] + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.CreatedByType? SystemDataCreatedByType { get; set; } + /// The timestamp of resource last modification (UTC) + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.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.EventGrid.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.EventGrid.Support.CreatedByType) })] + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.CreatedByType? SystemDataLastModifiedByType { get; set; } + + } + /// Channel info. + internal partial interface IChannelInternal : + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IResourceInternal + { + /// The type of the event channel which represents the direction flow of events. + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.ChannelType? ChannelType { get; set; } + /// + /// A collection of inline event types for the resource. The inline event type keys are of type string which represents the + /// name of the event. + /// An example of a valid inline event name is "Contoso.OrderCreated". + /// The inline event type values are of type InlineEventProperties and will contain additional information for every inline + /// event type. + /// + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventTypeInfoInlineEventTypes EventTypeInfoInlineEventType { get; set; } + /// The kind of event type used. + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EventDefinitionKind? EventTypeInfoKind { get; set; } + /// + /// Expiration time of the channel. If this timer expires while the corresponding partner topic is never activated, + /// the channel and corresponding partner topic are deleted. + /// + global::System.DateTime? ExpirationTimeIfNotActivatedUtc { get; set; } + /// + /// Context or helpful message that can be used during the approval process by the subscriber. + /// + string MessageForActivation { get; set; } + /// + /// This property should be populated when channelType is PartnerDestination and represents information about the partner + /// destination resource corresponding to the channel. + /// + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerDestinationInfo PartnerDestinationInfo { get; set; } + /// + /// Azure subscription ID of the subscriber. The partner destination associated with the channel will be + /// created under this Azure subscription. + /// + string PartnerDestinationInfoAzureSubscriptionId { get; set; } + /// Additional context of the partner destination endpoint. + string PartnerDestinationInfoEndpointServiceContext { get; set; } + /// Type of the endpoint for the partner destination + string PartnerDestinationInfoEndpointType { get; set; } + /// Name of the partner destination associated with the channel. + string PartnerDestinationInfoName { get; set; } + /// + /// Azure Resource Group of the subscriber. The partner destination associated with the channel will be + /// created under this resource group. + /// + string PartnerDestinationInfoResourceGroupName { get; set; } + /// Change history of the resource move. + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IResourceMoveChangeHistory[] PartnerDestinationInfoResourceMoveChangeHistory { get; set; } + /// + /// This property should be populated when channelType is PartnerTopic and represents information about the partner topic + /// resource corresponding to the channel. + /// + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerTopicInfo PartnerTopicInfo { get; set; } + /// + /// Azure subscription ID of the subscriber. The partner topic associated with the channel will be + /// created under this Azure subscription. + /// + string PartnerTopicInfoAzureSubscriptionId { get; set; } + /// + /// Event Type Information for the partner topic. This information is provided by the publisher and can be used by the + /// subscriber to view different types of events that are published. + /// + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventTypeInfo PartnerTopicInfoEventTypeInfo { get; set; } + /// Name of the partner topic associated with the channel. + string PartnerTopicInfoName { get; set; } + /// + /// Azure Resource Group of the subscriber. The partner topic associated with the channel will be + /// created under this resource group. + /// + string PartnerTopicInfoResourceGroupName { get; set; } + /// + /// The source information is provided by the publisher to determine the scope or context from which the events + /// are originating. This information can be used by the subscriber during the approval process of the + /// created partner topic. + /// + string PartnerTopicInfoSource { get; set; } + /// Properties of the Channel. + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IChannelProperties Property { get; set; } + /// Provisioning state of the channel. + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.ChannelProvisioningState? ProvisioningState { get; set; } + /// The readiness state of the corresponding partner topic. + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.ReadinessState? ReadinessState { get; set; } + /// The system metadata relating to Channel resource. + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.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.EventGrid.Support.CreatedByType? SystemDataLastModifiedByType { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/Channel.json.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/Channel.json.cs new file mode 100644 index 000000000000..806b7f835e7d --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/Channel.json.cs @@ -0,0 +1,113 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Extensions; + + /// Channel info. + public partial class Channel + { + + /// + /// AfterFromJson will be called after the json deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JsonNode that should be deserialized into this object. + + partial void AfterFromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json erialization has finished, allowing customization of the before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JSON container that the serialization result will be placed in. + + partial void AfterToJson(ref Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject container); + + /// + /// BeforeFromJson will be called before the json deserialization has commenced, allowing complete customization of + /// the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JsonNode that should be deserialized into this object. + /// Determines if the rest of the deserialization should be processed, or if the method should return + /// instantly. + + partial void BeforeFromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject json, ref bool returnNow); + + /// + /// BeforeToJson will be called before the json serialization has commenced, allowing complete customization of the + /// object before it is serialized. + /// If you wish to disable the default serialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JSON container that the serialization result will be placed in. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeToJson(ref Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject instance to deserialize from. + internal Channel(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject json) + { + bool returnNow = false; + BeforeFromJson(json, ref returnNow); + if (returnNow) + { + return; + } + __resource = new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.Resource(json); + {_property = If( json?.PropertyT("properties"), out var __jsonProperties) ? Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ChannelProperties.FromJson(__jsonProperties) : Property;} + {_systemData = If( json?.PropertyT("systemData"), out var __jsonSystemData) ? Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20.SystemData.FromJson(__jsonSystemData) : SystemData;} + AfterFromJson(json); + } + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IChannel. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IChannel. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IChannel FromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject json ? new Channel(json) : null; + } + + /// + /// Serializes this instance of into a . + /// + /// The container to serialize this object into. If the caller + /// passes in null, a new instance will be created and returned to the caller. + /// Allows the caller to choose the depth of the serialization. See . + /// + /// a serialized instance of as a . + /// + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Runtime.Json.JsonNode) this._property.ToJson(null,serializationMode) : null, "properties" ,container.Add ); + if (serializationMode.HasFlag(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SerializationMode.IncludeReadOnly)) + { + AddIf( null != this._systemData ? (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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/eventgrid/generated/api/Models/Api20211015Preview/ChannelProperties.PowerShell.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/ChannelProperties.PowerShell.cs new file mode 100644 index 000000000000..ddfa2604160a --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/ChannelProperties.PowerShell.cs @@ -0,0 +1,294 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell; + + /// Properties of the Channel. + [System.ComponentModel.TypeConverter(typeof(ChannelPropertiesTypeConverter))] + public partial class ChannelProperties + { + + /// + /// AfterDeserializeDictionary will be called after the deserialization has finished, allowing customization of the + /// object before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Collections.IDictionary content that should be used. + + partial void AfterDeserializeDictionary(global::System.Collections.IDictionary content); + + /// + /// AfterDeserializePSObject will be called after the deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Management.Automation.PSObject content that should be used. + + partial void AfterDeserializePSObject(global::System.Management.Automation.PSObject content); + + /// + /// BeforeDeserializeDictionary will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Collections.IDictionary content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializeDictionary(global::System.Collections.IDictionary content, ref bool returnNow); + + /// + /// BeforeDeserializePSObject will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializePSObject(global::System.Management.Automation.PSObject content, ref bool returnNow); + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + internal ChannelProperties(global::System.Collections.IDictionary content) + { + bool returnNow = false; + BeforeDeserializeDictionary(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("PartnerTopicInfo")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IChannelPropertiesInternal)this).PartnerTopicInfo = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerTopicInfo) content.GetValueForProperty("PartnerTopicInfo",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IChannelPropertiesInternal)this).PartnerTopicInfo, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.PartnerTopicInfoTypeConverter.ConvertFrom); + } + if (content.Contains("PartnerDestinationInfo")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IChannelPropertiesInternal)this).PartnerDestinationInfo = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerDestinationInfo) content.GetValueForProperty("PartnerDestinationInfo",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IChannelPropertiesInternal)this).PartnerDestinationInfo, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.PartnerDestinationInfoTypeConverter.ConvertFrom); + } + if (content.Contains("ChannelType")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IChannelPropertiesInternal)this).ChannelType = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.ChannelType?) content.GetValueForProperty("ChannelType",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IChannelPropertiesInternal)this).ChannelType, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.ChannelType.CreateFrom); + } + if (content.Contains("MessageForActivation")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IChannelPropertiesInternal)this).MessageForActivation = (string) content.GetValueForProperty("MessageForActivation",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IChannelPropertiesInternal)this).MessageForActivation, global::System.Convert.ToString); + } + if (content.Contains("ProvisioningState")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IChannelPropertiesInternal)this).ProvisioningState = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.ChannelProvisioningState?) content.GetValueForProperty("ProvisioningState",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IChannelPropertiesInternal)this).ProvisioningState, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.ChannelProvisioningState.CreateFrom); + } + if (content.Contains("ReadinessState")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IChannelPropertiesInternal)this).ReadinessState = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.ReadinessState?) content.GetValueForProperty("ReadinessState",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IChannelPropertiesInternal)this).ReadinessState, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.ReadinessState.CreateFrom); + } + if (content.Contains("ExpirationTimeIfNotActivatedUtc")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IChannelPropertiesInternal)this).ExpirationTimeIfNotActivatedUtc = (global::System.DateTime?) content.GetValueForProperty("ExpirationTimeIfNotActivatedUtc",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IChannelPropertiesInternal)this).ExpirationTimeIfNotActivatedUtc, (v) => v is global::System.DateTime _v ? _v : global::System.Xml.XmlConvert.ToDateTime( v.ToString() , global::System.Xml.XmlDateTimeSerializationMode.Unspecified)); + } + if (content.Contains("PartnerTopicInfoName")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IChannelPropertiesInternal)this).PartnerTopicInfoName = (string) content.GetValueForProperty("PartnerTopicInfoName",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IChannelPropertiesInternal)this).PartnerTopicInfoName, global::System.Convert.ToString); + } + if (content.Contains("PartnerTopicInfoSource")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IChannelPropertiesInternal)this).PartnerTopicInfoSource = (string) content.GetValueForProperty("PartnerTopicInfoSource",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IChannelPropertiesInternal)this).PartnerTopicInfoSource, global::System.Convert.ToString); + } + if (content.Contains("PartnerDestinationInfoName")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IChannelPropertiesInternal)this).PartnerDestinationInfoName = (string) content.GetValueForProperty("PartnerDestinationInfoName",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IChannelPropertiesInternal)this).PartnerDestinationInfoName, global::System.Convert.ToString); + } + if (content.Contains("PartnerTopicInfoEventTypeInfo")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IChannelPropertiesInternal)this).PartnerTopicInfoEventTypeInfo = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventTypeInfo) content.GetValueForProperty("PartnerTopicInfoEventTypeInfo",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IChannelPropertiesInternal)this).PartnerTopicInfoEventTypeInfo, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.EventTypeInfoTypeConverter.ConvertFrom); + } + if (content.Contains("PartnerTopicInfoAzureSubscriptionId")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IChannelPropertiesInternal)this).PartnerTopicInfoAzureSubscriptionId = (string) content.GetValueForProperty("PartnerTopicInfoAzureSubscriptionId",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IChannelPropertiesInternal)this).PartnerTopicInfoAzureSubscriptionId, global::System.Convert.ToString); + } + if (content.Contains("PartnerTopicInfoResourceGroupName")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IChannelPropertiesInternal)this).PartnerTopicInfoResourceGroupName = (string) content.GetValueForProperty("PartnerTopicInfoResourceGroupName",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IChannelPropertiesInternal)this).PartnerTopicInfoResourceGroupName, global::System.Convert.ToString); + } + if (content.Contains("PartnerDestinationInfoAzureSubscriptionId")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IChannelPropertiesInternal)this).PartnerDestinationInfoAzureSubscriptionId = (string) content.GetValueForProperty("PartnerDestinationInfoAzureSubscriptionId",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IChannelPropertiesInternal)this).PartnerDestinationInfoAzureSubscriptionId, global::System.Convert.ToString); + } + if (content.Contains("PartnerDestinationInfoResourceGroupName")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IChannelPropertiesInternal)this).PartnerDestinationInfoResourceGroupName = (string) content.GetValueForProperty("PartnerDestinationInfoResourceGroupName",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IChannelPropertiesInternal)this).PartnerDestinationInfoResourceGroupName, global::System.Convert.ToString); + } + if (content.Contains("PartnerDestinationInfoEndpointType")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IChannelPropertiesInternal)this).PartnerDestinationInfoEndpointType = (string) content.GetValueForProperty("PartnerDestinationInfoEndpointType",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IChannelPropertiesInternal)this).PartnerDestinationInfoEndpointType, global::System.Convert.ToString); + } + if (content.Contains("PartnerDestinationInfoEndpointServiceContext")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IChannelPropertiesInternal)this).PartnerDestinationInfoEndpointServiceContext = (string) content.GetValueForProperty("PartnerDestinationInfoEndpointServiceContext",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IChannelPropertiesInternal)this).PartnerDestinationInfoEndpointServiceContext, global::System.Convert.ToString); + } + if (content.Contains("PartnerDestinationInfoResourceMoveChangeHistory")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IChannelPropertiesInternal)this).PartnerDestinationInfoResourceMoveChangeHistory = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IResourceMoveChangeHistory[]) content.GetValueForProperty("PartnerDestinationInfoResourceMoveChangeHistory",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IChannelPropertiesInternal)this).PartnerDestinationInfoResourceMoveChangeHistory, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ResourceMoveChangeHistoryTypeConverter.ConvertFrom)); + } + if (content.Contains("EventTypeInfoKind")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IChannelPropertiesInternal)this).EventTypeInfoKind = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EventDefinitionKind?) content.GetValueForProperty("EventTypeInfoKind",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IChannelPropertiesInternal)this).EventTypeInfoKind, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EventDefinitionKind.CreateFrom); + } + if (content.Contains("EventTypeInfoInlineEventType")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IChannelPropertiesInternal)this).EventTypeInfoInlineEventType = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventTypeInfoInlineEventTypes) content.GetValueForProperty("EventTypeInfoInlineEventType",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IChannelPropertiesInternal)this).EventTypeInfoInlineEventType, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.EventTypeInfoInlineEventTypesTypeConverter.ConvertFrom); + } + AfterDeserializeDictionary(content); + } + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + internal ChannelProperties(global::System.Management.Automation.PSObject content) + { + bool returnNow = false; + BeforeDeserializePSObject(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("PartnerTopicInfo")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IChannelPropertiesInternal)this).PartnerTopicInfo = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerTopicInfo) content.GetValueForProperty("PartnerTopicInfo",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IChannelPropertiesInternal)this).PartnerTopicInfo, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.PartnerTopicInfoTypeConverter.ConvertFrom); + } + if (content.Contains("PartnerDestinationInfo")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IChannelPropertiesInternal)this).PartnerDestinationInfo = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerDestinationInfo) content.GetValueForProperty("PartnerDestinationInfo",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IChannelPropertiesInternal)this).PartnerDestinationInfo, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.PartnerDestinationInfoTypeConverter.ConvertFrom); + } + if (content.Contains("ChannelType")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IChannelPropertiesInternal)this).ChannelType = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.ChannelType?) content.GetValueForProperty("ChannelType",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IChannelPropertiesInternal)this).ChannelType, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.ChannelType.CreateFrom); + } + if (content.Contains("MessageForActivation")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IChannelPropertiesInternal)this).MessageForActivation = (string) content.GetValueForProperty("MessageForActivation",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IChannelPropertiesInternal)this).MessageForActivation, global::System.Convert.ToString); + } + if (content.Contains("ProvisioningState")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IChannelPropertiesInternal)this).ProvisioningState = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.ChannelProvisioningState?) content.GetValueForProperty("ProvisioningState",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IChannelPropertiesInternal)this).ProvisioningState, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.ChannelProvisioningState.CreateFrom); + } + if (content.Contains("ReadinessState")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IChannelPropertiesInternal)this).ReadinessState = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.ReadinessState?) content.GetValueForProperty("ReadinessState",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IChannelPropertiesInternal)this).ReadinessState, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.ReadinessState.CreateFrom); + } + if (content.Contains("ExpirationTimeIfNotActivatedUtc")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IChannelPropertiesInternal)this).ExpirationTimeIfNotActivatedUtc = (global::System.DateTime?) content.GetValueForProperty("ExpirationTimeIfNotActivatedUtc",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IChannelPropertiesInternal)this).ExpirationTimeIfNotActivatedUtc, (v) => v is global::System.DateTime _v ? _v : global::System.Xml.XmlConvert.ToDateTime( v.ToString() , global::System.Xml.XmlDateTimeSerializationMode.Unspecified)); + } + if (content.Contains("PartnerTopicInfoName")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IChannelPropertiesInternal)this).PartnerTopicInfoName = (string) content.GetValueForProperty("PartnerTopicInfoName",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IChannelPropertiesInternal)this).PartnerTopicInfoName, global::System.Convert.ToString); + } + if (content.Contains("PartnerTopicInfoSource")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IChannelPropertiesInternal)this).PartnerTopicInfoSource = (string) content.GetValueForProperty("PartnerTopicInfoSource",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IChannelPropertiesInternal)this).PartnerTopicInfoSource, global::System.Convert.ToString); + } + if (content.Contains("PartnerDestinationInfoName")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IChannelPropertiesInternal)this).PartnerDestinationInfoName = (string) content.GetValueForProperty("PartnerDestinationInfoName",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IChannelPropertiesInternal)this).PartnerDestinationInfoName, global::System.Convert.ToString); + } + if (content.Contains("PartnerTopicInfoEventTypeInfo")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IChannelPropertiesInternal)this).PartnerTopicInfoEventTypeInfo = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventTypeInfo) content.GetValueForProperty("PartnerTopicInfoEventTypeInfo",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IChannelPropertiesInternal)this).PartnerTopicInfoEventTypeInfo, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.EventTypeInfoTypeConverter.ConvertFrom); + } + if (content.Contains("PartnerTopicInfoAzureSubscriptionId")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IChannelPropertiesInternal)this).PartnerTopicInfoAzureSubscriptionId = (string) content.GetValueForProperty("PartnerTopicInfoAzureSubscriptionId",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IChannelPropertiesInternal)this).PartnerTopicInfoAzureSubscriptionId, global::System.Convert.ToString); + } + if (content.Contains("PartnerTopicInfoResourceGroupName")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IChannelPropertiesInternal)this).PartnerTopicInfoResourceGroupName = (string) content.GetValueForProperty("PartnerTopicInfoResourceGroupName",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IChannelPropertiesInternal)this).PartnerTopicInfoResourceGroupName, global::System.Convert.ToString); + } + if (content.Contains("PartnerDestinationInfoAzureSubscriptionId")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IChannelPropertiesInternal)this).PartnerDestinationInfoAzureSubscriptionId = (string) content.GetValueForProperty("PartnerDestinationInfoAzureSubscriptionId",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IChannelPropertiesInternal)this).PartnerDestinationInfoAzureSubscriptionId, global::System.Convert.ToString); + } + if (content.Contains("PartnerDestinationInfoResourceGroupName")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IChannelPropertiesInternal)this).PartnerDestinationInfoResourceGroupName = (string) content.GetValueForProperty("PartnerDestinationInfoResourceGroupName",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IChannelPropertiesInternal)this).PartnerDestinationInfoResourceGroupName, global::System.Convert.ToString); + } + if (content.Contains("PartnerDestinationInfoEndpointType")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IChannelPropertiesInternal)this).PartnerDestinationInfoEndpointType = (string) content.GetValueForProperty("PartnerDestinationInfoEndpointType",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IChannelPropertiesInternal)this).PartnerDestinationInfoEndpointType, global::System.Convert.ToString); + } + if (content.Contains("PartnerDestinationInfoEndpointServiceContext")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IChannelPropertiesInternal)this).PartnerDestinationInfoEndpointServiceContext = (string) content.GetValueForProperty("PartnerDestinationInfoEndpointServiceContext",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IChannelPropertiesInternal)this).PartnerDestinationInfoEndpointServiceContext, global::System.Convert.ToString); + } + if (content.Contains("PartnerDestinationInfoResourceMoveChangeHistory")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IChannelPropertiesInternal)this).PartnerDestinationInfoResourceMoveChangeHistory = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IResourceMoveChangeHistory[]) content.GetValueForProperty("PartnerDestinationInfoResourceMoveChangeHistory",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IChannelPropertiesInternal)this).PartnerDestinationInfoResourceMoveChangeHistory, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ResourceMoveChangeHistoryTypeConverter.ConvertFrom)); + } + if (content.Contains("EventTypeInfoKind")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IChannelPropertiesInternal)this).EventTypeInfoKind = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EventDefinitionKind?) content.GetValueForProperty("EventTypeInfoKind",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IChannelPropertiesInternal)this).EventTypeInfoKind, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EventDefinitionKind.CreateFrom); + } + if (content.Contains("EventTypeInfoInlineEventType")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IChannelPropertiesInternal)this).EventTypeInfoInlineEventType = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventTypeInfoInlineEventTypes) content.GetValueForProperty("EventTypeInfoInlineEventType",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IChannelPropertiesInternal)this).EventTypeInfoInlineEventType, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.EventTypeInfoInlineEventTypesTypeConverter.ConvertFrom); + } + AfterDeserializePSObject(content); + } + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IChannelProperties DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new ChannelProperties(content); + } + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IChannelProperties DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new ChannelProperties(content); + } + + /// + /// Creates a new instance of , deserializing the content from a json string. + /// + /// a string containing a JSON serialized instance of this model. + /// an instance of the model class. + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IChannelProperties FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode.Parse(jsonText)); + + /// Serializes this instance to a json string. + + /// a containing this model serialized to JSON text. + public string ToJsonString() => ToJson(null, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// Properties of the Channel. + [System.ComponentModel.TypeConverter(typeof(ChannelPropertiesTypeConverter))] + public partial interface IChannelProperties + + { + + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/ChannelProperties.TypeConverter.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/ChannelProperties.TypeConverter.cs new file mode 100644 index 000000000000..cda2f3f98121 --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/ChannelProperties.TypeConverter.cs @@ -0,0 +1,146 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class ChannelPropertiesTypeConverter : global::System.Management.Automation.PSTypeConverter + { + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false. + /// + public override bool CanConvertFrom(object sourceValue, global::System.Type destinationType) => CanConvertFrom(sourceValue); + + /// + /// Determines if the converter can convert the parameter to the . + /// + /// the instance to check if it can be converted to the type. + /// + /// true if the instance could be converted to a type, otherwise false + /// + public static bool CanConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return true; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + // we say yest to PSObjects + return true; + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + // we say yest to Hashtables/dictionaries + return true; + } + try + { + if (null != sourceValue.ToJsonString()) + { + return true; + } + } + catch + { + // Not one of our objects + } + try + { + string text = sourceValue.ToString()?.Trim(); + return true == text?.StartsWith("{") && true == text?.EndsWith("}") && Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonType.Object; + } + catch + { + // Doesn't look like it can be treated as JSON + } + return false; + } + + /// + /// Determines if the parameter can be converted to the parameter + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false + /// + public override bool CanConvertTo(object sourceValue, global::System.Type destinationType) => false; + + /// + /// Converts the parameter to the parameter using and + /// + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// + /// an instance of , or null if there is no suitable conversion. + /// + public override object ConvertFrom(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => ConvertFrom(sourceValue); + + /// + /// Converts the parameter to the parameter using and + /// + /// the value to convert into an instance of . + /// + /// an instance of , or null if there is no suitable conversion. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IChannelProperties ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IChannelProperties).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return ChannelProperties.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return ChannelProperties.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return ChannelProperties.DeserializeFromDictionary(sourceValue); + } + return null; + } + + /// NotImplemented -- this will return null + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// will always return null. + public override object ConvertTo(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => null; + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/ChannelProperties.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/ChannelProperties.cs new file mode 100644 index 000000000000..c05ed80c22bf --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/ChannelProperties.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.EventGrid.Models.Api20211015Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Extensions; + + /// Properties of the Channel. + public partial class ChannelProperties : + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IChannelProperties, + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IChannelPropertiesInternal + { + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.ChannelType? _channelType; + + /// The type of the event channel which represents the direction flow of events. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Owned)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.ChannelType? ChannelType { get => this._channelType; set => this._channelType = value; } + + /// + /// A collection of inline event types for the resource. The inline event type keys are of type string which represents the + /// name of the event. + /// An example of a valid inline event name is "Contoso.OrderCreated". + /// The inline event type values are of type InlineEventProperties and will contain additional information for every inline + /// event type. + /// + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Inlined)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventTypeInfoInlineEventTypes EventTypeInfoInlineEventType { get => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerTopicInfoInternal)PartnerTopicInfo).EventTypeInfoInlineEventType; set => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerTopicInfoInternal)PartnerTopicInfo).EventTypeInfoInlineEventType = value ?? null /* model class */; } + + /// The kind of event type used. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Inlined)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EventDefinitionKind? EventTypeInfoKind { get => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerTopicInfoInternal)PartnerTopicInfo).EventTypeInfoKind; set => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerTopicInfoInternal)PartnerTopicInfo).EventTypeInfoKind = value ?? ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EventDefinitionKind)""); } + + /// Backing field for property. + private global::System.DateTime? _expirationTimeIfNotActivatedUtc; + + /// + /// Expiration time of the channel. If this timer expires while the corresponding partner topic is never activated, + /// the channel and corresponding partner topic are deleted. + /// + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Owned)] + public global::System.DateTime? ExpirationTimeIfNotActivatedUtc { get => this._expirationTimeIfNotActivatedUtc; set => this._expirationTimeIfNotActivatedUtc = value; } + + /// Backing field for property. + private string _messageForActivation; + + /// + /// Context or helpful message that can be used during the approval process by the subscriber. + /// + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Owned)] + public string MessageForActivation { get => this._messageForActivation; set => this._messageForActivation = value; } + + /// Internal Acessors for PartnerDestinationInfo + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerDestinationInfo Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IChannelPropertiesInternal.PartnerDestinationInfo { get => (this._partnerDestinationInfo = this._partnerDestinationInfo ?? new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.PartnerDestinationInfo()); set { {_partnerDestinationInfo = value;} } } + + /// Internal Acessors for PartnerDestinationInfoEndpointType + string Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IChannelPropertiesInternal.PartnerDestinationInfoEndpointType { get => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerDestinationInfoInternal)PartnerDestinationInfo).EndpointType; set => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerDestinationInfoInternal)PartnerDestinationInfo).EndpointType = value; } + + /// Internal Acessors for PartnerTopicInfo + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerTopicInfo Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IChannelPropertiesInternal.PartnerTopicInfo { get => (this._partnerTopicInfo = this._partnerTopicInfo ?? new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.PartnerTopicInfo()); set { {_partnerTopicInfo = value;} } } + + /// Internal Acessors for PartnerTopicInfoEventTypeInfo + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventTypeInfo Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IChannelPropertiesInternal.PartnerTopicInfoEventTypeInfo { get => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerTopicInfoInternal)PartnerTopicInfo).EventTypeInfo; set => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerTopicInfoInternal)PartnerTopicInfo).EventTypeInfo = value; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerDestinationInfo _partnerDestinationInfo; + + /// + /// This property should be populated when channelType is PartnerDestination and represents information about the partner + /// destination resource corresponding to the channel. + /// + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Owned)] + internal Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerDestinationInfo PartnerDestinationInfo { get => (this._partnerDestinationInfo = this._partnerDestinationInfo ?? new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.PartnerDestinationInfo()); set => this._partnerDestinationInfo = value; } + + /// + /// Azure subscription ID of the subscriber. The partner destination associated with the channel will be + /// created under this Azure subscription. + /// + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Inlined)] + public string PartnerDestinationInfoAzureSubscriptionId { get => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerDestinationInfoInternal)PartnerDestinationInfo).AzureSubscriptionId; set => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerDestinationInfoInternal)PartnerDestinationInfo).AzureSubscriptionId = value ?? null; } + + /// Additional context of the partner destination endpoint. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Inlined)] + public string PartnerDestinationInfoEndpointServiceContext { get => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerDestinationInfoInternal)PartnerDestinationInfo).EndpointServiceContext; set => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerDestinationInfoInternal)PartnerDestinationInfo).EndpointServiceContext = value ?? null; } + + /// Type of the endpoint for the partner destination + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Inlined)] + public string PartnerDestinationInfoEndpointType { get => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerDestinationInfoInternal)PartnerDestinationInfo).EndpointType; } + + /// Name of the partner destination associated with the channel. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Inlined)] + public string PartnerDestinationInfoName { get => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerDestinationInfoInternal)PartnerDestinationInfo).Name; set => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerDestinationInfoInternal)PartnerDestinationInfo).Name = value ?? null; } + + /// + /// Azure Resource Group of the subscriber. The partner destination associated with the channel will be + /// created under this resource group. + /// + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Inlined)] + public string PartnerDestinationInfoResourceGroupName { get => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerDestinationInfoInternal)PartnerDestinationInfo).ResourceGroupName; set => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerDestinationInfoInternal)PartnerDestinationInfo).ResourceGroupName = value ?? null; } + + /// Change history of the resource move. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Inlined)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IResourceMoveChangeHistory[] PartnerDestinationInfoResourceMoveChangeHistory { get => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerDestinationInfoInternal)PartnerDestinationInfo).ResourceMoveChangeHistory; set => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerDestinationInfoInternal)PartnerDestinationInfo).ResourceMoveChangeHistory = value ?? null /* arrayOf */; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerTopicInfo _partnerTopicInfo; + + /// + /// This property should be populated when channelType is PartnerTopic and represents information about the partner topic + /// resource corresponding to the channel. + /// + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Owned)] + internal Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerTopicInfo PartnerTopicInfo { get => (this._partnerTopicInfo = this._partnerTopicInfo ?? new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.PartnerTopicInfo()); set => this._partnerTopicInfo = value; } + + /// + /// Azure subscription ID of the subscriber. The partner topic associated with the channel will be + /// created under this Azure subscription. + /// + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Inlined)] + public string PartnerTopicInfoAzureSubscriptionId { get => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerTopicInfoInternal)PartnerTopicInfo).AzureSubscriptionId; set => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerTopicInfoInternal)PartnerTopicInfo).AzureSubscriptionId = value ?? null; } + + /// Name of the partner topic associated with the channel. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Inlined)] + public string PartnerTopicInfoName { get => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerTopicInfoInternal)PartnerTopicInfo).Name; set => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerTopicInfoInternal)PartnerTopicInfo).Name = value ?? null; } + + /// + /// Azure Resource Group of the subscriber. The partner topic associated with the channel will be + /// created under this resource group. + /// + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Inlined)] + public string PartnerTopicInfoResourceGroupName { get => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerTopicInfoInternal)PartnerTopicInfo).ResourceGroupName; set => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerTopicInfoInternal)PartnerTopicInfo).ResourceGroupName = value ?? null; } + + /// + /// The source information is provided by the publisher to determine the scope or context from which the events + /// are originating. This information can be used by the subscriber during the approval process of the + /// created partner topic. + /// + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Inlined)] + public string PartnerTopicInfoSource { get => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerTopicInfoInternal)PartnerTopicInfo).Source; set => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerTopicInfoInternal)PartnerTopicInfo).Source = value ?? null; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.ChannelProvisioningState? _provisioningState; + + /// Provisioning state of the channel. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Owned)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.ChannelProvisioningState? ProvisioningState { get => this._provisioningState; set => this._provisioningState = value; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.ReadinessState? _readinessState; + + /// The readiness state of the corresponding partner topic. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Owned)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.ReadinessState? ReadinessState { get => this._readinessState; set => this._readinessState = value; } + + /// Creates an new instance. + public ChannelProperties() + { + + } + } + /// Properties of the Channel. + public partial interface IChannelProperties : + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IJsonSerializable + { + /// The type of the event channel which represents the direction flow of events. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The type of the event channel which represents the direction flow of events.", + SerializedName = @"channelType", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.ChannelType) })] + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.ChannelType? ChannelType { get; set; } + /// + /// A collection of inline event types for the resource. The inline event type keys are of type string which represents the + /// name of the event. + /// An example of a valid inline event name is "Contoso.OrderCreated". + /// The inline event type values are of type InlineEventProperties and will contain additional information for every inline + /// event type. + /// + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"A collection of inline event types for the resource. The inline event type keys are of type string which represents the name of the event. + An example of a valid inline event name is ""Contoso.OrderCreated"". + The inline event type values are of type InlineEventProperties and will contain additional information for every inline event type.", + SerializedName = @"inlineEventTypes", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventTypeInfoInlineEventTypes) })] + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventTypeInfoInlineEventTypes EventTypeInfoInlineEventType { get; set; } + /// The kind of event type used. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The kind of event type used.", + SerializedName = @"kind", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EventDefinitionKind) })] + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EventDefinitionKind? EventTypeInfoKind { get; set; } + /// + /// Expiration time of the channel. If this timer expires while the corresponding partner topic is never activated, + /// the channel and corresponding partner topic are deleted. + /// + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Expiration time of the channel. If this timer expires while the corresponding partner topic is never activated, + the channel and corresponding partner topic are deleted.", + SerializedName = @"expirationTimeIfNotActivatedUtc", + PossibleTypes = new [] { typeof(global::System.DateTime) })] + global::System.DateTime? ExpirationTimeIfNotActivatedUtc { get; set; } + /// + /// Context or helpful message that can be used during the approval process by the subscriber. + /// + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Context or helpful message that can be used during the approval process by the subscriber.", + SerializedName = @"messageForActivation", + PossibleTypes = new [] { typeof(string) })] + string MessageForActivation { get; set; } + /// + /// Azure subscription ID of the subscriber. The partner destination associated with the channel will be + /// created under this Azure subscription. + /// + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Azure subscription ID of the subscriber. The partner destination associated with the channel will be + created under this Azure subscription.", + SerializedName = @"azureSubscriptionId", + PossibleTypes = new [] { typeof(string) })] + string PartnerDestinationInfoAzureSubscriptionId { get; set; } + /// Additional context of the partner destination endpoint. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Additional context of the partner destination endpoint.", + SerializedName = @"endpointServiceContext", + PossibleTypes = new [] { typeof(string) })] + string PartnerDestinationInfoEndpointServiceContext { get; set; } + /// Type of the endpoint for the partner destination + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"Type of the endpoint for the partner destination", + SerializedName = @"endpointType", + PossibleTypes = new [] { typeof(string) })] + string PartnerDestinationInfoEndpointType { get; } + /// Name of the partner destination associated with the channel. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Name of the partner destination associated with the channel.", + SerializedName = @"name", + PossibleTypes = new [] { typeof(string) })] + string PartnerDestinationInfoName { get; set; } + /// + /// Azure Resource Group of the subscriber. The partner destination associated with the channel will be + /// created under this resource group. + /// + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Azure Resource Group of the subscriber. The partner destination associated with the channel will be + created under this resource group.", + SerializedName = @"resourceGroupName", + PossibleTypes = new [] { typeof(string) })] + string PartnerDestinationInfoResourceGroupName { get; set; } + /// Change history of the resource move. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Change history of the resource move.", + SerializedName = @"resourceMoveChangeHistory", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IResourceMoveChangeHistory) })] + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IResourceMoveChangeHistory[] PartnerDestinationInfoResourceMoveChangeHistory { get; set; } + /// + /// Azure subscription ID of the subscriber. The partner topic associated with the channel will be + /// created under this Azure subscription. + /// + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Azure subscription ID of the subscriber. The partner topic associated with the channel will be + created under this Azure subscription.", + SerializedName = @"azureSubscriptionId", + PossibleTypes = new [] { typeof(string) })] + string PartnerTopicInfoAzureSubscriptionId { get; set; } + /// Name of the partner topic associated with the channel. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Name of the partner topic associated with the channel.", + SerializedName = @"name", + PossibleTypes = new [] { typeof(string) })] + string PartnerTopicInfoName { get; set; } + /// + /// Azure Resource Group of the subscriber. The partner topic associated with the channel will be + /// created under this resource group. + /// + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Azure Resource Group of the subscriber. The partner topic associated with the channel will be + created under this resource group.", + SerializedName = @"resourceGroupName", + PossibleTypes = new [] { typeof(string) })] + string PartnerTopicInfoResourceGroupName { get; set; } + /// + /// The source information is provided by the publisher to determine the scope or context from which the events + /// are originating. This information can be used by the subscriber during the approval process of the + /// created partner topic. + /// + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The source information is provided by the publisher to determine the scope or context from which the events + are originating. This information can be used by the subscriber during the approval process of the + created partner topic.", + SerializedName = @"source", + PossibleTypes = new [] { typeof(string) })] + string PartnerTopicInfoSource { get; set; } + /// Provisioning state of the channel. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Provisioning state of the channel.", + SerializedName = @"provisioningState", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.ChannelProvisioningState) })] + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.ChannelProvisioningState? ProvisioningState { get; set; } + /// The readiness state of the corresponding partner topic. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The readiness state of the corresponding partner topic.", + SerializedName = @"readinessState", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.ReadinessState) })] + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.ReadinessState? ReadinessState { get; set; } + + } + /// Properties of the Channel. + internal partial interface IChannelPropertiesInternal + + { + /// The type of the event channel which represents the direction flow of events. + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.ChannelType? ChannelType { get; set; } + /// + /// A collection of inline event types for the resource. The inline event type keys are of type string which represents the + /// name of the event. + /// An example of a valid inline event name is "Contoso.OrderCreated". + /// The inline event type values are of type InlineEventProperties and will contain additional information for every inline + /// event type. + /// + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventTypeInfoInlineEventTypes EventTypeInfoInlineEventType { get; set; } + /// The kind of event type used. + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EventDefinitionKind? EventTypeInfoKind { get; set; } + /// + /// Expiration time of the channel. If this timer expires while the corresponding partner topic is never activated, + /// the channel and corresponding partner topic are deleted. + /// + global::System.DateTime? ExpirationTimeIfNotActivatedUtc { get; set; } + /// + /// Context or helpful message that can be used during the approval process by the subscriber. + /// + string MessageForActivation { get; set; } + /// + /// This property should be populated when channelType is PartnerDestination and represents information about the partner + /// destination resource corresponding to the channel. + /// + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerDestinationInfo PartnerDestinationInfo { get; set; } + /// + /// Azure subscription ID of the subscriber. The partner destination associated with the channel will be + /// created under this Azure subscription. + /// + string PartnerDestinationInfoAzureSubscriptionId { get; set; } + /// Additional context of the partner destination endpoint. + string PartnerDestinationInfoEndpointServiceContext { get; set; } + /// Type of the endpoint for the partner destination + string PartnerDestinationInfoEndpointType { get; set; } + /// Name of the partner destination associated with the channel. + string PartnerDestinationInfoName { get; set; } + /// + /// Azure Resource Group of the subscriber. The partner destination associated with the channel will be + /// created under this resource group. + /// + string PartnerDestinationInfoResourceGroupName { get; set; } + /// Change history of the resource move. + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IResourceMoveChangeHistory[] PartnerDestinationInfoResourceMoveChangeHistory { get; set; } + /// + /// This property should be populated when channelType is PartnerTopic and represents information about the partner topic + /// resource corresponding to the channel. + /// + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerTopicInfo PartnerTopicInfo { get; set; } + /// + /// Azure subscription ID of the subscriber. The partner topic associated with the channel will be + /// created under this Azure subscription. + /// + string PartnerTopicInfoAzureSubscriptionId { get; set; } + /// + /// Event Type Information for the partner topic. This information is provided by the publisher and can be used by the + /// subscriber to view different types of events that are published. + /// + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventTypeInfo PartnerTopicInfoEventTypeInfo { get; set; } + /// Name of the partner topic associated with the channel. + string PartnerTopicInfoName { get; set; } + /// + /// Azure Resource Group of the subscriber. The partner topic associated with the channel will be + /// created under this resource group. + /// + string PartnerTopicInfoResourceGroupName { get; set; } + /// + /// The source information is provided by the publisher to determine the scope or context from which the events + /// are originating. This information can be used by the subscriber during the approval process of the + /// created partner topic. + /// + string PartnerTopicInfoSource { get; set; } + /// Provisioning state of the channel. + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.ChannelProvisioningState? ProvisioningState { get; set; } + /// The readiness state of the corresponding partner topic. + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.ReadinessState? ReadinessState { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/ChannelProperties.json.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/ChannelProperties.json.cs new file mode 100644 index 000000000000..d71cf379fdeb --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/ChannelProperties.json.cs @@ -0,0 +1,118 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Extensions; + + /// Properties of the Channel. + public partial class ChannelProperties + { + + /// + /// AfterFromJson will be called after the json deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JsonNode that should be deserialized into this object. + + partial void AfterFromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json erialization has finished, allowing customization of the before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JSON container that the serialization result will be placed in. + + partial void AfterToJson(ref Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject container); + + /// + /// BeforeFromJson will be called before the json deserialization has commenced, allowing complete customization of + /// the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JsonNode that should be deserialized into this object. + /// Determines if the rest of the deserialization should be processed, or if the method should return + /// instantly. + + partial void BeforeFromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject json, ref bool returnNow); + + /// + /// BeforeToJson will be called before the json serialization has commenced, allowing complete customization of the + /// object before it is serialized. + /// If you wish to disable the default serialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JSON container that the serialization result will be placed in. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeToJson(ref Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject instance to deserialize from. + internal ChannelProperties(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject json) + { + bool returnNow = false; + BeforeFromJson(json, ref returnNow); + if (returnNow) + { + return; + } + {_partnerTopicInfo = If( json?.PropertyT("partnerTopicInfo"), out var __jsonPartnerTopicInfo) ? Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.PartnerTopicInfo.FromJson(__jsonPartnerTopicInfo) : PartnerTopicInfo;} + {_partnerDestinationInfo = If( json?.PropertyT("partnerDestinationInfo"), out var __jsonPartnerDestinationInfo) ? Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.PartnerDestinationInfo.FromJson(__jsonPartnerDestinationInfo) : PartnerDestinationInfo;} + {_channelType = If( json?.PropertyT("channelType"), out var __jsonChannelType) ? (string)__jsonChannelType : (string)ChannelType;} + {_messageForActivation = If( json?.PropertyT("messageForActivation"), out var __jsonMessageForActivation) ? (string)__jsonMessageForActivation : (string)MessageForActivation;} + {_provisioningState = If( json?.PropertyT("provisioningState"), out var __jsonProvisioningState) ? (string)__jsonProvisioningState : (string)ProvisioningState;} + {_readinessState = If( json?.PropertyT("readinessState"), out var __jsonReadinessState) ? (string)__jsonReadinessState : (string)ReadinessState;} + {_expirationTimeIfNotActivatedUtc = If( json?.PropertyT("expirationTimeIfNotActivatedUtc"), out var __jsonExpirationTimeIfNotActivatedUtc) ? global::System.DateTime.TryParse((string)__jsonExpirationTimeIfNotActivatedUtc, global::System.Globalization.CultureInfo.InvariantCulture, global::System.Globalization.DateTimeStyles.AdjustToUniversal, out var __jsonExpirationTimeIfNotActivatedUtcValue) ? __jsonExpirationTimeIfNotActivatedUtcValue : ExpirationTimeIfNotActivatedUtc : ExpirationTimeIfNotActivatedUtc;} + AfterFromJson(json); + } + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IChannelProperties. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IChannelProperties. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IChannelProperties FromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject json ? new ChannelProperties(json) : null; + } + + /// + /// Serializes this instance of into a . + /// + /// The container to serialize this object into. If the caller + /// passes in null, a new instance will be created and returned to the caller. + /// Allows the caller to choose the depth of the serialization. See . + /// + /// a serialized instance of as a . + /// + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject(); + + bool returnNow = false; + BeforeToJson(ref container, ref returnNow); + if (returnNow) + { + return container; + } + AddIf( null != this._partnerTopicInfo ? (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode) this._partnerTopicInfo.ToJson(null,serializationMode) : null, "partnerTopicInfo" ,container.Add ); + AddIf( null != this._partnerDestinationInfo ? (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode) this._partnerDestinationInfo.ToJson(null,serializationMode) : null, "partnerDestinationInfo" ,container.Add ); + AddIf( null != (((object)this._channelType)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonString(this._channelType.ToString()) : null, "channelType" ,container.Add ); + AddIf( null != (((object)this._messageForActivation)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonString(this._messageForActivation.ToString()) : null, "messageForActivation" ,container.Add ); + AddIf( null != (((object)this._provisioningState)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonString(this._provisioningState.ToString()) : null, "provisioningState" ,container.Add ); + AddIf( null != (((object)this._readinessState)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonString(this._readinessState.ToString()) : null, "readinessState" ,container.Add ); + AddIf( null != this._expirationTimeIfNotActivatedUtc ? (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonString(this._expirationTimeIfNotActivatedUtc?.ToString(@"yyyy'-'MM'-'dd'T'HH':'mm':'ss.fffffffK",global::System.Globalization.CultureInfo.InvariantCulture)) : null, "expirationTimeIfNotActivatedUtc" ,container.Add ); + AfterToJson(ref container); + return container; + } + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/ChannelUpdateParameters.PowerShell.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/ChannelUpdateParameters.PowerShell.cs new file mode 100644 index 000000000000..3af011daec05 --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/ChannelUpdateParameters.PowerShell.cs @@ -0,0 +1,200 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell; + + /// Properties of the Channel update. + [System.ComponentModel.TypeConverter(typeof(ChannelUpdateParametersTypeConverter))] + public partial class ChannelUpdateParameters + { + + /// + /// AfterDeserializeDictionary will be called after the deserialization has finished, allowing customization of the + /// object before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Collections.IDictionary content that should be used. + + partial void AfterDeserializeDictionary(global::System.Collections.IDictionary content); + + /// + /// AfterDeserializePSObject will be called after the deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Management.Automation.PSObject content that should be used. + + partial void AfterDeserializePSObject(global::System.Management.Automation.PSObject content); + + /// + /// BeforeDeserializeDictionary will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Collections.IDictionary content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializeDictionary(global::System.Collections.IDictionary content, ref bool returnNow); + + /// + /// BeforeDeserializePSObject will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializePSObject(global::System.Management.Automation.PSObject content, ref bool returnNow); + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + internal ChannelUpdateParameters(global::System.Collections.IDictionary content) + { + bool returnNow = false; + BeforeDeserializeDictionary(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("Property")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IChannelUpdateParametersInternal)this).Property = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IChannelUpdateParametersProperties) content.GetValueForProperty("Property",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IChannelUpdateParametersInternal)this).Property, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ChannelUpdateParametersPropertiesTypeConverter.ConvertFrom); + } + if (content.Contains("PartnerDestinationInfo")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IChannelUpdateParametersInternal)this).PartnerDestinationInfo = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerUpdateDestinationInfo) content.GetValueForProperty("PartnerDestinationInfo",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IChannelUpdateParametersInternal)this).PartnerDestinationInfo, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.PartnerUpdateDestinationInfoTypeConverter.ConvertFrom); + } + if (content.Contains("PartnerTopicInfo")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IChannelUpdateParametersInternal)this).PartnerTopicInfo = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerUpdateTopicInfo) content.GetValueForProperty("PartnerTopicInfo",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IChannelUpdateParametersInternal)this).PartnerTopicInfo, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.PartnerUpdateTopicInfoTypeConverter.ConvertFrom); + } + if (content.Contains("ExpirationTimeIfNotActivatedUtc")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IChannelUpdateParametersInternal)this).ExpirationTimeIfNotActivatedUtc = (global::System.DateTime?) content.GetValueForProperty("ExpirationTimeIfNotActivatedUtc",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IChannelUpdateParametersInternal)this).ExpirationTimeIfNotActivatedUtc, (v) => v is global::System.DateTime _v ? _v : global::System.Xml.XmlConvert.ToDateTime( v.ToString() , global::System.Xml.XmlDateTimeSerializationMode.Unspecified)); + } + if (content.Contains("PartnerDestinationInfoEndpointType")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IChannelUpdateParametersInternal)this).PartnerDestinationInfoEndpointType = (string) content.GetValueForProperty("PartnerDestinationInfoEndpointType",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IChannelUpdateParametersInternal)this).PartnerDestinationInfoEndpointType, global::System.Convert.ToString); + } + if (content.Contains("PartnerTopicInfoEventTypeInfo")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IChannelUpdateParametersInternal)this).PartnerTopicInfoEventTypeInfo = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventTypeInfo) content.GetValueForProperty("PartnerTopicInfoEventTypeInfo",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IChannelUpdateParametersInternal)this).PartnerTopicInfoEventTypeInfo, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.EventTypeInfoTypeConverter.ConvertFrom); + } + if (content.Contains("EventTypeInfoKind")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IChannelUpdateParametersInternal)this).EventTypeInfoKind = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EventDefinitionKind?) content.GetValueForProperty("EventTypeInfoKind",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IChannelUpdateParametersInternal)this).EventTypeInfoKind, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EventDefinitionKind.CreateFrom); + } + if (content.Contains("EventTypeInfoInlineEventType")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IChannelUpdateParametersInternal)this).EventTypeInfoInlineEventType = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventTypeInfoInlineEventTypes) content.GetValueForProperty("EventTypeInfoInlineEventType",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IChannelUpdateParametersInternal)this).EventTypeInfoInlineEventType, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.EventTypeInfoInlineEventTypesTypeConverter.ConvertFrom); + } + AfterDeserializeDictionary(content); + } + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + internal ChannelUpdateParameters(global::System.Management.Automation.PSObject content) + { + bool returnNow = false; + BeforeDeserializePSObject(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("Property")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IChannelUpdateParametersInternal)this).Property = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IChannelUpdateParametersProperties) content.GetValueForProperty("Property",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IChannelUpdateParametersInternal)this).Property, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ChannelUpdateParametersPropertiesTypeConverter.ConvertFrom); + } + if (content.Contains("PartnerDestinationInfo")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IChannelUpdateParametersInternal)this).PartnerDestinationInfo = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerUpdateDestinationInfo) content.GetValueForProperty("PartnerDestinationInfo",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IChannelUpdateParametersInternal)this).PartnerDestinationInfo, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.PartnerUpdateDestinationInfoTypeConverter.ConvertFrom); + } + if (content.Contains("PartnerTopicInfo")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IChannelUpdateParametersInternal)this).PartnerTopicInfo = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerUpdateTopicInfo) content.GetValueForProperty("PartnerTopicInfo",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IChannelUpdateParametersInternal)this).PartnerTopicInfo, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.PartnerUpdateTopicInfoTypeConverter.ConvertFrom); + } + if (content.Contains("ExpirationTimeIfNotActivatedUtc")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IChannelUpdateParametersInternal)this).ExpirationTimeIfNotActivatedUtc = (global::System.DateTime?) content.GetValueForProperty("ExpirationTimeIfNotActivatedUtc",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IChannelUpdateParametersInternal)this).ExpirationTimeIfNotActivatedUtc, (v) => v is global::System.DateTime _v ? _v : global::System.Xml.XmlConvert.ToDateTime( v.ToString() , global::System.Xml.XmlDateTimeSerializationMode.Unspecified)); + } + if (content.Contains("PartnerDestinationInfoEndpointType")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IChannelUpdateParametersInternal)this).PartnerDestinationInfoEndpointType = (string) content.GetValueForProperty("PartnerDestinationInfoEndpointType",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IChannelUpdateParametersInternal)this).PartnerDestinationInfoEndpointType, global::System.Convert.ToString); + } + if (content.Contains("PartnerTopicInfoEventTypeInfo")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IChannelUpdateParametersInternal)this).PartnerTopicInfoEventTypeInfo = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventTypeInfo) content.GetValueForProperty("PartnerTopicInfoEventTypeInfo",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IChannelUpdateParametersInternal)this).PartnerTopicInfoEventTypeInfo, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.EventTypeInfoTypeConverter.ConvertFrom); + } + if (content.Contains("EventTypeInfoKind")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IChannelUpdateParametersInternal)this).EventTypeInfoKind = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EventDefinitionKind?) content.GetValueForProperty("EventTypeInfoKind",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IChannelUpdateParametersInternal)this).EventTypeInfoKind, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EventDefinitionKind.CreateFrom); + } + if (content.Contains("EventTypeInfoInlineEventType")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IChannelUpdateParametersInternal)this).EventTypeInfoInlineEventType = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventTypeInfoInlineEventTypes) content.GetValueForProperty("EventTypeInfoInlineEventType",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IChannelUpdateParametersInternal)this).EventTypeInfoInlineEventType, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.EventTypeInfoInlineEventTypesTypeConverter.ConvertFrom); + } + AfterDeserializePSObject(content); + } + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IChannelUpdateParameters DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new ChannelUpdateParameters(content); + } + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IChannelUpdateParameters DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new ChannelUpdateParameters(content); + } + + /// + /// Creates a new instance of , deserializing the content from a json string. + /// + /// a string containing a JSON serialized instance of this model. + /// an instance of the model class. + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IChannelUpdateParameters FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode.Parse(jsonText)); + + /// Serializes this instance to a json string. + + /// a containing this model serialized to JSON text. + public string ToJsonString() => ToJson(null, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// Properties of the Channel update. + [System.ComponentModel.TypeConverter(typeof(ChannelUpdateParametersTypeConverter))] + public partial interface IChannelUpdateParameters + + { + + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/ChannelUpdateParameters.TypeConverter.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/ChannelUpdateParameters.TypeConverter.cs new file mode 100644 index 000000000000..612edd816ed4 --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/ChannelUpdateParameters.TypeConverter.cs @@ -0,0 +1,147 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class ChannelUpdateParametersTypeConverter : global::System.Management.Automation.PSTypeConverter + { + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false. + /// + public override bool CanConvertFrom(object sourceValue, global::System.Type destinationType) => CanConvertFrom(sourceValue); + + /// + /// Determines if the converter can convert the parameter to the . + /// + /// the instance to check if it can be converted to the type. + /// + /// true if the instance could be converted to a type, otherwise false + /// + public static bool CanConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return true; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + // we say yest to PSObjects + return true; + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + // we say yest to Hashtables/dictionaries + return true; + } + try + { + if (null != sourceValue.ToJsonString()) + { + return true; + } + } + catch + { + // Not one of our objects + } + try + { + string text = sourceValue.ToString()?.Trim(); + return true == text?.StartsWith("{") && true == text?.EndsWith("}") && Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonType.Object; + } + catch + { + // Doesn't look like it can be treated as JSON + } + return false; + } + + /// + /// Determines if the parameter can be converted to the parameter + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false + /// + public override bool CanConvertTo(object sourceValue, global::System.Type destinationType) => false; + + /// + /// Converts the parameter to the parameter using and + /// + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// + /// an instance of , or null if there is no suitable conversion. + /// + public override object ConvertFrom(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => ConvertFrom(sourceValue); + + /// + /// Converts the parameter to the parameter using and + /// + /// the value to convert into an instance of . + /// + /// an instance of , or null if there is no suitable conversion. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IChannelUpdateParameters ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IChannelUpdateParameters).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return ChannelUpdateParameters.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return ChannelUpdateParameters.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return ChannelUpdateParameters.DeserializeFromDictionary(sourceValue); + } + return null; + } + + /// NotImplemented -- this will return null + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// will always return null. + public override object ConvertTo(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => null; + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/ChannelUpdateParameters.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/ChannelUpdateParameters.cs new file mode 100644 index 000000000000..823d809c641e --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/ChannelUpdateParameters.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.EventGrid.Models.Api20211015Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Extensions; + + /// Properties of the Channel update. + public partial class ChannelUpdateParameters : + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IChannelUpdateParameters, + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IChannelUpdateParametersInternal + { + + /// + /// A collection of inline event types for the resource. The inline event type keys are of type string which represents the + /// name of the event. + /// An example of a valid inline event name is "Contoso.OrderCreated". + /// The inline event type values are of type InlineEventProperties and will contain additional information for every inline + /// event type. + /// + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Inlined)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventTypeInfoInlineEventTypes EventTypeInfoInlineEventType { get => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IChannelUpdateParametersPropertiesInternal)Property).EventTypeInfoInlineEventType; set => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IChannelUpdateParametersPropertiesInternal)Property).EventTypeInfoInlineEventType = value ?? null /* model class */; } + + /// The kind of event type used. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Inlined)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EventDefinitionKind? EventTypeInfoKind { get => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IChannelUpdateParametersPropertiesInternal)Property).EventTypeInfoKind; set => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IChannelUpdateParametersPropertiesInternal)Property).EventTypeInfoKind = value ?? ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EventDefinitionKind)""); } + + /// + /// Expiration time of the event channel. If this timer expires while the corresponding partner topic or partner destination + /// is never activated, + /// the channel and corresponding partner topic or partner destination are deleted. + /// + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Inlined)] + public global::System.DateTime? ExpirationTimeIfNotActivatedUtc { get => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IChannelUpdateParametersPropertiesInternal)Property).ExpirationTimeIfNotActivatedUtc; set => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IChannelUpdateParametersPropertiesInternal)Property).ExpirationTimeIfNotActivatedUtc = value ?? default(global::System.DateTime); } + + /// Internal Acessors for PartnerDestinationInfo + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerUpdateDestinationInfo Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IChannelUpdateParametersInternal.PartnerDestinationInfo { get => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IChannelUpdateParametersPropertiesInternal)Property).PartnerDestinationInfo; set => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IChannelUpdateParametersPropertiesInternal)Property).PartnerDestinationInfo = value; } + + /// Internal Acessors for PartnerDestinationInfoEndpointType + string Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IChannelUpdateParametersInternal.PartnerDestinationInfoEndpointType { get => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IChannelUpdateParametersPropertiesInternal)Property).PartnerDestinationInfoEndpointType; set => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IChannelUpdateParametersPropertiesInternal)Property).PartnerDestinationInfoEndpointType = value; } + + /// Internal Acessors for PartnerTopicInfo + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerUpdateTopicInfo Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IChannelUpdateParametersInternal.PartnerTopicInfo { get => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IChannelUpdateParametersPropertiesInternal)Property).PartnerTopicInfo; set => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IChannelUpdateParametersPropertiesInternal)Property).PartnerTopicInfo = value; } + + /// Internal Acessors for PartnerTopicInfoEventTypeInfo + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventTypeInfo Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IChannelUpdateParametersInternal.PartnerTopicInfoEventTypeInfo { get => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IChannelUpdateParametersPropertiesInternal)Property).PartnerTopicInfoEventTypeInfo; set => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IChannelUpdateParametersPropertiesInternal)Property).PartnerTopicInfoEventTypeInfo = value; } + + /// Internal Acessors for Property + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IChannelUpdateParametersProperties Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IChannelUpdateParametersInternal.Property { get => (this._property = this._property ?? new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ChannelUpdateParametersProperties()); set { {_property = value;} } } + + /// Type of the endpoint for the partner destination + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Inlined)] + public string PartnerDestinationInfoEndpointType { get => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IChannelUpdateParametersPropertiesInternal)Property).PartnerDestinationInfoEndpointType; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IChannelUpdateParametersProperties _property; + + /// Properties of the channel update parameters. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Owned)] + internal Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IChannelUpdateParametersProperties Property { get => (this._property = this._property ?? new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ChannelUpdateParametersProperties()); set => this._property = value; } + + /// Creates an new instance. + public ChannelUpdateParameters() + { + + } + } + /// Properties of the Channel update. + public partial interface IChannelUpdateParameters : + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IJsonSerializable + { + /// + /// A collection of inline event types for the resource. The inline event type keys are of type string which represents the + /// name of the event. + /// An example of a valid inline event name is "Contoso.OrderCreated". + /// The inline event type values are of type InlineEventProperties and will contain additional information for every inline + /// event type. + /// + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"A collection of inline event types for the resource. The inline event type keys are of type string which represents the name of the event. + An example of a valid inline event name is ""Contoso.OrderCreated"". + The inline event type values are of type InlineEventProperties and will contain additional information for every inline event type.", + SerializedName = @"inlineEventTypes", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventTypeInfoInlineEventTypes) })] + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventTypeInfoInlineEventTypes EventTypeInfoInlineEventType { get; set; } + /// The kind of event type used. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The kind of event type used.", + SerializedName = @"kind", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EventDefinitionKind) })] + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EventDefinitionKind? EventTypeInfoKind { get; set; } + /// + /// Expiration time of the event channel. If this timer expires while the corresponding partner topic or partner destination + /// is never activated, + /// the channel and corresponding partner topic or partner destination are deleted. + /// + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Expiration time of the event channel. If this timer expires while the corresponding partner topic or partner destination is never activated, + the channel and corresponding partner topic or partner destination are deleted.", + SerializedName = @"expirationTimeIfNotActivatedUtc", + PossibleTypes = new [] { typeof(global::System.DateTime) })] + global::System.DateTime? ExpirationTimeIfNotActivatedUtc { get; set; } + /// Type of the endpoint for the partner destination + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"Type of the endpoint for the partner destination", + SerializedName = @"endpointType", + PossibleTypes = new [] { typeof(string) })] + string PartnerDestinationInfoEndpointType { get; } + + } + /// Properties of the Channel update. + internal partial interface IChannelUpdateParametersInternal + + { + /// + /// A collection of inline event types for the resource. The inline event type keys are of type string which represents the + /// name of the event. + /// An example of a valid inline event name is "Contoso.OrderCreated". + /// The inline event type values are of type InlineEventProperties and will contain additional information for every inline + /// event type. + /// + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventTypeInfoInlineEventTypes EventTypeInfoInlineEventType { get; set; } + /// The kind of event type used. + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EventDefinitionKind? EventTypeInfoKind { get; set; } + /// + /// Expiration time of the event channel. If this timer expires while the corresponding partner topic or partner destination + /// is never activated, + /// the channel and corresponding partner topic or partner destination are deleted. + /// + global::System.DateTime? ExpirationTimeIfNotActivatedUtc { get; set; } + /// + /// Partner destination properties which can be updated if the channel is of type PartnerDestination. + /// + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerUpdateDestinationInfo PartnerDestinationInfo { get; set; } + /// Type of the endpoint for the partner destination + string PartnerDestinationInfoEndpointType { get; set; } + /// + /// Partner topic properties which can be updated if the channel is of type PartnerTopic. + /// + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerUpdateTopicInfo PartnerTopicInfo { get; set; } + /// Event type info for the partner topic + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventTypeInfo PartnerTopicInfoEventTypeInfo { get; set; } + /// Properties of the channel update parameters. + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IChannelUpdateParametersProperties Property { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/ChannelUpdateParameters.json.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/ChannelUpdateParameters.json.cs new file mode 100644 index 000000000000..d2fe10914bfb --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/ChannelUpdateParameters.json.cs @@ -0,0 +1,106 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Extensions; + + /// Properties of the Channel update. + public partial class ChannelUpdateParameters + { + + /// + /// AfterFromJson will be called after the json deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JsonNode that should be deserialized into this object. + + partial void AfterFromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json erialization has finished, allowing customization of the before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JSON container that the serialization result will be placed in. + + partial void AfterToJson(ref Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject container); + + /// + /// BeforeFromJson will be called before the json deserialization has commenced, allowing complete customization of + /// the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JsonNode that should be deserialized into this object. + /// Determines if the rest of the deserialization should be processed, or if the method should return + /// instantly. + + partial void BeforeFromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject json, ref bool returnNow); + + /// + /// BeforeToJson will be called before the json serialization has commenced, allowing complete customization of the + /// object before it is serialized. + /// If you wish to disable the default serialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JSON container that the serialization result will be placed in. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeToJson(ref Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject instance to deserialize from. + internal ChannelUpdateParameters(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Models.Api20211015Preview.ChannelUpdateParametersProperties.FromJson(__jsonProperties) : Property;} + AfterFromJson(json); + } + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IChannelUpdateParameters. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IChannelUpdateParameters. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IChannelUpdateParameters FromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject json ? new ChannelUpdateParameters(json) : null; + } + + /// + /// Serializes this instance of into a . + /// + /// The container to serialize this object into. If the caller + /// passes in null, a new instance will be created and returned to the caller. + /// Allows the caller to choose the depth of the serialization. See . + /// + /// a serialized instance of as a . + /// + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject(); + + bool returnNow = false; + BeforeToJson(ref container, ref returnNow); + if (returnNow) + { + return container; + } + AddIf( null != this._property ? (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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/eventgrid/generated/api/Models/Api20211015Preview/ChannelUpdateParametersProperties.PowerShell.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/ChannelUpdateParametersProperties.PowerShell.cs new file mode 100644 index 000000000000..95e84e37e5d4 --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/ChannelUpdateParametersProperties.PowerShell.cs @@ -0,0 +1,194 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell; + + /// Properties of the channel update parameters. + [System.ComponentModel.TypeConverter(typeof(ChannelUpdateParametersPropertiesTypeConverter))] + public partial class ChannelUpdateParametersProperties + { + + /// + /// AfterDeserializeDictionary will be called after the deserialization has finished, allowing customization of the + /// object before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Collections.IDictionary content that should be used. + + partial void AfterDeserializeDictionary(global::System.Collections.IDictionary content); + + /// + /// AfterDeserializePSObject will be called after the deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Management.Automation.PSObject content that should be used. + + partial void AfterDeserializePSObject(global::System.Management.Automation.PSObject content); + + /// + /// BeforeDeserializeDictionary will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Collections.IDictionary content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializeDictionary(global::System.Collections.IDictionary content, ref bool returnNow); + + /// + /// BeforeDeserializePSObject will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializePSObject(global::System.Management.Automation.PSObject content, ref bool returnNow); + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + internal ChannelUpdateParametersProperties(global::System.Collections.IDictionary content) + { + bool returnNow = false; + BeforeDeserializeDictionary(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("PartnerDestinationInfo")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IChannelUpdateParametersPropertiesInternal)this).PartnerDestinationInfo = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerUpdateDestinationInfo) content.GetValueForProperty("PartnerDestinationInfo",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IChannelUpdateParametersPropertiesInternal)this).PartnerDestinationInfo, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.PartnerUpdateDestinationInfoTypeConverter.ConvertFrom); + } + if (content.Contains("PartnerTopicInfo")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IChannelUpdateParametersPropertiesInternal)this).PartnerTopicInfo = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerUpdateTopicInfo) content.GetValueForProperty("PartnerTopicInfo",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IChannelUpdateParametersPropertiesInternal)this).PartnerTopicInfo, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.PartnerUpdateTopicInfoTypeConverter.ConvertFrom); + } + if (content.Contains("ExpirationTimeIfNotActivatedUtc")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IChannelUpdateParametersPropertiesInternal)this).ExpirationTimeIfNotActivatedUtc = (global::System.DateTime?) content.GetValueForProperty("ExpirationTimeIfNotActivatedUtc",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IChannelUpdateParametersPropertiesInternal)this).ExpirationTimeIfNotActivatedUtc, (v) => v is global::System.DateTime _v ? _v : global::System.Xml.XmlConvert.ToDateTime( v.ToString() , global::System.Xml.XmlDateTimeSerializationMode.Unspecified)); + } + if (content.Contains("PartnerDestinationInfoEndpointType")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IChannelUpdateParametersPropertiesInternal)this).PartnerDestinationInfoEndpointType = (string) content.GetValueForProperty("PartnerDestinationInfoEndpointType",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IChannelUpdateParametersPropertiesInternal)this).PartnerDestinationInfoEndpointType, global::System.Convert.ToString); + } + if (content.Contains("PartnerTopicInfoEventTypeInfo")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IChannelUpdateParametersPropertiesInternal)this).PartnerTopicInfoEventTypeInfo = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventTypeInfo) content.GetValueForProperty("PartnerTopicInfoEventTypeInfo",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IChannelUpdateParametersPropertiesInternal)this).PartnerTopicInfoEventTypeInfo, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.EventTypeInfoTypeConverter.ConvertFrom); + } + if (content.Contains("EventTypeInfoKind")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IChannelUpdateParametersPropertiesInternal)this).EventTypeInfoKind = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EventDefinitionKind?) content.GetValueForProperty("EventTypeInfoKind",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IChannelUpdateParametersPropertiesInternal)this).EventTypeInfoKind, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EventDefinitionKind.CreateFrom); + } + if (content.Contains("EventTypeInfoInlineEventType")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IChannelUpdateParametersPropertiesInternal)this).EventTypeInfoInlineEventType = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventTypeInfoInlineEventTypes) content.GetValueForProperty("EventTypeInfoInlineEventType",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IChannelUpdateParametersPropertiesInternal)this).EventTypeInfoInlineEventType, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.EventTypeInfoInlineEventTypesTypeConverter.ConvertFrom); + } + AfterDeserializeDictionary(content); + } + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + internal ChannelUpdateParametersProperties(global::System.Management.Automation.PSObject content) + { + bool returnNow = false; + BeforeDeserializePSObject(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("PartnerDestinationInfo")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IChannelUpdateParametersPropertiesInternal)this).PartnerDestinationInfo = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerUpdateDestinationInfo) content.GetValueForProperty("PartnerDestinationInfo",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IChannelUpdateParametersPropertiesInternal)this).PartnerDestinationInfo, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.PartnerUpdateDestinationInfoTypeConverter.ConvertFrom); + } + if (content.Contains("PartnerTopicInfo")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IChannelUpdateParametersPropertiesInternal)this).PartnerTopicInfo = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerUpdateTopicInfo) content.GetValueForProperty("PartnerTopicInfo",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IChannelUpdateParametersPropertiesInternal)this).PartnerTopicInfo, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.PartnerUpdateTopicInfoTypeConverter.ConvertFrom); + } + if (content.Contains("ExpirationTimeIfNotActivatedUtc")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IChannelUpdateParametersPropertiesInternal)this).ExpirationTimeIfNotActivatedUtc = (global::System.DateTime?) content.GetValueForProperty("ExpirationTimeIfNotActivatedUtc",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IChannelUpdateParametersPropertiesInternal)this).ExpirationTimeIfNotActivatedUtc, (v) => v is global::System.DateTime _v ? _v : global::System.Xml.XmlConvert.ToDateTime( v.ToString() , global::System.Xml.XmlDateTimeSerializationMode.Unspecified)); + } + if (content.Contains("PartnerDestinationInfoEndpointType")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IChannelUpdateParametersPropertiesInternal)this).PartnerDestinationInfoEndpointType = (string) content.GetValueForProperty("PartnerDestinationInfoEndpointType",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IChannelUpdateParametersPropertiesInternal)this).PartnerDestinationInfoEndpointType, global::System.Convert.ToString); + } + if (content.Contains("PartnerTopicInfoEventTypeInfo")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IChannelUpdateParametersPropertiesInternal)this).PartnerTopicInfoEventTypeInfo = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventTypeInfo) content.GetValueForProperty("PartnerTopicInfoEventTypeInfo",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IChannelUpdateParametersPropertiesInternal)this).PartnerTopicInfoEventTypeInfo, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.EventTypeInfoTypeConverter.ConvertFrom); + } + if (content.Contains("EventTypeInfoKind")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IChannelUpdateParametersPropertiesInternal)this).EventTypeInfoKind = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EventDefinitionKind?) content.GetValueForProperty("EventTypeInfoKind",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IChannelUpdateParametersPropertiesInternal)this).EventTypeInfoKind, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EventDefinitionKind.CreateFrom); + } + if (content.Contains("EventTypeInfoInlineEventType")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IChannelUpdateParametersPropertiesInternal)this).EventTypeInfoInlineEventType = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventTypeInfoInlineEventTypes) content.GetValueForProperty("EventTypeInfoInlineEventType",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IChannelUpdateParametersPropertiesInternal)this).EventTypeInfoInlineEventType, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.EventTypeInfoInlineEventTypesTypeConverter.ConvertFrom); + } + AfterDeserializePSObject(content); + } + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IChannelUpdateParametersProperties DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new ChannelUpdateParametersProperties(content); + } + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IChannelUpdateParametersProperties DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new ChannelUpdateParametersProperties(content); + } + + /// + /// Creates a new instance of , deserializing the content from a json string. + /// + /// a string containing a JSON serialized instance of this model. + /// + /// an instance of the model class. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IChannelUpdateParametersProperties FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode.Parse(jsonText)); + + /// Serializes this instance to a json string. + + /// a containing this model serialized to JSON text. + public string ToJsonString() => ToJson(null, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// Properties of the channel update parameters. + [System.ComponentModel.TypeConverter(typeof(ChannelUpdateParametersPropertiesTypeConverter))] + public partial interface IChannelUpdateParametersProperties + + { + + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/ChannelUpdateParametersProperties.TypeConverter.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/ChannelUpdateParametersProperties.TypeConverter.cs new file mode 100644 index 000000000000..9c2ac3c3d406 --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/ChannelUpdateParametersProperties.TypeConverter.cs @@ -0,0 +1,147 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class ChannelUpdateParametersPropertiesTypeConverter : global::System.Management.Automation.PSTypeConverter + { + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false. + /// + public override bool CanConvertFrom(object sourceValue, global::System.Type destinationType) => CanConvertFrom(sourceValue); + + /// + /// Determines if the converter can convert the parameter to the . + /// + /// the instance to check if it can be converted to the type. + /// + /// true if the instance could be converted to a type, otherwise false + /// + public static bool CanConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return true; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + // we say yest to PSObjects + return true; + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + // we say yest to Hashtables/dictionaries + return true; + } + try + { + if (null != sourceValue.ToJsonString()) + { + return true; + } + } + catch + { + // Not one of our objects + } + try + { + string text = sourceValue.ToString()?.Trim(); + return true == text?.StartsWith("{") && true == text?.EndsWith("}") && Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonType.Object; + } + catch + { + // Doesn't look like it can be treated as JSON + } + return false; + } + + /// + /// Determines if the parameter can be converted to the parameter + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false + /// + public override bool CanConvertTo(object sourceValue, global::System.Type destinationType) => false; + + /// + /// Converts the parameter to the parameter using and + /// + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// + /// an instance of , or null if there is no suitable conversion. + /// + public override object ConvertFrom(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => ConvertFrom(sourceValue); + + /// + /// Converts the parameter to the parameter using and + /// + /// the value to convert into an instance of . + /// + /// an instance of , or null if there is no suitable conversion. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IChannelUpdateParametersProperties ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IChannelUpdateParametersProperties).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return ChannelUpdateParametersProperties.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return ChannelUpdateParametersProperties.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return ChannelUpdateParametersProperties.DeserializeFromDictionary(sourceValue); + } + return null; + } + + /// NotImplemented -- this will return null + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// will always return null. + public override object ConvertTo(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => null; + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/ChannelUpdateParametersProperties.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/ChannelUpdateParametersProperties.cs new file mode 100644 index 000000000000..2f49aac0920f --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/ChannelUpdateParametersProperties.cs @@ -0,0 +1,166 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Extensions; + + /// Properties of the channel update parameters. + public partial class ChannelUpdateParametersProperties : + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IChannelUpdateParametersProperties, + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IChannelUpdateParametersPropertiesInternal + { + + /// + /// A collection of inline event types for the resource. The inline event type keys are of type string which represents the + /// name of the event. + /// An example of a valid inline event name is "Contoso.OrderCreated". + /// The inline event type values are of type InlineEventProperties and will contain additional information for every inline + /// event type. + /// + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Inlined)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventTypeInfoInlineEventTypes EventTypeInfoInlineEventType { get => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerUpdateTopicInfoInternal)PartnerTopicInfo).EventTypeInfoInlineEventType; set => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerUpdateTopicInfoInternal)PartnerTopicInfo).EventTypeInfoInlineEventType = value ?? null /* model class */; } + + /// The kind of event type used. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Inlined)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EventDefinitionKind? EventTypeInfoKind { get => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerUpdateTopicInfoInternal)PartnerTopicInfo).EventTypeInfoKind; set => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerUpdateTopicInfoInternal)PartnerTopicInfo).EventTypeInfoKind = value ?? ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EventDefinitionKind)""); } + + /// Backing field for property. + private global::System.DateTime? _expirationTimeIfNotActivatedUtc; + + /// + /// Expiration time of the event channel. If this timer expires while the corresponding partner topic or partner destination + /// is never activated, + /// the channel and corresponding partner topic or partner destination are deleted. + /// + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Owned)] + public global::System.DateTime? ExpirationTimeIfNotActivatedUtc { get => this._expirationTimeIfNotActivatedUtc; set => this._expirationTimeIfNotActivatedUtc = value; } + + /// Internal Acessors for PartnerDestinationInfo + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerUpdateDestinationInfo Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IChannelUpdateParametersPropertiesInternal.PartnerDestinationInfo { get => (this._partnerDestinationInfo = this._partnerDestinationInfo ?? new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.PartnerUpdateDestinationInfo()); set { {_partnerDestinationInfo = value;} } } + + /// Internal Acessors for PartnerDestinationInfoEndpointType + string Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IChannelUpdateParametersPropertiesInternal.PartnerDestinationInfoEndpointType { get => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerUpdateDestinationInfoInternal)PartnerDestinationInfo).EndpointType; set => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerUpdateDestinationInfoInternal)PartnerDestinationInfo).EndpointType = value; } + + /// Internal Acessors for PartnerTopicInfo + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerUpdateTopicInfo Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IChannelUpdateParametersPropertiesInternal.PartnerTopicInfo { get => (this._partnerTopicInfo = this._partnerTopicInfo ?? new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.PartnerUpdateTopicInfo()); set { {_partnerTopicInfo = value;} } } + + /// Internal Acessors for PartnerTopicInfoEventTypeInfo + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventTypeInfo Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IChannelUpdateParametersPropertiesInternal.PartnerTopicInfoEventTypeInfo { get => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerUpdateTopicInfoInternal)PartnerTopicInfo).EventTypeInfo; set => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerUpdateTopicInfoInternal)PartnerTopicInfo).EventTypeInfo = value; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerUpdateDestinationInfo _partnerDestinationInfo; + + /// + /// Partner destination properties which can be updated if the channel is of type PartnerDestination. + /// + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Owned)] + internal Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerUpdateDestinationInfo PartnerDestinationInfo { get => (this._partnerDestinationInfo = this._partnerDestinationInfo ?? new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.PartnerUpdateDestinationInfo()); set => this._partnerDestinationInfo = value; } + + /// Type of the endpoint for the partner destination + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Inlined)] + public string PartnerDestinationInfoEndpointType { get => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerUpdateDestinationInfoInternal)PartnerDestinationInfo).EndpointType; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerUpdateTopicInfo _partnerTopicInfo; + + /// + /// Partner topic properties which can be updated if the channel is of type PartnerTopic. + /// + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Owned)] + internal Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerUpdateTopicInfo PartnerTopicInfo { get => (this._partnerTopicInfo = this._partnerTopicInfo ?? new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.PartnerUpdateTopicInfo()); set => this._partnerTopicInfo = value; } + + /// Creates an new instance. + public ChannelUpdateParametersProperties() + { + + } + } + /// Properties of the channel update parameters. + public partial interface IChannelUpdateParametersProperties : + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IJsonSerializable + { + /// + /// A collection of inline event types for the resource. The inline event type keys are of type string which represents the + /// name of the event. + /// An example of a valid inline event name is "Contoso.OrderCreated". + /// The inline event type values are of type InlineEventProperties and will contain additional information for every inline + /// event type. + /// + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"A collection of inline event types for the resource. The inline event type keys are of type string which represents the name of the event. + An example of a valid inline event name is ""Contoso.OrderCreated"". + The inline event type values are of type InlineEventProperties and will contain additional information for every inline event type.", + SerializedName = @"inlineEventTypes", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventTypeInfoInlineEventTypes) })] + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventTypeInfoInlineEventTypes EventTypeInfoInlineEventType { get; set; } + /// The kind of event type used. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The kind of event type used.", + SerializedName = @"kind", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EventDefinitionKind) })] + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EventDefinitionKind? EventTypeInfoKind { get; set; } + /// + /// Expiration time of the event channel. If this timer expires while the corresponding partner topic or partner destination + /// is never activated, + /// the channel and corresponding partner topic or partner destination are deleted. + /// + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Expiration time of the event channel. If this timer expires while the corresponding partner topic or partner destination is never activated, + the channel and corresponding partner topic or partner destination are deleted.", + SerializedName = @"expirationTimeIfNotActivatedUtc", + PossibleTypes = new [] { typeof(global::System.DateTime) })] + global::System.DateTime? ExpirationTimeIfNotActivatedUtc { get; set; } + /// Type of the endpoint for the partner destination + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"Type of the endpoint for the partner destination", + SerializedName = @"endpointType", + PossibleTypes = new [] { typeof(string) })] + string PartnerDestinationInfoEndpointType { get; } + + } + /// Properties of the channel update parameters. + internal partial interface IChannelUpdateParametersPropertiesInternal + + { + /// + /// A collection of inline event types for the resource. The inline event type keys are of type string which represents the + /// name of the event. + /// An example of a valid inline event name is "Contoso.OrderCreated". + /// The inline event type values are of type InlineEventProperties and will contain additional information for every inline + /// event type. + /// + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventTypeInfoInlineEventTypes EventTypeInfoInlineEventType { get; set; } + /// The kind of event type used. + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EventDefinitionKind? EventTypeInfoKind { get; set; } + /// + /// Expiration time of the event channel. If this timer expires while the corresponding partner topic or partner destination + /// is never activated, + /// the channel and corresponding partner topic or partner destination are deleted. + /// + global::System.DateTime? ExpirationTimeIfNotActivatedUtc { get; set; } + /// + /// Partner destination properties which can be updated if the channel is of type PartnerDestination. + /// + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerUpdateDestinationInfo PartnerDestinationInfo { get; set; } + /// Type of the endpoint for the partner destination + string PartnerDestinationInfoEndpointType { get; set; } + /// + /// Partner topic properties which can be updated if the channel is of type PartnerTopic. + /// + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerUpdateTopicInfo PartnerTopicInfo { get; set; } + /// Event type info for the partner topic + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventTypeInfo PartnerTopicInfoEventTypeInfo { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/ChannelUpdateParametersProperties.json.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/ChannelUpdateParametersProperties.json.cs new file mode 100644 index 000000000000..f454ffc770c7 --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/ChannelUpdateParametersProperties.json.cs @@ -0,0 +1,110 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Extensions; + + /// Properties of the channel update parameters. + public partial class ChannelUpdateParametersProperties + { + + /// + /// AfterFromJson will be called after the json deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JsonNode that should be deserialized into this object. + + partial void AfterFromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json erialization has finished, allowing customization of the before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JSON container that the serialization result will be placed in. + + partial void AfterToJson(ref Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject container); + + /// + /// BeforeFromJson will be called before the json deserialization has commenced, allowing complete customization of + /// the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JsonNode that should be deserialized into this object. + /// Determines if the rest of the deserialization should be processed, or if the method should return + /// instantly. + + partial void BeforeFromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject json, ref bool returnNow); + + /// + /// BeforeToJson will be called before the json serialization has commenced, allowing complete customization of the + /// object before it is serialized. + /// If you wish to disable the default serialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JSON container that the serialization result will be placed in. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeToJson(ref Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject instance to deserialize from. + internal ChannelUpdateParametersProperties(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject json) + { + bool returnNow = false; + BeforeFromJson(json, ref returnNow); + if (returnNow) + { + return; + } + {_partnerDestinationInfo = If( json?.PropertyT("partnerDestinationInfo"), out var __jsonPartnerDestinationInfo) ? Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.PartnerUpdateDestinationInfo.FromJson(__jsonPartnerDestinationInfo) : PartnerDestinationInfo;} + {_partnerTopicInfo = If( json?.PropertyT("partnerTopicInfo"), out var __jsonPartnerTopicInfo) ? Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.PartnerUpdateTopicInfo.FromJson(__jsonPartnerTopicInfo) : PartnerTopicInfo;} + {_expirationTimeIfNotActivatedUtc = If( json?.PropertyT("expirationTimeIfNotActivatedUtc"), out var __jsonExpirationTimeIfNotActivatedUtc) ? global::System.DateTime.TryParse((string)__jsonExpirationTimeIfNotActivatedUtc, global::System.Globalization.CultureInfo.InvariantCulture, global::System.Globalization.DateTimeStyles.AdjustToUniversal, out var __jsonExpirationTimeIfNotActivatedUtcValue) ? __jsonExpirationTimeIfNotActivatedUtcValue : ExpirationTimeIfNotActivatedUtc : ExpirationTimeIfNotActivatedUtc;} + AfterFromJson(json); + } + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IChannelUpdateParametersProperties. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IChannelUpdateParametersProperties. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IChannelUpdateParametersProperties FromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject json ? new ChannelUpdateParametersProperties(json) : null; + } + + /// + /// Serializes this instance of into a . + /// + /// The container to serialize this object into. If the caller + /// passes in null, a new instance will be created and returned to the caller. + /// Allows the caller to choose the depth of the serialization. See . + /// + /// a serialized instance of as a . + /// + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject(); + + bool returnNow = false; + BeforeToJson(ref container, ref returnNow); + if (returnNow) + { + return container; + } + AddIf( null != this._partnerDestinationInfo ? (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode) this._partnerDestinationInfo.ToJson(null,serializationMode) : null, "partnerDestinationInfo" ,container.Add ); + AddIf( null != this._partnerTopicInfo ? (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode) this._partnerTopicInfo.ToJson(null,serializationMode) : null, "partnerTopicInfo" ,container.Add ); + AddIf( null != this._expirationTimeIfNotActivatedUtc ? (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonString(this._expirationTimeIfNotActivatedUtc?.ToString(@"yyyy'-'MM'-'dd'T'HH':'mm':'ss.fffffffK",global::System.Globalization.CultureInfo.InvariantCulture)) : null, "expirationTimeIfNotActivatedUtc" ,container.Add ); + AfterToJson(ref container); + return container; + } + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/ChannelsListResult.PowerShell.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/ChannelsListResult.PowerShell.cs new file mode 100644 index 000000000000..06b75f81aa8e --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/ChannelsListResult.PowerShell.cs @@ -0,0 +1,152 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell; + + /// Result of the List Channels operation + [System.ComponentModel.TypeConverter(typeof(ChannelsListResultTypeConverter))] + public partial class ChannelsListResult + { + + /// + /// AfterDeserializeDictionary will be called after the deserialization has finished, allowing customization of the + /// object before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Collections.IDictionary content that should be used. + + partial void AfterDeserializeDictionary(global::System.Collections.IDictionary content); + + /// + /// AfterDeserializePSObject will be called after the deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Management.Automation.PSObject content that should be used. + + partial void AfterDeserializePSObject(global::System.Management.Automation.PSObject content); + + /// + /// BeforeDeserializeDictionary will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Collections.IDictionary content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializeDictionary(global::System.Collections.IDictionary content, ref bool returnNow); + + /// + /// BeforeDeserializePSObject will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializePSObject(global::System.Management.Automation.PSObject content, ref bool returnNow); + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + internal ChannelsListResult(global::System.Collections.IDictionary content) + { + bool returnNow = false; + BeforeDeserializeDictionary(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("Value")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IChannelsListResultInternal)this).Value = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IChannel[]) content.GetValueForProperty("Value",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IChannelsListResultInternal)this).Value, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ChannelTypeConverter.ConvertFrom)); + } + if (content.Contains("NextLink")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IChannelsListResultInternal)this).NextLink = (string) content.GetValueForProperty("NextLink",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IChannelsListResultInternal)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 ChannelsListResult(global::System.Management.Automation.PSObject content) + { + bool returnNow = false; + BeforeDeserializePSObject(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("Value")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IChannelsListResultInternal)this).Value = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IChannel[]) content.GetValueForProperty("Value",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IChannelsListResultInternal)this).Value, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ChannelTypeConverter.ConvertFrom)); + } + if (content.Contains("NextLink")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IChannelsListResultInternal)this).NextLink = (string) content.GetValueForProperty("NextLink",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IChannelsListResultInternal)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.EventGrid.Models.Api20211015Preview.IChannelsListResult DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new ChannelsListResult(content); + } + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IChannelsListResult DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new ChannelsListResult(content); + } + + /// + /// Creates a new instance of , deserializing the content from a json string. + /// + /// a string containing a JSON serialized instance of this model. + /// an instance of the model class. + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IChannelsListResult FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode.Parse(jsonText)); + + /// Serializes this instance to a json string. + + /// a containing this model serialized to JSON text. + public string ToJsonString() => ToJson(null, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// Result of the List Channels operation + [System.ComponentModel.TypeConverter(typeof(ChannelsListResultTypeConverter))] + public partial interface IChannelsListResult + + { + + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/ChannelsListResult.TypeConverter.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/ChannelsListResult.TypeConverter.cs new file mode 100644 index 000000000000..2cc70567e65a --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/ChannelsListResult.TypeConverter.cs @@ -0,0 +1,147 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class ChannelsListResultTypeConverter : global::System.Management.Automation.PSTypeConverter + { + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false. + /// + public override bool CanConvertFrom(object sourceValue, global::System.Type destinationType) => CanConvertFrom(sourceValue); + + /// + /// Determines if the converter can convert the parameter to the . + /// + /// the instance to check if it can be converted to the type. + /// + /// true if the instance could be converted to a type, otherwise false + /// + public static bool CanConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return true; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + // we say yest to PSObjects + return true; + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + // we say yest to Hashtables/dictionaries + return true; + } + try + { + if (null != sourceValue.ToJsonString()) + { + return true; + } + } + catch + { + // Not one of our objects + } + try + { + string text = sourceValue.ToString()?.Trim(); + return true == text?.StartsWith("{") && true == text?.EndsWith("}") && Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonType.Object; + } + catch + { + // Doesn't look like it can be treated as JSON + } + return false; + } + + /// + /// Determines if the parameter can be converted to the parameter + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false + /// + public override bool CanConvertTo(object sourceValue, global::System.Type destinationType) => false; + + /// + /// Converts the parameter to the parameter using and + /// + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// + /// an instance of , or null if there is no suitable conversion. + /// + public override object ConvertFrom(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => ConvertFrom(sourceValue); + + /// + /// Converts the parameter to the parameter using and + /// + /// the value to convert into an instance of . + /// + /// an instance of , or null if there is no suitable conversion. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IChannelsListResult ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IChannelsListResult).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return ChannelsListResult.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return ChannelsListResult.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return ChannelsListResult.DeserializeFromDictionary(sourceValue); + } + return null; + } + + /// NotImplemented -- this will return null + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// will always return null. + public override object ConvertTo(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => null; + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/ChannelsListResult.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/ChannelsListResult.cs new file mode 100644 index 000000000000..cd664af7181d --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/ChannelsListResult.cs @@ -0,0 +1,68 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Extensions; + + /// Result of the List Channels operation + public partial class ChannelsListResult : + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IChannelsListResult, + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IChannelsListResultInternal + { + + /// Backing field for property. + private string _nextLink; + + /// A link for the next page of channels. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Owned)] + public string NextLink { get => this._nextLink; set => this._nextLink = value; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IChannel[] _value; + + /// A collection of Channels. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Owned)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IChannel[] Value { get => this._value; set => this._value = value; } + + /// Creates an new instance. + public ChannelsListResult() + { + + } + } + /// Result of the List Channels operation + public partial interface IChannelsListResult : + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IJsonSerializable + { + /// A link for the next page of channels. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"A link for the next page of channels.", + SerializedName = @"nextLink", + PossibleTypes = new [] { typeof(string) })] + string NextLink { get; set; } + /// A collection of Channels. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"A collection of Channels.", + SerializedName = @"value", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IChannel) })] + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IChannel[] Value { get; set; } + + } + /// Result of the List Channels operation + internal partial interface IChannelsListResultInternal + + { + /// A link for the next page of channels. + string NextLink { get; set; } + /// A collection of Channels. + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IChannel[] Value { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/ChannelsListResult.json.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/ChannelsListResult.json.cs new file mode 100644 index 000000000000..a241b831ed5b --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/ChannelsListResult.json.cs @@ -0,0 +1,116 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Extensions; + + /// Result of the List Channels operation + public partial class ChannelsListResult + { + + /// + /// AfterFromJson will be called after the json deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JsonNode that should be deserialized into this object. + + partial void AfterFromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json erialization has finished, allowing customization of the before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JSON container that the serialization result will be placed in. + + partial void AfterToJson(ref Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject container); + + /// + /// BeforeFromJson will be called before the json deserialization has commenced, allowing complete customization of + /// the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JsonNode that should be deserialized into this object. + /// Determines if the rest of the deserialization should be processed, or if the method should return + /// instantly. + + partial void BeforeFromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject json, ref bool returnNow); + + /// + /// BeforeToJson will be called before the json serialization has commenced, allowing complete customization of the + /// object before it is serialized. + /// If you wish to disable the default serialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JSON container that the serialization result will be placed in. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeToJson(ref Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject instance to deserialize from. + internal ChannelsListResult(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.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.EventGrid.Models.Api20211015Preview.IChannel) (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.Channel.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.EventGrid.Models.Api20211015Preview.IChannelsListResult. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IChannelsListResult. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IChannelsListResult FromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject json ? new ChannelsListResult(json) : null; + } + + /// + /// Serializes this instance of into a . + /// + /// The container to serialize this object into. If the caller + /// passes in null, a new instance will be created and returned to the caller. + /// Allows the caller to choose the depth of the serialization. See . + /// + /// a serialized instance of as a . + /// + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Runtime.Json.XNodeArray(); + foreach( var __x in this._value ) + { + AddIf(__x?.ToJson(null, serializationMode) ,__w.Add); + } + container.Add("value",__w); + } + AddIf( null != (((object)this._nextLink)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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/eventgrid/generated/api/Models/Api20211015Preview/ConnectionState.PowerShell.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/ConnectionState.PowerShell.cs new file mode 100644 index 000000000000..e4f3074ebea6 --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/ConnectionState.PowerShell.cs @@ -0,0 +1,158 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell; + + /// ConnectionState information. + [System.ComponentModel.TypeConverter(typeof(ConnectionStateTypeConverter))] + public partial class ConnectionState + { + + /// + /// AfterDeserializeDictionary will be called after the deserialization has finished, allowing customization of the + /// object before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Collections.IDictionary content that should be used. + + partial void AfterDeserializeDictionary(global::System.Collections.IDictionary content); + + /// + /// AfterDeserializePSObject will be called after the deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Management.Automation.PSObject content that should be used. + + partial void AfterDeserializePSObject(global::System.Management.Automation.PSObject content); + + /// + /// BeforeDeserializeDictionary will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Collections.IDictionary content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializeDictionary(global::System.Collections.IDictionary content, ref bool returnNow); + + /// + /// BeforeDeserializePSObject will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializePSObject(global::System.Management.Automation.PSObject content, ref bool returnNow); + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + internal ConnectionState(global::System.Collections.IDictionary content) + { + bool returnNow = false; + BeforeDeserializeDictionary(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("Status")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IConnectionStateInternal)this).Status = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.PersistedConnectionStatus?) content.GetValueForProperty("Status",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IConnectionStateInternal)this).Status, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.PersistedConnectionStatus.CreateFrom); + } + if (content.Contains("Description")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IConnectionStateInternal)this).Description = (string) content.GetValueForProperty("Description",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IConnectionStateInternal)this).Description, global::System.Convert.ToString); + } + if (content.Contains("ActionsRequired")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IConnectionStateInternal)this).ActionsRequired = (string) content.GetValueForProperty("ActionsRequired",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IConnectionStateInternal)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 ConnectionState(global::System.Management.Automation.PSObject content) + { + bool returnNow = false; + BeforeDeserializePSObject(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("Status")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IConnectionStateInternal)this).Status = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.PersistedConnectionStatus?) content.GetValueForProperty("Status",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IConnectionStateInternal)this).Status, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.PersistedConnectionStatus.CreateFrom); + } + if (content.Contains("Description")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IConnectionStateInternal)this).Description = (string) content.GetValueForProperty("Description",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IConnectionStateInternal)this).Description, global::System.Convert.ToString); + } + if (content.Contains("ActionsRequired")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IConnectionStateInternal)this).ActionsRequired = (string) content.GetValueForProperty("ActionsRequired",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IConnectionStateInternal)this).ActionsRequired, 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.EventGrid.Models.Api20211015Preview.IConnectionState DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new ConnectionState(content); + } + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IConnectionState DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new ConnectionState(content); + } + + /// + /// Creates a new instance of , deserializing the content from a json string. + /// + /// a string containing a JSON serialized instance of this model. + /// an instance of the model class. + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IConnectionState FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode.Parse(jsonText)); + + /// Serializes this instance to a json string. + + /// a containing this model serialized to JSON text. + public string ToJsonString() => ToJson(null, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// ConnectionState information. + [System.ComponentModel.TypeConverter(typeof(ConnectionStateTypeConverter))] + public partial interface IConnectionState + + { + + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/ConnectionState.TypeConverter.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/ConnectionState.TypeConverter.cs new file mode 100644 index 000000000000..962a87da0fc2 --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/ConnectionState.TypeConverter.cs @@ -0,0 +1,146 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class ConnectionStateTypeConverter : global::System.Management.Automation.PSTypeConverter + { + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false. + /// + public override bool CanConvertFrom(object sourceValue, global::System.Type destinationType) => CanConvertFrom(sourceValue); + + /// + /// Determines if the converter can convert the parameter to the . + /// + /// the instance to check if it can be converted to the type. + /// + /// true if the instance could be converted to a type, otherwise false + /// + public static bool CanConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return true; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + // we say yest to PSObjects + return true; + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + // we say yest to Hashtables/dictionaries + return true; + } + try + { + if (null != sourceValue.ToJsonString()) + { + return true; + } + } + catch + { + // Not one of our objects + } + try + { + string text = sourceValue.ToString()?.Trim(); + return true == text?.StartsWith("{") && true == text?.EndsWith("}") && Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonType.Object; + } + catch + { + // Doesn't look like it can be treated as JSON + } + return false; + } + + /// + /// Determines if the parameter can be converted to the parameter + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false + /// + public override bool CanConvertTo(object sourceValue, global::System.Type destinationType) => false; + + /// + /// Converts the parameter to the parameter using and + /// + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// + /// an instance of , or null if there is no suitable conversion. + /// + public override object ConvertFrom(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => ConvertFrom(sourceValue); + + /// + /// Converts the parameter to the parameter using and + /// + /// the value to convert into an instance of . + /// + /// an instance of , or null if there is no suitable conversion. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IConnectionState ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IConnectionState).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return ConnectionState.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return ConnectionState.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return ConnectionState.DeserializeFromDictionary(sourceValue); + } + return null; + } + + /// NotImplemented -- this will return null + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// will always return null. + public override object ConvertTo(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => null; + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/ConnectionState.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/ConnectionState.cs new file mode 100644 index 000000000000..6f717227aca7 --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/ConnectionState.cs @@ -0,0 +1,85 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Extensions; + + /// ConnectionState information. + public partial class ConnectionState : + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IConnectionState, + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IConnectionStateInternal + { + + /// Backing field for property. + private string _actionsRequired; + + /// Actions required (if any). + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Owned)] + public string ActionsRequired { get => this._actionsRequired; set => this._actionsRequired = value; } + + /// Backing field for property. + private string _description; + + /// Description of the connection state. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Owned)] + public string Description { get => this._description; set => this._description = value; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.PersistedConnectionStatus? _status; + + /// Status of the connection. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Owned)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.PersistedConnectionStatus? Status { get => this._status; set => this._status = value; } + + /// Creates an new instance. + public ConnectionState() + { + + } + } + /// ConnectionState information. + public partial interface IConnectionState : + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IJsonSerializable + { + /// Actions required (if any). + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Actions required (if any).", + SerializedName = @"actionsRequired", + PossibleTypes = new [] { typeof(string) })] + string ActionsRequired { get; set; } + /// Description of the connection state. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Description of the connection state.", + SerializedName = @"description", + PossibleTypes = new [] { typeof(string) })] + string Description { get; set; } + /// Status of the connection. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Status of the connection.", + SerializedName = @"status", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.PersistedConnectionStatus) })] + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.PersistedConnectionStatus? Status { get; set; } + + } + /// ConnectionState information. + internal partial interface IConnectionStateInternal + + { + /// Actions required (if any). + string ActionsRequired { get; set; } + /// Description of the connection state. + string Description { get; set; } + /// Status of the connection. + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.PersistedConnectionStatus? Status { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/ConnectionState.json.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/ConnectionState.json.cs new file mode 100644 index 000000000000..b4672f21139c --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/ConnectionState.json.cs @@ -0,0 +1,110 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Extensions; + + /// ConnectionState information. + public partial class ConnectionState + { + + /// + /// AfterFromJson will be called after the json deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JsonNode that should be deserialized into this object. + + partial void AfterFromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json erialization has finished, allowing customization of the before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JSON container that the serialization result will be placed in. + + partial void AfterToJson(ref Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject container); + + /// + /// BeforeFromJson will be called before the json deserialization has commenced, allowing complete customization of + /// the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JsonNode that should be deserialized into this object. + /// Determines if the rest of the deserialization should be processed, or if the method should return + /// instantly. + + partial void BeforeFromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject json, ref bool returnNow); + + /// + /// BeforeToJson will be called before the json serialization has commenced, allowing complete customization of the + /// object before it is serialized. + /// If you wish to disable the default serialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JSON container that the serialization result will be placed in. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeToJson(ref Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject instance to deserialize from. + internal ConnectionState(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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); + } + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IConnectionState. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IConnectionState. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IConnectionState FromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject json ? new ConnectionState(json) : null; + } + + /// + /// Serializes this instance of into a . + /// + /// The container to serialize this object into. If the caller + /// passes in null, a new instance will be created and returned to the caller. + /// Allows the caller to choose the depth of the serialization. See . + /// + /// a serialized instance of as a . + /// + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonString(this._status.ToString()) : null, "status" ,container.Add ); + AddIf( null != (((object)this._description)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonString(this._description.ToString()) : null, "description" ,container.Add ); + AddIf( null != (((object)this._actionsRequired)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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/eventgrid/generated/api/Models/Api20211015Preview/DeadLetterDestination.PowerShell.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/DeadLetterDestination.PowerShell.cs new file mode 100644 index 000000000000..f8d0be720e26 --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/DeadLetterDestination.PowerShell.cs @@ -0,0 +1,150 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell; + + /// + /// Information about the dead letter destination for an event subscription. To configure a deadletter destination, do not + /// directly instantiate an object of this class. Instead, instantiate an object of a derived class. Currently, StorageBlobDeadLetterDestination + /// is the only class that derives from this class. + /// + [System.ComponentModel.TypeConverter(typeof(DeadLetterDestinationTypeConverter))] + public partial class DeadLetterDestination + { + + /// + /// AfterDeserializeDictionary will be called after the deserialization has finished, allowing customization of the + /// object before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Collections.IDictionary content that should be used. + + partial void AfterDeserializeDictionary(global::System.Collections.IDictionary content); + + /// + /// AfterDeserializePSObject will be called after the deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Management.Automation.PSObject content that should be used. + + partial void AfterDeserializePSObject(global::System.Management.Automation.PSObject content); + + /// + /// BeforeDeserializeDictionary will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Collections.IDictionary content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializeDictionary(global::System.Collections.IDictionary content, ref bool returnNow); + + /// + /// BeforeDeserializePSObject will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializePSObject(global::System.Management.Automation.PSObject content, ref bool returnNow); + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + internal DeadLetterDestination(global::System.Collections.IDictionary content) + { + bool returnNow = false; + BeforeDeserializeDictionary(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("EndpointType")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDeadLetterDestinationInternal)this).EndpointType = (string) content.GetValueForProperty("EndpointType",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDeadLetterDestinationInternal)this).EndpointType, global::System.Convert.ToString); + } + AfterDeserializeDictionary(content); + } + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + internal DeadLetterDestination(global::System.Management.Automation.PSObject content) + { + bool returnNow = false; + BeforeDeserializePSObject(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("EndpointType")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDeadLetterDestinationInternal)this).EndpointType = (string) content.GetValueForProperty("EndpointType",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDeadLetterDestinationInternal)this).EndpointType, 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.EventGrid.Models.Api20211015Preview.IDeadLetterDestination DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new DeadLetterDestination(content); + } + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDeadLetterDestination DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new DeadLetterDestination(content); + } + + /// + /// Creates a new instance of , deserializing the content from a json string. + /// + /// a string containing a JSON serialized instance of this model. + /// an instance of the model class. + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDeadLetterDestination FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode.Parse(jsonText)); + + /// Serializes this instance to a json string. + + /// a containing this model serialized to JSON text. + public string ToJsonString() => ToJson(null, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// Information about the dead letter destination for an event subscription. To configure a deadletter destination, do not + /// directly instantiate an object of this class. Instead, instantiate an object of a derived class. Currently, StorageBlobDeadLetterDestination + /// is the only class that derives from this class. + [System.ComponentModel.TypeConverter(typeof(DeadLetterDestinationTypeConverter))] + public partial interface IDeadLetterDestination + + { + + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/DeadLetterDestination.TypeConverter.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/DeadLetterDestination.TypeConverter.cs new file mode 100644 index 000000000000..ed54ae7aeb09 --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/DeadLetterDestination.TypeConverter.cs @@ -0,0 +1,147 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class DeadLetterDestinationTypeConverter : global::System.Management.Automation.PSTypeConverter + { + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false. + /// + public override bool CanConvertFrom(object sourceValue, global::System.Type destinationType) => CanConvertFrom(sourceValue); + + /// + /// Determines if the converter can convert the parameter to the . + /// + /// the instance to check if it can be converted to the type. + /// + /// true if the instance could be converted to a type, otherwise false + /// + public static bool CanConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return true; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + // we say yest to PSObjects + return true; + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + // we say yest to Hashtables/dictionaries + return true; + } + try + { + if (null != sourceValue.ToJsonString()) + { + return true; + } + } + catch + { + // Not one of our objects + } + try + { + string text = sourceValue.ToString()?.Trim(); + return true == text?.StartsWith("{") && true == text?.EndsWith("}") && Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonType.Object; + } + catch + { + // Doesn't look like it can be treated as JSON + } + return false; + } + + /// + /// Determines if the parameter can be converted to the parameter + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false + /// + public override bool CanConvertTo(object sourceValue, global::System.Type destinationType) => false; + + /// + /// Converts the parameter to the parameter using and + /// + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// + /// an instance of , or null if there is no suitable conversion. + /// + public override object ConvertFrom(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => ConvertFrom(sourceValue); + + /// + /// Converts the parameter to the parameter using and + /// + /// the value to convert into an instance of . + /// + /// an instance of , or null if there is no suitable conversion. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDeadLetterDestination ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDeadLetterDestination).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return DeadLetterDestination.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return DeadLetterDestination.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return DeadLetterDestination.DeserializeFromDictionary(sourceValue); + } + return null; + } + + /// NotImplemented -- this will return null + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// will always return null. + public override object ConvertTo(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => null; + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/DeadLetterDestination.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/DeadLetterDestination.cs new file mode 100644 index 000000000000..1438d0faee95 --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/DeadLetterDestination.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.EventGrid.Models.Api20211015Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Extensions; + + /// + /// Information about the dead letter destination for an event subscription. To configure a deadletter destination, do not + /// directly instantiate an object of this class. Instead, instantiate an object of a derived class. Currently, StorageBlobDeadLetterDestination + /// is the only class that derives from this class. + /// + public partial class DeadLetterDestination : + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDeadLetterDestination, + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDeadLetterDestinationInternal + { + + /// Backing field for property. + private string _endpointType= @"StorageBlob"; + + /// Type of the endpoint for the dead letter destination + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Owned)] + public string EndpointType { get => this._endpointType; } + + /// Internal Acessors for EndpointType + string Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDeadLetterDestinationInternal.EndpointType { get => this._endpointType; set { {_endpointType = value;} } } + + /// Creates an new instance. + public DeadLetterDestination() + { + + } + } + /// Information about the dead letter destination for an event subscription. To configure a deadletter destination, do not + /// directly instantiate an object of this class. Instead, instantiate an object of a derived class. Currently, StorageBlobDeadLetterDestination + /// is the only class that derives from this class. + public partial interface IDeadLetterDestination : + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IJsonSerializable + { + /// Type of the endpoint for the dead letter destination + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = true, + ReadOnly = true, + Description = @"Type of the endpoint for the dead letter destination", + SerializedName = @"endpointType", + PossibleTypes = new [] { typeof(string) })] + string EndpointType { get; } + + } + /// Information about the dead letter destination for an event subscription. To configure a deadletter destination, do not + /// directly instantiate an object of this class. Instead, instantiate an object of a derived class. Currently, StorageBlobDeadLetterDestination + /// is the only class that derives from this class. + internal partial interface IDeadLetterDestinationInternal + + { + /// Type of the endpoint for the dead letter destination + string EndpointType { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/DeadLetterDestination.json.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/DeadLetterDestination.json.cs new file mode 100644 index 000000000000..15028b16370b --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/DeadLetterDestination.json.cs @@ -0,0 +1,125 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Extensions; + + /// + /// Information about the dead letter destination for an event subscription. To configure a deadletter destination, do not + /// directly instantiate an object of this class. Instead, instantiate an object of a derived class. Currently, StorageBlobDeadLetterDestination + /// is the only class that derives from this class. + /// + public partial class DeadLetterDestination + { + + /// + /// AfterFromJson will be called after the json deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JsonNode that should be deserialized into this object. + + partial void AfterFromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json erialization has finished, allowing customization of the before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JSON container that the serialization result will be placed in. + + partial void AfterToJson(ref Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject container); + + /// + /// BeforeFromJson will be called before the json deserialization has commenced, allowing complete customization of + /// the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JsonNode that should be deserialized into this object. + /// Determines if the rest of the deserialization should be processed, or if the method should return + /// instantly. + + partial void BeforeFromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject json, ref bool returnNow); + + /// + /// BeforeToJson will be called before the json serialization has commenced, allowing complete customization of the + /// object before it is serialized. + /// If you wish to disable the default serialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JSON container that the serialization result will be placed in. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeToJson(ref Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject instance to deserialize from. + internal DeadLetterDestination(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject json) + { + bool returnNow = false; + BeforeFromJson(json, ref returnNow); + if (returnNow) + { + return; + } + {_endpointType = If( json?.PropertyT("endpointType"), out var __jsonEndpointType) ? (string)__jsonEndpointType : (string)EndpointType;} + AfterFromJson(json); + } + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDeadLetterDestination. + /// Note: the Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDeadLetterDestination interface is polymorphic, + /// and the precise model class that will get deserialized is determined at runtime based on the payload. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDeadLetterDestination. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDeadLetterDestination FromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode node) + { + if (!(node is Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject json)) + { + return null; + } + // Polymorphic type -- select the appropriate constructor using the discriminator + + switch ( json.StringProperty("endpointType") ) + { + case "StorageBlob": + { + return new StorageBlobDeadLetterDestination(json); + } + } + return new DeadLetterDestination(json); + } + + /// + /// Serializes this instance of into a . + /// + /// The container to serialize this object into. If the caller + /// passes in null, a new instance will be created and returned to the caller. + /// Allows the caller to choose the depth of the serialization. See . + /// + /// a serialized instance of as a . + /// + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject(); + + bool returnNow = false; + BeforeToJson(ref container, ref returnNow); + if (returnNow) + { + return container; + } + AddIf( null != (((object)this._endpointType)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonString(this._endpointType.ToString()) : null, "endpointType" ,container.Add ); + AfterToJson(ref container); + return container; + } + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/DeadLetterWithResourceIdentity.PowerShell.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/DeadLetterWithResourceIdentity.PowerShell.cs new file mode 100644 index 000000000000..48baaea0516d --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/DeadLetterWithResourceIdentity.PowerShell.cs @@ -0,0 +1,176 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell; + + /// Information about the deadletter destination with resource identity. + [System.ComponentModel.TypeConverter(typeof(DeadLetterWithResourceIdentityTypeConverter))] + public partial class DeadLetterWithResourceIdentity + { + + /// + /// AfterDeserializeDictionary will be called after the deserialization has finished, allowing customization of the + /// object before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Collections.IDictionary content that should be used. + + partial void AfterDeserializeDictionary(global::System.Collections.IDictionary content); + + /// + /// AfterDeserializePSObject will be called after the deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Management.Automation.PSObject content that should be used. + + partial void AfterDeserializePSObject(global::System.Management.Automation.PSObject content); + + /// + /// BeforeDeserializeDictionary will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Collections.IDictionary content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializeDictionary(global::System.Collections.IDictionary content, ref bool returnNow); + + /// + /// BeforeDeserializePSObject will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializePSObject(global::System.Management.Automation.PSObject content, ref bool returnNow); + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + internal DeadLetterWithResourceIdentity(global::System.Collections.IDictionary content) + { + bool returnNow = false; + BeforeDeserializeDictionary(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("Identity")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDeadLetterWithResourceIdentityInternal)this).Identity = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionIdentity) content.GetValueForProperty("Identity",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDeadLetterWithResourceIdentityInternal)this).Identity, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.EventSubscriptionIdentityTypeConverter.ConvertFrom); + } + if (content.Contains("DeadLetterDestination")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDeadLetterWithResourceIdentityInternal)this).DeadLetterDestination = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDeadLetterDestination) content.GetValueForProperty("DeadLetterDestination",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDeadLetterWithResourceIdentityInternal)this).DeadLetterDestination, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.DeadLetterDestinationTypeConverter.ConvertFrom); + } + if (content.Contains("IdentityType")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDeadLetterWithResourceIdentityInternal)this).IdentityType = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EventSubscriptionIdentityType?) content.GetValueForProperty("IdentityType",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDeadLetterWithResourceIdentityInternal)this).IdentityType, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EventSubscriptionIdentityType.CreateFrom); + } + if (content.Contains("IdentityUserAssignedIdentity")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDeadLetterWithResourceIdentityInternal)this).IdentityUserAssignedIdentity = (string) content.GetValueForProperty("IdentityUserAssignedIdentity",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDeadLetterWithResourceIdentityInternal)this).IdentityUserAssignedIdentity, global::System.Convert.ToString); + } + if (content.Contains("DeadLetterDestinationEndpointType")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDeadLetterWithResourceIdentityInternal)this).DeadLetterDestinationEndpointType = (string) content.GetValueForProperty("DeadLetterDestinationEndpointType",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDeadLetterWithResourceIdentityInternal)this).DeadLetterDestinationEndpointType, global::System.Convert.ToString); + } + AfterDeserializeDictionary(content); + } + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + internal DeadLetterWithResourceIdentity(global::System.Management.Automation.PSObject content) + { + bool returnNow = false; + BeforeDeserializePSObject(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("Identity")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDeadLetterWithResourceIdentityInternal)this).Identity = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionIdentity) content.GetValueForProperty("Identity",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDeadLetterWithResourceIdentityInternal)this).Identity, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.EventSubscriptionIdentityTypeConverter.ConvertFrom); + } + if (content.Contains("DeadLetterDestination")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDeadLetterWithResourceIdentityInternal)this).DeadLetterDestination = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDeadLetterDestination) content.GetValueForProperty("DeadLetterDestination",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDeadLetterWithResourceIdentityInternal)this).DeadLetterDestination, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.DeadLetterDestinationTypeConverter.ConvertFrom); + } + if (content.Contains("IdentityType")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDeadLetterWithResourceIdentityInternal)this).IdentityType = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EventSubscriptionIdentityType?) content.GetValueForProperty("IdentityType",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDeadLetterWithResourceIdentityInternal)this).IdentityType, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EventSubscriptionIdentityType.CreateFrom); + } + if (content.Contains("IdentityUserAssignedIdentity")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDeadLetterWithResourceIdentityInternal)this).IdentityUserAssignedIdentity = (string) content.GetValueForProperty("IdentityUserAssignedIdentity",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDeadLetterWithResourceIdentityInternal)this).IdentityUserAssignedIdentity, global::System.Convert.ToString); + } + if (content.Contains("DeadLetterDestinationEndpointType")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDeadLetterWithResourceIdentityInternal)this).DeadLetterDestinationEndpointType = (string) content.GetValueForProperty("DeadLetterDestinationEndpointType",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDeadLetterWithResourceIdentityInternal)this).DeadLetterDestinationEndpointType, 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.EventGrid.Models.Api20211015Preview.IDeadLetterWithResourceIdentity DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new DeadLetterWithResourceIdentity(content); + } + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDeadLetterWithResourceIdentity DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new DeadLetterWithResourceIdentity(content); + } + + /// + /// Creates a new instance of , deserializing the content from a json string. + /// + /// a string containing a JSON serialized instance of this model. + /// an instance of the model class. + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDeadLetterWithResourceIdentity FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode.Parse(jsonText)); + + /// Serializes this instance to a json string. + + /// a containing this model serialized to JSON text. + public string ToJsonString() => ToJson(null, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// Information about the deadletter destination with resource identity. + [System.ComponentModel.TypeConverter(typeof(DeadLetterWithResourceIdentityTypeConverter))] + public partial interface IDeadLetterWithResourceIdentity + + { + + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/DeadLetterWithResourceIdentity.TypeConverter.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/DeadLetterWithResourceIdentity.TypeConverter.cs new file mode 100644 index 000000000000..b716dc25b982 --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/DeadLetterWithResourceIdentity.TypeConverter.cs @@ -0,0 +1,147 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class DeadLetterWithResourceIdentityTypeConverter : global::System.Management.Automation.PSTypeConverter + { + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false. + /// + public override bool CanConvertFrom(object sourceValue, global::System.Type destinationType) => CanConvertFrom(sourceValue); + + /// + /// Determines if the converter can convert the parameter to the . + /// + /// the instance to check if it can be converted to the type. + /// + /// true if the instance could be converted to a type, otherwise false + /// + public static bool CanConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return true; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + // we say yest to PSObjects + return true; + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + // we say yest to Hashtables/dictionaries + return true; + } + try + { + if (null != sourceValue.ToJsonString()) + { + return true; + } + } + catch + { + // Not one of our objects + } + try + { + string text = sourceValue.ToString()?.Trim(); + return true == text?.StartsWith("{") && true == text?.EndsWith("}") && Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonType.Object; + } + catch + { + // Doesn't look like it can be treated as JSON + } + return false; + } + + /// + /// Determines if the parameter can be converted to the parameter + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false + /// + public override bool CanConvertTo(object sourceValue, global::System.Type destinationType) => false; + + /// + /// Converts the parameter to the parameter using and + /// + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// + /// an instance of , or null if there is no suitable conversion. + /// + public override object ConvertFrom(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => ConvertFrom(sourceValue); + + /// + /// Converts the parameter to the parameter using and + /// + /// the value to convert into an instance of . + /// + /// an instance of , or null if there is no suitable conversion. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDeadLetterWithResourceIdentity ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDeadLetterWithResourceIdentity).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return DeadLetterWithResourceIdentity.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return DeadLetterWithResourceIdentity.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return DeadLetterWithResourceIdentity.DeserializeFromDictionary(sourceValue); + } + return null; + } + + /// NotImplemented -- this will return null + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// will always return null. + public override object ConvertTo(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => null; + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/DeadLetterWithResourceIdentity.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/DeadLetterWithResourceIdentity.cs new file mode 100644 index 000000000000..8eaa6fa6e2f0 --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/DeadLetterWithResourceIdentity.cs @@ -0,0 +1,120 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Extensions; + + /// Information about the deadletter destination with resource identity. + public partial class DeadLetterWithResourceIdentity : + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDeadLetterWithResourceIdentity, + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDeadLetterWithResourceIdentityInternal + { + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDeadLetterDestination _deadLetterDestination; + + /// + /// Information about the destination where events have to be delivered for the event subscription. + /// Uses the managed identity setup on the parent resource (namely, topic or domain) to acquire the authentication tokens + /// being used during delivery / dead-lettering. + /// + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Owned)] + internal Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDeadLetterDestination DeadLetterDestination { get => (this._deadLetterDestination = this._deadLetterDestination ?? new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.DeadLetterDestination()); set => this._deadLetterDestination = value; } + + /// Type of the endpoint for the dead letter destination + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Inlined)] + public string DeadLetterDestinationEndpointType { get => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDeadLetterDestinationInternal)DeadLetterDestination).EndpointType; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionIdentity _identity; + + /// The identity to use when dead-lettering events. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Owned)] + internal Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionIdentity Identity { get => (this._identity = this._identity ?? new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.EventSubscriptionIdentity()); set => this._identity = value; } + + /// + /// The type of managed identity used. The type 'SystemAssigned, UserAssigned' includes both an implicitly created identity + /// and a set of user-assigned identities. The type 'None' will remove any identity. + /// + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Inlined)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EventSubscriptionIdentityType? IdentityType { get => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionIdentityInternal)Identity).Type; set => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionIdentityInternal)Identity).Type = value ?? ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EventSubscriptionIdentityType)""); } + + /// The user identity associated with the resource. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Inlined)] + public string IdentityUserAssignedIdentity { get => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionIdentityInternal)Identity).UserAssignedIdentity; set => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionIdentityInternal)Identity).UserAssignedIdentity = value ?? null; } + + /// Internal Acessors for DeadLetterDestination + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDeadLetterDestination Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDeadLetterWithResourceIdentityInternal.DeadLetterDestination { get => (this._deadLetterDestination = this._deadLetterDestination ?? new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.DeadLetterDestination()); set { {_deadLetterDestination = value;} } } + + /// Internal Acessors for DeadLetterDestinationEndpointType + string Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDeadLetterWithResourceIdentityInternal.DeadLetterDestinationEndpointType { get => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDeadLetterDestinationInternal)DeadLetterDestination).EndpointType; set => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDeadLetterDestinationInternal)DeadLetterDestination).EndpointType = value; } + + /// Internal Acessors for Identity + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionIdentity Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDeadLetterWithResourceIdentityInternal.Identity { get => (this._identity = this._identity ?? new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.EventSubscriptionIdentity()); set { {_identity = value;} } } + + /// Creates an new instance. + public DeadLetterWithResourceIdentity() + { + + } + } + /// Information about the deadletter destination with resource identity. + public partial interface IDeadLetterWithResourceIdentity : + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IJsonSerializable + { + /// Type of the endpoint for the dead letter destination + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"Type of the endpoint for the dead letter destination", + SerializedName = @"endpointType", + PossibleTypes = new [] { typeof(string) })] + string DeadLetterDestinationEndpointType { get; } + /// + /// The type of managed identity used. The type 'SystemAssigned, UserAssigned' includes both an implicitly created identity + /// and a set of user-assigned identities. The type 'None' will remove any identity. + /// + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The type of managed identity used. The type 'SystemAssigned, UserAssigned' includes both an implicitly created identity and a set of user-assigned identities. The type 'None' will remove any identity.", + SerializedName = @"type", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EventSubscriptionIdentityType) })] + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EventSubscriptionIdentityType? IdentityType { get; set; } + /// The user identity associated with the resource. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The user identity associated with the resource.", + SerializedName = @"userAssignedIdentity", + PossibleTypes = new [] { typeof(string) })] + string IdentityUserAssignedIdentity { get; set; } + + } + /// Information about the deadletter destination with resource identity. + internal partial interface IDeadLetterWithResourceIdentityInternal + + { + /// + /// Information about the destination where events have to be delivered for the event subscription. + /// Uses the managed identity setup on the parent resource (namely, topic or domain) to acquire the authentication tokens + /// being used during delivery / dead-lettering. + /// + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDeadLetterDestination DeadLetterDestination { get; set; } + /// Type of the endpoint for the dead letter destination + string DeadLetterDestinationEndpointType { get; set; } + /// The identity to use when dead-lettering events. + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionIdentity Identity { get; set; } + /// + /// The type of managed identity used. The type 'SystemAssigned, UserAssigned' includes both an implicitly created identity + /// and a set of user-assigned identities. The type 'None' will remove any identity. + /// + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EventSubscriptionIdentityType? IdentityType { get; set; } + /// The user identity associated with the resource. + string IdentityUserAssignedIdentity { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/DeadLetterWithResourceIdentity.json.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/DeadLetterWithResourceIdentity.json.cs new file mode 100644 index 000000000000..ca9b8ba539f0 --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/DeadLetterWithResourceIdentity.json.cs @@ -0,0 +1,108 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Extensions; + + /// Information about the deadletter destination with resource identity. + public partial class DeadLetterWithResourceIdentity + { + + /// + /// AfterFromJson will be called after the json deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JsonNode that should be deserialized into this object. + + partial void AfterFromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json erialization has finished, allowing customization of the before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JSON container that the serialization result will be placed in. + + partial void AfterToJson(ref Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject container); + + /// + /// BeforeFromJson will be called before the json deserialization has commenced, allowing complete customization of + /// the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JsonNode that should be deserialized into this object. + /// Determines if the rest of the deserialization should be processed, or if the method should return + /// instantly. + + partial void BeforeFromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject json, ref bool returnNow); + + /// + /// BeforeToJson will be called before the json serialization has commenced, allowing complete customization of the + /// object before it is serialized. + /// If you wish to disable the default serialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JSON container that the serialization result will be placed in. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeToJson(ref Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject instance to deserialize from. + internal DeadLetterWithResourceIdentity(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Models.Api20211015Preview.EventSubscriptionIdentity.FromJson(__jsonIdentity) : Identity;} + {_deadLetterDestination = If( json?.PropertyT("deadLetterDestination"), out var __jsonDeadLetterDestination) ? Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.DeadLetterDestination.FromJson(__jsonDeadLetterDestination) : DeadLetterDestination;} + AfterFromJson(json); + } + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDeadLetterWithResourceIdentity. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDeadLetterWithResourceIdentity. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDeadLetterWithResourceIdentity FromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject json ? new DeadLetterWithResourceIdentity(json) : null; + } + + /// + /// Serializes this instance of into a . + /// + /// The container to serialize this object into. If the caller + /// passes in null, a new instance will be created and returned to the caller. + /// Allows the caller to choose the depth of the serialization. See . + /// + /// a serialized instance of as a . + /// + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject(); + + bool returnNow = false; + BeforeToJson(ref container, ref returnNow); + if (returnNow) + { + return container; + } + AddIf( null != this._identity ? (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode) this._identity.ToJson(null,serializationMode) : null, "identity" ,container.Add ); + AddIf( null != this._deadLetterDestination ? (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode) this._deadLetterDestination.ToJson(null,serializationMode) : null, "deadLetterDestination" ,container.Add ); + AfterToJson(ref container); + return container; + } + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/DeliveryAttributeListResult.PowerShell.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/DeliveryAttributeListResult.PowerShell.cs new file mode 100644 index 000000000000..dcadf58ab309 --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/DeliveryAttributeListResult.PowerShell.cs @@ -0,0 +1,144 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell; + + /// Result of the Get delivery attributes operation. + [System.ComponentModel.TypeConverter(typeof(DeliveryAttributeListResultTypeConverter))] + public partial class DeliveryAttributeListResult + { + + /// + /// AfterDeserializeDictionary will be called after the deserialization has finished, allowing customization of the + /// object before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Collections.IDictionary content that should be used. + + partial void AfterDeserializeDictionary(global::System.Collections.IDictionary content); + + /// + /// AfterDeserializePSObject will be called after the deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Management.Automation.PSObject content that should be used. + + partial void AfterDeserializePSObject(global::System.Management.Automation.PSObject content); + + /// + /// BeforeDeserializeDictionary will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Collections.IDictionary content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializeDictionary(global::System.Collections.IDictionary content, ref bool returnNow); + + /// + /// BeforeDeserializePSObject will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializePSObject(global::System.Management.Automation.PSObject content, ref bool returnNow); + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + internal DeliveryAttributeListResult(global::System.Collections.IDictionary content) + { + bool returnNow = false; + BeforeDeserializeDictionary(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("Value")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDeliveryAttributeListResultInternal)this).Value = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDeliveryAttributeMapping[]) content.GetValueForProperty("Value",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDeliveryAttributeListResultInternal)this).Value, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.DeliveryAttributeMappingTypeConverter.ConvertFrom)); + } + AfterDeserializeDictionary(content); + } + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + internal DeliveryAttributeListResult(global::System.Management.Automation.PSObject content) + { + bool returnNow = false; + BeforeDeserializePSObject(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("Value")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDeliveryAttributeListResultInternal)this).Value = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDeliveryAttributeMapping[]) content.GetValueForProperty("Value",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDeliveryAttributeListResultInternal)this).Value, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.DeliveryAttributeMappingTypeConverter.ConvertFrom)); + } + AfterDeserializePSObject(content); + } + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDeliveryAttributeListResult DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new DeliveryAttributeListResult(content); + } + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDeliveryAttributeListResult DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new DeliveryAttributeListResult(content); + } + + /// + /// Creates a new instance of , deserializing the content from a json string. + /// + /// a string containing a JSON serialized instance of this model. + /// an instance of the model class. + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDeliveryAttributeListResult FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode.Parse(jsonText)); + + /// Serializes this instance to a json string. + + /// a containing this model serialized to JSON text. + public string ToJsonString() => ToJson(null, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// Result of the Get delivery attributes operation. + [System.ComponentModel.TypeConverter(typeof(DeliveryAttributeListResultTypeConverter))] + public partial interface IDeliveryAttributeListResult + + { + + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/DeliveryAttributeListResult.TypeConverter.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/DeliveryAttributeListResult.TypeConverter.cs new file mode 100644 index 000000000000..4b71086f2a42 --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/DeliveryAttributeListResult.TypeConverter.cs @@ -0,0 +1,147 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class DeliveryAttributeListResultTypeConverter : global::System.Management.Automation.PSTypeConverter + { + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false. + /// + public override bool CanConvertFrom(object sourceValue, global::System.Type destinationType) => CanConvertFrom(sourceValue); + + /// + /// Determines if the converter can convert the parameter to the . + /// + /// the instance to check if it can be converted to the type. + /// + /// true if the instance could be converted to a type, otherwise false + /// + public static bool CanConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return true; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + // we say yest to PSObjects + return true; + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + // we say yest to Hashtables/dictionaries + return true; + } + try + { + if (null != sourceValue.ToJsonString()) + { + return true; + } + } + catch + { + // Not one of our objects + } + try + { + string text = sourceValue.ToString()?.Trim(); + return true == text?.StartsWith("{") && true == text?.EndsWith("}") && Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonType.Object; + } + catch + { + // Doesn't look like it can be treated as JSON + } + return false; + } + + /// + /// Determines if the parameter can be converted to the parameter + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false + /// + public override bool CanConvertTo(object sourceValue, global::System.Type destinationType) => false; + + /// + /// Converts the parameter to the parameter using and + /// + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// + /// an instance of , or null if there is no suitable conversion. + /// + public override object ConvertFrom(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => ConvertFrom(sourceValue); + + /// + /// Converts the parameter to the parameter using and + /// + /// the value to convert into an instance of . + /// + /// an instance of , or null if there is no suitable conversion. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDeliveryAttributeListResult ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDeliveryAttributeListResult).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return DeliveryAttributeListResult.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return DeliveryAttributeListResult.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return DeliveryAttributeListResult.DeserializeFromDictionary(sourceValue); + } + return null; + } + + /// NotImplemented -- this will return null + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// will always return null. + public override object ConvertTo(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => null; + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/DeliveryAttributeListResult.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/DeliveryAttributeListResult.cs new file mode 100644 index 000000000000..fa8f64426cb6 --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/DeliveryAttributeListResult.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.EventGrid.Models.Api20211015Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Extensions; + + /// Result of the Get delivery attributes operation. + public partial class DeliveryAttributeListResult : + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDeliveryAttributeListResult, + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDeliveryAttributeListResultInternal + { + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDeliveryAttributeMapping[] _value; + + /// A collection of DeliveryAttributeMapping + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Owned)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDeliveryAttributeMapping[] Value { get => this._value; set => this._value = value; } + + /// Creates an new instance. + public DeliveryAttributeListResult() + { + + } + } + /// Result of the Get delivery attributes operation. + public partial interface IDeliveryAttributeListResult : + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IJsonSerializable + { + /// A collection of DeliveryAttributeMapping + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"A collection of DeliveryAttributeMapping", + SerializedName = @"value", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDeliveryAttributeMapping) })] + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDeliveryAttributeMapping[] Value { get; set; } + + } + /// Result of the Get delivery attributes operation. + internal partial interface IDeliveryAttributeListResultInternal + + { + /// A collection of DeliveryAttributeMapping + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDeliveryAttributeMapping[] Value { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/DeliveryAttributeListResult.json.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/DeliveryAttributeListResult.json.cs new file mode 100644 index 000000000000..e6d4f9832977 --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/DeliveryAttributeListResult.json.cs @@ -0,0 +1,114 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Extensions; + + /// Result of the Get delivery attributes operation. + public partial class DeliveryAttributeListResult + { + + /// + /// AfterFromJson will be called after the json deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JsonNode that should be deserialized into this object. + + partial void AfterFromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json erialization has finished, allowing customization of the before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JSON container that the serialization result will be placed in. + + partial void AfterToJson(ref Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject container); + + /// + /// BeforeFromJson will be called before the json deserialization has commenced, allowing complete customization of + /// the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JsonNode that should be deserialized into this object. + /// Determines if the rest of the deserialization should be processed, or if the method should return + /// instantly. + + partial void BeforeFromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject json, ref bool returnNow); + + /// + /// BeforeToJson will be called before the json serialization has commenced, allowing complete customization of the + /// object before it is serialized. + /// If you wish to disable the default serialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JSON container that the serialization result will be placed in. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeToJson(ref Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject instance to deserialize from. + internal DeliveryAttributeListResult(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.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.EventGrid.Models.Api20211015Preview.IDeliveryAttributeMapping) (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.DeliveryAttributeMapping.FromJson(__u) )) ))() : null : Value;} + AfterFromJson(json); + } + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDeliveryAttributeListResult. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDeliveryAttributeListResult. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDeliveryAttributeListResult FromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject json ? new DeliveryAttributeListResult(json) : null; + } + + /// + /// Serializes this instance of into a . + /// + /// The container to serialize this object into. If the caller + /// passes in null, a new instance will be created and returned to the caller. + /// Allows the caller to choose the depth of the serialization. See . + /// + /// a serialized instance of as a . + /// + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Runtime.Json.XNodeArray(); + foreach( var __x in this._value ) + { + AddIf(__x?.ToJson(null, serializationMode) ,__w.Add); + } + container.Add("value",__w); + } + AfterToJson(ref container); + return container; + } + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/DeliveryAttributeMapping.PowerShell.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/DeliveryAttributeMapping.PowerShell.cs new file mode 100644 index 000000000000..9df78fce8f63 --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/DeliveryAttributeMapping.PowerShell.cs @@ -0,0 +1,152 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell; + + /// Delivery attribute mapping details. + [System.ComponentModel.TypeConverter(typeof(DeliveryAttributeMappingTypeConverter))] + public partial class DeliveryAttributeMapping + { + + /// + /// AfterDeserializeDictionary will be called after the deserialization has finished, allowing customization of the + /// object before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Collections.IDictionary content that should be used. + + partial void AfterDeserializeDictionary(global::System.Collections.IDictionary content); + + /// + /// AfterDeserializePSObject will be called after the deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Management.Automation.PSObject content that should be used. + + partial void AfterDeserializePSObject(global::System.Management.Automation.PSObject content); + + /// + /// BeforeDeserializeDictionary will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Collections.IDictionary content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializeDictionary(global::System.Collections.IDictionary content, ref bool returnNow); + + /// + /// BeforeDeserializePSObject will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializePSObject(global::System.Management.Automation.PSObject content, ref bool returnNow); + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + internal DeliveryAttributeMapping(global::System.Collections.IDictionary content) + { + bool returnNow = false; + BeforeDeserializeDictionary(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("Name")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDeliveryAttributeMappingInternal)this).Name = (string) content.GetValueForProperty("Name",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDeliveryAttributeMappingInternal)this).Name, global::System.Convert.ToString); + } + if (content.Contains("Type")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDeliveryAttributeMappingInternal)this).Type = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.DeliveryAttributeMappingType) content.GetValueForProperty("Type",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDeliveryAttributeMappingInternal)this).Type, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.DeliveryAttributeMappingType.CreateFrom); + } + AfterDeserializeDictionary(content); + } + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + internal DeliveryAttributeMapping(global::System.Management.Automation.PSObject content) + { + bool returnNow = false; + BeforeDeserializePSObject(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("Name")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDeliveryAttributeMappingInternal)this).Name = (string) content.GetValueForProperty("Name",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDeliveryAttributeMappingInternal)this).Name, global::System.Convert.ToString); + } + if (content.Contains("Type")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDeliveryAttributeMappingInternal)this).Type = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.DeliveryAttributeMappingType) content.GetValueForProperty("Type",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDeliveryAttributeMappingInternal)this).Type, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.DeliveryAttributeMappingType.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.EventGrid.Models.Api20211015Preview.IDeliveryAttributeMapping DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new DeliveryAttributeMapping(content); + } + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDeliveryAttributeMapping DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new DeliveryAttributeMapping(content); + } + + /// + /// Creates a new instance of , deserializing the content from a json string. + /// + /// a string containing a JSON serialized instance of this model. + /// an instance of the model class. + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDeliveryAttributeMapping FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode.Parse(jsonText)); + + /// Serializes this instance to a json string. + + /// a containing this model serialized to JSON text. + public string ToJsonString() => ToJson(null, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// Delivery attribute mapping details. + [System.ComponentModel.TypeConverter(typeof(DeliveryAttributeMappingTypeConverter))] + public partial interface IDeliveryAttributeMapping + + { + + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/DeliveryAttributeMapping.TypeConverter.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/DeliveryAttributeMapping.TypeConverter.cs new file mode 100644 index 000000000000..3cc3b651445a --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/DeliveryAttributeMapping.TypeConverter.cs @@ -0,0 +1,147 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class DeliveryAttributeMappingTypeConverter : global::System.Management.Automation.PSTypeConverter + { + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false. + /// + public override bool CanConvertFrom(object sourceValue, global::System.Type destinationType) => CanConvertFrom(sourceValue); + + /// + /// Determines if the converter can convert the parameter to the . + /// + /// the instance to check if it can be converted to the type. + /// + /// true if the instance could be converted to a type, otherwise false + /// + public static bool CanConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return true; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + // we say yest to PSObjects + return true; + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + // we say yest to Hashtables/dictionaries + return true; + } + try + { + if (null != sourceValue.ToJsonString()) + { + return true; + } + } + catch + { + // Not one of our objects + } + try + { + string text = sourceValue.ToString()?.Trim(); + return true == text?.StartsWith("{") && true == text?.EndsWith("}") && Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonType.Object; + } + catch + { + // Doesn't look like it can be treated as JSON + } + return false; + } + + /// + /// Determines if the parameter can be converted to the parameter + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false + /// + public override bool CanConvertTo(object sourceValue, global::System.Type destinationType) => false; + + /// + /// Converts the parameter to the parameter using and + /// + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// + /// an instance of , or null if there is no suitable conversion. + /// + public override object ConvertFrom(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => ConvertFrom(sourceValue); + + /// + /// Converts the parameter to the parameter using and + /// + /// the value to convert into an instance of . + /// + /// an instance of , or null if there is no suitable conversion. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDeliveryAttributeMapping ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDeliveryAttributeMapping).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return DeliveryAttributeMapping.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return DeliveryAttributeMapping.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return DeliveryAttributeMapping.DeserializeFromDictionary(sourceValue); + } + return null; + } + + /// NotImplemented -- this will return null + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// will always return null. + public override object ConvertTo(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => null; + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/DeliveryAttributeMapping.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/DeliveryAttributeMapping.cs new file mode 100644 index 000000000000..47672ce6362a --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/DeliveryAttributeMapping.cs @@ -0,0 +1,68 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Extensions; + + /// Delivery attribute mapping details. + public partial class DeliveryAttributeMapping : + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDeliveryAttributeMapping, + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDeliveryAttributeMappingInternal + { + + /// Backing field for property. + private string _name; + + /// Name of the delivery attribute or header. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Owned)] + public string Name { get => this._name; set => this._name = value; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.DeliveryAttributeMappingType _type; + + /// Type of the delivery attribute or header name. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Owned)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.DeliveryAttributeMappingType Type { get => this._type; set => this._type = value; } + + /// Creates an new instance. + public DeliveryAttributeMapping() + { + + } + } + /// Delivery attribute mapping details. + public partial interface IDeliveryAttributeMapping : + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IJsonSerializable + { + /// Name of the delivery attribute or header. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Name of the delivery attribute or header.", + SerializedName = @"name", + PossibleTypes = new [] { typeof(string) })] + string Name { get; set; } + /// Type of the delivery attribute or header name. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Type of the delivery attribute or header name.", + SerializedName = @"type", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.DeliveryAttributeMappingType) })] + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.DeliveryAttributeMappingType Type { get; set; } + + } + /// Delivery attribute mapping details. + internal partial interface IDeliveryAttributeMappingInternal + + { + /// Name of the delivery attribute or header. + string Name { get; set; } + /// Type of the delivery attribute or header name. + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.DeliveryAttributeMappingType Type { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/DeliveryAttributeMapping.json.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/DeliveryAttributeMapping.json.cs new file mode 100644 index 000000000000..b2cfbce79745 --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/DeliveryAttributeMapping.json.cs @@ -0,0 +1,127 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Extensions; + + /// Delivery attribute mapping details. + public partial class DeliveryAttributeMapping + { + + /// + /// AfterFromJson will be called after the json deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JsonNode that should be deserialized into this object. + + partial void AfterFromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json erialization has finished, allowing customization of the before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JSON container that the serialization result will be placed in. + + partial void AfterToJson(ref Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject container); + + /// + /// BeforeFromJson will be called before the json deserialization has commenced, allowing complete customization of + /// the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JsonNode that should be deserialized into this object. + /// Determines if the rest of the deserialization should be processed, or if the method should return + /// instantly. + + partial void BeforeFromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject json, ref bool returnNow); + + /// + /// BeforeToJson will be called before the json serialization has commenced, allowing complete customization of the + /// object before it is serialized. + /// If you wish to disable the default serialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JSON container that the serialization result will be placed in. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeToJson(ref Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject instance to deserialize from. + internal DeliveryAttributeMapping(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject json) + { + bool returnNow = false; + BeforeFromJson(json, ref returnNow); + if (returnNow) + { + return; + } + {_name = If( json?.PropertyT("name"), out var __jsonName) ? (string)__jsonName : (string)Name;} + {_type = If( json?.PropertyT("type"), out var __jsonType) ? (string)__jsonType : (string)Type;} + AfterFromJson(json); + } + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDeliveryAttributeMapping. + /// Note: the Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDeliveryAttributeMapping interface is + /// polymorphic, and the precise model class that will get deserialized is determined at runtime based on the payload. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDeliveryAttributeMapping. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDeliveryAttributeMapping FromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode node) + { + if (!(node is Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject json)) + { + return null; + } + // Polymorphic type -- select the appropriate constructor using the discriminator + + switch ( json.StringProperty("type") ) + { + case "Static": + { + return new StaticDeliveryAttributeMapping(json); + } + case "Dynamic": + { + return new DynamicDeliveryAttributeMapping(json); + } + } + return new DeliveryAttributeMapping(json); + } + + /// + /// Serializes this instance of into a . + /// + /// The container to serialize this object into. If the caller + /// passes in null, a new instance will be created and returned to the caller. + /// Allows the caller to choose the depth of the serialization. See . + /// + /// a serialized instance of as a . + /// + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonString(this._name.ToString()) : null, "name" ,container.Add ); + AddIf( null != (((object)this._type)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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/eventgrid/generated/api/Models/Api20211015Preview/DeliveryWithResourceIdentity.PowerShell.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/DeliveryWithResourceIdentity.PowerShell.cs new file mode 100644 index 000000000000..ada51fdfb495 --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/DeliveryWithResourceIdentity.PowerShell.cs @@ -0,0 +1,178 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell; + + /// + /// Information about the delivery for an event subscription with resource identity. + /// + [System.ComponentModel.TypeConverter(typeof(DeliveryWithResourceIdentityTypeConverter))] + public partial class DeliveryWithResourceIdentity + { + + /// + /// AfterDeserializeDictionary will be called after the deserialization has finished, allowing customization of the + /// object before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Collections.IDictionary content that should be used. + + partial void AfterDeserializeDictionary(global::System.Collections.IDictionary content); + + /// + /// AfterDeserializePSObject will be called after the deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Management.Automation.PSObject content that should be used. + + partial void AfterDeserializePSObject(global::System.Management.Automation.PSObject content); + + /// + /// BeforeDeserializeDictionary will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Collections.IDictionary content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializeDictionary(global::System.Collections.IDictionary content, ref bool returnNow); + + /// + /// BeforeDeserializePSObject will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializePSObject(global::System.Management.Automation.PSObject content, ref bool returnNow); + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + internal DeliveryWithResourceIdentity(global::System.Collections.IDictionary content) + { + bool returnNow = false; + BeforeDeserializeDictionary(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("Identity")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDeliveryWithResourceIdentityInternal)this).Identity = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionIdentity) content.GetValueForProperty("Identity",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDeliveryWithResourceIdentityInternal)this).Identity, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.EventSubscriptionIdentityTypeConverter.ConvertFrom); + } + if (content.Contains("Destination")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDeliveryWithResourceIdentityInternal)this).Destination = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionDestination) content.GetValueForProperty("Destination",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDeliveryWithResourceIdentityInternal)this).Destination, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.EventSubscriptionDestinationTypeConverter.ConvertFrom); + } + if (content.Contains("DestinationEndpointType")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDeliveryWithResourceIdentityInternal)this).DestinationEndpointType = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EndpointType) content.GetValueForProperty("DestinationEndpointType",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDeliveryWithResourceIdentityInternal)this).DestinationEndpointType, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EndpointType.CreateFrom); + } + if (content.Contains("IdentityType")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDeliveryWithResourceIdentityInternal)this).IdentityType = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EventSubscriptionIdentityType?) content.GetValueForProperty("IdentityType",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDeliveryWithResourceIdentityInternal)this).IdentityType, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EventSubscriptionIdentityType.CreateFrom); + } + if (content.Contains("IdentityUserAssignedIdentity")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDeliveryWithResourceIdentityInternal)this).IdentityUserAssignedIdentity = (string) content.GetValueForProperty("IdentityUserAssignedIdentity",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDeliveryWithResourceIdentityInternal)this).IdentityUserAssignedIdentity, global::System.Convert.ToString); + } + AfterDeserializeDictionary(content); + } + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + internal DeliveryWithResourceIdentity(global::System.Management.Automation.PSObject content) + { + bool returnNow = false; + BeforeDeserializePSObject(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("Identity")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDeliveryWithResourceIdentityInternal)this).Identity = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionIdentity) content.GetValueForProperty("Identity",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDeliveryWithResourceIdentityInternal)this).Identity, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.EventSubscriptionIdentityTypeConverter.ConvertFrom); + } + if (content.Contains("Destination")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDeliveryWithResourceIdentityInternal)this).Destination = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionDestination) content.GetValueForProperty("Destination",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDeliveryWithResourceIdentityInternal)this).Destination, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.EventSubscriptionDestinationTypeConverter.ConvertFrom); + } + if (content.Contains("DestinationEndpointType")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDeliveryWithResourceIdentityInternal)this).DestinationEndpointType = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EndpointType) content.GetValueForProperty("DestinationEndpointType",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDeliveryWithResourceIdentityInternal)this).DestinationEndpointType, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EndpointType.CreateFrom); + } + if (content.Contains("IdentityType")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDeliveryWithResourceIdentityInternal)this).IdentityType = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EventSubscriptionIdentityType?) content.GetValueForProperty("IdentityType",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDeliveryWithResourceIdentityInternal)this).IdentityType, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EventSubscriptionIdentityType.CreateFrom); + } + if (content.Contains("IdentityUserAssignedIdentity")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDeliveryWithResourceIdentityInternal)this).IdentityUserAssignedIdentity = (string) content.GetValueForProperty("IdentityUserAssignedIdentity",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDeliveryWithResourceIdentityInternal)this).IdentityUserAssignedIdentity, 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.EventGrid.Models.Api20211015Preview.IDeliveryWithResourceIdentity DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new DeliveryWithResourceIdentity(content); + } + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDeliveryWithResourceIdentity DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new DeliveryWithResourceIdentity(content); + } + + /// + /// Creates a new instance of , deserializing the content from a json string. + /// + /// a string containing a JSON serialized instance of this model. + /// an instance of the model class. + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDeliveryWithResourceIdentity FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode.Parse(jsonText)); + + /// Serializes this instance to a json string. + + /// a containing this model serialized to JSON text. + public string ToJsonString() => ToJson(null, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// Information about the delivery for an event subscription with resource identity. + [System.ComponentModel.TypeConverter(typeof(DeliveryWithResourceIdentityTypeConverter))] + public partial interface IDeliveryWithResourceIdentity + + { + + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/DeliveryWithResourceIdentity.TypeConverter.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/DeliveryWithResourceIdentity.TypeConverter.cs new file mode 100644 index 000000000000..da8b16937f8f --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/DeliveryWithResourceIdentity.TypeConverter.cs @@ -0,0 +1,147 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class DeliveryWithResourceIdentityTypeConverter : global::System.Management.Automation.PSTypeConverter + { + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false. + /// + public override bool CanConvertFrom(object sourceValue, global::System.Type destinationType) => CanConvertFrom(sourceValue); + + /// + /// Determines if the converter can convert the parameter to the . + /// + /// the instance to check if it can be converted to the type. + /// + /// true if the instance could be converted to a type, otherwise false + /// + public static bool CanConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return true; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + // we say yest to PSObjects + return true; + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + // we say yest to Hashtables/dictionaries + return true; + } + try + { + if (null != sourceValue.ToJsonString()) + { + return true; + } + } + catch + { + // Not one of our objects + } + try + { + string text = sourceValue.ToString()?.Trim(); + return true == text?.StartsWith("{") && true == text?.EndsWith("}") && Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonType.Object; + } + catch + { + // Doesn't look like it can be treated as JSON + } + return false; + } + + /// + /// Determines if the parameter can be converted to the parameter + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false + /// + public override bool CanConvertTo(object sourceValue, global::System.Type destinationType) => false; + + /// + /// Converts the parameter to the parameter using and + /// + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// + /// an instance of , or null if there is no suitable conversion. + /// + public override object ConvertFrom(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => ConvertFrom(sourceValue); + + /// + /// Converts the parameter to the parameter using and + /// + /// the value to convert into an instance of . + /// + /// an instance of , or null if there is no suitable conversion. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDeliveryWithResourceIdentity ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDeliveryWithResourceIdentity).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return DeliveryWithResourceIdentity.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return DeliveryWithResourceIdentity.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return DeliveryWithResourceIdentity.DeserializeFromDictionary(sourceValue); + } + return null; + } + + /// NotImplemented -- this will return null + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// will always return null. + public override object ConvertTo(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => null; + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/DeliveryWithResourceIdentity.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/DeliveryWithResourceIdentity.cs new file mode 100644 index 000000000000..af2c167b8314 --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/DeliveryWithResourceIdentity.cs @@ -0,0 +1,117 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Extensions; + + /// + /// Information about the delivery for an event subscription with resource identity. + /// + public partial class DeliveryWithResourceIdentity : + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDeliveryWithResourceIdentity, + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDeliveryWithResourceIdentityInternal + { + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionDestination _destination; + + /// + /// Information about the destination where events have to be delivered for the event subscription. + /// Uses Azure Event Grid's identity to acquire the authentication tokens being used during delivery / dead-lettering. + /// + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Owned)] + internal Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionDestination Destination { get => (this._destination = this._destination ?? new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.EventSubscriptionDestination()); set => this._destination = value; } + + /// Type of the endpoint for the event subscription destination. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Inlined)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EndpointType? DestinationEndpointType { get => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionDestinationInternal)Destination).EndpointType; set => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionDestinationInternal)Destination).EndpointType = value ?? ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EndpointType)""); } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionIdentity _identity; + + /// The identity to use when delivering events. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Owned)] + internal Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionIdentity Identity { get => (this._identity = this._identity ?? new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.EventSubscriptionIdentity()); set => this._identity = value; } + + /// + /// The type of managed identity used. The type 'SystemAssigned, UserAssigned' includes both an implicitly created identity + /// and a set of user-assigned identities. The type 'None' will remove any identity. + /// + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Inlined)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EventSubscriptionIdentityType? IdentityType { get => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionIdentityInternal)Identity).Type; set => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionIdentityInternal)Identity).Type = value ?? ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EventSubscriptionIdentityType)""); } + + /// The user identity associated with the resource. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Inlined)] + public string IdentityUserAssignedIdentity { get => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionIdentityInternal)Identity).UserAssignedIdentity; set => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionIdentityInternal)Identity).UserAssignedIdentity = value ?? null; } + + /// Internal Acessors for Destination + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionDestination Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDeliveryWithResourceIdentityInternal.Destination { get => (this._destination = this._destination ?? new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.EventSubscriptionDestination()); set { {_destination = value;} } } + + /// Internal Acessors for Identity + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionIdentity Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDeliveryWithResourceIdentityInternal.Identity { get => (this._identity = this._identity ?? new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.EventSubscriptionIdentity()); set { {_identity = value;} } } + + /// Creates an new instance. + public DeliveryWithResourceIdentity() + { + + } + } + /// Information about the delivery for an event subscription with resource identity. + public partial interface IDeliveryWithResourceIdentity : + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IJsonSerializable + { + /// Type of the endpoint for the event subscription destination. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Type of the endpoint for the event subscription destination.", + SerializedName = @"endpointType", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EndpointType) })] + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EndpointType? DestinationEndpointType { get; set; } + /// + /// The type of managed identity used. The type 'SystemAssigned, UserAssigned' includes both an implicitly created identity + /// and a set of user-assigned identities. The type 'None' will remove any identity. + /// + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The type of managed identity used. The type 'SystemAssigned, UserAssigned' includes both an implicitly created identity and a set of user-assigned identities. The type 'None' will remove any identity.", + SerializedName = @"type", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EventSubscriptionIdentityType) })] + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EventSubscriptionIdentityType? IdentityType { get; set; } + /// The user identity associated with the resource. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The user identity associated with the resource.", + SerializedName = @"userAssignedIdentity", + PossibleTypes = new [] { typeof(string) })] + string IdentityUserAssignedIdentity { get; set; } + + } + /// Information about the delivery for an event subscription with resource identity. + internal partial interface IDeliveryWithResourceIdentityInternal + + { + /// + /// Information about the destination where events have to be delivered for the event subscription. + /// Uses Azure Event Grid's identity to acquire the authentication tokens being used during delivery / dead-lettering. + /// + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionDestination Destination { get; set; } + /// Type of the endpoint for the event subscription destination. + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EndpointType? DestinationEndpointType { get; set; } + /// The identity to use when delivering events. + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionIdentity Identity { get; set; } + /// + /// The type of managed identity used. The type 'SystemAssigned, UserAssigned' includes both an implicitly created identity + /// and a set of user-assigned identities. The type 'None' will remove any identity. + /// + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EventSubscriptionIdentityType? IdentityType { get; set; } + /// The user identity associated with the resource. + string IdentityUserAssignedIdentity { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/DeliveryWithResourceIdentity.json.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/DeliveryWithResourceIdentity.json.cs new file mode 100644 index 000000000000..34736d67950b --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/DeliveryWithResourceIdentity.json.cs @@ -0,0 +1,110 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Extensions; + + /// + /// Information about the delivery for an event subscription with resource identity. + /// + public partial class DeliveryWithResourceIdentity + { + + /// + /// AfterFromJson will be called after the json deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JsonNode that should be deserialized into this object. + + partial void AfterFromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json erialization has finished, allowing customization of the before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JSON container that the serialization result will be placed in. + + partial void AfterToJson(ref Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject container); + + /// + /// BeforeFromJson will be called before the json deserialization has commenced, allowing complete customization of + /// the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JsonNode that should be deserialized into this object. + /// Determines if the rest of the deserialization should be processed, or if the method should return + /// instantly. + + partial void BeforeFromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject json, ref bool returnNow); + + /// + /// BeforeToJson will be called before the json serialization has commenced, allowing complete customization of the + /// object before it is serialized. + /// If you wish to disable the default serialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JSON container that the serialization result will be placed in. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeToJson(ref Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject instance to deserialize from. + internal DeliveryWithResourceIdentity(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Models.Api20211015Preview.EventSubscriptionIdentity.FromJson(__jsonIdentity) : Identity;} + {_destination = If( json?.PropertyT("destination"), out var __jsonDestination) ? Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.EventSubscriptionDestination.FromJson(__jsonDestination) : Destination;} + AfterFromJson(json); + } + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDeliveryWithResourceIdentity. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDeliveryWithResourceIdentity. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDeliveryWithResourceIdentity FromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject json ? new DeliveryWithResourceIdentity(json) : null; + } + + /// + /// Serializes this instance of into a . + /// + /// The container to serialize this object into. If the caller + /// passes in null, a new instance will be created and returned to the caller. + /// Allows the caller to choose the depth of the serialization. See . + /// + /// a serialized instance of as a . + /// + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject(); + + bool returnNow = false; + BeforeToJson(ref container, ref returnNow); + if (returnNow) + { + return container; + } + AddIf( null != this._identity ? (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode) this._identity.ToJson(null,serializationMode) : null, "identity" ,container.Add ); + AddIf( null != this._destination ? (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode) this._destination.ToJson(null,serializationMode) : null, "destination" ,container.Add ); + AfterToJson(ref container); + return container; + } + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/Domain.PowerShell.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/Domain.PowerShell.cs new file mode 100644 index 000000000000..b02a378f2019 --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/Domain.PowerShell.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.EventGrid.Models.Api20211015Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell; + + /// EventGrid Domain. + [System.ComponentModel.TypeConverter(typeof(DomainTypeConverter))] + public partial class Domain + { + + /// + /// AfterDeserializeDictionary will be called after the deserialization has finished, allowing customization of the + /// object before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Collections.IDictionary content that should be used. + + partial void AfterDeserializeDictionary(global::System.Collections.IDictionary content); + + /// + /// AfterDeserializePSObject will be called after the deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Management.Automation.PSObject content that should be used. + + partial void AfterDeserializePSObject(global::System.Management.Automation.PSObject content); + + /// + /// BeforeDeserializeDictionary will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Collections.IDictionary content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializeDictionary(global::System.Collections.IDictionary content, ref bool returnNow); + + /// + /// BeforeDeserializePSObject will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializePSObject(global::System.Management.Automation.PSObject content, ref bool returnNow); + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDomain DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new Domain(content); + } + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDomain DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new Domain(content); + } + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + internal Domain(global::System.Collections.IDictionary content) + { + bool returnNow = false; + BeforeDeserializeDictionary(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("Property")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDomainInternal)this).Property = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDomainProperties) content.GetValueForProperty("Property",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDomainInternal)this).Property, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.DomainPropertiesTypeConverter.ConvertFrom); + } + if (content.Contains("Sku")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDomainInternal)this).Sku = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IResourceSku) content.GetValueForProperty("Sku",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDomainInternal)this).Sku, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ResourceSkuTypeConverter.ConvertFrom); + } + if (content.Contains("Identity")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDomainInternal)this).Identity = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IIdentityInfo) content.GetValueForProperty("Identity",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDomainInternal)this).Identity, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IdentityInfoTypeConverter.ConvertFrom); + } + if (content.Contains("SystemData")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDomainInternal)this).SystemData = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20.ISystemData) content.GetValueForProperty("SystemData",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDomainInternal)this).SystemData, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20.SystemDataTypeConverter.ConvertFrom); + } + if (content.Contains("Id")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IResourceInternal)this).Id = (string) content.GetValueForProperty("Id",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IResourceInternal)this).Id, global::System.Convert.ToString); + } + if (content.Contains("Name")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IResourceInternal)this).Name = (string) content.GetValueForProperty("Name",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IResourceInternal)this).Name, global::System.Convert.ToString); + } + if (content.Contains("Type")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IResourceInternal)this).Type = (string) content.GetValueForProperty("Type",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IResourceInternal)this).Type, global::System.Convert.ToString); + } + if (content.Contains("Location")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITrackedResourceInternal)this).Location = (string) content.GetValueForProperty("Location",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITrackedResourceInternal)this).Location, global::System.Convert.ToString); + } + if (content.Contains("Tag")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITrackedResourceInternal)this).Tag = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITrackedResourceTags) content.GetValueForProperty("Tag",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITrackedResourceInternal)this).Tag, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.TrackedResourceTagsTypeConverter.ConvertFrom); + } + if (content.Contains("InputSchema")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDomainInternal)this).InputSchema = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.InputSchema?) content.GetValueForProperty("InputSchema",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDomainInternal)this).InputSchema, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.InputSchema.CreateFrom); + } + if (content.Contains("SkuName")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDomainInternal)this).SkuName = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.Sku?) content.GetValueForProperty("SkuName",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDomainInternal)this).SkuName, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.Sku.CreateFrom); + } + if (content.Contains("IdentityType")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDomainInternal)this).IdentityType = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.IdentityType?) content.GetValueForProperty("IdentityType",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDomainInternal)this).IdentityType, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.IdentityType.CreateFrom); + } + if (content.Contains("SystemDataCreatedBy")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDomainInternal)this).SystemDataCreatedBy = (string) content.GetValueForProperty("SystemDataCreatedBy",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDomainInternal)this).SystemDataCreatedBy, global::System.Convert.ToString); + } + if (content.Contains("SystemDataCreatedAt")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDomainInternal)this).SystemDataCreatedAt = (global::System.DateTime?) content.GetValueForProperty("SystemDataCreatedAt",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDomainInternal)this).SystemDataCreatedAt, (v) => v is global::System.DateTime _v ? _v : global::System.Xml.XmlConvert.ToDateTime( v.ToString() , global::System.Xml.XmlDateTimeSerializationMode.Unspecified)); + } + if (content.Contains("InputSchemaMapping")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDomainInternal)this).InputSchemaMapping = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IInputSchemaMapping) content.GetValueForProperty("InputSchemaMapping",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDomainInternal)this).InputSchemaMapping, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.InputSchemaMappingTypeConverter.ConvertFrom); + } + if (content.Contains("PrivateEndpointConnection")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDomainInternal)this).PrivateEndpointConnection = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPrivateEndpointConnection[]) content.GetValueForProperty("PrivateEndpointConnection",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDomainInternal)this).PrivateEndpointConnection, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.PrivateEndpointConnectionTypeConverter.ConvertFrom)); + } + if (content.Contains("ProvisioningState")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDomainInternal)this).ProvisioningState = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.DomainProvisioningState?) content.GetValueForProperty("ProvisioningState",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDomainInternal)this).ProvisioningState, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.DomainProvisioningState.CreateFrom); + } + if (content.Contains("Endpoint")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDomainInternal)this).Endpoint = (string) content.GetValueForProperty("Endpoint",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDomainInternal)this).Endpoint, global::System.Convert.ToString); + } + if (content.Contains("MetricResourceId")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDomainInternal)this).MetricResourceId = (string) content.GetValueForProperty("MetricResourceId",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDomainInternal)this).MetricResourceId, global::System.Convert.ToString); + } + if (content.Contains("PublicNetworkAccess")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDomainInternal)this).PublicNetworkAccess = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.PublicNetworkAccess?) content.GetValueForProperty("PublicNetworkAccess",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDomainInternal)this).PublicNetworkAccess, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.PublicNetworkAccess.CreateFrom); + } + if (content.Contains("InboundIPRule")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDomainInternal)this).InboundIPRule = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IInboundIPRule[]) content.GetValueForProperty("InboundIPRule",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDomainInternal)this).InboundIPRule, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.InboundIPRuleTypeConverter.ConvertFrom)); + } + if (content.Contains("DisableLocalAuth")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDomainInternal)this).DisableLocalAuth = (bool?) content.GetValueForProperty("DisableLocalAuth",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDomainInternal)this).DisableLocalAuth, (__y)=> (bool) global::System.Convert.ChangeType(__y, typeof(bool))); + } + if (content.Contains("AutoCreateTopicWithFirstSubscription")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDomainInternal)this).AutoCreateTopicWithFirstSubscription = (bool?) content.GetValueForProperty("AutoCreateTopicWithFirstSubscription",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDomainInternal)this).AutoCreateTopicWithFirstSubscription, (__y)=> (bool) global::System.Convert.ChangeType(__y, typeof(bool))); + } + if (content.Contains("AutoDeleteTopicWithLastSubscription")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDomainInternal)this).AutoDeleteTopicWithLastSubscription = (bool?) content.GetValueForProperty("AutoDeleteTopicWithLastSubscription",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDomainInternal)this).AutoDeleteTopicWithLastSubscription, (__y)=> (bool) global::System.Convert.ChangeType(__y, typeof(bool))); + } + if (content.Contains("DataResidencyBoundary")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDomainInternal)this).DataResidencyBoundary = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.DataResidencyBoundary?) content.GetValueForProperty("DataResidencyBoundary",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDomainInternal)this).DataResidencyBoundary, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.DataResidencyBoundary.CreateFrom); + } + if (content.Contains("IdentityPrincipalId")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDomainInternal)this).IdentityPrincipalId = (string) content.GetValueForProperty("IdentityPrincipalId",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDomainInternal)this).IdentityPrincipalId, global::System.Convert.ToString); + } + if (content.Contains("IdentityTenantId")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDomainInternal)this).IdentityTenantId = (string) content.GetValueForProperty("IdentityTenantId",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDomainInternal)this).IdentityTenantId, global::System.Convert.ToString); + } + if (content.Contains("IdentityUserAssignedIdentity")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDomainInternal)this).IdentityUserAssignedIdentity = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IIdentityInfoUserAssignedIdentities) content.GetValueForProperty("IdentityUserAssignedIdentity",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDomainInternal)this).IdentityUserAssignedIdentity, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IdentityInfoUserAssignedIdentitiesTypeConverter.ConvertFrom); + } + if (content.Contains("SystemDataCreatedByType")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDomainInternal)this).SystemDataCreatedByType = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.CreatedByType?) content.GetValueForProperty("SystemDataCreatedByType",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDomainInternal)this).SystemDataCreatedByType, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.CreatedByType.CreateFrom); + } + if (content.Contains("SystemDataLastModifiedBy")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDomainInternal)this).SystemDataLastModifiedBy = (string) content.GetValueForProperty("SystemDataLastModifiedBy",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDomainInternal)this).SystemDataLastModifiedBy, global::System.Convert.ToString); + } + if (content.Contains("SystemDataLastModifiedByType")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDomainInternal)this).SystemDataLastModifiedByType = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.CreatedByType?) content.GetValueForProperty("SystemDataLastModifiedByType",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDomainInternal)this).SystemDataLastModifiedByType, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.CreatedByType.CreateFrom); + } + if (content.Contains("SystemDataLastModifiedAt")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDomainInternal)this).SystemDataLastModifiedAt = (global::System.DateTime?) content.GetValueForProperty("SystemDataLastModifiedAt",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDomainInternal)this).SystemDataLastModifiedAt, (v) => v is global::System.DateTime _v ? _v : global::System.Xml.XmlConvert.ToDateTime( v.ToString() , global::System.Xml.XmlDateTimeSerializationMode.Unspecified)); + } + if (content.Contains("InputSchemaMappingInputSchemaMappingType")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDomainInternal)this).InputSchemaMappingInputSchemaMappingType = (string) content.GetValueForProperty("InputSchemaMappingInputSchemaMappingType",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDomainInternal)this).InputSchemaMappingInputSchemaMappingType, global::System.Convert.ToString); + } + AfterDeserializeDictionary(content); + } + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + internal Domain(global::System.Management.Automation.PSObject content) + { + bool returnNow = false; + BeforeDeserializePSObject(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("Property")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDomainInternal)this).Property = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDomainProperties) content.GetValueForProperty("Property",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDomainInternal)this).Property, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.DomainPropertiesTypeConverter.ConvertFrom); + } + if (content.Contains("Sku")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDomainInternal)this).Sku = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IResourceSku) content.GetValueForProperty("Sku",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDomainInternal)this).Sku, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ResourceSkuTypeConverter.ConvertFrom); + } + if (content.Contains("Identity")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDomainInternal)this).Identity = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IIdentityInfo) content.GetValueForProperty("Identity",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDomainInternal)this).Identity, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IdentityInfoTypeConverter.ConvertFrom); + } + if (content.Contains("SystemData")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDomainInternal)this).SystemData = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20.ISystemData) content.GetValueForProperty("SystemData",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDomainInternal)this).SystemData, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20.SystemDataTypeConverter.ConvertFrom); + } + if (content.Contains("Id")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IResourceInternal)this).Id = (string) content.GetValueForProperty("Id",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IResourceInternal)this).Id, global::System.Convert.ToString); + } + if (content.Contains("Name")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IResourceInternal)this).Name = (string) content.GetValueForProperty("Name",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IResourceInternal)this).Name, global::System.Convert.ToString); + } + if (content.Contains("Type")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IResourceInternal)this).Type = (string) content.GetValueForProperty("Type",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IResourceInternal)this).Type, global::System.Convert.ToString); + } + if (content.Contains("Location")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITrackedResourceInternal)this).Location = (string) content.GetValueForProperty("Location",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITrackedResourceInternal)this).Location, global::System.Convert.ToString); + } + if (content.Contains("Tag")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITrackedResourceInternal)this).Tag = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITrackedResourceTags) content.GetValueForProperty("Tag",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITrackedResourceInternal)this).Tag, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.TrackedResourceTagsTypeConverter.ConvertFrom); + } + if (content.Contains("InputSchema")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDomainInternal)this).InputSchema = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.InputSchema?) content.GetValueForProperty("InputSchema",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDomainInternal)this).InputSchema, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.InputSchema.CreateFrom); + } + if (content.Contains("SkuName")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDomainInternal)this).SkuName = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.Sku?) content.GetValueForProperty("SkuName",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDomainInternal)this).SkuName, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.Sku.CreateFrom); + } + if (content.Contains("IdentityType")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDomainInternal)this).IdentityType = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.IdentityType?) content.GetValueForProperty("IdentityType",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDomainInternal)this).IdentityType, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.IdentityType.CreateFrom); + } + if (content.Contains("SystemDataCreatedBy")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDomainInternal)this).SystemDataCreatedBy = (string) content.GetValueForProperty("SystemDataCreatedBy",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDomainInternal)this).SystemDataCreatedBy, global::System.Convert.ToString); + } + if (content.Contains("SystemDataCreatedAt")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDomainInternal)this).SystemDataCreatedAt = (global::System.DateTime?) content.GetValueForProperty("SystemDataCreatedAt",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDomainInternal)this).SystemDataCreatedAt, (v) => v is global::System.DateTime _v ? _v : global::System.Xml.XmlConvert.ToDateTime( v.ToString() , global::System.Xml.XmlDateTimeSerializationMode.Unspecified)); + } + if (content.Contains("InputSchemaMapping")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDomainInternal)this).InputSchemaMapping = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IInputSchemaMapping) content.GetValueForProperty("InputSchemaMapping",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDomainInternal)this).InputSchemaMapping, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.InputSchemaMappingTypeConverter.ConvertFrom); + } + if (content.Contains("PrivateEndpointConnection")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDomainInternal)this).PrivateEndpointConnection = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPrivateEndpointConnection[]) content.GetValueForProperty("PrivateEndpointConnection",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDomainInternal)this).PrivateEndpointConnection, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.PrivateEndpointConnectionTypeConverter.ConvertFrom)); + } + if (content.Contains("ProvisioningState")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDomainInternal)this).ProvisioningState = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.DomainProvisioningState?) content.GetValueForProperty("ProvisioningState",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDomainInternal)this).ProvisioningState, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.DomainProvisioningState.CreateFrom); + } + if (content.Contains("Endpoint")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDomainInternal)this).Endpoint = (string) content.GetValueForProperty("Endpoint",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDomainInternal)this).Endpoint, global::System.Convert.ToString); + } + if (content.Contains("MetricResourceId")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDomainInternal)this).MetricResourceId = (string) content.GetValueForProperty("MetricResourceId",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDomainInternal)this).MetricResourceId, global::System.Convert.ToString); + } + if (content.Contains("PublicNetworkAccess")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDomainInternal)this).PublicNetworkAccess = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.PublicNetworkAccess?) content.GetValueForProperty("PublicNetworkAccess",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDomainInternal)this).PublicNetworkAccess, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.PublicNetworkAccess.CreateFrom); + } + if (content.Contains("InboundIPRule")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDomainInternal)this).InboundIPRule = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IInboundIPRule[]) content.GetValueForProperty("InboundIPRule",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDomainInternal)this).InboundIPRule, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.InboundIPRuleTypeConverter.ConvertFrom)); + } + if (content.Contains("DisableLocalAuth")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDomainInternal)this).DisableLocalAuth = (bool?) content.GetValueForProperty("DisableLocalAuth",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDomainInternal)this).DisableLocalAuth, (__y)=> (bool) global::System.Convert.ChangeType(__y, typeof(bool))); + } + if (content.Contains("AutoCreateTopicWithFirstSubscription")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDomainInternal)this).AutoCreateTopicWithFirstSubscription = (bool?) content.GetValueForProperty("AutoCreateTopicWithFirstSubscription",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDomainInternal)this).AutoCreateTopicWithFirstSubscription, (__y)=> (bool) global::System.Convert.ChangeType(__y, typeof(bool))); + } + if (content.Contains("AutoDeleteTopicWithLastSubscription")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDomainInternal)this).AutoDeleteTopicWithLastSubscription = (bool?) content.GetValueForProperty("AutoDeleteTopicWithLastSubscription",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDomainInternal)this).AutoDeleteTopicWithLastSubscription, (__y)=> (bool) global::System.Convert.ChangeType(__y, typeof(bool))); + } + if (content.Contains("DataResidencyBoundary")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDomainInternal)this).DataResidencyBoundary = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.DataResidencyBoundary?) content.GetValueForProperty("DataResidencyBoundary",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDomainInternal)this).DataResidencyBoundary, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.DataResidencyBoundary.CreateFrom); + } + if (content.Contains("IdentityPrincipalId")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDomainInternal)this).IdentityPrincipalId = (string) content.GetValueForProperty("IdentityPrincipalId",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDomainInternal)this).IdentityPrincipalId, global::System.Convert.ToString); + } + if (content.Contains("IdentityTenantId")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDomainInternal)this).IdentityTenantId = (string) content.GetValueForProperty("IdentityTenantId",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDomainInternal)this).IdentityTenantId, global::System.Convert.ToString); + } + if (content.Contains("IdentityUserAssignedIdentity")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDomainInternal)this).IdentityUserAssignedIdentity = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IIdentityInfoUserAssignedIdentities) content.GetValueForProperty("IdentityUserAssignedIdentity",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDomainInternal)this).IdentityUserAssignedIdentity, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IdentityInfoUserAssignedIdentitiesTypeConverter.ConvertFrom); + } + if (content.Contains("SystemDataCreatedByType")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDomainInternal)this).SystemDataCreatedByType = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.CreatedByType?) content.GetValueForProperty("SystemDataCreatedByType",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDomainInternal)this).SystemDataCreatedByType, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.CreatedByType.CreateFrom); + } + if (content.Contains("SystemDataLastModifiedBy")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDomainInternal)this).SystemDataLastModifiedBy = (string) content.GetValueForProperty("SystemDataLastModifiedBy",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDomainInternal)this).SystemDataLastModifiedBy, global::System.Convert.ToString); + } + if (content.Contains("SystemDataLastModifiedByType")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDomainInternal)this).SystemDataLastModifiedByType = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.CreatedByType?) content.GetValueForProperty("SystemDataLastModifiedByType",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDomainInternal)this).SystemDataLastModifiedByType, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.CreatedByType.CreateFrom); + } + if (content.Contains("SystemDataLastModifiedAt")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDomainInternal)this).SystemDataLastModifiedAt = (global::System.DateTime?) content.GetValueForProperty("SystemDataLastModifiedAt",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDomainInternal)this).SystemDataLastModifiedAt, (v) => v is global::System.DateTime _v ? _v : global::System.Xml.XmlConvert.ToDateTime( v.ToString() , global::System.Xml.XmlDateTimeSerializationMode.Unspecified)); + } + if (content.Contains("InputSchemaMappingInputSchemaMappingType")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDomainInternal)this).InputSchemaMappingInputSchemaMappingType = (string) content.GetValueForProperty("InputSchemaMappingInputSchemaMappingType",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDomainInternal)this).InputSchemaMappingInputSchemaMappingType, 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.EventGrid.Models.Api20211015Preview.IDomain FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode.Parse(jsonText)); + + /// Serializes this instance to a json string. + + /// a containing this model serialized to JSON text. + public string ToJsonString() => ToJson(null, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// EventGrid Domain. + [System.ComponentModel.TypeConverter(typeof(DomainTypeConverter))] + public partial interface IDomain + + { + + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/Domain.TypeConverter.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/Domain.TypeConverter.cs new file mode 100644 index 000000000000..d6dcce5ed782 --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/Domain.TypeConverter.cs @@ -0,0 +1,146 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class DomainTypeConverter : global::System.Management.Automation.PSTypeConverter + { + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false. + /// + public override bool CanConvertFrom(object sourceValue, global::System.Type destinationType) => CanConvertFrom(sourceValue); + + /// + /// Determines if the converter can convert the parameter to the . + /// + /// the instance to check if it can be converted to the type. + /// + /// true if the instance could be converted to a type, otherwise false + /// + public static bool CanConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return true; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + // we say yest to PSObjects + return true; + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + // we say yest to Hashtables/dictionaries + return true; + } + try + { + if (null != sourceValue.ToJsonString()) + { + return true; + } + } + catch + { + // Not one of our objects + } + try + { + string text = sourceValue.ToString()?.Trim(); + return true == text?.StartsWith("{") && true == text?.EndsWith("}") && Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonType.Object; + } + catch + { + // Doesn't look like it can be treated as JSON + } + return false; + } + + /// + /// Determines if the parameter can be converted to the parameter + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false + /// + public override bool CanConvertTo(object sourceValue, global::System.Type destinationType) => false; + + /// + /// Converts the parameter to the parameter using and + /// + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// + /// an instance of , or null if there is no suitable conversion. + /// + public override object ConvertFrom(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => ConvertFrom(sourceValue); + + /// + /// Converts the parameter to the parameter using and + /// + /// the value to convert into an instance of . + /// + /// an instance of , or null if there is no suitable conversion. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDomain ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDomain).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return Domain.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return Domain.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return Domain.DeserializeFromDictionary(sourceValue); + } + return null; + } + + /// NotImplemented -- this will return null + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// will always return null. + public override object ConvertTo(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => null; + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/Domain.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/Domain.cs new file mode 100644 index 000000000000..a311bc7d2ed4 --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/Domain.cs @@ -0,0 +1,639 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Extensions; + + /// EventGrid Domain. + public partial class Domain : + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDomain, + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDomainInternal, + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IValidates + { + /// + /// Backing field for Inherited model + /// + private Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITrackedResource __trackedResource = new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.TrackedResource(); + + /// + /// This Boolean is used to specify the creation mechanism for 'all' the Event Grid Domain Topics associated with this Event + /// Grid Domain resource. + /// In this context, creation of domain topic can be auto-managed (when true) or self-managed (when false). The default value + /// for this property is true. + /// When this property is null or set to true, Event Grid is responsible of automatically creating the domain topic when the + /// first event subscription is + /// created at the scope of the domain topic. If this property is set to false, then creating the first event subscription + /// will require creating a domain topic + /// by the user. The self-management mode can be used if the user wants full control of when the domain topic is created, + /// while auto-managed mode provides the + /// flexibility to perform less operations and manage fewer resources by the user. Also, note that in auto-managed creation + /// mode, user is allowed to create the + /// domain topic on demand if needed. + /// + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Inlined)] + public bool? AutoCreateTopicWithFirstSubscription { get => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDomainPropertiesInternal)Property).AutoCreateTopicWithFirstSubscription; set => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDomainPropertiesInternal)Property).AutoCreateTopicWithFirstSubscription = value ?? default(bool); } + + /// + /// This Boolean is used to specify the deletion mechanism for 'all' the Event Grid Domain Topics associated with this Event + /// Grid Domain resource. + /// In this context, deletion of domain topic can be auto-managed (when true) or self-managed (when false). The default value + /// for this property is true. + /// When this property is set to true, Event Grid is responsible of automatically deleting the domain topic when the last + /// event subscription at the scope + /// of the domain topic is deleted. If this property is set to false, then the user needs to manually delete the domain topic + /// when it is no longer needed + /// (e.g., when last event subscription is deleted and the resource needs to be cleaned up). The self-management mode can + /// be used if the user wants full + /// control of when the domain topic needs to be deleted, while auto-managed mode provides the flexibility to perform less + /// operations and manage fewer + /// resources by the user. + /// + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Inlined)] + public bool? AutoDeleteTopicWithLastSubscription { get => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDomainPropertiesInternal)Property).AutoDeleteTopicWithLastSubscription; set => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDomainPropertiesInternal)Property).AutoDeleteTopicWithLastSubscription = value ?? default(bool); } + + /// Data Residency Boundary of the resource. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Inlined)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.DataResidencyBoundary? DataResidencyBoundary { get => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDomainPropertiesInternal)Property).DataResidencyBoundary; set => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDomainPropertiesInternal)Property).DataResidencyBoundary = value ?? ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.DataResidencyBoundary)""); } + + /// + /// This boolean is used to enable or disable local auth. Default value is false. When the property is set to true, only AAD + /// token will be used to authenticate if user is allowed to publish to the domain. + /// + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Inlined)] + public bool? DisableLocalAuth { get => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDomainPropertiesInternal)Property).DisableLocalAuth; set => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDomainPropertiesInternal)Property).DisableLocalAuth = value ?? default(bool); } + + /// + /// Endpoint for the Event Grid Domain Resource which is used for publishing the events. + /// + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Inlined)] + public string Endpoint { get => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDomainPropertiesInternal)Property).Endpoint; } + + /// Fully qualified identifier of the resource. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Inherited)] + public string Id { get => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IResourceInternal)__trackedResource).Id; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IIdentityInfo _identity; + + /// Identity information for the Event Grid Domain resource. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Owned)] + internal Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IIdentityInfo Identity { get => (this._identity = this._identity ?? new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IdentityInfo()); set => this._identity = value; } + + /// The principal ID of resource identity. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Inlined)] + public string IdentityPrincipalId { get => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IIdentityInfoInternal)Identity).PrincipalId; set => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IIdentityInfoInternal)Identity).PrincipalId = value ?? null; } + + /// The tenant ID of resource. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Inlined)] + public string IdentityTenantId { get => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IIdentityInfoInternal)Identity).TenantId; set => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IIdentityInfoInternal)Identity).TenantId = value ?? null; } + + /// + /// The type of managed identity used. The type 'SystemAssigned, UserAssigned' includes both an implicitly created identity + /// and a set of user-assigned identities. The type 'None' will remove any identity. + /// + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Inlined)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.IdentityType? IdentityType { get => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IIdentityInfoInternal)Identity).Type; set => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IIdentityInfoInternal)Identity).Type = value ?? ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.IdentityType)""); } + + /// + /// The list of user identities associated with the resource. The user identity dictionary key references will be ARM resource + /// ids in the form: + /// '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ManagedIdentity/userAssignedIdentities/{identityName}'. + /// This property is currently not used and reserved for future usage. + /// + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Inlined)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IIdentityInfoUserAssignedIdentities IdentityUserAssignedIdentity { get => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IIdentityInfoInternal)Identity).UserAssignedIdentity; set => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IIdentityInfoInternal)Identity).UserAssignedIdentity = value ?? null /* model class */; } + + /// + /// This can be used to restrict traffic from specific IPs instead of all IPs. Note: These are considered only if PublicNetworkAccess + /// is enabled. + /// + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Inlined)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IInboundIPRule[] InboundIPRule { get => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDomainPropertiesInternal)Property).InboundIPRule; set => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDomainPropertiesInternal)Property).InboundIPRule = value ?? null /* arrayOf */; } + + /// + /// This determines the format that Event Grid should expect for incoming events published to the Event Grid Domain Resource. + /// + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Inlined)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.InputSchema? InputSchema { get => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDomainPropertiesInternal)Property).InputSchema; set => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDomainPropertiesInternal)Property).InputSchema = value ?? ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.InputSchema)""); } + + /// Type of the custom mapping + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Inlined)] + public string InputSchemaMappingInputSchemaMappingType { get => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDomainPropertiesInternal)Property).InputSchemaMappingInputSchemaMappingType; } + + /// Location of the resource. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Inherited)] + public string Location { get => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITrackedResourceInternal)__trackedResource).Location; set => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITrackedResourceInternal)__trackedResource).Location = value ; } + + /// Metric resource id for the Event Grid Domain Resource. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Inlined)] + public string MetricResourceId { get => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDomainPropertiesInternal)Property).MetricResourceId; } + + /// Internal Acessors for Endpoint + string Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDomainInternal.Endpoint { get => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDomainPropertiesInternal)Property).Endpoint; set => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDomainPropertiesInternal)Property).Endpoint = value; } + + /// Internal Acessors for Identity + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IIdentityInfo Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDomainInternal.Identity { get => (this._identity = this._identity ?? new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IdentityInfo()); set { {_identity = value;} } } + + /// Internal Acessors for InputSchemaMapping + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IInputSchemaMapping Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDomainInternal.InputSchemaMapping { get => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDomainPropertiesInternal)Property).InputSchemaMapping; set => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDomainPropertiesInternal)Property).InputSchemaMapping = value; } + + /// Internal Acessors for InputSchemaMappingInputSchemaMappingType + string Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDomainInternal.InputSchemaMappingInputSchemaMappingType { get => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDomainPropertiesInternal)Property).InputSchemaMappingInputSchemaMappingType; set => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDomainPropertiesInternal)Property).InputSchemaMappingInputSchemaMappingType = value; } + + /// Internal Acessors for MetricResourceId + string Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDomainInternal.MetricResourceId { get => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDomainPropertiesInternal)Property).MetricResourceId; set => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDomainPropertiesInternal)Property).MetricResourceId = value; } + + /// Internal Acessors for PrivateEndpointConnection + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPrivateEndpointConnection[] Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDomainInternal.PrivateEndpointConnection { get => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDomainPropertiesInternal)Property).PrivateEndpointConnection; set => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDomainPropertiesInternal)Property).PrivateEndpointConnection = value; } + + /// Internal Acessors for Property + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDomainProperties Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDomainInternal.Property { get => (this._property = this._property ?? new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.DomainProperties()); set { {_property = value;} } } + + /// Internal Acessors for ProvisioningState + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.DomainProvisioningState? Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDomainInternal.ProvisioningState { get => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDomainPropertiesInternal)Property).ProvisioningState; set => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDomainPropertiesInternal)Property).ProvisioningState = value; } + + /// Internal Acessors for Sku + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IResourceSku Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDomainInternal.Sku { get => (this._sku = this._sku ?? new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ResourceSku()); set { {_sku = value;} } } + + /// Internal Acessors for SystemData + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20.ISystemData Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDomainInternal.SystemData { get => (this._systemData = this._systemData ?? new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20.SystemData()); set { {_systemData = value;} } } + + /// Internal Acessors for Id + string Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IResourceInternal.Id { get => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IResourceInternal)__trackedResource).Id; set => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IResourceInternal)__trackedResource).Id = value; } + + /// Internal Acessors for Name + string Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IResourceInternal.Name { get => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IResourceInternal)__trackedResource).Name; set => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IResourceInternal)__trackedResource).Name = value; } + + /// Internal Acessors for Type + string Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IResourceInternal.Type { get => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IResourceInternal)__trackedResource).Type; set => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IResourceInternal)__trackedResource).Type = value; } + + /// Name of the resource. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Inherited)] + public string Name { get => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IResourceInternal)__trackedResource).Name; } + + /// List of private endpoint connections. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Inlined)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPrivateEndpointConnection[] PrivateEndpointConnection { get => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDomainPropertiesInternal)Property).PrivateEndpointConnection; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDomainProperties _property; + + /// Properties of the Event Grid Domain resource. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Owned)] + internal Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDomainProperties Property { get => (this._property = this._property ?? new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.DomainProperties()); set => this._property = value; } + + /// Provisioning state of the Event Grid Domain Resource. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Inlined)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.DomainProvisioningState? ProvisioningState { get => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDomainPropertiesInternal)Property).ProvisioningState; } + + /// + /// This determines if traffic is allowed over public network. By default it is enabled. + /// You can further restrict to specific IPs by configuring + /// + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Inlined)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.PublicNetworkAccess? PublicNetworkAccess { get => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDomainPropertiesInternal)Property).PublicNetworkAccess; set => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDomainPropertiesInternal)Property).PublicNetworkAccess = value ?? ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.PublicNetworkAccess)""); } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IResourceSku _sku; + + /// The Sku pricing tier for the Event Grid Domain resource. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Owned)] + internal Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IResourceSku Sku { get => (this._sku = this._sku ?? new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ResourceSku()); set => this._sku = value; } + + /// The Sku name of the resource. The possible values are: Basic or Premium. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Inlined)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.Sku? SkuName { get => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IResourceSkuInternal)Sku).Name; set => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IResourceSkuInternal)Sku).Name = value ?? ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.Sku)""); } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20.ISystemData _systemData; + + /// The system metadata relating to the Event Grid Domain resource. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Owned)] + internal Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20.ISystemData SystemData { get => (this._systemData = this._systemData ?? new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20.SystemData()); } + + /// The timestamp of resource creation (UTC). + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Inlined)] + public global::System.DateTime? SystemDataCreatedAt { get => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20.ISystemDataInternal)SystemData).CreatedAt; set => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20.ISystemDataInternal)SystemData).CreatedAt = value ?? default(global::System.DateTime); } + + /// The identity that created the resource. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Inlined)] + public string SystemDataCreatedBy { get => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20.ISystemDataInternal)SystemData).CreatedBy; set => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20.ISystemDataInternal)SystemData).CreatedBy = value ?? null; } + + /// The type of identity that created the resource. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Inlined)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.CreatedByType? SystemDataCreatedByType { get => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20.ISystemDataInternal)SystemData).CreatedByType; set => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20.ISystemDataInternal)SystemData).CreatedByType = value ?? ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.CreatedByType)""); } + + /// The timestamp of resource last modification (UTC) + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Inlined)] + public global::System.DateTime? SystemDataLastModifiedAt { get => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20.ISystemDataInternal)SystemData).LastModifiedAt; set => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20.ISystemDataInternal)SystemData).LastModifiedAt = value ?? default(global::System.DateTime); } + + /// The identity that last modified the resource. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Inlined)] + public string SystemDataLastModifiedBy { get => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20.ISystemDataInternal)SystemData).LastModifiedBy; set => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20.ISystemDataInternal)SystemData).LastModifiedBy = value ?? null; } + + /// The type of identity that last modified the resource. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Inlined)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.CreatedByType? SystemDataLastModifiedByType { get => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20.ISystemDataInternal)SystemData).LastModifiedByType; set => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20.ISystemDataInternal)SystemData).LastModifiedByType = value ?? ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.CreatedByType)""); } + + /// Tags of the resource. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Inherited)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITrackedResourceTags Tag { get => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITrackedResourceInternal)__trackedResource).Tag; set => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITrackedResourceInternal)__trackedResource).Tag = value ?? null /* model class */; } + + /// Type of the resource. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Inherited)] + public string Type { get => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IResourceInternal)__trackedResource).Type; } + + /// Creates an new instance. + public Domain() + { + + } + + /// Validates that this object meets the validation criteria. + /// an instance that will receive validation + /// events. + /// + /// A that will be complete when validation is completed. + /// + public async global::System.Threading.Tasks.Task Validate(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener eventListener) + { + await eventListener.AssertNotNull(nameof(__trackedResource), __trackedResource); + await eventListener.AssertObjectIsValid(nameof(__trackedResource), __trackedResource); + } + } + /// EventGrid Domain. + public partial interface IDomain : + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IJsonSerializable, + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITrackedResource + { + /// + /// This Boolean is used to specify the creation mechanism for 'all' the Event Grid Domain Topics associated with this Event + /// Grid Domain resource. + /// In this context, creation of domain topic can be auto-managed (when true) or self-managed (when false). The default value + /// for this property is true. + /// When this property is null or set to true, Event Grid is responsible of automatically creating the domain topic when the + /// first event subscription is + /// created at the scope of the domain topic. If this property is set to false, then creating the first event subscription + /// will require creating a domain topic + /// by the user. The self-management mode can be used if the user wants full control of when the domain topic is created, + /// while auto-managed mode provides the + /// flexibility to perform less operations and manage fewer resources by the user. Also, note that in auto-managed creation + /// mode, user is allowed to create the + /// domain topic on demand if needed. + /// + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"This Boolean is used to specify the creation mechanism for 'all' the Event Grid Domain Topics associated with this Event Grid Domain resource. + In this context, creation of domain topic can be auto-managed (when true) or self-managed (when false). The default value for this property is true. + When this property is null or set to true, Event Grid is responsible of automatically creating the domain topic when the first event subscription is + created at the scope of the domain topic. If this property is set to false, then creating the first event subscription will require creating a domain topic + by the user. The self-management mode can be used if the user wants full control of when the domain topic is created, while auto-managed mode provides the + flexibility to perform less operations and manage fewer resources by the user. Also, note that in auto-managed creation mode, user is allowed to create the + domain topic on demand if needed.", + SerializedName = @"autoCreateTopicWithFirstSubscription", + PossibleTypes = new [] { typeof(bool) })] + bool? AutoCreateTopicWithFirstSubscription { get; set; } + /// + /// This Boolean is used to specify the deletion mechanism for 'all' the Event Grid Domain Topics associated with this Event + /// Grid Domain resource. + /// In this context, deletion of domain topic can be auto-managed (when true) or self-managed (when false). The default value + /// for this property is true. + /// When this property is set to true, Event Grid is responsible of automatically deleting the domain topic when the last + /// event subscription at the scope + /// of the domain topic is deleted. If this property is set to false, then the user needs to manually delete the domain topic + /// when it is no longer needed + /// (e.g., when last event subscription is deleted and the resource needs to be cleaned up). The self-management mode can + /// be used if the user wants full + /// control of when the domain topic needs to be deleted, while auto-managed mode provides the flexibility to perform less + /// operations and manage fewer + /// resources by the user. + /// + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"This Boolean is used to specify the deletion mechanism for 'all' the Event Grid Domain Topics associated with this Event Grid Domain resource. + In this context, deletion of domain topic can be auto-managed (when true) or self-managed (when false). The default value for this property is true. + When this property is set to true, Event Grid is responsible of automatically deleting the domain topic when the last event subscription at the scope + of the domain topic is deleted. If this property is set to false, then the user needs to manually delete the domain topic when it is no longer needed + (e.g., when last event subscription is deleted and the resource needs to be cleaned up). The self-management mode can be used if the user wants full + control of when the domain topic needs to be deleted, while auto-managed mode provides the flexibility to perform less operations and manage fewer + resources by the user.", + SerializedName = @"autoDeleteTopicWithLastSubscription", + PossibleTypes = new [] { typeof(bool) })] + bool? AutoDeleteTopicWithLastSubscription { get; set; } + /// Data Residency Boundary of the resource. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Data Residency Boundary of the resource.", + SerializedName = @"dataResidencyBoundary", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.DataResidencyBoundary) })] + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.DataResidencyBoundary? DataResidencyBoundary { get; set; } + /// + /// This boolean is used to enable or disable local auth. Default value is false. When the property is set to true, only AAD + /// token will be used to authenticate if user is allowed to publish to the domain. + /// + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"This boolean is used to enable or disable local auth. Default value is false. When the property is set to true, only AAD token will be used to authenticate if user is allowed to publish to the domain.", + SerializedName = @"disableLocalAuth", + PossibleTypes = new [] { typeof(bool) })] + bool? DisableLocalAuth { get; set; } + /// + /// Endpoint for the Event Grid Domain Resource which is used for publishing the events. + /// + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"Endpoint for the Event Grid Domain Resource which is used for publishing the events.", + SerializedName = @"endpoint", + PossibleTypes = new [] { typeof(string) })] + string Endpoint { get; } + /// The principal ID of resource identity. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The principal ID of resource identity.", + SerializedName = @"principalId", + PossibleTypes = new [] { typeof(string) })] + string IdentityPrincipalId { get; set; } + /// The tenant ID of resource. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The tenant ID of resource.", + SerializedName = @"tenantId", + PossibleTypes = new [] { typeof(string) })] + string IdentityTenantId { get; set; } + /// + /// The type of managed identity used. The type 'SystemAssigned, UserAssigned' includes both an implicitly created identity + /// and a set of user-assigned identities. The type 'None' will remove any identity. + /// + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The type of managed identity used. The type 'SystemAssigned, UserAssigned' includes both an implicitly created identity and a set of user-assigned identities. The type 'None' will remove any identity.", + SerializedName = @"type", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.IdentityType) })] + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.IdentityType? IdentityType { get; set; } + /// + /// The list of user identities associated with the resource. The user identity dictionary key references will be ARM resource + /// ids in the form: + /// '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ManagedIdentity/userAssignedIdentities/{identityName}'. + /// This property is currently not used and reserved for future usage. + /// + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The list of user identities associated with the resource. The user identity dictionary key references will be ARM resource ids in the form: + '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ManagedIdentity/userAssignedIdentities/{identityName}'. + This property is currently not used and reserved for future usage.", + SerializedName = @"userAssignedIdentities", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IIdentityInfoUserAssignedIdentities) })] + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IIdentityInfoUserAssignedIdentities IdentityUserAssignedIdentity { get; set; } + /// + /// This can be used to restrict traffic from specific IPs instead of all IPs. Note: These are considered only if PublicNetworkAccess + /// is enabled. + /// + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"This can be used to restrict traffic from specific IPs instead of all IPs. Note: These are considered only if PublicNetworkAccess is enabled.", + SerializedName = @"inboundIpRules", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IInboundIPRule) })] + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IInboundIPRule[] InboundIPRule { get; set; } + /// + /// This determines the format that Event Grid should expect for incoming events published to the Event Grid Domain Resource. + /// + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"This determines the format that Event Grid should expect for incoming events published to the Event Grid Domain Resource.", + SerializedName = @"inputSchema", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.InputSchema) })] + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.InputSchema? InputSchema { get; set; } + /// Type of the custom mapping + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"Type of the custom mapping", + SerializedName = @"inputSchemaMappingType", + PossibleTypes = new [] { typeof(string) })] + string InputSchemaMappingInputSchemaMappingType { get; } + /// Metric resource id for the Event Grid Domain Resource. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"Metric resource id for the Event Grid Domain Resource.", + SerializedName = @"metricResourceId", + PossibleTypes = new [] { typeof(string) })] + string MetricResourceId { get; } + /// List of private endpoint connections. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"List of private endpoint connections.", + SerializedName = @"privateEndpointConnections", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPrivateEndpointConnection) })] + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPrivateEndpointConnection[] PrivateEndpointConnection { get; } + /// Provisioning state of the Event Grid Domain Resource. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"Provisioning state of the Event Grid Domain Resource.", + SerializedName = @"provisioningState", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.DomainProvisioningState) })] + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.DomainProvisioningState? ProvisioningState { get; } + /// + /// This determines if traffic is allowed over public network. By default it is enabled. + /// You can further restrict to specific IPs by configuring + /// + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"This determines if traffic is allowed over public network. By default it is enabled. + You can further restrict to specific IPs by configuring ", + SerializedName = @"publicNetworkAccess", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.PublicNetworkAccess) })] + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.PublicNetworkAccess? PublicNetworkAccess { get; set; } + /// The Sku name of the resource. The possible values are: Basic or Premium. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The Sku name of the resource. The possible values are: Basic or Premium.", + SerializedName = @"name", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.Sku) })] + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.Sku? SkuName { get; set; } + /// The timestamp of resource creation (UTC). + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.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.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The type of identity that created the resource.", + SerializedName = @"createdByType", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.CreatedByType) })] + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.CreatedByType? SystemDataCreatedByType { get; set; } + /// The timestamp of resource last modification (UTC) + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.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.EventGrid.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.EventGrid.Support.CreatedByType) })] + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.CreatedByType? SystemDataLastModifiedByType { get; set; } + + } + /// EventGrid Domain. + internal partial interface IDomainInternal : + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITrackedResourceInternal + { + /// + /// This Boolean is used to specify the creation mechanism for 'all' the Event Grid Domain Topics associated with this Event + /// Grid Domain resource. + /// In this context, creation of domain topic can be auto-managed (when true) or self-managed (when false). The default value + /// for this property is true. + /// When this property is null or set to true, Event Grid is responsible of automatically creating the domain topic when the + /// first event subscription is + /// created at the scope of the domain topic. If this property is set to false, then creating the first event subscription + /// will require creating a domain topic + /// by the user. The self-management mode can be used if the user wants full control of when the domain topic is created, + /// while auto-managed mode provides the + /// flexibility to perform less operations and manage fewer resources by the user. Also, note that in auto-managed creation + /// mode, user is allowed to create the + /// domain topic on demand if needed. + /// + bool? AutoCreateTopicWithFirstSubscription { get; set; } + /// + /// This Boolean is used to specify the deletion mechanism for 'all' the Event Grid Domain Topics associated with this Event + /// Grid Domain resource. + /// In this context, deletion of domain topic can be auto-managed (when true) or self-managed (when false). The default value + /// for this property is true. + /// When this property is set to true, Event Grid is responsible of automatically deleting the domain topic when the last + /// event subscription at the scope + /// of the domain topic is deleted. If this property is set to false, then the user needs to manually delete the domain topic + /// when it is no longer needed + /// (e.g., when last event subscription is deleted and the resource needs to be cleaned up). The self-management mode can + /// be used if the user wants full + /// control of when the domain topic needs to be deleted, while auto-managed mode provides the flexibility to perform less + /// operations and manage fewer + /// resources by the user. + /// + bool? AutoDeleteTopicWithLastSubscription { get; set; } + /// Data Residency Boundary of the resource. + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.DataResidencyBoundary? DataResidencyBoundary { get; set; } + /// + /// This boolean is used to enable or disable local auth. Default value is false. When the property is set to true, only AAD + /// token will be used to authenticate if user is allowed to publish to the domain. + /// + bool? DisableLocalAuth { get; set; } + /// + /// Endpoint for the Event Grid Domain Resource which is used for publishing the events. + /// + string Endpoint { get; set; } + /// Identity information for the Event Grid Domain resource. + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IIdentityInfo Identity { get; set; } + /// The principal ID of resource identity. + string IdentityPrincipalId { get; set; } + /// The tenant ID of resource. + string IdentityTenantId { get; set; } + /// + /// The type of managed identity used. The type 'SystemAssigned, UserAssigned' includes both an implicitly created identity + /// and a set of user-assigned identities. The type 'None' will remove any identity. + /// + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.IdentityType? IdentityType { get; set; } + /// + /// The list of user identities associated with the resource. The user identity dictionary key references will be ARM resource + /// ids in the form: + /// '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ManagedIdentity/userAssignedIdentities/{identityName}'. + /// This property is currently not used and reserved for future usage. + /// + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IIdentityInfoUserAssignedIdentities IdentityUserAssignedIdentity { get; set; } + /// + /// This can be used to restrict traffic from specific IPs instead of all IPs. Note: These are considered only if PublicNetworkAccess + /// is enabled. + /// + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IInboundIPRule[] InboundIPRule { get; set; } + /// + /// This determines the format that Event Grid should expect for incoming events published to the Event Grid Domain Resource. + /// + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.InputSchema? InputSchema { get; set; } + /// + /// Information about the InputSchemaMapping which specified the info about mapping event payload. + /// + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IInputSchemaMapping InputSchemaMapping { get; set; } + /// Type of the custom mapping + string InputSchemaMappingInputSchemaMappingType { get; set; } + /// Metric resource id for the Event Grid Domain Resource. + string MetricResourceId { get; set; } + /// List of private endpoint connections. + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPrivateEndpointConnection[] PrivateEndpointConnection { get; set; } + /// Properties of the Event Grid Domain resource. + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDomainProperties Property { get; set; } + /// Provisioning state of the Event Grid Domain Resource. + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.DomainProvisioningState? ProvisioningState { get; set; } + /// + /// This determines if traffic is allowed over public network. By default it is enabled. + /// You can further restrict to specific IPs by configuring + /// + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.PublicNetworkAccess? PublicNetworkAccess { get; set; } + /// The Sku pricing tier for the Event Grid Domain resource. + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IResourceSku Sku { get; set; } + /// The Sku name of the resource. The possible values are: Basic or Premium. + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.Sku? SkuName { get; set; } + /// The system metadata relating to the Event Grid Domain resource. + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.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.EventGrid.Support.CreatedByType? SystemDataLastModifiedByType { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/Domain.json.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/Domain.json.cs new file mode 100644 index 000000000000..5e94695debea --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/Domain.json.cs @@ -0,0 +1,117 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Extensions; + + /// EventGrid Domain. + public partial class Domain + { + + /// + /// AfterFromJson will be called after the json deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JsonNode that should be deserialized into this object. + + partial void AfterFromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json erialization has finished, allowing customization of the before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JSON container that the serialization result will be placed in. + + partial void AfterToJson(ref Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject container); + + /// + /// BeforeFromJson will be called before the json deserialization has commenced, allowing complete customization of + /// the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JsonNode that should be deserialized into this object. + /// Determines if the rest of the deserialization should be processed, or if the method should return + /// instantly. + + partial void BeforeFromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject json, ref bool returnNow); + + /// + /// BeforeToJson will be called before the json serialization has commenced, allowing complete customization of the + /// object before it is serialized. + /// If you wish to disable the default serialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JSON container that the serialization result will be placed in. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeToJson(ref Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject instance to deserialize from. + internal Domain(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject json) + { + bool returnNow = false; + BeforeFromJson(json, ref returnNow); + if (returnNow) + { + return; + } + __trackedResource = new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.TrackedResource(json); + {_property = If( json?.PropertyT("properties"), out var __jsonProperties) ? Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.DomainProperties.FromJson(__jsonProperties) : Property;} + {_sku = If( json?.PropertyT("sku"), out var __jsonSku) ? Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ResourceSku.FromJson(__jsonSku) : Sku;} + {_identity = If( json?.PropertyT("identity"), out var __jsonIdentity) ? Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IdentityInfo.FromJson(__jsonIdentity) : Identity;} + {_systemData = If( json?.PropertyT("systemData"), out var __jsonSystemData) ? Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20.SystemData.FromJson(__jsonSystemData) : SystemData;} + AfterFromJson(json); + } + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDomain. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDomain. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDomain FromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject json ? new Domain(json) : null; + } + + /// + /// Serializes this instance of into a . + /// + /// The container to serialize this object into. If the caller + /// passes in null, a new instance will be created and returned to the caller. + /// Allows the caller to choose the depth of the serialization. See . + /// + /// a serialized instance of as a . + /// + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject(); + + bool returnNow = false; + BeforeToJson(ref container, ref returnNow); + if (returnNow) + { + return container; + } + __trackedResource?.ToJson(container, serializationMode); + AddIf( null != this._property ? (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode) this._property.ToJson(null,serializationMode) : null, "properties" ,container.Add ); + AddIf( null != this._sku ? (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode) this._sku.ToJson(null,serializationMode) : null, "sku" ,container.Add ); + AddIf( null != this._identity ? (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode) this._identity.ToJson(null,serializationMode) : null, "identity" ,container.Add ); + if (serializationMode.HasFlag(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SerializationMode.IncludeReadOnly)) + { + AddIf( null != this._systemData ? (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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/eventgrid/generated/api/Models/Api20211015Preview/DomainProperties.PowerShell.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/DomainProperties.PowerShell.cs new file mode 100644 index 000000000000..7354306e4cc3 --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/DomainProperties.PowerShell.cs @@ -0,0 +1,238 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell; + + /// Properties of the Event Grid Domain Resource. + [System.ComponentModel.TypeConverter(typeof(DomainPropertiesTypeConverter))] + public partial class DomainProperties + { + + /// + /// AfterDeserializeDictionary will be called after the deserialization has finished, allowing customization of the + /// object before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Collections.IDictionary content that should be used. + + partial void AfterDeserializeDictionary(global::System.Collections.IDictionary content); + + /// + /// AfterDeserializePSObject will be called after the deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Management.Automation.PSObject content that should be used. + + partial void AfterDeserializePSObject(global::System.Management.Automation.PSObject content); + + /// + /// BeforeDeserializeDictionary will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Collections.IDictionary content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializeDictionary(global::System.Collections.IDictionary content, ref bool returnNow); + + /// + /// BeforeDeserializePSObject will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializePSObject(global::System.Management.Automation.PSObject content, ref bool returnNow); + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDomainProperties DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new DomainProperties(content); + } + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDomainProperties DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new DomainProperties(content); + } + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + internal DomainProperties(global::System.Collections.IDictionary content) + { + bool returnNow = false; + BeforeDeserializeDictionary(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("InputSchemaMapping")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDomainPropertiesInternal)this).InputSchemaMapping = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IInputSchemaMapping) content.GetValueForProperty("InputSchemaMapping",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDomainPropertiesInternal)this).InputSchemaMapping, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.InputSchemaMappingTypeConverter.ConvertFrom); + } + if (content.Contains("PrivateEndpointConnection")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDomainPropertiesInternal)this).PrivateEndpointConnection = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPrivateEndpointConnection[]) content.GetValueForProperty("PrivateEndpointConnection",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDomainPropertiesInternal)this).PrivateEndpointConnection, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.PrivateEndpointConnectionTypeConverter.ConvertFrom)); + } + if (content.Contains("ProvisioningState")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDomainPropertiesInternal)this).ProvisioningState = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.DomainProvisioningState?) content.GetValueForProperty("ProvisioningState",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDomainPropertiesInternal)this).ProvisioningState, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.DomainProvisioningState.CreateFrom); + } + if (content.Contains("Endpoint")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDomainPropertiesInternal)this).Endpoint = (string) content.GetValueForProperty("Endpoint",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDomainPropertiesInternal)this).Endpoint, global::System.Convert.ToString); + } + if (content.Contains("InputSchema")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDomainPropertiesInternal)this).InputSchema = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.InputSchema?) content.GetValueForProperty("InputSchema",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDomainPropertiesInternal)this).InputSchema, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.InputSchema.CreateFrom); + } + if (content.Contains("MetricResourceId")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDomainPropertiesInternal)this).MetricResourceId = (string) content.GetValueForProperty("MetricResourceId",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDomainPropertiesInternal)this).MetricResourceId, global::System.Convert.ToString); + } + if (content.Contains("PublicNetworkAccess")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDomainPropertiesInternal)this).PublicNetworkAccess = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.PublicNetworkAccess?) content.GetValueForProperty("PublicNetworkAccess",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDomainPropertiesInternal)this).PublicNetworkAccess, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.PublicNetworkAccess.CreateFrom); + } + if (content.Contains("InboundIPRule")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDomainPropertiesInternal)this).InboundIPRule = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IInboundIPRule[]) content.GetValueForProperty("InboundIPRule",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDomainPropertiesInternal)this).InboundIPRule, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.InboundIPRuleTypeConverter.ConvertFrom)); + } + if (content.Contains("DisableLocalAuth")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDomainPropertiesInternal)this).DisableLocalAuth = (bool?) content.GetValueForProperty("DisableLocalAuth",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDomainPropertiesInternal)this).DisableLocalAuth, (__y)=> (bool) global::System.Convert.ChangeType(__y, typeof(bool))); + } + if (content.Contains("AutoCreateTopicWithFirstSubscription")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDomainPropertiesInternal)this).AutoCreateTopicWithFirstSubscription = (bool?) content.GetValueForProperty("AutoCreateTopicWithFirstSubscription",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDomainPropertiesInternal)this).AutoCreateTopicWithFirstSubscription, (__y)=> (bool) global::System.Convert.ChangeType(__y, typeof(bool))); + } + if (content.Contains("AutoDeleteTopicWithLastSubscription")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDomainPropertiesInternal)this).AutoDeleteTopicWithLastSubscription = (bool?) content.GetValueForProperty("AutoDeleteTopicWithLastSubscription",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDomainPropertiesInternal)this).AutoDeleteTopicWithLastSubscription, (__y)=> (bool) global::System.Convert.ChangeType(__y, typeof(bool))); + } + if (content.Contains("DataResidencyBoundary")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDomainPropertiesInternal)this).DataResidencyBoundary = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.DataResidencyBoundary?) content.GetValueForProperty("DataResidencyBoundary",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDomainPropertiesInternal)this).DataResidencyBoundary, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.DataResidencyBoundary.CreateFrom); + } + if (content.Contains("InputSchemaMappingInputSchemaMappingType")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDomainPropertiesInternal)this).InputSchemaMappingInputSchemaMappingType = (string) content.GetValueForProperty("InputSchemaMappingInputSchemaMappingType",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDomainPropertiesInternal)this).InputSchemaMappingInputSchemaMappingType, global::System.Convert.ToString); + } + AfterDeserializeDictionary(content); + } + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + internal DomainProperties(global::System.Management.Automation.PSObject content) + { + bool returnNow = false; + BeforeDeserializePSObject(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("InputSchemaMapping")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDomainPropertiesInternal)this).InputSchemaMapping = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IInputSchemaMapping) content.GetValueForProperty("InputSchemaMapping",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDomainPropertiesInternal)this).InputSchemaMapping, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.InputSchemaMappingTypeConverter.ConvertFrom); + } + if (content.Contains("PrivateEndpointConnection")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDomainPropertiesInternal)this).PrivateEndpointConnection = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPrivateEndpointConnection[]) content.GetValueForProperty("PrivateEndpointConnection",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDomainPropertiesInternal)this).PrivateEndpointConnection, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.PrivateEndpointConnectionTypeConverter.ConvertFrom)); + } + if (content.Contains("ProvisioningState")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDomainPropertiesInternal)this).ProvisioningState = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.DomainProvisioningState?) content.GetValueForProperty("ProvisioningState",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDomainPropertiesInternal)this).ProvisioningState, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.DomainProvisioningState.CreateFrom); + } + if (content.Contains("Endpoint")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDomainPropertiesInternal)this).Endpoint = (string) content.GetValueForProperty("Endpoint",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDomainPropertiesInternal)this).Endpoint, global::System.Convert.ToString); + } + if (content.Contains("InputSchema")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDomainPropertiesInternal)this).InputSchema = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.InputSchema?) content.GetValueForProperty("InputSchema",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDomainPropertiesInternal)this).InputSchema, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.InputSchema.CreateFrom); + } + if (content.Contains("MetricResourceId")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDomainPropertiesInternal)this).MetricResourceId = (string) content.GetValueForProperty("MetricResourceId",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDomainPropertiesInternal)this).MetricResourceId, global::System.Convert.ToString); + } + if (content.Contains("PublicNetworkAccess")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDomainPropertiesInternal)this).PublicNetworkAccess = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.PublicNetworkAccess?) content.GetValueForProperty("PublicNetworkAccess",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDomainPropertiesInternal)this).PublicNetworkAccess, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.PublicNetworkAccess.CreateFrom); + } + if (content.Contains("InboundIPRule")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDomainPropertiesInternal)this).InboundIPRule = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IInboundIPRule[]) content.GetValueForProperty("InboundIPRule",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDomainPropertiesInternal)this).InboundIPRule, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.InboundIPRuleTypeConverter.ConvertFrom)); + } + if (content.Contains("DisableLocalAuth")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDomainPropertiesInternal)this).DisableLocalAuth = (bool?) content.GetValueForProperty("DisableLocalAuth",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDomainPropertiesInternal)this).DisableLocalAuth, (__y)=> (bool) global::System.Convert.ChangeType(__y, typeof(bool))); + } + if (content.Contains("AutoCreateTopicWithFirstSubscription")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDomainPropertiesInternal)this).AutoCreateTopicWithFirstSubscription = (bool?) content.GetValueForProperty("AutoCreateTopicWithFirstSubscription",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDomainPropertiesInternal)this).AutoCreateTopicWithFirstSubscription, (__y)=> (bool) global::System.Convert.ChangeType(__y, typeof(bool))); + } + if (content.Contains("AutoDeleteTopicWithLastSubscription")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDomainPropertiesInternal)this).AutoDeleteTopicWithLastSubscription = (bool?) content.GetValueForProperty("AutoDeleteTopicWithLastSubscription",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDomainPropertiesInternal)this).AutoDeleteTopicWithLastSubscription, (__y)=> (bool) global::System.Convert.ChangeType(__y, typeof(bool))); + } + if (content.Contains("DataResidencyBoundary")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDomainPropertiesInternal)this).DataResidencyBoundary = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.DataResidencyBoundary?) content.GetValueForProperty("DataResidencyBoundary",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDomainPropertiesInternal)this).DataResidencyBoundary, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.DataResidencyBoundary.CreateFrom); + } + if (content.Contains("InputSchemaMappingInputSchemaMappingType")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDomainPropertiesInternal)this).InputSchemaMappingInputSchemaMappingType = (string) content.GetValueForProperty("InputSchemaMappingInputSchemaMappingType",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDomainPropertiesInternal)this).InputSchemaMappingInputSchemaMappingType, 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.EventGrid.Models.Api20211015Preview.IDomainProperties FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode.Parse(jsonText)); + + /// Serializes this instance to a json string. + + /// a containing this model serialized to JSON text. + public string ToJsonString() => ToJson(null, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// Properties of the Event Grid Domain Resource. + [System.ComponentModel.TypeConverter(typeof(DomainPropertiesTypeConverter))] + public partial interface IDomainProperties + + { + + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/DomainProperties.TypeConverter.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/DomainProperties.TypeConverter.cs new file mode 100644 index 000000000000..24775e897e7f --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/DomainProperties.TypeConverter.cs @@ -0,0 +1,146 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class DomainPropertiesTypeConverter : global::System.Management.Automation.PSTypeConverter + { + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false. + /// + public override bool CanConvertFrom(object sourceValue, global::System.Type destinationType) => CanConvertFrom(sourceValue); + + /// + /// Determines if the converter can convert the parameter to the . + /// + /// the instance to check if it can be converted to the type. + /// + /// true if the instance could be converted to a type, otherwise false + /// + public static bool CanConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return true; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + // we say yest to PSObjects + return true; + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + // we say yest to Hashtables/dictionaries + return true; + } + try + { + if (null != sourceValue.ToJsonString()) + { + return true; + } + } + catch + { + // Not one of our objects + } + try + { + string text = sourceValue.ToString()?.Trim(); + return true == text?.StartsWith("{") && true == text?.EndsWith("}") && Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonType.Object; + } + catch + { + // Doesn't look like it can be treated as JSON + } + return false; + } + + /// + /// Determines if the parameter can be converted to the parameter + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false + /// + public override bool CanConvertTo(object sourceValue, global::System.Type destinationType) => false; + + /// + /// Converts the parameter to the parameter using and + /// + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// + /// an instance of , or null if there is no suitable conversion. + /// + public override object ConvertFrom(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => ConvertFrom(sourceValue); + + /// + /// Converts the parameter to the parameter using and + /// + /// the value to convert into an instance of . + /// + /// an instance of , or null if there is no suitable conversion. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDomainProperties ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDomainProperties).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return DomainProperties.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return DomainProperties.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return DomainProperties.DeserializeFromDictionary(sourceValue); + } + return null; + } + + /// NotImplemented -- this will return null + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// will always return null. + public override object ConvertTo(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => null; + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/DomainProperties.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/DomainProperties.cs new file mode 100644 index 000000000000..9c1714acae58 --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/DomainProperties.cs @@ -0,0 +1,405 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Extensions; + + /// Properties of the Event Grid Domain Resource. + public partial class DomainProperties : + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDomainProperties, + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDomainPropertiesInternal + { + + /// Backing field for property. + private bool? _autoCreateTopicWithFirstSubscription; + + /// + /// This Boolean is used to specify the creation mechanism for 'all' the Event Grid Domain Topics associated with this Event + /// Grid Domain resource. + /// In this context, creation of domain topic can be auto-managed (when true) or self-managed (when false). The default value + /// for this property is true. + /// When this property is null or set to true, Event Grid is responsible of automatically creating the domain topic when the + /// first event subscription is + /// created at the scope of the domain topic. If this property is set to false, then creating the first event subscription + /// will require creating a domain topic + /// by the user. The self-management mode can be used if the user wants full control of when the domain topic is created, + /// while auto-managed mode provides the + /// flexibility to perform less operations and manage fewer resources by the user. Also, note that in auto-managed creation + /// mode, user is allowed to create the + /// domain topic on demand if needed. + /// + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Owned)] + public bool? AutoCreateTopicWithFirstSubscription { get => this._autoCreateTopicWithFirstSubscription; set => this._autoCreateTopicWithFirstSubscription = value; } + + /// Backing field for property. + private bool? _autoDeleteTopicWithLastSubscription; + + /// + /// This Boolean is used to specify the deletion mechanism for 'all' the Event Grid Domain Topics associated with this Event + /// Grid Domain resource. + /// In this context, deletion of domain topic can be auto-managed (when true) or self-managed (when false). The default value + /// for this property is true. + /// When this property is set to true, Event Grid is responsible of automatically deleting the domain topic when the last + /// event subscription at the scope + /// of the domain topic is deleted. If this property is set to false, then the user needs to manually delete the domain topic + /// when it is no longer needed + /// (e.g., when last event subscription is deleted and the resource needs to be cleaned up). The self-management mode can + /// be used if the user wants full + /// control of when the domain topic needs to be deleted, while auto-managed mode provides the flexibility to perform less + /// operations and manage fewer + /// resources by the user. + /// + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Owned)] + public bool? AutoDeleteTopicWithLastSubscription { get => this._autoDeleteTopicWithLastSubscription; set => this._autoDeleteTopicWithLastSubscription = value; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.DataResidencyBoundary? _dataResidencyBoundary; + + /// Data Residency Boundary of the resource. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Owned)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.DataResidencyBoundary? DataResidencyBoundary { get => this._dataResidencyBoundary; set => this._dataResidencyBoundary = value; } + + /// Backing field for property. + private bool? _disableLocalAuth; + + /// + /// This boolean is used to enable or disable local auth. Default value is false. When the property is set to true, only AAD + /// token will be used to authenticate if user is allowed to publish to the domain. + /// + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Owned)] + public bool? DisableLocalAuth { get => this._disableLocalAuth; set => this._disableLocalAuth = value; } + + /// Backing field for property. + private string _endpoint; + + /// + /// Endpoint for the Event Grid Domain Resource which is used for publishing the events. + /// + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Owned)] + public string Endpoint { get => this._endpoint; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IInboundIPRule[] _inboundIPRule; + + /// + /// This can be used to restrict traffic from specific IPs instead of all IPs. Note: These are considered only if PublicNetworkAccess + /// is enabled. + /// + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Owned)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IInboundIPRule[] InboundIPRule { get => this._inboundIPRule; set => this._inboundIPRule = value; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.InputSchema? _inputSchema; + + /// + /// This determines the format that Event Grid should expect for incoming events published to the Event Grid Domain Resource. + /// + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Owned)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.InputSchema? InputSchema { get => this._inputSchema; set => this._inputSchema = value; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IInputSchemaMapping _inputSchemaMapping; + + /// + /// Information about the InputSchemaMapping which specified the info about mapping event payload. + /// + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Owned)] + internal Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IInputSchemaMapping InputSchemaMapping { get => (this._inputSchemaMapping = this._inputSchemaMapping ?? new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.InputSchemaMapping()); set => this._inputSchemaMapping = value; } + + /// Type of the custom mapping + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Inlined)] + public string InputSchemaMappingInputSchemaMappingType { get => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IInputSchemaMappingInternal)InputSchemaMapping).Type; } + + /// Backing field for property. + private string _metricResourceId; + + /// Metric resource id for the Event Grid Domain Resource. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Owned)] + public string MetricResourceId { get => this._metricResourceId; } + + /// Internal Acessors for Endpoint + string Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDomainPropertiesInternal.Endpoint { get => this._endpoint; set { {_endpoint = value;} } } + + /// Internal Acessors for InputSchemaMapping + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IInputSchemaMapping Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDomainPropertiesInternal.InputSchemaMapping { get => (this._inputSchemaMapping = this._inputSchemaMapping ?? new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.InputSchemaMapping()); set { {_inputSchemaMapping = value;} } } + + /// Internal Acessors for InputSchemaMappingInputSchemaMappingType + string Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDomainPropertiesInternal.InputSchemaMappingInputSchemaMappingType { get => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IInputSchemaMappingInternal)InputSchemaMapping).Type; set => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IInputSchemaMappingInternal)InputSchemaMapping).Type = value; } + + /// Internal Acessors for MetricResourceId + string Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDomainPropertiesInternal.MetricResourceId { get => this._metricResourceId; set { {_metricResourceId = value;} } } + + /// Internal Acessors for PrivateEndpointConnection + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPrivateEndpointConnection[] Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDomainPropertiesInternal.PrivateEndpointConnection { get => this._privateEndpointConnection; set { {_privateEndpointConnection = value;} } } + + /// Internal Acessors for ProvisioningState + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.DomainProvisioningState? Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDomainPropertiesInternal.ProvisioningState { get => this._provisioningState; set { {_provisioningState = value;} } } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPrivateEndpointConnection[] _privateEndpointConnection; + + /// List of private endpoint connections. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Owned)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPrivateEndpointConnection[] PrivateEndpointConnection { get => this._privateEndpointConnection; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.DomainProvisioningState? _provisioningState; + + /// Provisioning state of the Event Grid Domain Resource. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Owned)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.DomainProvisioningState? ProvisioningState { get => this._provisioningState; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.PublicNetworkAccess? _publicNetworkAccess; + + /// + /// This determines if traffic is allowed over public network. By default it is enabled. + /// You can further restrict to specific IPs by configuring + /// + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Owned)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.PublicNetworkAccess? PublicNetworkAccess { get => this._publicNetworkAccess; set => this._publicNetworkAccess = value; } + + /// Creates an new instance. + public DomainProperties() + { + + } + } + /// Properties of the Event Grid Domain Resource. + public partial interface IDomainProperties : + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IJsonSerializable + { + /// + /// This Boolean is used to specify the creation mechanism for 'all' the Event Grid Domain Topics associated with this Event + /// Grid Domain resource. + /// In this context, creation of domain topic can be auto-managed (when true) or self-managed (when false). The default value + /// for this property is true. + /// When this property is null or set to true, Event Grid is responsible of automatically creating the domain topic when the + /// first event subscription is + /// created at the scope of the domain topic. If this property is set to false, then creating the first event subscription + /// will require creating a domain topic + /// by the user. The self-management mode can be used if the user wants full control of when the domain topic is created, + /// while auto-managed mode provides the + /// flexibility to perform less operations and manage fewer resources by the user. Also, note that in auto-managed creation + /// mode, user is allowed to create the + /// domain topic on demand if needed. + /// + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"This Boolean is used to specify the creation mechanism for 'all' the Event Grid Domain Topics associated with this Event Grid Domain resource. + In this context, creation of domain topic can be auto-managed (when true) or self-managed (when false). The default value for this property is true. + When this property is null or set to true, Event Grid is responsible of automatically creating the domain topic when the first event subscription is + created at the scope of the domain topic. If this property is set to false, then creating the first event subscription will require creating a domain topic + by the user. The self-management mode can be used if the user wants full control of when the domain topic is created, while auto-managed mode provides the + flexibility to perform less operations and manage fewer resources by the user. Also, note that in auto-managed creation mode, user is allowed to create the + domain topic on demand if needed.", + SerializedName = @"autoCreateTopicWithFirstSubscription", + PossibleTypes = new [] { typeof(bool) })] + bool? AutoCreateTopicWithFirstSubscription { get; set; } + /// + /// This Boolean is used to specify the deletion mechanism for 'all' the Event Grid Domain Topics associated with this Event + /// Grid Domain resource. + /// In this context, deletion of domain topic can be auto-managed (when true) or self-managed (when false). The default value + /// for this property is true. + /// When this property is set to true, Event Grid is responsible of automatically deleting the domain topic when the last + /// event subscription at the scope + /// of the domain topic is deleted. If this property is set to false, then the user needs to manually delete the domain topic + /// when it is no longer needed + /// (e.g., when last event subscription is deleted and the resource needs to be cleaned up). The self-management mode can + /// be used if the user wants full + /// control of when the domain topic needs to be deleted, while auto-managed mode provides the flexibility to perform less + /// operations and manage fewer + /// resources by the user. + /// + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"This Boolean is used to specify the deletion mechanism for 'all' the Event Grid Domain Topics associated with this Event Grid Domain resource. + In this context, deletion of domain topic can be auto-managed (when true) or self-managed (when false). The default value for this property is true. + When this property is set to true, Event Grid is responsible of automatically deleting the domain topic when the last event subscription at the scope + of the domain topic is deleted. If this property is set to false, then the user needs to manually delete the domain topic when it is no longer needed + (e.g., when last event subscription is deleted and the resource needs to be cleaned up). The self-management mode can be used if the user wants full + control of when the domain topic needs to be deleted, while auto-managed mode provides the flexibility to perform less operations and manage fewer + resources by the user.", + SerializedName = @"autoDeleteTopicWithLastSubscription", + PossibleTypes = new [] { typeof(bool) })] + bool? AutoDeleteTopicWithLastSubscription { get; set; } + /// Data Residency Boundary of the resource. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Data Residency Boundary of the resource.", + SerializedName = @"dataResidencyBoundary", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.DataResidencyBoundary) })] + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.DataResidencyBoundary? DataResidencyBoundary { get; set; } + /// + /// This boolean is used to enable or disable local auth. Default value is false. When the property is set to true, only AAD + /// token will be used to authenticate if user is allowed to publish to the domain. + /// + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"This boolean is used to enable or disable local auth. Default value is false. When the property is set to true, only AAD token will be used to authenticate if user is allowed to publish to the domain.", + SerializedName = @"disableLocalAuth", + PossibleTypes = new [] { typeof(bool) })] + bool? DisableLocalAuth { get; set; } + /// + /// Endpoint for the Event Grid Domain Resource which is used for publishing the events. + /// + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"Endpoint for the Event Grid Domain Resource which is used for publishing the events.", + SerializedName = @"endpoint", + PossibleTypes = new [] { typeof(string) })] + string Endpoint { get; } + /// + /// This can be used to restrict traffic from specific IPs instead of all IPs. Note: These are considered only if PublicNetworkAccess + /// is enabled. + /// + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"This can be used to restrict traffic from specific IPs instead of all IPs. Note: These are considered only if PublicNetworkAccess is enabled.", + SerializedName = @"inboundIpRules", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IInboundIPRule) })] + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IInboundIPRule[] InboundIPRule { get; set; } + /// + /// This determines the format that Event Grid should expect for incoming events published to the Event Grid Domain Resource. + /// + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"This determines the format that Event Grid should expect for incoming events published to the Event Grid Domain Resource.", + SerializedName = @"inputSchema", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.InputSchema) })] + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.InputSchema? InputSchema { get; set; } + /// Type of the custom mapping + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"Type of the custom mapping", + SerializedName = @"inputSchemaMappingType", + PossibleTypes = new [] { typeof(string) })] + string InputSchemaMappingInputSchemaMappingType { get; } + /// Metric resource id for the Event Grid Domain Resource. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"Metric resource id for the Event Grid Domain Resource.", + SerializedName = @"metricResourceId", + PossibleTypes = new [] { typeof(string) })] + string MetricResourceId { get; } + /// List of private endpoint connections. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"List of private endpoint connections.", + SerializedName = @"privateEndpointConnections", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPrivateEndpointConnection) })] + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPrivateEndpointConnection[] PrivateEndpointConnection { get; } + /// Provisioning state of the Event Grid Domain Resource. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"Provisioning state of the Event Grid Domain Resource.", + SerializedName = @"provisioningState", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.DomainProvisioningState) })] + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.DomainProvisioningState? ProvisioningState { get; } + /// + /// This determines if traffic is allowed over public network. By default it is enabled. + /// You can further restrict to specific IPs by configuring + /// + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"This determines if traffic is allowed over public network. By default it is enabled. + You can further restrict to specific IPs by configuring ", + SerializedName = @"publicNetworkAccess", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.PublicNetworkAccess) })] + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.PublicNetworkAccess? PublicNetworkAccess { get; set; } + + } + /// Properties of the Event Grid Domain Resource. + internal partial interface IDomainPropertiesInternal + + { + /// + /// This Boolean is used to specify the creation mechanism for 'all' the Event Grid Domain Topics associated with this Event + /// Grid Domain resource. + /// In this context, creation of domain topic can be auto-managed (when true) or self-managed (when false). The default value + /// for this property is true. + /// When this property is null or set to true, Event Grid is responsible of automatically creating the domain topic when the + /// first event subscription is + /// created at the scope of the domain topic. If this property is set to false, then creating the first event subscription + /// will require creating a domain topic + /// by the user. The self-management mode can be used if the user wants full control of when the domain topic is created, + /// while auto-managed mode provides the + /// flexibility to perform less operations and manage fewer resources by the user. Also, note that in auto-managed creation + /// mode, user is allowed to create the + /// domain topic on demand if needed. + /// + bool? AutoCreateTopicWithFirstSubscription { get; set; } + /// + /// This Boolean is used to specify the deletion mechanism for 'all' the Event Grid Domain Topics associated with this Event + /// Grid Domain resource. + /// In this context, deletion of domain topic can be auto-managed (when true) or self-managed (when false). The default value + /// for this property is true. + /// When this property is set to true, Event Grid is responsible of automatically deleting the domain topic when the last + /// event subscription at the scope + /// of the domain topic is deleted. If this property is set to false, then the user needs to manually delete the domain topic + /// when it is no longer needed + /// (e.g., when last event subscription is deleted and the resource needs to be cleaned up). The self-management mode can + /// be used if the user wants full + /// control of when the domain topic needs to be deleted, while auto-managed mode provides the flexibility to perform less + /// operations and manage fewer + /// resources by the user. + /// + bool? AutoDeleteTopicWithLastSubscription { get; set; } + /// Data Residency Boundary of the resource. + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.DataResidencyBoundary? DataResidencyBoundary { get; set; } + /// + /// This boolean is used to enable or disable local auth. Default value is false. When the property is set to true, only AAD + /// token will be used to authenticate if user is allowed to publish to the domain. + /// + bool? DisableLocalAuth { get; set; } + /// + /// Endpoint for the Event Grid Domain Resource which is used for publishing the events. + /// + string Endpoint { get; set; } + /// + /// This can be used to restrict traffic from specific IPs instead of all IPs. Note: These are considered only if PublicNetworkAccess + /// is enabled. + /// + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IInboundIPRule[] InboundIPRule { get; set; } + /// + /// This determines the format that Event Grid should expect for incoming events published to the Event Grid Domain Resource. + /// + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.InputSchema? InputSchema { get; set; } + /// + /// Information about the InputSchemaMapping which specified the info about mapping event payload. + /// + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IInputSchemaMapping InputSchemaMapping { get; set; } + /// Type of the custom mapping + string InputSchemaMappingInputSchemaMappingType { get; set; } + /// Metric resource id for the Event Grid Domain Resource. + string MetricResourceId { get; set; } + /// List of private endpoint connections. + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPrivateEndpointConnection[] PrivateEndpointConnection { get; set; } + /// Provisioning state of the Event Grid Domain Resource. + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.DomainProvisioningState? ProvisioningState { get; set; } + /// + /// This determines if traffic is allowed over public network. By default it is enabled. + /// You can further restrict to specific IPs by configuring + /// + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.PublicNetworkAccess? PublicNetworkAccess { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/DomainProperties.json.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/DomainProperties.json.cs new file mode 100644 index 000000000000..2c8e5f3a0ecf --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/DomainProperties.json.cs @@ -0,0 +1,156 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Extensions; + + /// Properties of the Event Grid Domain Resource. + public partial class DomainProperties + { + + /// + /// AfterFromJson will be called after the json deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JsonNode that should be deserialized into this object. + + partial void AfterFromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json erialization has finished, allowing customization of the before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JSON container that the serialization result will be placed in. + + partial void AfterToJson(ref Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject container); + + /// + /// BeforeFromJson will be called before the json deserialization has commenced, allowing complete customization of + /// the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JsonNode that should be deserialized into this object. + /// Determines if the rest of the deserialization should be processed, or if the method should return + /// instantly. + + partial void BeforeFromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject json, ref bool returnNow); + + /// + /// BeforeToJson will be called before the json serialization has commenced, allowing complete customization of the + /// object before it is serialized. + /// If you wish to disable the default serialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JSON container that the serialization result will be placed in. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeToJson(ref Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject instance to deserialize from. + internal DomainProperties(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject json) + { + bool returnNow = false; + BeforeFromJson(json, ref returnNow); + if (returnNow) + { + return; + } + {_inputSchemaMapping = If( json?.PropertyT("inputSchemaMapping"), out var __jsonInputSchemaMapping) ? Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.InputSchemaMapping.FromJson(__jsonInputSchemaMapping) : InputSchemaMapping;} + {_privateEndpointConnection = If( json?.PropertyT("privateEndpointConnections"), out var __jsonPrivateEndpointConnections) ? If( __jsonPrivateEndpointConnections as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Models.Api20211015Preview.IPrivateEndpointConnection) (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.PrivateEndpointConnection.FromJson(__u) )) ))() : null : PrivateEndpointConnection;} + {_provisioningState = If( json?.PropertyT("provisioningState"), out var __jsonProvisioningState) ? (string)__jsonProvisioningState : (string)ProvisioningState;} + {_endpoint = If( json?.PropertyT("endpoint"), out var __jsonEndpoint) ? (string)__jsonEndpoint : (string)Endpoint;} + {_inputSchema = If( json?.PropertyT("inputSchema"), out var __jsonInputSchema) ? (string)__jsonInputSchema : (string)InputSchema;} + {_metricResourceId = If( json?.PropertyT("metricResourceId"), out var __jsonMetricResourceId) ? (string)__jsonMetricResourceId : (string)MetricResourceId;} + {_publicNetworkAccess = If( json?.PropertyT("publicNetworkAccess"), out var __jsonPublicNetworkAccess) ? (string)__jsonPublicNetworkAccess : (string)PublicNetworkAccess;} + {_inboundIPRule = If( json?.PropertyT("inboundIpRules"), out var __jsonInboundIPRules) ? If( __jsonInboundIPRules as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Models.Api20211015Preview.IInboundIPRule) (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.InboundIPRule.FromJson(__p) )) ))() : null : InboundIPRule;} + {_disableLocalAuth = If( json?.PropertyT("disableLocalAuth"), out var __jsonDisableLocalAuth) ? (bool?)__jsonDisableLocalAuth : DisableLocalAuth;} + {_autoCreateTopicWithFirstSubscription = If( json?.PropertyT("autoCreateTopicWithFirstSubscription"), out var __jsonAutoCreateTopicWithFirstSubscription) ? (bool?)__jsonAutoCreateTopicWithFirstSubscription : AutoCreateTopicWithFirstSubscription;} + {_autoDeleteTopicWithLastSubscription = If( json?.PropertyT("autoDeleteTopicWithLastSubscription"), out var __jsonAutoDeleteTopicWithLastSubscription) ? (bool?)__jsonAutoDeleteTopicWithLastSubscription : AutoDeleteTopicWithLastSubscription;} + {_dataResidencyBoundary = If( json?.PropertyT("dataResidencyBoundary"), out var __jsonDataResidencyBoundary) ? (string)__jsonDataResidencyBoundary : (string)DataResidencyBoundary;} + AfterFromJson(json); + } + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDomainProperties. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDomainProperties. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDomainProperties FromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject json ? new DomainProperties(json) : null; + } + + /// + /// Serializes this instance of into a . + /// + /// The container to serialize this object into. If the caller + /// passes in null, a new instance will be created and returned to the caller. + /// Allows the caller to choose the depth of the serialization. See . + /// + /// a serialized instance of as a . + /// + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject(); + + bool returnNow = false; + BeforeToJson(ref container, ref returnNow); + if (returnNow) + { + return container; + } + AddIf( null != this._inputSchemaMapping ? (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode) this._inputSchemaMapping.ToJson(null,serializationMode) : null, "inputSchemaMapping" ,container.Add ); + if (serializationMode.HasFlag(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SerializationMode.IncludeReadOnly)) + { + if (null != this._privateEndpointConnection) + { + var __w = new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.XNodeArray(); + foreach( var __x in this._privateEndpointConnection ) + { + AddIf(__x?.ToJson(null, serializationMode) ,__w.Add); + } + container.Add("privateEndpointConnections",__w); + } + } + if (serializationMode.HasFlag(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SerializationMode.IncludeReadOnly)) + { + AddIf( null != (((object)this._provisioningState)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonString(this._provisioningState.ToString()) : null, "provisioningState" ,container.Add ); + } + if (serializationMode.HasFlag(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SerializationMode.IncludeReadOnly)) + { + AddIf( null != (((object)this._endpoint)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonString(this._endpoint.ToString()) : null, "endpoint" ,container.Add ); + } + AddIf( null != (((object)this._inputSchema)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonString(this._inputSchema.ToString()) : null, "inputSchema" ,container.Add ); + if (serializationMode.HasFlag(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SerializationMode.IncludeReadOnly)) + { + AddIf( null != (((object)this._metricResourceId)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonString(this._metricResourceId.ToString()) : null, "metricResourceId" ,container.Add ); + } + AddIf( null != (((object)this._publicNetworkAccess)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonString(this._publicNetworkAccess.ToString()) : null, "publicNetworkAccess" ,container.Add ); + if (null != this._inboundIPRule) + { + var __r = new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.XNodeArray(); + foreach( var __s in this._inboundIPRule ) + { + AddIf(__s?.ToJson(null, serializationMode) ,__r.Add); + } + container.Add("inboundIpRules",__r); + } + AddIf( null != this._disableLocalAuth ? (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode)new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonBoolean((bool)this._disableLocalAuth) : null, "disableLocalAuth" ,container.Add ); + AddIf( null != this._autoCreateTopicWithFirstSubscription ? (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode)new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonBoolean((bool)this._autoCreateTopicWithFirstSubscription) : null, "autoCreateTopicWithFirstSubscription" ,container.Add ); + AddIf( null != this._autoDeleteTopicWithLastSubscription ? (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode)new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonBoolean((bool)this._autoDeleteTopicWithLastSubscription) : null, "autoDeleteTopicWithLastSubscription" ,container.Add ); + AddIf( null != (((object)this._dataResidencyBoundary)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonString(this._dataResidencyBoundary.ToString()) : null, "dataResidencyBoundary" ,container.Add ); + AfterToJson(ref container); + return container; + } + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/DomainRegenerateKeyRequest.PowerShell.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/DomainRegenerateKeyRequest.PowerShell.cs new file mode 100644 index 000000000000..e2e7476402f9 --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/DomainRegenerateKeyRequest.PowerShell.cs @@ -0,0 +1,144 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell; + + /// Domain regenerate share access key request. + [System.ComponentModel.TypeConverter(typeof(DomainRegenerateKeyRequestTypeConverter))] + public partial class DomainRegenerateKeyRequest + { + + /// + /// AfterDeserializeDictionary will be called after the deserialization has finished, allowing customization of the + /// object before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Collections.IDictionary content that should be used. + + partial void AfterDeserializeDictionary(global::System.Collections.IDictionary content); + + /// + /// AfterDeserializePSObject will be called after the deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Management.Automation.PSObject content that should be used. + + partial void AfterDeserializePSObject(global::System.Management.Automation.PSObject content); + + /// + /// BeforeDeserializeDictionary will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Collections.IDictionary content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializeDictionary(global::System.Collections.IDictionary content, ref bool returnNow); + + /// + /// BeforeDeserializePSObject will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializePSObject(global::System.Management.Automation.PSObject content, ref bool returnNow); + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDomainRegenerateKeyRequest DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new DomainRegenerateKeyRequest(content); + } + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDomainRegenerateKeyRequest DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new DomainRegenerateKeyRequest(content); + } + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + internal DomainRegenerateKeyRequest(global::System.Collections.IDictionary content) + { + bool returnNow = false; + BeforeDeserializeDictionary(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("KeyName")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDomainRegenerateKeyRequestInternal)this).KeyName = (string) content.GetValueForProperty("KeyName",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDomainRegenerateKeyRequestInternal)this).KeyName, global::System.Convert.ToString); + } + AfterDeserializeDictionary(content); + } + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + internal DomainRegenerateKeyRequest(global::System.Management.Automation.PSObject content) + { + bool returnNow = false; + BeforeDeserializePSObject(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("KeyName")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDomainRegenerateKeyRequestInternal)this).KeyName = (string) content.GetValueForProperty("KeyName",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDomainRegenerateKeyRequestInternal)this).KeyName, 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.EventGrid.Models.Api20211015Preview.IDomainRegenerateKeyRequest FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode.Parse(jsonText)); + + /// Serializes this instance to a json string. + + /// a containing this model serialized to JSON text. + public string ToJsonString() => ToJson(null, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// Domain regenerate share access key request. + [System.ComponentModel.TypeConverter(typeof(DomainRegenerateKeyRequestTypeConverter))] + public partial interface IDomainRegenerateKeyRequest + + { + + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/DomainRegenerateKeyRequest.TypeConverter.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/DomainRegenerateKeyRequest.TypeConverter.cs new file mode 100644 index 000000000000..201ccc811df8 --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/DomainRegenerateKeyRequest.TypeConverter.cs @@ -0,0 +1,147 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class DomainRegenerateKeyRequestTypeConverter : global::System.Management.Automation.PSTypeConverter + { + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false. + /// + public override bool CanConvertFrom(object sourceValue, global::System.Type destinationType) => CanConvertFrom(sourceValue); + + /// + /// Determines if the converter can convert the parameter to the . + /// + /// the instance to check if it can be converted to the type. + /// + /// true if the instance could be converted to a type, otherwise false + /// + public static bool CanConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return true; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + // we say yest to PSObjects + return true; + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + // we say yest to Hashtables/dictionaries + return true; + } + try + { + if (null != sourceValue.ToJsonString()) + { + return true; + } + } + catch + { + // Not one of our objects + } + try + { + string text = sourceValue.ToString()?.Trim(); + return true == text?.StartsWith("{") && true == text?.EndsWith("}") && Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonType.Object; + } + catch + { + // Doesn't look like it can be treated as JSON + } + return false; + } + + /// + /// Determines if the parameter can be converted to the parameter + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false + /// + public override bool CanConvertTo(object sourceValue, global::System.Type destinationType) => false; + + /// + /// Converts the parameter to the parameter using and + /// + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// + /// an instance of , or null if there is no suitable conversion. + /// + public override object ConvertFrom(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => ConvertFrom(sourceValue); + + /// + /// Converts the parameter to the parameter using and + /// + /// the value to convert into an instance of . + /// + /// an instance of , or null if there is no suitable conversion. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDomainRegenerateKeyRequest ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDomainRegenerateKeyRequest).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return DomainRegenerateKeyRequest.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return DomainRegenerateKeyRequest.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return DomainRegenerateKeyRequest.DeserializeFromDictionary(sourceValue); + } + return null; + } + + /// NotImplemented -- this will return null + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// will always return null. + public override object ConvertTo(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => null; + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/DomainRegenerateKeyRequest.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/DomainRegenerateKeyRequest.cs new file mode 100644 index 000000000000..64f5794e828b --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/DomainRegenerateKeyRequest.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.EventGrid.Models.Api20211015Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Extensions; + + /// Domain regenerate share access key request. + public partial class DomainRegenerateKeyRequest : + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDomainRegenerateKeyRequest, + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDomainRegenerateKeyRequestInternal + { + + /// Backing field for property. + private string _keyName; + + /// Key name to regenerate key1 or key2. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Owned)] + public string KeyName { get => this._keyName; set => this._keyName = value; } + + /// Creates an new instance. + public DomainRegenerateKeyRequest() + { + + } + } + /// Domain regenerate share access key request. + public partial interface IDomainRegenerateKeyRequest : + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IJsonSerializable + { + /// Key name to regenerate key1 or key2. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Key name to regenerate key1 or key2.", + SerializedName = @"keyName", + PossibleTypes = new [] { typeof(string) })] + string KeyName { get; set; } + + } + /// Domain regenerate share access key request. + internal partial interface IDomainRegenerateKeyRequestInternal + + { + /// Key name to regenerate key1 or key2. + string KeyName { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/DomainRegenerateKeyRequest.json.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/DomainRegenerateKeyRequest.json.cs new file mode 100644 index 000000000000..2c72af7afb29 --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/DomainRegenerateKeyRequest.json.cs @@ -0,0 +1,106 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Extensions; + + /// Domain regenerate share access key request. + public partial class DomainRegenerateKeyRequest + { + + /// + /// AfterFromJson will be called after the json deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JsonNode that should be deserialized into this object. + + partial void AfterFromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json erialization has finished, allowing customization of the before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JSON container that the serialization result will be placed in. + + partial void AfterToJson(ref Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject container); + + /// + /// BeforeFromJson will be called before the json deserialization has commenced, allowing complete customization of + /// the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JsonNode that should be deserialized into this object. + /// Determines if the rest of the deserialization should be processed, or if the method should return + /// instantly. + + partial void BeforeFromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject json, ref bool returnNow); + + /// + /// BeforeToJson will be called before the json serialization has commenced, allowing complete customization of the + /// object before it is serialized. + /// If you wish to disable the default serialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JSON container that the serialization result will be placed in. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeToJson(ref Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject instance to deserialize from. + internal DomainRegenerateKeyRequest(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject json) + { + bool returnNow = false; + BeforeFromJson(json, ref returnNow); + if (returnNow) + { + return; + } + {_keyName = If( json?.PropertyT("keyName"), out var __jsonKeyName) ? (string)__jsonKeyName : (string)KeyName;} + AfterFromJson(json); + } + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDomainRegenerateKeyRequest. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDomainRegenerateKeyRequest. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDomainRegenerateKeyRequest FromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject json ? new DomainRegenerateKeyRequest(json) : null; + } + + /// + /// Serializes this instance of into a . + /// + /// The container to serialize this object into. If the caller + /// passes in null, a new instance will be created and returned to the caller. + /// Allows the caller to choose the depth of the serialization. See . + /// + /// a serialized instance of as a . + /// + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject(); + + bool returnNow = false; + BeforeToJson(ref container, ref returnNow); + if (returnNow) + { + return container; + } + AddIf( null != (((object)this._keyName)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonString(this._keyName.ToString()) : null, "keyName" ,container.Add ); + AfterToJson(ref container); + return container; + } + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/DomainSharedAccessKeys.PowerShell.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/DomainSharedAccessKeys.PowerShell.cs new file mode 100644 index 000000000000..78cfb38655c4 --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/DomainSharedAccessKeys.PowerShell.cs @@ -0,0 +1,152 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell; + + /// Shared access keys of the Domain. + [System.ComponentModel.TypeConverter(typeof(DomainSharedAccessKeysTypeConverter))] + public partial class DomainSharedAccessKeys + { + + /// + /// AfterDeserializeDictionary will be called after the deserialization has finished, allowing customization of the + /// object before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Collections.IDictionary content that should be used. + + partial void AfterDeserializeDictionary(global::System.Collections.IDictionary content); + + /// + /// AfterDeserializePSObject will be called after the deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Management.Automation.PSObject content that should be used. + + partial void AfterDeserializePSObject(global::System.Management.Automation.PSObject content); + + /// + /// BeforeDeserializeDictionary will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Collections.IDictionary content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializeDictionary(global::System.Collections.IDictionary content, ref bool returnNow); + + /// + /// BeforeDeserializePSObject will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializePSObject(global::System.Management.Automation.PSObject content, ref bool returnNow); + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDomainSharedAccessKeys DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new DomainSharedAccessKeys(content); + } + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDomainSharedAccessKeys DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new DomainSharedAccessKeys(content); + } + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + internal DomainSharedAccessKeys(global::System.Collections.IDictionary content) + { + bool returnNow = false; + BeforeDeserializeDictionary(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("Key1")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDomainSharedAccessKeysInternal)this).Key1 = (string) content.GetValueForProperty("Key1",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDomainSharedAccessKeysInternal)this).Key1, global::System.Convert.ToString); + } + if (content.Contains("Key2")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDomainSharedAccessKeysInternal)this).Key2 = (string) content.GetValueForProperty("Key2",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDomainSharedAccessKeysInternal)this).Key2, global::System.Convert.ToString); + } + AfterDeserializeDictionary(content); + } + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + internal DomainSharedAccessKeys(global::System.Management.Automation.PSObject content) + { + bool returnNow = false; + BeforeDeserializePSObject(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("Key1")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDomainSharedAccessKeysInternal)this).Key1 = (string) content.GetValueForProperty("Key1",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDomainSharedAccessKeysInternal)this).Key1, global::System.Convert.ToString); + } + if (content.Contains("Key2")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDomainSharedAccessKeysInternal)this).Key2 = (string) content.GetValueForProperty("Key2",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDomainSharedAccessKeysInternal)this).Key2, 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.EventGrid.Models.Api20211015Preview.IDomainSharedAccessKeys FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode.Parse(jsonText)); + + /// Serializes this instance to a json string. + + /// a containing this model serialized to JSON text. + public string ToJsonString() => ToJson(null, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// Shared access keys of the Domain. + [System.ComponentModel.TypeConverter(typeof(DomainSharedAccessKeysTypeConverter))] + public partial interface IDomainSharedAccessKeys + + { + + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/DomainSharedAccessKeys.TypeConverter.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/DomainSharedAccessKeys.TypeConverter.cs new file mode 100644 index 000000000000..4aa669ed2da1 --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/DomainSharedAccessKeys.TypeConverter.cs @@ -0,0 +1,147 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class DomainSharedAccessKeysTypeConverter : global::System.Management.Automation.PSTypeConverter + { + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false. + /// + public override bool CanConvertFrom(object sourceValue, global::System.Type destinationType) => CanConvertFrom(sourceValue); + + /// + /// Determines if the converter can convert the parameter to the . + /// + /// the instance to check if it can be converted to the type. + /// + /// true if the instance could be converted to a type, otherwise false + /// + public static bool CanConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return true; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + // we say yest to PSObjects + return true; + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + // we say yest to Hashtables/dictionaries + return true; + } + try + { + if (null != sourceValue.ToJsonString()) + { + return true; + } + } + catch + { + // Not one of our objects + } + try + { + string text = sourceValue.ToString()?.Trim(); + return true == text?.StartsWith("{") && true == text?.EndsWith("}") && Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonType.Object; + } + catch + { + // Doesn't look like it can be treated as JSON + } + return false; + } + + /// + /// Determines if the parameter can be converted to the parameter + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false + /// + public override bool CanConvertTo(object sourceValue, global::System.Type destinationType) => false; + + /// + /// Converts the parameter to the parameter using and + /// + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// + /// an instance of , or null if there is no suitable conversion. + /// + public override object ConvertFrom(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => ConvertFrom(sourceValue); + + /// + /// Converts the parameter to the parameter using and + /// + /// the value to convert into an instance of . + /// + /// an instance of , or null if there is no suitable conversion. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDomainSharedAccessKeys ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDomainSharedAccessKeys).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return DomainSharedAccessKeys.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return DomainSharedAccessKeys.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return DomainSharedAccessKeys.DeserializeFromDictionary(sourceValue); + } + return null; + } + + /// NotImplemented -- this will return null + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// will always return null. + public override object ConvertTo(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => null; + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/DomainSharedAccessKeys.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/DomainSharedAccessKeys.cs new file mode 100644 index 000000000000..b64174945285 --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/DomainSharedAccessKeys.cs @@ -0,0 +1,68 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Extensions; + + /// Shared access keys of the Domain. + public partial class DomainSharedAccessKeys : + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDomainSharedAccessKeys, + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDomainSharedAccessKeysInternal + { + + /// Backing field for property. + private string _key1; + + /// Shared access key1 for the domain. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Owned)] + public string Key1 { get => this._key1; set => this._key1 = value; } + + /// Backing field for property. + private string _key2; + + /// Shared access key2 for the domain. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Owned)] + public string Key2 { get => this._key2; set => this._key2 = value; } + + /// Creates an new instance. + public DomainSharedAccessKeys() + { + + } + } + /// Shared access keys of the Domain. + public partial interface IDomainSharedAccessKeys : + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IJsonSerializable + { + /// Shared access key1 for the domain. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Shared access key1 for the domain.", + SerializedName = @"key1", + PossibleTypes = new [] { typeof(string) })] + string Key1 { get; set; } + /// Shared access key2 for the domain. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Shared access key2 for the domain.", + SerializedName = @"key2", + PossibleTypes = new [] { typeof(string) })] + string Key2 { get; set; } + + } + /// Shared access keys of the Domain. + internal partial interface IDomainSharedAccessKeysInternal + + { + /// Shared access key1 for the domain. + string Key1 { get; set; } + /// Shared access key2 for the domain. + string Key2 { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/DomainSharedAccessKeys.json.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/DomainSharedAccessKeys.json.cs new file mode 100644 index 000000000000..dc1f2092da0c --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/DomainSharedAccessKeys.json.cs @@ -0,0 +1,108 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Extensions; + + /// Shared access keys of the Domain. + public partial class DomainSharedAccessKeys + { + + /// + /// AfterFromJson will be called after the json deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JsonNode that should be deserialized into this object. + + partial void AfterFromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json erialization has finished, allowing customization of the before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JSON container that the serialization result will be placed in. + + partial void AfterToJson(ref Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject container); + + /// + /// BeforeFromJson will be called before the json deserialization has commenced, allowing complete customization of + /// the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JsonNode that should be deserialized into this object. + /// Determines if the rest of the deserialization should be processed, or if the method should return + /// instantly. + + partial void BeforeFromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject json, ref bool returnNow); + + /// + /// BeforeToJson will be called before the json serialization has commenced, allowing complete customization of the + /// object before it is serialized. + /// If you wish to disable the default serialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JSON container that the serialization result will be placed in. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeToJson(ref Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject instance to deserialize from. + internal DomainSharedAccessKeys(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject json) + { + bool returnNow = false; + BeforeFromJson(json, ref returnNow); + if (returnNow) + { + return; + } + {_key1 = If( json?.PropertyT("key1"), out var __jsonKey1) ? (string)__jsonKey1 : (string)Key1;} + {_key2 = If( json?.PropertyT("key2"), out var __jsonKey2) ? (string)__jsonKey2 : (string)Key2;} + AfterFromJson(json); + } + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDomainSharedAccessKeys. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDomainSharedAccessKeys. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDomainSharedAccessKeys FromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject json ? new DomainSharedAccessKeys(json) : null; + } + + /// + /// Serializes this instance of into a . + /// + /// The container to serialize this object into. If the caller + /// passes in null, a new instance will be created and returned to the caller. + /// Allows the caller to choose the depth of the serialization. See . + /// + /// a serialized instance of as a . + /// + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject(); + + bool returnNow = false; + BeforeToJson(ref container, ref returnNow); + if (returnNow) + { + return container; + } + AddIf( null != (((object)this._key1)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonString(this._key1.ToString()) : null, "key1" ,container.Add ); + AddIf( null != (((object)this._key2)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonString(this._key2.ToString()) : null, "key2" ,container.Add ); + AfterToJson(ref container); + return container; + } + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/DomainTopic.PowerShell.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/DomainTopic.PowerShell.cs new file mode 100644 index 000000000000..c54a6a7d3ee6 --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/DomainTopic.PowerShell.cs @@ -0,0 +1,230 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell; + + /// Domain Topic. + [System.ComponentModel.TypeConverter(typeof(DomainTopicTypeConverter))] + public partial class DomainTopic + { + + /// + /// AfterDeserializeDictionary will be called after the deserialization has finished, allowing customization of the + /// object before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Collections.IDictionary content that should be used. + + partial void AfterDeserializeDictionary(global::System.Collections.IDictionary content); + + /// + /// AfterDeserializePSObject will be called after the deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Management.Automation.PSObject content that should be used. + + partial void AfterDeserializePSObject(global::System.Management.Automation.PSObject content); + + /// + /// BeforeDeserializeDictionary will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Collections.IDictionary content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializeDictionary(global::System.Collections.IDictionary content, ref bool returnNow); + + /// + /// BeforeDeserializePSObject will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializePSObject(global::System.Management.Automation.PSObject content, ref bool returnNow); + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDomainTopic DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new DomainTopic(content); + } + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDomainTopic DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new DomainTopic(content); + } + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + internal DomainTopic(global::System.Collections.IDictionary content) + { + bool returnNow = false; + BeforeDeserializeDictionary(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("Property")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDomainTopicInternal)this).Property = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDomainTopicProperties) content.GetValueForProperty("Property",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDomainTopicInternal)this).Property, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.DomainTopicPropertiesTypeConverter.ConvertFrom); + } + if (content.Contains("SystemData")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDomainTopicInternal)this).SystemData = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20.ISystemData) content.GetValueForProperty("SystemData",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDomainTopicInternal)this).SystemData, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20.SystemDataTypeConverter.ConvertFrom); + } + if (content.Contains("Id")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IResourceInternal)this).Id = (string) content.GetValueForProperty("Id",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IResourceInternal)this).Id, global::System.Convert.ToString); + } + if (content.Contains("Name")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IResourceInternal)this).Name = (string) content.GetValueForProperty("Name",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IResourceInternal)this).Name, global::System.Convert.ToString); + } + if (content.Contains("Type")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IResourceInternal)this).Type = (string) content.GetValueForProperty("Type",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IResourceInternal)this).Type, global::System.Convert.ToString); + } + if (content.Contains("SystemDataCreatedBy")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDomainTopicInternal)this).SystemDataCreatedBy = (string) content.GetValueForProperty("SystemDataCreatedBy",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDomainTopicInternal)this).SystemDataCreatedBy, global::System.Convert.ToString); + } + if (content.Contains("SystemDataCreatedAt")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDomainTopicInternal)this).SystemDataCreatedAt = (global::System.DateTime?) content.GetValueForProperty("SystemDataCreatedAt",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDomainTopicInternal)this).SystemDataCreatedAt, (v) => v is global::System.DateTime _v ? _v : global::System.Xml.XmlConvert.ToDateTime( v.ToString() , global::System.Xml.XmlDateTimeSerializationMode.Unspecified)); + } + if (content.Contains("ProvisioningState")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDomainTopicInternal)this).ProvisioningState = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.DomainTopicProvisioningState?) content.GetValueForProperty("ProvisioningState",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDomainTopicInternal)this).ProvisioningState, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.DomainTopicProvisioningState.CreateFrom); + } + if (content.Contains("SystemDataCreatedByType")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDomainTopicInternal)this).SystemDataCreatedByType = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.CreatedByType?) content.GetValueForProperty("SystemDataCreatedByType",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDomainTopicInternal)this).SystemDataCreatedByType, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.CreatedByType.CreateFrom); + } + if (content.Contains("SystemDataLastModifiedBy")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDomainTopicInternal)this).SystemDataLastModifiedBy = (string) content.GetValueForProperty("SystemDataLastModifiedBy",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDomainTopicInternal)this).SystemDataLastModifiedBy, global::System.Convert.ToString); + } + if (content.Contains("SystemDataLastModifiedByType")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDomainTopicInternal)this).SystemDataLastModifiedByType = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.CreatedByType?) content.GetValueForProperty("SystemDataLastModifiedByType",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDomainTopicInternal)this).SystemDataLastModifiedByType, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.CreatedByType.CreateFrom); + } + if (content.Contains("SystemDataLastModifiedAt")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDomainTopicInternal)this).SystemDataLastModifiedAt = (global::System.DateTime?) content.GetValueForProperty("SystemDataLastModifiedAt",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDomainTopicInternal)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 DomainTopic(global::System.Management.Automation.PSObject content) + { + bool returnNow = false; + BeforeDeserializePSObject(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("Property")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDomainTopicInternal)this).Property = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDomainTopicProperties) content.GetValueForProperty("Property",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDomainTopicInternal)this).Property, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.DomainTopicPropertiesTypeConverter.ConvertFrom); + } + if (content.Contains("SystemData")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDomainTopicInternal)this).SystemData = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20.ISystemData) content.GetValueForProperty("SystemData",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDomainTopicInternal)this).SystemData, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20.SystemDataTypeConverter.ConvertFrom); + } + if (content.Contains("Id")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IResourceInternal)this).Id = (string) content.GetValueForProperty("Id",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IResourceInternal)this).Id, global::System.Convert.ToString); + } + if (content.Contains("Name")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IResourceInternal)this).Name = (string) content.GetValueForProperty("Name",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IResourceInternal)this).Name, global::System.Convert.ToString); + } + if (content.Contains("Type")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IResourceInternal)this).Type = (string) content.GetValueForProperty("Type",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IResourceInternal)this).Type, global::System.Convert.ToString); + } + if (content.Contains("SystemDataCreatedBy")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDomainTopicInternal)this).SystemDataCreatedBy = (string) content.GetValueForProperty("SystemDataCreatedBy",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDomainTopicInternal)this).SystemDataCreatedBy, global::System.Convert.ToString); + } + if (content.Contains("SystemDataCreatedAt")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDomainTopicInternal)this).SystemDataCreatedAt = (global::System.DateTime?) content.GetValueForProperty("SystemDataCreatedAt",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDomainTopicInternal)this).SystemDataCreatedAt, (v) => v is global::System.DateTime _v ? _v : global::System.Xml.XmlConvert.ToDateTime( v.ToString() , global::System.Xml.XmlDateTimeSerializationMode.Unspecified)); + } + if (content.Contains("ProvisioningState")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDomainTopicInternal)this).ProvisioningState = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.DomainTopicProvisioningState?) content.GetValueForProperty("ProvisioningState",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDomainTopicInternal)this).ProvisioningState, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.DomainTopicProvisioningState.CreateFrom); + } + if (content.Contains("SystemDataCreatedByType")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDomainTopicInternal)this).SystemDataCreatedByType = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.CreatedByType?) content.GetValueForProperty("SystemDataCreatedByType",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDomainTopicInternal)this).SystemDataCreatedByType, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.CreatedByType.CreateFrom); + } + if (content.Contains("SystemDataLastModifiedBy")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDomainTopicInternal)this).SystemDataLastModifiedBy = (string) content.GetValueForProperty("SystemDataLastModifiedBy",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDomainTopicInternal)this).SystemDataLastModifiedBy, global::System.Convert.ToString); + } + if (content.Contains("SystemDataLastModifiedByType")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDomainTopicInternal)this).SystemDataLastModifiedByType = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.CreatedByType?) content.GetValueForProperty("SystemDataLastModifiedByType",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDomainTopicInternal)this).SystemDataLastModifiedByType, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.CreatedByType.CreateFrom); + } + if (content.Contains("SystemDataLastModifiedAt")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDomainTopicInternal)this).SystemDataLastModifiedAt = (global::System.DateTime?) content.GetValueForProperty("SystemDataLastModifiedAt",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDomainTopicInternal)this).SystemDataLastModifiedAt, (v) => v is global::System.DateTime _v ? _v : global::System.Xml.XmlConvert.ToDateTime( v.ToString() , global::System.Xml.XmlDateTimeSerializationMode.Unspecified)); + } + AfterDeserializePSObject(content); + } + + /// + /// Creates a new instance of , deserializing the content from a json string. + /// + /// a string containing a JSON serialized instance of this model. + /// an instance of the model class. + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDomainTopic FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode.Parse(jsonText)); + + /// Serializes this instance to a json string. + + /// a containing this model serialized to JSON text. + public string ToJsonString() => ToJson(null, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// Domain Topic. + [System.ComponentModel.TypeConverter(typeof(DomainTopicTypeConverter))] + public partial interface IDomainTopic + + { + + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/DomainTopic.TypeConverter.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/DomainTopic.TypeConverter.cs new file mode 100644 index 000000000000..3abe1674be34 --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/DomainTopic.TypeConverter.cs @@ -0,0 +1,146 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class DomainTopicTypeConverter : global::System.Management.Automation.PSTypeConverter + { + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false. + /// + public override bool CanConvertFrom(object sourceValue, global::System.Type destinationType) => CanConvertFrom(sourceValue); + + /// + /// Determines if the converter can convert the parameter to the . + /// + /// the instance to check if it can be converted to the type. + /// + /// true if the instance could be converted to a type, otherwise false + /// + public static bool CanConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return true; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + // we say yest to PSObjects + return true; + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + // we say yest to Hashtables/dictionaries + return true; + } + try + { + if (null != sourceValue.ToJsonString()) + { + return true; + } + } + catch + { + // Not one of our objects + } + try + { + string text = sourceValue.ToString()?.Trim(); + return true == text?.StartsWith("{") && true == text?.EndsWith("}") && Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonType.Object; + } + catch + { + // Doesn't look like it can be treated as JSON + } + return false; + } + + /// + /// Determines if the parameter can be converted to the parameter + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false + /// + public override bool CanConvertTo(object sourceValue, global::System.Type destinationType) => false; + + /// + /// Converts the parameter to the parameter using and + /// + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// + /// an instance of , or null if there is no suitable conversion. + /// + public override object ConvertFrom(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => ConvertFrom(sourceValue); + + /// + /// Converts the parameter to the parameter using and + /// + /// the value to convert into an instance of . + /// + /// an instance of , or null if there is no suitable conversion. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDomainTopic ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDomainTopic).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return DomainTopic.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return DomainTopic.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return DomainTopic.DeserializeFromDictionary(sourceValue); + } + return null; + } + + /// NotImplemented -- this will return null + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// will always return null. + public override object ConvertTo(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => null; + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/DomainTopic.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/DomainTopic.cs new file mode 100644 index 000000000000..0b2674f0af87 --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/DomainTopic.cs @@ -0,0 +1,199 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Extensions; + + /// Domain Topic. + public partial class DomainTopic : + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDomainTopic, + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDomainTopicInternal, + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IValidates + { + /// + /// Backing field for Inherited model + /// + private Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IResource __resource = new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.Resource(); + + /// Fully qualified identifier of the resource. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Inherited)] + public string Id { get => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IResourceInternal)__resource).Id; } + + /// Internal Acessors for Property + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDomainTopicProperties Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDomainTopicInternal.Property { get => (this._property = this._property ?? new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.DomainTopicProperties()); set { {_property = value;} } } + + /// Internal Acessors for ProvisioningState + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.DomainTopicProvisioningState? Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDomainTopicInternal.ProvisioningState { get => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDomainTopicPropertiesInternal)Property).ProvisioningState; set => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDomainTopicPropertiesInternal)Property).ProvisioningState = value; } + + /// Internal Acessors for SystemData + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20.ISystemData Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDomainTopicInternal.SystemData { get => (this._systemData = this._systemData ?? new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20.SystemData()); set { {_systemData = value;} } } + + /// Internal Acessors for Id + string Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IResourceInternal.Id { get => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IResourceInternal)__resource).Id; set => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IResourceInternal)__resource).Id = value; } + + /// Internal Acessors for Name + string Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IResourceInternal.Name { get => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IResourceInternal)__resource).Name; set => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IResourceInternal)__resource).Name = value; } + + /// Internal Acessors for Type + string Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IResourceInternal.Type { get => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IResourceInternal)__resource).Type; set => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IResourceInternal)__resource).Type = value; } + + /// Name of the resource. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Inherited)] + public string Name { get => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IResourceInternal)__resource).Name; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDomainTopicProperties _property; + + /// Properties of the Domain Topic. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Owned)] + internal Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDomainTopicProperties Property { get => (this._property = this._property ?? new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.DomainTopicProperties()); } + + /// Provisioning state of the domain topic. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Inlined)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.DomainTopicProvisioningState? ProvisioningState { get => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDomainTopicPropertiesInternal)Property).ProvisioningState; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20.ISystemData _systemData; + + /// The system metadata relating to Domain Topic resource. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Owned)] + internal Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20.ISystemData SystemData { get => (this._systemData = this._systemData ?? new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20.SystemData()); } + + /// The timestamp of resource creation (UTC). + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Inlined)] + public global::System.DateTime? SystemDataCreatedAt { get => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20.ISystemDataInternal)SystemData).CreatedAt; set => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20.ISystemDataInternal)SystemData).CreatedAt = value ?? default(global::System.DateTime); } + + /// The identity that created the resource. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Inlined)] + public string SystemDataCreatedBy { get => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20.ISystemDataInternal)SystemData).CreatedBy; set => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20.ISystemDataInternal)SystemData).CreatedBy = value ?? null; } + + /// The type of identity that created the resource. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Inlined)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.CreatedByType? SystemDataCreatedByType { get => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20.ISystemDataInternal)SystemData).CreatedByType; set => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20.ISystemDataInternal)SystemData).CreatedByType = value ?? ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.CreatedByType)""); } + + /// The timestamp of resource last modification (UTC) + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Inlined)] + public global::System.DateTime? SystemDataLastModifiedAt { get => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20.ISystemDataInternal)SystemData).LastModifiedAt; set => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20.ISystemDataInternal)SystemData).LastModifiedAt = value ?? default(global::System.DateTime); } + + /// The identity that last modified the resource. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Inlined)] + public string SystemDataLastModifiedBy { get => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20.ISystemDataInternal)SystemData).LastModifiedBy; set => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20.ISystemDataInternal)SystemData).LastModifiedBy = value ?? null; } + + /// The type of identity that last modified the resource. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Inlined)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.CreatedByType? SystemDataLastModifiedByType { get => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20.ISystemDataInternal)SystemData).LastModifiedByType; set => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20.ISystemDataInternal)SystemData).LastModifiedByType = value ?? ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.CreatedByType)""); } + + /// Type of the resource. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Inherited)] + public string Type { get => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IResourceInternal)__resource).Type; } + + /// Creates an new instance. + public DomainTopic() + { + + } + + /// Validates that this object meets the validation criteria. + /// an instance that will receive validation + /// events. + /// + /// A that will be complete when validation is completed. + /// + public async global::System.Threading.Tasks.Task Validate(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener eventListener) + { + await eventListener.AssertNotNull(nameof(__resource), __resource); + await eventListener.AssertObjectIsValid(nameof(__resource), __resource); + } + } + /// Domain Topic. + public partial interface IDomainTopic : + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IJsonSerializable, + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IResource + { + /// Provisioning state of the domain topic. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"Provisioning state of the domain topic.", + SerializedName = @"provisioningState", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.DomainTopicProvisioningState) })] + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.DomainTopicProvisioningState? ProvisioningState { get; } + /// The timestamp of resource creation (UTC). + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.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.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The type of identity that created the resource.", + SerializedName = @"createdByType", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.CreatedByType) })] + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.CreatedByType? SystemDataCreatedByType { get; set; } + /// The timestamp of resource last modification (UTC) + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.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.EventGrid.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.EventGrid.Support.CreatedByType) })] + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.CreatedByType? SystemDataLastModifiedByType { get; set; } + + } + /// Domain Topic. + internal partial interface IDomainTopicInternal : + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IResourceInternal + { + /// Properties of the Domain Topic. + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDomainTopicProperties Property { get; set; } + /// Provisioning state of the domain topic. + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.DomainTopicProvisioningState? ProvisioningState { get; set; } + /// The system metadata relating to Domain Topic resource. + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.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.EventGrid.Support.CreatedByType? SystemDataLastModifiedByType { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/DomainTopic.json.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/DomainTopic.json.cs new file mode 100644 index 000000000000..adea28f6fb7f --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/DomainTopic.json.cs @@ -0,0 +1,116 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Extensions; + + /// Domain Topic. + public partial class DomainTopic + { + + /// + /// AfterFromJson will be called after the json deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JsonNode that should be deserialized into this object. + + partial void AfterFromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json erialization has finished, allowing customization of the before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JSON container that the serialization result will be placed in. + + partial void AfterToJson(ref Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject container); + + /// + /// BeforeFromJson will be called before the json deserialization has commenced, allowing complete customization of + /// the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JsonNode that should be deserialized into this object. + /// Determines if the rest of the deserialization should be processed, or if the method should return + /// instantly. + + partial void BeforeFromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject json, ref bool returnNow); + + /// + /// BeforeToJson will be called before the json serialization has commenced, allowing complete customization of the + /// object before it is serialized. + /// If you wish to disable the default serialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JSON container that the serialization result will be placed in. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeToJson(ref Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject instance to deserialize from. + internal DomainTopic(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject json) + { + bool returnNow = false; + BeforeFromJson(json, ref returnNow); + if (returnNow) + { + return; + } + __resource = new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.Resource(json); + {_property = If( json?.PropertyT("properties"), out var __jsonProperties) ? Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.DomainTopicProperties.FromJson(__jsonProperties) : Property;} + {_systemData = If( json?.PropertyT("systemData"), out var __jsonSystemData) ? Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20.SystemData.FromJson(__jsonSystemData) : SystemData;} + AfterFromJson(json); + } + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDomainTopic. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDomainTopic. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDomainTopic FromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject json ? new DomainTopic(json) : null; + } + + /// + /// Serializes this instance of into a . + /// + /// The container to serialize this object into. If the caller + /// passes in null, a new instance will be created and returned to the caller. + /// Allows the caller to choose the depth of the serialization. See . + /// + /// a serialized instance of as a . + /// + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Runtime.SerializationMode.IncludeReadOnly)) + { + AddIf( null != this._property ? (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode) this._property.ToJson(null,serializationMode) : null, "properties" ,container.Add ); + } + if (serializationMode.HasFlag(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SerializationMode.IncludeReadOnly)) + { + AddIf( null != this._systemData ? (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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/eventgrid/generated/api/Models/Api20211015Preview/DomainTopicProperties.PowerShell.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/DomainTopicProperties.PowerShell.cs new file mode 100644 index 000000000000..1bb30075b0e5 --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/DomainTopicProperties.PowerShell.cs @@ -0,0 +1,144 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell; + + /// Properties of the Domain Topic. + [System.ComponentModel.TypeConverter(typeof(DomainTopicPropertiesTypeConverter))] + public partial class DomainTopicProperties + { + + /// + /// AfterDeserializeDictionary will be called after the deserialization has finished, allowing customization of the + /// object before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Collections.IDictionary content that should be used. + + partial void AfterDeserializeDictionary(global::System.Collections.IDictionary content); + + /// + /// AfterDeserializePSObject will be called after the deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Management.Automation.PSObject content that should be used. + + partial void AfterDeserializePSObject(global::System.Management.Automation.PSObject content); + + /// + /// BeforeDeserializeDictionary will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Collections.IDictionary content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializeDictionary(global::System.Collections.IDictionary content, ref bool returnNow); + + /// + /// BeforeDeserializePSObject will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializePSObject(global::System.Management.Automation.PSObject content, ref bool returnNow); + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDomainTopicProperties DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new DomainTopicProperties(content); + } + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDomainTopicProperties DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new DomainTopicProperties(content); + } + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + internal DomainTopicProperties(global::System.Collections.IDictionary content) + { + bool returnNow = false; + BeforeDeserializeDictionary(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("ProvisioningState")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDomainTopicPropertiesInternal)this).ProvisioningState = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.DomainTopicProvisioningState?) content.GetValueForProperty("ProvisioningState",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDomainTopicPropertiesInternal)this).ProvisioningState, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.DomainTopicProvisioningState.CreateFrom); + } + AfterDeserializeDictionary(content); + } + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + internal DomainTopicProperties(global::System.Management.Automation.PSObject content) + { + bool returnNow = false; + BeforeDeserializePSObject(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("ProvisioningState")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDomainTopicPropertiesInternal)this).ProvisioningState = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.DomainTopicProvisioningState?) content.GetValueForProperty("ProvisioningState",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDomainTopicPropertiesInternal)this).ProvisioningState, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.DomainTopicProvisioningState.CreateFrom); + } + AfterDeserializePSObject(content); + } + + /// + /// Creates a new instance of , deserializing the content from a json string. + /// + /// a string containing a JSON serialized instance of this model. + /// an instance of the model class. + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDomainTopicProperties FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode.Parse(jsonText)); + + /// Serializes this instance to a json string. + + /// a containing this model serialized to JSON text. + public string ToJsonString() => ToJson(null, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// Properties of the Domain Topic. + [System.ComponentModel.TypeConverter(typeof(DomainTopicPropertiesTypeConverter))] + public partial interface IDomainTopicProperties + + { + + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/DomainTopicProperties.TypeConverter.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/DomainTopicProperties.TypeConverter.cs new file mode 100644 index 000000000000..63605e562aed --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/DomainTopicProperties.TypeConverter.cs @@ -0,0 +1,147 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class DomainTopicPropertiesTypeConverter : global::System.Management.Automation.PSTypeConverter + { + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false. + /// + public override bool CanConvertFrom(object sourceValue, global::System.Type destinationType) => CanConvertFrom(sourceValue); + + /// + /// Determines if the converter can convert the parameter to the . + /// + /// the instance to check if it can be converted to the type. + /// + /// true if the instance could be converted to a type, otherwise false + /// + public static bool CanConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return true; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + // we say yest to PSObjects + return true; + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + // we say yest to Hashtables/dictionaries + return true; + } + try + { + if (null != sourceValue.ToJsonString()) + { + return true; + } + } + catch + { + // Not one of our objects + } + try + { + string text = sourceValue.ToString()?.Trim(); + return true == text?.StartsWith("{") && true == text?.EndsWith("}") && Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonType.Object; + } + catch + { + // Doesn't look like it can be treated as JSON + } + return false; + } + + /// + /// Determines if the parameter can be converted to the parameter + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false + /// + public override bool CanConvertTo(object sourceValue, global::System.Type destinationType) => false; + + /// + /// Converts the parameter to the parameter using and + /// + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// + /// an instance of , or null if there is no suitable conversion. + /// + public override object ConvertFrom(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => ConvertFrom(sourceValue); + + /// + /// Converts the parameter to the parameter using and + /// + /// the value to convert into an instance of . + /// + /// an instance of , or null if there is no suitable conversion. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDomainTopicProperties ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDomainTopicProperties).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return DomainTopicProperties.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return DomainTopicProperties.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return DomainTopicProperties.DeserializeFromDictionary(sourceValue); + } + return null; + } + + /// NotImplemented -- this will return null + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// will always return null. + public override object ConvertTo(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => null; + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/DomainTopicProperties.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/DomainTopicProperties.cs new file mode 100644 index 000000000000..c2d75e930caf --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/DomainTopicProperties.cs @@ -0,0 +1,54 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Extensions; + + /// Properties of the Domain Topic. + public partial class DomainTopicProperties : + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDomainTopicProperties, + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDomainTopicPropertiesInternal + { + + /// Internal Acessors for ProvisioningState + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.DomainTopicProvisioningState? Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDomainTopicPropertiesInternal.ProvisioningState { get => this._provisioningState; set { {_provisioningState = value;} } } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.DomainTopicProvisioningState? _provisioningState; + + /// Provisioning state of the domain topic. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Owned)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.DomainTopicProvisioningState? ProvisioningState { get => this._provisioningState; } + + /// Creates an new instance. + public DomainTopicProperties() + { + + } + } + /// Properties of the Domain Topic. + public partial interface IDomainTopicProperties : + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IJsonSerializable + { + /// Provisioning state of the domain topic. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"Provisioning state of the domain topic.", + SerializedName = @"provisioningState", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.DomainTopicProvisioningState) })] + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.DomainTopicProvisioningState? ProvisioningState { get; } + + } + /// Properties of the Domain Topic. + internal partial interface IDomainTopicPropertiesInternal + + { + /// Provisioning state of the domain topic. + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.DomainTopicProvisioningState? ProvisioningState { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/DomainTopicProperties.json.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/DomainTopicProperties.json.cs new file mode 100644 index 000000000000..e46bbc565620 --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/DomainTopicProperties.json.cs @@ -0,0 +1,109 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Extensions; + + /// Properties of the Domain Topic. + public partial class DomainTopicProperties + { + + /// + /// AfterFromJson will be called after the json deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JsonNode that should be deserialized into this object. + + partial void AfterFromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json erialization has finished, allowing customization of the before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JSON container that the serialization result will be placed in. + + partial void AfterToJson(ref Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject container); + + /// + /// BeforeFromJson will be called before the json deserialization has commenced, allowing complete customization of + /// the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JsonNode that should be deserialized into this object. + /// Determines if the rest of the deserialization should be processed, or if the method should return + /// instantly. + + partial void BeforeFromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject json, ref bool returnNow); + + /// + /// BeforeToJson will be called before the json serialization has commenced, allowing complete customization of the + /// object before it is serialized. + /// If you wish to disable the default serialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JSON container that the serialization result will be placed in. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeToJson(ref Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject instance to deserialize from. + internal DomainTopicProperties(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject json) + { + bool returnNow = false; + BeforeFromJson(json, ref returnNow); + if (returnNow) + { + return; + } + {_provisioningState = If( json?.PropertyT("provisioningState"), out var __jsonProvisioningState) ? (string)__jsonProvisioningState : (string)ProvisioningState;} + AfterFromJson(json); + } + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDomainTopicProperties. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDomainTopicProperties. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDomainTopicProperties FromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject json ? new DomainTopicProperties(json) : null; + } + + /// + /// Serializes this instance of into a . + /// + /// The container to serialize this object into. If the caller + /// passes in null, a new instance will be created and returned to the caller. + /// Allows the caller to choose the depth of the serialization. See . + /// + /// a serialized instance of as a . + /// + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject(); + + bool returnNow = false; + BeforeToJson(ref container, ref returnNow); + if (returnNow) + { + return container; + } + if (serializationMode.HasFlag(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SerializationMode.IncludeReadOnly)) + { + AddIf( null != (((object)this._provisioningState)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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/eventgrid/generated/api/Models/Api20211015Preview/DomainTopicsListResult.PowerShell.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/DomainTopicsListResult.PowerShell.cs new file mode 100644 index 000000000000..e3cd64adc42b --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/DomainTopicsListResult.PowerShell.cs @@ -0,0 +1,152 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell; + + /// Result of the List Domain Topics operation. + [System.ComponentModel.TypeConverter(typeof(DomainTopicsListResultTypeConverter))] + public partial class DomainTopicsListResult + { + + /// + /// AfterDeserializeDictionary will be called after the deserialization has finished, allowing customization of the + /// object before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Collections.IDictionary content that should be used. + + partial void AfterDeserializeDictionary(global::System.Collections.IDictionary content); + + /// + /// AfterDeserializePSObject will be called after the deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Management.Automation.PSObject content that should be used. + + partial void AfterDeserializePSObject(global::System.Management.Automation.PSObject content); + + /// + /// BeforeDeserializeDictionary will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Collections.IDictionary content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializeDictionary(global::System.Collections.IDictionary content, ref bool returnNow); + + /// + /// BeforeDeserializePSObject will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializePSObject(global::System.Management.Automation.PSObject content, ref bool returnNow); + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDomainTopicsListResult DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new DomainTopicsListResult(content); + } + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDomainTopicsListResult DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new DomainTopicsListResult(content); + } + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + internal DomainTopicsListResult(global::System.Collections.IDictionary content) + { + bool returnNow = false; + BeforeDeserializeDictionary(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("Value")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDomainTopicsListResultInternal)this).Value = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDomainTopic[]) content.GetValueForProperty("Value",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDomainTopicsListResultInternal)this).Value, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.DomainTopicTypeConverter.ConvertFrom)); + } + if (content.Contains("NextLink")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDomainTopicsListResultInternal)this).NextLink = (string) content.GetValueForProperty("NextLink",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDomainTopicsListResultInternal)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 DomainTopicsListResult(global::System.Management.Automation.PSObject content) + { + bool returnNow = false; + BeforeDeserializePSObject(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("Value")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDomainTopicsListResultInternal)this).Value = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDomainTopic[]) content.GetValueForProperty("Value",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDomainTopicsListResultInternal)this).Value, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.DomainTopicTypeConverter.ConvertFrom)); + } + if (content.Contains("NextLink")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDomainTopicsListResultInternal)this).NextLink = (string) content.GetValueForProperty("NextLink",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDomainTopicsListResultInternal)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.EventGrid.Models.Api20211015Preview.IDomainTopicsListResult FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode.Parse(jsonText)); + + /// Serializes this instance to a json string. + + /// a containing this model serialized to JSON text. + public string ToJsonString() => ToJson(null, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// Result of the List Domain Topics operation. + [System.ComponentModel.TypeConverter(typeof(DomainTopicsListResultTypeConverter))] + public partial interface IDomainTopicsListResult + + { + + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/DomainTopicsListResult.TypeConverter.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/DomainTopicsListResult.TypeConverter.cs new file mode 100644 index 000000000000..33e93a579865 --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/DomainTopicsListResult.TypeConverter.cs @@ -0,0 +1,147 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class DomainTopicsListResultTypeConverter : global::System.Management.Automation.PSTypeConverter + { + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false. + /// + public override bool CanConvertFrom(object sourceValue, global::System.Type destinationType) => CanConvertFrom(sourceValue); + + /// + /// Determines if the converter can convert the parameter to the . + /// + /// the instance to check if it can be converted to the type. + /// + /// true if the instance could be converted to a type, otherwise false + /// + public static bool CanConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return true; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + // we say yest to PSObjects + return true; + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + // we say yest to Hashtables/dictionaries + return true; + } + try + { + if (null != sourceValue.ToJsonString()) + { + return true; + } + } + catch + { + // Not one of our objects + } + try + { + string text = sourceValue.ToString()?.Trim(); + return true == text?.StartsWith("{") && true == text?.EndsWith("}") && Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonType.Object; + } + catch + { + // Doesn't look like it can be treated as JSON + } + return false; + } + + /// + /// Determines if the parameter can be converted to the parameter + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false + /// + public override bool CanConvertTo(object sourceValue, global::System.Type destinationType) => false; + + /// + /// Converts the parameter to the parameter using and + /// + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// + /// an instance of , or null if there is no suitable conversion. + /// + public override object ConvertFrom(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => ConvertFrom(sourceValue); + + /// + /// Converts the parameter to the parameter using and + /// + /// the value to convert into an instance of . + /// + /// an instance of , or null if there is no suitable conversion. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDomainTopicsListResult ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDomainTopicsListResult).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return DomainTopicsListResult.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return DomainTopicsListResult.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return DomainTopicsListResult.DeserializeFromDictionary(sourceValue); + } + return null; + } + + /// NotImplemented -- this will return null + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// will always return null. + public override object ConvertTo(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => null; + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/DomainTopicsListResult.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/DomainTopicsListResult.cs new file mode 100644 index 000000000000..6ae08f26c763 --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/DomainTopicsListResult.cs @@ -0,0 +1,68 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Extensions; + + /// Result of the List Domain Topics operation. + public partial class DomainTopicsListResult : + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDomainTopicsListResult, + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDomainTopicsListResultInternal + { + + /// Backing field for property. + private string _nextLink; + + /// A link for the next page of domain topics. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Owned)] + public string NextLink { get => this._nextLink; set => this._nextLink = value; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDomainTopic[] _value; + + /// A collection of Domain Topics. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Owned)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDomainTopic[] Value { get => this._value; set => this._value = value; } + + /// Creates an new instance. + public DomainTopicsListResult() + { + + } + } + /// Result of the List Domain Topics operation. + public partial interface IDomainTopicsListResult : + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IJsonSerializable + { + /// A link for the next page of domain topics. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"A link for the next page of domain topics.", + SerializedName = @"nextLink", + PossibleTypes = new [] { typeof(string) })] + string NextLink { get; set; } + /// A collection of Domain Topics. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"A collection of Domain Topics.", + SerializedName = @"value", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDomainTopic) })] + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDomainTopic[] Value { get; set; } + + } + /// Result of the List Domain Topics operation. + internal partial interface IDomainTopicsListResultInternal + + { + /// A link for the next page of domain topics. + string NextLink { get; set; } + /// A collection of Domain Topics. + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDomainTopic[] Value { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/DomainTopicsListResult.json.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/DomainTopicsListResult.json.cs new file mode 100644 index 000000000000..0f3f0730f21d --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/DomainTopicsListResult.json.cs @@ -0,0 +1,116 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Extensions; + + /// Result of the List Domain Topics operation. + public partial class DomainTopicsListResult + { + + /// + /// AfterFromJson will be called after the json deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JsonNode that should be deserialized into this object. + + partial void AfterFromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json erialization has finished, allowing customization of the before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JSON container that the serialization result will be placed in. + + partial void AfterToJson(ref Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject container); + + /// + /// BeforeFromJson will be called before the json deserialization has commenced, allowing complete customization of + /// the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JsonNode that should be deserialized into this object. + /// Determines if the rest of the deserialization should be processed, or if the method should return + /// instantly. + + partial void BeforeFromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject json, ref bool returnNow); + + /// + /// BeforeToJson will be called before the json serialization has commenced, allowing complete customization of the + /// object before it is serialized. + /// If you wish to disable the default serialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JSON container that the serialization result will be placed in. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeToJson(ref Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject instance to deserialize from. + internal DomainTopicsListResult(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.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.EventGrid.Models.Api20211015Preview.IDomainTopic) (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.DomainTopic.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.EventGrid.Models.Api20211015Preview.IDomainTopicsListResult. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDomainTopicsListResult. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDomainTopicsListResult FromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject json ? new DomainTopicsListResult(json) : null; + } + + /// + /// Serializes this instance of into a . + /// + /// The container to serialize this object into. If the caller + /// passes in null, a new instance will be created and returned to the caller. + /// Allows the caller to choose the depth of the serialization. See . + /// + /// a serialized instance of as a . + /// + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Runtime.Json.XNodeArray(); + foreach( var __x in this._value ) + { + AddIf(__x?.ToJson(null, serializationMode) ,__w.Add); + } + container.Add("value",__w); + } + AddIf( null != (((object)this._nextLink)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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/eventgrid/generated/api/Models/Api20211015Preview/DomainUpdateParameterProperties.PowerShell.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/DomainUpdateParameterProperties.PowerShell.cs new file mode 100644 index 000000000000..c9df8b034540 --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/DomainUpdateParameterProperties.PowerShell.cs @@ -0,0 +1,184 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell; + + /// Information of domain update parameter properties. + [System.ComponentModel.TypeConverter(typeof(DomainUpdateParameterPropertiesTypeConverter))] + public partial class DomainUpdateParameterProperties + { + + /// + /// AfterDeserializeDictionary will be called after the deserialization has finished, allowing customization of the + /// object before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Collections.IDictionary content that should be used. + + partial void AfterDeserializeDictionary(global::System.Collections.IDictionary content); + + /// + /// AfterDeserializePSObject will be called after the deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Management.Automation.PSObject content that should be used. + + partial void AfterDeserializePSObject(global::System.Management.Automation.PSObject content); + + /// + /// BeforeDeserializeDictionary will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Collections.IDictionary content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializeDictionary(global::System.Collections.IDictionary content, ref bool returnNow); + + /// + /// BeforeDeserializePSObject will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializePSObject(global::System.Management.Automation.PSObject content, ref bool returnNow); + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDomainUpdateParameterProperties DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new DomainUpdateParameterProperties(content); + } + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDomainUpdateParameterProperties DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new DomainUpdateParameterProperties(content); + } + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + internal DomainUpdateParameterProperties(global::System.Collections.IDictionary content) + { + bool returnNow = false; + BeforeDeserializeDictionary(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("PublicNetworkAccess")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDomainUpdateParameterPropertiesInternal)this).PublicNetworkAccess = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.PublicNetworkAccess?) content.GetValueForProperty("PublicNetworkAccess",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDomainUpdateParameterPropertiesInternal)this).PublicNetworkAccess, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.PublicNetworkAccess.CreateFrom); + } + if (content.Contains("InboundIPRule")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDomainUpdateParameterPropertiesInternal)this).InboundIPRule = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IInboundIPRule[]) content.GetValueForProperty("InboundIPRule",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDomainUpdateParameterPropertiesInternal)this).InboundIPRule, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.InboundIPRuleTypeConverter.ConvertFrom)); + } + if (content.Contains("DisableLocalAuth")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDomainUpdateParameterPropertiesInternal)this).DisableLocalAuth = (bool?) content.GetValueForProperty("DisableLocalAuth",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDomainUpdateParameterPropertiesInternal)this).DisableLocalAuth, (__y)=> (bool) global::System.Convert.ChangeType(__y, typeof(bool))); + } + if (content.Contains("AutoCreateTopicWithFirstSubscription")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDomainUpdateParameterPropertiesInternal)this).AutoCreateTopicWithFirstSubscription = (bool?) content.GetValueForProperty("AutoCreateTopicWithFirstSubscription",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDomainUpdateParameterPropertiesInternal)this).AutoCreateTopicWithFirstSubscription, (__y)=> (bool) global::System.Convert.ChangeType(__y, typeof(bool))); + } + if (content.Contains("AutoDeleteTopicWithLastSubscription")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDomainUpdateParameterPropertiesInternal)this).AutoDeleteTopicWithLastSubscription = (bool?) content.GetValueForProperty("AutoDeleteTopicWithLastSubscription",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDomainUpdateParameterPropertiesInternal)this).AutoDeleteTopicWithLastSubscription, (__y)=> (bool) global::System.Convert.ChangeType(__y, typeof(bool))); + } + if (content.Contains("DataResidencyBoundary")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDomainUpdateParameterPropertiesInternal)this).DataResidencyBoundary = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.DataResidencyBoundary?) content.GetValueForProperty("DataResidencyBoundary",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDomainUpdateParameterPropertiesInternal)this).DataResidencyBoundary, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.DataResidencyBoundary.CreateFrom); + } + AfterDeserializeDictionary(content); + } + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + internal DomainUpdateParameterProperties(global::System.Management.Automation.PSObject content) + { + bool returnNow = false; + BeforeDeserializePSObject(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("PublicNetworkAccess")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDomainUpdateParameterPropertiesInternal)this).PublicNetworkAccess = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.PublicNetworkAccess?) content.GetValueForProperty("PublicNetworkAccess",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDomainUpdateParameterPropertiesInternal)this).PublicNetworkAccess, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.PublicNetworkAccess.CreateFrom); + } + if (content.Contains("InboundIPRule")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDomainUpdateParameterPropertiesInternal)this).InboundIPRule = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IInboundIPRule[]) content.GetValueForProperty("InboundIPRule",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDomainUpdateParameterPropertiesInternal)this).InboundIPRule, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.InboundIPRuleTypeConverter.ConvertFrom)); + } + if (content.Contains("DisableLocalAuth")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDomainUpdateParameterPropertiesInternal)this).DisableLocalAuth = (bool?) content.GetValueForProperty("DisableLocalAuth",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDomainUpdateParameterPropertiesInternal)this).DisableLocalAuth, (__y)=> (bool) global::System.Convert.ChangeType(__y, typeof(bool))); + } + if (content.Contains("AutoCreateTopicWithFirstSubscription")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDomainUpdateParameterPropertiesInternal)this).AutoCreateTopicWithFirstSubscription = (bool?) content.GetValueForProperty("AutoCreateTopicWithFirstSubscription",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDomainUpdateParameterPropertiesInternal)this).AutoCreateTopicWithFirstSubscription, (__y)=> (bool) global::System.Convert.ChangeType(__y, typeof(bool))); + } + if (content.Contains("AutoDeleteTopicWithLastSubscription")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDomainUpdateParameterPropertiesInternal)this).AutoDeleteTopicWithLastSubscription = (bool?) content.GetValueForProperty("AutoDeleteTopicWithLastSubscription",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDomainUpdateParameterPropertiesInternal)this).AutoDeleteTopicWithLastSubscription, (__y)=> (bool) global::System.Convert.ChangeType(__y, typeof(bool))); + } + if (content.Contains("DataResidencyBoundary")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDomainUpdateParameterPropertiesInternal)this).DataResidencyBoundary = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.DataResidencyBoundary?) content.GetValueForProperty("DataResidencyBoundary",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDomainUpdateParameterPropertiesInternal)this).DataResidencyBoundary, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.DataResidencyBoundary.CreateFrom); + } + AfterDeserializePSObject(content); + } + + /// + /// Creates a new instance of , deserializing the content from a json string. + /// + /// a string containing a JSON serialized instance of this model. + /// an instance of the model class. + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDomainUpdateParameterProperties FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode.Parse(jsonText)); + + /// Serializes this instance to a json string. + + /// a containing this model serialized to JSON text. + public string ToJsonString() => ToJson(null, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// Information of domain update parameter properties. + [System.ComponentModel.TypeConverter(typeof(DomainUpdateParameterPropertiesTypeConverter))] + public partial interface IDomainUpdateParameterProperties + + { + + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/DomainUpdateParameterProperties.TypeConverter.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/DomainUpdateParameterProperties.TypeConverter.cs new file mode 100644 index 000000000000..c5d8b09eea67 --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/DomainUpdateParameterProperties.TypeConverter.cs @@ -0,0 +1,147 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class DomainUpdateParameterPropertiesTypeConverter : global::System.Management.Automation.PSTypeConverter + { + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false. + /// + public override bool CanConvertFrom(object sourceValue, global::System.Type destinationType) => CanConvertFrom(sourceValue); + + /// + /// Determines if the converter can convert the parameter to the . + /// + /// the instance to check if it can be converted to the type. + /// + /// true if the instance could be converted to a type, otherwise false + /// + public static bool CanConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return true; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + // we say yest to PSObjects + return true; + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + // we say yest to Hashtables/dictionaries + return true; + } + try + { + if (null != sourceValue.ToJsonString()) + { + return true; + } + } + catch + { + // Not one of our objects + } + try + { + string text = sourceValue.ToString()?.Trim(); + return true == text?.StartsWith("{") && true == text?.EndsWith("}") && Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonType.Object; + } + catch + { + // Doesn't look like it can be treated as JSON + } + return false; + } + + /// + /// Determines if the parameter can be converted to the parameter + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false + /// + public override bool CanConvertTo(object sourceValue, global::System.Type destinationType) => false; + + /// + /// Converts the parameter to the parameter using and + /// + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// + /// an instance of , or null if there is no suitable conversion. + /// + public override object ConvertFrom(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => ConvertFrom(sourceValue); + + /// + /// Converts the parameter to the parameter using and + /// + /// the value to convert into an instance of . + /// + /// an instance of , or null if there is no suitable conversion. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDomainUpdateParameterProperties ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDomainUpdateParameterProperties).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return DomainUpdateParameterProperties.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return DomainUpdateParameterProperties.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return DomainUpdateParameterProperties.DeserializeFromDictionary(sourceValue); + } + return null; + } + + /// NotImplemented -- this will return null + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// will always return null. + public override object ConvertTo(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => null; + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/DomainUpdateParameterProperties.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/DomainUpdateParameterProperties.cs new file mode 100644 index 000000000000..3b3a4a89e18b --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/DomainUpdateParameterProperties.cs @@ -0,0 +1,263 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Extensions; + + /// Information of domain update parameter properties. + public partial class DomainUpdateParameterProperties : + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDomainUpdateParameterProperties, + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDomainUpdateParameterPropertiesInternal + { + + /// Backing field for property. + private bool? _autoCreateTopicWithFirstSubscription; + + /// + /// This Boolean is used to specify the creation mechanism for 'all' the Event Grid Domain Topics associated with this Event + /// Grid Domain resource. + /// In this context, creation of domain topic can be auto-managed (when true) or self-managed (when false). The default value + /// for this property is true. + /// When this property is null or set to true, Event Grid is responsible of automatically creating the domain topic when the + /// first event subscription is + /// created at the scope of the domain topic. If this property is set to false, then creating the first event subscription + /// will require creating a domain topic + /// by the user. The self-management mode can be used if the user wants full control of when the domain topic is created, + /// while auto-managed mode provides the + /// flexibility to perform less operations and manage fewer resources by the user. Also, note that in auto-managed creation + /// mode, user is allowed to create the + /// domain topic on demand if needed. + /// + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Owned)] + public bool? AutoCreateTopicWithFirstSubscription { get => this._autoCreateTopicWithFirstSubscription; set => this._autoCreateTopicWithFirstSubscription = value; } + + /// Backing field for property. + private bool? _autoDeleteTopicWithLastSubscription; + + /// + /// This Boolean is used to specify the deletion mechanism for 'all' the Event Grid Domain Topics associated with this Event + /// Grid Domain resource. + /// In this context, deletion of domain topic can be auto-managed (when true) or self-managed (when false). The default value + /// for this property is true. + /// When this property is set to true, Event Grid is responsible of automatically deleting the domain topic when the last + /// event subscription at the scope + /// of the domain topic is deleted. If this property is set to false, then the user needs to manually delete the domain topic + /// when it is no longer needed + /// (e.g., when last event subscription is deleted and the resource needs to be cleaned up). The self-management mode can + /// be used if the user wants full + /// control of when the domain topic needs to be deleted, while auto-managed mode provides the flexibility to perform less + /// operations and manage fewer + /// resources by the user. + /// + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Owned)] + public bool? AutoDeleteTopicWithLastSubscription { get => this._autoDeleteTopicWithLastSubscription; set => this._autoDeleteTopicWithLastSubscription = value; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.DataResidencyBoundary? _dataResidencyBoundary; + + /// The data residency boundary for the domain. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Owned)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.DataResidencyBoundary? DataResidencyBoundary { get => this._dataResidencyBoundary; set => this._dataResidencyBoundary = value; } + + /// Backing field for property. + private bool? _disableLocalAuth; + + /// + /// This boolean is used to enable or disable local auth. Default value is false. When the property is set to true, only AAD + /// token will be used to authenticate if user is allowed to publish to the domain. + /// + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Owned)] + public bool? DisableLocalAuth { get => this._disableLocalAuth; set => this._disableLocalAuth = value; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IInboundIPRule[] _inboundIPRule; + + /// + /// This can be used to restrict traffic from specific IPs instead of all IPs. Note: These are considered only if PublicNetworkAccess + /// is enabled. + /// + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Owned)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IInboundIPRule[] InboundIPRule { get => this._inboundIPRule; set => this._inboundIPRule = value; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.PublicNetworkAccess? _publicNetworkAccess; + + /// + /// This determines if traffic is allowed over public network. By default it is enabled. + /// You can further restrict to specific IPs by configuring + /// + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Owned)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.PublicNetworkAccess? PublicNetworkAccess { get => this._publicNetworkAccess; set => this._publicNetworkAccess = value; } + + /// Creates an new instance. + public DomainUpdateParameterProperties() + { + + } + } + /// Information of domain update parameter properties. + public partial interface IDomainUpdateParameterProperties : + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IJsonSerializable + { + /// + /// This Boolean is used to specify the creation mechanism for 'all' the Event Grid Domain Topics associated with this Event + /// Grid Domain resource. + /// In this context, creation of domain topic can be auto-managed (when true) or self-managed (when false). The default value + /// for this property is true. + /// When this property is null or set to true, Event Grid is responsible of automatically creating the domain topic when the + /// first event subscription is + /// created at the scope of the domain topic. If this property is set to false, then creating the first event subscription + /// will require creating a domain topic + /// by the user. The self-management mode can be used if the user wants full control of when the domain topic is created, + /// while auto-managed mode provides the + /// flexibility to perform less operations and manage fewer resources by the user. Also, note that in auto-managed creation + /// mode, user is allowed to create the + /// domain topic on demand if needed. + /// + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"This Boolean is used to specify the creation mechanism for 'all' the Event Grid Domain Topics associated with this Event Grid Domain resource. + In this context, creation of domain topic can be auto-managed (when true) or self-managed (when false). The default value for this property is true. + When this property is null or set to true, Event Grid is responsible of automatically creating the domain topic when the first event subscription is + created at the scope of the domain topic. If this property is set to false, then creating the first event subscription will require creating a domain topic + by the user. The self-management mode can be used if the user wants full control of when the domain topic is created, while auto-managed mode provides the + flexibility to perform less operations and manage fewer resources by the user. Also, note that in auto-managed creation mode, user is allowed to create the + domain topic on demand if needed.", + SerializedName = @"autoCreateTopicWithFirstSubscription", + PossibleTypes = new [] { typeof(bool) })] + bool? AutoCreateTopicWithFirstSubscription { get; set; } + /// + /// This Boolean is used to specify the deletion mechanism for 'all' the Event Grid Domain Topics associated with this Event + /// Grid Domain resource. + /// In this context, deletion of domain topic can be auto-managed (when true) or self-managed (when false). The default value + /// for this property is true. + /// When this property is set to true, Event Grid is responsible of automatically deleting the domain topic when the last + /// event subscription at the scope + /// of the domain topic is deleted. If this property is set to false, then the user needs to manually delete the domain topic + /// when it is no longer needed + /// (e.g., when last event subscription is deleted and the resource needs to be cleaned up). The self-management mode can + /// be used if the user wants full + /// control of when the domain topic needs to be deleted, while auto-managed mode provides the flexibility to perform less + /// operations and manage fewer + /// resources by the user. + /// + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"This Boolean is used to specify the deletion mechanism for 'all' the Event Grid Domain Topics associated with this Event Grid Domain resource. + In this context, deletion of domain topic can be auto-managed (when true) or self-managed (when false). The default value for this property is true. + When this property is set to true, Event Grid is responsible of automatically deleting the domain topic when the last event subscription at the scope + of the domain topic is deleted. If this property is set to false, then the user needs to manually delete the domain topic when it is no longer needed + (e.g., when last event subscription is deleted and the resource needs to be cleaned up). The self-management mode can be used if the user wants full + control of when the domain topic needs to be deleted, while auto-managed mode provides the flexibility to perform less operations and manage fewer + resources by the user.", + SerializedName = @"autoDeleteTopicWithLastSubscription", + PossibleTypes = new [] { typeof(bool) })] + bool? AutoDeleteTopicWithLastSubscription { get; set; } + /// The data residency boundary for the domain. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The data residency boundary for the domain.", + SerializedName = @"dataResidencyBoundary", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.DataResidencyBoundary) })] + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.DataResidencyBoundary? DataResidencyBoundary { get; set; } + /// + /// This boolean is used to enable or disable local auth. Default value is false. When the property is set to true, only AAD + /// token will be used to authenticate if user is allowed to publish to the domain. + /// + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"This boolean is used to enable or disable local auth. Default value is false. When the property is set to true, only AAD token will be used to authenticate if user is allowed to publish to the domain.", + SerializedName = @"disableLocalAuth", + PossibleTypes = new [] { typeof(bool) })] + bool? DisableLocalAuth { get; set; } + /// + /// This can be used to restrict traffic from specific IPs instead of all IPs. Note: These are considered only if PublicNetworkAccess + /// is enabled. + /// + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"This can be used to restrict traffic from specific IPs instead of all IPs. Note: These are considered only if PublicNetworkAccess is enabled.", + SerializedName = @"inboundIpRules", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IInboundIPRule) })] + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IInboundIPRule[] InboundIPRule { get; set; } + /// + /// This determines if traffic is allowed over public network. By default it is enabled. + /// You can further restrict to specific IPs by configuring + /// + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"This determines if traffic is allowed over public network. By default it is enabled. + You can further restrict to specific IPs by configuring ", + SerializedName = @"publicNetworkAccess", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.PublicNetworkAccess) })] + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.PublicNetworkAccess? PublicNetworkAccess { get; set; } + + } + /// Information of domain update parameter properties. + internal partial interface IDomainUpdateParameterPropertiesInternal + + { + /// + /// This Boolean is used to specify the creation mechanism for 'all' the Event Grid Domain Topics associated with this Event + /// Grid Domain resource. + /// In this context, creation of domain topic can be auto-managed (when true) or self-managed (when false). The default value + /// for this property is true. + /// When this property is null or set to true, Event Grid is responsible of automatically creating the domain topic when the + /// first event subscription is + /// created at the scope of the domain topic. If this property is set to false, then creating the first event subscription + /// will require creating a domain topic + /// by the user. The self-management mode can be used if the user wants full control of when the domain topic is created, + /// while auto-managed mode provides the + /// flexibility to perform less operations and manage fewer resources by the user. Also, note that in auto-managed creation + /// mode, user is allowed to create the + /// domain topic on demand if needed. + /// + bool? AutoCreateTopicWithFirstSubscription { get; set; } + /// + /// This Boolean is used to specify the deletion mechanism for 'all' the Event Grid Domain Topics associated with this Event + /// Grid Domain resource. + /// In this context, deletion of domain topic can be auto-managed (when true) or self-managed (when false). The default value + /// for this property is true. + /// When this property is set to true, Event Grid is responsible of automatically deleting the domain topic when the last + /// event subscription at the scope + /// of the domain topic is deleted. If this property is set to false, then the user needs to manually delete the domain topic + /// when it is no longer needed + /// (e.g., when last event subscription is deleted and the resource needs to be cleaned up). The self-management mode can + /// be used if the user wants full + /// control of when the domain topic needs to be deleted, while auto-managed mode provides the flexibility to perform less + /// operations and manage fewer + /// resources by the user. + /// + bool? AutoDeleteTopicWithLastSubscription { get; set; } + /// The data residency boundary for the domain. + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.DataResidencyBoundary? DataResidencyBoundary { get; set; } + /// + /// This boolean is used to enable or disable local auth. Default value is false. When the property is set to true, only AAD + /// token will be used to authenticate if user is allowed to publish to the domain. + /// + bool? DisableLocalAuth { get; set; } + /// + /// This can be used to restrict traffic from specific IPs instead of all IPs. Note: These are considered only if PublicNetworkAccess + /// is enabled. + /// + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IInboundIPRule[] InboundIPRule { get; set; } + /// + /// This determines if traffic is allowed over public network. By default it is enabled. + /// You can further restrict to specific IPs by configuring + /// + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.PublicNetworkAccess? PublicNetworkAccess { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/DomainUpdateParameterProperties.json.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/DomainUpdateParameterProperties.json.cs new file mode 100644 index 000000000000..69418f0523bf --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/DomainUpdateParameterProperties.json.cs @@ -0,0 +1,124 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Extensions; + + /// Information of domain update parameter properties. + public partial class DomainUpdateParameterProperties + { + + /// + /// AfterFromJson will be called after the json deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JsonNode that should be deserialized into this object. + + partial void AfterFromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json erialization has finished, allowing customization of the before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JSON container that the serialization result will be placed in. + + partial void AfterToJson(ref Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject container); + + /// + /// BeforeFromJson will be called before the json deserialization has commenced, allowing complete customization of + /// the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JsonNode that should be deserialized into this object. + /// Determines if the rest of the deserialization should be processed, or if the method should return + /// instantly. + + partial void BeforeFromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject json, ref bool returnNow); + + /// + /// BeforeToJson will be called before the json serialization has commenced, allowing complete customization of the + /// object before it is serialized. + /// If you wish to disable the default serialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JSON container that the serialization result will be placed in. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeToJson(ref Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject instance to deserialize from. + internal DomainUpdateParameterProperties(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject json) + { + bool returnNow = false; + BeforeFromJson(json, ref returnNow); + if (returnNow) + { + return; + } + {_publicNetworkAccess = If( json?.PropertyT("publicNetworkAccess"), out var __jsonPublicNetworkAccess) ? (string)__jsonPublicNetworkAccess : (string)PublicNetworkAccess;} + {_inboundIPRule = If( json?.PropertyT("inboundIpRules"), out var __jsonInboundIPRules) ? If( __jsonInboundIPRules as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Models.Api20211015Preview.IInboundIPRule) (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.InboundIPRule.FromJson(__u) )) ))() : null : InboundIPRule;} + {_disableLocalAuth = If( json?.PropertyT("disableLocalAuth"), out var __jsonDisableLocalAuth) ? (bool?)__jsonDisableLocalAuth : DisableLocalAuth;} + {_autoCreateTopicWithFirstSubscription = If( json?.PropertyT("autoCreateTopicWithFirstSubscription"), out var __jsonAutoCreateTopicWithFirstSubscription) ? (bool?)__jsonAutoCreateTopicWithFirstSubscription : AutoCreateTopicWithFirstSubscription;} + {_autoDeleteTopicWithLastSubscription = If( json?.PropertyT("autoDeleteTopicWithLastSubscription"), out var __jsonAutoDeleteTopicWithLastSubscription) ? (bool?)__jsonAutoDeleteTopicWithLastSubscription : AutoDeleteTopicWithLastSubscription;} + {_dataResidencyBoundary = If( json?.PropertyT("dataResidencyBoundary"), out var __jsonDataResidencyBoundary) ? (string)__jsonDataResidencyBoundary : (string)DataResidencyBoundary;} + AfterFromJson(json); + } + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDomainUpdateParameterProperties. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDomainUpdateParameterProperties. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDomainUpdateParameterProperties FromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject json ? new DomainUpdateParameterProperties(json) : null; + } + + /// + /// Serializes this instance of into a . + /// + /// The container to serialize this object into. If the caller + /// passes in null, a new instance will be created and returned to the caller. + /// Allows the caller to choose the depth of the serialization. See . + /// + /// a serialized instance of as a . + /// + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject(); + + bool returnNow = false; + BeforeToJson(ref container, ref returnNow); + if (returnNow) + { + return container; + } + AddIf( null != (((object)this._publicNetworkAccess)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonString(this._publicNetworkAccess.ToString()) : null, "publicNetworkAccess" ,container.Add ); + if (null != this._inboundIPRule) + { + var __w = new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.XNodeArray(); + foreach( var __x in this._inboundIPRule ) + { + AddIf(__x?.ToJson(null, serializationMode) ,__w.Add); + } + container.Add("inboundIpRules",__w); + } + AddIf( null != this._disableLocalAuth ? (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode)new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonBoolean((bool)this._disableLocalAuth) : null, "disableLocalAuth" ,container.Add ); + AddIf( null != this._autoCreateTopicWithFirstSubscription ? (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode)new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonBoolean((bool)this._autoCreateTopicWithFirstSubscription) : null, "autoCreateTopicWithFirstSubscription" ,container.Add ); + AddIf( null != this._autoDeleteTopicWithLastSubscription ? (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode)new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonBoolean((bool)this._autoDeleteTopicWithLastSubscription) : null, "autoDeleteTopicWithLastSubscription" ,container.Add ); + AddIf( null != (((object)this._dataResidencyBoundary)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonString(this._dataResidencyBoundary.ToString()) : null, "dataResidencyBoundary" ,container.Add ); + AfterToJson(ref container); + return container; + } + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/DomainUpdateParameters.PowerShell.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/DomainUpdateParameters.PowerShell.cs new file mode 100644 index 000000000000..2282e11f22da --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/DomainUpdateParameters.PowerShell.cs @@ -0,0 +1,256 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell; + + /// Properties of the Domain update. + [System.ComponentModel.TypeConverter(typeof(DomainUpdateParametersTypeConverter))] + public partial class DomainUpdateParameters + { + + /// + /// AfterDeserializeDictionary will be called after the deserialization has finished, allowing customization of the + /// object before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Collections.IDictionary content that should be used. + + partial void AfterDeserializeDictionary(global::System.Collections.IDictionary content); + + /// + /// AfterDeserializePSObject will be called after the deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Management.Automation.PSObject content that should be used. + + partial void AfterDeserializePSObject(global::System.Management.Automation.PSObject content); + + /// + /// BeforeDeserializeDictionary will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Collections.IDictionary content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializeDictionary(global::System.Collections.IDictionary content, ref bool returnNow); + + /// + /// BeforeDeserializePSObject will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializePSObject(global::System.Management.Automation.PSObject content, ref bool returnNow); + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDomainUpdateParameters DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new DomainUpdateParameters(content); + } + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDomainUpdateParameters DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new DomainUpdateParameters(content); + } + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + internal DomainUpdateParameters(global::System.Collections.IDictionary content) + { + bool returnNow = false; + BeforeDeserializeDictionary(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("Property")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDomainUpdateParametersInternal)this).Property = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDomainUpdateParameterProperties) content.GetValueForProperty("Property",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDomainUpdateParametersInternal)this).Property, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.DomainUpdateParameterPropertiesTypeConverter.ConvertFrom); + } + if (content.Contains("Identity")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDomainUpdateParametersInternal)this).Identity = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IIdentityInfo) content.GetValueForProperty("Identity",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDomainUpdateParametersInternal)this).Identity, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IdentityInfoTypeConverter.ConvertFrom); + } + if (content.Contains("Sku")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDomainUpdateParametersInternal)this).Sku = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IResourceSku) content.GetValueForProperty("Sku",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDomainUpdateParametersInternal)this).Sku, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ResourceSkuTypeConverter.ConvertFrom); + } + if (content.Contains("Tag")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDomainUpdateParametersInternal)this).Tag = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDomainUpdateParametersTags) content.GetValueForProperty("Tag",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDomainUpdateParametersInternal)this).Tag, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.DomainUpdateParametersTagsTypeConverter.ConvertFrom); + } + if (content.Contains("IdentityType")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDomainUpdateParametersInternal)this).IdentityType = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.IdentityType?) content.GetValueForProperty("IdentityType",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDomainUpdateParametersInternal)this).IdentityType, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.IdentityType.CreateFrom); + } + if (content.Contains("SkuName")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDomainUpdateParametersInternal)this).SkuName = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.Sku?) content.GetValueForProperty("SkuName",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDomainUpdateParametersInternal)this).SkuName, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.Sku.CreateFrom); + } + if (content.Contains("PublicNetworkAccess")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDomainUpdateParametersInternal)this).PublicNetworkAccess = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.PublicNetworkAccess?) content.GetValueForProperty("PublicNetworkAccess",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDomainUpdateParametersInternal)this).PublicNetworkAccess, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.PublicNetworkAccess.CreateFrom); + } + if (content.Contains("InboundIPRule")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDomainUpdateParametersInternal)this).InboundIPRule = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IInboundIPRule[]) content.GetValueForProperty("InboundIPRule",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDomainUpdateParametersInternal)this).InboundIPRule, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.InboundIPRuleTypeConverter.ConvertFrom)); + } + if (content.Contains("DisableLocalAuth")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDomainUpdateParametersInternal)this).DisableLocalAuth = (bool?) content.GetValueForProperty("DisableLocalAuth",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDomainUpdateParametersInternal)this).DisableLocalAuth, (__y)=> (bool) global::System.Convert.ChangeType(__y, typeof(bool))); + } + if (content.Contains("AutoCreateTopicWithFirstSubscription")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDomainUpdateParametersInternal)this).AutoCreateTopicWithFirstSubscription = (bool?) content.GetValueForProperty("AutoCreateTopicWithFirstSubscription",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDomainUpdateParametersInternal)this).AutoCreateTopicWithFirstSubscription, (__y)=> (bool) global::System.Convert.ChangeType(__y, typeof(bool))); + } + if (content.Contains("AutoDeleteTopicWithLastSubscription")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDomainUpdateParametersInternal)this).AutoDeleteTopicWithLastSubscription = (bool?) content.GetValueForProperty("AutoDeleteTopicWithLastSubscription",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDomainUpdateParametersInternal)this).AutoDeleteTopicWithLastSubscription, (__y)=> (bool) global::System.Convert.ChangeType(__y, typeof(bool))); + } + if (content.Contains("DataResidencyBoundary")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDomainUpdateParametersInternal)this).DataResidencyBoundary = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.DataResidencyBoundary?) content.GetValueForProperty("DataResidencyBoundary",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDomainUpdateParametersInternal)this).DataResidencyBoundary, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.DataResidencyBoundary.CreateFrom); + } + if (content.Contains("IdentityPrincipalId")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDomainUpdateParametersInternal)this).IdentityPrincipalId = (string) content.GetValueForProperty("IdentityPrincipalId",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDomainUpdateParametersInternal)this).IdentityPrincipalId, global::System.Convert.ToString); + } + if (content.Contains("IdentityTenantId")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDomainUpdateParametersInternal)this).IdentityTenantId = (string) content.GetValueForProperty("IdentityTenantId",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDomainUpdateParametersInternal)this).IdentityTenantId, global::System.Convert.ToString); + } + if (content.Contains("IdentityUserAssignedIdentity")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDomainUpdateParametersInternal)this).IdentityUserAssignedIdentity = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IIdentityInfoUserAssignedIdentities) content.GetValueForProperty("IdentityUserAssignedIdentity",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDomainUpdateParametersInternal)this).IdentityUserAssignedIdentity, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IdentityInfoUserAssignedIdentitiesTypeConverter.ConvertFrom); + } + AfterDeserializeDictionary(content); + } + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + internal DomainUpdateParameters(global::System.Management.Automation.PSObject content) + { + bool returnNow = false; + BeforeDeserializePSObject(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("Property")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDomainUpdateParametersInternal)this).Property = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDomainUpdateParameterProperties) content.GetValueForProperty("Property",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDomainUpdateParametersInternal)this).Property, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.DomainUpdateParameterPropertiesTypeConverter.ConvertFrom); + } + if (content.Contains("Identity")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDomainUpdateParametersInternal)this).Identity = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IIdentityInfo) content.GetValueForProperty("Identity",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDomainUpdateParametersInternal)this).Identity, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IdentityInfoTypeConverter.ConvertFrom); + } + if (content.Contains("Sku")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDomainUpdateParametersInternal)this).Sku = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IResourceSku) content.GetValueForProperty("Sku",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDomainUpdateParametersInternal)this).Sku, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ResourceSkuTypeConverter.ConvertFrom); + } + if (content.Contains("Tag")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDomainUpdateParametersInternal)this).Tag = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDomainUpdateParametersTags) content.GetValueForProperty("Tag",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDomainUpdateParametersInternal)this).Tag, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.DomainUpdateParametersTagsTypeConverter.ConvertFrom); + } + if (content.Contains("IdentityType")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDomainUpdateParametersInternal)this).IdentityType = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.IdentityType?) content.GetValueForProperty("IdentityType",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDomainUpdateParametersInternal)this).IdentityType, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.IdentityType.CreateFrom); + } + if (content.Contains("SkuName")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDomainUpdateParametersInternal)this).SkuName = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.Sku?) content.GetValueForProperty("SkuName",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDomainUpdateParametersInternal)this).SkuName, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.Sku.CreateFrom); + } + if (content.Contains("PublicNetworkAccess")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDomainUpdateParametersInternal)this).PublicNetworkAccess = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.PublicNetworkAccess?) content.GetValueForProperty("PublicNetworkAccess",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDomainUpdateParametersInternal)this).PublicNetworkAccess, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.PublicNetworkAccess.CreateFrom); + } + if (content.Contains("InboundIPRule")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDomainUpdateParametersInternal)this).InboundIPRule = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IInboundIPRule[]) content.GetValueForProperty("InboundIPRule",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDomainUpdateParametersInternal)this).InboundIPRule, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.InboundIPRuleTypeConverter.ConvertFrom)); + } + if (content.Contains("DisableLocalAuth")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDomainUpdateParametersInternal)this).DisableLocalAuth = (bool?) content.GetValueForProperty("DisableLocalAuth",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDomainUpdateParametersInternal)this).DisableLocalAuth, (__y)=> (bool) global::System.Convert.ChangeType(__y, typeof(bool))); + } + if (content.Contains("AutoCreateTopicWithFirstSubscription")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDomainUpdateParametersInternal)this).AutoCreateTopicWithFirstSubscription = (bool?) content.GetValueForProperty("AutoCreateTopicWithFirstSubscription",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDomainUpdateParametersInternal)this).AutoCreateTopicWithFirstSubscription, (__y)=> (bool) global::System.Convert.ChangeType(__y, typeof(bool))); + } + if (content.Contains("AutoDeleteTopicWithLastSubscription")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDomainUpdateParametersInternal)this).AutoDeleteTopicWithLastSubscription = (bool?) content.GetValueForProperty("AutoDeleteTopicWithLastSubscription",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDomainUpdateParametersInternal)this).AutoDeleteTopicWithLastSubscription, (__y)=> (bool) global::System.Convert.ChangeType(__y, typeof(bool))); + } + if (content.Contains("DataResidencyBoundary")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDomainUpdateParametersInternal)this).DataResidencyBoundary = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.DataResidencyBoundary?) content.GetValueForProperty("DataResidencyBoundary",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDomainUpdateParametersInternal)this).DataResidencyBoundary, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.DataResidencyBoundary.CreateFrom); + } + if (content.Contains("IdentityPrincipalId")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDomainUpdateParametersInternal)this).IdentityPrincipalId = (string) content.GetValueForProperty("IdentityPrincipalId",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDomainUpdateParametersInternal)this).IdentityPrincipalId, global::System.Convert.ToString); + } + if (content.Contains("IdentityTenantId")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDomainUpdateParametersInternal)this).IdentityTenantId = (string) content.GetValueForProperty("IdentityTenantId",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDomainUpdateParametersInternal)this).IdentityTenantId, global::System.Convert.ToString); + } + if (content.Contains("IdentityUserAssignedIdentity")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDomainUpdateParametersInternal)this).IdentityUserAssignedIdentity = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IIdentityInfoUserAssignedIdentities) content.GetValueForProperty("IdentityUserAssignedIdentity",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDomainUpdateParametersInternal)this).IdentityUserAssignedIdentity, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IdentityInfoUserAssignedIdentitiesTypeConverter.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.EventGrid.Models.Api20211015Preview.IDomainUpdateParameters FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode.Parse(jsonText)); + + /// Serializes this instance to a json string. + + /// a containing this model serialized to JSON text. + public string ToJsonString() => ToJson(null, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// Properties of the Domain update. + [System.ComponentModel.TypeConverter(typeof(DomainUpdateParametersTypeConverter))] + public partial interface IDomainUpdateParameters + + { + + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/DomainUpdateParameters.TypeConverter.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/DomainUpdateParameters.TypeConverter.cs new file mode 100644 index 000000000000..3ccfb9c7a720 --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/DomainUpdateParameters.TypeConverter.cs @@ -0,0 +1,147 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class DomainUpdateParametersTypeConverter : global::System.Management.Automation.PSTypeConverter + { + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false. + /// + public override bool CanConvertFrom(object sourceValue, global::System.Type destinationType) => CanConvertFrom(sourceValue); + + /// + /// Determines if the converter can convert the parameter to the . + /// + /// the instance to check if it can be converted to the type. + /// + /// true if the instance could be converted to a type, otherwise false + /// + public static bool CanConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return true; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + // we say yest to PSObjects + return true; + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + // we say yest to Hashtables/dictionaries + return true; + } + try + { + if (null != sourceValue.ToJsonString()) + { + return true; + } + } + catch + { + // Not one of our objects + } + try + { + string text = sourceValue.ToString()?.Trim(); + return true == text?.StartsWith("{") && true == text?.EndsWith("}") && Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonType.Object; + } + catch + { + // Doesn't look like it can be treated as JSON + } + return false; + } + + /// + /// Determines if the parameter can be converted to the parameter + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false + /// + public override bool CanConvertTo(object sourceValue, global::System.Type destinationType) => false; + + /// + /// Converts the parameter to the parameter using and + /// + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// + /// an instance of , or null if there is no suitable conversion. + /// + public override object ConvertFrom(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => ConvertFrom(sourceValue); + + /// + /// Converts the parameter to the parameter using and + /// + /// the value to convert into an instance of . + /// + /// an instance of , or null if there is no suitable conversion. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDomainUpdateParameters ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDomainUpdateParameters).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return DomainUpdateParameters.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return DomainUpdateParameters.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return DomainUpdateParameters.DeserializeFromDictionary(sourceValue); + } + return null; + } + + /// NotImplemented -- this will return null + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// will always return null. + public override object ConvertTo(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => null; + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/DomainUpdateParameters.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/DomainUpdateParameters.cs new file mode 100644 index 000000000000..a6b0addc4f13 --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/DomainUpdateParameters.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.EventGrid.Models.Api20211015Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Extensions; + + /// Properties of the Domain update. + public partial class DomainUpdateParameters : + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDomainUpdateParameters, + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDomainUpdateParametersInternal + { + + /// + /// This Boolean is used to specify the creation mechanism for 'all' the Event Grid Domain Topics associated with this Event + /// Grid Domain resource. + /// In this context, creation of domain topic can be auto-managed (when true) or self-managed (when false). The default value + /// for this property is true. + /// When this property is null or set to true, Event Grid is responsible of automatically creating the domain topic when the + /// first event subscription is + /// created at the scope of the domain topic. If this property is set to false, then creating the first event subscription + /// will require creating a domain topic + /// by the user. The self-management mode can be used if the user wants full control of when the domain topic is created, + /// while auto-managed mode provides the + /// flexibility to perform less operations and manage fewer resources by the user. Also, note that in auto-managed creation + /// mode, user is allowed to create the + /// domain topic on demand if needed. + /// + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Inlined)] + public bool? AutoCreateTopicWithFirstSubscription { get => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDomainUpdateParameterPropertiesInternal)Property).AutoCreateTopicWithFirstSubscription; set => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDomainUpdateParameterPropertiesInternal)Property).AutoCreateTopicWithFirstSubscription = value ?? default(bool); } + + /// + /// This Boolean is used to specify the deletion mechanism for 'all' the Event Grid Domain Topics associated with this Event + /// Grid Domain resource. + /// In this context, deletion of domain topic can be auto-managed (when true) or self-managed (when false). The default value + /// for this property is true. + /// When this property is set to true, Event Grid is responsible of automatically deleting the domain topic when the last + /// event subscription at the scope + /// of the domain topic is deleted. If this property is set to false, then the user needs to manually delete the domain topic + /// when it is no longer needed + /// (e.g., when last event subscription is deleted and the resource needs to be cleaned up). The self-management mode can + /// be used if the user wants full + /// control of when the domain topic needs to be deleted, while auto-managed mode provides the flexibility to perform less + /// operations and manage fewer + /// resources by the user. + /// + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Inlined)] + public bool? AutoDeleteTopicWithLastSubscription { get => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDomainUpdateParameterPropertiesInternal)Property).AutoDeleteTopicWithLastSubscription; set => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDomainUpdateParameterPropertiesInternal)Property).AutoDeleteTopicWithLastSubscription = value ?? default(bool); } + + /// The data residency boundary for the domain. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Inlined)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.DataResidencyBoundary? DataResidencyBoundary { get => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDomainUpdateParameterPropertiesInternal)Property).DataResidencyBoundary; set => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDomainUpdateParameterPropertiesInternal)Property).DataResidencyBoundary = value ?? ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.DataResidencyBoundary)""); } + + /// + /// This boolean is used to enable or disable local auth. Default value is false. When the property is set to true, only AAD + /// token will be used to authenticate if user is allowed to publish to the domain. + /// + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Inlined)] + public bool? DisableLocalAuth { get => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDomainUpdateParameterPropertiesInternal)Property).DisableLocalAuth; set => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDomainUpdateParameterPropertiesInternal)Property).DisableLocalAuth = value ?? default(bool); } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IIdentityInfo _identity; + + /// Identity information for the resource. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Owned)] + internal Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IIdentityInfo Identity { get => (this._identity = this._identity ?? new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IdentityInfo()); set => this._identity = value; } + + /// The principal ID of resource identity. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Inlined)] + public string IdentityPrincipalId { get => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IIdentityInfoInternal)Identity).PrincipalId; set => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IIdentityInfoInternal)Identity).PrincipalId = value ?? null; } + + /// The tenant ID of resource. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Inlined)] + public string IdentityTenantId { get => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IIdentityInfoInternal)Identity).TenantId; set => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IIdentityInfoInternal)Identity).TenantId = value ?? null; } + + /// + /// The type of managed identity used. The type 'SystemAssigned, UserAssigned' includes both an implicitly created identity + /// and a set of user-assigned identities. The type 'None' will remove any identity. + /// + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Inlined)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.IdentityType? IdentityType { get => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IIdentityInfoInternal)Identity).Type; set => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IIdentityInfoInternal)Identity).Type = value ?? ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.IdentityType)""); } + + /// + /// The list of user identities associated with the resource. The user identity dictionary key references will be ARM resource + /// ids in the form: + /// '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ManagedIdentity/userAssignedIdentities/{identityName}'. + /// This property is currently not used and reserved for future usage. + /// + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Inlined)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IIdentityInfoUserAssignedIdentities IdentityUserAssignedIdentity { get => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IIdentityInfoInternal)Identity).UserAssignedIdentity; set => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IIdentityInfoInternal)Identity).UserAssignedIdentity = value ?? null /* model class */; } + + /// + /// This can be used to restrict traffic from specific IPs instead of all IPs. Note: These are considered only if PublicNetworkAccess + /// is enabled. + /// + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Inlined)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IInboundIPRule[] InboundIPRule { get => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDomainUpdateParameterPropertiesInternal)Property).InboundIPRule; set => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDomainUpdateParameterPropertiesInternal)Property).InboundIPRule = value ?? null /* arrayOf */; } + + /// Internal Acessors for Identity + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IIdentityInfo Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDomainUpdateParametersInternal.Identity { get => (this._identity = this._identity ?? new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IdentityInfo()); set { {_identity = value;} } } + + /// Internal Acessors for Property + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDomainUpdateParameterProperties Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDomainUpdateParametersInternal.Property { get => (this._property = this._property ?? new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.DomainUpdateParameterProperties()); set { {_property = value;} } } + + /// Internal Acessors for Sku + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IResourceSku Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDomainUpdateParametersInternal.Sku { get => (this._sku = this._sku ?? new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ResourceSku()); set { {_sku = value;} } } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDomainUpdateParameterProperties _property; + + /// Properties of the resource. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Owned)] + internal Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDomainUpdateParameterProperties Property { get => (this._property = this._property ?? new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.DomainUpdateParameterProperties()); set => this._property = value; } + + /// + /// This determines if traffic is allowed over public network. By default it is enabled. + /// You can further restrict to specific IPs by configuring + /// + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Inlined)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.PublicNetworkAccess? PublicNetworkAccess { get => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDomainUpdateParameterPropertiesInternal)Property).PublicNetworkAccess; set => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDomainUpdateParameterPropertiesInternal)Property).PublicNetworkAccess = value ?? ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.PublicNetworkAccess)""); } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IResourceSku _sku; + + /// The Sku pricing tier for the domain. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Owned)] + internal Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IResourceSku Sku { get => (this._sku = this._sku ?? new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ResourceSku()); set => this._sku = value; } + + /// The Sku name of the resource. The possible values are: Basic or Premium. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Inlined)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.Sku? SkuName { get => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IResourceSkuInternal)Sku).Name; set => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IResourceSkuInternal)Sku).Name = value ?? ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.Sku)""); } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDomainUpdateParametersTags _tag; + + /// Tags of the domains resource. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Owned)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDomainUpdateParametersTags Tag { get => (this._tag = this._tag ?? new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.DomainUpdateParametersTags()); set => this._tag = value; } + + /// Creates an new instance. + public DomainUpdateParameters() + { + + } + } + /// Properties of the Domain update. + public partial interface IDomainUpdateParameters : + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IJsonSerializable + { + /// + /// This Boolean is used to specify the creation mechanism for 'all' the Event Grid Domain Topics associated with this Event + /// Grid Domain resource. + /// In this context, creation of domain topic can be auto-managed (when true) or self-managed (when false). The default value + /// for this property is true. + /// When this property is null or set to true, Event Grid is responsible of automatically creating the domain topic when the + /// first event subscription is + /// created at the scope of the domain topic. If this property is set to false, then creating the first event subscription + /// will require creating a domain topic + /// by the user. The self-management mode can be used if the user wants full control of when the domain topic is created, + /// while auto-managed mode provides the + /// flexibility to perform less operations and manage fewer resources by the user. Also, note that in auto-managed creation + /// mode, user is allowed to create the + /// domain topic on demand if needed. + /// + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"This Boolean is used to specify the creation mechanism for 'all' the Event Grid Domain Topics associated with this Event Grid Domain resource. + In this context, creation of domain topic can be auto-managed (when true) or self-managed (when false). The default value for this property is true. + When this property is null or set to true, Event Grid is responsible of automatically creating the domain topic when the first event subscription is + created at the scope of the domain topic. If this property is set to false, then creating the first event subscription will require creating a domain topic + by the user. The self-management mode can be used if the user wants full control of when the domain topic is created, while auto-managed mode provides the + flexibility to perform less operations and manage fewer resources by the user. Also, note that in auto-managed creation mode, user is allowed to create the + domain topic on demand if needed.", + SerializedName = @"autoCreateTopicWithFirstSubscription", + PossibleTypes = new [] { typeof(bool) })] + bool? AutoCreateTopicWithFirstSubscription { get; set; } + /// + /// This Boolean is used to specify the deletion mechanism for 'all' the Event Grid Domain Topics associated with this Event + /// Grid Domain resource. + /// In this context, deletion of domain topic can be auto-managed (when true) or self-managed (when false). The default value + /// for this property is true. + /// When this property is set to true, Event Grid is responsible of automatically deleting the domain topic when the last + /// event subscription at the scope + /// of the domain topic is deleted. If this property is set to false, then the user needs to manually delete the domain topic + /// when it is no longer needed + /// (e.g., when last event subscription is deleted and the resource needs to be cleaned up). The self-management mode can + /// be used if the user wants full + /// control of when the domain topic needs to be deleted, while auto-managed mode provides the flexibility to perform less + /// operations and manage fewer + /// resources by the user. + /// + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"This Boolean is used to specify the deletion mechanism for 'all' the Event Grid Domain Topics associated with this Event Grid Domain resource. + In this context, deletion of domain topic can be auto-managed (when true) or self-managed (when false). The default value for this property is true. + When this property is set to true, Event Grid is responsible of automatically deleting the domain topic when the last event subscription at the scope + of the domain topic is deleted. If this property is set to false, then the user needs to manually delete the domain topic when it is no longer needed + (e.g., when last event subscription is deleted and the resource needs to be cleaned up). The self-management mode can be used if the user wants full + control of when the domain topic needs to be deleted, while auto-managed mode provides the flexibility to perform less operations and manage fewer + resources by the user.", + SerializedName = @"autoDeleteTopicWithLastSubscription", + PossibleTypes = new [] { typeof(bool) })] + bool? AutoDeleteTopicWithLastSubscription { get; set; } + /// The data residency boundary for the domain. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The data residency boundary for the domain.", + SerializedName = @"dataResidencyBoundary", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.DataResidencyBoundary) })] + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.DataResidencyBoundary? DataResidencyBoundary { get; set; } + /// + /// This boolean is used to enable or disable local auth. Default value is false. When the property is set to true, only AAD + /// token will be used to authenticate if user is allowed to publish to the domain. + /// + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"This boolean is used to enable or disable local auth. Default value is false. When the property is set to true, only AAD token will be used to authenticate if user is allowed to publish to the domain.", + SerializedName = @"disableLocalAuth", + PossibleTypes = new [] { typeof(bool) })] + bool? DisableLocalAuth { get; set; } + /// The principal ID of resource identity. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The principal ID of resource identity.", + SerializedName = @"principalId", + PossibleTypes = new [] { typeof(string) })] + string IdentityPrincipalId { get; set; } + /// The tenant ID of resource. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The tenant ID of resource.", + SerializedName = @"tenantId", + PossibleTypes = new [] { typeof(string) })] + string IdentityTenantId { get; set; } + /// + /// The type of managed identity used. The type 'SystemAssigned, UserAssigned' includes both an implicitly created identity + /// and a set of user-assigned identities. The type 'None' will remove any identity. + /// + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The type of managed identity used. The type 'SystemAssigned, UserAssigned' includes both an implicitly created identity and a set of user-assigned identities. The type 'None' will remove any identity.", + SerializedName = @"type", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.IdentityType) })] + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.IdentityType? IdentityType { get; set; } + /// + /// The list of user identities associated with the resource. The user identity dictionary key references will be ARM resource + /// ids in the form: + /// '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ManagedIdentity/userAssignedIdentities/{identityName}'. + /// This property is currently not used and reserved for future usage. + /// + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The list of user identities associated with the resource. The user identity dictionary key references will be ARM resource ids in the form: + '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ManagedIdentity/userAssignedIdentities/{identityName}'. + This property is currently not used and reserved for future usage.", + SerializedName = @"userAssignedIdentities", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IIdentityInfoUserAssignedIdentities) })] + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IIdentityInfoUserAssignedIdentities IdentityUserAssignedIdentity { get; set; } + /// + /// This can be used to restrict traffic from specific IPs instead of all IPs. Note: These are considered only if PublicNetworkAccess + /// is enabled. + /// + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"This can be used to restrict traffic from specific IPs instead of all IPs. Note: These are considered only if PublicNetworkAccess is enabled.", + SerializedName = @"inboundIpRules", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IInboundIPRule) })] + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IInboundIPRule[] InboundIPRule { get; set; } + /// + /// This determines if traffic is allowed over public network. By default it is enabled. + /// You can further restrict to specific IPs by configuring + /// + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"This determines if traffic is allowed over public network. By default it is enabled. + You can further restrict to specific IPs by configuring ", + SerializedName = @"publicNetworkAccess", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.PublicNetworkAccess) })] + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.PublicNetworkAccess? PublicNetworkAccess { get; set; } + /// The Sku name of the resource. The possible values are: Basic or Premium. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The Sku name of the resource. The possible values are: Basic or Premium.", + SerializedName = @"name", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.Sku) })] + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.Sku? SkuName { get; set; } + /// Tags of the domains resource. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Tags of the domains resource.", + SerializedName = @"tags", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDomainUpdateParametersTags) })] + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDomainUpdateParametersTags Tag { get; set; } + + } + /// Properties of the Domain update. + internal partial interface IDomainUpdateParametersInternal + + { + /// + /// This Boolean is used to specify the creation mechanism for 'all' the Event Grid Domain Topics associated with this Event + /// Grid Domain resource. + /// In this context, creation of domain topic can be auto-managed (when true) or self-managed (when false). The default value + /// for this property is true. + /// When this property is null or set to true, Event Grid is responsible of automatically creating the domain topic when the + /// first event subscription is + /// created at the scope of the domain topic. If this property is set to false, then creating the first event subscription + /// will require creating a domain topic + /// by the user. The self-management mode can be used if the user wants full control of when the domain topic is created, + /// while auto-managed mode provides the + /// flexibility to perform less operations and manage fewer resources by the user. Also, note that in auto-managed creation + /// mode, user is allowed to create the + /// domain topic on demand if needed. + /// + bool? AutoCreateTopicWithFirstSubscription { get; set; } + /// + /// This Boolean is used to specify the deletion mechanism for 'all' the Event Grid Domain Topics associated with this Event + /// Grid Domain resource. + /// In this context, deletion of domain topic can be auto-managed (when true) or self-managed (when false). The default value + /// for this property is true. + /// When this property is set to true, Event Grid is responsible of automatically deleting the domain topic when the last + /// event subscription at the scope + /// of the domain topic is deleted. If this property is set to false, then the user needs to manually delete the domain topic + /// when it is no longer needed + /// (e.g., when last event subscription is deleted and the resource needs to be cleaned up). The self-management mode can + /// be used if the user wants full + /// control of when the domain topic needs to be deleted, while auto-managed mode provides the flexibility to perform less + /// operations and manage fewer + /// resources by the user. + /// + bool? AutoDeleteTopicWithLastSubscription { get; set; } + /// The data residency boundary for the domain. + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.DataResidencyBoundary? DataResidencyBoundary { get; set; } + /// + /// This boolean is used to enable or disable local auth. Default value is false. When the property is set to true, only AAD + /// token will be used to authenticate if user is allowed to publish to the domain. + /// + bool? DisableLocalAuth { get; set; } + /// Identity information for the resource. + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IIdentityInfo Identity { get; set; } + /// The principal ID of resource identity. + string IdentityPrincipalId { get; set; } + /// The tenant ID of resource. + string IdentityTenantId { get; set; } + /// + /// The type of managed identity used. The type 'SystemAssigned, UserAssigned' includes both an implicitly created identity + /// and a set of user-assigned identities. The type 'None' will remove any identity. + /// + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.IdentityType? IdentityType { get; set; } + /// + /// The list of user identities associated with the resource. The user identity dictionary key references will be ARM resource + /// ids in the form: + /// '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ManagedIdentity/userAssignedIdentities/{identityName}'. + /// This property is currently not used and reserved for future usage. + /// + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IIdentityInfoUserAssignedIdentities IdentityUserAssignedIdentity { get; set; } + /// + /// This can be used to restrict traffic from specific IPs instead of all IPs. Note: These are considered only if PublicNetworkAccess + /// is enabled. + /// + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IInboundIPRule[] InboundIPRule { get; set; } + /// Properties of the resource. + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDomainUpdateParameterProperties Property { get; set; } + /// + /// This determines if traffic is allowed over public network. By default it is enabled. + /// You can further restrict to specific IPs by configuring + /// + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.PublicNetworkAccess? PublicNetworkAccess { get; set; } + /// The Sku pricing tier for the domain. + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IResourceSku Sku { get; set; } + /// The Sku name of the resource. The possible values are: Basic or Premium. + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.Sku? SkuName { get; set; } + /// Tags of the domains resource. + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDomainUpdateParametersTags Tag { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/DomainUpdateParameters.json.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/DomainUpdateParameters.json.cs new file mode 100644 index 000000000000..de6c113287dc --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/DomainUpdateParameters.json.cs @@ -0,0 +1,112 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Extensions; + + /// Properties of the Domain update. + public partial class DomainUpdateParameters + { + + /// + /// AfterFromJson will be called after the json deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JsonNode that should be deserialized into this object. + + partial void AfterFromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json erialization has finished, allowing customization of the before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JSON container that the serialization result will be placed in. + + partial void AfterToJson(ref Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject container); + + /// + /// BeforeFromJson will be called before the json deserialization has commenced, allowing complete customization of + /// the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JsonNode that should be deserialized into this object. + /// Determines if the rest of the deserialization should be processed, or if the method should return + /// instantly. + + partial void BeforeFromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject json, ref bool returnNow); + + /// + /// BeforeToJson will be called before the json serialization has commenced, allowing complete customization of the + /// object before it is serialized. + /// If you wish to disable the default serialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JSON container that the serialization result will be placed in. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeToJson(ref Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject instance to deserialize from. + internal DomainUpdateParameters(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Models.Api20211015Preview.DomainUpdateParameterProperties.FromJson(__jsonProperties) : Property;} + {_identity = If( json?.PropertyT("identity"), out var __jsonIdentity) ? Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IdentityInfo.FromJson(__jsonIdentity) : Identity;} + {_sku = If( json?.PropertyT("sku"), out var __jsonSku) ? Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ResourceSku.FromJson(__jsonSku) : Sku;} + {_tag = If( json?.PropertyT("tags"), out var __jsonTags) ? Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.DomainUpdateParametersTags.FromJson(__jsonTags) : Tag;} + AfterFromJson(json); + } + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDomainUpdateParameters. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDomainUpdateParameters. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDomainUpdateParameters FromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject json ? new DomainUpdateParameters(json) : null; + } + + /// + /// Serializes this instance of into a . + /// + /// The container to serialize this object into. If the caller + /// passes in null, a new instance will be created and returned to the caller. + /// Allows the caller to choose the depth of the serialization. See . + /// + /// a serialized instance of as a . + /// + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject(); + + bool returnNow = false; + BeforeToJson(ref container, ref returnNow); + if (returnNow) + { + return container; + } + AddIf( null != this._property ? (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode) this._property.ToJson(null,serializationMode) : null, "properties" ,container.Add ); + AddIf( null != this._identity ? (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode) this._identity.ToJson(null,serializationMode) : null, "identity" ,container.Add ); + AddIf( null != this._sku ? (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode) this._sku.ToJson(null,serializationMode) : null, "sku" ,container.Add ); + AddIf( null != this._tag ? (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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/eventgrid/generated/api/Models/Api20211015Preview/DomainUpdateParametersTags.PowerShell.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/DomainUpdateParametersTags.PowerShell.cs new file mode 100644 index 000000000000..59ac09733b43 --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/DomainUpdateParametersTags.PowerShell.cs @@ -0,0 +1,140 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell; + + /// Tags of the domains resource. + [System.ComponentModel.TypeConverter(typeof(DomainUpdateParametersTagsTypeConverter))] + public partial class DomainUpdateParametersTags + { + + /// + /// AfterDeserializeDictionary will be called after the deserialization has finished, allowing customization of the + /// object before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Collections.IDictionary content that should be used. + + partial void AfterDeserializeDictionary(global::System.Collections.IDictionary content); + + /// + /// AfterDeserializePSObject will be called after the deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Management.Automation.PSObject content that should be used. + + partial void AfterDeserializePSObject(global::System.Management.Automation.PSObject content); + + /// + /// BeforeDeserializeDictionary will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Collections.IDictionary content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializeDictionary(global::System.Collections.IDictionary content, ref bool returnNow); + + /// + /// BeforeDeserializePSObject will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializePSObject(global::System.Management.Automation.PSObject content, ref bool returnNow); + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDomainUpdateParametersTags DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new DomainUpdateParametersTags(content); + } + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDomainUpdateParametersTags DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new DomainUpdateParametersTags(content); + } + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + internal DomainUpdateParametersTags(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 DomainUpdateParametersTags(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.EventGrid.Models.Api20211015Preview.IDomainUpdateParametersTags FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode.Parse(jsonText)); + + /// Serializes this instance to a json string. + + /// a containing this model serialized to JSON text. + public string ToJsonString() => ToJson(null, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// Tags of the domains resource. + [System.ComponentModel.TypeConverter(typeof(DomainUpdateParametersTagsTypeConverter))] + public partial interface IDomainUpdateParametersTags + + { + + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/DomainUpdateParametersTags.TypeConverter.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/DomainUpdateParametersTags.TypeConverter.cs new file mode 100644 index 000000000000..9d01071a5148 --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/DomainUpdateParametersTags.TypeConverter.cs @@ -0,0 +1,147 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class DomainUpdateParametersTagsTypeConverter : global::System.Management.Automation.PSTypeConverter + { + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false. + /// + public override bool CanConvertFrom(object sourceValue, global::System.Type destinationType) => CanConvertFrom(sourceValue); + + /// + /// Determines if the converter can convert the parameter to the . + /// + /// the instance to check if it can be converted to the type. + /// + /// true if the instance could be converted to a type, otherwise false + /// + public static bool CanConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return true; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + // we say yest to PSObjects + return true; + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + // we say yest to Hashtables/dictionaries + return true; + } + try + { + if (null != sourceValue.ToJsonString()) + { + return true; + } + } + catch + { + // Not one of our objects + } + try + { + string text = sourceValue.ToString()?.Trim(); + return true == text?.StartsWith("{") && true == text?.EndsWith("}") && Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonType.Object; + } + catch + { + // Doesn't look like it can be treated as JSON + } + return false; + } + + /// + /// Determines if the parameter can be converted to the parameter + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false + /// + public override bool CanConvertTo(object sourceValue, global::System.Type destinationType) => false; + + /// + /// Converts the parameter to the parameter using and + /// + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// + /// an instance of , or null if there is no suitable conversion. + /// + public override object ConvertFrom(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => ConvertFrom(sourceValue); + + /// + /// Converts the parameter to the parameter using and + /// + /// the value to convert into an instance of . + /// + /// an instance of , or null if there is no suitable conversion. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDomainUpdateParametersTags ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDomainUpdateParametersTags).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return DomainUpdateParametersTags.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return DomainUpdateParametersTags.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return DomainUpdateParametersTags.DeserializeFromDictionary(sourceValue); + } + return null; + } + + /// NotImplemented -- this will return null + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// will always return null. + public override object ConvertTo(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => null; + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/DomainUpdateParametersTags.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/DomainUpdateParametersTags.cs new file mode 100644 index 000000000000..854c071970df --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/DomainUpdateParametersTags.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.EventGrid.Models.Api20211015Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Extensions; + + /// Tags of the domains resource. + public partial class DomainUpdateParametersTags : + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDomainUpdateParametersTags, + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDomainUpdateParametersTagsInternal + { + + /// Creates an new instance. + public DomainUpdateParametersTags() + { + + } + } + /// Tags of the domains resource. + public partial interface IDomainUpdateParametersTags : + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IJsonSerializable, + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IAssociativeArray + { + + } + /// Tags of the domains resource. + internal partial interface IDomainUpdateParametersTagsInternal + + { + + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/DomainUpdateParametersTags.dictionary.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/DomainUpdateParametersTags.dictionary.cs new file mode 100644 index 000000000000..3bd6ed7edf6c --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/DomainUpdateParametersTags.dictionary.cs @@ -0,0 +1,75 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Extensions; + + public partial class DomainUpdateParametersTags : + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IAssociativeArray + { + protected global::System.Collections.Generic.Dictionary __additionalProperties = new global::System.Collections.Generic.Dictionary(); + + global::System.Collections.Generic.IDictionary Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IAssociativeArray.AdditionalProperties { get => __additionalProperties; } + + int Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IAssociativeArray.Count { get => __additionalProperties.Count; } + + global::System.Collections.Generic.IEnumerable Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IAssociativeArray.Keys { get => __additionalProperties.Keys; } + + global::System.Collections.Generic.IEnumerable Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.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.EventGrid.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.EventGrid.Models.Api20211015Preview.DomainUpdateParametersTags source) => source.__additionalProperties; + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/DomainUpdateParametersTags.json.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/DomainUpdateParametersTags.json.cs new file mode 100644 index 000000000000..86c54ec44dc6 --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/DomainUpdateParametersTags.json.cs @@ -0,0 +1,107 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Extensions; + + /// Tags of the domains resource. + public partial class DomainUpdateParametersTags + { + + /// + /// AfterFromJson will be called after the json deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JsonNode that should be deserialized into this object. + + partial void AfterFromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json erialization has finished, allowing customization of the before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JSON container that the serialization result will be placed in. + + partial void AfterToJson(ref Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject container); + + /// + /// BeforeFromJson will be called before the json deserialization has commenced, allowing complete customization of + /// the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JsonNode that should be deserialized into this object. + /// Determines if the rest of the deserialization should be processed, or if the method should return + /// instantly. + + partial void BeforeFromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject json, ref bool returnNow); + + /// + /// BeforeToJson will be called before the json serialization has commenced, allowing complete customization of the + /// object before it is serialized. + /// If you wish to disable the default serialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JSON container that the serialization result will be placed in. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeToJson(ref Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject instance to deserialize from. + /// + internal DomainUpdateParametersTags(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Runtime.JsonSerializable.FromJson( json, ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IAssociativeArray)this).AdditionalProperties, null ,exclusions ); + AfterFromJson(json); + } + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDomainUpdateParametersTags. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDomainUpdateParametersTags. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDomainUpdateParametersTags FromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject json ? new DomainUpdateParametersTags(json) : null; + } + + /// + /// Serializes this instance of into a . + /// + /// The container to serialize this object into. If the caller + /// passes in null, a new instance will be created and returned to the caller. + /// Allows the caller to choose the depth of the serialization. See . + /// + /// a serialized instance of as a . + /// + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject(); + + bool returnNow = false; + BeforeToJson(ref container, ref returnNow); + if (returnNow) + { + return container; + } + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.JsonSerializable.ToJson( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IAssociativeArray)this).AdditionalProperties, container); + AfterToJson(ref container); + return container; + } + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/DomainsListResult.PowerShell.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/DomainsListResult.PowerShell.cs new file mode 100644 index 000000000000..4b7927f819d2 --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/DomainsListResult.PowerShell.cs @@ -0,0 +1,150 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell; + + /// Result of the List Domains operation + [System.ComponentModel.TypeConverter(typeof(DomainsListResultTypeConverter))] + public partial class DomainsListResult + { + + /// + /// AfterDeserializeDictionary will be called after the deserialization has finished, allowing customization of the + /// object before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Collections.IDictionary content that should be used. + + partial void AfterDeserializeDictionary(global::System.Collections.IDictionary content); + + /// + /// AfterDeserializePSObject will be called after the deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Management.Automation.PSObject content that should be used. + + partial void AfterDeserializePSObject(global::System.Management.Automation.PSObject content); + + /// + /// BeforeDeserializeDictionary will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Collections.IDictionary content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializeDictionary(global::System.Collections.IDictionary content, ref bool returnNow); + + /// + /// BeforeDeserializePSObject will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializePSObject(global::System.Management.Automation.PSObject content, ref bool returnNow); + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDomainsListResult DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new DomainsListResult(content); + } + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDomainsListResult DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new DomainsListResult(content); + } + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + internal DomainsListResult(global::System.Collections.IDictionary content) + { + bool returnNow = false; + BeforeDeserializeDictionary(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("Value")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDomainsListResultInternal)this).Value = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDomain[]) content.GetValueForProperty("Value",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDomainsListResultInternal)this).Value, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.DomainTypeConverter.ConvertFrom)); + } + if (content.Contains("NextLink")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDomainsListResultInternal)this).NextLink = (string) content.GetValueForProperty("NextLink",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDomainsListResultInternal)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 DomainsListResult(global::System.Management.Automation.PSObject content) + { + bool returnNow = false; + BeforeDeserializePSObject(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("Value")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDomainsListResultInternal)this).Value = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDomain[]) content.GetValueForProperty("Value",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDomainsListResultInternal)this).Value, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.DomainTypeConverter.ConvertFrom)); + } + if (content.Contains("NextLink")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDomainsListResultInternal)this).NextLink = (string) content.GetValueForProperty("NextLink",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDomainsListResultInternal)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.EventGrid.Models.Api20211015Preview.IDomainsListResult FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode.Parse(jsonText)); + + /// Serializes this instance to a json string. + + /// a containing this model serialized to JSON text. + public string ToJsonString() => ToJson(null, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// Result of the List Domains operation + [System.ComponentModel.TypeConverter(typeof(DomainsListResultTypeConverter))] + public partial interface IDomainsListResult + + { + + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/DomainsListResult.TypeConverter.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/DomainsListResult.TypeConverter.cs new file mode 100644 index 000000000000..a52bd9677dea --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/DomainsListResult.TypeConverter.cs @@ -0,0 +1,146 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class DomainsListResultTypeConverter : global::System.Management.Automation.PSTypeConverter + { + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false. + /// + public override bool CanConvertFrom(object sourceValue, global::System.Type destinationType) => CanConvertFrom(sourceValue); + + /// + /// Determines if the converter can convert the parameter to the . + /// + /// the instance to check if it can be converted to the type. + /// + /// true if the instance could be converted to a type, otherwise false + /// + public static bool CanConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return true; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + // we say yest to PSObjects + return true; + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + // we say yest to Hashtables/dictionaries + return true; + } + try + { + if (null != sourceValue.ToJsonString()) + { + return true; + } + } + catch + { + // Not one of our objects + } + try + { + string text = sourceValue.ToString()?.Trim(); + return true == text?.StartsWith("{") && true == text?.EndsWith("}") && Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonType.Object; + } + catch + { + // Doesn't look like it can be treated as JSON + } + return false; + } + + /// + /// Determines if the parameter can be converted to the parameter + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false + /// + public override bool CanConvertTo(object sourceValue, global::System.Type destinationType) => false; + + /// + /// Converts the parameter to the parameter using and + /// + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// + /// an instance of , or null if there is no suitable conversion. + /// + public override object ConvertFrom(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => ConvertFrom(sourceValue); + + /// + /// Converts the parameter to the parameter using and + /// + /// the value to convert into an instance of . + /// + /// an instance of , or null if there is no suitable conversion. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDomainsListResult ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDomainsListResult).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return DomainsListResult.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return DomainsListResult.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return DomainsListResult.DeserializeFromDictionary(sourceValue); + } + return null; + } + + /// NotImplemented -- this will return null + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// will always return null. + public override object ConvertTo(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => null; + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/DomainsListResult.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/DomainsListResult.cs new file mode 100644 index 000000000000..a8ae2b2df24f --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/DomainsListResult.cs @@ -0,0 +1,68 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Extensions; + + /// Result of the List Domains operation + public partial class DomainsListResult : + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDomainsListResult, + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDomainsListResultInternal + { + + /// Backing field for property. + private string _nextLink; + + /// A link for the next page of domains + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Owned)] + public string NextLink { get => this._nextLink; set => this._nextLink = value; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDomain[] _value; + + /// A collection of Domains + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Owned)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDomain[] Value { get => this._value; set => this._value = value; } + + /// Creates an new instance. + public DomainsListResult() + { + + } + } + /// Result of the List Domains operation + public partial interface IDomainsListResult : + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IJsonSerializable + { + /// A link for the next page of domains + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"A link for the next page of domains", + SerializedName = @"nextLink", + PossibleTypes = new [] { typeof(string) })] + string NextLink { get; set; } + /// A collection of Domains + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"A collection of Domains", + SerializedName = @"value", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDomain) })] + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDomain[] Value { get; set; } + + } + /// Result of the List Domains operation + internal partial interface IDomainsListResultInternal + + { + /// A link for the next page of domains + string NextLink { get; set; } + /// A collection of Domains + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDomain[] Value { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/DomainsListResult.json.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/DomainsListResult.json.cs new file mode 100644 index 000000000000..adc0b8ceeb9e --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/DomainsListResult.json.cs @@ -0,0 +1,116 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Extensions; + + /// Result of the List Domains operation + public partial class DomainsListResult + { + + /// + /// AfterFromJson will be called after the json deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JsonNode that should be deserialized into this object. + + partial void AfterFromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json erialization has finished, allowing customization of the before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JSON container that the serialization result will be placed in. + + partial void AfterToJson(ref Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject container); + + /// + /// BeforeFromJson will be called before the json deserialization has commenced, allowing complete customization of + /// the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JsonNode that should be deserialized into this object. + /// Determines if the rest of the deserialization should be processed, or if the method should return + /// instantly. + + partial void BeforeFromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject json, ref bool returnNow); + + /// + /// BeforeToJson will be called before the json serialization has commenced, allowing complete customization of the + /// object before it is serialized. + /// If you wish to disable the default serialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JSON container that the serialization result will be placed in. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeToJson(ref Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject instance to deserialize from. + internal DomainsListResult(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.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.EventGrid.Models.Api20211015Preview.IDomain) (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.Domain.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.EventGrid.Models.Api20211015Preview.IDomainsListResult. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDomainsListResult. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDomainsListResult FromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject json ? new DomainsListResult(json) : null; + } + + /// + /// Serializes this instance of into a . + /// + /// The container to serialize this object into. If the caller + /// passes in null, a new instance will be created and returned to the caller. + /// Allows the caller to choose the depth of the serialization. See . + /// + /// a serialized instance of as a . + /// + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Runtime.Json.XNodeArray(); + foreach( var __x in this._value ) + { + AddIf(__x?.ToJson(null, serializationMode) ,__w.Add); + } + container.Add("value",__w); + } + AddIf( null != (((object)this._nextLink)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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/eventgrid/generated/api/Models/Api20211015Preview/DynamicDeliveryAttributeMapping.PowerShell.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/DynamicDeliveryAttributeMapping.PowerShell.cs new file mode 100644 index 000000000000..e04b46d73126 --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/DynamicDeliveryAttributeMapping.PowerShell.cs @@ -0,0 +1,168 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell; + + /// Dynamic delivery attribute mapping details. + [System.ComponentModel.TypeConverter(typeof(DynamicDeliveryAttributeMappingTypeConverter))] + public partial class DynamicDeliveryAttributeMapping + { + + /// + /// AfterDeserializeDictionary will be called after the deserialization has finished, allowing customization of the + /// object before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Collections.IDictionary content that should be used. + + partial void AfterDeserializeDictionary(global::System.Collections.IDictionary content); + + /// + /// AfterDeserializePSObject will be called after the deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Management.Automation.PSObject content that should be used. + + partial void AfterDeserializePSObject(global::System.Management.Automation.PSObject content); + + /// + /// BeforeDeserializeDictionary will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Collections.IDictionary content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializeDictionary(global::System.Collections.IDictionary content, ref bool returnNow); + + /// + /// BeforeDeserializePSObject will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializePSObject(global::System.Management.Automation.PSObject content, ref bool returnNow); + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDynamicDeliveryAttributeMapping DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new DynamicDeliveryAttributeMapping(content); + } + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDynamicDeliveryAttributeMapping DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new DynamicDeliveryAttributeMapping(content); + } + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + internal DynamicDeliveryAttributeMapping(global::System.Collections.IDictionary content) + { + bool returnNow = false; + BeforeDeserializeDictionary(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("Property")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDynamicDeliveryAttributeMappingInternal)this).Property = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDynamicDeliveryAttributeMappingProperties) content.GetValueForProperty("Property",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDynamicDeliveryAttributeMappingInternal)this).Property, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.DynamicDeliveryAttributeMappingPropertiesTypeConverter.ConvertFrom); + } + if (content.Contains("Name")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDeliveryAttributeMappingInternal)this).Name = (string) content.GetValueForProperty("Name",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDeliveryAttributeMappingInternal)this).Name, global::System.Convert.ToString); + } + if (content.Contains("Type")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDeliveryAttributeMappingInternal)this).Type = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.DeliveryAttributeMappingType) content.GetValueForProperty("Type",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDeliveryAttributeMappingInternal)this).Type, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.DeliveryAttributeMappingType.CreateFrom); + } + if (content.Contains("SourceField")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDynamicDeliveryAttributeMappingInternal)this).SourceField = (string) content.GetValueForProperty("SourceField",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDynamicDeliveryAttributeMappingInternal)this).SourceField, global::System.Convert.ToString); + } + AfterDeserializeDictionary(content); + } + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + internal DynamicDeliveryAttributeMapping(global::System.Management.Automation.PSObject content) + { + bool returnNow = false; + BeforeDeserializePSObject(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("Property")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDynamicDeliveryAttributeMappingInternal)this).Property = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDynamicDeliveryAttributeMappingProperties) content.GetValueForProperty("Property",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDynamicDeliveryAttributeMappingInternal)this).Property, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.DynamicDeliveryAttributeMappingPropertiesTypeConverter.ConvertFrom); + } + if (content.Contains("Name")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDeliveryAttributeMappingInternal)this).Name = (string) content.GetValueForProperty("Name",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDeliveryAttributeMappingInternal)this).Name, global::System.Convert.ToString); + } + if (content.Contains("Type")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDeliveryAttributeMappingInternal)this).Type = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.DeliveryAttributeMappingType) content.GetValueForProperty("Type",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDeliveryAttributeMappingInternal)this).Type, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.DeliveryAttributeMappingType.CreateFrom); + } + if (content.Contains("SourceField")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDynamicDeliveryAttributeMappingInternal)this).SourceField = (string) content.GetValueForProperty("SourceField",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDynamicDeliveryAttributeMappingInternal)this).SourceField, 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.EventGrid.Models.Api20211015Preview.IDynamicDeliveryAttributeMapping FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode.Parse(jsonText)); + + /// Serializes this instance to a json string. + + /// a containing this model serialized to JSON text. + public string ToJsonString() => ToJson(null, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// Dynamic delivery attribute mapping details. + [System.ComponentModel.TypeConverter(typeof(DynamicDeliveryAttributeMappingTypeConverter))] + public partial interface IDynamicDeliveryAttributeMapping + + { + + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/DynamicDeliveryAttributeMapping.TypeConverter.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/DynamicDeliveryAttributeMapping.TypeConverter.cs new file mode 100644 index 000000000000..5f101e7a85ee --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/DynamicDeliveryAttributeMapping.TypeConverter.cs @@ -0,0 +1,147 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class DynamicDeliveryAttributeMappingTypeConverter : global::System.Management.Automation.PSTypeConverter + { + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false. + /// + public override bool CanConvertFrom(object sourceValue, global::System.Type destinationType) => CanConvertFrom(sourceValue); + + /// + /// Determines if the converter can convert the parameter to the . + /// + /// the instance to check if it can be converted to the type. + /// + /// true if the instance could be converted to a type, otherwise false + /// + public static bool CanConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return true; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + // we say yest to PSObjects + return true; + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + // we say yest to Hashtables/dictionaries + return true; + } + try + { + if (null != sourceValue.ToJsonString()) + { + return true; + } + } + catch + { + // Not one of our objects + } + try + { + string text = sourceValue.ToString()?.Trim(); + return true == text?.StartsWith("{") && true == text?.EndsWith("}") && Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonType.Object; + } + catch + { + // Doesn't look like it can be treated as JSON + } + return false; + } + + /// + /// Determines if the parameter can be converted to the parameter + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false + /// + public override bool CanConvertTo(object sourceValue, global::System.Type destinationType) => false; + + /// + /// Converts the parameter to the parameter using and + /// + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// + /// an instance of , or null if there is no suitable conversion. + /// + public override object ConvertFrom(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => ConvertFrom(sourceValue); + + /// + /// Converts the parameter to the parameter using and + /// + /// the value to convert into an instance of . + /// + /// an instance of , or null if there is no suitable conversion. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDynamicDeliveryAttributeMapping ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDynamicDeliveryAttributeMapping).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return DynamicDeliveryAttributeMapping.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return DynamicDeliveryAttributeMapping.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return DynamicDeliveryAttributeMapping.DeserializeFromDictionary(sourceValue); + } + return null; + } + + /// NotImplemented -- this will return null + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// will always return null. + public override object ConvertTo(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => null; + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/DynamicDeliveryAttributeMapping.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/DynamicDeliveryAttributeMapping.cs new file mode 100644 index 000000000000..9e1be0fef557 --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/DynamicDeliveryAttributeMapping.cs @@ -0,0 +1,87 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Extensions; + + /// Dynamic delivery attribute mapping details. + public partial class DynamicDeliveryAttributeMapping : + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDynamicDeliveryAttributeMapping, + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDynamicDeliveryAttributeMappingInternal, + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IValidates + { + /// + /// Backing field for Inherited model + /// + private Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDeliveryAttributeMapping __deliveryAttributeMapping = new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.DeliveryAttributeMapping(); + + /// Internal Acessors for Property + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDynamicDeliveryAttributeMappingProperties Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDynamicDeliveryAttributeMappingInternal.Property { get => (this._property = this._property ?? new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.DynamicDeliveryAttributeMappingProperties()); set { {_property = value;} } } + + /// Name of the delivery attribute or header. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Inherited)] + public string Name { get => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDeliveryAttributeMappingInternal)__deliveryAttributeMapping).Name; set => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDeliveryAttributeMappingInternal)__deliveryAttributeMapping).Name = value ?? null; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDynamicDeliveryAttributeMappingProperties _property; + + /// Properties of dynamic delivery attribute mapping. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Owned)] + internal Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDynamicDeliveryAttributeMappingProperties Property { get => (this._property = this._property ?? new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.DynamicDeliveryAttributeMappingProperties()); set => this._property = value; } + + /// JSON path in the event which contains attribute value. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Inlined)] + public string SourceField { get => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDynamicDeliveryAttributeMappingPropertiesInternal)Property).SourceField; set => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDynamicDeliveryAttributeMappingPropertiesInternal)Property).SourceField = value ?? null; } + + /// Type of the delivery attribute or header name. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Inherited)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.DeliveryAttributeMappingType Type { get => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDeliveryAttributeMappingInternal)__deliveryAttributeMapping).Type; set => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDeliveryAttributeMappingInternal)__deliveryAttributeMapping).Type = value ; } + + /// Creates an new instance. + public DynamicDeliveryAttributeMapping() + { + + } + + /// Validates that this object meets the validation criteria. + /// an instance that will receive validation + /// events. + /// + /// A that will be complete when validation is completed. + /// + public async global::System.Threading.Tasks.Task Validate(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener eventListener) + { + await eventListener.AssertNotNull(nameof(__deliveryAttributeMapping), __deliveryAttributeMapping); + await eventListener.AssertObjectIsValid(nameof(__deliveryAttributeMapping), __deliveryAttributeMapping); + } + } + /// Dynamic delivery attribute mapping details. + public partial interface IDynamicDeliveryAttributeMapping : + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IJsonSerializable, + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDeliveryAttributeMapping + { + /// JSON path in the event which contains attribute value. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"JSON path in the event which contains attribute value.", + SerializedName = @"sourceField", + PossibleTypes = new [] { typeof(string) })] + string SourceField { get; set; } + + } + /// Dynamic delivery attribute mapping details. + internal partial interface IDynamicDeliveryAttributeMappingInternal : + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDeliveryAttributeMappingInternal + { + /// Properties of dynamic delivery attribute mapping. + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDynamicDeliveryAttributeMappingProperties Property { get; set; } + /// JSON path in the event which contains attribute value. + string SourceField { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/DynamicDeliveryAttributeMapping.json.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/DynamicDeliveryAttributeMapping.json.cs new file mode 100644 index 000000000000..3444cc21c362 --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/DynamicDeliveryAttributeMapping.json.cs @@ -0,0 +1,108 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Extensions; + + /// Dynamic delivery attribute mapping details. + public partial class DynamicDeliveryAttributeMapping + { + + /// + /// AfterFromJson will be called after the json deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JsonNode that should be deserialized into this object. + + partial void AfterFromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json erialization has finished, allowing customization of the before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JSON container that the serialization result will be placed in. + + partial void AfterToJson(ref Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject container); + + /// + /// BeforeFromJson will be called before the json deserialization has commenced, allowing complete customization of + /// the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JsonNode that should be deserialized into this object. + /// Determines if the rest of the deserialization should be processed, or if the method should return + /// instantly. + + partial void BeforeFromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject json, ref bool returnNow); + + /// + /// BeforeToJson will be called before the json serialization has commenced, allowing complete customization of the + /// object before it is serialized. + /// If you wish to disable the default serialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JSON container that the serialization result will be placed in. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeToJson(ref Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject instance to deserialize from. + internal DynamicDeliveryAttributeMapping(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject json) + { + bool returnNow = false; + BeforeFromJson(json, ref returnNow); + if (returnNow) + { + return; + } + __deliveryAttributeMapping = new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.DeliveryAttributeMapping(json); + {_property = If( json?.PropertyT("properties"), out var __jsonProperties) ? Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.DynamicDeliveryAttributeMappingProperties.FromJson(__jsonProperties) : Property;} + AfterFromJson(json); + } + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDynamicDeliveryAttributeMapping. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDynamicDeliveryAttributeMapping. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDynamicDeliveryAttributeMapping FromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject json ? new DynamicDeliveryAttributeMapping(json) : null; + } + + /// + /// Serializes this instance of into a . + /// + /// The container to serialize this object into. If the caller + /// passes in null, a new instance will be created and returned to the caller. + /// Allows the caller to choose the depth of the serialization. See . + /// + /// a serialized instance of as a . + /// + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject(); + + bool returnNow = false; + BeforeToJson(ref container, ref returnNow); + if (returnNow) + { + return container; + } + __deliveryAttributeMapping?.ToJson(container, serializationMode); + AddIf( null != this._property ? (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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/eventgrid/generated/api/Models/Api20211015Preview/DynamicDeliveryAttributeMappingProperties.PowerShell.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/DynamicDeliveryAttributeMappingProperties.PowerShell.cs new file mode 100644 index 000000000000..549221e25040 --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/DynamicDeliveryAttributeMappingProperties.PowerShell.cs @@ -0,0 +1,147 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell; + + /// Properties of dynamic delivery attribute mapping. + [System.ComponentModel.TypeConverter(typeof(DynamicDeliveryAttributeMappingPropertiesTypeConverter))] + public partial class DynamicDeliveryAttributeMappingProperties + { + + /// + /// AfterDeserializeDictionary will be called after the deserialization has finished, allowing customization of the + /// object before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Collections.IDictionary content that should be used. + + partial void AfterDeserializeDictionary(global::System.Collections.IDictionary content); + + /// + /// AfterDeserializePSObject will be called after the deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Management.Automation.PSObject content that should be used. + + partial void AfterDeserializePSObject(global::System.Management.Automation.PSObject content); + + /// + /// BeforeDeserializeDictionary will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Collections.IDictionary content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializeDictionary(global::System.Collections.IDictionary content, ref bool returnNow); + + /// + /// BeforeDeserializePSObject will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializePSObject(global::System.Management.Automation.PSObject content, ref bool returnNow); + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDynamicDeliveryAttributeMappingProperties DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new DynamicDeliveryAttributeMappingProperties(content); + } + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDynamicDeliveryAttributeMappingProperties DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new DynamicDeliveryAttributeMappingProperties(content); + } + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + internal DynamicDeliveryAttributeMappingProperties(global::System.Collections.IDictionary content) + { + bool returnNow = false; + BeforeDeserializeDictionary(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("SourceField")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDynamicDeliveryAttributeMappingPropertiesInternal)this).SourceField = (string) content.GetValueForProperty("SourceField",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDynamicDeliveryAttributeMappingPropertiesInternal)this).SourceField, global::System.Convert.ToString); + } + AfterDeserializeDictionary(content); + } + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + internal DynamicDeliveryAttributeMappingProperties(global::System.Management.Automation.PSObject content) + { + bool returnNow = false; + BeforeDeserializePSObject(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("SourceField")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDynamicDeliveryAttributeMappingPropertiesInternal)this).SourceField = (string) content.GetValueForProperty("SourceField",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDynamicDeliveryAttributeMappingPropertiesInternal)this).SourceField, 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.EventGrid.Models.Api20211015Preview.IDynamicDeliveryAttributeMappingProperties FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode.Parse(jsonText)); + + /// Serializes this instance to a json string. + + /// a containing this model serialized to JSON text. + public string ToJsonString() => ToJson(null, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// Properties of dynamic delivery attribute mapping. + [System.ComponentModel.TypeConverter(typeof(DynamicDeliveryAttributeMappingPropertiesTypeConverter))] + public partial interface IDynamicDeliveryAttributeMappingProperties + + { + + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/DynamicDeliveryAttributeMappingProperties.TypeConverter.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/DynamicDeliveryAttributeMappingProperties.TypeConverter.cs new file mode 100644 index 000000000000..6782ca8a5540 --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/DynamicDeliveryAttributeMappingProperties.TypeConverter.cs @@ -0,0 +1,150 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class DynamicDeliveryAttributeMappingPropertiesTypeConverter : global::System.Management.Automation.PSTypeConverter + { + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false. + /// + public override bool CanConvertFrom(object sourceValue, global::System.Type destinationType) => CanConvertFrom(sourceValue); + + /// + /// Determines if the converter can convert the parameter to the . + /// + /// the instance to check if it can be converted to the type. + /// + /// true if the instance could be converted to a type, otherwise + /// false + /// + public static bool CanConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return true; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + // we say yest to PSObjects + return true; + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + // we say yest to Hashtables/dictionaries + return true; + } + try + { + if (null != sourceValue.ToJsonString()) + { + return true; + } + } + catch + { + // Not one of our objects + } + try + { + string text = sourceValue.ToString()?.Trim(); + return true == text?.StartsWith("{") && true == text?.EndsWith("}") && Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonType.Object; + } + catch + { + // Doesn't look like it can be treated as JSON + } + return false; + } + + /// + /// Determines if the parameter can be converted to the parameter + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false + /// + public override bool CanConvertTo(object sourceValue, global::System.Type destinationType) => false; + + /// + /// Converts the parameter to the parameter using and + /// + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// + /// an instance of , or null if there is no suitable conversion. + /// + public override object ConvertFrom(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => ConvertFrom(sourceValue); + + /// + /// Converts the parameter to the parameter using and + /// + /// the value to convert into an instance of . + /// + /// an instance of , or null if there is no suitable conversion. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDynamicDeliveryAttributeMappingProperties ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDynamicDeliveryAttributeMappingProperties).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return DynamicDeliveryAttributeMappingProperties.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return DynamicDeliveryAttributeMappingProperties.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return DynamicDeliveryAttributeMappingProperties.DeserializeFromDictionary(sourceValue); + } + return null; + } + + /// NotImplemented -- this will return null + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// will always return null. + public override object ConvertTo(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => null; + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/DynamicDeliveryAttributeMappingProperties.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/DynamicDeliveryAttributeMappingProperties.cs new file mode 100644 index 000000000000..1b197dd5f444 --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/DynamicDeliveryAttributeMappingProperties.cs @@ -0,0 +1,53 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Extensions; + + /// Properties of dynamic delivery attribute mapping. + public partial class DynamicDeliveryAttributeMappingProperties : + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDynamicDeliveryAttributeMappingProperties, + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDynamicDeliveryAttributeMappingPropertiesInternal + { + + /// Backing field for property. + private string _sourceField; + + /// JSON path in the event which contains attribute value. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Owned)] + public string SourceField { get => this._sourceField; set => this._sourceField = value; } + + /// + /// Creates an new instance. + /// + public DynamicDeliveryAttributeMappingProperties() + { + + } + } + /// Properties of dynamic delivery attribute mapping. + public partial interface IDynamicDeliveryAttributeMappingProperties : + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IJsonSerializable + { + /// JSON path in the event which contains attribute value. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"JSON path in the event which contains attribute value.", + SerializedName = @"sourceField", + PossibleTypes = new [] { typeof(string) })] + string SourceField { get; set; } + + } + /// Properties of dynamic delivery attribute mapping. + internal partial interface IDynamicDeliveryAttributeMappingPropertiesInternal + + { + /// JSON path in the event which contains attribute value. + string SourceField { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/DynamicDeliveryAttributeMappingProperties.json.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/DynamicDeliveryAttributeMappingProperties.json.cs new file mode 100644 index 000000000000..295b941009e2 --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/DynamicDeliveryAttributeMappingProperties.json.cs @@ -0,0 +1,108 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Extensions; + + /// Properties of dynamic delivery attribute mapping. + public partial class DynamicDeliveryAttributeMappingProperties + { + + /// + /// AfterFromJson will be called after the json deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JsonNode that should be deserialized into this object. + + partial void AfterFromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json erialization has finished, allowing customization of the before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JSON container that the serialization result will be placed in. + + partial void AfterToJson(ref Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject container); + + /// + /// BeforeFromJson will be called before the json deserialization has commenced, allowing complete customization of + /// the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JsonNode that should be deserialized into this object. + /// Determines if the rest of the deserialization should be processed, or if the method should return + /// instantly. + + partial void BeforeFromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject json, ref bool returnNow); + + /// + /// BeforeToJson will be called before the json serialization has commenced, allowing complete customization of the + /// object before it is serialized. + /// If you wish to disable the default serialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JSON container that the serialization result will be placed in. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeToJson(ref Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject instance to deserialize from. + internal DynamicDeliveryAttributeMappingProperties(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject json) + { + bool returnNow = false; + BeforeFromJson(json, ref returnNow); + if (returnNow) + { + return; + } + {_sourceField = If( json?.PropertyT("sourceField"), out var __jsonSourceField) ? (string)__jsonSourceField : (string)SourceField;} + AfterFromJson(json); + } + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDynamicDeliveryAttributeMappingProperties. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDynamicDeliveryAttributeMappingProperties. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDynamicDeliveryAttributeMappingProperties FromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject json ? new DynamicDeliveryAttributeMappingProperties(json) : null; + } + + /// + /// Serializes this instance of into a . + /// + /// The container to serialize this object into. If the caller + /// passes in null, a new instance will be created and returned to the caller. + /// Allows the caller to choose the depth of the serialization. See . + /// + /// a serialized instance of as a . + /// + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject(); + + bool returnNow = false; + BeforeToJson(ref container, ref returnNow); + if (returnNow) + { + return container; + } + AddIf( null != (((object)this._sourceField)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonString(this._sourceField.ToString()) : null, "sourceField" ,container.Add ); + AfterToJson(ref container); + return container; + } + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/EventChannel.PowerShell.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/EventChannel.PowerShell.cs new file mode 100644 index 000000000000..43ebd7b024da --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/EventChannel.PowerShell.cs @@ -0,0 +1,326 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell; + + /// Event Channel. + [System.ComponentModel.TypeConverter(typeof(EventChannelTypeConverter))] + public partial class EventChannel + { + + /// + /// AfterDeserializeDictionary will be called after the deserialization has finished, allowing customization of the + /// object before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Collections.IDictionary content that should be used. + + partial void AfterDeserializeDictionary(global::System.Collections.IDictionary content); + + /// + /// AfterDeserializePSObject will be called after the deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Management.Automation.PSObject content that should be used. + + partial void AfterDeserializePSObject(global::System.Management.Automation.PSObject content); + + /// + /// BeforeDeserializeDictionary will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Collections.IDictionary content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializeDictionary(global::System.Collections.IDictionary content, ref bool returnNow); + + /// + /// BeforeDeserializePSObject will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializePSObject(global::System.Management.Automation.PSObject content, ref bool returnNow); + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventChannel DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new EventChannel(content); + } + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventChannel DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new EventChannel(content); + } + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + internal EventChannel(global::System.Collections.IDictionary content) + { + bool returnNow = false; + BeforeDeserializeDictionary(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("Property")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventChannelInternal)this).Property = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventChannelProperties) content.GetValueForProperty("Property",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventChannelInternal)this).Property, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.EventChannelPropertiesTypeConverter.ConvertFrom); + } + if (content.Contains("SystemData")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventChannelInternal)this).SystemData = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20.ISystemData) content.GetValueForProperty("SystemData",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventChannelInternal)this).SystemData, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20.SystemDataTypeConverter.ConvertFrom); + } + if (content.Contains("Id")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IResourceInternal)this).Id = (string) content.GetValueForProperty("Id",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IResourceInternal)this).Id, global::System.Convert.ToString); + } + if (content.Contains("Name")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IResourceInternal)this).Name = (string) content.GetValueForProperty("Name",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IResourceInternal)this).Name, global::System.Convert.ToString); + } + if (content.Contains("Type")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IResourceInternal)this).Type = (string) content.GetValueForProperty("Type",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IResourceInternal)this).Type, global::System.Convert.ToString); + } + if (content.Contains("SystemDataCreatedBy")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventChannelInternal)this).SystemDataCreatedBy = (string) content.GetValueForProperty("SystemDataCreatedBy",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventChannelInternal)this).SystemDataCreatedBy, global::System.Convert.ToString); + } + if (content.Contains("SystemDataCreatedAt")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventChannelInternal)this).SystemDataCreatedAt = (global::System.DateTime?) content.GetValueForProperty("SystemDataCreatedAt",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventChannelInternal)this).SystemDataCreatedAt, (v) => v is global::System.DateTime _v ? _v : global::System.Xml.XmlConvert.ToDateTime( v.ToString() , global::System.Xml.XmlDateTimeSerializationMode.Unspecified)); + } + if (content.Contains("Source")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventChannelInternal)this).Source = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventChannelSource) content.GetValueForProperty("Source",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventChannelInternal)this).Source, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.EventChannelSourceTypeConverter.ConvertFrom); + } + if (content.Contains("Destination")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventChannelInternal)this).Destination = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventChannelDestination) content.GetValueForProperty("Destination",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventChannelInternal)this).Destination, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.EventChannelDestinationTypeConverter.ConvertFrom); + } + if (content.Contains("Filter")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventChannelInternal)this).Filter = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventChannelFilter) content.GetValueForProperty("Filter",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventChannelInternal)this).Filter, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.EventChannelFilterTypeConverter.ConvertFrom); + } + if (content.Contains("ProvisioningState")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventChannelInternal)this).ProvisioningState = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EventChannelProvisioningState?) content.GetValueForProperty("ProvisioningState",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventChannelInternal)this).ProvisioningState, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EventChannelProvisioningState.CreateFrom); + } + if (content.Contains("PartnerTopicReadinessState")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventChannelInternal)this).PartnerTopicReadinessState = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.PartnerTopicReadinessState?) content.GetValueForProperty("PartnerTopicReadinessState",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventChannelInternal)this).PartnerTopicReadinessState, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.PartnerTopicReadinessState.CreateFrom); + } + if (content.Contains("ExpirationTimeIfNotActivatedUtc")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventChannelInternal)this).ExpirationTimeIfNotActivatedUtc = (global::System.DateTime?) content.GetValueForProperty("ExpirationTimeIfNotActivatedUtc",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventChannelInternal)this).ExpirationTimeIfNotActivatedUtc, (v) => v is global::System.DateTime _v ? _v : global::System.Xml.XmlConvert.ToDateTime( v.ToString() , global::System.Xml.XmlDateTimeSerializationMode.Unspecified)); + } + if (content.Contains("PartnerTopicFriendlyDescription")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventChannelInternal)this).PartnerTopicFriendlyDescription = (string) content.GetValueForProperty("PartnerTopicFriendlyDescription",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventChannelInternal)this).PartnerTopicFriendlyDescription, global::System.Convert.ToString); + } + if (content.Contains("EventChannelSource")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventChannelInternal)this).EventChannelSource = (string) content.GetValueForProperty("EventChannelSource",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventChannelInternal)this).EventChannelSource, global::System.Convert.ToString); + } + if (content.Contains("SystemDataCreatedByType")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventChannelInternal)this).SystemDataCreatedByType = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.CreatedByType?) content.GetValueForProperty("SystemDataCreatedByType",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventChannelInternal)this).SystemDataCreatedByType, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.CreatedByType.CreateFrom); + } + if (content.Contains("SystemDataLastModifiedBy")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventChannelInternal)this).SystemDataLastModifiedBy = (string) content.GetValueForProperty("SystemDataLastModifiedBy",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventChannelInternal)this).SystemDataLastModifiedBy, global::System.Convert.ToString); + } + if (content.Contains("SystemDataLastModifiedByType")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventChannelInternal)this).SystemDataLastModifiedByType = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.CreatedByType?) content.GetValueForProperty("SystemDataLastModifiedByType",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventChannelInternal)this).SystemDataLastModifiedByType, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.CreatedByType.CreateFrom); + } + if (content.Contains("SystemDataLastModifiedAt")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventChannelInternal)this).SystemDataLastModifiedAt = (global::System.DateTime?) content.GetValueForProperty("SystemDataLastModifiedAt",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventChannelInternal)this).SystemDataLastModifiedAt, (v) => v is global::System.DateTime _v ? _v : global::System.Xml.XmlConvert.ToDateTime( v.ToString() , global::System.Xml.XmlDateTimeSerializationMode.Unspecified)); + } + if (content.Contains("DestinationAzureSubscriptionId")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventChannelInternal)this).DestinationAzureSubscriptionId = (string) content.GetValueForProperty("DestinationAzureSubscriptionId",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventChannelInternal)this).DestinationAzureSubscriptionId, global::System.Convert.ToString); + } + if (content.Contains("DestinationResourceGroup")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventChannelInternal)this).DestinationResourceGroup = (string) content.GetValueForProperty("DestinationResourceGroup",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventChannelInternal)this).DestinationResourceGroup, global::System.Convert.ToString); + } + if (content.Contains("DestinationPartnerTopicName")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventChannelInternal)this).DestinationPartnerTopicName = (string) content.GetValueForProperty("DestinationPartnerTopicName",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventChannelInternal)this).DestinationPartnerTopicName, global::System.Convert.ToString); + } + if (content.Contains("FilterEnableAdvancedFilteringOnArray")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventChannelInternal)this).FilterEnableAdvancedFilteringOnArray = (bool?) content.GetValueForProperty("FilterEnableAdvancedFilteringOnArray",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventChannelInternal)this).FilterEnableAdvancedFilteringOnArray, (__y)=> (bool) global::System.Convert.ChangeType(__y, typeof(bool))); + } + if (content.Contains("FilterAdvancedFilter")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventChannelInternal)this).FilterAdvancedFilter = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IAdvancedFilter[]) content.GetValueForProperty("FilterAdvancedFilter",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventChannelInternal)this).FilterAdvancedFilter, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.AdvancedFilterTypeConverter.ConvertFrom)); + } + AfterDeserializeDictionary(content); + } + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + internal EventChannel(global::System.Management.Automation.PSObject content) + { + bool returnNow = false; + BeforeDeserializePSObject(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("Property")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventChannelInternal)this).Property = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventChannelProperties) content.GetValueForProperty("Property",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventChannelInternal)this).Property, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.EventChannelPropertiesTypeConverter.ConvertFrom); + } + if (content.Contains("SystemData")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventChannelInternal)this).SystemData = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20.ISystemData) content.GetValueForProperty("SystemData",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventChannelInternal)this).SystemData, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20.SystemDataTypeConverter.ConvertFrom); + } + if (content.Contains("Id")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IResourceInternal)this).Id = (string) content.GetValueForProperty("Id",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IResourceInternal)this).Id, global::System.Convert.ToString); + } + if (content.Contains("Name")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IResourceInternal)this).Name = (string) content.GetValueForProperty("Name",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IResourceInternal)this).Name, global::System.Convert.ToString); + } + if (content.Contains("Type")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IResourceInternal)this).Type = (string) content.GetValueForProperty("Type",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IResourceInternal)this).Type, global::System.Convert.ToString); + } + if (content.Contains("SystemDataCreatedBy")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventChannelInternal)this).SystemDataCreatedBy = (string) content.GetValueForProperty("SystemDataCreatedBy",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventChannelInternal)this).SystemDataCreatedBy, global::System.Convert.ToString); + } + if (content.Contains("SystemDataCreatedAt")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventChannelInternal)this).SystemDataCreatedAt = (global::System.DateTime?) content.GetValueForProperty("SystemDataCreatedAt",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventChannelInternal)this).SystemDataCreatedAt, (v) => v is global::System.DateTime _v ? _v : global::System.Xml.XmlConvert.ToDateTime( v.ToString() , global::System.Xml.XmlDateTimeSerializationMode.Unspecified)); + } + if (content.Contains("Source")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventChannelInternal)this).Source = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventChannelSource) content.GetValueForProperty("Source",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventChannelInternal)this).Source, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.EventChannelSourceTypeConverter.ConvertFrom); + } + if (content.Contains("Destination")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventChannelInternal)this).Destination = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventChannelDestination) content.GetValueForProperty("Destination",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventChannelInternal)this).Destination, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.EventChannelDestinationTypeConverter.ConvertFrom); + } + if (content.Contains("Filter")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventChannelInternal)this).Filter = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventChannelFilter) content.GetValueForProperty("Filter",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventChannelInternal)this).Filter, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.EventChannelFilterTypeConverter.ConvertFrom); + } + if (content.Contains("ProvisioningState")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventChannelInternal)this).ProvisioningState = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EventChannelProvisioningState?) content.GetValueForProperty("ProvisioningState",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventChannelInternal)this).ProvisioningState, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EventChannelProvisioningState.CreateFrom); + } + if (content.Contains("PartnerTopicReadinessState")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventChannelInternal)this).PartnerTopicReadinessState = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.PartnerTopicReadinessState?) content.GetValueForProperty("PartnerTopicReadinessState",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventChannelInternal)this).PartnerTopicReadinessState, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.PartnerTopicReadinessState.CreateFrom); + } + if (content.Contains("ExpirationTimeIfNotActivatedUtc")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventChannelInternal)this).ExpirationTimeIfNotActivatedUtc = (global::System.DateTime?) content.GetValueForProperty("ExpirationTimeIfNotActivatedUtc",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventChannelInternal)this).ExpirationTimeIfNotActivatedUtc, (v) => v is global::System.DateTime _v ? _v : global::System.Xml.XmlConvert.ToDateTime( v.ToString() , global::System.Xml.XmlDateTimeSerializationMode.Unspecified)); + } + if (content.Contains("PartnerTopicFriendlyDescription")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventChannelInternal)this).PartnerTopicFriendlyDescription = (string) content.GetValueForProperty("PartnerTopicFriendlyDescription",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventChannelInternal)this).PartnerTopicFriendlyDescription, global::System.Convert.ToString); + } + if (content.Contains("EventChannelSource")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventChannelInternal)this).EventChannelSource = (string) content.GetValueForProperty("EventChannelSource",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventChannelInternal)this).EventChannelSource, global::System.Convert.ToString); + } + if (content.Contains("SystemDataCreatedByType")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventChannelInternal)this).SystemDataCreatedByType = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.CreatedByType?) content.GetValueForProperty("SystemDataCreatedByType",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventChannelInternal)this).SystemDataCreatedByType, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.CreatedByType.CreateFrom); + } + if (content.Contains("SystemDataLastModifiedBy")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventChannelInternal)this).SystemDataLastModifiedBy = (string) content.GetValueForProperty("SystemDataLastModifiedBy",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventChannelInternal)this).SystemDataLastModifiedBy, global::System.Convert.ToString); + } + if (content.Contains("SystemDataLastModifiedByType")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventChannelInternal)this).SystemDataLastModifiedByType = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.CreatedByType?) content.GetValueForProperty("SystemDataLastModifiedByType",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventChannelInternal)this).SystemDataLastModifiedByType, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.CreatedByType.CreateFrom); + } + if (content.Contains("SystemDataLastModifiedAt")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventChannelInternal)this).SystemDataLastModifiedAt = (global::System.DateTime?) content.GetValueForProperty("SystemDataLastModifiedAt",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventChannelInternal)this).SystemDataLastModifiedAt, (v) => v is global::System.DateTime _v ? _v : global::System.Xml.XmlConvert.ToDateTime( v.ToString() , global::System.Xml.XmlDateTimeSerializationMode.Unspecified)); + } + if (content.Contains("DestinationAzureSubscriptionId")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventChannelInternal)this).DestinationAzureSubscriptionId = (string) content.GetValueForProperty("DestinationAzureSubscriptionId",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventChannelInternal)this).DestinationAzureSubscriptionId, global::System.Convert.ToString); + } + if (content.Contains("DestinationResourceGroup")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventChannelInternal)this).DestinationResourceGroup = (string) content.GetValueForProperty("DestinationResourceGroup",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventChannelInternal)this).DestinationResourceGroup, global::System.Convert.ToString); + } + if (content.Contains("DestinationPartnerTopicName")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventChannelInternal)this).DestinationPartnerTopicName = (string) content.GetValueForProperty("DestinationPartnerTopicName",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventChannelInternal)this).DestinationPartnerTopicName, global::System.Convert.ToString); + } + if (content.Contains("FilterEnableAdvancedFilteringOnArray")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventChannelInternal)this).FilterEnableAdvancedFilteringOnArray = (bool?) content.GetValueForProperty("FilterEnableAdvancedFilteringOnArray",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventChannelInternal)this).FilterEnableAdvancedFilteringOnArray, (__y)=> (bool) global::System.Convert.ChangeType(__y, typeof(bool))); + } + if (content.Contains("FilterAdvancedFilter")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventChannelInternal)this).FilterAdvancedFilter = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IAdvancedFilter[]) content.GetValueForProperty("FilterAdvancedFilter",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventChannelInternal)this).FilterAdvancedFilter, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.AdvancedFilterTypeConverter.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.EventGrid.Models.Api20211015Preview.IEventChannel FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode.Parse(jsonText)); + + /// Serializes this instance to a json string. + + /// a containing this model serialized to JSON text. + public string ToJsonString() => ToJson(null, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// Event Channel. + [System.ComponentModel.TypeConverter(typeof(EventChannelTypeConverter))] + public partial interface IEventChannel + + { + + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/EventChannel.TypeConverter.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/EventChannel.TypeConverter.cs new file mode 100644 index 000000000000..a489a36d637d --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/EventChannel.TypeConverter.cs @@ -0,0 +1,146 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class EventChannelTypeConverter : global::System.Management.Automation.PSTypeConverter + { + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false. + /// + public override bool CanConvertFrom(object sourceValue, global::System.Type destinationType) => CanConvertFrom(sourceValue); + + /// + /// Determines if the converter can convert the parameter to the . + /// + /// the instance to check if it can be converted to the type. + /// + /// true if the instance could be converted to a type, otherwise false + /// + public static bool CanConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return true; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + // we say yest to PSObjects + return true; + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + // we say yest to Hashtables/dictionaries + return true; + } + try + { + if (null != sourceValue.ToJsonString()) + { + return true; + } + } + catch + { + // Not one of our objects + } + try + { + string text = sourceValue.ToString()?.Trim(); + return true == text?.StartsWith("{") && true == text?.EndsWith("}") && Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonType.Object; + } + catch + { + // Doesn't look like it can be treated as JSON + } + return false; + } + + /// + /// Determines if the parameter can be converted to the parameter + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false + /// + public override bool CanConvertTo(object sourceValue, global::System.Type destinationType) => false; + + /// + /// Converts the parameter to the parameter using and + /// + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// + /// an instance of , or null if there is no suitable conversion. + /// + public override object ConvertFrom(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => ConvertFrom(sourceValue); + + /// + /// Converts the parameter to the parameter using and + /// + /// the value to convert into an instance of . + /// + /// an instance of , or null if there is no suitable conversion. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventChannel ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventChannel).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return EventChannel.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return EventChannel.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return EventChannel.DeserializeFromDictionary(sourceValue); + } + return null; + } + + /// NotImplemented -- this will return null + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// will always return null. + public override object ConvertTo(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => null; + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/EventChannel.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/EventChannel.cs new file mode 100644 index 000000000000..a0399a6c7415 --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/EventChannel.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.EventGrid.Models.Api20211015Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Extensions; + + /// Event Channel. + public partial class EventChannel : + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventChannel, + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventChannelInternal, + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IValidates + { + /// + /// Backing field for Inherited model + /// + private Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IResource __resource = new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.Resource(); + + /// + /// Azure subscription ID of the customer creating the event channel. The partner topic + /// associated with the event channel will be created under this Azure subscription. + /// + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Inlined)] + public string DestinationAzureSubscriptionId { get => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventChannelPropertiesInternal)Property).DestinationAzureSubscriptionId; set => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventChannelPropertiesInternal)Property).DestinationAzureSubscriptionId = value ?? null; } + + /// Name of the partner topic associated with the event channel. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Inlined)] + public string DestinationPartnerTopicName { get => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventChannelPropertiesInternal)Property).DestinationPartnerTopicName; set => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventChannelPropertiesInternal)Property).DestinationPartnerTopicName = value ?? null; } + + /// + /// Azure Resource Group of the customer creating the event channel. The partner topic + /// associated with the event channel will be created under this resource group. + /// + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Inlined)] + public string DestinationResourceGroup { get => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventChannelPropertiesInternal)Property).DestinationResourceGroup; set => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventChannelPropertiesInternal)Property).DestinationResourceGroup = value ?? null; } + + /// + /// The identifier of the resource that's the source of the events. + /// This represents a unique resource in the partner's resource model. + /// + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Inlined)] + public string EventChannelSource { get => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventChannelPropertiesInternal)Property).EventChannelSource; set => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventChannelPropertiesInternal)Property).EventChannelSource = value ?? null; } + + /// + /// Expiration time of the event channel. If this timer expires while the corresponding partner topic is never activated, + /// the event channel and corresponding partner topic are deleted. + /// + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Inlined)] + public global::System.DateTime? ExpirationTimeIfNotActivatedUtc { get => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventChannelPropertiesInternal)Property).ExpirationTimeIfNotActivatedUtc; set => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventChannelPropertiesInternal)Property).ExpirationTimeIfNotActivatedUtc = value ?? default(global::System.DateTime); } + + /// An array of advanced filters that are used for filtering event channels. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Inlined)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IAdvancedFilter[] FilterAdvancedFilter { get => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventChannelPropertiesInternal)Property).FilterAdvancedFilter; set => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventChannelPropertiesInternal)Property).FilterAdvancedFilter = value ?? null /* arrayOf */; } + + /// + /// Allows advanced filters to be evaluated against an array of values instead of expecting a singular value. The default + /// value is either false or null. + /// + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Inlined)] + public bool? FilterEnableAdvancedFilteringOnArray { get => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventChannelPropertiesInternal)Property).FilterEnableAdvancedFilteringOnArray; set => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventChannelPropertiesInternal)Property).FilterEnableAdvancedFilteringOnArray = value ?? default(bool); } + + /// Fully qualified identifier of the resource. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Inherited)] + public string Id { get => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IResourceInternal)__resource).Id; } + + /// Internal Acessors for Destination + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventChannelDestination Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventChannelInternal.Destination { get => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventChannelPropertiesInternal)Property).Destination; set => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventChannelPropertiesInternal)Property).Destination = value; } + + /// Internal Acessors for Filter + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventChannelFilter Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventChannelInternal.Filter { get => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventChannelPropertiesInternal)Property).Filter; set => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventChannelPropertiesInternal)Property).Filter = value; } + + /// Internal Acessors for PartnerTopicReadinessState + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.PartnerTopicReadinessState? Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventChannelInternal.PartnerTopicReadinessState { get => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventChannelPropertiesInternal)Property).PartnerTopicReadinessState; set => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventChannelPropertiesInternal)Property).PartnerTopicReadinessState = value; } + + /// Internal Acessors for Property + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventChannelProperties Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventChannelInternal.Property { get => (this._property = this._property ?? new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.EventChannelProperties()); set { {_property = value;} } } + + /// Internal Acessors for ProvisioningState + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EventChannelProvisioningState? Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventChannelInternal.ProvisioningState { get => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventChannelPropertiesInternal)Property).ProvisioningState; set => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventChannelPropertiesInternal)Property).ProvisioningState = value; } + + /// Internal Acessors for Source + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventChannelSource Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventChannelInternal.Source { get => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventChannelPropertiesInternal)Property).Source; set => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventChannelPropertiesInternal)Property).Source = value; } + + /// Internal Acessors for SystemData + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20.ISystemData Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventChannelInternal.SystemData { get => (this._systemData = this._systemData ?? new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20.SystemData()); set { {_systemData = value;} } } + + /// Internal Acessors for Id + string Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IResourceInternal.Id { get => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IResourceInternal)__resource).Id; set => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IResourceInternal)__resource).Id = value; } + + /// Internal Acessors for Name + string Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IResourceInternal.Name { get => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IResourceInternal)__resource).Name; set => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IResourceInternal)__resource).Name = value; } + + /// Internal Acessors for Type + string Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IResourceInternal.Type { get => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IResourceInternal)__resource).Type; set => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IResourceInternal)__resource).Type = value; } + + /// Name of the resource. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Inherited)] + public string Name { get => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IResourceInternal)__resource).Name; } + + /// + /// Friendly description about the topic. This can be set by the publisher/partner to show custom description for the customer + /// partner topic. + /// This will be helpful to remove any ambiguity of the origin of creation of the partner topic for the customer. + /// + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Inlined)] + public string PartnerTopicFriendlyDescription { get => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventChannelPropertiesInternal)Property).PartnerTopicFriendlyDescription; set => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventChannelPropertiesInternal)Property).PartnerTopicFriendlyDescription = value ?? null; } + + /// The readiness state of the corresponding partner topic. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Inlined)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.PartnerTopicReadinessState? PartnerTopicReadinessState { get => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventChannelPropertiesInternal)Property).PartnerTopicReadinessState; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventChannelProperties _property; + + /// Properties of the EventChannel. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Owned)] + internal Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventChannelProperties Property { get => (this._property = this._property ?? new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.EventChannelProperties()); set => this._property = value; } + + /// Provisioning state of the event channel. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Inlined)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EventChannelProvisioningState? ProvisioningState { get => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventChannelPropertiesInternal)Property).ProvisioningState; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20.ISystemData _systemData; + + /// The system metadata relating to Event Channel resource. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Owned)] + internal Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20.ISystemData SystemData { get => (this._systemData = this._systemData ?? new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20.SystemData()); } + + /// The timestamp of resource creation (UTC). + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Inlined)] + public global::System.DateTime? SystemDataCreatedAt { get => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20.ISystemDataInternal)SystemData).CreatedAt; set => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20.ISystemDataInternal)SystemData).CreatedAt = value ?? default(global::System.DateTime); } + + /// The identity that created the resource. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Inlined)] + public string SystemDataCreatedBy { get => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20.ISystemDataInternal)SystemData).CreatedBy; set => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20.ISystemDataInternal)SystemData).CreatedBy = value ?? null; } + + /// The type of identity that created the resource. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Inlined)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.CreatedByType? SystemDataCreatedByType { get => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20.ISystemDataInternal)SystemData).CreatedByType; set => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20.ISystemDataInternal)SystemData).CreatedByType = value ?? ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.CreatedByType)""); } + + /// The timestamp of resource last modification (UTC) + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Inlined)] + public global::System.DateTime? SystemDataLastModifiedAt { get => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20.ISystemDataInternal)SystemData).LastModifiedAt; set => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20.ISystemDataInternal)SystemData).LastModifiedAt = value ?? default(global::System.DateTime); } + + /// The identity that last modified the resource. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Inlined)] + public string SystemDataLastModifiedBy { get => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20.ISystemDataInternal)SystemData).LastModifiedBy; set => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20.ISystemDataInternal)SystemData).LastModifiedBy = value ?? null; } + + /// The type of identity that last modified the resource. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Inlined)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.CreatedByType? SystemDataLastModifiedByType { get => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20.ISystemDataInternal)SystemData).LastModifiedByType; set => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20.ISystemDataInternal)SystemData).LastModifiedByType = value ?? ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.CreatedByType)""); } + + /// Type of the resource. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Inherited)] + public string Type { get => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IResourceInternal)__resource).Type; } + + /// Creates an new instance. + public EventChannel() + { + + } + + /// Validates that this object meets the validation criteria. + /// an instance that will receive validation + /// events. + /// + /// A that will be complete when validation is completed. + /// + public async global::System.Threading.Tasks.Task Validate(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener eventListener) + { + await eventListener.AssertNotNull(nameof(__resource), __resource); + await eventListener.AssertObjectIsValid(nameof(__resource), __resource); + } + } + /// Event Channel. + public partial interface IEventChannel : + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IJsonSerializable, + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IResource + { + /// + /// Azure subscription ID of the customer creating the event channel. The partner topic + /// associated with the event channel will be created under this Azure subscription. + /// + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Azure subscription ID of the customer creating the event channel. The partner topic + associated with the event channel will be created under this Azure subscription.", + SerializedName = @"azureSubscriptionId", + PossibleTypes = new [] { typeof(string) })] + string DestinationAzureSubscriptionId { get; set; } + /// Name of the partner topic associated with the event channel. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Name of the partner topic associated with the event channel.", + SerializedName = @"partnerTopicName", + PossibleTypes = new [] { typeof(string) })] + string DestinationPartnerTopicName { get; set; } + /// + /// Azure Resource Group of the customer creating the event channel. The partner topic + /// associated with the event channel will be created under this resource group. + /// + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Azure Resource Group of the customer creating the event channel. The partner topic + associated with the event channel will be created under this resource group.", + SerializedName = @"resourceGroup", + PossibleTypes = new [] { typeof(string) })] + string DestinationResourceGroup { get; set; } + /// + /// The identifier of the resource that's the source of the events. + /// This represents a unique resource in the partner's resource model. + /// + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The identifier of the resource that's the source of the events. + This represents a unique resource in the partner's resource model.", + SerializedName = @"source", + PossibleTypes = new [] { typeof(string) })] + string EventChannelSource { get; set; } + /// + /// Expiration time of the event channel. If this timer expires while the corresponding partner topic is never activated, + /// the event channel and corresponding partner topic are deleted. + /// + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Expiration time of the event channel. If this timer expires while the corresponding partner topic is never activated, + the event channel and corresponding partner topic are deleted.", + SerializedName = @"expirationTimeIfNotActivatedUtc", + PossibleTypes = new [] { typeof(global::System.DateTime) })] + global::System.DateTime? ExpirationTimeIfNotActivatedUtc { get; set; } + /// An array of advanced filters that are used for filtering event channels. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"An array of advanced filters that are used for filtering event channels.", + SerializedName = @"advancedFilters", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IAdvancedFilter) })] + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IAdvancedFilter[] FilterAdvancedFilter { get; set; } + /// + /// Allows advanced filters to be evaluated against an array of values instead of expecting a singular value. The default + /// value is either false or null. + /// + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Allows advanced filters to be evaluated against an array of values instead of expecting a singular value. The default value is either false or null.", + SerializedName = @"enableAdvancedFilteringOnArrays", + PossibleTypes = new [] { typeof(bool) })] + bool? FilterEnableAdvancedFilteringOnArray { get; set; } + /// + /// Friendly description about the topic. This can be set by the publisher/partner to show custom description for the customer + /// partner topic. + /// This will be helpful to remove any ambiguity of the origin of creation of the partner topic for the customer. + /// + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Friendly description about the topic. This can be set by the publisher/partner to show custom description for the customer partner topic. + This will be helpful to remove any ambiguity of the origin of creation of the partner topic for the customer.", + SerializedName = @"partnerTopicFriendlyDescription", + PossibleTypes = new [] { typeof(string) })] + string PartnerTopicFriendlyDescription { get; set; } + /// The readiness state of the corresponding partner topic. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"The readiness state of the corresponding partner topic.", + SerializedName = @"partnerTopicReadinessState", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.PartnerTopicReadinessState) })] + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.PartnerTopicReadinessState? PartnerTopicReadinessState { get; } + /// Provisioning state of the event channel. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"Provisioning state of the event channel.", + SerializedName = @"provisioningState", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EventChannelProvisioningState) })] + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EventChannelProvisioningState? ProvisioningState { get; } + /// The timestamp of resource creation (UTC). + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.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.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The type of identity that created the resource.", + SerializedName = @"createdByType", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.CreatedByType) })] + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.CreatedByType? SystemDataCreatedByType { get; set; } + /// The timestamp of resource last modification (UTC) + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.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.EventGrid.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.EventGrid.Support.CreatedByType) })] + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.CreatedByType? SystemDataLastModifiedByType { get; set; } + + } + /// Event Channel. + internal partial interface IEventChannelInternal : + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IResourceInternal + { + /// Represents the destination of an event channel. + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventChannelDestination Destination { get; set; } + /// + /// Azure subscription ID of the customer creating the event channel. The partner topic + /// associated with the event channel will be created under this Azure subscription. + /// + string DestinationAzureSubscriptionId { get; set; } + /// Name of the partner topic associated with the event channel. + string DestinationPartnerTopicName { get; set; } + /// + /// Azure Resource Group of the customer creating the event channel. The partner topic + /// associated with the event channel will be created under this resource group. + /// + string DestinationResourceGroup { get; set; } + /// + /// The identifier of the resource that's the source of the events. + /// This represents a unique resource in the partner's resource model. + /// + string EventChannelSource { get; set; } + /// + /// Expiration time of the event channel. If this timer expires while the corresponding partner topic is never activated, + /// the event channel and corresponding partner topic are deleted. + /// + global::System.DateTime? ExpirationTimeIfNotActivatedUtc { get; set; } + /// Information about the filter for the event channel. + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventChannelFilter Filter { get; set; } + /// An array of advanced filters that are used for filtering event channels. + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IAdvancedFilter[] FilterAdvancedFilter { get; set; } + /// + /// Allows advanced filters to be evaluated against an array of values instead of expecting a singular value. The default + /// value is either false or null. + /// + bool? FilterEnableAdvancedFilteringOnArray { get; set; } + /// + /// Friendly description about the topic. This can be set by the publisher/partner to show custom description for the customer + /// partner topic. + /// This will be helpful to remove any ambiguity of the origin of creation of the partner topic for the customer. + /// + string PartnerTopicFriendlyDescription { get; set; } + /// The readiness state of the corresponding partner topic. + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.PartnerTopicReadinessState? PartnerTopicReadinessState { get; set; } + /// Properties of the EventChannel. + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventChannelProperties Property { get; set; } + /// Provisioning state of the event channel. + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EventChannelProvisioningState? ProvisioningState { get; set; } + /// + /// Source of the event channel. This represents a unique resource in the partner's resource model. + /// + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventChannelSource Source { get; set; } + /// The system metadata relating to Event Channel resource. + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.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.EventGrid.Support.CreatedByType? SystemDataLastModifiedByType { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/EventChannel.json.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/EventChannel.json.cs new file mode 100644 index 000000000000..39719282b46f --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/EventChannel.json.cs @@ -0,0 +1,113 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Extensions; + + /// Event Channel. + public partial class EventChannel + { + + /// + /// AfterFromJson will be called after the json deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JsonNode that should be deserialized into this object. + + partial void AfterFromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json erialization has finished, allowing customization of the before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JSON container that the serialization result will be placed in. + + partial void AfterToJson(ref Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject container); + + /// + /// BeforeFromJson will be called before the json deserialization has commenced, allowing complete customization of + /// the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JsonNode that should be deserialized into this object. + /// Determines if the rest of the deserialization should be processed, or if the method should return + /// instantly. + + partial void BeforeFromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject json, ref bool returnNow); + + /// + /// BeforeToJson will be called before the json serialization has commenced, allowing complete customization of the + /// object before it is serialized. + /// If you wish to disable the default serialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JSON container that the serialization result will be placed in. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeToJson(ref Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject instance to deserialize from. + internal EventChannel(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject json) + { + bool returnNow = false; + BeforeFromJson(json, ref returnNow); + if (returnNow) + { + return; + } + __resource = new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.Resource(json); + {_property = If( json?.PropertyT("properties"), out var __jsonProperties) ? Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.EventChannelProperties.FromJson(__jsonProperties) : Property;} + {_systemData = If( json?.PropertyT("systemData"), out var __jsonSystemData) ? Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20.SystemData.FromJson(__jsonSystemData) : SystemData;} + AfterFromJson(json); + } + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventChannel. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventChannel. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventChannel FromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject json ? new EventChannel(json) : null; + } + + /// + /// Serializes this instance of into a . + /// + /// The container to serialize this object into. If the caller + /// passes in null, a new instance will be created and returned to the caller. + /// Allows the caller to choose the depth of the serialization. See . + /// + /// a serialized instance of as a . + /// + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Runtime.Json.JsonNode) this._property.ToJson(null,serializationMode) : null, "properties" ,container.Add ); + if (serializationMode.HasFlag(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SerializationMode.IncludeReadOnly)) + { + AddIf( null != this._systemData ? (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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/eventgrid/generated/api/Models/Api20211015Preview/EventChannelDestination.PowerShell.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/EventChannelDestination.PowerShell.cs new file mode 100644 index 000000000000..c3400b0e39fb --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/EventChannelDestination.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.EventGrid.Models.Api20211015Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell; + + /// Properties of the destination of an event channel. + [System.ComponentModel.TypeConverter(typeof(EventChannelDestinationTypeConverter))] + public partial class EventChannelDestination + { + + /// + /// AfterDeserializeDictionary will be called after the deserialization has finished, allowing customization of the + /// object before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Collections.IDictionary content that should be used. + + partial void AfterDeserializeDictionary(global::System.Collections.IDictionary content); + + /// + /// AfterDeserializePSObject will be called after the deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Management.Automation.PSObject content that should be used. + + partial void AfterDeserializePSObject(global::System.Management.Automation.PSObject content); + + /// + /// BeforeDeserializeDictionary will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Collections.IDictionary content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializeDictionary(global::System.Collections.IDictionary content, ref bool returnNow); + + /// + /// BeforeDeserializePSObject will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializePSObject(global::System.Management.Automation.PSObject content, ref bool returnNow); + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventChannelDestination DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new EventChannelDestination(content); + } + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventChannelDestination DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new EventChannelDestination(content); + } + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + internal EventChannelDestination(global::System.Collections.IDictionary content) + { + bool returnNow = false; + BeforeDeserializeDictionary(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("AzureSubscriptionId")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventChannelDestinationInternal)this).AzureSubscriptionId = (string) content.GetValueForProperty("AzureSubscriptionId",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventChannelDestinationInternal)this).AzureSubscriptionId, global::System.Convert.ToString); + } + if (content.Contains("ResourceGroup")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventChannelDestinationInternal)this).ResourceGroup = (string) content.GetValueForProperty("ResourceGroup",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventChannelDestinationInternal)this).ResourceGroup, global::System.Convert.ToString); + } + if (content.Contains("PartnerTopicName")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventChannelDestinationInternal)this).PartnerTopicName = (string) content.GetValueForProperty("PartnerTopicName",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventChannelDestinationInternal)this).PartnerTopicName, global::System.Convert.ToString); + } + AfterDeserializeDictionary(content); + } + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + internal EventChannelDestination(global::System.Management.Automation.PSObject content) + { + bool returnNow = false; + BeforeDeserializePSObject(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("AzureSubscriptionId")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventChannelDestinationInternal)this).AzureSubscriptionId = (string) content.GetValueForProperty("AzureSubscriptionId",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventChannelDestinationInternal)this).AzureSubscriptionId, global::System.Convert.ToString); + } + if (content.Contains("ResourceGroup")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventChannelDestinationInternal)this).ResourceGroup = (string) content.GetValueForProperty("ResourceGroup",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventChannelDestinationInternal)this).ResourceGroup, global::System.Convert.ToString); + } + if (content.Contains("PartnerTopicName")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventChannelDestinationInternal)this).PartnerTopicName = (string) content.GetValueForProperty("PartnerTopicName",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventChannelDestinationInternal)this).PartnerTopicName, 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.EventGrid.Models.Api20211015Preview.IEventChannelDestination FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode.Parse(jsonText)); + + /// Serializes this instance to a json string. + + /// a containing this model serialized to JSON text. + public string ToJsonString() => ToJson(null, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// Properties of the destination of an event channel. + [System.ComponentModel.TypeConverter(typeof(EventChannelDestinationTypeConverter))] + public partial interface IEventChannelDestination + + { + + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/EventChannelDestination.TypeConverter.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/EventChannelDestination.TypeConverter.cs new file mode 100644 index 000000000000..0ae309ed223b --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/EventChannelDestination.TypeConverter.cs @@ -0,0 +1,147 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class EventChannelDestinationTypeConverter : global::System.Management.Automation.PSTypeConverter + { + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false. + /// + public override bool CanConvertFrom(object sourceValue, global::System.Type destinationType) => CanConvertFrom(sourceValue); + + /// + /// Determines if the converter can convert the parameter to the . + /// + /// the instance to check if it can be converted to the type. + /// + /// true if the instance could be converted to a type, otherwise false + /// + public static bool CanConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return true; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + // we say yest to PSObjects + return true; + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + // we say yest to Hashtables/dictionaries + return true; + } + try + { + if (null != sourceValue.ToJsonString()) + { + return true; + } + } + catch + { + // Not one of our objects + } + try + { + string text = sourceValue.ToString()?.Trim(); + return true == text?.StartsWith("{") && true == text?.EndsWith("}") && Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonType.Object; + } + catch + { + // Doesn't look like it can be treated as JSON + } + return false; + } + + /// + /// Determines if the parameter can be converted to the parameter + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false + /// + public override bool CanConvertTo(object sourceValue, global::System.Type destinationType) => false; + + /// + /// Converts the parameter to the parameter using and + /// + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// + /// an instance of , or null if there is no suitable conversion. + /// + public override object ConvertFrom(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => ConvertFrom(sourceValue); + + /// + /// Converts the parameter to the parameter using and + /// + /// the value to convert into an instance of . + /// + /// an instance of , or null if there is no suitable conversion. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventChannelDestination ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventChannelDestination).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return EventChannelDestination.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return EventChannelDestination.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return EventChannelDestination.DeserializeFromDictionary(sourceValue); + } + return null; + } + + /// NotImplemented -- this will return null + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// will always return null. + public override object ConvertTo(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => null; + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/EventChannelDestination.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/EventChannelDestination.cs new file mode 100644 index 000000000000..34cc386214ee --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/EventChannelDestination.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.EventGrid.Models.Api20211015Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Extensions; + + /// Properties of the destination of an event channel. + public partial class EventChannelDestination : + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventChannelDestination, + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventChannelDestinationInternal + { + + /// Backing field for property. + private string _azureSubscriptionId; + + /// + /// Azure subscription ID of the customer creating the event channel. The partner topic + /// associated with the event channel will be created under this Azure subscription. + /// + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Owned)] + public string AzureSubscriptionId { get => this._azureSubscriptionId; set => this._azureSubscriptionId = value; } + + /// Backing field for property. + private string _partnerTopicName; + + /// Name of the partner topic associated with the event channel. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Owned)] + public string PartnerTopicName { get => this._partnerTopicName; set => this._partnerTopicName = value; } + + /// Backing field for property. + private string _resourceGroup; + + /// + /// Azure Resource Group of the customer creating the event channel. The partner topic + /// associated with the event channel will be created under this resource group. + /// + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Owned)] + public string ResourceGroup { get => this._resourceGroup; set => this._resourceGroup = value; } + + /// Creates an new instance. + public EventChannelDestination() + { + + } + } + /// Properties of the destination of an event channel. + public partial interface IEventChannelDestination : + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IJsonSerializable + { + /// + /// Azure subscription ID of the customer creating the event channel. The partner topic + /// associated with the event channel will be created under this Azure subscription. + /// + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Azure subscription ID of the customer creating the event channel. The partner topic + associated with the event channel will be created under this Azure subscription.", + SerializedName = @"azureSubscriptionId", + PossibleTypes = new [] { typeof(string) })] + string AzureSubscriptionId { get; set; } + /// Name of the partner topic associated with the event channel. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Name of the partner topic associated with the event channel.", + SerializedName = @"partnerTopicName", + PossibleTypes = new [] { typeof(string) })] + string PartnerTopicName { get; set; } + /// + /// Azure Resource Group of the customer creating the event channel. The partner topic + /// associated with the event channel will be created under this resource group. + /// + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Azure Resource Group of the customer creating the event channel. The partner topic + associated with the event channel will be created under this resource group.", + SerializedName = @"resourceGroup", + PossibleTypes = new [] { typeof(string) })] + string ResourceGroup { get; set; } + + } + /// Properties of the destination of an event channel. + internal partial interface IEventChannelDestinationInternal + + { + /// + /// Azure subscription ID of the customer creating the event channel. The partner topic + /// associated with the event channel will be created under this Azure subscription. + /// + string AzureSubscriptionId { get; set; } + /// Name of the partner topic associated with the event channel. + string PartnerTopicName { get; set; } + /// + /// Azure Resource Group of the customer creating the event channel. The partner topic + /// associated with the event channel will be created under this resource group. + /// + string ResourceGroup { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/EventChannelDestination.json.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/EventChannelDestination.json.cs new file mode 100644 index 000000000000..51fe8951d485 --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/EventChannelDestination.json.cs @@ -0,0 +1,110 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Extensions; + + /// Properties of the destination of an event channel. + public partial class EventChannelDestination + { + + /// + /// AfterFromJson will be called after the json deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JsonNode that should be deserialized into this object. + + partial void AfterFromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json erialization has finished, allowing customization of the before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JSON container that the serialization result will be placed in. + + partial void AfterToJson(ref Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject container); + + /// + /// BeforeFromJson will be called before the json deserialization has commenced, allowing complete customization of + /// the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JsonNode that should be deserialized into this object. + /// Determines if the rest of the deserialization should be processed, or if the method should return + /// instantly. + + partial void BeforeFromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject json, ref bool returnNow); + + /// + /// BeforeToJson will be called before the json serialization has commenced, allowing complete customization of the + /// object before it is serialized. + /// If you wish to disable the default serialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JSON container that the serialization result will be placed in. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeToJson(ref Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject instance to deserialize from. + internal EventChannelDestination(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject json) + { + bool returnNow = false; + BeforeFromJson(json, ref returnNow); + if (returnNow) + { + return; + } + {_azureSubscriptionId = If( json?.PropertyT("azureSubscriptionId"), out var __jsonAzureSubscriptionId) ? (string)__jsonAzureSubscriptionId : (string)AzureSubscriptionId;} + {_resourceGroup = If( json?.PropertyT("resourceGroup"), out var __jsonResourceGroup) ? (string)__jsonResourceGroup : (string)ResourceGroup;} + {_partnerTopicName = If( json?.PropertyT("partnerTopicName"), out var __jsonPartnerTopicName) ? (string)__jsonPartnerTopicName : (string)PartnerTopicName;} + AfterFromJson(json); + } + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventChannelDestination. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventChannelDestination. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventChannelDestination FromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject json ? new EventChannelDestination(json) : null; + } + + /// + /// Serializes this instance of into a . + /// + /// The container to serialize this object into. If the caller + /// passes in null, a new instance will be created and returned to the caller. + /// Allows the caller to choose the depth of the serialization. See . + /// + /// a serialized instance of as a . + /// + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject(); + + bool returnNow = false; + BeforeToJson(ref container, ref returnNow); + if (returnNow) + { + return container; + } + AddIf( null != (((object)this._azureSubscriptionId)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonString(this._azureSubscriptionId.ToString()) : null, "azureSubscriptionId" ,container.Add ); + AddIf( null != (((object)this._resourceGroup)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonString(this._resourceGroup.ToString()) : null, "resourceGroup" ,container.Add ); + AddIf( null != (((object)this._partnerTopicName)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonString(this._partnerTopicName.ToString()) : null, "partnerTopicName" ,container.Add ); + AfterToJson(ref container); + return container; + } + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/EventChannelFilter.PowerShell.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/EventChannelFilter.PowerShell.cs new file mode 100644 index 000000000000..e7a8835d5974 --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/EventChannelFilter.PowerShell.cs @@ -0,0 +1,152 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell; + + /// Filter for the Event Channel. + [System.ComponentModel.TypeConverter(typeof(EventChannelFilterTypeConverter))] + public partial class EventChannelFilter + { + + /// + /// AfterDeserializeDictionary will be called after the deserialization has finished, allowing customization of the + /// object before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Collections.IDictionary content that should be used. + + partial void AfterDeserializeDictionary(global::System.Collections.IDictionary content); + + /// + /// AfterDeserializePSObject will be called after the deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Management.Automation.PSObject content that should be used. + + partial void AfterDeserializePSObject(global::System.Management.Automation.PSObject content); + + /// + /// BeforeDeserializeDictionary will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Collections.IDictionary content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializeDictionary(global::System.Collections.IDictionary content, ref bool returnNow); + + /// + /// BeforeDeserializePSObject will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializePSObject(global::System.Management.Automation.PSObject content, ref bool returnNow); + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventChannelFilter DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new EventChannelFilter(content); + } + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventChannelFilter DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new EventChannelFilter(content); + } + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + internal EventChannelFilter(global::System.Collections.IDictionary content) + { + bool returnNow = false; + BeforeDeserializeDictionary(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("EnableAdvancedFilteringOnArray")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventChannelFilterInternal)this).EnableAdvancedFilteringOnArray = (bool?) content.GetValueForProperty("EnableAdvancedFilteringOnArray",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventChannelFilterInternal)this).EnableAdvancedFilteringOnArray, (__y)=> (bool) global::System.Convert.ChangeType(__y, typeof(bool))); + } + if (content.Contains("AdvancedFilter")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventChannelFilterInternal)this).AdvancedFilter = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IAdvancedFilter[]) content.GetValueForProperty("AdvancedFilter",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventChannelFilterInternal)this).AdvancedFilter, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.AdvancedFilterTypeConverter.ConvertFrom)); + } + AfterDeserializeDictionary(content); + } + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + internal EventChannelFilter(global::System.Management.Automation.PSObject content) + { + bool returnNow = false; + BeforeDeserializePSObject(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("EnableAdvancedFilteringOnArray")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventChannelFilterInternal)this).EnableAdvancedFilteringOnArray = (bool?) content.GetValueForProperty("EnableAdvancedFilteringOnArray",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventChannelFilterInternal)this).EnableAdvancedFilteringOnArray, (__y)=> (bool) global::System.Convert.ChangeType(__y, typeof(bool))); + } + if (content.Contains("AdvancedFilter")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventChannelFilterInternal)this).AdvancedFilter = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IAdvancedFilter[]) content.GetValueForProperty("AdvancedFilter",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventChannelFilterInternal)this).AdvancedFilter, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.AdvancedFilterTypeConverter.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.EventGrid.Models.Api20211015Preview.IEventChannelFilter FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode.Parse(jsonText)); + + /// Serializes this instance to a json string. + + /// a containing this model serialized to JSON text. + public string ToJsonString() => ToJson(null, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// Filter for the Event Channel. + [System.ComponentModel.TypeConverter(typeof(EventChannelFilterTypeConverter))] + public partial interface IEventChannelFilter + + { + + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/EventChannelFilter.TypeConverter.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/EventChannelFilter.TypeConverter.cs new file mode 100644 index 000000000000..8b5d3edeb250 --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/EventChannelFilter.TypeConverter.cs @@ -0,0 +1,147 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class EventChannelFilterTypeConverter : global::System.Management.Automation.PSTypeConverter + { + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false. + /// + public override bool CanConvertFrom(object sourceValue, global::System.Type destinationType) => CanConvertFrom(sourceValue); + + /// + /// Determines if the converter can convert the parameter to the . + /// + /// the instance to check if it can be converted to the type. + /// + /// true if the instance could be converted to a type, otherwise false + /// + public static bool CanConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return true; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + // we say yest to PSObjects + return true; + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + // we say yest to Hashtables/dictionaries + return true; + } + try + { + if (null != sourceValue.ToJsonString()) + { + return true; + } + } + catch + { + // Not one of our objects + } + try + { + string text = sourceValue.ToString()?.Trim(); + return true == text?.StartsWith("{") && true == text?.EndsWith("}") && Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonType.Object; + } + catch + { + // Doesn't look like it can be treated as JSON + } + return false; + } + + /// + /// Determines if the parameter can be converted to the parameter + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false + /// + public override bool CanConvertTo(object sourceValue, global::System.Type destinationType) => false; + + /// + /// Converts the parameter to the parameter using and + /// + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// + /// an instance of , or null if there is no suitable conversion. + /// + public override object ConvertFrom(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => ConvertFrom(sourceValue); + + /// + /// Converts the parameter to the parameter using and + /// + /// the value to convert into an instance of . + /// + /// an instance of , or null if there is no suitable conversion. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventChannelFilter ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventChannelFilter).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return EventChannelFilter.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return EventChannelFilter.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return EventChannelFilter.DeserializeFromDictionary(sourceValue); + } + return null; + } + + /// NotImplemented -- this will return null + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// will always return null. + public override object ConvertTo(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => null; + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/EventChannelFilter.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/EventChannelFilter.cs new file mode 100644 index 000000000000..f2effd13b94c --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/EventChannelFilter.cs @@ -0,0 +1,77 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Extensions; + + /// Filter for the Event Channel. + public partial class EventChannelFilter : + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventChannelFilter, + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventChannelFilterInternal + { + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IAdvancedFilter[] _advancedFilter; + + /// An array of advanced filters that are used for filtering event channels. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Owned)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IAdvancedFilter[] AdvancedFilter { get => this._advancedFilter; set => this._advancedFilter = value; } + + /// Backing field for property. + private bool? _enableAdvancedFilteringOnArray; + + /// + /// Allows advanced filters to be evaluated against an array of values instead of expecting a singular value. The default + /// value is either false or null. + /// + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Owned)] + public bool? EnableAdvancedFilteringOnArray { get => this._enableAdvancedFilteringOnArray; set => this._enableAdvancedFilteringOnArray = value; } + + /// Creates an new instance. + public EventChannelFilter() + { + + } + } + /// Filter for the Event Channel. + public partial interface IEventChannelFilter : + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IJsonSerializable + { + /// An array of advanced filters that are used for filtering event channels. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"An array of advanced filters that are used for filtering event channels.", + SerializedName = @"advancedFilters", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IAdvancedFilter) })] + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IAdvancedFilter[] AdvancedFilter { get; set; } + /// + /// Allows advanced filters to be evaluated against an array of values instead of expecting a singular value. The default + /// value is either false or null. + /// + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Allows advanced filters to be evaluated against an array of values instead of expecting a singular value. The default value is either false or null.", + SerializedName = @"enableAdvancedFilteringOnArrays", + PossibleTypes = new [] { typeof(bool) })] + bool? EnableAdvancedFilteringOnArray { get; set; } + + } + /// Filter for the Event Channel. + internal partial interface IEventChannelFilterInternal + + { + /// An array of advanced filters that are used for filtering event channels. + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IAdvancedFilter[] AdvancedFilter { get; set; } + /// + /// Allows advanced filters to be evaluated against an array of values instead of expecting a singular value. The default + /// value is either false or null. + /// + bool? EnableAdvancedFilteringOnArray { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/EventChannelFilter.json.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/EventChannelFilter.json.cs new file mode 100644 index 000000000000..99ef58e217e8 --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/EventChannelFilter.json.cs @@ -0,0 +1,116 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Extensions; + + /// Filter for the Event Channel. + public partial class EventChannelFilter + { + + /// + /// AfterFromJson will be called after the json deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JsonNode that should be deserialized into this object. + + partial void AfterFromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json erialization has finished, allowing customization of the before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JSON container that the serialization result will be placed in. + + partial void AfterToJson(ref Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject container); + + /// + /// BeforeFromJson will be called before the json deserialization has commenced, allowing complete customization of + /// the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JsonNode that should be deserialized into this object. + /// Determines if the rest of the deserialization should be processed, or if the method should return + /// instantly. + + partial void BeforeFromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject json, ref bool returnNow); + + /// + /// BeforeToJson will be called before the json serialization has commenced, allowing complete customization of the + /// object before it is serialized. + /// If you wish to disable the default serialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JSON container that the serialization result will be placed in. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeToJson(ref Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject instance to deserialize from. + internal EventChannelFilter(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject json) + { + bool returnNow = false; + BeforeFromJson(json, ref returnNow); + if (returnNow) + { + return; + } + {_enableAdvancedFilteringOnArray = If( json?.PropertyT("enableAdvancedFilteringOnArrays"), out var __jsonEnableAdvancedFilteringOnArrays) ? (bool?)__jsonEnableAdvancedFilteringOnArrays : EnableAdvancedFilteringOnArray;} + {_advancedFilter = If( json?.PropertyT("advancedFilters"), out var __jsonAdvancedFilters) ? If( __jsonAdvancedFilters as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Models.Api20211015Preview.IAdvancedFilter) (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.AdvancedFilter.FromJson(__u) )) ))() : null : AdvancedFilter;} + AfterFromJson(json); + } + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventChannelFilter. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventChannelFilter. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventChannelFilter FromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject json ? new EventChannelFilter(json) : null; + } + + /// + /// Serializes this instance of into a . + /// + /// The container to serialize this object into. If the caller + /// passes in null, a new instance will be created and returned to the caller. + /// Allows the caller to choose the depth of the serialization. See . + /// + /// a serialized instance of as a . + /// + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject(); + + bool returnNow = false; + BeforeToJson(ref container, ref returnNow); + if (returnNow) + { + return container; + } + AddIf( null != this._enableAdvancedFilteringOnArray ? (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode)new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonBoolean((bool)this._enableAdvancedFilteringOnArray) : null, "enableAdvancedFilteringOnArrays" ,container.Add ); + if (null != this._advancedFilter) + { + var __w = new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.XNodeArray(); + foreach( var __x in this._advancedFilter ) + { + AddIf(__x?.ToJson(null, serializationMode) ,__w.Add); + } + container.Add("advancedFilters",__w); + } + AfterToJson(ref container); + return container; + } + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/EventChannelProperties.PowerShell.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/EventChannelProperties.PowerShell.cs new file mode 100644 index 000000000000..1ff866c338b9 --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/EventChannelProperties.PowerShell.cs @@ -0,0 +1,240 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell; + + /// Properties of the Event Channel. + [System.ComponentModel.TypeConverter(typeof(EventChannelPropertiesTypeConverter))] + public partial class EventChannelProperties + { + + /// + /// AfterDeserializeDictionary will be called after the deserialization has finished, allowing customization of the + /// object before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Collections.IDictionary content that should be used. + + partial void AfterDeserializeDictionary(global::System.Collections.IDictionary content); + + /// + /// AfterDeserializePSObject will be called after the deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Management.Automation.PSObject content that should be used. + + partial void AfterDeserializePSObject(global::System.Management.Automation.PSObject content); + + /// + /// BeforeDeserializeDictionary will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Collections.IDictionary content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializeDictionary(global::System.Collections.IDictionary content, ref bool returnNow); + + /// + /// BeforeDeserializePSObject will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializePSObject(global::System.Management.Automation.PSObject content, ref bool returnNow); + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventChannelProperties DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new EventChannelProperties(content); + } + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventChannelProperties DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new EventChannelProperties(content); + } + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + internal EventChannelProperties(global::System.Collections.IDictionary content) + { + bool returnNow = false; + BeforeDeserializeDictionary(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("Source")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventChannelPropertiesInternal)this).Source = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventChannelSource) content.GetValueForProperty("Source",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventChannelPropertiesInternal)this).Source, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.EventChannelSourceTypeConverter.ConvertFrom); + } + if (content.Contains("Destination")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventChannelPropertiesInternal)this).Destination = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventChannelDestination) content.GetValueForProperty("Destination",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventChannelPropertiesInternal)this).Destination, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.EventChannelDestinationTypeConverter.ConvertFrom); + } + if (content.Contains("Filter")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventChannelPropertiesInternal)this).Filter = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventChannelFilter) content.GetValueForProperty("Filter",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventChannelPropertiesInternal)this).Filter, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.EventChannelFilterTypeConverter.ConvertFrom); + } + if (content.Contains("ProvisioningState")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventChannelPropertiesInternal)this).ProvisioningState = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EventChannelProvisioningState?) content.GetValueForProperty("ProvisioningState",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventChannelPropertiesInternal)this).ProvisioningState, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EventChannelProvisioningState.CreateFrom); + } + if (content.Contains("PartnerTopicReadinessState")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventChannelPropertiesInternal)this).PartnerTopicReadinessState = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.PartnerTopicReadinessState?) content.GetValueForProperty("PartnerTopicReadinessState",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventChannelPropertiesInternal)this).PartnerTopicReadinessState, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.PartnerTopicReadinessState.CreateFrom); + } + if (content.Contains("ExpirationTimeIfNotActivatedUtc")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventChannelPropertiesInternal)this).ExpirationTimeIfNotActivatedUtc = (global::System.DateTime?) content.GetValueForProperty("ExpirationTimeIfNotActivatedUtc",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventChannelPropertiesInternal)this).ExpirationTimeIfNotActivatedUtc, (v) => v is global::System.DateTime _v ? _v : global::System.Xml.XmlConvert.ToDateTime( v.ToString() , global::System.Xml.XmlDateTimeSerializationMode.Unspecified)); + } + if (content.Contains("PartnerTopicFriendlyDescription")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventChannelPropertiesInternal)this).PartnerTopicFriendlyDescription = (string) content.GetValueForProperty("PartnerTopicFriendlyDescription",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventChannelPropertiesInternal)this).PartnerTopicFriendlyDescription, global::System.Convert.ToString); + } + if (content.Contains("EventChannelSource")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventChannelPropertiesInternal)this).EventChannelSource = (string) content.GetValueForProperty("EventChannelSource",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventChannelPropertiesInternal)this).EventChannelSource, global::System.Convert.ToString); + } + if (content.Contains("DestinationAzureSubscriptionId")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventChannelPropertiesInternal)this).DestinationAzureSubscriptionId = (string) content.GetValueForProperty("DestinationAzureSubscriptionId",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventChannelPropertiesInternal)this).DestinationAzureSubscriptionId, global::System.Convert.ToString); + } + if (content.Contains("DestinationResourceGroup")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventChannelPropertiesInternal)this).DestinationResourceGroup = (string) content.GetValueForProperty("DestinationResourceGroup",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventChannelPropertiesInternal)this).DestinationResourceGroup, global::System.Convert.ToString); + } + if (content.Contains("DestinationPartnerTopicName")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventChannelPropertiesInternal)this).DestinationPartnerTopicName = (string) content.GetValueForProperty("DestinationPartnerTopicName",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventChannelPropertiesInternal)this).DestinationPartnerTopicName, global::System.Convert.ToString); + } + if (content.Contains("FilterEnableAdvancedFilteringOnArray")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventChannelPropertiesInternal)this).FilterEnableAdvancedFilteringOnArray = (bool?) content.GetValueForProperty("FilterEnableAdvancedFilteringOnArray",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventChannelPropertiesInternal)this).FilterEnableAdvancedFilteringOnArray, (__y)=> (bool) global::System.Convert.ChangeType(__y, typeof(bool))); + } + if (content.Contains("FilterAdvancedFilter")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventChannelPropertiesInternal)this).FilterAdvancedFilter = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IAdvancedFilter[]) content.GetValueForProperty("FilterAdvancedFilter",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventChannelPropertiesInternal)this).FilterAdvancedFilter, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.AdvancedFilterTypeConverter.ConvertFrom)); + } + AfterDeserializeDictionary(content); + } + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + internal EventChannelProperties(global::System.Management.Automation.PSObject content) + { + bool returnNow = false; + BeforeDeserializePSObject(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("Source")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventChannelPropertiesInternal)this).Source = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventChannelSource) content.GetValueForProperty("Source",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventChannelPropertiesInternal)this).Source, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.EventChannelSourceTypeConverter.ConvertFrom); + } + if (content.Contains("Destination")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventChannelPropertiesInternal)this).Destination = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventChannelDestination) content.GetValueForProperty("Destination",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventChannelPropertiesInternal)this).Destination, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.EventChannelDestinationTypeConverter.ConvertFrom); + } + if (content.Contains("Filter")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventChannelPropertiesInternal)this).Filter = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventChannelFilter) content.GetValueForProperty("Filter",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventChannelPropertiesInternal)this).Filter, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.EventChannelFilterTypeConverter.ConvertFrom); + } + if (content.Contains("ProvisioningState")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventChannelPropertiesInternal)this).ProvisioningState = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EventChannelProvisioningState?) content.GetValueForProperty("ProvisioningState",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventChannelPropertiesInternal)this).ProvisioningState, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EventChannelProvisioningState.CreateFrom); + } + if (content.Contains("PartnerTopicReadinessState")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventChannelPropertiesInternal)this).PartnerTopicReadinessState = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.PartnerTopicReadinessState?) content.GetValueForProperty("PartnerTopicReadinessState",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventChannelPropertiesInternal)this).PartnerTopicReadinessState, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.PartnerTopicReadinessState.CreateFrom); + } + if (content.Contains("ExpirationTimeIfNotActivatedUtc")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventChannelPropertiesInternal)this).ExpirationTimeIfNotActivatedUtc = (global::System.DateTime?) content.GetValueForProperty("ExpirationTimeIfNotActivatedUtc",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventChannelPropertiesInternal)this).ExpirationTimeIfNotActivatedUtc, (v) => v is global::System.DateTime _v ? _v : global::System.Xml.XmlConvert.ToDateTime( v.ToString() , global::System.Xml.XmlDateTimeSerializationMode.Unspecified)); + } + if (content.Contains("PartnerTopicFriendlyDescription")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventChannelPropertiesInternal)this).PartnerTopicFriendlyDescription = (string) content.GetValueForProperty("PartnerTopicFriendlyDescription",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventChannelPropertiesInternal)this).PartnerTopicFriendlyDescription, global::System.Convert.ToString); + } + if (content.Contains("EventChannelSource")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventChannelPropertiesInternal)this).EventChannelSource = (string) content.GetValueForProperty("EventChannelSource",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventChannelPropertiesInternal)this).EventChannelSource, global::System.Convert.ToString); + } + if (content.Contains("DestinationAzureSubscriptionId")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventChannelPropertiesInternal)this).DestinationAzureSubscriptionId = (string) content.GetValueForProperty("DestinationAzureSubscriptionId",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventChannelPropertiesInternal)this).DestinationAzureSubscriptionId, global::System.Convert.ToString); + } + if (content.Contains("DestinationResourceGroup")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventChannelPropertiesInternal)this).DestinationResourceGroup = (string) content.GetValueForProperty("DestinationResourceGroup",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventChannelPropertiesInternal)this).DestinationResourceGroup, global::System.Convert.ToString); + } + if (content.Contains("DestinationPartnerTopicName")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventChannelPropertiesInternal)this).DestinationPartnerTopicName = (string) content.GetValueForProperty("DestinationPartnerTopicName",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventChannelPropertiesInternal)this).DestinationPartnerTopicName, global::System.Convert.ToString); + } + if (content.Contains("FilterEnableAdvancedFilteringOnArray")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventChannelPropertiesInternal)this).FilterEnableAdvancedFilteringOnArray = (bool?) content.GetValueForProperty("FilterEnableAdvancedFilteringOnArray",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventChannelPropertiesInternal)this).FilterEnableAdvancedFilteringOnArray, (__y)=> (bool) global::System.Convert.ChangeType(__y, typeof(bool))); + } + if (content.Contains("FilterAdvancedFilter")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventChannelPropertiesInternal)this).FilterAdvancedFilter = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IAdvancedFilter[]) content.GetValueForProperty("FilterAdvancedFilter",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventChannelPropertiesInternal)this).FilterAdvancedFilter, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.AdvancedFilterTypeConverter.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.EventGrid.Models.Api20211015Preview.IEventChannelProperties FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode.Parse(jsonText)); + + /// Serializes this instance to a json string. + + /// a containing this model serialized to JSON text. + public string ToJsonString() => ToJson(null, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// Properties of the Event Channel. + [System.ComponentModel.TypeConverter(typeof(EventChannelPropertiesTypeConverter))] + public partial interface IEventChannelProperties + + { + + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/EventChannelProperties.TypeConverter.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/EventChannelProperties.TypeConverter.cs new file mode 100644 index 000000000000..6055bf0d5a4e --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/EventChannelProperties.TypeConverter.cs @@ -0,0 +1,147 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class EventChannelPropertiesTypeConverter : global::System.Management.Automation.PSTypeConverter + { + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false. + /// + public override bool CanConvertFrom(object sourceValue, global::System.Type destinationType) => CanConvertFrom(sourceValue); + + /// + /// Determines if the converter can convert the parameter to the . + /// + /// the instance to check if it can be converted to the type. + /// + /// true if the instance could be converted to a type, otherwise false + /// + public static bool CanConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return true; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + // we say yest to PSObjects + return true; + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + // we say yest to Hashtables/dictionaries + return true; + } + try + { + if (null != sourceValue.ToJsonString()) + { + return true; + } + } + catch + { + // Not one of our objects + } + try + { + string text = sourceValue.ToString()?.Trim(); + return true == text?.StartsWith("{") && true == text?.EndsWith("}") && Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonType.Object; + } + catch + { + // Doesn't look like it can be treated as JSON + } + return false; + } + + /// + /// Determines if the parameter can be converted to the parameter + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false + /// + public override bool CanConvertTo(object sourceValue, global::System.Type destinationType) => false; + + /// + /// Converts the parameter to the parameter using and + /// + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// + /// an instance of , or null if there is no suitable conversion. + /// + public override object ConvertFrom(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => ConvertFrom(sourceValue); + + /// + /// Converts the parameter to the parameter using and + /// + /// the value to convert into an instance of . + /// + /// an instance of , or null if there is no suitable conversion. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventChannelProperties ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventChannelProperties).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return EventChannelProperties.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return EventChannelProperties.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return EventChannelProperties.DeserializeFromDictionary(sourceValue); + } + return null; + } + + /// NotImplemented -- this will return null + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// will always return null. + public override object ConvertTo(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => null; + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/EventChannelProperties.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/EventChannelProperties.cs new file mode 100644 index 000000000000..ecc025e4fc96 --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/EventChannelProperties.cs @@ -0,0 +1,294 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Extensions; + + /// Properties of the Event Channel. + public partial class EventChannelProperties : + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventChannelProperties, + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventChannelPropertiesInternal + { + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventChannelDestination _destination; + + /// Represents the destination of an event channel. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Owned)] + internal Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventChannelDestination Destination { get => (this._destination = this._destination ?? new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.EventChannelDestination()); set => this._destination = value; } + + /// + /// Azure subscription ID of the customer creating the event channel. The partner topic + /// associated with the event channel will be created under this Azure subscription. + /// + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Inlined)] + public string DestinationAzureSubscriptionId { get => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventChannelDestinationInternal)Destination).AzureSubscriptionId; set => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventChannelDestinationInternal)Destination).AzureSubscriptionId = value ?? null; } + + /// Name of the partner topic associated with the event channel. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Inlined)] + public string DestinationPartnerTopicName { get => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventChannelDestinationInternal)Destination).PartnerTopicName; set => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventChannelDestinationInternal)Destination).PartnerTopicName = value ?? null; } + + /// + /// Azure Resource Group of the customer creating the event channel. The partner topic + /// associated with the event channel will be created under this resource group. + /// + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Inlined)] + public string DestinationResourceGroup { get => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventChannelDestinationInternal)Destination).ResourceGroup; set => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventChannelDestinationInternal)Destination).ResourceGroup = value ?? null; } + + /// + /// The identifier of the resource that's the source of the events. + /// This represents a unique resource in the partner's resource model. + /// + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Inlined)] + public string EventChannelSource { get => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventChannelSourceInternal)Source).Source; set => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventChannelSourceInternal)Source).Source = value ?? null; } + + /// Backing field for property. + private global::System.DateTime? _expirationTimeIfNotActivatedUtc; + + /// + /// Expiration time of the event channel. If this timer expires while the corresponding partner topic is never activated, + /// the event channel and corresponding partner topic are deleted. + /// + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Owned)] + public global::System.DateTime? ExpirationTimeIfNotActivatedUtc { get => this._expirationTimeIfNotActivatedUtc; set => this._expirationTimeIfNotActivatedUtc = value; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventChannelFilter _filter; + + /// Information about the filter for the event channel. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Owned)] + internal Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventChannelFilter Filter { get => (this._filter = this._filter ?? new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.EventChannelFilter()); set => this._filter = value; } + + /// An array of advanced filters that are used for filtering event channels. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Inlined)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IAdvancedFilter[] FilterAdvancedFilter { get => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventChannelFilterInternal)Filter).AdvancedFilter; set => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventChannelFilterInternal)Filter).AdvancedFilter = value ?? null /* arrayOf */; } + + /// + /// Allows advanced filters to be evaluated against an array of values instead of expecting a singular value. The default + /// value is either false or null. + /// + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Inlined)] + public bool? FilterEnableAdvancedFilteringOnArray { get => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventChannelFilterInternal)Filter).EnableAdvancedFilteringOnArray; set => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventChannelFilterInternal)Filter).EnableAdvancedFilteringOnArray = value ?? default(bool); } + + /// Internal Acessors for Destination + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventChannelDestination Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventChannelPropertiesInternal.Destination { get => (this._destination = this._destination ?? new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.EventChannelDestination()); set { {_destination = value;} } } + + /// Internal Acessors for Filter + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventChannelFilter Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventChannelPropertiesInternal.Filter { get => (this._filter = this._filter ?? new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.EventChannelFilter()); set { {_filter = value;} } } + + /// Internal Acessors for PartnerTopicReadinessState + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.PartnerTopicReadinessState? Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventChannelPropertiesInternal.PartnerTopicReadinessState { get => this._partnerTopicReadinessState; set { {_partnerTopicReadinessState = value;} } } + + /// Internal Acessors for ProvisioningState + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EventChannelProvisioningState? Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventChannelPropertiesInternal.ProvisioningState { get => this._provisioningState; set { {_provisioningState = value;} } } + + /// Internal Acessors for Source + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventChannelSource Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventChannelPropertiesInternal.Source { get => (this._source = this._source ?? new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.EventChannelSource()); set { {_source = value;} } } + + /// Backing field for property. + private string _partnerTopicFriendlyDescription; + + /// + /// Friendly description about the topic. This can be set by the publisher/partner to show custom description for the customer + /// partner topic. + /// This will be helpful to remove any ambiguity of the origin of creation of the partner topic for the customer. + /// + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Owned)] + public string PartnerTopicFriendlyDescription { get => this._partnerTopicFriendlyDescription; set => this._partnerTopicFriendlyDescription = value; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.PartnerTopicReadinessState? _partnerTopicReadinessState; + + /// The readiness state of the corresponding partner topic. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Owned)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.PartnerTopicReadinessState? PartnerTopicReadinessState { get => this._partnerTopicReadinessState; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EventChannelProvisioningState? _provisioningState; + + /// Provisioning state of the event channel. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Owned)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EventChannelProvisioningState? ProvisioningState { get => this._provisioningState; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventChannelSource _source; + + /// + /// Source of the event channel. This represents a unique resource in the partner's resource model. + /// + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Owned)] + internal Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventChannelSource Source { get => (this._source = this._source ?? new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.EventChannelSource()); set => this._source = value; } + + /// Creates an new instance. + public EventChannelProperties() + { + + } + } + /// Properties of the Event Channel. + public partial interface IEventChannelProperties : + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IJsonSerializable + { + /// + /// Azure subscription ID of the customer creating the event channel. The partner topic + /// associated with the event channel will be created under this Azure subscription. + /// + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Azure subscription ID of the customer creating the event channel. The partner topic + associated with the event channel will be created under this Azure subscription.", + SerializedName = @"azureSubscriptionId", + PossibleTypes = new [] { typeof(string) })] + string DestinationAzureSubscriptionId { get; set; } + /// Name of the partner topic associated with the event channel. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Name of the partner topic associated with the event channel.", + SerializedName = @"partnerTopicName", + PossibleTypes = new [] { typeof(string) })] + string DestinationPartnerTopicName { get; set; } + /// + /// Azure Resource Group of the customer creating the event channel. The partner topic + /// associated with the event channel will be created under this resource group. + /// + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Azure Resource Group of the customer creating the event channel. The partner topic + associated with the event channel will be created under this resource group.", + SerializedName = @"resourceGroup", + PossibleTypes = new [] { typeof(string) })] + string DestinationResourceGroup { get; set; } + /// + /// The identifier of the resource that's the source of the events. + /// This represents a unique resource in the partner's resource model. + /// + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The identifier of the resource that's the source of the events. + This represents a unique resource in the partner's resource model.", + SerializedName = @"source", + PossibleTypes = new [] { typeof(string) })] + string EventChannelSource { get; set; } + /// + /// Expiration time of the event channel. If this timer expires while the corresponding partner topic is never activated, + /// the event channel and corresponding partner topic are deleted. + /// + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Expiration time of the event channel. If this timer expires while the corresponding partner topic is never activated, + the event channel and corresponding partner topic are deleted.", + SerializedName = @"expirationTimeIfNotActivatedUtc", + PossibleTypes = new [] { typeof(global::System.DateTime) })] + global::System.DateTime? ExpirationTimeIfNotActivatedUtc { get; set; } + /// An array of advanced filters that are used for filtering event channels. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"An array of advanced filters that are used for filtering event channels.", + SerializedName = @"advancedFilters", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IAdvancedFilter) })] + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IAdvancedFilter[] FilterAdvancedFilter { get; set; } + /// + /// Allows advanced filters to be evaluated against an array of values instead of expecting a singular value. The default + /// value is either false or null. + /// + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Allows advanced filters to be evaluated against an array of values instead of expecting a singular value. The default value is either false or null.", + SerializedName = @"enableAdvancedFilteringOnArrays", + PossibleTypes = new [] { typeof(bool) })] + bool? FilterEnableAdvancedFilteringOnArray { get; set; } + /// + /// Friendly description about the topic. This can be set by the publisher/partner to show custom description for the customer + /// partner topic. + /// This will be helpful to remove any ambiguity of the origin of creation of the partner topic for the customer. + /// + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Friendly description about the topic. This can be set by the publisher/partner to show custom description for the customer partner topic. + This will be helpful to remove any ambiguity of the origin of creation of the partner topic for the customer.", + SerializedName = @"partnerTopicFriendlyDescription", + PossibleTypes = new [] { typeof(string) })] + string PartnerTopicFriendlyDescription { get; set; } + /// The readiness state of the corresponding partner topic. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"The readiness state of the corresponding partner topic.", + SerializedName = @"partnerTopicReadinessState", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.PartnerTopicReadinessState) })] + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.PartnerTopicReadinessState? PartnerTopicReadinessState { get; } + /// Provisioning state of the event channel. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"Provisioning state of the event channel.", + SerializedName = @"provisioningState", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EventChannelProvisioningState) })] + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EventChannelProvisioningState? ProvisioningState { get; } + + } + /// Properties of the Event Channel. + internal partial interface IEventChannelPropertiesInternal + + { + /// Represents the destination of an event channel. + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventChannelDestination Destination { get; set; } + /// + /// Azure subscription ID of the customer creating the event channel. The partner topic + /// associated with the event channel will be created under this Azure subscription. + /// + string DestinationAzureSubscriptionId { get; set; } + /// Name of the partner topic associated with the event channel. + string DestinationPartnerTopicName { get; set; } + /// + /// Azure Resource Group of the customer creating the event channel. The partner topic + /// associated with the event channel will be created under this resource group. + /// + string DestinationResourceGroup { get; set; } + /// + /// The identifier of the resource that's the source of the events. + /// This represents a unique resource in the partner's resource model. + /// + string EventChannelSource { get; set; } + /// + /// Expiration time of the event channel. If this timer expires while the corresponding partner topic is never activated, + /// the event channel and corresponding partner topic are deleted. + /// + global::System.DateTime? ExpirationTimeIfNotActivatedUtc { get; set; } + /// Information about the filter for the event channel. + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventChannelFilter Filter { get; set; } + /// An array of advanced filters that are used for filtering event channels. + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IAdvancedFilter[] FilterAdvancedFilter { get; set; } + /// + /// Allows advanced filters to be evaluated against an array of values instead of expecting a singular value. The default + /// value is either false or null. + /// + bool? FilterEnableAdvancedFilteringOnArray { get; set; } + /// + /// Friendly description about the topic. This can be set by the publisher/partner to show custom description for the customer + /// partner topic. + /// This will be helpful to remove any ambiguity of the origin of creation of the partner topic for the customer. + /// + string PartnerTopicFriendlyDescription { get; set; } + /// The readiness state of the corresponding partner topic. + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.PartnerTopicReadinessState? PartnerTopicReadinessState { get; set; } + /// Provisioning state of the event channel. + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EventChannelProvisioningState? ProvisioningState { get; set; } + /// + /// Source of the event channel. This represents a unique resource in the partner's resource model. + /// + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventChannelSource Source { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/EventChannelProperties.json.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/EventChannelProperties.json.cs new file mode 100644 index 000000000000..66cdc6bf0683 --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/EventChannelProperties.json.cs @@ -0,0 +1,124 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Extensions; + + /// Properties of the Event Channel. + public partial class EventChannelProperties + { + + /// + /// AfterFromJson will be called after the json deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JsonNode that should be deserialized into this object. + + partial void AfterFromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json erialization has finished, allowing customization of the before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JSON container that the serialization result will be placed in. + + partial void AfterToJson(ref Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject container); + + /// + /// BeforeFromJson will be called before the json deserialization has commenced, allowing complete customization of + /// the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JsonNode that should be deserialized into this object. + /// Determines if the rest of the deserialization should be processed, or if the method should return + /// instantly. + + partial void BeforeFromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject json, ref bool returnNow); + + /// + /// BeforeToJson will be called before the json serialization has commenced, allowing complete customization of the + /// object before it is serialized. + /// If you wish to disable the default serialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JSON container that the serialization result will be placed in. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeToJson(ref Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject instance to deserialize from. + internal EventChannelProperties(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject json) + { + bool returnNow = false; + BeforeFromJson(json, ref returnNow); + if (returnNow) + { + return; + } + {_source = If( json?.PropertyT("source"), out var __jsonSource) ? Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.EventChannelSource.FromJson(__jsonSource) : Source;} + {_destination = If( json?.PropertyT("destination"), out var __jsonDestination) ? Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.EventChannelDestination.FromJson(__jsonDestination) : Destination;} + {_filter = If( json?.PropertyT("filter"), out var __jsonFilter) ? Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.EventChannelFilter.FromJson(__jsonFilter) : Filter;} + {_provisioningState = If( json?.PropertyT("provisioningState"), out var __jsonProvisioningState) ? (string)__jsonProvisioningState : (string)ProvisioningState;} + {_partnerTopicReadinessState = If( json?.PropertyT("partnerTopicReadinessState"), out var __jsonPartnerTopicReadinessState) ? (string)__jsonPartnerTopicReadinessState : (string)PartnerTopicReadinessState;} + {_expirationTimeIfNotActivatedUtc = If( json?.PropertyT("expirationTimeIfNotActivatedUtc"), out var __jsonExpirationTimeIfNotActivatedUtc) ? global::System.DateTime.TryParse((string)__jsonExpirationTimeIfNotActivatedUtc, global::System.Globalization.CultureInfo.InvariantCulture, global::System.Globalization.DateTimeStyles.AdjustToUniversal, out var __jsonExpirationTimeIfNotActivatedUtcValue) ? __jsonExpirationTimeIfNotActivatedUtcValue : ExpirationTimeIfNotActivatedUtc : ExpirationTimeIfNotActivatedUtc;} + {_partnerTopicFriendlyDescription = If( json?.PropertyT("partnerTopicFriendlyDescription"), out var __jsonPartnerTopicFriendlyDescription) ? (string)__jsonPartnerTopicFriendlyDescription : (string)PartnerTopicFriendlyDescription;} + AfterFromJson(json); + } + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventChannelProperties. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventChannelProperties. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventChannelProperties FromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject json ? new EventChannelProperties(json) : null; + } + + /// + /// Serializes this instance of into a . + /// + /// The container to serialize this object into. If the caller + /// passes in null, a new instance will be created and returned to the caller. + /// Allows the caller to choose the depth of the serialization. See . + /// + /// a serialized instance of as a . + /// + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject(); + + bool returnNow = false; + BeforeToJson(ref container, ref returnNow); + if (returnNow) + { + return container; + } + AddIf( null != this._source ? (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode) this._source.ToJson(null,serializationMode) : null, "source" ,container.Add ); + AddIf( null != this._destination ? (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode) this._destination.ToJson(null,serializationMode) : null, "destination" ,container.Add ); + AddIf( null != this._filter ? (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode) this._filter.ToJson(null,serializationMode) : null, "filter" ,container.Add ); + if (serializationMode.HasFlag(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SerializationMode.IncludeReadOnly)) + { + AddIf( null != (((object)this._provisioningState)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonString(this._provisioningState.ToString()) : null, "provisioningState" ,container.Add ); + } + if (serializationMode.HasFlag(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SerializationMode.IncludeReadOnly)) + { + AddIf( null != (((object)this._partnerTopicReadinessState)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonString(this._partnerTopicReadinessState.ToString()) : null, "partnerTopicReadinessState" ,container.Add ); + } + AddIf( null != this._expirationTimeIfNotActivatedUtc ? (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonString(this._expirationTimeIfNotActivatedUtc?.ToString(@"yyyy'-'MM'-'dd'T'HH':'mm':'ss.fffffffK",global::System.Globalization.CultureInfo.InvariantCulture)) : null, "expirationTimeIfNotActivatedUtc" ,container.Add ); + AddIf( null != (((object)this._partnerTopicFriendlyDescription)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonString(this._partnerTopicFriendlyDescription.ToString()) : null, "partnerTopicFriendlyDescription" ,container.Add ); + AfterToJson(ref container); + return container; + } + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/EventChannelSource.PowerShell.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/EventChannelSource.PowerShell.cs new file mode 100644 index 000000000000..2c83d604fea1 --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/EventChannelSource.PowerShell.cs @@ -0,0 +1,144 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell; + + /// Properties of the source of an event channel. + [System.ComponentModel.TypeConverter(typeof(EventChannelSourceTypeConverter))] + public partial class EventChannelSource + { + + /// + /// AfterDeserializeDictionary will be called after the deserialization has finished, allowing customization of the + /// object before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Collections.IDictionary content that should be used. + + partial void AfterDeserializeDictionary(global::System.Collections.IDictionary content); + + /// + /// AfterDeserializePSObject will be called after the deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Management.Automation.PSObject content that should be used. + + partial void AfterDeserializePSObject(global::System.Management.Automation.PSObject content); + + /// + /// BeforeDeserializeDictionary will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Collections.IDictionary content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializeDictionary(global::System.Collections.IDictionary content, ref bool returnNow); + + /// + /// BeforeDeserializePSObject will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializePSObject(global::System.Management.Automation.PSObject content, ref bool returnNow); + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventChannelSource DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new EventChannelSource(content); + } + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventChannelSource DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new EventChannelSource(content); + } + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + internal EventChannelSource(global::System.Collections.IDictionary content) + { + bool returnNow = false; + BeforeDeserializeDictionary(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("Source")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventChannelSourceInternal)this).Source = (string) content.GetValueForProperty("Source",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventChannelSourceInternal)this).Source, global::System.Convert.ToString); + } + AfterDeserializeDictionary(content); + } + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + internal EventChannelSource(global::System.Management.Automation.PSObject content) + { + bool returnNow = false; + BeforeDeserializePSObject(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("Source")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventChannelSourceInternal)this).Source = (string) content.GetValueForProperty("Source",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventChannelSourceInternal)this).Source, 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.EventGrid.Models.Api20211015Preview.IEventChannelSource FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode.Parse(jsonText)); + + /// Serializes this instance to a json string. + + /// a containing this model serialized to JSON text. + public string ToJsonString() => ToJson(null, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// Properties of the source of an event channel. + [System.ComponentModel.TypeConverter(typeof(EventChannelSourceTypeConverter))] + public partial interface IEventChannelSource + + { + + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/EventChannelSource.TypeConverter.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/EventChannelSource.TypeConverter.cs new file mode 100644 index 000000000000..51dc2a65a844 --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/EventChannelSource.TypeConverter.cs @@ -0,0 +1,147 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class EventChannelSourceTypeConverter : global::System.Management.Automation.PSTypeConverter + { + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false. + /// + public override bool CanConvertFrom(object sourceValue, global::System.Type destinationType) => CanConvertFrom(sourceValue); + + /// + /// Determines if the converter can convert the parameter to the . + /// + /// the instance to check if it can be converted to the type. + /// + /// true if the instance could be converted to a type, otherwise false + /// + public static bool CanConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return true; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + // we say yest to PSObjects + return true; + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + // we say yest to Hashtables/dictionaries + return true; + } + try + { + if (null != sourceValue.ToJsonString()) + { + return true; + } + } + catch + { + // Not one of our objects + } + try + { + string text = sourceValue.ToString()?.Trim(); + return true == text?.StartsWith("{") && true == text?.EndsWith("}") && Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonType.Object; + } + catch + { + // Doesn't look like it can be treated as JSON + } + return false; + } + + /// + /// Determines if the parameter can be converted to the parameter + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false + /// + public override bool CanConvertTo(object sourceValue, global::System.Type destinationType) => false; + + /// + /// Converts the parameter to the parameter using and + /// + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// + /// an instance of , or null if there is no suitable conversion. + /// + public override object ConvertFrom(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => ConvertFrom(sourceValue); + + /// + /// Converts the parameter to the parameter using and + /// + /// the value to convert into an instance of . + /// + /// an instance of , or null if there is no suitable conversion. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventChannelSource ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventChannelSource).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return EventChannelSource.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return EventChannelSource.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return EventChannelSource.DeserializeFromDictionary(sourceValue); + } + return null; + } + + /// NotImplemented -- this will return null + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// will always return null. + public override object ConvertTo(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => null; + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/EventChannelSource.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/EventChannelSource.cs new file mode 100644 index 000000000000..8d4f6ae124a8 --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/EventChannelSource.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.EventGrid.Models.Api20211015Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Extensions; + + /// Properties of the source of an event channel. + public partial class EventChannelSource : + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventChannelSource, + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventChannelSourceInternal + { + + /// Backing field for property. + private string _source; + + /// + /// The identifier of the resource that's the source of the events. + /// This represents a unique resource in the partner's resource model. + /// + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Owned)] + public string Source { get => this._source; set => this._source = value; } + + /// Creates an new instance. + public EventChannelSource() + { + + } + } + /// Properties of the source of an event channel. + public partial interface IEventChannelSource : + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IJsonSerializable + { + /// + /// The identifier of the resource that's the source of the events. + /// This represents a unique resource in the partner's resource model. + /// + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The identifier of the resource that's the source of the events. + This represents a unique resource in the partner's resource model.", + SerializedName = @"source", + PossibleTypes = new [] { typeof(string) })] + string Source { get; set; } + + } + /// Properties of the source of an event channel. + internal partial interface IEventChannelSourceInternal + + { + /// + /// The identifier of the resource that's the source of the events. + /// This represents a unique resource in the partner's resource model. + /// + string Source { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/EventChannelSource.json.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/EventChannelSource.json.cs new file mode 100644 index 000000000000..ab670914bb94 --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/EventChannelSource.json.cs @@ -0,0 +1,106 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Extensions; + + /// Properties of the source of an event channel. + public partial class EventChannelSource + { + + /// + /// AfterFromJson will be called after the json deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JsonNode that should be deserialized into this object. + + partial void AfterFromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json erialization has finished, allowing customization of the before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JSON container that the serialization result will be placed in. + + partial void AfterToJson(ref Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject container); + + /// + /// BeforeFromJson will be called before the json deserialization has commenced, allowing complete customization of + /// the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JsonNode that should be deserialized into this object. + /// Determines if the rest of the deserialization should be processed, or if the method should return + /// instantly. + + partial void BeforeFromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject json, ref bool returnNow); + + /// + /// BeforeToJson will be called before the json serialization has commenced, allowing complete customization of the + /// object before it is serialized. + /// If you wish to disable the default serialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JSON container that the serialization result will be placed in. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeToJson(ref Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject instance to deserialize from. + internal EventChannelSource(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject json) + { + bool returnNow = false; + BeforeFromJson(json, ref returnNow); + if (returnNow) + { + return; + } + {_source = If( json?.PropertyT("source"), out var __jsonSource) ? (string)__jsonSource : (string)Source;} + AfterFromJson(json); + } + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventChannelSource. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventChannelSource. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventChannelSource FromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject json ? new EventChannelSource(json) : null; + } + + /// + /// Serializes this instance of into a . + /// + /// The container to serialize this object into. If the caller + /// passes in null, a new instance will be created and returned to the caller. + /// Allows the caller to choose the depth of the serialization. See . + /// + /// a serialized instance of as a . + /// + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject(); + + bool returnNow = false; + BeforeToJson(ref container, ref returnNow); + if (returnNow) + { + return container; + } + AddIf( null != (((object)this._source)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonString(this._source.ToString()) : null, "source" ,container.Add ); + AfterToJson(ref container); + return container; + } + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/EventChannelsListResult.PowerShell.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/EventChannelsListResult.PowerShell.cs new file mode 100644 index 000000000000..d01b179c9be3 --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/EventChannelsListResult.PowerShell.cs @@ -0,0 +1,152 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell; + + /// Result of the List Event Channels operation + [System.ComponentModel.TypeConverter(typeof(EventChannelsListResultTypeConverter))] + public partial class EventChannelsListResult + { + + /// + /// AfterDeserializeDictionary will be called after the deserialization has finished, allowing customization of the + /// object before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Collections.IDictionary content that should be used. + + partial void AfterDeserializeDictionary(global::System.Collections.IDictionary content); + + /// + /// AfterDeserializePSObject will be called after the deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Management.Automation.PSObject content that should be used. + + partial void AfterDeserializePSObject(global::System.Management.Automation.PSObject content); + + /// + /// BeforeDeserializeDictionary will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Collections.IDictionary content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializeDictionary(global::System.Collections.IDictionary content, ref bool returnNow); + + /// + /// BeforeDeserializePSObject will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializePSObject(global::System.Management.Automation.PSObject content, ref bool returnNow); + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventChannelsListResult DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new EventChannelsListResult(content); + } + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventChannelsListResult DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new EventChannelsListResult(content); + } + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + internal EventChannelsListResult(global::System.Collections.IDictionary content) + { + bool returnNow = false; + BeforeDeserializeDictionary(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("Value")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventChannelsListResultInternal)this).Value = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventChannel[]) content.GetValueForProperty("Value",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventChannelsListResultInternal)this).Value, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.EventChannelTypeConverter.ConvertFrom)); + } + if (content.Contains("NextLink")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventChannelsListResultInternal)this).NextLink = (string) content.GetValueForProperty("NextLink",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventChannelsListResultInternal)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 EventChannelsListResult(global::System.Management.Automation.PSObject content) + { + bool returnNow = false; + BeforeDeserializePSObject(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("Value")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventChannelsListResultInternal)this).Value = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventChannel[]) content.GetValueForProperty("Value",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventChannelsListResultInternal)this).Value, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.EventChannelTypeConverter.ConvertFrom)); + } + if (content.Contains("NextLink")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventChannelsListResultInternal)this).NextLink = (string) content.GetValueForProperty("NextLink",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventChannelsListResultInternal)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.EventGrid.Models.Api20211015Preview.IEventChannelsListResult FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode.Parse(jsonText)); + + /// Serializes this instance to a json string. + + /// a containing this model serialized to JSON text. + public string ToJsonString() => ToJson(null, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// Result of the List Event Channels operation + [System.ComponentModel.TypeConverter(typeof(EventChannelsListResultTypeConverter))] + public partial interface IEventChannelsListResult + + { + + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/EventChannelsListResult.TypeConverter.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/EventChannelsListResult.TypeConverter.cs new file mode 100644 index 000000000000..79eb45fbf8fa --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/EventChannelsListResult.TypeConverter.cs @@ -0,0 +1,147 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class EventChannelsListResultTypeConverter : global::System.Management.Automation.PSTypeConverter + { + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false. + /// + public override bool CanConvertFrom(object sourceValue, global::System.Type destinationType) => CanConvertFrom(sourceValue); + + /// + /// Determines if the converter can convert the parameter to the . + /// + /// the instance to check if it can be converted to the type. + /// + /// true if the instance could be converted to a type, otherwise false + /// + public static bool CanConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return true; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + // we say yest to PSObjects + return true; + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + // we say yest to Hashtables/dictionaries + return true; + } + try + { + if (null != sourceValue.ToJsonString()) + { + return true; + } + } + catch + { + // Not one of our objects + } + try + { + string text = sourceValue.ToString()?.Trim(); + return true == text?.StartsWith("{") && true == text?.EndsWith("}") && Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonType.Object; + } + catch + { + // Doesn't look like it can be treated as JSON + } + return false; + } + + /// + /// Determines if the parameter can be converted to the parameter + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false + /// + public override bool CanConvertTo(object sourceValue, global::System.Type destinationType) => false; + + /// + /// Converts the parameter to the parameter using and + /// + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// + /// an instance of , or null if there is no suitable conversion. + /// + public override object ConvertFrom(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => ConvertFrom(sourceValue); + + /// + /// Converts the parameter to the parameter using and + /// + /// the value to convert into an instance of . + /// + /// an instance of , or null if there is no suitable conversion. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventChannelsListResult ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventChannelsListResult).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return EventChannelsListResult.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return EventChannelsListResult.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return EventChannelsListResult.DeserializeFromDictionary(sourceValue); + } + return null; + } + + /// NotImplemented -- this will return null + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// will always return null. + public override object ConvertTo(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => null; + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/EventChannelsListResult.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/EventChannelsListResult.cs new file mode 100644 index 000000000000..d44b3e9a825d --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/EventChannelsListResult.cs @@ -0,0 +1,68 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Extensions; + + /// Result of the List Event Channels operation + public partial class EventChannelsListResult : + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventChannelsListResult, + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventChannelsListResultInternal + { + + /// Backing field for property. + private string _nextLink; + + /// A link for the next page of event channels + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Owned)] + public string NextLink { get => this._nextLink; set => this._nextLink = value; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventChannel[] _value; + + /// A collection of Event Channels + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Owned)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventChannel[] Value { get => this._value; set => this._value = value; } + + /// Creates an new instance. + public EventChannelsListResult() + { + + } + } + /// Result of the List Event Channels operation + public partial interface IEventChannelsListResult : + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IJsonSerializable + { + /// A link for the next page of event channels + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"A link for the next page of event channels", + SerializedName = @"nextLink", + PossibleTypes = new [] { typeof(string) })] + string NextLink { get; set; } + /// A collection of Event Channels + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"A collection of Event Channels", + SerializedName = @"value", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventChannel) })] + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventChannel[] Value { get; set; } + + } + /// Result of the List Event Channels operation + internal partial interface IEventChannelsListResultInternal + + { + /// A link for the next page of event channels + string NextLink { get; set; } + /// A collection of Event Channels + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventChannel[] Value { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/EventChannelsListResult.json.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/EventChannelsListResult.json.cs new file mode 100644 index 000000000000..fc08a0792a1a --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/EventChannelsListResult.json.cs @@ -0,0 +1,116 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Extensions; + + /// Result of the List Event Channels operation + public partial class EventChannelsListResult + { + + /// + /// AfterFromJson will be called after the json deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JsonNode that should be deserialized into this object. + + partial void AfterFromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json erialization has finished, allowing customization of the before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JSON container that the serialization result will be placed in. + + partial void AfterToJson(ref Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject container); + + /// + /// BeforeFromJson will be called before the json deserialization has commenced, allowing complete customization of + /// the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JsonNode that should be deserialized into this object. + /// Determines if the rest of the deserialization should be processed, or if the method should return + /// instantly. + + partial void BeforeFromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject json, ref bool returnNow); + + /// + /// BeforeToJson will be called before the json serialization has commenced, allowing complete customization of the + /// object before it is serialized. + /// If you wish to disable the default serialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JSON container that the serialization result will be placed in. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeToJson(ref Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject instance to deserialize from. + internal EventChannelsListResult(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.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.EventGrid.Models.Api20211015Preview.IEventChannel) (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.EventChannel.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.EventGrid.Models.Api20211015Preview.IEventChannelsListResult. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventChannelsListResult. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventChannelsListResult FromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject json ? new EventChannelsListResult(json) : null; + } + + /// + /// Serializes this instance of into a . + /// + /// The container to serialize this object into. If the caller + /// passes in null, a new instance will be created and returned to the caller. + /// Allows the caller to choose the depth of the serialization. See . + /// + /// a serialized instance of as a . + /// + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Runtime.Json.XNodeArray(); + foreach( var __x in this._value ) + { + AddIf(__x?.ToJson(null, serializationMode) ,__w.Add); + } + container.Add("value",__w); + } + AddIf( null != (((object)this._nextLink)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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/eventgrid/generated/api/Models/Api20211015Preview/EventHubEventSubscriptionDestination.PowerShell.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/EventHubEventSubscriptionDestination.PowerShell.cs new file mode 100644 index 000000000000..8dd280c4028b --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/EventHubEventSubscriptionDestination.PowerShell.cs @@ -0,0 +1,170 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell; + + /// Information about the event hub destination for an event subscription. + [System.ComponentModel.TypeConverter(typeof(EventHubEventSubscriptionDestinationTypeConverter))] + public partial class EventHubEventSubscriptionDestination + { + + /// + /// AfterDeserializeDictionary will be called after the deserialization has finished, allowing customization of the + /// object before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Collections.IDictionary content that should be used. + + partial void AfterDeserializeDictionary(global::System.Collections.IDictionary content); + + /// + /// AfterDeserializePSObject will be called after the deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Management.Automation.PSObject content that should be used. + + partial void AfterDeserializePSObject(global::System.Management.Automation.PSObject content); + + /// + /// BeforeDeserializeDictionary will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Collections.IDictionary content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializeDictionary(global::System.Collections.IDictionary content, ref bool returnNow); + + /// + /// BeforeDeserializePSObject will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializePSObject(global::System.Management.Automation.PSObject content, ref bool returnNow); + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventHubEventSubscriptionDestination DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new EventHubEventSubscriptionDestination(content); + } + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventHubEventSubscriptionDestination DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new EventHubEventSubscriptionDestination(content); + } + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + internal EventHubEventSubscriptionDestination(global::System.Collections.IDictionary content) + { + bool returnNow = false; + BeforeDeserializeDictionary(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("Property")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventHubEventSubscriptionDestinationInternal)this).Property = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventHubEventSubscriptionDestinationProperties) content.GetValueForProperty("Property",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventHubEventSubscriptionDestinationInternal)this).Property, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.EventHubEventSubscriptionDestinationPropertiesTypeConverter.ConvertFrom); + } + if (content.Contains("EndpointType")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionDestinationInternal)this).EndpointType = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EndpointType) content.GetValueForProperty("EndpointType",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionDestinationInternal)this).EndpointType, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EndpointType.CreateFrom); + } + if (content.Contains("ResourceId")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventHubEventSubscriptionDestinationInternal)this).ResourceId = (string) content.GetValueForProperty("ResourceId",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventHubEventSubscriptionDestinationInternal)this).ResourceId, global::System.Convert.ToString); + } + if (content.Contains("DeliveryAttributeMapping")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventHubEventSubscriptionDestinationInternal)this).DeliveryAttributeMapping = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDeliveryAttributeMapping[]) content.GetValueForProperty("DeliveryAttributeMapping",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventHubEventSubscriptionDestinationInternal)this).DeliveryAttributeMapping, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.DeliveryAttributeMappingTypeConverter.ConvertFrom)); + } + AfterDeserializeDictionary(content); + } + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + internal EventHubEventSubscriptionDestination(global::System.Management.Automation.PSObject content) + { + bool returnNow = false; + BeforeDeserializePSObject(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("Property")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventHubEventSubscriptionDestinationInternal)this).Property = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventHubEventSubscriptionDestinationProperties) content.GetValueForProperty("Property",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventHubEventSubscriptionDestinationInternal)this).Property, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.EventHubEventSubscriptionDestinationPropertiesTypeConverter.ConvertFrom); + } + if (content.Contains("EndpointType")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionDestinationInternal)this).EndpointType = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EndpointType) content.GetValueForProperty("EndpointType",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionDestinationInternal)this).EndpointType, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EndpointType.CreateFrom); + } + if (content.Contains("ResourceId")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventHubEventSubscriptionDestinationInternal)this).ResourceId = (string) content.GetValueForProperty("ResourceId",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventHubEventSubscriptionDestinationInternal)this).ResourceId, global::System.Convert.ToString); + } + if (content.Contains("DeliveryAttributeMapping")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventHubEventSubscriptionDestinationInternal)this).DeliveryAttributeMapping = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDeliveryAttributeMapping[]) content.GetValueForProperty("DeliveryAttributeMapping",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventHubEventSubscriptionDestinationInternal)this).DeliveryAttributeMapping, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.DeliveryAttributeMappingTypeConverter.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.EventGrid.Models.Api20211015Preview.IEventHubEventSubscriptionDestination FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode.Parse(jsonText)); + + /// Serializes this instance to a json string. + + /// a containing this model serialized to JSON text. + public string ToJsonString() => ToJson(null, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// Information about the event hub destination for an event subscription. + [System.ComponentModel.TypeConverter(typeof(EventHubEventSubscriptionDestinationTypeConverter))] + public partial interface IEventHubEventSubscriptionDestination + + { + + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/EventHubEventSubscriptionDestination.TypeConverter.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/EventHubEventSubscriptionDestination.TypeConverter.cs new file mode 100644 index 000000000000..e44376b2777d --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/EventHubEventSubscriptionDestination.TypeConverter.cs @@ -0,0 +1,149 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class EventHubEventSubscriptionDestinationTypeConverter : global::System.Management.Automation.PSTypeConverter + { + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false. + /// + public override bool CanConvertFrom(object sourceValue, global::System.Type destinationType) => CanConvertFrom(sourceValue); + + /// + /// Determines if the converter can convert the parameter to the . + /// + /// the instance to check if it can be converted to the type. + /// + /// true if the instance could be converted to a type, otherwise + /// false + /// + public static bool CanConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return true; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + // we say yest to PSObjects + return true; + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + // we say yest to Hashtables/dictionaries + return true; + } + try + { + if (null != sourceValue.ToJsonString()) + { + return true; + } + } + catch + { + // Not one of our objects + } + try + { + string text = sourceValue.ToString()?.Trim(); + return true == text?.StartsWith("{") && true == text?.EndsWith("}") && Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonType.Object; + } + catch + { + // Doesn't look like it can be treated as JSON + } + return false; + } + + /// + /// Determines if the parameter can be converted to the parameter + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false + /// + public override bool CanConvertTo(object sourceValue, global::System.Type destinationType) => false; + + /// + /// Converts the parameter to the parameter using and + /// + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// + /// an instance of , or null if there is no suitable conversion. + /// + public override object ConvertFrom(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => ConvertFrom(sourceValue); + + /// + /// Converts the parameter to the parameter using and + /// + /// the value to convert into an instance of . + /// + /// an instance of , or null if there is no suitable conversion. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventHubEventSubscriptionDestination ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventHubEventSubscriptionDestination).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return EventHubEventSubscriptionDestination.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return EventHubEventSubscriptionDestination.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return EventHubEventSubscriptionDestination.DeserializeFromDictionary(sourceValue); + } + return null; + } + + /// NotImplemented -- this will return null + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// will always return null. + public override object ConvertTo(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => null; + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/EventHubEventSubscriptionDestination.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/EventHubEventSubscriptionDestination.cs new file mode 100644 index 000000000000..95a87ef7c7f3 --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/EventHubEventSubscriptionDestination.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.EventGrid.Models.Api20211015Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Extensions; + + /// Information about the event hub destination for an event subscription. + public partial class EventHubEventSubscriptionDestination : + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventHubEventSubscriptionDestination, + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventHubEventSubscriptionDestinationInternal, + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IValidates + { + /// + /// Backing field for Inherited model + /// + private Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionDestination __eventSubscriptionDestination = new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.EventSubscriptionDestination(); + + /// Delivery attribute details. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Inlined)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDeliveryAttributeMapping[] DeliveryAttributeMapping { get => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventHubEventSubscriptionDestinationPropertiesInternal)Property).DeliveryAttributeMapping; set => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventHubEventSubscriptionDestinationPropertiesInternal)Property).DeliveryAttributeMapping = value ?? null /* arrayOf */; } + + /// Type of the endpoint for the event subscription destination. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Inherited)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EndpointType EndpointType { get => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionDestinationInternal)__eventSubscriptionDestination).EndpointType; set => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionDestinationInternal)__eventSubscriptionDestination).EndpointType = value ; } + + /// Internal Acessors for Property + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventHubEventSubscriptionDestinationProperties Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventHubEventSubscriptionDestinationInternal.Property { get => (this._property = this._property ?? new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.EventHubEventSubscriptionDestinationProperties()); set { {_property = value;} } } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventHubEventSubscriptionDestinationProperties _property; + + /// Event Hub Properties of the event subscription destination. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Owned)] + internal Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventHubEventSubscriptionDestinationProperties Property { get => (this._property = this._property ?? new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.EventHubEventSubscriptionDestinationProperties()); set => this._property = value; } + + /// + /// The Azure Resource Id that represents the endpoint of an Event Hub destination of an event subscription. + /// + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Inlined)] + public string ResourceId { get => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventHubEventSubscriptionDestinationPropertiesInternal)Property).ResourceId; set => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventHubEventSubscriptionDestinationPropertiesInternal)Property).ResourceId = value ?? null; } + + /// Creates an new instance. + public EventHubEventSubscriptionDestination() + { + + } + + /// Validates that this object meets the validation criteria. + /// an instance that will receive validation + /// events. + /// + /// A that will be complete when validation is completed. + /// + public async global::System.Threading.Tasks.Task Validate(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener eventListener) + { + await eventListener.AssertNotNull(nameof(__eventSubscriptionDestination), __eventSubscriptionDestination); + await eventListener.AssertObjectIsValid(nameof(__eventSubscriptionDestination), __eventSubscriptionDestination); + } + } + /// Information about the event hub destination for an event subscription. + public partial interface IEventHubEventSubscriptionDestination : + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IJsonSerializable, + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionDestination + { + /// Delivery attribute details. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Delivery attribute details.", + SerializedName = @"deliveryAttributeMappings", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDeliveryAttributeMapping),typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IStaticDeliveryAttributeMapping),typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDynamicDeliveryAttributeMapping) })] + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDeliveryAttributeMapping[] DeliveryAttributeMapping { get; set; } + /// + /// The Azure Resource Id that represents the endpoint of an Event Hub destination of an event subscription. + /// + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The Azure Resource Id that represents the endpoint of an Event Hub destination of an event subscription.", + SerializedName = @"resourceId", + PossibleTypes = new [] { typeof(string) })] + string ResourceId { get; set; } + + } + /// Information about the event hub destination for an event subscription. + internal partial interface IEventHubEventSubscriptionDestinationInternal : + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionDestinationInternal + { + /// Delivery attribute details. + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDeliveryAttributeMapping[] DeliveryAttributeMapping { get; set; } + /// Event Hub Properties of the event subscription destination. + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventHubEventSubscriptionDestinationProperties Property { get; set; } + /// + /// The Azure Resource Id that represents the endpoint of an Event Hub destination of an event subscription. + /// + string ResourceId { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/EventHubEventSubscriptionDestination.json.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/EventHubEventSubscriptionDestination.json.cs new file mode 100644 index 000000000000..7ed5d9ebdf8c --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/EventHubEventSubscriptionDestination.json.cs @@ -0,0 +1,109 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Extensions; + + /// Information about the event hub destination for an event subscription. + public partial class EventHubEventSubscriptionDestination + { + + /// + /// AfterFromJson will be called after the json deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JsonNode that should be deserialized into this object. + + partial void AfterFromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json erialization has finished, allowing customization of the before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JSON container that the serialization result will be placed in. + + partial void AfterToJson(ref Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject container); + + /// + /// BeforeFromJson will be called before the json deserialization has commenced, allowing complete customization of + /// the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JsonNode that should be deserialized into this object. + /// Determines if the rest of the deserialization should be processed, or if the method should return + /// instantly. + + partial void BeforeFromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject json, ref bool returnNow); + + /// + /// BeforeToJson will be called before the json serialization has commenced, allowing complete customization of the + /// object before it is serialized. + /// If you wish to disable the default serialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JSON container that the serialization result will be placed in. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeToJson(ref Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject instance to deserialize from. + internal EventHubEventSubscriptionDestination(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject json) + { + bool returnNow = false; + BeforeFromJson(json, ref returnNow); + if (returnNow) + { + return; + } + __eventSubscriptionDestination = new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.EventSubscriptionDestination(json); + {_property = If( json?.PropertyT("properties"), out var __jsonProperties) ? Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.EventHubEventSubscriptionDestinationProperties.FromJson(__jsonProperties) : Property;} + AfterFromJson(json); + } + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventHubEventSubscriptionDestination. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventHubEventSubscriptionDestination. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventHubEventSubscriptionDestination FromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject json ? new EventHubEventSubscriptionDestination(json) : null; + } + + /// + /// Serializes this instance of into a . + /// + /// The container to serialize this object into. If the caller + /// passes in null, a new instance will be created and returned to the caller. + /// Allows the caller to choose the depth of the serialization. See . + /// + /// a serialized instance of as a . + /// + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject(); + + bool returnNow = false; + BeforeToJson(ref container, ref returnNow); + if (returnNow) + { + return container; + } + __eventSubscriptionDestination?.ToJson(container, serializationMode); + AddIf( null != this._property ? (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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/eventgrid/generated/api/Models/Api20211015Preview/EventHubEventSubscriptionDestinationProperties.PowerShell.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/EventHubEventSubscriptionDestinationProperties.PowerShell.cs new file mode 100644 index 000000000000..af4738e8ac33 --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/EventHubEventSubscriptionDestinationProperties.PowerShell.cs @@ -0,0 +1,155 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell; + + /// The properties for a event hub destination. + [System.ComponentModel.TypeConverter(typeof(EventHubEventSubscriptionDestinationPropertiesTypeConverter))] + public partial class EventHubEventSubscriptionDestinationProperties + { + + /// + /// AfterDeserializeDictionary will be called after the deserialization has finished, allowing customization of the + /// object before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Collections.IDictionary content that should be used. + + partial void AfterDeserializeDictionary(global::System.Collections.IDictionary content); + + /// + /// AfterDeserializePSObject will be called after the deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Management.Automation.PSObject content that should be used. + + partial void AfterDeserializePSObject(global::System.Management.Automation.PSObject content); + + /// + /// BeforeDeserializeDictionary will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Collections.IDictionary content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializeDictionary(global::System.Collections.IDictionary content, ref bool returnNow); + + /// + /// BeforeDeserializePSObject will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializePSObject(global::System.Management.Automation.PSObject content, ref bool returnNow); + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventHubEventSubscriptionDestinationProperties DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new EventHubEventSubscriptionDestinationProperties(content); + } + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventHubEventSubscriptionDestinationProperties DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new EventHubEventSubscriptionDestinationProperties(content); + } + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + internal EventHubEventSubscriptionDestinationProperties(global::System.Collections.IDictionary content) + { + bool returnNow = false; + BeforeDeserializeDictionary(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("ResourceId")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventHubEventSubscriptionDestinationPropertiesInternal)this).ResourceId = (string) content.GetValueForProperty("ResourceId",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventHubEventSubscriptionDestinationPropertiesInternal)this).ResourceId, global::System.Convert.ToString); + } + if (content.Contains("DeliveryAttributeMapping")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventHubEventSubscriptionDestinationPropertiesInternal)this).DeliveryAttributeMapping = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDeliveryAttributeMapping[]) content.GetValueForProperty("DeliveryAttributeMapping",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventHubEventSubscriptionDestinationPropertiesInternal)this).DeliveryAttributeMapping, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.DeliveryAttributeMappingTypeConverter.ConvertFrom)); + } + AfterDeserializeDictionary(content); + } + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + internal EventHubEventSubscriptionDestinationProperties(global::System.Management.Automation.PSObject content) + { + bool returnNow = false; + BeforeDeserializePSObject(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("ResourceId")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventHubEventSubscriptionDestinationPropertiesInternal)this).ResourceId = (string) content.GetValueForProperty("ResourceId",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventHubEventSubscriptionDestinationPropertiesInternal)this).ResourceId, global::System.Convert.ToString); + } + if (content.Contains("DeliveryAttributeMapping")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventHubEventSubscriptionDestinationPropertiesInternal)this).DeliveryAttributeMapping = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDeliveryAttributeMapping[]) content.GetValueForProperty("DeliveryAttributeMapping",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventHubEventSubscriptionDestinationPropertiesInternal)this).DeliveryAttributeMapping, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.DeliveryAttributeMappingTypeConverter.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.EventGrid.Models.Api20211015Preview.IEventHubEventSubscriptionDestinationProperties FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode.Parse(jsonText)); + + /// Serializes this instance to a json string. + + /// a containing this model serialized to JSON text. + public string ToJsonString() => ToJson(null, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// The properties for a event hub destination. + [System.ComponentModel.TypeConverter(typeof(EventHubEventSubscriptionDestinationPropertiesTypeConverter))] + public partial interface IEventHubEventSubscriptionDestinationProperties + + { + + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/EventHubEventSubscriptionDestinationProperties.TypeConverter.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/EventHubEventSubscriptionDestinationProperties.TypeConverter.cs new file mode 100644 index 000000000000..3e92c6cffc62 --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/EventHubEventSubscriptionDestinationProperties.TypeConverter.cs @@ -0,0 +1,150 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class EventHubEventSubscriptionDestinationPropertiesTypeConverter : global::System.Management.Automation.PSTypeConverter + { + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false. + /// + public override bool CanConvertFrom(object sourceValue, global::System.Type destinationType) => CanConvertFrom(sourceValue); + + /// + /// Determines if the converter can convert the parameter to the . + /// + /// the instance to check if it can be converted to the type. + /// + /// true if the instance could be converted to a type, + /// otherwise false + /// + public static bool CanConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return true; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + // we say yest to PSObjects + return true; + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + // we say yest to Hashtables/dictionaries + return true; + } + try + { + if (null != sourceValue.ToJsonString()) + { + return true; + } + } + catch + { + // Not one of our objects + } + try + { + string text = sourceValue.ToString()?.Trim(); + return true == text?.StartsWith("{") && true == text?.EndsWith("}") && Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonType.Object; + } + catch + { + // Doesn't look like it can be treated as JSON + } + return false; + } + + /// + /// Determines if the parameter can be converted to the parameter + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false + /// + public override bool CanConvertTo(object sourceValue, global::System.Type destinationType) => false; + + /// + /// Converts the parameter to the parameter using and + /// + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// + /// an instance of , or null if there is no suitable conversion. + /// + public override object ConvertFrom(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => ConvertFrom(sourceValue); + + /// + /// Converts the parameter to the parameter using and + /// + /// the value to convert into an instance of . + /// + /// an instance of , or null if there is no suitable conversion. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventHubEventSubscriptionDestinationProperties ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventHubEventSubscriptionDestinationProperties).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return EventHubEventSubscriptionDestinationProperties.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return EventHubEventSubscriptionDestinationProperties.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return EventHubEventSubscriptionDestinationProperties.DeserializeFromDictionary(sourceValue); + } + return null; + } + + /// NotImplemented -- this will return null + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// will always return null. + public override object ConvertTo(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => null; + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/EventHubEventSubscriptionDestinationProperties.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/EventHubEventSubscriptionDestinationProperties.cs new file mode 100644 index 000000000000..fb6f452b57df --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/EventHubEventSubscriptionDestinationProperties.cs @@ -0,0 +1,76 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Extensions; + + /// The properties for a event hub destination. + public partial class EventHubEventSubscriptionDestinationProperties : + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventHubEventSubscriptionDestinationProperties, + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventHubEventSubscriptionDestinationPropertiesInternal + { + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDeliveryAttributeMapping[] _deliveryAttributeMapping; + + /// Delivery attribute details. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Owned)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDeliveryAttributeMapping[] DeliveryAttributeMapping { get => this._deliveryAttributeMapping; set => this._deliveryAttributeMapping = value; } + + /// Backing field for property. + private string _resourceId; + + /// + /// The Azure Resource Id that represents the endpoint of an Event Hub destination of an event subscription. + /// + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Owned)] + public string ResourceId { get => this._resourceId; set => this._resourceId = value; } + + /// + /// Creates an new instance. + /// + public EventHubEventSubscriptionDestinationProperties() + { + + } + } + /// The properties for a event hub destination. + public partial interface IEventHubEventSubscriptionDestinationProperties : + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IJsonSerializable + { + /// Delivery attribute details. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Delivery attribute details.", + SerializedName = @"deliveryAttributeMappings", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDeliveryAttributeMapping),typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IStaticDeliveryAttributeMapping),typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDynamicDeliveryAttributeMapping) })] + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDeliveryAttributeMapping[] DeliveryAttributeMapping { get; set; } + /// + /// The Azure Resource Id that represents the endpoint of an Event Hub destination of an event subscription. + /// + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The Azure Resource Id that represents the endpoint of an Event Hub destination of an event subscription.", + SerializedName = @"resourceId", + PossibleTypes = new [] { typeof(string) })] + string ResourceId { get; set; } + + } + /// The properties for a event hub destination. + internal partial interface IEventHubEventSubscriptionDestinationPropertiesInternal + + { + /// Delivery attribute details. + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDeliveryAttributeMapping[] DeliveryAttributeMapping { get; set; } + /// + /// The Azure Resource Id that represents the endpoint of an Event Hub destination of an event subscription. + /// + string ResourceId { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/EventHubEventSubscriptionDestinationProperties.json.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/EventHubEventSubscriptionDestinationProperties.json.cs new file mode 100644 index 000000000000..841f218eb30c --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/EventHubEventSubscriptionDestinationProperties.json.cs @@ -0,0 +1,119 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Extensions; + + /// The properties for a event hub destination. + public partial class EventHubEventSubscriptionDestinationProperties + { + + /// + /// AfterFromJson will be called after the json deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JsonNode that should be deserialized into this object. + + partial void AfterFromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json erialization has finished, allowing customization of the before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JSON container that the serialization result will be placed in. + + partial void AfterToJson(ref Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject container); + + /// + /// BeforeFromJson will be called before the json deserialization has commenced, allowing complete customization of + /// the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JsonNode that should be deserialized into this object. + /// Determines if the rest of the deserialization should be processed, or if the method should return + /// instantly. + + partial void BeforeFromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject json, ref bool returnNow); + + /// + /// BeforeToJson will be called before the json serialization has commenced, allowing complete customization of the + /// object before it is serialized. + /// If you wish to disable the default serialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JSON container that the serialization result will be placed in. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeToJson(ref Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject instance to deserialize from. + internal EventHubEventSubscriptionDestinationProperties(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject json) + { + bool returnNow = false; + BeforeFromJson(json, ref returnNow); + if (returnNow) + { + return; + } + {_resourceId = If( json?.PropertyT("resourceId"), out var __jsonResourceId) ? (string)__jsonResourceId : (string)ResourceId;} + {_deliveryAttributeMapping = If( json?.PropertyT("deliveryAttributeMappings"), out var __jsonDeliveryAttributeMappings) ? If( __jsonDeliveryAttributeMappings as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Models.Api20211015Preview.IDeliveryAttributeMapping) (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.DeliveryAttributeMapping.FromJson(__u) )) ))() : null : DeliveryAttributeMapping;} + AfterFromJson(json); + } + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventHubEventSubscriptionDestinationProperties. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventHubEventSubscriptionDestinationProperties. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventHubEventSubscriptionDestinationProperties FromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject json ? new EventHubEventSubscriptionDestinationProperties(json) : null; + } + + /// + /// Serializes this instance of into a . + /// + /// The container to serialize this object into. If the caller + /// passes in null, a new instance will be created and returned to the caller. + /// Allows the caller to choose the depth of the serialization. See . + /// + /// a serialized instance of as a . + /// + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject(); + + bool returnNow = false; + BeforeToJson(ref container, ref returnNow); + if (returnNow) + { + return container; + } + AddIf( null != (((object)this._resourceId)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonString(this._resourceId.ToString()) : null, "resourceId" ,container.Add ); + if (null != this._deliveryAttributeMapping) + { + var __w = new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.XNodeArray(); + foreach( var __x in this._deliveryAttributeMapping ) + { + AddIf(__x?.ToJson(null, serializationMode) ,__w.Add); + } + container.Add("deliveryAttributeMappings",__w); + } + AfterToJson(ref container); + return container; + } + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/EventSubscription.PowerShell.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/EventSubscription.PowerShell.cs new file mode 100644 index 000000000000..7687587e5e71 --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/EventSubscription.PowerShell.cs @@ -0,0 +1,470 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell; + + /// Event Subscription + [System.ComponentModel.TypeConverter(typeof(EventSubscriptionTypeConverter))] + public partial class EventSubscription + { + + /// + /// AfterDeserializeDictionary will be called after the deserialization has finished, allowing customization of the + /// object before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Collections.IDictionary content that should be used. + + partial void AfterDeserializeDictionary(global::System.Collections.IDictionary content); + + /// + /// AfterDeserializePSObject will be called after the deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Management.Automation.PSObject content that should be used. + + partial void AfterDeserializePSObject(global::System.Management.Automation.PSObject content); + + /// + /// BeforeDeserializeDictionary will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Collections.IDictionary content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializeDictionary(global::System.Collections.IDictionary content, ref bool returnNow); + + /// + /// BeforeDeserializePSObject will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializePSObject(global::System.Management.Automation.PSObject content, ref bool returnNow); + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscription DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new EventSubscription(content); + } + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscription DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new EventSubscription(content); + } + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + internal EventSubscription(global::System.Collections.IDictionary content) + { + bool returnNow = false; + BeforeDeserializeDictionary(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("Property")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionInternal)this).Property = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionProperties) content.GetValueForProperty("Property",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionInternal)this).Property, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.EventSubscriptionPropertiesTypeConverter.ConvertFrom); + } + if (content.Contains("SystemData")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionInternal)this).SystemData = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20.ISystemData) content.GetValueForProperty("SystemData",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionInternal)this).SystemData, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20.SystemDataTypeConverter.ConvertFrom); + } + if (content.Contains("Id")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IResourceInternal)this).Id = (string) content.GetValueForProperty("Id",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IResourceInternal)this).Id, global::System.Convert.ToString); + } + if (content.Contains("Name")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IResourceInternal)this).Name = (string) content.GetValueForProperty("Name",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IResourceInternal)this).Name, global::System.Convert.ToString); + } + if (content.Contains("Type")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IResourceInternal)this).Type = (string) content.GetValueForProperty("Type",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IResourceInternal)this).Type, global::System.Convert.ToString); + } + if (content.Contains("RetryPolicy")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionInternal)this).RetryPolicy = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IRetryPolicy) content.GetValueForProperty("RetryPolicy",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionInternal)this).RetryPolicy, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.RetryPolicyTypeConverter.ConvertFrom); + } + if (content.Contains("SystemDataCreatedBy")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionInternal)this).SystemDataCreatedBy = (string) content.GetValueForProperty("SystemDataCreatedBy",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionInternal)this).SystemDataCreatedBy, global::System.Convert.ToString); + } + if (content.Contains("SystemDataCreatedAt")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionInternal)this).SystemDataCreatedAt = (global::System.DateTime?) content.GetValueForProperty("SystemDataCreatedAt",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionInternal)this).SystemDataCreatedAt, (v) => v is global::System.DateTime _v ? _v : global::System.Xml.XmlConvert.ToDateTime( v.ToString() , global::System.Xml.XmlDateTimeSerializationMode.Unspecified)); + } + if (content.Contains("Destination")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionInternal)this).Destination = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionDestination) content.GetValueForProperty("Destination",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionInternal)this).Destination, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.EventSubscriptionDestinationTypeConverter.ConvertFrom); + } + if (content.Contains("PropertiesDeliveryWithResourceIdentity")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionInternal)this).PropertiesDeliveryWithResourceIdentity = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDeliveryWithResourceIdentity) content.GetValueForProperty("PropertiesDeliveryWithResourceIdentity",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionInternal)this).PropertiesDeliveryWithResourceIdentity, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.DeliveryWithResourceIdentityTypeConverter.ConvertFrom); + } + if (content.Contains("Filter")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionInternal)this).Filter = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionFilter) content.GetValueForProperty("Filter",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionInternal)this).Filter, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.EventSubscriptionFilterTypeConverter.ConvertFrom); + } + if (content.Contains("DeadLetterDestination")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionInternal)this).DeadLetterDestination = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDeadLetterDestination) content.GetValueForProperty("DeadLetterDestination",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionInternal)this).DeadLetterDestination, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.DeadLetterDestinationTypeConverter.ConvertFrom); + } + if (content.Contains("PropertiesDeadLetterWithResourceIdentity")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionInternal)this).PropertiesDeadLetterWithResourceIdentity = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDeadLetterWithResourceIdentity) content.GetValueForProperty("PropertiesDeadLetterWithResourceIdentity",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionInternal)this).PropertiesDeadLetterWithResourceIdentity, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.DeadLetterWithResourceIdentityTypeConverter.ConvertFrom); + } + if (content.Contains("Topic")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionInternal)this).Topic = (string) content.GetValueForProperty("Topic",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionInternal)this).Topic, global::System.Convert.ToString); + } + if (content.Contains("ProvisioningState")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionInternal)this).ProvisioningState = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EventSubscriptionProvisioningState?) content.GetValueForProperty("ProvisioningState",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionInternal)this).ProvisioningState, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EventSubscriptionProvisioningState.CreateFrom); + } + if (content.Contains("Label")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionInternal)this).Label = (string[]) content.GetValueForProperty("Label",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionInternal)this).Label, __y => TypeConverterExtensions.SelectToArray(__y, global::System.Convert.ToString)); + } + if (content.Contains("ExpirationTimeUtc")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionInternal)this).ExpirationTimeUtc = (global::System.DateTime?) content.GetValueForProperty("ExpirationTimeUtc",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionInternal)this).ExpirationTimeUtc, (v) => v is global::System.DateTime _v ? _v : global::System.Xml.XmlConvert.ToDateTime( v.ToString() , global::System.Xml.XmlDateTimeSerializationMode.Unspecified)); + } + if (content.Contains("EventDeliverySchema")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionInternal)this).EventDeliverySchema = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EventDeliverySchema?) content.GetValueForProperty("EventDeliverySchema",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionInternal)this).EventDeliverySchema, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EventDeliverySchema.CreateFrom); + } + if (content.Contains("EndpointType")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionInternal)this).EndpointType = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EndpointType) content.GetValueForProperty("EndpointType",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionInternal)this).EndpointType, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EndpointType.CreateFrom); + } + if (content.Contains("SystemDataCreatedByType")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionInternal)this).SystemDataCreatedByType = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.CreatedByType?) content.GetValueForProperty("SystemDataCreatedByType",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionInternal)this).SystemDataCreatedByType, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.CreatedByType.CreateFrom); + } + if (content.Contains("SystemDataLastModifiedBy")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionInternal)this).SystemDataLastModifiedBy = (string) content.GetValueForProperty("SystemDataLastModifiedBy",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionInternal)this).SystemDataLastModifiedBy, global::System.Convert.ToString); + } + if (content.Contains("SystemDataLastModifiedByType")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionInternal)this).SystemDataLastModifiedByType = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.CreatedByType?) content.GetValueForProperty("SystemDataLastModifiedByType",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionInternal)this).SystemDataLastModifiedByType, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.CreatedByType.CreateFrom); + } + if (content.Contains("SystemDataLastModifiedAt")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionInternal)this).SystemDataLastModifiedAt = (global::System.DateTime?) content.GetValueForProperty("SystemDataLastModifiedAt",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionInternal)this).SystemDataLastModifiedAt, (v) => v is global::System.DateTime _v ? _v : global::System.Xml.XmlConvert.ToDateTime( v.ToString() , global::System.Xml.XmlDateTimeSerializationMode.Unspecified)); + } + if (content.Contains("PropertiesDeliveryWithResourceIdentityIdentity")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionInternal)this).PropertiesDeliveryWithResourceIdentityIdentity = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionIdentity) content.GetValueForProperty("PropertiesDeliveryWithResourceIdentityIdentity",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionInternal)this).PropertiesDeliveryWithResourceIdentityIdentity, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.EventSubscriptionIdentityTypeConverter.ConvertFrom); + } + if (content.Contains("DeliveryWithResourceIdentityDestination")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionInternal)this).DeliveryWithResourceIdentityDestination = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionDestination) content.GetValueForProperty("DeliveryWithResourceIdentityDestination",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionInternal)this).DeliveryWithResourceIdentityDestination, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.EventSubscriptionDestinationTypeConverter.ConvertFrom); + } + if (content.Contains("DeliveryWithResourceIdentityDestinationEndpointType")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionInternal)this).DeliveryWithResourceIdentityDestinationEndpointType = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EndpointType) content.GetValueForProperty("DeliveryWithResourceIdentityDestinationEndpointType",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionInternal)this).DeliveryWithResourceIdentityDestinationEndpointType, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EndpointType.CreateFrom); + } + if (content.Contains("FilterSubjectBeginsWith")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionInternal)this).FilterSubjectBeginsWith = (string) content.GetValueForProperty("FilterSubjectBeginsWith",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionInternal)this).FilterSubjectBeginsWith, global::System.Convert.ToString); + } + if (content.Contains("FilterSubjectEndsWith")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionInternal)this).FilterSubjectEndsWith = (string) content.GetValueForProperty("FilterSubjectEndsWith",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionInternal)this).FilterSubjectEndsWith, global::System.Convert.ToString); + } + if (content.Contains("FilterIncludedEventType")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionInternal)this).FilterIncludedEventType = (string[]) content.GetValueForProperty("FilterIncludedEventType",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionInternal)this).FilterIncludedEventType, __y => TypeConverterExtensions.SelectToArray(__y, global::System.Convert.ToString)); + } + if (content.Contains("FilterIsSubjectCaseSensitive")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionInternal)this).FilterIsSubjectCaseSensitive = (bool?) content.GetValueForProperty("FilterIsSubjectCaseSensitive",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionInternal)this).FilterIsSubjectCaseSensitive, (__y)=> (bool) global::System.Convert.ChangeType(__y, typeof(bool))); + } + if (content.Contains("FilterEnableAdvancedFilteringOnArray")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionInternal)this).FilterEnableAdvancedFilteringOnArray = (bool?) content.GetValueForProperty("FilterEnableAdvancedFilteringOnArray",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionInternal)this).FilterEnableAdvancedFilteringOnArray, (__y)=> (bool) global::System.Convert.ChangeType(__y, typeof(bool))); + } + if (content.Contains("FilterAdvancedFilter")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionInternal)this).FilterAdvancedFilter = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IAdvancedFilter[]) content.GetValueForProperty("FilterAdvancedFilter",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionInternal)this).FilterAdvancedFilter, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.AdvancedFilterTypeConverter.ConvertFrom)); + } + if (content.Contains("RetryPolicyMaxDeliveryAttempt")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionInternal)this).RetryPolicyMaxDeliveryAttempt = (int?) content.GetValueForProperty("RetryPolicyMaxDeliveryAttempt",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionInternal)this).RetryPolicyMaxDeliveryAttempt, (__y)=> (int) global::System.Convert.ChangeType(__y, typeof(int))); + } + if (content.Contains("RetryPolicyEventTimeToLiveInMinute")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionInternal)this).RetryPolicyEventTimeToLiveInMinute = (int?) content.GetValueForProperty("RetryPolicyEventTimeToLiveInMinute",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionInternal)this).RetryPolicyEventTimeToLiveInMinute, (__y)=> (int) global::System.Convert.ChangeType(__y, typeof(int))); + } + if (content.Contains("DeadLetterEndPointTypeEndpointType")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionInternal)this).DeadLetterEndPointTypeEndpointType = (string) content.GetValueForProperty("DeadLetterEndPointTypeEndpointType",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionInternal)this).DeadLetterEndPointTypeEndpointType, global::System.Convert.ToString); + } + if (content.Contains("PropertiesDeadLetterWithResourceIdentityIdentity")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionInternal)this).PropertiesDeadLetterWithResourceIdentityIdentity = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionIdentity) content.GetValueForProperty("PropertiesDeadLetterWithResourceIdentityIdentity",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionInternal)this).PropertiesDeadLetterWithResourceIdentityIdentity, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.EventSubscriptionIdentityTypeConverter.ConvertFrom); + } + if (content.Contains("DeadLetterWithResourceIdentityDeadLetterDestination")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionInternal)this).DeadLetterWithResourceIdentityDeadLetterDestination = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDeadLetterDestination) content.GetValueForProperty("DeadLetterWithResourceIdentityDeadLetterDestination",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionInternal)this).DeadLetterWithResourceIdentityDeadLetterDestination, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.DeadLetterDestinationTypeConverter.ConvertFrom); + } + if (content.Contains("DeliveryWithResourceIdentityType")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionInternal)this).DeliveryWithResourceIdentityType = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EventSubscriptionIdentityType?) content.GetValueForProperty("DeliveryWithResourceIdentityType",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionInternal)this).DeliveryWithResourceIdentityType, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EventSubscriptionIdentityType.CreateFrom); + } + if (content.Contains("DeliveryWithResourceIdentityUserAssignedIdentity")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionInternal)this).DeliveryWithResourceIdentityUserAssignedIdentity = (string) content.GetValueForProperty("DeliveryWithResourceIdentityUserAssignedIdentity",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionInternal)this).DeliveryWithResourceIdentityUserAssignedIdentity, global::System.Convert.ToString); + } + if (content.Contains("DeadLetterWithResourceIdentityType")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionInternal)this).DeadLetterWithResourceIdentityType = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EventSubscriptionIdentityType?) content.GetValueForProperty("DeadLetterWithResourceIdentityType",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionInternal)this).DeadLetterWithResourceIdentityType, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EventSubscriptionIdentityType.CreateFrom); + } + if (content.Contains("DeadLetterWithResourceIdentityUserAssignedIdentity")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionInternal)this).DeadLetterWithResourceIdentityUserAssignedIdentity = (string) content.GetValueForProperty("DeadLetterWithResourceIdentityUserAssignedIdentity",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionInternal)this).DeadLetterWithResourceIdentityUserAssignedIdentity, global::System.Convert.ToString); + } + if (content.Contains("DeadLetterWithResourceIdentityDeadLetterDestinationEndpointType")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionInternal)this).DeadLetterWithResourceIdentityDeadLetterDestinationEndpointType = (string) content.GetValueForProperty("DeadLetterWithResourceIdentityDeadLetterDestinationEndpointType",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionInternal)this).DeadLetterWithResourceIdentityDeadLetterDestinationEndpointType, global::System.Convert.ToString); + } + AfterDeserializeDictionary(content); + } + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + internal EventSubscription(global::System.Management.Automation.PSObject content) + { + bool returnNow = false; + BeforeDeserializePSObject(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("Property")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionInternal)this).Property = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionProperties) content.GetValueForProperty("Property",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionInternal)this).Property, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.EventSubscriptionPropertiesTypeConverter.ConvertFrom); + } + if (content.Contains("SystemData")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionInternal)this).SystemData = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20.ISystemData) content.GetValueForProperty("SystemData",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionInternal)this).SystemData, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20.SystemDataTypeConverter.ConvertFrom); + } + if (content.Contains("Id")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IResourceInternal)this).Id = (string) content.GetValueForProperty("Id",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IResourceInternal)this).Id, global::System.Convert.ToString); + } + if (content.Contains("Name")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IResourceInternal)this).Name = (string) content.GetValueForProperty("Name",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IResourceInternal)this).Name, global::System.Convert.ToString); + } + if (content.Contains("Type")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IResourceInternal)this).Type = (string) content.GetValueForProperty("Type",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IResourceInternal)this).Type, global::System.Convert.ToString); + } + if (content.Contains("RetryPolicy")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionInternal)this).RetryPolicy = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IRetryPolicy) content.GetValueForProperty("RetryPolicy",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionInternal)this).RetryPolicy, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.RetryPolicyTypeConverter.ConvertFrom); + } + if (content.Contains("SystemDataCreatedBy")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionInternal)this).SystemDataCreatedBy = (string) content.GetValueForProperty("SystemDataCreatedBy",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionInternal)this).SystemDataCreatedBy, global::System.Convert.ToString); + } + if (content.Contains("SystemDataCreatedAt")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionInternal)this).SystemDataCreatedAt = (global::System.DateTime?) content.GetValueForProperty("SystemDataCreatedAt",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionInternal)this).SystemDataCreatedAt, (v) => v is global::System.DateTime _v ? _v : global::System.Xml.XmlConvert.ToDateTime( v.ToString() , global::System.Xml.XmlDateTimeSerializationMode.Unspecified)); + } + if (content.Contains("Destination")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionInternal)this).Destination = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionDestination) content.GetValueForProperty("Destination",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionInternal)this).Destination, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.EventSubscriptionDestinationTypeConverter.ConvertFrom); + } + if (content.Contains("PropertiesDeliveryWithResourceIdentity")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionInternal)this).PropertiesDeliveryWithResourceIdentity = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDeliveryWithResourceIdentity) content.GetValueForProperty("PropertiesDeliveryWithResourceIdentity",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionInternal)this).PropertiesDeliveryWithResourceIdentity, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.DeliveryWithResourceIdentityTypeConverter.ConvertFrom); + } + if (content.Contains("Filter")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionInternal)this).Filter = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionFilter) content.GetValueForProperty("Filter",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionInternal)this).Filter, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.EventSubscriptionFilterTypeConverter.ConvertFrom); + } + if (content.Contains("DeadLetterDestination")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionInternal)this).DeadLetterDestination = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDeadLetterDestination) content.GetValueForProperty("DeadLetterDestination",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionInternal)this).DeadLetterDestination, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.DeadLetterDestinationTypeConverter.ConvertFrom); + } + if (content.Contains("PropertiesDeadLetterWithResourceIdentity")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionInternal)this).PropertiesDeadLetterWithResourceIdentity = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDeadLetterWithResourceIdentity) content.GetValueForProperty("PropertiesDeadLetterWithResourceIdentity",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionInternal)this).PropertiesDeadLetterWithResourceIdentity, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.DeadLetterWithResourceIdentityTypeConverter.ConvertFrom); + } + if (content.Contains("Topic")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionInternal)this).Topic = (string) content.GetValueForProperty("Topic",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionInternal)this).Topic, global::System.Convert.ToString); + } + if (content.Contains("ProvisioningState")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionInternal)this).ProvisioningState = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EventSubscriptionProvisioningState?) content.GetValueForProperty("ProvisioningState",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionInternal)this).ProvisioningState, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EventSubscriptionProvisioningState.CreateFrom); + } + if (content.Contains("Label")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionInternal)this).Label = (string[]) content.GetValueForProperty("Label",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionInternal)this).Label, __y => TypeConverterExtensions.SelectToArray(__y, global::System.Convert.ToString)); + } + if (content.Contains("ExpirationTimeUtc")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionInternal)this).ExpirationTimeUtc = (global::System.DateTime?) content.GetValueForProperty("ExpirationTimeUtc",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionInternal)this).ExpirationTimeUtc, (v) => v is global::System.DateTime _v ? _v : global::System.Xml.XmlConvert.ToDateTime( v.ToString() , global::System.Xml.XmlDateTimeSerializationMode.Unspecified)); + } + if (content.Contains("EventDeliverySchema")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionInternal)this).EventDeliverySchema = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EventDeliverySchema?) content.GetValueForProperty("EventDeliverySchema",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionInternal)this).EventDeliverySchema, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EventDeliverySchema.CreateFrom); + } + if (content.Contains("EndpointType")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionInternal)this).EndpointType = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EndpointType) content.GetValueForProperty("EndpointType",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionInternal)this).EndpointType, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EndpointType.CreateFrom); + } + if (content.Contains("SystemDataCreatedByType")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionInternal)this).SystemDataCreatedByType = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.CreatedByType?) content.GetValueForProperty("SystemDataCreatedByType",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionInternal)this).SystemDataCreatedByType, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.CreatedByType.CreateFrom); + } + if (content.Contains("SystemDataLastModifiedBy")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionInternal)this).SystemDataLastModifiedBy = (string) content.GetValueForProperty("SystemDataLastModifiedBy",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionInternal)this).SystemDataLastModifiedBy, global::System.Convert.ToString); + } + if (content.Contains("SystemDataLastModifiedByType")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionInternal)this).SystemDataLastModifiedByType = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.CreatedByType?) content.GetValueForProperty("SystemDataLastModifiedByType",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionInternal)this).SystemDataLastModifiedByType, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.CreatedByType.CreateFrom); + } + if (content.Contains("SystemDataLastModifiedAt")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionInternal)this).SystemDataLastModifiedAt = (global::System.DateTime?) content.GetValueForProperty("SystemDataLastModifiedAt",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionInternal)this).SystemDataLastModifiedAt, (v) => v is global::System.DateTime _v ? _v : global::System.Xml.XmlConvert.ToDateTime( v.ToString() , global::System.Xml.XmlDateTimeSerializationMode.Unspecified)); + } + if (content.Contains("PropertiesDeliveryWithResourceIdentityIdentity")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionInternal)this).PropertiesDeliveryWithResourceIdentityIdentity = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionIdentity) content.GetValueForProperty("PropertiesDeliveryWithResourceIdentityIdentity",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionInternal)this).PropertiesDeliveryWithResourceIdentityIdentity, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.EventSubscriptionIdentityTypeConverter.ConvertFrom); + } + if (content.Contains("DeliveryWithResourceIdentityDestination")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionInternal)this).DeliveryWithResourceIdentityDestination = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionDestination) content.GetValueForProperty("DeliveryWithResourceIdentityDestination",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionInternal)this).DeliveryWithResourceIdentityDestination, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.EventSubscriptionDestinationTypeConverter.ConvertFrom); + } + if (content.Contains("DeliveryWithResourceIdentityDestinationEndpointType")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionInternal)this).DeliveryWithResourceIdentityDestinationEndpointType = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EndpointType) content.GetValueForProperty("DeliveryWithResourceIdentityDestinationEndpointType",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionInternal)this).DeliveryWithResourceIdentityDestinationEndpointType, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EndpointType.CreateFrom); + } + if (content.Contains("FilterSubjectBeginsWith")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionInternal)this).FilterSubjectBeginsWith = (string) content.GetValueForProperty("FilterSubjectBeginsWith",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionInternal)this).FilterSubjectBeginsWith, global::System.Convert.ToString); + } + if (content.Contains("FilterSubjectEndsWith")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionInternal)this).FilterSubjectEndsWith = (string) content.GetValueForProperty("FilterSubjectEndsWith",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionInternal)this).FilterSubjectEndsWith, global::System.Convert.ToString); + } + if (content.Contains("FilterIncludedEventType")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionInternal)this).FilterIncludedEventType = (string[]) content.GetValueForProperty("FilterIncludedEventType",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionInternal)this).FilterIncludedEventType, __y => TypeConverterExtensions.SelectToArray(__y, global::System.Convert.ToString)); + } + if (content.Contains("FilterIsSubjectCaseSensitive")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionInternal)this).FilterIsSubjectCaseSensitive = (bool?) content.GetValueForProperty("FilterIsSubjectCaseSensitive",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionInternal)this).FilterIsSubjectCaseSensitive, (__y)=> (bool) global::System.Convert.ChangeType(__y, typeof(bool))); + } + if (content.Contains("FilterEnableAdvancedFilteringOnArray")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionInternal)this).FilterEnableAdvancedFilteringOnArray = (bool?) content.GetValueForProperty("FilterEnableAdvancedFilteringOnArray",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionInternal)this).FilterEnableAdvancedFilteringOnArray, (__y)=> (bool) global::System.Convert.ChangeType(__y, typeof(bool))); + } + if (content.Contains("FilterAdvancedFilter")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionInternal)this).FilterAdvancedFilter = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IAdvancedFilter[]) content.GetValueForProperty("FilterAdvancedFilter",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionInternal)this).FilterAdvancedFilter, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.AdvancedFilterTypeConverter.ConvertFrom)); + } + if (content.Contains("RetryPolicyMaxDeliveryAttempt")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionInternal)this).RetryPolicyMaxDeliveryAttempt = (int?) content.GetValueForProperty("RetryPolicyMaxDeliveryAttempt",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionInternal)this).RetryPolicyMaxDeliveryAttempt, (__y)=> (int) global::System.Convert.ChangeType(__y, typeof(int))); + } + if (content.Contains("RetryPolicyEventTimeToLiveInMinute")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionInternal)this).RetryPolicyEventTimeToLiveInMinute = (int?) content.GetValueForProperty("RetryPolicyEventTimeToLiveInMinute",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionInternal)this).RetryPolicyEventTimeToLiveInMinute, (__y)=> (int) global::System.Convert.ChangeType(__y, typeof(int))); + } + if (content.Contains("DeadLetterEndPointTypeEndpointType")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionInternal)this).DeadLetterEndPointTypeEndpointType = (string) content.GetValueForProperty("DeadLetterEndPointTypeEndpointType",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionInternal)this).DeadLetterEndPointTypeEndpointType, global::System.Convert.ToString); + } + if (content.Contains("PropertiesDeadLetterWithResourceIdentityIdentity")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionInternal)this).PropertiesDeadLetterWithResourceIdentityIdentity = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionIdentity) content.GetValueForProperty("PropertiesDeadLetterWithResourceIdentityIdentity",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionInternal)this).PropertiesDeadLetterWithResourceIdentityIdentity, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.EventSubscriptionIdentityTypeConverter.ConvertFrom); + } + if (content.Contains("DeadLetterWithResourceIdentityDeadLetterDestination")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionInternal)this).DeadLetterWithResourceIdentityDeadLetterDestination = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDeadLetterDestination) content.GetValueForProperty("DeadLetterWithResourceIdentityDeadLetterDestination",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionInternal)this).DeadLetterWithResourceIdentityDeadLetterDestination, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.DeadLetterDestinationTypeConverter.ConvertFrom); + } + if (content.Contains("DeliveryWithResourceIdentityType")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionInternal)this).DeliveryWithResourceIdentityType = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EventSubscriptionIdentityType?) content.GetValueForProperty("DeliveryWithResourceIdentityType",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionInternal)this).DeliveryWithResourceIdentityType, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EventSubscriptionIdentityType.CreateFrom); + } + if (content.Contains("DeliveryWithResourceIdentityUserAssignedIdentity")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionInternal)this).DeliveryWithResourceIdentityUserAssignedIdentity = (string) content.GetValueForProperty("DeliveryWithResourceIdentityUserAssignedIdentity",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionInternal)this).DeliveryWithResourceIdentityUserAssignedIdentity, global::System.Convert.ToString); + } + if (content.Contains("DeadLetterWithResourceIdentityType")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionInternal)this).DeadLetterWithResourceIdentityType = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EventSubscriptionIdentityType?) content.GetValueForProperty("DeadLetterWithResourceIdentityType",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionInternal)this).DeadLetterWithResourceIdentityType, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EventSubscriptionIdentityType.CreateFrom); + } + if (content.Contains("DeadLetterWithResourceIdentityUserAssignedIdentity")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionInternal)this).DeadLetterWithResourceIdentityUserAssignedIdentity = (string) content.GetValueForProperty("DeadLetterWithResourceIdentityUserAssignedIdentity",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionInternal)this).DeadLetterWithResourceIdentityUserAssignedIdentity, global::System.Convert.ToString); + } + if (content.Contains("DeadLetterWithResourceIdentityDeadLetterDestinationEndpointType")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionInternal)this).DeadLetterWithResourceIdentityDeadLetterDestinationEndpointType = (string) content.GetValueForProperty("DeadLetterWithResourceIdentityDeadLetterDestinationEndpointType",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionInternal)this).DeadLetterWithResourceIdentityDeadLetterDestinationEndpointType, 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.EventGrid.Models.Api20211015Preview.IEventSubscription FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode.Parse(jsonText)); + + /// Serializes this instance to a json string. + + /// a containing this model serialized to JSON text. + public string ToJsonString() => ToJson(null, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// Event Subscription + [System.ComponentModel.TypeConverter(typeof(EventSubscriptionTypeConverter))] + public partial interface IEventSubscription + + { + + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/EventSubscription.TypeConverter.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/EventSubscription.TypeConverter.cs new file mode 100644 index 000000000000..5af36c9015de --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/EventSubscription.TypeConverter.cs @@ -0,0 +1,146 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class EventSubscriptionTypeConverter : global::System.Management.Automation.PSTypeConverter + { + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false. + /// + public override bool CanConvertFrom(object sourceValue, global::System.Type destinationType) => CanConvertFrom(sourceValue); + + /// + /// Determines if the converter can convert the parameter to the . + /// + /// the instance to check if it can be converted to the type. + /// + /// true if the instance could be converted to a type, otherwise false + /// + public static bool CanConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return true; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + // we say yest to PSObjects + return true; + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + // we say yest to Hashtables/dictionaries + return true; + } + try + { + if (null != sourceValue.ToJsonString()) + { + return true; + } + } + catch + { + // Not one of our objects + } + try + { + string text = sourceValue.ToString()?.Trim(); + return true == text?.StartsWith("{") && true == text?.EndsWith("}") && Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonType.Object; + } + catch + { + // Doesn't look like it can be treated as JSON + } + return false; + } + + /// + /// Determines if the parameter can be converted to the parameter + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false + /// + public override bool CanConvertTo(object sourceValue, global::System.Type destinationType) => false; + + /// + /// Converts the parameter to the parameter using and + /// + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// + /// an instance of , or null if there is no suitable conversion. + /// + public override object ConvertFrom(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => ConvertFrom(sourceValue); + + /// + /// Converts the parameter to the parameter using and + /// + /// the value to convert into an instance of . + /// + /// an instance of , or null if there is no suitable conversion. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscription ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscription).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return EventSubscription.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return EventSubscription.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return EventSubscription.DeserializeFromDictionary(sourceValue); + } + return null; + } + + /// NotImplemented -- this will return null + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// will always return null. + public override object ConvertTo(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => null; + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/EventSubscription.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/EventSubscription.cs new file mode 100644 index 000000000000..f9ab0dc5c088 --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/EventSubscription.cs @@ -0,0 +1,632 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Extensions; + + /// Event Subscription + public partial class EventSubscription : + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscription, + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionInternal, + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IValidates + { + /// + /// Backing field for Inherited model + /// + private Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IResource __resource = new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.Resource(); + + /// Type of the endpoint for the dead letter destination + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Inlined)] + public string DeadLetterEndPointTypeEndpointType { get => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionPropertiesInternal)Property).DeadLetterEndPointTypeEndpointType; } + + /// Type of the endpoint for the dead letter destination + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Inlined)] + public string DeadLetterWithResourceIdentityDeadLetterDestinationEndpointType { get => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionPropertiesInternal)Property).DeadLetterWithResourceIdentityDeadLetterDestinationEndpointType; } + + /// + /// The type of managed identity used. The type 'SystemAssigned, UserAssigned' includes both an implicitly created identity + /// and a set of user-assigned identities. The type 'None' will remove any identity. + /// + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Inlined)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EventSubscriptionIdentityType? DeadLetterWithResourceIdentityType { get => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionPropertiesInternal)Property).DeadLetterWithResourceIdentityType; set => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionPropertiesInternal)Property).DeadLetterWithResourceIdentityType = value ?? ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EventSubscriptionIdentityType)""); } + + /// The user identity associated with the resource. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Inlined)] + public string DeadLetterWithResourceIdentityUserAssignedIdentity { get => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionPropertiesInternal)Property).DeadLetterWithResourceIdentityUserAssignedIdentity; set => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionPropertiesInternal)Property).DeadLetterWithResourceIdentityUserAssignedIdentity = value ?? null; } + + /// Type of the endpoint for the event subscription destination. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Inlined)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EndpointType? DeliveryWithResourceIdentityDestinationEndpointType { get => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionPropertiesInternal)Property).DeliveryWithResourceIdentityDestinationEndpointType; set => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionPropertiesInternal)Property).DeliveryWithResourceIdentityDestinationEndpointType = value ?? ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EndpointType)""); } + + /// + /// The type of managed identity used. The type 'SystemAssigned, UserAssigned' includes both an implicitly created identity + /// and a set of user-assigned identities. The type 'None' will remove any identity. + /// + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Inlined)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EventSubscriptionIdentityType? DeliveryWithResourceIdentityType { get => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionPropertiesInternal)Property).DeliveryWithResourceIdentityType; set => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionPropertiesInternal)Property).DeliveryWithResourceIdentityType = value ?? ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EventSubscriptionIdentityType)""); } + + /// The user identity associated with the resource. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Inlined)] + public string DeliveryWithResourceIdentityUserAssignedIdentity { get => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionPropertiesInternal)Property).DeliveryWithResourceIdentityUserAssignedIdentity; set => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionPropertiesInternal)Property).DeliveryWithResourceIdentityUserAssignedIdentity = value ?? null; } + + /// Type of the endpoint for the event subscription destination. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Inlined)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EndpointType? EndpointType { get => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionPropertiesInternal)Property).EndpointType; set => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionPropertiesInternal)Property).EndpointType = value ?? ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EndpointType)""); } + + /// The event delivery schema for the event subscription. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Inlined)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EventDeliverySchema? EventDeliverySchema { get => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionPropertiesInternal)Property).EventDeliverySchema; set => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionPropertiesInternal)Property).EventDeliverySchema = value ?? ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EventDeliverySchema)""); } + + /// Expiration time of the event subscription. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Inlined)] + public global::System.DateTime? ExpirationTimeUtc { get => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionPropertiesInternal)Property).ExpirationTimeUtc; set => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionPropertiesInternal)Property).ExpirationTimeUtc = value ?? default(global::System.DateTime); } + + /// An array of advanced filters that are used for filtering event subscriptions. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Inlined)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IAdvancedFilter[] FilterAdvancedFilter { get => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionPropertiesInternal)Property).FilterAdvancedFilter; set => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionPropertiesInternal)Property).FilterAdvancedFilter = value ?? null /* arrayOf */; } + + /// + /// Allows advanced filters to be evaluated against an array of values instead of expecting a singular value. + /// + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Inlined)] + public bool? FilterEnableAdvancedFilteringOnArray { get => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionPropertiesInternal)Property).FilterEnableAdvancedFilteringOnArray; set => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionPropertiesInternal)Property).FilterEnableAdvancedFilteringOnArray = value ?? default(bool); } + + /// + /// A list of applicable event types that need to be part of the event subscription. If it is desired to subscribe to all + /// default event types, set the IncludedEventTypes to null. + /// + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Inlined)] + public string[] FilterIncludedEventType { get => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionPropertiesInternal)Property).FilterIncludedEventType; set => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionPropertiesInternal)Property).FilterIncludedEventType = value ?? null /* arrayOf */; } + + /// + /// Specifies if the SubjectBeginsWith and SubjectEndsWith properties of the filter + /// should be compared in a case sensitive manner. + /// + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Inlined)] + public bool? FilterIsSubjectCaseSensitive { get => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionPropertiesInternal)Property).FilterIsSubjectCaseSensitive; set => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionPropertiesInternal)Property).FilterIsSubjectCaseSensitive = value ?? default(bool); } + + /// + /// An optional string to filter events for an event subscription based on a resource path prefix. + /// The format of this depends on the publisher of the events. + /// Wildcard characters are not supported in this path. + /// + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Inlined)] + public string FilterSubjectBeginsWith { get => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionPropertiesInternal)Property).FilterSubjectBeginsWith; set => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionPropertiesInternal)Property).FilterSubjectBeginsWith = value ?? null; } + + /// + /// An optional string to filter events for an event subscription based on a resource path suffix. + /// Wildcard characters are not supported in this path. + /// + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Inlined)] + public string FilterSubjectEndsWith { get => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionPropertiesInternal)Property).FilterSubjectEndsWith; set => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionPropertiesInternal)Property).FilterSubjectEndsWith = value ?? null; } + + /// Fully qualified identifier of the resource. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Inherited)] + public string Id { get => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IResourceInternal)__resource).Id; } + + /// List of user defined labels. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Inlined)] + public string[] Label { get => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionPropertiesInternal)Property).Label; set => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionPropertiesInternal)Property).Label = value ?? null /* arrayOf */; } + + /// Internal Acessors for DeadLetterDestination + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDeadLetterDestination Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionInternal.DeadLetterDestination { get => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionPropertiesInternal)Property).DeadLetterDestination; set => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionPropertiesInternal)Property).DeadLetterDestination = value; } + + /// Internal Acessors for DeadLetterEndPointTypeEndpointType + string Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionInternal.DeadLetterEndPointTypeEndpointType { get => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionPropertiesInternal)Property).DeadLetterEndPointTypeEndpointType; set => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionPropertiesInternal)Property).DeadLetterEndPointTypeEndpointType = value; } + + /// Internal Acessors for DeadLetterWithResourceIdentityDeadLetterDestination + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDeadLetterDestination Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionInternal.DeadLetterWithResourceIdentityDeadLetterDestination { get => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionPropertiesInternal)Property).DeadLetterWithResourceIdentityDeadLetterDestination; set => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionPropertiesInternal)Property).DeadLetterWithResourceIdentityDeadLetterDestination = value; } + + /// + /// Internal Acessors for DeadLetterWithResourceIdentityDeadLetterDestinationEndpointType + /// + string Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionInternal.DeadLetterWithResourceIdentityDeadLetterDestinationEndpointType { get => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionPropertiesInternal)Property).DeadLetterWithResourceIdentityDeadLetterDestinationEndpointType; set => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionPropertiesInternal)Property).DeadLetterWithResourceIdentityDeadLetterDestinationEndpointType = value; } + + /// Internal Acessors for DeliveryWithResourceIdentityDestination + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionDestination Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionInternal.DeliveryWithResourceIdentityDestination { get => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionPropertiesInternal)Property).DeliveryWithResourceIdentityDestination; set => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionPropertiesInternal)Property).DeliveryWithResourceIdentityDestination = value; } + + /// Internal Acessors for Destination + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionDestination Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionInternal.Destination { get => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionPropertiesInternal)Property).Destination; set => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionPropertiesInternal)Property).Destination = value; } + + /// Internal Acessors for Filter + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionFilter Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionInternal.Filter { get => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionPropertiesInternal)Property).Filter; set => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionPropertiesInternal)Property).Filter = value; } + + /// Internal Acessors for PropertiesDeadLetterWithResourceIdentity + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDeadLetterWithResourceIdentity Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionInternal.PropertiesDeadLetterWithResourceIdentity { get => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionPropertiesInternal)Property).DeadLetterWithResourceIdentity; set => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionPropertiesInternal)Property).DeadLetterWithResourceIdentity = value; } + + /// Internal Acessors for PropertiesDeadLetterWithResourceIdentityIdentity + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionIdentity Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionInternal.PropertiesDeadLetterWithResourceIdentityIdentity { get => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionPropertiesInternal)Property).DeadLetterWithResourceIdentityIdentity; set => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionPropertiesInternal)Property).DeadLetterWithResourceIdentityIdentity = value; } + + /// Internal Acessors for PropertiesDeliveryWithResourceIdentity + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDeliveryWithResourceIdentity Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionInternal.PropertiesDeliveryWithResourceIdentity { get => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionPropertiesInternal)Property).DeliveryWithResourceIdentity; set => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionPropertiesInternal)Property).DeliveryWithResourceIdentity = value; } + + /// Internal Acessors for PropertiesDeliveryWithResourceIdentityIdentity + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionIdentity Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionInternal.PropertiesDeliveryWithResourceIdentityIdentity { get => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionPropertiesInternal)Property).DeliveryWithResourceIdentityIdentity; set => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionPropertiesInternal)Property).DeliveryWithResourceIdentityIdentity = value; } + + /// Internal Acessors for Property + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionProperties Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionInternal.Property { get => (this._property = this._property ?? new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.EventSubscriptionProperties()); set { {_property = value;} } } + + /// Internal Acessors for ProvisioningState + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EventSubscriptionProvisioningState? Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionInternal.ProvisioningState { get => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionPropertiesInternal)Property).ProvisioningState; set => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionPropertiesInternal)Property).ProvisioningState = value; } + + /// Internal Acessors for RetryPolicy + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IRetryPolicy Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionInternal.RetryPolicy { get => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionPropertiesInternal)Property).RetryPolicy; set => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionPropertiesInternal)Property).RetryPolicy = value; } + + /// Internal Acessors for SystemData + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20.ISystemData Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionInternal.SystemData { get => (this._systemData = this._systemData ?? new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20.SystemData()); set { {_systemData = value;} } } + + /// Internal Acessors for Topic + string Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionInternal.Topic { get => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionPropertiesInternal)Property).Topic; set => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionPropertiesInternal)Property).Topic = value; } + + /// Internal Acessors for Id + string Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IResourceInternal.Id { get => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IResourceInternal)__resource).Id; set => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IResourceInternal)__resource).Id = value; } + + /// Internal Acessors for Name + string Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IResourceInternal.Name { get => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IResourceInternal)__resource).Name; set => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IResourceInternal)__resource).Name = value; } + + /// Internal Acessors for Type + string Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IResourceInternal.Type { get => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IResourceInternal)__resource).Type; set => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IResourceInternal)__resource).Type = value; } + + /// Name of the resource. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Inherited)] + public string Name { get => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IResourceInternal)__resource).Name; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionProperties _property; + + /// Properties of the event subscription. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Owned)] + internal Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionProperties Property { get => (this._property = this._property ?? new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.EventSubscriptionProperties()); set => this._property = value; } + + /// Provisioning state of the event subscription. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Inlined)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EventSubscriptionProvisioningState? ProvisioningState { get => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionPropertiesInternal)Property).ProvisioningState; } + + /// Time To Live (in minutes) for events. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Inlined)] + public int? RetryPolicyEventTimeToLiveInMinute { get => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionPropertiesInternal)Property).RetryPolicyEventTimeToLiveInMinute; set => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionPropertiesInternal)Property).RetryPolicyEventTimeToLiveInMinute = value ?? default(int); } + + /// Maximum number of delivery retry attempts for events. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Inlined)] + public int? RetryPolicyMaxDeliveryAttempt { get => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionPropertiesInternal)Property).RetryPolicyMaxDeliveryAttempt; set => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionPropertiesInternal)Property).RetryPolicyMaxDeliveryAttempt = value ?? default(int); } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20.ISystemData _systemData; + + /// The system metadata relating to Event Subscription resource. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Owned)] + internal Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20.ISystemData SystemData { get => (this._systemData = this._systemData ?? new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20.SystemData()); } + + /// The timestamp of resource creation (UTC). + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Inlined)] + public global::System.DateTime? SystemDataCreatedAt { get => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20.ISystemDataInternal)SystemData).CreatedAt; set => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20.ISystemDataInternal)SystemData).CreatedAt = value ?? default(global::System.DateTime); } + + /// The identity that created the resource. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Inlined)] + public string SystemDataCreatedBy { get => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20.ISystemDataInternal)SystemData).CreatedBy; set => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20.ISystemDataInternal)SystemData).CreatedBy = value ?? null; } + + /// The type of identity that created the resource. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Inlined)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.CreatedByType? SystemDataCreatedByType { get => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20.ISystemDataInternal)SystemData).CreatedByType; set => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20.ISystemDataInternal)SystemData).CreatedByType = value ?? ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.CreatedByType)""); } + + /// The timestamp of resource last modification (UTC) + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Inlined)] + public global::System.DateTime? SystemDataLastModifiedAt { get => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20.ISystemDataInternal)SystemData).LastModifiedAt; set => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20.ISystemDataInternal)SystemData).LastModifiedAt = value ?? default(global::System.DateTime); } + + /// The identity that last modified the resource. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Inlined)] + public string SystemDataLastModifiedBy { get => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20.ISystemDataInternal)SystemData).LastModifiedBy; set => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20.ISystemDataInternal)SystemData).LastModifiedBy = value ?? null; } + + /// The type of identity that last modified the resource. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Inlined)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.CreatedByType? SystemDataLastModifiedByType { get => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20.ISystemDataInternal)SystemData).LastModifiedByType; set => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20.ISystemDataInternal)SystemData).LastModifiedByType = value ?? ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.CreatedByType)""); } + + /// Name of the topic of the event subscription. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Inlined)] + public string Topic { get => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionPropertiesInternal)Property).Topic; } + + /// Type of the resource. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Inherited)] + public string Type { get => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IResourceInternal)__resource).Type; } + + /// Creates an new instance. + public EventSubscription() + { + + } + + /// Validates that this object meets the validation criteria. + /// an instance that will receive validation + /// events. + /// + /// A that will be complete when validation is completed. + /// + public async global::System.Threading.Tasks.Task Validate(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener eventListener) + { + await eventListener.AssertNotNull(nameof(__resource), __resource); + await eventListener.AssertObjectIsValid(nameof(__resource), __resource); + } + } + /// Event Subscription + public partial interface IEventSubscription : + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IJsonSerializable, + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IResource + { + /// Type of the endpoint for the dead letter destination + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"Type of the endpoint for the dead letter destination", + SerializedName = @"endpointType", + PossibleTypes = new [] { typeof(string) })] + string DeadLetterEndPointTypeEndpointType { get; } + /// Type of the endpoint for the dead letter destination + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"Type of the endpoint for the dead letter destination", + SerializedName = @"endpointType", + PossibleTypes = new [] { typeof(string) })] + string DeadLetterWithResourceIdentityDeadLetterDestinationEndpointType { get; } + /// + /// The type of managed identity used. The type 'SystemAssigned, UserAssigned' includes both an implicitly created identity + /// and a set of user-assigned identities. The type 'None' will remove any identity. + /// + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The type of managed identity used. The type 'SystemAssigned, UserAssigned' includes both an implicitly created identity and a set of user-assigned identities. The type 'None' will remove any identity.", + SerializedName = @"type", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EventSubscriptionIdentityType) })] + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EventSubscriptionIdentityType? DeadLetterWithResourceIdentityType { get; set; } + /// The user identity associated with the resource. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The user identity associated with the resource.", + SerializedName = @"userAssignedIdentity", + PossibleTypes = new [] { typeof(string) })] + string DeadLetterWithResourceIdentityUserAssignedIdentity { get; set; } + /// Type of the endpoint for the event subscription destination. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Type of the endpoint for the event subscription destination.", + SerializedName = @"endpointType", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EndpointType) })] + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EndpointType? DeliveryWithResourceIdentityDestinationEndpointType { get; set; } + /// + /// The type of managed identity used. The type 'SystemAssigned, UserAssigned' includes both an implicitly created identity + /// and a set of user-assigned identities. The type 'None' will remove any identity. + /// + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The type of managed identity used. The type 'SystemAssigned, UserAssigned' includes both an implicitly created identity and a set of user-assigned identities. The type 'None' will remove any identity.", + SerializedName = @"type", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EventSubscriptionIdentityType) })] + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EventSubscriptionIdentityType? DeliveryWithResourceIdentityType { get; set; } + /// The user identity associated with the resource. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The user identity associated with the resource.", + SerializedName = @"userAssignedIdentity", + PossibleTypes = new [] { typeof(string) })] + string DeliveryWithResourceIdentityUserAssignedIdentity { get; set; } + /// Type of the endpoint for the event subscription destination. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Type of the endpoint for the event subscription destination.", + SerializedName = @"endpointType", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EndpointType) })] + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EndpointType? EndpointType { get; set; } + /// The event delivery schema for the event subscription. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The event delivery schema for the event subscription.", + SerializedName = @"eventDeliverySchema", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EventDeliverySchema) })] + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EventDeliverySchema? EventDeliverySchema { get; set; } + /// Expiration time of the event subscription. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Expiration time of the event subscription.", + SerializedName = @"expirationTimeUtc", + PossibleTypes = new [] { typeof(global::System.DateTime) })] + global::System.DateTime? ExpirationTimeUtc { get; set; } + /// An array of advanced filters that are used for filtering event subscriptions. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"An array of advanced filters that are used for filtering event subscriptions.", + SerializedName = @"advancedFilters", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IAdvancedFilter) })] + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IAdvancedFilter[] FilterAdvancedFilter { get; set; } + /// + /// Allows advanced filters to be evaluated against an array of values instead of expecting a singular value. + /// + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Allows advanced filters to be evaluated against an array of values instead of expecting a singular value.", + SerializedName = @"enableAdvancedFilteringOnArrays", + PossibleTypes = new [] { typeof(bool) })] + bool? FilterEnableAdvancedFilteringOnArray { get; set; } + /// + /// A list of applicable event types that need to be part of the event subscription. If it is desired to subscribe to all + /// default event types, set the IncludedEventTypes to null. + /// + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"A list of applicable event types that need to be part of the event subscription. If it is desired to subscribe to all default event types, set the IncludedEventTypes to null.", + SerializedName = @"includedEventTypes", + PossibleTypes = new [] { typeof(string) })] + string[] FilterIncludedEventType { get; set; } + /// + /// Specifies if the SubjectBeginsWith and SubjectEndsWith properties of the filter + /// should be compared in a case sensitive manner. + /// + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Specifies if the SubjectBeginsWith and SubjectEndsWith properties of the filter + should be compared in a case sensitive manner.", + SerializedName = @"isSubjectCaseSensitive", + PossibleTypes = new [] { typeof(bool) })] + bool? FilterIsSubjectCaseSensitive { get; set; } + /// + /// An optional string to filter events for an event subscription based on a resource path prefix. + /// The format of this depends on the publisher of the events. + /// Wildcard characters are not supported in this path. + /// + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"An optional string to filter events for an event subscription based on a resource path prefix. + The format of this depends on the publisher of the events. + Wildcard characters are not supported in this path.", + SerializedName = @"subjectBeginsWith", + PossibleTypes = new [] { typeof(string) })] + string FilterSubjectBeginsWith { get; set; } + /// + /// An optional string to filter events for an event subscription based on a resource path suffix. + /// Wildcard characters are not supported in this path. + /// + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"An optional string to filter events for an event subscription based on a resource path suffix. + Wildcard characters are not supported in this path.", + SerializedName = @"subjectEndsWith", + PossibleTypes = new [] { typeof(string) })] + string FilterSubjectEndsWith { get; set; } + /// List of user defined labels. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"List of user defined labels.", + SerializedName = @"labels", + PossibleTypes = new [] { typeof(string) })] + string[] Label { get; set; } + /// Provisioning state of the event subscription. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"Provisioning state of the event subscription.", + SerializedName = @"provisioningState", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EventSubscriptionProvisioningState) })] + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EventSubscriptionProvisioningState? ProvisioningState { get; } + /// Time To Live (in minutes) for events. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Time To Live (in minutes) for events.", + SerializedName = @"eventTimeToLiveInMinutes", + PossibleTypes = new [] { typeof(int) })] + int? RetryPolicyEventTimeToLiveInMinute { get; set; } + /// Maximum number of delivery retry attempts for events. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Maximum number of delivery retry attempts for events.", + SerializedName = @"maxDeliveryAttempts", + PossibleTypes = new [] { typeof(int) })] + int? RetryPolicyMaxDeliveryAttempt { get; set; } + /// The timestamp of resource creation (UTC). + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.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.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The type of identity that created the resource.", + SerializedName = @"createdByType", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.CreatedByType) })] + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.CreatedByType? SystemDataCreatedByType { get; set; } + /// The timestamp of resource last modification (UTC) + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.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.EventGrid.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.EventGrid.Support.CreatedByType) })] + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.CreatedByType? SystemDataLastModifiedByType { get; set; } + /// Name of the topic of the event subscription. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"Name of the topic of the event subscription.", + SerializedName = @"topic", + PossibleTypes = new [] { typeof(string) })] + string Topic { get; } + + } + /// Event Subscription + internal partial interface IEventSubscriptionInternal : + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IResourceInternal + { + /// + /// The dead letter destination of the event subscription. Any event that cannot be delivered to its' destination is sent + /// to the dead letter destination. + /// Uses Azure Event Grid's identity to acquire the authentication tokens being used during delivery / dead-lettering. + /// + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDeadLetterDestination DeadLetterDestination { get; set; } + /// Type of the endpoint for the dead letter destination + string DeadLetterEndPointTypeEndpointType { get; set; } + /// + /// Information about the destination where events have to be delivered for the event subscription. + /// Uses the managed identity setup on the parent resource (namely, topic or domain) to acquire the authentication tokens + /// being used during delivery / dead-lettering. + /// + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDeadLetterDestination DeadLetterWithResourceIdentityDeadLetterDestination { get; set; } + /// Type of the endpoint for the dead letter destination + string DeadLetterWithResourceIdentityDeadLetterDestinationEndpointType { get; set; } + /// + /// The type of managed identity used. The type 'SystemAssigned, UserAssigned' includes both an implicitly created identity + /// and a set of user-assigned identities. The type 'None' will remove any identity. + /// + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EventSubscriptionIdentityType? DeadLetterWithResourceIdentityType { get; set; } + /// The user identity associated with the resource. + string DeadLetterWithResourceIdentityUserAssignedIdentity { get; set; } + /// + /// Information about the destination where events have to be delivered for the event subscription. + /// Uses Azure Event Grid's identity to acquire the authentication tokens being used during delivery / dead-lettering. + /// + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionDestination DeliveryWithResourceIdentityDestination { get; set; } + /// Type of the endpoint for the event subscription destination. + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EndpointType? DeliveryWithResourceIdentityDestinationEndpointType { get; set; } + /// + /// The type of managed identity used. The type 'SystemAssigned, UserAssigned' includes both an implicitly created identity + /// and a set of user-assigned identities. The type 'None' will remove any identity. + /// + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EventSubscriptionIdentityType? DeliveryWithResourceIdentityType { get; set; } + /// The user identity associated with the resource. + string DeliveryWithResourceIdentityUserAssignedIdentity { get; set; } + /// + /// Information about the destination where events have to be delivered for the event subscription. + /// Uses Azure Event Grid's identity to acquire the authentication tokens being used during delivery / dead-lettering. + /// + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionDestination Destination { get; set; } + /// Type of the endpoint for the event subscription destination. + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EndpointType? EndpointType { get; set; } + /// The event delivery schema for the event subscription. + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EventDeliverySchema? EventDeliverySchema { get; set; } + /// Expiration time of the event subscription. + global::System.DateTime? ExpirationTimeUtc { get; set; } + /// Information about the filter for the event subscription. + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionFilter Filter { get; set; } + /// An array of advanced filters that are used for filtering event subscriptions. + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IAdvancedFilter[] FilterAdvancedFilter { get; set; } + /// + /// Allows advanced filters to be evaluated against an array of values instead of expecting a singular value. + /// + bool? FilterEnableAdvancedFilteringOnArray { get; set; } + /// + /// A list of applicable event types that need to be part of the event subscription. If it is desired to subscribe to all + /// default event types, set the IncludedEventTypes to null. + /// + string[] FilterIncludedEventType { get; set; } + /// + /// Specifies if the SubjectBeginsWith and SubjectEndsWith properties of the filter + /// should be compared in a case sensitive manner. + /// + bool? FilterIsSubjectCaseSensitive { get; set; } + /// + /// An optional string to filter events for an event subscription based on a resource path prefix. + /// The format of this depends on the publisher of the events. + /// Wildcard characters are not supported in this path. + /// + string FilterSubjectBeginsWith { get; set; } + /// + /// An optional string to filter events for an event subscription based on a resource path suffix. + /// Wildcard characters are not supported in this path. + /// + string FilterSubjectEndsWith { get; set; } + /// List of user defined labels. + string[] Label { get; set; } + /// + /// The dead letter destination of the event subscription. Any event that cannot be delivered to its' destination is sent + /// to the dead letter destination. + /// Uses the managed identity setup on the parent resource (namely, topic or domain) to acquire the authentication tokens + /// being used during delivery / dead-lettering. + /// + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDeadLetterWithResourceIdentity PropertiesDeadLetterWithResourceIdentity { get; set; } + /// The identity to use when dead-lettering events. + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionIdentity PropertiesDeadLetterWithResourceIdentityIdentity { get; set; } + /// + /// Information about the destination where events have to be delivered for the event subscription. + /// Uses the managed identity setup on the parent resource (namely, topic or domain) to acquire the authentication tokens + /// being used during delivery / dead-lettering. + /// + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDeliveryWithResourceIdentity PropertiesDeliveryWithResourceIdentity { get; set; } + /// The identity to use when delivering events. + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionIdentity PropertiesDeliveryWithResourceIdentityIdentity { get; set; } + /// Properties of the event subscription. + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionProperties Property { get; set; } + /// Provisioning state of the event subscription. + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EventSubscriptionProvisioningState? ProvisioningState { get; set; } + /// + /// The retry policy for events. This can be used to configure maximum number of delivery attempts and time to live for events. + /// + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IRetryPolicy RetryPolicy { get; set; } + /// Time To Live (in minutes) for events. + int? RetryPolicyEventTimeToLiveInMinute { get; set; } + /// Maximum number of delivery retry attempts for events. + int? RetryPolicyMaxDeliveryAttempt { get; set; } + /// The system metadata relating to Event Subscription resource. + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.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.EventGrid.Support.CreatedByType? SystemDataLastModifiedByType { get; set; } + /// Name of the topic of the event subscription. + string Topic { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/EventSubscription.json.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/EventSubscription.json.cs new file mode 100644 index 000000000000..d530a7f3d1af --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/EventSubscription.json.cs @@ -0,0 +1,113 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Extensions; + + /// Event Subscription + public partial class EventSubscription + { + + /// + /// AfterFromJson will be called after the json deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JsonNode that should be deserialized into this object. + + partial void AfterFromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json erialization has finished, allowing customization of the before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JSON container that the serialization result will be placed in. + + partial void AfterToJson(ref Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject container); + + /// + /// BeforeFromJson will be called before the json deserialization has commenced, allowing complete customization of + /// the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JsonNode that should be deserialized into this object. + /// Determines if the rest of the deserialization should be processed, or if the method should return + /// instantly. + + partial void BeforeFromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject json, ref bool returnNow); + + /// + /// BeforeToJson will be called before the json serialization has commenced, allowing complete customization of the + /// object before it is serialized. + /// If you wish to disable the default serialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JSON container that the serialization result will be placed in. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeToJson(ref Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject instance to deserialize from. + internal EventSubscription(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject json) + { + bool returnNow = false; + BeforeFromJson(json, ref returnNow); + if (returnNow) + { + return; + } + __resource = new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.Resource(json); + {_property = If( json?.PropertyT("properties"), out var __jsonProperties) ? Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.EventSubscriptionProperties.FromJson(__jsonProperties) : Property;} + {_systemData = If( json?.PropertyT("systemData"), out var __jsonSystemData) ? Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20.SystemData.FromJson(__jsonSystemData) : SystemData;} + AfterFromJson(json); + } + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscription. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscription. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscription FromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject json ? new EventSubscription(json) : null; + } + + /// + /// Serializes this instance of into a . + /// + /// The container to serialize this object into. If the caller + /// passes in null, a new instance will be created and returned to the caller. + /// Allows the caller to choose the depth of the serialization. See . + /// + /// a serialized instance of as a . + /// + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Runtime.Json.JsonNode) this._property.ToJson(null,serializationMode) : null, "properties" ,container.Add ); + if (serializationMode.HasFlag(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SerializationMode.IncludeReadOnly)) + { + AddIf( null != this._systemData ? (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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/eventgrid/generated/api/Models/Api20211015Preview/EventSubscriptionDestination.PowerShell.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/EventSubscriptionDestination.PowerShell.cs new file mode 100644 index 000000000000..bb7381e58ca3 --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/EventSubscriptionDestination.PowerShell.cs @@ -0,0 +1,144 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell; + + /// Information about the destination for an event subscription. + [System.ComponentModel.TypeConverter(typeof(EventSubscriptionDestinationTypeConverter))] + public partial class EventSubscriptionDestination + { + + /// + /// AfterDeserializeDictionary will be called after the deserialization has finished, allowing customization of the + /// object before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Collections.IDictionary content that should be used. + + partial void AfterDeserializeDictionary(global::System.Collections.IDictionary content); + + /// + /// AfterDeserializePSObject will be called after the deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Management.Automation.PSObject content that should be used. + + partial void AfterDeserializePSObject(global::System.Management.Automation.PSObject content); + + /// + /// BeforeDeserializeDictionary will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Collections.IDictionary content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializeDictionary(global::System.Collections.IDictionary content, ref bool returnNow); + + /// + /// BeforeDeserializePSObject will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializePSObject(global::System.Management.Automation.PSObject content, ref bool returnNow); + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionDestination DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new EventSubscriptionDestination(content); + } + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionDestination DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new EventSubscriptionDestination(content); + } + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + internal EventSubscriptionDestination(global::System.Collections.IDictionary content) + { + bool returnNow = false; + BeforeDeserializeDictionary(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("EndpointType")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionDestinationInternal)this).EndpointType = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EndpointType) content.GetValueForProperty("EndpointType",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionDestinationInternal)this).EndpointType, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EndpointType.CreateFrom); + } + AfterDeserializeDictionary(content); + } + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + internal EventSubscriptionDestination(global::System.Management.Automation.PSObject content) + { + bool returnNow = false; + BeforeDeserializePSObject(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("EndpointType")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionDestinationInternal)this).EndpointType = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EndpointType) content.GetValueForProperty("EndpointType",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionDestinationInternal)this).EndpointType, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EndpointType.CreateFrom); + } + AfterDeserializePSObject(content); + } + + /// + /// Creates a new instance of , deserializing the content from a json string. + /// + /// a string containing a JSON serialized instance of this model. + /// an instance of the model class. + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionDestination FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode.Parse(jsonText)); + + /// Serializes this instance to a json string. + + /// a containing this model serialized to JSON text. + public string ToJsonString() => ToJson(null, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// Information about the destination for an event subscription. + [System.ComponentModel.TypeConverter(typeof(EventSubscriptionDestinationTypeConverter))] + public partial interface IEventSubscriptionDestination + + { + + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/EventSubscriptionDestination.TypeConverter.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/EventSubscriptionDestination.TypeConverter.cs new file mode 100644 index 000000000000..930f5a257b71 --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/EventSubscriptionDestination.TypeConverter.cs @@ -0,0 +1,147 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class EventSubscriptionDestinationTypeConverter : global::System.Management.Automation.PSTypeConverter + { + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false. + /// + public override bool CanConvertFrom(object sourceValue, global::System.Type destinationType) => CanConvertFrom(sourceValue); + + /// + /// Determines if the converter can convert the parameter to the . + /// + /// the instance to check if it can be converted to the type. + /// + /// true if the instance could be converted to a type, otherwise false + /// + public static bool CanConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return true; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + // we say yest to PSObjects + return true; + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + // we say yest to Hashtables/dictionaries + return true; + } + try + { + if (null != sourceValue.ToJsonString()) + { + return true; + } + } + catch + { + // Not one of our objects + } + try + { + string text = sourceValue.ToString()?.Trim(); + return true == text?.StartsWith("{") && true == text?.EndsWith("}") && Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonType.Object; + } + catch + { + // Doesn't look like it can be treated as JSON + } + return false; + } + + /// + /// Determines if the parameter can be converted to the parameter + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false + /// + public override bool CanConvertTo(object sourceValue, global::System.Type destinationType) => false; + + /// + /// Converts the parameter to the parameter using and + /// + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// + /// an instance of , or null if there is no suitable conversion. + /// + public override object ConvertFrom(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => ConvertFrom(sourceValue); + + /// + /// Converts the parameter to the parameter using and + /// + /// the value to convert into an instance of . + /// + /// an instance of , or null if there is no suitable conversion. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionDestination ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionDestination).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return EventSubscriptionDestination.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return EventSubscriptionDestination.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return EventSubscriptionDestination.DeserializeFromDictionary(sourceValue); + } + return null; + } + + /// NotImplemented -- this will return null + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// will always return null. + public override object ConvertTo(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => null; + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/EventSubscriptionDestination.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/EventSubscriptionDestination.cs new file mode 100644 index 000000000000..c157de1ec6a8 --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/EventSubscriptionDestination.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.EventGrid.Models.Api20211015Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Extensions; + + /// Information about the destination for an event subscription. + public partial class EventSubscriptionDestination : + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionDestination, + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionDestinationInternal + { + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EndpointType _endpointType; + + /// Type of the endpoint for the event subscription destination. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Owned)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EndpointType EndpointType { get => this._endpointType; set => this._endpointType = value; } + + /// Creates an new instance. + public EventSubscriptionDestination() + { + + } + } + /// Information about the destination for an event subscription. + public partial interface IEventSubscriptionDestination : + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IJsonSerializable + { + /// Type of the endpoint for the event subscription destination. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Type of the endpoint for the event subscription destination.", + SerializedName = @"endpointType", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EndpointType) })] + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EndpointType EndpointType { get; set; } + + } + /// Information about the destination for an event subscription. + internal partial interface IEventSubscriptionDestinationInternal + + { + /// Type of the endpoint for the event subscription destination. + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EndpointType EndpointType { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/EventSubscriptionDestination.json.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/EventSubscriptionDestination.json.cs new file mode 100644 index 000000000000..8488c972b31e --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/EventSubscriptionDestination.json.cs @@ -0,0 +1,149 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Extensions; + + /// Information about the destination for an event subscription. + public partial class EventSubscriptionDestination + { + + /// + /// AfterFromJson will be called after the json deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JsonNode that should be deserialized into this object. + + partial void AfterFromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json erialization has finished, allowing customization of the before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JSON container that the serialization result will be placed in. + + partial void AfterToJson(ref Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject container); + + /// + /// BeforeFromJson will be called before the json deserialization has commenced, allowing complete customization of + /// the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JsonNode that should be deserialized into this object. + /// Determines if the rest of the deserialization should be processed, or if the method should return + /// instantly. + + partial void BeforeFromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject json, ref bool returnNow); + + /// + /// BeforeToJson will be called before the json serialization has commenced, allowing complete customization of the + /// object before it is serialized. + /// If you wish to disable the default serialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JSON container that the serialization result will be placed in. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeToJson(ref Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject instance to deserialize from. + internal EventSubscriptionDestination(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject json) + { + bool returnNow = false; + BeforeFromJson(json, ref returnNow); + if (returnNow) + { + return; + } + {_endpointType = If( json?.PropertyT("endpointType"), out var __jsonEndpointType) ? (string)__jsonEndpointType : (string)EndpointType;} + AfterFromJson(json); + } + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionDestination. + /// Note: the Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionDestination interface + /// is polymorphic, and the precise model class that will get deserialized is determined at runtime based on the payload. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionDestination. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionDestination FromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode node) + { + if (!(node is Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject json)) + { + return null; + } + // Polymorphic type -- select the appropriate constructor using the discriminator + + switch ( json.StringProperty("endpointType") ) + { + case "WebHook": + { + return new WebHookEventSubscriptionDestination(json); + } + case "EventHub": + { + return new EventHubEventSubscriptionDestination(json); + } + case "StorageQueue": + { + return new StorageQueueEventSubscriptionDestination(json); + } + case "HybridConnection": + { + return new HybridConnectionEventSubscriptionDestination(json); + } + case "ServiceBusQueue": + { + return new ServiceBusQueueEventSubscriptionDestination(json); + } + case "ServiceBusTopic": + { + return new ServiceBusTopicEventSubscriptionDestination(json); + } + case "AzureFunction": + { + return new AzureFunctionEventSubscriptionDestination(json); + } + case "PartnerDestination": + { + return new PartnerEventSubscriptionDestination(json); + } + } + return new EventSubscriptionDestination(json); + } + + /// + /// Serializes this instance of into a . + /// + /// The container to serialize this object into. If the caller + /// passes in null, a new instance will be created and returned to the caller. + /// Allows the caller to choose the depth of the serialization. See . + /// + /// a serialized instance of as a . + /// + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject(); + + bool returnNow = false; + BeforeToJson(ref container, ref returnNow); + if (returnNow) + { + return container; + } + AddIf( null != (((object)this._endpointType)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonString(this._endpointType.ToString()) : null, "endpointType" ,container.Add ); + AfterToJson(ref container); + return container; + } + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/EventSubscriptionFilter.PowerShell.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/EventSubscriptionFilter.PowerShell.cs new file mode 100644 index 000000000000..f59498ca64cf --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/EventSubscriptionFilter.PowerShell.cs @@ -0,0 +1,184 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell; + + /// Filter for the Event Subscription. + [System.ComponentModel.TypeConverter(typeof(EventSubscriptionFilterTypeConverter))] + public partial class EventSubscriptionFilter + { + + /// + /// AfterDeserializeDictionary will be called after the deserialization has finished, allowing customization of the + /// object before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Collections.IDictionary content that should be used. + + partial void AfterDeserializeDictionary(global::System.Collections.IDictionary content); + + /// + /// AfterDeserializePSObject will be called after the deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Management.Automation.PSObject content that should be used. + + partial void AfterDeserializePSObject(global::System.Management.Automation.PSObject content); + + /// + /// BeforeDeserializeDictionary will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Collections.IDictionary content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializeDictionary(global::System.Collections.IDictionary content, ref bool returnNow); + + /// + /// BeforeDeserializePSObject will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializePSObject(global::System.Management.Automation.PSObject content, ref bool returnNow); + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionFilter DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new EventSubscriptionFilter(content); + } + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionFilter DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new EventSubscriptionFilter(content); + } + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + internal EventSubscriptionFilter(global::System.Collections.IDictionary content) + { + bool returnNow = false; + BeforeDeserializeDictionary(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("SubjectBeginsWith")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionFilterInternal)this).SubjectBeginsWith = (string) content.GetValueForProperty("SubjectBeginsWith",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionFilterInternal)this).SubjectBeginsWith, global::System.Convert.ToString); + } + if (content.Contains("SubjectEndsWith")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionFilterInternal)this).SubjectEndsWith = (string) content.GetValueForProperty("SubjectEndsWith",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionFilterInternal)this).SubjectEndsWith, global::System.Convert.ToString); + } + if (content.Contains("IncludedEventType")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionFilterInternal)this).IncludedEventType = (string[]) content.GetValueForProperty("IncludedEventType",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionFilterInternal)this).IncludedEventType, __y => TypeConverterExtensions.SelectToArray(__y, global::System.Convert.ToString)); + } + if (content.Contains("IsSubjectCaseSensitive")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionFilterInternal)this).IsSubjectCaseSensitive = (bool?) content.GetValueForProperty("IsSubjectCaseSensitive",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionFilterInternal)this).IsSubjectCaseSensitive, (__y)=> (bool) global::System.Convert.ChangeType(__y, typeof(bool))); + } + if (content.Contains("EnableAdvancedFilteringOnArray")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionFilterInternal)this).EnableAdvancedFilteringOnArray = (bool?) content.GetValueForProperty("EnableAdvancedFilteringOnArray",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionFilterInternal)this).EnableAdvancedFilteringOnArray, (__y)=> (bool) global::System.Convert.ChangeType(__y, typeof(bool))); + } + if (content.Contains("AdvancedFilter")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionFilterInternal)this).AdvancedFilter = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IAdvancedFilter[]) content.GetValueForProperty("AdvancedFilter",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionFilterInternal)this).AdvancedFilter, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.AdvancedFilterTypeConverter.ConvertFrom)); + } + AfterDeserializeDictionary(content); + } + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + internal EventSubscriptionFilter(global::System.Management.Automation.PSObject content) + { + bool returnNow = false; + BeforeDeserializePSObject(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("SubjectBeginsWith")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionFilterInternal)this).SubjectBeginsWith = (string) content.GetValueForProperty("SubjectBeginsWith",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionFilterInternal)this).SubjectBeginsWith, global::System.Convert.ToString); + } + if (content.Contains("SubjectEndsWith")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionFilterInternal)this).SubjectEndsWith = (string) content.GetValueForProperty("SubjectEndsWith",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionFilterInternal)this).SubjectEndsWith, global::System.Convert.ToString); + } + if (content.Contains("IncludedEventType")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionFilterInternal)this).IncludedEventType = (string[]) content.GetValueForProperty("IncludedEventType",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionFilterInternal)this).IncludedEventType, __y => TypeConverterExtensions.SelectToArray(__y, global::System.Convert.ToString)); + } + if (content.Contains("IsSubjectCaseSensitive")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionFilterInternal)this).IsSubjectCaseSensitive = (bool?) content.GetValueForProperty("IsSubjectCaseSensitive",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionFilterInternal)this).IsSubjectCaseSensitive, (__y)=> (bool) global::System.Convert.ChangeType(__y, typeof(bool))); + } + if (content.Contains("EnableAdvancedFilteringOnArray")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionFilterInternal)this).EnableAdvancedFilteringOnArray = (bool?) content.GetValueForProperty("EnableAdvancedFilteringOnArray",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionFilterInternal)this).EnableAdvancedFilteringOnArray, (__y)=> (bool) global::System.Convert.ChangeType(__y, typeof(bool))); + } + if (content.Contains("AdvancedFilter")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionFilterInternal)this).AdvancedFilter = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IAdvancedFilter[]) content.GetValueForProperty("AdvancedFilter",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionFilterInternal)this).AdvancedFilter, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.AdvancedFilterTypeConverter.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.EventGrid.Models.Api20211015Preview.IEventSubscriptionFilter FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode.Parse(jsonText)); + + /// Serializes this instance to a json string. + + /// a containing this model serialized to JSON text. + public string ToJsonString() => ToJson(null, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// Filter for the Event Subscription. + [System.ComponentModel.TypeConverter(typeof(EventSubscriptionFilterTypeConverter))] + public partial interface IEventSubscriptionFilter + + { + + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/EventSubscriptionFilter.TypeConverter.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/EventSubscriptionFilter.TypeConverter.cs new file mode 100644 index 000000000000..e1c9421254bf --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/EventSubscriptionFilter.TypeConverter.cs @@ -0,0 +1,147 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class EventSubscriptionFilterTypeConverter : global::System.Management.Automation.PSTypeConverter + { + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false. + /// + public override bool CanConvertFrom(object sourceValue, global::System.Type destinationType) => CanConvertFrom(sourceValue); + + /// + /// Determines if the converter can convert the parameter to the . + /// + /// the instance to check if it can be converted to the type. + /// + /// true if the instance could be converted to a type, otherwise false + /// + public static bool CanConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return true; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + // we say yest to PSObjects + return true; + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + // we say yest to Hashtables/dictionaries + return true; + } + try + { + if (null != sourceValue.ToJsonString()) + { + return true; + } + } + catch + { + // Not one of our objects + } + try + { + string text = sourceValue.ToString()?.Trim(); + return true == text?.StartsWith("{") && true == text?.EndsWith("}") && Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonType.Object; + } + catch + { + // Doesn't look like it can be treated as JSON + } + return false; + } + + /// + /// Determines if the parameter can be converted to the parameter + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false + /// + public override bool CanConvertTo(object sourceValue, global::System.Type destinationType) => false; + + /// + /// Converts the parameter to the parameter using and + /// + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// + /// an instance of , or null if there is no suitable conversion. + /// + public override object ConvertFrom(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => ConvertFrom(sourceValue); + + /// + /// Converts the parameter to the parameter using and + /// + /// the value to convert into an instance of . + /// + /// an instance of , or null if there is no suitable conversion. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionFilter ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionFilter).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return EventSubscriptionFilter.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return EventSubscriptionFilter.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return EventSubscriptionFilter.DeserializeFromDictionary(sourceValue); + } + return null; + } + + /// NotImplemented -- this will return null + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// will always return null. + public override object ConvertTo(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => null; + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/EventSubscriptionFilter.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/EventSubscriptionFilter.cs new file mode 100644 index 000000000000..7e61275d2cd3 --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/EventSubscriptionFilter.cs @@ -0,0 +1,185 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Extensions; + + /// Filter for the Event Subscription. + public partial class EventSubscriptionFilter : + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionFilter, + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionFilterInternal + { + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IAdvancedFilter[] _advancedFilter; + + /// An array of advanced filters that are used for filtering event subscriptions. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Owned)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IAdvancedFilter[] AdvancedFilter { get => this._advancedFilter; set => this._advancedFilter = value; } + + /// Backing field for property. + private bool? _enableAdvancedFilteringOnArray; + + /// + /// Allows advanced filters to be evaluated against an array of values instead of expecting a singular value. + /// + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Owned)] + public bool? EnableAdvancedFilteringOnArray { get => this._enableAdvancedFilteringOnArray; set => this._enableAdvancedFilteringOnArray = value; } + + /// Backing field for property. + private string[] _includedEventType; + + /// + /// A list of applicable event types that need to be part of the event subscription. If it is desired to subscribe to all + /// default event types, set the IncludedEventTypes to null. + /// + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Owned)] + public string[] IncludedEventType { get => this._includedEventType; set => this._includedEventType = value; } + + /// Backing field for property. + private bool? _isSubjectCaseSensitive; + + /// + /// Specifies if the SubjectBeginsWith and SubjectEndsWith properties of the filter + /// should be compared in a case sensitive manner. + /// + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Owned)] + public bool? IsSubjectCaseSensitive { get => this._isSubjectCaseSensitive; set => this._isSubjectCaseSensitive = value; } + + /// Backing field for property. + private string _subjectBeginsWith; + + /// + /// An optional string to filter events for an event subscription based on a resource path prefix. + /// The format of this depends on the publisher of the events. + /// Wildcard characters are not supported in this path. + /// + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Owned)] + public string SubjectBeginsWith { get => this._subjectBeginsWith; set => this._subjectBeginsWith = value; } + + /// Backing field for property. + private string _subjectEndsWith; + + /// + /// An optional string to filter events for an event subscription based on a resource path suffix. + /// Wildcard characters are not supported in this path. + /// + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Owned)] + public string SubjectEndsWith { get => this._subjectEndsWith; set => this._subjectEndsWith = value; } + + /// Creates an new instance. + public EventSubscriptionFilter() + { + + } + } + /// Filter for the Event Subscription. + public partial interface IEventSubscriptionFilter : + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IJsonSerializable + { + /// An array of advanced filters that are used for filtering event subscriptions. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"An array of advanced filters that are used for filtering event subscriptions.", + SerializedName = @"advancedFilters", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IAdvancedFilter) })] + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IAdvancedFilter[] AdvancedFilter { get; set; } + /// + /// Allows advanced filters to be evaluated against an array of values instead of expecting a singular value. + /// + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Allows advanced filters to be evaluated against an array of values instead of expecting a singular value.", + SerializedName = @"enableAdvancedFilteringOnArrays", + PossibleTypes = new [] { typeof(bool) })] + bool? EnableAdvancedFilteringOnArray { get; set; } + /// + /// A list of applicable event types that need to be part of the event subscription. If it is desired to subscribe to all + /// default event types, set the IncludedEventTypes to null. + /// + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"A list of applicable event types that need to be part of the event subscription. If it is desired to subscribe to all default event types, set the IncludedEventTypes to null.", + SerializedName = @"includedEventTypes", + PossibleTypes = new [] { typeof(string) })] + string[] IncludedEventType { get; set; } + /// + /// Specifies if the SubjectBeginsWith and SubjectEndsWith properties of the filter + /// should be compared in a case sensitive manner. + /// + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Specifies if the SubjectBeginsWith and SubjectEndsWith properties of the filter + should be compared in a case sensitive manner.", + SerializedName = @"isSubjectCaseSensitive", + PossibleTypes = new [] { typeof(bool) })] + bool? IsSubjectCaseSensitive { get; set; } + /// + /// An optional string to filter events for an event subscription based on a resource path prefix. + /// The format of this depends on the publisher of the events. + /// Wildcard characters are not supported in this path. + /// + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"An optional string to filter events for an event subscription based on a resource path prefix. + The format of this depends on the publisher of the events. + Wildcard characters are not supported in this path.", + SerializedName = @"subjectBeginsWith", + PossibleTypes = new [] { typeof(string) })] + string SubjectBeginsWith { get; set; } + /// + /// An optional string to filter events for an event subscription based on a resource path suffix. + /// Wildcard characters are not supported in this path. + /// + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"An optional string to filter events for an event subscription based on a resource path suffix. + Wildcard characters are not supported in this path.", + SerializedName = @"subjectEndsWith", + PossibleTypes = new [] { typeof(string) })] + string SubjectEndsWith { get; set; } + + } + /// Filter for the Event Subscription. + internal partial interface IEventSubscriptionFilterInternal + + { + /// An array of advanced filters that are used for filtering event subscriptions. + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IAdvancedFilter[] AdvancedFilter { get; set; } + /// + /// Allows advanced filters to be evaluated against an array of values instead of expecting a singular value. + /// + bool? EnableAdvancedFilteringOnArray { get; set; } + /// + /// A list of applicable event types that need to be part of the event subscription. If it is desired to subscribe to all + /// default event types, set the IncludedEventTypes to null. + /// + string[] IncludedEventType { get; set; } + /// + /// Specifies if the SubjectBeginsWith and SubjectEndsWith properties of the filter + /// should be compared in a case sensitive manner. + /// + bool? IsSubjectCaseSensitive { get; set; } + /// + /// An optional string to filter events for an event subscription based on a resource path prefix. + /// The format of this depends on the publisher of the events. + /// Wildcard characters are not supported in this path. + /// + string SubjectBeginsWith { get; set; } + /// + /// An optional string to filter events for an event subscription based on a resource path suffix. + /// Wildcard characters are not supported in this path. + /// + string SubjectEndsWith { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/EventSubscriptionFilter.json.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/EventSubscriptionFilter.json.cs new file mode 100644 index 000000000000..c1ed045cb2fc --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/EventSubscriptionFilter.json.cs @@ -0,0 +1,132 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Extensions; + + /// Filter for the Event Subscription. + public partial class EventSubscriptionFilter + { + + /// + /// AfterFromJson will be called after the json deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JsonNode that should be deserialized into this object. + + partial void AfterFromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json erialization has finished, allowing customization of the before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JSON container that the serialization result will be placed in. + + partial void AfterToJson(ref Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject container); + + /// + /// BeforeFromJson will be called before the json deserialization has commenced, allowing complete customization of + /// the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JsonNode that should be deserialized into this object. + /// Determines if the rest of the deserialization should be processed, or if the method should return + /// instantly. + + partial void BeforeFromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject json, ref bool returnNow); + + /// + /// BeforeToJson will be called before the json serialization has commenced, allowing complete customization of the + /// object before it is serialized. + /// If you wish to disable the default serialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JSON container that the serialization result will be placed in. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeToJson(ref Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject instance to deserialize from. + internal EventSubscriptionFilter(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject json) + { + bool returnNow = false; + BeforeFromJson(json, ref returnNow); + if (returnNow) + { + return; + } + {_subjectBeginsWith = If( json?.PropertyT("subjectBeginsWith"), out var __jsonSubjectBeginsWith) ? (string)__jsonSubjectBeginsWith : (string)SubjectBeginsWith;} + {_subjectEndsWith = If( json?.PropertyT("subjectEndsWith"), out var __jsonSubjectEndsWith) ? (string)__jsonSubjectEndsWith : (string)SubjectEndsWith;} + {_includedEventType = If( json?.PropertyT("includedEventTypes"), out var __jsonIncludedEventTypes) ? If( __jsonIncludedEventTypes as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Runtime.Json.JsonString __t ? (string)(__t.ToString()) : null)) ))() : null : IncludedEventType;} + {_isSubjectCaseSensitive = If( json?.PropertyT("isSubjectCaseSensitive"), out var __jsonIsSubjectCaseSensitive) ? (bool?)__jsonIsSubjectCaseSensitive : IsSubjectCaseSensitive;} + {_enableAdvancedFilteringOnArray = If( json?.PropertyT("enableAdvancedFilteringOnArrays"), out var __jsonEnableAdvancedFilteringOnArrays) ? (bool?)__jsonEnableAdvancedFilteringOnArrays : EnableAdvancedFilteringOnArray;} + {_advancedFilter = If( json?.PropertyT("advancedFilters"), out var __jsonAdvancedFilters) ? If( __jsonAdvancedFilters as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Models.Api20211015Preview.IAdvancedFilter) (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.AdvancedFilter.FromJson(__p) )) ))() : null : AdvancedFilter;} + AfterFromJson(json); + } + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionFilter. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionFilter. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionFilter FromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject json ? new EventSubscriptionFilter(json) : null; + } + + /// + /// Serializes this instance of into a . + /// + /// The container to serialize this object into. If the caller + /// passes in null, a new instance will be created and returned to the caller. + /// Allows the caller to choose the depth of the serialization. See . + /// + /// a serialized instance of as a . + /// + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject(); + + bool returnNow = false; + BeforeToJson(ref container, ref returnNow); + if (returnNow) + { + return container; + } + AddIf( null != (((object)this._subjectBeginsWith)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonString(this._subjectBeginsWith.ToString()) : null, "subjectBeginsWith" ,container.Add ); + AddIf( null != (((object)this._subjectEndsWith)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonString(this._subjectEndsWith.ToString()) : null, "subjectEndsWith" ,container.Add ); + if (null != this._includedEventType) + { + var __w = new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.XNodeArray(); + foreach( var __x in this._includedEventType ) + { + AddIf(null != (((object)__x)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonString(__x.ToString()) : null ,__w.Add); + } + container.Add("includedEventTypes",__w); + } + AddIf( null != this._isSubjectCaseSensitive ? (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode)new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonBoolean((bool)this._isSubjectCaseSensitive) : null, "isSubjectCaseSensitive" ,container.Add ); + AddIf( null != this._enableAdvancedFilteringOnArray ? (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode)new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonBoolean((bool)this._enableAdvancedFilteringOnArray) : null, "enableAdvancedFilteringOnArrays" ,container.Add ); + if (null != this._advancedFilter) + { + var __r = new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.XNodeArray(); + foreach( var __s in this._advancedFilter ) + { + AddIf(__s?.ToJson(null, serializationMode) ,__r.Add); + } + container.Add("advancedFilters",__r); + } + AfterToJson(ref container); + return container; + } + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/EventSubscriptionFullUrl.PowerShell.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/EventSubscriptionFullUrl.PowerShell.cs new file mode 100644 index 000000000000..fb67f4b74aa8 --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/EventSubscriptionFullUrl.PowerShell.cs @@ -0,0 +1,144 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell; + + /// Full endpoint url of an event subscription + [System.ComponentModel.TypeConverter(typeof(EventSubscriptionFullUrlTypeConverter))] + public partial class EventSubscriptionFullUrl + { + + /// + /// AfterDeserializeDictionary will be called after the deserialization has finished, allowing customization of the + /// object before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Collections.IDictionary content that should be used. + + partial void AfterDeserializeDictionary(global::System.Collections.IDictionary content); + + /// + /// AfterDeserializePSObject will be called after the deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Management.Automation.PSObject content that should be used. + + partial void AfterDeserializePSObject(global::System.Management.Automation.PSObject content); + + /// + /// BeforeDeserializeDictionary will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Collections.IDictionary content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializeDictionary(global::System.Collections.IDictionary content, ref bool returnNow); + + /// + /// BeforeDeserializePSObject will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializePSObject(global::System.Management.Automation.PSObject content, ref bool returnNow); + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionFullUrl DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new EventSubscriptionFullUrl(content); + } + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionFullUrl DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new EventSubscriptionFullUrl(content); + } + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + internal EventSubscriptionFullUrl(global::System.Collections.IDictionary content) + { + bool returnNow = false; + BeforeDeserializeDictionary(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("EndpointUrl")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionFullUrlInternal)this).EndpointUrl = (string) content.GetValueForProperty("EndpointUrl",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionFullUrlInternal)this).EndpointUrl, global::System.Convert.ToString); + } + AfterDeserializeDictionary(content); + } + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + internal EventSubscriptionFullUrl(global::System.Management.Automation.PSObject content) + { + bool returnNow = false; + BeforeDeserializePSObject(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("EndpointUrl")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionFullUrlInternal)this).EndpointUrl = (string) content.GetValueForProperty("EndpointUrl",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionFullUrlInternal)this).EndpointUrl, 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.EventGrid.Models.Api20211015Preview.IEventSubscriptionFullUrl FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode.Parse(jsonText)); + + /// Serializes this instance to a json string. + + /// a containing this model serialized to JSON text. + public string ToJsonString() => ToJson(null, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// Full endpoint url of an event subscription + [System.ComponentModel.TypeConverter(typeof(EventSubscriptionFullUrlTypeConverter))] + public partial interface IEventSubscriptionFullUrl + + { + + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/EventSubscriptionFullUrl.TypeConverter.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/EventSubscriptionFullUrl.TypeConverter.cs new file mode 100644 index 000000000000..0651cfae7e15 --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/EventSubscriptionFullUrl.TypeConverter.cs @@ -0,0 +1,147 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class EventSubscriptionFullUrlTypeConverter : global::System.Management.Automation.PSTypeConverter + { + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false. + /// + public override bool CanConvertFrom(object sourceValue, global::System.Type destinationType) => CanConvertFrom(sourceValue); + + /// + /// Determines if the converter can convert the parameter to the . + /// + /// the instance to check if it can be converted to the type. + /// + /// true if the instance could be converted to a type, otherwise false + /// + public static bool CanConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return true; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + // we say yest to PSObjects + return true; + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + // we say yest to Hashtables/dictionaries + return true; + } + try + { + if (null != sourceValue.ToJsonString()) + { + return true; + } + } + catch + { + // Not one of our objects + } + try + { + string text = sourceValue.ToString()?.Trim(); + return true == text?.StartsWith("{") && true == text?.EndsWith("}") && Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonType.Object; + } + catch + { + // Doesn't look like it can be treated as JSON + } + return false; + } + + /// + /// Determines if the parameter can be converted to the parameter + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false + /// + public override bool CanConvertTo(object sourceValue, global::System.Type destinationType) => false; + + /// + /// Converts the parameter to the parameter using and + /// + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// + /// an instance of , or null if there is no suitable conversion. + /// + public override object ConvertFrom(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => ConvertFrom(sourceValue); + + /// + /// Converts the parameter to the parameter using and + /// + /// the value to convert into an instance of . + /// + /// an instance of , or null if there is no suitable conversion. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionFullUrl ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionFullUrl).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return EventSubscriptionFullUrl.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return EventSubscriptionFullUrl.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return EventSubscriptionFullUrl.DeserializeFromDictionary(sourceValue); + } + return null; + } + + /// NotImplemented -- this will return null + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// will always return null. + public override object ConvertTo(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => null; + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/EventSubscriptionFullUrl.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/EventSubscriptionFullUrl.cs new file mode 100644 index 000000000000..dbf406f68aad --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/EventSubscriptionFullUrl.cs @@ -0,0 +1,57 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Extensions; + + /// Full endpoint url of an event subscription + public partial class EventSubscriptionFullUrl : + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionFullUrl, + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionFullUrlInternal + { + + /// Backing field for property. + private string _endpointUrl; + + /// + /// The URL that represents the endpoint of the destination of an event subscription. + /// + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Owned)] + public string EndpointUrl { get => this._endpointUrl; set => this._endpointUrl = value; } + + /// Creates an new instance. + public EventSubscriptionFullUrl() + { + + } + } + /// Full endpoint url of an event subscription + public partial interface IEventSubscriptionFullUrl : + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IJsonSerializable + { + /// + /// The URL that represents the endpoint of the destination of an event subscription. + /// + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The URL that represents the endpoint of the destination of an event subscription.", + SerializedName = @"endpointUrl", + PossibleTypes = new [] { typeof(string) })] + string EndpointUrl { get; set; } + + } + /// Full endpoint url of an event subscription + internal partial interface IEventSubscriptionFullUrlInternal + + { + /// + /// The URL that represents the endpoint of the destination of an event subscription. + /// + string EndpointUrl { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/EventSubscriptionFullUrl.json.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/EventSubscriptionFullUrl.json.cs new file mode 100644 index 000000000000..81ec33a687a8 --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/EventSubscriptionFullUrl.json.cs @@ -0,0 +1,106 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Extensions; + + /// Full endpoint url of an event subscription + public partial class EventSubscriptionFullUrl + { + + /// + /// AfterFromJson will be called after the json deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JsonNode that should be deserialized into this object. + + partial void AfterFromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json erialization has finished, allowing customization of the before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JSON container that the serialization result will be placed in. + + partial void AfterToJson(ref Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject container); + + /// + /// BeforeFromJson will be called before the json deserialization has commenced, allowing complete customization of + /// the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JsonNode that should be deserialized into this object. + /// Determines if the rest of the deserialization should be processed, or if the method should return + /// instantly. + + partial void BeforeFromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject json, ref bool returnNow); + + /// + /// BeforeToJson will be called before the json serialization has commenced, allowing complete customization of the + /// object before it is serialized. + /// If you wish to disable the default serialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JSON container that the serialization result will be placed in. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeToJson(ref Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject instance to deserialize from. + internal EventSubscriptionFullUrl(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject json) + { + bool returnNow = false; + BeforeFromJson(json, ref returnNow); + if (returnNow) + { + return; + } + {_endpointUrl = If( json?.PropertyT("endpointUrl"), out var __jsonEndpointUrl) ? (string)__jsonEndpointUrl : (string)EndpointUrl;} + AfterFromJson(json); + } + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionFullUrl. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionFullUrl. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionFullUrl FromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject json ? new EventSubscriptionFullUrl(json) : null; + } + + /// + /// Serializes this instance of into a . + /// + /// The container to serialize this object into. If the caller + /// passes in null, a new instance will be created and returned to the caller. + /// Allows the caller to choose the depth of the serialization. See . + /// + /// a serialized instance of as a . + /// + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject(); + + bool returnNow = false; + BeforeToJson(ref container, ref returnNow); + if (returnNow) + { + return container; + } + AddIf( null != (((object)this._endpointUrl)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonString(this._endpointUrl.ToString()) : null, "endpointUrl" ,container.Add ); + AfterToJson(ref container); + return container; + } + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/EventSubscriptionIdentity.PowerShell.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/EventSubscriptionIdentity.PowerShell.cs new file mode 100644 index 000000000000..957b4b94318b --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/EventSubscriptionIdentity.PowerShell.cs @@ -0,0 +1,152 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell; + + /// The identity information with the event subscription. + [System.ComponentModel.TypeConverter(typeof(EventSubscriptionIdentityTypeConverter))] + public partial class EventSubscriptionIdentity + { + + /// + /// AfterDeserializeDictionary will be called after the deserialization has finished, allowing customization of the + /// object before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Collections.IDictionary content that should be used. + + partial void AfterDeserializeDictionary(global::System.Collections.IDictionary content); + + /// + /// AfterDeserializePSObject will be called after the deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Management.Automation.PSObject content that should be used. + + partial void AfterDeserializePSObject(global::System.Management.Automation.PSObject content); + + /// + /// BeforeDeserializeDictionary will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Collections.IDictionary content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializeDictionary(global::System.Collections.IDictionary content, ref bool returnNow); + + /// + /// BeforeDeserializePSObject will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializePSObject(global::System.Management.Automation.PSObject content, ref bool returnNow); + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionIdentity DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new EventSubscriptionIdentity(content); + } + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionIdentity DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new EventSubscriptionIdentity(content); + } + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + internal EventSubscriptionIdentity(global::System.Collections.IDictionary content) + { + bool returnNow = false; + BeforeDeserializeDictionary(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("Type")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionIdentityInternal)this).Type = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EventSubscriptionIdentityType?) content.GetValueForProperty("Type",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionIdentityInternal)this).Type, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EventSubscriptionIdentityType.CreateFrom); + } + if (content.Contains("UserAssignedIdentity")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionIdentityInternal)this).UserAssignedIdentity = (string) content.GetValueForProperty("UserAssignedIdentity",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionIdentityInternal)this).UserAssignedIdentity, global::System.Convert.ToString); + } + AfterDeserializeDictionary(content); + } + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + internal EventSubscriptionIdentity(global::System.Management.Automation.PSObject content) + { + bool returnNow = false; + BeforeDeserializePSObject(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("Type")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionIdentityInternal)this).Type = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EventSubscriptionIdentityType?) content.GetValueForProperty("Type",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionIdentityInternal)this).Type, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EventSubscriptionIdentityType.CreateFrom); + } + if (content.Contains("UserAssignedIdentity")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionIdentityInternal)this).UserAssignedIdentity = (string) content.GetValueForProperty("UserAssignedIdentity",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionIdentityInternal)this).UserAssignedIdentity, 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.EventGrid.Models.Api20211015Preview.IEventSubscriptionIdentity FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode.Parse(jsonText)); + + /// Serializes this instance to a json string. + + /// a containing this model serialized to JSON text. + public string ToJsonString() => ToJson(null, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// The identity information with the event subscription. + [System.ComponentModel.TypeConverter(typeof(EventSubscriptionIdentityTypeConverter))] + public partial interface IEventSubscriptionIdentity + + { + + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/EventSubscriptionIdentity.TypeConverter.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/EventSubscriptionIdentity.TypeConverter.cs new file mode 100644 index 000000000000..12092c397104 --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/EventSubscriptionIdentity.TypeConverter.cs @@ -0,0 +1,147 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class EventSubscriptionIdentityTypeConverter : global::System.Management.Automation.PSTypeConverter + { + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false. + /// + public override bool CanConvertFrom(object sourceValue, global::System.Type destinationType) => CanConvertFrom(sourceValue); + + /// + /// Determines if the converter can convert the parameter to the . + /// + /// the instance to check if it can be converted to the type. + /// + /// true if the instance could be converted to a type, otherwise false + /// + public static bool CanConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return true; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + // we say yest to PSObjects + return true; + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + // we say yest to Hashtables/dictionaries + return true; + } + try + { + if (null != sourceValue.ToJsonString()) + { + return true; + } + } + catch + { + // Not one of our objects + } + try + { + string text = sourceValue.ToString()?.Trim(); + return true == text?.StartsWith("{") && true == text?.EndsWith("}") && Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonType.Object; + } + catch + { + // Doesn't look like it can be treated as JSON + } + return false; + } + + /// + /// Determines if the parameter can be converted to the parameter + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false + /// + public override bool CanConvertTo(object sourceValue, global::System.Type destinationType) => false; + + /// + /// Converts the parameter to the parameter using and + /// + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// + /// an instance of , or null if there is no suitable conversion. + /// + public override object ConvertFrom(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => ConvertFrom(sourceValue); + + /// + /// Converts the parameter to the parameter using and + /// + /// the value to convert into an instance of . + /// + /// an instance of , or null if there is no suitable conversion. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionIdentity ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionIdentity).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return EventSubscriptionIdentity.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return EventSubscriptionIdentity.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return EventSubscriptionIdentity.DeserializeFromDictionary(sourceValue); + } + return null; + } + + /// NotImplemented -- this will return null + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// will always return null. + public override object ConvertTo(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => null; + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/EventSubscriptionIdentity.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/EventSubscriptionIdentity.cs new file mode 100644 index 000000000000..6a8e9c29ad98 --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/EventSubscriptionIdentity.cs @@ -0,0 +1,77 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Extensions; + + /// The identity information with the event subscription. + public partial class EventSubscriptionIdentity : + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionIdentity, + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionIdentityInternal + { + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EventSubscriptionIdentityType? _type; + + /// + /// The type of managed identity used. The type 'SystemAssigned, UserAssigned' includes both an implicitly created identity + /// and a set of user-assigned identities. The type 'None' will remove any identity. + /// + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Owned)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EventSubscriptionIdentityType? Type { get => this._type; set => this._type = value; } + + /// Backing field for property. + private string _userAssignedIdentity; + + /// The user identity associated with the resource. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Owned)] + public string UserAssignedIdentity { get => this._userAssignedIdentity; set => this._userAssignedIdentity = value; } + + /// Creates an new instance. + public EventSubscriptionIdentity() + { + + } + } + /// The identity information with the event subscription. + public partial interface IEventSubscriptionIdentity : + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IJsonSerializable + { + /// + /// The type of managed identity used. The type 'SystemAssigned, UserAssigned' includes both an implicitly created identity + /// and a set of user-assigned identities. The type 'None' will remove any identity. + /// + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The type of managed identity used. The type 'SystemAssigned, UserAssigned' includes both an implicitly created identity and a set of user-assigned identities. The type 'None' will remove any identity.", + SerializedName = @"type", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EventSubscriptionIdentityType) })] + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EventSubscriptionIdentityType? Type { get; set; } + /// The user identity associated with the resource. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The user identity associated with the resource.", + SerializedName = @"userAssignedIdentity", + PossibleTypes = new [] { typeof(string) })] + string UserAssignedIdentity { get; set; } + + } + /// The identity information with the event subscription. + internal partial interface IEventSubscriptionIdentityInternal + + { + /// + /// The type of managed identity used. The type 'SystemAssigned, UserAssigned' includes both an implicitly created identity + /// and a set of user-assigned identities. The type 'None' will remove any identity. + /// + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EventSubscriptionIdentityType? Type { get; set; } + /// The user identity associated with the resource. + string UserAssignedIdentity { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/EventSubscriptionIdentity.json.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/EventSubscriptionIdentity.json.cs new file mode 100644 index 000000000000..8f6e09825dea --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/EventSubscriptionIdentity.json.cs @@ -0,0 +1,108 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Extensions; + + /// The identity information with the event subscription. + public partial class EventSubscriptionIdentity + { + + /// + /// AfterFromJson will be called after the json deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JsonNode that should be deserialized into this object. + + partial void AfterFromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json erialization has finished, allowing customization of the before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JSON container that the serialization result will be placed in. + + partial void AfterToJson(ref Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject container); + + /// + /// BeforeFromJson will be called before the json deserialization has commenced, allowing complete customization of + /// the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JsonNode that should be deserialized into this object. + /// Determines if the rest of the deserialization should be processed, or if the method should return + /// instantly. + + partial void BeforeFromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject json, ref bool returnNow); + + /// + /// BeforeToJson will be called before the json serialization has commenced, allowing complete customization of the + /// object before it is serialized. + /// If you wish to disable the default serialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JSON container that the serialization result will be placed in. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeToJson(ref Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject instance to deserialize from. + internal EventSubscriptionIdentity(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject json) + { + bool returnNow = false; + BeforeFromJson(json, ref returnNow); + if (returnNow) + { + return; + } + {_type = If( json?.PropertyT("type"), out var __jsonType) ? (string)__jsonType : (string)Type;} + {_userAssignedIdentity = If( json?.PropertyT("userAssignedIdentity"), out var __jsonUserAssignedIdentity) ? (string)__jsonUserAssignedIdentity : (string)UserAssignedIdentity;} + AfterFromJson(json); + } + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionIdentity. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionIdentity. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionIdentity FromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject json ? new EventSubscriptionIdentity(json) : null; + } + + /// + /// Serializes this instance of into a . + /// + /// The container to serialize this object into. If the caller + /// passes in null, a new instance will be created and returned to the caller. + /// Allows the caller to choose the depth of the serialization. See . + /// + /// a serialized instance of as a . + /// + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject(); + + bool returnNow = false; + BeforeToJson(ref container, ref returnNow); + if (returnNow) + { + return container; + } + AddIf( null != (((object)this._type)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonString(this._type.ToString()) : null, "type" ,container.Add ); + AddIf( null != (((object)this._userAssignedIdentity)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonString(this._userAssignedIdentity.ToString()) : null, "userAssignedIdentity" ,container.Add ); + AfterToJson(ref container); + return container; + } + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/EventSubscriptionProperties.PowerShell.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/EventSubscriptionProperties.PowerShell.cs new file mode 100644 index 000000000000..aa713c22e342 --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/EventSubscriptionProperties.PowerShell.cs @@ -0,0 +1,384 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell; + + /// Properties of the Event Subscription. + [System.ComponentModel.TypeConverter(typeof(EventSubscriptionPropertiesTypeConverter))] + public partial class EventSubscriptionProperties + { + + /// + /// AfterDeserializeDictionary will be called after the deserialization has finished, allowing customization of the + /// object before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Collections.IDictionary content that should be used. + + partial void AfterDeserializeDictionary(global::System.Collections.IDictionary content); + + /// + /// AfterDeserializePSObject will be called after the deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Management.Automation.PSObject content that should be used. + + partial void AfterDeserializePSObject(global::System.Management.Automation.PSObject content); + + /// + /// BeforeDeserializeDictionary will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Collections.IDictionary content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializeDictionary(global::System.Collections.IDictionary content, ref bool returnNow); + + /// + /// BeforeDeserializePSObject will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializePSObject(global::System.Management.Automation.PSObject content, ref bool returnNow); + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionProperties DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new EventSubscriptionProperties(content); + } + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionProperties DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new EventSubscriptionProperties(content); + } + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + internal EventSubscriptionProperties(global::System.Collections.IDictionary content) + { + bool returnNow = false; + BeforeDeserializeDictionary(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("Destination")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionPropertiesInternal)this).Destination = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionDestination) content.GetValueForProperty("Destination",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionPropertiesInternal)this).Destination, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.EventSubscriptionDestinationTypeConverter.ConvertFrom); + } + if (content.Contains("DeliveryWithResourceIdentity")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionPropertiesInternal)this).DeliveryWithResourceIdentity = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDeliveryWithResourceIdentity) content.GetValueForProperty("DeliveryWithResourceIdentity",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionPropertiesInternal)this).DeliveryWithResourceIdentity, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.DeliveryWithResourceIdentityTypeConverter.ConvertFrom); + } + if (content.Contains("Filter")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionPropertiesInternal)this).Filter = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionFilter) content.GetValueForProperty("Filter",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionPropertiesInternal)this).Filter, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.EventSubscriptionFilterTypeConverter.ConvertFrom); + } + if (content.Contains("RetryPolicy")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionPropertiesInternal)this).RetryPolicy = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IRetryPolicy) content.GetValueForProperty("RetryPolicy",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionPropertiesInternal)this).RetryPolicy, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.RetryPolicyTypeConverter.ConvertFrom); + } + if (content.Contains("DeadLetterDestination")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionPropertiesInternal)this).DeadLetterDestination = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDeadLetterDestination) content.GetValueForProperty("DeadLetterDestination",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionPropertiesInternal)this).DeadLetterDestination, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.DeadLetterDestinationTypeConverter.ConvertFrom); + } + if (content.Contains("DeadLetterWithResourceIdentity")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionPropertiesInternal)this).DeadLetterWithResourceIdentity = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDeadLetterWithResourceIdentity) content.GetValueForProperty("DeadLetterWithResourceIdentity",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionPropertiesInternal)this).DeadLetterWithResourceIdentity, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.DeadLetterWithResourceIdentityTypeConverter.ConvertFrom); + } + if (content.Contains("Topic")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionPropertiesInternal)this).Topic = (string) content.GetValueForProperty("Topic",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionPropertiesInternal)this).Topic, global::System.Convert.ToString); + } + if (content.Contains("ProvisioningState")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionPropertiesInternal)this).ProvisioningState = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EventSubscriptionProvisioningState?) content.GetValueForProperty("ProvisioningState",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionPropertiesInternal)this).ProvisioningState, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EventSubscriptionProvisioningState.CreateFrom); + } + if (content.Contains("Label")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionPropertiesInternal)this).Label = (string[]) content.GetValueForProperty("Label",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionPropertiesInternal)this).Label, __y => TypeConverterExtensions.SelectToArray(__y, global::System.Convert.ToString)); + } + if (content.Contains("ExpirationTimeUtc")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionPropertiesInternal)this).ExpirationTimeUtc = (global::System.DateTime?) content.GetValueForProperty("ExpirationTimeUtc",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionPropertiesInternal)this).ExpirationTimeUtc, (v) => v is global::System.DateTime _v ? _v : global::System.Xml.XmlConvert.ToDateTime( v.ToString() , global::System.Xml.XmlDateTimeSerializationMode.Unspecified)); + } + if (content.Contains("EventDeliverySchema")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionPropertiesInternal)this).EventDeliverySchema = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EventDeliverySchema?) content.GetValueForProperty("EventDeliverySchema",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionPropertiesInternal)this).EventDeliverySchema, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EventDeliverySchema.CreateFrom); + } + if (content.Contains("EndpointType")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionPropertiesInternal)this).EndpointType = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EndpointType) content.GetValueForProperty("EndpointType",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionPropertiesInternal)this).EndpointType, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EndpointType.CreateFrom); + } + if (content.Contains("DeliveryWithResourceIdentityIdentity")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionPropertiesInternal)this).DeliveryWithResourceIdentityIdentity = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionIdentity) content.GetValueForProperty("DeliveryWithResourceIdentityIdentity",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionPropertiesInternal)this).DeliveryWithResourceIdentityIdentity, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.EventSubscriptionIdentityTypeConverter.ConvertFrom); + } + if (content.Contains("DeliveryWithResourceIdentityDestination")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionPropertiesInternal)this).DeliveryWithResourceIdentityDestination = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionDestination) content.GetValueForProperty("DeliveryWithResourceIdentityDestination",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionPropertiesInternal)this).DeliveryWithResourceIdentityDestination, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.EventSubscriptionDestinationTypeConverter.ConvertFrom); + } + if (content.Contains("DeliveryWithResourceIdentityDestinationEndpointType")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionPropertiesInternal)this).DeliveryWithResourceIdentityDestinationEndpointType = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EndpointType) content.GetValueForProperty("DeliveryWithResourceIdentityDestinationEndpointType",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionPropertiesInternal)this).DeliveryWithResourceIdentityDestinationEndpointType, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EndpointType.CreateFrom); + } + if (content.Contains("FilterSubjectBeginsWith")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionPropertiesInternal)this).FilterSubjectBeginsWith = (string) content.GetValueForProperty("FilterSubjectBeginsWith",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionPropertiesInternal)this).FilterSubjectBeginsWith, global::System.Convert.ToString); + } + if (content.Contains("FilterSubjectEndsWith")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionPropertiesInternal)this).FilterSubjectEndsWith = (string) content.GetValueForProperty("FilterSubjectEndsWith",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionPropertiesInternal)this).FilterSubjectEndsWith, global::System.Convert.ToString); + } + if (content.Contains("FilterIncludedEventType")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionPropertiesInternal)this).FilterIncludedEventType = (string[]) content.GetValueForProperty("FilterIncludedEventType",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionPropertiesInternal)this).FilterIncludedEventType, __y => TypeConverterExtensions.SelectToArray(__y, global::System.Convert.ToString)); + } + if (content.Contains("FilterIsSubjectCaseSensitive")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionPropertiesInternal)this).FilterIsSubjectCaseSensitive = (bool?) content.GetValueForProperty("FilterIsSubjectCaseSensitive",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionPropertiesInternal)this).FilterIsSubjectCaseSensitive, (__y)=> (bool) global::System.Convert.ChangeType(__y, typeof(bool))); + } + if (content.Contains("FilterEnableAdvancedFilteringOnArray")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionPropertiesInternal)this).FilterEnableAdvancedFilteringOnArray = (bool?) content.GetValueForProperty("FilterEnableAdvancedFilteringOnArray",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionPropertiesInternal)this).FilterEnableAdvancedFilteringOnArray, (__y)=> (bool) global::System.Convert.ChangeType(__y, typeof(bool))); + } + if (content.Contains("FilterAdvancedFilter")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionPropertiesInternal)this).FilterAdvancedFilter = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IAdvancedFilter[]) content.GetValueForProperty("FilterAdvancedFilter",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionPropertiesInternal)this).FilterAdvancedFilter, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.AdvancedFilterTypeConverter.ConvertFrom)); + } + if (content.Contains("RetryPolicyMaxDeliveryAttempt")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionPropertiesInternal)this).RetryPolicyMaxDeliveryAttempt = (int?) content.GetValueForProperty("RetryPolicyMaxDeliveryAttempt",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionPropertiesInternal)this).RetryPolicyMaxDeliveryAttempt, (__y)=> (int) global::System.Convert.ChangeType(__y, typeof(int))); + } + if (content.Contains("RetryPolicyEventTimeToLiveInMinute")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionPropertiesInternal)this).RetryPolicyEventTimeToLiveInMinute = (int?) content.GetValueForProperty("RetryPolicyEventTimeToLiveInMinute",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionPropertiesInternal)this).RetryPolicyEventTimeToLiveInMinute, (__y)=> (int) global::System.Convert.ChangeType(__y, typeof(int))); + } + if (content.Contains("DeadLetterEndPointTypeEndpointType")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionPropertiesInternal)this).DeadLetterEndPointTypeEndpointType = (string) content.GetValueForProperty("DeadLetterEndPointTypeEndpointType",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionPropertiesInternal)this).DeadLetterEndPointTypeEndpointType, global::System.Convert.ToString); + } + if (content.Contains("DeadLetterWithResourceIdentityIdentity")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionPropertiesInternal)this).DeadLetterWithResourceIdentityIdentity = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionIdentity) content.GetValueForProperty("DeadLetterWithResourceIdentityIdentity",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionPropertiesInternal)this).DeadLetterWithResourceIdentityIdentity, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.EventSubscriptionIdentityTypeConverter.ConvertFrom); + } + if (content.Contains("DeadLetterWithResourceIdentityDeadLetterDestination")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionPropertiesInternal)this).DeadLetterWithResourceIdentityDeadLetterDestination = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDeadLetterDestination) content.GetValueForProperty("DeadLetterWithResourceIdentityDeadLetterDestination",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionPropertiesInternal)this).DeadLetterWithResourceIdentityDeadLetterDestination, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.DeadLetterDestinationTypeConverter.ConvertFrom); + } + if (content.Contains("DeliveryWithResourceIdentityType")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionPropertiesInternal)this).DeliveryWithResourceIdentityType = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EventSubscriptionIdentityType?) content.GetValueForProperty("DeliveryWithResourceIdentityType",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionPropertiesInternal)this).DeliveryWithResourceIdentityType, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EventSubscriptionIdentityType.CreateFrom); + } + if (content.Contains("DeliveryWithResourceIdentityUserAssignedIdentity")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionPropertiesInternal)this).DeliveryWithResourceIdentityUserAssignedIdentity = (string) content.GetValueForProperty("DeliveryWithResourceIdentityUserAssignedIdentity",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionPropertiesInternal)this).DeliveryWithResourceIdentityUserAssignedIdentity, global::System.Convert.ToString); + } + if (content.Contains("DeadLetterWithResourceIdentityType")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionPropertiesInternal)this).DeadLetterWithResourceIdentityType = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EventSubscriptionIdentityType?) content.GetValueForProperty("DeadLetterWithResourceIdentityType",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionPropertiesInternal)this).DeadLetterWithResourceIdentityType, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EventSubscriptionIdentityType.CreateFrom); + } + if (content.Contains("DeadLetterWithResourceIdentityUserAssignedIdentity")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionPropertiesInternal)this).DeadLetterWithResourceIdentityUserAssignedIdentity = (string) content.GetValueForProperty("DeadLetterWithResourceIdentityUserAssignedIdentity",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionPropertiesInternal)this).DeadLetterWithResourceIdentityUserAssignedIdentity, global::System.Convert.ToString); + } + if (content.Contains("DeadLetterWithResourceIdentityDeadLetterDestinationEndpointType")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionPropertiesInternal)this).DeadLetterWithResourceIdentityDeadLetterDestinationEndpointType = (string) content.GetValueForProperty("DeadLetterWithResourceIdentityDeadLetterDestinationEndpointType",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionPropertiesInternal)this).DeadLetterWithResourceIdentityDeadLetterDestinationEndpointType, global::System.Convert.ToString); + } + AfterDeserializeDictionary(content); + } + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + internal EventSubscriptionProperties(global::System.Management.Automation.PSObject content) + { + bool returnNow = false; + BeforeDeserializePSObject(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("Destination")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionPropertiesInternal)this).Destination = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionDestination) content.GetValueForProperty("Destination",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionPropertiesInternal)this).Destination, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.EventSubscriptionDestinationTypeConverter.ConvertFrom); + } + if (content.Contains("DeliveryWithResourceIdentity")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionPropertiesInternal)this).DeliveryWithResourceIdentity = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDeliveryWithResourceIdentity) content.GetValueForProperty("DeliveryWithResourceIdentity",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionPropertiesInternal)this).DeliveryWithResourceIdentity, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.DeliveryWithResourceIdentityTypeConverter.ConvertFrom); + } + if (content.Contains("Filter")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionPropertiesInternal)this).Filter = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionFilter) content.GetValueForProperty("Filter",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionPropertiesInternal)this).Filter, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.EventSubscriptionFilterTypeConverter.ConvertFrom); + } + if (content.Contains("RetryPolicy")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionPropertiesInternal)this).RetryPolicy = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IRetryPolicy) content.GetValueForProperty("RetryPolicy",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionPropertiesInternal)this).RetryPolicy, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.RetryPolicyTypeConverter.ConvertFrom); + } + if (content.Contains("DeadLetterDestination")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionPropertiesInternal)this).DeadLetterDestination = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDeadLetterDestination) content.GetValueForProperty("DeadLetterDestination",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionPropertiesInternal)this).DeadLetterDestination, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.DeadLetterDestinationTypeConverter.ConvertFrom); + } + if (content.Contains("DeadLetterWithResourceIdentity")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionPropertiesInternal)this).DeadLetterWithResourceIdentity = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDeadLetterWithResourceIdentity) content.GetValueForProperty("DeadLetterWithResourceIdentity",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionPropertiesInternal)this).DeadLetterWithResourceIdentity, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.DeadLetterWithResourceIdentityTypeConverter.ConvertFrom); + } + if (content.Contains("Topic")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionPropertiesInternal)this).Topic = (string) content.GetValueForProperty("Topic",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionPropertiesInternal)this).Topic, global::System.Convert.ToString); + } + if (content.Contains("ProvisioningState")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionPropertiesInternal)this).ProvisioningState = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EventSubscriptionProvisioningState?) content.GetValueForProperty("ProvisioningState",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionPropertiesInternal)this).ProvisioningState, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EventSubscriptionProvisioningState.CreateFrom); + } + if (content.Contains("Label")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionPropertiesInternal)this).Label = (string[]) content.GetValueForProperty("Label",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionPropertiesInternal)this).Label, __y => TypeConverterExtensions.SelectToArray(__y, global::System.Convert.ToString)); + } + if (content.Contains("ExpirationTimeUtc")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionPropertiesInternal)this).ExpirationTimeUtc = (global::System.DateTime?) content.GetValueForProperty("ExpirationTimeUtc",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionPropertiesInternal)this).ExpirationTimeUtc, (v) => v is global::System.DateTime _v ? _v : global::System.Xml.XmlConvert.ToDateTime( v.ToString() , global::System.Xml.XmlDateTimeSerializationMode.Unspecified)); + } + if (content.Contains("EventDeliverySchema")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionPropertiesInternal)this).EventDeliverySchema = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EventDeliverySchema?) content.GetValueForProperty("EventDeliverySchema",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionPropertiesInternal)this).EventDeliverySchema, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EventDeliverySchema.CreateFrom); + } + if (content.Contains("EndpointType")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionPropertiesInternal)this).EndpointType = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EndpointType) content.GetValueForProperty("EndpointType",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionPropertiesInternal)this).EndpointType, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EndpointType.CreateFrom); + } + if (content.Contains("DeliveryWithResourceIdentityIdentity")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionPropertiesInternal)this).DeliveryWithResourceIdentityIdentity = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionIdentity) content.GetValueForProperty("DeliveryWithResourceIdentityIdentity",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionPropertiesInternal)this).DeliveryWithResourceIdentityIdentity, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.EventSubscriptionIdentityTypeConverter.ConvertFrom); + } + if (content.Contains("DeliveryWithResourceIdentityDestination")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionPropertiesInternal)this).DeliveryWithResourceIdentityDestination = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionDestination) content.GetValueForProperty("DeliveryWithResourceIdentityDestination",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionPropertiesInternal)this).DeliveryWithResourceIdentityDestination, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.EventSubscriptionDestinationTypeConverter.ConvertFrom); + } + if (content.Contains("DeliveryWithResourceIdentityDestinationEndpointType")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionPropertiesInternal)this).DeliveryWithResourceIdentityDestinationEndpointType = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EndpointType) content.GetValueForProperty("DeliveryWithResourceIdentityDestinationEndpointType",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionPropertiesInternal)this).DeliveryWithResourceIdentityDestinationEndpointType, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EndpointType.CreateFrom); + } + if (content.Contains("FilterSubjectBeginsWith")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionPropertiesInternal)this).FilterSubjectBeginsWith = (string) content.GetValueForProperty("FilterSubjectBeginsWith",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionPropertiesInternal)this).FilterSubjectBeginsWith, global::System.Convert.ToString); + } + if (content.Contains("FilterSubjectEndsWith")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionPropertiesInternal)this).FilterSubjectEndsWith = (string) content.GetValueForProperty("FilterSubjectEndsWith",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionPropertiesInternal)this).FilterSubjectEndsWith, global::System.Convert.ToString); + } + if (content.Contains("FilterIncludedEventType")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionPropertiesInternal)this).FilterIncludedEventType = (string[]) content.GetValueForProperty("FilterIncludedEventType",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionPropertiesInternal)this).FilterIncludedEventType, __y => TypeConverterExtensions.SelectToArray(__y, global::System.Convert.ToString)); + } + if (content.Contains("FilterIsSubjectCaseSensitive")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionPropertiesInternal)this).FilterIsSubjectCaseSensitive = (bool?) content.GetValueForProperty("FilterIsSubjectCaseSensitive",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionPropertiesInternal)this).FilterIsSubjectCaseSensitive, (__y)=> (bool) global::System.Convert.ChangeType(__y, typeof(bool))); + } + if (content.Contains("FilterEnableAdvancedFilteringOnArray")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionPropertiesInternal)this).FilterEnableAdvancedFilteringOnArray = (bool?) content.GetValueForProperty("FilterEnableAdvancedFilteringOnArray",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionPropertiesInternal)this).FilterEnableAdvancedFilteringOnArray, (__y)=> (bool) global::System.Convert.ChangeType(__y, typeof(bool))); + } + if (content.Contains("FilterAdvancedFilter")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionPropertiesInternal)this).FilterAdvancedFilter = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IAdvancedFilter[]) content.GetValueForProperty("FilterAdvancedFilter",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionPropertiesInternal)this).FilterAdvancedFilter, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.AdvancedFilterTypeConverter.ConvertFrom)); + } + if (content.Contains("RetryPolicyMaxDeliveryAttempt")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionPropertiesInternal)this).RetryPolicyMaxDeliveryAttempt = (int?) content.GetValueForProperty("RetryPolicyMaxDeliveryAttempt",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionPropertiesInternal)this).RetryPolicyMaxDeliveryAttempt, (__y)=> (int) global::System.Convert.ChangeType(__y, typeof(int))); + } + if (content.Contains("RetryPolicyEventTimeToLiveInMinute")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionPropertiesInternal)this).RetryPolicyEventTimeToLiveInMinute = (int?) content.GetValueForProperty("RetryPolicyEventTimeToLiveInMinute",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionPropertiesInternal)this).RetryPolicyEventTimeToLiveInMinute, (__y)=> (int) global::System.Convert.ChangeType(__y, typeof(int))); + } + if (content.Contains("DeadLetterEndPointTypeEndpointType")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionPropertiesInternal)this).DeadLetterEndPointTypeEndpointType = (string) content.GetValueForProperty("DeadLetterEndPointTypeEndpointType",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionPropertiesInternal)this).DeadLetterEndPointTypeEndpointType, global::System.Convert.ToString); + } + if (content.Contains("DeadLetterWithResourceIdentityIdentity")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionPropertiesInternal)this).DeadLetterWithResourceIdentityIdentity = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionIdentity) content.GetValueForProperty("DeadLetterWithResourceIdentityIdentity",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionPropertiesInternal)this).DeadLetterWithResourceIdentityIdentity, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.EventSubscriptionIdentityTypeConverter.ConvertFrom); + } + if (content.Contains("DeadLetterWithResourceIdentityDeadLetterDestination")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionPropertiesInternal)this).DeadLetterWithResourceIdentityDeadLetterDestination = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDeadLetterDestination) content.GetValueForProperty("DeadLetterWithResourceIdentityDeadLetterDestination",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionPropertiesInternal)this).DeadLetterWithResourceIdentityDeadLetterDestination, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.DeadLetterDestinationTypeConverter.ConvertFrom); + } + if (content.Contains("DeliveryWithResourceIdentityType")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionPropertiesInternal)this).DeliveryWithResourceIdentityType = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EventSubscriptionIdentityType?) content.GetValueForProperty("DeliveryWithResourceIdentityType",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionPropertiesInternal)this).DeliveryWithResourceIdentityType, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EventSubscriptionIdentityType.CreateFrom); + } + if (content.Contains("DeliveryWithResourceIdentityUserAssignedIdentity")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionPropertiesInternal)this).DeliveryWithResourceIdentityUserAssignedIdentity = (string) content.GetValueForProperty("DeliveryWithResourceIdentityUserAssignedIdentity",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionPropertiesInternal)this).DeliveryWithResourceIdentityUserAssignedIdentity, global::System.Convert.ToString); + } + if (content.Contains("DeadLetterWithResourceIdentityType")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionPropertiesInternal)this).DeadLetterWithResourceIdentityType = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EventSubscriptionIdentityType?) content.GetValueForProperty("DeadLetterWithResourceIdentityType",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionPropertiesInternal)this).DeadLetterWithResourceIdentityType, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EventSubscriptionIdentityType.CreateFrom); + } + if (content.Contains("DeadLetterWithResourceIdentityUserAssignedIdentity")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionPropertiesInternal)this).DeadLetterWithResourceIdentityUserAssignedIdentity = (string) content.GetValueForProperty("DeadLetterWithResourceIdentityUserAssignedIdentity",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionPropertiesInternal)this).DeadLetterWithResourceIdentityUserAssignedIdentity, global::System.Convert.ToString); + } + if (content.Contains("DeadLetterWithResourceIdentityDeadLetterDestinationEndpointType")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionPropertiesInternal)this).DeadLetterWithResourceIdentityDeadLetterDestinationEndpointType = (string) content.GetValueForProperty("DeadLetterWithResourceIdentityDeadLetterDestinationEndpointType",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionPropertiesInternal)this).DeadLetterWithResourceIdentityDeadLetterDestinationEndpointType, 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.EventGrid.Models.Api20211015Preview.IEventSubscriptionProperties FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode.Parse(jsonText)); + + /// Serializes this instance to a json string. + + /// a containing this model serialized to JSON text. + public string ToJsonString() => ToJson(null, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// Properties of the Event Subscription. + [System.ComponentModel.TypeConverter(typeof(EventSubscriptionPropertiesTypeConverter))] + public partial interface IEventSubscriptionProperties + + { + + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/EventSubscriptionProperties.TypeConverter.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/EventSubscriptionProperties.TypeConverter.cs new file mode 100644 index 000000000000..bde5de8c777d --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/EventSubscriptionProperties.TypeConverter.cs @@ -0,0 +1,147 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class EventSubscriptionPropertiesTypeConverter : global::System.Management.Automation.PSTypeConverter + { + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false. + /// + public override bool CanConvertFrom(object sourceValue, global::System.Type destinationType) => CanConvertFrom(sourceValue); + + /// + /// Determines if the converter can convert the parameter to the . + /// + /// the instance to check if it can be converted to the type. + /// + /// true if the instance could be converted to a type, otherwise false + /// + public static bool CanConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return true; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + // we say yest to PSObjects + return true; + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + // we say yest to Hashtables/dictionaries + return true; + } + try + { + if (null != sourceValue.ToJsonString()) + { + return true; + } + } + catch + { + // Not one of our objects + } + try + { + string text = sourceValue.ToString()?.Trim(); + return true == text?.StartsWith("{") && true == text?.EndsWith("}") && Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonType.Object; + } + catch + { + // Doesn't look like it can be treated as JSON + } + return false; + } + + /// + /// Determines if the parameter can be converted to the parameter + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false + /// + public override bool CanConvertTo(object sourceValue, global::System.Type destinationType) => false; + + /// + /// Converts the parameter to the parameter using and + /// + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// + /// an instance of , or null if there is no suitable conversion. + /// + public override object ConvertFrom(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => ConvertFrom(sourceValue); + + /// + /// Converts the parameter to the parameter using and + /// + /// the value to convert into an instance of . + /// + /// an instance of , or null if there is no suitable conversion. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionProperties ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionProperties).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return EventSubscriptionProperties.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return EventSubscriptionProperties.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return EventSubscriptionProperties.DeserializeFromDictionary(sourceValue); + } + return null; + } + + /// NotImplemented -- this will return null + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// will always return null. + public override object ConvertTo(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => null; + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/EventSubscriptionProperties.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/EventSubscriptionProperties.cs new file mode 100644 index 000000000000..56580da8998d --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/EventSubscriptionProperties.cs @@ -0,0 +1,559 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Extensions; + + /// Properties of the Event Subscription. + public partial class EventSubscriptionProperties : + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionProperties, + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionPropertiesInternal + { + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDeadLetterDestination _deadLetterDestination; + + /// + /// The dead letter destination of the event subscription. Any event that cannot be delivered to its' destination is sent + /// to the dead letter destination. + /// Uses Azure Event Grid's identity to acquire the authentication tokens being used during delivery / dead-lettering. + /// + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Owned)] + internal Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDeadLetterDestination DeadLetterDestination { get => (this._deadLetterDestination = this._deadLetterDestination ?? new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.DeadLetterDestination()); set => this._deadLetterDestination = value; } + + /// Type of the endpoint for the dead letter destination + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Inlined)] + public string DeadLetterEndPointTypeEndpointType { get => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDeadLetterDestinationInternal)DeadLetterDestination).EndpointType; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDeadLetterWithResourceIdentity _deadLetterWithResourceIdentity; + + /// + /// The dead letter destination of the event subscription. Any event that cannot be delivered to its' destination is sent + /// to the dead letter destination. + /// Uses the managed identity setup on the parent resource (namely, topic or domain) to acquire the authentication tokens + /// being used during delivery / dead-lettering. + /// + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Owned)] + internal Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDeadLetterWithResourceIdentity DeadLetterWithResourceIdentity { get => (this._deadLetterWithResourceIdentity = this._deadLetterWithResourceIdentity ?? new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.DeadLetterWithResourceIdentity()); set => this._deadLetterWithResourceIdentity = value; } + + /// Type of the endpoint for the dead letter destination + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Inlined)] + public string DeadLetterWithResourceIdentityDeadLetterDestinationEndpointType { get => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDeadLetterWithResourceIdentityInternal)DeadLetterWithResourceIdentity).DeadLetterDestinationEndpointType; } + + /// + /// The type of managed identity used. The type 'SystemAssigned, UserAssigned' includes both an implicitly created identity + /// and a set of user-assigned identities. The type 'None' will remove any identity. + /// + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Inlined)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EventSubscriptionIdentityType? DeadLetterWithResourceIdentityType { get => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDeadLetterWithResourceIdentityInternal)DeadLetterWithResourceIdentity).IdentityType; set => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDeadLetterWithResourceIdentityInternal)DeadLetterWithResourceIdentity).IdentityType = value ?? ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EventSubscriptionIdentityType)""); } + + /// The user identity associated with the resource. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Inlined)] + public string DeadLetterWithResourceIdentityUserAssignedIdentity { get => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDeadLetterWithResourceIdentityInternal)DeadLetterWithResourceIdentity).IdentityUserAssignedIdentity; set => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDeadLetterWithResourceIdentityInternal)DeadLetterWithResourceIdentity).IdentityUserAssignedIdentity = value ?? null; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDeliveryWithResourceIdentity _deliveryWithResourceIdentity; + + /// + /// Information about the destination where events have to be delivered for the event subscription. + /// Uses the managed identity setup on the parent resource (namely, topic or domain) to acquire the authentication tokens + /// being used during delivery / dead-lettering. + /// + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Owned)] + internal Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDeliveryWithResourceIdentity DeliveryWithResourceIdentity { get => (this._deliveryWithResourceIdentity = this._deliveryWithResourceIdentity ?? new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.DeliveryWithResourceIdentity()); set => this._deliveryWithResourceIdentity = value; } + + /// Type of the endpoint for the event subscription destination. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Inlined)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EndpointType? DeliveryWithResourceIdentityDestinationEndpointType { get => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDeliveryWithResourceIdentityInternal)DeliveryWithResourceIdentity).DestinationEndpointType; set => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDeliveryWithResourceIdentityInternal)DeliveryWithResourceIdentity).DestinationEndpointType = value ?? ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EndpointType)""); } + + /// + /// The type of managed identity used. The type 'SystemAssigned, UserAssigned' includes both an implicitly created identity + /// and a set of user-assigned identities. The type 'None' will remove any identity. + /// + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Inlined)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EventSubscriptionIdentityType? DeliveryWithResourceIdentityType { get => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDeliveryWithResourceIdentityInternal)DeliveryWithResourceIdentity).IdentityType; set => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDeliveryWithResourceIdentityInternal)DeliveryWithResourceIdentity).IdentityType = value ?? ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EventSubscriptionIdentityType)""); } + + /// The user identity associated with the resource. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Inlined)] + public string DeliveryWithResourceIdentityUserAssignedIdentity { get => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDeliveryWithResourceIdentityInternal)DeliveryWithResourceIdentity).IdentityUserAssignedIdentity; set => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDeliveryWithResourceIdentityInternal)DeliveryWithResourceIdentity).IdentityUserAssignedIdentity = value ?? null; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionDestination _destination; + + /// + /// Information about the destination where events have to be delivered for the event subscription. + /// Uses Azure Event Grid's identity to acquire the authentication tokens being used during delivery / dead-lettering. + /// + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Owned)] + internal Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionDestination Destination { get => (this._destination = this._destination ?? new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.EventSubscriptionDestination()); set => this._destination = value; } + + /// Type of the endpoint for the event subscription destination. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Inlined)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EndpointType? EndpointType { get => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionDestinationInternal)Destination).EndpointType; set => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionDestinationInternal)Destination).EndpointType = value ?? ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EndpointType)""); } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EventDeliverySchema? _eventDeliverySchema; + + /// The event delivery schema for the event subscription. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Owned)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EventDeliverySchema? EventDeliverySchema { get => this._eventDeliverySchema; set => this._eventDeliverySchema = value; } + + /// Backing field for property. + private global::System.DateTime? _expirationTimeUtc; + + /// Expiration time of the event subscription. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Owned)] + public global::System.DateTime? ExpirationTimeUtc { get => this._expirationTimeUtc; set => this._expirationTimeUtc = value; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionFilter _filter; + + /// Information about the filter for the event subscription. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Owned)] + internal Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionFilter Filter { get => (this._filter = this._filter ?? new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.EventSubscriptionFilter()); set => this._filter = value; } + + /// An array of advanced filters that are used for filtering event subscriptions. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Inlined)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IAdvancedFilter[] FilterAdvancedFilter { get => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionFilterInternal)Filter).AdvancedFilter; set => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionFilterInternal)Filter).AdvancedFilter = value ?? null /* arrayOf */; } + + /// + /// Allows advanced filters to be evaluated against an array of values instead of expecting a singular value. + /// + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Inlined)] + public bool? FilterEnableAdvancedFilteringOnArray { get => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionFilterInternal)Filter).EnableAdvancedFilteringOnArray; set => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionFilterInternal)Filter).EnableAdvancedFilteringOnArray = value ?? default(bool); } + + /// + /// A list of applicable event types that need to be part of the event subscription. If it is desired to subscribe to all + /// default event types, set the IncludedEventTypes to null. + /// + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Inlined)] + public string[] FilterIncludedEventType { get => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionFilterInternal)Filter).IncludedEventType; set => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionFilterInternal)Filter).IncludedEventType = value ?? null /* arrayOf */; } + + /// + /// Specifies if the SubjectBeginsWith and SubjectEndsWith properties of the filter + /// should be compared in a case sensitive manner. + /// + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Inlined)] + public bool? FilterIsSubjectCaseSensitive { get => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionFilterInternal)Filter).IsSubjectCaseSensitive; set => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionFilterInternal)Filter).IsSubjectCaseSensitive = value ?? default(bool); } + + /// + /// An optional string to filter events for an event subscription based on a resource path prefix. + /// The format of this depends on the publisher of the events. + /// Wildcard characters are not supported in this path. + /// + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Inlined)] + public string FilterSubjectBeginsWith { get => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionFilterInternal)Filter).SubjectBeginsWith; set => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionFilterInternal)Filter).SubjectBeginsWith = value ?? null; } + + /// + /// An optional string to filter events for an event subscription based on a resource path suffix. + /// Wildcard characters are not supported in this path. + /// + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Inlined)] + public string FilterSubjectEndsWith { get => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionFilterInternal)Filter).SubjectEndsWith; set => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionFilterInternal)Filter).SubjectEndsWith = value ?? null; } + + /// Backing field for property. + private string[] _label; + + /// List of user defined labels. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Owned)] + public string[] Label { get => this._label; set => this._label = value; } + + /// Internal Acessors for DeadLetterDestination + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDeadLetterDestination Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionPropertiesInternal.DeadLetterDestination { get => (this._deadLetterDestination = this._deadLetterDestination ?? new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.DeadLetterDestination()); set { {_deadLetterDestination = value;} } } + + /// Internal Acessors for DeadLetterEndPointTypeEndpointType + string Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionPropertiesInternal.DeadLetterEndPointTypeEndpointType { get => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDeadLetterDestinationInternal)DeadLetterDestination).EndpointType; set => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDeadLetterDestinationInternal)DeadLetterDestination).EndpointType = value; } + + /// Internal Acessors for DeadLetterWithResourceIdentity + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDeadLetterWithResourceIdentity Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionPropertiesInternal.DeadLetterWithResourceIdentity { get => (this._deadLetterWithResourceIdentity = this._deadLetterWithResourceIdentity ?? new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.DeadLetterWithResourceIdentity()); set { {_deadLetterWithResourceIdentity = value;} } } + + /// Internal Acessors for DeadLetterWithResourceIdentityDeadLetterDestination + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDeadLetterDestination Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionPropertiesInternal.DeadLetterWithResourceIdentityDeadLetterDestination { get => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDeadLetterWithResourceIdentityInternal)DeadLetterWithResourceIdentity).DeadLetterDestination; set => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDeadLetterWithResourceIdentityInternal)DeadLetterWithResourceIdentity).DeadLetterDestination = value; } + + /// + /// Internal Acessors for DeadLetterWithResourceIdentityDeadLetterDestinationEndpointType + /// + string Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionPropertiesInternal.DeadLetterWithResourceIdentityDeadLetterDestinationEndpointType { get => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDeadLetterWithResourceIdentityInternal)DeadLetterWithResourceIdentity).DeadLetterDestinationEndpointType; set => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDeadLetterWithResourceIdentityInternal)DeadLetterWithResourceIdentity).DeadLetterDestinationEndpointType = value; } + + /// Internal Acessors for DeadLetterWithResourceIdentityIdentity + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionIdentity Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionPropertiesInternal.DeadLetterWithResourceIdentityIdentity { get => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDeadLetterWithResourceIdentityInternal)DeadLetterWithResourceIdentity).Identity; set => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDeadLetterWithResourceIdentityInternal)DeadLetterWithResourceIdentity).Identity = value; } + + /// Internal Acessors for DeliveryWithResourceIdentity + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDeliveryWithResourceIdentity Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionPropertiesInternal.DeliveryWithResourceIdentity { get => (this._deliveryWithResourceIdentity = this._deliveryWithResourceIdentity ?? new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.DeliveryWithResourceIdentity()); set { {_deliveryWithResourceIdentity = value;} } } + + /// Internal Acessors for DeliveryWithResourceIdentityDestination + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionDestination Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionPropertiesInternal.DeliveryWithResourceIdentityDestination { get => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDeliveryWithResourceIdentityInternal)DeliveryWithResourceIdentity).Destination; set => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDeliveryWithResourceIdentityInternal)DeliveryWithResourceIdentity).Destination = value; } + + /// Internal Acessors for DeliveryWithResourceIdentityIdentity + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionIdentity Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionPropertiesInternal.DeliveryWithResourceIdentityIdentity { get => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDeliveryWithResourceIdentityInternal)DeliveryWithResourceIdentity).Identity; set => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDeliveryWithResourceIdentityInternal)DeliveryWithResourceIdentity).Identity = value; } + + /// Internal Acessors for Destination + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionDestination Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionPropertiesInternal.Destination { get => (this._destination = this._destination ?? new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.EventSubscriptionDestination()); set { {_destination = value;} } } + + /// Internal Acessors for Filter + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionFilter Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionPropertiesInternal.Filter { get => (this._filter = this._filter ?? new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.EventSubscriptionFilter()); set { {_filter = value;} } } + + /// Internal Acessors for ProvisioningState + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EventSubscriptionProvisioningState? Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionPropertiesInternal.ProvisioningState { get => this._provisioningState; set { {_provisioningState = value;} } } + + /// Internal Acessors for RetryPolicy + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IRetryPolicy Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionPropertiesInternal.RetryPolicy { get => (this._retryPolicy = this._retryPolicy ?? new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.RetryPolicy()); set { {_retryPolicy = value;} } } + + /// Internal Acessors for Topic + string Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionPropertiesInternal.Topic { get => this._topic; set { {_topic = value;} } } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EventSubscriptionProvisioningState? _provisioningState; + + /// Provisioning state of the event subscription. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Owned)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EventSubscriptionProvisioningState? ProvisioningState { get => this._provisioningState; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IRetryPolicy _retryPolicy; + + /// + /// The retry policy for events. This can be used to configure maximum number of delivery attempts and time to live for events. + /// + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Owned)] + internal Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IRetryPolicy RetryPolicy { get => (this._retryPolicy = this._retryPolicy ?? new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.RetryPolicy()); set => this._retryPolicy = value; } + + /// Time To Live (in minutes) for events. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Inlined)] + public int? RetryPolicyEventTimeToLiveInMinute { get => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IRetryPolicyInternal)RetryPolicy).EventTimeToLiveInMinute; set => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IRetryPolicyInternal)RetryPolicy).EventTimeToLiveInMinute = value ?? default(int); } + + /// Maximum number of delivery retry attempts for events. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Inlined)] + public int? RetryPolicyMaxDeliveryAttempt { get => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IRetryPolicyInternal)RetryPolicy).MaxDeliveryAttempt; set => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IRetryPolicyInternal)RetryPolicy).MaxDeliveryAttempt = value ?? default(int); } + + /// Backing field for property. + private string _topic; + + /// Name of the topic of the event subscription. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Owned)] + public string Topic { get => this._topic; } + + /// Creates an new instance. + public EventSubscriptionProperties() + { + + } + } + /// Properties of the Event Subscription. + public partial interface IEventSubscriptionProperties : + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IJsonSerializable + { + /// Type of the endpoint for the dead letter destination + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"Type of the endpoint for the dead letter destination", + SerializedName = @"endpointType", + PossibleTypes = new [] { typeof(string) })] + string DeadLetterEndPointTypeEndpointType { get; } + /// Type of the endpoint for the dead letter destination + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"Type of the endpoint for the dead letter destination", + SerializedName = @"endpointType", + PossibleTypes = new [] { typeof(string) })] + string DeadLetterWithResourceIdentityDeadLetterDestinationEndpointType { get; } + /// + /// The type of managed identity used. The type 'SystemAssigned, UserAssigned' includes both an implicitly created identity + /// and a set of user-assigned identities. The type 'None' will remove any identity. + /// + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The type of managed identity used. The type 'SystemAssigned, UserAssigned' includes both an implicitly created identity and a set of user-assigned identities. The type 'None' will remove any identity.", + SerializedName = @"type", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EventSubscriptionIdentityType) })] + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EventSubscriptionIdentityType? DeadLetterWithResourceIdentityType { get; set; } + /// The user identity associated with the resource. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The user identity associated with the resource.", + SerializedName = @"userAssignedIdentity", + PossibleTypes = new [] { typeof(string) })] + string DeadLetterWithResourceIdentityUserAssignedIdentity { get; set; } + /// Type of the endpoint for the event subscription destination. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Type of the endpoint for the event subscription destination.", + SerializedName = @"endpointType", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EndpointType) })] + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EndpointType? DeliveryWithResourceIdentityDestinationEndpointType { get; set; } + /// + /// The type of managed identity used. The type 'SystemAssigned, UserAssigned' includes both an implicitly created identity + /// and a set of user-assigned identities. The type 'None' will remove any identity. + /// + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The type of managed identity used. The type 'SystemAssigned, UserAssigned' includes both an implicitly created identity and a set of user-assigned identities. The type 'None' will remove any identity.", + SerializedName = @"type", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EventSubscriptionIdentityType) })] + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EventSubscriptionIdentityType? DeliveryWithResourceIdentityType { get; set; } + /// The user identity associated with the resource. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The user identity associated with the resource.", + SerializedName = @"userAssignedIdentity", + PossibleTypes = new [] { typeof(string) })] + string DeliveryWithResourceIdentityUserAssignedIdentity { get; set; } + /// Type of the endpoint for the event subscription destination. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Type of the endpoint for the event subscription destination.", + SerializedName = @"endpointType", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EndpointType) })] + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EndpointType? EndpointType { get; set; } + /// The event delivery schema for the event subscription. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The event delivery schema for the event subscription.", + SerializedName = @"eventDeliverySchema", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EventDeliverySchema) })] + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EventDeliverySchema? EventDeliverySchema { get; set; } + /// Expiration time of the event subscription. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Expiration time of the event subscription.", + SerializedName = @"expirationTimeUtc", + PossibleTypes = new [] { typeof(global::System.DateTime) })] + global::System.DateTime? ExpirationTimeUtc { get; set; } + /// An array of advanced filters that are used for filtering event subscriptions. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"An array of advanced filters that are used for filtering event subscriptions.", + SerializedName = @"advancedFilters", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IAdvancedFilter) })] + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IAdvancedFilter[] FilterAdvancedFilter { get; set; } + /// + /// Allows advanced filters to be evaluated against an array of values instead of expecting a singular value. + /// + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Allows advanced filters to be evaluated against an array of values instead of expecting a singular value.", + SerializedName = @"enableAdvancedFilteringOnArrays", + PossibleTypes = new [] { typeof(bool) })] + bool? FilterEnableAdvancedFilteringOnArray { get; set; } + /// + /// A list of applicable event types that need to be part of the event subscription. If it is desired to subscribe to all + /// default event types, set the IncludedEventTypes to null. + /// + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"A list of applicable event types that need to be part of the event subscription. If it is desired to subscribe to all default event types, set the IncludedEventTypes to null.", + SerializedName = @"includedEventTypes", + PossibleTypes = new [] { typeof(string) })] + string[] FilterIncludedEventType { get; set; } + /// + /// Specifies if the SubjectBeginsWith and SubjectEndsWith properties of the filter + /// should be compared in a case sensitive manner. + /// + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Specifies if the SubjectBeginsWith and SubjectEndsWith properties of the filter + should be compared in a case sensitive manner.", + SerializedName = @"isSubjectCaseSensitive", + PossibleTypes = new [] { typeof(bool) })] + bool? FilterIsSubjectCaseSensitive { get; set; } + /// + /// An optional string to filter events for an event subscription based on a resource path prefix. + /// The format of this depends on the publisher of the events. + /// Wildcard characters are not supported in this path. + /// + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"An optional string to filter events for an event subscription based on a resource path prefix. + The format of this depends on the publisher of the events. + Wildcard characters are not supported in this path.", + SerializedName = @"subjectBeginsWith", + PossibleTypes = new [] { typeof(string) })] + string FilterSubjectBeginsWith { get; set; } + /// + /// An optional string to filter events for an event subscription based on a resource path suffix. + /// Wildcard characters are not supported in this path. + /// + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"An optional string to filter events for an event subscription based on a resource path suffix. + Wildcard characters are not supported in this path.", + SerializedName = @"subjectEndsWith", + PossibleTypes = new [] { typeof(string) })] + string FilterSubjectEndsWith { get; set; } + /// List of user defined labels. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"List of user defined labels.", + SerializedName = @"labels", + PossibleTypes = new [] { typeof(string) })] + string[] Label { get; set; } + /// Provisioning state of the event subscription. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"Provisioning state of the event subscription.", + SerializedName = @"provisioningState", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EventSubscriptionProvisioningState) })] + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EventSubscriptionProvisioningState? ProvisioningState { get; } + /// Time To Live (in minutes) for events. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Time To Live (in minutes) for events.", + SerializedName = @"eventTimeToLiveInMinutes", + PossibleTypes = new [] { typeof(int) })] + int? RetryPolicyEventTimeToLiveInMinute { get; set; } + /// Maximum number of delivery retry attempts for events. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Maximum number of delivery retry attempts for events.", + SerializedName = @"maxDeliveryAttempts", + PossibleTypes = new [] { typeof(int) })] + int? RetryPolicyMaxDeliveryAttempt { get; set; } + /// Name of the topic of the event subscription. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"Name of the topic of the event subscription.", + SerializedName = @"topic", + PossibleTypes = new [] { typeof(string) })] + string Topic { get; } + + } + /// Properties of the Event Subscription. + internal partial interface IEventSubscriptionPropertiesInternal + + { + /// + /// The dead letter destination of the event subscription. Any event that cannot be delivered to its' destination is sent + /// to the dead letter destination. + /// Uses Azure Event Grid's identity to acquire the authentication tokens being used during delivery / dead-lettering. + /// + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDeadLetterDestination DeadLetterDestination { get; set; } + /// Type of the endpoint for the dead letter destination + string DeadLetterEndPointTypeEndpointType { get; set; } + /// + /// The dead letter destination of the event subscription. Any event that cannot be delivered to its' destination is sent + /// to the dead letter destination. + /// Uses the managed identity setup on the parent resource (namely, topic or domain) to acquire the authentication tokens + /// being used during delivery / dead-lettering. + /// + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDeadLetterWithResourceIdentity DeadLetterWithResourceIdentity { get; set; } + /// + /// Information about the destination where events have to be delivered for the event subscription. + /// Uses the managed identity setup on the parent resource (namely, topic or domain) to acquire the authentication tokens + /// being used during delivery / dead-lettering. + /// + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDeadLetterDestination DeadLetterWithResourceIdentityDeadLetterDestination { get; set; } + /// Type of the endpoint for the dead letter destination + string DeadLetterWithResourceIdentityDeadLetterDestinationEndpointType { get; set; } + /// The identity to use when dead-lettering events. + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionIdentity DeadLetterWithResourceIdentityIdentity { get; set; } + /// + /// The type of managed identity used. The type 'SystemAssigned, UserAssigned' includes both an implicitly created identity + /// and a set of user-assigned identities. The type 'None' will remove any identity. + /// + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EventSubscriptionIdentityType? DeadLetterWithResourceIdentityType { get; set; } + /// The user identity associated with the resource. + string DeadLetterWithResourceIdentityUserAssignedIdentity { get; set; } + /// + /// Information about the destination where events have to be delivered for the event subscription. + /// Uses the managed identity setup on the parent resource (namely, topic or domain) to acquire the authentication tokens + /// being used during delivery / dead-lettering. + /// + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDeliveryWithResourceIdentity DeliveryWithResourceIdentity { get; set; } + /// + /// Information about the destination where events have to be delivered for the event subscription. + /// Uses Azure Event Grid's identity to acquire the authentication tokens being used during delivery / dead-lettering. + /// + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionDestination DeliveryWithResourceIdentityDestination { get; set; } + /// Type of the endpoint for the event subscription destination. + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EndpointType? DeliveryWithResourceIdentityDestinationEndpointType { get; set; } + /// The identity to use when delivering events. + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionIdentity DeliveryWithResourceIdentityIdentity { get; set; } + /// + /// The type of managed identity used. The type 'SystemAssigned, UserAssigned' includes both an implicitly created identity + /// and a set of user-assigned identities. The type 'None' will remove any identity. + /// + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EventSubscriptionIdentityType? DeliveryWithResourceIdentityType { get; set; } + /// The user identity associated with the resource. + string DeliveryWithResourceIdentityUserAssignedIdentity { get; set; } + /// + /// Information about the destination where events have to be delivered for the event subscription. + /// Uses Azure Event Grid's identity to acquire the authentication tokens being used during delivery / dead-lettering. + /// + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionDestination Destination { get; set; } + /// Type of the endpoint for the event subscription destination. + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EndpointType? EndpointType { get; set; } + /// The event delivery schema for the event subscription. + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EventDeliverySchema? EventDeliverySchema { get; set; } + /// Expiration time of the event subscription. + global::System.DateTime? ExpirationTimeUtc { get; set; } + /// Information about the filter for the event subscription. + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionFilter Filter { get; set; } + /// An array of advanced filters that are used for filtering event subscriptions. + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IAdvancedFilter[] FilterAdvancedFilter { get; set; } + /// + /// Allows advanced filters to be evaluated against an array of values instead of expecting a singular value. + /// + bool? FilterEnableAdvancedFilteringOnArray { get; set; } + /// + /// A list of applicable event types that need to be part of the event subscription. If it is desired to subscribe to all + /// default event types, set the IncludedEventTypes to null. + /// + string[] FilterIncludedEventType { get; set; } + /// + /// Specifies if the SubjectBeginsWith and SubjectEndsWith properties of the filter + /// should be compared in a case sensitive manner. + /// + bool? FilterIsSubjectCaseSensitive { get; set; } + /// + /// An optional string to filter events for an event subscription based on a resource path prefix. + /// The format of this depends on the publisher of the events. + /// Wildcard characters are not supported in this path. + /// + string FilterSubjectBeginsWith { get; set; } + /// + /// An optional string to filter events for an event subscription based on a resource path suffix. + /// Wildcard characters are not supported in this path. + /// + string FilterSubjectEndsWith { get; set; } + /// List of user defined labels. + string[] Label { get; set; } + /// Provisioning state of the event subscription. + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EventSubscriptionProvisioningState? ProvisioningState { get; set; } + /// + /// The retry policy for events. This can be used to configure maximum number of delivery attempts and time to live for events. + /// + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IRetryPolicy RetryPolicy { get; set; } + /// Time To Live (in minutes) for events. + int? RetryPolicyEventTimeToLiveInMinute { get; set; } + /// Maximum number of delivery retry attempts for events. + int? RetryPolicyMaxDeliveryAttempt { get; set; } + /// Name of the topic of the event subscription. + string Topic { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/EventSubscriptionProperties.json.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/EventSubscriptionProperties.json.cs new file mode 100644 index 000000000000..e4e6a245f53b --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/EventSubscriptionProperties.json.cs @@ -0,0 +1,140 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Extensions; + + /// Properties of the Event Subscription. + public partial class EventSubscriptionProperties + { + + /// + /// AfterFromJson will be called after the json deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JsonNode that should be deserialized into this object. + + partial void AfterFromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json erialization has finished, allowing customization of the before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JSON container that the serialization result will be placed in. + + partial void AfterToJson(ref Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject container); + + /// + /// BeforeFromJson will be called before the json deserialization has commenced, allowing complete customization of + /// the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JsonNode that should be deserialized into this object. + /// Determines if the rest of the deserialization should be processed, or if the method should return + /// instantly. + + partial void BeforeFromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject json, ref bool returnNow); + + /// + /// BeforeToJson will be called before the json serialization has commenced, allowing complete customization of the + /// object before it is serialized. + /// If you wish to disable the default serialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JSON container that the serialization result will be placed in. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeToJson(ref Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject instance to deserialize from. + internal EventSubscriptionProperties(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject json) + { + bool returnNow = false; + BeforeFromJson(json, ref returnNow); + if (returnNow) + { + return; + } + {_destination = If( json?.PropertyT("destination"), out var __jsonDestination) ? Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.EventSubscriptionDestination.FromJson(__jsonDestination) : Destination;} + {_deliveryWithResourceIdentity = If( json?.PropertyT("deliveryWithResourceIdentity"), out var __jsonDeliveryWithResourceIdentity) ? Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.DeliveryWithResourceIdentity.FromJson(__jsonDeliveryWithResourceIdentity) : DeliveryWithResourceIdentity;} + {_filter = If( json?.PropertyT("filter"), out var __jsonFilter) ? Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.EventSubscriptionFilter.FromJson(__jsonFilter) : Filter;} + {_retryPolicy = If( json?.PropertyT("retryPolicy"), out var __jsonRetryPolicy) ? Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.RetryPolicy.FromJson(__jsonRetryPolicy) : RetryPolicy;} + {_deadLetterDestination = If( json?.PropertyT("deadLetterDestination"), out var __jsonDeadLetterDestination) ? Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.DeadLetterDestination.FromJson(__jsonDeadLetterDestination) : DeadLetterDestination;} + {_deadLetterWithResourceIdentity = If( json?.PropertyT("deadLetterWithResourceIdentity"), out var __jsonDeadLetterWithResourceIdentity) ? Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.DeadLetterWithResourceIdentity.FromJson(__jsonDeadLetterWithResourceIdentity) : DeadLetterWithResourceIdentity;} + {_topic = If( json?.PropertyT("topic"), out var __jsonTopic) ? (string)__jsonTopic : (string)Topic;} + {_provisioningState = If( json?.PropertyT("provisioningState"), out var __jsonProvisioningState) ? (string)__jsonProvisioningState : (string)ProvisioningState;} + {_label = If( json?.PropertyT("labels"), out var __jsonLabels) ? If( __jsonLabels as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Runtime.Json.JsonString __t ? (string)(__t.ToString()) : null)) ))() : null : Label;} + {_expirationTimeUtc = If( json?.PropertyT("expirationTimeUtc"), out var __jsonExpirationTimeUtc) ? global::System.DateTime.TryParse((string)__jsonExpirationTimeUtc, global::System.Globalization.CultureInfo.InvariantCulture, global::System.Globalization.DateTimeStyles.AdjustToUniversal, out var __jsonExpirationTimeUtcValue) ? __jsonExpirationTimeUtcValue : ExpirationTimeUtc : ExpirationTimeUtc;} + {_eventDeliverySchema = If( json?.PropertyT("eventDeliverySchema"), out var __jsonEventDeliverySchema) ? (string)__jsonEventDeliverySchema : (string)EventDeliverySchema;} + AfterFromJson(json); + } + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionProperties. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionProperties. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionProperties FromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject json ? new EventSubscriptionProperties(json) : null; + } + + /// + /// Serializes this instance of into a . + /// + /// The container to serialize this object into. If the caller + /// passes in null, a new instance will be created and returned to the caller. + /// Allows the caller to choose the depth of the serialization. See . + /// + /// a serialized instance of as a . + /// + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject(); + + bool returnNow = false; + BeforeToJson(ref container, ref returnNow); + if (returnNow) + { + return container; + } + AddIf( null != this._destination ? (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode) this._destination.ToJson(null,serializationMode) : null, "destination" ,container.Add ); + AddIf( null != this._deliveryWithResourceIdentity ? (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode) this._deliveryWithResourceIdentity.ToJson(null,serializationMode) : null, "deliveryWithResourceIdentity" ,container.Add ); + AddIf( null != this._filter ? (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode) this._filter.ToJson(null,serializationMode) : null, "filter" ,container.Add ); + AddIf( null != this._retryPolicy ? (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode) this._retryPolicy.ToJson(null,serializationMode) : null, "retryPolicy" ,container.Add ); + AddIf( null != this._deadLetterDestination ? (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode) this._deadLetterDestination.ToJson(null,serializationMode) : null, "deadLetterDestination" ,container.Add ); + AddIf( null != this._deadLetterWithResourceIdentity ? (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode) this._deadLetterWithResourceIdentity.ToJson(null,serializationMode) : null, "deadLetterWithResourceIdentity" ,container.Add ); + if (serializationMode.HasFlag(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SerializationMode.IncludeReadOnly)) + { + AddIf( null != (((object)this._topic)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonString(this._topic.ToString()) : null, "topic" ,container.Add ); + } + if (serializationMode.HasFlag(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SerializationMode.IncludeReadOnly)) + { + AddIf( null != (((object)this._provisioningState)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonString(this._provisioningState.ToString()) : null, "provisioningState" ,container.Add ); + } + if (null != this._label) + { + var __w = new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.XNodeArray(); + foreach( var __x in this._label ) + { + AddIf(null != (((object)__x)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonString(__x.ToString()) : null ,__w.Add); + } + container.Add("labels",__w); + } + AddIf( null != this._expirationTimeUtc ? (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonString(this._expirationTimeUtc?.ToString(@"yyyy'-'MM'-'dd'T'HH':'mm':'ss.fffffffK",global::System.Globalization.CultureInfo.InvariantCulture)) : null, "expirationTimeUtc" ,container.Add ); + AddIf( null != (((object)this._eventDeliverySchema)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonString(this._eventDeliverySchema.ToString()) : null, "eventDeliverySchema" ,container.Add ); + AfterToJson(ref container); + return container; + } + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/EventSubscriptionUpdateParameters.PowerShell.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/EventSubscriptionUpdateParameters.PowerShell.cs new file mode 100644 index 000000000000..c45c07c8b24b --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/EventSubscriptionUpdateParameters.PowerShell.cs @@ -0,0 +1,370 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell; + + /// Properties of the Event Subscription update. + [System.ComponentModel.TypeConverter(typeof(EventSubscriptionUpdateParametersTypeConverter))] + public partial class EventSubscriptionUpdateParameters + { + + /// + /// AfterDeserializeDictionary will be called after the deserialization has finished, allowing customization of the + /// object before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Collections.IDictionary content that should be used. + + partial void AfterDeserializeDictionary(global::System.Collections.IDictionary content); + + /// + /// AfterDeserializePSObject will be called after the deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Management.Automation.PSObject content that should be used. + + partial void AfterDeserializePSObject(global::System.Management.Automation.PSObject content); + + /// + /// BeforeDeserializeDictionary will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Collections.IDictionary content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializeDictionary(global::System.Collections.IDictionary content, ref bool returnNow); + + /// + /// BeforeDeserializePSObject will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializePSObject(global::System.Management.Automation.PSObject content, ref bool returnNow); + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionUpdateParameters DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new EventSubscriptionUpdateParameters(content); + } + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionUpdateParameters DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new EventSubscriptionUpdateParameters(content); + } + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + internal EventSubscriptionUpdateParameters(global::System.Collections.IDictionary content) + { + bool returnNow = false; + BeforeDeserializeDictionary(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("Destination")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionUpdateParametersInternal)this).Destination = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionDestination) content.GetValueForProperty("Destination",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionUpdateParametersInternal)this).Destination, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.EventSubscriptionDestinationTypeConverter.ConvertFrom); + } + if (content.Contains("DeliveryWithResourceIdentity")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionUpdateParametersInternal)this).DeliveryWithResourceIdentity = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDeliveryWithResourceIdentity) content.GetValueForProperty("DeliveryWithResourceIdentity",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionUpdateParametersInternal)this).DeliveryWithResourceIdentity, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.DeliveryWithResourceIdentityTypeConverter.ConvertFrom); + } + if (content.Contains("Filter")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionUpdateParametersInternal)this).Filter = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionFilter) content.GetValueForProperty("Filter",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionUpdateParametersInternal)this).Filter, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.EventSubscriptionFilterTypeConverter.ConvertFrom); + } + if (content.Contains("RetryPolicy")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionUpdateParametersInternal)this).RetryPolicy = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IRetryPolicy) content.GetValueForProperty("RetryPolicy",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionUpdateParametersInternal)this).RetryPolicy, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.RetryPolicyTypeConverter.ConvertFrom); + } + if (content.Contains("DeadLetterDestination")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionUpdateParametersInternal)this).DeadLetterDestination = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDeadLetterDestination) content.GetValueForProperty("DeadLetterDestination",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionUpdateParametersInternal)this).DeadLetterDestination, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.DeadLetterDestinationTypeConverter.ConvertFrom); + } + if (content.Contains("DeadLetterWithResourceIdentity")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionUpdateParametersInternal)this).DeadLetterWithResourceIdentity = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDeadLetterWithResourceIdentity) content.GetValueForProperty("DeadLetterWithResourceIdentity",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionUpdateParametersInternal)this).DeadLetterWithResourceIdentity, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.DeadLetterWithResourceIdentityTypeConverter.ConvertFrom); + } + if (content.Contains("Label")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionUpdateParametersInternal)this).Label = (string[]) content.GetValueForProperty("Label",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionUpdateParametersInternal)this).Label, __y => TypeConverterExtensions.SelectToArray(__y, global::System.Convert.ToString)); + } + if (content.Contains("ExpirationTimeUtc")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionUpdateParametersInternal)this).ExpirationTimeUtc = (global::System.DateTime?) content.GetValueForProperty("ExpirationTimeUtc",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionUpdateParametersInternal)this).ExpirationTimeUtc, (v) => v is global::System.DateTime _v ? _v : global::System.Xml.XmlConvert.ToDateTime( v.ToString() , global::System.Xml.XmlDateTimeSerializationMode.Unspecified)); + } + if (content.Contains("EventDeliverySchema")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionUpdateParametersInternal)this).EventDeliverySchema = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EventDeliverySchema?) content.GetValueForProperty("EventDeliverySchema",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionUpdateParametersInternal)this).EventDeliverySchema, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EventDeliverySchema.CreateFrom); + } + if (content.Contains("EndpointType")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionUpdateParametersInternal)this).EndpointType = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EndpointType) content.GetValueForProperty("EndpointType",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionUpdateParametersInternal)this).EndpointType, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EndpointType.CreateFrom); + } + if (content.Contains("DeliveryWithResourceIdentityIdentity")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionUpdateParametersInternal)this).DeliveryWithResourceIdentityIdentity = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionIdentity) content.GetValueForProperty("DeliveryWithResourceIdentityIdentity",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionUpdateParametersInternal)this).DeliveryWithResourceIdentityIdentity, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.EventSubscriptionIdentityTypeConverter.ConvertFrom); + } + if (content.Contains("DeliveryWithResourceIdentityDestination")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionUpdateParametersInternal)this).DeliveryWithResourceIdentityDestination = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionDestination) content.GetValueForProperty("DeliveryWithResourceIdentityDestination",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionUpdateParametersInternal)this).DeliveryWithResourceIdentityDestination, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.EventSubscriptionDestinationTypeConverter.ConvertFrom); + } + if (content.Contains("DeliveryWithResourceIdentityDestinationEndpointType")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionUpdateParametersInternal)this).DeliveryWithResourceIdentityDestinationEndpointType = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EndpointType) content.GetValueForProperty("DeliveryWithResourceIdentityDestinationEndpointType",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionUpdateParametersInternal)this).DeliveryWithResourceIdentityDestinationEndpointType, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EndpointType.CreateFrom); + } + if (content.Contains("FilterSubjectBeginsWith")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionUpdateParametersInternal)this).FilterSubjectBeginsWith = (string) content.GetValueForProperty("FilterSubjectBeginsWith",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionUpdateParametersInternal)this).FilterSubjectBeginsWith, global::System.Convert.ToString); + } + if (content.Contains("FilterSubjectEndsWith")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionUpdateParametersInternal)this).FilterSubjectEndsWith = (string) content.GetValueForProperty("FilterSubjectEndsWith",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionUpdateParametersInternal)this).FilterSubjectEndsWith, global::System.Convert.ToString); + } + if (content.Contains("FilterIncludedEventType")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionUpdateParametersInternal)this).FilterIncludedEventType = (string[]) content.GetValueForProperty("FilterIncludedEventType",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionUpdateParametersInternal)this).FilterIncludedEventType, __y => TypeConverterExtensions.SelectToArray(__y, global::System.Convert.ToString)); + } + if (content.Contains("FilterIsSubjectCaseSensitive")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionUpdateParametersInternal)this).FilterIsSubjectCaseSensitive = (bool?) content.GetValueForProperty("FilterIsSubjectCaseSensitive",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionUpdateParametersInternal)this).FilterIsSubjectCaseSensitive, (__y)=> (bool) global::System.Convert.ChangeType(__y, typeof(bool))); + } + if (content.Contains("FilterEnableAdvancedFilteringOnArray")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionUpdateParametersInternal)this).FilterEnableAdvancedFilteringOnArray = (bool?) content.GetValueForProperty("FilterEnableAdvancedFilteringOnArray",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionUpdateParametersInternal)this).FilterEnableAdvancedFilteringOnArray, (__y)=> (bool) global::System.Convert.ChangeType(__y, typeof(bool))); + } + if (content.Contains("FilterAdvancedFilter")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionUpdateParametersInternal)this).FilterAdvancedFilter = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IAdvancedFilter[]) content.GetValueForProperty("FilterAdvancedFilter",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionUpdateParametersInternal)this).FilterAdvancedFilter, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.AdvancedFilterTypeConverter.ConvertFrom)); + } + if (content.Contains("RetryPolicyMaxDeliveryAttempt")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionUpdateParametersInternal)this).RetryPolicyMaxDeliveryAttempt = (int?) content.GetValueForProperty("RetryPolicyMaxDeliveryAttempt",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionUpdateParametersInternal)this).RetryPolicyMaxDeliveryAttempt, (__y)=> (int) global::System.Convert.ChangeType(__y, typeof(int))); + } + if (content.Contains("RetryPolicyEventTimeToLiveInMinute")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionUpdateParametersInternal)this).RetryPolicyEventTimeToLiveInMinute = (int?) content.GetValueForProperty("RetryPolicyEventTimeToLiveInMinute",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionUpdateParametersInternal)this).RetryPolicyEventTimeToLiveInMinute, (__y)=> (int) global::System.Convert.ChangeType(__y, typeof(int))); + } + if (content.Contains("DeadLetterEndPointTypeEndpointType")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionUpdateParametersInternal)this).DeadLetterEndPointTypeEndpointType = (string) content.GetValueForProperty("DeadLetterEndPointTypeEndpointType",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionUpdateParametersInternal)this).DeadLetterEndPointTypeEndpointType, global::System.Convert.ToString); + } + if (content.Contains("DeadLetterWithResourceIdentityIdentity")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionUpdateParametersInternal)this).DeadLetterWithResourceIdentityIdentity = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionIdentity) content.GetValueForProperty("DeadLetterWithResourceIdentityIdentity",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionUpdateParametersInternal)this).DeadLetterWithResourceIdentityIdentity, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.EventSubscriptionIdentityTypeConverter.ConvertFrom); + } + if (content.Contains("DeadLetterWithResourceIdentityDeadLetterDestination")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionUpdateParametersInternal)this).DeadLetterWithResourceIdentityDeadLetterDestination = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDeadLetterDestination) content.GetValueForProperty("DeadLetterWithResourceIdentityDeadLetterDestination",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionUpdateParametersInternal)this).DeadLetterWithResourceIdentityDeadLetterDestination, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.DeadLetterDestinationTypeConverter.ConvertFrom); + } + if (content.Contains("DeliveryWithResourceIdentityType")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionUpdateParametersInternal)this).DeliveryWithResourceIdentityType = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EventSubscriptionIdentityType?) content.GetValueForProperty("DeliveryWithResourceIdentityType",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionUpdateParametersInternal)this).DeliveryWithResourceIdentityType, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EventSubscriptionIdentityType.CreateFrom); + } + if (content.Contains("DeliveryWithResourceIdentityUserAssignedIdentity")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionUpdateParametersInternal)this).DeliveryWithResourceIdentityUserAssignedIdentity = (string) content.GetValueForProperty("DeliveryWithResourceIdentityUserAssignedIdentity",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionUpdateParametersInternal)this).DeliveryWithResourceIdentityUserAssignedIdentity, global::System.Convert.ToString); + } + if (content.Contains("DeadLetterWithResourceIdentityType")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionUpdateParametersInternal)this).DeadLetterWithResourceIdentityType = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EventSubscriptionIdentityType?) content.GetValueForProperty("DeadLetterWithResourceIdentityType",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionUpdateParametersInternal)this).DeadLetterWithResourceIdentityType, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EventSubscriptionIdentityType.CreateFrom); + } + if (content.Contains("DeadLetterWithResourceIdentityUserAssignedIdentity")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionUpdateParametersInternal)this).DeadLetterWithResourceIdentityUserAssignedIdentity = (string) content.GetValueForProperty("DeadLetterWithResourceIdentityUserAssignedIdentity",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionUpdateParametersInternal)this).DeadLetterWithResourceIdentityUserAssignedIdentity, global::System.Convert.ToString); + } + if (content.Contains("DeadLetterWithResourceIdentityDeadLetterDestinationEndpointType")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionUpdateParametersInternal)this).DeadLetterWithResourceIdentityDeadLetterDestinationEndpointType = (string) content.GetValueForProperty("DeadLetterWithResourceIdentityDeadLetterDestinationEndpointType",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionUpdateParametersInternal)this).DeadLetterWithResourceIdentityDeadLetterDestinationEndpointType, global::System.Convert.ToString); + } + AfterDeserializeDictionary(content); + } + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + internal EventSubscriptionUpdateParameters(global::System.Management.Automation.PSObject content) + { + bool returnNow = false; + BeforeDeserializePSObject(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("Destination")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionUpdateParametersInternal)this).Destination = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionDestination) content.GetValueForProperty("Destination",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionUpdateParametersInternal)this).Destination, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.EventSubscriptionDestinationTypeConverter.ConvertFrom); + } + if (content.Contains("DeliveryWithResourceIdentity")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionUpdateParametersInternal)this).DeliveryWithResourceIdentity = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDeliveryWithResourceIdentity) content.GetValueForProperty("DeliveryWithResourceIdentity",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionUpdateParametersInternal)this).DeliveryWithResourceIdentity, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.DeliveryWithResourceIdentityTypeConverter.ConvertFrom); + } + if (content.Contains("Filter")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionUpdateParametersInternal)this).Filter = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionFilter) content.GetValueForProperty("Filter",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionUpdateParametersInternal)this).Filter, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.EventSubscriptionFilterTypeConverter.ConvertFrom); + } + if (content.Contains("RetryPolicy")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionUpdateParametersInternal)this).RetryPolicy = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IRetryPolicy) content.GetValueForProperty("RetryPolicy",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionUpdateParametersInternal)this).RetryPolicy, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.RetryPolicyTypeConverter.ConvertFrom); + } + if (content.Contains("DeadLetterDestination")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionUpdateParametersInternal)this).DeadLetterDestination = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDeadLetterDestination) content.GetValueForProperty("DeadLetterDestination",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionUpdateParametersInternal)this).DeadLetterDestination, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.DeadLetterDestinationTypeConverter.ConvertFrom); + } + if (content.Contains("DeadLetterWithResourceIdentity")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionUpdateParametersInternal)this).DeadLetterWithResourceIdentity = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDeadLetterWithResourceIdentity) content.GetValueForProperty("DeadLetterWithResourceIdentity",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionUpdateParametersInternal)this).DeadLetterWithResourceIdentity, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.DeadLetterWithResourceIdentityTypeConverter.ConvertFrom); + } + if (content.Contains("Label")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionUpdateParametersInternal)this).Label = (string[]) content.GetValueForProperty("Label",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionUpdateParametersInternal)this).Label, __y => TypeConverterExtensions.SelectToArray(__y, global::System.Convert.ToString)); + } + if (content.Contains("ExpirationTimeUtc")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionUpdateParametersInternal)this).ExpirationTimeUtc = (global::System.DateTime?) content.GetValueForProperty("ExpirationTimeUtc",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionUpdateParametersInternal)this).ExpirationTimeUtc, (v) => v is global::System.DateTime _v ? _v : global::System.Xml.XmlConvert.ToDateTime( v.ToString() , global::System.Xml.XmlDateTimeSerializationMode.Unspecified)); + } + if (content.Contains("EventDeliverySchema")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionUpdateParametersInternal)this).EventDeliverySchema = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EventDeliverySchema?) content.GetValueForProperty("EventDeliverySchema",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionUpdateParametersInternal)this).EventDeliverySchema, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EventDeliverySchema.CreateFrom); + } + if (content.Contains("EndpointType")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionUpdateParametersInternal)this).EndpointType = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EndpointType) content.GetValueForProperty("EndpointType",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionUpdateParametersInternal)this).EndpointType, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EndpointType.CreateFrom); + } + if (content.Contains("DeliveryWithResourceIdentityIdentity")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionUpdateParametersInternal)this).DeliveryWithResourceIdentityIdentity = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionIdentity) content.GetValueForProperty("DeliveryWithResourceIdentityIdentity",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionUpdateParametersInternal)this).DeliveryWithResourceIdentityIdentity, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.EventSubscriptionIdentityTypeConverter.ConvertFrom); + } + if (content.Contains("DeliveryWithResourceIdentityDestination")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionUpdateParametersInternal)this).DeliveryWithResourceIdentityDestination = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionDestination) content.GetValueForProperty("DeliveryWithResourceIdentityDestination",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionUpdateParametersInternal)this).DeliveryWithResourceIdentityDestination, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.EventSubscriptionDestinationTypeConverter.ConvertFrom); + } + if (content.Contains("DeliveryWithResourceIdentityDestinationEndpointType")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionUpdateParametersInternal)this).DeliveryWithResourceIdentityDestinationEndpointType = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EndpointType) content.GetValueForProperty("DeliveryWithResourceIdentityDestinationEndpointType",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionUpdateParametersInternal)this).DeliveryWithResourceIdentityDestinationEndpointType, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EndpointType.CreateFrom); + } + if (content.Contains("FilterSubjectBeginsWith")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionUpdateParametersInternal)this).FilterSubjectBeginsWith = (string) content.GetValueForProperty("FilterSubjectBeginsWith",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionUpdateParametersInternal)this).FilterSubjectBeginsWith, global::System.Convert.ToString); + } + if (content.Contains("FilterSubjectEndsWith")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionUpdateParametersInternal)this).FilterSubjectEndsWith = (string) content.GetValueForProperty("FilterSubjectEndsWith",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionUpdateParametersInternal)this).FilterSubjectEndsWith, global::System.Convert.ToString); + } + if (content.Contains("FilterIncludedEventType")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionUpdateParametersInternal)this).FilterIncludedEventType = (string[]) content.GetValueForProperty("FilterIncludedEventType",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionUpdateParametersInternal)this).FilterIncludedEventType, __y => TypeConverterExtensions.SelectToArray(__y, global::System.Convert.ToString)); + } + if (content.Contains("FilterIsSubjectCaseSensitive")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionUpdateParametersInternal)this).FilterIsSubjectCaseSensitive = (bool?) content.GetValueForProperty("FilterIsSubjectCaseSensitive",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionUpdateParametersInternal)this).FilterIsSubjectCaseSensitive, (__y)=> (bool) global::System.Convert.ChangeType(__y, typeof(bool))); + } + if (content.Contains("FilterEnableAdvancedFilteringOnArray")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionUpdateParametersInternal)this).FilterEnableAdvancedFilteringOnArray = (bool?) content.GetValueForProperty("FilterEnableAdvancedFilteringOnArray",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionUpdateParametersInternal)this).FilterEnableAdvancedFilteringOnArray, (__y)=> (bool) global::System.Convert.ChangeType(__y, typeof(bool))); + } + if (content.Contains("FilterAdvancedFilter")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionUpdateParametersInternal)this).FilterAdvancedFilter = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IAdvancedFilter[]) content.GetValueForProperty("FilterAdvancedFilter",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionUpdateParametersInternal)this).FilterAdvancedFilter, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.AdvancedFilterTypeConverter.ConvertFrom)); + } + if (content.Contains("RetryPolicyMaxDeliveryAttempt")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionUpdateParametersInternal)this).RetryPolicyMaxDeliveryAttempt = (int?) content.GetValueForProperty("RetryPolicyMaxDeliveryAttempt",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionUpdateParametersInternal)this).RetryPolicyMaxDeliveryAttempt, (__y)=> (int) global::System.Convert.ChangeType(__y, typeof(int))); + } + if (content.Contains("RetryPolicyEventTimeToLiveInMinute")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionUpdateParametersInternal)this).RetryPolicyEventTimeToLiveInMinute = (int?) content.GetValueForProperty("RetryPolicyEventTimeToLiveInMinute",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionUpdateParametersInternal)this).RetryPolicyEventTimeToLiveInMinute, (__y)=> (int) global::System.Convert.ChangeType(__y, typeof(int))); + } + if (content.Contains("DeadLetterEndPointTypeEndpointType")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionUpdateParametersInternal)this).DeadLetterEndPointTypeEndpointType = (string) content.GetValueForProperty("DeadLetterEndPointTypeEndpointType",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionUpdateParametersInternal)this).DeadLetterEndPointTypeEndpointType, global::System.Convert.ToString); + } + if (content.Contains("DeadLetterWithResourceIdentityIdentity")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionUpdateParametersInternal)this).DeadLetterWithResourceIdentityIdentity = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionIdentity) content.GetValueForProperty("DeadLetterWithResourceIdentityIdentity",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionUpdateParametersInternal)this).DeadLetterWithResourceIdentityIdentity, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.EventSubscriptionIdentityTypeConverter.ConvertFrom); + } + if (content.Contains("DeadLetterWithResourceIdentityDeadLetterDestination")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionUpdateParametersInternal)this).DeadLetterWithResourceIdentityDeadLetterDestination = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDeadLetterDestination) content.GetValueForProperty("DeadLetterWithResourceIdentityDeadLetterDestination",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionUpdateParametersInternal)this).DeadLetterWithResourceIdentityDeadLetterDestination, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.DeadLetterDestinationTypeConverter.ConvertFrom); + } + if (content.Contains("DeliveryWithResourceIdentityType")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionUpdateParametersInternal)this).DeliveryWithResourceIdentityType = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EventSubscriptionIdentityType?) content.GetValueForProperty("DeliveryWithResourceIdentityType",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionUpdateParametersInternal)this).DeliveryWithResourceIdentityType, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EventSubscriptionIdentityType.CreateFrom); + } + if (content.Contains("DeliveryWithResourceIdentityUserAssignedIdentity")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionUpdateParametersInternal)this).DeliveryWithResourceIdentityUserAssignedIdentity = (string) content.GetValueForProperty("DeliveryWithResourceIdentityUserAssignedIdentity",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionUpdateParametersInternal)this).DeliveryWithResourceIdentityUserAssignedIdentity, global::System.Convert.ToString); + } + if (content.Contains("DeadLetterWithResourceIdentityType")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionUpdateParametersInternal)this).DeadLetterWithResourceIdentityType = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EventSubscriptionIdentityType?) content.GetValueForProperty("DeadLetterWithResourceIdentityType",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionUpdateParametersInternal)this).DeadLetterWithResourceIdentityType, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EventSubscriptionIdentityType.CreateFrom); + } + if (content.Contains("DeadLetterWithResourceIdentityUserAssignedIdentity")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionUpdateParametersInternal)this).DeadLetterWithResourceIdentityUserAssignedIdentity = (string) content.GetValueForProperty("DeadLetterWithResourceIdentityUserAssignedIdentity",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionUpdateParametersInternal)this).DeadLetterWithResourceIdentityUserAssignedIdentity, global::System.Convert.ToString); + } + if (content.Contains("DeadLetterWithResourceIdentityDeadLetterDestinationEndpointType")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionUpdateParametersInternal)this).DeadLetterWithResourceIdentityDeadLetterDestinationEndpointType = (string) content.GetValueForProperty("DeadLetterWithResourceIdentityDeadLetterDestinationEndpointType",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionUpdateParametersInternal)this).DeadLetterWithResourceIdentityDeadLetterDestinationEndpointType, 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.EventGrid.Models.Api20211015Preview.IEventSubscriptionUpdateParameters FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode.Parse(jsonText)); + + /// Serializes this instance to a json string. + + /// a containing this model serialized to JSON text. + public string ToJsonString() => ToJson(null, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// Properties of the Event Subscription update. + [System.ComponentModel.TypeConverter(typeof(EventSubscriptionUpdateParametersTypeConverter))] + public partial interface IEventSubscriptionUpdateParameters + + { + + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/EventSubscriptionUpdateParameters.TypeConverter.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/EventSubscriptionUpdateParameters.TypeConverter.cs new file mode 100644 index 000000000000..ecdcbcc2610b --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/EventSubscriptionUpdateParameters.TypeConverter.cs @@ -0,0 +1,147 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class EventSubscriptionUpdateParametersTypeConverter : global::System.Management.Automation.PSTypeConverter + { + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false. + /// + public override bool CanConvertFrom(object sourceValue, global::System.Type destinationType) => CanConvertFrom(sourceValue); + + /// + /// Determines if the converter can convert the parameter to the . + /// + /// the instance to check if it can be converted to the type. + /// + /// true if the instance could be converted to a type, otherwise false + /// + public static bool CanConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return true; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + // we say yest to PSObjects + return true; + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + // we say yest to Hashtables/dictionaries + return true; + } + try + { + if (null != sourceValue.ToJsonString()) + { + return true; + } + } + catch + { + // Not one of our objects + } + try + { + string text = sourceValue.ToString()?.Trim(); + return true == text?.StartsWith("{") && true == text?.EndsWith("}") && Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonType.Object; + } + catch + { + // Doesn't look like it can be treated as JSON + } + return false; + } + + /// + /// Determines if the parameter can be converted to the parameter + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false + /// + public override bool CanConvertTo(object sourceValue, global::System.Type destinationType) => false; + + /// + /// Converts the parameter to the parameter using and + /// + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// + /// an instance of , or null if there is no suitable conversion. + /// + public override object ConvertFrom(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => ConvertFrom(sourceValue); + + /// + /// Converts the parameter to the parameter using and + /// + /// the value to convert into an instance of . + /// + /// an instance of , or null if there is no suitable conversion. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionUpdateParameters ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionUpdateParameters).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return EventSubscriptionUpdateParameters.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return EventSubscriptionUpdateParameters.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return EventSubscriptionUpdateParameters.DeserializeFromDictionary(sourceValue); + } + return null; + } + + /// NotImplemented -- this will return null + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// will always return null. + public override object ConvertTo(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => null; + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/EventSubscriptionUpdateParameters.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/EventSubscriptionUpdateParameters.cs new file mode 100644 index 000000000000..4ebfc92cbbc6 --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/EventSubscriptionUpdateParameters.cs @@ -0,0 +1,519 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Extensions; + + /// Properties of the Event Subscription update. + public partial class EventSubscriptionUpdateParameters : + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionUpdateParameters, + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionUpdateParametersInternal + { + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDeadLetterDestination _deadLetterDestination; + + /// + /// The dead letter destination of the event subscription. Any event that cannot be delivered to its' destination is sent + /// to the dead letter destination. + /// Uses Azure Event Grid's identity to acquire the authentication tokens being used during delivery / dead-lettering. + /// + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Owned)] + internal Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDeadLetterDestination DeadLetterDestination { get => (this._deadLetterDestination = this._deadLetterDestination ?? new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.DeadLetterDestination()); set => this._deadLetterDestination = value; } + + /// Type of the endpoint for the dead letter destination + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Inlined)] + public string DeadLetterEndPointTypeEndpointType { get => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDeadLetterDestinationInternal)DeadLetterDestination).EndpointType; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDeadLetterWithResourceIdentity _deadLetterWithResourceIdentity; + + /// + /// The dead letter destination of the event subscription. Any event that cannot be delivered to its' destination is sent + /// to the dead letter destination. + /// Uses the managed identity setup on the parent resource (topic / domain) to acquire the authentication tokens being used + /// during delivery / dead-lettering. + /// + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Owned)] + internal Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDeadLetterWithResourceIdentity DeadLetterWithResourceIdentity { get => (this._deadLetterWithResourceIdentity = this._deadLetterWithResourceIdentity ?? new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.DeadLetterWithResourceIdentity()); set => this._deadLetterWithResourceIdentity = value; } + + /// Type of the endpoint for the dead letter destination + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Inlined)] + public string DeadLetterWithResourceIdentityDeadLetterDestinationEndpointType { get => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDeadLetterWithResourceIdentityInternal)DeadLetterWithResourceIdentity).DeadLetterDestinationEndpointType; } + + /// + /// The type of managed identity used. The type 'SystemAssigned, UserAssigned' includes both an implicitly created identity + /// and a set of user-assigned identities. The type 'None' will remove any identity. + /// + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Inlined)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EventSubscriptionIdentityType? DeadLetterWithResourceIdentityType { get => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDeadLetterWithResourceIdentityInternal)DeadLetterWithResourceIdentity).IdentityType; set => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDeadLetterWithResourceIdentityInternal)DeadLetterWithResourceIdentity).IdentityType = value ?? ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EventSubscriptionIdentityType)""); } + + /// The user identity associated with the resource. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Inlined)] + public string DeadLetterWithResourceIdentityUserAssignedIdentity { get => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDeadLetterWithResourceIdentityInternal)DeadLetterWithResourceIdentity).IdentityUserAssignedIdentity; set => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDeadLetterWithResourceIdentityInternal)DeadLetterWithResourceIdentity).IdentityUserAssignedIdentity = value ?? null; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDeliveryWithResourceIdentity _deliveryWithResourceIdentity; + + /// + /// Information about the destination where events have to be delivered for the event subscription. + /// Uses the managed identity setup on the parent resource (topic / domain) to acquire the authentication tokens being used + /// during delivery / dead-lettering. + /// + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Owned)] + internal Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDeliveryWithResourceIdentity DeliveryWithResourceIdentity { get => (this._deliveryWithResourceIdentity = this._deliveryWithResourceIdentity ?? new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.DeliveryWithResourceIdentity()); set => this._deliveryWithResourceIdentity = value; } + + /// Type of the endpoint for the event subscription destination. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Inlined)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EndpointType? DeliveryWithResourceIdentityDestinationEndpointType { get => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDeliveryWithResourceIdentityInternal)DeliveryWithResourceIdentity).DestinationEndpointType; set => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDeliveryWithResourceIdentityInternal)DeliveryWithResourceIdentity).DestinationEndpointType = value ?? ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EndpointType)""); } + + /// + /// The type of managed identity used. The type 'SystemAssigned, UserAssigned' includes both an implicitly created identity + /// and a set of user-assigned identities. The type 'None' will remove any identity. + /// + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Inlined)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EventSubscriptionIdentityType? DeliveryWithResourceIdentityType { get => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDeliveryWithResourceIdentityInternal)DeliveryWithResourceIdentity).IdentityType; set => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDeliveryWithResourceIdentityInternal)DeliveryWithResourceIdentity).IdentityType = value ?? ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EventSubscriptionIdentityType)""); } + + /// The user identity associated with the resource. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Inlined)] + public string DeliveryWithResourceIdentityUserAssignedIdentity { get => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDeliveryWithResourceIdentityInternal)DeliveryWithResourceIdentity).IdentityUserAssignedIdentity; set => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDeliveryWithResourceIdentityInternal)DeliveryWithResourceIdentity).IdentityUserAssignedIdentity = value ?? null; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionDestination _destination; + + /// + /// Information about the destination where events have to be delivered for the event subscription. + /// Uses Azure Event Grid's identity to acquire the authentication tokens being used during delivery / dead-lettering. + /// + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Owned)] + internal Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionDestination Destination { get => (this._destination = this._destination ?? new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.EventSubscriptionDestination()); set => this._destination = value; } + + /// Type of the endpoint for the event subscription destination. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Inlined)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EndpointType? EndpointType { get => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionDestinationInternal)Destination).EndpointType; set => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionDestinationInternal)Destination).EndpointType = value ?? ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EndpointType)""); } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EventDeliverySchema? _eventDeliverySchema; + + /// The event delivery schema for the event subscription. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Owned)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EventDeliverySchema? EventDeliverySchema { get => this._eventDeliverySchema; set => this._eventDeliverySchema = value; } + + /// Backing field for property. + private global::System.DateTime? _expirationTimeUtc; + + /// Information about the expiration time for the event subscription. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Owned)] + public global::System.DateTime? ExpirationTimeUtc { get => this._expirationTimeUtc; set => this._expirationTimeUtc = value; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionFilter _filter; + + /// Information about the filter for the event subscription. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Owned)] + internal Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionFilter Filter { get => (this._filter = this._filter ?? new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.EventSubscriptionFilter()); set => this._filter = value; } + + /// An array of advanced filters that are used for filtering event subscriptions. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Inlined)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IAdvancedFilter[] FilterAdvancedFilter { get => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionFilterInternal)Filter).AdvancedFilter; set => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionFilterInternal)Filter).AdvancedFilter = value ?? null /* arrayOf */; } + + /// + /// Allows advanced filters to be evaluated against an array of values instead of expecting a singular value. + /// + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Inlined)] + public bool? FilterEnableAdvancedFilteringOnArray { get => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionFilterInternal)Filter).EnableAdvancedFilteringOnArray; set => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionFilterInternal)Filter).EnableAdvancedFilteringOnArray = value ?? default(bool); } + + /// + /// A list of applicable event types that need to be part of the event subscription. If it is desired to subscribe to all + /// default event types, set the IncludedEventTypes to null. + /// + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Inlined)] + public string[] FilterIncludedEventType { get => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionFilterInternal)Filter).IncludedEventType; set => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionFilterInternal)Filter).IncludedEventType = value ?? null /* arrayOf */; } + + /// + /// Specifies if the SubjectBeginsWith and SubjectEndsWith properties of the filter + /// should be compared in a case sensitive manner. + /// + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Inlined)] + public bool? FilterIsSubjectCaseSensitive { get => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionFilterInternal)Filter).IsSubjectCaseSensitive; set => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionFilterInternal)Filter).IsSubjectCaseSensitive = value ?? default(bool); } + + /// + /// An optional string to filter events for an event subscription based on a resource path prefix. + /// The format of this depends on the publisher of the events. + /// Wildcard characters are not supported in this path. + /// + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Inlined)] + public string FilterSubjectBeginsWith { get => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionFilterInternal)Filter).SubjectBeginsWith; set => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionFilterInternal)Filter).SubjectBeginsWith = value ?? null; } + + /// + /// An optional string to filter events for an event subscription based on a resource path suffix. + /// Wildcard characters are not supported in this path. + /// + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Inlined)] + public string FilterSubjectEndsWith { get => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionFilterInternal)Filter).SubjectEndsWith; set => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionFilterInternal)Filter).SubjectEndsWith = value ?? null; } + + /// Backing field for property. + private string[] _label; + + /// List of user defined labels. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Owned)] + public string[] Label { get => this._label; set => this._label = value; } + + /// Internal Acessors for DeadLetterDestination + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDeadLetterDestination Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionUpdateParametersInternal.DeadLetterDestination { get => (this._deadLetterDestination = this._deadLetterDestination ?? new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.DeadLetterDestination()); set { {_deadLetterDestination = value;} } } + + /// Internal Acessors for DeadLetterEndPointTypeEndpointType + string Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionUpdateParametersInternal.DeadLetterEndPointTypeEndpointType { get => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDeadLetterDestinationInternal)DeadLetterDestination).EndpointType; set => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDeadLetterDestinationInternal)DeadLetterDestination).EndpointType = value; } + + /// Internal Acessors for DeadLetterWithResourceIdentity + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDeadLetterWithResourceIdentity Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionUpdateParametersInternal.DeadLetterWithResourceIdentity { get => (this._deadLetterWithResourceIdentity = this._deadLetterWithResourceIdentity ?? new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.DeadLetterWithResourceIdentity()); set { {_deadLetterWithResourceIdentity = value;} } } + + /// Internal Acessors for DeadLetterWithResourceIdentityDeadLetterDestination + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDeadLetterDestination Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionUpdateParametersInternal.DeadLetterWithResourceIdentityDeadLetterDestination { get => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDeadLetterWithResourceIdentityInternal)DeadLetterWithResourceIdentity).DeadLetterDestination; set => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDeadLetterWithResourceIdentityInternal)DeadLetterWithResourceIdentity).DeadLetterDestination = value; } + + /// + /// Internal Acessors for DeadLetterWithResourceIdentityDeadLetterDestinationEndpointType + /// + string Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionUpdateParametersInternal.DeadLetterWithResourceIdentityDeadLetterDestinationEndpointType { get => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDeadLetterWithResourceIdentityInternal)DeadLetterWithResourceIdentity).DeadLetterDestinationEndpointType; set => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDeadLetterWithResourceIdentityInternal)DeadLetterWithResourceIdentity).DeadLetterDestinationEndpointType = value; } + + /// Internal Acessors for DeadLetterWithResourceIdentityIdentity + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionIdentity Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionUpdateParametersInternal.DeadLetterWithResourceIdentityIdentity { get => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDeadLetterWithResourceIdentityInternal)DeadLetterWithResourceIdentity).Identity; set => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDeadLetterWithResourceIdentityInternal)DeadLetterWithResourceIdentity).Identity = value; } + + /// Internal Acessors for DeliveryWithResourceIdentity + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDeliveryWithResourceIdentity Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionUpdateParametersInternal.DeliveryWithResourceIdentity { get => (this._deliveryWithResourceIdentity = this._deliveryWithResourceIdentity ?? new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.DeliveryWithResourceIdentity()); set { {_deliveryWithResourceIdentity = value;} } } + + /// Internal Acessors for DeliveryWithResourceIdentityDestination + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionDestination Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionUpdateParametersInternal.DeliveryWithResourceIdentityDestination { get => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDeliveryWithResourceIdentityInternal)DeliveryWithResourceIdentity).Destination; set => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDeliveryWithResourceIdentityInternal)DeliveryWithResourceIdentity).Destination = value; } + + /// Internal Acessors for DeliveryWithResourceIdentityIdentity + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionIdentity Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionUpdateParametersInternal.DeliveryWithResourceIdentityIdentity { get => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDeliveryWithResourceIdentityInternal)DeliveryWithResourceIdentity).Identity; set => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDeliveryWithResourceIdentityInternal)DeliveryWithResourceIdentity).Identity = value; } + + /// Internal Acessors for Destination + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionDestination Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionUpdateParametersInternal.Destination { get => (this._destination = this._destination ?? new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.EventSubscriptionDestination()); set { {_destination = value;} } } + + /// Internal Acessors for Filter + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionFilter Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionUpdateParametersInternal.Filter { get => (this._filter = this._filter ?? new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.EventSubscriptionFilter()); set { {_filter = value;} } } + + /// Internal Acessors for RetryPolicy + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IRetryPolicy Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionUpdateParametersInternal.RetryPolicy { get => (this._retryPolicy = this._retryPolicy ?? new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.RetryPolicy()); set { {_retryPolicy = value;} } } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IRetryPolicy _retryPolicy; + + /// + /// The retry policy for events. This can be used to configure maximum number of delivery attempts and time to live for events. + /// + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Owned)] + internal Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IRetryPolicy RetryPolicy { get => (this._retryPolicy = this._retryPolicy ?? new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.RetryPolicy()); set => this._retryPolicy = value; } + + /// Time To Live (in minutes) for events. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Inlined)] + public int? RetryPolicyEventTimeToLiveInMinute { get => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IRetryPolicyInternal)RetryPolicy).EventTimeToLiveInMinute; set => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IRetryPolicyInternal)RetryPolicy).EventTimeToLiveInMinute = value ?? default(int); } + + /// Maximum number of delivery retry attempts for events. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Inlined)] + public int? RetryPolicyMaxDeliveryAttempt { get => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IRetryPolicyInternal)RetryPolicy).MaxDeliveryAttempt; set => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IRetryPolicyInternal)RetryPolicy).MaxDeliveryAttempt = value ?? default(int); } + + /// Creates an new instance. + public EventSubscriptionUpdateParameters() + { + + } + } + /// Properties of the Event Subscription update. + public partial interface IEventSubscriptionUpdateParameters : + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IJsonSerializable + { + /// Type of the endpoint for the dead letter destination + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"Type of the endpoint for the dead letter destination", + SerializedName = @"endpointType", + PossibleTypes = new [] { typeof(string) })] + string DeadLetterEndPointTypeEndpointType { get; } + /// Type of the endpoint for the dead letter destination + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"Type of the endpoint for the dead letter destination", + SerializedName = @"endpointType", + PossibleTypes = new [] { typeof(string) })] + string DeadLetterWithResourceIdentityDeadLetterDestinationEndpointType { get; } + /// + /// The type of managed identity used. The type 'SystemAssigned, UserAssigned' includes both an implicitly created identity + /// and a set of user-assigned identities. The type 'None' will remove any identity. + /// + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The type of managed identity used. The type 'SystemAssigned, UserAssigned' includes both an implicitly created identity and a set of user-assigned identities. The type 'None' will remove any identity.", + SerializedName = @"type", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EventSubscriptionIdentityType) })] + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EventSubscriptionIdentityType? DeadLetterWithResourceIdentityType { get; set; } + /// The user identity associated with the resource. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The user identity associated with the resource.", + SerializedName = @"userAssignedIdentity", + PossibleTypes = new [] { typeof(string) })] + string DeadLetterWithResourceIdentityUserAssignedIdentity { get; set; } + /// Type of the endpoint for the event subscription destination. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Type of the endpoint for the event subscription destination.", + SerializedName = @"endpointType", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EndpointType) })] + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EndpointType? DeliveryWithResourceIdentityDestinationEndpointType { get; set; } + /// + /// The type of managed identity used. The type 'SystemAssigned, UserAssigned' includes both an implicitly created identity + /// and a set of user-assigned identities. The type 'None' will remove any identity. + /// + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The type of managed identity used. The type 'SystemAssigned, UserAssigned' includes both an implicitly created identity and a set of user-assigned identities. The type 'None' will remove any identity.", + SerializedName = @"type", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EventSubscriptionIdentityType) })] + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EventSubscriptionIdentityType? DeliveryWithResourceIdentityType { get; set; } + /// The user identity associated with the resource. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The user identity associated with the resource.", + SerializedName = @"userAssignedIdentity", + PossibleTypes = new [] { typeof(string) })] + string DeliveryWithResourceIdentityUserAssignedIdentity { get; set; } + /// Type of the endpoint for the event subscription destination. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Type of the endpoint for the event subscription destination.", + SerializedName = @"endpointType", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EndpointType) })] + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EndpointType? EndpointType { get; set; } + /// The event delivery schema for the event subscription. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The event delivery schema for the event subscription.", + SerializedName = @"eventDeliverySchema", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EventDeliverySchema) })] + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EventDeliverySchema? EventDeliverySchema { get; set; } + /// Information about the expiration time for the event subscription. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Information about the expiration time for the event subscription.", + SerializedName = @"expirationTimeUtc", + PossibleTypes = new [] { typeof(global::System.DateTime) })] + global::System.DateTime? ExpirationTimeUtc { get; set; } + /// An array of advanced filters that are used for filtering event subscriptions. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"An array of advanced filters that are used for filtering event subscriptions.", + SerializedName = @"advancedFilters", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IAdvancedFilter) })] + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IAdvancedFilter[] FilterAdvancedFilter { get; set; } + /// + /// Allows advanced filters to be evaluated against an array of values instead of expecting a singular value. + /// + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Allows advanced filters to be evaluated against an array of values instead of expecting a singular value.", + SerializedName = @"enableAdvancedFilteringOnArrays", + PossibleTypes = new [] { typeof(bool) })] + bool? FilterEnableAdvancedFilteringOnArray { get; set; } + /// + /// A list of applicable event types that need to be part of the event subscription. If it is desired to subscribe to all + /// default event types, set the IncludedEventTypes to null. + /// + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"A list of applicable event types that need to be part of the event subscription. If it is desired to subscribe to all default event types, set the IncludedEventTypes to null.", + SerializedName = @"includedEventTypes", + PossibleTypes = new [] { typeof(string) })] + string[] FilterIncludedEventType { get; set; } + /// + /// Specifies if the SubjectBeginsWith and SubjectEndsWith properties of the filter + /// should be compared in a case sensitive manner. + /// + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Specifies if the SubjectBeginsWith and SubjectEndsWith properties of the filter + should be compared in a case sensitive manner.", + SerializedName = @"isSubjectCaseSensitive", + PossibleTypes = new [] { typeof(bool) })] + bool? FilterIsSubjectCaseSensitive { get; set; } + /// + /// An optional string to filter events for an event subscription based on a resource path prefix. + /// The format of this depends on the publisher of the events. + /// Wildcard characters are not supported in this path. + /// + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"An optional string to filter events for an event subscription based on a resource path prefix. + The format of this depends on the publisher of the events. + Wildcard characters are not supported in this path.", + SerializedName = @"subjectBeginsWith", + PossibleTypes = new [] { typeof(string) })] + string FilterSubjectBeginsWith { get; set; } + /// + /// An optional string to filter events for an event subscription based on a resource path suffix. + /// Wildcard characters are not supported in this path. + /// + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"An optional string to filter events for an event subscription based on a resource path suffix. + Wildcard characters are not supported in this path.", + SerializedName = @"subjectEndsWith", + PossibleTypes = new [] { typeof(string) })] + string FilterSubjectEndsWith { get; set; } + /// List of user defined labels. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"List of user defined labels.", + SerializedName = @"labels", + PossibleTypes = new [] { typeof(string) })] + string[] Label { get; set; } + /// Time To Live (in minutes) for events. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Time To Live (in minutes) for events.", + SerializedName = @"eventTimeToLiveInMinutes", + PossibleTypes = new [] { typeof(int) })] + int? RetryPolicyEventTimeToLiveInMinute { get; set; } + /// Maximum number of delivery retry attempts for events. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Maximum number of delivery retry attempts for events.", + SerializedName = @"maxDeliveryAttempts", + PossibleTypes = new [] { typeof(int) })] + int? RetryPolicyMaxDeliveryAttempt { get; set; } + + } + /// Properties of the Event Subscription update. + internal partial interface IEventSubscriptionUpdateParametersInternal + + { + /// + /// The dead letter destination of the event subscription. Any event that cannot be delivered to its' destination is sent + /// to the dead letter destination. + /// Uses Azure Event Grid's identity to acquire the authentication tokens being used during delivery / dead-lettering. + /// + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDeadLetterDestination DeadLetterDestination { get; set; } + /// Type of the endpoint for the dead letter destination + string DeadLetterEndPointTypeEndpointType { get; set; } + /// + /// The dead letter destination of the event subscription. Any event that cannot be delivered to its' destination is sent + /// to the dead letter destination. + /// Uses the managed identity setup on the parent resource (topic / domain) to acquire the authentication tokens being used + /// during delivery / dead-lettering. + /// + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDeadLetterWithResourceIdentity DeadLetterWithResourceIdentity { get; set; } + /// + /// Information about the destination where events have to be delivered for the event subscription. + /// Uses the managed identity setup on the parent resource (namely, topic or domain) to acquire the authentication tokens + /// being used during delivery / dead-lettering. + /// + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDeadLetterDestination DeadLetterWithResourceIdentityDeadLetterDestination { get; set; } + /// Type of the endpoint for the dead letter destination + string DeadLetterWithResourceIdentityDeadLetterDestinationEndpointType { get; set; } + /// The identity to use when dead-lettering events. + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionIdentity DeadLetterWithResourceIdentityIdentity { get; set; } + /// + /// The type of managed identity used. The type 'SystemAssigned, UserAssigned' includes both an implicitly created identity + /// and a set of user-assigned identities. The type 'None' will remove any identity. + /// + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EventSubscriptionIdentityType? DeadLetterWithResourceIdentityType { get; set; } + /// The user identity associated with the resource. + string DeadLetterWithResourceIdentityUserAssignedIdentity { get; set; } + /// + /// Information about the destination where events have to be delivered for the event subscription. + /// Uses the managed identity setup on the parent resource (topic / domain) to acquire the authentication tokens being used + /// during delivery / dead-lettering. + /// + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDeliveryWithResourceIdentity DeliveryWithResourceIdentity { get; set; } + /// + /// Information about the destination where events have to be delivered for the event subscription. + /// Uses Azure Event Grid's identity to acquire the authentication tokens being used during delivery / dead-lettering. + /// + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionDestination DeliveryWithResourceIdentityDestination { get; set; } + /// Type of the endpoint for the event subscription destination. + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EndpointType? DeliveryWithResourceIdentityDestinationEndpointType { get; set; } + /// The identity to use when delivering events. + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionIdentity DeliveryWithResourceIdentityIdentity { get; set; } + /// + /// The type of managed identity used. The type 'SystemAssigned, UserAssigned' includes both an implicitly created identity + /// and a set of user-assigned identities. The type 'None' will remove any identity. + /// + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EventSubscriptionIdentityType? DeliveryWithResourceIdentityType { get; set; } + /// The user identity associated with the resource. + string DeliveryWithResourceIdentityUserAssignedIdentity { get; set; } + /// + /// Information about the destination where events have to be delivered for the event subscription. + /// Uses Azure Event Grid's identity to acquire the authentication tokens being used during delivery / dead-lettering. + /// + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionDestination Destination { get; set; } + /// Type of the endpoint for the event subscription destination. + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EndpointType? EndpointType { get; set; } + /// The event delivery schema for the event subscription. + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EventDeliverySchema? EventDeliverySchema { get; set; } + /// Information about the expiration time for the event subscription. + global::System.DateTime? ExpirationTimeUtc { get; set; } + /// Information about the filter for the event subscription. + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionFilter Filter { get; set; } + /// An array of advanced filters that are used for filtering event subscriptions. + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IAdvancedFilter[] FilterAdvancedFilter { get; set; } + /// + /// Allows advanced filters to be evaluated against an array of values instead of expecting a singular value. + /// + bool? FilterEnableAdvancedFilteringOnArray { get; set; } + /// + /// A list of applicable event types that need to be part of the event subscription. If it is desired to subscribe to all + /// default event types, set the IncludedEventTypes to null. + /// + string[] FilterIncludedEventType { get; set; } + /// + /// Specifies if the SubjectBeginsWith and SubjectEndsWith properties of the filter + /// should be compared in a case sensitive manner. + /// + bool? FilterIsSubjectCaseSensitive { get; set; } + /// + /// An optional string to filter events for an event subscription based on a resource path prefix. + /// The format of this depends on the publisher of the events. + /// Wildcard characters are not supported in this path. + /// + string FilterSubjectBeginsWith { get; set; } + /// + /// An optional string to filter events for an event subscription based on a resource path suffix. + /// Wildcard characters are not supported in this path. + /// + string FilterSubjectEndsWith { get; set; } + /// List of user defined labels. + string[] Label { get; set; } + /// + /// The retry policy for events. This can be used to configure maximum number of delivery attempts and time to live for events. + /// + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IRetryPolicy RetryPolicy { get; set; } + /// Time To Live (in minutes) for events. + int? RetryPolicyEventTimeToLiveInMinute { get; set; } + /// Maximum number of delivery retry attempts for events. + int? RetryPolicyMaxDeliveryAttempt { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/EventSubscriptionUpdateParameters.json.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/EventSubscriptionUpdateParameters.json.cs new file mode 100644 index 000000000000..29a977bc222f --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/EventSubscriptionUpdateParameters.json.cs @@ -0,0 +1,130 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Extensions; + + /// Properties of the Event Subscription update. + public partial class EventSubscriptionUpdateParameters + { + + /// + /// AfterFromJson will be called after the json deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JsonNode that should be deserialized into this object. + + partial void AfterFromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json erialization has finished, allowing customization of the before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JSON container that the serialization result will be placed in. + + partial void AfterToJson(ref Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject container); + + /// + /// BeforeFromJson will be called before the json deserialization has commenced, allowing complete customization of + /// the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JsonNode that should be deserialized into this object. + /// Determines if the rest of the deserialization should be processed, or if the method should return + /// instantly. + + partial void BeforeFromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject json, ref bool returnNow); + + /// + /// BeforeToJson will be called before the json serialization has commenced, allowing complete customization of the + /// object before it is serialized. + /// If you wish to disable the default serialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JSON container that the serialization result will be placed in. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeToJson(ref Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject instance to deserialize from. + internal EventSubscriptionUpdateParameters(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject json) + { + bool returnNow = false; + BeforeFromJson(json, ref returnNow); + if (returnNow) + { + return; + } + {_destination = If( json?.PropertyT("destination"), out var __jsonDestination) ? Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.EventSubscriptionDestination.FromJson(__jsonDestination) : Destination;} + {_deliveryWithResourceIdentity = If( json?.PropertyT("deliveryWithResourceIdentity"), out var __jsonDeliveryWithResourceIdentity) ? Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.DeliveryWithResourceIdentity.FromJson(__jsonDeliveryWithResourceIdentity) : DeliveryWithResourceIdentity;} + {_filter = If( json?.PropertyT("filter"), out var __jsonFilter) ? Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.EventSubscriptionFilter.FromJson(__jsonFilter) : Filter;} + {_retryPolicy = If( json?.PropertyT("retryPolicy"), out var __jsonRetryPolicy) ? Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.RetryPolicy.FromJson(__jsonRetryPolicy) : RetryPolicy;} + {_deadLetterDestination = If( json?.PropertyT("deadLetterDestination"), out var __jsonDeadLetterDestination) ? Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.DeadLetterDestination.FromJson(__jsonDeadLetterDestination) : DeadLetterDestination;} + {_deadLetterWithResourceIdentity = If( json?.PropertyT("deadLetterWithResourceIdentity"), out var __jsonDeadLetterWithResourceIdentity) ? Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.DeadLetterWithResourceIdentity.FromJson(__jsonDeadLetterWithResourceIdentity) : DeadLetterWithResourceIdentity;} + {_label = If( json?.PropertyT("labels"), out var __jsonLabels) ? If( __jsonLabels as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Runtime.Json.JsonString __t ? (string)(__t.ToString()) : null)) ))() : null : Label;} + {_expirationTimeUtc = If( json?.PropertyT("expirationTimeUtc"), out var __jsonExpirationTimeUtc) ? global::System.DateTime.TryParse((string)__jsonExpirationTimeUtc, global::System.Globalization.CultureInfo.InvariantCulture, global::System.Globalization.DateTimeStyles.AdjustToUniversal, out var __jsonExpirationTimeUtcValue) ? __jsonExpirationTimeUtcValue : ExpirationTimeUtc : ExpirationTimeUtc;} + {_eventDeliverySchema = If( json?.PropertyT("eventDeliverySchema"), out var __jsonEventDeliverySchema) ? (string)__jsonEventDeliverySchema : (string)EventDeliverySchema;} + AfterFromJson(json); + } + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionUpdateParameters. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionUpdateParameters. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionUpdateParameters FromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject json ? new EventSubscriptionUpdateParameters(json) : null; + } + + /// + /// Serializes this instance of into a . + /// + /// The container to serialize this object into. If the caller + /// passes in null, a new instance will be created and returned to the caller. + /// Allows the caller to choose the depth of the serialization. See . + /// + /// a serialized instance of as a . + /// + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject(); + + bool returnNow = false; + BeforeToJson(ref container, ref returnNow); + if (returnNow) + { + return container; + } + AddIf( null != this._destination ? (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode) this._destination.ToJson(null,serializationMode) : null, "destination" ,container.Add ); + AddIf( null != this._deliveryWithResourceIdentity ? (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode) this._deliveryWithResourceIdentity.ToJson(null,serializationMode) : null, "deliveryWithResourceIdentity" ,container.Add ); + AddIf( null != this._filter ? (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode) this._filter.ToJson(null,serializationMode) : null, "filter" ,container.Add ); + AddIf( null != this._retryPolicy ? (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode) this._retryPolicy.ToJson(null,serializationMode) : null, "retryPolicy" ,container.Add ); + AddIf( null != this._deadLetterDestination ? (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode) this._deadLetterDestination.ToJson(null,serializationMode) : null, "deadLetterDestination" ,container.Add ); + AddIf( null != this._deadLetterWithResourceIdentity ? (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode) this._deadLetterWithResourceIdentity.ToJson(null,serializationMode) : null, "deadLetterWithResourceIdentity" ,container.Add ); + if (null != this._label) + { + var __w = new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.XNodeArray(); + foreach( var __x in this._label ) + { + AddIf(null != (((object)__x)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonString(__x.ToString()) : null ,__w.Add); + } + container.Add("labels",__w); + } + AddIf( null != this._expirationTimeUtc ? (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonString(this._expirationTimeUtc?.ToString(@"yyyy'-'MM'-'dd'T'HH':'mm':'ss.fffffffK",global::System.Globalization.CultureInfo.InvariantCulture)) : null, "expirationTimeUtc" ,container.Add ); + AddIf( null != (((object)this._eventDeliverySchema)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonString(this._eventDeliverySchema.ToString()) : null, "eventDeliverySchema" ,container.Add ); + AfterToJson(ref container); + return container; + } + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/EventSubscriptionsListResult.PowerShell.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/EventSubscriptionsListResult.PowerShell.cs new file mode 100644 index 000000000000..76a3e8685ede --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/EventSubscriptionsListResult.PowerShell.cs @@ -0,0 +1,152 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell; + + /// Result of the List EventSubscriptions operation + [System.ComponentModel.TypeConverter(typeof(EventSubscriptionsListResultTypeConverter))] + public partial class EventSubscriptionsListResult + { + + /// + /// AfterDeserializeDictionary will be called after the deserialization has finished, allowing customization of the + /// object before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Collections.IDictionary content that should be used. + + partial void AfterDeserializeDictionary(global::System.Collections.IDictionary content); + + /// + /// AfterDeserializePSObject will be called after the deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Management.Automation.PSObject content that should be used. + + partial void AfterDeserializePSObject(global::System.Management.Automation.PSObject content); + + /// + /// BeforeDeserializeDictionary will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Collections.IDictionary content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializeDictionary(global::System.Collections.IDictionary content, ref bool returnNow); + + /// + /// BeforeDeserializePSObject will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializePSObject(global::System.Management.Automation.PSObject content, ref bool returnNow); + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionsListResult DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new EventSubscriptionsListResult(content); + } + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionsListResult DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new EventSubscriptionsListResult(content); + } + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + internal EventSubscriptionsListResult(global::System.Collections.IDictionary content) + { + bool returnNow = false; + BeforeDeserializeDictionary(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("Value")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionsListResultInternal)this).Value = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscription[]) content.GetValueForProperty("Value",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionsListResultInternal)this).Value, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.EventSubscriptionTypeConverter.ConvertFrom)); + } + if (content.Contains("NextLink")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionsListResultInternal)this).NextLink = (string) content.GetValueForProperty("NextLink",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionsListResultInternal)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 EventSubscriptionsListResult(global::System.Management.Automation.PSObject content) + { + bool returnNow = false; + BeforeDeserializePSObject(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("Value")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionsListResultInternal)this).Value = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscription[]) content.GetValueForProperty("Value",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionsListResultInternal)this).Value, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.EventSubscriptionTypeConverter.ConvertFrom)); + } + if (content.Contains("NextLink")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionsListResultInternal)this).NextLink = (string) content.GetValueForProperty("NextLink",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionsListResultInternal)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.EventGrid.Models.Api20211015Preview.IEventSubscriptionsListResult FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode.Parse(jsonText)); + + /// Serializes this instance to a json string. + + /// a containing this model serialized to JSON text. + public string ToJsonString() => ToJson(null, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// Result of the List EventSubscriptions operation + [System.ComponentModel.TypeConverter(typeof(EventSubscriptionsListResultTypeConverter))] + public partial interface IEventSubscriptionsListResult + + { + + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/EventSubscriptionsListResult.TypeConverter.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/EventSubscriptionsListResult.TypeConverter.cs new file mode 100644 index 000000000000..0317a68072d0 --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/EventSubscriptionsListResult.TypeConverter.cs @@ -0,0 +1,147 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class EventSubscriptionsListResultTypeConverter : global::System.Management.Automation.PSTypeConverter + { + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false. + /// + public override bool CanConvertFrom(object sourceValue, global::System.Type destinationType) => CanConvertFrom(sourceValue); + + /// + /// Determines if the converter can convert the parameter to the . + /// + /// the instance to check if it can be converted to the type. + /// + /// true if the instance could be converted to a type, otherwise false + /// + public static bool CanConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return true; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + // we say yest to PSObjects + return true; + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + // we say yest to Hashtables/dictionaries + return true; + } + try + { + if (null != sourceValue.ToJsonString()) + { + return true; + } + } + catch + { + // Not one of our objects + } + try + { + string text = sourceValue.ToString()?.Trim(); + return true == text?.StartsWith("{") && true == text?.EndsWith("}") && Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonType.Object; + } + catch + { + // Doesn't look like it can be treated as JSON + } + return false; + } + + /// + /// Determines if the parameter can be converted to the parameter + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false + /// + public override bool CanConvertTo(object sourceValue, global::System.Type destinationType) => false; + + /// + /// Converts the parameter to the parameter using and + /// + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// + /// an instance of , or null if there is no suitable conversion. + /// + public override object ConvertFrom(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => ConvertFrom(sourceValue); + + /// + /// Converts the parameter to the parameter using and + /// + /// the value to convert into an instance of . + /// + /// an instance of , or null if there is no suitable conversion. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionsListResult ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionsListResult).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return EventSubscriptionsListResult.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return EventSubscriptionsListResult.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return EventSubscriptionsListResult.DeserializeFromDictionary(sourceValue); + } + return null; + } + + /// NotImplemented -- this will return null + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// will always return null. + public override object ConvertTo(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => null; + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/EventSubscriptionsListResult.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/EventSubscriptionsListResult.cs new file mode 100644 index 000000000000..a914be2e9be8 --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/EventSubscriptionsListResult.cs @@ -0,0 +1,68 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Extensions; + + /// Result of the List EventSubscriptions operation + public partial class EventSubscriptionsListResult : + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionsListResult, + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionsListResultInternal + { + + /// Backing field for property. + private string _nextLink; + + /// A link for the next page of event subscriptions + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Owned)] + public string NextLink { get => this._nextLink; set => this._nextLink = value; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscription[] _value; + + /// A collection of EventSubscriptions + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Owned)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscription[] Value { get => this._value; set => this._value = value; } + + /// Creates an new instance. + public EventSubscriptionsListResult() + { + + } + } + /// Result of the List EventSubscriptions operation + public partial interface IEventSubscriptionsListResult : + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IJsonSerializable + { + /// A link for the next page of event subscriptions + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"A link for the next page of event subscriptions", + SerializedName = @"nextLink", + PossibleTypes = new [] { typeof(string) })] + string NextLink { get; set; } + /// A collection of EventSubscriptions + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"A collection of EventSubscriptions", + SerializedName = @"value", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscription) })] + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscription[] Value { get; set; } + + } + /// Result of the List EventSubscriptions operation + internal partial interface IEventSubscriptionsListResultInternal + + { + /// A link for the next page of event subscriptions + string NextLink { get; set; } + /// A collection of EventSubscriptions + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscription[] Value { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/EventSubscriptionsListResult.json.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/EventSubscriptionsListResult.json.cs new file mode 100644 index 000000000000..286e6373f4ec --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/EventSubscriptionsListResult.json.cs @@ -0,0 +1,116 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Extensions; + + /// Result of the List EventSubscriptions operation + public partial class EventSubscriptionsListResult + { + + /// + /// AfterFromJson will be called after the json deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JsonNode that should be deserialized into this object. + + partial void AfterFromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json erialization has finished, allowing customization of the before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JSON container that the serialization result will be placed in. + + partial void AfterToJson(ref Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject container); + + /// + /// BeforeFromJson will be called before the json deserialization has commenced, allowing complete customization of + /// the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JsonNode that should be deserialized into this object. + /// Determines if the rest of the deserialization should be processed, or if the method should return + /// instantly. + + partial void BeforeFromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject json, ref bool returnNow); + + /// + /// BeforeToJson will be called before the json serialization has commenced, allowing complete customization of the + /// object before it is serialized. + /// If you wish to disable the default serialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JSON container that the serialization result will be placed in. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeToJson(ref Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject instance to deserialize from. + internal EventSubscriptionsListResult(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.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.EventGrid.Models.Api20211015Preview.IEventSubscription) (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.EventSubscription.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.EventGrid.Models.Api20211015Preview.IEventSubscriptionsListResult. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionsListResult. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionsListResult FromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject json ? new EventSubscriptionsListResult(json) : null; + } + + /// + /// Serializes this instance of into a . + /// + /// The container to serialize this object into. If the caller + /// passes in null, a new instance will be created and returned to the caller. + /// Allows the caller to choose the depth of the serialization. See . + /// + /// a serialized instance of as a . + /// + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Runtime.Json.XNodeArray(); + foreach( var __x in this._value ) + { + AddIf(__x?.ToJson(null, serializationMode) ,__w.Add); + } + container.Add("value",__w); + } + AddIf( null != (((object)this._nextLink)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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/eventgrid/generated/api/Models/Api20211015Preview/EventType.PowerShell.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/EventType.PowerShell.cs new file mode 100644 index 000000000000..776d74f366b4 --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/EventType.PowerShell.cs @@ -0,0 +1,198 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell; + + /// Event Type for a subject under a topic + [System.ComponentModel.TypeConverter(typeof(EventTypeTypeConverter))] + public partial class EventType + { + + /// + /// AfterDeserializeDictionary will be called after the deserialization has finished, allowing customization of the + /// object before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Collections.IDictionary content that should be used. + + partial void AfterDeserializeDictionary(global::System.Collections.IDictionary content); + + /// + /// AfterDeserializePSObject will be called after the deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Management.Automation.PSObject content that should be used. + + partial void AfterDeserializePSObject(global::System.Management.Automation.PSObject content); + + /// + /// BeforeDeserializeDictionary will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Collections.IDictionary content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializeDictionary(global::System.Collections.IDictionary content, ref bool returnNow); + + /// + /// BeforeDeserializePSObject will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializePSObject(global::System.Management.Automation.PSObject content, ref bool returnNow); + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventType DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new EventType(content); + } + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventType DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new EventType(content); + } + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + internal EventType(global::System.Collections.IDictionary content) + { + bool returnNow = false; + BeforeDeserializeDictionary(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("Property")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventTypeInternal)this).Property = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventTypeProperties) content.GetValueForProperty("Property",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventTypeInternal)this).Property, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.EventTypePropertiesTypeConverter.ConvertFrom); + } + if (content.Contains("Id")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IResourceInternal)this).Id = (string) content.GetValueForProperty("Id",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IResourceInternal)this).Id, global::System.Convert.ToString); + } + if (content.Contains("Name")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IResourceInternal)this).Name = (string) content.GetValueForProperty("Name",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IResourceInternal)this).Name, global::System.Convert.ToString); + } + if (content.Contains("Type")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IResourceInternal)this).Type = (string) content.GetValueForProperty("Type",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IResourceInternal)this).Type, global::System.Convert.ToString); + } + if (content.Contains("DisplayName")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventTypeInternal)this).DisplayName = (string) content.GetValueForProperty("DisplayName",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventTypeInternal)this).DisplayName, global::System.Convert.ToString); + } + if (content.Contains("Description")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventTypeInternal)this).Description = (string) content.GetValueForProperty("Description",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventTypeInternal)this).Description, global::System.Convert.ToString); + } + if (content.Contains("SchemaUrl")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventTypeInternal)this).SchemaUrl = (string) content.GetValueForProperty("SchemaUrl",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventTypeInternal)this).SchemaUrl, global::System.Convert.ToString); + } + if (content.Contains("IsInDefaultSet")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventTypeInternal)this).IsInDefaultSet = (bool?) content.GetValueForProperty("IsInDefaultSet",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventTypeInternal)this).IsInDefaultSet, (__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 EventType(global::System.Management.Automation.PSObject content) + { + bool returnNow = false; + BeforeDeserializePSObject(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("Property")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventTypeInternal)this).Property = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventTypeProperties) content.GetValueForProperty("Property",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventTypeInternal)this).Property, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.EventTypePropertiesTypeConverter.ConvertFrom); + } + if (content.Contains("Id")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IResourceInternal)this).Id = (string) content.GetValueForProperty("Id",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IResourceInternal)this).Id, global::System.Convert.ToString); + } + if (content.Contains("Name")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IResourceInternal)this).Name = (string) content.GetValueForProperty("Name",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IResourceInternal)this).Name, global::System.Convert.ToString); + } + if (content.Contains("Type")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IResourceInternal)this).Type = (string) content.GetValueForProperty("Type",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IResourceInternal)this).Type, global::System.Convert.ToString); + } + if (content.Contains("DisplayName")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventTypeInternal)this).DisplayName = (string) content.GetValueForProperty("DisplayName",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventTypeInternal)this).DisplayName, global::System.Convert.ToString); + } + if (content.Contains("Description")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventTypeInternal)this).Description = (string) content.GetValueForProperty("Description",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventTypeInternal)this).Description, global::System.Convert.ToString); + } + if (content.Contains("SchemaUrl")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventTypeInternal)this).SchemaUrl = (string) content.GetValueForProperty("SchemaUrl",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventTypeInternal)this).SchemaUrl, global::System.Convert.ToString); + } + if (content.Contains("IsInDefaultSet")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventTypeInternal)this).IsInDefaultSet = (bool?) content.GetValueForProperty("IsInDefaultSet",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventTypeInternal)this).IsInDefaultSet, (__y)=> (bool) global::System.Convert.ChangeType(__y, typeof(bool))); + } + AfterDeserializePSObject(content); + } + + /// + /// Creates a new instance of , deserializing the content from a json string. + /// + /// a string containing a JSON serialized instance of this model. + /// an instance of the model class. + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventType FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode.Parse(jsonText)); + + /// Serializes this instance to a json string. + + /// a containing this model serialized to JSON text. + public string ToJsonString() => ToJson(null, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// Event Type for a subject under a topic + [System.ComponentModel.TypeConverter(typeof(EventTypeTypeConverter))] + public partial interface IEventType + + { + + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/EventType.TypeConverter.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/EventType.TypeConverter.cs new file mode 100644 index 000000000000..fe234da95050 --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/EventType.TypeConverter.cs @@ -0,0 +1,146 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class EventTypeTypeConverter : global::System.Management.Automation.PSTypeConverter + { + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false. + /// + public override bool CanConvertFrom(object sourceValue, global::System.Type destinationType) => CanConvertFrom(sourceValue); + + /// + /// Determines if the converter can convert the parameter to the . + /// + /// the instance to check if it can be converted to the type. + /// + /// true if the instance could be converted to a type, otherwise false + /// + public static bool CanConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return true; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + // we say yest to PSObjects + return true; + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + // we say yest to Hashtables/dictionaries + return true; + } + try + { + if (null != sourceValue.ToJsonString()) + { + return true; + } + } + catch + { + // Not one of our objects + } + try + { + string text = sourceValue.ToString()?.Trim(); + return true == text?.StartsWith("{") && true == text?.EndsWith("}") && Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonType.Object; + } + catch + { + // Doesn't look like it can be treated as JSON + } + return false; + } + + /// + /// Determines if the parameter can be converted to the parameter + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false + /// + public override bool CanConvertTo(object sourceValue, global::System.Type destinationType) => false; + + /// + /// Converts the parameter to the parameter using and + /// + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// + /// an instance of , or null if there is no suitable conversion. + /// + public override object ConvertFrom(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => ConvertFrom(sourceValue); + + /// + /// Converts the parameter to the parameter using and + /// + /// the value to convert into an instance of . + /// + /// an instance of , or null if there is no suitable conversion. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventType ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventType).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return EventType.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return EventType.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return EventType.DeserializeFromDictionary(sourceValue); + } + return null; + } + + /// NotImplemented -- this will return null + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// will always return null. + public override object ConvertTo(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => null; + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/EventType.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/EventType.cs new file mode 100644 index 000000000000..51da3790bcd0 --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/EventType.cs @@ -0,0 +1,142 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Extensions; + + /// Event Type for a subject under a topic + public partial class EventType : + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventType, + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventTypeInternal, + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IValidates + { + /// + /// Backing field for Inherited model + /// + private Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IResource __resource = new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.Resource(); + + /// Description of the event type. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Inlined)] + public string Description { get => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventTypePropertiesInternal)Property).Description; set => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventTypePropertiesInternal)Property).Description = value ?? null; } + + /// Display name of the event type. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Inlined)] + public string DisplayName { get => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventTypePropertiesInternal)Property).DisplayName; set => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventTypePropertiesInternal)Property).DisplayName = value ?? null; } + + /// Fully qualified identifier of the resource. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Inherited)] + public string Id { get => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IResourceInternal)__resource).Id; } + + /// IsInDefaultSet flag of the event type. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Inlined)] + public bool? IsInDefaultSet { get => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventTypePropertiesInternal)Property).IsInDefaultSet; set => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventTypePropertiesInternal)Property).IsInDefaultSet = value ?? default(bool); } + + /// Internal Acessors for Property + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventTypeProperties Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventTypeInternal.Property { get => (this._property = this._property ?? new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.EventTypeProperties()); set { {_property = value;} } } + + /// Internal Acessors for Id + string Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IResourceInternal.Id { get => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IResourceInternal)__resource).Id; set => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IResourceInternal)__resource).Id = value; } + + /// Internal Acessors for Name + string Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IResourceInternal.Name { get => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IResourceInternal)__resource).Name; set => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IResourceInternal)__resource).Name = value; } + + /// Internal Acessors for Type + string Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IResourceInternal.Type { get => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IResourceInternal)__resource).Type; set => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IResourceInternal)__resource).Type = value; } + + /// Name of the resource. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Inherited)] + public string Name { get => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IResourceInternal)__resource).Name; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventTypeProperties _property; + + /// Properties of the event type. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Owned)] + internal Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventTypeProperties Property { get => (this._property = this._property ?? new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.EventTypeProperties()); set => this._property = value; } + + /// Url of the schema for this event type. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Inlined)] + public string SchemaUrl { get => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventTypePropertiesInternal)Property).SchemaUrl; set => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventTypePropertiesInternal)Property).SchemaUrl = value ?? null; } + + /// Type of the resource. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Inherited)] + public string Type { get => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IResourceInternal)__resource).Type; } + + /// Creates an new instance. + public EventType() + { + + } + + /// Validates that this object meets the validation criteria. + /// an instance that will receive validation + /// events. + /// + /// A that will be complete when validation is completed. + /// + public async global::System.Threading.Tasks.Task Validate(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener eventListener) + { + await eventListener.AssertNotNull(nameof(__resource), __resource); + await eventListener.AssertObjectIsValid(nameof(__resource), __resource); + } + } + /// Event Type for a subject under a topic + public partial interface IEventType : + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IJsonSerializable, + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IResource + { + /// Description of the event type. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Description of the event type.", + SerializedName = @"description", + PossibleTypes = new [] { typeof(string) })] + string Description { get; set; } + /// Display name of the event type. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Display name of the event type.", + SerializedName = @"displayName", + PossibleTypes = new [] { typeof(string) })] + string DisplayName { get; set; } + /// IsInDefaultSet flag of the event type. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"IsInDefaultSet flag of the event type.", + SerializedName = @"isInDefaultSet", + PossibleTypes = new [] { typeof(bool) })] + bool? IsInDefaultSet { get; set; } + /// Url of the schema for this event type. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Url of the schema for this event type.", + SerializedName = @"schemaUrl", + PossibleTypes = new [] { typeof(string) })] + string SchemaUrl { get; set; } + + } + /// Event Type for a subject under a topic + internal partial interface IEventTypeInternal : + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IResourceInternal + { + /// Description of the event type. + string Description { get; set; } + /// Display name of the event type. + string DisplayName { get; set; } + /// IsInDefaultSet flag of the event type. + bool? IsInDefaultSet { get; set; } + /// Properties of the event type. + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventTypeProperties Property { get; set; } + /// Url of the schema for this event type. + string SchemaUrl { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/EventType.json.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/EventType.json.cs new file mode 100644 index 000000000000..c56c1e2f7212 --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/EventType.json.cs @@ -0,0 +1,108 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Extensions; + + /// Event Type for a subject under a topic + public partial class EventType + { + + /// + /// AfterFromJson will be called after the json deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JsonNode that should be deserialized into this object. + + partial void AfterFromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json erialization has finished, allowing customization of the before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JSON container that the serialization result will be placed in. + + partial void AfterToJson(ref Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject container); + + /// + /// BeforeFromJson will be called before the json deserialization has commenced, allowing complete customization of + /// the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JsonNode that should be deserialized into this object. + /// Determines if the rest of the deserialization should be processed, or if the method should return + /// instantly. + + partial void BeforeFromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject json, ref bool returnNow); + + /// + /// BeforeToJson will be called before the json serialization has commenced, allowing complete customization of the + /// object before it is serialized. + /// If you wish to disable the default serialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JSON container that the serialization result will be placed in. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeToJson(ref Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject instance to deserialize from. + internal EventType(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject json) + { + bool returnNow = false; + BeforeFromJson(json, ref returnNow); + if (returnNow) + { + return; + } + __resource = new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.Resource(json); + {_property = If( json?.PropertyT("properties"), out var __jsonProperties) ? Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.EventTypeProperties.FromJson(__jsonProperties) : Property;} + AfterFromJson(json); + } + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventType. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventType. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventType FromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject json ? new EventType(json) : null; + } + + /// + /// Serializes this instance of into a . + /// + /// The container to serialize this object into. If the caller + /// passes in null, a new instance will be created and returned to the caller. + /// Allows the caller to choose the depth of the serialization. See . + /// + /// a serialized instance of as a . + /// + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.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/eventgrid/generated/api/Models/Api20211015Preview/EventTypeInfo.PowerShell.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/EventTypeInfo.PowerShell.cs new file mode 100644 index 000000000000..4ade646639e4 --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/EventTypeInfo.PowerShell.cs @@ -0,0 +1,150 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell; + + /// The event type information for Channels. + [System.ComponentModel.TypeConverter(typeof(EventTypeInfoTypeConverter))] + public partial class EventTypeInfo + { + + /// + /// AfterDeserializeDictionary will be called after the deserialization has finished, allowing customization of the + /// object before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Collections.IDictionary content that should be used. + + partial void AfterDeserializeDictionary(global::System.Collections.IDictionary content); + + /// + /// AfterDeserializePSObject will be called after the deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Management.Automation.PSObject content that should be used. + + partial void AfterDeserializePSObject(global::System.Management.Automation.PSObject content); + + /// + /// BeforeDeserializeDictionary will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Collections.IDictionary content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializeDictionary(global::System.Collections.IDictionary content, ref bool returnNow); + + /// + /// BeforeDeserializePSObject will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializePSObject(global::System.Management.Automation.PSObject content, ref bool returnNow); + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventTypeInfo DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new EventTypeInfo(content); + } + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventTypeInfo DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new EventTypeInfo(content); + } + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + internal EventTypeInfo(global::System.Collections.IDictionary content) + { + bool returnNow = false; + BeforeDeserializeDictionary(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("Kind")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventTypeInfoInternal)this).Kind = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EventDefinitionKind?) content.GetValueForProperty("Kind",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventTypeInfoInternal)this).Kind, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EventDefinitionKind.CreateFrom); + } + if (content.Contains("InlineEventType")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventTypeInfoInternal)this).InlineEventType = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventTypeInfoInlineEventTypes) content.GetValueForProperty("InlineEventType",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventTypeInfoInternal)this).InlineEventType, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.EventTypeInfoInlineEventTypesTypeConverter.ConvertFrom); + } + AfterDeserializeDictionary(content); + } + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + internal EventTypeInfo(global::System.Management.Automation.PSObject content) + { + bool returnNow = false; + BeforeDeserializePSObject(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("Kind")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventTypeInfoInternal)this).Kind = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EventDefinitionKind?) content.GetValueForProperty("Kind",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventTypeInfoInternal)this).Kind, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EventDefinitionKind.CreateFrom); + } + if (content.Contains("InlineEventType")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventTypeInfoInternal)this).InlineEventType = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventTypeInfoInlineEventTypes) content.GetValueForProperty("InlineEventType",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventTypeInfoInternal)this).InlineEventType, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.EventTypeInfoInlineEventTypesTypeConverter.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.EventGrid.Models.Api20211015Preview.IEventTypeInfo FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode.Parse(jsonText)); + + /// Serializes this instance to a json string. + + /// a containing this model serialized to JSON text. + public string ToJsonString() => ToJson(null, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// The event type information for Channels. + [System.ComponentModel.TypeConverter(typeof(EventTypeInfoTypeConverter))] + public partial interface IEventTypeInfo + + { + + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/EventTypeInfo.TypeConverter.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/EventTypeInfo.TypeConverter.cs new file mode 100644 index 000000000000..e25e0a21c701 --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/EventTypeInfo.TypeConverter.cs @@ -0,0 +1,146 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class EventTypeInfoTypeConverter : global::System.Management.Automation.PSTypeConverter + { + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false. + /// + public override bool CanConvertFrom(object sourceValue, global::System.Type destinationType) => CanConvertFrom(sourceValue); + + /// + /// Determines if the converter can convert the parameter to the . + /// + /// the instance to check if it can be converted to the type. + /// + /// true if the instance could be converted to a type, otherwise false + /// + public static bool CanConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return true; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + // we say yest to PSObjects + return true; + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + // we say yest to Hashtables/dictionaries + return true; + } + try + { + if (null != sourceValue.ToJsonString()) + { + return true; + } + } + catch + { + // Not one of our objects + } + try + { + string text = sourceValue.ToString()?.Trim(); + return true == text?.StartsWith("{") && true == text?.EndsWith("}") && Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonType.Object; + } + catch + { + // Doesn't look like it can be treated as JSON + } + return false; + } + + /// + /// Determines if the parameter can be converted to the parameter + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false + /// + public override bool CanConvertTo(object sourceValue, global::System.Type destinationType) => false; + + /// + /// Converts the parameter to the parameter using and + /// + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// + /// an instance of , or null if there is no suitable conversion. + /// + public override object ConvertFrom(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => ConvertFrom(sourceValue); + + /// + /// Converts the parameter to the parameter using and + /// + /// the value to convert into an instance of . + /// + /// an instance of , or null if there is no suitable conversion. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventTypeInfo ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventTypeInfo).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return EventTypeInfo.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return EventTypeInfo.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return EventTypeInfo.DeserializeFromDictionary(sourceValue); + } + return null; + } + + /// NotImplemented -- this will return null + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// will always return null. + public override object ConvertTo(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => null; + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/EventTypeInfo.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/EventTypeInfo.cs new file mode 100644 index 000000000000..0de93ff4cdd5 --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/EventTypeInfo.cs @@ -0,0 +1,88 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Extensions; + + /// The event type information for Channels. + public partial class EventTypeInfo : + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventTypeInfo, + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventTypeInfoInternal + { + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventTypeInfoInlineEventTypes _inlineEventType; + + /// + /// A collection of inline event types for the resource. The inline event type keys are of type string which represents the + /// name of the event. + /// An example of a valid inline event name is "Contoso.OrderCreated". + /// The inline event type values are of type InlineEventProperties and will contain additional information for every inline + /// event type. + /// + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Owned)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventTypeInfoInlineEventTypes InlineEventType { get => (this._inlineEventType = this._inlineEventType ?? new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.EventTypeInfoInlineEventTypes()); set => this._inlineEventType = value; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EventDefinitionKind? _kind; + + /// The kind of event type used. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Owned)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EventDefinitionKind? Kind { get => this._kind; set => this._kind = value; } + + /// Creates an new instance. + public EventTypeInfo() + { + + } + } + /// The event type information for Channels. + public partial interface IEventTypeInfo : + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IJsonSerializable + { + /// + /// A collection of inline event types for the resource. The inline event type keys are of type string which represents the + /// name of the event. + /// An example of a valid inline event name is "Contoso.OrderCreated". + /// The inline event type values are of type InlineEventProperties and will contain additional information for every inline + /// event type. + /// + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"A collection of inline event types for the resource. The inline event type keys are of type string which represents the name of the event. + An example of a valid inline event name is ""Contoso.OrderCreated"". + The inline event type values are of type InlineEventProperties and will contain additional information for every inline event type.", + SerializedName = @"inlineEventTypes", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventTypeInfoInlineEventTypes) })] + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventTypeInfoInlineEventTypes InlineEventType { get; set; } + /// The kind of event type used. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The kind of event type used.", + SerializedName = @"kind", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EventDefinitionKind) })] + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EventDefinitionKind? Kind { get; set; } + + } + /// The event type information for Channels. + internal partial interface IEventTypeInfoInternal + + { + /// + /// A collection of inline event types for the resource. The inline event type keys are of type string which represents the + /// name of the event. + /// An example of a valid inline event name is "Contoso.OrderCreated". + /// The inline event type values are of type InlineEventProperties and will contain additional information for every inline + /// event type. + /// + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventTypeInfoInlineEventTypes InlineEventType { get; set; } + /// The kind of event type used. + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EventDefinitionKind? Kind { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/EventTypeInfo.json.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/EventTypeInfo.json.cs new file mode 100644 index 000000000000..609b4baa1c5c --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/EventTypeInfo.json.cs @@ -0,0 +1,108 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Extensions; + + /// The event type information for Channels. + public partial class EventTypeInfo + { + + /// + /// AfterFromJson will be called after the json deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JsonNode that should be deserialized into this object. + + partial void AfterFromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json erialization has finished, allowing customization of the before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JSON container that the serialization result will be placed in. + + partial void AfterToJson(ref Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject container); + + /// + /// BeforeFromJson will be called before the json deserialization has commenced, allowing complete customization of + /// the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JsonNode that should be deserialized into this object. + /// Determines if the rest of the deserialization should be processed, or if the method should return + /// instantly. + + partial void BeforeFromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject json, ref bool returnNow); + + /// + /// BeforeToJson will be called before the json serialization has commenced, allowing complete customization of the + /// object before it is serialized. + /// If you wish to disable the default serialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JSON container that the serialization result will be placed in. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeToJson(ref Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject instance to deserialize from. + internal EventTypeInfo(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject json) + { + bool returnNow = false; + BeforeFromJson(json, ref returnNow); + if (returnNow) + { + return; + } + {_kind = If( json?.PropertyT("kind"), out var __jsonKind) ? (string)__jsonKind : (string)Kind;} + {_inlineEventType = If( json?.PropertyT("inlineEventTypes"), out var __jsonInlineEventTypes) ? Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.EventTypeInfoInlineEventTypes.FromJson(__jsonInlineEventTypes) : InlineEventType;} + AfterFromJson(json); + } + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventTypeInfo. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventTypeInfo. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventTypeInfo FromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject json ? new EventTypeInfo(json) : null; + } + + /// + /// Serializes this instance of into a . + /// + /// The container to serialize this object into. If the caller + /// passes in null, a new instance will be created and returned to the caller. + /// Allows the caller to choose the depth of the serialization. See . + /// + /// a serialized instance of as a . + /// + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject(); + + bool returnNow = false; + BeforeToJson(ref container, ref returnNow); + if (returnNow) + { + return container; + } + AddIf( null != (((object)this._kind)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonString(this._kind.ToString()) : null, "kind" ,container.Add ); + AddIf( null != this._inlineEventType ? (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode) this._inlineEventType.ToJson(null,serializationMode) : null, "inlineEventTypes" ,container.Add ); + AfterToJson(ref container); + return container; + } + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/EventTypeInfoInlineEventTypes.PowerShell.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/EventTypeInfoInlineEventTypes.PowerShell.cs new file mode 100644 index 000000000000..1e1d087ad4fc --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/EventTypeInfoInlineEventTypes.PowerShell.cs @@ -0,0 +1,150 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell; + + /// + /// A collection of inline event types for the resource. The inline event type keys are of type string which represents the + /// name of the event. + /// An example of a valid inline event name is "Contoso.OrderCreated". + /// The inline event type values are of type InlineEventProperties and will contain additional information for every inline + /// event type. + /// + [System.ComponentModel.TypeConverter(typeof(EventTypeInfoInlineEventTypesTypeConverter))] + public partial class EventTypeInfoInlineEventTypes + { + + /// + /// AfterDeserializeDictionary will be called after the deserialization has finished, allowing customization of the + /// object before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Collections.IDictionary content that should be used. + + partial void AfterDeserializeDictionary(global::System.Collections.IDictionary content); + + /// + /// AfterDeserializePSObject will be called after the deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Management.Automation.PSObject content that should be used. + + partial void AfterDeserializePSObject(global::System.Management.Automation.PSObject content); + + /// + /// BeforeDeserializeDictionary will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Collections.IDictionary content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializeDictionary(global::System.Collections.IDictionary content, ref bool returnNow); + + /// + /// BeforeDeserializePSObject will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializePSObject(global::System.Management.Automation.PSObject content, ref bool returnNow); + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventTypeInfoInlineEventTypes DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new EventTypeInfoInlineEventTypes(content); + } + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventTypeInfoInlineEventTypes DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new EventTypeInfoInlineEventTypes(content); + } + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + internal EventTypeInfoInlineEventTypes(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 EventTypeInfoInlineEventTypes(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.EventGrid.Models.Api20211015Preview.IEventTypeInfoInlineEventTypes FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode.Parse(jsonText)); + + /// Serializes this instance to a json string. + + /// a containing this model serialized to JSON text. + public string ToJsonString() => ToJson(null, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// A collection of inline event types for the resource. The inline event type keys are of type string which represents the + /// name of the event. + /// An example of a valid inline event name is "Contoso.OrderCreated". + /// The inline event type values are of type InlineEventProperties and will contain additional information for every inline + /// event type. + [System.ComponentModel.TypeConverter(typeof(EventTypeInfoInlineEventTypesTypeConverter))] + public partial interface IEventTypeInfoInlineEventTypes + + { + + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/EventTypeInfoInlineEventTypes.TypeConverter.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/EventTypeInfoInlineEventTypes.TypeConverter.cs new file mode 100644 index 000000000000..915294e7683a --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/EventTypeInfoInlineEventTypes.TypeConverter.cs @@ -0,0 +1,147 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class EventTypeInfoInlineEventTypesTypeConverter : global::System.Management.Automation.PSTypeConverter + { + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false. + /// + public override bool CanConvertFrom(object sourceValue, global::System.Type destinationType) => CanConvertFrom(sourceValue); + + /// + /// Determines if the converter can convert the parameter to the . + /// + /// the instance to check if it can be converted to the type. + /// + /// true if the instance could be converted to a type, otherwise false + /// + public static bool CanConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return true; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + // we say yest to PSObjects + return true; + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + // we say yest to Hashtables/dictionaries + return true; + } + try + { + if (null != sourceValue.ToJsonString()) + { + return true; + } + } + catch + { + // Not one of our objects + } + try + { + string text = sourceValue.ToString()?.Trim(); + return true == text?.StartsWith("{") && true == text?.EndsWith("}") && Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonType.Object; + } + catch + { + // Doesn't look like it can be treated as JSON + } + return false; + } + + /// + /// Determines if the parameter can be converted to the parameter + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false + /// + public override bool CanConvertTo(object sourceValue, global::System.Type destinationType) => false; + + /// + /// Converts the parameter to the parameter using and + /// + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// + /// an instance of , or null if there is no suitable conversion. + /// + public override object ConvertFrom(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => ConvertFrom(sourceValue); + + /// + /// Converts the parameter to the parameter using and + /// + /// the value to convert into an instance of . + /// + /// an instance of , or null if there is no suitable conversion. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventTypeInfoInlineEventTypes ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventTypeInfoInlineEventTypes).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return EventTypeInfoInlineEventTypes.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return EventTypeInfoInlineEventTypes.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return EventTypeInfoInlineEventTypes.DeserializeFromDictionary(sourceValue); + } + return null; + } + + /// NotImplemented -- this will return null + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// will always return null. + public override object ConvertTo(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => null; + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/EventTypeInfoInlineEventTypes.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/EventTypeInfoInlineEventTypes.cs new file mode 100644 index 000000000000..1c0468b9e952 --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/EventTypeInfoInlineEventTypes.cs @@ -0,0 +1,49 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Extensions; + + /// + /// A collection of inline event types for the resource. The inline event type keys are of type string which represents the + /// name of the event. + /// An example of a valid inline event name is "Contoso.OrderCreated". + /// The inline event type values are of type InlineEventProperties and will contain additional information for every inline + /// event type. + /// + public partial class EventTypeInfoInlineEventTypes : + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventTypeInfoInlineEventTypes, + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventTypeInfoInlineEventTypesInternal + { + + /// Creates an new instance. + public EventTypeInfoInlineEventTypes() + { + + } + } + /// A collection of inline event types for the resource. The inline event type keys are of type string which represents the + /// name of the event. + /// An example of a valid inline event name is "Contoso.OrderCreated". + /// The inline event type values are of type InlineEventProperties and will contain additional information for every inline + /// event type. + public partial interface IEventTypeInfoInlineEventTypes : + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IJsonSerializable, + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IAssociativeArray + { + + } + /// A collection of inline event types for the resource. The inline event type keys are of type string which represents the + /// name of the event. + /// An example of a valid inline event name is "Contoso.OrderCreated". + /// The inline event type values are of type InlineEventProperties and will contain additional information for every inline + /// event type. + internal partial interface IEventTypeInfoInlineEventTypesInternal + + { + + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/EventTypeInfoInlineEventTypes.dictionary.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/EventTypeInfoInlineEventTypes.dictionary.cs new file mode 100644 index 000000000000..6e7a5c8c7cab --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/EventTypeInfoInlineEventTypes.dictionary.cs @@ -0,0 +1,75 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Extensions; + + public partial class EventTypeInfoInlineEventTypes : + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IAssociativeArray + { + protected global::System.Collections.Generic.Dictionary __additionalProperties = new global::System.Collections.Generic.Dictionary(); + + global::System.Collections.Generic.IDictionary Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IAssociativeArray.AdditionalProperties { get => __additionalProperties; } + + int Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IAssociativeArray.Count { get => __additionalProperties.Count; } + + global::System.Collections.Generic.IEnumerable Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IAssociativeArray.Keys { get => __additionalProperties.Keys; } + + global::System.Collections.Generic.IEnumerable Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IAssociativeArray.Values { get => __additionalProperties.Values; } + + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IInlineEventProperties this[global::System.String index] { get => __additionalProperties[index]; set => __additionalProperties[index] = value; } + + /// + /// + public void Add(global::System.String key, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IInlineEventProperties 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.EventGrid.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.EventGrid.Runtime.PowerShell.TypeConverterExtensions.GetFilteredProperties(source, new global::System.Collections.Generic.HashSet() { } ) ) + { + if ((null != property.Key && null != property.Value)) + { + this.__additionalProperties.Add(property.Key.ToString(), global::System.Management.Automation.LanguagePrimitives.ConvertTo( property.Value)); + } + } + } + } + + /// + public bool Remove(global::System.String key) => __additionalProperties.Remove( key); + + /// + /// + public bool TryGetValue(global::System.String key, out Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IInlineEventProperties value) => __additionalProperties.TryGetValue( key, out value); + + /// + + public static implicit operator global::System.Collections.Generic.Dictionary(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.EventTypeInfoInlineEventTypes source) => source.__additionalProperties; + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/EventTypeInfoInlineEventTypes.json.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/EventTypeInfoInlineEventTypes.json.cs new file mode 100644 index 000000000000..7a8d3d059383 --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/EventTypeInfoInlineEventTypes.json.cs @@ -0,0 +1,113 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Extensions; + + /// + /// A collection of inline event types for the resource. The inline event type keys are of type string which represents the + /// name of the event. + /// An example of a valid inline event name is "Contoso.OrderCreated". + /// The inline event type values are of type InlineEventProperties and will contain additional information for every inline + /// event type. + /// + public partial class EventTypeInfoInlineEventTypes + { + + /// + /// AfterFromJson will be called after the json deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JsonNode that should be deserialized into this object. + + partial void AfterFromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json erialization has finished, allowing customization of the before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JSON container that the serialization result will be placed in. + + partial void AfterToJson(ref Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject container); + + /// + /// BeforeFromJson will be called before the json deserialization has commenced, allowing complete customization of + /// the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JsonNode that should be deserialized into this object. + /// Determines if the rest of the deserialization should be processed, or if the method should return + /// instantly. + + partial void BeforeFromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject json, ref bool returnNow); + + /// + /// BeforeToJson will be called before the json serialization has commenced, allowing complete customization of the + /// object before it is serialized. + /// If you wish to disable the default serialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JSON container that the serialization result will be placed in. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeToJson(ref Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject instance to deserialize from. + /// + internal EventTypeInfoInlineEventTypes(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Runtime.JsonSerializable.FromJson( json, ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IAssociativeArray)this).AdditionalProperties, (j) => Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.InlineEventProperties.FromJson(j) ,exclusions ); + AfterFromJson(json); + } + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventTypeInfoInlineEventTypes. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventTypeInfoInlineEventTypes. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventTypeInfoInlineEventTypes FromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject json ? new EventTypeInfoInlineEventTypes(json) : null; + } + + /// + /// Serializes this instance of into a . + /// + /// The container to serialize this object into. If the caller + /// passes in null, a new instance will be created and returned to the caller. + /// Allows the caller to choose the depth of the serialization. See . + /// + /// a serialized instance of as a . + /// + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject(); + + bool returnNow = false; + BeforeToJson(ref container, ref returnNow); + if (returnNow) + { + return container; + } + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.JsonSerializable.ToJson( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IAssociativeArray)this).AdditionalProperties, container); + AfterToJson(ref container); + return container; + } + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/EventTypeProperties.PowerShell.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/EventTypeProperties.PowerShell.cs new file mode 100644 index 000000000000..8defeb14b668 --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/EventTypeProperties.PowerShell.cs @@ -0,0 +1,168 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell; + + /// Properties of the event type + [System.ComponentModel.TypeConverter(typeof(EventTypePropertiesTypeConverter))] + public partial class EventTypeProperties + { + + /// + /// AfterDeserializeDictionary will be called after the deserialization has finished, allowing customization of the + /// object before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Collections.IDictionary content that should be used. + + partial void AfterDeserializeDictionary(global::System.Collections.IDictionary content); + + /// + /// AfterDeserializePSObject will be called after the deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Management.Automation.PSObject content that should be used. + + partial void AfterDeserializePSObject(global::System.Management.Automation.PSObject content); + + /// + /// BeforeDeserializeDictionary will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Collections.IDictionary content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializeDictionary(global::System.Collections.IDictionary content, ref bool returnNow); + + /// + /// BeforeDeserializePSObject will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializePSObject(global::System.Management.Automation.PSObject content, ref bool returnNow); + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventTypeProperties DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new EventTypeProperties(content); + } + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventTypeProperties DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new EventTypeProperties(content); + } + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + internal EventTypeProperties(global::System.Collections.IDictionary content) + { + bool returnNow = false; + BeforeDeserializeDictionary(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("DisplayName")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventTypePropertiesInternal)this).DisplayName = (string) content.GetValueForProperty("DisplayName",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventTypePropertiesInternal)this).DisplayName, global::System.Convert.ToString); + } + if (content.Contains("Description")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventTypePropertiesInternal)this).Description = (string) content.GetValueForProperty("Description",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventTypePropertiesInternal)this).Description, global::System.Convert.ToString); + } + if (content.Contains("SchemaUrl")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventTypePropertiesInternal)this).SchemaUrl = (string) content.GetValueForProperty("SchemaUrl",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventTypePropertiesInternal)this).SchemaUrl, global::System.Convert.ToString); + } + if (content.Contains("IsInDefaultSet")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventTypePropertiesInternal)this).IsInDefaultSet = (bool?) content.GetValueForProperty("IsInDefaultSet",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventTypePropertiesInternal)this).IsInDefaultSet, (__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 EventTypeProperties(global::System.Management.Automation.PSObject content) + { + bool returnNow = false; + BeforeDeserializePSObject(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("DisplayName")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventTypePropertiesInternal)this).DisplayName = (string) content.GetValueForProperty("DisplayName",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventTypePropertiesInternal)this).DisplayName, global::System.Convert.ToString); + } + if (content.Contains("Description")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventTypePropertiesInternal)this).Description = (string) content.GetValueForProperty("Description",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventTypePropertiesInternal)this).Description, global::System.Convert.ToString); + } + if (content.Contains("SchemaUrl")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventTypePropertiesInternal)this).SchemaUrl = (string) content.GetValueForProperty("SchemaUrl",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventTypePropertiesInternal)this).SchemaUrl, global::System.Convert.ToString); + } + if (content.Contains("IsInDefaultSet")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventTypePropertiesInternal)this).IsInDefaultSet = (bool?) content.GetValueForProperty("IsInDefaultSet",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventTypePropertiesInternal)this).IsInDefaultSet, (__y)=> (bool) global::System.Convert.ChangeType(__y, typeof(bool))); + } + AfterDeserializePSObject(content); + } + + /// + /// Creates a new instance of , deserializing the content from a json string. + /// + /// a string containing a JSON serialized instance of this model. + /// an instance of the model class. + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventTypeProperties FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode.Parse(jsonText)); + + /// Serializes this instance to a json string. + + /// a containing this model serialized to JSON text. + public string ToJsonString() => ToJson(null, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// Properties of the event type + [System.ComponentModel.TypeConverter(typeof(EventTypePropertiesTypeConverter))] + public partial interface IEventTypeProperties + + { + + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/EventTypeProperties.TypeConverter.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/EventTypeProperties.TypeConverter.cs new file mode 100644 index 000000000000..7f0893ce624f --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/EventTypeProperties.TypeConverter.cs @@ -0,0 +1,147 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class EventTypePropertiesTypeConverter : global::System.Management.Automation.PSTypeConverter + { + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false. + /// + public override bool CanConvertFrom(object sourceValue, global::System.Type destinationType) => CanConvertFrom(sourceValue); + + /// + /// Determines if the converter can convert the parameter to the . + /// + /// the instance to check if it can be converted to the type. + /// + /// true if the instance could be converted to a type, otherwise false + /// + public static bool CanConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return true; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + // we say yest to PSObjects + return true; + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + // we say yest to Hashtables/dictionaries + return true; + } + try + { + if (null != sourceValue.ToJsonString()) + { + return true; + } + } + catch + { + // Not one of our objects + } + try + { + string text = sourceValue.ToString()?.Trim(); + return true == text?.StartsWith("{") && true == text?.EndsWith("}") && Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonType.Object; + } + catch + { + // Doesn't look like it can be treated as JSON + } + return false; + } + + /// + /// Determines if the parameter can be converted to the parameter + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false + /// + public override bool CanConvertTo(object sourceValue, global::System.Type destinationType) => false; + + /// + /// Converts the parameter to the parameter using and + /// + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// + /// an instance of , or null if there is no suitable conversion. + /// + public override object ConvertFrom(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => ConvertFrom(sourceValue); + + /// + /// Converts the parameter to the parameter using and + /// + /// the value to convert into an instance of . + /// + /// an instance of , or null if there is no suitable conversion. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventTypeProperties ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventTypeProperties).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return EventTypeProperties.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return EventTypeProperties.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return EventTypeProperties.DeserializeFromDictionary(sourceValue); + } + return null; + } + + /// NotImplemented -- this will return null + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// will always return null. + public override object ConvertTo(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => null; + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/EventTypeProperties.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/EventTypeProperties.cs new file mode 100644 index 000000000000..e5d4a8bf934c --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/EventTypeProperties.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.EventGrid.Models.Api20211015Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Extensions; + + /// Properties of the event type + public partial class EventTypeProperties : + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventTypeProperties, + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventTypePropertiesInternal + { + + /// Backing field for property. + private string _description; + + /// Description of the event type. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Owned)] + public string Description { get => this._description; set => this._description = value; } + + /// Backing field for property. + private string _displayName; + + /// Display name of the event type. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Owned)] + public string DisplayName { get => this._displayName; set => this._displayName = value; } + + /// Backing field for property. + private bool? _isInDefaultSet; + + /// IsInDefaultSet flag of the event type. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Owned)] + public bool? IsInDefaultSet { get => this._isInDefaultSet; set => this._isInDefaultSet = value; } + + /// Backing field for property. + private string _schemaUrl; + + /// Url of the schema for this event type. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Owned)] + public string SchemaUrl { get => this._schemaUrl; set => this._schemaUrl = value; } + + /// Creates an new instance. + public EventTypeProperties() + { + + } + } + /// Properties of the event type + public partial interface IEventTypeProperties : + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IJsonSerializable + { + /// Description of the event type. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Description of the event type.", + SerializedName = @"description", + PossibleTypes = new [] { typeof(string) })] + string Description { get; set; } + /// Display name of the event type. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Display name of the event type.", + SerializedName = @"displayName", + PossibleTypes = new [] { typeof(string) })] + string DisplayName { get; set; } + /// IsInDefaultSet flag of the event type. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"IsInDefaultSet flag of the event type.", + SerializedName = @"isInDefaultSet", + PossibleTypes = new [] { typeof(bool) })] + bool? IsInDefaultSet { get; set; } + /// Url of the schema for this event type. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Url of the schema for this event type.", + SerializedName = @"schemaUrl", + PossibleTypes = new [] { typeof(string) })] + string SchemaUrl { get; set; } + + } + /// Properties of the event type + internal partial interface IEventTypePropertiesInternal + + { + /// Description of the event type. + string Description { get; set; } + /// Display name of the event type. + string DisplayName { get; set; } + /// IsInDefaultSet flag of the event type. + bool? IsInDefaultSet { get; set; } + /// Url of the schema for this event type. + string SchemaUrl { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/EventTypeProperties.json.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/EventTypeProperties.json.cs new file mode 100644 index 000000000000..8b04cc2cfd66 --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/EventTypeProperties.json.cs @@ -0,0 +1,112 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Extensions; + + /// Properties of the event type + public partial class EventTypeProperties + { + + /// + /// AfterFromJson will be called after the json deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JsonNode that should be deserialized into this object. + + partial void AfterFromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json erialization has finished, allowing customization of the before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JSON container that the serialization result will be placed in. + + partial void AfterToJson(ref Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject container); + + /// + /// BeforeFromJson will be called before the json deserialization has commenced, allowing complete customization of + /// the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JsonNode that should be deserialized into this object. + /// Determines if the rest of the deserialization should be processed, or if the method should return + /// instantly. + + partial void BeforeFromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject json, ref bool returnNow); + + /// + /// BeforeToJson will be called before the json serialization has commenced, allowing complete customization of the + /// object before it is serialized. + /// If you wish to disable the default serialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JSON container that the serialization result will be placed in. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeToJson(ref Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject instance to deserialize from. + internal EventTypeProperties(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject json) + { + bool returnNow = false; + BeforeFromJson(json, ref returnNow); + if (returnNow) + { + return; + } + {_displayName = If( json?.PropertyT("displayName"), out var __jsonDisplayName) ? (string)__jsonDisplayName : (string)DisplayName;} + {_description = If( json?.PropertyT("description"), out var __jsonDescription) ? (string)__jsonDescription : (string)Description;} + {_schemaUrl = If( json?.PropertyT("schemaUrl"), out var __jsonSchemaUrl) ? (string)__jsonSchemaUrl : (string)SchemaUrl;} + {_isInDefaultSet = If( json?.PropertyT("isInDefaultSet"), out var __jsonIsInDefaultSet) ? (bool?)__jsonIsInDefaultSet : IsInDefaultSet;} + AfterFromJson(json); + } + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventTypeProperties. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventTypeProperties. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventTypeProperties FromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject json ? new EventTypeProperties(json) : null; + } + + /// + /// Serializes this instance of into a . + /// + /// The container to serialize this object into. If the caller + /// passes in null, a new instance will be created and returned to the caller. + /// Allows the caller to choose the depth of the serialization. See . + /// + /// a serialized instance of as a . + /// + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject(); + + bool returnNow = false; + BeforeToJson(ref container, ref returnNow); + if (returnNow) + { + return container; + } + AddIf( null != (((object)this._displayName)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonString(this._displayName.ToString()) : null, "displayName" ,container.Add ); + AddIf( null != (((object)this._description)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonString(this._description.ToString()) : null, "description" ,container.Add ); + AddIf( null != (((object)this._schemaUrl)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonString(this._schemaUrl.ToString()) : null, "schemaUrl" ,container.Add ); + AddIf( null != this._isInDefaultSet ? (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode)new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonBoolean((bool)this._isInDefaultSet) : null, "isInDefaultSet" ,container.Add ); + AfterToJson(ref container); + return container; + } + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/EventTypesListResult.PowerShell.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/EventTypesListResult.PowerShell.cs new file mode 100644 index 000000000000..901965944b6a --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/EventTypesListResult.PowerShell.cs @@ -0,0 +1,144 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell; + + /// Result of the List Event Types operation + [System.ComponentModel.TypeConverter(typeof(EventTypesListResultTypeConverter))] + public partial class EventTypesListResult + { + + /// + /// AfterDeserializeDictionary will be called after the deserialization has finished, allowing customization of the + /// object before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Collections.IDictionary content that should be used. + + partial void AfterDeserializeDictionary(global::System.Collections.IDictionary content); + + /// + /// AfterDeserializePSObject will be called after the deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Management.Automation.PSObject content that should be used. + + partial void AfterDeserializePSObject(global::System.Management.Automation.PSObject content); + + /// + /// BeforeDeserializeDictionary will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Collections.IDictionary content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializeDictionary(global::System.Collections.IDictionary content, ref bool returnNow); + + /// + /// BeforeDeserializePSObject will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializePSObject(global::System.Management.Automation.PSObject content, ref bool returnNow); + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventTypesListResult DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new EventTypesListResult(content); + } + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventTypesListResult DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new EventTypesListResult(content); + } + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + internal EventTypesListResult(global::System.Collections.IDictionary content) + { + bool returnNow = false; + BeforeDeserializeDictionary(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("Value")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventTypesListResultInternal)this).Value = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventType[]) content.GetValueForProperty("Value",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventTypesListResultInternal)this).Value, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.EventTypeTypeConverter.ConvertFrom)); + } + AfterDeserializeDictionary(content); + } + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + internal EventTypesListResult(global::System.Management.Automation.PSObject content) + { + bool returnNow = false; + BeforeDeserializePSObject(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("Value")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventTypesListResultInternal)this).Value = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventType[]) content.GetValueForProperty("Value",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventTypesListResultInternal)this).Value, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.EventTypeTypeConverter.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.EventGrid.Models.Api20211015Preview.IEventTypesListResult FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode.Parse(jsonText)); + + /// Serializes this instance to a json string. + + /// a containing this model serialized to JSON text. + public string ToJsonString() => ToJson(null, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// Result of the List Event Types operation + [System.ComponentModel.TypeConverter(typeof(EventTypesListResultTypeConverter))] + public partial interface IEventTypesListResult + + { + + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/EventTypesListResult.TypeConverter.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/EventTypesListResult.TypeConverter.cs new file mode 100644 index 000000000000..622a5b4d7e86 --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/EventTypesListResult.TypeConverter.cs @@ -0,0 +1,147 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class EventTypesListResultTypeConverter : global::System.Management.Automation.PSTypeConverter + { + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false. + /// + public override bool CanConvertFrom(object sourceValue, global::System.Type destinationType) => CanConvertFrom(sourceValue); + + /// + /// Determines if the converter can convert the parameter to the . + /// + /// the instance to check if it can be converted to the type. + /// + /// true if the instance could be converted to a type, otherwise false + /// + public static bool CanConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return true; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + // we say yest to PSObjects + return true; + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + // we say yest to Hashtables/dictionaries + return true; + } + try + { + if (null != sourceValue.ToJsonString()) + { + return true; + } + } + catch + { + // Not one of our objects + } + try + { + string text = sourceValue.ToString()?.Trim(); + return true == text?.StartsWith("{") && true == text?.EndsWith("}") && Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonType.Object; + } + catch + { + // Doesn't look like it can be treated as JSON + } + return false; + } + + /// + /// Determines if the parameter can be converted to the parameter + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false + /// + public override bool CanConvertTo(object sourceValue, global::System.Type destinationType) => false; + + /// + /// Converts the parameter to the parameter using and + /// + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// + /// an instance of , or null if there is no suitable conversion. + /// + public override object ConvertFrom(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => ConvertFrom(sourceValue); + + /// + /// Converts the parameter to the parameter using and + /// + /// the value to convert into an instance of . + /// + /// an instance of , or null if there is no suitable conversion. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventTypesListResult ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventTypesListResult).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return EventTypesListResult.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return EventTypesListResult.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return EventTypesListResult.DeserializeFromDictionary(sourceValue); + } + return null; + } + + /// NotImplemented -- this will return null + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// will always return null. + public override object ConvertTo(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => null; + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/EventTypesListResult.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/EventTypesListResult.cs new file mode 100644 index 000000000000..f05d716c496d --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/EventTypesListResult.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.EventGrid.Models.Api20211015Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Extensions; + + /// Result of the List Event Types operation + public partial class EventTypesListResult : + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventTypesListResult, + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventTypesListResultInternal + { + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventType[] _value; + + /// A collection of event types + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Owned)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventType[] Value { get => this._value; set => this._value = value; } + + /// Creates an new instance. + public EventTypesListResult() + { + + } + } + /// Result of the List Event Types operation + public partial interface IEventTypesListResult : + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IJsonSerializable + { + /// A collection of event types + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"A collection of event types", + SerializedName = @"value", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventType) })] + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventType[] Value { get; set; } + + } + /// Result of the List Event Types operation + internal partial interface IEventTypesListResultInternal + + { + /// A collection of event types + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventType[] Value { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/EventTypesListResult.json.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/EventTypesListResult.json.cs new file mode 100644 index 000000000000..be9d4e2c75f2 --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/EventTypesListResult.json.cs @@ -0,0 +1,114 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Extensions; + + /// Result of the List Event Types operation + public partial class EventTypesListResult + { + + /// + /// AfterFromJson will be called after the json deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JsonNode that should be deserialized into this object. + + partial void AfterFromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json erialization has finished, allowing customization of the before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JSON container that the serialization result will be placed in. + + partial void AfterToJson(ref Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject container); + + /// + /// BeforeFromJson will be called before the json deserialization has commenced, allowing complete customization of + /// the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JsonNode that should be deserialized into this object. + /// Determines if the rest of the deserialization should be processed, or if the method should return + /// instantly. + + partial void BeforeFromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject json, ref bool returnNow); + + /// + /// BeforeToJson will be called before the json serialization has commenced, allowing complete customization of the + /// object before it is serialized. + /// If you wish to disable the default serialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JSON container that the serialization result will be placed in. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeToJson(ref Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject instance to deserialize from. + internal EventTypesListResult(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.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.EventGrid.Models.Api20211015Preview.IEventType) (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.EventType.FromJson(__u) )) ))() : null : Value;} + AfterFromJson(json); + } + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventTypesListResult. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventTypesListResult. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventTypesListResult FromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject json ? new EventTypesListResult(json) : null; + } + + /// + /// Serializes this instance of into a . + /// + /// The container to serialize this object into. If the caller + /// passes in null, a new instance will be created and returned to the caller. + /// Allows the caller to choose the depth of the serialization. See . + /// + /// a serialized instance of as a . + /// + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Runtime.Json.XNodeArray(); + foreach( var __x in this._value ) + { + AddIf(__x?.ToJson(null, serializationMode) ,__w.Add); + } + container.Add("value",__w); + } + AfterToJson(ref container); + return container; + } + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/ExtendedLocation.PowerShell.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/ExtendedLocation.PowerShell.cs new file mode 100644 index 000000000000..1a53574c0972 --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/ExtendedLocation.PowerShell.cs @@ -0,0 +1,150 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell; + + /// Definition of an Extended Location + [System.ComponentModel.TypeConverter(typeof(ExtendedLocationTypeConverter))] + public partial class ExtendedLocation + { + + /// + /// AfterDeserializeDictionary will be called after the deserialization has finished, allowing customization of the + /// object before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Collections.IDictionary content that should be used. + + partial void AfterDeserializeDictionary(global::System.Collections.IDictionary content); + + /// + /// AfterDeserializePSObject will be called after the deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Management.Automation.PSObject content that should be used. + + partial void AfterDeserializePSObject(global::System.Management.Automation.PSObject content); + + /// + /// BeforeDeserializeDictionary will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Collections.IDictionary content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializeDictionary(global::System.Collections.IDictionary content, ref bool returnNow); + + /// + /// BeforeDeserializePSObject will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializePSObject(global::System.Management.Automation.PSObject content, ref bool returnNow); + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IExtendedLocation DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new ExtendedLocation(content); + } + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IExtendedLocation DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new ExtendedLocation(content); + } + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + internal ExtendedLocation(global::System.Collections.IDictionary content) + { + bool returnNow = false; + BeforeDeserializeDictionary(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("Name")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IExtendedLocationInternal)this).Name = (string) content.GetValueForProperty("Name",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IExtendedLocationInternal)this).Name, global::System.Convert.ToString); + } + if (content.Contains("Type")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IExtendedLocationInternal)this).Type = (string) content.GetValueForProperty("Type",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IExtendedLocationInternal)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 ExtendedLocation(global::System.Management.Automation.PSObject content) + { + bool returnNow = false; + BeforeDeserializePSObject(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("Name")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IExtendedLocationInternal)this).Name = (string) content.GetValueForProperty("Name",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IExtendedLocationInternal)this).Name, global::System.Convert.ToString); + } + if (content.Contains("Type")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IExtendedLocationInternal)this).Type = (string) content.GetValueForProperty("Type",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IExtendedLocationInternal)this).Type, 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.EventGrid.Models.Api20211015Preview.IExtendedLocation FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode.Parse(jsonText)); + + /// Serializes this instance to a json string. + + /// a containing this model serialized to JSON text. + public string ToJsonString() => ToJson(null, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// Definition of an Extended Location + [System.ComponentModel.TypeConverter(typeof(ExtendedLocationTypeConverter))] + public partial interface IExtendedLocation + + { + + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/ExtendedLocation.TypeConverter.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/ExtendedLocation.TypeConverter.cs new file mode 100644 index 000000000000..e11db40a8d9b --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/ExtendedLocation.TypeConverter.cs @@ -0,0 +1,146 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class ExtendedLocationTypeConverter : global::System.Management.Automation.PSTypeConverter + { + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false. + /// + public override bool CanConvertFrom(object sourceValue, global::System.Type destinationType) => CanConvertFrom(sourceValue); + + /// + /// Determines if the converter can convert the parameter to the . + /// + /// the instance to check if it can be converted to the type. + /// + /// true if the instance could be converted to a type, otherwise false + /// + public static bool CanConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return true; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + // we say yest to PSObjects + return true; + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + // we say yest to Hashtables/dictionaries + return true; + } + try + { + if (null != sourceValue.ToJsonString()) + { + return true; + } + } + catch + { + // Not one of our objects + } + try + { + string text = sourceValue.ToString()?.Trim(); + return true == text?.StartsWith("{") && true == text?.EndsWith("}") && Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonType.Object; + } + catch + { + // Doesn't look like it can be treated as JSON + } + return false; + } + + /// + /// Determines if the parameter can be converted to the parameter + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false + /// + public override bool CanConvertTo(object sourceValue, global::System.Type destinationType) => false; + + /// + /// Converts the parameter to the parameter using and + /// + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// + /// an instance of , or null if there is no suitable conversion. + /// + public override object ConvertFrom(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => ConvertFrom(sourceValue); + + /// + /// Converts the parameter to the parameter using and + /// + /// the value to convert into an instance of . + /// + /// an instance of , or null if there is no suitable conversion. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IExtendedLocation ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IExtendedLocation).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return ExtendedLocation.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return ExtendedLocation.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return ExtendedLocation.DeserializeFromDictionary(sourceValue); + } + return null; + } + + /// NotImplemented -- this will return null + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// will always return null. + public override object ConvertTo(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => null; + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/ExtendedLocation.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/ExtendedLocation.cs new file mode 100644 index 000000000000..636b8ed385b3 --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/ExtendedLocation.cs @@ -0,0 +1,68 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Extensions; + + /// Definition of an Extended Location + public partial class ExtendedLocation : + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IExtendedLocation, + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IExtendedLocationInternal + { + + /// Backing field for property. + private string _name; + + /// Fully qualified name of the extended location. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Owned)] + public string Name { get => this._name; set => this._name = value; } + + /// Backing field for property. + private string _type; + + /// Type of the extended location. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Owned)] + public string Type { get => this._type; set => this._type = value; } + + /// Creates an new instance. + public ExtendedLocation() + { + + } + } + /// Definition of an Extended Location + public partial interface IExtendedLocation : + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IJsonSerializable + { + /// Fully qualified name of the extended location. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Fully qualified name of the extended location.", + SerializedName = @"name", + PossibleTypes = new [] { typeof(string) })] + string Name { get; set; } + /// Type of the extended location. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Type of the extended location.", + SerializedName = @"type", + PossibleTypes = new [] { typeof(string) })] + string Type { get; set; } + + } + /// Definition of an Extended Location + internal partial interface IExtendedLocationInternal + + { + /// Fully qualified name of the extended location. + string Name { get; set; } + /// Type of the extended location. + string Type { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/ExtendedLocation.json.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/ExtendedLocation.json.cs new file mode 100644 index 000000000000..26213b565ed4 --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/ExtendedLocation.json.cs @@ -0,0 +1,108 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Extensions; + + /// Definition of an Extended Location + public partial class ExtendedLocation + { + + /// + /// AfterFromJson will be called after the json deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JsonNode that should be deserialized into this object. + + partial void AfterFromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json erialization has finished, allowing customization of the before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JSON container that the serialization result will be placed in. + + partial void AfterToJson(ref Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject container); + + /// + /// BeforeFromJson will be called before the json deserialization has commenced, allowing complete customization of + /// the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JsonNode that should be deserialized into this object. + /// Determines if the rest of the deserialization should be processed, or if the method should return + /// instantly. + + partial void BeforeFromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject json, ref bool returnNow); + + /// + /// BeforeToJson will be called before the json serialization has commenced, allowing complete customization of the + /// object before it is serialized. + /// If you wish to disable the default serialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JSON container that the serialization result will be placed in. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeToJson(ref Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject instance to deserialize from. + internal ExtendedLocation(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject json) + { + bool returnNow = false; + BeforeFromJson(json, ref returnNow); + if (returnNow) + { + return; + } + {_name = If( json?.PropertyT("name"), out var __jsonName) ? (string)__jsonName : (string)Name;} + {_type = If( json?.PropertyT("type"), out var __jsonType) ? (string)__jsonType : (string)Type;} + AfterFromJson(json); + } + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IExtendedLocation. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IExtendedLocation. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IExtendedLocation FromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject json ? new ExtendedLocation(json) : null; + } + + /// + /// Serializes this instance of into a . + /// + /// The container to serialize this object into. If the caller + /// passes in null, a new instance will be created and returned to the caller. + /// Allows the caller to choose the depth of the serialization. See . + /// + /// a serialized instance of as a . + /// + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonString(this._name.ToString()) : null, "name" ,container.Add ); + AddIf( null != (((object)this._type)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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/eventgrid/generated/api/Models/Api20211015Preview/ExtensionTopic.PowerShell.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/ExtensionTopic.PowerShell.cs new file mode 100644 index 000000000000..d654f2166bbe --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/ExtensionTopic.PowerShell.cs @@ -0,0 +1,240 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell; + + /// + /// Event grid Extension Topic. This is used for getting Event Grid related metrics for Azure resources. + /// + [System.ComponentModel.TypeConverter(typeof(ExtensionTopicTypeConverter))] + public partial class ExtensionTopic + { + + /// + /// AfterDeserializeDictionary will be called after the deserialization has finished, allowing customization of the + /// object before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Collections.IDictionary content that should be used. + + partial void AfterDeserializeDictionary(global::System.Collections.IDictionary content); + + /// + /// AfterDeserializePSObject will be called after the deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Management.Automation.PSObject content that should be used. + + partial void AfterDeserializePSObject(global::System.Management.Automation.PSObject content); + + /// + /// BeforeDeserializeDictionary will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Collections.IDictionary content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializeDictionary(global::System.Collections.IDictionary content, ref bool returnNow); + + /// + /// BeforeDeserializePSObject will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializePSObject(global::System.Management.Automation.PSObject content, ref bool returnNow); + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IExtensionTopic DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new ExtensionTopic(content); + } + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IExtensionTopic DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new ExtensionTopic(content); + } + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + internal ExtensionTopic(global::System.Collections.IDictionary content) + { + bool returnNow = false; + BeforeDeserializeDictionary(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("Property")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IExtensionTopicInternal)this).Property = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IExtensionTopicProperties) content.GetValueForProperty("Property",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IExtensionTopicInternal)this).Property, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ExtensionTopicPropertiesTypeConverter.ConvertFrom); + } + if (content.Contains("SystemData")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IExtensionTopicInternal)this).SystemData = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20.ISystemData) content.GetValueForProperty("SystemData",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IExtensionTopicInternal)this).SystemData, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20.SystemDataTypeConverter.ConvertFrom); + } + if (content.Contains("Id")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IResourceInternal)this).Id = (string) content.GetValueForProperty("Id",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IResourceInternal)this).Id, global::System.Convert.ToString); + } + if (content.Contains("Name")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IResourceInternal)this).Name = (string) content.GetValueForProperty("Name",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IResourceInternal)this).Name, global::System.Convert.ToString); + } + if (content.Contains("Type")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IResourceInternal)this).Type = (string) content.GetValueForProperty("Type",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IResourceInternal)this).Type, global::System.Convert.ToString); + } + if (content.Contains("SystemDataCreatedBy")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IExtensionTopicInternal)this).SystemDataCreatedBy = (string) content.GetValueForProperty("SystemDataCreatedBy",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IExtensionTopicInternal)this).SystemDataCreatedBy, global::System.Convert.ToString); + } + if (content.Contains("SystemDataCreatedAt")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IExtensionTopicInternal)this).SystemDataCreatedAt = (global::System.DateTime?) content.GetValueForProperty("SystemDataCreatedAt",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IExtensionTopicInternal)this).SystemDataCreatedAt, (v) => v is global::System.DateTime _v ? _v : global::System.Xml.XmlConvert.ToDateTime( v.ToString() , global::System.Xml.XmlDateTimeSerializationMode.Unspecified)); + } + if (content.Contains("Description")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IExtensionTopicInternal)this).Description = (string) content.GetValueForProperty("Description",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IExtensionTopicInternal)this).Description, global::System.Convert.ToString); + } + if (content.Contains("SystemTopic")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IExtensionTopicInternal)this).SystemTopic = (string) content.GetValueForProperty("SystemTopic",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IExtensionTopicInternal)this).SystemTopic, global::System.Convert.ToString); + } + if (content.Contains("SystemDataCreatedByType")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IExtensionTopicInternal)this).SystemDataCreatedByType = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.CreatedByType?) content.GetValueForProperty("SystemDataCreatedByType",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IExtensionTopicInternal)this).SystemDataCreatedByType, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.CreatedByType.CreateFrom); + } + if (content.Contains("SystemDataLastModifiedBy")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IExtensionTopicInternal)this).SystemDataLastModifiedBy = (string) content.GetValueForProperty("SystemDataLastModifiedBy",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IExtensionTopicInternal)this).SystemDataLastModifiedBy, global::System.Convert.ToString); + } + if (content.Contains("SystemDataLastModifiedByType")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IExtensionTopicInternal)this).SystemDataLastModifiedByType = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.CreatedByType?) content.GetValueForProperty("SystemDataLastModifiedByType",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IExtensionTopicInternal)this).SystemDataLastModifiedByType, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.CreatedByType.CreateFrom); + } + if (content.Contains("SystemDataLastModifiedAt")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IExtensionTopicInternal)this).SystemDataLastModifiedAt = (global::System.DateTime?) content.GetValueForProperty("SystemDataLastModifiedAt",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IExtensionTopicInternal)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 ExtensionTopic(global::System.Management.Automation.PSObject content) + { + bool returnNow = false; + BeforeDeserializePSObject(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("Property")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IExtensionTopicInternal)this).Property = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IExtensionTopicProperties) content.GetValueForProperty("Property",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IExtensionTopicInternal)this).Property, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ExtensionTopicPropertiesTypeConverter.ConvertFrom); + } + if (content.Contains("SystemData")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IExtensionTopicInternal)this).SystemData = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20.ISystemData) content.GetValueForProperty("SystemData",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IExtensionTopicInternal)this).SystemData, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20.SystemDataTypeConverter.ConvertFrom); + } + if (content.Contains("Id")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IResourceInternal)this).Id = (string) content.GetValueForProperty("Id",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IResourceInternal)this).Id, global::System.Convert.ToString); + } + if (content.Contains("Name")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IResourceInternal)this).Name = (string) content.GetValueForProperty("Name",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IResourceInternal)this).Name, global::System.Convert.ToString); + } + if (content.Contains("Type")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IResourceInternal)this).Type = (string) content.GetValueForProperty("Type",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IResourceInternal)this).Type, global::System.Convert.ToString); + } + if (content.Contains("SystemDataCreatedBy")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IExtensionTopicInternal)this).SystemDataCreatedBy = (string) content.GetValueForProperty("SystemDataCreatedBy",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IExtensionTopicInternal)this).SystemDataCreatedBy, global::System.Convert.ToString); + } + if (content.Contains("SystemDataCreatedAt")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IExtensionTopicInternal)this).SystemDataCreatedAt = (global::System.DateTime?) content.GetValueForProperty("SystemDataCreatedAt",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IExtensionTopicInternal)this).SystemDataCreatedAt, (v) => v is global::System.DateTime _v ? _v : global::System.Xml.XmlConvert.ToDateTime( v.ToString() , global::System.Xml.XmlDateTimeSerializationMode.Unspecified)); + } + if (content.Contains("Description")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IExtensionTopicInternal)this).Description = (string) content.GetValueForProperty("Description",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IExtensionTopicInternal)this).Description, global::System.Convert.ToString); + } + if (content.Contains("SystemTopic")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IExtensionTopicInternal)this).SystemTopic = (string) content.GetValueForProperty("SystemTopic",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IExtensionTopicInternal)this).SystemTopic, global::System.Convert.ToString); + } + if (content.Contains("SystemDataCreatedByType")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IExtensionTopicInternal)this).SystemDataCreatedByType = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.CreatedByType?) content.GetValueForProperty("SystemDataCreatedByType",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IExtensionTopicInternal)this).SystemDataCreatedByType, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.CreatedByType.CreateFrom); + } + if (content.Contains("SystemDataLastModifiedBy")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IExtensionTopicInternal)this).SystemDataLastModifiedBy = (string) content.GetValueForProperty("SystemDataLastModifiedBy",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IExtensionTopicInternal)this).SystemDataLastModifiedBy, global::System.Convert.ToString); + } + if (content.Contains("SystemDataLastModifiedByType")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IExtensionTopicInternal)this).SystemDataLastModifiedByType = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.CreatedByType?) content.GetValueForProperty("SystemDataLastModifiedByType",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IExtensionTopicInternal)this).SystemDataLastModifiedByType, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.CreatedByType.CreateFrom); + } + if (content.Contains("SystemDataLastModifiedAt")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IExtensionTopicInternal)this).SystemDataLastModifiedAt = (global::System.DateTime?) content.GetValueForProperty("SystemDataLastModifiedAt",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IExtensionTopicInternal)this).SystemDataLastModifiedAt, (v) => v is global::System.DateTime _v ? _v : global::System.Xml.XmlConvert.ToDateTime( v.ToString() , global::System.Xml.XmlDateTimeSerializationMode.Unspecified)); + } + AfterDeserializePSObject(content); + } + + /// + /// Creates a new instance of , deserializing the content from a json string. + /// + /// a string containing a JSON serialized instance of this model. + /// an instance of the model class. + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IExtensionTopic FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode.Parse(jsonText)); + + /// Serializes this instance to a json string. + + /// a containing this model serialized to JSON text. + public string ToJsonString() => ToJson(null, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// Event grid Extension Topic. This is used for getting Event Grid related metrics for Azure resources. + [System.ComponentModel.TypeConverter(typeof(ExtensionTopicTypeConverter))] + public partial interface IExtensionTopic + + { + + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/ExtensionTopic.TypeConverter.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/ExtensionTopic.TypeConverter.cs new file mode 100644 index 000000000000..a0dada07ae41 --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/ExtensionTopic.TypeConverter.cs @@ -0,0 +1,146 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class ExtensionTopicTypeConverter : global::System.Management.Automation.PSTypeConverter + { + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false. + /// + public override bool CanConvertFrom(object sourceValue, global::System.Type destinationType) => CanConvertFrom(sourceValue); + + /// + /// Determines if the converter can convert the parameter to the . + /// + /// the instance to check if it can be converted to the type. + /// + /// true if the instance could be converted to a type, otherwise false + /// + public static bool CanConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return true; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + // we say yest to PSObjects + return true; + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + // we say yest to Hashtables/dictionaries + return true; + } + try + { + if (null != sourceValue.ToJsonString()) + { + return true; + } + } + catch + { + // Not one of our objects + } + try + { + string text = sourceValue.ToString()?.Trim(); + return true == text?.StartsWith("{") && true == text?.EndsWith("}") && Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonType.Object; + } + catch + { + // Doesn't look like it can be treated as JSON + } + return false; + } + + /// + /// Determines if the parameter can be converted to the parameter + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false + /// + public override bool CanConvertTo(object sourceValue, global::System.Type destinationType) => false; + + /// + /// Converts the parameter to the parameter using and + /// + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// + /// an instance of , or null if there is no suitable conversion. + /// + public override object ConvertFrom(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => ConvertFrom(sourceValue); + + /// + /// Converts the parameter to the parameter using and + /// + /// the value to convert into an instance of . + /// + /// an instance of , or null if there is no suitable conversion. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IExtensionTopic ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IExtensionTopic).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return ExtensionTopic.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return ExtensionTopic.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return ExtensionTopic.DeserializeFromDictionary(sourceValue); + } + return null; + } + + /// NotImplemented -- this will return null + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// will always return null. + public override object ConvertTo(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => null; + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/ExtensionTopic.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/ExtensionTopic.cs new file mode 100644 index 000000000000..98053445f2f4 --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/ExtensionTopic.cs @@ -0,0 +1,212 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Extensions; + + /// + /// Event grid Extension Topic. This is used for getting Event Grid related metrics for Azure resources. + /// + public partial class ExtensionTopic : + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IExtensionTopic, + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IExtensionTopicInternal, + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IValidates + { + /// + /// Backing field for Inherited model + /// + private Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IResource __resource = new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.Resource(); + + /// Description of the extension topic. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Inlined)] + public string Description { get => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IExtensionTopicPropertiesInternal)Property).Description; set => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IExtensionTopicPropertiesInternal)Property).Description = value ?? null; } + + /// Fully qualified identifier of the resource. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Inherited)] + public string Id { get => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IResourceInternal)__resource).Id; } + + /// Internal Acessors for Property + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IExtensionTopicProperties Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IExtensionTopicInternal.Property { get => (this._property = this._property ?? new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ExtensionTopicProperties()); set { {_property = value;} } } + + /// Internal Acessors for SystemData + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20.ISystemData Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IExtensionTopicInternal.SystemData { get => (this._systemData = this._systemData ?? new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20.SystemData()); set { {_systemData = value;} } } + + /// Internal Acessors for Id + string Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IResourceInternal.Id { get => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IResourceInternal)__resource).Id; set => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IResourceInternal)__resource).Id = value; } + + /// Internal Acessors for Name + string Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IResourceInternal.Name { get => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IResourceInternal)__resource).Name; set => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IResourceInternal)__resource).Name = value; } + + /// Internal Acessors for Type + string Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IResourceInternal.Type { get => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IResourceInternal)__resource).Type; set => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IResourceInternal)__resource).Type = value; } + + /// Name of the resource. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Inherited)] + public string Name { get => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IResourceInternal)__resource).Name; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IExtensionTopicProperties _property; + + /// Properties of the extension topic + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Owned)] + internal Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IExtensionTopicProperties Property { get => (this._property = this._property ?? new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ExtensionTopicProperties()); set => this._property = value; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20.ISystemData _systemData; + + /// The system metadata relating to Extension Topic resource. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Owned)] + internal Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20.ISystemData SystemData { get => (this._systemData = this._systemData ?? new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20.SystemData()); } + + /// The timestamp of resource creation (UTC). + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Inlined)] + public global::System.DateTime? SystemDataCreatedAt { get => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20.ISystemDataInternal)SystemData).CreatedAt; set => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20.ISystemDataInternal)SystemData).CreatedAt = value ?? default(global::System.DateTime); } + + /// The identity that created the resource. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Inlined)] + public string SystemDataCreatedBy { get => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20.ISystemDataInternal)SystemData).CreatedBy; set => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20.ISystemDataInternal)SystemData).CreatedBy = value ?? null; } + + /// The type of identity that created the resource. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Inlined)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.CreatedByType? SystemDataCreatedByType { get => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20.ISystemDataInternal)SystemData).CreatedByType; set => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20.ISystemDataInternal)SystemData).CreatedByType = value ?? ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.CreatedByType)""); } + + /// The timestamp of resource last modification (UTC) + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Inlined)] + public global::System.DateTime? SystemDataLastModifiedAt { get => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20.ISystemDataInternal)SystemData).LastModifiedAt; set => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20.ISystemDataInternal)SystemData).LastModifiedAt = value ?? default(global::System.DateTime); } + + /// The identity that last modified the resource. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Inlined)] + public string SystemDataLastModifiedBy { get => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20.ISystemDataInternal)SystemData).LastModifiedBy; set => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20.ISystemDataInternal)SystemData).LastModifiedBy = value ?? null; } + + /// The type of identity that last modified the resource. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Inlined)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.CreatedByType? SystemDataLastModifiedByType { get => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20.ISystemDataInternal)SystemData).LastModifiedByType; set => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20.ISystemDataInternal)SystemData).LastModifiedByType = value ?? ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.CreatedByType)""); } + + /// System topic resource id which is mapped to the source. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Inlined)] + public string SystemTopic { get => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IExtensionTopicPropertiesInternal)Property).SystemTopic; set => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IExtensionTopicPropertiesInternal)Property).SystemTopic = value ?? null; } + + /// Type of the resource. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Inherited)] + public string Type { get => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IResourceInternal)__resource).Type; } + + /// Creates an new instance. + public ExtensionTopic() + { + + } + + /// Validates that this object meets the validation criteria. + /// an instance that will receive validation + /// events. + /// + /// A that will be complete when validation is completed. + /// + public async global::System.Threading.Tasks.Task Validate(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener eventListener) + { + await eventListener.AssertNotNull(nameof(__resource), __resource); + await eventListener.AssertObjectIsValid(nameof(__resource), __resource); + } + } + /// Event grid Extension Topic. This is used for getting Event Grid related metrics for Azure resources. + public partial interface IExtensionTopic : + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IJsonSerializable, + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IResource + { + /// Description of the extension topic. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Description of the extension topic.", + SerializedName = @"description", + PossibleTypes = new [] { typeof(string) })] + string Description { get; set; } + /// The timestamp of resource creation (UTC). + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.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.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The type of identity that created the resource.", + SerializedName = @"createdByType", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.CreatedByType) })] + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.CreatedByType? SystemDataCreatedByType { get; set; } + /// The timestamp of resource last modification (UTC) + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.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.EventGrid.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.EventGrid.Support.CreatedByType) })] + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.CreatedByType? SystemDataLastModifiedByType { get; set; } + /// System topic resource id which is mapped to the source. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"System topic resource id which is mapped to the source.", + SerializedName = @"systemTopic", + PossibleTypes = new [] { typeof(string) })] + string SystemTopic { get; set; } + + } + /// Event grid Extension Topic. This is used for getting Event Grid related metrics for Azure resources. + internal partial interface IExtensionTopicInternal : + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IResourceInternal + { + /// Description of the extension topic. + string Description { get; set; } + /// Properties of the extension topic + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IExtensionTopicProperties Property { get; set; } + /// The system metadata relating to Extension Topic resource. + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.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.EventGrid.Support.CreatedByType? SystemDataLastModifiedByType { get; set; } + /// System topic resource id which is mapped to the source. + string SystemTopic { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/ExtensionTopic.json.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/ExtensionTopic.json.cs new file mode 100644 index 000000000000..207fa868cbad --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/ExtensionTopic.json.cs @@ -0,0 +1,115 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Extensions; + + /// + /// Event grid Extension Topic. This is used for getting Event Grid related metrics for Azure resources. + /// + public partial class ExtensionTopic + { + + /// + /// AfterFromJson will be called after the json deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JsonNode that should be deserialized into this object. + + partial void AfterFromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json erialization has finished, allowing customization of the before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JSON container that the serialization result will be placed in. + + partial void AfterToJson(ref Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject container); + + /// + /// BeforeFromJson will be called before the json deserialization has commenced, allowing complete customization of + /// the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JsonNode that should be deserialized into this object. + /// Determines if the rest of the deserialization should be processed, or if the method should return + /// instantly. + + partial void BeforeFromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject json, ref bool returnNow); + + /// + /// BeforeToJson will be called before the json serialization has commenced, allowing complete customization of the + /// object before it is serialized. + /// If you wish to disable the default serialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JSON container that the serialization result will be placed in. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeToJson(ref Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject instance to deserialize from. + internal ExtensionTopic(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject json) + { + bool returnNow = false; + BeforeFromJson(json, ref returnNow); + if (returnNow) + { + return; + } + __resource = new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.Resource(json); + {_property = If( json?.PropertyT("properties"), out var __jsonProperties) ? Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ExtensionTopicProperties.FromJson(__jsonProperties) : Property;} + {_systemData = If( json?.PropertyT("systemData"), out var __jsonSystemData) ? Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20.SystemData.FromJson(__jsonSystemData) : SystemData;} + AfterFromJson(json); + } + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IExtensionTopic. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IExtensionTopic. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IExtensionTopic FromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject json ? new ExtensionTopic(json) : null; + } + + /// + /// Serializes this instance of into a . + /// + /// The container to serialize this object into. If the caller + /// passes in null, a new instance will be created and returned to the caller. + /// Allows the caller to choose the depth of the serialization. See . + /// + /// a serialized instance of as a . + /// + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Runtime.Json.JsonNode) this._property.ToJson(null,serializationMode) : null, "properties" ,container.Add ); + if (serializationMode.HasFlag(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SerializationMode.IncludeReadOnly)) + { + AddIf( null != this._systemData ? (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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/eventgrid/generated/api/Models/Api20211015Preview/ExtensionTopicProperties.PowerShell.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/ExtensionTopicProperties.PowerShell.cs new file mode 100644 index 000000000000..758343e11440 --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/ExtensionTopicProperties.PowerShell.cs @@ -0,0 +1,152 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell; + + /// Properties of the Extension Topic + [System.ComponentModel.TypeConverter(typeof(ExtensionTopicPropertiesTypeConverter))] + public partial class ExtensionTopicProperties + { + + /// + /// AfterDeserializeDictionary will be called after the deserialization has finished, allowing customization of the + /// object before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Collections.IDictionary content that should be used. + + partial void AfterDeserializeDictionary(global::System.Collections.IDictionary content); + + /// + /// AfterDeserializePSObject will be called after the deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Management.Automation.PSObject content that should be used. + + partial void AfterDeserializePSObject(global::System.Management.Automation.PSObject content); + + /// + /// BeforeDeserializeDictionary will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Collections.IDictionary content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializeDictionary(global::System.Collections.IDictionary content, ref bool returnNow); + + /// + /// BeforeDeserializePSObject will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializePSObject(global::System.Management.Automation.PSObject content, ref bool returnNow); + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IExtensionTopicProperties DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new ExtensionTopicProperties(content); + } + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IExtensionTopicProperties DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new ExtensionTopicProperties(content); + } + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + internal ExtensionTopicProperties(global::System.Collections.IDictionary content) + { + bool returnNow = false; + BeforeDeserializeDictionary(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("Description")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IExtensionTopicPropertiesInternal)this).Description = (string) content.GetValueForProperty("Description",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IExtensionTopicPropertiesInternal)this).Description, global::System.Convert.ToString); + } + if (content.Contains("SystemTopic")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IExtensionTopicPropertiesInternal)this).SystemTopic = (string) content.GetValueForProperty("SystemTopic",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IExtensionTopicPropertiesInternal)this).SystemTopic, global::System.Convert.ToString); + } + AfterDeserializeDictionary(content); + } + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + internal ExtensionTopicProperties(global::System.Management.Automation.PSObject content) + { + bool returnNow = false; + BeforeDeserializePSObject(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("Description")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IExtensionTopicPropertiesInternal)this).Description = (string) content.GetValueForProperty("Description",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IExtensionTopicPropertiesInternal)this).Description, global::System.Convert.ToString); + } + if (content.Contains("SystemTopic")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IExtensionTopicPropertiesInternal)this).SystemTopic = (string) content.GetValueForProperty("SystemTopic",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IExtensionTopicPropertiesInternal)this).SystemTopic, 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.EventGrid.Models.Api20211015Preview.IExtensionTopicProperties FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode.Parse(jsonText)); + + /// Serializes this instance to a json string. + + /// a containing this model serialized to JSON text. + public string ToJsonString() => ToJson(null, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// Properties of the Extension Topic + [System.ComponentModel.TypeConverter(typeof(ExtensionTopicPropertiesTypeConverter))] + public partial interface IExtensionTopicProperties + + { + + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/ExtensionTopicProperties.TypeConverter.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/ExtensionTopicProperties.TypeConverter.cs new file mode 100644 index 000000000000..9f0264bad0c1 --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/ExtensionTopicProperties.TypeConverter.cs @@ -0,0 +1,147 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class ExtensionTopicPropertiesTypeConverter : global::System.Management.Automation.PSTypeConverter + { + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false. + /// + public override bool CanConvertFrom(object sourceValue, global::System.Type destinationType) => CanConvertFrom(sourceValue); + + /// + /// Determines if the converter can convert the parameter to the . + /// + /// the instance to check if it can be converted to the type. + /// + /// true if the instance could be converted to a type, otherwise false + /// + public static bool CanConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return true; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + // we say yest to PSObjects + return true; + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + // we say yest to Hashtables/dictionaries + return true; + } + try + { + if (null != sourceValue.ToJsonString()) + { + return true; + } + } + catch + { + // Not one of our objects + } + try + { + string text = sourceValue.ToString()?.Trim(); + return true == text?.StartsWith("{") && true == text?.EndsWith("}") && Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonType.Object; + } + catch + { + // Doesn't look like it can be treated as JSON + } + return false; + } + + /// + /// Determines if the parameter can be converted to the parameter + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false + /// + public override bool CanConvertTo(object sourceValue, global::System.Type destinationType) => false; + + /// + /// Converts the parameter to the parameter using and + /// + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// + /// an instance of , or null if there is no suitable conversion. + /// + public override object ConvertFrom(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => ConvertFrom(sourceValue); + + /// + /// Converts the parameter to the parameter using and + /// + /// the value to convert into an instance of . + /// + /// an instance of , or null if there is no suitable conversion. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IExtensionTopicProperties ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IExtensionTopicProperties).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return ExtensionTopicProperties.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return ExtensionTopicProperties.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return ExtensionTopicProperties.DeserializeFromDictionary(sourceValue); + } + return null; + } + + /// NotImplemented -- this will return null + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// will always return null. + public override object ConvertTo(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => null; + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/ExtensionTopicProperties.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/ExtensionTopicProperties.cs new file mode 100644 index 000000000000..59ea464142eb --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/ExtensionTopicProperties.cs @@ -0,0 +1,68 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Extensions; + + /// Properties of the Extension Topic + public partial class ExtensionTopicProperties : + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IExtensionTopicProperties, + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IExtensionTopicPropertiesInternal + { + + /// Backing field for property. + private string _description; + + /// Description of the extension topic. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Owned)] + public string Description { get => this._description; set => this._description = value; } + + /// Backing field for property. + private string _systemTopic; + + /// System topic resource id which is mapped to the source. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Owned)] + public string SystemTopic { get => this._systemTopic; set => this._systemTopic = value; } + + /// Creates an new instance. + public ExtensionTopicProperties() + { + + } + } + /// Properties of the Extension Topic + public partial interface IExtensionTopicProperties : + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IJsonSerializable + { + /// Description of the extension topic. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Description of the extension topic.", + SerializedName = @"description", + PossibleTypes = new [] { typeof(string) })] + string Description { get; set; } + /// System topic resource id which is mapped to the source. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"System topic resource id which is mapped to the source.", + SerializedName = @"systemTopic", + PossibleTypes = new [] { typeof(string) })] + string SystemTopic { get; set; } + + } + /// Properties of the Extension Topic + internal partial interface IExtensionTopicPropertiesInternal + + { + /// Description of the extension topic. + string Description { get; set; } + /// System topic resource id which is mapped to the source. + string SystemTopic { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/ExtensionTopicProperties.json.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/ExtensionTopicProperties.json.cs new file mode 100644 index 000000000000..a925bb713a36 --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/ExtensionTopicProperties.json.cs @@ -0,0 +1,108 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Extensions; + + /// Properties of the Extension Topic + public partial class ExtensionTopicProperties + { + + /// + /// AfterFromJson will be called after the json deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JsonNode that should be deserialized into this object. + + partial void AfterFromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json erialization has finished, allowing customization of the before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JSON container that the serialization result will be placed in. + + partial void AfterToJson(ref Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject container); + + /// + /// BeforeFromJson will be called before the json deserialization has commenced, allowing complete customization of + /// the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JsonNode that should be deserialized into this object. + /// Determines if the rest of the deserialization should be processed, or if the method should return + /// instantly. + + partial void BeforeFromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject json, ref bool returnNow); + + /// + /// BeforeToJson will be called before the json serialization has commenced, allowing complete customization of the + /// object before it is serialized. + /// If you wish to disable the default serialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JSON container that the serialization result will be placed in. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeToJson(ref Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject instance to deserialize from. + internal ExtensionTopicProperties(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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;} + {_systemTopic = If( json?.PropertyT("systemTopic"), out var __jsonSystemTopic) ? (string)__jsonSystemTopic : (string)SystemTopic;} + AfterFromJson(json); + } + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IExtensionTopicProperties. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IExtensionTopicProperties. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IExtensionTopicProperties FromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject json ? new ExtensionTopicProperties(json) : null; + } + + /// + /// Serializes this instance of into a . + /// + /// The container to serialize this object into. If the caller + /// passes in null, a new instance will be created and returned to the caller. + /// Allows the caller to choose the depth of the serialization. See . + /// + /// a serialized instance of as a . + /// + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonString(this._description.ToString()) : null, "description" ,container.Add ); + AddIf( null != (((object)this._systemTopic)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonString(this._systemTopic.ToString()) : null, "systemTopic" ,container.Add ); + AfterToJson(ref container); + return container; + } + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/HybridConnectionEventSubscriptionDestination.PowerShell.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/HybridConnectionEventSubscriptionDestination.PowerShell.cs new file mode 100644 index 000000000000..7e4e504ff642 --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/HybridConnectionEventSubscriptionDestination.PowerShell.cs @@ -0,0 +1,171 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell; + + /// Information about the HybridConnection destination for an event subscription. + [System.ComponentModel.TypeConverter(typeof(HybridConnectionEventSubscriptionDestinationTypeConverter))] + public partial class HybridConnectionEventSubscriptionDestination + { + + /// + /// AfterDeserializeDictionary will be called after the deserialization has finished, allowing customization of the + /// object before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Collections.IDictionary content that should be used. + + partial void AfterDeserializeDictionary(global::System.Collections.IDictionary content); + + /// + /// AfterDeserializePSObject will be called after the deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Management.Automation.PSObject content that should be used. + + partial void AfterDeserializePSObject(global::System.Management.Automation.PSObject content); + + /// + /// BeforeDeserializeDictionary will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Collections.IDictionary content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializeDictionary(global::System.Collections.IDictionary content, ref bool returnNow); + + /// + /// BeforeDeserializePSObject will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializePSObject(global::System.Management.Automation.PSObject content, ref bool returnNow); + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IHybridConnectionEventSubscriptionDestination DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new HybridConnectionEventSubscriptionDestination(content); + } + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IHybridConnectionEventSubscriptionDestination DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new HybridConnectionEventSubscriptionDestination(content); + } + + /// + /// Creates a new instance of , deserializing the content from + /// a json string. + /// + /// a string containing a JSON serialized instance of this model. + /// + /// an instance of the model class. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IHybridConnectionEventSubscriptionDestination FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode.Parse(jsonText)); + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + internal HybridConnectionEventSubscriptionDestination(global::System.Collections.IDictionary content) + { + bool returnNow = false; + BeforeDeserializeDictionary(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("Property")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IHybridConnectionEventSubscriptionDestinationInternal)this).Property = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IHybridConnectionEventSubscriptionDestinationProperties) content.GetValueForProperty("Property",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IHybridConnectionEventSubscriptionDestinationInternal)this).Property, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.HybridConnectionEventSubscriptionDestinationPropertiesTypeConverter.ConvertFrom); + } + if (content.Contains("EndpointType")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionDestinationInternal)this).EndpointType = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EndpointType) content.GetValueForProperty("EndpointType",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionDestinationInternal)this).EndpointType, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EndpointType.CreateFrom); + } + if (content.Contains("ResourceId")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IHybridConnectionEventSubscriptionDestinationInternal)this).ResourceId = (string) content.GetValueForProperty("ResourceId",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IHybridConnectionEventSubscriptionDestinationInternal)this).ResourceId, global::System.Convert.ToString); + } + if (content.Contains("DeliveryAttributeMapping")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IHybridConnectionEventSubscriptionDestinationInternal)this).DeliveryAttributeMapping = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDeliveryAttributeMapping[]) content.GetValueForProperty("DeliveryAttributeMapping",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IHybridConnectionEventSubscriptionDestinationInternal)this).DeliveryAttributeMapping, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.DeliveryAttributeMappingTypeConverter.ConvertFrom)); + } + AfterDeserializeDictionary(content); + } + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + internal HybridConnectionEventSubscriptionDestination(global::System.Management.Automation.PSObject content) + { + bool returnNow = false; + BeforeDeserializePSObject(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("Property")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IHybridConnectionEventSubscriptionDestinationInternal)this).Property = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IHybridConnectionEventSubscriptionDestinationProperties) content.GetValueForProperty("Property",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IHybridConnectionEventSubscriptionDestinationInternal)this).Property, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.HybridConnectionEventSubscriptionDestinationPropertiesTypeConverter.ConvertFrom); + } + if (content.Contains("EndpointType")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionDestinationInternal)this).EndpointType = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EndpointType) content.GetValueForProperty("EndpointType",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionDestinationInternal)this).EndpointType, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EndpointType.CreateFrom); + } + if (content.Contains("ResourceId")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IHybridConnectionEventSubscriptionDestinationInternal)this).ResourceId = (string) content.GetValueForProperty("ResourceId",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IHybridConnectionEventSubscriptionDestinationInternal)this).ResourceId, global::System.Convert.ToString); + } + if (content.Contains("DeliveryAttributeMapping")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IHybridConnectionEventSubscriptionDestinationInternal)this).DeliveryAttributeMapping = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDeliveryAttributeMapping[]) content.GetValueForProperty("DeliveryAttributeMapping",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IHybridConnectionEventSubscriptionDestinationInternal)this).DeliveryAttributeMapping, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.DeliveryAttributeMappingTypeConverter.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.EventGrid.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// Information about the HybridConnection destination for an event subscription. + [System.ComponentModel.TypeConverter(typeof(HybridConnectionEventSubscriptionDestinationTypeConverter))] + public partial interface IHybridConnectionEventSubscriptionDestination + + { + + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/HybridConnectionEventSubscriptionDestination.TypeConverter.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/HybridConnectionEventSubscriptionDestination.TypeConverter.cs new file mode 100644 index 000000000000..58ad67d7e254 --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/HybridConnectionEventSubscriptionDestination.TypeConverter.cs @@ -0,0 +1,150 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class HybridConnectionEventSubscriptionDestinationTypeConverter : global::System.Management.Automation.PSTypeConverter + { + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false. + /// + public override bool CanConvertFrom(object sourceValue, global::System.Type destinationType) => CanConvertFrom(sourceValue); + + /// + /// Determines if the converter can convert the parameter to the . + /// + /// the instance to check if it can be converted to the type. + /// + /// true if the instance could be converted to a type, + /// otherwise false + /// + public static bool CanConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return true; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + // we say yest to PSObjects + return true; + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + // we say yest to Hashtables/dictionaries + return true; + } + try + { + if (null != sourceValue.ToJsonString()) + { + return true; + } + } + catch + { + // Not one of our objects + } + try + { + string text = sourceValue.ToString()?.Trim(); + return true == text?.StartsWith("{") && true == text?.EndsWith("}") && Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonType.Object; + } + catch + { + // Doesn't look like it can be treated as JSON + } + return false; + } + + /// + /// Determines if the parameter can be converted to the parameter + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false + /// + public override bool CanConvertTo(object sourceValue, global::System.Type destinationType) => false; + + /// + /// Converts the parameter to the parameter using and + /// + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// + /// an instance of , or null if there is no suitable conversion. + /// + public override object ConvertFrom(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => ConvertFrom(sourceValue); + + /// + /// Converts the parameter to the parameter using and + /// + /// the value to convert into an instance of . + /// + /// an instance of , or null if there is no suitable conversion. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IHybridConnectionEventSubscriptionDestination ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IHybridConnectionEventSubscriptionDestination).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return HybridConnectionEventSubscriptionDestination.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return HybridConnectionEventSubscriptionDestination.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return HybridConnectionEventSubscriptionDestination.DeserializeFromDictionary(sourceValue); + } + return null; + } + + /// NotImplemented -- this will return null + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// will always return null. + public override object ConvertTo(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => null; + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/HybridConnectionEventSubscriptionDestination.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/HybridConnectionEventSubscriptionDestination.cs new file mode 100644 index 000000000000..7e0f09190b79 --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/HybridConnectionEventSubscriptionDestination.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.EventGrid.Models.Api20211015Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Extensions; + + /// Information about the HybridConnection destination for an event subscription. + public partial class HybridConnectionEventSubscriptionDestination : + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IHybridConnectionEventSubscriptionDestination, + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IHybridConnectionEventSubscriptionDestinationInternal, + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IValidates + { + /// + /// Backing field for Inherited model + /// + private Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionDestination __eventSubscriptionDestination = new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.EventSubscriptionDestination(); + + /// Delivery attribute details. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Inlined)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDeliveryAttributeMapping[] DeliveryAttributeMapping { get => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IHybridConnectionEventSubscriptionDestinationPropertiesInternal)Property).DeliveryAttributeMapping; set => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IHybridConnectionEventSubscriptionDestinationPropertiesInternal)Property).DeliveryAttributeMapping = value ?? null /* arrayOf */; } + + /// Type of the endpoint for the event subscription destination. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Inherited)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EndpointType EndpointType { get => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionDestinationInternal)__eventSubscriptionDestination).EndpointType; set => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionDestinationInternal)__eventSubscriptionDestination).EndpointType = value ; } + + /// Internal Acessors for Property + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IHybridConnectionEventSubscriptionDestinationProperties Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IHybridConnectionEventSubscriptionDestinationInternal.Property { get => (this._property = this._property ?? new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.HybridConnectionEventSubscriptionDestinationProperties()); set { {_property = value;} } } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IHybridConnectionEventSubscriptionDestinationProperties _property; + + /// Hybrid connection Properties of the event subscription destination. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Owned)] + internal Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IHybridConnectionEventSubscriptionDestinationProperties Property { get => (this._property = this._property ?? new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.HybridConnectionEventSubscriptionDestinationProperties()); set => this._property = value; } + + /// + /// The Azure Resource ID of an hybrid connection that is the destination of an event subscription. + /// + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Inlined)] + public string ResourceId { get => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IHybridConnectionEventSubscriptionDestinationPropertiesInternal)Property).ResourceId; set => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IHybridConnectionEventSubscriptionDestinationPropertiesInternal)Property).ResourceId = value ?? null; } + + /// + /// Creates an new instance. + /// + public HybridConnectionEventSubscriptionDestination() + { + + } + + /// Validates that this object meets the validation criteria. + /// an instance that will receive validation + /// events. + /// + /// A that will be complete when validation is completed. + /// + public async global::System.Threading.Tasks.Task Validate(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener eventListener) + { + await eventListener.AssertNotNull(nameof(__eventSubscriptionDestination), __eventSubscriptionDestination); + await eventListener.AssertObjectIsValid(nameof(__eventSubscriptionDestination), __eventSubscriptionDestination); + } + } + /// Information about the HybridConnection destination for an event subscription. + public partial interface IHybridConnectionEventSubscriptionDestination : + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IJsonSerializable, + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionDestination + { + /// Delivery attribute details. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Delivery attribute details.", + SerializedName = @"deliveryAttributeMappings", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDeliveryAttributeMapping),typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IStaticDeliveryAttributeMapping),typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDynamicDeliveryAttributeMapping) })] + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDeliveryAttributeMapping[] DeliveryAttributeMapping { get; set; } + /// + /// The Azure Resource ID of an hybrid connection that is the destination of an event subscription. + /// + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The Azure Resource ID of an hybrid connection that is the destination of an event subscription.", + SerializedName = @"resourceId", + PossibleTypes = new [] { typeof(string) })] + string ResourceId { get; set; } + + } + /// Information about the HybridConnection destination for an event subscription. + internal partial interface IHybridConnectionEventSubscriptionDestinationInternal : + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionDestinationInternal + { + /// Delivery attribute details. + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDeliveryAttributeMapping[] DeliveryAttributeMapping { get; set; } + /// Hybrid connection Properties of the event subscription destination. + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IHybridConnectionEventSubscriptionDestinationProperties Property { get; set; } + /// + /// The Azure Resource ID of an hybrid connection that is the destination of an event subscription. + /// + string ResourceId { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/HybridConnectionEventSubscriptionDestination.json.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/HybridConnectionEventSubscriptionDestination.json.cs new file mode 100644 index 000000000000..37c8ac1aa19b --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/HybridConnectionEventSubscriptionDestination.json.cs @@ -0,0 +1,111 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Extensions; + + /// Information about the HybridConnection destination for an event subscription. + public partial class HybridConnectionEventSubscriptionDestination + { + + /// + /// AfterFromJson will be called after the json deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JsonNode that should be deserialized into this object. + + partial void AfterFromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json erialization has finished, allowing customization of the before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JSON container that the serialization result will be placed in. + + partial void AfterToJson(ref Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject container); + + /// + /// BeforeFromJson will be called before the json deserialization has commenced, allowing complete customization of + /// the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JsonNode that should be deserialized into this object. + /// Determines if the rest of the deserialization should be processed, or if the method should return + /// instantly. + + partial void BeforeFromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject json, ref bool returnNow); + + /// + /// BeforeToJson will be called before the json serialization has commenced, allowing complete customization of the + /// object before it is serialized. + /// If you wish to disable the default serialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JSON container that the serialization result will be placed in. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeToJson(ref Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IHybridConnectionEventSubscriptionDestination. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IHybridConnectionEventSubscriptionDestination. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IHybridConnectionEventSubscriptionDestination FromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject json ? new HybridConnectionEventSubscriptionDestination(json) : null; + } + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject instance to deserialize from. + internal HybridConnectionEventSubscriptionDestination(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject json) + { + bool returnNow = false; + BeforeFromJson(json, ref returnNow); + if (returnNow) + { + return; + } + __eventSubscriptionDestination = new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.EventSubscriptionDestination(json); + {_property = If( json?.PropertyT("properties"), out var __jsonProperties) ? Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.HybridConnectionEventSubscriptionDestinationProperties.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.EventGrid.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject(); + + bool returnNow = false; + BeforeToJson(ref container, ref returnNow); + if (returnNow) + { + return container; + } + __eventSubscriptionDestination?.ToJson(container, serializationMode); + AddIf( null != this._property ? (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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/eventgrid/generated/api/Models/Api20211015Preview/HybridConnectionEventSubscriptionDestinationProperties.PowerShell.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/HybridConnectionEventSubscriptionDestinationProperties.PowerShell.cs new file mode 100644 index 000000000000..5993bb371e3e --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/HybridConnectionEventSubscriptionDestinationProperties.PowerShell.cs @@ -0,0 +1,155 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell; + + /// The properties for a hybrid connection destination. + [System.ComponentModel.TypeConverter(typeof(HybridConnectionEventSubscriptionDestinationPropertiesTypeConverter))] + public partial class HybridConnectionEventSubscriptionDestinationProperties + { + + /// + /// AfterDeserializeDictionary will be called after the deserialization has finished, allowing customization of the + /// object before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Collections.IDictionary content that should be used. + + partial void AfterDeserializeDictionary(global::System.Collections.IDictionary content); + + /// + /// AfterDeserializePSObject will be called after the deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Management.Automation.PSObject content that should be used. + + partial void AfterDeserializePSObject(global::System.Management.Automation.PSObject content); + + /// + /// BeforeDeserializeDictionary will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Collections.IDictionary content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializeDictionary(global::System.Collections.IDictionary content, ref bool returnNow); + + /// + /// BeforeDeserializePSObject will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializePSObject(global::System.Management.Automation.PSObject content, ref bool returnNow); + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IHybridConnectionEventSubscriptionDestinationProperties DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new HybridConnectionEventSubscriptionDestinationProperties(content); + } + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IHybridConnectionEventSubscriptionDestinationProperties DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new HybridConnectionEventSubscriptionDestinationProperties(content); + } + + /// + /// Creates a new instance of , deserializing the content + /// from a json string. + /// + /// a string containing a JSON serialized instance of this model. + /// + /// an instance of the model class. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IHybridConnectionEventSubscriptionDestinationProperties FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode.Parse(jsonText)); + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + internal HybridConnectionEventSubscriptionDestinationProperties(global::System.Collections.IDictionary content) + { + bool returnNow = false; + BeforeDeserializeDictionary(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("ResourceId")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IHybridConnectionEventSubscriptionDestinationPropertiesInternal)this).ResourceId = (string) content.GetValueForProperty("ResourceId",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IHybridConnectionEventSubscriptionDestinationPropertiesInternal)this).ResourceId, global::System.Convert.ToString); + } + if (content.Contains("DeliveryAttributeMapping")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IHybridConnectionEventSubscriptionDestinationPropertiesInternal)this).DeliveryAttributeMapping = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDeliveryAttributeMapping[]) content.GetValueForProperty("DeliveryAttributeMapping",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IHybridConnectionEventSubscriptionDestinationPropertiesInternal)this).DeliveryAttributeMapping, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.DeliveryAttributeMappingTypeConverter.ConvertFrom)); + } + AfterDeserializeDictionary(content); + } + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + internal HybridConnectionEventSubscriptionDestinationProperties(global::System.Management.Automation.PSObject content) + { + bool returnNow = false; + BeforeDeserializePSObject(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("ResourceId")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IHybridConnectionEventSubscriptionDestinationPropertiesInternal)this).ResourceId = (string) content.GetValueForProperty("ResourceId",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IHybridConnectionEventSubscriptionDestinationPropertiesInternal)this).ResourceId, global::System.Convert.ToString); + } + if (content.Contains("DeliveryAttributeMapping")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IHybridConnectionEventSubscriptionDestinationPropertiesInternal)this).DeliveryAttributeMapping = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDeliveryAttributeMapping[]) content.GetValueForProperty("DeliveryAttributeMapping",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IHybridConnectionEventSubscriptionDestinationPropertiesInternal)this).DeliveryAttributeMapping, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.DeliveryAttributeMappingTypeConverter.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.EventGrid.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// The properties for a hybrid connection destination. + [System.ComponentModel.TypeConverter(typeof(HybridConnectionEventSubscriptionDestinationPropertiesTypeConverter))] + public partial interface IHybridConnectionEventSubscriptionDestinationProperties + + { + + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/HybridConnectionEventSubscriptionDestinationProperties.TypeConverter.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/HybridConnectionEventSubscriptionDestinationProperties.TypeConverter.cs new file mode 100644 index 000000000000..0a6cc8755ba4 --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/HybridConnectionEventSubscriptionDestinationProperties.TypeConverter.cs @@ -0,0 +1,152 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class HybridConnectionEventSubscriptionDestinationPropertiesTypeConverter : global::System.Management.Automation.PSTypeConverter + { + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false. + /// + public override bool CanConvertFrom(object sourceValue, global::System.Type destinationType) => CanConvertFrom(sourceValue); + + /// + /// Determines if the converter can convert the parameter to the . + /// + /// the instance to check if it can be converted to the type. + /// + /// true if the instance could be converted to a type, otherwise false + /// + public static bool CanConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return true; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + // we say yest to PSObjects + return true; + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + // we say yest to Hashtables/dictionaries + return true; + } + try + { + if (null != sourceValue.ToJsonString()) + { + return true; + } + } + catch + { + // Not one of our objects + } + try + { + string text = sourceValue.ToString()?.Trim(); + return true == text?.StartsWith("{") && true == text?.EndsWith("}") && Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonType.Object; + } + catch + { + // Doesn't look like it can be treated as JSON + } + return false; + } + + /// + /// Determines if the parameter can be converted to the parameter + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false + /// + public override bool CanConvertTo(object sourceValue, global::System.Type destinationType) => false; + + /// + /// Converts the parameter to the parameter using and + /// + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// + /// an instance of , or null if there is no suitable + /// conversion. + /// + public override object ConvertFrom(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => ConvertFrom(sourceValue); + + /// + /// Converts the parameter to the parameter using and + /// + /// the value to convert into an instance of . + /// + /// an instance of , or null if there is no suitable + /// conversion. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IHybridConnectionEventSubscriptionDestinationProperties ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IHybridConnectionEventSubscriptionDestinationProperties).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return HybridConnectionEventSubscriptionDestinationProperties.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return HybridConnectionEventSubscriptionDestinationProperties.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return HybridConnectionEventSubscriptionDestinationProperties.DeserializeFromDictionary(sourceValue); + } + return null; + } + + /// NotImplemented -- this will return null + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// will always return null. + public override object ConvertTo(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => null; + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/HybridConnectionEventSubscriptionDestinationProperties.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/HybridConnectionEventSubscriptionDestinationProperties.cs new file mode 100644 index 000000000000..186f058f5bf6 --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/HybridConnectionEventSubscriptionDestinationProperties.cs @@ -0,0 +1,76 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Extensions; + + /// The properties for a hybrid connection destination. + public partial class HybridConnectionEventSubscriptionDestinationProperties : + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IHybridConnectionEventSubscriptionDestinationProperties, + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IHybridConnectionEventSubscriptionDestinationPropertiesInternal + { + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDeliveryAttributeMapping[] _deliveryAttributeMapping; + + /// Delivery attribute details. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Owned)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDeliveryAttributeMapping[] DeliveryAttributeMapping { get => this._deliveryAttributeMapping; set => this._deliveryAttributeMapping = value; } + + /// Backing field for property. + private string _resourceId; + + /// + /// The Azure Resource ID of an hybrid connection that is the destination of an event subscription. + /// + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Owned)] + public string ResourceId { get => this._resourceId; set => this._resourceId = value; } + + /// + /// Creates an new instance. + /// + public HybridConnectionEventSubscriptionDestinationProperties() + { + + } + } + /// The properties for a hybrid connection destination. + public partial interface IHybridConnectionEventSubscriptionDestinationProperties : + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IJsonSerializable + { + /// Delivery attribute details. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Delivery attribute details.", + SerializedName = @"deliveryAttributeMappings", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDeliveryAttributeMapping),typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IStaticDeliveryAttributeMapping),typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDynamicDeliveryAttributeMapping) })] + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDeliveryAttributeMapping[] DeliveryAttributeMapping { get; set; } + /// + /// The Azure Resource ID of an hybrid connection that is the destination of an event subscription. + /// + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The Azure Resource ID of an hybrid connection that is the destination of an event subscription.", + SerializedName = @"resourceId", + PossibleTypes = new [] { typeof(string) })] + string ResourceId { get; set; } + + } + /// The properties for a hybrid connection destination. + internal partial interface IHybridConnectionEventSubscriptionDestinationPropertiesInternal + + { + /// Delivery attribute details. + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDeliveryAttributeMapping[] DeliveryAttributeMapping { get; set; } + /// + /// The Azure Resource ID of an hybrid connection that is the destination of an event subscription. + /// + string ResourceId { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/HybridConnectionEventSubscriptionDestinationProperties.json.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/HybridConnectionEventSubscriptionDestinationProperties.json.cs new file mode 100644 index 000000000000..dd73cee565c1 --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/HybridConnectionEventSubscriptionDestinationProperties.json.cs @@ -0,0 +1,119 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Extensions; + + /// The properties for a hybrid connection destination. + public partial class HybridConnectionEventSubscriptionDestinationProperties + { + + /// + /// AfterFromJson will be called after the json deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JsonNode that should be deserialized into this object. + + partial void AfterFromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json erialization has finished, allowing customization of the before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JSON container that the serialization result will be placed in. + + partial void AfterToJson(ref Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject container); + + /// + /// BeforeFromJson will be called before the json deserialization has commenced, allowing complete customization of + /// the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JsonNode that should be deserialized into this object. + /// Determines if the rest of the deserialization should be processed, or if the method should return + /// instantly. + + partial void BeforeFromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject json, ref bool returnNow); + + /// + /// BeforeToJson will be called before the json serialization has commenced, allowing complete customization of the + /// object before it is serialized. + /// If you wish to disable the default serialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JSON container that the serialization result will be placed in. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeToJson(ref Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IHybridConnectionEventSubscriptionDestinationProperties. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IHybridConnectionEventSubscriptionDestinationProperties. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IHybridConnectionEventSubscriptionDestinationProperties FromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject json ? new HybridConnectionEventSubscriptionDestinationProperties(json) : null; + } + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject instance to deserialize from. + internal HybridConnectionEventSubscriptionDestinationProperties(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject json) + { + bool returnNow = false; + BeforeFromJson(json, ref returnNow); + if (returnNow) + { + return; + } + {_resourceId = If( json?.PropertyT("resourceId"), out var __jsonResourceId) ? (string)__jsonResourceId : (string)ResourceId;} + {_deliveryAttributeMapping = If( json?.PropertyT("deliveryAttributeMappings"), out var __jsonDeliveryAttributeMappings) ? If( __jsonDeliveryAttributeMappings as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Models.Api20211015Preview.IDeliveryAttributeMapping) (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.DeliveryAttributeMapping.FromJson(__u) )) ))() : null : DeliveryAttributeMapping;} + AfterFromJson(json); + } + + /// + /// Serializes this instance of into a . + /// + /// The container to serialize this object into. If the caller + /// passes in null, a new instance will be created and returned to the caller. + /// Allows the caller to choose the depth of the serialization. See . + /// + /// a serialized instance of as a . + /// + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject(); + + bool returnNow = false; + BeforeToJson(ref container, ref returnNow); + if (returnNow) + { + return container; + } + AddIf( null != (((object)this._resourceId)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonString(this._resourceId.ToString()) : null, "resourceId" ,container.Add ); + if (null != this._deliveryAttributeMapping) + { + var __w = new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.XNodeArray(); + foreach( var __x in this._deliveryAttributeMapping ) + { + AddIf(__x?.ToJson(null, serializationMode) ,__w.Add); + } + container.Add("deliveryAttributeMappings",__w); + } + AfterToJson(ref container); + return container; + } + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/IdentityInfo.PowerShell.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/IdentityInfo.PowerShell.cs new file mode 100644 index 000000000000..9b9c0ccccd8e --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/IdentityInfo.PowerShell.cs @@ -0,0 +1,166 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell; + + /// The identity information for the resource. + [System.ComponentModel.TypeConverter(typeof(IdentityInfoTypeConverter))] + public partial class IdentityInfo + { + + /// + /// AfterDeserializeDictionary will be called after the deserialization has finished, allowing customization of the + /// object before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Collections.IDictionary content that should be used. + + partial void AfterDeserializeDictionary(global::System.Collections.IDictionary content); + + /// + /// AfterDeserializePSObject will be called after the deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Management.Automation.PSObject content that should be used. + + partial void AfterDeserializePSObject(global::System.Management.Automation.PSObject content); + + /// + /// BeforeDeserializeDictionary will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Collections.IDictionary content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializeDictionary(global::System.Collections.IDictionary content, ref bool returnNow); + + /// + /// BeforeDeserializePSObject will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializePSObject(global::System.Management.Automation.PSObject content, ref bool returnNow); + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IIdentityInfo DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new IdentityInfo(content); + } + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IIdentityInfo DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new IdentityInfo(content); + } + + /// + /// Creates a new instance of , deserializing the content from a json string. + /// + /// a string containing a JSON serialized instance of this model. + /// an instance of the model class. + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IIdentityInfo FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode.Parse(jsonText)); + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + internal IdentityInfo(global::System.Collections.IDictionary content) + { + bool returnNow = false; + BeforeDeserializeDictionary(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("Type")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IIdentityInfoInternal)this).Type = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.IdentityType?) content.GetValueForProperty("Type",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IIdentityInfoInternal)this).Type, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.IdentityType.CreateFrom); + } + if (content.Contains("PrincipalId")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IIdentityInfoInternal)this).PrincipalId = (string) content.GetValueForProperty("PrincipalId",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IIdentityInfoInternal)this).PrincipalId, global::System.Convert.ToString); + } + if (content.Contains("TenantId")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IIdentityInfoInternal)this).TenantId = (string) content.GetValueForProperty("TenantId",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IIdentityInfoInternal)this).TenantId, global::System.Convert.ToString); + } + if (content.Contains("UserAssignedIdentity")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IIdentityInfoInternal)this).UserAssignedIdentity = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IIdentityInfoUserAssignedIdentities) content.GetValueForProperty("UserAssignedIdentity",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IIdentityInfoInternal)this).UserAssignedIdentity, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IdentityInfoUserAssignedIdentitiesTypeConverter.ConvertFrom); + } + AfterDeserializeDictionary(content); + } + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + internal IdentityInfo(global::System.Management.Automation.PSObject content) + { + bool returnNow = false; + BeforeDeserializePSObject(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("Type")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IIdentityInfoInternal)this).Type = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.IdentityType?) content.GetValueForProperty("Type",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IIdentityInfoInternal)this).Type, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.IdentityType.CreateFrom); + } + if (content.Contains("PrincipalId")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IIdentityInfoInternal)this).PrincipalId = (string) content.GetValueForProperty("PrincipalId",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IIdentityInfoInternal)this).PrincipalId, global::System.Convert.ToString); + } + if (content.Contains("TenantId")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IIdentityInfoInternal)this).TenantId = (string) content.GetValueForProperty("TenantId",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IIdentityInfoInternal)this).TenantId, global::System.Convert.ToString); + } + if (content.Contains("UserAssignedIdentity")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IIdentityInfoInternal)this).UserAssignedIdentity = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IIdentityInfoUserAssignedIdentities) content.GetValueForProperty("UserAssignedIdentity",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IIdentityInfoInternal)this).UserAssignedIdentity, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IdentityInfoUserAssignedIdentitiesTypeConverter.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.EventGrid.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// The identity information for the resource. + [System.ComponentModel.TypeConverter(typeof(IdentityInfoTypeConverter))] + public partial interface IIdentityInfo + + { + + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/IdentityInfo.TypeConverter.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/IdentityInfo.TypeConverter.cs new file mode 100644 index 000000000000..937383ea478b --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/IdentityInfo.TypeConverter.cs @@ -0,0 +1,146 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class IdentityInfoTypeConverter : global::System.Management.Automation.PSTypeConverter + { + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false. + /// + public override bool CanConvertFrom(object sourceValue, global::System.Type destinationType) => CanConvertFrom(sourceValue); + + /// + /// Determines if the converter can convert the parameter to the . + /// + /// the instance to check if it can be converted to the type. + /// + /// true if the instance could be converted to a type, otherwise false + /// + public static bool CanConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return true; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + // we say yest to PSObjects + return true; + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + // we say yest to Hashtables/dictionaries + return true; + } + try + { + if (null != sourceValue.ToJsonString()) + { + return true; + } + } + catch + { + // Not one of our objects + } + try + { + string text = sourceValue.ToString()?.Trim(); + return true == text?.StartsWith("{") && true == text?.EndsWith("}") && Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonType.Object; + } + catch + { + // Doesn't look like it can be treated as JSON + } + return false; + } + + /// + /// Determines if the parameter can be converted to the parameter + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false + /// + public override bool CanConvertTo(object sourceValue, global::System.Type destinationType) => false; + + /// + /// Converts the parameter to the parameter using and + /// + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// + /// an instance of , or null if there is no suitable conversion. + /// + public override object ConvertFrom(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => ConvertFrom(sourceValue); + + /// + /// Converts the parameter to the parameter using and + /// + /// the value to convert into an instance of . + /// + /// an instance of , or null if there is no suitable conversion. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IIdentityInfo ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IIdentityInfo).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return IdentityInfo.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return IdentityInfo.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return IdentityInfo.DeserializeFromDictionary(sourceValue); + } + return null; + } + + /// NotImplemented -- this will return null + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// will always return null. + public override object ConvertTo(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => null; + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/IdentityInfo.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/IdentityInfo.cs new file mode 100644 index 000000000000..6758c073a492 --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/IdentityInfo.cs @@ -0,0 +1,128 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Extensions; + + /// The identity information for the resource. + public partial class IdentityInfo : + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IIdentityInfo, + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IIdentityInfoInternal + { + + /// Backing field for property. + private string _principalId; + + /// The principal ID of resource identity. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Owned)] + public string PrincipalId { get => this._principalId; set => this._principalId = value; } + + /// Backing field for property. + private string _tenantId; + + /// The tenant ID of resource. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Owned)] + public string TenantId { get => this._tenantId; set => this._tenantId = value; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.IdentityType? _type; + + /// + /// The type of managed identity used. The type 'SystemAssigned, UserAssigned' includes both an implicitly created identity + /// and a set of user-assigned identities. The type 'None' will remove any identity. + /// + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Owned)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.IdentityType? Type { get => this._type; set => this._type = value; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IIdentityInfoUserAssignedIdentities _userAssignedIdentity; + + /// + /// The list of user identities associated with the resource. The user identity dictionary key references will be ARM resource + /// ids in the form: + /// '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ManagedIdentity/userAssignedIdentities/{identityName}'. + /// This property is currently not used and reserved for future usage. + /// + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Owned)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IIdentityInfoUserAssignedIdentities UserAssignedIdentity { get => (this._userAssignedIdentity = this._userAssignedIdentity ?? new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IdentityInfoUserAssignedIdentities()); set => this._userAssignedIdentity = value; } + + /// Creates an new instance. + public IdentityInfo() + { + + } + } + /// The identity information for the resource. + public partial interface IIdentityInfo : + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IJsonSerializable + { + /// The principal ID of resource identity. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The principal ID of resource identity.", + SerializedName = @"principalId", + PossibleTypes = new [] { typeof(string) })] + string PrincipalId { get; set; } + /// The tenant ID of resource. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The tenant ID of resource.", + SerializedName = @"tenantId", + PossibleTypes = new [] { typeof(string) })] + string TenantId { get; set; } + /// + /// The type of managed identity used. The type 'SystemAssigned, UserAssigned' includes both an implicitly created identity + /// and a set of user-assigned identities. The type 'None' will remove any identity. + /// + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The type of managed identity used. The type 'SystemAssigned, UserAssigned' includes both an implicitly created identity and a set of user-assigned identities. The type 'None' will remove any identity.", + SerializedName = @"type", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.IdentityType) })] + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.IdentityType? Type { get; set; } + /// + /// The list of user identities associated with the resource. The user identity dictionary key references will be ARM resource + /// ids in the form: + /// '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ManagedIdentity/userAssignedIdentities/{identityName}'. + /// This property is currently not used and reserved for future usage. + /// + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The list of user identities associated with the resource. The user identity dictionary key references will be ARM resource ids in the form: + '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ManagedIdentity/userAssignedIdentities/{identityName}'. + This property is currently not used and reserved for future usage.", + SerializedName = @"userAssignedIdentities", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IIdentityInfoUserAssignedIdentities) })] + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IIdentityInfoUserAssignedIdentities UserAssignedIdentity { get; set; } + + } + /// The identity information for the resource. + internal partial interface IIdentityInfoInternal + + { + /// The principal ID of resource identity. + string PrincipalId { get; set; } + /// The tenant ID of resource. + string TenantId { get; set; } + /// + /// The type of managed identity used. The type 'SystemAssigned, UserAssigned' includes both an implicitly created identity + /// and a set of user-assigned identities. The type 'None' will remove any identity. + /// + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.IdentityType? Type { get; set; } + /// + /// The list of user identities associated with the resource. The user identity dictionary key references will be ARM resource + /// ids in the form: + /// '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ManagedIdentity/userAssignedIdentities/{identityName}'. + /// This property is currently not used and reserved for future usage. + /// + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IIdentityInfoUserAssignedIdentities UserAssignedIdentity { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/IdentityInfo.json.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/IdentityInfo.json.cs new file mode 100644 index 000000000000..79d57291aa49 --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/IdentityInfo.json.cs @@ -0,0 +1,112 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Extensions; + + /// The identity information for the resource. + public partial class IdentityInfo + { + + /// + /// AfterFromJson will be called after the json deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JsonNode that should be deserialized into this object. + + partial void AfterFromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json erialization has finished, allowing customization of the before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JSON container that the serialization result will be placed in. + + partial void AfterToJson(ref Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject container); + + /// + /// BeforeFromJson will be called before the json deserialization has commenced, allowing complete customization of + /// the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JsonNode that should be deserialized into this object. + /// Determines if the rest of the deserialization should be processed, or if the method should return + /// instantly. + + partial void BeforeFromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject json, ref bool returnNow); + + /// + /// BeforeToJson will be called before the json serialization has commenced, allowing complete customization of the + /// object before it is serialized. + /// If you wish to disable the default serialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JSON container that the serialization result will be placed in. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeToJson(ref Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IIdentityInfo. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IIdentityInfo. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IIdentityInfo FromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject json ? new IdentityInfo(json) : null; + } + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject instance to deserialize from. + internal IdentityInfo(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject json) + { + bool returnNow = false; + BeforeFromJson(json, ref returnNow); + if (returnNow) + { + return; + } + {_type = If( json?.PropertyT("type"), out var __jsonType) ? (string)__jsonType : (string)Type;} + {_principalId = If( json?.PropertyT("principalId"), out var __jsonPrincipalId) ? (string)__jsonPrincipalId : (string)PrincipalId;} + {_tenantId = If( json?.PropertyT("tenantId"), out var __jsonTenantId) ? (string)__jsonTenantId : (string)TenantId;} + {_userAssignedIdentity = If( json?.PropertyT("userAssignedIdentities"), out var __jsonUserAssignedIdentities) ? Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IdentityInfoUserAssignedIdentities.FromJson(__jsonUserAssignedIdentities) : UserAssignedIdentity;} + AfterFromJson(json); + } + + /// + /// Serializes this instance of into a . + /// + /// The container to serialize this object into. If the caller + /// passes in null, a new instance will be created and returned to the caller. + /// Allows the caller to choose the depth of the serialization. See . + /// + /// a serialized instance of as a . + /// + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject(); + + bool returnNow = false; + BeforeToJson(ref container, ref returnNow); + if (returnNow) + { + return container; + } + AddIf( null != (((object)this._type)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonString(this._type.ToString()) : null, "type" ,container.Add ); + AddIf( null != (((object)this._principalId)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonString(this._principalId.ToString()) : null, "principalId" ,container.Add ); + AddIf( null != (((object)this._tenantId)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonString(this._tenantId.ToString()) : null, "tenantId" ,container.Add ); + AddIf( null != this._userAssignedIdentity ? (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode) this._userAssignedIdentity.ToJson(null,serializationMode) : null, "userAssignedIdentities" ,container.Add ); + AfterToJson(ref container); + return container; + } + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/IdentityInfoUserAssignedIdentities.PowerShell.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/IdentityInfoUserAssignedIdentities.PowerShell.cs new file mode 100644 index 000000000000..5d8b6805e675 --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/IdentityInfoUserAssignedIdentities.PowerShell.cs @@ -0,0 +1,150 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell; + + /// + /// The list of user identities associated with the resource. The user identity dictionary key references will be ARM resource + /// ids in the form: + /// '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ManagedIdentity/userAssignedIdentities/{identityName}'. + /// This property is currently not used and reserved for future usage. + /// + [System.ComponentModel.TypeConverter(typeof(IdentityInfoUserAssignedIdentitiesTypeConverter))] + public partial class IdentityInfoUserAssignedIdentities + { + + /// + /// AfterDeserializeDictionary will be called after the deserialization has finished, allowing customization of the + /// object before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Collections.IDictionary content that should be used. + + partial void AfterDeserializeDictionary(global::System.Collections.IDictionary content); + + /// + /// AfterDeserializePSObject will be called after the deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Management.Automation.PSObject content that should be used. + + partial void AfterDeserializePSObject(global::System.Management.Automation.PSObject content); + + /// + /// BeforeDeserializeDictionary will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Collections.IDictionary content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializeDictionary(global::System.Collections.IDictionary content, ref bool returnNow); + + /// + /// BeforeDeserializePSObject will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializePSObject(global::System.Management.Automation.PSObject content, ref bool returnNow); + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IIdentityInfoUserAssignedIdentities DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new IdentityInfoUserAssignedIdentities(content); + } + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IIdentityInfoUserAssignedIdentities DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new IdentityInfoUserAssignedIdentities(content); + } + + /// + /// Creates a new instance of , deserializing the content from a json string. + /// + /// a string containing a JSON serialized instance of this model. + /// + /// an instance of the model class. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IIdentityInfoUserAssignedIdentities FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode.Parse(jsonText)); + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + internal IdentityInfoUserAssignedIdentities(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 IdentityInfoUserAssignedIdentities(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.EventGrid.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// The list of user identities associated with the resource. The user identity dictionary key references will be ARM resource + /// ids in the form: + /// '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ManagedIdentity/userAssignedIdentities/{identityName}'. + /// This property is currently not used and reserved for future usage. + [System.ComponentModel.TypeConverter(typeof(IdentityInfoUserAssignedIdentitiesTypeConverter))] + public partial interface IIdentityInfoUserAssignedIdentities + + { + + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/IdentityInfoUserAssignedIdentities.TypeConverter.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/IdentityInfoUserAssignedIdentities.TypeConverter.cs new file mode 100644 index 000000000000..7dc304dbe30c --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/IdentityInfoUserAssignedIdentities.TypeConverter.cs @@ -0,0 +1,148 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class IdentityInfoUserAssignedIdentitiesTypeConverter : global::System.Management.Automation.PSTypeConverter + { + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false. + /// + public override bool CanConvertFrom(object sourceValue, global::System.Type destinationType) => CanConvertFrom(sourceValue); + + /// + /// Determines if the converter can convert the parameter to the . + /// + /// the instance to check if it can be converted to the type. + /// + /// true if the instance could be converted to a type, otherwise + /// false + /// + public static bool CanConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return true; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + // we say yest to PSObjects + return true; + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + // we say yest to Hashtables/dictionaries + return true; + } + try + { + if (null != sourceValue.ToJsonString()) + { + return true; + } + } + catch + { + // Not one of our objects + } + try + { + string text = sourceValue.ToString()?.Trim(); + return true == text?.StartsWith("{") && true == text?.EndsWith("}") && Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonType.Object; + } + catch + { + // Doesn't look like it can be treated as JSON + } + return false; + } + + /// + /// Determines if the parameter can be converted to the parameter + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false + /// + public override bool CanConvertTo(object sourceValue, global::System.Type destinationType) => false; + + /// + /// Converts the parameter to the parameter using and + /// + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// + /// an instance of , or null if there is no suitable conversion. + /// + public override object ConvertFrom(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => ConvertFrom(sourceValue); + + /// + /// Converts the parameter to the parameter using and + /// + /// the value to convert into an instance of . + /// + /// an instance of , or null if there is no suitable conversion. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IIdentityInfoUserAssignedIdentities ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IIdentityInfoUserAssignedIdentities).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return IdentityInfoUserAssignedIdentities.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return IdentityInfoUserAssignedIdentities.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return IdentityInfoUserAssignedIdentities.DeserializeFromDictionary(sourceValue); + } + return null; + } + + /// NotImplemented -- this will return null + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// will always return null. + public override object ConvertTo(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => null; + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/IdentityInfoUserAssignedIdentities.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/IdentityInfoUserAssignedIdentities.cs new file mode 100644 index 000000000000..b4a731fe0aa6 --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/IdentityInfoUserAssignedIdentities.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.EventGrid.Models.Api20211015Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Extensions; + + /// + /// The list of user identities associated with the resource. The user identity dictionary key references will be ARM resource + /// ids in the form: + /// '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ManagedIdentity/userAssignedIdentities/{identityName}'. + /// This property is currently not used and reserved for future usage. + /// + public partial class IdentityInfoUserAssignedIdentities : + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IIdentityInfoUserAssignedIdentities, + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IIdentityInfoUserAssignedIdentitiesInternal + { + + /// Creates an new instance. + public IdentityInfoUserAssignedIdentities() + { + + } + } + /// The list of user identities associated with the resource. The user identity dictionary key references will be ARM resource + /// ids in the form: + /// '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ManagedIdentity/userAssignedIdentities/{identityName}'. + /// This property is currently not used and reserved for future usage. + public partial interface IIdentityInfoUserAssignedIdentities : + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IJsonSerializable, + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IAssociativeArray + { + + } + /// The list of user identities associated with the resource. The user identity dictionary key references will be ARM resource + /// ids in the form: + /// '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ManagedIdentity/userAssignedIdentities/{identityName}'. + /// This property is currently not used and reserved for future usage. + internal partial interface IIdentityInfoUserAssignedIdentitiesInternal + + { + + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/IdentityInfoUserAssignedIdentities.dictionary.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/IdentityInfoUserAssignedIdentities.dictionary.cs new file mode 100644 index 000000000000..6f23303acc4a --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/IdentityInfoUserAssignedIdentities.dictionary.cs @@ -0,0 +1,75 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Extensions; + + public partial class IdentityInfoUserAssignedIdentities : + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IAssociativeArray + { + protected global::System.Collections.Generic.Dictionary __additionalProperties = new global::System.Collections.Generic.Dictionary(); + + global::System.Collections.Generic.IDictionary Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IAssociativeArray.AdditionalProperties { get => __additionalProperties; } + + int Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IAssociativeArray.Count { get => __additionalProperties.Count; } + + global::System.Collections.Generic.IEnumerable Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IAssociativeArray.Keys { get => __additionalProperties.Keys; } + + global::System.Collections.Generic.IEnumerable Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IAssociativeArray.Values { get => __additionalProperties.Values; } + + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IUserIdentityProperties this[global::System.String index] { get => __additionalProperties[index]; set => __additionalProperties[index] = value; } + + /// + /// + public void Add(global::System.String key, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IUserIdentityProperties 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.EventGrid.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.EventGrid.Runtime.PowerShell.TypeConverterExtensions.GetFilteredProperties(source, new global::System.Collections.Generic.HashSet() { } ) ) + { + if ((null != property.Key && null != property.Value)) + { + this.__additionalProperties.Add(property.Key.ToString(), global::System.Management.Automation.LanguagePrimitives.ConvertTo( property.Value)); + } + } + } + } + + /// + public bool Remove(global::System.String key) => __additionalProperties.Remove( key); + + /// + /// + public bool TryGetValue(global::System.String key, out Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IUserIdentityProperties value) => __additionalProperties.TryGetValue( key, out value); + + /// + + public static implicit operator global::System.Collections.Generic.Dictionary(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IdentityInfoUserAssignedIdentities source) => source.__additionalProperties; + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/IdentityInfoUserAssignedIdentities.json.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/IdentityInfoUserAssignedIdentities.json.cs new file mode 100644 index 000000000000..22d252c731c5 --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/IdentityInfoUserAssignedIdentities.json.cs @@ -0,0 +1,113 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Extensions; + + /// + /// The list of user identities associated with the resource. The user identity dictionary key references will be ARM resource + /// ids in the form: + /// '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ManagedIdentity/userAssignedIdentities/{identityName}'. + /// This property is currently not used and reserved for future usage. + /// + public partial class IdentityInfoUserAssignedIdentities + { + + /// + /// AfterFromJson will be called after the json deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JsonNode that should be deserialized into this object. + + partial void AfterFromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json erialization has finished, allowing customization of the before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JSON container that the serialization result will be placed in. + + partial void AfterToJson(ref Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject container); + + /// + /// BeforeFromJson will be called before the json deserialization has commenced, allowing complete customization of + /// the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JsonNode that should be deserialized into this object. + /// Determines if the rest of the deserialization should be processed, or if the method should return + /// instantly. + + partial void BeforeFromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject json, ref bool returnNow); + + /// + /// BeforeToJson will be called before the json serialization has commenced, allowing complete customization of the + /// object before it is serialized. + /// If you wish to disable the default serialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JSON container that the serialization result will be placed in. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeToJson(ref Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IIdentityInfoUserAssignedIdentities. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IIdentityInfoUserAssignedIdentities. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IIdentityInfoUserAssignedIdentities FromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject json ? new IdentityInfoUserAssignedIdentities(json) : null; + } + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject instance to deserialize from. + /// + internal IdentityInfoUserAssignedIdentities(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Runtime.JsonSerializable.FromJson( json, ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IAssociativeArray)this).AdditionalProperties, (j) => Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.UserIdentityProperties.FromJson(j) ,exclusions ); + AfterFromJson(json); + } + + /// + /// Serializes this instance of into a . + /// + /// The container to serialize this object into. If the caller + /// passes in null, a new instance will be created and returned to the caller. + /// Allows the caller to choose the depth of the serialization. See . + /// + /// a serialized instance of as a . + /// + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject(); + + bool returnNow = false; + BeforeToJson(ref container, ref returnNow); + if (returnNow) + { + return container; + } + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.JsonSerializable.ToJson( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IAssociativeArray)this).AdditionalProperties, container); + AfterToJson(ref container); + return container; + } + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/InboundIPRule.PowerShell.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/InboundIPRule.PowerShell.cs new file mode 100644 index 000000000000..69bba6971b4b --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/InboundIPRule.PowerShell.cs @@ -0,0 +1,148 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell; + + [System.ComponentModel.TypeConverter(typeof(InboundIPRuleTypeConverter))] + public partial class InboundIPRule + { + + /// + /// AfterDeserializeDictionary will be called after the deserialization has finished, allowing customization of the + /// object before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Collections.IDictionary content that should be used. + + partial void AfterDeserializeDictionary(global::System.Collections.IDictionary content); + + /// + /// AfterDeserializePSObject will be called after the deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Management.Automation.PSObject content that should be used. + + partial void AfterDeserializePSObject(global::System.Management.Automation.PSObject content); + + /// + /// BeforeDeserializeDictionary will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Collections.IDictionary content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializeDictionary(global::System.Collections.IDictionary content, ref bool returnNow); + + /// + /// BeforeDeserializePSObject will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializePSObject(global::System.Management.Automation.PSObject content, ref bool returnNow); + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IInboundIPRule DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new InboundIPRule(content); + } + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IInboundIPRule DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new InboundIPRule(content); + } + + /// + /// Creates a new instance of , deserializing the content from a json string. + /// + /// a string containing a JSON serialized instance of this model. + /// an instance of the model class. + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IInboundIPRule FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode.Parse(jsonText)); + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + internal InboundIPRule(global::System.Collections.IDictionary content) + { + bool returnNow = false; + BeforeDeserializeDictionary(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("IPMask")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IInboundIPRuleInternal)this).IPMask = (string) content.GetValueForProperty("IPMask",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IInboundIPRuleInternal)this).IPMask, global::System.Convert.ToString); + } + if (content.Contains("Action")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IInboundIPRuleInternal)this).Action = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.IPActionType?) content.GetValueForProperty("Action",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IInboundIPRuleInternal)this).Action, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.IPActionType.CreateFrom); + } + AfterDeserializeDictionary(content); + } + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + internal InboundIPRule(global::System.Management.Automation.PSObject content) + { + bool returnNow = false; + BeforeDeserializePSObject(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("IPMask")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IInboundIPRuleInternal)this).IPMask = (string) content.GetValueForProperty("IPMask",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IInboundIPRuleInternal)this).IPMask, global::System.Convert.ToString); + } + if (content.Contains("Action")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IInboundIPRuleInternal)this).Action = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.IPActionType?) content.GetValueForProperty("Action",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IInboundIPRuleInternal)this).Action, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.IPActionType.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.EventGrid.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + [System.ComponentModel.TypeConverter(typeof(InboundIPRuleTypeConverter))] + public partial interface IInboundIPRule + + { + + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/InboundIPRule.TypeConverter.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/InboundIPRule.TypeConverter.cs new file mode 100644 index 000000000000..7c8ca8603377 --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/InboundIPRule.TypeConverter.cs @@ -0,0 +1,146 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class InboundIPRuleTypeConverter : global::System.Management.Automation.PSTypeConverter + { + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false. + /// + public override bool CanConvertFrom(object sourceValue, global::System.Type destinationType) => CanConvertFrom(sourceValue); + + /// + /// Determines if the converter can convert the parameter to the . + /// + /// the instance to check if it can be converted to the type. + /// + /// true if the instance could be converted to a type, otherwise false + /// + public static bool CanConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return true; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + // we say yest to PSObjects + return true; + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + // we say yest to Hashtables/dictionaries + return true; + } + try + { + if (null != sourceValue.ToJsonString()) + { + return true; + } + } + catch + { + // Not one of our objects + } + try + { + string text = sourceValue.ToString()?.Trim(); + return true == text?.StartsWith("{") && true == text?.EndsWith("}") && Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonType.Object; + } + catch + { + // Doesn't look like it can be treated as JSON + } + return false; + } + + /// + /// Determines if the parameter can be converted to the parameter + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false + /// + public override bool CanConvertTo(object sourceValue, global::System.Type destinationType) => false; + + /// + /// Converts the parameter to the parameter using and + /// + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// + /// an instance of , or null if there is no suitable conversion. + /// + public override object ConvertFrom(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => ConvertFrom(sourceValue); + + /// + /// Converts the parameter to the parameter using and + /// + /// the value to convert into an instance of . + /// + /// an instance of , or null if there is no suitable conversion. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IInboundIPRule ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IInboundIPRule).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return InboundIPRule.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return InboundIPRule.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return InboundIPRule.DeserializeFromDictionary(sourceValue); + } + return null; + } + + /// NotImplemented -- this will return null + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// will always return null. + public override object ConvertTo(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => null; + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/InboundIPRule.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/InboundIPRule.cs new file mode 100644 index 000000000000..5a5485c5dff7 --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/InboundIPRule.cs @@ -0,0 +1,65 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Extensions; + + public partial class InboundIPRule : + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IInboundIPRule, + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IInboundIPRuleInternal + { + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.IPActionType? _action; + + /// Action to perform based on the match or no match of the IpMask. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Owned)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.IPActionType? Action { get => this._action; set => this._action = value; } + + /// Backing field for property. + private string _iPMask; + + /// IP Address in CIDR notation e.g., 10.0.0.0/8. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Owned)] + public string IPMask { get => this._iPMask; set => this._iPMask = value; } + + /// Creates an new instance. + public InboundIPRule() + { + + } + } + public partial interface IInboundIPRule : + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IJsonSerializable + { + /// Action to perform based on the match or no match of the IpMask. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Action to perform based on the match or no match of the IpMask.", + SerializedName = @"action", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.IPActionType) })] + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.IPActionType? Action { get; set; } + /// IP Address in CIDR notation e.g., 10.0.0.0/8. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"IP Address in CIDR notation e.g., 10.0.0.0/8.", + SerializedName = @"ipMask", + PossibleTypes = new [] { typeof(string) })] + string IPMask { get; set; } + + } + internal partial interface IInboundIPRuleInternal + + { + /// Action to perform based on the match or no match of the IpMask. + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.IPActionType? Action { get; set; } + /// IP Address in CIDR notation e.g., 10.0.0.0/8. + string IPMask { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/InboundIPRule.json.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/InboundIPRule.json.cs new file mode 100644 index 000000000000..40bff934b897 --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/InboundIPRule.json.cs @@ -0,0 +1,107 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Extensions; + + public partial class InboundIPRule + { + + /// + /// AfterFromJson will be called after the json deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JsonNode that should be deserialized into this object. + + partial void AfterFromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json erialization has finished, allowing customization of the before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JSON container that the serialization result will be placed in. + + partial void AfterToJson(ref Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject container); + + /// + /// BeforeFromJson will be called before the json deserialization has commenced, allowing complete customization of + /// the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JsonNode that should be deserialized into this object. + /// Determines if the rest of the deserialization should be processed, or if the method should return + /// instantly. + + partial void BeforeFromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject json, ref bool returnNow); + + /// + /// BeforeToJson will be called before the json serialization has commenced, allowing complete customization of the + /// object before it is serialized. + /// If you wish to disable the default serialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JSON container that the serialization result will be placed in. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeToJson(ref Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IInboundIPRule. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IInboundIPRule. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IInboundIPRule FromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject json ? new InboundIPRule(json) : null; + } + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject instance to deserialize from. + internal InboundIPRule(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject json) + { + bool returnNow = false; + BeforeFromJson(json, ref returnNow); + if (returnNow) + { + return; + } + {_iPMask = If( json?.PropertyT("ipMask"), out var __jsonIPMask) ? (string)__jsonIPMask : (string)IPMask;} + {_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.EventGrid.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject(); + + bool returnNow = false; + BeforeToJson(ref container, ref returnNow); + if (returnNow) + { + return container; + } + AddIf( null != (((object)this._iPMask)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonString(this._iPMask.ToString()) : null, "ipMask" ,container.Add ); + AddIf( null != (((object)this._action)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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/eventgrid/generated/api/Models/Api20211015Preview/InlineEventProperties.PowerShell.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/InlineEventProperties.PowerShell.cs new file mode 100644 index 000000000000..e817b4ba47e9 --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/InlineEventProperties.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.EventGrid.Models.Api20211015Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell; + + /// Additional information about every inline event. + [System.ComponentModel.TypeConverter(typeof(InlineEventPropertiesTypeConverter))] + public partial class InlineEventProperties + { + + /// + /// AfterDeserializeDictionary will be called after the deserialization has finished, allowing customization of the + /// object before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Collections.IDictionary content that should be used. + + partial void AfterDeserializeDictionary(global::System.Collections.IDictionary content); + + /// + /// AfterDeserializePSObject will be called after the deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Management.Automation.PSObject content that should be used. + + partial void AfterDeserializePSObject(global::System.Management.Automation.PSObject content); + + /// + /// BeforeDeserializeDictionary will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Collections.IDictionary content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializeDictionary(global::System.Collections.IDictionary content, ref bool returnNow); + + /// + /// BeforeDeserializePSObject will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializePSObject(global::System.Management.Automation.PSObject content, ref bool returnNow); + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IInlineEventProperties DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new InlineEventProperties(content); + } + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IInlineEventProperties DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new InlineEventProperties(content); + } + + /// + /// Creates a new instance of , deserializing the content from a json string. + /// + /// a string containing a JSON serialized instance of this model. + /// an instance of the model class. + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IInlineEventProperties FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode.Parse(jsonText)); + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + internal InlineEventProperties(global::System.Collections.IDictionary content) + { + bool returnNow = false; + BeforeDeserializeDictionary(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("Description")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IInlineEventPropertiesInternal)this).Description = (string) content.GetValueForProperty("Description",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IInlineEventPropertiesInternal)this).Description, global::System.Convert.ToString); + } + if (content.Contains("DocumentationUrl")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IInlineEventPropertiesInternal)this).DocumentationUrl = (string) content.GetValueForProperty("DocumentationUrl",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IInlineEventPropertiesInternal)this).DocumentationUrl, global::System.Convert.ToString); + } + if (content.Contains("DataSchemaUrl")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IInlineEventPropertiesInternal)this).DataSchemaUrl = (string) content.GetValueForProperty("DataSchemaUrl",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IInlineEventPropertiesInternal)this).DataSchemaUrl, global::System.Convert.ToString); + } + AfterDeserializeDictionary(content); + } + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + internal InlineEventProperties(global::System.Management.Automation.PSObject content) + { + bool returnNow = false; + BeforeDeserializePSObject(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("Description")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IInlineEventPropertiesInternal)this).Description = (string) content.GetValueForProperty("Description",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IInlineEventPropertiesInternal)this).Description, global::System.Convert.ToString); + } + if (content.Contains("DocumentationUrl")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IInlineEventPropertiesInternal)this).DocumentationUrl = (string) content.GetValueForProperty("DocumentationUrl",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IInlineEventPropertiesInternal)this).DocumentationUrl, global::System.Convert.ToString); + } + if (content.Contains("DataSchemaUrl")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IInlineEventPropertiesInternal)this).DataSchemaUrl = (string) content.GetValueForProperty("DataSchemaUrl",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IInlineEventPropertiesInternal)this).DataSchemaUrl, 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.EventGrid.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// Additional information about every inline event. + [System.ComponentModel.TypeConverter(typeof(InlineEventPropertiesTypeConverter))] + public partial interface IInlineEventProperties + + { + + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/InlineEventProperties.TypeConverter.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/InlineEventProperties.TypeConverter.cs new file mode 100644 index 000000000000..54c991795194 --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/InlineEventProperties.TypeConverter.cs @@ -0,0 +1,147 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class InlineEventPropertiesTypeConverter : global::System.Management.Automation.PSTypeConverter + { + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false. + /// + public override bool CanConvertFrom(object sourceValue, global::System.Type destinationType) => CanConvertFrom(sourceValue); + + /// + /// Determines if the converter can convert the parameter to the . + /// + /// the instance to check if it can be converted to the type. + /// + /// true if the instance could be converted to a type, otherwise false + /// + public static bool CanConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return true; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + // we say yest to PSObjects + return true; + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + // we say yest to Hashtables/dictionaries + return true; + } + try + { + if (null != sourceValue.ToJsonString()) + { + return true; + } + } + catch + { + // Not one of our objects + } + try + { + string text = sourceValue.ToString()?.Trim(); + return true == text?.StartsWith("{") && true == text?.EndsWith("}") && Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonType.Object; + } + catch + { + // Doesn't look like it can be treated as JSON + } + return false; + } + + /// + /// Determines if the parameter can be converted to the parameter + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false + /// + public override bool CanConvertTo(object sourceValue, global::System.Type destinationType) => false; + + /// + /// Converts the parameter to the parameter using and + /// + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// + /// an instance of , or null if there is no suitable conversion. + /// + public override object ConvertFrom(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => ConvertFrom(sourceValue); + + /// + /// Converts the parameter to the parameter using and + /// + /// the value to convert into an instance of . + /// + /// an instance of , or null if there is no suitable conversion. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IInlineEventProperties ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IInlineEventProperties).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return InlineEventProperties.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return InlineEventProperties.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return InlineEventProperties.DeserializeFromDictionary(sourceValue); + } + return null; + } + + /// NotImplemented -- this will return null + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// will always return null. + public override object ConvertTo(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => null; + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/InlineEventProperties.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/InlineEventProperties.cs new file mode 100644 index 000000000000..67783f4af0d8 --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/InlineEventProperties.cs @@ -0,0 +1,85 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Extensions; + + /// Additional information about every inline event. + public partial class InlineEventProperties : + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IInlineEventProperties, + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IInlineEventPropertiesInternal + { + + /// Backing field for property. + private string _dataSchemaUrl; + + /// The dataSchemaUrl for the inline event. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Owned)] + public string DataSchemaUrl { get => this._dataSchemaUrl; set => this._dataSchemaUrl = value; } + + /// Backing field for property. + private string _description; + + /// The description for the inline event. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Owned)] + public string Description { get => this._description; set => this._description = value; } + + /// Backing field for property. + private string _documentationUrl; + + /// The documentationUrl for the inline event. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Owned)] + public string DocumentationUrl { get => this._documentationUrl; set => this._documentationUrl = value; } + + /// Creates an new instance. + public InlineEventProperties() + { + + } + } + /// Additional information about every inline event. + public partial interface IInlineEventProperties : + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IJsonSerializable + { + /// The dataSchemaUrl for the inline event. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The dataSchemaUrl for the inline event.", + SerializedName = @"dataSchemaUrl", + PossibleTypes = new [] { typeof(string) })] + string DataSchemaUrl { get; set; } + /// The description for the inline event. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The description for the inline event.", + SerializedName = @"description", + PossibleTypes = new [] { typeof(string) })] + string Description { get; set; } + /// The documentationUrl for the inline event. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The documentationUrl for the inline event.", + SerializedName = @"documentationUrl", + PossibleTypes = new [] { typeof(string) })] + string DocumentationUrl { get; set; } + + } + /// Additional information about every inline event. + internal partial interface IInlineEventPropertiesInternal + + { + /// The dataSchemaUrl for the inline event. + string DataSchemaUrl { get; set; } + /// The description for the inline event. + string Description { get; set; } + /// The documentationUrl for the inline event. + string DocumentationUrl { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/InlineEventProperties.json.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/InlineEventProperties.json.cs new file mode 100644 index 000000000000..ae0d9943b42c --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/InlineEventProperties.json.cs @@ -0,0 +1,110 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Extensions; + + /// Additional information about every inline event. + public partial class InlineEventProperties + { + + /// + /// AfterFromJson will be called after the json deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JsonNode that should be deserialized into this object. + + partial void AfterFromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json erialization has finished, allowing customization of the before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JSON container that the serialization result will be placed in. + + partial void AfterToJson(ref Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject container); + + /// + /// BeforeFromJson will be called before the json deserialization has commenced, allowing complete customization of + /// the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JsonNode that should be deserialized into this object. + /// Determines if the rest of the deserialization should be processed, or if the method should return + /// instantly. + + partial void BeforeFromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject json, ref bool returnNow); + + /// + /// BeforeToJson will be called before the json serialization has commenced, allowing complete customization of the + /// object before it is serialized. + /// If you wish to disable the default serialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JSON container that the serialization result will be placed in. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeToJson(ref Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IInlineEventProperties. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IInlineEventProperties. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IInlineEventProperties FromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject json ? new InlineEventProperties(json) : null; + } + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject instance to deserialize from. + internal InlineEventProperties(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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;} + {_documentationUrl = If( json?.PropertyT("documentationUrl"), out var __jsonDocumentationUrl) ? (string)__jsonDocumentationUrl : (string)DocumentationUrl;} + {_dataSchemaUrl = If( json?.PropertyT("dataSchemaUrl"), out var __jsonDataSchemaUrl) ? (string)__jsonDataSchemaUrl : (string)DataSchemaUrl;} + AfterFromJson(json); + } + + /// + /// Serializes this instance of into a . + /// + /// The container to serialize this object into. If the caller + /// passes in null, a new instance will be created and returned to the caller. + /// Allows the caller to choose the depth of the serialization. See . + /// + /// a serialized instance of as a . + /// + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonString(this._description.ToString()) : null, "description" ,container.Add ); + AddIf( null != (((object)this._documentationUrl)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonString(this._documentationUrl.ToString()) : null, "documentationUrl" ,container.Add ); + AddIf( null != (((object)this._dataSchemaUrl)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonString(this._dataSchemaUrl.ToString()) : null, "dataSchemaUrl" ,container.Add ); + AfterToJson(ref container); + return container; + } + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/InputSchemaMapping.PowerShell.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/InputSchemaMapping.PowerShell.cs new file mode 100644 index 000000000000..948764248e28 --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/InputSchemaMapping.PowerShell.cs @@ -0,0 +1,148 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell; + + /// + /// By default, Event Grid expects events to be in the Event Grid event schema. Specifying an input schema mapping enables + /// publishing to Event Grid using a custom input schema. Currently, the only supported type of InputSchemaMapping is 'JsonInputSchemaMapping'. + /// + [System.ComponentModel.TypeConverter(typeof(InputSchemaMappingTypeConverter))] + public partial class InputSchemaMapping + { + + /// + /// AfterDeserializeDictionary will be called after the deserialization has finished, allowing customization of the + /// object before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Collections.IDictionary content that should be used. + + partial void AfterDeserializeDictionary(global::System.Collections.IDictionary content); + + /// + /// AfterDeserializePSObject will be called after the deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Management.Automation.PSObject content that should be used. + + partial void AfterDeserializePSObject(global::System.Management.Automation.PSObject content); + + /// + /// BeforeDeserializeDictionary will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Collections.IDictionary content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializeDictionary(global::System.Collections.IDictionary content, ref bool returnNow); + + /// + /// BeforeDeserializePSObject will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializePSObject(global::System.Management.Automation.PSObject content, ref bool returnNow); + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IInputSchemaMapping DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new InputSchemaMapping(content); + } + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IInputSchemaMapping DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new InputSchemaMapping(content); + } + + /// + /// Creates a new instance of , deserializing the content from a json string. + /// + /// a string containing a JSON serialized instance of this model. + /// an instance of the model class. + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IInputSchemaMapping FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode.Parse(jsonText)); + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + internal InputSchemaMapping(global::System.Collections.IDictionary content) + { + bool returnNow = false; + BeforeDeserializeDictionary(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("Type")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IInputSchemaMappingInternal)this).Type = (string) content.GetValueForProperty("Type",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IInputSchemaMappingInternal)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 InputSchemaMapping(global::System.Management.Automation.PSObject content) + { + bool returnNow = false; + BeforeDeserializePSObject(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("Type")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IInputSchemaMappingInternal)this).Type = (string) content.GetValueForProperty("Type",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IInputSchemaMappingInternal)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.EventGrid.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// By default, Event Grid expects events to be in the Event Grid event schema. Specifying an input schema mapping enables + /// publishing to Event Grid using a custom input schema. Currently, the only supported type of InputSchemaMapping is 'JsonInputSchemaMapping'. + [System.ComponentModel.TypeConverter(typeof(InputSchemaMappingTypeConverter))] + public partial interface IInputSchemaMapping + + { + + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/InputSchemaMapping.TypeConverter.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/InputSchemaMapping.TypeConverter.cs new file mode 100644 index 000000000000..af2f401e76e3 --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/InputSchemaMapping.TypeConverter.cs @@ -0,0 +1,147 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class InputSchemaMappingTypeConverter : global::System.Management.Automation.PSTypeConverter + { + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false. + /// + public override bool CanConvertFrom(object sourceValue, global::System.Type destinationType) => CanConvertFrom(sourceValue); + + /// + /// Determines if the converter can convert the parameter to the . + /// + /// the instance to check if it can be converted to the type. + /// + /// true if the instance could be converted to a type, otherwise false + /// + public static bool CanConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return true; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + // we say yest to PSObjects + return true; + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + // we say yest to Hashtables/dictionaries + return true; + } + try + { + if (null != sourceValue.ToJsonString()) + { + return true; + } + } + catch + { + // Not one of our objects + } + try + { + string text = sourceValue.ToString()?.Trim(); + return true == text?.StartsWith("{") && true == text?.EndsWith("}") && Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonType.Object; + } + catch + { + // Doesn't look like it can be treated as JSON + } + return false; + } + + /// + /// Determines if the parameter can be converted to the parameter + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false + /// + public override bool CanConvertTo(object sourceValue, global::System.Type destinationType) => false; + + /// + /// Converts the parameter to the parameter using and + /// + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// + /// an instance of , or null if there is no suitable conversion. + /// + public override object ConvertFrom(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => ConvertFrom(sourceValue); + + /// + /// Converts the parameter to the parameter using and + /// + /// the value to convert into an instance of . + /// + /// an instance of , or null if there is no suitable conversion. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IInputSchemaMapping ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IInputSchemaMapping).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return InputSchemaMapping.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return InputSchemaMapping.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return InputSchemaMapping.DeserializeFromDictionary(sourceValue); + } + return null; + } + + /// NotImplemented -- this will return null + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// will always return null. + public override object ConvertTo(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => null; + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/InputSchemaMapping.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/InputSchemaMapping.cs new file mode 100644 index 000000000000..296ad92ab6d2 --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/InputSchemaMapping.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.EventGrid.Models.Api20211015Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Extensions; + + /// + /// By default, Event Grid expects events to be in the Event Grid event schema. Specifying an input schema mapping enables + /// publishing to Event Grid using a custom input schema. Currently, the only supported type of InputSchemaMapping is 'JsonInputSchemaMapping'. + /// + public partial class InputSchemaMapping : + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IInputSchemaMapping, + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IInputSchemaMappingInternal + { + + /// Internal Acessors for Type + string Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IInputSchemaMappingInternal.Type { get => this._type; set { {_type = value;} } } + + /// Backing field for property. + private string _type= @"Json"; + + /// Type of the custom mapping + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Owned)] + public string Type { get => this._type; } + + /// Creates an new instance. + public InputSchemaMapping() + { + + } + } + /// By default, Event Grid expects events to be in the Event Grid event schema. Specifying an input schema mapping enables + /// publishing to Event Grid using a custom input schema. Currently, the only supported type of InputSchemaMapping is 'JsonInputSchemaMapping'. + public partial interface IInputSchemaMapping : + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IJsonSerializable + { + /// Type of the custom mapping + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = true, + ReadOnly = true, + Description = @"Type of the custom mapping", + SerializedName = @"inputSchemaMappingType", + PossibleTypes = new [] { typeof(string) })] + string Type { get; } + + } + /// By default, Event Grid expects events to be in the Event Grid event schema. Specifying an input schema mapping enables + /// publishing to Event Grid using a custom input schema. Currently, the only supported type of InputSchemaMapping is 'JsonInputSchemaMapping'. + internal partial interface IInputSchemaMappingInternal + + { + /// Type of the custom mapping + string Type { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/InputSchemaMapping.json.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/InputSchemaMapping.json.cs new file mode 100644 index 000000000000..7b4c39dadf6f --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/InputSchemaMapping.json.cs @@ -0,0 +1,124 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Extensions; + + /// + /// By default, Event Grid expects events to be in the Event Grid event schema. Specifying an input schema mapping enables + /// publishing to Event Grid using a custom input schema. Currently, the only supported type of InputSchemaMapping is 'JsonInputSchemaMapping'. + /// + public partial class InputSchemaMapping + { + + /// + /// AfterFromJson will be called after the json deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JsonNode that should be deserialized into this object. + + partial void AfterFromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json erialization has finished, allowing customization of the before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JSON container that the serialization result will be placed in. + + partial void AfterToJson(ref Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject container); + + /// + /// BeforeFromJson will be called before the json deserialization has commenced, allowing complete customization of + /// the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JsonNode that should be deserialized into this object. + /// Determines if the rest of the deserialization should be processed, or if the method should return + /// instantly. + + partial void BeforeFromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject json, ref bool returnNow); + + /// + /// BeforeToJson will be called before the json serialization has commenced, allowing complete customization of the + /// object before it is serialized. + /// If you wish to disable the default serialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JSON container that the serialization result will be placed in. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeToJson(ref Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IInputSchemaMapping. + /// Note: the Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IInputSchemaMapping interface is polymorphic, + /// and the precise model class that will get deserialized is determined at runtime based on the payload. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IInputSchemaMapping. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IInputSchemaMapping FromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode node) + { + if (!(node is Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject json)) + { + return null; + } + // Polymorphic type -- select the appropriate constructor using the discriminator + + switch ( json.StringProperty("inputSchemaMappingType") ) + { + case "Json": + { + return new JsonInputSchemaMapping(json); + } + } + return new InputSchemaMapping(json); + } + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject instance to deserialize from. + internal InputSchemaMapping(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject json) + { + bool returnNow = false; + BeforeFromJson(json, ref returnNow); + if (returnNow) + { + return; + } + {_type = If( json?.PropertyT("inputSchemaMappingType"), out var __jsonInputSchemaMappingType) ? (string)__jsonInputSchemaMappingType : (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.EventGrid.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject(); + + bool returnNow = false; + BeforeToJson(ref container, ref returnNow); + if (returnNow) + { + return container; + } + AddIf( null != (((object)this._type)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonString(this._type.ToString()) : null, "inputSchemaMappingType" ,container.Add ); + AfterToJson(ref container); + return container; + } + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/IsNotNullAdvancedFilter.PowerShell.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/IsNotNullAdvancedFilter.PowerShell.cs new file mode 100644 index 000000000000..36df2ddd75c4 --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/IsNotNullAdvancedFilter.PowerShell.cs @@ -0,0 +1,152 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell; + + /// IsNotNull Advanced Filter. + [System.ComponentModel.TypeConverter(typeof(IsNotNullAdvancedFilterTypeConverter))] + public partial class IsNotNullAdvancedFilter + { + + /// + /// AfterDeserializeDictionary will be called after the deserialization has finished, allowing customization of the + /// object before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Collections.IDictionary content that should be used. + + partial void AfterDeserializeDictionary(global::System.Collections.IDictionary content); + + /// + /// AfterDeserializePSObject will be called after the deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Management.Automation.PSObject content that should be used. + + partial void AfterDeserializePSObject(global::System.Management.Automation.PSObject content); + + /// + /// BeforeDeserializeDictionary will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Collections.IDictionary content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializeDictionary(global::System.Collections.IDictionary content, ref bool returnNow); + + /// + /// BeforeDeserializePSObject will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializePSObject(global::System.Management.Automation.PSObject content, ref bool returnNow); + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IIsNotNullAdvancedFilter DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new IsNotNullAdvancedFilter(content); + } + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IIsNotNullAdvancedFilter DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new IsNotNullAdvancedFilter(content); + } + + /// + /// Creates a new instance of , deserializing the content from a json string. + /// + /// a string containing a JSON serialized instance of this model. + /// an instance of the model class. + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IIsNotNullAdvancedFilter FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode.Parse(jsonText)); + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + internal IsNotNullAdvancedFilter(global::System.Collections.IDictionary content) + { + bool returnNow = false; + BeforeDeserializeDictionary(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("OperatorType")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IAdvancedFilterInternal)this).OperatorType = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.AdvancedFilterOperatorType) content.GetValueForProperty("OperatorType",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IAdvancedFilterInternal)this).OperatorType, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.AdvancedFilterOperatorType.CreateFrom); + } + if (content.Contains("Key")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IAdvancedFilterInternal)this).Key = (string) content.GetValueForProperty("Key",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IAdvancedFilterInternal)this).Key, global::System.Convert.ToString); + } + AfterDeserializeDictionary(content); + } + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + internal IsNotNullAdvancedFilter(global::System.Management.Automation.PSObject content) + { + bool returnNow = false; + BeforeDeserializePSObject(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("OperatorType")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IAdvancedFilterInternal)this).OperatorType = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.AdvancedFilterOperatorType) content.GetValueForProperty("OperatorType",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IAdvancedFilterInternal)this).OperatorType, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.AdvancedFilterOperatorType.CreateFrom); + } + if (content.Contains("Key")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IAdvancedFilterInternal)this).Key = (string) content.GetValueForProperty("Key",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IAdvancedFilterInternal)this).Key, 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.EventGrid.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// IsNotNull Advanced Filter. + [System.ComponentModel.TypeConverter(typeof(IsNotNullAdvancedFilterTypeConverter))] + public partial interface IIsNotNullAdvancedFilter + + { + + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/IsNotNullAdvancedFilter.TypeConverter.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/IsNotNullAdvancedFilter.TypeConverter.cs new file mode 100644 index 000000000000..0f443ac563e9 --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/IsNotNullAdvancedFilter.TypeConverter.cs @@ -0,0 +1,147 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class IsNotNullAdvancedFilterTypeConverter : global::System.Management.Automation.PSTypeConverter + { + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false. + /// + public override bool CanConvertFrom(object sourceValue, global::System.Type destinationType) => CanConvertFrom(sourceValue); + + /// + /// Determines if the converter can convert the parameter to the . + /// + /// the instance to check if it can be converted to the type. + /// + /// true if the instance could be converted to a type, otherwise false + /// + public static bool CanConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return true; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + // we say yest to PSObjects + return true; + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + // we say yest to Hashtables/dictionaries + return true; + } + try + { + if (null != sourceValue.ToJsonString()) + { + return true; + } + } + catch + { + // Not one of our objects + } + try + { + string text = sourceValue.ToString()?.Trim(); + return true == text?.StartsWith("{") && true == text?.EndsWith("}") && Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonType.Object; + } + catch + { + // Doesn't look like it can be treated as JSON + } + return false; + } + + /// + /// Determines if the parameter can be converted to the parameter + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false + /// + public override bool CanConvertTo(object sourceValue, global::System.Type destinationType) => false; + + /// + /// Converts the parameter to the parameter using and + /// + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// + /// an instance of , or null if there is no suitable conversion. + /// + public override object ConvertFrom(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => ConvertFrom(sourceValue); + + /// + /// Converts the parameter to the parameter using and + /// + /// the value to convert into an instance of . + /// + /// an instance of , or null if there is no suitable conversion. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IIsNotNullAdvancedFilter ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IIsNotNullAdvancedFilter).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return IsNotNullAdvancedFilter.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return IsNotNullAdvancedFilter.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return IsNotNullAdvancedFilter.DeserializeFromDictionary(sourceValue); + } + return null; + } + + /// NotImplemented -- this will return null + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// will always return null. + public override object ConvertTo(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => null; + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/IsNotNullAdvancedFilter.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/IsNotNullAdvancedFilter.cs new file mode 100644 index 000000000000..81d32216cc8a --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/IsNotNullAdvancedFilter.cs @@ -0,0 +1,63 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Extensions; + + /// IsNotNull Advanced Filter. + public partial class IsNotNullAdvancedFilter : + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IIsNotNullAdvancedFilter, + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IIsNotNullAdvancedFilterInternal, + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IValidates + { + /// + /// Backing field for Inherited model + /// + private Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IAdvancedFilter __advancedFilter = new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.AdvancedFilter(); + + /// The field/property in the event based on which you want to filter. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Inherited)] + public string Key { get => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IAdvancedFilterInternal)__advancedFilter).Key; set => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IAdvancedFilterInternal)__advancedFilter).Key = value ?? null; } + + /// + /// The operator type used for filtering, e.g., NumberIn, StringContains, BoolEquals and others. + /// + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Inherited)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.AdvancedFilterOperatorType OperatorType { get => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IAdvancedFilterInternal)__advancedFilter).OperatorType; set => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IAdvancedFilterInternal)__advancedFilter).OperatorType = value ; } + + /// Creates an new instance. + public IsNotNullAdvancedFilter() + { + + } + + /// Validates that this object meets the validation criteria. + /// an instance that will receive validation + /// events. + /// + /// A that will be complete when validation is completed. + /// + public async global::System.Threading.Tasks.Task Validate(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener eventListener) + { + await eventListener.AssertNotNull(nameof(__advancedFilter), __advancedFilter); + await eventListener.AssertObjectIsValid(nameof(__advancedFilter), __advancedFilter); + } + } + /// IsNotNull Advanced Filter. + public partial interface IIsNotNullAdvancedFilter : + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IJsonSerializable, + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IAdvancedFilter + { + + } + /// IsNotNull Advanced Filter. + internal partial interface IIsNotNullAdvancedFilterInternal : + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IAdvancedFilterInternal + { + + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/IsNotNullAdvancedFilter.json.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/IsNotNullAdvancedFilter.json.cs new file mode 100644 index 000000000000..8ad7c3e826e4 --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/IsNotNullAdvancedFilter.json.cs @@ -0,0 +1,106 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Extensions; + + /// IsNotNull Advanced Filter. + public partial class IsNotNullAdvancedFilter + { + + /// + /// AfterFromJson will be called after the json deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JsonNode that should be deserialized into this object. + + partial void AfterFromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json erialization has finished, allowing customization of the before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JSON container that the serialization result will be placed in. + + partial void AfterToJson(ref Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject container); + + /// + /// BeforeFromJson will be called before the json deserialization has commenced, allowing complete customization of + /// the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JsonNode that should be deserialized into this object. + /// Determines if the rest of the deserialization should be processed, or if the method should return + /// instantly. + + partial void BeforeFromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject json, ref bool returnNow); + + /// + /// BeforeToJson will be called before the json serialization has commenced, allowing complete customization of the + /// object before it is serialized. + /// If you wish to disable the default serialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JSON container that the serialization result will be placed in. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeToJson(ref Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IIsNotNullAdvancedFilter. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IIsNotNullAdvancedFilter. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IIsNotNullAdvancedFilter FromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject json ? new IsNotNullAdvancedFilter(json) : null; + } + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject instance to deserialize from. + internal IsNotNullAdvancedFilter(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject json) + { + bool returnNow = false; + BeforeFromJson(json, ref returnNow); + if (returnNow) + { + return; + } + __advancedFilter = new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.AdvancedFilter(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.EventGrid.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject(); + + bool returnNow = false; + BeforeToJson(ref container, ref returnNow); + if (returnNow) + { + return container; + } + __advancedFilter?.ToJson(container, serializationMode); + AfterToJson(ref container); + return container; + } + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/IsNullOrUndefinedAdvancedFilter.PowerShell.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/IsNullOrUndefinedAdvancedFilter.PowerShell.cs new file mode 100644 index 000000000000..5dbe064042f0 --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/IsNullOrUndefinedAdvancedFilter.PowerShell.cs @@ -0,0 +1,152 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell; + + /// IsNullOrUndefined Advanced Filter. + [System.ComponentModel.TypeConverter(typeof(IsNullOrUndefinedAdvancedFilterTypeConverter))] + public partial class IsNullOrUndefinedAdvancedFilter + { + + /// + /// AfterDeserializeDictionary will be called after the deserialization has finished, allowing customization of the + /// object before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Collections.IDictionary content that should be used. + + partial void AfterDeserializeDictionary(global::System.Collections.IDictionary content); + + /// + /// AfterDeserializePSObject will be called after the deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Management.Automation.PSObject content that should be used. + + partial void AfterDeserializePSObject(global::System.Management.Automation.PSObject content); + + /// + /// BeforeDeserializeDictionary will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Collections.IDictionary content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializeDictionary(global::System.Collections.IDictionary content, ref bool returnNow); + + /// + /// BeforeDeserializePSObject will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializePSObject(global::System.Management.Automation.PSObject content, ref bool returnNow); + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IIsNullOrUndefinedAdvancedFilter DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new IsNullOrUndefinedAdvancedFilter(content); + } + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IIsNullOrUndefinedAdvancedFilter DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new IsNullOrUndefinedAdvancedFilter(content); + } + + /// + /// Creates a new instance of , deserializing the content from a json string. + /// + /// a string containing a JSON serialized instance of this model. + /// an instance of the model class. + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IIsNullOrUndefinedAdvancedFilter FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode.Parse(jsonText)); + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + internal IsNullOrUndefinedAdvancedFilter(global::System.Collections.IDictionary content) + { + bool returnNow = false; + BeforeDeserializeDictionary(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("OperatorType")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IAdvancedFilterInternal)this).OperatorType = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.AdvancedFilterOperatorType) content.GetValueForProperty("OperatorType",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IAdvancedFilterInternal)this).OperatorType, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.AdvancedFilterOperatorType.CreateFrom); + } + if (content.Contains("Key")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IAdvancedFilterInternal)this).Key = (string) content.GetValueForProperty("Key",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IAdvancedFilterInternal)this).Key, global::System.Convert.ToString); + } + AfterDeserializeDictionary(content); + } + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + internal IsNullOrUndefinedAdvancedFilter(global::System.Management.Automation.PSObject content) + { + bool returnNow = false; + BeforeDeserializePSObject(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("OperatorType")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IAdvancedFilterInternal)this).OperatorType = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.AdvancedFilterOperatorType) content.GetValueForProperty("OperatorType",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IAdvancedFilterInternal)this).OperatorType, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.AdvancedFilterOperatorType.CreateFrom); + } + if (content.Contains("Key")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IAdvancedFilterInternal)this).Key = (string) content.GetValueForProperty("Key",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IAdvancedFilterInternal)this).Key, 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.EventGrid.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// IsNullOrUndefined Advanced Filter. + [System.ComponentModel.TypeConverter(typeof(IsNullOrUndefinedAdvancedFilterTypeConverter))] + public partial interface IIsNullOrUndefinedAdvancedFilter + + { + + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/IsNullOrUndefinedAdvancedFilter.TypeConverter.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/IsNullOrUndefinedAdvancedFilter.TypeConverter.cs new file mode 100644 index 000000000000..75a8da73ec4a --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/IsNullOrUndefinedAdvancedFilter.TypeConverter.cs @@ -0,0 +1,147 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class IsNullOrUndefinedAdvancedFilterTypeConverter : global::System.Management.Automation.PSTypeConverter + { + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false. + /// + public override bool CanConvertFrom(object sourceValue, global::System.Type destinationType) => CanConvertFrom(sourceValue); + + /// + /// Determines if the converter can convert the parameter to the . + /// + /// the instance to check if it can be converted to the type. + /// + /// true if the instance could be converted to a type, otherwise false + /// + public static bool CanConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return true; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + // we say yest to PSObjects + return true; + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + // we say yest to Hashtables/dictionaries + return true; + } + try + { + if (null != sourceValue.ToJsonString()) + { + return true; + } + } + catch + { + // Not one of our objects + } + try + { + string text = sourceValue.ToString()?.Trim(); + return true == text?.StartsWith("{") && true == text?.EndsWith("}") && Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonType.Object; + } + catch + { + // Doesn't look like it can be treated as JSON + } + return false; + } + + /// + /// Determines if the parameter can be converted to the parameter + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false + /// + public override bool CanConvertTo(object sourceValue, global::System.Type destinationType) => false; + + /// + /// Converts the parameter to the parameter using and + /// + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// + /// an instance of , or null if there is no suitable conversion. + /// + public override object ConvertFrom(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => ConvertFrom(sourceValue); + + /// + /// Converts the parameter to the parameter using and + /// + /// the value to convert into an instance of . + /// + /// an instance of , or null if there is no suitable conversion. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IIsNullOrUndefinedAdvancedFilter ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IIsNullOrUndefinedAdvancedFilter).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return IsNullOrUndefinedAdvancedFilter.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return IsNullOrUndefinedAdvancedFilter.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return IsNullOrUndefinedAdvancedFilter.DeserializeFromDictionary(sourceValue); + } + return null; + } + + /// NotImplemented -- this will return null + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// will always return null. + public override object ConvertTo(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => null; + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/IsNullOrUndefinedAdvancedFilter.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/IsNullOrUndefinedAdvancedFilter.cs new file mode 100644 index 000000000000..a49b61070779 --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/IsNullOrUndefinedAdvancedFilter.cs @@ -0,0 +1,63 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Extensions; + + /// IsNullOrUndefined Advanced Filter. + public partial class IsNullOrUndefinedAdvancedFilter : + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IIsNullOrUndefinedAdvancedFilter, + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IIsNullOrUndefinedAdvancedFilterInternal, + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IValidates + { + /// + /// Backing field for Inherited model + /// + private Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IAdvancedFilter __advancedFilter = new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.AdvancedFilter(); + + /// The field/property in the event based on which you want to filter. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Inherited)] + public string Key { get => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IAdvancedFilterInternal)__advancedFilter).Key; set => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IAdvancedFilterInternal)__advancedFilter).Key = value ?? null; } + + /// + /// The operator type used for filtering, e.g., NumberIn, StringContains, BoolEquals and others. + /// + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Inherited)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.AdvancedFilterOperatorType OperatorType { get => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IAdvancedFilterInternal)__advancedFilter).OperatorType; set => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IAdvancedFilterInternal)__advancedFilter).OperatorType = value ; } + + /// Creates an new instance. + public IsNullOrUndefinedAdvancedFilter() + { + + } + + /// Validates that this object meets the validation criteria. + /// an instance that will receive validation + /// events. + /// + /// A that will be complete when validation is completed. + /// + public async global::System.Threading.Tasks.Task Validate(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener eventListener) + { + await eventListener.AssertNotNull(nameof(__advancedFilter), __advancedFilter); + await eventListener.AssertObjectIsValid(nameof(__advancedFilter), __advancedFilter); + } + } + /// IsNullOrUndefined Advanced Filter. + public partial interface IIsNullOrUndefinedAdvancedFilter : + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IJsonSerializable, + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IAdvancedFilter + { + + } + /// IsNullOrUndefined Advanced Filter. + internal partial interface IIsNullOrUndefinedAdvancedFilterInternal : + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IAdvancedFilterInternal + { + + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/IsNullOrUndefinedAdvancedFilter.json.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/IsNullOrUndefinedAdvancedFilter.json.cs new file mode 100644 index 000000000000..355bf704977c --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/IsNullOrUndefinedAdvancedFilter.json.cs @@ -0,0 +1,106 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Extensions; + + /// IsNullOrUndefined Advanced Filter. + public partial class IsNullOrUndefinedAdvancedFilter + { + + /// + /// AfterFromJson will be called after the json deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JsonNode that should be deserialized into this object. + + partial void AfterFromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json erialization has finished, allowing customization of the before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JSON container that the serialization result will be placed in. + + partial void AfterToJson(ref Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject container); + + /// + /// BeforeFromJson will be called before the json deserialization has commenced, allowing complete customization of + /// the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JsonNode that should be deserialized into this object. + /// Determines if the rest of the deserialization should be processed, or if the method should return + /// instantly. + + partial void BeforeFromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject json, ref bool returnNow); + + /// + /// BeforeToJson will be called before the json serialization has commenced, allowing complete customization of the + /// object before it is serialized. + /// If you wish to disable the default serialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JSON container that the serialization result will be placed in. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeToJson(ref Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IIsNullOrUndefinedAdvancedFilter. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IIsNullOrUndefinedAdvancedFilter. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IIsNullOrUndefinedAdvancedFilter FromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject json ? new IsNullOrUndefinedAdvancedFilter(json) : null; + } + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject instance to deserialize from. + internal IsNullOrUndefinedAdvancedFilter(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject json) + { + bool returnNow = false; + BeforeFromJson(json, ref returnNow); + if (returnNow) + { + return; + } + __advancedFilter = new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.AdvancedFilter(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.EventGrid.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject(); + + bool returnNow = false; + BeforeToJson(ref container, ref returnNow); + if (returnNow) + { + return container; + } + __advancedFilter?.ToJson(container, serializationMode); + AfterToJson(ref container); + return container; + } + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/JsonField.PowerShell.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/JsonField.PowerShell.cs new file mode 100644 index 000000000000..783dcec9a6bc --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/JsonField.PowerShell.cs @@ -0,0 +1,148 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell; + + /// + /// This is used to express the source of an input schema mapping for a single target field in the Event Grid Event schema. + /// This is currently used in the mappings for the 'id', 'topic' and 'eventtime' properties. This represents a field in the + /// input event schema. + /// + [System.ComponentModel.TypeConverter(typeof(JsonFieldTypeConverter))] + public partial class JsonField + { + + /// + /// AfterDeserializeDictionary will be called after the deserialization has finished, allowing customization of the + /// object before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Collections.IDictionary content that should be used. + + partial void AfterDeserializeDictionary(global::System.Collections.IDictionary content); + + /// + /// AfterDeserializePSObject will be called after the deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Management.Automation.PSObject content that should be used. + + partial void AfterDeserializePSObject(global::System.Management.Automation.PSObject content); + + /// + /// BeforeDeserializeDictionary will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Collections.IDictionary content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializeDictionary(global::System.Collections.IDictionary content, ref bool returnNow); + + /// + /// BeforeDeserializePSObject will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializePSObject(global::System.Management.Automation.PSObject content, ref bool returnNow); + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IJsonField DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new JsonField(content); + } + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IJsonField DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new JsonField(content); + } + + /// + /// Creates a new instance of , deserializing the content from a json string. + /// + /// a string containing a JSON serialized instance of this model. + /// an instance of the model class. + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IJsonField FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode.Parse(jsonText)); + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + internal JsonField(global::System.Collections.IDictionary content) + { + bool returnNow = false; + BeforeDeserializeDictionary(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("SourceField")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IJsonFieldInternal)this).SourceField = (string) content.GetValueForProperty("SourceField",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IJsonFieldInternal)this).SourceField, global::System.Convert.ToString); + } + AfterDeserializeDictionary(content); + } + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + internal JsonField(global::System.Management.Automation.PSObject content) + { + bool returnNow = false; + BeforeDeserializePSObject(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("SourceField")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IJsonFieldInternal)this).SourceField = (string) content.GetValueForProperty("SourceField",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IJsonFieldInternal)this).SourceField, 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.EventGrid.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// This is used to express the source of an input schema mapping for a single target field in the Event Grid Event schema. + /// This is currently used in the mappings for the 'id', 'topic' and 'eventtime' properties. This represents a field in the + /// input event schema. + [System.ComponentModel.TypeConverter(typeof(JsonFieldTypeConverter))] + public partial interface IJsonField + + { + + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/JsonField.TypeConverter.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/JsonField.TypeConverter.cs new file mode 100644 index 000000000000..77a74995aea1 --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/JsonField.TypeConverter.cs @@ -0,0 +1,146 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class JsonFieldTypeConverter : global::System.Management.Automation.PSTypeConverter + { + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false. + /// + public override bool CanConvertFrom(object sourceValue, global::System.Type destinationType) => CanConvertFrom(sourceValue); + + /// + /// Determines if the converter can convert the parameter to the . + /// + /// the instance to check if it can be converted to the type. + /// + /// true if the instance could be converted to a type, otherwise false + /// + public static bool CanConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return true; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + // we say yest to PSObjects + return true; + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + // we say yest to Hashtables/dictionaries + return true; + } + try + { + if (null != sourceValue.ToJsonString()) + { + return true; + } + } + catch + { + // Not one of our objects + } + try + { + string text = sourceValue.ToString()?.Trim(); + return true == text?.StartsWith("{") && true == text?.EndsWith("}") && Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonType.Object; + } + catch + { + // Doesn't look like it can be treated as JSON + } + return false; + } + + /// + /// Determines if the parameter can be converted to the parameter + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false + /// + public override bool CanConvertTo(object sourceValue, global::System.Type destinationType) => false; + + /// + /// Converts the parameter to the parameter using and + /// + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// + /// an instance of , or null if there is no suitable conversion. + /// + public override object ConvertFrom(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => ConvertFrom(sourceValue); + + /// + /// Converts the parameter to the parameter using and + /// + /// the value to convert into an instance of . + /// + /// an instance of , or null if there is no suitable conversion. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IJsonField ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IJsonField).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return JsonField.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return JsonField.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return JsonField.DeserializeFromDictionary(sourceValue); + } + return null; + } + + /// NotImplemented -- this will return null + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// will always return null. + public override object ConvertTo(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => null; + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/JsonField.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/JsonField.cs new file mode 100644 index 000000000000..b2bfb6e5509e --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/JsonField.cs @@ -0,0 +1,65 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Extensions; + + /// + /// This is used to express the source of an input schema mapping for a single target field in the Event Grid Event schema. + /// This is currently used in the mappings for the 'id', 'topic' and 'eventtime' properties. This represents a field in the + /// input event schema. + /// + public partial class JsonField : + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IJsonField, + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IJsonFieldInternal + { + + /// Backing field for property. + private string _sourceField; + + /// + /// Name of a field in the input event schema that's to be used as the source of a mapping. + /// + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Owned)] + public string SourceField { get => this._sourceField; set => this._sourceField = value; } + + /// Creates an new instance. + public JsonField() + { + + } + } + /// This is used to express the source of an input schema mapping for a single target field in the Event Grid Event schema. + /// This is currently used in the mappings for the 'id', 'topic' and 'eventtime' properties. This represents a field in the + /// input event schema. + public partial interface IJsonField : + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IJsonSerializable + { + /// + /// Name of a field in the input event schema that's to be used as the source of a mapping. + /// + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Name of a field in the input event schema that's to be used as the source of a mapping.", + SerializedName = @"sourceField", + PossibleTypes = new [] { typeof(string) })] + string SourceField { get; set; } + + } + /// This is used to express the source of an input schema mapping for a single target field in the Event Grid Event schema. + /// This is currently used in the mappings for the 'id', 'topic' and 'eventtime' properties. This represents a field in the + /// input event schema. + internal partial interface IJsonFieldInternal + + { + /// + /// Name of a field in the input event schema that's to be used as the source of a mapping. + /// + string SourceField { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/JsonField.json.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/JsonField.json.cs new file mode 100644 index 000000000000..03be97a19dc6 --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/JsonField.json.cs @@ -0,0 +1,110 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Extensions; + + /// + /// This is used to express the source of an input schema mapping for a single target field in the Event Grid Event schema. + /// This is currently used in the mappings for the 'id', 'topic' and 'eventtime' properties. This represents a field in the + /// input event schema. + /// + public partial class JsonField + { + + /// + /// AfterFromJson will be called after the json deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JsonNode that should be deserialized into this object. + + partial void AfterFromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json erialization has finished, allowing customization of the before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JSON container that the serialization result will be placed in. + + partial void AfterToJson(ref Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject container); + + /// + /// BeforeFromJson will be called before the json deserialization has commenced, allowing complete customization of + /// the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JsonNode that should be deserialized into this object. + /// Determines if the rest of the deserialization should be processed, or if the method should return + /// instantly. + + partial void BeforeFromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject json, ref bool returnNow); + + /// + /// BeforeToJson will be called before the json serialization has commenced, allowing complete customization of the + /// object before it is serialized. + /// If you wish to disable the default serialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JSON container that the serialization result will be placed in. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeToJson(ref Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IJsonField. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IJsonField. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IJsonField FromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject json ? new JsonField(json) : null; + } + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject instance to deserialize from. + internal JsonField(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject json) + { + bool returnNow = false; + BeforeFromJson(json, ref returnNow); + if (returnNow) + { + return; + } + {_sourceField = If( json?.PropertyT("sourceField"), out var __jsonSourceField) ? (string)__jsonSourceField : (string)SourceField;} + AfterFromJson(json); + } + + /// + /// Serializes this instance of into a . + /// + /// The container to serialize this object into. If the caller + /// passes in null, a new instance will be created and returned to the caller. + /// Allows the caller to choose the depth of the serialization. See . + /// + /// a serialized instance of as a . + /// + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject(); + + bool returnNow = false; + BeforeToJson(ref container, ref returnNow); + if (returnNow) + { + return container; + } + AddIf( null != (((object)this._sourceField)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonString(this._sourceField.ToString()) : null, "sourceField" ,container.Add ); + AfterToJson(ref container); + return container; + } + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/JsonFieldWithDefault.PowerShell.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/JsonFieldWithDefault.PowerShell.cs new file mode 100644 index 000000000000..d3d56b50b5c9 --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/JsonFieldWithDefault.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.EventGrid.Models.Api20211015Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell; + + /// + /// This is used to express the source of an input schema mapping for a single target field + /// in the Event Grid Event schema. This is currently used in the mappings for the 'subject', + /// 'eventtype' and 'dataversion' properties. This represents a field in the input event schema + /// along with a default value to be used, and at least one of these two properties should be provided. + /// + [System.ComponentModel.TypeConverter(typeof(JsonFieldWithDefaultTypeConverter))] + public partial class JsonFieldWithDefault + { + + /// + /// AfterDeserializeDictionary will be called after the deserialization has finished, allowing customization of the + /// object before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Collections.IDictionary content that should be used. + + partial void AfterDeserializeDictionary(global::System.Collections.IDictionary content); + + /// + /// AfterDeserializePSObject will be called after the deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Management.Automation.PSObject content that should be used. + + partial void AfterDeserializePSObject(global::System.Management.Automation.PSObject content); + + /// + /// BeforeDeserializeDictionary will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Collections.IDictionary content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializeDictionary(global::System.Collections.IDictionary content, ref bool returnNow); + + /// + /// BeforeDeserializePSObject will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializePSObject(global::System.Management.Automation.PSObject content, ref bool returnNow); + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IJsonFieldWithDefault DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new JsonFieldWithDefault(content); + } + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IJsonFieldWithDefault DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new JsonFieldWithDefault(content); + } + + /// + /// Creates a new instance of , deserializing the content from a json string. + /// + /// a string containing a JSON serialized instance of this model. + /// an instance of the model class. + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IJsonFieldWithDefault FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode.Parse(jsonText)); + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + internal JsonFieldWithDefault(global::System.Collections.IDictionary content) + { + bool returnNow = false; + BeforeDeserializeDictionary(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("SourceField")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IJsonFieldWithDefaultInternal)this).SourceField = (string) content.GetValueForProperty("SourceField",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IJsonFieldWithDefaultInternal)this).SourceField, global::System.Convert.ToString); + } + if (content.Contains("DefaultValue")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IJsonFieldWithDefaultInternal)this).DefaultValue = (string) content.GetValueForProperty("DefaultValue",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IJsonFieldWithDefaultInternal)this).DefaultValue, global::System.Convert.ToString); + } + AfterDeserializeDictionary(content); + } + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + internal JsonFieldWithDefault(global::System.Management.Automation.PSObject content) + { + bool returnNow = false; + BeforeDeserializePSObject(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("SourceField")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IJsonFieldWithDefaultInternal)this).SourceField = (string) content.GetValueForProperty("SourceField",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IJsonFieldWithDefaultInternal)this).SourceField, global::System.Convert.ToString); + } + if (content.Contains("DefaultValue")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IJsonFieldWithDefaultInternal)this).DefaultValue = (string) content.GetValueForProperty("DefaultValue",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IJsonFieldWithDefaultInternal)this).DefaultValue, 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.EventGrid.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// This is used to express the source of an input schema mapping for a single target field + /// in the Event Grid Event schema. This is currently used in the mappings for the 'subject', + /// 'eventtype' and 'dataversion' properties. This represents a field in the input event schema + /// along with a default value to be used, and at least one of these two properties should be provided. + [System.ComponentModel.TypeConverter(typeof(JsonFieldWithDefaultTypeConverter))] + public partial interface IJsonFieldWithDefault + + { + + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/JsonFieldWithDefault.TypeConverter.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/JsonFieldWithDefault.TypeConverter.cs new file mode 100644 index 000000000000..29f67ad7cc79 --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/JsonFieldWithDefault.TypeConverter.cs @@ -0,0 +1,147 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class JsonFieldWithDefaultTypeConverter : global::System.Management.Automation.PSTypeConverter + { + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false. + /// + public override bool CanConvertFrom(object sourceValue, global::System.Type destinationType) => CanConvertFrom(sourceValue); + + /// + /// Determines if the converter can convert the parameter to the . + /// + /// the instance to check if it can be converted to the type. + /// + /// true if the instance could be converted to a type, otherwise false + /// + public static bool CanConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return true; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + // we say yest to PSObjects + return true; + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + // we say yest to Hashtables/dictionaries + return true; + } + try + { + if (null != sourceValue.ToJsonString()) + { + return true; + } + } + catch + { + // Not one of our objects + } + try + { + string text = sourceValue.ToString()?.Trim(); + return true == text?.StartsWith("{") && true == text?.EndsWith("}") && Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonType.Object; + } + catch + { + // Doesn't look like it can be treated as JSON + } + return false; + } + + /// + /// Determines if the parameter can be converted to the parameter + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false + /// + public override bool CanConvertTo(object sourceValue, global::System.Type destinationType) => false; + + /// + /// Converts the parameter to the parameter using and + /// + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// + /// an instance of , or null if there is no suitable conversion. + /// + public override object ConvertFrom(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => ConvertFrom(sourceValue); + + /// + /// Converts the parameter to the parameter using and + /// + /// the value to convert into an instance of . + /// + /// an instance of , or null if there is no suitable conversion. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IJsonFieldWithDefault ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IJsonFieldWithDefault).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return JsonFieldWithDefault.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return JsonFieldWithDefault.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return JsonFieldWithDefault.DeserializeFromDictionary(sourceValue); + } + return null; + } + + /// NotImplemented -- this will return null + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// will always return null. + public override object ConvertTo(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => null; + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/JsonFieldWithDefault.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/JsonFieldWithDefault.cs new file mode 100644 index 000000000000..e7ff64f91b5a --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/JsonFieldWithDefault.cs @@ -0,0 +1,94 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Extensions; + + /// + /// This is used to express the source of an input schema mapping for a single target field + /// in the Event Grid Event schema. This is currently used in the mappings for the 'subject', + /// 'eventtype' and 'dataversion' properties. This represents a field in the input event schema + /// along with a default value to be used, and at least one of these two properties should be provided. + /// + public partial class JsonFieldWithDefault : + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IJsonFieldWithDefault, + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IJsonFieldWithDefaultInternal + { + + /// Backing field for property. + private string _defaultValue; + + /// + /// The default value to be used for mapping when a SourceField is not provided or if there's no property with the specified + /// name in the published JSON event payload. + /// + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Owned)] + public string DefaultValue { get => this._defaultValue; set => this._defaultValue = value; } + + /// Backing field for property. + private string _sourceField; + + /// + /// Name of a field in the input event schema that's to be used as the source of a mapping. + /// + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Owned)] + public string SourceField { get => this._sourceField; set => this._sourceField = value; } + + /// Creates an new instance. + public JsonFieldWithDefault() + { + + } + } + /// This is used to express the source of an input schema mapping for a single target field + /// in the Event Grid Event schema. This is currently used in the mappings for the 'subject', + /// 'eventtype' and 'dataversion' properties. This represents a field in the input event schema + /// along with a default value to be used, and at least one of these two properties should be provided. + public partial interface IJsonFieldWithDefault : + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IJsonSerializable + { + /// + /// The default value to be used for mapping when a SourceField is not provided or if there's no property with the specified + /// name in the published JSON event payload. + /// + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The default value to be used for mapping when a SourceField is not provided or if there's no property with the specified name in the published JSON event payload.", + SerializedName = @"defaultValue", + PossibleTypes = new [] { typeof(string) })] + string DefaultValue { get; set; } + /// + /// Name of a field in the input event schema that's to be used as the source of a mapping. + /// + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Name of a field in the input event schema that's to be used as the source of a mapping.", + SerializedName = @"sourceField", + PossibleTypes = new [] { typeof(string) })] + string SourceField { get; set; } + + } + /// This is used to express the source of an input schema mapping for a single target field + /// in the Event Grid Event schema. This is currently used in the mappings for the 'subject', + /// 'eventtype' and 'dataversion' properties. This represents a field in the input event schema + /// along with a default value to be used, and at least one of these two properties should be provided. + internal partial interface IJsonFieldWithDefaultInternal + + { + /// + /// The default value to be used for mapping when a SourceField is not provided or if there's no property with the specified + /// name in the published JSON event payload. + /// + string DefaultValue { get; set; } + /// + /// Name of a field in the input event schema that's to be used as the source of a mapping. + /// + string SourceField { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/JsonFieldWithDefault.json.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/JsonFieldWithDefault.json.cs new file mode 100644 index 000000000000..4f1dd0fea03f --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/JsonFieldWithDefault.json.cs @@ -0,0 +1,113 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Extensions; + + /// + /// This is used to express the source of an input schema mapping for a single target field + /// in the Event Grid Event schema. This is currently used in the mappings for the 'subject', + /// 'eventtype' and 'dataversion' properties. This represents a field in the input event schema + /// along with a default value to be used, and at least one of these two properties should be provided. + /// + public partial class JsonFieldWithDefault + { + + /// + /// AfterFromJson will be called after the json deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JsonNode that should be deserialized into this object. + + partial void AfterFromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json erialization has finished, allowing customization of the before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JSON container that the serialization result will be placed in. + + partial void AfterToJson(ref Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject container); + + /// + /// BeforeFromJson will be called before the json deserialization has commenced, allowing complete customization of + /// the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JsonNode that should be deserialized into this object. + /// Determines if the rest of the deserialization should be processed, or if the method should return + /// instantly. + + partial void BeforeFromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject json, ref bool returnNow); + + /// + /// BeforeToJson will be called before the json serialization has commenced, allowing complete customization of the + /// object before it is serialized. + /// If you wish to disable the default serialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JSON container that the serialization result will be placed in. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeToJson(ref Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IJsonFieldWithDefault. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IJsonFieldWithDefault. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IJsonFieldWithDefault FromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject json ? new JsonFieldWithDefault(json) : null; + } + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject instance to deserialize from. + internal JsonFieldWithDefault(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject json) + { + bool returnNow = false; + BeforeFromJson(json, ref returnNow); + if (returnNow) + { + return; + } + {_sourceField = If( json?.PropertyT("sourceField"), out var __jsonSourceField) ? (string)__jsonSourceField : (string)SourceField;} + {_defaultValue = If( json?.PropertyT("defaultValue"), out var __jsonDefaultValue) ? (string)__jsonDefaultValue : (string)DefaultValue;} + AfterFromJson(json); + } + + /// + /// Serializes this instance of into a . + /// + /// The container to serialize this object into. If the caller + /// passes in null, a new instance will be created and returned to the caller. + /// Allows the caller to choose the depth of the serialization. See . + /// + /// a serialized instance of as a . + /// + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject(); + + bool returnNow = false; + BeforeToJson(ref container, ref returnNow); + if (returnNow) + { + return container; + } + AddIf( null != (((object)this._sourceField)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonString(this._sourceField.ToString()) : null, "sourceField" ,container.Add ); + AddIf( null != (((object)this._defaultValue)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonString(this._defaultValue.ToString()) : null, "defaultValue" ,container.Add ); + AfterToJson(ref container); + return container; + } + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/JsonInputSchemaMapping.PowerShell.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/JsonInputSchemaMapping.PowerShell.cs new file mode 100644 index 000000000000..40a077ac9a0d --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/JsonInputSchemaMapping.PowerShell.cs @@ -0,0 +1,276 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell; + + /// + /// This enables publishing to Event Grid using a custom input schema. This can be used to map properties from a custom input + /// JSON schema to the Event Grid event schema. + /// + [System.ComponentModel.TypeConverter(typeof(JsonInputSchemaMappingTypeConverter))] + public partial class JsonInputSchemaMapping + { + + /// + /// AfterDeserializeDictionary will be called after the deserialization has finished, allowing customization of the + /// object before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Collections.IDictionary content that should be used. + + partial void AfterDeserializeDictionary(global::System.Collections.IDictionary content); + + /// + /// AfterDeserializePSObject will be called after the deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Management.Automation.PSObject content that should be used. + + partial void AfterDeserializePSObject(global::System.Management.Automation.PSObject content); + + /// + /// BeforeDeserializeDictionary will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Collections.IDictionary content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializeDictionary(global::System.Collections.IDictionary content, ref bool returnNow); + + /// + /// BeforeDeserializePSObject will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializePSObject(global::System.Management.Automation.PSObject content, ref bool returnNow); + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IJsonInputSchemaMapping DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new JsonInputSchemaMapping(content); + } + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IJsonInputSchemaMapping DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new JsonInputSchemaMapping(content); + } + + /// + /// Creates a new instance of , deserializing the content from a json string. + /// + /// a string containing a JSON serialized instance of this model. + /// an instance of the model class. + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IJsonInputSchemaMapping FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode.Parse(jsonText)); + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + internal JsonInputSchemaMapping(global::System.Collections.IDictionary content) + { + bool returnNow = false; + BeforeDeserializeDictionary(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("Property")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IJsonInputSchemaMappingInternal)this).Property = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IJsonInputSchemaMappingProperties) content.GetValueForProperty("Property",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IJsonInputSchemaMappingInternal)this).Property, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.JsonInputSchemaMappingPropertiesTypeConverter.ConvertFrom); + } + if (content.Contains("Type")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IInputSchemaMappingInternal)this).Type = (string) content.GetValueForProperty("Type",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IInputSchemaMappingInternal)this).Type, global::System.Convert.ToString); + } + if (content.Contains("Id")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IJsonInputSchemaMappingInternal)this).Id = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IJsonField) content.GetValueForProperty("Id",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IJsonInputSchemaMappingInternal)this).Id, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.JsonFieldTypeConverter.ConvertFrom); + } + if (content.Contains("Topic")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IJsonInputSchemaMappingInternal)this).Topic = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IJsonField) content.GetValueForProperty("Topic",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IJsonInputSchemaMappingInternal)this).Topic, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.JsonFieldTypeConverter.ConvertFrom); + } + if (content.Contains("EventTime")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IJsonInputSchemaMappingInternal)this).EventTime = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IJsonField) content.GetValueForProperty("EventTime",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IJsonInputSchemaMappingInternal)this).EventTime, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.JsonFieldTypeConverter.ConvertFrom); + } + if (content.Contains("EventType")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IJsonInputSchemaMappingInternal)this).EventType = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IJsonFieldWithDefault) content.GetValueForProperty("EventType",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IJsonInputSchemaMappingInternal)this).EventType, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.JsonFieldWithDefaultTypeConverter.ConvertFrom); + } + if (content.Contains("Subject")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IJsonInputSchemaMappingInternal)this).Subject = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IJsonFieldWithDefault) content.GetValueForProperty("Subject",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IJsonInputSchemaMappingInternal)this).Subject, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.JsonFieldWithDefaultTypeConverter.ConvertFrom); + } + if (content.Contains("DataVersion")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IJsonInputSchemaMappingInternal)this).DataVersion = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IJsonFieldWithDefault) content.GetValueForProperty("DataVersion",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IJsonInputSchemaMappingInternal)this).DataVersion, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.JsonFieldWithDefaultTypeConverter.ConvertFrom); + } + if (content.Contains("IdSourceField")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IJsonInputSchemaMappingInternal)this).IdSourceField = (string) content.GetValueForProperty("IdSourceField",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IJsonInputSchemaMappingInternal)this).IdSourceField, global::System.Convert.ToString); + } + if (content.Contains("TopicSourceField")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IJsonInputSchemaMappingInternal)this).TopicSourceField = (string) content.GetValueForProperty("TopicSourceField",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IJsonInputSchemaMappingInternal)this).TopicSourceField, global::System.Convert.ToString); + } + if (content.Contains("EventTimeSourceField")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IJsonInputSchemaMappingInternal)this).EventTimeSourceField = (string) content.GetValueForProperty("EventTimeSourceField",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IJsonInputSchemaMappingInternal)this).EventTimeSourceField, global::System.Convert.ToString); + } + if (content.Contains("EventTypeSourceField")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IJsonInputSchemaMappingInternal)this).EventTypeSourceField = (string) content.GetValueForProperty("EventTypeSourceField",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IJsonInputSchemaMappingInternal)this).EventTypeSourceField, global::System.Convert.ToString); + } + if (content.Contains("EventTypeDefaultValue")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IJsonInputSchemaMappingInternal)this).EventTypeDefaultValue = (string) content.GetValueForProperty("EventTypeDefaultValue",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IJsonInputSchemaMappingInternal)this).EventTypeDefaultValue, global::System.Convert.ToString); + } + if (content.Contains("SubjectSourceField")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IJsonInputSchemaMappingInternal)this).SubjectSourceField = (string) content.GetValueForProperty("SubjectSourceField",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IJsonInputSchemaMappingInternal)this).SubjectSourceField, global::System.Convert.ToString); + } + if (content.Contains("SubjectDefaultValue")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IJsonInputSchemaMappingInternal)this).SubjectDefaultValue = (string) content.GetValueForProperty("SubjectDefaultValue",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IJsonInputSchemaMappingInternal)this).SubjectDefaultValue, global::System.Convert.ToString); + } + if (content.Contains("DataVersionSourceField")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IJsonInputSchemaMappingInternal)this).DataVersionSourceField = (string) content.GetValueForProperty("DataVersionSourceField",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IJsonInputSchemaMappingInternal)this).DataVersionSourceField, global::System.Convert.ToString); + } + if (content.Contains("DataVersionDefaultValue")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IJsonInputSchemaMappingInternal)this).DataVersionDefaultValue = (string) content.GetValueForProperty("DataVersionDefaultValue",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IJsonInputSchemaMappingInternal)this).DataVersionDefaultValue, global::System.Convert.ToString); + } + AfterDeserializeDictionary(content); + } + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + internal JsonInputSchemaMapping(global::System.Management.Automation.PSObject content) + { + bool returnNow = false; + BeforeDeserializePSObject(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("Property")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IJsonInputSchemaMappingInternal)this).Property = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IJsonInputSchemaMappingProperties) content.GetValueForProperty("Property",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IJsonInputSchemaMappingInternal)this).Property, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.JsonInputSchemaMappingPropertiesTypeConverter.ConvertFrom); + } + if (content.Contains("Type")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IInputSchemaMappingInternal)this).Type = (string) content.GetValueForProperty("Type",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IInputSchemaMappingInternal)this).Type, global::System.Convert.ToString); + } + if (content.Contains("Id")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IJsonInputSchemaMappingInternal)this).Id = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IJsonField) content.GetValueForProperty("Id",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IJsonInputSchemaMappingInternal)this).Id, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.JsonFieldTypeConverter.ConvertFrom); + } + if (content.Contains("Topic")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IJsonInputSchemaMappingInternal)this).Topic = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IJsonField) content.GetValueForProperty("Topic",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IJsonInputSchemaMappingInternal)this).Topic, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.JsonFieldTypeConverter.ConvertFrom); + } + if (content.Contains("EventTime")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IJsonInputSchemaMappingInternal)this).EventTime = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IJsonField) content.GetValueForProperty("EventTime",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IJsonInputSchemaMappingInternal)this).EventTime, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.JsonFieldTypeConverter.ConvertFrom); + } + if (content.Contains("EventType")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IJsonInputSchemaMappingInternal)this).EventType = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IJsonFieldWithDefault) content.GetValueForProperty("EventType",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IJsonInputSchemaMappingInternal)this).EventType, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.JsonFieldWithDefaultTypeConverter.ConvertFrom); + } + if (content.Contains("Subject")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IJsonInputSchemaMappingInternal)this).Subject = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IJsonFieldWithDefault) content.GetValueForProperty("Subject",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IJsonInputSchemaMappingInternal)this).Subject, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.JsonFieldWithDefaultTypeConverter.ConvertFrom); + } + if (content.Contains("DataVersion")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IJsonInputSchemaMappingInternal)this).DataVersion = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IJsonFieldWithDefault) content.GetValueForProperty("DataVersion",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IJsonInputSchemaMappingInternal)this).DataVersion, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.JsonFieldWithDefaultTypeConverter.ConvertFrom); + } + if (content.Contains("IdSourceField")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IJsonInputSchemaMappingInternal)this).IdSourceField = (string) content.GetValueForProperty("IdSourceField",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IJsonInputSchemaMappingInternal)this).IdSourceField, global::System.Convert.ToString); + } + if (content.Contains("TopicSourceField")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IJsonInputSchemaMappingInternal)this).TopicSourceField = (string) content.GetValueForProperty("TopicSourceField",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IJsonInputSchemaMappingInternal)this).TopicSourceField, global::System.Convert.ToString); + } + if (content.Contains("EventTimeSourceField")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IJsonInputSchemaMappingInternal)this).EventTimeSourceField = (string) content.GetValueForProperty("EventTimeSourceField",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IJsonInputSchemaMappingInternal)this).EventTimeSourceField, global::System.Convert.ToString); + } + if (content.Contains("EventTypeSourceField")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IJsonInputSchemaMappingInternal)this).EventTypeSourceField = (string) content.GetValueForProperty("EventTypeSourceField",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IJsonInputSchemaMappingInternal)this).EventTypeSourceField, global::System.Convert.ToString); + } + if (content.Contains("EventTypeDefaultValue")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IJsonInputSchemaMappingInternal)this).EventTypeDefaultValue = (string) content.GetValueForProperty("EventTypeDefaultValue",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IJsonInputSchemaMappingInternal)this).EventTypeDefaultValue, global::System.Convert.ToString); + } + if (content.Contains("SubjectSourceField")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IJsonInputSchemaMappingInternal)this).SubjectSourceField = (string) content.GetValueForProperty("SubjectSourceField",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IJsonInputSchemaMappingInternal)this).SubjectSourceField, global::System.Convert.ToString); + } + if (content.Contains("SubjectDefaultValue")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IJsonInputSchemaMappingInternal)this).SubjectDefaultValue = (string) content.GetValueForProperty("SubjectDefaultValue",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IJsonInputSchemaMappingInternal)this).SubjectDefaultValue, global::System.Convert.ToString); + } + if (content.Contains("DataVersionSourceField")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IJsonInputSchemaMappingInternal)this).DataVersionSourceField = (string) content.GetValueForProperty("DataVersionSourceField",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IJsonInputSchemaMappingInternal)this).DataVersionSourceField, global::System.Convert.ToString); + } + if (content.Contains("DataVersionDefaultValue")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IJsonInputSchemaMappingInternal)this).DataVersionDefaultValue = (string) content.GetValueForProperty("DataVersionDefaultValue",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IJsonInputSchemaMappingInternal)this).DataVersionDefaultValue, 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.EventGrid.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// This enables publishing to Event Grid using a custom input schema. This can be used to map properties from a custom input + /// JSON schema to the Event Grid event schema. + [System.ComponentModel.TypeConverter(typeof(JsonInputSchemaMappingTypeConverter))] + public partial interface IJsonInputSchemaMapping + + { + + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/JsonInputSchemaMapping.TypeConverter.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/JsonInputSchemaMapping.TypeConverter.cs new file mode 100644 index 000000000000..c31c51c13c3f --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/JsonInputSchemaMapping.TypeConverter.cs @@ -0,0 +1,147 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class JsonInputSchemaMappingTypeConverter : global::System.Management.Automation.PSTypeConverter + { + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false. + /// + public override bool CanConvertFrom(object sourceValue, global::System.Type destinationType) => CanConvertFrom(sourceValue); + + /// + /// Determines if the converter can convert the parameter to the . + /// + /// the instance to check if it can be converted to the type. + /// + /// true if the instance could be converted to a type, otherwise false + /// + public static bool CanConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return true; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + // we say yest to PSObjects + return true; + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + // we say yest to Hashtables/dictionaries + return true; + } + try + { + if (null != sourceValue.ToJsonString()) + { + return true; + } + } + catch + { + // Not one of our objects + } + try + { + string text = sourceValue.ToString()?.Trim(); + return true == text?.StartsWith("{") && true == text?.EndsWith("}") && Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonType.Object; + } + catch + { + // Doesn't look like it can be treated as JSON + } + return false; + } + + /// + /// Determines if the parameter can be converted to the parameter + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false + /// + public override bool CanConvertTo(object sourceValue, global::System.Type destinationType) => false; + + /// + /// Converts the parameter to the parameter using and + /// + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// + /// an instance of , or null if there is no suitable conversion. + /// + public override object ConvertFrom(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => ConvertFrom(sourceValue); + + /// + /// Converts the parameter to the parameter using and + /// + /// the value to convert into an instance of . + /// + /// an instance of , or null if there is no suitable conversion. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IJsonInputSchemaMapping ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IJsonInputSchemaMapping).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return JsonInputSchemaMapping.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return JsonInputSchemaMapping.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return JsonInputSchemaMapping.DeserializeFromDictionary(sourceValue); + } + return null; + } + + /// NotImplemented -- this will return null + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// will always return null. + public override object ConvertTo(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => null; + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/JsonInputSchemaMapping.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/JsonInputSchemaMapping.cs new file mode 100644 index 000000000000..7727146170cf --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/JsonInputSchemaMapping.cs @@ -0,0 +1,296 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Extensions; + + /// + /// This enables publishing to Event Grid using a custom input schema. This can be used to map properties from a custom input + /// JSON schema to the Event Grid event schema. + /// + public partial class JsonInputSchemaMapping : + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IJsonInputSchemaMapping, + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IJsonInputSchemaMappingInternal, + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IValidates + { + /// + /// Backing field for Inherited model + /// + private Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IInputSchemaMapping __inputSchemaMapping = new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.InputSchemaMapping(); + + /// + /// The default value to be used for mapping when a SourceField is not provided or if there's no property with the specified + /// name in the published JSON event payload. + /// + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Inlined)] + public string DataVersionDefaultValue { get => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IJsonInputSchemaMappingPropertiesInternal)Property).DataVersionDefaultValue; set => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IJsonInputSchemaMappingPropertiesInternal)Property).DataVersionDefaultValue = value ?? null; } + + /// + /// Name of a field in the input event schema that's to be used as the source of a mapping. + /// + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Inlined)] + public string DataVersionSourceField { get => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IJsonInputSchemaMappingPropertiesInternal)Property).DataVersionSourceField; set => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IJsonInputSchemaMappingPropertiesInternal)Property).DataVersionSourceField = value ?? null; } + + /// + /// Name of a field in the input event schema that's to be used as the source of a mapping. + /// + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Inlined)] + public string EventTimeSourceField { get => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IJsonInputSchemaMappingPropertiesInternal)Property).EventTimeSourceField; set => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IJsonInputSchemaMappingPropertiesInternal)Property).EventTimeSourceField = value ?? null; } + + /// + /// The default value to be used for mapping when a SourceField is not provided or if there's no property with the specified + /// name in the published JSON event payload. + /// + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Inlined)] + public string EventTypeDefaultValue { get => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IJsonInputSchemaMappingPropertiesInternal)Property).EventTypeDefaultValue; set => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IJsonInputSchemaMappingPropertiesInternal)Property).EventTypeDefaultValue = value ?? null; } + + /// + /// Name of a field in the input event schema that's to be used as the source of a mapping. + /// + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Inlined)] + public string EventTypeSourceField { get => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IJsonInputSchemaMappingPropertiesInternal)Property).EventTypeSourceField; set => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IJsonInputSchemaMappingPropertiesInternal)Property).EventTypeSourceField = value ?? null; } + + /// + /// Name of a field in the input event schema that's to be used as the source of a mapping. + /// + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Inlined)] + public string IdSourceField { get => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IJsonInputSchemaMappingPropertiesInternal)Property).IdSourceField; set => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IJsonInputSchemaMappingPropertiesInternal)Property).IdSourceField = value ?? null; } + + /// Internal Acessors for Type + string Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IInputSchemaMappingInternal.Type { get => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IInputSchemaMappingInternal)__inputSchemaMapping).Type; set => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IInputSchemaMappingInternal)__inputSchemaMapping).Type = value; } + + /// Internal Acessors for DataVersion + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IJsonFieldWithDefault Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IJsonInputSchemaMappingInternal.DataVersion { get => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IJsonInputSchemaMappingPropertiesInternal)Property).DataVersion; set => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IJsonInputSchemaMappingPropertiesInternal)Property).DataVersion = value; } + + /// Internal Acessors for EventTime + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IJsonField Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IJsonInputSchemaMappingInternal.EventTime { get => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IJsonInputSchemaMappingPropertiesInternal)Property).EventTime; set => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IJsonInputSchemaMappingPropertiesInternal)Property).EventTime = value; } + + /// Internal Acessors for EventType + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IJsonFieldWithDefault Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IJsonInputSchemaMappingInternal.EventType { get => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IJsonInputSchemaMappingPropertiesInternal)Property).EventType; set => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IJsonInputSchemaMappingPropertiesInternal)Property).EventType = value; } + + /// Internal Acessors for Id + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IJsonField Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IJsonInputSchemaMappingInternal.Id { get => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IJsonInputSchemaMappingPropertiesInternal)Property).Id; set => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IJsonInputSchemaMappingPropertiesInternal)Property).Id = value; } + + /// Internal Acessors for Property + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IJsonInputSchemaMappingProperties Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IJsonInputSchemaMappingInternal.Property { get => (this._property = this._property ?? new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.JsonInputSchemaMappingProperties()); set { {_property = value;} } } + + /// Internal Acessors for Subject + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IJsonFieldWithDefault Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IJsonInputSchemaMappingInternal.Subject { get => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IJsonInputSchemaMappingPropertiesInternal)Property).Subject; set => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IJsonInputSchemaMappingPropertiesInternal)Property).Subject = value; } + + /// Internal Acessors for Topic + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IJsonField Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IJsonInputSchemaMappingInternal.Topic { get => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IJsonInputSchemaMappingPropertiesInternal)Property).Topic; set => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IJsonInputSchemaMappingPropertiesInternal)Property).Topic = value; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IJsonInputSchemaMappingProperties _property; + + /// JSON Properties of the input schema mapping + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Owned)] + internal Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IJsonInputSchemaMappingProperties Property { get => (this._property = this._property ?? new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.JsonInputSchemaMappingProperties()); set => this._property = value; } + + /// + /// The default value to be used for mapping when a SourceField is not provided or if there's no property with the specified + /// name in the published JSON event payload. + /// + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Inlined)] + public string SubjectDefaultValue { get => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IJsonInputSchemaMappingPropertiesInternal)Property).SubjectDefaultValue; set => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IJsonInputSchemaMappingPropertiesInternal)Property).SubjectDefaultValue = value ?? null; } + + /// + /// Name of a field in the input event schema that's to be used as the source of a mapping. + /// + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Inlined)] + public string SubjectSourceField { get => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IJsonInputSchemaMappingPropertiesInternal)Property).SubjectSourceField; set => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IJsonInputSchemaMappingPropertiesInternal)Property).SubjectSourceField = value ?? null; } + + /// + /// Name of a field in the input event schema that's to be used as the source of a mapping. + /// + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Inlined)] + public string TopicSourceField { get => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IJsonInputSchemaMappingPropertiesInternal)Property).TopicSourceField; set => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IJsonInputSchemaMappingPropertiesInternal)Property).TopicSourceField = value ?? null; } + + /// Type of the custom mapping + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Inherited)] + public string Type { get => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IInputSchemaMappingInternal)__inputSchemaMapping).Type; } + + /// Creates an new instance. + public JsonInputSchemaMapping() + { + + } + + /// Validates that this object meets the validation criteria. + /// an instance that will receive validation + /// events. + /// + /// A that will be complete when validation is completed. + /// + public async global::System.Threading.Tasks.Task Validate(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener eventListener) + { + await eventListener.AssertNotNull(nameof(__inputSchemaMapping), __inputSchemaMapping); + await eventListener.AssertObjectIsValid(nameof(__inputSchemaMapping), __inputSchemaMapping); + } + } + /// This enables publishing to Event Grid using a custom input schema. This can be used to map properties from a custom input + /// JSON schema to the Event Grid event schema. + public partial interface IJsonInputSchemaMapping : + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IJsonSerializable, + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IInputSchemaMapping + { + /// + /// The default value to be used for mapping when a SourceField is not provided or if there's no property with the specified + /// name in the published JSON event payload. + /// + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The default value to be used for mapping when a SourceField is not provided or if there's no property with the specified name in the published JSON event payload.", + SerializedName = @"defaultValue", + PossibleTypes = new [] { typeof(string) })] + string DataVersionDefaultValue { get; set; } + /// + /// Name of a field in the input event schema that's to be used as the source of a mapping. + /// + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Name of a field in the input event schema that's to be used as the source of a mapping.", + SerializedName = @"sourceField", + PossibleTypes = new [] { typeof(string) })] + string DataVersionSourceField { get; set; } + /// + /// Name of a field in the input event schema that's to be used as the source of a mapping. + /// + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Name of a field in the input event schema that's to be used as the source of a mapping.", + SerializedName = @"sourceField", + PossibleTypes = new [] { typeof(string) })] + string EventTimeSourceField { get; set; } + /// + /// The default value to be used for mapping when a SourceField is not provided or if there's no property with the specified + /// name in the published JSON event payload. + /// + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The default value to be used for mapping when a SourceField is not provided or if there's no property with the specified name in the published JSON event payload.", + SerializedName = @"defaultValue", + PossibleTypes = new [] { typeof(string) })] + string EventTypeDefaultValue { get; set; } + /// + /// Name of a field in the input event schema that's to be used as the source of a mapping. + /// + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Name of a field in the input event schema that's to be used as the source of a mapping.", + SerializedName = @"sourceField", + PossibleTypes = new [] { typeof(string) })] + string EventTypeSourceField { get; set; } + /// + /// Name of a field in the input event schema that's to be used as the source of a mapping. + /// + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Name of a field in the input event schema that's to be used as the source of a mapping.", + SerializedName = @"sourceField", + PossibleTypes = new [] { typeof(string) })] + string IdSourceField { get; set; } + /// + /// The default value to be used for mapping when a SourceField is not provided or if there's no property with the specified + /// name in the published JSON event payload. + /// + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The default value to be used for mapping when a SourceField is not provided or if there's no property with the specified name in the published JSON event payload.", + SerializedName = @"defaultValue", + PossibleTypes = new [] { typeof(string) })] + string SubjectDefaultValue { get; set; } + /// + /// Name of a field in the input event schema that's to be used as the source of a mapping. + /// + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Name of a field in the input event schema that's to be used as the source of a mapping.", + SerializedName = @"sourceField", + PossibleTypes = new [] { typeof(string) })] + string SubjectSourceField { get; set; } + /// + /// Name of a field in the input event schema that's to be used as the source of a mapping. + /// + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Name of a field in the input event schema that's to be used as the source of a mapping.", + SerializedName = @"sourceField", + PossibleTypes = new [] { typeof(string) })] + string TopicSourceField { get; set; } + + } + /// This enables publishing to Event Grid using a custom input schema. This can be used to map properties from a custom input + /// JSON schema to the Event Grid event schema. + internal partial interface IJsonInputSchemaMappingInternal : + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IInputSchemaMappingInternal + { + /// The mapping information for the DataVersion property of the Event Grid Event. + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IJsonFieldWithDefault DataVersion { get; set; } + /// + /// The default value to be used for mapping when a SourceField is not provided or if there's no property with the specified + /// name in the published JSON event payload. + /// + string DataVersionDefaultValue { get; set; } + /// + /// Name of a field in the input event schema that's to be used as the source of a mapping. + /// + string DataVersionSourceField { get; set; } + /// The mapping information for the EventTime property of the Event Grid Event. + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IJsonField EventTime { get; set; } + /// + /// Name of a field in the input event schema that's to be used as the source of a mapping. + /// + string EventTimeSourceField { get; set; } + /// The mapping information for the EventType property of the Event Grid Event. + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IJsonFieldWithDefault EventType { get; set; } + /// + /// The default value to be used for mapping when a SourceField is not provided or if there's no property with the specified + /// name in the published JSON event payload. + /// + string EventTypeDefaultValue { get; set; } + /// + /// Name of a field in the input event schema that's to be used as the source of a mapping. + /// + string EventTypeSourceField { get; set; } + /// The mapping information for the Id property of the Event Grid Event. + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IJsonField Id { get; set; } + /// + /// Name of a field in the input event schema that's to be used as the source of a mapping. + /// + string IdSourceField { get; set; } + /// JSON Properties of the input schema mapping + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IJsonInputSchemaMappingProperties Property { get; set; } + /// The mapping information for the Subject property of the Event Grid Event. + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IJsonFieldWithDefault Subject { get; set; } + /// + /// The default value to be used for mapping when a SourceField is not provided or if there's no property with the specified + /// name in the published JSON event payload. + /// + string SubjectDefaultValue { get; set; } + /// + /// Name of a field in the input event schema that's to be used as the source of a mapping. + /// + string SubjectSourceField { get; set; } + /// The mapping information for the Topic property of the Event Grid Event. + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IJsonField Topic { get; set; } + /// + /// Name of a field in the input event schema that's to be used as the source of a mapping. + /// + string TopicSourceField { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/JsonInputSchemaMapping.json.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/JsonInputSchemaMapping.json.cs new file mode 100644 index 000000000000..e41469815e07 --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/JsonInputSchemaMapping.json.cs @@ -0,0 +1,111 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Extensions; + + /// + /// This enables publishing to Event Grid using a custom input schema. This can be used to map properties from a custom input + /// JSON schema to the Event Grid event schema. + /// + public partial class JsonInputSchemaMapping + { + + /// + /// AfterFromJson will be called after the json deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JsonNode that should be deserialized into this object. + + partial void AfterFromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json erialization has finished, allowing customization of the before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JSON container that the serialization result will be placed in. + + partial void AfterToJson(ref Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject container); + + /// + /// BeforeFromJson will be called before the json deserialization has commenced, allowing complete customization of + /// the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JsonNode that should be deserialized into this object. + /// Determines if the rest of the deserialization should be processed, or if the method should return + /// instantly. + + partial void BeforeFromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject json, ref bool returnNow); + + /// + /// BeforeToJson will be called before the json serialization has commenced, allowing complete customization of the + /// object before it is serialized. + /// If you wish to disable the default serialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JSON container that the serialization result will be placed in. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeToJson(ref Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IJsonInputSchemaMapping. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IJsonInputSchemaMapping. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IJsonInputSchemaMapping FromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject json ? new JsonInputSchemaMapping(json) : null; + } + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject instance to deserialize from. + internal JsonInputSchemaMapping(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject json) + { + bool returnNow = false; + BeforeFromJson(json, ref returnNow); + if (returnNow) + { + return; + } + __inputSchemaMapping = new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.InputSchemaMapping(json); + {_property = If( json?.PropertyT("properties"), out var __jsonProperties) ? Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.JsonInputSchemaMappingProperties.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.EventGrid.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject(); + + bool returnNow = false; + BeforeToJson(ref container, ref returnNow); + if (returnNow) + { + return container; + } + __inputSchemaMapping?.ToJson(container, serializationMode); + AddIf( null != this._property ? (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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/eventgrid/generated/api/Models/Api20211015Preview/JsonInputSchemaMappingProperties.PowerShell.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/JsonInputSchemaMappingProperties.PowerShell.cs new file mode 100644 index 000000000000..d6763c02d983 --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/JsonInputSchemaMappingProperties.PowerShell.cs @@ -0,0 +1,260 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell; + + /// + /// This can be used to map properties of a source schema (or default values, for certain supported properties) to properties + /// of the EventGridEvent schema. + /// + [System.ComponentModel.TypeConverter(typeof(JsonInputSchemaMappingPropertiesTypeConverter))] + public partial class JsonInputSchemaMappingProperties + { + + /// + /// AfterDeserializeDictionary will be called after the deserialization has finished, allowing customization of the + /// object before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Collections.IDictionary content that should be used. + + partial void AfterDeserializeDictionary(global::System.Collections.IDictionary content); + + /// + /// AfterDeserializePSObject will be called after the deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Management.Automation.PSObject content that should be used. + + partial void AfterDeserializePSObject(global::System.Management.Automation.PSObject content); + + /// + /// BeforeDeserializeDictionary will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Collections.IDictionary content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializeDictionary(global::System.Collections.IDictionary content, ref bool returnNow); + + /// + /// BeforeDeserializePSObject will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializePSObject(global::System.Management.Automation.PSObject content, ref bool returnNow); + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IJsonInputSchemaMappingProperties DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new JsonInputSchemaMappingProperties(content); + } + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IJsonInputSchemaMappingProperties DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new JsonInputSchemaMappingProperties(content); + } + + /// + /// Creates a new instance of , deserializing the content from a json string. + /// + /// a string containing a JSON serialized instance of this model. + /// an instance of the model class. + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IJsonInputSchemaMappingProperties FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode.Parse(jsonText)); + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + internal JsonInputSchemaMappingProperties(global::System.Collections.IDictionary content) + { + bool returnNow = false; + BeforeDeserializeDictionary(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("Id")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IJsonInputSchemaMappingPropertiesInternal)this).Id = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IJsonField) content.GetValueForProperty("Id",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IJsonInputSchemaMappingPropertiesInternal)this).Id, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.JsonFieldTypeConverter.ConvertFrom); + } + if (content.Contains("Topic")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IJsonInputSchemaMappingPropertiesInternal)this).Topic = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IJsonField) content.GetValueForProperty("Topic",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IJsonInputSchemaMappingPropertiesInternal)this).Topic, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.JsonFieldTypeConverter.ConvertFrom); + } + if (content.Contains("EventTime")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IJsonInputSchemaMappingPropertiesInternal)this).EventTime = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IJsonField) content.GetValueForProperty("EventTime",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IJsonInputSchemaMappingPropertiesInternal)this).EventTime, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.JsonFieldTypeConverter.ConvertFrom); + } + if (content.Contains("EventType")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IJsonInputSchemaMappingPropertiesInternal)this).EventType = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IJsonFieldWithDefault) content.GetValueForProperty("EventType",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IJsonInputSchemaMappingPropertiesInternal)this).EventType, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.JsonFieldWithDefaultTypeConverter.ConvertFrom); + } + if (content.Contains("Subject")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IJsonInputSchemaMappingPropertiesInternal)this).Subject = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IJsonFieldWithDefault) content.GetValueForProperty("Subject",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IJsonInputSchemaMappingPropertiesInternal)this).Subject, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.JsonFieldWithDefaultTypeConverter.ConvertFrom); + } + if (content.Contains("DataVersion")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IJsonInputSchemaMappingPropertiesInternal)this).DataVersion = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IJsonFieldWithDefault) content.GetValueForProperty("DataVersion",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IJsonInputSchemaMappingPropertiesInternal)this).DataVersion, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.JsonFieldWithDefaultTypeConverter.ConvertFrom); + } + if (content.Contains("IdSourceField")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IJsonInputSchemaMappingPropertiesInternal)this).IdSourceField = (string) content.GetValueForProperty("IdSourceField",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IJsonInputSchemaMappingPropertiesInternal)this).IdSourceField, global::System.Convert.ToString); + } + if (content.Contains("TopicSourceField")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IJsonInputSchemaMappingPropertiesInternal)this).TopicSourceField = (string) content.GetValueForProperty("TopicSourceField",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IJsonInputSchemaMappingPropertiesInternal)this).TopicSourceField, global::System.Convert.ToString); + } + if (content.Contains("EventTimeSourceField")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IJsonInputSchemaMappingPropertiesInternal)this).EventTimeSourceField = (string) content.GetValueForProperty("EventTimeSourceField",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IJsonInputSchemaMappingPropertiesInternal)this).EventTimeSourceField, global::System.Convert.ToString); + } + if (content.Contains("EventTypeSourceField")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IJsonInputSchemaMappingPropertiesInternal)this).EventTypeSourceField = (string) content.GetValueForProperty("EventTypeSourceField",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IJsonInputSchemaMappingPropertiesInternal)this).EventTypeSourceField, global::System.Convert.ToString); + } + if (content.Contains("EventTypeDefaultValue")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IJsonInputSchemaMappingPropertiesInternal)this).EventTypeDefaultValue = (string) content.GetValueForProperty("EventTypeDefaultValue",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IJsonInputSchemaMappingPropertiesInternal)this).EventTypeDefaultValue, global::System.Convert.ToString); + } + if (content.Contains("SubjectSourceField")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IJsonInputSchemaMappingPropertiesInternal)this).SubjectSourceField = (string) content.GetValueForProperty("SubjectSourceField",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IJsonInputSchemaMappingPropertiesInternal)this).SubjectSourceField, global::System.Convert.ToString); + } + if (content.Contains("SubjectDefaultValue")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IJsonInputSchemaMappingPropertiesInternal)this).SubjectDefaultValue = (string) content.GetValueForProperty("SubjectDefaultValue",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IJsonInputSchemaMappingPropertiesInternal)this).SubjectDefaultValue, global::System.Convert.ToString); + } + if (content.Contains("DataVersionSourceField")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IJsonInputSchemaMappingPropertiesInternal)this).DataVersionSourceField = (string) content.GetValueForProperty("DataVersionSourceField",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IJsonInputSchemaMappingPropertiesInternal)this).DataVersionSourceField, global::System.Convert.ToString); + } + if (content.Contains("DataVersionDefaultValue")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IJsonInputSchemaMappingPropertiesInternal)this).DataVersionDefaultValue = (string) content.GetValueForProperty("DataVersionDefaultValue",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IJsonInputSchemaMappingPropertiesInternal)this).DataVersionDefaultValue, global::System.Convert.ToString); + } + AfterDeserializeDictionary(content); + } + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + internal JsonInputSchemaMappingProperties(global::System.Management.Automation.PSObject content) + { + bool returnNow = false; + BeforeDeserializePSObject(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("Id")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IJsonInputSchemaMappingPropertiesInternal)this).Id = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IJsonField) content.GetValueForProperty("Id",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IJsonInputSchemaMappingPropertiesInternal)this).Id, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.JsonFieldTypeConverter.ConvertFrom); + } + if (content.Contains("Topic")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IJsonInputSchemaMappingPropertiesInternal)this).Topic = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IJsonField) content.GetValueForProperty("Topic",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IJsonInputSchemaMappingPropertiesInternal)this).Topic, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.JsonFieldTypeConverter.ConvertFrom); + } + if (content.Contains("EventTime")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IJsonInputSchemaMappingPropertiesInternal)this).EventTime = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IJsonField) content.GetValueForProperty("EventTime",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IJsonInputSchemaMappingPropertiesInternal)this).EventTime, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.JsonFieldTypeConverter.ConvertFrom); + } + if (content.Contains("EventType")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IJsonInputSchemaMappingPropertiesInternal)this).EventType = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IJsonFieldWithDefault) content.GetValueForProperty("EventType",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IJsonInputSchemaMappingPropertiesInternal)this).EventType, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.JsonFieldWithDefaultTypeConverter.ConvertFrom); + } + if (content.Contains("Subject")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IJsonInputSchemaMappingPropertiesInternal)this).Subject = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IJsonFieldWithDefault) content.GetValueForProperty("Subject",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IJsonInputSchemaMappingPropertiesInternal)this).Subject, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.JsonFieldWithDefaultTypeConverter.ConvertFrom); + } + if (content.Contains("DataVersion")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IJsonInputSchemaMappingPropertiesInternal)this).DataVersion = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IJsonFieldWithDefault) content.GetValueForProperty("DataVersion",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IJsonInputSchemaMappingPropertiesInternal)this).DataVersion, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.JsonFieldWithDefaultTypeConverter.ConvertFrom); + } + if (content.Contains("IdSourceField")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IJsonInputSchemaMappingPropertiesInternal)this).IdSourceField = (string) content.GetValueForProperty("IdSourceField",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IJsonInputSchemaMappingPropertiesInternal)this).IdSourceField, global::System.Convert.ToString); + } + if (content.Contains("TopicSourceField")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IJsonInputSchemaMappingPropertiesInternal)this).TopicSourceField = (string) content.GetValueForProperty("TopicSourceField",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IJsonInputSchemaMappingPropertiesInternal)this).TopicSourceField, global::System.Convert.ToString); + } + if (content.Contains("EventTimeSourceField")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IJsonInputSchemaMappingPropertiesInternal)this).EventTimeSourceField = (string) content.GetValueForProperty("EventTimeSourceField",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IJsonInputSchemaMappingPropertiesInternal)this).EventTimeSourceField, global::System.Convert.ToString); + } + if (content.Contains("EventTypeSourceField")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IJsonInputSchemaMappingPropertiesInternal)this).EventTypeSourceField = (string) content.GetValueForProperty("EventTypeSourceField",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IJsonInputSchemaMappingPropertiesInternal)this).EventTypeSourceField, global::System.Convert.ToString); + } + if (content.Contains("EventTypeDefaultValue")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IJsonInputSchemaMappingPropertiesInternal)this).EventTypeDefaultValue = (string) content.GetValueForProperty("EventTypeDefaultValue",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IJsonInputSchemaMappingPropertiesInternal)this).EventTypeDefaultValue, global::System.Convert.ToString); + } + if (content.Contains("SubjectSourceField")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IJsonInputSchemaMappingPropertiesInternal)this).SubjectSourceField = (string) content.GetValueForProperty("SubjectSourceField",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IJsonInputSchemaMappingPropertiesInternal)this).SubjectSourceField, global::System.Convert.ToString); + } + if (content.Contains("SubjectDefaultValue")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IJsonInputSchemaMappingPropertiesInternal)this).SubjectDefaultValue = (string) content.GetValueForProperty("SubjectDefaultValue",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IJsonInputSchemaMappingPropertiesInternal)this).SubjectDefaultValue, global::System.Convert.ToString); + } + if (content.Contains("DataVersionSourceField")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IJsonInputSchemaMappingPropertiesInternal)this).DataVersionSourceField = (string) content.GetValueForProperty("DataVersionSourceField",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IJsonInputSchemaMappingPropertiesInternal)this).DataVersionSourceField, global::System.Convert.ToString); + } + if (content.Contains("DataVersionDefaultValue")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IJsonInputSchemaMappingPropertiesInternal)this).DataVersionDefaultValue = (string) content.GetValueForProperty("DataVersionDefaultValue",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IJsonInputSchemaMappingPropertiesInternal)this).DataVersionDefaultValue, 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.EventGrid.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// This can be used to map properties of a source schema (or default values, for certain supported properties) to properties + /// of the EventGridEvent schema. + [System.ComponentModel.TypeConverter(typeof(JsonInputSchemaMappingPropertiesTypeConverter))] + public partial interface IJsonInputSchemaMappingProperties + + { + + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/JsonInputSchemaMappingProperties.TypeConverter.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/JsonInputSchemaMappingProperties.TypeConverter.cs new file mode 100644 index 000000000000..6e76e37f241a --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/JsonInputSchemaMappingProperties.TypeConverter.cs @@ -0,0 +1,147 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class JsonInputSchemaMappingPropertiesTypeConverter : global::System.Management.Automation.PSTypeConverter + { + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false. + /// + public override bool CanConvertFrom(object sourceValue, global::System.Type destinationType) => CanConvertFrom(sourceValue); + + /// + /// Determines if the converter can convert the parameter to the . + /// + /// the instance to check if it can be converted to the type. + /// + /// true if the instance could be converted to a type, otherwise false + /// + public static bool CanConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return true; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + // we say yest to PSObjects + return true; + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + // we say yest to Hashtables/dictionaries + return true; + } + try + { + if (null != sourceValue.ToJsonString()) + { + return true; + } + } + catch + { + // Not one of our objects + } + try + { + string text = sourceValue.ToString()?.Trim(); + return true == text?.StartsWith("{") && true == text?.EndsWith("}") && Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonType.Object; + } + catch + { + // Doesn't look like it can be treated as JSON + } + return false; + } + + /// + /// Determines if the parameter can be converted to the parameter + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false + /// + public override bool CanConvertTo(object sourceValue, global::System.Type destinationType) => false; + + /// + /// Converts the parameter to the parameter using and + /// + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// + /// an instance of , or null if there is no suitable conversion. + /// + public override object ConvertFrom(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => ConvertFrom(sourceValue); + + /// + /// Converts the parameter to the parameter using and + /// + /// the value to convert into an instance of . + /// + /// an instance of , or null if there is no suitable conversion. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IJsonInputSchemaMappingProperties ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IJsonInputSchemaMappingProperties).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return JsonInputSchemaMappingProperties.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return JsonInputSchemaMappingProperties.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return JsonInputSchemaMappingProperties.DeserializeFromDictionary(sourceValue); + } + return null; + } + + /// NotImplemented -- this will return null + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// will always return null. + public override object ConvertTo(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => null; + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/JsonInputSchemaMappingProperties.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/JsonInputSchemaMappingProperties.cs new file mode 100644 index 000000000000..013db818a7cc --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/JsonInputSchemaMappingProperties.cs @@ -0,0 +1,300 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Extensions; + + /// + /// This can be used to map properties of a source schema (or default values, for certain supported properties) to properties + /// of the EventGridEvent schema. + /// + public partial class JsonInputSchemaMappingProperties : + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IJsonInputSchemaMappingProperties, + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IJsonInputSchemaMappingPropertiesInternal + { + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IJsonFieldWithDefault _dataVersion; + + /// The mapping information for the DataVersion property of the Event Grid Event. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Owned)] + internal Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IJsonFieldWithDefault DataVersion { get => (this._dataVersion = this._dataVersion ?? new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.JsonFieldWithDefault()); set => this._dataVersion = value; } + + /// + /// The default value to be used for mapping when a SourceField is not provided or if there's no property with the specified + /// name in the published JSON event payload. + /// + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Inlined)] + public string DataVersionDefaultValue { get => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IJsonFieldWithDefaultInternal)DataVersion).DefaultValue; set => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IJsonFieldWithDefaultInternal)DataVersion).DefaultValue = value ?? null; } + + /// + /// Name of a field in the input event schema that's to be used as the source of a mapping. + /// + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Inlined)] + public string DataVersionSourceField { get => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IJsonFieldWithDefaultInternal)DataVersion).SourceField; set => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IJsonFieldWithDefaultInternal)DataVersion).SourceField = value ?? null; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IJsonField _eventTime; + + /// The mapping information for the EventTime property of the Event Grid Event. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Owned)] + internal Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IJsonField EventTime { get => (this._eventTime = this._eventTime ?? new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.JsonField()); set => this._eventTime = value; } + + /// + /// Name of a field in the input event schema that's to be used as the source of a mapping. + /// + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Inlined)] + public string EventTimeSourceField { get => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IJsonFieldInternal)EventTime).SourceField; set => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IJsonFieldInternal)EventTime).SourceField = value ?? null; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IJsonFieldWithDefault _eventType; + + /// The mapping information for the EventType property of the Event Grid Event. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Owned)] + internal Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IJsonFieldWithDefault EventType { get => (this._eventType = this._eventType ?? new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.JsonFieldWithDefault()); set => this._eventType = value; } + + /// + /// The default value to be used for mapping when a SourceField is not provided or if there's no property with the specified + /// name in the published JSON event payload. + /// + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Inlined)] + public string EventTypeDefaultValue { get => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IJsonFieldWithDefaultInternal)EventType).DefaultValue; set => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IJsonFieldWithDefaultInternal)EventType).DefaultValue = value ?? null; } + + /// + /// Name of a field in the input event schema that's to be used as the source of a mapping. + /// + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Inlined)] + public string EventTypeSourceField { get => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IJsonFieldWithDefaultInternal)EventType).SourceField; set => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IJsonFieldWithDefaultInternal)EventType).SourceField = value ?? null; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IJsonField _id; + + /// The mapping information for the Id property of the Event Grid Event. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Owned)] + internal Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IJsonField Id { get => (this._id = this._id ?? new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.JsonField()); set => this._id = value; } + + /// + /// Name of a field in the input event schema that's to be used as the source of a mapping. + /// + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Inlined)] + public string IdSourceField { get => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IJsonFieldInternal)Id).SourceField; set => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IJsonFieldInternal)Id).SourceField = value ?? null; } + + /// Internal Acessors for DataVersion + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IJsonFieldWithDefault Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IJsonInputSchemaMappingPropertiesInternal.DataVersion { get => (this._dataVersion = this._dataVersion ?? new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.JsonFieldWithDefault()); set { {_dataVersion = value;} } } + + /// Internal Acessors for EventTime + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IJsonField Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IJsonInputSchemaMappingPropertiesInternal.EventTime { get => (this._eventTime = this._eventTime ?? new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.JsonField()); set { {_eventTime = value;} } } + + /// Internal Acessors for EventType + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IJsonFieldWithDefault Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IJsonInputSchemaMappingPropertiesInternal.EventType { get => (this._eventType = this._eventType ?? new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.JsonFieldWithDefault()); set { {_eventType = value;} } } + + /// Internal Acessors for Id + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IJsonField Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IJsonInputSchemaMappingPropertiesInternal.Id { get => (this._id = this._id ?? new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.JsonField()); set { {_id = value;} } } + + /// Internal Acessors for Subject + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IJsonFieldWithDefault Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IJsonInputSchemaMappingPropertiesInternal.Subject { get => (this._subject = this._subject ?? new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.JsonFieldWithDefault()); set { {_subject = value;} } } + + /// Internal Acessors for Topic + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IJsonField Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IJsonInputSchemaMappingPropertiesInternal.Topic { get => (this._topic = this._topic ?? new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.JsonField()); set { {_topic = value;} } } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IJsonFieldWithDefault _subject; + + /// The mapping information for the Subject property of the Event Grid Event. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Owned)] + internal Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IJsonFieldWithDefault Subject { get => (this._subject = this._subject ?? new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.JsonFieldWithDefault()); set => this._subject = value; } + + /// + /// The default value to be used for mapping when a SourceField is not provided or if there's no property with the specified + /// name in the published JSON event payload. + /// + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Inlined)] + public string SubjectDefaultValue { get => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IJsonFieldWithDefaultInternal)Subject).DefaultValue; set => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IJsonFieldWithDefaultInternal)Subject).DefaultValue = value ?? null; } + + /// + /// Name of a field in the input event schema that's to be used as the source of a mapping. + /// + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Inlined)] + public string SubjectSourceField { get => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IJsonFieldWithDefaultInternal)Subject).SourceField; set => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IJsonFieldWithDefaultInternal)Subject).SourceField = value ?? null; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IJsonField _topic; + + /// The mapping information for the Topic property of the Event Grid Event. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Owned)] + internal Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IJsonField Topic { get => (this._topic = this._topic ?? new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.JsonField()); set => this._topic = value; } + + /// + /// Name of a field in the input event schema that's to be used as the source of a mapping. + /// + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Inlined)] + public string TopicSourceField { get => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IJsonFieldInternal)Topic).SourceField; set => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IJsonFieldInternal)Topic).SourceField = value ?? null; } + + /// Creates an new instance. + public JsonInputSchemaMappingProperties() + { + + } + } + /// This can be used to map properties of a source schema (or default values, for certain supported properties) to properties + /// of the EventGridEvent schema. + public partial interface IJsonInputSchemaMappingProperties : + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IJsonSerializable + { + /// + /// The default value to be used for mapping when a SourceField is not provided or if there's no property with the specified + /// name in the published JSON event payload. + /// + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The default value to be used for mapping when a SourceField is not provided or if there's no property with the specified name in the published JSON event payload.", + SerializedName = @"defaultValue", + PossibleTypes = new [] { typeof(string) })] + string DataVersionDefaultValue { get; set; } + /// + /// Name of a field in the input event schema that's to be used as the source of a mapping. + /// + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Name of a field in the input event schema that's to be used as the source of a mapping.", + SerializedName = @"sourceField", + PossibleTypes = new [] { typeof(string) })] + string DataVersionSourceField { get; set; } + /// + /// Name of a field in the input event schema that's to be used as the source of a mapping. + /// + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Name of a field in the input event schema that's to be used as the source of a mapping.", + SerializedName = @"sourceField", + PossibleTypes = new [] { typeof(string) })] + string EventTimeSourceField { get; set; } + /// + /// The default value to be used for mapping when a SourceField is not provided or if there's no property with the specified + /// name in the published JSON event payload. + /// + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The default value to be used for mapping when a SourceField is not provided or if there's no property with the specified name in the published JSON event payload.", + SerializedName = @"defaultValue", + PossibleTypes = new [] { typeof(string) })] + string EventTypeDefaultValue { get; set; } + /// + /// Name of a field in the input event schema that's to be used as the source of a mapping. + /// + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Name of a field in the input event schema that's to be used as the source of a mapping.", + SerializedName = @"sourceField", + PossibleTypes = new [] { typeof(string) })] + string EventTypeSourceField { get; set; } + /// + /// Name of a field in the input event schema that's to be used as the source of a mapping. + /// + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Name of a field in the input event schema that's to be used as the source of a mapping.", + SerializedName = @"sourceField", + PossibleTypes = new [] { typeof(string) })] + string IdSourceField { get; set; } + /// + /// The default value to be used for mapping when a SourceField is not provided or if there's no property with the specified + /// name in the published JSON event payload. + /// + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The default value to be used for mapping when a SourceField is not provided or if there's no property with the specified name in the published JSON event payload.", + SerializedName = @"defaultValue", + PossibleTypes = new [] { typeof(string) })] + string SubjectDefaultValue { get; set; } + /// + /// Name of a field in the input event schema that's to be used as the source of a mapping. + /// + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Name of a field in the input event schema that's to be used as the source of a mapping.", + SerializedName = @"sourceField", + PossibleTypes = new [] { typeof(string) })] + string SubjectSourceField { get; set; } + /// + /// Name of a field in the input event schema that's to be used as the source of a mapping. + /// + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Name of a field in the input event schema that's to be used as the source of a mapping.", + SerializedName = @"sourceField", + PossibleTypes = new [] { typeof(string) })] + string TopicSourceField { get; set; } + + } + /// This can be used to map properties of a source schema (or default values, for certain supported properties) to properties + /// of the EventGridEvent schema. + internal partial interface IJsonInputSchemaMappingPropertiesInternal + + { + /// The mapping information for the DataVersion property of the Event Grid Event. + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IJsonFieldWithDefault DataVersion { get; set; } + /// + /// The default value to be used for mapping when a SourceField is not provided or if there's no property with the specified + /// name in the published JSON event payload. + /// + string DataVersionDefaultValue { get; set; } + /// + /// Name of a field in the input event schema that's to be used as the source of a mapping. + /// + string DataVersionSourceField { get; set; } + /// The mapping information for the EventTime property of the Event Grid Event. + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IJsonField EventTime { get; set; } + /// + /// Name of a field in the input event schema that's to be used as the source of a mapping. + /// + string EventTimeSourceField { get; set; } + /// The mapping information for the EventType property of the Event Grid Event. + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IJsonFieldWithDefault EventType { get; set; } + /// + /// The default value to be used for mapping when a SourceField is not provided or if there's no property with the specified + /// name in the published JSON event payload. + /// + string EventTypeDefaultValue { get; set; } + /// + /// Name of a field in the input event schema that's to be used as the source of a mapping. + /// + string EventTypeSourceField { get; set; } + /// The mapping information for the Id property of the Event Grid Event. + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IJsonField Id { get; set; } + /// + /// Name of a field in the input event schema that's to be used as the source of a mapping. + /// + string IdSourceField { get; set; } + /// The mapping information for the Subject property of the Event Grid Event. + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IJsonFieldWithDefault Subject { get; set; } + /// + /// The default value to be used for mapping when a SourceField is not provided or if there's no property with the specified + /// name in the published JSON event payload. + /// + string SubjectDefaultValue { get; set; } + /// + /// Name of a field in the input event schema that's to be used as the source of a mapping. + /// + string SubjectSourceField { get; set; } + /// The mapping information for the Topic property of the Event Grid Event. + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IJsonField Topic { get; set; } + /// + /// Name of a field in the input event schema that's to be used as the source of a mapping. + /// + string TopicSourceField { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/JsonInputSchemaMappingProperties.json.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/JsonInputSchemaMappingProperties.json.cs new file mode 100644 index 000000000000..38fccee6595c --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/JsonInputSchemaMappingProperties.json.cs @@ -0,0 +1,119 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Extensions; + + /// + /// This can be used to map properties of a source schema (or default values, for certain supported properties) to properties + /// of the EventGridEvent schema. + /// + public partial class JsonInputSchemaMappingProperties + { + + /// + /// AfterFromJson will be called after the json deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JsonNode that should be deserialized into this object. + + partial void AfterFromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json erialization has finished, allowing customization of the before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JSON container that the serialization result will be placed in. + + partial void AfterToJson(ref Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject container); + + /// + /// BeforeFromJson will be called before the json deserialization has commenced, allowing complete customization of + /// the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JsonNode that should be deserialized into this object. + /// Determines if the rest of the deserialization should be processed, or if the method should return + /// instantly. + + partial void BeforeFromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject json, ref bool returnNow); + + /// + /// BeforeToJson will be called before the json serialization has commenced, allowing complete customization of the + /// object before it is serialized. + /// If you wish to disable the default serialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JSON container that the serialization result will be placed in. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeToJson(ref Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IJsonInputSchemaMappingProperties. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IJsonInputSchemaMappingProperties. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IJsonInputSchemaMappingProperties FromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject json ? new JsonInputSchemaMappingProperties(json) : null; + } + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject instance to deserialize from. + internal JsonInputSchemaMappingProperties(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject json) + { + bool returnNow = false; + BeforeFromJson(json, ref returnNow); + if (returnNow) + { + return; + } + {_id = If( json?.PropertyT("id"), out var __jsonId) ? Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.JsonField.FromJson(__jsonId) : Id;} + {_topic = If( json?.PropertyT("topic"), out var __jsonTopic) ? Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.JsonField.FromJson(__jsonTopic) : Topic;} + {_eventTime = If( json?.PropertyT("eventTime"), out var __jsonEventTime) ? Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.JsonField.FromJson(__jsonEventTime) : EventTime;} + {_eventType = If( json?.PropertyT("eventType"), out var __jsonEventType) ? Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.JsonFieldWithDefault.FromJson(__jsonEventType) : EventType;} + {_subject = If( json?.PropertyT("subject"), out var __jsonSubject) ? Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.JsonFieldWithDefault.FromJson(__jsonSubject) : Subject;} + {_dataVersion = If( json?.PropertyT("dataVersion"), out var __jsonDataVersion) ? Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.JsonFieldWithDefault.FromJson(__jsonDataVersion) : DataVersion;} + AfterFromJson(json); + } + + /// + /// Serializes this instance of into a . + /// + /// The container to serialize this object into. If the caller + /// passes in null, a new instance will be created and returned to the caller. + /// Allows the caller to choose the depth of the serialization. See . + /// + /// a serialized instance of as a . + /// + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject(); + + bool returnNow = false; + BeforeToJson(ref container, ref returnNow); + if (returnNow) + { + return container; + } + AddIf( null != this._id ? (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode) this._id.ToJson(null,serializationMode) : null, "id" ,container.Add ); + AddIf( null != this._topic ? (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode) this._topic.ToJson(null,serializationMode) : null, "topic" ,container.Add ); + AddIf( null != this._eventTime ? (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode) this._eventTime.ToJson(null,serializationMode) : null, "eventTime" ,container.Add ); + AddIf( null != this._eventType ? (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode) this._eventType.ToJson(null,serializationMode) : null, "eventType" ,container.Add ); + AddIf( null != this._subject ? (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode) this._subject.ToJson(null,serializationMode) : null, "subject" ,container.Add ); + AddIf( null != this._dataVersion ? (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode) this._dataVersion.ToJson(null,serializationMode) : null, "dataVersion" ,container.Add ); + AfterToJson(ref container); + return container; + } + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/NumberGreaterThanAdvancedFilter.PowerShell.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/NumberGreaterThanAdvancedFilter.PowerShell.cs new file mode 100644 index 000000000000..fb1270d20385 --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/NumberGreaterThanAdvancedFilter.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.EventGrid.Models.Api20211015Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell; + + /// NumberGreaterThan Advanced Filter. + [System.ComponentModel.TypeConverter(typeof(NumberGreaterThanAdvancedFilterTypeConverter))] + public partial class NumberGreaterThanAdvancedFilter + { + + /// + /// AfterDeserializeDictionary will be called after the deserialization has finished, allowing customization of the + /// object before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Collections.IDictionary content that should be used. + + partial void AfterDeserializeDictionary(global::System.Collections.IDictionary content); + + /// + /// AfterDeserializePSObject will be called after the deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Management.Automation.PSObject content that should be used. + + partial void AfterDeserializePSObject(global::System.Management.Automation.PSObject content); + + /// + /// BeforeDeserializeDictionary will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Collections.IDictionary content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializeDictionary(global::System.Collections.IDictionary content, ref bool returnNow); + + /// + /// BeforeDeserializePSObject will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializePSObject(global::System.Management.Automation.PSObject content, ref bool returnNow); + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.INumberGreaterThanAdvancedFilter DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new NumberGreaterThanAdvancedFilter(content); + } + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.INumberGreaterThanAdvancedFilter DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new NumberGreaterThanAdvancedFilter(content); + } + + /// + /// Creates a new instance of , deserializing the content from a json string. + /// + /// a string containing a JSON serialized instance of this model. + /// an instance of the model class. + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.INumberGreaterThanAdvancedFilter FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode.Parse(jsonText)); + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + internal NumberGreaterThanAdvancedFilter(global::System.Collections.IDictionary content) + { + bool returnNow = false; + BeforeDeserializeDictionary(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("Value")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.INumberGreaterThanAdvancedFilterInternal)this).Value = (double?) content.GetValueForProperty("Value",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.INumberGreaterThanAdvancedFilterInternal)this).Value, (__y)=> (double) global::System.Convert.ChangeType(__y, typeof(double))); + } + if (content.Contains("OperatorType")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IAdvancedFilterInternal)this).OperatorType = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.AdvancedFilterOperatorType) content.GetValueForProperty("OperatorType",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IAdvancedFilterInternal)this).OperatorType, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.AdvancedFilterOperatorType.CreateFrom); + } + if (content.Contains("Key")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IAdvancedFilterInternal)this).Key = (string) content.GetValueForProperty("Key",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IAdvancedFilterInternal)this).Key, global::System.Convert.ToString); + } + AfterDeserializeDictionary(content); + } + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + internal NumberGreaterThanAdvancedFilter(global::System.Management.Automation.PSObject content) + { + bool returnNow = false; + BeforeDeserializePSObject(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("Value")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.INumberGreaterThanAdvancedFilterInternal)this).Value = (double?) content.GetValueForProperty("Value",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.INumberGreaterThanAdvancedFilterInternal)this).Value, (__y)=> (double) global::System.Convert.ChangeType(__y, typeof(double))); + } + if (content.Contains("OperatorType")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IAdvancedFilterInternal)this).OperatorType = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.AdvancedFilterOperatorType) content.GetValueForProperty("OperatorType",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IAdvancedFilterInternal)this).OperatorType, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.AdvancedFilterOperatorType.CreateFrom); + } + if (content.Contains("Key")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IAdvancedFilterInternal)this).Key = (string) content.GetValueForProperty("Key",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IAdvancedFilterInternal)this).Key, 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.EventGrid.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// NumberGreaterThan Advanced Filter. + [System.ComponentModel.TypeConverter(typeof(NumberGreaterThanAdvancedFilterTypeConverter))] + public partial interface INumberGreaterThanAdvancedFilter + + { + + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/NumberGreaterThanAdvancedFilter.TypeConverter.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/NumberGreaterThanAdvancedFilter.TypeConverter.cs new file mode 100644 index 000000000000..90f921f93866 --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/NumberGreaterThanAdvancedFilter.TypeConverter.cs @@ -0,0 +1,147 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class NumberGreaterThanAdvancedFilterTypeConverter : global::System.Management.Automation.PSTypeConverter + { + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false. + /// + public override bool CanConvertFrom(object sourceValue, global::System.Type destinationType) => CanConvertFrom(sourceValue); + + /// + /// Determines if the converter can convert the parameter to the . + /// + /// the instance to check if it can be converted to the type. + /// + /// true if the instance could be converted to a type, otherwise false + /// + public static bool CanConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return true; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + // we say yest to PSObjects + return true; + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + // we say yest to Hashtables/dictionaries + return true; + } + try + { + if (null != sourceValue.ToJsonString()) + { + return true; + } + } + catch + { + // Not one of our objects + } + try + { + string text = sourceValue.ToString()?.Trim(); + return true == text?.StartsWith("{") && true == text?.EndsWith("}") && Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonType.Object; + } + catch + { + // Doesn't look like it can be treated as JSON + } + return false; + } + + /// + /// Determines if the parameter can be converted to the parameter + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false + /// + public override bool CanConvertTo(object sourceValue, global::System.Type destinationType) => false; + + /// + /// Converts the parameter to the parameter using and + /// + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// + /// an instance of , or null if there is no suitable conversion. + /// + public override object ConvertFrom(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => ConvertFrom(sourceValue); + + /// + /// Converts the parameter to the parameter using and + /// + /// the value to convert into an instance of . + /// + /// an instance of , or null if there is no suitable conversion. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.INumberGreaterThanAdvancedFilter ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.INumberGreaterThanAdvancedFilter).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return NumberGreaterThanAdvancedFilter.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return NumberGreaterThanAdvancedFilter.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return NumberGreaterThanAdvancedFilter.DeserializeFromDictionary(sourceValue); + } + return null; + } + + /// NotImplemented -- this will return null + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// will always return null. + public override object ConvertTo(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => null; + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/NumberGreaterThanAdvancedFilter.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/NumberGreaterThanAdvancedFilter.cs new file mode 100644 index 000000000000..4889c32f8935 --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/NumberGreaterThanAdvancedFilter.cs @@ -0,0 +1,80 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Extensions; + + /// NumberGreaterThan Advanced Filter. + public partial class NumberGreaterThanAdvancedFilter : + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.INumberGreaterThanAdvancedFilter, + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.INumberGreaterThanAdvancedFilterInternal, + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IValidates + { + /// + /// Backing field for Inherited model + /// + private Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IAdvancedFilter __advancedFilter = new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.AdvancedFilter(); + + /// The field/property in the event based on which you want to filter. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Inherited)] + public string Key { get => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IAdvancedFilterInternal)__advancedFilter).Key; set => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IAdvancedFilterInternal)__advancedFilter).Key = value ?? null; } + + /// + /// The operator type used for filtering, e.g., NumberIn, StringContains, BoolEquals and others. + /// + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Inherited)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.AdvancedFilterOperatorType OperatorType { get => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IAdvancedFilterInternal)__advancedFilter).OperatorType; set => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IAdvancedFilterInternal)__advancedFilter).OperatorType = value ; } + + /// Backing field for property. + private double? _value; + + /// The filter value. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Owned)] + public double? Value { get => this._value; set => this._value = value; } + + /// Creates an new instance. + public NumberGreaterThanAdvancedFilter() + { + + } + + /// Validates that this object meets the validation criteria. + /// an instance that will receive validation + /// events. + /// + /// A that will be complete when validation is completed. + /// + public async global::System.Threading.Tasks.Task Validate(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener eventListener) + { + await eventListener.AssertNotNull(nameof(__advancedFilter), __advancedFilter); + await eventListener.AssertObjectIsValid(nameof(__advancedFilter), __advancedFilter); + } + } + /// NumberGreaterThan Advanced Filter. + public partial interface INumberGreaterThanAdvancedFilter : + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IJsonSerializable, + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IAdvancedFilter + { + /// The filter value. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The filter value.", + SerializedName = @"value", + PossibleTypes = new [] { typeof(double) })] + double? Value { get; set; } + + } + /// NumberGreaterThan Advanced Filter. + internal partial interface INumberGreaterThanAdvancedFilterInternal : + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IAdvancedFilterInternal + { + /// The filter value. + double? Value { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/NumberGreaterThanAdvancedFilter.json.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/NumberGreaterThanAdvancedFilter.json.cs new file mode 100644 index 000000000000..c17055143f9a --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/NumberGreaterThanAdvancedFilter.json.cs @@ -0,0 +1,108 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Extensions; + + /// NumberGreaterThan Advanced Filter. + public partial class NumberGreaterThanAdvancedFilter + { + + /// + /// AfterFromJson will be called after the json deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JsonNode that should be deserialized into this object. + + partial void AfterFromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json erialization has finished, allowing customization of the before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JSON container that the serialization result will be placed in. + + partial void AfterToJson(ref Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject container); + + /// + /// BeforeFromJson will be called before the json deserialization has commenced, allowing complete customization of + /// the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JsonNode that should be deserialized into this object. + /// Determines if the rest of the deserialization should be processed, or if the method should return + /// instantly. + + partial void BeforeFromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject json, ref bool returnNow); + + /// + /// BeforeToJson will be called before the json serialization has commenced, allowing complete customization of the + /// object before it is serialized. + /// If you wish to disable the default serialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JSON container that the serialization result will be placed in. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeToJson(ref Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.INumberGreaterThanAdvancedFilter. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.INumberGreaterThanAdvancedFilter. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.INumberGreaterThanAdvancedFilter FromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject json ? new NumberGreaterThanAdvancedFilter(json) : null; + } + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject instance to deserialize from. + internal NumberGreaterThanAdvancedFilter(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject json) + { + bool returnNow = false; + BeforeFromJson(json, ref returnNow); + if (returnNow) + { + return; + } + __advancedFilter = new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.AdvancedFilter(json); + {_value = If( json?.PropertyT("value"), out var __jsonValue) ? (double?)__jsonValue : Value;} + AfterFromJson(json); + } + + /// + /// Serializes this instance of into a . + /// + /// The container to serialize this object into. If the caller + /// passes in null, a new instance will be created and returned to the caller. + /// Allows the caller to choose the depth of the serialization. See . + /// + /// a serialized instance of as a . + /// + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject(); + + bool returnNow = false; + BeforeToJson(ref container, ref returnNow); + if (returnNow) + { + return container; + } + __advancedFilter?.ToJson(container, serializationMode); + AddIf( null != this._value ? (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode)new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNumber((double)this._value) : null, "value" ,container.Add ); + AfterToJson(ref container); + return container; + } + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/NumberGreaterThanOrEqualsAdvancedFilter.PowerShell.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/NumberGreaterThanOrEqualsAdvancedFilter.PowerShell.cs new file mode 100644 index 000000000000..a9f1aa54e1a1 --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/NumberGreaterThanOrEqualsAdvancedFilter.PowerShell.cs @@ -0,0 +1,163 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell; + + /// NumberGreaterThanOrEquals Advanced Filter. + [System.ComponentModel.TypeConverter(typeof(NumberGreaterThanOrEqualsAdvancedFilterTypeConverter))] + public partial class NumberGreaterThanOrEqualsAdvancedFilter + { + + /// + /// AfterDeserializeDictionary will be called after the deserialization has finished, allowing customization of the + /// object before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Collections.IDictionary content that should be used. + + partial void AfterDeserializeDictionary(global::System.Collections.IDictionary content); + + /// + /// AfterDeserializePSObject will be called after the deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Management.Automation.PSObject content that should be used. + + partial void AfterDeserializePSObject(global::System.Management.Automation.PSObject content); + + /// + /// BeforeDeserializeDictionary will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Collections.IDictionary content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializeDictionary(global::System.Collections.IDictionary content, ref bool returnNow); + + /// + /// BeforeDeserializePSObject will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializePSObject(global::System.Management.Automation.PSObject content, ref bool returnNow); + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.INumberGreaterThanOrEqualsAdvancedFilter DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new NumberGreaterThanOrEqualsAdvancedFilter(content); + } + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.INumberGreaterThanOrEqualsAdvancedFilter DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new NumberGreaterThanOrEqualsAdvancedFilter(content); + } + + /// + /// Creates a new instance of , deserializing the content from a json + /// string. + /// + /// a string containing a JSON serialized instance of this model. + /// + /// an instance of the model class. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.INumberGreaterThanOrEqualsAdvancedFilter FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode.Parse(jsonText)); + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + internal NumberGreaterThanOrEqualsAdvancedFilter(global::System.Collections.IDictionary content) + { + bool returnNow = false; + BeforeDeserializeDictionary(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("Value")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.INumberGreaterThanOrEqualsAdvancedFilterInternal)this).Value = (double?) content.GetValueForProperty("Value",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.INumberGreaterThanOrEqualsAdvancedFilterInternal)this).Value, (__y)=> (double) global::System.Convert.ChangeType(__y, typeof(double))); + } + if (content.Contains("OperatorType")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IAdvancedFilterInternal)this).OperatorType = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.AdvancedFilterOperatorType) content.GetValueForProperty("OperatorType",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IAdvancedFilterInternal)this).OperatorType, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.AdvancedFilterOperatorType.CreateFrom); + } + if (content.Contains("Key")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IAdvancedFilterInternal)this).Key = (string) content.GetValueForProperty("Key",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IAdvancedFilterInternal)this).Key, global::System.Convert.ToString); + } + AfterDeserializeDictionary(content); + } + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + internal NumberGreaterThanOrEqualsAdvancedFilter(global::System.Management.Automation.PSObject content) + { + bool returnNow = false; + BeforeDeserializePSObject(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("Value")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.INumberGreaterThanOrEqualsAdvancedFilterInternal)this).Value = (double?) content.GetValueForProperty("Value",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.INumberGreaterThanOrEqualsAdvancedFilterInternal)this).Value, (__y)=> (double) global::System.Convert.ChangeType(__y, typeof(double))); + } + if (content.Contains("OperatorType")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IAdvancedFilterInternal)this).OperatorType = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.AdvancedFilterOperatorType) content.GetValueForProperty("OperatorType",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IAdvancedFilterInternal)this).OperatorType, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.AdvancedFilterOperatorType.CreateFrom); + } + if (content.Contains("Key")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IAdvancedFilterInternal)this).Key = (string) content.GetValueForProperty("Key",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IAdvancedFilterInternal)this).Key, 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.EventGrid.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// NumberGreaterThanOrEquals Advanced Filter. + [System.ComponentModel.TypeConverter(typeof(NumberGreaterThanOrEqualsAdvancedFilterTypeConverter))] + public partial interface INumberGreaterThanOrEqualsAdvancedFilter + + { + + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/NumberGreaterThanOrEqualsAdvancedFilter.TypeConverter.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/NumberGreaterThanOrEqualsAdvancedFilter.TypeConverter.cs new file mode 100644 index 000000000000..da77dbae5307 --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/NumberGreaterThanOrEqualsAdvancedFilter.TypeConverter.cs @@ -0,0 +1,150 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class NumberGreaterThanOrEqualsAdvancedFilterTypeConverter : global::System.Management.Automation.PSTypeConverter + { + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false. + /// + public override bool CanConvertFrom(object sourceValue, global::System.Type destinationType) => CanConvertFrom(sourceValue); + + /// + /// Determines if the converter can convert the parameter to the . + /// + /// the instance to check if it can be converted to the type. + /// + /// true if the instance could be converted to a type, otherwise + /// false + /// + public static bool CanConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return true; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + // we say yest to PSObjects + return true; + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + // we say yest to Hashtables/dictionaries + return true; + } + try + { + if (null != sourceValue.ToJsonString()) + { + return true; + } + } + catch + { + // Not one of our objects + } + try + { + string text = sourceValue.ToString()?.Trim(); + return true == text?.StartsWith("{") && true == text?.EndsWith("}") && Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonType.Object; + } + catch + { + // Doesn't look like it can be treated as JSON + } + return false; + } + + /// + /// Determines if the parameter can be converted to the parameter + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false + /// + public override bool CanConvertTo(object sourceValue, global::System.Type destinationType) => false; + + /// + /// Converts the parameter to the parameter using and + /// + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// + /// an instance of , or null if there is no suitable conversion. + /// + public override object ConvertFrom(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => ConvertFrom(sourceValue); + + /// + /// Converts the parameter to the parameter using and + /// + /// the value to convert into an instance of . + /// + /// an instance of , or null if there is no suitable conversion. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.INumberGreaterThanOrEqualsAdvancedFilter ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.INumberGreaterThanOrEqualsAdvancedFilter).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return NumberGreaterThanOrEqualsAdvancedFilter.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return NumberGreaterThanOrEqualsAdvancedFilter.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return NumberGreaterThanOrEqualsAdvancedFilter.DeserializeFromDictionary(sourceValue); + } + return null; + } + + /// NotImplemented -- this will return null + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// will always return null. + public override object ConvertTo(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => null; + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/NumberGreaterThanOrEqualsAdvancedFilter.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/NumberGreaterThanOrEqualsAdvancedFilter.cs new file mode 100644 index 000000000000..0fddaeab9b5b --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/NumberGreaterThanOrEqualsAdvancedFilter.cs @@ -0,0 +1,80 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Extensions; + + /// NumberGreaterThanOrEquals Advanced Filter. + public partial class NumberGreaterThanOrEqualsAdvancedFilter : + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.INumberGreaterThanOrEqualsAdvancedFilter, + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.INumberGreaterThanOrEqualsAdvancedFilterInternal, + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IValidates + { + /// + /// Backing field for Inherited model + /// + private Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IAdvancedFilter __advancedFilter = new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.AdvancedFilter(); + + /// The field/property in the event based on which you want to filter. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Inherited)] + public string Key { get => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IAdvancedFilterInternal)__advancedFilter).Key; set => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IAdvancedFilterInternal)__advancedFilter).Key = value ?? null; } + + /// + /// The operator type used for filtering, e.g., NumberIn, StringContains, BoolEquals and others. + /// + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Inherited)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.AdvancedFilterOperatorType OperatorType { get => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IAdvancedFilterInternal)__advancedFilter).OperatorType; set => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IAdvancedFilterInternal)__advancedFilter).OperatorType = value ; } + + /// Backing field for property. + private double? _value; + + /// The filter value. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Owned)] + public double? Value { get => this._value; set => this._value = value; } + + /// Creates an new instance. + public NumberGreaterThanOrEqualsAdvancedFilter() + { + + } + + /// Validates that this object meets the validation criteria. + /// an instance that will receive validation + /// events. + /// + /// A that will be complete when validation is completed. + /// + public async global::System.Threading.Tasks.Task Validate(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener eventListener) + { + await eventListener.AssertNotNull(nameof(__advancedFilter), __advancedFilter); + await eventListener.AssertObjectIsValid(nameof(__advancedFilter), __advancedFilter); + } + } + /// NumberGreaterThanOrEquals Advanced Filter. + public partial interface INumberGreaterThanOrEqualsAdvancedFilter : + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IJsonSerializable, + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IAdvancedFilter + { + /// The filter value. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The filter value.", + SerializedName = @"value", + PossibleTypes = new [] { typeof(double) })] + double? Value { get; set; } + + } + /// NumberGreaterThanOrEquals Advanced Filter. + internal partial interface INumberGreaterThanOrEqualsAdvancedFilterInternal : + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IAdvancedFilterInternal + { + /// The filter value. + double? Value { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/NumberGreaterThanOrEqualsAdvancedFilter.json.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/NumberGreaterThanOrEqualsAdvancedFilter.json.cs new file mode 100644 index 000000000000..0d0085f5e998 --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/NumberGreaterThanOrEqualsAdvancedFilter.json.cs @@ -0,0 +1,110 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Extensions; + + /// NumberGreaterThanOrEquals Advanced Filter. + public partial class NumberGreaterThanOrEqualsAdvancedFilter + { + + /// + /// AfterFromJson will be called after the json deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JsonNode that should be deserialized into this object. + + partial void AfterFromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json erialization has finished, allowing customization of the before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JSON container that the serialization result will be placed in. + + partial void AfterToJson(ref Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject container); + + /// + /// BeforeFromJson will be called before the json deserialization has commenced, allowing complete customization of + /// the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JsonNode that should be deserialized into this object. + /// Determines if the rest of the deserialization should be processed, or if the method should return + /// instantly. + + partial void BeforeFromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject json, ref bool returnNow); + + /// + /// BeforeToJson will be called before the json serialization has commenced, allowing complete customization of the + /// object before it is serialized. + /// If you wish to disable the default serialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JSON container that the serialization result will be placed in. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeToJson(ref Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.INumberGreaterThanOrEqualsAdvancedFilter. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.INumberGreaterThanOrEqualsAdvancedFilter. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.INumberGreaterThanOrEqualsAdvancedFilter FromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject json ? new NumberGreaterThanOrEqualsAdvancedFilter(json) : null; + } + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject instance to deserialize from. + internal NumberGreaterThanOrEqualsAdvancedFilter(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject json) + { + bool returnNow = false; + BeforeFromJson(json, ref returnNow); + if (returnNow) + { + return; + } + __advancedFilter = new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.AdvancedFilter(json); + {_value = If( json?.PropertyT("value"), out var __jsonValue) ? (double?)__jsonValue : Value;} + AfterFromJson(json); + } + + /// + /// Serializes this instance of into a . + /// + /// The container to serialize this object into. If the caller + /// passes in null, a new instance will be created and returned to the caller. + /// Allows the caller to choose the depth of the serialization. See . + /// + /// a serialized instance of as a . + /// + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject(); + + bool returnNow = false; + BeforeToJson(ref container, ref returnNow); + if (returnNow) + { + return container; + } + __advancedFilter?.ToJson(container, serializationMode); + AddIf( null != this._value ? (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode)new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNumber((double)this._value) : null, "value" ,container.Add ); + AfterToJson(ref container); + return container; + } + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/NumberInAdvancedFilter.PowerShell.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/NumberInAdvancedFilter.PowerShell.cs new file mode 100644 index 000000000000..f3dd039b8358 --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/NumberInAdvancedFilter.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.EventGrid.Models.Api20211015Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell; + + /// NumberIn Advanced Filter. + [System.ComponentModel.TypeConverter(typeof(NumberInAdvancedFilterTypeConverter))] + public partial class NumberInAdvancedFilter + { + + /// + /// AfterDeserializeDictionary will be called after the deserialization has finished, allowing customization of the + /// object before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Collections.IDictionary content that should be used. + + partial void AfterDeserializeDictionary(global::System.Collections.IDictionary content); + + /// + /// AfterDeserializePSObject will be called after the deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Management.Automation.PSObject content that should be used. + + partial void AfterDeserializePSObject(global::System.Management.Automation.PSObject content); + + /// + /// BeforeDeserializeDictionary will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Collections.IDictionary content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializeDictionary(global::System.Collections.IDictionary content, ref bool returnNow); + + /// + /// BeforeDeserializePSObject will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializePSObject(global::System.Management.Automation.PSObject content, ref bool returnNow); + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.INumberInAdvancedFilter DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new NumberInAdvancedFilter(content); + } + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.INumberInAdvancedFilter DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new NumberInAdvancedFilter(content); + } + + /// + /// Creates a new instance of , deserializing the content from a json string. + /// + /// a string containing a JSON serialized instance of this model. + /// an instance of the model class. + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.INumberInAdvancedFilter FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode.Parse(jsonText)); + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + internal NumberInAdvancedFilter(global::System.Collections.IDictionary content) + { + bool returnNow = false; + BeforeDeserializeDictionary(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("Value")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.INumberInAdvancedFilterInternal)this).Value = (double[]) content.GetValueForProperty("Value",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.INumberInAdvancedFilterInternal)this).Value, __y => TypeConverterExtensions.SelectToArray(__y, (__w)=> (double) global::System.Convert.ChangeType(__w, typeof(double)))); + } + if (content.Contains("OperatorType")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IAdvancedFilterInternal)this).OperatorType = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.AdvancedFilterOperatorType) content.GetValueForProperty("OperatorType",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IAdvancedFilterInternal)this).OperatorType, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.AdvancedFilterOperatorType.CreateFrom); + } + if (content.Contains("Key")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IAdvancedFilterInternal)this).Key = (string) content.GetValueForProperty("Key",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IAdvancedFilterInternal)this).Key, global::System.Convert.ToString); + } + AfterDeserializeDictionary(content); + } + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + internal NumberInAdvancedFilter(global::System.Management.Automation.PSObject content) + { + bool returnNow = false; + BeforeDeserializePSObject(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("Value")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.INumberInAdvancedFilterInternal)this).Value = (double[]) content.GetValueForProperty("Value",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.INumberInAdvancedFilterInternal)this).Value, __y => TypeConverterExtensions.SelectToArray(__y, (__w)=> (double) global::System.Convert.ChangeType(__w, typeof(double)))); + } + if (content.Contains("OperatorType")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IAdvancedFilterInternal)this).OperatorType = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.AdvancedFilterOperatorType) content.GetValueForProperty("OperatorType",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IAdvancedFilterInternal)this).OperatorType, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.AdvancedFilterOperatorType.CreateFrom); + } + if (content.Contains("Key")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IAdvancedFilterInternal)this).Key = (string) content.GetValueForProperty("Key",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IAdvancedFilterInternal)this).Key, 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.EventGrid.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// NumberIn Advanced Filter. + [System.ComponentModel.TypeConverter(typeof(NumberInAdvancedFilterTypeConverter))] + public partial interface INumberInAdvancedFilter + + { + + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/NumberInAdvancedFilter.TypeConverter.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/NumberInAdvancedFilter.TypeConverter.cs new file mode 100644 index 000000000000..c6f02b45eda1 --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/NumberInAdvancedFilter.TypeConverter.cs @@ -0,0 +1,147 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class NumberInAdvancedFilterTypeConverter : global::System.Management.Automation.PSTypeConverter + { + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false. + /// + public override bool CanConvertFrom(object sourceValue, global::System.Type destinationType) => CanConvertFrom(sourceValue); + + /// + /// Determines if the converter can convert the parameter to the . + /// + /// the instance to check if it can be converted to the type. + /// + /// true if the instance could be converted to a type, otherwise false + /// + public static bool CanConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return true; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + // we say yest to PSObjects + return true; + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + // we say yest to Hashtables/dictionaries + return true; + } + try + { + if (null != sourceValue.ToJsonString()) + { + return true; + } + } + catch + { + // Not one of our objects + } + try + { + string text = sourceValue.ToString()?.Trim(); + return true == text?.StartsWith("{") && true == text?.EndsWith("}") && Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonType.Object; + } + catch + { + // Doesn't look like it can be treated as JSON + } + return false; + } + + /// + /// Determines if the parameter can be converted to the parameter + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false + /// + public override bool CanConvertTo(object sourceValue, global::System.Type destinationType) => false; + + /// + /// Converts the parameter to the parameter using and + /// + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// + /// an instance of , or null if there is no suitable conversion. + /// + public override object ConvertFrom(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => ConvertFrom(sourceValue); + + /// + /// Converts the parameter to the parameter using and + /// + /// the value to convert into an instance of . + /// + /// an instance of , or null if there is no suitable conversion. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.INumberInAdvancedFilter ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.INumberInAdvancedFilter).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return NumberInAdvancedFilter.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return NumberInAdvancedFilter.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return NumberInAdvancedFilter.DeserializeFromDictionary(sourceValue); + } + return null; + } + + /// NotImplemented -- this will return null + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// will always return null. + public override object ConvertTo(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => null; + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/NumberInAdvancedFilter.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/NumberInAdvancedFilter.cs new file mode 100644 index 000000000000..18189ee100ce --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/NumberInAdvancedFilter.cs @@ -0,0 +1,80 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Extensions; + + /// NumberIn Advanced Filter. + public partial class NumberInAdvancedFilter : + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.INumberInAdvancedFilter, + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.INumberInAdvancedFilterInternal, + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IValidates + { + /// + /// Backing field for Inherited model + /// + private Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IAdvancedFilter __advancedFilter = new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.AdvancedFilter(); + + /// The field/property in the event based on which you want to filter. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Inherited)] + public string Key { get => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IAdvancedFilterInternal)__advancedFilter).Key; set => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IAdvancedFilterInternal)__advancedFilter).Key = value ?? null; } + + /// + /// The operator type used for filtering, e.g., NumberIn, StringContains, BoolEquals and others. + /// + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Inherited)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.AdvancedFilterOperatorType OperatorType { get => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IAdvancedFilterInternal)__advancedFilter).OperatorType; set => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IAdvancedFilterInternal)__advancedFilter).OperatorType = value ; } + + /// Backing field for property. + private double[] _value; + + /// The set of filter values. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Owned)] + public double[] Value { get => this._value; set => this._value = value; } + + /// Creates an new instance. + public NumberInAdvancedFilter() + { + + } + + /// Validates that this object meets the validation criteria. + /// an instance that will receive validation + /// events. + /// + /// A that will be complete when validation is completed. + /// + public async global::System.Threading.Tasks.Task Validate(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener eventListener) + { + await eventListener.AssertNotNull(nameof(__advancedFilter), __advancedFilter); + await eventListener.AssertObjectIsValid(nameof(__advancedFilter), __advancedFilter); + } + } + /// NumberIn Advanced Filter. + public partial interface INumberInAdvancedFilter : + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IJsonSerializable, + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IAdvancedFilter + { + /// The set of filter values. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The set of filter values.", + SerializedName = @"values", + PossibleTypes = new [] { typeof(double) })] + double[] Value { get; set; } + + } + /// NumberIn Advanced Filter. + internal partial interface INumberInAdvancedFilterInternal : + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IAdvancedFilterInternal + { + /// The set of filter values. + double[] Value { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/NumberInAdvancedFilter.json.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/NumberInAdvancedFilter.json.cs new file mode 100644 index 000000000000..a79a8c8674b1 --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/NumberInAdvancedFilter.json.cs @@ -0,0 +1,116 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Extensions; + + /// NumberIn Advanced Filter. + public partial class NumberInAdvancedFilter + { + + /// + /// AfterFromJson will be called after the json deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JsonNode that should be deserialized into this object. + + partial void AfterFromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json erialization has finished, allowing customization of the before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JSON container that the serialization result will be placed in. + + partial void AfterToJson(ref Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject container); + + /// + /// BeforeFromJson will be called before the json deserialization has commenced, allowing complete customization of + /// the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JsonNode that should be deserialized into this object. + /// Determines if the rest of the deserialization should be processed, or if the method should return + /// instantly. + + partial void BeforeFromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject json, ref bool returnNow); + + /// + /// BeforeToJson will be called before the json serialization has commenced, allowing complete customization of the + /// object before it is serialized. + /// If you wish to disable the default serialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JSON container that the serialization result will be placed in. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeToJson(ref Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.INumberInAdvancedFilter. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.INumberInAdvancedFilter. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.INumberInAdvancedFilter FromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject json ? new NumberInAdvancedFilter(json) : null; + } + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject instance to deserialize from. + internal NumberInAdvancedFilter(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject json) + { + bool returnNow = false; + BeforeFromJson(json, ref returnNow); + if (returnNow) + { + return; + } + __advancedFilter = new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.AdvancedFilter(json); + {_value = If( json?.PropertyT("values"), out var __jsonValues) ? If( __jsonValues as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonArray, out var __v) ? new global::System.Func(()=> global::System.Linq.Enumerable.ToArray(global::System.Linq.Enumerable.Select(__v, (__u)=>(double) (__u is Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNumber __t ? (double)__t : default(double))) ))() : null : Value;} + AfterFromJson(json); + } + + /// + /// Serializes this instance of into a . + /// + /// The container to serialize this object into. If the caller + /// passes in null, a new instance will be created and returned to the caller. + /// Allows the caller to choose the depth of the serialization. See . + /// + /// a serialized instance of as a . + /// + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject(); + + bool returnNow = false; + BeforeToJson(ref container, ref returnNow); + if (returnNow) + { + return container; + } + __advancedFilter?.ToJson(container, serializationMode); + if (null != this._value) + { + var __w = new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.XNodeArray(); + foreach( var __x in this._value ) + { + AddIf((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode)new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNumber(__x) ,__w.Add); + } + container.Add("values",__w); + } + AfterToJson(ref container); + return container; + } + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/NumberInRangeAdvancedFilter.PowerShell.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/NumberInRangeAdvancedFilter.PowerShell.cs new file mode 100644 index 000000000000..56b4afb4ef6f --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/NumberInRangeAdvancedFilter.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.EventGrid.Models.Api20211015Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell; + + /// NumberInRange Advanced Filter. + [System.ComponentModel.TypeConverter(typeof(NumberInRangeAdvancedFilterTypeConverter))] + public partial class NumberInRangeAdvancedFilter + { + + /// + /// AfterDeserializeDictionary will be called after the deserialization has finished, allowing customization of the + /// object before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Collections.IDictionary content that should be used. + + partial void AfterDeserializeDictionary(global::System.Collections.IDictionary content); + + /// + /// AfterDeserializePSObject will be called after the deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Management.Automation.PSObject content that should be used. + + partial void AfterDeserializePSObject(global::System.Management.Automation.PSObject content); + + /// + /// BeforeDeserializeDictionary will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Collections.IDictionary content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializeDictionary(global::System.Collections.IDictionary content, ref bool returnNow); + + /// + /// BeforeDeserializePSObject will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializePSObject(global::System.Management.Automation.PSObject content, ref bool returnNow); + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.INumberInRangeAdvancedFilter DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new NumberInRangeAdvancedFilter(content); + } + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.INumberInRangeAdvancedFilter DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new NumberInRangeAdvancedFilter(content); + } + + /// + /// Creates a new instance of , deserializing the content from a json string. + /// + /// a string containing a JSON serialized instance of this model. + /// an instance of the model class. + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.INumberInRangeAdvancedFilter FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode.Parse(jsonText)); + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + internal NumberInRangeAdvancedFilter(global::System.Collections.IDictionary content) + { + bool returnNow = false; + BeforeDeserializeDictionary(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("Value")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.INumberInRangeAdvancedFilterInternal)this).Value = (double[][]) content.GetValueForProperty("Value",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.INumberInRangeAdvancedFilterInternal)this).Value, __y => TypeConverterExtensions.SelectToArray(__y, __w => TypeConverterExtensions.SelectToArray(__w, (__u)=> (double) global::System.Convert.ChangeType(__u, typeof(double))))); + } + if (content.Contains("OperatorType")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IAdvancedFilterInternal)this).OperatorType = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.AdvancedFilterOperatorType) content.GetValueForProperty("OperatorType",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IAdvancedFilterInternal)this).OperatorType, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.AdvancedFilterOperatorType.CreateFrom); + } + if (content.Contains("Key")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IAdvancedFilterInternal)this).Key = (string) content.GetValueForProperty("Key",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IAdvancedFilterInternal)this).Key, global::System.Convert.ToString); + } + AfterDeserializeDictionary(content); + } + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + internal NumberInRangeAdvancedFilter(global::System.Management.Automation.PSObject content) + { + bool returnNow = false; + BeforeDeserializePSObject(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("Value")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.INumberInRangeAdvancedFilterInternal)this).Value = (double[][]) content.GetValueForProperty("Value",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.INumberInRangeAdvancedFilterInternal)this).Value, __y => TypeConverterExtensions.SelectToArray(__y, __w => TypeConverterExtensions.SelectToArray(__w, (__u)=> (double) global::System.Convert.ChangeType(__u, typeof(double))))); + } + if (content.Contains("OperatorType")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IAdvancedFilterInternal)this).OperatorType = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.AdvancedFilterOperatorType) content.GetValueForProperty("OperatorType",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IAdvancedFilterInternal)this).OperatorType, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.AdvancedFilterOperatorType.CreateFrom); + } + if (content.Contains("Key")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IAdvancedFilterInternal)this).Key = (string) content.GetValueForProperty("Key",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IAdvancedFilterInternal)this).Key, 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.EventGrid.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// NumberInRange Advanced Filter. + [System.ComponentModel.TypeConverter(typeof(NumberInRangeAdvancedFilterTypeConverter))] + public partial interface INumberInRangeAdvancedFilter + + { + + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/NumberInRangeAdvancedFilter.TypeConverter.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/NumberInRangeAdvancedFilter.TypeConverter.cs new file mode 100644 index 000000000000..0e291a359426 --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/NumberInRangeAdvancedFilter.TypeConverter.cs @@ -0,0 +1,147 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class NumberInRangeAdvancedFilterTypeConverter : global::System.Management.Automation.PSTypeConverter + { + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false. + /// + public override bool CanConvertFrom(object sourceValue, global::System.Type destinationType) => CanConvertFrom(sourceValue); + + /// + /// Determines if the converter can convert the parameter to the . + /// + /// the instance to check if it can be converted to the type. + /// + /// true if the instance could be converted to a type, otherwise false + /// + public static bool CanConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return true; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + // we say yest to PSObjects + return true; + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + // we say yest to Hashtables/dictionaries + return true; + } + try + { + if (null != sourceValue.ToJsonString()) + { + return true; + } + } + catch + { + // Not one of our objects + } + try + { + string text = sourceValue.ToString()?.Trim(); + return true == text?.StartsWith("{") && true == text?.EndsWith("}") && Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonType.Object; + } + catch + { + // Doesn't look like it can be treated as JSON + } + return false; + } + + /// + /// Determines if the parameter can be converted to the parameter + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false + /// + public override bool CanConvertTo(object sourceValue, global::System.Type destinationType) => false; + + /// + /// Converts the parameter to the parameter using and + /// + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// + /// an instance of , or null if there is no suitable conversion. + /// + public override object ConvertFrom(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => ConvertFrom(sourceValue); + + /// + /// Converts the parameter to the parameter using and + /// + /// the value to convert into an instance of . + /// + /// an instance of , or null if there is no suitable conversion. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.INumberInRangeAdvancedFilter ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.INumberInRangeAdvancedFilter).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return NumberInRangeAdvancedFilter.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return NumberInRangeAdvancedFilter.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return NumberInRangeAdvancedFilter.DeserializeFromDictionary(sourceValue); + } + return null; + } + + /// NotImplemented -- this will return null + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// will always return null. + public override object ConvertTo(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => null; + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/NumberInRangeAdvancedFilter.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/NumberInRangeAdvancedFilter.cs new file mode 100644 index 000000000000..d2e1656289ea --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/NumberInRangeAdvancedFilter.cs @@ -0,0 +1,80 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Extensions; + + /// NumberInRange Advanced Filter. + public partial class NumberInRangeAdvancedFilter : + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.INumberInRangeAdvancedFilter, + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.INumberInRangeAdvancedFilterInternal, + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IValidates + { + /// + /// Backing field for Inherited model + /// + private Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IAdvancedFilter __advancedFilter = new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.AdvancedFilter(); + + /// The field/property in the event based on which you want to filter. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Inherited)] + public string Key { get => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IAdvancedFilterInternal)__advancedFilter).Key; set => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IAdvancedFilterInternal)__advancedFilter).Key = value ?? null; } + + /// + /// The operator type used for filtering, e.g., NumberIn, StringContains, BoolEquals and others. + /// + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Inherited)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.AdvancedFilterOperatorType OperatorType { get => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IAdvancedFilterInternal)__advancedFilter).OperatorType; set => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IAdvancedFilterInternal)__advancedFilter).OperatorType = value ; } + + /// Backing field for property. + private double[][] _value; + + /// The set of filter values. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Owned)] + public double[][] Value { get => this._value; set => this._value = value; } + + /// Creates an new instance. + public NumberInRangeAdvancedFilter() + { + + } + + /// Validates that this object meets the validation criteria. + /// an instance that will receive validation + /// events. + /// + /// A that will be complete when validation is completed. + /// + public async global::System.Threading.Tasks.Task Validate(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener eventListener) + { + await eventListener.AssertNotNull(nameof(__advancedFilter), __advancedFilter); + await eventListener.AssertObjectIsValid(nameof(__advancedFilter), __advancedFilter); + } + } + /// NumberInRange Advanced Filter. + public partial interface INumberInRangeAdvancedFilter : + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IJsonSerializable, + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IAdvancedFilter + { + /// The set of filter values. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The set of filter values.", + SerializedName = @"values", + PossibleTypes = new [] { typeof(double) })] + double[][] Value { get; set; } + + } + /// NumberInRange Advanced Filter. + internal partial interface INumberInRangeAdvancedFilterInternal : + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IAdvancedFilterInternal + { + /// The set of filter values. + double[][] Value { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/NumberInRangeAdvancedFilter.json.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/NumberInRangeAdvancedFilter.json.cs new file mode 100644 index 000000000000..e15f060a4846 --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/NumberInRangeAdvancedFilter.json.cs @@ -0,0 +1,116 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Extensions; + + /// NumberInRange Advanced Filter. + public partial class NumberInRangeAdvancedFilter + { + + /// + /// AfterFromJson will be called after the json deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JsonNode that should be deserialized into this object. + + partial void AfterFromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json erialization has finished, allowing customization of the before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JSON container that the serialization result will be placed in. + + partial void AfterToJson(ref Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject container); + + /// + /// BeforeFromJson will be called before the json deserialization has commenced, allowing complete customization of + /// the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JsonNode that should be deserialized into this object. + /// Determines if the rest of the deserialization should be processed, or if the method should return + /// instantly. + + partial void BeforeFromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject json, ref bool returnNow); + + /// + /// BeforeToJson will be called before the json serialization has commenced, allowing complete customization of the + /// object before it is serialized. + /// If you wish to disable the default serialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JSON container that the serialization result will be placed in. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeToJson(ref Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.INumberInRangeAdvancedFilter. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.INumberInRangeAdvancedFilter. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.INumberInRangeAdvancedFilter FromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject json ? new NumberInRangeAdvancedFilter(json) : null; + } + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject instance to deserialize from. + internal NumberInRangeAdvancedFilter(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject json) + { + bool returnNow = false; + BeforeFromJson(json, ref returnNow); + if (returnNow) + { + return; + } + __advancedFilter = new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.AdvancedFilter(json); + {_value = If( json?.PropertyT("values"), out var __jsonValues) ? If( __jsonValues as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonArray, out var __u) ? new global::System.Func(()=> global::System.Linq.Enumerable.ToArray(global::System.Linq.Enumerable.Select(__u, (__t)=>(double[]) (If( __t as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonArray, out var __s) ? new global::System.Func(()=> global::System.Linq.Enumerable.ToArray(global::System.Linq.Enumerable.Select(__s, (__r)=>(double) (__r is Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNumber __q ? (double)__q : default(double))) ))() : null /* arrayOf */)) ))() : null : Value;} + AfterFromJson(json); + } + + /// + /// Serializes this instance of into a . + /// + /// The container to serialize this object into. If the caller + /// passes in null, a new instance will be created and returned to the caller. + /// Allows the caller to choose the depth of the serialization. See . + /// + /// a serialized instance of as a . + /// + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject(); + + bool returnNow = false; + BeforeToJson(ref container, ref returnNow); + if (returnNow) + { + return container; + } + __advancedFilter?.ToJson(container, serializationMode); + if (null != this._value) + { + var __w = new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.XNodeArray(); + foreach( var __x in this._value ) + { + AddIf(null != __x ? new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.XNodeArray(global::System.Linq.Enumerable.ToArray(System.Linq.Enumerable.Select(__x, (__v) => (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode)new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNumber(__v)))) : null ,__w.Add); + } + container.Add("values",__w); + } + AfterToJson(ref container); + return container; + } + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/NumberLessThanAdvancedFilter.PowerShell.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/NumberLessThanAdvancedFilter.PowerShell.cs new file mode 100644 index 000000000000..1a0bfde897fb --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/NumberLessThanAdvancedFilter.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.EventGrid.Models.Api20211015Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell; + + /// NumberLessThan Advanced Filter. + [System.ComponentModel.TypeConverter(typeof(NumberLessThanAdvancedFilterTypeConverter))] + public partial class NumberLessThanAdvancedFilter + { + + /// + /// AfterDeserializeDictionary will be called after the deserialization has finished, allowing customization of the + /// object before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Collections.IDictionary content that should be used. + + partial void AfterDeserializeDictionary(global::System.Collections.IDictionary content); + + /// + /// AfterDeserializePSObject will be called after the deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Management.Automation.PSObject content that should be used. + + partial void AfterDeserializePSObject(global::System.Management.Automation.PSObject content); + + /// + /// BeforeDeserializeDictionary will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Collections.IDictionary content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializeDictionary(global::System.Collections.IDictionary content, ref bool returnNow); + + /// + /// BeforeDeserializePSObject will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializePSObject(global::System.Management.Automation.PSObject content, ref bool returnNow); + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.INumberLessThanAdvancedFilter DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new NumberLessThanAdvancedFilter(content); + } + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.INumberLessThanAdvancedFilter DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new NumberLessThanAdvancedFilter(content); + } + + /// + /// Creates a new instance of , deserializing the content from a json string. + /// + /// a string containing a JSON serialized instance of this model. + /// an instance of the model class. + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.INumberLessThanAdvancedFilter FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode.Parse(jsonText)); + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + internal NumberLessThanAdvancedFilter(global::System.Collections.IDictionary content) + { + bool returnNow = false; + BeforeDeserializeDictionary(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("Value")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.INumberLessThanAdvancedFilterInternal)this).Value = (double?) content.GetValueForProperty("Value",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.INumberLessThanAdvancedFilterInternal)this).Value, (__y)=> (double) global::System.Convert.ChangeType(__y, typeof(double))); + } + if (content.Contains("OperatorType")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IAdvancedFilterInternal)this).OperatorType = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.AdvancedFilterOperatorType) content.GetValueForProperty("OperatorType",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IAdvancedFilterInternal)this).OperatorType, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.AdvancedFilterOperatorType.CreateFrom); + } + if (content.Contains("Key")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IAdvancedFilterInternal)this).Key = (string) content.GetValueForProperty("Key",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IAdvancedFilterInternal)this).Key, global::System.Convert.ToString); + } + AfterDeserializeDictionary(content); + } + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + internal NumberLessThanAdvancedFilter(global::System.Management.Automation.PSObject content) + { + bool returnNow = false; + BeforeDeserializePSObject(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("Value")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.INumberLessThanAdvancedFilterInternal)this).Value = (double?) content.GetValueForProperty("Value",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.INumberLessThanAdvancedFilterInternal)this).Value, (__y)=> (double) global::System.Convert.ChangeType(__y, typeof(double))); + } + if (content.Contains("OperatorType")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IAdvancedFilterInternal)this).OperatorType = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.AdvancedFilterOperatorType) content.GetValueForProperty("OperatorType",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IAdvancedFilterInternal)this).OperatorType, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.AdvancedFilterOperatorType.CreateFrom); + } + if (content.Contains("Key")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IAdvancedFilterInternal)this).Key = (string) content.GetValueForProperty("Key",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IAdvancedFilterInternal)this).Key, 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.EventGrid.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// NumberLessThan Advanced Filter. + [System.ComponentModel.TypeConverter(typeof(NumberLessThanAdvancedFilterTypeConverter))] + public partial interface INumberLessThanAdvancedFilter + + { + + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/NumberLessThanAdvancedFilter.TypeConverter.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/NumberLessThanAdvancedFilter.TypeConverter.cs new file mode 100644 index 000000000000..69b689fb4494 --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/NumberLessThanAdvancedFilter.TypeConverter.cs @@ -0,0 +1,147 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class NumberLessThanAdvancedFilterTypeConverter : global::System.Management.Automation.PSTypeConverter + { + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false. + /// + public override bool CanConvertFrom(object sourceValue, global::System.Type destinationType) => CanConvertFrom(sourceValue); + + /// + /// Determines if the converter can convert the parameter to the . + /// + /// the instance to check if it can be converted to the type. + /// + /// true if the instance could be converted to a type, otherwise false + /// + public static bool CanConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return true; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + // we say yest to PSObjects + return true; + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + // we say yest to Hashtables/dictionaries + return true; + } + try + { + if (null != sourceValue.ToJsonString()) + { + return true; + } + } + catch + { + // Not one of our objects + } + try + { + string text = sourceValue.ToString()?.Trim(); + return true == text?.StartsWith("{") && true == text?.EndsWith("}") && Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonType.Object; + } + catch + { + // Doesn't look like it can be treated as JSON + } + return false; + } + + /// + /// Determines if the parameter can be converted to the parameter + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false + /// + public override bool CanConvertTo(object sourceValue, global::System.Type destinationType) => false; + + /// + /// Converts the parameter to the parameter using and + /// + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// + /// an instance of , or null if there is no suitable conversion. + /// + public override object ConvertFrom(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => ConvertFrom(sourceValue); + + /// + /// Converts the parameter to the parameter using and + /// + /// the value to convert into an instance of . + /// + /// an instance of , or null if there is no suitable conversion. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.INumberLessThanAdvancedFilter ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.INumberLessThanAdvancedFilter).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return NumberLessThanAdvancedFilter.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return NumberLessThanAdvancedFilter.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return NumberLessThanAdvancedFilter.DeserializeFromDictionary(sourceValue); + } + return null; + } + + /// NotImplemented -- this will return null + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// will always return null. + public override object ConvertTo(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => null; + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/NumberLessThanAdvancedFilter.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/NumberLessThanAdvancedFilter.cs new file mode 100644 index 000000000000..99290eeac1d1 --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/NumberLessThanAdvancedFilter.cs @@ -0,0 +1,80 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Extensions; + + /// NumberLessThan Advanced Filter. + public partial class NumberLessThanAdvancedFilter : + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.INumberLessThanAdvancedFilter, + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.INumberLessThanAdvancedFilterInternal, + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IValidates + { + /// + /// Backing field for Inherited model + /// + private Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IAdvancedFilter __advancedFilter = new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.AdvancedFilter(); + + /// The field/property in the event based on which you want to filter. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Inherited)] + public string Key { get => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IAdvancedFilterInternal)__advancedFilter).Key; set => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IAdvancedFilterInternal)__advancedFilter).Key = value ?? null; } + + /// + /// The operator type used for filtering, e.g., NumberIn, StringContains, BoolEquals and others. + /// + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Inherited)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.AdvancedFilterOperatorType OperatorType { get => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IAdvancedFilterInternal)__advancedFilter).OperatorType; set => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IAdvancedFilterInternal)__advancedFilter).OperatorType = value ; } + + /// Backing field for property. + private double? _value; + + /// The filter value. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Owned)] + public double? Value { get => this._value; set => this._value = value; } + + /// Creates an new instance. + public NumberLessThanAdvancedFilter() + { + + } + + /// Validates that this object meets the validation criteria. + /// an instance that will receive validation + /// events. + /// + /// A that will be complete when validation is completed. + /// + public async global::System.Threading.Tasks.Task Validate(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener eventListener) + { + await eventListener.AssertNotNull(nameof(__advancedFilter), __advancedFilter); + await eventListener.AssertObjectIsValid(nameof(__advancedFilter), __advancedFilter); + } + } + /// NumberLessThan Advanced Filter. + public partial interface INumberLessThanAdvancedFilter : + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IJsonSerializable, + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IAdvancedFilter + { + /// The filter value. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The filter value.", + SerializedName = @"value", + PossibleTypes = new [] { typeof(double) })] + double? Value { get; set; } + + } + /// NumberLessThan Advanced Filter. + internal partial interface INumberLessThanAdvancedFilterInternal : + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IAdvancedFilterInternal + { + /// The filter value. + double? Value { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/NumberLessThanAdvancedFilter.json.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/NumberLessThanAdvancedFilter.json.cs new file mode 100644 index 000000000000..bd4f936a86b7 --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/NumberLessThanAdvancedFilter.json.cs @@ -0,0 +1,108 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Extensions; + + /// NumberLessThan Advanced Filter. + public partial class NumberLessThanAdvancedFilter + { + + /// + /// AfterFromJson will be called after the json deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JsonNode that should be deserialized into this object. + + partial void AfterFromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json erialization has finished, allowing customization of the before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JSON container that the serialization result will be placed in. + + partial void AfterToJson(ref Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject container); + + /// + /// BeforeFromJson will be called before the json deserialization has commenced, allowing complete customization of + /// the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JsonNode that should be deserialized into this object. + /// Determines if the rest of the deserialization should be processed, or if the method should return + /// instantly. + + partial void BeforeFromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject json, ref bool returnNow); + + /// + /// BeforeToJson will be called before the json serialization has commenced, allowing complete customization of the + /// object before it is serialized. + /// If you wish to disable the default serialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JSON container that the serialization result will be placed in. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeToJson(ref Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.INumberLessThanAdvancedFilter. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.INumberLessThanAdvancedFilter. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.INumberLessThanAdvancedFilter FromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject json ? new NumberLessThanAdvancedFilter(json) : null; + } + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject instance to deserialize from. + internal NumberLessThanAdvancedFilter(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject json) + { + bool returnNow = false; + BeforeFromJson(json, ref returnNow); + if (returnNow) + { + return; + } + __advancedFilter = new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.AdvancedFilter(json); + {_value = If( json?.PropertyT("value"), out var __jsonValue) ? (double?)__jsonValue : Value;} + AfterFromJson(json); + } + + /// + /// Serializes this instance of into a . + /// + /// The container to serialize this object into. If the caller + /// passes in null, a new instance will be created and returned to the caller. + /// Allows the caller to choose the depth of the serialization. See . + /// + /// a serialized instance of as a . + /// + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject(); + + bool returnNow = false; + BeforeToJson(ref container, ref returnNow); + if (returnNow) + { + return container; + } + __advancedFilter?.ToJson(container, serializationMode); + AddIf( null != this._value ? (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode)new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNumber((double)this._value) : null, "value" ,container.Add ); + AfterToJson(ref container); + return container; + } + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/NumberLessThanOrEqualsAdvancedFilter.PowerShell.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/NumberLessThanOrEqualsAdvancedFilter.PowerShell.cs new file mode 100644 index 000000000000..6d1a69ab3a80 --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/NumberLessThanOrEqualsAdvancedFilter.PowerShell.cs @@ -0,0 +1,162 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell; + + /// NumberLessThanOrEquals Advanced Filter. + [System.ComponentModel.TypeConverter(typeof(NumberLessThanOrEqualsAdvancedFilterTypeConverter))] + public partial class NumberLessThanOrEqualsAdvancedFilter + { + + /// + /// AfterDeserializeDictionary will be called after the deserialization has finished, allowing customization of the + /// object before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Collections.IDictionary content that should be used. + + partial void AfterDeserializeDictionary(global::System.Collections.IDictionary content); + + /// + /// AfterDeserializePSObject will be called after the deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Management.Automation.PSObject content that should be used. + + partial void AfterDeserializePSObject(global::System.Management.Automation.PSObject content); + + /// + /// BeforeDeserializeDictionary will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Collections.IDictionary content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializeDictionary(global::System.Collections.IDictionary content, ref bool returnNow); + + /// + /// BeforeDeserializePSObject will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializePSObject(global::System.Management.Automation.PSObject content, ref bool returnNow); + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.INumberLessThanOrEqualsAdvancedFilter DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new NumberLessThanOrEqualsAdvancedFilter(content); + } + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.INumberLessThanOrEqualsAdvancedFilter DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new NumberLessThanOrEqualsAdvancedFilter(content); + } + + /// + /// Creates a new instance of , deserializing the content from a json string. + /// + /// a string containing a JSON serialized instance of this model. + /// + /// an instance of the model class. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.INumberLessThanOrEqualsAdvancedFilter FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode.Parse(jsonText)); + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + internal NumberLessThanOrEqualsAdvancedFilter(global::System.Collections.IDictionary content) + { + bool returnNow = false; + BeforeDeserializeDictionary(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("Value")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.INumberLessThanOrEqualsAdvancedFilterInternal)this).Value = (double?) content.GetValueForProperty("Value",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.INumberLessThanOrEqualsAdvancedFilterInternal)this).Value, (__y)=> (double) global::System.Convert.ChangeType(__y, typeof(double))); + } + if (content.Contains("OperatorType")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IAdvancedFilterInternal)this).OperatorType = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.AdvancedFilterOperatorType) content.GetValueForProperty("OperatorType",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IAdvancedFilterInternal)this).OperatorType, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.AdvancedFilterOperatorType.CreateFrom); + } + if (content.Contains("Key")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IAdvancedFilterInternal)this).Key = (string) content.GetValueForProperty("Key",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IAdvancedFilterInternal)this).Key, global::System.Convert.ToString); + } + AfterDeserializeDictionary(content); + } + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + internal NumberLessThanOrEqualsAdvancedFilter(global::System.Management.Automation.PSObject content) + { + bool returnNow = false; + BeforeDeserializePSObject(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("Value")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.INumberLessThanOrEqualsAdvancedFilterInternal)this).Value = (double?) content.GetValueForProperty("Value",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.INumberLessThanOrEqualsAdvancedFilterInternal)this).Value, (__y)=> (double) global::System.Convert.ChangeType(__y, typeof(double))); + } + if (content.Contains("OperatorType")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IAdvancedFilterInternal)this).OperatorType = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.AdvancedFilterOperatorType) content.GetValueForProperty("OperatorType",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IAdvancedFilterInternal)this).OperatorType, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.AdvancedFilterOperatorType.CreateFrom); + } + if (content.Contains("Key")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IAdvancedFilterInternal)this).Key = (string) content.GetValueForProperty("Key",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IAdvancedFilterInternal)this).Key, 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.EventGrid.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// NumberLessThanOrEquals Advanced Filter. + [System.ComponentModel.TypeConverter(typeof(NumberLessThanOrEqualsAdvancedFilterTypeConverter))] + public partial interface INumberLessThanOrEqualsAdvancedFilter + + { + + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/NumberLessThanOrEqualsAdvancedFilter.TypeConverter.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/NumberLessThanOrEqualsAdvancedFilter.TypeConverter.cs new file mode 100644 index 000000000000..d29eeda47414 --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/NumberLessThanOrEqualsAdvancedFilter.TypeConverter.cs @@ -0,0 +1,149 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class NumberLessThanOrEqualsAdvancedFilterTypeConverter : global::System.Management.Automation.PSTypeConverter + { + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false. + /// + public override bool CanConvertFrom(object sourceValue, global::System.Type destinationType) => CanConvertFrom(sourceValue); + + /// + /// Determines if the converter can convert the parameter to the . + /// + /// the instance to check if it can be converted to the type. + /// + /// true if the instance could be converted to a type, otherwise + /// false + /// + public static bool CanConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return true; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + // we say yest to PSObjects + return true; + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + // we say yest to Hashtables/dictionaries + return true; + } + try + { + if (null != sourceValue.ToJsonString()) + { + return true; + } + } + catch + { + // Not one of our objects + } + try + { + string text = sourceValue.ToString()?.Trim(); + return true == text?.StartsWith("{") && true == text?.EndsWith("}") && Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonType.Object; + } + catch + { + // Doesn't look like it can be treated as JSON + } + return false; + } + + /// + /// Determines if the parameter can be converted to the parameter + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false + /// + public override bool CanConvertTo(object sourceValue, global::System.Type destinationType) => false; + + /// + /// Converts the parameter to the parameter using and + /// + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// + /// an instance of , or null if there is no suitable conversion. + /// + public override object ConvertFrom(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => ConvertFrom(sourceValue); + + /// + /// Converts the parameter to the parameter using and + /// + /// the value to convert into an instance of . + /// + /// an instance of , or null if there is no suitable conversion. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.INumberLessThanOrEqualsAdvancedFilter ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.INumberLessThanOrEqualsAdvancedFilter).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return NumberLessThanOrEqualsAdvancedFilter.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return NumberLessThanOrEqualsAdvancedFilter.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return NumberLessThanOrEqualsAdvancedFilter.DeserializeFromDictionary(sourceValue); + } + return null; + } + + /// NotImplemented -- this will return null + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// will always return null. + public override object ConvertTo(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => null; + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/NumberLessThanOrEqualsAdvancedFilter.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/NumberLessThanOrEqualsAdvancedFilter.cs new file mode 100644 index 000000000000..8bf11c27a5a4 --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/NumberLessThanOrEqualsAdvancedFilter.cs @@ -0,0 +1,80 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Extensions; + + /// NumberLessThanOrEquals Advanced Filter. + public partial class NumberLessThanOrEqualsAdvancedFilter : + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.INumberLessThanOrEqualsAdvancedFilter, + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.INumberLessThanOrEqualsAdvancedFilterInternal, + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IValidates + { + /// + /// Backing field for Inherited model + /// + private Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IAdvancedFilter __advancedFilter = new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.AdvancedFilter(); + + /// The field/property in the event based on which you want to filter. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Inherited)] + public string Key { get => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IAdvancedFilterInternal)__advancedFilter).Key; set => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IAdvancedFilterInternal)__advancedFilter).Key = value ?? null; } + + /// + /// The operator type used for filtering, e.g., NumberIn, StringContains, BoolEquals and others. + /// + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Inherited)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.AdvancedFilterOperatorType OperatorType { get => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IAdvancedFilterInternal)__advancedFilter).OperatorType; set => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IAdvancedFilterInternal)__advancedFilter).OperatorType = value ; } + + /// Backing field for property. + private double? _value; + + /// The filter value. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Owned)] + public double? Value { get => this._value; set => this._value = value; } + + /// Creates an new instance. + public NumberLessThanOrEqualsAdvancedFilter() + { + + } + + /// Validates that this object meets the validation criteria. + /// an instance that will receive validation + /// events. + /// + /// A that will be complete when validation is completed. + /// + public async global::System.Threading.Tasks.Task Validate(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener eventListener) + { + await eventListener.AssertNotNull(nameof(__advancedFilter), __advancedFilter); + await eventListener.AssertObjectIsValid(nameof(__advancedFilter), __advancedFilter); + } + } + /// NumberLessThanOrEquals Advanced Filter. + public partial interface INumberLessThanOrEqualsAdvancedFilter : + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IJsonSerializable, + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IAdvancedFilter + { + /// The filter value. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The filter value.", + SerializedName = @"value", + PossibleTypes = new [] { typeof(double) })] + double? Value { get; set; } + + } + /// NumberLessThanOrEquals Advanced Filter. + internal partial interface INumberLessThanOrEqualsAdvancedFilterInternal : + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IAdvancedFilterInternal + { + /// The filter value. + double? Value { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/NumberLessThanOrEqualsAdvancedFilter.json.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/NumberLessThanOrEqualsAdvancedFilter.json.cs new file mode 100644 index 000000000000..a4bd1a497dc2 --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/NumberLessThanOrEqualsAdvancedFilter.json.cs @@ -0,0 +1,109 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Extensions; + + /// NumberLessThanOrEquals Advanced Filter. + public partial class NumberLessThanOrEqualsAdvancedFilter + { + + /// + /// AfterFromJson will be called after the json deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JsonNode that should be deserialized into this object. + + partial void AfterFromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json erialization has finished, allowing customization of the before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JSON container that the serialization result will be placed in. + + partial void AfterToJson(ref Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject container); + + /// + /// BeforeFromJson will be called before the json deserialization has commenced, allowing complete customization of + /// the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JsonNode that should be deserialized into this object. + /// Determines if the rest of the deserialization should be processed, or if the method should return + /// instantly. + + partial void BeforeFromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject json, ref bool returnNow); + + /// + /// BeforeToJson will be called before the json serialization has commenced, allowing complete customization of the + /// object before it is serialized. + /// If you wish to disable the default serialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JSON container that the serialization result will be placed in. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeToJson(ref Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.INumberLessThanOrEqualsAdvancedFilter. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.INumberLessThanOrEqualsAdvancedFilter. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.INumberLessThanOrEqualsAdvancedFilter FromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject json ? new NumberLessThanOrEqualsAdvancedFilter(json) : null; + } + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject instance to deserialize from. + internal NumberLessThanOrEqualsAdvancedFilter(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject json) + { + bool returnNow = false; + BeforeFromJson(json, ref returnNow); + if (returnNow) + { + return; + } + __advancedFilter = new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.AdvancedFilter(json); + {_value = If( json?.PropertyT("value"), out var __jsonValue) ? (double?)__jsonValue : Value;} + AfterFromJson(json); + } + + /// + /// Serializes this instance of into a . + /// + /// The container to serialize this object into. If the caller + /// passes in null, a new instance will be created and returned to the caller. + /// Allows the caller to choose the depth of the serialization. See . + /// + /// a serialized instance of as a . + /// + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject(); + + bool returnNow = false; + BeforeToJson(ref container, ref returnNow); + if (returnNow) + { + return container; + } + __advancedFilter?.ToJson(container, serializationMode); + AddIf( null != this._value ? (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode)new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNumber((double)this._value) : null, "value" ,container.Add ); + AfterToJson(ref container); + return container; + } + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/NumberNotInAdvancedFilter.PowerShell.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/NumberNotInAdvancedFilter.PowerShell.cs new file mode 100644 index 000000000000..f5d00c53827c --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/NumberNotInAdvancedFilter.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.EventGrid.Models.Api20211015Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell; + + /// NumberNotIn Advanced Filter. + [System.ComponentModel.TypeConverter(typeof(NumberNotInAdvancedFilterTypeConverter))] + public partial class NumberNotInAdvancedFilter + { + + /// + /// AfterDeserializeDictionary will be called after the deserialization has finished, allowing customization of the + /// object before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Collections.IDictionary content that should be used. + + partial void AfterDeserializeDictionary(global::System.Collections.IDictionary content); + + /// + /// AfterDeserializePSObject will be called after the deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Management.Automation.PSObject content that should be used. + + partial void AfterDeserializePSObject(global::System.Management.Automation.PSObject content); + + /// + /// BeforeDeserializeDictionary will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Collections.IDictionary content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializeDictionary(global::System.Collections.IDictionary content, ref bool returnNow); + + /// + /// BeforeDeserializePSObject will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializePSObject(global::System.Management.Automation.PSObject content, ref bool returnNow); + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.INumberNotInAdvancedFilter DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new NumberNotInAdvancedFilter(content); + } + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.INumberNotInAdvancedFilter DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new NumberNotInAdvancedFilter(content); + } + + /// + /// Creates a new instance of , deserializing the content from a json string. + /// + /// a string containing a JSON serialized instance of this model. + /// an instance of the model class. + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.INumberNotInAdvancedFilter FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode.Parse(jsonText)); + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + internal NumberNotInAdvancedFilter(global::System.Collections.IDictionary content) + { + bool returnNow = false; + BeforeDeserializeDictionary(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("Value")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.INumberNotInAdvancedFilterInternal)this).Value = (double[]) content.GetValueForProperty("Value",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.INumberNotInAdvancedFilterInternal)this).Value, __y => TypeConverterExtensions.SelectToArray(__y, (__w)=> (double) global::System.Convert.ChangeType(__w, typeof(double)))); + } + if (content.Contains("OperatorType")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IAdvancedFilterInternal)this).OperatorType = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.AdvancedFilterOperatorType) content.GetValueForProperty("OperatorType",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IAdvancedFilterInternal)this).OperatorType, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.AdvancedFilterOperatorType.CreateFrom); + } + if (content.Contains("Key")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IAdvancedFilterInternal)this).Key = (string) content.GetValueForProperty("Key",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IAdvancedFilterInternal)this).Key, global::System.Convert.ToString); + } + AfterDeserializeDictionary(content); + } + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + internal NumberNotInAdvancedFilter(global::System.Management.Automation.PSObject content) + { + bool returnNow = false; + BeforeDeserializePSObject(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("Value")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.INumberNotInAdvancedFilterInternal)this).Value = (double[]) content.GetValueForProperty("Value",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.INumberNotInAdvancedFilterInternal)this).Value, __y => TypeConverterExtensions.SelectToArray(__y, (__w)=> (double) global::System.Convert.ChangeType(__w, typeof(double)))); + } + if (content.Contains("OperatorType")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IAdvancedFilterInternal)this).OperatorType = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.AdvancedFilterOperatorType) content.GetValueForProperty("OperatorType",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IAdvancedFilterInternal)this).OperatorType, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.AdvancedFilterOperatorType.CreateFrom); + } + if (content.Contains("Key")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IAdvancedFilterInternal)this).Key = (string) content.GetValueForProperty("Key",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IAdvancedFilterInternal)this).Key, 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.EventGrid.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// NumberNotIn Advanced Filter. + [System.ComponentModel.TypeConverter(typeof(NumberNotInAdvancedFilterTypeConverter))] + public partial interface INumberNotInAdvancedFilter + + { + + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/NumberNotInAdvancedFilter.TypeConverter.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/NumberNotInAdvancedFilter.TypeConverter.cs new file mode 100644 index 000000000000..d55f12e3b3a5 --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/NumberNotInAdvancedFilter.TypeConverter.cs @@ -0,0 +1,147 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class NumberNotInAdvancedFilterTypeConverter : global::System.Management.Automation.PSTypeConverter + { + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false. + /// + public override bool CanConvertFrom(object sourceValue, global::System.Type destinationType) => CanConvertFrom(sourceValue); + + /// + /// Determines if the converter can convert the parameter to the . + /// + /// the instance to check if it can be converted to the type. + /// + /// true if the instance could be converted to a type, otherwise false + /// + public static bool CanConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return true; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + // we say yest to PSObjects + return true; + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + // we say yest to Hashtables/dictionaries + return true; + } + try + { + if (null != sourceValue.ToJsonString()) + { + return true; + } + } + catch + { + // Not one of our objects + } + try + { + string text = sourceValue.ToString()?.Trim(); + return true == text?.StartsWith("{") && true == text?.EndsWith("}") && Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonType.Object; + } + catch + { + // Doesn't look like it can be treated as JSON + } + return false; + } + + /// + /// Determines if the parameter can be converted to the parameter + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false + /// + public override bool CanConvertTo(object sourceValue, global::System.Type destinationType) => false; + + /// + /// Converts the parameter to the parameter using and + /// + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// + /// an instance of , or null if there is no suitable conversion. + /// + public override object ConvertFrom(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => ConvertFrom(sourceValue); + + /// + /// Converts the parameter to the parameter using and + /// + /// the value to convert into an instance of . + /// + /// an instance of , or null if there is no suitable conversion. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.INumberNotInAdvancedFilter ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.INumberNotInAdvancedFilter).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return NumberNotInAdvancedFilter.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return NumberNotInAdvancedFilter.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return NumberNotInAdvancedFilter.DeserializeFromDictionary(sourceValue); + } + return null; + } + + /// NotImplemented -- this will return null + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// will always return null. + public override object ConvertTo(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => null; + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/NumberNotInAdvancedFilter.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/NumberNotInAdvancedFilter.cs new file mode 100644 index 000000000000..1c67a1540861 --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/NumberNotInAdvancedFilter.cs @@ -0,0 +1,80 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Extensions; + + /// NumberNotIn Advanced Filter. + public partial class NumberNotInAdvancedFilter : + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.INumberNotInAdvancedFilter, + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.INumberNotInAdvancedFilterInternal, + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IValidates + { + /// + /// Backing field for Inherited model + /// + private Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IAdvancedFilter __advancedFilter = new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.AdvancedFilter(); + + /// The field/property in the event based on which you want to filter. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Inherited)] + public string Key { get => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IAdvancedFilterInternal)__advancedFilter).Key; set => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IAdvancedFilterInternal)__advancedFilter).Key = value ?? null; } + + /// + /// The operator type used for filtering, e.g., NumberIn, StringContains, BoolEquals and others. + /// + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Inherited)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.AdvancedFilterOperatorType OperatorType { get => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IAdvancedFilterInternal)__advancedFilter).OperatorType; set => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IAdvancedFilterInternal)__advancedFilter).OperatorType = value ; } + + /// Backing field for property. + private double[] _value; + + /// The set of filter values. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Owned)] + public double[] Value { get => this._value; set => this._value = value; } + + /// Creates an new instance. + public NumberNotInAdvancedFilter() + { + + } + + /// Validates that this object meets the validation criteria. + /// an instance that will receive validation + /// events. + /// + /// A that will be complete when validation is completed. + /// + public async global::System.Threading.Tasks.Task Validate(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener eventListener) + { + await eventListener.AssertNotNull(nameof(__advancedFilter), __advancedFilter); + await eventListener.AssertObjectIsValid(nameof(__advancedFilter), __advancedFilter); + } + } + /// NumberNotIn Advanced Filter. + public partial interface INumberNotInAdvancedFilter : + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IJsonSerializable, + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IAdvancedFilter + { + /// The set of filter values. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The set of filter values.", + SerializedName = @"values", + PossibleTypes = new [] { typeof(double) })] + double[] Value { get; set; } + + } + /// NumberNotIn Advanced Filter. + internal partial interface INumberNotInAdvancedFilterInternal : + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IAdvancedFilterInternal + { + /// The set of filter values. + double[] Value { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/NumberNotInAdvancedFilter.json.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/NumberNotInAdvancedFilter.json.cs new file mode 100644 index 000000000000..a22967bbb87c --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/NumberNotInAdvancedFilter.json.cs @@ -0,0 +1,116 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Extensions; + + /// NumberNotIn Advanced Filter. + public partial class NumberNotInAdvancedFilter + { + + /// + /// AfterFromJson will be called after the json deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JsonNode that should be deserialized into this object. + + partial void AfterFromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json erialization has finished, allowing customization of the before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JSON container that the serialization result will be placed in. + + partial void AfterToJson(ref Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject container); + + /// + /// BeforeFromJson will be called before the json deserialization has commenced, allowing complete customization of + /// the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JsonNode that should be deserialized into this object. + /// Determines if the rest of the deserialization should be processed, or if the method should return + /// instantly. + + partial void BeforeFromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject json, ref bool returnNow); + + /// + /// BeforeToJson will be called before the json serialization has commenced, allowing complete customization of the + /// object before it is serialized. + /// If you wish to disable the default serialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JSON container that the serialization result will be placed in. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeToJson(ref Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.INumberNotInAdvancedFilter. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.INumberNotInAdvancedFilter. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.INumberNotInAdvancedFilter FromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject json ? new NumberNotInAdvancedFilter(json) : null; + } + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject instance to deserialize from. + internal NumberNotInAdvancedFilter(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject json) + { + bool returnNow = false; + BeforeFromJson(json, ref returnNow); + if (returnNow) + { + return; + } + __advancedFilter = new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.AdvancedFilter(json); + {_value = If( json?.PropertyT("values"), out var __jsonValues) ? If( __jsonValues as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonArray, out var __v) ? new global::System.Func(()=> global::System.Linq.Enumerable.ToArray(global::System.Linq.Enumerable.Select(__v, (__u)=>(double) (__u is Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNumber __t ? (double)__t : default(double))) ))() : null : Value;} + AfterFromJson(json); + } + + /// + /// Serializes this instance of into a . + /// + /// The container to serialize this object into. If the caller + /// passes in null, a new instance will be created and returned to the caller. + /// Allows the caller to choose the depth of the serialization. See . + /// + /// a serialized instance of as a . + /// + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject(); + + bool returnNow = false; + BeforeToJson(ref container, ref returnNow); + if (returnNow) + { + return container; + } + __advancedFilter?.ToJson(container, serializationMode); + if (null != this._value) + { + var __w = new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.XNodeArray(); + foreach( var __x in this._value ) + { + AddIf((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode)new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNumber(__x) ,__w.Add); + } + container.Add("values",__w); + } + AfterToJson(ref container); + return container; + } + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/NumberNotInRangeAdvancedFilter.PowerShell.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/NumberNotInRangeAdvancedFilter.PowerShell.cs new file mode 100644 index 000000000000..bf6a3e8143c3 --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/NumberNotInRangeAdvancedFilter.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.EventGrid.Models.Api20211015Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell; + + /// NumberNotInRange Advanced Filter. + [System.ComponentModel.TypeConverter(typeof(NumberNotInRangeAdvancedFilterTypeConverter))] + public partial class NumberNotInRangeAdvancedFilter + { + + /// + /// AfterDeserializeDictionary will be called after the deserialization has finished, allowing customization of the + /// object before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Collections.IDictionary content that should be used. + + partial void AfterDeserializeDictionary(global::System.Collections.IDictionary content); + + /// + /// AfterDeserializePSObject will be called after the deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Management.Automation.PSObject content that should be used. + + partial void AfterDeserializePSObject(global::System.Management.Automation.PSObject content); + + /// + /// BeforeDeserializeDictionary will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Collections.IDictionary content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializeDictionary(global::System.Collections.IDictionary content, ref bool returnNow); + + /// + /// BeforeDeserializePSObject will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializePSObject(global::System.Management.Automation.PSObject content, ref bool returnNow); + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.INumberNotInRangeAdvancedFilter DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new NumberNotInRangeAdvancedFilter(content); + } + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.INumberNotInRangeAdvancedFilter DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new NumberNotInRangeAdvancedFilter(content); + } + + /// + /// Creates a new instance of , deserializing the content from a json string. + /// + /// a string containing a JSON serialized instance of this model. + /// an instance of the model class. + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.INumberNotInRangeAdvancedFilter FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode.Parse(jsonText)); + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + internal NumberNotInRangeAdvancedFilter(global::System.Collections.IDictionary content) + { + bool returnNow = false; + BeforeDeserializeDictionary(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("Value")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.INumberNotInRangeAdvancedFilterInternal)this).Value = (double[][]) content.GetValueForProperty("Value",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.INumberNotInRangeAdvancedFilterInternal)this).Value, __y => TypeConverterExtensions.SelectToArray(__y, __w => TypeConverterExtensions.SelectToArray(__w, (__u)=> (double) global::System.Convert.ChangeType(__u, typeof(double))))); + } + if (content.Contains("OperatorType")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IAdvancedFilterInternal)this).OperatorType = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.AdvancedFilterOperatorType) content.GetValueForProperty("OperatorType",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IAdvancedFilterInternal)this).OperatorType, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.AdvancedFilterOperatorType.CreateFrom); + } + if (content.Contains("Key")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IAdvancedFilterInternal)this).Key = (string) content.GetValueForProperty("Key",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IAdvancedFilterInternal)this).Key, global::System.Convert.ToString); + } + AfterDeserializeDictionary(content); + } + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + internal NumberNotInRangeAdvancedFilter(global::System.Management.Automation.PSObject content) + { + bool returnNow = false; + BeforeDeserializePSObject(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("Value")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.INumberNotInRangeAdvancedFilterInternal)this).Value = (double[][]) content.GetValueForProperty("Value",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.INumberNotInRangeAdvancedFilterInternal)this).Value, __y => TypeConverterExtensions.SelectToArray(__y, __w => TypeConverterExtensions.SelectToArray(__w, (__u)=> (double) global::System.Convert.ChangeType(__u, typeof(double))))); + } + if (content.Contains("OperatorType")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IAdvancedFilterInternal)this).OperatorType = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.AdvancedFilterOperatorType) content.GetValueForProperty("OperatorType",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IAdvancedFilterInternal)this).OperatorType, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.AdvancedFilterOperatorType.CreateFrom); + } + if (content.Contains("Key")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IAdvancedFilterInternal)this).Key = (string) content.GetValueForProperty("Key",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IAdvancedFilterInternal)this).Key, 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.EventGrid.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// NumberNotInRange Advanced Filter. + [System.ComponentModel.TypeConverter(typeof(NumberNotInRangeAdvancedFilterTypeConverter))] + public partial interface INumberNotInRangeAdvancedFilter + + { + + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/NumberNotInRangeAdvancedFilter.TypeConverter.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/NumberNotInRangeAdvancedFilter.TypeConverter.cs new file mode 100644 index 000000000000..5a84202e7570 --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/NumberNotInRangeAdvancedFilter.TypeConverter.cs @@ -0,0 +1,147 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class NumberNotInRangeAdvancedFilterTypeConverter : global::System.Management.Automation.PSTypeConverter + { + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false. + /// + public override bool CanConvertFrom(object sourceValue, global::System.Type destinationType) => CanConvertFrom(sourceValue); + + /// + /// Determines if the converter can convert the parameter to the . + /// + /// the instance to check if it can be converted to the type. + /// + /// true if the instance could be converted to a type, otherwise false + /// + public static bool CanConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return true; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + // we say yest to PSObjects + return true; + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + // we say yest to Hashtables/dictionaries + return true; + } + try + { + if (null != sourceValue.ToJsonString()) + { + return true; + } + } + catch + { + // Not one of our objects + } + try + { + string text = sourceValue.ToString()?.Trim(); + return true == text?.StartsWith("{") && true == text?.EndsWith("}") && Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonType.Object; + } + catch + { + // Doesn't look like it can be treated as JSON + } + return false; + } + + /// + /// Determines if the parameter can be converted to the parameter + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false + /// + public override bool CanConvertTo(object sourceValue, global::System.Type destinationType) => false; + + /// + /// Converts the parameter to the parameter using and + /// + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// + /// an instance of , or null if there is no suitable conversion. + /// + public override object ConvertFrom(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => ConvertFrom(sourceValue); + + /// + /// Converts the parameter to the parameter using and + /// + /// the value to convert into an instance of . + /// + /// an instance of , or null if there is no suitable conversion. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.INumberNotInRangeAdvancedFilter ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.INumberNotInRangeAdvancedFilter).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return NumberNotInRangeAdvancedFilter.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return NumberNotInRangeAdvancedFilter.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return NumberNotInRangeAdvancedFilter.DeserializeFromDictionary(sourceValue); + } + return null; + } + + /// NotImplemented -- this will return null + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// will always return null. + public override object ConvertTo(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => null; + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/NumberNotInRangeAdvancedFilter.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/NumberNotInRangeAdvancedFilter.cs new file mode 100644 index 000000000000..447d2cf4da3c --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/NumberNotInRangeAdvancedFilter.cs @@ -0,0 +1,80 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Extensions; + + /// NumberNotInRange Advanced Filter. + public partial class NumberNotInRangeAdvancedFilter : + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.INumberNotInRangeAdvancedFilter, + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.INumberNotInRangeAdvancedFilterInternal, + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IValidates + { + /// + /// Backing field for Inherited model + /// + private Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IAdvancedFilter __advancedFilter = new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.AdvancedFilter(); + + /// The field/property in the event based on which you want to filter. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Inherited)] + public string Key { get => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IAdvancedFilterInternal)__advancedFilter).Key; set => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IAdvancedFilterInternal)__advancedFilter).Key = value ?? null; } + + /// + /// The operator type used for filtering, e.g., NumberIn, StringContains, BoolEquals and others. + /// + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Inherited)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.AdvancedFilterOperatorType OperatorType { get => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IAdvancedFilterInternal)__advancedFilter).OperatorType; set => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IAdvancedFilterInternal)__advancedFilter).OperatorType = value ; } + + /// Backing field for property. + private double[][] _value; + + /// The set of filter values. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Owned)] + public double[][] Value { get => this._value; set => this._value = value; } + + /// Creates an new instance. + public NumberNotInRangeAdvancedFilter() + { + + } + + /// Validates that this object meets the validation criteria. + /// an instance that will receive validation + /// events. + /// + /// A that will be complete when validation is completed. + /// + public async global::System.Threading.Tasks.Task Validate(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener eventListener) + { + await eventListener.AssertNotNull(nameof(__advancedFilter), __advancedFilter); + await eventListener.AssertObjectIsValid(nameof(__advancedFilter), __advancedFilter); + } + } + /// NumberNotInRange Advanced Filter. + public partial interface INumberNotInRangeAdvancedFilter : + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IJsonSerializable, + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IAdvancedFilter + { + /// The set of filter values. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The set of filter values.", + SerializedName = @"values", + PossibleTypes = new [] { typeof(double) })] + double[][] Value { get; set; } + + } + /// NumberNotInRange Advanced Filter. + internal partial interface INumberNotInRangeAdvancedFilterInternal : + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IAdvancedFilterInternal + { + /// The set of filter values. + double[][] Value { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/NumberNotInRangeAdvancedFilter.json.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/NumberNotInRangeAdvancedFilter.json.cs new file mode 100644 index 000000000000..659fcca4dfb8 --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/NumberNotInRangeAdvancedFilter.json.cs @@ -0,0 +1,116 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Extensions; + + /// NumberNotInRange Advanced Filter. + public partial class NumberNotInRangeAdvancedFilter + { + + /// + /// AfterFromJson will be called after the json deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JsonNode that should be deserialized into this object. + + partial void AfterFromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json erialization has finished, allowing customization of the before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JSON container that the serialization result will be placed in. + + partial void AfterToJson(ref Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject container); + + /// + /// BeforeFromJson will be called before the json deserialization has commenced, allowing complete customization of + /// the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JsonNode that should be deserialized into this object. + /// Determines if the rest of the deserialization should be processed, or if the method should return + /// instantly. + + partial void BeforeFromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject json, ref bool returnNow); + + /// + /// BeforeToJson will be called before the json serialization has commenced, allowing complete customization of the + /// object before it is serialized. + /// If you wish to disable the default serialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JSON container that the serialization result will be placed in. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeToJson(ref Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.INumberNotInRangeAdvancedFilter. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.INumberNotInRangeAdvancedFilter. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.INumberNotInRangeAdvancedFilter FromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject json ? new NumberNotInRangeAdvancedFilter(json) : null; + } + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject instance to deserialize from. + internal NumberNotInRangeAdvancedFilter(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject json) + { + bool returnNow = false; + BeforeFromJson(json, ref returnNow); + if (returnNow) + { + return; + } + __advancedFilter = new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.AdvancedFilter(json); + {_value = If( json?.PropertyT("values"), out var __jsonValues) ? If( __jsonValues as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonArray, out var __u) ? new global::System.Func(()=> global::System.Linq.Enumerable.ToArray(global::System.Linq.Enumerable.Select(__u, (__t)=>(double[]) (If( __t as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonArray, out var __s) ? new global::System.Func(()=> global::System.Linq.Enumerable.ToArray(global::System.Linq.Enumerable.Select(__s, (__r)=>(double) (__r is Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNumber __q ? (double)__q : default(double))) ))() : null /* arrayOf */)) ))() : null : Value;} + AfterFromJson(json); + } + + /// + /// Serializes this instance of into a . + /// + /// The container to serialize this object into. If the caller + /// passes in null, a new instance will be created and returned to the caller. + /// Allows the caller to choose the depth of the serialization. See . + /// + /// a serialized instance of as a . + /// + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject(); + + bool returnNow = false; + BeforeToJson(ref container, ref returnNow); + if (returnNow) + { + return container; + } + __advancedFilter?.ToJson(container, serializationMode); + if (null != this._value) + { + var __w = new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.XNodeArray(); + foreach( var __x in this._value ) + { + AddIf(null != __x ? new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.XNodeArray(global::System.Linq.Enumerable.ToArray(System.Linq.Enumerable.Select(__x, (__v) => (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode)new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNumber(__v)))) : null ,__w.Add); + } + container.Add("values",__w); + } + AfterToJson(ref container); + return container; + } + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/Operation.PowerShell.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/Operation.PowerShell.cs new file mode 100644 index 000000000000..3a3280a930fe --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/Operation.PowerShell.cs @@ -0,0 +1,206 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell; + + /// Represents an operation returned by the GetOperations request. + [System.ComponentModel.TypeConverter(typeof(OperationTypeConverter))] + public partial class Operation + { + + /// + /// AfterDeserializeDictionary will be called after the deserialization has finished, allowing customization of the + /// object before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Collections.IDictionary content that should be used. + + partial void AfterDeserializeDictionary(global::System.Collections.IDictionary content); + + /// + /// AfterDeserializePSObject will be called after the deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Management.Automation.PSObject content that should be used. + + partial void AfterDeserializePSObject(global::System.Management.Automation.PSObject content); + + /// + /// BeforeDeserializeDictionary will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Collections.IDictionary content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializeDictionary(global::System.Collections.IDictionary content, ref bool returnNow); + + /// + /// BeforeDeserializePSObject will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializePSObject(global::System.Management.Automation.PSObject content, ref bool returnNow); + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IOperation DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new Operation(content); + } + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IOperation DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new Operation(content); + } + + /// + /// Creates a new instance of , deserializing the content from a json string. + /// + /// a string containing a JSON serialized instance of this model. + /// an instance of the model class. + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IOperation FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode.Parse(jsonText)); + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + internal Operation(global::System.Collections.IDictionary content) + { + bool returnNow = false; + BeforeDeserializeDictionary(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("Display")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IOperationInternal)this).Display = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IOperationInfo) content.GetValueForProperty("Display",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IOperationInternal)this).Display, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.OperationInfoTypeConverter.ConvertFrom); + } + if (content.Contains("Name")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IOperationInternal)this).Name = (string) content.GetValueForProperty("Name",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IOperationInternal)this).Name, global::System.Convert.ToString); + } + if (content.Contains("Origin")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IOperationInternal)this).Origin = (string) content.GetValueForProperty("Origin",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IOperationInternal)this).Origin, global::System.Convert.ToString); + } + if (content.Contains("IsDataAction")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IOperationInternal)this).IsDataAction = (bool?) content.GetValueForProperty("IsDataAction",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IOperationInternal)this).IsDataAction, (__y)=> (bool) global::System.Convert.ChangeType(__y, typeof(bool))); + } + if (content.Contains("Property")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IOperationInternal)this).Property = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.IAny) content.GetValueForProperty("Property",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IOperationInternal)this).Property, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.AnyTypeConverter.ConvertFrom); + } + if (content.Contains("DisplayProvider")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IOperationInternal)this).DisplayProvider = (string) content.GetValueForProperty("DisplayProvider",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IOperationInternal)this).DisplayProvider, global::System.Convert.ToString); + } + if (content.Contains("DisplayResource")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IOperationInternal)this).DisplayResource = (string) content.GetValueForProperty("DisplayResource",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IOperationInternal)this).DisplayResource, global::System.Convert.ToString); + } + if (content.Contains("DisplayOperation")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IOperationInternal)this).DisplayOperation = (string) content.GetValueForProperty("DisplayOperation",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IOperationInternal)this).DisplayOperation, global::System.Convert.ToString); + } + if (content.Contains("DisplayDescription")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IOperationInternal)this).DisplayDescription = (string) content.GetValueForProperty("DisplayDescription",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IOperationInternal)this).DisplayDescription, global::System.Convert.ToString); + } + AfterDeserializeDictionary(content); + } + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + internal Operation(global::System.Management.Automation.PSObject content) + { + bool returnNow = false; + BeforeDeserializePSObject(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("Display")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IOperationInternal)this).Display = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IOperationInfo) content.GetValueForProperty("Display",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IOperationInternal)this).Display, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.OperationInfoTypeConverter.ConvertFrom); + } + if (content.Contains("Name")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IOperationInternal)this).Name = (string) content.GetValueForProperty("Name",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IOperationInternal)this).Name, global::System.Convert.ToString); + } + if (content.Contains("Origin")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IOperationInternal)this).Origin = (string) content.GetValueForProperty("Origin",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IOperationInternal)this).Origin, global::System.Convert.ToString); + } + if (content.Contains("IsDataAction")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IOperationInternal)this).IsDataAction = (bool?) content.GetValueForProperty("IsDataAction",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IOperationInternal)this).IsDataAction, (__y)=> (bool) global::System.Convert.ChangeType(__y, typeof(bool))); + } + if (content.Contains("Property")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IOperationInternal)this).Property = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.IAny) content.GetValueForProperty("Property",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IOperationInternal)this).Property, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.AnyTypeConverter.ConvertFrom); + } + if (content.Contains("DisplayProvider")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IOperationInternal)this).DisplayProvider = (string) content.GetValueForProperty("DisplayProvider",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IOperationInternal)this).DisplayProvider, global::System.Convert.ToString); + } + if (content.Contains("DisplayResource")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IOperationInternal)this).DisplayResource = (string) content.GetValueForProperty("DisplayResource",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IOperationInternal)this).DisplayResource, global::System.Convert.ToString); + } + if (content.Contains("DisplayOperation")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IOperationInternal)this).DisplayOperation = (string) content.GetValueForProperty("DisplayOperation",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IOperationInternal)this).DisplayOperation, global::System.Convert.ToString); + } + if (content.Contains("DisplayDescription")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IOperationInternal)this).DisplayDescription = (string) content.GetValueForProperty("DisplayDescription",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IOperationInternal)this).DisplayDescription, global::System.Convert.ToString); + } + AfterDeserializePSObject(content); + } + + /// Serializes this instance to a json string. + + /// a containing this model serialized to JSON text. + public string ToJsonString() => ToJson(null, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// Represents an operation returned by the GetOperations request. + [System.ComponentModel.TypeConverter(typeof(OperationTypeConverter))] + public partial interface IOperation + + { + + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/Operation.TypeConverter.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/Operation.TypeConverter.cs new file mode 100644 index 000000000000..75c324133bb3 --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/Operation.TypeConverter.cs @@ -0,0 +1,146 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class OperationTypeConverter : global::System.Management.Automation.PSTypeConverter + { + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false. + /// + public override bool CanConvertFrom(object sourceValue, global::System.Type destinationType) => CanConvertFrom(sourceValue); + + /// + /// Determines if the converter can convert the parameter to the . + /// + /// the instance to check if it can be converted to the type. + /// + /// true if the instance could be converted to a type, otherwise false + /// + public static bool CanConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return true; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + // we say yest to PSObjects + return true; + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + // we say yest to Hashtables/dictionaries + return true; + } + try + { + if (null != sourceValue.ToJsonString()) + { + return true; + } + } + catch + { + // Not one of our objects + } + try + { + string text = sourceValue.ToString()?.Trim(); + return true == text?.StartsWith("{") && true == text?.EndsWith("}") && Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonType.Object; + } + catch + { + // Doesn't look like it can be treated as JSON + } + return false; + } + + /// + /// Determines if the parameter can be converted to the parameter + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false + /// + public override bool CanConvertTo(object sourceValue, global::System.Type destinationType) => false; + + /// + /// Converts the parameter to the parameter using and + /// + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// + /// an instance of , or null if there is no suitable conversion. + /// + public override object ConvertFrom(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => ConvertFrom(sourceValue); + + /// + /// Converts the parameter to the parameter using and + /// + /// the value to convert into an instance of . + /// + /// an instance of , or null if there is no suitable conversion. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IOperation ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IOperation).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return Operation.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return Operation.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return Operation.DeserializeFromDictionary(sourceValue); + } + return null; + } + + /// NotImplemented -- this will return null + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// will always return null. + public override object ConvertTo(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => null; + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/Operation.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/Operation.cs new file mode 100644 index 000000000000..997ac092cc1e --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/Operation.cs @@ -0,0 +1,176 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Extensions; + + /// Represents an operation returned by the GetOperations request. + public partial class Operation : + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IOperation, + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IOperationInternal + { + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IOperationInfo _display; + + /// Display name of the operation. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Owned)] + internal Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IOperationInfo Display { get => (this._display = this._display ?? new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.OperationInfo()); set => this._display = value; } + + /// Description of the operation + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Inlined)] + public string DisplayDescription { get => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IOperationInfoInternal)Display).Description; set => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IOperationInfoInternal)Display).Description = value ?? null; } + + /// Name of the operation + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Inlined)] + public string DisplayOperation { get => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IOperationInfoInternal)Display).Operation; set => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IOperationInfoInternal)Display).Operation = value ?? null; } + + /// Name of the provider + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Inlined)] + public string DisplayProvider { get => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IOperationInfoInternal)Display).Provider; set => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IOperationInfoInternal)Display).Provider = value ?? null; } + + /// Name of the resource type + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Inlined)] + public string DisplayResource { get => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IOperationInfoInternal)Display).Resource; set => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IOperationInfoInternal)Display).Resource = value ?? null; } + + /// Backing field for property. + private bool? _isDataAction; + + /// + /// This Boolean is used to determine if the operation is a data plane action or not. + /// + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Owned)] + public bool? IsDataAction { get => this._isDataAction; set => this._isDataAction = value; } + + /// Internal Acessors for Display + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IOperationInfo Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IOperationInternal.Display { get => (this._display = this._display ?? new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.OperationInfo()); set { {_display = value;} } } + + /// Backing field for property. + private string _name; + + /// Name of the operation. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Owned)] + public string Name { get => this._name; set => this._name = value; } + + /// Backing field for property. + private string _origin; + + /// Origin of the operation. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Owned)] + public string Origin { get => this._origin; set => this._origin = value; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.IAny _property; + + /// Properties of the operation. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Owned)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.IAny Property { get => (this._property = this._property ?? new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Any()); set => this._property = value; } + + /// Creates an new instance. + public Operation() + { + + } + } + /// Represents an operation returned by the GetOperations request. + public partial interface IOperation : + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IJsonSerializable + { + /// Description of the operation + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Description of the operation", + SerializedName = @"description", + PossibleTypes = new [] { typeof(string) })] + string DisplayDescription { get; set; } + /// Name of the operation + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Name of the operation", + SerializedName = @"operation", + PossibleTypes = new [] { typeof(string) })] + string DisplayOperation { get; set; } + /// Name of the provider + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Name of the provider", + SerializedName = @"provider", + PossibleTypes = new [] { typeof(string) })] + string DisplayProvider { get; set; } + /// Name of the resource type + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Name of the resource type", + SerializedName = @"resource", + PossibleTypes = new [] { typeof(string) })] + string DisplayResource { get; set; } + /// + /// This Boolean is used to determine if the operation is a data plane action or not. + /// + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"This Boolean is used to determine if the operation is a data plane action or not.", + SerializedName = @"isDataAction", + PossibleTypes = new [] { typeof(bool) })] + bool? IsDataAction { get; set; } + /// Name of the operation. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Name of the operation.", + SerializedName = @"name", + PossibleTypes = new [] { typeof(string) })] + string Name { get; set; } + /// Origin of the operation. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Origin of the operation.", + SerializedName = @"origin", + PossibleTypes = new [] { typeof(string) })] + string Origin { get; set; } + /// Properties of the operation. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Properties of the operation.", + SerializedName = @"properties", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.IAny) })] + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.IAny Property { get; set; } + + } + /// Represents an operation returned by the GetOperations request. + internal partial interface IOperationInternal + + { + /// Display name of the operation. + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IOperationInfo Display { get; set; } + /// Description of the operation + string DisplayDescription { get; set; } + /// Name of the operation + string DisplayOperation { get; set; } + /// Name of the provider + string DisplayProvider { get; set; } + /// Name of the resource type + string DisplayResource { get; set; } + /// + /// This Boolean is used to determine if the operation is a data plane action or not. + /// + bool? IsDataAction { get; set; } + /// Name of the operation. + string Name { get; set; } + /// Origin of the operation. + string Origin { get; set; } + /// Properties of the operation. + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.IAny Property { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/Operation.json.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/Operation.json.cs new file mode 100644 index 000000000000..974c06d967a3 --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/Operation.json.cs @@ -0,0 +1,114 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Extensions; + + /// Represents an operation returned by the GetOperations request. + public partial class Operation + { + + /// + /// AfterFromJson will be called after the json deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JsonNode that should be deserialized into this object. + + partial void AfterFromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json erialization has finished, allowing customization of the before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JSON container that the serialization result will be placed in. + + partial void AfterToJson(ref Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject container); + + /// + /// BeforeFromJson will be called before the json deserialization has commenced, allowing complete customization of + /// the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JsonNode that should be deserialized into this object. + /// Determines if the rest of the deserialization should be processed, or if the method should return + /// instantly. + + partial void BeforeFromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject json, ref bool returnNow); + + /// + /// BeforeToJson will be called before the json serialization has commenced, allowing complete customization of the + /// object before it is serialized. + /// If you wish to disable the default serialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JSON container that the serialization result will be placed in. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeToJson(ref Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IOperation. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IOperation. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IOperation FromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject json ? new Operation(json) : null; + } + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject instance to deserialize from. + internal Operation(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Models.Api20211015Preview.OperationInfo.FromJson(__jsonDisplay) : Display;} + {_name = If( json?.PropertyT("name"), out var __jsonName) ? (string)__jsonName : (string)Name;} + {_origin = If( json?.PropertyT("origin"), out var __jsonOrigin) ? (string)__jsonOrigin : (string)Origin;} + {_isDataAction = If( json?.PropertyT("isDataAction"), out var __jsonIsDataAction) ? (bool?)__jsonIsDataAction : IsDataAction;} + {_property = If( json?.PropertyT("properties"), out var __jsonProperties) ? Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Any.FromJson(__jsonProperties) : Property;} + AfterFromJson(json); + } + + /// + /// Serializes this instance of into a . + /// + /// The container to serialize this object into. If the caller + /// passes in null, a new instance will be created and returned to the caller. + /// Allows the caller to choose the depth of the serialization. See . + /// + /// a serialized instance of as a . + /// + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject(); + + bool returnNow = false; + BeforeToJson(ref container, ref returnNow); + if (returnNow) + { + return container; + } + AddIf( null != this._display ? (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode) this._display.ToJson(null,serializationMode) : null, "display" ,container.Add ); + AddIf( null != (((object)this._name)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonString(this._name.ToString()) : null, "name" ,container.Add ); + AddIf( null != (((object)this._origin)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonString(this._origin.ToString()) : null, "origin" ,container.Add ); + AddIf( null != this._isDataAction ? (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode)new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonBoolean((bool)this._isDataAction) : null, "isDataAction" ,container.Add ); + AddIf( null != this._property ? (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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/eventgrid/generated/api/Models/Api20211015Preview/OperationInfo.PowerShell.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/OperationInfo.PowerShell.cs new file mode 100644 index 000000000000..eb2b5298f305 --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/OperationInfo.PowerShell.cs @@ -0,0 +1,166 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell; + + /// Information about an operation + [System.ComponentModel.TypeConverter(typeof(OperationInfoTypeConverter))] + public partial class OperationInfo + { + + /// + /// AfterDeserializeDictionary will be called after the deserialization has finished, allowing customization of the + /// object before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Collections.IDictionary content that should be used. + + partial void AfterDeserializeDictionary(global::System.Collections.IDictionary content); + + /// + /// AfterDeserializePSObject will be called after the deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Management.Automation.PSObject content that should be used. + + partial void AfterDeserializePSObject(global::System.Management.Automation.PSObject content); + + /// + /// BeforeDeserializeDictionary will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Collections.IDictionary content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializeDictionary(global::System.Collections.IDictionary content, ref bool returnNow); + + /// + /// BeforeDeserializePSObject will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializePSObject(global::System.Management.Automation.PSObject content, ref bool returnNow); + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IOperationInfo DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new OperationInfo(content); + } + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IOperationInfo DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new OperationInfo(content); + } + + /// + /// Creates a new instance of , deserializing the content from a json string. + /// + /// a string containing a JSON serialized instance of this model. + /// an instance of the model class. + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IOperationInfo FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode.Parse(jsonText)); + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + internal OperationInfo(global::System.Collections.IDictionary content) + { + bool returnNow = false; + BeforeDeserializeDictionary(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("Provider")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IOperationInfoInternal)this).Provider = (string) content.GetValueForProperty("Provider",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IOperationInfoInternal)this).Provider, global::System.Convert.ToString); + } + if (content.Contains("Resource")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IOperationInfoInternal)this).Resource = (string) content.GetValueForProperty("Resource",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IOperationInfoInternal)this).Resource, global::System.Convert.ToString); + } + if (content.Contains("Operation")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IOperationInfoInternal)this).Operation = (string) content.GetValueForProperty("Operation",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IOperationInfoInternal)this).Operation, global::System.Convert.ToString); + } + if (content.Contains("Description")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IOperationInfoInternal)this).Description = (string) content.GetValueForProperty("Description",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IOperationInfoInternal)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 OperationInfo(global::System.Management.Automation.PSObject content) + { + bool returnNow = false; + BeforeDeserializePSObject(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("Provider")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IOperationInfoInternal)this).Provider = (string) content.GetValueForProperty("Provider",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IOperationInfoInternal)this).Provider, global::System.Convert.ToString); + } + if (content.Contains("Resource")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IOperationInfoInternal)this).Resource = (string) content.GetValueForProperty("Resource",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IOperationInfoInternal)this).Resource, global::System.Convert.ToString); + } + if (content.Contains("Operation")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IOperationInfoInternal)this).Operation = (string) content.GetValueForProperty("Operation",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IOperationInfoInternal)this).Operation, global::System.Convert.ToString); + } + if (content.Contains("Description")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IOperationInfoInternal)this).Description = (string) content.GetValueForProperty("Description",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IOperationInfoInternal)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.EventGrid.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// Information about an operation + [System.ComponentModel.TypeConverter(typeof(OperationInfoTypeConverter))] + public partial interface IOperationInfo + + { + + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/OperationInfo.TypeConverter.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/OperationInfo.TypeConverter.cs new file mode 100644 index 000000000000..104dfac3d192 --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/OperationInfo.TypeConverter.cs @@ -0,0 +1,146 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class OperationInfoTypeConverter : global::System.Management.Automation.PSTypeConverter + { + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false. + /// + public override bool CanConvertFrom(object sourceValue, global::System.Type destinationType) => CanConvertFrom(sourceValue); + + /// + /// Determines if the converter can convert the parameter to the . + /// + /// the instance to check if it can be converted to the type. + /// + /// true if the instance could be converted to a type, otherwise false + /// + public static bool CanConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return true; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + // we say yest to PSObjects + return true; + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + // we say yest to Hashtables/dictionaries + return true; + } + try + { + if (null != sourceValue.ToJsonString()) + { + return true; + } + } + catch + { + // Not one of our objects + } + try + { + string text = sourceValue.ToString()?.Trim(); + return true == text?.StartsWith("{") && true == text?.EndsWith("}") && Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonType.Object; + } + catch + { + // Doesn't look like it can be treated as JSON + } + return false; + } + + /// + /// Determines if the parameter can be converted to the parameter + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false + /// + public override bool CanConvertTo(object sourceValue, global::System.Type destinationType) => false; + + /// + /// Converts the parameter to the parameter using and + /// + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// + /// an instance of , or null if there is no suitable conversion. + /// + public override object ConvertFrom(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => ConvertFrom(sourceValue); + + /// + /// Converts the parameter to the parameter using and + /// + /// the value to convert into an instance of . + /// + /// an instance of , or null if there is no suitable conversion. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IOperationInfo ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IOperationInfo).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return OperationInfo.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return OperationInfo.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return OperationInfo.DeserializeFromDictionary(sourceValue); + } + return null; + } + + /// NotImplemented -- this will return null + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// will always return null. + public override object ConvertTo(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => null; + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/OperationInfo.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/OperationInfo.cs new file mode 100644 index 000000000000..afd3c3b6898e --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/OperationInfo.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.EventGrid.Models.Api20211015Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Extensions; + + /// Information about an operation + public partial class OperationInfo : + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IOperationInfo, + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IOperationInfoInternal + { + + /// Backing field for property. + private string _description; + + /// Description of the operation + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Owned)] + public string Description { get => this._description; set => this._description = value; } + + /// Backing field for property. + private string _operation; + + /// Name of the operation + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Owned)] + public string Operation { get => this._operation; set => this._operation = value; } + + /// Backing field for property. + private string _provider; + + /// Name of the provider + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Owned)] + public string Provider { get => this._provider; set => this._provider = value; } + + /// Backing field for property. + private string _resource; + + /// Name of the resource type + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Owned)] + public string Resource { get => this._resource; set => this._resource = value; } + + /// Creates an new instance. + public OperationInfo() + { + + } + } + /// Information about an operation + public partial interface IOperationInfo : + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IJsonSerializable + { + /// Description of the operation + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Description of the operation", + SerializedName = @"description", + PossibleTypes = new [] { typeof(string) })] + string Description { get; set; } + /// Name of the operation + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Name of the operation", + SerializedName = @"operation", + PossibleTypes = new [] { typeof(string) })] + string Operation { get; set; } + /// Name of the provider + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Name of the provider", + SerializedName = @"provider", + PossibleTypes = new [] { typeof(string) })] + string Provider { get; set; } + /// Name of the resource type + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Name of the resource type", + SerializedName = @"resource", + PossibleTypes = new [] { typeof(string) })] + string Resource { get; set; } + + } + /// Information about an operation + internal partial interface IOperationInfoInternal + + { + /// Description of the operation + string Description { get; set; } + /// Name of the operation + string Operation { get; set; } + /// Name of the provider + string Provider { get; set; } + /// Name of the resource type + string Resource { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/OperationInfo.json.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/OperationInfo.json.cs new file mode 100644 index 000000000000..1d812e21ecfc --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/OperationInfo.json.cs @@ -0,0 +1,112 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Extensions; + + /// Information about an operation + public partial class OperationInfo + { + + /// + /// AfterFromJson will be called after the json deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JsonNode that should be deserialized into this object. + + partial void AfterFromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json erialization has finished, allowing customization of the before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JSON container that the serialization result will be placed in. + + partial void AfterToJson(ref Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject container); + + /// + /// BeforeFromJson will be called before the json deserialization has commenced, allowing complete customization of + /// the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JsonNode that should be deserialized into this object. + /// Determines if the rest of the deserialization should be processed, or if the method should return + /// instantly. + + partial void BeforeFromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject json, ref bool returnNow); + + /// + /// BeforeToJson will be called before the json serialization has commenced, allowing complete customization of the + /// object before it is serialized. + /// If you wish to disable the default serialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JSON container that the serialization result will be placed in. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeToJson(ref Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IOperationInfo. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IOperationInfo. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IOperationInfo FromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject json ? new OperationInfo(json) : null; + } + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject instance to deserialize from. + internal OperationInfo(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonString(this._provider.ToString()) : null, "provider" ,container.Add ); + AddIf( null != (((object)this._resource)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonString(this._resource.ToString()) : null, "resource" ,container.Add ); + AddIf( null != (((object)this._operation)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonString(this._operation.ToString()) : null, "operation" ,container.Add ); + AddIf( null != (((object)this._description)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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/eventgrid/generated/api/Models/Api20211015Preview/OperationsListResult.PowerShell.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/OperationsListResult.PowerShell.cs new file mode 100644 index 000000000000..c46d6a019283 --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/OperationsListResult.PowerShell.cs @@ -0,0 +1,144 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell; + + /// Result of the List Operations operation + [System.ComponentModel.TypeConverter(typeof(OperationsListResultTypeConverter))] + public partial class OperationsListResult + { + + /// + /// AfterDeserializeDictionary will be called after the deserialization has finished, allowing customization of the + /// object before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Collections.IDictionary content that should be used. + + partial void AfterDeserializeDictionary(global::System.Collections.IDictionary content); + + /// + /// AfterDeserializePSObject will be called after the deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Management.Automation.PSObject content that should be used. + + partial void AfterDeserializePSObject(global::System.Management.Automation.PSObject content); + + /// + /// BeforeDeserializeDictionary will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Collections.IDictionary content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializeDictionary(global::System.Collections.IDictionary content, ref bool returnNow); + + /// + /// BeforeDeserializePSObject will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializePSObject(global::System.Management.Automation.PSObject content, ref bool returnNow); + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IOperationsListResult DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new OperationsListResult(content); + } + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IOperationsListResult DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new OperationsListResult(content); + } + + /// + /// Creates a new instance of , deserializing the content from a json string. + /// + /// a string containing a JSON serialized instance of this model. + /// an instance of the model class. + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IOperationsListResult FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode.Parse(jsonText)); + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + internal OperationsListResult(global::System.Collections.IDictionary content) + { + bool returnNow = false; + BeforeDeserializeDictionary(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("Value")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IOperationsListResultInternal)this).Value = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IOperation[]) content.GetValueForProperty("Value",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IOperationsListResultInternal)this).Value, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.OperationTypeConverter.ConvertFrom)); + } + AfterDeserializeDictionary(content); + } + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + internal OperationsListResult(global::System.Management.Automation.PSObject content) + { + bool returnNow = false; + BeforeDeserializePSObject(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("Value")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IOperationsListResultInternal)this).Value = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IOperation[]) content.GetValueForProperty("Value",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IOperationsListResultInternal)this).Value, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.OperationTypeConverter.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.EventGrid.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// Result of the List Operations operation + [System.ComponentModel.TypeConverter(typeof(OperationsListResultTypeConverter))] + public partial interface IOperationsListResult + + { + + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/OperationsListResult.TypeConverter.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/OperationsListResult.TypeConverter.cs new file mode 100644 index 000000000000..de69558f9655 --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/OperationsListResult.TypeConverter.cs @@ -0,0 +1,147 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class OperationsListResultTypeConverter : global::System.Management.Automation.PSTypeConverter + { + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false. + /// + public override bool CanConvertFrom(object sourceValue, global::System.Type destinationType) => CanConvertFrom(sourceValue); + + /// + /// Determines if the converter can convert the parameter to the . + /// + /// the instance to check if it can be converted to the type. + /// + /// true if the instance could be converted to a type, otherwise false + /// + public static bool CanConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return true; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + // we say yest to PSObjects + return true; + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + // we say yest to Hashtables/dictionaries + return true; + } + try + { + if (null != sourceValue.ToJsonString()) + { + return true; + } + } + catch + { + // Not one of our objects + } + try + { + string text = sourceValue.ToString()?.Trim(); + return true == text?.StartsWith("{") && true == text?.EndsWith("}") && Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonType.Object; + } + catch + { + // Doesn't look like it can be treated as JSON + } + return false; + } + + /// + /// Determines if the parameter can be converted to the parameter + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false + /// + public override bool CanConvertTo(object sourceValue, global::System.Type destinationType) => false; + + /// + /// Converts the parameter to the parameter using and + /// + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// + /// an instance of , or null if there is no suitable conversion. + /// + public override object ConvertFrom(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => ConvertFrom(sourceValue); + + /// + /// Converts the parameter to the parameter using and + /// + /// the value to convert into an instance of . + /// + /// an instance of , or null if there is no suitable conversion. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IOperationsListResult ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IOperationsListResult).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return OperationsListResult.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return OperationsListResult.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return OperationsListResult.DeserializeFromDictionary(sourceValue); + } + return null; + } + + /// NotImplemented -- this will return null + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// will always return null. + public override object ConvertTo(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => null; + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/OperationsListResult.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/OperationsListResult.cs new file mode 100644 index 000000000000..41c3e8fb5db8 --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/OperationsListResult.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.EventGrid.Models.Api20211015Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Extensions; + + /// Result of the List Operations operation + public partial class OperationsListResult : + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IOperationsListResult, + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IOperationsListResultInternal + { + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IOperation[] _value; + + /// A collection of operations + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Owned)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IOperation[] Value { get => this._value; set => this._value = value; } + + /// Creates an new instance. + public OperationsListResult() + { + + } + } + /// Result of the List Operations operation + public partial interface IOperationsListResult : + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IJsonSerializable + { + /// A collection of operations + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"A collection of operations", + SerializedName = @"value", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IOperation) })] + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IOperation[] Value { get; set; } + + } + /// Result of the List Operations operation + internal partial interface IOperationsListResultInternal + + { + /// A collection of operations + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IOperation[] Value { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/OperationsListResult.json.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/OperationsListResult.json.cs new file mode 100644 index 000000000000..b8282530fbd9 --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/OperationsListResult.json.cs @@ -0,0 +1,114 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Extensions; + + /// Result of the List Operations operation + public partial class OperationsListResult + { + + /// + /// AfterFromJson will be called after the json deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JsonNode that should be deserialized into this object. + + partial void AfterFromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json erialization has finished, allowing customization of the before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JSON container that the serialization result will be placed in. + + partial void AfterToJson(ref Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject container); + + /// + /// BeforeFromJson will be called before the json deserialization has commenced, allowing complete customization of + /// the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JsonNode that should be deserialized into this object. + /// Determines if the rest of the deserialization should be processed, or if the method should return + /// instantly. + + partial void BeforeFromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject json, ref bool returnNow); + + /// + /// BeforeToJson will be called before the json serialization has commenced, allowing complete customization of the + /// object before it is serialized. + /// If you wish to disable the default serialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JSON container that the serialization result will be placed in. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeToJson(ref Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IOperationsListResult. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IOperationsListResult. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IOperationsListResult FromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject json ? new OperationsListResult(json) : null; + } + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject instance to deserialize from. + internal OperationsListResult(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.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.EventGrid.Models.Api20211015Preview.IOperation) (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.Operation.FromJson(__u) )) ))() : null : Value;} + AfterFromJson(json); + } + + /// + /// Serializes this instance of into a . + /// + /// The container to serialize this object into. If the caller + /// passes in null, a new instance will be created and returned to the caller. + /// Allows the caller to choose the depth of the serialization. See . + /// + /// a serialized instance of as a . + /// + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Runtime.Json.XNodeArray(); + foreach( var __x in this._value ) + { + AddIf(__x?.ToJson(null, serializationMode) ,__w.Add); + } + container.Add("value",__w); + } + AfterToJson(ref container); + return container; + } + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/Partner.PowerShell.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/Partner.PowerShell.cs new file mode 100644 index 000000000000..cae6a24c4830 --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/Partner.PowerShell.cs @@ -0,0 +1,158 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell; + + /// Information about the partner. + [System.ComponentModel.TypeConverter(typeof(PartnerTypeConverter))] + public partial class Partner + { + + /// + /// AfterDeserializeDictionary will be called after the deserialization has finished, allowing customization of the + /// object before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Collections.IDictionary content that should be used. + + partial void AfterDeserializeDictionary(global::System.Collections.IDictionary content); + + /// + /// AfterDeserializePSObject will be called after the deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Management.Automation.PSObject content that should be used. + + partial void AfterDeserializePSObject(global::System.Management.Automation.PSObject content); + + /// + /// BeforeDeserializeDictionary will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Collections.IDictionary content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializeDictionary(global::System.Collections.IDictionary content, ref bool returnNow); + + /// + /// BeforeDeserializePSObject will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializePSObject(global::System.Management.Automation.PSObject content, ref bool returnNow); + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartner DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new Partner(content); + } + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartner DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new Partner(content); + } + + /// + /// Creates a new instance of , deserializing the content from a json string. + /// + /// a string containing a JSON serialized instance of this model. + /// an instance of the model class. + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartner FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode.Parse(jsonText)); + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + internal Partner(global::System.Collections.IDictionary content) + { + bool returnNow = false; + BeforeDeserializeDictionary(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("RegistrationImmutableId")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerInternal)this).RegistrationImmutableId = (string) content.GetValueForProperty("RegistrationImmutableId",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerInternal)this).RegistrationImmutableId, global::System.Convert.ToString); + } + if (content.Contains("Name")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerInternal)this).Name = (string) content.GetValueForProperty("Name",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerInternal)this).Name, global::System.Convert.ToString); + } + if (content.Contains("AuthorizationExpirationTimeInUtc")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerInternal)this).AuthorizationExpirationTimeInUtc = (global::System.DateTime?) content.GetValueForProperty("AuthorizationExpirationTimeInUtc",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerInternal)this).AuthorizationExpirationTimeInUtc, (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 Partner(global::System.Management.Automation.PSObject content) + { + bool returnNow = false; + BeforeDeserializePSObject(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("RegistrationImmutableId")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerInternal)this).RegistrationImmutableId = (string) content.GetValueForProperty("RegistrationImmutableId",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerInternal)this).RegistrationImmutableId, global::System.Convert.ToString); + } + if (content.Contains("Name")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerInternal)this).Name = (string) content.GetValueForProperty("Name",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerInternal)this).Name, global::System.Convert.ToString); + } + if (content.Contains("AuthorizationExpirationTimeInUtc")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerInternal)this).AuthorizationExpirationTimeInUtc = (global::System.DateTime?) content.GetValueForProperty("AuthorizationExpirationTimeInUtc",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerInternal)this).AuthorizationExpirationTimeInUtc, (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.EventGrid.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// Information about the partner. + [System.ComponentModel.TypeConverter(typeof(PartnerTypeConverter))] + public partial interface IPartner + + { + + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/Partner.TypeConverter.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/Partner.TypeConverter.cs new file mode 100644 index 000000000000..966ca7d34524 --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/Partner.TypeConverter.cs @@ -0,0 +1,146 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class PartnerTypeConverter : global::System.Management.Automation.PSTypeConverter + { + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false. + /// + public override bool CanConvertFrom(object sourceValue, global::System.Type destinationType) => CanConvertFrom(sourceValue); + + /// + /// Determines if the converter can convert the parameter to the . + /// + /// the instance to check if it can be converted to the type. + /// + /// true if the instance could be converted to a type, otherwise false + /// + public static bool CanConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return true; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + // we say yest to PSObjects + return true; + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + // we say yest to Hashtables/dictionaries + return true; + } + try + { + if (null != sourceValue.ToJsonString()) + { + return true; + } + } + catch + { + // Not one of our objects + } + try + { + string text = sourceValue.ToString()?.Trim(); + return true == text?.StartsWith("{") && true == text?.EndsWith("}") && Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonType.Object; + } + catch + { + // Doesn't look like it can be treated as JSON + } + return false; + } + + /// + /// Determines if the parameter can be converted to the parameter + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false + /// + public override bool CanConvertTo(object sourceValue, global::System.Type destinationType) => false; + + /// + /// Converts the parameter to the parameter using and + /// + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// + /// an instance of , or null if there is no suitable conversion. + /// + public override object ConvertFrom(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => ConvertFrom(sourceValue); + + /// + /// Converts the parameter to the parameter using and + /// + /// the value to convert into an instance of . + /// + /// an instance of , or null if there is no suitable conversion. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartner ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartner).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return Partner.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return Partner.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return Partner.DeserializeFromDictionary(sourceValue); + } + return null; + } + + /// NotImplemented -- this will return null + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// will always return null. + public override object ConvertTo(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => null; + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/Partner.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/Partner.cs new file mode 100644 index 000000000000..33fc37f7840e --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/Partner.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.EventGrid.Models.Api20211015Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Extensions; + + /// Information about the partner. + public partial class Partner : + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartner, + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerInternal + { + + /// Backing field for property. + private global::System.DateTime? _authorizationExpirationTimeInUtc; + + /// + /// Expiration time of the partner authorization. If this timer expires, any request from this partner to create, update or + /// delete resources in subscriber's + /// context will fail. If specified, the allowed values are between 1 to the value of defaultMaximumExpirationTimeInDays specified + /// in PartnerConfiguration. + /// If not specified, the default value will be the value of defaultMaximumExpirationTimeInDays specified in PartnerConfiguration + /// or 7 if this value is not specified. + /// + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Owned)] + public global::System.DateTime? AuthorizationExpirationTimeInUtc { get => this._authorizationExpirationTimeInUtc; set => this._authorizationExpirationTimeInUtc = value; } + + /// Backing field for property. + private string _name; + + /// The partner name. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Owned)] + public string Name { get => this._name; set => this._name = value; } + + /// Backing field for property. + private string _registrationImmutableId; + + /// The immutableId of the corresponding partner registration. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Owned)] + public string RegistrationImmutableId { get => this._registrationImmutableId; set => this._registrationImmutableId = value; } + + /// Creates an new instance. + public Partner() + { + + } + } + /// Information about the partner. + public partial interface IPartner : + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IJsonSerializable + { + /// + /// Expiration time of the partner authorization. If this timer expires, any request from this partner to create, update or + /// delete resources in subscriber's + /// context will fail. If specified, the allowed values are between 1 to the value of defaultMaximumExpirationTimeInDays specified + /// in PartnerConfiguration. + /// If not specified, the default value will be the value of defaultMaximumExpirationTimeInDays specified in PartnerConfiguration + /// or 7 if this value is not specified. + /// + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Expiration time of the partner authorization. If this timer expires, any request from this partner to create, update or delete resources in subscriber's + context will fail. If specified, the allowed values are between 1 to the value of defaultMaximumExpirationTimeInDays specified in PartnerConfiguration. + If not specified, the default value will be the value of defaultMaximumExpirationTimeInDays specified in PartnerConfiguration or 7 if this value is not specified.", + SerializedName = @"authorizationExpirationTimeInUtc", + PossibleTypes = new [] { typeof(global::System.DateTime) })] + global::System.DateTime? AuthorizationExpirationTimeInUtc { get; set; } + /// The partner name. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The partner name.", + SerializedName = @"partnerName", + PossibleTypes = new [] { typeof(string) })] + string Name { get; set; } + /// The immutableId of the corresponding partner registration. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The immutableId of the corresponding partner registration.", + SerializedName = @"partnerRegistrationImmutableId", + PossibleTypes = new [] { typeof(string) })] + string RegistrationImmutableId { get; set; } + + } + /// Information about the partner. + internal partial interface IPartnerInternal + + { + /// + /// Expiration time of the partner authorization. If this timer expires, any request from this partner to create, update or + /// delete resources in subscriber's + /// context will fail. If specified, the allowed values are between 1 to the value of defaultMaximumExpirationTimeInDays specified + /// in PartnerConfiguration. + /// If not specified, the default value will be the value of defaultMaximumExpirationTimeInDays specified in PartnerConfiguration + /// or 7 if this value is not specified. + /// + global::System.DateTime? AuthorizationExpirationTimeInUtc { get; set; } + /// The partner name. + string Name { get; set; } + /// The immutableId of the corresponding partner registration. + string RegistrationImmutableId { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/Partner.json.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/Partner.json.cs new file mode 100644 index 000000000000..2bb9f0c487a0 --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/Partner.json.cs @@ -0,0 +1,110 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Extensions; + + /// Information about the partner. + public partial class Partner + { + + /// + /// AfterFromJson will be called after the json deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JsonNode that should be deserialized into this object. + + partial void AfterFromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json erialization has finished, allowing customization of the before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JSON container that the serialization result will be placed in. + + partial void AfterToJson(ref Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject container); + + /// + /// BeforeFromJson will be called before the json deserialization has commenced, allowing complete customization of + /// the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JsonNode that should be deserialized into this object. + /// Determines if the rest of the deserialization should be processed, or if the method should return + /// instantly. + + partial void BeforeFromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject json, ref bool returnNow); + + /// + /// BeforeToJson will be called before the json serialization has commenced, allowing complete customization of the + /// object before it is serialized. + /// If you wish to disable the default serialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JSON container that the serialization result will be placed in. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeToJson(ref Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartner. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartner. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartner FromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject json ? new Partner(json) : null; + } + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject instance to deserialize from. + internal Partner(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject json) + { + bool returnNow = false; + BeforeFromJson(json, ref returnNow); + if (returnNow) + { + return; + } + {_registrationImmutableId = If( json?.PropertyT("partnerRegistrationImmutableId"), out var __jsonPartnerRegistrationImmutableId) ? (string)__jsonPartnerRegistrationImmutableId : (string)RegistrationImmutableId;} + {_name = If( json?.PropertyT("partnerName"), out var __jsonPartnerName) ? (string)__jsonPartnerName : (string)Name;} + {_authorizationExpirationTimeInUtc = If( json?.PropertyT("authorizationExpirationTimeInUtc"), out var __jsonAuthorizationExpirationTimeInUtc) ? global::System.DateTime.TryParse((string)__jsonAuthorizationExpirationTimeInUtc, global::System.Globalization.CultureInfo.InvariantCulture, global::System.Globalization.DateTimeStyles.AdjustToUniversal, out var __jsonAuthorizationExpirationTimeInUtcValue) ? __jsonAuthorizationExpirationTimeInUtcValue : AuthorizationExpirationTimeInUtc : AuthorizationExpirationTimeInUtc;} + AfterFromJson(json); + } + + /// + /// Serializes this instance of into a . + /// + /// The container to serialize this object into. If the caller + /// passes in null, a new instance will be created and returned to the caller. + /// Allows the caller to choose the depth of the serialization. See . + /// + /// a serialized instance of as a . + /// + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject(); + + bool returnNow = false; + BeforeToJson(ref container, ref returnNow); + if (returnNow) + { + return container; + } + AddIf( null != (((object)this._registrationImmutableId)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonString(this._registrationImmutableId.ToString()) : null, "partnerRegistrationImmutableId" ,container.Add ); + AddIf( null != (((object)this._name)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonString(this._name.ToString()) : null, "partnerName" ,container.Add ); + AddIf( null != this._authorizationExpirationTimeInUtc ? (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonString(this._authorizationExpirationTimeInUtc?.ToString(@"yyyy'-'MM'-'dd'T'HH':'mm':'ss.fffffffK",global::System.Globalization.CultureInfo.InvariantCulture)) : null, "authorizationExpirationTimeInUtc" ,container.Add ); + AfterToJson(ref container); + return container; + } + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PartnerAuthorization.PowerShell.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PartnerAuthorization.PowerShell.cs new file mode 100644 index 000000000000..5731c3ef9753 --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PartnerAuthorization.PowerShell.cs @@ -0,0 +1,152 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell; + + /// The partner authorization details. + [System.ComponentModel.TypeConverter(typeof(PartnerAuthorizationTypeConverter))] + public partial class PartnerAuthorization + { + + /// + /// AfterDeserializeDictionary will be called after the deserialization has finished, allowing customization of the + /// object before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Collections.IDictionary content that should be used. + + partial void AfterDeserializeDictionary(global::System.Collections.IDictionary content); + + /// + /// AfterDeserializePSObject will be called after the deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Management.Automation.PSObject content that should be used. + + partial void AfterDeserializePSObject(global::System.Management.Automation.PSObject content); + + /// + /// BeforeDeserializeDictionary will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Collections.IDictionary content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializeDictionary(global::System.Collections.IDictionary content, ref bool returnNow); + + /// + /// BeforeDeserializePSObject will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializePSObject(global::System.Management.Automation.PSObject content, ref bool returnNow); + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerAuthorization DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new PartnerAuthorization(content); + } + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerAuthorization DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new PartnerAuthorization(content); + } + + /// + /// Creates a new instance of , deserializing the content from a json string. + /// + /// a string containing a JSON serialized instance of this model. + /// an instance of the model class. + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerAuthorization FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode.Parse(jsonText)); + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + internal PartnerAuthorization(global::System.Collections.IDictionary content) + { + bool returnNow = false; + BeforeDeserializeDictionary(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("DefaultMaximumExpirationTimeInDay")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerAuthorizationInternal)this).DefaultMaximumExpirationTimeInDay = (int?) content.GetValueForProperty("DefaultMaximumExpirationTimeInDay",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerAuthorizationInternal)this).DefaultMaximumExpirationTimeInDay, (__y)=> (int) global::System.Convert.ChangeType(__y, typeof(int))); + } + if (content.Contains("AuthorizedPartnersList")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerAuthorizationInternal)this).AuthorizedPartnersList = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartner[]) content.GetValueForProperty("AuthorizedPartnersList",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerAuthorizationInternal)this).AuthorizedPartnersList, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.PartnerTypeConverter.ConvertFrom)); + } + AfterDeserializeDictionary(content); + } + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + internal PartnerAuthorization(global::System.Management.Automation.PSObject content) + { + bool returnNow = false; + BeforeDeserializePSObject(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("DefaultMaximumExpirationTimeInDay")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerAuthorizationInternal)this).DefaultMaximumExpirationTimeInDay = (int?) content.GetValueForProperty("DefaultMaximumExpirationTimeInDay",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerAuthorizationInternal)this).DefaultMaximumExpirationTimeInDay, (__y)=> (int) global::System.Convert.ChangeType(__y, typeof(int))); + } + if (content.Contains("AuthorizedPartnersList")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerAuthorizationInternal)this).AuthorizedPartnersList = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartner[]) content.GetValueForProperty("AuthorizedPartnersList",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerAuthorizationInternal)this).AuthorizedPartnersList, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.PartnerTypeConverter.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.EventGrid.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// The partner authorization details. + [System.ComponentModel.TypeConverter(typeof(PartnerAuthorizationTypeConverter))] + public partial interface IPartnerAuthorization + + { + + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PartnerAuthorization.TypeConverter.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PartnerAuthorization.TypeConverter.cs new file mode 100644 index 000000000000..d4a74588033a --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PartnerAuthorization.TypeConverter.cs @@ -0,0 +1,147 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class PartnerAuthorizationTypeConverter : global::System.Management.Automation.PSTypeConverter + { + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false. + /// + public override bool CanConvertFrom(object sourceValue, global::System.Type destinationType) => CanConvertFrom(sourceValue); + + /// + /// Determines if the converter can convert the parameter to the . + /// + /// the instance to check if it can be converted to the type. + /// + /// true if the instance could be converted to a type, otherwise false + /// + public static bool CanConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return true; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + // we say yest to PSObjects + return true; + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + // we say yest to Hashtables/dictionaries + return true; + } + try + { + if (null != sourceValue.ToJsonString()) + { + return true; + } + } + catch + { + // Not one of our objects + } + try + { + string text = sourceValue.ToString()?.Trim(); + return true == text?.StartsWith("{") && true == text?.EndsWith("}") && Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonType.Object; + } + catch + { + // Doesn't look like it can be treated as JSON + } + return false; + } + + /// + /// Determines if the parameter can be converted to the parameter + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false + /// + public override bool CanConvertTo(object sourceValue, global::System.Type destinationType) => false; + + /// + /// Converts the parameter to the parameter using and + /// + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// + /// an instance of , or null if there is no suitable conversion. + /// + public override object ConvertFrom(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => ConvertFrom(sourceValue); + + /// + /// Converts the parameter to the parameter using and + /// + /// the value to convert into an instance of . + /// + /// an instance of , or null if there is no suitable conversion. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerAuthorization ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerAuthorization).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return PartnerAuthorization.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return PartnerAuthorization.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return PartnerAuthorization.DeserializeFromDictionary(sourceValue); + } + return null; + } + + /// NotImplemented -- this will return null + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// will always return null. + public override object ConvertTo(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => null; + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PartnerAuthorization.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PartnerAuthorization.cs new file mode 100644 index 000000000000..e0e4735250e7 --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PartnerAuthorization.cs @@ -0,0 +1,81 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Extensions; + + /// The partner authorization details. + public partial class PartnerAuthorization : + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerAuthorization, + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerAuthorizationInternal + { + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartner[] _authorizedPartnersList; + + /// The list of authorized partners. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Owned)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartner[] AuthorizedPartnersList { get => this._authorizedPartnersList; set => this._authorizedPartnersList = value; } + + /// Backing field for property. + private int? _defaultMaximumExpirationTimeInDay; + + /// + /// Time used to validate the authorization expiration time for each authorized partner. If DefaultMaximumExpirationTimeInDays + /// is + /// not specified, the default is 7 days. Otherwise, allowed values are between 1 and 365 days. + /// + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Owned)] + public int? DefaultMaximumExpirationTimeInDay { get => this._defaultMaximumExpirationTimeInDay; set => this._defaultMaximumExpirationTimeInDay = value; } + + /// Creates an new instance. + public PartnerAuthorization() + { + + } + } + /// The partner authorization details. + public partial interface IPartnerAuthorization : + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IJsonSerializable + { + /// The list of authorized partners. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The list of authorized partners.", + SerializedName = @"authorizedPartnersList", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartner) })] + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartner[] AuthorizedPartnersList { get; set; } + /// + /// Time used to validate the authorization expiration time for each authorized partner. If DefaultMaximumExpirationTimeInDays + /// is + /// not specified, the default is 7 days. Otherwise, allowed values are between 1 and 365 days. + /// + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Time used to validate the authorization expiration time for each authorized partner. If DefaultMaximumExpirationTimeInDays is + not specified, the default is 7 days. Otherwise, allowed values are between 1 and 365 days.", + SerializedName = @"defaultMaximumExpirationTimeInDays", + PossibleTypes = new [] { typeof(int) })] + int? DefaultMaximumExpirationTimeInDay { get; set; } + + } + /// The partner authorization details. + internal partial interface IPartnerAuthorizationInternal + + { + /// The list of authorized partners. + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartner[] AuthorizedPartnersList { get; set; } + /// + /// Time used to validate the authorization expiration time for each authorized partner. If DefaultMaximumExpirationTimeInDays + /// is + /// not specified, the default is 7 days. Otherwise, allowed values are between 1 and 365 days. + /// + int? DefaultMaximumExpirationTimeInDay { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PartnerAuthorization.json.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PartnerAuthorization.json.cs new file mode 100644 index 000000000000..0cd859b8bb4c --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PartnerAuthorization.json.cs @@ -0,0 +1,116 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Extensions; + + /// The partner authorization details. + public partial class PartnerAuthorization + { + + /// + /// AfterFromJson will be called after the json deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JsonNode that should be deserialized into this object. + + partial void AfterFromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json erialization has finished, allowing customization of the before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JSON container that the serialization result will be placed in. + + partial void AfterToJson(ref Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject container); + + /// + /// BeforeFromJson will be called before the json deserialization has commenced, allowing complete customization of + /// the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JsonNode that should be deserialized into this object. + /// Determines if the rest of the deserialization should be processed, or if the method should return + /// instantly. + + partial void BeforeFromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject json, ref bool returnNow); + + /// + /// BeforeToJson will be called before the json serialization has commenced, allowing complete customization of the + /// object before it is serialized. + /// If you wish to disable the default serialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JSON container that the serialization result will be placed in. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeToJson(ref Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerAuthorization. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerAuthorization. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerAuthorization FromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject json ? new PartnerAuthorization(json) : null; + } + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject instance to deserialize from. + internal PartnerAuthorization(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject json) + { + bool returnNow = false; + BeforeFromJson(json, ref returnNow); + if (returnNow) + { + return; + } + {_defaultMaximumExpirationTimeInDay = If( json?.PropertyT("defaultMaximumExpirationTimeInDays"), out var __jsonDefaultMaximumExpirationTimeInDays) ? (int?)__jsonDefaultMaximumExpirationTimeInDays : DefaultMaximumExpirationTimeInDay;} + {_authorizedPartnersList = If( json?.PropertyT("authorizedPartnersList"), out var __jsonAuthorizedPartnersList) ? If( __jsonAuthorizedPartnersList as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Models.Api20211015Preview.IPartner) (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.Partner.FromJson(__u) )) ))() : null : AuthorizedPartnersList;} + AfterFromJson(json); + } + + /// + /// Serializes this instance of into a . + /// + /// The container to serialize this object into. If the caller + /// passes in null, a new instance will be created and returned to the caller. + /// Allows the caller to choose the depth of the serialization. See . + /// + /// a serialized instance of as a . + /// + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject(); + + bool returnNow = false; + BeforeToJson(ref container, ref returnNow); + if (returnNow) + { + return container; + } + AddIf( null != this._defaultMaximumExpirationTimeInDay ? (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode)new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNumber((int)this._defaultMaximumExpirationTimeInDay) : null, "defaultMaximumExpirationTimeInDays" ,container.Add ); + if (null != this._authorizedPartnersList) + { + var __w = new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.XNodeArray(); + foreach( var __x in this._authorizedPartnersList ) + { + AddIf(__x?.ToJson(null, serializationMode) ,__w.Add); + } + container.Add("authorizedPartnersList",__w); + } + AfterToJson(ref container); + return container; + } + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PartnerClientAuthentication.PowerShell.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PartnerClientAuthentication.PowerShell.cs new file mode 100644 index 000000000000..6f40806eb149 --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PartnerClientAuthentication.PowerShell.cs @@ -0,0 +1,144 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell; + + /// Partner client authentication + [System.ComponentModel.TypeConverter(typeof(PartnerClientAuthenticationTypeConverter))] + public partial class PartnerClientAuthentication + { + + /// + /// AfterDeserializeDictionary will be called after the deserialization has finished, allowing customization of the + /// object before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Collections.IDictionary content that should be used. + + partial void AfterDeserializeDictionary(global::System.Collections.IDictionary content); + + /// + /// AfterDeserializePSObject will be called after the deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Management.Automation.PSObject content that should be used. + + partial void AfterDeserializePSObject(global::System.Management.Automation.PSObject content); + + /// + /// BeforeDeserializeDictionary will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Collections.IDictionary content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializeDictionary(global::System.Collections.IDictionary content, ref bool returnNow); + + /// + /// BeforeDeserializePSObject will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializePSObject(global::System.Management.Automation.PSObject content, ref bool returnNow); + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerClientAuthentication DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new PartnerClientAuthentication(content); + } + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerClientAuthentication DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new PartnerClientAuthentication(content); + } + + /// + /// Creates a new instance of , deserializing the content from a json string. + /// + /// a string containing a JSON serialized instance of this model. + /// an instance of the model class. + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerClientAuthentication FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode.Parse(jsonText)); + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + internal PartnerClientAuthentication(global::System.Collections.IDictionary content) + { + bool returnNow = false; + BeforeDeserializeDictionary(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("ClientAuthenticationType")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerClientAuthenticationInternal)this).ClientAuthenticationType = (string) content.GetValueForProperty("ClientAuthenticationType",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerClientAuthenticationInternal)this).ClientAuthenticationType, global::System.Convert.ToString); + } + AfterDeserializeDictionary(content); + } + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + internal PartnerClientAuthentication(global::System.Management.Automation.PSObject content) + { + bool returnNow = false; + BeforeDeserializePSObject(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("ClientAuthenticationType")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerClientAuthenticationInternal)this).ClientAuthenticationType = (string) content.GetValueForProperty("ClientAuthenticationType",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerClientAuthenticationInternal)this).ClientAuthenticationType, 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.EventGrid.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// Partner client authentication + [System.ComponentModel.TypeConverter(typeof(PartnerClientAuthenticationTypeConverter))] + public partial interface IPartnerClientAuthentication + + { + + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PartnerClientAuthentication.TypeConverter.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PartnerClientAuthentication.TypeConverter.cs new file mode 100644 index 000000000000..c7d93b40ecc4 --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PartnerClientAuthentication.TypeConverter.cs @@ -0,0 +1,147 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class PartnerClientAuthenticationTypeConverter : global::System.Management.Automation.PSTypeConverter + { + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false. + /// + public override bool CanConvertFrom(object sourceValue, global::System.Type destinationType) => CanConvertFrom(sourceValue); + + /// + /// Determines if the converter can convert the parameter to the . + /// + /// the instance to check if it can be converted to the type. + /// + /// true if the instance could be converted to a type, otherwise false + /// + public static bool CanConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return true; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + // we say yest to PSObjects + return true; + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + // we say yest to Hashtables/dictionaries + return true; + } + try + { + if (null != sourceValue.ToJsonString()) + { + return true; + } + } + catch + { + // Not one of our objects + } + try + { + string text = sourceValue.ToString()?.Trim(); + return true == text?.StartsWith("{") && true == text?.EndsWith("}") && Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonType.Object; + } + catch + { + // Doesn't look like it can be treated as JSON + } + return false; + } + + /// + /// Determines if the parameter can be converted to the parameter + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false + /// + public override bool CanConvertTo(object sourceValue, global::System.Type destinationType) => false; + + /// + /// Converts the parameter to the parameter using and + /// + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// + /// an instance of , or null if there is no suitable conversion. + /// + public override object ConvertFrom(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => ConvertFrom(sourceValue); + + /// + /// Converts the parameter to the parameter using and + /// + /// the value to convert into an instance of . + /// + /// an instance of , or null if there is no suitable conversion. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerClientAuthentication ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerClientAuthentication).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return PartnerClientAuthentication.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return PartnerClientAuthentication.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return PartnerClientAuthentication.DeserializeFromDictionary(sourceValue); + } + return null; + } + + /// NotImplemented -- this will return null + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// will always return null. + public override object ConvertTo(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => null; + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PartnerClientAuthentication.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PartnerClientAuthentication.cs new file mode 100644 index 000000000000..de5c9d8bf866 --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PartnerClientAuthentication.cs @@ -0,0 +1,54 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Extensions; + + /// Partner client authentication + public partial class PartnerClientAuthentication : + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerClientAuthentication, + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerClientAuthenticationInternal + { + + /// Backing field for property. + private string _clientAuthenticationType= @"AzureAD"; + + /// Type of client authentication + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Owned)] + public string ClientAuthenticationType { get => this._clientAuthenticationType; } + + /// Internal Acessors for ClientAuthenticationType + string Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerClientAuthenticationInternal.ClientAuthenticationType { get => this._clientAuthenticationType; set { {_clientAuthenticationType = value;} } } + + /// Creates an new instance. + public PartnerClientAuthentication() + { + + } + } + /// Partner client authentication + public partial interface IPartnerClientAuthentication : + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IJsonSerializable + { + /// Type of client authentication + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = true, + ReadOnly = true, + Description = @"Type of client authentication", + SerializedName = @"clientAuthenticationType", + PossibleTypes = new [] { typeof(string) })] + string ClientAuthenticationType { get; } + + } + /// Partner client authentication + internal partial interface IPartnerClientAuthenticationInternal + + { + /// Type of client authentication + string ClientAuthenticationType { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PartnerClientAuthentication.json.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PartnerClientAuthentication.json.cs new file mode 100644 index 000000000000..79a64ff5068d --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PartnerClientAuthentication.json.cs @@ -0,0 +1,121 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Extensions; + + /// Partner client authentication + public partial class PartnerClientAuthentication + { + + /// + /// AfterFromJson will be called after the json deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JsonNode that should be deserialized into this object. + + partial void AfterFromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json erialization has finished, allowing customization of the before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JSON container that the serialization result will be placed in. + + partial void AfterToJson(ref Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject container); + + /// + /// BeforeFromJson will be called before the json deserialization has commenced, allowing complete customization of + /// the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JsonNode that should be deserialized into this object. + /// Determines if the rest of the deserialization should be processed, or if the method should return + /// instantly. + + partial void BeforeFromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject json, ref bool returnNow); + + /// + /// BeforeToJson will be called before the json serialization has commenced, allowing complete customization of the + /// object before it is serialized. + /// If you wish to disable the default serialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JSON container that the serialization result will be placed in. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeToJson(ref Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerClientAuthentication. + /// Note: the Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerClientAuthentication interface + /// is polymorphic, and the precise model class that will get deserialized is determined at runtime based on the payload. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerClientAuthentication. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerClientAuthentication FromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode node) + { + if (!(node is Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject json)) + { + return null; + } + // Polymorphic type -- select the appropriate constructor using the discriminator + + switch ( json.StringProperty("clientAuthenticationType") ) + { + case "AzureAD": + { + return new AzureAdPartnerClientAuthentication(json); + } + } + return new PartnerClientAuthentication(json); + } + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject instance to deserialize from. + internal PartnerClientAuthentication(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject json) + { + bool returnNow = false; + BeforeFromJson(json, ref returnNow); + if (returnNow) + { + return; + } + {_clientAuthenticationType = If( json?.PropertyT("clientAuthenticationType"), out var __jsonClientAuthenticationType) ? (string)__jsonClientAuthenticationType : (string)ClientAuthenticationType;} + AfterFromJson(json); + } + + /// + /// Serializes this instance of into a . + /// + /// The container to serialize this object into. If the caller + /// passes in null, a new instance will be created and returned to the caller. + /// Allows the caller to choose the depth of the serialization. See . + /// + /// a serialized instance of as a . + /// + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject(); + + bool returnNow = false; + BeforeToJson(ref container, ref returnNow); + if (returnNow) + { + return container; + } + AddIf( null != (((object)this._clientAuthenticationType)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonString(this._clientAuthenticationType.ToString()) : null, "clientAuthenticationType" ,container.Add ); + AfterToJson(ref container); + return container; + } + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PartnerConfiguration.PowerShell.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PartnerConfiguration.PowerShell.cs new file mode 100644 index 000000000000..6abe4e83a8c8 --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PartnerConfiguration.PowerShell.cs @@ -0,0 +1,272 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell; + + /// Partner configuration information + [System.ComponentModel.TypeConverter(typeof(PartnerConfigurationTypeConverter))] + public partial class PartnerConfiguration + { + + /// + /// AfterDeserializeDictionary will be called after the deserialization has finished, allowing customization of the + /// object before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Collections.IDictionary content that should be used. + + partial void AfterDeserializeDictionary(global::System.Collections.IDictionary content); + + /// + /// AfterDeserializePSObject will be called after the deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Management.Automation.PSObject content that should be used. + + partial void AfterDeserializePSObject(global::System.Management.Automation.PSObject content); + + /// + /// BeforeDeserializeDictionary will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Collections.IDictionary content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializeDictionary(global::System.Collections.IDictionary content, ref bool returnNow); + + /// + /// BeforeDeserializePSObject will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializePSObject(global::System.Management.Automation.PSObject content, ref bool returnNow); + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerConfiguration DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new PartnerConfiguration(content); + } + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerConfiguration DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new PartnerConfiguration(content); + } + + /// + /// Creates a new instance of , deserializing the content from a json string. + /// + /// a string containing a JSON serialized instance of this model. + /// an instance of the model class. + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerConfiguration FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode.Parse(jsonText)); + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + internal PartnerConfiguration(global::System.Collections.IDictionary content) + { + bool returnNow = false; + BeforeDeserializeDictionary(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("Property")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerConfigurationInternal)this).Property = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerConfigurationProperties) content.GetValueForProperty("Property",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerConfigurationInternal)this).Property, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.PartnerConfigurationPropertiesTypeConverter.ConvertFrom); + } + if (content.Contains("SystemData")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerConfigurationInternal)this).SystemData = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20.ISystemData) content.GetValueForProperty("SystemData",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerConfigurationInternal)this).SystemData, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20.SystemDataTypeConverter.ConvertFrom); + } + if (content.Contains("Location")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerConfigurationInternal)this).Location = (string) content.GetValueForProperty("Location",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerConfigurationInternal)this).Location, global::System.Convert.ToString); + } + if (content.Contains("Tag")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerConfigurationInternal)this).Tag = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerConfigurationTags) content.GetValueForProperty("Tag",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerConfigurationInternal)this).Tag, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.PartnerConfigurationTagsTypeConverter.ConvertFrom); + } + if (content.Contains("Id")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IResourceInternal)this).Id = (string) content.GetValueForProperty("Id",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IResourceInternal)this).Id, global::System.Convert.ToString); + } + if (content.Contains("Name")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IResourceInternal)this).Name = (string) content.GetValueForProperty("Name",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IResourceInternal)this).Name, global::System.Convert.ToString); + } + if (content.Contains("Type")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IResourceInternal)this).Type = (string) content.GetValueForProperty("Type",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IResourceInternal)this).Type, global::System.Convert.ToString); + } + if (content.Contains("PartnerAuthorization")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerConfigurationInternal)this).PartnerAuthorization = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerAuthorization) content.GetValueForProperty("PartnerAuthorization",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerConfigurationInternal)this).PartnerAuthorization, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.PartnerAuthorizationTypeConverter.ConvertFrom); + } + if (content.Contains("SystemDataCreatedBy")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerConfigurationInternal)this).SystemDataCreatedBy = (string) content.GetValueForProperty("SystemDataCreatedBy",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerConfigurationInternal)this).SystemDataCreatedBy, global::System.Convert.ToString); + } + if (content.Contains("SystemDataCreatedAt")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerConfigurationInternal)this).SystemDataCreatedAt = (global::System.DateTime?) content.GetValueForProperty("SystemDataCreatedAt",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerConfigurationInternal)this).SystemDataCreatedAt, (v) => v is global::System.DateTime _v ? _v : global::System.Xml.XmlConvert.ToDateTime( v.ToString() , global::System.Xml.XmlDateTimeSerializationMode.Unspecified)); + } + if (content.Contains("ProvisioningState")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerConfigurationInternal)this).ProvisioningState = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.PartnerConfigurationProvisioningState?) content.GetValueForProperty("ProvisioningState",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerConfigurationInternal)this).ProvisioningState, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.PartnerConfigurationProvisioningState.CreateFrom); + } + if (content.Contains("SystemDataCreatedByType")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerConfigurationInternal)this).SystemDataCreatedByType = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.CreatedByType?) content.GetValueForProperty("SystemDataCreatedByType",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerConfigurationInternal)this).SystemDataCreatedByType, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.CreatedByType.CreateFrom); + } + if (content.Contains("SystemDataLastModifiedBy")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerConfigurationInternal)this).SystemDataLastModifiedBy = (string) content.GetValueForProperty("SystemDataLastModifiedBy",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerConfigurationInternal)this).SystemDataLastModifiedBy, global::System.Convert.ToString); + } + if (content.Contains("SystemDataLastModifiedByType")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerConfigurationInternal)this).SystemDataLastModifiedByType = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.CreatedByType?) content.GetValueForProperty("SystemDataLastModifiedByType",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerConfigurationInternal)this).SystemDataLastModifiedByType, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.CreatedByType.CreateFrom); + } + if (content.Contains("SystemDataLastModifiedAt")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerConfigurationInternal)this).SystemDataLastModifiedAt = (global::System.DateTime?) content.GetValueForProperty("SystemDataLastModifiedAt",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerConfigurationInternal)this).SystemDataLastModifiedAt, (v) => v is global::System.DateTime _v ? _v : global::System.Xml.XmlConvert.ToDateTime( v.ToString() , global::System.Xml.XmlDateTimeSerializationMode.Unspecified)); + } + if (content.Contains("PartnerAuthorizationDefaultMaximumExpirationTimeInDay")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerConfigurationInternal)this).PartnerAuthorizationDefaultMaximumExpirationTimeInDay = (int?) content.GetValueForProperty("PartnerAuthorizationDefaultMaximumExpirationTimeInDay",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerConfigurationInternal)this).PartnerAuthorizationDefaultMaximumExpirationTimeInDay, (__y)=> (int) global::System.Convert.ChangeType(__y, typeof(int))); + } + if (content.Contains("PartnerAuthorizationAuthorizedPartnersList")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerConfigurationInternal)this).PartnerAuthorizationAuthorizedPartnersList = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartner[]) content.GetValueForProperty("PartnerAuthorizationAuthorizedPartnersList",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerConfigurationInternal)this).PartnerAuthorizationAuthorizedPartnersList, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.PartnerTypeConverter.ConvertFrom)); + } + AfterDeserializeDictionary(content); + } + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + internal PartnerConfiguration(global::System.Management.Automation.PSObject content) + { + bool returnNow = false; + BeforeDeserializePSObject(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("Property")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerConfigurationInternal)this).Property = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerConfigurationProperties) content.GetValueForProperty("Property",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerConfigurationInternal)this).Property, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.PartnerConfigurationPropertiesTypeConverter.ConvertFrom); + } + if (content.Contains("SystemData")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerConfigurationInternal)this).SystemData = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20.ISystemData) content.GetValueForProperty("SystemData",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerConfigurationInternal)this).SystemData, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20.SystemDataTypeConverter.ConvertFrom); + } + if (content.Contains("Location")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerConfigurationInternal)this).Location = (string) content.GetValueForProperty("Location",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerConfigurationInternal)this).Location, global::System.Convert.ToString); + } + if (content.Contains("Tag")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerConfigurationInternal)this).Tag = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerConfigurationTags) content.GetValueForProperty("Tag",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerConfigurationInternal)this).Tag, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.PartnerConfigurationTagsTypeConverter.ConvertFrom); + } + if (content.Contains("Id")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IResourceInternal)this).Id = (string) content.GetValueForProperty("Id",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IResourceInternal)this).Id, global::System.Convert.ToString); + } + if (content.Contains("Name")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IResourceInternal)this).Name = (string) content.GetValueForProperty("Name",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IResourceInternal)this).Name, global::System.Convert.ToString); + } + if (content.Contains("Type")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IResourceInternal)this).Type = (string) content.GetValueForProperty("Type",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IResourceInternal)this).Type, global::System.Convert.ToString); + } + if (content.Contains("PartnerAuthorization")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerConfigurationInternal)this).PartnerAuthorization = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerAuthorization) content.GetValueForProperty("PartnerAuthorization",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerConfigurationInternal)this).PartnerAuthorization, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.PartnerAuthorizationTypeConverter.ConvertFrom); + } + if (content.Contains("SystemDataCreatedBy")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerConfigurationInternal)this).SystemDataCreatedBy = (string) content.GetValueForProperty("SystemDataCreatedBy",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerConfigurationInternal)this).SystemDataCreatedBy, global::System.Convert.ToString); + } + if (content.Contains("SystemDataCreatedAt")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerConfigurationInternal)this).SystemDataCreatedAt = (global::System.DateTime?) content.GetValueForProperty("SystemDataCreatedAt",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerConfigurationInternal)this).SystemDataCreatedAt, (v) => v is global::System.DateTime _v ? _v : global::System.Xml.XmlConvert.ToDateTime( v.ToString() , global::System.Xml.XmlDateTimeSerializationMode.Unspecified)); + } + if (content.Contains("ProvisioningState")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerConfigurationInternal)this).ProvisioningState = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.PartnerConfigurationProvisioningState?) content.GetValueForProperty("ProvisioningState",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerConfigurationInternal)this).ProvisioningState, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.PartnerConfigurationProvisioningState.CreateFrom); + } + if (content.Contains("SystemDataCreatedByType")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerConfigurationInternal)this).SystemDataCreatedByType = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.CreatedByType?) content.GetValueForProperty("SystemDataCreatedByType",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerConfigurationInternal)this).SystemDataCreatedByType, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.CreatedByType.CreateFrom); + } + if (content.Contains("SystemDataLastModifiedBy")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerConfigurationInternal)this).SystemDataLastModifiedBy = (string) content.GetValueForProperty("SystemDataLastModifiedBy",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerConfigurationInternal)this).SystemDataLastModifiedBy, global::System.Convert.ToString); + } + if (content.Contains("SystemDataLastModifiedByType")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerConfigurationInternal)this).SystemDataLastModifiedByType = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.CreatedByType?) content.GetValueForProperty("SystemDataLastModifiedByType",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerConfigurationInternal)this).SystemDataLastModifiedByType, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.CreatedByType.CreateFrom); + } + if (content.Contains("SystemDataLastModifiedAt")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerConfigurationInternal)this).SystemDataLastModifiedAt = (global::System.DateTime?) content.GetValueForProperty("SystemDataLastModifiedAt",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerConfigurationInternal)this).SystemDataLastModifiedAt, (v) => v is global::System.DateTime _v ? _v : global::System.Xml.XmlConvert.ToDateTime( v.ToString() , global::System.Xml.XmlDateTimeSerializationMode.Unspecified)); + } + if (content.Contains("PartnerAuthorizationDefaultMaximumExpirationTimeInDay")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerConfigurationInternal)this).PartnerAuthorizationDefaultMaximumExpirationTimeInDay = (int?) content.GetValueForProperty("PartnerAuthorizationDefaultMaximumExpirationTimeInDay",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerConfigurationInternal)this).PartnerAuthorizationDefaultMaximumExpirationTimeInDay, (__y)=> (int) global::System.Convert.ChangeType(__y, typeof(int))); + } + if (content.Contains("PartnerAuthorizationAuthorizedPartnersList")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerConfigurationInternal)this).PartnerAuthorizationAuthorizedPartnersList = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartner[]) content.GetValueForProperty("PartnerAuthorizationAuthorizedPartnersList",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerConfigurationInternal)this).PartnerAuthorizationAuthorizedPartnersList, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.PartnerTypeConverter.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.EventGrid.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// Partner configuration information + [System.ComponentModel.TypeConverter(typeof(PartnerConfigurationTypeConverter))] + public partial interface IPartnerConfiguration + + { + + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PartnerConfiguration.TypeConverter.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PartnerConfiguration.TypeConverter.cs new file mode 100644 index 000000000000..861a0c2f103f --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PartnerConfiguration.TypeConverter.cs @@ -0,0 +1,147 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class PartnerConfigurationTypeConverter : global::System.Management.Automation.PSTypeConverter + { + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false. + /// + public override bool CanConvertFrom(object sourceValue, global::System.Type destinationType) => CanConvertFrom(sourceValue); + + /// + /// Determines if the converter can convert the parameter to the . + /// + /// the instance to check if it can be converted to the type. + /// + /// true if the instance could be converted to a type, otherwise false + /// + public static bool CanConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return true; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + // we say yest to PSObjects + return true; + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + // we say yest to Hashtables/dictionaries + return true; + } + try + { + if (null != sourceValue.ToJsonString()) + { + return true; + } + } + catch + { + // Not one of our objects + } + try + { + string text = sourceValue.ToString()?.Trim(); + return true == text?.StartsWith("{") && true == text?.EndsWith("}") && Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonType.Object; + } + catch + { + // Doesn't look like it can be treated as JSON + } + return false; + } + + /// + /// Determines if the parameter can be converted to the parameter + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false + /// + public override bool CanConvertTo(object sourceValue, global::System.Type destinationType) => false; + + /// + /// Converts the parameter to the parameter using and + /// + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// + /// an instance of , or null if there is no suitable conversion. + /// + public override object ConvertFrom(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => ConvertFrom(sourceValue); + + /// + /// Converts the parameter to the parameter using and + /// + /// the value to convert into an instance of . + /// + /// an instance of , or null if there is no suitable conversion. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerConfiguration ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerConfiguration).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return PartnerConfiguration.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return PartnerConfiguration.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return PartnerConfiguration.DeserializeFromDictionary(sourceValue); + } + return null; + } + + /// NotImplemented -- this will return null + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// will always return null. + public override object ConvertTo(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => null; + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PartnerConfiguration.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PartnerConfiguration.cs new file mode 100644 index 000000000000..de705a014f7c --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PartnerConfiguration.cs @@ -0,0 +1,276 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Extensions; + + /// Partner configuration information + public partial class PartnerConfiguration : + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerConfiguration, + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerConfigurationInternal, + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IValidates + { + /// + /// Backing field for Inherited model + /// + private Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IResource __resource = new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.Resource(); + + /// Fully qualified identifier of the resource. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Inherited)] + public string Id { get => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IResourceInternal)__resource).Id; } + + /// Backing field for property. + private string _location; + + /// Location of the resource. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Owned)] + public string Location { get => this._location; set => this._location = value; } + + /// Internal Acessors for PartnerAuthorization + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerAuthorization Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerConfigurationInternal.PartnerAuthorization { get => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerConfigurationPropertiesInternal)Property).PartnerAuthorization; set => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerConfigurationPropertiesInternal)Property).PartnerAuthorization = value; } + + /// Internal Acessors for Property + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerConfigurationProperties Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerConfigurationInternal.Property { get => (this._property = this._property ?? new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.PartnerConfigurationProperties()); set { {_property = value;} } } + + /// Internal Acessors for SystemData + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20.ISystemData Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerConfigurationInternal.SystemData { get => (this._systemData = this._systemData ?? new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20.SystemData()); set { {_systemData = value;} } } + + /// Internal Acessors for Id + string Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IResourceInternal.Id { get => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IResourceInternal)__resource).Id; set => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IResourceInternal)__resource).Id = value; } + + /// Internal Acessors for Name + string Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IResourceInternal.Name { get => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IResourceInternal)__resource).Name; set => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IResourceInternal)__resource).Name = value; } + + /// Internal Acessors for Type + string Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IResourceInternal.Type { get => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IResourceInternal)__resource).Type; set => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IResourceInternal)__resource).Type = value; } + + /// Name of the resource. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Inherited)] + public string Name { get => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IResourceInternal)__resource).Name; } + + /// The list of authorized partners. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Inlined)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartner[] PartnerAuthorizationAuthorizedPartnersList { get => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerConfigurationPropertiesInternal)Property).PartnerAuthorizationAuthorizedPartnersList; set => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerConfigurationPropertiesInternal)Property).PartnerAuthorizationAuthorizedPartnersList = value ?? null /* arrayOf */; } + + /// + /// Time used to validate the authorization expiration time for each authorized partner. If DefaultMaximumExpirationTimeInDays + /// is + /// not specified, the default is 7 days. Otherwise, allowed values are between 1 and 365 days. + /// + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Inlined)] + public int? PartnerAuthorizationDefaultMaximumExpirationTimeInDay { get => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerConfigurationPropertiesInternal)Property).PartnerAuthorizationDefaultMaximumExpirationTimeInDay; set => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerConfigurationPropertiesInternal)Property).PartnerAuthorizationDefaultMaximumExpirationTimeInDay = value ?? default(int); } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerConfigurationProperties _property; + + /// Properties of the partner configuration. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Owned)] + internal Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerConfigurationProperties Property { get => (this._property = this._property ?? new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.PartnerConfigurationProperties()); set => this._property = value; } + + /// Provisioning state of the partner configuration. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Inlined)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.PartnerConfigurationProvisioningState? ProvisioningState { get => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerConfigurationPropertiesInternal)Property).ProvisioningState; set => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerConfigurationPropertiesInternal)Property).ProvisioningState = value ?? ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.PartnerConfigurationProvisioningState)""); } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20.ISystemData _systemData; + + /// The system metadata relating to partner configuration resource. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Owned)] + internal Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20.ISystemData SystemData { get => (this._systemData = this._systemData ?? new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20.SystemData()); } + + /// The timestamp of resource creation (UTC). + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Inlined)] + public global::System.DateTime? SystemDataCreatedAt { get => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20.ISystemDataInternal)SystemData).CreatedAt; set => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20.ISystemDataInternal)SystemData).CreatedAt = value ?? default(global::System.DateTime); } + + /// The identity that created the resource. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Inlined)] + public string SystemDataCreatedBy { get => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20.ISystemDataInternal)SystemData).CreatedBy; set => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20.ISystemDataInternal)SystemData).CreatedBy = value ?? null; } + + /// The type of identity that created the resource. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Inlined)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.CreatedByType? SystemDataCreatedByType { get => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20.ISystemDataInternal)SystemData).CreatedByType; set => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20.ISystemDataInternal)SystemData).CreatedByType = value ?? ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.CreatedByType)""); } + + /// The timestamp of resource last modification (UTC) + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Inlined)] + public global::System.DateTime? SystemDataLastModifiedAt { get => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20.ISystemDataInternal)SystemData).LastModifiedAt; set => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20.ISystemDataInternal)SystemData).LastModifiedAt = value ?? default(global::System.DateTime); } + + /// The identity that last modified the resource. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Inlined)] + public string SystemDataLastModifiedBy { get => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20.ISystemDataInternal)SystemData).LastModifiedBy; set => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20.ISystemDataInternal)SystemData).LastModifiedBy = value ?? null; } + + /// The type of identity that last modified the resource. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Inlined)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.CreatedByType? SystemDataLastModifiedByType { get => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20.ISystemDataInternal)SystemData).LastModifiedByType; set => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20.ISystemDataInternal)SystemData).LastModifiedByType = value ?? ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.CreatedByType)""); } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerConfigurationTags _tag; + + /// Tags of the resource. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Owned)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerConfigurationTags Tag { get => (this._tag = this._tag ?? new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.PartnerConfigurationTags()); set => this._tag = value; } + + /// Type of the resource. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Inherited)] + public string Type { get => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IResourceInternal)__resource).Type; } + + /// Creates an new instance. + public PartnerConfiguration() + { + + } + + /// Validates that this object meets the validation criteria. + /// an instance that will receive validation + /// events. + /// + /// A that will be complete when validation is completed. + /// + public async global::System.Threading.Tasks.Task Validate(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener eventListener) + { + await eventListener.AssertNotNull(nameof(__resource), __resource); + await eventListener.AssertObjectIsValid(nameof(__resource), __resource); + } + } + /// Partner configuration information + public partial interface IPartnerConfiguration : + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IJsonSerializable, + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IResource + { + /// Location of the resource. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Location of the resource.", + SerializedName = @"location", + PossibleTypes = new [] { typeof(string) })] + string Location { get; set; } + /// The list of authorized partners. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The list of authorized partners.", + SerializedName = @"authorizedPartnersList", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartner) })] + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartner[] PartnerAuthorizationAuthorizedPartnersList { get; set; } + /// + /// Time used to validate the authorization expiration time for each authorized partner. If DefaultMaximumExpirationTimeInDays + /// is + /// not specified, the default is 7 days. Otherwise, allowed values are between 1 and 365 days. + /// + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Time used to validate the authorization expiration time for each authorized partner. If DefaultMaximumExpirationTimeInDays is + not specified, the default is 7 days. Otherwise, allowed values are between 1 and 365 days.", + SerializedName = @"defaultMaximumExpirationTimeInDays", + PossibleTypes = new [] { typeof(int) })] + int? PartnerAuthorizationDefaultMaximumExpirationTimeInDay { get; set; } + /// Provisioning state of the partner configuration. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Provisioning state of the partner configuration.", + SerializedName = @"provisioningState", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.PartnerConfigurationProvisioningState) })] + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.PartnerConfigurationProvisioningState? ProvisioningState { get; set; } + /// The timestamp of resource creation (UTC). + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.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.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The type of identity that created the resource.", + SerializedName = @"createdByType", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.CreatedByType) })] + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.CreatedByType? SystemDataCreatedByType { get; set; } + /// The timestamp of resource last modification (UTC) + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.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.EventGrid.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.EventGrid.Support.CreatedByType) })] + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.CreatedByType? SystemDataLastModifiedByType { get; set; } + /// Tags of the resource. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Tags of the resource.", + SerializedName = @"tags", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerConfigurationTags) })] + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerConfigurationTags Tag { get; set; } + + } + /// Partner configuration information + internal partial interface IPartnerConfigurationInternal : + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IResourceInternal + { + /// Location of the resource. + string Location { get; set; } + /// The details of authorized partners. + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerAuthorization PartnerAuthorization { get; set; } + /// The list of authorized partners. + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartner[] PartnerAuthorizationAuthorizedPartnersList { get; set; } + /// + /// Time used to validate the authorization expiration time for each authorized partner. If DefaultMaximumExpirationTimeInDays + /// is + /// not specified, the default is 7 days. Otherwise, allowed values are between 1 and 365 days. + /// + int? PartnerAuthorizationDefaultMaximumExpirationTimeInDay { get; set; } + /// Properties of the partner configuration. + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerConfigurationProperties Property { get; set; } + /// Provisioning state of the partner configuration. + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.PartnerConfigurationProvisioningState? ProvisioningState { get; set; } + /// The system metadata relating to partner configuration resource. + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.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.EventGrid.Support.CreatedByType? SystemDataLastModifiedByType { get; set; } + /// Tags of the resource. + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerConfigurationTags Tag { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PartnerConfiguration.json.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PartnerConfiguration.json.cs new file mode 100644 index 000000000000..2db13dbdf701 --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PartnerConfiguration.json.cs @@ -0,0 +1,117 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Extensions; + + /// Partner configuration information + public partial class PartnerConfiguration + { + + /// + /// AfterFromJson will be called after the json deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JsonNode that should be deserialized into this object. + + partial void AfterFromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json erialization has finished, allowing customization of the before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JSON container that the serialization result will be placed in. + + partial void AfterToJson(ref Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject container); + + /// + /// BeforeFromJson will be called before the json deserialization has commenced, allowing complete customization of + /// the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JsonNode that should be deserialized into this object. + /// Determines if the rest of the deserialization should be processed, or if the method should return + /// instantly. + + partial void BeforeFromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject json, ref bool returnNow); + + /// + /// BeforeToJson will be called before the json serialization has commenced, allowing complete customization of the + /// object before it is serialized. + /// If you wish to disable the default serialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JSON container that the serialization result will be placed in. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeToJson(ref Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerConfiguration. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerConfiguration. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerConfiguration FromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject json ? new PartnerConfiguration(json) : null; + } + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject instance to deserialize from. + internal PartnerConfiguration(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject json) + { + bool returnNow = false; + BeforeFromJson(json, ref returnNow); + if (returnNow) + { + return; + } + __resource = new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.Resource(json); + {_property = If( json?.PropertyT("properties"), out var __jsonProperties) ? Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.PartnerConfigurationProperties.FromJson(__jsonProperties) : Property;} + {_systemData = If( json?.PropertyT("systemData"), out var __jsonSystemData) ? Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20.SystemData.FromJson(__jsonSystemData) : SystemData;} + {_location = If( json?.PropertyT("location"), out var __jsonLocation) ? (string)__jsonLocation : (string)Location;} + {_tag = If( json?.PropertyT("tags"), out var __jsonTags) ? Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.PartnerConfigurationTags.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.EventGrid.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Runtime.Json.JsonNode) this._property.ToJson(null,serializationMode) : null, "properties" ,container.Add ); + if (serializationMode.HasFlag(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SerializationMode.IncludeReadOnly)) + { + AddIf( null != this._systemData ? (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode) this._systemData.ToJson(null,serializationMode) : null, "systemData" ,container.Add ); + } + AddIf( null != (((object)this._location)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonString(this._location.ToString()) : null, "location" ,container.Add ); + AddIf( null != this._tag ? (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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/eventgrid/generated/api/Models/Api20211015Preview/PartnerConfigurationProperties.PowerShell.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PartnerConfigurationProperties.PowerShell.cs new file mode 100644 index 000000000000..3b15b46caf1b --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PartnerConfigurationProperties.PowerShell.cs @@ -0,0 +1,168 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell; + + /// Properties of the partner configuration. + [System.ComponentModel.TypeConverter(typeof(PartnerConfigurationPropertiesTypeConverter))] + public partial class PartnerConfigurationProperties + { + + /// + /// AfterDeserializeDictionary will be called after the deserialization has finished, allowing customization of the + /// object before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Collections.IDictionary content that should be used. + + partial void AfterDeserializeDictionary(global::System.Collections.IDictionary content); + + /// + /// AfterDeserializePSObject will be called after the deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Management.Automation.PSObject content that should be used. + + partial void AfterDeserializePSObject(global::System.Management.Automation.PSObject content); + + /// + /// BeforeDeserializeDictionary will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Collections.IDictionary content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializeDictionary(global::System.Collections.IDictionary content, ref bool returnNow); + + /// + /// BeforeDeserializePSObject will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializePSObject(global::System.Management.Automation.PSObject content, ref bool returnNow); + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerConfigurationProperties DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new PartnerConfigurationProperties(content); + } + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerConfigurationProperties DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new PartnerConfigurationProperties(content); + } + + /// + /// Creates a new instance of , deserializing the content from a json string. + /// + /// a string containing a JSON serialized instance of this model. + /// an instance of the model class. + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerConfigurationProperties FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode.Parse(jsonText)); + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + internal PartnerConfigurationProperties(global::System.Collections.IDictionary content) + { + bool returnNow = false; + BeforeDeserializeDictionary(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("PartnerAuthorization")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerConfigurationPropertiesInternal)this).PartnerAuthorization = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerAuthorization) content.GetValueForProperty("PartnerAuthorization",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerConfigurationPropertiesInternal)this).PartnerAuthorization, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.PartnerAuthorizationTypeConverter.ConvertFrom); + } + if (content.Contains("ProvisioningState")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerConfigurationPropertiesInternal)this).ProvisioningState = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.PartnerConfigurationProvisioningState?) content.GetValueForProperty("ProvisioningState",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerConfigurationPropertiesInternal)this).ProvisioningState, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.PartnerConfigurationProvisioningState.CreateFrom); + } + if (content.Contains("PartnerAuthorizationDefaultMaximumExpirationTimeInDay")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerConfigurationPropertiesInternal)this).PartnerAuthorizationDefaultMaximumExpirationTimeInDay = (int?) content.GetValueForProperty("PartnerAuthorizationDefaultMaximumExpirationTimeInDay",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerConfigurationPropertiesInternal)this).PartnerAuthorizationDefaultMaximumExpirationTimeInDay, (__y)=> (int) global::System.Convert.ChangeType(__y, typeof(int))); + } + if (content.Contains("PartnerAuthorizationAuthorizedPartnersList")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerConfigurationPropertiesInternal)this).PartnerAuthorizationAuthorizedPartnersList = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartner[]) content.GetValueForProperty("PartnerAuthorizationAuthorizedPartnersList",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerConfigurationPropertiesInternal)this).PartnerAuthorizationAuthorizedPartnersList, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.PartnerTypeConverter.ConvertFrom)); + } + AfterDeserializeDictionary(content); + } + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + internal PartnerConfigurationProperties(global::System.Management.Automation.PSObject content) + { + bool returnNow = false; + BeforeDeserializePSObject(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("PartnerAuthorization")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerConfigurationPropertiesInternal)this).PartnerAuthorization = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerAuthorization) content.GetValueForProperty("PartnerAuthorization",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerConfigurationPropertiesInternal)this).PartnerAuthorization, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.PartnerAuthorizationTypeConverter.ConvertFrom); + } + if (content.Contains("ProvisioningState")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerConfigurationPropertiesInternal)this).ProvisioningState = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.PartnerConfigurationProvisioningState?) content.GetValueForProperty("ProvisioningState",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerConfigurationPropertiesInternal)this).ProvisioningState, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.PartnerConfigurationProvisioningState.CreateFrom); + } + if (content.Contains("PartnerAuthorizationDefaultMaximumExpirationTimeInDay")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerConfigurationPropertiesInternal)this).PartnerAuthorizationDefaultMaximumExpirationTimeInDay = (int?) content.GetValueForProperty("PartnerAuthorizationDefaultMaximumExpirationTimeInDay",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerConfigurationPropertiesInternal)this).PartnerAuthorizationDefaultMaximumExpirationTimeInDay, (__y)=> (int) global::System.Convert.ChangeType(__y, typeof(int))); + } + if (content.Contains("PartnerAuthorizationAuthorizedPartnersList")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerConfigurationPropertiesInternal)this).PartnerAuthorizationAuthorizedPartnersList = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartner[]) content.GetValueForProperty("PartnerAuthorizationAuthorizedPartnersList",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerConfigurationPropertiesInternal)this).PartnerAuthorizationAuthorizedPartnersList, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.PartnerTypeConverter.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.EventGrid.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// Properties of the partner configuration. + [System.ComponentModel.TypeConverter(typeof(PartnerConfigurationPropertiesTypeConverter))] + public partial interface IPartnerConfigurationProperties + + { + + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PartnerConfigurationProperties.TypeConverter.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PartnerConfigurationProperties.TypeConverter.cs new file mode 100644 index 000000000000..de2e357de7cb --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PartnerConfigurationProperties.TypeConverter.cs @@ -0,0 +1,147 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class PartnerConfigurationPropertiesTypeConverter : global::System.Management.Automation.PSTypeConverter + { + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false. + /// + public override bool CanConvertFrom(object sourceValue, global::System.Type destinationType) => CanConvertFrom(sourceValue); + + /// + /// Determines if the converter can convert the parameter to the . + /// + /// the instance to check if it can be converted to the type. + /// + /// true if the instance could be converted to a type, otherwise false + /// + public static bool CanConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return true; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + // we say yest to PSObjects + return true; + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + // we say yest to Hashtables/dictionaries + return true; + } + try + { + if (null != sourceValue.ToJsonString()) + { + return true; + } + } + catch + { + // Not one of our objects + } + try + { + string text = sourceValue.ToString()?.Trim(); + return true == text?.StartsWith("{") && true == text?.EndsWith("}") && Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonType.Object; + } + catch + { + // Doesn't look like it can be treated as JSON + } + return false; + } + + /// + /// Determines if the parameter can be converted to the parameter + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false + /// + public override bool CanConvertTo(object sourceValue, global::System.Type destinationType) => false; + + /// + /// Converts the parameter to the parameter using and + /// + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// + /// an instance of , or null if there is no suitable conversion. + /// + public override object ConvertFrom(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => ConvertFrom(sourceValue); + + /// + /// Converts the parameter to the parameter using and + /// + /// the value to convert into an instance of . + /// + /// an instance of , or null if there is no suitable conversion. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerConfigurationProperties ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerConfigurationProperties).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return PartnerConfigurationProperties.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return PartnerConfigurationProperties.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return PartnerConfigurationProperties.DeserializeFromDictionary(sourceValue); + } + return null; + } + + /// NotImplemented -- this will return null + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// will always return null. + public override object ConvertTo(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => null; + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PartnerConfigurationProperties.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PartnerConfigurationProperties.cs new file mode 100644 index 000000000000..6c2f130e85f1 --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PartnerConfigurationProperties.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.EventGrid.Models.Api20211015Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Extensions; + + /// Properties of the partner configuration. + public partial class PartnerConfigurationProperties : + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerConfigurationProperties, + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerConfigurationPropertiesInternal + { + + /// Internal Acessors for PartnerAuthorization + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerAuthorization Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerConfigurationPropertiesInternal.PartnerAuthorization { get => (this._partnerAuthorization = this._partnerAuthorization ?? new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.PartnerAuthorization()); set { {_partnerAuthorization = value;} } } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerAuthorization _partnerAuthorization; + + /// The details of authorized partners. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Owned)] + internal Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerAuthorization PartnerAuthorization { get => (this._partnerAuthorization = this._partnerAuthorization ?? new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.PartnerAuthorization()); set => this._partnerAuthorization = value; } + + /// The list of authorized partners. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Inlined)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartner[] PartnerAuthorizationAuthorizedPartnersList { get => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerAuthorizationInternal)PartnerAuthorization).AuthorizedPartnersList; set => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerAuthorizationInternal)PartnerAuthorization).AuthorizedPartnersList = value ?? null /* arrayOf */; } + + /// + /// Time used to validate the authorization expiration time for each authorized partner. If DefaultMaximumExpirationTimeInDays + /// is + /// not specified, the default is 7 days. Otherwise, allowed values are between 1 and 365 days. + /// + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Inlined)] + public int? PartnerAuthorizationDefaultMaximumExpirationTimeInDay { get => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerAuthorizationInternal)PartnerAuthorization).DefaultMaximumExpirationTimeInDay; set => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerAuthorizationInternal)PartnerAuthorization).DefaultMaximumExpirationTimeInDay = value ?? default(int); } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.PartnerConfigurationProvisioningState? _provisioningState; + + /// Provisioning state of the partner configuration. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Owned)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.PartnerConfigurationProvisioningState? ProvisioningState { get => this._provisioningState; set => this._provisioningState = value; } + + /// Creates an new instance. + public PartnerConfigurationProperties() + { + + } + } + /// Properties of the partner configuration. + public partial interface IPartnerConfigurationProperties : + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IJsonSerializable + { + /// The list of authorized partners. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The list of authorized partners.", + SerializedName = @"authorizedPartnersList", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartner) })] + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartner[] PartnerAuthorizationAuthorizedPartnersList { get; set; } + /// + /// Time used to validate the authorization expiration time for each authorized partner. If DefaultMaximumExpirationTimeInDays + /// is + /// not specified, the default is 7 days. Otherwise, allowed values are between 1 and 365 days. + /// + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Time used to validate the authorization expiration time for each authorized partner. If DefaultMaximumExpirationTimeInDays is + not specified, the default is 7 days. Otherwise, allowed values are between 1 and 365 days.", + SerializedName = @"defaultMaximumExpirationTimeInDays", + PossibleTypes = new [] { typeof(int) })] + int? PartnerAuthorizationDefaultMaximumExpirationTimeInDay { get; set; } + /// Provisioning state of the partner configuration. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Provisioning state of the partner configuration.", + SerializedName = @"provisioningState", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.PartnerConfigurationProvisioningState) })] + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.PartnerConfigurationProvisioningState? ProvisioningState { get; set; } + + } + /// Properties of the partner configuration. + internal partial interface IPartnerConfigurationPropertiesInternal + + { + /// The details of authorized partners. + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerAuthorization PartnerAuthorization { get; set; } + /// The list of authorized partners. + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartner[] PartnerAuthorizationAuthorizedPartnersList { get; set; } + /// + /// Time used to validate the authorization expiration time for each authorized partner. If DefaultMaximumExpirationTimeInDays + /// is + /// not specified, the default is 7 days. Otherwise, allowed values are between 1 and 365 days. + /// + int? PartnerAuthorizationDefaultMaximumExpirationTimeInDay { get; set; } + /// Provisioning state of the partner configuration. + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.PartnerConfigurationProvisioningState? ProvisioningState { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PartnerConfigurationProperties.json.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PartnerConfigurationProperties.json.cs new file mode 100644 index 000000000000..9bcb67d04ea9 --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PartnerConfigurationProperties.json.cs @@ -0,0 +1,108 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Extensions; + + /// Properties of the partner configuration. + public partial class PartnerConfigurationProperties + { + + /// + /// AfterFromJson will be called after the json deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JsonNode that should be deserialized into this object. + + partial void AfterFromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json erialization has finished, allowing customization of the before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JSON container that the serialization result will be placed in. + + partial void AfterToJson(ref Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject container); + + /// + /// BeforeFromJson will be called before the json deserialization has commenced, allowing complete customization of + /// the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JsonNode that should be deserialized into this object. + /// Determines if the rest of the deserialization should be processed, or if the method should return + /// instantly. + + partial void BeforeFromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject json, ref bool returnNow); + + /// + /// BeforeToJson will be called before the json serialization has commenced, allowing complete customization of the + /// object before it is serialized. + /// If you wish to disable the default serialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JSON container that the serialization result will be placed in. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeToJson(ref Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerConfigurationProperties. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerConfigurationProperties. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerConfigurationProperties FromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject json ? new PartnerConfigurationProperties(json) : null; + } + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject instance to deserialize from. + internal PartnerConfigurationProperties(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject json) + { + bool returnNow = false; + BeforeFromJson(json, ref returnNow); + if (returnNow) + { + return; + } + {_partnerAuthorization = If( json?.PropertyT("partnerAuthorization"), out var __jsonPartnerAuthorization) ? Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.PartnerAuthorization.FromJson(__jsonPartnerAuthorization) : PartnerAuthorization;} + {_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.EventGrid.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject(); + + bool returnNow = false; + BeforeToJson(ref container, ref returnNow); + if (returnNow) + { + return container; + } + AddIf( null != this._partnerAuthorization ? (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode) this._partnerAuthorization.ToJson(null,serializationMode) : null, "partnerAuthorization" ,container.Add ); + AddIf( null != (((object)this._provisioningState)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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/eventgrid/generated/api/Models/Api20211015Preview/PartnerConfigurationTags.PowerShell.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PartnerConfigurationTags.PowerShell.cs new file mode 100644 index 000000000000..683c55b0afe6 --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PartnerConfigurationTags.PowerShell.cs @@ -0,0 +1,140 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell; + + /// Tags of the resource. + [System.ComponentModel.TypeConverter(typeof(PartnerConfigurationTagsTypeConverter))] + public partial class PartnerConfigurationTags + { + + /// + /// AfterDeserializeDictionary will be called after the deserialization has finished, allowing customization of the + /// object before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Collections.IDictionary content that should be used. + + partial void AfterDeserializeDictionary(global::System.Collections.IDictionary content); + + /// + /// AfterDeserializePSObject will be called after the deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Management.Automation.PSObject content that should be used. + + partial void AfterDeserializePSObject(global::System.Management.Automation.PSObject content); + + /// + /// BeforeDeserializeDictionary will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Collections.IDictionary content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializeDictionary(global::System.Collections.IDictionary content, ref bool returnNow); + + /// + /// BeforeDeserializePSObject will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializePSObject(global::System.Management.Automation.PSObject content, ref bool returnNow); + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerConfigurationTags DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new PartnerConfigurationTags(content); + } + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerConfigurationTags DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new PartnerConfigurationTags(content); + } + + /// + /// Creates a new instance of , deserializing the content from a json string. + /// + /// a string containing a JSON serialized instance of this model. + /// an instance of the model class. + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerConfigurationTags FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode.Parse(jsonText)); + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + internal PartnerConfigurationTags(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 PartnerConfigurationTags(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.EventGrid.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// Tags of the resource. + [System.ComponentModel.TypeConverter(typeof(PartnerConfigurationTagsTypeConverter))] + public partial interface IPartnerConfigurationTags + + { + + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PartnerConfigurationTags.TypeConverter.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PartnerConfigurationTags.TypeConverter.cs new file mode 100644 index 000000000000..23f32436bc8d --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PartnerConfigurationTags.TypeConverter.cs @@ -0,0 +1,147 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class PartnerConfigurationTagsTypeConverter : global::System.Management.Automation.PSTypeConverter + { + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false. + /// + public override bool CanConvertFrom(object sourceValue, global::System.Type destinationType) => CanConvertFrom(sourceValue); + + /// + /// Determines if the converter can convert the parameter to the . + /// + /// the instance to check if it can be converted to the type. + /// + /// true if the instance could be converted to a type, otherwise false + /// + public static bool CanConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return true; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + // we say yest to PSObjects + return true; + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + // we say yest to Hashtables/dictionaries + return true; + } + try + { + if (null != sourceValue.ToJsonString()) + { + return true; + } + } + catch + { + // Not one of our objects + } + try + { + string text = sourceValue.ToString()?.Trim(); + return true == text?.StartsWith("{") && true == text?.EndsWith("}") && Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonType.Object; + } + catch + { + // Doesn't look like it can be treated as JSON + } + return false; + } + + /// + /// Determines if the parameter can be converted to the parameter + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false + /// + public override bool CanConvertTo(object sourceValue, global::System.Type destinationType) => false; + + /// + /// Converts the parameter to the parameter using and + /// + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// + /// an instance of , or null if there is no suitable conversion. + /// + public override object ConvertFrom(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => ConvertFrom(sourceValue); + + /// + /// Converts the parameter to the parameter using and + /// + /// the value to convert into an instance of . + /// + /// an instance of , or null if there is no suitable conversion. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerConfigurationTags ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerConfigurationTags).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return PartnerConfigurationTags.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return PartnerConfigurationTags.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return PartnerConfigurationTags.DeserializeFromDictionary(sourceValue); + } + return null; + } + + /// NotImplemented -- this will return null + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// will always return null. + public override object ConvertTo(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => null; + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PartnerConfigurationTags.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PartnerConfigurationTags.cs new file mode 100644 index 000000000000..192603b292b1 --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PartnerConfigurationTags.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.EventGrid.Models.Api20211015Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Extensions; + + /// Tags of the resource. + public partial class PartnerConfigurationTags : + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerConfigurationTags, + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerConfigurationTagsInternal + { + + /// Creates an new instance. + public PartnerConfigurationTags() + { + + } + } + /// Tags of the resource. + public partial interface IPartnerConfigurationTags : + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IJsonSerializable, + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IAssociativeArray + { + + } + /// Tags of the resource. + internal partial interface IPartnerConfigurationTagsInternal + + { + + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PartnerConfigurationTags.dictionary.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PartnerConfigurationTags.dictionary.cs new file mode 100644 index 000000000000..e326d658404a --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PartnerConfigurationTags.dictionary.cs @@ -0,0 +1,75 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Extensions; + + public partial class PartnerConfigurationTags : + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IAssociativeArray + { + protected global::System.Collections.Generic.Dictionary __additionalProperties = new global::System.Collections.Generic.Dictionary(); + + global::System.Collections.Generic.IDictionary Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IAssociativeArray.AdditionalProperties { get => __additionalProperties; } + + int Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IAssociativeArray.Count { get => __additionalProperties.Count; } + + global::System.Collections.Generic.IEnumerable Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IAssociativeArray.Keys { get => __additionalProperties.Keys; } + + global::System.Collections.Generic.IEnumerable Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.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.EventGrid.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.EventGrid.Models.Api20211015Preview.PartnerConfigurationTags source) => source.__additionalProperties; + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PartnerConfigurationTags.json.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PartnerConfigurationTags.json.cs new file mode 100644 index 000000000000..227c71316614 --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PartnerConfigurationTags.json.cs @@ -0,0 +1,107 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Extensions; + + /// Tags of the resource. + public partial class PartnerConfigurationTags + { + + /// + /// AfterFromJson will be called after the json deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JsonNode that should be deserialized into this object. + + partial void AfterFromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json erialization has finished, allowing customization of the before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JSON container that the serialization result will be placed in. + + partial void AfterToJson(ref Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject container); + + /// + /// BeforeFromJson will be called before the json deserialization has commenced, allowing complete customization of + /// the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JsonNode that should be deserialized into this object. + /// Determines if the rest of the deserialization should be processed, or if the method should return + /// instantly. + + partial void BeforeFromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject json, ref bool returnNow); + + /// + /// BeforeToJson will be called before the json serialization has commenced, allowing complete customization of the + /// object before it is serialized. + /// If you wish to disable the default serialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JSON container that the serialization result will be placed in. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeToJson(ref Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerConfigurationTags. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerConfigurationTags. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerConfigurationTags FromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject json ? new PartnerConfigurationTags(json) : null; + } + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject instance to deserialize from. + /// + internal PartnerConfigurationTags(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Runtime.JsonSerializable.FromJson( json, ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject(); + + bool returnNow = false; + BeforeToJson(ref container, ref returnNow); + if (returnNow) + { + return container; + } + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.JsonSerializable.ToJson( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IAssociativeArray)this).AdditionalProperties, container); + AfterToJson(ref container); + return container; + } + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PartnerConfigurationUpdateParameterProperties.PowerShell.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PartnerConfigurationUpdateParameterProperties.PowerShell.cs new file mode 100644 index 000000000000..ea59f2ccd862 --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PartnerConfigurationUpdateParameterProperties.PowerShell.cs @@ -0,0 +1,147 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell; + + /// Information of partner configuration update parameter properties. + [System.ComponentModel.TypeConverter(typeof(PartnerConfigurationUpdateParameterPropertiesTypeConverter))] + public partial class PartnerConfigurationUpdateParameterProperties + { + + /// + /// AfterDeserializeDictionary will be called after the deserialization has finished, allowing customization of the + /// object before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Collections.IDictionary content that should be used. + + partial void AfterDeserializeDictionary(global::System.Collections.IDictionary content); + + /// + /// AfterDeserializePSObject will be called after the deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Management.Automation.PSObject content that should be used. + + partial void AfterDeserializePSObject(global::System.Management.Automation.PSObject content); + + /// + /// BeforeDeserializeDictionary will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Collections.IDictionary content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializeDictionary(global::System.Collections.IDictionary content, ref bool returnNow); + + /// + /// BeforeDeserializePSObject will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializePSObject(global::System.Management.Automation.PSObject content, ref bool returnNow); + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerConfigurationUpdateParameterProperties DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new PartnerConfigurationUpdateParameterProperties(content); + } + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerConfigurationUpdateParameterProperties DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new PartnerConfigurationUpdateParameterProperties(content); + } + + /// + /// Creates a new instance of , deserializing the content from + /// a json string. + /// + /// a string containing a JSON serialized instance of this model. + /// + /// an instance of the model class. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerConfigurationUpdateParameterProperties FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode.Parse(jsonText)); + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + internal PartnerConfigurationUpdateParameterProperties(global::System.Collections.IDictionary content) + { + bool returnNow = false; + BeforeDeserializeDictionary(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("DefaultMaximumExpirationTimeInDay")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerConfigurationUpdateParameterPropertiesInternal)this).DefaultMaximumExpirationTimeInDay = (int?) content.GetValueForProperty("DefaultMaximumExpirationTimeInDay",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerConfigurationUpdateParameterPropertiesInternal)this).DefaultMaximumExpirationTimeInDay, (__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 PartnerConfigurationUpdateParameterProperties(global::System.Management.Automation.PSObject content) + { + bool returnNow = false; + BeforeDeserializePSObject(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("DefaultMaximumExpirationTimeInDay")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerConfigurationUpdateParameterPropertiesInternal)this).DefaultMaximumExpirationTimeInDay = (int?) content.GetValueForProperty("DefaultMaximumExpirationTimeInDay",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerConfigurationUpdateParameterPropertiesInternal)this).DefaultMaximumExpirationTimeInDay, (__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.EventGrid.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// Information of partner configuration update parameter properties. + [System.ComponentModel.TypeConverter(typeof(PartnerConfigurationUpdateParameterPropertiesTypeConverter))] + public partial interface IPartnerConfigurationUpdateParameterProperties + + { + + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PartnerConfigurationUpdateParameterProperties.TypeConverter.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PartnerConfigurationUpdateParameterProperties.TypeConverter.cs new file mode 100644 index 000000000000..fdf0c6f2b9f3 --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PartnerConfigurationUpdateParameterProperties.TypeConverter.cs @@ -0,0 +1,150 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class PartnerConfigurationUpdateParameterPropertiesTypeConverter : global::System.Management.Automation.PSTypeConverter + { + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false. + /// + public override bool CanConvertFrom(object sourceValue, global::System.Type destinationType) => CanConvertFrom(sourceValue); + + /// + /// Determines if the converter can convert the parameter to the . + /// + /// the instance to check if it can be converted to the type. + /// + /// true if the instance could be converted to a type, + /// otherwise false + /// + public static bool CanConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return true; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + // we say yest to PSObjects + return true; + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + // we say yest to Hashtables/dictionaries + return true; + } + try + { + if (null != sourceValue.ToJsonString()) + { + return true; + } + } + catch + { + // Not one of our objects + } + try + { + string text = sourceValue.ToString()?.Trim(); + return true == text?.StartsWith("{") && true == text?.EndsWith("}") && Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonType.Object; + } + catch + { + // Doesn't look like it can be treated as JSON + } + return false; + } + + /// + /// Determines if the parameter can be converted to the parameter + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false + /// + public override bool CanConvertTo(object sourceValue, global::System.Type destinationType) => false; + + /// + /// Converts the parameter to the parameter using and + /// + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// + /// an instance of , or null if there is no suitable conversion. + /// + public override object ConvertFrom(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => ConvertFrom(sourceValue); + + /// + /// Converts the parameter to the parameter using and + /// + /// the value to convert into an instance of . + /// + /// an instance of , or null if there is no suitable conversion. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerConfigurationUpdateParameterProperties ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerConfigurationUpdateParameterProperties).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return PartnerConfigurationUpdateParameterProperties.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return PartnerConfigurationUpdateParameterProperties.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return PartnerConfigurationUpdateParameterProperties.DeserializeFromDictionary(sourceValue); + } + return null; + } + + /// NotImplemented -- this will return null + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// will always return null. + public override object ConvertTo(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => null; + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PartnerConfigurationUpdateParameterProperties.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PartnerConfigurationUpdateParameterProperties.cs new file mode 100644 index 000000000000..8317c0ee8766 --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PartnerConfigurationUpdateParameterProperties.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.EventGrid.Models.Api20211015Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Extensions; + + /// Information of partner configuration update parameter properties. + public partial class PartnerConfigurationUpdateParameterProperties : + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerConfigurationUpdateParameterProperties, + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerConfigurationUpdateParameterPropertiesInternal + { + + /// Backing field for property. + private int? _defaultMaximumExpirationTimeInDay; + + /// + /// The default time used to validate the maximum expiration time for each authorized partners in days. Allowed values ar + /// between 1 and 365 days. + /// + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Owned)] + public int? DefaultMaximumExpirationTimeInDay { get => this._defaultMaximumExpirationTimeInDay; set => this._defaultMaximumExpirationTimeInDay = value; } + + /// + /// Creates an new instance. + /// + public PartnerConfigurationUpdateParameterProperties() + { + + } + } + /// Information of partner configuration update parameter properties. + public partial interface IPartnerConfigurationUpdateParameterProperties : + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IJsonSerializable + { + /// + /// The default time used to validate the maximum expiration time for each authorized partners in days. Allowed values ar + /// between 1 and 365 days. + /// + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The default time used to validate the maximum expiration time for each authorized partners in days. Allowed values ar between 1 and 365 days.", + SerializedName = @"defaultMaximumExpirationTimeInDays", + PossibleTypes = new [] { typeof(int) })] + int? DefaultMaximumExpirationTimeInDay { get; set; } + + } + /// Information of partner configuration update parameter properties. + internal partial interface IPartnerConfigurationUpdateParameterPropertiesInternal + + { + /// + /// The default time used to validate the maximum expiration time for each authorized partners in days. Allowed values ar + /// between 1 and 365 days. + /// + int? DefaultMaximumExpirationTimeInDay { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PartnerConfigurationUpdateParameterProperties.json.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PartnerConfigurationUpdateParameterProperties.json.cs new file mode 100644 index 000000000000..67d66c9ac562 --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PartnerConfigurationUpdateParameterProperties.json.cs @@ -0,0 +1,109 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Extensions; + + /// Information of partner configuration update parameter properties. + public partial class PartnerConfigurationUpdateParameterProperties + { + + /// + /// AfterFromJson will be called after the json deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JsonNode that should be deserialized into this object. + + partial void AfterFromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json erialization has finished, allowing customization of the before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JSON container that the serialization result will be placed in. + + partial void AfterToJson(ref Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject container); + + /// + /// BeforeFromJson will be called before the json deserialization has commenced, allowing complete customization of + /// the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JsonNode that should be deserialized into this object. + /// Determines if the rest of the deserialization should be processed, or if the method should return + /// instantly. + + partial void BeforeFromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject json, ref bool returnNow); + + /// + /// BeforeToJson will be called before the json serialization has commenced, allowing complete customization of the + /// object before it is serialized. + /// If you wish to disable the default serialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JSON container that the serialization result will be placed in. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeToJson(ref Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerConfigurationUpdateParameterProperties. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerConfigurationUpdateParameterProperties. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerConfigurationUpdateParameterProperties FromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject json ? new PartnerConfigurationUpdateParameterProperties(json) : null; + } + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject instance to deserialize from. + internal PartnerConfigurationUpdateParameterProperties(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject json) + { + bool returnNow = false; + BeforeFromJson(json, ref returnNow); + if (returnNow) + { + return; + } + {_defaultMaximumExpirationTimeInDay = If( json?.PropertyT("defaultMaximumExpirationTimeInDays"), out var __jsonDefaultMaximumExpirationTimeInDays) ? (int?)__jsonDefaultMaximumExpirationTimeInDays : DefaultMaximumExpirationTimeInDay;} + AfterFromJson(json); + } + + /// + /// Serializes this instance of into a . + /// + /// The container to serialize this object into. If the caller + /// passes in null, a new instance will be created and returned to the caller. + /// Allows the caller to choose the depth of the serialization. See . + /// + /// a serialized instance of as a . + /// + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject(); + + bool returnNow = false; + BeforeToJson(ref container, ref returnNow); + if (returnNow) + { + return container; + } + AddIf( null != this._defaultMaximumExpirationTimeInDay ? (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode)new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNumber((int)this._defaultMaximumExpirationTimeInDay) : null, "defaultMaximumExpirationTimeInDays" ,container.Add ); + AfterToJson(ref container); + return container; + } + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PartnerConfigurationUpdateParameters.PowerShell.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PartnerConfigurationUpdateParameters.PowerShell.cs new file mode 100644 index 000000000000..62aa271d612c --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PartnerConfigurationUpdateParameters.PowerShell.cs @@ -0,0 +1,162 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell; + + /// Properties of the partner configuration update. + [System.ComponentModel.TypeConverter(typeof(PartnerConfigurationUpdateParametersTypeConverter))] + public partial class PartnerConfigurationUpdateParameters + { + + /// + /// AfterDeserializeDictionary will be called after the deserialization has finished, allowing customization of the + /// object before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Collections.IDictionary content that should be used. + + partial void AfterDeserializeDictionary(global::System.Collections.IDictionary content); + + /// + /// AfterDeserializePSObject will be called after the deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Management.Automation.PSObject content that should be used. + + partial void AfterDeserializePSObject(global::System.Management.Automation.PSObject content); + + /// + /// BeforeDeserializeDictionary will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Collections.IDictionary content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializeDictionary(global::System.Collections.IDictionary content, ref bool returnNow); + + /// + /// BeforeDeserializePSObject will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializePSObject(global::System.Management.Automation.PSObject content, ref bool returnNow); + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerConfigurationUpdateParameters DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new PartnerConfigurationUpdateParameters(content); + } + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerConfigurationUpdateParameters DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new PartnerConfigurationUpdateParameters(content); + } + + /// + /// Creates a new instance of , deserializing the content from a json string. + /// + /// a string containing a JSON serialized instance of this model. + /// + /// an instance of the model class. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerConfigurationUpdateParameters FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode.Parse(jsonText)); + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + internal PartnerConfigurationUpdateParameters(global::System.Collections.IDictionary content) + { + bool returnNow = false; + BeforeDeserializeDictionary(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("Property")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerConfigurationUpdateParametersInternal)this).Property = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerConfigurationUpdateParameterProperties) content.GetValueForProperty("Property",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerConfigurationUpdateParametersInternal)this).Property, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.PartnerConfigurationUpdateParameterPropertiesTypeConverter.ConvertFrom); + } + if (content.Contains("Tag")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerConfigurationUpdateParametersInternal)this).Tag = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerConfigurationUpdateParametersTags) content.GetValueForProperty("Tag",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerConfigurationUpdateParametersInternal)this).Tag, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.PartnerConfigurationUpdateParametersTagsTypeConverter.ConvertFrom); + } + if (content.Contains("DefaultMaximumExpirationTimeInDay")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerConfigurationUpdateParametersInternal)this).DefaultMaximumExpirationTimeInDay = (int?) content.GetValueForProperty("DefaultMaximumExpirationTimeInDay",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerConfigurationUpdateParametersInternal)this).DefaultMaximumExpirationTimeInDay, (__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 PartnerConfigurationUpdateParameters(global::System.Management.Automation.PSObject content) + { + bool returnNow = false; + BeforeDeserializePSObject(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("Property")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerConfigurationUpdateParametersInternal)this).Property = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerConfigurationUpdateParameterProperties) content.GetValueForProperty("Property",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerConfigurationUpdateParametersInternal)this).Property, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.PartnerConfigurationUpdateParameterPropertiesTypeConverter.ConvertFrom); + } + if (content.Contains("Tag")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerConfigurationUpdateParametersInternal)this).Tag = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerConfigurationUpdateParametersTags) content.GetValueForProperty("Tag",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerConfigurationUpdateParametersInternal)this).Tag, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.PartnerConfigurationUpdateParametersTagsTypeConverter.ConvertFrom); + } + if (content.Contains("DefaultMaximumExpirationTimeInDay")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerConfigurationUpdateParametersInternal)this).DefaultMaximumExpirationTimeInDay = (int?) content.GetValueForProperty("DefaultMaximumExpirationTimeInDay",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerConfigurationUpdateParametersInternal)this).DefaultMaximumExpirationTimeInDay, (__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.EventGrid.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// Properties of the partner configuration update. + [System.ComponentModel.TypeConverter(typeof(PartnerConfigurationUpdateParametersTypeConverter))] + public partial interface IPartnerConfigurationUpdateParameters + + { + + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PartnerConfigurationUpdateParameters.TypeConverter.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PartnerConfigurationUpdateParameters.TypeConverter.cs new file mode 100644 index 000000000000..3bd9f17d3563 --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PartnerConfigurationUpdateParameters.TypeConverter.cs @@ -0,0 +1,149 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class PartnerConfigurationUpdateParametersTypeConverter : global::System.Management.Automation.PSTypeConverter + { + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false. + /// + public override bool CanConvertFrom(object sourceValue, global::System.Type destinationType) => CanConvertFrom(sourceValue); + + /// + /// Determines if the converter can convert the parameter to the . + /// + /// the instance to check if it can be converted to the type. + /// + /// true if the instance could be converted to a type, otherwise + /// false + /// + public static bool CanConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return true; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + // we say yest to PSObjects + return true; + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + // we say yest to Hashtables/dictionaries + return true; + } + try + { + if (null != sourceValue.ToJsonString()) + { + return true; + } + } + catch + { + // Not one of our objects + } + try + { + string text = sourceValue.ToString()?.Trim(); + return true == text?.StartsWith("{") && true == text?.EndsWith("}") && Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonType.Object; + } + catch + { + // Doesn't look like it can be treated as JSON + } + return false; + } + + /// + /// Determines if the parameter can be converted to the parameter + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false + /// + public override bool CanConvertTo(object sourceValue, global::System.Type destinationType) => false; + + /// + /// Converts the parameter to the parameter using and + /// + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// + /// an instance of , or null if there is no suitable conversion. + /// + public override object ConvertFrom(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => ConvertFrom(sourceValue); + + /// + /// Converts the parameter to the parameter using and + /// + /// the value to convert into an instance of . + /// + /// an instance of , or null if there is no suitable conversion. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerConfigurationUpdateParameters ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerConfigurationUpdateParameters).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return PartnerConfigurationUpdateParameters.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return PartnerConfigurationUpdateParameters.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return PartnerConfigurationUpdateParameters.DeserializeFromDictionary(sourceValue); + } + return null; + } + + /// NotImplemented -- this will return null + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// will always return null. + public override object ConvertTo(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => null; + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PartnerConfigurationUpdateParameters.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PartnerConfigurationUpdateParameters.cs new file mode 100644 index 000000000000..339c58a9b5bb --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PartnerConfigurationUpdateParameters.cs @@ -0,0 +1,86 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Extensions; + + /// Properties of the partner configuration update. + public partial class PartnerConfigurationUpdateParameters : + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerConfigurationUpdateParameters, + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerConfigurationUpdateParametersInternal + { + + /// + /// The default time used to validate the maximum expiration time for each authorized partners in days. Allowed values ar + /// between 1 and 365 days. + /// + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Inlined)] + public int? DefaultMaximumExpirationTimeInDay { get => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerConfigurationUpdateParameterPropertiesInternal)Property).DefaultMaximumExpirationTimeInDay; set => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerConfigurationUpdateParameterPropertiesInternal)Property).DefaultMaximumExpirationTimeInDay = value ?? default(int); } + + /// Internal Acessors for Property + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerConfigurationUpdateParameterProperties Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerConfigurationUpdateParametersInternal.Property { get => (this._property = this._property ?? new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.PartnerConfigurationUpdateParameterProperties()); set { {_property = value;} } } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerConfigurationUpdateParameterProperties _property; + + /// Properties of the Topic resource. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Owned)] + internal Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerConfigurationUpdateParameterProperties Property { get => (this._property = this._property ?? new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.PartnerConfigurationUpdateParameterProperties()); set => this._property = value; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerConfigurationUpdateParametersTags _tag; + + /// Tags of the partner configuration resource. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Owned)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerConfigurationUpdateParametersTags Tag { get => (this._tag = this._tag ?? new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.PartnerConfigurationUpdateParametersTags()); set => this._tag = value; } + + /// Creates an new instance. + public PartnerConfigurationUpdateParameters() + { + + } + } + /// Properties of the partner configuration update. + public partial interface IPartnerConfigurationUpdateParameters : + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IJsonSerializable + { + /// + /// The default time used to validate the maximum expiration time for each authorized partners in days. Allowed values ar + /// between 1 and 365 days. + /// + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The default time used to validate the maximum expiration time for each authorized partners in days. Allowed values ar between 1 and 365 days.", + SerializedName = @"defaultMaximumExpirationTimeInDays", + PossibleTypes = new [] { typeof(int) })] + int? DefaultMaximumExpirationTimeInDay { get; set; } + /// Tags of the partner configuration resource. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Tags of the partner configuration resource.", + SerializedName = @"tags", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerConfigurationUpdateParametersTags) })] + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerConfigurationUpdateParametersTags Tag { get; set; } + + } + /// Properties of the partner configuration update. + internal partial interface IPartnerConfigurationUpdateParametersInternal + + { + /// + /// The default time used to validate the maximum expiration time for each authorized partners in days. Allowed values ar + /// between 1 and 365 days. + /// + int? DefaultMaximumExpirationTimeInDay { get; set; } + /// Properties of the Topic resource. + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerConfigurationUpdateParameterProperties Property { get; set; } + /// Tags of the partner configuration resource. + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerConfigurationUpdateParametersTags Tag { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PartnerConfigurationUpdateParameters.json.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PartnerConfigurationUpdateParameters.json.cs new file mode 100644 index 000000000000..1bbc9864d85f --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PartnerConfigurationUpdateParameters.json.cs @@ -0,0 +1,109 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Extensions; + + /// Properties of the partner configuration update. + public partial class PartnerConfigurationUpdateParameters + { + + /// + /// AfterFromJson will be called after the json deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JsonNode that should be deserialized into this object. + + partial void AfterFromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json erialization has finished, allowing customization of the before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JSON container that the serialization result will be placed in. + + partial void AfterToJson(ref Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject container); + + /// + /// BeforeFromJson will be called before the json deserialization has commenced, allowing complete customization of + /// the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JsonNode that should be deserialized into this object. + /// Determines if the rest of the deserialization should be processed, or if the method should return + /// instantly. + + partial void BeforeFromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject json, ref bool returnNow); + + /// + /// BeforeToJson will be called before the json serialization has commenced, allowing complete customization of the + /// object before it is serialized. + /// If you wish to disable the default serialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JSON container that the serialization result will be placed in. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeToJson(ref Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerConfigurationUpdateParameters. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerConfigurationUpdateParameters. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerConfigurationUpdateParameters FromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject json ? new PartnerConfigurationUpdateParameters(json) : null; + } + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject instance to deserialize from. + internal PartnerConfigurationUpdateParameters(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Models.Api20211015Preview.PartnerConfigurationUpdateParameterProperties.FromJson(__jsonProperties) : Property;} + {_tag = If( json?.PropertyT("tags"), out var __jsonTags) ? Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.PartnerConfigurationUpdateParametersTags.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.EventGrid.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject(); + + bool returnNow = false; + BeforeToJson(ref container, ref returnNow); + if (returnNow) + { + return container; + } + AddIf( null != this._property ? (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode) this._property.ToJson(null,serializationMode) : null, "properties" ,container.Add ); + AddIf( null != this._tag ? (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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/eventgrid/generated/api/Models/Api20211015Preview/PartnerConfigurationUpdateParametersTags.PowerShell.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PartnerConfigurationUpdateParametersTags.PowerShell.cs new file mode 100644 index 000000000000..f93cdb8ff8ef --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PartnerConfigurationUpdateParametersTags.PowerShell.cs @@ -0,0 +1,143 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell; + + /// Tags of the partner configuration resource. + [System.ComponentModel.TypeConverter(typeof(PartnerConfigurationUpdateParametersTagsTypeConverter))] + public partial class PartnerConfigurationUpdateParametersTags + { + + /// + /// AfterDeserializeDictionary will be called after the deserialization has finished, allowing customization of the + /// object before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Collections.IDictionary content that should be used. + + partial void AfterDeserializeDictionary(global::System.Collections.IDictionary content); + + /// + /// AfterDeserializePSObject will be called after the deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Management.Automation.PSObject content that should be used. + + partial void AfterDeserializePSObject(global::System.Management.Automation.PSObject content); + + /// + /// BeforeDeserializeDictionary will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Collections.IDictionary content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializeDictionary(global::System.Collections.IDictionary content, ref bool returnNow); + + /// + /// BeforeDeserializePSObject will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializePSObject(global::System.Management.Automation.PSObject content, ref bool returnNow); + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerConfigurationUpdateParametersTags DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new PartnerConfigurationUpdateParametersTags(content); + } + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerConfigurationUpdateParametersTags DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new PartnerConfigurationUpdateParametersTags(content); + } + + /// + /// Creates a new instance of , deserializing the content from a json + /// string. + /// + /// a string containing a JSON serialized instance of this model. + /// + /// an instance of the model class. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerConfigurationUpdateParametersTags FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode.Parse(jsonText)); + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + internal PartnerConfigurationUpdateParametersTags(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 PartnerConfigurationUpdateParametersTags(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.EventGrid.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// Tags of the partner configuration resource. + [System.ComponentModel.TypeConverter(typeof(PartnerConfigurationUpdateParametersTagsTypeConverter))] + public partial interface IPartnerConfigurationUpdateParametersTags + + { + + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PartnerConfigurationUpdateParametersTags.TypeConverter.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PartnerConfigurationUpdateParametersTags.TypeConverter.cs new file mode 100644 index 000000000000..6db928fc60a5 --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PartnerConfigurationUpdateParametersTags.TypeConverter.cs @@ -0,0 +1,150 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class PartnerConfigurationUpdateParametersTagsTypeConverter : global::System.Management.Automation.PSTypeConverter + { + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false. + /// + public override bool CanConvertFrom(object sourceValue, global::System.Type destinationType) => CanConvertFrom(sourceValue); + + /// + /// Determines if the converter can convert the parameter to the . + /// + /// the instance to check if it can be converted to the type. + /// + /// true if the instance could be converted to a type, otherwise + /// false + /// + public static bool CanConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return true; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + // we say yest to PSObjects + return true; + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + // we say yest to Hashtables/dictionaries + return true; + } + try + { + if (null != sourceValue.ToJsonString()) + { + return true; + } + } + catch + { + // Not one of our objects + } + try + { + string text = sourceValue.ToString()?.Trim(); + return true == text?.StartsWith("{") && true == text?.EndsWith("}") && Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonType.Object; + } + catch + { + // Doesn't look like it can be treated as JSON + } + return false; + } + + /// + /// Determines if the parameter can be converted to the parameter + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false + /// + public override bool CanConvertTo(object sourceValue, global::System.Type destinationType) => false; + + /// + /// Converts the parameter to the parameter using and + /// + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// + /// an instance of , or null if there is no suitable conversion. + /// + public override object ConvertFrom(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => ConvertFrom(sourceValue); + + /// + /// Converts the parameter to the parameter using and + /// + /// the value to convert into an instance of . + /// + /// an instance of , or null if there is no suitable conversion. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerConfigurationUpdateParametersTags ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerConfigurationUpdateParametersTags).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return PartnerConfigurationUpdateParametersTags.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return PartnerConfigurationUpdateParametersTags.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return PartnerConfigurationUpdateParametersTags.DeserializeFromDictionary(sourceValue); + } + return null; + } + + /// NotImplemented -- this will return null + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// will always return null. + public override object ConvertTo(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => null; + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PartnerConfigurationUpdateParametersTags.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PartnerConfigurationUpdateParametersTags.cs new file mode 100644 index 000000000000..83352f484f1f --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PartnerConfigurationUpdateParametersTags.cs @@ -0,0 +1,37 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Extensions; + + /// Tags of the partner configuration resource. + public partial class PartnerConfigurationUpdateParametersTags : + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerConfigurationUpdateParametersTags, + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerConfigurationUpdateParametersTagsInternal + { + + /// + /// Creates an new instance. + /// + public PartnerConfigurationUpdateParametersTags() + { + + } + } + /// Tags of the partner configuration resource. + public partial interface IPartnerConfigurationUpdateParametersTags : + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IJsonSerializable, + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IAssociativeArray + { + + } + /// Tags of the partner configuration resource. + internal partial interface IPartnerConfigurationUpdateParametersTagsInternal + + { + + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PartnerConfigurationUpdateParametersTags.dictionary.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PartnerConfigurationUpdateParametersTags.dictionary.cs new file mode 100644 index 000000000000..c01510dfd948 --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PartnerConfigurationUpdateParametersTags.dictionary.cs @@ -0,0 +1,75 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Extensions; + + public partial class PartnerConfigurationUpdateParametersTags : + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IAssociativeArray + { + protected global::System.Collections.Generic.Dictionary __additionalProperties = new global::System.Collections.Generic.Dictionary(); + + global::System.Collections.Generic.IDictionary Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IAssociativeArray.AdditionalProperties { get => __additionalProperties; } + + int Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IAssociativeArray.Count { get => __additionalProperties.Count; } + + global::System.Collections.Generic.IEnumerable Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IAssociativeArray.Keys { get => __additionalProperties.Keys; } + + global::System.Collections.Generic.IEnumerable Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.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.EventGrid.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.EventGrid.Models.Api20211015Preview.PartnerConfigurationUpdateParametersTags source) => source.__additionalProperties; + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PartnerConfigurationUpdateParametersTags.json.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PartnerConfigurationUpdateParametersTags.json.cs new file mode 100644 index 000000000000..651334a45001 --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PartnerConfigurationUpdateParametersTags.json.cs @@ -0,0 +1,109 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Extensions; + + /// Tags of the partner configuration resource. + public partial class PartnerConfigurationUpdateParametersTags + { + + /// + /// AfterFromJson will be called after the json deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JsonNode that should be deserialized into this object. + + partial void AfterFromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json erialization has finished, allowing customization of the before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JSON container that the serialization result will be placed in. + + partial void AfterToJson(ref Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject container); + + /// + /// BeforeFromJson will be called before the json deserialization has commenced, allowing complete customization of + /// the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JsonNode that should be deserialized into this object. + /// Determines if the rest of the deserialization should be processed, or if the method should return + /// instantly. + + partial void BeforeFromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject json, ref bool returnNow); + + /// + /// BeforeToJson will be called before the json serialization has commenced, allowing complete customization of the + /// object before it is serialized. + /// If you wish to disable the default serialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JSON container that the serialization result will be placed in. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeToJson(ref Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerConfigurationUpdateParametersTags. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerConfigurationUpdateParametersTags. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerConfigurationUpdateParametersTags FromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject json ? new PartnerConfigurationUpdateParametersTags(json) : null; + } + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject instance to deserialize from. + /// + internal PartnerConfigurationUpdateParametersTags(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Runtime.JsonSerializable.FromJson( json, ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject(); + + bool returnNow = false; + BeforeToJson(ref container, ref returnNow); + if (returnNow) + { + return container; + } + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.JsonSerializable.ToJson( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IAssociativeArray)this).AdditionalProperties, container); + AfterToJson(ref container); + return container; + } + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PartnerConfigurationsListResult.PowerShell.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PartnerConfigurationsListResult.PowerShell.cs new file mode 100644 index 000000000000..19d6197f44dc --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PartnerConfigurationsListResult.PowerShell.cs @@ -0,0 +1,152 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell; + + /// Result of the List partner configurations operation + [System.ComponentModel.TypeConverter(typeof(PartnerConfigurationsListResultTypeConverter))] + public partial class PartnerConfigurationsListResult + { + + /// + /// AfterDeserializeDictionary will be called after the deserialization has finished, allowing customization of the + /// object before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Collections.IDictionary content that should be used. + + partial void AfterDeserializeDictionary(global::System.Collections.IDictionary content); + + /// + /// AfterDeserializePSObject will be called after the deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Management.Automation.PSObject content that should be used. + + partial void AfterDeserializePSObject(global::System.Management.Automation.PSObject content); + + /// + /// BeforeDeserializeDictionary will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Collections.IDictionary content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializeDictionary(global::System.Collections.IDictionary content, ref bool returnNow); + + /// + /// BeforeDeserializePSObject will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializePSObject(global::System.Management.Automation.PSObject content, ref bool returnNow); + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerConfigurationsListResult DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new PartnerConfigurationsListResult(content); + } + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerConfigurationsListResult DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new PartnerConfigurationsListResult(content); + } + + /// + /// Creates a new instance of , deserializing the content from a json string. + /// + /// a string containing a JSON serialized instance of this model. + /// an instance of the model class. + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerConfigurationsListResult FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode.Parse(jsonText)); + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + internal PartnerConfigurationsListResult(global::System.Collections.IDictionary content) + { + bool returnNow = false; + BeforeDeserializeDictionary(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("Value")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerConfigurationsListResultInternal)this).Value = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerConfiguration[]) content.GetValueForProperty("Value",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerConfigurationsListResultInternal)this).Value, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.PartnerConfigurationTypeConverter.ConvertFrom)); + } + if (content.Contains("NextLink")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerConfigurationsListResultInternal)this).NextLink = (string) content.GetValueForProperty("NextLink",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerConfigurationsListResultInternal)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 PartnerConfigurationsListResult(global::System.Management.Automation.PSObject content) + { + bool returnNow = false; + BeforeDeserializePSObject(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("Value")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerConfigurationsListResultInternal)this).Value = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerConfiguration[]) content.GetValueForProperty("Value",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerConfigurationsListResultInternal)this).Value, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.PartnerConfigurationTypeConverter.ConvertFrom)); + } + if (content.Contains("NextLink")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerConfigurationsListResultInternal)this).NextLink = (string) content.GetValueForProperty("NextLink",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerConfigurationsListResultInternal)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.EventGrid.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// Result of the List partner configurations operation + [System.ComponentModel.TypeConverter(typeof(PartnerConfigurationsListResultTypeConverter))] + public partial interface IPartnerConfigurationsListResult + + { + + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PartnerConfigurationsListResult.TypeConverter.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PartnerConfigurationsListResult.TypeConverter.cs new file mode 100644 index 000000000000..f3096f8e5f2e --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PartnerConfigurationsListResult.TypeConverter.cs @@ -0,0 +1,147 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class PartnerConfigurationsListResultTypeConverter : global::System.Management.Automation.PSTypeConverter + { + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false. + /// + public override bool CanConvertFrom(object sourceValue, global::System.Type destinationType) => CanConvertFrom(sourceValue); + + /// + /// Determines if the converter can convert the parameter to the . + /// + /// the instance to check if it can be converted to the type. + /// + /// true if the instance could be converted to a type, otherwise false + /// + public static bool CanConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return true; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + // we say yest to PSObjects + return true; + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + // we say yest to Hashtables/dictionaries + return true; + } + try + { + if (null != sourceValue.ToJsonString()) + { + return true; + } + } + catch + { + // Not one of our objects + } + try + { + string text = sourceValue.ToString()?.Trim(); + return true == text?.StartsWith("{") && true == text?.EndsWith("}") && Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonType.Object; + } + catch + { + // Doesn't look like it can be treated as JSON + } + return false; + } + + /// + /// Determines if the parameter can be converted to the parameter + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false + /// + public override bool CanConvertTo(object sourceValue, global::System.Type destinationType) => false; + + /// + /// Converts the parameter to the parameter using and + /// + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// + /// an instance of , or null if there is no suitable conversion. + /// + public override object ConvertFrom(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => ConvertFrom(sourceValue); + + /// + /// Converts the parameter to the parameter using and + /// + /// the value to convert into an instance of . + /// + /// an instance of , or null if there is no suitable conversion. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerConfigurationsListResult ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerConfigurationsListResult).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return PartnerConfigurationsListResult.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return PartnerConfigurationsListResult.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return PartnerConfigurationsListResult.DeserializeFromDictionary(sourceValue); + } + return null; + } + + /// NotImplemented -- this will return null + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// will always return null. + public override object ConvertTo(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => null; + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PartnerConfigurationsListResult.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PartnerConfigurationsListResult.cs new file mode 100644 index 000000000000..1aa5ccc4a09d --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PartnerConfigurationsListResult.cs @@ -0,0 +1,68 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Extensions; + + /// Result of the List partner configurations operation + public partial class PartnerConfigurationsListResult : + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerConfigurationsListResult, + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerConfigurationsListResultInternal + { + + /// Backing field for property. + private string _nextLink; + + /// A link for the next page of partner configurations. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Owned)] + public string NextLink { get => this._nextLink; set => this._nextLink = value; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerConfiguration[] _value; + + /// A collection of partner configurations. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Owned)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerConfiguration[] Value { get => this._value; set => this._value = value; } + + /// Creates an new instance. + public PartnerConfigurationsListResult() + { + + } + } + /// Result of the List partner configurations operation + public partial interface IPartnerConfigurationsListResult : + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IJsonSerializable + { + /// A link for the next page of partner configurations. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"A link for the next page of partner configurations.", + SerializedName = @"nextLink", + PossibleTypes = new [] { typeof(string) })] + string NextLink { get; set; } + /// A collection of partner configurations. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"A collection of partner configurations.", + SerializedName = @"value", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerConfiguration) })] + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerConfiguration[] Value { get; set; } + + } + /// Result of the List partner configurations operation + internal partial interface IPartnerConfigurationsListResultInternal + + { + /// A link for the next page of partner configurations. + string NextLink { get; set; } + /// A collection of partner configurations. + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerConfiguration[] Value { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PartnerConfigurationsListResult.json.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PartnerConfigurationsListResult.json.cs new file mode 100644 index 000000000000..95cb100b84a6 --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PartnerConfigurationsListResult.json.cs @@ -0,0 +1,116 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Extensions; + + /// Result of the List partner configurations operation + public partial class PartnerConfigurationsListResult + { + + /// + /// AfterFromJson will be called after the json deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JsonNode that should be deserialized into this object. + + partial void AfterFromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json erialization has finished, allowing customization of the before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JSON container that the serialization result will be placed in. + + partial void AfterToJson(ref Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject container); + + /// + /// BeforeFromJson will be called before the json deserialization has commenced, allowing complete customization of + /// the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JsonNode that should be deserialized into this object. + /// Determines if the rest of the deserialization should be processed, or if the method should return + /// instantly. + + partial void BeforeFromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject json, ref bool returnNow); + + /// + /// BeforeToJson will be called before the json serialization has commenced, allowing complete customization of the + /// object before it is serialized. + /// If you wish to disable the default serialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JSON container that the serialization result will be placed in. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeToJson(ref Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerConfigurationsListResult. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerConfigurationsListResult. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerConfigurationsListResult FromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject json ? new PartnerConfigurationsListResult(json) : null; + } + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject instance to deserialize from. + internal PartnerConfigurationsListResult(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.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.EventGrid.Models.Api20211015Preview.IPartnerConfiguration) (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.PartnerConfiguration.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.EventGrid.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Runtime.Json.XNodeArray(); + foreach( var __x in this._value ) + { + AddIf(__x?.ToJson(null, serializationMode) ,__w.Add); + } + container.Add("value",__w); + } + AddIf( null != (((object)this._nextLink)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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/eventgrid/generated/api/Models/Api20211015Preview/PartnerDestination.PowerShell.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PartnerDestination.PowerShell.cs new file mode 100644 index 000000000000..b2bd99c74dc3 --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PartnerDestination.PowerShell.cs @@ -0,0 +1,296 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell; + + /// Event Grid Partner Destination. + [System.ComponentModel.TypeConverter(typeof(PartnerDestinationTypeConverter))] + public partial class PartnerDestination + { + + /// + /// AfterDeserializeDictionary will be called after the deserialization has finished, allowing customization of the + /// object before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Collections.IDictionary content that should be used. + + partial void AfterDeserializeDictionary(global::System.Collections.IDictionary content); + + /// + /// AfterDeserializePSObject will be called after the deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Management.Automation.PSObject content that should be used. + + partial void AfterDeserializePSObject(global::System.Management.Automation.PSObject content); + + /// + /// BeforeDeserializeDictionary will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Collections.IDictionary content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializeDictionary(global::System.Collections.IDictionary content, ref bool returnNow); + + /// + /// BeforeDeserializePSObject will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializePSObject(global::System.Management.Automation.PSObject content, ref bool returnNow); + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerDestination DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new PartnerDestination(content); + } + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerDestination DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new PartnerDestination(content); + } + + /// + /// Creates a new instance of , deserializing the content from a json string. + /// + /// a string containing a JSON serialized instance of this model. + /// an instance of the model class. + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerDestination FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode.Parse(jsonText)); + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + internal PartnerDestination(global::System.Collections.IDictionary content) + { + bool returnNow = false; + BeforeDeserializeDictionary(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("Property")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerDestinationInternal)this).Property = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerDestinationProperties) content.GetValueForProperty("Property",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerDestinationInternal)this).Property, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.PartnerDestinationPropertiesTypeConverter.ConvertFrom); + } + if (content.Contains("SystemData")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerDestinationInternal)this).SystemData = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20.ISystemData) content.GetValueForProperty("SystemData",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerDestinationInternal)this).SystemData, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20.SystemDataTypeConverter.ConvertFrom); + } + if (content.Contains("Id")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IResourceInternal)this).Id = (string) content.GetValueForProperty("Id",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IResourceInternal)this).Id, global::System.Convert.ToString); + } + if (content.Contains("Name")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IResourceInternal)this).Name = (string) content.GetValueForProperty("Name",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IResourceInternal)this).Name, global::System.Convert.ToString); + } + if (content.Contains("Type")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IResourceInternal)this).Type = (string) content.GetValueForProperty("Type",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IResourceInternal)this).Type, global::System.Convert.ToString); + } + if (content.Contains("Location")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITrackedResourceInternal)this).Location = (string) content.GetValueForProperty("Location",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITrackedResourceInternal)this).Location, global::System.Convert.ToString); + } + if (content.Contains("Tag")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITrackedResourceInternal)this).Tag = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITrackedResourceTags) content.GetValueForProperty("Tag",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITrackedResourceInternal)this).Tag, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.TrackedResourceTagsTypeConverter.ConvertFrom); + } + if (content.Contains("SystemDataCreatedBy")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerDestinationInternal)this).SystemDataCreatedBy = (string) content.GetValueForProperty("SystemDataCreatedBy",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerDestinationInternal)this).SystemDataCreatedBy, global::System.Convert.ToString); + } + if (content.Contains("SystemDataCreatedAt")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerDestinationInternal)this).SystemDataCreatedAt = (global::System.DateTime?) content.GetValueForProperty("SystemDataCreatedAt",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerDestinationInternal)this).SystemDataCreatedAt, (v) => v is global::System.DateTime _v ? _v : global::System.Xml.XmlConvert.ToDateTime( v.ToString() , global::System.Xml.XmlDateTimeSerializationMode.Unspecified)); + } + if (content.Contains("PartnerRegistrationImmutableId")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerDestinationInternal)this).PartnerRegistrationImmutableId = (string) content.GetValueForProperty("PartnerRegistrationImmutableId",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerDestinationInternal)this).PartnerRegistrationImmutableId, global::System.Convert.ToString); + } + if (content.Contains("EndpointServiceContext")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerDestinationInternal)this).EndpointServiceContext = (string) content.GetValueForProperty("EndpointServiceContext",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerDestinationInternal)this).EndpointServiceContext, global::System.Convert.ToString); + } + if (content.Contains("ExpirationTimeIfNotActivatedUtc")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerDestinationInternal)this).ExpirationTimeIfNotActivatedUtc = (global::System.DateTime?) content.GetValueForProperty("ExpirationTimeIfNotActivatedUtc",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerDestinationInternal)this).ExpirationTimeIfNotActivatedUtc, (v) => v is global::System.DateTime _v ? _v : global::System.Xml.XmlConvert.ToDateTime( v.ToString() , global::System.Xml.XmlDateTimeSerializationMode.Unspecified)); + } + if (content.Contains("ProvisioningState")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerDestinationInternal)this).ProvisioningState = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.PartnerDestinationProvisioningState?) content.GetValueForProperty("ProvisioningState",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerDestinationInternal)this).ProvisioningState, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.PartnerDestinationProvisioningState.CreateFrom); + } + if (content.Contains("ActivationState")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerDestinationInternal)this).ActivationState = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.PartnerDestinationActivationState?) content.GetValueForProperty("ActivationState",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerDestinationInternal)this).ActivationState, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.PartnerDestinationActivationState.CreateFrom); + } + if (content.Contains("EndpointBaseUrl")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerDestinationInternal)this).EndpointBaseUrl = (string) content.GetValueForProperty("EndpointBaseUrl",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerDestinationInternal)this).EndpointBaseUrl, global::System.Convert.ToString); + } + if (content.Contains("MessageForActivation")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerDestinationInternal)this).MessageForActivation = (string) content.GetValueForProperty("MessageForActivation",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerDestinationInternal)this).MessageForActivation, global::System.Convert.ToString); + } + if (content.Contains("SystemDataCreatedByType")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerDestinationInternal)this).SystemDataCreatedByType = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.CreatedByType?) content.GetValueForProperty("SystemDataCreatedByType",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerDestinationInternal)this).SystemDataCreatedByType, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.CreatedByType.CreateFrom); + } + if (content.Contains("SystemDataLastModifiedBy")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerDestinationInternal)this).SystemDataLastModifiedBy = (string) content.GetValueForProperty("SystemDataLastModifiedBy",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerDestinationInternal)this).SystemDataLastModifiedBy, global::System.Convert.ToString); + } + if (content.Contains("SystemDataLastModifiedByType")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerDestinationInternal)this).SystemDataLastModifiedByType = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.CreatedByType?) content.GetValueForProperty("SystemDataLastModifiedByType",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerDestinationInternal)this).SystemDataLastModifiedByType, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.CreatedByType.CreateFrom); + } + if (content.Contains("SystemDataLastModifiedAt")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerDestinationInternal)this).SystemDataLastModifiedAt = (global::System.DateTime?) content.GetValueForProperty("SystemDataLastModifiedAt",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerDestinationInternal)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 PartnerDestination(global::System.Management.Automation.PSObject content) + { + bool returnNow = false; + BeforeDeserializePSObject(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("Property")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerDestinationInternal)this).Property = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerDestinationProperties) content.GetValueForProperty("Property",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerDestinationInternal)this).Property, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.PartnerDestinationPropertiesTypeConverter.ConvertFrom); + } + if (content.Contains("SystemData")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerDestinationInternal)this).SystemData = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20.ISystemData) content.GetValueForProperty("SystemData",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerDestinationInternal)this).SystemData, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20.SystemDataTypeConverter.ConvertFrom); + } + if (content.Contains("Id")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IResourceInternal)this).Id = (string) content.GetValueForProperty("Id",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IResourceInternal)this).Id, global::System.Convert.ToString); + } + if (content.Contains("Name")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IResourceInternal)this).Name = (string) content.GetValueForProperty("Name",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IResourceInternal)this).Name, global::System.Convert.ToString); + } + if (content.Contains("Type")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IResourceInternal)this).Type = (string) content.GetValueForProperty("Type",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IResourceInternal)this).Type, global::System.Convert.ToString); + } + if (content.Contains("Location")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITrackedResourceInternal)this).Location = (string) content.GetValueForProperty("Location",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITrackedResourceInternal)this).Location, global::System.Convert.ToString); + } + if (content.Contains("Tag")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITrackedResourceInternal)this).Tag = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITrackedResourceTags) content.GetValueForProperty("Tag",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITrackedResourceInternal)this).Tag, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.TrackedResourceTagsTypeConverter.ConvertFrom); + } + if (content.Contains("SystemDataCreatedBy")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerDestinationInternal)this).SystemDataCreatedBy = (string) content.GetValueForProperty("SystemDataCreatedBy",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerDestinationInternal)this).SystemDataCreatedBy, global::System.Convert.ToString); + } + if (content.Contains("SystemDataCreatedAt")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerDestinationInternal)this).SystemDataCreatedAt = (global::System.DateTime?) content.GetValueForProperty("SystemDataCreatedAt",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerDestinationInternal)this).SystemDataCreatedAt, (v) => v is global::System.DateTime _v ? _v : global::System.Xml.XmlConvert.ToDateTime( v.ToString() , global::System.Xml.XmlDateTimeSerializationMode.Unspecified)); + } + if (content.Contains("PartnerRegistrationImmutableId")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerDestinationInternal)this).PartnerRegistrationImmutableId = (string) content.GetValueForProperty("PartnerRegistrationImmutableId",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerDestinationInternal)this).PartnerRegistrationImmutableId, global::System.Convert.ToString); + } + if (content.Contains("EndpointServiceContext")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerDestinationInternal)this).EndpointServiceContext = (string) content.GetValueForProperty("EndpointServiceContext",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerDestinationInternal)this).EndpointServiceContext, global::System.Convert.ToString); + } + if (content.Contains("ExpirationTimeIfNotActivatedUtc")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerDestinationInternal)this).ExpirationTimeIfNotActivatedUtc = (global::System.DateTime?) content.GetValueForProperty("ExpirationTimeIfNotActivatedUtc",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerDestinationInternal)this).ExpirationTimeIfNotActivatedUtc, (v) => v is global::System.DateTime _v ? _v : global::System.Xml.XmlConvert.ToDateTime( v.ToString() , global::System.Xml.XmlDateTimeSerializationMode.Unspecified)); + } + if (content.Contains("ProvisioningState")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerDestinationInternal)this).ProvisioningState = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.PartnerDestinationProvisioningState?) content.GetValueForProperty("ProvisioningState",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerDestinationInternal)this).ProvisioningState, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.PartnerDestinationProvisioningState.CreateFrom); + } + if (content.Contains("ActivationState")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerDestinationInternal)this).ActivationState = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.PartnerDestinationActivationState?) content.GetValueForProperty("ActivationState",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerDestinationInternal)this).ActivationState, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.PartnerDestinationActivationState.CreateFrom); + } + if (content.Contains("EndpointBaseUrl")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerDestinationInternal)this).EndpointBaseUrl = (string) content.GetValueForProperty("EndpointBaseUrl",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerDestinationInternal)this).EndpointBaseUrl, global::System.Convert.ToString); + } + if (content.Contains("MessageForActivation")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerDestinationInternal)this).MessageForActivation = (string) content.GetValueForProperty("MessageForActivation",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerDestinationInternal)this).MessageForActivation, global::System.Convert.ToString); + } + if (content.Contains("SystemDataCreatedByType")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerDestinationInternal)this).SystemDataCreatedByType = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.CreatedByType?) content.GetValueForProperty("SystemDataCreatedByType",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerDestinationInternal)this).SystemDataCreatedByType, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.CreatedByType.CreateFrom); + } + if (content.Contains("SystemDataLastModifiedBy")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerDestinationInternal)this).SystemDataLastModifiedBy = (string) content.GetValueForProperty("SystemDataLastModifiedBy",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerDestinationInternal)this).SystemDataLastModifiedBy, global::System.Convert.ToString); + } + if (content.Contains("SystemDataLastModifiedByType")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerDestinationInternal)this).SystemDataLastModifiedByType = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.CreatedByType?) content.GetValueForProperty("SystemDataLastModifiedByType",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerDestinationInternal)this).SystemDataLastModifiedByType, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.CreatedByType.CreateFrom); + } + if (content.Contains("SystemDataLastModifiedAt")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerDestinationInternal)this).SystemDataLastModifiedAt = (global::System.DateTime?) content.GetValueForProperty("SystemDataLastModifiedAt",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerDestinationInternal)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.EventGrid.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// Event Grid Partner Destination. + [System.ComponentModel.TypeConverter(typeof(PartnerDestinationTypeConverter))] + public partial interface IPartnerDestination + + { + + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PartnerDestination.TypeConverter.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PartnerDestination.TypeConverter.cs new file mode 100644 index 000000000000..4f0bd3260bd2 --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PartnerDestination.TypeConverter.cs @@ -0,0 +1,147 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class PartnerDestinationTypeConverter : global::System.Management.Automation.PSTypeConverter + { + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false. + /// + public override bool CanConvertFrom(object sourceValue, global::System.Type destinationType) => CanConvertFrom(sourceValue); + + /// + /// Determines if the converter can convert the parameter to the . + /// + /// the instance to check if it can be converted to the type. + /// + /// true if the instance could be converted to a type, otherwise false + /// + public static bool CanConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return true; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + // we say yest to PSObjects + return true; + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + // we say yest to Hashtables/dictionaries + return true; + } + try + { + if (null != sourceValue.ToJsonString()) + { + return true; + } + } + catch + { + // Not one of our objects + } + try + { + string text = sourceValue.ToString()?.Trim(); + return true == text?.StartsWith("{") && true == text?.EndsWith("}") && Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonType.Object; + } + catch + { + // Doesn't look like it can be treated as JSON + } + return false; + } + + /// + /// Determines if the parameter can be converted to the parameter + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false + /// + public override bool CanConvertTo(object sourceValue, global::System.Type destinationType) => false; + + /// + /// Converts the parameter to the parameter using and + /// + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// + /// an instance of , or null if there is no suitable conversion. + /// + public override object ConvertFrom(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => ConvertFrom(sourceValue); + + /// + /// Converts the parameter to the parameter using and + /// + /// the value to convert into an instance of . + /// + /// an instance of , or null if there is no suitable conversion. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerDestination ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerDestination).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return PartnerDestination.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return PartnerDestination.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return PartnerDestination.DeserializeFromDictionary(sourceValue); + } + return null; + } + + /// NotImplemented -- this will return null + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// will always return null. + public override object ConvertTo(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => null; + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PartnerDestination.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PartnerDestination.cs new file mode 100644 index 000000000000..933367ece3cb --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PartnerDestination.cs @@ -0,0 +1,298 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Extensions; + + /// Event Grid Partner Destination. + public partial class PartnerDestination : + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerDestination, + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerDestinationInternal, + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IValidates + { + /// + /// Backing field for Inherited model + /// + private Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITrackedResource __trackedResource = new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.TrackedResource(); + + /// Activation state of the partner destination. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Inlined)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.PartnerDestinationActivationState? ActivationState { get => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerDestinationPropertiesInternal)Property).ActivationState; set => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerDestinationPropertiesInternal)Property).ActivationState = value ?? ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.PartnerDestinationActivationState)""); } + + /// Endpoint Base URL of the partner destination + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Inlined)] + public string EndpointBaseUrl { get => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerDestinationPropertiesInternal)Property).EndpointBaseUrl; set => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerDestinationPropertiesInternal)Property).EndpointBaseUrl = value ?? null; } + + /// Endpoint context associated with this partner destination. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Inlined)] + public string EndpointServiceContext { get => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerDestinationPropertiesInternal)Property).EndpointServiceContext; set => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerDestinationPropertiesInternal)Property).EndpointServiceContext = value ?? null; } + + /// + /// Expiration time of the partner destination. If this timer expires and the partner destination was never activated, + /// the partner destination and corresponding channel are deleted. + /// + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Inlined)] + public global::System.DateTime? ExpirationTimeIfNotActivatedUtc { get => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerDestinationPropertiesInternal)Property).ExpirationTimeIfNotActivatedUtc; set => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerDestinationPropertiesInternal)Property).ExpirationTimeIfNotActivatedUtc = value ?? default(global::System.DateTime); } + + /// Fully qualified identifier of the resource. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Inherited)] + public string Id { get => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IResourceInternal)__trackedResource).Id; } + + /// Location of the resource. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Inherited)] + public string Location { get => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITrackedResourceInternal)__trackedResource).Location; set => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITrackedResourceInternal)__trackedResource).Location = value ; } + + /// Context or helpful message that can be used during the approval process. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Inlined)] + public string MessageForActivation { get => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerDestinationPropertiesInternal)Property).MessageForActivation; set => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerDestinationPropertiesInternal)Property).MessageForActivation = value ?? null; } + + /// Internal Acessors for Property + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerDestinationProperties Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerDestinationInternal.Property { get => (this._property = this._property ?? new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.PartnerDestinationProperties()); set { {_property = value;} } } + + /// Internal Acessors for SystemData + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20.ISystemData Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerDestinationInternal.SystemData { get => (this._systemData = this._systemData ?? new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20.SystemData()); set { {_systemData = value;} } } + + /// Internal Acessors for Id + string Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IResourceInternal.Id { get => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IResourceInternal)__trackedResource).Id; set => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IResourceInternal)__trackedResource).Id = value; } + + /// Internal Acessors for Name + string Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IResourceInternal.Name { get => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IResourceInternal)__trackedResource).Name; set => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IResourceInternal)__trackedResource).Name = value; } + + /// Internal Acessors for Type + string Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IResourceInternal.Type { get => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IResourceInternal)__trackedResource).Type; set => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IResourceInternal)__trackedResource).Type = value; } + + /// Name of the resource. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Inherited)] + public string Name { get => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IResourceInternal)__trackedResource).Name; } + + /// The immutable Id of the corresponding partner registration. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Inlined)] + public string PartnerRegistrationImmutableId { get => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerDestinationPropertiesInternal)Property).PartnerRegistrationImmutableId; set => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerDestinationPropertiesInternal)Property).PartnerRegistrationImmutableId = value ?? null; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerDestinationProperties _property; + + /// Properties of the Partner Destination. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Owned)] + internal Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerDestinationProperties Property { get => (this._property = this._property ?? new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.PartnerDestinationProperties()); set => this._property = value; } + + /// Provisioning state of the partner destination. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Inlined)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.PartnerDestinationProvisioningState? ProvisioningState { get => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerDestinationPropertiesInternal)Property).ProvisioningState; set => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerDestinationPropertiesInternal)Property).ProvisioningState = value ?? ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.PartnerDestinationProvisioningState)""); } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20.ISystemData _systemData; + + /// The system metadata relating to Partner Destination resource. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Owned)] + internal Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20.ISystemData SystemData { get => (this._systemData = this._systemData ?? new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20.SystemData()); } + + /// The timestamp of resource creation (UTC). + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Inlined)] + public global::System.DateTime? SystemDataCreatedAt { get => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20.ISystemDataInternal)SystemData).CreatedAt; set => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20.ISystemDataInternal)SystemData).CreatedAt = value ?? default(global::System.DateTime); } + + /// The identity that created the resource. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Inlined)] + public string SystemDataCreatedBy { get => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20.ISystemDataInternal)SystemData).CreatedBy; set => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20.ISystemDataInternal)SystemData).CreatedBy = value ?? null; } + + /// The type of identity that created the resource. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Inlined)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.CreatedByType? SystemDataCreatedByType { get => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20.ISystemDataInternal)SystemData).CreatedByType; set => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20.ISystemDataInternal)SystemData).CreatedByType = value ?? ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.CreatedByType)""); } + + /// The timestamp of resource last modification (UTC) + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Inlined)] + public global::System.DateTime? SystemDataLastModifiedAt { get => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20.ISystemDataInternal)SystemData).LastModifiedAt; set => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20.ISystemDataInternal)SystemData).LastModifiedAt = value ?? default(global::System.DateTime); } + + /// The identity that last modified the resource. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Inlined)] + public string SystemDataLastModifiedBy { get => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20.ISystemDataInternal)SystemData).LastModifiedBy; set => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20.ISystemDataInternal)SystemData).LastModifiedBy = value ?? null; } + + /// The type of identity that last modified the resource. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Inlined)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.CreatedByType? SystemDataLastModifiedByType { get => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20.ISystemDataInternal)SystemData).LastModifiedByType; set => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20.ISystemDataInternal)SystemData).LastModifiedByType = value ?? ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.CreatedByType)""); } + + /// Tags of the resource. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Inherited)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITrackedResourceTags Tag { get => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITrackedResourceInternal)__trackedResource).Tag; set => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITrackedResourceInternal)__trackedResource).Tag = value ?? null /* model class */; } + + /// Type of the resource. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Inherited)] + public string Type { get => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IResourceInternal)__trackedResource).Type; } + + /// Creates an new instance. + public PartnerDestination() + { + + } + + /// Validates that this object meets the validation criteria. + /// an instance that will receive validation + /// events. + /// + /// A that will be complete when validation is completed. + /// + public async global::System.Threading.Tasks.Task Validate(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener eventListener) + { + await eventListener.AssertNotNull(nameof(__trackedResource), __trackedResource); + await eventListener.AssertObjectIsValid(nameof(__trackedResource), __trackedResource); + } + } + /// Event Grid Partner Destination. + public partial interface IPartnerDestination : + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IJsonSerializable, + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITrackedResource + { + /// Activation state of the partner destination. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Activation state of the partner destination.", + SerializedName = @"activationState", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.PartnerDestinationActivationState) })] + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.PartnerDestinationActivationState? ActivationState { get; set; } + /// Endpoint Base URL of the partner destination + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Endpoint Base URL of the partner destination", + SerializedName = @"endpointBaseUrl", + PossibleTypes = new [] { typeof(string) })] + string EndpointBaseUrl { get; set; } + /// Endpoint context associated with this partner destination. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Endpoint context associated with this partner destination.", + SerializedName = @"endpointServiceContext", + PossibleTypes = new [] { typeof(string) })] + string EndpointServiceContext { get; set; } + /// + /// Expiration time of the partner destination. If this timer expires and the partner destination was never activated, + /// the partner destination and corresponding channel are deleted. + /// + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Expiration time of the partner destination. If this timer expires and the partner destination was never activated, + the partner destination and corresponding channel are deleted.", + SerializedName = @"expirationTimeIfNotActivatedUtc", + PossibleTypes = new [] { typeof(global::System.DateTime) })] + global::System.DateTime? ExpirationTimeIfNotActivatedUtc { get; set; } + /// Context or helpful message that can be used during the approval process. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Context or helpful message that can be used during the approval process.", + SerializedName = @"messageForActivation", + PossibleTypes = new [] { typeof(string) })] + string MessageForActivation { get; set; } + /// The immutable Id of the corresponding partner registration. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The immutable Id of the corresponding partner registration.", + SerializedName = @"partnerRegistrationImmutableId", + PossibleTypes = new [] { typeof(string) })] + string PartnerRegistrationImmutableId { get; set; } + /// Provisioning state of the partner destination. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Provisioning state of the partner destination.", + SerializedName = @"provisioningState", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.PartnerDestinationProvisioningState) })] + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.PartnerDestinationProvisioningState? ProvisioningState { get; set; } + /// The timestamp of resource creation (UTC). + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.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.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The type of identity that created the resource.", + SerializedName = @"createdByType", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.CreatedByType) })] + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.CreatedByType? SystemDataCreatedByType { get; set; } + /// The timestamp of resource last modification (UTC) + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.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.EventGrid.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.EventGrid.Support.CreatedByType) })] + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.CreatedByType? SystemDataLastModifiedByType { get; set; } + + } + /// Event Grid Partner Destination. + internal partial interface IPartnerDestinationInternal : + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITrackedResourceInternal + { + /// Activation state of the partner destination. + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.PartnerDestinationActivationState? ActivationState { get; set; } + /// Endpoint Base URL of the partner destination + string EndpointBaseUrl { get; set; } + /// Endpoint context associated with this partner destination. + string EndpointServiceContext { get; set; } + /// + /// Expiration time of the partner destination. If this timer expires and the partner destination was never activated, + /// the partner destination and corresponding channel are deleted. + /// + global::System.DateTime? ExpirationTimeIfNotActivatedUtc { get; set; } + /// Context or helpful message that can be used during the approval process. + string MessageForActivation { get; set; } + /// The immutable Id of the corresponding partner registration. + string PartnerRegistrationImmutableId { get; set; } + /// Properties of the Partner Destination. + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerDestinationProperties Property { get; set; } + /// Provisioning state of the partner destination. + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.PartnerDestinationProvisioningState? ProvisioningState { get; set; } + /// The system metadata relating to Partner Destination resource. + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.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.EventGrid.Support.CreatedByType? SystemDataLastModifiedByType { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PartnerDestination.json.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PartnerDestination.json.cs new file mode 100644 index 000000000000..74621c6e4782 --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PartnerDestination.json.cs @@ -0,0 +1,113 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Extensions; + + /// Event Grid Partner Destination. + public partial class PartnerDestination + { + + /// + /// AfterFromJson will be called after the json deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JsonNode that should be deserialized into this object. + + partial void AfterFromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json erialization has finished, allowing customization of the before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JSON container that the serialization result will be placed in. + + partial void AfterToJson(ref Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject container); + + /// + /// BeforeFromJson will be called before the json deserialization has commenced, allowing complete customization of + /// the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JsonNode that should be deserialized into this object. + /// Determines if the rest of the deserialization should be processed, or if the method should return + /// instantly. + + partial void BeforeFromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject json, ref bool returnNow); + + /// + /// BeforeToJson will be called before the json serialization has commenced, allowing complete customization of the + /// object before it is serialized. + /// If you wish to disable the default serialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JSON container that the serialization result will be placed in. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeToJson(ref Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerDestination. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerDestination. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerDestination FromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject json ? new PartnerDestination(json) : null; + } + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject instance to deserialize from. + internal PartnerDestination(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject json) + { + bool returnNow = false; + BeforeFromJson(json, ref returnNow); + if (returnNow) + { + return; + } + __trackedResource = new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.TrackedResource(json); + {_property = If( json?.PropertyT("properties"), out var __jsonProperties) ? Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.PartnerDestinationProperties.FromJson(__jsonProperties) : Property;} + {_systemData = If( json?.PropertyT("systemData"), out var __jsonSystemData) ? Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject(); + + bool returnNow = false; + BeforeToJson(ref container, ref returnNow); + if (returnNow) + { + return container; + } + __trackedResource?.ToJson(container, serializationMode); + AddIf( null != this._property ? (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode) this._property.ToJson(null,serializationMode) : null, "properties" ,container.Add ); + if (serializationMode.HasFlag(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SerializationMode.IncludeReadOnly)) + { + AddIf( null != this._systemData ? (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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/eventgrid/generated/api/Models/Api20211015Preview/PartnerDestinationInfo.PowerShell.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PartnerDestinationInfo.PowerShell.cs new file mode 100644 index 000000000000..d2035ffbdd1d --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PartnerDestinationInfo.PowerShell.cs @@ -0,0 +1,184 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell; + + /// Properties of the corresponding partner destination of a Channel. + [System.ComponentModel.TypeConverter(typeof(PartnerDestinationInfoTypeConverter))] + public partial class PartnerDestinationInfo + { + + /// + /// AfterDeserializeDictionary will be called after the deserialization has finished, allowing customization of the + /// object before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Collections.IDictionary content that should be used. + + partial void AfterDeserializeDictionary(global::System.Collections.IDictionary content); + + /// + /// AfterDeserializePSObject will be called after the deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Management.Automation.PSObject content that should be used. + + partial void AfterDeserializePSObject(global::System.Management.Automation.PSObject content); + + /// + /// BeforeDeserializeDictionary will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Collections.IDictionary content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializeDictionary(global::System.Collections.IDictionary content, ref bool returnNow); + + /// + /// BeforeDeserializePSObject will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializePSObject(global::System.Management.Automation.PSObject content, ref bool returnNow); + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerDestinationInfo DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new PartnerDestinationInfo(content); + } + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerDestinationInfo DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new PartnerDestinationInfo(content); + } + + /// + /// Creates a new instance of , deserializing the content from a json string. + /// + /// a string containing a JSON serialized instance of this model. + /// an instance of the model class. + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerDestinationInfo FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode.Parse(jsonText)); + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + internal PartnerDestinationInfo(global::System.Collections.IDictionary content) + { + bool returnNow = false; + BeforeDeserializeDictionary(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("AzureSubscriptionId")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerDestinationInfoInternal)this).AzureSubscriptionId = (string) content.GetValueForProperty("AzureSubscriptionId",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerDestinationInfoInternal)this).AzureSubscriptionId, global::System.Convert.ToString); + } + if (content.Contains("ResourceGroupName")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerDestinationInfoInternal)this).ResourceGroupName = (string) content.GetValueForProperty("ResourceGroupName",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerDestinationInfoInternal)this).ResourceGroupName, global::System.Convert.ToString); + } + if (content.Contains("Name")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerDestinationInfoInternal)this).Name = (string) content.GetValueForProperty("Name",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerDestinationInfoInternal)this).Name, global::System.Convert.ToString); + } + if (content.Contains("EndpointType")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerDestinationInfoInternal)this).EndpointType = (string) content.GetValueForProperty("EndpointType",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerDestinationInfoInternal)this).EndpointType, global::System.Convert.ToString); + } + if (content.Contains("EndpointServiceContext")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerDestinationInfoInternal)this).EndpointServiceContext = (string) content.GetValueForProperty("EndpointServiceContext",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerDestinationInfoInternal)this).EndpointServiceContext, global::System.Convert.ToString); + } + if (content.Contains("ResourceMoveChangeHistory")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerDestinationInfoInternal)this).ResourceMoveChangeHistory = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IResourceMoveChangeHistory[]) content.GetValueForProperty("ResourceMoveChangeHistory",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerDestinationInfoInternal)this).ResourceMoveChangeHistory, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ResourceMoveChangeHistoryTypeConverter.ConvertFrom)); + } + AfterDeserializeDictionary(content); + } + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + internal PartnerDestinationInfo(global::System.Management.Automation.PSObject content) + { + bool returnNow = false; + BeforeDeserializePSObject(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("AzureSubscriptionId")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerDestinationInfoInternal)this).AzureSubscriptionId = (string) content.GetValueForProperty("AzureSubscriptionId",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerDestinationInfoInternal)this).AzureSubscriptionId, global::System.Convert.ToString); + } + if (content.Contains("ResourceGroupName")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerDestinationInfoInternal)this).ResourceGroupName = (string) content.GetValueForProperty("ResourceGroupName",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerDestinationInfoInternal)this).ResourceGroupName, global::System.Convert.ToString); + } + if (content.Contains("Name")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerDestinationInfoInternal)this).Name = (string) content.GetValueForProperty("Name",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerDestinationInfoInternal)this).Name, global::System.Convert.ToString); + } + if (content.Contains("EndpointType")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerDestinationInfoInternal)this).EndpointType = (string) content.GetValueForProperty("EndpointType",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerDestinationInfoInternal)this).EndpointType, global::System.Convert.ToString); + } + if (content.Contains("EndpointServiceContext")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerDestinationInfoInternal)this).EndpointServiceContext = (string) content.GetValueForProperty("EndpointServiceContext",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerDestinationInfoInternal)this).EndpointServiceContext, global::System.Convert.ToString); + } + if (content.Contains("ResourceMoveChangeHistory")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerDestinationInfoInternal)this).ResourceMoveChangeHistory = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IResourceMoveChangeHistory[]) content.GetValueForProperty("ResourceMoveChangeHistory",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerDestinationInfoInternal)this).ResourceMoveChangeHistory, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ResourceMoveChangeHistoryTypeConverter.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.EventGrid.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// Properties of the corresponding partner destination of a Channel. + [System.ComponentModel.TypeConverter(typeof(PartnerDestinationInfoTypeConverter))] + public partial interface IPartnerDestinationInfo + + { + + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PartnerDestinationInfo.TypeConverter.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PartnerDestinationInfo.TypeConverter.cs new file mode 100644 index 000000000000..c467af67a9c1 --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PartnerDestinationInfo.TypeConverter.cs @@ -0,0 +1,147 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class PartnerDestinationInfoTypeConverter : global::System.Management.Automation.PSTypeConverter + { + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false. + /// + public override bool CanConvertFrom(object sourceValue, global::System.Type destinationType) => CanConvertFrom(sourceValue); + + /// + /// Determines if the converter can convert the parameter to the . + /// + /// the instance to check if it can be converted to the type. + /// + /// true if the instance could be converted to a type, otherwise false + /// + public static bool CanConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return true; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + // we say yest to PSObjects + return true; + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + // we say yest to Hashtables/dictionaries + return true; + } + try + { + if (null != sourceValue.ToJsonString()) + { + return true; + } + } + catch + { + // Not one of our objects + } + try + { + string text = sourceValue.ToString()?.Trim(); + return true == text?.StartsWith("{") && true == text?.EndsWith("}") && Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonType.Object; + } + catch + { + // Doesn't look like it can be treated as JSON + } + return false; + } + + /// + /// Determines if the parameter can be converted to the parameter + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false + /// + public override bool CanConvertTo(object sourceValue, global::System.Type destinationType) => false; + + /// + /// Converts the parameter to the parameter using and + /// + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// + /// an instance of , or null if there is no suitable conversion. + /// + public override object ConvertFrom(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => ConvertFrom(sourceValue); + + /// + /// Converts the parameter to the parameter using and + /// + /// the value to convert into an instance of . + /// + /// an instance of , or null if there is no suitable conversion. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerDestinationInfo ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerDestinationInfo).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return PartnerDestinationInfo.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return PartnerDestinationInfo.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return PartnerDestinationInfo.DeserializeFromDictionary(sourceValue); + } + return null; + } + + /// NotImplemented -- this will return null + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// will always return null. + public override object ConvertTo(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => null; + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PartnerDestinationInfo.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PartnerDestinationInfo.cs new file mode 100644 index 000000000000..dd2aedc0520e --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PartnerDestinationInfo.cs @@ -0,0 +1,159 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Extensions; + + /// Properties of the corresponding partner destination of a Channel. + public partial class PartnerDestinationInfo : + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerDestinationInfo, + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerDestinationInfoInternal + { + + /// Backing field for property. + private string _azureSubscriptionId; + + /// + /// Azure subscription ID of the subscriber. The partner destination associated with the channel will be + /// created under this Azure subscription. + /// + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Owned)] + public string AzureSubscriptionId { get => this._azureSubscriptionId; set => this._azureSubscriptionId = value; } + + /// Backing field for property. + private string _endpointServiceContext; + + /// Additional context of the partner destination endpoint. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Owned)] + public string EndpointServiceContext { get => this._endpointServiceContext; set => this._endpointServiceContext = value; } + + /// Backing field for property. + private string _endpointType= @"WebHook"; + + /// Type of the endpoint for the partner destination + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Owned)] + public string EndpointType { get => this._endpointType; } + + /// Internal Acessors for EndpointType + string Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerDestinationInfoInternal.EndpointType { get => this._endpointType; set { {_endpointType = value;} } } + + /// Backing field for property. + private string _name; + + /// Name of the partner destination associated with the channel. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Owned)] + public string Name { get => this._name; set => this._name = value; } + + /// Backing field for property. + private string _resourceGroupName; + + /// + /// Azure Resource Group of the subscriber. The partner destination associated with the channel will be + /// created under this resource group. + /// + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Owned)] + public string ResourceGroupName { get => this._resourceGroupName; set => this._resourceGroupName = value; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IResourceMoveChangeHistory[] _resourceMoveChangeHistory; + + /// Change history of the resource move. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Owned)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IResourceMoveChangeHistory[] ResourceMoveChangeHistory { get => this._resourceMoveChangeHistory; set => this._resourceMoveChangeHistory = value; } + + /// Creates an new instance. + public PartnerDestinationInfo() + { + + } + } + /// Properties of the corresponding partner destination of a Channel. + public partial interface IPartnerDestinationInfo : + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IJsonSerializable + { + /// + /// Azure subscription ID of the subscriber. The partner destination associated with the channel will be + /// created under this Azure subscription. + /// + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Azure subscription ID of the subscriber. The partner destination associated with the channel will be + created under this Azure subscription.", + SerializedName = @"azureSubscriptionId", + PossibleTypes = new [] { typeof(string) })] + string AzureSubscriptionId { get; set; } + /// Additional context of the partner destination endpoint. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Additional context of the partner destination endpoint.", + SerializedName = @"endpointServiceContext", + PossibleTypes = new [] { typeof(string) })] + string EndpointServiceContext { get; set; } + /// Type of the endpoint for the partner destination + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = true, + ReadOnly = true, + Description = @"Type of the endpoint for the partner destination", + SerializedName = @"endpointType", + PossibleTypes = new [] { typeof(string) })] + string EndpointType { get; } + /// Name of the partner destination associated with the channel. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Name of the partner destination associated with the channel.", + SerializedName = @"name", + PossibleTypes = new [] { typeof(string) })] + string Name { get; set; } + /// + /// Azure Resource Group of the subscriber. The partner destination associated with the channel will be + /// created under this resource group. + /// + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Azure Resource Group of the subscriber. The partner destination associated with the channel will be + created under this resource group.", + SerializedName = @"resourceGroupName", + PossibleTypes = new [] { typeof(string) })] + string ResourceGroupName { get; set; } + /// Change history of the resource move. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Change history of the resource move.", + SerializedName = @"resourceMoveChangeHistory", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IResourceMoveChangeHistory) })] + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IResourceMoveChangeHistory[] ResourceMoveChangeHistory { get; set; } + + } + /// Properties of the corresponding partner destination of a Channel. + internal partial interface IPartnerDestinationInfoInternal + + { + /// + /// Azure subscription ID of the subscriber. The partner destination associated with the channel will be + /// created under this Azure subscription. + /// + string AzureSubscriptionId { get; set; } + /// Additional context of the partner destination endpoint. + string EndpointServiceContext { get; set; } + /// Type of the endpoint for the partner destination + string EndpointType { get; set; } + /// Name of the partner destination associated with the channel. + string Name { get; set; } + /// + /// Azure Resource Group of the subscriber. The partner destination associated with the channel will be + /// created under this resource group. + /// + string ResourceGroupName { get; set; } + /// Change history of the resource move. + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IResourceMoveChangeHistory[] ResourceMoveChangeHistory { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PartnerDestinationInfo.json.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PartnerDestinationInfo.json.cs new file mode 100644 index 000000000000..9729ca33afaa --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PartnerDestinationInfo.json.cs @@ -0,0 +1,139 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Extensions; + + /// Properties of the corresponding partner destination of a Channel. + public partial class PartnerDestinationInfo + { + + /// + /// AfterFromJson will be called after the json deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JsonNode that should be deserialized into this object. + + partial void AfterFromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json erialization has finished, allowing customization of the before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JSON container that the serialization result will be placed in. + + partial void AfterToJson(ref Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject container); + + /// + /// BeforeFromJson will be called before the json deserialization has commenced, allowing complete customization of + /// the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JsonNode that should be deserialized into this object. + /// Determines if the rest of the deserialization should be processed, or if the method should return + /// instantly. + + partial void BeforeFromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject json, ref bool returnNow); + + /// + /// BeforeToJson will be called before the json serialization has commenced, allowing complete customization of the + /// object before it is serialized. + /// If you wish to disable the default serialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JSON container that the serialization result will be placed in. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeToJson(ref Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerDestinationInfo. + /// Note: the Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerDestinationInfo interface is + /// polymorphic, and the precise model class that will get deserialized is determined at runtime based on the payload. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerDestinationInfo. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerDestinationInfo FromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode node) + { + if (!(node is Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject json)) + { + return null; + } + // Polymorphic type -- select the appropriate constructor using the discriminator + + switch ( json.StringProperty("endpointType") ) + { + case "WebHook": + { + return new WebhookPartnerDestinationInfo(json); + } + } + return new PartnerDestinationInfo(json); + } + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject instance to deserialize from. + internal PartnerDestinationInfo(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject json) + { + bool returnNow = false; + BeforeFromJson(json, ref returnNow); + if (returnNow) + { + return; + } + {_azureSubscriptionId = If( json?.PropertyT("azureSubscriptionId"), out var __jsonAzureSubscriptionId) ? (string)__jsonAzureSubscriptionId : (string)AzureSubscriptionId;} + {_resourceGroupName = If( json?.PropertyT("resourceGroupName"), out var __jsonResourceGroupName) ? (string)__jsonResourceGroupName : (string)ResourceGroupName;} + {_name = If( json?.PropertyT("name"), out var __jsonName) ? (string)__jsonName : (string)Name;} + {_endpointType = If( json?.PropertyT("endpointType"), out var __jsonEndpointType) ? (string)__jsonEndpointType : (string)EndpointType;} + {_endpointServiceContext = If( json?.PropertyT("endpointServiceContext"), out var __jsonEndpointServiceContext) ? (string)__jsonEndpointServiceContext : (string)EndpointServiceContext;} + {_resourceMoveChangeHistory = If( json?.PropertyT("resourceMoveChangeHistory"), out var __jsonResourceMoveChangeHistory) ? If( __jsonResourceMoveChangeHistory as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Models.Api20211015Preview.IResourceMoveChangeHistory) (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ResourceMoveChangeHistory.FromJson(__u) )) ))() : null : ResourceMoveChangeHistory;} + AfterFromJson(json); + } + + /// + /// Serializes this instance of into a . + /// + /// The container to serialize this object into. If the caller + /// passes in null, a new instance will be created and returned to the caller. + /// Allows the caller to choose the depth of the serialization. See . + /// + /// a serialized instance of as a . + /// + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject(); + + bool returnNow = false; + BeforeToJson(ref container, ref returnNow); + if (returnNow) + { + return container; + } + AddIf( null != (((object)this._azureSubscriptionId)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonString(this._azureSubscriptionId.ToString()) : null, "azureSubscriptionId" ,container.Add ); + AddIf( null != (((object)this._resourceGroupName)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonString(this._resourceGroupName.ToString()) : null, "resourceGroupName" ,container.Add ); + AddIf( null != (((object)this._name)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonString(this._name.ToString()) : null, "name" ,container.Add ); + AddIf( null != (((object)this._endpointType)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonString(this._endpointType.ToString()) : null, "endpointType" ,container.Add ); + AddIf( null != (((object)this._endpointServiceContext)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonString(this._endpointServiceContext.ToString()) : null, "endpointServiceContext" ,container.Add ); + if (null != this._resourceMoveChangeHistory) + { + var __w = new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.XNodeArray(); + foreach( var __x in this._resourceMoveChangeHistory ) + { + AddIf(__x?.ToJson(null, serializationMode) ,__w.Add); + } + container.Add("resourceMoveChangeHistory",__w); + } + AfterToJson(ref container); + return container; + } + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PartnerDestinationProperties.PowerShell.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PartnerDestinationProperties.PowerShell.cs new file mode 100644 index 000000000000..7753c6b9828b --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PartnerDestinationProperties.PowerShell.cs @@ -0,0 +1,192 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell; + + /// Properties of the Partner Destination. + [System.ComponentModel.TypeConverter(typeof(PartnerDestinationPropertiesTypeConverter))] + public partial class PartnerDestinationProperties + { + + /// + /// AfterDeserializeDictionary will be called after the deserialization has finished, allowing customization of the + /// object before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Collections.IDictionary content that should be used. + + partial void AfterDeserializeDictionary(global::System.Collections.IDictionary content); + + /// + /// AfterDeserializePSObject will be called after the deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Management.Automation.PSObject content that should be used. + + partial void AfterDeserializePSObject(global::System.Management.Automation.PSObject content); + + /// + /// BeforeDeserializeDictionary will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Collections.IDictionary content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializeDictionary(global::System.Collections.IDictionary content, ref bool returnNow); + + /// + /// BeforeDeserializePSObject will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializePSObject(global::System.Management.Automation.PSObject content, ref bool returnNow); + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerDestinationProperties DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new PartnerDestinationProperties(content); + } + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerDestinationProperties DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new PartnerDestinationProperties(content); + } + + /// + /// Creates a new instance of , deserializing the content from a json string. + /// + /// a string containing a JSON serialized instance of this model. + /// an instance of the model class. + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerDestinationProperties FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode.Parse(jsonText)); + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + internal PartnerDestinationProperties(global::System.Collections.IDictionary content) + { + bool returnNow = false; + BeforeDeserializeDictionary(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("PartnerRegistrationImmutableId")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerDestinationPropertiesInternal)this).PartnerRegistrationImmutableId = (string) content.GetValueForProperty("PartnerRegistrationImmutableId",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerDestinationPropertiesInternal)this).PartnerRegistrationImmutableId, global::System.Convert.ToString); + } + if (content.Contains("EndpointServiceContext")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerDestinationPropertiesInternal)this).EndpointServiceContext = (string) content.GetValueForProperty("EndpointServiceContext",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerDestinationPropertiesInternal)this).EndpointServiceContext, global::System.Convert.ToString); + } + if (content.Contains("ExpirationTimeIfNotActivatedUtc")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerDestinationPropertiesInternal)this).ExpirationTimeIfNotActivatedUtc = (global::System.DateTime?) content.GetValueForProperty("ExpirationTimeIfNotActivatedUtc",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerDestinationPropertiesInternal)this).ExpirationTimeIfNotActivatedUtc, (v) => v is global::System.DateTime _v ? _v : global::System.Xml.XmlConvert.ToDateTime( v.ToString() , global::System.Xml.XmlDateTimeSerializationMode.Unspecified)); + } + if (content.Contains("ProvisioningState")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerDestinationPropertiesInternal)this).ProvisioningState = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.PartnerDestinationProvisioningState?) content.GetValueForProperty("ProvisioningState",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerDestinationPropertiesInternal)this).ProvisioningState, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.PartnerDestinationProvisioningState.CreateFrom); + } + if (content.Contains("ActivationState")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerDestinationPropertiesInternal)this).ActivationState = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.PartnerDestinationActivationState?) content.GetValueForProperty("ActivationState",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerDestinationPropertiesInternal)this).ActivationState, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.PartnerDestinationActivationState.CreateFrom); + } + if (content.Contains("EndpointBaseUrl")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerDestinationPropertiesInternal)this).EndpointBaseUrl = (string) content.GetValueForProperty("EndpointBaseUrl",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerDestinationPropertiesInternal)this).EndpointBaseUrl, global::System.Convert.ToString); + } + if (content.Contains("MessageForActivation")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerDestinationPropertiesInternal)this).MessageForActivation = (string) content.GetValueForProperty("MessageForActivation",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerDestinationPropertiesInternal)this).MessageForActivation, global::System.Convert.ToString); + } + AfterDeserializeDictionary(content); + } + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + internal PartnerDestinationProperties(global::System.Management.Automation.PSObject content) + { + bool returnNow = false; + BeforeDeserializePSObject(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("PartnerRegistrationImmutableId")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerDestinationPropertiesInternal)this).PartnerRegistrationImmutableId = (string) content.GetValueForProperty("PartnerRegistrationImmutableId",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerDestinationPropertiesInternal)this).PartnerRegistrationImmutableId, global::System.Convert.ToString); + } + if (content.Contains("EndpointServiceContext")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerDestinationPropertiesInternal)this).EndpointServiceContext = (string) content.GetValueForProperty("EndpointServiceContext",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerDestinationPropertiesInternal)this).EndpointServiceContext, global::System.Convert.ToString); + } + if (content.Contains("ExpirationTimeIfNotActivatedUtc")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerDestinationPropertiesInternal)this).ExpirationTimeIfNotActivatedUtc = (global::System.DateTime?) content.GetValueForProperty("ExpirationTimeIfNotActivatedUtc",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerDestinationPropertiesInternal)this).ExpirationTimeIfNotActivatedUtc, (v) => v is global::System.DateTime _v ? _v : global::System.Xml.XmlConvert.ToDateTime( v.ToString() , global::System.Xml.XmlDateTimeSerializationMode.Unspecified)); + } + if (content.Contains("ProvisioningState")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerDestinationPropertiesInternal)this).ProvisioningState = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.PartnerDestinationProvisioningState?) content.GetValueForProperty("ProvisioningState",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerDestinationPropertiesInternal)this).ProvisioningState, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.PartnerDestinationProvisioningState.CreateFrom); + } + if (content.Contains("ActivationState")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerDestinationPropertiesInternal)this).ActivationState = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.PartnerDestinationActivationState?) content.GetValueForProperty("ActivationState",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerDestinationPropertiesInternal)this).ActivationState, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.PartnerDestinationActivationState.CreateFrom); + } + if (content.Contains("EndpointBaseUrl")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerDestinationPropertiesInternal)this).EndpointBaseUrl = (string) content.GetValueForProperty("EndpointBaseUrl",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerDestinationPropertiesInternal)this).EndpointBaseUrl, global::System.Convert.ToString); + } + if (content.Contains("MessageForActivation")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerDestinationPropertiesInternal)this).MessageForActivation = (string) content.GetValueForProperty("MessageForActivation",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerDestinationPropertiesInternal)this).MessageForActivation, 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.EventGrid.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// Properties of the Partner Destination. + [System.ComponentModel.TypeConverter(typeof(PartnerDestinationPropertiesTypeConverter))] + public partial interface IPartnerDestinationProperties + + { + + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PartnerDestinationProperties.TypeConverter.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PartnerDestinationProperties.TypeConverter.cs new file mode 100644 index 000000000000..9b158baf9e61 --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PartnerDestinationProperties.TypeConverter.cs @@ -0,0 +1,147 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class PartnerDestinationPropertiesTypeConverter : global::System.Management.Automation.PSTypeConverter + { + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false. + /// + public override bool CanConvertFrom(object sourceValue, global::System.Type destinationType) => CanConvertFrom(sourceValue); + + /// + /// Determines if the converter can convert the parameter to the . + /// + /// the instance to check if it can be converted to the type. + /// + /// true if the instance could be converted to a type, otherwise false + /// + public static bool CanConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return true; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + // we say yest to PSObjects + return true; + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + // we say yest to Hashtables/dictionaries + return true; + } + try + { + if (null != sourceValue.ToJsonString()) + { + return true; + } + } + catch + { + // Not one of our objects + } + try + { + string text = sourceValue.ToString()?.Trim(); + return true == text?.StartsWith("{") && true == text?.EndsWith("}") && Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonType.Object; + } + catch + { + // Doesn't look like it can be treated as JSON + } + return false; + } + + /// + /// Determines if the parameter can be converted to the parameter + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false + /// + public override bool CanConvertTo(object sourceValue, global::System.Type destinationType) => false; + + /// + /// Converts the parameter to the parameter using and + /// + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// + /// an instance of , or null if there is no suitable conversion. + /// + public override object ConvertFrom(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => ConvertFrom(sourceValue); + + /// + /// Converts the parameter to the parameter using and + /// + /// the value to convert into an instance of . + /// + /// an instance of , or null if there is no suitable conversion. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerDestinationProperties ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerDestinationProperties).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return PartnerDestinationProperties.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return PartnerDestinationProperties.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return PartnerDestinationProperties.DeserializeFromDictionary(sourceValue); + } + return null; + } + + /// NotImplemented -- this will return null + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// will always return null. + public override object ConvertTo(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => null; + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PartnerDestinationProperties.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PartnerDestinationProperties.cs new file mode 100644 index 000000000000..f3dc6720a634 --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PartnerDestinationProperties.cs @@ -0,0 +1,163 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Extensions; + + /// Properties of the Partner Destination. + public partial class PartnerDestinationProperties : + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerDestinationProperties, + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerDestinationPropertiesInternal + { + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.PartnerDestinationActivationState? _activationState; + + /// Activation state of the partner destination. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Owned)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.PartnerDestinationActivationState? ActivationState { get => this._activationState; set => this._activationState = value; } + + /// Backing field for property. + private string _endpointBaseUrl; + + /// Endpoint Base URL of the partner destination + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Owned)] + public string EndpointBaseUrl { get => this._endpointBaseUrl; set => this._endpointBaseUrl = value; } + + /// Backing field for property. + private string _endpointServiceContext; + + /// Endpoint context associated with this partner destination. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Owned)] + public string EndpointServiceContext { get => this._endpointServiceContext; set => this._endpointServiceContext = value; } + + /// Backing field for property. + private global::System.DateTime? _expirationTimeIfNotActivatedUtc; + + /// + /// Expiration time of the partner destination. If this timer expires and the partner destination was never activated, + /// the partner destination and corresponding channel are deleted. + /// + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Owned)] + public global::System.DateTime? ExpirationTimeIfNotActivatedUtc { get => this._expirationTimeIfNotActivatedUtc; set => this._expirationTimeIfNotActivatedUtc = value; } + + /// Backing field for property. + private string _messageForActivation; + + /// Context or helpful message that can be used during the approval process. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Owned)] + public string MessageForActivation { get => this._messageForActivation; set => this._messageForActivation = value; } + + /// Backing field for property. + private string _partnerRegistrationImmutableId; + + /// The immutable Id of the corresponding partner registration. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Owned)] + public string PartnerRegistrationImmutableId { get => this._partnerRegistrationImmutableId; set => this._partnerRegistrationImmutableId = value; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.PartnerDestinationProvisioningState? _provisioningState; + + /// Provisioning state of the partner destination. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Owned)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.PartnerDestinationProvisioningState? ProvisioningState { get => this._provisioningState; set => this._provisioningState = value; } + + /// Creates an new instance. + public PartnerDestinationProperties() + { + + } + } + /// Properties of the Partner Destination. + public partial interface IPartnerDestinationProperties : + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IJsonSerializable + { + /// Activation state of the partner destination. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Activation state of the partner destination.", + SerializedName = @"activationState", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.PartnerDestinationActivationState) })] + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.PartnerDestinationActivationState? ActivationState { get; set; } + /// Endpoint Base URL of the partner destination + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Endpoint Base URL of the partner destination", + SerializedName = @"endpointBaseUrl", + PossibleTypes = new [] { typeof(string) })] + string EndpointBaseUrl { get; set; } + /// Endpoint context associated with this partner destination. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Endpoint context associated with this partner destination.", + SerializedName = @"endpointServiceContext", + PossibleTypes = new [] { typeof(string) })] + string EndpointServiceContext { get; set; } + /// + /// Expiration time of the partner destination. If this timer expires and the partner destination was never activated, + /// the partner destination and corresponding channel are deleted. + /// + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Expiration time of the partner destination. If this timer expires and the partner destination was never activated, + the partner destination and corresponding channel are deleted.", + SerializedName = @"expirationTimeIfNotActivatedUtc", + PossibleTypes = new [] { typeof(global::System.DateTime) })] + global::System.DateTime? ExpirationTimeIfNotActivatedUtc { get; set; } + /// Context or helpful message that can be used during the approval process. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Context or helpful message that can be used during the approval process.", + SerializedName = @"messageForActivation", + PossibleTypes = new [] { typeof(string) })] + string MessageForActivation { get; set; } + /// The immutable Id of the corresponding partner registration. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The immutable Id of the corresponding partner registration.", + SerializedName = @"partnerRegistrationImmutableId", + PossibleTypes = new [] { typeof(string) })] + string PartnerRegistrationImmutableId { get; set; } + /// Provisioning state of the partner destination. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Provisioning state of the partner destination.", + SerializedName = @"provisioningState", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.PartnerDestinationProvisioningState) })] + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.PartnerDestinationProvisioningState? ProvisioningState { get; set; } + + } + /// Properties of the Partner Destination. + internal partial interface IPartnerDestinationPropertiesInternal + + { + /// Activation state of the partner destination. + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.PartnerDestinationActivationState? ActivationState { get; set; } + /// Endpoint Base URL of the partner destination + string EndpointBaseUrl { get; set; } + /// Endpoint context associated with this partner destination. + string EndpointServiceContext { get; set; } + /// + /// Expiration time of the partner destination. If this timer expires and the partner destination was never activated, + /// the partner destination and corresponding channel are deleted. + /// + global::System.DateTime? ExpirationTimeIfNotActivatedUtc { get; set; } + /// Context or helpful message that can be used during the approval process. + string MessageForActivation { get; set; } + /// The immutable Id of the corresponding partner registration. + string PartnerRegistrationImmutableId { get; set; } + /// Provisioning state of the partner destination. + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.PartnerDestinationProvisioningState? ProvisioningState { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PartnerDestinationProperties.json.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PartnerDestinationProperties.json.cs new file mode 100644 index 000000000000..9ecdcd5a00a3 --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PartnerDestinationProperties.json.cs @@ -0,0 +1,118 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Extensions; + + /// Properties of the Partner Destination. + public partial class PartnerDestinationProperties + { + + /// + /// AfterFromJson will be called after the json deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JsonNode that should be deserialized into this object. + + partial void AfterFromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json erialization has finished, allowing customization of the before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JSON container that the serialization result will be placed in. + + partial void AfterToJson(ref Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject container); + + /// + /// BeforeFromJson will be called before the json deserialization has commenced, allowing complete customization of + /// the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JsonNode that should be deserialized into this object. + /// Determines if the rest of the deserialization should be processed, or if the method should return + /// instantly. + + partial void BeforeFromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject json, ref bool returnNow); + + /// + /// BeforeToJson will be called before the json serialization has commenced, allowing complete customization of the + /// object before it is serialized. + /// If you wish to disable the default serialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JSON container that the serialization result will be placed in. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeToJson(ref Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerDestinationProperties. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerDestinationProperties. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerDestinationProperties FromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject json ? new PartnerDestinationProperties(json) : null; + } + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject instance to deserialize from. + internal PartnerDestinationProperties(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject json) + { + bool returnNow = false; + BeforeFromJson(json, ref returnNow); + if (returnNow) + { + return; + } + {_partnerRegistrationImmutableId = If( json?.PropertyT("partnerRegistrationImmutableId"), out var __jsonPartnerRegistrationImmutableId) ? (string)__jsonPartnerRegistrationImmutableId : (string)PartnerRegistrationImmutableId;} + {_endpointServiceContext = If( json?.PropertyT("endpointServiceContext"), out var __jsonEndpointServiceContext) ? (string)__jsonEndpointServiceContext : (string)EndpointServiceContext;} + {_expirationTimeIfNotActivatedUtc = If( json?.PropertyT("expirationTimeIfNotActivatedUtc"), out var __jsonExpirationTimeIfNotActivatedUtc) ? global::System.DateTime.TryParse((string)__jsonExpirationTimeIfNotActivatedUtc, global::System.Globalization.CultureInfo.InvariantCulture, global::System.Globalization.DateTimeStyles.AdjustToUniversal, out var __jsonExpirationTimeIfNotActivatedUtcValue) ? __jsonExpirationTimeIfNotActivatedUtcValue : ExpirationTimeIfNotActivatedUtc : ExpirationTimeIfNotActivatedUtc;} + {_provisioningState = If( json?.PropertyT("provisioningState"), out var __jsonProvisioningState) ? (string)__jsonProvisioningState : (string)ProvisioningState;} + {_activationState = If( json?.PropertyT("activationState"), out var __jsonActivationState) ? (string)__jsonActivationState : (string)ActivationState;} + {_endpointBaseUrl = If( json?.PropertyT("endpointBaseUrl"), out var __jsonEndpointBaseUrl) ? (string)__jsonEndpointBaseUrl : (string)EndpointBaseUrl;} + {_messageForActivation = If( json?.PropertyT("messageForActivation"), out var __jsonMessageForActivation) ? (string)__jsonMessageForActivation : (string)MessageForActivation;} + AfterFromJson(json); + } + + /// + /// Serializes this instance of into a . + /// + /// The container to serialize this object into. If the caller + /// passes in null, a new instance will be created and returned to the caller. + /// Allows the caller to choose the depth of the serialization. See . + /// + /// a serialized instance of as a . + /// + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject(); + + bool returnNow = false; + BeforeToJson(ref container, ref returnNow); + if (returnNow) + { + return container; + } + AddIf( null != (((object)this._partnerRegistrationImmutableId)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonString(this._partnerRegistrationImmutableId.ToString()) : null, "partnerRegistrationImmutableId" ,container.Add ); + AddIf( null != (((object)this._endpointServiceContext)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonString(this._endpointServiceContext.ToString()) : null, "endpointServiceContext" ,container.Add ); + AddIf( null != this._expirationTimeIfNotActivatedUtc ? (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonString(this._expirationTimeIfNotActivatedUtc?.ToString(@"yyyy'-'MM'-'dd'T'HH':'mm':'ss.fffffffK",global::System.Globalization.CultureInfo.InvariantCulture)) : null, "expirationTimeIfNotActivatedUtc" ,container.Add ); + AddIf( null != (((object)this._provisioningState)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonString(this._provisioningState.ToString()) : null, "provisioningState" ,container.Add ); + AddIf( null != (((object)this._activationState)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonString(this._activationState.ToString()) : null, "activationState" ,container.Add ); + AddIf( null != (((object)this._endpointBaseUrl)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonString(this._endpointBaseUrl.ToString()) : null, "endpointBaseUrl" ,container.Add ); + AddIf( null != (((object)this._messageForActivation)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonString(this._messageForActivation.ToString()) : null, "messageForActivation" ,container.Add ); + AfterToJson(ref container); + return container; + } + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PartnerDestinationUpdateParameters.PowerShell.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PartnerDestinationUpdateParameters.PowerShell.cs new file mode 100644 index 000000000000..ba3c05eb0550 --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PartnerDestinationUpdateParameters.PowerShell.cs @@ -0,0 +1,146 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell; + + /// Properties of the Partner Destination that can be updated. + [System.ComponentModel.TypeConverter(typeof(PartnerDestinationUpdateParametersTypeConverter))] + public partial class PartnerDestinationUpdateParameters + { + + /// + /// AfterDeserializeDictionary will be called after the deserialization has finished, allowing customization of the + /// object before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Collections.IDictionary content that should be used. + + partial void AfterDeserializeDictionary(global::System.Collections.IDictionary content); + + /// + /// AfterDeserializePSObject will be called after the deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Management.Automation.PSObject content that should be used. + + partial void AfterDeserializePSObject(global::System.Management.Automation.PSObject content); + + /// + /// BeforeDeserializeDictionary will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Collections.IDictionary content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializeDictionary(global::System.Collections.IDictionary content, ref bool returnNow); + + /// + /// BeforeDeserializePSObject will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializePSObject(global::System.Management.Automation.PSObject content, ref bool returnNow); + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerDestinationUpdateParameters DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new PartnerDestinationUpdateParameters(content); + } + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerDestinationUpdateParameters DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new PartnerDestinationUpdateParameters(content); + } + + /// + /// Creates a new instance of , deserializing the content from a json string. + /// + /// a string containing a JSON serialized instance of this model. + /// + /// an instance of the model class. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerDestinationUpdateParameters FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode.Parse(jsonText)); + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + internal PartnerDestinationUpdateParameters(global::System.Collections.IDictionary content) + { + bool returnNow = false; + BeforeDeserializeDictionary(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("Tag")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerDestinationUpdateParametersInternal)this).Tag = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerDestinationUpdateParametersTags) content.GetValueForProperty("Tag",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerDestinationUpdateParametersInternal)this).Tag, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.PartnerDestinationUpdateParametersTagsTypeConverter.ConvertFrom); + } + AfterDeserializeDictionary(content); + } + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + internal PartnerDestinationUpdateParameters(global::System.Management.Automation.PSObject content) + { + bool returnNow = false; + BeforeDeserializePSObject(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("Tag")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerDestinationUpdateParametersInternal)this).Tag = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerDestinationUpdateParametersTags) content.GetValueForProperty("Tag",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerDestinationUpdateParametersInternal)this).Tag, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.PartnerDestinationUpdateParametersTagsTypeConverter.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.EventGrid.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// Properties of the Partner Destination that can be updated. + [System.ComponentModel.TypeConverter(typeof(PartnerDestinationUpdateParametersTypeConverter))] + public partial interface IPartnerDestinationUpdateParameters + + { + + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PartnerDestinationUpdateParameters.TypeConverter.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PartnerDestinationUpdateParameters.TypeConverter.cs new file mode 100644 index 000000000000..438591cf8040 --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PartnerDestinationUpdateParameters.TypeConverter.cs @@ -0,0 +1,148 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class PartnerDestinationUpdateParametersTypeConverter : global::System.Management.Automation.PSTypeConverter + { + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false. + /// + public override bool CanConvertFrom(object sourceValue, global::System.Type destinationType) => CanConvertFrom(sourceValue); + + /// + /// Determines if the converter can convert the parameter to the . + /// + /// the instance to check if it can be converted to the type. + /// + /// true if the instance could be converted to a type, otherwise + /// false + /// + public static bool CanConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return true; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + // we say yest to PSObjects + return true; + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + // we say yest to Hashtables/dictionaries + return true; + } + try + { + if (null != sourceValue.ToJsonString()) + { + return true; + } + } + catch + { + // Not one of our objects + } + try + { + string text = sourceValue.ToString()?.Trim(); + return true == text?.StartsWith("{") && true == text?.EndsWith("}") && Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonType.Object; + } + catch + { + // Doesn't look like it can be treated as JSON + } + return false; + } + + /// + /// Determines if the parameter can be converted to the parameter + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false + /// + public override bool CanConvertTo(object sourceValue, global::System.Type destinationType) => false; + + /// + /// Converts the parameter to the parameter using and + /// + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// + /// an instance of , or null if there is no suitable conversion. + /// + public override object ConvertFrom(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => ConvertFrom(sourceValue); + + /// + /// Converts the parameter to the parameter using and + /// + /// the value to convert into an instance of . + /// + /// an instance of , or null if there is no suitable conversion. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerDestinationUpdateParameters ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerDestinationUpdateParameters).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return PartnerDestinationUpdateParameters.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return PartnerDestinationUpdateParameters.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return PartnerDestinationUpdateParameters.DeserializeFromDictionary(sourceValue); + } + return null; + } + + /// NotImplemented -- this will return null + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// will always return null. + public override object ConvertTo(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => null; + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PartnerDestinationUpdateParameters.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PartnerDestinationUpdateParameters.cs new file mode 100644 index 000000000000..de52393ae584 --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PartnerDestinationUpdateParameters.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.EventGrid.Models.Api20211015Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Extensions; + + /// Properties of the Partner Destination that can be updated. + public partial class PartnerDestinationUpdateParameters : + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerDestinationUpdateParameters, + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerDestinationUpdateParametersInternal + { + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerDestinationUpdateParametersTags _tag; + + /// Tags of the Partner Destination resource. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Owned)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerDestinationUpdateParametersTags Tag { get => (this._tag = this._tag ?? new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.PartnerDestinationUpdateParametersTags()); set => this._tag = value; } + + /// Creates an new instance. + public PartnerDestinationUpdateParameters() + { + + } + } + /// Properties of the Partner Destination that can be updated. + public partial interface IPartnerDestinationUpdateParameters : + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IJsonSerializable + { + /// Tags of the Partner Destination resource. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Tags of the Partner Destination resource.", + SerializedName = @"tags", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerDestinationUpdateParametersTags) })] + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerDestinationUpdateParametersTags Tag { get; set; } + + } + /// Properties of the Partner Destination that can be updated. + internal partial interface IPartnerDestinationUpdateParametersInternal + + { + /// Tags of the Partner Destination resource. + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerDestinationUpdateParametersTags Tag { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PartnerDestinationUpdateParameters.json.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PartnerDestinationUpdateParameters.json.cs new file mode 100644 index 000000000000..43950fdf205b --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PartnerDestinationUpdateParameters.json.cs @@ -0,0 +1,107 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Extensions; + + /// Properties of the Partner Destination that can be updated. + public partial class PartnerDestinationUpdateParameters + { + + /// + /// AfterFromJson will be called after the json deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JsonNode that should be deserialized into this object. + + partial void AfterFromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json erialization has finished, allowing customization of the before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JSON container that the serialization result will be placed in. + + partial void AfterToJson(ref Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject container); + + /// + /// BeforeFromJson will be called before the json deserialization has commenced, allowing complete customization of + /// the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JsonNode that should be deserialized into this object. + /// Determines if the rest of the deserialization should be processed, or if the method should return + /// instantly. + + partial void BeforeFromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject json, ref bool returnNow); + + /// + /// BeforeToJson will be called before the json serialization has commenced, allowing complete customization of the + /// object before it is serialized. + /// If you wish to disable the default serialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JSON container that the serialization result will be placed in. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeToJson(ref Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerDestinationUpdateParameters. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerDestinationUpdateParameters. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerDestinationUpdateParameters FromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject json ? new PartnerDestinationUpdateParameters(json) : null; + } + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject instance to deserialize from. + internal PartnerDestinationUpdateParameters(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject json) + { + bool returnNow = false; + BeforeFromJson(json, ref returnNow); + if (returnNow) + { + return; + } + {_tag = If( json?.PropertyT("tags"), out var __jsonTags) ? Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.PartnerDestinationUpdateParametersTags.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.EventGrid.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject(); + + bool returnNow = false; + BeforeToJson(ref container, ref returnNow); + if (returnNow) + { + return container; + } + AddIf( null != this._tag ? (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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/eventgrid/generated/api/Models/Api20211015Preview/PartnerDestinationUpdateParametersTags.PowerShell.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PartnerDestinationUpdateParametersTags.PowerShell.cs new file mode 100644 index 000000000000..091198bc8d22 --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PartnerDestinationUpdateParametersTags.PowerShell.cs @@ -0,0 +1,143 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell; + + /// Tags of the Partner Destination resource. + [System.ComponentModel.TypeConverter(typeof(PartnerDestinationUpdateParametersTagsTypeConverter))] + public partial class PartnerDestinationUpdateParametersTags + { + + /// + /// AfterDeserializeDictionary will be called after the deserialization has finished, allowing customization of the + /// object before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Collections.IDictionary content that should be used. + + partial void AfterDeserializeDictionary(global::System.Collections.IDictionary content); + + /// + /// AfterDeserializePSObject will be called after the deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Management.Automation.PSObject content that should be used. + + partial void AfterDeserializePSObject(global::System.Management.Automation.PSObject content); + + /// + /// BeforeDeserializeDictionary will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Collections.IDictionary content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializeDictionary(global::System.Collections.IDictionary content, ref bool returnNow); + + /// + /// BeforeDeserializePSObject will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializePSObject(global::System.Management.Automation.PSObject content, ref bool returnNow); + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerDestinationUpdateParametersTags DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new PartnerDestinationUpdateParametersTags(content); + } + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerDestinationUpdateParametersTags DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new PartnerDestinationUpdateParametersTags(content); + } + + /// + /// Creates a new instance of , deserializing the content from a json + /// string. + /// + /// a string containing a JSON serialized instance of this model. + /// + /// an instance of the model class. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerDestinationUpdateParametersTags FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode.Parse(jsonText)); + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + internal PartnerDestinationUpdateParametersTags(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 PartnerDestinationUpdateParametersTags(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.EventGrid.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// Tags of the Partner Destination resource. + [System.ComponentModel.TypeConverter(typeof(PartnerDestinationUpdateParametersTagsTypeConverter))] + public partial interface IPartnerDestinationUpdateParametersTags + + { + + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PartnerDestinationUpdateParametersTags.TypeConverter.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PartnerDestinationUpdateParametersTags.TypeConverter.cs new file mode 100644 index 000000000000..116523663cd7 --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PartnerDestinationUpdateParametersTags.TypeConverter.cs @@ -0,0 +1,150 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class PartnerDestinationUpdateParametersTagsTypeConverter : global::System.Management.Automation.PSTypeConverter + { + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false. + /// + public override bool CanConvertFrom(object sourceValue, global::System.Type destinationType) => CanConvertFrom(sourceValue); + + /// + /// Determines if the converter can convert the parameter to the . + /// + /// the instance to check if it can be converted to the type. + /// + /// true if the instance could be converted to a type, otherwise + /// false + /// + public static bool CanConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return true; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + // we say yest to PSObjects + return true; + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + // we say yest to Hashtables/dictionaries + return true; + } + try + { + if (null != sourceValue.ToJsonString()) + { + return true; + } + } + catch + { + // Not one of our objects + } + try + { + string text = sourceValue.ToString()?.Trim(); + return true == text?.StartsWith("{") && true == text?.EndsWith("}") && Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonType.Object; + } + catch + { + // Doesn't look like it can be treated as JSON + } + return false; + } + + /// + /// Determines if the parameter can be converted to the parameter + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false + /// + public override bool CanConvertTo(object sourceValue, global::System.Type destinationType) => false; + + /// + /// Converts the parameter to the parameter using and + /// + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// + /// an instance of , or null if there is no suitable conversion. + /// + public override object ConvertFrom(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => ConvertFrom(sourceValue); + + /// + /// Converts the parameter to the parameter using and + /// + /// the value to convert into an instance of . + /// + /// an instance of , or null if there is no suitable conversion. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerDestinationUpdateParametersTags ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerDestinationUpdateParametersTags).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return PartnerDestinationUpdateParametersTags.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return PartnerDestinationUpdateParametersTags.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return PartnerDestinationUpdateParametersTags.DeserializeFromDictionary(sourceValue); + } + return null; + } + + /// NotImplemented -- this will return null + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// will always return null. + public override object ConvertTo(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => null; + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PartnerDestinationUpdateParametersTags.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PartnerDestinationUpdateParametersTags.cs new file mode 100644 index 000000000000..069b5a2d9af6 --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PartnerDestinationUpdateParametersTags.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.EventGrid.Models.Api20211015Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Extensions; + + /// Tags of the Partner Destination resource. + public partial class PartnerDestinationUpdateParametersTags : + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerDestinationUpdateParametersTags, + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerDestinationUpdateParametersTagsInternal + { + + /// Creates an new instance. + public PartnerDestinationUpdateParametersTags() + { + + } + } + /// Tags of the Partner Destination resource. + public partial interface IPartnerDestinationUpdateParametersTags : + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IJsonSerializable, + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IAssociativeArray + { + + } + /// Tags of the Partner Destination resource. + internal partial interface IPartnerDestinationUpdateParametersTagsInternal + + { + + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PartnerDestinationUpdateParametersTags.dictionary.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PartnerDestinationUpdateParametersTags.dictionary.cs new file mode 100644 index 000000000000..a9cfb8e1a442 --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PartnerDestinationUpdateParametersTags.dictionary.cs @@ -0,0 +1,75 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Extensions; + + public partial class PartnerDestinationUpdateParametersTags : + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IAssociativeArray + { + protected global::System.Collections.Generic.Dictionary __additionalProperties = new global::System.Collections.Generic.Dictionary(); + + global::System.Collections.Generic.IDictionary Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IAssociativeArray.AdditionalProperties { get => __additionalProperties; } + + int Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IAssociativeArray.Count { get => __additionalProperties.Count; } + + global::System.Collections.Generic.IEnumerable Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IAssociativeArray.Keys { get => __additionalProperties.Keys; } + + global::System.Collections.Generic.IEnumerable Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.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.EventGrid.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.EventGrid.Models.Api20211015Preview.PartnerDestinationUpdateParametersTags source) => source.__additionalProperties; + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PartnerDestinationUpdateParametersTags.json.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PartnerDestinationUpdateParametersTags.json.cs new file mode 100644 index 000000000000..1c013d0791bc --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PartnerDestinationUpdateParametersTags.json.cs @@ -0,0 +1,108 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Extensions; + + /// Tags of the Partner Destination resource. + public partial class PartnerDestinationUpdateParametersTags + { + + /// + /// AfterFromJson will be called after the json deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JsonNode that should be deserialized into this object. + + partial void AfterFromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json erialization has finished, allowing customization of the before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JSON container that the serialization result will be placed in. + + partial void AfterToJson(ref Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject container); + + /// + /// BeforeFromJson will be called before the json deserialization has commenced, allowing complete customization of + /// the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JsonNode that should be deserialized into this object. + /// Determines if the rest of the deserialization should be processed, or if the method should return + /// instantly. + + partial void BeforeFromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject json, ref bool returnNow); + + /// + /// BeforeToJson will be called before the json serialization has commenced, allowing complete customization of the + /// object before it is serialized. + /// If you wish to disable the default serialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JSON container that the serialization result will be placed in. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeToJson(ref Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerDestinationUpdateParametersTags. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerDestinationUpdateParametersTags. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerDestinationUpdateParametersTags FromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject json ? new PartnerDestinationUpdateParametersTags(json) : null; + } + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject instance to deserialize from. + /// + internal PartnerDestinationUpdateParametersTags(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Runtime.JsonSerializable.FromJson( json, ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject(); + + bool returnNow = false; + BeforeToJson(ref container, ref returnNow); + if (returnNow) + { + return container; + } + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.JsonSerializable.ToJson( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IAssociativeArray)this).AdditionalProperties, container); + AfterToJson(ref container); + return container; + } + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PartnerDestinationsListResult.PowerShell.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PartnerDestinationsListResult.PowerShell.cs new file mode 100644 index 000000000000..f7d2fddeae5f --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PartnerDestinationsListResult.PowerShell.cs @@ -0,0 +1,152 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell; + + /// Result of the List Partner Destinations operation. + [System.ComponentModel.TypeConverter(typeof(PartnerDestinationsListResultTypeConverter))] + public partial class PartnerDestinationsListResult + { + + /// + /// AfterDeserializeDictionary will be called after the deserialization has finished, allowing customization of the + /// object before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Collections.IDictionary content that should be used. + + partial void AfterDeserializeDictionary(global::System.Collections.IDictionary content); + + /// + /// AfterDeserializePSObject will be called after the deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Management.Automation.PSObject content that should be used. + + partial void AfterDeserializePSObject(global::System.Management.Automation.PSObject content); + + /// + /// BeforeDeserializeDictionary will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Collections.IDictionary content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializeDictionary(global::System.Collections.IDictionary content, ref bool returnNow); + + /// + /// BeforeDeserializePSObject will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializePSObject(global::System.Management.Automation.PSObject content, ref bool returnNow); + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerDestinationsListResult DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new PartnerDestinationsListResult(content); + } + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerDestinationsListResult DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new PartnerDestinationsListResult(content); + } + + /// + /// Creates a new instance of , deserializing the content from a json string. + /// + /// a string containing a JSON serialized instance of this model. + /// an instance of the model class. + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerDestinationsListResult FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode.Parse(jsonText)); + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + internal PartnerDestinationsListResult(global::System.Collections.IDictionary content) + { + bool returnNow = false; + BeforeDeserializeDictionary(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("Value")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerDestinationsListResultInternal)this).Value = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerDestination[]) content.GetValueForProperty("Value",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerDestinationsListResultInternal)this).Value, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.PartnerDestinationTypeConverter.ConvertFrom)); + } + if (content.Contains("NextLink")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerDestinationsListResultInternal)this).NextLink = (string) content.GetValueForProperty("NextLink",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerDestinationsListResultInternal)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 PartnerDestinationsListResult(global::System.Management.Automation.PSObject content) + { + bool returnNow = false; + BeforeDeserializePSObject(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("Value")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerDestinationsListResultInternal)this).Value = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerDestination[]) content.GetValueForProperty("Value",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerDestinationsListResultInternal)this).Value, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.PartnerDestinationTypeConverter.ConvertFrom)); + } + if (content.Contains("NextLink")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerDestinationsListResultInternal)this).NextLink = (string) content.GetValueForProperty("NextLink",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerDestinationsListResultInternal)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.EventGrid.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// Result of the List Partner Destinations operation. + [System.ComponentModel.TypeConverter(typeof(PartnerDestinationsListResultTypeConverter))] + public partial interface IPartnerDestinationsListResult + + { + + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PartnerDestinationsListResult.TypeConverter.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PartnerDestinationsListResult.TypeConverter.cs new file mode 100644 index 000000000000..736fddd2d5cb --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PartnerDestinationsListResult.TypeConverter.cs @@ -0,0 +1,147 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class PartnerDestinationsListResultTypeConverter : global::System.Management.Automation.PSTypeConverter + { + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false. + /// + public override bool CanConvertFrom(object sourceValue, global::System.Type destinationType) => CanConvertFrom(sourceValue); + + /// + /// Determines if the converter can convert the parameter to the . + /// + /// the instance to check if it can be converted to the type. + /// + /// true if the instance could be converted to a type, otherwise false + /// + public static bool CanConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return true; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + // we say yest to PSObjects + return true; + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + // we say yest to Hashtables/dictionaries + return true; + } + try + { + if (null != sourceValue.ToJsonString()) + { + return true; + } + } + catch + { + // Not one of our objects + } + try + { + string text = sourceValue.ToString()?.Trim(); + return true == text?.StartsWith("{") && true == text?.EndsWith("}") && Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonType.Object; + } + catch + { + // Doesn't look like it can be treated as JSON + } + return false; + } + + /// + /// Determines if the parameter can be converted to the parameter + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false + /// + public override bool CanConvertTo(object sourceValue, global::System.Type destinationType) => false; + + /// + /// Converts the parameter to the parameter using and + /// + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// + /// an instance of , or null if there is no suitable conversion. + /// + public override object ConvertFrom(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => ConvertFrom(sourceValue); + + /// + /// Converts the parameter to the parameter using and + /// + /// the value to convert into an instance of . + /// + /// an instance of , or null if there is no suitable conversion. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerDestinationsListResult ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerDestinationsListResult).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return PartnerDestinationsListResult.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return PartnerDestinationsListResult.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return PartnerDestinationsListResult.DeserializeFromDictionary(sourceValue); + } + return null; + } + + /// NotImplemented -- this will return null + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// will always return null. + public override object ConvertTo(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => null; + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PartnerDestinationsListResult.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PartnerDestinationsListResult.cs new file mode 100644 index 000000000000..f0bd396d4a2a --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PartnerDestinationsListResult.cs @@ -0,0 +1,68 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Extensions; + + /// Result of the List Partner Destinations operation. + public partial class PartnerDestinationsListResult : + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerDestinationsListResult, + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerDestinationsListResultInternal + { + + /// Backing field for property. + private string _nextLink; + + /// A link for the next page of partner destinations. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Owned)] + public string NextLink { get => this._nextLink; set => this._nextLink = value; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerDestination[] _value; + + /// A collection of partner destinations. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Owned)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerDestination[] Value { get => this._value; set => this._value = value; } + + /// Creates an new instance. + public PartnerDestinationsListResult() + { + + } + } + /// Result of the List Partner Destinations operation. + public partial interface IPartnerDestinationsListResult : + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IJsonSerializable + { + /// A link for the next page of partner destinations. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"A link for the next page of partner destinations.", + SerializedName = @"nextLink", + PossibleTypes = new [] { typeof(string) })] + string NextLink { get; set; } + /// A collection of partner destinations. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"A collection of partner destinations.", + SerializedName = @"value", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerDestination) })] + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerDestination[] Value { get; set; } + + } + /// Result of the List Partner Destinations operation. + internal partial interface IPartnerDestinationsListResultInternal + + { + /// A link for the next page of partner destinations. + string NextLink { get; set; } + /// A collection of partner destinations. + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerDestination[] Value { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PartnerDestinationsListResult.json.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PartnerDestinationsListResult.json.cs new file mode 100644 index 000000000000..04bbdda565bf --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PartnerDestinationsListResult.json.cs @@ -0,0 +1,116 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Extensions; + + /// Result of the List Partner Destinations operation. + public partial class PartnerDestinationsListResult + { + + /// + /// AfterFromJson will be called after the json deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JsonNode that should be deserialized into this object. + + partial void AfterFromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json erialization has finished, allowing customization of the before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JSON container that the serialization result will be placed in. + + partial void AfterToJson(ref Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject container); + + /// + /// BeforeFromJson will be called before the json deserialization has commenced, allowing complete customization of + /// the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JsonNode that should be deserialized into this object. + /// Determines if the rest of the deserialization should be processed, or if the method should return + /// instantly. + + partial void BeforeFromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject json, ref bool returnNow); + + /// + /// BeforeToJson will be called before the json serialization has commenced, allowing complete customization of the + /// object before it is serialized. + /// If you wish to disable the default serialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JSON container that the serialization result will be placed in. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeToJson(ref Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerDestinationsListResult. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerDestinationsListResult. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerDestinationsListResult FromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject json ? new PartnerDestinationsListResult(json) : null; + } + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject instance to deserialize from. + internal PartnerDestinationsListResult(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.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.EventGrid.Models.Api20211015Preview.IPartnerDestination) (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.PartnerDestination.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.EventGrid.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Runtime.Json.XNodeArray(); + foreach( var __x in this._value ) + { + AddIf(__x?.ToJson(null, serializationMode) ,__w.Add); + } + container.Add("value",__w); + } + AddIf( null != (((object)this._nextLink)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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/eventgrid/generated/api/Models/Api20211015Preview/PartnerDetails.PowerShell.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PartnerDetails.PowerShell.cs new file mode 100644 index 000000000000..3b86960d046a --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PartnerDetails.PowerShell.cs @@ -0,0 +1,158 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell; + + /// Information about the partner. + [System.ComponentModel.TypeConverter(typeof(PartnerDetailsTypeConverter))] + public partial class PartnerDetails + { + + /// + /// AfterDeserializeDictionary will be called after the deserialization has finished, allowing customization of the + /// object before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Collections.IDictionary content that should be used. + + partial void AfterDeserializeDictionary(global::System.Collections.IDictionary content); + + /// + /// AfterDeserializePSObject will be called after the deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Management.Automation.PSObject content that should be used. + + partial void AfterDeserializePSObject(global::System.Management.Automation.PSObject content); + + /// + /// BeforeDeserializeDictionary will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Collections.IDictionary content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializeDictionary(global::System.Collections.IDictionary content, ref bool returnNow); + + /// + /// BeforeDeserializePSObject will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializePSObject(global::System.Management.Automation.PSObject content, ref bool returnNow); + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerDetails DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new PartnerDetails(content); + } + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerDetails DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new PartnerDetails(content); + } + + /// + /// Creates a new instance of , deserializing the content from a json string. + /// + /// a string containing a JSON serialized instance of this model. + /// an instance of the model class. + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerDetails FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode.Parse(jsonText)); + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + internal PartnerDetails(global::System.Collections.IDictionary content) + { + bool returnNow = false; + BeforeDeserializeDictionary(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("Description")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerDetailsInternal)this).Description = (string) content.GetValueForProperty("Description",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerDetailsInternal)this).Description, global::System.Convert.ToString); + } + if (content.Contains("LongDescription")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerDetailsInternal)this).LongDescription = (string) content.GetValueForProperty("LongDescription",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerDetailsInternal)this).LongDescription, global::System.Convert.ToString); + } + if (content.Contains("SetupUri")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerDetailsInternal)this).SetupUri = (string) content.GetValueForProperty("SetupUri",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerDetailsInternal)this).SetupUri, global::System.Convert.ToString); + } + AfterDeserializeDictionary(content); + } + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + internal PartnerDetails(global::System.Management.Automation.PSObject content) + { + bool returnNow = false; + BeforeDeserializePSObject(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("Description")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerDetailsInternal)this).Description = (string) content.GetValueForProperty("Description",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerDetailsInternal)this).Description, global::System.Convert.ToString); + } + if (content.Contains("LongDescription")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerDetailsInternal)this).LongDescription = (string) content.GetValueForProperty("LongDescription",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerDetailsInternal)this).LongDescription, global::System.Convert.ToString); + } + if (content.Contains("SetupUri")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerDetailsInternal)this).SetupUri = (string) content.GetValueForProperty("SetupUri",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerDetailsInternal)this).SetupUri, 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.EventGrid.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// Information about the partner. + [System.ComponentModel.TypeConverter(typeof(PartnerDetailsTypeConverter))] + public partial interface IPartnerDetails + + { + + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PartnerDetails.TypeConverter.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PartnerDetails.TypeConverter.cs new file mode 100644 index 000000000000..338fe3e164a0 --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PartnerDetails.TypeConverter.cs @@ -0,0 +1,146 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class PartnerDetailsTypeConverter : global::System.Management.Automation.PSTypeConverter + { + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false. + /// + public override bool CanConvertFrom(object sourceValue, global::System.Type destinationType) => CanConvertFrom(sourceValue); + + /// + /// Determines if the converter can convert the parameter to the . + /// + /// the instance to check if it can be converted to the type. + /// + /// true if the instance could be converted to a type, otherwise false + /// + public static bool CanConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return true; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + // we say yest to PSObjects + return true; + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + // we say yest to Hashtables/dictionaries + return true; + } + try + { + if (null != sourceValue.ToJsonString()) + { + return true; + } + } + catch + { + // Not one of our objects + } + try + { + string text = sourceValue.ToString()?.Trim(); + return true == text?.StartsWith("{") && true == text?.EndsWith("}") && Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonType.Object; + } + catch + { + // Doesn't look like it can be treated as JSON + } + return false; + } + + /// + /// Determines if the parameter can be converted to the parameter + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false + /// + public override bool CanConvertTo(object sourceValue, global::System.Type destinationType) => false; + + /// + /// Converts the parameter to the parameter using and + /// + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// + /// an instance of , or null if there is no suitable conversion. + /// + public override object ConvertFrom(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => ConvertFrom(sourceValue); + + /// + /// Converts the parameter to the parameter using and + /// + /// the value to convert into an instance of . + /// + /// an instance of , or null if there is no suitable conversion. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerDetails ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerDetails).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return PartnerDetails.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return PartnerDetails.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return PartnerDetails.DeserializeFromDictionary(sourceValue); + } + return null; + } + + /// NotImplemented -- this will return null + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// will always return null. + public override object ConvertTo(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => null; + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PartnerDetails.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PartnerDetails.cs new file mode 100644 index 000000000000..e9a9875ac054 --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PartnerDetails.cs @@ -0,0 +1,107 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Extensions; + + /// Information about the partner. + public partial class PartnerDetails : + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerDetails, + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerDetailsInternal + { + + /// Backing field for property. + private string _description; + + /// + /// This is short description about the partner. The length of this description should not exceed 256 characters. + /// + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Owned)] + public string Description { get => this._description; set => this._description = value; } + + /// Backing field for property. + private string _longDescription; + + /// + /// Long description for the partner's scenarios and integration.Length of this description should not exceed 2048 characters. + /// + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Owned)] + public string LongDescription { get => this._longDescription; set => this._longDescription = value; } + + /// Backing field for property. + private string _setupUri; + + /// + /// URI of the partner website that can be used by Azure customers to setup Event Grid + /// integration on an event source. + /// + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Owned)] + public string SetupUri { get => this._setupUri; set => this._setupUri = value; } + + /// Creates an new instance. + public PartnerDetails() + { + + } + } + /// Information about the partner. + public partial interface IPartnerDetails : + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IJsonSerializable + { + /// + /// This is short description about the partner. The length of this description should not exceed 256 characters. + /// + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"This is short description about the partner. The length of this description should not exceed 256 characters.", + SerializedName = @"description", + PossibleTypes = new [] { typeof(string) })] + string Description { get; set; } + /// + /// Long description for the partner's scenarios and integration.Length of this description should not exceed 2048 characters. + /// + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Long description for the partner's scenarios and integration.Length of this description should not exceed 2048 characters.", + SerializedName = @"longDescription", + PossibleTypes = new [] { typeof(string) })] + string LongDescription { get; set; } + /// + /// URI of the partner website that can be used by Azure customers to setup Event Grid + /// integration on an event source. + /// + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"URI of the partner website that can be used by Azure customers to setup Event Grid + integration on an event source.", + SerializedName = @"setupUri", + PossibleTypes = new [] { typeof(string) })] + string SetupUri { get; set; } + + } + /// Information about the partner. + internal partial interface IPartnerDetailsInternal + + { + /// + /// This is short description about the partner. The length of this description should not exceed 256 characters. + /// + string Description { get; set; } + /// + /// Long description for the partner's scenarios and integration.Length of this description should not exceed 2048 characters. + /// + string LongDescription { get; set; } + /// + /// URI of the partner website that can be used by Azure customers to setup Event Grid + /// integration on an event source. + /// + string SetupUri { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PartnerDetails.json.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PartnerDetails.json.cs new file mode 100644 index 000000000000..480d241b23c3 --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PartnerDetails.json.cs @@ -0,0 +1,110 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Extensions; + + /// Information about the partner. + public partial class PartnerDetails + { + + /// + /// AfterFromJson will be called after the json deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JsonNode that should be deserialized into this object. + + partial void AfterFromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json erialization has finished, allowing customization of the before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JSON container that the serialization result will be placed in. + + partial void AfterToJson(ref Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject container); + + /// + /// BeforeFromJson will be called before the json deserialization has commenced, allowing complete customization of + /// the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JsonNode that should be deserialized into this object. + /// Determines if the rest of the deserialization should be processed, or if the method should return + /// instantly. + + partial void BeforeFromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject json, ref bool returnNow); + + /// + /// BeforeToJson will be called before the json serialization has commenced, allowing complete customization of the + /// object before it is serialized. + /// If you wish to disable the default serialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JSON container that the serialization result will be placed in. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeToJson(ref Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerDetails. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerDetails. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerDetails FromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject json ? new PartnerDetails(json) : null; + } + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject instance to deserialize from. + internal PartnerDetails(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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;} + {_longDescription = If( json?.PropertyT("longDescription"), out var __jsonLongDescription) ? (string)__jsonLongDescription : (string)LongDescription;} + {_setupUri = If( json?.PropertyT("setupUri"), out var __jsonSetupUri) ? (string)__jsonSetupUri : (string)SetupUri;} + AfterFromJson(json); + } + + /// + /// Serializes this instance of into a . + /// + /// The container to serialize this object into. If the caller + /// passes in null, a new instance will be created and returned to the caller. + /// Allows the caller to choose the depth of the serialization. See . + /// + /// a serialized instance of as a . + /// + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonString(this._description.ToString()) : null, "description" ,container.Add ); + AddIf( null != (((object)this._longDescription)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonString(this._longDescription.ToString()) : null, "longDescription" ,container.Add ); + AddIf( null != (((object)this._setupUri)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonString(this._setupUri.ToString()) : null, "setupUri" ,container.Add ); + AfterToJson(ref container); + return container; + } + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PartnerEventSubscriptionDestination.PowerShell.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PartnerEventSubscriptionDestination.PowerShell.cs new file mode 100644 index 000000000000..4c798e85c116 --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PartnerEventSubscriptionDestination.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.EventGrid.Models.Api20211015Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell; + + [System.ComponentModel.TypeConverter(typeof(PartnerEventSubscriptionDestinationTypeConverter))] + public partial class PartnerEventSubscriptionDestination + { + + /// + /// AfterDeserializeDictionary will be called after the deserialization has finished, allowing customization of the + /// object before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Collections.IDictionary content that should be used. + + partial void AfterDeserializeDictionary(global::System.Collections.IDictionary content); + + /// + /// AfterDeserializePSObject will be called after the deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Management.Automation.PSObject content that should be used. + + partial void AfterDeserializePSObject(global::System.Management.Automation.PSObject content); + + /// + /// BeforeDeserializeDictionary will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Collections.IDictionary content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializeDictionary(global::System.Collections.IDictionary content, ref bool returnNow); + + /// + /// BeforeDeserializePSObject will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializePSObject(global::System.Management.Automation.PSObject content, ref bool returnNow); + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerEventSubscriptionDestination DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new PartnerEventSubscriptionDestination(content); + } + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerEventSubscriptionDestination DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new PartnerEventSubscriptionDestination(content); + } + + /// + /// Creates a new instance of , deserializing the content from a json string. + /// + /// a string containing a JSON serialized instance of this model. + /// + /// an instance of the model class. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerEventSubscriptionDestination FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode.Parse(jsonText)); + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + internal PartnerEventSubscriptionDestination(global::System.Collections.IDictionary content) + { + bool returnNow = false; + BeforeDeserializeDictionary(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("Property")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerEventSubscriptionDestinationInternal)this).Property = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerEventSubscriptionDestinationProperties) content.GetValueForProperty("Property",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerEventSubscriptionDestinationInternal)this).Property, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.PartnerEventSubscriptionDestinationPropertiesTypeConverter.ConvertFrom); + } + if (content.Contains("EndpointType")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionDestinationInternal)this).EndpointType = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EndpointType) content.GetValueForProperty("EndpointType",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionDestinationInternal)this).EndpointType, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EndpointType.CreateFrom); + } + if (content.Contains("ResourceId")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerEventSubscriptionDestinationInternal)this).ResourceId = (string) content.GetValueForProperty("ResourceId",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerEventSubscriptionDestinationInternal)this).ResourceId, global::System.Convert.ToString); + } + AfterDeserializeDictionary(content); + } + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + internal PartnerEventSubscriptionDestination(global::System.Management.Automation.PSObject content) + { + bool returnNow = false; + BeforeDeserializePSObject(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("Property")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerEventSubscriptionDestinationInternal)this).Property = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerEventSubscriptionDestinationProperties) content.GetValueForProperty("Property",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerEventSubscriptionDestinationInternal)this).Property, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.PartnerEventSubscriptionDestinationPropertiesTypeConverter.ConvertFrom); + } + if (content.Contains("EndpointType")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionDestinationInternal)this).EndpointType = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EndpointType) content.GetValueForProperty("EndpointType",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionDestinationInternal)this).EndpointType, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EndpointType.CreateFrom); + } + if (content.Contains("ResourceId")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerEventSubscriptionDestinationInternal)this).ResourceId = (string) content.GetValueForProperty("ResourceId",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerEventSubscriptionDestinationInternal)this).ResourceId, 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.EventGrid.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + [System.ComponentModel.TypeConverter(typeof(PartnerEventSubscriptionDestinationTypeConverter))] + public partial interface IPartnerEventSubscriptionDestination + + { + + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PartnerEventSubscriptionDestination.TypeConverter.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PartnerEventSubscriptionDestination.TypeConverter.cs new file mode 100644 index 000000000000..4179a8c42cb5 --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PartnerEventSubscriptionDestination.TypeConverter.cs @@ -0,0 +1,148 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class PartnerEventSubscriptionDestinationTypeConverter : global::System.Management.Automation.PSTypeConverter + { + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false. + /// + public override bool CanConvertFrom(object sourceValue, global::System.Type destinationType) => CanConvertFrom(sourceValue); + + /// + /// Determines if the converter can convert the parameter to the . + /// + /// the instance to check if it can be converted to the type. + /// + /// true if the instance could be converted to a type, otherwise + /// false + /// + public static bool CanConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return true; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + // we say yest to PSObjects + return true; + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + // we say yest to Hashtables/dictionaries + return true; + } + try + { + if (null != sourceValue.ToJsonString()) + { + return true; + } + } + catch + { + // Not one of our objects + } + try + { + string text = sourceValue.ToString()?.Trim(); + return true == text?.StartsWith("{") && true == text?.EndsWith("}") && Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonType.Object; + } + catch + { + // Doesn't look like it can be treated as JSON + } + return false; + } + + /// + /// Determines if the parameter can be converted to the parameter + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false + /// + public override bool CanConvertTo(object sourceValue, global::System.Type destinationType) => false; + + /// + /// Converts the parameter to the parameter using and + /// + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// + /// an instance of , or null if there is no suitable conversion. + /// + public override object ConvertFrom(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => ConvertFrom(sourceValue); + + /// + /// Converts the parameter to the parameter using and + /// + /// the value to convert into an instance of . + /// + /// an instance of , or null if there is no suitable conversion. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerEventSubscriptionDestination ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerEventSubscriptionDestination).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return PartnerEventSubscriptionDestination.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return PartnerEventSubscriptionDestination.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return PartnerEventSubscriptionDestination.DeserializeFromDictionary(sourceValue); + } + return null; + } + + /// NotImplemented -- this will return null + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// will always return null. + public override object ConvertTo(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => null; + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PartnerEventSubscriptionDestination.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PartnerEventSubscriptionDestination.cs new file mode 100644 index 000000000000..8fb2c1786ef9 --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PartnerEventSubscriptionDestination.cs @@ -0,0 +1,86 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Extensions; + + public partial class PartnerEventSubscriptionDestination : + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerEventSubscriptionDestination, + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerEventSubscriptionDestinationInternal, + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IValidates + { + /// + /// Backing field for Inherited model + /// + private Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionDestination __eventSubscriptionDestination = new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.EventSubscriptionDestination(); + + /// Type of the endpoint for the event subscription destination. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Inherited)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EndpointType EndpointType { get => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionDestinationInternal)__eventSubscriptionDestination).EndpointType; set => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionDestinationInternal)__eventSubscriptionDestination).EndpointType = value ; } + + /// Internal Acessors for Property + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerEventSubscriptionDestinationProperties Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerEventSubscriptionDestinationInternal.Property { get => (this._property = this._property ?? new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.PartnerEventSubscriptionDestinationProperties()); set { {_property = value;} } } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerEventSubscriptionDestinationProperties _property; + + /// Partner Destination Properties of the event subscription destination. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Owned)] + internal Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerEventSubscriptionDestinationProperties Property { get => (this._property = this._property ?? new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.PartnerEventSubscriptionDestinationProperties()); set => this._property = value; } + + /// + /// The Azure Resource Id that represents the endpoint of a Partner Destination of an event subscription. + /// + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Inlined)] + public string ResourceId { get => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerEventSubscriptionDestinationPropertiesInternal)Property).ResourceId; set => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerEventSubscriptionDestinationPropertiesInternal)Property).ResourceId = value ?? null; } + + /// Creates an new instance. + public PartnerEventSubscriptionDestination() + { + + } + + /// Validates that this object meets the validation criteria. + /// an instance that will receive validation + /// events. + /// + /// A that will be complete when validation is completed. + /// + public async global::System.Threading.Tasks.Task Validate(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener eventListener) + { + await eventListener.AssertNotNull(nameof(__eventSubscriptionDestination), __eventSubscriptionDestination); + await eventListener.AssertObjectIsValid(nameof(__eventSubscriptionDestination), __eventSubscriptionDestination); + } + } + public partial interface IPartnerEventSubscriptionDestination : + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IJsonSerializable, + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionDestination + { + /// + /// The Azure Resource Id that represents the endpoint of a Partner Destination of an event subscription. + /// + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The Azure Resource Id that represents the endpoint of a Partner Destination of an event subscription.", + SerializedName = @"resourceId", + PossibleTypes = new [] { typeof(string) })] + string ResourceId { get; set; } + + } + internal partial interface IPartnerEventSubscriptionDestinationInternal : + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionDestinationInternal + { + /// Partner Destination Properties of the event subscription destination. + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerEventSubscriptionDestinationProperties Property { get; set; } + /// + /// The Azure Resource Id that represents the endpoint of a Partner Destination of an event subscription. + /// + string ResourceId { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PartnerEventSubscriptionDestination.json.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PartnerEventSubscriptionDestination.json.cs new file mode 100644 index 000000000000..1ce86bb8a482 --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PartnerEventSubscriptionDestination.json.cs @@ -0,0 +1,108 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Extensions; + + public partial class PartnerEventSubscriptionDestination + { + + /// + /// AfterFromJson will be called after the json deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JsonNode that should be deserialized into this object. + + partial void AfterFromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json erialization has finished, allowing customization of the before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JSON container that the serialization result will be placed in. + + partial void AfterToJson(ref Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject container); + + /// + /// BeforeFromJson will be called before the json deserialization has commenced, allowing complete customization of + /// the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JsonNode that should be deserialized into this object. + /// Determines if the rest of the deserialization should be processed, or if the method should return + /// instantly. + + partial void BeforeFromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject json, ref bool returnNow); + + /// + /// BeforeToJson will be called before the json serialization has commenced, allowing complete customization of the + /// object before it is serialized. + /// If you wish to disable the default serialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JSON container that the serialization result will be placed in. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeToJson(ref Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerEventSubscriptionDestination. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerEventSubscriptionDestination. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerEventSubscriptionDestination FromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject json ? new PartnerEventSubscriptionDestination(json) : null; + } + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject instance to deserialize from. + internal PartnerEventSubscriptionDestination(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject json) + { + bool returnNow = false; + BeforeFromJson(json, ref returnNow); + if (returnNow) + { + return; + } + __eventSubscriptionDestination = new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.EventSubscriptionDestination(json); + {_property = If( json?.PropertyT("properties"), out var __jsonProperties) ? Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.PartnerEventSubscriptionDestinationProperties.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.EventGrid.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject(); + + bool returnNow = false; + BeforeToJson(ref container, ref returnNow); + if (returnNow) + { + return container; + } + __eventSubscriptionDestination?.ToJson(container, serializationMode); + AddIf( null != this._property ? (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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/eventgrid/generated/api/Models/Api20211015Preview/PartnerEventSubscriptionDestinationProperties.PowerShell.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PartnerEventSubscriptionDestinationProperties.PowerShell.cs new file mode 100644 index 000000000000..70db32f2290c --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PartnerEventSubscriptionDestinationProperties.PowerShell.cs @@ -0,0 +1,145 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell; + + [System.ComponentModel.TypeConverter(typeof(PartnerEventSubscriptionDestinationPropertiesTypeConverter))] + public partial class PartnerEventSubscriptionDestinationProperties + { + + /// + /// AfterDeserializeDictionary will be called after the deserialization has finished, allowing customization of the + /// object before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Collections.IDictionary content that should be used. + + partial void AfterDeserializeDictionary(global::System.Collections.IDictionary content); + + /// + /// AfterDeserializePSObject will be called after the deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Management.Automation.PSObject content that should be used. + + partial void AfterDeserializePSObject(global::System.Management.Automation.PSObject content); + + /// + /// BeforeDeserializeDictionary will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Collections.IDictionary content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializeDictionary(global::System.Collections.IDictionary content, ref bool returnNow); + + /// + /// BeforeDeserializePSObject will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializePSObject(global::System.Management.Automation.PSObject content, ref bool returnNow); + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerEventSubscriptionDestinationProperties DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new PartnerEventSubscriptionDestinationProperties(content); + } + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerEventSubscriptionDestinationProperties DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new PartnerEventSubscriptionDestinationProperties(content); + } + + /// + /// Creates a new instance of , deserializing the content from + /// a json string. + /// + /// a string containing a JSON serialized instance of this model. + /// + /// an instance of the model class. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerEventSubscriptionDestinationProperties FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode.Parse(jsonText)); + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + internal PartnerEventSubscriptionDestinationProperties(global::System.Collections.IDictionary content) + { + bool returnNow = false; + BeforeDeserializeDictionary(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("ResourceId")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerEventSubscriptionDestinationPropertiesInternal)this).ResourceId = (string) content.GetValueForProperty("ResourceId",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerEventSubscriptionDestinationPropertiesInternal)this).ResourceId, global::System.Convert.ToString); + } + AfterDeserializeDictionary(content); + } + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + internal PartnerEventSubscriptionDestinationProperties(global::System.Management.Automation.PSObject content) + { + bool returnNow = false; + BeforeDeserializePSObject(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("ResourceId")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerEventSubscriptionDestinationPropertiesInternal)this).ResourceId = (string) content.GetValueForProperty("ResourceId",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerEventSubscriptionDestinationPropertiesInternal)this).ResourceId, 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.EventGrid.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + [System.ComponentModel.TypeConverter(typeof(PartnerEventSubscriptionDestinationPropertiesTypeConverter))] + public partial interface IPartnerEventSubscriptionDestinationProperties + + { + + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PartnerEventSubscriptionDestinationProperties.TypeConverter.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PartnerEventSubscriptionDestinationProperties.TypeConverter.cs new file mode 100644 index 000000000000..d77ac36125f7 --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PartnerEventSubscriptionDestinationProperties.TypeConverter.cs @@ -0,0 +1,150 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class PartnerEventSubscriptionDestinationPropertiesTypeConverter : global::System.Management.Automation.PSTypeConverter + { + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false. + /// + public override bool CanConvertFrom(object sourceValue, global::System.Type destinationType) => CanConvertFrom(sourceValue); + + /// + /// Determines if the converter can convert the parameter to the . + /// + /// the instance to check if it can be converted to the type. + /// + /// true if the instance could be converted to a type, + /// otherwise false + /// + public static bool CanConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return true; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + // we say yest to PSObjects + return true; + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + // we say yest to Hashtables/dictionaries + return true; + } + try + { + if (null != sourceValue.ToJsonString()) + { + return true; + } + } + catch + { + // Not one of our objects + } + try + { + string text = sourceValue.ToString()?.Trim(); + return true == text?.StartsWith("{") && true == text?.EndsWith("}") && Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonType.Object; + } + catch + { + // Doesn't look like it can be treated as JSON + } + return false; + } + + /// + /// Determines if the parameter can be converted to the parameter + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false + /// + public override bool CanConvertTo(object sourceValue, global::System.Type destinationType) => false; + + /// + /// Converts the parameter to the parameter using and + /// + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// + /// an instance of , or null if there is no suitable conversion. + /// + public override object ConvertFrom(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => ConvertFrom(sourceValue); + + /// + /// Converts the parameter to the parameter using and + /// + /// the value to convert into an instance of . + /// + /// an instance of , or null if there is no suitable conversion. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerEventSubscriptionDestinationProperties ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerEventSubscriptionDestinationProperties).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return PartnerEventSubscriptionDestinationProperties.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return PartnerEventSubscriptionDestinationProperties.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return PartnerEventSubscriptionDestinationProperties.DeserializeFromDictionary(sourceValue); + } + return null; + } + + /// NotImplemented -- this will return null + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// will always return null. + public override object ConvertTo(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => null; + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PartnerEventSubscriptionDestinationProperties.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PartnerEventSubscriptionDestinationProperties.cs new file mode 100644 index 000000000000..c7f379a480e4 --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PartnerEventSubscriptionDestinationProperties.cs @@ -0,0 +1,56 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Extensions; + + public partial class PartnerEventSubscriptionDestinationProperties : + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerEventSubscriptionDestinationProperties, + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerEventSubscriptionDestinationPropertiesInternal + { + + /// Backing field for property. + private string _resourceId; + + /// + /// The Azure Resource Id that represents the endpoint of a Partner Destination of an event subscription. + /// + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Owned)] + public string ResourceId { get => this._resourceId; set => this._resourceId = value; } + + /// + /// Creates an new instance. + /// + public PartnerEventSubscriptionDestinationProperties() + { + + } + } + public partial interface IPartnerEventSubscriptionDestinationProperties : + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IJsonSerializable + { + /// + /// The Azure Resource Id that represents the endpoint of a Partner Destination of an event subscription. + /// + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The Azure Resource Id that represents the endpoint of a Partner Destination of an event subscription.", + SerializedName = @"resourceId", + PossibleTypes = new [] { typeof(string) })] + string ResourceId { get; set; } + + } + internal partial interface IPartnerEventSubscriptionDestinationPropertiesInternal + + { + /// + /// The Azure Resource Id that represents the endpoint of a Partner Destination of an event subscription. + /// + string ResourceId { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PartnerEventSubscriptionDestinationProperties.json.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PartnerEventSubscriptionDestinationProperties.json.cs new file mode 100644 index 000000000000..840b8d191bd3 --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PartnerEventSubscriptionDestinationProperties.json.cs @@ -0,0 +1,108 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Extensions; + + public partial class PartnerEventSubscriptionDestinationProperties + { + + /// + /// AfterFromJson will be called after the json deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JsonNode that should be deserialized into this object. + + partial void AfterFromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json erialization has finished, allowing customization of the before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JSON container that the serialization result will be placed in. + + partial void AfterToJson(ref Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject container); + + /// + /// BeforeFromJson will be called before the json deserialization has commenced, allowing complete customization of + /// the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JsonNode that should be deserialized into this object. + /// Determines if the rest of the deserialization should be processed, or if the method should return + /// instantly. + + partial void BeforeFromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject json, ref bool returnNow); + + /// + /// BeforeToJson will be called before the json serialization has commenced, allowing complete customization of the + /// object before it is serialized. + /// If you wish to disable the default serialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JSON container that the serialization result will be placed in. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeToJson(ref Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerEventSubscriptionDestinationProperties. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerEventSubscriptionDestinationProperties. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerEventSubscriptionDestinationProperties FromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject json ? new PartnerEventSubscriptionDestinationProperties(json) : null; + } + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject instance to deserialize from. + internal PartnerEventSubscriptionDestinationProperties(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject json) + { + bool returnNow = false; + BeforeFromJson(json, ref returnNow); + if (returnNow) + { + return; + } + {_resourceId = If( json?.PropertyT("resourceId"), out var __jsonResourceId) ? (string)__jsonResourceId : (string)ResourceId;} + AfterFromJson(json); + } + + /// + /// Serializes this instance of into a . + /// + /// The container to serialize this object into. If the caller + /// passes in null, a new instance will be created and returned to the caller. + /// Allows the caller to choose the depth of the serialization. See . + /// + /// a serialized instance of as a . + /// + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject(); + + bool returnNow = false; + BeforeToJson(ref container, ref returnNow); + if (returnNow) + { + return container; + } + AddIf( null != (((object)this._resourceId)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonString(this._resourceId.ToString()) : null, "resourceId" ,container.Add ); + AfterToJson(ref container); + return container; + } + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PartnerNamespace.PowerShell.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PartnerNamespace.PowerShell.cs new file mode 100644 index 000000000000..df90a4b2f092 --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PartnerNamespace.PowerShell.cs @@ -0,0 +1,302 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell; + + /// EventGrid Partner Namespace. + [System.ComponentModel.TypeConverter(typeof(PartnerNamespaceTypeConverter))] + public partial class PartnerNamespace + { + + /// + /// AfterDeserializeDictionary will be called after the deserialization has finished, allowing customization of the + /// object before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Collections.IDictionary content that should be used. + + partial void AfterDeserializeDictionary(global::System.Collections.IDictionary content); + + /// + /// AfterDeserializePSObject will be called after the deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Management.Automation.PSObject content that should be used. + + partial void AfterDeserializePSObject(global::System.Management.Automation.PSObject content); + + /// + /// BeforeDeserializeDictionary will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Collections.IDictionary content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializeDictionary(global::System.Collections.IDictionary content, ref bool returnNow); + + /// + /// BeforeDeserializePSObject will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializePSObject(global::System.Management.Automation.PSObject content, ref bool returnNow); + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerNamespace DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new PartnerNamespace(content); + } + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerNamespace DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new PartnerNamespace(content); + } + + /// + /// Creates a new instance of , deserializing the content from a json string. + /// + /// a string containing a JSON serialized instance of this model. + /// an instance of the model class. + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerNamespace FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode.Parse(jsonText)); + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + internal PartnerNamespace(global::System.Collections.IDictionary content) + { + bool returnNow = false; + BeforeDeserializeDictionary(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("Property")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerNamespaceInternal)this).Property = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerNamespaceProperties) content.GetValueForProperty("Property",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerNamespaceInternal)this).Property, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.PartnerNamespacePropertiesTypeConverter.ConvertFrom); + } + if (content.Contains("SystemData")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerNamespaceInternal)this).SystemData = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20.ISystemData) content.GetValueForProperty("SystemData",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerNamespaceInternal)this).SystemData, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20.SystemDataTypeConverter.ConvertFrom); + } + if (content.Contains("Id")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IResourceInternal)this).Id = (string) content.GetValueForProperty("Id",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IResourceInternal)this).Id, global::System.Convert.ToString); + } + if (content.Contains("Name")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IResourceInternal)this).Name = (string) content.GetValueForProperty("Name",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IResourceInternal)this).Name, global::System.Convert.ToString); + } + if (content.Contains("Type")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IResourceInternal)this).Type = (string) content.GetValueForProperty("Type",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IResourceInternal)this).Type, global::System.Convert.ToString); + } + if (content.Contains("Location")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITrackedResourceInternal)this).Location = (string) content.GetValueForProperty("Location",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITrackedResourceInternal)this).Location, global::System.Convert.ToString); + } + if (content.Contains("Tag")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITrackedResourceInternal)this).Tag = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITrackedResourceTags) content.GetValueForProperty("Tag",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITrackedResourceInternal)this).Tag, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.TrackedResourceTagsTypeConverter.ConvertFrom); + } + if (content.Contains("SystemDataCreatedBy")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerNamespaceInternal)this).SystemDataCreatedBy = (string) content.GetValueForProperty("SystemDataCreatedBy",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerNamespaceInternal)this).SystemDataCreatedBy, global::System.Convert.ToString); + } + if (content.Contains("SystemDataCreatedAt")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerNamespaceInternal)this).SystemDataCreatedAt = (global::System.DateTime?) content.GetValueForProperty("SystemDataCreatedAt",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerNamespaceInternal)this).SystemDataCreatedAt, (v) => v is global::System.DateTime _v ? _v : global::System.Xml.XmlConvert.ToDateTime( v.ToString() , global::System.Xml.XmlDateTimeSerializationMode.Unspecified)); + } + if (content.Contains("PrivateEndpointConnection")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerNamespaceInternal)this).PrivateEndpointConnection = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPrivateEndpointConnection[]) content.GetValueForProperty("PrivateEndpointConnection",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerNamespaceInternal)this).PrivateEndpointConnection, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.PrivateEndpointConnectionTypeConverter.ConvertFrom)); + } + if (content.Contains("ProvisioningState")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerNamespaceInternal)this).ProvisioningState = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.PartnerNamespaceProvisioningState?) content.GetValueForProperty("ProvisioningState",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerNamespaceInternal)this).ProvisioningState, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.PartnerNamespaceProvisioningState.CreateFrom); + } + if (content.Contains("PartnerRegistrationFullyQualifiedId")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerNamespaceInternal)this).PartnerRegistrationFullyQualifiedId = (string) content.GetValueForProperty("PartnerRegistrationFullyQualifiedId",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerNamespaceInternal)this).PartnerRegistrationFullyQualifiedId, global::System.Convert.ToString); + } + if (content.Contains("Endpoint")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerNamespaceInternal)this).Endpoint = (string) content.GetValueForProperty("Endpoint",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerNamespaceInternal)this).Endpoint, global::System.Convert.ToString); + } + if (content.Contains("PublicNetworkAccess")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerNamespaceInternal)this).PublicNetworkAccess = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.PublicNetworkAccess?) content.GetValueForProperty("PublicNetworkAccess",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerNamespaceInternal)this).PublicNetworkAccess, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.PublicNetworkAccess.CreateFrom); + } + if (content.Contains("InboundIPRule")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerNamespaceInternal)this).InboundIPRule = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IInboundIPRule[]) content.GetValueForProperty("InboundIPRule",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerNamespaceInternal)this).InboundIPRule, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.InboundIPRuleTypeConverter.ConvertFrom)); + } + if (content.Contains("DisableLocalAuth")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerNamespaceInternal)this).DisableLocalAuth = (bool?) content.GetValueForProperty("DisableLocalAuth",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerNamespaceInternal)this).DisableLocalAuth, (__y)=> (bool) global::System.Convert.ChangeType(__y, typeof(bool))); + } + if (content.Contains("PartnerTopicRoutingMode")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerNamespaceInternal)this).PartnerTopicRoutingMode = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.PartnerTopicRoutingMode?) content.GetValueForProperty("PartnerTopicRoutingMode",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerNamespaceInternal)this).PartnerTopicRoutingMode, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.PartnerTopicRoutingMode.CreateFrom); + } + if (content.Contains("SystemDataCreatedByType")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerNamespaceInternal)this).SystemDataCreatedByType = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.CreatedByType?) content.GetValueForProperty("SystemDataCreatedByType",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerNamespaceInternal)this).SystemDataCreatedByType, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.CreatedByType.CreateFrom); + } + if (content.Contains("SystemDataLastModifiedBy")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerNamespaceInternal)this).SystemDataLastModifiedBy = (string) content.GetValueForProperty("SystemDataLastModifiedBy",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerNamespaceInternal)this).SystemDataLastModifiedBy, global::System.Convert.ToString); + } + if (content.Contains("SystemDataLastModifiedByType")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerNamespaceInternal)this).SystemDataLastModifiedByType = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.CreatedByType?) content.GetValueForProperty("SystemDataLastModifiedByType",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerNamespaceInternal)this).SystemDataLastModifiedByType, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.CreatedByType.CreateFrom); + } + if (content.Contains("SystemDataLastModifiedAt")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerNamespaceInternal)this).SystemDataLastModifiedAt = (global::System.DateTime?) content.GetValueForProperty("SystemDataLastModifiedAt",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerNamespaceInternal)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 PartnerNamespace(global::System.Management.Automation.PSObject content) + { + bool returnNow = false; + BeforeDeserializePSObject(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("Property")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerNamespaceInternal)this).Property = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerNamespaceProperties) content.GetValueForProperty("Property",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerNamespaceInternal)this).Property, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.PartnerNamespacePropertiesTypeConverter.ConvertFrom); + } + if (content.Contains("SystemData")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerNamespaceInternal)this).SystemData = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20.ISystemData) content.GetValueForProperty("SystemData",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerNamespaceInternal)this).SystemData, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20.SystemDataTypeConverter.ConvertFrom); + } + if (content.Contains("Id")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IResourceInternal)this).Id = (string) content.GetValueForProperty("Id",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IResourceInternal)this).Id, global::System.Convert.ToString); + } + if (content.Contains("Name")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IResourceInternal)this).Name = (string) content.GetValueForProperty("Name",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IResourceInternal)this).Name, global::System.Convert.ToString); + } + if (content.Contains("Type")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IResourceInternal)this).Type = (string) content.GetValueForProperty("Type",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IResourceInternal)this).Type, global::System.Convert.ToString); + } + if (content.Contains("Location")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITrackedResourceInternal)this).Location = (string) content.GetValueForProperty("Location",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITrackedResourceInternal)this).Location, global::System.Convert.ToString); + } + if (content.Contains("Tag")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITrackedResourceInternal)this).Tag = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITrackedResourceTags) content.GetValueForProperty("Tag",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITrackedResourceInternal)this).Tag, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.TrackedResourceTagsTypeConverter.ConvertFrom); + } + if (content.Contains("SystemDataCreatedBy")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerNamespaceInternal)this).SystemDataCreatedBy = (string) content.GetValueForProperty("SystemDataCreatedBy",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerNamespaceInternal)this).SystemDataCreatedBy, global::System.Convert.ToString); + } + if (content.Contains("SystemDataCreatedAt")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerNamespaceInternal)this).SystemDataCreatedAt = (global::System.DateTime?) content.GetValueForProperty("SystemDataCreatedAt",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerNamespaceInternal)this).SystemDataCreatedAt, (v) => v is global::System.DateTime _v ? _v : global::System.Xml.XmlConvert.ToDateTime( v.ToString() , global::System.Xml.XmlDateTimeSerializationMode.Unspecified)); + } + if (content.Contains("PrivateEndpointConnection")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerNamespaceInternal)this).PrivateEndpointConnection = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPrivateEndpointConnection[]) content.GetValueForProperty("PrivateEndpointConnection",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerNamespaceInternal)this).PrivateEndpointConnection, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.PrivateEndpointConnectionTypeConverter.ConvertFrom)); + } + if (content.Contains("ProvisioningState")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerNamespaceInternal)this).ProvisioningState = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.PartnerNamespaceProvisioningState?) content.GetValueForProperty("ProvisioningState",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerNamespaceInternal)this).ProvisioningState, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.PartnerNamespaceProvisioningState.CreateFrom); + } + if (content.Contains("PartnerRegistrationFullyQualifiedId")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerNamespaceInternal)this).PartnerRegistrationFullyQualifiedId = (string) content.GetValueForProperty("PartnerRegistrationFullyQualifiedId",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerNamespaceInternal)this).PartnerRegistrationFullyQualifiedId, global::System.Convert.ToString); + } + if (content.Contains("Endpoint")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerNamespaceInternal)this).Endpoint = (string) content.GetValueForProperty("Endpoint",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerNamespaceInternal)this).Endpoint, global::System.Convert.ToString); + } + if (content.Contains("PublicNetworkAccess")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerNamespaceInternal)this).PublicNetworkAccess = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.PublicNetworkAccess?) content.GetValueForProperty("PublicNetworkAccess",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerNamespaceInternal)this).PublicNetworkAccess, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.PublicNetworkAccess.CreateFrom); + } + if (content.Contains("InboundIPRule")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerNamespaceInternal)this).InboundIPRule = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IInboundIPRule[]) content.GetValueForProperty("InboundIPRule",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerNamespaceInternal)this).InboundIPRule, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.InboundIPRuleTypeConverter.ConvertFrom)); + } + if (content.Contains("DisableLocalAuth")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerNamespaceInternal)this).DisableLocalAuth = (bool?) content.GetValueForProperty("DisableLocalAuth",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerNamespaceInternal)this).DisableLocalAuth, (__y)=> (bool) global::System.Convert.ChangeType(__y, typeof(bool))); + } + if (content.Contains("PartnerTopicRoutingMode")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerNamespaceInternal)this).PartnerTopicRoutingMode = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.PartnerTopicRoutingMode?) content.GetValueForProperty("PartnerTopicRoutingMode",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerNamespaceInternal)this).PartnerTopicRoutingMode, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.PartnerTopicRoutingMode.CreateFrom); + } + if (content.Contains("SystemDataCreatedByType")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerNamespaceInternal)this).SystemDataCreatedByType = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.CreatedByType?) content.GetValueForProperty("SystemDataCreatedByType",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerNamespaceInternal)this).SystemDataCreatedByType, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.CreatedByType.CreateFrom); + } + if (content.Contains("SystemDataLastModifiedBy")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerNamespaceInternal)this).SystemDataLastModifiedBy = (string) content.GetValueForProperty("SystemDataLastModifiedBy",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerNamespaceInternal)this).SystemDataLastModifiedBy, global::System.Convert.ToString); + } + if (content.Contains("SystemDataLastModifiedByType")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerNamespaceInternal)this).SystemDataLastModifiedByType = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.CreatedByType?) content.GetValueForProperty("SystemDataLastModifiedByType",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerNamespaceInternal)this).SystemDataLastModifiedByType, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.CreatedByType.CreateFrom); + } + if (content.Contains("SystemDataLastModifiedAt")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerNamespaceInternal)this).SystemDataLastModifiedAt = (global::System.DateTime?) content.GetValueForProperty("SystemDataLastModifiedAt",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerNamespaceInternal)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.EventGrid.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// EventGrid Partner Namespace. + [System.ComponentModel.TypeConverter(typeof(PartnerNamespaceTypeConverter))] + public partial interface IPartnerNamespace + + { + + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PartnerNamespace.TypeConverter.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PartnerNamespace.TypeConverter.cs new file mode 100644 index 000000000000..cbbb918f6f6f --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PartnerNamespace.TypeConverter.cs @@ -0,0 +1,146 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class PartnerNamespaceTypeConverter : global::System.Management.Automation.PSTypeConverter + { + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false. + /// + public override bool CanConvertFrom(object sourceValue, global::System.Type destinationType) => CanConvertFrom(sourceValue); + + /// + /// Determines if the converter can convert the parameter to the . + /// + /// the instance to check if it can be converted to the type. + /// + /// true if the instance could be converted to a type, otherwise false + /// + public static bool CanConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return true; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + // we say yest to PSObjects + return true; + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + // we say yest to Hashtables/dictionaries + return true; + } + try + { + if (null != sourceValue.ToJsonString()) + { + return true; + } + } + catch + { + // Not one of our objects + } + try + { + string text = sourceValue.ToString()?.Trim(); + return true == text?.StartsWith("{") && true == text?.EndsWith("}") && Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonType.Object; + } + catch + { + // Doesn't look like it can be treated as JSON + } + return false; + } + + /// + /// Determines if the parameter can be converted to the parameter + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false + /// + public override bool CanConvertTo(object sourceValue, global::System.Type destinationType) => false; + + /// + /// Converts the parameter to the parameter using and + /// + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// + /// an instance of , or null if there is no suitable conversion. + /// + public override object ConvertFrom(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => ConvertFrom(sourceValue); + + /// + /// Converts the parameter to the parameter using and + /// + /// the value to convert into an instance of . + /// + /// an instance of , or null if there is no suitable conversion. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerNamespace ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerNamespace).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return PartnerNamespace.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return PartnerNamespace.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return PartnerNamespace.DeserializeFromDictionary(sourceValue); + } + return null; + } + + /// NotImplemented -- this will return null + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// will always return null. + public override object ConvertTo(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => null; + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PartnerNamespace.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PartnerNamespace.cs new file mode 100644 index 000000000000..5511795b00c2 --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PartnerNamespace.cs @@ -0,0 +1,367 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Extensions; + + /// EventGrid Partner Namespace. + public partial class PartnerNamespace : + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerNamespace, + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerNamespaceInternal, + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IValidates + { + /// + /// Backing field for Inherited model + /// + private Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITrackedResource __trackedResource = new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.TrackedResource(); + + /// + /// This boolean is used to enable or disable local auth. Default value is false. When the property is set to true, only AAD + /// token will be used to authenticate if user is allowed to publish to the partner namespace. + /// + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Inlined)] + public bool? DisableLocalAuth { get => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerNamespacePropertiesInternal)Property).DisableLocalAuth; set => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerNamespacePropertiesInternal)Property).DisableLocalAuth = value ?? default(bool); } + + /// Endpoint for the partner namespace. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Inlined)] + public string Endpoint { get => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerNamespacePropertiesInternal)Property).Endpoint; } + + /// Fully qualified identifier of the resource. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Inherited)] + public string Id { get => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IResourceInternal)__trackedResource).Id; } + + /// + /// This can be used to restrict traffic from specific IPs instead of all IPs. Note: These are considered only if PublicNetworkAccess + /// is enabled. + /// + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Inlined)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IInboundIPRule[] InboundIPRule { get => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerNamespacePropertiesInternal)Property).InboundIPRule; set => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerNamespacePropertiesInternal)Property).InboundIPRule = value ?? null /* arrayOf */; } + + /// Location of the resource. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Inherited)] + public string Location { get => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITrackedResourceInternal)__trackedResource).Location; set => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITrackedResourceInternal)__trackedResource).Location = value ; } + + /// Internal Acessors for Endpoint + string Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerNamespaceInternal.Endpoint { get => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerNamespacePropertiesInternal)Property).Endpoint; set => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerNamespacePropertiesInternal)Property).Endpoint = value; } + + /// Internal Acessors for PrivateEndpointConnection + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPrivateEndpointConnection[] Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerNamespaceInternal.PrivateEndpointConnection { get => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerNamespacePropertiesInternal)Property).PrivateEndpointConnection; set => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerNamespacePropertiesInternal)Property).PrivateEndpointConnection = value; } + + /// Internal Acessors for Property + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerNamespaceProperties Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerNamespaceInternal.Property { get => (this._property = this._property ?? new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.PartnerNamespaceProperties()); set { {_property = value;} } } + + /// Internal Acessors for ProvisioningState + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.PartnerNamespaceProvisioningState? Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerNamespaceInternal.ProvisioningState { get => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerNamespacePropertiesInternal)Property).ProvisioningState; set => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerNamespacePropertiesInternal)Property).ProvisioningState = value; } + + /// Internal Acessors for SystemData + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20.ISystemData Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerNamespaceInternal.SystemData { get => (this._systemData = this._systemData ?? new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20.SystemData()); set { {_systemData = value;} } } + + /// Internal Acessors for Id + string Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IResourceInternal.Id { get => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IResourceInternal)__trackedResource).Id; set => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IResourceInternal)__trackedResource).Id = value; } + + /// Internal Acessors for Name + string Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IResourceInternal.Name { get => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IResourceInternal)__trackedResource).Name; set => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IResourceInternal)__trackedResource).Name = value; } + + /// Internal Acessors for Type + string Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IResourceInternal.Type { get => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IResourceInternal)__trackedResource).Type; set => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IResourceInternal)__trackedResource).Type = value; } + + /// Name of the resource. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Inherited)] + public string Name { get => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IResourceInternal)__trackedResource).Name; } + + /// + /// The fully qualified ARM Id of the partner registration that should be associated with this partner namespace. This takes + /// the following format: + /// /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.EventGrid/partnerRegistrations/{partnerRegistrationName}. + /// + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Inlined)] + public string PartnerRegistrationFullyQualifiedId { get => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerNamespacePropertiesInternal)Property).PartnerRegistrationFullyQualifiedId; set => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerNamespacePropertiesInternal)Property).PartnerRegistrationFullyQualifiedId = value ?? null; } + + /// + /// This determines if events published to this partner namespace should use the source attribute in the event payload + /// or use the channel name in the header when matching to the partner topic. If none is specified, source attribute routing + /// will be used to match the partner topic. + /// + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Inlined)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.PartnerTopicRoutingMode? PartnerTopicRoutingMode { get => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerNamespacePropertiesInternal)Property).PartnerTopicRoutingMode; set => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerNamespacePropertiesInternal)Property).PartnerTopicRoutingMode = value ?? ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.PartnerTopicRoutingMode)""); } + + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Inlined)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPrivateEndpointConnection[] PrivateEndpointConnection { get => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerNamespacePropertiesInternal)Property).PrivateEndpointConnection; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerNamespaceProperties _property; + + /// Properties of the Partner Namespace. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Owned)] + internal Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerNamespaceProperties Property { get => (this._property = this._property ?? new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.PartnerNamespaceProperties()); set => this._property = value; } + + /// Provisioning state of the partner namespace. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Inlined)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.PartnerNamespaceProvisioningState? ProvisioningState { get => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerNamespacePropertiesInternal)Property).ProvisioningState; } + + /// + /// This determines if traffic is allowed over public network. By default it is enabled. + /// You can further restrict to specific IPs by configuring + /// + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Inlined)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.PublicNetworkAccess? PublicNetworkAccess { get => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerNamespacePropertiesInternal)Property).PublicNetworkAccess; set => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerNamespacePropertiesInternal)Property).PublicNetworkAccess = value ?? ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.PublicNetworkAccess)""); } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20.ISystemData _systemData; + + /// The system metadata relating to Partner Namespace resource. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Owned)] + internal Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20.ISystemData SystemData { get => (this._systemData = this._systemData ?? new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20.SystemData()); } + + /// The timestamp of resource creation (UTC). + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Inlined)] + public global::System.DateTime? SystemDataCreatedAt { get => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20.ISystemDataInternal)SystemData).CreatedAt; set => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20.ISystemDataInternal)SystemData).CreatedAt = value ?? default(global::System.DateTime); } + + /// The identity that created the resource. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Inlined)] + public string SystemDataCreatedBy { get => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20.ISystemDataInternal)SystemData).CreatedBy; set => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20.ISystemDataInternal)SystemData).CreatedBy = value ?? null; } + + /// The type of identity that created the resource. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Inlined)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.CreatedByType? SystemDataCreatedByType { get => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20.ISystemDataInternal)SystemData).CreatedByType; set => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20.ISystemDataInternal)SystemData).CreatedByType = value ?? ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.CreatedByType)""); } + + /// The timestamp of resource last modification (UTC) + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Inlined)] + public global::System.DateTime? SystemDataLastModifiedAt { get => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20.ISystemDataInternal)SystemData).LastModifiedAt; set => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20.ISystemDataInternal)SystemData).LastModifiedAt = value ?? default(global::System.DateTime); } + + /// The identity that last modified the resource. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Inlined)] + public string SystemDataLastModifiedBy { get => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20.ISystemDataInternal)SystemData).LastModifiedBy; set => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20.ISystemDataInternal)SystemData).LastModifiedBy = value ?? null; } + + /// The type of identity that last modified the resource. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Inlined)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.CreatedByType? SystemDataLastModifiedByType { get => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20.ISystemDataInternal)SystemData).LastModifiedByType; set => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20.ISystemDataInternal)SystemData).LastModifiedByType = value ?? ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.CreatedByType)""); } + + /// Tags of the resource. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Inherited)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITrackedResourceTags Tag { get => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITrackedResourceInternal)__trackedResource).Tag; set => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITrackedResourceInternal)__trackedResource).Tag = value ?? null /* model class */; } + + /// Type of the resource. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Inherited)] + public string Type { get => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IResourceInternal)__trackedResource).Type; } + + /// Creates an new instance. + public PartnerNamespace() + { + + } + + /// Validates that this object meets the validation criteria. + /// an instance that will receive validation + /// events. + /// + /// A that will be complete when validation is completed. + /// + public async global::System.Threading.Tasks.Task Validate(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener eventListener) + { + await eventListener.AssertNotNull(nameof(__trackedResource), __trackedResource); + await eventListener.AssertObjectIsValid(nameof(__trackedResource), __trackedResource); + } + } + /// EventGrid Partner Namespace. + public partial interface IPartnerNamespace : + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IJsonSerializable, + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITrackedResource + { + /// + /// This boolean is used to enable or disable local auth. Default value is false. When the property is set to true, only AAD + /// token will be used to authenticate if user is allowed to publish to the partner namespace. + /// + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"This boolean is used to enable or disable local auth. Default value is false. When the property is set to true, only AAD token will be used to authenticate if user is allowed to publish to the partner namespace.", + SerializedName = @"disableLocalAuth", + PossibleTypes = new [] { typeof(bool) })] + bool? DisableLocalAuth { get; set; } + /// Endpoint for the partner namespace. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"Endpoint for the partner namespace.", + SerializedName = @"endpoint", + PossibleTypes = new [] { typeof(string) })] + string Endpoint { get; } + /// + /// This can be used to restrict traffic from specific IPs instead of all IPs. Note: These are considered only if PublicNetworkAccess + /// is enabled. + /// + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"This can be used to restrict traffic from specific IPs instead of all IPs. Note: These are considered only if PublicNetworkAccess is enabled.", + SerializedName = @"inboundIpRules", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IInboundIPRule) })] + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IInboundIPRule[] InboundIPRule { get; set; } + /// + /// The fully qualified ARM Id of the partner registration that should be associated with this partner namespace. This takes + /// the following format: + /// /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.EventGrid/partnerRegistrations/{partnerRegistrationName}. + /// + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The fully qualified ARM Id of the partner registration that should be associated with this partner namespace. This takes the following format: + /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.EventGrid/partnerRegistrations/{partnerRegistrationName}.", + SerializedName = @"partnerRegistrationFullyQualifiedId", + PossibleTypes = new [] { typeof(string) })] + string PartnerRegistrationFullyQualifiedId { get; set; } + /// + /// This determines if events published to this partner namespace should use the source attribute in the event payload + /// or use the channel name in the header when matching to the partner topic. If none is specified, source attribute routing + /// will be used to match the partner topic. + /// + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"This determines if events published to this partner namespace should use the source attribute in the event payload + or use the channel name in the header when matching to the partner topic. If none is specified, source attribute routing will be used to match the partner topic.", + SerializedName = @"partnerTopicRoutingMode", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.PartnerTopicRoutingMode) })] + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.PartnerTopicRoutingMode? PartnerTopicRoutingMode { get; set; } + + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"", + SerializedName = @"privateEndpointConnections", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPrivateEndpointConnection) })] + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPrivateEndpointConnection[] PrivateEndpointConnection { get; } + /// Provisioning state of the partner namespace. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"Provisioning state of the partner namespace.", + SerializedName = @"provisioningState", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.PartnerNamespaceProvisioningState) })] + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.PartnerNamespaceProvisioningState? ProvisioningState { get; } + /// + /// This determines if traffic is allowed over public network. By default it is enabled. + /// You can further restrict to specific IPs by configuring + /// + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"This determines if traffic is allowed over public network. By default it is enabled. + You can further restrict to specific IPs by configuring ", + SerializedName = @"publicNetworkAccess", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.PublicNetworkAccess) })] + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.PublicNetworkAccess? PublicNetworkAccess { get; set; } + /// The timestamp of resource creation (UTC). + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.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.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The type of identity that created the resource.", + SerializedName = @"createdByType", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.CreatedByType) })] + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.CreatedByType? SystemDataCreatedByType { get; set; } + /// The timestamp of resource last modification (UTC) + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.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.EventGrid.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.EventGrid.Support.CreatedByType) })] + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.CreatedByType? SystemDataLastModifiedByType { get; set; } + + } + /// EventGrid Partner Namespace. + internal partial interface IPartnerNamespaceInternal : + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITrackedResourceInternal + { + /// + /// This boolean is used to enable or disable local auth. Default value is false. When the property is set to true, only AAD + /// token will be used to authenticate if user is allowed to publish to the partner namespace. + /// + bool? DisableLocalAuth { get; set; } + /// Endpoint for the partner namespace. + string Endpoint { get; set; } + /// + /// This can be used to restrict traffic from specific IPs instead of all IPs. Note: These are considered only if PublicNetworkAccess + /// is enabled. + /// + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IInboundIPRule[] InboundIPRule { get; set; } + /// + /// The fully qualified ARM Id of the partner registration that should be associated with this partner namespace. This takes + /// the following format: + /// /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.EventGrid/partnerRegistrations/{partnerRegistrationName}. + /// + string PartnerRegistrationFullyQualifiedId { get; set; } + /// + /// This determines if events published to this partner namespace should use the source attribute in the event payload + /// or use the channel name in the header when matching to the partner topic. If none is specified, source attribute routing + /// will be used to match the partner topic. + /// + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.PartnerTopicRoutingMode? PartnerTopicRoutingMode { get; set; } + + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPrivateEndpointConnection[] PrivateEndpointConnection { get; set; } + /// Properties of the Partner Namespace. + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerNamespaceProperties Property { get; set; } + /// Provisioning state of the partner namespace. + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.PartnerNamespaceProvisioningState? ProvisioningState { get; set; } + /// + /// This determines if traffic is allowed over public network. By default it is enabled. + /// You can further restrict to specific IPs by configuring + /// + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.PublicNetworkAccess? PublicNetworkAccess { get; set; } + /// The system metadata relating to Partner Namespace resource. + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.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.EventGrid.Support.CreatedByType? SystemDataLastModifiedByType { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PartnerNamespace.json.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PartnerNamespace.json.cs new file mode 100644 index 000000000000..6bc3495f40f0 --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PartnerNamespace.json.cs @@ -0,0 +1,113 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Extensions; + + /// EventGrid Partner Namespace. + public partial class PartnerNamespace + { + + /// + /// AfterFromJson will be called after the json deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JsonNode that should be deserialized into this object. + + partial void AfterFromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json erialization has finished, allowing customization of the before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JSON container that the serialization result will be placed in. + + partial void AfterToJson(ref Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject container); + + /// + /// BeforeFromJson will be called before the json deserialization has commenced, allowing complete customization of + /// the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JsonNode that should be deserialized into this object. + /// Determines if the rest of the deserialization should be processed, or if the method should return + /// instantly. + + partial void BeforeFromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject json, ref bool returnNow); + + /// + /// BeforeToJson will be called before the json serialization has commenced, allowing complete customization of the + /// object before it is serialized. + /// If you wish to disable the default serialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JSON container that the serialization result will be placed in. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeToJson(ref Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerNamespace. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerNamespace. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerNamespace FromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject json ? new PartnerNamespace(json) : null; + } + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject instance to deserialize from. + internal PartnerNamespace(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject json) + { + bool returnNow = false; + BeforeFromJson(json, ref returnNow); + if (returnNow) + { + return; + } + __trackedResource = new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.TrackedResource(json); + {_property = If( json?.PropertyT("properties"), out var __jsonProperties) ? Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.PartnerNamespaceProperties.FromJson(__jsonProperties) : Property;} + {_systemData = If( json?.PropertyT("systemData"), out var __jsonSystemData) ? Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject(); + + bool returnNow = false; + BeforeToJson(ref container, ref returnNow); + if (returnNow) + { + return container; + } + __trackedResource?.ToJson(container, serializationMode); + AddIf( null != this._property ? (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode) this._property.ToJson(null,serializationMode) : null, "properties" ,container.Add ); + if (serializationMode.HasFlag(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SerializationMode.IncludeReadOnly)) + { + AddIf( null != this._systemData ? (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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/eventgrid/generated/api/Models/Api20211015Preview/PartnerNamespaceProperties.PowerShell.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PartnerNamespaceProperties.PowerShell.cs new file mode 100644 index 000000000000..ab8ff872db3e --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PartnerNamespaceProperties.PowerShell.cs @@ -0,0 +1,200 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell; + + /// Properties of the partner namespace. + [System.ComponentModel.TypeConverter(typeof(PartnerNamespacePropertiesTypeConverter))] + public partial class PartnerNamespaceProperties + { + + /// + /// AfterDeserializeDictionary will be called after the deserialization has finished, allowing customization of the + /// object before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Collections.IDictionary content that should be used. + + partial void AfterDeserializeDictionary(global::System.Collections.IDictionary content); + + /// + /// AfterDeserializePSObject will be called after the deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Management.Automation.PSObject content that should be used. + + partial void AfterDeserializePSObject(global::System.Management.Automation.PSObject content); + + /// + /// BeforeDeserializeDictionary will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Collections.IDictionary content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializeDictionary(global::System.Collections.IDictionary content, ref bool returnNow); + + /// + /// BeforeDeserializePSObject will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializePSObject(global::System.Management.Automation.PSObject content, ref bool returnNow); + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerNamespaceProperties DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new PartnerNamespaceProperties(content); + } + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerNamespaceProperties DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new PartnerNamespaceProperties(content); + } + + /// + /// Creates a new instance of , deserializing the content from a json string. + /// + /// a string containing a JSON serialized instance of this model. + /// an instance of the model class. + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerNamespaceProperties FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode.Parse(jsonText)); + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + internal PartnerNamespaceProperties(global::System.Collections.IDictionary content) + { + bool returnNow = false; + BeforeDeserializeDictionary(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("PrivateEndpointConnection")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerNamespacePropertiesInternal)this).PrivateEndpointConnection = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPrivateEndpointConnection[]) content.GetValueForProperty("PrivateEndpointConnection",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerNamespacePropertiesInternal)this).PrivateEndpointConnection, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.PrivateEndpointConnectionTypeConverter.ConvertFrom)); + } + if (content.Contains("ProvisioningState")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerNamespacePropertiesInternal)this).ProvisioningState = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.PartnerNamespaceProvisioningState?) content.GetValueForProperty("ProvisioningState",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerNamespacePropertiesInternal)this).ProvisioningState, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.PartnerNamespaceProvisioningState.CreateFrom); + } + if (content.Contains("PartnerRegistrationFullyQualifiedId")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerNamespacePropertiesInternal)this).PartnerRegistrationFullyQualifiedId = (string) content.GetValueForProperty("PartnerRegistrationFullyQualifiedId",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerNamespacePropertiesInternal)this).PartnerRegistrationFullyQualifiedId, global::System.Convert.ToString); + } + if (content.Contains("Endpoint")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerNamespacePropertiesInternal)this).Endpoint = (string) content.GetValueForProperty("Endpoint",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerNamespacePropertiesInternal)this).Endpoint, global::System.Convert.ToString); + } + if (content.Contains("PublicNetworkAccess")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerNamespacePropertiesInternal)this).PublicNetworkAccess = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.PublicNetworkAccess?) content.GetValueForProperty("PublicNetworkAccess",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerNamespacePropertiesInternal)this).PublicNetworkAccess, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.PublicNetworkAccess.CreateFrom); + } + if (content.Contains("InboundIPRule")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerNamespacePropertiesInternal)this).InboundIPRule = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IInboundIPRule[]) content.GetValueForProperty("InboundIPRule",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerNamespacePropertiesInternal)this).InboundIPRule, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.InboundIPRuleTypeConverter.ConvertFrom)); + } + if (content.Contains("DisableLocalAuth")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerNamespacePropertiesInternal)this).DisableLocalAuth = (bool?) content.GetValueForProperty("DisableLocalAuth",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerNamespacePropertiesInternal)this).DisableLocalAuth, (__y)=> (bool) global::System.Convert.ChangeType(__y, typeof(bool))); + } + if (content.Contains("PartnerTopicRoutingMode")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerNamespacePropertiesInternal)this).PartnerTopicRoutingMode = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.PartnerTopicRoutingMode?) content.GetValueForProperty("PartnerTopicRoutingMode",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerNamespacePropertiesInternal)this).PartnerTopicRoutingMode, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.PartnerTopicRoutingMode.CreateFrom); + } + AfterDeserializeDictionary(content); + } + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + internal PartnerNamespaceProperties(global::System.Management.Automation.PSObject content) + { + bool returnNow = false; + BeforeDeserializePSObject(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("PrivateEndpointConnection")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerNamespacePropertiesInternal)this).PrivateEndpointConnection = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPrivateEndpointConnection[]) content.GetValueForProperty("PrivateEndpointConnection",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerNamespacePropertiesInternal)this).PrivateEndpointConnection, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.PrivateEndpointConnectionTypeConverter.ConvertFrom)); + } + if (content.Contains("ProvisioningState")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerNamespacePropertiesInternal)this).ProvisioningState = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.PartnerNamespaceProvisioningState?) content.GetValueForProperty("ProvisioningState",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerNamespacePropertiesInternal)this).ProvisioningState, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.PartnerNamespaceProvisioningState.CreateFrom); + } + if (content.Contains("PartnerRegistrationFullyQualifiedId")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerNamespacePropertiesInternal)this).PartnerRegistrationFullyQualifiedId = (string) content.GetValueForProperty("PartnerRegistrationFullyQualifiedId",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerNamespacePropertiesInternal)this).PartnerRegistrationFullyQualifiedId, global::System.Convert.ToString); + } + if (content.Contains("Endpoint")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerNamespacePropertiesInternal)this).Endpoint = (string) content.GetValueForProperty("Endpoint",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerNamespacePropertiesInternal)this).Endpoint, global::System.Convert.ToString); + } + if (content.Contains("PublicNetworkAccess")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerNamespacePropertiesInternal)this).PublicNetworkAccess = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.PublicNetworkAccess?) content.GetValueForProperty("PublicNetworkAccess",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerNamespacePropertiesInternal)this).PublicNetworkAccess, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.PublicNetworkAccess.CreateFrom); + } + if (content.Contains("InboundIPRule")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerNamespacePropertiesInternal)this).InboundIPRule = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IInboundIPRule[]) content.GetValueForProperty("InboundIPRule",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerNamespacePropertiesInternal)this).InboundIPRule, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.InboundIPRuleTypeConverter.ConvertFrom)); + } + if (content.Contains("DisableLocalAuth")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerNamespacePropertiesInternal)this).DisableLocalAuth = (bool?) content.GetValueForProperty("DisableLocalAuth",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerNamespacePropertiesInternal)this).DisableLocalAuth, (__y)=> (bool) global::System.Convert.ChangeType(__y, typeof(bool))); + } + if (content.Contains("PartnerTopicRoutingMode")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerNamespacePropertiesInternal)this).PartnerTopicRoutingMode = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.PartnerTopicRoutingMode?) content.GetValueForProperty("PartnerTopicRoutingMode",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerNamespacePropertiesInternal)this).PartnerTopicRoutingMode, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.PartnerTopicRoutingMode.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.EventGrid.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// Properties of the partner namespace. + [System.ComponentModel.TypeConverter(typeof(PartnerNamespacePropertiesTypeConverter))] + public partial interface IPartnerNamespaceProperties + + { + + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PartnerNamespaceProperties.TypeConverter.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PartnerNamespaceProperties.TypeConverter.cs new file mode 100644 index 000000000000..ffff8c7c3155 --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PartnerNamespaceProperties.TypeConverter.cs @@ -0,0 +1,147 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class PartnerNamespacePropertiesTypeConverter : global::System.Management.Automation.PSTypeConverter + { + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false. + /// + public override bool CanConvertFrom(object sourceValue, global::System.Type destinationType) => CanConvertFrom(sourceValue); + + /// + /// Determines if the converter can convert the parameter to the . + /// + /// the instance to check if it can be converted to the type. + /// + /// true if the instance could be converted to a type, otherwise false + /// + public static bool CanConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return true; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + // we say yest to PSObjects + return true; + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + // we say yest to Hashtables/dictionaries + return true; + } + try + { + if (null != sourceValue.ToJsonString()) + { + return true; + } + } + catch + { + // Not one of our objects + } + try + { + string text = sourceValue.ToString()?.Trim(); + return true == text?.StartsWith("{") && true == text?.EndsWith("}") && Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonType.Object; + } + catch + { + // Doesn't look like it can be treated as JSON + } + return false; + } + + /// + /// Determines if the parameter can be converted to the parameter + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false + /// + public override bool CanConvertTo(object sourceValue, global::System.Type destinationType) => false; + + /// + /// Converts the parameter to the parameter using and + /// + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// + /// an instance of , or null if there is no suitable conversion. + /// + public override object ConvertFrom(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => ConvertFrom(sourceValue); + + /// + /// Converts the parameter to the parameter using and + /// + /// the value to convert into an instance of . + /// + /// an instance of , or null if there is no suitable conversion. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerNamespaceProperties ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerNamespaceProperties).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return PartnerNamespaceProperties.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return PartnerNamespaceProperties.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return PartnerNamespaceProperties.DeserializeFromDictionary(sourceValue); + } + return null; + } + + /// NotImplemented -- this will return null + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// will always return null. + public override object ConvertTo(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => null; + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PartnerNamespaceProperties.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PartnerNamespaceProperties.cs new file mode 100644 index 000000000000..3717cbd9f87e --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PartnerNamespaceProperties.cs @@ -0,0 +1,235 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Extensions; + + /// Properties of the partner namespace. + public partial class PartnerNamespaceProperties : + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerNamespaceProperties, + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerNamespacePropertiesInternal + { + + /// Backing field for property. + private bool? _disableLocalAuth; + + /// + /// This boolean is used to enable or disable local auth. Default value is false. When the property is set to true, only AAD + /// token will be used to authenticate if user is allowed to publish to the partner namespace. + /// + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Owned)] + public bool? DisableLocalAuth { get => this._disableLocalAuth; set => this._disableLocalAuth = value; } + + /// Backing field for property. + private string _endpoint; + + /// Endpoint for the partner namespace. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Owned)] + public string Endpoint { get => this._endpoint; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IInboundIPRule[] _inboundIPRule; + + /// + /// This can be used to restrict traffic from specific IPs instead of all IPs. Note: These are considered only if PublicNetworkAccess + /// is enabled. + /// + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Owned)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IInboundIPRule[] InboundIPRule { get => this._inboundIPRule; set => this._inboundIPRule = value; } + + /// Internal Acessors for Endpoint + string Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerNamespacePropertiesInternal.Endpoint { get => this._endpoint; set { {_endpoint = value;} } } + + /// Internal Acessors for PrivateEndpointConnection + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPrivateEndpointConnection[] Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerNamespacePropertiesInternal.PrivateEndpointConnection { get => this._privateEndpointConnection; set { {_privateEndpointConnection = value;} } } + + /// Internal Acessors for ProvisioningState + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.PartnerNamespaceProvisioningState? Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerNamespacePropertiesInternal.ProvisioningState { get => this._provisioningState; set { {_provisioningState = value;} } } + + /// Backing field for property. + private string _partnerRegistrationFullyQualifiedId; + + /// + /// The fully qualified ARM Id of the partner registration that should be associated with this partner namespace. This takes + /// the following format: + /// /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.EventGrid/partnerRegistrations/{partnerRegistrationName}. + /// + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Owned)] + public string PartnerRegistrationFullyQualifiedId { get => this._partnerRegistrationFullyQualifiedId; set => this._partnerRegistrationFullyQualifiedId = value; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.PartnerTopicRoutingMode? _partnerTopicRoutingMode; + + /// + /// This determines if events published to this partner namespace should use the source attribute in the event payload + /// or use the channel name in the header when matching to the partner topic. If none is specified, source attribute routing + /// will be used to match the partner topic. + /// + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Owned)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.PartnerTopicRoutingMode? PartnerTopicRoutingMode { get => this._partnerTopicRoutingMode; set => this._partnerTopicRoutingMode = value; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPrivateEndpointConnection[] _privateEndpointConnection; + + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Owned)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPrivateEndpointConnection[] PrivateEndpointConnection { get => this._privateEndpointConnection; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.PartnerNamespaceProvisioningState? _provisioningState; + + /// Provisioning state of the partner namespace. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Owned)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.PartnerNamespaceProvisioningState? ProvisioningState { get => this._provisioningState; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.PublicNetworkAccess? _publicNetworkAccess; + + /// + /// This determines if traffic is allowed over public network. By default it is enabled. + /// You can further restrict to specific IPs by configuring + /// + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Owned)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.PublicNetworkAccess? PublicNetworkAccess { get => this._publicNetworkAccess; set => this._publicNetworkAccess = value; } + + /// Creates an new instance. + public PartnerNamespaceProperties() + { + + } + } + /// Properties of the partner namespace. + public partial interface IPartnerNamespaceProperties : + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IJsonSerializable + { + /// + /// This boolean is used to enable or disable local auth. Default value is false. When the property is set to true, only AAD + /// token will be used to authenticate if user is allowed to publish to the partner namespace. + /// + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"This boolean is used to enable or disable local auth. Default value is false. When the property is set to true, only AAD token will be used to authenticate if user is allowed to publish to the partner namespace.", + SerializedName = @"disableLocalAuth", + PossibleTypes = new [] { typeof(bool) })] + bool? DisableLocalAuth { get; set; } + /// Endpoint for the partner namespace. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"Endpoint for the partner namespace.", + SerializedName = @"endpoint", + PossibleTypes = new [] { typeof(string) })] + string Endpoint { get; } + /// + /// This can be used to restrict traffic from specific IPs instead of all IPs. Note: These are considered only if PublicNetworkAccess + /// is enabled. + /// + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"This can be used to restrict traffic from specific IPs instead of all IPs. Note: These are considered only if PublicNetworkAccess is enabled.", + SerializedName = @"inboundIpRules", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IInboundIPRule) })] + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IInboundIPRule[] InboundIPRule { get; set; } + /// + /// The fully qualified ARM Id of the partner registration that should be associated with this partner namespace. This takes + /// the following format: + /// /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.EventGrid/partnerRegistrations/{partnerRegistrationName}. + /// + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The fully qualified ARM Id of the partner registration that should be associated with this partner namespace. This takes the following format: + /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.EventGrid/partnerRegistrations/{partnerRegistrationName}.", + SerializedName = @"partnerRegistrationFullyQualifiedId", + PossibleTypes = new [] { typeof(string) })] + string PartnerRegistrationFullyQualifiedId { get; set; } + /// + /// This determines if events published to this partner namespace should use the source attribute in the event payload + /// or use the channel name in the header when matching to the partner topic. If none is specified, source attribute routing + /// will be used to match the partner topic. + /// + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"This determines if events published to this partner namespace should use the source attribute in the event payload + or use the channel name in the header when matching to the partner topic. If none is specified, source attribute routing will be used to match the partner topic.", + SerializedName = @"partnerTopicRoutingMode", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.PartnerTopicRoutingMode) })] + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.PartnerTopicRoutingMode? PartnerTopicRoutingMode { get; set; } + + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"", + SerializedName = @"privateEndpointConnections", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPrivateEndpointConnection) })] + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPrivateEndpointConnection[] PrivateEndpointConnection { get; } + /// Provisioning state of the partner namespace. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"Provisioning state of the partner namespace.", + SerializedName = @"provisioningState", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.PartnerNamespaceProvisioningState) })] + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.PartnerNamespaceProvisioningState? ProvisioningState { get; } + /// + /// This determines if traffic is allowed over public network. By default it is enabled. + /// You can further restrict to specific IPs by configuring + /// + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"This determines if traffic is allowed over public network. By default it is enabled. + You can further restrict to specific IPs by configuring ", + SerializedName = @"publicNetworkAccess", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.PublicNetworkAccess) })] + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.PublicNetworkAccess? PublicNetworkAccess { get; set; } + + } + /// Properties of the partner namespace. + internal partial interface IPartnerNamespacePropertiesInternal + + { + /// + /// This boolean is used to enable or disable local auth. Default value is false. When the property is set to true, only AAD + /// token will be used to authenticate if user is allowed to publish to the partner namespace. + /// + bool? DisableLocalAuth { get; set; } + /// Endpoint for the partner namespace. + string Endpoint { get; set; } + /// + /// This can be used to restrict traffic from specific IPs instead of all IPs. Note: These are considered only if PublicNetworkAccess + /// is enabled. + /// + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IInboundIPRule[] InboundIPRule { get; set; } + /// + /// The fully qualified ARM Id of the partner registration that should be associated with this partner namespace. This takes + /// the following format: + /// /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.EventGrid/partnerRegistrations/{partnerRegistrationName}. + /// + string PartnerRegistrationFullyQualifiedId { get; set; } + /// + /// This determines if events published to this partner namespace should use the source attribute in the event payload + /// or use the channel name in the header when matching to the partner topic. If none is specified, source attribute routing + /// will be used to match the partner topic. + /// + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.PartnerTopicRoutingMode? PartnerTopicRoutingMode { get; set; } + + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPrivateEndpointConnection[] PrivateEndpointConnection { get; set; } + /// Provisioning state of the partner namespace. + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.PartnerNamespaceProvisioningState? ProvisioningState { get; set; } + /// + /// This determines if traffic is allowed over public network. By default it is enabled. + /// You can further restrict to specific IPs by configuring + /// + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.PublicNetworkAccess? PublicNetworkAccess { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PartnerNamespaceProperties.json.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PartnerNamespaceProperties.json.cs new file mode 100644 index 000000000000..cca6cdae7821 --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PartnerNamespaceProperties.json.cs @@ -0,0 +1,145 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Extensions; + + /// Properties of the partner namespace. + public partial class PartnerNamespaceProperties + { + + /// + /// AfterFromJson will be called after the json deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JsonNode that should be deserialized into this object. + + partial void AfterFromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json erialization has finished, allowing customization of the before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JSON container that the serialization result will be placed in. + + partial void AfterToJson(ref Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject container); + + /// + /// BeforeFromJson will be called before the json deserialization has commenced, allowing complete customization of + /// the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JsonNode that should be deserialized into this object. + /// Determines if the rest of the deserialization should be processed, or if the method should return + /// instantly. + + partial void BeforeFromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject json, ref bool returnNow); + + /// + /// BeforeToJson will be called before the json serialization has commenced, allowing complete customization of the + /// object before it is serialized. + /// If you wish to disable the default serialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JSON container that the serialization result will be placed in. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeToJson(ref Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerNamespaceProperties. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerNamespaceProperties. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerNamespaceProperties FromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject json ? new PartnerNamespaceProperties(json) : null; + } + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject instance to deserialize from. + internal PartnerNamespaceProperties(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject json) + { + bool returnNow = false; + BeforeFromJson(json, ref returnNow); + if (returnNow) + { + return; + } + {_privateEndpointConnection = If( json?.PropertyT("privateEndpointConnections"), out var __jsonPrivateEndpointConnections) ? If( __jsonPrivateEndpointConnections as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Models.Api20211015Preview.IPrivateEndpointConnection) (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.PrivateEndpointConnection.FromJson(__u) )) ))() : null : PrivateEndpointConnection;} + {_provisioningState = If( json?.PropertyT("provisioningState"), out var __jsonProvisioningState) ? (string)__jsonProvisioningState : (string)ProvisioningState;} + {_partnerRegistrationFullyQualifiedId = If( json?.PropertyT("partnerRegistrationFullyQualifiedId"), out var __jsonPartnerRegistrationFullyQualifiedId) ? (string)__jsonPartnerRegistrationFullyQualifiedId : (string)PartnerRegistrationFullyQualifiedId;} + {_endpoint = If( json?.PropertyT("endpoint"), out var __jsonEndpoint) ? (string)__jsonEndpoint : (string)Endpoint;} + {_publicNetworkAccess = If( json?.PropertyT("publicNetworkAccess"), out var __jsonPublicNetworkAccess) ? (string)__jsonPublicNetworkAccess : (string)PublicNetworkAccess;} + {_inboundIPRule = If( json?.PropertyT("inboundIpRules"), out var __jsonInboundIPRules) ? If( __jsonInboundIPRules as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Models.Api20211015Preview.IInboundIPRule) (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.InboundIPRule.FromJson(__p) )) ))() : null : InboundIPRule;} + {_disableLocalAuth = If( json?.PropertyT("disableLocalAuth"), out var __jsonDisableLocalAuth) ? (bool?)__jsonDisableLocalAuth : DisableLocalAuth;} + {_partnerTopicRoutingMode = If( json?.PropertyT("partnerTopicRoutingMode"), out var __jsonPartnerTopicRoutingMode) ? (string)__jsonPartnerTopicRoutingMode : (string)PartnerTopicRoutingMode;} + AfterFromJson(json); + } + + /// + /// Serializes this instance of into a . + /// + /// The container to serialize this object into. If the caller + /// passes in null, a new instance will be created and returned to the caller. + /// Allows the caller to choose the depth of the serialization. See . + /// + /// a serialized instance of as a . + /// + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject(); + + bool returnNow = false; + BeforeToJson(ref container, ref returnNow); + if (returnNow) + { + return container; + } + if (serializationMode.HasFlag(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SerializationMode.IncludeReadOnly)) + { + if (null != this._privateEndpointConnection) + { + var __w = new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.XNodeArray(); + foreach( var __x in this._privateEndpointConnection ) + { + AddIf(__x?.ToJson(null, serializationMode) ,__w.Add); + } + container.Add("privateEndpointConnections",__w); + } + } + if (serializationMode.HasFlag(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SerializationMode.IncludeReadOnly)) + { + AddIf( null != (((object)this._provisioningState)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonString(this._provisioningState.ToString()) : null, "provisioningState" ,container.Add ); + } + AddIf( null != (((object)this._partnerRegistrationFullyQualifiedId)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonString(this._partnerRegistrationFullyQualifiedId.ToString()) : null, "partnerRegistrationFullyQualifiedId" ,container.Add ); + if (serializationMode.HasFlag(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SerializationMode.IncludeReadOnly)) + { + AddIf( null != (((object)this._endpoint)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonString(this._endpoint.ToString()) : null, "endpoint" ,container.Add ); + } + AddIf( null != (((object)this._publicNetworkAccess)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonString(this._publicNetworkAccess.ToString()) : null, "publicNetworkAccess" ,container.Add ); + if (null != this._inboundIPRule) + { + var __r = new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.XNodeArray(); + foreach( var __s in this._inboundIPRule ) + { + AddIf(__s?.ToJson(null, serializationMode) ,__r.Add); + } + container.Add("inboundIpRules",__r); + } + AddIf( null != this._disableLocalAuth ? (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode)new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonBoolean((bool)this._disableLocalAuth) : null, "disableLocalAuth" ,container.Add ); + AddIf( null != (((object)this._partnerTopicRoutingMode)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonString(this._partnerTopicRoutingMode.ToString()) : null, "partnerTopicRoutingMode" ,container.Add ); + AfterToJson(ref container); + return container; + } + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PartnerNamespaceRegenerateKeyRequest.PowerShell.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PartnerNamespaceRegenerateKeyRequest.PowerShell.cs new file mode 100644 index 000000000000..a2a6f57a61f1 --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PartnerNamespaceRegenerateKeyRequest.PowerShell.cs @@ -0,0 +1,146 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell; + + /// PartnerNamespace regenerate shared access key request. + [System.ComponentModel.TypeConverter(typeof(PartnerNamespaceRegenerateKeyRequestTypeConverter))] + public partial class PartnerNamespaceRegenerateKeyRequest + { + + /// + /// AfterDeserializeDictionary will be called after the deserialization has finished, allowing customization of the + /// object before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Collections.IDictionary content that should be used. + + partial void AfterDeserializeDictionary(global::System.Collections.IDictionary content); + + /// + /// AfterDeserializePSObject will be called after the deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Management.Automation.PSObject content that should be used. + + partial void AfterDeserializePSObject(global::System.Management.Automation.PSObject content); + + /// + /// BeforeDeserializeDictionary will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Collections.IDictionary content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializeDictionary(global::System.Collections.IDictionary content, ref bool returnNow); + + /// + /// BeforeDeserializePSObject will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializePSObject(global::System.Management.Automation.PSObject content, ref bool returnNow); + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerNamespaceRegenerateKeyRequest DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new PartnerNamespaceRegenerateKeyRequest(content); + } + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerNamespaceRegenerateKeyRequest DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new PartnerNamespaceRegenerateKeyRequest(content); + } + + /// + /// Creates a new instance of , deserializing the content from a json string. + /// + /// a string containing a JSON serialized instance of this model. + /// + /// an instance of the model class. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerNamespaceRegenerateKeyRequest FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode.Parse(jsonText)); + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + internal PartnerNamespaceRegenerateKeyRequest(global::System.Collections.IDictionary content) + { + bool returnNow = false; + BeforeDeserializeDictionary(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("KeyName")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerNamespaceRegenerateKeyRequestInternal)this).KeyName = (string) content.GetValueForProperty("KeyName",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerNamespaceRegenerateKeyRequestInternal)this).KeyName, global::System.Convert.ToString); + } + AfterDeserializeDictionary(content); + } + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + internal PartnerNamespaceRegenerateKeyRequest(global::System.Management.Automation.PSObject content) + { + bool returnNow = false; + BeforeDeserializePSObject(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("KeyName")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerNamespaceRegenerateKeyRequestInternal)this).KeyName = (string) content.GetValueForProperty("KeyName",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerNamespaceRegenerateKeyRequestInternal)this).KeyName, 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.EventGrid.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// PartnerNamespace regenerate shared access key request. + [System.ComponentModel.TypeConverter(typeof(PartnerNamespaceRegenerateKeyRequestTypeConverter))] + public partial interface IPartnerNamespaceRegenerateKeyRequest + + { + + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PartnerNamespaceRegenerateKeyRequest.TypeConverter.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PartnerNamespaceRegenerateKeyRequest.TypeConverter.cs new file mode 100644 index 000000000000..72c76fb80d9f --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PartnerNamespaceRegenerateKeyRequest.TypeConverter.cs @@ -0,0 +1,149 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class PartnerNamespaceRegenerateKeyRequestTypeConverter : global::System.Management.Automation.PSTypeConverter + { + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false. + /// + public override bool CanConvertFrom(object sourceValue, global::System.Type destinationType) => CanConvertFrom(sourceValue); + + /// + /// Determines if the converter can convert the parameter to the . + /// + /// the instance to check if it can be converted to the type. + /// + /// true if the instance could be converted to a type, otherwise + /// false + /// + public static bool CanConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return true; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + // we say yest to PSObjects + return true; + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + // we say yest to Hashtables/dictionaries + return true; + } + try + { + if (null != sourceValue.ToJsonString()) + { + return true; + } + } + catch + { + // Not one of our objects + } + try + { + string text = sourceValue.ToString()?.Trim(); + return true == text?.StartsWith("{") && true == text?.EndsWith("}") && Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonType.Object; + } + catch + { + // Doesn't look like it can be treated as JSON + } + return false; + } + + /// + /// Determines if the parameter can be converted to the parameter + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false + /// + public override bool CanConvertTo(object sourceValue, global::System.Type destinationType) => false; + + /// + /// Converts the parameter to the parameter using and + /// + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// + /// an instance of , or null if there is no suitable conversion. + /// + public override object ConvertFrom(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => ConvertFrom(sourceValue); + + /// + /// Converts the parameter to the parameter using and + /// + /// the value to convert into an instance of . + /// + /// an instance of , or null if there is no suitable conversion. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerNamespaceRegenerateKeyRequest ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerNamespaceRegenerateKeyRequest).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return PartnerNamespaceRegenerateKeyRequest.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return PartnerNamespaceRegenerateKeyRequest.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return PartnerNamespaceRegenerateKeyRequest.DeserializeFromDictionary(sourceValue); + } + return null; + } + + /// NotImplemented -- this will return null + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// will always return null. + public override object ConvertTo(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => null; + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PartnerNamespaceRegenerateKeyRequest.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PartnerNamespaceRegenerateKeyRequest.cs new file mode 100644 index 000000000000..93070c8dfbcf --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PartnerNamespaceRegenerateKeyRequest.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.EventGrid.Models.Api20211015Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Extensions; + + /// PartnerNamespace regenerate shared access key request. + public partial class PartnerNamespaceRegenerateKeyRequest : + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerNamespaceRegenerateKeyRequest, + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerNamespaceRegenerateKeyRequestInternal + { + + /// Backing field for property. + private string _keyName; + + /// Key name to regenerate (key1 or key2). + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Owned)] + public string KeyName { get => this._keyName; set => this._keyName = value; } + + /// Creates an new instance. + public PartnerNamespaceRegenerateKeyRequest() + { + + } + } + /// PartnerNamespace regenerate shared access key request. + public partial interface IPartnerNamespaceRegenerateKeyRequest : + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IJsonSerializable + { + /// Key name to regenerate (key1 or key2). + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Key name to regenerate (key1 or key2).", + SerializedName = @"keyName", + PossibleTypes = new [] { typeof(string) })] + string KeyName { get; set; } + + } + /// PartnerNamespace regenerate shared access key request. + internal partial interface IPartnerNamespaceRegenerateKeyRequestInternal + + { + /// Key name to regenerate (key1 or key2). + string KeyName { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PartnerNamespaceRegenerateKeyRequest.json.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PartnerNamespaceRegenerateKeyRequest.json.cs new file mode 100644 index 000000000000..25fb5c1af158 --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PartnerNamespaceRegenerateKeyRequest.json.cs @@ -0,0 +1,107 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Extensions; + + /// PartnerNamespace regenerate shared access key request. + public partial class PartnerNamespaceRegenerateKeyRequest + { + + /// + /// AfterFromJson will be called after the json deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JsonNode that should be deserialized into this object. + + partial void AfterFromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json erialization has finished, allowing customization of the before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JSON container that the serialization result will be placed in. + + partial void AfterToJson(ref Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject container); + + /// + /// BeforeFromJson will be called before the json deserialization has commenced, allowing complete customization of + /// the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JsonNode that should be deserialized into this object. + /// Determines if the rest of the deserialization should be processed, or if the method should return + /// instantly. + + partial void BeforeFromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject json, ref bool returnNow); + + /// + /// BeforeToJson will be called before the json serialization has commenced, allowing complete customization of the + /// object before it is serialized. + /// If you wish to disable the default serialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JSON container that the serialization result will be placed in. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeToJson(ref Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerNamespaceRegenerateKeyRequest. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerNamespaceRegenerateKeyRequest. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerNamespaceRegenerateKeyRequest FromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject json ? new PartnerNamespaceRegenerateKeyRequest(json) : null; + } + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject instance to deserialize from. + internal PartnerNamespaceRegenerateKeyRequest(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject json) + { + bool returnNow = false; + BeforeFromJson(json, ref returnNow); + if (returnNow) + { + return; + } + {_keyName = If( json?.PropertyT("keyName"), out var __jsonKeyName) ? (string)__jsonKeyName : (string)KeyName;} + AfterFromJson(json); + } + + /// + /// Serializes this instance of into a . + /// + /// The container to serialize this object into. If the caller + /// passes in null, a new instance will be created and returned to the caller. + /// Allows the caller to choose the depth of the serialization. See . + /// + /// a serialized instance of as a . + /// + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject(); + + bool returnNow = false; + BeforeToJson(ref container, ref returnNow); + if (returnNow) + { + return container; + } + AddIf( null != (((object)this._keyName)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonString(this._keyName.ToString()) : null, "keyName" ,container.Add ); + AfterToJson(ref container); + return container; + } + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PartnerNamespaceSharedAccessKeys.PowerShell.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PartnerNamespaceSharedAccessKeys.PowerShell.cs new file mode 100644 index 000000000000..256133dc66fd --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PartnerNamespaceSharedAccessKeys.PowerShell.cs @@ -0,0 +1,152 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell; + + /// Shared access keys of the partner namespace. + [System.ComponentModel.TypeConverter(typeof(PartnerNamespaceSharedAccessKeysTypeConverter))] + public partial class PartnerNamespaceSharedAccessKeys + { + + /// + /// AfterDeserializeDictionary will be called after the deserialization has finished, allowing customization of the + /// object before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Collections.IDictionary content that should be used. + + partial void AfterDeserializeDictionary(global::System.Collections.IDictionary content); + + /// + /// AfterDeserializePSObject will be called after the deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Management.Automation.PSObject content that should be used. + + partial void AfterDeserializePSObject(global::System.Management.Automation.PSObject content); + + /// + /// BeforeDeserializeDictionary will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Collections.IDictionary content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializeDictionary(global::System.Collections.IDictionary content, ref bool returnNow); + + /// + /// BeforeDeserializePSObject will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializePSObject(global::System.Management.Automation.PSObject content, ref bool returnNow); + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerNamespaceSharedAccessKeys DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new PartnerNamespaceSharedAccessKeys(content); + } + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerNamespaceSharedAccessKeys DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new PartnerNamespaceSharedAccessKeys(content); + } + + /// + /// Creates a new instance of , deserializing the content from a json string. + /// + /// a string containing a JSON serialized instance of this model. + /// an instance of the model class. + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerNamespaceSharedAccessKeys FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode.Parse(jsonText)); + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + internal PartnerNamespaceSharedAccessKeys(global::System.Collections.IDictionary content) + { + bool returnNow = false; + BeforeDeserializeDictionary(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("Key1")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerNamespaceSharedAccessKeysInternal)this).Key1 = (string) content.GetValueForProperty("Key1",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerNamespaceSharedAccessKeysInternal)this).Key1, global::System.Convert.ToString); + } + if (content.Contains("Key2")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerNamespaceSharedAccessKeysInternal)this).Key2 = (string) content.GetValueForProperty("Key2",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerNamespaceSharedAccessKeysInternal)this).Key2, global::System.Convert.ToString); + } + AfterDeserializeDictionary(content); + } + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + internal PartnerNamespaceSharedAccessKeys(global::System.Management.Automation.PSObject content) + { + bool returnNow = false; + BeforeDeserializePSObject(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("Key1")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerNamespaceSharedAccessKeysInternal)this).Key1 = (string) content.GetValueForProperty("Key1",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerNamespaceSharedAccessKeysInternal)this).Key1, global::System.Convert.ToString); + } + if (content.Contains("Key2")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerNamespaceSharedAccessKeysInternal)this).Key2 = (string) content.GetValueForProperty("Key2",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerNamespaceSharedAccessKeysInternal)this).Key2, 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.EventGrid.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// Shared access keys of the partner namespace. + [System.ComponentModel.TypeConverter(typeof(PartnerNamespaceSharedAccessKeysTypeConverter))] + public partial interface IPartnerNamespaceSharedAccessKeys + + { + + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PartnerNamespaceSharedAccessKeys.TypeConverter.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PartnerNamespaceSharedAccessKeys.TypeConverter.cs new file mode 100644 index 000000000000..ba92d2242a30 --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PartnerNamespaceSharedAccessKeys.TypeConverter.cs @@ -0,0 +1,147 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class PartnerNamespaceSharedAccessKeysTypeConverter : global::System.Management.Automation.PSTypeConverter + { + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false. + /// + public override bool CanConvertFrom(object sourceValue, global::System.Type destinationType) => CanConvertFrom(sourceValue); + + /// + /// Determines if the converter can convert the parameter to the . + /// + /// the instance to check if it can be converted to the type. + /// + /// true if the instance could be converted to a type, otherwise false + /// + public static bool CanConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return true; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + // we say yest to PSObjects + return true; + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + // we say yest to Hashtables/dictionaries + return true; + } + try + { + if (null != sourceValue.ToJsonString()) + { + return true; + } + } + catch + { + // Not one of our objects + } + try + { + string text = sourceValue.ToString()?.Trim(); + return true == text?.StartsWith("{") && true == text?.EndsWith("}") && Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonType.Object; + } + catch + { + // Doesn't look like it can be treated as JSON + } + return false; + } + + /// + /// Determines if the parameter can be converted to the parameter + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false + /// + public override bool CanConvertTo(object sourceValue, global::System.Type destinationType) => false; + + /// + /// Converts the parameter to the parameter using and + /// + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// + /// an instance of , or null if there is no suitable conversion. + /// + public override object ConvertFrom(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => ConvertFrom(sourceValue); + + /// + /// Converts the parameter to the parameter using and + /// + /// the value to convert into an instance of . + /// + /// an instance of , or null if there is no suitable conversion. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerNamespaceSharedAccessKeys ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerNamespaceSharedAccessKeys).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return PartnerNamespaceSharedAccessKeys.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return PartnerNamespaceSharedAccessKeys.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return PartnerNamespaceSharedAccessKeys.DeserializeFromDictionary(sourceValue); + } + return null; + } + + /// NotImplemented -- this will return null + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// will always return null. + public override object ConvertTo(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => null; + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PartnerNamespaceSharedAccessKeys.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PartnerNamespaceSharedAccessKeys.cs new file mode 100644 index 000000000000..f7bf3149b8ac --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PartnerNamespaceSharedAccessKeys.cs @@ -0,0 +1,68 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Extensions; + + /// Shared access keys of the partner namespace. + public partial class PartnerNamespaceSharedAccessKeys : + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerNamespaceSharedAccessKeys, + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerNamespaceSharedAccessKeysInternal + { + + /// Backing field for property. + private string _key1; + + /// Shared access key1 for the partner namespace. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Owned)] + public string Key1 { get => this._key1; set => this._key1 = value; } + + /// Backing field for property. + private string _key2; + + /// Shared access key2 for the partner namespace. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Owned)] + public string Key2 { get => this._key2; set => this._key2 = value; } + + /// Creates an new instance. + public PartnerNamespaceSharedAccessKeys() + { + + } + } + /// Shared access keys of the partner namespace. + public partial interface IPartnerNamespaceSharedAccessKeys : + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IJsonSerializable + { + /// Shared access key1 for the partner namespace. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Shared access key1 for the partner namespace.", + SerializedName = @"key1", + PossibleTypes = new [] { typeof(string) })] + string Key1 { get; set; } + /// Shared access key2 for the partner namespace. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Shared access key2 for the partner namespace.", + SerializedName = @"key2", + PossibleTypes = new [] { typeof(string) })] + string Key2 { get; set; } + + } + /// Shared access keys of the partner namespace. + internal partial interface IPartnerNamespaceSharedAccessKeysInternal + + { + /// Shared access key1 for the partner namespace. + string Key1 { get; set; } + /// Shared access key2 for the partner namespace. + string Key2 { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PartnerNamespaceSharedAccessKeys.json.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PartnerNamespaceSharedAccessKeys.json.cs new file mode 100644 index 000000000000..05a5d70d305d --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PartnerNamespaceSharedAccessKeys.json.cs @@ -0,0 +1,108 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Extensions; + + /// Shared access keys of the partner namespace. + public partial class PartnerNamespaceSharedAccessKeys + { + + /// + /// AfterFromJson will be called after the json deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JsonNode that should be deserialized into this object. + + partial void AfterFromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json erialization has finished, allowing customization of the before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JSON container that the serialization result will be placed in. + + partial void AfterToJson(ref Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject container); + + /// + /// BeforeFromJson will be called before the json deserialization has commenced, allowing complete customization of + /// the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JsonNode that should be deserialized into this object. + /// Determines if the rest of the deserialization should be processed, or if the method should return + /// instantly. + + partial void BeforeFromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject json, ref bool returnNow); + + /// + /// BeforeToJson will be called before the json serialization has commenced, allowing complete customization of the + /// object before it is serialized. + /// If you wish to disable the default serialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JSON container that the serialization result will be placed in. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeToJson(ref Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerNamespaceSharedAccessKeys. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerNamespaceSharedAccessKeys. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerNamespaceSharedAccessKeys FromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject json ? new PartnerNamespaceSharedAccessKeys(json) : null; + } + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject instance to deserialize from. + internal PartnerNamespaceSharedAccessKeys(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject json) + { + bool returnNow = false; + BeforeFromJson(json, ref returnNow); + if (returnNow) + { + return; + } + {_key1 = If( json?.PropertyT("key1"), out var __jsonKey1) ? (string)__jsonKey1 : (string)Key1;} + {_key2 = If( json?.PropertyT("key2"), out var __jsonKey2) ? (string)__jsonKey2 : (string)Key2;} + AfterFromJson(json); + } + + /// + /// Serializes this instance of into a . + /// + /// The container to serialize this object into. If the caller + /// passes in null, a new instance will be created and returned to the caller. + /// Allows the caller to choose the depth of the serialization. See . + /// + /// a serialized instance of as a . + /// + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject(); + + bool returnNow = false; + BeforeToJson(ref container, ref returnNow); + if (returnNow) + { + return container; + } + AddIf( null != (((object)this._key1)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonString(this._key1.ToString()) : null, "key1" ,container.Add ); + AddIf( null != (((object)this._key2)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonString(this._key2.ToString()) : null, "key2" ,container.Add ); + AfterToJson(ref container); + return container; + } + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PartnerNamespaceUpdateParameterProperties.PowerShell.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PartnerNamespaceUpdateParameterProperties.PowerShell.cs new file mode 100644 index 000000000000..4425c1a6d15e --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PartnerNamespaceUpdateParameterProperties.PowerShell.cs @@ -0,0 +1,163 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell; + + /// Information of Partner Namespace update parameter properties. + [System.ComponentModel.TypeConverter(typeof(PartnerNamespaceUpdateParameterPropertiesTypeConverter))] + public partial class PartnerNamespaceUpdateParameterProperties + { + + /// + /// AfterDeserializeDictionary will be called after the deserialization has finished, allowing customization of the + /// object before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Collections.IDictionary content that should be used. + + partial void AfterDeserializeDictionary(global::System.Collections.IDictionary content); + + /// + /// AfterDeserializePSObject will be called after the deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Management.Automation.PSObject content that should be used. + + partial void AfterDeserializePSObject(global::System.Management.Automation.PSObject content); + + /// + /// BeforeDeserializeDictionary will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Collections.IDictionary content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializeDictionary(global::System.Collections.IDictionary content, ref bool returnNow); + + /// + /// BeforeDeserializePSObject will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializePSObject(global::System.Management.Automation.PSObject content, ref bool returnNow); + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerNamespaceUpdateParameterProperties DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new PartnerNamespaceUpdateParameterProperties(content); + } + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerNamespaceUpdateParameterProperties DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new PartnerNamespaceUpdateParameterProperties(content); + } + + /// + /// Creates a new instance of , deserializing the content from a json + /// string. + /// + /// a string containing a JSON serialized instance of this model. + /// + /// an instance of the model class. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerNamespaceUpdateParameterProperties FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode.Parse(jsonText)); + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + internal PartnerNamespaceUpdateParameterProperties(global::System.Collections.IDictionary content) + { + bool returnNow = false; + BeforeDeserializeDictionary(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("PublicNetworkAccess")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerNamespaceUpdateParameterPropertiesInternal)this).PublicNetworkAccess = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.PublicNetworkAccess?) content.GetValueForProperty("PublicNetworkAccess",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerNamespaceUpdateParameterPropertiesInternal)this).PublicNetworkAccess, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.PublicNetworkAccess.CreateFrom); + } + if (content.Contains("InboundIPRule")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerNamespaceUpdateParameterPropertiesInternal)this).InboundIPRule = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IInboundIPRule[]) content.GetValueForProperty("InboundIPRule",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerNamespaceUpdateParameterPropertiesInternal)this).InboundIPRule, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.InboundIPRuleTypeConverter.ConvertFrom)); + } + if (content.Contains("DisableLocalAuth")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerNamespaceUpdateParameterPropertiesInternal)this).DisableLocalAuth = (bool?) content.GetValueForProperty("DisableLocalAuth",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerNamespaceUpdateParameterPropertiesInternal)this).DisableLocalAuth, (__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 PartnerNamespaceUpdateParameterProperties(global::System.Management.Automation.PSObject content) + { + bool returnNow = false; + BeforeDeserializePSObject(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("PublicNetworkAccess")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerNamespaceUpdateParameterPropertiesInternal)this).PublicNetworkAccess = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.PublicNetworkAccess?) content.GetValueForProperty("PublicNetworkAccess",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerNamespaceUpdateParameterPropertiesInternal)this).PublicNetworkAccess, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.PublicNetworkAccess.CreateFrom); + } + if (content.Contains("InboundIPRule")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerNamespaceUpdateParameterPropertiesInternal)this).InboundIPRule = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IInboundIPRule[]) content.GetValueForProperty("InboundIPRule",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerNamespaceUpdateParameterPropertiesInternal)this).InboundIPRule, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.InboundIPRuleTypeConverter.ConvertFrom)); + } + if (content.Contains("DisableLocalAuth")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerNamespaceUpdateParameterPropertiesInternal)this).DisableLocalAuth = (bool?) content.GetValueForProperty("DisableLocalAuth",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerNamespaceUpdateParameterPropertiesInternal)this).DisableLocalAuth, (__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.EventGrid.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// Information of Partner Namespace update parameter properties. + [System.ComponentModel.TypeConverter(typeof(PartnerNamespaceUpdateParameterPropertiesTypeConverter))] + public partial interface IPartnerNamespaceUpdateParameterProperties + + { + + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PartnerNamespaceUpdateParameterProperties.TypeConverter.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PartnerNamespaceUpdateParameterProperties.TypeConverter.cs new file mode 100644 index 000000000000..2791bae339c1 --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PartnerNamespaceUpdateParameterProperties.TypeConverter.cs @@ -0,0 +1,150 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class PartnerNamespaceUpdateParameterPropertiesTypeConverter : global::System.Management.Automation.PSTypeConverter + { + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false. + /// + public override bool CanConvertFrom(object sourceValue, global::System.Type destinationType) => CanConvertFrom(sourceValue); + + /// + /// Determines if the converter can convert the parameter to the . + /// + /// the instance to check if it can be converted to the type. + /// + /// true if the instance could be converted to a type, otherwise + /// false + /// + public static bool CanConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return true; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + // we say yest to PSObjects + return true; + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + // we say yest to Hashtables/dictionaries + return true; + } + try + { + if (null != sourceValue.ToJsonString()) + { + return true; + } + } + catch + { + // Not one of our objects + } + try + { + string text = sourceValue.ToString()?.Trim(); + return true == text?.StartsWith("{") && true == text?.EndsWith("}") && Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonType.Object; + } + catch + { + // Doesn't look like it can be treated as JSON + } + return false; + } + + /// + /// Determines if the parameter can be converted to the parameter + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false + /// + public override bool CanConvertTo(object sourceValue, global::System.Type destinationType) => false; + + /// + /// Converts the parameter to the parameter using and + /// + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// + /// an instance of , or null if there is no suitable conversion. + /// + public override object ConvertFrom(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => ConvertFrom(sourceValue); + + /// + /// Converts the parameter to the parameter using and + /// + /// the value to convert into an instance of . + /// + /// an instance of , or null if there is no suitable conversion. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerNamespaceUpdateParameterProperties ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerNamespaceUpdateParameterProperties).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return PartnerNamespaceUpdateParameterProperties.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return PartnerNamespaceUpdateParameterProperties.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return PartnerNamespaceUpdateParameterProperties.DeserializeFromDictionary(sourceValue); + } + return null; + } + + /// NotImplemented -- this will return null + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// will always return null. + public override object ConvertTo(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => null; + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PartnerNamespaceUpdateParameterProperties.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PartnerNamespaceUpdateParameterProperties.cs new file mode 100644 index 000000000000..e8a0d537bfc4 --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PartnerNamespaceUpdateParameterProperties.cs @@ -0,0 +1,118 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Extensions; + + /// Information of Partner Namespace update parameter properties. + public partial class PartnerNamespaceUpdateParameterProperties : + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerNamespaceUpdateParameterProperties, + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerNamespaceUpdateParameterPropertiesInternal + { + + /// Backing field for property. + private bool? _disableLocalAuth; + + /// + /// This boolean is used to enable or disable local auth. Default value is false. When the property is set to true, only AAD + /// token will be used to authenticate if user is allowed to publish to the partner namespace. + /// + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Owned)] + public bool? DisableLocalAuth { get => this._disableLocalAuth; set => this._disableLocalAuth = value; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IInboundIPRule[] _inboundIPRule; + + /// + /// This can be used to restrict traffic from specific IPs instead of all IPs. Note: These are considered only if PublicNetworkAccess + /// is enabled. + /// + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Owned)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IInboundIPRule[] InboundIPRule { get => this._inboundIPRule; set => this._inboundIPRule = value; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.PublicNetworkAccess? _publicNetworkAccess; + + /// + /// This determines if traffic is allowed over public network. By default it is enabled. + /// You can further restrict to specific IPs by configuring + /// + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Owned)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.PublicNetworkAccess? PublicNetworkAccess { get => this._publicNetworkAccess; set => this._publicNetworkAccess = value; } + + /// + /// Creates an new instance. + /// + public PartnerNamespaceUpdateParameterProperties() + { + + } + } + /// Information of Partner Namespace update parameter properties. + public partial interface IPartnerNamespaceUpdateParameterProperties : + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IJsonSerializable + { + /// + /// This boolean is used to enable or disable local auth. Default value is false. When the property is set to true, only AAD + /// token will be used to authenticate if user is allowed to publish to the partner namespace. + /// + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"This boolean is used to enable or disable local auth. Default value is false. When the property is set to true, only AAD token will be used to authenticate if user is allowed to publish to the partner namespace.", + SerializedName = @"disableLocalAuth", + PossibleTypes = new [] { typeof(bool) })] + bool? DisableLocalAuth { get; set; } + /// + /// This can be used to restrict traffic from specific IPs instead of all IPs. Note: These are considered only if PublicNetworkAccess + /// is enabled. + /// + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"This can be used to restrict traffic from specific IPs instead of all IPs. Note: These are considered only if PublicNetworkAccess is enabled.", + SerializedName = @"inboundIpRules", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IInboundIPRule) })] + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IInboundIPRule[] InboundIPRule { get; set; } + /// + /// This determines if traffic is allowed over public network. By default it is enabled. + /// You can further restrict to specific IPs by configuring + /// + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"This determines if traffic is allowed over public network. By default it is enabled. + You can further restrict to specific IPs by configuring ", + SerializedName = @"publicNetworkAccess", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.PublicNetworkAccess) })] + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.PublicNetworkAccess? PublicNetworkAccess { get; set; } + + } + /// Information of Partner Namespace update parameter properties. + internal partial interface IPartnerNamespaceUpdateParameterPropertiesInternal + + { + /// + /// This boolean is used to enable or disable local auth. Default value is false. When the property is set to true, only AAD + /// token will be used to authenticate if user is allowed to publish to the partner namespace. + /// + bool? DisableLocalAuth { get; set; } + /// + /// This can be used to restrict traffic from specific IPs instead of all IPs. Note: These are considered only if PublicNetworkAccess + /// is enabled. + /// + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IInboundIPRule[] InboundIPRule { get; set; } + /// + /// This determines if traffic is allowed over public network. By default it is enabled. + /// You can further restrict to specific IPs by configuring + /// + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.PublicNetworkAccess? PublicNetworkAccess { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PartnerNamespaceUpdateParameterProperties.json.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PartnerNamespaceUpdateParameterProperties.json.cs new file mode 100644 index 000000000000..cdc064cde5ad --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PartnerNamespaceUpdateParameterProperties.json.cs @@ -0,0 +1,120 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Extensions; + + /// Information of Partner Namespace update parameter properties. + public partial class PartnerNamespaceUpdateParameterProperties + { + + /// + /// AfterFromJson will be called after the json deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JsonNode that should be deserialized into this object. + + partial void AfterFromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json erialization has finished, allowing customization of the before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JSON container that the serialization result will be placed in. + + partial void AfterToJson(ref Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject container); + + /// + /// BeforeFromJson will be called before the json deserialization has commenced, allowing complete customization of + /// the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JsonNode that should be deserialized into this object. + /// Determines if the rest of the deserialization should be processed, or if the method should return + /// instantly. + + partial void BeforeFromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject json, ref bool returnNow); + + /// + /// BeforeToJson will be called before the json serialization has commenced, allowing complete customization of the + /// object before it is serialized. + /// If you wish to disable the default serialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JSON container that the serialization result will be placed in. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeToJson(ref Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerNamespaceUpdateParameterProperties. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerNamespaceUpdateParameterProperties. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerNamespaceUpdateParameterProperties FromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject json ? new PartnerNamespaceUpdateParameterProperties(json) : null; + } + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject instance to deserialize from. + internal PartnerNamespaceUpdateParameterProperties(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject json) + { + bool returnNow = false; + BeforeFromJson(json, ref returnNow); + if (returnNow) + { + return; + } + {_publicNetworkAccess = If( json?.PropertyT("publicNetworkAccess"), out var __jsonPublicNetworkAccess) ? (string)__jsonPublicNetworkAccess : (string)PublicNetworkAccess;} + {_inboundIPRule = If( json?.PropertyT("inboundIpRules"), out var __jsonInboundIPRules) ? If( __jsonInboundIPRules as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Models.Api20211015Preview.IInboundIPRule) (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.InboundIPRule.FromJson(__u) )) ))() : null : InboundIPRule;} + {_disableLocalAuth = If( json?.PropertyT("disableLocalAuth"), out var __jsonDisableLocalAuth) ? (bool?)__jsonDisableLocalAuth : DisableLocalAuth;} + AfterFromJson(json); + } + + /// + /// Serializes this instance of into a . + /// + /// The container to serialize this object into. If the caller + /// passes in null, a new instance will be created and returned to the caller. + /// Allows the caller to choose the depth of the serialization. See . + /// + /// a serialized instance of as a . + /// + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject(); + + bool returnNow = false; + BeforeToJson(ref container, ref returnNow); + if (returnNow) + { + return container; + } + AddIf( null != (((object)this._publicNetworkAccess)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonString(this._publicNetworkAccess.ToString()) : null, "publicNetworkAccess" ,container.Add ); + if (null != this._inboundIPRule) + { + var __w = new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.XNodeArray(); + foreach( var __x in this._inboundIPRule ) + { + AddIf(__x?.ToJson(null, serializationMode) ,__w.Add); + } + container.Add("inboundIpRules",__w); + } + AddIf( null != this._disableLocalAuth ? (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode)new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonBoolean((bool)this._disableLocalAuth) : null, "disableLocalAuth" ,container.Add ); + AfterToJson(ref container); + return container; + } + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PartnerNamespaceUpdateParameters.PowerShell.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PartnerNamespaceUpdateParameters.PowerShell.cs new file mode 100644 index 000000000000..4c108b962e07 --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PartnerNamespaceUpdateParameters.PowerShell.cs @@ -0,0 +1,176 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell; + + /// Properties of the Partner Namespace update. + [System.ComponentModel.TypeConverter(typeof(PartnerNamespaceUpdateParametersTypeConverter))] + public partial class PartnerNamespaceUpdateParameters + { + + /// + /// AfterDeserializeDictionary will be called after the deserialization has finished, allowing customization of the + /// object before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Collections.IDictionary content that should be used. + + partial void AfterDeserializeDictionary(global::System.Collections.IDictionary content); + + /// + /// AfterDeserializePSObject will be called after the deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Management.Automation.PSObject content that should be used. + + partial void AfterDeserializePSObject(global::System.Management.Automation.PSObject content); + + /// + /// BeforeDeserializeDictionary will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Collections.IDictionary content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializeDictionary(global::System.Collections.IDictionary content, ref bool returnNow); + + /// + /// BeforeDeserializePSObject will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializePSObject(global::System.Management.Automation.PSObject content, ref bool returnNow); + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerNamespaceUpdateParameters DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new PartnerNamespaceUpdateParameters(content); + } + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerNamespaceUpdateParameters DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new PartnerNamespaceUpdateParameters(content); + } + + /// + /// Creates a new instance of , deserializing the content from a json string. + /// + /// a string containing a JSON serialized instance of this model. + /// an instance of the model class. + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerNamespaceUpdateParameters FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode.Parse(jsonText)); + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + internal PartnerNamespaceUpdateParameters(global::System.Collections.IDictionary content) + { + bool returnNow = false; + BeforeDeserializeDictionary(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("Property")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerNamespaceUpdateParametersInternal)this).Property = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerNamespaceUpdateParameterProperties) content.GetValueForProperty("Property",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerNamespaceUpdateParametersInternal)this).Property, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.PartnerNamespaceUpdateParameterPropertiesTypeConverter.ConvertFrom); + } + if (content.Contains("Tag")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerNamespaceUpdateParametersInternal)this).Tag = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerNamespaceUpdateParametersTags) content.GetValueForProperty("Tag",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerNamespaceUpdateParametersInternal)this).Tag, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.PartnerNamespaceUpdateParametersTagsTypeConverter.ConvertFrom); + } + if (content.Contains("PublicNetworkAccess")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerNamespaceUpdateParametersInternal)this).PublicNetworkAccess = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.PublicNetworkAccess?) content.GetValueForProperty("PublicNetworkAccess",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerNamespaceUpdateParametersInternal)this).PublicNetworkAccess, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.PublicNetworkAccess.CreateFrom); + } + if (content.Contains("InboundIPRule")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerNamespaceUpdateParametersInternal)this).InboundIPRule = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IInboundIPRule[]) content.GetValueForProperty("InboundIPRule",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerNamespaceUpdateParametersInternal)this).InboundIPRule, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.InboundIPRuleTypeConverter.ConvertFrom)); + } + if (content.Contains("DisableLocalAuth")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerNamespaceUpdateParametersInternal)this).DisableLocalAuth = (bool?) content.GetValueForProperty("DisableLocalAuth",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerNamespaceUpdateParametersInternal)this).DisableLocalAuth, (__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 PartnerNamespaceUpdateParameters(global::System.Management.Automation.PSObject content) + { + bool returnNow = false; + BeforeDeserializePSObject(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("Property")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerNamespaceUpdateParametersInternal)this).Property = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerNamespaceUpdateParameterProperties) content.GetValueForProperty("Property",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerNamespaceUpdateParametersInternal)this).Property, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.PartnerNamespaceUpdateParameterPropertiesTypeConverter.ConvertFrom); + } + if (content.Contains("Tag")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerNamespaceUpdateParametersInternal)this).Tag = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerNamespaceUpdateParametersTags) content.GetValueForProperty("Tag",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerNamespaceUpdateParametersInternal)this).Tag, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.PartnerNamespaceUpdateParametersTagsTypeConverter.ConvertFrom); + } + if (content.Contains("PublicNetworkAccess")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerNamespaceUpdateParametersInternal)this).PublicNetworkAccess = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.PublicNetworkAccess?) content.GetValueForProperty("PublicNetworkAccess",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerNamespaceUpdateParametersInternal)this).PublicNetworkAccess, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.PublicNetworkAccess.CreateFrom); + } + if (content.Contains("InboundIPRule")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerNamespaceUpdateParametersInternal)this).InboundIPRule = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IInboundIPRule[]) content.GetValueForProperty("InboundIPRule",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerNamespaceUpdateParametersInternal)this).InboundIPRule, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.InboundIPRuleTypeConverter.ConvertFrom)); + } + if (content.Contains("DisableLocalAuth")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerNamespaceUpdateParametersInternal)this).DisableLocalAuth = (bool?) content.GetValueForProperty("DisableLocalAuth",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerNamespaceUpdateParametersInternal)this).DisableLocalAuth, (__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.EventGrid.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// Properties of the Partner Namespace update. + [System.ComponentModel.TypeConverter(typeof(PartnerNamespaceUpdateParametersTypeConverter))] + public partial interface IPartnerNamespaceUpdateParameters + + { + + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PartnerNamespaceUpdateParameters.TypeConverter.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PartnerNamespaceUpdateParameters.TypeConverter.cs new file mode 100644 index 000000000000..e05ed6d8631e --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PartnerNamespaceUpdateParameters.TypeConverter.cs @@ -0,0 +1,147 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class PartnerNamespaceUpdateParametersTypeConverter : global::System.Management.Automation.PSTypeConverter + { + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false. + /// + public override bool CanConvertFrom(object sourceValue, global::System.Type destinationType) => CanConvertFrom(sourceValue); + + /// + /// Determines if the converter can convert the parameter to the . + /// + /// the instance to check if it can be converted to the type. + /// + /// true if the instance could be converted to a type, otherwise false + /// + public static bool CanConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return true; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + // we say yest to PSObjects + return true; + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + // we say yest to Hashtables/dictionaries + return true; + } + try + { + if (null != sourceValue.ToJsonString()) + { + return true; + } + } + catch + { + // Not one of our objects + } + try + { + string text = sourceValue.ToString()?.Trim(); + return true == text?.StartsWith("{") && true == text?.EndsWith("}") && Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonType.Object; + } + catch + { + // Doesn't look like it can be treated as JSON + } + return false; + } + + /// + /// Determines if the parameter can be converted to the parameter + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false + /// + public override bool CanConvertTo(object sourceValue, global::System.Type destinationType) => false; + + /// + /// Converts the parameter to the parameter using and + /// + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// + /// an instance of , or null if there is no suitable conversion. + /// + public override object ConvertFrom(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => ConvertFrom(sourceValue); + + /// + /// Converts the parameter to the parameter using and + /// + /// the value to convert into an instance of . + /// + /// an instance of , or null if there is no suitable conversion. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerNamespaceUpdateParameters ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerNamespaceUpdateParameters).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return PartnerNamespaceUpdateParameters.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return PartnerNamespaceUpdateParameters.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return PartnerNamespaceUpdateParameters.DeserializeFromDictionary(sourceValue); + } + return null; + } + + /// NotImplemented -- this will return null + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// will always return null. + public override object ConvertTo(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => null; + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PartnerNamespaceUpdateParameters.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PartnerNamespaceUpdateParameters.cs new file mode 100644 index 000000000000..7b8ec46bc4c9 --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PartnerNamespaceUpdateParameters.cs @@ -0,0 +1,136 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Extensions; + + /// Properties of the Partner Namespace update. + public partial class PartnerNamespaceUpdateParameters : + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerNamespaceUpdateParameters, + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerNamespaceUpdateParametersInternal + { + + /// + /// This boolean is used to enable or disable local auth. Default value is false. When the property is set to true, only AAD + /// token will be used to authenticate if user is allowed to publish to the partner namespace. + /// + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Inlined)] + public bool? DisableLocalAuth { get => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerNamespaceUpdateParameterPropertiesInternal)Property).DisableLocalAuth; set => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerNamespaceUpdateParameterPropertiesInternal)Property).DisableLocalAuth = value ?? default(bool); } + + /// + /// This can be used to restrict traffic from specific IPs instead of all IPs. Note: These are considered only if PublicNetworkAccess + /// is enabled. + /// + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Inlined)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IInboundIPRule[] InboundIPRule { get => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerNamespaceUpdateParameterPropertiesInternal)Property).InboundIPRule; set => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerNamespaceUpdateParameterPropertiesInternal)Property).InboundIPRule = value ?? null /* arrayOf */; } + + /// Internal Acessors for Property + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerNamespaceUpdateParameterProperties Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerNamespaceUpdateParametersInternal.Property { get => (this._property = this._property ?? new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.PartnerNamespaceUpdateParameterProperties()); set { {_property = value;} } } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerNamespaceUpdateParameterProperties _property; + + /// Properties of the Partner Namespace. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Owned)] + internal Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerNamespaceUpdateParameterProperties Property { get => (this._property = this._property ?? new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.PartnerNamespaceUpdateParameterProperties()); set => this._property = value; } + + /// + /// This determines if traffic is allowed over public network. By default it is enabled. + /// You can further restrict to specific IPs by configuring + /// + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Inlined)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.PublicNetworkAccess? PublicNetworkAccess { get => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerNamespaceUpdateParameterPropertiesInternal)Property).PublicNetworkAccess; set => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerNamespaceUpdateParameterPropertiesInternal)Property).PublicNetworkAccess = value ?? ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.PublicNetworkAccess)""); } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerNamespaceUpdateParametersTags _tag; + + /// Tags of the Partner Namespace. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Owned)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerNamespaceUpdateParametersTags Tag { get => (this._tag = this._tag ?? new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.PartnerNamespaceUpdateParametersTags()); set => this._tag = value; } + + /// Creates an new instance. + public PartnerNamespaceUpdateParameters() + { + + } + } + /// Properties of the Partner Namespace update. + public partial interface IPartnerNamespaceUpdateParameters : + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IJsonSerializable + { + /// + /// This boolean is used to enable or disable local auth. Default value is false. When the property is set to true, only AAD + /// token will be used to authenticate if user is allowed to publish to the partner namespace. + /// + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"This boolean is used to enable or disable local auth. Default value is false. When the property is set to true, only AAD token will be used to authenticate if user is allowed to publish to the partner namespace.", + SerializedName = @"disableLocalAuth", + PossibleTypes = new [] { typeof(bool) })] + bool? DisableLocalAuth { get; set; } + /// + /// This can be used to restrict traffic from specific IPs instead of all IPs. Note: These are considered only if PublicNetworkAccess + /// is enabled. + /// + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"This can be used to restrict traffic from specific IPs instead of all IPs. Note: These are considered only if PublicNetworkAccess is enabled.", + SerializedName = @"inboundIpRules", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IInboundIPRule) })] + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IInboundIPRule[] InboundIPRule { get; set; } + /// + /// This determines if traffic is allowed over public network. By default it is enabled. + /// You can further restrict to specific IPs by configuring + /// + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"This determines if traffic is allowed over public network. By default it is enabled. + You can further restrict to specific IPs by configuring ", + SerializedName = @"publicNetworkAccess", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.PublicNetworkAccess) })] + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.PublicNetworkAccess? PublicNetworkAccess { get; set; } + /// Tags of the Partner Namespace. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Tags of the Partner Namespace.", + SerializedName = @"tags", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerNamespaceUpdateParametersTags) })] + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerNamespaceUpdateParametersTags Tag { get; set; } + + } + /// Properties of the Partner Namespace update. + internal partial interface IPartnerNamespaceUpdateParametersInternal + + { + /// + /// This boolean is used to enable or disable local auth. Default value is false. When the property is set to true, only AAD + /// token will be used to authenticate if user is allowed to publish to the partner namespace. + /// + bool? DisableLocalAuth { get; set; } + /// + /// This can be used to restrict traffic from specific IPs instead of all IPs. Note: These are considered only if PublicNetworkAccess + /// is enabled. + /// + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IInboundIPRule[] InboundIPRule { get; set; } + /// Properties of the Partner Namespace. + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerNamespaceUpdateParameterProperties Property { get; set; } + /// + /// This determines if traffic is allowed over public network. By default it is enabled. + /// You can further restrict to specific IPs by configuring + /// + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.PublicNetworkAccess? PublicNetworkAccess { get; set; } + /// Tags of the Partner Namespace. + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerNamespaceUpdateParametersTags Tag { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PartnerNamespaceUpdateParameters.json.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PartnerNamespaceUpdateParameters.json.cs new file mode 100644 index 000000000000..86cd3ba7c3bf --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PartnerNamespaceUpdateParameters.json.cs @@ -0,0 +1,108 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Extensions; + + /// Properties of the Partner Namespace update. + public partial class PartnerNamespaceUpdateParameters + { + + /// + /// AfterFromJson will be called after the json deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JsonNode that should be deserialized into this object. + + partial void AfterFromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json erialization has finished, allowing customization of the before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JSON container that the serialization result will be placed in. + + partial void AfterToJson(ref Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject container); + + /// + /// BeforeFromJson will be called before the json deserialization has commenced, allowing complete customization of + /// the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JsonNode that should be deserialized into this object. + /// Determines if the rest of the deserialization should be processed, or if the method should return + /// instantly. + + partial void BeforeFromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject json, ref bool returnNow); + + /// + /// BeforeToJson will be called before the json serialization has commenced, allowing complete customization of the + /// object before it is serialized. + /// If you wish to disable the default serialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JSON container that the serialization result will be placed in. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeToJson(ref Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerNamespaceUpdateParameters. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerNamespaceUpdateParameters. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerNamespaceUpdateParameters FromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject json ? new PartnerNamespaceUpdateParameters(json) : null; + } + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject instance to deserialize from. + internal PartnerNamespaceUpdateParameters(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Models.Api20211015Preview.PartnerNamespaceUpdateParameterProperties.FromJson(__jsonProperties) : Property;} + {_tag = If( json?.PropertyT("tags"), out var __jsonTags) ? Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.PartnerNamespaceUpdateParametersTags.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.EventGrid.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject(); + + bool returnNow = false; + BeforeToJson(ref container, ref returnNow); + if (returnNow) + { + return container; + } + AddIf( null != this._property ? (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode) this._property.ToJson(null,serializationMode) : null, "properties" ,container.Add ); + AddIf( null != this._tag ? (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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/eventgrid/generated/api/Models/Api20211015Preview/PartnerNamespaceUpdateParametersTags.PowerShell.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PartnerNamespaceUpdateParametersTags.PowerShell.cs new file mode 100644 index 000000000000..6ebe6a47f39e --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PartnerNamespaceUpdateParametersTags.PowerShell.cs @@ -0,0 +1,142 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell; + + /// Tags of the Partner Namespace. + [System.ComponentModel.TypeConverter(typeof(PartnerNamespaceUpdateParametersTagsTypeConverter))] + public partial class PartnerNamespaceUpdateParametersTags + { + + /// + /// AfterDeserializeDictionary will be called after the deserialization has finished, allowing customization of the + /// object before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Collections.IDictionary content that should be used. + + partial void AfterDeserializeDictionary(global::System.Collections.IDictionary content); + + /// + /// AfterDeserializePSObject will be called after the deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Management.Automation.PSObject content that should be used. + + partial void AfterDeserializePSObject(global::System.Management.Automation.PSObject content); + + /// + /// BeforeDeserializeDictionary will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Collections.IDictionary content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializeDictionary(global::System.Collections.IDictionary content, ref bool returnNow); + + /// + /// BeforeDeserializePSObject will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializePSObject(global::System.Management.Automation.PSObject content, ref bool returnNow); + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerNamespaceUpdateParametersTags DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new PartnerNamespaceUpdateParametersTags(content); + } + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerNamespaceUpdateParametersTags DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new PartnerNamespaceUpdateParametersTags(content); + } + + /// + /// Creates a new instance of , deserializing the content from a json string. + /// + /// a string containing a JSON serialized instance of this model. + /// + /// an instance of the model class. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerNamespaceUpdateParametersTags FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode.Parse(jsonText)); + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + internal PartnerNamespaceUpdateParametersTags(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 PartnerNamespaceUpdateParametersTags(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.EventGrid.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// Tags of the Partner Namespace. + [System.ComponentModel.TypeConverter(typeof(PartnerNamespaceUpdateParametersTagsTypeConverter))] + public partial interface IPartnerNamespaceUpdateParametersTags + + { + + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PartnerNamespaceUpdateParametersTags.TypeConverter.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PartnerNamespaceUpdateParametersTags.TypeConverter.cs new file mode 100644 index 000000000000..6eced5b7c3e0 --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PartnerNamespaceUpdateParametersTags.TypeConverter.cs @@ -0,0 +1,149 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class PartnerNamespaceUpdateParametersTagsTypeConverter : global::System.Management.Automation.PSTypeConverter + { + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false. + /// + public override bool CanConvertFrom(object sourceValue, global::System.Type destinationType) => CanConvertFrom(sourceValue); + + /// + /// Determines if the converter can convert the parameter to the . + /// + /// the instance to check if it can be converted to the type. + /// + /// true if the instance could be converted to a type, otherwise + /// false + /// + public static bool CanConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return true; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + // we say yest to PSObjects + return true; + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + // we say yest to Hashtables/dictionaries + return true; + } + try + { + if (null != sourceValue.ToJsonString()) + { + return true; + } + } + catch + { + // Not one of our objects + } + try + { + string text = sourceValue.ToString()?.Trim(); + return true == text?.StartsWith("{") && true == text?.EndsWith("}") && Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonType.Object; + } + catch + { + // Doesn't look like it can be treated as JSON + } + return false; + } + + /// + /// Determines if the parameter can be converted to the parameter + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false + /// + public override bool CanConvertTo(object sourceValue, global::System.Type destinationType) => false; + + /// + /// Converts the parameter to the parameter using and + /// + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// + /// an instance of , or null if there is no suitable conversion. + /// + public override object ConvertFrom(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => ConvertFrom(sourceValue); + + /// + /// Converts the parameter to the parameter using and + /// + /// the value to convert into an instance of . + /// + /// an instance of , or null if there is no suitable conversion. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerNamespaceUpdateParametersTags ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerNamespaceUpdateParametersTags).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return PartnerNamespaceUpdateParametersTags.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return PartnerNamespaceUpdateParametersTags.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return PartnerNamespaceUpdateParametersTags.DeserializeFromDictionary(sourceValue); + } + return null; + } + + /// NotImplemented -- this will return null + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// will always return null. + public override object ConvertTo(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => null; + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PartnerNamespaceUpdateParametersTags.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PartnerNamespaceUpdateParametersTags.cs new file mode 100644 index 000000000000..d659df0a7117 --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PartnerNamespaceUpdateParametersTags.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.EventGrid.Models.Api20211015Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Extensions; + + /// Tags of the Partner Namespace. + public partial class PartnerNamespaceUpdateParametersTags : + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerNamespaceUpdateParametersTags, + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerNamespaceUpdateParametersTagsInternal + { + + /// Creates an new instance. + public PartnerNamespaceUpdateParametersTags() + { + + } + } + /// Tags of the Partner Namespace. + public partial interface IPartnerNamespaceUpdateParametersTags : + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IJsonSerializable, + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IAssociativeArray + { + + } + /// Tags of the Partner Namespace. + internal partial interface IPartnerNamespaceUpdateParametersTagsInternal + + { + + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PartnerNamespaceUpdateParametersTags.dictionary.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PartnerNamespaceUpdateParametersTags.dictionary.cs new file mode 100644 index 000000000000..19c6123dc6a0 --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PartnerNamespaceUpdateParametersTags.dictionary.cs @@ -0,0 +1,75 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Extensions; + + public partial class PartnerNamespaceUpdateParametersTags : + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IAssociativeArray + { + protected global::System.Collections.Generic.Dictionary __additionalProperties = new global::System.Collections.Generic.Dictionary(); + + global::System.Collections.Generic.IDictionary Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IAssociativeArray.AdditionalProperties { get => __additionalProperties; } + + int Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IAssociativeArray.Count { get => __additionalProperties.Count; } + + global::System.Collections.Generic.IEnumerable Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IAssociativeArray.Keys { get => __additionalProperties.Keys; } + + global::System.Collections.Generic.IEnumerable Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.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.EventGrid.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.EventGrid.Models.Api20211015Preview.PartnerNamespaceUpdateParametersTags source) => source.__additionalProperties; + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PartnerNamespaceUpdateParametersTags.json.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PartnerNamespaceUpdateParametersTags.json.cs new file mode 100644 index 000000000000..bd07d779428d --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PartnerNamespaceUpdateParametersTags.json.cs @@ -0,0 +1,108 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Extensions; + + /// Tags of the Partner Namespace. + public partial class PartnerNamespaceUpdateParametersTags + { + + /// + /// AfterFromJson will be called after the json deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JsonNode that should be deserialized into this object. + + partial void AfterFromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json erialization has finished, allowing customization of the before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JSON container that the serialization result will be placed in. + + partial void AfterToJson(ref Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject container); + + /// + /// BeforeFromJson will be called before the json deserialization has commenced, allowing complete customization of + /// the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JsonNode that should be deserialized into this object. + /// Determines if the rest of the deserialization should be processed, or if the method should return + /// instantly. + + partial void BeforeFromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject json, ref bool returnNow); + + /// + /// BeforeToJson will be called before the json serialization has commenced, allowing complete customization of the + /// object before it is serialized. + /// If you wish to disable the default serialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JSON container that the serialization result will be placed in. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeToJson(ref Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerNamespaceUpdateParametersTags. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerNamespaceUpdateParametersTags. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerNamespaceUpdateParametersTags FromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject json ? new PartnerNamespaceUpdateParametersTags(json) : null; + } + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject instance to deserialize from. + /// + internal PartnerNamespaceUpdateParametersTags(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Runtime.JsonSerializable.FromJson( json, ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject(); + + bool returnNow = false; + BeforeToJson(ref container, ref returnNow); + if (returnNow) + { + return container; + } + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.JsonSerializable.ToJson( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IAssociativeArray)this).AdditionalProperties, container); + AfterToJson(ref container); + return container; + } + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PartnerNamespacesListResult.PowerShell.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PartnerNamespacesListResult.PowerShell.cs new file mode 100644 index 000000000000..1a30840cb30f --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PartnerNamespacesListResult.PowerShell.cs @@ -0,0 +1,152 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell; + + /// Result of the List Partner Namespaces operation + [System.ComponentModel.TypeConverter(typeof(PartnerNamespacesListResultTypeConverter))] + public partial class PartnerNamespacesListResult + { + + /// + /// AfterDeserializeDictionary will be called after the deserialization has finished, allowing customization of the + /// object before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Collections.IDictionary content that should be used. + + partial void AfterDeserializeDictionary(global::System.Collections.IDictionary content); + + /// + /// AfterDeserializePSObject will be called after the deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Management.Automation.PSObject content that should be used. + + partial void AfterDeserializePSObject(global::System.Management.Automation.PSObject content); + + /// + /// BeforeDeserializeDictionary will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Collections.IDictionary content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializeDictionary(global::System.Collections.IDictionary content, ref bool returnNow); + + /// + /// BeforeDeserializePSObject will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializePSObject(global::System.Management.Automation.PSObject content, ref bool returnNow); + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerNamespacesListResult DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new PartnerNamespacesListResult(content); + } + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerNamespacesListResult DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new PartnerNamespacesListResult(content); + } + + /// + /// Creates a new instance of , deserializing the content from a json string. + /// + /// a string containing a JSON serialized instance of this model. + /// an instance of the model class. + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerNamespacesListResult FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode.Parse(jsonText)); + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + internal PartnerNamespacesListResult(global::System.Collections.IDictionary content) + { + bool returnNow = false; + BeforeDeserializeDictionary(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("Value")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerNamespacesListResultInternal)this).Value = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerNamespace[]) content.GetValueForProperty("Value",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerNamespacesListResultInternal)this).Value, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.PartnerNamespaceTypeConverter.ConvertFrom)); + } + if (content.Contains("NextLink")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerNamespacesListResultInternal)this).NextLink = (string) content.GetValueForProperty("NextLink",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerNamespacesListResultInternal)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 PartnerNamespacesListResult(global::System.Management.Automation.PSObject content) + { + bool returnNow = false; + BeforeDeserializePSObject(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("Value")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerNamespacesListResultInternal)this).Value = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerNamespace[]) content.GetValueForProperty("Value",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerNamespacesListResultInternal)this).Value, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.PartnerNamespaceTypeConverter.ConvertFrom)); + } + if (content.Contains("NextLink")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerNamespacesListResultInternal)this).NextLink = (string) content.GetValueForProperty("NextLink",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerNamespacesListResultInternal)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.EventGrid.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// Result of the List Partner Namespaces operation + [System.ComponentModel.TypeConverter(typeof(PartnerNamespacesListResultTypeConverter))] + public partial interface IPartnerNamespacesListResult + + { + + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PartnerNamespacesListResult.TypeConverter.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PartnerNamespacesListResult.TypeConverter.cs new file mode 100644 index 000000000000..cab149a1fbfc --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PartnerNamespacesListResult.TypeConverter.cs @@ -0,0 +1,147 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class PartnerNamespacesListResultTypeConverter : global::System.Management.Automation.PSTypeConverter + { + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false. + /// + public override bool CanConvertFrom(object sourceValue, global::System.Type destinationType) => CanConvertFrom(sourceValue); + + /// + /// Determines if the converter can convert the parameter to the . + /// + /// the instance to check if it can be converted to the type. + /// + /// true if the instance could be converted to a type, otherwise false + /// + public static bool CanConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return true; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + // we say yest to PSObjects + return true; + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + // we say yest to Hashtables/dictionaries + return true; + } + try + { + if (null != sourceValue.ToJsonString()) + { + return true; + } + } + catch + { + // Not one of our objects + } + try + { + string text = sourceValue.ToString()?.Trim(); + return true == text?.StartsWith("{") && true == text?.EndsWith("}") && Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonType.Object; + } + catch + { + // Doesn't look like it can be treated as JSON + } + return false; + } + + /// + /// Determines if the parameter can be converted to the parameter + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false + /// + public override bool CanConvertTo(object sourceValue, global::System.Type destinationType) => false; + + /// + /// Converts the parameter to the parameter using and + /// + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// + /// an instance of , or null if there is no suitable conversion. + /// + public override object ConvertFrom(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => ConvertFrom(sourceValue); + + /// + /// Converts the parameter to the parameter using and + /// + /// the value to convert into an instance of . + /// + /// an instance of , or null if there is no suitable conversion. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerNamespacesListResult ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerNamespacesListResult).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return PartnerNamespacesListResult.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return PartnerNamespacesListResult.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return PartnerNamespacesListResult.DeserializeFromDictionary(sourceValue); + } + return null; + } + + /// NotImplemented -- this will return null + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// will always return null. + public override object ConvertTo(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => null; + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PartnerNamespacesListResult.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PartnerNamespacesListResult.cs new file mode 100644 index 000000000000..ca54ee63a59f --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PartnerNamespacesListResult.cs @@ -0,0 +1,68 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Extensions; + + /// Result of the List Partner Namespaces operation + public partial class PartnerNamespacesListResult : + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerNamespacesListResult, + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerNamespacesListResultInternal + { + + /// Backing field for property. + private string _nextLink; + + /// A link for the next page of partner namespaces. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Owned)] + public string NextLink { get => this._nextLink; set => this._nextLink = value; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerNamespace[] _value; + + /// A collection of partner namespaces. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Owned)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerNamespace[] Value { get => this._value; set => this._value = value; } + + /// Creates an new instance. + public PartnerNamespacesListResult() + { + + } + } + /// Result of the List Partner Namespaces operation + public partial interface IPartnerNamespacesListResult : + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IJsonSerializable + { + /// A link for the next page of partner namespaces. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"A link for the next page of partner namespaces.", + SerializedName = @"nextLink", + PossibleTypes = new [] { typeof(string) })] + string NextLink { get; set; } + /// A collection of partner namespaces. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"A collection of partner namespaces.", + SerializedName = @"value", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerNamespace) })] + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerNamespace[] Value { get; set; } + + } + /// Result of the List Partner Namespaces operation + internal partial interface IPartnerNamespacesListResultInternal + + { + /// A link for the next page of partner namespaces. + string NextLink { get; set; } + /// A collection of partner namespaces. + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerNamespace[] Value { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PartnerNamespacesListResult.json.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PartnerNamespacesListResult.json.cs new file mode 100644 index 000000000000..cd33d93ae1dc --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PartnerNamespacesListResult.json.cs @@ -0,0 +1,116 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Extensions; + + /// Result of the List Partner Namespaces operation + public partial class PartnerNamespacesListResult + { + + /// + /// AfterFromJson will be called after the json deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JsonNode that should be deserialized into this object. + + partial void AfterFromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json erialization has finished, allowing customization of the before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JSON container that the serialization result will be placed in. + + partial void AfterToJson(ref Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject container); + + /// + /// BeforeFromJson will be called before the json deserialization has commenced, allowing complete customization of + /// the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JsonNode that should be deserialized into this object. + /// Determines if the rest of the deserialization should be processed, or if the method should return + /// instantly. + + partial void BeforeFromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject json, ref bool returnNow); + + /// + /// BeforeToJson will be called before the json serialization has commenced, allowing complete customization of the + /// object before it is serialized. + /// If you wish to disable the default serialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JSON container that the serialization result will be placed in. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeToJson(ref Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerNamespacesListResult. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerNamespacesListResult. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerNamespacesListResult FromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject json ? new PartnerNamespacesListResult(json) : null; + } + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject instance to deserialize from. + internal PartnerNamespacesListResult(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.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.EventGrid.Models.Api20211015Preview.IPartnerNamespace) (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.PartnerNamespace.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.EventGrid.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Runtime.Json.XNodeArray(); + foreach( var __x in this._value ) + { + AddIf(__x?.ToJson(null, serializationMode) ,__w.Add); + } + container.Add("value",__w); + } + AddIf( null != (((object)this._nextLink)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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/eventgrid/generated/api/Models/Api20211015Preview/PartnerRegistration.PowerShell.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PartnerRegistration.PowerShell.cs new file mode 100644 index 000000000000..d7865b504796 --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PartnerRegistration.PowerShell.cs @@ -0,0 +1,352 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell; + + /// Information about a partner registration. + [System.ComponentModel.TypeConverter(typeof(PartnerRegistrationTypeConverter))] + public partial class PartnerRegistration + { + + /// + /// AfterDeserializeDictionary will be called after the deserialization has finished, allowing customization of the + /// object before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Collections.IDictionary content that should be used. + + partial void AfterDeserializeDictionary(global::System.Collections.IDictionary content); + + /// + /// AfterDeserializePSObject will be called after the deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Management.Automation.PSObject content that should be used. + + partial void AfterDeserializePSObject(global::System.Management.Automation.PSObject content); + + /// + /// BeforeDeserializeDictionary will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Collections.IDictionary content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializeDictionary(global::System.Collections.IDictionary content, ref bool returnNow); + + /// + /// BeforeDeserializePSObject will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializePSObject(global::System.Management.Automation.PSObject content, ref bool returnNow); + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerRegistration DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new PartnerRegistration(content); + } + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerRegistration DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new PartnerRegistration(content); + } + + /// + /// Creates a new instance of , deserializing the content from a json string. + /// + /// a string containing a JSON serialized instance of this model. + /// an instance of the model class. + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerRegistration FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode.Parse(jsonText)); + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + internal PartnerRegistration(global::System.Collections.IDictionary content) + { + bool returnNow = false; + BeforeDeserializeDictionary(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("Property")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerRegistrationInternal)this).Property = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerRegistrationProperties) content.GetValueForProperty("Property",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerRegistrationInternal)this).Property, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.PartnerRegistrationPropertiesTypeConverter.ConvertFrom); + } + if (content.Contains("SystemData")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerRegistrationInternal)this).SystemData = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20.ISystemData) content.GetValueForProperty("SystemData",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerRegistrationInternal)this).SystemData, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20.SystemDataTypeConverter.ConvertFrom); + } + if (content.Contains("Id")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IResourceInternal)this).Id = (string) content.GetValueForProperty("Id",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IResourceInternal)this).Id, global::System.Convert.ToString); + } + if (content.Contains("Name")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IResourceInternal)this).Name = (string) content.GetValueForProperty("Name",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IResourceInternal)this).Name, global::System.Convert.ToString); + } + if (content.Contains("Type")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IResourceInternal)this).Type = (string) content.GetValueForProperty("Type",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IResourceInternal)this).Type, global::System.Convert.ToString); + } + if (content.Contains("Location")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITrackedResourceInternal)this).Location = (string) content.GetValueForProperty("Location",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITrackedResourceInternal)this).Location, global::System.Convert.ToString); + } + if (content.Contains("Tag")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITrackedResourceInternal)this).Tag = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITrackedResourceTags) content.GetValueForProperty("Tag",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITrackedResourceInternal)this).Tag, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.TrackedResourceTagsTypeConverter.ConvertFrom); + } + if (content.Contains("SystemDataCreatedBy")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerRegistrationInternal)this).SystemDataCreatedBy = (string) content.GetValueForProperty("SystemDataCreatedBy",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerRegistrationInternal)this).SystemDataCreatedBy, global::System.Convert.ToString); + } + if (content.Contains("SystemDataCreatedAt")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerRegistrationInternal)this).SystemDataCreatedAt = (global::System.DateTime?) content.GetValueForProperty("SystemDataCreatedAt",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerRegistrationInternal)this).SystemDataCreatedAt, (v) => v is global::System.DateTime _v ? _v : global::System.Xml.XmlConvert.ToDateTime( v.ToString() , global::System.Xml.XmlDateTimeSerializationMode.Unspecified)); + } + if (content.Contains("ProvisioningState")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerRegistrationInternal)this).ProvisioningState = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.PartnerRegistrationProvisioningState?) content.GetValueForProperty("ProvisioningState",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerRegistrationInternal)this).ProvisioningState, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.PartnerRegistrationProvisioningState.CreateFrom); + } + if (content.Contains("ImmutableId")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerRegistrationInternal)this).ImmutableId = (string) content.GetValueForProperty("ImmutableId",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerRegistrationInternal)this).ImmutableId, global::System.Convert.ToString); + } + if (content.Contains("PartnerName")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerRegistrationInternal)this).PartnerName = (string) content.GetValueForProperty("PartnerName",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerRegistrationInternal)this).PartnerName, global::System.Convert.ToString); + } + if (content.Contains("PartnerResourceTypeName")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerRegistrationInternal)this).PartnerResourceTypeName = (string) content.GetValueForProperty("PartnerResourceTypeName",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerRegistrationInternal)this).PartnerResourceTypeName, global::System.Convert.ToString); + } + if (content.Contains("PartnerResourceTypeDisplayName")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerRegistrationInternal)this).PartnerResourceTypeDisplayName = (string) content.GetValueForProperty("PartnerResourceTypeDisplayName",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerRegistrationInternal)this).PartnerResourceTypeDisplayName, global::System.Convert.ToString); + } + if (content.Contains("PartnerResourceTypeDescription")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerRegistrationInternal)this).PartnerResourceTypeDescription = (string) content.GetValueForProperty("PartnerResourceTypeDescription",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerRegistrationInternal)this).PartnerResourceTypeDescription, global::System.Convert.ToString); + } + if (content.Contains("LongDescription")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerRegistrationInternal)this).LongDescription = (string) content.GetValueForProperty("LongDescription",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerRegistrationInternal)this).LongDescription, global::System.Convert.ToString); + } + if (content.Contains("PartnerCustomerServiceNumber")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerRegistrationInternal)this).PartnerCustomerServiceNumber = (string) content.GetValueForProperty("PartnerCustomerServiceNumber",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerRegistrationInternal)this).PartnerCustomerServiceNumber, global::System.Convert.ToString); + } + if (content.Contains("PartnerCustomerServiceExtension")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerRegistrationInternal)this).PartnerCustomerServiceExtension = (string) content.GetValueForProperty("PartnerCustomerServiceExtension",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerRegistrationInternal)this).PartnerCustomerServiceExtension, global::System.Convert.ToString); + } + if (content.Contains("CustomerServiceUri")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerRegistrationInternal)this).CustomerServiceUri = (string) content.GetValueForProperty("CustomerServiceUri",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerRegistrationInternal)this).CustomerServiceUri, global::System.Convert.ToString); + } + if (content.Contains("SetupUri")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerRegistrationInternal)this).SetupUri = (string) content.GetValueForProperty("SetupUri",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerRegistrationInternal)this).SetupUri, global::System.Convert.ToString); + } + if (content.Contains("LogoUri")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerRegistrationInternal)this).LogoUri = (string) content.GetValueForProperty("LogoUri",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerRegistrationInternal)this).LogoUri, global::System.Convert.ToString); + } + if (content.Contains("VisibilityState")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerRegistrationInternal)this).VisibilityState = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.PartnerRegistrationVisibilityState?) content.GetValueForProperty("VisibilityState",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerRegistrationInternal)this).VisibilityState, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.PartnerRegistrationVisibilityState.CreateFrom); + } + if (content.Contains("AuthorizedAzureSubscriptionId")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerRegistrationInternal)this).AuthorizedAzureSubscriptionId = (string[]) content.GetValueForProperty("AuthorizedAzureSubscriptionId",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerRegistrationInternal)this).AuthorizedAzureSubscriptionId, __y => TypeConverterExtensions.SelectToArray(__y, global::System.Convert.ToString)); + } + if (content.Contains("SystemDataCreatedByType")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerRegistrationInternal)this).SystemDataCreatedByType = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.CreatedByType?) content.GetValueForProperty("SystemDataCreatedByType",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerRegistrationInternal)this).SystemDataCreatedByType, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.CreatedByType.CreateFrom); + } + if (content.Contains("SystemDataLastModifiedBy")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerRegistrationInternal)this).SystemDataLastModifiedBy = (string) content.GetValueForProperty("SystemDataLastModifiedBy",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerRegistrationInternal)this).SystemDataLastModifiedBy, global::System.Convert.ToString); + } + if (content.Contains("SystemDataLastModifiedByType")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerRegistrationInternal)this).SystemDataLastModifiedByType = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.CreatedByType?) content.GetValueForProperty("SystemDataLastModifiedByType",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerRegistrationInternal)this).SystemDataLastModifiedByType, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.CreatedByType.CreateFrom); + } + if (content.Contains("SystemDataLastModifiedAt")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerRegistrationInternal)this).SystemDataLastModifiedAt = (global::System.DateTime?) content.GetValueForProperty("SystemDataLastModifiedAt",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerRegistrationInternal)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 PartnerRegistration(global::System.Management.Automation.PSObject content) + { + bool returnNow = false; + BeforeDeserializePSObject(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("Property")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerRegistrationInternal)this).Property = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerRegistrationProperties) content.GetValueForProperty("Property",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerRegistrationInternal)this).Property, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.PartnerRegistrationPropertiesTypeConverter.ConvertFrom); + } + if (content.Contains("SystemData")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerRegistrationInternal)this).SystemData = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20.ISystemData) content.GetValueForProperty("SystemData",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerRegistrationInternal)this).SystemData, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20.SystemDataTypeConverter.ConvertFrom); + } + if (content.Contains("Id")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IResourceInternal)this).Id = (string) content.GetValueForProperty("Id",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IResourceInternal)this).Id, global::System.Convert.ToString); + } + if (content.Contains("Name")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IResourceInternal)this).Name = (string) content.GetValueForProperty("Name",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IResourceInternal)this).Name, global::System.Convert.ToString); + } + if (content.Contains("Type")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IResourceInternal)this).Type = (string) content.GetValueForProperty("Type",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IResourceInternal)this).Type, global::System.Convert.ToString); + } + if (content.Contains("Location")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITrackedResourceInternal)this).Location = (string) content.GetValueForProperty("Location",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITrackedResourceInternal)this).Location, global::System.Convert.ToString); + } + if (content.Contains("Tag")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITrackedResourceInternal)this).Tag = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITrackedResourceTags) content.GetValueForProperty("Tag",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITrackedResourceInternal)this).Tag, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.TrackedResourceTagsTypeConverter.ConvertFrom); + } + if (content.Contains("SystemDataCreatedBy")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerRegistrationInternal)this).SystemDataCreatedBy = (string) content.GetValueForProperty("SystemDataCreatedBy",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerRegistrationInternal)this).SystemDataCreatedBy, global::System.Convert.ToString); + } + if (content.Contains("SystemDataCreatedAt")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerRegistrationInternal)this).SystemDataCreatedAt = (global::System.DateTime?) content.GetValueForProperty("SystemDataCreatedAt",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerRegistrationInternal)this).SystemDataCreatedAt, (v) => v is global::System.DateTime _v ? _v : global::System.Xml.XmlConvert.ToDateTime( v.ToString() , global::System.Xml.XmlDateTimeSerializationMode.Unspecified)); + } + if (content.Contains("ProvisioningState")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerRegistrationInternal)this).ProvisioningState = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.PartnerRegistrationProvisioningState?) content.GetValueForProperty("ProvisioningState",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerRegistrationInternal)this).ProvisioningState, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.PartnerRegistrationProvisioningState.CreateFrom); + } + if (content.Contains("ImmutableId")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerRegistrationInternal)this).ImmutableId = (string) content.GetValueForProperty("ImmutableId",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerRegistrationInternal)this).ImmutableId, global::System.Convert.ToString); + } + if (content.Contains("PartnerName")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerRegistrationInternal)this).PartnerName = (string) content.GetValueForProperty("PartnerName",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerRegistrationInternal)this).PartnerName, global::System.Convert.ToString); + } + if (content.Contains("PartnerResourceTypeName")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerRegistrationInternal)this).PartnerResourceTypeName = (string) content.GetValueForProperty("PartnerResourceTypeName",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerRegistrationInternal)this).PartnerResourceTypeName, global::System.Convert.ToString); + } + if (content.Contains("PartnerResourceTypeDisplayName")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerRegistrationInternal)this).PartnerResourceTypeDisplayName = (string) content.GetValueForProperty("PartnerResourceTypeDisplayName",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerRegistrationInternal)this).PartnerResourceTypeDisplayName, global::System.Convert.ToString); + } + if (content.Contains("PartnerResourceTypeDescription")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerRegistrationInternal)this).PartnerResourceTypeDescription = (string) content.GetValueForProperty("PartnerResourceTypeDescription",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerRegistrationInternal)this).PartnerResourceTypeDescription, global::System.Convert.ToString); + } + if (content.Contains("LongDescription")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerRegistrationInternal)this).LongDescription = (string) content.GetValueForProperty("LongDescription",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerRegistrationInternal)this).LongDescription, global::System.Convert.ToString); + } + if (content.Contains("PartnerCustomerServiceNumber")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerRegistrationInternal)this).PartnerCustomerServiceNumber = (string) content.GetValueForProperty("PartnerCustomerServiceNumber",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerRegistrationInternal)this).PartnerCustomerServiceNumber, global::System.Convert.ToString); + } + if (content.Contains("PartnerCustomerServiceExtension")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerRegistrationInternal)this).PartnerCustomerServiceExtension = (string) content.GetValueForProperty("PartnerCustomerServiceExtension",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerRegistrationInternal)this).PartnerCustomerServiceExtension, global::System.Convert.ToString); + } + if (content.Contains("CustomerServiceUri")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerRegistrationInternal)this).CustomerServiceUri = (string) content.GetValueForProperty("CustomerServiceUri",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerRegistrationInternal)this).CustomerServiceUri, global::System.Convert.ToString); + } + if (content.Contains("SetupUri")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerRegistrationInternal)this).SetupUri = (string) content.GetValueForProperty("SetupUri",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerRegistrationInternal)this).SetupUri, global::System.Convert.ToString); + } + if (content.Contains("LogoUri")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerRegistrationInternal)this).LogoUri = (string) content.GetValueForProperty("LogoUri",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerRegistrationInternal)this).LogoUri, global::System.Convert.ToString); + } + if (content.Contains("VisibilityState")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerRegistrationInternal)this).VisibilityState = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.PartnerRegistrationVisibilityState?) content.GetValueForProperty("VisibilityState",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerRegistrationInternal)this).VisibilityState, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.PartnerRegistrationVisibilityState.CreateFrom); + } + if (content.Contains("AuthorizedAzureSubscriptionId")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerRegistrationInternal)this).AuthorizedAzureSubscriptionId = (string[]) content.GetValueForProperty("AuthorizedAzureSubscriptionId",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerRegistrationInternal)this).AuthorizedAzureSubscriptionId, __y => TypeConverterExtensions.SelectToArray(__y, global::System.Convert.ToString)); + } + if (content.Contains("SystemDataCreatedByType")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerRegistrationInternal)this).SystemDataCreatedByType = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.CreatedByType?) content.GetValueForProperty("SystemDataCreatedByType",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerRegistrationInternal)this).SystemDataCreatedByType, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.CreatedByType.CreateFrom); + } + if (content.Contains("SystemDataLastModifiedBy")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerRegistrationInternal)this).SystemDataLastModifiedBy = (string) content.GetValueForProperty("SystemDataLastModifiedBy",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerRegistrationInternal)this).SystemDataLastModifiedBy, global::System.Convert.ToString); + } + if (content.Contains("SystemDataLastModifiedByType")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerRegistrationInternal)this).SystemDataLastModifiedByType = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.CreatedByType?) content.GetValueForProperty("SystemDataLastModifiedByType",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerRegistrationInternal)this).SystemDataLastModifiedByType, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.CreatedByType.CreateFrom); + } + if (content.Contains("SystemDataLastModifiedAt")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerRegistrationInternal)this).SystemDataLastModifiedAt = (global::System.DateTime?) content.GetValueForProperty("SystemDataLastModifiedAt",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerRegistrationInternal)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.EventGrid.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// Information about a partner registration. + [System.ComponentModel.TypeConverter(typeof(PartnerRegistrationTypeConverter))] + public partial interface IPartnerRegistration + + { + + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PartnerRegistration.TypeConverter.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PartnerRegistration.TypeConverter.cs new file mode 100644 index 000000000000..818ae59a4035 --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PartnerRegistration.TypeConverter.cs @@ -0,0 +1,147 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class PartnerRegistrationTypeConverter : global::System.Management.Automation.PSTypeConverter + { + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false. + /// + public override bool CanConvertFrom(object sourceValue, global::System.Type destinationType) => CanConvertFrom(sourceValue); + + /// + /// Determines if the converter can convert the parameter to the . + /// + /// the instance to check if it can be converted to the type. + /// + /// true if the instance could be converted to a type, otherwise false + /// + public static bool CanConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return true; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + // we say yest to PSObjects + return true; + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + // we say yest to Hashtables/dictionaries + return true; + } + try + { + if (null != sourceValue.ToJsonString()) + { + return true; + } + } + catch + { + // Not one of our objects + } + try + { + string text = sourceValue.ToString()?.Trim(); + return true == text?.StartsWith("{") && true == text?.EndsWith("}") && Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonType.Object; + } + catch + { + // Doesn't look like it can be treated as JSON + } + return false; + } + + /// + /// Determines if the parameter can be converted to the parameter + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false + /// + public override bool CanConvertTo(object sourceValue, global::System.Type destinationType) => false; + + /// + /// Converts the parameter to the parameter using and + /// + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// + /// an instance of , or null if there is no suitable conversion. + /// + public override object ConvertFrom(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => ConvertFrom(sourceValue); + + /// + /// Converts the parameter to the parameter using and + /// + /// the value to convert into an instance of . + /// + /// an instance of , or null if there is no suitable conversion. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerRegistration ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerRegistration).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return PartnerRegistration.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return PartnerRegistration.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return PartnerRegistration.DeserializeFromDictionary(sourceValue); + } + return null; + } + + /// NotImplemented -- this will return null + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// will always return null. + public override object ConvertTo(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => null; + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PartnerRegistration.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PartnerRegistration.cs new file mode 100644 index 000000000000..1bf48ac733c9 --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PartnerRegistration.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.EventGrid.Models.Api20211015Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Extensions; + + /// Information about a partner registration. + public partial class PartnerRegistration : + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerRegistration, + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerRegistrationInternal, + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IValidates + { + /// + /// Backing field for Inherited model + /// + private Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITrackedResource __trackedResource = new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.TrackedResource(); + + /// + /// List of Azure subscription Ids that are authorized to create a partner namespace + /// associated with this partner registration. This is an optional property. Creating + /// partner namespaces is always permitted under the same Azure subscription as the one used + /// for creating the partner registration. + /// + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Inlined)] + public string[] AuthorizedAzureSubscriptionId { get => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerRegistrationPropertiesInternal)Property).AuthorizedAzureSubscriptionId; set => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerRegistrationPropertiesInternal)Property).AuthorizedAzureSubscriptionId = value ?? null /* arrayOf */; } + + /// The extension of the customer service URI of the publisher. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Inlined)] + public string CustomerServiceUri { get => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerRegistrationPropertiesInternal)Property).CustomerServiceUri; set => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerRegistrationPropertiesInternal)Property).CustomerServiceUri = value ?? null; } + + /// Fully qualified identifier of the resource. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Inherited)] + public string Id { get => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IResourceInternal)__trackedResource).Id; } + + /// The immutableId of the corresponding partner registration. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Inlined)] + public string ImmutableId { get => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerRegistrationPropertiesInternal)Property).PartnerRegistrationImmutableId; set => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerRegistrationPropertiesInternal)Property).PartnerRegistrationImmutableId = value ?? null; } + + /// Location of the resource. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Inherited)] + public string Location { get => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITrackedResourceInternal)__trackedResource).Location; set => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITrackedResourceInternal)__trackedResource).Location = value ; } + + /// URI of the logo. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Inlined)] + public string LogoUri { get => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerRegistrationPropertiesInternal)Property).LogoUri; set => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerRegistrationPropertiesInternal)Property).LogoUri = value ?? null; } + + /// + /// Long description for the custom scenarios and integration to be displayed in the portal if needed. + /// Length of this description should not exceed 2048 characters. + /// + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Inlined)] + public string LongDescription { get => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerRegistrationPropertiesInternal)Property).LongDescription; set => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerRegistrationPropertiesInternal)Property).LongDescription = value ?? null; } + + /// Internal Acessors for Property + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerRegistrationProperties Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerRegistrationInternal.Property { get => (this._property = this._property ?? new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.PartnerRegistrationProperties()); set { {_property = value;} } } + + /// Internal Acessors for ProvisioningState + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.PartnerRegistrationProvisioningState? Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerRegistrationInternal.ProvisioningState { get => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerRegistrationPropertiesInternal)Property).ProvisioningState; set => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerRegistrationPropertiesInternal)Property).ProvisioningState = value; } + + /// Internal Acessors for SystemData + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20.ISystemData Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerRegistrationInternal.SystemData { get => (this._systemData = this._systemData ?? new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20.SystemData()); set { {_systemData = value;} } } + + /// Internal Acessors for Id + string Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IResourceInternal.Id { get => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IResourceInternal)__trackedResource).Id; set => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IResourceInternal)__trackedResource).Id = value; } + + /// Internal Acessors for Name + string Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IResourceInternal.Name { get => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IResourceInternal)__trackedResource).Name; set => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IResourceInternal)__trackedResource).Name = value; } + + /// Internal Acessors for Type + string Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IResourceInternal.Type { get => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IResourceInternal)__trackedResource).Type; set => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IResourceInternal)__trackedResource).Type = value; } + + /// Name of the resource. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Inherited)] + public string Name { get => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IResourceInternal)__trackedResource).Name; } + + /// + /// The extension of the customer service number of the publisher. Only digits are allowed and number of digits should not + /// exceed 10. + /// + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Inlined)] + public string PartnerCustomerServiceExtension { get => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerRegistrationPropertiesInternal)Property).PartnerCustomerServiceExtension; set => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerRegistrationPropertiesInternal)Property).PartnerCustomerServiceExtension = value ?? null; } + + /// + /// The customer service number of the publisher. The expected phone format should start with a '+' sign + /// followed by the country code. The remaining digits are then followed. Only digits and spaces are allowed and its + /// length cannot exceed 16 digits including country code. Examples of valid phone numbers are: +1 515 123 4567 and + /// +966 7 5115 2471. Examples of invalid phone numbers are: +1 (515) 123-4567, 1 515 123 4567 and +966 121 5115 24 7 551 + /// 1234 43 + /// + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Inlined)] + public string PartnerCustomerServiceNumber { get => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerRegistrationPropertiesInternal)Property).PartnerCustomerServiceNumber; set => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerRegistrationPropertiesInternal)Property).PartnerCustomerServiceNumber = value ?? null; } + + /// Official name of the partner name. For example: "Contoso". + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Inlined)] + public string PartnerName { get => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerRegistrationPropertiesInternal)Property).PartnerName; set => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerRegistrationPropertiesInternal)Property).PartnerName = value ?? null; } + + /// + /// Short description of the partner resource type. The length of this description should not exceed 256 characters. + /// + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Inlined)] + public string PartnerResourceTypeDescription { get => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerRegistrationPropertiesInternal)Property).PartnerResourceTypeDescription; set => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerRegistrationPropertiesInternal)Property).PartnerResourceTypeDescription = value ?? null; } + + /// Display name of the partner resource type. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Inlined)] + public string PartnerResourceTypeDisplayName { get => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerRegistrationPropertiesInternal)Property).PartnerResourceTypeDisplayName; set => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerRegistrationPropertiesInternal)Property).PartnerResourceTypeDisplayName = value ?? null; } + + /// Name of the partner resource type. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Inlined)] + public string PartnerResourceTypeName { get => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerRegistrationPropertiesInternal)Property).PartnerResourceTypeName; set => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerRegistrationPropertiesInternal)Property).PartnerResourceTypeName = value ?? null; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerRegistrationProperties _property; + + /// Properties of the partner registration. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Owned)] + internal Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerRegistrationProperties Property { get => (this._property = this._property ?? new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.PartnerRegistrationProperties()); set => this._property = value; } + + /// Provisioning state of the partner registration. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Inlined)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.PartnerRegistrationProvisioningState? ProvisioningState { get => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerRegistrationPropertiesInternal)Property).ProvisioningState; } + + /// + /// URI of the partner website that can be used by Azure customers to setup Event Grid + /// integration on an event source. + /// + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Inlined)] + public string SetupUri { get => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerRegistrationPropertiesInternal)Property).SetupUri; set => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerRegistrationPropertiesInternal)Property).SetupUri = value ?? null; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20.ISystemData _systemData; + + /// The system metadata relating to Partner Registration resource. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Owned)] + internal Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20.ISystemData SystemData { get => (this._systemData = this._systemData ?? new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20.SystemData()); } + + /// The timestamp of resource creation (UTC). + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Inlined)] + public global::System.DateTime? SystemDataCreatedAt { get => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20.ISystemDataInternal)SystemData).CreatedAt; set => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20.ISystemDataInternal)SystemData).CreatedAt = value ?? default(global::System.DateTime); } + + /// The identity that created the resource. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Inlined)] + public string SystemDataCreatedBy { get => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20.ISystemDataInternal)SystemData).CreatedBy; set => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20.ISystemDataInternal)SystemData).CreatedBy = value ?? null; } + + /// The type of identity that created the resource. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Inlined)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.CreatedByType? SystemDataCreatedByType { get => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20.ISystemDataInternal)SystemData).CreatedByType; set => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20.ISystemDataInternal)SystemData).CreatedByType = value ?? ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.CreatedByType)""); } + + /// The timestamp of resource last modification (UTC) + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Inlined)] + public global::System.DateTime? SystemDataLastModifiedAt { get => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20.ISystemDataInternal)SystemData).LastModifiedAt; set => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20.ISystemDataInternal)SystemData).LastModifiedAt = value ?? default(global::System.DateTime); } + + /// The identity that last modified the resource. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Inlined)] + public string SystemDataLastModifiedBy { get => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20.ISystemDataInternal)SystemData).LastModifiedBy; set => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20.ISystemDataInternal)SystemData).LastModifiedBy = value ?? null; } + + /// The type of identity that last modified the resource. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Inlined)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.CreatedByType? SystemDataLastModifiedByType { get => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20.ISystemDataInternal)SystemData).LastModifiedByType; set => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20.ISystemDataInternal)SystemData).LastModifiedByType = value ?? ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.CreatedByType)""); } + + /// Tags of the resource. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Inherited)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITrackedResourceTags Tag { get => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITrackedResourceInternal)__trackedResource).Tag; set => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITrackedResourceInternal)__trackedResource).Tag = value ?? null /* model class */; } + + /// Type of the resource. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Inherited)] + public string Type { get => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IResourceInternal)__trackedResource).Type; } + + /// Visibility state of the partner registration. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Inlined)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.PartnerRegistrationVisibilityState? VisibilityState { get => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerRegistrationPropertiesInternal)Property).VisibilityState; set => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerRegistrationPropertiesInternal)Property).VisibilityState = value ?? ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.PartnerRegistrationVisibilityState)""); } + + /// Creates an new instance. + public PartnerRegistration() + { + + } + + /// Validates that this object meets the validation criteria. + /// an instance that will receive validation + /// events. + /// + /// A that will be complete when validation is completed. + /// + public async global::System.Threading.Tasks.Task Validate(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener eventListener) + { + await eventListener.AssertNotNull(nameof(__trackedResource), __trackedResource); + await eventListener.AssertObjectIsValid(nameof(__trackedResource), __trackedResource); + } + } + /// Information about a partner registration. + public partial interface IPartnerRegistration : + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IJsonSerializable, + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITrackedResource + { + /// + /// List of Azure subscription Ids that are authorized to create a partner namespace + /// associated with this partner registration. This is an optional property. Creating + /// partner namespaces is always permitted under the same Azure subscription as the one used + /// for creating the partner registration. + /// + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"List of Azure subscription Ids that are authorized to create a partner namespace + associated with this partner registration. This is an optional property. Creating + partner namespaces is always permitted under the same Azure subscription as the one used + for creating the partner registration.", + SerializedName = @"authorizedAzureSubscriptionIds", + PossibleTypes = new [] { typeof(string) })] + string[] AuthorizedAzureSubscriptionId { get; set; } + /// The extension of the customer service URI of the publisher. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The extension of the customer service URI of the publisher.", + SerializedName = @"customerServiceUri", + PossibleTypes = new [] { typeof(string) })] + string CustomerServiceUri { get; set; } + /// The immutableId of the corresponding partner registration. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The immutableId of the corresponding partner registration.", + SerializedName = @"partnerRegistrationImmutableId", + PossibleTypes = new [] { typeof(string) })] + string ImmutableId { get; set; } + /// URI of the logo. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"URI of the logo.", + SerializedName = @"logoUri", + PossibleTypes = new [] { typeof(string) })] + string LogoUri { get; set; } + /// + /// Long description for the custom scenarios and integration to be displayed in the portal if needed. + /// Length of this description should not exceed 2048 characters. + /// + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Long description for the custom scenarios and integration to be displayed in the portal if needed. + Length of this description should not exceed 2048 characters.", + SerializedName = @"longDescription", + PossibleTypes = new [] { typeof(string) })] + string LongDescription { get; set; } + /// + /// The extension of the customer service number of the publisher. Only digits are allowed and number of digits should not + /// exceed 10. + /// + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The extension of the customer service number of the publisher. Only digits are allowed and number of digits should not exceed 10.", + SerializedName = @"partnerCustomerServiceExtension", + PossibleTypes = new [] { typeof(string) })] + string PartnerCustomerServiceExtension { get; set; } + /// + /// The customer service number of the publisher. The expected phone format should start with a '+' sign + /// followed by the country code. The remaining digits are then followed. Only digits and spaces are allowed and its + /// length cannot exceed 16 digits including country code. Examples of valid phone numbers are: +1 515 123 4567 and + /// +966 7 5115 2471. Examples of invalid phone numbers are: +1 (515) 123-4567, 1 515 123 4567 and +966 121 5115 24 7 551 + /// 1234 43 + /// + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The customer service number of the publisher. The expected phone format should start with a '+' sign + followed by the country code. The remaining digits are then followed. Only digits and spaces are allowed and its + length cannot exceed 16 digits including country code. Examples of valid phone numbers are: +1 515 123 4567 and + +966 7 5115 2471. Examples of invalid phone numbers are: +1 (515) 123-4567, 1 515 123 4567 and +966 121 5115 24 7 551 1234 43", + SerializedName = @"partnerCustomerServiceNumber", + PossibleTypes = new [] { typeof(string) })] + string PartnerCustomerServiceNumber { get; set; } + /// Official name of the partner name. For example: "Contoso". + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Official name of the partner name. For example: ""Contoso"".", + SerializedName = @"partnerName", + PossibleTypes = new [] { typeof(string) })] + string PartnerName { get; set; } + /// + /// Short description of the partner resource type. The length of this description should not exceed 256 characters. + /// + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Short description of the partner resource type. The length of this description should not exceed 256 characters.", + SerializedName = @"partnerResourceTypeDescription", + PossibleTypes = new [] { typeof(string) })] + string PartnerResourceTypeDescription { get; set; } + /// Display name of the partner resource type. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Display name of the partner resource type.", + SerializedName = @"partnerResourceTypeDisplayName", + PossibleTypes = new [] { typeof(string) })] + string PartnerResourceTypeDisplayName { get; set; } + /// Name of the partner resource type. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Name of the partner resource type.", + SerializedName = @"partnerResourceTypeName", + PossibleTypes = new [] { typeof(string) })] + string PartnerResourceTypeName { get; set; } + /// Provisioning state of the partner registration. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"Provisioning state of the partner registration.", + SerializedName = @"provisioningState", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.PartnerRegistrationProvisioningState) })] + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.PartnerRegistrationProvisioningState? ProvisioningState { get; } + /// + /// URI of the partner website that can be used by Azure customers to setup Event Grid + /// integration on an event source. + /// + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"URI of the partner website that can be used by Azure customers to setup Event Grid + integration on an event source.", + SerializedName = @"setupUri", + PossibleTypes = new [] { typeof(string) })] + string SetupUri { get; set; } + /// The timestamp of resource creation (UTC). + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.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.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The type of identity that created the resource.", + SerializedName = @"createdByType", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.CreatedByType) })] + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.CreatedByType? SystemDataCreatedByType { get; set; } + /// The timestamp of resource last modification (UTC) + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.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.EventGrid.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.EventGrid.Support.CreatedByType) })] + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.CreatedByType? SystemDataLastModifiedByType { get; set; } + /// Visibility state of the partner registration. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Visibility state of the partner registration.", + SerializedName = @"visibilityState", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.PartnerRegistrationVisibilityState) })] + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.PartnerRegistrationVisibilityState? VisibilityState { get; set; } + + } + /// Information about a partner registration. + internal partial interface IPartnerRegistrationInternal : + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITrackedResourceInternal + { + /// + /// List of Azure subscription Ids that are authorized to create a partner namespace + /// associated with this partner registration. This is an optional property. Creating + /// partner namespaces is always permitted under the same Azure subscription as the one used + /// for creating the partner registration. + /// + string[] AuthorizedAzureSubscriptionId { get; set; } + /// The extension of the customer service URI of the publisher. + string CustomerServiceUri { get; set; } + /// The immutableId of the corresponding partner registration. + string ImmutableId { get; set; } + /// URI of the logo. + string LogoUri { get; set; } + /// + /// Long description for the custom scenarios and integration to be displayed in the portal if needed. + /// Length of this description should not exceed 2048 characters. + /// + string LongDescription { get; set; } + /// + /// The extension of the customer service number of the publisher. Only digits are allowed and number of digits should not + /// exceed 10. + /// + string PartnerCustomerServiceExtension { get; set; } + /// + /// The customer service number of the publisher. The expected phone format should start with a '+' sign + /// followed by the country code. The remaining digits are then followed. Only digits and spaces are allowed and its + /// length cannot exceed 16 digits including country code. Examples of valid phone numbers are: +1 515 123 4567 and + /// +966 7 5115 2471. Examples of invalid phone numbers are: +1 (515) 123-4567, 1 515 123 4567 and +966 121 5115 24 7 551 + /// 1234 43 + /// + string PartnerCustomerServiceNumber { get; set; } + /// Official name of the partner name. For example: "Contoso". + string PartnerName { get; set; } + /// + /// Short description of the partner resource type. The length of this description should not exceed 256 characters. + /// + string PartnerResourceTypeDescription { get; set; } + /// Display name of the partner resource type. + string PartnerResourceTypeDisplayName { get; set; } + /// Name of the partner resource type. + string PartnerResourceTypeName { get; set; } + /// Properties of the partner registration. + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerRegistrationProperties Property { get; set; } + /// Provisioning state of the partner registration. + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.PartnerRegistrationProvisioningState? ProvisioningState { get; set; } + /// + /// URI of the partner website that can be used by Azure customers to setup Event Grid + /// integration on an event source. + /// + string SetupUri { get; set; } + /// The system metadata relating to Partner Registration resource. + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.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.EventGrid.Support.CreatedByType? SystemDataLastModifiedByType { get; set; } + /// Visibility state of the partner registration. + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.PartnerRegistrationVisibilityState? VisibilityState { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PartnerRegistration.json.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PartnerRegistration.json.cs new file mode 100644 index 000000000000..ce49c43db7c2 --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PartnerRegistration.json.cs @@ -0,0 +1,113 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Extensions; + + /// Information about a partner registration. + public partial class PartnerRegistration + { + + /// + /// AfterFromJson will be called after the json deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JsonNode that should be deserialized into this object. + + partial void AfterFromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json erialization has finished, allowing customization of the before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JSON container that the serialization result will be placed in. + + partial void AfterToJson(ref Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject container); + + /// + /// BeforeFromJson will be called before the json deserialization has commenced, allowing complete customization of + /// the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JsonNode that should be deserialized into this object. + /// Determines if the rest of the deserialization should be processed, or if the method should return + /// instantly. + + partial void BeforeFromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject json, ref bool returnNow); + + /// + /// BeforeToJson will be called before the json serialization has commenced, allowing complete customization of the + /// object before it is serialized. + /// If you wish to disable the default serialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JSON container that the serialization result will be placed in. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeToJson(ref Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerRegistration. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerRegistration. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerRegistration FromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject json ? new PartnerRegistration(json) : null; + } + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject instance to deserialize from. + internal PartnerRegistration(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject json) + { + bool returnNow = false; + BeforeFromJson(json, ref returnNow); + if (returnNow) + { + return; + } + __trackedResource = new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.TrackedResource(json); + {_property = If( json?.PropertyT("properties"), out var __jsonProperties) ? Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.PartnerRegistrationProperties.FromJson(__jsonProperties) : Property;} + {_systemData = If( json?.PropertyT("systemData"), out var __jsonSystemData) ? Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject(); + + bool returnNow = false; + BeforeToJson(ref container, ref returnNow); + if (returnNow) + { + return container; + } + __trackedResource?.ToJson(container, serializationMode); + AddIf( null != this._property ? (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode) this._property.ToJson(null,serializationMode) : null, "properties" ,container.Add ); + if (serializationMode.HasFlag(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SerializationMode.IncludeReadOnly)) + { + AddIf( null != this._systemData ? (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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/eventgrid/generated/api/Models/Api20211015Preview/PartnerRegistrationProperties.PowerShell.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PartnerRegistrationProperties.PowerShell.cs new file mode 100644 index 000000000000..f682f9bde883 --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PartnerRegistrationProperties.PowerShell.cs @@ -0,0 +1,248 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell; + + /// Properties of the partner registration. + [System.ComponentModel.TypeConverter(typeof(PartnerRegistrationPropertiesTypeConverter))] + public partial class PartnerRegistrationProperties + { + + /// + /// AfterDeserializeDictionary will be called after the deserialization has finished, allowing customization of the + /// object before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Collections.IDictionary content that should be used. + + partial void AfterDeserializeDictionary(global::System.Collections.IDictionary content); + + /// + /// AfterDeserializePSObject will be called after the deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Management.Automation.PSObject content that should be used. + + partial void AfterDeserializePSObject(global::System.Management.Automation.PSObject content); + + /// + /// BeforeDeserializeDictionary will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Collections.IDictionary content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializeDictionary(global::System.Collections.IDictionary content, ref bool returnNow); + + /// + /// BeforeDeserializePSObject will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializePSObject(global::System.Management.Automation.PSObject content, ref bool returnNow); + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerRegistrationProperties DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new PartnerRegistrationProperties(content); + } + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerRegistrationProperties DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new PartnerRegistrationProperties(content); + } + + /// + /// Creates a new instance of , deserializing the content from a json string. + /// + /// a string containing a JSON serialized instance of this model. + /// an instance of the model class. + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerRegistrationProperties FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode.Parse(jsonText)); + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + internal PartnerRegistrationProperties(global::System.Collections.IDictionary content) + { + bool returnNow = false; + BeforeDeserializeDictionary(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("ProvisioningState")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerRegistrationPropertiesInternal)this).ProvisioningState = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.PartnerRegistrationProvisioningState?) content.GetValueForProperty("ProvisioningState",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerRegistrationPropertiesInternal)this).ProvisioningState, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.PartnerRegistrationProvisioningState.CreateFrom); + } + if (content.Contains("PartnerRegistrationImmutableId")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerRegistrationPropertiesInternal)this).PartnerRegistrationImmutableId = (string) content.GetValueForProperty("PartnerRegistrationImmutableId",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerRegistrationPropertiesInternal)this).PartnerRegistrationImmutableId, global::System.Convert.ToString); + } + if (content.Contains("PartnerName")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerRegistrationPropertiesInternal)this).PartnerName = (string) content.GetValueForProperty("PartnerName",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerRegistrationPropertiesInternal)this).PartnerName, global::System.Convert.ToString); + } + if (content.Contains("PartnerResourceTypeName")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerRegistrationPropertiesInternal)this).PartnerResourceTypeName = (string) content.GetValueForProperty("PartnerResourceTypeName",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerRegistrationPropertiesInternal)this).PartnerResourceTypeName, global::System.Convert.ToString); + } + if (content.Contains("PartnerResourceTypeDisplayName")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerRegistrationPropertiesInternal)this).PartnerResourceTypeDisplayName = (string) content.GetValueForProperty("PartnerResourceTypeDisplayName",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerRegistrationPropertiesInternal)this).PartnerResourceTypeDisplayName, global::System.Convert.ToString); + } + if (content.Contains("PartnerResourceTypeDescription")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerRegistrationPropertiesInternal)this).PartnerResourceTypeDescription = (string) content.GetValueForProperty("PartnerResourceTypeDescription",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerRegistrationPropertiesInternal)this).PartnerResourceTypeDescription, global::System.Convert.ToString); + } + if (content.Contains("LongDescription")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerRegistrationPropertiesInternal)this).LongDescription = (string) content.GetValueForProperty("LongDescription",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerRegistrationPropertiesInternal)this).LongDescription, global::System.Convert.ToString); + } + if (content.Contains("PartnerCustomerServiceNumber")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerRegistrationPropertiesInternal)this).PartnerCustomerServiceNumber = (string) content.GetValueForProperty("PartnerCustomerServiceNumber",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerRegistrationPropertiesInternal)this).PartnerCustomerServiceNumber, global::System.Convert.ToString); + } + if (content.Contains("PartnerCustomerServiceExtension")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerRegistrationPropertiesInternal)this).PartnerCustomerServiceExtension = (string) content.GetValueForProperty("PartnerCustomerServiceExtension",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerRegistrationPropertiesInternal)this).PartnerCustomerServiceExtension, global::System.Convert.ToString); + } + if (content.Contains("CustomerServiceUri")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerRegistrationPropertiesInternal)this).CustomerServiceUri = (string) content.GetValueForProperty("CustomerServiceUri",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerRegistrationPropertiesInternal)this).CustomerServiceUri, global::System.Convert.ToString); + } + if (content.Contains("SetupUri")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerRegistrationPropertiesInternal)this).SetupUri = (string) content.GetValueForProperty("SetupUri",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerRegistrationPropertiesInternal)this).SetupUri, global::System.Convert.ToString); + } + if (content.Contains("LogoUri")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerRegistrationPropertiesInternal)this).LogoUri = (string) content.GetValueForProperty("LogoUri",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerRegistrationPropertiesInternal)this).LogoUri, global::System.Convert.ToString); + } + if (content.Contains("VisibilityState")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerRegistrationPropertiesInternal)this).VisibilityState = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.PartnerRegistrationVisibilityState?) content.GetValueForProperty("VisibilityState",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerRegistrationPropertiesInternal)this).VisibilityState, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.PartnerRegistrationVisibilityState.CreateFrom); + } + if (content.Contains("AuthorizedAzureSubscriptionId")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerRegistrationPropertiesInternal)this).AuthorizedAzureSubscriptionId = (string[]) content.GetValueForProperty("AuthorizedAzureSubscriptionId",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerRegistrationPropertiesInternal)this).AuthorizedAzureSubscriptionId, __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 PartnerRegistrationProperties(global::System.Management.Automation.PSObject content) + { + bool returnNow = false; + BeforeDeserializePSObject(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("ProvisioningState")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerRegistrationPropertiesInternal)this).ProvisioningState = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.PartnerRegistrationProvisioningState?) content.GetValueForProperty("ProvisioningState",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerRegistrationPropertiesInternal)this).ProvisioningState, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.PartnerRegistrationProvisioningState.CreateFrom); + } + if (content.Contains("PartnerRegistrationImmutableId")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerRegistrationPropertiesInternal)this).PartnerRegistrationImmutableId = (string) content.GetValueForProperty("PartnerRegistrationImmutableId",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerRegistrationPropertiesInternal)this).PartnerRegistrationImmutableId, global::System.Convert.ToString); + } + if (content.Contains("PartnerName")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerRegistrationPropertiesInternal)this).PartnerName = (string) content.GetValueForProperty("PartnerName",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerRegistrationPropertiesInternal)this).PartnerName, global::System.Convert.ToString); + } + if (content.Contains("PartnerResourceTypeName")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerRegistrationPropertiesInternal)this).PartnerResourceTypeName = (string) content.GetValueForProperty("PartnerResourceTypeName",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerRegistrationPropertiesInternal)this).PartnerResourceTypeName, global::System.Convert.ToString); + } + if (content.Contains("PartnerResourceTypeDisplayName")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerRegistrationPropertiesInternal)this).PartnerResourceTypeDisplayName = (string) content.GetValueForProperty("PartnerResourceTypeDisplayName",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerRegistrationPropertiesInternal)this).PartnerResourceTypeDisplayName, global::System.Convert.ToString); + } + if (content.Contains("PartnerResourceTypeDescription")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerRegistrationPropertiesInternal)this).PartnerResourceTypeDescription = (string) content.GetValueForProperty("PartnerResourceTypeDescription",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerRegistrationPropertiesInternal)this).PartnerResourceTypeDescription, global::System.Convert.ToString); + } + if (content.Contains("LongDescription")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerRegistrationPropertiesInternal)this).LongDescription = (string) content.GetValueForProperty("LongDescription",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerRegistrationPropertiesInternal)this).LongDescription, global::System.Convert.ToString); + } + if (content.Contains("PartnerCustomerServiceNumber")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerRegistrationPropertiesInternal)this).PartnerCustomerServiceNumber = (string) content.GetValueForProperty("PartnerCustomerServiceNumber",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerRegistrationPropertiesInternal)this).PartnerCustomerServiceNumber, global::System.Convert.ToString); + } + if (content.Contains("PartnerCustomerServiceExtension")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerRegistrationPropertiesInternal)this).PartnerCustomerServiceExtension = (string) content.GetValueForProperty("PartnerCustomerServiceExtension",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerRegistrationPropertiesInternal)this).PartnerCustomerServiceExtension, global::System.Convert.ToString); + } + if (content.Contains("CustomerServiceUri")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerRegistrationPropertiesInternal)this).CustomerServiceUri = (string) content.GetValueForProperty("CustomerServiceUri",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerRegistrationPropertiesInternal)this).CustomerServiceUri, global::System.Convert.ToString); + } + if (content.Contains("SetupUri")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerRegistrationPropertiesInternal)this).SetupUri = (string) content.GetValueForProperty("SetupUri",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerRegistrationPropertiesInternal)this).SetupUri, global::System.Convert.ToString); + } + if (content.Contains("LogoUri")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerRegistrationPropertiesInternal)this).LogoUri = (string) content.GetValueForProperty("LogoUri",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerRegistrationPropertiesInternal)this).LogoUri, global::System.Convert.ToString); + } + if (content.Contains("VisibilityState")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerRegistrationPropertiesInternal)this).VisibilityState = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.PartnerRegistrationVisibilityState?) content.GetValueForProperty("VisibilityState",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerRegistrationPropertiesInternal)this).VisibilityState, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.PartnerRegistrationVisibilityState.CreateFrom); + } + if (content.Contains("AuthorizedAzureSubscriptionId")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerRegistrationPropertiesInternal)this).AuthorizedAzureSubscriptionId = (string[]) content.GetValueForProperty("AuthorizedAzureSubscriptionId",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerRegistrationPropertiesInternal)this).AuthorizedAzureSubscriptionId, __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.EventGrid.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// Properties of the partner registration. + [System.ComponentModel.TypeConverter(typeof(PartnerRegistrationPropertiesTypeConverter))] + public partial interface IPartnerRegistrationProperties + + { + + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PartnerRegistrationProperties.TypeConverter.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PartnerRegistrationProperties.TypeConverter.cs new file mode 100644 index 000000000000..9dec50c3940d --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PartnerRegistrationProperties.TypeConverter.cs @@ -0,0 +1,147 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class PartnerRegistrationPropertiesTypeConverter : global::System.Management.Automation.PSTypeConverter + { + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false. + /// + public override bool CanConvertFrom(object sourceValue, global::System.Type destinationType) => CanConvertFrom(sourceValue); + + /// + /// Determines if the converter can convert the parameter to the . + /// + /// the instance to check if it can be converted to the type. + /// + /// true if the instance could be converted to a type, otherwise false + /// + public static bool CanConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return true; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + // we say yest to PSObjects + return true; + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + // we say yest to Hashtables/dictionaries + return true; + } + try + { + if (null != sourceValue.ToJsonString()) + { + return true; + } + } + catch + { + // Not one of our objects + } + try + { + string text = sourceValue.ToString()?.Trim(); + return true == text?.StartsWith("{") && true == text?.EndsWith("}") && Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonType.Object; + } + catch + { + // Doesn't look like it can be treated as JSON + } + return false; + } + + /// + /// Determines if the parameter can be converted to the parameter + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false + /// + public override bool CanConvertTo(object sourceValue, global::System.Type destinationType) => false; + + /// + /// Converts the parameter to the parameter using and + /// + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// + /// an instance of , or null if there is no suitable conversion. + /// + public override object ConvertFrom(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => ConvertFrom(sourceValue); + + /// + /// Converts the parameter to the parameter using and + /// + /// the value to convert into an instance of . + /// + /// an instance of , or null if there is no suitable conversion. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerRegistrationProperties ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerRegistrationProperties).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return PartnerRegistrationProperties.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return PartnerRegistrationProperties.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return PartnerRegistrationProperties.DeserializeFromDictionary(sourceValue); + } + return null; + } + + /// NotImplemented -- this will return null + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// will always return null. + public override object ConvertTo(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => null; + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PartnerRegistrationProperties.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PartnerRegistrationProperties.cs new file mode 100644 index 000000000000..17102425a88a --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PartnerRegistrationProperties.cs @@ -0,0 +1,349 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Extensions; + + /// Properties of the partner registration. + public partial class PartnerRegistrationProperties : + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerRegistrationProperties, + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerRegistrationPropertiesInternal + { + + /// Backing field for property. + private string[] _authorizedAzureSubscriptionId; + + /// + /// List of Azure subscription Ids that are authorized to create a partner namespace + /// associated with this partner registration. This is an optional property. Creating + /// partner namespaces is always permitted under the same Azure subscription as the one used + /// for creating the partner registration. + /// + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Owned)] + public string[] AuthorizedAzureSubscriptionId { get => this._authorizedAzureSubscriptionId; set => this._authorizedAzureSubscriptionId = value; } + + /// Backing field for property. + private string _customerServiceUri; + + /// The extension of the customer service URI of the publisher. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Owned)] + public string CustomerServiceUri { get => this._customerServiceUri; set => this._customerServiceUri = value; } + + /// Backing field for property. + private string _logoUri; + + /// URI of the logo. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Owned)] + public string LogoUri { get => this._logoUri; set => this._logoUri = value; } + + /// Backing field for property. + private string _longDescription; + + /// + /// Long description for the custom scenarios and integration to be displayed in the portal if needed. + /// Length of this description should not exceed 2048 characters. + /// + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Owned)] + public string LongDescription { get => this._longDescription; set => this._longDescription = value; } + + /// Internal Acessors for ProvisioningState + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.PartnerRegistrationProvisioningState? Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerRegistrationPropertiesInternal.ProvisioningState { get => this._provisioningState; set { {_provisioningState = value;} } } + + /// Backing field for property. + private string _partnerCustomerServiceExtension; + + /// + /// The extension of the customer service number of the publisher. Only digits are allowed and number of digits should not + /// exceed 10. + /// + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Owned)] + public string PartnerCustomerServiceExtension { get => this._partnerCustomerServiceExtension; set => this._partnerCustomerServiceExtension = value; } + + /// Backing field for property. + private string _partnerCustomerServiceNumber; + + /// + /// The customer service number of the publisher. The expected phone format should start with a '+' sign + /// followed by the country code. The remaining digits are then followed. Only digits and spaces are allowed and its + /// length cannot exceed 16 digits including country code. Examples of valid phone numbers are: +1 515 123 4567 and + /// +966 7 5115 2471. Examples of invalid phone numbers are: +1 (515) 123-4567, 1 515 123 4567 and +966 121 5115 24 7 551 + /// 1234 43 + /// + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Owned)] + public string PartnerCustomerServiceNumber { get => this._partnerCustomerServiceNumber; set => this._partnerCustomerServiceNumber = value; } + + /// Backing field for property. + private string _partnerName; + + /// Official name of the partner name. For example: "Contoso". + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Owned)] + public string PartnerName { get => this._partnerName; set => this._partnerName = value; } + + /// Backing field for property. + private string _partnerRegistrationImmutableId; + + /// The immutableId of the corresponding partner registration. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Owned)] + public string PartnerRegistrationImmutableId { get => this._partnerRegistrationImmutableId; set => this._partnerRegistrationImmutableId = value; } + + /// Backing field for property. + private string _partnerResourceTypeDescription; + + /// + /// Short description of the partner resource type. The length of this description should not exceed 256 characters. + /// + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Owned)] + public string PartnerResourceTypeDescription { get => this._partnerResourceTypeDescription; set => this._partnerResourceTypeDescription = value; } + + /// Backing field for property. + private string _partnerResourceTypeDisplayName; + + /// Display name of the partner resource type. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Owned)] + public string PartnerResourceTypeDisplayName { get => this._partnerResourceTypeDisplayName; set => this._partnerResourceTypeDisplayName = value; } + + /// Backing field for property. + private string _partnerResourceTypeName; + + /// Name of the partner resource type. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Owned)] + public string PartnerResourceTypeName { get => this._partnerResourceTypeName; set => this._partnerResourceTypeName = value; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.PartnerRegistrationProvisioningState? _provisioningState; + + /// Provisioning state of the partner registration. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Owned)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.PartnerRegistrationProvisioningState? ProvisioningState { get => this._provisioningState; } + + /// Backing field for property. + private string _setupUri; + + /// + /// URI of the partner website that can be used by Azure customers to setup Event Grid + /// integration on an event source. + /// + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Owned)] + public string SetupUri { get => this._setupUri; set => this._setupUri = value; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.PartnerRegistrationVisibilityState? _visibilityState; + + /// Visibility state of the partner registration. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Owned)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.PartnerRegistrationVisibilityState? VisibilityState { get => this._visibilityState; set => this._visibilityState = value; } + + /// Creates an new instance. + public PartnerRegistrationProperties() + { + + } + } + /// Properties of the partner registration. + public partial interface IPartnerRegistrationProperties : + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IJsonSerializable + { + /// + /// List of Azure subscription Ids that are authorized to create a partner namespace + /// associated with this partner registration. This is an optional property. Creating + /// partner namespaces is always permitted under the same Azure subscription as the one used + /// for creating the partner registration. + /// + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"List of Azure subscription Ids that are authorized to create a partner namespace + associated with this partner registration. This is an optional property. Creating + partner namespaces is always permitted under the same Azure subscription as the one used + for creating the partner registration.", + SerializedName = @"authorizedAzureSubscriptionIds", + PossibleTypes = new [] { typeof(string) })] + string[] AuthorizedAzureSubscriptionId { get; set; } + /// The extension of the customer service URI of the publisher. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The extension of the customer service URI of the publisher.", + SerializedName = @"customerServiceUri", + PossibleTypes = new [] { typeof(string) })] + string CustomerServiceUri { get; set; } + /// URI of the logo. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"URI of the logo.", + SerializedName = @"logoUri", + PossibleTypes = new [] { typeof(string) })] + string LogoUri { get; set; } + /// + /// Long description for the custom scenarios and integration to be displayed in the portal if needed. + /// Length of this description should not exceed 2048 characters. + /// + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Long description for the custom scenarios and integration to be displayed in the portal if needed. + Length of this description should not exceed 2048 characters.", + SerializedName = @"longDescription", + PossibleTypes = new [] { typeof(string) })] + string LongDescription { get; set; } + /// + /// The extension of the customer service number of the publisher. Only digits are allowed and number of digits should not + /// exceed 10. + /// + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The extension of the customer service number of the publisher. Only digits are allowed and number of digits should not exceed 10.", + SerializedName = @"partnerCustomerServiceExtension", + PossibleTypes = new [] { typeof(string) })] + string PartnerCustomerServiceExtension { get; set; } + /// + /// The customer service number of the publisher. The expected phone format should start with a '+' sign + /// followed by the country code. The remaining digits are then followed. Only digits and spaces are allowed and its + /// length cannot exceed 16 digits including country code. Examples of valid phone numbers are: +1 515 123 4567 and + /// +966 7 5115 2471. Examples of invalid phone numbers are: +1 (515) 123-4567, 1 515 123 4567 and +966 121 5115 24 7 551 + /// 1234 43 + /// + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The customer service number of the publisher. The expected phone format should start with a '+' sign + followed by the country code. The remaining digits are then followed. Only digits and spaces are allowed and its + length cannot exceed 16 digits including country code. Examples of valid phone numbers are: +1 515 123 4567 and + +966 7 5115 2471. Examples of invalid phone numbers are: +1 (515) 123-4567, 1 515 123 4567 and +966 121 5115 24 7 551 1234 43", + SerializedName = @"partnerCustomerServiceNumber", + PossibleTypes = new [] { typeof(string) })] + string PartnerCustomerServiceNumber { get; set; } + /// Official name of the partner name. For example: "Contoso". + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Official name of the partner name. For example: ""Contoso"".", + SerializedName = @"partnerName", + PossibleTypes = new [] { typeof(string) })] + string PartnerName { get; set; } + /// The immutableId of the corresponding partner registration. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The immutableId of the corresponding partner registration.", + SerializedName = @"partnerRegistrationImmutableId", + PossibleTypes = new [] { typeof(string) })] + string PartnerRegistrationImmutableId { get; set; } + /// + /// Short description of the partner resource type. The length of this description should not exceed 256 characters. + /// + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Short description of the partner resource type. The length of this description should not exceed 256 characters.", + SerializedName = @"partnerResourceTypeDescription", + PossibleTypes = new [] { typeof(string) })] + string PartnerResourceTypeDescription { get; set; } + /// Display name of the partner resource type. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Display name of the partner resource type.", + SerializedName = @"partnerResourceTypeDisplayName", + PossibleTypes = new [] { typeof(string) })] + string PartnerResourceTypeDisplayName { get; set; } + /// Name of the partner resource type. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Name of the partner resource type.", + SerializedName = @"partnerResourceTypeName", + PossibleTypes = new [] { typeof(string) })] + string PartnerResourceTypeName { get; set; } + /// Provisioning state of the partner registration. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"Provisioning state of the partner registration.", + SerializedName = @"provisioningState", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.PartnerRegistrationProvisioningState) })] + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.PartnerRegistrationProvisioningState? ProvisioningState { get; } + /// + /// URI of the partner website that can be used by Azure customers to setup Event Grid + /// integration on an event source. + /// + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"URI of the partner website that can be used by Azure customers to setup Event Grid + integration on an event source.", + SerializedName = @"setupUri", + PossibleTypes = new [] { typeof(string) })] + string SetupUri { get; set; } + /// Visibility state of the partner registration. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Visibility state of the partner registration.", + SerializedName = @"visibilityState", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.PartnerRegistrationVisibilityState) })] + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.PartnerRegistrationVisibilityState? VisibilityState { get; set; } + + } + /// Properties of the partner registration. + internal partial interface IPartnerRegistrationPropertiesInternal + + { + /// + /// List of Azure subscription Ids that are authorized to create a partner namespace + /// associated with this partner registration. This is an optional property. Creating + /// partner namespaces is always permitted under the same Azure subscription as the one used + /// for creating the partner registration. + /// + string[] AuthorizedAzureSubscriptionId { get; set; } + /// The extension of the customer service URI of the publisher. + string CustomerServiceUri { get; set; } + /// URI of the logo. + string LogoUri { get; set; } + /// + /// Long description for the custom scenarios and integration to be displayed in the portal if needed. + /// Length of this description should not exceed 2048 characters. + /// + string LongDescription { get; set; } + /// + /// The extension of the customer service number of the publisher. Only digits are allowed and number of digits should not + /// exceed 10. + /// + string PartnerCustomerServiceExtension { get; set; } + /// + /// The customer service number of the publisher. The expected phone format should start with a '+' sign + /// followed by the country code. The remaining digits are then followed. Only digits and spaces are allowed and its + /// length cannot exceed 16 digits including country code. Examples of valid phone numbers are: +1 515 123 4567 and + /// +966 7 5115 2471. Examples of invalid phone numbers are: +1 (515) 123-4567, 1 515 123 4567 and +966 121 5115 24 7 551 + /// 1234 43 + /// + string PartnerCustomerServiceNumber { get; set; } + /// Official name of the partner name. For example: "Contoso". + string PartnerName { get; set; } + /// The immutableId of the corresponding partner registration. + string PartnerRegistrationImmutableId { get; set; } + /// + /// Short description of the partner resource type. The length of this description should not exceed 256 characters. + /// + string PartnerResourceTypeDescription { get; set; } + /// Display name of the partner resource type. + string PartnerResourceTypeDisplayName { get; set; } + /// Name of the partner resource type. + string PartnerResourceTypeName { get; set; } + /// Provisioning state of the partner registration. + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.PartnerRegistrationProvisioningState? ProvisioningState { get; set; } + /// + /// URI of the partner website that can be used by Azure customers to setup Event Grid + /// integration on an event source. + /// + string SetupUri { get; set; } + /// Visibility state of the partner registration. + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.PartnerRegistrationVisibilityState? VisibilityState { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PartnerRegistrationProperties.json.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PartnerRegistrationProperties.json.cs new file mode 100644 index 000000000000..700d847b4477 --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PartnerRegistrationProperties.json.cs @@ -0,0 +1,143 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Extensions; + + /// Properties of the partner registration. + public partial class PartnerRegistrationProperties + { + + /// + /// AfterFromJson will be called after the json deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JsonNode that should be deserialized into this object. + + partial void AfterFromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json erialization has finished, allowing customization of the before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JSON container that the serialization result will be placed in. + + partial void AfterToJson(ref Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject container); + + /// + /// BeforeFromJson will be called before the json deserialization has commenced, allowing complete customization of + /// the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JsonNode that should be deserialized into this object. + /// Determines if the rest of the deserialization should be processed, or if the method should return + /// instantly. + + partial void BeforeFromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject json, ref bool returnNow); + + /// + /// BeforeToJson will be called before the json serialization has commenced, allowing complete customization of the + /// object before it is serialized. + /// If you wish to disable the default serialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JSON container that the serialization result will be placed in. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeToJson(ref Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerRegistrationProperties. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerRegistrationProperties. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerRegistrationProperties FromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject json ? new PartnerRegistrationProperties(json) : null; + } + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject instance to deserialize from. + internal PartnerRegistrationProperties(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject json) + { + bool returnNow = false; + BeforeFromJson(json, ref returnNow); + if (returnNow) + { + return; + } + {_provisioningState = If( json?.PropertyT("provisioningState"), out var __jsonProvisioningState) ? (string)__jsonProvisioningState : (string)ProvisioningState;} + {_partnerRegistrationImmutableId = If( json?.PropertyT("partnerRegistrationImmutableId"), out var __jsonPartnerRegistrationImmutableId) ? (string)__jsonPartnerRegistrationImmutableId : (string)PartnerRegistrationImmutableId;} + {_partnerName = If( json?.PropertyT("partnerName"), out var __jsonPartnerName) ? (string)__jsonPartnerName : (string)PartnerName;} + {_partnerResourceTypeName = If( json?.PropertyT("partnerResourceTypeName"), out var __jsonPartnerResourceTypeName) ? (string)__jsonPartnerResourceTypeName : (string)PartnerResourceTypeName;} + {_partnerResourceTypeDisplayName = If( json?.PropertyT("partnerResourceTypeDisplayName"), out var __jsonPartnerResourceTypeDisplayName) ? (string)__jsonPartnerResourceTypeDisplayName : (string)PartnerResourceTypeDisplayName;} + {_partnerResourceTypeDescription = If( json?.PropertyT("partnerResourceTypeDescription"), out var __jsonPartnerResourceTypeDescription) ? (string)__jsonPartnerResourceTypeDescription : (string)PartnerResourceTypeDescription;} + {_longDescription = If( json?.PropertyT("longDescription"), out var __jsonLongDescription) ? (string)__jsonLongDescription : (string)LongDescription;} + {_partnerCustomerServiceNumber = If( json?.PropertyT("partnerCustomerServiceNumber"), out var __jsonPartnerCustomerServiceNumber) ? (string)__jsonPartnerCustomerServiceNumber : (string)PartnerCustomerServiceNumber;} + {_partnerCustomerServiceExtension = If( json?.PropertyT("partnerCustomerServiceExtension"), out var __jsonPartnerCustomerServiceExtension) ? (string)__jsonPartnerCustomerServiceExtension : (string)PartnerCustomerServiceExtension;} + {_customerServiceUri = If( json?.PropertyT("customerServiceUri"), out var __jsonCustomerServiceUri) ? (string)__jsonCustomerServiceUri : (string)CustomerServiceUri;} + {_setupUri = If( json?.PropertyT("setupUri"), out var __jsonSetupUri) ? (string)__jsonSetupUri : (string)SetupUri;} + {_logoUri = If( json?.PropertyT("logoUri"), out var __jsonLogoUri) ? (string)__jsonLogoUri : (string)LogoUri;} + {_visibilityState = If( json?.PropertyT("visibilityState"), out var __jsonVisibilityState) ? (string)__jsonVisibilityState : (string)VisibilityState;} + {_authorizedAzureSubscriptionId = If( json?.PropertyT("authorizedAzureSubscriptionIds"), out var __jsonAuthorizedAzureSubscriptionIds) ? If( __jsonAuthorizedAzureSubscriptionIds as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Runtime.Json.JsonString __t ? (string)(__t.ToString()) : null)) ))() : null : AuthorizedAzureSubscriptionId;} + AfterFromJson(json); + } + + /// + /// Serializes this instance of into a . + /// + /// The container to serialize this object into. If the caller + /// passes in null, a new instance will be created and returned to the caller. + /// Allows the caller to choose the depth of the serialization. See . + /// + /// a serialized instance of as a . + /// + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject(); + + bool returnNow = false; + BeforeToJson(ref container, ref returnNow); + if (returnNow) + { + return container; + } + if (serializationMode.HasFlag(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SerializationMode.IncludeReadOnly)) + { + AddIf( null != (((object)this._provisioningState)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonString(this._provisioningState.ToString()) : null, "provisioningState" ,container.Add ); + } + AddIf( null != (((object)this._partnerRegistrationImmutableId)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonString(this._partnerRegistrationImmutableId.ToString()) : null, "partnerRegistrationImmutableId" ,container.Add ); + AddIf( null != (((object)this._partnerName)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonString(this._partnerName.ToString()) : null, "partnerName" ,container.Add ); + AddIf( null != (((object)this._partnerResourceTypeName)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonString(this._partnerResourceTypeName.ToString()) : null, "partnerResourceTypeName" ,container.Add ); + AddIf( null != (((object)this._partnerResourceTypeDisplayName)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonString(this._partnerResourceTypeDisplayName.ToString()) : null, "partnerResourceTypeDisplayName" ,container.Add ); + AddIf( null != (((object)this._partnerResourceTypeDescription)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonString(this._partnerResourceTypeDescription.ToString()) : null, "partnerResourceTypeDescription" ,container.Add ); + AddIf( null != (((object)this._longDescription)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonString(this._longDescription.ToString()) : null, "longDescription" ,container.Add ); + AddIf( null != (((object)this._partnerCustomerServiceNumber)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonString(this._partnerCustomerServiceNumber.ToString()) : null, "partnerCustomerServiceNumber" ,container.Add ); + AddIf( null != (((object)this._partnerCustomerServiceExtension)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonString(this._partnerCustomerServiceExtension.ToString()) : null, "partnerCustomerServiceExtension" ,container.Add ); + AddIf( null != (((object)this._customerServiceUri)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonString(this._customerServiceUri.ToString()) : null, "customerServiceUri" ,container.Add ); + AddIf( null != (((object)this._setupUri)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonString(this._setupUri.ToString()) : null, "setupUri" ,container.Add ); + AddIf( null != (((object)this._logoUri)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonString(this._logoUri.ToString()) : null, "logoUri" ,container.Add ); + AddIf( null != (((object)this._visibilityState)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonString(this._visibilityState.ToString()) : null, "visibilityState" ,container.Add ); + if (null != this._authorizedAzureSubscriptionId) + { + var __w = new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.XNodeArray(); + foreach( var __x in this._authorizedAzureSubscriptionId ) + { + AddIf(null != (((object)__x)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonString(__x.ToString()) : null ,__w.Add); + } + container.Add("authorizedAzureSubscriptionIds",__w); + } + AfterToJson(ref container); + return container; + } + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PartnerRegistrationUpdateParameters.PowerShell.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PartnerRegistrationUpdateParameters.PowerShell.cs new file mode 100644 index 000000000000..974af32bd228 --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PartnerRegistrationUpdateParameters.PowerShell.cs @@ -0,0 +1,194 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell; + + /// Properties of the Partner Registration update. + [System.ComponentModel.TypeConverter(typeof(PartnerRegistrationUpdateParametersTypeConverter))] + public partial class PartnerRegistrationUpdateParameters + { + + /// + /// AfterDeserializeDictionary will be called after the deserialization has finished, allowing customization of the + /// object before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Collections.IDictionary content that should be used. + + partial void AfterDeserializeDictionary(global::System.Collections.IDictionary content); + + /// + /// AfterDeserializePSObject will be called after the deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Management.Automation.PSObject content that should be used. + + partial void AfterDeserializePSObject(global::System.Management.Automation.PSObject content); + + /// + /// BeforeDeserializeDictionary will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Collections.IDictionary content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializeDictionary(global::System.Collections.IDictionary content, ref bool returnNow); + + /// + /// BeforeDeserializePSObject will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializePSObject(global::System.Management.Automation.PSObject content, ref bool returnNow); + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerRegistrationUpdateParameters DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new PartnerRegistrationUpdateParameters(content); + } + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerRegistrationUpdateParameters DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new PartnerRegistrationUpdateParameters(content); + } + + /// + /// Creates a new instance of , deserializing the content from a json string. + /// + /// a string containing a JSON serialized instance of this model. + /// + /// an instance of the model class. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerRegistrationUpdateParameters FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode.Parse(jsonText)); + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + internal PartnerRegistrationUpdateParameters(global::System.Collections.IDictionary content) + { + bool returnNow = false; + BeforeDeserializeDictionary(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("Tag")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerRegistrationUpdateParametersInternal)this).Tag = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerRegistrationUpdateParametersTags) content.GetValueForProperty("Tag",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerRegistrationUpdateParametersInternal)this).Tag, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.PartnerRegistrationUpdateParametersTagsTypeConverter.ConvertFrom); + } + if (content.Contains("PartnerTopicTypeName")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerRegistrationUpdateParametersInternal)this).PartnerTopicTypeName = (string) content.GetValueForProperty("PartnerTopicTypeName",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerRegistrationUpdateParametersInternal)this).PartnerTopicTypeName, global::System.Convert.ToString); + } + if (content.Contains("PartnerTopicTypeDisplayName")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerRegistrationUpdateParametersInternal)this).PartnerTopicTypeDisplayName = (string) content.GetValueForProperty("PartnerTopicTypeDisplayName",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerRegistrationUpdateParametersInternal)this).PartnerTopicTypeDisplayName, global::System.Convert.ToString); + } + if (content.Contains("PartnerTopicTypeDescription")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerRegistrationUpdateParametersInternal)this).PartnerTopicTypeDescription = (string) content.GetValueForProperty("PartnerTopicTypeDescription",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerRegistrationUpdateParametersInternal)this).PartnerTopicTypeDescription, global::System.Convert.ToString); + } + if (content.Contains("SetupUri")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerRegistrationUpdateParametersInternal)this).SetupUri = (string) content.GetValueForProperty("SetupUri",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerRegistrationUpdateParametersInternal)this).SetupUri, global::System.Convert.ToString); + } + if (content.Contains("LogoUri")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerRegistrationUpdateParametersInternal)this).LogoUri = (string) content.GetValueForProperty("LogoUri",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerRegistrationUpdateParametersInternal)this).LogoUri, global::System.Convert.ToString); + } + if (content.Contains("AuthorizedAzureSubscriptionId")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerRegistrationUpdateParametersInternal)this).AuthorizedAzureSubscriptionId = (string[]) content.GetValueForProperty("AuthorizedAzureSubscriptionId",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerRegistrationUpdateParametersInternal)this).AuthorizedAzureSubscriptionId, __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 PartnerRegistrationUpdateParameters(global::System.Management.Automation.PSObject content) + { + bool returnNow = false; + BeforeDeserializePSObject(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("Tag")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerRegistrationUpdateParametersInternal)this).Tag = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerRegistrationUpdateParametersTags) content.GetValueForProperty("Tag",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerRegistrationUpdateParametersInternal)this).Tag, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.PartnerRegistrationUpdateParametersTagsTypeConverter.ConvertFrom); + } + if (content.Contains("PartnerTopicTypeName")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerRegistrationUpdateParametersInternal)this).PartnerTopicTypeName = (string) content.GetValueForProperty("PartnerTopicTypeName",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerRegistrationUpdateParametersInternal)this).PartnerTopicTypeName, global::System.Convert.ToString); + } + if (content.Contains("PartnerTopicTypeDisplayName")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerRegistrationUpdateParametersInternal)this).PartnerTopicTypeDisplayName = (string) content.GetValueForProperty("PartnerTopicTypeDisplayName",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerRegistrationUpdateParametersInternal)this).PartnerTopicTypeDisplayName, global::System.Convert.ToString); + } + if (content.Contains("PartnerTopicTypeDescription")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerRegistrationUpdateParametersInternal)this).PartnerTopicTypeDescription = (string) content.GetValueForProperty("PartnerTopicTypeDescription",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerRegistrationUpdateParametersInternal)this).PartnerTopicTypeDescription, global::System.Convert.ToString); + } + if (content.Contains("SetupUri")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerRegistrationUpdateParametersInternal)this).SetupUri = (string) content.GetValueForProperty("SetupUri",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerRegistrationUpdateParametersInternal)this).SetupUri, global::System.Convert.ToString); + } + if (content.Contains("LogoUri")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerRegistrationUpdateParametersInternal)this).LogoUri = (string) content.GetValueForProperty("LogoUri",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerRegistrationUpdateParametersInternal)this).LogoUri, global::System.Convert.ToString); + } + if (content.Contains("AuthorizedAzureSubscriptionId")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerRegistrationUpdateParametersInternal)this).AuthorizedAzureSubscriptionId = (string[]) content.GetValueForProperty("AuthorizedAzureSubscriptionId",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerRegistrationUpdateParametersInternal)this).AuthorizedAzureSubscriptionId, __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.EventGrid.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// Properties of the Partner Registration update. + [System.ComponentModel.TypeConverter(typeof(PartnerRegistrationUpdateParametersTypeConverter))] + public partial interface IPartnerRegistrationUpdateParameters + + { + + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PartnerRegistrationUpdateParameters.TypeConverter.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PartnerRegistrationUpdateParameters.TypeConverter.cs new file mode 100644 index 000000000000..5f1e55a5fef9 --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PartnerRegistrationUpdateParameters.TypeConverter.cs @@ -0,0 +1,148 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class PartnerRegistrationUpdateParametersTypeConverter : global::System.Management.Automation.PSTypeConverter + { + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false. + /// + public override bool CanConvertFrom(object sourceValue, global::System.Type destinationType) => CanConvertFrom(sourceValue); + + /// + /// Determines if the converter can convert the parameter to the . + /// + /// the instance to check if it can be converted to the type. + /// + /// true if the instance could be converted to a type, otherwise + /// false + /// + public static bool CanConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return true; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + // we say yest to PSObjects + return true; + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + // we say yest to Hashtables/dictionaries + return true; + } + try + { + if (null != sourceValue.ToJsonString()) + { + return true; + } + } + catch + { + // Not one of our objects + } + try + { + string text = sourceValue.ToString()?.Trim(); + return true == text?.StartsWith("{") && true == text?.EndsWith("}") && Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonType.Object; + } + catch + { + // Doesn't look like it can be treated as JSON + } + return false; + } + + /// + /// Determines if the parameter can be converted to the parameter + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false + /// + public override bool CanConvertTo(object sourceValue, global::System.Type destinationType) => false; + + /// + /// Converts the parameter to the parameter using and + /// + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// + /// an instance of , or null if there is no suitable conversion. + /// + public override object ConvertFrom(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => ConvertFrom(sourceValue); + + /// + /// Converts the parameter to the parameter using and + /// + /// the value to convert into an instance of . + /// + /// an instance of , or null if there is no suitable conversion. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerRegistrationUpdateParameters ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerRegistrationUpdateParameters).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return PartnerRegistrationUpdateParameters.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return PartnerRegistrationUpdateParameters.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return PartnerRegistrationUpdateParameters.DeserializeFromDictionary(sourceValue); + } + return null; + } + + /// NotImplemented -- this will return null + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// will always return null. + public override object ConvertTo(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => null; + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PartnerRegistrationUpdateParameters.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PartnerRegistrationUpdateParameters.cs new file mode 100644 index 000000000000..91e6772a1e06 --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PartnerRegistrationUpdateParameters.cs @@ -0,0 +1,181 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Extensions; + + /// Properties of the Partner Registration update. + public partial class PartnerRegistrationUpdateParameters : + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerRegistrationUpdateParameters, + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerRegistrationUpdateParametersInternal + { + + /// Backing field for property. + private string[] _authorizedAzureSubscriptionId; + + /// + /// List of IDs of Azure AD applications that are authorized to create a partner namespace + /// associated with this partner registration. This is an optional property. Creating + /// partner namespaces is always permitted under the same Azure subscription as the one used + /// for creating the partner registration. + /// + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Owned)] + public string[] AuthorizedAzureSubscriptionId { get => this._authorizedAzureSubscriptionId; set => this._authorizedAzureSubscriptionId = value; } + + /// Backing field for property. + private string _logoUri; + + /// URI of the partner logo. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Owned)] + public string LogoUri { get => this._logoUri; set => this._logoUri = value; } + + /// Backing field for property. + private string _partnerTopicTypeDescription; + + /// Description of the partner topic type. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Owned)] + public string PartnerTopicTypeDescription { get => this._partnerTopicTypeDescription; set => this._partnerTopicTypeDescription = value; } + + /// Backing field for property. + private string _partnerTopicTypeDisplayName; + + /// Display name of the partner topic type. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Owned)] + public string PartnerTopicTypeDisplayName { get => this._partnerTopicTypeDisplayName; set => this._partnerTopicTypeDisplayName = value; } + + /// Backing field for property. + private string _partnerTopicTypeName; + + /// Name of the partner topic type. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Owned)] + public string PartnerTopicTypeName { get => this._partnerTopicTypeName; set => this._partnerTopicTypeName = value; } + + /// Backing field for property. + private string _setupUri; + + /// + /// URI of the partner website that can be used by Azure customers to setup Event Grid + /// integration on an event source. + /// + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Owned)] + public string SetupUri { get => this._setupUri; set => this._setupUri = value; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerRegistrationUpdateParametersTags _tag; + + /// Tags of the partner registration resource. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Owned)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerRegistrationUpdateParametersTags Tag { get => (this._tag = this._tag ?? new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.PartnerRegistrationUpdateParametersTags()); set => this._tag = value; } + + /// Creates an new instance. + public PartnerRegistrationUpdateParameters() + { + + } + } + /// Properties of the Partner Registration update. + public partial interface IPartnerRegistrationUpdateParameters : + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IJsonSerializable + { + /// + /// List of IDs of Azure AD applications that are authorized to create a partner namespace + /// associated with this partner registration. This is an optional property. Creating + /// partner namespaces is always permitted under the same Azure subscription as the one used + /// for creating the partner registration. + /// + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"List of IDs of Azure AD applications that are authorized to create a partner namespace + associated with this partner registration. This is an optional property. Creating + partner namespaces is always permitted under the same Azure subscription as the one used + for creating the partner registration.", + SerializedName = @"authorizedAzureSubscriptionIds", + PossibleTypes = new [] { typeof(string) })] + string[] AuthorizedAzureSubscriptionId { get; set; } + /// URI of the partner logo. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"URI of the partner logo.", + SerializedName = @"logoUri", + PossibleTypes = new [] { typeof(string) })] + string LogoUri { get; set; } + /// Description of the partner topic type. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Description of the partner topic type.", + SerializedName = @"partnerTopicTypeDescription", + PossibleTypes = new [] { typeof(string) })] + string PartnerTopicTypeDescription { get; set; } + /// Display name of the partner topic type. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Display name of the partner topic type.", + SerializedName = @"partnerTopicTypeDisplayName", + PossibleTypes = new [] { typeof(string) })] + string PartnerTopicTypeDisplayName { get; set; } + /// Name of the partner topic type. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Name of the partner topic type.", + SerializedName = @"partnerTopicTypeName", + PossibleTypes = new [] { typeof(string) })] + string PartnerTopicTypeName { get; set; } + /// + /// URI of the partner website that can be used by Azure customers to setup Event Grid + /// integration on an event source. + /// + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"URI of the partner website that can be used by Azure customers to setup Event Grid + integration on an event source.", + SerializedName = @"setupUri", + PossibleTypes = new [] { typeof(string) })] + string SetupUri { get; set; } + /// Tags of the partner registration resource. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Tags of the partner registration resource.", + SerializedName = @"tags", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerRegistrationUpdateParametersTags) })] + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerRegistrationUpdateParametersTags Tag { get; set; } + + } + /// Properties of the Partner Registration update. + internal partial interface IPartnerRegistrationUpdateParametersInternal + + { + /// + /// List of IDs of Azure AD applications that are authorized to create a partner namespace + /// associated with this partner registration. This is an optional property. Creating + /// partner namespaces is always permitted under the same Azure subscription as the one used + /// for creating the partner registration. + /// + string[] AuthorizedAzureSubscriptionId { get; set; } + /// URI of the partner logo. + string LogoUri { get; set; } + /// Description of the partner topic type. + string PartnerTopicTypeDescription { get; set; } + /// Display name of the partner topic type. + string PartnerTopicTypeDisplayName { get; set; } + /// Name of the partner topic type. + string PartnerTopicTypeName { get; set; } + /// + /// URI of the partner website that can be used by Azure customers to setup Event Grid + /// integration on an event source. + /// + string SetupUri { get; set; } + /// Tags of the partner registration resource. + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerRegistrationUpdateParametersTags Tag { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PartnerRegistrationUpdateParameters.json.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PartnerRegistrationUpdateParameters.json.cs new file mode 100644 index 000000000000..43a2a679cb95 --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PartnerRegistrationUpdateParameters.json.cs @@ -0,0 +1,127 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Extensions; + + /// Properties of the Partner Registration update. + public partial class PartnerRegistrationUpdateParameters + { + + /// + /// AfterFromJson will be called after the json deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JsonNode that should be deserialized into this object. + + partial void AfterFromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json erialization has finished, allowing customization of the before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JSON container that the serialization result will be placed in. + + partial void AfterToJson(ref Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject container); + + /// + /// BeforeFromJson will be called before the json deserialization has commenced, allowing complete customization of + /// the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JsonNode that should be deserialized into this object. + /// Determines if the rest of the deserialization should be processed, or if the method should return + /// instantly. + + partial void BeforeFromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject json, ref bool returnNow); + + /// + /// BeforeToJson will be called before the json serialization has commenced, allowing complete customization of the + /// object before it is serialized. + /// If you wish to disable the default serialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JSON container that the serialization result will be placed in. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeToJson(ref Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerRegistrationUpdateParameters. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerRegistrationUpdateParameters. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerRegistrationUpdateParameters FromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject json ? new PartnerRegistrationUpdateParameters(json) : null; + } + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject instance to deserialize from. + internal PartnerRegistrationUpdateParameters(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject json) + { + bool returnNow = false; + BeforeFromJson(json, ref returnNow); + if (returnNow) + { + return; + } + {_tag = If( json?.PropertyT("tags"), out var __jsonTags) ? Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.PartnerRegistrationUpdateParametersTags.FromJson(__jsonTags) : Tag;} + {_partnerTopicTypeName = If( json?.PropertyT("partnerTopicTypeName"), out var __jsonPartnerTopicTypeName) ? (string)__jsonPartnerTopicTypeName : (string)PartnerTopicTypeName;} + {_partnerTopicTypeDisplayName = If( json?.PropertyT("partnerTopicTypeDisplayName"), out var __jsonPartnerTopicTypeDisplayName) ? (string)__jsonPartnerTopicTypeDisplayName : (string)PartnerTopicTypeDisplayName;} + {_partnerTopicTypeDescription = If( json?.PropertyT("partnerTopicTypeDescription"), out var __jsonPartnerTopicTypeDescription) ? (string)__jsonPartnerTopicTypeDescription : (string)PartnerTopicTypeDescription;} + {_setupUri = If( json?.PropertyT("setupUri"), out var __jsonSetupUri) ? (string)__jsonSetupUri : (string)SetupUri;} + {_logoUri = If( json?.PropertyT("logoUri"), out var __jsonLogoUri) ? (string)__jsonLogoUri : (string)LogoUri;} + {_authorizedAzureSubscriptionId = If( json?.PropertyT("authorizedAzureSubscriptionIds"), out var __jsonAuthorizedAzureSubscriptionIds) ? If( __jsonAuthorizedAzureSubscriptionIds as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Runtime.Json.JsonString __t ? (string)(__t.ToString()) : null)) ))() : null : AuthorizedAzureSubscriptionId;} + AfterFromJson(json); + } + + /// + /// Serializes this instance of into a . + /// + /// The container to serialize this object into. If the caller + /// passes in null, a new instance will be created and returned to the caller. + /// Allows the caller to choose the depth of the serialization. See . + /// + /// a serialized instance of as a . + /// + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject(); + + bool returnNow = false; + BeforeToJson(ref container, ref returnNow); + if (returnNow) + { + return container; + } + AddIf( null != this._tag ? (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode) this._tag.ToJson(null,serializationMode) : null, "tags" ,container.Add ); + AddIf( null != (((object)this._partnerTopicTypeName)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonString(this._partnerTopicTypeName.ToString()) : null, "partnerTopicTypeName" ,container.Add ); + AddIf( null != (((object)this._partnerTopicTypeDisplayName)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonString(this._partnerTopicTypeDisplayName.ToString()) : null, "partnerTopicTypeDisplayName" ,container.Add ); + AddIf( null != (((object)this._partnerTopicTypeDescription)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonString(this._partnerTopicTypeDescription.ToString()) : null, "partnerTopicTypeDescription" ,container.Add ); + AddIf( null != (((object)this._setupUri)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonString(this._setupUri.ToString()) : null, "setupUri" ,container.Add ); + AddIf( null != (((object)this._logoUri)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonString(this._logoUri.ToString()) : null, "logoUri" ,container.Add ); + if (null != this._authorizedAzureSubscriptionId) + { + var __w = new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.XNodeArray(); + foreach( var __x in this._authorizedAzureSubscriptionId ) + { + AddIf(null != (((object)__x)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonString(__x.ToString()) : null ,__w.Add); + } + container.Add("authorizedAzureSubscriptionIds",__w); + } + AfterToJson(ref container); + return container; + } + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PartnerRegistrationUpdateParametersTags.PowerShell.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PartnerRegistrationUpdateParametersTags.PowerShell.cs new file mode 100644 index 000000000000..5e155cd95bd4 --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PartnerRegistrationUpdateParametersTags.PowerShell.cs @@ -0,0 +1,143 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell; + + /// Tags of the partner registration resource. + [System.ComponentModel.TypeConverter(typeof(PartnerRegistrationUpdateParametersTagsTypeConverter))] + public partial class PartnerRegistrationUpdateParametersTags + { + + /// + /// AfterDeserializeDictionary will be called after the deserialization has finished, allowing customization of the + /// object before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Collections.IDictionary content that should be used. + + partial void AfterDeserializeDictionary(global::System.Collections.IDictionary content); + + /// + /// AfterDeserializePSObject will be called after the deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Management.Automation.PSObject content that should be used. + + partial void AfterDeserializePSObject(global::System.Management.Automation.PSObject content); + + /// + /// BeforeDeserializeDictionary will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Collections.IDictionary content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializeDictionary(global::System.Collections.IDictionary content, ref bool returnNow); + + /// + /// BeforeDeserializePSObject will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializePSObject(global::System.Management.Automation.PSObject content, ref bool returnNow); + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerRegistrationUpdateParametersTags DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new PartnerRegistrationUpdateParametersTags(content); + } + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerRegistrationUpdateParametersTags DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new PartnerRegistrationUpdateParametersTags(content); + } + + /// + /// Creates a new instance of , deserializing the content from a json + /// string. + /// + /// a string containing a JSON serialized instance of this model. + /// + /// an instance of the model class. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerRegistrationUpdateParametersTags FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode.Parse(jsonText)); + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + internal PartnerRegistrationUpdateParametersTags(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 PartnerRegistrationUpdateParametersTags(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.EventGrid.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// Tags of the partner registration resource. + [System.ComponentModel.TypeConverter(typeof(PartnerRegistrationUpdateParametersTagsTypeConverter))] + public partial interface IPartnerRegistrationUpdateParametersTags + + { + + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PartnerRegistrationUpdateParametersTags.TypeConverter.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PartnerRegistrationUpdateParametersTags.TypeConverter.cs new file mode 100644 index 000000000000..4dd3fbfaf160 --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PartnerRegistrationUpdateParametersTags.TypeConverter.cs @@ -0,0 +1,150 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class PartnerRegistrationUpdateParametersTagsTypeConverter : global::System.Management.Automation.PSTypeConverter + { + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false. + /// + public override bool CanConvertFrom(object sourceValue, global::System.Type destinationType) => CanConvertFrom(sourceValue); + + /// + /// Determines if the converter can convert the parameter to the . + /// + /// the instance to check if it can be converted to the type. + /// + /// true if the instance could be converted to a type, otherwise + /// false + /// + public static bool CanConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return true; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + // we say yest to PSObjects + return true; + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + // we say yest to Hashtables/dictionaries + return true; + } + try + { + if (null != sourceValue.ToJsonString()) + { + return true; + } + } + catch + { + // Not one of our objects + } + try + { + string text = sourceValue.ToString()?.Trim(); + return true == text?.StartsWith("{") && true == text?.EndsWith("}") && Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonType.Object; + } + catch + { + // Doesn't look like it can be treated as JSON + } + return false; + } + + /// + /// Determines if the parameter can be converted to the parameter + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false + /// + public override bool CanConvertTo(object sourceValue, global::System.Type destinationType) => false; + + /// + /// Converts the parameter to the parameter using and + /// + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// + /// an instance of , or null if there is no suitable conversion. + /// + public override object ConvertFrom(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => ConvertFrom(sourceValue); + + /// + /// Converts the parameter to the parameter using and + /// + /// the value to convert into an instance of . + /// + /// an instance of , or null if there is no suitable conversion. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerRegistrationUpdateParametersTags ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerRegistrationUpdateParametersTags).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return PartnerRegistrationUpdateParametersTags.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return PartnerRegistrationUpdateParametersTags.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return PartnerRegistrationUpdateParametersTags.DeserializeFromDictionary(sourceValue); + } + return null; + } + + /// NotImplemented -- this will return null + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// will always return null. + public override object ConvertTo(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => null; + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PartnerRegistrationUpdateParametersTags.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PartnerRegistrationUpdateParametersTags.cs new file mode 100644 index 000000000000..ab988db9281d --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PartnerRegistrationUpdateParametersTags.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.EventGrid.Models.Api20211015Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Extensions; + + /// Tags of the partner registration resource. + public partial class PartnerRegistrationUpdateParametersTags : + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerRegistrationUpdateParametersTags, + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerRegistrationUpdateParametersTagsInternal + { + + /// Creates an new instance. + public PartnerRegistrationUpdateParametersTags() + { + + } + } + /// Tags of the partner registration resource. + public partial interface IPartnerRegistrationUpdateParametersTags : + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IJsonSerializable, + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IAssociativeArray + { + + } + /// Tags of the partner registration resource. + internal partial interface IPartnerRegistrationUpdateParametersTagsInternal + + { + + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PartnerRegistrationUpdateParametersTags.dictionary.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PartnerRegistrationUpdateParametersTags.dictionary.cs new file mode 100644 index 000000000000..a12e1a7e6854 --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PartnerRegistrationUpdateParametersTags.dictionary.cs @@ -0,0 +1,75 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Extensions; + + public partial class PartnerRegistrationUpdateParametersTags : + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IAssociativeArray + { + protected global::System.Collections.Generic.Dictionary __additionalProperties = new global::System.Collections.Generic.Dictionary(); + + global::System.Collections.Generic.IDictionary Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IAssociativeArray.AdditionalProperties { get => __additionalProperties; } + + int Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IAssociativeArray.Count { get => __additionalProperties.Count; } + + global::System.Collections.Generic.IEnumerable Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IAssociativeArray.Keys { get => __additionalProperties.Keys; } + + global::System.Collections.Generic.IEnumerable Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.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.EventGrid.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.EventGrid.Models.Api20211015Preview.PartnerRegistrationUpdateParametersTags source) => source.__additionalProperties; + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PartnerRegistrationUpdateParametersTags.json.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PartnerRegistrationUpdateParametersTags.json.cs new file mode 100644 index 000000000000..45d44095b03f --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PartnerRegistrationUpdateParametersTags.json.cs @@ -0,0 +1,109 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Extensions; + + /// Tags of the partner registration resource. + public partial class PartnerRegistrationUpdateParametersTags + { + + /// + /// AfterFromJson will be called after the json deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JsonNode that should be deserialized into this object. + + partial void AfterFromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json erialization has finished, allowing customization of the before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JSON container that the serialization result will be placed in. + + partial void AfterToJson(ref Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject container); + + /// + /// BeforeFromJson will be called before the json deserialization has commenced, allowing complete customization of + /// the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JsonNode that should be deserialized into this object. + /// Determines if the rest of the deserialization should be processed, or if the method should return + /// instantly. + + partial void BeforeFromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject json, ref bool returnNow); + + /// + /// BeforeToJson will be called before the json serialization has commenced, allowing complete customization of the + /// object before it is serialized. + /// If you wish to disable the default serialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JSON container that the serialization result will be placed in. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeToJson(ref Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerRegistrationUpdateParametersTags. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerRegistrationUpdateParametersTags. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerRegistrationUpdateParametersTags FromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject json ? new PartnerRegistrationUpdateParametersTags(json) : null; + } + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject instance to deserialize from. + /// + internal PartnerRegistrationUpdateParametersTags(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Runtime.JsonSerializable.FromJson( json, ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject(); + + bool returnNow = false; + BeforeToJson(ref container, ref returnNow); + if (returnNow) + { + return container; + } + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.JsonSerializable.ToJson( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IAssociativeArray)this).AdditionalProperties, container); + AfterToJson(ref container); + return container; + } + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PartnerRegistrationsListResult.PowerShell.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PartnerRegistrationsListResult.PowerShell.cs new file mode 100644 index 000000000000..fc2d8f592a63 --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PartnerRegistrationsListResult.PowerShell.cs @@ -0,0 +1,152 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell; + + /// Result of the List Partner Registrations operation. + [System.ComponentModel.TypeConverter(typeof(PartnerRegistrationsListResultTypeConverter))] + public partial class PartnerRegistrationsListResult + { + + /// + /// AfterDeserializeDictionary will be called after the deserialization has finished, allowing customization of the + /// object before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Collections.IDictionary content that should be used. + + partial void AfterDeserializeDictionary(global::System.Collections.IDictionary content); + + /// + /// AfterDeserializePSObject will be called after the deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Management.Automation.PSObject content that should be used. + + partial void AfterDeserializePSObject(global::System.Management.Automation.PSObject content); + + /// + /// BeforeDeserializeDictionary will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Collections.IDictionary content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializeDictionary(global::System.Collections.IDictionary content, ref bool returnNow); + + /// + /// BeforeDeserializePSObject will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializePSObject(global::System.Management.Automation.PSObject content, ref bool returnNow); + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerRegistrationsListResult DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new PartnerRegistrationsListResult(content); + } + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerRegistrationsListResult DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new PartnerRegistrationsListResult(content); + } + + /// + /// Creates a new instance of , deserializing the content from a json string. + /// + /// a string containing a JSON serialized instance of this model. + /// an instance of the model class. + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerRegistrationsListResult FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode.Parse(jsonText)); + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + internal PartnerRegistrationsListResult(global::System.Collections.IDictionary content) + { + bool returnNow = false; + BeforeDeserializeDictionary(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("Value")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerRegistrationsListResultInternal)this).Value = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerRegistration[]) content.GetValueForProperty("Value",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerRegistrationsListResultInternal)this).Value, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.PartnerRegistrationTypeConverter.ConvertFrom)); + } + if (content.Contains("NextLink")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerRegistrationsListResultInternal)this).NextLink = (string) content.GetValueForProperty("NextLink",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerRegistrationsListResultInternal)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 PartnerRegistrationsListResult(global::System.Management.Automation.PSObject content) + { + bool returnNow = false; + BeforeDeserializePSObject(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("Value")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerRegistrationsListResultInternal)this).Value = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerRegistration[]) content.GetValueForProperty("Value",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerRegistrationsListResultInternal)this).Value, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.PartnerRegistrationTypeConverter.ConvertFrom)); + } + if (content.Contains("NextLink")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerRegistrationsListResultInternal)this).NextLink = (string) content.GetValueForProperty("NextLink",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerRegistrationsListResultInternal)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.EventGrid.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// Result of the List Partner Registrations operation. + [System.ComponentModel.TypeConverter(typeof(PartnerRegistrationsListResultTypeConverter))] + public partial interface IPartnerRegistrationsListResult + + { + + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PartnerRegistrationsListResult.TypeConverter.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PartnerRegistrationsListResult.TypeConverter.cs new file mode 100644 index 000000000000..2c939bffc548 --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PartnerRegistrationsListResult.TypeConverter.cs @@ -0,0 +1,147 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class PartnerRegistrationsListResultTypeConverter : global::System.Management.Automation.PSTypeConverter + { + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false. + /// + public override bool CanConvertFrom(object sourceValue, global::System.Type destinationType) => CanConvertFrom(sourceValue); + + /// + /// Determines if the converter can convert the parameter to the . + /// + /// the instance to check if it can be converted to the type. + /// + /// true if the instance could be converted to a type, otherwise false + /// + public static bool CanConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return true; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + // we say yest to PSObjects + return true; + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + // we say yest to Hashtables/dictionaries + return true; + } + try + { + if (null != sourceValue.ToJsonString()) + { + return true; + } + } + catch + { + // Not one of our objects + } + try + { + string text = sourceValue.ToString()?.Trim(); + return true == text?.StartsWith("{") && true == text?.EndsWith("}") && Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonType.Object; + } + catch + { + // Doesn't look like it can be treated as JSON + } + return false; + } + + /// + /// Determines if the parameter can be converted to the parameter + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false + /// + public override bool CanConvertTo(object sourceValue, global::System.Type destinationType) => false; + + /// + /// Converts the parameter to the parameter using and + /// + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// + /// an instance of , or null if there is no suitable conversion. + /// + public override object ConvertFrom(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => ConvertFrom(sourceValue); + + /// + /// Converts the parameter to the parameter using and + /// + /// the value to convert into an instance of . + /// + /// an instance of , or null if there is no suitable conversion. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerRegistrationsListResult ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerRegistrationsListResult).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return PartnerRegistrationsListResult.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return PartnerRegistrationsListResult.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return PartnerRegistrationsListResult.DeserializeFromDictionary(sourceValue); + } + return null; + } + + /// NotImplemented -- this will return null + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// will always return null. + public override object ConvertTo(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => null; + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PartnerRegistrationsListResult.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PartnerRegistrationsListResult.cs new file mode 100644 index 000000000000..2a3a8663fe93 --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PartnerRegistrationsListResult.cs @@ -0,0 +1,68 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Extensions; + + /// Result of the List Partner Registrations operation. + public partial class PartnerRegistrationsListResult : + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerRegistrationsListResult, + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerRegistrationsListResultInternal + { + + /// Backing field for property. + private string _nextLink; + + /// A link for the next page of partner registrations. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Owned)] + public string NextLink { get => this._nextLink; set => this._nextLink = value; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerRegistration[] _value; + + /// A collection of partner registrations. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Owned)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerRegistration[] Value { get => this._value; set => this._value = value; } + + /// Creates an new instance. + public PartnerRegistrationsListResult() + { + + } + } + /// Result of the List Partner Registrations operation. + public partial interface IPartnerRegistrationsListResult : + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IJsonSerializable + { + /// A link for the next page of partner registrations. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"A link for the next page of partner registrations.", + SerializedName = @"nextLink", + PossibleTypes = new [] { typeof(string) })] + string NextLink { get; set; } + /// A collection of partner registrations. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"A collection of partner registrations.", + SerializedName = @"value", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerRegistration) })] + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerRegistration[] Value { get; set; } + + } + /// Result of the List Partner Registrations operation. + internal partial interface IPartnerRegistrationsListResultInternal + + { + /// A link for the next page of partner registrations. + string NextLink { get; set; } + /// A collection of partner registrations. + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerRegistration[] Value { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PartnerRegistrationsListResult.json.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PartnerRegistrationsListResult.json.cs new file mode 100644 index 000000000000..822b2f732312 --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PartnerRegistrationsListResult.json.cs @@ -0,0 +1,116 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Extensions; + + /// Result of the List Partner Registrations operation. + public partial class PartnerRegistrationsListResult + { + + /// + /// AfterFromJson will be called after the json deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JsonNode that should be deserialized into this object. + + partial void AfterFromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json erialization has finished, allowing customization of the before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JSON container that the serialization result will be placed in. + + partial void AfterToJson(ref Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject container); + + /// + /// BeforeFromJson will be called before the json deserialization has commenced, allowing complete customization of + /// the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JsonNode that should be deserialized into this object. + /// Determines if the rest of the deserialization should be processed, or if the method should return + /// instantly. + + partial void BeforeFromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject json, ref bool returnNow); + + /// + /// BeforeToJson will be called before the json serialization has commenced, allowing complete customization of the + /// object before it is serialized. + /// If you wish to disable the default serialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JSON container that the serialization result will be placed in. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeToJson(ref Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerRegistrationsListResult. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerRegistrationsListResult. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerRegistrationsListResult FromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject json ? new PartnerRegistrationsListResult(json) : null; + } + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject instance to deserialize from. + internal PartnerRegistrationsListResult(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.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.EventGrid.Models.Api20211015Preview.IPartnerRegistration) (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.PartnerRegistration.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.EventGrid.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Runtime.Json.XNodeArray(); + foreach( var __x in this._value ) + { + AddIf(__x?.ToJson(null, serializationMode) ,__w.Add); + } + container.Add("value",__w); + } + AddIf( null != (((object)this._nextLink)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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/eventgrid/generated/api/Models/Api20211015Preview/PartnerTopic.PowerShell.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PartnerTopic.PowerShell.cs new file mode 100644 index 000000000000..6db7c9ec26d2 --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PartnerTopic.PowerShell.cs @@ -0,0 +1,358 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell; + + /// Event Grid Partner Topic. + [System.ComponentModel.TypeConverter(typeof(PartnerTopicTypeConverter))] + public partial class PartnerTopic + { + + /// + /// AfterDeserializeDictionary will be called after the deserialization has finished, allowing customization of the + /// object before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Collections.IDictionary content that should be used. + + partial void AfterDeserializeDictionary(global::System.Collections.IDictionary content); + + /// + /// AfterDeserializePSObject will be called after the deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Management.Automation.PSObject content that should be used. + + partial void AfterDeserializePSObject(global::System.Management.Automation.PSObject content); + + /// + /// BeforeDeserializeDictionary will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Collections.IDictionary content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializeDictionary(global::System.Collections.IDictionary content, ref bool returnNow); + + /// + /// BeforeDeserializePSObject will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializePSObject(global::System.Management.Automation.PSObject content, ref bool returnNow); + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerTopic DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new PartnerTopic(content); + } + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerTopic DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new PartnerTopic(content); + } + + /// + /// Creates a new instance of , deserializing the content from a json string. + /// + /// a string containing a JSON serialized instance of this model. + /// an instance of the model class. + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerTopic FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode.Parse(jsonText)); + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + internal PartnerTopic(global::System.Collections.IDictionary content) + { + bool returnNow = false; + BeforeDeserializeDictionary(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("Property")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerTopicInternal)this).Property = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerTopicProperties) content.GetValueForProperty("Property",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerTopicInternal)this).Property, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.PartnerTopicPropertiesTypeConverter.ConvertFrom); + } + if (content.Contains("SystemData")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerTopicInternal)this).SystemData = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20.ISystemData) content.GetValueForProperty("SystemData",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerTopicInternal)this).SystemData, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20.SystemDataTypeConverter.ConvertFrom); + } + if (content.Contains("Identity")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerTopicInternal)this).Identity = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IIdentityInfo) content.GetValueForProperty("Identity",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerTopicInternal)this).Identity, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IdentityInfoTypeConverter.ConvertFrom); + } + if (content.Contains("Id")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IResourceInternal)this).Id = (string) content.GetValueForProperty("Id",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IResourceInternal)this).Id, global::System.Convert.ToString); + } + if (content.Contains("Name")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IResourceInternal)this).Name = (string) content.GetValueForProperty("Name",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IResourceInternal)this).Name, global::System.Convert.ToString); + } + if (content.Contains("Type")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IResourceInternal)this).Type = (string) content.GetValueForProperty("Type",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IResourceInternal)this).Type, global::System.Convert.ToString); + } + if (content.Contains("Location")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITrackedResourceInternal)this).Location = (string) content.GetValueForProperty("Location",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITrackedResourceInternal)this).Location, global::System.Convert.ToString); + } + if (content.Contains("Tag")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITrackedResourceInternal)this).Tag = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITrackedResourceTags) content.GetValueForProperty("Tag",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITrackedResourceInternal)this).Tag, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.TrackedResourceTagsTypeConverter.ConvertFrom); + } + if (content.Contains("SystemDataCreatedBy")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerTopicInternal)this).SystemDataCreatedBy = (string) content.GetValueForProperty("SystemDataCreatedBy",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerTopicInternal)this).SystemDataCreatedBy, global::System.Convert.ToString); + } + if (content.Contains("SystemDataCreatedAt")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerTopicInternal)this).SystemDataCreatedAt = (global::System.DateTime?) content.GetValueForProperty("SystemDataCreatedAt",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerTopicInternal)this).SystemDataCreatedAt, (v) => v is global::System.DateTime _v ? _v : global::System.Xml.XmlConvert.ToDateTime( v.ToString() , global::System.Xml.XmlDateTimeSerializationMode.Unspecified)); + } + if (content.Contains("IdentityType")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerTopicInternal)this).IdentityType = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.IdentityType?) content.GetValueForProperty("IdentityType",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerTopicInternal)this).IdentityType, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.IdentityType.CreateFrom); + } + if (content.Contains("EventTypeInfo")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerTopicInternal)this).EventTypeInfo = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventTypeInfo) content.GetValueForProperty("EventTypeInfo",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerTopicInternal)this).EventTypeInfo, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.EventTypeInfoTypeConverter.ConvertFrom); + } + if (content.Contains("PartnerRegistrationImmutableId")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerTopicInternal)this).PartnerRegistrationImmutableId = (string) content.GetValueForProperty("PartnerRegistrationImmutableId",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerTopicInternal)this).PartnerRegistrationImmutableId, global::System.Convert.ToString); + } + if (content.Contains("Source")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerTopicInternal)this).Source = (string) content.GetValueForProperty("Source",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerTopicInternal)this).Source, global::System.Convert.ToString); + } + if (content.Contains("ExpirationTimeIfNotActivatedUtc")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerTopicInternal)this).ExpirationTimeIfNotActivatedUtc = (global::System.DateTime?) content.GetValueForProperty("ExpirationTimeIfNotActivatedUtc",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerTopicInternal)this).ExpirationTimeIfNotActivatedUtc, (v) => v is global::System.DateTime _v ? _v : global::System.Xml.XmlConvert.ToDateTime( v.ToString() , global::System.Xml.XmlDateTimeSerializationMode.Unspecified)); + } + if (content.Contains("ProvisioningState")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerTopicInternal)this).ProvisioningState = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.PartnerTopicProvisioningState?) content.GetValueForProperty("ProvisioningState",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerTopicInternal)this).ProvisioningState, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.PartnerTopicProvisioningState.CreateFrom); + } + if (content.Contains("ActivationState")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerTopicInternal)this).ActivationState = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.PartnerTopicActivationState?) content.GetValueForProperty("ActivationState",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerTopicInternal)this).ActivationState, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.PartnerTopicActivationState.CreateFrom); + } + if (content.Contains("FriendlyDescription")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerTopicInternal)this).FriendlyDescription = (string) content.GetValueForProperty("FriendlyDescription",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerTopicInternal)this).FriendlyDescription, global::System.Convert.ToString); + } + if (content.Contains("MessageForActivation")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerTopicInternal)this).MessageForActivation = (string) content.GetValueForProperty("MessageForActivation",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerTopicInternal)this).MessageForActivation, global::System.Convert.ToString); + } + if (content.Contains("SystemDataCreatedByType")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerTopicInternal)this).SystemDataCreatedByType = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.CreatedByType?) content.GetValueForProperty("SystemDataCreatedByType",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerTopicInternal)this).SystemDataCreatedByType, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.CreatedByType.CreateFrom); + } + if (content.Contains("SystemDataLastModifiedBy")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerTopicInternal)this).SystemDataLastModifiedBy = (string) content.GetValueForProperty("SystemDataLastModifiedBy",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerTopicInternal)this).SystemDataLastModifiedBy, global::System.Convert.ToString); + } + if (content.Contains("SystemDataLastModifiedByType")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerTopicInternal)this).SystemDataLastModifiedByType = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.CreatedByType?) content.GetValueForProperty("SystemDataLastModifiedByType",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerTopicInternal)this).SystemDataLastModifiedByType, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.CreatedByType.CreateFrom); + } + if (content.Contains("SystemDataLastModifiedAt")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerTopicInternal)this).SystemDataLastModifiedAt = (global::System.DateTime?) content.GetValueForProperty("SystemDataLastModifiedAt",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerTopicInternal)this).SystemDataLastModifiedAt, (v) => v is global::System.DateTime _v ? _v : global::System.Xml.XmlConvert.ToDateTime( v.ToString() , global::System.Xml.XmlDateTimeSerializationMode.Unspecified)); + } + if (content.Contains("IdentityPrincipalId")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerTopicInternal)this).IdentityPrincipalId = (string) content.GetValueForProperty("IdentityPrincipalId",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerTopicInternal)this).IdentityPrincipalId, global::System.Convert.ToString); + } + if (content.Contains("IdentityTenantId")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerTopicInternal)this).IdentityTenantId = (string) content.GetValueForProperty("IdentityTenantId",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerTopicInternal)this).IdentityTenantId, global::System.Convert.ToString); + } + if (content.Contains("IdentityUserAssignedIdentity")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerTopicInternal)this).IdentityUserAssignedIdentity = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IIdentityInfoUserAssignedIdentities) content.GetValueForProperty("IdentityUserAssignedIdentity",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerTopicInternal)this).IdentityUserAssignedIdentity, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IdentityInfoUserAssignedIdentitiesTypeConverter.ConvertFrom); + } + if (content.Contains("EventTypeInfoKind")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerTopicInternal)this).EventTypeInfoKind = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EventDefinitionKind?) content.GetValueForProperty("EventTypeInfoKind",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerTopicInternal)this).EventTypeInfoKind, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EventDefinitionKind.CreateFrom); + } + if (content.Contains("EventTypeInfoInlineEventType")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerTopicInternal)this).EventTypeInfoInlineEventType = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventTypeInfoInlineEventTypes) content.GetValueForProperty("EventTypeInfoInlineEventType",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerTopicInternal)this).EventTypeInfoInlineEventType, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.EventTypeInfoInlineEventTypesTypeConverter.ConvertFrom); + } + AfterDeserializeDictionary(content); + } + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + internal PartnerTopic(global::System.Management.Automation.PSObject content) + { + bool returnNow = false; + BeforeDeserializePSObject(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("Property")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerTopicInternal)this).Property = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerTopicProperties) content.GetValueForProperty("Property",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerTopicInternal)this).Property, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.PartnerTopicPropertiesTypeConverter.ConvertFrom); + } + if (content.Contains("SystemData")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerTopicInternal)this).SystemData = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20.ISystemData) content.GetValueForProperty("SystemData",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerTopicInternal)this).SystemData, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20.SystemDataTypeConverter.ConvertFrom); + } + if (content.Contains("Identity")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerTopicInternal)this).Identity = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IIdentityInfo) content.GetValueForProperty("Identity",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerTopicInternal)this).Identity, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IdentityInfoTypeConverter.ConvertFrom); + } + if (content.Contains("Id")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IResourceInternal)this).Id = (string) content.GetValueForProperty("Id",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IResourceInternal)this).Id, global::System.Convert.ToString); + } + if (content.Contains("Name")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IResourceInternal)this).Name = (string) content.GetValueForProperty("Name",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IResourceInternal)this).Name, global::System.Convert.ToString); + } + if (content.Contains("Type")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IResourceInternal)this).Type = (string) content.GetValueForProperty("Type",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IResourceInternal)this).Type, global::System.Convert.ToString); + } + if (content.Contains("Location")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITrackedResourceInternal)this).Location = (string) content.GetValueForProperty("Location",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITrackedResourceInternal)this).Location, global::System.Convert.ToString); + } + if (content.Contains("Tag")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITrackedResourceInternal)this).Tag = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITrackedResourceTags) content.GetValueForProperty("Tag",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITrackedResourceInternal)this).Tag, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.TrackedResourceTagsTypeConverter.ConvertFrom); + } + if (content.Contains("SystemDataCreatedBy")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerTopicInternal)this).SystemDataCreatedBy = (string) content.GetValueForProperty("SystemDataCreatedBy",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerTopicInternal)this).SystemDataCreatedBy, global::System.Convert.ToString); + } + if (content.Contains("SystemDataCreatedAt")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerTopicInternal)this).SystemDataCreatedAt = (global::System.DateTime?) content.GetValueForProperty("SystemDataCreatedAt",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerTopicInternal)this).SystemDataCreatedAt, (v) => v is global::System.DateTime _v ? _v : global::System.Xml.XmlConvert.ToDateTime( v.ToString() , global::System.Xml.XmlDateTimeSerializationMode.Unspecified)); + } + if (content.Contains("IdentityType")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerTopicInternal)this).IdentityType = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.IdentityType?) content.GetValueForProperty("IdentityType",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerTopicInternal)this).IdentityType, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.IdentityType.CreateFrom); + } + if (content.Contains("EventTypeInfo")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerTopicInternal)this).EventTypeInfo = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventTypeInfo) content.GetValueForProperty("EventTypeInfo",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerTopicInternal)this).EventTypeInfo, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.EventTypeInfoTypeConverter.ConvertFrom); + } + if (content.Contains("PartnerRegistrationImmutableId")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerTopicInternal)this).PartnerRegistrationImmutableId = (string) content.GetValueForProperty("PartnerRegistrationImmutableId",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerTopicInternal)this).PartnerRegistrationImmutableId, global::System.Convert.ToString); + } + if (content.Contains("Source")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerTopicInternal)this).Source = (string) content.GetValueForProperty("Source",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerTopicInternal)this).Source, global::System.Convert.ToString); + } + if (content.Contains("ExpirationTimeIfNotActivatedUtc")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerTopicInternal)this).ExpirationTimeIfNotActivatedUtc = (global::System.DateTime?) content.GetValueForProperty("ExpirationTimeIfNotActivatedUtc",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerTopicInternal)this).ExpirationTimeIfNotActivatedUtc, (v) => v is global::System.DateTime _v ? _v : global::System.Xml.XmlConvert.ToDateTime( v.ToString() , global::System.Xml.XmlDateTimeSerializationMode.Unspecified)); + } + if (content.Contains("ProvisioningState")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerTopicInternal)this).ProvisioningState = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.PartnerTopicProvisioningState?) content.GetValueForProperty("ProvisioningState",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerTopicInternal)this).ProvisioningState, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.PartnerTopicProvisioningState.CreateFrom); + } + if (content.Contains("ActivationState")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerTopicInternal)this).ActivationState = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.PartnerTopicActivationState?) content.GetValueForProperty("ActivationState",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerTopicInternal)this).ActivationState, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.PartnerTopicActivationState.CreateFrom); + } + if (content.Contains("FriendlyDescription")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerTopicInternal)this).FriendlyDescription = (string) content.GetValueForProperty("FriendlyDescription",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerTopicInternal)this).FriendlyDescription, global::System.Convert.ToString); + } + if (content.Contains("MessageForActivation")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerTopicInternal)this).MessageForActivation = (string) content.GetValueForProperty("MessageForActivation",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerTopicInternal)this).MessageForActivation, global::System.Convert.ToString); + } + if (content.Contains("SystemDataCreatedByType")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerTopicInternal)this).SystemDataCreatedByType = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.CreatedByType?) content.GetValueForProperty("SystemDataCreatedByType",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerTopicInternal)this).SystemDataCreatedByType, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.CreatedByType.CreateFrom); + } + if (content.Contains("SystemDataLastModifiedBy")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerTopicInternal)this).SystemDataLastModifiedBy = (string) content.GetValueForProperty("SystemDataLastModifiedBy",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerTopicInternal)this).SystemDataLastModifiedBy, global::System.Convert.ToString); + } + if (content.Contains("SystemDataLastModifiedByType")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerTopicInternal)this).SystemDataLastModifiedByType = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.CreatedByType?) content.GetValueForProperty("SystemDataLastModifiedByType",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerTopicInternal)this).SystemDataLastModifiedByType, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.CreatedByType.CreateFrom); + } + if (content.Contains("SystemDataLastModifiedAt")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerTopicInternal)this).SystemDataLastModifiedAt = (global::System.DateTime?) content.GetValueForProperty("SystemDataLastModifiedAt",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerTopicInternal)this).SystemDataLastModifiedAt, (v) => v is global::System.DateTime _v ? _v : global::System.Xml.XmlConvert.ToDateTime( v.ToString() , global::System.Xml.XmlDateTimeSerializationMode.Unspecified)); + } + if (content.Contains("IdentityPrincipalId")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerTopicInternal)this).IdentityPrincipalId = (string) content.GetValueForProperty("IdentityPrincipalId",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerTopicInternal)this).IdentityPrincipalId, global::System.Convert.ToString); + } + if (content.Contains("IdentityTenantId")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerTopicInternal)this).IdentityTenantId = (string) content.GetValueForProperty("IdentityTenantId",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerTopicInternal)this).IdentityTenantId, global::System.Convert.ToString); + } + if (content.Contains("IdentityUserAssignedIdentity")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerTopicInternal)this).IdentityUserAssignedIdentity = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IIdentityInfoUserAssignedIdentities) content.GetValueForProperty("IdentityUserAssignedIdentity",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerTopicInternal)this).IdentityUserAssignedIdentity, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IdentityInfoUserAssignedIdentitiesTypeConverter.ConvertFrom); + } + if (content.Contains("EventTypeInfoKind")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerTopicInternal)this).EventTypeInfoKind = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EventDefinitionKind?) content.GetValueForProperty("EventTypeInfoKind",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerTopicInternal)this).EventTypeInfoKind, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EventDefinitionKind.CreateFrom); + } + if (content.Contains("EventTypeInfoInlineEventType")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerTopicInternal)this).EventTypeInfoInlineEventType = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventTypeInfoInlineEventTypes) content.GetValueForProperty("EventTypeInfoInlineEventType",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerTopicInternal)this).EventTypeInfoInlineEventType, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.EventTypeInfoInlineEventTypesTypeConverter.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.EventGrid.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// Event Grid Partner Topic. + [System.ComponentModel.TypeConverter(typeof(PartnerTopicTypeConverter))] + public partial interface IPartnerTopic + + { + + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PartnerTopic.TypeConverter.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PartnerTopic.TypeConverter.cs new file mode 100644 index 000000000000..85377500315f --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PartnerTopic.TypeConverter.cs @@ -0,0 +1,146 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class PartnerTopicTypeConverter : global::System.Management.Automation.PSTypeConverter + { + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false. + /// + public override bool CanConvertFrom(object sourceValue, global::System.Type destinationType) => CanConvertFrom(sourceValue); + + /// + /// Determines if the converter can convert the parameter to the . + /// + /// the instance to check if it can be converted to the type. + /// + /// true if the instance could be converted to a type, otherwise false + /// + public static bool CanConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return true; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + // we say yest to PSObjects + return true; + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + // we say yest to Hashtables/dictionaries + return true; + } + try + { + if (null != sourceValue.ToJsonString()) + { + return true; + } + } + catch + { + // Not one of our objects + } + try + { + string text = sourceValue.ToString()?.Trim(); + return true == text?.StartsWith("{") && true == text?.EndsWith("}") && Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonType.Object; + } + catch + { + // Doesn't look like it can be treated as JSON + } + return false; + } + + /// + /// Determines if the parameter can be converted to the parameter + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false + /// + public override bool CanConvertTo(object sourceValue, global::System.Type destinationType) => false; + + /// + /// Converts the parameter to the parameter using and + /// + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// + /// an instance of , or null if there is no suitable conversion. + /// + public override object ConvertFrom(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => ConvertFrom(sourceValue); + + /// + /// Converts the parameter to the parameter using and + /// + /// the value to convert into an instance of . + /// + /// an instance of , or null if there is no suitable conversion. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerTopic ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerTopic).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return PartnerTopic.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return PartnerTopic.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return PartnerTopic.DeserializeFromDictionary(sourceValue); + } + return null; + } + + /// NotImplemented -- this will return null + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// will always return null. + public override object ConvertTo(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => null; + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PartnerTopic.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PartnerTopic.cs new file mode 100644 index 000000000000..08637240a6ca --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PartnerTopic.cs @@ -0,0 +1,473 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Extensions; + + /// Event Grid Partner Topic. + public partial class PartnerTopic : + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerTopic, + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerTopicInternal, + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IValidates + { + /// + /// Backing field for Inherited model + /// + private Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITrackedResource __trackedResource = new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.TrackedResource(); + + /// Activation state of the partner topic. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Inlined)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.PartnerTopicActivationState? ActivationState { get => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerTopicPropertiesInternal)Property).ActivationState; set => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerTopicPropertiesInternal)Property).ActivationState = value ?? ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.PartnerTopicActivationState)""); } + + /// + /// A collection of inline event types for the resource. The inline event type keys are of type string which represents the + /// name of the event. + /// An example of a valid inline event name is "Contoso.OrderCreated". + /// The inline event type values are of type InlineEventProperties and will contain additional information for every inline + /// event type. + /// + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Inlined)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventTypeInfoInlineEventTypes EventTypeInfoInlineEventType { get => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerTopicPropertiesInternal)Property).EventTypeInfoInlineEventType; set => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerTopicPropertiesInternal)Property).EventTypeInfoInlineEventType = value ?? null /* model class */; } + + /// The kind of event type used. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Inlined)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EventDefinitionKind? EventTypeInfoKind { get => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerTopicPropertiesInternal)Property).EventTypeInfoKind; set => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerTopicPropertiesInternal)Property).EventTypeInfoKind = value ?? ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EventDefinitionKind)""); } + + /// + /// Expiration time of the partner topic. If this timer expires while the partner topic is still never activated, + /// the partner topic and corresponding event channel are deleted. + /// + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Inlined)] + public global::System.DateTime? ExpirationTimeIfNotActivatedUtc { get => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerTopicPropertiesInternal)Property).ExpirationTimeIfNotActivatedUtc; set => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerTopicPropertiesInternal)Property).ExpirationTimeIfNotActivatedUtc = value ?? default(global::System.DateTime); } + + /// + /// Friendly description about the topic. This can be set by the publisher/partner to show custom description for the customer + /// partner topic. + /// This will be helpful to remove any ambiguity of the origin of creation of the partner topic for the customer. + /// + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Inlined)] + public string FriendlyDescription { get => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerTopicPropertiesInternal)Property).PartnerTopicFriendlyDescription; set => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerTopicPropertiesInternal)Property).PartnerTopicFriendlyDescription = value ?? null; } + + /// Fully qualified identifier of the resource. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Inherited)] + public string Id { get => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IResourceInternal)__trackedResource).Id; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IIdentityInfo _identity; + + /// Identity information for the Partner Topic resource. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Owned)] + internal Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IIdentityInfo Identity { get => (this._identity = this._identity ?? new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IdentityInfo()); set => this._identity = value; } + + /// The principal ID of resource identity. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Inlined)] + public string IdentityPrincipalId { get => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IIdentityInfoInternal)Identity).PrincipalId; set => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IIdentityInfoInternal)Identity).PrincipalId = value ?? null; } + + /// The tenant ID of resource. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Inlined)] + public string IdentityTenantId { get => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IIdentityInfoInternal)Identity).TenantId; set => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IIdentityInfoInternal)Identity).TenantId = value ?? null; } + + /// + /// The type of managed identity used. The type 'SystemAssigned, UserAssigned' includes both an implicitly created identity + /// and a set of user-assigned identities. The type 'None' will remove any identity. + /// + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Inlined)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.IdentityType? IdentityType { get => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IIdentityInfoInternal)Identity).Type; set => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IIdentityInfoInternal)Identity).Type = value ?? ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.IdentityType)""); } + + /// + /// The list of user identities associated with the resource. The user identity dictionary key references will be ARM resource + /// ids in the form: + /// '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ManagedIdentity/userAssignedIdentities/{identityName}'. + /// This property is currently not used and reserved for future usage. + /// + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Inlined)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IIdentityInfoUserAssignedIdentities IdentityUserAssignedIdentity { get => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IIdentityInfoInternal)Identity).UserAssignedIdentity; set => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IIdentityInfoInternal)Identity).UserAssignedIdentity = value ?? null /* model class */; } + + /// Location of the resource. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Inherited)] + public string Location { get => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITrackedResourceInternal)__trackedResource).Location; set => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITrackedResourceInternal)__trackedResource).Location = value ; } + + /// + /// Context or helpful message that can be used during the approval process by the subscriber. + /// + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Inlined)] + public string MessageForActivation { get => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerTopicPropertiesInternal)Property).MessageForActivation; set => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerTopicPropertiesInternal)Property).MessageForActivation = value ?? null; } + + /// Internal Acessors for EventTypeInfo + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventTypeInfo Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerTopicInternal.EventTypeInfo { get => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerTopicPropertiesInternal)Property).EventTypeInfo; set => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerTopicPropertiesInternal)Property).EventTypeInfo = value; } + + /// Internal Acessors for Identity + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IIdentityInfo Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerTopicInternal.Identity { get => (this._identity = this._identity ?? new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IdentityInfo()); set { {_identity = value;} } } + + /// Internal Acessors for Property + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerTopicProperties Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerTopicInternal.Property { get => (this._property = this._property ?? new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.PartnerTopicProperties()); set { {_property = value;} } } + + /// Internal Acessors for ProvisioningState + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.PartnerTopicProvisioningState? Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerTopicInternal.ProvisioningState { get => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerTopicPropertiesInternal)Property).ProvisioningState; set => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerTopicPropertiesInternal)Property).ProvisioningState = value; } + + /// Internal Acessors for SystemData + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20.ISystemData Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerTopicInternal.SystemData { get => (this._systemData = this._systemData ?? new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20.SystemData()); set { {_systemData = value;} } } + + /// Internal Acessors for Id + string Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IResourceInternal.Id { get => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IResourceInternal)__trackedResource).Id; set => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IResourceInternal)__trackedResource).Id = value; } + + /// Internal Acessors for Name + string Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IResourceInternal.Name { get => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IResourceInternal)__trackedResource).Name; set => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IResourceInternal)__trackedResource).Name = value; } + + /// Internal Acessors for Type + string Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IResourceInternal.Type { get => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IResourceInternal)__trackedResource).Type; set => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IResourceInternal)__trackedResource).Type = value; } + + /// Name of the resource. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Inherited)] + public string Name { get => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IResourceInternal)__trackedResource).Name; } + + /// The immutableId of the corresponding partner registration. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Inlined)] + public string PartnerRegistrationImmutableId { get => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerTopicPropertiesInternal)Property).PartnerRegistrationImmutableId; set => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerTopicPropertiesInternal)Property).PartnerRegistrationImmutableId = value ?? null; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerTopicProperties _property; + + /// Properties of the Partner Topic. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Owned)] + internal Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerTopicProperties Property { get => (this._property = this._property ?? new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.PartnerTopicProperties()); set => this._property = value; } + + /// Provisioning state of the partner topic. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Inlined)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.PartnerTopicProvisioningState? ProvisioningState { get => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerTopicPropertiesInternal)Property).ProvisioningState; } + + /// + /// Source associated with this partner topic. This represents a unique partner resource. + /// + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Inlined)] + public string Source { get => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerTopicPropertiesInternal)Property).Source; set => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerTopicPropertiesInternal)Property).Source = value ?? null; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20.ISystemData _systemData; + + /// The system metadata relating to Partner Topic resource. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Owned)] + internal Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20.ISystemData SystemData { get => (this._systemData = this._systemData ?? new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20.SystemData()); } + + /// The timestamp of resource creation (UTC). + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Inlined)] + public global::System.DateTime? SystemDataCreatedAt { get => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20.ISystemDataInternal)SystemData).CreatedAt; set => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20.ISystemDataInternal)SystemData).CreatedAt = value ?? default(global::System.DateTime); } + + /// The identity that created the resource. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Inlined)] + public string SystemDataCreatedBy { get => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20.ISystemDataInternal)SystemData).CreatedBy; set => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20.ISystemDataInternal)SystemData).CreatedBy = value ?? null; } + + /// The type of identity that created the resource. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Inlined)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.CreatedByType? SystemDataCreatedByType { get => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20.ISystemDataInternal)SystemData).CreatedByType; set => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20.ISystemDataInternal)SystemData).CreatedByType = value ?? ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.CreatedByType)""); } + + /// The timestamp of resource last modification (UTC) + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Inlined)] + public global::System.DateTime? SystemDataLastModifiedAt { get => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20.ISystemDataInternal)SystemData).LastModifiedAt; set => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20.ISystemDataInternal)SystemData).LastModifiedAt = value ?? default(global::System.DateTime); } + + /// The identity that last modified the resource. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Inlined)] + public string SystemDataLastModifiedBy { get => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20.ISystemDataInternal)SystemData).LastModifiedBy; set => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20.ISystemDataInternal)SystemData).LastModifiedBy = value ?? null; } + + /// The type of identity that last modified the resource. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Inlined)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.CreatedByType? SystemDataLastModifiedByType { get => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20.ISystemDataInternal)SystemData).LastModifiedByType; set => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20.ISystemDataInternal)SystemData).LastModifiedByType = value ?? ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.CreatedByType)""); } + + /// Tags of the resource. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Inherited)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITrackedResourceTags Tag { get => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITrackedResourceInternal)__trackedResource).Tag; set => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITrackedResourceInternal)__trackedResource).Tag = value ?? null /* model class */; } + + /// Type of the resource. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Inherited)] + public string Type { get => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IResourceInternal)__trackedResource).Type; } + + /// Creates an new instance. + public PartnerTopic() + { + + } + + /// Validates that this object meets the validation criteria. + /// an instance that will receive validation + /// events. + /// + /// A that will be complete when validation is completed. + /// + public async global::System.Threading.Tasks.Task Validate(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener eventListener) + { + await eventListener.AssertNotNull(nameof(__trackedResource), __trackedResource); + await eventListener.AssertObjectIsValid(nameof(__trackedResource), __trackedResource); + } + } + /// Event Grid Partner Topic. + public partial interface IPartnerTopic : + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IJsonSerializable, + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITrackedResource + { + /// Activation state of the partner topic. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Activation state of the partner topic.", + SerializedName = @"activationState", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.PartnerTopicActivationState) })] + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.PartnerTopicActivationState? ActivationState { get; set; } + /// + /// A collection of inline event types for the resource. The inline event type keys are of type string which represents the + /// name of the event. + /// An example of a valid inline event name is "Contoso.OrderCreated". + /// The inline event type values are of type InlineEventProperties and will contain additional information for every inline + /// event type. + /// + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"A collection of inline event types for the resource. The inline event type keys are of type string which represents the name of the event. + An example of a valid inline event name is ""Contoso.OrderCreated"". + The inline event type values are of type InlineEventProperties and will contain additional information for every inline event type.", + SerializedName = @"inlineEventTypes", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventTypeInfoInlineEventTypes) })] + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventTypeInfoInlineEventTypes EventTypeInfoInlineEventType { get; set; } + /// The kind of event type used. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The kind of event type used.", + SerializedName = @"kind", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EventDefinitionKind) })] + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EventDefinitionKind? EventTypeInfoKind { get; set; } + /// + /// Expiration time of the partner topic. If this timer expires while the partner topic is still never activated, + /// the partner topic and corresponding event channel are deleted. + /// + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Expiration time of the partner topic. If this timer expires while the partner topic is still never activated, + the partner topic and corresponding event channel are deleted.", + SerializedName = @"expirationTimeIfNotActivatedUtc", + PossibleTypes = new [] { typeof(global::System.DateTime) })] + global::System.DateTime? ExpirationTimeIfNotActivatedUtc { get; set; } + /// + /// Friendly description about the topic. This can be set by the publisher/partner to show custom description for the customer + /// partner topic. + /// This will be helpful to remove any ambiguity of the origin of creation of the partner topic for the customer. + /// + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Friendly description about the topic. This can be set by the publisher/partner to show custom description for the customer partner topic. + This will be helpful to remove any ambiguity of the origin of creation of the partner topic for the customer.", + SerializedName = @"partnerTopicFriendlyDescription", + PossibleTypes = new [] { typeof(string) })] + string FriendlyDescription { get; set; } + /// The principal ID of resource identity. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The principal ID of resource identity.", + SerializedName = @"principalId", + PossibleTypes = new [] { typeof(string) })] + string IdentityPrincipalId { get; set; } + /// The tenant ID of resource. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The tenant ID of resource.", + SerializedName = @"tenantId", + PossibleTypes = new [] { typeof(string) })] + string IdentityTenantId { get; set; } + /// + /// The type of managed identity used. The type 'SystemAssigned, UserAssigned' includes both an implicitly created identity + /// and a set of user-assigned identities. The type 'None' will remove any identity. + /// + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The type of managed identity used. The type 'SystemAssigned, UserAssigned' includes both an implicitly created identity and a set of user-assigned identities. The type 'None' will remove any identity.", + SerializedName = @"type", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.IdentityType) })] + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.IdentityType? IdentityType { get; set; } + /// + /// The list of user identities associated with the resource. The user identity dictionary key references will be ARM resource + /// ids in the form: + /// '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ManagedIdentity/userAssignedIdentities/{identityName}'. + /// This property is currently not used and reserved for future usage. + /// + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The list of user identities associated with the resource. The user identity dictionary key references will be ARM resource ids in the form: + '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ManagedIdentity/userAssignedIdentities/{identityName}'. + This property is currently not used and reserved for future usage.", + SerializedName = @"userAssignedIdentities", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IIdentityInfoUserAssignedIdentities) })] + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IIdentityInfoUserAssignedIdentities IdentityUserAssignedIdentity { get; set; } + /// + /// Context or helpful message that can be used during the approval process by the subscriber. + /// + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Context or helpful message that can be used during the approval process by the subscriber.", + SerializedName = @"messageForActivation", + PossibleTypes = new [] { typeof(string) })] + string MessageForActivation { get; set; } + /// The immutableId of the corresponding partner registration. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The immutableId of the corresponding partner registration.", + SerializedName = @"partnerRegistrationImmutableId", + PossibleTypes = new [] { typeof(string) })] + string PartnerRegistrationImmutableId { get; set; } + /// Provisioning state of the partner topic. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"Provisioning state of the partner topic.", + SerializedName = @"provisioningState", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.PartnerTopicProvisioningState) })] + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.PartnerTopicProvisioningState? ProvisioningState { get; } + /// + /// Source associated with this partner topic. This represents a unique partner resource. + /// + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Source associated with this partner topic. This represents a unique partner resource.", + SerializedName = @"source", + PossibleTypes = new [] { typeof(string) })] + string Source { get; set; } + /// The timestamp of resource creation (UTC). + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.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.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The type of identity that created the resource.", + SerializedName = @"createdByType", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.CreatedByType) })] + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.CreatedByType? SystemDataCreatedByType { get; set; } + /// The timestamp of resource last modification (UTC) + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.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.EventGrid.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.EventGrid.Support.CreatedByType) })] + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.CreatedByType? SystemDataLastModifiedByType { get; set; } + + } + /// Event Grid Partner Topic. + internal partial interface IPartnerTopicInternal : + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITrackedResourceInternal + { + /// Activation state of the partner topic. + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.PartnerTopicActivationState? ActivationState { get; set; } + /// Event Type information from the corresponding event channel. + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventTypeInfo EventTypeInfo { get; set; } + /// + /// A collection of inline event types for the resource. The inline event type keys are of type string which represents the + /// name of the event. + /// An example of a valid inline event name is "Contoso.OrderCreated". + /// The inline event type values are of type InlineEventProperties and will contain additional information for every inline + /// event type. + /// + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventTypeInfoInlineEventTypes EventTypeInfoInlineEventType { get; set; } + /// The kind of event type used. + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EventDefinitionKind? EventTypeInfoKind { get; set; } + /// + /// Expiration time of the partner topic. If this timer expires while the partner topic is still never activated, + /// the partner topic and corresponding event channel are deleted. + /// + global::System.DateTime? ExpirationTimeIfNotActivatedUtc { get; set; } + /// + /// Friendly description about the topic. This can be set by the publisher/partner to show custom description for the customer + /// partner topic. + /// This will be helpful to remove any ambiguity of the origin of creation of the partner topic for the customer. + /// + string FriendlyDescription { get; set; } + /// Identity information for the Partner Topic resource. + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IIdentityInfo Identity { get; set; } + /// The principal ID of resource identity. + string IdentityPrincipalId { get; set; } + /// The tenant ID of resource. + string IdentityTenantId { get; set; } + /// + /// The type of managed identity used. The type 'SystemAssigned, UserAssigned' includes both an implicitly created identity + /// and a set of user-assigned identities. The type 'None' will remove any identity. + /// + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.IdentityType? IdentityType { get; set; } + /// + /// The list of user identities associated with the resource. The user identity dictionary key references will be ARM resource + /// ids in the form: + /// '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ManagedIdentity/userAssignedIdentities/{identityName}'. + /// This property is currently not used and reserved for future usage. + /// + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IIdentityInfoUserAssignedIdentities IdentityUserAssignedIdentity { get; set; } + /// + /// Context or helpful message that can be used during the approval process by the subscriber. + /// + string MessageForActivation { get; set; } + /// The immutableId of the corresponding partner registration. + string PartnerRegistrationImmutableId { get; set; } + /// Properties of the Partner Topic. + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerTopicProperties Property { get; set; } + /// Provisioning state of the partner topic. + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.PartnerTopicProvisioningState? ProvisioningState { get; set; } + /// + /// Source associated with this partner topic. This represents a unique partner resource. + /// + string Source { get; set; } + /// The system metadata relating to Partner Topic resource. + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.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.EventGrid.Support.CreatedByType? SystemDataLastModifiedByType { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PartnerTopic.json.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PartnerTopic.json.cs new file mode 100644 index 000000000000..60cedfd16938 --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PartnerTopic.json.cs @@ -0,0 +1,115 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Extensions; + + /// Event Grid Partner Topic. + public partial class PartnerTopic + { + + /// + /// AfterFromJson will be called after the json deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JsonNode that should be deserialized into this object. + + partial void AfterFromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json erialization has finished, allowing customization of the before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JSON container that the serialization result will be placed in. + + partial void AfterToJson(ref Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject container); + + /// + /// BeforeFromJson will be called before the json deserialization has commenced, allowing complete customization of + /// the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JsonNode that should be deserialized into this object. + /// Determines if the rest of the deserialization should be processed, or if the method should return + /// instantly. + + partial void BeforeFromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject json, ref bool returnNow); + + /// + /// BeforeToJson will be called before the json serialization has commenced, allowing complete customization of the + /// object before it is serialized. + /// If you wish to disable the default serialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JSON container that the serialization result will be placed in. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeToJson(ref Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerTopic. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerTopic. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerTopic FromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject json ? new PartnerTopic(json) : null; + } + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject instance to deserialize from. + internal PartnerTopic(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject json) + { + bool returnNow = false; + BeforeFromJson(json, ref returnNow); + if (returnNow) + { + return; + } + __trackedResource = new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.TrackedResource(json); + {_property = If( json?.PropertyT("properties"), out var __jsonProperties) ? Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.PartnerTopicProperties.FromJson(__jsonProperties) : Property;} + {_systemData = If( json?.PropertyT("systemData"), out var __jsonSystemData) ? Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20.SystemData.FromJson(__jsonSystemData) : SystemData;} + {_identity = If( json?.PropertyT("identity"), out var __jsonIdentity) ? Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IdentityInfo.FromJson(__jsonIdentity) : Identity;} + AfterFromJson(json); + } + + /// + /// Serializes this instance of into a . + /// + /// The container to serialize this object into. If the caller + /// passes in null, a new instance will be created and returned to the caller. + /// Allows the caller to choose the depth of the serialization. See . + /// + /// a serialized instance of as a . + /// + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject(); + + bool returnNow = false; + BeforeToJson(ref container, ref returnNow); + if (returnNow) + { + return container; + } + __trackedResource?.ToJson(container, serializationMode); + AddIf( null != this._property ? (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode) this._property.ToJson(null,serializationMode) : null, "properties" ,container.Add ); + if (serializationMode.HasFlag(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SerializationMode.IncludeReadOnly)) + { + AddIf( null != this._systemData ? (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode) this._systemData.ToJson(null,serializationMode) : null, "systemData" ,container.Add ); + } + AddIf( null != this._identity ? (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode) this._identity.ToJson(null,serializationMode) : null, "identity" ,container.Add ); + AfterToJson(ref container); + return container; + } + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PartnerTopicInfo.PowerShell.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PartnerTopicInfo.PowerShell.cs new file mode 100644 index 000000000000..44d4d83c44c4 --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PartnerTopicInfo.PowerShell.cs @@ -0,0 +1,190 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell; + + /// Properties of the corresponding partner topic of a Channel. + [System.ComponentModel.TypeConverter(typeof(PartnerTopicInfoTypeConverter))] + public partial class PartnerTopicInfo + { + + /// + /// AfterDeserializeDictionary will be called after the deserialization has finished, allowing customization of the + /// object before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Collections.IDictionary content that should be used. + + partial void AfterDeserializeDictionary(global::System.Collections.IDictionary content); + + /// + /// AfterDeserializePSObject will be called after the deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Management.Automation.PSObject content that should be used. + + partial void AfterDeserializePSObject(global::System.Management.Automation.PSObject content); + + /// + /// BeforeDeserializeDictionary will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Collections.IDictionary content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializeDictionary(global::System.Collections.IDictionary content, ref bool returnNow); + + /// + /// BeforeDeserializePSObject will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializePSObject(global::System.Management.Automation.PSObject content, ref bool returnNow); + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerTopicInfo DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new PartnerTopicInfo(content); + } + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerTopicInfo DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new PartnerTopicInfo(content); + } + + /// + /// Creates a new instance of , deserializing the content from a json string. + /// + /// a string containing a JSON serialized instance of this model. + /// an instance of the model class. + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerTopicInfo FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode.Parse(jsonText)); + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + internal PartnerTopicInfo(global::System.Collections.IDictionary content) + { + bool returnNow = false; + BeforeDeserializeDictionary(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("EventTypeInfo")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerTopicInfoInternal)this).EventTypeInfo = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventTypeInfo) content.GetValueForProperty("EventTypeInfo",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerTopicInfoInternal)this).EventTypeInfo, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.EventTypeInfoTypeConverter.ConvertFrom); + } + if (content.Contains("AzureSubscriptionId")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerTopicInfoInternal)this).AzureSubscriptionId = (string) content.GetValueForProperty("AzureSubscriptionId",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerTopicInfoInternal)this).AzureSubscriptionId, global::System.Convert.ToString); + } + if (content.Contains("ResourceGroupName")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerTopicInfoInternal)this).ResourceGroupName = (string) content.GetValueForProperty("ResourceGroupName",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerTopicInfoInternal)this).ResourceGroupName, global::System.Convert.ToString); + } + if (content.Contains("Name")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerTopicInfoInternal)this).Name = (string) content.GetValueForProperty("Name",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerTopicInfoInternal)this).Name, global::System.Convert.ToString); + } + if (content.Contains("Source")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerTopicInfoInternal)this).Source = (string) content.GetValueForProperty("Source",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerTopicInfoInternal)this).Source, global::System.Convert.ToString); + } + if (content.Contains("EventTypeInfoKind")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerTopicInfoInternal)this).EventTypeInfoKind = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EventDefinitionKind?) content.GetValueForProperty("EventTypeInfoKind",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerTopicInfoInternal)this).EventTypeInfoKind, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EventDefinitionKind.CreateFrom); + } + if (content.Contains("EventTypeInfoInlineEventType")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerTopicInfoInternal)this).EventTypeInfoInlineEventType = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventTypeInfoInlineEventTypes) content.GetValueForProperty("EventTypeInfoInlineEventType",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerTopicInfoInternal)this).EventTypeInfoInlineEventType, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.EventTypeInfoInlineEventTypesTypeConverter.ConvertFrom); + } + AfterDeserializeDictionary(content); + } + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + internal PartnerTopicInfo(global::System.Management.Automation.PSObject content) + { + bool returnNow = false; + BeforeDeserializePSObject(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("EventTypeInfo")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerTopicInfoInternal)this).EventTypeInfo = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventTypeInfo) content.GetValueForProperty("EventTypeInfo",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerTopicInfoInternal)this).EventTypeInfo, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.EventTypeInfoTypeConverter.ConvertFrom); + } + if (content.Contains("AzureSubscriptionId")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerTopicInfoInternal)this).AzureSubscriptionId = (string) content.GetValueForProperty("AzureSubscriptionId",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerTopicInfoInternal)this).AzureSubscriptionId, global::System.Convert.ToString); + } + if (content.Contains("ResourceGroupName")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerTopicInfoInternal)this).ResourceGroupName = (string) content.GetValueForProperty("ResourceGroupName",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerTopicInfoInternal)this).ResourceGroupName, global::System.Convert.ToString); + } + if (content.Contains("Name")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerTopicInfoInternal)this).Name = (string) content.GetValueForProperty("Name",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerTopicInfoInternal)this).Name, global::System.Convert.ToString); + } + if (content.Contains("Source")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerTopicInfoInternal)this).Source = (string) content.GetValueForProperty("Source",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerTopicInfoInternal)this).Source, global::System.Convert.ToString); + } + if (content.Contains("EventTypeInfoKind")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerTopicInfoInternal)this).EventTypeInfoKind = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EventDefinitionKind?) content.GetValueForProperty("EventTypeInfoKind",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerTopicInfoInternal)this).EventTypeInfoKind, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EventDefinitionKind.CreateFrom); + } + if (content.Contains("EventTypeInfoInlineEventType")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerTopicInfoInternal)this).EventTypeInfoInlineEventType = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventTypeInfoInlineEventTypes) content.GetValueForProperty("EventTypeInfoInlineEventType",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerTopicInfoInternal)this).EventTypeInfoInlineEventType, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.EventTypeInfoInlineEventTypesTypeConverter.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.EventGrid.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// Properties of the corresponding partner topic of a Channel. + [System.ComponentModel.TypeConverter(typeof(PartnerTopicInfoTypeConverter))] + public partial interface IPartnerTopicInfo + + { + + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PartnerTopicInfo.TypeConverter.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PartnerTopicInfo.TypeConverter.cs new file mode 100644 index 000000000000..b3b53cac1ec0 --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PartnerTopicInfo.TypeConverter.cs @@ -0,0 +1,146 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class PartnerTopicInfoTypeConverter : global::System.Management.Automation.PSTypeConverter + { + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false. + /// + public override bool CanConvertFrom(object sourceValue, global::System.Type destinationType) => CanConvertFrom(sourceValue); + + /// + /// Determines if the converter can convert the parameter to the . + /// + /// the instance to check if it can be converted to the type. + /// + /// true if the instance could be converted to a type, otherwise false + /// + public static bool CanConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return true; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + // we say yest to PSObjects + return true; + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + // we say yest to Hashtables/dictionaries + return true; + } + try + { + if (null != sourceValue.ToJsonString()) + { + return true; + } + } + catch + { + // Not one of our objects + } + try + { + string text = sourceValue.ToString()?.Trim(); + return true == text?.StartsWith("{") && true == text?.EndsWith("}") && Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonType.Object; + } + catch + { + // Doesn't look like it can be treated as JSON + } + return false; + } + + /// + /// Determines if the parameter can be converted to the parameter + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false + /// + public override bool CanConvertTo(object sourceValue, global::System.Type destinationType) => false; + + /// + /// Converts the parameter to the parameter using and + /// + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// + /// an instance of , or null if there is no suitable conversion. + /// + public override object ConvertFrom(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => ConvertFrom(sourceValue); + + /// + /// Converts the parameter to the parameter using and + /// + /// the value to convert into an instance of . + /// + /// an instance of , or null if there is no suitable conversion. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerTopicInfo ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerTopicInfo).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return PartnerTopicInfo.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return PartnerTopicInfo.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return PartnerTopicInfo.DeserializeFromDictionary(sourceValue); + } + return null; + } + + /// NotImplemented -- this will return null + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// will always return null. + public override object ConvertTo(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => null; + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PartnerTopicInfo.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PartnerTopicInfo.cs new file mode 100644 index 000000000000..134c57feb29b --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PartnerTopicInfo.cs @@ -0,0 +1,202 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Extensions; + + /// Properties of the corresponding partner topic of a Channel. + public partial class PartnerTopicInfo : + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerTopicInfo, + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerTopicInfoInternal + { + + /// Backing field for property. + private string _azureSubscriptionId; + + /// + /// Azure subscription ID of the subscriber. The partner topic associated with the channel will be + /// created under this Azure subscription. + /// + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Owned)] + public string AzureSubscriptionId { get => this._azureSubscriptionId; set => this._azureSubscriptionId = value; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventTypeInfo _eventTypeInfo; + + /// + /// Event Type Information for the partner topic. This information is provided by the publisher and can be used by the + /// subscriber to view different types of events that are published. + /// + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Owned)] + internal Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventTypeInfo EventTypeInfo { get => (this._eventTypeInfo = this._eventTypeInfo ?? new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.EventTypeInfo()); set => this._eventTypeInfo = value; } + + /// + /// A collection of inline event types for the resource. The inline event type keys are of type string which represents the + /// name of the event. + /// An example of a valid inline event name is "Contoso.OrderCreated". + /// The inline event type values are of type InlineEventProperties and will contain additional information for every inline + /// event type. + /// + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Inlined)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventTypeInfoInlineEventTypes EventTypeInfoInlineEventType { get => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventTypeInfoInternal)EventTypeInfo).InlineEventType; set => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventTypeInfoInternal)EventTypeInfo).InlineEventType = value ?? null /* model class */; } + + /// The kind of event type used. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Inlined)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EventDefinitionKind? EventTypeInfoKind { get => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventTypeInfoInternal)EventTypeInfo).Kind; set => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventTypeInfoInternal)EventTypeInfo).Kind = value ?? ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EventDefinitionKind)""); } + + /// Internal Acessors for EventTypeInfo + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventTypeInfo Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerTopicInfoInternal.EventTypeInfo { get => (this._eventTypeInfo = this._eventTypeInfo ?? new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.EventTypeInfo()); set { {_eventTypeInfo = value;} } } + + /// Backing field for property. + private string _name; + + /// Name of the partner topic associated with the channel. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Owned)] + public string Name { get => this._name; set => this._name = value; } + + /// Backing field for property. + private string _resourceGroupName; + + /// + /// Azure Resource Group of the subscriber. The partner topic associated with the channel will be + /// created under this resource group. + /// + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Owned)] + public string ResourceGroupName { get => this._resourceGroupName; set => this._resourceGroupName = value; } + + /// Backing field for property. + private string _source; + + /// + /// The source information is provided by the publisher to determine the scope or context from which the events + /// are originating. This information can be used by the subscriber during the approval process of the + /// created partner topic. + /// + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Owned)] + public string Source { get => this._source; set => this._source = value; } + + /// Creates an new instance. + public PartnerTopicInfo() + { + + } + } + /// Properties of the corresponding partner topic of a Channel. + public partial interface IPartnerTopicInfo : + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IJsonSerializable + { + /// + /// Azure subscription ID of the subscriber. The partner topic associated with the channel will be + /// created under this Azure subscription. + /// + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Azure subscription ID of the subscriber. The partner topic associated with the channel will be + created under this Azure subscription.", + SerializedName = @"azureSubscriptionId", + PossibleTypes = new [] { typeof(string) })] + string AzureSubscriptionId { get; set; } + /// + /// A collection of inline event types for the resource. The inline event type keys are of type string which represents the + /// name of the event. + /// An example of a valid inline event name is "Contoso.OrderCreated". + /// The inline event type values are of type InlineEventProperties and will contain additional information for every inline + /// event type. + /// + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"A collection of inline event types for the resource. The inline event type keys are of type string which represents the name of the event. + An example of a valid inline event name is ""Contoso.OrderCreated"". + The inline event type values are of type InlineEventProperties and will contain additional information for every inline event type.", + SerializedName = @"inlineEventTypes", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventTypeInfoInlineEventTypes) })] + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventTypeInfoInlineEventTypes EventTypeInfoInlineEventType { get; set; } + /// The kind of event type used. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The kind of event type used.", + SerializedName = @"kind", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EventDefinitionKind) })] + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EventDefinitionKind? EventTypeInfoKind { get; set; } + /// Name of the partner topic associated with the channel. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Name of the partner topic associated with the channel.", + SerializedName = @"name", + PossibleTypes = new [] { typeof(string) })] + string Name { get; set; } + /// + /// Azure Resource Group of the subscriber. The partner topic associated with the channel will be + /// created under this resource group. + /// + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Azure Resource Group of the subscriber. The partner topic associated with the channel will be + created under this resource group.", + SerializedName = @"resourceGroupName", + PossibleTypes = new [] { typeof(string) })] + string ResourceGroupName { get; set; } + /// + /// The source information is provided by the publisher to determine the scope or context from which the events + /// are originating. This information can be used by the subscriber during the approval process of the + /// created partner topic. + /// + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The source information is provided by the publisher to determine the scope or context from which the events + are originating. This information can be used by the subscriber during the approval process of the + created partner topic.", + SerializedName = @"source", + PossibleTypes = new [] { typeof(string) })] + string Source { get; set; } + + } + /// Properties of the corresponding partner topic of a Channel. + internal partial interface IPartnerTopicInfoInternal + + { + /// + /// Azure subscription ID of the subscriber. The partner topic associated with the channel will be + /// created under this Azure subscription. + /// + string AzureSubscriptionId { get; set; } + /// + /// Event Type Information for the partner topic. This information is provided by the publisher and can be used by the + /// subscriber to view different types of events that are published. + /// + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventTypeInfo EventTypeInfo { get; set; } + /// + /// A collection of inline event types for the resource. The inline event type keys are of type string which represents the + /// name of the event. + /// An example of a valid inline event name is "Contoso.OrderCreated". + /// The inline event type values are of type InlineEventProperties and will contain additional information for every inline + /// event type. + /// + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventTypeInfoInlineEventTypes EventTypeInfoInlineEventType { get; set; } + /// The kind of event type used. + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EventDefinitionKind? EventTypeInfoKind { get; set; } + /// Name of the partner topic associated with the channel. + string Name { get; set; } + /// + /// Azure Resource Group of the subscriber. The partner topic associated with the channel will be + /// created under this resource group. + /// + string ResourceGroupName { get; set; } + /// + /// The source information is provided by the publisher to determine the scope or context from which the events + /// are originating. This information can be used by the subscriber during the approval process of the + /// created partner topic. + /// + string Source { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PartnerTopicInfo.json.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PartnerTopicInfo.json.cs new file mode 100644 index 000000000000..2e40cab2ad78 --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PartnerTopicInfo.json.cs @@ -0,0 +1,114 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Extensions; + + /// Properties of the corresponding partner topic of a Channel. + public partial class PartnerTopicInfo + { + + /// + /// AfterFromJson will be called after the json deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JsonNode that should be deserialized into this object. + + partial void AfterFromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json erialization has finished, allowing customization of the before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JSON container that the serialization result will be placed in. + + partial void AfterToJson(ref Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject container); + + /// + /// BeforeFromJson will be called before the json deserialization has commenced, allowing complete customization of + /// the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JsonNode that should be deserialized into this object. + /// Determines if the rest of the deserialization should be processed, or if the method should return + /// instantly. + + partial void BeforeFromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject json, ref bool returnNow); + + /// + /// BeforeToJson will be called before the json serialization has commenced, allowing complete customization of the + /// object before it is serialized. + /// If you wish to disable the default serialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JSON container that the serialization result will be placed in. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeToJson(ref Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerTopicInfo. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerTopicInfo. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerTopicInfo FromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject json ? new PartnerTopicInfo(json) : null; + } + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject instance to deserialize from. + internal PartnerTopicInfo(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject json) + { + bool returnNow = false; + BeforeFromJson(json, ref returnNow); + if (returnNow) + { + return; + } + {_eventTypeInfo = If( json?.PropertyT("eventTypeInfo"), out var __jsonEventTypeInfo) ? Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.EventTypeInfo.FromJson(__jsonEventTypeInfo) : EventTypeInfo;} + {_azureSubscriptionId = If( json?.PropertyT("azureSubscriptionId"), out var __jsonAzureSubscriptionId) ? (string)__jsonAzureSubscriptionId : (string)AzureSubscriptionId;} + {_resourceGroupName = If( json?.PropertyT("resourceGroupName"), out var __jsonResourceGroupName) ? (string)__jsonResourceGroupName : (string)ResourceGroupName;} + {_name = If( json?.PropertyT("name"), out var __jsonName) ? (string)__jsonName : (string)Name;} + {_source = If( json?.PropertyT("source"), out var __jsonSource) ? (string)__jsonSource : (string)Source;} + AfterFromJson(json); + } + + /// + /// Serializes this instance of into a . + /// + /// The container to serialize this object into. If the caller + /// passes in null, a new instance will be created and returned to the caller. + /// Allows the caller to choose the depth of the serialization. See . + /// + /// a serialized instance of as a . + /// + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject(); + + bool returnNow = false; + BeforeToJson(ref container, ref returnNow); + if (returnNow) + { + return container; + } + AddIf( null != this._eventTypeInfo ? (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode) this._eventTypeInfo.ToJson(null,serializationMode) : null, "eventTypeInfo" ,container.Add ); + AddIf( null != (((object)this._azureSubscriptionId)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonString(this._azureSubscriptionId.ToString()) : null, "azureSubscriptionId" ,container.Add ); + AddIf( null != (((object)this._resourceGroupName)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonString(this._resourceGroupName.ToString()) : null, "resourceGroupName" ,container.Add ); + AddIf( null != (((object)this._name)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonString(this._name.ToString()) : null, "name" ,container.Add ); + AddIf( null != (((object)this._source)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonString(this._source.ToString()) : null, "source" ,container.Add ); + AfterToJson(ref container); + return container; + } + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PartnerTopicProperties.PowerShell.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PartnerTopicProperties.PowerShell.cs new file mode 100644 index 000000000000..d43e44d2d84a --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PartnerTopicProperties.PowerShell.cs @@ -0,0 +1,216 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell; + + /// Properties of the Partner Topic. + [System.ComponentModel.TypeConverter(typeof(PartnerTopicPropertiesTypeConverter))] + public partial class PartnerTopicProperties + { + + /// + /// AfterDeserializeDictionary will be called after the deserialization has finished, allowing customization of the + /// object before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Collections.IDictionary content that should be used. + + partial void AfterDeserializeDictionary(global::System.Collections.IDictionary content); + + /// + /// AfterDeserializePSObject will be called after the deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Management.Automation.PSObject content that should be used. + + partial void AfterDeserializePSObject(global::System.Management.Automation.PSObject content); + + /// + /// BeforeDeserializeDictionary will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Collections.IDictionary content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializeDictionary(global::System.Collections.IDictionary content, ref bool returnNow); + + /// + /// BeforeDeserializePSObject will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializePSObject(global::System.Management.Automation.PSObject content, ref bool returnNow); + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerTopicProperties DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new PartnerTopicProperties(content); + } + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerTopicProperties DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new PartnerTopicProperties(content); + } + + /// + /// Creates a new instance of , deserializing the content from a json string. + /// + /// a string containing a JSON serialized instance of this model. + /// an instance of the model class. + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerTopicProperties FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode.Parse(jsonText)); + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + internal PartnerTopicProperties(global::System.Collections.IDictionary content) + { + bool returnNow = false; + BeforeDeserializeDictionary(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("EventTypeInfo")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerTopicPropertiesInternal)this).EventTypeInfo = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventTypeInfo) content.GetValueForProperty("EventTypeInfo",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerTopicPropertiesInternal)this).EventTypeInfo, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.EventTypeInfoTypeConverter.ConvertFrom); + } + if (content.Contains("PartnerRegistrationImmutableId")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerTopicPropertiesInternal)this).PartnerRegistrationImmutableId = (string) content.GetValueForProperty("PartnerRegistrationImmutableId",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerTopicPropertiesInternal)this).PartnerRegistrationImmutableId, global::System.Convert.ToString); + } + if (content.Contains("Source")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerTopicPropertiesInternal)this).Source = (string) content.GetValueForProperty("Source",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerTopicPropertiesInternal)this).Source, global::System.Convert.ToString); + } + if (content.Contains("ExpirationTimeIfNotActivatedUtc")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerTopicPropertiesInternal)this).ExpirationTimeIfNotActivatedUtc = (global::System.DateTime?) content.GetValueForProperty("ExpirationTimeIfNotActivatedUtc",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerTopicPropertiesInternal)this).ExpirationTimeIfNotActivatedUtc, (v) => v is global::System.DateTime _v ? _v : global::System.Xml.XmlConvert.ToDateTime( v.ToString() , global::System.Xml.XmlDateTimeSerializationMode.Unspecified)); + } + if (content.Contains("ProvisioningState")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerTopicPropertiesInternal)this).ProvisioningState = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.PartnerTopicProvisioningState?) content.GetValueForProperty("ProvisioningState",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerTopicPropertiesInternal)this).ProvisioningState, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.PartnerTopicProvisioningState.CreateFrom); + } + if (content.Contains("ActivationState")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerTopicPropertiesInternal)this).ActivationState = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.PartnerTopicActivationState?) content.GetValueForProperty("ActivationState",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerTopicPropertiesInternal)this).ActivationState, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.PartnerTopicActivationState.CreateFrom); + } + if (content.Contains("PartnerTopicFriendlyDescription")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerTopicPropertiesInternal)this).PartnerTopicFriendlyDescription = (string) content.GetValueForProperty("PartnerTopicFriendlyDescription",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerTopicPropertiesInternal)this).PartnerTopicFriendlyDescription, global::System.Convert.ToString); + } + if (content.Contains("MessageForActivation")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerTopicPropertiesInternal)this).MessageForActivation = (string) content.GetValueForProperty("MessageForActivation",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerTopicPropertiesInternal)this).MessageForActivation, global::System.Convert.ToString); + } + if (content.Contains("EventTypeInfoKind")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerTopicPropertiesInternal)this).EventTypeInfoKind = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EventDefinitionKind?) content.GetValueForProperty("EventTypeInfoKind",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerTopicPropertiesInternal)this).EventTypeInfoKind, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EventDefinitionKind.CreateFrom); + } + if (content.Contains("EventTypeInfoInlineEventType")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerTopicPropertiesInternal)this).EventTypeInfoInlineEventType = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventTypeInfoInlineEventTypes) content.GetValueForProperty("EventTypeInfoInlineEventType",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerTopicPropertiesInternal)this).EventTypeInfoInlineEventType, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.EventTypeInfoInlineEventTypesTypeConverter.ConvertFrom); + } + AfterDeserializeDictionary(content); + } + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + internal PartnerTopicProperties(global::System.Management.Automation.PSObject content) + { + bool returnNow = false; + BeforeDeserializePSObject(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("EventTypeInfo")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerTopicPropertiesInternal)this).EventTypeInfo = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventTypeInfo) content.GetValueForProperty("EventTypeInfo",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerTopicPropertiesInternal)this).EventTypeInfo, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.EventTypeInfoTypeConverter.ConvertFrom); + } + if (content.Contains("PartnerRegistrationImmutableId")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerTopicPropertiesInternal)this).PartnerRegistrationImmutableId = (string) content.GetValueForProperty("PartnerRegistrationImmutableId",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerTopicPropertiesInternal)this).PartnerRegistrationImmutableId, global::System.Convert.ToString); + } + if (content.Contains("Source")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerTopicPropertiesInternal)this).Source = (string) content.GetValueForProperty("Source",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerTopicPropertiesInternal)this).Source, global::System.Convert.ToString); + } + if (content.Contains("ExpirationTimeIfNotActivatedUtc")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerTopicPropertiesInternal)this).ExpirationTimeIfNotActivatedUtc = (global::System.DateTime?) content.GetValueForProperty("ExpirationTimeIfNotActivatedUtc",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerTopicPropertiesInternal)this).ExpirationTimeIfNotActivatedUtc, (v) => v is global::System.DateTime _v ? _v : global::System.Xml.XmlConvert.ToDateTime( v.ToString() , global::System.Xml.XmlDateTimeSerializationMode.Unspecified)); + } + if (content.Contains("ProvisioningState")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerTopicPropertiesInternal)this).ProvisioningState = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.PartnerTopicProvisioningState?) content.GetValueForProperty("ProvisioningState",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerTopicPropertiesInternal)this).ProvisioningState, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.PartnerTopicProvisioningState.CreateFrom); + } + if (content.Contains("ActivationState")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerTopicPropertiesInternal)this).ActivationState = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.PartnerTopicActivationState?) content.GetValueForProperty("ActivationState",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerTopicPropertiesInternal)this).ActivationState, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.PartnerTopicActivationState.CreateFrom); + } + if (content.Contains("PartnerTopicFriendlyDescription")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerTopicPropertiesInternal)this).PartnerTopicFriendlyDescription = (string) content.GetValueForProperty("PartnerTopicFriendlyDescription",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerTopicPropertiesInternal)this).PartnerTopicFriendlyDescription, global::System.Convert.ToString); + } + if (content.Contains("MessageForActivation")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerTopicPropertiesInternal)this).MessageForActivation = (string) content.GetValueForProperty("MessageForActivation",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerTopicPropertiesInternal)this).MessageForActivation, global::System.Convert.ToString); + } + if (content.Contains("EventTypeInfoKind")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerTopicPropertiesInternal)this).EventTypeInfoKind = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EventDefinitionKind?) content.GetValueForProperty("EventTypeInfoKind",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerTopicPropertiesInternal)this).EventTypeInfoKind, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EventDefinitionKind.CreateFrom); + } + if (content.Contains("EventTypeInfoInlineEventType")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerTopicPropertiesInternal)this).EventTypeInfoInlineEventType = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventTypeInfoInlineEventTypes) content.GetValueForProperty("EventTypeInfoInlineEventType",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerTopicPropertiesInternal)this).EventTypeInfoInlineEventType, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.EventTypeInfoInlineEventTypesTypeConverter.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.EventGrid.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// Properties of the Partner Topic. + [System.ComponentModel.TypeConverter(typeof(PartnerTopicPropertiesTypeConverter))] + public partial interface IPartnerTopicProperties + + { + + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PartnerTopicProperties.TypeConverter.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PartnerTopicProperties.TypeConverter.cs new file mode 100644 index 000000000000..d6183c521309 --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PartnerTopicProperties.TypeConverter.cs @@ -0,0 +1,147 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class PartnerTopicPropertiesTypeConverter : global::System.Management.Automation.PSTypeConverter + { + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false. + /// + public override bool CanConvertFrom(object sourceValue, global::System.Type destinationType) => CanConvertFrom(sourceValue); + + /// + /// Determines if the converter can convert the parameter to the . + /// + /// the instance to check if it can be converted to the type. + /// + /// true if the instance could be converted to a type, otherwise false + /// + public static bool CanConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return true; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + // we say yest to PSObjects + return true; + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + // we say yest to Hashtables/dictionaries + return true; + } + try + { + if (null != sourceValue.ToJsonString()) + { + return true; + } + } + catch + { + // Not one of our objects + } + try + { + string text = sourceValue.ToString()?.Trim(); + return true == text?.StartsWith("{") && true == text?.EndsWith("}") && Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonType.Object; + } + catch + { + // Doesn't look like it can be treated as JSON + } + return false; + } + + /// + /// Determines if the parameter can be converted to the parameter + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false + /// + public override bool CanConvertTo(object sourceValue, global::System.Type destinationType) => false; + + /// + /// Converts the parameter to the parameter using and + /// + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// + /// an instance of , or null if there is no suitable conversion. + /// + public override object ConvertFrom(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => ConvertFrom(sourceValue); + + /// + /// Converts the parameter to the parameter using and + /// + /// the value to convert into an instance of . + /// + /// an instance of , or null if there is no suitable conversion. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerTopicProperties ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerTopicProperties).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return PartnerTopicProperties.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return PartnerTopicProperties.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return PartnerTopicProperties.DeserializeFromDictionary(sourceValue); + } + return null; + } + + /// NotImplemented -- this will return null + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// will always return null. + public override object ConvertTo(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => null; + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PartnerTopicProperties.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PartnerTopicProperties.cs new file mode 100644 index 000000000000..507c17301894 --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PartnerTopicProperties.cs @@ -0,0 +1,251 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Extensions; + + /// Properties of the Partner Topic. + public partial class PartnerTopicProperties : + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerTopicProperties, + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerTopicPropertiesInternal + { + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.PartnerTopicActivationState? _activationState; + + /// Activation state of the partner topic. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Owned)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.PartnerTopicActivationState? ActivationState { get => this._activationState; set => this._activationState = value; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventTypeInfo _eventTypeInfo; + + /// Event Type information from the corresponding event channel. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Owned)] + internal Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventTypeInfo EventTypeInfo { get => (this._eventTypeInfo = this._eventTypeInfo ?? new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.EventTypeInfo()); set => this._eventTypeInfo = value; } + + /// + /// A collection of inline event types for the resource. The inline event type keys are of type string which represents the + /// name of the event. + /// An example of a valid inline event name is "Contoso.OrderCreated". + /// The inline event type values are of type InlineEventProperties and will contain additional information for every inline + /// event type. + /// + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Inlined)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventTypeInfoInlineEventTypes EventTypeInfoInlineEventType { get => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventTypeInfoInternal)EventTypeInfo).InlineEventType; set => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventTypeInfoInternal)EventTypeInfo).InlineEventType = value ?? null /* model class */; } + + /// The kind of event type used. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Inlined)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EventDefinitionKind? EventTypeInfoKind { get => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventTypeInfoInternal)EventTypeInfo).Kind; set => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventTypeInfoInternal)EventTypeInfo).Kind = value ?? ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EventDefinitionKind)""); } + + /// Backing field for property. + private global::System.DateTime? _expirationTimeIfNotActivatedUtc; + + /// + /// Expiration time of the partner topic. If this timer expires while the partner topic is still never activated, + /// the partner topic and corresponding event channel are deleted. + /// + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Owned)] + public global::System.DateTime? ExpirationTimeIfNotActivatedUtc { get => this._expirationTimeIfNotActivatedUtc; set => this._expirationTimeIfNotActivatedUtc = value; } + + /// Backing field for property. + private string _messageForActivation; + + /// + /// Context or helpful message that can be used during the approval process by the subscriber. + /// + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Owned)] + public string MessageForActivation { get => this._messageForActivation; set => this._messageForActivation = value; } + + /// Internal Acessors for EventTypeInfo + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventTypeInfo Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerTopicPropertiesInternal.EventTypeInfo { get => (this._eventTypeInfo = this._eventTypeInfo ?? new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.EventTypeInfo()); set { {_eventTypeInfo = value;} } } + + /// Internal Acessors for ProvisioningState + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.PartnerTopicProvisioningState? Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerTopicPropertiesInternal.ProvisioningState { get => this._provisioningState; set { {_provisioningState = value;} } } + + /// Backing field for property. + private string _partnerRegistrationImmutableId; + + /// The immutableId of the corresponding partner registration. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Owned)] + public string PartnerRegistrationImmutableId { get => this._partnerRegistrationImmutableId; set => this._partnerRegistrationImmutableId = value; } + + /// Backing field for property. + private string _partnerTopicFriendlyDescription; + + /// + /// Friendly description about the topic. This can be set by the publisher/partner to show custom description for the customer + /// partner topic. + /// This will be helpful to remove any ambiguity of the origin of creation of the partner topic for the customer. + /// + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Owned)] + public string PartnerTopicFriendlyDescription { get => this._partnerTopicFriendlyDescription; set => this._partnerTopicFriendlyDescription = value; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.PartnerTopicProvisioningState? _provisioningState; + + /// Provisioning state of the partner topic. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Owned)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.PartnerTopicProvisioningState? ProvisioningState { get => this._provisioningState; } + + /// Backing field for property. + private string _source; + + /// + /// Source associated with this partner topic. This represents a unique partner resource. + /// + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Owned)] + public string Source { get => this._source; set => this._source = value; } + + /// Creates an new instance. + public PartnerTopicProperties() + { + + } + } + /// Properties of the Partner Topic. + public partial interface IPartnerTopicProperties : + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IJsonSerializable + { + /// Activation state of the partner topic. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Activation state of the partner topic.", + SerializedName = @"activationState", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.PartnerTopicActivationState) })] + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.PartnerTopicActivationState? ActivationState { get; set; } + /// + /// A collection of inline event types for the resource. The inline event type keys are of type string which represents the + /// name of the event. + /// An example of a valid inline event name is "Contoso.OrderCreated". + /// The inline event type values are of type InlineEventProperties and will contain additional information for every inline + /// event type. + /// + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"A collection of inline event types for the resource. The inline event type keys are of type string which represents the name of the event. + An example of a valid inline event name is ""Contoso.OrderCreated"". + The inline event type values are of type InlineEventProperties and will contain additional information for every inline event type.", + SerializedName = @"inlineEventTypes", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventTypeInfoInlineEventTypes) })] + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventTypeInfoInlineEventTypes EventTypeInfoInlineEventType { get; set; } + /// The kind of event type used. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The kind of event type used.", + SerializedName = @"kind", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EventDefinitionKind) })] + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EventDefinitionKind? EventTypeInfoKind { get; set; } + /// + /// Expiration time of the partner topic. If this timer expires while the partner topic is still never activated, + /// the partner topic and corresponding event channel are deleted. + /// + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Expiration time of the partner topic. If this timer expires while the partner topic is still never activated, + the partner topic and corresponding event channel are deleted.", + SerializedName = @"expirationTimeIfNotActivatedUtc", + PossibleTypes = new [] { typeof(global::System.DateTime) })] + global::System.DateTime? ExpirationTimeIfNotActivatedUtc { get; set; } + /// + /// Context or helpful message that can be used during the approval process by the subscriber. + /// + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Context or helpful message that can be used during the approval process by the subscriber.", + SerializedName = @"messageForActivation", + PossibleTypes = new [] { typeof(string) })] + string MessageForActivation { get; set; } + /// The immutableId of the corresponding partner registration. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The immutableId of the corresponding partner registration.", + SerializedName = @"partnerRegistrationImmutableId", + PossibleTypes = new [] { typeof(string) })] + string PartnerRegistrationImmutableId { get; set; } + /// + /// Friendly description about the topic. This can be set by the publisher/partner to show custom description for the customer + /// partner topic. + /// This will be helpful to remove any ambiguity of the origin of creation of the partner topic for the customer. + /// + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Friendly description about the topic. This can be set by the publisher/partner to show custom description for the customer partner topic. + This will be helpful to remove any ambiguity of the origin of creation of the partner topic for the customer.", + SerializedName = @"partnerTopicFriendlyDescription", + PossibleTypes = new [] { typeof(string) })] + string PartnerTopicFriendlyDescription { get; set; } + /// Provisioning state of the partner topic. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"Provisioning state of the partner topic.", + SerializedName = @"provisioningState", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.PartnerTopicProvisioningState) })] + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.PartnerTopicProvisioningState? ProvisioningState { get; } + /// + /// Source associated with this partner topic. This represents a unique partner resource. + /// + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Source associated with this partner topic. This represents a unique partner resource.", + SerializedName = @"source", + PossibleTypes = new [] { typeof(string) })] + string Source { get; set; } + + } + /// Properties of the Partner Topic. + internal partial interface IPartnerTopicPropertiesInternal + + { + /// Activation state of the partner topic. + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.PartnerTopicActivationState? ActivationState { get; set; } + /// Event Type information from the corresponding event channel. + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventTypeInfo EventTypeInfo { get; set; } + /// + /// A collection of inline event types for the resource. The inline event type keys are of type string which represents the + /// name of the event. + /// An example of a valid inline event name is "Contoso.OrderCreated". + /// The inline event type values are of type InlineEventProperties and will contain additional information for every inline + /// event type. + /// + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventTypeInfoInlineEventTypes EventTypeInfoInlineEventType { get; set; } + /// The kind of event type used. + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EventDefinitionKind? EventTypeInfoKind { get; set; } + /// + /// Expiration time of the partner topic. If this timer expires while the partner topic is still never activated, + /// the partner topic and corresponding event channel are deleted. + /// + global::System.DateTime? ExpirationTimeIfNotActivatedUtc { get; set; } + /// + /// Context or helpful message that can be used during the approval process by the subscriber. + /// + string MessageForActivation { get; set; } + /// The immutableId of the corresponding partner registration. + string PartnerRegistrationImmutableId { get; set; } + /// + /// Friendly description about the topic. This can be set by the publisher/partner to show custom description for the customer + /// partner topic. + /// This will be helpful to remove any ambiguity of the origin of creation of the partner topic for the customer. + /// + string PartnerTopicFriendlyDescription { get; set; } + /// Provisioning state of the partner topic. + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.PartnerTopicProvisioningState? ProvisioningState { get; set; } + /// + /// Source associated with this partner topic. This represents a unique partner resource. + /// + string Source { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PartnerTopicProperties.json.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PartnerTopicProperties.json.cs new file mode 100644 index 000000000000..4df9e0b15eb3 --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PartnerTopicProperties.json.cs @@ -0,0 +1,123 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Extensions; + + /// Properties of the Partner Topic. + public partial class PartnerTopicProperties + { + + /// + /// AfterFromJson will be called after the json deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JsonNode that should be deserialized into this object. + + partial void AfterFromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json erialization has finished, allowing customization of the before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JSON container that the serialization result will be placed in. + + partial void AfterToJson(ref Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject container); + + /// + /// BeforeFromJson will be called before the json deserialization has commenced, allowing complete customization of + /// the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JsonNode that should be deserialized into this object. + /// Determines if the rest of the deserialization should be processed, or if the method should return + /// instantly. + + partial void BeforeFromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject json, ref bool returnNow); + + /// + /// BeforeToJson will be called before the json serialization has commenced, allowing complete customization of the + /// object before it is serialized. + /// If you wish to disable the default serialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JSON container that the serialization result will be placed in. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeToJson(ref Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerTopicProperties. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerTopicProperties. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerTopicProperties FromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject json ? new PartnerTopicProperties(json) : null; + } + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject instance to deserialize from. + internal PartnerTopicProperties(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject json) + { + bool returnNow = false; + BeforeFromJson(json, ref returnNow); + if (returnNow) + { + return; + } + {_eventTypeInfo = If( json?.PropertyT("eventTypeInfo"), out var __jsonEventTypeInfo) ? Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.EventTypeInfo.FromJson(__jsonEventTypeInfo) : EventTypeInfo;} + {_partnerRegistrationImmutableId = If( json?.PropertyT("partnerRegistrationImmutableId"), out var __jsonPartnerRegistrationImmutableId) ? (string)__jsonPartnerRegistrationImmutableId : (string)PartnerRegistrationImmutableId;} + {_source = If( json?.PropertyT("source"), out var __jsonSource) ? (string)__jsonSource : (string)Source;} + {_expirationTimeIfNotActivatedUtc = If( json?.PropertyT("expirationTimeIfNotActivatedUtc"), out var __jsonExpirationTimeIfNotActivatedUtc) ? global::System.DateTime.TryParse((string)__jsonExpirationTimeIfNotActivatedUtc, global::System.Globalization.CultureInfo.InvariantCulture, global::System.Globalization.DateTimeStyles.AdjustToUniversal, out var __jsonExpirationTimeIfNotActivatedUtcValue) ? __jsonExpirationTimeIfNotActivatedUtcValue : ExpirationTimeIfNotActivatedUtc : ExpirationTimeIfNotActivatedUtc;} + {_provisioningState = If( json?.PropertyT("provisioningState"), out var __jsonProvisioningState) ? (string)__jsonProvisioningState : (string)ProvisioningState;} + {_activationState = If( json?.PropertyT("activationState"), out var __jsonActivationState) ? (string)__jsonActivationState : (string)ActivationState;} + {_partnerTopicFriendlyDescription = If( json?.PropertyT("partnerTopicFriendlyDescription"), out var __jsonPartnerTopicFriendlyDescription) ? (string)__jsonPartnerTopicFriendlyDescription : (string)PartnerTopicFriendlyDescription;} + {_messageForActivation = If( json?.PropertyT("messageForActivation"), out var __jsonMessageForActivation) ? (string)__jsonMessageForActivation : (string)MessageForActivation;} + AfterFromJson(json); + } + + /// + /// Serializes this instance of into a . + /// + /// The container to serialize this object into. If the caller + /// passes in null, a new instance will be created and returned to the caller. + /// Allows the caller to choose the depth of the serialization. See . + /// + /// a serialized instance of as a . + /// + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject(); + + bool returnNow = false; + BeforeToJson(ref container, ref returnNow); + if (returnNow) + { + return container; + } + AddIf( null != this._eventTypeInfo ? (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode) this._eventTypeInfo.ToJson(null,serializationMode) : null, "eventTypeInfo" ,container.Add ); + AddIf( null != (((object)this._partnerRegistrationImmutableId)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonString(this._partnerRegistrationImmutableId.ToString()) : null, "partnerRegistrationImmutableId" ,container.Add ); + AddIf( null != (((object)this._source)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonString(this._source.ToString()) : null, "source" ,container.Add ); + AddIf( null != this._expirationTimeIfNotActivatedUtc ? (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonString(this._expirationTimeIfNotActivatedUtc?.ToString(@"yyyy'-'MM'-'dd'T'HH':'mm':'ss.fffffffK",global::System.Globalization.CultureInfo.InvariantCulture)) : null, "expirationTimeIfNotActivatedUtc" ,container.Add ); + if (serializationMode.HasFlag(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SerializationMode.IncludeReadOnly)) + { + AddIf( null != (((object)this._provisioningState)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonString(this._provisioningState.ToString()) : null, "provisioningState" ,container.Add ); + } + AddIf( null != (((object)this._activationState)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonString(this._activationState.ToString()) : null, "activationState" ,container.Add ); + AddIf( null != (((object)this._partnerTopicFriendlyDescription)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonString(this._partnerTopicFriendlyDescription.ToString()) : null, "partnerTopicFriendlyDescription" ,container.Add ); + AddIf( null != (((object)this._messageForActivation)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonString(this._messageForActivation.ToString()) : null, "messageForActivation" ,container.Add ); + AfterToJson(ref container); + return container; + } + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PartnerTopicUpdateParameters.PowerShell.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PartnerTopicUpdateParameters.PowerShell.cs new file mode 100644 index 000000000000..eea7b6090280 --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PartnerTopicUpdateParameters.PowerShell.cs @@ -0,0 +1,184 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell; + + /// Properties of the Partner Topic update. + [System.ComponentModel.TypeConverter(typeof(PartnerTopicUpdateParametersTypeConverter))] + public partial class PartnerTopicUpdateParameters + { + + /// + /// AfterDeserializeDictionary will be called after the deserialization has finished, allowing customization of the + /// object before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Collections.IDictionary content that should be used. + + partial void AfterDeserializeDictionary(global::System.Collections.IDictionary content); + + /// + /// AfterDeserializePSObject will be called after the deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Management.Automation.PSObject content that should be used. + + partial void AfterDeserializePSObject(global::System.Management.Automation.PSObject content); + + /// + /// BeforeDeserializeDictionary will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Collections.IDictionary content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializeDictionary(global::System.Collections.IDictionary content, ref bool returnNow); + + /// + /// BeforeDeserializePSObject will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializePSObject(global::System.Management.Automation.PSObject content, ref bool returnNow); + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerTopicUpdateParameters DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new PartnerTopicUpdateParameters(content); + } + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerTopicUpdateParameters DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new PartnerTopicUpdateParameters(content); + } + + /// + /// Creates a new instance of , deserializing the content from a json string. + /// + /// a string containing a JSON serialized instance of this model. + /// an instance of the model class. + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerTopicUpdateParameters FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode.Parse(jsonText)); + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + internal PartnerTopicUpdateParameters(global::System.Collections.IDictionary content) + { + bool returnNow = false; + BeforeDeserializeDictionary(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("Identity")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerTopicUpdateParametersInternal)this).Identity = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IIdentityInfo) content.GetValueForProperty("Identity",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerTopicUpdateParametersInternal)this).Identity, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IdentityInfoTypeConverter.ConvertFrom); + } + if (content.Contains("Tag")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerTopicUpdateParametersInternal)this).Tag = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerTopicUpdateParametersTags) content.GetValueForProperty("Tag",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerTopicUpdateParametersInternal)this).Tag, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.PartnerTopicUpdateParametersTagsTypeConverter.ConvertFrom); + } + if (content.Contains("IdentityType")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerTopicUpdateParametersInternal)this).IdentityType = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.IdentityType?) content.GetValueForProperty("IdentityType",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerTopicUpdateParametersInternal)this).IdentityType, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.IdentityType.CreateFrom); + } + if (content.Contains("IdentityPrincipalId")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerTopicUpdateParametersInternal)this).IdentityPrincipalId = (string) content.GetValueForProperty("IdentityPrincipalId",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerTopicUpdateParametersInternal)this).IdentityPrincipalId, global::System.Convert.ToString); + } + if (content.Contains("IdentityTenantId")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerTopicUpdateParametersInternal)this).IdentityTenantId = (string) content.GetValueForProperty("IdentityTenantId",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerTopicUpdateParametersInternal)this).IdentityTenantId, global::System.Convert.ToString); + } + if (content.Contains("IdentityUserAssignedIdentity")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerTopicUpdateParametersInternal)this).IdentityUserAssignedIdentity = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IIdentityInfoUserAssignedIdentities) content.GetValueForProperty("IdentityUserAssignedIdentity",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerTopicUpdateParametersInternal)this).IdentityUserAssignedIdentity, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IdentityInfoUserAssignedIdentitiesTypeConverter.ConvertFrom); + } + AfterDeserializeDictionary(content); + } + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + internal PartnerTopicUpdateParameters(global::System.Management.Automation.PSObject content) + { + bool returnNow = false; + BeforeDeserializePSObject(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("Identity")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerTopicUpdateParametersInternal)this).Identity = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IIdentityInfo) content.GetValueForProperty("Identity",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerTopicUpdateParametersInternal)this).Identity, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IdentityInfoTypeConverter.ConvertFrom); + } + if (content.Contains("Tag")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerTopicUpdateParametersInternal)this).Tag = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerTopicUpdateParametersTags) content.GetValueForProperty("Tag",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerTopicUpdateParametersInternal)this).Tag, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.PartnerTopicUpdateParametersTagsTypeConverter.ConvertFrom); + } + if (content.Contains("IdentityType")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerTopicUpdateParametersInternal)this).IdentityType = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.IdentityType?) content.GetValueForProperty("IdentityType",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerTopicUpdateParametersInternal)this).IdentityType, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.IdentityType.CreateFrom); + } + if (content.Contains("IdentityPrincipalId")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerTopicUpdateParametersInternal)this).IdentityPrincipalId = (string) content.GetValueForProperty("IdentityPrincipalId",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerTopicUpdateParametersInternal)this).IdentityPrincipalId, global::System.Convert.ToString); + } + if (content.Contains("IdentityTenantId")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerTopicUpdateParametersInternal)this).IdentityTenantId = (string) content.GetValueForProperty("IdentityTenantId",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerTopicUpdateParametersInternal)this).IdentityTenantId, global::System.Convert.ToString); + } + if (content.Contains("IdentityUserAssignedIdentity")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerTopicUpdateParametersInternal)this).IdentityUserAssignedIdentity = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IIdentityInfoUserAssignedIdentities) content.GetValueForProperty("IdentityUserAssignedIdentity",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerTopicUpdateParametersInternal)this).IdentityUserAssignedIdentity, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IdentityInfoUserAssignedIdentitiesTypeConverter.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.EventGrid.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// Properties of the Partner Topic update. + [System.ComponentModel.TypeConverter(typeof(PartnerTopicUpdateParametersTypeConverter))] + public partial interface IPartnerTopicUpdateParameters + + { + + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PartnerTopicUpdateParameters.TypeConverter.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PartnerTopicUpdateParameters.TypeConverter.cs new file mode 100644 index 000000000000..4b7ee5b3ede3 --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PartnerTopicUpdateParameters.TypeConverter.cs @@ -0,0 +1,147 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class PartnerTopicUpdateParametersTypeConverter : global::System.Management.Automation.PSTypeConverter + { + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false. + /// + public override bool CanConvertFrom(object sourceValue, global::System.Type destinationType) => CanConvertFrom(sourceValue); + + /// + /// Determines if the converter can convert the parameter to the . + /// + /// the instance to check if it can be converted to the type. + /// + /// true if the instance could be converted to a type, otherwise false + /// + public static bool CanConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return true; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + // we say yest to PSObjects + return true; + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + // we say yest to Hashtables/dictionaries + return true; + } + try + { + if (null != sourceValue.ToJsonString()) + { + return true; + } + } + catch + { + // Not one of our objects + } + try + { + string text = sourceValue.ToString()?.Trim(); + return true == text?.StartsWith("{") && true == text?.EndsWith("}") && Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonType.Object; + } + catch + { + // Doesn't look like it can be treated as JSON + } + return false; + } + + /// + /// Determines if the parameter can be converted to the parameter + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false + /// + public override bool CanConvertTo(object sourceValue, global::System.Type destinationType) => false; + + /// + /// Converts the parameter to the parameter using and + /// + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// + /// an instance of , or null if there is no suitable conversion. + /// + public override object ConvertFrom(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => ConvertFrom(sourceValue); + + /// + /// Converts the parameter to the parameter using and + /// + /// the value to convert into an instance of . + /// + /// an instance of , or null if there is no suitable conversion. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerTopicUpdateParameters ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerTopicUpdateParameters).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return PartnerTopicUpdateParameters.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return PartnerTopicUpdateParameters.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return PartnerTopicUpdateParameters.DeserializeFromDictionary(sourceValue); + } + return null; + } + + /// NotImplemented -- this will return null + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// will always return null. + public override object ConvertTo(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => null; + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PartnerTopicUpdateParameters.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PartnerTopicUpdateParameters.cs new file mode 100644 index 000000000000..d672f3f29074 --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PartnerTopicUpdateParameters.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.EventGrid.Models.Api20211015Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Extensions; + + /// Properties of the Partner Topic update. + public partial class PartnerTopicUpdateParameters : + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerTopicUpdateParameters, + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerTopicUpdateParametersInternal + { + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IIdentityInfo _identity; + + /// Identity information for the Partner Topic resource. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Owned)] + internal Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IIdentityInfo Identity { get => (this._identity = this._identity ?? new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IdentityInfo()); set => this._identity = value; } + + /// The principal ID of resource identity. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Inlined)] + public string IdentityPrincipalId { get => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IIdentityInfoInternal)Identity).PrincipalId; set => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IIdentityInfoInternal)Identity).PrincipalId = value ?? null; } + + /// The tenant ID of resource. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Inlined)] + public string IdentityTenantId { get => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IIdentityInfoInternal)Identity).TenantId; set => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IIdentityInfoInternal)Identity).TenantId = value ?? null; } + + /// + /// The type of managed identity used. The type 'SystemAssigned, UserAssigned' includes both an implicitly created identity + /// and a set of user-assigned identities. The type 'None' will remove any identity. + /// + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Inlined)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.IdentityType? IdentityType { get => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IIdentityInfoInternal)Identity).Type; set => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IIdentityInfoInternal)Identity).Type = value ?? ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.IdentityType)""); } + + /// + /// The list of user identities associated with the resource. The user identity dictionary key references will be ARM resource + /// ids in the form: + /// '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ManagedIdentity/userAssignedIdentities/{identityName}'. + /// This property is currently not used and reserved for future usage. + /// + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Inlined)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IIdentityInfoUserAssignedIdentities IdentityUserAssignedIdentity { get => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IIdentityInfoInternal)Identity).UserAssignedIdentity; set => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IIdentityInfoInternal)Identity).UserAssignedIdentity = value ?? null /* model class */; } + + /// Internal Acessors for Identity + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IIdentityInfo Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerTopicUpdateParametersInternal.Identity { get => (this._identity = this._identity ?? new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IdentityInfo()); set { {_identity = value;} } } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerTopicUpdateParametersTags _tag; + + /// Tags of the Partner Topic resource. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Owned)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerTopicUpdateParametersTags Tag { get => (this._tag = this._tag ?? new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.PartnerTopicUpdateParametersTags()); set => this._tag = value; } + + /// Creates an new instance. + public PartnerTopicUpdateParameters() + { + + } + } + /// Properties of the Partner Topic update. + public partial interface IPartnerTopicUpdateParameters : + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IJsonSerializable + { + /// The principal ID of resource identity. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The principal ID of resource identity.", + SerializedName = @"principalId", + PossibleTypes = new [] { typeof(string) })] + string IdentityPrincipalId { get; set; } + /// The tenant ID of resource. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The tenant ID of resource.", + SerializedName = @"tenantId", + PossibleTypes = new [] { typeof(string) })] + string IdentityTenantId { get; set; } + /// + /// The type of managed identity used. The type 'SystemAssigned, UserAssigned' includes both an implicitly created identity + /// and a set of user-assigned identities. The type 'None' will remove any identity. + /// + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The type of managed identity used. The type 'SystemAssigned, UserAssigned' includes both an implicitly created identity and a set of user-assigned identities. The type 'None' will remove any identity.", + SerializedName = @"type", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.IdentityType) })] + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.IdentityType? IdentityType { get; set; } + /// + /// The list of user identities associated with the resource. The user identity dictionary key references will be ARM resource + /// ids in the form: + /// '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ManagedIdentity/userAssignedIdentities/{identityName}'. + /// This property is currently not used and reserved for future usage. + /// + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The list of user identities associated with the resource. The user identity dictionary key references will be ARM resource ids in the form: + '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ManagedIdentity/userAssignedIdentities/{identityName}'. + This property is currently not used and reserved for future usage.", + SerializedName = @"userAssignedIdentities", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IIdentityInfoUserAssignedIdentities) })] + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IIdentityInfoUserAssignedIdentities IdentityUserAssignedIdentity { get; set; } + /// Tags of the Partner Topic resource. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Tags of the Partner Topic resource.", + SerializedName = @"tags", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerTopicUpdateParametersTags) })] + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerTopicUpdateParametersTags Tag { get; set; } + + } + /// Properties of the Partner Topic update. + internal partial interface IPartnerTopicUpdateParametersInternal + + { + /// Identity information for the Partner Topic resource. + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IIdentityInfo Identity { get; set; } + /// The principal ID of resource identity. + string IdentityPrincipalId { get; set; } + /// The tenant ID of resource. + string IdentityTenantId { get; set; } + /// + /// The type of managed identity used. The type 'SystemAssigned, UserAssigned' includes both an implicitly created identity + /// and a set of user-assigned identities. The type 'None' will remove any identity. + /// + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.IdentityType? IdentityType { get; set; } + /// + /// The list of user identities associated with the resource. The user identity dictionary key references will be ARM resource + /// ids in the form: + /// '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ManagedIdentity/userAssignedIdentities/{identityName}'. + /// This property is currently not used and reserved for future usage. + /// + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IIdentityInfoUserAssignedIdentities IdentityUserAssignedIdentity { get; set; } + /// Tags of the Partner Topic resource. + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerTopicUpdateParametersTags Tag { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PartnerTopicUpdateParameters.json.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PartnerTopicUpdateParameters.json.cs new file mode 100644 index 000000000000..f33a57aa21da --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PartnerTopicUpdateParameters.json.cs @@ -0,0 +1,108 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Extensions; + + /// Properties of the Partner Topic update. + public partial class PartnerTopicUpdateParameters + { + + /// + /// AfterFromJson will be called after the json deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JsonNode that should be deserialized into this object. + + partial void AfterFromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json erialization has finished, allowing customization of the before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JSON container that the serialization result will be placed in. + + partial void AfterToJson(ref Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject container); + + /// + /// BeforeFromJson will be called before the json deserialization has commenced, allowing complete customization of + /// the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JsonNode that should be deserialized into this object. + /// Determines if the rest of the deserialization should be processed, or if the method should return + /// instantly. + + partial void BeforeFromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject json, ref bool returnNow); + + /// + /// BeforeToJson will be called before the json serialization has commenced, allowing complete customization of the + /// object before it is serialized. + /// If you wish to disable the default serialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JSON container that the serialization result will be placed in. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeToJson(ref Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerTopicUpdateParameters. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerTopicUpdateParameters. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerTopicUpdateParameters FromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject json ? new PartnerTopicUpdateParameters(json) : null; + } + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject instance to deserialize from. + internal PartnerTopicUpdateParameters(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Models.Api20211015Preview.IdentityInfo.FromJson(__jsonIdentity) : Identity;} + {_tag = If( json?.PropertyT("tags"), out var __jsonTags) ? Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.PartnerTopicUpdateParametersTags.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.EventGrid.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject(); + + bool returnNow = false; + BeforeToJson(ref container, ref returnNow); + if (returnNow) + { + return container; + } + AddIf( null != this._identity ? (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode) this._identity.ToJson(null,serializationMode) : null, "identity" ,container.Add ); + AddIf( null != this._tag ? (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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/eventgrid/generated/api/Models/Api20211015Preview/PartnerTopicUpdateParametersTags.PowerShell.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PartnerTopicUpdateParametersTags.PowerShell.cs new file mode 100644 index 000000000000..5ab9d2a8136c --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PartnerTopicUpdateParametersTags.PowerShell.cs @@ -0,0 +1,140 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell; + + /// Tags of the Partner Topic resource. + [System.ComponentModel.TypeConverter(typeof(PartnerTopicUpdateParametersTagsTypeConverter))] + public partial class PartnerTopicUpdateParametersTags + { + + /// + /// AfterDeserializeDictionary will be called after the deserialization has finished, allowing customization of the + /// object before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Collections.IDictionary content that should be used. + + partial void AfterDeserializeDictionary(global::System.Collections.IDictionary content); + + /// + /// AfterDeserializePSObject will be called after the deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Management.Automation.PSObject content that should be used. + + partial void AfterDeserializePSObject(global::System.Management.Automation.PSObject content); + + /// + /// BeforeDeserializeDictionary will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Collections.IDictionary content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializeDictionary(global::System.Collections.IDictionary content, ref bool returnNow); + + /// + /// BeforeDeserializePSObject will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializePSObject(global::System.Management.Automation.PSObject content, ref bool returnNow); + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerTopicUpdateParametersTags DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new PartnerTopicUpdateParametersTags(content); + } + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerTopicUpdateParametersTags DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new PartnerTopicUpdateParametersTags(content); + } + + /// + /// Creates a new instance of , deserializing the content from a json string. + /// + /// a string containing a JSON serialized instance of this model. + /// an instance of the model class. + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerTopicUpdateParametersTags FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode.Parse(jsonText)); + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + internal PartnerTopicUpdateParametersTags(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 PartnerTopicUpdateParametersTags(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.EventGrid.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// Tags of the Partner Topic resource. + [System.ComponentModel.TypeConverter(typeof(PartnerTopicUpdateParametersTagsTypeConverter))] + public partial interface IPartnerTopicUpdateParametersTags + + { + + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PartnerTopicUpdateParametersTags.TypeConverter.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PartnerTopicUpdateParametersTags.TypeConverter.cs new file mode 100644 index 000000000000..53e47688d85d --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PartnerTopicUpdateParametersTags.TypeConverter.cs @@ -0,0 +1,147 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class PartnerTopicUpdateParametersTagsTypeConverter : global::System.Management.Automation.PSTypeConverter + { + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false. + /// + public override bool CanConvertFrom(object sourceValue, global::System.Type destinationType) => CanConvertFrom(sourceValue); + + /// + /// Determines if the converter can convert the parameter to the . + /// + /// the instance to check if it can be converted to the type. + /// + /// true if the instance could be converted to a type, otherwise false + /// + public static bool CanConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return true; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + // we say yest to PSObjects + return true; + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + // we say yest to Hashtables/dictionaries + return true; + } + try + { + if (null != sourceValue.ToJsonString()) + { + return true; + } + } + catch + { + // Not one of our objects + } + try + { + string text = sourceValue.ToString()?.Trim(); + return true == text?.StartsWith("{") && true == text?.EndsWith("}") && Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonType.Object; + } + catch + { + // Doesn't look like it can be treated as JSON + } + return false; + } + + /// + /// Determines if the parameter can be converted to the parameter + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false + /// + public override bool CanConvertTo(object sourceValue, global::System.Type destinationType) => false; + + /// + /// Converts the parameter to the parameter using and + /// + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// + /// an instance of , or null if there is no suitable conversion. + /// + public override object ConvertFrom(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => ConvertFrom(sourceValue); + + /// + /// Converts the parameter to the parameter using and + /// + /// the value to convert into an instance of . + /// + /// an instance of , or null if there is no suitable conversion. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerTopicUpdateParametersTags ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerTopicUpdateParametersTags).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return PartnerTopicUpdateParametersTags.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return PartnerTopicUpdateParametersTags.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return PartnerTopicUpdateParametersTags.DeserializeFromDictionary(sourceValue); + } + return null; + } + + /// NotImplemented -- this will return null + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// will always return null. + public override object ConvertTo(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => null; + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PartnerTopicUpdateParametersTags.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PartnerTopicUpdateParametersTags.cs new file mode 100644 index 000000000000..432e75570ae4 --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PartnerTopicUpdateParametersTags.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.EventGrid.Models.Api20211015Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Extensions; + + /// Tags of the Partner Topic resource. + public partial class PartnerTopicUpdateParametersTags : + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerTopicUpdateParametersTags, + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerTopicUpdateParametersTagsInternal + { + + /// Creates an new instance. + public PartnerTopicUpdateParametersTags() + { + + } + } + /// Tags of the Partner Topic resource. + public partial interface IPartnerTopicUpdateParametersTags : + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IJsonSerializable, + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IAssociativeArray + { + + } + /// Tags of the Partner Topic resource. + internal partial interface IPartnerTopicUpdateParametersTagsInternal + + { + + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PartnerTopicUpdateParametersTags.dictionary.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PartnerTopicUpdateParametersTags.dictionary.cs new file mode 100644 index 000000000000..0ecf9302aadb --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PartnerTopicUpdateParametersTags.dictionary.cs @@ -0,0 +1,75 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Extensions; + + public partial class PartnerTopicUpdateParametersTags : + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IAssociativeArray + { + protected global::System.Collections.Generic.Dictionary __additionalProperties = new global::System.Collections.Generic.Dictionary(); + + global::System.Collections.Generic.IDictionary Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IAssociativeArray.AdditionalProperties { get => __additionalProperties; } + + int Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IAssociativeArray.Count { get => __additionalProperties.Count; } + + global::System.Collections.Generic.IEnumerable Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IAssociativeArray.Keys { get => __additionalProperties.Keys; } + + global::System.Collections.Generic.IEnumerable Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.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.EventGrid.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.EventGrid.Models.Api20211015Preview.PartnerTopicUpdateParametersTags source) => source.__additionalProperties; + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PartnerTopicUpdateParametersTags.json.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PartnerTopicUpdateParametersTags.json.cs new file mode 100644 index 000000000000..f00aa7462e8b --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PartnerTopicUpdateParametersTags.json.cs @@ -0,0 +1,107 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Extensions; + + /// Tags of the Partner Topic resource. + public partial class PartnerTopicUpdateParametersTags + { + + /// + /// AfterFromJson will be called after the json deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JsonNode that should be deserialized into this object. + + partial void AfterFromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json erialization has finished, allowing customization of the before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JSON container that the serialization result will be placed in. + + partial void AfterToJson(ref Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject container); + + /// + /// BeforeFromJson will be called before the json deserialization has commenced, allowing complete customization of + /// the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JsonNode that should be deserialized into this object. + /// Determines if the rest of the deserialization should be processed, or if the method should return + /// instantly. + + partial void BeforeFromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject json, ref bool returnNow); + + /// + /// BeforeToJson will be called before the json serialization has commenced, allowing complete customization of the + /// object before it is serialized. + /// If you wish to disable the default serialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JSON container that the serialization result will be placed in. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeToJson(ref Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerTopicUpdateParametersTags. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerTopicUpdateParametersTags. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerTopicUpdateParametersTags FromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject json ? new PartnerTopicUpdateParametersTags(json) : null; + } + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject instance to deserialize from. + /// + internal PartnerTopicUpdateParametersTags(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Runtime.JsonSerializable.FromJson( json, ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject(); + + bool returnNow = false; + BeforeToJson(ref container, ref returnNow); + if (returnNow) + { + return container; + } + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.JsonSerializable.ToJson( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IAssociativeArray)this).AdditionalProperties, container); + AfterToJson(ref container); + return container; + } + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PartnerTopicsListResult.PowerShell.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PartnerTopicsListResult.PowerShell.cs new file mode 100644 index 000000000000..228d4711a14f --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PartnerTopicsListResult.PowerShell.cs @@ -0,0 +1,152 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell; + + /// Result of the List Partner Topics operation. + [System.ComponentModel.TypeConverter(typeof(PartnerTopicsListResultTypeConverter))] + public partial class PartnerTopicsListResult + { + + /// + /// AfterDeserializeDictionary will be called after the deserialization has finished, allowing customization of the + /// object before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Collections.IDictionary content that should be used. + + partial void AfterDeserializeDictionary(global::System.Collections.IDictionary content); + + /// + /// AfterDeserializePSObject will be called after the deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Management.Automation.PSObject content that should be used. + + partial void AfterDeserializePSObject(global::System.Management.Automation.PSObject content); + + /// + /// BeforeDeserializeDictionary will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Collections.IDictionary content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializeDictionary(global::System.Collections.IDictionary content, ref bool returnNow); + + /// + /// BeforeDeserializePSObject will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializePSObject(global::System.Management.Automation.PSObject content, ref bool returnNow); + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerTopicsListResult DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new PartnerTopicsListResult(content); + } + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerTopicsListResult DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new PartnerTopicsListResult(content); + } + + /// + /// Creates a new instance of , deserializing the content from a json string. + /// + /// a string containing a JSON serialized instance of this model. + /// an instance of the model class. + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerTopicsListResult FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode.Parse(jsonText)); + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + internal PartnerTopicsListResult(global::System.Collections.IDictionary content) + { + bool returnNow = false; + BeforeDeserializeDictionary(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("Value")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerTopicsListResultInternal)this).Value = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerTopic[]) content.GetValueForProperty("Value",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerTopicsListResultInternal)this).Value, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.PartnerTopicTypeConverter.ConvertFrom)); + } + if (content.Contains("NextLink")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerTopicsListResultInternal)this).NextLink = (string) content.GetValueForProperty("NextLink",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerTopicsListResultInternal)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 PartnerTopicsListResult(global::System.Management.Automation.PSObject content) + { + bool returnNow = false; + BeforeDeserializePSObject(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("Value")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerTopicsListResultInternal)this).Value = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerTopic[]) content.GetValueForProperty("Value",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerTopicsListResultInternal)this).Value, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.PartnerTopicTypeConverter.ConvertFrom)); + } + if (content.Contains("NextLink")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerTopicsListResultInternal)this).NextLink = (string) content.GetValueForProperty("NextLink",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerTopicsListResultInternal)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.EventGrid.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// Result of the List Partner Topics operation. + [System.ComponentModel.TypeConverter(typeof(PartnerTopicsListResultTypeConverter))] + public partial interface IPartnerTopicsListResult + + { + + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PartnerTopicsListResult.TypeConverter.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PartnerTopicsListResult.TypeConverter.cs new file mode 100644 index 000000000000..bf4ae1274fba --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PartnerTopicsListResult.TypeConverter.cs @@ -0,0 +1,147 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class PartnerTopicsListResultTypeConverter : global::System.Management.Automation.PSTypeConverter + { + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false. + /// + public override bool CanConvertFrom(object sourceValue, global::System.Type destinationType) => CanConvertFrom(sourceValue); + + /// + /// Determines if the converter can convert the parameter to the . + /// + /// the instance to check if it can be converted to the type. + /// + /// true if the instance could be converted to a type, otherwise false + /// + public static bool CanConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return true; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + // we say yest to PSObjects + return true; + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + // we say yest to Hashtables/dictionaries + return true; + } + try + { + if (null != sourceValue.ToJsonString()) + { + return true; + } + } + catch + { + // Not one of our objects + } + try + { + string text = sourceValue.ToString()?.Trim(); + return true == text?.StartsWith("{") && true == text?.EndsWith("}") && Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonType.Object; + } + catch + { + // Doesn't look like it can be treated as JSON + } + return false; + } + + /// + /// Determines if the parameter can be converted to the parameter + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false + /// + public override bool CanConvertTo(object sourceValue, global::System.Type destinationType) => false; + + /// + /// Converts the parameter to the parameter using and + /// + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// + /// an instance of , or null if there is no suitable conversion. + /// + public override object ConvertFrom(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => ConvertFrom(sourceValue); + + /// + /// Converts the parameter to the parameter using and + /// + /// the value to convert into an instance of . + /// + /// an instance of , or null if there is no suitable conversion. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerTopicsListResult ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerTopicsListResult).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return PartnerTopicsListResult.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return PartnerTopicsListResult.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return PartnerTopicsListResult.DeserializeFromDictionary(sourceValue); + } + return null; + } + + /// NotImplemented -- this will return null + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// will always return null. + public override object ConvertTo(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => null; + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PartnerTopicsListResult.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PartnerTopicsListResult.cs new file mode 100644 index 000000000000..2cf9e163a17b --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PartnerTopicsListResult.cs @@ -0,0 +1,68 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Extensions; + + /// Result of the List Partner Topics operation. + public partial class PartnerTopicsListResult : + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerTopicsListResult, + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerTopicsListResultInternal + { + + /// Backing field for property. + private string _nextLink; + + /// A link for the next page of partner topics. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Owned)] + public string NextLink { get => this._nextLink; set => this._nextLink = value; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerTopic[] _value; + + /// A collection of partner topics. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Owned)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerTopic[] Value { get => this._value; set => this._value = value; } + + /// Creates an new instance. + public PartnerTopicsListResult() + { + + } + } + /// Result of the List Partner Topics operation. + public partial interface IPartnerTopicsListResult : + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IJsonSerializable + { + /// A link for the next page of partner topics. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"A link for the next page of partner topics.", + SerializedName = @"nextLink", + PossibleTypes = new [] { typeof(string) })] + string NextLink { get; set; } + /// A collection of partner topics. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"A collection of partner topics.", + SerializedName = @"value", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerTopic) })] + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerTopic[] Value { get; set; } + + } + /// Result of the List Partner Topics operation. + internal partial interface IPartnerTopicsListResultInternal + + { + /// A link for the next page of partner topics. + string NextLink { get; set; } + /// A collection of partner topics. + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerTopic[] Value { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PartnerTopicsListResult.json.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PartnerTopicsListResult.json.cs new file mode 100644 index 000000000000..60194bb68788 --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PartnerTopicsListResult.json.cs @@ -0,0 +1,116 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Extensions; + + /// Result of the List Partner Topics operation. + public partial class PartnerTopicsListResult + { + + /// + /// AfterFromJson will be called after the json deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JsonNode that should be deserialized into this object. + + partial void AfterFromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json erialization has finished, allowing customization of the before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JSON container that the serialization result will be placed in. + + partial void AfterToJson(ref Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject container); + + /// + /// BeforeFromJson will be called before the json deserialization has commenced, allowing complete customization of + /// the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JsonNode that should be deserialized into this object. + /// Determines if the rest of the deserialization should be processed, or if the method should return + /// instantly. + + partial void BeforeFromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject json, ref bool returnNow); + + /// + /// BeforeToJson will be called before the json serialization has commenced, allowing complete customization of the + /// object before it is serialized. + /// If you wish to disable the default serialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JSON container that the serialization result will be placed in. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeToJson(ref Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerTopicsListResult. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerTopicsListResult. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerTopicsListResult FromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject json ? new PartnerTopicsListResult(json) : null; + } + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject instance to deserialize from. + internal PartnerTopicsListResult(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.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.EventGrid.Models.Api20211015Preview.IPartnerTopic) (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.PartnerTopic.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.EventGrid.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Runtime.Json.XNodeArray(); + foreach( var __x in this._value ) + { + AddIf(__x?.ToJson(null, serializationMode) ,__w.Add); + } + container.Add("value",__w); + } + AddIf( null != (((object)this._nextLink)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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/eventgrid/generated/api/Models/Api20211015Preview/PartnerUpdateDestinationInfo.PowerShell.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PartnerUpdateDestinationInfo.PowerShell.cs new file mode 100644 index 000000000000..63b3e30fe39c --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PartnerUpdateDestinationInfo.PowerShell.cs @@ -0,0 +1,144 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell; + + /// Properties of the corresponding partner destination of a Channel. + [System.ComponentModel.TypeConverter(typeof(PartnerUpdateDestinationInfoTypeConverter))] + public partial class PartnerUpdateDestinationInfo + { + + /// + /// AfterDeserializeDictionary will be called after the deserialization has finished, allowing customization of the + /// object before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Collections.IDictionary content that should be used. + + partial void AfterDeserializeDictionary(global::System.Collections.IDictionary content); + + /// + /// AfterDeserializePSObject will be called after the deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Management.Automation.PSObject content that should be used. + + partial void AfterDeserializePSObject(global::System.Management.Automation.PSObject content); + + /// + /// BeforeDeserializeDictionary will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Collections.IDictionary content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializeDictionary(global::System.Collections.IDictionary content, ref bool returnNow); + + /// + /// BeforeDeserializePSObject will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializePSObject(global::System.Management.Automation.PSObject content, ref bool returnNow); + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerUpdateDestinationInfo DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new PartnerUpdateDestinationInfo(content); + } + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerUpdateDestinationInfo DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new PartnerUpdateDestinationInfo(content); + } + + /// + /// Creates a new instance of , deserializing the content from a json string. + /// + /// a string containing a JSON serialized instance of this model. + /// an instance of the model class. + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerUpdateDestinationInfo FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode.Parse(jsonText)); + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + internal PartnerUpdateDestinationInfo(global::System.Collections.IDictionary content) + { + bool returnNow = false; + BeforeDeserializeDictionary(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("EndpointType")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerUpdateDestinationInfoInternal)this).EndpointType = (string) content.GetValueForProperty("EndpointType",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerUpdateDestinationInfoInternal)this).EndpointType, global::System.Convert.ToString); + } + AfterDeserializeDictionary(content); + } + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + internal PartnerUpdateDestinationInfo(global::System.Management.Automation.PSObject content) + { + bool returnNow = false; + BeforeDeserializePSObject(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("EndpointType")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerUpdateDestinationInfoInternal)this).EndpointType = (string) content.GetValueForProperty("EndpointType",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerUpdateDestinationInfoInternal)this).EndpointType, 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.EventGrid.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// Properties of the corresponding partner destination of a Channel. + [System.ComponentModel.TypeConverter(typeof(PartnerUpdateDestinationInfoTypeConverter))] + public partial interface IPartnerUpdateDestinationInfo + + { + + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PartnerUpdateDestinationInfo.TypeConverter.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PartnerUpdateDestinationInfo.TypeConverter.cs new file mode 100644 index 000000000000..93299941f640 --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PartnerUpdateDestinationInfo.TypeConverter.cs @@ -0,0 +1,147 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class PartnerUpdateDestinationInfoTypeConverter : global::System.Management.Automation.PSTypeConverter + { + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false. + /// + public override bool CanConvertFrom(object sourceValue, global::System.Type destinationType) => CanConvertFrom(sourceValue); + + /// + /// Determines if the converter can convert the parameter to the . + /// + /// the instance to check if it can be converted to the type. + /// + /// true if the instance could be converted to a type, otherwise false + /// + public static bool CanConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return true; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + // we say yest to PSObjects + return true; + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + // we say yest to Hashtables/dictionaries + return true; + } + try + { + if (null != sourceValue.ToJsonString()) + { + return true; + } + } + catch + { + // Not one of our objects + } + try + { + string text = sourceValue.ToString()?.Trim(); + return true == text?.StartsWith("{") && true == text?.EndsWith("}") && Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonType.Object; + } + catch + { + // Doesn't look like it can be treated as JSON + } + return false; + } + + /// + /// Determines if the parameter can be converted to the parameter + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false + /// + public override bool CanConvertTo(object sourceValue, global::System.Type destinationType) => false; + + /// + /// Converts the parameter to the parameter using and + /// + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// + /// an instance of , or null if there is no suitable conversion. + /// + public override object ConvertFrom(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => ConvertFrom(sourceValue); + + /// + /// Converts the parameter to the parameter using and + /// + /// the value to convert into an instance of . + /// + /// an instance of , or null if there is no suitable conversion. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerUpdateDestinationInfo ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerUpdateDestinationInfo).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return PartnerUpdateDestinationInfo.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return PartnerUpdateDestinationInfo.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return PartnerUpdateDestinationInfo.DeserializeFromDictionary(sourceValue); + } + return null; + } + + /// NotImplemented -- this will return null + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// will always return null. + public override object ConvertTo(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => null; + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PartnerUpdateDestinationInfo.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PartnerUpdateDestinationInfo.cs new file mode 100644 index 000000000000..195dbadf34a8 --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PartnerUpdateDestinationInfo.cs @@ -0,0 +1,54 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Extensions; + + /// Properties of the corresponding partner destination of a Channel. + public partial class PartnerUpdateDestinationInfo : + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerUpdateDestinationInfo, + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerUpdateDestinationInfoInternal + { + + /// Backing field for property. + private string _endpointType= @"WebHook"; + + /// Type of the endpoint for the partner destination + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Owned)] + public string EndpointType { get => this._endpointType; } + + /// Internal Acessors for EndpointType + string Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerUpdateDestinationInfoInternal.EndpointType { get => this._endpointType; set { {_endpointType = value;} } } + + /// Creates an new instance. + public PartnerUpdateDestinationInfo() + { + + } + } + /// Properties of the corresponding partner destination of a Channel. + public partial interface IPartnerUpdateDestinationInfo : + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IJsonSerializable + { + /// Type of the endpoint for the partner destination + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = true, + ReadOnly = true, + Description = @"Type of the endpoint for the partner destination", + SerializedName = @"endpointType", + PossibleTypes = new [] { typeof(string) })] + string EndpointType { get; } + + } + /// Properties of the corresponding partner destination of a Channel. + internal partial interface IPartnerUpdateDestinationInfoInternal + + { + /// Type of the endpoint for the partner destination + string EndpointType { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PartnerUpdateDestinationInfo.json.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PartnerUpdateDestinationInfo.json.cs new file mode 100644 index 000000000000..b864e41555d4 --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PartnerUpdateDestinationInfo.json.cs @@ -0,0 +1,121 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Extensions; + + /// Properties of the corresponding partner destination of a Channel. + public partial class PartnerUpdateDestinationInfo + { + + /// + /// AfterFromJson will be called after the json deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JsonNode that should be deserialized into this object. + + partial void AfterFromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json erialization has finished, allowing customization of the before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JSON container that the serialization result will be placed in. + + partial void AfterToJson(ref Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject container); + + /// + /// BeforeFromJson will be called before the json deserialization has commenced, allowing complete customization of + /// the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JsonNode that should be deserialized into this object. + /// Determines if the rest of the deserialization should be processed, or if the method should return + /// instantly. + + partial void BeforeFromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject json, ref bool returnNow); + + /// + /// BeforeToJson will be called before the json serialization has commenced, allowing complete customization of the + /// object before it is serialized. + /// If you wish to disable the default serialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JSON container that the serialization result will be placed in. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeToJson(ref Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerUpdateDestinationInfo. + /// Note: the Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerUpdateDestinationInfo interface + /// is polymorphic, and the precise model class that will get deserialized is determined at runtime based on the payload. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerUpdateDestinationInfo. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerUpdateDestinationInfo FromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode node) + { + if (!(node is Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject json)) + { + return null; + } + // Polymorphic type -- select the appropriate constructor using the discriminator + + switch ( json.StringProperty("endpointType") ) + { + case "WebHook": + { + return new WebhookUpdatePartnerDestinationInfo(json); + } + } + return new PartnerUpdateDestinationInfo(json); + } + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject instance to deserialize from. + internal PartnerUpdateDestinationInfo(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject json) + { + bool returnNow = false; + BeforeFromJson(json, ref returnNow); + if (returnNow) + { + return; + } + {_endpointType = If( json?.PropertyT("endpointType"), out var __jsonEndpointType) ? (string)__jsonEndpointType : (string)EndpointType;} + AfterFromJson(json); + } + + /// + /// Serializes this instance of into a . + /// + /// The container to serialize this object into. If the caller + /// passes in null, a new instance will be created and returned to the caller. + /// Allows the caller to choose the depth of the serialization. See . + /// + /// a serialized instance of as a . + /// + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject(); + + bool returnNow = false; + BeforeToJson(ref container, ref returnNow); + if (returnNow) + { + return container; + } + AddIf( null != (((object)this._endpointType)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonString(this._endpointType.ToString()) : null, "endpointType" ,container.Add ); + AfterToJson(ref container); + return container; + } + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PartnerUpdateTopicInfo.PowerShell.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PartnerUpdateTopicInfo.PowerShell.cs new file mode 100644 index 000000000000..8477b38d47f4 --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PartnerUpdateTopicInfo.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.EventGrid.Models.Api20211015Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell; + + /// Update properties for the corresponding partner topic of a channel. + [System.ComponentModel.TypeConverter(typeof(PartnerUpdateTopicInfoTypeConverter))] + public partial class PartnerUpdateTopicInfo + { + + /// + /// AfterDeserializeDictionary will be called after the deserialization has finished, allowing customization of the + /// object before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Collections.IDictionary content that should be used. + + partial void AfterDeserializeDictionary(global::System.Collections.IDictionary content); + + /// + /// AfterDeserializePSObject will be called after the deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Management.Automation.PSObject content that should be used. + + partial void AfterDeserializePSObject(global::System.Management.Automation.PSObject content); + + /// + /// BeforeDeserializeDictionary will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Collections.IDictionary content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializeDictionary(global::System.Collections.IDictionary content, ref bool returnNow); + + /// + /// BeforeDeserializePSObject will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializePSObject(global::System.Management.Automation.PSObject content, ref bool returnNow); + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerUpdateTopicInfo DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new PartnerUpdateTopicInfo(content); + } + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerUpdateTopicInfo DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new PartnerUpdateTopicInfo(content); + } + + /// + /// Creates a new instance of , deserializing the content from a json string. + /// + /// a string containing a JSON serialized instance of this model. + /// an instance of the model class. + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerUpdateTopicInfo FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode.Parse(jsonText)); + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + internal PartnerUpdateTopicInfo(global::System.Collections.IDictionary content) + { + bool returnNow = false; + BeforeDeserializeDictionary(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("EventTypeInfo")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerUpdateTopicInfoInternal)this).EventTypeInfo = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventTypeInfo) content.GetValueForProperty("EventTypeInfo",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerUpdateTopicInfoInternal)this).EventTypeInfo, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.EventTypeInfoTypeConverter.ConvertFrom); + } + if (content.Contains("EventTypeInfoKind")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerUpdateTopicInfoInternal)this).EventTypeInfoKind = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EventDefinitionKind?) content.GetValueForProperty("EventTypeInfoKind",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerUpdateTopicInfoInternal)this).EventTypeInfoKind, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EventDefinitionKind.CreateFrom); + } + if (content.Contains("EventTypeInfoInlineEventType")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerUpdateTopicInfoInternal)this).EventTypeInfoInlineEventType = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventTypeInfoInlineEventTypes) content.GetValueForProperty("EventTypeInfoInlineEventType",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerUpdateTopicInfoInternal)this).EventTypeInfoInlineEventType, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.EventTypeInfoInlineEventTypesTypeConverter.ConvertFrom); + } + AfterDeserializeDictionary(content); + } + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + internal PartnerUpdateTopicInfo(global::System.Management.Automation.PSObject content) + { + bool returnNow = false; + BeforeDeserializePSObject(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("EventTypeInfo")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerUpdateTopicInfoInternal)this).EventTypeInfo = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventTypeInfo) content.GetValueForProperty("EventTypeInfo",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerUpdateTopicInfoInternal)this).EventTypeInfo, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.EventTypeInfoTypeConverter.ConvertFrom); + } + if (content.Contains("EventTypeInfoKind")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerUpdateTopicInfoInternal)this).EventTypeInfoKind = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EventDefinitionKind?) content.GetValueForProperty("EventTypeInfoKind",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerUpdateTopicInfoInternal)this).EventTypeInfoKind, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EventDefinitionKind.CreateFrom); + } + if (content.Contains("EventTypeInfoInlineEventType")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerUpdateTopicInfoInternal)this).EventTypeInfoInlineEventType = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventTypeInfoInlineEventTypes) content.GetValueForProperty("EventTypeInfoInlineEventType",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerUpdateTopicInfoInternal)this).EventTypeInfoInlineEventType, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.EventTypeInfoInlineEventTypesTypeConverter.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.EventGrid.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// Update properties for the corresponding partner topic of a channel. + [System.ComponentModel.TypeConverter(typeof(PartnerUpdateTopicInfoTypeConverter))] + public partial interface IPartnerUpdateTopicInfo + + { + + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PartnerUpdateTopicInfo.TypeConverter.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PartnerUpdateTopicInfo.TypeConverter.cs new file mode 100644 index 000000000000..1576723f9993 --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PartnerUpdateTopicInfo.TypeConverter.cs @@ -0,0 +1,147 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class PartnerUpdateTopicInfoTypeConverter : global::System.Management.Automation.PSTypeConverter + { + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false. + /// + public override bool CanConvertFrom(object sourceValue, global::System.Type destinationType) => CanConvertFrom(sourceValue); + + /// + /// Determines if the converter can convert the parameter to the . + /// + /// the instance to check if it can be converted to the type. + /// + /// true if the instance could be converted to a type, otherwise false + /// + public static bool CanConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return true; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + // we say yest to PSObjects + return true; + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + // we say yest to Hashtables/dictionaries + return true; + } + try + { + if (null != sourceValue.ToJsonString()) + { + return true; + } + } + catch + { + // Not one of our objects + } + try + { + string text = sourceValue.ToString()?.Trim(); + return true == text?.StartsWith("{") && true == text?.EndsWith("}") && Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonType.Object; + } + catch + { + // Doesn't look like it can be treated as JSON + } + return false; + } + + /// + /// Determines if the parameter can be converted to the parameter + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false + /// + public override bool CanConvertTo(object sourceValue, global::System.Type destinationType) => false; + + /// + /// Converts the parameter to the parameter using and + /// + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// + /// an instance of , or null if there is no suitable conversion. + /// + public override object ConvertFrom(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => ConvertFrom(sourceValue); + + /// + /// Converts the parameter to the parameter using and + /// + /// the value to convert into an instance of . + /// + /// an instance of , or null if there is no suitable conversion. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerUpdateTopicInfo ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerUpdateTopicInfo).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return PartnerUpdateTopicInfo.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return PartnerUpdateTopicInfo.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return PartnerUpdateTopicInfo.DeserializeFromDictionary(sourceValue); + } + return null; + } + + /// NotImplemented -- this will return null + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// will always return null. + public override object ConvertTo(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => null; + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PartnerUpdateTopicInfo.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PartnerUpdateTopicInfo.cs new file mode 100644 index 000000000000..28f675709bde --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PartnerUpdateTopicInfo.cs @@ -0,0 +1,94 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Extensions; + + /// Update properties for the corresponding partner topic of a channel. + public partial class PartnerUpdateTopicInfo : + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerUpdateTopicInfo, + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerUpdateTopicInfoInternal + { + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventTypeInfo _eventTypeInfo; + + /// Event type info for the partner topic + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Owned)] + internal Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventTypeInfo EventTypeInfo { get => (this._eventTypeInfo = this._eventTypeInfo ?? new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.EventTypeInfo()); set => this._eventTypeInfo = value; } + + /// + /// A collection of inline event types for the resource. The inline event type keys are of type string which represents the + /// name of the event. + /// An example of a valid inline event name is "Contoso.OrderCreated". + /// The inline event type values are of type InlineEventProperties and will contain additional information for every inline + /// event type. + /// + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Inlined)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventTypeInfoInlineEventTypes EventTypeInfoInlineEventType { get => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventTypeInfoInternal)EventTypeInfo).InlineEventType; set => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventTypeInfoInternal)EventTypeInfo).InlineEventType = value ?? null /* model class */; } + + /// The kind of event type used. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Inlined)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EventDefinitionKind? EventTypeInfoKind { get => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventTypeInfoInternal)EventTypeInfo).Kind; set => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventTypeInfoInternal)EventTypeInfo).Kind = value ?? ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EventDefinitionKind)""); } + + /// Internal Acessors for EventTypeInfo + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventTypeInfo Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerUpdateTopicInfoInternal.EventTypeInfo { get => (this._eventTypeInfo = this._eventTypeInfo ?? new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.EventTypeInfo()); set { {_eventTypeInfo = value;} } } + + /// Creates an new instance. + public PartnerUpdateTopicInfo() + { + + } + } + /// Update properties for the corresponding partner topic of a channel. + public partial interface IPartnerUpdateTopicInfo : + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IJsonSerializable + { + /// + /// A collection of inline event types for the resource. The inline event type keys are of type string which represents the + /// name of the event. + /// An example of a valid inline event name is "Contoso.OrderCreated". + /// The inline event type values are of type InlineEventProperties and will contain additional information for every inline + /// event type. + /// + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"A collection of inline event types for the resource. The inline event type keys are of type string which represents the name of the event. + An example of a valid inline event name is ""Contoso.OrderCreated"". + The inline event type values are of type InlineEventProperties and will contain additional information for every inline event type.", + SerializedName = @"inlineEventTypes", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventTypeInfoInlineEventTypes) })] + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventTypeInfoInlineEventTypes EventTypeInfoInlineEventType { get; set; } + /// The kind of event type used. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The kind of event type used.", + SerializedName = @"kind", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EventDefinitionKind) })] + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EventDefinitionKind? EventTypeInfoKind { get; set; } + + } + /// Update properties for the corresponding partner topic of a channel. + internal partial interface IPartnerUpdateTopicInfoInternal + + { + /// Event type info for the partner topic + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventTypeInfo EventTypeInfo { get; set; } + /// + /// A collection of inline event types for the resource. The inline event type keys are of type string which represents the + /// name of the event. + /// An example of a valid inline event name is "Contoso.OrderCreated". + /// The inline event type values are of type InlineEventProperties and will contain additional information for every inline + /// event type. + /// + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventTypeInfoInlineEventTypes EventTypeInfoInlineEventType { get; set; } + /// The kind of event type used. + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EventDefinitionKind? EventTypeInfoKind { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PartnerUpdateTopicInfo.json.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PartnerUpdateTopicInfo.json.cs new file mode 100644 index 000000000000..f4ce9c02ca90 --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PartnerUpdateTopicInfo.json.cs @@ -0,0 +1,106 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Extensions; + + /// Update properties for the corresponding partner topic of a channel. + public partial class PartnerUpdateTopicInfo + { + + /// + /// AfterFromJson will be called after the json deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JsonNode that should be deserialized into this object. + + partial void AfterFromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json erialization has finished, allowing customization of the before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JSON container that the serialization result will be placed in. + + partial void AfterToJson(ref Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject container); + + /// + /// BeforeFromJson will be called before the json deserialization has commenced, allowing complete customization of + /// the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JsonNode that should be deserialized into this object. + /// Determines if the rest of the deserialization should be processed, or if the method should return + /// instantly. + + partial void BeforeFromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject json, ref bool returnNow); + + /// + /// BeforeToJson will be called before the json serialization has commenced, allowing complete customization of the + /// object before it is serialized. + /// If you wish to disable the default serialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JSON container that the serialization result will be placed in. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeToJson(ref Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerUpdateTopicInfo. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerUpdateTopicInfo. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerUpdateTopicInfo FromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject json ? new PartnerUpdateTopicInfo(json) : null; + } + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject instance to deserialize from. + internal PartnerUpdateTopicInfo(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject json) + { + bool returnNow = false; + BeforeFromJson(json, ref returnNow); + if (returnNow) + { + return; + } + {_eventTypeInfo = If( json?.PropertyT("eventTypeInfo"), out var __jsonEventTypeInfo) ? Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.EventTypeInfo.FromJson(__jsonEventTypeInfo) : EventTypeInfo;} + AfterFromJson(json); + } + + /// + /// Serializes this instance of into a . + /// + /// The container to serialize this object into. If the caller + /// passes in null, a new instance will be created and returned to the caller. + /// Allows the caller to choose the depth of the serialization. See . + /// + /// a serialized instance of as a . + /// + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject(); + + bool returnNow = false; + BeforeToJson(ref container, ref returnNow); + if (returnNow) + { + return container; + } + AddIf( null != this._eventTypeInfo ? (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode) this._eventTypeInfo.ToJson(null,serializationMode) : null, "eventTypeInfo" ,container.Add ); + AfterToJson(ref container); + return container; + } + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PrivateEndpoint.PowerShell.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PrivateEndpoint.PowerShell.cs new file mode 100644 index 000000000000..c4e68cf89555 --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PrivateEndpoint.PowerShell.cs @@ -0,0 +1,142 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell; + + /// PrivateEndpoint information. + [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.EventGrid.Models.Api20211015Preview.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.EventGrid.Models.Api20211015Preview.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.EventGrid.Models.Api20211015Preview.IPrivateEndpoint FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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 + if (content.Contains("Id")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPrivateEndpointInternal)this).Id = (string) content.GetValueForProperty("Id",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.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 + if (content.Contains("Id")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPrivateEndpointInternal)this).Id = (string) content.GetValueForProperty("Id",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.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.EventGrid.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// PrivateEndpoint information. + [System.ComponentModel.TypeConverter(typeof(PrivateEndpointTypeConverter))] + public partial interface IPrivateEndpoint + + { + + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PrivateEndpoint.TypeConverter.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PrivateEndpoint.TypeConverter.cs new file mode 100644 index 000000000000..cf752fd914a8 --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PrivateEndpoint.TypeConverter.cs @@ -0,0 +1,146 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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 . + /// + /// the instance to check if it can be converted to the type. + /// + /// true if the instance could be converted to a type, otherwise false + /// + public static bool CanConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return true; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + // we say yest to PSObjects + return true; + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + // we say yest to Hashtables/dictionaries + return true; + } + try + { + if (null != sourceValue.ToJsonString()) + { + return true; + } + } + catch + { + // Not one of our objects + } + try + { + string text = sourceValue.ToString()?.Trim(); + return true == text?.StartsWith("{") && true == text?.EndsWith("}") && Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonType.Object; + } + catch + { + // Doesn't look like it can be treated as JSON + } + return false; + } + + /// + /// Determines if the parameter can be converted to the parameter + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false + /// + public override bool CanConvertTo(object sourceValue, global::System.Type destinationType) => false; + + /// + /// Converts the parameter to the parameter using and + /// + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// + /// an instance of , or null if there is no suitable conversion. + /// + public override object ConvertFrom(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => ConvertFrom(sourceValue); + + /// + /// Converts the parameter to the parameter using and + /// + /// the value to convert into an instance of . + /// + /// an instance of , or null if there is no suitable conversion. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPrivateEndpoint ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.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/eventgrid/generated/api/Models/Api20211015Preview/PrivateEndpoint.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PrivateEndpoint.cs new file mode 100644 index 000000000000..8fba0ebe8f44 --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PrivateEndpoint.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.EventGrid.Models.Api20211015Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Extensions; + + /// PrivateEndpoint information. + public partial class PrivateEndpoint : + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPrivateEndpoint, + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPrivateEndpointInternal + { + + /// Backing field for property. + private string _id; + + /// The ARM identifier for Private Endpoint. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Owned)] + public string Id { get => this._id; set => this._id = value; } + + /// Creates an new instance. + public PrivateEndpoint() + { + + } + } + /// PrivateEndpoint information. + public partial interface IPrivateEndpoint : + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IJsonSerializable + { + /// The ARM identifier for Private Endpoint. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The ARM identifier for Private Endpoint.", + SerializedName = @"id", + PossibleTypes = new [] { typeof(string) })] + string Id { get; set; } + + } + /// PrivateEndpoint information. + internal partial interface IPrivateEndpointInternal + + { + /// The ARM identifier for Private Endpoint. + string Id { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PrivateEndpoint.json.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PrivateEndpoint.json.cs new file mode 100644 index 000000000000..74c257edbff4 --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PrivateEndpoint.json.cs @@ -0,0 +1,106 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Extensions; + + /// PrivateEndpoint information. + 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.EventGrid.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json erialization has finished, allowing customization of the before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JSON container that the serialization result will be placed in. + + partial void AfterToJson(ref Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject container); + + /// + /// BeforeFromJson will be called before the json deserialization has commenced, allowing complete customization of + /// the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JsonNode that should be deserialized into this object. + /// Determines if the rest of the deserialization should be processed, or if the method should return + /// instantly. + + partial void BeforeFromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject json, ref bool returnNow); + + /// + /// BeforeToJson will be called before the json serialization has commenced, allowing complete customization of the + /// object before it is serialized. + /// If you wish to disable the default serialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JSON container that the serialization result will be placed in. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeToJson(ref Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPrivateEndpoint. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPrivateEndpoint. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPrivateEndpoint FromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject json ? new PrivateEndpoint(json) : null; + } + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject instance to deserialize from. + internal PrivateEndpoint(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject(); + + bool returnNow = false; + BeforeToJson(ref container, ref returnNow); + if (returnNow) + { + return container; + } + AddIf( null != (((object)this._id)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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/eventgrid/generated/api/Models/Api20211015Preview/PrivateEndpointConnection.PowerShell.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PrivateEndpointConnection.PowerShell.cs new file mode 100644 index 000000000000..6668a2e3ba1d --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PrivateEndpointConnection.PowerShell.cs @@ -0,0 +1,230 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell; + + [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.EventGrid.Models.Api20211015Preview.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.EventGrid.Models.Api20211015Preview.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.EventGrid.Models.Api20211015Preview.IPrivateEndpointConnection FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode.Parse(jsonText)); + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + internal PrivateEndpointConnection(global::System.Collections.IDictionary content) + { + bool returnNow = false; + BeforeDeserializeDictionary(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("Property")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPrivateEndpointConnectionInternal)this).Property = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPrivateEndpointConnectionProperties) content.GetValueForProperty("Property",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPrivateEndpointConnectionInternal)this).Property, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.PrivateEndpointConnectionPropertiesTypeConverter.ConvertFrom); + } + if (content.Contains("Id")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IResourceInternal)this).Id = (string) content.GetValueForProperty("Id",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IResourceInternal)this).Id, global::System.Convert.ToString); + } + if (content.Contains("Name")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IResourceInternal)this).Name = (string) content.GetValueForProperty("Name",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IResourceInternal)this).Name, global::System.Convert.ToString); + } + if (content.Contains("Type")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IResourceInternal)this).Type = (string) content.GetValueForProperty("Type",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IResourceInternal)this).Type, global::System.Convert.ToString); + } + if (content.Contains("PrivateEndpoint")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPrivateEndpointConnectionInternal)this).PrivateEndpoint = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPrivateEndpoint) content.GetValueForProperty("PrivateEndpoint",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPrivateEndpointConnectionInternal)this).PrivateEndpoint, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.PrivateEndpointTypeConverter.ConvertFrom); + } + if (content.Contains("PrivateLinkServiceConnectionState")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPrivateEndpointConnectionInternal)this).PrivateLinkServiceConnectionState = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IConnectionState) content.GetValueForProperty("PrivateLinkServiceConnectionState",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPrivateEndpointConnectionInternal)this).PrivateLinkServiceConnectionState, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ConnectionStateTypeConverter.ConvertFrom); + } + if (content.Contains("GroupId")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPrivateEndpointConnectionInternal)this).GroupId = (string[]) content.GetValueForProperty("GroupId",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPrivateEndpointConnectionInternal)this).GroupId, __y => TypeConverterExtensions.SelectToArray(__y, global::System.Convert.ToString)); + } + if (content.Contains("ProvisioningState")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPrivateEndpointConnectionInternal)this).ProvisioningState = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.ResourceProvisioningState?) content.GetValueForProperty("ProvisioningState",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPrivateEndpointConnectionInternal)this).ProvisioningState, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.ResourceProvisioningState.CreateFrom); + } + if (content.Contains("PrivateEndpointId")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPrivateEndpointConnectionInternal)this).PrivateEndpointId = (string) content.GetValueForProperty("PrivateEndpointId",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPrivateEndpointConnectionInternal)this).PrivateEndpointId, global::System.Convert.ToString); + } + if (content.Contains("PrivateLinkServiceConnectionStateStatus")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPrivateEndpointConnectionInternal)this).PrivateLinkServiceConnectionStateStatus = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.PersistedConnectionStatus?) content.GetValueForProperty("PrivateLinkServiceConnectionStateStatus",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPrivateEndpointConnectionInternal)this).PrivateLinkServiceConnectionStateStatus, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.PersistedConnectionStatus.CreateFrom); + } + if (content.Contains("PrivateLinkServiceConnectionStateDescription")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPrivateEndpointConnectionInternal)this).PrivateLinkServiceConnectionStateDescription = (string) content.GetValueForProperty("PrivateLinkServiceConnectionStateDescription",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPrivateEndpointConnectionInternal)this).PrivateLinkServiceConnectionStateDescription, global::System.Convert.ToString); + } + if (content.Contains("PrivateLinkServiceConnectionStateActionsRequired")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPrivateEndpointConnectionInternal)this).PrivateLinkServiceConnectionStateActionsRequired = (string) content.GetValueForProperty("PrivateLinkServiceConnectionStateActionsRequired",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPrivateEndpointConnectionInternal)this).PrivateLinkServiceConnectionStateActionsRequired, global::System.Convert.ToString); + } + AfterDeserializeDictionary(content); + } + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + internal PrivateEndpointConnection(global::System.Management.Automation.PSObject content) + { + bool returnNow = false; + BeforeDeserializePSObject(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("Property")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPrivateEndpointConnectionInternal)this).Property = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPrivateEndpointConnectionProperties) content.GetValueForProperty("Property",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPrivateEndpointConnectionInternal)this).Property, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.PrivateEndpointConnectionPropertiesTypeConverter.ConvertFrom); + } + if (content.Contains("Id")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IResourceInternal)this).Id = (string) content.GetValueForProperty("Id",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IResourceInternal)this).Id, global::System.Convert.ToString); + } + if (content.Contains("Name")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IResourceInternal)this).Name = (string) content.GetValueForProperty("Name",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IResourceInternal)this).Name, global::System.Convert.ToString); + } + if (content.Contains("Type")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IResourceInternal)this).Type = (string) content.GetValueForProperty("Type",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IResourceInternal)this).Type, global::System.Convert.ToString); + } + if (content.Contains("PrivateEndpoint")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPrivateEndpointConnectionInternal)this).PrivateEndpoint = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPrivateEndpoint) content.GetValueForProperty("PrivateEndpoint",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPrivateEndpointConnectionInternal)this).PrivateEndpoint, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.PrivateEndpointTypeConverter.ConvertFrom); + } + if (content.Contains("PrivateLinkServiceConnectionState")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPrivateEndpointConnectionInternal)this).PrivateLinkServiceConnectionState = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IConnectionState) content.GetValueForProperty("PrivateLinkServiceConnectionState",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPrivateEndpointConnectionInternal)this).PrivateLinkServiceConnectionState, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ConnectionStateTypeConverter.ConvertFrom); + } + if (content.Contains("GroupId")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPrivateEndpointConnectionInternal)this).GroupId = (string[]) content.GetValueForProperty("GroupId",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPrivateEndpointConnectionInternal)this).GroupId, __y => TypeConverterExtensions.SelectToArray(__y, global::System.Convert.ToString)); + } + if (content.Contains("ProvisioningState")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPrivateEndpointConnectionInternal)this).ProvisioningState = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.ResourceProvisioningState?) content.GetValueForProperty("ProvisioningState",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPrivateEndpointConnectionInternal)this).ProvisioningState, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.ResourceProvisioningState.CreateFrom); + } + if (content.Contains("PrivateEndpointId")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPrivateEndpointConnectionInternal)this).PrivateEndpointId = (string) content.GetValueForProperty("PrivateEndpointId",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPrivateEndpointConnectionInternal)this).PrivateEndpointId, global::System.Convert.ToString); + } + if (content.Contains("PrivateLinkServiceConnectionStateStatus")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPrivateEndpointConnectionInternal)this).PrivateLinkServiceConnectionStateStatus = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.PersistedConnectionStatus?) content.GetValueForProperty("PrivateLinkServiceConnectionStateStatus",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPrivateEndpointConnectionInternal)this).PrivateLinkServiceConnectionStateStatus, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.PersistedConnectionStatus.CreateFrom); + } + if (content.Contains("PrivateLinkServiceConnectionStateDescription")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPrivateEndpointConnectionInternal)this).PrivateLinkServiceConnectionStateDescription = (string) content.GetValueForProperty("PrivateLinkServiceConnectionStateDescription",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPrivateEndpointConnectionInternal)this).PrivateLinkServiceConnectionStateDescription, global::System.Convert.ToString); + } + if (content.Contains("PrivateLinkServiceConnectionStateActionsRequired")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPrivateEndpointConnectionInternal)this).PrivateLinkServiceConnectionStateActionsRequired = (string) content.GetValueForProperty("PrivateLinkServiceConnectionStateActionsRequired",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPrivateEndpointConnectionInternal)this).PrivateLinkServiceConnectionStateActionsRequired, global::System.Convert.ToString); + } + AfterDeserializePSObject(content); + } + + /// Serializes this instance to a json string. + + /// a containing this model serialized to JSON text. + public string ToJsonString() => ToJson(null, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + [System.ComponentModel.TypeConverter(typeof(PrivateEndpointConnectionTypeConverter))] + public partial interface IPrivateEndpointConnection + + { + + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PrivateEndpointConnection.TypeConverter.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PrivateEndpointConnection.TypeConverter.cs new file mode 100644 index 000000000000..8b9779f31996 --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PrivateEndpointConnection.TypeConverter.cs @@ -0,0 +1,147 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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 . + /// + /// the instance to check if it can be converted to the type. + /// + /// true if the instance could be converted to a type, otherwise false + /// + public static bool CanConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return true; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + // we say yest to PSObjects + return true; + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + // we say yest to Hashtables/dictionaries + return true; + } + try + { + if (null != sourceValue.ToJsonString()) + { + return true; + } + } + catch + { + // Not one of our objects + } + try + { + string text = sourceValue.ToString()?.Trim(); + return true == text?.StartsWith("{") && true == text?.EndsWith("}") && Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonType.Object; + } + catch + { + // Doesn't look like it can be treated as JSON + } + return false; + } + + /// + /// Determines if the parameter can be converted to the parameter + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false + /// + public override bool CanConvertTo(object sourceValue, global::System.Type destinationType) => false; + + /// + /// Converts the parameter to the parameter using and + /// + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// + /// an instance of , or null if there is no suitable conversion. + /// + public override object ConvertFrom(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => ConvertFrom(sourceValue); + + /// + /// Converts the parameter to the parameter using and + /// + /// the value to convert into an instance of . + /// + /// an instance of , or null if there is no suitable conversion. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPrivateEndpointConnection ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.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/eventgrid/generated/api/Models/Api20211015Preview/PrivateEndpointConnection.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PrivateEndpointConnection.cs new file mode 100644 index 000000000000..41d4bc34f6a1 --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PrivateEndpointConnection.cs @@ -0,0 +1,177 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Extensions; + + public partial class PrivateEndpointConnection : + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPrivateEndpointConnection, + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPrivateEndpointConnectionInternal, + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IValidates + { + /// + /// Backing field for Inherited model + /// + private Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IResource __resource = new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.Resource(); + + /// GroupIds from the private link service resource. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Inlined)] + public string[] GroupId { get => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPrivateEndpointConnectionPropertiesInternal)Property).GroupId; set => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPrivateEndpointConnectionPropertiesInternal)Property).GroupId = value ?? null /* arrayOf */; } + + /// Fully qualified identifier of the resource. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Inherited)] + public string Id { get => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IResourceInternal)__resource).Id; } + + /// Internal Acessors for PrivateEndpoint + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPrivateEndpoint Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPrivateEndpointConnectionInternal.PrivateEndpoint { get => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPrivateEndpointConnectionPropertiesInternal)Property).PrivateEndpoint; set => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPrivateEndpointConnectionPropertiesInternal)Property).PrivateEndpoint = value; } + + /// Internal Acessors for PrivateLinkServiceConnectionState + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IConnectionState Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPrivateEndpointConnectionInternal.PrivateLinkServiceConnectionState { get => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPrivateEndpointConnectionPropertiesInternal)Property).PrivateLinkServiceConnectionState; set => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPrivateEndpointConnectionPropertiesInternal)Property).PrivateLinkServiceConnectionState = value; } + + /// Internal Acessors for Property + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPrivateEndpointConnectionProperties Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPrivateEndpointConnectionInternal.Property { get => (this._property = this._property ?? new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.PrivateEndpointConnectionProperties()); set { {_property = value;} } } + + /// Internal Acessors for Id + string Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IResourceInternal.Id { get => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IResourceInternal)__resource).Id; set => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IResourceInternal)__resource).Id = value; } + + /// Internal Acessors for Name + string Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IResourceInternal.Name { get => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IResourceInternal)__resource).Name; set => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IResourceInternal)__resource).Name = value; } + + /// Internal Acessors for Type + string Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IResourceInternal.Type { get => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IResourceInternal)__resource).Type; set => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IResourceInternal)__resource).Type = value; } + + /// Name of the resource. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Inherited)] + public string Name { get => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IResourceInternal)__resource).Name; } + + /// The ARM identifier for Private Endpoint. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Inlined)] + public string PrivateEndpointId { get => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPrivateEndpointConnectionPropertiesInternal)Property).PrivateEndpointId; set => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPrivateEndpointConnectionPropertiesInternal)Property).PrivateEndpointId = value ?? null; } + + /// Actions required (if any). + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Inlined)] + public string PrivateLinkServiceConnectionStateActionsRequired { get => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPrivateEndpointConnectionPropertiesInternal)Property).PrivateLinkServiceConnectionStateActionsRequired; set => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPrivateEndpointConnectionPropertiesInternal)Property).PrivateLinkServiceConnectionStateActionsRequired = value ?? null; } + + /// Description of the connection state. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Inlined)] + public string PrivateLinkServiceConnectionStateDescription { get => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPrivateEndpointConnectionPropertiesInternal)Property).PrivateLinkServiceConnectionStateDescription; set => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPrivateEndpointConnectionPropertiesInternal)Property).PrivateLinkServiceConnectionStateDescription = value ?? null; } + + /// Status of the connection. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Inlined)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.PersistedConnectionStatus? PrivateLinkServiceConnectionStateStatus { get => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPrivateEndpointConnectionPropertiesInternal)Property).PrivateLinkServiceConnectionStateStatus; set => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPrivateEndpointConnectionPropertiesInternal)Property).PrivateLinkServiceConnectionStateStatus = value ?? ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.PersistedConnectionStatus)""); } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPrivateEndpointConnectionProperties _property; + + /// Properties of the PrivateEndpointConnection. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Owned)] + internal Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPrivateEndpointConnectionProperties Property { get => (this._property = this._property ?? new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.PrivateEndpointConnectionProperties()); set => this._property = value; } + + /// Provisioning state of the Private Endpoint Connection. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Inlined)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.ResourceProvisioningState? ProvisioningState { get => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPrivateEndpointConnectionPropertiesInternal)Property).ProvisioningState; set => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPrivateEndpointConnectionPropertiesInternal)Property).ProvisioningState = value ?? ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.ResourceProvisioningState)""); } + + /// Type of the resource. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Inherited)] + public string Type { get => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.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 that will be complete when validation is completed. + /// + public async global::System.Threading.Tasks.Task Validate(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener eventListener) + { + await eventListener.AssertNotNull(nameof(__resource), __resource); + await eventListener.AssertObjectIsValid(nameof(__resource), __resource); + } + } + public partial interface IPrivateEndpointConnection : + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IJsonSerializable, + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IResource + { + /// GroupIds from the private link service resource. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"GroupIds from the private link service resource.", + SerializedName = @"groupIds", + PossibleTypes = new [] { typeof(string) })] + string[] GroupId { get; set; } + /// The ARM identifier for Private Endpoint. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The ARM identifier for Private Endpoint.", + SerializedName = @"id", + PossibleTypes = new [] { typeof(string) })] + string PrivateEndpointId { get; set; } + /// Actions required (if any). + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Actions required (if any).", + SerializedName = @"actionsRequired", + PossibleTypes = new [] { typeof(string) })] + string PrivateLinkServiceConnectionStateActionsRequired { get; set; } + /// Description of the connection state. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Description of the connection state.", + SerializedName = @"description", + PossibleTypes = new [] { typeof(string) })] + string PrivateLinkServiceConnectionStateDescription { get; set; } + /// Status of the connection. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Status of the connection.", + SerializedName = @"status", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.PersistedConnectionStatus) })] + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.PersistedConnectionStatus? PrivateLinkServiceConnectionStateStatus { get; set; } + /// Provisioning state of the Private Endpoint Connection. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Provisioning state of the Private Endpoint Connection.", + SerializedName = @"provisioningState", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.ResourceProvisioningState) })] + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.ResourceProvisioningState? ProvisioningState { get; set; } + + } + internal partial interface IPrivateEndpointConnectionInternal : + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IResourceInternal + { + /// GroupIds from the private link service resource. + string[] GroupId { get; set; } + /// The Private Endpoint resource for this Connection. + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPrivateEndpoint PrivateEndpoint { get; set; } + /// The ARM identifier for Private Endpoint. + string PrivateEndpointId { get; set; } + /// Details about the state of the connection. + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IConnectionState PrivateLinkServiceConnectionState { get; set; } + /// Actions required (if any). + string PrivateLinkServiceConnectionStateActionsRequired { get; set; } + /// Description of the connection state. + string PrivateLinkServiceConnectionStateDescription { get; set; } + /// Status of the connection. + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.PersistedConnectionStatus? PrivateLinkServiceConnectionStateStatus { get; set; } + /// Properties of the PrivateEndpointConnection. + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPrivateEndpointConnectionProperties Property { get; set; } + /// Provisioning state of the Private Endpoint Connection. + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.ResourceProvisioningState? ProvisioningState { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PrivateEndpointConnection.json.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PrivateEndpointConnection.json.cs new file mode 100644 index 000000000000..30146a7840aa --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PrivateEndpointConnection.json.cs @@ -0,0 +1,107 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Extensions; + + 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.EventGrid.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json erialization has finished, allowing customization of the before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JSON container that the serialization result will be placed in. + + partial void AfterToJson(ref Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject container); + + /// + /// BeforeFromJson will be called before the json deserialization has commenced, allowing complete customization of + /// the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JsonNode that should be deserialized into this object. + /// Determines if the rest of the deserialization should be processed, or if the method should return + /// instantly. + + partial void BeforeFromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject json, ref bool returnNow); + + /// + /// BeforeToJson will be called before the json serialization has commenced, allowing complete customization of the + /// object before it is serialized. + /// If you wish to disable the default serialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JSON container that the serialization result will be placed in. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeToJson(ref Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPrivateEndpointConnection. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPrivateEndpointConnection. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPrivateEndpointConnection FromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject json ? new PrivateEndpointConnection(json) : null; + } + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject instance to deserialize from. + internal PrivateEndpointConnection(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject json) + { + bool returnNow = false; + BeforeFromJson(json, ref returnNow); + if (returnNow) + { + return; + } + __resource = new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.Resource(json); + {_property = If( json?.PropertyT("properties"), out var __jsonProperties) ? Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.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.EventGrid.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.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/eventgrid/generated/api/Models/Api20211015Preview/PrivateEndpointConnectionListResult.PowerShell.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PrivateEndpointConnectionListResult.PowerShell.cs new file mode 100644 index 000000000000..56558e3bc116 --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PrivateEndpointConnectionListResult.PowerShell.cs @@ -0,0 +1,154 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell; + + /// Result of the list of all private endpoint connections operation. + [System.ComponentModel.TypeConverter(typeof(PrivateEndpointConnectionListResultTypeConverter))] + public partial class PrivateEndpointConnectionListResult + { + + /// + /// AfterDeserializeDictionary will be called after the deserialization has finished, allowing customization of the + /// object before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Collections.IDictionary content that should be used. + + partial void AfterDeserializeDictionary(global::System.Collections.IDictionary content); + + /// + /// AfterDeserializePSObject will be called after the deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Management.Automation.PSObject content that should be used. + + partial void AfterDeserializePSObject(global::System.Management.Automation.PSObject content); + + /// + /// BeforeDeserializeDictionary will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Collections.IDictionary content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializeDictionary(global::System.Collections.IDictionary content, ref bool returnNow); + + /// + /// BeforeDeserializePSObject will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializePSObject(global::System.Management.Automation.PSObject content, ref bool returnNow); + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPrivateEndpointConnectionListResult DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new PrivateEndpointConnectionListResult(content); + } + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPrivateEndpointConnectionListResult DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new PrivateEndpointConnectionListResult(content); + } + + /// + /// Creates a new instance of , deserializing the content from a json string. + /// + /// a string containing a JSON serialized instance of this model. + /// + /// an instance of the model class. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPrivateEndpointConnectionListResult FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode.Parse(jsonText)); + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + internal PrivateEndpointConnectionListResult(global::System.Collections.IDictionary content) + { + bool returnNow = false; + BeforeDeserializeDictionary(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("Value")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPrivateEndpointConnectionListResultInternal)this).Value = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPrivateEndpointConnection[]) content.GetValueForProperty("Value",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPrivateEndpointConnectionListResultInternal)this).Value, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.PrivateEndpointConnectionTypeConverter.ConvertFrom)); + } + if (content.Contains("NextLink")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPrivateEndpointConnectionListResultInternal)this).NextLink = (string) content.GetValueForProperty("NextLink",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPrivateEndpointConnectionListResultInternal)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 PrivateEndpointConnectionListResult(global::System.Management.Automation.PSObject content) + { + bool returnNow = false; + BeforeDeserializePSObject(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("Value")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPrivateEndpointConnectionListResultInternal)this).Value = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPrivateEndpointConnection[]) content.GetValueForProperty("Value",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPrivateEndpointConnectionListResultInternal)this).Value, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.PrivateEndpointConnectionTypeConverter.ConvertFrom)); + } + if (content.Contains("NextLink")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPrivateEndpointConnectionListResultInternal)this).NextLink = (string) content.GetValueForProperty("NextLink",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPrivateEndpointConnectionListResultInternal)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.EventGrid.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// Result of the list of all private endpoint connections operation. + [System.ComponentModel.TypeConverter(typeof(PrivateEndpointConnectionListResultTypeConverter))] + public partial interface IPrivateEndpointConnectionListResult + + { + + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PrivateEndpointConnectionListResult.TypeConverter.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PrivateEndpointConnectionListResult.TypeConverter.cs new file mode 100644 index 000000000000..67739b5c1a5d --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PrivateEndpointConnectionListResult.TypeConverter.cs @@ -0,0 +1,148 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class PrivateEndpointConnectionListResultTypeConverter : global::System.Management.Automation.PSTypeConverter + { + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false. + /// + public override bool CanConvertFrom(object sourceValue, global::System.Type destinationType) => CanConvertFrom(sourceValue); + + /// + /// Determines if the converter can convert the parameter to the . + /// + /// the instance to check if it can be converted to the type. + /// + /// true if the instance could be converted to a type, otherwise + /// false + /// + public static bool CanConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return true; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + // we say yest to PSObjects + return true; + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + // we say yest to Hashtables/dictionaries + return true; + } + try + { + if (null != sourceValue.ToJsonString()) + { + return true; + } + } + catch + { + // Not one of our objects + } + try + { + string text = sourceValue.ToString()?.Trim(); + return true == text?.StartsWith("{") && true == text?.EndsWith("}") && Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonType.Object; + } + catch + { + // Doesn't look like it can be treated as JSON + } + return false; + } + + /// + /// Determines if the parameter can be converted to the parameter + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false + /// + public override bool CanConvertTo(object sourceValue, global::System.Type destinationType) => false; + + /// + /// Converts the parameter to the parameter using and + /// + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// + /// an instance of , or null if there is no suitable conversion. + /// + public override object ConvertFrom(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => ConvertFrom(sourceValue); + + /// + /// Converts the parameter to the parameter using and + /// + /// the value to convert into an instance of . + /// + /// an instance of , or null if there is no suitable conversion. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPrivateEndpointConnectionListResult ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPrivateEndpointConnectionListResult).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return PrivateEndpointConnectionListResult.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return PrivateEndpointConnectionListResult.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return PrivateEndpointConnectionListResult.DeserializeFromDictionary(sourceValue); + } + return null; + } + + /// NotImplemented -- this will return null + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// will always return null. + public override object ConvertTo(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => null; + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PrivateEndpointConnectionListResult.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PrivateEndpointConnectionListResult.cs new file mode 100644 index 000000000000..11c6bcf211e3 --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PrivateEndpointConnectionListResult.cs @@ -0,0 +1,68 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Extensions; + + /// Result of the list of all private endpoint connections operation. + public partial class PrivateEndpointConnectionListResult : + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPrivateEndpointConnectionListResult, + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPrivateEndpointConnectionListResultInternal + { + + /// Backing field for property. + private string _nextLink; + + /// A link for the next page of private endpoint connection resources. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Owned)] + public string NextLink { get => this._nextLink; set => this._nextLink = value; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPrivateEndpointConnection[] _value; + + /// A collection of private endpoint connection resources. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Owned)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPrivateEndpointConnection[] Value { get => this._value; set => this._value = value; } + + /// Creates an new instance. + public PrivateEndpointConnectionListResult() + { + + } + } + /// Result of the list of all private endpoint connections operation. + public partial interface IPrivateEndpointConnectionListResult : + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IJsonSerializable + { + /// A link for the next page of private endpoint connection resources. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"A link for the next page of private endpoint connection resources.", + SerializedName = @"nextLink", + PossibleTypes = new [] { typeof(string) })] + string NextLink { get; set; } + /// A collection of private endpoint connection resources. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"A collection of private endpoint connection resources.", + SerializedName = @"value", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPrivateEndpointConnection) })] + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPrivateEndpointConnection[] Value { get; set; } + + } + /// Result of the list of all private endpoint connections operation. + internal partial interface IPrivateEndpointConnectionListResultInternal + + { + /// A link for the next page of private endpoint connection resources. + string NextLink { get; set; } + /// A collection of private endpoint connection resources. + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPrivateEndpointConnection[] Value { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PrivateEndpointConnectionListResult.json.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PrivateEndpointConnectionListResult.json.cs new file mode 100644 index 000000000000..6d0b9bdc01a6 --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PrivateEndpointConnectionListResult.json.cs @@ -0,0 +1,117 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Extensions; + + /// Result of the list of all private endpoint connections operation. + public partial class PrivateEndpointConnectionListResult + { + + /// + /// AfterFromJson will be called after the json deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JsonNode that should be deserialized into this object. + + partial void AfterFromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json erialization has finished, allowing customization of the before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JSON container that the serialization result will be placed in. + + partial void AfterToJson(ref Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject container); + + /// + /// BeforeFromJson will be called before the json deserialization has commenced, allowing complete customization of + /// the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JsonNode that should be deserialized into this object. + /// Determines if the rest of the deserialization should be processed, or if the method should return + /// instantly. + + partial void BeforeFromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject json, ref bool returnNow); + + /// + /// BeforeToJson will be called before the json serialization has commenced, allowing complete customization of the + /// object before it is serialized. + /// If you wish to disable the default serialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JSON container that the serialization result will be placed in. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeToJson(ref Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPrivateEndpointConnectionListResult. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPrivateEndpointConnectionListResult. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPrivateEndpointConnectionListResult FromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject json ? new PrivateEndpointConnectionListResult(json) : null; + } + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject instance to deserialize from. + internal PrivateEndpointConnectionListResult(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.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.EventGrid.Models.Api20211015Preview.IPrivateEndpointConnection) (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.PrivateEndpointConnection.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.EventGrid.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Runtime.Json.XNodeArray(); + foreach( var __x in this._value ) + { + AddIf(__x?.ToJson(null, serializationMode) ,__w.Add); + } + container.Add("value",__w); + } + AddIf( null != (((object)this._nextLink)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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/eventgrid/generated/api/Models/Api20211015Preview/PrivateEndpointConnectionProperties.PowerShell.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PrivateEndpointConnectionProperties.PowerShell.cs new file mode 100644 index 000000000000..e9c66b4c7161 --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PrivateEndpointConnectionProperties.PowerShell.cs @@ -0,0 +1,202 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell; + + /// Properties of the private endpoint connection resource. + [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.EventGrid.Models.Api20211015Preview.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.EventGrid.Models.Api20211015Preview.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.EventGrid.Models.Api20211015Preview.IPrivateEndpointConnectionProperties FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode.Parse(jsonText)); + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + internal PrivateEndpointConnectionProperties(global::System.Collections.IDictionary content) + { + bool returnNow = false; + BeforeDeserializeDictionary(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("PrivateEndpoint")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPrivateEndpointConnectionPropertiesInternal)this).PrivateEndpoint = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPrivateEndpoint) content.GetValueForProperty("PrivateEndpoint",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPrivateEndpointConnectionPropertiesInternal)this).PrivateEndpoint, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.PrivateEndpointTypeConverter.ConvertFrom); + } + if (content.Contains("PrivateLinkServiceConnectionState")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPrivateEndpointConnectionPropertiesInternal)this).PrivateLinkServiceConnectionState = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IConnectionState) content.GetValueForProperty("PrivateLinkServiceConnectionState",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPrivateEndpointConnectionPropertiesInternal)this).PrivateLinkServiceConnectionState, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ConnectionStateTypeConverter.ConvertFrom); + } + if (content.Contains("GroupId")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPrivateEndpointConnectionPropertiesInternal)this).GroupId = (string[]) content.GetValueForProperty("GroupId",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPrivateEndpointConnectionPropertiesInternal)this).GroupId, __y => TypeConverterExtensions.SelectToArray(__y, global::System.Convert.ToString)); + } + if (content.Contains("ProvisioningState")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPrivateEndpointConnectionPropertiesInternal)this).ProvisioningState = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.ResourceProvisioningState?) content.GetValueForProperty("ProvisioningState",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPrivateEndpointConnectionPropertiesInternal)this).ProvisioningState, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.ResourceProvisioningState.CreateFrom); + } + if (content.Contains("PrivateEndpointId")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPrivateEndpointConnectionPropertiesInternal)this).PrivateEndpointId = (string) content.GetValueForProperty("PrivateEndpointId",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPrivateEndpointConnectionPropertiesInternal)this).PrivateEndpointId, global::System.Convert.ToString); + } + if (content.Contains("PrivateLinkServiceConnectionStateStatus")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPrivateEndpointConnectionPropertiesInternal)this).PrivateLinkServiceConnectionStateStatus = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.PersistedConnectionStatus?) content.GetValueForProperty("PrivateLinkServiceConnectionStateStatus",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPrivateEndpointConnectionPropertiesInternal)this).PrivateLinkServiceConnectionStateStatus, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.PersistedConnectionStatus.CreateFrom); + } + if (content.Contains("PrivateLinkServiceConnectionStateDescription")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPrivateEndpointConnectionPropertiesInternal)this).PrivateLinkServiceConnectionStateDescription = (string) content.GetValueForProperty("PrivateLinkServiceConnectionStateDescription",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPrivateEndpointConnectionPropertiesInternal)this).PrivateLinkServiceConnectionStateDescription, global::System.Convert.ToString); + } + if (content.Contains("PrivateLinkServiceConnectionStateActionsRequired")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPrivateEndpointConnectionPropertiesInternal)this).PrivateLinkServiceConnectionStateActionsRequired = (string) content.GetValueForProperty("PrivateLinkServiceConnectionStateActionsRequired",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPrivateEndpointConnectionPropertiesInternal)this).PrivateLinkServiceConnectionStateActionsRequired, global::System.Convert.ToString); + } + AfterDeserializeDictionary(content); + } + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + internal PrivateEndpointConnectionProperties(global::System.Management.Automation.PSObject content) + { + bool returnNow = false; + BeforeDeserializePSObject(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("PrivateEndpoint")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPrivateEndpointConnectionPropertiesInternal)this).PrivateEndpoint = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPrivateEndpoint) content.GetValueForProperty("PrivateEndpoint",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPrivateEndpointConnectionPropertiesInternal)this).PrivateEndpoint, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.PrivateEndpointTypeConverter.ConvertFrom); + } + if (content.Contains("PrivateLinkServiceConnectionState")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPrivateEndpointConnectionPropertiesInternal)this).PrivateLinkServiceConnectionState = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IConnectionState) content.GetValueForProperty("PrivateLinkServiceConnectionState",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPrivateEndpointConnectionPropertiesInternal)this).PrivateLinkServiceConnectionState, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ConnectionStateTypeConverter.ConvertFrom); + } + if (content.Contains("GroupId")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPrivateEndpointConnectionPropertiesInternal)this).GroupId = (string[]) content.GetValueForProperty("GroupId",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPrivateEndpointConnectionPropertiesInternal)this).GroupId, __y => TypeConverterExtensions.SelectToArray(__y, global::System.Convert.ToString)); + } + if (content.Contains("ProvisioningState")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPrivateEndpointConnectionPropertiesInternal)this).ProvisioningState = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.ResourceProvisioningState?) content.GetValueForProperty("ProvisioningState",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPrivateEndpointConnectionPropertiesInternal)this).ProvisioningState, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.ResourceProvisioningState.CreateFrom); + } + if (content.Contains("PrivateEndpointId")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPrivateEndpointConnectionPropertiesInternal)this).PrivateEndpointId = (string) content.GetValueForProperty("PrivateEndpointId",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPrivateEndpointConnectionPropertiesInternal)this).PrivateEndpointId, global::System.Convert.ToString); + } + if (content.Contains("PrivateLinkServiceConnectionStateStatus")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPrivateEndpointConnectionPropertiesInternal)this).PrivateLinkServiceConnectionStateStatus = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.PersistedConnectionStatus?) content.GetValueForProperty("PrivateLinkServiceConnectionStateStatus",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPrivateEndpointConnectionPropertiesInternal)this).PrivateLinkServiceConnectionStateStatus, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.PersistedConnectionStatus.CreateFrom); + } + if (content.Contains("PrivateLinkServiceConnectionStateDescription")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPrivateEndpointConnectionPropertiesInternal)this).PrivateLinkServiceConnectionStateDescription = (string) content.GetValueForProperty("PrivateLinkServiceConnectionStateDescription",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPrivateEndpointConnectionPropertiesInternal)this).PrivateLinkServiceConnectionStateDescription, global::System.Convert.ToString); + } + if (content.Contains("PrivateLinkServiceConnectionStateActionsRequired")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPrivateEndpointConnectionPropertiesInternal)this).PrivateLinkServiceConnectionStateActionsRequired = (string) content.GetValueForProperty("PrivateLinkServiceConnectionStateActionsRequired",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPrivateEndpointConnectionPropertiesInternal)this).PrivateLinkServiceConnectionStateActionsRequired, global::System.Convert.ToString); + } + AfterDeserializePSObject(content); + } + + /// Serializes this instance to a json string. + + /// a containing this model serialized to JSON text. + public string ToJsonString() => ToJson(null, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// Properties of the private endpoint connection resource. + [System.ComponentModel.TypeConverter(typeof(PrivateEndpointConnectionPropertiesTypeConverter))] + public partial interface IPrivateEndpointConnectionProperties + + { + + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PrivateEndpointConnectionProperties.TypeConverter.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PrivateEndpointConnectionProperties.TypeConverter.cs new file mode 100644 index 000000000000..cecc20be8e49 --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PrivateEndpointConnectionProperties.TypeConverter.cs @@ -0,0 +1,148 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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 . + /// + /// the instance to check if it can be converted to the type. + /// + /// true if the instance could be converted to a type, otherwise + /// false + /// + public static bool CanConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return true; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + // we say yest to PSObjects + return true; + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + // we say yest to Hashtables/dictionaries + return true; + } + try + { + if (null != sourceValue.ToJsonString()) + { + return true; + } + } + catch + { + // Not one of our objects + } + try + { + string text = sourceValue.ToString()?.Trim(); + return true == text?.StartsWith("{") && true == text?.EndsWith("}") && Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonType.Object; + } + catch + { + // Doesn't look like it can be treated as JSON + } + return false; + } + + /// + /// Determines if the parameter can be converted to the parameter + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false + /// + public override bool CanConvertTo(object sourceValue, global::System.Type destinationType) => false; + + /// + /// Converts the parameter to the parameter using and + /// + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// + /// an instance of , or null if there is no suitable conversion. + /// + public override object ConvertFrom(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => ConvertFrom(sourceValue); + + /// + /// Converts the parameter to the parameter using and + /// + /// the value to convert into an instance of . + /// + /// an instance of , or null if there is no suitable conversion. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPrivateEndpointConnectionProperties ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.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/eventgrid/generated/api/Models/Api20211015Preview/PrivateEndpointConnectionProperties.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PrivateEndpointConnectionProperties.cs new file mode 100644 index 000000000000..b69c7acc4589 --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PrivateEndpointConnectionProperties.cs @@ -0,0 +1,148 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Extensions; + + /// Properties of the private endpoint connection resource. + public partial class PrivateEndpointConnectionProperties : + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPrivateEndpointConnectionProperties, + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPrivateEndpointConnectionPropertiesInternal + { + + /// Backing field for property. + private string[] _groupId; + + /// GroupIds from the private link service resource. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Owned)] + public string[] GroupId { get => this._groupId; set => this._groupId = value; } + + /// Internal Acessors for PrivateEndpoint + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPrivateEndpoint Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPrivateEndpointConnectionPropertiesInternal.PrivateEndpoint { get => (this._privateEndpoint = this._privateEndpoint ?? new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.PrivateEndpoint()); set { {_privateEndpoint = value;} } } + + /// Internal Acessors for PrivateLinkServiceConnectionState + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IConnectionState Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPrivateEndpointConnectionPropertiesInternal.PrivateLinkServiceConnectionState { get => (this._privateLinkServiceConnectionState = this._privateLinkServiceConnectionState ?? new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ConnectionState()); set { {_privateLinkServiceConnectionState = value;} } } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPrivateEndpoint _privateEndpoint; + + /// The Private Endpoint resource for this Connection. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Owned)] + internal Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPrivateEndpoint PrivateEndpoint { get => (this._privateEndpoint = this._privateEndpoint ?? new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.PrivateEndpoint()); set => this._privateEndpoint = value; } + + /// The ARM identifier for Private Endpoint. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Inlined)] + public string PrivateEndpointId { get => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPrivateEndpointInternal)PrivateEndpoint).Id; set => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPrivateEndpointInternal)PrivateEndpoint).Id = value ?? null; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IConnectionState _privateLinkServiceConnectionState; + + /// Details about the state of the connection. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Owned)] + internal Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IConnectionState PrivateLinkServiceConnectionState { get => (this._privateLinkServiceConnectionState = this._privateLinkServiceConnectionState ?? new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ConnectionState()); set => this._privateLinkServiceConnectionState = value; } + + /// Actions required (if any). + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Inlined)] + public string PrivateLinkServiceConnectionStateActionsRequired { get => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IConnectionStateInternal)PrivateLinkServiceConnectionState).ActionsRequired; set => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IConnectionStateInternal)PrivateLinkServiceConnectionState).ActionsRequired = value ?? null; } + + /// Description of the connection state. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Inlined)] + public string PrivateLinkServiceConnectionStateDescription { get => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IConnectionStateInternal)PrivateLinkServiceConnectionState).Description; set => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IConnectionStateInternal)PrivateLinkServiceConnectionState).Description = value ?? null; } + + /// Status of the connection. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Inlined)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.PersistedConnectionStatus? PrivateLinkServiceConnectionStateStatus { get => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IConnectionStateInternal)PrivateLinkServiceConnectionState).Status; set => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IConnectionStateInternal)PrivateLinkServiceConnectionState).Status = value ?? ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.PersistedConnectionStatus)""); } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.ResourceProvisioningState? _provisioningState; + + /// Provisioning state of the Private Endpoint Connection. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Owned)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.ResourceProvisioningState? ProvisioningState { get => this._provisioningState; set => this._provisioningState = value; } + + /// Creates an new instance. + public PrivateEndpointConnectionProperties() + { + + } + } + /// Properties of the private endpoint connection resource. + public partial interface IPrivateEndpointConnectionProperties : + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IJsonSerializable + { + /// GroupIds from the private link service resource. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"GroupIds from the private link service resource.", + SerializedName = @"groupIds", + PossibleTypes = new [] { typeof(string) })] + string[] GroupId { get; set; } + /// The ARM identifier for Private Endpoint. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The ARM identifier for Private Endpoint.", + SerializedName = @"id", + PossibleTypes = new [] { typeof(string) })] + string PrivateEndpointId { get; set; } + /// Actions required (if any). + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Actions required (if any).", + SerializedName = @"actionsRequired", + PossibleTypes = new [] { typeof(string) })] + string PrivateLinkServiceConnectionStateActionsRequired { get; set; } + /// Description of the connection state. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Description of the connection state.", + SerializedName = @"description", + PossibleTypes = new [] { typeof(string) })] + string PrivateLinkServiceConnectionStateDescription { get; set; } + /// Status of the connection. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Status of the connection.", + SerializedName = @"status", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.PersistedConnectionStatus) })] + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.PersistedConnectionStatus? PrivateLinkServiceConnectionStateStatus { get; set; } + /// Provisioning state of the Private Endpoint Connection. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Provisioning state of the Private Endpoint Connection.", + SerializedName = @"provisioningState", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.ResourceProvisioningState) })] + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.ResourceProvisioningState? ProvisioningState { get; set; } + + } + /// Properties of the private endpoint connection resource. + internal partial interface IPrivateEndpointConnectionPropertiesInternal + + { + /// GroupIds from the private link service resource. + string[] GroupId { get; set; } + /// The Private Endpoint resource for this Connection. + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPrivateEndpoint PrivateEndpoint { get; set; } + /// The ARM identifier for Private Endpoint. + string PrivateEndpointId { get; set; } + /// Details about the state of the connection. + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IConnectionState PrivateLinkServiceConnectionState { get; set; } + /// Actions required (if any). + string PrivateLinkServiceConnectionStateActionsRequired { get; set; } + /// Description of the connection state. + string PrivateLinkServiceConnectionStateDescription { get; set; } + /// Status of the connection. + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.PersistedConnectionStatus? PrivateLinkServiceConnectionStateStatus { get; set; } + /// Provisioning state of the Private Endpoint Connection. + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.ResourceProvisioningState? ProvisioningState { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PrivateEndpointConnectionProperties.json.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PrivateEndpointConnectionProperties.json.cs new file mode 100644 index 000000000000..ac01df26a112 --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PrivateEndpointConnectionProperties.json.cs @@ -0,0 +1,121 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Extensions; + + /// Properties of the private endpoint connection resource. + 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.EventGrid.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json erialization has finished, allowing customization of the before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JSON container that the serialization result will be placed in. + + partial void AfterToJson(ref Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject container); + + /// + /// BeforeFromJson will be called before the json deserialization has commenced, allowing complete customization of + /// the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JsonNode that should be deserialized into this object. + /// Determines if the rest of the deserialization should be processed, or if the method should return + /// instantly. + + partial void BeforeFromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject json, ref bool returnNow); + + /// + /// BeforeToJson will be called before the json serialization has commenced, allowing complete customization of the + /// object before it is serialized. + /// If you wish to disable the default serialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JSON container that the serialization result will be placed in. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeToJson(ref Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPrivateEndpointConnectionProperties. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPrivateEndpointConnectionProperties. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPrivateEndpointConnectionProperties FromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject json ? new PrivateEndpointConnectionProperties(json) : null; + } + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject instance to deserialize from. + internal PrivateEndpointConnectionProperties(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Models.Api20211015Preview.PrivateEndpoint.FromJson(__jsonPrivateEndpoint) : PrivateEndpoint;} + {_privateLinkServiceConnectionState = If( json?.PropertyT("privateLinkServiceConnectionState"), out var __jsonPrivateLinkServiceConnectionState) ? Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ConnectionState.FromJson(__jsonPrivateLinkServiceConnectionState) : PrivateLinkServiceConnectionState;} + {_groupId = If( json?.PropertyT("groupIds"), out var __jsonGroupIds) ? If( __jsonGroupIds as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Runtime.Json.JsonString __t ? (string)(__t.ToString()) : null)) ))() : null : GroupId;} + {_provisioningState = If( json?.PropertyT("provisioningState"), out var __jsonProvisioningState) ? (string)__jsonProvisioningState : (string)ProvisioningState;} + AfterFromJson(json); + } + + /// + /// Serializes this instance of into a . + /// + /// The container to serialize this object into. If the caller + /// passes in null, a new instance will be created and returned to the caller. + /// Allows the caller to choose the depth of the serialization. See . + /// + /// a serialized instance of as a . + /// + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject(); + + bool returnNow = false; + BeforeToJson(ref container, ref returnNow); + if (returnNow) + { + return container; + } + AddIf( null != this._privateEndpoint ? (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode) this._privateEndpoint.ToJson(null,serializationMode) : null, "privateEndpoint" ,container.Add ); + AddIf( null != this._privateLinkServiceConnectionState ? (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode) this._privateLinkServiceConnectionState.ToJson(null,serializationMode) : null, "privateLinkServiceConnectionState" ,container.Add ); + if (null != this._groupId) + { + var __w = new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.XNodeArray(); + foreach( var __x in this._groupId ) + { + AddIf(null != (((object)__x)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonString(__x.ToString()) : null ,__w.Add); + } + container.Add("groupIds",__w); + } + AddIf( null != (((object)this._provisioningState)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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/eventgrid/generated/api/Models/Api20211015Preview/PrivateLinkResource.PowerShell.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PrivateLinkResource.PowerShell.cs new file mode 100644 index 000000000000..07d0f661057b --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PrivateLinkResource.PowerShell.cs @@ -0,0 +1,200 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell; + + /// Information of the 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.EventGrid.Models.Api20211015Preview.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.EventGrid.Models.Api20211015Preview.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.EventGrid.Models.Api20211015Preview.IPrivateLinkResource FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode.Parse(jsonText)); + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + internal PrivateLinkResource(global::System.Collections.IDictionary content) + { + bool returnNow = false; + BeforeDeserializeDictionary(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("Property")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPrivateLinkResourceInternal)this).Property = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPrivateLinkResourceProperties) content.GetValueForProperty("Property",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPrivateLinkResourceInternal)this).Property, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.PrivateLinkResourcePropertiesTypeConverter.ConvertFrom); + } + if (content.Contains("Id")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPrivateLinkResourceInternal)this).Id = (string) content.GetValueForProperty("Id",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPrivateLinkResourceInternal)this).Id, global::System.Convert.ToString); + } + if (content.Contains("Name")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPrivateLinkResourceInternal)this).Name = (string) content.GetValueForProperty("Name",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPrivateLinkResourceInternal)this).Name, global::System.Convert.ToString); + } + if (content.Contains("Type")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPrivateLinkResourceInternal)this).Type = (string) content.GetValueForProperty("Type",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPrivateLinkResourceInternal)this).Type, global::System.Convert.ToString); + } + if (content.Contains("GroupId")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPrivateLinkResourceInternal)this).GroupId = (string) content.GetValueForProperty("GroupId",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPrivateLinkResourceInternal)this).GroupId, global::System.Convert.ToString); + } + if (content.Contains("DisplayName")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPrivateLinkResourceInternal)this).DisplayName = (string) content.GetValueForProperty("DisplayName",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPrivateLinkResourceInternal)this).DisplayName, global::System.Convert.ToString); + } + if (content.Contains("RequiredMember")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPrivateLinkResourceInternal)this).RequiredMember = (string[]) content.GetValueForProperty("RequiredMember",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPrivateLinkResourceInternal)this).RequiredMember, __y => TypeConverterExtensions.SelectToArray(__y, global::System.Convert.ToString)); + } + if (content.Contains("RequiredZoneName")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPrivateLinkResourceInternal)this).RequiredZoneName = (string[]) content.GetValueForProperty("RequiredZoneName",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.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 + if (content.Contains("Property")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPrivateLinkResourceInternal)this).Property = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPrivateLinkResourceProperties) content.GetValueForProperty("Property",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPrivateLinkResourceInternal)this).Property, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.PrivateLinkResourcePropertiesTypeConverter.ConvertFrom); + } + if (content.Contains("Id")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPrivateLinkResourceInternal)this).Id = (string) content.GetValueForProperty("Id",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPrivateLinkResourceInternal)this).Id, global::System.Convert.ToString); + } + if (content.Contains("Name")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPrivateLinkResourceInternal)this).Name = (string) content.GetValueForProperty("Name",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPrivateLinkResourceInternal)this).Name, global::System.Convert.ToString); + } + if (content.Contains("Type")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPrivateLinkResourceInternal)this).Type = (string) content.GetValueForProperty("Type",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPrivateLinkResourceInternal)this).Type, global::System.Convert.ToString); + } + if (content.Contains("GroupId")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPrivateLinkResourceInternal)this).GroupId = (string) content.GetValueForProperty("GroupId",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPrivateLinkResourceInternal)this).GroupId, global::System.Convert.ToString); + } + if (content.Contains("DisplayName")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPrivateLinkResourceInternal)this).DisplayName = (string) content.GetValueForProperty("DisplayName",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPrivateLinkResourceInternal)this).DisplayName, global::System.Convert.ToString); + } + if (content.Contains("RequiredMember")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPrivateLinkResourceInternal)this).RequiredMember = (string[]) content.GetValueForProperty("RequiredMember",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPrivateLinkResourceInternal)this).RequiredMember, __y => TypeConverterExtensions.SelectToArray(__y, global::System.Convert.ToString)); + } + if (content.Contains("RequiredZoneName")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPrivateLinkResourceInternal)this).RequiredZoneName = (string[]) content.GetValueForProperty("RequiredZoneName",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.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.EventGrid.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// Information of the private link resource. + [System.ComponentModel.TypeConverter(typeof(PrivateLinkResourceTypeConverter))] + public partial interface IPrivateLinkResource + + { + + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PrivateLinkResource.TypeConverter.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PrivateLinkResource.TypeConverter.cs new file mode 100644 index 000000000000..84be4984c73d --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PrivateLinkResource.TypeConverter.cs @@ -0,0 +1,147 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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 . + /// + /// the instance to check if it can be converted to the type. + /// + /// true if the instance could be converted to a type, otherwise false + /// + public static bool CanConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return true; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + // we say yest to PSObjects + return true; + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + // we say yest to Hashtables/dictionaries + return true; + } + try + { + if (null != sourceValue.ToJsonString()) + { + return true; + } + } + catch + { + // Not one of our objects + } + try + { + string text = sourceValue.ToString()?.Trim(); + return true == text?.StartsWith("{") && true == text?.EndsWith("}") && Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonType.Object; + } + catch + { + // Doesn't look like it can be treated as JSON + } + return false; + } + + /// + /// Determines if the parameter can be converted to the parameter + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false + /// + public override bool CanConvertTo(object sourceValue, global::System.Type destinationType) => false; + + /// + /// Converts the parameter to the parameter using and + /// + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// + /// an instance of , or null if there is no suitable conversion. + /// + public override object ConvertFrom(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => ConvertFrom(sourceValue); + + /// + /// Converts the parameter to the parameter using and + /// + /// the value to convert into an instance of . + /// + /// an instance of , or null if there is no suitable conversion. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPrivateLinkResource ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.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/eventgrid/generated/api/Models/Api20211015Preview/PrivateLinkResource.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PrivateLinkResource.cs new file mode 100644 index 000000000000..c983b963ff50 --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PrivateLinkResource.cs @@ -0,0 +1,147 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Extensions; + + /// Information of the private link resource. + public partial class PrivateLinkResource : + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPrivateLinkResource, + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPrivateLinkResourceInternal + { + + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Inlined)] + public string DisplayName { get => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPrivateLinkResourcePropertiesInternal)Property).DisplayName; set => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPrivateLinkResourcePropertiesInternal)Property).DisplayName = value ?? null; } + + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Inlined)] + public string GroupId { get => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPrivateLinkResourcePropertiesInternal)Property).GroupId; set => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPrivateLinkResourcePropertiesInternal)Property).GroupId = value ?? null; } + + /// Backing field for property. + private string _id; + + /// Fully qualified identifier of the resource. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Owned)] + public string Id { get => this._id; set => this._id = value; } + + /// Internal Acessors for Property + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPrivateLinkResourceProperties Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPrivateLinkResourceInternal.Property { get => (this._property = this._property ?? new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.PrivateLinkResourceProperties()); set { {_property = value;} } } + + /// Backing field for property. + private string _name; + + /// Name of the resource. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Owned)] + public string Name { get => this._name; set => this._name = value; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPrivateLinkResourceProperties _property; + + /// Properties of the private link resource. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Owned)] + internal Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPrivateLinkResourceProperties Property { get => (this._property = this._property ?? new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.PrivateLinkResourceProperties()); set => this._property = value; } + + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Inlined)] + public string[] RequiredMember { get => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPrivateLinkResourcePropertiesInternal)Property).RequiredMember; set => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPrivateLinkResourcePropertiesInternal)Property).RequiredMember = value ?? null /* arrayOf */; } + + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Inlined)] + public string[] RequiredZoneName { get => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPrivateLinkResourcePropertiesInternal)Property).RequiredZoneName; set => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPrivateLinkResourcePropertiesInternal)Property).RequiredZoneName = value ?? null /* arrayOf */; } + + /// Backing field for property. + private string _type; + + /// Type of the resource. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Owned)] + public string Type { get => this._type; set => this._type = value; } + + /// Creates an new instance. + public PrivateLinkResource() + { + + } + } + /// Information of the private link resource. + public partial interface IPrivateLinkResource : + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IJsonSerializable + { + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"", + SerializedName = @"displayName", + PossibleTypes = new [] { typeof(string) })] + string DisplayName { get; set; } + + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"", + SerializedName = @"groupId", + PossibleTypes = new [] { typeof(string) })] + string GroupId { get; set; } + /// Fully qualified identifier of the resource. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Fully qualified identifier of the resource.", + SerializedName = @"id", + PossibleTypes = new [] { typeof(string) })] + string Id { get; set; } + /// Name of the resource. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Name of the resource.", + SerializedName = @"name", + PossibleTypes = new [] { typeof(string) })] + string Name { get; set; } + + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"", + SerializedName = @"requiredMembers", + PossibleTypes = new [] { typeof(string) })] + string[] RequiredMember { get; set; } + + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"", + SerializedName = @"requiredZoneNames", + PossibleTypes = new [] { typeof(string) })] + string[] RequiredZoneName { get; set; } + /// Type of the resource. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Type of the resource.", + SerializedName = @"type", + PossibleTypes = new [] { typeof(string) })] + string Type { get; set; } + + } + /// Information of the private link resource. + internal partial interface IPrivateLinkResourceInternal + + { + string DisplayName { get; set; } + + string GroupId { get; set; } + /// Fully qualified identifier of the resource. + string Id { get; set; } + /// Name of the resource. + string Name { get; set; } + /// Properties of the private link resource. + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPrivateLinkResourceProperties Property { get; set; } + + string[] RequiredMember { get; set; } + + string[] RequiredZoneName { get; set; } + /// Type of the resource. + string Type { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PrivateLinkResource.json.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PrivateLinkResource.json.cs new file mode 100644 index 000000000000..820bae8818e2 --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PrivateLinkResource.json.cs @@ -0,0 +1,112 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Extensions; + + /// Information of the 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.EventGrid.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json erialization has finished, allowing customization of the before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JSON container that the serialization result will be placed in. + + partial void AfterToJson(ref Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject container); + + /// + /// BeforeFromJson will be called before the json deserialization has commenced, allowing complete customization of + /// the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JsonNode that should be deserialized into this object. + /// Determines if the rest of the deserialization should be processed, or if the method should return + /// instantly. + + partial void BeforeFromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject json, ref bool returnNow); + + /// + /// BeforeToJson will be called before the json serialization has commenced, allowing complete customization of the + /// object before it is serialized. + /// If you wish to disable the default serialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JSON container that the serialization result will be placed in. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeToJson(ref Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPrivateLinkResource. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPrivateLinkResource. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPrivateLinkResource FromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject json ? new PrivateLinkResource(json) : null; + } + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject instance to deserialize from. + internal PrivateLinkResource(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Models.Api20211015Preview.PrivateLinkResourceProperties.FromJson(__jsonProperties) : Property;} + {_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.EventGrid.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject(); + + bool returnNow = false; + BeforeToJson(ref container, ref returnNow); + if (returnNow) + { + return container; + } + AddIf( null != this._property ? (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode) this._property.ToJson(null,serializationMode) : null, "properties" ,container.Add ); + AddIf( null != (((object)this._id)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonString(this._id.ToString()) : null, "id" ,container.Add ); + AddIf( null != (((object)this._name)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonString(this._name.ToString()) : null, "name" ,container.Add ); + AddIf( null != (((object)this._type)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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/eventgrid/generated/api/Models/Api20211015Preview/PrivateLinkResourceProperties.PowerShell.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PrivateLinkResourceProperties.PowerShell.cs new file mode 100644 index 000000000000..963c3bb6b434 --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PrivateLinkResourceProperties.PowerShell.cs @@ -0,0 +1,166 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell; + + [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.EventGrid.Models.Api20211015Preview.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.EventGrid.Models.Api20211015Preview.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.EventGrid.Models.Api20211015Preview.IPrivateLinkResourceProperties FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode.Parse(jsonText)); + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + internal PrivateLinkResourceProperties(global::System.Collections.IDictionary content) + { + bool returnNow = false; + BeforeDeserializeDictionary(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("GroupId")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPrivateLinkResourcePropertiesInternal)this).GroupId = (string) content.GetValueForProperty("GroupId",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPrivateLinkResourcePropertiesInternal)this).GroupId, global::System.Convert.ToString); + } + if (content.Contains("DisplayName")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPrivateLinkResourcePropertiesInternal)this).DisplayName = (string) content.GetValueForProperty("DisplayName",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPrivateLinkResourcePropertiesInternal)this).DisplayName, global::System.Convert.ToString); + } + if (content.Contains("RequiredMember")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPrivateLinkResourcePropertiesInternal)this).RequiredMember = (string[]) content.GetValueForProperty("RequiredMember",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPrivateLinkResourcePropertiesInternal)this).RequiredMember, __y => TypeConverterExtensions.SelectToArray(__y, global::System.Convert.ToString)); + } + if (content.Contains("RequiredZoneName")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPrivateLinkResourcePropertiesInternal)this).RequiredZoneName = (string[]) content.GetValueForProperty("RequiredZoneName",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPrivateLinkResourcePropertiesInternal)this).RequiredZoneName, __y => TypeConverterExtensions.SelectToArray(__y, global::System.Convert.ToString)); + } + AfterDeserializeDictionary(content); + } + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + internal PrivateLinkResourceProperties(global::System.Management.Automation.PSObject content) + { + bool returnNow = false; + BeforeDeserializePSObject(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("GroupId")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPrivateLinkResourcePropertiesInternal)this).GroupId = (string) content.GetValueForProperty("GroupId",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPrivateLinkResourcePropertiesInternal)this).GroupId, global::System.Convert.ToString); + } + if (content.Contains("DisplayName")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPrivateLinkResourcePropertiesInternal)this).DisplayName = (string) content.GetValueForProperty("DisplayName",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPrivateLinkResourcePropertiesInternal)this).DisplayName, global::System.Convert.ToString); + } + if (content.Contains("RequiredMember")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPrivateLinkResourcePropertiesInternal)this).RequiredMember = (string[]) content.GetValueForProperty("RequiredMember",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPrivateLinkResourcePropertiesInternal)this).RequiredMember, __y => TypeConverterExtensions.SelectToArray(__y, global::System.Convert.ToString)); + } + if (content.Contains("RequiredZoneName")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPrivateLinkResourcePropertiesInternal)this).RequiredZoneName = (string[]) content.GetValueForProperty("RequiredZoneName",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.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.EventGrid.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + [System.ComponentModel.TypeConverter(typeof(PrivateLinkResourcePropertiesTypeConverter))] + public partial interface IPrivateLinkResourceProperties + + { + + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PrivateLinkResourceProperties.TypeConverter.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PrivateLinkResourceProperties.TypeConverter.cs new file mode 100644 index 000000000000..44ab80f0a0e4 --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PrivateLinkResourceProperties.TypeConverter.cs @@ -0,0 +1,147 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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 . + /// + /// the instance to check if it can be converted to the type. + /// + /// true if the instance could be converted to a type, otherwise false + /// + public static bool CanConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return true; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + // we say yest to PSObjects + return true; + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + // we say yest to Hashtables/dictionaries + return true; + } + try + { + if (null != sourceValue.ToJsonString()) + { + return true; + } + } + catch + { + // Not one of our objects + } + try + { + string text = sourceValue.ToString()?.Trim(); + return true == text?.StartsWith("{") && true == text?.EndsWith("}") && Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonType.Object; + } + catch + { + // Doesn't look like it can be treated as JSON + } + return false; + } + + /// + /// Determines if the parameter can be converted to the parameter + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false + /// + public override bool CanConvertTo(object sourceValue, global::System.Type destinationType) => false; + + /// + /// Converts the parameter to the parameter using and + /// + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// + /// an instance of , or null if there is no suitable conversion. + /// + public override object ConvertFrom(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => ConvertFrom(sourceValue); + + /// + /// Converts the parameter to the parameter using and + /// + /// the value to convert into an instance of . + /// + /// an instance of , or null if there is no suitable conversion. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPrivateLinkResourceProperties ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.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/eventgrid/generated/api/Models/Api20211015Preview/PrivateLinkResourceProperties.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PrivateLinkResourceProperties.cs new file mode 100644 index 000000000000..1c443b8d21bb --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PrivateLinkResourceProperties.cs @@ -0,0 +1,93 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Extensions; + + public partial class PrivateLinkResourceProperties : + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPrivateLinkResourceProperties, + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPrivateLinkResourcePropertiesInternal + { + + /// Backing field for property. + private string _displayName; + + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Owned)] + public string DisplayName { get => this._displayName; set => this._displayName = value; } + + /// Backing field for property. + private string _groupId; + + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Owned)] + public string GroupId { get => this._groupId; set => this._groupId = value; } + + /// Backing field for property. + private string[] _requiredMember; + + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Owned)] + public string[] RequiredMember { get => this._requiredMember; set => this._requiredMember = value; } + + /// Backing field for property. + private string[] _requiredZoneName; + + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Owned)] + public string[] RequiredZoneName { get => this._requiredZoneName; set => this._requiredZoneName = value; } + + /// Creates an new instance. + public PrivateLinkResourceProperties() + { + + } + } + public partial interface IPrivateLinkResourceProperties : + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IJsonSerializable + { + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"", + SerializedName = @"displayName", + PossibleTypes = new [] { typeof(string) })] + string DisplayName { get; set; } + + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"", + SerializedName = @"groupId", + PossibleTypes = new [] { typeof(string) })] + string GroupId { get; set; } + + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"", + SerializedName = @"requiredMembers", + PossibleTypes = new [] { typeof(string) })] + string[] RequiredMember { get; set; } + + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"", + SerializedName = @"requiredZoneNames", + PossibleTypes = new [] { typeof(string) })] + string[] RequiredZoneName { get; set; } + + } + internal partial interface IPrivateLinkResourcePropertiesInternal + + { + string DisplayName { get; set; } + + string GroupId { get; set; } + + string[] RequiredMember { get; set; } + + string[] RequiredZoneName { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PrivateLinkResourceProperties.json.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PrivateLinkResourceProperties.json.cs new file mode 100644 index 000000000000..12f3623d57eb --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PrivateLinkResourceProperties.json.cs @@ -0,0 +1,127 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Extensions; + + 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.EventGrid.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json erialization has finished, allowing customization of the before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JSON container that the serialization result will be placed in. + + partial void AfterToJson(ref Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject container); + + /// + /// BeforeFromJson will be called before the json deserialization has commenced, allowing complete customization of + /// the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JsonNode that should be deserialized into this object. + /// Determines if the rest of the deserialization should be processed, or if the method should return + /// instantly. + + partial void BeforeFromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject json, ref bool returnNow); + + /// + /// BeforeToJson will be called before the json serialization has commenced, allowing complete customization of the + /// object before it is serialized. + /// If you wish to disable the default serialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JSON container that the serialization result will be placed in. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeToJson(ref Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPrivateLinkResourceProperties. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPrivateLinkResourceProperties. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPrivateLinkResourceProperties FromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject json ? new PrivateLinkResourceProperties(json) : null; + } + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject instance to deserialize from. + internal PrivateLinkResourceProperties(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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;} + {_displayName = If( json?.PropertyT("displayName"), out var __jsonDisplayName) ? (string)__jsonDisplayName : (string)DisplayName;} + {_requiredMember = If( json?.PropertyT("requiredMembers"), out var __jsonRequiredMembers) ? If( __jsonRequiredMembers as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.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.EventGrid.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.EventGrid.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.EventGrid.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject(); + + bool returnNow = false; + BeforeToJson(ref container, ref returnNow); + if (returnNow) + { + return container; + } + AddIf( null != (((object)this._groupId)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonString(this._groupId.ToString()) : null, "groupId" ,container.Add ); + AddIf( null != (((object)this._displayName)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonString(this._displayName.ToString()) : null, "displayName" ,container.Add ); + if (null != this._requiredMember) + { + var __w = new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.XNodeArray(); + foreach( var __x in this._requiredMember ) + { + AddIf(null != (((object)__x)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonString(__x.ToString()) : null ,__w.Add); + } + container.Add("requiredMembers",__w); + } + if (null != this._requiredZoneName) + { + var __r = new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.XNodeArray(); + foreach( var __s in this._requiredZoneName ) + { + AddIf(null != (((object)__s)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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/eventgrid/generated/api/Models/Api20211015Preview/PrivateLinkResourcesListResult.PowerShell.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PrivateLinkResourcesListResult.PowerShell.cs new file mode 100644 index 000000000000..02c19ca9cc20 --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PrivateLinkResourcesListResult.PowerShell.cs @@ -0,0 +1,152 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell; + + /// Result of the List private link resources operation. + [System.ComponentModel.TypeConverter(typeof(PrivateLinkResourcesListResultTypeConverter))] + public partial class PrivateLinkResourcesListResult + { + + /// + /// AfterDeserializeDictionary will be called after the deserialization has finished, allowing customization of the + /// object before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Collections.IDictionary content that should be used. + + partial void AfterDeserializeDictionary(global::System.Collections.IDictionary content); + + /// + /// AfterDeserializePSObject will be called after the deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Management.Automation.PSObject content that should be used. + + partial void AfterDeserializePSObject(global::System.Management.Automation.PSObject content); + + /// + /// BeforeDeserializeDictionary will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Collections.IDictionary content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializeDictionary(global::System.Collections.IDictionary content, ref bool returnNow); + + /// + /// BeforeDeserializePSObject will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializePSObject(global::System.Management.Automation.PSObject content, ref bool returnNow); + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPrivateLinkResourcesListResult DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new PrivateLinkResourcesListResult(content); + } + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPrivateLinkResourcesListResult DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new PrivateLinkResourcesListResult(content); + } + + /// + /// Creates a new instance of , deserializing the content from a json string. + /// + /// a string containing a JSON serialized instance of this model. + /// an instance of the model class. + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPrivateLinkResourcesListResult FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode.Parse(jsonText)); + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + internal PrivateLinkResourcesListResult(global::System.Collections.IDictionary content) + { + bool returnNow = false; + BeforeDeserializeDictionary(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("Value")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPrivateLinkResourcesListResultInternal)this).Value = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPrivateLinkResource[]) content.GetValueForProperty("Value",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPrivateLinkResourcesListResultInternal)this).Value, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.PrivateLinkResourceTypeConverter.ConvertFrom)); + } + if (content.Contains("NextLink")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPrivateLinkResourcesListResultInternal)this).NextLink = (string) content.GetValueForProperty("NextLink",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPrivateLinkResourcesListResultInternal)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 PrivateLinkResourcesListResult(global::System.Management.Automation.PSObject content) + { + bool returnNow = false; + BeforeDeserializePSObject(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("Value")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPrivateLinkResourcesListResultInternal)this).Value = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPrivateLinkResource[]) content.GetValueForProperty("Value",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPrivateLinkResourcesListResultInternal)this).Value, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.PrivateLinkResourceTypeConverter.ConvertFrom)); + } + if (content.Contains("NextLink")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPrivateLinkResourcesListResultInternal)this).NextLink = (string) content.GetValueForProperty("NextLink",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPrivateLinkResourcesListResultInternal)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.EventGrid.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// Result of the List private link resources operation. + [System.ComponentModel.TypeConverter(typeof(PrivateLinkResourcesListResultTypeConverter))] + public partial interface IPrivateLinkResourcesListResult + + { + + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PrivateLinkResourcesListResult.TypeConverter.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PrivateLinkResourcesListResult.TypeConverter.cs new file mode 100644 index 000000000000..9dd541f2171b --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PrivateLinkResourcesListResult.TypeConverter.cs @@ -0,0 +1,147 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class PrivateLinkResourcesListResultTypeConverter : global::System.Management.Automation.PSTypeConverter + { + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false. + /// + public override bool CanConvertFrom(object sourceValue, global::System.Type destinationType) => CanConvertFrom(sourceValue); + + /// + /// Determines if the converter can convert the parameter to the . + /// + /// the instance to check if it can be converted to the type. + /// + /// true if the instance could be converted to a type, otherwise false + /// + public static bool CanConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return true; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + // we say yest to PSObjects + return true; + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + // we say yest to Hashtables/dictionaries + return true; + } + try + { + if (null != sourceValue.ToJsonString()) + { + return true; + } + } + catch + { + // Not one of our objects + } + try + { + string text = sourceValue.ToString()?.Trim(); + return true == text?.StartsWith("{") && true == text?.EndsWith("}") && Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonType.Object; + } + catch + { + // Doesn't look like it can be treated as JSON + } + return false; + } + + /// + /// Determines if the parameter can be converted to the parameter + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false + /// + public override bool CanConvertTo(object sourceValue, global::System.Type destinationType) => false; + + /// + /// Converts the parameter to the parameter using and + /// + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// + /// an instance of , or null if there is no suitable conversion. + /// + public override object ConvertFrom(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => ConvertFrom(sourceValue); + + /// + /// Converts the parameter to the parameter using and + /// + /// the value to convert into an instance of . + /// + /// an instance of , or null if there is no suitable conversion. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPrivateLinkResourcesListResult ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPrivateLinkResourcesListResult).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return PrivateLinkResourcesListResult.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return PrivateLinkResourcesListResult.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return PrivateLinkResourcesListResult.DeserializeFromDictionary(sourceValue); + } + return null; + } + + /// NotImplemented -- this will return null + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// will always return null. + public override object ConvertTo(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => null; + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PrivateLinkResourcesListResult.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PrivateLinkResourcesListResult.cs new file mode 100644 index 000000000000..d52543fe65e9 --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PrivateLinkResourcesListResult.cs @@ -0,0 +1,68 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Extensions; + + /// Result of the List private link resources operation. + public partial class PrivateLinkResourcesListResult : + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPrivateLinkResourcesListResult, + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPrivateLinkResourcesListResultInternal + { + + /// Backing field for property. + private string _nextLink; + + /// A link for the next page of private link resources. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Owned)] + public string NextLink { get => this._nextLink; set => this._nextLink = value; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPrivateLinkResource[] _value; + + /// A collection of private link resources + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Owned)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPrivateLinkResource[] Value { get => this._value; set => this._value = value; } + + /// Creates an new instance. + public PrivateLinkResourcesListResult() + { + + } + } + /// Result of the List private link resources operation. + public partial interface IPrivateLinkResourcesListResult : + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IJsonSerializable + { + /// A link for the next page of private link resources. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"A link for the next page of private link resources.", + SerializedName = @"nextLink", + PossibleTypes = new [] { typeof(string) })] + string NextLink { get; set; } + /// A collection of private link resources + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"A collection of private link resources", + SerializedName = @"value", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPrivateLinkResource) })] + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPrivateLinkResource[] Value { get; set; } + + } + /// Result of the List private link resources operation. + internal partial interface IPrivateLinkResourcesListResultInternal + + { + /// A link for the next page of private link resources. + string NextLink { get; set; } + /// A collection of private link resources + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPrivateLinkResource[] Value { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PrivateLinkResourcesListResult.json.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PrivateLinkResourcesListResult.json.cs new file mode 100644 index 000000000000..1ee7aa5ab512 --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/PrivateLinkResourcesListResult.json.cs @@ -0,0 +1,116 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Extensions; + + /// Result of the List private link resources operation. + public partial class PrivateLinkResourcesListResult + { + + /// + /// AfterFromJson will be called after the json deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JsonNode that should be deserialized into this object. + + partial void AfterFromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json erialization has finished, allowing customization of the before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JSON container that the serialization result will be placed in. + + partial void AfterToJson(ref Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject container); + + /// + /// BeforeFromJson will be called before the json deserialization has commenced, allowing complete customization of + /// the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JsonNode that should be deserialized into this object. + /// Determines if the rest of the deserialization should be processed, or if the method should return + /// instantly. + + partial void BeforeFromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject json, ref bool returnNow); + + /// + /// BeforeToJson will be called before the json serialization has commenced, allowing complete customization of the + /// object before it is serialized. + /// If you wish to disable the default serialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JSON container that the serialization result will be placed in. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeToJson(ref Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPrivateLinkResourcesListResult. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPrivateLinkResourcesListResult. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPrivateLinkResourcesListResult FromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject json ? new PrivateLinkResourcesListResult(json) : null; + } + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject instance to deserialize from. + internal PrivateLinkResourcesListResult(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.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.EventGrid.Models.Api20211015Preview.IPrivateLinkResource) (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.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.EventGrid.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Runtime.Json.XNodeArray(); + foreach( var __x in this._value ) + { + AddIf(__x?.ToJson(null, serializationMode) ,__w.Add); + } + container.Add("value",__w); + } + AddIf( null != (((object)this._nextLink)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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/eventgrid/generated/api/Models/Api20211015Preview/Resource.PowerShell.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/Resource.PowerShell.cs new file mode 100644 index 000000000000..373787ecdd4a --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/Resource.PowerShell.cs @@ -0,0 +1,158 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell; + + /// Definition of a Resource + [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.EventGrid.Models.Api20211015Preview.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.EventGrid.Models.Api20211015Preview.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.EventGrid.Models.Api20211015Preview.IResource FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode.Parse(jsonText)); + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + internal Resource(global::System.Collections.IDictionary content) + { + bool returnNow = false; + BeforeDeserializeDictionary(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("Id")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IResourceInternal)this).Id = (string) content.GetValueForProperty("Id",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IResourceInternal)this).Id, global::System.Convert.ToString); + } + if (content.Contains("Name")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IResourceInternal)this).Name = (string) content.GetValueForProperty("Name",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IResourceInternal)this).Name, global::System.Convert.ToString); + } + if (content.Contains("Type")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IResourceInternal)this).Type = (string) content.GetValueForProperty("Type",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IResourceInternal)this).Type, global::System.Convert.ToString); + } + AfterDeserializeDictionary(content); + } + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + internal Resource(global::System.Management.Automation.PSObject content) + { + bool returnNow = false; + BeforeDeserializePSObject(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("Id")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IResourceInternal)this).Id = (string) content.GetValueForProperty("Id",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IResourceInternal)this).Id, global::System.Convert.ToString); + } + if (content.Contains("Name")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IResourceInternal)this).Name = (string) content.GetValueForProperty("Name",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IResourceInternal)this).Name, global::System.Convert.ToString); + } + if (content.Contains("Type")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IResourceInternal)this).Type = (string) content.GetValueForProperty("Type",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.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.EventGrid.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// Definition of a Resource + [System.ComponentModel.TypeConverter(typeof(ResourceTypeConverter))] + public partial interface IResource + + { + + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/Resource.TypeConverter.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/Resource.TypeConverter.cs new file mode 100644 index 000000000000..fef0efb4da75 --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/Resource.TypeConverter.cs @@ -0,0 +1,146 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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 . + /// + /// the instance to check if it can be converted to the type. + /// + /// true if the instance could be converted to a type, otherwise false + /// + public static bool CanConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return true; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + // we say yest to PSObjects + return true; + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + // we say yest to Hashtables/dictionaries + return true; + } + try + { + if (null != sourceValue.ToJsonString()) + { + return true; + } + } + catch + { + // Not one of our objects + } + try + { + string text = sourceValue.ToString()?.Trim(); + return true == text?.StartsWith("{") && true == text?.EndsWith("}") && Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonType.Object; + } + catch + { + // Doesn't look like it can be treated as JSON + } + return false; + } + + /// + /// Determines if the parameter can be converted to the parameter + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false + /// + public override bool CanConvertTo(object sourceValue, global::System.Type destinationType) => false; + + /// + /// Converts the parameter to the parameter using and + /// + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// + /// an instance of , or null if there is no suitable conversion. + /// + public override object ConvertFrom(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => ConvertFrom(sourceValue); + + /// + /// Converts the parameter to the parameter using and + /// + /// the value to convert into an instance of . + /// + /// an instance of , or null if there is no suitable conversion. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IResource ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.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/eventgrid/generated/api/Models/Api20211015Preview/Resource.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/Resource.cs new file mode 100644 index 000000000000..7928bf858905 --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/Resource.cs @@ -0,0 +1,94 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Extensions; + + /// Definition of a Resource + public partial class Resource : + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IResource, + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IResourceInternal + { + + /// Backing field for property. + private string _id; + + /// Fully qualified identifier of the resource. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Owned)] + public string Id { get => this._id; } + + /// Internal Acessors for Id + string Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IResourceInternal.Id { get => this._id; set { {_id = value;} } } + + /// Internal Acessors for Name + string Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IResourceInternal.Name { get => this._name; set { {_name = value;} } } + + /// Internal Acessors for Type + string Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IResourceInternal.Type { get => this._type; set { {_type = value;} } } + + /// Backing field for property. + private string _name; + + /// Name of the resource. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Owned)] + public string Name { get => this._name; } + + /// Backing field for property. + private string _type; + + /// Type of the resource. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Owned)] + public string Type { get => this._type; } + + /// Creates an new instance. + public Resource() + { + + } + } + /// Definition of a Resource + public partial interface IResource : + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IJsonSerializable + { + /// Fully qualified identifier of the resource. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"Fully qualified identifier of the resource.", + SerializedName = @"id", + PossibleTypes = new [] { typeof(string) })] + string Id { get; } + /// Name of the resource. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"Name of the resource.", + SerializedName = @"name", + PossibleTypes = new [] { typeof(string) })] + string Name { get; } + /// Type of the resource. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"Type of the resource.", + SerializedName = @"type", + PossibleTypes = new [] { typeof(string) })] + string Type { get; } + + } + /// Definition of a Resource + internal partial interface IResourceInternal + + { + /// Fully qualified identifier of the resource. + string Id { get; set; } + /// Name of the resource. + string Name { get; set; } + /// Type of the resource. + string Type { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/Resource.json.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/Resource.json.cs new file mode 100644 index 000000000000..8c3edf11db5d --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/Resource.json.cs @@ -0,0 +1,119 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Extensions; + + /// Definition of a Resource + 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.EventGrid.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json erialization has finished, allowing customization of the before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JSON container that the serialization result will be placed in. + + partial void AfterToJson(ref Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject container); + + /// + /// BeforeFromJson will be called before the json deserialization has commenced, allowing complete customization of + /// the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JsonNode that should be deserialized into this object. + /// Determines if the rest of the deserialization should be processed, or if the method should return + /// instantly. + + partial void BeforeFromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject json, ref bool returnNow); + + /// + /// BeforeToJson will be called before the json serialization has commenced, allowing complete customization of the + /// object before it is serialized. + /// If you wish to disable the default serialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JSON container that the serialization result will be placed in. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeToJson(ref Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IResource. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IResource. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IResource FromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject json ? new Resource(json) : null; + } + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject instance to deserialize from. + internal Resource(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject(); + + bool returnNow = false; + BeforeToJson(ref container, ref returnNow); + if (returnNow) + { + return container; + } + if (serializationMode.HasFlag(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SerializationMode.IncludeReadOnly)) + { + AddIf( null != (((object)this._id)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonString(this._id.ToString()) : null, "id" ,container.Add ); + } + if (serializationMode.HasFlag(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SerializationMode.IncludeReadOnly)) + { + AddIf( null != (((object)this._name)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonString(this._name.ToString()) : null, "name" ,container.Add ); + } + if (serializationMode.HasFlag(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SerializationMode.IncludeReadOnly)) + { + AddIf( null != (((object)this._type)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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/eventgrid/generated/api/Models/Api20211015Preview/ResourceMoveChangeHistory.PowerShell.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/ResourceMoveChangeHistory.PowerShell.cs new file mode 100644 index 000000000000..d1f66a5fd109 --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/ResourceMoveChangeHistory.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.EventGrid.Models.Api20211015Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell; + + /// The change history of the resource move. + [System.ComponentModel.TypeConverter(typeof(ResourceMoveChangeHistoryTypeConverter))] + public partial class ResourceMoveChangeHistory + { + + /// + /// AfterDeserializeDictionary will be called after the deserialization has finished, allowing customization of the + /// object before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Collections.IDictionary content that should be used. + + partial void AfterDeserializeDictionary(global::System.Collections.IDictionary content); + + /// + /// AfterDeserializePSObject will be called after the deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Management.Automation.PSObject content that should be used. + + partial void AfterDeserializePSObject(global::System.Management.Automation.PSObject content); + + /// + /// BeforeDeserializeDictionary will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Collections.IDictionary content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializeDictionary(global::System.Collections.IDictionary content, ref bool returnNow); + + /// + /// BeforeDeserializePSObject will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializePSObject(global::System.Management.Automation.PSObject content, ref bool returnNow); + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IResourceMoveChangeHistory DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new ResourceMoveChangeHistory(content); + } + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IResourceMoveChangeHistory DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new ResourceMoveChangeHistory(content); + } + + /// + /// Creates a new instance of , deserializing the content from a json string. + /// + /// a string containing a JSON serialized instance of this model. + /// an instance of the model class. + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IResourceMoveChangeHistory FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode.Parse(jsonText)); + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + internal ResourceMoveChangeHistory(global::System.Collections.IDictionary content) + { + bool returnNow = false; + BeforeDeserializeDictionary(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("AzureSubscriptionId")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IResourceMoveChangeHistoryInternal)this).AzureSubscriptionId = (string) content.GetValueForProperty("AzureSubscriptionId",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IResourceMoveChangeHistoryInternal)this).AzureSubscriptionId, global::System.Convert.ToString); + } + if (content.Contains("ResourceGroupName")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IResourceMoveChangeHistoryInternal)this).ResourceGroupName = (string) content.GetValueForProperty("ResourceGroupName",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IResourceMoveChangeHistoryInternal)this).ResourceGroupName, global::System.Convert.ToString); + } + if (content.Contains("ChangedTimeUtc")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IResourceMoveChangeHistoryInternal)this).ChangedTimeUtc = (global::System.DateTime?) content.GetValueForProperty("ChangedTimeUtc",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IResourceMoveChangeHistoryInternal)this).ChangedTimeUtc, (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 ResourceMoveChangeHistory(global::System.Management.Automation.PSObject content) + { + bool returnNow = false; + BeforeDeserializePSObject(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("AzureSubscriptionId")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IResourceMoveChangeHistoryInternal)this).AzureSubscriptionId = (string) content.GetValueForProperty("AzureSubscriptionId",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IResourceMoveChangeHistoryInternal)this).AzureSubscriptionId, global::System.Convert.ToString); + } + if (content.Contains("ResourceGroupName")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IResourceMoveChangeHistoryInternal)this).ResourceGroupName = (string) content.GetValueForProperty("ResourceGroupName",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IResourceMoveChangeHistoryInternal)this).ResourceGroupName, global::System.Convert.ToString); + } + if (content.Contains("ChangedTimeUtc")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IResourceMoveChangeHistoryInternal)this).ChangedTimeUtc = (global::System.DateTime?) content.GetValueForProperty("ChangedTimeUtc",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IResourceMoveChangeHistoryInternal)this).ChangedTimeUtc, (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.EventGrid.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// The change history of the resource move. + [System.ComponentModel.TypeConverter(typeof(ResourceMoveChangeHistoryTypeConverter))] + public partial interface IResourceMoveChangeHistory + + { + + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/ResourceMoveChangeHistory.TypeConverter.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/ResourceMoveChangeHistory.TypeConverter.cs new file mode 100644 index 000000000000..e7184fb1b90e --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/ResourceMoveChangeHistory.TypeConverter.cs @@ -0,0 +1,147 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class ResourceMoveChangeHistoryTypeConverter : global::System.Management.Automation.PSTypeConverter + { + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false. + /// + public override bool CanConvertFrom(object sourceValue, global::System.Type destinationType) => CanConvertFrom(sourceValue); + + /// + /// Determines if the converter can convert the parameter to the . + /// + /// the instance to check if it can be converted to the type. + /// + /// true if the instance could be converted to a type, otherwise false + /// + public static bool CanConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return true; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + // we say yest to PSObjects + return true; + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + // we say yest to Hashtables/dictionaries + return true; + } + try + { + if (null != sourceValue.ToJsonString()) + { + return true; + } + } + catch + { + // Not one of our objects + } + try + { + string text = sourceValue.ToString()?.Trim(); + return true == text?.StartsWith("{") && true == text?.EndsWith("}") && Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonType.Object; + } + catch + { + // Doesn't look like it can be treated as JSON + } + return false; + } + + /// + /// Determines if the parameter can be converted to the parameter + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false + /// + public override bool CanConvertTo(object sourceValue, global::System.Type destinationType) => false; + + /// + /// Converts the parameter to the parameter using and + /// + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// + /// an instance of , or null if there is no suitable conversion. + /// + public override object ConvertFrom(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => ConvertFrom(sourceValue); + + /// + /// Converts the parameter to the parameter using and + /// + /// the value to convert into an instance of . + /// + /// an instance of , or null if there is no suitable conversion. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IResourceMoveChangeHistory ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IResourceMoveChangeHistory).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return ResourceMoveChangeHistory.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return ResourceMoveChangeHistory.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return ResourceMoveChangeHistory.DeserializeFromDictionary(sourceValue); + } + return null; + } + + /// NotImplemented -- this will return null + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// will always return null. + public override object ConvertTo(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => null; + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/ResourceMoveChangeHistory.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/ResourceMoveChangeHistory.cs new file mode 100644 index 000000000000..9b1361a91d64 --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/ResourceMoveChangeHistory.cs @@ -0,0 +1,85 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Extensions; + + /// The change history of the resource move. + public partial class ResourceMoveChangeHistory : + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IResourceMoveChangeHistory, + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IResourceMoveChangeHistoryInternal + { + + /// Backing field for property. + private string _azureSubscriptionId; + + /// Azure subscription ID of the resource. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Owned)] + public string AzureSubscriptionId { get => this._azureSubscriptionId; set => this._azureSubscriptionId = value; } + + /// Backing field for property. + private global::System.DateTime? _changedTimeUtc; + + /// UTC timestamp of when the resource was changed. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Owned)] + public global::System.DateTime? ChangedTimeUtc { get => this._changedTimeUtc; set => this._changedTimeUtc = value; } + + /// Backing field for property. + private string _resourceGroupName; + + /// Azure Resource Group of the resource. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Owned)] + public string ResourceGroupName { get => this._resourceGroupName; set => this._resourceGroupName = value; } + + /// Creates an new instance. + public ResourceMoveChangeHistory() + { + + } + } + /// The change history of the resource move. + public partial interface IResourceMoveChangeHistory : + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IJsonSerializable + { + /// Azure subscription ID of the resource. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Azure subscription ID of the resource.", + SerializedName = @"azureSubscriptionId", + PossibleTypes = new [] { typeof(string) })] + string AzureSubscriptionId { get; set; } + /// UTC timestamp of when the resource was changed. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"UTC timestamp of when the resource was changed.", + SerializedName = @"changedTimeUtc", + PossibleTypes = new [] { typeof(global::System.DateTime) })] + global::System.DateTime? ChangedTimeUtc { get; set; } + /// Azure Resource Group of the resource. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Azure Resource Group of the resource.", + SerializedName = @"resourceGroupName", + PossibleTypes = new [] { typeof(string) })] + string ResourceGroupName { get; set; } + + } + /// The change history of the resource move. + internal partial interface IResourceMoveChangeHistoryInternal + + { + /// Azure subscription ID of the resource. + string AzureSubscriptionId { get; set; } + /// UTC timestamp of when the resource was changed. + global::System.DateTime? ChangedTimeUtc { get; set; } + /// Azure Resource Group of the resource. + string ResourceGroupName { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/ResourceMoveChangeHistory.json.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/ResourceMoveChangeHistory.json.cs new file mode 100644 index 000000000000..345c2ff951e2 --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/ResourceMoveChangeHistory.json.cs @@ -0,0 +1,110 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Extensions; + + /// The change history of the resource move. + public partial class ResourceMoveChangeHistory + { + + /// + /// AfterFromJson will be called after the json deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JsonNode that should be deserialized into this object. + + partial void AfterFromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json erialization has finished, allowing customization of the before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JSON container that the serialization result will be placed in. + + partial void AfterToJson(ref Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject container); + + /// + /// BeforeFromJson will be called before the json deserialization has commenced, allowing complete customization of + /// the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JsonNode that should be deserialized into this object. + /// Determines if the rest of the deserialization should be processed, or if the method should return + /// instantly. + + partial void BeforeFromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject json, ref bool returnNow); + + /// + /// BeforeToJson will be called before the json serialization has commenced, allowing complete customization of the + /// object before it is serialized. + /// If you wish to disable the default serialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JSON container that the serialization result will be placed in. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeToJson(ref Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IResourceMoveChangeHistory. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IResourceMoveChangeHistory. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IResourceMoveChangeHistory FromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject json ? new ResourceMoveChangeHistory(json) : null; + } + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject instance to deserialize from. + internal ResourceMoveChangeHistory(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject json) + { + bool returnNow = false; + BeforeFromJson(json, ref returnNow); + if (returnNow) + { + return; + } + {_azureSubscriptionId = If( json?.PropertyT("azureSubscriptionId"), out var __jsonAzureSubscriptionId) ? (string)__jsonAzureSubscriptionId : (string)AzureSubscriptionId;} + {_resourceGroupName = If( json?.PropertyT("resourceGroupName"), out var __jsonResourceGroupName) ? (string)__jsonResourceGroupName : (string)ResourceGroupName;} + {_changedTimeUtc = If( json?.PropertyT("changedTimeUtc"), out var __jsonChangedTimeUtc) ? global::System.DateTime.TryParse((string)__jsonChangedTimeUtc, global::System.Globalization.CultureInfo.InvariantCulture, global::System.Globalization.DateTimeStyles.AdjustToUniversal, out var __jsonChangedTimeUtcValue) ? __jsonChangedTimeUtcValue : ChangedTimeUtc : ChangedTimeUtc;} + AfterFromJson(json); + } + + /// + /// Serializes this instance of into a . + /// + /// The container to serialize this object into. If the caller + /// passes in null, a new instance will be created and returned to the caller. + /// Allows the caller to choose the depth of the serialization. See . + /// + /// a serialized instance of as a . + /// + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject(); + + bool returnNow = false; + BeforeToJson(ref container, ref returnNow); + if (returnNow) + { + return container; + } + AddIf( null != (((object)this._azureSubscriptionId)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonString(this._azureSubscriptionId.ToString()) : null, "azureSubscriptionId" ,container.Add ); + AddIf( null != (((object)this._resourceGroupName)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonString(this._resourceGroupName.ToString()) : null, "resourceGroupName" ,container.Add ); + AddIf( null != this._changedTimeUtc ? (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonString(this._changedTimeUtc?.ToString(@"yyyy'-'MM'-'dd'T'HH':'mm':'ss.fffffffK",global::System.Globalization.CultureInfo.InvariantCulture)) : null, "changedTimeUtc" ,container.Add ); + AfterToJson(ref container); + return container; + } + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/ResourceSku.PowerShell.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/ResourceSku.PowerShell.cs new file mode 100644 index 000000000000..2f1892eea39f --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/ResourceSku.PowerShell.cs @@ -0,0 +1,142 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell; + + /// Describes an EventGrid Resource Sku. + [System.ComponentModel.TypeConverter(typeof(ResourceSkuTypeConverter))] + public partial class ResourceSku + { + + /// + /// AfterDeserializeDictionary will be called after the deserialization has finished, allowing customization of the + /// object before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Collections.IDictionary content that should be used. + + partial void AfterDeserializeDictionary(global::System.Collections.IDictionary content); + + /// + /// AfterDeserializePSObject will be called after the deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Management.Automation.PSObject content that should be used. + + partial void AfterDeserializePSObject(global::System.Management.Automation.PSObject content); + + /// + /// BeforeDeserializeDictionary will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Collections.IDictionary content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializeDictionary(global::System.Collections.IDictionary content, ref bool returnNow); + + /// + /// BeforeDeserializePSObject will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializePSObject(global::System.Management.Automation.PSObject content, ref bool returnNow); + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IResourceSku DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new ResourceSku(content); + } + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IResourceSku DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new ResourceSku(content); + } + + /// + /// Creates a new instance of , deserializing the content from a json string. + /// + /// a string containing a JSON serialized instance of this model. + /// an instance of the model class. + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IResourceSku FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode.Parse(jsonText)); + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + internal ResourceSku(global::System.Collections.IDictionary content) + { + bool returnNow = false; + BeforeDeserializeDictionary(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("Name")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IResourceSkuInternal)this).Name = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.Sku?) content.GetValueForProperty("Name",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IResourceSkuInternal)this).Name, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.Sku.CreateFrom); + } + AfterDeserializeDictionary(content); + } + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + internal ResourceSku(global::System.Management.Automation.PSObject content) + { + bool returnNow = false; + BeforeDeserializePSObject(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("Name")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IResourceSkuInternal)this).Name = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.Sku?) content.GetValueForProperty("Name",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IResourceSkuInternal)this).Name, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.Sku.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.EventGrid.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// Describes an EventGrid Resource Sku. + [System.ComponentModel.TypeConverter(typeof(ResourceSkuTypeConverter))] + public partial interface IResourceSku + + { + + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/ResourceSku.TypeConverter.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/ResourceSku.TypeConverter.cs new file mode 100644 index 000000000000..b4188005de1b --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/ResourceSku.TypeConverter.cs @@ -0,0 +1,146 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class ResourceSkuTypeConverter : global::System.Management.Automation.PSTypeConverter + { + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false. + /// + public override bool CanConvertFrom(object sourceValue, global::System.Type destinationType) => CanConvertFrom(sourceValue); + + /// + /// Determines if the converter can convert the parameter to the . + /// + /// the instance to check if it can be converted to the type. + /// + /// true if the instance could be converted to a type, otherwise false + /// + public static bool CanConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return true; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + // we say yest to PSObjects + return true; + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + // we say yest to Hashtables/dictionaries + return true; + } + try + { + if (null != sourceValue.ToJsonString()) + { + return true; + } + } + catch + { + // Not one of our objects + } + try + { + string text = sourceValue.ToString()?.Trim(); + return true == text?.StartsWith("{") && true == text?.EndsWith("}") && Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonType.Object; + } + catch + { + // Doesn't look like it can be treated as JSON + } + return false; + } + + /// + /// Determines if the parameter can be converted to the parameter + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false + /// + public override bool CanConvertTo(object sourceValue, global::System.Type destinationType) => false; + + /// + /// Converts the parameter to the parameter using and + /// + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// + /// an instance of , or null if there is no suitable conversion. + /// + public override object ConvertFrom(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => ConvertFrom(sourceValue); + + /// + /// Converts the parameter to the parameter using and + /// + /// the value to convert into an instance of . + /// + /// an instance of , or null if there is no suitable conversion. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IResourceSku ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IResourceSku).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return ResourceSku.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return ResourceSku.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return ResourceSku.DeserializeFromDictionary(sourceValue); + } + return null; + } + + /// NotImplemented -- this will return null + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// will always return null. + public override object ConvertTo(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => null; + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/ResourceSku.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/ResourceSku.cs new file mode 100644 index 000000000000..93753da5b79e --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/ResourceSku.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.EventGrid.Models.Api20211015Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Extensions; + + /// Describes an EventGrid Resource Sku. + public partial class ResourceSku : + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IResourceSku, + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IResourceSkuInternal + { + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.Sku? _name; + + /// The Sku name of the resource. The possible values are: Basic or Premium. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Owned)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.Sku? Name { get => this._name; set => this._name = value; } + + /// Creates an new instance. + public ResourceSku() + { + + } + } + /// Describes an EventGrid Resource Sku. + public partial interface IResourceSku : + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IJsonSerializable + { + /// The Sku name of the resource. The possible values are: Basic or Premium. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The Sku name of the resource. The possible values are: Basic or Premium.", + SerializedName = @"name", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.Sku) })] + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.Sku? Name { get; set; } + + } + /// Describes an EventGrid Resource Sku. + internal partial interface IResourceSkuInternal + + { + /// The Sku name of the resource. The possible values are: Basic or Premium. + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.Sku? Name { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/ResourceSku.json.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/ResourceSku.json.cs new file mode 100644 index 000000000000..ccdfad80da30 --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/ResourceSku.json.cs @@ -0,0 +1,106 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Extensions; + + /// Describes an EventGrid Resource Sku. + public partial class ResourceSku + { + + /// + /// AfterFromJson will be called after the json deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JsonNode that should be deserialized into this object. + + partial void AfterFromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json erialization has finished, allowing customization of the before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JSON container that the serialization result will be placed in. + + partial void AfterToJson(ref Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject container); + + /// + /// BeforeFromJson will be called before the json deserialization has commenced, allowing complete customization of + /// the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JsonNode that should be deserialized into this object. + /// Determines if the rest of the deserialization should be processed, or if the method should return + /// instantly. + + partial void BeforeFromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject json, ref bool returnNow); + + /// + /// BeforeToJson will be called before the json serialization has commenced, allowing complete customization of the + /// object before it is serialized. + /// If you wish to disable the default serialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JSON container that the serialization result will be placed in. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeToJson(ref Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IResourceSku. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IResourceSku. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IResourceSku FromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject json ? new ResourceSku(json) : null; + } + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject instance to deserialize from. + internal ResourceSku(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject json) + { + bool returnNow = false; + BeforeFromJson(json, ref returnNow); + if (returnNow) + { + return; + } + {_name = If( json?.PropertyT("name"), out var __jsonName) ? (string)__jsonName : (string)Name;} + AfterFromJson(json); + } + + /// + /// Serializes this instance of into a . + /// + /// The container to serialize this object into. If the caller + /// passes in null, a new instance will be created and returned to the caller. + /// Allows the caller to choose the depth of the serialization. See . + /// + /// a serialized instance of as a . + /// + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonString(this._name.ToString()) : null, "name" ,container.Add ); + AfterToJson(ref container); + return container; + } + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/RetryPolicy.PowerShell.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/RetryPolicy.PowerShell.cs new file mode 100644 index 000000000000..81d20d69dd66 --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/RetryPolicy.PowerShell.cs @@ -0,0 +1,150 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell; + + /// Information about the retry policy for an event subscription. + [System.ComponentModel.TypeConverter(typeof(RetryPolicyTypeConverter))] + public partial class RetryPolicy + { + + /// + /// AfterDeserializeDictionary will be called after the deserialization has finished, allowing customization of the + /// object before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Collections.IDictionary content that should be used. + + partial void AfterDeserializeDictionary(global::System.Collections.IDictionary content); + + /// + /// AfterDeserializePSObject will be called after the deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Management.Automation.PSObject content that should be used. + + partial void AfterDeserializePSObject(global::System.Management.Automation.PSObject content); + + /// + /// BeforeDeserializeDictionary will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Collections.IDictionary content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializeDictionary(global::System.Collections.IDictionary content, ref bool returnNow); + + /// + /// BeforeDeserializePSObject will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializePSObject(global::System.Management.Automation.PSObject content, ref bool returnNow); + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IRetryPolicy DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new RetryPolicy(content); + } + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IRetryPolicy DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new RetryPolicy(content); + } + + /// + /// Creates a new instance of , deserializing the content from a json string. + /// + /// a string containing a JSON serialized instance of this model. + /// an instance of the model class. + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IRetryPolicy FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode.Parse(jsonText)); + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + internal RetryPolicy(global::System.Collections.IDictionary content) + { + bool returnNow = false; + BeforeDeserializeDictionary(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("MaxDeliveryAttempt")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IRetryPolicyInternal)this).MaxDeliveryAttempt = (int?) content.GetValueForProperty("MaxDeliveryAttempt",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IRetryPolicyInternal)this).MaxDeliveryAttempt, (__y)=> (int) global::System.Convert.ChangeType(__y, typeof(int))); + } + if (content.Contains("EventTimeToLiveInMinute")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IRetryPolicyInternal)this).EventTimeToLiveInMinute = (int?) content.GetValueForProperty("EventTimeToLiveInMinute",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IRetryPolicyInternal)this).EventTimeToLiveInMinute, (__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 RetryPolicy(global::System.Management.Automation.PSObject content) + { + bool returnNow = false; + BeforeDeserializePSObject(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("MaxDeliveryAttempt")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IRetryPolicyInternal)this).MaxDeliveryAttempt = (int?) content.GetValueForProperty("MaxDeliveryAttempt",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IRetryPolicyInternal)this).MaxDeliveryAttempt, (__y)=> (int) global::System.Convert.ChangeType(__y, typeof(int))); + } + if (content.Contains("EventTimeToLiveInMinute")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IRetryPolicyInternal)this).EventTimeToLiveInMinute = (int?) content.GetValueForProperty("EventTimeToLiveInMinute",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IRetryPolicyInternal)this).EventTimeToLiveInMinute, (__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.EventGrid.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// Information about the retry policy for an event subscription. + [System.ComponentModel.TypeConverter(typeof(RetryPolicyTypeConverter))] + public partial interface IRetryPolicy + + { + + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/RetryPolicy.TypeConverter.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/RetryPolicy.TypeConverter.cs new file mode 100644 index 000000000000..5308fffabd26 --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/RetryPolicy.TypeConverter.cs @@ -0,0 +1,146 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class RetryPolicyTypeConverter : global::System.Management.Automation.PSTypeConverter + { + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false. + /// + public override bool CanConvertFrom(object sourceValue, global::System.Type destinationType) => CanConvertFrom(sourceValue); + + /// + /// Determines if the converter can convert the parameter to the . + /// + /// the instance to check if it can be converted to the type. + /// + /// true if the instance could be converted to a type, otherwise false + /// + public static bool CanConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return true; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + // we say yest to PSObjects + return true; + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + // we say yest to Hashtables/dictionaries + return true; + } + try + { + if (null != sourceValue.ToJsonString()) + { + return true; + } + } + catch + { + // Not one of our objects + } + try + { + string text = sourceValue.ToString()?.Trim(); + return true == text?.StartsWith("{") && true == text?.EndsWith("}") && Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonType.Object; + } + catch + { + // Doesn't look like it can be treated as JSON + } + return false; + } + + /// + /// Determines if the parameter can be converted to the parameter + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false + /// + public override bool CanConvertTo(object sourceValue, global::System.Type destinationType) => false; + + /// + /// Converts the parameter to the parameter using and + /// + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// + /// an instance of , or null if there is no suitable conversion. + /// + public override object ConvertFrom(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => ConvertFrom(sourceValue); + + /// + /// Converts the parameter to the parameter using and + /// + /// the value to convert into an instance of . + /// + /// an instance of , or null if there is no suitable conversion. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IRetryPolicy ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IRetryPolicy).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return RetryPolicy.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return RetryPolicy.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return RetryPolicy.DeserializeFromDictionary(sourceValue); + } + return null; + } + + /// NotImplemented -- this will return null + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// will always return null. + public override object ConvertTo(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => null; + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/RetryPolicy.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/RetryPolicy.cs new file mode 100644 index 000000000000..35140d2f93cc --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/RetryPolicy.cs @@ -0,0 +1,68 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Extensions; + + /// Information about the retry policy for an event subscription. + public partial class RetryPolicy : + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IRetryPolicy, + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IRetryPolicyInternal + { + + /// Backing field for property. + private int? _eventTimeToLiveInMinute; + + /// Time To Live (in minutes) for events. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Owned)] + public int? EventTimeToLiveInMinute { get => this._eventTimeToLiveInMinute; set => this._eventTimeToLiveInMinute = value; } + + /// Backing field for property. + private int? _maxDeliveryAttempt; + + /// Maximum number of delivery retry attempts for events. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Owned)] + public int? MaxDeliveryAttempt { get => this._maxDeliveryAttempt; set => this._maxDeliveryAttempt = value; } + + /// Creates an new instance. + public RetryPolicy() + { + + } + } + /// Information about the retry policy for an event subscription. + public partial interface IRetryPolicy : + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IJsonSerializable + { + /// Time To Live (in minutes) for events. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Time To Live (in minutes) for events.", + SerializedName = @"eventTimeToLiveInMinutes", + PossibleTypes = new [] { typeof(int) })] + int? EventTimeToLiveInMinute { get; set; } + /// Maximum number of delivery retry attempts for events. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Maximum number of delivery retry attempts for events.", + SerializedName = @"maxDeliveryAttempts", + PossibleTypes = new [] { typeof(int) })] + int? MaxDeliveryAttempt { get; set; } + + } + /// Information about the retry policy for an event subscription. + internal partial interface IRetryPolicyInternal + + { + /// Time To Live (in minutes) for events. + int? EventTimeToLiveInMinute { get; set; } + /// Maximum number of delivery retry attempts for events. + int? MaxDeliveryAttempt { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/RetryPolicy.json.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/RetryPolicy.json.cs new file mode 100644 index 000000000000..ff41ef591fce --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/RetryPolicy.json.cs @@ -0,0 +1,108 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Extensions; + + /// Information about the retry policy for an event subscription. + public partial class RetryPolicy + { + + /// + /// AfterFromJson will be called after the json deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JsonNode that should be deserialized into this object. + + partial void AfterFromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json erialization has finished, allowing customization of the before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JSON container that the serialization result will be placed in. + + partial void AfterToJson(ref Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject container); + + /// + /// BeforeFromJson will be called before the json deserialization has commenced, allowing complete customization of + /// the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JsonNode that should be deserialized into this object. + /// Determines if the rest of the deserialization should be processed, or if the method should return + /// instantly. + + partial void BeforeFromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject json, ref bool returnNow); + + /// + /// BeforeToJson will be called before the json serialization has commenced, allowing complete customization of the + /// object before it is serialized. + /// If you wish to disable the default serialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JSON container that the serialization result will be placed in. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeToJson(ref Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IRetryPolicy. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IRetryPolicy. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IRetryPolicy FromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject json ? new RetryPolicy(json) : null; + } + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject instance to deserialize from. + internal RetryPolicy(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject json) + { + bool returnNow = false; + BeforeFromJson(json, ref returnNow); + if (returnNow) + { + return; + } + {_maxDeliveryAttempt = If( json?.PropertyT("maxDeliveryAttempts"), out var __jsonMaxDeliveryAttempts) ? (int?)__jsonMaxDeliveryAttempts : MaxDeliveryAttempt;} + {_eventTimeToLiveInMinute = If( json?.PropertyT("eventTimeToLiveInMinutes"), out var __jsonEventTimeToLiveInMinutes) ? (int?)__jsonEventTimeToLiveInMinutes : EventTimeToLiveInMinute;} + AfterFromJson(json); + } + + /// + /// Serializes this instance of into a . + /// + /// The container to serialize this object into. If the caller + /// passes in null, a new instance will be created and returned to the caller. + /// Allows the caller to choose the depth of the serialization. See . + /// + /// a serialized instance of as a . + /// + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject(); + + bool returnNow = false; + BeforeToJson(ref container, ref returnNow); + if (returnNow) + { + return container; + } + AddIf( null != this._maxDeliveryAttempt ? (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode)new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNumber((int)this._maxDeliveryAttempt) : null, "maxDeliveryAttempts" ,container.Add ); + AddIf( null != this._eventTimeToLiveInMinute ? (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode)new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNumber((int)this._eventTimeToLiveInMinute) : null, "eventTimeToLiveInMinutes" ,container.Add ); + AfterToJson(ref container); + return container; + } + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/ServiceBusQueueEventSubscriptionDestination.PowerShell.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/ServiceBusQueueEventSubscriptionDestination.PowerShell.cs new file mode 100644 index 000000000000..bd688ef7f44e --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/ServiceBusQueueEventSubscriptionDestination.PowerShell.cs @@ -0,0 +1,171 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell; + + /// Information about the service bus destination for an event subscription. + [System.ComponentModel.TypeConverter(typeof(ServiceBusQueueEventSubscriptionDestinationTypeConverter))] + public partial class ServiceBusQueueEventSubscriptionDestination + { + + /// + /// AfterDeserializeDictionary will be called after the deserialization has finished, allowing customization of the + /// object before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Collections.IDictionary content that should be used. + + partial void AfterDeserializeDictionary(global::System.Collections.IDictionary content); + + /// + /// AfterDeserializePSObject will be called after the deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Management.Automation.PSObject content that should be used. + + partial void AfterDeserializePSObject(global::System.Management.Automation.PSObject content); + + /// + /// BeforeDeserializeDictionary will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Collections.IDictionary content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializeDictionary(global::System.Collections.IDictionary content, ref bool returnNow); + + /// + /// BeforeDeserializePSObject will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializePSObject(global::System.Management.Automation.PSObject content, ref bool returnNow); + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IServiceBusQueueEventSubscriptionDestination DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new ServiceBusQueueEventSubscriptionDestination(content); + } + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IServiceBusQueueEventSubscriptionDestination DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new ServiceBusQueueEventSubscriptionDestination(content); + } + + /// + /// Creates a new instance of , deserializing the content from a + /// json string. + /// + /// a string containing a JSON serialized instance of this model. + /// + /// an instance of the model class. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IServiceBusQueueEventSubscriptionDestination FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode.Parse(jsonText)); + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + internal ServiceBusQueueEventSubscriptionDestination(global::System.Collections.IDictionary content) + { + bool returnNow = false; + BeforeDeserializeDictionary(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("Property")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IServiceBusQueueEventSubscriptionDestinationInternal)this).Property = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IServiceBusQueueEventSubscriptionDestinationProperties) content.GetValueForProperty("Property",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IServiceBusQueueEventSubscriptionDestinationInternal)this).Property, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ServiceBusQueueEventSubscriptionDestinationPropertiesTypeConverter.ConvertFrom); + } + if (content.Contains("EndpointType")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionDestinationInternal)this).EndpointType = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EndpointType) content.GetValueForProperty("EndpointType",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionDestinationInternal)this).EndpointType, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EndpointType.CreateFrom); + } + if (content.Contains("ResourceId")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IServiceBusQueueEventSubscriptionDestinationInternal)this).ResourceId = (string) content.GetValueForProperty("ResourceId",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IServiceBusQueueEventSubscriptionDestinationInternal)this).ResourceId, global::System.Convert.ToString); + } + if (content.Contains("DeliveryAttributeMapping")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IServiceBusQueueEventSubscriptionDestinationInternal)this).DeliveryAttributeMapping = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDeliveryAttributeMapping[]) content.GetValueForProperty("DeliveryAttributeMapping",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IServiceBusQueueEventSubscriptionDestinationInternal)this).DeliveryAttributeMapping, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.DeliveryAttributeMappingTypeConverter.ConvertFrom)); + } + AfterDeserializeDictionary(content); + } + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + internal ServiceBusQueueEventSubscriptionDestination(global::System.Management.Automation.PSObject content) + { + bool returnNow = false; + BeforeDeserializePSObject(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("Property")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IServiceBusQueueEventSubscriptionDestinationInternal)this).Property = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IServiceBusQueueEventSubscriptionDestinationProperties) content.GetValueForProperty("Property",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IServiceBusQueueEventSubscriptionDestinationInternal)this).Property, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ServiceBusQueueEventSubscriptionDestinationPropertiesTypeConverter.ConvertFrom); + } + if (content.Contains("EndpointType")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionDestinationInternal)this).EndpointType = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EndpointType) content.GetValueForProperty("EndpointType",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionDestinationInternal)this).EndpointType, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EndpointType.CreateFrom); + } + if (content.Contains("ResourceId")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IServiceBusQueueEventSubscriptionDestinationInternal)this).ResourceId = (string) content.GetValueForProperty("ResourceId",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IServiceBusQueueEventSubscriptionDestinationInternal)this).ResourceId, global::System.Convert.ToString); + } + if (content.Contains("DeliveryAttributeMapping")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IServiceBusQueueEventSubscriptionDestinationInternal)this).DeliveryAttributeMapping = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDeliveryAttributeMapping[]) content.GetValueForProperty("DeliveryAttributeMapping",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IServiceBusQueueEventSubscriptionDestinationInternal)this).DeliveryAttributeMapping, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.DeliveryAttributeMappingTypeConverter.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.EventGrid.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// Information about the service bus destination for an event subscription. + [System.ComponentModel.TypeConverter(typeof(ServiceBusQueueEventSubscriptionDestinationTypeConverter))] + public partial interface IServiceBusQueueEventSubscriptionDestination + + { + + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/ServiceBusQueueEventSubscriptionDestination.TypeConverter.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/ServiceBusQueueEventSubscriptionDestination.TypeConverter.cs new file mode 100644 index 000000000000..2c36bf4364b5 --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/ServiceBusQueueEventSubscriptionDestination.TypeConverter.cs @@ -0,0 +1,150 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class ServiceBusQueueEventSubscriptionDestinationTypeConverter : global::System.Management.Automation.PSTypeConverter + { + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false. + /// + public override bool CanConvertFrom(object sourceValue, global::System.Type destinationType) => CanConvertFrom(sourceValue); + + /// + /// Determines if the converter can convert the parameter to the . + /// + /// the instance to check if it can be converted to the type. + /// + /// true if the instance could be converted to a type, otherwise + /// false + /// + public static bool CanConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return true; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + // we say yest to PSObjects + return true; + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + // we say yest to Hashtables/dictionaries + return true; + } + try + { + if (null != sourceValue.ToJsonString()) + { + return true; + } + } + catch + { + // Not one of our objects + } + try + { + string text = sourceValue.ToString()?.Trim(); + return true == text?.StartsWith("{") && true == text?.EndsWith("}") && Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonType.Object; + } + catch + { + // Doesn't look like it can be treated as JSON + } + return false; + } + + /// + /// Determines if the parameter can be converted to the parameter + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false + /// + public override bool CanConvertTo(object sourceValue, global::System.Type destinationType) => false; + + /// + /// Converts the parameter to the parameter using and + /// + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// + /// an instance of , or null if there is no suitable conversion. + /// + public override object ConvertFrom(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => ConvertFrom(sourceValue); + + /// + /// Converts the parameter to the parameter using and + /// + /// the value to convert into an instance of . + /// + /// an instance of , or null if there is no suitable conversion. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IServiceBusQueueEventSubscriptionDestination ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IServiceBusQueueEventSubscriptionDestination).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return ServiceBusQueueEventSubscriptionDestination.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return ServiceBusQueueEventSubscriptionDestination.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return ServiceBusQueueEventSubscriptionDestination.DeserializeFromDictionary(sourceValue); + } + return null; + } + + /// NotImplemented -- this will return null + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// will always return null. + public override object ConvertTo(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => null; + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/ServiceBusQueueEventSubscriptionDestination.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/ServiceBusQueueEventSubscriptionDestination.cs new file mode 100644 index 000000000000..9ae1999e89f6 --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/ServiceBusQueueEventSubscriptionDestination.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.EventGrid.Models.Api20211015Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Extensions; + + /// Information about the service bus destination for an event subscription. + public partial class ServiceBusQueueEventSubscriptionDestination : + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IServiceBusQueueEventSubscriptionDestination, + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IServiceBusQueueEventSubscriptionDestinationInternal, + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IValidates + { + /// + /// Backing field for Inherited model + /// + private Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionDestination __eventSubscriptionDestination = new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.EventSubscriptionDestination(); + + /// Delivery attribute details. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Inlined)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDeliveryAttributeMapping[] DeliveryAttributeMapping { get => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IServiceBusQueueEventSubscriptionDestinationPropertiesInternal)Property).DeliveryAttributeMapping; set => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IServiceBusQueueEventSubscriptionDestinationPropertiesInternal)Property).DeliveryAttributeMapping = value ?? null /* arrayOf */; } + + /// Type of the endpoint for the event subscription destination. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Inherited)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EndpointType EndpointType { get => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionDestinationInternal)__eventSubscriptionDestination).EndpointType; set => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionDestinationInternal)__eventSubscriptionDestination).EndpointType = value ; } + + /// Internal Acessors for Property + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IServiceBusQueueEventSubscriptionDestinationProperties Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IServiceBusQueueEventSubscriptionDestinationInternal.Property { get => (this._property = this._property ?? new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ServiceBusQueueEventSubscriptionDestinationProperties()); set { {_property = value;} } } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IServiceBusQueueEventSubscriptionDestinationProperties _property; + + /// Service Bus Properties of the event subscription destination. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Owned)] + internal Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IServiceBusQueueEventSubscriptionDestinationProperties Property { get => (this._property = this._property ?? new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ServiceBusQueueEventSubscriptionDestinationProperties()); set => this._property = value; } + + /// + /// The Azure Resource Id that represents the endpoint of the Service Bus destination of an event subscription. + /// + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Inlined)] + public string ResourceId { get => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IServiceBusQueueEventSubscriptionDestinationPropertiesInternal)Property).ResourceId; set => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IServiceBusQueueEventSubscriptionDestinationPropertiesInternal)Property).ResourceId = value ?? null; } + + /// + /// Creates an new instance. + /// + public ServiceBusQueueEventSubscriptionDestination() + { + + } + + /// Validates that this object meets the validation criteria. + /// an instance that will receive validation + /// events. + /// + /// A that will be complete when validation is completed. + /// + public async global::System.Threading.Tasks.Task Validate(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener eventListener) + { + await eventListener.AssertNotNull(nameof(__eventSubscriptionDestination), __eventSubscriptionDestination); + await eventListener.AssertObjectIsValid(nameof(__eventSubscriptionDestination), __eventSubscriptionDestination); + } + } + /// Information about the service bus destination for an event subscription. + public partial interface IServiceBusQueueEventSubscriptionDestination : + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IJsonSerializable, + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionDestination + { + /// Delivery attribute details. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Delivery attribute details.", + SerializedName = @"deliveryAttributeMappings", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDeliveryAttributeMapping),typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IStaticDeliveryAttributeMapping),typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDynamicDeliveryAttributeMapping) })] + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDeliveryAttributeMapping[] DeliveryAttributeMapping { get; set; } + /// + /// The Azure Resource Id that represents the endpoint of the Service Bus destination of an event subscription. + /// + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The Azure Resource Id that represents the endpoint of the Service Bus destination of an event subscription.", + SerializedName = @"resourceId", + PossibleTypes = new [] { typeof(string) })] + string ResourceId { get; set; } + + } + /// Information about the service bus destination for an event subscription. + internal partial interface IServiceBusQueueEventSubscriptionDestinationInternal : + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionDestinationInternal + { + /// Delivery attribute details. + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDeliveryAttributeMapping[] DeliveryAttributeMapping { get; set; } + /// Service Bus Properties of the event subscription destination. + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IServiceBusQueueEventSubscriptionDestinationProperties Property { get; set; } + /// + /// The Azure Resource Id that represents the endpoint of the Service Bus destination of an event subscription. + /// + string ResourceId { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/ServiceBusQueueEventSubscriptionDestination.json.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/ServiceBusQueueEventSubscriptionDestination.json.cs new file mode 100644 index 000000000000..7c8af5ddacd9 --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/ServiceBusQueueEventSubscriptionDestination.json.cs @@ -0,0 +1,110 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Extensions; + + /// Information about the service bus destination for an event subscription. + public partial class ServiceBusQueueEventSubscriptionDestination + { + + /// + /// AfterFromJson will be called after the json deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JsonNode that should be deserialized into this object. + + partial void AfterFromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json erialization has finished, allowing customization of the before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JSON container that the serialization result will be placed in. + + partial void AfterToJson(ref Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject container); + + /// + /// BeforeFromJson will be called before the json deserialization has commenced, allowing complete customization of + /// the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JsonNode that should be deserialized into this object. + /// Determines if the rest of the deserialization should be processed, or if the method should return + /// instantly. + + partial void BeforeFromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject json, ref bool returnNow); + + /// + /// BeforeToJson will be called before the json serialization has commenced, allowing complete customization of the + /// object before it is serialized. + /// If you wish to disable the default serialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JSON container that the serialization result will be placed in. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeToJson(ref Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IServiceBusQueueEventSubscriptionDestination. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IServiceBusQueueEventSubscriptionDestination. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IServiceBusQueueEventSubscriptionDestination FromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject json ? new ServiceBusQueueEventSubscriptionDestination(json) : null; + } + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject instance to deserialize from. + internal ServiceBusQueueEventSubscriptionDestination(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject json) + { + bool returnNow = false; + BeforeFromJson(json, ref returnNow); + if (returnNow) + { + return; + } + __eventSubscriptionDestination = new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.EventSubscriptionDestination(json); + {_property = If( json?.PropertyT("properties"), out var __jsonProperties) ? Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ServiceBusQueueEventSubscriptionDestinationProperties.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.EventGrid.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject(); + + bool returnNow = false; + BeforeToJson(ref container, ref returnNow); + if (returnNow) + { + return container; + } + __eventSubscriptionDestination?.ToJson(container, serializationMode); + AddIf( null != this._property ? (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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/eventgrid/generated/api/Models/Api20211015Preview/ServiceBusQueueEventSubscriptionDestinationProperties.PowerShell.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/ServiceBusQueueEventSubscriptionDestinationProperties.PowerShell.cs new file mode 100644 index 000000000000..7a139af360e3 --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/ServiceBusQueueEventSubscriptionDestinationProperties.PowerShell.cs @@ -0,0 +1,157 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell; + + /// + /// The properties that represent the Service Bus destination of an event subscription. + /// + [System.ComponentModel.TypeConverter(typeof(ServiceBusQueueEventSubscriptionDestinationPropertiesTypeConverter))] + public partial class ServiceBusQueueEventSubscriptionDestinationProperties + { + + /// + /// AfterDeserializeDictionary will be called after the deserialization has finished, allowing customization of the + /// object before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Collections.IDictionary content that should be used. + + partial void AfterDeserializeDictionary(global::System.Collections.IDictionary content); + + /// + /// AfterDeserializePSObject will be called after the deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Management.Automation.PSObject content that should be used. + + partial void AfterDeserializePSObject(global::System.Management.Automation.PSObject content); + + /// + /// BeforeDeserializeDictionary will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Collections.IDictionary content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializeDictionary(global::System.Collections.IDictionary content, ref bool returnNow); + + /// + /// BeforeDeserializePSObject will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializePSObject(global::System.Management.Automation.PSObject content, ref bool returnNow); + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IServiceBusQueueEventSubscriptionDestinationProperties DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new ServiceBusQueueEventSubscriptionDestinationProperties(content); + } + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IServiceBusQueueEventSubscriptionDestinationProperties DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new ServiceBusQueueEventSubscriptionDestinationProperties(content); + } + + /// + /// Creates a new instance of , deserializing the content + /// from a json string. + /// + /// a string containing a JSON serialized instance of this model. + /// + /// an instance of the model class. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IServiceBusQueueEventSubscriptionDestinationProperties FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode.Parse(jsonText)); + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + internal ServiceBusQueueEventSubscriptionDestinationProperties(global::System.Collections.IDictionary content) + { + bool returnNow = false; + BeforeDeserializeDictionary(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("ResourceId")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IServiceBusQueueEventSubscriptionDestinationPropertiesInternal)this).ResourceId = (string) content.GetValueForProperty("ResourceId",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IServiceBusQueueEventSubscriptionDestinationPropertiesInternal)this).ResourceId, global::System.Convert.ToString); + } + if (content.Contains("DeliveryAttributeMapping")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IServiceBusQueueEventSubscriptionDestinationPropertiesInternal)this).DeliveryAttributeMapping = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDeliveryAttributeMapping[]) content.GetValueForProperty("DeliveryAttributeMapping",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IServiceBusQueueEventSubscriptionDestinationPropertiesInternal)this).DeliveryAttributeMapping, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.DeliveryAttributeMappingTypeConverter.ConvertFrom)); + } + AfterDeserializeDictionary(content); + } + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + internal ServiceBusQueueEventSubscriptionDestinationProperties(global::System.Management.Automation.PSObject content) + { + bool returnNow = false; + BeforeDeserializePSObject(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("ResourceId")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IServiceBusQueueEventSubscriptionDestinationPropertiesInternal)this).ResourceId = (string) content.GetValueForProperty("ResourceId",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IServiceBusQueueEventSubscriptionDestinationPropertiesInternal)this).ResourceId, global::System.Convert.ToString); + } + if (content.Contains("DeliveryAttributeMapping")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IServiceBusQueueEventSubscriptionDestinationPropertiesInternal)this).DeliveryAttributeMapping = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDeliveryAttributeMapping[]) content.GetValueForProperty("DeliveryAttributeMapping",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IServiceBusQueueEventSubscriptionDestinationPropertiesInternal)this).DeliveryAttributeMapping, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.DeliveryAttributeMappingTypeConverter.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.EventGrid.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// The properties that represent the Service Bus destination of an event subscription. + [System.ComponentModel.TypeConverter(typeof(ServiceBusQueueEventSubscriptionDestinationPropertiesTypeConverter))] + public partial interface IServiceBusQueueEventSubscriptionDestinationProperties + + { + + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/ServiceBusQueueEventSubscriptionDestinationProperties.TypeConverter.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/ServiceBusQueueEventSubscriptionDestinationProperties.TypeConverter.cs new file mode 100644 index 000000000000..03ea40660970 --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/ServiceBusQueueEventSubscriptionDestinationProperties.TypeConverter.cs @@ -0,0 +1,152 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class ServiceBusQueueEventSubscriptionDestinationPropertiesTypeConverter : global::System.Management.Automation.PSTypeConverter + { + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false. + /// + public override bool CanConvertFrom(object sourceValue, global::System.Type destinationType) => CanConvertFrom(sourceValue); + + /// + /// Determines if the converter can convert the parameter to the . + /// + /// the instance to check if it can be converted to the type. + /// + /// true if the instance could be converted to a type, otherwise false + /// + public static bool CanConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return true; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + // we say yest to PSObjects + return true; + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + // we say yest to Hashtables/dictionaries + return true; + } + try + { + if (null != sourceValue.ToJsonString()) + { + return true; + } + } + catch + { + // Not one of our objects + } + try + { + string text = sourceValue.ToString()?.Trim(); + return true == text?.StartsWith("{") && true == text?.EndsWith("}") && Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonType.Object; + } + catch + { + // Doesn't look like it can be treated as JSON + } + return false; + } + + /// + /// Determines if the parameter can be converted to the parameter + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false + /// + public override bool CanConvertTo(object sourceValue, global::System.Type destinationType) => false; + + /// + /// Converts the parameter to the parameter using and + /// + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// + /// an instance of , or null if there is no suitable + /// conversion. + /// + public override object ConvertFrom(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => ConvertFrom(sourceValue); + + /// + /// Converts the parameter to the parameter using and + /// + /// the value to convert into an instance of . + /// + /// an instance of , or null if there is no suitable + /// conversion. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IServiceBusQueueEventSubscriptionDestinationProperties ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IServiceBusQueueEventSubscriptionDestinationProperties).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return ServiceBusQueueEventSubscriptionDestinationProperties.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return ServiceBusQueueEventSubscriptionDestinationProperties.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return ServiceBusQueueEventSubscriptionDestinationProperties.DeserializeFromDictionary(sourceValue); + } + return null; + } + + /// NotImplemented -- this will return null + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// will always return null. + public override object ConvertTo(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => null; + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/ServiceBusQueueEventSubscriptionDestinationProperties.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/ServiceBusQueueEventSubscriptionDestinationProperties.cs new file mode 100644 index 000000000000..2d5fe7ac6584 --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/ServiceBusQueueEventSubscriptionDestinationProperties.cs @@ -0,0 +1,78 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Extensions; + + /// + /// The properties that represent the Service Bus destination of an event subscription. + /// + public partial class ServiceBusQueueEventSubscriptionDestinationProperties : + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IServiceBusQueueEventSubscriptionDestinationProperties, + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IServiceBusQueueEventSubscriptionDestinationPropertiesInternal + { + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDeliveryAttributeMapping[] _deliveryAttributeMapping; + + /// Delivery attribute details. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Owned)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDeliveryAttributeMapping[] DeliveryAttributeMapping { get => this._deliveryAttributeMapping; set => this._deliveryAttributeMapping = value; } + + /// Backing field for property. + private string _resourceId; + + /// + /// The Azure Resource Id that represents the endpoint of the Service Bus destination of an event subscription. + /// + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Owned)] + public string ResourceId { get => this._resourceId; set => this._resourceId = value; } + + /// + /// Creates an new instance. + /// + public ServiceBusQueueEventSubscriptionDestinationProperties() + { + + } + } + /// The properties that represent the Service Bus destination of an event subscription. + public partial interface IServiceBusQueueEventSubscriptionDestinationProperties : + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IJsonSerializable + { + /// Delivery attribute details. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Delivery attribute details.", + SerializedName = @"deliveryAttributeMappings", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDeliveryAttributeMapping),typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IStaticDeliveryAttributeMapping),typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDynamicDeliveryAttributeMapping) })] + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDeliveryAttributeMapping[] DeliveryAttributeMapping { get; set; } + /// + /// The Azure Resource Id that represents the endpoint of the Service Bus destination of an event subscription. + /// + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The Azure Resource Id that represents the endpoint of the Service Bus destination of an event subscription.", + SerializedName = @"resourceId", + PossibleTypes = new [] { typeof(string) })] + string ResourceId { get; set; } + + } + /// The properties that represent the Service Bus destination of an event subscription. + internal partial interface IServiceBusQueueEventSubscriptionDestinationPropertiesInternal + + { + /// Delivery attribute details. + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDeliveryAttributeMapping[] DeliveryAttributeMapping { get; set; } + /// + /// The Azure Resource Id that represents the endpoint of the Service Bus destination of an event subscription. + /// + string ResourceId { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/ServiceBusQueueEventSubscriptionDestinationProperties.json.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/ServiceBusQueueEventSubscriptionDestinationProperties.json.cs new file mode 100644 index 000000000000..9597c8913f06 --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/ServiceBusQueueEventSubscriptionDestinationProperties.json.cs @@ -0,0 +1,121 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Extensions; + + /// + /// The properties that represent the Service Bus destination of an event subscription. + /// + public partial class ServiceBusQueueEventSubscriptionDestinationProperties + { + + /// + /// AfterFromJson will be called after the json deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JsonNode that should be deserialized into this object. + + partial void AfterFromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json erialization has finished, allowing customization of the before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JSON container that the serialization result will be placed in. + + partial void AfterToJson(ref Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject container); + + /// + /// BeforeFromJson will be called before the json deserialization has commenced, allowing complete customization of + /// the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JsonNode that should be deserialized into this object. + /// Determines if the rest of the deserialization should be processed, or if the method should return + /// instantly. + + partial void BeforeFromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject json, ref bool returnNow); + + /// + /// BeforeToJson will be called before the json serialization has commenced, allowing complete customization of the + /// object before it is serialized. + /// If you wish to disable the default serialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JSON container that the serialization result will be placed in. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeToJson(ref Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IServiceBusQueueEventSubscriptionDestinationProperties. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IServiceBusQueueEventSubscriptionDestinationProperties. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IServiceBusQueueEventSubscriptionDestinationProperties FromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject json ? new ServiceBusQueueEventSubscriptionDestinationProperties(json) : null; + } + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject instance to deserialize from. + internal ServiceBusQueueEventSubscriptionDestinationProperties(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject json) + { + bool returnNow = false; + BeforeFromJson(json, ref returnNow); + if (returnNow) + { + return; + } + {_resourceId = If( json?.PropertyT("resourceId"), out var __jsonResourceId) ? (string)__jsonResourceId : (string)ResourceId;} + {_deliveryAttributeMapping = If( json?.PropertyT("deliveryAttributeMappings"), out var __jsonDeliveryAttributeMappings) ? If( __jsonDeliveryAttributeMappings as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Models.Api20211015Preview.IDeliveryAttributeMapping) (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.DeliveryAttributeMapping.FromJson(__u) )) ))() : null : DeliveryAttributeMapping;} + AfterFromJson(json); + } + + /// + /// Serializes this instance of into a . + /// + /// The container to serialize this object into. If the caller + /// passes in null, a new instance will be created and returned to the caller. + /// Allows the caller to choose the depth of the serialization. See . + /// + /// a serialized instance of as a . + /// + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject(); + + bool returnNow = false; + BeforeToJson(ref container, ref returnNow); + if (returnNow) + { + return container; + } + AddIf( null != (((object)this._resourceId)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonString(this._resourceId.ToString()) : null, "resourceId" ,container.Add ); + if (null != this._deliveryAttributeMapping) + { + var __w = new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.XNodeArray(); + foreach( var __x in this._deliveryAttributeMapping ) + { + AddIf(__x?.ToJson(null, serializationMode) ,__w.Add); + } + container.Add("deliveryAttributeMappings",__w); + } + AfterToJson(ref container); + return container; + } + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/ServiceBusTopicEventSubscriptionDestination.PowerShell.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/ServiceBusTopicEventSubscriptionDestination.PowerShell.cs new file mode 100644 index 000000000000..638a676b4f04 --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/ServiceBusTopicEventSubscriptionDestination.PowerShell.cs @@ -0,0 +1,171 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell; + + /// Information about the service bus topic destination for an event subscription. + [System.ComponentModel.TypeConverter(typeof(ServiceBusTopicEventSubscriptionDestinationTypeConverter))] + public partial class ServiceBusTopicEventSubscriptionDestination + { + + /// + /// AfterDeserializeDictionary will be called after the deserialization has finished, allowing customization of the + /// object before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Collections.IDictionary content that should be used. + + partial void AfterDeserializeDictionary(global::System.Collections.IDictionary content); + + /// + /// AfterDeserializePSObject will be called after the deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Management.Automation.PSObject content that should be used. + + partial void AfterDeserializePSObject(global::System.Management.Automation.PSObject content); + + /// + /// BeforeDeserializeDictionary will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Collections.IDictionary content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializeDictionary(global::System.Collections.IDictionary content, ref bool returnNow); + + /// + /// BeforeDeserializePSObject will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializePSObject(global::System.Management.Automation.PSObject content, ref bool returnNow); + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IServiceBusTopicEventSubscriptionDestination DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new ServiceBusTopicEventSubscriptionDestination(content); + } + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IServiceBusTopicEventSubscriptionDestination DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new ServiceBusTopicEventSubscriptionDestination(content); + } + + /// + /// Creates a new instance of , deserializing the content from a + /// json string. + /// + /// a string containing a JSON serialized instance of this model. + /// + /// an instance of the model class. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IServiceBusTopicEventSubscriptionDestination FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode.Parse(jsonText)); + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + internal ServiceBusTopicEventSubscriptionDestination(global::System.Collections.IDictionary content) + { + bool returnNow = false; + BeforeDeserializeDictionary(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("Property")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IServiceBusTopicEventSubscriptionDestinationInternal)this).Property = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IServiceBusTopicEventSubscriptionDestinationProperties) content.GetValueForProperty("Property",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IServiceBusTopicEventSubscriptionDestinationInternal)this).Property, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ServiceBusTopicEventSubscriptionDestinationPropertiesTypeConverter.ConvertFrom); + } + if (content.Contains("EndpointType")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionDestinationInternal)this).EndpointType = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EndpointType) content.GetValueForProperty("EndpointType",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionDestinationInternal)this).EndpointType, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EndpointType.CreateFrom); + } + if (content.Contains("ResourceId")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IServiceBusTopicEventSubscriptionDestinationInternal)this).ResourceId = (string) content.GetValueForProperty("ResourceId",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IServiceBusTopicEventSubscriptionDestinationInternal)this).ResourceId, global::System.Convert.ToString); + } + if (content.Contains("DeliveryAttributeMapping")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IServiceBusTopicEventSubscriptionDestinationInternal)this).DeliveryAttributeMapping = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDeliveryAttributeMapping[]) content.GetValueForProperty("DeliveryAttributeMapping",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IServiceBusTopicEventSubscriptionDestinationInternal)this).DeliveryAttributeMapping, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.DeliveryAttributeMappingTypeConverter.ConvertFrom)); + } + AfterDeserializeDictionary(content); + } + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + internal ServiceBusTopicEventSubscriptionDestination(global::System.Management.Automation.PSObject content) + { + bool returnNow = false; + BeforeDeserializePSObject(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("Property")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IServiceBusTopicEventSubscriptionDestinationInternal)this).Property = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IServiceBusTopicEventSubscriptionDestinationProperties) content.GetValueForProperty("Property",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IServiceBusTopicEventSubscriptionDestinationInternal)this).Property, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ServiceBusTopicEventSubscriptionDestinationPropertiesTypeConverter.ConvertFrom); + } + if (content.Contains("EndpointType")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionDestinationInternal)this).EndpointType = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EndpointType) content.GetValueForProperty("EndpointType",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionDestinationInternal)this).EndpointType, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EndpointType.CreateFrom); + } + if (content.Contains("ResourceId")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IServiceBusTopicEventSubscriptionDestinationInternal)this).ResourceId = (string) content.GetValueForProperty("ResourceId",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IServiceBusTopicEventSubscriptionDestinationInternal)this).ResourceId, global::System.Convert.ToString); + } + if (content.Contains("DeliveryAttributeMapping")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IServiceBusTopicEventSubscriptionDestinationInternal)this).DeliveryAttributeMapping = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDeliveryAttributeMapping[]) content.GetValueForProperty("DeliveryAttributeMapping",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IServiceBusTopicEventSubscriptionDestinationInternal)this).DeliveryAttributeMapping, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.DeliveryAttributeMappingTypeConverter.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.EventGrid.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// Information about the service bus topic destination for an event subscription. + [System.ComponentModel.TypeConverter(typeof(ServiceBusTopicEventSubscriptionDestinationTypeConverter))] + public partial interface IServiceBusTopicEventSubscriptionDestination + + { + + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/ServiceBusTopicEventSubscriptionDestination.TypeConverter.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/ServiceBusTopicEventSubscriptionDestination.TypeConverter.cs new file mode 100644 index 000000000000..2ac0562d1fe5 --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/ServiceBusTopicEventSubscriptionDestination.TypeConverter.cs @@ -0,0 +1,150 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class ServiceBusTopicEventSubscriptionDestinationTypeConverter : global::System.Management.Automation.PSTypeConverter + { + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false. + /// + public override bool CanConvertFrom(object sourceValue, global::System.Type destinationType) => CanConvertFrom(sourceValue); + + /// + /// Determines if the converter can convert the parameter to the . + /// + /// the instance to check if it can be converted to the type. + /// + /// true if the instance could be converted to a type, otherwise + /// false + /// + public static bool CanConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return true; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + // we say yest to PSObjects + return true; + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + // we say yest to Hashtables/dictionaries + return true; + } + try + { + if (null != sourceValue.ToJsonString()) + { + return true; + } + } + catch + { + // Not one of our objects + } + try + { + string text = sourceValue.ToString()?.Trim(); + return true == text?.StartsWith("{") && true == text?.EndsWith("}") && Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonType.Object; + } + catch + { + // Doesn't look like it can be treated as JSON + } + return false; + } + + /// + /// Determines if the parameter can be converted to the parameter + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false + /// + public override bool CanConvertTo(object sourceValue, global::System.Type destinationType) => false; + + /// + /// Converts the parameter to the parameter using and + /// + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// + /// an instance of , or null if there is no suitable conversion. + /// + public override object ConvertFrom(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => ConvertFrom(sourceValue); + + /// + /// Converts the parameter to the parameter using and + /// + /// the value to convert into an instance of . + /// + /// an instance of , or null if there is no suitable conversion. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IServiceBusTopicEventSubscriptionDestination ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IServiceBusTopicEventSubscriptionDestination).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return ServiceBusTopicEventSubscriptionDestination.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return ServiceBusTopicEventSubscriptionDestination.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return ServiceBusTopicEventSubscriptionDestination.DeserializeFromDictionary(sourceValue); + } + return null; + } + + /// NotImplemented -- this will return null + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// will always return null. + public override object ConvertTo(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => null; + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/ServiceBusTopicEventSubscriptionDestination.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/ServiceBusTopicEventSubscriptionDestination.cs new file mode 100644 index 000000000000..b43756c64ae8 --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/ServiceBusTopicEventSubscriptionDestination.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.EventGrid.Models.Api20211015Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Extensions; + + /// Information about the service bus topic destination for an event subscription. + public partial class ServiceBusTopicEventSubscriptionDestination : + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IServiceBusTopicEventSubscriptionDestination, + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IServiceBusTopicEventSubscriptionDestinationInternal, + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IValidates + { + /// + /// Backing field for Inherited model + /// + private Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionDestination __eventSubscriptionDestination = new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.EventSubscriptionDestination(); + + /// Delivery attribute details. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Inlined)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDeliveryAttributeMapping[] DeliveryAttributeMapping { get => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IServiceBusTopicEventSubscriptionDestinationPropertiesInternal)Property).DeliveryAttributeMapping; set => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IServiceBusTopicEventSubscriptionDestinationPropertiesInternal)Property).DeliveryAttributeMapping = value ?? null /* arrayOf */; } + + /// Type of the endpoint for the event subscription destination. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Inherited)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EndpointType EndpointType { get => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionDestinationInternal)__eventSubscriptionDestination).EndpointType; set => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionDestinationInternal)__eventSubscriptionDestination).EndpointType = value ; } + + /// Internal Acessors for Property + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IServiceBusTopicEventSubscriptionDestinationProperties Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IServiceBusTopicEventSubscriptionDestinationInternal.Property { get => (this._property = this._property ?? new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ServiceBusTopicEventSubscriptionDestinationProperties()); set { {_property = value;} } } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IServiceBusTopicEventSubscriptionDestinationProperties _property; + + /// Service Bus Topic Properties of the event subscription destination. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Owned)] + internal Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IServiceBusTopicEventSubscriptionDestinationProperties Property { get => (this._property = this._property ?? new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ServiceBusTopicEventSubscriptionDestinationProperties()); set => this._property = value; } + + /// + /// The Azure Resource Id that represents the endpoint of the Service Bus Topic destination of an event subscription. + /// + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Inlined)] + public string ResourceId { get => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IServiceBusTopicEventSubscriptionDestinationPropertiesInternal)Property).ResourceId; set => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IServiceBusTopicEventSubscriptionDestinationPropertiesInternal)Property).ResourceId = value ?? null; } + + /// + /// Creates an new instance. + /// + public ServiceBusTopicEventSubscriptionDestination() + { + + } + + /// Validates that this object meets the validation criteria. + /// an instance that will receive validation + /// events. + /// + /// A that will be complete when validation is completed. + /// + public async global::System.Threading.Tasks.Task Validate(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener eventListener) + { + await eventListener.AssertNotNull(nameof(__eventSubscriptionDestination), __eventSubscriptionDestination); + await eventListener.AssertObjectIsValid(nameof(__eventSubscriptionDestination), __eventSubscriptionDestination); + } + } + /// Information about the service bus topic destination for an event subscription. + public partial interface IServiceBusTopicEventSubscriptionDestination : + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IJsonSerializable, + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionDestination + { + /// Delivery attribute details. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Delivery attribute details.", + SerializedName = @"deliveryAttributeMappings", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDeliveryAttributeMapping),typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IStaticDeliveryAttributeMapping),typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDynamicDeliveryAttributeMapping) })] + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDeliveryAttributeMapping[] DeliveryAttributeMapping { get; set; } + /// + /// The Azure Resource Id that represents the endpoint of the Service Bus Topic destination of an event subscription. + /// + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The Azure Resource Id that represents the endpoint of the Service Bus Topic destination of an event subscription.", + SerializedName = @"resourceId", + PossibleTypes = new [] { typeof(string) })] + string ResourceId { get; set; } + + } + /// Information about the service bus topic destination for an event subscription. + internal partial interface IServiceBusTopicEventSubscriptionDestinationInternal : + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionDestinationInternal + { + /// Delivery attribute details. + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDeliveryAttributeMapping[] DeliveryAttributeMapping { get; set; } + /// Service Bus Topic Properties of the event subscription destination. + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IServiceBusTopicEventSubscriptionDestinationProperties Property { get; set; } + /// + /// The Azure Resource Id that represents the endpoint of the Service Bus Topic destination of an event subscription. + /// + string ResourceId { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/ServiceBusTopicEventSubscriptionDestination.json.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/ServiceBusTopicEventSubscriptionDestination.json.cs new file mode 100644 index 000000000000..e4c6bf5101fe --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/ServiceBusTopicEventSubscriptionDestination.json.cs @@ -0,0 +1,110 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Extensions; + + /// Information about the service bus topic destination for an event subscription. + public partial class ServiceBusTopicEventSubscriptionDestination + { + + /// + /// AfterFromJson will be called after the json deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JsonNode that should be deserialized into this object. + + partial void AfterFromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json erialization has finished, allowing customization of the before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JSON container that the serialization result will be placed in. + + partial void AfterToJson(ref Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject container); + + /// + /// BeforeFromJson will be called before the json deserialization has commenced, allowing complete customization of + /// the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JsonNode that should be deserialized into this object. + /// Determines if the rest of the deserialization should be processed, or if the method should return + /// instantly. + + partial void BeforeFromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject json, ref bool returnNow); + + /// + /// BeforeToJson will be called before the json serialization has commenced, allowing complete customization of the + /// object before it is serialized. + /// If you wish to disable the default serialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JSON container that the serialization result will be placed in. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeToJson(ref Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IServiceBusTopicEventSubscriptionDestination. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IServiceBusTopicEventSubscriptionDestination. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IServiceBusTopicEventSubscriptionDestination FromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject json ? new ServiceBusTopicEventSubscriptionDestination(json) : null; + } + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject instance to deserialize from. + internal ServiceBusTopicEventSubscriptionDestination(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject json) + { + bool returnNow = false; + BeforeFromJson(json, ref returnNow); + if (returnNow) + { + return; + } + __eventSubscriptionDestination = new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.EventSubscriptionDestination(json); + {_property = If( json?.PropertyT("properties"), out var __jsonProperties) ? Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ServiceBusTopicEventSubscriptionDestinationProperties.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.EventGrid.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject(); + + bool returnNow = false; + BeforeToJson(ref container, ref returnNow); + if (returnNow) + { + return container; + } + __eventSubscriptionDestination?.ToJson(container, serializationMode); + AddIf( null != this._property ? (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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/eventgrid/generated/api/Models/Api20211015Preview/ServiceBusTopicEventSubscriptionDestinationProperties.PowerShell.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/ServiceBusTopicEventSubscriptionDestinationProperties.PowerShell.cs new file mode 100644 index 000000000000..4c82fa774c49 --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/ServiceBusTopicEventSubscriptionDestinationProperties.PowerShell.cs @@ -0,0 +1,157 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell; + + /// + /// The properties that represent the Service Bus Topic destination of an event subscription. + /// + [System.ComponentModel.TypeConverter(typeof(ServiceBusTopicEventSubscriptionDestinationPropertiesTypeConverter))] + public partial class ServiceBusTopicEventSubscriptionDestinationProperties + { + + /// + /// AfterDeserializeDictionary will be called after the deserialization has finished, allowing customization of the + /// object before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Collections.IDictionary content that should be used. + + partial void AfterDeserializeDictionary(global::System.Collections.IDictionary content); + + /// + /// AfterDeserializePSObject will be called after the deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Management.Automation.PSObject content that should be used. + + partial void AfterDeserializePSObject(global::System.Management.Automation.PSObject content); + + /// + /// BeforeDeserializeDictionary will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Collections.IDictionary content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializeDictionary(global::System.Collections.IDictionary content, ref bool returnNow); + + /// + /// BeforeDeserializePSObject will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializePSObject(global::System.Management.Automation.PSObject content, ref bool returnNow); + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IServiceBusTopicEventSubscriptionDestinationProperties DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new ServiceBusTopicEventSubscriptionDestinationProperties(content); + } + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IServiceBusTopicEventSubscriptionDestinationProperties DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new ServiceBusTopicEventSubscriptionDestinationProperties(content); + } + + /// + /// Creates a new instance of , deserializing the content + /// from a json string. + /// + /// a string containing a JSON serialized instance of this model. + /// + /// an instance of the model class. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IServiceBusTopicEventSubscriptionDestinationProperties FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode.Parse(jsonText)); + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + internal ServiceBusTopicEventSubscriptionDestinationProperties(global::System.Collections.IDictionary content) + { + bool returnNow = false; + BeforeDeserializeDictionary(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("ResourceId")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IServiceBusTopicEventSubscriptionDestinationPropertiesInternal)this).ResourceId = (string) content.GetValueForProperty("ResourceId",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IServiceBusTopicEventSubscriptionDestinationPropertiesInternal)this).ResourceId, global::System.Convert.ToString); + } + if (content.Contains("DeliveryAttributeMapping")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IServiceBusTopicEventSubscriptionDestinationPropertiesInternal)this).DeliveryAttributeMapping = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDeliveryAttributeMapping[]) content.GetValueForProperty("DeliveryAttributeMapping",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IServiceBusTopicEventSubscriptionDestinationPropertiesInternal)this).DeliveryAttributeMapping, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.DeliveryAttributeMappingTypeConverter.ConvertFrom)); + } + AfterDeserializeDictionary(content); + } + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + internal ServiceBusTopicEventSubscriptionDestinationProperties(global::System.Management.Automation.PSObject content) + { + bool returnNow = false; + BeforeDeserializePSObject(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("ResourceId")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IServiceBusTopicEventSubscriptionDestinationPropertiesInternal)this).ResourceId = (string) content.GetValueForProperty("ResourceId",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IServiceBusTopicEventSubscriptionDestinationPropertiesInternal)this).ResourceId, global::System.Convert.ToString); + } + if (content.Contains("DeliveryAttributeMapping")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IServiceBusTopicEventSubscriptionDestinationPropertiesInternal)this).DeliveryAttributeMapping = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDeliveryAttributeMapping[]) content.GetValueForProperty("DeliveryAttributeMapping",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IServiceBusTopicEventSubscriptionDestinationPropertiesInternal)this).DeliveryAttributeMapping, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.DeliveryAttributeMappingTypeConverter.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.EventGrid.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// The properties that represent the Service Bus Topic destination of an event subscription. + [System.ComponentModel.TypeConverter(typeof(ServiceBusTopicEventSubscriptionDestinationPropertiesTypeConverter))] + public partial interface IServiceBusTopicEventSubscriptionDestinationProperties + + { + + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/ServiceBusTopicEventSubscriptionDestinationProperties.TypeConverter.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/ServiceBusTopicEventSubscriptionDestinationProperties.TypeConverter.cs new file mode 100644 index 000000000000..f1d6af2913a8 --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/ServiceBusTopicEventSubscriptionDestinationProperties.TypeConverter.cs @@ -0,0 +1,152 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class ServiceBusTopicEventSubscriptionDestinationPropertiesTypeConverter : global::System.Management.Automation.PSTypeConverter + { + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false. + /// + public override bool CanConvertFrom(object sourceValue, global::System.Type destinationType) => CanConvertFrom(sourceValue); + + /// + /// Determines if the converter can convert the parameter to the . + /// + /// the instance to check if it can be converted to the type. + /// + /// true if the instance could be converted to a type, otherwise false + /// + public static bool CanConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return true; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + // we say yest to PSObjects + return true; + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + // we say yest to Hashtables/dictionaries + return true; + } + try + { + if (null != sourceValue.ToJsonString()) + { + return true; + } + } + catch + { + // Not one of our objects + } + try + { + string text = sourceValue.ToString()?.Trim(); + return true == text?.StartsWith("{") && true == text?.EndsWith("}") && Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonType.Object; + } + catch + { + // Doesn't look like it can be treated as JSON + } + return false; + } + + /// + /// Determines if the parameter can be converted to the parameter + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false + /// + public override bool CanConvertTo(object sourceValue, global::System.Type destinationType) => false; + + /// + /// Converts the parameter to the parameter using and + /// + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// + /// an instance of , or null if there is no suitable + /// conversion. + /// + public override object ConvertFrom(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => ConvertFrom(sourceValue); + + /// + /// Converts the parameter to the parameter using and + /// + /// the value to convert into an instance of . + /// + /// an instance of , or null if there is no suitable + /// conversion. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IServiceBusTopicEventSubscriptionDestinationProperties ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IServiceBusTopicEventSubscriptionDestinationProperties).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return ServiceBusTopicEventSubscriptionDestinationProperties.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return ServiceBusTopicEventSubscriptionDestinationProperties.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return ServiceBusTopicEventSubscriptionDestinationProperties.DeserializeFromDictionary(sourceValue); + } + return null; + } + + /// NotImplemented -- this will return null + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// will always return null. + public override object ConvertTo(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => null; + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/ServiceBusTopicEventSubscriptionDestinationProperties.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/ServiceBusTopicEventSubscriptionDestinationProperties.cs new file mode 100644 index 000000000000..8fd03733394d --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/ServiceBusTopicEventSubscriptionDestinationProperties.cs @@ -0,0 +1,78 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Extensions; + + /// + /// The properties that represent the Service Bus Topic destination of an event subscription. + /// + public partial class ServiceBusTopicEventSubscriptionDestinationProperties : + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IServiceBusTopicEventSubscriptionDestinationProperties, + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IServiceBusTopicEventSubscriptionDestinationPropertiesInternal + { + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDeliveryAttributeMapping[] _deliveryAttributeMapping; + + /// Delivery attribute details. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Owned)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDeliveryAttributeMapping[] DeliveryAttributeMapping { get => this._deliveryAttributeMapping; set => this._deliveryAttributeMapping = value; } + + /// Backing field for property. + private string _resourceId; + + /// + /// The Azure Resource Id that represents the endpoint of the Service Bus Topic destination of an event subscription. + /// + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Owned)] + public string ResourceId { get => this._resourceId; set => this._resourceId = value; } + + /// + /// Creates an new instance. + /// + public ServiceBusTopicEventSubscriptionDestinationProperties() + { + + } + } + /// The properties that represent the Service Bus Topic destination of an event subscription. + public partial interface IServiceBusTopicEventSubscriptionDestinationProperties : + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IJsonSerializable + { + /// Delivery attribute details. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Delivery attribute details.", + SerializedName = @"deliveryAttributeMappings", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDeliveryAttributeMapping),typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IStaticDeliveryAttributeMapping),typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDynamicDeliveryAttributeMapping) })] + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDeliveryAttributeMapping[] DeliveryAttributeMapping { get; set; } + /// + /// The Azure Resource Id that represents the endpoint of the Service Bus Topic destination of an event subscription. + /// + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The Azure Resource Id that represents the endpoint of the Service Bus Topic destination of an event subscription.", + SerializedName = @"resourceId", + PossibleTypes = new [] { typeof(string) })] + string ResourceId { get; set; } + + } + /// The properties that represent the Service Bus Topic destination of an event subscription. + internal partial interface IServiceBusTopicEventSubscriptionDestinationPropertiesInternal + + { + /// Delivery attribute details. + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDeliveryAttributeMapping[] DeliveryAttributeMapping { get; set; } + /// + /// The Azure Resource Id that represents the endpoint of the Service Bus Topic destination of an event subscription. + /// + string ResourceId { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/ServiceBusTopicEventSubscriptionDestinationProperties.json.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/ServiceBusTopicEventSubscriptionDestinationProperties.json.cs new file mode 100644 index 000000000000..650487469292 --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/ServiceBusTopicEventSubscriptionDestinationProperties.json.cs @@ -0,0 +1,121 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Extensions; + + /// + /// The properties that represent the Service Bus Topic destination of an event subscription. + /// + public partial class ServiceBusTopicEventSubscriptionDestinationProperties + { + + /// + /// AfterFromJson will be called after the json deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JsonNode that should be deserialized into this object. + + partial void AfterFromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json erialization has finished, allowing customization of the before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JSON container that the serialization result will be placed in. + + partial void AfterToJson(ref Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject container); + + /// + /// BeforeFromJson will be called before the json deserialization has commenced, allowing complete customization of + /// the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JsonNode that should be deserialized into this object. + /// Determines if the rest of the deserialization should be processed, or if the method should return + /// instantly. + + partial void BeforeFromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject json, ref bool returnNow); + + /// + /// BeforeToJson will be called before the json serialization has commenced, allowing complete customization of the + /// object before it is serialized. + /// If you wish to disable the default serialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JSON container that the serialization result will be placed in. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeToJson(ref Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IServiceBusTopicEventSubscriptionDestinationProperties. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IServiceBusTopicEventSubscriptionDestinationProperties. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IServiceBusTopicEventSubscriptionDestinationProperties FromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject json ? new ServiceBusTopicEventSubscriptionDestinationProperties(json) : null; + } + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject instance to deserialize from. + internal ServiceBusTopicEventSubscriptionDestinationProperties(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject json) + { + bool returnNow = false; + BeforeFromJson(json, ref returnNow); + if (returnNow) + { + return; + } + {_resourceId = If( json?.PropertyT("resourceId"), out var __jsonResourceId) ? (string)__jsonResourceId : (string)ResourceId;} + {_deliveryAttributeMapping = If( json?.PropertyT("deliveryAttributeMappings"), out var __jsonDeliveryAttributeMappings) ? If( __jsonDeliveryAttributeMappings as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Models.Api20211015Preview.IDeliveryAttributeMapping) (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.DeliveryAttributeMapping.FromJson(__u) )) ))() : null : DeliveryAttributeMapping;} + AfterFromJson(json); + } + + /// + /// Serializes this instance of into a . + /// + /// The container to serialize this object into. If the caller + /// passes in null, a new instance will be created and returned to the caller. + /// Allows the caller to choose the depth of the serialization. See . + /// + /// a serialized instance of as a . + /// + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject(); + + bool returnNow = false; + BeforeToJson(ref container, ref returnNow); + if (returnNow) + { + return container; + } + AddIf( null != (((object)this._resourceId)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonString(this._resourceId.ToString()) : null, "resourceId" ,container.Add ); + if (null != this._deliveryAttributeMapping) + { + var __w = new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.XNodeArray(); + foreach( var __x in this._deliveryAttributeMapping ) + { + AddIf(__x?.ToJson(null, serializationMode) ,__w.Add); + } + container.Add("deliveryAttributeMappings",__w); + } + AfterToJson(ref container); + return container; + } + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/StaticDeliveryAttributeMapping.PowerShell.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/StaticDeliveryAttributeMapping.PowerShell.cs new file mode 100644 index 000000000000..27e260b9949c --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/StaticDeliveryAttributeMapping.PowerShell.cs @@ -0,0 +1,176 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell; + + /// Static delivery attribute mapping details. + [System.ComponentModel.TypeConverter(typeof(StaticDeliveryAttributeMappingTypeConverter))] + public partial class StaticDeliveryAttributeMapping + { + + /// + /// AfterDeserializeDictionary will be called after the deserialization has finished, allowing customization of the + /// object before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Collections.IDictionary content that should be used. + + partial void AfterDeserializeDictionary(global::System.Collections.IDictionary content); + + /// + /// AfterDeserializePSObject will be called after the deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Management.Automation.PSObject content that should be used. + + partial void AfterDeserializePSObject(global::System.Management.Automation.PSObject content); + + /// + /// BeforeDeserializeDictionary will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Collections.IDictionary content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializeDictionary(global::System.Collections.IDictionary content, ref bool returnNow); + + /// + /// BeforeDeserializePSObject will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializePSObject(global::System.Management.Automation.PSObject content, ref bool returnNow); + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IStaticDeliveryAttributeMapping DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new StaticDeliveryAttributeMapping(content); + } + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IStaticDeliveryAttributeMapping DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new StaticDeliveryAttributeMapping(content); + } + + /// + /// Creates a new instance of , deserializing the content from a json string. + /// + /// a string containing a JSON serialized instance of this model. + /// an instance of the model class. + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IStaticDeliveryAttributeMapping FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode.Parse(jsonText)); + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + internal StaticDeliveryAttributeMapping(global::System.Collections.IDictionary content) + { + bool returnNow = false; + BeforeDeserializeDictionary(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("Property")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IStaticDeliveryAttributeMappingInternal)this).Property = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IStaticDeliveryAttributeMappingProperties) content.GetValueForProperty("Property",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IStaticDeliveryAttributeMappingInternal)this).Property, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.StaticDeliveryAttributeMappingPropertiesTypeConverter.ConvertFrom); + } + if (content.Contains("Name")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDeliveryAttributeMappingInternal)this).Name = (string) content.GetValueForProperty("Name",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDeliveryAttributeMappingInternal)this).Name, global::System.Convert.ToString); + } + if (content.Contains("Type")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDeliveryAttributeMappingInternal)this).Type = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.DeliveryAttributeMappingType) content.GetValueForProperty("Type",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDeliveryAttributeMappingInternal)this).Type, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.DeliveryAttributeMappingType.CreateFrom); + } + if (content.Contains("Value")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IStaticDeliveryAttributeMappingInternal)this).Value = (string) content.GetValueForProperty("Value",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IStaticDeliveryAttributeMappingInternal)this).Value, global::System.Convert.ToString); + } + if (content.Contains("IsSecret")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IStaticDeliveryAttributeMappingInternal)this).IsSecret = (bool?) content.GetValueForProperty("IsSecret",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IStaticDeliveryAttributeMappingInternal)this).IsSecret, (__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 StaticDeliveryAttributeMapping(global::System.Management.Automation.PSObject content) + { + bool returnNow = false; + BeforeDeserializePSObject(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("Property")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IStaticDeliveryAttributeMappingInternal)this).Property = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IStaticDeliveryAttributeMappingProperties) content.GetValueForProperty("Property",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IStaticDeliveryAttributeMappingInternal)this).Property, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.StaticDeliveryAttributeMappingPropertiesTypeConverter.ConvertFrom); + } + if (content.Contains("Name")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDeliveryAttributeMappingInternal)this).Name = (string) content.GetValueForProperty("Name",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDeliveryAttributeMappingInternal)this).Name, global::System.Convert.ToString); + } + if (content.Contains("Type")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDeliveryAttributeMappingInternal)this).Type = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.DeliveryAttributeMappingType) content.GetValueForProperty("Type",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDeliveryAttributeMappingInternal)this).Type, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.DeliveryAttributeMappingType.CreateFrom); + } + if (content.Contains("Value")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IStaticDeliveryAttributeMappingInternal)this).Value = (string) content.GetValueForProperty("Value",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IStaticDeliveryAttributeMappingInternal)this).Value, global::System.Convert.ToString); + } + if (content.Contains("IsSecret")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IStaticDeliveryAttributeMappingInternal)this).IsSecret = (bool?) content.GetValueForProperty("IsSecret",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IStaticDeliveryAttributeMappingInternal)this).IsSecret, (__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.EventGrid.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// Static delivery attribute mapping details. + [System.ComponentModel.TypeConverter(typeof(StaticDeliveryAttributeMappingTypeConverter))] + public partial interface IStaticDeliveryAttributeMapping + + { + + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/StaticDeliveryAttributeMapping.TypeConverter.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/StaticDeliveryAttributeMapping.TypeConverter.cs new file mode 100644 index 000000000000..cfa697d36af5 --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/StaticDeliveryAttributeMapping.TypeConverter.cs @@ -0,0 +1,147 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class StaticDeliveryAttributeMappingTypeConverter : global::System.Management.Automation.PSTypeConverter + { + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false. + /// + public override bool CanConvertFrom(object sourceValue, global::System.Type destinationType) => CanConvertFrom(sourceValue); + + /// + /// Determines if the converter can convert the parameter to the . + /// + /// the instance to check if it can be converted to the type. + /// + /// true if the instance could be converted to a type, otherwise false + /// + public static bool CanConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return true; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + // we say yest to PSObjects + return true; + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + // we say yest to Hashtables/dictionaries + return true; + } + try + { + if (null != sourceValue.ToJsonString()) + { + return true; + } + } + catch + { + // Not one of our objects + } + try + { + string text = sourceValue.ToString()?.Trim(); + return true == text?.StartsWith("{") && true == text?.EndsWith("}") && Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonType.Object; + } + catch + { + // Doesn't look like it can be treated as JSON + } + return false; + } + + /// + /// Determines if the parameter can be converted to the parameter + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false + /// + public override bool CanConvertTo(object sourceValue, global::System.Type destinationType) => false; + + /// + /// Converts the parameter to the parameter using and + /// + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// + /// an instance of , or null if there is no suitable conversion. + /// + public override object ConvertFrom(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => ConvertFrom(sourceValue); + + /// + /// Converts the parameter to the parameter using and + /// + /// the value to convert into an instance of . + /// + /// an instance of , or null if there is no suitable conversion. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IStaticDeliveryAttributeMapping ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IStaticDeliveryAttributeMapping).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return StaticDeliveryAttributeMapping.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return StaticDeliveryAttributeMapping.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return StaticDeliveryAttributeMapping.DeserializeFromDictionary(sourceValue); + } + return null; + } + + /// NotImplemented -- this will return null + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// will always return null. + public override object ConvertTo(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => null; + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/StaticDeliveryAttributeMapping.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/StaticDeliveryAttributeMapping.cs new file mode 100644 index 000000000000..9ba2f5bf88dc --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/StaticDeliveryAttributeMapping.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.EventGrid.Models.Api20211015Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Extensions; + + /// Static delivery attribute mapping details. + public partial class StaticDeliveryAttributeMapping : + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IStaticDeliveryAttributeMapping, + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IStaticDeliveryAttributeMappingInternal, + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IValidates + { + /// + /// Backing field for Inherited model + /// + private Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDeliveryAttributeMapping __deliveryAttributeMapping = new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.DeliveryAttributeMapping(); + + /// Boolean flag to tell if the attribute contains sensitive information . + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Inlined)] + public bool? IsSecret { get => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IStaticDeliveryAttributeMappingPropertiesInternal)Property).IsSecret; set => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IStaticDeliveryAttributeMappingPropertiesInternal)Property).IsSecret = value ?? default(bool); } + + /// Internal Acessors for Property + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IStaticDeliveryAttributeMappingProperties Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IStaticDeliveryAttributeMappingInternal.Property { get => (this._property = this._property ?? new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.StaticDeliveryAttributeMappingProperties()); set { {_property = value;} } } + + /// Name of the delivery attribute or header. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Inherited)] + public string Name { get => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDeliveryAttributeMappingInternal)__deliveryAttributeMapping).Name; set => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDeliveryAttributeMappingInternal)__deliveryAttributeMapping).Name = value ?? null; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IStaticDeliveryAttributeMappingProperties _property; + + /// Properties of static delivery attribute mapping. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Owned)] + internal Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IStaticDeliveryAttributeMappingProperties Property { get => (this._property = this._property ?? new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.StaticDeliveryAttributeMappingProperties()); set => this._property = value; } + + /// Type of the delivery attribute or header name. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Inherited)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.DeliveryAttributeMappingType Type { get => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDeliveryAttributeMappingInternal)__deliveryAttributeMapping).Type; set => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDeliveryAttributeMappingInternal)__deliveryAttributeMapping).Type = value ; } + + /// Value of the delivery attribute. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Inlined)] + public string Value { get => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IStaticDeliveryAttributeMappingPropertiesInternal)Property).Value; set => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IStaticDeliveryAttributeMappingPropertiesInternal)Property).Value = value ?? null; } + + /// Creates an new instance. + public StaticDeliveryAttributeMapping() + { + + } + + /// Validates that this object meets the validation criteria. + /// an instance that will receive validation + /// events. + /// + /// A that will be complete when validation is completed. + /// + public async global::System.Threading.Tasks.Task Validate(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener eventListener) + { + await eventListener.AssertNotNull(nameof(__deliveryAttributeMapping), __deliveryAttributeMapping); + await eventListener.AssertObjectIsValid(nameof(__deliveryAttributeMapping), __deliveryAttributeMapping); + } + } + /// Static delivery attribute mapping details. + public partial interface IStaticDeliveryAttributeMapping : + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IJsonSerializable, + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDeliveryAttributeMapping + { + /// Boolean flag to tell if the attribute contains sensitive information . + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Boolean flag to tell if the attribute contains sensitive information .", + SerializedName = @"isSecret", + PossibleTypes = new [] { typeof(bool) })] + bool? IsSecret { get; set; } + /// Value of the delivery attribute. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Value of the delivery attribute.", + SerializedName = @"value", + PossibleTypes = new [] { typeof(string) })] + string Value { get; set; } + + } + /// Static delivery attribute mapping details. + internal partial interface IStaticDeliveryAttributeMappingInternal : + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDeliveryAttributeMappingInternal + { + /// Boolean flag to tell if the attribute contains sensitive information . + bool? IsSecret { get; set; } + /// Properties of static delivery attribute mapping. + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IStaticDeliveryAttributeMappingProperties Property { get; set; } + /// Value of the delivery attribute. + string Value { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/StaticDeliveryAttributeMapping.json.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/StaticDeliveryAttributeMapping.json.cs new file mode 100644 index 000000000000..ba343209af27 --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/StaticDeliveryAttributeMapping.json.cs @@ -0,0 +1,108 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Extensions; + + /// Static delivery attribute mapping details. + public partial class StaticDeliveryAttributeMapping + { + + /// + /// AfterFromJson will be called after the json deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JsonNode that should be deserialized into this object. + + partial void AfterFromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json erialization has finished, allowing customization of the before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JSON container that the serialization result will be placed in. + + partial void AfterToJson(ref Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject container); + + /// + /// BeforeFromJson will be called before the json deserialization has commenced, allowing complete customization of + /// the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JsonNode that should be deserialized into this object. + /// Determines if the rest of the deserialization should be processed, or if the method should return + /// instantly. + + partial void BeforeFromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject json, ref bool returnNow); + + /// + /// BeforeToJson will be called before the json serialization has commenced, allowing complete customization of the + /// object before it is serialized. + /// If you wish to disable the default serialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JSON container that the serialization result will be placed in. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeToJson(ref Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IStaticDeliveryAttributeMapping. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IStaticDeliveryAttributeMapping. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IStaticDeliveryAttributeMapping FromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject json ? new StaticDeliveryAttributeMapping(json) : null; + } + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject instance to deserialize from. + internal StaticDeliveryAttributeMapping(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject json) + { + bool returnNow = false; + BeforeFromJson(json, ref returnNow); + if (returnNow) + { + return; + } + __deliveryAttributeMapping = new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.DeliveryAttributeMapping(json); + {_property = If( json?.PropertyT("properties"), out var __jsonProperties) ? Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.StaticDeliveryAttributeMappingProperties.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.EventGrid.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject(); + + bool returnNow = false; + BeforeToJson(ref container, ref returnNow); + if (returnNow) + { + return container; + } + __deliveryAttributeMapping?.ToJson(container, serializationMode); + AddIf( null != this._property ? (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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/eventgrid/generated/api/Models/Api20211015Preview/StaticDeliveryAttributeMappingProperties.PowerShell.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/StaticDeliveryAttributeMappingProperties.PowerShell.cs new file mode 100644 index 000000000000..72a3a9ba7ab5 --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/StaticDeliveryAttributeMappingProperties.PowerShell.cs @@ -0,0 +1,155 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell; + + /// Properties of static delivery attribute mapping. + [System.ComponentModel.TypeConverter(typeof(StaticDeliveryAttributeMappingPropertiesTypeConverter))] + public partial class StaticDeliveryAttributeMappingProperties + { + + /// + /// AfterDeserializeDictionary will be called after the deserialization has finished, allowing customization of the + /// object before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Collections.IDictionary content that should be used. + + partial void AfterDeserializeDictionary(global::System.Collections.IDictionary content); + + /// + /// AfterDeserializePSObject will be called after the deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Management.Automation.PSObject content that should be used. + + partial void AfterDeserializePSObject(global::System.Management.Automation.PSObject content); + + /// + /// BeforeDeserializeDictionary will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Collections.IDictionary content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializeDictionary(global::System.Collections.IDictionary content, ref bool returnNow); + + /// + /// BeforeDeserializePSObject will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializePSObject(global::System.Management.Automation.PSObject content, ref bool returnNow); + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IStaticDeliveryAttributeMappingProperties DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new StaticDeliveryAttributeMappingProperties(content); + } + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IStaticDeliveryAttributeMappingProperties DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new StaticDeliveryAttributeMappingProperties(content); + } + + /// + /// Creates a new instance of , deserializing the content from a json + /// string. + /// + /// a string containing a JSON serialized instance of this model. + /// + /// an instance of the model class. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IStaticDeliveryAttributeMappingProperties FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode.Parse(jsonText)); + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + internal StaticDeliveryAttributeMappingProperties(global::System.Collections.IDictionary content) + { + bool returnNow = false; + BeforeDeserializeDictionary(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("Value")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IStaticDeliveryAttributeMappingPropertiesInternal)this).Value = (string) content.GetValueForProperty("Value",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IStaticDeliveryAttributeMappingPropertiesInternal)this).Value, global::System.Convert.ToString); + } + if (content.Contains("IsSecret")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IStaticDeliveryAttributeMappingPropertiesInternal)this).IsSecret = (bool?) content.GetValueForProperty("IsSecret",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IStaticDeliveryAttributeMappingPropertiesInternal)this).IsSecret, (__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 StaticDeliveryAttributeMappingProperties(global::System.Management.Automation.PSObject content) + { + bool returnNow = false; + BeforeDeserializePSObject(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("Value")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IStaticDeliveryAttributeMappingPropertiesInternal)this).Value = (string) content.GetValueForProperty("Value",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IStaticDeliveryAttributeMappingPropertiesInternal)this).Value, global::System.Convert.ToString); + } + if (content.Contains("IsSecret")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IStaticDeliveryAttributeMappingPropertiesInternal)this).IsSecret = (bool?) content.GetValueForProperty("IsSecret",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IStaticDeliveryAttributeMappingPropertiesInternal)this).IsSecret, (__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.EventGrid.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// Properties of static delivery attribute mapping. + [System.ComponentModel.TypeConverter(typeof(StaticDeliveryAttributeMappingPropertiesTypeConverter))] + public partial interface IStaticDeliveryAttributeMappingProperties + + { + + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/StaticDeliveryAttributeMappingProperties.TypeConverter.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/StaticDeliveryAttributeMappingProperties.TypeConverter.cs new file mode 100644 index 000000000000..7c6ee963ab8b --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/StaticDeliveryAttributeMappingProperties.TypeConverter.cs @@ -0,0 +1,150 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class StaticDeliveryAttributeMappingPropertiesTypeConverter : global::System.Management.Automation.PSTypeConverter + { + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false. + /// + public override bool CanConvertFrom(object sourceValue, global::System.Type destinationType) => CanConvertFrom(sourceValue); + + /// + /// Determines if the converter can convert the parameter to the . + /// + /// the instance to check if it can be converted to the type. + /// + /// true if the instance could be converted to a type, otherwise + /// false + /// + public static bool CanConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return true; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + // we say yest to PSObjects + return true; + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + // we say yest to Hashtables/dictionaries + return true; + } + try + { + if (null != sourceValue.ToJsonString()) + { + return true; + } + } + catch + { + // Not one of our objects + } + try + { + string text = sourceValue.ToString()?.Trim(); + return true == text?.StartsWith("{") && true == text?.EndsWith("}") && Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonType.Object; + } + catch + { + // Doesn't look like it can be treated as JSON + } + return false; + } + + /// + /// Determines if the parameter can be converted to the parameter + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false + /// + public override bool CanConvertTo(object sourceValue, global::System.Type destinationType) => false; + + /// + /// Converts the parameter to the parameter using and + /// + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// + /// an instance of , or null if there is no suitable conversion. + /// + public override object ConvertFrom(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => ConvertFrom(sourceValue); + + /// + /// Converts the parameter to the parameter using and + /// + /// the value to convert into an instance of . + /// + /// an instance of , or null if there is no suitable conversion. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IStaticDeliveryAttributeMappingProperties ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IStaticDeliveryAttributeMappingProperties).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return StaticDeliveryAttributeMappingProperties.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return StaticDeliveryAttributeMappingProperties.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return StaticDeliveryAttributeMappingProperties.DeserializeFromDictionary(sourceValue); + } + return null; + } + + /// NotImplemented -- this will return null + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// will always return null. + public override object ConvertTo(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => null; + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/StaticDeliveryAttributeMappingProperties.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/StaticDeliveryAttributeMappingProperties.cs new file mode 100644 index 000000000000..4b427c137548 --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/StaticDeliveryAttributeMappingProperties.cs @@ -0,0 +1,70 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Extensions; + + /// Properties of static delivery attribute mapping. + public partial class StaticDeliveryAttributeMappingProperties : + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IStaticDeliveryAttributeMappingProperties, + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IStaticDeliveryAttributeMappingPropertiesInternal + { + + /// Backing field for property. + private bool? _isSecret; + + /// Boolean flag to tell if the attribute contains sensitive information . + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Owned)] + public bool? IsSecret { get => this._isSecret; set => this._isSecret = value; } + + /// Backing field for property. + private string _value; + + /// Value of the delivery attribute. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Owned)] + public string Value { get => this._value; set => this._value = value; } + + /// + /// Creates an new instance. + /// + public StaticDeliveryAttributeMappingProperties() + { + + } + } + /// Properties of static delivery attribute mapping. + public partial interface IStaticDeliveryAttributeMappingProperties : + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IJsonSerializable + { + /// Boolean flag to tell if the attribute contains sensitive information . + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Boolean flag to tell if the attribute contains sensitive information .", + SerializedName = @"isSecret", + PossibleTypes = new [] { typeof(bool) })] + bool? IsSecret { get; set; } + /// Value of the delivery attribute. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Value of the delivery attribute.", + SerializedName = @"value", + PossibleTypes = new [] { typeof(string) })] + string Value { get; set; } + + } + /// Properties of static delivery attribute mapping. + internal partial interface IStaticDeliveryAttributeMappingPropertiesInternal + + { + /// Boolean flag to tell if the attribute contains sensitive information . + bool? IsSecret { get; set; } + /// Value of the delivery attribute. + string Value { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/StaticDeliveryAttributeMappingProperties.json.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/StaticDeliveryAttributeMappingProperties.json.cs new file mode 100644 index 000000000000..58dfe1bafd17 --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/StaticDeliveryAttributeMappingProperties.json.cs @@ -0,0 +1,110 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Extensions; + + /// Properties of static delivery attribute mapping. + public partial class StaticDeliveryAttributeMappingProperties + { + + /// + /// AfterFromJson will be called after the json deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JsonNode that should be deserialized into this object. + + partial void AfterFromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json erialization has finished, allowing customization of the before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JSON container that the serialization result will be placed in. + + partial void AfterToJson(ref Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject container); + + /// + /// BeforeFromJson will be called before the json deserialization has commenced, allowing complete customization of + /// the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JsonNode that should be deserialized into this object. + /// Determines if the rest of the deserialization should be processed, or if the method should return + /// instantly. + + partial void BeforeFromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject json, ref bool returnNow); + + /// + /// BeforeToJson will be called before the json serialization has commenced, allowing complete customization of the + /// object before it is serialized. + /// If you wish to disable the default serialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JSON container that the serialization result will be placed in. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeToJson(ref Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IStaticDeliveryAttributeMappingProperties. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IStaticDeliveryAttributeMappingProperties. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IStaticDeliveryAttributeMappingProperties FromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject json ? new StaticDeliveryAttributeMappingProperties(json) : null; + } + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject instance to deserialize from. + internal StaticDeliveryAttributeMappingProperties(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject json) + { + bool returnNow = false; + BeforeFromJson(json, ref returnNow); + if (returnNow) + { + return; + } + {_value = If( json?.PropertyT("value"), out var __jsonValue) ? (string)__jsonValue : (string)Value;} + {_isSecret = If( json?.PropertyT("isSecret"), out var __jsonIsSecret) ? (bool?)__jsonIsSecret : IsSecret;} + AfterFromJson(json); + } + + /// + /// Serializes this instance of into a . + /// + /// The container to serialize this object into. If the caller + /// passes in null, a new instance will be created and returned to the caller. + /// Allows the caller to choose the depth of the serialization. See . + /// + /// a serialized instance of as a . + /// + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject(); + + bool returnNow = false; + BeforeToJson(ref container, ref returnNow); + if (returnNow) + { + return container; + } + AddIf( null != (((object)this._value)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonString(this._value.ToString()) : null, "value" ,container.Add ); + AddIf( null != this._isSecret ? (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode)new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonBoolean((bool)this._isSecret) : null, "isSecret" ,container.Add ); + AfterToJson(ref container); + return container; + } + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/StorageBlobDeadLetterDestination.PowerShell.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/StorageBlobDeadLetterDestination.PowerShell.cs new file mode 100644 index 000000000000..8b746a7fba81 --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/StorageBlobDeadLetterDestination.PowerShell.cs @@ -0,0 +1,168 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell; + + /// Information about the storage blob based dead letter destination. + [System.ComponentModel.TypeConverter(typeof(StorageBlobDeadLetterDestinationTypeConverter))] + public partial class StorageBlobDeadLetterDestination + { + + /// + /// AfterDeserializeDictionary will be called after the deserialization has finished, allowing customization of the + /// object before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Collections.IDictionary content that should be used. + + partial void AfterDeserializeDictionary(global::System.Collections.IDictionary content); + + /// + /// AfterDeserializePSObject will be called after the deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Management.Automation.PSObject content that should be used. + + partial void AfterDeserializePSObject(global::System.Management.Automation.PSObject content); + + /// + /// BeforeDeserializeDictionary will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Collections.IDictionary content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializeDictionary(global::System.Collections.IDictionary content, ref bool returnNow); + + /// + /// BeforeDeserializePSObject will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializePSObject(global::System.Management.Automation.PSObject content, ref bool returnNow); + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IStorageBlobDeadLetterDestination DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new StorageBlobDeadLetterDestination(content); + } + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IStorageBlobDeadLetterDestination DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new StorageBlobDeadLetterDestination(content); + } + + /// + /// Creates a new instance of , deserializing the content from a json string. + /// + /// a string containing a JSON serialized instance of this model. + /// an instance of the model class. + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IStorageBlobDeadLetterDestination FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode.Parse(jsonText)); + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + internal StorageBlobDeadLetterDestination(global::System.Collections.IDictionary content) + { + bool returnNow = false; + BeforeDeserializeDictionary(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("Property")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IStorageBlobDeadLetterDestinationInternal)this).Property = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IStorageBlobDeadLetterDestinationProperties) content.GetValueForProperty("Property",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IStorageBlobDeadLetterDestinationInternal)this).Property, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.StorageBlobDeadLetterDestinationPropertiesTypeConverter.ConvertFrom); + } + if (content.Contains("EndpointType")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDeadLetterDestinationInternal)this).EndpointType = (string) content.GetValueForProperty("EndpointType",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDeadLetterDestinationInternal)this).EndpointType, global::System.Convert.ToString); + } + if (content.Contains("ResourceId")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IStorageBlobDeadLetterDestinationInternal)this).ResourceId = (string) content.GetValueForProperty("ResourceId",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IStorageBlobDeadLetterDestinationInternal)this).ResourceId, global::System.Convert.ToString); + } + if (content.Contains("BlobContainerName")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IStorageBlobDeadLetterDestinationInternal)this).BlobContainerName = (string) content.GetValueForProperty("BlobContainerName",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IStorageBlobDeadLetterDestinationInternal)this).BlobContainerName, global::System.Convert.ToString); + } + AfterDeserializeDictionary(content); + } + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + internal StorageBlobDeadLetterDestination(global::System.Management.Automation.PSObject content) + { + bool returnNow = false; + BeforeDeserializePSObject(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("Property")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IStorageBlobDeadLetterDestinationInternal)this).Property = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IStorageBlobDeadLetterDestinationProperties) content.GetValueForProperty("Property",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IStorageBlobDeadLetterDestinationInternal)this).Property, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.StorageBlobDeadLetterDestinationPropertiesTypeConverter.ConvertFrom); + } + if (content.Contains("EndpointType")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDeadLetterDestinationInternal)this).EndpointType = (string) content.GetValueForProperty("EndpointType",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDeadLetterDestinationInternal)this).EndpointType, global::System.Convert.ToString); + } + if (content.Contains("ResourceId")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IStorageBlobDeadLetterDestinationInternal)this).ResourceId = (string) content.GetValueForProperty("ResourceId",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IStorageBlobDeadLetterDestinationInternal)this).ResourceId, global::System.Convert.ToString); + } + if (content.Contains("BlobContainerName")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IStorageBlobDeadLetterDestinationInternal)this).BlobContainerName = (string) content.GetValueForProperty("BlobContainerName",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IStorageBlobDeadLetterDestinationInternal)this).BlobContainerName, 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.EventGrid.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// Information about the storage blob based dead letter destination. + [System.ComponentModel.TypeConverter(typeof(StorageBlobDeadLetterDestinationTypeConverter))] + public partial interface IStorageBlobDeadLetterDestination + + { + + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/StorageBlobDeadLetterDestination.TypeConverter.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/StorageBlobDeadLetterDestination.TypeConverter.cs new file mode 100644 index 000000000000..2434ab5e5f58 --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/StorageBlobDeadLetterDestination.TypeConverter.cs @@ -0,0 +1,147 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class StorageBlobDeadLetterDestinationTypeConverter : global::System.Management.Automation.PSTypeConverter + { + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false. + /// + public override bool CanConvertFrom(object sourceValue, global::System.Type destinationType) => CanConvertFrom(sourceValue); + + /// + /// Determines if the converter can convert the parameter to the . + /// + /// the instance to check if it can be converted to the type. + /// + /// true if the instance could be converted to a type, otherwise false + /// + public static bool CanConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return true; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + // we say yest to PSObjects + return true; + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + // we say yest to Hashtables/dictionaries + return true; + } + try + { + if (null != sourceValue.ToJsonString()) + { + return true; + } + } + catch + { + // Not one of our objects + } + try + { + string text = sourceValue.ToString()?.Trim(); + return true == text?.StartsWith("{") && true == text?.EndsWith("}") && Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonType.Object; + } + catch + { + // Doesn't look like it can be treated as JSON + } + return false; + } + + /// + /// Determines if the parameter can be converted to the parameter + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false + /// + public override bool CanConvertTo(object sourceValue, global::System.Type destinationType) => false; + + /// + /// Converts the parameter to the parameter using and + /// + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// + /// an instance of , or null if there is no suitable conversion. + /// + public override object ConvertFrom(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => ConvertFrom(sourceValue); + + /// + /// Converts the parameter to the parameter using and + /// + /// the value to convert into an instance of . + /// + /// an instance of , or null if there is no suitable conversion. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IStorageBlobDeadLetterDestination ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IStorageBlobDeadLetterDestination).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return StorageBlobDeadLetterDestination.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return StorageBlobDeadLetterDestination.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return StorageBlobDeadLetterDestination.DeserializeFromDictionary(sourceValue); + } + return null; + } + + /// NotImplemented -- this will return null + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// will always return null. + public override object ConvertTo(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => null; + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/StorageBlobDeadLetterDestination.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/StorageBlobDeadLetterDestination.cs new file mode 100644 index 000000000000..d527776bb788 --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/StorageBlobDeadLetterDestination.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.EventGrid.Models.Api20211015Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Extensions; + + /// Information about the storage blob based dead letter destination. + public partial class StorageBlobDeadLetterDestination : + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IStorageBlobDeadLetterDestination, + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IStorageBlobDeadLetterDestinationInternal, + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IValidates + { + /// + /// Backing field for Inherited model + /// + private Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDeadLetterDestination __deadLetterDestination = new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.DeadLetterDestination(); + + /// + /// The name of the Storage blob container that is the destination of the deadletter events + /// + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Inlined)] + public string BlobContainerName { get => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IStorageBlobDeadLetterDestinationPropertiesInternal)Property).BlobContainerName; set => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IStorageBlobDeadLetterDestinationPropertiesInternal)Property).BlobContainerName = value ?? null; } + + /// Type of the endpoint for the dead letter destination + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Inherited)] + public string EndpointType { get => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDeadLetterDestinationInternal)__deadLetterDestination).EndpointType; } + + /// Internal Acessors for EndpointType + string Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDeadLetterDestinationInternal.EndpointType { get => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDeadLetterDestinationInternal)__deadLetterDestination).EndpointType; set => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDeadLetterDestinationInternal)__deadLetterDestination).EndpointType = value; } + + /// Internal Acessors for Property + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IStorageBlobDeadLetterDestinationProperties Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IStorageBlobDeadLetterDestinationInternal.Property { get => (this._property = this._property ?? new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.StorageBlobDeadLetterDestinationProperties()); set { {_property = value;} } } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IStorageBlobDeadLetterDestinationProperties _property; + + /// The properties of the Storage Blob based deadletter destination + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Owned)] + internal Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IStorageBlobDeadLetterDestinationProperties Property { get => (this._property = this._property ?? new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.StorageBlobDeadLetterDestinationProperties()); set => this._property = value; } + + /// + /// The Azure Resource ID of the storage account that is the destination of the deadletter events + /// + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Inlined)] + public string ResourceId { get => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IStorageBlobDeadLetterDestinationPropertiesInternal)Property).ResourceId; set => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IStorageBlobDeadLetterDestinationPropertiesInternal)Property).ResourceId = value ?? null; } + + /// Creates an new instance. + public StorageBlobDeadLetterDestination() + { + + } + + /// Validates that this object meets the validation criteria. + /// an instance that will receive validation + /// events. + /// + /// A that will be complete when validation is completed. + /// + public async global::System.Threading.Tasks.Task Validate(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener eventListener) + { + await eventListener.AssertNotNull(nameof(__deadLetterDestination), __deadLetterDestination); + await eventListener.AssertObjectIsValid(nameof(__deadLetterDestination), __deadLetterDestination); + } + } + /// Information about the storage blob based dead letter destination. + public partial interface IStorageBlobDeadLetterDestination : + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IJsonSerializable, + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDeadLetterDestination + { + /// + /// The name of the Storage blob container that is the destination of the deadletter events + /// + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The name of the Storage blob container that is the destination of the deadletter events", + SerializedName = @"blobContainerName", + PossibleTypes = new [] { typeof(string) })] + string BlobContainerName { get; set; } + /// + /// The Azure Resource ID of the storage account that is the destination of the deadletter events + /// + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The Azure Resource ID of the storage account that is the destination of the deadletter events", + SerializedName = @"resourceId", + PossibleTypes = new [] { typeof(string) })] + string ResourceId { get; set; } + + } + /// Information about the storage blob based dead letter destination. + internal partial interface IStorageBlobDeadLetterDestinationInternal : + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDeadLetterDestinationInternal + { + /// + /// The name of the Storage blob container that is the destination of the deadletter events + /// + string BlobContainerName { get; set; } + /// The properties of the Storage Blob based deadletter destination + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IStorageBlobDeadLetterDestinationProperties Property { get; set; } + /// + /// The Azure Resource ID of the storage account that is the destination of the deadletter events + /// + string ResourceId { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/StorageBlobDeadLetterDestination.json.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/StorageBlobDeadLetterDestination.json.cs new file mode 100644 index 000000000000..69ad026b4a48 --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/StorageBlobDeadLetterDestination.json.cs @@ -0,0 +1,108 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Extensions; + + /// Information about the storage blob based dead letter destination. + public partial class StorageBlobDeadLetterDestination + { + + /// + /// AfterFromJson will be called after the json deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JsonNode that should be deserialized into this object. + + partial void AfterFromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json erialization has finished, allowing customization of the before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JSON container that the serialization result will be placed in. + + partial void AfterToJson(ref Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject container); + + /// + /// BeforeFromJson will be called before the json deserialization has commenced, allowing complete customization of + /// the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JsonNode that should be deserialized into this object. + /// Determines if the rest of the deserialization should be processed, or if the method should return + /// instantly. + + partial void BeforeFromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject json, ref bool returnNow); + + /// + /// BeforeToJson will be called before the json serialization has commenced, allowing complete customization of the + /// object before it is serialized. + /// If you wish to disable the default serialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JSON container that the serialization result will be placed in. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeToJson(ref Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IStorageBlobDeadLetterDestination. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IStorageBlobDeadLetterDestination. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IStorageBlobDeadLetterDestination FromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject json ? new StorageBlobDeadLetterDestination(json) : null; + } + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject instance to deserialize from. + internal StorageBlobDeadLetterDestination(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject json) + { + bool returnNow = false; + BeforeFromJson(json, ref returnNow); + if (returnNow) + { + return; + } + __deadLetterDestination = new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.DeadLetterDestination(json); + {_property = If( json?.PropertyT("properties"), out var __jsonProperties) ? Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.StorageBlobDeadLetterDestinationProperties.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.EventGrid.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject(); + + bool returnNow = false; + BeforeToJson(ref container, ref returnNow); + if (returnNow) + { + return container; + } + __deadLetterDestination?.ToJson(container, serializationMode); + AddIf( null != this._property ? (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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/eventgrid/generated/api/Models/Api20211015Preview/StorageBlobDeadLetterDestinationProperties.PowerShell.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/StorageBlobDeadLetterDestinationProperties.PowerShell.cs new file mode 100644 index 000000000000..1cf100772b9c --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/StorageBlobDeadLetterDestinationProperties.PowerShell.cs @@ -0,0 +1,155 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell; + + /// Properties of the storage blob based dead letter destination. + [System.ComponentModel.TypeConverter(typeof(StorageBlobDeadLetterDestinationPropertiesTypeConverter))] + public partial class StorageBlobDeadLetterDestinationProperties + { + + /// + /// AfterDeserializeDictionary will be called after the deserialization has finished, allowing customization of the + /// object before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Collections.IDictionary content that should be used. + + partial void AfterDeserializeDictionary(global::System.Collections.IDictionary content); + + /// + /// AfterDeserializePSObject will be called after the deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Management.Automation.PSObject content that should be used. + + partial void AfterDeserializePSObject(global::System.Management.Automation.PSObject content); + + /// + /// BeforeDeserializeDictionary will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Collections.IDictionary content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializeDictionary(global::System.Collections.IDictionary content, ref bool returnNow); + + /// + /// BeforeDeserializePSObject will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializePSObject(global::System.Management.Automation.PSObject content, ref bool returnNow); + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IStorageBlobDeadLetterDestinationProperties DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new StorageBlobDeadLetterDestinationProperties(content); + } + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IStorageBlobDeadLetterDestinationProperties DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new StorageBlobDeadLetterDestinationProperties(content); + } + + /// + /// Creates a new instance of , deserializing the content from a + /// json string. + /// + /// a string containing a JSON serialized instance of this model. + /// + /// an instance of the model class. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IStorageBlobDeadLetterDestinationProperties FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode.Parse(jsonText)); + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + internal StorageBlobDeadLetterDestinationProperties(global::System.Collections.IDictionary content) + { + bool returnNow = false; + BeforeDeserializeDictionary(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("ResourceId")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IStorageBlobDeadLetterDestinationPropertiesInternal)this).ResourceId = (string) content.GetValueForProperty("ResourceId",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IStorageBlobDeadLetterDestinationPropertiesInternal)this).ResourceId, global::System.Convert.ToString); + } + if (content.Contains("BlobContainerName")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IStorageBlobDeadLetterDestinationPropertiesInternal)this).BlobContainerName = (string) content.GetValueForProperty("BlobContainerName",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IStorageBlobDeadLetterDestinationPropertiesInternal)this).BlobContainerName, global::System.Convert.ToString); + } + AfterDeserializeDictionary(content); + } + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + internal StorageBlobDeadLetterDestinationProperties(global::System.Management.Automation.PSObject content) + { + bool returnNow = false; + BeforeDeserializePSObject(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("ResourceId")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IStorageBlobDeadLetterDestinationPropertiesInternal)this).ResourceId = (string) content.GetValueForProperty("ResourceId",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IStorageBlobDeadLetterDestinationPropertiesInternal)this).ResourceId, global::System.Convert.ToString); + } + if (content.Contains("BlobContainerName")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IStorageBlobDeadLetterDestinationPropertiesInternal)this).BlobContainerName = (string) content.GetValueForProperty("BlobContainerName",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IStorageBlobDeadLetterDestinationPropertiesInternal)this).BlobContainerName, 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.EventGrid.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// Properties of the storage blob based dead letter destination. + [System.ComponentModel.TypeConverter(typeof(StorageBlobDeadLetterDestinationPropertiesTypeConverter))] + public partial interface IStorageBlobDeadLetterDestinationProperties + + { + + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/StorageBlobDeadLetterDestinationProperties.TypeConverter.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/StorageBlobDeadLetterDestinationProperties.TypeConverter.cs new file mode 100644 index 000000000000..c9abb0fea7e2 --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/StorageBlobDeadLetterDestinationProperties.TypeConverter.cs @@ -0,0 +1,150 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class StorageBlobDeadLetterDestinationPropertiesTypeConverter : global::System.Management.Automation.PSTypeConverter + { + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false. + /// + public override bool CanConvertFrom(object sourceValue, global::System.Type destinationType) => CanConvertFrom(sourceValue); + + /// + /// Determines if the converter can convert the parameter to the . + /// + /// the instance to check if it can be converted to the type. + /// + /// true if the instance could be converted to a type, otherwise + /// false + /// + public static bool CanConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return true; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + // we say yest to PSObjects + return true; + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + // we say yest to Hashtables/dictionaries + return true; + } + try + { + if (null != sourceValue.ToJsonString()) + { + return true; + } + } + catch + { + // Not one of our objects + } + try + { + string text = sourceValue.ToString()?.Trim(); + return true == text?.StartsWith("{") && true == text?.EndsWith("}") && Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonType.Object; + } + catch + { + // Doesn't look like it can be treated as JSON + } + return false; + } + + /// + /// Determines if the parameter can be converted to the parameter + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false + /// + public override bool CanConvertTo(object sourceValue, global::System.Type destinationType) => false; + + /// + /// Converts the parameter to the parameter using and + /// + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// + /// an instance of , or null if there is no suitable conversion. + /// + public override object ConvertFrom(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => ConvertFrom(sourceValue); + + /// + /// Converts the parameter to the parameter using and + /// + /// the value to convert into an instance of . + /// + /// an instance of , or null if there is no suitable conversion. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IStorageBlobDeadLetterDestinationProperties ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IStorageBlobDeadLetterDestinationProperties).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return StorageBlobDeadLetterDestinationProperties.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return StorageBlobDeadLetterDestinationProperties.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return StorageBlobDeadLetterDestinationProperties.DeserializeFromDictionary(sourceValue); + } + return null; + } + + /// NotImplemented -- this will return null + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// will always return null. + public override object ConvertTo(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => null; + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/StorageBlobDeadLetterDestinationProperties.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/StorageBlobDeadLetterDestinationProperties.cs new file mode 100644 index 000000000000..ab3334c4672a --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/StorageBlobDeadLetterDestinationProperties.cs @@ -0,0 +1,82 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Extensions; + + /// Properties of the storage blob based dead letter destination. + public partial class StorageBlobDeadLetterDestinationProperties : + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IStorageBlobDeadLetterDestinationProperties, + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IStorageBlobDeadLetterDestinationPropertiesInternal + { + + /// Backing field for property. + private string _blobContainerName; + + /// + /// The name of the Storage blob container that is the destination of the deadletter events + /// + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Owned)] + public string BlobContainerName { get => this._blobContainerName; set => this._blobContainerName = value; } + + /// Backing field for property. + private string _resourceId; + + /// + /// The Azure Resource ID of the storage account that is the destination of the deadletter events + /// + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Owned)] + public string ResourceId { get => this._resourceId; set => this._resourceId = value; } + + /// + /// Creates an new instance. + /// + public StorageBlobDeadLetterDestinationProperties() + { + + } + } + /// Properties of the storage blob based dead letter destination. + public partial interface IStorageBlobDeadLetterDestinationProperties : + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IJsonSerializable + { + /// + /// The name of the Storage blob container that is the destination of the deadletter events + /// + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The name of the Storage blob container that is the destination of the deadletter events", + SerializedName = @"blobContainerName", + PossibleTypes = new [] { typeof(string) })] + string BlobContainerName { get; set; } + /// + /// The Azure Resource ID of the storage account that is the destination of the deadletter events + /// + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The Azure Resource ID of the storage account that is the destination of the deadletter events", + SerializedName = @"resourceId", + PossibleTypes = new [] { typeof(string) })] + string ResourceId { get; set; } + + } + /// Properties of the storage blob based dead letter destination. + internal partial interface IStorageBlobDeadLetterDestinationPropertiesInternal + + { + /// + /// The name of the Storage blob container that is the destination of the deadletter events + /// + string BlobContainerName { get; set; } + /// + /// The Azure Resource ID of the storage account that is the destination of the deadletter events + /// + string ResourceId { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/StorageBlobDeadLetterDestinationProperties.json.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/StorageBlobDeadLetterDestinationProperties.json.cs new file mode 100644 index 000000000000..c044d12aef06 --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/StorageBlobDeadLetterDestinationProperties.json.cs @@ -0,0 +1,110 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Extensions; + + /// Properties of the storage blob based dead letter destination. + public partial class StorageBlobDeadLetterDestinationProperties + { + + /// + /// AfterFromJson will be called after the json deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JsonNode that should be deserialized into this object. + + partial void AfterFromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json erialization has finished, allowing customization of the before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JSON container that the serialization result will be placed in. + + partial void AfterToJson(ref Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject container); + + /// + /// BeforeFromJson will be called before the json deserialization has commenced, allowing complete customization of + /// the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JsonNode that should be deserialized into this object. + /// Determines if the rest of the deserialization should be processed, or if the method should return + /// instantly. + + partial void BeforeFromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject json, ref bool returnNow); + + /// + /// BeforeToJson will be called before the json serialization has commenced, allowing complete customization of the + /// object before it is serialized. + /// If you wish to disable the default serialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JSON container that the serialization result will be placed in. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeToJson(ref Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IStorageBlobDeadLetterDestinationProperties. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IStorageBlobDeadLetterDestinationProperties. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IStorageBlobDeadLetterDestinationProperties FromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject json ? new StorageBlobDeadLetterDestinationProperties(json) : null; + } + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject instance to deserialize from. + internal StorageBlobDeadLetterDestinationProperties(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject json) + { + bool returnNow = false; + BeforeFromJson(json, ref returnNow); + if (returnNow) + { + return; + } + {_resourceId = If( json?.PropertyT("resourceId"), out var __jsonResourceId) ? (string)__jsonResourceId : (string)ResourceId;} + {_blobContainerName = If( json?.PropertyT("blobContainerName"), out var __jsonBlobContainerName) ? (string)__jsonBlobContainerName : (string)BlobContainerName;} + AfterFromJson(json); + } + + /// + /// Serializes this instance of into a . + /// + /// The container to serialize this object into. If the caller + /// passes in null, a new instance will be created and returned to the caller. + /// Allows the caller to choose the depth of the serialization. See . + /// + /// a serialized instance of as a . + /// + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject(); + + bool returnNow = false; + BeforeToJson(ref container, ref returnNow); + if (returnNow) + { + return container; + } + AddIf( null != (((object)this._resourceId)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonString(this._resourceId.ToString()) : null, "resourceId" ,container.Add ); + AddIf( null != (((object)this._blobContainerName)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonString(this._blobContainerName.ToString()) : null, "blobContainerName" ,container.Add ); + AfterToJson(ref container); + return container; + } + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/StorageQueueEventSubscriptionDestination.PowerShell.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/StorageQueueEventSubscriptionDestination.PowerShell.cs new file mode 100644 index 000000000000..75e451e69ae1 --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/StorageQueueEventSubscriptionDestination.PowerShell.cs @@ -0,0 +1,179 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell; + + /// Information about the storage queue destination for an event subscription. + [System.ComponentModel.TypeConverter(typeof(StorageQueueEventSubscriptionDestinationTypeConverter))] + public partial class StorageQueueEventSubscriptionDestination + { + + /// + /// AfterDeserializeDictionary will be called after the deserialization has finished, allowing customization of the + /// object before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Collections.IDictionary content that should be used. + + partial void AfterDeserializeDictionary(global::System.Collections.IDictionary content); + + /// + /// AfterDeserializePSObject will be called after the deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Management.Automation.PSObject content that should be used. + + partial void AfterDeserializePSObject(global::System.Management.Automation.PSObject content); + + /// + /// BeforeDeserializeDictionary will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Collections.IDictionary content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializeDictionary(global::System.Collections.IDictionary content, ref bool returnNow); + + /// + /// BeforeDeserializePSObject will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializePSObject(global::System.Management.Automation.PSObject content, ref bool returnNow); + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IStorageQueueEventSubscriptionDestination DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new StorageQueueEventSubscriptionDestination(content); + } + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IStorageQueueEventSubscriptionDestination DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new StorageQueueEventSubscriptionDestination(content); + } + + /// + /// Creates a new instance of , deserializing the content from a json + /// string. + /// + /// a string containing a JSON serialized instance of this model. + /// + /// an instance of the model class. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IStorageQueueEventSubscriptionDestination FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode.Parse(jsonText)); + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + internal StorageQueueEventSubscriptionDestination(global::System.Collections.IDictionary content) + { + bool returnNow = false; + BeforeDeserializeDictionary(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("Property")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IStorageQueueEventSubscriptionDestinationInternal)this).Property = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IStorageQueueEventSubscriptionDestinationProperties) content.GetValueForProperty("Property",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IStorageQueueEventSubscriptionDestinationInternal)this).Property, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.StorageQueueEventSubscriptionDestinationPropertiesTypeConverter.ConvertFrom); + } + if (content.Contains("EndpointType")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionDestinationInternal)this).EndpointType = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EndpointType) content.GetValueForProperty("EndpointType",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionDestinationInternal)this).EndpointType, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EndpointType.CreateFrom); + } + if (content.Contains("ResourceId")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IStorageQueueEventSubscriptionDestinationInternal)this).ResourceId = (string) content.GetValueForProperty("ResourceId",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IStorageQueueEventSubscriptionDestinationInternal)this).ResourceId, global::System.Convert.ToString); + } + if (content.Contains("QueueName")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IStorageQueueEventSubscriptionDestinationInternal)this).QueueName = (string) content.GetValueForProperty("QueueName",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IStorageQueueEventSubscriptionDestinationInternal)this).QueueName, global::System.Convert.ToString); + } + if (content.Contains("QueueMessageTimeToLiveInSecond")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IStorageQueueEventSubscriptionDestinationInternal)this).QueueMessageTimeToLiveInSecond = (long?) content.GetValueForProperty("QueueMessageTimeToLiveInSecond",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IStorageQueueEventSubscriptionDestinationInternal)this).QueueMessageTimeToLiveInSecond, (__y)=> (long) global::System.Convert.ChangeType(__y, typeof(long))); + } + AfterDeserializeDictionary(content); + } + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + internal StorageQueueEventSubscriptionDestination(global::System.Management.Automation.PSObject content) + { + bool returnNow = false; + BeforeDeserializePSObject(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("Property")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IStorageQueueEventSubscriptionDestinationInternal)this).Property = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IStorageQueueEventSubscriptionDestinationProperties) content.GetValueForProperty("Property",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IStorageQueueEventSubscriptionDestinationInternal)this).Property, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.StorageQueueEventSubscriptionDestinationPropertiesTypeConverter.ConvertFrom); + } + if (content.Contains("EndpointType")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionDestinationInternal)this).EndpointType = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EndpointType) content.GetValueForProperty("EndpointType",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionDestinationInternal)this).EndpointType, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EndpointType.CreateFrom); + } + if (content.Contains("ResourceId")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IStorageQueueEventSubscriptionDestinationInternal)this).ResourceId = (string) content.GetValueForProperty("ResourceId",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IStorageQueueEventSubscriptionDestinationInternal)this).ResourceId, global::System.Convert.ToString); + } + if (content.Contains("QueueName")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IStorageQueueEventSubscriptionDestinationInternal)this).QueueName = (string) content.GetValueForProperty("QueueName",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IStorageQueueEventSubscriptionDestinationInternal)this).QueueName, global::System.Convert.ToString); + } + if (content.Contains("QueueMessageTimeToLiveInSecond")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IStorageQueueEventSubscriptionDestinationInternal)this).QueueMessageTimeToLiveInSecond = (long?) content.GetValueForProperty("QueueMessageTimeToLiveInSecond",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IStorageQueueEventSubscriptionDestinationInternal)this).QueueMessageTimeToLiveInSecond, (__y)=> (long) global::System.Convert.ChangeType(__y, typeof(long))); + } + AfterDeserializePSObject(content); + } + + /// Serializes this instance to a json string. + + /// a containing this model serialized to JSON text. + public string ToJsonString() => ToJson(null, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// Information about the storage queue destination for an event subscription. + [System.ComponentModel.TypeConverter(typeof(StorageQueueEventSubscriptionDestinationTypeConverter))] + public partial interface IStorageQueueEventSubscriptionDestination + + { + + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/StorageQueueEventSubscriptionDestination.TypeConverter.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/StorageQueueEventSubscriptionDestination.TypeConverter.cs new file mode 100644 index 000000000000..2c1f4696567b --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/StorageQueueEventSubscriptionDestination.TypeConverter.cs @@ -0,0 +1,150 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class StorageQueueEventSubscriptionDestinationTypeConverter : global::System.Management.Automation.PSTypeConverter + { + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false. + /// + public override bool CanConvertFrom(object sourceValue, global::System.Type destinationType) => CanConvertFrom(sourceValue); + + /// + /// Determines if the converter can convert the parameter to the . + /// + /// the instance to check if it can be converted to the type. + /// + /// true if the instance could be converted to a type, otherwise + /// false + /// + public static bool CanConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return true; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + // we say yest to PSObjects + return true; + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + // we say yest to Hashtables/dictionaries + return true; + } + try + { + if (null != sourceValue.ToJsonString()) + { + return true; + } + } + catch + { + // Not one of our objects + } + try + { + string text = sourceValue.ToString()?.Trim(); + return true == text?.StartsWith("{") && true == text?.EndsWith("}") && Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonType.Object; + } + catch + { + // Doesn't look like it can be treated as JSON + } + return false; + } + + /// + /// Determines if the parameter can be converted to the parameter + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false + /// + public override bool CanConvertTo(object sourceValue, global::System.Type destinationType) => false; + + /// + /// Converts the parameter to the parameter using and + /// + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// + /// an instance of , or null if there is no suitable conversion. + /// + public override object ConvertFrom(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => ConvertFrom(sourceValue); + + /// + /// Converts the parameter to the parameter using and + /// + /// the value to convert into an instance of . + /// + /// an instance of , or null if there is no suitable conversion. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IStorageQueueEventSubscriptionDestination ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IStorageQueueEventSubscriptionDestination).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return StorageQueueEventSubscriptionDestination.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return StorageQueueEventSubscriptionDestination.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return StorageQueueEventSubscriptionDestination.DeserializeFromDictionary(sourceValue); + } + return null; + } + + /// NotImplemented -- this will return null + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// will always return null. + public override object ConvertTo(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => null; + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/StorageQueueEventSubscriptionDestination.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/StorageQueueEventSubscriptionDestination.cs new file mode 100644 index 000000000000..262ffd729e30 --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/StorageQueueEventSubscriptionDestination.cs @@ -0,0 +1,125 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Extensions; + + /// Information about the storage queue destination for an event subscription. + public partial class StorageQueueEventSubscriptionDestination : + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IStorageQueueEventSubscriptionDestination, + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IStorageQueueEventSubscriptionDestinationInternal, + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IValidates + { + /// + /// Backing field for Inherited model + /// + private Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionDestination __eventSubscriptionDestination = new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.EventSubscriptionDestination(); + + /// Type of the endpoint for the event subscription destination. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Inherited)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EndpointType EndpointType { get => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionDestinationInternal)__eventSubscriptionDestination).EndpointType; set => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionDestinationInternal)__eventSubscriptionDestination).EndpointType = value ; } + + /// Internal Acessors for Property + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IStorageQueueEventSubscriptionDestinationProperties Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IStorageQueueEventSubscriptionDestinationInternal.Property { get => (this._property = this._property ?? new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.StorageQueueEventSubscriptionDestinationProperties()); set { {_property = value;} } } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IStorageQueueEventSubscriptionDestinationProperties _property; + + /// Storage Queue Properties of the event subscription destination. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Owned)] + internal Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IStorageQueueEventSubscriptionDestinationProperties Property { get => (this._property = this._property ?? new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.StorageQueueEventSubscriptionDestinationProperties()); set => this._property = value; } + + /// Storage queue message time to live in seconds. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Inlined)] + public long? QueueMessageTimeToLiveInSecond { get => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IStorageQueueEventSubscriptionDestinationPropertiesInternal)Property).QueueMessageTimeToLiveInSecond; set => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IStorageQueueEventSubscriptionDestinationPropertiesInternal)Property).QueueMessageTimeToLiveInSecond = value ?? default(long); } + + /// + /// The name of the Storage queue under a storage account that is the destination of an event subscription. + /// + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Inlined)] + public string QueueName { get => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IStorageQueueEventSubscriptionDestinationPropertiesInternal)Property).QueueName; set => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IStorageQueueEventSubscriptionDestinationPropertiesInternal)Property).QueueName = value ?? null; } + + /// + /// The Azure Resource ID of the storage account that contains the queue that is the destination of an event subscription. + /// + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Inlined)] + public string ResourceId { get => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IStorageQueueEventSubscriptionDestinationPropertiesInternal)Property).ResourceId; set => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IStorageQueueEventSubscriptionDestinationPropertiesInternal)Property).ResourceId = value ?? null; } + + /// + /// Creates an new instance. + /// + public StorageQueueEventSubscriptionDestination() + { + + } + + /// Validates that this object meets the validation criteria. + /// an instance that will receive validation + /// events. + /// + /// A that will be complete when validation is completed. + /// + public async global::System.Threading.Tasks.Task Validate(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener eventListener) + { + await eventListener.AssertNotNull(nameof(__eventSubscriptionDestination), __eventSubscriptionDestination); + await eventListener.AssertObjectIsValid(nameof(__eventSubscriptionDestination), __eventSubscriptionDestination); + } + } + /// Information about the storage queue destination for an event subscription. + public partial interface IStorageQueueEventSubscriptionDestination : + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IJsonSerializable, + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionDestination + { + /// Storage queue message time to live in seconds. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Storage queue message time to live in seconds.", + SerializedName = @"queueMessageTimeToLiveInSeconds", + PossibleTypes = new [] { typeof(long) })] + long? QueueMessageTimeToLiveInSecond { get; set; } + /// + /// The name of the Storage queue under a storage account that is the destination of an event subscription. + /// + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The name of the Storage queue under a storage account that is the destination of an event subscription.", + SerializedName = @"queueName", + PossibleTypes = new [] { typeof(string) })] + string QueueName { get; set; } + /// + /// The Azure Resource ID of the storage account that contains the queue that is the destination of an event subscription. + /// + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The Azure Resource ID of the storage account that contains the queue that is the destination of an event subscription.", + SerializedName = @"resourceId", + PossibleTypes = new [] { typeof(string) })] + string ResourceId { get; set; } + + } + /// Information about the storage queue destination for an event subscription. + internal partial interface IStorageQueueEventSubscriptionDestinationInternal : + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionDestinationInternal + { + /// Storage Queue Properties of the event subscription destination. + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IStorageQueueEventSubscriptionDestinationProperties Property { get; set; } + /// Storage queue message time to live in seconds. + long? QueueMessageTimeToLiveInSecond { get; set; } + /// + /// The name of the Storage queue under a storage account that is the destination of an event subscription. + /// + string QueueName { get; set; } + /// + /// The Azure Resource ID of the storage account that contains the queue that is the destination of an event subscription. + /// + string ResourceId { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/StorageQueueEventSubscriptionDestination.json.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/StorageQueueEventSubscriptionDestination.json.cs new file mode 100644 index 000000000000..2b29d6c9e83a --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/StorageQueueEventSubscriptionDestination.json.cs @@ -0,0 +1,110 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Extensions; + + /// Information about the storage queue destination for an event subscription. + public partial class StorageQueueEventSubscriptionDestination + { + + /// + /// AfterFromJson will be called after the json deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JsonNode that should be deserialized into this object. + + partial void AfterFromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json erialization has finished, allowing customization of the before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JSON container that the serialization result will be placed in. + + partial void AfterToJson(ref Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject container); + + /// + /// BeforeFromJson will be called before the json deserialization has commenced, allowing complete customization of + /// the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JsonNode that should be deserialized into this object. + /// Determines if the rest of the deserialization should be processed, or if the method should return + /// instantly. + + partial void BeforeFromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject json, ref bool returnNow); + + /// + /// BeforeToJson will be called before the json serialization has commenced, allowing complete customization of the + /// object before it is serialized. + /// If you wish to disable the default serialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JSON container that the serialization result will be placed in. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeToJson(ref Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IStorageQueueEventSubscriptionDestination. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IStorageQueueEventSubscriptionDestination. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IStorageQueueEventSubscriptionDestination FromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject json ? new StorageQueueEventSubscriptionDestination(json) : null; + } + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject instance to deserialize from. + internal StorageQueueEventSubscriptionDestination(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject json) + { + bool returnNow = false; + BeforeFromJson(json, ref returnNow); + if (returnNow) + { + return; + } + __eventSubscriptionDestination = new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.EventSubscriptionDestination(json); + {_property = If( json?.PropertyT("properties"), out var __jsonProperties) ? Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.StorageQueueEventSubscriptionDestinationProperties.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.EventGrid.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject(); + + bool returnNow = false; + BeforeToJson(ref container, ref returnNow); + if (returnNow) + { + return container; + } + __eventSubscriptionDestination?.ToJson(container, serializationMode); + AddIf( null != this._property ? (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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/eventgrid/generated/api/Models/Api20211015Preview/StorageQueueEventSubscriptionDestinationProperties.PowerShell.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/StorageQueueEventSubscriptionDestinationProperties.PowerShell.cs new file mode 100644 index 000000000000..61ee581a43c7 --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/StorageQueueEventSubscriptionDestinationProperties.PowerShell.cs @@ -0,0 +1,163 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell; + + /// The properties for a storage queue destination. + [System.ComponentModel.TypeConverter(typeof(StorageQueueEventSubscriptionDestinationPropertiesTypeConverter))] + public partial class StorageQueueEventSubscriptionDestinationProperties + { + + /// + /// AfterDeserializeDictionary will be called after the deserialization has finished, allowing customization of the + /// object before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Collections.IDictionary content that should be used. + + partial void AfterDeserializeDictionary(global::System.Collections.IDictionary content); + + /// + /// AfterDeserializePSObject will be called after the deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Management.Automation.PSObject content that should be used. + + partial void AfterDeserializePSObject(global::System.Management.Automation.PSObject content); + + /// + /// BeforeDeserializeDictionary will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Collections.IDictionary content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializeDictionary(global::System.Collections.IDictionary content, ref bool returnNow); + + /// + /// BeforeDeserializePSObject will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializePSObject(global::System.Management.Automation.PSObject content, ref bool returnNow); + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IStorageQueueEventSubscriptionDestinationProperties DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new StorageQueueEventSubscriptionDestinationProperties(content); + } + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IStorageQueueEventSubscriptionDestinationProperties DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new StorageQueueEventSubscriptionDestinationProperties(content); + } + + /// + /// Creates a new instance of , deserializing the content + /// from a json string. + /// + /// a string containing a JSON serialized instance of this model. + /// + /// an instance of the model class. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IStorageQueueEventSubscriptionDestinationProperties FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode.Parse(jsonText)); + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + internal StorageQueueEventSubscriptionDestinationProperties(global::System.Collections.IDictionary content) + { + bool returnNow = false; + BeforeDeserializeDictionary(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("ResourceId")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IStorageQueueEventSubscriptionDestinationPropertiesInternal)this).ResourceId = (string) content.GetValueForProperty("ResourceId",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IStorageQueueEventSubscriptionDestinationPropertiesInternal)this).ResourceId, global::System.Convert.ToString); + } + if (content.Contains("QueueName")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IStorageQueueEventSubscriptionDestinationPropertiesInternal)this).QueueName = (string) content.GetValueForProperty("QueueName",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IStorageQueueEventSubscriptionDestinationPropertiesInternal)this).QueueName, global::System.Convert.ToString); + } + if (content.Contains("QueueMessageTimeToLiveInSecond")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IStorageQueueEventSubscriptionDestinationPropertiesInternal)this).QueueMessageTimeToLiveInSecond = (long?) content.GetValueForProperty("QueueMessageTimeToLiveInSecond",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IStorageQueueEventSubscriptionDestinationPropertiesInternal)this).QueueMessageTimeToLiveInSecond, (__y)=> (long) global::System.Convert.ChangeType(__y, typeof(long))); + } + AfterDeserializeDictionary(content); + } + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + internal StorageQueueEventSubscriptionDestinationProperties(global::System.Management.Automation.PSObject content) + { + bool returnNow = false; + BeforeDeserializePSObject(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("ResourceId")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IStorageQueueEventSubscriptionDestinationPropertiesInternal)this).ResourceId = (string) content.GetValueForProperty("ResourceId",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IStorageQueueEventSubscriptionDestinationPropertiesInternal)this).ResourceId, global::System.Convert.ToString); + } + if (content.Contains("QueueName")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IStorageQueueEventSubscriptionDestinationPropertiesInternal)this).QueueName = (string) content.GetValueForProperty("QueueName",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IStorageQueueEventSubscriptionDestinationPropertiesInternal)this).QueueName, global::System.Convert.ToString); + } + if (content.Contains("QueueMessageTimeToLiveInSecond")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IStorageQueueEventSubscriptionDestinationPropertiesInternal)this).QueueMessageTimeToLiveInSecond = (long?) content.GetValueForProperty("QueueMessageTimeToLiveInSecond",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IStorageQueueEventSubscriptionDestinationPropertiesInternal)this).QueueMessageTimeToLiveInSecond, (__y)=> (long) global::System.Convert.ChangeType(__y, typeof(long))); + } + AfterDeserializePSObject(content); + } + + /// Serializes this instance to a json string. + + /// a containing this model serialized to JSON text. + public string ToJsonString() => ToJson(null, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// The properties for a storage queue destination. + [System.ComponentModel.TypeConverter(typeof(StorageQueueEventSubscriptionDestinationPropertiesTypeConverter))] + public partial interface IStorageQueueEventSubscriptionDestinationProperties + + { + + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/StorageQueueEventSubscriptionDestinationProperties.TypeConverter.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/StorageQueueEventSubscriptionDestinationProperties.TypeConverter.cs new file mode 100644 index 000000000000..e672ab7e3f50 --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/StorageQueueEventSubscriptionDestinationProperties.TypeConverter.cs @@ -0,0 +1,152 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class StorageQueueEventSubscriptionDestinationPropertiesTypeConverter : global::System.Management.Automation.PSTypeConverter + { + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false. + /// + public override bool CanConvertFrom(object sourceValue, global::System.Type destinationType) => CanConvertFrom(sourceValue); + + /// + /// Determines if the converter can convert the parameter to the . + /// + /// the instance to check if it can be converted to the type. + /// + /// true if the instance could be converted to a + /// type, otherwise false + /// + public static bool CanConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return true; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + // we say yest to PSObjects + return true; + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + // we say yest to Hashtables/dictionaries + return true; + } + try + { + if (null != sourceValue.ToJsonString()) + { + return true; + } + } + catch + { + // Not one of our objects + } + try + { + string text = sourceValue.ToString()?.Trim(); + return true == text?.StartsWith("{") && true == text?.EndsWith("}") && Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonType.Object; + } + catch + { + // Doesn't look like it can be treated as JSON + } + return false; + } + + /// + /// Determines if the parameter can be converted to the parameter + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false + /// + public override bool CanConvertTo(object sourceValue, global::System.Type destinationType) => false; + + /// + /// Converts the parameter to the parameter using and + /// + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// + /// an instance of , or null if there is no suitable + /// conversion. + /// + public override object ConvertFrom(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => ConvertFrom(sourceValue); + + /// + /// Converts the parameter to the parameter using and + /// + /// the value to convert into an instance of . + /// + /// an instance of , or null if there is no suitable + /// conversion. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IStorageQueueEventSubscriptionDestinationProperties ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IStorageQueueEventSubscriptionDestinationProperties).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return StorageQueueEventSubscriptionDestinationProperties.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return StorageQueueEventSubscriptionDestinationProperties.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return StorageQueueEventSubscriptionDestinationProperties.DeserializeFromDictionary(sourceValue); + } + return null; + } + + /// NotImplemented -- this will return null + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// will always return null. + public override object ConvertTo(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => null; + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/StorageQueueEventSubscriptionDestinationProperties.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/StorageQueueEventSubscriptionDestinationProperties.cs new file mode 100644 index 000000000000..442855f11c28 --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/StorageQueueEventSubscriptionDestinationProperties.cs @@ -0,0 +1,99 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Extensions; + + /// The properties for a storage queue destination. + public partial class StorageQueueEventSubscriptionDestinationProperties : + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IStorageQueueEventSubscriptionDestinationProperties, + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IStorageQueueEventSubscriptionDestinationPropertiesInternal + { + + /// Backing field for property. + private long? _queueMessageTimeToLiveInSecond; + + /// Storage queue message time to live in seconds. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Owned)] + public long? QueueMessageTimeToLiveInSecond { get => this._queueMessageTimeToLiveInSecond; set => this._queueMessageTimeToLiveInSecond = value; } + + /// Backing field for property. + private string _queueName; + + /// + /// The name of the Storage queue under a storage account that is the destination of an event subscription. + /// + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Owned)] + public string QueueName { get => this._queueName; set => this._queueName = value; } + + /// Backing field for property. + private string _resourceId; + + /// + /// The Azure Resource ID of the storage account that contains the queue that is the destination of an event subscription. + /// + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Owned)] + public string ResourceId { get => this._resourceId; set => this._resourceId = value; } + + /// + /// Creates an new instance. + /// + public StorageQueueEventSubscriptionDestinationProperties() + { + + } + } + /// The properties for a storage queue destination. + public partial interface IStorageQueueEventSubscriptionDestinationProperties : + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IJsonSerializable + { + /// Storage queue message time to live in seconds. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Storage queue message time to live in seconds.", + SerializedName = @"queueMessageTimeToLiveInSeconds", + PossibleTypes = new [] { typeof(long) })] + long? QueueMessageTimeToLiveInSecond { get; set; } + /// + /// The name of the Storage queue under a storage account that is the destination of an event subscription. + /// + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The name of the Storage queue under a storage account that is the destination of an event subscription.", + SerializedName = @"queueName", + PossibleTypes = new [] { typeof(string) })] + string QueueName { get; set; } + /// + /// The Azure Resource ID of the storage account that contains the queue that is the destination of an event subscription. + /// + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The Azure Resource ID of the storage account that contains the queue that is the destination of an event subscription.", + SerializedName = @"resourceId", + PossibleTypes = new [] { typeof(string) })] + string ResourceId { get; set; } + + } + /// The properties for a storage queue destination. + internal partial interface IStorageQueueEventSubscriptionDestinationPropertiesInternal + + { + /// Storage queue message time to live in seconds. + long? QueueMessageTimeToLiveInSecond { get; set; } + /// + /// The name of the Storage queue under a storage account that is the destination of an event subscription. + /// + string QueueName { get; set; } + /// + /// The Azure Resource ID of the storage account that contains the queue that is the destination of an event subscription. + /// + string ResourceId { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/StorageQueueEventSubscriptionDestinationProperties.json.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/StorageQueueEventSubscriptionDestinationProperties.json.cs new file mode 100644 index 000000000000..8b057c03741a --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/StorageQueueEventSubscriptionDestinationProperties.json.cs @@ -0,0 +1,113 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Extensions; + + /// The properties for a storage queue destination. + public partial class StorageQueueEventSubscriptionDestinationProperties + { + + /// + /// AfterFromJson will be called after the json deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JsonNode that should be deserialized into this object. + + partial void AfterFromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json erialization has finished, allowing customization of the before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JSON container that the serialization result will be placed in. + + partial void AfterToJson(ref Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject container); + + /// + /// BeforeFromJson will be called before the json deserialization has commenced, allowing complete customization of + /// the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JsonNode that should be deserialized into this object. + /// Determines if the rest of the deserialization should be processed, or if the method should return + /// instantly. + + partial void BeforeFromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject json, ref bool returnNow); + + /// + /// BeforeToJson will be called before the json serialization has commenced, allowing complete customization of the + /// object before it is serialized. + /// If you wish to disable the default serialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JSON container that the serialization result will be placed in. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeToJson(ref Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IStorageQueueEventSubscriptionDestinationProperties. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IStorageQueueEventSubscriptionDestinationProperties. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IStorageQueueEventSubscriptionDestinationProperties FromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject json ? new StorageQueueEventSubscriptionDestinationProperties(json) : null; + } + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject instance to deserialize from. + internal StorageQueueEventSubscriptionDestinationProperties(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject json) + { + bool returnNow = false; + BeforeFromJson(json, ref returnNow); + if (returnNow) + { + return; + } + {_resourceId = If( json?.PropertyT("resourceId"), out var __jsonResourceId) ? (string)__jsonResourceId : (string)ResourceId;} + {_queueName = If( json?.PropertyT("queueName"), out var __jsonQueueName) ? (string)__jsonQueueName : (string)QueueName;} + {_queueMessageTimeToLiveInSecond = If( json?.PropertyT("queueMessageTimeToLiveInSeconds"), out var __jsonQueueMessageTimeToLiveInSeconds) ? (long?)__jsonQueueMessageTimeToLiveInSeconds : QueueMessageTimeToLiveInSecond;} + AfterFromJson(json); + } + + /// + /// Serializes this instance of into a . + /// + /// The container to serialize this object into. If the caller + /// passes in null, a new instance will be created and returned to the caller. + /// Allows the caller to choose the depth of the serialization. See . + /// + /// a serialized instance of as a . + /// + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject(); + + bool returnNow = false; + BeforeToJson(ref container, ref returnNow); + if (returnNow) + { + return container; + } + AddIf( null != (((object)this._resourceId)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonString(this._resourceId.ToString()) : null, "resourceId" ,container.Add ); + AddIf( null != (((object)this._queueName)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonString(this._queueName.ToString()) : null, "queueName" ,container.Add ); + AddIf( null != this._queueMessageTimeToLiveInSecond ? (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode)new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNumber((long)this._queueMessageTimeToLiveInSecond) : null, "queueMessageTimeToLiveInSeconds" ,container.Add ); + AfterToJson(ref container); + return container; + } + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/StringBeginsWithAdvancedFilter.PowerShell.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/StringBeginsWithAdvancedFilter.PowerShell.cs new file mode 100644 index 000000000000..1e63c28fa3a1 --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/StringBeginsWithAdvancedFilter.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.EventGrid.Models.Api20211015Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell; + + /// StringBeginsWith Advanced Filter. + [System.ComponentModel.TypeConverter(typeof(StringBeginsWithAdvancedFilterTypeConverter))] + public partial class StringBeginsWithAdvancedFilter + { + + /// + /// AfterDeserializeDictionary will be called after the deserialization has finished, allowing customization of the + /// object before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Collections.IDictionary content that should be used. + + partial void AfterDeserializeDictionary(global::System.Collections.IDictionary content); + + /// + /// AfterDeserializePSObject will be called after the deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Management.Automation.PSObject content that should be used. + + partial void AfterDeserializePSObject(global::System.Management.Automation.PSObject content); + + /// + /// BeforeDeserializeDictionary will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Collections.IDictionary content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializeDictionary(global::System.Collections.IDictionary content, ref bool returnNow); + + /// + /// BeforeDeserializePSObject will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializePSObject(global::System.Management.Automation.PSObject content, ref bool returnNow); + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IStringBeginsWithAdvancedFilter DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new StringBeginsWithAdvancedFilter(content); + } + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IStringBeginsWithAdvancedFilter DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new StringBeginsWithAdvancedFilter(content); + } + + /// + /// Creates a new instance of , deserializing the content from a json string. + /// + /// a string containing a JSON serialized instance of this model. + /// an instance of the model class. + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IStringBeginsWithAdvancedFilter FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode.Parse(jsonText)); + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + internal StringBeginsWithAdvancedFilter(global::System.Collections.IDictionary content) + { + bool returnNow = false; + BeforeDeserializeDictionary(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("Value")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IStringBeginsWithAdvancedFilterInternal)this).Value = (string[]) content.GetValueForProperty("Value",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IStringBeginsWithAdvancedFilterInternal)this).Value, __y => TypeConverterExtensions.SelectToArray(__y, global::System.Convert.ToString)); + } + if (content.Contains("OperatorType")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IAdvancedFilterInternal)this).OperatorType = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.AdvancedFilterOperatorType) content.GetValueForProperty("OperatorType",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IAdvancedFilterInternal)this).OperatorType, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.AdvancedFilterOperatorType.CreateFrom); + } + if (content.Contains("Key")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IAdvancedFilterInternal)this).Key = (string) content.GetValueForProperty("Key",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IAdvancedFilterInternal)this).Key, global::System.Convert.ToString); + } + AfterDeserializeDictionary(content); + } + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + internal StringBeginsWithAdvancedFilter(global::System.Management.Automation.PSObject content) + { + bool returnNow = false; + BeforeDeserializePSObject(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("Value")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IStringBeginsWithAdvancedFilterInternal)this).Value = (string[]) content.GetValueForProperty("Value",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IStringBeginsWithAdvancedFilterInternal)this).Value, __y => TypeConverterExtensions.SelectToArray(__y, global::System.Convert.ToString)); + } + if (content.Contains("OperatorType")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IAdvancedFilterInternal)this).OperatorType = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.AdvancedFilterOperatorType) content.GetValueForProperty("OperatorType",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IAdvancedFilterInternal)this).OperatorType, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.AdvancedFilterOperatorType.CreateFrom); + } + if (content.Contains("Key")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IAdvancedFilterInternal)this).Key = (string) content.GetValueForProperty("Key",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IAdvancedFilterInternal)this).Key, 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.EventGrid.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// StringBeginsWith Advanced Filter. + [System.ComponentModel.TypeConverter(typeof(StringBeginsWithAdvancedFilterTypeConverter))] + public partial interface IStringBeginsWithAdvancedFilter + + { + + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/StringBeginsWithAdvancedFilter.TypeConverter.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/StringBeginsWithAdvancedFilter.TypeConverter.cs new file mode 100644 index 000000000000..655e90c10d83 --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/StringBeginsWithAdvancedFilter.TypeConverter.cs @@ -0,0 +1,147 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class StringBeginsWithAdvancedFilterTypeConverter : global::System.Management.Automation.PSTypeConverter + { + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false. + /// + public override bool CanConvertFrom(object sourceValue, global::System.Type destinationType) => CanConvertFrom(sourceValue); + + /// + /// Determines if the converter can convert the parameter to the . + /// + /// the instance to check if it can be converted to the type. + /// + /// true if the instance could be converted to a type, otherwise false + /// + public static bool CanConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return true; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + // we say yest to PSObjects + return true; + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + // we say yest to Hashtables/dictionaries + return true; + } + try + { + if (null != sourceValue.ToJsonString()) + { + return true; + } + } + catch + { + // Not one of our objects + } + try + { + string text = sourceValue.ToString()?.Trim(); + return true == text?.StartsWith("{") && true == text?.EndsWith("}") && Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonType.Object; + } + catch + { + // Doesn't look like it can be treated as JSON + } + return false; + } + + /// + /// Determines if the parameter can be converted to the parameter + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false + /// + public override bool CanConvertTo(object sourceValue, global::System.Type destinationType) => false; + + /// + /// Converts the parameter to the parameter using and + /// + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// + /// an instance of , or null if there is no suitable conversion. + /// + public override object ConvertFrom(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => ConvertFrom(sourceValue); + + /// + /// Converts the parameter to the parameter using and + /// + /// the value to convert into an instance of . + /// + /// an instance of , or null if there is no suitable conversion. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IStringBeginsWithAdvancedFilter ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IStringBeginsWithAdvancedFilter).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return StringBeginsWithAdvancedFilter.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return StringBeginsWithAdvancedFilter.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return StringBeginsWithAdvancedFilter.DeserializeFromDictionary(sourceValue); + } + return null; + } + + /// NotImplemented -- this will return null + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// will always return null. + public override object ConvertTo(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => null; + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/StringBeginsWithAdvancedFilter.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/StringBeginsWithAdvancedFilter.cs new file mode 100644 index 000000000000..5194b2a2266c --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/StringBeginsWithAdvancedFilter.cs @@ -0,0 +1,80 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Extensions; + + /// StringBeginsWith Advanced Filter. + public partial class StringBeginsWithAdvancedFilter : + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IStringBeginsWithAdvancedFilter, + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IStringBeginsWithAdvancedFilterInternal, + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IValidates + { + /// + /// Backing field for Inherited model + /// + private Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IAdvancedFilter __advancedFilter = new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.AdvancedFilter(); + + /// The field/property in the event based on which you want to filter. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Inherited)] + public string Key { get => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IAdvancedFilterInternal)__advancedFilter).Key; set => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IAdvancedFilterInternal)__advancedFilter).Key = value ?? null; } + + /// + /// The operator type used for filtering, e.g., NumberIn, StringContains, BoolEquals and others. + /// + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Inherited)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.AdvancedFilterOperatorType OperatorType { get => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IAdvancedFilterInternal)__advancedFilter).OperatorType; set => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IAdvancedFilterInternal)__advancedFilter).OperatorType = value ; } + + /// Backing field for property. + private string[] _value; + + /// The set of filter values. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Owned)] + public string[] Value { get => this._value; set => this._value = value; } + + /// Creates an new instance. + public StringBeginsWithAdvancedFilter() + { + + } + + /// Validates that this object meets the validation criteria. + /// an instance that will receive validation + /// events. + /// + /// A that will be complete when validation is completed. + /// + public async global::System.Threading.Tasks.Task Validate(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener eventListener) + { + await eventListener.AssertNotNull(nameof(__advancedFilter), __advancedFilter); + await eventListener.AssertObjectIsValid(nameof(__advancedFilter), __advancedFilter); + } + } + /// StringBeginsWith Advanced Filter. + public partial interface IStringBeginsWithAdvancedFilter : + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IJsonSerializable, + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IAdvancedFilter + { + /// The set of filter values. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The set of filter values.", + SerializedName = @"values", + PossibleTypes = new [] { typeof(string) })] + string[] Value { get; set; } + + } + /// StringBeginsWith Advanced Filter. + internal partial interface IStringBeginsWithAdvancedFilterInternal : + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IAdvancedFilterInternal + { + /// The set of filter values. + string[] Value { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/StringBeginsWithAdvancedFilter.json.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/StringBeginsWithAdvancedFilter.json.cs new file mode 100644 index 000000000000..227d8e93644c --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/StringBeginsWithAdvancedFilter.json.cs @@ -0,0 +1,116 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Extensions; + + /// StringBeginsWith Advanced Filter. + public partial class StringBeginsWithAdvancedFilter + { + + /// + /// AfterFromJson will be called after the json deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JsonNode that should be deserialized into this object. + + partial void AfterFromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json erialization has finished, allowing customization of the before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JSON container that the serialization result will be placed in. + + partial void AfterToJson(ref Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject container); + + /// + /// BeforeFromJson will be called before the json deserialization has commenced, allowing complete customization of + /// the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JsonNode that should be deserialized into this object. + /// Determines if the rest of the deserialization should be processed, or if the method should return + /// instantly. + + partial void BeforeFromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject json, ref bool returnNow); + + /// + /// BeforeToJson will be called before the json serialization has commenced, allowing complete customization of the + /// object before it is serialized. + /// If you wish to disable the default serialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JSON container that the serialization result will be placed in. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeToJson(ref Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IStringBeginsWithAdvancedFilter. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IStringBeginsWithAdvancedFilter. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IStringBeginsWithAdvancedFilter FromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject json ? new StringBeginsWithAdvancedFilter(json) : null; + } + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject instance to deserialize from. + internal StringBeginsWithAdvancedFilter(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject json) + { + bool returnNow = false; + BeforeFromJson(json, ref returnNow); + if (returnNow) + { + return; + } + __advancedFilter = new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.AdvancedFilter(json); + {_value = If( json?.PropertyT("values"), out var __jsonValues) ? If( __jsonValues as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Runtime.Json.JsonString __t ? (string)(__t.ToString()) : null)) ))() : null : Value;} + AfterFromJson(json); + } + + /// + /// Serializes this instance of into a . + /// + /// The container to serialize this object into. If the caller + /// passes in null, a new instance will be created and returned to the caller. + /// Allows the caller to choose the depth of the serialization. See . + /// + /// a serialized instance of as a . + /// + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject(); + + bool returnNow = false; + BeforeToJson(ref container, ref returnNow); + if (returnNow) + { + return container; + } + __advancedFilter?.ToJson(container, serializationMode); + if (null != this._value) + { + var __w = new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.XNodeArray(); + foreach( var __x in this._value ) + { + AddIf(null != (((object)__x)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonString(__x.ToString()) : null ,__w.Add); + } + container.Add("values",__w); + } + AfterToJson(ref container); + return container; + } + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/StringContainsAdvancedFilter.PowerShell.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/StringContainsAdvancedFilter.PowerShell.cs new file mode 100644 index 000000000000..03d5225a6fcd --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/StringContainsAdvancedFilter.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.EventGrid.Models.Api20211015Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell; + + /// StringContains Advanced Filter. + [System.ComponentModel.TypeConverter(typeof(StringContainsAdvancedFilterTypeConverter))] + public partial class StringContainsAdvancedFilter + { + + /// + /// AfterDeserializeDictionary will be called after the deserialization has finished, allowing customization of the + /// object before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Collections.IDictionary content that should be used. + + partial void AfterDeserializeDictionary(global::System.Collections.IDictionary content); + + /// + /// AfterDeserializePSObject will be called after the deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Management.Automation.PSObject content that should be used. + + partial void AfterDeserializePSObject(global::System.Management.Automation.PSObject content); + + /// + /// BeforeDeserializeDictionary will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Collections.IDictionary content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializeDictionary(global::System.Collections.IDictionary content, ref bool returnNow); + + /// + /// BeforeDeserializePSObject will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializePSObject(global::System.Management.Automation.PSObject content, ref bool returnNow); + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IStringContainsAdvancedFilter DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new StringContainsAdvancedFilter(content); + } + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IStringContainsAdvancedFilter DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new StringContainsAdvancedFilter(content); + } + + /// + /// Creates a new instance of , deserializing the content from a json string. + /// + /// a string containing a JSON serialized instance of this model. + /// an instance of the model class. + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IStringContainsAdvancedFilter FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode.Parse(jsonText)); + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + internal StringContainsAdvancedFilter(global::System.Collections.IDictionary content) + { + bool returnNow = false; + BeforeDeserializeDictionary(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("Value")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IStringContainsAdvancedFilterInternal)this).Value = (string[]) content.GetValueForProperty("Value",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IStringContainsAdvancedFilterInternal)this).Value, __y => TypeConverterExtensions.SelectToArray(__y, global::System.Convert.ToString)); + } + if (content.Contains("OperatorType")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IAdvancedFilterInternal)this).OperatorType = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.AdvancedFilterOperatorType) content.GetValueForProperty("OperatorType",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IAdvancedFilterInternal)this).OperatorType, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.AdvancedFilterOperatorType.CreateFrom); + } + if (content.Contains("Key")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IAdvancedFilterInternal)this).Key = (string) content.GetValueForProperty("Key",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IAdvancedFilterInternal)this).Key, global::System.Convert.ToString); + } + AfterDeserializeDictionary(content); + } + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + internal StringContainsAdvancedFilter(global::System.Management.Automation.PSObject content) + { + bool returnNow = false; + BeforeDeserializePSObject(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("Value")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IStringContainsAdvancedFilterInternal)this).Value = (string[]) content.GetValueForProperty("Value",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IStringContainsAdvancedFilterInternal)this).Value, __y => TypeConverterExtensions.SelectToArray(__y, global::System.Convert.ToString)); + } + if (content.Contains("OperatorType")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IAdvancedFilterInternal)this).OperatorType = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.AdvancedFilterOperatorType) content.GetValueForProperty("OperatorType",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IAdvancedFilterInternal)this).OperatorType, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.AdvancedFilterOperatorType.CreateFrom); + } + if (content.Contains("Key")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IAdvancedFilterInternal)this).Key = (string) content.GetValueForProperty("Key",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IAdvancedFilterInternal)this).Key, 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.EventGrid.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// StringContains Advanced Filter. + [System.ComponentModel.TypeConverter(typeof(StringContainsAdvancedFilterTypeConverter))] + public partial interface IStringContainsAdvancedFilter + + { + + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/StringContainsAdvancedFilter.TypeConverter.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/StringContainsAdvancedFilter.TypeConverter.cs new file mode 100644 index 000000000000..612f4b56cf31 --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/StringContainsAdvancedFilter.TypeConverter.cs @@ -0,0 +1,147 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class StringContainsAdvancedFilterTypeConverter : global::System.Management.Automation.PSTypeConverter + { + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false. + /// + public override bool CanConvertFrom(object sourceValue, global::System.Type destinationType) => CanConvertFrom(sourceValue); + + /// + /// Determines if the converter can convert the parameter to the . + /// + /// the instance to check if it can be converted to the type. + /// + /// true if the instance could be converted to a type, otherwise false + /// + public static bool CanConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return true; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + // we say yest to PSObjects + return true; + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + // we say yest to Hashtables/dictionaries + return true; + } + try + { + if (null != sourceValue.ToJsonString()) + { + return true; + } + } + catch + { + // Not one of our objects + } + try + { + string text = sourceValue.ToString()?.Trim(); + return true == text?.StartsWith("{") && true == text?.EndsWith("}") && Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonType.Object; + } + catch + { + // Doesn't look like it can be treated as JSON + } + return false; + } + + /// + /// Determines if the parameter can be converted to the parameter + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false + /// + public override bool CanConvertTo(object sourceValue, global::System.Type destinationType) => false; + + /// + /// Converts the parameter to the parameter using and + /// + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// + /// an instance of , or null if there is no suitable conversion. + /// + public override object ConvertFrom(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => ConvertFrom(sourceValue); + + /// + /// Converts the parameter to the parameter using and + /// + /// the value to convert into an instance of . + /// + /// an instance of , or null if there is no suitable conversion. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IStringContainsAdvancedFilter ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IStringContainsAdvancedFilter).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return StringContainsAdvancedFilter.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return StringContainsAdvancedFilter.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return StringContainsAdvancedFilter.DeserializeFromDictionary(sourceValue); + } + return null; + } + + /// NotImplemented -- this will return null + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// will always return null. + public override object ConvertTo(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => null; + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/StringContainsAdvancedFilter.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/StringContainsAdvancedFilter.cs new file mode 100644 index 000000000000..cc9c9c2797e3 --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/StringContainsAdvancedFilter.cs @@ -0,0 +1,80 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Extensions; + + /// StringContains Advanced Filter. + public partial class StringContainsAdvancedFilter : + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IStringContainsAdvancedFilter, + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IStringContainsAdvancedFilterInternal, + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IValidates + { + /// + /// Backing field for Inherited model + /// + private Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IAdvancedFilter __advancedFilter = new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.AdvancedFilter(); + + /// The field/property in the event based on which you want to filter. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Inherited)] + public string Key { get => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IAdvancedFilterInternal)__advancedFilter).Key; set => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IAdvancedFilterInternal)__advancedFilter).Key = value ?? null; } + + /// + /// The operator type used for filtering, e.g., NumberIn, StringContains, BoolEquals and others. + /// + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Inherited)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.AdvancedFilterOperatorType OperatorType { get => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IAdvancedFilterInternal)__advancedFilter).OperatorType; set => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IAdvancedFilterInternal)__advancedFilter).OperatorType = value ; } + + /// Backing field for property. + private string[] _value; + + /// The set of filter values. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Owned)] + public string[] Value { get => this._value; set => this._value = value; } + + /// Creates an new instance. + public StringContainsAdvancedFilter() + { + + } + + /// Validates that this object meets the validation criteria. + /// an instance that will receive validation + /// events. + /// + /// A that will be complete when validation is completed. + /// + public async global::System.Threading.Tasks.Task Validate(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener eventListener) + { + await eventListener.AssertNotNull(nameof(__advancedFilter), __advancedFilter); + await eventListener.AssertObjectIsValid(nameof(__advancedFilter), __advancedFilter); + } + } + /// StringContains Advanced Filter. + public partial interface IStringContainsAdvancedFilter : + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IJsonSerializable, + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IAdvancedFilter + { + /// The set of filter values. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The set of filter values.", + SerializedName = @"values", + PossibleTypes = new [] { typeof(string) })] + string[] Value { get; set; } + + } + /// StringContains Advanced Filter. + internal partial interface IStringContainsAdvancedFilterInternal : + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IAdvancedFilterInternal + { + /// The set of filter values. + string[] Value { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/StringContainsAdvancedFilter.json.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/StringContainsAdvancedFilter.json.cs new file mode 100644 index 000000000000..29eafaebeae5 --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/StringContainsAdvancedFilter.json.cs @@ -0,0 +1,116 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Extensions; + + /// StringContains Advanced Filter. + public partial class StringContainsAdvancedFilter + { + + /// + /// AfterFromJson will be called after the json deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JsonNode that should be deserialized into this object. + + partial void AfterFromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json erialization has finished, allowing customization of the before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JSON container that the serialization result will be placed in. + + partial void AfterToJson(ref Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject container); + + /// + /// BeforeFromJson will be called before the json deserialization has commenced, allowing complete customization of + /// the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JsonNode that should be deserialized into this object. + /// Determines if the rest of the deserialization should be processed, or if the method should return + /// instantly. + + partial void BeforeFromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject json, ref bool returnNow); + + /// + /// BeforeToJson will be called before the json serialization has commenced, allowing complete customization of the + /// object before it is serialized. + /// If you wish to disable the default serialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JSON container that the serialization result will be placed in. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeToJson(ref Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IStringContainsAdvancedFilter. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IStringContainsAdvancedFilter. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IStringContainsAdvancedFilter FromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject json ? new StringContainsAdvancedFilter(json) : null; + } + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject instance to deserialize from. + internal StringContainsAdvancedFilter(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject json) + { + bool returnNow = false; + BeforeFromJson(json, ref returnNow); + if (returnNow) + { + return; + } + __advancedFilter = new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.AdvancedFilter(json); + {_value = If( json?.PropertyT("values"), out var __jsonValues) ? If( __jsonValues as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Runtime.Json.JsonString __t ? (string)(__t.ToString()) : null)) ))() : null : Value;} + AfterFromJson(json); + } + + /// + /// Serializes this instance of into a . + /// + /// The container to serialize this object into. If the caller + /// passes in null, a new instance will be created and returned to the caller. + /// Allows the caller to choose the depth of the serialization. See . + /// + /// a serialized instance of as a . + /// + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject(); + + bool returnNow = false; + BeforeToJson(ref container, ref returnNow); + if (returnNow) + { + return container; + } + __advancedFilter?.ToJson(container, serializationMode); + if (null != this._value) + { + var __w = new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.XNodeArray(); + foreach( var __x in this._value ) + { + AddIf(null != (((object)__x)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonString(__x.ToString()) : null ,__w.Add); + } + container.Add("values",__w); + } + AfterToJson(ref container); + return container; + } + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/StringEndsWithAdvancedFilter.PowerShell.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/StringEndsWithAdvancedFilter.PowerShell.cs new file mode 100644 index 000000000000..70cea3ae0e8f --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/StringEndsWithAdvancedFilter.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.EventGrid.Models.Api20211015Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell; + + /// StringEndsWith Advanced Filter. + [System.ComponentModel.TypeConverter(typeof(StringEndsWithAdvancedFilterTypeConverter))] + public partial class StringEndsWithAdvancedFilter + { + + /// + /// AfterDeserializeDictionary will be called after the deserialization has finished, allowing customization of the + /// object before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Collections.IDictionary content that should be used. + + partial void AfterDeserializeDictionary(global::System.Collections.IDictionary content); + + /// + /// AfterDeserializePSObject will be called after the deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Management.Automation.PSObject content that should be used. + + partial void AfterDeserializePSObject(global::System.Management.Automation.PSObject content); + + /// + /// BeforeDeserializeDictionary will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Collections.IDictionary content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializeDictionary(global::System.Collections.IDictionary content, ref bool returnNow); + + /// + /// BeforeDeserializePSObject will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializePSObject(global::System.Management.Automation.PSObject content, ref bool returnNow); + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IStringEndsWithAdvancedFilter DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new StringEndsWithAdvancedFilter(content); + } + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IStringEndsWithAdvancedFilter DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new StringEndsWithAdvancedFilter(content); + } + + /// + /// Creates a new instance of , deserializing the content from a json string. + /// + /// a string containing a JSON serialized instance of this model. + /// an instance of the model class. + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IStringEndsWithAdvancedFilter FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode.Parse(jsonText)); + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + internal StringEndsWithAdvancedFilter(global::System.Collections.IDictionary content) + { + bool returnNow = false; + BeforeDeserializeDictionary(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("Value")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IStringEndsWithAdvancedFilterInternal)this).Value = (string[]) content.GetValueForProperty("Value",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IStringEndsWithAdvancedFilterInternal)this).Value, __y => TypeConverterExtensions.SelectToArray(__y, global::System.Convert.ToString)); + } + if (content.Contains("OperatorType")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IAdvancedFilterInternal)this).OperatorType = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.AdvancedFilterOperatorType) content.GetValueForProperty("OperatorType",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IAdvancedFilterInternal)this).OperatorType, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.AdvancedFilterOperatorType.CreateFrom); + } + if (content.Contains("Key")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IAdvancedFilterInternal)this).Key = (string) content.GetValueForProperty("Key",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IAdvancedFilterInternal)this).Key, global::System.Convert.ToString); + } + AfterDeserializeDictionary(content); + } + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + internal StringEndsWithAdvancedFilter(global::System.Management.Automation.PSObject content) + { + bool returnNow = false; + BeforeDeserializePSObject(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("Value")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IStringEndsWithAdvancedFilterInternal)this).Value = (string[]) content.GetValueForProperty("Value",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IStringEndsWithAdvancedFilterInternal)this).Value, __y => TypeConverterExtensions.SelectToArray(__y, global::System.Convert.ToString)); + } + if (content.Contains("OperatorType")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IAdvancedFilterInternal)this).OperatorType = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.AdvancedFilterOperatorType) content.GetValueForProperty("OperatorType",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IAdvancedFilterInternal)this).OperatorType, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.AdvancedFilterOperatorType.CreateFrom); + } + if (content.Contains("Key")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IAdvancedFilterInternal)this).Key = (string) content.GetValueForProperty("Key",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IAdvancedFilterInternal)this).Key, 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.EventGrid.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// StringEndsWith Advanced Filter. + [System.ComponentModel.TypeConverter(typeof(StringEndsWithAdvancedFilterTypeConverter))] + public partial interface IStringEndsWithAdvancedFilter + + { + + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/StringEndsWithAdvancedFilter.TypeConverter.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/StringEndsWithAdvancedFilter.TypeConverter.cs new file mode 100644 index 000000000000..9b146d83e9b3 --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/StringEndsWithAdvancedFilter.TypeConverter.cs @@ -0,0 +1,147 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class StringEndsWithAdvancedFilterTypeConverter : global::System.Management.Automation.PSTypeConverter + { + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false. + /// + public override bool CanConvertFrom(object sourceValue, global::System.Type destinationType) => CanConvertFrom(sourceValue); + + /// + /// Determines if the converter can convert the parameter to the . + /// + /// the instance to check if it can be converted to the type. + /// + /// true if the instance could be converted to a type, otherwise false + /// + public static bool CanConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return true; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + // we say yest to PSObjects + return true; + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + // we say yest to Hashtables/dictionaries + return true; + } + try + { + if (null != sourceValue.ToJsonString()) + { + return true; + } + } + catch + { + // Not one of our objects + } + try + { + string text = sourceValue.ToString()?.Trim(); + return true == text?.StartsWith("{") && true == text?.EndsWith("}") && Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonType.Object; + } + catch + { + // Doesn't look like it can be treated as JSON + } + return false; + } + + /// + /// Determines if the parameter can be converted to the parameter + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false + /// + public override bool CanConvertTo(object sourceValue, global::System.Type destinationType) => false; + + /// + /// Converts the parameter to the parameter using and + /// + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// + /// an instance of , or null if there is no suitable conversion. + /// + public override object ConvertFrom(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => ConvertFrom(sourceValue); + + /// + /// Converts the parameter to the parameter using and + /// + /// the value to convert into an instance of . + /// + /// an instance of , or null if there is no suitable conversion. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IStringEndsWithAdvancedFilter ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IStringEndsWithAdvancedFilter).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return StringEndsWithAdvancedFilter.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return StringEndsWithAdvancedFilter.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return StringEndsWithAdvancedFilter.DeserializeFromDictionary(sourceValue); + } + return null; + } + + /// NotImplemented -- this will return null + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// will always return null. + public override object ConvertTo(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => null; + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/StringEndsWithAdvancedFilter.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/StringEndsWithAdvancedFilter.cs new file mode 100644 index 000000000000..afc03d8c39ee --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/StringEndsWithAdvancedFilter.cs @@ -0,0 +1,80 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Extensions; + + /// StringEndsWith Advanced Filter. + public partial class StringEndsWithAdvancedFilter : + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IStringEndsWithAdvancedFilter, + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IStringEndsWithAdvancedFilterInternal, + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IValidates + { + /// + /// Backing field for Inherited model + /// + private Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IAdvancedFilter __advancedFilter = new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.AdvancedFilter(); + + /// The field/property in the event based on which you want to filter. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Inherited)] + public string Key { get => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IAdvancedFilterInternal)__advancedFilter).Key; set => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IAdvancedFilterInternal)__advancedFilter).Key = value ?? null; } + + /// + /// The operator type used for filtering, e.g., NumberIn, StringContains, BoolEquals and others. + /// + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Inherited)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.AdvancedFilterOperatorType OperatorType { get => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IAdvancedFilterInternal)__advancedFilter).OperatorType; set => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IAdvancedFilterInternal)__advancedFilter).OperatorType = value ; } + + /// Backing field for property. + private string[] _value; + + /// The set of filter values. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Owned)] + public string[] Value { get => this._value; set => this._value = value; } + + /// Creates an new instance. + public StringEndsWithAdvancedFilter() + { + + } + + /// Validates that this object meets the validation criteria. + /// an instance that will receive validation + /// events. + /// + /// A that will be complete when validation is completed. + /// + public async global::System.Threading.Tasks.Task Validate(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener eventListener) + { + await eventListener.AssertNotNull(nameof(__advancedFilter), __advancedFilter); + await eventListener.AssertObjectIsValid(nameof(__advancedFilter), __advancedFilter); + } + } + /// StringEndsWith Advanced Filter. + public partial interface IStringEndsWithAdvancedFilter : + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IJsonSerializable, + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IAdvancedFilter + { + /// The set of filter values. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The set of filter values.", + SerializedName = @"values", + PossibleTypes = new [] { typeof(string) })] + string[] Value { get; set; } + + } + /// StringEndsWith Advanced Filter. + internal partial interface IStringEndsWithAdvancedFilterInternal : + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IAdvancedFilterInternal + { + /// The set of filter values. + string[] Value { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/StringEndsWithAdvancedFilter.json.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/StringEndsWithAdvancedFilter.json.cs new file mode 100644 index 000000000000..41abe2a6878e --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/StringEndsWithAdvancedFilter.json.cs @@ -0,0 +1,116 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Extensions; + + /// StringEndsWith Advanced Filter. + public partial class StringEndsWithAdvancedFilter + { + + /// + /// AfterFromJson will be called after the json deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JsonNode that should be deserialized into this object. + + partial void AfterFromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json erialization has finished, allowing customization of the before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JSON container that the serialization result will be placed in. + + partial void AfterToJson(ref Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject container); + + /// + /// BeforeFromJson will be called before the json deserialization has commenced, allowing complete customization of + /// the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JsonNode that should be deserialized into this object. + /// Determines if the rest of the deserialization should be processed, or if the method should return + /// instantly. + + partial void BeforeFromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject json, ref bool returnNow); + + /// + /// BeforeToJson will be called before the json serialization has commenced, allowing complete customization of the + /// object before it is serialized. + /// If you wish to disable the default serialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JSON container that the serialization result will be placed in. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeToJson(ref Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IStringEndsWithAdvancedFilter. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IStringEndsWithAdvancedFilter. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IStringEndsWithAdvancedFilter FromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject json ? new StringEndsWithAdvancedFilter(json) : null; + } + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject instance to deserialize from. + internal StringEndsWithAdvancedFilter(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject json) + { + bool returnNow = false; + BeforeFromJson(json, ref returnNow); + if (returnNow) + { + return; + } + __advancedFilter = new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.AdvancedFilter(json); + {_value = If( json?.PropertyT("values"), out var __jsonValues) ? If( __jsonValues as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Runtime.Json.JsonString __t ? (string)(__t.ToString()) : null)) ))() : null : Value;} + AfterFromJson(json); + } + + /// + /// Serializes this instance of into a . + /// + /// The container to serialize this object into. If the caller + /// passes in null, a new instance will be created and returned to the caller. + /// Allows the caller to choose the depth of the serialization. See . + /// + /// a serialized instance of as a . + /// + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject(); + + bool returnNow = false; + BeforeToJson(ref container, ref returnNow); + if (returnNow) + { + return container; + } + __advancedFilter?.ToJson(container, serializationMode); + if (null != this._value) + { + var __w = new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.XNodeArray(); + foreach( var __x in this._value ) + { + AddIf(null != (((object)__x)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonString(__x.ToString()) : null ,__w.Add); + } + container.Add("values",__w); + } + AfterToJson(ref container); + return container; + } + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/StringInAdvancedFilter.PowerShell.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/StringInAdvancedFilter.PowerShell.cs new file mode 100644 index 000000000000..df696dcf4685 --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/StringInAdvancedFilter.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.EventGrid.Models.Api20211015Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell; + + /// StringIn Advanced Filter. + [System.ComponentModel.TypeConverter(typeof(StringInAdvancedFilterTypeConverter))] + public partial class StringInAdvancedFilter + { + + /// + /// AfterDeserializeDictionary will be called after the deserialization has finished, allowing customization of the + /// object before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Collections.IDictionary content that should be used. + + partial void AfterDeserializeDictionary(global::System.Collections.IDictionary content); + + /// + /// AfterDeserializePSObject will be called after the deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Management.Automation.PSObject content that should be used. + + partial void AfterDeserializePSObject(global::System.Management.Automation.PSObject content); + + /// + /// BeforeDeserializeDictionary will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Collections.IDictionary content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializeDictionary(global::System.Collections.IDictionary content, ref bool returnNow); + + /// + /// BeforeDeserializePSObject will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializePSObject(global::System.Management.Automation.PSObject content, ref bool returnNow); + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IStringInAdvancedFilter DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new StringInAdvancedFilter(content); + } + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IStringInAdvancedFilter DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new StringInAdvancedFilter(content); + } + + /// + /// Creates a new instance of , deserializing the content from a json string. + /// + /// a string containing a JSON serialized instance of this model. + /// an instance of the model class. + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IStringInAdvancedFilter FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode.Parse(jsonText)); + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + internal StringInAdvancedFilter(global::System.Collections.IDictionary content) + { + bool returnNow = false; + BeforeDeserializeDictionary(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("Value")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IStringInAdvancedFilterInternal)this).Value = (string[]) content.GetValueForProperty("Value",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IStringInAdvancedFilterInternal)this).Value, __y => TypeConverterExtensions.SelectToArray(__y, global::System.Convert.ToString)); + } + if (content.Contains("OperatorType")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IAdvancedFilterInternal)this).OperatorType = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.AdvancedFilterOperatorType) content.GetValueForProperty("OperatorType",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IAdvancedFilterInternal)this).OperatorType, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.AdvancedFilterOperatorType.CreateFrom); + } + if (content.Contains("Key")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IAdvancedFilterInternal)this).Key = (string) content.GetValueForProperty("Key",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IAdvancedFilterInternal)this).Key, global::System.Convert.ToString); + } + AfterDeserializeDictionary(content); + } + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + internal StringInAdvancedFilter(global::System.Management.Automation.PSObject content) + { + bool returnNow = false; + BeforeDeserializePSObject(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("Value")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IStringInAdvancedFilterInternal)this).Value = (string[]) content.GetValueForProperty("Value",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IStringInAdvancedFilterInternal)this).Value, __y => TypeConverterExtensions.SelectToArray(__y, global::System.Convert.ToString)); + } + if (content.Contains("OperatorType")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IAdvancedFilterInternal)this).OperatorType = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.AdvancedFilterOperatorType) content.GetValueForProperty("OperatorType",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IAdvancedFilterInternal)this).OperatorType, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.AdvancedFilterOperatorType.CreateFrom); + } + if (content.Contains("Key")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IAdvancedFilterInternal)this).Key = (string) content.GetValueForProperty("Key",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IAdvancedFilterInternal)this).Key, 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.EventGrid.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// StringIn Advanced Filter. + [System.ComponentModel.TypeConverter(typeof(StringInAdvancedFilterTypeConverter))] + public partial interface IStringInAdvancedFilter + + { + + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/StringInAdvancedFilter.TypeConverter.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/StringInAdvancedFilter.TypeConverter.cs new file mode 100644 index 000000000000..69ef30fb91b2 --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/StringInAdvancedFilter.TypeConverter.cs @@ -0,0 +1,147 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class StringInAdvancedFilterTypeConverter : global::System.Management.Automation.PSTypeConverter + { + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false. + /// + public override bool CanConvertFrom(object sourceValue, global::System.Type destinationType) => CanConvertFrom(sourceValue); + + /// + /// Determines if the converter can convert the parameter to the . + /// + /// the instance to check if it can be converted to the type. + /// + /// true if the instance could be converted to a type, otherwise false + /// + public static bool CanConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return true; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + // we say yest to PSObjects + return true; + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + // we say yest to Hashtables/dictionaries + return true; + } + try + { + if (null != sourceValue.ToJsonString()) + { + return true; + } + } + catch + { + // Not one of our objects + } + try + { + string text = sourceValue.ToString()?.Trim(); + return true == text?.StartsWith("{") && true == text?.EndsWith("}") && Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonType.Object; + } + catch + { + // Doesn't look like it can be treated as JSON + } + return false; + } + + /// + /// Determines if the parameter can be converted to the parameter + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false + /// + public override bool CanConvertTo(object sourceValue, global::System.Type destinationType) => false; + + /// + /// Converts the parameter to the parameter using and + /// + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// + /// an instance of , or null if there is no suitable conversion. + /// + public override object ConvertFrom(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => ConvertFrom(sourceValue); + + /// + /// Converts the parameter to the parameter using and + /// + /// the value to convert into an instance of . + /// + /// an instance of , or null if there is no suitable conversion. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IStringInAdvancedFilter ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IStringInAdvancedFilter).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return StringInAdvancedFilter.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return StringInAdvancedFilter.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return StringInAdvancedFilter.DeserializeFromDictionary(sourceValue); + } + return null; + } + + /// NotImplemented -- this will return null + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// will always return null. + public override object ConvertTo(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => null; + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/StringInAdvancedFilter.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/StringInAdvancedFilter.cs new file mode 100644 index 000000000000..5823cba481d0 --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/StringInAdvancedFilter.cs @@ -0,0 +1,80 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Extensions; + + /// StringIn Advanced Filter. + public partial class StringInAdvancedFilter : + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IStringInAdvancedFilter, + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IStringInAdvancedFilterInternal, + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IValidates + { + /// + /// Backing field for Inherited model + /// + private Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IAdvancedFilter __advancedFilter = new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.AdvancedFilter(); + + /// The field/property in the event based on which you want to filter. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Inherited)] + public string Key { get => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IAdvancedFilterInternal)__advancedFilter).Key; set => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IAdvancedFilterInternal)__advancedFilter).Key = value ?? null; } + + /// + /// The operator type used for filtering, e.g., NumberIn, StringContains, BoolEquals and others. + /// + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Inherited)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.AdvancedFilterOperatorType OperatorType { get => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IAdvancedFilterInternal)__advancedFilter).OperatorType; set => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IAdvancedFilterInternal)__advancedFilter).OperatorType = value ; } + + /// Backing field for property. + private string[] _value; + + /// The set of filter values. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Owned)] + public string[] Value { get => this._value; set => this._value = value; } + + /// Creates an new instance. + public StringInAdvancedFilter() + { + + } + + /// Validates that this object meets the validation criteria. + /// an instance that will receive validation + /// events. + /// + /// A that will be complete when validation is completed. + /// + public async global::System.Threading.Tasks.Task Validate(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener eventListener) + { + await eventListener.AssertNotNull(nameof(__advancedFilter), __advancedFilter); + await eventListener.AssertObjectIsValid(nameof(__advancedFilter), __advancedFilter); + } + } + /// StringIn Advanced Filter. + public partial interface IStringInAdvancedFilter : + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IJsonSerializable, + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IAdvancedFilter + { + /// The set of filter values. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The set of filter values.", + SerializedName = @"values", + PossibleTypes = new [] { typeof(string) })] + string[] Value { get; set; } + + } + /// StringIn Advanced Filter. + internal partial interface IStringInAdvancedFilterInternal : + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IAdvancedFilterInternal + { + /// The set of filter values. + string[] Value { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/StringInAdvancedFilter.json.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/StringInAdvancedFilter.json.cs new file mode 100644 index 000000000000..39f875ca70f2 --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/StringInAdvancedFilter.json.cs @@ -0,0 +1,116 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Extensions; + + /// StringIn Advanced Filter. + public partial class StringInAdvancedFilter + { + + /// + /// AfterFromJson will be called after the json deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JsonNode that should be deserialized into this object. + + partial void AfterFromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json erialization has finished, allowing customization of the before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JSON container that the serialization result will be placed in. + + partial void AfterToJson(ref Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject container); + + /// + /// BeforeFromJson will be called before the json deserialization has commenced, allowing complete customization of + /// the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JsonNode that should be deserialized into this object. + /// Determines if the rest of the deserialization should be processed, or if the method should return + /// instantly. + + partial void BeforeFromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject json, ref bool returnNow); + + /// + /// BeforeToJson will be called before the json serialization has commenced, allowing complete customization of the + /// object before it is serialized. + /// If you wish to disable the default serialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JSON container that the serialization result will be placed in. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeToJson(ref Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IStringInAdvancedFilter. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IStringInAdvancedFilter. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IStringInAdvancedFilter FromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject json ? new StringInAdvancedFilter(json) : null; + } + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject instance to deserialize from. + internal StringInAdvancedFilter(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject json) + { + bool returnNow = false; + BeforeFromJson(json, ref returnNow); + if (returnNow) + { + return; + } + __advancedFilter = new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.AdvancedFilter(json); + {_value = If( json?.PropertyT("values"), out var __jsonValues) ? If( __jsonValues as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Runtime.Json.JsonString __t ? (string)(__t.ToString()) : null)) ))() : null : Value;} + AfterFromJson(json); + } + + /// + /// Serializes this instance of into a . + /// + /// The container to serialize this object into. If the caller + /// passes in null, a new instance will be created and returned to the caller. + /// Allows the caller to choose the depth of the serialization. See . + /// + /// a serialized instance of as a . + /// + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject(); + + bool returnNow = false; + BeforeToJson(ref container, ref returnNow); + if (returnNow) + { + return container; + } + __advancedFilter?.ToJson(container, serializationMode); + if (null != this._value) + { + var __w = new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.XNodeArray(); + foreach( var __x in this._value ) + { + AddIf(null != (((object)__x)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonString(__x.ToString()) : null ,__w.Add); + } + container.Add("values",__w); + } + AfterToJson(ref container); + return container; + } + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/StringNotBeginsWithAdvancedFilter.PowerShell.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/StringNotBeginsWithAdvancedFilter.PowerShell.cs new file mode 100644 index 000000000000..5ac38320245a --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/StringNotBeginsWithAdvancedFilter.PowerShell.cs @@ -0,0 +1,162 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell; + + /// StringNotBeginsWith Advanced Filter. + [System.ComponentModel.TypeConverter(typeof(StringNotBeginsWithAdvancedFilterTypeConverter))] + public partial class StringNotBeginsWithAdvancedFilter + { + + /// + /// AfterDeserializeDictionary will be called after the deserialization has finished, allowing customization of the + /// object before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Collections.IDictionary content that should be used. + + partial void AfterDeserializeDictionary(global::System.Collections.IDictionary content); + + /// + /// AfterDeserializePSObject will be called after the deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Management.Automation.PSObject content that should be used. + + partial void AfterDeserializePSObject(global::System.Management.Automation.PSObject content); + + /// + /// BeforeDeserializeDictionary will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Collections.IDictionary content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializeDictionary(global::System.Collections.IDictionary content, ref bool returnNow); + + /// + /// BeforeDeserializePSObject will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializePSObject(global::System.Management.Automation.PSObject content, ref bool returnNow); + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IStringNotBeginsWithAdvancedFilter DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new StringNotBeginsWithAdvancedFilter(content); + } + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IStringNotBeginsWithAdvancedFilter DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new StringNotBeginsWithAdvancedFilter(content); + } + + /// + /// Creates a new instance of , deserializing the content from a json string. + /// + /// a string containing a JSON serialized instance of this model. + /// + /// an instance of the model class. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IStringNotBeginsWithAdvancedFilter FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode.Parse(jsonText)); + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + internal StringNotBeginsWithAdvancedFilter(global::System.Collections.IDictionary content) + { + bool returnNow = false; + BeforeDeserializeDictionary(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("Value")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IStringNotBeginsWithAdvancedFilterInternal)this).Value = (string[]) content.GetValueForProperty("Value",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IStringNotBeginsWithAdvancedFilterInternal)this).Value, __y => TypeConverterExtensions.SelectToArray(__y, global::System.Convert.ToString)); + } + if (content.Contains("OperatorType")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IAdvancedFilterInternal)this).OperatorType = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.AdvancedFilterOperatorType) content.GetValueForProperty("OperatorType",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IAdvancedFilterInternal)this).OperatorType, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.AdvancedFilterOperatorType.CreateFrom); + } + if (content.Contains("Key")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IAdvancedFilterInternal)this).Key = (string) content.GetValueForProperty("Key",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IAdvancedFilterInternal)this).Key, global::System.Convert.ToString); + } + AfterDeserializeDictionary(content); + } + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + internal StringNotBeginsWithAdvancedFilter(global::System.Management.Automation.PSObject content) + { + bool returnNow = false; + BeforeDeserializePSObject(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("Value")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IStringNotBeginsWithAdvancedFilterInternal)this).Value = (string[]) content.GetValueForProperty("Value",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IStringNotBeginsWithAdvancedFilterInternal)this).Value, __y => TypeConverterExtensions.SelectToArray(__y, global::System.Convert.ToString)); + } + if (content.Contains("OperatorType")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IAdvancedFilterInternal)this).OperatorType = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.AdvancedFilterOperatorType) content.GetValueForProperty("OperatorType",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IAdvancedFilterInternal)this).OperatorType, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.AdvancedFilterOperatorType.CreateFrom); + } + if (content.Contains("Key")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IAdvancedFilterInternal)this).Key = (string) content.GetValueForProperty("Key",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IAdvancedFilterInternal)this).Key, 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.EventGrid.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// StringNotBeginsWith Advanced Filter. + [System.ComponentModel.TypeConverter(typeof(StringNotBeginsWithAdvancedFilterTypeConverter))] + public partial interface IStringNotBeginsWithAdvancedFilter + + { + + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/StringNotBeginsWithAdvancedFilter.TypeConverter.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/StringNotBeginsWithAdvancedFilter.TypeConverter.cs new file mode 100644 index 000000000000..64e52bf18837 --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/StringNotBeginsWithAdvancedFilter.TypeConverter.cs @@ -0,0 +1,147 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class StringNotBeginsWithAdvancedFilterTypeConverter : global::System.Management.Automation.PSTypeConverter + { + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false. + /// + public override bool CanConvertFrom(object sourceValue, global::System.Type destinationType) => CanConvertFrom(sourceValue); + + /// + /// Determines if the converter can convert the parameter to the . + /// + /// the instance to check if it can be converted to the type. + /// + /// true if the instance could be converted to a type, otherwise false + /// + public static bool CanConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return true; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + // we say yest to PSObjects + return true; + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + // we say yest to Hashtables/dictionaries + return true; + } + try + { + if (null != sourceValue.ToJsonString()) + { + return true; + } + } + catch + { + // Not one of our objects + } + try + { + string text = sourceValue.ToString()?.Trim(); + return true == text?.StartsWith("{") && true == text?.EndsWith("}") && Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonType.Object; + } + catch + { + // Doesn't look like it can be treated as JSON + } + return false; + } + + /// + /// Determines if the parameter can be converted to the parameter + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false + /// + public override bool CanConvertTo(object sourceValue, global::System.Type destinationType) => false; + + /// + /// Converts the parameter to the parameter using and + /// + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// + /// an instance of , or null if there is no suitable conversion. + /// + public override object ConvertFrom(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => ConvertFrom(sourceValue); + + /// + /// Converts the parameter to the parameter using and + /// + /// the value to convert into an instance of . + /// + /// an instance of , or null if there is no suitable conversion. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IStringNotBeginsWithAdvancedFilter ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IStringNotBeginsWithAdvancedFilter).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return StringNotBeginsWithAdvancedFilter.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return StringNotBeginsWithAdvancedFilter.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return StringNotBeginsWithAdvancedFilter.DeserializeFromDictionary(sourceValue); + } + return null; + } + + /// NotImplemented -- this will return null + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// will always return null. + public override object ConvertTo(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => null; + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/StringNotBeginsWithAdvancedFilter.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/StringNotBeginsWithAdvancedFilter.cs new file mode 100644 index 000000000000..63dd6497fc59 --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/StringNotBeginsWithAdvancedFilter.cs @@ -0,0 +1,80 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Extensions; + + /// StringNotBeginsWith Advanced Filter. + public partial class StringNotBeginsWithAdvancedFilter : + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IStringNotBeginsWithAdvancedFilter, + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IStringNotBeginsWithAdvancedFilterInternal, + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IValidates + { + /// + /// Backing field for Inherited model + /// + private Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IAdvancedFilter __advancedFilter = new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.AdvancedFilter(); + + /// The field/property in the event based on which you want to filter. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Inherited)] + public string Key { get => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IAdvancedFilterInternal)__advancedFilter).Key; set => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IAdvancedFilterInternal)__advancedFilter).Key = value ?? null; } + + /// + /// The operator type used for filtering, e.g., NumberIn, StringContains, BoolEquals and others. + /// + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Inherited)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.AdvancedFilterOperatorType OperatorType { get => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IAdvancedFilterInternal)__advancedFilter).OperatorType; set => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IAdvancedFilterInternal)__advancedFilter).OperatorType = value ; } + + /// Backing field for property. + private string[] _value; + + /// The set of filter values. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Owned)] + public string[] Value { get => this._value; set => this._value = value; } + + /// Creates an new instance. + public StringNotBeginsWithAdvancedFilter() + { + + } + + /// Validates that this object meets the validation criteria. + /// an instance that will receive validation + /// events. + /// + /// A that will be complete when validation is completed. + /// + public async global::System.Threading.Tasks.Task Validate(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener eventListener) + { + await eventListener.AssertNotNull(nameof(__advancedFilter), __advancedFilter); + await eventListener.AssertObjectIsValid(nameof(__advancedFilter), __advancedFilter); + } + } + /// StringNotBeginsWith Advanced Filter. + public partial interface IStringNotBeginsWithAdvancedFilter : + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IJsonSerializable, + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IAdvancedFilter + { + /// The set of filter values. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The set of filter values.", + SerializedName = @"values", + PossibleTypes = new [] { typeof(string) })] + string[] Value { get; set; } + + } + /// StringNotBeginsWith Advanced Filter. + internal partial interface IStringNotBeginsWithAdvancedFilterInternal : + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IAdvancedFilterInternal + { + /// The set of filter values. + string[] Value { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/StringNotBeginsWithAdvancedFilter.json.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/StringNotBeginsWithAdvancedFilter.json.cs new file mode 100644 index 000000000000..ac5040361013 --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/StringNotBeginsWithAdvancedFilter.json.cs @@ -0,0 +1,116 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Extensions; + + /// StringNotBeginsWith Advanced Filter. + public partial class StringNotBeginsWithAdvancedFilter + { + + /// + /// AfterFromJson will be called after the json deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JsonNode that should be deserialized into this object. + + partial void AfterFromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json erialization has finished, allowing customization of the before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JSON container that the serialization result will be placed in. + + partial void AfterToJson(ref Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject container); + + /// + /// BeforeFromJson will be called before the json deserialization has commenced, allowing complete customization of + /// the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JsonNode that should be deserialized into this object. + /// Determines if the rest of the deserialization should be processed, or if the method should return + /// instantly. + + partial void BeforeFromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject json, ref bool returnNow); + + /// + /// BeforeToJson will be called before the json serialization has commenced, allowing complete customization of the + /// object before it is serialized. + /// If you wish to disable the default serialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JSON container that the serialization result will be placed in. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeToJson(ref Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IStringNotBeginsWithAdvancedFilter. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IStringNotBeginsWithAdvancedFilter. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IStringNotBeginsWithAdvancedFilter FromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject json ? new StringNotBeginsWithAdvancedFilter(json) : null; + } + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject instance to deserialize from. + internal StringNotBeginsWithAdvancedFilter(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject json) + { + bool returnNow = false; + BeforeFromJson(json, ref returnNow); + if (returnNow) + { + return; + } + __advancedFilter = new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.AdvancedFilter(json); + {_value = If( json?.PropertyT("values"), out var __jsonValues) ? If( __jsonValues as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Runtime.Json.JsonString __t ? (string)(__t.ToString()) : null)) ))() : null : Value;} + AfterFromJson(json); + } + + /// + /// Serializes this instance of into a . + /// + /// The container to serialize this object into. If the caller + /// passes in null, a new instance will be created and returned to the caller. + /// Allows the caller to choose the depth of the serialization. See . + /// + /// a serialized instance of as a . + /// + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject(); + + bool returnNow = false; + BeforeToJson(ref container, ref returnNow); + if (returnNow) + { + return container; + } + __advancedFilter?.ToJson(container, serializationMode); + if (null != this._value) + { + var __w = new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.XNodeArray(); + foreach( var __x in this._value ) + { + AddIf(null != (((object)__x)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonString(__x.ToString()) : null ,__w.Add); + } + container.Add("values",__w); + } + AfterToJson(ref container); + return container; + } + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/StringNotContainsAdvancedFilter.PowerShell.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/StringNotContainsAdvancedFilter.PowerShell.cs new file mode 100644 index 000000000000..0e49541f4a98 --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/StringNotContainsAdvancedFilter.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.EventGrid.Models.Api20211015Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell; + + /// StringNotContains Advanced Filter. + [System.ComponentModel.TypeConverter(typeof(StringNotContainsAdvancedFilterTypeConverter))] + public partial class StringNotContainsAdvancedFilter + { + + /// + /// AfterDeserializeDictionary will be called after the deserialization has finished, allowing customization of the + /// object before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Collections.IDictionary content that should be used. + + partial void AfterDeserializeDictionary(global::System.Collections.IDictionary content); + + /// + /// AfterDeserializePSObject will be called after the deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Management.Automation.PSObject content that should be used. + + partial void AfterDeserializePSObject(global::System.Management.Automation.PSObject content); + + /// + /// BeforeDeserializeDictionary will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Collections.IDictionary content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializeDictionary(global::System.Collections.IDictionary content, ref bool returnNow); + + /// + /// BeforeDeserializePSObject will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializePSObject(global::System.Management.Automation.PSObject content, ref bool returnNow); + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IStringNotContainsAdvancedFilter DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new StringNotContainsAdvancedFilter(content); + } + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IStringNotContainsAdvancedFilter DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new StringNotContainsAdvancedFilter(content); + } + + /// + /// Creates a new instance of , deserializing the content from a json string. + /// + /// a string containing a JSON serialized instance of this model. + /// an instance of the model class. + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IStringNotContainsAdvancedFilter FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode.Parse(jsonText)); + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + internal StringNotContainsAdvancedFilter(global::System.Collections.IDictionary content) + { + bool returnNow = false; + BeforeDeserializeDictionary(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("Value")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IStringNotContainsAdvancedFilterInternal)this).Value = (string[]) content.GetValueForProperty("Value",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IStringNotContainsAdvancedFilterInternal)this).Value, __y => TypeConverterExtensions.SelectToArray(__y, global::System.Convert.ToString)); + } + if (content.Contains("OperatorType")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IAdvancedFilterInternal)this).OperatorType = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.AdvancedFilterOperatorType) content.GetValueForProperty("OperatorType",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IAdvancedFilterInternal)this).OperatorType, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.AdvancedFilterOperatorType.CreateFrom); + } + if (content.Contains("Key")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IAdvancedFilterInternal)this).Key = (string) content.GetValueForProperty("Key",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IAdvancedFilterInternal)this).Key, global::System.Convert.ToString); + } + AfterDeserializeDictionary(content); + } + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + internal StringNotContainsAdvancedFilter(global::System.Management.Automation.PSObject content) + { + bool returnNow = false; + BeforeDeserializePSObject(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("Value")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IStringNotContainsAdvancedFilterInternal)this).Value = (string[]) content.GetValueForProperty("Value",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IStringNotContainsAdvancedFilterInternal)this).Value, __y => TypeConverterExtensions.SelectToArray(__y, global::System.Convert.ToString)); + } + if (content.Contains("OperatorType")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IAdvancedFilterInternal)this).OperatorType = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.AdvancedFilterOperatorType) content.GetValueForProperty("OperatorType",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IAdvancedFilterInternal)this).OperatorType, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.AdvancedFilterOperatorType.CreateFrom); + } + if (content.Contains("Key")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IAdvancedFilterInternal)this).Key = (string) content.GetValueForProperty("Key",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IAdvancedFilterInternal)this).Key, 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.EventGrid.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// StringNotContains Advanced Filter. + [System.ComponentModel.TypeConverter(typeof(StringNotContainsAdvancedFilterTypeConverter))] + public partial interface IStringNotContainsAdvancedFilter + + { + + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/StringNotContainsAdvancedFilter.TypeConverter.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/StringNotContainsAdvancedFilter.TypeConverter.cs new file mode 100644 index 000000000000..87a24afc2eaa --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/StringNotContainsAdvancedFilter.TypeConverter.cs @@ -0,0 +1,147 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class StringNotContainsAdvancedFilterTypeConverter : global::System.Management.Automation.PSTypeConverter + { + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false. + /// + public override bool CanConvertFrom(object sourceValue, global::System.Type destinationType) => CanConvertFrom(sourceValue); + + /// + /// Determines if the converter can convert the parameter to the . + /// + /// the instance to check if it can be converted to the type. + /// + /// true if the instance could be converted to a type, otherwise false + /// + public static bool CanConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return true; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + // we say yest to PSObjects + return true; + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + // we say yest to Hashtables/dictionaries + return true; + } + try + { + if (null != sourceValue.ToJsonString()) + { + return true; + } + } + catch + { + // Not one of our objects + } + try + { + string text = sourceValue.ToString()?.Trim(); + return true == text?.StartsWith("{") && true == text?.EndsWith("}") && Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonType.Object; + } + catch + { + // Doesn't look like it can be treated as JSON + } + return false; + } + + /// + /// Determines if the parameter can be converted to the parameter + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false + /// + public override bool CanConvertTo(object sourceValue, global::System.Type destinationType) => false; + + /// + /// Converts the parameter to the parameter using and + /// + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// + /// an instance of , or null if there is no suitable conversion. + /// + public override object ConvertFrom(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => ConvertFrom(sourceValue); + + /// + /// Converts the parameter to the parameter using and + /// + /// the value to convert into an instance of . + /// + /// an instance of , or null if there is no suitable conversion. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IStringNotContainsAdvancedFilter ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IStringNotContainsAdvancedFilter).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return StringNotContainsAdvancedFilter.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return StringNotContainsAdvancedFilter.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return StringNotContainsAdvancedFilter.DeserializeFromDictionary(sourceValue); + } + return null; + } + + /// NotImplemented -- this will return null + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// will always return null. + public override object ConvertTo(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => null; + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/StringNotContainsAdvancedFilter.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/StringNotContainsAdvancedFilter.cs new file mode 100644 index 000000000000..c4fc4f3d5279 --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/StringNotContainsAdvancedFilter.cs @@ -0,0 +1,80 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Extensions; + + /// StringNotContains Advanced Filter. + public partial class StringNotContainsAdvancedFilter : + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IStringNotContainsAdvancedFilter, + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IStringNotContainsAdvancedFilterInternal, + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IValidates + { + /// + /// Backing field for Inherited model + /// + private Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IAdvancedFilter __advancedFilter = new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.AdvancedFilter(); + + /// The field/property in the event based on which you want to filter. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Inherited)] + public string Key { get => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IAdvancedFilterInternal)__advancedFilter).Key; set => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IAdvancedFilterInternal)__advancedFilter).Key = value ?? null; } + + /// + /// The operator type used for filtering, e.g., NumberIn, StringContains, BoolEquals and others. + /// + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Inherited)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.AdvancedFilterOperatorType OperatorType { get => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IAdvancedFilterInternal)__advancedFilter).OperatorType; set => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IAdvancedFilterInternal)__advancedFilter).OperatorType = value ; } + + /// Backing field for property. + private string[] _value; + + /// The set of filter values. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Owned)] + public string[] Value { get => this._value; set => this._value = value; } + + /// Creates an new instance. + public StringNotContainsAdvancedFilter() + { + + } + + /// Validates that this object meets the validation criteria. + /// an instance that will receive validation + /// events. + /// + /// A that will be complete when validation is completed. + /// + public async global::System.Threading.Tasks.Task Validate(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener eventListener) + { + await eventListener.AssertNotNull(nameof(__advancedFilter), __advancedFilter); + await eventListener.AssertObjectIsValid(nameof(__advancedFilter), __advancedFilter); + } + } + /// StringNotContains Advanced Filter. + public partial interface IStringNotContainsAdvancedFilter : + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IJsonSerializable, + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IAdvancedFilter + { + /// The set of filter values. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The set of filter values.", + SerializedName = @"values", + PossibleTypes = new [] { typeof(string) })] + string[] Value { get; set; } + + } + /// StringNotContains Advanced Filter. + internal partial interface IStringNotContainsAdvancedFilterInternal : + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IAdvancedFilterInternal + { + /// The set of filter values. + string[] Value { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/StringNotContainsAdvancedFilter.json.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/StringNotContainsAdvancedFilter.json.cs new file mode 100644 index 000000000000..ec41a29d55f9 --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/StringNotContainsAdvancedFilter.json.cs @@ -0,0 +1,116 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Extensions; + + /// StringNotContains Advanced Filter. + public partial class StringNotContainsAdvancedFilter + { + + /// + /// AfterFromJson will be called after the json deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JsonNode that should be deserialized into this object. + + partial void AfterFromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json erialization has finished, allowing customization of the before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JSON container that the serialization result will be placed in. + + partial void AfterToJson(ref Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject container); + + /// + /// BeforeFromJson will be called before the json deserialization has commenced, allowing complete customization of + /// the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JsonNode that should be deserialized into this object. + /// Determines if the rest of the deserialization should be processed, or if the method should return + /// instantly. + + partial void BeforeFromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject json, ref bool returnNow); + + /// + /// BeforeToJson will be called before the json serialization has commenced, allowing complete customization of the + /// object before it is serialized. + /// If you wish to disable the default serialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JSON container that the serialization result will be placed in. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeToJson(ref Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IStringNotContainsAdvancedFilter. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IStringNotContainsAdvancedFilter. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IStringNotContainsAdvancedFilter FromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject json ? new StringNotContainsAdvancedFilter(json) : null; + } + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject instance to deserialize from. + internal StringNotContainsAdvancedFilter(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject json) + { + bool returnNow = false; + BeforeFromJson(json, ref returnNow); + if (returnNow) + { + return; + } + __advancedFilter = new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.AdvancedFilter(json); + {_value = If( json?.PropertyT("values"), out var __jsonValues) ? If( __jsonValues as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Runtime.Json.JsonString __t ? (string)(__t.ToString()) : null)) ))() : null : Value;} + AfterFromJson(json); + } + + /// + /// Serializes this instance of into a . + /// + /// The container to serialize this object into. If the caller + /// passes in null, a new instance will be created and returned to the caller. + /// Allows the caller to choose the depth of the serialization. See . + /// + /// a serialized instance of as a . + /// + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject(); + + bool returnNow = false; + BeforeToJson(ref container, ref returnNow); + if (returnNow) + { + return container; + } + __advancedFilter?.ToJson(container, serializationMode); + if (null != this._value) + { + var __w = new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.XNodeArray(); + foreach( var __x in this._value ) + { + AddIf(null != (((object)__x)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonString(__x.ToString()) : null ,__w.Add); + } + container.Add("values",__w); + } + AfterToJson(ref container); + return container; + } + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/StringNotEndsWithAdvancedFilter.PowerShell.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/StringNotEndsWithAdvancedFilter.PowerShell.cs new file mode 100644 index 000000000000..6dcea18986b8 --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/StringNotEndsWithAdvancedFilter.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.EventGrid.Models.Api20211015Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell; + + /// StringNotEndsWith Advanced Filter. + [System.ComponentModel.TypeConverter(typeof(StringNotEndsWithAdvancedFilterTypeConverter))] + public partial class StringNotEndsWithAdvancedFilter + { + + /// + /// AfterDeserializeDictionary will be called after the deserialization has finished, allowing customization of the + /// object before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Collections.IDictionary content that should be used. + + partial void AfterDeserializeDictionary(global::System.Collections.IDictionary content); + + /// + /// AfterDeserializePSObject will be called after the deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Management.Automation.PSObject content that should be used. + + partial void AfterDeserializePSObject(global::System.Management.Automation.PSObject content); + + /// + /// BeforeDeserializeDictionary will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Collections.IDictionary content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializeDictionary(global::System.Collections.IDictionary content, ref bool returnNow); + + /// + /// BeforeDeserializePSObject will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializePSObject(global::System.Management.Automation.PSObject content, ref bool returnNow); + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IStringNotEndsWithAdvancedFilter DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new StringNotEndsWithAdvancedFilter(content); + } + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IStringNotEndsWithAdvancedFilter DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new StringNotEndsWithAdvancedFilter(content); + } + + /// + /// Creates a new instance of , deserializing the content from a json string. + /// + /// a string containing a JSON serialized instance of this model. + /// an instance of the model class. + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IStringNotEndsWithAdvancedFilter FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode.Parse(jsonText)); + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + internal StringNotEndsWithAdvancedFilter(global::System.Collections.IDictionary content) + { + bool returnNow = false; + BeforeDeserializeDictionary(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("Value")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IStringNotEndsWithAdvancedFilterInternal)this).Value = (string[]) content.GetValueForProperty("Value",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IStringNotEndsWithAdvancedFilterInternal)this).Value, __y => TypeConverterExtensions.SelectToArray(__y, global::System.Convert.ToString)); + } + if (content.Contains("OperatorType")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IAdvancedFilterInternal)this).OperatorType = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.AdvancedFilterOperatorType) content.GetValueForProperty("OperatorType",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IAdvancedFilterInternal)this).OperatorType, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.AdvancedFilterOperatorType.CreateFrom); + } + if (content.Contains("Key")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IAdvancedFilterInternal)this).Key = (string) content.GetValueForProperty("Key",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IAdvancedFilterInternal)this).Key, global::System.Convert.ToString); + } + AfterDeserializeDictionary(content); + } + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + internal StringNotEndsWithAdvancedFilter(global::System.Management.Automation.PSObject content) + { + bool returnNow = false; + BeforeDeserializePSObject(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("Value")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IStringNotEndsWithAdvancedFilterInternal)this).Value = (string[]) content.GetValueForProperty("Value",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IStringNotEndsWithAdvancedFilterInternal)this).Value, __y => TypeConverterExtensions.SelectToArray(__y, global::System.Convert.ToString)); + } + if (content.Contains("OperatorType")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IAdvancedFilterInternal)this).OperatorType = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.AdvancedFilterOperatorType) content.GetValueForProperty("OperatorType",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IAdvancedFilterInternal)this).OperatorType, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.AdvancedFilterOperatorType.CreateFrom); + } + if (content.Contains("Key")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IAdvancedFilterInternal)this).Key = (string) content.GetValueForProperty("Key",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IAdvancedFilterInternal)this).Key, 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.EventGrid.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// StringNotEndsWith Advanced Filter. + [System.ComponentModel.TypeConverter(typeof(StringNotEndsWithAdvancedFilterTypeConverter))] + public partial interface IStringNotEndsWithAdvancedFilter + + { + + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/StringNotEndsWithAdvancedFilter.TypeConverter.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/StringNotEndsWithAdvancedFilter.TypeConverter.cs new file mode 100644 index 000000000000..5a92e38f03e7 --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/StringNotEndsWithAdvancedFilter.TypeConverter.cs @@ -0,0 +1,147 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class StringNotEndsWithAdvancedFilterTypeConverter : global::System.Management.Automation.PSTypeConverter + { + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false. + /// + public override bool CanConvertFrom(object sourceValue, global::System.Type destinationType) => CanConvertFrom(sourceValue); + + /// + /// Determines if the converter can convert the parameter to the . + /// + /// the instance to check if it can be converted to the type. + /// + /// true if the instance could be converted to a type, otherwise false + /// + public static bool CanConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return true; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + // we say yest to PSObjects + return true; + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + // we say yest to Hashtables/dictionaries + return true; + } + try + { + if (null != sourceValue.ToJsonString()) + { + return true; + } + } + catch + { + // Not one of our objects + } + try + { + string text = sourceValue.ToString()?.Trim(); + return true == text?.StartsWith("{") && true == text?.EndsWith("}") && Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonType.Object; + } + catch + { + // Doesn't look like it can be treated as JSON + } + return false; + } + + /// + /// Determines if the parameter can be converted to the parameter + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false + /// + public override bool CanConvertTo(object sourceValue, global::System.Type destinationType) => false; + + /// + /// Converts the parameter to the parameter using and + /// + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// + /// an instance of , or null if there is no suitable conversion. + /// + public override object ConvertFrom(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => ConvertFrom(sourceValue); + + /// + /// Converts the parameter to the parameter using and + /// + /// the value to convert into an instance of . + /// + /// an instance of , or null if there is no suitable conversion. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IStringNotEndsWithAdvancedFilter ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IStringNotEndsWithAdvancedFilter).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return StringNotEndsWithAdvancedFilter.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return StringNotEndsWithAdvancedFilter.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return StringNotEndsWithAdvancedFilter.DeserializeFromDictionary(sourceValue); + } + return null; + } + + /// NotImplemented -- this will return null + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// will always return null. + public override object ConvertTo(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => null; + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/StringNotEndsWithAdvancedFilter.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/StringNotEndsWithAdvancedFilter.cs new file mode 100644 index 000000000000..d3bf349bee11 --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/StringNotEndsWithAdvancedFilter.cs @@ -0,0 +1,80 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Extensions; + + /// StringNotEndsWith Advanced Filter. + public partial class StringNotEndsWithAdvancedFilter : + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IStringNotEndsWithAdvancedFilter, + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IStringNotEndsWithAdvancedFilterInternal, + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IValidates + { + /// + /// Backing field for Inherited model + /// + private Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IAdvancedFilter __advancedFilter = new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.AdvancedFilter(); + + /// The field/property in the event based on which you want to filter. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Inherited)] + public string Key { get => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IAdvancedFilterInternal)__advancedFilter).Key; set => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IAdvancedFilterInternal)__advancedFilter).Key = value ?? null; } + + /// + /// The operator type used for filtering, e.g., NumberIn, StringContains, BoolEquals and others. + /// + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Inherited)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.AdvancedFilterOperatorType OperatorType { get => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IAdvancedFilterInternal)__advancedFilter).OperatorType; set => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IAdvancedFilterInternal)__advancedFilter).OperatorType = value ; } + + /// Backing field for property. + private string[] _value; + + /// The set of filter values. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Owned)] + public string[] Value { get => this._value; set => this._value = value; } + + /// Creates an new instance. + public StringNotEndsWithAdvancedFilter() + { + + } + + /// Validates that this object meets the validation criteria. + /// an instance that will receive validation + /// events. + /// + /// A that will be complete when validation is completed. + /// + public async global::System.Threading.Tasks.Task Validate(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener eventListener) + { + await eventListener.AssertNotNull(nameof(__advancedFilter), __advancedFilter); + await eventListener.AssertObjectIsValid(nameof(__advancedFilter), __advancedFilter); + } + } + /// StringNotEndsWith Advanced Filter. + public partial interface IStringNotEndsWithAdvancedFilter : + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IJsonSerializable, + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IAdvancedFilter + { + /// The set of filter values. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The set of filter values.", + SerializedName = @"values", + PossibleTypes = new [] { typeof(string) })] + string[] Value { get; set; } + + } + /// StringNotEndsWith Advanced Filter. + internal partial interface IStringNotEndsWithAdvancedFilterInternal : + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IAdvancedFilterInternal + { + /// The set of filter values. + string[] Value { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/StringNotEndsWithAdvancedFilter.json.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/StringNotEndsWithAdvancedFilter.json.cs new file mode 100644 index 000000000000..395d3da03839 --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/StringNotEndsWithAdvancedFilter.json.cs @@ -0,0 +1,116 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Extensions; + + /// StringNotEndsWith Advanced Filter. + public partial class StringNotEndsWithAdvancedFilter + { + + /// + /// AfterFromJson will be called after the json deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JsonNode that should be deserialized into this object. + + partial void AfterFromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json erialization has finished, allowing customization of the before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JSON container that the serialization result will be placed in. + + partial void AfterToJson(ref Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject container); + + /// + /// BeforeFromJson will be called before the json deserialization has commenced, allowing complete customization of + /// the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JsonNode that should be deserialized into this object. + /// Determines if the rest of the deserialization should be processed, or if the method should return + /// instantly. + + partial void BeforeFromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject json, ref bool returnNow); + + /// + /// BeforeToJson will be called before the json serialization has commenced, allowing complete customization of the + /// object before it is serialized. + /// If you wish to disable the default serialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JSON container that the serialization result will be placed in. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeToJson(ref Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IStringNotEndsWithAdvancedFilter. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IStringNotEndsWithAdvancedFilter. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IStringNotEndsWithAdvancedFilter FromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject json ? new StringNotEndsWithAdvancedFilter(json) : null; + } + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject instance to deserialize from. + internal StringNotEndsWithAdvancedFilter(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject json) + { + bool returnNow = false; + BeforeFromJson(json, ref returnNow); + if (returnNow) + { + return; + } + __advancedFilter = new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.AdvancedFilter(json); + {_value = If( json?.PropertyT("values"), out var __jsonValues) ? If( __jsonValues as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Runtime.Json.JsonString __t ? (string)(__t.ToString()) : null)) ))() : null : Value;} + AfterFromJson(json); + } + + /// + /// Serializes this instance of into a . + /// + /// The container to serialize this object into. If the caller + /// passes in null, a new instance will be created and returned to the caller. + /// Allows the caller to choose the depth of the serialization. See . + /// + /// a serialized instance of as a . + /// + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject(); + + bool returnNow = false; + BeforeToJson(ref container, ref returnNow); + if (returnNow) + { + return container; + } + __advancedFilter?.ToJson(container, serializationMode); + if (null != this._value) + { + var __w = new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.XNodeArray(); + foreach( var __x in this._value ) + { + AddIf(null != (((object)__x)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonString(__x.ToString()) : null ,__w.Add); + } + container.Add("values",__w); + } + AfterToJson(ref container); + return container; + } + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/StringNotInAdvancedFilter.PowerShell.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/StringNotInAdvancedFilter.PowerShell.cs new file mode 100644 index 000000000000..c2d37b7ebf10 --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/StringNotInAdvancedFilter.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.EventGrid.Models.Api20211015Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell; + + /// StringNotIn Advanced Filter. + [System.ComponentModel.TypeConverter(typeof(StringNotInAdvancedFilterTypeConverter))] + public partial class StringNotInAdvancedFilter + { + + /// + /// AfterDeserializeDictionary will be called after the deserialization has finished, allowing customization of the + /// object before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Collections.IDictionary content that should be used. + + partial void AfterDeserializeDictionary(global::System.Collections.IDictionary content); + + /// + /// AfterDeserializePSObject will be called after the deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Management.Automation.PSObject content that should be used. + + partial void AfterDeserializePSObject(global::System.Management.Automation.PSObject content); + + /// + /// BeforeDeserializeDictionary will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Collections.IDictionary content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializeDictionary(global::System.Collections.IDictionary content, ref bool returnNow); + + /// + /// BeforeDeserializePSObject will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializePSObject(global::System.Management.Automation.PSObject content, ref bool returnNow); + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IStringNotInAdvancedFilter DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new StringNotInAdvancedFilter(content); + } + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IStringNotInAdvancedFilter DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new StringNotInAdvancedFilter(content); + } + + /// + /// Creates a new instance of , deserializing the content from a json string. + /// + /// a string containing a JSON serialized instance of this model. + /// an instance of the model class. + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IStringNotInAdvancedFilter FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode.Parse(jsonText)); + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + internal StringNotInAdvancedFilter(global::System.Collections.IDictionary content) + { + bool returnNow = false; + BeforeDeserializeDictionary(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("Value")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IStringNotInAdvancedFilterInternal)this).Value = (string[]) content.GetValueForProperty("Value",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IStringNotInAdvancedFilterInternal)this).Value, __y => TypeConverterExtensions.SelectToArray(__y, global::System.Convert.ToString)); + } + if (content.Contains("OperatorType")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IAdvancedFilterInternal)this).OperatorType = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.AdvancedFilterOperatorType) content.GetValueForProperty("OperatorType",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IAdvancedFilterInternal)this).OperatorType, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.AdvancedFilterOperatorType.CreateFrom); + } + if (content.Contains("Key")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IAdvancedFilterInternal)this).Key = (string) content.GetValueForProperty("Key",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IAdvancedFilterInternal)this).Key, global::System.Convert.ToString); + } + AfterDeserializeDictionary(content); + } + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + internal StringNotInAdvancedFilter(global::System.Management.Automation.PSObject content) + { + bool returnNow = false; + BeforeDeserializePSObject(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("Value")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IStringNotInAdvancedFilterInternal)this).Value = (string[]) content.GetValueForProperty("Value",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IStringNotInAdvancedFilterInternal)this).Value, __y => TypeConverterExtensions.SelectToArray(__y, global::System.Convert.ToString)); + } + if (content.Contains("OperatorType")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IAdvancedFilterInternal)this).OperatorType = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.AdvancedFilterOperatorType) content.GetValueForProperty("OperatorType",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IAdvancedFilterInternal)this).OperatorType, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.AdvancedFilterOperatorType.CreateFrom); + } + if (content.Contains("Key")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IAdvancedFilterInternal)this).Key = (string) content.GetValueForProperty("Key",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IAdvancedFilterInternal)this).Key, 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.EventGrid.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// StringNotIn Advanced Filter. + [System.ComponentModel.TypeConverter(typeof(StringNotInAdvancedFilterTypeConverter))] + public partial interface IStringNotInAdvancedFilter + + { + + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/StringNotInAdvancedFilter.TypeConverter.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/StringNotInAdvancedFilter.TypeConverter.cs new file mode 100644 index 000000000000..b2c97d8076f8 --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/StringNotInAdvancedFilter.TypeConverter.cs @@ -0,0 +1,147 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class StringNotInAdvancedFilterTypeConverter : global::System.Management.Automation.PSTypeConverter + { + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false. + /// + public override bool CanConvertFrom(object sourceValue, global::System.Type destinationType) => CanConvertFrom(sourceValue); + + /// + /// Determines if the converter can convert the parameter to the . + /// + /// the instance to check if it can be converted to the type. + /// + /// true if the instance could be converted to a type, otherwise false + /// + public static bool CanConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return true; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + // we say yest to PSObjects + return true; + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + // we say yest to Hashtables/dictionaries + return true; + } + try + { + if (null != sourceValue.ToJsonString()) + { + return true; + } + } + catch + { + // Not one of our objects + } + try + { + string text = sourceValue.ToString()?.Trim(); + return true == text?.StartsWith("{") && true == text?.EndsWith("}") && Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonType.Object; + } + catch + { + // Doesn't look like it can be treated as JSON + } + return false; + } + + /// + /// Determines if the parameter can be converted to the parameter + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false + /// + public override bool CanConvertTo(object sourceValue, global::System.Type destinationType) => false; + + /// + /// Converts the parameter to the parameter using and + /// + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// + /// an instance of , or null if there is no suitable conversion. + /// + public override object ConvertFrom(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => ConvertFrom(sourceValue); + + /// + /// Converts the parameter to the parameter using and + /// + /// the value to convert into an instance of . + /// + /// an instance of , or null if there is no suitable conversion. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IStringNotInAdvancedFilter ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IStringNotInAdvancedFilter).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return StringNotInAdvancedFilter.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return StringNotInAdvancedFilter.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return StringNotInAdvancedFilter.DeserializeFromDictionary(sourceValue); + } + return null; + } + + /// NotImplemented -- this will return null + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// will always return null. + public override object ConvertTo(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => null; + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/StringNotInAdvancedFilter.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/StringNotInAdvancedFilter.cs new file mode 100644 index 000000000000..54741f215dcb --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/StringNotInAdvancedFilter.cs @@ -0,0 +1,80 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Extensions; + + /// StringNotIn Advanced Filter. + public partial class StringNotInAdvancedFilter : + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IStringNotInAdvancedFilter, + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IStringNotInAdvancedFilterInternal, + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IValidates + { + /// + /// Backing field for Inherited model + /// + private Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IAdvancedFilter __advancedFilter = new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.AdvancedFilter(); + + /// The field/property in the event based on which you want to filter. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Inherited)] + public string Key { get => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IAdvancedFilterInternal)__advancedFilter).Key; set => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IAdvancedFilterInternal)__advancedFilter).Key = value ?? null; } + + /// + /// The operator type used for filtering, e.g., NumberIn, StringContains, BoolEquals and others. + /// + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Inherited)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.AdvancedFilterOperatorType OperatorType { get => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IAdvancedFilterInternal)__advancedFilter).OperatorType; set => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IAdvancedFilterInternal)__advancedFilter).OperatorType = value ; } + + /// Backing field for property. + private string[] _value; + + /// The set of filter values. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Owned)] + public string[] Value { get => this._value; set => this._value = value; } + + /// Creates an new instance. + public StringNotInAdvancedFilter() + { + + } + + /// Validates that this object meets the validation criteria. + /// an instance that will receive validation + /// events. + /// + /// A that will be complete when validation is completed. + /// + public async global::System.Threading.Tasks.Task Validate(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener eventListener) + { + await eventListener.AssertNotNull(nameof(__advancedFilter), __advancedFilter); + await eventListener.AssertObjectIsValid(nameof(__advancedFilter), __advancedFilter); + } + } + /// StringNotIn Advanced Filter. + public partial interface IStringNotInAdvancedFilter : + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IJsonSerializable, + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IAdvancedFilter + { + /// The set of filter values. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The set of filter values.", + SerializedName = @"values", + PossibleTypes = new [] { typeof(string) })] + string[] Value { get; set; } + + } + /// StringNotIn Advanced Filter. + internal partial interface IStringNotInAdvancedFilterInternal : + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IAdvancedFilterInternal + { + /// The set of filter values. + string[] Value { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/StringNotInAdvancedFilter.json.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/StringNotInAdvancedFilter.json.cs new file mode 100644 index 000000000000..43707d5c9d78 --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/StringNotInAdvancedFilter.json.cs @@ -0,0 +1,116 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Extensions; + + /// StringNotIn Advanced Filter. + public partial class StringNotInAdvancedFilter + { + + /// + /// AfterFromJson will be called after the json deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JsonNode that should be deserialized into this object. + + partial void AfterFromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json erialization has finished, allowing customization of the before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JSON container that the serialization result will be placed in. + + partial void AfterToJson(ref Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject container); + + /// + /// BeforeFromJson will be called before the json deserialization has commenced, allowing complete customization of + /// the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JsonNode that should be deserialized into this object. + /// Determines if the rest of the deserialization should be processed, or if the method should return + /// instantly. + + partial void BeforeFromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject json, ref bool returnNow); + + /// + /// BeforeToJson will be called before the json serialization has commenced, allowing complete customization of the + /// object before it is serialized. + /// If you wish to disable the default serialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JSON container that the serialization result will be placed in. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeToJson(ref Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IStringNotInAdvancedFilter. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IStringNotInAdvancedFilter. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IStringNotInAdvancedFilter FromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject json ? new StringNotInAdvancedFilter(json) : null; + } + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject instance to deserialize from. + internal StringNotInAdvancedFilter(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject json) + { + bool returnNow = false; + BeforeFromJson(json, ref returnNow); + if (returnNow) + { + return; + } + __advancedFilter = new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.AdvancedFilter(json); + {_value = If( json?.PropertyT("values"), out var __jsonValues) ? If( __jsonValues as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Runtime.Json.JsonString __t ? (string)(__t.ToString()) : null)) ))() : null : Value;} + AfterFromJson(json); + } + + /// + /// Serializes this instance of into a . + /// + /// The container to serialize this object into. If the caller + /// passes in null, a new instance will be created and returned to the caller. + /// Allows the caller to choose the depth of the serialization. See . + /// + /// a serialized instance of as a . + /// + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject(); + + bool returnNow = false; + BeforeToJson(ref container, ref returnNow); + if (returnNow) + { + return container; + } + __advancedFilter?.ToJson(container, serializationMode); + if (null != this._value) + { + var __w = new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.XNodeArray(); + foreach( var __x in this._value ) + { + AddIf(null != (((object)__x)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonString(__x.ToString()) : null ,__w.Add); + } + container.Add("values",__w); + } + AfterToJson(ref container); + return container; + } + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/SystemTopic.PowerShell.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/SystemTopic.PowerShell.cs new file mode 100644 index 000000000000..e7500560490a --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/SystemTopic.PowerShell.cs @@ -0,0 +1,310 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell; + + /// EventGrid System Topic. + [System.ComponentModel.TypeConverter(typeof(SystemTopicTypeConverter))] + public partial class SystemTopic + { + + /// + /// AfterDeserializeDictionary will be called after the deserialization has finished, allowing customization of the + /// object before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Collections.IDictionary content that should be used. + + partial void AfterDeserializeDictionary(global::System.Collections.IDictionary content); + + /// + /// AfterDeserializePSObject will be called after the deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Management.Automation.PSObject content that should be used. + + partial void AfterDeserializePSObject(global::System.Management.Automation.PSObject content); + + /// + /// BeforeDeserializeDictionary will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Collections.IDictionary content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializeDictionary(global::System.Collections.IDictionary content, ref bool returnNow); + + /// + /// BeforeDeserializePSObject will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializePSObject(global::System.Management.Automation.PSObject content, ref bool returnNow); + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ISystemTopic DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new SystemTopic(content); + } + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ISystemTopic DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new SystemTopic(content); + } + + /// + /// Creates a new instance of , deserializing the content from a json string. + /// + /// a string containing a JSON serialized instance of this model. + /// an instance of the model class. + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ISystemTopic FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode.Parse(jsonText)); + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + internal SystemTopic(global::System.Collections.IDictionary content) + { + bool returnNow = false; + BeforeDeserializeDictionary(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("Property")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ISystemTopicInternal)this).Property = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ISystemTopicProperties) content.GetValueForProperty("Property",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ISystemTopicInternal)this).Property, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.SystemTopicPropertiesTypeConverter.ConvertFrom); + } + if (content.Contains("SystemData")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ISystemTopicInternal)this).SystemData = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20.ISystemData) content.GetValueForProperty("SystemData",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ISystemTopicInternal)this).SystemData, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20.SystemDataTypeConverter.ConvertFrom); + } + if (content.Contains("Identity")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ISystemTopicInternal)this).Identity = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IIdentityInfo) content.GetValueForProperty("Identity",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ISystemTopicInternal)this).Identity, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IdentityInfoTypeConverter.ConvertFrom); + } + if (content.Contains("Id")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IResourceInternal)this).Id = (string) content.GetValueForProperty("Id",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IResourceInternal)this).Id, global::System.Convert.ToString); + } + if (content.Contains("Name")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IResourceInternal)this).Name = (string) content.GetValueForProperty("Name",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IResourceInternal)this).Name, global::System.Convert.ToString); + } + if (content.Contains("Type")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IResourceInternal)this).Type = (string) content.GetValueForProperty("Type",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IResourceInternal)this).Type, global::System.Convert.ToString); + } + if (content.Contains("Location")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITrackedResourceInternal)this).Location = (string) content.GetValueForProperty("Location",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITrackedResourceInternal)this).Location, global::System.Convert.ToString); + } + if (content.Contains("Tag")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITrackedResourceInternal)this).Tag = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITrackedResourceTags) content.GetValueForProperty("Tag",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITrackedResourceInternal)this).Tag, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.TrackedResourceTagsTypeConverter.ConvertFrom); + } + if (content.Contains("SystemDataCreatedBy")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ISystemTopicInternal)this).SystemDataCreatedBy = (string) content.GetValueForProperty("SystemDataCreatedBy",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ISystemTopicInternal)this).SystemDataCreatedBy, global::System.Convert.ToString); + } + if (content.Contains("SystemDataCreatedAt")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ISystemTopicInternal)this).SystemDataCreatedAt = (global::System.DateTime?) content.GetValueForProperty("SystemDataCreatedAt",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ISystemTopicInternal)this).SystemDataCreatedAt, (v) => v is global::System.DateTime _v ? _v : global::System.Xml.XmlConvert.ToDateTime( v.ToString() , global::System.Xml.XmlDateTimeSerializationMode.Unspecified)); + } + if (content.Contains("IdentityType")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ISystemTopicInternal)this).IdentityType = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.IdentityType?) content.GetValueForProperty("IdentityType",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ISystemTopicInternal)this).IdentityType, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.IdentityType.CreateFrom); + } + if (content.Contains("ProvisioningState")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ISystemTopicInternal)this).ProvisioningState = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.ResourceProvisioningState?) content.GetValueForProperty("ProvisioningState",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ISystemTopicInternal)this).ProvisioningState, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.ResourceProvisioningState.CreateFrom); + } + if (content.Contains("Source")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ISystemTopicInternal)this).Source = (string) content.GetValueForProperty("Source",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ISystemTopicInternal)this).Source, global::System.Convert.ToString); + } + if (content.Contains("TopicType")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ISystemTopicInternal)this).TopicType = (string) content.GetValueForProperty("TopicType",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ISystemTopicInternal)this).TopicType, global::System.Convert.ToString); + } + if (content.Contains("MetricResourceId")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ISystemTopicInternal)this).MetricResourceId = (string) content.GetValueForProperty("MetricResourceId",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ISystemTopicInternal)this).MetricResourceId, global::System.Convert.ToString); + } + if (content.Contains("SystemDataCreatedByType")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ISystemTopicInternal)this).SystemDataCreatedByType = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.CreatedByType?) content.GetValueForProperty("SystemDataCreatedByType",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ISystemTopicInternal)this).SystemDataCreatedByType, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.CreatedByType.CreateFrom); + } + if (content.Contains("SystemDataLastModifiedBy")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ISystemTopicInternal)this).SystemDataLastModifiedBy = (string) content.GetValueForProperty("SystemDataLastModifiedBy",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ISystemTopicInternal)this).SystemDataLastModifiedBy, global::System.Convert.ToString); + } + if (content.Contains("SystemDataLastModifiedByType")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ISystemTopicInternal)this).SystemDataLastModifiedByType = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.CreatedByType?) content.GetValueForProperty("SystemDataLastModifiedByType",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ISystemTopicInternal)this).SystemDataLastModifiedByType, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.CreatedByType.CreateFrom); + } + if (content.Contains("SystemDataLastModifiedAt")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ISystemTopicInternal)this).SystemDataLastModifiedAt = (global::System.DateTime?) content.GetValueForProperty("SystemDataLastModifiedAt",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ISystemTopicInternal)this).SystemDataLastModifiedAt, (v) => v is global::System.DateTime _v ? _v : global::System.Xml.XmlConvert.ToDateTime( v.ToString() , global::System.Xml.XmlDateTimeSerializationMode.Unspecified)); + } + if (content.Contains("IdentityPrincipalId")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ISystemTopicInternal)this).IdentityPrincipalId = (string) content.GetValueForProperty("IdentityPrincipalId",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ISystemTopicInternal)this).IdentityPrincipalId, global::System.Convert.ToString); + } + if (content.Contains("IdentityTenantId")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ISystemTopicInternal)this).IdentityTenantId = (string) content.GetValueForProperty("IdentityTenantId",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ISystemTopicInternal)this).IdentityTenantId, global::System.Convert.ToString); + } + if (content.Contains("IdentityUserAssignedIdentity")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ISystemTopicInternal)this).IdentityUserAssignedIdentity = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IIdentityInfoUserAssignedIdentities) content.GetValueForProperty("IdentityUserAssignedIdentity",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ISystemTopicInternal)this).IdentityUserAssignedIdentity, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IdentityInfoUserAssignedIdentitiesTypeConverter.ConvertFrom); + } + AfterDeserializeDictionary(content); + } + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + internal SystemTopic(global::System.Management.Automation.PSObject content) + { + bool returnNow = false; + BeforeDeserializePSObject(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("Property")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ISystemTopicInternal)this).Property = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ISystemTopicProperties) content.GetValueForProperty("Property",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ISystemTopicInternal)this).Property, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.SystemTopicPropertiesTypeConverter.ConvertFrom); + } + if (content.Contains("SystemData")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ISystemTopicInternal)this).SystemData = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20.ISystemData) content.GetValueForProperty("SystemData",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ISystemTopicInternal)this).SystemData, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20.SystemDataTypeConverter.ConvertFrom); + } + if (content.Contains("Identity")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ISystemTopicInternal)this).Identity = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IIdentityInfo) content.GetValueForProperty("Identity",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ISystemTopicInternal)this).Identity, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IdentityInfoTypeConverter.ConvertFrom); + } + if (content.Contains("Id")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IResourceInternal)this).Id = (string) content.GetValueForProperty("Id",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IResourceInternal)this).Id, global::System.Convert.ToString); + } + if (content.Contains("Name")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IResourceInternal)this).Name = (string) content.GetValueForProperty("Name",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IResourceInternal)this).Name, global::System.Convert.ToString); + } + if (content.Contains("Type")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IResourceInternal)this).Type = (string) content.GetValueForProperty("Type",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IResourceInternal)this).Type, global::System.Convert.ToString); + } + if (content.Contains("Location")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITrackedResourceInternal)this).Location = (string) content.GetValueForProperty("Location",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITrackedResourceInternal)this).Location, global::System.Convert.ToString); + } + if (content.Contains("Tag")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITrackedResourceInternal)this).Tag = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITrackedResourceTags) content.GetValueForProperty("Tag",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITrackedResourceInternal)this).Tag, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.TrackedResourceTagsTypeConverter.ConvertFrom); + } + if (content.Contains("SystemDataCreatedBy")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ISystemTopicInternal)this).SystemDataCreatedBy = (string) content.GetValueForProperty("SystemDataCreatedBy",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ISystemTopicInternal)this).SystemDataCreatedBy, global::System.Convert.ToString); + } + if (content.Contains("SystemDataCreatedAt")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ISystemTopicInternal)this).SystemDataCreatedAt = (global::System.DateTime?) content.GetValueForProperty("SystemDataCreatedAt",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ISystemTopicInternal)this).SystemDataCreatedAt, (v) => v is global::System.DateTime _v ? _v : global::System.Xml.XmlConvert.ToDateTime( v.ToString() , global::System.Xml.XmlDateTimeSerializationMode.Unspecified)); + } + if (content.Contains("IdentityType")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ISystemTopicInternal)this).IdentityType = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.IdentityType?) content.GetValueForProperty("IdentityType",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ISystemTopicInternal)this).IdentityType, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.IdentityType.CreateFrom); + } + if (content.Contains("ProvisioningState")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ISystemTopicInternal)this).ProvisioningState = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.ResourceProvisioningState?) content.GetValueForProperty("ProvisioningState",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ISystemTopicInternal)this).ProvisioningState, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.ResourceProvisioningState.CreateFrom); + } + if (content.Contains("Source")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ISystemTopicInternal)this).Source = (string) content.GetValueForProperty("Source",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ISystemTopicInternal)this).Source, global::System.Convert.ToString); + } + if (content.Contains("TopicType")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ISystemTopicInternal)this).TopicType = (string) content.GetValueForProperty("TopicType",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ISystemTopicInternal)this).TopicType, global::System.Convert.ToString); + } + if (content.Contains("MetricResourceId")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ISystemTopicInternal)this).MetricResourceId = (string) content.GetValueForProperty("MetricResourceId",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ISystemTopicInternal)this).MetricResourceId, global::System.Convert.ToString); + } + if (content.Contains("SystemDataCreatedByType")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ISystemTopicInternal)this).SystemDataCreatedByType = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.CreatedByType?) content.GetValueForProperty("SystemDataCreatedByType",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ISystemTopicInternal)this).SystemDataCreatedByType, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.CreatedByType.CreateFrom); + } + if (content.Contains("SystemDataLastModifiedBy")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ISystemTopicInternal)this).SystemDataLastModifiedBy = (string) content.GetValueForProperty("SystemDataLastModifiedBy",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ISystemTopicInternal)this).SystemDataLastModifiedBy, global::System.Convert.ToString); + } + if (content.Contains("SystemDataLastModifiedByType")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ISystemTopicInternal)this).SystemDataLastModifiedByType = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.CreatedByType?) content.GetValueForProperty("SystemDataLastModifiedByType",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ISystemTopicInternal)this).SystemDataLastModifiedByType, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.CreatedByType.CreateFrom); + } + if (content.Contains("SystemDataLastModifiedAt")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ISystemTopicInternal)this).SystemDataLastModifiedAt = (global::System.DateTime?) content.GetValueForProperty("SystemDataLastModifiedAt",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ISystemTopicInternal)this).SystemDataLastModifiedAt, (v) => v is global::System.DateTime _v ? _v : global::System.Xml.XmlConvert.ToDateTime( v.ToString() , global::System.Xml.XmlDateTimeSerializationMode.Unspecified)); + } + if (content.Contains("IdentityPrincipalId")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ISystemTopicInternal)this).IdentityPrincipalId = (string) content.GetValueForProperty("IdentityPrincipalId",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ISystemTopicInternal)this).IdentityPrincipalId, global::System.Convert.ToString); + } + if (content.Contains("IdentityTenantId")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ISystemTopicInternal)this).IdentityTenantId = (string) content.GetValueForProperty("IdentityTenantId",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ISystemTopicInternal)this).IdentityTenantId, global::System.Convert.ToString); + } + if (content.Contains("IdentityUserAssignedIdentity")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ISystemTopicInternal)this).IdentityUserAssignedIdentity = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IIdentityInfoUserAssignedIdentities) content.GetValueForProperty("IdentityUserAssignedIdentity",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ISystemTopicInternal)this).IdentityUserAssignedIdentity, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IdentityInfoUserAssignedIdentitiesTypeConverter.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.EventGrid.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// EventGrid System Topic. + [System.ComponentModel.TypeConverter(typeof(SystemTopicTypeConverter))] + public partial interface ISystemTopic + + { + + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/SystemTopic.TypeConverter.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/SystemTopic.TypeConverter.cs new file mode 100644 index 000000000000..bb26d4f8fa72 --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/SystemTopic.TypeConverter.cs @@ -0,0 +1,146 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class SystemTopicTypeConverter : global::System.Management.Automation.PSTypeConverter + { + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false. + /// + public override bool CanConvertFrom(object sourceValue, global::System.Type destinationType) => CanConvertFrom(sourceValue); + + /// + /// Determines if the converter can convert the parameter to the . + /// + /// the instance to check if it can be converted to the type. + /// + /// true if the instance could be converted to a type, otherwise false + /// + public static bool CanConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return true; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + // we say yest to PSObjects + return true; + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + // we say yest to Hashtables/dictionaries + return true; + } + try + { + if (null != sourceValue.ToJsonString()) + { + return true; + } + } + catch + { + // Not one of our objects + } + try + { + string text = sourceValue.ToString()?.Trim(); + return true == text?.StartsWith("{") && true == text?.EndsWith("}") && Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonType.Object; + } + catch + { + // Doesn't look like it can be treated as JSON + } + return false; + } + + /// + /// Determines if the parameter can be converted to the parameter + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false + /// + public override bool CanConvertTo(object sourceValue, global::System.Type destinationType) => false; + + /// + /// Converts the parameter to the parameter using and + /// + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// + /// an instance of , or null if there is no suitable conversion. + /// + public override object ConvertFrom(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => ConvertFrom(sourceValue); + + /// + /// Converts the parameter to the parameter using and + /// + /// the value to convert into an instance of . + /// + /// an instance of , or null if there is no suitable conversion. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ISystemTopic ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ISystemTopic).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return SystemTopic.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return SystemTopic.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return SystemTopic.DeserializeFromDictionary(sourceValue); + } + return null; + } + + /// NotImplemented -- this will return null + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// will always return null. + public override object ConvertTo(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => null; + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/SystemTopic.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/SystemTopic.cs new file mode 100644 index 000000000000..c70b8975458d --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/SystemTopic.cs @@ -0,0 +1,346 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Extensions; + + /// EventGrid System Topic. + public partial class SystemTopic : + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ISystemTopic, + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ISystemTopicInternal, + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IValidates + { + /// + /// Backing field for Inherited model + /// + private Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITrackedResource __trackedResource = new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.TrackedResource(); + + /// Fully qualified identifier of the resource. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Inherited)] + public string Id { get => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IResourceInternal)__trackedResource).Id; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IIdentityInfo _identity; + + /// Identity information for the resource. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Owned)] + internal Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IIdentityInfo Identity { get => (this._identity = this._identity ?? new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IdentityInfo()); set => this._identity = value; } + + /// The principal ID of resource identity. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Inlined)] + public string IdentityPrincipalId { get => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IIdentityInfoInternal)Identity).PrincipalId; set => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IIdentityInfoInternal)Identity).PrincipalId = value ?? null; } + + /// The tenant ID of resource. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Inlined)] + public string IdentityTenantId { get => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IIdentityInfoInternal)Identity).TenantId; set => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IIdentityInfoInternal)Identity).TenantId = value ?? null; } + + /// + /// The type of managed identity used. The type 'SystemAssigned, UserAssigned' includes both an implicitly created identity + /// and a set of user-assigned identities. The type 'None' will remove any identity. + /// + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Inlined)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.IdentityType? IdentityType { get => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IIdentityInfoInternal)Identity).Type; set => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IIdentityInfoInternal)Identity).Type = value ?? ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.IdentityType)""); } + + /// + /// The list of user identities associated with the resource. The user identity dictionary key references will be ARM resource + /// ids in the form: + /// '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ManagedIdentity/userAssignedIdentities/{identityName}'. + /// This property is currently not used and reserved for future usage. + /// + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Inlined)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IIdentityInfoUserAssignedIdentities IdentityUserAssignedIdentity { get => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IIdentityInfoInternal)Identity).UserAssignedIdentity; set => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IIdentityInfoInternal)Identity).UserAssignedIdentity = value ?? null /* model class */; } + + /// Location of the resource. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Inherited)] + public string Location { get => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITrackedResourceInternal)__trackedResource).Location; set => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITrackedResourceInternal)__trackedResource).Location = value ; } + + /// Metric resource id for the system topic. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Inlined)] + public string MetricResourceId { get => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ISystemTopicPropertiesInternal)Property).MetricResourceId; } + + /// Internal Acessors for Id + string Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IResourceInternal.Id { get => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IResourceInternal)__trackedResource).Id; set => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IResourceInternal)__trackedResource).Id = value; } + + /// Internal Acessors for Name + string Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IResourceInternal.Name { get => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IResourceInternal)__trackedResource).Name; set => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IResourceInternal)__trackedResource).Name = value; } + + /// Internal Acessors for Type + string Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IResourceInternal.Type { get => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IResourceInternal)__trackedResource).Type; set => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IResourceInternal)__trackedResource).Type = value; } + + /// Internal Acessors for Identity + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IIdentityInfo Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ISystemTopicInternal.Identity { get => (this._identity = this._identity ?? new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IdentityInfo()); set { {_identity = value;} } } + + /// Internal Acessors for MetricResourceId + string Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ISystemTopicInternal.MetricResourceId { get => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ISystemTopicPropertiesInternal)Property).MetricResourceId; set => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ISystemTopicPropertiesInternal)Property).MetricResourceId = value; } + + /// Internal Acessors for Property + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ISystemTopicProperties Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ISystemTopicInternal.Property { get => (this._property = this._property ?? new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.SystemTopicProperties()); set { {_property = value;} } } + + /// Internal Acessors for ProvisioningState + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.ResourceProvisioningState? Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ISystemTopicInternal.ProvisioningState { get => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ISystemTopicPropertiesInternal)Property).ProvisioningState; set => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ISystemTopicPropertiesInternal)Property).ProvisioningState = value; } + + /// Internal Acessors for SystemData + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20.ISystemData Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ISystemTopicInternal.SystemData { get => (this._systemData = this._systemData ?? new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20.SystemData()); set { {_systemData = value;} } } + + /// Name of the resource. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Inherited)] + public string Name { get => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IResourceInternal)__trackedResource).Name; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ISystemTopicProperties _property; + + /// Properties of the system topic. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Owned)] + internal Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ISystemTopicProperties Property { get => (this._property = this._property ?? new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.SystemTopicProperties()); set => this._property = value; } + + /// Provisioning state of the system topic. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Inlined)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.ResourceProvisioningState? ProvisioningState { get => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ISystemTopicPropertiesInternal)Property).ProvisioningState; } + + /// Source for the system topic. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Inlined)] + public string Source { get => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ISystemTopicPropertiesInternal)Property).Source; set => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ISystemTopicPropertiesInternal)Property).Source = value ?? null; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20.ISystemData _systemData; + + /// The system metadata relating to System Topic resource. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Owned)] + internal Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20.ISystemData SystemData { get => (this._systemData = this._systemData ?? new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20.SystemData()); } + + /// The timestamp of resource creation (UTC). + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Inlined)] + public global::System.DateTime? SystemDataCreatedAt { get => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20.ISystemDataInternal)SystemData).CreatedAt; set => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20.ISystemDataInternal)SystemData).CreatedAt = value ?? default(global::System.DateTime); } + + /// The identity that created the resource. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Inlined)] + public string SystemDataCreatedBy { get => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20.ISystemDataInternal)SystemData).CreatedBy; set => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20.ISystemDataInternal)SystemData).CreatedBy = value ?? null; } + + /// The type of identity that created the resource. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Inlined)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.CreatedByType? SystemDataCreatedByType { get => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20.ISystemDataInternal)SystemData).CreatedByType; set => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20.ISystemDataInternal)SystemData).CreatedByType = value ?? ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.CreatedByType)""); } + + /// The timestamp of resource last modification (UTC) + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Inlined)] + public global::System.DateTime? SystemDataLastModifiedAt { get => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20.ISystemDataInternal)SystemData).LastModifiedAt; set => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20.ISystemDataInternal)SystemData).LastModifiedAt = value ?? default(global::System.DateTime); } + + /// The identity that last modified the resource. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Inlined)] + public string SystemDataLastModifiedBy { get => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20.ISystemDataInternal)SystemData).LastModifiedBy; set => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20.ISystemDataInternal)SystemData).LastModifiedBy = value ?? null; } + + /// The type of identity that last modified the resource. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Inlined)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.CreatedByType? SystemDataLastModifiedByType { get => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20.ISystemDataInternal)SystemData).LastModifiedByType; set => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20.ISystemDataInternal)SystemData).LastModifiedByType = value ?? ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.CreatedByType)""); } + + /// Tags of the resource. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Inherited)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITrackedResourceTags Tag { get => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITrackedResourceInternal)__trackedResource).Tag; set => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITrackedResourceInternal)__trackedResource).Tag = value ?? null /* model class */; } + + /// TopicType for the system topic. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Inlined)] + public string TopicType { get => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ISystemTopicPropertiesInternal)Property).TopicType; set => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ISystemTopicPropertiesInternal)Property).TopicType = value ?? null; } + + /// Type of the resource. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Inherited)] + public string Type { get => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IResourceInternal)__trackedResource).Type; } + + /// Creates an new instance. + public SystemTopic() + { + + } + + /// Validates that this object meets the validation criteria. + /// an instance that will receive validation + /// events. + /// + /// A that will be complete when validation is completed. + /// + public async global::System.Threading.Tasks.Task Validate(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener eventListener) + { + await eventListener.AssertNotNull(nameof(__trackedResource), __trackedResource); + await eventListener.AssertObjectIsValid(nameof(__trackedResource), __trackedResource); + } + } + /// EventGrid System Topic. + public partial interface ISystemTopic : + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IJsonSerializable, + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITrackedResource + { + /// The principal ID of resource identity. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The principal ID of resource identity.", + SerializedName = @"principalId", + PossibleTypes = new [] { typeof(string) })] + string IdentityPrincipalId { get; set; } + /// The tenant ID of resource. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The tenant ID of resource.", + SerializedName = @"tenantId", + PossibleTypes = new [] { typeof(string) })] + string IdentityTenantId { get; set; } + /// + /// The type of managed identity used. The type 'SystemAssigned, UserAssigned' includes both an implicitly created identity + /// and a set of user-assigned identities. The type 'None' will remove any identity. + /// + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The type of managed identity used. The type 'SystemAssigned, UserAssigned' includes both an implicitly created identity and a set of user-assigned identities. The type 'None' will remove any identity.", + SerializedName = @"type", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.IdentityType) })] + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.IdentityType? IdentityType { get; set; } + /// + /// The list of user identities associated with the resource. The user identity dictionary key references will be ARM resource + /// ids in the form: + /// '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ManagedIdentity/userAssignedIdentities/{identityName}'. + /// This property is currently not used and reserved for future usage. + /// + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The list of user identities associated with the resource. The user identity dictionary key references will be ARM resource ids in the form: + '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ManagedIdentity/userAssignedIdentities/{identityName}'. + This property is currently not used and reserved for future usage.", + SerializedName = @"userAssignedIdentities", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IIdentityInfoUserAssignedIdentities) })] + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IIdentityInfoUserAssignedIdentities IdentityUserAssignedIdentity { get; set; } + /// Metric resource id for the system topic. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"Metric resource id for the system topic.", + SerializedName = @"metricResourceId", + PossibleTypes = new [] { typeof(string) })] + string MetricResourceId { get; } + /// Provisioning state of the system topic. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"Provisioning state of the system topic.", + SerializedName = @"provisioningState", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.ResourceProvisioningState) })] + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.ResourceProvisioningState? ProvisioningState { get; } + /// Source for the system topic. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Source for the system topic.", + SerializedName = @"source", + PossibleTypes = new [] { typeof(string) })] + string Source { get; set; } + /// The timestamp of resource creation (UTC). + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.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.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The type of identity that created the resource.", + SerializedName = @"createdByType", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.CreatedByType) })] + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.CreatedByType? SystemDataCreatedByType { get; set; } + /// The timestamp of resource last modification (UTC) + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.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.EventGrid.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.EventGrid.Support.CreatedByType) })] + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.CreatedByType? SystemDataLastModifiedByType { get; set; } + /// TopicType for the system topic. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"TopicType for the system topic.", + SerializedName = @"topicType", + PossibleTypes = new [] { typeof(string) })] + string TopicType { get; set; } + + } + /// EventGrid System Topic. + internal partial interface ISystemTopicInternal : + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITrackedResourceInternal + { + /// Identity information for the resource. + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IIdentityInfo Identity { get; set; } + /// The principal ID of resource identity. + string IdentityPrincipalId { get; set; } + /// The tenant ID of resource. + string IdentityTenantId { get; set; } + /// + /// The type of managed identity used. The type 'SystemAssigned, UserAssigned' includes both an implicitly created identity + /// and a set of user-assigned identities. The type 'None' will remove any identity. + /// + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.IdentityType? IdentityType { get; set; } + /// + /// The list of user identities associated with the resource. The user identity dictionary key references will be ARM resource + /// ids in the form: + /// '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ManagedIdentity/userAssignedIdentities/{identityName}'. + /// This property is currently not used and reserved for future usage. + /// + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IIdentityInfoUserAssignedIdentities IdentityUserAssignedIdentity { get; set; } + /// Metric resource id for the system topic. + string MetricResourceId { get; set; } + /// Properties of the system topic. + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ISystemTopicProperties Property { get; set; } + /// Provisioning state of the system topic. + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.ResourceProvisioningState? ProvisioningState { get; set; } + /// Source for the system topic. + string Source { get; set; } + /// The system metadata relating to System Topic resource. + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.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.EventGrid.Support.CreatedByType? SystemDataLastModifiedByType { get; set; } + /// TopicType for the system topic. + string TopicType { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/SystemTopic.json.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/SystemTopic.json.cs new file mode 100644 index 000000000000..2baeab8b77d2 --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/SystemTopic.json.cs @@ -0,0 +1,115 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Extensions; + + /// EventGrid System Topic. + public partial class SystemTopic + { + + /// + /// AfterFromJson will be called after the json deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JsonNode that should be deserialized into this object. + + partial void AfterFromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json erialization has finished, allowing customization of the before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JSON container that the serialization result will be placed in. + + partial void AfterToJson(ref Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject container); + + /// + /// BeforeFromJson will be called before the json deserialization has commenced, allowing complete customization of + /// the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JsonNode that should be deserialized into this object. + /// Determines if the rest of the deserialization should be processed, or if the method should return + /// instantly. + + partial void BeforeFromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject json, ref bool returnNow); + + /// + /// BeforeToJson will be called before the json serialization has commenced, allowing complete customization of the + /// object before it is serialized. + /// If you wish to disable the default serialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JSON container that the serialization result will be placed in. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeToJson(ref Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ISystemTopic. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ISystemTopic. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ISystemTopic FromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject json ? new SystemTopic(json) : null; + } + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject instance to deserialize from. + internal SystemTopic(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject json) + { + bool returnNow = false; + BeforeFromJson(json, ref returnNow); + if (returnNow) + { + return; + } + __trackedResource = new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.TrackedResource(json); + {_property = If( json?.PropertyT("properties"), out var __jsonProperties) ? Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.SystemTopicProperties.FromJson(__jsonProperties) : Property;} + {_systemData = If( json?.PropertyT("systemData"), out var __jsonSystemData) ? Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20.SystemData.FromJson(__jsonSystemData) : SystemData;} + {_identity = If( json?.PropertyT("identity"), out var __jsonIdentity) ? Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IdentityInfo.FromJson(__jsonIdentity) : Identity;} + AfterFromJson(json); + } + + /// + /// Serializes this instance of into a . + /// + /// The container to serialize this object into. If the caller + /// passes in null, a new instance will be created and returned to the caller. + /// Allows the caller to choose the depth of the serialization. See . + /// + /// a serialized instance of as a . + /// + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject(); + + bool returnNow = false; + BeforeToJson(ref container, ref returnNow); + if (returnNow) + { + return container; + } + __trackedResource?.ToJson(container, serializationMode); + AddIf( null != this._property ? (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode) this._property.ToJson(null,serializationMode) : null, "properties" ,container.Add ); + if (serializationMode.HasFlag(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SerializationMode.IncludeReadOnly)) + { + AddIf( null != this._systemData ? (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode) this._systemData.ToJson(null,serializationMode) : null, "systemData" ,container.Add ); + } + AddIf( null != this._identity ? (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode) this._identity.ToJson(null,serializationMode) : null, "identity" ,container.Add ); + AfterToJson(ref container); + return container; + } + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/SystemTopicProperties.PowerShell.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/SystemTopicProperties.PowerShell.cs new file mode 100644 index 000000000000..30ae6525daaf --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/SystemTopicProperties.PowerShell.cs @@ -0,0 +1,168 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell; + + /// Properties of the System Topic. + [System.ComponentModel.TypeConverter(typeof(SystemTopicPropertiesTypeConverter))] + public partial class SystemTopicProperties + { + + /// + /// AfterDeserializeDictionary will be called after the deserialization has finished, allowing customization of the + /// object before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Collections.IDictionary content that should be used. + + partial void AfterDeserializeDictionary(global::System.Collections.IDictionary content); + + /// + /// AfterDeserializePSObject will be called after the deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Management.Automation.PSObject content that should be used. + + partial void AfterDeserializePSObject(global::System.Management.Automation.PSObject content); + + /// + /// BeforeDeserializeDictionary will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Collections.IDictionary content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializeDictionary(global::System.Collections.IDictionary content, ref bool returnNow); + + /// + /// BeforeDeserializePSObject will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializePSObject(global::System.Management.Automation.PSObject content, ref bool returnNow); + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ISystemTopicProperties DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new SystemTopicProperties(content); + } + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ISystemTopicProperties DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new SystemTopicProperties(content); + } + + /// + /// Creates a new instance of , deserializing the content from a json string. + /// + /// a string containing a JSON serialized instance of this model. + /// an instance of the model class. + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ISystemTopicProperties FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode.Parse(jsonText)); + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + internal SystemTopicProperties(global::System.Collections.IDictionary content) + { + bool returnNow = false; + BeforeDeserializeDictionary(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("ProvisioningState")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ISystemTopicPropertiesInternal)this).ProvisioningState = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.ResourceProvisioningState?) content.GetValueForProperty("ProvisioningState",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ISystemTopicPropertiesInternal)this).ProvisioningState, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.ResourceProvisioningState.CreateFrom); + } + if (content.Contains("Source")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ISystemTopicPropertiesInternal)this).Source = (string) content.GetValueForProperty("Source",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ISystemTopicPropertiesInternal)this).Source, global::System.Convert.ToString); + } + if (content.Contains("TopicType")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ISystemTopicPropertiesInternal)this).TopicType = (string) content.GetValueForProperty("TopicType",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ISystemTopicPropertiesInternal)this).TopicType, global::System.Convert.ToString); + } + if (content.Contains("MetricResourceId")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ISystemTopicPropertiesInternal)this).MetricResourceId = (string) content.GetValueForProperty("MetricResourceId",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ISystemTopicPropertiesInternal)this).MetricResourceId, global::System.Convert.ToString); + } + AfterDeserializeDictionary(content); + } + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + internal SystemTopicProperties(global::System.Management.Automation.PSObject content) + { + bool returnNow = false; + BeforeDeserializePSObject(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("ProvisioningState")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ISystemTopicPropertiesInternal)this).ProvisioningState = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.ResourceProvisioningState?) content.GetValueForProperty("ProvisioningState",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ISystemTopicPropertiesInternal)this).ProvisioningState, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.ResourceProvisioningState.CreateFrom); + } + if (content.Contains("Source")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ISystemTopicPropertiesInternal)this).Source = (string) content.GetValueForProperty("Source",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ISystemTopicPropertiesInternal)this).Source, global::System.Convert.ToString); + } + if (content.Contains("TopicType")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ISystemTopicPropertiesInternal)this).TopicType = (string) content.GetValueForProperty("TopicType",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ISystemTopicPropertiesInternal)this).TopicType, global::System.Convert.ToString); + } + if (content.Contains("MetricResourceId")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ISystemTopicPropertiesInternal)this).MetricResourceId = (string) content.GetValueForProperty("MetricResourceId",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ISystemTopicPropertiesInternal)this).MetricResourceId, 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.EventGrid.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// Properties of the System Topic. + [System.ComponentModel.TypeConverter(typeof(SystemTopicPropertiesTypeConverter))] + public partial interface ISystemTopicProperties + + { + + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/SystemTopicProperties.TypeConverter.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/SystemTopicProperties.TypeConverter.cs new file mode 100644 index 000000000000..3c400b03ec1b --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/SystemTopicProperties.TypeConverter.cs @@ -0,0 +1,147 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class SystemTopicPropertiesTypeConverter : global::System.Management.Automation.PSTypeConverter + { + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false. + /// + public override bool CanConvertFrom(object sourceValue, global::System.Type destinationType) => CanConvertFrom(sourceValue); + + /// + /// Determines if the converter can convert the parameter to the . + /// + /// the instance to check if it can be converted to the type. + /// + /// true if the instance could be converted to a type, otherwise false + /// + public static bool CanConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return true; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + // we say yest to PSObjects + return true; + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + // we say yest to Hashtables/dictionaries + return true; + } + try + { + if (null != sourceValue.ToJsonString()) + { + return true; + } + } + catch + { + // Not one of our objects + } + try + { + string text = sourceValue.ToString()?.Trim(); + return true == text?.StartsWith("{") && true == text?.EndsWith("}") && Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonType.Object; + } + catch + { + // Doesn't look like it can be treated as JSON + } + return false; + } + + /// + /// Determines if the parameter can be converted to the parameter + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false + /// + public override bool CanConvertTo(object sourceValue, global::System.Type destinationType) => false; + + /// + /// Converts the parameter to the parameter using and + /// + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// + /// an instance of , or null if there is no suitable conversion. + /// + public override object ConvertFrom(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => ConvertFrom(sourceValue); + + /// + /// Converts the parameter to the parameter using and + /// + /// the value to convert into an instance of . + /// + /// an instance of , or null if there is no suitable conversion. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ISystemTopicProperties ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ISystemTopicProperties).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return SystemTopicProperties.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return SystemTopicProperties.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return SystemTopicProperties.DeserializeFromDictionary(sourceValue); + } + return null; + } + + /// NotImplemented -- this will return null + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// will always return null. + public override object ConvertTo(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => null; + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/SystemTopicProperties.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/SystemTopicProperties.cs new file mode 100644 index 000000000000..47d76e07ba8a --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/SystemTopicProperties.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.EventGrid.Models.Api20211015Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Extensions; + + /// Properties of the System Topic. + public partial class SystemTopicProperties : + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ISystemTopicProperties, + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ISystemTopicPropertiesInternal + { + + /// Backing field for property. + private string _metricResourceId; + + /// Metric resource id for the system topic. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Owned)] + public string MetricResourceId { get => this._metricResourceId; } + + /// Internal Acessors for MetricResourceId + string Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ISystemTopicPropertiesInternal.MetricResourceId { get => this._metricResourceId; set { {_metricResourceId = value;} } } + + /// Internal Acessors for ProvisioningState + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.ResourceProvisioningState? Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ISystemTopicPropertiesInternal.ProvisioningState { get => this._provisioningState; set { {_provisioningState = value;} } } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.ResourceProvisioningState? _provisioningState; + + /// Provisioning state of the system topic. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Owned)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.ResourceProvisioningState? ProvisioningState { get => this._provisioningState; } + + /// Backing field for property. + private string _source; + + /// Source for the system topic. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Owned)] + public string Source { get => this._source; set => this._source = value; } + + /// Backing field for property. + private string _topicType; + + /// TopicType for the system topic. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Owned)] + public string TopicType { get => this._topicType; set => this._topicType = value; } + + /// Creates an new instance. + public SystemTopicProperties() + { + + } + } + /// Properties of the System Topic. + public partial interface ISystemTopicProperties : + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IJsonSerializable + { + /// Metric resource id for the system topic. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"Metric resource id for the system topic.", + SerializedName = @"metricResourceId", + PossibleTypes = new [] { typeof(string) })] + string MetricResourceId { get; } + /// Provisioning state of the system topic. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"Provisioning state of the system topic.", + SerializedName = @"provisioningState", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.ResourceProvisioningState) })] + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.ResourceProvisioningState? ProvisioningState { get; } + /// Source for the system topic. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Source for the system topic.", + SerializedName = @"source", + PossibleTypes = new [] { typeof(string) })] + string Source { get; set; } + /// TopicType for the system topic. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"TopicType for the system topic.", + SerializedName = @"topicType", + PossibleTypes = new [] { typeof(string) })] + string TopicType { get; set; } + + } + /// Properties of the System Topic. + internal partial interface ISystemTopicPropertiesInternal + + { + /// Metric resource id for the system topic. + string MetricResourceId { get; set; } + /// Provisioning state of the system topic. + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.ResourceProvisioningState? ProvisioningState { get; set; } + /// Source for the system topic. + string Source { get; set; } + /// TopicType for the system topic. + string TopicType { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/SystemTopicProperties.json.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/SystemTopicProperties.json.cs new file mode 100644 index 000000000000..a765a28572bf --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/SystemTopicProperties.json.cs @@ -0,0 +1,118 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Extensions; + + /// Properties of the System Topic. + public partial class SystemTopicProperties + { + + /// + /// AfterFromJson will be called after the json deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JsonNode that should be deserialized into this object. + + partial void AfterFromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json erialization has finished, allowing customization of the before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JSON container that the serialization result will be placed in. + + partial void AfterToJson(ref Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject container); + + /// + /// BeforeFromJson will be called before the json deserialization has commenced, allowing complete customization of + /// the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JsonNode that should be deserialized into this object. + /// Determines if the rest of the deserialization should be processed, or if the method should return + /// instantly. + + partial void BeforeFromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject json, ref bool returnNow); + + /// + /// BeforeToJson will be called before the json serialization has commenced, allowing complete customization of the + /// object before it is serialized. + /// If you wish to disable the default serialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JSON container that the serialization result will be placed in. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeToJson(ref Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ISystemTopicProperties. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ISystemTopicProperties. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ISystemTopicProperties FromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject json ? new SystemTopicProperties(json) : null; + } + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject instance to deserialize from. + internal SystemTopicProperties(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject json) + { + bool returnNow = false; + BeforeFromJson(json, ref returnNow); + if (returnNow) + { + return; + } + {_provisioningState = If( json?.PropertyT("provisioningState"), out var __jsonProvisioningState) ? (string)__jsonProvisioningState : (string)ProvisioningState;} + {_source = If( json?.PropertyT("source"), out var __jsonSource) ? (string)__jsonSource : (string)Source;} + {_topicType = If( json?.PropertyT("topicType"), out var __jsonTopicType) ? (string)__jsonTopicType : (string)TopicType;} + {_metricResourceId = If( json?.PropertyT("metricResourceId"), out var __jsonMetricResourceId) ? (string)__jsonMetricResourceId : (string)MetricResourceId;} + AfterFromJson(json); + } + + /// + /// Serializes this instance of into a . + /// + /// The container to serialize this object into. If the caller + /// passes in null, a new instance will be created and returned to the caller. + /// Allows the caller to choose the depth of the serialization. See . + /// + /// a serialized instance of as a . + /// + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject(); + + bool returnNow = false; + BeforeToJson(ref container, ref returnNow); + if (returnNow) + { + return container; + } + if (serializationMode.HasFlag(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SerializationMode.IncludeReadOnly)) + { + AddIf( null != (((object)this._provisioningState)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonString(this._provisioningState.ToString()) : null, "provisioningState" ,container.Add ); + } + AddIf( null != (((object)this._source)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonString(this._source.ToString()) : null, "source" ,container.Add ); + AddIf( null != (((object)this._topicType)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonString(this._topicType.ToString()) : null, "topicType" ,container.Add ); + if (serializationMode.HasFlag(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SerializationMode.IncludeReadOnly)) + { + AddIf( null != (((object)this._metricResourceId)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonString(this._metricResourceId.ToString()) : null, "metricResourceId" ,container.Add ); + } + AfterToJson(ref container); + return container; + } + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/SystemTopicUpdateParameters.PowerShell.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/SystemTopicUpdateParameters.PowerShell.cs new file mode 100644 index 000000000000..022e65308863 --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/SystemTopicUpdateParameters.PowerShell.cs @@ -0,0 +1,184 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell; + + /// Properties of the System Topic update. + [System.ComponentModel.TypeConverter(typeof(SystemTopicUpdateParametersTypeConverter))] + public partial class SystemTopicUpdateParameters + { + + /// + /// AfterDeserializeDictionary will be called after the deserialization has finished, allowing customization of the + /// object before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Collections.IDictionary content that should be used. + + partial void AfterDeserializeDictionary(global::System.Collections.IDictionary content); + + /// + /// AfterDeserializePSObject will be called after the deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Management.Automation.PSObject content that should be used. + + partial void AfterDeserializePSObject(global::System.Management.Automation.PSObject content); + + /// + /// BeforeDeserializeDictionary will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Collections.IDictionary content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializeDictionary(global::System.Collections.IDictionary content, ref bool returnNow); + + /// + /// BeforeDeserializePSObject will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializePSObject(global::System.Management.Automation.PSObject content, ref bool returnNow); + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ISystemTopicUpdateParameters DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new SystemTopicUpdateParameters(content); + } + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ISystemTopicUpdateParameters DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new SystemTopicUpdateParameters(content); + } + + /// + /// Creates a new instance of , deserializing the content from a json string. + /// + /// a string containing a JSON serialized instance of this model. + /// an instance of the model class. + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ISystemTopicUpdateParameters FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode.Parse(jsonText)); + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + internal SystemTopicUpdateParameters(global::System.Collections.IDictionary content) + { + bool returnNow = false; + BeforeDeserializeDictionary(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("Identity")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ISystemTopicUpdateParametersInternal)this).Identity = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IIdentityInfo) content.GetValueForProperty("Identity",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ISystemTopicUpdateParametersInternal)this).Identity, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IdentityInfoTypeConverter.ConvertFrom); + } + if (content.Contains("Tag")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ISystemTopicUpdateParametersInternal)this).Tag = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ISystemTopicUpdateParametersTags) content.GetValueForProperty("Tag",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ISystemTopicUpdateParametersInternal)this).Tag, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.SystemTopicUpdateParametersTagsTypeConverter.ConvertFrom); + } + if (content.Contains("IdentityType")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ISystemTopicUpdateParametersInternal)this).IdentityType = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.IdentityType?) content.GetValueForProperty("IdentityType",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ISystemTopicUpdateParametersInternal)this).IdentityType, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.IdentityType.CreateFrom); + } + if (content.Contains("IdentityPrincipalId")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ISystemTopicUpdateParametersInternal)this).IdentityPrincipalId = (string) content.GetValueForProperty("IdentityPrincipalId",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ISystemTopicUpdateParametersInternal)this).IdentityPrincipalId, global::System.Convert.ToString); + } + if (content.Contains("IdentityTenantId")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ISystemTopicUpdateParametersInternal)this).IdentityTenantId = (string) content.GetValueForProperty("IdentityTenantId",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ISystemTopicUpdateParametersInternal)this).IdentityTenantId, global::System.Convert.ToString); + } + if (content.Contains("IdentityUserAssignedIdentity")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ISystemTopicUpdateParametersInternal)this).IdentityUserAssignedIdentity = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IIdentityInfoUserAssignedIdentities) content.GetValueForProperty("IdentityUserAssignedIdentity",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ISystemTopicUpdateParametersInternal)this).IdentityUserAssignedIdentity, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IdentityInfoUserAssignedIdentitiesTypeConverter.ConvertFrom); + } + AfterDeserializeDictionary(content); + } + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + internal SystemTopicUpdateParameters(global::System.Management.Automation.PSObject content) + { + bool returnNow = false; + BeforeDeserializePSObject(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("Identity")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ISystemTopicUpdateParametersInternal)this).Identity = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IIdentityInfo) content.GetValueForProperty("Identity",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ISystemTopicUpdateParametersInternal)this).Identity, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IdentityInfoTypeConverter.ConvertFrom); + } + if (content.Contains("Tag")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ISystemTopicUpdateParametersInternal)this).Tag = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ISystemTopicUpdateParametersTags) content.GetValueForProperty("Tag",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ISystemTopicUpdateParametersInternal)this).Tag, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.SystemTopicUpdateParametersTagsTypeConverter.ConvertFrom); + } + if (content.Contains("IdentityType")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ISystemTopicUpdateParametersInternal)this).IdentityType = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.IdentityType?) content.GetValueForProperty("IdentityType",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ISystemTopicUpdateParametersInternal)this).IdentityType, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.IdentityType.CreateFrom); + } + if (content.Contains("IdentityPrincipalId")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ISystemTopicUpdateParametersInternal)this).IdentityPrincipalId = (string) content.GetValueForProperty("IdentityPrincipalId",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ISystemTopicUpdateParametersInternal)this).IdentityPrincipalId, global::System.Convert.ToString); + } + if (content.Contains("IdentityTenantId")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ISystemTopicUpdateParametersInternal)this).IdentityTenantId = (string) content.GetValueForProperty("IdentityTenantId",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ISystemTopicUpdateParametersInternal)this).IdentityTenantId, global::System.Convert.ToString); + } + if (content.Contains("IdentityUserAssignedIdentity")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ISystemTopicUpdateParametersInternal)this).IdentityUserAssignedIdentity = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IIdentityInfoUserAssignedIdentities) content.GetValueForProperty("IdentityUserAssignedIdentity",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ISystemTopicUpdateParametersInternal)this).IdentityUserAssignedIdentity, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IdentityInfoUserAssignedIdentitiesTypeConverter.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.EventGrid.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// Properties of the System Topic update. + [System.ComponentModel.TypeConverter(typeof(SystemTopicUpdateParametersTypeConverter))] + public partial interface ISystemTopicUpdateParameters + + { + + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/SystemTopicUpdateParameters.TypeConverter.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/SystemTopicUpdateParameters.TypeConverter.cs new file mode 100644 index 000000000000..ee04f04c1080 --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/SystemTopicUpdateParameters.TypeConverter.cs @@ -0,0 +1,147 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class SystemTopicUpdateParametersTypeConverter : global::System.Management.Automation.PSTypeConverter + { + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false. + /// + public override bool CanConvertFrom(object sourceValue, global::System.Type destinationType) => CanConvertFrom(sourceValue); + + /// + /// Determines if the converter can convert the parameter to the . + /// + /// the instance to check if it can be converted to the type. + /// + /// true if the instance could be converted to a type, otherwise false + /// + public static bool CanConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return true; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + // we say yest to PSObjects + return true; + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + // we say yest to Hashtables/dictionaries + return true; + } + try + { + if (null != sourceValue.ToJsonString()) + { + return true; + } + } + catch + { + // Not one of our objects + } + try + { + string text = sourceValue.ToString()?.Trim(); + return true == text?.StartsWith("{") && true == text?.EndsWith("}") && Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonType.Object; + } + catch + { + // Doesn't look like it can be treated as JSON + } + return false; + } + + /// + /// Determines if the parameter can be converted to the parameter + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false + /// + public override bool CanConvertTo(object sourceValue, global::System.Type destinationType) => false; + + /// + /// Converts the parameter to the parameter using and + /// + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// + /// an instance of , or null if there is no suitable conversion. + /// + public override object ConvertFrom(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => ConvertFrom(sourceValue); + + /// + /// Converts the parameter to the parameter using and + /// + /// the value to convert into an instance of . + /// + /// an instance of , or null if there is no suitable conversion. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ISystemTopicUpdateParameters ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ISystemTopicUpdateParameters).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return SystemTopicUpdateParameters.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return SystemTopicUpdateParameters.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return SystemTopicUpdateParameters.DeserializeFromDictionary(sourceValue); + } + return null; + } + + /// NotImplemented -- this will return null + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// will always return null. + public override object ConvertTo(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => null; + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/SystemTopicUpdateParameters.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/SystemTopicUpdateParameters.cs new file mode 100644 index 000000000000..529f32459b26 --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/SystemTopicUpdateParameters.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.EventGrid.Models.Api20211015Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Extensions; + + /// Properties of the System Topic update. + public partial class SystemTopicUpdateParameters : + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ISystemTopicUpdateParameters, + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ISystemTopicUpdateParametersInternal + { + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IIdentityInfo _identity; + + /// Resource identity information. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Owned)] + internal Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IIdentityInfo Identity { get => (this._identity = this._identity ?? new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IdentityInfo()); set => this._identity = value; } + + /// The principal ID of resource identity. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Inlined)] + public string IdentityPrincipalId { get => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IIdentityInfoInternal)Identity).PrincipalId; set => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IIdentityInfoInternal)Identity).PrincipalId = value ?? null; } + + /// The tenant ID of resource. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Inlined)] + public string IdentityTenantId { get => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IIdentityInfoInternal)Identity).TenantId; set => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IIdentityInfoInternal)Identity).TenantId = value ?? null; } + + /// + /// The type of managed identity used. The type 'SystemAssigned, UserAssigned' includes both an implicitly created identity + /// and a set of user-assigned identities. The type 'None' will remove any identity. + /// + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Inlined)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.IdentityType? IdentityType { get => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IIdentityInfoInternal)Identity).Type; set => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IIdentityInfoInternal)Identity).Type = value ?? ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.IdentityType)""); } + + /// + /// The list of user identities associated with the resource. The user identity dictionary key references will be ARM resource + /// ids in the form: + /// '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ManagedIdentity/userAssignedIdentities/{identityName}'. + /// This property is currently not used and reserved for future usage. + /// + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Inlined)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IIdentityInfoUserAssignedIdentities IdentityUserAssignedIdentity { get => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IIdentityInfoInternal)Identity).UserAssignedIdentity; set => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IIdentityInfoInternal)Identity).UserAssignedIdentity = value ?? null /* model class */; } + + /// Internal Acessors for Identity + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IIdentityInfo Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ISystemTopicUpdateParametersInternal.Identity { get => (this._identity = this._identity ?? new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IdentityInfo()); set { {_identity = value;} } } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ISystemTopicUpdateParametersTags _tag; + + /// Tags of the system topic. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Owned)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ISystemTopicUpdateParametersTags Tag { get => (this._tag = this._tag ?? new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.SystemTopicUpdateParametersTags()); set => this._tag = value; } + + /// Creates an new instance. + public SystemTopicUpdateParameters() + { + + } + } + /// Properties of the System Topic update. + public partial interface ISystemTopicUpdateParameters : + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IJsonSerializable + { + /// The principal ID of resource identity. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The principal ID of resource identity.", + SerializedName = @"principalId", + PossibleTypes = new [] { typeof(string) })] + string IdentityPrincipalId { get; set; } + /// The tenant ID of resource. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The tenant ID of resource.", + SerializedName = @"tenantId", + PossibleTypes = new [] { typeof(string) })] + string IdentityTenantId { get; set; } + /// + /// The type of managed identity used. The type 'SystemAssigned, UserAssigned' includes both an implicitly created identity + /// and a set of user-assigned identities. The type 'None' will remove any identity. + /// + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The type of managed identity used. The type 'SystemAssigned, UserAssigned' includes both an implicitly created identity and a set of user-assigned identities. The type 'None' will remove any identity.", + SerializedName = @"type", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.IdentityType) })] + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.IdentityType? IdentityType { get; set; } + /// + /// The list of user identities associated with the resource. The user identity dictionary key references will be ARM resource + /// ids in the form: + /// '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ManagedIdentity/userAssignedIdentities/{identityName}'. + /// This property is currently not used and reserved for future usage. + /// + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The list of user identities associated with the resource. The user identity dictionary key references will be ARM resource ids in the form: + '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ManagedIdentity/userAssignedIdentities/{identityName}'. + This property is currently not used and reserved for future usage.", + SerializedName = @"userAssignedIdentities", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IIdentityInfoUserAssignedIdentities) })] + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IIdentityInfoUserAssignedIdentities IdentityUserAssignedIdentity { get; set; } + /// Tags of the system topic. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Tags of the system topic.", + SerializedName = @"tags", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ISystemTopicUpdateParametersTags) })] + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ISystemTopicUpdateParametersTags Tag { get; set; } + + } + /// Properties of the System Topic update. + internal partial interface ISystemTopicUpdateParametersInternal + + { + /// Resource identity information. + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IIdentityInfo Identity { get; set; } + /// The principal ID of resource identity. + string IdentityPrincipalId { get; set; } + /// The tenant ID of resource. + string IdentityTenantId { get; set; } + /// + /// The type of managed identity used. The type 'SystemAssigned, UserAssigned' includes both an implicitly created identity + /// and a set of user-assigned identities. The type 'None' will remove any identity. + /// + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.IdentityType? IdentityType { get; set; } + /// + /// The list of user identities associated with the resource. The user identity dictionary key references will be ARM resource + /// ids in the form: + /// '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ManagedIdentity/userAssignedIdentities/{identityName}'. + /// This property is currently not used and reserved for future usage. + /// + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IIdentityInfoUserAssignedIdentities IdentityUserAssignedIdentity { get; set; } + /// Tags of the system topic. + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ISystemTopicUpdateParametersTags Tag { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/SystemTopicUpdateParameters.json.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/SystemTopicUpdateParameters.json.cs new file mode 100644 index 000000000000..9f72c4ee5a16 --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/SystemTopicUpdateParameters.json.cs @@ -0,0 +1,108 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Extensions; + + /// Properties of the System Topic update. + public partial class SystemTopicUpdateParameters + { + + /// + /// AfterFromJson will be called after the json deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JsonNode that should be deserialized into this object. + + partial void AfterFromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json erialization has finished, allowing customization of the before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JSON container that the serialization result will be placed in. + + partial void AfterToJson(ref Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject container); + + /// + /// BeforeFromJson will be called before the json deserialization has commenced, allowing complete customization of + /// the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JsonNode that should be deserialized into this object. + /// Determines if the rest of the deserialization should be processed, or if the method should return + /// instantly. + + partial void BeforeFromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject json, ref bool returnNow); + + /// + /// BeforeToJson will be called before the json serialization has commenced, allowing complete customization of the + /// object before it is serialized. + /// If you wish to disable the default serialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JSON container that the serialization result will be placed in. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeToJson(ref Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ISystemTopicUpdateParameters. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ISystemTopicUpdateParameters. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ISystemTopicUpdateParameters FromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject json ? new SystemTopicUpdateParameters(json) : null; + } + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject instance to deserialize from. + internal SystemTopicUpdateParameters(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Models.Api20211015Preview.IdentityInfo.FromJson(__jsonIdentity) : Identity;} + {_tag = If( json?.PropertyT("tags"), out var __jsonTags) ? Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.SystemTopicUpdateParametersTags.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.EventGrid.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject(); + + bool returnNow = false; + BeforeToJson(ref container, ref returnNow); + if (returnNow) + { + return container; + } + AddIf( null != this._identity ? (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode) this._identity.ToJson(null,serializationMode) : null, "identity" ,container.Add ); + AddIf( null != this._tag ? (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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/eventgrid/generated/api/Models/Api20211015Preview/SystemTopicUpdateParametersTags.PowerShell.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/SystemTopicUpdateParametersTags.PowerShell.cs new file mode 100644 index 000000000000..6fc9e796b761 --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/SystemTopicUpdateParametersTags.PowerShell.cs @@ -0,0 +1,140 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell; + + /// Tags of the system topic. + [System.ComponentModel.TypeConverter(typeof(SystemTopicUpdateParametersTagsTypeConverter))] + public partial class SystemTopicUpdateParametersTags + { + + /// + /// AfterDeserializeDictionary will be called after the deserialization has finished, allowing customization of the + /// object before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Collections.IDictionary content that should be used. + + partial void AfterDeserializeDictionary(global::System.Collections.IDictionary content); + + /// + /// AfterDeserializePSObject will be called after the deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Management.Automation.PSObject content that should be used. + + partial void AfterDeserializePSObject(global::System.Management.Automation.PSObject content); + + /// + /// BeforeDeserializeDictionary will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Collections.IDictionary content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializeDictionary(global::System.Collections.IDictionary content, ref bool returnNow); + + /// + /// BeforeDeserializePSObject will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializePSObject(global::System.Management.Automation.PSObject content, ref bool returnNow); + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ISystemTopicUpdateParametersTags DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new SystemTopicUpdateParametersTags(content); + } + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ISystemTopicUpdateParametersTags DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new SystemTopicUpdateParametersTags(content); + } + + /// + /// Creates a new instance of , deserializing the content from a json string. + /// + /// a string containing a JSON serialized instance of this model. + /// an instance of the model class. + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ISystemTopicUpdateParametersTags FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode.Parse(jsonText)); + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + internal SystemTopicUpdateParametersTags(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 SystemTopicUpdateParametersTags(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.EventGrid.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// Tags of the system topic. + [System.ComponentModel.TypeConverter(typeof(SystemTopicUpdateParametersTagsTypeConverter))] + public partial interface ISystemTopicUpdateParametersTags + + { + + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/SystemTopicUpdateParametersTags.TypeConverter.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/SystemTopicUpdateParametersTags.TypeConverter.cs new file mode 100644 index 000000000000..9ce6835bdcd3 --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/SystemTopicUpdateParametersTags.TypeConverter.cs @@ -0,0 +1,147 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class SystemTopicUpdateParametersTagsTypeConverter : global::System.Management.Automation.PSTypeConverter + { + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false. + /// + public override bool CanConvertFrom(object sourceValue, global::System.Type destinationType) => CanConvertFrom(sourceValue); + + /// + /// Determines if the converter can convert the parameter to the . + /// + /// the instance to check if it can be converted to the type. + /// + /// true if the instance could be converted to a type, otherwise false + /// + public static bool CanConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return true; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + // we say yest to PSObjects + return true; + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + // we say yest to Hashtables/dictionaries + return true; + } + try + { + if (null != sourceValue.ToJsonString()) + { + return true; + } + } + catch + { + // Not one of our objects + } + try + { + string text = sourceValue.ToString()?.Trim(); + return true == text?.StartsWith("{") && true == text?.EndsWith("}") && Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonType.Object; + } + catch + { + // Doesn't look like it can be treated as JSON + } + return false; + } + + /// + /// Determines if the parameter can be converted to the parameter + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false + /// + public override bool CanConvertTo(object sourceValue, global::System.Type destinationType) => false; + + /// + /// Converts the parameter to the parameter using and + /// + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// + /// an instance of , or null if there is no suitable conversion. + /// + public override object ConvertFrom(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => ConvertFrom(sourceValue); + + /// + /// Converts the parameter to the parameter using and + /// + /// the value to convert into an instance of . + /// + /// an instance of , or null if there is no suitable conversion. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ISystemTopicUpdateParametersTags ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ISystemTopicUpdateParametersTags).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return SystemTopicUpdateParametersTags.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return SystemTopicUpdateParametersTags.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return SystemTopicUpdateParametersTags.DeserializeFromDictionary(sourceValue); + } + return null; + } + + /// NotImplemented -- this will return null + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// will always return null. + public override object ConvertTo(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => null; + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/SystemTopicUpdateParametersTags.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/SystemTopicUpdateParametersTags.cs new file mode 100644 index 000000000000..8e8665e174f5 --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/SystemTopicUpdateParametersTags.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.EventGrid.Models.Api20211015Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Extensions; + + /// Tags of the system topic. + public partial class SystemTopicUpdateParametersTags : + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ISystemTopicUpdateParametersTags, + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ISystemTopicUpdateParametersTagsInternal + { + + /// Creates an new instance. + public SystemTopicUpdateParametersTags() + { + + } + } + /// Tags of the system topic. + public partial interface ISystemTopicUpdateParametersTags : + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IJsonSerializable, + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IAssociativeArray + { + + } + /// Tags of the system topic. + internal partial interface ISystemTopicUpdateParametersTagsInternal + + { + + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/SystemTopicUpdateParametersTags.dictionary.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/SystemTopicUpdateParametersTags.dictionary.cs new file mode 100644 index 000000000000..8645d377d68f --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/SystemTopicUpdateParametersTags.dictionary.cs @@ -0,0 +1,75 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Extensions; + + public partial class SystemTopicUpdateParametersTags : + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IAssociativeArray + { + protected global::System.Collections.Generic.Dictionary __additionalProperties = new global::System.Collections.Generic.Dictionary(); + + global::System.Collections.Generic.IDictionary Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IAssociativeArray.AdditionalProperties { get => __additionalProperties; } + + int Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IAssociativeArray.Count { get => __additionalProperties.Count; } + + global::System.Collections.Generic.IEnumerable Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IAssociativeArray.Keys { get => __additionalProperties.Keys; } + + global::System.Collections.Generic.IEnumerable Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.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.EventGrid.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.EventGrid.Models.Api20211015Preview.SystemTopicUpdateParametersTags source) => source.__additionalProperties; + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/SystemTopicUpdateParametersTags.json.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/SystemTopicUpdateParametersTags.json.cs new file mode 100644 index 000000000000..7acefc9f9122 --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/SystemTopicUpdateParametersTags.json.cs @@ -0,0 +1,107 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Extensions; + + /// Tags of the system topic. + public partial class SystemTopicUpdateParametersTags + { + + /// + /// AfterFromJson will be called after the json deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JsonNode that should be deserialized into this object. + + partial void AfterFromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json erialization has finished, allowing customization of the before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JSON container that the serialization result will be placed in. + + partial void AfterToJson(ref Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject container); + + /// + /// BeforeFromJson will be called before the json deserialization has commenced, allowing complete customization of + /// the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JsonNode that should be deserialized into this object. + /// Determines if the rest of the deserialization should be processed, or if the method should return + /// instantly. + + partial void BeforeFromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject json, ref bool returnNow); + + /// + /// BeforeToJson will be called before the json serialization has commenced, allowing complete customization of the + /// object before it is serialized. + /// If you wish to disable the default serialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JSON container that the serialization result will be placed in. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeToJson(ref Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ISystemTopicUpdateParametersTags. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ISystemTopicUpdateParametersTags. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ISystemTopicUpdateParametersTags FromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject json ? new SystemTopicUpdateParametersTags(json) : null; + } + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject instance to deserialize from. + /// + internal SystemTopicUpdateParametersTags(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Runtime.JsonSerializable.FromJson( json, ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject(); + + bool returnNow = false; + BeforeToJson(ref container, ref returnNow); + if (returnNow) + { + return container; + } + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.JsonSerializable.ToJson( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IAssociativeArray)this).AdditionalProperties, container); + AfterToJson(ref container); + return container; + } + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/SystemTopicsListResult.PowerShell.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/SystemTopicsListResult.PowerShell.cs new file mode 100644 index 000000000000..9375328ae6ea --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/SystemTopicsListResult.PowerShell.cs @@ -0,0 +1,152 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell; + + /// Result of the List System topics operation. + [System.ComponentModel.TypeConverter(typeof(SystemTopicsListResultTypeConverter))] + public partial class SystemTopicsListResult + { + + /// + /// AfterDeserializeDictionary will be called after the deserialization has finished, allowing customization of the + /// object before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Collections.IDictionary content that should be used. + + partial void AfterDeserializeDictionary(global::System.Collections.IDictionary content); + + /// + /// AfterDeserializePSObject will be called after the deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Management.Automation.PSObject content that should be used. + + partial void AfterDeserializePSObject(global::System.Management.Automation.PSObject content); + + /// + /// BeforeDeserializeDictionary will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Collections.IDictionary content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializeDictionary(global::System.Collections.IDictionary content, ref bool returnNow); + + /// + /// BeforeDeserializePSObject will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializePSObject(global::System.Management.Automation.PSObject content, ref bool returnNow); + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ISystemTopicsListResult DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new SystemTopicsListResult(content); + } + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ISystemTopicsListResult DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new SystemTopicsListResult(content); + } + + /// + /// Creates a new instance of , deserializing the content from a json string. + /// + /// a string containing a JSON serialized instance of this model. + /// an instance of the model class. + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ISystemTopicsListResult FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode.Parse(jsonText)); + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + internal SystemTopicsListResult(global::System.Collections.IDictionary content) + { + bool returnNow = false; + BeforeDeserializeDictionary(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("Value")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ISystemTopicsListResultInternal)this).Value = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ISystemTopic[]) content.GetValueForProperty("Value",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ISystemTopicsListResultInternal)this).Value, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.SystemTopicTypeConverter.ConvertFrom)); + } + if (content.Contains("NextLink")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ISystemTopicsListResultInternal)this).NextLink = (string) content.GetValueForProperty("NextLink",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ISystemTopicsListResultInternal)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 SystemTopicsListResult(global::System.Management.Automation.PSObject content) + { + bool returnNow = false; + BeforeDeserializePSObject(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("Value")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ISystemTopicsListResultInternal)this).Value = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ISystemTopic[]) content.GetValueForProperty("Value",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ISystemTopicsListResultInternal)this).Value, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.SystemTopicTypeConverter.ConvertFrom)); + } + if (content.Contains("NextLink")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ISystemTopicsListResultInternal)this).NextLink = (string) content.GetValueForProperty("NextLink",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ISystemTopicsListResultInternal)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.EventGrid.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + /// Result of the List System topics operation. + [System.ComponentModel.TypeConverter(typeof(SystemTopicsListResultTypeConverter))] + public partial interface ISystemTopicsListResult + + { + + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/SystemTopicsListResult.TypeConverter.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/SystemTopicsListResult.TypeConverter.cs new file mode 100644 index 000000000000..f73a1207f5ce --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/SystemTopicsListResult.TypeConverter.cs @@ -0,0 +1,147 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class SystemTopicsListResultTypeConverter : global::System.Management.Automation.PSTypeConverter + { + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false. + /// + public override bool CanConvertFrom(object sourceValue, global::System.Type destinationType) => CanConvertFrom(sourceValue); + + /// + /// Determines if the converter can convert the parameter to the . + /// + /// the instance to check if it can be converted to the type. + /// + /// true if the instance could be converted to a type, otherwise false + /// + public static bool CanConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return true; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + // we say yest to PSObjects + return true; + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + // we say yest to Hashtables/dictionaries + return true; + } + try + { + if (null != sourceValue.ToJsonString()) + { + return true; + } + } + catch + { + // Not one of our objects + } + try + { + string text = sourceValue.ToString()?.Trim(); + return true == text?.StartsWith("{") && true == text?.EndsWith("}") && Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonType.Object; + } + catch + { + // Doesn't look like it can be treated as JSON + } + return false; + } + + /// + /// Determines if the parameter can be converted to the parameter + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false + /// + public override bool CanConvertTo(object sourceValue, global::System.Type destinationType) => false; + + /// + /// Converts the parameter to the parameter using and + /// + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// + /// an instance of , or null if there is no suitable conversion. + /// + public override object ConvertFrom(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => ConvertFrom(sourceValue); + + /// + /// Converts the parameter to the parameter using and + /// + /// the value to convert into an instance of . + /// + /// an instance of , or null if there is no suitable conversion. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ISystemTopicsListResult ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ISystemTopicsListResult).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return SystemTopicsListResult.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return SystemTopicsListResult.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return SystemTopicsListResult.DeserializeFromDictionary(sourceValue); + } + return null; + } + + /// NotImplemented -- this will return null + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// will always return null. + public override object ConvertTo(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => null; + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/SystemTopicsListResult.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/SystemTopicsListResult.cs new file mode 100644 index 000000000000..36ac1f9f17ee --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/SystemTopicsListResult.cs @@ -0,0 +1,68 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Extensions; + + /// Result of the List System topics operation. + public partial class SystemTopicsListResult : + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ISystemTopicsListResult, + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ISystemTopicsListResultInternal + { + + /// Backing field for property. + private string _nextLink; + + /// A link for the next page of topics. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Owned)] + public string NextLink { get => this._nextLink; set => this._nextLink = value; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ISystemTopic[] _value; + + /// A collection of system Topics. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Owned)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ISystemTopic[] Value { get => this._value; set => this._value = value; } + + /// Creates an new instance. + public SystemTopicsListResult() + { + + } + } + /// Result of the List System topics operation. + public partial interface ISystemTopicsListResult : + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IJsonSerializable + { + /// A link for the next page of topics. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"A link for the next page of topics.", + SerializedName = @"nextLink", + PossibleTypes = new [] { typeof(string) })] + string NextLink { get; set; } + /// A collection of system Topics. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"A collection of system Topics.", + SerializedName = @"value", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ISystemTopic) })] + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ISystemTopic[] Value { get; set; } + + } + /// Result of the List System topics operation. + internal partial interface ISystemTopicsListResultInternal + + { + /// A link for the next page of topics. + string NextLink { get; set; } + /// A collection of system Topics. + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ISystemTopic[] Value { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/SystemTopicsListResult.json.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/SystemTopicsListResult.json.cs new file mode 100644 index 000000000000..978f5c80a742 --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/SystemTopicsListResult.json.cs @@ -0,0 +1,116 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Extensions; + + /// Result of the List System topics operation. + public partial class SystemTopicsListResult + { + + /// + /// AfterFromJson will be called after the json deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JsonNode that should be deserialized into this object. + + partial void AfterFromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json erialization has finished, allowing customization of the before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JSON container that the serialization result will be placed in. + + partial void AfterToJson(ref Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject container); + + /// + /// BeforeFromJson will be called before the json deserialization has commenced, allowing complete customization of + /// the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JsonNode that should be deserialized into this object. + /// Determines if the rest of the deserialization should be processed, or if the method should return + /// instantly. + + partial void BeforeFromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject json, ref bool returnNow); + + /// + /// BeforeToJson will be called before the json serialization has commenced, allowing complete customization of the + /// object before it is serialized. + /// If you wish to disable the default serialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JSON container that the serialization result will be placed in. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeToJson(ref Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ISystemTopicsListResult. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ISystemTopicsListResult. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ISystemTopicsListResult FromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject json ? new SystemTopicsListResult(json) : null; + } + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject instance to deserialize from. + internal SystemTopicsListResult(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.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.EventGrid.Models.Api20211015Preview.ISystemTopic) (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.SystemTopic.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.EventGrid.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Runtime.Json.XNodeArray(); + foreach( var __x in this._value ) + { + AddIf(__x?.ToJson(null, serializationMode) ,__w.Add); + } + container.Add("value",__w); + } + AddIf( null != (((object)this._nextLink)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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/eventgrid/generated/api/Models/Api20211015Preview/Topic.PowerShell.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/Topic.PowerShell.cs new file mode 100644 index 000000000000..4c9bd0dcd4f2 --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/Topic.PowerShell.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.EventGrid.Models.Api20211015Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell; + + /// EventGrid Topic + [System.ComponentModel.TypeConverter(typeof(TopicTypeConverter))] + public partial class Topic + { + + /// + /// AfterDeserializeDictionary will be called after the deserialization has finished, allowing customization of the + /// object before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Collections.IDictionary content that should be used. + + partial void AfterDeserializeDictionary(global::System.Collections.IDictionary content); + + /// + /// AfterDeserializePSObject will be called after the deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Management.Automation.PSObject content that should be used. + + partial void AfterDeserializePSObject(global::System.Management.Automation.PSObject content); + + /// + /// BeforeDeserializeDictionary will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Collections.IDictionary content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializeDictionary(global::System.Collections.IDictionary content, ref bool returnNow); + + /// + /// BeforeDeserializePSObject will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializePSObject(global::System.Management.Automation.PSObject content, ref bool returnNow); + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITopic DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new Topic(content); + } + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITopic DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new Topic(content); + } + + /// + /// Creates a new instance of , deserializing the content from a json string. + /// + /// a string containing a JSON serialized instance of this model. + /// an instance of the model class. + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITopic FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode.Parse(jsonText)); + + /// Serializes this instance to a json string. + + /// a containing this model serialized to JSON text. + public string ToJsonString() => ToJson(null, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SerializationMode.IncludeAll)?.ToString(); + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + internal Topic(global::System.Collections.IDictionary content) + { + bool returnNow = false; + BeforeDeserializeDictionary(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("Property")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITopicInternal)this).Property = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITopicProperties) content.GetValueForProperty("Property",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITopicInternal)this).Property, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.TopicPropertiesTypeConverter.ConvertFrom); + } + if (content.Contains("Sku")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITopicInternal)this).Sku = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IResourceSku) content.GetValueForProperty("Sku",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITopicInternal)this).Sku, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ResourceSkuTypeConverter.ConvertFrom); + } + if (content.Contains("Identity")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITopicInternal)this).Identity = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IIdentityInfo) content.GetValueForProperty("Identity",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITopicInternal)this).Identity, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IdentityInfoTypeConverter.ConvertFrom); + } + if (content.Contains("ExtendedLocation")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITopicInternal)this).ExtendedLocation = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IExtendedLocation) content.GetValueForProperty("ExtendedLocation",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITopicInternal)this).ExtendedLocation, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ExtendedLocationTypeConverter.ConvertFrom); + } + if (content.Contains("SystemData")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITopicInternal)this).SystemData = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20.ISystemData) content.GetValueForProperty("SystemData",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITopicInternal)this).SystemData, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20.SystemDataTypeConverter.ConvertFrom); + } + if (content.Contains("Kind")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITopicInternal)this).Kind = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.ResourceKind?) content.GetValueForProperty("Kind",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITopicInternal)this).Kind, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.ResourceKind.CreateFrom); + } + if (content.Contains("Id")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IResourceInternal)this).Id = (string) content.GetValueForProperty("Id",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IResourceInternal)this).Id, global::System.Convert.ToString); + } + if (content.Contains("Name")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IResourceInternal)this).Name = (string) content.GetValueForProperty("Name",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IResourceInternal)this).Name, global::System.Convert.ToString); + } + if (content.Contains("Type")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IResourceInternal)this).Type = (string) content.GetValueForProperty("Type",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IResourceInternal)this).Type, global::System.Convert.ToString); + } + if (content.Contains("Location")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITrackedResourceInternal)this).Location = (string) content.GetValueForProperty("Location",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITrackedResourceInternal)this).Location, global::System.Convert.ToString); + } + if (content.Contains("Tag")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITrackedResourceInternal)this).Tag = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITrackedResourceTags) content.GetValueForProperty("Tag",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITrackedResourceInternal)this).Tag, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.TrackedResourceTagsTypeConverter.ConvertFrom); + } + if (content.Contains("InputSchema")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITopicInternal)this).InputSchema = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.InputSchema?) content.GetValueForProperty("InputSchema",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITopicInternal)this).InputSchema, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.InputSchema.CreateFrom); + } + if (content.Contains("SkuName")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITopicInternal)this).SkuName = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.Sku?) content.GetValueForProperty("SkuName",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITopicInternal)this).SkuName, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.Sku.CreateFrom); + } + if (content.Contains("IdentityType")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITopicInternal)this).IdentityType = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.IdentityType?) content.GetValueForProperty("IdentityType",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITopicInternal)this).IdentityType, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.IdentityType.CreateFrom); + } + if (content.Contains("ExtendedLocationName")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITopicInternal)this).ExtendedLocationName = (string) content.GetValueForProperty("ExtendedLocationName",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITopicInternal)this).ExtendedLocationName, global::System.Convert.ToString); + } + if (content.Contains("ExtendedLocationType")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITopicInternal)this).ExtendedLocationType = (string) content.GetValueForProperty("ExtendedLocationType",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITopicInternal)this).ExtendedLocationType, global::System.Convert.ToString); + } + if (content.Contains("SystemDataCreatedBy")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITopicInternal)this).SystemDataCreatedBy = (string) content.GetValueForProperty("SystemDataCreatedBy",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITopicInternal)this).SystemDataCreatedBy, global::System.Convert.ToString); + } + if (content.Contains("SystemDataCreatedAt")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITopicInternal)this).SystemDataCreatedAt = (global::System.DateTime?) content.GetValueForProperty("SystemDataCreatedAt",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITopicInternal)this).SystemDataCreatedAt, (v) => v is global::System.DateTime _v ? _v : global::System.Xml.XmlConvert.ToDateTime( v.ToString() , global::System.Xml.XmlDateTimeSerializationMode.Unspecified)); + } + if (content.Contains("InputSchemaMapping")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITopicInternal)this).InputSchemaMapping = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IInputSchemaMapping) content.GetValueForProperty("InputSchemaMapping",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITopicInternal)this).InputSchemaMapping, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.InputSchemaMappingTypeConverter.ConvertFrom); + } + if (content.Contains("PrivateEndpointConnection")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITopicInternal)this).PrivateEndpointConnection = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPrivateEndpointConnection[]) content.GetValueForProperty("PrivateEndpointConnection",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITopicInternal)this).PrivateEndpointConnection, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.PrivateEndpointConnectionTypeConverter.ConvertFrom)); + } + if (content.Contains("ProvisioningState")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITopicInternal)this).ProvisioningState = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.TopicProvisioningState?) content.GetValueForProperty("ProvisioningState",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITopicInternal)this).ProvisioningState, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.TopicProvisioningState.CreateFrom); + } + if (content.Contains("Endpoint")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITopicInternal)this).Endpoint = (string) content.GetValueForProperty("Endpoint",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITopicInternal)this).Endpoint, global::System.Convert.ToString); + } + if (content.Contains("MetricResourceId")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITopicInternal)this).MetricResourceId = (string) content.GetValueForProperty("MetricResourceId",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITopicInternal)this).MetricResourceId, global::System.Convert.ToString); + } + if (content.Contains("PublicNetworkAccess")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITopicInternal)this).PublicNetworkAccess = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.PublicNetworkAccess?) content.GetValueForProperty("PublicNetworkAccess",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITopicInternal)this).PublicNetworkAccess, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.PublicNetworkAccess.CreateFrom); + } + if (content.Contains("InboundIPRule")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITopicInternal)this).InboundIPRule = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IInboundIPRule[]) content.GetValueForProperty("InboundIPRule",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITopicInternal)this).InboundIPRule, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.InboundIPRuleTypeConverter.ConvertFrom)); + } + if (content.Contains("DisableLocalAuth")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITopicInternal)this).DisableLocalAuth = (bool?) content.GetValueForProperty("DisableLocalAuth",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITopicInternal)this).DisableLocalAuth, (__y)=> (bool) global::System.Convert.ChangeType(__y, typeof(bool))); + } + if (content.Contains("DataResidencyBoundary")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITopicInternal)this).DataResidencyBoundary = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.DataResidencyBoundary?) content.GetValueForProperty("DataResidencyBoundary",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITopicInternal)this).DataResidencyBoundary, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.DataResidencyBoundary.CreateFrom); + } + if (content.Contains("IdentityPrincipalId")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITopicInternal)this).IdentityPrincipalId = (string) content.GetValueForProperty("IdentityPrincipalId",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITopicInternal)this).IdentityPrincipalId, global::System.Convert.ToString); + } + if (content.Contains("IdentityTenantId")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITopicInternal)this).IdentityTenantId = (string) content.GetValueForProperty("IdentityTenantId",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITopicInternal)this).IdentityTenantId, global::System.Convert.ToString); + } + if (content.Contains("IdentityUserAssignedIdentity")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITopicInternal)this).IdentityUserAssignedIdentity = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IIdentityInfoUserAssignedIdentities) content.GetValueForProperty("IdentityUserAssignedIdentity",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITopicInternal)this).IdentityUserAssignedIdentity, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IdentityInfoUserAssignedIdentitiesTypeConverter.ConvertFrom); + } + if (content.Contains("SystemDataCreatedByType")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITopicInternal)this).SystemDataCreatedByType = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.CreatedByType?) content.GetValueForProperty("SystemDataCreatedByType",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITopicInternal)this).SystemDataCreatedByType, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.CreatedByType.CreateFrom); + } + if (content.Contains("SystemDataLastModifiedBy")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITopicInternal)this).SystemDataLastModifiedBy = (string) content.GetValueForProperty("SystemDataLastModifiedBy",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITopicInternal)this).SystemDataLastModifiedBy, global::System.Convert.ToString); + } + if (content.Contains("SystemDataLastModifiedByType")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITopicInternal)this).SystemDataLastModifiedByType = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.CreatedByType?) content.GetValueForProperty("SystemDataLastModifiedByType",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITopicInternal)this).SystemDataLastModifiedByType, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.CreatedByType.CreateFrom); + } + if (content.Contains("SystemDataLastModifiedAt")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITopicInternal)this).SystemDataLastModifiedAt = (global::System.DateTime?) content.GetValueForProperty("SystemDataLastModifiedAt",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITopicInternal)this).SystemDataLastModifiedAt, (v) => v is global::System.DateTime _v ? _v : global::System.Xml.XmlConvert.ToDateTime( v.ToString() , global::System.Xml.XmlDateTimeSerializationMode.Unspecified)); + } + if (content.Contains("InputSchemaMappingInputSchemaMappingType")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITopicInternal)this).InputSchemaMappingInputSchemaMappingType = (string) content.GetValueForProperty("InputSchemaMappingInputSchemaMappingType",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITopicInternal)this).InputSchemaMappingInputSchemaMappingType, global::System.Convert.ToString); + } + AfterDeserializeDictionary(content); + } + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + internal Topic(global::System.Management.Automation.PSObject content) + { + bool returnNow = false; + BeforeDeserializePSObject(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("Property")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITopicInternal)this).Property = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITopicProperties) content.GetValueForProperty("Property",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITopicInternal)this).Property, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.TopicPropertiesTypeConverter.ConvertFrom); + } + if (content.Contains("Sku")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITopicInternal)this).Sku = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IResourceSku) content.GetValueForProperty("Sku",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITopicInternal)this).Sku, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ResourceSkuTypeConverter.ConvertFrom); + } + if (content.Contains("Identity")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITopicInternal)this).Identity = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IIdentityInfo) content.GetValueForProperty("Identity",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITopicInternal)this).Identity, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IdentityInfoTypeConverter.ConvertFrom); + } + if (content.Contains("ExtendedLocation")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITopicInternal)this).ExtendedLocation = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IExtendedLocation) content.GetValueForProperty("ExtendedLocation",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITopicInternal)this).ExtendedLocation, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ExtendedLocationTypeConverter.ConvertFrom); + } + if (content.Contains("SystemData")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITopicInternal)this).SystemData = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20.ISystemData) content.GetValueForProperty("SystemData",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITopicInternal)this).SystemData, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20.SystemDataTypeConverter.ConvertFrom); + } + if (content.Contains("Kind")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITopicInternal)this).Kind = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.ResourceKind?) content.GetValueForProperty("Kind",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITopicInternal)this).Kind, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.ResourceKind.CreateFrom); + } + if (content.Contains("Id")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IResourceInternal)this).Id = (string) content.GetValueForProperty("Id",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IResourceInternal)this).Id, global::System.Convert.ToString); + } + if (content.Contains("Name")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IResourceInternal)this).Name = (string) content.GetValueForProperty("Name",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IResourceInternal)this).Name, global::System.Convert.ToString); + } + if (content.Contains("Type")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IResourceInternal)this).Type = (string) content.GetValueForProperty("Type",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IResourceInternal)this).Type, global::System.Convert.ToString); + } + if (content.Contains("Location")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITrackedResourceInternal)this).Location = (string) content.GetValueForProperty("Location",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITrackedResourceInternal)this).Location, global::System.Convert.ToString); + } + if (content.Contains("Tag")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITrackedResourceInternal)this).Tag = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITrackedResourceTags) content.GetValueForProperty("Tag",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITrackedResourceInternal)this).Tag, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.TrackedResourceTagsTypeConverter.ConvertFrom); + } + if (content.Contains("InputSchema")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITopicInternal)this).InputSchema = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.InputSchema?) content.GetValueForProperty("InputSchema",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITopicInternal)this).InputSchema, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.InputSchema.CreateFrom); + } + if (content.Contains("SkuName")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITopicInternal)this).SkuName = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.Sku?) content.GetValueForProperty("SkuName",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITopicInternal)this).SkuName, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.Sku.CreateFrom); + } + if (content.Contains("IdentityType")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITopicInternal)this).IdentityType = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.IdentityType?) content.GetValueForProperty("IdentityType",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITopicInternal)this).IdentityType, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.IdentityType.CreateFrom); + } + if (content.Contains("ExtendedLocationName")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITopicInternal)this).ExtendedLocationName = (string) content.GetValueForProperty("ExtendedLocationName",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITopicInternal)this).ExtendedLocationName, global::System.Convert.ToString); + } + if (content.Contains("ExtendedLocationType")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITopicInternal)this).ExtendedLocationType = (string) content.GetValueForProperty("ExtendedLocationType",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITopicInternal)this).ExtendedLocationType, global::System.Convert.ToString); + } + if (content.Contains("SystemDataCreatedBy")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITopicInternal)this).SystemDataCreatedBy = (string) content.GetValueForProperty("SystemDataCreatedBy",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITopicInternal)this).SystemDataCreatedBy, global::System.Convert.ToString); + } + if (content.Contains("SystemDataCreatedAt")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITopicInternal)this).SystemDataCreatedAt = (global::System.DateTime?) content.GetValueForProperty("SystemDataCreatedAt",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITopicInternal)this).SystemDataCreatedAt, (v) => v is global::System.DateTime _v ? _v : global::System.Xml.XmlConvert.ToDateTime( v.ToString() , global::System.Xml.XmlDateTimeSerializationMode.Unspecified)); + } + if (content.Contains("InputSchemaMapping")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITopicInternal)this).InputSchemaMapping = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IInputSchemaMapping) content.GetValueForProperty("InputSchemaMapping",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITopicInternal)this).InputSchemaMapping, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.InputSchemaMappingTypeConverter.ConvertFrom); + } + if (content.Contains("PrivateEndpointConnection")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITopicInternal)this).PrivateEndpointConnection = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPrivateEndpointConnection[]) content.GetValueForProperty("PrivateEndpointConnection",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITopicInternal)this).PrivateEndpointConnection, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.PrivateEndpointConnectionTypeConverter.ConvertFrom)); + } + if (content.Contains("ProvisioningState")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITopicInternal)this).ProvisioningState = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.TopicProvisioningState?) content.GetValueForProperty("ProvisioningState",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITopicInternal)this).ProvisioningState, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.TopicProvisioningState.CreateFrom); + } + if (content.Contains("Endpoint")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITopicInternal)this).Endpoint = (string) content.GetValueForProperty("Endpoint",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITopicInternal)this).Endpoint, global::System.Convert.ToString); + } + if (content.Contains("MetricResourceId")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITopicInternal)this).MetricResourceId = (string) content.GetValueForProperty("MetricResourceId",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITopicInternal)this).MetricResourceId, global::System.Convert.ToString); + } + if (content.Contains("PublicNetworkAccess")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITopicInternal)this).PublicNetworkAccess = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.PublicNetworkAccess?) content.GetValueForProperty("PublicNetworkAccess",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITopicInternal)this).PublicNetworkAccess, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.PublicNetworkAccess.CreateFrom); + } + if (content.Contains("InboundIPRule")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITopicInternal)this).InboundIPRule = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IInboundIPRule[]) content.GetValueForProperty("InboundIPRule",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITopicInternal)this).InboundIPRule, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.InboundIPRuleTypeConverter.ConvertFrom)); + } + if (content.Contains("DisableLocalAuth")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITopicInternal)this).DisableLocalAuth = (bool?) content.GetValueForProperty("DisableLocalAuth",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITopicInternal)this).DisableLocalAuth, (__y)=> (bool) global::System.Convert.ChangeType(__y, typeof(bool))); + } + if (content.Contains("DataResidencyBoundary")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITopicInternal)this).DataResidencyBoundary = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.DataResidencyBoundary?) content.GetValueForProperty("DataResidencyBoundary",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITopicInternal)this).DataResidencyBoundary, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.DataResidencyBoundary.CreateFrom); + } + if (content.Contains("IdentityPrincipalId")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITopicInternal)this).IdentityPrincipalId = (string) content.GetValueForProperty("IdentityPrincipalId",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITopicInternal)this).IdentityPrincipalId, global::System.Convert.ToString); + } + if (content.Contains("IdentityTenantId")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITopicInternal)this).IdentityTenantId = (string) content.GetValueForProperty("IdentityTenantId",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITopicInternal)this).IdentityTenantId, global::System.Convert.ToString); + } + if (content.Contains("IdentityUserAssignedIdentity")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITopicInternal)this).IdentityUserAssignedIdentity = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IIdentityInfoUserAssignedIdentities) content.GetValueForProperty("IdentityUserAssignedIdentity",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITopicInternal)this).IdentityUserAssignedIdentity, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IdentityInfoUserAssignedIdentitiesTypeConverter.ConvertFrom); + } + if (content.Contains("SystemDataCreatedByType")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITopicInternal)this).SystemDataCreatedByType = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.CreatedByType?) content.GetValueForProperty("SystemDataCreatedByType",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITopicInternal)this).SystemDataCreatedByType, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.CreatedByType.CreateFrom); + } + if (content.Contains("SystemDataLastModifiedBy")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITopicInternal)this).SystemDataLastModifiedBy = (string) content.GetValueForProperty("SystemDataLastModifiedBy",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITopicInternal)this).SystemDataLastModifiedBy, global::System.Convert.ToString); + } + if (content.Contains("SystemDataLastModifiedByType")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITopicInternal)this).SystemDataLastModifiedByType = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.CreatedByType?) content.GetValueForProperty("SystemDataLastModifiedByType",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITopicInternal)this).SystemDataLastModifiedByType, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.CreatedByType.CreateFrom); + } + if (content.Contains("SystemDataLastModifiedAt")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITopicInternal)this).SystemDataLastModifiedAt = (global::System.DateTime?) content.GetValueForProperty("SystemDataLastModifiedAt",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITopicInternal)this).SystemDataLastModifiedAt, (v) => v is global::System.DateTime _v ? _v : global::System.Xml.XmlConvert.ToDateTime( v.ToString() , global::System.Xml.XmlDateTimeSerializationMode.Unspecified)); + } + if (content.Contains("InputSchemaMappingInputSchemaMappingType")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITopicInternal)this).InputSchemaMappingInputSchemaMappingType = (string) content.GetValueForProperty("InputSchemaMappingInputSchemaMappingType",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITopicInternal)this).InputSchemaMappingInputSchemaMappingType, global::System.Convert.ToString); + } + AfterDeserializePSObject(content); + } + } + /// EventGrid Topic + [System.ComponentModel.TypeConverter(typeof(TopicTypeConverter))] + public partial interface ITopic + + { + + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/Topic.TypeConverter.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/Topic.TypeConverter.cs new file mode 100644 index 000000000000..5c6f4afe00d1 --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/Topic.TypeConverter.cs @@ -0,0 +1,146 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class TopicTypeConverter : global::System.Management.Automation.PSTypeConverter + { + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false. + /// + public override bool CanConvertFrom(object sourceValue, global::System.Type destinationType) => CanConvertFrom(sourceValue); + + /// + /// Determines if the converter can convert the parameter to the . + /// + /// the instance to check if it can be converted to the type. + /// + /// true if the instance could be converted to a type, otherwise false + /// + public static bool CanConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return true; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + // we say yest to PSObjects + return true; + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + // we say yest to Hashtables/dictionaries + return true; + } + try + { + if (null != sourceValue.ToJsonString()) + { + return true; + } + } + catch + { + // Not one of our objects + } + try + { + string text = sourceValue.ToString()?.Trim(); + return true == text?.StartsWith("{") && true == text?.EndsWith("}") && Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonType.Object; + } + catch + { + // Doesn't look like it can be treated as JSON + } + return false; + } + + /// + /// Determines if the parameter can be converted to the parameter + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false + /// + public override bool CanConvertTo(object sourceValue, global::System.Type destinationType) => false; + + /// + /// Converts the parameter to the parameter using and + /// + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// + /// an instance of , or null if there is no suitable conversion. + /// + public override object ConvertFrom(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => ConvertFrom(sourceValue); + + /// + /// Converts the parameter to the parameter using and + /// + /// the value to convert into an instance of . + /// + /// an instance of , or null if there is no suitable conversion. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITopic ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITopic).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return Topic.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return Topic.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return Topic.DeserializeFromDictionary(sourceValue); + } + return null; + } + + /// NotImplemented -- this will return null + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// will always return null. + public override object ConvertTo(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => null; + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/Topic.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/Topic.cs new file mode 100644 index 000000000000..0d7021f2e7f5 --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/Topic.cs @@ -0,0 +1,566 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Extensions; + + /// EventGrid Topic + public partial class Topic : + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITopic, + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITopicInternal, + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IValidates + { + /// + /// Backing field for Inherited model + /// + private Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITrackedResource __trackedResource = new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.TrackedResource(); + + /// Data Residency Boundary of the resource. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Inlined)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.DataResidencyBoundary? DataResidencyBoundary { get => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITopicPropertiesInternal)Property).DataResidencyBoundary; set => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITopicPropertiesInternal)Property).DataResidencyBoundary = value ?? ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.DataResidencyBoundary)""); } + + /// + /// This boolean is used to enable or disable local auth. Default value is false. When the property is set to true, only AAD + /// token will be used to authenticate if user is allowed to publish to the topic. + /// + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Inlined)] + public bool? DisableLocalAuth { get => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITopicPropertiesInternal)Property).DisableLocalAuth; set => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITopicPropertiesInternal)Property).DisableLocalAuth = value ?? default(bool); } + + /// Endpoint for the topic. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Inlined)] + public string Endpoint { get => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITopicPropertiesInternal)Property).Endpoint; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IExtendedLocation _extendedLocation; + + /// Extended location of the resource. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Owned)] + internal Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IExtendedLocation ExtendedLocation { get => (this._extendedLocation = this._extendedLocation ?? new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ExtendedLocation()); set => this._extendedLocation = value; } + + /// Fully qualified name of the extended location. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Inlined)] + public string ExtendedLocationName { get => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IExtendedLocationInternal)ExtendedLocation).Name; set => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IExtendedLocationInternal)ExtendedLocation).Name = value ?? null; } + + /// Type of the extended location. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Inlined)] + public string ExtendedLocationType { get => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IExtendedLocationInternal)ExtendedLocation).Type; set => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IExtendedLocationInternal)ExtendedLocation).Type = value ?? null; } + + /// Fully qualified identifier of the resource. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Inherited)] + public string Id { get => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IResourceInternal)__trackedResource).Id; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IIdentityInfo _identity; + + /// Identity information for the resource. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Owned)] + internal Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IIdentityInfo Identity { get => (this._identity = this._identity ?? new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IdentityInfo()); set => this._identity = value; } + + /// The principal ID of resource identity. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Inlined)] + public string IdentityPrincipalId { get => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IIdentityInfoInternal)Identity).PrincipalId; set => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IIdentityInfoInternal)Identity).PrincipalId = value ?? null; } + + /// The tenant ID of resource. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Inlined)] + public string IdentityTenantId { get => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IIdentityInfoInternal)Identity).TenantId; set => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IIdentityInfoInternal)Identity).TenantId = value ?? null; } + + /// + /// The type of managed identity used. The type 'SystemAssigned, UserAssigned' includes both an implicitly created identity + /// and a set of user-assigned identities. The type 'None' will remove any identity. + /// + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Inlined)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.IdentityType? IdentityType { get => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IIdentityInfoInternal)Identity).Type; set => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IIdentityInfoInternal)Identity).Type = value ?? ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.IdentityType)""); } + + /// + /// The list of user identities associated with the resource. The user identity dictionary key references will be ARM resource + /// ids in the form: + /// '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ManagedIdentity/userAssignedIdentities/{identityName}'. + /// This property is currently not used and reserved for future usage. + /// + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Inlined)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IIdentityInfoUserAssignedIdentities IdentityUserAssignedIdentity { get => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IIdentityInfoInternal)Identity).UserAssignedIdentity; set => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IIdentityInfoInternal)Identity).UserAssignedIdentity = value ?? null /* model class */; } + + /// + /// This can be used to restrict traffic from specific IPs instead of all IPs. Note: These are considered only if PublicNetworkAccess + /// is enabled. + /// + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Inlined)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IInboundIPRule[] InboundIPRule { get => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITopicPropertiesInternal)Property).InboundIPRule; set => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITopicPropertiesInternal)Property).InboundIPRule = value ?? null /* arrayOf */; } + + /// + /// This determines the format that Event Grid should expect for incoming events published to the topic. + /// + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Inlined)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.InputSchema? InputSchema { get => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITopicPropertiesInternal)Property).InputSchema; set => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITopicPropertiesInternal)Property).InputSchema = value ?? ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.InputSchema)""); } + + /// Type of the custom mapping + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Inlined)] + public string InputSchemaMappingInputSchemaMappingType { get => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITopicPropertiesInternal)Property).InputSchemaMappingInputSchemaMappingType; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.ResourceKind? _kind; + + /// Kind of the resource. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Owned)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.ResourceKind? Kind { get => this._kind; set => this._kind = value; } + + /// Location of the resource. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Inherited)] + public string Location { get => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITrackedResourceInternal)__trackedResource).Location; set => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITrackedResourceInternal)__trackedResource).Location = value ; } + + /// Metric resource id for the topic. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Inlined)] + public string MetricResourceId { get => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITopicPropertiesInternal)Property).MetricResourceId; } + + /// Internal Acessors for Id + string Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IResourceInternal.Id { get => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IResourceInternal)__trackedResource).Id; set => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IResourceInternal)__trackedResource).Id = value; } + + /// Internal Acessors for Name + string Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IResourceInternal.Name { get => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IResourceInternal)__trackedResource).Name; set => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IResourceInternal)__trackedResource).Name = value; } + + /// Internal Acessors for Type + string Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IResourceInternal.Type { get => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IResourceInternal)__trackedResource).Type; set => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IResourceInternal)__trackedResource).Type = value; } + + /// Internal Acessors for Endpoint + string Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITopicInternal.Endpoint { get => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITopicPropertiesInternal)Property).Endpoint; set => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITopicPropertiesInternal)Property).Endpoint = value; } + + /// Internal Acessors for ExtendedLocation + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IExtendedLocation Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITopicInternal.ExtendedLocation { get => (this._extendedLocation = this._extendedLocation ?? new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ExtendedLocation()); set { {_extendedLocation = value;} } } + + /// Internal Acessors for Identity + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IIdentityInfo Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITopicInternal.Identity { get => (this._identity = this._identity ?? new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IdentityInfo()); set { {_identity = value;} } } + + /// Internal Acessors for InputSchemaMapping + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IInputSchemaMapping Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITopicInternal.InputSchemaMapping { get => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITopicPropertiesInternal)Property).InputSchemaMapping; set => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITopicPropertiesInternal)Property).InputSchemaMapping = value; } + + /// Internal Acessors for InputSchemaMappingInputSchemaMappingType + string Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITopicInternal.InputSchemaMappingInputSchemaMappingType { get => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITopicPropertiesInternal)Property).InputSchemaMappingInputSchemaMappingType; set => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITopicPropertiesInternal)Property).InputSchemaMappingInputSchemaMappingType = value; } + + /// Internal Acessors for MetricResourceId + string Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITopicInternal.MetricResourceId { get => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITopicPropertiesInternal)Property).MetricResourceId; set => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITopicPropertiesInternal)Property).MetricResourceId = value; } + + /// Internal Acessors for PrivateEndpointConnection + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPrivateEndpointConnection[] Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITopicInternal.PrivateEndpointConnection { get => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITopicPropertiesInternal)Property).PrivateEndpointConnection; set => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITopicPropertiesInternal)Property).PrivateEndpointConnection = value; } + + /// Internal Acessors for Property + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITopicProperties Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITopicInternal.Property { get => (this._property = this._property ?? new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.TopicProperties()); set { {_property = value;} } } + + /// Internal Acessors for ProvisioningState + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.TopicProvisioningState? Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITopicInternal.ProvisioningState { get => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITopicPropertiesInternal)Property).ProvisioningState; set => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITopicPropertiesInternal)Property).ProvisioningState = value; } + + /// Internal Acessors for Sku + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IResourceSku Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITopicInternal.Sku { get => (this._sku = this._sku ?? new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ResourceSku()); set { {_sku = value;} } } + + /// Internal Acessors for SystemData + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20.ISystemData Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITopicInternal.SystemData { get => (this._systemData = this._systemData ?? new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20.SystemData()); set { {_systemData = value;} } } + + /// Name of the resource. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Inherited)] + public string Name { get => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IResourceInternal)__trackedResource).Name; } + + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Inlined)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPrivateEndpointConnection[] PrivateEndpointConnection { get => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITopicPropertiesInternal)Property).PrivateEndpointConnection; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITopicProperties _property; + + /// Properties of the topic. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Owned)] + internal Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITopicProperties Property { get => (this._property = this._property ?? new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.TopicProperties()); set => this._property = value; } + + /// Provisioning state of the topic. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Inlined)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.TopicProvisioningState? ProvisioningState { get => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITopicPropertiesInternal)Property).ProvisioningState; } + + /// + /// This determines if traffic is allowed over public network. By default it is enabled. + /// You can further restrict to specific IPs by configuring + /// + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Inlined)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.PublicNetworkAccess? PublicNetworkAccess { get => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITopicPropertiesInternal)Property).PublicNetworkAccess; set => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITopicPropertiesInternal)Property).PublicNetworkAccess = value ?? ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.PublicNetworkAccess)""); } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IResourceSku _sku; + + /// The Sku pricing tier for the topic. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Owned)] + internal Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IResourceSku Sku { get => (this._sku = this._sku ?? new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ResourceSku()); set => this._sku = value; } + + /// The Sku name of the resource. The possible values are: Basic or Premium. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Inlined)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.Sku? SkuName { get => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IResourceSkuInternal)Sku).Name; set => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IResourceSkuInternal)Sku).Name = value ?? ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.Sku)""); } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20.ISystemData _systemData; + + /// The system metadata relating to Topic resource. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Owned)] + internal Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20.ISystemData SystemData { get => (this._systemData = this._systemData ?? new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20.SystemData()); } + + /// The timestamp of resource creation (UTC). + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Inlined)] + public global::System.DateTime? SystemDataCreatedAt { get => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20.ISystemDataInternal)SystemData).CreatedAt; set => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20.ISystemDataInternal)SystemData).CreatedAt = value ?? default(global::System.DateTime); } + + /// The identity that created the resource. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Inlined)] + public string SystemDataCreatedBy { get => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20.ISystemDataInternal)SystemData).CreatedBy; set => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20.ISystemDataInternal)SystemData).CreatedBy = value ?? null; } + + /// The type of identity that created the resource. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Inlined)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.CreatedByType? SystemDataCreatedByType { get => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20.ISystemDataInternal)SystemData).CreatedByType; set => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20.ISystemDataInternal)SystemData).CreatedByType = value ?? ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.CreatedByType)""); } + + /// The timestamp of resource last modification (UTC) + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Inlined)] + public global::System.DateTime? SystemDataLastModifiedAt { get => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20.ISystemDataInternal)SystemData).LastModifiedAt; set => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20.ISystemDataInternal)SystemData).LastModifiedAt = value ?? default(global::System.DateTime); } + + /// The identity that last modified the resource. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Inlined)] + public string SystemDataLastModifiedBy { get => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20.ISystemDataInternal)SystemData).LastModifiedBy; set => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20.ISystemDataInternal)SystemData).LastModifiedBy = value ?? null; } + + /// The type of identity that last modified the resource. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Inlined)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.CreatedByType? SystemDataLastModifiedByType { get => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20.ISystemDataInternal)SystemData).LastModifiedByType; set => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20.ISystemDataInternal)SystemData).LastModifiedByType = value ?? ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.CreatedByType)""); } + + /// Tags of the resource. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Inherited)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITrackedResourceTags Tag { get => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITrackedResourceInternal)__trackedResource).Tag; set => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITrackedResourceInternal)__trackedResource).Tag = value ?? null /* model class */; } + + /// Type of the resource. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Inherited)] + public string Type { get => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IResourceInternal)__trackedResource).Type; } + + /// Creates an new instance. + public Topic() + { + + } + + /// Validates that this object meets the validation criteria. + /// an instance that will receive validation + /// events. + /// + /// A that will be complete when validation is completed. + /// + public async global::System.Threading.Tasks.Task Validate(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener eventListener) + { + await eventListener.AssertNotNull(nameof(__trackedResource), __trackedResource); + await eventListener.AssertObjectIsValid(nameof(__trackedResource), __trackedResource); + } + } + /// EventGrid Topic + public partial interface ITopic : + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IJsonSerializable, + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITrackedResource + { + /// Data Residency Boundary of the resource. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Data Residency Boundary of the resource.", + SerializedName = @"dataResidencyBoundary", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.DataResidencyBoundary) })] + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.DataResidencyBoundary? DataResidencyBoundary { get; set; } + /// + /// This boolean is used to enable or disable local auth. Default value is false. When the property is set to true, only AAD + /// token will be used to authenticate if user is allowed to publish to the topic. + /// + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"This boolean is used to enable or disable local auth. Default value is false. When the property is set to true, only AAD token will be used to authenticate if user is allowed to publish to the topic.", + SerializedName = @"disableLocalAuth", + PossibleTypes = new [] { typeof(bool) })] + bool? DisableLocalAuth { get; set; } + /// Endpoint for the topic. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"Endpoint for the topic.", + SerializedName = @"endpoint", + PossibleTypes = new [] { typeof(string) })] + string Endpoint { get; } + /// Fully qualified name of the extended location. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Fully qualified name of the extended location.", + SerializedName = @"name", + PossibleTypes = new [] { typeof(string) })] + string ExtendedLocationName { get; set; } + /// Type of the extended location. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Type of the extended location.", + SerializedName = @"type", + PossibleTypes = new [] { typeof(string) })] + string ExtendedLocationType { get; set; } + /// The principal ID of resource identity. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The principal ID of resource identity.", + SerializedName = @"principalId", + PossibleTypes = new [] { typeof(string) })] + string IdentityPrincipalId { get; set; } + /// The tenant ID of resource. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The tenant ID of resource.", + SerializedName = @"tenantId", + PossibleTypes = new [] { typeof(string) })] + string IdentityTenantId { get; set; } + /// + /// The type of managed identity used. The type 'SystemAssigned, UserAssigned' includes both an implicitly created identity + /// and a set of user-assigned identities. The type 'None' will remove any identity. + /// + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The type of managed identity used. The type 'SystemAssigned, UserAssigned' includes both an implicitly created identity and a set of user-assigned identities. The type 'None' will remove any identity.", + SerializedName = @"type", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.IdentityType) })] + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.IdentityType? IdentityType { get; set; } + /// + /// The list of user identities associated with the resource. The user identity dictionary key references will be ARM resource + /// ids in the form: + /// '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ManagedIdentity/userAssignedIdentities/{identityName}'. + /// This property is currently not used and reserved for future usage. + /// + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The list of user identities associated with the resource. The user identity dictionary key references will be ARM resource ids in the form: + '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ManagedIdentity/userAssignedIdentities/{identityName}'. + This property is currently not used and reserved for future usage.", + SerializedName = @"userAssignedIdentities", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IIdentityInfoUserAssignedIdentities) })] + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IIdentityInfoUserAssignedIdentities IdentityUserAssignedIdentity { get; set; } + /// + /// This can be used to restrict traffic from specific IPs instead of all IPs. Note: These are considered only if PublicNetworkAccess + /// is enabled. + /// + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"This can be used to restrict traffic from specific IPs instead of all IPs. Note: These are considered only if PublicNetworkAccess is enabled.", + SerializedName = @"inboundIpRules", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IInboundIPRule) })] + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IInboundIPRule[] InboundIPRule { get; set; } + /// + /// This determines the format that Event Grid should expect for incoming events published to the topic. + /// + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"This determines the format that Event Grid should expect for incoming events published to the topic.", + SerializedName = @"inputSchema", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.InputSchema) })] + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.InputSchema? InputSchema { get; set; } + /// Type of the custom mapping + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"Type of the custom mapping", + SerializedName = @"inputSchemaMappingType", + PossibleTypes = new [] { typeof(string) })] + string InputSchemaMappingInputSchemaMappingType { get; } + /// Kind of the resource. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Kind of the resource.", + SerializedName = @"kind", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.ResourceKind) })] + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.ResourceKind? Kind { get; set; } + /// Metric resource id for the topic. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"Metric resource id for the topic.", + SerializedName = @"metricResourceId", + PossibleTypes = new [] { typeof(string) })] + string MetricResourceId { get; } + + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"", + SerializedName = @"privateEndpointConnections", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPrivateEndpointConnection) })] + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPrivateEndpointConnection[] PrivateEndpointConnection { get; } + /// Provisioning state of the topic. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"Provisioning state of the topic.", + SerializedName = @"provisioningState", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.TopicProvisioningState) })] + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.TopicProvisioningState? ProvisioningState { get; } + /// + /// This determines if traffic is allowed over public network. By default it is enabled. + /// You can further restrict to specific IPs by configuring + /// + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"This determines if traffic is allowed over public network. By default it is enabled. + You can further restrict to specific IPs by configuring ", + SerializedName = @"publicNetworkAccess", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.PublicNetworkAccess) })] + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.PublicNetworkAccess? PublicNetworkAccess { get; set; } + /// The Sku name of the resource. The possible values are: Basic or Premium. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The Sku name of the resource. The possible values are: Basic or Premium.", + SerializedName = @"name", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.Sku) })] + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.Sku? SkuName { get; set; } + /// The timestamp of resource creation (UTC). + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.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.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The type of identity that created the resource.", + SerializedName = @"createdByType", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.CreatedByType) })] + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.CreatedByType? SystemDataCreatedByType { get; set; } + /// The timestamp of resource last modification (UTC) + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.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.EventGrid.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.EventGrid.Support.CreatedByType) })] + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.CreatedByType? SystemDataLastModifiedByType { get; set; } + + } + /// EventGrid Topic + internal partial interface ITopicInternal : + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITrackedResourceInternal + { + /// Data Residency Boundary of the resource. + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.DataResidencyBoundary? DataResidencyBoundary { get; set; } + /// + /// This boolean is used to enable or disable local auth. Default value is false. When the property is set to true, only AAD + /// token will be used to authenticate if user is allowed to publish to the topic. + /// + bool? DisableLocalAuth { get; set; } + /// Endpoint for the topic. + string Endpoint { get; set; } + /// Extended location of the resource. + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IExtendedLocation ExtendedLocation { get; set; } + /// Fully qualified name of the extended location. + string ExtendedLocationName { get; set; } + /// Type of the extended location. + string ExtendedLocationType { get; set; } + /// Identity information for the resource. + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IIdentityInfo Identity { get; set; } + /// The principal ID of resource identity. + string IdentityPrincipalId { get; set; } + /// The tenant ID of resource. + string IdentityTenantId { get; set; } + /// + /// The type of managed identity used. The type 'SystemAssigned, UserAssigned' includes both an implicitly created identity + /// and a set of user-assigned identities. The type 'None' will remove any identity. + /// + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.IdentityType? IdentityType { get; set; } + /// + /// The list of user identities associated with the resource. The user identity dictionary key references will be ARM resource + /// ids in the form: + /// '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ManagedIdentity/userAssignedIdentities/{identityName}'. + /// This property is currently not used and reserved for future usage. + /// + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IIdentityInfoUserAssignedIdentities IdentityUserAssignedIdentity { get; set; } + /// + /// This can be used to restrict traffic from specific IPs instead of all IPs. Note: These are considered only if PublicNetworkAccess + /// is enabled. + /// + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IInboundIPRule[] InboundIPRule { get; set; } + /// + /// This determines the format that Event Grid should expect for incoming events published to the topic. + /// + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.InputSchema? InputSchema { get; set; } + /// + /// This enables publishing using custom event schemas. An InputSchemaMapping can be specified to map various properties of + /// a source schema to various required properties of the EventGridEvent schema. + /// + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IInputSchemaMapping InputSchemaMapping { get; set; } + /// Type of the custom mapping + string InputSchemaMappingInputSchemaMappingType { get; set; } + /// Kind of the resource. + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.ResourceKind? Kind { get; set; } + /// Metric resource id for the topic. + string MetricResourceId { get; set; } + + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPrivateEndpointConnection[] PrivateEndpointConnection { get; set; } + /// Properties of the topic. + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITopicProperties Property { get; set; } + /// Provisioning state of the topic. + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.TopicProvisioningState? ProvisioningState { get; set; } + /// + /// This determines if traffic is allowed over public network. By default it is enabled. + /// You can further restrict to specific IPs by configuring + /// + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.PublicNetworkAccess? PublicNetworkAccess { get; set; } + /// The Sku pricing tier for the topic. + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IResourceSku Sku { get; set; } + /// The Sku name of the resource. The possible values are: Basic or Premium. + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.Sku? SkuName { get; set; } + /// The system metadata relating to Topic resource. + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.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.EventGrid.Support.CreatedByType? SystemDataLastModifiedByType { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/Topic.json.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/Topic.json.cs new file mode 100644 index 000000000000..8d8ddcdcf70c --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/Topic.json.cs @@ -0,0 +1,121 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Extensions; + + /// EventGrid Topic + public partial class Topic + { + + /// + /// AfterFromJson will be called after the json deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JsonNode that should be deserialized into this object. + + partial void AfterFromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json erialization has finished, allowing customization of the before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JSON container that the serialization result will be placed in. + + partial void AfterToJson(ref Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject container); + + /// + /// BeforeFromJson will be called before the json deserialization has commenced, allowing complete customization of + /// the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JsonNode that should be deserialized into this object. + /// Determines if the rest of the deserialization should be processed, or if the method should return + /// instantly. + + partial void BeforeFromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject json, ref bool returnNow); + + /// + /// BeforeToJson will be called before the json serialization has commenced, allowing complete customization of the + /// object before it is serialized. + /// If you wish to disable the default serialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JSON container that the serialization result will be placed in. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeToJson(ref Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITopic. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITopic. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITopic FromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject json ? new Topic(json) : null; + } + + /// + /// Serializes this instance of into a . + /// + /// The container to serialize this object into. If the caller + /// passes in null, a new instance will be created and returned to the caller. + /// Allows the caller to choose the depth of the serialization. See . + /// + /// a serialized instance of as a . + /// + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject(); + + bool returnNow = false; + BeforeToJson(ref container, ref returnNow); + if (returnNow) + { + return container; + } + __trackedResource?.ToJson(container, serializationMode); + AddIf( null != this._property ? (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode) this._property.ToJson(null,serializationMode) : null, "properties" ,container.Add ); + AddIf( null != this._sku ? (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode) this._sku.ToJson(null,serializationMode) : null, "sku" ,container.Add ); + AddIf( null != this._identity ? (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode) this._identity.ToJson(null,serializationMode) : null, "identity" ,container.Add ); + AddIf( null != this._extendedLocation ? (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode) this._extendedLocation.ToJson(null,serializationMode) : null, "extendedLocation" ,container.Add ); + if (serializationMode.HasFlag(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SerializationMode.IncludeReadOnly)) + { + AddIf( null != this._systemData ? (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode) this._systemData.ToJson(null,serializationMode) : null, "systemData" ,container.Add ); + } + AddIf( null != (((object)this._kind)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonString(this._kind.ToString()) : null, "kind" ,container.Add ); + AfterToJson(ref container); + return container; + } + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject instance to deserialize from. + internal Topic(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject json) + { + bool returnNow = false; + BeforeFromJson(json, ref returnNow); + if (returnNow) + { + return; + } + __trackedResource = new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.TrackedResource(json); + {_property = If( json?.PropertyT("properties"), out var __jsonProperties) ? Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.TopicProperties.FromJson(__jsonProperties) : Property;} + {_sku = If( json?.PropertyT("sku"), out var __jsonSku) ? Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ResourceSku.FromJson(__jsonSku) : Sku;} + {_identity = If( json?.PropertyT("identity"), out var __jsonIdentity) ? Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IdentityInfo.FromJson(__jsonIdentity) : Identity;} + {_extendedLocation = If( json?.PropertyT("extendedLocation"), out var __jsonExtendedLocation) ? Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ExtendedLocation.FromJson(__jsonExtendedLocation) : ExtendedLocation;} + {_systemData = If( json?.PropertyT("systemData"), out var __jsonSystemData) ? Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20.SystemData.FromJson(__jsonSystemData) : SystemData;} + {_kind = If( json?.PropertyT("kind"), out var __jsonKind) ? (string)__jsonKind : (string)Kind;} + AfterFromJson(json); + } + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/TopicProperties.PowerShell.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/TopicProperties.PowerShell.cs new file mode 100644 index 000000000000..6036dbaca2ea --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/TopicProperties.PowerShell.cs @@ -0,0 +1,222 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell; + + /// Properties of the Topic. + [System.ComponentModel.TypeConverter(typeof(TopicPropertiesTypeConverter))] + public partial class TopicProperties + { + + /// + /// AfterDeserializeDictionary will be called after the deserialization has finished, allowing customization of the + /// object before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Collections.IDictionary content that should be used. + + partial void AfterDeserializeDictionary(global::System.Collections.IDictionary content); + + /// + /// AfterDeserializePSObject will be called after the deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Management.Automation.PSObject content that should be used. + + partial void AfterDeserializePSObject(global::System.Management.Automation.PSObject content); + + /// + /// BeforeDeserializeDictionary will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Collections.IDictionary content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializeDictionary(global::System.Collections.IDictionary content, ref bool returnNow); + + /// + /// BeforeDeserializePSObject will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializePSObject(global::System.Management.Automation.PSObject content, ref bool returnNow); + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITopicProperties DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new TopicProperties(content); + } + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITopicProperties DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new TopicProperties(content); + } + + /// + /// Creates a new instance of , deserializing the content from a json string. + /// + /// a string containing a JSON serialized instance of this model. + /// an instance of the model class. + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITopicProperties FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode.Parse(jsonText)); + + /// Serializes this instance to a json string. + + /// a containing this model serialized to JSON text. + public string ToJsonString() => ToJson(null, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SerializationMode.IncludeAll)?.ToString(); + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + internal TopicProperties(global::System.Collections.IDictionary content) + { + bool returnNow = false; + BeforeDeserializeDictionary(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("InputSchemaMapping")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITopicPropertiesInternal)this).InputSchemaMapping = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IInputSchemaMapping) content.GetValueForProperty("InputSchemaMapping",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITopicPropertiesInternal)this).InputSchemaMapping, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.InputSchemaMappingTypeConverter.ConvertFrom); + } + if (content.Contains("PrivateEndpointConnection")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITopicPropertiesInternal)this).PrivateEndpointConnection = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPrivateEndpointConnection[]) content.GetValueForProperty("PrivateEndpointConnection",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITopicPropertiesInternal)this).PrivateEndpointConnection, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.PrivateEndpointConnectionTypeConverter.ConvertFrom)); + } + if (content.Contains("ProvisioningState")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITopicPropertiesInternal)this).ProvisioningState = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.TopicProvisioningState?) content.GetValueForProperty("ProvisioningState",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITopicPropertiesInternal)this).ProvisioningState, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.TopicProvisioningState.CreateFrom); + } + if (content.Contains("Endpoint")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITopicPropertiesInternal)this).Endpoint = (string) content.GetValueForProperty("Endpoint",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITopicPropertiesInternal)this).Endpoint, global::System.Convert.ToString); + } + if (content.Contains("InputSchema")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITopicPropertiesInternal)this).InputSchema = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.InputSchema?) content.GetValueForProperty("InputSchema",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITopicPropertiesInternal)this).InputSchema, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.InputSchema.CreateFrom); + } + if (content.Contains("MetricResourceId")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITopicPropertiesInternal)this).MetricResourceId = (string) content.GetValueForProperty("MetricResourceId",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITopicPropertiesInternal)this).MetricResourceId, global::System.Convert.ToString); + } + if (content.Contains("PublicNetworkAccess")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITopicPropertiesInternal)this).PublicNetworkAccess = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.PublicNetworkAccess?) content.GetValueForProperty("PublicNetworkAccess",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITopicPropertiesInternal)this).PublicNetworkAccess, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.PublicNetworkAccess.CreateFrom); + } + if (content.Contains("InboundIPRule")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITopicPropertiesInternal)this).InboundIPRule = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IInboundIPRule[]) content.GetValueForProperty("InboundIPRule",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITopicPropertiesInternal)this).InboundIPRule, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.InboundIPRuleTypeConverter.ConvertFrom)); + } + if (content.Contains("DisableLocalAuth")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITopicPropertiesInternal)this).DisableLocalAuth = (bool?) content.GetValueForProperty("DisableLocalAuth",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITopicPropertiesInternal)this).DisableLocalAuth, (__y)=> (bool) global::System.Convert.ChangeType(__y, typeof(bool))); + } + if (content.Contains("DataResidencyBoundary")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITopicPropertiesInternal)this).DataResidencyBoundary = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.DataResidencyBoundary?) content.GetValueForProperty("DataResidencyBoundary",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITopicPropertiesInternal)this).DataResidencyBoundary, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.DataResidencyBoundary.CreateFrom); + } + if (content.Contains("InputSchemaMappingInputSchemaMappingType")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITopicPropertiesInternal)this).InputSchemaMappingInputSchemaMappingType = (string) content.GetValueForProperty("InputSchemaMappingInputSchemaMappingType",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITopicPropertiesInternal)this).InputSchemaMappingInputSchemaMappingType, global::System.Convert.ToString); + } + AfterDeserializeDictionary(content); + } + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + internal TopicProperties(global::System.Management.Automation.PSObject content) + { + bool returnNow = false; + BeforeDeserializePSObject(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("InputSchemaMapping")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITopicPropertiesInternal)this).InputSchemaMapping = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IInputSchemaMapping) content.GetValueForProperty("InputSchemaMapping",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITopicPropertiesInternal)this).InputSchemaMapping, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.InputSchemaMappingTypeConverter.ConvertFrom); + } + if (content.Contains("PrivateEndpointConnection")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITopicPropertiesInternal)this).PrivateEndpointConnection = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPrivateEndpointConnection[]) content.GetValueForProperty("PrivateEndpointConnection",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITopicPropertiesInternal)this).PrivateEndpointConnection, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.PrivateEndpointConnectionTypeConverter.ConvertFrom)); + } + if (content.Contains("ProvisioningState")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITopicPropertiesInternal)this).ProvisioningState = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.TopicProvisioningState?) content.GetValueForProperty("ProvisioningState",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITopicPropertiesInternal)this).ProvisioningState, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.TopicProvisioningState.CreateFrom); + } + if (content.Contains("Endpoint")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITopicPropertiesInternal)this).Endpoint = (string) content.GetValueForProperty("Endpoint",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITopicPropertiesInternal)this).Endpoint, global::System.Convert.ToString); + } + if (content.Contains("InputSchema")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITopicPropertiesInternal)this).InputSchema = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.InputSchema?) content.GetValueForProperty("InputSchema",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITopicPropertiesInternal)this).InputSchema, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.InputSchema.CreateFrom); + } + if (content.Contains("MetricResourceId")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITopicPropertiesInternal)this).MetricResourceId = (string) content.GetValueForProperty("MetricResourceId",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITopicPropertiesInternal)this).MetricResourceId, global::System.Convert.ToString); + } + if (content.Contains("PublicNetworkAccess")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITopicPropertiesInternal)this).PublicNetworkAccess = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.PublicNetworkAccess?) content.GetValueForProperty("PublicNetworkAccess",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITopicPropertiesInternal)this).PublicNetworkAccess, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.PublicNetworkAccess.CreateFrom); + } + if (content.Contains("InboundIPRule")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITopicPropertiesInternal)this).InboundIPRule = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IInboundIPRule[]) content.GetValueForProperty("InboundIPRule",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITopicPropertiesInternal)this).InboundIPRule, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.InboundIPRuleTypeConverter.ConvertFrom)); + } + if (content.Contains("DisableLocalAuth")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITopicPropertiesInternal)this).DisableLocalAuth = (bool?) content.GetValueForProperty("DisableLocalAuth",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITopicPropertiesInternal)this).DisableLocalAuth, (__y)=> (bool) global::System.Convert.ChangeType(__y, typeof(bool))); + } + if (content.Contains("DataResidencyBoundary")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITopicPropertiesInternal)this).DataResidencyBoundary = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.DataResidencyBoundary?) content.GetValueForProperty("DataResidencyBoundary",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITopicPropertiesInternal)this).DataResidencyBoundary, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.DataResidencyBoundary.CreateFrom); + } + if (content.Contains("InputSchemaMappingInputSchemaMappingType")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITopicPropertiesInternal)this).InputSchemaMappingInputSchemaMappingType = (string) content.GetValueForProperty("InputSchemaMappingInputSchemaMappingType",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITopicPropertiesInternal)this).InputSchemaMappingInputSchemaMappingType, global::System.Convert.ToString); + } + AfterDeserializePSObject(content); + } + } + /// Properties of the Topic. + [System.ComponentModel.TypeConverter(typeof(TopicPropertiesTypeConverter))] + public partial interface ITopicProperties + + { + + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/TopicProperties.TypeConverter.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/TopicProperties.TypeConverter.cs new file mode 100644 index 000000000000..04e59edd9b24 --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/TopicProperties.TypeConverter.cs @@ -0,0 +1,146 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class TopicPropertiesTypeConverter : global::System.Management.Automation.PSTypeConverter + { + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false. + /// + public override bool CanConvertFrom(object sourceValue, global::System.Type destinationType) => CanConvertFrom(sourceValue); + + /// + /// Determines if the converter can convert the parameter to the . + /// + /// the instance to check if it can be converted to the type. + /// + /// true if the instance could be converted to a type, otherwise false + /// + public static bool CanConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return true; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + // we say yest to PSObjects + return true; + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + // we say yest to Hashtables/dictionaries + return true; + } + try + { + if (null != sourceValue.ToJsonString()) + { + return true; + } + } + catch + { + // Not one of our objects + } + try + { + string text = sourceValue.ToString()?.Trim(); + return true == text?.StartsWith("{") && true == text?.EndsWith("}") && Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonType.Object; + } + catch + { + // Doesn't look like it can be treated as JSON + } + return false; + } + + /// + /// Determines if the parameter can be converted to the parameter + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false + /// + public override bool CanConvertTo(object sourceValue, global::System.Type destinationType) => false; + + /// + /// Converts the parameter to the parameter using and + /// + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// + /// an instance of , or null if there is no suitable conversion. + /// + public override object ConvertFrom(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => ConvertFrom(sourceValue); + + /// + /// Converts the parameter to the parameter using and + /// + /// the value to convert into an instance of . + /// + /// an instance of , or null if there is no suitable conversion. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITopicProperties ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITopicProperties).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return TopicProperties.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return TopicProperties.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return TopicProperties.DeserializeFromDictionary(sourceValue); + } + return null; + } + + /// NotImplemented -- this will return null + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// will always return null. + public override object ConvertTo(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => null; + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/TopicProperties.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/TopicProperties.cs new file mode 100644 index 000000000000..e401cbda114f --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/TopicProperties.cs @@ -0,0 +1,270 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Extensions; + + /// Properties of the Topic. + public partial class TopicProperties : + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITopicProperties, + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITopicPropertiesInternal + { + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.DataResidencyBoundary? _dataResidencyBoundary; + + /// Data Residency Boundary of the resource. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Owned)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.DataResidencyBoundary? DataResidencyBoundary { get => this._dataResidencyBoundary; set => this._dataResidencyBoundary = value; } + + /// Backing field for property. + private bool? _disableLocalAuth; + + /// + /// This boolean is used to enable or disable local auth. Default value is false. When the property is set to true, only AAD + /// token will be used to authenticate if user is allowed to publish to the topic. + /// + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Owned)] + public bool? DisableLocalAuth { get => this._disableLocalAuth; set => this._disableLocalAuth = value; } + + /// Backing field for property. + private string _endpoint; + + /// Endpoint for the topic. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Owned)] + public string Endpoint { get => this._endpoint; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IInboundIPRule[] _inboundIPRule; + + /// + /// This can be used to restrict traffic from specific IPs instead of all IPs. Note: These are considered only if PublicNetworkAccess + /// is enabled. + /// + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Owned)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IInboundIPRule[] InboundIPRule { get => this._inboundIPRule; set => this._inboundIPRule = value; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.InputSchema? _inputSchema; + + /// + /// This determines the format that Event Grid should expect for incoming events published to the topic. + /// + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Owned)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.InputSchema? InputSchema { get => this._inputSchema; set => this._inputSchema = value; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IInputSchemaMapping _inputSchemaMapping; + + /// + /// This enables publishing using custom event schemas. An InputSchemaMapping can be specified to map various properties of + /// a source schema to various required properties of the EventGridEvent schema. + /// + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Owned)] + internal Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IInputSchemaMapping InputSchemaMapping { get => (this._inputSchemaMapping = this._inputSchemaMapping ?? new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.InputSchemaMapping()); set => this._inputSchemaMapping = value; } + + /// Type of the custom mapping + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Inlined)] + public string InputSchemaMappingInputSchemaMappingType { get => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IInputSchemaMappingInternal)InputSchemaMapping).Type; } + + /// Backing field for property. + private string _metricResourceId; + + /// Metric resource id for the topic. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Owned)] + public string MetricResourceId { get => this._metricResourceId; } + + /// Internal Acessors for Endpoint + string Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITopicPropertiesInternal.Endpoint { get => this._endpoint; set { {_endpoint = value;} } } + + /// Internal Acessors for InputSchemaMapping + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IInputSchemaMapping Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITopicPropertiesInternal.InputSchemaMapping { get => (this._inputSchemaMapping = this._inputSchemaMapping ?? new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.InputSchemaMapping()); set { {_inputSchemaMapping = value;} } } + + /// Internal Acessors for InputSchemaMappingInputSchemaMappingType + string Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITopicPropertiesInternal.InputSchemaMappingInputSchemaMappingType { get => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IInputSchemaMappingInternal)InputSchemaMapping).Type; set => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IInputSchemaMappingInternal)InputSchemaMapping).Type = value; } + + /// Internal Acessors for MetricResourceId + string Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITopicPropertiesInternal.MetricResourceId { get => this._metricResourceId; set { {_metricResourceId = value;} } } + + /// Internal Acessors for PrivateEndpointConnection + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPrivateEndpointConnection[] Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITopicPropertiesInternal.PrivateEndpointConnection { get => this._privateEndpointConnection; set { {_privateEndpointConnection = value;} } } + + /// Internal Acessors for ProvisioningState + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.TopicProvisioningState? Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITopicPropertiesInternal.ProvisioningState { get => this._provisioningState; set { {_provisioningState = value;} } } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPrivateEndpointConnection[] _privateEndpointConnection; + + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Owned)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPrivateEndpointConnection[] PrivateEndpointConnection { get => this._privateEndpointConnection; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.TopicProvisioningState? _provisioningState; + + /// Provisioning state of the topic. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Owned)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.TopicProvisioningState? ProvisioningState { get => this._provisioningState; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.PublicNetworkAccess? _publicNetworkAccess; + + /// + /// This determines if traffic is allowed over public network. By default it is enabled. + /// You can further restrict to specific IPs by configuring + /// + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Owned)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.PublicNetworkAccess? PublicNetworkAccess { get => this._publicNetworkAccess; set => this._publicNetworkAccess = value; } + + /// Creates an new instance. + public TopicProperties() + { + + } + } + /// Properties of the Topic. + public partial interface ITopicProperties : + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IJsonSerializable + { + /// Data Residency Boundary of the resource. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Data Residency Boundary of the resource.", + SerializedName = @"dataResidencyBoundary", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.DataResidencyBoundary) })] + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.DataResidencyBoundary? DataResidencyBoundary { get; set; } + /// + /// This boolean is used to enable or disable local auth. Default value is false. When the property is set to true, only AAD + /// token will be used to authenticate if user is allowed to publish to the topic. + /// + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"This boolean is used to enable or disable local auth. Default value is false. When the property is set to true, only AAD token will be used to authenticate if user is allowed to publish to the topic.", + SerializedName = @"disableLocalAuth", + PossibleTypes = new [] { typeof(bool) })] + bool? DisableLocalAuth { get; set; } + /// Endpoint for the topic. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"Endpoint for the topic.", + SerializedName = @"endpoint", + PossibleTypes = new [] { typeof(string) })] + string Endpoint { get; } + /// + /// This can be used to restrict traffic from specific IPs instead of all IPs. Note: These are considered only if PublicNetworkAccess + /// is enabled. + /// + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"This can be used to restrict traffic from specific IPs instead of all IPs. Note: These are considered only if PublicNetworkAccess is enabled.", + SerializedName = @"inboundIpRules", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IInboundIPRule) })] + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IInboundIPRule[] InboundIPRule { get; set; } + /// + /// This determines the format that Event Grid should expect for incoming events published to the topic. + /// + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"This determines the format that Event Grid should expect for incoming events published to the topic.", + SerializedName = @"inputSchema", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.InputSchema) })] + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.InputSchema? InputSchema { get; set; } + /// Type of the custom mapping + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"Type of the custom mapping", + SerializedName = @"inputSchemaMappingType", + PossibleTypes = new [] { typeof(string) })] + string InputSchemaMappingInputSchemaMappingType { get; } + /// Metric resource id for the topic. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"Metric resource id for the topic.", + SerializedName = @"metricResourceId", + PossibleTypes = new [] { typeof(string) })] + string MetricResourceId { get; } + + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"", + SerializedName = @"privateEndpointConnections", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPrivateEndpointConnection) })] + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPrivateEndpointConnection[] PrivateEndpointConnection { get; } + /// Provisioning state of the topic. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"Provisioning state of the topic.", + SerializedName = @"provisioningState", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.TopicProvisioningState) })] + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.TopicProvisioningState? ProvisioningState { get; } + /// + /// This determines if traffic is allowed over public network. By default it is enabled. + /// You can further restrict to specific IPs by configuring + /// + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"This determines if traffic is allowed over public network. By default it is enabled. + You can further restrict to specific IPs by configuring ", + SerializedName = @"publicNetworkAccess", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.PublicNetworkAccess) })] + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.PublicNetworkAccess? PublicNetworkAccess { get; set; } + + } + /// Properties of the Topic. + internal partial interface ITopicPropertiesInternal + + { + /// Data Residency Boundary of the resource. + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.DataResidencyBoundary? DataResidencyBoundary { get; set; } + /// + /// This boolean is used to enable or disable local auth. Default value is false. When the property is set to true, only AAD + /// token will be used to authenticate if user is allowed to publish to the topic. + /// + bool? DisableLocalAuth { get; set; } + /// Endpoint for the topic. + string Endpoint { get; set; } + /// + /// This can be used to restrict traffic from specific IPs instead of all IPs. Note: These are considered only if PublicNetworkAccess + /// is enabled. + /// + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IInboundIPRule[] InboundIPRule { get; set; } + /// + /// This determines the format that Event Grid should expect for incoming events published to the topic. + /// + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.InputSchema? InputSchema { get; set; } + /// + /// This enables publishing using custom event schemas. An InputSchemaMapping can be specified to map various properties of + /// a source schema to various required properties of the EventGridEvent schema. + /// + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IInputSchemaMapping InputSchemaMapping { get; set; } + /// Type of the custom mapping + string InputSchemaMappingInputSchemaMappingType { get; set; } + /// Metric resource id for the topic. + string MetricResourceId { get; set; } + + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPrivateEndpointConnection[] PrivateEndpointConnection { get; set; } + /// Provisioning state of the topic. + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.TopicProvisioningState? ProvisioningState { get; set; } + /// + /// This determines if traffic is allowed over public network. By default it is enabled. + /// You can further restrict to specific IPs by configuring + /// + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.PublicNetworkAccess? PublicNetworkAccess { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/TopicProperties.json.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/TopicProperties.json.cs new file mode 100644 index 000000000000..b56406225148 --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/TopicProperties.json.cs @@ -0,0 +1,152 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Extensions; + + /// Properties of the Topic. + public partial class TopicProperties + { + + /// + /// AfterFromJson will be called after the json deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JsonNode that should be deserialized into this object. + + partial void AfterFromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json erialization has finished, allowing customization of the before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JSON container that the serialization result will be placed in. + + partial void AfterToJson(ref Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject container); + + /// + /// BeforeFromJson will be called before the json deserialization has commenced, allowing complete customization of + /// the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JsonNode that should be deserialized into this object. + /// Determines if the rest of the deserialization should be processed, or if the method should return + /// instantly. + + partial void BeforeFromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject json, ref bool returnNow); + + /// + /// BeforeToJson will be called before the json serialization has commenced, allowing complete customization of the + /// object before it is serialized. + /// If you wish to disable the default serialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JSON container that the serialization result will be placed in. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeToJson(ref Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITopicProperties. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITopicProperties. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITopicProperties FromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject json ? new TopicProperties(json) : null; + } + + /// + /// Serializes this instance of into a . + /// + /// The container to serialize this object into. If the caller + /// passes in null, a new instance will be created and returned to the caller. + /// Allows the caller to choose the depth of the serialization. See . + /// + /// a serialized instance of as a . + /// + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject(); + + bool returnNow = false; + BeforeToJson(ref container, ref returnNow); + if (returnNow) + { + return container; + } + AddIf( null != this._inputSchemaMapping ? (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode) this._inputSchemaMapping.ToJson(null,serializationMode) : null, "inputSchemaMapping" ,container.Add ); + if (serializationMode.HasFlag(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SerializationMode.IncludeReadOnly)) + { + if (null != this._privateEndpointConnection) + { + var __w = new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.XNodeArray(); + foreach( var __x in this._privateEndpointConnection ) + { + AddIf(__x?.ToJson(null, serializationMode) ,__w.Add); + } + container.Add("privateEndpointConnections",__w); + } + } + if (serializationMode.HasFlag(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SerializationMode.IncludeReadOnly)) + { + AddIf( null != (((object)this._provisioningState)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonString(this._provisioningState.ToString()) : null, "provisioningState" ,container.Add ); + } + if (serializationMode.HasFlag(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SerializationMode.IncludeReadOnly)) + { + AddIf( null != (((object)this._endpoint)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonString(this._endpoint.ToString()) : null, "endpoint" ,container.Add ); + } + AddIf( null != (((object)this._inputSchema)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonString(this._inputSchema.ToString()) : null, "inputSchema" ,container.Add ); + if (serializationMode.HasFlag(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SerializationMode.IncludeReadOnly)) + { + AddIf( null != (((object)this._metricResourceId)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonString(this._metricResourceId.ToString()) : null, "metricResourceId" ,container.Add ); + } + AddIf( null != (((object)this._publicNetworkAccess)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonString(this._publicNetworkAccess.ToString()) : null, "publicNetworkAccess" ,container.Add ); + if (null != this._inboundIPRule) + { + var __r = new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.XNodeArray(); + foreach( var __s in this._inboundIPRule ) + { + AddIf(__s?.ToJson(null, serializationMode) ,__r.Add); + } + container.Add("inboundIpRules",__r); + } + AddIf( null != this._disableLocalAuth ? (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode)new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonBoolean((bool)this._disableLocalAuth) : null, "disableLocalAuth" ,container.Add ); + AddIf( null != (((object)this._dataResidencyBoundary)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonString(this._dataResidencyBoundary.ToString()) : null, "dataResidencyBoundary" ,container.Add ); + AfterToJson(ref container); + return container; + } + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject instance to deserialize from. + internal TopicProperties(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject json) + { + bool returnNow = false; + BeforeFromJson(json, ref returnNow); + if (returnNow) + { + return; + } + {_inputSchemaMapping = If( json?.PropertyT("inputSchemaMapping"), out var __jsonInputSchemaMapping) ? Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.InputSchemaMapping.FromJson(__jsonInputSchemaMapping) : InputSchemaMapping;} + {_privateEndpointConnection = If( json?.PropertyT("privateEndpointConnections"), out var __jsonPrivateEndpointConnections) ? If( __jsonPrivateEndpointConnections as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Models.Api20211015Preview.IPrivateEndpointConnection) (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.PrivateEndpointConnection.FromJson(__u) )) ))() : null : PrivateEndpointConnection;} + {_provisioningState = If( json?.PropertyT("provisioningState"), out var __jsonProvisioningState) ? (string)__jsonProvisioningState : (string)ProvisioningState;} + {_endpoint = If( json?.PropertyT("endpoint"), out var __jsonEndpoint) ? (string)__jsonEndpoint : (string)Endpoint;} + {_inputSchema = If( json?.PropertyT("inputSchema"), out var __jsonInputSchema) ? (string)__jsonInputSchema : (string)InputSchema;} + {_metricResourceId = If( json?.PropertyT("metricResourceId"), out var __jsonMetricResourceId) ? (string)__jsonMetricResourceId : (string)MetricResourceId;} + {_publicNetworkAccess = If( json?.PropertyT("publicNetworkAccess"), out var __jsonPublicNetworkAccess) ? (string)__jsonPublicNetworkAccess : (string)PublicNetworkAccess;} + {_inboundIPRule = If( json?.PropertyT("inboundIpRules"), out var __jsonInboundIPRules) ? If( __jsonInboundIPRules as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Models.Api20211015Preview.IInboundIPRule) (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.InboundIPRule.FromJson(__p) )) ))() : null : InboundIPRule;} + {_disableLocalAuth = If( json?.PropertyT("disableLocalAuth"), out var __jsonDisableLocalAuth) ? (bool?)__jsonDisableLocalAuth : DisableLocalAuth;} + {_dataResidencyBoundary = If( json?.PropertyT("dataResidencyBoundary"), out var __jsonDataResidencyBoundary) ? (string)__jsonDataResidencyBoundary : (string)DataResidencyBoundary;} + AfterFromJson(json); + } + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/TopicRegenerateKeyRequest.PowerShell.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/TopicRegenerateKeyRequest.PowerShell.cs new file mode 100644 index 000000000000..b21e84a272b2 --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/TopicRegenerateKeyRequest.PowerShell.cs @@ -0,0 +1,144 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell; + + /// Topic regenerate share access key request + [System.ComponentModel.TypeConverter(typeof(TopicRegenerateKeyRequestTypeConverter))] + public partial class TopicRegenerateKeyRequest + { + + /// + /// AfterDeserializeDictionary will be called after the deserialization has finished, allowing customization of the + /// object before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Collections.IDictionary content that should be used. + + partial void AfterDeserializeDictionary(global::System.Collections.IDictionary content); + + /// + /// AfterDeserializePSObject will be called after the deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Management.Automation.PSObject content that should be used. + + partial void AfterDeserializePSObject(global::System.Management.Automation.PSObject content); + + /// + /// BeforeDeserializeDictionary will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Collections.IDictionary content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializeDictionary(global::System.Collections.IDictionary content, ref bool returnNow); + + /// + /// BeforeDeserializePSObject will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializePSObject(global::System.Management.Automation.PSObject content, ref bool returnNow); + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITopicRegenerateKeyRequest DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new TopicRegenerateKeyRequest(content); + } + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITopicRegenerateKeyRequest DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new TopicRegenerateKeyRequest(content); + } + + /// + /// Creates a new instance of , deserializing the content from a json string. + /// + /// a string containing a JSON serialized instance of this model. + /// an instance of the model class. + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITopicRegenerateKeyRequest FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode.Parse(jsonText)); + + /// Serializes this instance to a json string. + + /// a containing this model serialized to JSON text. + public string ToJsonString() => ToJson(null, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SerializationMode.IncludeAll)?.ToString(); + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + internal TopicRegenerateKeyRequest(global::System.Collections.IDictionary content) + { + bool returnNow = false; + BeforeDeserializeDictionary(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("KeyName")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITopicRegenerateKeyRequestInternal)this).KeyName = (string) content.GetValueForProperty("KeyName",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITopicRegenerateKeyRequestInternal)this).KeyName, global::System.Convert.ToString); + } + AfterDeserializeDictionary(content); + } + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + internal TopicRegenerateKeyRequest(global::System.Management.Automation.PSObject content) + { + bool returnNow = false; + BeforeDeserializePSObject(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("KeyName")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITopicRegenerateKeyRequestInternal)this).KeyName = (string) content.GetValueForProperty("KeyName",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITopicRegenerateKeyRequestInternal)this).KeyName, global::System.Convert.ToString); + } + AfterDeserializePSObject(content); + } + } + /// Topic regenerate share access key request + [System.ComponentModel.TypeConverter(typeof(TopicRegenerateKeyRequestTypeConverter))] + public partial interface ITopicRegenerateKeyRequest + + { + + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/TopicRegenerateKeyRequest.TypeConverter.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/TopicRegenerateKeyRequest.TypeConverter.cs new file mode 100644 index 000000000000..d3c0bb4f98f5 --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/TopicRegenerateKeyRequest.TypeConverter.cs @@ -0,0 +1,147 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class TopicRegenerateKeyRequestTypeConverter : global::System.Management.Automation.PSTypeConverter + { + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false. + /// + public override bool CanConvertFrom(object sourceValue, global::System.Type destinationType) => CanConvertFrom(sourceValue); + + /// + /// Determines if the converter can convert the parameter to the . + /// + /// the instance to check if it can be converted to the type. + /// + /// true if the instance could be converted to a type, otherwise false + /// + public static bool CanConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return true; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + // we say yest to PSObjects + return true; + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + // we say yest to Hashtables/dictionaries + return true; + } + try + { + if (null != sourceValue.ToJsonString()) + { + return true; + } + } + catch + { + // Not one of our objects + } + try + { + string text = sourceValue.ToString()?.Trim(); + return true == text?.StartsWith("{") && true == text?.EndsWith("}") && Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonType.Object; + } + catch + { + // Doesn't look like it can be treated as JSON + } + return false; + } + + /// + /// Determines if the parameter can be converted to the parameter + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false + /// + public override bool CanConvertTo(object sourceValue, global::System.Type destinationType) => false; + + /// + /// Converts the parameter to the parameter using and + /// + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// + /// an instance of , or null if there is no suitable conversion. + /// + public override object ConvertFrom(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => ConvertFrom(sourceValue); + + /// + /// Converts the parameter to the parameter using and + /// + /// the value to convert into an instance of . + /// + /// an instance of , or null if there is no suitable conversion. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITopicRegenerateKeyRequest ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITopicRegenerateKeyRequest).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return TopicRegenerateKeyRequest.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return TopicRegenerateKeyRequest.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return TopicRegenerateKeyRequest.DeserializeFromDictionary(sourceValue); + } + return null; + } + + /// NotImplemented -- this will return null + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// will always return null. + public override object ConvertTo(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => null; + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/TopicRegenerateKeyRequest.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/TopicRegenerateKeyRequest.cs new file mode 100644 index 000000000000..27c19d8a1723 --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/TopicRegenerateKeyRequest.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.EventGrid.Models.Api20211015Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Extensions; + + /// Topic regenerate share access key request + public partial class TopicRegenerateKeyRequest : + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITopicRegenerateKeyRequest, + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITopicRegenerateKeyRequestInternal + { + + /// Backing field for property. + private string _keyName; + + /// Key name to regenerate key1 or key2 + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Owned)] + public string KeyName { get => this._keyName; set => this._keyName = value; } + + /// Creates an new instance. + public TopicRegenerateKeyRequest() + { + + } + } + /// Topic regenerate share access key request + public partial interface ITopicRegenerateKeyRequest : + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IJsonSerializable + { + /// Key name to regenerate key1 or key2 + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Key name to regenerate key1 or key2", + SerializedName = @"keyName", + PossibleTypes = new [] { typeof(string) })] + string KeyName { get; set; } + + } + /// Topic regenerate share access key request + internal partial interface ITopicRegenerateKeyRequestInternal + + { + /// Key name to regenerate key1 or key2 + string KeyName { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/TopicRegenerateKeyRequest.json.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/TopicRegenerateKeyRequest.json.cs new file mode 100644 index 000000000000..6760927af66d --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/TopicRegenerateKeyRequest.json.cs @@ -0,0 +1,106 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Extensions; + + /// Topic regenerate share access key request + public partial class TopicRegenerateKeyRequest + { + + /// + /// AfterFromJson will be called after the json deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JsonNode that should be deserialized into this object. + + partial void AfterFromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json erialization has finished, allowing customization of the before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JSON container that the serialization result will be placed in. + + partial void AfterToJson(ref Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject container); + + /// + /// BeforeFromJson will be called before the json deserialization has commenced, allowing complete customization of + /// the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JsonNode that should be deserialized into this object. + /// Determines if the rest of the deserialization should be processed, or if the method should return + /// instantly. + + partial void BeforeFromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject json, ref bool returnNow); + + /// + /// BeforeToJson will be called before the json serialization has commenced, allowing complete customization of the + /// object before it is serialized. + /// If you wish to disable the default serialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JSON container that the serialization result will be placed in. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeToJson(ref Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITopicRegenerateKeyRequest. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITopicRegenerateKeyRequest. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITopicRegenerateKeyRequest FromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject json ? new TopicRegenerateKeyRequest(json) : null; + } + + /// + /// Serializes this instance of into a . + /// + /// The container to serialize this object into. If the caller + /// passes in null, a new instance will be created and returned to the caller. + /// Allows the caller to choose the depth of the serialization. See . + /// + /// a serialized instance of as a . + /// + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject(); + + bool returnNow = false; + BeforeToJson(ref container, ref returnNow); + if (returnNow) + { + return container; + } + AddIf( null != (((object)this._keyName)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonString(this._keyName.ToString()) : null, "keyName" ,container.Add ); + AfterToJson(ref container); + return container; + } + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject instance to deserialize from. + internal TopicRegenerateKeyRequest(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject json) + { + bool returnNow = false; + BeforeFromJson(json, ref returnNow); + if (returnNow) + { + return; + } + {_keyName = If( json?.PropertyT("keyName"), out var __jsonKeyName) ? (string)__jsonKeyName : (string)KeyName;} + AfterFromJson(json); + } + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/TopicSharedAccessKeys.PowerShell.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/TopicSharedAccessKeys.PowerShell.cs new file mode 100644 index 000000000000..0edb5465ba10 --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/TopicSharedAccessKeys.PowerShell.cs @@ -0,0 +1,152 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell; + + /// Shared access keys of the Topic + [System.ComponentModel.TypeConverter(typeof(TopicSharedAccessKeysTypeConverter))] + public partial class TopicSharedAccessKeys + { + + /// + /// AfterDeserializeDictionary will be called after the deserialization has finished, allowing customization of the + /// object before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Collections.IDictionary content that should be used. + + partial void AfterDeserializeDictionary(global::System.Collections.IDictionary content); + + /// + /// AfterDeserializePSObject will be called after the deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Management.Automation.PSObject content that should be used. + + partial void AfterDeserializePSObject(global::System.Management.Automation.PSObject content); + + /// + /// BeforeDeserializeDictionary will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Collections.IDictionary content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializeDictionary(global::System.Collections.IDictionary content, ref bool returnNow); + + /// + /// BeforeDeserializePSObject will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializePSObject(global::System.Management.Automation.PSObject content, ref bool returnNow); + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITopicSharedAccessKeys DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new TopicSharedAccessKeys(content); + } + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITopicSharedAccessKeys DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new TopicSharedAccessKeys(content); + } + + /// + /// Creates a new instance of , deserializing the content from a json string. + /// + /// a string containing a JSON serialized instance of this model. + /// an instance of the model class. + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITopicSharedAccessKeys FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode.Parse(jsonText)); + + /// Serializes this instance to a json string. + + /// a containing this model serialized to JSON text. + public string ToJsonString() => ToJson(null, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SerializationMode.IncludeAll)?.ToString(); + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + internal TopicSharedAccessKeys(global::System.Collections.IDictionary content) + { + bool returnNow = false; + BeforeDeserializeDictionary(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("Key1")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITopicSharedAccessKeysInternal)this).Key1 = (string) content.GetValueForProperty("Key1",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITopicSharedAccessKeysInternal)this).Key1, global::System.Convert.ToString); + } + if (content.Contains("Key2")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITopicSharedAccessKeysInternal)this).Key2 = (string) content.GetValueForProperty("Key2",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITopicSharedAccessKeysInternal)this).Key2, global::System.Convert.ToString); + } + AfterDeserializeDictionary(content); + } + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + internal TopicSharedAccessKeys(global::System.Management.Automation.PSObject content) + { + bool returnNow = false; + BeforeDeserializePSObject(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("Key1")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITopicSharedAccessKeysInternal)this).Key1 = (string) content.GetValueForProperty("Key1",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITopicSharedAccessKeysInternal)this).Key1, global::System.Convert.ToString); + } + if (content.Contains("Key2")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITopicSharedAccessKeysInternal)this).Key2 = (string) content.GetValueForProperty("Key2",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITopicSharedAccessKeysInternal)this).Key2, global::System.Convert.ToString); + } + AfterDeserializePSObject(content); + } + } + /// Shared access keys of the Topic + [System.ComponentModel.TypeConverter(typeof(TopicSharedAccessKeysTypeConverter))] + public partial interface ITopicSharedAccessKeys + + { + + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/TopicSharedAccessKeys.TypeConverter.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/TopicSharedAccessKeys.TypeConverter.cs new file mode 100644 index 000000000000..79b6aa29ad8c --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/TopicSharedAccessKeys.TypeConverter.cs @@ -0,0 +1,147 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class TopicSharedAccessKeysTypeConverter : global::System.Management.Automation.PSTypeConverter + { + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false. + /// + public override bool CanConvertFrom(object sourceValue, global::System.Type destinationType) => CanConvertFrom(sourceValue); + + /// + /// Determines if the converter can convert the parameter to the . + /// + /// the instance to check if it can be converted to the type. + /// + /// true if the instance could be converted to a type, otherwise false + /// + public static bool CanConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return true; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + // we say yest to PSObjects + return true; + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + // we say yest to Hashtables/dictionaries + return true; + } + try + { + if (null != sourceValue.ToJsonString()) + { + return true; + } + } + catch + { + // Not one of our objects + } + try + { + string text = sourceValue.ToString()?.Trim(); + return true == text?.StartsWith("{") && true == text?.EndsWith("}") && Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonType.Object; + } + catch + { + // Doesn't look like it can be treated as JSON + } + return false; + } + + /// + /// Determines if the parameter can be converted to the parameter + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false + /// + public override bool CanConvertTo(object sourceValue, global::System.Type destinationType) => false; + + /// + /// Converts the parameter to the parameter using and + /// + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// + /// an instance of , or null if there is no suitable conversion. + /// + public override object ConvertFrom(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => ConvertFrom(sourceValue); + + /// + /// Converts the parameter to the parameter using and + /// + /// the value to convert into an instance of . + /// + /// an instance of , or null if there is no suitable conversion. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITopicSharedAccessKeys ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITopicSharedAccessKeys).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return TopicSharedAccessKeys.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return TopicSharedAccessKeys.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return TopicSharedAccessKeys.DeserializeFromDictionary(sourceValue); + } + return null; + } + + /// NotImplemented -- this will return null + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// will always return null. + public override object ConvertTo(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => null; + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/TopicSharedAccessKeys.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/TopicSharedAccessKeys.cs new file mode 100644 index 000000000000..521a2054553e --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/TopicSharedAccessKeys.cs @@ -0,0 +1,68 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Extensions; + + /// Shared access keys of the Topic + public partial class TopicSharedAccessKeys : + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITopicSharedAccessKeys, + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITopicSharedAccessKeysInternal + { + + /// Backing field for property. + private string _key1; + + /// Shared access key1 for the topic. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Owned)] + public string Key1 { get => this._key1; set => this._key1 = value; } + + /// Backing field for property. + private string _key2; + + /// Shared access key2 for the topic. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Owned)] + public string Key2 { get => this._key2; set => this._key2 = value; } + + /// Creates an new instance. + public TopicSharedAccessKeys() + { + + } + } + /// Shared access keys of the Topic + public partial interface ITopicSharedAccessKeys : + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IJsonSerializable + { + /// Shared access key1 for the topic. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Shared access key1 for the topic.", + SerializedName = @"key1", + PossibleTypes = new [] { typeof(string) })] + string Key1 { get; set; } + /// Shared access key2 for the topic. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Shared access key2 for the topic.", + SerializedName = @"key2", + PossibleTypes = new [] { typeof(string) })] + string Key2 { get; set; } + + } + /// Shared access keys of the Topic + internal partial interface ITopicSharedAccessKeysInternal + + { + /// Shared access key1 for the topic. + string Key1 { get; set; } + /// Shared access key2 for the topic. + string Key2 { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/TopicSharedAccessKeys.json.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/TopicSharedAccessKeys.json.cs new file mode 100644 index 000000000000..5de921a74010 --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/TopicSharedAccessKeys.json.cs @@ -0,0 +1,108 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Extensions; + + /// Shared access keys of the Topic + public partial class TopicSharedAccessKeys + { + + /// + /// AfterFromJson will be called after the json deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JsonNode that should be deserialized into this object. + + partial void AfterFromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json erialization has finished, allowing customization of the before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JSON container that the serialization result will be placed in. + + partial void AfterToJson(ref Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject container); + + /// + /// BeforeFromJson will be called before the json deserialization has commenced, allowing complete customization of + /// the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JsonNode that should be deserialized into this object. + /// Determines if the rest of the deserialization should be processed, or if the method should return + /// instantly. + + partial void BeforeFromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject json, ref bool returnNow); + + /// + /// BeforeToJson will be called before the json serialization has commenced, allowing complete customization of the + /// object before it is serialized. + /// If you wish to disable the default serialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JSON container that the serialization result will be placed in. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeToJson(ref Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITopicSharedAccessKeys. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITopicSharedAccessKeys. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITopicSharedAccessKeys FromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject json ? new TopicSharedAccessKeys(json) : null; + } + + /// + /// Serializes this instance of into a . + /// + /// The container to serialize this object into. If the caller + /// passes in null, a new instance will be created and returned to the caller. + /// Allows the caller to choose the depth of the serialization. See . + /// + /// a serialized instance of as a . + /// + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject(); + + bool returnNow = false; + BeforeToJson(ref container, ref returnNow); + if (returnNow) + { + return container; + } + AddIf( null != (((object)this._key1)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonString(this._key1.ToString()) : null, "key1" ,container.Add ); + AddIf( null != (((object)this._key2)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonString(this._key2.ToString()) : null, "key2" ,container.Add ); + AfterToJson(ref container); + return container; + } + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject instance to deserialize from. + internal TopicSharedAccessKeys(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject json) + { + bool returnNow = false; + BeforeFromJson(json, ref returnNow); + if (returnNow) + { + return; + } + {_key1 = If( json?.PropertyT("key1"), out var __jsonKey1) ? (string)__jsonKey1 : (string)Key1;} + {_key2 = If( json?.PropertyT("key2"), out var __jsonKey2) ? (string)__jsonKey2 : (string)Key2;} + AfterFromJson(json); + } + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/TopicTypeInfo.PowerShell.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/TopicTypeInfo.PowerShell.cs new file mode 100644 index 000000000000..3b30636e7d19 --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/TopicTypeInfo.PowerShell.cs @@ -0,0 +1,230 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell; + + /// Properties of a topic type info. + [System.ComponentModel.TypeConverter(typeof(TopicTypeInfoTypeConverter))] + public partial class TopicTypeInfo + { + + /// + /// AfterDeserializeDictionary will be called after the deserialization has finished, allowing customization of the + /// object before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Collections.IDictionary content that should be used. + + partial void AfterDeserializeDictionary(global::System.Collections.IDictionary content); + + /// + /// AfterDeserializePSObject will be called after the deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Management.Automation.PSObject content that should be used. + + partial void AfterDeserializePSObject(global::System.Management.Automation.PSObject content); + + /// + /// BeforeDeserializeDictionary will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Collections.IDictionary content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializeDictionary(global::System.Collections.IDictionary content, ref bool returnNow); + + /// + /// BeforeDeserializePSObject will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializePSObject(global::System.Management.Automation.PSObject content, ref bool returnNow); + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITopicTypeInfo DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new TopicTypeInfo(content); + } + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITopicTypeInfo DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new TopicTypeInfo(content); + } + + /// + /// Creates a new instance of , deserializing the content from a json string. + /// + /// a string containing a JSON serialized instance of this model. + /// an instance of the model class. + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITopicTypeInfo FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode.Parse(jsonText)); + + /// Serializes this instance to a json string. + + /// a containing this model serialized to JSON text. + public string ToJsonString() => ToJson(null, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SerializationMode.IncludeAll)?.ToString(); + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + internal TopicTypeInfo(global::System.Collections.IDictionary content) + { + bool returnNow = false; + BeforeDeserializeDictionary(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("Property")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITopicTypeInfoInternal)this).Property = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITopicTypeProperties) content.GetValueForProperty("Property",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITopicTypeInfoInternal)this).Property, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.TopicTypePropertiesTypeConverter.ConvertFrom); + } + if (content.Contains("Id")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IResourceInternal)this).Id = (string) content.GetValueForProperty("Id",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IResourceInternal)this).Id, global::System.Convert.ToString); + } + if (content.Contains("Name")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IResourceInternal)this).Name = (string) content.GetValueForProperty("Name",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IResourceInternal)this).Name, global::System.Convert.ToString); + } + if (content.Contains("Type")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IResourceInternal)this).Type = (string) content.GetValueForProperty("Type",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IResourceInternal)this).Type, global::System.Convert.ToString); + } + if (content.Contains("Provider")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITopicTypeInfoInternal)this).Provider = (string) content.GetValueForProperty("Provider",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITopicTypeInfoInternal)this).Provider, global::System.Convert.ToString); + } + if (content.Contains("DisplayName")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITopicTypeInfoInternal)this).DisplayName = (string) content.GetValueForProperty("DisplayName",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITopicTypeInfoInternal)this).DisplayName, global::System.Convert.ToString); + } + if (content.Contains("Description")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITopicTypeInfoInternal)this).Description = (string) content.GetValueForProperty("Description",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITopicTypeInfoInternal)this).Description, global::System.Convert.ToString); + } + if (content.Contains("ResourceRegionType")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITopicTypeInfoInternal)this).ResourceRegionType = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.ResourceRegionType?) content.GetValueForProperty("ResourceRegionType",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITopicTypeInfoInternal)this).ResourceRegionType, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.ResourceRegionType.CreateFrom); + } + if (content.Contains("ProvisioningState")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITopicTypeInfoInternal)this).ProvisioningState = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.TopicTypeProvisioningState?) content.GetValueForProperty("ProvisioningState",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITopicTypeInfoInternal)this).ProvisioningState, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.TopicTypeProvisioningState.CreateFrom); + } + if (content.Contains("SupportedLocation")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITopicTypeInfoInternal)this).SupportedLocation = (string[]) content.GetValueForProperty("SupportedLocation",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITopicTypeInfoInternal)this).SupportedLocation, __y => TypeConverterExtensions.SelectToArray(__y, global::System.Convert.ToString)); + } + if (content.Contains("SourceResourceFormat")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITopicTypeInfoInternal)this).SourceResourceFormat = (string) content.GetValueForProperty("SourceResourceFormat",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITopicTypeInfoInternal)this).SourceResourceFormat, global::System.Convert.ToString); + } + if (content.Contains("SupportedScopesForSource")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITopicTypeInfoInternal)this).SupportedScopesForSource = (string[]) content.GetValueForProperty("SupportedScopesForSource",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITopicTypeInfoInternal)this).SupportedScopesForSource, __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 TopicTypeInfo(global::System.Management.Automation.PSObject content) + { + bool returnNow = false; + BeforeDeserializePSObject(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("Property")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITopicTypeInfoInternal)this).Property = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITopicTypeProperties) content.GetValueForProperty("Property",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITopicTypeInfoInternal)this).Property, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.TopicTypePropertiesTypeConverter.ConvertFrom); + } + if (content.Contains("Id")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IResourceInternal)this).Id = (string) content.GetValueForProperty("Id",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IResourceInternal)this).Id, global::System.Convert.ToString); + } + if (content.Contains("Name")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IResourceInternal)this).Name = (string) content.GetValueForProperty("Name",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IResourceInternal)this).Name, global::System.Convert.ToString); + } + if (content.Contains("Type")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IResourceInternal)this).Type = (string) content.GetValueForProperty("Type",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IResourceInternal)this).Type, global::System.Convert.ToString); + } + if (content.Contains("Provider")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITopicTypeInfoInternal)this).Provider = (string) content.GetValueForProperty("Provider",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITopicTypeInfoInternal)this).Provider, global::System.Convert.ToString); + } + if (content.Contains("DisplayName")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITopicTypeInfoInternal)this).DisplayName = (string) content.GetValueForProperty("DisplayName",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITopicTypeInfoInternal)this).DisplayName, global::System.Convert.ToString); + } + if (content.Contains("Description")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITopicTypeInfoInternal)this).Description = (string) content.GetValueForProperty("Description",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITopicTypeInfoInternal)this).Description, global::System.Convert.ToString); + } + if (content.Contains("ResourceRegionType")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITopicTypeInfoInternal)this).ResourceRegionType = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.ResourceRegionType?) content.GetValueForProperty("ResourceRegionType",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITopicTypeInfoInternal)this).ResourceRegionType, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.ResourceRegionType.CreateFrom); + } + if (content.Contains("ProvisioningState")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITopicTypeInfoInternal)this).ProvisioningState = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.TopicTypeProvisioningState?) content.GetValueForProperty("ProvisioningState",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITopicTypeInfoInternal)this).ProvisioningState, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.TopicTypeProvisioningState.CreateFrom); + } + if (content.Contains("SupportedLocation")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITopicTypeInfoInternal)this).SupportedLocation = (string[]) content.GetValueForProperty("SupportedLocation",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITopicTypeInfoInternal)this).SupportedLocation, __y => TypeConverterExtensions.SelectToArray(__y, global::System.Convert.ToString)); + } + if (content.Contains("SourceResourceFormat")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITopicTypeInfoInternal)this).SourceResourceFormat = (string) content.GetValueForProperty("SourceResourceFormat",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITopicTypeInfoInternal)this).SourceResourceFormat, global::System.Convert.ToString); + } + if (content.Contains("SupportedScopesForSource")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITopicTypeInfoInternal)this).SupportedScopesForSource = (string[]) content.GetValueForProperty("SupportedScopesForSource",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITopicTypeInfoInternal)this).SupportedScopesForSource, __y => TypeConverterExtensions.SelectToArray(__y, global::System.Convert.ToString)); + } + AfterDeserializePSObject(content); + } + } + /// Properties of a topic type info. + [System.ComponentModel.TypeConverter(typeof(TopicTypeInfoTypeConverter))] + public partial interface ITopicTypeInfo + + { + + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/TopicTypeInfo.TypeConverter.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/TopicTypeInfo.TypeConverter.cs new file mode 100644 index 000000000000..099d8467508c --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/TopicTypeInfo.TypeConverter.cs @@ -0,0 +1,146 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class TopicTypeInfoTypeConverter : global::System.Management.Automation.PSTypeConverter + { + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false. + /// + public override bool CanConvertFrom(object sourceValue, global::System.Type destinationType) => CanConvertFrom(sourceValue); + + /// + /// Determines if the converter can convert the parameter to the . + /// + /// the instance to check if it can be converted to the type. + /// + /// true if the instance could be converted to a type, otherwise false + /// + public static bool CanConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return true; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + // we say yest to PSObjects + return true; + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + // we say yest to Hashtables/dictionaries + return true; + } + try + { + if (null != sourceValue.ToJsonString()) + { + return true; + } + } + catch + { + // Not one of our objects + } + try + { + string text = sourceValue.ToString()?.Trim(); + return true == text?.StartsWith("{") && true == text?.EndsWith("}") && Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonType.Object; + } + catch + { + // Doesn't look like it can be treated as JSON + } + return false; + } + + /// + /// Determines if the parameter can be converted to the parameter + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false + /// + public override bool CanConvertTo(object sourceValue, global::System.Type destinationType) => false; + + /// + /// Converts the parameter to the parameter using and + /// + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// + /// an instance of , or null if there is no suitable conversion. + /// + public override object ConvertFrom(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => ConvertFrom(sourceValue); + + /// + /// Converts the parameter to the parameter using and + /// + /// the value to convert into an instance of . + /// + /// an instance of , or null if there is no suitable conversion. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITopicTypeInfo ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITopicTypeInfo).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return TopicTypeInfo.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return TopicTypeInfo.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return TopicTypeInfo.DeserializeFromDictionary(sourceValue); + } + return null; + } + + /// NotImplemented -- this will return null + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// will always return null. + public override object ConvertTo(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => null; + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/TopicTypeInfo.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/TopicTypeInfo.cs new file mode 100644 index 000000000000..cc274f626bb7 --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/TopicTypeInfo.cs @@ -0,0 +1,198 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Extensions; + + /// Properties of a topic type info. + public partial class TopicTypeInfo : + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITopicTypeInfo, + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITopicTypeInfoInternal, + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IValidates + { + /// + /// Backing field for Inherited model + /// + private Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IResource __resource = new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.Resource(); + + /// Description of the topic type. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Inlined)] + public string Description { get => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITopicTypePropertiesInternal)Property).Description; set => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITopicTypePropertiesInternal)Property).Description = value ?? null; } + + /// Display Name for the topic type. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Inlined)] + public string DisplayName { get => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITopicTypePropertiesInternal)Property).DisplayName; set => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITopicTypePropertiesInternal)Property).DisplayName = value ?? null; } + + /// Fully qualified identifier of the resource. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Inherited)] + public string Id { get => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IResourceInternal)__resource).Id; } + + /// Internal Acessors for Id + string Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IResourceInternal.Id { get => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IResourceInternal)__resource).Id; set => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IResourceInternal)__resource).Id = value; } + + /// Internal Acessors for Name + string Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IResourceInternal.Name { get => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IResourceInternal)__resource).Name; set => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IResourceInternal)__resource).Name = value; } + + /// Internal Acessors for Type + string Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IResourceInternal.Type { get => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IResourceInternal)__resource).Type; set => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IResourceInternal)__resource).Type = value; } + + /// Internal Acessors for Property + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITopicTypeProperties Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITopicTypeInfoInternal.Property { get => (this._property = this._property ?? new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.TopicTypeProperties()); set { {_property = value;} } } + + /// Name of the resource. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Inherited)] + public string Name { get => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IResourceInternal)__resource).Name; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITopicTypeProperties _property; + + /// Properties of the topic type info + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Owned)] + internal Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITopicTypeProperties Property { get => (this._property = this._property ?? new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.TopicTypeProperties()); set => this._property = value; } + + /// Namespace of the provider of the topic type. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Inlined)] + public string Provider { get => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITopicTypePropertiesInternal)Property).Provider; set => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITopicTypePropertiesInternal)Property).Provider = value ?? null; } + + /// Provisioning state of the topic type + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Inlined)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.TopicTypeProvisioningState? ProvisioningState { get => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITopicTypePropertiesInternal)Property).ProvisioningState; set => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITopicTypePropertiesInternal)Property).ProvisioningState = value ?? ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.TopicTypeProvisioningState)""); } + + /// Region type of the resource. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Inlined)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.ResourceRegionType? ResourceRegionType { get => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITopicTypePropertiesInternal)Property).ResourceRegionType; set => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITopicTypePropertiesInternal)Property).ResourceRegionType = value ?? ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.ResourceRegionType)""); } + + /// Source resource format. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Inlined)] + public string SourceResourceFormat { get => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITopicTypePropertiesInternal)Property).SourceResourceFormat; set => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITopicTypePropertiesInternal)Property).SourceResourceFormat = value ?? null; } + + /// List of locations supported by this topic type. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Inlined)] + public string[] SupportedLocation { get => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITopicTypePropertiesInternal)Property).SupportedLocation; set => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITopicTypePropertiesInternal)Property).SupportedLocation = value ?? null /* arrayOf */; } + + /// Supported source scopes. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Inlined)] + public string[] SupportedScopesForSource { get => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITopicTypePropertiesInternal)Property).SupportedScopesForSource; set => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITopicTypePropertiesInternal)Property).SupportedScopesForSource = value ?? null /* arrayOf */; } + + /// Type of the resource. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Inherited)] + public string Type { get => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IResourceInternal)__resource).Type; } + + /// Creates an new instance. + public TopicTypeInfo() + { + + } + + /// Validates that this object meets the validation criteria. + /// an instance that will receive validation + /// events. + /// + /// A that will be complete when validation is completed. + /// + public async global::System.Threading.Tasks.Task Validate(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener eventListener) + { + await eventListener.AssertNotNull(nameof(__resource), __resource); + await eventListener.AssertObjectIsValid(nameof(__resource), __resource); + } + } + /// Properties of a topic type info. + public partial interface ITopicTypeInfo : + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IJsonSerializable, + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IResource + { + /// Description of the topic type. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Description of the topic type.", + SerializedName = @"description", + PossibleTypes = new [] { typeof(string) })] + string Description { get; set; } + /// Display Name for the topic type. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Display Name for the topic type.", + SerializedName = @"displayName", + PossibleTypes = new [] { typeof(string) })] + string DisplayName { get; set; } + /// Namespace of the provider of the topic type. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Namespace of the provider of the topic type.", + SerializedName = @"provider", + PossibleTypes = new [] { typeof(string) })] + string Provider { get; set; } + /// Provisioning state of the topic type + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Provisioning state of the topic type", + SerializedName = @"provisioningState", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.TopicTypeProvisioningState) })] + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.TopicTypeProvisioningState? ProvisioningState { get; set; } + /// Region type of the resource. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Region type of the resource.", + SerializedName = @"resourceRegionType", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.ResourceRegionType) })] + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.ResourceRegionType? ResourceRegionType { get; set; } + /// Source resource format. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Source resource format.", + SerializedName = @"sourceResourceFormat", + PossibleTypes = new [] { typeof(string) })] + string SourceResourceFormat { get; set; } + /// List of locations supported by this topic type. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"List of locations supported by this topic type.", + SerializedName = @"supportedLocations", + PossibleTypes = new [] { typeof(string) })] + string[] SupportedLocation { get; set; } + /// Supported source scopes. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Supported source scopes.", + SerializedName = @"supportedScopesForSource", + PossibleTypes = new [] { typeof(string) })] + string[] SupportedScopesForSource { get; set; } + + } + /// Properties of a topic type info. + internal partial interface ITopicTypeInfoInternal : + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IResourceInternal + { + /// Description of the topic type. + string Description { get; set; } + /// Display Name for the topic type. + string DisplayName { get; set; } + /// Properties of the topic type info + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITopicTypeProperties Property { get; set; } + /// Namespace of the provider of the topic type. + string Provider { get; set; } + /// Provisioning state of the topic type + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.TopicTypeProvisioningState? ProvisioningState { get; set; } + /// Region type of the resource. + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.ResourceRegionType? ResourceRegionType { get; set; } + /// Source resource format. + string SourceResourceFormat { get; set; } + /// List of locations supported by this topic type. + string[] SupportedLocation { get; set; } + /// Supported source scopes. + string[] SupportedScopesForSource { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/TopicTypeInfo.json.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/TopicTypeInfo.json.cs new file mode 100644 index 000000000000..05734e54b194 --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/TopicTypeInfo.json.cs @@ -0,0 +1,108 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Extensions; + + /// Properties of a topic type info. + public partial class TopicTypeInfo + { + + /// + /// AfterFromJson will be called after the json deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JsonNode that should be deserialized into this object. + + partial void AfterFromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json erialization has finished, allowing customization of the before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JSON container that the serialization result will be placed in. + + partial void AfterToJson(ref Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject container); + + /// + /// BeforeFromJson will be called before the json deserialization has commenced, allowing complete customization of + /// the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JsonNode that should be deserialized into this object. + /// Determines if the rest of the deserialization should be processed, or if the method should return + /// instantly. + + partial void BeforeFromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject json, ref bool returnNow); + + /// + /// BeforeToJson will be called before the json serialization has commenced, allowing complete customization of the + /// object before it is serialized. + /// If you wish to disable the default serialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JSON container that the serialization result will be placed in. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeToJson(ref Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITopicTypeInfo. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITopicTypeInfo. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITopicTypeInfo FromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject json ? new TopicTypeInfo(json) : null; + } + + /// + /// Serializes this instance of into a . + /// + /// The container to serialize this object into. If the caller + /// passes in null, a new instance will be created and returned to the caller. + /// Allows the caller to choose the depth of the serialization. See . + /// + /// a serialized instance of as a . + /// + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Runtime.Json.JsonNode) this._property.ToJson(null,serializationMode) : null, "properties" ,container.Add ); + AfterToJson(ref container); + return container; + } + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject instance to deserialize from. + internal TopicTypeInfo(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject json) + { + bool returnNow = false; + BeforeFromJson(json, ref returnNow); + if (returnNow) + { + return; + } + __resource = new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.Resource(json); + {_property = If( json?.PropertyT("properties"), out var __jsonProperties) ? Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.TopicTypeProperties.FromJson(__jsonProperties) : Property;} + AfterFromJson(json); + } + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/TopicTypeProperties.PowerShell.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/TopicTypeProperties.PowerShell.cs new file mode 100644 index 000000000000..146c568470f0 --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/TopicTypeProperties.PowerShell.cs @@ -0,0 +1,200 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell; + + /// Properties of a topic type. + [System.ComponentModel.TypeConverter(typeof(TopicTypePropertiesTypeConverter))] + public partial class TopicTypeProperties + { + + /// + /// AfterDeserializeDictionary will be called after the deserialization has finished, allowing customization of the + /// object before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Collections.IDictionary content that should be used. + + partial void AfterDeserializeDictionary(global::System.Collections.IDictionary content); + + /// + /// AfterDeserializePSObject will be called after the deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Management.Automation.PSObject content that should be used. + + partial void AfterDeserializePSObject(global::System.Management.Automation.PSObject content); + + /// + /// BeforeDeserializeDictionary will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Collections.IDictionary content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializeDictionary(global::System.Collections.IDictionary content, ref bool returnNow); + + /// + /// BeforeDeserializePSObject will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializePSObject(global::System.Management.Automation.PSObject content, ref bool returnNow); + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITopicTypeProperties DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new TopicTypeProperties(content); + } + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITopicTypeProperties DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new TopicTypeProperties(content); + } + + /// + /// Creates a new instance of , deserializing the content from a json string. + /// + /// a string containing a JSON serialized instance of this model. + /// an instance of the model class. + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITopicTypeProperties FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode.Parse(jsonText)); + + /// Serializes this instance to a json string. + + /// a containing this model serialized to JSON text. + public string ToJsonString() => ToJson(null, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SerializationMode.IncludeAll)?.ToString(); + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + internal TopicTypeProperties(global::System.Collections.IDictionary content) + { + bool returnNow = false; + BeforeDeserializeDictionary(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("Provider")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITopicTypePropertiesInternal)this).Provider = (string) content.GetValueForProperty("Provider",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITopicTypePropertiesInternal)this).Provider, global::System.Convert.ToString); + } + if (content.Contains("DisplayName")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITopicTypePropertiesInternal)this).DisplayName = (string) content.GetValueForProperty("DisplayName",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITopicTypePropertiesInternal)this).DisplayName, global::System.Convert.ToString); + } + if (content.Contains("Description")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITopicTypePropertiesInternal)this).Description = (string) content.GetValueForProperty("Description",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITopicTypePropertiesInternal)this).Description, global::System.Convert.ToString); + } + if (content.Contains("ResourceRegionType")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITopicTypePropertiesInternal)this).ResourceRegionType = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.ResourceRegionType?) content.GetValueForProperty("ResourceRegionType",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITopicTypePropertiesInternal)this).ResourceRegionType, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.ResourceRegionType.CreateFrom); + } + if (content.Contains("ProvisioningState")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITopicTypePropertiesInternal)this).ProvisioningState = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.TopicTypeProvisioningState?) content.GetValueForProperty("ProvisioningState",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITopicTypePropertiesInternal)this).ProvisioningState, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.TopicTypeProvisioningState.CreateFrom); + } + if (content.Contains("SupportedLocation")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITopicTypePropertiesInternal)this).SupportedLocation = (string[]) content.GetValueForProperty("SupportedLocation",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITopicTypePropertiesInternal)this).SupportedLocation, __y => TypeConverterExtensions.SelectToArray(__y, global::System.Convert.ToString)); + } + if (content.Contains("SourceResourceFormat")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITopicTypePropertiesInternal)this).SourceResourceFormat = (string) content.GetValueForProperty("SourceResourceFormat",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITopicTypePropertiesInternal)this).SourceResourceFormat, global::System.Convert.ToString); + } + if (content.Contains("SupportedScopesForSource")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITopicTypePropertiesInternal)this).SupportedScopesForSource = (string[]) content.GetValueForProperty("SupportedScopesForSource",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITopicTypePropertiesInternal)this).SupportedScopesForSource, __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 TopicTypeProperties(global::System.Management.Automation.PSObject content) + { + bool returnNow = false; + BeforeDeserializePSObject(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("Provider")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITopicTypePropertiesInternal)this).Provider = (string) content.GetValueForProperty("Provider",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITopicTypePropertiesInternal)this).Provider, global::System.Convert.ToString); + } + if (content.Contains("DisplayName")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITopicTypePropertiesInternal)this).DisplayName = (string) content.GetValueForProperty("DisplayName",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITopicTypePropertiesInternal)this).DisplayName, global::System.Convert.ToString); + } + if (content.Contains("Description")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITopicTypePropertiesInternal)this).Description = (string) content.GetValueForProperty("Description",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITopicTypePropertiesInternal)this).Description, global::System.Convert.ToString); + } + if (content.Contains("ResourceRegionType")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITopicTypePropertiesInternal)this).ResourceRegionType = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.ResourceRegionType?) content.GetValueForProperty("ResourceRegionType",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITopicTypePropertiesInternal)this).ResourceRegionType, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.ResourceRegionType.CreateFrom); + } + if (content.Contains("ProvisioningState")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITopicTypePropertiesInternal)this).ProvisioningState = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.TopicTypeProvisioningState?) content.GetValueForProperty("ProvisioningState",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITopicTypePropertiesInternal)this).ProvisioningState, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.TopicTypeProvisioningState.CreateFrom); + } + if (content.Contains("SupportedLocation")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITopicTypePropertiesInternal)this).SupportedLocation = (string[]) content.GetValueForProperty("SupportedLocation",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITopicTypePropertiesInternal)this).SupportedLocation, __y => TypeConverterExtensions.SelectToArray(__y, global::System.Convert.ToString)); + } + if (content.Contains("SourceResourceFormat")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITopicTypePropertiesInternal)this).SourceResourceFormat = (string) content.GetValueForProperty("SourceResourceFormat",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITopicTypePropertiesInternal)this).SourceResourceFormat, global::System.Convert.ToString); + } + if (content.Contains("SupportedScopesForSource")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITopicTypePropertiesInternal)this).SupportedScopesForSource = (string[]) content.GetValueForProperty("SupportedScopesForSource",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITopicTypePropertiesInternal)this).SupportedScopesForSource, __y => TypeConverterExtensions.SelectToArray(__y, global::System.Convert.ToString)); + } + AfterDeserializePSObject(content); + } + } + /// Properties of a topic type. + [System.ComponentModel.TypeConverter(typeof(TopicTypePropertiesTypeConverter))] + public partial interface ITopicTypeProperties + + { + + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/TopicTypeProperties.TypeConverter.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/TopicTypeProperties.TypeConverter.cs new file mode 100644 index 000000000000..2743b52a1cd1 --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/TopicTypeProperties.TypeConverter.cs @@ -0,0 +1,147 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class TopicTypePropertiesTypeConverter : global::System.Management.Automation.PSTypeConverter + { + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false. + /// + public override bool CanConvertFrom(object sourceValue, global::System.Type destinationType) => CanConvertFrom(sourceValue); + + /// + /// Determines if the converter can convert the parameter to the . + /// + /// the instance to check if it can be converted to the type. + /// + /// true if the instance could be converted to a type, otherwise false + /// + public static bool CanConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return true; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + // we say yest to PSObjects + return true; + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + // we say yest to Hashtables/dictionaries + return true; + } + try + { + if (null != sourceValue.ToJsonString()) + { + return true; + } + } + catch + { + // Not one of our objects + } + try + { + string text = sourceValue.ToString()?.Trim(); + return true == text?.StartsWith("{") && true == text?.EndsWith("}") && Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonType.Object; + } + catch + { + // Doesn't look like it can be treated as JSON + } + return false; + } + + /// + /// Determines if the parameter can be converted to the parameter + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false + /// + public override bool CanConvertTo(object sourceValue, global::System.Type destinationType) => false; + + /// + /// Converts the parameter to the parameter using and + /// + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// + /// an instance of , or null if there is no suitable conversion. + /// + public override object ConvertFrom(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => ConvertFrom(sourceValue); + + /// + /// Converts the parameter to the parameter using and + /// + /// the value to convert into an instance of . + /// + /// an instance of , or null if there is no suitable conversion. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITopicTypeProperties ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITopicTypeProperties).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return TopicTypeProperties.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return TopicTypeProperties.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return TopicTypeProperties.DeserializeFromDictionary(sourceValue); + } + return null; + } + + /// NotImplemented -- this will return null + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// will always return null. + public override object ConvertTo(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => null; + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/TopicTypeProperties.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/TopicTypeProperties.cs new file mode 100644 index 000000000000..cf5c3d4757f1 --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/TopicTypeProperties.cs @@ -0,0 +1,170 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Extensions; + + /// Properties of a topic type. + public partial class TopicTypeProperties : + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITopicTypeProperties, + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITopicTypePropertiesInternal + { + + /// Backing field for property. + private string _description; + + /// Description of the topic type. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Owned)] + public string Description { get => this._description; set => this._description = value; } + + /// Backing field for property. + private string _displayName; + + /// Display Name for the topic type. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Owned)] + public string DisplayName { get => this._displayName; set => this._displayName = value; } + + /// Backing field for property. + private string _provider; + + /// Namespace of the provider of the topic type. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Owned)] + public string Provider { get => this._provider; set => this._provider = value; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.TopicTypeProvisioningState? _provisioningState; + + /// Provisioning state of the topic type + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Owned)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.TopicTypeProvisioningState? ProvisioningState { get => this._provisioningState; set => this._provisioningState = value; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.ResourceRegionType? _resourceRegionType; + + /// Region type of the resource. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Owned)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.ResourceRegionType? ResourceRegionType { get => this._resourceRegionType; set => this._resourceRegionType = value; } + + /// Backing field for property. + private string _sourceResourceFormat; + + /// Source resource format. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Owned)] + public string SourceResourceFormat { get => this._sourceResourceFormat; set => this._sourceResourceFormat = value; } + + /// Backing field for property. + private string[] _supportedLocation; + + /// List of locations supported by this topic type. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Owned)] + public string[] SupportedLocation { get => this._supportedLocation; set => this._supportedLocation = value; } + + /// Backing field for property. + private string[] _supportedScopesForSource; + + /// Supported source scopes. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Owned)] + public string[] SupportedScopesForSource { get => this._supportedScopesForSource; set => this._supportedScopesForSource = value; } + + /// Creates an new instance. + public TopicTypeProperties() + { + + } + } + /// Properties of a topic type. + public partial interface ITopicTypeProperties : + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IJsonSerializable + { + /// Description of the topic type. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Description of the topic type.", + SerializedName = @"description", + PossibleTypes = new [] { typeof(string) })] + string Description { get; set; } + /// Display Name for the topic type. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Display Name for the topic type.", + SerializedName = @"displayName", + PossibleTypes = new [] { typeof(string) })] + string DisplayName { get; set; } + /// Namespace of the provider of the topic type. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Namespace of the provider of the topic type.", + SerializedName = @"provider", + PossibleTypes = new [] { typeof(string) })] + string Provider { get; set; } + /// Provisioning state of the topic type + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Provisioning state of the topic type", + SerializedName = @"provisioningState", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.TopicTypeProvisioningState) })] + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.TopicTypeProvisioningState? ProvisioningState { get; set; } + /// Region type of the resource. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Region type of the resource.", + SerializedName = @"resourceRegionType", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.ResourceRegionType) })] + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.ResourceRegionType? ResourceRegionType { get; set; } + /// Source resource format. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Source resource format.", + SerializedName = @"sourceResourceFormat", + PossibleTypes = new [] { typeof(string) })] + string SourceResourceFormat { get; set; } + /// List of locations supported by this topic type. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"List of locations supported by this topic type.", + SerializedName = @"supportedLocations", + PossibleTypes = new [] { typeof(string) })] + string[] SupportedLocation { get; set; } + /// Supported source scopes. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Supported source scopes.", + SerializedName = @"supportedScopesForSource", + PossibleTypes = new [] { typeof(string) })] + string[] SupportedScopesForSource { get; set; } + + } + /// Properties of a topic type. + internal partial interface ITopicTypePropertiesInternal + + { + /// Description of the topic type. + string Description { get; set; } + /// Display Name for the topic type. + string DisplayName { get; set; } + /// Namespace of the provider of the topic type. + string Provider { get; set; } + /// Provisioning state of the topic type + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.TopicTypeProvisioningState? ProvisioningState { get; set; } + /// Region type of the resource. + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.ResourceRegionType? ResourceRegionType { get; set; } + /// Source resource format. + string SourceResourceFormat { get; set; } + /// List of locations supported by this topic type. + string[] SupportedLocation { get; set; } + /// Supported source scopes. + string[] SupportedScopesForSource { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/TopicTypeProperties.json.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/TopicTypeProperties.json.cs new file mode 100644 index 000000000000..41142ce06fbd --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/TopicTypeProperties.json.cs @@ -0,0 +1,136 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Extensions; + + /// Properties of a topic type. + public partial class TopicTypeProperties + { + + /// + /// AfterFromJson will be called after the json deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JsonNode that should be deserialized into this object. + + partial void AfterFromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json erialization has finished, allowing customization of the before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JSON container that the serialization result will be placed in. + + partial void AfterToJson(ref Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject container); + + /// + /// BeforeFromJson will be called before the json deserialization has commenced, allowing complete customization of + /// the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JsonNode that should be deserialized into this object. + /// Determines if the rest of the deserialization should be processed, or if the method should return + /// instantly. + + partial void BeforeFromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject json, ref bool returnNow); + + /// + /// BeforeToJson will be called before the json serialization has commenced, allowing complete customization of the + /// object before it is serialized. + /// If you wish to disable the default serialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JSON container that the serialization result will be placed in. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeToJson(ref Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITopicTypeProperties. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITopicTypeProperties. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITopicTypeProperties FromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject json ? new TopicTypeProperties(json) : null; + } + + /// + /// Serializes this instance of into a . + /// + /// The container to serialize this object into. If the caller + /// passes in null, a new instance will be created and returned to the caller. + /// Allows the caller to choose the depth of the serialization. See . + /// + /// a serialized instance of as a . + /// + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonString(this._provider.ToString()) : null, "provider" ,container.Add ); + AddIf( null != (((object)this._displayName)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonString(this._displayName.ToString()) : null, "displayName" ,container.Add ); + AddIf( null != (((object)this._description)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonString(this._description.ToString()) : null, "description" ,container.Add ); + AddIf( null != (((object)this._resourceRegionType)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonString(this._resourceRegionType.ToString()) : null, "resourceRegionType" ,container.Add ); + AddIf( null != (((object)this._provisioningState)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonString(this._provisioningState.ToString()) : null, "provisioningState" ,container.Add ); + if (null != this._supportedLocation) + { + var __w = new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.XNodeArray(); + foreach( var __x in this._supportedLocation ) + { + AddIf(null != (((object)__x)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonString(__x.ToString()) : null ,__w.Add); + } + container.Add("supportedLocations",__w); + } + AddIf( null != (((object)this._sourceResourceFormat)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonString(this._sourceResourceFormat.ToString()) : null, "sourceResourceFormat" ,container.Add ); + if (null != this._supportedScopesForSource) + { + var __r = new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.XNodeArray(); + foreach( var __s in this._supportedScopesForSource ) + { + AddIf(null != (((object)__s)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonString(__s.ToString()) : null ,__r.Add); + } + container.Add("supportedScopesForSource",__r); + } + AfterToJson(ref container); + return container; + } + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject instance to deserialize from. + internal TopicTypeProperties(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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;} + {_displayName = If( json?.PropertyT("displayName"), out var __jsonDisplayName) ? (string)__jsonDisplayName : (string)DisplayName;} + {_description = If( json?.PropertyT("description"), out var __jsonDescription) ? (string)__jsonDescription : (string)Description;} + {_resourceRegionType = If( json?.PropertyT("resourceRegionType"), out var __jsonResourceRegionType) ? (string)__jsonResourceRegionType : (string)ResourceRegionType;} + {_provisioningState = If( json?.PropertyT("provisioningState"), out var __jsonProvisioningState) ? (string)__jsonProvisioningState : (string)ProvisioningState;} + {_supportedLocation = If( json?.PropertyT("supportedLocations"), out var __jsonSupportedLocations) ? If( __jsonSupportedLocations as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Runtime.Json.JsonString __t ? (string)(__t.ToString()) : null)) ))() : null : SupportedLocation;} + {_sourceResourceFormat = If( json?.PropertyT("sourceResourceFormat"), out var __jsonSourceResourceFormat) ? (string)__jsonSourceResourceFormat : (string)SourceResourceFormat;} + {_supportedScopesForSource = If( json?.PropertyT("supportedScopesForSource"), out var __jsonSupportedScopesForSource) ? If( __jsonSupportedScopesForSource as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Runtime.Json.JsonString __o ? (string)(__o.ToString()) : null)) ))() : null : SupportedScopesForSource;} + AfterFromJson(json); + } + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/TopicTypesListResult.PowerShell.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/TopicTypesListResult.PowerShell.cs new file mode 100644 index 000000000000..094db2025854 --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/TopicTypesListResult.PowerShell.cs @@ -0,0 +1,144 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell; + + /// Result of the List Topic Types operation + [System.ComponentModel.TypeConverter(typeof(TopicTypesListResultTypeConverter))] + public partial class TopicTypesListResult + { + + /// + /// AfterDeserializeDictionary will be called after the deserialization has finished, allowing customization of the + /// object before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Collections.IDictionary content that should be used. + + partial void AfterDeserializeDictionary(global::System.Collections.IDictionary content); + + /// + /// AfterDeserializePSObject will be called after the deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Management.Automation.PSObject content that should be used. + + partial void AfterDeserializePSObject(global::System.Management.Automation.PSObject content); + + /// + /// BeforeDeserializeDictionary will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Collections.IDictionary content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializeDictionary(global::System.Collections.IDictionary content, ref bool returnNow); + + /// + /// BeforeDeserializePSObject will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializePSObject(global::System.Management.Automation.PSObject content, ref bool returnNow); + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITopicTypesListResult DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new TopicTypesListResult(content); + } + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITopicTypesListResult DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new TopicTypesListResult(content); + } + + /// + /// Creates a new instance of , deserializing the content from a json string. + /// + /// a string containing a JSON serialized instance of this model. + /// an instance of the model class. + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITopicTypesListResult FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode.Parse(jsonText)); + + /// Serializes this instance to a json string. + + /// a containing this model serialized to JSON text. + public string ToJsonString() => ToJson(null, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SerializationMode.IncludeAll)?.ToString(); + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + internal TopicTypesListResult(global::System.Collections.IDictionary content) + { + bool returnNow = false; + BeforeDeserializeDictionary(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("Value")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITopicTypesListResultInternal)this).Value = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITopicTypeInfo[]) content.GetValueForProperty("Value",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITopicTypesListResultInternal)this).Value, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.TopicTypeInfoTypeConverter.ConvertFrom)); + } + AfterDeserializeDictionary(content); + } + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + internal TopicTypesListResult(global::System.Management.Automation.PSObject content) + { + bool returnNow = false; + BeforeDeserializePSObject(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("Value")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITopicTypesListResultInternal)this).Value = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITopicTypeInfo[]) content.GetValueForProperty("Value",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITopicTypesListResultInternal)this).Value, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.TopicTypeInfoTypeConverter.ConvertFrom)); + } + AfterDeserializePSObject(content); + } + } + /// Result of the List Topic Types operation + [System.ComponentModel.TypeConverter(typeof(TopicTypesListResultTypeConverter))] + public partial interface ITopicTypesListResult + + { + + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/TopicTypesListResult.TypeConverter.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/TopicTypesListResult.TypeConverter.cs new file mode 100644 index 000000000000..7b5c5e3e4aed --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/TopicTypesListResult.TypeConverter.cs @@ -0,0 +1,147 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class TopicTypesListResultTypeConverter : global::System.Management.Automation.PSTypeConverter + { + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false. + /// + public override bool CanConvertFrom(object sourceValue, global::System.Type destinationType) => CanConvertFrom(sourceValue); + + /// + /// Determines if the converter can convert the parameter to the . + /// + /// the instance to check if it can be converted to the type. + /// + /// true if the instance could be converted to a type, otherwise false + /// + public static bool CanConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return true; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + // we say yest to PSObjects + return true; + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + // we say yest to Hashtables/dictionaries + return true; + } + try + { + if (null != sourceValue.ToJsonString()) + { + return true; + } + } + catch + { + // Not one of our objects + } + try + { + string text = sourceValue.ToString()?.Trim(); + return true == text?.StartsWith("{") && true == text?.EndsWith("}") && Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonType.Object; + } + catch + { + // Doesn't look like it can be treated as JSON + } + return false; + } + + /// + /// Determines if the parameter can be converted to the parameter + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false + /// + public override bool CanConvertTo(object sourceValue, global::System.Type destinationType) => false; + + /// + /// Converts the parameter to the parameter using and + /// + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// + /// an instance of , or null if there is no suitable conversion. + /// + public override object ConvertFrom(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => ConvertFrom(sourceValue); + + /// + /// Converts the parameter to the parameter using and + /// + /// the value to convert into an instance of . + /// + /// an instance of , or null if there is no suitable conversion. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITopicTypesListResult ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITopicTypesListResult).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return TopicTypesListResult.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return TopicTypesListResult.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return TopicTypesListResult.DeserializeFromDictionary(sourceValue); + } + return null; + } + + /// NotImplemented -- this will return null + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// will always return null. + public override object ConvertTo(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => null; + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/TopicTypesListResult.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/TopicTypesListResult.cs new file mode 100644 index 000000000000..50ab59ef3305 --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/TopicTypesListResult.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.EventGrid.Models.Api20211015Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Extensions; + + /// Result of the List Topic Types operation + public partial class TopicTypesListResult : + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITopicTypesListResult, + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITopicTypesListResultInternal + { + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITopicTypeInfo[] _value; + + /// A collection of topic types + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Owned)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITopicTypeInfo[] Value { get => this._value; set => this._value = value; } + + /// Creates an new instance. + public TopicTypesListResult() + { + + } + } + /// Result of the List Topic Types operation + public partial interface ITopicTypesListResult : + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IJsonSerializable + { + /// A collection of topic types + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"A collection of topic types", + SerializedName = @"value", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITopicTypeInfo) })] + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITopicTypeInfo[] Value { get; set; } + + } + /// Result of the List Topic Types operation + internal partial interface ITopicTypesListResultInternal + + { + /// A collection of topic types + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITopicTypeInfo[] Value { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/TopicTypesListResult.json.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/TopicTypesListResult.json.cs new file mode 100644 index 000000000000..6682fea46bfb --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/TopicTypesListResult.json.cs @@ -0,0 +1,114 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Extensions; + + /// Result of the List Topic Types operation + public partial class TopicTypesListResult + { + + /// + /// AfterFromJson will be called after the json deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JsonNode that should be deserialized into this object. + + partial void AfterFromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json erialization has finished, allowing customization of the before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JSON container that the serialization result will be placed in. + + partial void AfterToJson(ref Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject container); + + /// + /// BeforeFromJson will be called before the json deserialization has commenced, allowing complete customization of + /// the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JsonNode that should be deserialized into this object. + /// Determines if the rest of the deserialization should be processed, or if the method should return + /// instantly. + + partial void BeforeFromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject json, ref bool returnNow); + + /// + /// BeforeToJson will be called before the json serialization has commenced, allowing complete customization of the + /// object before it is serialized. + /// If you wish to disable the default serialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JSON container that the serialization result will be placed in. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeToJson(ref Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITopicTypesListResult. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITopicTypesListResult. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITopicTypesListResult FromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject json ? new TopicTypesListResult(json) : null; + } + + /// + /// Serializes this instance of into a . + /// + /// The container to serialize this object into. If the caller + /// passes in null, a new instance will be created and returned to the caller. + /// Allows the caller to choose the depth of the serialization. See . + /// + /// a serialized instance of as a . + /// + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Runtime.Json.XNodeArray(); + foreach( var __x in this._value ) + { + AddIf(__x?.ToJson(null, serializationMode) ,__w.Add); + } + container.Add("value",__w); + } + AfterToJson(ref container); + return container; + } + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject instance to deserialize from. + internal TopicTypesListResult(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.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.EventGrid.Models.Api20211015Preview.ITopicTypeInfo) (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.TopicTypeInfo.FromJson(__u) )) ))() : null : Value;} + AfterFromJson(json); + } + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/TopicUpdateParameterProperties.PowerShell.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/TopicUpdateParameterProperties.PowerShell.cs new file mode 100644 index 000000000000..fda5f7ac39ef --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/TopicUpdateParameterProperties.PowerShell.cs @@ -0,0 +1,168 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell; + + /// Information of topic update parameter properties. + [System.ComponentModel.TypeConverter(typeof(TopicUpdateParameterPropertiesTypeConverter))] + public partial class TopicUpdateParameterProperties + { + + /// + /// AfterDeserializeDictionary will be called after the deserialization has finished, allowing customization of the + /// object before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Collections.IDictionary content that should be used. + + partial void AfterDeserializeDictionary(global::System.Collections.IDictionary content); + + /// + /// AfterDeserializePSObject will be called after the deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Management.Automation.PSObject content that should be used. + + partial void AfterDeserializePSObject(global::System.Management.Automation.PSObject content); + + /// + /// BeforeDeserializeDictionary will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Collections.IDictionary content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializeDictionary(global::System.Collections.IDictionary content, ref bool returnNow); + + /// + /// BeforeDeserializePSObject will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializePSObject(global::System.Management.Automation.PSObject content, ref bool returnNow); + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITopicUpdateParameterProperties DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new TopicUpdateParameterProperties(content); + } + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITopicUpdateParameterProperties DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new TopicUpdateParameterProperties(content); + } + + /// + /// Creates a new instance of , deserializing the content from a json string. + /// + /// a string containing a JSON serialized instance of this model. + /// an instance of the model class. + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITopicUpdateParameterProperties FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode.Parse(jsonText)); + + /// Serializes this instance to a json string. + + /// a containing this model serialized to JSON text. + public string ToJsonString() => ToJson(null, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SerializationMode.IncludeAll)?.ToString(); + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + internal TopicUpdateParameterProperties(global::System.Collections.IDictionary content) + { + bool returnNow = false; + BeforeDeserializeDictionary(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("PublicNetworkAccess")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITopicUpdateParameterPropertiesInternal)this).PublicNetworkAccess = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.PublicNetworkAccess?) content.GetValueForProperty("PublicNetworkAccess",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITopicUpdateParameterPropertiesInternal)this).PublicNetworkAccess, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.PublicNetworkAccess.CreateFrom); + } + if (content.Contains("InboundIPRule")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITopicUpdateParameterPropertiesInternal)this).InboundIPRule = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IInboundIPRule[]) content.GetValueForProperty("InboundIPRule",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITopicUpdateParameterPropertiesInternal)this).InboundIPRule, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.InboundIPRuleTypeConverter.ConvertFrom)); + } + if (content.Contains("DisableLocalAuth")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITopicUpdateParameterPropertiesInternal)this).DisableLocalAuth = (bool?) content.GetValueForProperty("DisableLocalAuth",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITopicUpdateParameterPropertiesInternal)this).DisableLocalAuth, (__y)=> (bool) global::System.Convert.ChangeType(__y, typeof(bool))); + } + if (content.Contains("DataResidencyBoundary")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITopicUpdateParameterPropertiesInternal)this).DataResidencyBoundary = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.DataResidencyBoundary?) content.GetValueForProperty("DataResidencyBoundary",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITopicUpdateParameterPropertiesInternal)this).DataResidencyBoundary, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.DataResidencyBoundary.CreateFrom); + } + AfterDeserializeDictionary(content); + } + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + internal TopicUpdateParameterProperties(global::System.Management.Automation.PSObject content) + { + bool returnNow = false; + BeforeDeserializePSObject(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("PublicNetworkAccess")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITopicUpdateParameterPropertiesInternal)this).PublicNetworkAccess = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.PublicNetworkAccess?) content.GetValueForProperty("PublicNetworkAccess",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITopicUpdateParameterPropertiesInternal)this).PublicNetworkAccess, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.PublicNetworkAccess.CreateFrom); + } + if (content.Contains("InboundIPRule")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITopicUpdateParameterPropertiesInternal)this).InboundIPRule = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IInboundIPRule[]) content.GetValueForProperty("InboundIPRule",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITopicUpdateParameterPropertiesInternal)this).InboundIPRule, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.InboundIPRuleTypeConverter.ConvertFrom)); + } + if (content.Contains("DisableLocalAuth")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITopicUpdateParameterPropertiesInternal)this).DisableLocalAuth = (bool?) content.GetValueForProperty("DisableLocalAuth",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITopicUpdateParameterPropertiesInternal)this).DisableLocalAuth, (__y)=> (bool) global::System.Convert.ChangeType(__y, typeof(bool))); + } + if (content.Contains("DataResidencyBoundary")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITopicUpdateParameterPropertiesInternal)this).DataResidencyBoundary = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.DataResidencyBoundary?) content.GetValueForProperty("DataResidencyBoundary",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITopicUpdateParameterPropertiesInternal)this).DataResidencyBoundary, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.DataResidencyBoundary.CreateFrom); + } + AfterDeserializePSObject(content); + } + } + /// Information of topic update parameter properties. + [System.ComponentModel.TypeConverter(typeof(TopicUpdateParameterPropertiesTypeConverter))] + public partial interface ITopicUpdateParameterProperties + + { + + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/TopicUpdateParameterProperties.TypeConverter.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/TopicUpdateParameterProperties.TypeConverter.cs new file mode 100644 index 000000000000..8ae08f777ced --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/TopicUpdateParameterProperties.TypeConverter.cs @@ -0,0 +1,147 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class TopicUpdateParameterPropertiesTypeConverter : global::System.Management.Automation.PSTypeConverter + { + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false. + /// + public override bool CanConvertFrom(object sourceValue, global::System.Type destinationType) => CanConvertFrom(sourceValue); + + /// + /// Determines if the converter can convert the parameter to the . + /// + /// the instance to check if it can be converted to the type. + /// + /// true if the instance could be converted to a type, otherwise false + /// + public static bool CanConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return true; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + // we say yest to PSObjects + return true; + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + // we say yest to Hashtables/dictionaries + return true; + } + try + { + if (null != sourceValue.ToJsonString()) + { + return true; + } + } + catch + { + // Not one of our objects + } + try + { + string text = sourceValue.ToString()?.Trim(); + return true == text?.StartsWith("{") && true == text?.EndsWith("}") && Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonType.Object; + } + catch + { + // Doesn't look like it can be treated as JSON + } + return false; + } + + /// + /// Determines if the parameter can be converted to the parameter + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false + /// + public override bool CanConvertTo(object sourceValue, global::System.Type destinationType) => false; + + /// + /// Converts the parameter to the parameter using and + /// + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// + /// an instance of , or null if there is no suitable conversion. + /// + public override object ConvertFrom(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => ConvertFrom(sourceValue); + + /// + /// Converts the parameter to the parameter using and + /// + /// the value to convert into an instance of . + /// + /// an instance of , or null if there is no suitable conversion. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITopicUpdateParameterProperties ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITopicUpdateParameterProperties).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return TopicUpdateParameterProperties.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return TopicUpdateParameterProperties.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return TopicUpdateParameterProperties.DeserializeFromDictionary(sourceValue); + } + return null; + } + + /// NotImplemented -- this will return null + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// will always return null. + public override object ConvertTo(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => null; + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/TopicUpdateParameterProperties.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/TopicUpdateParameterProperties.cs new file mode 100644 index 000000000000..002318de3305 --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/TopicUpdateParameterProperties.cs @@ -0,0 +1,133 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Extensions; + + /// Information of topic update parameter properties. + public partial class TopicUpdateParameterProperties : + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITopicUpdateParameterProperties, + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITopicUpdateParameterPropertiesInternal + { + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.DataResidencyBoundary? _dataResidencyBoundary; + + /// The data residency boundary for the topic. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Owned)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.DataResidencyBoundary? DataResidencyBoundary { get => this._dataResidencyBoundary; set => this._dataResidencyBoundary = value; } + + /// Backing field for property. + private bool? _disableLocalAuth; + + /// + /// This boolean is used to enable or disable local auth. Default value is false. When the property is set to true, only AAD + /// token will be used to authenticate if user is allowed to publish to the topic. + /// + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Owned)] + public bool? DisableLocalAuth { get => this._disableLocalAuth; set => this._disableLocalAuth = value; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IInboundIPRule[] _inboundIPRule; + + /// + /// This can be used to restrict traffic from specific IPs instead of all IPs. Note: These are considered only if PublicNetworkAccess + /// is enabled. + /// + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Owned)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IInboundIPRule[] InboundIPRule { get => this._inboundIPRule; set => this._inboundIPRule = value; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.PublicNetworkAccess? _publicNetworkAccess; + + /// + /// This determines if traffic is allowed over public network. By default it is enabled. + /// You can further restrict to specific IPs by configuring + /// + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Owned)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.PublicNetworkAccess? PublicNetworkAccess { get => this._publicNetworkAccess; set => this._publicNetworkAccess = value; } + + /// Creates an new instance. + public TopicUpdateParameterProperties() + { + + } + } + /// Information of topic update parameter properties. + public partial interface ITopicUpdateParameterProperties : + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IJsonSerializable + { + /// The data residency boundary for the topic. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The data residency boundary for the topic.", + SerializedName = @"dataResidencyBoundary", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.DataResidencyBoundary) })] + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.DataResidencyBoundary? DataResidencyBoundary { get; set; } + /// + /// This boolean is used to enable or disable local auth. Default value is false. When the property is set to true, only AAD + /// token will be used to authenticate if user is allowed to publish to the topic. + /// + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"This boolean is used to enable or disable local auth. Default value is false. When the property is set to true, only AAD token will be used to authenticate if user is allowed to publish to the topic.", + SerializedName = @"disableLocalAuth", + PossibleTypes = new [] { typeof(bool) })] + bool? DisableLocalAuth { get; set; } + /// + /// This can be used to restrict traffic from specific IPs instead of all IPs. Note: These are considered only if PublicNetworkAccess + /// is enabled. + /// + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"This can be used to restrict traffic from specific IPs instead of all IPs. Note: These are considered only if PublicNetworkAccess is enabled.", + SerializedName = @"inboundIpRules", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IInboundIPRule) })] + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IInboundIPRule[] InboundIPRule { get; set; } + /// + /// This determines if traffic is allowed over public network. By default it is enabled. + /// You can further restrict to specific IPs by configuring + /// + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"This determines if traffic is allowed over public network. By default it is enabled. + You can further restrict to specific IPs by configuring ", + SerializedName = @"publicNetworkAccess", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.PublicNetworkAccess) })] + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.PublicNetworkAccess? PublicNetworkAccess { get; set; } + + } + /// Information of topic update parameter properties. + internal partial interface ITopicUpdateParameterPropertiesInternal + + { + /// The data residency boundary for the topic. + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.DataResidencyBoundary? DataResidencyBoundary { get; set; } + /// + /// This boolean is used to enable or disable local auth. Default value is false. When the property is set to true, only AAD + /// token will be used to authenticate if user is allowed to publish to the topic. + /// + bool? DisableLocalAuth { get; set; } + /// + /// This can be used to restrict traffic from specific IPs instead of all IPs. Note: These are considered only if PublicNetworkAccess + /// is enabled. + /// + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IInboundIPRule[] InboundIPRule { get; set; } + /// + /// This determines if traffic is allowed over public network. By default it is enabled. + /// You can further restrict to specific IPs by configuring + /// + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.PublicNetworkAccess? PublicNetworkAccess { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/TopicUpdateParameterProperties.json.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/TopicUpdateParameterProperties.json.cs new file mode 100644 index 000000000000..ea4b74c26572 --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/TopicUpdateParameterProperties.json.cs @@ -0,0 +1,120 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Extensions; + + /// Information of topic update parameter properties. + public partial class TopicUpdateParameterProperties + { + + /// + /// AfterFromJson will be called after the json deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JsonNode that should be deserialized into this object. + + partial void AfterFromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json erialization has finished, allowing customization of the before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JSON container that the serialization result will be placed in. + + partial void AfterToJson(ref Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject container); + + /// + /// BeforeFromJson will be called before the json deserialization has commenced, allowing complete customization of + /// the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JsonNode that should be deserialized into this object. + /// Determines if the rest of the deserialization should be processed, or if the method should return + /// instantly. + + partial void BeforeFromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject json, ref bool returnNow); + + /// + /// BeforeToJson will be called before the json serialization has commenced, allowing complete customization of the + /// object before it is serialized. + /// If you wish to disable the default serialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JSON container that the serialization result will be placed in. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeToJson(ref Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITopicUpdateParameterProperties. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITopicUpdateParameterProperties. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITopicUpdateParameterProperties FromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject json ? new TopicUpdateParameterProperties(json) : null; + } + + /// + /// Serializes this instance of into a . + /// + /// The container to serialize this object into. If the caller + /// passes in null, a new instance will be created and returned to the caller. + /// Allows the caller to choose the depth of the serialization. See . + /// + /// a serialized instance of as a . + /// + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject(); + + bool returnNow = false; + BeforeToJson(ref container, ref returnNow); + if (returnNow) + { + return container; + } + AddIf( null != (((object)this._publicNetworkAccess)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonString(this._publicNetworkAccess.ToString()) : null, "publicNetworkAccess" ,container.Add ); + if (null != this._inboundIPRule) + { + var __w = new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.XNodeArray(); + foreach( var __x in this._inboundIPRule ) + { + AddIf(__x?.ToJson(null, serializationMode) ,__w.Add); + } + container.Add("inboundIpRules",__w); + } + AddIf( null != this._disableLocalAuth ? (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode)new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonBoolean((bool)this._disableLocalAuth) : null, "disableLocalAuth" ,container.Add ); + AddIf( null != (((object)this._dataResidencyBoundary)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonString(this._dataResidencyBoundary.ToString()) : null, "dataResidencyBoundary" ,container.Add ); + AfterToJson(ref container); + return container; + } + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject instance to deserialize from. + internal TopicUpdateParameterProperties(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject json) + { + bool returnNow = false; + BeforeFromJson(json, ref returnNow); + if (returnNow) + { + return; + } + {_publicNetworkAccess = If( json?.PropertyT("publicNetworkAccess"), out var __jsonPublicNetworkAccess) ? (string)__jsonPublicNetworkAccess : (string)PublicNetworkAccess;} + {_inboundIPRule = If( json?.PropertyT("inboundIpRules"), out var __jsonInboundIPRules) ? If( __jsonInboundIPRules as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Models.Api20211015Preview.IInboundIPRule) (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.InboundIPRule.FromJson(__u) )) ))() : null : InboundIPRule;} + {_disableLocalAuth = If( json?.PropertyT("disableLocalAuth"), out var __jsonDisableLocalAuth) ? (bool?)__jsonDisableLocalAuth : DisableLocalAuth;} + {_dataResidencyBoundary = If( json?.PropertyT("dataResidencyBoundary"), out var __jsonDataResidencyBoundary) ? (string)__jsonDataResidencyBoundary : (string)DataResidencyBoundary;} + AfterFromJson(json); + } + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/TopicUpdateParameters.PowerShell.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/TopicUpdateParameters.PowerShell.cs new file mode 100644 index 000000000000..02b23421ec16 --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/TopicUpdateParameters.PowerShell.cs @@ -0,0 +1,240 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell; + + /// Properties of the Topic update + [System.ComponentModel.TypeConverter(typeof(TopicUpdateParametersTypeConverter))] + public partial class TopicUpdateParameters + { + + /// + /// AfterDeserializeDictionary will be called after the deserialization has finished, allowing customization of the + /// object before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Collections.IDictionary content that should be used. + + partial void AfterDeserializeDictionary(global::System.Collections.IDictionary content); + + /// + /// AfterDeserializePSObject will be called after the deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Management.Automation.PSObject content that should be used. + + partial void AfterDeserializePSObject(global::System.Management.Automation.PSObject content); + + /// + /// BeforeDeserializeDictionary will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Collections.IDictionary content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializeDictionary(global::System.Collections.IDictionary content, ref bool returnNow); + + /// + /// BeforeDeserializePSObject will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializePSObject(global::System.Management.Automation.PSObject content, ref bool returnNow); + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITopicUpdateParameters DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new TopicUpdateParameters(content); + } + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITopicUpdateParameters DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new TopicUpdateParameters(content); + } + + /// + /// Creates a new instance of , deserializing the content from a json string. + /// + /// a string containing a JSON serialized instance of this model. + /// an instance of the model class. + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITopicUpdateParameters FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode.Parse(jsonText)); + + /// Serializes this instance to a json string. + + /// a containing this model serialized to JSON text. + public string ToJsonString() => ToJson(null, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SerializationMode.IncludeAll)?.ToString(); + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + internal TopicUpdateParameters(global::System.Collections.IDictionary content) + { + bool returnNow = false; + BeforeDeserializeDictionary(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("Identity")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITopicUpdateParametersInternal)this).Identity = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IIdentityInfo) content.GetValueForProperty("Identity",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITopicUpdateParametersInternal)this).Identity, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IdentityInfoTypeConverter.ConvertFrom); + } + if (content.Contains("Property")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITopicUpdateParametersInternal)this).Property = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITopicUpdateParameterProperties) content.GetValueForProperty("Property",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITopicUpdateParametersInternal)this).Property, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.TopicUpdateParameterPropertiesTypeConverter.ConvertFrom); + } + if (content.Contains("Sku")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITopicUpdateParametersInternal)this).Sku = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IResourceSku) content.GetValueForProperty("Sku",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITopicUpdateParametersInternal)this).Sku, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ResourceSkuTypeConverter.ConvertFrom); + } + if (content.Contains("Tag")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITopicUpdateParametersInternal)this).Tag = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITopicUpdateParametersTags) content.GetValueForProperty("Tag",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITopicUpdateParametersInternal)this).Tag, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.TopicUpdateParametersTagsTypeConverter.ConvertFrom); + } + if (content.Contains("IdentityType")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITopicUpdateParametersInternal)this).IdentityType = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.IdentityType?) content.GetValueForProperty("IdentityType",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITopicUpdateParametersInternal)this).IdentityType, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.IdentityType.CreateFrom); + } + if (content.Contains("SkuName")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITopicUpdateParametersInternal)this).SkuName = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.Sku?) content.GetValueForProperty("SkuName",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITopicUpdateParametersInternal)this).SkuName, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.Sku.CreateFrom); + } + if (content.Contains("IdentityPrincipalId")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITopicUpdateParametersInternal)this).IdentityPrincipalId = (string) content.GetValueForProperty("IdentityPrincipalId",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITopicUpdateParametersInternal)this).IdentityPrincipalId, global::System.Convert.ToString); + } + if (content.Contains("IdentityTenantId")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITopicUpdateParametersInternal)this).IdentityTenantId = (string) content.GetValueForProperty("IdentityTenantId",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITopicUpdateParametersInternal)this).IdentityTenantId, global::System.Convert.ToString); + } + if (content.Contains("IdentityUserAssignedIdentity")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITopicUpdateParametersInternal)this).IdentityUserAssignedIdentity = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IIdentityInfoUserAssignedIdentities) content.GetValueForProperty("IdentityUserAssignedIdentity",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITopicUpdateParametersInternal)this).IdentityUserAssignedIdentity, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IdentityInfoUserAssignedIdentitiesTypeConverter.ConvertFrom); + } + if (content.Contains("PublicNetworkAccess")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITopicUpdateParametersInternal)this).PublicNetworkAccess = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.PublicNetworkAccess?) content.GetValueForProperty("PublicNetworkAccess",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITopicUpdateParametersInternal)this).PublicNetworkAccess, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.PublicNetworkAccess.CreateFrom); + } + if (content.Contains("InboundIPRule")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITopicUpdateParametersInternal)this).InboundIPRule = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IInboundIPRule[]) content.GetValueForProperty("InboundIPRule",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITopicUpdateParametersInternal)this).InboundIPRule, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.InboundIPRuleTypeConverter.ConvertFrom)); + } + if (content.Contains("DisableLocalAuth")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITopicUpdateParametersInternal)this).DisableLocalAuth = (bool?) content.GetValueForProperty("DisableLocalAuth",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITopicUpdateParametersInternal)this).DisableLocalAuth, (__y)=> (bool) global::System.Convert.ChangeType(__y, typeof(bool))); + } + if (content.Contains("DataResidencyBoundary")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITopicUpdateParametersInternal)this).DataResidencyBoundary = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.DataResidencyBoundary?) content.GetValueForProperty("DataResidencyBoundary",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITopicUpdateParametersInternal)this).DataResidencyBoundary, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.DataResidencyBoundary.CreateFrom); + } + AfterDeserializeDictionary(content); + } + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + internal TopicUpdateParameters(global::System.Management.Automation.PSObject content) + { + bool returnNow = false; + BeforeDeserializePSObject(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("Identity")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITopicUpdateParametersInternal)this).Identity = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IIdentityInfo) content.GetValueForProperty("Identity",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITopicUpdateParametersInternal)this).Identity, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IdentityInfoTypeConverter.ConvertFrom); + } + if (content.Contains("Property")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITopicUpdateParametersInternal)this).Property = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITopicUpdateParameterProperties) content.GetValueForProperty("Property",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITopicUpdateParametersInternal)this).Property, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.TopicUpdateParameterPropertiesTypeConverter.ConvertFrom); + } + if (content.Contains("Sku")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITopicUpdateParametersInternal)this).Sku = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IResourceSku) content.GetValueForProperty("Sku",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITopicUpdateParametersInternal)this).Sku, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ResourceSkuTypeConverter.ConvertFrom); + } + if (content.Contains("Tag")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITopicUpdateParametersInternal)this).Tag = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITopicUpdateParametersTags) content.GetValueForProperty("Tag",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITopicUpdateParametersInternal)this).Tag, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.TopicUpdateParametersTagsTypeConverter.ConvertFrom); + } + if (content.Contains("IdentityType")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITopicUpdateParametersInternal)this).IdentityType = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.IdentityType?) content.GetValueForProperty("IdentityType",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITopicUpdateParametersInternal)this).IdentityType, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.IdentityType.CreateFrom); + } + if (content.Contains("SkuName")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITopicUpdateParametersInternal)this).SkuName = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.Sku?) content.GetValueForProperty("SkuName",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITopicUpdateParametersInternal)this).SkuName, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.Sku.CreateFrom); + } + if (content.Contains("IdentityPrincipalId")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITopicUpdateParametersInternal)this).IdentityPrincipalId = (string) content.GetValueForProperty("IdentityPrincipalId",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITopicUpdateParametersInternal)this).IdentityPrincipalId, global::System.Convert.ToString); + } + if (content.Contains("IdentityTenantId")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITopicUpdateParametersInternal)this).IdentityTenantId = (string) content.GetValueForProperty("IdentityTenantId",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITopicUpdateParametersInternal)this).IdentityTenantId, global::System.Convert.ToString); + } + if (content.Contains("IdentityUserAssignedIdentity")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITopicUpdateParametersInternal)this).IdentityUserAssignedIdentity = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IIdentityInfoUserAssignedIdentities) content.GetValueForProperty("IdentityUserAssignedIdentity",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITopicUpdateParametersInternal)this).IdentityUserAssignedIdentity, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IdentityInfoUserAssignedIdentitiesTypeConverter.ConvertFrom); + } + if (content.Contains("PublicNetworkAccess")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITopicUpdateParametersInternal)this).PublicNetworkAccess = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.PublicNetworkAccess?) content.GetValueForProperty("PublicNetworkAccess",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITopicUpdateParametersInternal)this).PublicNetworkAccess, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.PublicNetworkAccess.CreateFrom); + } + if (content.Contains("InboundIPRule")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITopicUpdateParametersInternal)this).InboundIPRule = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IInboundIPRule[]) content.GetValueForProperty("InboundIPRule",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITopicUpdateParametersInternal)this).InboundIPRule, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.InboundIPRuleTypeConverter.ConvertFrom)); + } + if (content.Contains("DisableLocalAuth")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITopicUpdateParametersInternal)this).DisableLocalAuth = (bool?) content.GetValueForProperty("DisableLocalAuth",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITopicUpdateParametersInternal)this).DisableLocalAuth, (__y)=> (bool) global::System.Convert.ChangeType(__y, typeof(bool))); + } + if (content.Contains("DataResidencyBoundary")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITopicUpdateParametersInternal)this).DataResidencyBoundary = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.DataResidencyBoundary?) content.GetValueForProperty("DataResidencyBoundary",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITopicUpdateParametersInternal)this).DataResidencyBoundary, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.DataResidencyBoundary.CreateFrom); + } + AfterDeserializePSObject(content); + } + } + /// Properties of the Topic update + [System.ComponentModel.TypeConverter(typeof(TopicUpdateParametersTypeConverter))] + public partial interface ITopicUpdateParameters + + { + + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/TopicUpdateParameters.TypeConverter.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/TopicUpdateParameters.TypeConverter.cs new file mode 100644 index 000000000000..fa17ae6e49f9 --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/TopicUpdateParameters.TypeConverter.cs @@ -0,0 +1,147 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class TopicUpdateParametersTypeConverter : global::System.Management.Automation.PSTypeConverter + { + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false. + /// + public override bool CanConvertFrom(object sourceValue, global::System.Type destinationType) => CanConvertFrom(sourceValue); + + /// + /// Determines if the converter can convert the parameter to the . + /// + /// the instance to check if it can be converted to the type. + /// + /// true if the instance could be converted to a type, otherwise false + /// + public static bool CanConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return true; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + // we say yest to PSObjects + return true; + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + // we say yest to Hashtables/dictionaries + return true; + } + try + { + if (null != sourceValue.ToJsonString()) + { + return true; + } + } + catch + { + // Not one of our objects + } + try + { + string text = sourceValue.ToString()?.Trim(); + return true == text?.StartsWith("{") && true == text?.EndsWith("}") && Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonType.Object; + } + catch + { + // Doesn't look like it can be treated as JSON + } + return false; + } + + /// + /// Determines if the parameter can be converted to the parameter + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false + /// + public override bool CanConvertTo(object sourceValue, global::System.Type destinationType) => false; + + /// + /// Converts the parameter to the parameter using and + /// + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// + /// an instance of , or null if there is no suitable conversion. + /// + public override object ConvertFrom(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => ConvertFrom(sourceValue); + + /// + /// Converts the parameter to the parameter using and + /// + /// the value to convert into an instance of . + /// + /// an instance of , or null if there is no suitable conversion. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITopicUpdateParameters ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITopicUpdateParameters).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return TopicUpdateParameters.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return TopicUpdateParameters.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return TopicUpdateParameters.DeserializeFromDictionary(sourceValue); + } + return null; + } + + /// NotImplemented -- this will return null + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// will always return null. + public override object ConvertTo(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => null; + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/TopicUpdateParameters.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/TopicUpdateParameters.cs new file mode 100644 index 000000000000..38cd713030d5 --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/TopicUpdateParameters.cs @@ -0,0 +1,270 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Extensions; + + /// Properties of the Topic update + public partial class TopicUpdateParameters : + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITopicUpdateParameters, + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITopicUpdateParametersInternal + { + + /// The data residency boundary for the topic. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Inlined)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.DataResidencyBoundary? DataResidencyBoundary { get => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITopicUpdateParameterPropertiesInternal)Property).DataResidencyBoundary; set => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITopicUpdateParameterPropertiesInternal)Property).DataResidencyBoundary = value ?? ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.DataResidencyBoundary)""); } + + /// + /// This boolean is used to enable or disable local auth. Default value is false. When the property is set to true, only AAD + /// token will be used to authenticate if user is allowed to publish to the topic. + /// + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Inlined)] + public bool? DisableLocalAuth { get => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITopicUpdateParameterPropertiesInternal)Property).DisableLocalAuth; set => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITopicUpdateParameterPropertiesInternal)Property).DisableLocalAuth = value ?? default(bool); } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IIdentityInfo _identity; + + /// Topic resource identity information. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Owned)] + internal Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IIdentityInfo Identity { get => (this._identity = this._identity ?? new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IdentityInfo()); set => this._identity = value; } + + /// The principal ID of resource identity. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Inlined)] + public string IdentityPrincipalId { get => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IIdentityInfoInternal)Identity).PrincipalId; set => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IIdentityInfoInternal)Identity).PrincipalId = value ?? null; } + + /// The tenant ID of resource. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Inlined)] + public string IdentityTenantId { get => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IIdentityInfoInternal)Identity).TenantId; set => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IIdentityInfoInternal)Identity).TenantId = value ?? null; } + + /// + /// The type of managed identity used. The type 'SystemAssigned, UserAssigned' includes both an implicitly created identity + /// and a set of user-assigned identities. The type 'None' will remove any identity. + /// + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Inlined)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.IdentityType? IdentityType { get => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IIdentityInfoInternal)Identity).Type; set => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IIdentityInfoInternal)Identity).Type = value ?? ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.IdentityType)""); } + + /// + /// The list of user identities associated with the resource. The user identity dictionary key references will be ARM resource + /// ids in the form: + /// '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ManagedIdentity/userAssignedIdentities/{identityName}'. + /// This property is currently not used and reserved for future usage. + /// + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Inlined)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IIdentityInfoUserAssignedIdentities IdentityUserAssignedIdentity { get => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IIdentityInfoInternal)Identity).UserAssignedIdentity; set => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IIdentityInfoInternal)Identity).UserAssignedIdentity = value ?? null /* model class */; } + + /// + /// This can be used to restrict traffic from specific IPs instead of all IPs. Note: These are considered only if PublicNetworkAccess + /// is enabled. + /// + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Inlined)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IInboundIPRule[] InboundIPRule { get => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITopicUpdateParameterPropertiesInternal)Property).InboundIPRule; set => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITopicUpdateParameterPropertiesInternal)Property).InboundIPRule = value ?? null /* arrayOf */; } + + /// Internal Acessors for Identity + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IIdentityInfo Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITopicUpdateParametersInternal.Identity { get => (this._identity = this._identity ?? new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IdentityInfo()); set { {_identity = value;} } } + + /// Internal Acessors for Property + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITopicUpdateParameterProperties Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITopicUpdateParametersInternal.Property { get => (this._property = this._property ?? new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.TopicUpdateParameterProperties()); set { {_property = value;} } } + + /// Internal Acessors for Sku + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IResourceSku Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITopicUpdateParametersInternal.Sku { get => (this._sku = this._sku ?? new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ResourceSku()); set { {_sku = value;} } } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITopicUpdateParameterProperties _property; + + /// Properties of the Topic resource. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Owned)] + internal Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITopicUpdateParameterProperties Property { get => (this._property = this._property ?? new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.TopicUpdateParameterProperties()); set => this._property = value; } + + /// + /// This determines if traffic is allowed over public network. By default it is enabled. + /// You can further restrict to specific IPs by configuring + /// + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Inlined)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.PublicNetworkAccess? PublicNetworkAccess { get => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITopicUpdateParameterPropertiesInternal)Property).PublicNetworkAccess; set => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITopicUpdateParameterPropertiesInternal)Property).PublicNetworkAccess = value ?? ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.PublicNetworkAccess)""); } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IResourceSku _sku; + + /// The Sku pricing tier for the topic. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Owned)] + internal Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IResourceSku Sku { get => (this._sku = this._sku ?? new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ResourceSku()); set => this._sku = value; } + + /// The Sku name of the resource. The possible values are: Basic or Premium. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Inlined)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.Sku? SkuName { get => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IResourceSkuInternal)Sku).Name; set => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IResourceSkuInternal)Sku).Name = value ?? ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.Sku)""); } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITopicUpdateParametersTags _tag; + + /// Tags of the Topic resource. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Owned)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITopicUpdateParametersTags Tag { get => (this._tag = this._tag ?? new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.TopicUpdateParametersTags()); set => this._tag = value; } + + /// Creates an new instance. + public TopicUpdateParameters() + { + + } + } + /// Properties of the Topic update + public partial interface ITopicUpdateParameters : + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IJsonSerializable + { + /// The data residency boundary for the topic. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The data residency boundary for the topic.", + SerializedName = @"dataResidencyBoundary", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.DataResidencyBoundary) })] + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.DataResidencyBoundary? DataResidencyBoundary { get; set; } + /// + /// This boolean is used to enable or disable local auth. Default value is false. When the property is set to true, only AAD + /// token will be used to authenticate if user is allowed to publish to the topic. + /// + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"This boolean is used to enable or disable local auth. Default value is false. When the property is set to true, only AAD token will be used to authenticate if user is allowed to publish to the topic.", + SerializedName = @"disableLocalAuth", + PossibleTypes = new [] { typeof(bool) })] + bool? DisableLocalAuth { get; set; } + /// The principal ID of resource identity. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The principal ID of resource identity.", + SerializedName = @"principalId", + PossibleTypes = new [] { typeof(string) })] + string IdentityPrincipalId { get; set; } + /// The tenant ID of resource. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The tenant ID of resource.", + SerializedName = @"tenantId", + PossibleTypes = new [] { typeof(string) })] + string IdentityTenantId { get; set; } + /// + /// The type of managed identity used. The type 'SystemAssigned, UserAssigned' includes both an implicitly created identity + /// and a set of user-assigned identities. The type 'None' will remove any identity. + /// + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The type of managed identity used. The type 'SystemAssigned, UserAssigned' includes both an implicitly created identity and a set of user-assigned identities. The type 'None' will remove any identity.", + SerializedName = @"type", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.IdentityType) })] + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.IdentityType? IdentityType { get; set; } + /// + /// The list of user identities associated with the resource. The user identity dictionary key references will be ARM resource + /// ids in the form: + /// '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ManagedIdentity/userAssignedIdentities/{identityName}'. + /// This property is currently not used and reserved for future usage. + /// + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The list of user identities associated with the resource. The user identity dictionary key references will be ARM resource ids in the form: + '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ManagedIdentity/userAssignedIdentities/{identityName}'. + This property is currently not used and reserved for future usage.", + SerializedName = @"userAssignedIdentities", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IIdentityInfoUserAssignedIdentities) })] + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IIdentityInfoUserAssignedIdentities IdentityUserAssignedIdentity { get; set; } + /// + /// This can be used to restrict traffic from specific IPs instead of all IPs. Note: These are considered only if PublicNetworkAccess + /// is enabled. + /// + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"This can be used to restrict traffic from specific IPs instead of all IPs. Note: These are considered only if PublicNetworkAccess is enabled.", + SerializedName = @"inboundIpRules", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IInboundIPRule) })] + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IInboundIPRule[] InboundIPRule { get; set; } + /// + /// This determines if traffic is allowed over public network. By default it is enabled. + /// You can further restrict to specific IPs by configuring + /// + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"This determines if traffic is allowed over public network. By default it is enabled. + You can further restrict to specific IPs by configuring ", + SerializedName = @"publicNetworkAccess", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.PublicNetworkAccess) })] + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.PublicNetworkAccess? PublicNetworkAccess { get; set; } + /// The Sku name of the resource. The possible values are: Basic or Premium. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The Sku name of the resource. The possible values are: Basic or Premium.", + SerializedName = @"name", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.Sku) })] + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.Sku? SkuName { get; set; } + /// Tags of the Topic resource. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Tags of the Topic resource.", + SerializedName = @"tags", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITopicUpdateParametersTags) })] + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITopicUpdateParametersTags Tag { get; set; } + + } + /// Properties of the Topic update + internal partial interface ITopicUpdateParametersInternal + + { + /// The data residency boundary for the topic. + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.DataResidencyBoundary? DataResidencyBoundary { get; set; } + /// + /// This boolean is used to enable or disable local auth. Default value is false. When the property is set to true, only AAD + /// token will be used to authenticate if user is allowed to publish to the topic. + /// + bool? DisableLocalAuth { get; set; } + /// Topic resource identity information. + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IIdentityInfo Identity { get; set; } + /// The principal ID of resource identity. + string IdentityPrincipalId { get; set; } + /// The tenant ID of resource. + string IdentityTenantId { get; set; } + /// + /// The type of managed identity used. The type 'SystemAssigned, UserAssigned' includes both an implicitly created identity + /// and a set of user-assigned identities. The type 'None' will remove any identity. + /// + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.IdentityType? IdentityType { get; set; } + /// + /// The list of user identities associated with the resource. The user identity dictionary key references will be ARM resource + /// ids in the form: + /// '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ManagedIdentity/userAssignedIdentities/{identityName}'. + /// This property is currently not used and reserved for future usage. + /// + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IIdentityInfoUserAssignedIdentities IdentityUserAssignedIdentity { get; set; } + /// + /// This can be used to restrict traffic from specific IPs instead of all IPs. Note: These are considered only if PublicNetworkAccess + /// is enabled. + /// + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IInboundIPRule[] InboundIPRule { get; set; } + /// Properties of the Topic resource. + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITopicUpdateParameterProperties Property { get; set; } + /// + /// This determines if traffic is allowed over public network. By default it is enabled. + /// You can further restrict to specific IPs by configuring + /// + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.PublicNetworkAccess? PublicNetworkAccess { get; set; } + /// The Sku pricing tier for the topic. + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IResourceSku Sku { get; set; } + /// The Sku name of the resource. The possible values are: Basic or Premium. + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.Sku? SkuName { get; set; } + /// Tags of the Topic resource. + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITopicUpdateParametersTags Tag { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/TopicUpdateParameters.json.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/TopicUpdateParameters.json.cs new file mode 100644 index 000000000000..4f2fd05f23fc --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/TopicUpdateParameters.json.cs @@ -0,0 +1,112 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Extensions; + + /// Properties of the Topic update + public partial class TopicUpdateParameters + { + + /// + /// AfterFromJson will be called after the json deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JsonNode that should be deserialized into this object. + + partial void AfterFromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json erialization has finished, allowing customization of the before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JSON container that the serialization result will be placed in. + + partial void AfterToJson(ref Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject container); + + /// + /// BeforeFromJson will be called before the json deserialization has commenced, allowing complete customization of + /// the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JsonNode that should be deserialized into this object. + /// Determines if the rest of the deserialization should be processed, or if the method should return + /// instantly. + + partial void BeforeFromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject json, ref bool returnNow); + + /// + /// BeforeToJson will be called before the json serialization has commenced, allowing complete customization of the + /// object before it is serialized. + /// If you wish to disable the default serialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JSON container that the serialization result will be placed in. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeToJson(ref Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITopicUpdateParameters. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITopicUpdateParameters. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITopicUpdateParameters FromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject json ? new TopicUpdateParameters(json) : null; + } + + /// + /// Serializes this instance of into a . + /// + /// The container to serialize this object into. If the caller + /// passes in null, a new instance will be created and returned to the caller. + /// Allows the caller to choose the depth of the serialization. See . + /// + /// a serialized instance of as a . + /// + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject(); + + bool returnNow = false; + BeforeToJson(ref container, ref returnNow); + if (returnNow) + { + return container; + } + AddIf( null != this._identity ? (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode) this._identity.ToJson(null,serializationMode) : null, "identity" ,container.Add ); + AddIf( null != this._property ? (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode) this._property.ToJson(null,serializationMode) : null, "properties" ,container.Add ); + AddIf( null != this._sku ? (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode) this._sku.ToJson(null,serializationMode) : null, "sku" ,container.Add ); + AddIf( null != this._tag ? (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode) this._tag.ToJson(null,serializationMode) : null, "tags" ,container.Add ); + AfterToJson(ref container); + return container; + } + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject instance to deserialize from. + internal TopicUpdateParameters(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Models.Api20211015Preview.IdentityInfo.FromJson(__jsonIdentity) : Identity;} + {_property = If( json?.PropertyT("properties"), out var __jsonProperties) ? Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.TopicUpdateParameterProperties.FromJson(__jsonProperties) : Property;} + {_sku = If( json?.PropertyT("sku"), out var __jsonSku) ? Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ResourceSku.FromJson(__jsonSku) : Sku;} + {_tag = If( json?.PropertyT("tags"), out var __jsonTags) ? Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.TopicUpdateParametersTags.FromJson(__jsonTags) : Tag;} + AfterFromJson(json); + } + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/TopicUpdateParametersTags.PowerShell.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/TopicUpdateParametersTags.PowerShell.cs new file mode 100644 index 000000000000..5a3ad3603a35 --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/TopicUpdateParametersTags.PowerShell.cs @@ -0,0 +1,140 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell; + + /// Tags of the Topic resource. + [System.ComponentModel.TypeConverter(typeof(TopicUpdateParametersTagsTypeConverter))] + public partial class TopicUpdateParametersTags + { + + /// + /// AfterDeserializeDictionary will be called after the deserialization has finished, allowing customization of the + /// object before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Collections.IDictionary content that should be used. + + partial void AfterDeserializeDictionary(global::System.Collections.IDictionary content); + + /// + /// AfterDeserializePSObject will be called after the deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Management.Automation.PSObject content that should be used. + + partial void AfterDeserializePSObject(global::System.Management.Automation.PSObject content); + + /// + /// BeforeDeserializeDictionary will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Collections.IDictionary content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializeDictionary(global::System.Collections.IDictionary content, ref bool returnNow); + + /// + /// BeforeDeserializePSObject will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializePSObject(global::System.Management.Automation.PSObject content, ref bool returnNow); + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITopicUpdateParametersTags DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new TopicUpdateParametersTags(content); + } + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITopicUpdateParametersTags DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new TopicUpdateParametersTags(content); + } + + /// + /// Creates a new instance of , deserializing the content from a json string. + /// + /// a string containing a JSON serialized instance of this model. + /// an instance of the model class. + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITopicUpdateParametersTags FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode.Parse(jsonText)); + + /// Serializes this instance to a json string. + + /// a containing this model serialized to JSON text. + public string ToJsonString() => ToJson(null, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SerializationMode.IncludeAll)?.ToString(); + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + internal TopicUpdateParametersTags(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 TopicUpdateParametersTags(global::System.Management.Automation.PSObject content) + { + bool returnNow = false; + BeforeDeserializePSObject(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + // this type is a dictionary; copy elements from source to here. + CopyFrom(content); + AfterDeserializePSObject(content); + } + } + /// Tags of the Topic resource. + [System.ComponentModel.TypeConverter(typeof(TopicUpdateParametersTagsTypeConverter))] + public partial interface ITopicUpdateParametersTags + + { + + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/TopicUpdateParametersTags.TypeConverter.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/TopicUpdateParametersTags.TypeConverter.cs new file mode 100644 index 000000000000..605246353109 --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/TopicUpdateParametersTags.TypeConverter.cs @@ -0,0 +1,147 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class TopicUpdateParametersTagsTypeConverter : global::System.Management.Automation.PSTypeConverter + { + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false. + /// + public override bool CanConvertFrom(object sourceValue, global::System.Type destinationType) => CanConvertFrom(sourceValue); + + /// + /// Determines if the converter can convert the parameter to the . + /// + /// the instance to check if it can be converted to the type. + /// + /// true if the instance could be converted to a type, otherwise false + /// + public static bool CanConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return true; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + // we say yest to PSObjects + return true; + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + // we say yest to Hashtables/dictionaries + return true; + } + try + { + if (null != sourceValue.ToJsonString()) + { + return true; + } + } + catch + { + // Not one of our objects + } + try + { + string text = sourceValue.ToString()?.Trim(); + return true == text?.StartsWith("{") && true == text?.EndsWith("}") && Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonType.Object; + } + catch + { + // Doesn't look like it can be treated as JSON + } + return false; + } + + /// + /// Determines if the parameter can be converted to the parameter + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false + /// + public override bool CanConvertTo(object sourceValue, global::System.Type destinationType) => false; + + /// + /// Converts the parameter to the parameter using and + /// + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// + /// an instance of , or null if there is no suitable conversion. + /// + public override object ConvertFrom(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => ConvertFrom(sourceValue); + + /// + /// Converts the parameter to the parameter using and + /// + /// the value to convert into an instance of . + /// + /// an instance of , or null if there is no suitable conversion. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITopicUpdateParametersTags ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITopicUpdateParametersTags).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return TopicUpdateParametersTags.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return TopicUpdateParametersTags.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return TopicUpdateParametersTags.DeserializeFromDictionary(sourceValue); + } + return null; + } + + /// NotImplemented -- this will return null + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// will always return null. + public override object ConvertTo(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => null; + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/TopicUpdateParametersTags.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/TopicUpdateParametersTags.cs new file mode 100644 index 000000000000..2e34142a5de6 --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/TopicUpdateParametersTags.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.EventGrid.Models.Api20211015Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Extensions; + + /// Tags of the Topic resource. + public partial class TopicUpdateParametersTags : + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITopicUpdateParametersTags, + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITopicUpdateParametersTagsInternal + { + + /// Creates an new instance. + public TopicUpdateParametersTags() + { + + } + } + /// Tags of the Topic resource. + public partial interface ITopicUpdateParametersTags : + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IJsonSerializable, + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IAssociativeArray + { + + } + /// Tags of the Topic resource. + internal partial interface ITopicUpdateParametersTagsInternal + + { + + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/TopicUpdateParametersTags.dictionary.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/TopicUpdateParametersTags.dictionary.cs new file mode 100644 index 000000000000..a2939707a5fb --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/TopicUpdateParametersTags.dictionary.cs @@ -0,0 +1,75 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Extensions; + + public partial class TopicUpdateParametersTags : + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IAssociativeArray + { + protected global::System.Collections.Generic.Dictionary __additionalProperties = new global::System.Collections.Generic.Dictionary(); + + global::System.Collections.Generic.IDictionary Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IAssociativeArray.AdditionalProperties { get => __additionalProperties; } + + int Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IAssociativeArray.Count { get => __additionalProperties.Count; } + + global::System.Collections.Generic.IEnumerable Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IAssociativeArray.Keys { get => __additionalProperties.Keys; } + + global::System.Collections.Generic.IEnumerable Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.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.EventGrid.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.EventGrid.Models.Api20211015Preview.TopicUpdateParametersTags source) => source.__additionalProperties; + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/TopicUpdateParametersTags.json.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/TopicUpdateParametersTags.json.cs new file mode 100644 index 000000000000..6ae42755468c --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/TopicUpdateParametersTags.json.cs @@ -0,0 +1,107 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Extensions; + + /// Tags of the Topic resource. + public partial class TopicUpdateParametersTags + { + + /// + /// AfterFromJson will be called after the json deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JsonNode that should be deserialized into this object. + + partial void AfterFromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json erialization has finished, allowing customization of the before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JSON container that the serialization result will be placed in. + + partial void AfterToJson(ref Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject container); + + /// + /// BeforeFromJson will be called before the json deserialization has commenced, allowing complete customization of + /// the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JsonNode that should be deserialized into this object. + /// Determines if the rest of the deserialization should be processed, or if the method should return + /// instantly. + + partial void BeforeFromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject json, ref bool returnNow); + + /// + /// BeforeToJson will be called before the json serialization has commenced, allowing complete customization of the + /// object before it is serialized. + /// If you wish to disable the default serialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JSON container that the serialization result will be placed in. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeToJson(ref Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITopicUpdateParametersTags. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITopicUpdateParametersTags. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITopicUpdateParametersTags FromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject json ? new TopicUpdateParametersTags(json) : null; + } + + /// + /// Serializes this instance of into a . + /// + /// The container to serialize this object into. If the caller + /// passes in null, a new instance will be created and returned to the caller. + /// Allows the caller to choose the depth of the serialization. See . + /// + /// a serialized instance of as a . + /// + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject(); + + bool returnNow = false; + BeforeToJson(ref container, ref returnNow); + if (returnNow) + { + return container; + } + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.JsonSerializable.ToJson( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IAssociativeArray)this).AdditionalProperties, container); + AfterToJson(ref container); + return container; + } + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject instance to deserialize from. + /// + internal TopicUpdateParametersTags(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Runtime.JsonSerializable.FromJson( json, ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IAssociativeArray)this).AdditionalProperties, null ,exclusions ); + AfterFromJson(json); + } + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/TopicsListResult.PowerShell.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/TopicsListResult.PowerShell.cs new file mode 100644 index 000000000000..67a14324dcb4 --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/TopicsListResult.PowerShell.cs @@ -0,0 +1,150 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell; + + /// Result of the List Topics operation + [System.ComponentModel.TypeConverter(typeof(TopicsListResultTypeConverter))] + public partial class TopicsListResult + { + + /// + /// AfterDeserializeDictionary will be called after the deserialization has finished, allowing customization of the + /// object before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Collections.IDictionary content that should be used. + + partial void AfterDeserializeDictionary(global::System.Collections.IDictionary content); + + /// + /// AfterDeserializePSObject will be called after the deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Management.Automation.PSObject content that should be used. + + partial void AfterDeserializePSObject(global::System.Management.Automation.PSObject content); + + /// + /// BeforeDeserializeDictionary will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Collections.IDictionary content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializeDictionary(global::System.Collections.IDictionary content, ref bool returnNow); + + /// + /// BeforeDeserializePSObject will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializePSObject(global::System.Management.Automation.PSObject content, ref bool returnNow); + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITopicsListResult DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new TopicsListResult(content); + } + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITopicsListResult DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new TopicsListResult(content); + } + + /// + /// Creates a new instance of , deserializing the content from a json string. + /// + /// a string containing a JSON serialized instance of this model. + /// an instance of the model class. + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITopicsListResult FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode.Parse(jsonText)); + + /// Serializes this instance to a json string. + + /// a containing this model serialized to JSON text. + public string ToJsonString() => ToJson(null, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SerializationMode.IncludeAll)?.ToString(); + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + internal TopicsListResult(global::System.Collections.IDictionary content) + { + bool returnNow = false; + BeforeDeserializeDictionary(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("Value")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITopicsListResultInternal)this).Value = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITopic[]) content.GetValueForProperty("Value",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITopicsListResultInternal)this).Value, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.TopicTypeConverter.ConvertFrom)); + } + if (content.Contains("NextLink")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITopicsListResultInternal)this).NextLink = (string) content.GetValueForProperty("NextLink",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITopicsListResultInternal)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 TopicsListResult(global::System.Management.Automation.PSObject content) + { + bool returnNow = false; + BeforeDeserializePSObject(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("Value")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITopicsListResultInternal)this).Value = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITopic[]) content.GetValueForProperty("Value",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITopicsListResultInternal)this).Value, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.TopicTypeConverter.ConvertFrom)); + } + if (content.Contains("NextLink")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITopicsListResultInternal)this).NextLink = (string) content.GetValueForProperty("NextLink",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITopicsListResultInternal)this).NextLink, global::System.Convert.ToString); + } + AfterDeserializePSObject(content); + } + } + /// Result of the List Topics operation + [System.ComponentModel.TypeConverter(typeof(TopicsListResultTypeConverter))] + public partial interface ITopicsListResult + + { + + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/TopicsListResult.TypeConverter.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/TopicsListResult.TypeConverter.cs new file mode 100644 index 000000000000..ca8d33c82519 --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/TopicsListResult.TypeConverter.cs @@ -0,0 +1,146 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class TopicsListResultTypeConverter : global::System.Management.Automation.PSTypeConverter + { + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false. + /// + public override bool CanConvertFrom(object sourceValue, global::System.Type destinationType) => CanConvertFrom(sourceValue); + + /// + /// Determines if the converter can convert the parameter to the . + /// + /// the instance to check if it can be converted to the type. + /// + /// true if the instance could be converted to a type, otherwise false + /// + public static bool CanConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return true; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + // we say yest to PSObjects + return true; + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + // we say yest to Hashtables/dictionaries + return true; + } + try + { + if (null != sourceValue.ToJsonString()) + { + return true; + } + } + catch + { + // Not one of our objects + } + try + { + string text = sourceValue.ToString()?.Trim(); + return true == text?.StartsWith("{") && true == text?.EndsWith("}") && Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonType.Object; + } + catch + { + // Doesn't look like it can be treated as JSON + } + return false; + } + + /// + /// Determines if the parameter can be converted to the parameter + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false + /// + public override bool CanConvertTo(object sourceValue, global::System.Type destinationType) => false; + + /// + /// Converts the parameter to the parameter using and + /// + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// + /// an instance of , or null if there is no suitable conversion. + /// + public override object ConvertFrom(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => ConvertFrom(sourceValue); + + /// + /// Converts the parameter to the parameter using and + /// + /// the value to convert into an instance of . + /// + /// an instance of , or null if there is no suitable conversion. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITopicsListResult ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITopicsListResult).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return TopicsListResult.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return TopicsListResult.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return TopicsListResult.DeserializeFromDictionary(sourceValue); + } + return null; + } + + /// NotImplemented -- this will return null + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// will always return null. + public override object ConvertTo(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => null; + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/TopicsListResult.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/TopicsListResult.cs new file mode 100644 index 000000000000..d6b047a66a83 --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/TopicsListResult.cs @@ -0,0 +1,68 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Extensions; + + /// Result of the List Topics operation + public partial class TopicsListResult : + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITopicsListResult, + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITopicsListResultInternal + { + + /// Backing field for property. + private string _nextLink; + + /// A link for the next page of topics + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Owned)] + public string NextLink { get => this._nextLink; set => this._nextLink = value; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITopic[] _value; + + /// A collection of Topics + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Owned)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITopic[] Value { get => this._value; set => this._value = value; } + + /// Creates an new instance. + public TopicsListResult() + { + + } + } + /// Result of the List Topics operation + public partial interface ITopicsListResult : + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IJsonSerializable + { + /// A link for the next page of topics + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"A link for the next page of topics", + SerializedName = @"nextLink", + PossibleTypes = new [] { typeof(string) })] + string NextLink { get; set; } + /// A collection of Topics + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"A collection of Topics", + SerializedName = @"value", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITopic) })] + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITopic[] Value { get; set; } + + } + /// Result of the List Topics operation + internal partial interface ITopicsListResultInternal + + { + /// A link for the next page of topics + string NextLink { get; set; } + /// A collection of Topics + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITopic[] Value { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/TopicsListResult.json.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/TopicsListResult.json.cs new file mode 100644 index 000000000000..e1341d3ad39f --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/TopicsListResult.json.cs @@ -0,0 +1,116 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Extensions; + + /// Result of the List Topics operation + public partial class TopicsListResult + { + + /// + /// AfterFromJson will be called after the json deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JsonNode that should be deserialized into this object. + + partial void AfterFromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json erialization has finished, allowing customization of the before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JSON container that the serialization result will be placed in. + + partial void AfterToJson(ref Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject container); + + /// + /// BeforeFromJson will be called before the json deserialization has commenced, allowing complete customization of + /// the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JsonNode that should be deserialized into this object. + /// Determines if the rest of the deserialization should be processed, or if the method should return + /// instantly. + + partial void BeforeFromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject json, ref bool returnNow); + + /// + /// BeforeToJson will be called before the json serialization has commenced, allowing complete customization of the + /// object before it is serialized. + /// If you wish to disable the default serialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JSON container that the serialization result will be placed in. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeToJson(ref Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITopicsListResult. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITopicsListResult. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITopicsListResult FromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject json ? new TopicsListResult(json) : null; + } + + /// + /// Serializes this instance of into a . + /// + /// The container to serialize this object into. If the caller + /// passes in null, a new instance will be created and returned to the caller. + /// Allows the caller to choose the depth of the serialization. See . + /// + /// a serialized instance of as a . + /// + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Runtime.Json.XNodeArray(); + foreach( var __x in this._value ) + { + AddIf(__x?.ToJson(null, serializationMode) ,__w.Add); + } + container.Add("value",__w); + } + AddIf( null != (((object)this._nextLink)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonString(this._nextLink.ToString()) : null, "nextLink" ,container.Add ); + AfterToJson(ref container); + return container; + } + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject instance to deserialize from. + internal TopicsListResult(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.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.EventGrid.Models.Api20211015Preview.ITopic) (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.Topic.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/eventgrid/generated/api/Models/Api20211015Preview/TrackedResource.PowerShell.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/TrackedResource.PowerShell.cs new file mode 100644 index 000000000000..1ad6d99085c2 --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/TrackedResource.PowerShell.cs @@ -0,0 +1,174 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell; + + /// Definition of a Tracked Resource. + [System.ComponentModel.TypeConverter(typeof(TrackedResourceTypeConverter))] + public partial class TrackedResource + { + + /// + /// AfterDeserializeDictionary will be called after the deserialization has finished, allowing customization of the + /// object before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Collections.IDictionary content that should be used. + + partial void AfterDeserializeDictionary(global::System.Collections.IDictionary content); + + /// + /// AfterDeserializePSObject will be called after the deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Management.Automation.PSObject content that should be used. + + partial void AfterDeserializePSObject(global::System.Management.Automation.PSObject content); + + /// + /// BeforeDeserializeDictionary will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Collections.IDictionary content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializeDictionary(global::System.Collections.IDictionary content, ref bool returnNow); + + /// + /// BeforeDeserializePSObject will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializePSObject(global::System.Management.Automation.PSObject content, ref bool returnNow); + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITrackedResource DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new TrackedResource(content); + } + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITrackedResource DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new TrackedResource(content); + } + + /// + /// Creates a new instance of , deserializing the content from a json string. + /// + /// a string containing a JSON serialized instance of this model. + /// an instance of the model class. + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITrackedResource FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode.Parse(jsonText)); + + /// Serializes this instance to a json string. + + /// a containing this model serialized to JSON text. + public string ToJsonString() => ToJson(null, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SerializationMode.IncludeAll)?.ToString(); + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + internal TrackedResource(global::System.Collections.IDictionary content) + { + bool returnNow = false; + BeforeDeserializeDictionary(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("Location")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITrackedResourceInternal)this).Location = (string) content.GetValueForProperty("Location",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITrackedResourceInternal)this).Location, global::System.Convert.ToString); + } + if (content.Contains("Tag")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITrackedResourceInternal)this).Tag = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITrackedResourceTags) content.GetValueForProperty("Tag",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITrackedResourceInternal)this).Tag, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.TrackedResourceTagsTypeConverter.ConvertFrom); + } + if (content.Contains("Id")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IResourceInternal)this).Id = (string) content.GetValueForProperty("Id",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IResourceInternal)this).Id, global::System.Convert.ToString); + } + if (content.Contains("Name")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IResourceInternal)this).Name = (string) content.GetValueForProperty("Name",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IResourceInternal)this).Name, global::System.Convert.ToString); + } + if (content.Contains("Type")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IResourceInternal)this).Type = (string) content.GetValueForProperty("Type",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IResourceInternal)this).Type, global::System.Convert.ToString); + } + AfterDeserializeDictionary(content); + } + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + internal TrackedResource(global::System.Management.Automation.PSObject content) + { + bool returnNow = false; + BeforeDeserializePSObject(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("Location")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITrackedResourceInternal)this).Location = (string) content.GetValueForProperty("Location",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITrackedResourceInternal)this).Location, global::System.Convert.ToString); + } + if (content.Contains("Tag")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITrackedResourceInternal)this).Tag = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITrackedResourceTags) content.GetValueForProperty("Tag",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITrackedResourceInternal)this).Tag, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.TrackedResourceTagsTypeConverter.ConvertFrom); + } + if (content.Contains("Id")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IResourceInternal)this).Id = (string) content.GetValueForProperty("Id",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IResourceInternal)this).Id, global::System.Convert.ToString); + } + if (content.Contains("Name")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IResourceInternal)this).Name = (string) content.GetValueForProperty("Name",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IResourceInternal)this).Name, global::System.Convert.ToString); + } + if (content.Contains("Type")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IResourceInternal)this).Type = (string) content.GetValueForProperty("Type",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IResourceInternal)this).Type, global::System.Convert.ToString); + } + AfterDeserializePSObject(content); + } + } + /// Definition of a Tracked Resource. + [System.ComponentModel.TypeConverter(typeof(TrackedResourceTypeConverter))] + public partial interface ITrackedResource + + { + + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/TrackedResource.TypeConverter.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/TrackedResource.TypeConverter.cs new file mode 100644 index 000000000000..9396bae6d04b --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/TrackedResource.TypeConverter.cs @@ -0,0 +1,146 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class TrackedResourceTypeConverter : global::System.Management.Automation.PSTypeConverter + { + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false. + /// + public override bool CanConvertFrom(object sourceValue, global::System.Type destinationType) => CanConvertFrom(sourceValue); + + /// + /// Determines if the converter can convert the parameter to the . + /// + /// the instance to check if it can be converted to the type. + /// + /// true if the instance could be converted to a type, otherwise false + /// + public static bool CanConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return true; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + // we say yest to PSObjects + return true; + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + // we say yest to Hashtables/dictionaries + return true; + } + try + { + if (null != sourceValue.ToJsonString()) + { + return true; + } + } + catch + { + // Not one of our objects + } + try + { + string text = sourceValue.ToString()?.Trim(); + return true == text?.StartsWith("{") && true == text?.EndsWith("}") && Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonType.Object; + } + catch + { + // Doesn't look like it can be treated as JSON + } + return false; + } + + /// + /// Determines if the parameter can be converted to the parameter + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false + /// + public override bool CanConvertTo(object sourceValue, global::System.Type destinationType) => false; + + /// + /// Converts the parameter to the parameter using and + /// + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// + /// an instance of , or null if there is no suitable conversion. + /// + public override object ConvertFrom(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => ConvertFrom(sourceValue); + + /// + /// Converts the parameter to the parameter using and + /// + /// the value to convert into an instance of . + /// + /// an instance of , or null if there is no suitable conversion. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITrackedResource ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITrackedResource).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return TrackedResource.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return TrackedResource.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return TrackedResource.DeserializeFromDictionary(sourceValue); + } + return null; + } + + /// NotImplemented -- this will return null + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// will always return null. + public override object ConvertTo(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => null; + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/TrackedResource.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/TrackedResource.cs new file mode 100644 index 000000000000..588aa2408aad --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/TrackedResource.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.EventGrid.Models.Api20211015Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Extensions; + + /// Definition of a Tracked Resource. + public partial class TrackedResource : + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITrackedResource, + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITrackedResourceInternal, + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IValidates + { + /// + /// Backing field for Inherited model + /// + private Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IResource __resource = new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.Resource(); + + /// Fully qualified identifier of the resource. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Inherited)] + public string Id { get => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IResourceInternal)__resource).Id; } + + /// Backing field for property. + private string _location; + + /// Location of the resource. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Owned)] + public string Location { get => this._location; set => this._location = value; } + + /// Internal Acessors for Id + string Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IResourceInternal.Id { get => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IResourceInternal)__resource).Id; set => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IResourceInternal)__resource).Id = value; } + + /// Internal Acessors for Name + string Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IResourceInternal.Name { get => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IResourceInternal)__resource).Name; set => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IResourceInternal)__resource).Name = value; } + + /// Internal Acessors for Type + string Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IResourceInternal.Type { get => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IResourceInternal)__resource).Type; set => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IResourceInternal)__resource).Type = value; } + + /// Name of the resource. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Inherited)] + public string Name { get => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IResourceInternal)__resource).Name; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITrackedResourceTags _tag; + + /// Tags of the resource. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Owned)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITrackedResourceTags Tag { get => (this._tag = this._tag ?? new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.TrackedResourceTags()); set => this._tag = value; } + + /// Type of the resource. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Inherited)] + public string Type { get => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IResourceInternal)__resource).Type; } + + /// Creates an new instance. + public TrackedResource() + { + + } + + /// Validates that this object meets the validation criteria. + /// an instance that will receive validation + /// events. + /// + /// A that will be complete when validation is completed. + /// + public async global::System.Threading.Tasks.Task Validate(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener eventListener) + { + await eventListener.AssertNotNull(nameof(__resource), __resource); + await eventListener.AssertObjectIsValid(nameof(__resource), __resource); + } + } + /// Definition of a Tracked Resource. + public partial interface ITrackedResource : + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IJsonSerializable, + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IResource + { + /// Location of the resource. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Location of the resource.", + SerializedName = @"location", + PossibleTypes = new [] { typeof(string) })] + string Location { get; set; } + /// Tags of the resource. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Tags of the resource.", + SerializedName = @"tags", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITrackedResourceTags) })] + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITrackedResourceTags Tag { get; set; } + + } + /// Definition of a Tracked Resource. + internal partial interface ITrackedResourceInternal : + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IResourceInternal + { + /// Location of the resource. + string Location { get; set; } + /// Tags of the resource. + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITrackedResourceTags Tag { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/TrackedResource.json.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/TrackedResource.json.cs new file mode 100644 index 000000000000..d3132cc882ae --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/TrackedResource.json.cs @@ -0,0 +1,110 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Extensions; + + /// Definition of a Tracked Resource. + public partial class TrackedResource + { + + /// + /// AfterFromJson will be called after the json deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JsonNode that should be deserialized into this object. + + partial void AfterFromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json erialization has finished, allowing customization of the before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JSON container that the serialization result will be placed in. + + partial void AfterToJson(ref Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject container); + + /// + /// BeforeFromJson will be called before the json deserialization has commenced, allowing complete customization of + /// the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JsonNode that should be deserialized into this object. + /// Determines if the rest of the deserialization should be processed, or if the method should return + /// instantly. + + partial void BeforeFromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject json, ref bool returnNow); + + /// + /// BeforeToJson will be called before the json serialization has commenced, allowing complete customization of the + /// object before it is serialized. + /// If you wish to disable the default serialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JSON container that the serialization result will be placed in. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeToJson(ref Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITrackedResource. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITrackedResource. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITrackedResource FromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject json ? new TrackedResource(json) : null; + } + + /// + /// Serializes this instance of into a . + /// + /// The container to serialize this object into. If the caller + /// passes in null, a new instance will be created and returned to the caller. + /// Allows the caller to choose the depth of the serialization. See . + /// + /// a serialized instance of as a . + /// + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject(); + + bool returnNow = false; + BeforeToJson(ref container, ref returnNow); + if (returnNow) + { + return container; + } + __resource?.ToJson(container, serializationMode); + AddIf( null != (((object)this._location)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonString(this._location.ToString()) : null, "location" ,container.Add ); + AddIf( null != this._tag ? (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode) this._tag.ToJson(null,serializationMode) : null, "tags" ,container.Add ); + AfterToJson(ref container); + return container; + } + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject instance to deserialize from. + internal TrackedResource(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject json) + { + bool returnNow = false; + BeforeFromJson(json, ref returnNow); + if (returnNow) + { + return; + } + __resource = new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.Resource(json); + {_location = If( json?.PropertyT("location"), out var __jsonLocation) ? (string)__jsonLocation : (string)Location;} + {_tag = If( json?.PropertyT("tags"), out var __jsonTags) ? Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.TrackedResourceTags.FromJson(__jsonTags) : Tag;} + AfterFromJson(json); + } + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/TrackedResourceTags.PowerShell.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/TrackedResourceTags.PowerShell.cs new file mode 100644 index 000000000000..a4267d56f133 --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/TrackedResourceTags.PowerShell.cs @@ -0,0 +1,140 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell; + + /// Tags of the resource. + [System.ComponentModel.TypeConverter(typeof(TrackedResourceTagsTypeConverter))] + public partial class TrackedResourceTags + { + + /// + /// AfterDeserializeDictionary will be called after the deserialization has finished, allowing customization of the + /// object before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Collections.IDictionary content that should be used. + + partial void AfterDeserializeDictionary(global::System.Collections.IDictionary content); + + /// + /// AfterDeserializePSObject will be called after the deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Management.Automation.PSObject content that should be used. + + partial void AfterDeserializePSObject(global::System.Management.Automation.PSObject content); + + /// + /// BeforeDeserializeDictionary will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Collections.IDictionary content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializeDictionary(global::System.Collections.IDictionary content, ref bool returnNow); + + /// + /// BeforeDeserializePSObject will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializePSObject(global::System.Management.Automation.PSObject content, ref bool returnNow); + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITrackedResourceTags DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new TrackedResourceTags(content); + } + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITrackedResourceTags DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new TrackedResourceTags(content); + } + + /// + /// Creates a new instance of , deserializing the content from a json string. + /// + /// a string containing a JSON serialized instance of this model. + /// an instance of the model class. + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITrackedResourceTags FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode.Parse(jsonText)); + + /// Serializes this instance to a json string. + + /// a containing this model serialized to JSON text. + public string ToJsonString() => ToJson(null, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SerializationMode.IncludeAll)?.ToString(); + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + internal TrackedResourceTags(global::System.Collections.IDictionary content) + { + bool returnNow = false; + BeforeDeserializeDictionary(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + // this type is a dictionary; copy elements from source to here. + CopyFrom(content); + AfterDeserializeDictionary(content); + } + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + internal TrackedResourceTags(global::System.Management.Automation.PSObject content) + { + bool returnNow = false; + BeforeDeserializePSObject(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + // this type is a dictionary; copy elements from source to here. + CopyFrom(content); + AfterDeserializePSObject(content); + } + } + /// Tags of the resource. + [System.ComponentModel.TypeConverter(typeof(TrackedResourceTagsTypeConverter))] + public partial interface ITrackedResourceTags + + { + + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/TrackedResourceTags.TypeConverter.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/TrackedResourceTags.TypeConverter.cs new file mode 100644 index 000000000000..2a18fa2c97d9 --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/TrackedResourceTags.TypeConverter.cs @@ -0,0 +1,147 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class TrackedResourceTagsTypeConverter : global::System.Management.Automation.PSTypeConverter + { + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false. + /// + public override bool CanConvertFrom(object sourceValue, global::System.Type destinationType) => CanConvertFrom(sourceValue); + + /// + /// Determines if the converter can convert the parameter to the . + /// + /// the instance to check if it can be converted to the type. + /// + /// true if the instance could be converted to a type, otherwise false + /// + public static bool CanConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return true; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + // we say yest to PSObjects + return true; + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + // we say yest to Hashtables/dictionaries + return true; + } + try + { + if (null != sourceValue.ToJsonString()) + { + return true; + } + } + catch + { + // Not one of our objects + } + try + { + string text = sourceValue.ToString()?.Trim(); + return true == text?.StartsWith("{") && true == text?.EndsWith("}") && Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonType.Object; + } + catch + { + // Doesn't look like it can be treated as JSON + } + return false; + } + + /// + /// Determines if the parameter can be converted to the parameter + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false + /// + public override bool CanConvertTo(object sourceValue, global::System.Type destinationType) => false; + + /// + /// Converts the parameter to the parameter using and + /// + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// + /// an instance of , or null if there is no suitable conversion. + /// + public override object ConvertFrom(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => ConvertFrom(sourceValue); + + /// + /// Converts the parameter to the parameter using and + /// + /// the value to convert into an instance of . + /// + /// an instance of , or null if there is no suitable conversion. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITrackedResourceTags ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITrackedResourceTags).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return TrackedResourceTags.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return TrackedResourceTags.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return TrackedResourceTags.DeserializeFromDictionary(sourceValue); + } + return null; + } + + /// NotImplemented -- this will return null + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// will always return null. + public override object ConvertTo(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => null; + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/TrackedResourceTags.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/TrackedResourceTags.cs new file mode 100644 index 000000000000..6ae985ce490e --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/TrackedResourceTags.cs @@ -0,0 +1,35 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Extensions; + + /// Tags of the resource. + public partial class TrackedResourceTags : + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITrackedResourceTags, + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITrackedResourceTagsInternal + { + + /// Creates an new instance. + public TrackedResourceTags() + { + + } + } + /// Tags of the resource. + public partial interface ITrackedResourceTags : + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IJsonSerializable, + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IAssociativeArray + { + + } + /// Tags of the resource. + internal partial interface ITrackedResourceTagsInternal + + { + + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/TrackedResourceTags.dictionary.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/TrackedResourceTags.dictionary.cs new file mode 100644 index 000000000000..3310d6359e53 --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/TrackedResourceTags.dictionary.cs @@ -0,0 +1,75 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Extensions; + + public partial class TrackedResourceTags : + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IAssociativeArray + { + protected global::System.Collections.Generic.Dictionary __additionalProperties = new global::System.Collections.Generic.Dictionary(); + + global::System.Collections.Generic.IDictionary Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IAssociativeArray.AdditionalProperties { get => __additionalProperties; } + + int Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IAssociativeArray.Count { get => __additionalProperties.Count; } + + global::System.Collections.Generic.IEnumerable Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IAssociativeArray.Keys { get => __additionalProperties.Keys; } + + global::System.Collections.Generic.IEnumerable Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.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.EventGrid.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.EventGrid.Models.Api20211015Preview.TrackedResourceTags source) => source.__additionalProperties; + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/TrackedResourceTags.json.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/TrackedResourceTags.json.cs new file mode 100644 index 000000000000..d5bcb5f09f7c --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/TrackedResourceTags.json.cs @@ -0,0 +1,107 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Extensions; + + /// Tags of the resource. + public partial class TrackedResourceTags + { + + /// + /// AfterFromJson will be called after the json deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JsonNode that should be deserialized into this object. + + partial void AfterFromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json erialization has finished, allowing customization of the before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JSON container that the serialization result will be placed in. + + partial void AfterToJson(ref Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject container); + + /// + /// BeforeFromJson will be called before the json deserialization has commenced, allowing complete customization of + /// the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JsonNode that should be deserialized into this object. + /// Determines if the rest of the deserialization should be processed, or if the method should return + /// instantly. + + partial void BeforeFromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject json, ref bool returnNow); + + /// + /// BeforeToJson will be called before the json serialization has commenced, allowing complete customization of the + /// object before it is serialized. + /// If you wish to disable the default serialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JSON container that the serialization result will be placed in. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeToJson(ref Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITrackedResourceTags. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITrackedResourceTags. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITrackedResourceTags FromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject json ? new TrackedResourceTags(json) : null; + } + + /// + /// Serializes this instance of into a . + /// + /// The container to serialize this object into. If the caller + /// passes in null, a new instance will be created and returned to the caller. + /// Allows the caller to choose the depth of the serialization. See . + /// + /// a serialized instance of as a . + /// + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject(); + + bool returnNow = false; + BeforeToJson(ref container, ref returnNow); + if (returnNow) + { + return container; + } + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.JsonSerializable.ToJson( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IAssociativeArray)this).AdditionalProperties, container); + AfterToJson(ref container); + return container; + } + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject instance to deserialize from. + /// + internal TrackedResourceTags(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Runtime.JsonSerializable.FromJson( json, ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IAssociativeArray)this).AdditionalProperties, null ,exclusions ); + AfterFromJson(json); + } + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/UserIdentityProperties.PowerShell.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/UserIdentityProperties.PowerShell.cs new file mode 100644 index 000000000000..abee0c5c8256 --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/UserIdentityProperties.PowerShell.cs @@ -0,0 +1,152 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell; + + /// The information about the user identity. + [System.ComponentModel.TypeConverter(typeof(UserIdentityPropertiesTypeConverter))] + public partial class UserIdentityProperties + { + + /// + /// AfterDeserializeDictionary will be called after the deserialization has finished, allowing customization of the + /// object before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Collections.IDictionary content that should be used. + + partial void AfterDeserializeDictionary(global::System.Collections.IDictionary content); + + /// + /// AfterDeserializePSObject will be called after the deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Management.Automation.PSObject content that should be used. + + partial void AfterDeserializePSObject(global::System.Management.Automation.PSObject content); + + /// + /// BeforeDeserializeDictionary will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Collections.IDictionary content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializeDictionary(global::System.Collections.IDictionary content, ref bool returnNow); + + /// + /// BeforeDeserializePSObject will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializePSObject(global::System.Management.Automation.PSObject content, ref bool returnNow); + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IUserIdentityProperties DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new UserIdentityProperties(content); + } + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IUserIdentityProperties DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new UserIdentityProperties(content); + } + + /// + /// Creates a new instance of , deserializing the content from a json string. + /// + /// a string containing a JSON serialized instance of this model. + /// an instance of the model class. + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IUserIdentityProperties FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode.Parse(jsonText)); + + /// Serializes this instance to a json string. + + /// a containing this model serialized to JSON text. + public string ToJsonString() => ToJson(null, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SerializationMode.IncludeAll)?.ToString(); + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + internal UserIdentityProperties(global::System.Collections.IDictionary content) + { + bool returnNow = false; + BeforeDeserializeDictionary(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("PrincipalId")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IUserIdentityPropertiesInternal)this).PrincipalId = (string) content.GetValueForProperty("PrincipalId",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IUserIdentityPropertiesInternal)this).PrincipalId, global::System.Convert.ToString); + } + if (content.Contains("ClientId")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IUserIdentityPropertiesInternal)this).ClientId = (string) content.GetValueForProperty("ClientId",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IUserIdentityPropertiesInternal)this).ClientId, global::System.Convert.ToString); + } + AfterDeserializeDictionary(content); + } + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + internal UserIdentityProperties(global::System.Management.Automation.PSObject content) + { + bool returnNow = false; + BeforeDeserializePSObject(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("PrincipalId")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IUserIdentityPropertiesInternal)this).PrincipalId = (string) content.GetValueForProperty("PrincipalId",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IUserIdentityPropertiesInternal)this).PrincipalId, global::System.Convert.ToString); + } + if (content.Contains("ClientId")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IUserIdentityPropertiesInternal)this).ClientId = (string) content.GetValueForProperty("ClientId",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IUserIdentityPropertiesInternal)this).ClientId, global::System.Convert.ToString); + } + AfterDeserializePSObject(content); + } + } + /// The information about the user identity. + [System.ComponentModel.TypeConverter(typeof(UserIdentityPropertiesTypeConverter))] + public partial interface IUserIdentityProperties + + { + + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/UserIdentityProperties.TypeConverter.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/UserIdentityProperties.TypeConverter.cs new file mode 100644 index 000000000000..94c82ae25fc1 --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/UserIdentityProperties.TypeConverter.cs @@ -0,0 +1,147 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class UserIdentityPropertiesTypeConverter : global::System.Management.Automation.PSTypeConverter + { + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false. + /// + public override bool CanConvertFrom(object sourceValue, global::System.Type destinationType) => CanConvertFrom(sourceValue); + + /// + /// Determines if the converter can convert the parameter to the . + /// + /// the instance to check if it can be converted to the type. + /// + /// true if the instance could be converted to a type, otherwise false + /// + public static bool CanConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return true; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + // we say yest to PSObjects + return true; + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + // we say yest to Hashtables/dictionaries + return true; + } + try + { + if (null != sourceValue.ToJsonString()) + { + return true; + } + } + catch + { + // Not one of our objects + } + try + { + string text = sourceValue.ToString()?.Trim(); + return true == text?.StartsWith("{") && true == text?.EndsWith("}") && Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonType.Object; + } + catch + { + // Doesn't look like it can be treated as JSON + } + return false; + } + + /// + /// Determines if the parameter can be converted to the parameter + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false + /// + public override bool CanConvertTo(object sourceValue, global::System.Type destinationType) => false; + + /// + /// Converts the parameter to the parameter using and + /// + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// + /// an instance of , or null if there is no suitable conversion. + /// + public override object ConvertFrom(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => ConvertFrom(sourceValue); + + /// + /// Converts the parameter to the parameter using and + /// + /// the value to convert into an instance of . + /// + /// an instance of , or null if there is no suitable conversion. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IUserIdentityProperties ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IUserIdentityProperties).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return UserIdentityProperties.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return UserIdentityProperties.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return UserIdentityProperties.DeserializeFromDictionary(sourceValue); + } + return null; + } + + /// NotImplemented -- this will return null + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// will always return null. + public override object ConvertTo(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => null; + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/UserIdentityProperties.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/UserIdentityProperties.cs new file mode 100644 index 000000000000..97519d82c79b --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/UserIdentityProperties.cs @@ -0,0 +1,68 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Extensions; + + /// The information about the user identity. + public partial class UserIdentityProperties : + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IUserIdentityProperties, + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IUserIdentityPropertiesInternal + { + + /// Backing field for property. + private string _clientId; + + /// The client id of user assigned identity. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Owned)] + public string ClientId { get => this._clientId; set => this._clientId = value; } + + /// Backing field for property. + private string _principalId; + + /// The principal id of user assigned identity. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Owned)] + public string PrincipalId { get => this._principalId; set => this._principalId = value; } + + /// Creates an new instance. + public UserIdentityProperties() + { + + } + } + /// The information about the user identity. + public partial interface IUserIdentityProperties : + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IJsonSerializable + { + /// The client id of user assigned identity. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The client id of user assigned identity.", + SerializedName = @"clientId", + PossibleTypes = new [] { typeof(string) })] + string ClientId { get; set; } + /// The principal id of user assigned identity. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The principal id of user assigned identity.", + SerializedName = @"principalId", + PossibleTypes = new [] { typeof(string) })] + string PrincipalId { get; set; } + + } + /// The information about the user identity. + internal partial interface IUserIdentityPropertiesInternal + + { + /// The client id of user assigned identity. + string ClientId { get; set; } + /// The principal id of user assigned identity. + string PrincipalId { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/UserIdentityProperties.json.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/UserIdentityProperties.json.cs new file mode 100644 index 000000000000..4e8f4a783e15 --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/UserIdentityProperties.json.cs @@ -0,0 +1,108 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Extensions; + + /// The information about the user identity. + public partial class UserIdentityProperties + { + + /// + /// AfterFromJson will be called after the json deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JsonNode that should be deserialized into this object. + + partial void AfterFromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json erialization has finished, allowing customization of the before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JSON container that the serialization result will be placed in. + + partial void AfterToJson(ref Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject container); + + /// + /// BeforeFromJson will be called before the json deserialization has commenced, allowing complete customization of + /// the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JsonNode that should be deserialized into this object. + /// Determines if the rest of the deserialization should be processed, or if the method should return + /// instantly. + + partial void BeforeFromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject json, ref bool returnNow); + + /// + /// BeforeToJson will be called before the json serialization has commenced, allowing complete customization of the + /// object before it is serialized. + /// If you wish to disable the default serialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JSON container that the serialization result will be placed in. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeToJson(ref Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IUserIdentityProperties. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IUserIdentityProperties. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IUserIdentityProperties FromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject json ? new UserIdentityProperties(json) : null; + } + + /// + /// Serializes this instance of into a . + /// + /// The container to serialize this object into. If the caller + /// passes in null, a new instance will be created and returned to the caller. + /// Allows the caller to choose the depth of the serialization. See . + /// + /// a serialized instance of as a . + /// + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject(); + + bool returnNow = false; + BeforeToJson(ref container, ref returnNow); + if (returnNow) + { + return container; + } + AddIf( null != (((object)this._principalId)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonString(this._principalId.ToString()) : null, "principalId" ,container.Add ); + AddIf( null != (((object)this._clientId)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonString(this._clientId.ToString()) : null, "clientId" ,container.Add ); + AfterToJson(ref container); + return container; + } + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject instance to deserialize from. + internal UserIdentityProperties(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject json) + { + bool returnNow = false; + BeforeFromJson(json, ref returnNow); + if (returnNow) + { + return; + } + {_principalId = If( json?.PropertyT("principalId"), out var __jsonPrincipalId) ? (string)__jsonPrincipalId : (string)PrincipalId;} + {_clientId = If( json?.PropertyT("clientId"), out var __jsonClientId) ? (string)__jsonClientId : (string)ClientId;} + AfterFromJson(json); + } + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/VerifiedPartner.PowerShell.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/VerifiedPartner.PowerShell.cs new file mode 100644 index 000000000000..77e066e4e8e0 --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/VerifiedPartner.PowerShell.cs @@ -0,0 +1,318 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell; + + /// Verified partner information + [System.ComponentModel.TypeConverter(typeof(VerifiedPartnerTypeConverter))] + public partial class VerifiedPartner + { + + /// + /// AfterDeserializeDictionary will be called after the deserialization has finished, allowing customization of the + /// object before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Collections.IDictionary content that should be used. + + partial void AfterDeserializeDictionary(global::System.Collections.IDictionary content); + + /// + /// AfterDeserializePSObject will be called after the deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Management.Automation.PSObject content that should be used. + + partial void AfterDeserializePSObject(global::System.Management.Automation.PSObject content); + + /// + /// BeforeDeserializeDictionary will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Collections.IDictionary content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializeDictionary(global::System.Collections.IDictionary content, ref bool returnNow); + + /// + /// BeforeDeserializePSObject will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializePSObject(global::System.Management.Automation.PSObject content, ref bool returnNow); + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IVerifiedPartner DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new VerifiedPartner(content); + } + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IVerifiedPartner DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new VerifiedPartner(content); + } + + /// + /// Creates a new instance of , deserializing the content from a json string. + /// + /// a string containing a JSON serialized instance of this model. + /// an instance of the model class. + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IVerifiedPartner FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode.Parse(jsonText)); + + /// Serializes this instance to a json string. + + /// a containing this model serialized to JSON text. + public string ToJsonString() => ToJson(null, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SerializationMode.IncludeAll)?.ToString(); + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + internal VerifiedPartner(global::System.Collections.IDictionary content) + { + bool returnNow = false; + BeforeDeserializeDictionary(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("Property")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IVerifiedPartnerInternal)this).Property = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IVerifiedPartnerProperties) content.GetValueForProperty("Property",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IVerifiedPartnerInternal)this).Property, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.VerifiedPartnerPropertiesTypeConverter.ConvertFrom); + } + if (content.Contains("SystemData")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IVerifiedPartnerInternal)this).SystemData = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20.ISystemData) content.GetValueForProperty("SystemData",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IVerifiedPartnerInternal)this).SystemData, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20.SystemDataTypeConverter.ConvertFrom); + } + if (content.Contains("Id")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IResourceInternal)this).Id = (string) content.GetValueForProperty("Id",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IResourceInternal)this).Id, global::System.Convert.ToString); + } + if (content.Contains("Name")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IResourceInternal)this).Name = (string) content.GetValueForProperty("Name",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IResourceInternal)this).Name, global::System.Convert.ToString); + } + if (content.Contains("Type")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IResourceInternal)this).Type = (string) content.GetValueForProperty("Type",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IResourceInternal)this).Type, global::System.Convert.ToString); + } + if (content.Contains("SystemDataCreatedBy")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IVerifiedPartnerInternal)this).SystemDataCreatedBy = (string) content.GetValueForProperty("SystemDataCreatedBy",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IVerifiedPartnerInternal)this).SystemDataCreatedBy, global::System.Convert.ToString); + } + if (content.Contains("SystemDataCreatedAt")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IVerifiedPartnerInternal)this).SystemDataCreatedAt = (global::System.DateTime?) content.GetValueForProperty("SystemDataCreatedAt",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IVerifiedPartnerInternal)this).SystemDataCreatedAt, (v) => v is global::System.DateTime _v ? _v : global::System.Xml.XmlConvert.ToDateTime( v.ToString() , global::System.Xml.XmlDateTimeSerializationMode.Unspecified)); + } + if (content.Contains("PartnerTopicDetail")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IVerifiedPartnerInternal)this).PartnerTopicDetail = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerDetails) content.GetValueForProperty("PartnerTopicDetail",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IVerifiedPartnerInternal)this).PartnerTopicDetail, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.PartnerDetailsTypeConverter.ConvertFrom); + } + if (content.Contains("PartnerDestinationDetail")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IVerifiedPartnerInternal)this).PartnerDestinationDetail = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerDetails) content.GetValueForProperty("PartnerDestinationDetail",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IVerifiedPartnerInternal)this).PartnerDestinationDetail, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.PartnerDetailsTypeConverter.ConvertFrom); + } + if (content.Contains("PartnerRegistrationImmutableId")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IVerifiedPartnerInternal)this).PartnerRegistrationImmutableId = (string) content.GetValueForProperty("PartnerRegistrationImmutableId",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IVerifiedPartnerInternal)this).PartnerRegistrationImmutableId, global::System.Convert.ToString); + } + if (content.Contains("OrganizationName")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IVerifiedPartnerInternal)this).OrganizationName = (string) content.GetValueForProperty("OrganizationName",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IVerifiedPartnerInternal)this).OrganizationName, global::System.Convert.ToString); + } + if (content.Contains("PartnerDisplayName")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IVerifiedPartnerInternal)this).PartnerDisplayName = (string) content.GetValueForProperty("PartnerDisplayName",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IVerifiedPartnerInternal)this).PartnerDisplayName, global::System.Convert.ToString); + } + if (content.Contains("ProvisioningState")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IVerifiedPartnerInternal)this).ProvisioningState = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.VerifiedPartnerProvisioningState?) content.GetValueForProperty("ProvisioningState",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IVerifiedPartnerInternal)this).ProvisioningState, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.VerifiedPartnerProvisioningState.CreateFrom); + } + if (content.Contains("SystemDataCreatedByType")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IVerifiedPartnerInternal)this).SystemDataCreatedByType = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.CreatedByType?) content.GetValueForProperty("SystemDataCreatedByType",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IVerifiedPartnerInternal)this).SystemDataCreatedByType, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.CreatedByType.CreateFrom); + } + if (content.Contains("SystemDataLastModifiedBy")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IVerifiedPartnerInternal)this).SystemDataLastModifiedBy = (string) content.GetValueForProperty("SystemDataLastModifiedBy",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IVerifiedPartnerInternal)this).SystemDataLastModifiedBy, global::System.Convert.ToString); + } + if (content.Contains("SystemDataLastModifiedByType")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IVerifiedPartnerInternal)this).SystemDataLastModifiedByType = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.CreatedByType?) content.GetValueForProperty("SystemDataLastModifiedByType",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IVerifiedPartnerInternal)this).SystemDataLastModifiedByType, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.CreatedByType.CreateFrom); + } + if (content.Contains("SystemDataLastModifiedAt")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IVerifiedPartnerInternal)this).SystemDataLastModifiedAt = (global::System.DateTime?) content.GetValueForProperty("SystemDataLastModifiedAt",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IVerifiedPartnerInternal)this).SystemDataLastModifiedAt, (v) => v is global::System.DateTime _v ? _v : global::System.Xml.XmlConvert.ToDateTime( v.ToString() , global::System.Xml.XmlDateTimeSerializationMode.Unspecified)); + } + if (content.Contains("PartnerTopicDetailDescription")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IVerifiedPartnerInternal)this).PartnerTopicDetailDescription = (string) content.GetValueForProperty("PartnerTopicDetailDescription",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IVerifiedPartnerInternal)this).PartnerTopicDetailDescription, global::System.Convert.ToString); + } + if (content.Contains("PartnerTopicDetailLongDescription")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IVerifiedPartnerInternal)this).PartnerTopicDetailLongDescription = (string) content.GetValueForProperty("PartnerTopicDetailLongDescription",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IVerifiedPartnerInternal)this).PartnerTopicDetailLongDescription, global::System.Convert.ToString); + } + if (content.Contains("PartnerTopicDetailSetupUri")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IVerifiedPartnerInternal)this).PartnerTopicDetailSetupUri = (string) content.GetValueForProperty("PartnerTopicDetailSetupUri",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IVerifiedPartnerInternal)this).PartnerTopicDetailSetupUri, global::System.Convert.ToString); + } + if (content.Contains("PartnerDestinationDetailDescription")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IVerifiedPartnerInternal)this).PartnerDestinationDetailDescription = (string) content.GetValueForProperty("PartnerDestinationDetailDescription",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IVerifiedPartnerInternal)this).PartnerDestinationDetailDescription, global::System.Convert.ToString); + } + if (content.Contains("PartnerDestinationDetailLongDescription")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IVerifiedPartnerInternal)this).PartnerDestinationDetailLongDescription = (string) content.GetValueForProperty("PartnerDestinationDetailLongDescription",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IVerifiedPartnerInternal)this).PartnerDestinationDetailLongDescription, global::System.Convert.ToString); + } + if (content.Contains("PartnerDestinationDetailSetupUri")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IVerifiedPartnerInternal)this).PartnerDestinationDetailSetupUri = (string) content.GetValueForProperty("PartnerDestinationDetailSetupUri",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IVerifiedPartnerInternal)this).PartnerDestinationDetailSetupUri, global::System.Convert.ToString); + } + AfterDeserializeDictionary(content); + } + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + internal VerifiedPartner(global::System.Management.Automation.PSObject content) + { + bool returnNow = false; + BeforeDeserializePSObject(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("Property")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IVerifiedPartnerInternal)this).Property = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IVerifiedPartnerProperties) content.GetValueForProperty("Property",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IVerifiedPartnerInternal)this).Property, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.VerifiedPartnerPropertiesTypeConverter.ConvertFrom); + } + if (content.Contains("SystemData")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IVerifiedPartnerInternal)this).SystemData = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20.ISystemData) content.GetValueForProperty("SystemData",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IVerifiedPartnerInternal)this).SystemData, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20.SystemDataTypeConverter.ConvertFrom); + } + if (content.Contains("Id")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IResourceInternal)this).Id = (string) content.GetValueForProperty("Id",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IResourceInternal)this).Id, global::System.Convert.ToString); + } + if (content.Contains("Name")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IResourceInternal)this).Name = (string) content.GetValueForProperty("Name",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IResourceInternal)this).Name, global::System.Convert.ToString); + } + if (content.Contains("Type")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IResourceInternal)this).Type = (string) content.GetValueForProperty("Type",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IResourceInternal)this).Type, global::System.Convert.ToString); + } + if (content.Contains("SystemDataCreatedBy")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IVerifiedPartnerInternal)this).SystemDataCreatedBy = (string) content.GetValueForProperty("SystemDataCreatedBy",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IVerifiedPartnerInternal)this).SystemDataCreatedBy, global::System.Convert.ToString); + } + if (content.Contains("SystemDataCreatedAt")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IVerifiedPartnerInternal)this).SystemDataCreatedAt = (global::System.DateTime?) content.GetValueForProperty("SystemDataCreatedAt",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IVerifiedPartnerInternal)this).SystemDataCreatedAt, (v) => v is global::System.DateTime _v ? _v : global::System.Xml.XmlConvert.ToDateTime( v.ToString() , global::System.Xml.XmlDateTimeSerializationMode.Unspecified)); + } + if (content.Contains("PartnerTopicDetail")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IVerifiedPartnerInternal)this).PartnerTopicDetail = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerDetails) content.GetValueForProperty("PartnerTopicDetail",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IVerifiedPartnerInternal)this).PartnerTopicDetail, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.PartnerDetailsTypeConverter.ConvertFrom); + } + if (content.Contains("PartnerDestinationDetail")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IVerifiedPartnerInternal)this).PartnerDestinationDetail = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerDetails) content.GetValueForProperty("PartnerDestinationDetail",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IVerifiedPartnerInternal)this).PartnerDestinationDetail, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.PartnerDetailsTypeConverter.ConvertFrom); + } + if (content.Contains("PartnerRegistrationImmutableId")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IVerifiedPartnerInternal)this).PartnerRegistrationImmutableId = (string) content.GetValueForProperty("PartnerRegistrationImmutableId",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IVerifiedPartnerInternal)this).PartnerRegistrationImmutableId, global::System.Convert.ToString); + } + if (content.Contains("OrganizationName")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IVerifiedPartnerInternal)this).OrganizationName = (string) content.GetValueForProperty("OrganizationName",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IVerifiedPartnerInternal)this).OrganizationName, global::System.Convert.ToString); + } + if (content.Contains("PartnerDisplayName")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IVerifiedPartnerInternal)this).PartnerDisplayName = (string) content.GetValueForProperty("PartnerDisplayName",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IVerifiedPartnerInternal)this).PartnerDisplayName, global::System.Convert.ToString); + } + if (content.Contains("ProvisioningState")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IVerifiedPartnerInternal)this).ProvisioningState = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.VerifiedPartnerProvisioningState?) content.GetValueForProperty("ProvisioningState",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IVerifiedPartnerInternal)this).ProvisioningState, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.VerifiedPartnerProvisioningState.CreateFrom); + } + if (content.Contains("SystemDataCreatedByType")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IVerifiedPartnerInternal)this).SystemDataCreatedByType = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.CreatedByType?) content.GetValueForProperty("SystemDataCreatedByType",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IVerifiedPartnerInternal)this).SystemDataCreatedByType, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.CreatedByType.CreateFrom); + } + if (content.Contains("SystemDataLastModifiedBy")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IVerifiedPartnerInternal)this).SystemDataLastModifiedBy = (string) content.GetValueForProperty("SystemDataLastModifiedBy",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IVerifiedPartnerInternal)this).SystemDataLastModifiedBy, global::System.Convert.ToString); + } + if (content.Contains("SystemDataLastModifiedByType")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IVerifiedPartnerInternal)this).SystemDataLastModifiedByType = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.CreatedByType?) content.GetValueForProperty("SystemDataLastModifiedByType",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IVerifiedPartnerInternal)this).SystemDataLastModifiedByType, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.CreatedByType.CreateFrom); + } + if (content.Contains("SystemDataLastModifiedAt")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IVerifiedPartnerInternal)this).SystemDataLastModifiedAt = (global::System.DateTime?) content.GetValueForProperty("SystemDataLastModifiedAt",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IVerifiedPartnerInternal)this).SystemDataLastModifiedAt, (v) => v is global::System.DateTime _v ? _v : global::System.Xml.XmlConvert.ToDateTime( v.ToString() , global::System.Xml.XmlDateTimeSerializationMode.Unspecified)); + } + if (content.Contains("PartnerTopicDetailDescription")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IVerifiedPartnerInternal)this).PartnerTopicDetailDescription = (string) content.GetValueForProperty("PartnerTopicDetailDescription",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IVerifiedPartnerInternal)this).PartnerTopicDetailDescription, global::System.Convert.ToString); + } + if (content.Contains("PartnerTopicDetailLongDescription")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IVerifiedPartnerInternal)this).PartnerTopicDetailLongDescription = (string) content.GetValueForProperty("PartnerTopicDetailLongDescription",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IVerifiedPartnerInternal)this).PartnerTopicDetailLongDescription, global::System.Convert.ToString); + } + if (content.Contains("PartnerTopicDetailSetupUri")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IVerifiedPartnerInternal)this).PartnerTopicDetailSetupUri = (string) content.GetValueForProperty("PartnerTopicDetailSetupUri",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IVerifiedPartnerInternal)this).PartnerTopicDetailSetupUri, global::System.Convert.ToString); + } + if (content.Contains("PartnerDestinationDetailDescription")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IVerifiedPartnerInternal)this).PartnerDestinationDetailDescription = (string) content.GetValueForProperty("PartnerDestinationDetailDescription",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IVerifiedPartnerInternal)this).PartnerDestinationDetailDescription, global::System.Convert.ToString); + } + if (content.Contains("PartnerDestinationDetailLongDescription")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IVerifiedPartnerInternal)this).PartnerDestinationDetailLongDescription = (string) content.GetValueForProperty("PartnerDestinationDetailLongDescription",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IVerifiedPartnerInternal)this).PartnerDestinationDetailLongDescription, global::System.Convert.ToString); + } + if (content.Contains("PartnerDestinationDetailSetupUri")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IVerifiedPartnerInternal)this).PartnerDestinationDetailSetupUri = (string) content.GetValueForProperty("PartnerDestinationDetailSetupUri",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IVerifiedPartnerInternal)this).PartnerDestinationDetailSetupUri, global::System.Convert.ToString); + } + AfterDeserializePSObject(content); + } + } + /// Verified partner information + [System.ComponentModel.TypeConverter(typeof(VerifiedPartnerTypeConverter))] + public partial interface IVerifiedPartner + + { + + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/VerifiedPartner.TypeConverter.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/VerifiedPartner.TypeConverter.cs new file mode 100644 index 000000000000..91ead5a61018 --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/VerifiedPartner.TypeConverter.cs @@ -0,0 +1,146 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class VerifiedPartnerTypeConverter : global::System.Management.Automation.PSTypeConverter + { + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false. + /// + public override bool CanConvertFrom(object sourceValue, global::System.Type destinationType) => CanConvertFrom(sourceValue); + + /// + /// Determines if the converter can convert the parameter to the . + /// + /// the instance to check if it can be converted to the type. + /// + /// true if the instance could be converted to a type, otherwise false + /// + public static bool CanConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return true; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + // we say yest to PSObjects + return true; + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + // we say yest to Hashtables/dictionaries + return true; + } + try + { + if (null != sourceValue.ToJsonString()) + { + return true; + } + } + catch + { + // Not one of our objects + } + try + { + string text = sourceValue.ToString()?.Trim(); + return true == text?.StartsWith("{") && true == text?.EndsWith("}") && Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonType.Object; + } + catch + { + // Doesn't look like it can be treated as JSON + } + return false; + } + + /// + /// Determines if the parameter can be converted to the parameter + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false + /// + public override bool CanConvertTo(object sourceValue, global::System.Type destinationType) => false; + + /// + /// Converts the parameter to the parameter using and + /// + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// + /// an instance of , or null if there is no suitable conversion. + /// + public override object ConvertFrom(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => ConvertFrom(sourceValue); + + /// + /// Converts the parameter to the parameter using and + /// + /// the value to convert into an instance of . + /// + /// an instance of , or null if there is no suitable conversion. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IVerifiedPartner ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IVerifiedPartner).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return VerifiedPartner.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return VerifiedPartner.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return VerifiedPartner.DeserializeFromDictionary(sourceValue); + } + return null; + } + + /// NotImplemented -- this will return null + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// will always return null. + public override object ConvertTo(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => null; + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/VerifiedPartner.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/VerifiedPartner.cs new file mode 100644 index 000000000000..db816ff38a79 --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/VerifiedPartner.cs @@ -0,0 +1,376 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Extensions; + + /// Verified partner information + public partial class VerifiedPartner : + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IVerifiedPartner, + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IVerifiedPartnerInternal, + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IValidates + { + /// + /// Backing field for Inherited model + /// + private Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IResource __resource = new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.Resource(); + + /// Fully qualified identifier of the resource. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Inherited)] + public string Id { get => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IResourceInternal)__resource).Id; } + + /// Internal Acessors for Id + string Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IResourceInternal.Id { get => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IResourceInternal)__resource).Id; set => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IResourceInternal)__resource).Id = value; } + + /// Internal Acessors for Name + string Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IResourceInternal.Name { get => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IResourceInternal)__resource).Name; set => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IResourceInternal)__resource).Name = value; } + + /// Internal Acessors for Type + string Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IResourceInternal.Type { get => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IResourceInternal)__resource).Type; set => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IResourceInternal)__resource).Type = value; } + + /// Internal Acessors for PartnerDestinationDetail + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerDetails Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IVerifiedPartnerInternal.PartnerDestinationDetail { get => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IVerifiedPartnerPropertiesInternal)Property).PartnerDestinationDetail; set => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IVerifiedPartnerPropertiesInternal)Property).PartnerDestinationDetail = value; } + + /// Internal Acessors for PartnerTopicDetail + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerDetails Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IVerifiedPartnerInternal.PartnerTopicDetail { get => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IVerifiedPartnerPropertiesInternal)Property).PartnerTopicDetail; set => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IVerifiedPartnerPropertiesInternal)Property).PartnerTopicDetail = value; } + + /// Internal Acessors for Property + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IVerifiedPartnerProperties Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IVerifiedPartnerInternal.Property { get => (this._property = this._property ?? new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.VerifiedPartnerProperties()); set { {_property = value;} } } + + /// Internal Acessors for SystemData + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20.ISystemData Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IVerifiedPartnerInternal.SystemData { get => (this._systemData = this._systemData ?? new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20.SystemData()); set { {_systemData = value;} } } + + /// Name of the resource. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Inherited)] + public string Name { get => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IResourceInternal)__resource).Name; } + + /// Official name of the Partner. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Inlined)] + public string OrganizationName { get => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IVerifiedPartnerPropertiesInternal)Property).OrganizationName; set => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IVerifiedPartnerPropertiesInternal)Property).OrganizationName = value ?? null; } + + /// + /// This is short description about the partner. The length of this description should not exceed 256 characters. + /// + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Inlined)] + public string PartnerDestinationDetailDescription { get => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IVerifiedPartnerPropertiesInternal)Property).PartnerDestinationDetailDescription; set => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IVerifiedPartnerPropertiesInternal)Property).PartnerDestinationDetailDescription = value ?? null; } + + /// + /// Long description for the partner's scenarios and integration.Length of this description should not exceed 2048 characters. + /// + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Inlined)] + public string PartnerDestinationDetailLongDescription { get => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IVerifiedPartnerPropertiesInternal)Property).PartnerDestinationDetailLongDescription; set => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IVerifiedPartnerPropertiesInternal)Property).PartnerDestinationDetailLongDescription = value ?? null; } + + /// + /// URI of the partner website that can be used by Azure customers to setup Event Grid + /// integration on an event source. + /// + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Inlined)] + public string PartnerDestinationDetailSetupUri { get => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IVerifiedPartnerPropertiesInternal)Property).PartnerDestinationDetailSetupUri; set => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IVerifiedPartnerPropertiesInternal)Property).PartnerDestinationDetailSetupUri = value ?? null; } + + /// Display name of the verified partner. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Inlined)] + public string PartnerDisplayName { get => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IVerifiedPartnerPropertiesInternal)Property).PartnerDisplayName; set => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IVerifiedPartnerPropertiesInternal)Property).PartnerDisplayName = value ?? null; } + + /// ImmutableId of the corresponding partner registration. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Inlined)] + public string PartnerRegistrationImmutableId { get => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IVerifiedPartnerPropertiesInternal)Property).PartnerRegistrationImmutableId; set => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IVerifiedPartnerPropertiesInternal)Property).PartnerRegistrationImmutableId = value ?? null; } + + /// + /// This is short description about the partner. The length of this description should not exceed 256 characters. + /// + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Inlined)] + public string PartnerTopicDetailDescription { get => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IVerifiedPartnerPropertiesInternal)Property).PartnerTopicDetailDescription; set => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IVerifiedPartnerPropertiesInternal)Property).PartnerTopicDetailDescription = value ?? null; } + + /// + /// Long description for the partner's scenarios and integration.Length of this description should not exceed 2048 characters. + /// + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Inlined)] + public string PartnerTopicDetailLongDescription { get => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IVerifiedPartnerPropertiesInternal)Property).PartnerTopicDetailLongDescription; set => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IVerifiedPartnerPropertiesInternal)Property).PartnerTopicDetailLongDescription = value ?? null; } + + /// + /// URI of the partner website that can be used by Azure customers to setup Event Grid + /// integration on an event source. + /// + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Inlined)] + public string PartnerTopicDetailSetupUri { get => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IVerifiedPartnerPropertiesInternal)Property).PartnerTopicDetailSetupUri; set => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IVerifiedPartnerPropertiesInternal)Property).PartnerTopicDetailSetupUri = value ?? null; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IVerifiedPartnerProperties _property; + + /// Properties of the verified partner. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Owned)] + internal Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IVerifiedPartnerProperties Property { get => (this._property = this._property ?? new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.VerifiedPartnerProperties()); set => this._property = value; } + + /// Provisioning state of the verified partner. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Inlined)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.VerifiedPartnerProvisioningState? ProvisioningState { get => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IVerifiedPartnerPropertiesInternal)Property).ProvisioningState; set => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IVerifiedPartnerPropertiesInternal)Property).ProvisioningState = value ?? ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.VerifiedPartnerProvisioningState)""); } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20.ISystemData _systemData; + + /// The system metadata relating to Verified Partner resource. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Owned)] + internal Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20.ISystemData SystemData { get => (this._systemData = this._systemData ?? new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20.SystemData()); } + + /// The timestamp of resource creation (UTC). + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Inlined)] + public global::System.DateTime? SystemDataCreatedAt { get => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20.ISystemDataInternal)SystemData).CreatedAt; set => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20.ISystemDataInternal)SystemData).CreatedAt = value ?? default(global::System.DateTime); } + + /// The identity that created the resource. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Inlined)] + public string SystemDataCreatedBy { get => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20.ISystemDataInternal)SystemData).CreatedBy; set => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20.ISystemDataInternal)SystemData).CreatedBy = value ?? null; } + + /// The type of identity that created the resource. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Inlined)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.CreatedByType? SystemDataCreatedByType { get => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20.ISystemDataInternal)SystemData).CreatedByType; set => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20.ISystemDataInternal)SystemData).CreatedByType = value ?? ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.CreatedByType)""); } + + /// The timestamp of resource last modification (UTC) + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Inlined)] + public global::System.DateTime? SystemDataLastModifiedAt { get => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20.ISystemDataInternal)SystemData).LastModifiedAt; set => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20.ISystemDataInternal)SystemData).LastModifiedAt = value ?? default(global::System.DateTime); } + + /// The identity that last modified the resource. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Inlined)] + public string SystemDataLastModifiedBy { get => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20.ISystemDataInternal)SystemData).LastModifiedBy; set => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20.ISystemDataInternal)SystemData).LastModifiedBy = value ?? null; } + + /// The type of identity that last modified the resource. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Inlined)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.CreatedByType? SystemDataLastModifiedByType { get => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20.ISystemDataInternal)SystemData).LastModifiedByType; set => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20.ISystemDataInternal)SystemData).LastModifiedByType = value ?? ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.CreatedByType)""); } + + /// Type of the resource. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Inherited)] + public string Type { get => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IResourceInternal)__resource).Type; } + + /// Validates that this object meets the validation criteria. + /// an instance that will receive validation + /// events. + /// + /// A that will be complete when validation is completed. + /// + public async global::System.Threading.Tasks.Task Validate(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener eventListener) + { + await eventListener.AssertNotNull(nameof(__resource), __resource); + await eventListener.AssertObjectIsValid(nameof(__resource), __resource); + } + + /// Creates an new instance. + public VerifiedPartner() + { + + } + } + /// Verified partner information + public partial interface IVerifiedPartner : + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IJsonSerializable, + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IResource + { + /// Official name of the Partner. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Official name of the Partner.", + SerializedName = @"organizationName", + PossibleTypes = new [] { typeof(string) })] + string OrganizationName { get; set; } + /// + /// This is short description about the partner. The length of this description should not exceed 256 characters. + /// + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"This is short description about the partner. The length of this description should not exceed 256 characters.", + SerializedName = @"description", + PossibleTypes = new [] { typeof(string) })] + string PartnerDestinationDetailDescription { get; set; } + /// + /// Long description for the partner's scenarios and integration.Length of this description should not exceed 2048 characters. + /// + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Long description for the partner's scenarios and integration.Length of this description should not exceed 2048 characters.", + SerializedName = @"longDescription", + PossibleTypes = new [] { typeof(string) })] + string PartnerDestinationDetailLongDescription { get; set; } + /// + /// URI of the partner website that can be used by Azure customers to setup Event Grid + /// integration on an event source. + /// + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"URI of the partner website that can be used by Azure customers to setup Event Grid + integration on an event source.", + SerializedName = @"setupUri", + PossibleTypes = new [] { typeof(string) })] + string PartnerDestinationDetailSetupUri { get; set; } + /// Display name of the verified partner. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Display name of the verified partner.", + SerializedName = @"partnerDisplayName", + PossibleTypes = new [] { typeof(string) })] + string PartnerDisplayName { get; set; } + /// ImmutableId of the corresponding partner registration. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"ImmutableId of the corresponding partner registration.", + SerializedName = @"partnerRegistrationImmutableId", + PossibleTypes = new [] { typeof(string) })] + string PartnerRegistrationImmutableId { get; set; } + /// + /// This is short description about the partner. The length of this description should not exceed 256 characters. + /// + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"This is short description about the partner. The length of this description should not exceed 256 characters.", + SerializedName = @"description", + PossibleTypes = new [] { typeof(string) })] + string PartnerTopicDetailDescription { get; set; } + /// + /// Long description for the partner's scenarios and integration.Length of this description should not exceed 2048 characters. + /// + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Long description for the partner's scenarios and integration.Length of this description should not exceed 2048 characters.", + SerializedName = @"longDescription", + PossibleTypes = new [] { typeof(string) })] + string PartnerTopicDetailLongDescription { get; set; } + /// + /// URI of the partner website that can be used by Azure customers to setup Event Grid + /// integration on an event source. + /// + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"URI of the partner website that can be used by Azure customers to setup Event Grid + integration on an event source.", + SerializedName = @"setupUri", + PossibleTypes = new [] { typeof(string) })] + string PartnerTopicDetailSetupUri { get; set; } + /// Provisioning state of the verified partner. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Provisioning state of the verified partner.", + SerializedName = @"provisioningState", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.VerifiedPartnerProvisioningState) })] + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.VerifiedPartnerProvisioningState? ProvisioningState { get; set; } + /// The timestamp of resource creation (UTC). + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.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.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The type of identity that created the resource.", + SerializedName = @"createdByType", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.CreatedByType) })] + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.CreatedByType? SystemDataCreatedByType { get; set; } + /// The timestamp of resource last modification (UTC) + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.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.EventGrid.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.EventGrid.Support.CreatedByType) })] + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.CreatedByType? SystemDataLastModifiedByType { get; set; } + + } + /// Verified partner information + internal partial interface IVerifiedPartnerInternal : + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IResourceInternal + { + /// Official name of the Partner. + string OrganizationName { get; set; } + /// Details of the partner destination scenario. + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerDetails PartnerDestinationDetail { get; set; } + /// + /// This is short description about the partner. The length of this description should not exceed 256 characters. + /// + string PartnerDestinationDetailDescription { get; set; } + /// + /// Long description for the partner's scenarios and integration.Length of this description should not exceed 2048 characters. + /// + string PartnerDestinationDetailLongDescription { get; set; } + /// + /// URI of the partner website that can be used by Azure customers to setup Event Grid + /// integration on an event source. + /// + string PartnerDestinationDetailSetupUri { get; set; } + /// Display name of the verified partner. + string PartnerDisplayName { get; set; } + /// ImmutableId of the corresponding partner registration. + string PartnerRegistrationImmutableId { get; set; } + /// Details of the partner topic scenario. + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerDetails PartnerTopicDetail { get; set; } + /// + /// This is short description about the partner. The length of this description should not exceed 256 characters. + /// + string PartnerTopicDetailDescription { get; set; } + /// + /// Long description for the partner's scenarios and integration.Length of this description should not exceed 2048 characters. + /// + string PartnerTopicDetailLongDescription { get; set; } + /// + /// URI of the partner website that can be used by Azure customers to setup Event Grid + /// integration on an event source. + /// + string PartnerTopicDetailSetupUri { get; set; } + /// Properties of the verified partner. + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IVerifiedPartnerProperties Property { get; set; } + /// Provisioning state of the verified partner. + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.VerifiedPartnerProvisioningState? ProvisioningState { get; set; } + /// The system metadata relating to Verified Partner resource. + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.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.EventGrid.Support.CreatedByType? SystemDataLastModifiedByType { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/VerifiedPartner.json.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/VerifiedPartner.json.cs new file mode 100644 index 000000000000..32e8b1cc07a1 --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/VerifiedPartner.json.cs @@ -0,0 +1,113 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Extensions; + + /// Verified partner information + public partial class VerifiedPartner + { + + /// + /// AfterFromJson will be called after the json deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JsonNode that should be deserialized into this object. + + partial void AfterFromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json erialization has finished, allowing customization of the before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JSON container that the serialization result will be placed in. + + partial void AfterToJson(ref Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject container); + + /// + /// BeforeFromJson will be called before the json deserialization has commenced, allowing complete customization of + /// the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JsonNode that should be deserialized into this object. + /// Determines if the rest of the deserialization should be processed, or if the method should return + /// instantly. + + partial void BeforeFromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject json, ref bool returnNow); + + /// + /// BeforeToJson will be called before the json serialization has commenced, allowing complete customization of the + /// object before it is serialized. + /// If you wish to disable the default serialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JSON container that the serialization result will be placed in. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeToJson(ref Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IVerifiedPartner. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IVerifiedPartner. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IVerifiedPartner FromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject json ? new VerifiedPartner(json) : null; + } + + /// + /// Serializes this instance of into a . + /// + /// The container to serialize this object into. If the caller + /// passes in null, a new instance will be created and returned to the caller. + /// Allows the caller to choose the depth of the serialization. See . + /// + /// a serialized instance of as a . + /// + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Runtime.Json.JsonNode) this._property.ToJson(null,serializationMode) : null, "properties" ,container.Add ); + if (serializationMode.HasFlag(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SerializationMode.IncludeReadOnly)) + { + AddIf( null != this._systemData ? (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode) this._systemData.ToJson(null,serializationMode) : null, "systemData" ,container.Add ); + } + AfterToJson(ref container); + return container; + } + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject instance to deserialize from. + internal VerifiedPartner(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject json) + { + bool returnNow = false; + BeforeFromJson(json, ref returnNow); + if (returnNow) + { + return; + } + __resource = new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.Resource(json); + {_property = If( json?.PropertyT("properties"), out var __jsonProperties) ? Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.VerifiedPartnerProperties.FromJson(__jsonProperties) : Property;} + {_systemData = If( json?.PropertyT("systemData"), out var __jsonSystemData) ? Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20.SystemData.FromJson(__jsonSystemData) : SystemData;} + AfterFromJson(json); + } + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/VerifiedPartnerProperties.PowerShell.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/VerifiedPartnerProperties.PowerShell.cs new file mode 100644 index 000000000000..1023d62fe3c3 --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/VerifiedPartnerProperties.PowerShell.cs @@ -0,0 +1,232 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell; + + /// Properties of the verified partner. + [System.ComponentModel.TypeConverter(typeof(VerifiedPartnerPropertiesTypeConverter))] + public partial class VerifiedPartnerProperties + { + + /// + /// AfterDeserializeDictionary will be called after the deserialization has finished, allowing customization of the + /// object before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Collections.IDictionary content that should be used. + + partial void AfterDeserializeDictionary(global::System.Collections.IDictionary content); + + /// + /// AfterDeserializePSObject will be called after the deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Management.Automation.PSObject content that should be used. + + partial void AfterDeserializePSObject(global::System.Management.Automation.PSObject content); + + /// + /// BeforeDeserializeDictionary will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Collections.IDictionary content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializeDictionary(global::System.Collections.IDictionary content, ref bool returnNow); + + /// + /// BeforeDeserializePSObject will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializePSObject(global::System.Management.Automation.PSObject content, ref bool returnNow); + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IVerifiedPartnerProperties DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new VerifiedPartnerProperties(content); + } + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IVerifiedPartnerProperties DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new VerifiedPartnerProperties(content); + } + + /// + /// Creates a new instance of , deserializing the content from a json string. + /// + /// a string containing a JSON serialized instance of this model. + /// an instance of the model class. + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IVerifiedPartnerProperties FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode.Parse(jsonText)); + + /// Serializes this instance to a json string. + + /// a containing this model serialized to JSON text. + public string ToJsonString() => ToJson(null, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SerializationMode.IncludeAll)?.ToString(); + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + internal VerifiedPartnerProperties(global::System.Collections.IDictionary content) + { + bool returnNow = false; + BeforeDeserializeDictionary(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("PartnerTopicDetail")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IVerifiedPartnerPropertiesInternal)this).PartnerTopicDetail = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerDetails) content.GetValueForProperty("PartnerTopicDetail",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IVerifiedPartnerPropertiesInternal)this).PartnerTopicDetail, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.PartnerDetailsTypeConverter.ConvertFrom); + } + if (content.Contains("PartnerDestinationDetail")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IVerifiedPartnerPropertiesInternal)this).PartnerDestinationDetail = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerDetails) content.GetValueForProperty("PartnerDestinationDetail",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IVerifiedPartnerPropertiesInternal)this).PartnerDestinationDetail, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.PartnerDetailsTypeConverter.ConvertFrom); + } + if (content.Contains("PartnerRegistrationImmutableId")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IVerifiedPartnerPropertiesInternal)this).PartnerRegistrationImmutableId = (string) content.GetValueForProperty("PartnerRegistrationImmutableId",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IVerifiedPartnerPropertiesInternal)this).PartnerRegistrationImmutableId, global::System.Convert.ToString); + } + if (content.Contains("OrganizationName")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IVerifiedPartnerPropertiesInternal)this).OrganizationName = (string) content.GetValueForProperty("OrganizationName",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IVerifiedPartnerPropertiesInternal)this).OrganizationName, global::System.Convert.ToString); + } + if (content.Contains("PartnerDisplayName")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IVerifiedPartnerPropertiesInternal)this).PartnerDisplayName = (string) content.GetValueForProperty("PartnerDisplayName",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IVerifiedPartnerPropertiesInternal)this).PartnerDisplayName, global::System.Convert.ToString); + } + if (content.Contains("ProvisioningState")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IVerifiedPartnerPropertiesInternal)this).ProvisioningState = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.VerifiedPartnerProvisioningState?) content.GetValueForProperty("ProvisioningState",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IVerifiedPartnerPropertiesInternal)this).ProvisioningState, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.VerifiedPartnerProvisioningState.CreateFrom); + } + if (content.Contains("PartnerTopicDetailDescription")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IVerifiedPartnerPropertiesInternal)this).PartnerTopicDetailDescription = (string) content.GetValueForProperty("PartnerTopicDetailDescription",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IVerifiedPartnerPropertiesInternal)this).PartnerTopicDetailDescription, global::System.Convert.ToString); + } + if (content.Contains("PartnerTopicDetailLongDescription")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IVerifiedPartnerPropertiesInternal)this).PartnerTopicDetailLongDescription = (string) content.GetValueForProperty("PartnerTopicDetailLongDescription",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IVerifiedPartnerPropertiesInternal)this).PartnerTopicDetailLongDescription, global::System.Convert.ToString); + } + if (content.Contains("PartnerTopicDetailSetupUri")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IVerifiedPartnerPropertiesInternal)this).PartnerTopicDetailSetupUri = (string) content.GetValueForProperty("PartnerTopicDetailSetupUri",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IVerifiedPartnerPropertiesInternal)this).PartnerTopicDetailSetupUri, global::System.Convert.ToString); + } + if (content.Contains("PartnerDestinationDetailDescription")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IVerifiedPartnerPropertiesInternal)this).PartnerDestinationDetailDescription = (string) content.GetValueForProperty("PartnerDestinationDetailDescription",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IVerifiedPartnerPropertiesInternal)this).PartnerDestinationDetailDescription, global::System.Convert.ToString); + } + if (content.Contains("PartnerDestinationDetailLongDescription")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IVerifiedPartnerPropertiesInternal)this).PartnerDestinationDetailLongDescription = (string) content.GetValueForProperty("PartnerDestinationDetailLongDescription",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IVerifiedPartnerPropertiesInternal)this).PartnerDestinationDetailLongDescription, global::System.Convert.ToString); + } + if (content.Contains("PartnerDestinationDetailSetupUri")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IVerifiedPartnerPropertiesInternal)this).PartnerDestinationDetailSetupUri = (string) content.GetValueForProperty("PartnerDestinationDetailSetupUri",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IVerifiedPartnerPropertiesInternal)this).PartnerDestinationDetailSetupUri, global::System.Convert.ToString); + } + AfterDeserializeDictionary(content); + } + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + internal VerifiedPartnerProperties(global::System.Management.Automation.PSObject content) + { + bool returnNow = false; + BeforeDeserializePSObject(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("PartnerTopicDetail")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IVerifiedPartnerPropertiesInternal)this).PartnerTopicDetail = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerDetails) content.GetValueForProperty("PartnerTopicDetail",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IVerifiedPartnerPropertiesInternal)this).PartnerTopicDetail, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.PartnerDetailsTypeConverter.ConvertFrom); + } + if (content.Contains("PartnerDestinationDetail")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IVerifiedPartnerPropertiesInternal)this).PartnerDestinationDetail = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerDetails) content.GetValueForProperty("PartnerDestinationDetail",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IVerifiedPartnerPropertiesInternal)this).PartnerDestinationDetail, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.PartnerDetailsTypeConverter.ConvertFrom); + } + if (content.Contains("PartnerRegistrationImmutableId")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IVerifiedPartnerPropertiesInternal)this).PartnerRegistrationImmutableId = (string) content.GetValueForProperty("PartnerRegistrationImmutableId",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IVerifiedPartnerPropertiesInternal)this).PartnerRegistrationImmutableId, global::System.Convert.ToString); + } + if (content.Contains("OrganizationName")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IVerifiedPartnerPropertiesInternal)this).OrganizationName = (string) content.GetValueForProperty("OrganizationName",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IVerifiedPartnerPropertiesInternal)this).OrganizationName, global::System.Convert.ToString); + } + if (content.Contains("PartnerDisplayName")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IVerifiedPartnerPropertiesInternal)this).PartnerDisplayName = (string) content.GetValueForProperty("PartnerDisplayName",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IVerifiedPartnerPropertiesInternal)this).PartnerDisplayName, global::System.Convert.ToString); + } + if (content.Contains("ProvisioningState")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IVerifiedPartnerPropertiesInternal)this).ProvisioningState = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.VerifiedPartnerProvisioningState?) content.GetValueForProperty("ProvisioningState",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IVerifiedPartnerPropertiesInternal)this).ProvisioningState, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.VerifiedPartnerProvisioningState.CreateFrom); + } + if (content.Contains("PartnerTopicDetailDescription")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IVerifiedPartnerPropertiesInternal)this).PartnerTopicDetailDescription = (string) content.GetValueForProperty("PartnerTopicDetailDescription",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IVerifiedPartnerPropertiesInternal)this).PartnerTopicDetailDescription, global::System.Convert.ToString); + } + if (content.Contains("PartnerTopicDetailLongDescription")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IVerifiedPartnerPropertiesInternal)this).PartnerTopicDetailLongDescription = (string) content.GetValueForProperty("PartnerTopicDetailLongDescription",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IVerifiedPartnerPropertiesInternal)this).PartnerTopicDetailLongDescription, global::System.Convert.ToString); + } + if (content.Contains("PartnerTopicDetailSetupUri")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IVerifiedPartnerPropertiesInternal)this).PartnerTopicDetailSetupUri = (string) content.GetValueForProperty("PartnerTopicDetailSetupUri",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IVerifiedPartnerPropertiesInternal)this).PartnerTopicDetailSetupUri, global::System.Convert.ToString); + } + if (content.Contains("PartnerDestinationDetailDescription")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IVerifiedPartnerPropertiesInternal)this).PartnerDestinationDetailDescription = (string) content.GetValueForProperty("PartnerDestinationDetailDescription",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IVerifiedPartnerPropertiesInternal)this).PartnerDestinationDetailDescription, global::System.Convert.ToString); + } + if (content.Contains("PartnerDestinationDetailLongDescription")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IVerifiedPartnerPropertiesInternal)this).PartnerDestinationDetailLongDescription = (string) content.GetValueForProperty("PartnerDestinationDetailLongDescription",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IVerifiedPartnerPropertiesInternal)this).PartnerDestinationDetailLongDescription, global::System.Convert.ToString); + } + if (content.Contains("PartnerDestinationDetailSetupUri")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IVerifiedPartnerPropertiesInternal)this).PartnerDestinationDetailSetupUri = (string) content.GetValueForProperty("PartnerDestinationDetailSetupUri",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IVerifiedPartnerPropertiesInternal)this).PartnerDestinationDetailSetupUri, global::System.Convert.ToString); + } + AfterDeserializePSObject(content); + } + } + /// Properties of the verified partner. + [System.ComponentModel.TypeConverter(typeof(VerifiedPartnerPropertiesTypeConverter))] + public partial interface IVerifiedPartnerProperties + + { + + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/VerifiedPartnerProperties.TypeConverter.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/VerifiedPartnerProperties.TypeConverter.cs new file mode 100644 index 000000000000..d6e9fbab98d4 --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/VerifiedPartnerProperties.TypeConverter.cs @@ -0,0 +1,147 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class VerifiedPartnerPropertiesTypeConverter : global::System.Management.Automation.PSTypeConverter + { + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false. + /// + public override bool CanConvertFrom(object sourceValue, global::System.Type destinationType) => CanConvertFrom(sourceValue); + + /// + /// Determines if the converter can convert the parameter to the . + /// + /// the instance to check if it can be converted to the type. + /// + /// true if the instance could be converted to a type, otherwise false + /// + public static bool CanConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return true; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + // we say yest to PSObjects + return true; + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + // we say yest to Hashtables/dictionaries + return true; + } + try + { + if (null != sourceValue.ToJsonString()) + { + return true; + } + } + catch + { + // Not one of our objects + } + try + { + string text = sourceValue.ToString()?.Trim(); + return true == text?.StartsWith("{") && true == text?.EndsWith("}") && Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonType.Object; + } + catch + { + // Doesn't look like it can be treated as JSON + } + return false; + } + + /// + /// Determines if the parameter can be converted to the parameter + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false + /// + public override bool CanConvertTo(object sourceValue, global::System.Type destinationType) => false; + + /// + /// Converts the parameter to the parameter using and + /// + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// + /// an instance of , or null if there is no suitable conversion. + /// + public override object ConvertFrom(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => ConvertFrom(sourceValue); + + /// + /// Converts the parameter to the parameter using and + /// + /// the value to convert into an instance of . + /// + /// an instance of , or null if there is no suitable conversion. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IVerifiedPartnerProperties ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IVerifiedPartnerProperties).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return VerifiedPartnerProperties.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return VerifiedPartnerProperties.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return VerifiedPartnerProperties.DeserializeFromDictionary(sourceValue); + } + return null; + } + + /// NotImplemented -- this will return null + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// will always return null. + public override object ConvertTo(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => null; + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/VerifiedPartnerProperties.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/VerifiedPartnerProperties.cs new file mode 100644 index 000000000000..438e56acdd25 --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/VerifiedPartnerProperties.cs @@ -0,0 +1,254 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Extensions; + + /// Properties of the verified partner. + public partial class VerifiedPartnerProperties : + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IVerifiedPartnerProperties, + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IVerifiedPartnerPropertiesInternal + { + + /// Internal Acessors for PartnerDestinationDetail + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerDetails Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IVerifiedPartnerPropertiesInternal.PartnerDestinationDetail { get => (this._partnerDestinationDetail = this._partnerDestinationDetail ?? new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.PartnerDetails()); set { {_partnerDestinationDetail = value;} } } + + /// Internal Acessors for PartnerTopicDetail + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerDetails Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IVerifiedPartnerPropertiesInternal.PartnerTopicDetail { get => (this._partnerTopicDetail = this._partnerTopicDetail ?? new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.PartnerDetails()); set { {_partnerTopicDetail = value;} } } + + /// Backing field for property. + private string _organizationName; + + /// Official name of the Partner. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Owned)] + public string OrganizationName { get => this._organizationName; set => this._organizationName = value; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerDetails _partnerDestinationDetail; + + /// Details of the partner destination scenario. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Owned)] + internal Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerDetails PartnerDestinationDetail { get => (this._partnerDestinationDetail = this._partnerDestinationDetail ?? new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.PartnerDetails()); set => this._partnerDestinationDetail = value; } + + /// + /// This is short description about the partner. The length of this description should not exceed 256 characters. + /// + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Inlined)] + public string PartnerDestinationDetailDescription { get => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerDetailsInternal)PartnerDestinationDetail).Description; set => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerDetailsInternal)PartnerDestinationDetail).Description = value ?? null; } + + /// + /// Long description for the partner's scenarios and integration.Length of this description should not exceed 2048 characters. + /// + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Inlined)] + public string PartnerDestinationDetailLongDescription { get => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerDetailsInternal)PartnerDestinationDetail).LongDescription; set => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerDetailsInternal)PartnerDestinationDetail).LongDescription = value ?? null; } + + /// + /// URI of the partner website that can be used by Azure customers to setup Event Grid + /// integration on an event source. + /// + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Inlined)] + public string PartnerDestinationDetailSetupUri { get => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerDetailsInternal)PartnerDestinationDetail).SetupUri; set => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerDetailsInternal)PartnerDestinationDetail).SetupUri = value ?? null; } + + /// Backing field for property. + private string _partnerDisplayName; + + /// Display name of the verified partner. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Owned)] + public string PartnerDisplayName { get => this._partnerDisplayName; set => this._partnerDisplayName = value; } + + /// Backing field for property. + private string _partnerRegistrationImmutableId; + + /// ImmutableId of the corresponding partner registration. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Owned)] + public string PartnerRegistrationImmutableId { get => this._partnerRegistrationImmutableId; set => this._partnerRegistrationImmutableId = value; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerDetails _partnerTopicDetail; + + /// Details of the partner topic scenario. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Owned)] + internal Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerDetails PartnerTopicDetail { get => (this._partnerTopicDetail = this._partnerTopicDetail ?? new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.PartnerDetails()); set => this._partnerTopicDetail = value; } + + /// + /// This is short description about the partner. The length of this description should not exceed 256 characters. + /// + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Inlined)] + public string PartnerTopicDetailDescription { get => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerDetailsInternal)PartnerTopicDetail).Description; set => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerDetailsInternal)PartnerTopicDetail).Description = value ?? null; } + + /// + /// Long description for the partner's scenarios and integration.Length of this description should not exceed 2048 characters. + /// + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Inlined)] + public string PartnerTopicDetailLongDescription { get => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerDetailsInternal)PartnerTopicDetail).LongDescription; set => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerDetailsInternal)PartnerTopicDetail).LongDescription = value ?? null; } + + /// + /// URI of the partner website that can be used by Azure customers to setup Event Grid + /// integration on an event source. + /// + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Inlined)] + public string PartnerTopicDetailSetupUri { get => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerDetailsInternal)PartnerTopicDetail).SetupUri; set => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerDetailsInternal)PartnerTopicDetail).SetupUri = value ?? null; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.VerifiedPartnerProvisioningState? _provisioningState; + + /// Provisioning state of the verified partner. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Owned)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.VerifiedPartnerProvisioningState? ProvisioningState { get => this._provisioningState; set => this._provisioningState = value; } + + /// Creates an new instance. + public VerifiedPartnerProperties() + { + + } + } + /// Properties of the verified partner. + public partial interface IVerifiedPartnerProperties : + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IJsonSerializable + { + /// Official name of the Partner. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Official name of the Partner.", + SerializedName = @"organizationName", + PossibleTypes = new [] { typeof(string) })] + string OrganizationName { get; set; } + /// + /// This is short description about the partner. The length of this description should not exceed 256 characters. + /// + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"This is short description about the partner. The length of this description should not exceed 256 characters.", + SerializedName = @"description", + PossibleTypes = new [] { typeof(string) })] + string PartnerDestinationDetailDescription { get; set; } + /// + /// Long description for the partner's scenarios and integration.Length of this description should not exceed 2048 characters. + /// + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Long description for the partner's scenarios and integration.Length of this description should not exceed 2048 characters.", + SerializedName = @"longDescription", + PossibleTypes = new [] { typeof(string) })] + string PartnerDestinationDetailLongDescription { get; set; } + /// + /// URI of the partner website that can be used by Azure customers to setup Event Grid + /// integration on an event source. + /// + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"URI of the partner website that can be used by Azure customers to setup Event Grid + integration on an event source.", + SerializedName = @"setupUri", + PossibleTypes = new [] { typeof(string) })] + string PartnerDestinationDetailSetupUri { get; set; } + /// Display name of the verified partner. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Display name of the verified partner.", + SerializedName = @"partnerDisplayName", + PossibleTypes = new [] { typeof(string) })] + string PartnerDisplayName { get; set; } + /// ImmutableId of the corresponding partner registration. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"ImmutableId of the corresponding partner registration.", + SerializedName = @"partnerRegistrationImmutableId", + PossibleTypes = new [] { typeof(string) })] + string PartnerRegistrationImmutableId { get; set; } + /// + /// This is short description about the partner. The length of this description should not exceed 256 characters. + /// + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"This is short description about the partner. The length of this description should not exceed 256 characters.", + SerializedName = @"description", + PossibleTypes = new [] { typeof(string) })] + string PartnerTopicDetailDescription { get; set; } + /// + /// Long description for the partner's scenarios and integration.Length of this description should not exceed 2048 characters. + /// + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Long description for the partner's scenarios and integration.Length of this description should not exceed 2048 characters.", + SerializedName = @"longDescription", + PossibleTypes = new [] { typeof(string) })] + string PartnerTopicDetailLongDescription { get; set; } + /// + /// URI of the partner website that can be used by Azure customers to setup Event Grid + /// integration on an event source. + /// + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"URI of the partner website that can be used by Azure customers to setup Event Grid + integration on an event source.", + SerializedName = @"setupUri", + PossibleTypes = new [] { typeof(string) })] + string PartnerTopicDetailSetupUri { get; set; } + /// Provisioning state of the verified partner. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Provisioning state of the verified partner.", + SerializedName = @"provisioningState", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.VerifiedPartnerProvisioningState) })] + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.VerifiedPartnerProvisioningState? ProvisioningState { get; set; } + + } + /// Properties of the verified partner. + internal partial interface IVerifiedPartnerPropertiesInternal + + { + /// Official name of the Partner. + string OrganizationName { get; set; } + /// Details of the partner destination scenario. + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerDetails PartnerDestinationDetail { get; set; } + /// + /// This is short description about the partner. The length of this description should not exceed 256 characters. + /// + string PartnerDestinationDetailDescription { get; set; } + /// + /// Long description for the partner's scenarios and integration.Length of this description should not exceed 2048 characters. + /// + string PartnerDestinationDetailLongDescription { get; set; } + /// + /// URI of the partner website that can be used by Azure customers to setup Event Grid + /// integration on an event source. + /// + string PartnerDestinationDetailSetupUri { get; set; } + /// Display name of the verified partner. + string PartnerDisplayName { get; set; } + /// ImmutableId of the corresponding partner registration. + string PartnerRegistrationImmutableId { get; set; } + /// Details of the partner topic scenario. + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerDetails PartnerTopicDetail { get; set; } + /// + /// This is short description about the partner. The length of this description should not exceed 256 characters. + /// + string PartnerTopicDetailDescription { get; set; } + /// + /// Long description for the partner's scenarios and integration.Length of this description should not exceed 2048 characters. + /// + string PartnerTopicDetailLongDescription { get; set; } + /// + /// URI of the partner website that can be used by Azure customers to setup Event Grid + /// integration on an event source. + /// + string PartnerTopicDetailSetupUri { get; set; } + /// Provisioning state of the verified partner. + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.VerifiedPartnerProvisioningState? ProvisioningState { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/VerifiedPartnerProperties.json.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/VerifiedPartnerProperties.json.cs new file mode 100644 index 000000000000..3afe45cd6148 --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/VerifiedPartnerProperties.json.cs @@ -0,0 +1,116 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Extensions; + + /// Properties of the verified partner. + public partial class VerifiedPartnerProperties + { + + /// + /// AfterFromJson will be called after the json deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JsonNode that should be deserialized into this object. + + partial void AfterFromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json erialization has finished, allowing customization of the before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JSON container that the serialization result will be placed in. + + partial void AfterToJson(ref Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject container); + + /// + /// BeforeFromJson will be called before the json deserialization has commenced, allowing complete customization of + /// the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JsonNode that should be deserialized into this object. + /// Determines if the rest of the deserialization should be processed, or if the method should return + /// instantly. + + partial void BeforeFromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject json, ref bool returnNow); + + /// + /// BeforeToJson will be called before the json serialization has commenced, allowing complete customization of the + /// object before it is serialized. + /// If you wish to disable the default serialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JSON container that the serialization result will be placed in. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeToJson(ref Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IVerifiedPartnerProperties. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IVerifiedPartnerProperties. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IVerifiedPartnerProperties FromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject json ? new VerifiedPartnerProperties(json) : null; + } + + /// + /// Serializes this instance of into a . + /// + /// The container to serialize this object into. If the caller + /// passes in null, a new instance will be created and returned to the caller. + /// Allows the caller to choose the depth of the serialization. See . + /// + /// a serialized instance of as a . + /// + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject(); + + bool returnNow = false; + BeforeToJson(ref container, ref returnNow); + if (returnNow) + { + return container; + } + AddIf( null != this._partnerTopicDetail ? (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode) this._partnerTopicDetail.ToJson(null,serializationMode) : null, "partnerTopicDetails" ,container.Add ); + AddIf( null != this._partnerDestinationDetail ? (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode) this._partnerDestinationDetail.ToJson(null,serializationMode) : null, "partnerDestinationDetails" ,container.Add ); + AddIf( null != (((object)this._partnerRegistrationImmutableId)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonString(this._partnerRegistrationImmutableId.ToString()) : null, "partnerRegistrationImmutableId" ,container.Add ); + AddIf( null != (((object)this._organizationName)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonString(this._organizationName.ToString()) : null, "organizationName" ,container.Add ); + AddIf( null != (((object)this._partnerDisplayName)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonString(this._partnerDisplayName.ToString()) : null, "partnerDisplayName" ,container.Add ); + AddIf( null != (((object)this._provisioningState)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonString(this._provisioningState.ToString()) : null, "provisioningState" ,container.Add ); + AfterToJson(ref container); + return container; + } + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject instance to deserialize from. + internal VerifiedPartnerProperties(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject json) + { + bool returnNow = false; + BeforeFromJson(json, ref returnNow); + if (returnNow) + { + return; + } + {_partnerTopicDetail = If( json?.PropertyT("partnerTopicDetails"), out var __jsonPartnerTopicDetails) ? Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.PartnerDetails.FromJson(__jsonPartnerTopicDetails) : PartnerTopicDetail;} + {_partnerDestinationDetail = If( json?.PropertyT("partnerDestinationDetails"), out var __jsonPartnerDestinationDetails) ? Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.PartnerDetails.FromJson(__jsonPartnerDestinationDetails) : PartnerDestinationDetail;} + {_partnerRegistrationImmutableId = If( json?.PropertyT("partnerRegistrationImmutableId"), out var __jsonPartnerRegistrationImmutableId) ? (string)__jsonPartnerRegistrationImmutableId : (string)PartnerRegistrationImmutableId;} + {_organizationName = If( json?.PropertyT("organizationName"), out var __jsonOrganizationName) ? (string)__jsonOrganizationName : (string)OrganizationName;} + {_partnerDisplayName = If( json?.PropertyT("partnerDisplayName"), out var __jsonPartnerDisplayName) ? (string)__jsonPartnerDisplayName : (string)PartnerDisplayName;} + {_provisioningState = If( json?.PropertyT("provisioningState"), out var __jsonProvisioningState) ? (string)__jsonProvisioningState : (string)ProvisioningState;} + AfterFromJson(json); + } + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/VerifiedPartnersListResult.PowerShell.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/VerifiedPartnersListResult.PowerShell.cs new file mode 100644 index 000000000000..700b88cc77e3 --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/VerifiedPartnersListResult.PowerShell.cs @@ -0,0 +1,152 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell; + + /// Result of the List verified partners operation + [System.ComponentModel.TypeConverter(typeof(VerifiedPartnersListResultTypeConverter))] + public partial class VerifiedPartnersListResult + { + + /// + /// AfterDeserializeDictionary will be called after the deserialization has finished, allowing customization of the + /// object before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Collections.IDictionary content that should be used. + + partial void AfterDeserializeDictionary(global::System.Collections.IDictionary content); + + /// + /// AfterDeserializePSObject will be called after the deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Management.Automation.PSObject content that should be used. + + partial void AfterDeserializePSObject(global::System.Management.Automation.PSObject content); + + /// + /// BeforeDeserializeDictionary will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Collections.IDictionary content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializeDictionary(global::System.Collections.IDictionary content, ref bool returnNow); + + /// + /// BeforeDeserializePSObject will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializePSObject(global::System.Management.Automation.PSObject content, ref bool returnNow); + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IVerifiedPartnersListResult DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new VerifiedPartnersListResult(content); + } + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IVerifiedPartnersListResult DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new VerifiedPartnersListResult(content); + } + + /// + /// Creates a new instance of , deserializing the content from a json string. + /// + /// a string containing a JSON serialized instance of this model. + /// an instance of the model class. + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IVerifiedPartnersListResult FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode.Parse(jsonText)); + + /// Serializes this instance to a json string. + + /// a containing this model serialized to JSON text. + public string ToJsonString() => ToJson(null, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SerializationMode.IncludeAll)?.ToString(); + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + internal VerifiedPartnersListResult(global::System.Collections.IDictionary content) + { + bool returnNow = false; + BeforeDeserializeDictionary(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("Value")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IVerifiedPartnersListResultInternal)this).Value = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IVerifiedPartner[]) content.GetValueForProperty("Value",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IVerifiedPartnersListResultInternal)this).Value, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.VerifiedPartnerTypeConverter.ConvertFrom)); + } + if (content.Contains("NextLink")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IVerifiedPartnersListResultInternal)this).NextLink = (string) content.GetValueForProperty("NextLink",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IVerifiedPartnersListResultInternal)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 VerifiedPartnersListResult(global::System.Management.Automation.PSObject content) + { + bool returnNow = false; + BeforeDeserializePSObject(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("Value")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IVerifiedPartnersListResultInternal)this).Value = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IVerifiedPartner[]) content.GetValueForProperty("Value",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IVerifiedPartnersListResultInternal)this).Value, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.VerifiedPartnerTypeConverter.ConvertFrom)); + } + if (content.Contains("NextLink")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IVerifiedPartnersListResultInternal)this).NextLink = (string) content.GetValueForProperty("NextLink",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IVerifiedPartnersListResultInternal)this).NextLink, global::System.Convert.ToString); + } + AfterDeserializePSObject(content); + } + } + /// Result of the List verified partners operation + [System.ComponentModel.TypeConverter(typeof(VerifiedPartnersListResultTypeConverter))] + public partial interface IVerifiedPartnersListResult + + { + + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/VerifiedPartnersListResult.TypeConverter.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/VerifiedPartnersListResult.TypeConverter.cs new file mode 100644 index 000000000000..a927b4e9460c --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/VerifiedPartnersListResult.TypeConverter.cs @@ -0,0 +1,147 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class VerifiedPartnersListResultTypeConverter : global::System.Management.Automation.PSTypeConverter + { + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false. + /// + public override bool CanConvertFrom(object sourceValue, global::System.Type destinationType) => CanConvertFrom(sourceValue); + + /// + /// Determines if the converter can convert the parameter to the . + /// + /// the instance to check if it can be converted to the type. + /// + /// true if the instance could be converted to a type, otherwise false + /// + public static bool CanConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return true; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + // we say yest to PSObjects + return true; + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + // we say yest to Hashtables/dictionaries + return true; + } + try + { + if (null != sourceValue.ToJsonString()) + { + return true; + } + } + catch + { + // Not one of our objects + } + try + { + string text = sourceValue.ToString()?.Trim(); + return true == text?.StartsWith("{") && true == text?.EndsWith("}") && Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonType.Object; + } + catch + { + // Doesn't look like it can be treated as JSON + } + return false; + } + + /// + /// Determines if the parameter can be converted to the parameter + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false + /// + public override bool CanConvertTo(object sourceValue, global::System.Type destinationType) => false; + + /// + /// Converts the parameter to the parameter using and + /// + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// + /// an instance of , or null if there is no suitable conversion. + /// + public override object ConvertFrom(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => ConvertFrom(sourceValue); + + /// + /// Converts the parameter to the parameter using and + /// + /// the value to convert into an instance of . + /// + /// an instance of , or null if there is no suitable conversion. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IVerifiedPartnersListResult ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IVerifiedPartnersListResult).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return VerifiedPartnersListResult.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return VerifiedPartnersListResult.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return VerifiedPartnersListResult.DeserializeFromDictionary(sourceValue); + } + return null; + } + + /// NotImplemented -- this will return null + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// will always return null. + public override object ConvertTo(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => null; + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/VerifiedPartnersListResult.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/VerifiedPartnersListResult.cs new file mode 100644 index 000000000000..f94e00ca872b --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/VerifiedPartnersListResult.cs @@ -0,0 +1,68 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Extensions; + + /// Result of the List verified partners operation + public partial class VerifiedPartnersListResult : + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IVerifiedPartnersListResult, + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IVerifiedPartnersListResultInternal + { + + /// Backing field for property. + private string _nextLink; + + /// A link for the next page of verified partners if any. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Owned)] + public string NextLink { get => this._nextLink; set => this._nextLink = value; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IVerifiedPartner[] _value; + + /// A collection of verified partners. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Owned)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IVerifiedPartner[] Value { get => this._value; set => this._value = value; } + + /// Creates an new instance. + public VerifiedPartnersListResult() + { + + } + } + /// Result of the List verified partners operation + public partial interface IVerifiedPartnersListResult : + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IJsonSerializable + { + /// A link for the next page of verified partners if any. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"A link for the next page of verified partners if any.", + SerializedName = @"nextLink", + PossibleTypes = new [] { typeof(string) })] + string NextLink { get; set; } + /// A collection of verified partners. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"A collection of verified partners.", + SerializedName = @"value", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IVerifiedPartner) })] + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IVerifiedPartner[] Value { get; set; } + + } + /// Result of the List verified partners operation + internal partial interface IVerifiedPartnersListResultInternal + + { + /// A link for the next page of verified partners if any. + string NextLink { get; set; } + /// A collection of verified partners. + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IVerifiedPartner[] Value { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/VerifiedPartnersListResult.json.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/VerifiedPartnersListResult.json.cs new file mode 100644 index 000000000000..9addf48640f2 --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/VerifiedPartnersListResult.json.cs @@ -0,0 +1,116 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Extensions; + + /// Result of the List verified partners operation + public partial class VerifiedPartnersListResult + { + + /// + /// AfterFromJson will be called after the json deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JsonNode that should be deserialized into this object. + + partial void AfterFromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json erialization has finished, allowing customization of the before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JSON container that the serialization result will be placed in. + + partial void AfterToJson(ref Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject container); + + /// + /// BeforeFromJson will be called before the json deserialization has commenced, allowing complete customization of + /// the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JsonNode that should be deserialized into this object. + /// Determines if the rest of the deserialization should be processed, or if the method should return + /// instantly. + + partial void BeforeFromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject json, ref bool returnNow); + + /// + /// BeforeToJson will be called before the json serialization has commenced, allowing complete customization of the + /// object before it is serialized. + /// If you wish to disable the default serialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JSON container that the serialization result will be placed in. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeToJson(ref Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IVerifiedPartnersListResult. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IVerifiedPartnersListResult. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IVerifiedPartnersListResult FromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject json ? new VerifiedPartnersListResult(json) : null; + } + + /// + /// Serializes this instance of into a . + /// + /// The container to serialize this object into. If the caller + /// passes in null, a new instance will be created and returned to the caller. + /// Allows the caller to choose the depth of the serialization. See . + /// + /// a serialized instance of as a . + /// + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Runtime.Json.XNodeArray(); + foreach( var __x in this._value ) + { + AddIf(__x?.ToJson(null, serializationMode) ,__w.Add); + } + container.Add("value",__w); + } + AddIf( null != (((object)this._nextLink)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonString(this._nextLink.ToString()) : null, "nextLink" ,container.Add ); + AfterToJson(ref container); + return container; + } + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject instance to deserialize from. + internal VerifiedPartnersListResult(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.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.EventGrid.Models.Api20211015Preview.IVerifiedPartner) (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.VerifiedPartner.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/eventgrid/generated/api/Models/Api20211015Preview/WebHookEventSubscriptionDestination.PowerShell.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/WebHookEventSubscriptionDestination.PowerShell.cs new file mode 100644 index 000000000000..903db766f08e --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/WebHookEventSubscriptionDestination.PowerShell.cs @@ -0,0 +1,210 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell; + + /// Information about the webhook destination for an event subscription. + [System.ComponentModel.TypeConverter(typeof(WebHookEventSubscriptionDestinationTypeConverter))] + public partial class WebHookEventSubscriptionDestination + { + + /// + /// AfterDeserializeDictionary will be called after the deserialization has finished, allowing customization of the + /// object before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Collections.IDictionary content that should be used. + + partial void AfterDeserializeDictionary(global::System.Collections.IDictionary content); + + /// + /// AfterDeserializePSObject will be called after the deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Management.Automation.PSObject content that should be used. + + partial void AfterDeserializePSObject(global::System.Management.Automation.PSObject content); + + /// + /// BeforeDeserializeDictionary will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Collections.IDictionary content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializeDictionary(global::System.Collections.IDictionary content, ref bool returnNow); + + /// + /// BeforeDeserializePSObject will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializePSObject(global::System.Management.Automation.PSObject content, ref bool returnNow); + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IWebHookEventSubscriptionDestination DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new WebHookEventSubscriptionDestination(content); + } + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IWebHookEventSubscriptionDestination DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new WebHookEventSubscriptionDestination(content); + } + + /// + /// Creates a new instance of , deserializing the content from a json string. + /// + /// a string containing a JSON serialized instance of this model. + /// + /// an instance of the model class. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IWebHookEventSubscriptionDestination FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode.Parse(jsonText)); + + /// Serializes this instance to a json string. + + /// a containing this model serialized to JSON text. + public string ToJsonString() => ToJson(null, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SerializationMode.IncludeAll)?.ToString(); + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + internal WebHookEventSubscriptionDestination(global::System.Collections.IDictionary content) + { + bool returnNow = false; + BeforeDeserializeDictionary(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("Property")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IWebHookEventSubscriptionDestinationInternal)this).Property = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IWebHookEventSubscriptionDestinationProperties) content.GetValueForProperty("Property",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IWebHookEventSubscriptionDestinationInternal)this).Property, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.WebHookEventSubscriptionDestinationPropertiesTypeConverter.ConvertFrom); + } + if (content.Contains("EndpointType")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionDestinationInternal)this).EndpointType = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EndpointType) content.GetValueForProperty("EndpointType",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionDestinationInternal)this).EndpointType, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EndpointType.CreateFrom); + } + if (content.Contains("EndpointUrl")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IWebHookEventSubscriptionDestinationInternal)this).EndpointUrl = (string) content.GetValueForProperty("EndpointUrl",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IWebHookEventSubscriptionDestinationInternal)this).EndpointUrl, global::System.Convert.ToString); + } + if (content.Contains("EndpointBaseUrl")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IWebHookEventSubscriptionDestinationInternal)this).EndpointBaseUrl = (string) content.GetValueForProperty("EndpointBaseUrl",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IWebHookEventSubscriptionDestinationInternal)this).EndpointBaseUrl, global::System.Convert.ToString); + } + if (content.Contains("MaxEventsPerBatch")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IWebHookEventSubscriptionDestinationInternal)this).MaxEventsPerBatch = (int?) content.GetValueForProperty("MaxEventsPerBatch",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IWebHookEventSubscriptionDestinationInternal)this).MaxEventsPerBatch, (__y)=> (int) global::System.Convert.ChangeType(__y, typeof(int))); + } + if (content.Contains("PreferredBatchSizeInKilobyte")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IWebHookEventSubscriptionDestinationInternal)this).PreferredBatchSizeInKilobyte = (int?) content.GetValueForProperty("PreferredBatchSizeInKilobyte",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IWebHookEventSubscriptionDestinationInternal)this).PreferredBatchSizeInKilobyte, (__y)=> (int) global::System.Convert.ChangeType(__y, typeof(int))); + } + if (content.Contains("AzureActiveDirectoryTenantId")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IWebHookEventSubscriptionDestinationInternal)this).AzureActiveDirectoryTenantId = (string) content.GetValueForProperty("AzureActiveDirectoryTenantId",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IWebHookEventSubscriptionDestinationInternal)this).AzureActiveDirectoryTenantId, global::System.Convert.ToString); + } + if (content.Contains("AzureActiveDirectoryApplicationIdOrUri")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IWebHookEventSubscriptionDestinationInternal)this).AzureActiveDirectoryApplicationIdOrUri = (string) content.GetValueForProperty("AzureActiveDirectoryApplicationIdOrUri",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IWebHookEventSubscriptionDestinationInternal)this).AzureActiveDirectoryApplicationIdOrUri, global::System.Convert.ToString); + } + if (content.Contains("DeliveryAttributeMapping")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IWebHookEventSubscriptionDestinationInternal)this).DeliveryAttributeMapping = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDeliveryAttributeMapping[]) content.GetValueForProperty("DeliveryAttributeMapping",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IWebHookEventSubscriptionDestinationInternal)this).DeliveryAttributeMapping, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.DeliveryAttributeMappingTypeConverter.ConvertFrom)); + } + AfterDeserializeDictionary(content); + } + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + internal WebHookEventSubscriptionDestination(global::System.Management.Automation.PSObject content) + { + bool returnNow = false; + BeforeDeserializePSObject(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("Property")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IWebHookEventSubscriptionDestinationInternal)this).Property = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IWebHookEventSubscriptionDestinationProperties) content.GetValueForProperty("Property",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IWebHookEventSubscriptionDestinationInternal)this).Property, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.WebHookEventSubscriptionDestinationPropertiesTypeConverter.ConvertFrom); + } + if (content.Contains("EndpointType")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionDestinationInternal)this).EndpointType = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EndpointType) content.GetValueForProperty("EndpointType",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionDestinationInternal)this).EndpointType, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EndpointType.CreateFrom); + } + if (content.Contains("EndpointUrl")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IWebHookEventSubscriptionDestinationInternal)this).EndpointUrl = (string) content.GetValueForProperty("EndpointUrl",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IWebHookEventSubscriptionDestinationInternal)this).EndpointUrl, global::System.Convert.ToString); + } + if (content.Contains("EndpointBaseUrl")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IWebHookEventSubscriptionDestinationInternal)this).EndpointBaseUrl = (string) content.GetValueForProperty("EndpointBaseUrl",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IWebHookEventSubscriptionDestinationInternal)this).EndpointBaseUrl, global::System.Convert.ToString); + } + if (content.Contains("MaxEventsPerBatch")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IWebHookEventSubscriptionDestinationInternal)this).MaxEventsPerBatch = (int?) content.GetValueForProperty("MaxEventsPerBatch",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IWebHookEventSubscriptionDestinationInternal)this).MaxEventsPerBatch, (__y)=> (int) global::System.Convert.ChangeType(__y, typeof(int))); + } + if (content.Contains("PreferredBatchSizeInKilobyte")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IWebHookEventSubscriptionDestinationInternal)this).PreferredBatchSizeInKilobyte = (int?) content.GetValueForProperty("PreferredBatchSizeInKilobyte",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IWebHookEventSubscriptionDestinationInternal)this).PreferredBatchSizeInKilobyte, (__y)=> (int) global::System.Convert.ChangeType(__y, typeof(int))); + } + if (content.Contains("AzureActiveDirectoryTenantId")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IWebHookEventSubscriptionDestinationInternal)this).AzureActiveDirectoryTenantId = (string) content.GetValueForProperty("AzureActiveDirectoryTenantId",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IWebHookEventSubscriptionDestinationInternal)this).AzureActiveDirectoryTenantId, global::System.Convert.ToString); + } + if (content.Contains("AzureActiveDirectoryApplicationIdOrUri")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IWebHookEventSubscriptionDestinationInternal)this).AzureActiveDirectoryApplicationIdOrUri = (string) content.GetValueForProperty("AzureActiveDirectoryApplicationIdOrUri",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IWebHookEventSubscriptionDestinationInternal)this).AzureActiveDirectoryApplicationIdOrUri, global::System.Convert.ToString); + } + if (content.Contains("DeliveryAttributeMapping")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IWebHookEventSubscriptionDestinationInternal)this).DeliveryAttributeMapping = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDeliveryAttributeMapping[]) content.GetValueForProperty("DeliveryAttributeMapping",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IWebHookEventSubscriptionDestinationInternal)this).DeliveryAttributeMapping, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.DeliveryAttributeMappingTypeConverter.ConvertFrom)); + } + AfterDeserializePSObject(content); + } + } + /// Information about the webhook destination for an event subscription. + [System.ComponentModel.TypeConverter(typeof(WebHookEventSubscriptionDestinationTypeConverter))] + public partial interface IWebHookEventSubscriptionDestination + + { + + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/WebHookEventSubscriptionDestination.TypeConverter.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/WebHookEventSubscriptionDestination.TypeConverter.cs new file mode 100644 index 000000000000..daf55c295926 --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/WebHookEventSubscriptionDestination.TypeConverter.cs @@ -0,0 +1,148 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class WebHookEventSubscriptionDestinationTypeConverter : global::System.Management.Automation.PSTypeConverter + { + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false. + /// + public override bool CanConvertFrom(object sourceValue, global::System.Type destinationType) => CanConvertFrom(sourceValue); + + /// + /// Determines if the converter can convert the parameter to the . + /// + /// the instance to check if it can be converted to the type. + /// + /// true if the instance could be converted to a type, otherwise + /// false + /// + public static bool CanConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return true; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + // we say yest to PSObjects + return true; + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + // we say yest to Hashtables/dictionaries + return true; + } + try + { + if (null != sourceValue.ToJsonString()) + { + return true; + } + } + catch + { + // Not one of our objects + } + try + { + string text = sourceValue.ToString()?.Trim(); + return true == text?.StartsWith("{") && true == text?.EndsWith("}") && Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonType.Object; + } + catch + { + // Doesn't look like it can be treated as JSON + } + return false; + } + + /// + /// Determines if the parameter can be converted to the parameter + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false + /// + public override bool CanConvertTo(object sourceValue, global::System.Type destinationType) => false; + + /// + /// Converts the parameter to the parameter using and + /// + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// + /// an instance of , or null if there is no suitable conversion. + /// + public override object ConvertFrom(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => ConvertFrom(sourceValue); + + /// + /// Converts the parameter to the parameter using and + /// + /// the value to convert into an instance of . + /// + /// an instance of , or null if there is no suitable conversion. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IWebHookEventSubscriptionDestination ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IWebHookEventSubscriptionDestination).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return WebHookEventSubscriptionDestination.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return WebHookEventSubscriptionDestination.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return WebHookEventSubscriptionDestination.DeserializeFromDictionary(sourceValue); + } + return null; + } + + /// NotImplemented -- this will return null + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// will always return null. + public override object ConvertTo(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => null; + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/WebHookEventSubscriptionDestination.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/WebHookEventSubscriptionDestination.cs new file mode 100644 index 000000000000..8f029a98c6ca --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/WebHookEventSubscriptionDestination.cs @@ -0,0 +1,197 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Extensions; + + /// Information about the webhook destination for an event subscription. + public partial class WebHookEventSubscriptionDestination : + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IWebHookEventSubscriptionDestination, + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IWebHookEventSubscriptionDestinationInternal, + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IValidates + { + /// + /// Backing field for Inherited model + /// + private Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionDestination __eventSubscriptionDestination = new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.EventSubscriptionDestination(); + + /// + /// The Azure Active Directory Application ID or URI to get the access token that will be included as the bearer token in + /// delivery requests. + /// + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Inlined)] + public string AzureActiveDirectoryApplicationIdOrUri { get => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IWebHookEventSubscriptionDestinationPropertiesInternal)Property).AzureActiveDirectoryApplicationIdOrUri; set => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IWebHookEventSubscriptionDestinationPropertiesInternal)Property).AzureActiveDirectoryApplicationIdOrUri = value ?? null; } + + /// + /// The Azure Active Directory Tenant ID to get the access token that will be included as the bearer token in delivery requests. + /// + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Inlined)] + public string AzureActiveDirectoryTenantId { get => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IWebHookEventSubscriptionDestinationPropertiesInternal)Property).AzureActiveDirectoryTenantId; set => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IWebHookEventSubscriptionDestinationPropertiesInternal)Property).AzureActiveDirectoryTenantId = value ?? null; } + + /// Delivery attribute details. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Inlined)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDeliveryAttributeMapping[] DeliveryAttributeMapping { get => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IWebHookEventSubscriptionDestinationPropertiesInternal)Property).DeliveryAttributeMapping; set => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IWebHookEventSubscriptionDestinationPropertiesInternal)Property).DeliveryAttributeMapping = value ?? null /* arrayOf */; } + + /// + /// The base URL that represents the endpoint of the destination of an event subscription. + /// + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Inlined)] + public string EndpointBaseUrl { get => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IWebHookEventSubscriptionDestinationPropertiesInternal)Property).EndpointBaseUrl; } + + /// Type of the endpoint for the event subscription destination. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Inherited)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EndpointType EndpointType { get => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionDestinationInternal)__eventSubscriptionDestination).EndpointType; set => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionDestinationInternal)__eventSubscriptionDestination).EndpointType = value ; } + + /// + /// The URL that represents the endpoint of the destination of an event subscription. + /// + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Inlined)] + public string EndpointUrl { get => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IWebHookEventSubscriptionDestinationPropertiesInternal)Property).EndpointUrl; set => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IWebHookEventSubscriptionDestinationPropertiesInternal)Property).EndpointUrl = value ?? null; } + + /// Maximum number of events per batch. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Inlined)] + public int? MaxEventsPerBatch { get => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IWebHookEventSubscriptionDestinationPropertiesInternal)Property).MaxEventsPerBatch; set => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IWebHookEventSubscriptionDestinationPropertiesInternal)Property).MaxEventsPerBatch = value ?? default(int); } + + /// Internal Acessors for EndpointBaseUrl + string Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IWebHookEventSubscriptionDestinationInternal.EndpointBaseUrl { get => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IWebHookEventSubscriptionDestinationPropertiesInternal)Property).EndpointBaseUrl; set => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IWebHookEventSubscriptionDestinationPropertiesInternal)Property).EndpointBaseUrl = value; } + + /// Internal Acessors for Property + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IWebHookEventSubscriptionDestinationProperties Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IWebHookEventSubscriptionDestinationInternal.Property { get => (this._property = this._property ?? new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.WebHookEventSubscriptionDestinationProperties()); set { {_property = value;} } } + + /// Preferred batch size in Kilobytes. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Inlined)] + public int? PreferredBatchSizeInKilobyte { get => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IWebHookEventSubscriptionDestinationPropertiesInternal)Property).PreferredBatchSizeInKilobyte; set => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IWebHookEventSubscriptionDestinationPropertiesInternal)Property).PreferredBatchSizeInKilobyte = value ?? default(int); } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IWebHookEventSubscriptionDestinationProperties _property; + + /// WebHook Properties of the event subscription destination. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Owned)] + internal Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IWebHookEventSubscriptionDestinationProperties Property { get => (this._property = this._property ?? new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.WebHookEventSubscriptionDestinationProperties()); set => this._property = value; } + + /// Validates that this object meets the validation criteria. + /// an instance that will receive validation + /// events. + /// + /// A that will be complete when validation is completed. + /// + public async global::System.Threading.Tasks.Task Validate(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener eventListener) + { + await eventListener.AssertNotNull(nameof(__eventSubscriptionDestination), __eventSubscriptionDestination); + await eventListener.AssertObjectIsValid(nameof(__eventSubscriptionDestination), __eventSubscriptionDestination); + } + + /// Creates an new instance. + public WebHookEventSubscriptionDestination() + { + + } + } + /// Information about the webhook destination for an event subscription. + public partial interface IWebHookEventSubscriptionDestination : + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IJsonSerializable, + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionDestination + { + /// + /// The Azure Active Directory Application ID or URI to get the access token that will be included as the bearer token in + /// delivery requests. + /// + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The Azure Active Directory Application ID or URI to get the access token that will be included as the bearer token in delivery requests.", + SerializedName = @"azureActiveDirectoryApplicationIdOrUri", + PossibleTypes = new [] { typeof(string) })] + string AzureActiveDirectoryApplicationIdOrUri { get; set; } + /// + /// The Azure Active Directory Tenant ID to get the access token that will be included as the bearer token in delivery requests. + /// + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The Azure Active Directory Tenant ID to get the access token that will be included as the bearer token in delivery requests.", + SerializedName = @"azureActiveDirectoryTenantId", + PossibleTypes = new [] { typeof(string) })] + string AzureActiveDirectoryTenantId { get; set; } + /// Delivery attribute details. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Delivery attribute details.", + SerializedName = @"deliveryAttributeMappings", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDeliveryAttributeMapping),typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IStaticDeliveryAttributeMapping),typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDynamicDeliveryAttributeMapping) })] + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDeliveryAttributeMapping[] DeliveryAttributeMapping { get; set; } + /// + /// The base URL that represents the endpoint of the destination of an event subscription. + /// + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"The base URL that represents the endpoint of the destination of an event subscription.", + SerializedName = @"endpointBaseUrl", + PossibleTypes = new [] { typeof(string) })] + string EndpointBaseUrl { get; } + /// + /// The URL that represents the endpoint of the destination of an event subscription. + /// + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The URL that represents the endpoint of the destination of an event subscription.", + SerializedName = @"endpointUrl", + PossibleTypes = new [] { typeof(string) })] + string EndpointUrl { get; set; } + /// Maximum number of events per batch. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Maximum number of events per batch.", + SerializedName = @"maxEventsPerBatch", + PossibleTypes = new [] { typeof(int) })] + int? MaxEventsPerBatch { get; set; } + /// Preferred batch size in Kilobytes. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Preferred batch size in Kilobytes.", + SerializedName = @"preferredBatchSizeInKilobytes", + PossibleTypes = new [] { typeof(int) })] + int? PreferredBatchSizeInKilobyte { get; set; } + + } + /// Information about the webhook destination for an event subscription. + internal partial interface IWebHookEventSubscriptionDestinationInternal : + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionDestinationInternal + { + /// + /// The Azure Active Directory Application ID or URI to get the access token that will be included as the bearer token in + /// delivery requests. + /// + string AzureActiveDirectoryApplicationIdOrUri { get; set; } + /// + /// The Azure Active Directory Tenant ID to get the access token that will be included as the bearer token in delivery requests. + /// + string AzureActiveDirectoryTenantId { get; set; } + /// Delivery attribute details. + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDeliveryAttributeMapping[] DeliveryAttributeMapping { get; set; } + /// + /// The base URL that represents the endpoint of the destination of an event subscription. + /// + string EndpointBaseUrl { get; set; } + /// + /// The URL that represents the endpoint of the destination of an event subscription. + /// + string EndpointUrl { get; set; } + /// Maximum number of events per batch. + int? MaxEventsPerBatch { get; set; } + /// Preferred batch size in Kilobytes. + int? PreferredBatchSizeInKilobyte { get; set; } + /// WebHook Properties of the event subscription destination. + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IWebHookEventSubscriptionDestinationProperties Property { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/WebHookEventSubscriptionDestination.json.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/WebHookEventSubscriptionDestination.json.cs new file mode 100644 index 000000000000..049d1837571c --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/WebHookEventSubscriptionDestination.json.cs @@ -0,0 +1,109 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Extensions; + + /// Information about the webhook destination for an event subscription. + public partial class WebHookEventSubscriptionDestination + { + + /// + /// AfterFromJson will be called after the json deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JsonNode that should be deserialized into this object. + + partial void AfterFromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json erialization has finished, allowing customization of the before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JSON container that the serialization result will be placed in. + + partial void AfterToJson(ref Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject container); + + /// + /// BeforeFromJson will be called before the json deserialization has commenced, allowing complete customization of + /// the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JsonNode that should be deserialized into this object. + /// Determines if the rest of the deserialization should be processed, or if the method should return + /// instantly. + + partial void BeforeFromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject json, ref bool returnNow); + + /// + /// BeforeToJson will be called before the json serialization has commenced, allowing complete customization of the + /// object before it is serialized. + /// If you wish to disable the default serialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JSON container that the serialization result will be placed in. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeToJson(ref Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IWebHookEventSubscriptionDestination. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IWebHookEventSubscriptionDestination. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IWebHookEventSubscriptionDestination FromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject json ? new WebHookEventSubscriptionDestination(json) : null; + } + + /// + /// Serializes this instance of into a . + /// + /// The container to serialize this object into. If the caller + /// passes in null, a new instance will be created and returned to the caller. + /// Allows the caller to choose the depth of the serialization. See . + /// + /// a serialized instance of as a . + /// + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject(); + + bool returnNow = false; + BeforeToJson(ref container, ref returnNow); + if (returnNow) + { + return container; + } + __eventSubscriptionDestination?.ToJson(container, serializationMode); + AddIf( null != this._property ? (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode) this._property.ToJson(null,serializationMode) : null, "properties" ,container.Add ); + AfterToJson(ref container); + return container; + } + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject instance to deserialize from. + internal WebHookEventSubscriptionDestination(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject json) + { + bool returnNow = false; + BeforeFromJson(json, ref returnNow); + if (returnNow) + { + return; + } + __eventSubscriptionDestination = new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.EventSubscriptionDestination(json); + {_property = If( json?.PropertyT("properties"), out var __jsonProperties) ? Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.WebHookEventSubscriptionDestinationProperties.FromJson(__jsonProperties) : Property;} + AfterFromJson(json); + } + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/WebHookEventSubscriptionDestinationProperties.PowerShell.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/WebHookEventSubscriptionDestinationProperties.PowerShell.cs new file mode 100644 index 000000000000..69209e86079b --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/WebHookEventSubscriptionDestinationProperties.PowerShell.cs @@ -0,0 +1,195 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell; + + /// Information about the webhook destination properties for an event subscription. + [System.ComponentModel.TypeConverter(typeof(WebHookEventSubscriptionDestinationPropertiesTypeConverter))] + public partial class WebHookEventSubscriptionDestinationProperties + { + + /// + /// AfterDeserializeDictionary will be called after the deserialization has finished, allowing customization of the + /// object before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Collections.IDictionary content that should be used. + + partial void AfterDeserializeDictionary(global::System.Collections.IDictionary content); + + /// + /// AfterDeserializePSObject will be called after the deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Management.Automation.PSObject content that should be used. + + partial void AfterDeserializePSObject(global::System.Management.Automation.PSObject content); + + /// + /// BeforeDeserializeDictionary will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Collections.IDictionary content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializeDictionary(global::System.Collections.IDictionary content, ref bool returnNow); + + /// + /// BeforeDeserializePSObject will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializePSObject(global::System.Management.Automation.PSObject content, ref bool returnNow); + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IWebHookEventSubscriptionDestinationProperties DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new WebHookEventSubscriptionDestinationProperties(content); + } + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IWebHookEventSubscriptionDestinationProperties DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new WebHookEventSubscriptionDestinationProperties(content); + } + + /// + /// Creates a new instance of , deserializing the content from + /// a json string. + /// + /// a string containing a JSON serialized instance of this model. + /// + /// an instance of the model class. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IWebHookEventSubscriptionDestinationProperties FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode.Parse(jsonText)); + + /// Serializes this instance to a json string. + + /// a containing this model serialized to JSON text. + public string ToJsonString() => ToJson(null, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SerializationMode.IncludeAll)?.ToString(); + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + internal WebHookEventSubscriptionDestinationProperties(global::System.Collections.IDictionary content) + { + bool returnNow = false; + BeforeDeserializeDictionary(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("EndpointUrl")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IWebHookEventSubscriptionDestinationPropertiesInternal)this).EndpointUrl = (string) content.GetValueForProperty("EndpointUrl",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IWebHookEventSubscriptionDestinationPropertiesInternal)this).EndpointUrl, global::System.Convert.ToString); + } + if (content.Contains("EndpointBaseUrl")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IWebHookEventSubscriptionDestinationPropertiesInternal)this).EndpointBaseUrl = (string) content.GetValueForProperty("EndpointBaseUrl",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IWebHookEventSubscriptionDestinationPropertiesInternal)this).EndpointBaseUrl, global::System.Convert.ToString); + } + if (content.Contains("MaxEventsPerBatch")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IWebHookEventSubscriptionDestinationPropertiesInternal)this).MaxEventsPerBatch = (int?) content.GetValueForProperty("MaxEventsPerBatch",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IWebHookEventSubscriptionDestinationPropertiesInternal)this).MaxEventsPerBatch, (__y)=> (int) global::System.Convert.ChangeType(__y, typeof(int))); + } + if (content.Contains("PreferredBatchSizeInKilobyte")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IWebHookEventSubscriptionDestinationPropertiesInternal)this).PreferredBatchSizeInKilobyte = (int?) content.GetValueForProperty("PreferredBatchSizeInKilobyte",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IWebHookEventSubscriptionDestinationPropertiesInternal)this).PreferredBatchSizeInKilobyte, (__y)=> (int) global::System.Convert.ChangeType(__y, typeof(int))); + } + if (content.Contains("AzureActiveDirectoryTenantId")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IWebHookEventSubscriptionDestinationPropertiesInternal)this).AzureActiveDirectoryTenantId = (string) content.GetValueForProperty("AzureActiveDirectoryTenantId",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IWebHookEventSubscriptionDestinationPropertiesInternal)this).AzureActiveDirectoryTenantId, global::System.Convert.ToString); + } + if (content.Contains("AzureActiveDirectoryApplicationIdOrUri")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IWebHookEventSubscriptionDestinationPropertiesInternal)this).AzureActiveDirectoryApplicationIdOrUri = (string) content.GetValueForProperty("AzureActiveDirectoryApplicationIdOrUri",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IWebHookEventSubscriptionDestinationPropertiesInternal)this).AzureActiveDirectoryApplicationIdOrUri, global::System.Convert.ToString); + } + if (content.Contains("DeliveryAttributeMapping")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IWebHookEventSubscriptionDestinationPropertiesInternal)this).DeliveryAttributeMapping = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDeliveryAttributeMapping[]) content.GetValueForProperty("DeliveryAttributeMapping",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IWebHookEventSubscriptionDestinationPropertiesInternal)this).DeliveryAttributeMapping, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.DeliveryAttributeMappingTypeConverter.ConvertFrom)); + } + AfterDeserializeDictionary(content); + } + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + internal WebHookEventSubscriptionDestinationProperties(global::System.Management.Automation.PSObject content) + { + bool returnNow = false; + BeforeDeserializePSObject(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("EndpointUrl")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IWebHookEventSubscriptionDestinationPropertiesInternal)this).EndpointUrl = (string) content.GetValueForProperty("EndpointUrl",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IWebHookEventSubscriptionDestinationPropertiesInternal)this).EndpointUrl, global::System.Convert.ToString); + } + if (content.Contains("EndpointBaseUrl")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IWebHookEventSubscriptionDestinationPropertiesInternal)this).EndpointBaseUrl = (string) content.GetValueForProperty("EndpointBaseUrl",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IWebHookEventSubscriptionDestinationPropertiesInternal)this).EndpointBaseUrl, global::System.Convert.ToString); + } + if (content.Contains("MaxEventsPerBatch")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IWebHookEventSubscriptionDestinationPropertiesInternal)this).MaxEventsPerBatch = (int?) content.GetValueForProperty("MaxEventsPerBatch",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IWebHookEventSubscriptionDestinationPropertiesInternal)this).MaxEventsPerBatch, (__y)=> (int) global::System.Convert.ChangeType(__y, typeof(int))); + } + if (content.Contains("PreferredBatchSizeInKilobyte")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IWebHookEventSubscriptionDestinationPropertiesInternal)this).PreferredBatchSizeInKilobyte = (int?) content.GetValueForProperty("PreferredBatchSizeInKilobyte",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IWebHookEventSubscriptionDestinationPropertiesInternal)this).PreferredBatchSizeInKilobyte, (__y)=> (int) global::System.Convert.ChangeType(__y, typeof(int))); + } + if (content.Contains("AzureActiveDirectoryTenantId")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IWebHookEventSubscriptionDestinationPropertiesInternal)this).AzureActiveDirectoryTenantId = (string) content.GetValueForProperty("AzureActiveDirectoryTenantId",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IWebHookEventSubscriptionDestinationPropertiesInternal)this).AzureActiveDirectoryTenantId, global::System.Convert.ToString); + } + if (content.Contains("AzureActiveDirectoryApplicationIdOrUri")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IWebHookEventSubscriptionDestinationPropertiesInternal)this).AzureActiveDirectoryApplicationIdOrUri = (string) content.GetValueForProperty("AzureActiveDirectoryApplicationIdOrUri",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IWebHookEventSubscriptionDestinationPropertiesInternal)this).AzureActiveDirectoryApplicationIdOrUri, global::System.Convert.ToString); + } + if (content.Contains("DeliveryAttributeMapping")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IWebHookEventSubscriptionDestinationPropertiesInternal)this).DeliveryAttributeMapping = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDeliveryAttributeMapping[]) content.GetValueForProperty("DeliveryAttributeMapping",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IWebHookEventSubscriptionDestinationPropertiesInternal)this).DeliveryAttributeMapping, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.DeliveryAttributeMappingTypeConverter.ConvertFrom)); + } + AfterDeserializePSObject(content); + } + } + /// Information about the webhook destination properties for an event subscription. + [System.ComponentModel.TypeConverter(typeof(WebHookEventSubscriptionDestinationPropertiesTypeConverter))] + public partial interface IWebHookEventSubscriptionDestinationProperties + + { + + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/WebHookEventSubscriptionDestinationProperties.TypeConverter.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/WebHookEventSubscriptionDestinationProperties.TypeConverter.cs new file mode 100644 index 000000000000..674d33db2c2a --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/WebHookEventSubscriptionDestinationProperties.TypeConverter.cs @@ -0,0 +1,150 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class WebHookEventSubscriptionDestinationPropertiesTypeConverter : global::System.Management.Automation.PSTypeConverter + { + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false. + /// + public override bool CanConvertFrom(object sourceValue, global::System.Type destinationType) => CanConvertFrom(sourceValue); + + /// + /// Determines if the converter can convert the parameter to the . + /// + /// the instance to check if it can be converted to the type. + /// + /// true if the instance could be converted to a type, + /// otherwise false + /// + public static bool CanConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return true; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + // we say yest to PSObjects + return true; + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + // we say yest to Hashtables/dictionaries + return true; + } + try + { + if (null != sourceValue.ToJsonString()) + { + return true; + } + } + catch + { + // Not one of our objects + } + try + { + string text = sourceValue.ToString()?.Trim(); + return true == text?.StartsWith("{") && true == text?.EndsWith("}") && Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonType.Object; + } + catch + { + // Doesn't look like it can be treated as JSON + } + return false; + } + + /// + /// Determines if the parameter can be converted to the parameter + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false + /// + public override bool CanConvertTo(object sourceValue, global::System.Type destinationType) => false; + + /// + /// Converts the parameter to the parameter using and + /// + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// + /// an instance of , or null if there is no suitable conversion. + /// + public override object ConvertFrom(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => ConvertFrom(sourceValue); + + /// + /// Converts the parameter to the parameter using and + /// + /// the value to convert into an instance of . + /// + /// an instance of , or null if there is no suitable conversion. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IWebHookEventSubscriptionDestinationProperties ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IWebHookEventSubscriptionDestinationProperties).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return WebHookEventSubscriptionDestinationProperties.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return WebHookEventSubscriptionDestinationProperties.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return WebHookEventSubscriptionDestinationProperties.DeserializeFromDictionary(sourceValue); + } + return null; + } + + /// NotImplemented -- this will return null + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// will always return null. + public override object ConvertTo(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => null; + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/WebHookEventSubscriptionDestinationProperties.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/WebHookEventSubscriptionDestinationProperties.cs new file mode 100644 index 000000000000..f4f0ed4c89dc --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/WebHookEventSubscriptionDestinationProperties.cs @@ -0,0 +1,187 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Extensions; + + /// Information about the webhook destination properties for an event subscription. + public partial class WebHookEventSubscriptionDestinationProperties : + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IWebHookEventSubscriptionDestinationProperties, + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IWebHookEventSubscriptionDestinationPropertiesInternal + { + + /// + /// Backing field for property. + /// + private string _azureActiveDirectoryApplicationIdOrUri; + + /// + /// The Azure Active Directory Application ID or URI to get the access token that will be included as the bearer token in + /// delivery requests. + /// + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Owned)] + public string AzureActiveDirectoryApplicationIdOrUri { get => this._azureActiveDirectoryApplicationIdOrUri; set => this._azureActiveDirectoryApplicationIdOrUri = value; } + + /// Backing field for property. + private string _azureActiveDirectoryTenantId; + + /// + /// The Azure Active Directory Tenant ID to get the access token that will be included as the bearer token in delivery requests. + /// + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Owned)] + public string AzureActiveDirectoryTenantId { get => this._azureActiveDirectoryTenantId; set => this._azureActiveDirectoryTenantId = value; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDeliveryAttributeMapping[] _deliveryAttributeMapping; + + /// Delivery attribute details. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Owned)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDeliveryAttributeMapping[] DeliveryAttributeMapping { get => this._deliveryAttributeMapping; set => this._deliveryAttributeMapping = value; } + + /// Backing field for property. + private string _endpointBaseUrl; + + /// + /// The base URL that represents the endpoint of the destination of an event subscription. + /// + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Owned)] + public string EndpointBaseUrl { get => this._endpointBaseUrl; } + + /// Backing field for property. + private string _endpointUrl; + + /// + /// The URL that represents the endpoint of the destination of an event subscription. + /// + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Owned)] + public string EndpointUrl { get => this._endpointUrl; set => this._endpointUrl = value; } + + /// Backing field for property. + private int? _maxEventsPerBatch; + + /// Maximum number of events per batch. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Owned)] + public int? MaxEventsPerBatch { get => this._maxEventsPerBatch; set => this._maxEventsPerBatch = value; } + + /// Internal Acessors for EndpointBaseUrl + string Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IWebHookEventSubscriptionDestinationPropertiesInternal.EndpointBaseUrl { get => this._endpointBaseUrl; set { {_endpointBaseUrl = value;} } } + + /// Backing field for property. + private int? _preferredBatchSizeInKilobyte; + + /// Preferred batch size in Kilobytes. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Owned)] + public int? PreferredBatchSizeInKilobyte { get => this._preferredBatchSizeInKilobyte; set => this._preferredBatchSizeInKilobyte = value; } + + /// + /// Creates an new instance. + /// + public WebHookEventSubscriptionDestinationProperties() + { + + } + } + /// Information about the webhook destination properties for an event subscription. + public partial interface IWebHookEventSubscriptionDestinationProperties : + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IJsonSerializable + { + /// + /// The Azure Active Directory Application ID or URI to get the access token that will be included as the bearer token in + /// delivery requests. + /// + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The Azure Active Directory Application ID or URI to get the access token that will be included as the bearer token in delivery requests.", + SerializedName = @"azureActiveDirectoryApplicationIdOrUri", + PossibleTypes = new [] { typeof(string) })] + string AzureActiveDirectoryApplicationIdOrUri { get; set; } + /// + /// The Azure Active Directory Tenant ID to get the access token that will be included as the bearer token in delivery requests. + /// + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The Azure Active Directory Tenant ID to get the access token that will be included as the bearer token in delivery requests.", + SerializedName = @"azureActiveDirectoryTenantId", + PossibleTypes = new [] { typeof(string) })] + string AzureActiveDirectoryTenantId { get; set; } + /// Delivery attribute details. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Delivery attribute details.", + SerializedName = @"deliveryAttributeMappings", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDeliveryAttributeMapping) })] + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDeliveryAttributeMapping[] DeliveryAttributeMapping { get; set; } + /// + /// The base URL that represents the endpoint of the destination of an event subscription. + /// + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"The base URL that represents the endpoint of the destination of an event subscription.", + SerializedName = @"endpointBaseUrl", + PossibleTypes = new [] { typeof(string) })] + string EndpointBaseUrl { get; } + /// + /// The URL that represents the endpoint of the destination of an event subscription. + /// + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The URL that represents the endpoint of the destination of an event subscription.", + SerializedName = @"endpointUrl", + PossibleTypes = new [] { typeof(string) })] + string EndpointUrl { get; set; } + /// Maximum number of events per batch. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Maximum number of events per batch.", + SerializedName = @"maxEventsPerBatch", + PossibleTypes = new [] { typeof(int) })] + int? MaxEventsPerBatch { get; set; } + /// Preferred batch size in Kilobytes. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Preferred batch size in Kilobytes.", + SerializedName = @"preferredBatchSizeInKilobytes", + PossibleTypes = new [] { typeof(int) })] + int? PreferredBatchSizeInKilobyte { get; set; } + + } + /// Information about the webhook destination properties for an event subscription. + internal partial interface IWebHookEventSubscriptionDestinationPropertiesInternal + + { + /// + /// The Azure Active Directory Application ID or URI to get the access token that will be included as the bearer token in + /// delivery requests. + /// + string AzureActiveDirectoryApplicationIdOrUri { get; set; } + /// + /// The Azure Active Directory Tenant ID to get the access token that will be included as the bearer token in delivery requests. + /// + string AzureActiveDirectoryTenantId { get; set; } + /// Delivery attribute details. + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDeliveryAttributeMapping[] DeliveryAttributeMapping { get; set; } + /// + /// The base URL that represents the endpoint of the destination of an event subscription. + /// + string EndpointBaseUrl { get; set; } + /// + /// The URL that represents the endpoint of the destination of an event subscription. + /// + string EndpointUrl { get; set; } + /// Maximum number of events per batch. + int? MaxEventsPerBatch { get; set; } + /// Preferred batch size in Kilobytes. + int? PreferredBatchSizeInKilobyte { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/WebHookEventSubscriptionDestinationProperties.json.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/WebHookEventSubscriptionDestinationProperties.json.cs new file mode 100644 index 000000000000..20c3841bc89a --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/WebHookEventSubscriptionDestinationProperties.json.cs @@ -0,0 +1,132 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Extensions; + + /// Information about the webhook destination properties for an event subscription. + public partial class WebHookEventSubscriptionDestinationProperties + { + + /// + /// AfterFromJson will be called after the json deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JsonNode that should be deserialized into this object. + + partial void AfterFromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json erialization has finished, allowing customization of the before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JSON container that the serialization result will be placed in. + + partial void AfterToJson(ref Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject container); + + /// + /// BeforeFromJson will be called before the json deserialization has commenced, allowing complete customization of + /// the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JsonNode that should be deserialized into this object. + /// Determines if the rest of the deserialization should be processed, or if the method should return + /// instantly. + + partial void BeforeFromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject json, ref bool returnNow); + + /// + /// BeforeToJson will be called before the json serialization has commenced, allowing complete customization of the + /// object before it is serialized. + /// If you wish to disable the default serialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JSON container that the serialization result will be placed in. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeToJson(ref Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IWebHookEventSubscriptionDestinationProperties. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IWebHookEventSubscriptionDestinationProperties. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IWebHookEventSubscriptionDestinationProperties FromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject json ? new WebHookEventSubscriptionDestinationProperties(json) : null; + } + + /// + /// Serializes this instance of into a . + /// + /// The container to serialize this object into. If the caller + /// passes in null, a new instance will be created and returned to the caller. + /// Allows the caller to choose the depth of the serialization. See . + /// + /// a serialized instance of as a . + /// + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject(); + + bool returnNow = false; + BeforeToJson(ref container, ref returnNow); + if (returnNow) + { + return container; + } + AddIf( null != (((object)this._endpointUrl)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonString(this._endpointUrl.ToString()) : null, "endpointUrl" ,container.Add ); + if (serializationMode.HasFlag(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SerializationMode.IncludeReadOnly)) + { + AddIf( null != (((object)this._endpointBaseUrl)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonString(this._endpointBaseUrl.ToString()) : null, "endpointBaseUrl" ,container.Add ); + } + AddIf( null != this._maxEventsPerBatch ? (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode)new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNumber((int)this._maxEventsPerBatch) : null, "maxEventsPerBatch" ,container.Add ); + AddIf( null != this._preferredBatchSizeInKilobyte ? (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode)new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNumber((int)this._preferredBatchSizeInKilobyte) : null, "preferredBatchSizeInKilobytes" ,container.Add ); + AddIf( null != (((object)this._azureActiveDirectoryTenantId)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonString(this._azureActiveDirectoryTenantId.ToString()) : null, "azureActiveDirectoryTenantId" ,container.Add ); + AddIf( null != (((object)this._azureActiveDirectoryApplicationIdOrUri)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonString(this._azureActiveDirectoryApplicationIdOrUri.ToString()) : null, "azureActiveDirectoryApplicationIdOrUri" ,container.Add ); + if (null != this._deliveryAttributeMapping) + { + var __w = new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.XNodeArray(); + foreach( var __x in this._deliveryAttributeMapping ) + { + AddIf(__x?.ToJson(null, serializationMode) ,__w.Add); + } + container.Add("deliveryAttributeMappings",__w); + } + AfterToJson(ref container); + return container; + } + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject instance to deserialize from. + internal WebHookEventSubscriptionDestinationProperties(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject json) + { + bool returnNow = false; + BeforeFromJson(json, ref returnNow); + if (returnNow) + { + return; + } + {_endpointUrl = If( json?.PropertyT("endpointUrl"), out var __jsonEndpointUrl) ? (string)__jsonEndpointUrl : (string)EndpointUrl;} + {_endpointBaseUrl = If( json?.PropertyT("endpointBaseUrl"), out var __jsonEndpointBaseUrl) ? (string)__jsonEndpointBaseUrl : (string)EndpointBaseUrl;} + {_maxEventsPerBatch = If( json?.PropertyT("maxEventsPerBatch"), out var __jsonMaxEventsPerBatch) ? (int?)__jsonMaxEventsPerBatch : MaxEventsPerBatch;} + {_preferredBatchSizeInKilobyte = If( json?.PropertyT("preferredBatchSizeInKilobytes"), out var __jsonPreferredBatchSizeInKilobytes) ? (int?)__jsonPreferredBatchSizeInKilobytes : PreferredBatchSizeInKilobyte;} + {_azureActiveDirectoryTenantId = If( json?.PropertyT("azureActiveDirectoryTenantId"), out var __jsonAzureActiveDirectoryTenantId) ? (string)__jsonAzureActiveDirectoryTenantId : (string)AzureActiveDirectoryTenantId;} + {_azureActiveDirectoryApplicationIdOrUri = If( json?.PropertyT("azureActiveDirectoryApplicationIdOrUri"), out var __jsonAzureActiveDirectoryApplicationIdOrUri) ? (string)__jsonAzureActiveDirectoryApplicationIdOrUri : (string)AzureActiveDirectoryApplicationIdOrUri;} + {_deliveryAttributeMapping = If( json?.PropertyT("deliveryAttributeMappings"), out var __jsonDeliveryAttributeMappings) ? If( __jsonDeliveryAttributeMappings as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Models.Api20211015Preview.IDeliveryAttributeMapping) (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.DeliveryAttributeMapping.FromJson(__u) )) ))() : null : DeliveryAttributeMapping;} + AfterFromJson(json); + } + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/WebhookPartnerDestinationInfo.PowerShell.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/WebhookPartnerDestinationInfo.PowerShell.cs new file mode 100644 index 000000000000..374781e2157c --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/WebhookPartnerDestinationInfo.PowerShell.cs @@ -0,0 +1,224 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell; + + /// Information about the WebHook of the partner destination. + [System.ComponentModel.TypeConverter(typeof(WebhookPartnerDestinationInfoTypeConverter))] + public partial class WebhookPartnerDestinationInfo + { + + /// + /// AfterDeserializeDictionary will be called after the deserialization has finished, allowing customization of the + /// object before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Collections.IDictionary content that should be used. + + partial void AfterDeserializeDictionary(global::System.Collections.IDictionary content); + + /// + /// AfterDeserializePSObject will be called after the deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Management.Automation.PSObject content that should be used. + + partial void AfterDeserializePSObject(global::System.Management.Automation.PSObject content); + + /// + /// BeforeDeserializeDictionary will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Collections.IDictionary content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializeDictionary(global::System.Collections.IDictionary content, ref bool returnNow); + + /// + /// BeforeDeserializePSObject will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializePSObject(global::System.Management.Automation.PSObject content, ref bool returnNow); + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IWebhookPartnerDestinationInfo DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new WebhookPartnerDestinationInfo(content); + } + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IWebhookPartnerDestinationInfo DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new WebhookPartnerDestinationInfo(content); + } + + /// + /// Creates a new instance of , deserializing the content from a json string. + /// + /// a string containing a JSON serialized instance of this model. + /// an instance of the model class. + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IWebhookPartnerDestinationInfo FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode.Parse(jsonText)); + + /// Serializes this instance to a json string. + + /// a containing this model serialized to JSON text. + public string ToJsonString() => ToJson(null, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SerializationMode.IncludeAll)?.ToString(); + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + internal WebhookPartnerDestinationInfo(global::System.Collections.IDictionary content) + { + bool returnNow = false; + BeforeDeserializeDictionary(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("Property")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IWebhookPartnerDestinationInfoInternal)this).Property = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IWebhookPartnerDestinationProperties) content.GetValueForProperty("Property",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IWebhookPartnerDestinationInfoInternal)this).Property, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.WebhookPartnerDestinationPropertiesTypeConverter.ConvertFrom); + } + if (content.Contains("AzureSubscriptionId")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerDestinationInfoInternal)this).AzureSubscriptionId = (string) content.GetValueForProperty("AzureSubscriptionId",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerDestinationInfoInternal)this).AzureSubscriptionId, global::System.Convert.ToString); + } + if (content.Contains("ResourceGroupName")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerDestinationInfoInternal)this).ResourceGroupName = (string) content.GetValueForProperty("ResourceGroupName",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerDestinationInfoInternal)this).ResourceGroupName, global::System.Convert.ToString); + } + if (content.Contains("Name")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerDestinationInfoInternal)this).Name = (string) content.GetValueForProperty("Name",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerDestinationInfoInternal)this).Name, global::System.Convert.ToString); + } + if (content.Contains("EndpointType")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerDestinationInfoInternal)this).EndpointType = (string) content.GetValueForProperty("EndpointType",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerDestinationInfoInternal)this).EndpointType, global::System.Convert.ToString); + } + if (content.Contains("EndpointServiceContext")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerDestinationInfoInternal)this).EndpointServiceContext = (string) content.GetValueForProperty("EndpointServiceContext",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerDestinationInfoInternal)this).EndpointServiceContext, global::System.Convert.ToString); + } + if (content.Contains("ResourceMoveChangeHistory")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerDestinationInfoInternal)this).ResourceMoveChangeHistory = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IResourceMoveChangeHistory[]) content.GetValueForProperty("ResourceMoveChangeHistory",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerDestinationInfoInternal)this).ResourceMoveChangeHistory, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ResourceMoveChangeHistoryTypeConverter.ConvertFrom)); + } + if (content.Contains("ClientAuthentication")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IWebhookPartnerDestinationInfoInternal)this).ClientAuthentication = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerClientAuthentication) content.GetValueForProperty("ClientAuthentication",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IWebhookPartnerDestinationInfoInternal)this).ClientAuthentication, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.PartnerClientAuthenticationTypeConverter.ConvertFrom); + } + if (content.Contains("EndpointUrl")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IWebhookPartnerDestinationInfoInternal)this).EndpointUrl = (string) content.GetValueForProperty("EndpointUrl",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IWebhookPartnerDestinationInfoInternal)this).EndpointUrl, global::System.Convert.ToString); + } + if (content.Contains("EndpointBaseUrl")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IWebhookPartnerDestinationInfoInternal)this).EndpointBaseUrl = (string) content.GetValueForProperty("EndpointBaseUrl",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IWebhookPartnerDestinationInfoInternal)this).EndpointBaseUrl, global::System.Convert.ToString); + } + if (content.Contains("ClientAuthenticationType")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IWebhookPartnerDestinationInfoInternal)this).ClientAuthenticationType = (string) content.GetValueForProperty("ClientAuthenticationType",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IWebhookPartnerDestinationInfoInternal)this).ClientAuthenticationType, global::System.Convert.ToString); + } + AfterDeserializeDictionary(content); + } + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + internal WebhookPartnerDestinationInfo(global::System.Management.Automation.PSObject content) + { + bool returnNow = false; + BeforeDeserializePSObject(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("Property")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IWebhookPartnerDestinationInfoInternal)this).Property = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IWebhookPartnerDestinationProperties) content.GetValueForProperty("Property",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IWebhookPartnerDestinationInfoInternal)this).Property, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.WebhookPartnerDestinationPropertiesTypeConverter.ConvertFrom); + } + if (content.Contains("AzureSubscriptionId")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerDestinationInfoInternal)this).AzureSubscriptionId = (string) content.GetValueForProperty("AzureSubscriptionId",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerDestinationInfoInternal)this).AzureSubscriptionId, global::System.Convert.ToString); + } + if (content.Contains("ResourceGroupName")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerDestinationInfoInternal)this).ResourceGroupName = (string) content.GetValueForProperty("ResourceGroupName",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerDestinationInfoInternal)this).ResourceGroupName, global::System.Convert.ToString); + } + if (content.Contains("Name")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerDestinationInfoInternal)this).Name = (string) content.GetValueForProperty("Name",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerDestinationInfoInternal)this).Name, global::System.Convert.ToString); + } + if (content.Contains("EndpointType")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerDestinationInfoInternal)this).EndpointType = (string) content.GetValueForProperty("EndpointType",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerDestinationInfoInternal)this).EndpointType, global::System.Convert.ToString); + } + if (content.Contains("EndpointServiceContext")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerDestinationInfoInternal)this).EndpointServiceContext = (string) content.GetValueForProperty("EndpointServiceContext",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerDestinationInfoInternal)this).EndpointServiceContext, global::System.Convert.ToString); + } + if (content.Contains("ResourceMoveChangeHistory")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerDestinationInfoInternal)this).ResourceMoveChangeHistory = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IResourceMoveChangeHistory[]) content.GetValueForProperty("ResourceMoveChangeHistory",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerDestinationInfoInternal)this).ResourceMoveChangeHistory, __y => TypeConverterExtensions.SelectToArray(__y, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ResourceMoveChangeHistoryTypeConverter.ConvertFrom)); + } + if (content.Contains("ClientAuthentication")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IWebhookPartnerDestinationInfoInternal)this).ClientAuthentication = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerClientAuthentication) content.GetValueForProperty("ClientAuthentication",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IWebhookPartnerDestinationInfoInternal)this).ClientAuthentication, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.PartnerClientAuthenticationTypeConverter.ConvertFrom); + } + if (content.Contains("EndpointUrl")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IWebhookPartnerDestinationInfoInternal)this).EndpointUrl = (string) content.GetValueForProperty("EndpointUrl",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IWebhookPartnerDestinationInfoInternal)this).EndpointUrl, global::System.Convert.ToString); + } + if (content.Contains("EndpointBaseUrl")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IWebhookPartnerDestinationInfoInternal)this).EndpointBaseUrl = (string) content.GetValueForProperty("EndpointBaseUrl",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IWebhookPartnerDestinationInfoInternal)this).EndpointBaseUrl, global::System.Convert.ToString); + } + if (content.Contains("ClientAuthenticationType")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IWebhookPartnerDestinationInfoInternal)this).ClientAuthenticationType = (string) content.GetValueForProperty("ClientAuthenticationType",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IWebhookPartnerDestinationInfoInternal)this).ClientAuthenticationType, global::System.Convert.ToString); + } + AfterDeserializePSObject(content); + } + } + /// Information about the WebHook of the partner destination. + [System.ComponentModel.TypeConverter(typeof(WebhookPartnerDestinationInfoTypeConverter))] + public partial interface IWebhookPartnerDestinationInfo + + { + + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/WebhookPartnerDestinationInfo.TypeConverter.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/WebhookPartnerDestinationInfo.TypeConverter.cs new file mode 100644 index 000000000000..7d08cfb471bb --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/WebhookPartnerDestinationInfo.TypeConverter.cs @@ -0,0 +1,147 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class WebhookPartnerDestinationInfoTypeConverter : global::System.Management.Automation.PSTypeConverter + { + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false. + /// + public override bool CanConvertFrom(object sourceValue, global::System.Type destinationType) => CanConvertFrom(sourceValue); + + /// + /// Determines if the converter can convert the parameter to the . + /// + /// the instance to check if it can be converted to the type. + /// + /// true if the instance could be converted to a type, otherwise false + /// + public static bool CanConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return true; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + // we say yest to PSObjects + return true; + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + // we say yest to Hashtables/dictionaries + return true; + } + try + { + if (null != sourceValue.ToJsonString()) + { + return true; + } + } + catch + { + // Not one of our objects + } + try + { + string text = sourceValue.ToString()?.Trim(); + return true == text?.StartsWith("{") && true == text?.EndsWith("}") && Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonType.Object; + } + catch + { + // Doesn't look like it can be treated as JSON + } + return false; + } + + /// + /// Determines if the parameter can be converted to the parameter + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false + /// + public override bool CanConvertTo(object sourceValue, global::System.Type destinationType) => false; + + /// + /// Converts the parameter to the parameter using and + /// + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// + /// an instance of , or null if there is no suitable conversion. + /// + public override object ConvertFrom(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => ConvertFrom(sourceValue); + + /// + /// Converts the parameter to the parameter using and + /// + /// the value to convert into an instance of . + /// + /// an instance of , or null if there is no suitable conversion. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IWebhookPartnerDestinationInfo ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IWebhookPartnerDestinationInfo).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return WebhookPartnerDestinationInfo.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return WebhookPartnerDestinationInfo.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return WebhookPartnerDestinationInfo.DeserializeFromDictionary(sourceValue); + } + return null; + } + + /// NotImplemented -- this will return null + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// will always return null. + public override object ConvertTo(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => null; + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/WebhookPartnerDestinationInfo.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/WebhookPartnerDestinationInfo.cs new file mode 100644 index 000000000000..3184fc663fd1 --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/WebhookPartnerDestinationInfo.cs @@ -0,0 +1,148 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Extensions; + + /// Information about the WebHook of the partner destination. + public partial class WebhookPartnerDestinationInfo : + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IWebhookPartnerDestinationInfo, + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IWebhookPartnerDestinationInfoInternal, + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IValidates + { + /// + /// Backing field for Inherited model + /// + private Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerDestinationInfo __partnerDestinationInfo = new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.PartnerDestinationInfo(); + + /// + /// Azure subscription ID of the subscriber. The partner destination associated with the channel will be + /// created under this Azure subscription. + /// + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Inherited)] + public string AzureSubscriptionId { get => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerDestinationInfoInternal)__partnerDestinationInfo).AzureSubscriptionId; set => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerDestinationInfoInternal)__partnerDestinationInfo).AzureSubscriptionId = value ?? null; } + + /// Type of client authentication + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Inlined)] + public string ClientAuthenticationType { get => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IWebhookPartnerDestinationPropertiesInternal)Property).ClientAuthenticationType; } + + /// The base URL that represents the endpoint of the partner destination. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Inlined)] + public string EndpointBaseUrl { get => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IWebhookPartnerDestinationPropertiesInternal)Property).EndpointBaseUrl; set => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IWebhookPartnerDestinationPropertiesInternal)Property).EndpointBaseUrl = value ?? null; } + + /// Additional context of the partner destination endpoint. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Inherited)] + public string EndpointServiceContext { get => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerDestinationInfoInternal)__partnerDestinationInfo).EndpointServiceContext; set => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerDestinationInfoInternal)__partnerDestinationInfo).EndpointServiceContext = value ?? null; } + + /// Type of the endpoint for the partner destination + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Inherited)] + public string EndpointType { get => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerDestinationInfoInternal)__partnerDestinationInfo).EndpointType; } + + /// The URL that represents the endpoint of the partner destination. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Inlined)] + public string EndpointUrl { get => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IWebhookPartnerDestinationPropertiesInternal)Property).EndpointUrl; set => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IWebhookPartnerDestinationPropertiesInternal)Property).EndpointUrl = value ?? null; } + + /// Internal Acessors for EndpointType + string Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerDestinationInfoInternal.EndpointType { get => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerDestinationInfoInternal)__partnerDestinationInfo).EndpointType; set => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerDestinationInfoInternal)__partnerDestinationInfo).EndpointType = value; } + + /// Internal Acessors for ClientAuthentication + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerClientAuthentication Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IWebhookPartnerDestinationInfoInternal.ClientAuthentication { get => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IWebhookPartnerDestinationPropertiesInternal)Property).ClientAuthentication; set => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IWebhookPartnerDestinationPropertiesInternal)Property).ClientAuthentication = value; } + + /// Internal Acessors for ClientAuthenticationType + string Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IWebhookPartnerDestinationInfoInternal.ClientAuthenticationType { get => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IWebhookPartnerDestinationPropertiesInternal)Property).ClientAuthenticationType; set => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IWebhookPartnerDestinationPropertiesInternal)Property).ClientAuthenticationType = value; } + + /// Internal Acessors for Property + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IWebhookPartnerDestinationProperties Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IWebhookPartnerDestinationInfoInternal.Property { get => (this._property = this._property ?? new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.WebhookPartnerDestinationProperties()); set { {_property = value;} } } + + /// Name of the partner destination associated with the channel. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Inherited)] + public string Name { get => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerDestinationInfoInternal)__partnerDestinationInfo).Name; set => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerDestinationInfoInternal)__partnerDestinationInfo).Name = value ?? null; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IWebhookPartnerDestinationProperties _property; + + /// WebHook Properties of the partner destination. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Owned)] + internal Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IWebhookPartnerDestinationProperties Property { get => (this._property = this._property ?? new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.WebhookPartnerDestinationProperties()); set => this._property = value; } + + /// + /// Azure Resource Group of the subscriber. The partner destination associated with the channel will be + /// created under this resource group. + /// + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Inherited)] + public string ResourceGroupName { get => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerDestinationInfoInternal)__partnerDestinationInfo).ResourceGroupName; set => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerDestinationInfoInternal)__partnerDestinationInfo).ResourceGroupName = value ?? null; } + + /// Change history of the resource move. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Inherited)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IResourceMoveChangeHistory[] ResourceMoveChangeHistory { get => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerDestinationInfoInternal)__partnerDestinationInfo).ResourceMoveChangeHistory; set => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerDestinationInfoInternal)__partnerDestinationInfo).ResourceMoveChangeHistory = value ?? null /* arrayOf */; } + + /// Validates that this object meets the validation criteria. + /// an instance that will receive validation + /// events. + /// + /// A that will be complete when validation is completed. + /// + public async global::System.Threading.Tasks.Task Validate(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener eventListener) + { + await eventListener.AssertNotNull(nameof(__partnerDestinationInfo), __partnerDestinationInfo); + await eventListener.AssertObjectIsValid(nameof(__partnerDestinationInfo), __partnerDestinationInfo); + } + + /// Creates an new instance. + public WebhookPartnerDestinationInfo() + { + + } + } + /// Information about the WebHook of the partner destination. + public partial interface IWebhookPartnerDestinationInfo : + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IJsonSerializable, + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerDestinationInfo + { + /// Type of client authentication + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"Type of client authentication", + SerializedName = @"clientAuthenticationType", + PossibleTypes = new [] { typeof(string) })] + string ClientAuthenticationType { get; } + /// The base URL that represents the endpoint of the partner destination. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The base URL that represents the endpoint of the partner destination.", + SerializedName = @"endpointBaseUrl", + PossibleTypes = new [] { typeof(string) })] + string EndpointBaseUrl { get; set; } + /// The URL that represents the endpoint of the partner destination. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The URL that represents the endpoint of the partner destination.", + SerializedName = @"endpointUrl", + PossibleTypes = new [] { typeof(string) })] + string EndpointUrl { get; set; } + + } + /// Information about the WebHook of the partner destination. + internal partial interface IWebhookPartnerDestinationInfoInternal : + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerDestinationInfoInternal + { + /// Partner client authentication + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerClientAuthentication ClientAuthentication { get; set; } + /// Type of client authentication + string ClientAuthenticationType { get; set; } + /// The base URL that represents the endpoint of the partner destination. + string EndpointBaseUrl { get; set; } + /// The URL that represents the endpoint of the partner destination. + string EndpointUrl { get; set; } + /// WebHook Properties of the partner destination. + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IWebhookPartnerDestinationProperties Property { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/WebhookPartnerDestinationInfo.json.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/WebhookPartnerDestinationInfo.json.cs new file mode 100644 index 000000000000..8bfce29dc679 --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/WebhookPartnerDestinationInfo.json.cs @@ -0,0 +1,108 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Extensions; + + /// Information about the WebHook of the partner destination. + public partial class WebhookPartnerDestinationInfo + { + + /// + /// AfterFromJson will be called after the json deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JsonNode that should be deserialized into this object. + + partial void AfterFromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json erialization has finished, allowing customization of the before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JSON container that the serialization result will be placed in. + + partial void AfterToJson(ref Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject container); + + /// + /// BeforeFromJson will be called before the json deserialization has commenced, allowing complete customization of + /// the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JsonNode that should be deserialized into this object. + /// Determines if the rest of the deserialization should be processed, or if the method should return + /// instantly. + + partial void BeforeFromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject json, ref bool returnNow); + + /// + /// BeforeToJson will be called before the json serialization has commenced, allowing complete customization of the + /// object before it is serialized. + /// If you wish to disable the default serialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JSON container that the serialization result will be placed in. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeToJson(ref Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IWebhookPartnerDestinationInfo. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IWebhookPartnerDestinationInfo. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IWebhookPartnerDestinationInfo FromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject json ? new WebhookPartnerDestinationInfo(json) : null; + } + + /// + /// Serializes this instance of into a . + /// + /// The container to serialize this object into. If the caller + /// passes in null, a new instance will be created and returned to the caller. + /// Allows the caller to choose the depth of the serialization. See . + /// + /// a serialized instance of as a . + /// + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject(); + + bool returnNow = false; + BeforeToJson(ref container, ref returnNow); + if (returnNow) + { + return container; + } + __partnerDestinationInfo?.ToJson(container, serializationMode); + AddIf( null != this._property ? (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode) this._property.ToJson(null,serializationMode) : null, "properties" ,container.Add ); + AfterToJson(ref container); + return container; + } + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject instance to deserialize from. + internal WebhookPartnerDestinationInfo(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject json) + { + bool returnNow = false; + BeforeFromJson(json, ref returnNow); + if (returnNow) + { + return; + } + __partnerDestinationInfo = new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.PartnerDestinationInfo(json); + {_property = If( json?.PropertyT("properties"), out var __jsonProperties) ? Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.WebhookPartnerDestinationProperties.FromJson(__jsonProperties) : Property;} + AfterFromJson(json); + } + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/WebhookPartnerDestinationProperties.PowerShell.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/WebhookPartnerDestinationProperties.PowerShell.cs new file mode 100644 index 000000000000..2c47d055fb94 --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/WebhookPartnerDestinationProperties.PowerShell.cs @@ -0,0 +1,170 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell; + + /// Properties of a partner destination webhook. + [System.ComponentModel.TypeConverter(typeof(WebhookPartnerDestinationPropertiesTypeConverter))] + public partial class WebhookPartnerDestinationProperties + { + + /// + /// AfterDeserializeDictionary will be called after the deserialization has finished, allowing customization of the + /// object before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Collections.IDictionary content that should be used. + + partial void AfterDeserializeDictionary(global::System.Collections.IDictionary content); + + /// + /// AfterDeserializePSObject will be called after the deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Management.Automation.PSObject content that should be used. + + partial void AfterDeserializePSObject(global::System.Management.Automation.PSObject content); + + /// + /// BeforeDeserializeDictionary will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Collections.IDictionary content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializeDictionary(global::System.Collections.IDictionary content, ref bool returnNow); + + /// + /// BeforeDeserializePSObject will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializePSObject(global::System.Management.Automation.PSObject content, ref bool returnNow); + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IWebhookPartnerDestinationProperties DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new WebhookPartnerDestinationProperties(content); + } + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IWebhookPartnerDestinationProperties DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new WebhookPartnerDestinationProperties(content); + } + + /// + /// Creates a new instance of , deserializing the content from a json string. + /// + /// a string containing a JSON serialized instance of this model. + /// + /// an instance of the model class. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IWebhookPartnerDestinationProperties FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode.Parse(jsonText)); + + /// Serializes this instance to a json string. + + /// a containing this model serialized to JSON text. + public string ToJsonString() => ToJson(null, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SerializationMode.IncludeAll)?.ToString(); + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + internal WebhookPartnerDestinationProperties(global::System.Collections.IDictionary content) + { + bool returnNow = false; + BeforeDeserializeDictionary(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("ClientAuthentication")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IWebhookPartnerDestinationPropertiesInternal)this).ClientAuthentication = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerClientAuthentication) content.GetValueForProperty("ClientAuthentication",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IWebhookPartnerDestinationPropertiesInternal)this).ClientAuthentication, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.PartnerClientAuthenticationTypeConverter.ConvertFrom); + } + if (content.Contains("EndpointUrl")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IWebhookPartnerDestinationPropertiesInternal)this).EndpointUrl = (string) content.GetValueForProperty("EndpointUrl",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IWebhookPartnerDestinationPropertiesInternal)this).EndpointUrl, global::System.Convert.ToString); + } + if (content.Contains("EndpointBaseUrl")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IWebhookPartnerDestinationPropertiesInternal)this).EndpointBaseUrl = (string) content.GetValueForProperty("EndpointBaseUrl",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IWebhookPartnerDestinationPropertiesInternal)this).EndpointBaseUrl, global::System.Convert.ToString); + } + if (content.Contains("ClientAuthenticationType")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IWebhookPartnerDestinationPropertiesInternal)this).ClientAuthenticationType = (string) content.GetValueForProperty("ClientAuthenticationType",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IWebhookPartnerDestinationPropertiesInternal)this).ClientAuthenticationType, global::System.Convert.ToString); + } + AfterDeserializeDictionary(content); + } + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + internal WebhookPartnerDestinationProperties(global::System.Management.Automation.PSObject content) + { + bool returnNow = false; + BeforeDeserializePSObject(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("ClientAuthentication")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IWebhookPartnerDestinationPropertiesInternal)this).ClientAuthentication = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerClientAuthentication) content.GetValueForProperty("ClientAuthentication",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IWebhookPartnerDestinationPropertiesInternal)this).ClientAuthentication, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.PartnerClientAuthenticationTypeConverter.ConvertFrom); + } + if (content.Contains("EndpointUrl")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IWebhookPartnerDestinationPropertiesInternal)this).EndpointUrl = (string) content.GetValueForProperty("EndpointUrl",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IWebhookPartnerDestinationPropertiesInternal)this).EndpointUrl, global::System.Convert.ToString); + } + if (content.Contains("EndpointBaseUrl")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IWebhookPartnerDestinationPropertiesInternal)this).EndpointBaseUrl = (string) content.GetValueForProperty("EndpointBaseUrl",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IWebhookPartnerDestinationPropertiesInternal)this).EndpointBaseUrl, global::System.Convert.ToString); + } + if (content.Contains("ClientAuthenticationType")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IWebhookPartnerDestinationPropertiesInternal)this).ClientAuthenticationType = (string) content.GetValueForProperty("ClientAuthenticationType",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IWebhookPartnerDestinationPropertiesInternal)this).ClientAuthenticationType, global::System.Convert.ToString); + } + AfterDeserializePSObject(content); + } + } + /// Properties of a partner destination webhook. + [System.ComponentModel.TypeConverter(typeof(WebhookPartnerDestinationPropertiesTypeConverter))] + public partial interface IWebhookPartnerDestinationProperties + + { + + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/WebhookPartnerDestinationProperties.TypeConverter.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/WebhookPartnerDestinationProperties.TypeConverter.cs new file mode 100644 index 000000000000..5681ed520ed2 --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/WebhookPartnerDestinationProperties.TypeConverter.cs @@ -0,0 +1,148 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class WebhookPartnerDestinationPropertiesTypeConverter : global::System.Management.Automation.PSTypeConverter + { + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false. + /// + public override bool CanConvertFrom(object sourceValue, global::System.Type destinationType) => CanConvertFrom(sourceValue); + + /// + /// Determines if the converter can convert the parameter to the . + /// + /// the instance to check if it can be converted to the type. + /// + /// true if the instance could be converted to a type, otherwise + /// false + /// + public static bool CanConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return true; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + // we say yest to PSObjects + return true; + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + // we say yest to Hashtables/dictionaries + return true; + } + try + { + if (null != sourceValue.ToJsonString()) + { + return true; + } + } + catch + { + // Not one of our objects + } + try + { + string text = sourceValue.ToString()?.Trim(); + return true == text?.StartsWith("{") && true == text?.EndsWith("}") && Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonType.Object; + } + catch + { + // Doesn't look like it can be treated as JSON + } + return false; + } + + /// + /// Determines if the parameter can be converted to the parameter + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false + /// + public override bool CanConvertTo(object sourceValue, global::System.Type destinationType) => false; + + /// + /// Converts the parameter to the parameter using and + /// + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// + /// an instance of , or null if there is no suitable conversion. + /// + public override object ConvertFrom(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => ConvertFrom(sourceValue); + + /// + /// Converts the parameter to the parameter using and + /// + /// the value to convert into an instance of . + /// + /// an instance of , or null if there is no suitable conversion. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IWebhookPartnerDestinationProperties ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IWebhookPartnerDestinationProperties).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return WebhookPartnerDestinationProperties.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return WebhookPartnerDestinationProperties.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return WebhookPartnerDestinationProperties.DeserializeFromDictionary(sourceValue); + } + return null; + } + + /// NotImplemented -- this will return null + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// will always return null. + public override object ConvertTo(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => null; + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/WebhookPartnerDestinationProperties.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/WebhookPartnerDestinationProperties.cs new file mode 100644 index 000000000000..ffe88316b573 --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/WebhookPartnerDestinationProperties.cs @@ -0,0 +1,97 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Extensions; + + /// Properties of a partner destination webhook. + public partial class WebhookPartnerDestinationProperties : + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IWebhookPartnerDestinationProperties, + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IWebhookPartnerDestinationPropertiesInternal + { + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerClientAuthentication _clientAuthentication; + + /// Partner client authentication + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Owned)] + internal Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerClientAuthentication ClientAuthentication { get => (this._clientAuthentication = this._clientAuthentication ?? new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.PartnerClientAuthentication()); set => this._clientAuthentication = value; } + + /// Type of client authentication + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Inlined)] + public string ClientAuthenticationType { get => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerClientAuthenticationInternal)ClientAuthentication).ClientAuthenticationType; } + + /// Backing field for property. + private string _endpointBaseUrl; + + /// The base URL that represents the endpoint of the partner destination. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Owned)] + public string EndpointBaseUrl { get => this._endpointBaseUrl; set => this._endpointBaseUrl = value; } + + /// Backing field for property. + private string _endpointUrl; + + /// The URL that represents the endpoint of the partner destination. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Owned)] + public string EndpointUrl { get => this._endpointUrl; set => this._endpointUrl = value; } + + /// Internal Acessors for ClientAuthentication + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerClientAuthentication Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IWebhookPartnerDestinationPropertiesInternal.ClientAuthentication { get => (this._clientAuthentication = this._clientAuthentication ?? new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.PartnerClientAuthentication()); set { {_clientAuthentication = value;} } } + + /// Internal Acessors for ClientAuthenticationType + string Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IWebhookPartnerDestinationPropertiesInternal.ClientAuthenticationType { get => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerClientAuthenticationInternal)ClientAuthentication).ClientAuthenticationType; set => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerClientAuthenticationInternal)ClientAuthentication).ClientAuthenticationType = value; } + + /// Creates an new instance. + public WebhookPartnerDestinationProperties() + { + + } + } + /// Properties of a partner destination webhook. + public partial interface IWebhookPartnerDestinationProperties : + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IJsonSerializable + { + /// Type of client authentication + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"Type of client authentication", + SerializedName = @"clientAuthenticationType", + PossibleTypes = new [] { typeof(string) })] + string ClientAuthenticationType { get; } + /// The base URL that represents the endpoint of the partner destination. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The base URL that represents the endpoint of the partner destination.", + SerializedName = @"endpointBaseUrl", + PossibleTypes = new [] { typeof(string) })] + string EndpointBaseUrl { get; set; } + /// The URL that represents the endpoint of the partner destination. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The URL that represents the endpoint of the partner destination.", + SerializedName = @"endpointUrl", + PossibleTypes = new [] { typeof(string) })] + string EndpointUrl { get; set; } + + } + /// Properties of a partner destination webhook. + internal partial interface IWebhookPartnerDestinationPropertiesInternal + + { + /// Partner client authentication + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerClientAuthentication ClientAuthentication { get; set; } + /// Type of client authentication + string ClientAuthenticationType { get; set; } + /// The base URL that represents the endpoint of the partner destination. + string EndpointBaseUrl { get; set; } + /// The URL that represents the endpoint of the partner destination. + string EndpointUrl { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/WebhookPartnerDestinationProperties.json.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/WebhookPartnerDestinationProperties.json.cs new file mode 100644 index 000000000000..628cebfcae63 --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/WebhookPartnerDestinationProperties.json.cs @@ -0,0 +1,111 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Extensions; + + /// Properties of a partner destination webhook. + public partial class WebhookPartnerDestinationProperties + { + + /// + /// AfterFromJson will be called after the json deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JsonNode that should be deserialized into this object. + + partial void AfterFromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json erialization has finished, allowing customization of the before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JSON container that the serialization result will be placed in. + + partial void AfterToJson(ref Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject container); + + /// + /// BeforeFromJson will be called before the json deserialization has commenced, allowing complete customization of + /// the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JsonNode that should be deserialized into this object. + /// Determines if the rest of the deserialization should be processed, or if the method should return + /// instantly. + + partial void BeforeFromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject json, ref bool returnNow); + + /// + /// BeforeToJson will be called before the json serialization has commenced, allowing complete customization of the + /// object before it is serialized. + /// If you wish to disable the default serialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JSON container that the serialization result will be placed in. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeToJson(ref Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IWebhookPartnerDestinationProperties. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IWebhookPartnerDestinationProperties. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IWebhookPartnerDestinationProperties FromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject json ? new WebhookPartnerDestinationProperties(json) : null; + } + + /// + /// Serializes this instance of into a . + /// + /// The container to serialize this object into. If the caller + /// passes in null, a new instance will be created and returned to the caller. + /// Allows the caller to choose the depth of the serialization. See . + /// + /// a serialized instance of as a . + /// + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject(); + + bool returnNow = false; + BeforeToJson(ref container, ref returnNow); + if (returnNow) + { + return container; + } + AddIf( null != this._clientAuthentication ? (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode) this._clientAuthentication.ToJson(null,serializationMode) : null, "clientAuthentication" ,container.Add ); + AddIf( null != (((object)this._endpointUrl)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonString(this._endpointUrl.ToString()) : null, "endpointUrl" ,container.Add ); + AddIf( null != (((object)this._endpointBaseUrl)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonString(this._endpointBaseUrl.ToString()) : null, "endpointBaseUrl" ,container.Add ); + AfterToJson(ref container); + return container; + } + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject instance to deserialize from. + internal WebhookPartnerDestinationProperties(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject json) + { + bool returnNow = false; + BeforeFromJson(json, ref returnNow); + if (returnNow) + { + return; + } + {_clientAuthentication = If( json?.PropertyT("clientAuthentication"), out var __jsonClientAuthentication) ? Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.PartnerClientAuthentication.FromJson(__jsonClientAuthentication) : ClientAuthentication;} + {_endpointUrl = If( json?.PropertyT("endpointUrl"), out var __jsonEndpointUrl) ? (string)__jsonEndpointUrl : (string)EndpointUrl;} + {_endpointBaseUrl = If( json?.PropertyT("endpointBaseUrl"), out var __jsonEndpointBaseUrl) ? (string)__jsonEndpointBaseUrl : (string)EndpointBaseUrl;} + AfterFromJson(json); + } + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/WebhookUpdatePartnerDestinationInfo.PowerShell.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/WebhookUpdatePartnerDestinationInfo.PowerShell.cs new file mode 100644 index 000000000000..61a5135e81bc --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/WebhookUpdatePartnerDestinationInfo.PowerShell.cs @@ -0,0 +1,186 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell; + + /// Information about the update of the WebHook of the partner destination. + [System.ComponentModel.TypeConverter(typeof(WebhookUpdatePartnerDestinationInfoTypeConverter))] + public partial class WebhookUpdatePartnerDestinationInfo + { + + /// + /// AfterDeserializeDictionary will be called after the deserialization has finished, allowing customization of the + /// object before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Collections.IDictionary content that should be used. + + partial void AfterDeserializeDictionary(global::System.Collections.IDictionary content); + + /// + /// AfterDeserializePSObject will be called after the deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Management.Automation.PSObject content that should be used. + + partial void AfterDeserializePSObject(global::System.Management.Automation.PSObject content); + + /// + /// BeforeDeserializeDictionary will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Collections.IDictionary content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializeDictionary(global::System.Collections.IDictionary content, ref bool returnNow); + + /// + /// BeforeDeserializePSObject will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializePSObject(global::System.Management.Automation.PSObject content, ref bool returnNow); + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IWebhookUpdatePartnerDestinationInfo DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new WebhookUpdatePartnerDestinationInfo(content); + } + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IWebhookUpdatePartnerDestinationInfo DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new WebhookUpdatePartnerDestinationInfo(content); + } + + /// + /// Creates a new instance of , deserializing the content from a json string. + /// + /// a string containing a JSON serialized instance of this model. + /// + /// an instance of the model class. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IWebhookUpdatePartnerDestinationInfo FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode.Parse(jsonText)); + + /// Serializes this instance to a json string. + + /// a containing this model serialized to JSON text. + public string ToJsonString() => ToJson(null, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SerializationMode.IncludeAll)?.ToString(); + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + internal WebhookUpdatePartnerDestinationInfo(global::System.Collections.IDictionary content) + { + bool returnNow = false; + BeforeDeserializeDictionary(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("Property")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IWebhookUpdatePartnerDestinationInfoInternal)this).Property = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IWebhookPartnerDestinationProperties) content.GetValueForProperty("Property",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IWebhookUpdatePartnerDestinationInfoInternal)this).Property, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.WebhookPartnerDestinationPropertiesTypeConverter.ConvertFrom); + } + if (content.Contains("EndpointType")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerUpdateDestinationInfoInternal)this).EndpointType = (string) content.GetValueForProperty("EndpointType",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerUpdateDestinationInfoInternal)this).EndpointType, global::System.Convert.ToString); + } + if (content.Contains("ClientAuthentication")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IWebhookUpdatePartnerDestinationInfoInternal)this).ClientAuthentication = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerClientAuthentication) content.GetValueForProperty("ClientAuthentication",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IWebhookUpdatePartnerDestinationInfoInternal)this).ClientAuthentication, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.PartnerClientAuthenticationTypeConverter.ConvertFrom); + } + if (content.Contains("EndpointUrl")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IWebhookUpdatePartnerDestinationInfoInternal)this).EndpointUrl = (string) content.GetValueForProperty("EndpointUrl",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IWebhookUpdatePartnerDestinationInfoInternal)this).EndpointUrl, global::System.Convert.ToString); + } + if (content.Contains("EndpointBaseUrl")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IWebhookUpdatePartnerDestinationInfoInternal)this).EndpointBaseUrl = (string) content.GetValueForProperty("EndpointBaseUrl",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IWebhookUpdatePartnerDestinationInfoInternal)this).EndpointBaseUrl, global::System.Convert.ToString); + } + if (content.Contains("ClientAuthenticationType")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IWebhookUpdatePartnerDestinationInfoInternal)this).ClientAuthenticationType = (string) content.GetValueForProperty("ClientAuthenticationType",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IWebhookUpdatePartnerDestinationInfoInternal)this).ClientAuthenticationType, global::System.Convert.ToString); + } + AfterDeserializeDictionary(content); + } + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + internal WebhookUpdatePartnerDestinationInfo(global::System.Management.Automation.PSObject content) + { + bool returnNow = false; + BeforeDeserializePSObject(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("Property")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IWebhookUpdatePartnerDestinationInfoInternal)this).Property = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IWebhookPartnerDestinationProperties) content.GetValueForProperty("Property",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IWebhookUpdatePartnerDestinationInfoInternal)this).Property, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.WebhookPartnerDestinationPropertiesTypeConverter.ConvertFrom); + } + if (content.Contains("EndpointType")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerUpdateDestinationInfoInternal)this).EndpointType = (string) content.GetValueForProperty("EndpointType",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerUpdateDestinationInfoInternal)this).EndpointType, global::System.Convert.ToString); + } + if (content.Contains("ClientAuthentication")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IWebhookUpdatePartnerDestinationInfoInternal)this).ClientAuthentication = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerClientAuthentication) content.GetValueForProperty("ClientAuthentication",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IWebhookUpdatePartnerDestinationInfoInternal)this).ClientAuthentication, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.PartnerClientAuthenticationTypeConverter.ConvertFrom); + } + if (content.Contains("EndpointUrl")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IWebhookUpdatePartnerDestinationInfoInternal)this).EndpointUrl = (string) content.GetValueForProperty("EndpointUrl",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IWebhookUpdatePartnerDestinationInfoInternal)this).EndpointUrl, global::System.Convert.ToString); + } + if (content.Contains("EndpointBaseUrl")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IWebhookUpdatePartnerDestinationInfoInternal)this).EndpointBaseUrl = (string) content.GetValueForProperty("EndpointBaseUrl",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IWebhookUpdatePartnerDestinationInfoInternal)this).EndpointBaseUrl, global::System.Convert.ToString); + } + if (content.Contains("ClientAuthenticationType")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IWebhookUpdatePartnerDestinationInfoInternal)this).ClientAuthenticationType = (string) content.GetValueForProperty("ClientAuthenticationType",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IWebhookUpdatePartnerDestinationInfoInternal)this).ClientAuthenticationType, global::System.Convert.ToString); + } + AfterDeserializePSObject(content); + } + } + /// Information about the update of the WebHook of the partner destination. + [System.ComponentModel.TypeConverter(typeof(WebhookUpdatePartnerDestinationInfoTypeConverter))] + public partial interface IWebhookUpdatePartnerDestinationInfo + + { + + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/WebhookUpdatePartnerDestinationInfo.TypeConverter.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/WebhookUpdatePartnerDestinationInfo.TypeConverter.cs new file mode 100644 index 000000000000..0b2ad7f8a129 --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/WebhookUpdatePartnerDestinationInfo.TypeConverter.cs @@ -0,0 +1,148 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview +{ + using Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class WebhookUpdatePartnerDestinationInfoTypeConverter : global::System.Management.Automation.PSTypeConverter + { + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false. + /// + public override bool CanConvertFrom(object sourceValue, global::System.Type destinationType) => CanConvertFrom(sourceValue); + + /// + /// Determines if the converter can convert the parameter to the . + /// + /// the instance to check if it can be converted to the type. + /// + /// true if the instance could be converted to a type, otherwise + /// false + /// + public static bool CanConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return true; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + // we say yest to PSObjects + return true; + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + // we say yest to Hashtables/dictionaries + return true; + } + try + { + if (null != sourceValue.ToJsonString()) + { + return true; + } + } + catch + { + // Not one of our objects + } + try + { + string text = sourceValue.ToString()?.Trim(); + return true == text?.StartsWith("{") && true == text?.EndsWith("}") && Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonType.Object; + } + catch + { + // Doesn't look like it can be treated as JSON + } + return false; + } + + /// + /// Determines if the parameter can be converted to the parameter + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false + /// + public override bool CanConvertTo(object sourceValue, global::System.Type destinationType) => false; + + /// + /// Converts the parameter to the parameter using and + /// + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// + /// an instance of , or null if there is no suitable conversion. + /// + public override object ConvertFrom(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => ConvertFrom(sourceValue); + + /// + /// Converts the parameter to the parameter using and + /// + /// the value to convert into an instance of . + /// + /// an instance of , or null if there is no suitable conversion. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IWebhookUpdatePartnerDestinationInfo ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IWebhookUpdatePartnerDestinationInfo).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return WebhookUpdatePartnerDestinationInfo.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return WebhookUpdatePartnerDestinationInfo.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return WebhookUpdatePartnerDestinationInfo.DeserializeFromDictionary(sourceValue); + } + return null; + } + + /// NotImplemented -- this will return null + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// will always return null. + public override object ConvertTo(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => null; + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/WebhookUpdatePartnerDestinationInfo.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/WebhookUpdatePartnerDestinationInfo.cs new file mode 100644 index 000000000000..419a220b70bd --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/WebhookUpdatePartnerDestinationInfo.cs @@ -0,0 +1,122 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Extensions; + + /// Information about the update of the WebHook of the partner destination. + public partial class WebhookUpdatePartnerDestinationInfo : + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IWebhookUpdatePartnerDestinationInfo, + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IWebhookUpdatePartnerDestinationInfoInternal, + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IValidates + { + /// + /// Backing field for Inherited model + /// + private Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerUpdateDestinationInfo __partnerUpdateDestinationInfo = new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.PartnerUpdateDestinationInfo(); + + /// Type of client authentication + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Inlined)] + public string ClientAuthenticationType { get => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IWebhookPartnerDestinationPropertiesInternal)Property).ClientAuthenticationType; } + + /// The base URL that represents the endpoint of the partner destination. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Inlined)] + public string EndpointBaseUrl { get => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IWebhookPartnerDestinationPropertiesInternal)Property).EndpointBaseUrl; set => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IWebhookPartnerDestinationPropertiesInternal)Property).EndpointBaseUrl = value ?? null; } + + /// Type of the endpoint for the partner destination + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Inherited)] + public string EndpointType { get => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerUpdateDestinationInfoInternal)__partnerUpdateDestinationInfo).EndpointType; } + + /// The URL that represents the endpoint of the partner destination. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Inlined)] + public string EndpointUrl { get => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IWebhookPartnerDestinationPropertiesInternal)Property).EndpointUrl; set => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IWebhookPartnerDestinationPropertiesInternal)Property).EndpointUrl = value ?? null; } + + /// Internal Acessors for EndpointType + string Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerUpdateDestinationInfoInternal.EndpointType { get => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerUpdateDestinationInfoInternal)__partnerUpdateDestinationInfo).EndpointType; set => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerUpdateDestinationInfoInternal)__partnerUpdateDestinationInfo).EndpointType = value; } + + /// Internal Acessors for ClientAuthentication + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerClientAuthentication Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IWebhookUpdatePartnerDestinationInfoInternal.ClientAuthentication { get => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IWebhookPartnerDestinationPropertiesInternal)Property).ClientAuthentication; set => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IWebhookPartnerDestinationPropertiesInternal)Property).ClientAuthentication = value; } + + /// Internal Acessors for ClientAuthenticationType + string Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IWebhookUpdatePartnerDestinationInfoInternal.ClientAuthenticationType { get => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IWebhookPartnerDestinationPropertiesInternal)Property).ClientAuthenticationType; set => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IWebhookPartnerDestinationPropertiesInternal)Property).ClientAuthenticationType = value; } + + /// Internal Acessors for Property + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IWebhookPartnerDestinationProperties Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IWebhookUpdatePartnerDestinationInfoInternal.Property { get => (this._property = this._property ?? new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.WebhookPartnerDestinationProperties()); set { {_property = value;} } } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IWebhookPartnerDestinationProperties _property; + + /// WebHook Properties of the partner destination. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Owned)] + internal Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IWebhookPartnerDestinationProperties Property { get => (this._property = this._property ?? new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.WebhookPartnerDestinationProperties()); set => this._property = value; } + + /// Validates that this object meets the validation criteria. + /// an instance that will receive validation + /// events. + /// + /// A that will be complete when validation is completed. + /// + public async global::System.Threading.Tasks.Task Validate(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener eventListener) + { + await eventListener.AssertNotNull(nameof(__partnerUpdateDestinationInfo), __partnerUpdateDestinationInfo); + await eventListener.AssertObjectIsValid(nameof(__partnerUpdateDestinationInfo), __partnerUpdateDestinationInfo); + } + + /// Creates an new instance. + public WebhookUpdatePartnerDestinationInfo() + { + + } + } + /// Information about the update of the WebHook of the partner destination. + public partial interface IWebhookUpdatePartnerDestinationInfo : + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IJsonSerializable, + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerUpdateDestinationInfo + { + /// Type of client authentication + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = true, + Description = @"Type of client authentication", + SerializedName = @"clientAuthenticationType", + PossibleTypes = new [] { typeof(string) })] + string ClientAuthenticationType { get; } + /// The base URL that represents the endpoint of the partner destination. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The base URL that represents the endpoint of the partner destination.", + SerializedName = @"endpointBaseUrl", + PossibleTypes = new [] { typeof(string) })] + string EndpointBaseUrl { get; set; } + /// The URL that represents the endpoint of the partner destination. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The URL that represents the endpoint of the partner destination.", + SerializedName = @"endpointUrl", + PossibleTypes = new [] { typeof(string) })] + string EndpointUrl { get; set; } + + } + /// Information about the update of the WebHook of the partner destination. + internal partial interface IWebhookUpdatePartnerDestinationInfoInternal : + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerUpdateDestinationInfoInternal + { + /// Partner client authentication + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerClientAuthentication ClientAuthentication { get; set; } + /// Type of client authentication + string ClientAuthenticationType { get; set; } + /// The base URL that represents the endpoint of the partner destination. + string EndpointBaseUrl { get; set; } + /// The URL that represents the endpoint of the partner destination. + string EndpointUrl { get; set; } + /// WebHook Properties of the partner destination. + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IWebhookPartnerDestinationProperties Property { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/WebhookUpdatePartnerDestinationInfo.json.cs b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/WebhookUpdatePartnerDestinationInfo.json.cs new file mode 100644 index 000000000000..f851cb6419a2 --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/Api20211015Preview/WebhookUpdatePartnerDestinationInfo.json.cs @@ -0,0 +1,109 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview +{ + using static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Extensions; + + /// Information about the update of the WebHook of the partner destination. + public partial class WebhookUpdatePartnerDestinationInfo + { + + /// + /// AfterFromJson will be called after the json deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JsonNode that should be deserialized into this object. + + partial void AfterFromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json erialization has finished, allowing customization of the before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JSON container that the serialization result will be placed in. + + partial void AfterToJson(ref Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject container); + + /// + /// BeforeFromJson will be called before the json deserialization has commenced, allowing complete customization of + /// the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JsonNode that should be deserialized into this object. + /// Determines if the rest of the deserialization should be processed, or if the method should return + /// instantly. + + partial void BeforeFromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject json, ref bool returnNow); + + /// + /// BeforeToJson will be called before the json serialization has commenced, allowing complete customization of the + /// object before it is serialized. + /// If you wish to disable the default serialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JSON container that the serialization result will be placed in. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeToJson(ref Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IWebhookUpdatePartnerDestinationInfo. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IWebhookUpdatePartnerDestinationInfo. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IWebhookUpdatePartnerDestinationInfo FromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject json ? new WebhookUpdatePartnerDestinationInfo(json) : null; + } + + /// + /// Serializes this instance of into a . + /// + /// The container to serialize this object into. If the caller + /// passes in null, a new instance will be created and returned to the caller. + /// Allows the caller to choose the depth of the serialization. See . + /// + /// a serialized instance of as a . + /// + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject(); + + bool returnNow = false; + BeforeToJson(ref container, ref returnNow); + if (returnNow) + { + return container; + } + __partnerUpdateDestinationInfo?.ToJson(container, serializationMode); + AddIf( null != this._property ? (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode) this._property.ToJson(null,serializationMode) : null, "properties" ,container.Add ); + AfterToJson(ref container); + return container; + } + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject instance to deserialize from. + internal WebhookUpdatePartnerDestinationInfo(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject json) + { + bool returnNow = false; + BeforeFromJson(json, ref returnNow); + if (returnNow) + { + return; + } + __partnerUpdateDestinationInfo = new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.PartnerUpdateDestinationInfo(json); + {_property = If( json?.PropertyT("properties"), out var __jsonProperties) ? Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.WebhookPartnerDestinationProperties.FromJson(__jsonProperties) : Property;} + AfterFromJson(json); + } + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Models/EventGridIdentity.PowerShell.cs b/swaggerci/eventgrid/generated/api/Models/EventGridIdentity.PowerShell.cs new file mode 100644 index 000000000000..6e3e7e9e39ed --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/EventGridIdentity.PowerShell.cs @@ -0,0 +1,332 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models +{ + using Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell; + + [System.ComponentModel.TypeConverter(typeof(EventGridIdentityTypeConverter))] + public partial class EventGridIdentity + { + + /// + /// AfterDeserializeDictionary will be called after the deserialization has finished, allowing customization of the + /// object before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Collections.IDictionary content that should be used. + + partial void AfterDeserializeDictionary(global::System.Collections.IDictionary content); + + /// + /// AfterDeserializePSObject will be called after the deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The global::System.Management.Automation.PSObject content that should be used. + + partial void AfterDeserializePSObject(global::System.Management.Automation.PSObject content); + + /// + /// BeforeDeserializeDictionary will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Collections.IDictionary content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializeDictionary(global::System.Collections.IDictionary content, ref bool returnNow); + + /// + /// BeforeDeserializePSObject will be called before the deserialization has commenced, allowing complete customization + /// of the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeDeserializePSObject(global::System.Management.Automation.PSObject content, ref bool returnNow); + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.IEventGridIdentity DeserializeFromDictionary(global::System.Collections.IDictionary content) + { + return new EventGridIdentity(content); + } + + /// + /// Deserializes a into an instance of . + /// + /// The global::System.Management.Automation.PSObject content that should be used. + /// + /// an instance of . + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.IEventGridIdentity DeserializeFromPSObject(global::System.Management.Automation.PSObject content) + { + return new EventGridIdentity(content); + } + + /// + /// Deserializes a into a new instance of . + /// + /// The global::System.Collections.IDictionary content that should be used. + internal EventGridIdentity(global::System.Collections.IDictionary content) + { + bool returnNow = false; + BeforeDeserializeDictionary(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("SubscriptionId")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.IEventGridIdentityInternal)this).SubscriptionId = (string) content.GetValueForProperty("SubscriptionId",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.IEventGridIdentityInternal)this).SubscriptionId, global::System.Convert.ToString); + } + if (content.Contains("ResourceGroupName")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.IEventGridIdentityInternal)this).ResourceGroupName = (string) content.GetValueForProperty("ResourceGroupName",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.IEventGridIdentityInternal)this).ResourceGroupName, global::System.Convert.ToString); + } + if (content.Contains("PartnerNamespaceName")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.IEventGridIdentityInternal)this).PartnerNamespaceName = (string) content.GetValueForProperty("PartnerNamespaceName",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.IEventGridIdentityInternal)this).PartnerNamespaceName, global::System.Convert.ToString); + } + if (content.Contains("ChannelName")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.IEventGridIdentityInternal)this).ChannelName = (string) content.GetValueForProperty("ChannelName",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.IEventGridIdentityInternal)this).ChannelName, global::System.Convert.ToString); + } + if (content.Contains("DomainName")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.IEventGridIdentityInternal)this).DomainName = (string) content.GetValueForProperty("DomainName",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.IEventGridIdentityInternal)this).DomainName, global::System.Convert.ToString); + } + if (content.Contains("DomainTopicName")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.IEventGridIdentityInternal)this).DomainTopicName = (string) content.GetValueForProperty("DomainTopicName",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.IEventGridIdentityInternal)this).DomainTopicName, global::System.Convert.ToString); + } + if (content.Contains("EventChannelName")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.IEventGridIdentityInternal)this).EventChannelName = (string) content.GetValueForProperty("EventChannelName",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.IEventGridIdentityInternal)this).EventChannelName, global::System.Convert.ToString); + } + if (content.Contains("Scope")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.IEventGridIdentityInternal)this).Scope = (string) content.GetValueForProperty("Scope",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.IEventGridIdentityInternal)this).Scope, global::System.Convert.ToString); + } + if (content.Contains("EventSubscriptionName")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.IEventGridIdentityInternal)this).EventSubscriptionName = (string) content.GetValueForProperty("EventSubscriptionName",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.IEventGridIdentityInternal)this).EventSubscriptionName, global::System.Convert.ToString); + } + if (content.Contains("TopicTypeName")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.IEventGridIdentityInternal)this).TopicTypeName = (string) content.GetValueForProperty("TopicTypeName",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.IEventGridIdentityInternal)this).TopicTypeName, global::System.Convert.ToString); + } + if (content.Contains("Location")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.IEventGridIdentityInternal)this).Location = (string) content.GetValueForProperty("Location",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.IEventGridIdentityInternal)this).Location, global::System.Convert.ToString); + } + if (content.Contains("ProviderNamespace")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.IEventGridIdentityInternal)this).ProviderNamespace = (string) content.GetValueForProperty("ProviderNamespace",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.IEventGridIdentityInternal)this).ProviderNamespace, global::System.Convert.ToString); + } + if (content.Contains("ResourceTypeName")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.IEventGridIdentityInternal)this).ResourceTypeName = (string) content.GetValueForProperty("ResourceTypeName",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.IEventGridIdentityInternal)this).ResourceTypeName, global::System.Convert.ToString); + } + if (content.Contains("ResourceName")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.IEventGridIdentityInternal)this).ResourceName = (string) content.GetValueForProperty("ResourceName",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.IEventGridIdentityInternal)this).ResourceName, global::System.Convert.ToString); + } + if (content.Contains("TopicName")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.IEventGridIdentityInternal)this).TopicName = (string) content.GetValueForProperty("TopicName",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.IEventGridIdentityInternal)this).TopicName, global::System.Convert.ToString); + } + if (content.Contains("SystemTopicName")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.IEventGridIdentityInternal)this).SystemTopicName = (string) content.GetValueForProperty("SystemTopicName",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.IEventGridIdentityInternal)this).SystemTopicName, global::System.Convert.ToString); + } + if (content.Contains("PartnerTopicName")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.IEventGridIdentityInternal)this).PartnerTopicName = (string) content.GetValueForProperty("PartnerTopicName",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.IEventGridIdentityInternal)this).PartnerTopicName, global::System.Convert.ToString); + } + if (content.Contains("PartnerDestinationName")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.IEventGridIdentityInternal)this).PartnerDestinationName = (string) content.GetValueForProperty("PartnerDestinationName",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.IEventGridIdentityInternal)this).PartnerDestinationName, global::System.Convert.ToString); + } + if (content.Contains("PartnerRegistrationName")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.IEventGridIdentityInternal)this).PartnerRegistrationName = (string) content.GetValueForProperty("PartnerRegistrationName",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.IEventGridIdentityInternal)this).PartnerRegistrationName, global::System.Convert.ToString); + } + if (content.Contains("ParentType")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.IEventGridIdentityInternal)this).ParentType = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.ParentType?) content.GetValueForProperty("ParentType",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.IEventGridIdentityInternal)this).ParentType, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.ParentType.CreateFrom); + } + if (content.Contains("ParentName")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.IEventGridIdentityInternal)this).ParentName = (string) content.GetValueForProperty("ParentName",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.IEventGridIdentityInternal)this).ParentName, global::System.Convert.ToString); + } + if (content.Contains("PrivateEndpointConnectionName")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.IEventGridIdentityInternal)this).PrivateEndpointConnectionName = (string) content.GetValueForProperty("PrivateEndpointConnectionName",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.IEventGridIdentityInternal)this).PrivateEndpointConnectionName, global::System.Convert.ToString); + } + if (content.Contains("PrivateLinkResourceName")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.IEventGridIdentityInternal)this).PrivateLinkResourceName = (string) content.GetValueForProperty("PrivateLinkResourceName",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.IEventGridIdentityInternal)this).PrivateLinkResourceName, global::System.Convert.ToString); + } + if (content.Contains("VerifiedPartnerName")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.IEventGridIdentityInternal)this).VerifiedPartnerName = (string) content.GetValueForProperty("VerifiedPartnerName",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.IEventGridIdentityInternal)this).VerifiedPartnerName, global::System.Convert.ToString); + } + if (content.Contains("Id")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.IEventGridIdentityInternal)this).Id = (string) content.GetValueForProperty("Id",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.IEventGridIdentityInternal)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 EventGridIdentity(global::System.Management.Automation.PSObject content) + { + bool returnNow = false; + BeforeDeserializePSObject(content, ref returnNow); + if (returnNow) + { + return; + } + // actually deserialize + if (content.Contains("SubscriptionId")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.IEventGridIdentityInternal)this).SubscriptionId = (string) content.GetValueForProperty("SubscriptionId",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.IEventGridIdentityInternal)this).SubscriptionId, global::System.Convert.ToString); + } + if (content.Contains("ResourceGroupName")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.IEventGridIdentityInternal)this).ResourceGroupName = (string) content.GetValueForProperty("ResourceGroupName",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.IEventGridIdentityInternal)this).ResourceGroupName, global::System.Convert.ToString); + } + if (content.Contains("PartnerNamespaceName")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.IEventGridIdentityInternal)this).PartnerNamespaceName = (string) content.GetValueForProperty("PartnerNamespaceName",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.IEventGridIdentityInternal)this).PartnerNamespaceName, global::System.Convert.ToString); + } + if (content.Contains("ChannelName")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.IEventGridIdentityInternal)this).ChannelName = (string) content.GetValueForProperty("ChannelName",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.IEventGridIdentityInternal)this).ChannelName, global::System.Convert.ToString); + } + if (content.Contains("DomainName")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.IEventGridIdentityInternal)this).DomainName = (string) content.GetValueForProperty("DomainName",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.IEventGridIdentityInternal)this).DomainName, global::System.Convert.ToString); + } + if (content.Contains("DomainTopicName")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.IEventGridIdentityInternal)this).DomainTopicName = (string) content.GetValueForProperty("DomainTopicName",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.IEventGridIdentityInternal)this).DomainTopicName, global::System.Convert.ToString); + } + if (content.Contains("EventChannelName")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.IEventGridIdentityInternal)this).EventChannelName = (string) content.GetValueForProperty("EventChannelName",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.IEventGridIdentityInternal)this).EventChannelName, global::System.Convert.ToString); + } + if (content.Contains("Scope")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.IEventGridIdentityInternal)this).Scope = (string) content.GetValueForProperty("Scope",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.IEventGridIdentityInternal)this).Scope, global::System.Convert.ToString); + } + if (content.Contains("EventSubscriptionName")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.IEventGridIdentityInternal)this).EventSubscriptionName = (string) content.GetValueForProperty("EventSubscriptionName",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.IEventGridIdentityInternal)this).EventSubscriptionName, global::System.Convert.ToString); + } + if (content.Contains("TopicTypeName")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.IEventGridIdentityInternal)this).TopicTypeName = (string) content.GetValueForProperty("TopicTypeName",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.IEventGridIdentityInternal)this).TopicTypeName, global::System.Convert.ToString); + } + if (content.Contains("Location")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.IEventGridIdentityInternal)this).Location = (string) content.GetValueForProperty("Location",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.IEventGridIdentityInternal)this).Location, global::System.Convert.ToString); + } + if (content.Contains("ProviderNamespace")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.IEventGridIdentityInternal)this).ProviderNamespace = (string) content.GetValueForProperty("ProviderNamespace",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.IEventGridIdentityInternal)this).ProviderNamespace, global::System.Convert.ToString); + } + if (content.Contains("ResourceTypeName")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.IEventGridIdentityInternal)this).ResourceTypeName = (string) content.GetValueForProperty("ResourceTypeName",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.IEventGridIdentityInternal)this).ResourceTypeName, global::System.Convert.ToString); + } + if (content.Contains("ResourceName")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.IEventGridIdentityInternal)this).ResourceName = (string) content.GetValueForProperty("ResourceName",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.IEventGridIdentityInternal)this).ResourceName, global::System.Convert.ToString); + } + if (content.Contains("TopicName")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.IEventGridIdentityInternal)this).TopicName = (string) content.GetValueForProperty("TopicName",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.IEventGridIdentityInternal)this).TopicName, global::System.Convert.ToString); + } + if (content.Contains("SystemTopicName")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.IEventGridIdentityInternal)this).SystemTopicName = (string) content.GetValueForProperty("SystemTopicName",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.IEventGridIdentityInternal)this).SystemTopicName, global::System.Convert.ToString); + } + if (content.Contains("PartnerTopicName")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.IEventGridIdentityInternal)this).PartnerTopicName = (string) content.GetValueForProperty("PartnerTopicName",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.IEventGridIdentityInternal)this).PartnerTopicName, global::System.Convert.ToString); + } + if (content.Contains("PartnerDestinationName")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.IEventGridIdentityInternal)this).PartnerDestinationName = (string) content.GetValueForProperty("PartnerDestinationName",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.IEventGridIdentityInternal)this).PartnerDestinationName, global::System.Convert.ToString); + } + if (content.Contains("PartnerRegistrationName")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.IEventGridIdentityInternal)this).PartnerRegistrationName = (string) content.GetValueForProperty("PartnerRegistrationName",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.IEventGridIdentityInternal)this).PartnerRegistrationName, global::System.Convert.ToString); + } + if (content.Contains("ParentType")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.IEventGridIdentityInternal)this).ParentType = (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.ParentType?) content.GetValueForProperty("ParentType",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.IEventGridIdentityInternal)this).ParentType, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.ParentType.CreateFrom); + } + if (content.Contains("ParentName")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.IEventGridIdentityInternal)this).ParentName = (string) content.GetValueForProperty("ParentName",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.IEventGridIdentityInternal)this).ParentName, global::System.Convert.ToString); + } + if (content.Contains("PrivateEndpointConnectionName")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.IEventGridIdentityInternal)this).PrivateEndpointConnectionName = (string) content.GetValueForProperty("PrivateEndpointConnectionName",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.IEventGridIdentityInternal)this).PrivateEndpointConnectionName, global::System.Convert.ToString); + } + if (content.Contains("PrivateLinkResourceName")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.IEventGridIdentityInternal)this).PrivateLinkResourceName = (string) content.GetValueForProperty("PrivateLinkResourceName",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.IEventGridIdentityInternal)this).PrivateLinkResourceName, global::System.Convert.ToString); + } + if (content.Contains("VerifiedPartnerName")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.IEventGridIdentityInternal)this).VerifiedPartnerName = (string) content.GetValueForProperty("VerifiedPartnerName",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.IEventGridIdentityInternal)this).VerifiedPartnerName, global::System.Convert.ToString); + } + if (content.Contains("Id")) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.IEventGridIdentityInternal)this).Id = (string) content.GetValueForProperty("Id",((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.IEventGridIdentityInternal)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.EventGrid.Models.IEventGridIdentity FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode.Parse(jsonText)); + + /// Serializes this instance to a json string. + + /// a containing this model serialized to JSON text. + public string ToJsonString() => ToJson(null, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SerializationMode.IncludeAll)?.ToString(); + } + [System.ComponentModel.TypeConverter(typeof(EventGridIdentityTypeConverter))] + public partial interface IEventGridIdentity + + { + + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Models/EventGridIdentity.TypeConverter.cs b/swaggerci/eventgrid/generated/api/Models/EventGridIdentity.TypeConverter.cs new file mode 100644 index 000000000000..89eb1ab02131 --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/EventGridIdentity.TypeConverter.cs @@ -0,0 +1,156 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models +{ + using Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell; + + /// + /// A PowerShell PSTypeConverter to support converting to an instance of + /// + public partial class EventGridIdentityTypeConverter : global::System.Management.Automation.PSTypeConverter + { + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false. + /// + public override bool CanConvertFrom(object sourceValue, global::System.Type destinationType) => CanConvertFrom(sourceValue); + + /// + /// Determines if the converter can convert the parameter to the . + /// + /// the instance to check if it can be converted to the type. + /// + /// true if the instance could 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.EventGrid.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonType.Object; + } + catch + { + // Doesn't look like it can be treated as JSON + } + return false; + } + + /// + /// Determines if the parameter can be converted to the parameter + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false + /// + public override bool CanConvertTo(object sourceValue, global::System.Type destinationType) => false; + + /// + /// Converts the parameter to the parameter using and + /// + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// + /// an instance of , or null if there is no suitable conversion. + /// + public override object ConvertFrom(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => ConvertFrom(sourceValue); + + /// + /// Converts the parameter to the parameter using and + /// + /// the value to convert into an instance of . + /// + /// an instance of , or null if there is no suitable conversion. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.IEventGridIdentity 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 EventGridIdentity { Id = sourceValue }; + } + if (typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.IEventGridIdentity).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return EventGridIdentity.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());; + } + catch + { + // Unable to use JSON pattern + } + if (typeof(global::System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return EventGridIdentity.DeserializeFromPSObject(sourceValue); + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return EventGridIdentity.DeserializeFromDictionary(sourceValue); + } + return null; + } + + /// NotImplemented -- this will return null + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// will always return null. + public override object ConvertTo(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => null; + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Models/EventGridIdentity.cs b/swaggerci/eventgrid/generated/api/Models/EventGridIdentity.cs new file mode 100644 index 000000000000..01b64895aebb --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/EventGridIdentity.cs @@ -0,0 +1,495 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models +{ + using static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Extensions; + + public partial class EventGridIdentity : + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.IEventGridIdentity, + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.IEventGridIdentityInternal + { + + /// Backing field for property. + private string _channelName; + + /// Name of the channel. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Owned)] + public string ChannelName { get => this._channelName; set => this._channelName = value; } + + /// Backing field for property. + private string _domainName; + + /// Name of the domain. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Owned)] + public string DomainName { get => this._domainName; set => this._domainName = value; } + + /// Backing field for property. + private string _domainTopicName; + + /// Name of the topic. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Owned)] + public string DomainTopicName { get => this._domainTopicName; set => this._domainTopicName = value; } + + /// Backing field for property. + private string _eventChannelName; + + /// Name of the event channel. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Owned)] + public string EventChannelName { get => this._eventChannelName; set => this._eventChannelName = value; } + + /// Backing field for property. + private string _eventSubscriptionName; + + /// Name of the event subscription. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Owned)] + public string EventSubscriptionName { get => this._eventSubscriptionName; set => this._eventSubscriptionName = value; } + + /// Backing field for property. + private string _id; + + /// Resource identity path + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Owned)] + public string Id { get => this._id; set => this._id = value; } + + /// Backing field for property. + private string _location; + + /// Name of the location. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Owned)] + public string Location { get => this._location; set => this._location = value; } + + /// Backing field for property. + private string _parentName; + + /// + /// The name of the parent resource (namely, either, the topic name, domain name, or partner namespace name). + /// + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Owned)] + public string ParentName { get => this._parentName; set => this._parentName = value; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.ParentType? _parentType; + + /// + /// The type of the parent resource. This can be either \'topics\', \'domains\', or \'partnerNamespaces\'. + /// + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Owned)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.ParentType? ParentType { get => this._parentType; set => this._parentType = value; } + + /// Backing field for property. + private string _partnerDestinationName; + + /// Name of the partner destination. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Owned)] + public string PartnerDestinationName { get => this._partnerDestinationName; set => this._partnerDestinationName = value; } + + /// Backing field for property. + private string _partnerNamespaceName; + + /// Name of the partner namespace. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Owned)] + public string PartnerNamespaceName { get => this._partnerNamespaceName; set => this._partnerNamespaceName = value; } + + /// Backing field for property. + private string _partnerRegistrationName; + + /// Name of the partner registration. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Owned)] + public string PartnerRegistrationName { get => this._partnerRegistrationName; set => this._partnerRegistrationName = value; } + + /// Backing field for property. + private string _partnerTopicName; + + /// Name of the partner topic. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Owned)] + public string PartnerTopicName { get => this._partnerTopicName; set => this._partnerTopicName = value; } + + /// Backing field for property. + private string _privateEndpointConnectionName; + + /// The name of the private endpoint connection connection. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Owned)] + public string PrivateEndpointConnectionName { get => this._privateEndpointConnectionName; set => this._privateEndpointConnectionName = value; } + + /// Backing field for property. + private string _privateLinkResourceName; + + /// The name of private link resource. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Owned)] + public string PrivateLinkResourceName { get => this._privateLinkResourceName; set => this._privateLinkResourceName = value; } + + /// Backing field for property. + private string _providerNamespace; + + /// Namespace of the provider of the topic. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Owned)] + public string ProviderNamespace { get => this._providerNamespace; set => this._providerNamespace = value; } + + /// Backing field for property. + private string _resourceGroupName; + + /// The name of the resource group within the partners subscription. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Owned)] + public string ResourceGroupName { get => this._resourceGroupName; set => this._resourceGroupName = value; } + + /// Backing field for property. + private string _resourceName; + + /// Name of the resource. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Owned)] + public string ResourceName { get => this._resourceName; set => this._resourceName = value; } + + /// Backing field for property. + private string _resourceTypeName; + + /// Name of the resource type. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Owned)] + public string ResourceTypeName { get => this._resourceTypeName; set => this._resourceTypeName = value; } + + /// Backing field for property. + private string _scope; + + /// + /// The scope of the event subscription. The scope can be a subscription, or a resource group, or a top level resource belonging + /// to a resource provider namespace, or an EventGrid topic. For example, use '/subscriptions/{subscriptionId}/' for a subscription, + /// '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}' for a resource group, and '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}' + /// for a resource, and '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.EventGrid/topics/{topicName}' + /// for an EventGrid topic. + /// + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Owned)] + public string Scope { get => this._scope; set => this._scope = value; } + + /// Backing field for property. + private string _subscriptionId; + + /// + /// Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription ID forms part of the + /// URI for every service call. + /// + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Owned)] + public string SubscriptionId { get => this._subscriptionId; set => this._subscriptionId = value; } + + /// Backing field for property. + private string _systemTopicName; + + /// Name of the system topic. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Owned)] + public string SystemTopicName { get => this._systemTopicName; set => this._systemTopicName = value; } + + /// Backing field for property. + private string _topicName; + + /// Name of the domain topic. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Owned)] + public string TopicName { get => this._topicName; set => this._topicName = value; } + + /// Backing field for property. + private string _topicTypeName; + + /// Name of the topic type. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Owned)] + public string TopicTypeName { get => this._topicTypeName; set => this._topicTypeName = value; } + + /// Backing field for property. + private string _verifiedPartnerName; + + /// Name of the verified partner. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Origin(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.PropertyOrigin.Owned)] + public string VerifiedPartnerName { get => this._verifiedPartnerName; set => this._verifiedPartnerName = value; } + + /// Creates an new instance. + public EventGridIdentity() + { + + } + } + public partial interface IEventGridIdentity : + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IJsonSerializable + { + /// Name of the channel. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Name of the channel.", + SerializedName = @"channelName", + PossibleTypes = new [] { typeof(string) })] + string ChannelName { get; set; } + /// Name of the domain. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Name of the domain.", + SerializedName = @"domainName", + PossibleTypes = new [] { typeof(string) })] + string DomainName { get; set; } + /// Name of the topic. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Name of the topic.", + SerializedName = @"domainTopicName", + PossibleTypes = new [] { typeof(string) })] + string DomainTopicName { get; set; } + /// Name of the event channel. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Name of the event channel.", + SerializedName = @"eventChannelName", + PossibleTypes = new [] { typeof(string) })] + string EventChannelName { get; set; } + /// Name of the event subscription. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Name of the event subscription.", + SerializedName = @"eventSubscriptionName", + PossibleTypes = new [] { typeof(string) })] + string EventSubscriptionName { get; set; } + /// Resource identity path + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Resource identity path", + SerializedName = @"id", + PossibleTypes = new [] { typeof(string) })] + string Id { get; set; } + /// Name of the location. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Name of the location.", + SerializedName = @"location", + PossibleTypes = new [] { typeof(string) })] + string Location { get; set; } + /// + /// The name of the parent resource (namely, either, the topic name, domain name, or partner namespace name). + /// + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The name of the parent resource (namely, either, the topic name, domain name, or partner namespace name).", + SerializedName = @"parentName", + PossibleTypes = new [] { typeof(string) })] + string ParentName { get; set; } + /// + /// The type of the parent resource. This can be either \'topics\', \'domains\', or \'partnerNamespaces\'. + /// + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The type of the parent resource. This can be either \'topics\', \'domains\', or \'partnerNamespaces\'.", + SerializedName = @"parentType", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.ParentType) })] + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.ParentType? ParentType { get; set; } + /// Name of the partner destination. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Name of the partner destination.", + SerializedName = @"partnerDestinationName", + PossibleTypes = new [] { typeof(string) })] + string PartnerDestinationName { get; set; } + /// Name of the partner namespace. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Name of the partner namespace.", + SerializedName = @"partnerNamespaceName", + PossibleTypes = new [] { typeof(string) })] + string PartnerNamespaceName { get; set; } + /// Name of the partner registration. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Name of the partner registration.", + SerializedName = @"partnerRegistrationName", + PossibleTypes = new [] { typeof(string) })] + string PartnerRegistrationName { get; set; } + /// Name of the partner topic. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Name of the partner topic.", + SerializedName = @"partnerTopicName", + PossibleTypes = new [] { typeof(string) })] + string PartnerTopicName { get; set; } + /// The name of the private endpoint connection connection. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The name of the private endpoint connection connection.", + SerializedName = @"privateEndpointConnectionName", + PossibleTypes = new [] { typeof(string) })] + string PrivateEndpointConnectionName { get; set; } + /// The name of private link resource. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The name of private link resource.", + SerializedName = @"privateLinkResourceName", + PossibleTypes = new [] { typeof(string) })] + string PrivateLinkResourceName { get; set; } + /// Namespace of the provider of the topic. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Namespace of the provider of the topic.", + SerializedName = @"providerNamespace", + PossibleTypes = new [] { typeof(string) })] + string ProviderNamespace { get; set; } + /// The name of the resource group within the partners subscription. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The name of the resource group within the partners subscription.", + SerializedName = @"resourceGroupName", + PossibleTypes = new [] { typeof(string) })] + string ResourceGroupName { get; set; } + /// Name of the resource. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Name of the resource.", + SerializedName = @"resourceName", + PossibleTypes = new [] { typeof(string) })] + string ResourceName { get; set; } + /// Name of the resource type. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Name of the resource type.", + SerializedName = @"resourceTypeName", + PossibleTypes = new [] { typeof(string) })] + string ResourceTypeName { get; set; } + /// + /// The scope of the event subscription. The scope can be a subscription, or a resource group, or a top level resource belonging + /// to a resource provider namespace, or an EventGrid topic. For example, use '/subscriptions/{subscriptionId}/' for a subscription, + /// '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}' for a resource group, and '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}' + /// for a resource, and '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.EventGrid/topics/{topicName}' + /// for an EventGrid topic. + /// + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The scope of the event subscription. The scope can be a subscription, or a resource group, or a top level resource belonging to a resource provider namespace, or an EventGrid topic. For example, use '/subscriptions/{subscriptionId}/' for a subscription, '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}' for a resource group, and '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}' for a resource, and '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.EventGrid/topics/{topicName}' for an EventGrid topic.", + SerializedName = @"scope", + PossibleTypes = new [] { typeof(string) })] + string Scope { get; set; } + /// + /// Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription ID forms part of the + /// URI for every service call. + /// + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.", + SerializedName = @"subscriptionId", + PossibleTypes = new [] { typeof(string) })] + string SubscriptionId { get; set; } + /// Name of the system topic. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Name of the system topic.", + SerializedName = @"systemTopicName", + PossibleTypes = new [] { typeof(string) })] + string SystemTopicName { get; set; } + /// Name of the domain topic. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Name of the domain topic.", + SerializedName = @"topicName", + PossibleTypes = new [] { typeof(string) })] + string TopicName { get; set; } + /// Name of the topic type. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Name of the topic type.", + SerializedName = @"topicTypeName", + PossibleTypes = new [] { typeof(string) })] + string TopicTypeName { get; set; } + /// Name of the verified partner. + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Name of the verified partner.", + SerializedName = @"verifiedPartnerName", + PossibleTypes = new [] { typeof(string) })] + string VerifiedPartnerName { get; set; } + + } + internal partial interface IEventGridIdentityInternal + + { + /// Name of the channel. + string ChannelName { get; set; } + /// Name of the domain. + string DomainName { get; set; } + /// Name of the topic. + string DomainTopicName { get; set; } + /// Name of the event channel. + string EventChannelName { get; set; } + /// Name of the event subscription. + string EventSubscriptionName { get; set; } + /// Resource identity path + string Id { get; set; } + /// Name of the location. + string Location { get; set; } + /// + /// The name of the parent resource (namely, either, the topic name, domain name, or partner namespace name). + /// + string ParentName { get; set; } + /// + /// The type of the parent resource. This can be either \'topics\', \'domains\', or \'partnerNamespaces\'. + /// + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.ParentType? ParentType { get; set; } + /// Name of the partner destination. + string PartnerDestinationName { get; set; } + /// Name of the partner namespace. + string PartnerNamespaceName { get; set; } + /// Name of the partner registration. + string PartnerRegistrationName { get; set; } + /// Name of the partner topic. + string PartnerTopicName { get; set; } + /// The name of the private endpoint connection connection. + string PrivateEndpointConnectionName { get; set; } + /// The name of private link resource. + string PrivateLinkResourceName { get; set; } + /// Namespace of the provider of the topic. + string ProviderNamespace { get; set; } + /// The name of the resource group within the partners subscription. + string ResourceGroupName { get; set; } + /// Name of the resource. + string ResourceName { get; set; } + /// Name of the resource type. + string ResourceTypeName { get; set; } + /// + /// The scope of the event subscription. The scope can be a subscription, or a resource group, or a top level resource belonging + /// to a resource provider namespace, or an EventGrid topic. For example, use '/subscriptions/{subscriptionId}/' for a subscription, + /// '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}' for a resource group, and '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}' + /// for a resource, and '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.EventGrid/topics/{topicName}' + /// for an EventGrid topic. + /// + string Scope { get; set; } + /// + /// Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription ID forms part of the + /// URI for every service call. + /// + string SubscriptionId { get; set; } + /// Name of the system topic. + string SystemTopicName { get; set; } + /// Name of the domain topic. + string TopicName { get; set; } + /// Name of the topic type. + string TopicTypeName { get; set; } + /// Name of the verified partner. + string VerifiedPartnerName { get; set; } + + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Models/EventGridIdentity.json.cs b/swaggerci/eventgrid/generated/api/Models/EventGridIdentity.json.cs new file mode 100644 index 000000000000..c0ba58e7f3d4 --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Models/EventGridIdentity.json.cs @@ -0,0 +1,153 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models +{ + using static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Extensions; + + public partial class EventGridIdentity + { + + /// + /// AfterFromJson will be called after the json deserialization has finished, allowing customization of the object + /// before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JsonNode that should be deserialized into this object. + + partial void AfterFromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject json); + + /// + /// AfterToJson will be called after the json erialization has finished, allowing customization of the before it is returned. Implement this method in a partial class to enable this behavior + /// + /// The JSON container that the serialization result will be placed in. + + partial void AfterToJson(ref Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject container); + + /// + /// BeforeFromJson will be called before the json deserialization has commenced, allowing complete customization of + /// the object before it is deserialized. + /// If you wish to disable the default deserialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JsonNode that should be deserialized into this object. + /// Determines if the rest of the deserialization should be processed, or if the method should return + /// instantly. + + partial void BeforeFromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject json, ref bool returnNow); + + /// + /// BeforeToJson will be called before the json serialization has commenced, allowing complete customization of the + /// object before it is serialized. + /// If you wish to disable the default serialization entirely, return true in the output parameter. + /// Implement this method in a partial class to enable this behavior. + /// + /// The JSON container that the serialization result will be placed in. + /// Determines if the rest of the serialization should be processed, or if the method should return + /// instantly. + + partial void BeforeToJson(ref Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject container, ref bool returnNow); + + /// + /// Deserializes a Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject into a new instance of . + /// + /// A Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject instance to deserialize from. + internal EventGridIdentity(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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;} + {_partnerNamespaceName = If( json?.PropertyT("partnerNamespaceName"), out var __jsonPartnerNamespaceName) ? (string)__jsonPartnerNamespaceName : (string)PartnerNamespaceName;} + {_channelName = If( json?.PropertyT("channelName"), out var __jsonChannelName) ? (string)__jsonChannelName : (string)ChannelName;} + {_domainName = If( json?.PropertyT("domainName"), out var __jsonDomainName) ? (string)__jsonDomainName : (string)DomainName;} + {_domainTopicName = If( json?.PropertyT("domainTopicName"), out var __jsonDomainTopicName) ? (string)__jsonDomainTopicName : (string)DomainTopicName;} + {_eventChannelName = If( json?.PropertyT("eventChannelName"), out var __jsonEventChannelName) ? (string)__jsonEventChannelName : (string)EventChannelName;} + {_scope = If( json?.PropertyT("scope"), out var __jsonScope) ? (string)__jsonScope : (string)Scope;} + {_eventSubscriptionName = If( json?.PropertyT("eventSubscriptionName"), out var __jsonEventSubscriptionName) ? (string)__jsonEventSubscriptionName : (string)EventSubscriptionName;} + {_topicTypeName = If( json?.PropertyT("topicTypeName"), out var __jsonTopicTypeName) ? (string)__jsonTopicTypeName : (string)TopicTypeName;} + {_location = If( json?.PropertyT("location"), out var __jsonLocation) ? (string)__jsonLocation : (string)Location;} + {_providerNamespace = If( json?.PropertyT("providerNamespace"), out var __jsonProviderNamespace) ? (string)__jsonProviderNamespace : (string)ProviderNamespace;} + {_resourceTypeName = If( json?.PropertyT("resourceTypeName"), out var __jsonResourceTypeName) ? (string)__jsonResourceTypeName : (string)ResourceTypeName;} + {_resourceName = If( json?.PropertyT("resourceName"), out var __jsonResourceName) ? (string)__jsonResourceName : (string)ResourceName;} + {_topicName = If( json?.PropertyT("topicName"), out var __jsonTopicName) ? (string)__jsonTopicName : (string)TopicName;} + {_systemTopicName = If( json?.PropertyT("systemTopicName"), out var __jsonSystemTopicName) ? (string)__jsonSystemTopicName : (string)SystemTopicName;} + {_partnerTopicName = If( json?.PropertyT("partnerTopicName"), out var __jsonPartnerTopicName) ? (string)__jsonPartnerTopicName : (string)PartnerTopicName;} + {_partnerDestinationName = If( json?.PropertyT("partnerDestinationName"), out var __jsonPartnerDestinationName) ? (string)__jsonPartnerDestinationName : (string)PartnerDestinationName;} + {_partnerRegistrationName = If( json?.PropertyT("partnerRegistrationName"), out var __jsonPartnerRegistrationName) ? (string)__jsonPartnerRegistrationName : (string)PartnerRegistrationName;} + {_parentType = If( json?.PropertyT("parentType"), out var __jsonParentType) ? (string)__jsonParentType : (string)ParentType;} + {_parentName = If( json?.PropertyT("parentName"), out var __jsonParentName) ? (string)__jsonParentName : (string)ParentName;} + {_privateEndpointConnectionName = If( json?.PropertyT("privateEndpointConnectionName"), out var __jsonPrivateEndpointConnectionName) ? (string)__jsonPrivateEndpointConnectionName : (string)PrivateEndpointConnectionName;} + {_privateLinkResourceName = If( json?.PropertyT("privateLinkResourceName"), out var __jsonPrivateLinkResourceName) ? (string)__jsonPrivateLinkResourceName : (string)PrivateLinkResourceName;} + {_verifiedPartnerName = If( json?.PropertyT("verifiedPartnerName"), out var __jsonVerifiedPartnerName) ? (string)__jsonVerifiedPartnerName : (string)VerifiedPartnerName;} + {_id = If( json?.PropertyT("id"), out var __jsonId) ? (string)__jsonId : (string)Id;} + AfterFromJson(json); + } + + /// + /// Deserializes a into an instance of Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.IEventGridIdentity. + /// + /// a to deserialize from. + /// + /// an instance of Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.IEventGridIdentity. + /// + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.IEventGridIdentity FromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject json ? new EventGridIdentity(json) : null; + } + + /// + /// Serializes this instance of into a . + /// + /// The container to serialize this object into. If the caller + /// passes in null, a new instance will be created and returned to the caller. + /// Allows the caller to choose the depth of the serialization. See . + /// + /// a serialized instance of as a . + /// + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode ToJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject container, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SerializationMode serializationMode) + { + container = container ?? new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonString(this._subscriptionId.ToString()) : null, "subscriptionId" ,container.Add ); + AddIf( null != (((object)this._resourceGroupName)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonString(this._resourceGroupName.ToString()) : null, "resourceGroupName" ,container.Add ); + AddIf( null != (((object)this._partnerNamespaceName)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonString(this._partnerNamespaceName.ToString()) : null, "partnerNamespaceName" ,container.Add ); + AddIf( null != (((object)this._channelName)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonString(this._channelName.ToString()) : null, "channelName" ,container.Add ); + AddIf( null != (((object)this._domainName)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonString(this._domainName.ToString()) : null, "domainName" ,container.Add ); + AddIf( null != (((object)this._domainTopicName)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonString(this._domainTopicName.ToString()) : null, "domainTopicName" ,container.Add ); + AddIf( null != (((object)this._eventChannelName)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonString(this._eventChannelName.ToString()) : null, "eventChannelName" ,container.Add ); + AddIf( null != (((object)this._scope)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonString(this._scope.ToString()) : null, "scope" ,container.Add ); + AddIf( null != (((object)this._eventSubscriptionName)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonString(this._eventSubscriptionName.ToString()) : null, "eventSubscriptionName" ,container.Add ); + AddIf( null != (((object)this._topicTypeName)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonString(this._topicTypeName.ToString()) : null, "topicTypeName" ,container.Add ); + AddIf( null != (((object)this._location)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonString(this._location.ToString()) : null, "location" ,container.Add ); + AddIf( null != (((object)this._providerNamespace)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonString(this._providerNamespace.ToString()) : null, "providerNamespace" ,container.Add ); + AddIf( null != (((object)this._resourceTypeName)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonString(this._resourceTypeName.ToString()) : null, "resourceTypeName" ,container.Add ); + AddIf( null != (((object)this._resourceName)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonString(this._resourceName.ToString()) : null, "resourceName" ,container.Add ); + AddIf( null != (((object)this._topicName)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonString(this._topicName.ToString()) : null, "topicName" ,container.Add ); + AddIf( null != (((object)this._systemTopicName)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonString(this._systemTopicName.ToString()) : null, "systemTopicName" ,container.Add ); + AddIf( null != (((object)this._partnerTopicName)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonString(this._partnerTopicName.ToString()) : null, "partnerTopicName" ,container.Add ); + AddIf( null != (((object)this._partnerDestinationName)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonString(this._partnerDestinationName.ToString()) : null, "partnerDestinationName" ,container.Add ); + AddIf( null != (((object)this._partnerRegistrationName)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonString(this._partnerRegistrationName.ToString()) : null, "partnerRegistrationName" ,container.Add ); + AddIf( null != (((object)this._parentType)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonString(this._parentType.ToString()) : null, "parentType" ,container.Add ); + AddIf( null != (((object)this._parentName)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonString(this._parentName.ToString()) : null, "parentName" ,container.Add ); + AddIf( null != (((object)this._privateEndpointConnectionName)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonString(this._privateEndpointConnectionName.ToString()) : null, "privateEndpointConnectionName" ,container.Add ); + AddIf( null != (((object)this._privateLinkResourceName)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonString(this._privateLinkResourceName.ToString()) : null, "privateLinkResourceName" ,container.Add ); + AddIf( null != (((object)this._verifiedPartnerName)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonString(this._verifiedPartnerName.ToString()) : null, "verifiedPartnerName" ,container.Add ); + AddIf( null != (((object)this._id)?.ToString()) ? (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode) new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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/eventgrid/generated/api/Support/AdvancedFilterOperatorType.Completer.cs b/swaggerci/eventgrid/generated/api/Support/AdvancedFilterOperatorType.Completer.cs new file mode 100644 index 000000000000..e5f5192c8442 --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Support/AdvancedFilterOperatorType.Completer.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.EventGrid.Support +{ + + /// + /// The operator type used for filtering, e.g., NumberIn, StringContains, BoolEquals and others. + /// + [System.ComponentModel.TypeConverter(typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.AdvancedFilterOperatorTypeTypeConverter))] + public partial struct AdvancedFilterOperatorType : + 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) || "NumberIn".StartsWith(wordToComplete, global::System.StringComparison.InvariantCultureIgnoreCase)) + { + yield return new global::System.Management.Automation.CompletionResult("'NumberIn'", "NumberIn", global::System.Management.Automation.CompletionResultType.ParameterValue, "NumberIn"); + } + if (global::System.String.IsNullOrEmpty(wordToComplete) || "NumberNotIn".StartsWith(wordToComplete, global::System.StringComparison.InvariantCultureIgnoreCase)) + { + yield return new global::System.Management.Automation.CompletionResult("'NumberNotIn'", "NumberNotIn", global::System.Management.Automation.CompletionResultType.ParameterValue, "NumberNotIn"); + } + if (global::System.String.IsNullOrEmpty(wordToComplete) || "NumberLessThan".StartsWith(wordToComplete, global::System.StringComparison.InvariantCultureIgnoreCase)) + { + yield return new global::System.Management.Automation.CompletionResult("'NumberLessThan'", "NumberLessThan", global::System.Management.Automation.CompletionResultType.ParameterValue, "NumberLessThan"); + } + if (global::System.String.IsNullOrEmpty(wordToComplete) || "NumberGreaterThan".StartsWith(wordToComplete, global::System.StringComparison.InvariantCultureIgnoreCase)) + { + yield return new global::System.Management.Automation.CompletionResult("'NumberGreaterThan'", "NumberGreaterThan", global::System.Management.Automation.CompletionResultType.ParameterValue, "NumberGreaterThan"); + } + if (global::System.String.IsNullOrEmpty(wordToComplete) || "NumberLessThanOrEquals".StartsWith(wordToComplete, global::System.StringComparison.InvariantCultureIgnoreCase)) + { + yield return new global::System.Management.Automation.CompletionResult("'NumberLessThanOrEquals'", "NumberLessThanOrEquals", global::System.Management.Automation.CompletionResultType.ParameterValue, "NumberLessThanOrEquals"); + } + if (global::System.String.IsNullOrEmpty(wordToComplete) || "NumberGreaterThanOrEquals".StartsWith(wordToComplete, global::System.StringComparison.InvariantCultureIgnoreCase)) + { + yield return new global::System.Management.Automation.CompletionResult("'NumberGreaterThanOrEquals'", "NumberGreaterThanOrEquals", global::System.Management.Automation.CompletionResultType.ParameterValue, "NumberGreaterThanOrEquals"); + } + if (global::System.String.IsNullOrEmpty(wordToComplete) || "BoolEquals".StartsWith(wordToComplete, global::System.StringComparison.InvariantCultureIgnoreCase)) + { + yield return new global::System.Management.Automation.CompletionResult("'BoolEquals'", "BoolEquals", global::System.Management.Automation.CompletionResultType.ParameterValue, "BoolEquals"); + } + if (global::System.String.IsNullOrEmpty(wordToComplete) || "StringIn".StartsWith(wordToComplete, global::System.StringComparison.InvariantCultureIgnoreCase)) + { + yield return new global::System.Management.Automation.CompletionResult("'StringIn'", "StringIn", global::System.Management.Automation.CompletionResultType.ParameterValue, "StringIn"); + } + if (global::System.String.IsNullOrEmpty(wordToComplete) || "StringNotIn".StartsWith(wordToComplete, global::System.StringComparison.InvariantCultureIgnoreCase)) + { + yield return new global::System.Management.Automation.CompletionResult("'StringNotIn'", "StringNotIn", global::System.Management.Automation.CompletionResultType.ParameterValue, "StringNotIn"); + } + if (global::System.String.IsNullOrEmpty(wordToComplete) || "StringBeginsWith".StartsWith(wordToComplete, global::System.StringComparison.InvariantCultureIgnoreCase)) + { + yield return new global::System.Management.Automation.CompletionResult("'StringBeginsWith'", "StringBeginsWith", global::System.Management.Automation.CompletionResultType.ParameterValue, "StringBeginsWith"); + } + if (global::System.String.IsNullOrEmpty(wordToComplete) || "StringEndsWith".StartsWith(wordToComplete, global::System.StringComparison.InvariantCultureIgnoreCase)) + { + yield return new global::System.Management.Automation.CompletionResult("'StringEndsWith'", "StringEndsWith", global::System.Management.Automation.CompletionResultType.ParameterValue, "StringEndsWith"); + } + if (global::System.String.IsNullOrEmpty(wordToComplete) || "StringContains".StartsWith(wordToComplete, global::System.StringComparison.InvariantCultureIgnoreCase)) + { + yield return new global::System.Management.Automation.CompletionResult("'StringContains'", "StringContains", global::System.Management.Automation.CompletionResultType.ParameterValue, "StringContains"); + } + if (global::System.String.IsNullOrEmpty(wordToComplete) || "NumberInRange".StartsWith(wordToComplete, global::System.StringComparison.InvariantCultureIgnoreCase)) + { + yield return new global::System.Management.Automation.CompletionResult("'NumberInRange'", "NumberInRange", global::System.Management.Automation.CompletionResultType.ParameterValue, "NumberInRange"); + } + if (global::System.String.IsNullOrEmpty(wordToComplete) || "NumberNotInRange".StartsWith(wordToComplete, global::System.StringComparison.InvariantCultureIgnoreCase)) + { + yield return new global::System.Management.Automation.CompletionResult("'NumberNotInRange'", "NumberNotInRange", global::System.Management.Automation.CompletionResultType.ParameterValue, "NumberNotInRange"); + } + if (global::System.String.IsNullOrEmpty(wordToComplete) || "StringNotBeginsWith".StartsWith(wordToComplete, global::System.StringComparison.InvariantCultureIgnoreCase)) + { + yield return new global::System.Management.Automation.CompletionResult("'StringNotBeginsWith'", "StringNotBeginsWith", global::System.Management.Automation.CompletionResultType.ParameterValue, "StringNotBeginsWith"); + } + if (global::System.String.IsNullOrEmpty(wordToComplete) || "StringNotEndsWith".StartsWith(wordToComplete, global::System.StringComparison.InvariantCultureIgnoreCase)) + { + yield return new global::System.Management.Automation.CompletionResult("'StringNotEndsWith'", "StringNotEndsWith", global::System.Management.Automation.CompletionResultType.ParameterValue, "StringNotEndsWith"); + } + if (global::System.String.IsNullOrEmpty(wordToComplete) || "StringNotContains".StartsWith(wordToComplete, global::System.StringComparison.InvariantCultureIgnoreCase)) + { + yield return new global::System.Management.Automation.CompletionResult("'StringNotContains'", "StringNotContains", global::System.Management.Automation.CompletionResultType.ParameterValue, "StringNotContains"); + } + if (global::System.String.IsNullOrEmpty(wordToComplete) || "IsNullOrUndefined".StartsWith(wordToComplete, global::System.StringComparison.InvariantCultureIgnoreCase)) + { + yield return new global::System.Management.Automation.CompletionResult("'IsNullOrUndefined'", "IsNullOrUndefined", global::System.Management.Automation.CompletionResultType.ParameterValue, "IsNullOrUndefined"); + } + if (global::System.String.IsNullOrEmpty(wordToComplete) || "IsNotNull".StartsWith(wordToComplete, global::System.StringComparison.InvariantCultureIgnoreCase)) + { + yield return new global::System.Management.Automation.CompletionResult("'IsNotNull'", "IsNotNull", global::System.Management.Automation.CompletionResultType.ParameterValue, "IsNotNull"); + } + } + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Support/AdvancedFilterOperatorType.TypeConverter.cs b/swaggerci/eventgrid/generated/api/Support/AdvancedFilterOperatorType.TypeConverter.cs new file mode 100644 index 000000000000..48002db2ed1f --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Support/AdvancedFilterOperatorType.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.EventGrid.Support +{ + + /// + /// The operator type used for filtering, e.g., NumberIn, StringContains, BoolEquals and others. + /// + public partial class AdvancedFilterOperatorTypeTypeConverter : + global::System.Management.Automation.PSTypeConverter + { + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the to convert from + /// the to convert 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) => AdvancedFilterOperatorType.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/eventgrid/generated/api/Support/AdvancedFilterOperatorType.cs b/swaggerci/eventgrid/generated/api/Support/AdvancedFilterOperatorType.cs new file mode 100644 index 000000000000..e64e3d5fff2c --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Support/AdvancedFilterOperatorType.cs @@ -0,0 +1,136 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support +{ + + /// + /// The operator type used for filtering, e.g., NumberIn, StringContains, BoolEquals and others. + /// + public partial struct AdvancedFilterOperatorType : + System.IEquatable + { + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.AdvancedFilterOperatorType BoolEquals = @"BoolEquals"; + + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.AdvancedFilterOperatorType IsNotNull = @"IsNotNull"; + + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.AdvancedFilterOperatorType IsNullOrUndefined = @"IsNullOrUndefined"; + + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.AdvancedFilterOperatorType NumberGreaterThan = @"NumberGreaterThan"; + + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.AdvancedFilterOperatorType NumberGreaterThanOrEquals = @"NumberGreaterThanOrEquals"; + + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.AdvancedFilterOperatorType NumberIn = @"NumberIn"; + + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.AdvancedFilterOperatorType NumberInRange = @"NumberInRange"; + + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.AdvancedFilterOperatorType NumberLessThan = @"NumberLessThan"; + + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.AdvancedFilterOperatorType NumberLessThanOrEquals = @"NumberLessThanOrEquals"; + + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.AdvancedFilterOperatorType NumberNotIn = @"NumberNotIn"; + + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.AdvancedFilterOperatorType NumberNotInRange = @"NumberNotInRange"; + + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.AdvancedFilterOperatorType StringBeginsWith = @"StringBeginsWith"; + + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.AdvancedFilterOperatorType StringContains = @"StringContains"; + + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.AdvancedFilterOperatorType StringEndsWith = @"StringEndsWith"; + + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.AdvancedFilterOperatorType StringIn = @"StringIn"; + + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.AdvancedFilterOperatorType StringNotBeginsWith = @"StringNotBeginsWith"; + + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.AdvancedFilterOperatorType StringNotContains = @"StringNotContains"; + + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.AdvancedFilterOperatorType StringNotEndsWith = @"StringNotEndsWith"; + + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.AdvancedFilterOperatorType StringNotIn = @"StringNotIn"; + + /// + /// 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 AdvancedFilterOperatorType(string underlyingValue) + { + this._value = underlyingValue; + } + + /// Conversion from arbitrary object to AdvancedFilterOperatorType + /// the value to convert to an instance of . + internal static object CreateFrom(object value) + { + return new AdvancedFilterOperatorType(global::System.Convert.ToString(value)); + } + + /// Compares values of enum type AdvancedFilterOperatorType + /// 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.EventGrid.Support.AdvancedFilterOperatorType e) + { + return _value.Equals(e._value); + } + + /// Compares values of enum type AdvancedFilterOperatorType (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 AdvancedFilterOperatorType && Equals((AdvancedFilterOperatorType)obj); + } + + /// Returns hashCode for enum AdvancedFilterOperatorType + /// The hashCode of the value + public override int GetHashCode() + { + return this._value.GetHashCode(); + } + + /// Returns string representation for AdvancedFilterOperatorType + /// A string for this value. + public override string ToString() + { + return this._value; + } + + /// Implicit operator to convert string to AdvancedFilterOperatorType + /// the value to convert to an instance of . + + public static implicit operator AdvancedFilterOperatorType(string value) + { + return new AdvancedFilterOperatorType(value); + } + + /// Implicit operator to convert AdvancedFilterOperatorType to string + /// the value to convert to an instance of . + + public static implicit operator string(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.AdvancedFilterOperatorType e) + { + return e._value; + } + + /// Overriding != operator for enum AdvancedFilterOperatorType + /// 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.EventGrid.Support.AdvancedFilterOperatorType e1, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.AdvancedFilterOperatorType e2) + { + return !e2.Equals(e1); + } + + /// Overriding == operator for enum AdvancedFilterOperatorType + /// 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.EventGrid.Support.AdvancedFilterOperatorType e1, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.AdvancedFilterOperatorType e2) + { + return e2.Equals(e1); + } + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Support/ChannelProvisioningState.Completer.cs b/swaggerci/eventgrid/generated/api/Support/ChannelProvisioningState.Completer.cs new file mode 100644 index 000000000000..3ede15875339 --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Support/ChannelProvisioningState.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.EventGrid.Support +{ + + /// Provisioning state of the channel. + [System.ComponentModel.TypeConverter(typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.ChannelProvisioningStateTypeConverter))] + public partial struct ChannelProvisioningState : + System.Management.Automation.IArgumentCompleter + { + + /// + /// Implementations of this function are called by PowerShell to complete arguments. + /// + /// The name of the command that needs argument completion. + /// The name of the parameter that needs argument completion. + /// The (possibly empty) word being completed. + /// The command ast in case it is needed for completion. + /// This parameter is similar to $PSBoundParameters, except that sometimes PowerShell cannot + /// or will not attempt to evaluate an argument, in which case you may need to use commandAst. + /// + /// A collection of completion results, most like with ResultType set to ParameterValue. + /// + public global::System.Collections.Generic.IEnumerable CompleteArgument(global::System.String commandName, global::System.String parameterName, global::System.String wordToComplete, global::System.Management.Automation.Language.CommandAst commandAst, global::System.Collections.IDictionary fakeBoundParameters) + { + if (global::System.String.IsNullOrEmpty(wordToComplete) || "Creating".StartsWith(wordToComplete, global::System.StringComparison.InvariantCultureIgnoreCase)) + { + yield return new global::System.Management.Automation.CompletionResult("'Creating'", "Creating", global::System.Management.Automation.CompletionResultType.ParameterValue, "Creating"); + } + if (global::System.String.IsNullOrEmpty(wordToComplete) || "Updating".StartsWith(wordToComplete, global::System.StringComparison.InvariantCultureIgnoreCase)) + { + yield return new global::System.Management.Automation.CompletionResult("'Updating'", "Updating", global::System.Management.Automation.CompletionResultType.ParameterValue, "Updating"); + } + if (global::System.String.IsNullOrEmpty(wordToComplete) || "Deleting".StartsWith(wordToComplete, global::System.StringComparison.InvariantCultureIgnoreCase)) + { + yield return new global::System.Management.Automation.CompletionResult("'Deleting'", "Deleting", global::System.Management.Automation.CompletionResultType.ParameterValue, "Deleting"); + } + if (global::System.String.IsNullOrEmpty(wordToComplete) || "Succeeded".StartsWith(wordToComplete, global::System.StringComparison.InvariantCultureIgnoreCase)) + { + yield return new global::System.Management.Automation.CompletionResult("'Succeeded'", "Succeeded", global::System.Management.Automation.CompletionResultType.ParameterValue, "Succeeded"); + } + if (global::System.String.IsNullOrEmpty(wordToComplete) || "Canceled".StartsWith(wordToComplete, global::System.StringComparison.InvariantCultureIgnoreCase)) + { + yield return new global::System.Management.Automation.CompletionResult("'Canceled'", "Canceled", global::System.Management.Automation.CompletionResultType.ParameterValue, "Canceled"); + } + if (global::System.String.IsNullOrEmpty(wordToComplete) || "Failed".StartsWith(wordToComplete, global::System.StringComparison.InvariantCultureIgnoreCase)) + { + yield return new global::System.Management.Automation.CompletionResult("'Failed'", "Failed", global::System.Management.Automation.CompletionResultType.ParameterValue, "Failed"); + } + } + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Support/ChannelProvisioningState.TypeConverter.cs b/swaggerci/eventgrid/generated/api/Support/ChannelProvisioningState.TypeConverter.cs new file mode 100644 index 000000000000..bf6b528b758c --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Support/ChannelProvisioningState.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.EventGrid.Support +{ + + /// Provisioning state of the channel. + public partial class ChannelProvisioningStateTypeConverter : + global::System.Management.Automation.PSTypeConverter + { + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the to convert from + /// the to convert 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) => ChannelProvisioningState.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/eventgrid/generated/api/Support/ChannelProvisioningState.cs b/swaggerci/eventgrid/generated/api/Support/ChannelProvisioningState.cs new file mode 100644 index 000000000000..06f71455fbbc --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Support/ChannelProvisioningState.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.EventGrid.Support +{ + + /// Provisioning state of the channel. + public partial struct ChannelProvisioningState : + System.IEquatable + { + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.ChannelProvisioningState Canceled = @"Canceled"; + + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.ChannelProvisioningState Creating = @"Creating"; + + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.ChannelProvisioningState Deleting = @"Deleting"; + + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.ChannelProvisioningState Failed = @"Failed"; + + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.ChannelProvisioningState Succeeded = @"Succeeded"; + + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.ChannelProvisioningState Updating = @"Updating"; + + /// the value for an instance of the Enum. + private string _value { get; set; } + + /// Creates an instance of the + /// the value to create an instance for. + private ChannelProvisioningState(string underlyingValue) + { + this._value = underlyingValue; + } + + /// Conversion from arbitrary object to ChannelProvisioningState + /// the value to convert to an instance of . + internal static object CreateFrom(object value) + { + return new ChannelProvisioningState(global::System.Convert.ToString(value)); + } + + /// Compares values of enum type ChannelProvisioningState + /// 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.EventGrid.Support.ChannelProvisioningState e) + { + return _value.Equals(e._value); + } + + /// Compares values of enum type ChannelProvisioningState (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 ChannelProvisioningState && Equals((ChannelProvisioningState)obj); + } + + /// Returns hashCode for enum ChannelProvisioningState + /// The hashCode of the value + public override int GetHashCode() + { + return this._value.GetHashCode(); + } + + /// Returns string representation for ChannelProvisioningState + /// A string for this value. + public override string ToString() + { + return this._value; + } + + /// Implicit operator to convert string to ChannelProvisioningState + /// the value to convert to an instance of . + + public static implicit operator ChannelProvisioningState(string value) + { + return new ChannelProvisioningState(value); + } + + /// Implicit operator to convert ChannelProvisioningState to string + /// the value to convert to an instance of . + + public static implicit operator string(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.ChannelProvisioningState e) + { + return e._value; + } + + /// Overriding != operator for enum ChannelProvisioningState + /// 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.EventGrid.Support.ChannelProvisioningState e1, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.ChannelProvisioningState e2) + { + return !e2.Equals(e1); + } + + /// Overriding == operator for enum ChannelProvisioningState + /// 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.EventGrid.Support.ChannelProvisioningState e1, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.ChannelProvisioningState e2) + { + return e2.Equals(e1); + } + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Support/ChannelType.Completer.cs b/swaggerci/eventgrid/generated/api/Support/ChannelType.Completer.cs new file mode 100644 index 000000000000..3ab86130751a --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Support/ChannelType.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.EventGrid.Support +{ + + /// The type of the event channel which represents the direction flow of events. + [System.ComponentModel.TypeConverter(typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.ChannelTypeTypeConverter))] + public partial struct ChannelType : + 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) || "PartnerTopic".StartsWith(wordToComplete, global::System.StringComparison.InvariantCultureIgnoreCase)) + { + yield return new global::System.Management.Automation.CompletionResult("'PartnerTopic'", "PartnerTopic", global::System.Management.Automation.CompletionResultType.ParameterValue, "PartnerTopic"); + } + if (global::System.String.IsNullOrEmpty(wordToComplete) || "PartnerDestination".StartsWith(wordToComplete, global::System.StringComparison.InvariantCultureIgnoreCase)) + { + yield return new global::System.Management.Automation.CompletionResult("'PartnerDestination'", "PartnerDestination", global::System.Management.Automation.CompletionResultType.ParameterValue, "PartnerDestination"); + } + } + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Support/ChannelType.TypeConverter.cs b/swaggerci/eventgrid/generated/api/Support/ChannelType.TypeConverter.cs new file mode 100644 index 000000000000..c3668dec1314 --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Support/ChannelType.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.EventGrid.Support +{ + + /// The type of the event channel which represents the direction flow of events. + public partial class ChannelTypeTypeConverter : + global::System.Management.Automation.PSTypeConverter + { + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the to convert from + /// the to convert 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) => ChannelType.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/eventgrid/generated/api/Support/ChannelType.cs b/swaggerci/eventgrid/generated/api/Support/ChannelType.cs new file mode 100644 index 000000000000..9573465bd31f --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Support/ChannelType.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.EventGrid.Support +{ + + /// The type of the event channel which represents the direction flow of events. + public partial struct ChannelType : + System.IEquatable + { + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.ChannelType PartnerDestination = @"PartnerDestination"; + + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.ChannelType PartnerTopic = @"PartnerTopic"; + + /// 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 ChannelType(string underlyingValue) + { + this._value = underlyingValue; + } + + /// Conversion from arbitrary object to ChannelType + /// the value to convert to an instance of . + internal static object CreateFrom(object value) + { + return new ChannelType(global::System.Convert.ToString(value)); + } + + /// Compares values of enum type ChannelType + /// 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.EventGrid.Support.ChannelType e) + { + return _value.Equals(e._value); + } + + /// Compares values of enum type ChannelType (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 ChannelType && Equals((ChannelType)obj); + } + + /// Returns hashCode for enum ChannelType + /// The hashCode of the value + public override int GetHashCode() + { + return this._value.GetHashCode(); + } + + /// Returns string representation for ChannelType + /// A string for this value. + public override string ToString() + { + return this._value; + } + + /// Implicit operator to convert string to ChannelType + /// the value to convert to an instance of . + + public static implicit operator ChannelType(string value) + { + return new ChannelType(value); + } + + /// Implicit operator to convert ChannelType to string + /// the value to convert to an instance of . + + public static implicit operator string(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.ChannelType e) + { + return e._value; + } + + /// Overriding != operator for enum ChannelType + /// 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.EventGrid.Support.ChannelType e1, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.ChannelType e2) + { + return !e2.Equals(e1); + } + + /// Overriding == operator for enum ChannelType + /// 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.EventGrid.Support.ChannelType e1, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.ChannelType e2) + { + return e2.Equals(e1); + } + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Support/CreatedByType.Completer.cs b/swaggerci/eventgrid/generated/api/Support/CreatedByType.Completer.cs new file mode 100644 index 000000000000..d896c8999a96 --- /dev/null +++ b/swaggerci/eventgrid/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.EventGrid.Support +{ + + /// The type of identity that created the resource. + [System.ComponentModel.TypeConverter(typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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/eventgrid/generated/api/Support/CreatedByType.TypeConverter.cs b/swaggerci/eventgrid/generated/api/Support/CreatedByType.TypeConverter.cs new file mode 100644 index 000000000000..fd0ca2ff450a --- /dev/null +++ b/swaggerci/eventgrid/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.EventGrid.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/eventgrid/generated/api/Support/CreatedByType.cs b/swaggerci/eventgrid/generated/api/Support/CreatedByType.cs new file mode 100644 index 000000000000..5b8394c653f0 --- /dev/null +++ b/swaggerci/eventgrid/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.EventGrid.Support +{ + + /// The type of identity that created the resource. + public partial struct CreatedByType : + System.IEquatable + { + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.CreatedByType Application = @"Application"; + + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.CreatedByType Key = @"Key"; + + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.CreatedByType ManagedIdentity = @"ManagedIdentity"; + + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.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.EventGrid.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.EventGrid.Support.CreatedByType e1, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Support.CreatedByType e1, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.CreatedByType e2) + { + return e2.Equals(e1); + } + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Support/DataResidencyBoundary.Completer.cs b/swaggerci/eventgrid/generated/api/Support/DataResidencyBoundary.Completer.cs new file mode 100644 index 000000000000..b9c56ac57721 --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Support/DataResidencyBoundary.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.EventGrid.Support +{ + + /// Data Residency Boundary of the resource. + [System.ComponentModel.TypeConverter(typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.DataResidencyBoundaryTypeConverter))] + public partial struct DataResidencyBoundary : + 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) || "WithinGeopair".StartsWith(wordToComplete, global::System.StringComparison.InvariantCultureIgnoreCase)) + { + yield return new global::System.Management.Automation.CompletionResult("'WithinGeopair'", "WithinGeopair", global::System.Management.Automation.CompletionResultType.ParameterValue, "WithinGeopair"); + } + if (global::System.String.IsNullOrEmpty(wordToComplete) || "WithinRegion".StartsWith(wordToComplete, global::System.StringComparison.InvariantCultureIgnoreCase)) + { + yield return new global::System.Management.Automation.CompletionResult("'WithinRegion'", "WithinRegion", global::System.Management.Automation.CompletionResultType.ParameterValue, "WithinRegion"); + } + } + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Support/DataResidencyBoundary.TypeConverter.cs b/swaggerci/eventgrid/generated/api/Support/DataResidencyBoundary.TypeConverter.cs new file mode 100644 index 000000000000..81318217c5fb --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Support/DataResidencyBoundary.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.EventGrid.Support +{ + + /// Data Residency Boundary of the resource. + public partial class DataResidencyBoundaryTypeConverter : + global::System.Management.Automation.PSTypeConverter + { + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the to convert from + /// the to convert 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) => DataResidencyBoundary.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/eventgrid/generated/api/Support/DataResidencyBoundary.cs b/swaggerci/eventgrid/generated/api/Support/DataResidencyBoundary.cs new file mode 100644 index 000000000000..b16fcf2aad79 --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Support/DataResidencyBoundary.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.EventGrid.Support +{ + + /// Data Residency Boundary of the resource. + public partial struct DataResidencyBoundary : + System.IEquatable + { + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.DataResidencyBoundary WithinGeopair = @"WithinGeopair"; + + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.DataResidencyBoundary WithinRegion = @"WithinRegion"; + + /// the value for an instance of the Enum. + private string _value { get; set; } + + /// Conversion from arbitrary object to DataResidencyBoundary + /// the value to convert to an instance of . + internal static object CreateFrom(object value) + { + return new DataResidencyBoundary(global::System.Convert.ToString(value)); + } + + /// Creates an instance of the + /// the value to create an instance for. + private DataResidencyBoundary(string underlyingValue) + { + this._value = underlyingValue; + } + + /// Compares values of enum type DataResidencyBoundary + /// 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.EventGrid.Support.DataResidencyBoundary e) + { + return _value.Equals(e._value); + } + + /// Compares values of enum type DataResidencyBoundary (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 DataResidencyBoundary && Equals((DataResidencyBoundary)obj); + } + + /// Returns hashCode for enum DataResidencyBoundary + /// The hashCode of the value + public override int GetHashCode() + { + return this._value.GetHashCode(); + } + + /// Returns string representation for DataResidencyBoundary + /// A string for this value. + public override string ToString() + { + return this._value; + } + + /// Implicit operator to convert string to DataResidencyBoundary + /// the value to convert to an instance of . + + public static implicit operator DataResidencyBoundary(string value) + { + return new DataResidencyBoundary(value); + } + + /// Implicit operator to convert DataResidencyBoundary to string + /// the value to convert to an instance of . + + public static implicit operator string(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.DataResidencyBoundary e) + { + return e._value; + } + + /// Overriding != operator for enum DataResidencyBoundary + /// 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.EventGrid.Support.DataResidencyBoundary e1, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.DataResidencyBoundary e2) + { + return !e2.Equals(e1); + } + + /// Overriding == operator for enum DataResidencyBoundary + /// 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.EventGrid.Support.DataResidencyBoundary e1, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.DataResidencyBoundary e2) + { + return e2.Equals(e1); + } + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Support/DeliveryAttributeMappingType.Completer.cs b/swaggerci/eventgrid/generated/api/Support/DeliveryAttributeMappingType.Completer.cs new file mode 100644 index 000000000000..f5220601609a --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Support/DeliveryAttributeMappingType.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.EventGrid.Support +{ + + /// Type of the delivery attribute or header name. + [System.ComponentModel.TypeConverter(typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.DeliveryAttributeMappingTypeTypeConverter))] + public partial struct DeliveryAttributeMappingType : + 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) || "Static".StartsWith(wordToComplete, global::System.StringComparison.InvariantCultureIgnoreCase)) + { + yield return new global::System.Management.Automation.CompletionResult("'Static'", "Static", global::System.Management.Automation.CompletionResultType.ParameterValue, "Static"); + } + if (global::System.String.IsNullOrEmpty(wordToComplete) || "Dynamic".StartsWith(wordToComplete, global::System.StringComparison.InvariantCultureIgnoreCase)) + { + yield return new global::System.Management.Automation.CompletionResult("'Dynamic'", "Dynamic", global::System.Management.Automation.CompletionResultType.ParameterValue, "Dynamic"); + } + } + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Support/DeliveryAttributeMappingType.TypeConverter.cs b/swaggerci/eventgrid/generated/api/Support/DeliveryAttributeMappingType.TypeConverter.cs new file mode 100644 index 000000000000..c7f3098c67be --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Support/DeliveryAttributeMappingType.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.EventGrid.Support +{ + + /// Type of the delivery attribute or header name. + public partial class DeliveryAttributeMappingTypeTypeConverter : + global::System.Management.Automation.PSTypeConverter + { + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the to convert from + /// the to convert 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) => DeliveryAttributeMappingType.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/eventgrid/generated/api/Support/DeliveryAttributeMappingType.cs b/swaggerci/eventgrid/generated/api/Support/DeliveryAttributeMappingType.cs new file mode 100644 index 000000000000..1713107f1812 --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Support/DeliveryAttributeMappingType.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.EventGrid.Support +{ + + /// Type of the delivery attribute or header name. + public partial struct DeliveryAttributeMappingType : + System.IEquatable + { + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.DeliveryAttributeMappingType Dynamic = @"Dynamic"; + + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.DeliveryAttributeMappingType Static = @"Static"; + + /// + /// the value for an instance of the Enum. + /// + private string _value { get; set; } + + /// Conversion from arbitrary object to DeliveryAttributeMappingType + /// the value to convert to an instance of . + internal static object CreateFrom(object value) + { + return new DeliveryAttributeMappingType(global::System.Convert.ToString(value)); + } + + /// + /// Creates an instance of the + /// + /// the value to create an instance for. + private DeliveryAttributeMappingType(string underlyingValue) + { + this._value = underlyingValue; + } + + /// Compares values of enum type DeliveryAttributeMappingType + /// 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.EventGrid.Support.DeliveryAttributeMappingType e) + { + return _value.Equals(e._value); + } + + /// Compares values of enum type DeliveryAttributeMappingType (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 DeliveryAttributeMappingType && Equals((DeliveryAttributeMappingType)obj); + } + + /// Returns hashCode for enum DeliveryAttributeMappingType + /// The hashCode of the value + public override int GetHashCode() + { + return this._value.GetHashCode(); + } + + /// Returns string representation for DeliveryAttributeMappingType + /// A string for this value. + public override string ToString() + { + return this._value; + } + + /// Implicit operator to convert string to DeliveryAttributeMappingType + /// the value to convert to an instance of . + + public static implicit operator DeliveryAttributeMappingType(string value) + { + return new DeliveryAttributeMappingType(value); + } + + /// Implicit operator to convert DeliveryAttributeMappingType to string + /// the value to convert to an instance of . + + public static implicit operator string(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.DeliveryAttributeMappingType e) + { + return e._value; + } + + /// Overriding != operator for enum DeliveryAttributeMappingType + /// 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.EventGrid.Support.DeliveryAttributeMappingType e1, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.DeliveryAttributeMappingType e2) + { + return !e2.Equals(e1); + } + + /// Overriding == operator for enum DeliveryAttributeMappingType + /// 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.EventGrid.Support.DeliveryAttributeMappingType e1, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.DeliveryAttributeMappingType e2) + { + return e2.Equals(e1); + } + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Support/DomainProvisioningState.Completer.cs b/swaggerci/eventgrid/generated/api/Support/DomainProvisioningState.Completer.cs new file mode 100644 index 000000000000..af5f154ff100 --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Support/DomainProvisioningState.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.EventGrid.Support +{ + + /// Provisioning state of the Event Grid Domain Resource. + [System.ComponentModel.TypeConverter(typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.DomainProvisioningStateTypeConverter))] + public partial struct DomainProvisioningState : + System.Management.Automation.IArgumentCompleter + { + + /// + /// Implementations of this function are called by PowerShell to complete arguments. + /// + /// The name of the command that needs argument completion. + /// The name of the parameter that needs argument completion. + /// The (possibly empty) word being completed. + /// The command ast in case it is needed for completion. + /// This parameter is similar to $PSBoundParameters, except that sometimes PowerShell cannot + /// or will not attempt to evaluate an argument, in which case you may need to use commandAst. + /// + /// A collection of completion results, most like with ResultType set to ParameterValue. + /// + public global::System.Collections.Generic.IEnumerable CompleteArgument(global::System.String commandName, global::System.String parameterName, global::System.String wordToComplete, global::System.Management.Automation.Language.CommandAst commandAst, global::System.Collections.IDictionary fakeBoundParameters) + { + if (global::System.String.IsNullOrEmpty(wordToComplete) || "Creating".StartsWith(wordToComplete, global::System.StringComparison.InvariantCultureIgnoreCase)) + { + yield return new global::System.Management.Automation.CompletionResult("'Creating'", "Creating", global::System.Management.Automation.CompletionResultType.ParameterValue, "Creating"); + } + if (global::System.String.IsNullOrEmpty(wordToComplete) || "Updating".StartsWith(wordToComplete, global::System.StringComparison.InvariantCultureIgnoreCase)) + { + yield return new global::System.Management.Automation.CompletionResult("'Updating'", "Updating", global::System.Management.Automation.CompletionResultType.ParameterValue, "Updating"); + } + if (global::System.String.IsNullOrEmpty(wordToComplete) || "Deleting".StartsWith(wordToComplete, global::System.StringComparison.InvariantCultureIgnoreCase)) + { + yield return new global::System.Management.Automation.CompletionResult("'Deleting'", "Deleting", global::System.Management.Automation.CompletionResultType.ParameterValue, "Deleting"); + } + if (global::System.String.IsNullOrEmpty(wordToComplete) || "Succeeded".StartsWith(wordToComplete, global::System.StringComparison.InvariantCultureIgnoreCase)) + { + yield return new global::System.Management.Automation.CompletionResult("'Succeeded'", "Succeeded", global::System.Management.Automation.CompletionResultType.ParameterValue, "Succeeded"); + } + if (global::System.String.IsNullOrEmpty(wordToComplete) || "Canceled".StartsWith(wordToComplete, global::System.StringComparison.InvariantCultureIgnoreCase)) + { + yield return new global::System.Management.Automation.CompletionResult("'Canceled'", "Canceled", global::System.Management.Automation.CompletionResultType.ParameterValue, "Canceled"); + } + if (global::System.String.IsNullOrEmpty(wordToComplete) || "Failed".StartsWith(wordToComplete, global::System.StringComparison.InvariantCultureIgnoreCase)) + { + yield return new global::System.Management.Automation.CompletionResult("'Failed'", "Failed", global::System.Management.Automation.CompletionResultType.ParameterValue, "Failed"); + } + } + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Support/DomainProvisioningState.TypeConverter.cs b/swaggerci/eventgrid/generated/api/Support/DomainProvisioningState.TypeConverter.cs new file mode 100644 index 000000000000..41a3a6969f23 --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Support/DomainProvisioningState.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.EventGrid.Support +{ + + /// Provisioning state of the Event Grid Domain Resource. + public partial class DomainProvisioningStateTypeConverter : + global::System.Management.Automation.PSTypeConverter + { + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the to convert from + /// the to convert 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) => DomainProvisioningState.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/eventgrid/generated/api/Support/DomainProvisioningState.cs b/swaggerci/eventgrid/generated/api/Support/DomainProvisioningState.cs new file mode 100644 index 000000000000..946706461a0d --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Support/DomainProvisioningState.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.EventGrid.Support +{ + + /// Provisioning state of the Event Grid Domain Resource. + public partial struct DomainProvisioningState : + System.IEquatable + { + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.DomainProvisioningState Canceled = @"Canceled"; + + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.DomainProvisioningState Creating = @"Creating"; + + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.DomainProvisioningState Deleting = @"Deleting"; + + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.DomainProvisioningState Failed = @"Failed"; + + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.DomainProvisioningState Succeeded = @"Succeeded"; + + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.DomainProvisioningState Updating = @"Updating"; + + /// the value for an instance of the Enum. + private string _value { get; set; } + + /// Conversion from arbitrary object to DomainProvisioningState + /// the value to convert to an instance of . + internal static object CreateFrom(object value) + { + return new DomainProvisioningState(global::System.Convert.ToString(value)); + } + + /// Creates an instance of the + /// the value to create an instance for. + private DomainProvisioningState(string underlyingValue) + { + this._value = underlyingValue; + } + + /// Compares values of enum type DomainProvisioningState + /// 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.EventGrid.Support.DomainProvisioningState e) + { + return _value.Equals(e._value); + } + + /// Compares values of enum type DomainProvisioningState (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 DomainProvisioningState && Equals((DomainProvisioningState)obj); + } + + /// Returns hashCode for enum DomainProvisioningState + /// The hashCode of the value + public override int GetHashCode() + { + return this._value.GetHashCode(); + } + + /// Returns string representation for DomainProvisioningState + /// A string for this value. + public override string ToString() + { + return this._value; + } + + /// Implicit operator to convert string to DomainProvisioningState + /// the value to convert to an instance of . + + public static implicit operator DomainProvisioningState(string value) + { + return new DomainProvisioningState(value); + } + + /// Implicit operator to convert DomainProvisioningState to string + /// the value to convert to an instance of . + + public static implicit operator string(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.DomainProvisioningState e) + { + return e._value; + } + + /// Overriding != operator for enum DomainProvisioningState + /// 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.EventGrid.Support.DomainProvisioningState e1, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.DomainProvisioningState e2) + { + return !e2.Equals(e1); + } + + /// Overriding == operator for enum DomainProvisioningState + /// 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.EventGrid.Support.DomainProvisioningState e1, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.DomainProvisioningState e2) + { + return e2.Equals(e1); + } + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Support/DomainTopicProvisioningState.Completer.cs b/swaggerci/eventgrid/generated/api/Support/DomainTopicProvisioningState.Completer.cs new file mode 100644 index 000000000000..649ee581b495 --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Support/DomainTopicProvisioningState.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.EventGrid.Support +{ + + /// Provisioning state of the domain topic. + [System.ComponentModel.TypeConverter(typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.DomainTopicProvisioningStateTypeConverter))] + public partial struct DomainTopicProvisioningState : + System.Management.Automation.IArgumentCompleter + { + + /// + /// Implementations of this function are called by PowerShell to complete arguments. + /// + /// The name of the command that needs argument completion. + /// The name of the parameter that needs argument completion. + /// The (possibly empty) word being completed. + /// The command ast in case it is needed for completion. + /// This parameter is similar to $PSBoundParameters, except that sometimes PowerShell cannot + /// or will not attempt to evaluate an argument, in which case you may need to use commandAst. + /// + /// A collection of completion results, most like with ResultType set to ParameterValue. + /// + public global::System.Collections.Generic.IEnumerable CompleteArgument(global::System.String commandName, global::System.String parameterName, global::System.String wordToComplete, global::System.Management.Automation.Language.CommandAst commandAst, global::System.Collections.IDictionary fakeBoundParameters) + { + if (global::System.String.IsNullOrEmpty(wordToComplete) || "Creating".StartsWith(wordToComplete, global::System.StringComparison.InvariantCultureIgnoreCase)) + { + yield return new global::System.Management.Automation.CompletionResult("'Creating'", "Creating", global::System.Management.Automation.CompletionResultType.ParameterValue, "Creating"); + } + if (global::System.String.IsNullOrEmpty(wordToComplete) || "Updating".StartsWith(wordToComplete, global::System.StringComparison.InvariantCultureIgnoreCase)) + { + yield return new global::System.Management.Automation.CompletionResult("'Updating'", "Updating", global::System.Management.Automation.CompletionResultType.ParameterValue, "Updating"); + } + if (global::System.String.IsNullOrEmpty(wordToComplete) || "Deleting".StartsWith(wordToComplete, global::System.StringComparison.InvariantCultureIgnoreCase)) + { + yield return new global::System.Management.Automation.CompletionResult("'Deleting'", "Deleting", global::System.Management.Automation.CompletionResultType.ParameterValue, "Deleting"); + } + if (global::System.String.IsNullOrEmpty(wordToComplete) || "Succeeded".StartsWith(wordToComplete, global::System.StringComparison.InvariantCultureIgnoreCase)) + { + yield return new global::System.Management.Automation.CompletionResult("'Succeeded'", "Succeeded", global::System.Management.Automation.CompletionResultType.ParameterValue, "Succeeded"); + } + if (global::System.String.IsNullOrEmpty(wordToComplete) || "Canceled".StartsWith(wordToComplete, global::System.StringComparison.InvariantCultureIgnoreCase)) + { + yield return new global::System.Management.Automation.CompletionResult("'Canceled'", "Canceled", global::System.Management.Automation.CompletionResultType.ParameterValue, "Canceled"); + } + if (global::System.String.IsNullOrEmpty(wordToComplete) || "Failed".StartsWith(wordToComplete, global::System.StringComparison.InvariantCultureIgnoreCase)) + { + yield return new global::System.Management.Automation.CompletionResult("'Failed'", "Failed", global::System.Management.Automation.CompletionResultType.ParameterValue, "Failed"); + } + } + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Support/DomainTopicProvisioningState.TypeConverter.cs b/swaggerci/eventgrid/generated/api/Support/DomainTopicProvisioningState.TypeConverter.cs new file mode 100644 index 000000000000..e6883de240b9 --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Support/DomainTopicProvisioningState.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.EventGrid.Support +{ + + /// Provisioning state of the domain topic. + public partial class DomainTopicProvisioningStateTypeConverter : + global::System.Management.Automation.PSTypeConverter + { + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the to convert from + /// the to convert 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) => DomainTopicProvisioningState.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/eventgrid/generated/api/Support/DomainTopicProvisioningState.cs b/swaggerci/eventgrid/generated/api/Support/DomainTopicProvisioningState.cs new file mode 100644 index 000000000000..236dfd309fa4 --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Support/DomainTopicProvisioningState.cs @@ -0,0 +1,110 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support +{ + + /// Provisioning state of the domain topic. + public partial struct DomainTopicProvisioningState : + System.IEquatable + { + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.DomainTopicProvisioningState Canceled = @"Canceled"; + + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.DomainTopicProvisioningState Creating = @"Creating"; + + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.DomainTopicProvisioningState Deleting = @"Deleting"; + + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.DomainTopicProvisioningState Failed = @"Failed"; + + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.DomainTopicProvisioningState Succeeded = @"Succeeded"; + + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.DomainTopicProvisioningState Updating = @"Updating"; + + /// + /// the value for an instance of the Enum. + /// + private string _value { get; set; } + + /// Conversion from arbitrary object to DomainTopicProvisioningState + /// the value to convert to an instance of . + internal static object CreateFrom(object value) + { + return new DomainTopicProvisioningState(global::System.Convert.ToString(value)); + } + + /// + /// Creates an instance of the + /// + /// the value to create an instance for. + private DomainTopicProvisioningState(string underlyingValue) + { + this._value = underlyingValue; + } + + /// Compares values of enum type DomainTopicProvisioningState + /// 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.EventGrid.Support.DomainTopicProvisioningState e) + { + return _value.Equals(e._value); + } + + /// Compares values of enum type DomainTopicProvisioningState (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 DomainTopicProvisioningState && Equals((DomainTopicProvisioningState)obj); + } + + /// Returns hashCode for enum DomainTopicProvisioningState + /// The hashCode of the value + public override int GetHashCode() + { + return this._value.GetHashCode(); + } + + /// Returns string representation for DomainTopicProvisioningState + /// A string for this value. + public override string ToString() + { + return this._value; + } + + /// Implicit operator to convert string to DomainTopicProvisioningState + /// the value to convert to an instance of . + + public static implicit operator DomainTopicProvisioningState(string value) + { + return new DomainTopicProvisioningState(value); + } + + /// Implicit operator to convert DomainTopicProvisioningState to string + /// the value to convert to an instance of . + + public static implicit operator string(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.DomainTopicProvisioningState e) + { + return e._value; + } + + /// Overriding != operator for enum DomainTopicProvisioningState + /// 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.EventGrid.Support.DomainTopicProvisioningState e1, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.DomainTopicProvisioningState e2) + { + return !e2.Equals(e1); + } + + /// Overriding == operator for enum DomainTopicProvisioningState + /// 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.EventGrid.Support.DomainTopicProvisioningState e1, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.DomainTopicProvisioningState e2) + { + return e2.Equals(e1); + } + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Support/EndpointType.Completer.cs b/swaggerci/eventgrid/generated/api/Support/EndpointType.Completer.cs new file mode 100644 index 000000000000..6aa9f7794977 --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Support/EndpointType.Completer.cs @@ -0,0 +1,63 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support +{ + + /// Type of the endpoint for the event subscription destination. + [System.ComponentModel.TypeConverter(typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EndpointTypeTypeConverter))] + public partial struct EndpointType : + 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) || "WebHook".StartsWith(wordToComplete, global::System.StringComparison.InvariantCultureIgnoreCase)) + { + yield return new global::System.Management.Automation.CompletionResult("'WebHook'", "WebHook", global::System.Management.Automation.CompletionResultType.ParameterValue, "WebHook"); + } + if (global::System.String.IsNullOrEmpty(wordToComplete) || "EventHub".StartsWith(wordToComplete, global::System.StringComparison.InvariantCultureIgnoreCase)) + { + yield return new global::System.Management.Automation.CompletionResult("'EventHub'", "EventHub", global::System.Management.Automation.CompletionResultType.ParameterValue, "EventHub"); + } + if (global::System.String.IsNullOrEmpty(wordToComplete) || "StorageQueue".StartsWith(wordToComplete, global::System.StringComparison.InvariantCultureIgnoreCase)) + { + yield return new global::System.Management.Automation.CompletionResult("'StorageQueue'", "StorageQueue", global::System.Management.Automation.CompletionResultType.ParameterValue, "StorageQueue"); + } + if (global::System.String.IsNullOrEmpty(wordToComplete) || "HybridConnection".StartsWith(wordToComplete, global::System.StringComparison.InvariantCultureIgnoreCase)) + { + yield return new global::System.Management.Automation.CompletionResult("'HybridConnection'", "HybridConnection", global::System.Management.Automation.CompletionResultType.ParameterValue, "HybridConnection"); + } + if (global::System.String.IsNullOrEmpty(wordToComplete) || "ServiceBusQueue".StartsWith(wordToComplete, global::System.StringComparison.InvariantCultureIgnoreCase)) + { + yield return new global::System.Management.Automation.CompletionResult("'ServiceBusQueue'", "ServiceBusQueue", global::System.Management.Automation.CompletionResultType.ParameterValue, "ServiceBusQueue"); + } + if (global::System.String.IsNullOrEmpty(wordToComplete) || "ServiceBusTopic".StartsWith(wordToComplete, global::System.StringComparison.InvariantCultureIgnoreCase)) + { + yield return new global::System.Management.Automation.CompletionResult("'ServiceBusTopic'", "ServiceBusTopic", global::System.Management.Automation.CompletionResultType.ParameterValue, "ServiceBusTopic"); + } + if (global::System.String.IsNullOrEmpty(wordToComplete) || "AzureFunction".StartsWith(wordToComplete, global::System.StringComparison.InvariantCultureIgnoreCase)) + { + yield return new global::System.Management.Automation.CompletionResult("'AzureFunction'", "AzureFunction", global::System.Management.Automation.CompletionResultType.ParameterValue, "AzureFunction"); + } + if (global::System.String.IsNullOrEmpty(wordToComplete) || "PartnerDestination".StartsWith(wordToComplete, global::System.StringComparison.InvariantCultureIgnoreCase)) + { + yield return new global::System.Management.Automation.CompletionResult("'PartnerDestination'", "PartnerDestination", global::System.Management.Automation.CompletionResultType.ParameterValue, "PartnerDestination"); + } + } + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Support/EndpointType.TypeConverter.cs b/swaggerci/eventgrid/generated/api/Support/EndpointType.TypeConverter.cs new file mode 100644 index 000000000000..9c91cee6fca5 --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Support/EndpointType.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.EventGrid.Support +{ + + /// Type of the endpoint for the event subscription destination. + public partial class EndpointTypeTypeConverter : + global::System.Management.Automation.PSTypeConverter + { + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the to convert from + /// the to convert 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) => EndpointType.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/eventgrid/generated/api/Support/EndpointType.cs b/swaggerci/eventgrid/generated/api/Support/EndpointType.cs new file mode 100644 index 000000000000..fe555021c525 --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Support/EndpointType.cs @@ -0,0 +1,110 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support +{ + + /// Type of the endpoint for the event subscription destination. + public partial struct EndpointType : + System.IEquatable + { + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EndpointType AzureFunction = @"AzureFunction"; + + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EndpointType EventHub = @"EventHub"; + + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EndpointType HybridConnection = @"HybridConnection"; + + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EndpointType PartnerDestination = @"PartnerDestination"; + + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EndpointType ServiceBusQueue = @"ServiceBusQueue"; + + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EndpointType ServiceBusTopic = @"ServiceBusTopic"; + + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EndpointType StorageQueue = @"StorageQueue"; + + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EndpointType WebHook = @"WebHook"; + + /// the value for an instance of the Enum. + private string _value { get; set; } + + /// Conversion from arbitrary object to EndpointType + /// the value to convert to an instance of . + internal static object CreateFrom(object value) + { + return new EndpointType(global::System.Convert.ToString(value)); + } + + /// Creates an instance of the + /// the value to create an instance for. + private EndpointType(string underlyingValue) + { + this._value = underlyingValue; + } + + /// Compares values of enum type EndpointType + /// 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.EventGrid.Support.EndpointType e) + { + return _value.Equals(e._value); + } + + /// Compares values of enum type EndpointType (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 EndpointType && Equals((EndpointType)obj); + } + + /// Returns hashCode for enum EndpointType + /// The hashCode of the value + public override int GetHashCode() + { + return this._value.GetHashCode(); + } + + /// Returns string representation for EndpointType + /// A string for this value. + public override string ToString() + { + return this._value; + } + + /// Implicit operator to convert string to EndpointType + /// the value to convert to an instance of . + + public static implicit operator EndpointType(string value) + { + return new EndpointType(value); + } + + /// Implicit operator to convert EndpointType to string + /// the value to convert to an instance of . + + public static implicit operator string(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EndpointType e) + { + return e._value; + } + + /// Overriding != operator for enum EndpointType + /// 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.EventGrid.Support.EndpointType e1, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EndpointType e2) + { + return !e2.Equals(e1); + } + + /// Overriding == operator for enum EndpointType + /// 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.EventGrid.Support.EndpointType e1, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EndpointType e2) + { + return e2.Equals(e1); + } + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Support/EventChannelProvisioningState.Completer.cs b/swaggerci/eventgrid/generated/api/Support/EventChannelProvisioningState.Completer.cs new file mode 100644 index 000000000000..bdbe967ca9f3 --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Support/EventChannelProvisioningState.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.EventGrid.Support +{ + + /// Provisioning state of the event channel. + [System.ComponentModel.TypeConverter(typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EventChannelProvisioningStateTypeConverter))] + public partial struct EventChannelProvisioningState : + System.Management.Automation.IArgumentCompleter + { + + /// + /// Implementations of this function are called by PowerShell to complete arguments. + /// + /// The name of the command that needs argument completion. + /// The name of the parameter that needs argument completion. + /// The (possibly empty) word being completed. + /// The command ast in case it is needed for completion. + /// This parameter is similar to $PSBoundParameters, except that sometimes PowerShell cannot + /// or will not attempt to evaluate an argument, in which case you may need to use commandAst. + /// + /// A collection of completion results, most like with ResultType set to ParameterValue. + /// + public global::System.Collections.Generic.IEnumerable CompleteArgument(global::System.String commandName, global::System.String parameterName, global::System.String wordToComplete, global::System.Management.Automation.Language.CommandAst commandAst, global::System.Collections.IDictionary fakeBoundParameters) + { + if (global::System.String.IsNullOrEmpty(wordToComplete) || "Creating".StartsWith(wordToComplete, global::System.StringComparison.InvariantCultureIgnoreCase)) + { + yield return new global::System.Management.Automation.CompletionResult("'Creating'", "Creating", global::System.Management.Automation.CompletionResultType.ParameterValue, "Creating"); + } + if (global::System.String.IsNullOrEmpty(wordToComplete) || "Updating".StartsWith(wordToComplete, global::System.StringComparison.InvariantCultureIgnoreCase)) + { + yield return new global::System.Management.Automation.CompletionResult("'Updating'", "Updating", global::System.Management.Automation.CompletionResultType.ParameterValue, "Updating"); + } + if (global::System.String.IsNullOrEmpty(wordToComplete) || "Deleting".StartsWith(wordToComplete, global::System.StringComparison.InvariantCultureIgnoreCase)) + { + yield return new global::System.Management.Automation.CompletionResult("'Deleting'", "Deleting", global::System.Management.Automation.CompletionResultType.ParameterValue, "Deleting"); + } + if (global::System.String.IsNullOrEmpty(wordToComplete) || "Succeeded".StartsWith(wordToComplete, global::System.StringComparison.InvariantCultureIgnoreCase)) + { + yield return new global::System.Management.Automation.CompletionResult("'Succeeded'", "Succeeded", global::System.Management.Automation.CompletionResultType.ParameterValue, "Succeeded"); + } + if (global::System.String.IsNullOrEmpty(wordToComplete) || "Canceled".StartsWith(wordToComplete, global::System.StringComparison.InvariantCultureIgnoreCase)) + { + yield return new global::System.Management.Automation.CompletionResult("'Canceled'", "Canceled", global::System.Management.Automation.CompletionResultType.ParameterValue, "Canceled"); + } + if (global::System.String.IsNullOrEmpty(wordToComplete) || "Failed".StartsWith(wordToComplete, global::System.StringComparison.InvariantCultureIgnoreCase)) + { + yield return new global::System.Management.Automation.CompletionResult("'Failed'", "Failed", global::System.Management.Automation.CompletionResultType.ParameterValue, "Failed"); + } + } + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Support/EventChannelProvisioningState.TypeConverter.cs b/swaggerci/eventgrid/generated/api/Support/EventChannelProvisioningState.TypeConverter.cs new file mode 100644 index 000000000000..496737e69be1 --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Support/EventChannelProvisioningState.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.EventGrid.Support +{ + + /// Provisioning state of the event channel. + public partial class EventChannelProvisioningStateTypeConverter : + global::System.Management.Automation.PSTypeConverter + { + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the to convert from + /// the to convert 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) => EventChannelProvisioningState.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/eventgrid/generated/api/Support/EventChannelProvisioningState.cs b/swaggerci/eventgrid/generated/api/Support/EventChannelProvisioningState.cs new file mode 100644 index 000000000000..5b78029d400d --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Support/EventChannelProvisioningState.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.EventGrid.Support +{ + + /// Provisioning state of the event channel. + public partial struct EventChannelProvisioningState : + System.IEquatable + { + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EventChannelProvisioningState Canceled = @"Canceled"; + + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EventChannelProvisioningState Creating = @"Creating"; + + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EventChannelProvisioningState Deleting = @"Deleting"; + + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EventChannelProvisioningState Failed = @"Failed"; + + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EventChannelProvisioningState Succeeded = @"Succeeded"; + + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EventChannelProvisioningState Updating = @"Updating"; + + /// + /// the value for an instance of the Enum. + /// + private string _value { get; set; } + + /// Conversion from arbitrary object to EventChannelProvisioningState + /// the value to convert to an instance of . + internal static object CreateFrom(object value) + { + return new EventChannelProvisioningState(global::System.Convert.ToString(value)); + } + + /// Compares values of enum type EventChannelProvisioningState + /// 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.EventGrid.Support.EventChannelProvisioningState e) + { + return _value.Equals(e._value); + } + + /// + /// Compares values of enum type EventChannelProvisioningState (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 EventChannelProvisioningState && Equals((EventChannelProvisioningState)obj); + } + + /// + /// Creates an instance of the + /// + /// the value to create an instance for. + private EventChannelProvisioningState(string underlyingValue) + { + this._value = underlyingValue; + } + + /// Returns hashCode for enum EventChannelProvisioningState + /// The hashCode of the value + public override int GetHashCode() + { + return this._value.GetHashCode(); + } + + /// Returns string representation for EventChannelProvisioningState + /// A string for this value. + public override string ToString() + { + return this._value; + } + + /// Implicit operator to convert string to EventChannelProvisioningState + /// the value to convert to an instance of . + + public static implicit operator EventChannelProvisioningState(string value) + { + return new EventChannelProvisioningState(value); + } + + /// Implicit operator to convert EventChannelProvisioningState to string + /// the value to convert to an instance of . + + public static implicit operator string(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EventChannelProvisioningState e) + { + return e._value; + } + + /// Overriding != operator for enum EventChannelProvisioningState + /// 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.EventGrid.Support.EventChannelProvisioningState e1, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EventChannelProvisioningState e2) + { + return !e2.Equals(e1); + } + + /// Overriding == operator for enum EventChannelProvisioningState + /// 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.EventGrid.Support.EventChannelProvisioningState e1, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EventChannelProvisioningState e2) + { + return e2.Equals(e1); + } + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Support/EventDefinitionKind.Completer.cs b/swaggerci/eventgrid/generated/api/Support/EventDefinitionKind.Completer.cs new file mode 100644 index 000000000000..14d24e6f3f5e --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Support/EventDefinitionKind.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.EventGrid.Support +{ + + /// The kind of event type used. + [System.ComponentModel.TypeConverter(typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EventDefinitionKindTypeConverter))] + public partial struct EventDefinitionKind : + 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) || "Inline".StartsWith(wordToComplete, global::System.StringComparison.InvariantCultureIgnoreCase)) + { + yield return new global::System.Management.Automation.CompletionResult("'Inline'", "Inline", global::System.Management.Automation.CompletionResultType.ParameterValue, "Inline"); + } + } + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Support/EventDefinitionKind.TypeConverter.cs b/swaggerci/eventgrid/generated/api/Support/EventDefinitionKind.TypeConverter.cs new file mode 100644 index 000000000000..a3d6fdbb3ce4 --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Support/EventDefinitionKind.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.EventGrid.Support +{ + + /// The kind of event type used. + public partial class EventDefinitionKindTypeConverter : + global::System.Management.Automation.PSTypeConverter + { + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the to convert from + /// the to convert 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) => EventDefinitionKind.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/eventgrid/generated/api/Support/EventDefinitionKind.cs b/swaggerci/eventgrid/generated/api/Support/EventDefinitionKind.cs new file mode 100644 index 000000000000..f2b5c266393f --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Support/EventDefinitionKind.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.EventGrid.Support +{ + + /// The kind of event type used. + public partial struct EventDefinitionKind : + System.IEquatable + { + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EventDefinitionKind Inline = @"Inline"; + + /// the value for an instance of the Enum. + private string _value { get; set; } + + /// Conversion from arbitrary object to EventDefinitionKind + /// the value to convert to an instance of . + internal static object CreateFrom(object value) + { + return new EventDefinitionKind(global::System.Convert.ToString(value)); + } + + /// Compares values of enum type EventDefinitionKind + /// 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.EventGrid.Support.EventDefinitionKind e) + { + return _value.Equals(e._value); + } + + /// Compares values of enum type EventDefinitionKind (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 EventDefinitionKind && Equals((EventDefinitionKind)obj); + } + + /// Creates an instance of the + /// the value to create an instance for. + private EventDefinitionKind(string underlyingValue) + { + this._value = underlyingValue; + } + + /// Returns hashCode for enum EventDefinitionKind + /// The hashCode of the value + public override int GetHashCode() + { + return this._value.GetHashCode(); + } + + /// Returns string representation for EventDefinitionKind + /// A string for this value. + public override string ToString() + { + return this._value; + } + + /// Implicit operator to convert string to EventDefinitionKind + /// the value to convert to an instance of . + + public static implicit operator EventDefinitionKind(string value) + { + return new EventDefinitionKind(value); + } + + /// Implicit operator to convert EventDefinitionKind to string + /// the value to convert to an instance of . + + public static implicit operator string(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EventDefinitionKind e) + { + return e._value; + } + + /// Overriding != operator for enum EventDefinitionKind + /// 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.EventGrid.Support.EventDefinitionKind e1, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EventDefinitionKind e2) + { + return !e2.Equals(e1); + } + + /// Overriding == operator for enum EventDefinitionKind + /// 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.EventGrid.Support.EventDefinitionKind e1, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EventDefinitionKind e2) + { + return e2.Equals(e1); + } + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Support/EventDeliverySchema.Completer.cs b/swaggerci/eventgrid/generated/api/Support/EventDeliverySchema.Completer.cs new file mode 100644 index 000000000000..de78ab5524c5 --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Support/EventDeliverySchema.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.EventGrid.Support +{ + + /// The event delivery schema for the event subscription. + [System.ComponentModel.TypeConverter(typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EventDeliverySchemaTypeConverter))] + public partial struct EventDeliverySchema : + 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) || "EventGridSchema".StartsWith(wordToComplete, global::System.StringComparison.InvariantCultureIgnoreCase)) + { + yield return new global::System.Management.Automation.CompletionResult("'EventGridSchema'", "EventGridSchema", global::System.Management.Automation.CompletionResultType.ParameterValue, "EventGridSchema"); + } + if (global::System.String.IsNullOrEmpty(wordToComplete) || "CustomInputSchema".StartsWith(wordToComplete, global::System.StringComparison.InvariantCultureIgnoreCase)) + { + yield return new global::System.Management.Automation.CompletionResult("'CustomInputSchema'", "CustomInputSchema", global::System.Management.Automation.CompletionResultType.ParameterValue, "CustomInputSchema"); + } + if (global::System.String.IsNullOrEmpty(wordToComplete) || "CloudEventSchemaV1_0".StartsWith(wordToComplete, global::System.StringComparison.InvariantCultureIgnoreCase)) + { + yield return new global::System.Management.Automation.CompletionResult("'CloudEventSchemaV1_0'", "CloudEventSchemaV1_0", global::System.Management.Automation.CompletionResultType.ParameterValue, "CloudEventSchemaV1_0"); + } + } + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Support/EventDeliverySchema.TypeConverter.cs b/swaggerci/eventgrid/generated/api/Support/EventDeliverySchema.TypeConverter.cs new file mode 100644 index 000000000000..ceee85541f4c --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Support/EventDeliverySchema.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.EventGrid.Support +{ + + /// The event delivery schema for the event subscription. + public partial class EventDeliverySchemaTypeConverter : + global::System.Management.Automation.PSTypeConverter + { + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the to convert from + /// the to convert 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) => EventDeliverySchema.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/eventgrid/generated/api/Support/EventDeliverySchema.cs b/swaggerci/eventgrid/generated/api/Support/EventDeliverySchema.cs new file mode 100644 index 000000000000..fb3925bad63e --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Support/EventDeliverySchema.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.EventGrid.Support +{ + + /// The event delivery schema for the event subscription. + public partial struct EventDeliverySchema : + System.IEquatable + { + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EventDeliverySchema CloudEventSchemaV10 = @"CloudEventSchemaV1_0"; + + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EventDeliverySchema CustomInputSchema = @"CustomInputSchema"; + + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EventDeliverySchema EventGridSchema = @"EventGridSchema"; + + /// the value for an instance of the Enum. + private string _value { get; set; } + + /// Conversion from arbitrary object to EventDeliverySchema + /// the value to convert to an instance of . + internal static object CreateFrom(object value) + { + return new EventDeliverySchema(global::System.Convert.ToString(value)); + } + + /// Compares values of enum type EventDeliverySchema + /// 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.EventGrid.Support.EventDeliverySchema e) + { + return _value.Equals(e._value); + } + + /// Compares values of enum type EventDeliverySchema (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 EventDeliverySchema && Equals((EventDeliverySchema)obj); + } + + /// Creates an instance of the + /// the value to create an instance for. + private EventDeliverySchema(string underlyingValue) + { + this._value = underlyingValue; + } + + /// Returns hashCode for enum EventDeliverySchema + /// The hashCode of the value + public override int GetHashCode() + { + return this._value.GetHashCode(); + } + + /// Returns string representation for EventDeliverySchema + /// A string for this value. + public override string ToString() + { + return this._value; + } + + /// Implicit operator to convert string to EventDeliverySchema + /// the value to convert to an instance of . + + public static implicit operator EventDeliverySchema(string value) + { + return new EventDeliverySchema(value); + } + + /// Implicit operator to convert EventDeliverySchema to string + /// the value to convert to an instance of . + + public static implicit operator string(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EventDeliverySchema e) + { + return e._value; + } + + /// Overriding != operator for enum EventDeliverySchema + /// 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.EventGrid.Support.EventDeliverySchema e1, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EventDeliverySchema e2) + { + return !e2.Equals(e1); + } + + /// Overriding == operator for enum EventDeliverySchema + /// 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.EventGrid.Support.EventDeliverySchema e1, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EventDeliverySchema e2) + { + return e2.Equals(e1); + } + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Support/EventSubscriptionIdentityType.Completer.cs b/swaggerci/eventgrid/generated/api/Support/EventSubscriptionIdentityType.Completer.cs new file mode 100644 index 000000000000..2f7f47a655d9 --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Support/EventSubscriptionIdentityType.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.EventGrid.Support +{ + + /// + /// The type of managed identity used. The type 'SystemAssigned, UserAssigned' includes both an implicitly created identity + /// and a set of user-assigned identities. The type 'None' will remove any identity. + /// + [System.ComponentModel.TypeConverter(typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EventSubscriptionIdentityTypeTypeConverter))] + public partial struct EventSubscriptionIdentityType : + 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"); + } + if (global::System.String.IsNullOrEmpty(wordToComplete) || "UserAssigned".StartsWith(wordToComplete, global::System.StringComparison.InvariantCultureIgnoreCase)) + { + yield return new global::System.Management.Automation.CompletionResult("'UserAssigned'", "UserAssigned", global::System.Management.Automation.CompletionResultType.ParameterValue, "UserAssigned"); + } + } + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Support/EventSubscriptionIdentityType.TypeConverter.cs b/swaggerci/eventgrid/generated/api/Support/EventSubscriptionIdentityType.TypeConverter.cs new file mode 100644 index 000000000000..f3accd7a63e0 --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Support/EventSubscriptionIdentityType.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.EventGrid.Support +{ + + /// + /// The type of managed identity used. The type 'SystemAssigned, UserAssigned' includes both an implicitly created identity + /// and a set of user-assigned identities. The type 'None' will remove any identity. + /// + public partial class EventSubscriptionIdentityTypeTypeConverter : + global::System.Management.Automation.PSTypeConverter + { + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the to convert from + /// the to convert 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) => EventSubscriptionIdentityType.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/eventgrid/generated/api/Support/EventSubscriptionIdentityType.cs b/swaggerci/eventgrid/generated/api/Support/EventSubscriptionIdentityType.cs new file mode 100644 index 000000000000..af2096542d48 --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Support/EventSubscriptionIdentityType.cs @@ -0,0 +1,107 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support +{ + + /// + /// The type of managed identity used. The type 'SystemAssigned, UserAssigned' includes both an implicitly created identity + /// and a set of user-assigned identities. The type 'None' will remove any identity. + /// + public partial struct EventSubscriptionIdentityType : + System.IEquatable + { + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EventSubscriptionIdentityType SystemAssigned = @"SystemAssigned"; + + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EventSubscriptionIdentityType UserAssigned = @"UserAssigned"; + + /// + /// the value for an instance of the Enum. + /// + private string _value { get; set; } + + /// Conversion from arbitrary object to EventSubscriptionIdentityType + /// the value to convert to an instance of . + internal static object CreateFrom(object value) + { + return new EventSubscriptionIdentityType(global::System.Convert.ToString(value)); + } + + /// Compares values of enum type EventSubscriptionIdentityType + /// 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.EventGrid.Support.EventSubscriptionIdentityType e) + { + return _value.Equals(e._value); + } + + /// + /// Compares values of enum type EventSubscriptionIdentityType (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 EventSubscriptionIdentityType && Equals((EventSubscriptionIdentityType)obj); + } + + /// + /// Creates an instance of the + /// + /// the value to create an instance for. + private EventSubscriptionIdentityType(string underlyingValue) + { + this._value = underlyingValue; + } + + /// Returns hashCode for enum EventSubscriptionIdentityType + /// The hashCode of the value + public override int GetHashCode() + { + return this._value.GetHashCode(); + } + + /// Returns string representation for EventSubscriptionIdentityType + /// A string for this value. + public override string ToString() + { + return this._value; + } + + /// Implicit operator to convert string to EventSubscriptionIdentityType + /// the value to convert to an instance of . + + public static implicit operator EventSubscriptionIdentityType(string value) + { + return new EventSubscriptionIdentityType(value); + } + + /// Implicit operator to convert EventSubscriptionIdentityType to string + /// the value to convert to an instance of . + + public static implicit operator string(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EventSubscriptionIdentityType e) + { + return e._value; + } + + /// Overriding != operator for enum EventSubscriptionIdentityType + /// 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.EventGrid.Support.EventSubscriptionIdentityType e1, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EventSubscriptionIdentityType e2) + { + return !e2.Equals(e1); + } + + /// Overriding == operator for enum EventSubscriptionIdentityType + /// 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.EventGrid.Support.EventSubscriptionIdentityType e1, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EventSubscriptionIdentityType e2) + { + return e2.Equals(e1); + } + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Support/EventSubscriptionProvisioningState.Completer.cs b/swaggerci/eventgrid/generated/api/Support/EventSubscriptionProvisioningState.Completer.cs new file mode 100644 index 000000000000..e1b5d5ec5219 --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Support/EventSubscriptionProvisioningState.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.EventGrid.Support +{ + + /// Provisioning state of the event subscription. + [System.ComponentModel.TypeConverter(typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EventSubscriptionProvisioningStateTypeConverter))] + public partial struct EventSubscriptionProvisioningState : + System.Management.Automation.IArgumentCompleter + { + + /// + /// Implementations of this function are called by PowerShell to complete arguments. + /// + /// The name of the command that needs argument completion. + /// The name of the parameter that needs argument completion. + /// The (possibly empty) word being completed. + /// The command ast in case it is needed for completion. + /// This parameter is similar to $PSBoundParameters, except that sometimes PowerShell cannot + /// or will not attempt to evaluate an argument, in which case you may need to use commandAst. + /// + /// A collection of completion results, most like with ResultType set to ParameterValue. + /// + public global::System.Collections.Generic.IEnumerable CompleteArgument(global::System.String commandName, global::System.String parameterName, global::System.String wordToComplete, global::System.Management.Automation.Language.CommandAst commandAst, global::System.Collections.IDictionary fakeBoundParameters) + { + if (global::System.String.IsNullOrEmpty(wordToComplete) || "Creating".StartsWith(wordToComplete, global::System.StringComparison.InvariantCultureIgnoreCase)) + { + yield return new global::System.Management.Automation.CompletionResult("'Creating'", "Creating", global::System.Management.Automation.CompletionResultType.ParameterValue, "Creating"); + } + if (global::System.String.IsNullOrEmpty(wordToComplete) || "Updating".StartsWith(wordToComplete, global::System.StringComparison.InvariantCultureIgnoreCase)) + { + yield return new global::System.Management.Automation.CompletionResult("'Updating'", "Updating", global::System.Management.Automation.CompletionResultType.ParameterValue, "Updating"); + } + if (global::System.String.IsNullOrEmpty(wordToComplete) || "Deleting".StartsWith(wordToComplete, global::System.StringComparison.InvariantCultureIgnoreCase)) + { + yield return new global::System.Management.Automation.CompletionResult("'Deleting'", "Deleting", global::System.Management.Automation.CompletionResultType.ParameterValue, "Deleting"); + } + if (global::System.String.IsNullOrEmpty(wordToComplete) || "Succeeded".StartsWith(wordToComplete, global::System.StringComparison.InvariantCultureIgnoreCase)) + { + yield return new global::System.Management.Automation.CompletionResult("'Succeeded'", "Succeeded", global::System.Management.Automation.CompletionResultType.ParameterValue, "Succeeded"); + } + if (global::System.String.IsNullOrEmpty(wordToComplete) || "Canceled".StartsWith(wordToComplete, global::System.StringComparison.InvariantCultureIgnoreCase)) + { + yield return new global::System.Management.Automation.CompletionResult("'Canceled'", "Canceled", global::System.Management.Automation.CompletionResultType.ParameterValue, "Canceled"); + } + if (global::System.String.IsNullOrEmpty(wordToComplete) || "Failed".StartsWith(wordToComplete, global::System.StringComparison.InvariantCultureIgnoreCase)) + { + yield return new global::System.Management.Automation.CompletionResult("'Failed'", "Failed", global::System.Management.Automation.CompletionResultType.ParameterValue, "Failed"); + } + if (global::System.String.IsNullOrEmpty(wordToComplete) || "AwaitingManualAction".StartsWith(wordToComplete, global::System.StringComparison.InvariantCultureIgnoreCase)) + { + yield return new global::System.Management.Automation.CompletionResult("'AwaitingManualAction'", "AwaitingManualAction", global::System.Management.Automation.CompletionResultType.ParameterValue, "AwaitingManualAction"); + } + } + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Support/EventSubscriptionProvisioningState.TypeConverter.cs b/swaggerci/eventgrid/generated/api/Support/EventSubscriptionProvisioningState.TypeConverter.cs new file mode 100644 index 000000000000..4afde87481f4 --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Support/EventSubscriptionProvisioningState.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.EventGrid.Support +{ + + /// Provisioning state of the event subscription. + public partial class EventSubscriptionProvisioningStateTypeConverter : + global::System.Management.Automation.PSTypeConverter + { + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the to convert from + /// the to convert 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) => EventSubscriptionProvisioningState.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/eventgrid/generated/api/Support/EventSubscriptionProvisioningState.cs b/swaggerci/eventgrid/generated/api/Support/EventSubscriptionProvisioningState.cs new file mode 100644 index 000000000000..1abbb9da8d1a --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Support/EventSubscriptionProvisioningState.cs @@ -0,0 +1,114 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support +{ + + /// Provisioning state of the event subscription. + public partial struct EventSubscriptionProvisioningState : + System.IEquatable + { + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EventSubscriptionProvisioningState AwaitingManualAction = @"AwaitingManualAction"; + + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EventSubscriptionProvisioningState Canceled = @"Canceled"; + + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EventSubscriptionProvisioningState Creating = @"Creating"; + + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EventSubscriptionProvisioningState Deleting = @"Deleting"; + + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EventSubscriptionProvisioningState Failed = @"Failed"; + + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EventSubscriptionProvisioningState Succeeded = @"Succeeded"; + + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EventSubscriptionProvisioningState Updating = @"Updating"; + + /// + /// the value for an instance of the Enum. + /// + private string _value { get; set; } + + /// Conversion from arbitrary object to EventSubscriptionProvisioningState + /// the value to convert to an instance of . + internal static object CreateFrom(object value) + { + return new EventSubscriptionProvisioningState(global::System.Convert.ToString(value)); + } + + /// Compares values of enum type EventSubscriptionProvisioningState + /// 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.EventGrid.Support.EventSubscriptionProvisioningState e) + { + return _value.Equals(e._value); + } + + /// + /// Compares values of enum type EventSubscriptionProvisioningState (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 EventSubscriptionProvisioningState && Equals((EventSubscriptionProvisioningState)obj); + } + + /// + /// Creates an instance of the + /// + /// the value to create an instance for. + private EventSubscriptionProvisioningState(string underlyingValue) + { + this._value = underlyingValue; + } + + /// Returns hashCode for enum EventSubscriptionProvisioningState + /// The hashCode of the value + public override int GetHashCode() + { + return this._value.GetHashCode(); + } + + /// Returns string representation for EventSubscriptionProvisioningState + /// A string for this value. + public override string ToString() + { + return this._value; + } + + /// Implicit operator to convert string to EventSubscriptionProvisioningState + /// the value to convert to an instance of . + + public static implicit operator EventSubscriptionProvisioningState(string value) + { + return new EventSubscriptionProvisioningState(value); + } + + /// Implicit operator to convert EventSubscriptionProvisioningState to string + /// the value to convert to an instance of . + + public static implicit operator string(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EventSubscriptionProvisioningState e) + { + return e._value; + } + + /// Overriding != operator for enum EventSubscriptionProvisioningState + /// 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.EventGrid.Support.EventSubscriptionProvisioningState e1, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EventSubscriptionProvisioningState e2) + { + return !e2.Equals(e1); + } + + /// Overriding == operator for enum EventSubscriptionProvisioningState + /// 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.EventGrid.Support.EventSubscriptionProvisioningState e1, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EventSubscriptionProvisioningState e2) + { + return e2.Equals(e1); + } + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Support/IPActionType.Completer.cs b/swaggerci/eventgrid/generated/api/Support/IPActionType.Completer.cs new file mode 100644 index 000000000000..001031916710 --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Support/IPActionType.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.EventGrid.Support +{ + + /// Action to perform based on the match or no match of the IpMask. + [System.ComponentModel.TypeConverter(typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.IPActionTypeTypeConverter))] + public partial struct IPActionType : + System.Management.Automation.IArgumentCompleter + { + + /// + /// Implementations of this function are called by PowerShell to complete arguments. + /// + /// The name of the command that needs argument completion. + /// The name of the parameter that needs argument completion. + /// The (possibly empty) word being completed. + /// The command ast in case it is needed for completion. + /// This parameter is similar to $PSBoundParameters, except that sometimes PowerShell cannot + /// or will not attempt to evaluate an argument, in which case you may need to use commandAst. + /// + /// A collection of completion results, most like with ResultType set to ParameterValue. + /// + public global::System.Collections.Generic.IEnumerable CompleteArgument(global::System.String commandName, global::System.String parameterName, global::System.String wordToComplete, global::System.Management.Automation.Language.CommandAst commandAst, global::System.Collections.IDictionary fakeBoundParameters) + { + if (global::System.String.IsNullOrEmpty(wordToComplete) || "Allow".StartsWith(wordToComplete, global::System.StringComparison.InvariantCultureIgnoreCase)) + { + yield return new global::System.Management.Automation.CompletionResult("'Allow'", "Allow", global::System.Management.Automation.CompletionResultType.ParameterValue, "Allow"); + } + } + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Support/IPActionType.TypeConverter.cs b/swaggerci/eventgrid/generated/api/Support/IPActionType.TypeConverter.cs new file mode 100644 index 000000000000..35defb92a815 --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Support/IPActionType.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.EventGrid.Support +{ + + /// Action to perform based on the match or no match of the IpMask. + public partial class IPActionTypeTypeConverter : + global::System.Management.Automation.PSTypeConverter + { + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the to convert from + /// the to convert 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) => IPActionType.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/eventgrid/generated/api/Support/IPActionType.cs b/swaggerci/eventgrid/generated/api/Support/IPActionType.cs new file mode 100644 index 000000000000..b7724b5b96c7 --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Support/IPActionType.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.EventGrid.Support +{ + + /// Action to perform based on the match or no match of the IpMask. + public partial struct IPActionType : + System.IEquatable + { + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.IPActionType Allow = @"Allow"; + + /// the value for an instance of the Enum. + private string _value { get; set; } + + /// Conversion from arbitrary object to IPActionType + /// the value to convert to an instance of . + internal static object CreateFrom(object value) + { + return new IPActionType(global::System.Convert.ToString(value)); + } + + /// Compares values of enum type IPActionType + /// 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.EventGrid.Support.IPActionType e) + { + return _value.Equals(e._value); + } + + /// Compares values of enum type IPActionType (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 IPActionType && Equals((IPActionType)obj); + } + + /// Returns hashCode for enum IPActionType + /// 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 IPActionType(string underlyingValue) + { + this._value = underlyingValue; + } + + /// Returns string representation for IPActionType + /// A string for this value. + public override string ToString() + { + return this._value; + } + + /// Implicit operator to convert string to IPActionType + /// the value to convert to an instance of . + + public static implicit operator IPActionType(string value) + { + return new IPActionType(value); + } + + /// Implicit operator to convert IPActionType to string + /// the value to convert to an instance of . + + public static implicit operator string(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.IPActionType e) + { + return e._value; + } + + /// Overriding != operator for enum IPActionType + /// 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.EventGrid.Support.IPActionType e1, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.IPActionType e2) + { + return !e2.Equals(e1); + } + + /// Overriding == operator for enum IPActionType + /// 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.EventGrid.Support.IPActionType e1, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.IPActionType e2) + { + return e2.Equals(e1); + } + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Support/IdentityType.Completer.cs b/swaggerci/eventgrid/generated/api/Support/IdentityType.Completer.cs new file mode 100644 index 000000000000..f6dd5546fd86 --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Support/IdentityType.Completer.cs @@ -0,0 +1,50 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support +{ + + /// + /// The type of managed identity used. The type 'SystemAssigned, UserAssigned' includes both an implicitly created identity + /// and a set of user-assigned identities. The type 'None' will remove any identity. + /// + [System.ComponentModel.TypeConverter(typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.IdentityTypeTypeConverter))] + public partial struct IdentityType : + System.Management.Automation.IArgumentCompleter + { + + /// + /// Implementations of this function are called by PowerShell to complete arguments. + /// + /// The name of the command that needs argument completion. + /// The name of the parameter that needs argument completion. + /// The (possibly empty) word being completed. + /// The command ast in case it is needed for completion. + /// This parameter is similar to $PSBoundParameters, except that sometimes PowerShell cannot + /// or will not attempt to evaluate an argument, in which case you may need to use commandAst. + /// + /// A collection of completion results, most like with ResultType set to ParameterValue. + /// + public global::System.Collections.Generic.IEnumerable CompleteArgument(global::System.String commandName, global::System.String parameterName, global::System.String wordToComplete, global::System.Management.Automation.Language.CommandAst commandAst, global::System.Collections.IDictionary fakeBoundParameters) + { + if (global::System.String.IsNullOrEmpty(wordToComplete) || "None".StartsWith(wordToComplete, global::System.StringComparison.InvariantCultureIgnoreCase)) + { + yield return new global::System.Management.Automation.CompletionResult("'None'", "None", global::System.Management.Automation.CompletionResultType.ParameterValue, "None"); + } + if (global::System.String.IsNullOrEmpty(wordToComplete) || "SystemAssigned".StartsWith(wordToComplete, global::System.StringComparison.InvariantCultureIgnoreCase)) + { + yield return new global::System.Management.Automation.CompletionResult("'SystemAssigned'", "SystemAssigned", global::System.Management.Automation.CompletionResultType.ParameterValue, "SystemAssigned"); + } + if (global::System.String.IsNullOrEmpty(wordToComplete) || "UserAssigned".StartsWith(wordToComplete, global::System.StringComparison.InvariantCultureIgnoreCase)) + { + yield return new global::System.Management.Automation.CompletionResult("'UserAssigned'", "UserAssigned", global::System.Management.Automation.CompletionResultType.ParameterValue, "UserAssigned"); + } + if (global::System.String.IsNullOrEmpty(wordToComplete) || "SystemAssigned, UserAssigned".StartsWith(wordToComplete, global::System.StringComparison.InvariantCultureIgnoreCase)) + { + yield return new global::System.Management.Automation.CompletionResult("'SystemAssigned, UserAssigned'", "SystemAssigned, UserAssigned", global::System.Management.Automation.CompletionResultType.ParameterValue, "SystemAssigned, UserAssigned"); + } + } + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Support/IdentityType.TypeConverter.cs b/swaggerci/eventgrid/generated/api/Support/IdentityType.TypeConverter.cs new file mode 100644 index 000000000000..66833add55ce --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Support/IdentityType.TypeConverter.cs @@ -0,0 +1,62 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support +{ + + /// + /// The type of managed identity used. The type 'SystemAssigned, UserAssigned' includes both an implicitly created identity + /// and a set of user-assigned identities. The type 'None' will remove any identity. + /// + public partial class IdentityTypeTypeConverter : + global::System.Management.Automation.PSTypeConverter + { + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false. + /// + public override bool CanConvertFrom(object sourceValue, global::System.Type destinationType) => true; + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false. + /// + public override bool CanConvertTo(object sourceValue, global::System.Type destinationType) => false; + + /// + /// Converts the parameter to the parameter using and + /// + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// + /// an instance of , or null if there is no suitable conversion. + /// + public override object ConvertFrom(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => IdentityType.CreateFrom(sourceValue); + + /// NotImplemented -- this will return null + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// will always return null. + public override object ConvertTo(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => null; + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Support/IdentityType.cs b/swaggerci/eventgrid/generated/api/Support/IdentityType.cs new file mode 100644 index 000000000000..387d43eb574d --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Support/IdentityType.cs @@ -0,0 +1,105 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support +{ + + /// + /// The type of managed identity used. The type 'SystemAssigned, UserAssigned' includes both an implicitly created identity + /// and a set of user-assigned identities. The type 'None' will remove any identity. + /// + public partial struct IdentityType : + System.IEquatable + { + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.IdentityType None = @"None"; + + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.IdentityType SystemAssigned = @"SystemAssigned"; + + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.IdentityType SystemAssignedUserAssigned = @"SystemAssigned, UserAssigned"; + + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.IdentityType UserAssigned = @"UserAssigned"; + + /// the value for an instance of the Enum. + private string _value { get; set; } + + /// Conversion from arbitrary object to IdentityType + /// the value to convert to an instance of . + internal static object CreateFrom(object value) + { + return new IdentityType(global::System.Convert.ToString(value)); + } + + /// Compares values of enum type IdentityType + /// the value to compare against this instance. + /// true if the two instances are equal to the same value + public bool Equals(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.IdentityType e) + { + return _value.Equals(e._value); + } + + /// Compares values of enum type IdentityType (override for Object) + /// the value to compare against this instance. + /// true if the two instances are equal to the same value + public override bool Equals(object obj) + { + return obj is IdentityType && Equals((IdentityType)obj); + } + + /// Returns hashCode for enum IdentityType + /// The hashCode of the value + public override int GetHashCode() + { + return this._value.GetHashCode(); + } + + /// Creates an instance of the + /// the value to create an instance for. + private IdentityType(string underlyingValue) + { + this._value = underlyingValue; + } + + /// Returns string representation for IdentityType + /// A string for this value. + public override string ToString() + { + return this._value; + } + + /// Implicit operator to convert string to IdentityType + /// the value to convert to an instance of . + + public static implicit operator IdentityType(string value) + { + return new IdentityType(value); + } + + /// Implicit operator to convert IdentityType to string + /// the value to convert to an instance of . + + public static implicit operator string(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.IdentityType e) + { + return e._value; + } + + /// Overriding != operator for enum IdentityType + /// the value to compare against + /// the value to compare against + /// true if the two instances are not equal to the same value + public static bool operator !=(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.IdentityType e1, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.IdentityType e2) + { + return !e2.Equals(e1); + } + + /// Overriding == operator for enum IdentityType + /// the value to compare against + /// the value to compare against + /// true if the two instances are equal to the same value + public static bool operator ==(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.IdentityType e1, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.IdentityType e2) + { + return e2.Equals(e1); + } + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Support/InputSchema.Completer.cs b/swaggerci/eventgrid/generated/api/Support/InputSchema.Completer.cs new file mode 100644 index 000000000000..f1fde5fecb03 --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Support/InputSchema.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.EventGrid.Support +{ + + /// + /// This determines the format that Event Grid should expect for incoming events published to the Event Grid Domain Resource. + /// + [System.ComponentModel.TypeConverter(typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.InputSchemaTypeConverter))] + public partial struct InputSchema : + 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) || "EventGridSchema".StartsWith(wordToComplete, global::System.StringComparison.InvariantCultureIgnoreCase)) + { + yield return new global::System.Management.Automation.CompletionResult("'EventGridSchema'", "EventGridSchema", global::System.Management.Automation.CompletionResultType.ParameterValue, "EventGridSchema"); + } + if (global::System.String.IsNullOrEmpty(wordToComplete) || "CustomEventSchema".StartsWith(wordToComplete, global::System.StringComparison.InvariantCultureIgnoreCase)) + { + yield return new global::System.Management.Automation.CompletionResult("'CustomEventSchema'", "CustomEventSchema", global::System.Management.Automation.CompletionResultType.ParameterValue, "CustomEventSchema"); + } + if (global::System.String.IsNullOrEmpty(wordToComplete) || "CloudEventSchemaV1_0".StartsWith(wordToComplete, global::System.StringComparison.InvariantCultureIgnoreCase)) + { + yield return new global::System.Management.Automation.CompletionResult("'CloudEventSchemaV1_0'", "CloudEventSchemaV1_0", global::System.Management.Automation.CompletionResultType.ParameterValue, "CloudEventSchemaV1_0"); + } + } + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Support/InputSchema.TypeConverter.cs b/swaggerci/eventgrid/generated/api/Support/InputSchema.TypeConverter.cs new file mode 100644 index 000000000000..f22f07abcb25 --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Support/InputSchema.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.EventGrid.Support +{ + + /// + /// This determines the format that Event Grid should expect for incoming events published to the Event Grid Domain Resource. + /// + public partial class InputSchemaTypeConverter : + global::System.Management.Automation.PSTypeConverter + { + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the to convert from + /// the to convert 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) => InputSchema.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/eventgrid/generated/api/Support/InputSchema.cs b/swaggerci/eventgrid/generated/api/Support/InputSchema.cs new file mode 100644 index 000000000000..2d7ef91ec794 --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Support/InputSchema.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.EventGrid.Support +{ + + /// + /// This determines the format that Event Grid should expect for incoming events published to the Event Grid Domain Resource. + /// + public partial struct InputSchema : + System.IEquatable + { + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.InputSchema CloudEventSchemaV10 = @"CloudEventSchemaV1_0"; + + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.InputSchema CustomEventSchema = @"CustomEventSchema"; + + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.InputSchema EventGridSchema = @"EventGridSchema"; + + /// the value for an instance of the Enum. + private string _value { get; set; } + + /// Conversion from arbitrary object to InputSchema + /// the value to convert to an instance of . + internal static object CreateFrom(object value) + { + return new InputSchema(global::System.Convert.ToString(value)); + } + + /// Compares values of enum type InputSchema + /// 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.EventGrid.Support.InputSchema e) + { + return _value.Equals(e._value); + } + + /// Compares values of enum type InputSchema (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 InputSchema && Equals((InputSchema)obj); + } + + /// Returns hashCode for enum InputSchema + /// 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 InputSchema(string underlyingValue) + { + this._value = underlyingValue; + } + + /// Returns string representation for InputSchema + /// A string for this value. + public override string ToString() + { + return this._value; + } + + /// Implicit operator to convert string to InputSchema + /// the value to convert to an instance of . + + public static implicit operator InputSchema(string value) + { + return new InputSchema(value); + } + + /// Implicit operator to convert InputSchema to string + /// the value to convert to an instance of . + + public static implicit operator string(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.InputSchema e) + { + return e._value; + } + + /// Overriding != operator for enum InputSchema + /// 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.EventGrid.Support.InputSchema e1, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.InputSchema e2) + { + return !e2.Equals(e1); + } + + /// Overriding == operator for enum InputSchema + /// 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.EventGrid.Support.InputSchema e1, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.InputSchema e2) + { + return e2.Equals(e1); + } + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Support/ParentType.Completer.cs b/swaggerci/eventgrid/generated/api/Support/ParentType.Completer.cs new file mode 100644 index 000000000000..aa67b93cda42 --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Support/ParentType.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.EventGrid.Support +{ + + /// Argument completer implementation for ParentType. + [System.ComponentModel.TypeConverter(typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.ParentTypeTypeConverter))] + public partial struct ParentType : + 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) || "topics".StartsWith(wordToComplete, global::System.StringComparison.InvariantCultureIgnoreCase)) + { + yield return new global::System.Management.Automation.CompletionResult("'topics'", "topics", global::System.Management.Automation.CompletionResultType.ParameterValue, "topics"); + } + if (global::System.String.IsNullOrEmpty(wordToComplete) || "domains".StartsWith(wordToComplete, global::System.StringComparison.InvariantCultureIgnoreCase)) + { + yield return new global::System.Management.Automation.CompletionResult("'domains'", "domains", global::System.Management.Automation.CompletionResultType.ParameterValue, "domains"); + } + if (global::System.String.IsNullOrEmpty(wordToComplete) || "partnerNamespaces".StartsWith(wordToComplete, global::System.StringComparison.InvariantCultureIgnoreCase)) + { + yield return new global::System.Management.Automation.CompletionResult("'partnerNamespaces'", "partnerNamespaces", global::System.Management.Automation.CompletionResultType.ParameterValue, "partnerNamespaces"); + } + } + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Support/ParentType.TypeConverter.cs b/swaggerci/eventgrid/generated/api/Support/ParentType.TypeConverter.cs new file mode 100644 index 000000000000..a5b1532198b6 --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Support/ParentType.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.EventGrid.Support +{ + + /// TypeConverter implementation for ParentType. + public partial class ParentTypeTypeConverter : + global::System.Management.Automation.PSTypeConverter + { + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the to convert from + /// the to convert 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) => ParentType.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/eventgrid/generated/api/Support/ParentType.cs b/swaggerci/eventgrid/generated/api/Support/ParentType.cs new file mode 100644 index 000000000000..1e6cde7ff22d --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Support/ParentType.cs @@ -0,0 +1,99 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support +{ + + public partial struct ParentType : + System.IEquatable + { + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.ParentType Domains = @"domains"; + + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.ParentType PartnerNamespaces = @"partnerNamespaces"; + + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.ParentType Topics = @"topics"; + + /// the value for an instance of the Enum. + private string _value { get; set; } + + /// Conversion from arbitrary object to ParentType + /// the value to convert to an instance of . + internal static object CreateFrom(object value) + { + return new ParentType(global::System.Convert.ToString(value)); + } + + /// Compares values of enum type ParentType + /// 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.EventGrid.Support.ParentType e) + { + return _value.Equals(e._value); + } + + /// Compares values of enum type ParentType (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 ParentType && Equals((ParentType)obj); + } + + /// Returns hashCode for enum ParentType + /// 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 ParentType(string underlyingValue) + { + this._value = underlyingValue; + } + + /// Returns string representation for ParentType + /// A string for this value. + public override string ToString() + { + return this._value; + } + + /// Implicit operator to convert string to ParentType + /// the value to convert to an instance of . + + public static implicit operator ParentType(string value) + { + return new ParentType(value); + } + + /// Implicit operator to convert ParentType to string + /// the value to convert to an instance of . + + public static implicit operator string(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.ParentType e) + { + return e._value; + } + + /// Overriding != operator for enum ParentType + /// 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.EventGrid.Support.ParentType e1, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.ParentType e2) + { + return !e2.Equals(e1); + } + + /// Overriding == operator for enum ParentType + /// 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.EventGrid.Support.ParentType e1, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.ParentType e2) + { + return e2.Equals(e1); + } + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Support/PartnerConfigurationProvisioningState.Completer.cs b/swaggerci/eventgrid/generated/api/Support/PartnerConfigurationProvisioningState.Completer.cs new file mode 100644 index 000000000000..e478ed25f6af --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Support/PartnerConfigurationProvisioningState.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.EventGrid.Support +{ + + /// Provisioning state of the partner configuration. + [System.ComponentModel.TypeConverter(typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.PartnerConfigurationProvisioningStateTypeConverter))] + public partial struct PartnerConfigurationProvisioningState : + System.Management.Automation.IArgumentCompleter + { + + /// + /// Implementations of this function are called by PowerShell to complete arguments. + /// + /// The name of the command that needs argument completion. + /// The name of the parameter that needs argument completion. + /// The (possibly empty) word being completed. + /// The command ast in case it is needed for completion. + /// This parameter is similar to $PSBoundParameters, except that sometimes PowerShell cannot + /// or will not attempt to evaluate an argument, in which case you may need to use commandAst. + /// + /// A collection of completion results, most like with ResultType set to ParameterValue. + /// + public global::System.Collections.Generic.IEnumerable CompleteArgument(global::System.String commandName, global::System.String parameterName, global::System.String wordToComplete, global::System.Management.Automation.Language.CommandAst commandAst, global::System.Collections.IDictionary fakeBoundParameters) + { + if (global::System.String.IsNullOrEmpty(wordToComplete) || "Creating".StartsWith(wordToComplete, global::System.StringComparison.InvariantCultureIgnoreCase)) + { + yield return new global::System.Management.Automation.CompletionResult("'Creating'", "Creating", global::System.Management.Automation.CompletionResultType.ParameterValue, "Creating"); + } + if (global::System.String.IsNullOrEmpty(wordToComplete) || "Updating".StartsWith(wordToComplete, global::System.StringComparison.InvariantCultureIgnoreCase)) + { + yield return new global::System.Management.Automation.CompletionResult("'Updating'", "Updating", global::System.Management.Automation.CompletionResultType.ParameterValue, "Updating"); + } + if (global::System.String.IsNullOrEmpty(wordToComplete) || "Deleting".StartsWith(wordToComplete, global::System.StringComparison.InvariantCultureIgnoreCase)) + { + yield return new global::System.Management.Automation.CompletionResult("'Deleting'", "Deleting", global::System.Management.Automation.CompletionResultType.ParameterValue, "Deleting"); + } + if (global::System.String.IsNullOrEmpty(wordToComplete) || "Succeeded".StartsWith(wordToComplete, global::System.StringComparison.InvariantCultureIgnoreCase)) + { + yield return new global::System.Management.Automation.CompletionResult("'Succeeded'", "Succeeded", global::System.Management.Automation.CompletionResultType.ParameterValue, "Succeeded"); + } + if (global::System.String.IsNullOrEmpty(wordToComplete) || "Canceled".StartsWith(wordToComplete, global::System.StringComparison.InvariantCultureIgnoreCase)) + { + yield return new global::System.Management.Automation.CompletionResult("'Canceled'", "Canceled", global::System.Management.Automation.CompletionResultType.ParameterValue, "Canceled"); + } + if (global::System.String.IsNullOrEmpty(wordToComplete) || "Failed".StartsWith(wordToComplete, global::System.StringComparison.InvariantCultureIgnoreCase)) + { + yield return new global::System.Management.Automation.CompletionResult("'Failed'", "Failed", global::System.Management.Automation.CompletionResultType.ParameterValue, "Failed"); + } + } + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Support/PartnerConfigurationProvisioningState.TypeConverter.cs b/swaggerci/eventgrid/generated/api/Support/PartnerConfigurationProvisioningState.TypeConverter.cs new file mode 100644 index 000000000000..080f3600a22e --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Support/PartnerConfigurationProvisioningState.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.EventGrid.Support +{ + + /// Provisioning state of the partner configuration. + public partial class PartnerConfigurationProvisioningStateTypeConverter : + global::System.Management.Automation.PSTypeConverter + { + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the to convert from + /// the to convert 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) => PartnerConfigurationProvisioningState.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/eventgrid/generated/api/Support/PartnerConfigurationProvisioningState.cs b/swaggerci/eventgrid/generated/api/Support/PartnerConfigurationProvisioningState.cs new file mode 100644 index 000000000000..c1ae6bec080f --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Support/PartnerConfigurationProvisioningState.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.EventGrid.Support +{ + + /// Provisioning state of the partner configuration. + public partial struct PartnerConfigurationProvisioningState : + System.IEquatable + { + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.PartnerConfigurationProvisioningState Canceled = @"Canceled"; + + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.PartnerConfigurationProvisioningState Creating = @"Creating"; + + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.PartnerConfigurationProvisioningState Deleting = @"Deleting"; + + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.PartnerConfigurationProvisioningState Failed = @"Failed"; + + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.PartnerConfigurationProvisioningState Succeeded = @"Succeeded"; + + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.PartnerConfigurationProvisioningState Updating = @"Updating"; + + /// + /// the value for an instance of the Enum. + /// + private string _value { get; set; } + + /// Conversion from arbitrary object to PartnerConfigurationProvisioningState + /// the value to convert to an instance of . + internal static object CreateFrom(object value) + { + return new PartnerConfigurationProvisioningState(global::System.Convert.ToString(value)); + } + + /// Compares values of enum type PartnerConfigurationProvisioningState + /// 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.EventGrid.Support.PartnerConfigurationProvisioningState e) + { + return _value.Equals(e._value); + } + + /// + /// Compares values of enum type PartnerConfigurationProvisioningState (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 PartnerConfigurationProvisioningState && Equals((PartnerConfigurationProvisioningState)obj); + } + + /// Returns hashCode for enum PartnerConfigurationProvisioningState + /// 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 PartnerConfigurationProvisioningState(string underlyingValue) + { + this._value = underlyingValue; + } + + /// Returns string representation for PartnerConfigurationProvisioningState + /// A string for this value. + public override string ToString() + { + return this._value; + } + + /// Implicit operator to convert string to PartnerConfigurationProvisioningState + /// the value to convert to an instance of . + + public static implicit operator PartnerConfigurationProvisioningState(string value) + { + return new PartnerConfigurationProvisioningState(value); + } + + /// Implicit operator to convert PartnerConfigurationProvisioningState to string + /// the value to convert to an instance of . + + public static implicit operator string(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.PartnerConfigurationProvisioningState e) + { + return e._value; + } + + /// Overriding != operator for enum PartnerConfigurationProvisioningState + /// 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.EventGrid.Support.PartnerConfigurationProvisioningState e1, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.PartnerConfigurationProvisioningState e2) + { + return !e2.Equals(e1); + } + + /// Overriding == operator for enum PartnerConfigurationProvisioningState + /// 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.EventGrid.Support.PartnerConfigurationProvisioningState e1, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.PartnerConfigurationProvisioningState e2) + { + return e2.Equals(e1); + } + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Support/PartnerDestinationActivationState.Completer.cs b/swaggerci/eventgrid/generated/api/Support/PartnerDestinationActivationState.Completer.cs new file mode 100644 index 000000000000..d3a9657afa00 --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Support/PartnerDestinationActivationState.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.EventGrid.Support +{ + + /// Activation state of the partner destination. + [System.ComponentModel.TypeConverter(typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.PartnerDestinationActivationStateTypeConverter))] + public partial struct PartnerDestinationActivationState : + 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) || "NeverActivated".StartsWith(wordToComplete, global::System.StringComparison.InvariantCultureIgnoreCase)) + { + yield return new global::System.Management.Automation.CompletionResult("'NeverActivated'", "NeverActivated", global::System.Management.Automation.CompletionResultType.ParameterValue, "NeverActivated"); + } + if (global::System.String.IsNullOrEmpty(wordToComplete) || "Activated".StartsWith(wordToComplete, global::System.StringComparison.InvariantCultureIgnoreCase)) + { + yield return new global::System.Management.Automation.CompletionResult("'Activated'", "Activated", global::System.Management.Automation.CompletionResultType.ParameterValue, "Activated"); + } + } + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Support/PartnerDestinationActivationState.TypeConverter.cs b/swaggerci/eventgrid/generated/api/Support/PartnerDestinationActivationState.TypeConverter.cs new file mode 100644 index 000000000000..ebc8fa7e0df3 --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Support/PartnerDestinationActivationState.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.EventGrid.Support +{ + + /// Activation state of the partner destination. + public partial class PartnerDestinationActivationStateTypeConverter : + global::System.Management.Automation.PSTypeConverter + { + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the to convert from + /// the to convert 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) => PartnerDestinationActivationState.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/eventgrid/generated/api/Support/PartnerDestinationActivationState.cs b/swaggerci/eventgrid/generated/api/Support/PartnerDestinationActivationState.cs new file mode 100644 index 000000000000..d3e87cc12985 --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Support/PartnerDestinationActivationState.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.EventGrid.Support +{ + + /// Activation state of the partner destination. + public partial struct PartnerDestinationActivationState : + System.IEquatable + { + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.PartnerDestinationActivationState Activated = @"Activated"; + + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.PartnerDestinationActivationState NeverActivated = @"NeverActivated"; + + /// + /// the value for an instance of the Enum. + /// + private string _value { get; set; } + + /// Conversion from arbitrary object to PartnerDestinationActivationState + /// the value to convert to an instance of . + internal static object CreateFrom(object value) + { + return new PartnerDestinationActivationState(global::System.Convert.ToString(value)); + } + + /// Compares values of enum type PartnerDestinationActivationState + /// 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.EventGrid.Support.PartnerDestinationActivationState e) + { + return _value.Equals(e._value); + } + + /// + /// Compares values of enum type PartnerDestinationActivationState (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 PartnerDestinationActivationState && Equals((PartnerDestinationActivationState)obj); + } + + /// Returns hashCode for enum PartnerDestinationActivationState + /// 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 PartnerDestinationActivationState(string underlyingValue) + { + this._value = underlyingValue; + } + + /// Returns string representation for PartnerDestinationActivationState + /// A string for this value. + public override string ToString() + { + return this._value; + } + + /// Implicit operator to convert string to PartnerDestinationActivationState + /// the value to convert to an instance of . + + public static implicit operator PartnerDestinationActivationState(string value) + { + return new PartnerDestinationActivationState(value); + } + + /// Implicit operator to convert PartnerDestinationActivationState to string + /// the value to convert to an instance of . + + public static implicit operator string(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.PartnerDestinationActivationState e) + { + return e._value; + } + + /// Overriding != operator for enum PartnerDestinationActivationState + /// 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.EventGrid.Support.PartnerDestinationActivationState e1, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.PartnerDestinationActivationState e2) + { + return !e2.Equals(e1); + } + + /// Overriding == operator for enum PartnerDestinationActivationState + /// 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.EventGrid.Support.PartnerDestinationActivationState e1, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.PartnerDestinationActivationState e2) + { + return e2.Equals(e1); + } + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Support/PartnerDestinationProvisioningState.Completer.cs b/swaggerci/eventgrid/generated/api/Support/PartnerDestinationProvisioningState.Completer.cs new file mode 100644 index 000000000000..87259cbbb549 --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Support/PartnerDestinationProvisioningState.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.EventGrid.Support +{ + + /// Provisioning state of the partner destination. + [System.ComponentModel.TypeConverter(typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.PartnerDestinationProvisioningStateTypeConverter))] + public partial struct PartnerDestinationProvisioningState : + System.Management.Automation.IArgumentCompleter + { + + /// + /// Implementations of this function are called by PowerShell to complete arguments. + /// + /// The name of the command that needs argument completion. + /// The name of the parameter that needs argument completion. + /// The (possibly empty) word being completed. + /// The command ast in case it is needed for completion. + /// This parameter is similar to $PSBoundParameters, except that sometimes PowerShell cannot + /// or will not attempt to evaluate an argument, in which case you may need to use commandAst. + /// + /// A collection of completion results, most like with ResultType set to ParameterValue. + /// + public global::System.Collections.Generic.IEnumerable CompleteArgument(global::System.String commandName, global::System.String parameterName, global::System.String wordToComplete, global::System.Management.Automation.Language.CommandAst commandAst, global::System.Collections.IDictionary fakeBoundParameters) + { + if (global::System.String.IsNullOrEmpty(wordToComplete) || "Creating".StartsWith(wordToComplete, global::System.StringComparison.InvariantCultureIgnoreCase)) + { + yield return new global::System.Management.Automation.CompletionResult("'Creating'", "Creating", global::System.Management.Automation.CompletionResultType.ParameterValue, "Creating"); + } + if (global::System.String.IsNullOrEmpty(wordToComplete) || "Updating".StartsWith(wordToComplete, global::System.StringComparison.InvariantCultureIgnoreCase)) + { + yield return new global::System.Management.Automation.CompletionResult("'Updating'", "Updating", global::System.Management.Automation.CompletionResultType.ParameterValue, "Updating"); + } + if (global::System.String.IsNullOrEmpty(wordToComplete) || "Deleting".StartsWith(wordToComplete, global::System.StringComparison.InvariantCultureIgnoreCase)) + { + yield return new global::System.Management.Automation.CompletionResult("'Deleting'", "Deleting", global::System.Management.Automation.CompletionResultType.ParameterValue, "Deleting"); + } + if (global::System.String.IsNullOrEmpty(wordToComplete) || "Succeeded".StartsWith(wordToComplete, global::System.StringComparison.InvariantCultureIgnoreCase)) + { + yield return new global::System.Management.Automation.CompletionResult("'Succeeded'", "Succeeded", global::System.Management.Automation.CompletionResultType.ParameterValue, "Succeeded"); + } + if (global::System.String.IsNullOrEmpty(wordToComplete) || "Canceled".StartsWith(wordToComplete, global::System.StringComparison.InvariantCultureIgnoreCase)) + { + yield return new global::System.Management.Automation.CompletionResult("'Canceled'", "Canceled", global::System.Management.Automation.CompletionResultType.ParameterValue, "Canceled"); + } + if (global::System.String.IsNullOrEmpty(wordToComplete) || "Failed".StartsWith(wordToComplete, global::System.StringComparison.InvariantCultureIgnoreCase)) + { + yield return new global::System.Management.Automation.CompletionResult("'Failed'", "Failed", global::System.Management.Automation.CompletionResultType.ParameterValue, "Failed"); + } + } + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Support/PartnerDestinationProvisioningState.TypeConverter.cs b/swaggerci/eventgrid/generated/api/Support/PartnerDestinationProvisioningState.TypeConverter.cs new file mode 100644 index 000000000000..3fd4bb061a1e --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Support/PartnerDestinationProvisioningState.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.EventGrid.Support +{ + + /// Provisioning state of the partner destination. + public partial class PartnerDestinationProvisioningStateTypeConverter : + global::System.Management.Automation.PSTypeConverter + { + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the to convert from + /// the to convert 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) => PartnerDestinationProvisioningState.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/eventgrid/generated/api/Support/PartnerDestinationProvisioningState.cs b/swaggerci/eventgrid/generated/api/Support/PartnerDestinationProvisioningState.cs new file mode 100644 index 000000000000..ecfdd1c77fbf --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Support/PartnerDestinationProvisioningState.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.EventGrid.Support +{ + + /// Provisioning state of the partner destination. + public partial struct PartnerDestinationProvisioningState : + System.IEquatable + { + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.PartnerDestinationProvisioningState Canceled = @"Canceled"; + + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.PartnerDestinationProvisioningState Creating = @"Creating"; + + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.PartnerDestinationProvisioningState Deleting = @"Deleting"; + + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.PartnerDestinationProvisioningState Failed = @"Failed"; + + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.PartnerDestinationProvisioningState Succeeded = @"Succeeded"; + + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.PartnerDestinationProvisioningState Updating = @"Updating"; + + /// + /// the value for an instance of the Enum. + /// + private string _value { get; set; } + + /// Conversion from arbitrary object to PartnerDestinationProvisioningState + /// the value to convert to an instance of . + internal static object CreateFrom(object value) + { + return new PartnerDestinationProvisioningState(global::System.Convert.ToString(value)); + } + + /// Compares values of enum type PartnerDestinationProvisioningState + /// 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.EventGrid.Support.PartnerDestinationProvisioningState e) + { + return _value.Equals(e._value); + } + + /// + /// Compares values of enum type PartnerDestinationProvisioningState (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 PartnerDestinationProvisioningState && Equals((PartnerDestinationProvisioningState)obj); + } + + /// Returns hashCode for enum PartnerDestinationProvisioningState + /// 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 PartnerDestinationProvisioningState(string underlyingValue) + { + this._value = underlyingValue; + } + + /// Returns string representation for PartnerDestinationProvisioningState + /// A string for this value. + public override string ToString() + { + return this._value; + } + + /// Implicit operator to convert string to PartnerDestinationProvisioningState + /// the value to convert to an instance of . + + public static implicit operator PartnerDestinationProvisioningState(string value) + { + return new PartnerDestinationProvisioningState(value); + } + + /// Implicit operator to convert PartnerDestinationProvisioningState to string + /// the value to convert to an instance of . + + public static implicit operator string(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.PartnerDestinationProvisioningState e) + { + return e._value; + } + + /// Overriding != operator for enum PartnerDestinationProvisioningState + /// 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.EventGrid.Support.PartnerDestinationProvisioningState e1, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.PartnerDestinationProvisioningState e2) + { + return !e2.Equals(e1); + } + + /// Overriding == operator for enum PartnerDestinationProvisioningState + /// 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.EventGrid.Support.PartnerDestinationProvisioningState e1, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.PartnerDestinationProvisioningState e2) + { + return e2.Equals(e1); + } + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Support/PartnerNamespaceProvisioningState.Completer.cs b/swaggerci/eventgrid/generated/api/Support/PartnerNamespaceProvisioningState.Completer.cs new file mode 100644 index 000000000000..3766c20c0e8e --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Support/PartnerNamespaceProvisioningState.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.EventGrid.Support +{ + + /// Provisioning state of the partner namespace. + [System.ComponentModel.TypeConverter(typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.PartnerNamespaceProvisioningStateTypeConverter))] + public partial struct PartnerNamespaceProvisioningState : + System.Management.Automation.IArgumentCompleter + { + + /// + /// Implementations of this function are called by PowerShell to complete arguments. + /// + /// The name of the command that needs argument completion. + /// The name of the parameter that needs argument completion. + /// The (possibly empty) word being completed. + /// The command ast in case it is needed for completion. + /// This parameter is similar to $PSBoundParameters, except that sometimes PowerShell cannot + /// or will not attempt to evaluate an argument, in which case you may need to use commandAst. + /// + /// A collection of completion results, most like with ResultType set to ParameterValue. + /// + public global::System.Collections.Generic.IEnumerable CompleteArgument(global::System.String commandName, global::System.String parameterName, global::System.String wordToComplete, global::System.Management.Automation.Language.CommandAst commandAst, global::System.Collections.IDictionary fakeBoundParameters) + { + if (global::System.String.IsNullOrEmpty(wordToComplete) || "Creating".StartsWith(wordToComplete, global::System.StringComparison.InvariantCultureIgnoreCase)) + { + yield return new global::System.Management.Automation.CompletionResult("'Creating'", "Creating", global::System.Management.Automation.CompletionResultType.ParameterValue, "Creating"); + } + if (global::System.String.IsNullOrEmpty(wordToComplete) || "Updating".StartsWith(wordToComplete, global::System.StringComparison.InvariantCultureIgnoreCase)) + { + yield return new global::System.Management.Automation.CompletionResult("'Updating'", "Updating", global::System.Management.Automation.CompletionResultType.ParameterValue, "Updating"); + } + if (global::System.String.IsNullOrEmpty(wordToComplete) || "Deleting".StartsWith(wordToComplete, global::System.StringComparison.InvariantCultureIgnoreCase)) + { + yield return new global::System.Management.Automation.CompletionResult("'Deleting'", "Deleting", global::System.Management.Automation.CompletionResultType.ParameterValue, "Deleting"); + } + if (global::System.String.IsNullOrEmpty(wordToComplete) || "Succeeded".StartsWith(wordToComplete, global::System.StringComparison.InvariantCultureIgnoreCase)) + { + yield return new global::System.Management.Automation.CompletionResult("'Succeeded'", "Succeeded", global::System.Management.Automation.CompletionResultType.ParameterValue, "Succeeded"); + } + if (global::System.String.IsNullOrEmpty(wordToComplete) || "Canceled".StartsWith(wordToComplete, global::System.StringComparison.InvariantCultureIgnoreCase)) + { + yield return new global::System.Management.Automation.CompletionResult("'Canceled'", "Canceled", global::System.Management.Automation.CompletionResultType.ParameterValue, "Canceled"); + } + if (global::System.String.IsNullOrEmpty(wordToComplete) || "Failed".StartsWith(wordToComplete, global::System.StringComparison.InvariantCultureIgnoreCase)) + { + yield return new global::System.Management.Automation.CompletionResult("'Failed'", "Failed", global::System.Management.Automation.CompletionResultType.ParameterValue, "Failed"); + } + } + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Support/PartnerNamespaceProvisioningState.TypeConverter.cs b/swaggerci/eventgrid/generated/api/Support/PartnerNamespaceProvisioningState.TypeConverter.cs new file mode 100644 index 000000000000..a633c4963ba9 --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Support/PartnerNamespaceProvisioningState.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.EventGrid.Support +{ + + /// Provisioning state of the partner namespace. + public partial class PartnerNamespaceProvisioningStateTypeConverter : + global::System.Management.Automation.PSTypeConverter + { + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the to convert from + /// the to convert 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) => PartnerNamespaceProvisioningState.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/eventgrid/generated/api/Support/PartnerNamespaceProvisioningState.cs b/swaggerci/eventgrid/generated/api/Support/PartnerNamespaceProvisioningState.cs new file mode 100644 index 000000000000..77de8cdecd1e --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Support/PartnerNamespaceProvisioningState.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.EventGrid.Support +{ + + /// Provisioning state of the partner namespace. + public partial struct PartnerNamespaceProvisioningState : + System.IEquatable + { + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.PartnerNamespaceProvisioningState Canceled = @"Canceled"; + + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.PartnerNamespaceProvisioningState Creating = @"Creating"; + + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.PartnerNamespaceProvisioningState Deleting = @"Deleting"; + + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.PartnerNamespaceProvisioningState Failed = @"Failed"; + + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.PartnerNamespaceProvisioningState Succeeded = @"Succeeded"; + + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.PartnerNamespaceProvisioningState Updating = @"Updating"; + + /// + /// the value for an instance of the Enum. + /// + private string _value { get; set; } + + /// Conversion from arbitrary object to PartnerNamespaceProvisioningState + /// the value to convert to an instance of . + internal static object CreateFrom(object value) + { + return new PartnerNamespaceProvisioningState(global::System.Convert.ToString(value)); + } + + /// Compares values of enum type PartnerNamespaceProvisioningState + /// 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.EventGrid.Support.PartnerNamespaceProvisioningState e) + { + return _value.Equals(e._value); + } + + /// + /// Compares values of enum type PartnerNamespaceProvisioningState (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 PartnerNamespaceProvisioningState && Equals((PartnerNamespaceProvisioningState)obj); + } + + /// Returns hashCode for enum PartnerNamespaceProvisioningState + /// 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 PartnerNamespaceProvisioningState(string underlyingValue) + { + this._value = underlyingValue; + } + + /// Returns string representation for PartnerNamespaceProvisioningState + /// A string for this value. + public override string ToString() + { + return this._value; + } + + /// Implicit operator to convert string to PartnerNamespaceProvisioningState + /// the value to convert to an instance of . + + public static implicit operator PartnerNamespaceProvisioningState(string value) + { + return new PartnerNamespaceProvisioningState(value); + } + + /// Implicit operator to convert PartnerNamespaceProvisioningState to string + /// the value to convert to an instance of . + + public static implicit operator string(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.PartnerNamespaceProvisioningState e) + { + return e._value; + } + + /// Overriding != operator for enum PartnerNamespaceProvisioningState + /// 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.EventGrid.Support.PartnerNamespaceProvisioningState e1, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.PartnerNamespaceProvisioningState e2) + { + return !e2.Equals(e1); + } + + /// Overriding == operator for enum PartnerNamespaceProvisioningState + /// 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.EventGrid.Support.PartnerNamespaceProvisioningState e1, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.PartnerNamespaceProvisioningState e2) + { + return e2.Equals(e1); + } + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Support/PartnerRegistrationProvisioningState.Completer.cs b/swaggerci/eventgrid/generated/api/Support/PartnerRegistrationProvisioningState.Completer.cs new file mode 100644 index 000000000000..a131a1f98669 --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Support/PartnerRegistrationProvisioningState.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.EventGrid.Support +{ + + /// Provisioning state of the partner registration. + [System.ComponentModel.TypeConverter(typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.PartnerRegistrationProvisioningStateTypeConverter))] + public partial struct PartnerRegistrationProvisioningState : + System.Management.Automation.IArgumentCompleter + { + + /// + /// Implementations of this function are called by PowerShell to complete arguments. + /// + /// The name of the command that needs argument completion. + /// The name of the parameter that needs argument completion. + /// The (possibly empty) word being completed. + /// The command ast in case it is needed for completion. + /// This parameter is similar to $PSBoundParameters, except that sometimes PowerShell cannot + /// or will not attempt to evaluate an argument, in which case you may need to use commandAst. + /// + /// A collection of completion results, most like with ResultType set to ParameterValue. + /// + public global::System.Collections.Generic.IEnumerable CompleteArgument(global::System.String commandName, global::System.String parameterName, global::System.String wordToComplete, global::System.Management.Automation.Language.CommandAst commandAst, global::System.Collections.IDictionary fakeBoundParameters) + { + if (global::System.String.IsNullOrEmpty(wordToComplete) || "Creating".StartsWith(wordToComplete, global::System.StringComparison.InvariantCultureIgnoreCase)) + { + yield return new global::System.Management.Automation.CompletionResult("'Creating'", "Creating", global::System.Management.Automation.CompletionResultType.ParameterValue, "Creating"); + } + if (global::System.String.IsNullOrEmpty(wordToComplete) || "Updating".StartsWith(wordToComplete, global::System.StringComparison.InvariantCultureIgnoreCase)) + { + yield return new global::System.Management.Automation.CompletionResult("'Updating'", "Updating", global::System.Management.Automation.CompletionResultType.ParameterValue, "Updating"); + } + if (global::System.String.IsNullOrEmpty(wordToComplete) || "Deleting".StartsWith(wordToComplete, global::System.StringComparison.InvariantCultureIgnoreCase)) + { + yield return new global::System.Management.Automation.CompletionResult("'Deleting'", "Deleting", global::System.Management.Automation.CompletionResultType.ParameterValue, "Deleting"); + } + if (global::System.String.IsNullOrEmpty(wordToComplete) || "Succeeded".StartsWith(wordToComplete, global::System.StringComparison.InvariantCultureIgnoreCase)) + { + yield return new global::System.Management.Automation.CompletionResult("'Succeeded'", "Succeeded", global::System.Management.Automation.CompletionResultType.ParameterValue, "Succeeded"); + } + if (global::System.String.IsNullOrEmpty(wordToComplete) || "Canceled".StartsWith(wordToComplete, global::System.StringComparison.InvariantCultureIgnoreCase)) + { + yield return new global::System.Management.Automation.CompletionResult("'Canceled'", "Canceled", global::System.Management.Automation.CompletionResultType.ParameterValue, "Canceled"); + } + if (global::System.String.IsNullOrEmpty(wordToComplete) || "Failed".StartsWith(wordToComplete, global::System.StringComparison.InvariantCultureIgnoreCase)) + { + yield return new global::System.Management.Automation.CompletionResult("'Failed'", "Failed", global::System.Management.Automation.CompletionResultType.ParameterValue, "Failed"); + } + } + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Support/PartnerRegistrationProvisioningState.TypeConverter.cs b/swaggerci/eventgrid/generated/api/Support/PartnerRegistrationProvisioningState.TypeConverter.cs new file mode 100644 index 000000000000..d55aae19c928 --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Support/PartnerRegistrationProvisioningState.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.EventGrid.Support +{ + + /// Provisioning state of the partner registration. + public partial class PartnerRegistrationProvisioningStateTypeConverter : + global::System.Management.Automation.PSTypeConverter + { + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the to convert from + /// the to convert 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) => PartnerRegistrationProvisioningState.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/eventgrid/generated/api/Support/PartnerRegistrationProvisioningState.cs b/swaggerci/eventgrid/generated/api/Support/PartnerRegistrationProvisioningState.cs new file mode 100644 index 000000000000..ac9e01163458 --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Support/PartnerRegistrationProvisioningState.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.EventGrid.Support +{ + + /// Provisioning state of the partner registration. + public partial struct PartnerRegistrationProvisioningState : + System.IEquatable + { + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.PartnerRegistrationProvisioningState Canceled = @"Canceled"; + + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.PartnerRegistrationProvisioningState Creating = @"Creating"; + + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.PartnerRegistrationProvisioningState Deleting = @"Deleting"; + + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.PartnerRegistrationProvisioningState Failed = @"Failed"; + + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.PartnerRegistrationProvisioningState Succeeded = @"Succeeded"; + + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.PartnerRegistrationProvisioningState Updating = @"Updating"; + + /// + /// the value for an instance of the Enum. + /// + private string _value { get; set; } + + /// Conversion from arbitrary object to PartnerRegistrationProvisioningState + /// the value to convert to an instance of . + internal static object CreateFrom(object value) + { + return new PartnerRegistrationProvisioningState(global::System.Convert.ToString(value)); + } + + /// Compares values of enum type PartnerRegistrationProvisioningState + /// 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.EventGrid.Support.PartnerRegistrationProvisioningState e) + { + return _value.Equals(e._value); + } + + /// + /// Compares values of enum type PartnerRegistrationProvisioningState (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 PartnerRegistrationProvisioningState && Equals((PartnerRegistrationProvisioningState)obj); + } + + /// Returns hashCode for enum PartnerRegistrationProvisioningState + /// 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 PartnerRegistrationProvisioningState(string underlyingValue) + { + this._value = underlyingValue; + } + + /// Returns string representation for PartnerRegistrationProvisioningState + /// A string for this value. + public override string ToString() + { + return this._value; + } + + /// Implicit operator to convert string to PartnerRegistrationProvisioningState + /// the value to convert to an instance of . + + public static implicit operator PartnerRegistrationProvisioningState(string value) + { + return new PartnerRegistrationProvisioningState(value); + } + + /// Implicit operator to convert PartnerRegistrationProvisioningState to string + /// the value to convert to an instance of . + + public static implicit operator string(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.PartnerRegistrationProvisioningState e) + { + return e._value; + } + + /// Overriding != operator for enum PartnerRegistrationProvisioningState + /// 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.EventGrid.Support.PartnerRegistrationProvisioningState e1, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.PartnerRegistrationProvisioningState e2) + { + return !e2.Equals(e1); + } + + /// Overriding == operator for enum PartnerRegistrationProvisioningState + /// 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.EventGrid.Support.PartnerRegistrationProvisioningState e1, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.PartnerRegistrationProvisioningState e2) + { + return e2.Equals(e1); + } + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Support/PartnerRegistrationVisibilityState.Completer.cs b/swaggerci/eventgrid/generated/api/Support/PartnerRegistrationVisibilityState.Completer.cs new file mode 100644 index 000000000000..b0ae78f4fb19 --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Support/PartnerRegistrationVisibilityState.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.EventGrid.Support +{ + + /// Visibility state of the partner registration. + [System.ComponentModel.TypeConverter(typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.PartnerRegistrationVisibilityStateTypeConverter))] + public partial struct PartnerRegistrationVisibilityState : + 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) || "Hidden".StartsWith(wordToComplete, global::System.StringComparison.InvariantCultureIgnoreCase)) + { + yield return new global::System.Management.Automation.CompletionResult("'Hidden'", "Hidden", global::System.Management.Automation.CompletionResultType.ParameterValue, "Hidden"); + } + if (global::System.String.IsNullOrEmpty(wordToComplete) || "PublicPreview".StartsWith(wordToComplete, global::System.StringComparison.InvariantCultureIgnoreCase)) + { + yield return new global::System.Management.Automation.CompletionResult("'PublicPreview'", "PublicPreview", global::System.Management.Automation.CompletionResultType.ParameterValue, "PublicPreview"); + } + if (global::System.String.IsNullOrEmpty(wordToComplete) || "GenerallyAvailable".StartsWith(wordToComplete, global::System.StringComparison.InvariantCultureIgnoreCase)) + { + yield return new global::System.Management.Automation.CompletionResult("'GenerallyAvailable'", "GenerallyAvailable", global::System.Management.Automation.CompletionResultType.ParameterValue, "GenerallyAvailable"); + } + } + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Support/PartnerRegistrationVisibilityState.TypeConverter.cs b/swaggerci/eventgrid/generated/api/Support/PartnerRegistrationVisibilityState.TypeConverter.cs new file mode 100644 index 000000000000..a9789076a0e6 --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Support/PartnerRegistrationVisibilityState.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.EventGrid.Support +{ + + /// Visibility state of the partner registration. + public partial class PartnerRegistrationVisibilityStateTypeConverter : + global::System.Management.Automation.PSTypeConverter + { + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the to convert from + /// the to convert 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) => PartnerRegistrationVisibilityState.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/eventgrid/generated/api/Support/PartnerRegistrationVisibilityState.cs b/swaggerci/eventgrid/generated/api/Support/PartnerRegistrationVisibilityState.cs new file mode 100644 index 000000000000..05ac85ea950d --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Support/PartnerRegistrationVisibilityState.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.EventGrid.Support +{ + + /// Visibility state of the partner registration. + public partial struct PartnerRegistrationVisibilityState : + System.IEquatable + { + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.PartnerRegistrationVisibilityState GenerallyAvailable = @"GenerallyAvailable"; + + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.PartnerRegistrationVisibilityState Hidden = @"Hidden"; + + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.PartnerRegistrationVisibilityState PublicPreview = @"PublicPreview"; + + /// + /// the value for an instance of the Enum. + /// + private string _value { get; set; } + + /// Conversion from arbitrary object to PartnerRegistrationVisibilityState + /// the value to convert to an instance of . + internal static object CreateFrom(object value) + { + return new PartnerRegistrationVisibilityState(global::System.Convert.ToString(value)); + } + + /// Compares values of enum type PartnerRegistrationVisibilityState + /// 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.EventGrid.Support.PartnerRegistrationVisibilityState e) + { + return _value.Equals(e._value); + } + + /// + /// Compares values of enum type PartnerRegistrationVisibilityState (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 PartnerRegistrationVisibilityState && Equals((PartnerRegistrationVisibilityState)obj); + } + + /// Returns hashCode for enum PartnerRegistrationVisibilityState + /// 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 PartnerRegistrationVisibilityState(string underlyingValue) + { + this._value = underlyingValue; + } + + /// Returns string representation for PartnerRegistrationVisibilityState + /// A string for this value. + public override string ToString() + { + return this._value; + } + + /// Implicit operator to convert string to PartnerRegistrationVisibilityState + /// the value to convert to an instance of . + + public static implicit operator PartnerRegistrationVisibilityState(string value) + { + return new PartnerRegistrationVisibilityState(value); + } + + /// Implicit operator to convert PartnerRegistrationVisibilityState to string + /// the value to convert to an instance of . + + public static implicit operator string(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.PartnerRegistrationVisibilityState e) + { + return e._value; + } + + /// Overriding != operator for enum PartnerRegistrationVisibilityState + /// 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.EventGrid.Support.PartnerRegistrationVisibilityState e1, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.PartnerRegistrationVisibilityState e2) + { + return !e2.Equals(e1); + } + + /// Overriding == operator for enum PartnerRegistrationVisibilityState + /// 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.EventGrid.Support.PartnerRegistrationVisibilityState e1, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.PartnerRegistrationVisibilityState e2) + { + return e2.Equals(e1); + } + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Support/PartnerTopicActivationState.Completer.cs b/swaggerci/eventgrid/generated/api/Support/PartnerTopicActivationState.Completer.cs new file mode 100644 index 000000000000..489041d74cfc --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Support/PartnerTopicActivationState.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.EventGrid.Support +{ + + /// Activation state of the partner topic. + [System.ComponentModel.TypeConverter(typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.PartnerTopicActivationStateTypeConverter))] + public partial struct PartnerTopicActivationState : + 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) || "NeverActivated".StartsWith(wordToComplete, global::System.StringComparison.InvariantCultureIgnoreCase)) + { + yield return new global::System.Management.Automation.CompletionResult("'NeverActivated'", "NeverActivated", global::System.Management.Automation.CompletionResultType.ParameterValue, "NeverActivated"); + } + if (global::System.String.IsNullOrEmpty(wordToComplete) || "Activated".StartsWith(wordToComplete, global::System.StringComparison.InvariantCultureIgnoreCase)) + { + yield return new global::System.Management.Automation.CompletionResult("'Activated'", "Activated", global::System.Management.Automation.CompletionResultType.ParameterValue, "Activated"); + } + if (global::System.String.IsNullOrEmpty(wordToComplete) || "Deactivated".StartsWith(wordToComplete, global::System.StringComparison.InvariantCultureIgnoreCase)) + { + yield return new global::System.Management.Automation.CompletionResult("'Deactivated'", "Deactivated", global::System.Management.Automation.CompletionResultType.ParameterValue, "Deactivated"); + } + } + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Support/PartnerTopicActivationState.TypeConverter.cs b/swaggerci/eventgrid/generated/api/Support/PartnerTopicActivationState.TypeConverter.cs new file mode 100644 index 000000000000..7c044b8685d0 --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Support/PartnerTopicActivationState.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.EventGrid.Support +{ + + /// Activation state of the partner topic. + public partial class PartnerTopicActivationStateTypeConverter : + global::System.Management.Automation.PSTypeConverter + { + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the to convert from + /// the to convert 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) => PartnerTopicActivationState.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/eventgrid/generated/api/Support/PartnerTopicActivationState.cs b/swaggerci/eventgrid/generated/api/Support/PartnerTopicActivationState.cs new file mode 100644 index 000000000000..b525e0f3ae51 --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Support/PartnerTopicActivationState.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.EventGrid.Support +{ + + /// Activation state of the partner topic. + public partial struct PartnerTopicActivationState : + System.IEquatable + { + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.PartnerTopicActivationState Activated = @"Activated"; + + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.PartnerTopicActivationState Deactivated = @"Deactivated"; + + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.PartnerTopicActivationState NeverActivated = @"NeverActivated"; + + /// + /// the value for an instance of the Enum. + /// + private string _value { get; set; } + + /// Conversion from arbitrary object to PartnerTopicActivationState + /// the value to convert to an instance of . + internal static object CreateFrom(object value) + { + return new PartnerTopicActivationState(global::System.Convert.ToString(value)); + } + + /// Compares values of enum type PartnerTopicActivationState + /// 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.EventGrid.Support.PartnerTopicActivationState e) + { + return _value.Equals(e._value); + } + + /// Compares values of enum type PartnerTopicActivationState (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 PartnerTopicActivationState && Equals((PartnerTopicActivationState)obj); + } + + /// Returns hashCode for enum PartnerTopicActivationState + /// 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 PartnerTopicActivationState(string underlyingValue) + { + this._value = underlyingValue; + } + + /// Returns string representation for PartnerTopicActivationState + /// A string for this value. + public override string ToString() + { + return this._value; + } + + /// Implicit operator to convert string to PartnerTopicActivationState + /// the value to convert to an instance of . + + public static implicit operator PartnerTopicActivationState(string value) + { + return new PartnerTopicActivationState(value); + } + + /// Implicit operator to convert PartnerTopicActivationState to string + /// the value to convert to an instance of . + + public static implicit operator string(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.PartnerTopicActivationState e) + { + return e._value; + } + + /// Overriding != operator for enum PartnerTopicActivationState + /// 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.EventGrid.Support.PartnerTopicActivationState e1, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.PartnerTopicActivationState e2) + { + return !e2.Equals(e1); + } + + /// Overriding == operator for enum PartnerTopicActivationState + /// 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.EventGrid.Support.PartnerTopicActivationState e1, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.PartnerTopicActivationState e2) + { + return e2.Equals(e1); + } + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Support/PartnerTopicProvisioningState.Completer.cs b/swaggerci/eventgrid/generated/api/Support/PartnerTopicProvisioningState.Completer.cs new file mode 100644 index 000000000000..60c28a14e30d --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Support/PartnerTopicProvisioningState.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.EventGrid.Support +{ + + /// Provisioning state of the partner topic. + [System.ComponentModel.TypeConverter(typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.PartnerTopicProvisioningStateTypeConverter))] + public partial struct PartnerTopicProvisioningState : + System.Management.Automation.IArgumentCompleter + { + + /// + /// Implementations of this function are called by PowerShell to complete arguments. + /// + /// The name of the command that needs argument completion. + /// The name of the parameter that needs argument completion. + /// The (possibly empty) word being completed. + /// The command ast in case it is needed for completion. + /// This parameter is similar to $PSBoundParameters, except that sometimes PowerShell cannot + /// or will not attempt to evaluate an argument, in which case you may need to use commandAst. + /// + /// A collection of completion results, most like with ResultType set to ParameterValue. + /// + public global::System.Collections.Generic.IEnumerable CompleteArgument(global::System.String commandName, global::System.String parameterName, global::System.String wordToComplete, global::System.Management.Automation.Language.CommandAst commandAst, global::System.Collections.IDictionary fakeBoundParameters) + { + if (global::System.String.IsNullOrEmpty(wordToComplete) || "Creating".StartsWith(wordToComplete, global::System.StringComparison.InvariantCultureIgnoreCase)) + { + yield return new global::System.Management.Automation.CompletionResult("'Creating'", "Creating", global::System.Management.Automation.CompletionResultType.ParameterValue, "Creating"); + } + if (global::System.String.IsNullOrEmpty(wordToComplete) || "Updating".StartsWith(wordToComplete, global::System.StringComparison.InvariantCultureIgnoreCase)) + { + yield return new global::System.Management.Automation.CompletionResult("'Updating'", "Updating", global::System.Management.Automation.CompletionResultType.ParameterValue, "Updating"); + } + if (global::System.String.IsNullOrEmpty(wordToComplete) || "Deleting".StartsWith(wordToComplete, global::System.StringComparison.InvariantCultureIgnoreCase)) + { + yield return new global::System.Management.Automation.CompletionResult("'Deleting'", "Deleting", global::System.Management.Automation.CompletionResultType.ParameterValue, "Deleting"); + } + if (global::System.String.IsNullOrEmpty(wordToComplete) || "Succeeded".StartsWith(wordToComplete, global::System.StringComparison.InvariantCultureIgnoreCase)) + { + yield return new global::System.Management.Automation.CompletionResult("'Succeeded'", "Succeeded", global::System.Management.Automation.CompletionResultType.ParameterValue, "Succeeded"); + } + if (global::System.String.IsNullOrEmpty(wordToComplete) || "Canceled".StartsWith(wordToComplete, global::System.StringComparison.InvariantCultureIgnoreCase)) + { + yield return new global::System.Management.Automation.CompletionResult("'Canceled'", "Canceled", global::System.Management.Automation.CompletionResultType.ParameterValue, "Canceled"); + } + if (global::System.String.IsNullOrEmpty(wordToComplete) || "Failed".StartsWith(wordToComplete, global::System.StringComparison.InvariantCultureIgnoreCase)) + { + yield return new global::System.Management.Automation.CompletionResult("'Failed'", "Failed", global::System.Management.Automation.CompletionResultType.ParameterValue, "Failed"); + } + } + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Support/PartnerTopicProvisioningState.TypeConverter.cs b/swaggerci/eventgrid/generated/api/Support/PartnerTopicProvisioningState.TypeConverter.cs new file mode 100644 index 000000000000..11323dcad7d1 --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Support/PartnerTopicProvisioningState.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.EventGrid.Support +{ + + /// Provisioning state of the partner topic. + public partial class PartnerTopicProvisioningStateTypeConverter : + global::System.Management.Automation.PSTypeConverter + { + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the to convert from + /// the to convert 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) => PartnerTopicProvisioningState.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/eventgrid/generated/api/Support/PartnerTopicProvisioningState.cs b/swaggerci/eventgrid/generated/api/Support/PartnerTopicProvisioningState.cs new file mode 100644 index 000000000000..6f3e947d954c --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Support/PartnerTopicProvisioningState.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.EventGrid.Support +{ + + /// Provisioning state of the partner topic. + public partial struct PartnerTopicProvisioningState : + System.IEquatable + { + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.PartnerTopicProvisioningState Canceled = @"Canceled"; + + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.PartnerTopicProvisioningState Creating = @"Creating"; + + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.PartnerTopicProvisioningState Deleting = @"Deleting"; + + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.PartnerTopicProvisioningState Failed = @"Failed"; + + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.PartnerTopicProvisioningState Succeeded = @"Succeeded"; + + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.PartnerTopicProvisioningState Updating = @"Updating"; + + /// + /// the value for an instance of the Enum. + /// + private string _value { get; set; } + + /// Conversion from arbitrary object to PartnerTopicProvisioningState + /// the value to convert to an instance of . + internal static object CreateFrom(object value) + { + return new PartnerTopicProvisioningState(global::System.Convert.ToString(value)); + } + + /// Compares values of enum type PartnerTopicProvisioningState + /// 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.EventGrid.Support.PartnerTopicProvisioningState e) + { + return _value.Equals(e._value); + } + + /// + /// Compares values of enum type PartnerTopicProvisioningState (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 PartnerTopicProvisioningState && Equals((PartnerTopicProvisioningState)obj); + } + + /// Returns hashCode for enum PartnerTopicProvisioningState + /// 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 PartnerTopicProvisioningState(string underlyingValue) + { + this._value = underlyingValue; + } + + /// Returns string representation for PartnerTopicProvisioningState + /// A string for this value. + public override string ToString() + { + return this._value; + } + + /// Implicit operator to convert string to PartnerTopicProvisioningState + /// the value to convert to an instance of . + + public static implicit operator PartnerTopicProvisioningState(string value) + { + return new PartnerTopicProvisioningState(value); + } + + /// Implicit operator to convert PartnerTopicProvisioningState to string + /// the value to convert to an instance of . + + public static implicit operator string(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.PartnerTopicProvisioningState e) + { + return e._value; + } + + /// Overriding != operator for enum PartnerTopicProvisioningState + /// 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.EventGrid.Support.PartnerTopicProvisioningState e1, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.PartnerTopicProvisioningState e2) + { + return !e2.Equals(e1); + } + + /// Overriding == operator for enum PartnerTopicProvisioningState + /// 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.EventGrid.Support.PartnerTopicProvisioningState e1, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.PartnerTopicProvisioningState e2) + { + return e2.Equals(e1); + } + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Support/PartnerTopicReadinessState.Completer.cs b/swaggerci/eventgrid/generated/api/Support/PartnerTopicReadinessState.Completer.cs new file mode 100644 index 000000000000..34f108eb4598 --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Support/PartnerTopicReadinessState.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.EventGrid.Support +{ + + /// The readiness state of the corresponding partner topic. + [System.ComponentModel.TypeConverter(typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.PartnerTopicReadinessStateTypeConverter))] + public partial struct PartnerTopicReadinessState : + 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) || "NotActivatedByUserYet".StartsWith(wordToComplete, global::System.StringComparison.InvariantCultureIgnoreCase)) + { + yield return new global::System.Management.Automation.CompletionResult("'NotActivatedByUserYet'", "NotActivatedByUserYet", global::System.Management.Automation.CompletionResultType.ParameterValue, "NotActivatedByUserYet"); + } + if (global::System.String.IsNullOrEmpty(wordToComplete) || "ActivatedByUser".StartsWith(wordToComplete, global::System.StringComparison.InvariantCultureIgnoreCase)) + { + yield return new global::System.Management.Automation.CompletionResult("'ActivatedByUser'", "ActivatedByUser", global::System.Management.Automation.CompletionResultType.ParameterValue, "ActivatedByUser"); + } + if (global::System.String.IsNullOrEmpty(wordToComplete) || "DeactivatedByUser".StartsWith(wordToComplete, global::System.StringComparison.InvariantCultureIgnoreCase)) + { + yield return new global::System.Management.Automation.CompletionResult("'DeactivatedByUser'", "DeactivatedByUser", global::System.Management.Automation.CompletionResultType.ParameterValue, "DeactivatedByUser"); + } + if (global::System.String.IsNullOrEmpty(wordToComplete) || "DeletedByUser".StartsWith(wordToComplete, global::System.StringComparison.InvariantCultureIgnoreCase)) + { + yield return new global::System.Management.Automation.CompletionResult("'DeletedByUser'", "DeletedByUser", global::System.Management.Automation.CompletionResultType.ParameterValue, "DeletedByUser"); + } + } + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Support/PartnerTopicReadinessState.TypeConverter.cs b/swaggerci/eventgrid/generated/api/Support/PartnerTopicReadinessState.TypeConverter.cs new file mode 100644 index 000000000000..9eb604174879 --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Support/PartnerTopicReadinessState.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.EventGrid.Support +{ + + /// The readiness state of the corresponding partner topic. + public partial class PartnerTopicReadinessStateTypeConverter : + global::System.Management.Automation.PSTypeConverter + { + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the to convert from + /// the to convert 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) => PartnerTopicReadinessState.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/eventgrid/generated/api/Support/PartnerTopicReadinessState.cs b/swaggerci/eventgrid/generated/api/Support/PartnerTopicReadinessState.cs new file mode 100644 index 000000000000..91c5eb41e209 --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Support/PartnerTopicReadinessState.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.EventGrid.Support +{ + + /// The readiness state of the corresponding partner topic. + public partial struct PartnerTopicReadinessState : + System.IEquatable + { + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.PartnerTopicReadinessState ActivatedByUser = @"ActivatedByUser"; + + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.PartnerTopicReadinessState DeactivatedByUser = @"DeactivatedByUser"; + + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.PartnerTopicReadinessState DeletedByUser = @"DeletedByUser"; + + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.PartnerTopicReadinessState NotActivatedByUserYet = @"NotActivatedByUserYet"; + + /// + /// the value for an instance of the Enum. + /// + private string _value { get; set; } + + /// Conversion from arbitrary object to PartnerTopicReadinessState + /// the value to convert to an instance of . + internal static object CreateFrom(object value) + { + return new PartnerTopicReadinessState(global::System.Convert.ToString(value)); + } + + /// Compares values of enum type PartnerTopicReadinessState + /// 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.EventGrid.Support.PartnerTopicReadinessState e) + { + return _value.Equals(e._value); + } + + /// Compares values of enum type PartnerTopicReadinessState (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 PartnerTopicReadinessState && Equals((PartnerTopicReadinessState)obj); + } + + /// Returns hashCode for enum PartnerTopicReadinessState + /// 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 PartnerTopicReadinessState(string underlyingValue) + { + this._value = underlyingValue; + } + + /// Returns string representation for PartnerTopicReadinessState + /// A string for this value. + public override string ToString() + { + return this._value; + } + + /// Implicit operator to convert string to PartnerTopicReadinessState + /// the value to convert to an instance of . + + public static implicit operator PartnerTopicReadinessState(string value) + { + return new PartnerTopicReadinessState(value); + } + + /// Implicit operator to convert PartnerTopicReadinessState to string + /// the value to convert to an instance of . + + public static implicit operator string(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.PartnerTopicReadinessState e) + { + return e._value; + } + + /// Overriding != operator for enum PartnerTopicReadinessState + /// 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.EventGrid.Support.PartnerTopicReadinessState e1, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.PartnerTopicReadinessState e2) + { + return !e2.Equals(e1); + } + + /// Overriding == operator for enum PartnerTopicReadinessState + /// 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.EventGrid.Support.PartnerTopicReadinessState e1, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.PartnerTopicReadinessState e2) + { + return e2.Equals(e1); + } + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Support/PartnerTopicRoutingMode.Completer.cs b/swaggerci/eventgrid/generated/api/Support/PartnerTopicRoutingMode.Completer.cs new file mode 100644 index 000000000000..399011d51479 --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Support/PartnerTopicRoutingMode.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.EventGrid.Support +{ + + /// + /// This determines if events published to this partner namespace should use the source attribute in the event payload + /// or use the channel name in the header when matching to the partner topic. If none is specified, source attribute routing + /// will be used to match the partner topic. + /// + [System.ComponentModel.TypeConverter(typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.PartnerTopicRoutingModeTypeConverter))] + public partial struct PartnerTopicRoutingMode : + 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) || "SourceEventAttribute".StartsWith(wordToComplete, global::System.StringComparison.InvariantCultureIgnoreCase)) + { + yield return new global::System.Management.Automation.CompletionResult("'SourceEventAttribute'", "SourceEventAttribute", global::System.Management.Automation.CompletionResultType.ParameterValue, "SourceEventAttribute"); + } + if (global::System.String.IsNullOrEmpty(wordToComplete) || "ChannelNameHeader".StartsWith(wordToComplete, global::System.StringComparison.InvariantCultureIgnoreCase)) + { + yield return new global::System.Management.Automation.CompletionResult("'ChannelNameHeader'", "ChannelNameHeader", global::System.Management.Automation.CompletionResultType.ParameterValue, "ChannelNameHeader"); + } + } + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Support/PartnerTopicRoutingMode.TypeConverter.cs b/swaggerci/eventgrid/generated/api/Support/PartnerTopicRoutingMode.TypeConverter.cs new file mode 100644 index 000000000000..780b1f1f639b --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Support/PartnerTopicRoutingMode.TypeConverter.cs @@ -0,0 +1,63 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support +{ + + /// + /// This determines if events published to this partner namespace should use the source attribute in the event payload + /// or use the channel name in the header when matching to the partner topic. If none is specified, source attribute routing + /// will be used to match the partner topic. + /// + public partial class PartnerTopicRoutingModeTypeConverter : + global::System.Management.Automation.PSTypeConverter + { + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the to convert from + /// the to convert 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) => PartnerTopicRoutingMode.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/eventgrid/generated/api/Support/PartnerTopicRoutingMode.cs b/swaggerci/eventgrid/generated/api/Support/PartnerTopicRoutingMode.cs new file mode 100644 index 000000000000..5c6dade6254a --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Support/PartnerTopicRoutingMode.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.EventGrid.Support +{ + + /// + /// This determines if events published to this partner namespace should use the source attribute in the event payload + /// or use the channel name in the header when matching to the partner topic. If none is specified, source attribute routing + /// will be used to match the partner topic. + /// + public partial struct PartnerTopicRoutingMode : + System.IEquatable + { + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.PartnerTopicRoutingMode ChannelNameHeader = @"ChannelNameHeader"; + + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.PartnerTopicRoutingMode SourceEventAttribute = @"SourceEventAttribute"; + + /// the value for an instance of the Enum. + private string _value { get; set; } + + /// Conversion from arbitrary object to PartnerTopicRoutingMode + /// the value to convert to an instance of . + internal static object CreateFrom(object value) + { + return new PartnerTopicRoutingMode(global::System.Convert.ToString(value)); + } + + /// Compares values of enum type PartnerTopicRoutingMode + /// 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.EventGrid.Support.PartnerTopicRoutingMode e) + { + return _value.Equals(e._value); + } + + /// Compares values of enum type PartnerTopicRoutingMode (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 PartnerTopicRoutingMode && Equals((PartnerTopicRoutingMode)obj); + } + + /// Returns hashCode for enum PartnerTopicRoutingMode + /// 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 PartnerTopicRoutingMode(string underlyingValue) + { + this._value = underlyingValue; + } + + /// Returns string representation for PartnerTopicRoutingMode + /// A string for this value. + public override string ToString() + { + return this._value; + } + + /// Implicit operator to convert string to PartnerTopicRoutingMode + /// the value to convert to an instance of . + + public static implicit operator PartnerTopicRoutingMode(string value) + { + return new PartnerTopicRoutingMode(value); + } + + /// Implicit operator to convert PartnerTopicRoutingMode to string + /// the value to convert to an instance of . + + public static implicit operator string(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.PartnerTopicRoutingMode e) + { + return e._value; + } + + /// Overriding != operator for enum PartnerTopicRoutingMode + /// 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.EventGrid.Support.PartnerTopicRoutingMode e1, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.PartnerTopicRoutingMode e2) + { + return !e2.Equals(e1); + } + + /// Overriding == operator for enum PartnerTopicRoutingMode + /// 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.EventGrid.Support.PartnerTopicRoutingMode e1, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.PartnerTopicRoutingMode e2) + { + return e2.Equals(e1); + } + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Support/PersistedConnectionStatus.Completer.cs b/swaggerci/eventgrid/generated/api/Support/PersistedConnectionStatus.Completer.cs new file mode 100644 index 000000000000..37b5b87426e2 --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Support/PersistedConnectionStatus.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.EventGrid.Support +{ + + /// Status of the connection. + [System.ComponentModel.TypeConverter(typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.PersistedConnectionStatusTypeConverter))] + public partial struct PersistedConnectionStatus : + 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"); + } + 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"); + } + } + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Support/PersistedConnectionStatus.TypeConverter.cs b/swaggerci/eventgrid/generated/api/Support/PersistedConnectionStatus.TypeConverter.cs new file mode 100644 index 000000000000..4f1997172bd4 --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Support/PersistedConnectionStatus.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.EventGrid.Support +{ + + /// Status of the connection. + public partial class PersistedConnectionStatusTypeConverter : + global::System.Management.Automation.PSTypeConverter + { + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the to convert from + /// the to convert 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) => PersistedConnectionStatus.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/eventgrid/generated/api/Support/PersistedConnectionStatus.cs b/swaggerci/eventgrid/generated/api/Support/PersistedConnectionStatus.cs new file mode 100644 index 000000000000..239bc6b9e150 --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Support/PersistedConnectionStatus.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.EventGrid.Support +{ + + /// Status of the connection. + public partial struct PersistedConnectionStatus : + System.IEquatable + { + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.PersistedConnectionStatus Approved = @"Approved"; + + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.PersistedConnectionStatus Disconnected = @"Disconnected"; + + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.PersistedConnectionStatus Pending = @"Pending"; + + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.PersistedConnectionStatus Rejected = @"Rejected"; + + /// the value for an instance of the Enum. + private string _value { get; set; } + + /// Conversion from arbitrary object to PersistedConnectionStatus + /// the value to convert to an instance of . + internal static object CreateFrom(object value) + { + return new PersistedConnectionStatus(global::System.Convert.ToString(value)); + } + + /// Compares values of enum type PersistedConnectionStatus + /// 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.EventGrid.Support.PersistedConnectionStatus e) + { + return _value.Equals(e._value); + } + + /// Compares values of enum type PersistedConnectionStatus (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 PersistedConnectionStatus && Equals((PersistedConnectionStatus)obj); + } + + /// Returns hashCode for enum PersistedConnectionStatus + /// 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 PersistedConnectionStatus(string underlyingValue) + { + this._value = underlyingValue; + } + + /// Returns string representation for PersistedConnectionStatus + /// A string for this value. + public override string ToString() + { + return this._value; + } + + /// Implicit operator to convert string to PersistedConnectionStatus + /// the value to convert to an instance of . + + public static implicit operator PersistedConnectionStatus(string value) + { + return new PersistedConnectionStatus(value); + } + + /// Implicit operator to convert PersistedConnectionStatus to string + /// the value to convert to an instance of . + + public static implicit operator string(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.PersistedConnectionStatus e) + { + return e._value; + } + + /// Overriding != operator for enum PersistedConnectionStatus + /// 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.EventGrid.Support.PersistedConnectionStatus e1, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.PersistedConnectionStatus e2) + { + return !e2.Equals(e1); + } + + /// Overriding == operator for enum PersistedConnectionStatus + /// 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.EventGrid.Support.PersistedConnectionStatus e1, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.PersistedConnectionStatus e2) + { + return e2.Equals(e1); + } + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Support/PublicNetworkAccess.Completer.cs b/swaggerci/eventgrid/generated/api/Support/PublicNetworkAccess.Completer.cs new file mode 100644 index 000000000000..00279bb41414 --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Support/PublicNetworkAccess.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.EventGrid.Support +{ + + /// + /// This determines if traffic is allowed over public network. By default it is enabled. + /// You can further restrict to specific IPs by configuring + /// + [System.ComponentModel.TypeConverter(typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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/eventgrid/generated/api/Support/PublicNetworkAccess.TypeConverter.cs b/swaggerci/eventgrid/generated/api/Support/PublicNetworkAccess.TypeConverter.cs new file mode 100644 index 000000000000..6c0d25c82391 --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Support/PublicNetworkAccess.TypeConverter.cs @@ -0,0 +1,63 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support +{ + + /// + /// This determines if traffic is allowed over public network. By default it is enabled. + /// You can further restrict to specific IPs by configuring + /// + 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/eventgrid/generated/api/Support/PublicNetworkAccess.cs b/swaggerci/eventgrid/generated/api/Support/PublicNetworkAccess.cs new file mode 100644 index 000000000000..c05b9bc26ed0 --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Support/PublicNetworkAccess.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.EventGrid.Support +{ + + /// + /// This determines if traffic is allowed over public network. By default it is enabled. + /// You can further restrict to specific IPs by configuring + /// + public partial struct PublicNetworkAccess : + System.IEquatable + { + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.PublicNetworkAccess Disabled = @"Disabled"; + + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.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.EventGrid.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.EventGrid.Support.PublicNetworkAccess e1, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Support.PublicNetworkAccess e1, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.PublicNetworkAccess e2) + { + return e2.Equals(e1); + } + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Support/ReadinessState.Completer.cs b/swaggerci/eventgrid/generated/api/Support/ReadinessState.Completer.cs new file mode 100644 index 000000000000..99bafa071983 --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Support/ReadinessState.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.EventGrid.Support +{ + + /// The readiness state of the corresponding partner topic. + [System.ComponentModel.TypeConverter(typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.ReadinessStateTypeConverter))] + public partial struct ReadinessState : + 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) || "NeverActivated".StartsWith(wordToComplete, global::System.StringComparison.InvariantCultureIgnoreCase)) + { + yield return new global::System.Management.Automation.CompletionResult("'NeverActivated'", "NeverActivated", global::System.Management.Automation.CompletionResultType.ParameterValue, "NeverActivated"); + } + if (global::System.String.IsNullOrEmpty(wordToComplete) || "Activated".StartsWith(wordToComplete, global::System.StringComparison.InvariantCultureIgnoreCase)) + { + yield return new global::System.Management.Automation.CompletionResult("'Activated'", "Activated", global::System.Management.Automation.CompletionResultType.ParameterValue, "Activated"); + } + } + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Support/ReadinessState.TypeConverter.cs b/swaggerci/eventgrid/generated/api/Support/ReadinessState.TypeConverter.cs new file mode 100644 index 000000000000..fb1be0e93e26 --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Support/ReadinessState.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.EventGrid.Support +{ + + /// The readiness state of the corresponding partner topic. + public partial class ReadinessStateTypeConverter : + global::System.Management.Automation.PSTypeConverter + { + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the to convert from + /// the to convert 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) => ReadinessState.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/eventgrid/generated/api/Support/ReadinessState.cs b/swaggerci/eventgrid/generated/api/Support/ReadinessState.cs new file mode 100644 index 000000000000..296cd6ecd897 --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Support/ReadinessState.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.EventGrid.Support +{ + + /// The readiness state of the corresponding partner topic. + public partial struct ReadinessState : + System.IEquatable + { + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.ReadinessState Activated = @"Activated"; + + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.ReadinessState NeverActivated = @"NeverActivated"; + + /// the value for an instance of the Enum. + private string _value { get; set; } + + /// Conversion from arbitrary object to ReadinessState + /// the value to convert to an instance of . + internal static object CreateFrom(object value) + { + return new ReadinessState(global::System.Convert.ToString(value)); + } + + /// Compares values of enum type ReadinessState + /// 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.EventGrid.Support.ReadinessState e) + { + return _value.Equals(e._value); + } + + /// Compares values of enum type ReadinessState (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 ReadinessState && Equals((ReadinessState)obj); + } + + /// Returns hashCode for enum ReadinessState + /// 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 ReadinessState(string underlyingValue) + { + this._value = underlyingValue; + } + + /// Returns string representation for ReadinessState + /// A string for this value. + public override string ToString() + { + return this._value; + } + + /// Implicit operator to convert string to ReadinessState + /// the value to convert to an instance of . + + public static implicit operator ReadinessState(string value) + { + return new ReadinessState(value); + } + + /// Implicit operator to convert ReadinessState to string + /// the value to convert to an instance of . + + public static implicit operator string(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.ReadinessState e) + { + return e._value; + } + + /// Overriding != operator for enum ReadinessState + /// 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.EventGrid.Support.ReadinessState e1, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.ReadinessState e2) + { + return !e2.Equals(e1); + } + + /// Overriding == operator for enum ReadinessState + /// 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.EventGrid.Support.ReadinessState e1, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.ReadinessState e2) + { + return e2.Equals(e1); + } + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Support/ResourceKind.Completer.cs b/swaggerci/eventgrid/generated/api/Support/ResourceKind.Completer.cs new file mode 100644 index 000000000000..c4f1984b4a28 --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Support/ResourceKind.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.EventGrid.Support +{ + + /// Kind of the resource. + [System.ComponentModel.TypeConverter(typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.ResourceKindTypeConverter))] + public partial struct ResourceKind : + 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) || "Azure".StartsWith(wordToComplete, global::System.StringComparison.InvariantCultureIgnoreCase)) + { + yield return new global::System.Management.Automation.CompletionResult("'Azure'", "Azure", global::System.Management.Automation.CompletionResultType.ParameterValue, "Azure"); + } + if (global::System.String.IsNullOrEmpty(wordToComplete) || "AzureArc".StartsWith(wordToComplete, global::System.StringComparison.InvariantCultureIgnoreCase)) + { + yield return new global::System.Management.Automation.CompletionResult("'AzureArc'", "AzureArc", global::System.Management.Automation.CompletionResultType.ParameterValue, "AzureArc"); + } + } + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Support/ResourceKind.TypeConverter.cs b/swaggerci/eventgrid/generated/api/Support/ResourceKind.TypeConverter.cs new file mode 100644 index 000000000000..940bd3e29e59 --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Support/ResourceKind.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.EventGrid.Support +{ + + /// Kind of the resource. + public partial class ResourceKindTypeConverter : + global::System.Management.Automation.PSTypeConverter + { + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the to convert from + /// the to convert 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) => ResourceKind.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/eventgrid/generated/api/Support/ResourceKind.cs b/swaggerci/eventgrid/generated/api/Support/ResourceKind.cs new file mode 100644 index 000000000000..5fc6cd4ca20a --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Support/ResourceKind.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.EventGrid.Support +{ + + /// Kind of the resource. + public partial struct ResourceKind : + System.IEquatable + { + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.ResourceKind Azure = @"Azure"; + + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.ResourceKind AzureArc = @"AzureArc"; + + /// the value for an instance of the Enum. + private string _value { get; set; } + + /// Conversion from arbitrary object to ResourceKind + /// the value to convert to an instance of . + internal static object CreateFrom(object value) + { + return new ResourceKind(global::System.Convert.ToString(value)); + } + + /// Compares values of enum type ResourceKind + /// 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.EventGrid.Support.ResourceKind e) + { + return _value.Equals(e._value); + } + + /// Compares values of enum type ResourceKind (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 ResourceKind && Equals((ResourceKind)obj); + } + + /// Returns hashCode for enum ResourceKind + /// 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 ResourceKind(string underlyingValue) + { + this._value = underlyingValue; + } + + /// Returns string representation for ResourceKind + /// A string for this value. + public override string ToString() + { + return this._value; + } + + /// Implicit operator to convert string to ResourceKind + /// the value to convert to an instance of . + + public static implicit operator ResourceKind(string value) + { + return new ResourceKind(value); + } + + /// Implicit operator to convert ResourceKind to string + /// the value to convert to an instance of . + + public static implicit operator string(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.ResourceKind e) + { + return e._value; + } + + /// Overriding != operator for enum ResourceKind + /// 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.EventGrid.Support.ResourceKind e1, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.ResourceKind e2) + { + return !e2.Equals(e1); + } + + /// Overriding == operator for enum ResourceKind + /// 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.EventGrid.Support.ResourceKind e1, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.ResourceKind e2) + { + return e2.Equals(e1); + } + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Support/ResourceProvisioningState.Completer.cs b/swaggerci/eventgrid/generated/api/Support/ResourceProvisioningState.Completer.cs new file mode 100644 index 000000000000..2972e1a34adf --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Support/ResourceProvisioningState.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.EventGrid.Support +{ + + /// Provisioning state of the Private Endpoint Connection. + [System.ComponentModel.TypeConverter(typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.ResourceProvisioningStateTypeConverter))] + public partial struct ResourceProvisioningState : + System.Management.Automation.IArgumentCompleter + { + + /// + /// Implementations of this function are called by PowerShell to complete arguments. + /// + /// The name of the command that needs argument completion. + /// The name of the parameter that needs argument completion. + /// The (possibly empty) word being completed. + /// The command ast in case it is needed for completion. + /// This parameter is similar to $PSBoundParameters, except that sometimes PowerShell cannot + /// or will not attempt to evaluate an argument, in which case you may need to use commandAst. + /// + /// A collection of completion results, most like with ResultType set to ParameterValue. + /// + public global::System.Collections.Generic.IEnumerable CompleteArgument(global::System.String commandName, global::System.String parameterName, global::System.String wordToComplete, global::System.Management.Automation.Language.CommandAst commandAst, global::System.Collections.IDictionary fakeBoundParameters) + { + if (global::System.String.IsNullOrEmpty(wordToComplete) || "Creating".StartsWith(wordToComplete, global::System.StringComparison.InvariantCultureIgnoreCase)) + { + yield return new global::System.Management.Automation.CompletionResult("'Creating'", "Creating", global::System.Management.Automation.CompletionResultType.ParameterValue, "Creating"); + } + if (global::System.String.IsNullOrEmpty(wordToComplete) || "Updating".StartsWith(wordToComplete, global::System.StringComparison.InvariantCultureIgnoreCase)) + { + yield return new global::System.Management.Automation.CompletionResult("'Updating'", "Updating", global::System.Management.Automation.CompletionResultType.ParameterValue, "Updating"); + } + if (global::System.String.IsNullOrEmpty(wordToComplete) || "Deleting".StartsWith(wordToComplete, global::System.StringComparison.InvariantCultureIgnoreCase)) + { + yield return new global::System.Management.Automation.CompletionResult("'Deleting'", "Deleting", global::System.Management.Automation.CompletionResultType.ParameterValue, "Deleting"); + } + if (global::System.String.IsNullOrEmpty(wordToComplete) || "Succeeded".StartsWith(wordToComplete, global::System.StringComparison.InvariantCultureIgnoreCase)) + { + yield return new global::System.Management.Automation.CompletionResult("'Succeeded'", "Succeeded", global::System.Management.Automation.CompletionResultType.ParameterValue, "Succeeded"); + } + if (global::System.String.IsNullOrEmpty(wordToComplete) || "Canceled".StartsWith(wordToComplete, global::System.StringComparison.InvariantCultureIgnoreCase)) + { + yield return new global::System.Management.Automation.CompletionResult("'Canceled'", "Canceled", global::System.Management.Automation.CompletionResultType.ParameterValue, "Canceled"); + } + if (global::System.String.IsNullOrEmpty(wordToComplete) || "Failed".StartsWith(wordToComplete, global::System.StringComparison.InvariantCultureIgnoreCase)) + { + yield return new global::System.Management.Automation.CompletionResult("'Failed'", "Failed", global::System.Management.Automation.CompletionResultType.ParameterValue, "Failed"); + } + } + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Support/ResourceProvisioningState.TypeConverter.cs b/swaggerci/eventgrid/generated/api/Support/ResourceProvisioningState.TypeConverter.cs new file mode 100644 index 000000000000..cb90edc910c0 --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Support/ResourceProvisioningState.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.EventGrid.Support +{ + + /// Provisioning state of the Private Endpoint Connection. + public partial class ResourceProvisioningStateTypeConverter : + global::System.Management.Automation.PSTypeConverter + { + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the to convert from + /// the to convert 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) => ResourceProvisioningState.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/eventgrid/generated/api/Support/ResourceProvisioningState.cs b/swaggerci/eventgrid/generated/api/Support/ResourceProvisioningState.cs new file mode 100644 index 000000000000..e1e0da8c2727 --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Support/ResourceProvisioningState.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.EventGrid.Support +{ + + /// Provisioning state of the Private Endpoint Connection. + public partial struct ResourceProvisioningState : + System.IEquatable + { + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.ResourceProvisioningState Canceled = @"Canceled"; + + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.ResourceProvisioningState Creating = @"Creating"; + + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.ResourceProvisioningState Deleting = @"Deleting"; + + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.ResourceProvisioningState Failed = @"Failed"; + + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.ResourceProvisioningState Succeeded = @"Succeeded"; + + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.ResourceProvisioningState Updating = @"Updating"; + + /// the value for an instance of the Enum. + private string _value { get; set; } + + /// Conversion from arbitrary object to ResourceProvisioningState + /// the value to convert to an instance of . + internal static object CreateFrom(object value) + { + return new ResourceProvisioningState(global::System.Convert.ToString(value)); + } + + /// Compares values of enum type ResourceProvisioningState + /// 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.EventGrid.Support.ResourceProvisioningState e) + { + return _value.Equals(e._value); + } + + /// Compares values of enum type ResourceProvisioningState (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 ResourceProvisioningState && Equals((ResourceProvisioningState)obj); + } + + /// Returns hashCode for enum ResourceProvisioningState + /// 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 ResourceProvisioningState(string underlyingValue) + { + this._value = underlyingValue; + } + + /// Returns string representation for ResourceProvisioningState + /// A string for this value. + public override string ToString() + { + return this._value; + } + + /// Implicit operator to convert string to ResourceProvisioningState + /// the value to convert to an instance of . + + public static implicit operator ResourceProvisioningState(string value) + { + return new ResourceProvisioningState(value); + } + + /// Implicit operator to convert ResourceProvisioningState to string + /// the value to convert to an instance of . + + public static implicit operator string(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.ResourceProvisioningState e) + { + return e._value; + } + + /// Overriding != operator for enum ResourceProvisioningState + /// 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.EventGrid.Support.ResourceProvisioningState e1, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.ResourceProvisioningState e2) + { + return !e2.Equals(e1); + } + + /// Overriding == operator for enum ResourceProvisioningState + /// 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.EventGrid.Support.ResourceProvisioningState e1, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.ResourceProvisioningState e2) + { + return e2.Equals(e1); + } + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Support/ResourceRegionType.Completer.cs b/swaggerci/eventgrid/generated/api/Support/ResourceRegionType.Completer.cs new file mode 100644 index 000000000000..36470640c59c --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Support/ResourceRegionType.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.EventGrid.Support +{ + + /// Region type of the resource. + [System.ComponentModel.TypeConverter(typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.ResourceRegionTypeTypeConverter))] + public partial struct ResourceRegionType : + 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) || "RegionalResource".StartsWith(wordToComplete, global::System.StringComparison.InvariantCultureIgnoreCase)) + { + yield return new global::System.Management.Automation.CompletionResult("'RegionalResource'", "RegionalResource", global::System.Management.Automation.CompletionResultType.ParameterValue, "RegionalResource"); + } + if (global::System.String.IsNullOrEmpty(wordToComplete) || "GlobalResource".StartsWith(wordToComplete, global::System.StringComparison.InvariantCultureIgnoreCase)) + { + yield return new global::System.Management.Automation.CompletionResult("'GlobalResource'", "GlobalResource", global::System.Management.Automation.CompletionResultType.ParameterValue, "GlobalResource"); + } + } + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Support/ResourceRegionType.TypeConverter.cs b/swaggerci/eventgrid/generated/api/Support/ResourceRegionType.TypeConverter.cs new file mode 100644 index 000000000000..5fc805511e9b --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Support/ResourceRegionType.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.EventGrid.Support +{ + + /// Region type of the resource. + public partial class ResourceRegionTypeTypeConverter : + global::System.Management.Automation.PSTypeConverter + { + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the to convert from + /// the to convert 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) => ResourceRegionType.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/eventgrid/generated/api/Support/ResourceRegionType.cs b/swaggerci/eventgrid/generated/api/Support/ResourceRegionType.cs new file mode 100644 index 000000000000..93cd87173ccc --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Support/ResourceRegionType.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.EventGrid.Support +{ + + /// Region type of the resource. + public partial struct ResourceRegionType : + System.IEquatable + { + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.ResourceRegionType GlobalResource = @"GlobalResource"; + + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.ResourceRegionType RegionalResource = @"RegionalResource"; + + /// the value for an instance of the Enum. + private string _value { get; set; } + + /// Conversion from arbitrary object to ResourceRegionType + /// the value to convert to an instance of . + internal static object CreateFrom(object value) + { + return new ResourceRegionType(global::System.Convert.ToString(value)); + } + + /// Compares values of enum type ResourceRegionType + /// 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.EventGrid.Support.ResourceRegionType e) + { + return _value.Equals(e._value); + } + + /// Compares values of enum type ResourceRegionType (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 ResourceRegionType && Equals((ResourceRegionType)obj); + } + + /// Returns hashCode for enum ResourceRegionType + /// 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 ResourceRegionType(string underlyingValue) + { + this._value = underlyingValue; + } + + /// Returns string representation for ResourceRegionType + /// A string for this value. + public override string ToString() + { + return this._value; + } + + /// Implicit operator to convert string to ResourceRegionType + /// the value to convert to an instance of . + + public static implicit operator ResourceRegionType(string value) + { + return new ResourceRegionType(value); + } + + /// Implicit operator to convert ResourceRegionType to string + /// the value to convert to an instance of . + + public static implicit operator string(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.ResourceRegionType e) + { + return e._value; + } + + /// Overriding != operator for enum ResourceRegionType + /// 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.EventGrid.Support.ResourceRegionType e1, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.ResourceRegionType e2) + { + return !e2.Equals(e1); + } + + /// Overriding == operator for enum ResourceRegionType + /// 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.EventGrid.Support.ResourceRegionType e1, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.ResourceRegionType e2) + { + return e2.Equals(e1); + } + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Support/Sku.Completer.cs b/swaggerci/eventgrid/generated/api/Support/Sku.Completer.cs new file mode 100644 index 000000000000..dcf969acc806 --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Support/Sku.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.EventGrid.Support +{ + + /// The Sku name of the resource. The possible values are: Basic or Premium. + [System.ComponentModel.TypeConverter(typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.SkuTypeConverter))] + public partial struct Sku : + System.Management.Automation.IArgumentCompleter + { + + /// + /// Implementations of this function are called by PowerShell to complete arguments. + /// + /// The name of the command that needs argument completion. + /// The name of the parameter that needs argument completion. + /// The (possibly empty) word being completed. + /// The command ast in case it is needed for completion. + /// This parameter is similar to $PSBoundParameters, except that sometimes PowerShell cannot + /// or will not attempt to evaluate an argument, in which case you may need to use commandAst. + /// + /// A collection of completion results, most like with ResultType set to ParameterValue. + /// + public global::System.Collections.Generic.IEnumerable CompleteArgument(global::System.String commandName, global::System.String parameterName, global::System.String wordToComplete, global::System.Management.Automation.Language.CommandAst commandAst, global::System.Collections.IDictionary fakeBoundParameters) + { + if (global::System.String.IsNullOrEmpty(wordToComplete) || "Basic".StartsWith(wordToComplete, global::System.StringComparison.InvariantCultureIgnoreCase)) + { + yield return new global::System.Management.Automation.CompletionResult("'Basic'", "Basic", global::System.Management.Automation.CompletionResultType.ParameterValue, "Basic"); + } + if (global::System.String.IsNullOrEmpty(wordToComplete) || "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/eventgrid/generated/api/Support/Sku.TypeConverter.cs b/swaggerci/eventgrid/generated/api/Support/Sku.TypeConverter.cs new file mode 100644 index 000000000000..f171574c7d8b --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Support/Sku.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.EventGrid.Support +{ + + /// The Sku name of the resource. The possible values are: Basic or Premium. + 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) => 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) => Sku.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/eventgrid/generated/api/Support/Sku.cs b/swaggerci/eventgrid/generated/api/Support/Sku.cs new file mode 100644 index 000000000000..f5815ea8ee2b --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Support/Sku.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.EventGrid.Support +{ + + /// The Sku name of the resource. The possible values are: Basic or Premium. + public partial struct Sku : + System.IEquatable + { + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.Sku Basic = @"Basic"; + + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.Sku Premium = @"Premium"; + + /// the value for an instance of the Enum. + private string _value { get; set; } + + /// Conversion from arbitrary object to Sku + /// the value to convert to an instance of . + internal static object CreateFrom(object value) + { + return new Sku(global::System.Convert.ToString(value)); + } + + /// Compares values of enum type Sku + /// 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.EventGrid.Support.Sku e) + { + return _value.Equals(e._value); + } + + /// Compares values of enum type Sku (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 Sku && Equals((Sku)obj); + } + + /// Returns hashCode for enum Sku + /// 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 Sku(string underlyingValue) + { + this._value = underlyingValue; + } + + /// Returns string representation for Sku + /// A string for this value. + public override string ToString() + { + return this._value; + } + + /// Implicit operator to convert string to Sku + /// the value to convert to an instance of . + + public static implicit operator Sku(string value) + { + return new Sku(value); + } + + /// Implicit operator to convert Sku to string + /// the value to convert to an instance of . + + public static implicit operator string(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.Sku e) + { + return e._value; + } + + /// Overriding != operator for enum Sku + /// 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.EventGrid.Support.Sku e1, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.Sku e2) + { + return !e2.Equals(e1); + } + + /// Overriding == operator for enum Sku + /// 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.EventGrid.Support.Sku e1, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.Sku e2) + { + return e2.Equals(e1); + } + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Support/TopicProvisioningState.Completer.cs b/swaggerci/eventgrid/generated/api/Support/TopicProvisioningState.Completer.cs new file mode 100644 index 000000000000..829441ef2dc0 --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Support/TopicProvisioningState.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.EventGrid.Support +{ + + /// Provisioning state of the topic. + [System.ComponentModel.TypeConverter(typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.TopicProvisioningStateTypeConverter))] + public partial struct TopicProvisioningState : + System.Management.Automation.IArgumentCompleter + { + + /// + /// Implementations of this function are called by PowerShell to complete arguments. + /// + /// The name of the command that needs argument completion. + /// The name of the parameter that needs argument completion. + /// The (possibly empty) word being completed. + /// The command ast in case it is needed for completion. + /// This parameter is similar to $PSBoundParameters, except that sometimes PowerShell cannot + /// or will not attempt to evaluate an argument, in which case you may need to use commandAst. + /// + /// A collection of completion results, most like with ResultType set to ParameterValue. + /// + public global::System.Collections.Generic.IEnumerable CompleteArgument(global::System.String commandName, global::System.String parameterName, global::System.String wordToComplete, global::System.Management.Automation.Language.CommandAst commandAst, global::System.Collections.IDictionary fakeBoundParameters) + { + if (global::System.String.IsNullOrEmpty(wordToComplete) || "Creating".StartsWith(wordToComplete, global::System.StringComparison.InvariantCultureIgnoreCase)) + { + yield return new global::System.Management.Automation.CompletionResult("'Creating'", "Creating", global::System.Management.Automation.CompletionResultType.ParameterValue, "Creating"); + } + if (global::System.String.IsNullOrEmpty(wordToComplete) || "Updating".StartsWith(wordToComplete, global::System.StringComparison.InvariantCultureIgnoreCase)) + { + yield return new global::System.Management.Automation.CompletionResult("'Updating'", "Updating", global::System.Management.Automation.CompletionResultType.ParameterValue, "Updating"); + } + if (global::System.String.IsNullOrEmpty(wordToComplete) || "Deleting".StartsWith(wordToComplete, global::System.StringComparison.InvariantCultureIgnoreCase)) + { + yield return new global::System.Management.Automation.CompletionResult("'Deleting'", "Deleting", global::System.Management.Automation.CompletionResultType.ParameterValue, "Deleting"); + } + if (global::System.String.IsNullOrEmpty(wordToComplete) || "Succeeded".StartsWith(wordToComplete, global::System.StringComparison.InvariantCultureIgnoreCase)) + { + yield return new global::System.Management.Automation.CompletionResult("'Succeeded'", "Succeeded", global::System.Management.Automation.CompletionResultType.ParameterValue, "Succeeded"); + } + if (global::System.String.IsNullOrEmpty(wordToComplete) || "Canceled".StartsWith(wordToComplete, global::System.StringComparison.InvariantCultureIgnoreCase)) + { + yield return new global::System.Management.Automation.CompletionResult("'Canceled'", "Canceled", global::System.Management.Automation.CompletionResultType.ParameterValue, "Canceled"); + } + if (global::System.String.IsNullOrEmpty(wordToComplete) || "Failed".StartsWith(wordToComplete, global::System.StringComparison.InvariantCultureIgnoreCase)) + { + yield return new global::System.Management.Automation.CompletionResult("'Failed'", "Failed", global::System.Management.Automation.CompletionResultType.ParameterValue, "Failed"); + } + } + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Support/TopicProvisioningState.TypeConverter.cs b/swaggerci/eventgrid/generated/api/Support/TopicProvisioningState.TypeConverter.cs new file mode 100644 index 000000000000..dc583c472858 --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Support/TopicProvisioningState.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.EventGrid.Support +{ + + /// Provisioning state of the topic. + public partial class TopicProvisioningStateTypeConverter : + global::System.Management.Automation.PSTypeConverter + { + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the to convert from + /// the to convert 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) => TopicProvisioningState.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/eventgrid/generated/api/Support/TopicProvisioningState.cs b/swaggerci/eventgrid/generated/api/Support/TopicProvisioningState.cs new file mode 100644 index 000000000000..0fb9b0fc0af0 --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Support/TopicProvisioningState.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.EventGrid.Support +{ + + /// Provisioning state of the topic. + public partial struct TopicProvisioningState : + System.IEquatable + { + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.TopicProvisioningState Canceled = @"Canceled"; + + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.TopicProvisioningState Creating = @"Creating"; + + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.TopicProvisioningState Deleting = @"Deleting"; + + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.TopicProvisioningState Failed = @"Failed"; + + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.TopicProvisioningState Succeeded = @"Succeeded"; + + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.TopicProvisioningState Updating = @"Updating"; + + /// the value for an instance of the Enum. + private string _value { get; set; } + + /// Conversion from arbitrary object to TopicProvisioningState + /// the value to convert to an instance of . + internal static object CreateFrom(object value) + { + return new TopicProvisioningState(global::System.Convert.ToString(value)); + } + + /// Compares values of enum type TopicProvisioningState + /// 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.EventGrid.Support.TopicProvisioningState e) + { + return _value.Equals(e._value); + } + + /// Compares values of enum type TopicProvisioningState (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 TopicProvisioningState && Equals((TopicProvisioningState)obj); + } + + /// Returns hashCode for enum TopicProvisioningState + /// The hashCode of the value + public override int GetHashCode() + { + return this._value.GetHashCode(); + } + + /// Returns string representation for TopicProvisioningState + /// 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 TopicProvisioningState(string underlyingValue) + { + this._value = underlyingValue; + } + + /// Implicit operator to convert string to TopicProvisioningState + /// the value to convert to an instance of . + + public static implicit operator TopicProvisioningState(string value) + { + return new TopicProvisioningState(value); + } + + /// Implicit operator to convert TopicProvisioningState to string + /// the value to convert to an instance of . + + public static implicit operator string(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.TopicProvisioningState e) + { + return e._value; + } + + /// Overriding != operator for enum TopicProvisioningState + /// 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.EventGrid.Support.TopicProvisioningState e1, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.TopicProvisioningState e2) + { + return !e2.Equals(e1); + } + + /// Overriding == operator for enum TopicProvisioningState + /// 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.EventGrid.Support.TopicProvisioningState e1, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.TopicProvisioningState e2) + { + return e2.Equals(e1); + } + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Support/TopicTypeProvisioningState.Completer.cs b/swaggerci/eventgrid/generated/api/Support/TopicTypeProvisioningState.Completer.cs new file mode 100644 index 000000000000..32ffb8831403 --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Support/TopicTypeProvisioningState.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.EventGrid.Support +{ + + /// Provisioning state of the topic type + [System.ComponentModel.TypeConverter(typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.TopicTypeProvisioningStateTypeConverter))] + public partial struct TopicTypeProvisioningState : + System.Management.Automation.IArgumentCompleter + { + + /// + /// Implementations of this function are called by PowerShell to complete arguments. + /// + /// The name of the command that needs argument completion. + /// The name of the parameter that needs argument completion. + /// The (possibly empty) word being completed. + /// The command ast in case it is needed for completion. + /// This parameter is similar to $PSBoundParameters, except that sometimes PowerShell cannot + /// or will not attempt to evaluate an argument, in which case you may need to use commandAst. + /// + /// A collection of completion results, most like with ResultType set to ParameterValue. + /// + public global::System.Collections.Generic.IEnumerable CompleteArgument(global::System.String commandName, global::System.String parameterName, global::System.String wordToComplete, global::System.Management.Automation.Language.CommandAst commandAst, global::System.Collections.IDictionary fakeBoundParameters) + { + if (global::System.String.IsNullOrEmpty(wordToComplete) || "Creating".StartsWith(wordToComplete, global::System.StringComparison.InvariantCultureIgnoreCase)) + { + yield return new global::System.Management.Automation.CompletionResult("'Creating'", "Creating", global::System.Management.Automation.CompletionResultType.ParameterValue, "Creating"); + } + if (global::System.String.IsNullOrEmpty(wordToComplete) || "Updating".StartsWith(wordToComplete, global::System.StringComparison.InvariantCultureIgnoreCase)) + { + yield return new global::System.Management.Automation.CompletionResult("'Updating'", "Updating", global::System.Management.Automation.CompletionResultType.ParameterValue, "Updating"); + } + if (global::System.String.IsNullOrEmpty(wordToComplete) || "Deleting".StartsWith(wordToComplete, global::System.StringComparison.InvariantCultureIgnoreCase)) + { + yield return new global::System.Management.Automation.CompletionResult("'Deleting'", "Deleting", global::System.Management.Automation.CompletionResultType.ParameterValue, "Deleting"); + } + if (global::System.String.IsNullOrEmpty(wordToComplete) || "Succeeded".StartsWith(wordToComplete, global::System.StringComparison.InvariantCultureIgnoreCase)) + { + yield return new global::System.Management.Automation.CompletionResult("'Succeeded'", "Succeeded", global::System.Management.Automation.CompletionResultType.ParameterValue, "Succeeded"); + } + if (global::System.String.IsNullOrEmpty(wordToComplete) || "Canceled".StartsWith(wordToComplete, global::System.StringComparison.InvariantCultureIgnoreCase)) + { + yield return new global::System.Management.Automation.CompletionResult("'Canceled'", "Canceled", global::System.Management.Automation.CompletionResultType.ParameterValue, "Canceled"); + } + if (global::System.String.IsNullOrEmpty(wordToComplete) || "Failed".StartsWith(wordToComplete, global::System.StringComparison.InvariantCultureIgnoreCase)) + { + yield return new global::System.Management.Automation.CompletionResult("'Failed'", "Failed", global::System.Management.Automation.CompletionResultType.ParameterValue, "Failed"); + } + } + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Support/TopicTypeProvisioningState.TypeConverter.cs b/swaggerci/eventgrid/generated/api/Support/TopicTypeProvisioningState.TypeConverter.cs new file mode 100644 index 000000000000..f9afaff3aeca --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Support/TopicTypeProvisioningState.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.EventGrid.Support +{ + + /// Provisioning state of the topic type + public partial class TopicTypeProvisioningStateTypeConverter : + global::System.Management.Automation.PSTypeConverter + { + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the to convert from + /// the to convert 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) => TopicTypeProvisioningState.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/eventgrid/generated/api/Support/TopicTypeProvisioningState.cs b/swaggerci/eventgrid/generated/api/Support/TopicTypeProvisioningState.cs new file mode 100644 index 000000000000..d64b789d41e8 --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Support/TopicTypeProvisioningState.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.EventGrid.Support +{ + + /// Provisioning state of the topic type + public partial struct TopicTypeProvisioningState : + System.IEquatable + { + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.TopicTypeProvisioningState Canceled = @"Canceled"; + + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.TopicTypeProvisioningState Creating = @"Creating"; + + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.TopicTypeProvisioningState Deleting = @"Deleting"; + + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.TopicTypeProvisioningState Failed = @"Failed"; + + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.TopicTypeProvisioningState Succeeded = @"Succeeded"; + + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.TopicTypeProvisioningState Updating = @"Updating"; + + /// + /// the value for an instance of the Enum. + /// + private string _value { get; set; } + + /// Conversion from arbitrary object to TopicTypeProvisioningState + /// the value to convert to an instance of . + internal static object CreateFrom(object value) + { + return new TopicTypeProvisioningState(global::System.Convert.ToString(value)); + } + + /// Compares values of enum type TopicTypeProvisioningState + /// 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.EventGrid.Support.TopicTypeProvisioningState e) + { + return _value.Equals(e._value); + } + + /// Compares values of enum type TopicTypeProvisioningState (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 TopicTypeProvisioningState && Equals((TopicTypeProvisioningState)obj); + } + + /// Returns hashCode for enum TopicTypeProvisioningState + /// The hashCode of the value + public override int GetHashCode() + { + return this._value.GetHashCode(); + } + + /// Returns string representation for TopicTypeProvisioningState + /// 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 TopicTypeProvisioningState(string underlyingValue) + { + this._value = underlyingValue; + } + + /// Implicit operator to convert string to TopicTypeProvisioningState + /// the value to convert to an instance of . + + public static implicit operator TopicTypeProvisioningState(string value) + { + return new TopicTypeProvisioningState(value); + } + + /// Implicit operator to convert TopicTypeProvisioningState to string + /// the value to convert to an instance of . + + public static implicit operator string(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.TopicTypeProvisioningState e) + { + return e._value; + } + + /// Overriding != operator for enum TopicTypeProvisioningState + /// 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.EventGrid.Support.TopicTypeProvisioningState e1, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.TopicTypeProvisioningState e2) + { + return !e2.Equals(e1); + } + + /// Overriding == operator for enum TopicTypeProvisioningState + /// 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.EventGrid.Support.TopicTypeProvisioningState e1, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.TopicTypeProvisioningState e2) + { + return e2.Equals(e1); + } + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Support/VerifiedPartnerProvisioningState.Completer.cs b/swaggerci/eventgrid/generated/api/Support/VerifiedPartnerProvisioningState.Completer.cs new file mode 100644 index 000000000000..7568dcc221e8 --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Support/VerifiedPartnerProvisioningState.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.EventGrid.Support +{ + + /// Provisioning state of the verified partner. + [System.ComponentModel.TypeConverter(typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.VerifiedPartnerProvisioningStateTypeConverter))] + public partial struct VerifiedPartnerProvisioningState : + System.Management.Automation.IArgumentCompleter + { + + /// + /// Implementations of this function are called by PowerShell to complete arguments. + /// + /// The name of the command that needs argument completion. + /// The name of the parameter that needs argument completion. + /// The (possibly empty) word being completed. + /// The command ast in case it is needed for completion. + /// This parameter is similar to $PSBoundParameters, except that sometimes PowerShell cannot + /// or will not attempt to evaluate an argument, in which case you may need to use commandAst. + /// + /// A collection of completion results, most like with ResultType set to ParameterValue. + /// + public global::System.Collections.Generic.IEnumerable CompleteArgument(global::System.String commandName, global::System.String parameterName, global::System.String wordToComplete, global::System.Management.Automation.Language.CommandAst commandAst, global::System.Collections.IDictionary fakeBoundParameters) + { + if (global::System.String.IsNullOrEmpty(wordToComplete) || "Creating".StartsWith(wordToComplete, global::System.StringComparison.InvariantCultureIgnoreCase)) + { + yield return new global::System.Management.Automation.CompletionResult("'Creating'", "Creating", global::System.Management.Automation.CompletionResultType.ParameterValue, "Creating"); + } + if (global::System.String.IsNullOrEmpty(wordToComplete) || "Updating".StartsWith(wordToComplete, global::System.StringComparison.InvariantCultureIgnoreCase)) + { + yield return new global::System.Management.Automation.CompletionResult("'Updating'", "Updating", global::System.Management.Automation.CompletionResultType.ParameterValue, "Updating"); + } + if (global::System.String.IsNullOrEmpty(wordToComplete) || "Deleting".StartsWith(wordToComplete, global::System.StringComparison.InvariantCultureIgnoreCase)) + { + yield return new global::System.Management.Automation.CompletionResult("'Deleting'", "Deleting", global::System.Management.Automation.CompletionResultType.ParameterValue, "Deleting"); + } + if (global::System.String.IsNullOrEmpty(wordToComplete) || "Succeeded".StartsWith(wordToComplete, global::System.StringComparison.InvariantCultureIgnoreCase)) + { + yield return new global::System.Management.Automation.CompletionResult("'Succeeded'", "Succeeded", global::System.Management.Automation.CompletionResultType.ParameterValue, "Succeeded"); + } + if (global::System.String.IsNullOrEmpty(wordToComplete) || "Canceled".StartsWith(wordToComplete, global::System.StringComparison.InvariantCultureIgnoreCase)) + { + yield return new global::System.Management.Automation.CompletionResult("'Canceled'", "Canceled", global::System.Management.Automation.CompletionResultType.ParameterValue, "Canceled"); + } + if (global::System.String.IsNullOrEmpty(wordToComplete) || "Failed".StartsWith(wordToComplete, global::System.StringComparison.InvariantCultureIgnoreCase)) + { + yield return new global::System.Management.Automation.CompletionResult("'Failed'", "Failed", global::System.Management.Automation.CompletionResultType.ParameterValue, "Failed"); + } + } + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/api/Support/VerifiedPartnerProvisioningState.TypeConverter.cs b/swaggerci/eventgrid/generated/api/Support/VerifiedPartnerProvisioningState.TypeConverter.cs new file mode 100644 index 000000000000..5c6ca78c8490 --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Support/VerifiedPartnerProvisioningState.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.EventGrid.Support +{ + + /// Provisioning state of the verified partner. + public partial class VerifiedPartnerProvisioningStateTypeConverter : + global::System.Management.Automation.PSTypeConverter + { + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the to convert from + /// the to convert 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) => VerifiedPartnerProvisioningState.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/eventgrid/generated/api/Support/VerifiedPartnerProvisioningState.cs b/swaggerci/eventgrid/generated/api/Support/VerifiedPartnerProvisioningState.cs new file mode 100644 index 000000000000..97c6a5a675a6 --- /dev/null +++ b/swaggerci/eventgrid/generated/api/Support/VerifiedPartnerProvisioningState.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.EventGrid.Support +{ + + /// Provisioning state of the verified partner. + public partial struct VerifiedPartnerProvisioningState : + System.IEquatable + { + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.VerifiedPartnerProvisioningState Canceled = @"Canceled"; + + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.VerifiedPartnerProvisioningState Creating = @"Creating"; + + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.VerifiedPartnerProvisioningState Deleting = @"Deleting"; + + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.VerifiedPartnerProvisioningState Failed = @"Failed"; + + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.VerifiedPartnerProvisioningState Succeeded = @"Succeeded"; + + public static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.VerifiedPartnerProvisioningState Updating = @"Updating"; + + /// + /// the value for an instance of the Enum. + /// + private string _value { get; set; } + + /// Conversion from arbitrary object to VerifiedPartnerProvisioningState + /// the value to convert to an instance of . + internal static object CreateFrom(object value) + { + return new VerifiedPartnerProvisioningState(global::System.Convert.ToString(value)); + } + + /// Compares values of enum type VerifiedPartnerProvisioningState + /// 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.EventGrid.Support.VerifiedPartnerProvisioningState e) + { + return _value.Equals(e._value); + } + + /// + /// Compares values of enum type VerifiedPartnerProvisioningState (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 VerifiedPartnerProvisioningState && Equals((VerifiedPartnerProvisioningState)obj); + } + + /// Returns hashCode for enum VerifiedPartnerProvisioningState + /// The hashCode of the value + public override int GetHashCode() + { + return this._value.GetHashCode(); + } + + /// Returns string representation for VerifiedPartnerProvisioningState + /// 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 VerifiedPartnerProvisioningState(string underlyingValue) + { + this._value = underlyingValue; + } + + /// Implicit operator to convert string to VerifiedPartnerProvisioningState + /// the value to convert to an instance of . + + public static implicit operator VerifiedPartnerProvisioningState(string value) + { + return new VerifiedPartnerProvisioningState(value); + } + + /// Implicit operator to convert VerifiedPartnerProvisioningState to string + /// the value to convert to an instance of . + + public static implicit operator string(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.VerifiedPartnerProvisioningState e) + { + return e._value; + } + + /// Overriding != operator for enum VerifiedPartnerProvisioningState + /// 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.EventGrid.Support.VerifiedPartnerProvisioningState e1, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.VerifiedPartnerProvisioningState e2) + { + return !e2.Equals(e1); + } + + /// Overriding == operator for enum VerifiedPartnerProvisioningState + /// 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.EventGrid.Support.VerifiedPartnerProvisioningState e1, Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.VerifiedPartnerProvisioningState e2) + { + return e2.Equals(e1); + } + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/cmdlets/GetAzEventGridChannelFullUrl_Get.cs b/swaggerci/eventgrid/generated/cmdlets/GetAzEventGridChannelFullUrl_Get.cs new file mode 100644 index 000000000000..c67c0447cd94 --- /dev/null +++ b/swaggerci/eventgrid/generated/cmdlets/GetAzEventGridChannelFullUrl_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.EventGrid.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Extensions; + using System; + + /// Get the full endpoint URL of a partner destination channel. + /// + /// [OpenAPI] GetFullUrl=>POST:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.EventGrid/partnerNamespaces/{partnerNamespaceName}/channels/{channelName}/getFullUrl" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsCommon.Get, @"AzEventGridChannelFullUrl_Get", SupportsShouldProcess = true)] + [global::System.Management.Automation.OutputType(typeof(string))] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Description(@"Get the full endpoint URL of a partner destination channel.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Generated] + public partial class GetAzEventGridChannelFullUrl_Get : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener + { + /// A unique id generatd for the this cmdlet when it is instantiated. + private string __correlationId = System.Guid.NewGuid().ToString(); + + /// A copy of the Invocation Info (necessary to allow asJob to clone this cmdlet) + private global::System.Management.Automation.InvocationInfo __invocationInfo; + + /// A unique id generatd for the this cmdlet when ProcessRecord() is called. + private string __processRecordId; + + /// + /// The for this operation. + /// + private global::System.Threading.CancellationTokenSource _cancellationTokenSource = new global::System.Threading.CancellationTokenSource(); + + /// Wait for .NET debugger to attach + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Wait for .NET debugger to attach")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// Backing field for property. + private string _channelName; + + /// Name of the Channel. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Name of the Channel.")] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Name of the Channel.", + SerializedName = @"channelName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Path)] + public string ChannelName { get => this._channelName; set => this._channelName = value; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.EventGridManagementClient Client => Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.ClientAPI; + + /// + /// The credentials, account, tenant, and subscription used for communication with Azure + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The credentials, account, tenant, and subscription used for communication with Azure.")] + [global::System.Management.Automation.ValidateNotNull] + [global::System.Management.Automation.Alias("AzureRMContext", "AzureCredential")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Azure)] + public global::System.Management.Automation.PSObject DefaultProfile { get; set; } + + /// SendAsync Pipeline Steps to be appended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be appended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[] HttpPipelineAppend { get; set; } + + /// SendAsync Pipeline Steps to be prepended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be prepended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[] HttpPipelinePrepend { get; set; } + + /// Accessor for our copy of the InvocationInfo. + public global::System.Management.Automation.InvocationInfo InvocationInformation { get => __invocationInfo = __invocationInfo ?? this.MyInvocation ; set { __invocationInfo = value; } } + + /// + /// cancellation delegate. Stops the cmdlet when called. + /// + global::System.Action Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener.Token => _cancellationTokenSource.Token; + + /// Backing field for property. + private string _partnerNamespaceName; + + /// Name of the partner namespace. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Name of the partner namespace.")] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Name of the partner namespace.", + SerializedName = @"partnerNamespaceName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Path)] + public string PartnerNamespaceName { get => this._partnerNamespaceName; set => this._partnerNamespaceName = 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.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Runtime.HttpPipeline Pipeline { get; set; } + + /// The URI for the proxy server to use + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "The URI for the proxy server to use")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Uri Proxy { get; set; } + + /// Credentials for a proxy server to use for the remote call + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Credentials for a proxy server to use for the remote call")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Management.Automation.PSCredential ProxyCredential { get; set; } + + /// Use the default credentials for the proxy + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Use the default credentials for the proxy")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter ProxyUseDefaultCredentials { get; set; } + + /// Backing field for property. + private string _resourceGroupName; + + /// The name of the resource group within the partners subscription. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the resource group within the partners subscription.")] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the resource group within the partners subscription.", + SerializedName = @"resourceGroupName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Path)] + public string ResourceGroupName { get => this._resourceGroupName; set => this._resourceGroupName = value; } + + /// Backing field for property. + private string[] _subscriptionId; + + /// + /// Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription ID forms part of the + /// URI for every service call. + /// + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.")] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.", + SerializedName = @"subscriptionId", + PossibleTypes = new [] { typeof(string) })] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.DefaultInfo( + Name = @"", + Description =@"", + Script = @"(Get-AzContext).Subscription.Id")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Path)] + public string[] SubscriptionId { get => this._subscriptionId; set => this._subscriptionId = value; } + + /// + /// overrideOnDefault will be called before the regular onDefault has been processed, allowing customization of what + /// happens on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// /// Determines if the rest of the onDefault method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnDefault(global::System.Net.Http.HttpResponseMessage responseMessage, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnOk will be called before the regular onOk has been processed, allowing customization of what happens + /// on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// 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() + { + var telemetryId = Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.GetTelemetryId.Invoke(); + if (telemetryId != "" && telemetryId != "internal") + { + __correlationId = telemetryId; + } + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + + } + + /// + /// Intializes a new instance of the cmdlet class. + /// + public GetAzEventGridChannelFullUrl_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.EventGrid.Runtime.IEventListener.Signal(string id, global::System.Threading.CancellationToken token, global::System.Func messageData) + { + using( NoSynchronizationContext ) + { + if (token.IsCancellationRequested) + { + return ; + } + + switch ( id ) + { + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Information: + { + var data = messageData(); + WriteInformation(data.Message, new string[]{}); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Error: + { + WriteError(new global::System.Management.Automation.ErrorRecord( new global::System.Exception(messageData().Message), string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null ) ); + return ; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.EventData ), InvocationInformation, this.ParameterSetName, __correlationId, __processRecordId, null ); + if (token.IsCancellationRequested) + { + return ; + } + WriteDebug($"{id}: {(messageData().Message ?? global::System.String.Empty)}"); + } + } + + /// Performs execution of the command. + protected override void ProcessRecord() + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + if (ShouldProcess($"Call remote 'ChannelsGetFullUrl' operation")) + { + using( var asyncCommandRuntime = new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token); + } + } + } + catch (global::System.AggregateException aggregateException) + { + // unroll the inner exceptions to get the root cause + foreach( var innerException in aggregateException.Flatten().InnerExceptions ) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(innerException,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + } + catch (global::System.Exception exception) when ((exception as System.Management.Automation.PipelineStoppedException)== null || (exception as System.Management.Automation.PipelineStoppedException).InnerException != null) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(exception,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + finally + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletProcessRecordEnd).Wait(); + } + } + + /// Performs execution of the command, working asynchronously if required. + /// + /// A that will be complete when handling of the method is completed. + /// + protected async global::System.Threading.Tasks.Task ProcessRecordAsync() + { + using( NoSynchronizationContext ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + foreach( var SubscriptionId in this.SubscriptionId ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await this.Client.ChannelsGetFullUrl(SubscriptionId, ResourceGroupName, PartnerNamespaceName, ChannelName, onOk, onDefault, this, Pipeline); + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.UndeclaredResponseException urexception) + { + WriteError(new global::System.Management.Automation.ErrorRecord(urexception, urexception.StatusCode.ToString(), global::System.Management.Automation.ErrorCategory.InvalidOperation, new { SubscriptionId=SubscriptionId,ResourceGroupName=ResourceGroupName,PartnerNamespaceName=PartnerNamespaceName,ChannelName=ChannelName}) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(urexception.Message) { RecommendedAction = urexception.Action } + }); + } + finally + { + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Cancel(); + base.StopProcessing(); + } + + /// + /// a delegate that is called when the remote service returns default (any response code not handled elsewhere). + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onDefault(global::System.Net.Http.HttpResponseMessage responseMessage) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnDefault(responseMessage, ref _returnNow); + // if overrideOnDefault has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // Error Response : default + // Unrecognized Response. Create an error record based on what we have. + var ex = new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.RestException(responseMessage); + WriteError( new global::System.Management.Automation.ErrorRecord(ex, ex.Code, global::System.Management.Automation.ErrorCategory.InvalidOperation, new { SubscriptionId=SubscriptionId, ResourceGroupName=ResourceGroupName, PartnerNamespaceName=PartnerNamespaceName, ChannelName=ChannelName }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(ex.Message) { RecommendedAction = ex.Action } + }); + } + } + + /// a delegate that is called when the remote service returns 200 (OK). + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as 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.EventGrid.Models.Api20211015Preview.IEventSubscriptionFullUrl + WriteObject((await response).EndpointUrl); + } + } + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/cmdlets/GetAzEventGridChannelFullUrl_GetViaIdentity.cs b/swaggerci/eventgrid/generated/cmdlets/GetAzEventGridChannelFullUrl_GetViaIdentity.cs new file mode 100644 index 000000000000..9859ed188bdb --- /dev/null +++ b/swaggerci/eventgrid/generated/cmdlets/GetAzEventGridChannelFullUrl_GetViaIdentity.cs @@ -0,0 +1,380 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Extensions; + using System; + + /// Get the full endpoint URL of a partner destination channel. + /// + /// [OpenAPI] GetFullUrl=>POST:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.EventGrid/partnerNamespaces/{partnerNamespaceName}/channels/{channelName}/getFullUrl" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsCommon.Get, @"AzEventGridChannelFullUrl_GetViaIdentity", SupportsShouldProcess = true)] + [global::System.Management.Automation.OutputType(typeof(string))] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Description(@"Get the full endpoint URL of a partner destination channel.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Generated] + public partial class GetAzEventGridChannelFullUrl_GetViaIdentity : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener + { + /// A unique id generatd for the this cmdlet when it is instantiated. + private string __correlationId = System.Guid.NewGuid().ToString(); + + /// A copy of the Invocation Info (necessary to allow asJob to clone this cmdlet) + private global::System.Management.Automation.InvocationInfo __invocationInfo; + + /// A unique id generatd for the this cmdlet when ProcessRecord() is called. + private string __processRecordId; + + /// + /// The for this operation. + /// + private global::System.Threading.CancellationTokenSource _cancellationTokenSource = new global::System.Threading.CancellationTokenSource(); + + /// Wait for .NET debugger to attach + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Wait for .NET debugger to attach")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.EventGridManagementClient Client => Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.ClientAPI; + + /// + /// The credentials, account, tenant, and subscription used for communication with Azure + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The credentials, account, tenant, and subscription used for communication with Azure.")] + [global::System.Management.Automation.ValidateNotNull] + [global::System.Management.Automation.Alias("AzureRMContext", "AzureCredential")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Azure)] + public global::System.Management.Automation.PSObject DefaultProfile { get; set; } + + /// SendAsync Pipeline Steps to be appended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be appended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[] HttpPipelineAppend { get; set; } + + /// SendAsync Pipeline Steps to be prepended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be prepended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[] HttpPipelinePrepend { get; set; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.IEventGridIdentity _inputObject; + + /// Identity Parameter + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Identity Parameter", ValueFromPipeline = true)] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Path)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.IEventGridIdentity InputObject { get => this._inputObject; set => this._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.EventGrid.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Runtime.HttpPipeline Pipeline { get; set; } + + /// The URI for the proxy server to use + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "The URI for the proxy server to use")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Uri Proxy { get; set; } + + /// Credentials for a proxy server to use for the remote call + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Credentials for a proxy server to use for the remote call")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Management.Automation.PSCredential ProxyCredential { get; set; } + + /// Use the default credentials for the proxy + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Use the default credentials for the proxy")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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. + /// /// Determines if the rest of the onDefault method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnDefault(global::System.Net.Http.HttpResponseMessage responseMessage, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnOk will be called before the regular onOk has been processed, allowing customization of what happens + /// on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// 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() + { + var telemetryId = Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.GetTelemetryId.Invoke(); + if (telemetryId != "" && telemetryId != "internal") + { + __correlationId = telemetryId; + } + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + + } + + /// + /// Intializes a new instance of the cmdlet class. + /// + public GetAzEventGridChannelFullUrl_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.EventGrid.Runtime.IEventListener.Signal(string id, global::System.Threading.CancellationToken token, global::System.Func messageData) + { + using( NoSynchronizationContext ) + { + if (token.IsCancellationRequested) + { + return ; + } + + switch ( id ) + { + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Information: + { + var data = messageData(); + WriteInformation(data.Message, new string[]{}); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Error: + { + WriteError(new global::System.Management.Automation.ErrorRecord( new global::System.Exception(messageData().Message), string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null ) ); + return ; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.EventData ), InvocationInformation, this.ParameterSetName, __correlationId, __processRecordId, null ); + if (token.IsCancellationRequested) + { + return ; + } + WriteDebug($"{id}: {(messageData().Message ?? global::System.String.Empty)}"); + } + } + + /// Performs execution of the command. + protected override void ProcessRecord() + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + if (ShouldProcess($"Call remote 'ChannelsGetFullUrl' operation")) + { + using( var asyncCommandRuntime = new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token); + } + } + } + catch (global::System.AggregateException aggregateException) + { + // unroll the inner exceptions to get the root cause + foreach( var innerException in aggregateException.Flatten().InnerExceptions ) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(innerException,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + } + catch (global::System.Exception exception) when ((exception as System.Management.Automation.PipelineStoppedException)== null || (exception as System.Management.Automation.PipelineStoppedException).InnerException != null) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(exception,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + finally + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletProcessRecordEnd).Wait(); + } + } + + /// Performs execution of the command, working asynchronously if required. + /// + /// A that will be complete when handling of the method is completed. + /// + protected async global::System.Threading.Tasks.Task ProcessRecordAsync() + { + using( NoSynchronizationContext ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + if (InputObject?.Id != null) + { + await this.Client.ChannelsGetFullUrlViaIdentity(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.PartnerNamespaceName) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.PartnerNamespaceName"),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, InputObject) ); + } + if (null == InputObject.ChannelName) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.ChannelName"),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, InputObject) ); + } + await this.Client.ChannelsGetFullUrl(InputObject.SubscriptionId ?? null, InputObject.ResourceGroupName ?? null, InputObject.PartnerNamespaceName ?? null, InputObject.ChannelName ?? null, onOk, onDefault, this, Pipeline); + } + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Cancel(); + base.StopProcessing(); + } + + /// + /// a delegate that is called when the remote service returns default (any response code not handled elsewhere). + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onDefault(global::System.Net.Http.HttpResponseMessage responseMessage) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnDefault(responseMessage, ref _returnNow); + // if overrideOnDefault has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // Error Response : default + // Unrecognized Response. Create an error record based on what we have. + var ex = new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.RestException(responseMessage); + WriteError( new global::System.Management.Automation.ErrorRecord(ex, ex.Code, global::System.Management.Automation.ErrorCategory.InvalidOperation, new { }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(ex.Message) { RecommendedAction = ex.Action } + }); + } + } + + /// a delegate that is called when the remote service returns 200 (OK). + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as 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.EventGrid.Models.Api20211015Preview.IEventSubscriptionFullUrl + WriteObject((await response).EndpointUrl); + } + } + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/cmdlets/GetAzEventGridChannel_Get.cs b/swaggerci/eventgrid/generated/cmdlets/GetAzEventGridChannel_Get.cs new file mode 100644 index 000000000000..de3218fc5d1e --- /dev/null +++ b/swaggerci/eventgrid/generated/cmdlets/GetAzEventGridChannel_Get.cs @@ -0,0 +1,412 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Extensions; + using System; + + /// Get properties of a channel. + /// + /// [OpenAPI] Get=>GET:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.EventGrid/partnerNamespaces/{partnerNamespaceName}/channels/{channelName}" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsCommon.Get, @"AzEventGridChannel_Get")] + [global::System.Management.Automation.OutputType(typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IChannel))] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Description(@"Get properties of a channel.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Generated] + public partial class GetAzEventGridChannel_Get : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener + { + /// A unique id generatd for the this cmdlet when it is instantiated. + private string __correlationId = System.Guid.NewGuid().ToString(); + + /// A copy of the Invocation Info (necessary to allow asJob to clone this cmdlet) + private global::System.Management.Automation.InvocationInfo __invocationInfo; + + /// A unique id generatd for the this cmdlet when ProcessRecord() is called. + private string __processRecordId; + + /// + /// The for this operation. + /// + private global::System.Threading.CancellationTokenSource _cancellationTokenSource = new global::System.Threading.CancellationTokenSource(); + + /// Wait for .NET debugger to attach + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Wait for .NET debugger to attach")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.EventGridManagementClient Client => Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.ClientAPI; + + /// + /// The credentials, account, tenant, and subscription used for communication with Azure + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The credentials, account, tenant, and subscription used for communication with Azure.")] + [global::System.Management.Automation.ValidateNotNull] + [global::System.Management.Automation.Alias("AzureRMContext", "AzureCredential")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Azure)] + public global::System.Management.Automation.PSObject DefaultProfile { get; set; } + + /// SendAsync Pipeline Steps to be appended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be appended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[] HttpPipelineAppend { get; set; } + + /// SendAsync Pipeline Steps to be prepended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be prepended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[] HttpPipelinePrepend { get; set; } + + /// Accessor for our copy of the InvocationInfo. + public global::System.Management.Automation.InvocationInfo InvocationInformation { get => __invocationInfo = __invocationInfo ?? this.MyInvocation ; set { __invocationInfo = value; } } + + /// + /// cancellation delegate. Stops the cmdlet when called. + /// + global::System.Action Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener.Token => _cancellationTokenSource.Token; + + /// Backing field for property. + private string _name; + + /// Name of the channel. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Name of the channel.")] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Name of the channel.", + SerializedName = @"channelName", + PossibleTypes = new [] { typeof(string) })] + [global::System.Management.Automation.Alias("ChannelName")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Path)] + public string Name { get => this._name; set => this._name = value; } + + /// Backing field for property. + private string _partnerNamespaceName; + + /// Name of the partner namespace. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Name of the partner namespace.")] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Name of the partner namespace.", + SerializedName = @"partnerNamespaceName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Path)] + public string PartnerNamespaceName { get => this._partnerNamespaceName; set => this._partnerNamespaceName = 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.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Runtime.HttpPipeline Pipeline { get; set; } + + /// The URI for the proxy server to use + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "The URI for the proxy server to use")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Uri Proxy { get; set; } + + /// Credentials for a proxy server to use for the remote call + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Credentials for a proxy server to use for the remote call")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Management.Automation.PSCredential ProxyCredential { get; set; } + + /// Use the default credentials for the proxy + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Use the default credentials for the proxy")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter ProxyUseDefaultCredentials { get; set; } + + /// Backing field for property. + private string _resourceGroupName; + + /// The name of the resource group within the partners subscription. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the resource group within the partners subscription.")] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the resource group within the partners subscription.", + SerializedName = @"resourceGroupName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Path)] + public string ResourceGroupName { get => this._resourceGroupName; set => this._resourceGroupName = value; } + + /// Backing field for property. + private string[] _subscriptionId; + + /// + /// Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription ID forms part of the + /// URI for every service call. + /// + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.")] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.", + SerializedName = @"subscriptionId", + PossibleTypes = new [] { typeof(string) })] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.DefaultInfo( + Name = @"", + Description =@"", + Script = @"(Get-AzContext).Subscription.Id")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Path)] + public string[] SubscriptionId { get => this._subscriptionId; set => this._subscriptionId = value; } + + /// + /// overrideOnDefault will be called before the regular onDefault has been processed, allowing customization of what + /// happens on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// /// Determines if the rest of the onDefault method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnDefault(global::System.Net.Http.HttpResponseMessage responseMessage, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnOk will be called before the regular onOk has been processed, allowing customization of what happens + /// on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// 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() + { + var telemetryId = Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.GetTelemetryId.Invoke(); + if (telemetryId != "" && telemetryId != "internal") + { + __correlationId = telemetryId; + } + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + + } + + /// + /// Intializes a new instance of the cmdlet class. + /// + public GetAzEventGridChannel_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.EventGrid.Runtime.IEventListener.Signal(string id, global::System.Threading.CancellationToken token, global::System.Func messageData) + { + using( NoSynchronizationContext ) + { + if (token.IsCancellationRequested) + { + return ; + } + + switch ( id ) + { + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Information: + { + var data = messageData(); + WriteInformation(data.Message, new string[]{}); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Error: + { + WriteError(new global::System.Management.Automation.ErrorRecord( new global::System.Exception(messageData().Message), string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null ) ); + return ; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.EventData ), InvocationInformation, this.ParameterSetName, __correlationId, __processRecordId, null ); + if (token.IsCancellationRequested) + { + return ; + } + WriteDebug($"{id}: {(messageData().Message ?? global::System.String.Empty)}"); + } + } + + /// Performs execution of the command. + protected override void ProcessRecord() + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + using( var asyncCommandRuntime = new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token); + } + } + catch (global::System.AggregateException aggregateException) + { + // unroll the inner exceptions to get the root cause + foreach( var innerException in aggregateException.Flatten().InnerExceptions ) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(innerException,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + } + catch (global::System.Exception exception) when ((exception as System.Management.Automation.PipelineStoppedException)== null || (exception as System.Management.Automation.PipelineStoppedException).InnerException != null) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(exception,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + finally + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletProcessRecordEnd).Wait(); + } + } + + /// Performs execution of the command, working asynchronously if required. + /// + /// A that will be complete when handling of the method is completed. + /// + protected async global::System.Threading.Tasks.Task ProcessRecordAsync() + { + using( NoSynchronizationContext ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + foreach( var SubscriptionId in this.SubscriptionId ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await this.Client.ChannelsGet(SubscriptionId, ResourceGroupName, PartnerNamespaceName, Name, onOk, onDefault, this, Pipeline); + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.UndeclaredResponseException urexception) + { + WriteError(new global::System.Management.Automation.ErrorRecord(urexception, urexception.StatusCode.ToString(), global::System.Management.Automation.ErrorCategory.InvalidOperation, new { SubscriptionId=SubscriptionId,ResourceGroupName=ResourceGroupName,PartnerNamespaceName=PartnerNamespaceName,Name=Name}) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(urexception.Message) { RecommendedAction = urexception.Action } + }); + } + finally + { + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Cancel(); + base.StopProcessing(); + } + + /// + /// a delegate that is called when the remote service returns default (any response code not handled elsewhere). + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onDefault(global::System.Net.Http.HttpResponseMessage responseMessage) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnDefault(responseMessage, ref _returnNow); + // if overrideOnDefault has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // Error Response : default + // Unrecognized Response. Create an error record based on what we have. + var ex = new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.RestException(responseMessage); + WriteError( new global::System.Management.Automation.ErrorRecord(ex, ex.Code, global::System.Management.Automation.ErrorCategory.InvalidOperation, new { SubscriptionId=SubscriptionId, ResourceGroupName=ResourceGroupName, PartnerNamespaceName=PartnerNamespaceName, Name=Name }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(ex.Message) { RecommendedAction = ex.Action } + }); + } + } + + /// a delegate that is called when the remote service returns 200 (OK). + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as 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.EventGrid.Models.Api20211015Preview.IChannel + WriteObject((await response)); + } + } + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/cmdlets/GetAzEventGridChannel_GetViaIdentity.cs b/swaggerci/eventgrid/generated/cmdlets/GetAzEventGridChannel_GetViaIdentity.cs new file mode 100644 index 000000000000..608319e9c5fc --- /dev/null +++ b/swaggerci/eventgrid/generated/cmdlets/GetAzEventGridChannel_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.EventGrid.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Extensions; + using System; + + /// Get properties of a channel. + /// + /// [OpenAPI] Get=>GET:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.EventGrid/partnerNamespaces/{partnerNamespaceName}/channels/{channelName}" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsCommon.Get, @"AzEventGridChannel_GetViaIdentity")] + [global::System.Management.Automation.OutputType(typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IChannel))] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Description(@"Get properties of a channel.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Generated] + public partial class GetAzEventGridChannel_GetViaIdentity : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener + { + /// A unique id generatd for the this cmdlet when it is instantiated. + private string __correlationId = System.Guid.NewGuid().ToString(); + + /// A copy of the Invocation Info (necessary to allow asJob to clone this cmdlet) + private global::System.Management.Automation.InvocationInfo __invocationInfo; + + /// A unique id generatd for the this cmdlet when ProcessRecord() is called. + private string __processRecordId; + + /// + /// The for this operation. + /// + private global::System.Threading.CancellationTokenSource _cancellationTokenSource = new global::System.Threading.CancellationTokenSource(); + + /// Wait for .NET debugger to attach + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Wait for .NET debugger to attach")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.EventGridManagementClient Client => Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.ClientAPI; + + /// + /// The credentials, account, tenant, and subscription used for communication with Azure + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The credentials, account, tenant, and subscription used for communication with Azure.")] + [global::System.Management.Automation.ValidateNotNull] + [global::System.Management.Automation.Alias("AzureRMContext", "AzureCredential")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Azure)] + public global::System.Management.Automation.PSObject DefaultProfile { get; set; } + + /// SendAsync Pipeline Steps to be appended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be appended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[] HttpPipelineAppend { get; set; } + + /// SendAsync Pipeline Steps to be prepended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be prepended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[] HttpPipelinePrepend { get; set; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.IEventGridIdentity _inputObject; + + /// Identity Parameter + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Identity Parameter", ValueFromPipeline = true)] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Path)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.IEventGridIdentity InputObject { get => this._inputObject; set => this._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.EventGrid.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Runtime.HttpPipeline Pipeline { get; set; } + + /// The URI for the proxy server to use + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "The URI for the proxy server to use")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Uri Proxy { get; set; } + + /// Credentials for a proxy server to use for the remote call + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Credentials for a proxy server to use for the remote call")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Management.Automation.PSCredential ProxyCredential { get; set; } + + /// Use the default credentials for the proxy + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Use the default credentials for the proxy")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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. + /// /// Determines if the rest of the onDefault method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnDefault(global::System.Net.Http.HttpResponseMessage responseMessage, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnOk will be called before the regular onOk has been processed, allowing customization of what happens + /// on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// 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() + { + var telemetryId = Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.GetTelemetryId.Invoke(); + if (telemetryId != "" && telemetryId != "internal") + { + __correlationId = telemetryId; + } + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + + } + + /// + /// Intializes a new instance of the cmdlet class. + /// + public GetAzEventGridChannel_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.EventGrid.Runtime.IEventListener.Signal(string id, global::System.Threading.CancellationToken token, global::System.Func messageData) + { + using( NoSynchronizationContext ) + { + if (token.IsCancellationRequested) + { + return ; + } + + switch ( id ) + { + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Information: + { + var data = messageData(); + WriteInformation(data.Message, new string[]{}); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Error: + { + WriteError(new global::System.Management.Automation.ErrorRecord( new global::System.Exception(messageData().Message), string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null ) ); + return ; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.EventData ), InvocationInformation, this.ParameterSetName, __correlationId, __processRecordId, null ); + if (token.IsCancellationRequested) + { + return ; + } + WriteDebug($"{id}: {(messageData().Message ?? global::System.String.Empty)}"); + } + } + + /// Performs execution of the command. + protected override void ProcessRecord() + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + using( var asyncCommandRuntime = new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token); + } + } + catch (global::System.AggregateException aggregateException) + { + // unroll the inner exceptions to get the root cause + foreach( var innerException in aggregateException.Flatten().InnerExceptions ) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(innerException,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + } + catch (global::System.Exception exception) when ((exception as System.Management.Automation.PipelineStoppedException)== null || (exception as System.Management.Automation.PipelineStoppedException).InnerException != null) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(exception,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + finally + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletProcessRecordEnd).Wait(); + } + } + + /// Performs execution of the command, working asynchronously if required. + /// + /// A that will be complete when handling of the method is completed. + /// + protected async global::System.Threading.Tasks.Task ProcessRecordAsync() + { + using( NoSynchronizationContext ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + if (InputObject?.Id != null) + { + await this.Client.ChannelsGetViaIdentity(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.PartnerNamespaceName) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.PartnerNamespaceName"),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, InputObject) ); + } + if (null == InputObject.ChannelName) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.ChannelName"),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, InputObject) ); + } + await this.Client.ChannelsGet(InputObject.SubscriptionId ?? null, InputObject.ResourceGroupName ?? null, InputObject.PartnerNamespaceName ?? null, InputObject.ChannelName ?? null, onOk, onDefault, this, Pipeline); + } + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Cancel(); + base.StopProcessing(); + } + + /// + /// a delegate that is called when the remote service returns default (any response code not handled elsewhere). + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onDefault(global::System.Net.Http.HttpResponseMessage responseMessage) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnDefault(responseMessage, ref _returnNow); + // if overrideOnDefault has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // Error Response : default + // Unrecognized Response. Create an error record based on what we have. + var ex = new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.RestException(responseMessage); + WriteError( new global::System.Management.Automation.ErrorRecord(ex, ex.Code, global::System.Management.Automation.ErrorCategory.InvalidOperation, new { }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(ex.Message) { RecommendedAction = ex.Action } + }); + } + } + + /// a delegate that is called when the remote service returns 200 (OK). + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as 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.EventGrid.Models.Api20211015Preview.IChannel + WriteObject((await response)); + } + } + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/cmdlets/GetAzEventGridChannel_List.cs b/swaggerci/eventgrid/generated/cmdlets/GetAzEventGridChannel_List.cs new file mode 100644 index 000000000000..71632cd68f16 --- /dev/null +++ b/swaggerci/eventgrid/generated/cmdlets/GetAzEventGridChannel_List.cs @@ -0,0 +1,456 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Extensions; + using System; + + /// List all the channels in a partner namespace. + /// + /// [OpenAPI] ListByPartnerNamespace=>GET:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.EventGrid/partnerNamespaces/{partnerNamespaceName}/channels" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsCommon.Get, @"AzEventGridChannel_List")] + [global::System.Management.Automation.OutputType(typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IChannel))] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Description(@"List all the channels in a partner namespace.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Generated] + public partial class GetAzEventGridChannel_List : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener + { + /// A unique id generatd for the this cmdlet when it is instantiated. + private string __correlationId = System.Guid.NewGuid().ToString(); + + /// A copy of the Invocation Info (necessary to allow asJob to clone this cmdlet) + private global::System.Management.Automation.InvocationInfo __invocationInfo; + + /// A unique id generatd for the this cmdlet when ProcessRecord() is called. + private string __processRecordId; + + /// + /// The for this operation. + /// + private global::System.Threading.CancellationTokenSource _cancellationTokenSource = new global::System.Threading.CancellationTokenSource(); + + /// A flag to tell whether it is the first onOK call. + private bool _isFirst = true; + + /// Link to retrieve next page. + private string _nextLink; + + /// Wait for .NET debugger to attach + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Wait for .NET debugger to attach")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.EventGridManagementClient Client => Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.ClientAPI; + + /// + /// The credentials, account, tenant, and subscription used for communication with Azure + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The credentials, account, tenant, and subscription used for communication with Azure.")] + [global::System.Management.Automation.ValidateNotNull] + [global::System.Management.Automation.Alias("AzureRMContext", "AzureCredential")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Azure)] + public global::System.Management.Automation.PSObject DefaultProfile { get; set; } + + /// Backing field for property. + private string _filter; + + /// + /// The query used to filter the search results using OData syntax. Filtering is permitted on the 'name' property only and + /// with limited number of OData operations. These operations are: the 'contains' function as well as the following logical + /// operations: not, and, or, eq (for equal), and ne (for not equal). No arithmetic operations are supported. The following + /// is a valid filter example: $filter=contains(namE, 'PATTERN') and name ne 'PATTERN-1'. The following is not a valid filter + /// example: $filter=location eq 'westus'. + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The query used to filter the search results using OData syntax. Filtering is permitted on the 'name' property only and with limited number of OData operations. These operations are: the 'contains' function as well as the following logical operations: not, and, or, eq (for equal), and ne (for not equal). No arithmetic operations are supported. The following is a valid filter example: $filter=contains(namE, 'PATTERN') and name ne 'PATTERN-1'. The following is not a valid filter example: $filter=location eq 'westus'.")] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The query used to filter the search results using OData syntax. Filtering is permitted on the 'name' property only and with limited number of OData operations. These operations are: the 'contains' function as well as the following logical operations: not, and, or, eq (for equal), and ne (for not equal). No arithmetic operations are supported. The following is a valid filter example: $filter=contains(namE, 'PATTERN') and name ne 'PATTERN-1'. The following is not a valid filter example: $filter=location eq 'westus'.", + SerializedName = @"$filter", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[] HttpPipelineAppend { get; set; } + + /// SendAsync Pipeline Steps to be prepended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be prepended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[] HttpPipelinePrepend { get; set; } + + /// Accessor for our copy of the InvocationInfo. + public global::System.Management.Automation.InvocationInfo InvocationInformation { get => __invocationInfo = __invocationInfo ?? this.MyInvocation ; set { __invocationInfo = value; } } + + /// + /// cancellation delegate. Stops the cmdlet when called. + /// + global::System.Action Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener.Token => _cancellationTokenSource.Token; + + /// Backing field for property. + private string _partnerNamespaceName; + + /// Name of the partner namespace. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Name of the partner namespace.")] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Name of the partner namespace.", + SerializedName = @"partnerNamespaceName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Path)] + public string PartnerNamespaceName { get => this._partnerNamespaceName; set => this._partnerNamespaceName = 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.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Runtime.HttpPipeline Pipeline { get; set; } + + /// The URI for the proxy server to use + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "The URI for the proxy server to use")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Uri Proxy { get; set; } + + /// Credentials for a proxy server to use for the remote call + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Credentials for a proxy server to use for the remote call")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Management.Automation.PSCredential ProxyCredential { get; set; } + + /// Use the default credentials for the proxy + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Use the default credentials for the proxy")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter ProxyUseDefaultCredentials { get; set; } + + /// Backing field for property. + private string _resourceGroupName; + + /// The name of the resource group within the partners subscription. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the resource group within the partners subscription.")] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the resource group within the partners subscription.", + SerializedName = @"resourceGroupName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Path)] + public string ResourceGroupName { get => this._resourceGroupName; set => this._resourceGroupName = value; } + + /// Backing field for property. + private string[] _subscriptionId; + + /// + /// Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription ID forms part of the + /// URI for every service call. + /// + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.")] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.", + SerializedName = @"subscriptionId", + PossibleTypes = new [] { typeof(string) })] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.DefaultInfo( + Name = @"", + Description =@"", + Script = @"(Get-AzContext).Subscription.Id")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Path)] + public string[] SubscriptionId { get => this._subscriptionId; set => this._subscriptionId = value; } + + /// Backing field for property. + private int _top; + + /// + /// The number of results to return per page for the list operation. Valid range for top parameter is 1 to 100. If not specified, + /// the default number of results to be returned is 20 items per page. + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The number of results to return per page for the list operation. Valid range for top parameter is 1 to 100. If not specified, the default number of results to be returned is 20 items per page.")] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The number of results to return per page for the list operation. Valid range for top parameter is 1 to 100. If not specified, the default number of results to be returned is 20 items per page.", + SerializedName = @"$top", + PossibleTypes = new [] { typeof(int) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Query)] + public int Top { get => this._top; set => this._top = value; } + + /// + /// overrideOnDefault will be called before the regular onDefault has been processed, allowing customization of what + /// happens on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// /// Determines if the rest of the onDefault method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnDefault(global::System.Net.Http.HttpResponseMessage responseMessage, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnOk will be called before the regular onOk has been processed, allowing customization of what happens + /// on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// 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() + { + var telemetryId = Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.GetTelemetryId.Invoke(); + if (telemetryId != "" && telemetryId != "internal") + { + __correlationId = telemetryId; + } + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + + } + + /// + /// Intializes a new instance of the cmdlet class. + /// + public GetAzEventGridChannel_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.EventGrid.Runtime.IEventListener.Signal(string id, global::System.Threading.CancellationToken token, global::System.Func messageData) + { + using( NoSynchronizationContext ) + { + if (token.IsCancellationRequested) + { + return ; + } + + switch ( id ) + { + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Information: + { + var data = messageData(); + WriteInformation(data.Message, new string[]{}); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Error: + { + WriteError(new global::System.Management.Automation.ErrorRecord( new global::System.Exception(messageData().Message), string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null ) ); + return ; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.EventData ), InvocationInformation, this.ParameterSetName, __correlationId, __processRecordId, null ); + if (token.IsCancellationRequested) + { + return ; + } + WriteDebug($"{id}: {(messageData().Message ?? global::System.String.Empty)}"); + } + } + + /// Performs execution of the command. + protected override void ProcessRecord() + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + using( var asyncCommandRuntime = new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token); + } + } + catch (global::System.AggregateException aggregateException) + { + // unroll the inner exceptions to get the root cause + foreach( var innerException in aggregateException.Flatten().InnerExceptions ) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(innerException,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + } + catch (global::System.Exception exception) when ((exception as System.Management.Automation.PipelineStoppedException)== null || (exception as System.Management.Automation.PipelineStoppedException).InnerException != null) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(exception,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + finally + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletProcessRecordEnd).Wait(); + } + } + + /// Performs execution of the command, working asynchronously if required. + /// + /// A that will be complete when handling of the method is completed. + /// + protected async global::System.Threading.Tasks.Task ProcessRecordAsync() + { + using( NoSynchronizationContext ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + foreach( var SubscriptionId in this.SubscriptionId ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await this.Client.ChannelsListByPartnerNamespace(SubscriptionId, ResourceGroupName, PartnerNamespaceName, this.InvocationInformation.BoundParameters.ContainsKey("Filter") ? Filter : null, this.InvocationInformation.BoundParameters.ContainsKey("Top") ? Top : default(int?), onOk, onDefault, this, Pipeline); + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.UndeclaredResponseException urexception) + { + WriteError(new global::System.Management.Automation.ErrorRecord(urexception, urexception.StatusCode.ToString(), global::System.Management.Automation.ErrorCategory.InvalidOperation, new { SubscriptionId=SubscriptionId,ResourceGroupName=ResourceGroupName,PartnerNamespaceName=PartnerNamespaceName,Filter=this.InvocationInformation.BoundParameters.ContainsKey("Filter") ? Filter : null,Top=this.InvocationInformation.BoundParameters.ContainsKey("Top") ? Top : default(int?)}) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(urexception.Message) { RecommendedAction = urexception.Action } + }); + } + finally + { + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Cancel(); + base.StopProcessing(); + } + + /// + /// a delegate that is called when the remote service returns default (any response code not handled elsewhere). + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onDefault(global::System.Net.Http.HttpResponseMessage responseMessage) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnDefault(responseMessage, ref _returnNow); + // if overrideOnDefault has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // Error Response : default + // Unrecognized Response. Create an error record based on what we have. + var ex = new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.RestException(responseMessage); + WriteError( new global::System.Management.Automation.ErrorRecord(ex, ex.Code, global::System.Management.Automation.ErrorCategory.InvalidOperation, new { SubscriptionId=SubscriptionId, ResourceGroupName=ResourceGroupName, PartnerNamespaceName=PartnerNamespaceName, Filter=this.InvocationInformation.BoundParameters.ContainsKey("Filter") ? Filter : null, Top=this.InvocationInformation.BoundParameters.ContainsKey("Top") ? Top : default(int?) }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(ex.Message) { RecommendedAction = ex.Action } + }); + } + } + + /// a delegate that is called when the remote service returns 200 (OK). + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnOk(responseMessage, response, ref _returnNow); + // if overrideOnOk has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // onOk - response for 200 / application/json + // response should be returning an array of some kind. +Pageable + // pageable / value / nextLink + var result = await response; + WriteObject(result.Value,true); + _nextLink = result.NextLink; + if (_isFirst) + { + _isFirst = false; + while (_nextLink != null) + { + if (responseMessage.RequestMessage is System.Net.Http.HttpRequestMessage requestMessage ) + { + requestMessage = requestMessage.Clone(new global::System.Uri( _nextLink ),Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Method.Get ); + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.FollowingNextLink); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await this.Client.ChannelsListByPartnerNamespace_Call(requestMessage, onOk, onDefault, this, Pipeline); + } + } + } + } + } + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/cmdlets/GetAzEventGridDomainEventSubscriptionDeliveryAttribute_Get.cs b/swaggerci/eventgrid/generated/cmdlets/GetAzEventGridDomainEventSubscriptionDeliveryAttribute_Get.cs new file mode 100644 index 000000000000..474c4069559d --- /dev/null +++ b/swaggerci/eventgrid/generated/cmdlets/GetAzEventGridDomainEventSubscriptionDeliveryAttribute_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.EventGrid.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Extensions; + using System; + + /// Get all delivery attributes for an event subscription for domain. + /// + /// [OpenAPI] GetDeliveryAttributes=>POST:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.EventGrid/domains/{domainName}/eventSubscriptions/{eventSubscriptionName}/getDeliveryAttributes" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsCommon.Get, @"AzEventGridDomainEventSubscriptionDeliveryAttribute_Get", SupportsShouldProcess = true)] + [global::System.Management.Automation.OutputType(typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDeliveryAttributeMapping))] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Description(@"Get all delivery attributes for an event subscription for domain.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Generated] + public partial class GetAzEventGridDomainEventSubscriptionDeliveryAttribute_Get : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener + { + /// A unique id generatd for the this cmdlet when it is instantiated. + private string __correlationId = System.Guid.NewGuid().ToString(); + + /// A copy of the Invocation Info (necessary to allow asJob to clone this cmdlet) + private global::System.Management.Automation.InvocationInfo __invocationInfo; + + /// A unique id generatd for the this cmdlet when ProcessRecord() is called. + private string __processRecordId; + + /// + /// The for this operation. + /// + private global::System.Threading.CancellationTokenSource _cancellationTokenSource = new global::System.Threading.CancellationTokenSource(); + + /// Wait for .NET debugger to attach + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Wait for .NET debugger to attach")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.EventGridManagementClient Client => Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.ClientAPI; + + /// + /// The credentials, account, tenant, and subscription used for communication with Azure + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The credentials, account, tenant, and subscription used for communication with Azure.")] + [global::System.Management.Automation.ValidateNotNull] + [global::System.Management.Automation.Alias("AzureRMContext", "AzureCredential")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Azure)] + public global::System.Management.Automation.PSObject DefaultProfile { get; set; } + + /// Backing field for property. + private string _domainName; + + /// Name of the domain topic. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Name of the domain topic.")] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Name of the domain topic.", + SerializedName = @"domainName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Path)] + public string DomainName { get => this._domainName; set => this._domainName = value; } + + /// Backing field for property. + private string _eventSubscriptionName; + + /// Name of the event subscription. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Name of the event subscription.")] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Name of the event subscription.", + SerializedName = @"eventSubscriptionName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Path)] + public string EventSubscriptionName { get => this._eventSubscriptionName; set => this._eventSubscriptionName = 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.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[] HttpPipelineAppend { get; set; } + + /// SendAsync Pipeline Steps to be prepended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be prepended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[] HttpPipelinePrepend { get; set; } + + /// Accessor for our copy of the InvocationInfo. + public global::System.Management.Automation.InvocationInfo InvocationInformation { get => __invocationInfo = __invocationInfo ?? this.MyInvocation ; set { __invocationInfo = value; } } + + /// + /// cancellation delegate. Stops the cmdlet when called. + /// + global::System.Action Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Runtime.HttpPipeline Pipeline { get; set; } + + /// The URI for the proxy server to use + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "The URI for the proxy server to use")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Uri Proxy { get; set; } + + /// Credentials for a proxy server to use for the remote call + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Credentials for a proxy server to use for the remote call")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Management.Automation.PSCredential ProxyCredential { get; set; } + + /// Use the default credentials for the proxy + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Use the default credentials for the proxy")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter ProxyUseDefaultCredentials { get; set; } + + /// Backing field for property. + private string _resourceGroupName; + + /// The name of the resource group within the user's subscription. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the resource group within the user's subscription.")] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the resource group within the user's subscription.", + SerializedName = @"resourceGroupName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Path)] + public string ResourceGroupName { get => this._resourceGroupName; set => this._resourceGroupName = value; } + + /// Backing field for property. + private string[] _subscriptionId; + + /// + /// Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription ID forms part of the + /// URI for every service call. + /// + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.")] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.", + SerializedName = @"subscriptionId", + PossibleTypes = new [] { typeof(string) })] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.DefaultInfo( + Name = @"", + Description =@"", + Script = @"(Get-AzContext).Subscription.Id")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Path)] + public string[] SubscriptionId { get => this._subscriptionId; set => this._subscriptionId = value; } + + /// + /// overrideOnDefault will be called before the regular onDefault has been processed, allowing customization of what + /// happens on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// /// Determines if the rest of the onDefault method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnDefault(global::System.Net.Http.HttpResponseMessage responseMessage, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnOk will be called before the regular onOk has been processed, allowing customization of what happens + /// on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// 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() + { + var telemetryId = Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.GetTelemetryId.Invoke(); + if (telemetryId != "" && telemetryId != "internal") + { + __correlationId = telemetryId; + } + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + + } + + /// + /// Intializes a new instance of the cmdlet class. + /// + public GetAzEventGridDomainEventSubscriptionDeliveryAttribute_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.EventGrid.Runtime.IEventListener.Signal(string id, global::System.Threading.CancellationToken token, global::System.Func messageData) + { + using( NoSynchronizationContext ) + { + if (token.IsCancellationRequested) + { + return ; + } + + switch ( id ) + { + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Information: + { + var data = messageData(); + WriteInformation(data.Message, new string[]{}); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Error: + { + WriteError(new global::System.Management.Automation.ErrorRecord( new global::System.Exception(messageData().Message), string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null ) ); + return ; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.EventData ), InvocationInformation, this.ParameterSetName, __correlationId, __processRecordId, null ); + if (token.IsCancellationRequested) + { + return ; + } + WriteDebug($"{id}: {(messageData().Message ?? global::System.String.Empty)}"); + } + } + + /// Performs execution of the command. + protected override void ProcessRecord() + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + if (ShouldProcess($"Call remote 'DomainEventSubscriptionsGetDeliveryAttributes' operation")) + { + using( var asyncCommandRuntime = new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token); + } + } + } + catch (global::System.AggregateException aggregateException) + { + // unroll the inner exceptions to get the root cause + foreach( var innerException in aggregateException.Flatten().InnerExceptions ) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(innerException,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + } + catch (global::System.Exception exception) when ((exception as System.Management.Automation.PipelineStoppedException)== null || (exception as System.Management.Automation.PipelineStoppedException).InnerException != null) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(exception,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + finally + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletProcessRecordEnd).Wait(); + } + } + + /// Performs execution of the command, working asynchronously if required. + /// + /// A that will be complete when handling of the method is completed. + /// + protected async global::System.Threading.Tasks.Task ProcessRecordAsync() + { + using( NoSynchronizationContext ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + foreach( var SubscriptionId in this.SubscriptionId ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await this.Client.DomainEventSubscriptionsGetDeliveryAttributes(SubscriptionId, ResourceGroupName, DomainName, EventSubscriptionName, onOk, onDefault, this, Pipeline); + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.UndeclaredResponseException urexception) + { + WriteError(new global::System.Management.Automation.ErrorRecord(urexception, urexception.StatusCode.ToString(), global::System.Management.Automation.ErrorCategory.InvalidOperation, new { SubscriptionId=SubscriptionId,ResourceGroupName=ResourceGroupName,DomainName=DomainName,EventSubscriptionName=EventSubscriptionName}) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(urexception.Message) { RecommendedAction = urexception.Action } + }); + } + finally + { + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Cancel(); + base.StopProcessing(); + } + + /// + /// a delegate that is called when the remote service returns default (any response code not handled elsewhere). + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onDefault(global::System.Net.Http.HttpResponseMessage responseMessage) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnDefault(responseMessage, ref _returnNow); + // if overrideOnDefault has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // Error Response : default + // Unrecognized Response. Create an error record based on what we have. + var ex = new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.RestException(responseMessage); + WriteError( new global::System.Management.Automation.ErrorRecord(ex, ex.Code, global::System.Management.Automation.ErrorCategory.InvalidOperation, new { SubscriptionId=SubscriptionId, ResourceGroupName=ResourceGroupName, DomainName=DomainName, EventSubscriptionName=EventSubscriptionName }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(ex.Message) { RecommendedAction = ex.Action } + }); + } + } + + /// a delegate that is called when the remote service returns 200 (OK). + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnOk(responseMessage, response, ref _returnNow); + // if overrideOnOk has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // onOk - response for 200 / application/json + // response should be returning an array of some kind. +Pageable + // nested-array / value / + WriteObject((await response).Value, true); + } + } + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/cmdlets/GetAzEventGridDomainEventSubscriptionDeliveryAttribute_GetViaIdentity.cs b/swaggerci/eventgrid/generated/cmdlets/GetAzEventGridDomainEventSubscriptionDeliveryAttribute_GetViaIdentity.cs new file mode 100644 index 000000000000..09a5061cd7e6 --- /dev/null +++ b/swaggerci/eventgrid/generated/cmdlets/GetAzEventGridDomainEventSubscriptionDeliveryAttribute_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.EventGrid.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Extensions; + using System; + + /// Get all delivery attributes for an event subscription for domain. + /// + /// [OpenAPI] GetDeliveryAttributes=>POST:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.EventGrid/domains/{domainName}/eventSubscriptions/{eventSubscriptionName}/getDeliveryAttributes" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsCommon.Get, @"AzEventGridDomainEventSubscriptionDeliveryAttribute_GetViaIdentity", SupportsShouldProcess = true)] + [global::System.Management.Automation.OutputType(typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDeliveryAttributeMapping))] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Description(@"Get all delivery attributes for an event subscription for domain.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Generated] + public partial class GetAzEventGridDomainEventSubscriptionDeliveryAttribute_GetViaIdentity : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener + { + /// A unique id generatd for the this cmdlet when it is instantiated. + private string __correlationId = System.Guid.NewGuid().ToString(); + + /// A copy of the Invocation Info (necessary to allow asJob to clone this cmdlet) + private global::System.Management.Automation.InvocationInfo __invocationInfo; + + /// A unique id generatd for the this cmdlet when ProcessRecord() is called. + private string __processRecordId; + + /// + /// The for this operation. + /// + private global::System.Threading.CancellationTokenSource _cancellationTokenSource = new global::System.Threading.CancellationTokenSource(); + + /// Wait for .NET debugger to attach + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Wait for .NET debugger to attach")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.EventGridManagementClient Client => Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.ClientAPI; + + /// + /// The credentials, account, tenant, and subscription used for communication with Azure + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The credentials, account, tenant, and subscription used for communication with Azure.")] + [global::System.Management.Automation.ValidateNotNull] + [global::System.Management.Automation.Alias("AzureRMContext", "AzureCredential")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Azure)] + public global::System.Management.Automation.PSObject DefaultProfile { get; set; } + + /// SendAsync Pipeline Steps to be appended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be appended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[] HttpPipelineAppend { get; set; } + + /// SendAsync Pipeline Steps to be prepended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be prepended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[] HttpPipelinePrepend { get; set; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.IEventGridIdentity _inputObject; + + /// Identity Parameter + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Identity Parameter", ValueFromPipeline = true)] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Path)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.IEventGridIdentity InputObject { get => this._inputObject; set => this._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.EventGrid.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Runtime.HttpPipeline Pipeline { get; set; } + + /// The URI for the proxy server to use + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "The URI for the proxy server to use")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Uri Proxy { get; set; } + + /// Credentials for a proxy server to use for the remote call + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Credentials for a proxy server to use for the remote call")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Management.Automation.PSCredential ProxyCredential { get; set; } + + /// Use the default credentials for the proxy + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Use the default credentials for the proxy")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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. + /// /// Determines if the rest of the onDefault method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnDefault(global::System.Net.Http.HttpResponseMessage responseMessage, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnOk will be called before the regular onOk has been processed, allowing customization of what happens + /// on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// 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() + { + var telemetryId = Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.GetTelemetryId.Invoke(); + if (telemetryId != "" && telemetryId != "internal") + { + __correlationId = telemetryId; + } + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + + } + + /// + /// Intializes a new instance of the + /// cmdlet class. + /// + public GetAzEventGridDomainEventSubscriptionDeliveryAttribute_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.EventGrid.Runtime.IEventListener.Signal(string id, global::System.Threading.CancellationToken token, global::System.Func messageData) + { + using( NoSynchronizationContext ) + { + if (token.IsCancellationRequested) + { + return ; + } + + switch ( id ) + { + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Information: + { + var data = messageData(); + WriteInformation(data.Message, new string[]{}); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Error: + { + WriteError(new global::System.Management.Automation.ErrorRecord( new global::System.Exception(messageData().Message), string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null ) ); + return ; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.EventData ), InvocationInformation, this.ParameterSetName, __correlationId, __processRecordId, null ); + if (token.IsCancellationRequested) + { + return ; + } + WriteDebug($"{id}: {(messageData().Message ?? global::System.String.Empty)}"); + } + } + + /// Performs execution of the command. + protected override void ProcessRecord() + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + if (ShouldProcess($"Call remote 'DomainEventSubscriptionsGetDeliveryAttributes' operation")) + { + using( var asyncCommandRuntime = new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token); + } + } + } + catch (global::System.AggregateException aggregateException) + { + // unroll the inner exceptions to get the root cause + foreach( var innerException in aggregateException.Flatten().InnerExceptions ) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(innerException,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + } + catch (global::System.Exception exception) when ((exception as System.Management.Automation.PipelineStoppedException)== null || (exception as System.Management.Automation.PipelineStoppedException).InnerException != null) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(exception,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + finally + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletProcessRecordEnd).Wait(); + } + } + + /// Performs execution of the command, working asynchronously if required. + /// + /// A that will be complete when handling of the method is completed. + /// + protected async global::System.Threading.Tasks.Task ProcessRecordAsync() + { + using( NoSynchronizationContext ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + if (InputObject?.Id != null) + { + await this.Client.DomainEventSubscriptionsGetDeliveryAttributesViaIdentity(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.DomainName) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.DomainName"),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, InputObject) ); + } + if (null == InputObject.EventSubscriptionName) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.EventSubscriptionName"),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, InputObject) ); + } + await this.Client.DomainEventSubscriptionsGetDeliveryAttributes(InputObject.SubscriptionId ?? null, InputObject.ResourceGroupName ?? null, InputObject.DomainName ?? null, InputObject.EventSubscriptionName ?? null, onOk, onDefault, this, Pipeline); + } + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Cancel(); + base.StopProcessing(); + } + + /// + /// a delegate that is called when the remote service returns default (any response code not handled elsewhere). + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onDefault(global::System.Net.Http.HttpResponseMessage responseMessage) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnDefault(responseMessage, ref _returnNow); + // if overrideOnDefault has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // Error Response : default + // Unrecognized Response. Create an error record based on what we have. + var ex = new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.RestException(responseMessage); + WriteError( new global::System.Management.Automation.ErrorRecord(ex, ex.Code, global::System.Management.Automation.ErrorCategory.InvalidOperation, new { }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(ex.Message) { RecommendedAction = ex.Action } + }); + } + } + + /// a delegate that is called when the remote service returns 200 (OK). + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnOk(responseMessage, response, ref _returnNow); + // if overrideOnOk has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // onOk - response for 200 / application/json + // response should be returning an array of some kind. +Pageable + // nested-array / value / + WriteObject((await response).Value, true); + } + } + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/cmdlets/GetAzEventGridDomainEventSubscriptionFullUrl_Get.cs b/swaggerci/eventgrid/generated/cmdlets/GetAzEventGridDomainEventSubscriptionFullUrl_Get.cs new file mode 100644 index 000000000000..8f4e8dd29d20 --- /dev/null +++ b/swaggerci/eventgrid/generated/cmdlets/GetAzEventGridDomainEventSubscriptionFullUrl_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.EventGrid.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Extensions; + using System; + + /// Get the full endpoint URL for an event subscription for domain. + /// + /// [OpenAPI] GetFullUrl=>POST:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.EventGrid/domains/{domainName}/eventSubscriptions/{eventSubscriptionName}/getFullUrl" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsCommon.Get, @"AzEventGridDomainEventSubscriptionFullUrl_Get", SupportsShouldProcess = true)] + [global::System.Management.Automation.OutputType(typeof(string))] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Description(@"Get the full endpoint URL for an event subscription for domain.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Generated] + public partial class GetAzEventGridDomainEventSubscriptionFullUrl_Get : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener + { + /// A unique id generatd for the this cmdlet when it is instantiated. + private string __correlationId = System.Guid.NewGuid().ToString(); + + /// A copy of the Invocation Info (necessary to allow asJob to clone this cmdlet) + private global::System.Management.Automation.InvocationInfo __invocationInfo; + + /// A unique id generatd for the this cmdlet when ProcessRecord() is called. + private string __processRecordId; + + /// + /// The for this operation. + /// + private global::System.Threading.CancellationTokenSource _cancellationTokenSource = new global::System.Threading.CancellationTokenSource(); + + /// Wait for .NET debugger to attach + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Wait for .NET debugger to attach")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.EventGridManagementClient Client => Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.ClientAPI; + + /// + /// The credentials, account, tenant, and subscription used for communication with Azure + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The credentials, account, tenant, and subscription used for communication with Azure.")] + [global::System.Management.Automation.ValidateNotNull] + [global::System.Management.Automation.Alias("AzureRMContext", "AzureCredential")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Azure)] + public global::System.Management.Automation.PSObject DefaultProfile { get; set; } + + /// Backing field for property. + private string _domainName; + + /// Name of the domain topic. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Name of the domain topic.")] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Name of the domain topic.", + SerializedName = @"domainName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Path)] + public string DomainName { get => this._domainName; set => this._domainName = value; } + + /// Backing field for property. + private string _eventSubscriptionName; + + /// Name of the event subscription. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Name of the event subscription.")] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Name of the event subscription.", + SerializedName = @"eventSubscriptionName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Path)] + public string EventSubscriptionName { get => this._eventSubscriptionName; set => this._eventSubscriptionName = 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.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[] HttpPipelineAppend { get; set; } + + /// SendAsync Pipeline Steps to be prepended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be prepended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[] HttpPipelinePrepend { get; set; } + + /// Accessor for our copy of the InvocationInfo. + public global::System.Management.Automation.InvocationInfo InvocationInformation { get => __invocationInfo = __invocationInfo ?? this.MyInvocation ; set { __invocationInfo = value; } } + + /// + /// cancellation delegate. Stops the cmdlet when called. + /// + global::System.Action Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Runtime.HttpPipeline Pipeline { get; set; } + + /// The URI for the proxy server to use + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "The URI for the proxy server to use")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Uri Proxy { get; set; } + + /// Credentials for a proxy server to use for the remote call + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Credentials for a proxy server to use for the remote call")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Management.Automation.PSCredential ProxyCredential { get; set; } + + /// Use the default credentials for the proxy + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Use the default credentials for the proxy")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter ProxyUseDefaultCredentials { get; set; } + + /// Backing field for property. + private string _resourceGroupName; + + /// The name of the resource group within the user's subscription. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the resource group within the user's subscription.")] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the resource group within the user's subscription.", + SerializedName = @"resourceGroupName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Path)] + public string ResourceGroupName { get => this._resourceGroupName; set => this._resourceGroupName = value; } + + /// Backing field for property. + private string[] _subscriptionId; + + /// + /// Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription ID forms part of the + /// URI for every service call. + /// + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.")] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.", + SerializedName = @"subscriptionId", + PossibleTypes = new [] { typeof(string) })] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.DefaultInfo( + Name = @"", + Description =@"", + Script = @"(Get-AzContext).Subscription.Id")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Path)] + public string[] SubscriptionId { get => this._subscriptionId; set => this._subscriptionId = value; } + + /// + /// overrideOnDefault will be called before the regular onDefault has been processed, allowing customization of what + /// happens on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// /// Determines if the rest of the onDefault method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnDefault(global::System.Net.Http.HttpResponseMessage responseMessage, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnOk will be called before the regular onOk has been processed, allowing customization of what happens + /// on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// 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() + { + var telemetryId = Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.GetTelemetryId.Invoke(); + if (telemetryId != "" && telemetryId != "internal") + { + __correlationId = telemetryId; + } + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + + } + + /// + /// Intializes a new instance of the cmdlet class. + /// + public GetAzEventGridDomainEventSubscriptionFullUrl_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.EventGrid.Runtime.IEventListener.Signal(string id, global::System.Threading.CancellationToken token, global::System.Func messageData) + { + using( NoSynchronizationContext ) + { + if (token.IsCancellationRequested) + { + return ; + } + + switch ( id ) + { + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Information: + { + var data = messageData(); + WriteInformation(data.Message, new string[]{}); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Error: + { + WriteError(new global::System.Management.Automation.ErrorRecord( new global::System.Exception(messageData().Message), string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null ) ); + return ; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.EventData ), InvocationInformation, this.ParameterSetName, __correlationId, __processRecordId, null ); + if (token.IsCancellationRequested) + { + return ; + } + WriteDebug($"{id}: {(messageData().Message ?? global::System.String.Empty)}"); + } + } + + /// Performs execution of the command. + protected override void ProcessRecord() + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + if (ShouldProcess($"Call remote 'DomainEventSubscriptionsGetFullUrl' operation")) + { + using( var asyncCommandRuntime = new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token); + } + } + } + catch (global::System.AggregateException aggregateException) + { + // unroll the inner exceptions to get the root cause + foreach( var innerException in aggregateException.Flatten().InnerExceptions ) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(innerException,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + } + catch (global::System.Exception exception) when ((exception as System.Management.Automation.PipelineStoppedException)== null || (exception as System.Management.Automation.PipelineStoppedException).InnerException != null) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(exception,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + finally + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletProcessRecordEnd).Wait(); + } + } + + /// Performs execution of the command, working asynchronously if required. + /// + /// A that will be complete when handling of the method is completed. + /// + protected async global::System.Threading.Tasks.Task ProcessRecordAsync() + { + using( NoSynchronizationContext ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + foreach( var SubscriptionId in this.SubscriptionId ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await this.Client.DomainEventSubscriptionsGetFullUrl(SubscriptionId, ResourceGroupName, DomainName, EventSubscriptionName, onOk, onDefault, this, Pipeline); + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.UndeclaredResponseException urexception) + { + WriteError(new global::System.Management.Automation.ErrorRecord(urexception, urexception.StatusCode.ToString(), global::System.Management.Automation.ErrorCategory.InvalidOperation, new { SubscriptionId=SubscriptionId,ResourceGroupName=ResourceGroupName,DomainName=DomainName,EventSubscriptionName=EventSubscriptionName}) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(urexception.Message) { RecommendedAction = urexception.Action } + }); + } + finally + { + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Cancel(); + base.StopProcessing(); + } + + /// + /// a delegate that is called when the remote service returns default (any response code not handled elsewhere). + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onDefault(global::System.Net.Http.HttpResponseMessage responseMessage) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnDefault(responseMessage, ref _returnNow); + // if overrideOnDefault has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // Error Response : default + // Unrecognized Response. Create an error record based on what we have. + var ex = new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.RestException(responseMessage); + WriteError( new global::System.Management.Automation.ErrorRecord(ex, ex.Code, global::System.Management.Automation.ErrorCategory.InvalidOperation, new { SubscriptionId=SubscriptionId, ResourceGroupName=ResourceGroupName, DomainName=DomainName, EventSubscriptionName=EventSubscriptionName }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(ex.Message) { RecommendedAction = ex.Action } + }); + } + } + + /// a delegate that is called when the remote service returns 200 (OK). + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as 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.EventGrid.Models.Api20211015Preview.IEventSubscriptionFullUrl + WriteObject((await response).EndpointUrl); + } + } + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/cmdlets/GetAzEventGridDomainEventSubscriptionFullUrl_GetViaIdentity.cs b/swaggerci/eventgrid/generated/cmdlets/GetAzEventGridDomainEventSubscriptionFullUrl_GetViaIdentity.cs new file mode 100644 index 000000000000..080f4127fd14 --- /dev/null +++ b/swaggerci/eventgrid/generated/cmdlets/GetAzEventGridDomainEventSubscriptionFullUrl_GetViaIdentity.cs @@ -0,0 +1,380 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Extensions; + using System; + + /// Get the full endpoint URL for an event subscription for domain. + /// + /// [OpenAPI] GetFullUrl=>POST:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.EventGrid/domains/{domainName}/eventSubscriptions/{eventSubscriptionName}/getFullUrl" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsCommon.Get, @"AzEventGridDomainEventSubscriptionFullUrl_GetViaIdentity", SupportsShouldProcess = true)] + [global::System.Management.Automation.OutputType(typeof(string))] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Description(@"Get the full endpoint URL for an event subscription for domain.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Generated] + public partial class GetAzEventGridDomainEventSubscriptionFullUrl_GetViaIdentity : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener + { + /// A unique id generatd for the this cmdlet when it is instantiated. + private string __correlationId = System.Guid.NewGuid().ToString(); + + /// A copy of the Invocation Info (necessary to allow asJob to clone this cmdlet) + private global::System.Management.Automation.InvocationInfo __invocationInfo; + + /// A unique id generatd for the this cmdlet when ProcessRecord() is called. + private string __processRecordId; + + /// + /// The for this operation. + /// + private global::System.Threading.CancellationTokenSource _cancellationTokenSource = new global::System.Threading.CancellationTokenSource(); + + /// Wait for .NET debugger to attach + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Wait for .NET debugger to attach")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.EventGridManagementClient Client => Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.ClientAPI; + + /// + /// The credentials, account, tenant, and subscription used for communication with Azure + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The credentials, account, tenant, and subscription used for communication with Azure.")] + [global::System.Management.Automation.ValidateNotNull] + [global::System.Management.Automation.Alias("AzureRMContext", "AzureCredential")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Azure)] + public global::System.Management.Automation.PSObject DefaultProfile { get; set; } + + /// SendAsync Pipeline Steps to be appended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be appended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[] HttpPipelineAppend { get; set; } + + /// SendAsync Pipeline Steps to be prepended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be prepended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[] HttpPipelinePrepend { get; set; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.IEventGridIdentity _inputObject; + + /// Identity Parameter + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Identity Parameter", ValueFromPipeline = true)] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Path)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.IEventGridIdentity InputObject { get => this._inputObject; set => this._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.EventGrid.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Runtime.HttpPipeline Pipeline { get; set; } + + /// The URI for the proxy server to use + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "The URI for the proxy server to use")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Uri Proxy { get; set; } + + /// Credentials for a proxy server to use for the remote call + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Credentials for a proxy server to use for the remote call")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Management.Automation.PSCredential ProxyCredential { get; set; } + + /// Use the default credentials for the proxy + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Use the default credentials for the proxy")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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. + /// /// Determines if the rest of the onDefault method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnDefault(global::System.Net.Http.HttpResponseMessage responseMessage, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnOk will be called before the regular onOk has been processed, allowing customization of what happens + /// on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// 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() + { + var telemetryId = Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.GetTelemetryId.Invoke(); + if (telemetryId != "" && telemetryId != "internal") + { + __correlationId = telemetryId; + } + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + + } + + /// + /// Intializes a new instance of the cmdlet class. + /// + public GetAzEventGridDomainEventSubscriptionFullUrl_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.EventGrid.Runtime.IEventListener.Signal(string id, global::System.Threading.CancellationToken token, global::System.Func messageData) + { + using( NoSynchronizationContext ) + { + if (token.IsCancellationRequested) + { + return ; + } + + switch ( id ) + { + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Information: + { + var data = messageData(); + WriteInformation(data.Message, new string[]{}); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Error: + { + WriteError(new global::System.Management.Automation.ErrorRecord( new global::System.Exception(messageData().Message), string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null ) ); + return ; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.EventData ), InvocationInformation, this.ParameterSetName, __correlationId, __processRecordId, null ); + if (token.IsCancellationRequested) + { + return ; + } + WriteDebug($"{id}: {(messageData().Message ?? global::System.String.Empty)}"); + } + } + + /// Performs execution of the command. + protected override void ProcessRecord() + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + if (ShouldProcess($"Call remote 'DomainEventSubscriptionsGetFullUrl' operation")) + { + using( var asyncCommandRuntime = new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token); + } + } + } + catch (global::System.AggregateException aggregateException) + { + // unroll the inner exceptions to get the root cause + foreach( var innerException in aggregateException.Flatten().InnerExceptions ) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(innerException,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + } + catch (global::System.Exception exception) when ((exception as System.Management.Automation.PipelineStoppedException)== null || (exception as System.Management.Automation.PipelineStoppedException).InnerException != null) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(exception,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + finally + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletProcessRecordEnd).Wait(); + } + } + + /// Performs execution of the command, working asynchronously if required. + /// + /// A that will be complete when handling of the method is completed. + /// + protected async global::System.Threading.Tasks.Task ProcessRecordAsync() + { + using( NoSynchronizationContext ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + if (InputObject?.Id != null) + { + await this.Client.DomainEventSubscriptionsGetFullUrlViaIdentity(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.DomainName) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.DomainName"),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, InputObject) ); + } + if (null == InputObject.EventSubscriptionName) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.EventSubscriptionName"),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, InputObject) ); + } + await this.Client.DomainEventSubscriptionsGetFullUrl(InputObject.SubscriptionId ?? null, InputObject.ResourceGroupName ?? null, InputObject.DomainName ?? null, InputObject.EventSubscriptionName ?? null, onOk, onDefault, this, Pipeline); + } + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Cancel(); + base.StopProcessing(); + } + + /// + /// a delegate that is called when the remote service returns default (any response code not handled elsewhere). + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onDefault(global::System.Net.Http.HttpResponseMessage responseMessage) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnDefault(responseMessage, ref _returnNow); + // if overrideOnDefault has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // Error Response : default + // Unrecognized Response. Create an error record based on what we have. + var ex = new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.RestException(responseMessage); + WriteError( new global::System.Management.Automation.ErrorRecord(ex, ex.Code, global::System.Management.Automation.ErrorCategory.InvalidOperation, new { }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(ex.Message) { RecommendedAction = ex.Action } + }); + } + } + + /// a delegate that is called when the remote service returns 200 (OK). + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as 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.EventGrid.Models.Api20211015Preview.IEventSubscriptionFullUrl + WriteObject((await response).EndpointUrl); + } + } + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/cmdlets/GetAzEventGridDomainEventSubscription_Get.cs b/swaggerci/eventgrid/generated/cmdlets/GetAzEventGridDomainEventSubscription_Get.cs new file mode 100644 index 000000000000..574bfc2c6b18 --- /dev/null +++ b/swaggerci/eventgrid/generated/cmdlets/GetAzEventGridDomainEventSubscription_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.EventGrid.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Extensions; + using System; + + /// Get properties of an event subscription of a domain. + /// + /// [OpenAPI] Get=>GET:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.EventGrid/domains/{domainName}/eventSubscriptions/{eventSubscriptionName}" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsCommon.Get, @"AzEventGridDomainEventSubscription_Get")] + [global::System.Management.Automation.OutputType(typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscription))] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Description(@"Get properties of an event subscription of a domain.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Generated] + public partial class GetAzEventGridDomainEventSubscription_Get : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener + { + /// A unique id generatd for the this cmdlet when it is instantiated. + private string __correlationId = System.Guid.NewGuid().ToString(); + + /// A copy of the Invocation Info (necessary to allow asJob to clone this cmdlet) + private global::System.Management.Automation.InvocationInfo __invocationInfo; + + /// A unique id generatd for the this cmdlet when ProcessRecord() is called. + private string __processRecordId; + + /// + /// The for this operation. + /// + private global::System.Threading.CancellationTokenSource _cancellationTokenSource = new global::System.Threading.CancellationTokenSource(); + + /// Wait for .NET debugger to attach + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Wait for .NET debugger to attach")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.EventGridManagementClient Client => Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.ClientAPI; + + /// + /// The credentials, account, tenant, and subscription used for communication with Azure + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The credentials, account, tenant, and subscription used for communication with Azure.")] + [global::System.Management.Automation.ValidateNotNull] + [global::System.Management.Automation.Alias("AzureRMContext", "AzureCredential")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Azure)] + public global::System.Management.Automation.PSObject DefaultProfile { get; set; } + + /// Backing field for property. + private string _domainName; + + /// Name of the partner topic. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Name of the partner topic.")] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Name of the partner topic.", + SerializedName = @"domainName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Path)] + public string DomainName { get => this._domainName; set => this._domainName = value; } + + /// Backing field for property. + private string _eventSubscriptionName; + + /// + /// Name of the event subscription to be found. Event subscription names must be between 3 and 100 characters in length and + /// use alphanumeric letters only. + /// + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Name of the event subscription to be found. Event subscription names must be between 3 and 100 characters in length and use alphanumeric letters only.")] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Name of the event subscription to be found. Event subscription names must be between 3 and 100 characters in length and use alphanumeric letters only.", + SerializedName = @"eventSubscriptionName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Path)] + public string EventSubscriptionName { get => this._eventSubscriptionName; set => this._eventSubscriptionName = 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.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[] HttpPipelineAppend { get; set; } + + /// SendAsync Pipeline Steps to be prepended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be prepended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[] HttpPipelinePrepend { get; set; } + + /// Accessor for our copy of the InvocationInfo. + public global::System.Management.Automation.InvocationInfo InvocationInformation { get => __invocationInfo = __invocationInfo ?? this.MyInvocation ; set { __invocationInfo = value; } } + + /// + /// cancellation delegate. Stops the cmdlet when called. + /// + global::System.Action Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Runtime.HttpPipeline Pipeline { get; set; } + + /// The URI for the proxy server to use + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "The URI for the proxy server to use")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Uri Proxy { get; set; } + + /// Credentials for a proxy server to use for the remote call + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Credentials for a proxy server to use for the remote call")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Management.Automation.PSCredential ProxyCredential { get; set; } + + /// Use the default credentials for the proxy + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Use the default credentials for the proxy")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter ProxyUseDefaultCredentials { get; set; } + + /// Backing field for property. + private string _resourceGroupName; + + /// The name of the resource group within the user's subscription. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the resource group within the user's subscription.")] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the resource group within the user's subscription.", + SerializedName = @"resourceGroupName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Path)] + public string ResourceGroupName { get => this._resourceGroupName; set => this._resourceGroupName = value; } + + /// Backing field for property. + private string[] _subscriptionId; + + /// + /// Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription ID forms part of the + /// URI for every service call. + /// + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.")] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.", + SerializedName = @"subscriptionId", + PossibleTypes = new [] { typeof(string) })] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.DefaultInfo( + Name = @"", + Description =@"", + Script = @"(Get-AzContext).Subscription.Id")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Path)] + public string[] SubscriptionId { get => this._subscriptionId; set => this._subscriptionId = value; } + + /// + /// overrideOnDefault will be called before the regular onDefault has been processed, allowing customization of what + /// happens on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// /// Determines if the rest of the onDefault method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnDefault(global::System.Net.Http.HttpResponseMessage responseMessage, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnOk will be called before the regular onOk has been processed, allowing customization of what happens + /// on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// 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() + { + var telemetryId = Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.GetTelemetryId.Invoke(); + if (telemetryId != "" && telemetryId != "internal") + { + __correlationId = telemetryId; + } + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + + } + + /// + /// Intializes a new instance of the cmdlet class. + /// + public GetAzEventGridDomainEventSubscription_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.EventGrid.Runtime.IEventListener.Signal(string id, global::System.Threading.CancellationToken token, global::System.Func messageData) + { + using( NoSynchronizationContext ) + { + if (token.IsCancellationRequested) + { + return ; + } + + switch ( id ) + { + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Information: + { + var data = messageData(); + WriteInformation(data.Message, new string[]{}); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Error: + { + WriteError(new global::System.Management.Automation.ErrorRecord( new global::System.Exception(messageData().Message), string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null ) ); + return ; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.EventData ), InvocationInformation, this.ParameterSetName, __correlationId, __processRecordId, null ); + if (token.IsCancellationRequested) + { + return ; + } + WriteDebug($"{id}: {(messageData().Message ?? global::System.String.Empty)}"); + } + } + + /// Performs execution of the command. + protected override void ProcessRecord() + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + using( var asyncCommandRuntime = new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token); + } + } + catch (global::System.AggregateException aggregateException) + { + // unroll the inner exceptions to get the root cause + foreach( var innerException in aggregateException.Flatten().InnerExceptions ) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(innerException,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + } + catch (global::System.Exception exception) when ((exception as System.Management.Automation.PipelineStoppedException)== null || (exception as System.Management.Automation.PipelineStoppedException).InnerException != null) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(exception,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + finally + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletProcessRecordEnd).Wait(); + } + } + + /// Performs execution of the command, working asynchronously if required. + /// + /// A that will be complete when handling of the method is completed. + /// + protected async global::System.Threading.Tasks.Task ProcessRecordAsync() + { + using( NoSynchronizationContext ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + foreach( var SubscriptionId in this.SubscriptionId ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await this.Client.DomainEventSubscriptionsGet(SubscriptionId, ResourceGroupName, DomainName, EventSubscriptionName, onOk, onDefault, this, Pipeline); + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.UndeclaredResponseException urexception) + { + WriteError(new global::System.Management.Automation.ErrorRecord(urexception, urexception.StatusCode.ToString(), global::System.Management.Automation.ErrorCategory.InvalidOperation, new { SubscriptionId=SubscriptionId,ResourceGroupName=ResourceGroupName,DomainName=DomainName,EventSubscriptionName=EventSubscriptionName}) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(urexception.Message) { RecommendedAction = urexception.Action } + }); + } + finally + { + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Cancel(); + base.StopProcessing(); + } + + /// + /// a delegate that is called when the remote service returns default (any response code not handled elsewhere). + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onDefault(global::System.Net.Http.HttpResponseMessage responseMessage) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnDefault(responseMessage, ref _returnNow); + // if overrideOnDefault has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // Error Response : default + // Unrecognized Response. Create an error record based on what we have. + var ex = new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.RestException(responseMessage); + WriteError( new global::System.Management.Automation.ErrorRecord(ex, ex.Code, global::System.Management.Automation.ErrorCategory.InvalidOperation, new { SubscriptionId=SubscriptionId, ResourceGroupName=ResourceGroupName, DomainName=DomainName, EventSubscriptionName=EventSubscriptionName }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(ex.Message) { RecommendedAction = ex.Action } + }); + } + } + + /// a delegate that is called when the remote service returns 200 (OK). + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as 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.EventGrid.Models.Api20211015Preview.IEventSubscription + WriteObject((await response)); + } + } + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/cmdlets/GetAzEventGridDomainEventSubscription_GetViaIdentity.cs b/swaggerci/eventgrid/generated/cmdlets/GetAzEventGridDomainEventSubscription_GetViaIdentity.cs new file mode 100644 index 000000000000..cdc6f2083ec0 --- /dev/null +++ b/swaggerci/eventgrid/generated/cmdlets/GetAzEventGridDomainEventSubscription_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.EventGrid.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Extensions; + using System; + + /// Get properties of an event subscription of a domain. + /// + /// [OpenAPI] Get=>GET:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.EventGrid/domains/{domainName}/eventSubscriptions/{eventSubscriptionName}" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsCommon.Get, @"AzEventGridDomainEventSubscription_GetViaIdentity")] + [global::System.Management.Automation.OutputType(typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscription))] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Description(@"Get properties of an event subscription of a domain.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Generated] + public partial class GetAzEventGridDomainEventSubscription_GetViaIdentity : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener + { + /// A unique id generatd for the this cmdlet when it is instantiated. + private string __correlationId = System.Guid.NewGuid().ToString(); + + /// A copy of the Invocation Info (necessary to allow asJob to clone this cmdlet) + private global::System.Management.Automation.InvocationInfo __invocationInfo; + + /// A unique id generatd for the this cmdlet when ProcessRecord() is called. + private string __processRecordId; + + /// + /// The for this operation. + /// + private global::System.Threading.CancellationTokenSource _cancellationTokenSource = new global::System.Threading.CancellationTokenSource(); + + /// Wait for .NET debugger to attach + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Wait for .NET debugger to attach")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.EventGridManagementClient Client => Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.ClientAPI; + + /// + /// The credentials, account, tenant, and subscription used for communication with Azure + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The credentials, account, tenant, and subscription used for communication with Azure.")] + [global::System.Management.Automation.ValidateNotNull] + [global::System.Management.Automation.Alias("AzureRMContext", "AzureCredential")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Azure)] + public global::System.Management.Automation.PSObject DefaultProfile { get; set; } + + /// SendAsync Pipeline Steps to be appended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be appended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[] HttpPipelineAppend { get; set; } + + /// SendAsync Pipeline Steps to be prepended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be prepended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[] HttpPipelinePrepend { get; set; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.IEventGridIdentity _inputObject; + + /// Identity Parameter + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Identity Parameter", ValueFromPipeline = true)] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Path)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.IEventGridIdentity InputObject { get => this._inputObject; set => this._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.EventGrid.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Runtime.HttpPipeline Pipeline { get; set; } + + /// The URI for the proxy server to use + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "The URI for the proxy server to use")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Uri Proxy { get; set; } + + /// Credentials for a proxy server to use for the remote call + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Credentials for a proxy server to use for the remote call")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Management.Automation.PSCredential ProxyCredential { get; set; } + + /// Use the default credentials for the proxy + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Use the default credentials for the proxy")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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. + /// /// Determines if the rest of the onDefault method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnDefault(global::System.Net.Http.HttpResponseMessage responseMessage, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnOk will be called before the regular onOk has been processed, allowing customization of what happens + /// on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// 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() + { + var telemetryId = Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.GetTelemetryId.Invoke(); + if (telemetryId != "" && telemetryId != "internal") + { + __correlationId = telemetryId; + } + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + + } + + /// + /// Intializes a new instance of the cmdlet class. + /// + public GetAzEventGridDomainEventSubscription_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.EventGrid.Runtime.IEventListener.Signal(string id, global::System.Threading.CancellationToken token, global::System.Func messageData) + { + using( NoSynchronizationContext ) + { + if (token.IsCancellationRequested) + { + return ; + } + + switch ( id ) + { + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Information: + { + var data = messageData(); + WriteInformation(data.Message, new string[]{}); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Error: + { + WriteError(new global::System.Management.Automation.ErrorRecord( new global::System.Exception(messageData().Message), string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null ) ); + return ; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.EventData ), InvocationInformation, this.ParameterSetName, __correlationId, __processRecordId, null ); + if (token.IsCancellationRequested) + { + return ; + } + WriteDebug($"{id}: {(messageData().Message ?? global::System.String.Empty)}"); + } + } + + /// Performs execution of the command. + protected override void ProcessRecord() + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + using( var asyncCommandRuntime = new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token); + } + } + catch (global::System.AggregateException aggregateException) + { + // unroll the inner exceptions to get the root cause + foreach( var innerException in aggregateException.Flatten().InnerExceptions ) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(innerException,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + } + catch (global::System.Exception exception) when ((exception as System.Management.Automation.PipelineStoppedException)== null || (exception as System.Management.Automation.PipelineStoppedException).InnerException != null) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(exception,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + finally + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletProcessRecordEnd).Wait(); + } + } + + /// Performs execution of the command, working asynchronously if required. + /// + /// A that will be complete when handling of the method is completed. + /// + protected async global::System.Threading.Tasks.Task ProcessRecordAsync() + { + using( NoSynchronizationContext ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + if (InputObject?.Id != null) + { + await this.Client.DomainEventSubscriptionsGetViaIdentity(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.DomainName) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.DomainName"),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, InputObject) ); + } + if (null == InputObject.EventSubscriptionName) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.EventSubscriptionName"),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, InputObject) ); + } + await this.Client.DomainEventSubscriptionsGet(InputObject.SubscriptionId ?? null, InputObject.ResourceGroupName ?? null, InputObject.DomainName ?? null, InputObject.EventSubscriptionName ?? null, onOk, onDefault, this, Pipeline); + } + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Cancel(); + base.StopProcessing(); + } + + /// + /// a delegate that is called when the remote service returns default (any response code not handled elsewhere). + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onDefault(global::System.Net.Http.HttpResponseMessage responseMessage) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnDefault(responseMessage, ref _returnNow); + // if overrideOnDefault has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // Error Response : default + // Unrecognized Response. Create an error record based on what we have. + var ex = new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.RestException(responseMessage); + WriteError( new global::System.Management.Automation.ErrorRecord(ex, ex.Code, global::System.Management.Automation.ErrorCategory.InvalidOperation, new { }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(ex.Message) { RecommendedAction = ex.Action } + }); + } + } + + /// a delegate that is called when the remote service returns 200 (OK). + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as 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.EventGrid.Models.Api20211015Preview.IEventSubscription + WriteObject((await response)); + } + } + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/cmdlets/GetAzEventGridDomainEventSubscription_List.cs b/swaggerci/eventgrid/generated/cmdlets/GetAzEventGridDomainEventSubscription_List.cs new file mode 100644 index 000000000000..da061bf10e7a --- /dev/null +++ b/swaggerci/eventgrid/generated/cmdlets/GetAzEventGridDomainEventSubscription_List.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.EventGrid.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Extensions; + using System; + + /// List all event subscriptions that have been created for a specific topic. + /// + /// [OpenAPI] List=>GET:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.EventGrid/domains/{domainName}/eventSubscriptions" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsCommon.Get, @"AzEventGridDomainEventSubscription_List")] + [global::System.Management.Automation.OutputType(typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscription))] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Description(@"List all event subscriptions that have been created for a specific topic.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Generated] + public partial class GetAzEventGridDomainEventSubscription_List : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener + { + /// A unique id generatd for the this cmdlet when it is instantiated. + private string __correlationId = System.Guid.NewGuid().ToString(); + + /// A copy of the Invocation Info (necessary to allow asJob to clone this cmdlet) + private global::System.Management.Automation.InvocationInfo __invocationInfo; + + /// A unique id generatd for the this cmdlet when ProcessRecord() is called. + private string __processRecordId; + + /// + /// The for this operation. + /// + private global::System.Threading.CancellationTokenSource _cancellationTokenSource = new global::System.Threading.CancellationTokenSource(); + + /// Wait for .NET debugger to attach + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Wait for .NET debugger to attach")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.EventGridManagementClient Client => Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.ClientAPI; + + /// + /// The credentials, account, tenant, and subscription used for communication with Azure + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The credentials, account, tenant, and subscription used for communication with Azure.")] + [global::System.Management.Automation.ValidateNotNull] + [global::System.Management.Automation.Alias("AzureRMContext", "AzureCredential")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Azure)] + public global::System.Management.Automation.PSObject DefaultProfile { get; set; } + + /// Backing field for property. + private string _domainName; + + /// Name of the domain. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Name of the domain.")] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Name of the domain.", + SerializedName = @"domainName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Path)] + public string DomainName { get => this._domainName; set => this._domainName = value; } + + /// SendAsync Pipeline Steps to be appended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be appended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[] HttpPipelineAppend { get; set; } + + /// SendAsync Pipeline Steps to be prepended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be prepended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[] HttpPipelinePrepend { get; set; } + + /// Accessor for our copy of the InvocationInfo. + public global::System.Management.Automation.InvocationInfo InvocationInformation { get => __invocationInfo = __invocationInfo ?? this.MyInvocation ; set { __invocationInfo = value; } } + + /// + /// cancellation delegate. Stops the cmdlet when called. + /// + global::System.Action Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Runtime.HttpPipeline Pipeline { get; set; } + + /// The URI for the proxy server to use + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "The URI for the proxy server to use")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Uri Proxy { get; set; } + + /// Credentials for a proxy server to use for the remote call + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Credentials for a proxy server to use for the remote call")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Management.Automation.PSCredential ProxyCredential { get; set; } + + /// Use the default credentials for the proxy + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Use the default credentials for the proxy")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter ProxyUseDefaultCredentials { get; set; } + + /// Backing field for property. + private string _resourceGroupName; + + /// The name of the resource group within the user's subscription. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the resource group within the user's subscription.")] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the resource group within the user's subscription.", + SerializedName = @"resourceGroupName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Path)] + public string ResourceGroupName { get => this._resourceGroupName; set => this._resourceGroupName = value; } + + /// Backing field for property. + private string[] _subscriptionId; + + /// + /// Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription ID forms part of the + /// URI for every service call. + /// + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.")] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.", + SerializedName = @"subscriptionId", + PossibleTypes = new [] { typeof(string) })] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.DefaultInfo( + Name = @"", + Description =@"", + Script = @"(Get-AzContext).Subscription.Id")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Path)] + public string[] SubscriptionId { get => this._subscriptionId; set => this._subscriptionId = value; } + + /// + /// overrideOnDefault will be called before the regular onDefault has been processed, allowing customization of what + /// happens on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// /// Determines if the rest of the onDefault method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnDefault(global::System.Net.Http.HttpResponseMessage responseMessage, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnOk will be called before the regular onOk has been processed, allowing customization of what happens + /// on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// 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() + { + var telemetryId = Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.GetTelemetryId.Invoke(); + if (telemetryId != "" && telemetryId != "internal") + { + __correlationId = telemetryId; + } + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + + } + + /// + /// Intializes a new instance of the cmdlet class. + /// + public GetAzEventGridDomainEventSubscription_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.EventGrid.Runtime.IEventListener.Signal(string id, global::System.Threading.CancellationToken token, global::System.Func messageData) + { + using( NoSynchronizationContext ) + { + if (token.IsCancellationRequested) + { + return ; + } + + switch ( id ) + { + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Information: + { + var data = messageData(); + WriteInformation(data.Message, new string[]{}); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Error: + { + WriteError(new global::System.Management.Automation.ErrorRecord( new global::System.Exception(messageData().Message), string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null ) ); + return ; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.EventData ), InvocationInformation, this.ParameterSetName, __correlationId, __processRecordId, null ); + if (token.IsCancellationRequested) + { + return ; + } + WriteDebug($"{id}: {(messageData().Message ?? global::System.String.Empty)}"); + } + } + + /// Performs execution of the command. + protected override void ProcessRecord() + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + using( var asyncCommandRuntime = new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token); + } + } + catch (global::System.AggregateException aggregateException) + { + // unroll the inner exceptions to get the root cause + foreach( var innerException in aggregateException.Flatten().InnerExceptions ) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(innerException,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + } + catch (global::System.Exception exception) when ((exception as System.Management.Automation.PipelineStoppedException)== null || (exception as System.Management.Automation.PipelineStoppedException).InnerException != null) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(exception,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + finally + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletProcessRecordEnd).Wait(); + } + } + + /// Performs execution of the command, working asynchronously if required. + /// + /// A that will be complete when handling of the method is completed. + /// + protected async global::System.Threading.Tasks.Task ProcessRecordAsync() + { + using( NoSynchronizationContext ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + foreach( var SubscriptionId in this.SubscriptionId ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await this.Client.DomainEventSubscriptionsList(SubscriptionId, ResourceGroupName, DomainName, onOk, onDefault, this, Pipeline); + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.UndeclaredResponseException urexception) + { + WriteError(new global::System.Management.Automation.ErrorRecord(urexception, urexception.StatusCode.ToString(), global::System.Management.Automation.ErrorCategory.InvalidOperation, new { SubscriptionId=SubscriptionId,ResourceGroupName=ResourceGroupName,DomainName=DomainName}) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(urexception.Message) { RecommendedAction = urexception.Action } + }); + } + finally + { + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Cancel(); + base.StopProcessing(); + } + + /// + /// a delegate that is called when the remote service returns default (any response code not handled elsewhere). + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onDefault(global::System.Net.Http.HttpResponseMessage responseMessage) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnDefault(responseMessage, ref _returnNow); + // if overrideOnDefault has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // Error Response : default + // Unrecognized Response. Create an error record based on what we have. + var ex = new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.RestException(responseMessage); + WriteError( new global::System.Management.Automation.ErrorRecord(ex, ex.Code, global::System.Management.Automation.ErrorCategory.InvalidOperation, new { SubscriptionId=SubscriptionId, ResourceGroupName=ResourceGroupName, DomainName=DomainName }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(ex.Message) { RecommendedAction = ex.Action } + }); + } + } + + /// a delegate that is called when the remote service returns 200 (OK). + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnOk(responseMessage, response, ref _returnNow); + // if overrideOnOk has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // onOk - response for 200 / application/json + // response should be returning an array of some kind. +Pageable + // pageable / value / + WriteObject((await response).Value, true); + } + } + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/cmdlets/GetAzEventGridDomainSharedAccessKey_List.cs b/swaggerci/eventgrid/generated/cmdlets/GetAzEventGridDomainSharedAccessKey_List.cs new file mode 100644 index 000000000000..e699222d434e --- /dev/null +++ b/swaggerci/eventgrid/generated/cmdlets/GetAzEventGridDomainSharedAccessKey_List.cs @@ -0,0 +1,400 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Extensions; + using System; + + /// List the two keys used to publish to a domain. + /// + /// [OpenAPI] ListSharedAccessKeys=>POST:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.EventGrid/domains/{domainName}/listKeys" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsCommon.Get, @"AzEventGridDomainSharedAccessKey_List", SupportsShouldProcess = true)] + [global::System.Management.Automation.OutputType(typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDomainSharedAccessKeys))] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Description(@"List the two keys used to publish to a domain.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Generated] + public partial class GetAzEventGridDomainSharedAccessKey_List : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener + { + /// A unique id generatd for the this cmdlet when it is instantiated. + private string __correlationId = System.Guid.NewGuid().ToString(); + + /// A copy of the Invocation Info (necessary to allow asJob to clone this cmdlet) + private global::System.Management.Automation.InvocationInfo __invocationInfo; + + /// A unique id generatd for the this cmdlet when ProcessRecord() is called. + private string __processRecordId; + + /// + /// The for this operation. + /// + private global::System.Threading.CancellationTokenSource _cancellationTokenSource = new global::System.Threading.CancellationTokenSource(); + + /// Wait for .NET debugger to attach + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Wait for .NET debugger to attach")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.EventGridManagementClient Client => Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.ClientAPI; + + /// + /// The credentials, account, tenant, and subscription used for communication with Azure + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The credentials, account, tenant, and subscription used for communication with Azure.")] + [global::System.Management.Automation.ValidateNotNull] + [global::System.Management.Automation.Alias("AzureRMContext", "AzureCredential")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Azure)] + public global::System.Management.Automation.PSObject DefaultProfile { get; set; } + + /// Backing field for property. + private string _domainName; + + /// Name of the domain. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Name of the domain.")] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Name of the domain.", + SerializedName = @"domainName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Path)] + public string DomainName { get => this._domainName; set => this._domainName = value; } + + /// SendAsync Pipeline Steps to be appended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be appended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[] HttpPipelineAppend { get; set; } + + /// SendAsync Pipeline Steps to be prepended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be prepended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[] HttpPipelinePrepend { get; set; } + + /// Accessor for our copy of the InvocationInfo. + public global::System.Management.Automation.InvocationInfo InvocationInformation { get => __invocationInfo = __invocationInfo ?? this.MyInvocation ; set { __invocationInfo = value; } } + + /// + /// cancellation delegate. Stops the cmdlet when called. + /// + global::System.Action Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Runtime.HttpPipeline Pipeline { get; set; } + + /// The URI for the proxy server to use + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "The URI for the proxy server to use")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Uri Proxy { get; set; } + + /// Credentials for a proxy server to use for the remote call + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Credentials for a proxy server to use for the remote call")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Management.Automation.PSCredential ProxyCredential { get; set; } + + /// Use the default credentials for the proxy + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Use the default credentials for the proxy")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter ProxyUseDefaultCredentials { get; set; } + + /// Backing field for property. + private string _resourceGroupName; + + /// The name of the resource group within the user's subscription. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the resource group within the user's subscription.")] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the resource group within the user's subscription.", + SerializedName = @"resourceGroupName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Path)] + public string ResourceGroupName { get => this._resourceGroupName; set => this._resourceGroupName = value; } + + /// Backing field for property. + private string[] _subscriptionId; + + /// + /// Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription ID forms part of the + /// URI for every service call. + /// + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.")] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.", + SerializedName = @"subscriptionId", + PossibleTypes = new [] { typeof(string) })] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.DefaultInfo( + Name = @"", + Description =@"", + Script = @"(Get-AzContext).Subscription.Id")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Path)] + public string[] SubscriptionId { get => this._subscriptionId; set => this._subscriptionId = value; } + + /// + /// overrideOnDefault will be called before the regular onDefault has been processed, allowing customization of what + /// happens on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// /// Determines if the rest of the onDefault method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnDefault(global::System.Net.Http.HttpResponseMessage responseMessage, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnOk will be called before the regular onOk has been processed, allowing customization of what happens + /// on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// 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() + { + var telemetryId = Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.GetTelemetryId.Invoke(); + if (telemetryId != "" && telemetryId != "internal") + { + __correlationId = telemetryId; + } + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + + } + + /// + /// Intializes a new instance of the cmdlet class. + /// + public GetAzEventGridDomainSharedAccessKey_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.EventGrid.Runtime.IEventListener.Signal(string id, global::System.Threading.CancellationToken token, global::System.Func messageData) + { + using( NoSynchronizationContext ) + { + if (token.IsCancellationRequested) + { + return ; + } + + switch ( id ) + { + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Information: + { + var data = messageData(); + WriteInformation(data.Message, new string[]{}); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Error: + { + WriteError(new global::System.Management.Automation.ErrorRecord( new global::System.Exception(messageData().Message), string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null ) ); + return ; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.EventData ), InvocationInformation, this.ParameterSetName, __correlationId, __processRecordId, null ); + if (token.IsCancellationRequested) + { + return ; + } + WriteDebug($"{id}: {(messageData().Message ?? global::System.String.Empty)}"); + } + } + + /// Performs execution of the command. + protected override void ProcessRecord() + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + if (ShouldProcess($"Call remote 'DomainsListSharedAccessKeys' operation")) + { + using( var asyncCommandRuntime = new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token); + } + } + } + catch (global::System.AggregateException aggregateException) + { + // unroll the inner exceptions to get the root cause + foreach( var innerException in aggregateException.Flatten().InnerExceptions ) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(innerException,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + } + catch (global::System.Exception exception) when ((exception as System.Management.Automation.PipelineStoppedException)== null || (exception as System.Management.Automation.PipelineStoppedException).InnerException != null) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(exception,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + finally + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletProcessRecordEnd).Wait(); + } + } + + /// Performs execution of the command, working asynchronously if required. + /// + /// A that will be complete when handling of the method is completed. + /// + protected async global::System.Threading.Tasks.Task ProcessRecordAsync() + { + using( NoSynchronizationContext ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + foreach( var SubscriptionId in this.SubscriptionId ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await this.Client.DomainsListSharedAccessKeys(SubscriptionId, ResourceGroupName, DomainName, onOk, onDefault, this, Pipeline); + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.UndeclaredResponseException urexception) + { + WriteError(new global::System.Management.Automation.ErrorRecord(urexception, urexception.StatusCode.ToString(), global::System.Management.Automation.ErrorCategory.InvalidOperation, new { SubscriptionId=SubscriptionId,ResourceGroupName=ResourceGroupName,DomainName=DomainName}) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(urexception.Message) { RecommendedAction = urexception.Action } + }); + } + finally + { + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Cancel(); + base.StopProcessing(); + } + + /// + /// a delegate that is called when the remote service returns default (any response code not handled elsewhere). + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onDefault(global::System.Net.Http.HttpResponseMessage responseMessage) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnDefault(responseMessage, ref _returnNow); + // if overrideOnDefault has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // Error Response : default + // Unrecognized Response. Create an error record based on what we have. + var ex = new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.RestException(responseMessage); + WriteError( new global::System.Management.Automation.ErrorRecord(ex, ex.Code, global::System.Management.Automation.ErrorCategory.InvalidOperation, new { SubscriptionId=SubscriptionId, ResourceGroupName=ResourceGroupName, DomainName=DomainName }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(ex.Message) { RecommendedAction = ex.Action } + }); + } + } + + /// a delegate that is called when the remote service returns 200 (OK). + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as 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.EventGrid.Models.Api20211015Preview.IDomainSharedAccessKeys + WriteObject((await response)); + } + } + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/cmdlets/GetAzEventGridDomainTopicEventSubscriptionDeliveryAttribute_Get.cs b/swaggerci/eventgrid/generated/cmdlets/GetAzEventGridDomainTopicEventSubscriptionDeliveryAttribute_Get.cs new file mode 100644 index 000000000000..fd3898e1deac --- /dev/null +++ b/swaggerci/eventgrid/generated/cmdlets/GetAzEventGridDomainTopicEventSubscriptionDeliveryAttribute_Get.cs @@ -0,0 +1,430 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Extensions; + using System; + + /// Get all delivery attributes for an event subscription for domain topic. + /// + /// [OpenAPI] GetDeliveryAttributes=>POST:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.EventGrid/domains/{domainName}/topics/{topicName}/eventSubscriptions/{eventSubscriptionName}/getDeliveryAttributes" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsCommon.Get, @"AzEventGridDomainTopicEventSubscriptionDeliveryAttribute_Get", SupportsShouldProcess = true)] + [global::System.Management.Automation.OutputType(typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDeliveryAttributeMapping))] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Description(@"Get all delivery attributes for an event subscription for domain topic.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Generated] + public partial class GetAzEventGridDomainTopicEventSubscriptionDeliveryAttribute_Get : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener + { + /// A unique id generatd for the this cmdlet when it is instantiated. + private string __correlationId = System.Guid.NewGuid().ToString(); + + /// A copy of the Invocation Info (necessary to allow asJob to clone this cmdlet) + private global::System.Management.Automation.InvocationInfo __invocationInfo; + + /// A unique id generatd for the this cmdlet when ProcessRecord() is called. + private string __processRecordId; + + /// + /// The for this operation. + /// + private global::System.Threading.CancellationTokenSource _cancellationTokenSource = new global::System.Threading.CancellationTokenSource(); + + /// Wait for .NET debugger to attach + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Wait for .NET debugger to attach")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.EventGridManagementClient Client => Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.ClientAPI; + + /// + /// The credentials, account, tenant, and subscription used for communication with Azure + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The credentials, account, tenant, and subscription used for communication with Azure.")] + [global::System.Management.Automation.ValidateNotNull] + [global::System.Management.Automation.Alias("AzureRMContext", "AzureCredential")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Azure)] + public global::System.Management.Automation.PSObject DefaultProfile { get; set; } + + /// Backing field for property. + private string _domainName; + + /// Name of the top level domain. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Name of the top level domain.")] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Name of the top level domain.", + SerializedName = @"domainName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Path)] + public string DomainName { get => this._domainName; set => this._domainName = value; } + + /// Backing field for property. + private string _eventSubscriptionName; + + /// Name of the event subscription. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Name of the event subscription.")] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Name of the event subscription.", + SerializedName = @"eventSubscriptionName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Path)] + public string EventSubscriptionName { get => this._eventSubscriptionName; set => this._eventSubscriptionName = 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.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[] HttpPipelineAppend { get; set; } + + /// SendAsync Pipeline Steps to be prepended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be prepended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[] HttpPipelinePrepend { get; set; } + + /// Accessor for our copy of the InvocationInfo. + public global::System.Management.Automation.InvocationInfo InvocationInformation { get => __invocationInfo = __invocationInfo ?? this.MyInvocation ; set { __invocationInfo = value; } } + + /// + /// cancellation delegate. Stops the cmdlet when called. + /// + global::System.Action Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Runtime.HttpPipeline Pipeline { get; set; } + + /// The URI for the proxy server to use + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "The URI for the proxy server to use")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Uri Proxy { get; set; } + + /// Credentials for a proxy server to use for the remote call + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Credentials for a proxy server to use for the remote call")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Management.Automation.PSCredential ProxyCredential { get; set; } + + /// Use the default credentials for the proxy + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Use the default credentials for the proxy")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter ProxyUseDefaultCredentials { get; set; } + + /// Backing field for property. + private string _resourceGroupName; + + /// The name of the resource group within the user's subscription. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the resource group within the user's subscription.")] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the resource group within the user's subscription.", + SerializedName = @"resourceGroupName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Path)] + public string ResourceGroupName { get => this._resourceGroupName; set => this._resourceGroupName = value; } + + /// Backing field for property. + private string[] _subscriptionId; + + /// + /// Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription ID forms part of the + /// URI for every service call. + /// + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.")] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.", + SerializedName = @"subscriptionId", + PossibleTypes = new [] { typeof(string) })] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.DefaultInfo( + Name = @"", + Description =@"", + Script = @"(Get-AzContext).Subscription.Id")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Path)] + public string[] SubscriptionId { get => this._subscriptionId; set => this._subscriptionId = value; } + + /// Backing field for property. + private string _topicName; + + /// Name of the domain topic. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Name of the domain topic.")] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Name of the domain topic.", + SerializedName = @"topicName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Path)] + public string TopicName { get => this._topicName; set => this._topicName = value; } + + /// + /// overrideOnDefault will be called before the regular onDefault has been processed, allowing customization of what + /// happens on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// /// Determines if the rest of the onDefault method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnDefault(global::System.Net.Http.HttpResponseMessage responseMessage, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnOk will be called before the regular onOk has been processed, allowing customization of what happens + /// on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// 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() + { + var telemetryId = Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.GetTelemetryId.Invoke(); + if (telemetryId != "" && telemetryId != "internal") + { + __correlationId = telemetryId; + } + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + + } + + /// + /// Intializes a new instance of the cmdlet + /// class. + /// + public GetAzEventGridDomainTopicEventSubscriptionDeliveryAttribute_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.EventGrid.Runtime.IEventListener.Signal(string id, global::System.Threading.CancellationToken token, global::System.Func messageData) + { + using( NoSynchronizationContext ) + { + if (token.IsCancellationRequested) + { + return ; + } + + switch ( id ) + { + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Information: + { + var data = messageData(); + WriteInformation(data.Message, new string[]{}); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Error: + { + WriteError(new global::System.Management.Automation.ErrorRecord( new global::System.Exception(messageData().Message), string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null ) ); + return ; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.EventData ), InvocationInformation, this.ParameterSetName, __correlationId, __processRecordId, null ); + if (token.IsCancellationRequested) + { + return ; + } + WriteDebug($"{id}: {(messageData().Message ?? global::System.String.Empty)}"); + } + } + + /// Performs execution of the command. + protected override void ProcessRecord() + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + if (ShouldProcess($"Call remote 'DomainTopicEventSubscriptionsGetDeliveryAttributes' operation")) + { + using( var asyncCommandRuntime = new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token); + } + } + } + catch (global::System.AggregateException aggregateException) + { + // unroll the inner exceptions to get the root cause + foreach( var innerException in aggregateException.Flatten().InnerExceptions ) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(innerException,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + } + catch (global::System.Exception exception) when ((exception as System.Management.Automation.PipelineStoppedException)== null || (exception as System.Management.Automation.PipelineStoppedException).InnerException != null) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(exception,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + finally + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletProcessRecordEnd).Wait(); + } + } + + /// Performs execution of the command, working asynchronously if required. + /// + /// A that will be complete when handling of the method is completed. + /// + protected async global::System.Threading.Tasks.Task ProcessRecordAsync() + { + using( NoSynchronizationContext ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + foreach( var SubscriptionId in this.SubscriptionId ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await this.Client.DomainTopicEventSubscriptionsGetDeliveryAttributes(SubscriptionId, ResourceGroupName, DomainName, TopicName, EventSubscriptionName, onOk, onDefault, this, Pipeline); + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.UndeclaredResponseException urexception) + { + WriteError(new global::System.Management.Automation.ErrorRecord(urexception, urexception.StatusCode.ToString(), global::System.Management.Automation.ErrorCategory.InvalidOperation, new { SubscriptionId=SubscriptionId,ResourceGroupName=ResourceGroupName,DomainName=DomainName,TopicName=TopicName,EventSubscriptionName=EventSubscriptionName}) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(urexception.Message) { RecommendedAction = urexception.Action } + }); + } + finally + { + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Cancel(); + base.StopProcessing(); + } + + /// + /// a delegate that is called when the remote service returns default (any response code not handled elsewhere). + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onDefault(global::System.Net.Http.HttpResponseMessage responseMessage) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnDefault(responseMessage, ref _returnNow); + // if overrideOnDefault has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // Error Response : default + // Unrecognized Response. Create an error record based on what we have. + var ex = new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.RestException(responseMessage); + WriteError( new global::System.Management.Automation.ErrorRecord(ex, ex.Code, global::System.Management.Automation.ErrorCategory.InvalidOperation, new { SubscriptionId=SubscriptionId, ResourceGroupName=ResourceGroupName, DomainName=DomainName, TopicName=TopicName, EventSubscriptionName=EventSubscriptionName }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(ex.Message) { RecommendedAction = ex.Action } + }); + } + } + + /// a delegate that is called when the remote service returns 200 (OK). + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnOk(responseMessage, response, ref _returnNow); + // if overrideOnOk has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // onOk - response for 200 / application/json + // response should be returning an array of some kind. +Pageable + // nested-array / value / + WriteObject((await response).Value, true); + } + } + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/cmdlets/GetAzEventGridDomainTopicEventSubscriptionDeliveryAttribute_GetViaIdentity.cs b/swaggerci/eventgrid/generated/cmdlets/GetAzEventGridDomainTopicEventSubscriptionDeliveryAttribute_GetViaIdentity.cs new file mode 100644 index 000000000000..d4f81b11edea --- /dev/null +++ b/swaggerci/eventgrid/generated/cmdlets/GetAzEventGridDomainTopicEventSubscriptionDeliveryAttribute_GetViaIdentity.cs @@ -0,0 +1,386 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Extensions; + using System; + + /// Get all delivery attributes for an event subscription for domain topic. + /// + /// [OpenAPI] GetDeliveryAttributes=>POST:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.EventGrid/domains/{domainName}/topics/{topicName}/eventSubscriptions/{eventSubscriptionName}/getDeliveryAttributes" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsCommon.Get, @"AzEventGridDomainTopicEventSubscriptionDeliveryAttribute_GetViaIdentity", SupportsShouldProcess = true)] + [global::System.Management.Automation.OutputType(typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDeliveryAttributeMapping))] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Description(@"Get all delivery attributes for an event subscription for domain topic.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Generated] + public partial class GetAzEventGridDomainTopicEventSubscriptionDeliveryAttribute_GetViaIdentity : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener + { + /// A unique id generatd for the this cmdlet when it is instantiated. + private string __correlationId = System.Guid.NewGuid().ToString(); + + /// A copy of the Invocation Info (necessary to allow asJob to clone this cmdlet) + private global::System.Management.Automation.InvocationInfo __invocationInfo; + + /// A unique id generatd for the this cmdlet when ProcessRecord() is called. + private string __processRecordId; + + /// + /// The for this operation. + /// + private global::System.Threading.CancellationTokenSource _cancellationTokenSource = new global::System.Threading.CancellationTokenSource(); + + /// Wait for .NET debugger to attach + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Wait for .NET debugger to attach")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.EventGridManagementClient Client => Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.ClientAPI; + + /// + /// The credentials, account, tenant, and subscription used for communication with Azure + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The credentials, account, tenant, and subscription used for communication with Azure.")] + [global::System.Management.Automation.ValidateNotNull] + [global::System.Management.Automation.Alias("AzureRMContext", "AzureCredential")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Azure)] + public global::System.Management.Automation.PSObject DefaultProfile { get; set; } + + /// SendAsync Pipeline Steps to be appended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be appended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[] HttpPipelineAppend { get; set; } + + /// SendAsync Pipeline Steps to be prepended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be prepended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[] HttpPipelinePrepend { get; set; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.IEventGridIdentity _inputObject; + + /// Identity Parameter + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Identity Parameter", ValueFromPipeline = true)] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Path)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.IEventGridIdentity InputObject { get => this._inputObject; set => this._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.EventGrid.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Runtime.HttpPipeline Pipeline { get; set; } + + /// The URI for the proxy server to use + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "The URI for the proxy server to use")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Uri Proxy { get; set; } + + /// Credentials for a proxy server to use for the remote call + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Credentials for a proxy server to use for the remote call")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Management.Automation.PSCredential ProxyCredential { get; set; } + + /// Use the default credentials for the proxy + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Use the default credentials for the proxy")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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. + /// /// Determines if the rest of the onDefault method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnDefault(global::System.Net.Http.HttpResponseMessage responseMessage, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnOk will be called before the regular onOk has been processed, allowing customization of what happens + /// on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// 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() + { + var telemetryId = Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.GetTelemetryId.Invoke(); + if (telemetryId != "" && telemetryId != "internal") + { + __correlationId = telemetryId; + } + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + + } + + /// + /// Intializes a new instance of the cmdlet class. + /// + public GetAzEventGridDomainTopicEventSubscriptionDeliveryAttribute_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.EventGrid.Runtime.IEventListener.Signal(string id, global::System.Threading.CancellationToken token, global::System.Func messageData) + { + using( NoSynchronizationContext ) + { + if (token.IsCancellationRequested) + { + return ; + } + + switch ( id ) + { + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Information: + { + var data = messageData(); + WriteInformation(data.Message, new string[]{}); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Error: + { + WriteError(new global::System.Management.Automation.ErrorRecord( new global::System.Exception(messageData().Message), string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null ) ); + return ; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.EventData ), InvocationInformation, this.ParameterSetName, __correlationId, __processRecordId, null ); + if (token.IsCancellationRequested) + { + return ; + } + WriteDebug($"{id}: {(messageData().Message ?? global::System.String.Empty)}"); + } + } + + /// Performs execution of the command. + protected override void ProcessRecord() + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + if (ShouldProcess($"Call remote 'DomainTopicEventSubscriptionsGetDeliveryAttributes' operation")) + { + using( var asyncCommandRuntime = new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token); + } + } + } + catch (global::System.AggregateException aggregateException) + { + // unroll the inner exceptions to get the root cause + foreach( var innerException in aggregateException.Flatten().InnerExceptions ) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(innerException,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + } + catch (global::System.Exception exception) when ((exception as System.Management.Automation.PipelineStoppedException)== null || (exception as System.Management.Automation.PipelineStoppedException).InnerException != null) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(exception,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + finally + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletProcessRecordEnd).Wait(); + } + } + + /// Performs execution of the command, working asynchronously if required. + /// + /// A that will be complete when handling of the method is completed. + /// + protected async global::System.Threading.Tasks.Task ProcessRecordAsync() + { + using( NoSynchronizationContext ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + if (InputObject?.Id != null) + { + await this.Client.DomainTopicEventSubscriptionsGetDeliveryAttributesViaIdentity(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.DomainName) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.DomainName"),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, InputObject) ); + } + if (null == InputObject.TopicName) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.TopicName"),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, InputObject) ); + } + if (null == InputObject.EventSubscriptionName) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.EventSubscriptionName"),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, InputObject) ); + } + await this.Client.DomainTopicEventSubscriptionsGetDeliveryAttributes(InputObject.SubscriptionId ?? null, InputObject.ResourceGroupName ?? null, InputObject.DomainName ?? null, InputObject.TopicName ?? null, InputObject.EventSubscriptionName ?? null, onOk, onDefault, this, Pipeline); + } + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Cancel(); + base.StopProcessing(); + } + + /// + /// a delegate that is called when the remote service returns default (any response code not handled elsewhere). + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onDefault(global::System.Net.Http.HttpResponseMessage responseMessage) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnDefault(responseMessage, ref _returnNow); + // if overrideOnDefault has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // Error Response : default + // Unrecognized Response. Create an error record based on what we have. + var ex = new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.RestException(responseMessage); + WriteError( new global::System.Management.Automation.ErrorRecord(ex, ex.Code, global::System.Management.Automation.ErrorCategory.InvalidOperation, new { }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(ex.Message) { RecommendedAction = ex.Action } + }); + } + } + + /// a delegate that is called when the remote service returns 200 (OK). + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnOk(responseMessage, response, ref _returnNow); + // if overrideOnOk has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // onOk - response for 200 / application/json + // response should be returning an array of some kind. +Pageable + // nested-array / value / + WriteObject((await response).Value, true); + } + } + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/cmdlets/GetAzEventGridDomainTopicEventSubscriptionFullUrl_Get.cs b/swaggerci/eventgrid/generated/cmdlets/GetAzEventGridDomainTopicEventSubscriptionFullUrl_Get.cs new file mode 100644 index 000000000000..d0521eb7cd33 --- /dev/null +++ b/swaggerci/eventgrid/generated/cmdlets/GetAzEventGridDomainTopicEventSubscriptionFullUrl_Get.cs @@ -0,0 +1,428 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Extensions; + using System; + + /// Get the full endpoint URL for a nested event subscription for domain topic. + /// + /// [OpenAPI] GetFullUrl=>POST:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.EventGrid/domains/{domainName}/topics/{topicName}/eventSubscriptions/{eventSubscriptionName}/getFullUrl" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsCommon.Get, @"AzEventGridDomainTopicEventSubscriptionFullUrl_Get", SupportsShouldProcess = true)] + [global::System.Management.Automation.OutputType(typeof(string))] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Description(@"Get the full endpoint URL for a nested event subscription for domain topic.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Generated] + public partial class GetAzEventGridDomainTopicEventSubscriptionFullUrl_Get : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener + { + /// A unique id generatd for the this cmdlet when it is instantiated. + private string __correlationId = System.Guid.NewGuid().ToString(); + + /// A copy of the Invocation Info (necessary to allow asJob to clone this cmdlet) + private global::System.Management.Automation.InvocationInfo __invocationInfo; + + /// A unique id generatd for the this cmdlet when ProcessRecord() is called. + private string __processRecordId; + + /// + /// The for this operation. + /// + private global::System.Threading.CancellationTokenSource _cancellationTokenSource = new global::System.Threading.CancellationTokenSource(); + + /// Wait for .NET debugger to attach + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Wait for .NET debugger to attach")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.EventGridManagementClient Client => Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.ClientAPI; + + /// + /// The credentials, account, tenant, and subscription used for communication with Azure + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The credentials, account, tenant, and subscription used for communication with Azure.")] + [global::System.Management.Automation.ValidateNotNull] + [global::System.Management.Automation.Alias("AzureRMContext", "AzureCredential")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Azure)] + public global::System.Management.Automation.PSObject DefaultProfile { get; set; } + + /// Backing field for property. + private string _domainName; + + /// Name of the top level domain. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Name of the top level domain.")] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Name of the top level domain.", + SerializedName = @"domainName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Path)] + public string DomainName { get => this._domainName; set => this._domainName = value; } + + /// Backing field for property. + private string _eventSubscriptionName; + + /// Name of the event subscription. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Name of the event subscription.")] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Name of the event subscription.", + SerializedName = @"eventSubscriptionName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Path)] + public string EventSubscriptionName { get => this._eventSubscriptionName; set => this._eventSubscriptionName = 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.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[] HttpPipelineAppend { get; set; } + + /// SendAsync Pipeline Steps to be prepended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be prepended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[] HttpPipelinePrepend { get; set; } + + /// Accessor for our copy of the InvocationInfo. + public global::System.Management.Automation.InvocationInfo InvocationInformation { get => __invocationInfo = __invocationInfo ?? this.MyInvocation ; set { __invocationInfo = value; } } + + /// + /// cancellation delegate. Stops the cmdlet when called. + /// + global::System.Action Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Runtime.HttpPipeline Pipeline { get; set; } + + /// The URI for the proxy server to use + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "The URI for the proxy server to use")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Uri Proxy { get; set; } + + /// Credentials for a proxy server to use for the remote call + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Credentials for a proxy server to use for the remote call")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Management.Automation.PSCredential ProxyCredential { get; set; } + + /// Use the default credentials for the proxy + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Use the default credentials for the proxy")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter ProxyUseDefaultCredentials { get; set; } + + /// Backing field for property. + private string _resourceGroupName; + + /// The name of the resource group within the user's subscription. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the resource group within the user's subscription.")] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the resource group within the user's subscription.", + SerializedName = @"resourceGroupName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Path)] + public string ResourceGroupName { get => this._resourceGroupName; set => this._resourceGroupName = value; } + + /// Backing field for property. + private string[] _subscriptionId; + + /// + /// Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription ID forms part of the + /// URI for every service call. + /// + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.")] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.", + SerializedName = @"subscriptionId", + PossibleTypes = new [] { typeof(string) })] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.DefaultInfo( + Name = @"", + Description =@"", + Script = @"(Get-AzContext).Subscription.Id")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Path)] + public string[] SubscriptionId { get => this._subscriptionId; set => this._subscriptionId = value; } + + /// Backing field for property. + private string _topicName; + + /// Name of the domain topic. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Name of the domain topic.")] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Name of the domain topic.", + SerializedName = @"topicName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Path)] + public string TopicName { get => this._topicName; set => this._topicName = value; } + + /// + /// overrideOnDefault will be called before the regular onDefault has been processed, allowing customization of what + /// happens on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// /// Determines if the rest of the onDefault method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnDefault(global::System.Net.Http.HttpResponseMessage responseMessage, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnOk will be called before the regular onOk has been processed, allowing customization of what happens + /// on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// 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() + { + var telemetryId = Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.GetTelemetryId.Invoke(); + if (telemetryId != "" && telemetryId != "internal") + { + __correlationId = telemetryId; + } + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + + } + + /// + /// Intializes a new instance of the cmdlet class. + /// + public GetAzEventGridDomainTopicEventSubscriptionFullUrl_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.EventGrid.Runtime.IEventListener.Signal(string id, global::System.Threading.CancellationToken token, global::System.Func messageData) + { + using( NoSynchronizationContext ) + { + if (token.IsCancellationRequested) + { + return ; + } + + switch ( id ) + { + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Information: + { + var data = messageData(); + WriteInformation(data.Message, new string[]{}); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Error: + { + WriteError(new global::System.Management.Automation.ErrorRecord( new global::System.Exception(messageData().Message), string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null ) ); + return ; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.EventData ), InvocationInformation, this.ParameterSetName, __correlationId, __processRecordId, null ); + if (token.IsCancellationRequested) + { + return ; + } + WriteDebug($"{id}: {(messageData().Message ?? global::System.String.Empty)}"); + } + } + + /// Performs execution of the command. + protected override void ProcessRecord() + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + if (ShouldProcess($"Call remote 'DomainTopicEventSubscriptionsGetFullUrl' operation")) + { + using( var asyncCommandRuntime = new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token); + } + } + } + catch (global::System.AggregateException aggregateException) + { + // unroll the inner exceptions to get the root cause + foreach( var innerException in aggregateException.Flatten().InnerExceptions ) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(innerException,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + } + catch (global::System.Exception exception) when ((exception as System.Management.Automation.PipelineStoppedException)== null || (exception as System.Management.Automation.PipelineStoppedException).InnerException != null) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(exception,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + finally + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletProcessRecordEnd).Wait(); + } + } + + /// Performs execution of the command, working asynchronously if required. + /// + /// A that will be complete when handling of the method is completed. + /// + protected async global::System.Threading.Tasks.Task ProcessRecordAsync() + { + using( NoSynchronizationContext ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + foreach( var SubscriptionId in this.SubscriptionId ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await this.Client.DomainTopicEventSubscriptionsGetFullUrl(SubscriptionId, ResourceGroupName, DomainName, TopicName, EventSubscriptionName, onOk, onDefault, this, Pipeline); + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.UndeclaredResponseException urexception) + { + WriteError(new global::System.Management.Automation.ErrorRecord(urexception, urexception.StatusCode.ToString(), global::System.Management.Automation.ErrorCategory.InvalidOperation, new { SubscriptionId=SubscriptionId,ResourceGroupName=ResourceGroupName,DomainName=DomainName,TopicName=TopicName,EventSubscriptionName=EventSubscriptionName}) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(urexception.Message) { RecommendedAction = urexception.Action } + }); + } + finally + { + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Cancel(); + base.StopProcessing(); + } + + /// + /// a delegate that is called when the remote service returns default (any response code not handled elsewhere). + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onDefault(global::System.Net.Http.HttpResponseMessage responseMessage) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnDefault(responseMessage, ref _returnNow); + // if overrideOnDefault has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // Error Response : default + // Unrecognized Response. Create an error record based on what we have. + var ex = new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.RestException(responseMessage); + WriteError( new global::System.Management.Automation.ErrorRecord(ex, ex.Code, global::System.Management.Automation.ErrorCategory.InvalidOperation, new { SubscriptionId=SubscriptionId, ResourceGroupName=ResourceGroupName, DomainName=DomainName, TopicName=TopicName, EventSubscriptionName=EventSubscriptionName }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(ex.Message) { RecommendedAction = ex.Action } + }); + } + } + + /// a delegate that is called when the remote service returns 200 (OK). + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as 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.EventGrid.Models.Api20211015Preview.IEventSubscriptionFullUrl + WriteObject((await response).EndpointUrl); + } + } + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/cmdlets/GetAzEventGridDomainTopicEventSubscriptionFullUrl_GetViaIdentity.cs b/swaggerci/eventgrid/generated/cmdlets/GetAzEventGridDomainTopicEventSubscriptionFullUrl_GetViaIdentity.cs new file mode 100644 index 000000000000..1af160434a2c --- /dev/null +++ b/swaggerci/eventgrid/generated/cmdlets/GetAzEventGridDomainTopicEventSubscriptionFullUrl_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.EventGrid.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Extensions; + using System; + + /// Get the full endpoint URL for a nested event subscription for domain topic. + /// + /// [OpenAPI] GetFullUrl=>POST:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.EventGrid/domains/{domainName}/topics/{topicName}/eventSubscriptions/{eventSubscriptionName}/getFullUrl" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsCommon.Get, @"AzEventGridDomainTopicEventSubscriptionFullUrl_GetViaIdentity", SupportsShouldProcess = true)] + [global::System.Management.Automation.OutputType(typeof(string))] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Description(@"Get the full endpoint URL for a nested event subscription for domain topic.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Generated] + public partial class GetAzEventGridDomainTopicEventSubscriptionFullUrl_GetViaIdentity : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener + { + /// A unique id generatd for the this cmdlet when it is instantiated. + private string __correlationId = System.Guid.NewGuid().ToString(); + + /// A copy of the Invocation Info (necessary to allow asJob to clone this cmdlet) + private global::System.Management.Automation.InvocationInfo __invocationInfo; + + /// A unique id generatd for the this cmdlet when ProcessRecord() is called. + private string __processRecordId; + + /// + /// The for this operation. + /// + private global::System.Threading.CancellationTokenSource _cancellationTokenSource = new global::System.Threading.CancellationTokenSource(); + + /// Wait for .NET debugger to attach + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Wait for .NET debugger to attach")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.EventGridManagementClient Client => Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.ClientAPI; + + /// + /// The credentials, account, tenant, and subscription used for communication with Azure + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The credentials, account, tenant, and subscription used for communication with Azure.")] + [global::System.Management.Automation.ValidateNotNull] + [global::System.Management.Automation.Alias("AzureRMContext", "AzureCredential")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Azure)] + public global::System.Management.Automation.PSObject DefaultProfile { get; set; } + + /// SendAsync Pipeline Steps to be appended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be appended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[] HttpPipelineAppend { get; set; } + + /// SendAsync Pipeline Steps to be prepended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be prepended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[] HttpPipelinePrepend { get; set; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.IEventGridIdentity _inputObject; + + /// Identity Parameter + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Identity Parameter", ValueFromPipeline = true)] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Path)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.IEventGridIdentity InputObject { get => this._inputObject; set => this._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.EventGrid.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Runtime.HttpPipeline Pipeline { get; set; } + + /// The URI for the proxy server to use + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "The URI for the proxy server to use")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Uri Proxy { get; set; } + + /// Credentials for a proxy server to use for the remote call + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Credentials for a proxy server to use for the remote call")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Management.Automation.PSCredential ProxyCredential { get; set; } + + /// Use the default credentials for the proxy + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Use the default credentials for the proxy")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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. + /// /// Determines if the rest of the onDefault method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnDefault(global::System.Net.Http.HttpResponseMessage responseMessage, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnOk will be called before the regular onOk has been processed, allowing customization of what happens + /// on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// 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() + { + var telemetryId = Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.GetTelemetryId.Invoke(); + if (telemetryId != "" && telemetryId != "internal") + { + __correlationId = telemetryId; + } + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + + } + + /// + /// Intializes a new instance of the cmdlet + /// class. + /// + public GetAzEventGridDomainTopicEventSubscriptionFullUrl_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.EventGrid.Runtime.IEventListener.Signal(string id, global::System.Threading.CancellationToken token, global::System.Func messageData) + { + using( NoSynchronizationContext ) + { + if (token.IsCancellationRequested) + { + return ; + } + + switch ( id ) + { + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Information: + { + var data = messageData(); + WriteInformation(data.Message, new string[]{}); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Error: + { + WriteError(new global::System.Management.Automation.ErrorRecord( new global::System.Exception(messageData().Message), string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null ) ); + return ; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.EventData ), InvocationInformation, this.ParameterSetName, __correlationId, __processRecordId, null ); + if (token.IsCancellationRequested) + { + return ; + } + WriteDebug($"{id}: {(messageData().Message ?? global::System.String.Empty)}"); + } + } + + /// Performs execution of the command. + protected override void ProcessRecord() + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + if (ShouldProcess($"Call remote 'DomainTopicEventSubscriptionsGetFullUrl' operation")) + { + using( var asyncCommandRuntime = new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token); + } + } + } + catch (global::System.AggregateException aggregateException) + { + // unroll the inner exceptions to get the root cause + foreach( var innerException in aggregateException.Flatten().InnerExceptions ) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(innerException,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + } + catch (global::System.Exception exception) when ((exception as System.Management.Automation.PipelineStoppedException)== null || (exception as System.Management.Automation.PipelineStoppedException).InnerException != null) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(exception,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + finally + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletProcessRecordEnd).Wait(); + } + } + + /// Performs execution of the command, working asynchronously if required. + /// + /// A that will be complete when handling of the method is completed. + /// + protected async global::System.Threading.Tasks.Task ProcessRecordAsync() + { + using( NoSynchronizationContext ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + if (InputObject?.Id != null) + { + await this.Client.DomainTopicEventSubscriptionsGetFullUrlViaIdentity(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.DomainName) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.DomainName"),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, InputObject) ); + } + if (null == InputObject.TopicName) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.TopicName"),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, InputObject) ); + } + if (null == InputObject.EventSubscriptionName) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.EventSubscriptionName"),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, InputObject) ); + } + await this.Client.DomainTopicEventSubscriptionsGetFullUrl(InputObject.SubscriptionId ?? null, InputObject.ResourceGroupName ?? null, InputObject.DomainName ?? null, InputObject.TopicName ?? null, InputObject.EventSubscriptionName ?? null, onOk, onDefault, this, Pipeline); + } + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Cancel(); + base.StopProcessing(); + } + + /// + /// a delegate that is called when the remote service returns default (any response code not handled elsewhere). + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onDefault(global::System.Net.Http.HttpResponseMessage responseMessage) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnDefault(responseMessage, ref _returnNow); + // if overrideOnDefault has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // Error Response : default + // Unrecognized Response. Create an error record based on what we have. + var ex = new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.RestException(responseMessage); + WriteError( new global::System.Management.Automation.ErrorRecord(ex, ex.Code, global::System.Management.Automation.ErrorCategory.InvalidOperation, new { }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(ex.Message) { RecommendedAction = ex.Action } + }); + } + } + + /// a delegate that is called when the remote service returns 200 (OK). + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as 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.EventGrid.Models.Api20211015Preview.IEventSubscriptionFullUrl + WriteObject((await response).EndpointUrl); + } + } + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/cmdlets/GetAzEventGridDomainTopicEventSubscription_Get.cs b/swaggerci/eventgrid/generated/cmdlets/GetAzEventGridDomainTopicEventSubscription_Get.cs new file mode 100644 index 000000000000..613f5988bf6f --- /dev/null +++ b/swaggerci/eventgrid/generated/cmdlets/GetAzEventGridDomainTopicEventSubscription_Get.cs @@ -0,0 +1,425 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Extensions; + using System; + + /// Get properties of a nested event subscription for a domain topic. + /// + /// [OpenAPI] Get=>GET:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.EventGrid/domains/{domainName}/topics/{topicName}/eventSubscriptions/{eventSubscriptionName}" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsCommon.Get, @"AzEventGridDomainTopicEventSubscription_Get")] + [global::System.Management.Automation.OutputType(typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscription))] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Description(@"Get properties of a nested event subscription for a domain topic.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Generated] + public partial class GetAzEventGridDomainTopicEventSubscription_Get : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener + { + /// A unique id generatd for the this cmdlet when it is instantiated. + private string __correlationId = System.Guid.NewGuid().ToString(); + + /// A copy of the Invocation Info (necessary to allow asJob to clone this cmdlet) + private global::System.Management.Automation.InvocationInfo __invocationInfo; + + /// A unique id generatd for the this cmdlet when ProcessRecord() is called. + private string __processRecordId; + + /// + /// The for this operation. + /// + private global::System.Threading.CancellationTokenSource _cancellationTokenSource = new global::System.Threading.CancellationTokenSource(); + + /// Wait for .NET debugger to attach + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Wait for .NET debugger to attach")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.EventGridManagementClient Client => Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.ClientAPI; + + /// + /// The credentials, account, tenant, and subscription used for communication with Azure + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The credentials, account, tenant, and subscription used for communication with Azure.")] + [global::System.Management.Automation.ValidateNotNull] + [global::System.Management.Automation.Alias("AzureRMContext", "AzureCredential")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Azure)] + public global::System.Management.Automation.PSObject DefaultProfile { get; set; } + + /// Backing field for property. + private string _domainName; + + /// Name of the top level domain. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Name of the top level domain.")] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Name of the top level domain.", + SerializedName = @"domainName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Path)] + public string DomainName { get => this._domainName; set => this._domainName = value; } + + /// Backing field for property. + private string _eventSubscriptionName; + + /// Name of the event subscription. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Name of the event subscription.")] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Name of the event subscription.", + SerializedName = @"eventSubscriptionName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Path)] + public string EventSubscriptionName { get => this._eventSubscriptionName; set => this._eventSubscriptionName = 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.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[] HttpPipelineAppend { get; set; } + + /// SendAsync Pipeline Steps to be prepended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be prepended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[] HttpPipelinePrepend { get; set; } + + /// Accessor for our copy of the InvocationInfo. + public global::System.Management.Automation.InvocationInfo InvocationInformation { get => __invocationInfo = __invocationInfo ?? this.MyInvocation ; set { __invocationInfo = value; } } + + /// + /// cancellation delegate. Stops the cmdlet when called. + /// + global::System.Action Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Runtime.HttpPipeline Pipeline { get; set; } + + /// The URI for the proxy server to use + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "The URI for the proxy server to use")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Uri Proxy { get; set; } + + /// Credentials for a proxy server to use for the remote call + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Credentials for a proxy server to use for the remote call")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Management.Automation.PSCredential ProxyCredential { get; set; } + + /// Use the default credentials for the proxy + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Use the default credentials for the proxy")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter ProxyUseDefaultCredentials { get; set; } + + /// Backing field for property. + private string _resourceGroupName; + + /// The name of the resource group within the user's subscription. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the resource group within the user's subscription.")] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the resource group within the user's subscription.", + SerializedName = @"resourceGroupName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Path)] + public string ResourceGroupName { get => this._resourceGroupName; set => this._resourceGroupName = value; } + + /// Backing field for property. + private string[] _subscriptionId; + + /// + /// Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription ID forms part of the + /// URI for every service call. + /// + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.")] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.", + SerializedName = @"subscriptionId", + PossibleTypes = new [] { typeof(string) })] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.DefaultInfo( + Name = @"", + Description =@"", + Script = @"(Get-AzContext).Subscription.Id")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Path)] + public string[] SubscriptionId { get => this._subscriptionId; set => this._subscriptionId = value; } + + /// Backing field for property. + private string _topicName; + + /// Name of the domain topic. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Name of the domain topic.")] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Name of the domain topic.", + SerializedName = @"topicName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Path)] + public string TopicName { get => this._topicName; set => this._topicName = value; } + + /// + /// overrideOnDefault will be called before the regular onDefault has been processed, allowing customization of what + /// happens on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// /// Determines if the rest of the onDefault method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnDefault(global::System.Net.Http.HttpResponseMessage responseMessage, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnOk will be called before the regular onOk has been processed, allowing customization of what happens + /// on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// 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() + { + var telemetryId = Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.GetTelemetryId.Invoke(); + if (telemetryId != "" && telemetryId != "internal") + { + __correlationId = telemetryId; + } + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + + } + + /// + /// Intializes a new instance of the cmdlet class. + /// + public GetAzEventGridDomainTopicEventSubscription_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.EventGrid.Runtime.IEventListener.Signal(string id, global::System.Threading.CancellationToken token, global::System.Func messageData) + { + using( NoSynchronizationContext ) + { + if (token.IsCancellationRequested) + { + return ; + } + + switch ( id ) + { + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Information: + { + var data = messageData(); + WriteInformation(data.Message, new string[]{}); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Error: + { + WriteError(new global::System.Management.Automation.ErrorRecord( new global::System.Exception(messageData().Message), string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null ) ); + return ; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.EventData ), InvocationInformation, this.ParameterSetName, __correlationId, __processRecordId, null ); + if (token.IsCancellationRequested) + { + return ; + } + WriteDebug($"{id}: {(messageData().Message ?? global::System.String.Empty)}"); + } + } + + /// Performs execution of the command. + protected override void ProcessRecord() + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + using( var asyncCommandRuntime = new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token); + } + } + catch (global::System.AggregateException aggregateException) + { + // unroll the inner exceptions to get the root cause + foreach( var innerException in aggregateException.Flatten().InnerExceptions ) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(innerException,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + } + catch (global::System.Exception exception) when ((exception as System.Management.Automation.PipelineStoppedException)== null || (exception as System.Management.Automation.PipelineStoppedException).InnerException != null) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(exception,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + finally + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletProcessRecordEnd).Wait(); + } + } + + /// Performs execution of the command, working asynchronously if required. + /// + /// A that will be complete when handling of the method is completed. + /// + protected async global::System.Threading.Tasks.Task ProcessRecordAsync() + { + using( NoSynchronizationContext ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + foreach( var SubscriptionId in this.SubscriptionId ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await this.Client.DomainTopicEventSubscriptionsGet(SubscriptionId, ResourceGroupName, DomainName, TopicName, EventSubscriptionName, onOk, onDefault, this, Pipeline); + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.UndeclaredResponseException urexception) + { + WriteError(new global::System.Management.Automation.ErrorRecord(urexception, urexception.StatusCode.ToString(), global::System.Management.Automation.ErrorCategory.InvalidOperation, new { SubscriptionId=SubscriptionId,ResourceGroupName=ResourceGroupName,DomainName=DomainName,TopicName=TopicName,EventSubscriptionName=EventSubscriptionName}) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(urexception.Message) { RecommendedAction = urexception.Action } + }); + } + finally + { + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Cancel(); + base.StopProcessing(); + } + + /// + /// a delegate that is called when the remote service returns default (any response code not handled elsewhere). + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onDefault(global::System.Net.Http.HttpResponseMessage responseMessage) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnDefault(responseMessage, ref _returnNow); + // if overrideOnDefault has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // Error Response : default + // Unrecognized Response. Create an error record based on what we have. + var ex = new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.RestException(responseMessage); + WriteError( new global::System.Management.Automation.ErrorRecord(ex, ex.Code, global::System.Management.Automation.ErrorCategory.InvalidOperation, new { SubscriptionId=SubscriptionId, ResourceGroupName=ResourceGroupName, DomainName=DomainName, TopicName=TopicName, EventSubscriptionName=EventSubscriptionName }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(ex.Message) { RecommendedAction = ex.Action } + }); + } + } + + /// a delegate that is called when the remote service returns 200 (OK). + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as 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.EventGrid.Models.Api20211015Preview.IEventSubscription + WriteObject((await response)); + } + } + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/cmdlets/GetAzEventGridDomainTopicEventSubscription_GetViaIdentity.cs b/swaggerci/eventgrid/generated/cmdlets/GetAzEventGridDomainTopicEventSubscription_GetViaIdentity.cs new file mode 100644 index 000000000000..97babd0bc7ca --- /dev/null +++ b/swaggerci/eventgrid/generated/cmdlets/GetAzEventGridDomainTopicEventSubscription_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.EventGrid.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Extensions; + using System; + + /// Get properties of a nested event subscription for a domain topic. + /// + /// [OpenAPI] Get=>GET:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.EventGrid/domains/{domainName}/topics/{topicName}/eventSubscriptions/{eventSubscriptionName}" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsCommon.Get, @"AzEventGridDomainTopicEventSubscription_GetViaIdentity")] + [global::System.Management.Automation.OutputType(typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscription))] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Description(@"Get properties of a nested event subscription for a domain topic.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Generated] + public partial class GetAzEventGridDomainTopicEventSubscription_GetViaIdentity : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener + { + /// A unique id generatd for the this cmdlet when it is instantiated. + private string __correlationId = System.Guid.NewGuid().ToString(); + + /// A copy of the Invocation Info (necessary to allow asJob to clone this cmdlet) + private global::System.Management.Automation.InvocationInfo __invocationInfo; + + /// A unique id generatd for the this cmdlet when ProcessRecord() is called. + private string __processRecordId; + + /// + /// The for this operation. + /// + private global::System.Threading.CancellationTokenSource _cancellationTokenSource = new global::System.Threading.CancellationTokenSource(); + + /// Wait for .NET debugger to attach + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Wait for .NET debugger to attach")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.EventGridManagementClient Client => Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.ClientAPI; + + /// + /// The credentials, account, tenant, and subscription used for communication with Azure + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The credentials, account, tenant, and subscription used for communication with Azure.")] + [global::System.Management.Automation.ValidateNotNull] + [global::System.Management.Automation.Alias("AzureRMContext", "AzureCredential")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Azure)] + public global::System.Management.Automation.PSObject DefaultProfile { get; set; } + + /// SendAsync Pipeline Steps to be appended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be appended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[] HttpPipelineAppend { get; set; } + + /// SendAsync Pipeline Steps to be prepended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be prepended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[] HttpPipelinePrepend { get; set; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.IEventGridIdentity _inputObject; + + /// Identity Parameter + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Identity Parameter", ValueFromPipeline = true)] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Path)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.IEventGridIdentity InputObject { get => this._inputObject; set => this._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.EventGrid.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Runtime.HttpPipeline Pipeline { get; set; } + + /// The URI for the proxy server to use + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "The URI for the proxy server to use")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Uri Proxy { get; set; } + + /// Credentials for a proxy server to use for the remote call + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Credentials for a proxy server to use for the remote call")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Management.Automation.PSCredential ProxyCredential { get; set; } + + /// Use the default credentials for the proxy + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Use the default credentials for the proxy")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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. + /// /// Determines if the rest of the onDefault method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnDefault(global::System.Net.Http.HttpResponseMessage responseMessage, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnOk will be called before the regular onOk has been processed, allowing customization of what happens + /// on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// 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() + { + var telemetryId = Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.GetTelemetryId.Invoke(); + if (telemetryId != "" && telemetryId != "internal") + { + __correlationId = telemetryId; + } + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + + } + + /// + /// Intializes a new instance of the cmdlet class. + /// + public GetAzEventGridDomainTopicEventSubscription_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.EventGrid.Runtime.IEventListener.Signal(string id, global::System.Threading.CancellationToken token, global::System.Func messageData) + { + using( NoSynchronizationContext ) + { + if (token.IsCancellationRequested) + { + return ; + } + + switch ( id ) + { + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Information: + { + var data = messageData(); + WriteInformation(data.Message, new string[]{}); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Error: + { + WriteError(new global::System.Management.Automation.ErrorRecord( new global::System.Exception(messageData().Message), string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null ) ); + return ; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.EventData ), InvocationInformation, this.ParameterSetName, __correlationId, __processRecordId, null ); + if (token.IsCancellationRequested) + { + return ; + } + WriteDebug($"{id}: {(messageData().Message ?? global::System.String.Empty)}"); + } + } + + /// Performs execution of the command. + protected override void ProcessRecord() + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + using( var asyncCommandRuntime = new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token); + } + } + catch (global::System.AggregateException aggregateException) + { + // unroll the inner exceptions to get the root cause + foreach( var innerException in aggregateException.Flatten().InnerExceptions ) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(innerException,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + } + catch (global::System.Exception exception) when ((exception as System.Management.Automation.PipelineStoppedException)== null || (exception as System.Management.Automation.PipelineStoppedException).InnerException != null) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(exception,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + finally + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletProcessRecordEnd).Wait(); + } + } + + /// Performs execution of the command, working asynchronously if required. + /// + /// A that will be complete when handling of the method is completed. + /// + protected async global::System.Threading.Tasks.Task ProcessRecordAsync() + { + using( NoSynchronizationContext ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + if (InputObject?.Id != null) + { + await this.Client.DomainTopicEventSubscriptionsGetViaIdentity(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.DomainName) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.DomainName"),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, InputObject) ); + } + if (null == InputObject.TopicName) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.TopicName"),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, InputObject) ); + } + if (null == InputObject.EventSubscriptionName) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.EventSubscriptionName"),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, InputObject) ); + } + await this.Client.DomainTopicEventSubscriptionsGet(InputObject.SubscriptionId ?? null, InputObject.ResourceGroupName ?? null, InputObject.DomainName ?? null, InputObject.TopicName ?? null, InputObject.EventSubscriptionName ?? null, onOk, onDefault, this, Pipeline); + } + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Cancel(); + base.StopProcessing(); + } + + /// + /// a delegate that is called when the remote service returns default (any response code not handled elsewhere). + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onDefault(global::System.Net.Http.HttpResponseMessage responseMessage) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnDefault(responseMessage, ref _returnNow); + // if overrideOnDefault has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // Error Response : default + // Unrecognized Response. Create an error record based on what we have. + var ex = new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.RestException(responseMessage); + WriteError( new global::System.Management.Automation.ErrorRecord(ex, ex.Code, global::System.Management.Automation.ErrorCategory.InvalidOperation, new { }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(ex.Message) { RecommendedAction = ex.Action } + }); + } + } + + /// a delegate that is called when the remote service returns 200 (OK). + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as 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.EventGrid.Models.Api20211015Preview.IEventSubscription + WriteObject((await response)); + } + } + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/cmdlets/GetAzEventGridDomainTopicEventSubscription_List.cs b/swaggerci/eventgrid/generated/cmdlets/GetAzEventGridDomainTopicEventSubscription_List.cs new file mode 100644 index 000000000000..cd54a9df2e4d --- /dev/null +++ b/swaggerci/eventgrid/generated/cmdlets/GetAzEventGridDomainTopicEventSubscription_List.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.EventGrid.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Extensions; + using System; + + /// + /// List all event subscriptions that have been created for a specific domain topic. + /// + /// + /// [OpenAPI] List=>GET:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.EventGrid/domains/{domainName}/topics/{topicName}/eventSubscriptions" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsCommon.Get, @"AzEventGridDomainTopicEventSubscription_List")] + [global::System.Management.Automation.OutputType(typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscription))] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Description(@"List all event subscriptions that have been created for a specific domain topic.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Generated] + public partial class GetAzEventGridDomainTopicEventSubscription_List : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener + { + /// A unique id generatd for the this cmdlet when it is instantiated. + private string __correlationId = System.Guid.NewGuid().ToString(); + + /// A copy of the Invocation Info (necessary to allow asJob to clone this cmdlet) + private global::System.Management.Automation.InvocationInfo __invocationInfo; + + /// A unique id generatd for the this cmdlet when ProcessRecord() is called. + private string __processRecordId; + + /// + /// The for this operation. + /// + private global::System.Threading.CancellationTokenSource _cancellationTokenSource = new global::System.Threading.CancellationTokenSource(); + + /// Wait for .NET debugger to attach + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Wait for .NET debugger to attach")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.EventGridManagementClient Client => Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.ClientAPI; + + /// + /// The credentials, account, tenant, and subscription used for communication with Azure + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The credentials, account, tenant, and subscription used for communication with Azure.")] + [global::System.Management.Automation.ValidateNotNull] + [global::System.Management.Automation.Alias("AzureRMContext", "AzureCredential")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Azure)] + public global::System.Management.Automation.PSObject DefaultProfile { get; set; } + + /// Backing field for property. + private string _domainName; + + /// Name of the top level domain. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Name of the top level domain.")] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Name of the top level domain.", + SerializedName = @"domainName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Path)] + public string DomainName { get => this._domainName; set => this._domainName = value; } + + /// SendAsync Pipeline Steps to be appended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be appended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[] HttpPipelineAppend { get; set; } + + /// SendAsync Pipeline Steps to be prepended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be prepended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[] HttpPipelinePrepend { get; set; } + + /// Accessor for our copy of the InvocationInfo. + public global::System.Management.Automation.InvocationInfo InvocationInformation { get => __invocationInfo = __invocationInfo ?? this.MyInvocation ; set { __invocationInfo = value; } } + + /// + /// cancellation delegate. Stops the cmdlet when called. + /// + global::System.Action Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Runtime.HttpPipeline Pipeline { get; set; } + + /// The URI for the proxy server to use + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "The URI for the proxy server to use")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Uri Proxy { get; set; } + + /// Credentials for a proxy server to use for the remote call + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Credentials for a proxy server to use for the remote call")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Management.Automation.PSCredential ProxyCredential { get; set; } + + /// Use the default credentials for the proxy + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Use the default credentials for the proxy")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter ProxyUseDefaultCredentials { get; set; } + + /// Backing field for property. + private string _resourceGroupName; + + /// The name of the resource group within the user's subscription. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the resource group within the user's subscription.")] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the resource group within the user's subscription.", + SerializedName = @"resourceGroupName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Path)] + public string ResourceGroupName { get => this._resourceGroupName; set => this._resourceGroupName = value; } + + /// Backing field for property. + private string[] _subscriptionId; + + /// + /// Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription ID forms part of the + /// URI for every service call. + /// + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.")] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.", + SerializedName = @"subscriptionId", + PossibleTypes = new [] { typeof(string) })] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.DefaultInfo( + Name = @"", + Description =@"", + Script = @"(Get-AzContext).Subscription.Id")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Path)] + public string[] SubscriptionId { get => this._subscriptionId; set => this._subscriptionId = value; } + + /// Backing field for property. + private string _topicName; + + /// Name of the domain topic. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Name of the domain topic.")] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Name of the domain topic.", + SerializedName = @"topicName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Path)] + public string TopicName { get => this._topicName; set => this._topicName = value; } + + /// + /// overrideOnDefault will be called before the regular onDefault has been processed, allowing customization of what + /// happens on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// /// Determines if the rest of the onDefault method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnDefault(global::System.Net.Http.HttpResponseMessage responseMessage, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnOk will be called before the regular onOk has been processed, allowing customization of what happens + /// on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// 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() + { + var telemetryId = Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.GetTelemetryId.Invoke(); + if (telemetryId != "" && telemetryId != "internal") + { + __correlationId = telemetryId; + } + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + + } + + /// + /// Intializes a new instance of the cmdlet class. + /// + public GetAzEventGridDomainTopicEventSubscription_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.EventGrid.Runtime.IEventListener.Signal(string id, global::System.Threading.CancellationToken token, global::System.Func messageData) + { + using( NoSynchronizationContext ) + { + if (token.IsCancellationRequested) + { + return ; + } + + switch ( id ) + { + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Information: + { + var data = messageData(); + WriteInformation(data.Message, new string[]{}); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Error: + { + WriteError(new global::System.Management.Automation.ErrorRecord( new global::System.Exception(messageData().Message), string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null ) ); + return ; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.EventData ), InvocationInformation, this.ParameterSetName, __correlationId, __processRecordId, null ); + if (token.IsCancellationRequested) + { + return ; + } + WriteDebug($"{id}: {(messageData().Message ?? global::System.String.Empty)}"); + } + } + + /// Performs execution of the command. + protected override void ProcessRecord() + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + using( var asyncCommandRuntime = new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token); + } + } + catch (global::System.AggregateException aggregateException) + { + // unroll the inner exceptions to get the root cause + foreach( var innerException in aggregateException.Flatten().InnerExceptions ) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(innerException,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + } + catch (global::System.Exception exception) when ((exception as System.Management.Automation.PipelineStoppedException)== null || (exception as System.Management.Automation.PipelineStoppedException).InnerException != null) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(exception,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + finally + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletProcessRecordEnd).Wait(); + } + } + + /// Performs execution of the command, working asynchronously if required. + /// + /// A that will be complete when handling of the method is completed. + /// + protected async global::System.Threading.Tasks.Task ProcessRecordAsync() + { + using( NoSynchronizationContext ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + foreach( var SubscriptionId in this.SubscriptionId ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await this.Client.DomainTopicEventSubscriptionsList(SubscriptionId, ResourceGroupName, DomainName, TopicName, onOk, onDefault, this, Pipeline); + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.UndeclaredResponseException urexception) + { + WriteError(new global::System.Management.Automation.ErrorRecord(urexception, urexception.StatusCode.ToString(), global::System.Management.Automation.ErrorCategory.InvalidOperation, new { SubscriptionId=SubscriptionId,ResourceGroupName=ResourceGroupName,DomainName=DomainName,TopicName=TopicName}) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(urexception.Message) { RecommendedAction = urexception.Action } + }); + } + finally + { + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Cancel(); + base.StopProcessing(); + } + + /// + /// a delegate that is called when the remote service returns default (any response code not handled elsewhere). + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onDefault(global::System.Net.Http.HttpResponseMessage responseMessage) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnDefault(responseMessage, ref _returnNow); + // if overrideOnDefault has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // Error Response : default + // Unrecognized Response. Create an error record based on what we have. + var ex = new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.RestException(responseMessage); + WriteError( new global::System.Management.Automation.ErrorRecord(ex, ex.Code, global::System.Management.Automation.ErrorCategory.InvalidOperation, new { SubscriptionId=SubscriptionId, ResourceGroupName=ResourceGroupName, DomainName=DomainName, TopicName=TopicName }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(ex.Message) { RecommendedAction = ex.Action } + }); + } + } + + /// a delegate that is called when the remote service returns 200 (OK). + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnOk(responseMessage, response, ref _returnNow); + // if overrideOnOk has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // onOk - response for 200 / application/json + // response should be returning an array of some kind. +Pageable + // pageable / value / + WriteObject((await response).Value, true); + } + } + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/cmdlets/GetAzEventGridDomainTopic_Get.cs b/swaggerci/eventgrid/generated/cmdlets/GetAzEventGridDomainTopic_Get.cs new file mode 100644 index 000000000000..2889c00353e7 --- /dev/null +++ b/swaggerci/eventgrid/generated/cmdlets/GetAzEventGridDomainTopic_Get.cs @@ -0,0 +1,412 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Extensions; + using System; + + /// Get properties of a domain topic. + /// + /// [OpenAPI] Get=>GET:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.EventGrid/domains/{domainName}/topics/{domainTopicName}" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsCommon.Get, @"AzEventGridDomainTopic_Get")] + [global::System.Management.Automation.OutputType(typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDomainTopic))] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Description(@"Get properties of a domain topic.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Generated] + public partial class GetAzEventGridDomainTopic_Get : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener + { + /// A unique id generatd for the this cmdlet when it is instantiated. + private string __correlationId = System.Guid.NewGuid().ToString(); + + /// A copy of the Invocation Info (necessary to allow asJob to clone this cmdlet) + private global::System.Management.Automation.InvocationInfo __invocationInfo; + + /// A unique id generatd for the this cmdlet when ProcessRecord() is called. + private string __processRecordId; + + /// + /// The for this operation. + /// + private global::System.Threading.CancellationTokenSource _cancellationTokenSource = new global::System.Threading.CancellationTokenSource(); + + /// Wait for .NET debugger to attach + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Wait for .NET debugger to attach")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.EventGridManagementClient Client => Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.ClientAPI; + + /// + /// The credentials, account, tenant, and subscription used for communication with Azure + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The credentials, account, tenant, and subscription used for communication with Azure.")] + [global::System.Management.Automation.ValidateNotNull] + [global::System.Management.Automation.Alias("AzureRMContext", "AzureCredential")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Azure)] + public global::System.Management.Automation.PSObject DefaultProfile { get; set; } + + /// Backing field for property. + private string _domainName; + + /// Name of the domain. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Name of the domain.")] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Name of the domain.", + SerializedName = @"domainName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Path)] + public string DomainName { get => this._domainName; set => this._domainName = value; } + + /// SendAsync Pipeline Steps to be appended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be appended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[] HttpPipelineAppend { get; set; } + + /// SendAsync Pipeline Steps to be prepended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be prepended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[] HttpPipelinePrepend { get; set; } + + /// Accessor for our copy of the InvocationInfo. + public global::System.Management.Automation.InvocationInfo InvocationInformation { get => __invocationInfo = __invocationInfo ?? this.MyInvocation ; set { __invocationInfo = value; } } + + /// + /// cancellation delegate. Stops the cmdlet when called. + /// + global::System.Action Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener.Token => _cancellationTokenSource.Token; + + /// Backing field for property. + private string _name; + + /// Name of the topic. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Name of the topic.")] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Name of the topic.", + SerializedName = @"domainTopicName", + PossibleTypes = new [] { typeof(string) })] + [global::System.Management.Automation.Alias("DomainTopicName")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Runtime.HttpPipeline Pipeline { get; set; } + + /// The URI for the proxy server to use + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "The URI for the proxy server to use")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Uri Proxy { get; set; } + + /// Credentials for a proxy server to use for the remote call + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Credentials for a proxy server to use for the remote call")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Management.Automation.PSCredential ProxyCredential { get; set; } + + /// Use the default credentials for the proxy + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Use the default credentials for the proxy")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter ProxyUseDefaultCredentials { get; set; } + + /// Backing field for property. + private string _resourceGroupName; + + /// The name of the resource group within the user's subscription. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the resource group within the user's subscription.")] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the resource group within the user's subscription.", + SerializedName = @"resourceGroupName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Path)] + public string ResourceGroupName { get => this._resourceGroupName; set => this._resourceGroupName = value; } + + /// Backing field for property. + private string[] _subscriptionId; + + /// + /// Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription ID forms part of the + /// URI for every service call. + /// + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.")] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.", + SerializedName = @"subscriptionId", + PossibleTypes = new [] { typeof(string) })] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.DefaultInfo( + Name = @"", + Description =@"", + Script = @"(Get-AzContext).Subscription.Id")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Path)] + public string[] SubscriptionId { get => this._subscriptionId; set => this._subscriptionId = value; } + + /// + /// overrideOnDefault will be called before the regular onDefault has been processed, allowing customization of what + /// happens on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// /// Determines if the rest of the onDefault method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnDefault(global::System.Net.Http.HttpResponseMessage responseMessage, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnOk will be called before the regular onOk has been processed, allowing customization of what happens + /// on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// 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() + { + var telemetryId = Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.GetTelemetryId.Invoke(); + if (telemetryId != "" && telemetryId != "internal") + { + __correlationId = telemetryId; + } + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + + } + + /// + /// Intializes a new instance of the cmdlet class. + /// + public GetAzEventGridDomainTopic_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.EventGrid.Runtime.IEventListener.Signal(string id, global::System.Threading.CancellationToken token, global::System.Func messageData) + { + using( NoSynchronizationContext ) + { + if (token.IsCancellationRequested) + { + return ; + } + + switch ( id ) + { + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Information: + { + var data = messageData(); + WriteInformation(data.Message, new string[]{}); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Error: + { + WriteError(new global::System.Management.Automation.ErrorRecord( new global::System.Exception(messageData().Message), string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null ) ); + return ; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.EventData ), InvocationInformation, this.ParameterSetName, __correlationId, __processRecordId, null ); + if (token.IsCancellationRequested) + { + return ; + } + WriteDebug($"{id}: {(messageData().Message ?? global::System.String.Empty)}"); + } + } + + /// Performs execution of the command. + protected override void ProcessRecord() + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + using( var asyncCommandRuntime = new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token); + } + } + catch (global::System.AggregateException aggregateException) + { + // unroll the inner exceptions to get the root cause + foreach( var innerException in aggregateException.Flatten().InnerExceptions ) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(innerException,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + } + catch (global::System.Exception exception) when ((exception as System.Management.Automation.PipelineStoppedException)== null || (exception as System.Management.Automation.PipelineStoppedException).InnerException != null) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(exception,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + finally + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletProcessRecordEnd).Wait(); + } + } + + /// Performs execution of the command, working asynchronously if required. + /// + /// A that will be complete when handling of the method is completed. + /// + protected async global::System.Threading.Tasks.Task ProcessRecordAsync() + { + using( NoSynchronizationContext ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + foreach( var SubscriptionId in this.SubscriptionId ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await this.Client.DomainTopicsGet(SubscriptionId, ResourceGroupName, DomainName, Name, onOk, onDefault, this, Pipeline); + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.UndeclaredResponseException urexception) + { + WriteError(new global::System.Management.Automation.ErrorRecord(urexception, urexception.StatusCode.ToString(), global::System.Management.Automation.ErrorCategory.InvalidOperation, new { SubscriptionId=SubscriptionId,ResourceGroupName=ResourceGroupName,DomainName=DomainName,Name=Name}) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(urexception.Message) { RecommendedAction = urexception.Action } + }); + } + finally + { + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Cancel(); + base.StopProcessing(); + } + + /// + /// a delegate that is called when the remote service returns default (any response code not handled elsewhere). + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onDefault(global::System.Net.Http.HttpResponseMessage responseMessage) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnDefault(responseMessage, ref _returnNow); + // if overrideOnDefault has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // Error Response : default + // Unrecognized Response. Create an error record based on what we have. + var ex = new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.RestException(responseMessage); + WriteError( new global::System.Management.Automation.ErrorRecord(ex, ex.Code, global::System.Management.Automation.ErrorCategory.InvalidOperation, new { SubscriptionId=SubscriptionId, ResourceGroupName=ResourceGroupName, DomainName=DomainName, Name=Name }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(ex.Message) { RecommendedAction = ex.Action } + }); + } + } + + /// a delegate that is called when the remote service returns 200 (OK). + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as 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.EventGrid.Models.Api20211015Preview.IDomainTopic + WriteObject((await response)); + } + } + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/cmdlets/GetAzEventGridDomainTopic_GetViaIdentity.cs b/swaggerci/eventgrid/generated/cmdlets/GetAzEventGridDomainTopic_GetViaIdentity.cs new file mode 100644 index 000000000000..4ab7753aba2c --- /dev/null +++ b/swaggerci/eventgrid/generated/cmdlets/GetAzEventGridDomainTopic_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.EventGrid.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Extensions; + using System; + + /// Get properties of a domain topic. + /// + /// [OpenAPI] Get=>GET:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.EventGrid/domains/{domainName}/topics/{domainTopicName}" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsCommon.Get, @"AzEventGridDomainTopic_GetViaIdentity")] + [global::System.Management.Automation.OutputType(typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDomainTopic))] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Description(@"Get properties of a domain topic.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Generated] + public partial class GetAzEventGridDomainTopic_GetViaIdentity : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener + { + /// A unique id generatd for the this cmdlet when it is instantiated. + private string __correlationId = System.Guid.NewGuid().ToString(); + + /// A copy of the Invocation Info (necessary to allow asJob to clone this cmdlet) + private global::System.Management.Automation.InvocationInfo __invocationInfo; + + /// A unique id generatd for the this cmdlet when ProcessRecord() is called. + private string __processRecordId; + + /// + /// The for this operation. + /// + private global::System.Threading.CancellationTokenSource _cancellationTokenSource = new global::System.Threading.CancellationTokenSource(); + + /// Wait for .NET debugger to attach + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Wait for .NET debugger to attach")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.EventGridManagementClient Client => Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.ClientAPI; + + /// + /// The credentials, account, tenant, and subscription used for communication with Azure + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The credentials, account, tenant, and subscription used for communication with Azure.")] + [global::System.Management.Automation.ValidateNotNull] + [global::System.Management.Automation.Alias("AzureRMContext", "AzureCredential")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Azure)] + public global::System.Management.Automation.PSObject DefaultProfile { get; set; } + + /// SendAsync Pipeline Steps to be appended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be appended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[] HttpPipelineAppend { get; set; } + + /// SendAsync Pipeline Steps to be prepended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be prepended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[] HttpPipelinePrepend { get; set; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.IEventGridIdentity _inputObject; + + /// Identity Parameter + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Identity Parameter", ValueFromPipeline = true)] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Path)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.IEventGridIdentity InputObject { get => this._inputObject; set => this._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.EventGrid.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Runtime.HttpPipeline Pipeline { get; set; } + + /// The URI for the proxy server to use + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "The URI for the proxy server to use")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Uri Proxy { get; set; } + + /// Credentials for a proxy server to use for the remote call + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Credentials for a proxy server to use for the remote call")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Management.Automation.PSCredential ProxyCredential { get; set; } + + /// Use the default credentials for the proxy + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Use the default credentials for the proxy")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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. + /// /// Determines if the rest of the onDefault method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnDefault(global::System.Net.Http.HttpResponseMessage responseMessage, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnOk will be called before the regular onOk has been processed, allowing customization of what happens + /// on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// 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() + { + var telemetryId = Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.GetTelemetryId.Invoke(); + if (telemetryId != "" && telemetryId != "internal") + { + __correlationId = telemetryId; + } + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + + } + + /// + /// Intializes a new instance of the cmdlet class. + /// + public GetAzEventGridDomainTopic_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.EventGrid.Runtime.IEventListener.Signal(string id, global::System.Threading.CancellationToken token, global::System.Func messageData) + { + using( NoSynchronizationContext ) + { + if (token.IsCancellationRequested) + { + return ; + } + + switch ( id ) + { + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Information: + { + var data = messageData(); + WriteInformation(data.Message, new string[]{}); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Error: + { + WriteError(new global::System.Management.Automation.ErrorRecord( new global::System.Exception(messageData().Message), string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null ) ); + return ; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.EventData ), InvocationInformation, this.ParameterSetName, __correlationId, __processRecordId, null ); + if (token.IsCancellationRequested) + { + return ; + } + WriteDebug($"{id}: {(messageData().Message ?? global::System.String.Empty)}"); + } + } + + /// Performs execution of the command. + protected override void ProcessRecord() + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + using( var asyncCommandRuntime = new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token); + } + } + catch (global::System.AggregateException aggregateException) + { + // unroll the inner exceptions to get the root cause + foreach( var innerException in aggregateException.Flatten().InnerExceptions ) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(innerException,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + } + catch (global::System.Exception exception) when ((exception as System.Management.Automation.PipelineStoppedException)== null || (exception as System.Management.Automation.PipelineStoppedException).InnerException != null) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(exception,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + finally + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletProcessRecordEnd).Wait(); + } + } + + /// Performs execution of the command, working asynchronously if required. + /// + /// A that will be complete when handling of the method is completed. + /// + protected async global::System.Threading.Tasks.Task ProcessRecordAsync() + { + using( NoSynchronizationContext ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + if (InputObject?.Id != null) + { + await this.Client.DomainTopicsGetViaIdentity(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.DomainName) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.DomainName"),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, InputObject) ); + } + if (null == InputObject.DomainTopicName) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.DomainTopicName"),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, InputObject) ); + } + await this.Client.DomainTopicsGet(InputObject.SubscriptionId ?? null, InputObject.ResourceGroupName ?? null, InputObject.DomainName ?? null, InputObject.DomainTopicName ?? null, onOk, onDefault, this, Pipeline); + } + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Cancel(); + base.StopProcessing(); + } + + /// + /// a delegate that is called when the remote service returns default (any response code not handled elsewhere). + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onDefault(global::System.Net.Http.HttpResponseMessage responseMessage) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnDefault(responseMessage, ref _returnNow); + // if overrideOnDefault has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // Error Response : default + // Unrecognized Response. Create an error record based on what we have. + var ex = new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.RestException(responseMessage); + WriteError( new global::System.Management.Automation.ErrorRecord(ex, ex.Code, global::System.Management.Automation.ErrorCategory.InvalidOperation, new { }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(ex.Message) { RecommendedAction = ex.Action } + }); + } + } + + /// a delegate that is called when the remote service returns 200 (OK). + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as 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.EventGrid.Models.Api20211015Preview.IDomainTopic + WriteObject((await response)); + } + } + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/cmdlets/GetAzEventGridDomainTopic_List.cs b/swaggerci/eventgrid/generated/cmdlets/GetAzEventGridDomainTopic_List.cs new file mode 100644 index 000000000000..e7dc68ef10ee --- /dev/null +++ b/swaggerci/eventgrid/generated/cmdlets/GetAzEventGridDomainTopic_List.cs @@ -0,0 +1,456 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Extensions; + using System; + + /// List all the topics in a domain. + /// + /// [OpenAPI] ListByDomain=>GET:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.EventGrid/domains/{domainName}/topics" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsCommon.Get, @"AzEventGridDomainTopic_List")] + [global::System.Management.Automation.OutputType(typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDomainTopic))] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Description(@"List all the topics in a domain.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Generated] + public partial class GetAzEventGridDomainTopic_List : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener + { + /// A unique id generatd for the this cmdlet when it is instantiated. + private string __correlationId = System.Guid.NewGuid().ToString(); + + /// A copy of the Invocation Info (necessary to allow asJob to clone this cmdlet) + private global::System.Management.Automation.InvocationInfo __invocationInfo; + + /// A unique id generatd for the this cmdlet when ProcessRecord() is called. + private string __processRecordId; + + /// + /// The for this operation. + /// + private global::System.Threading.CancellationTokenSource _cancellationTokenSource = new global::System.Threading.CancellationTokenSource(); + + /// A flag to tell whether it is the first onOK call. + private bool _isFirst = true; + + /// Link to retrieve next page. + private string _nextLink; + + /// Wait for .NET debugger to attach + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Wait for .NET debugger to attach")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.EventGridManagementClient Client => Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.ClientAPI; + + /// + /// The credentials, account, tenant, and subscription used for communication with Azure + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The credentials, account, tenant, and subscription used for communication with Azure.")] + [global::System.Management.Automation.ValidateNotNull] + [global::System.Management.Automation.Alias("AzureRMContext", "AzureCredential")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Azure)] + public global::System.Management.Automation.PSObject DefaultProfile { get; set; } + + /// Backing field for property. + private string _domainName; + + /// Domain name. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Domain name.")] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Domain name.", + SerializedName = @"domainName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Path)] + public string DomainName { get => this._domainName; set => this._domainName = value; } + + /// Backing field for property. + private string _filter; + + /// + /// The query used to filter the search results using OData syntax. Filtering is permitted on the 'name' property only and + /// with limited number of OData operations. These operations are: the 'contains' function as well as the following logical + /// operations: not, and, or, eq (for equal), and ne (for not equal). No arithmetic operations are supported. The following + /// is a valid filter example: $filter=contains(namE, 'PATTERN') and name ne 'PATTERN-1'. The following is not a valid filter + /// example: $filter=location eq 'westus'. + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The query used to filter the search results using OData syntax. Filtering is permitted on the 'name' property only and with limited number of OData operations. These operations are: the 'contains' function as well as the following logical operations: not, and, or, eq (for equal), and ne (for not equal). No arithmetic operations are supported. The following is a valid filter example: $filter=contains(namE, 'PATTERN') and name ne 'PATTERN-1'. The following is not a valid filter example: $filter=location eq 'westus'.")] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The query used to filter the search results using OData syntax. Filtering is permitted on the 'name' property only and with limited number of OData operations. These operations are: the 'contains' function as well as the following logical operations: not, and, or, eq (for equal), and ne (for not equal). No arithmetic operations are supported. The following is a valid filter example: $filter=contains(namE, 'PATTERN') and name ne 'PATTERN-1'. The following is not a valid filter example: $filter=location eq 'westus'.", + SerializedName = @"$filter", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[] HttpPipelineAppend { get; set; } + + /// SendAsync Pipeline Steps to be prepended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be prepended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[] HttpPipelinePrepend { get; set; } + + /// Accessor for our copy of the InvocationInfo. + public global::System.Management.Automation.InvocationInfo InvocationInformation { get => __invocationInfo = __invocationInfo ?? this.MyInvocation ; set { __invocationInfo = value; } } + + /// + /// cancellation delegate. Stops the cmdlet when called. + /// + global::System.Action Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Runtime.HttpPipeline Pipeline { get; set; } + + /// The URI for the proxy server to use + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "The URI for the proxy server to use")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Uri Proxy { get; set; } + + /// Credentials for a proxy server to use for the remote call + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Credentials for a proxy server to use for the remote call")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Management.Automation.PSCredential ProxyCredential { get; set; } + + /// Use the default credentials for the proxy + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Use the default credentials for the proxy")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter ProxyUseDefaultCredentials { get; set; } + + /// Backing field for property. + private string _resourceGroupName; + + /// The name of the resource group within the user's subscription. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the resource group within the user's subscription.")] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the resource group within the user's subscription.", + SerializedName = @"resourceGroupName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Path)] + public string ResourceGroupName { get => this._resourceGroupName; set => this._resourceGroupName = value; } + + /// Backing field for property. + private string[] _subscriptionId; + + /// + /// Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription ID forms part of the + /// URI for every service call. + /// + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.")] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.", + SerializedName = @"subscriptionId", + PossibleTypes = new [] { typeof(string) })] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.DefaultInfo( + Name = @"", + Description =@"", + Script = @"(Get-AzContext).Subscription.Id")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Path)] + public string[] SubscriptionId { get => this._subscriptionId; set => this._subscriptionId = value; } + + /// Backing field for property. + private int _top; + + /// + /// The number of results to return per page for the list operation. Valid range for top parameter is 1 to 100. If not specified, + /// the default number of results to be returned is 20 items per page. + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The number of results to return per page for the list operation. Valid range for top parameter is 1 to 100. If not specified, the default number of results to be returned is 20 items per page.")] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The number of results to return per page for the list operation. Valid range for top parameter is 1 to 100. If not specified, the default number of results to be returned is 20 items per page.", + SerializedName = @"$top", + PossibleTypes = new [] { typeof(int) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Query)] + public int Top { get => this._top; set => this._top = value; } + + /// + /// overrideOnDefault will be called before the regular onDefault has been processed, allowing customization of what + /// happens on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// /// Determines if the rest of the onDefault method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnDefault(global::System.Net.Http.HttpResponseMessage responseMessage, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnOk will be called before the regular onOk has been processed, allowing customization of what happens + /// on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// 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() + { + var telemetryId = Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.GetTelemetryId.Invoke(); + if (telemetryId != "" && telemetryId != "internal") + { + __correlationId = telemetryId; + } + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + + } + + /// + /// Intializes a new instance of the cmdlet class. + /// + public GetAzEventGridDomainTopic_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.EventGrid.Runtime.IEventListener.Signal(string id, global::System.Threading.CancellationToken token, global::System.Func messageData) + { + using( NoSynchronizationContext ) + { + if (token.IsCancellationRequested) + { + return ; + } + + switch ( id ) + { + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Information: + { + var data = messageData(); + WriteInformation(data.Message, new string[]{}); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Error: + { + WriteError(new global::System.Management.Automation.ErrorRecord( new global::System.Exception(messageData().Message), string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null ) ); + return ; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.EventData ), InvocationInformation, this.ParameterSetName, __correlationId, __processRecordId, null ); + if (token.IsCancellationRequested) + { + return ; + } + WriteDebug($"{id}: {(messageData().Message ?? global::System.String.Empty)}"); + } + } + + /// Performs execution of the command. + protected override void ProcessRecord() + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + using( var asyncCommandRuntime = new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token); + } + } + catch (global::System.AggregateException aggregateException) + { + // unroll the inner exceptions to get the root cause + foreach( var innerException in aggregateException.Flatten().InnerExceptions ) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(innerException,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + } + catch (global::System.Exception exception) when ((exception as System.Management.Automation.PipelineStoppedException)== null || (exception as System.Management.Automation.PipelineStoppedException).InnerException != null) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(exception,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + finally + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletProcessRecordEnd).Wait(); + } + } + + /// Performs execution of the command, working asynchronously if required. + /// + /// A that will be complete when handling of the method is completed. + /// + protected async global::System.Threading.Tasks.Task ProcessRecordAsync() + { + using( NoSynchronizationContext ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + foreach( var SubscriptionId in this.SubscriptionId ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await this.Client.DomainTopicsListByDomain(SubscriptionId, ResourceGroupName, DomainName, this.InvocationInformation.BoundParameters.ContainsKey("Filter") ? Filter : null, this.InvocationInformation.BoundParameters.ContainsKey("Top") ? Top : default(int?), onOk, onDefault, this, Pipeline); + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.UndeclaredResponseException urexception) + { + WriteError(new global::System.Management.Automation.ErrorRecord(urexception, urexception.StatusCode.ToString(), global::System.Management.Automation.ErrorCategory.InvalidOperation, new { SubscriptionId=SubscriptionId,ResourceGroupName=ResourceGroupName,DomainName=DomainName,Filter=this.InvocationInformation.BoundParameters.ContainsKey("Filter") ? Filter : null,Top=this.InvocationInformation.BoundParameters.ContainsKey("Top") ? Top : default(int?)}) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(urexception.Message) { RecommendedAction = urexception.Action } + }); + } + finally + { + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Cancel(); + base.StopProcessing(); + } + + /// + /// a delegate that is called when the remote service returns default (any response code not handled elsewhere). + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onDefault(global::System.Net.Http.HttpResponseMessage responseMessage) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnDefault(responseMessage, ref _returnNow); + // if overrideOnDefault has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // Error Response : default + // Unrecognized Response. Create an error record based on what we have. + var ex = new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.RestException(responseMessage); + WriteError( new global::System.Management.Automation.ErrorRecord(ex, ex.Code, global::System.Management.Automation.ErrorCategory.InvalidOperation, new { SubscriptionId=SubscriptionId, ResourceGroupName=ResourceGroupName, DomainName=DomainName, Filter=this.InvocationInformation.BoundParameters.ContainsKey("Filter") ? Filter : null, Top=this.InvocationInformation.BoundParameters.ContainsKey("Top") ? Top : default(int?) }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(ex.Message) { RecommendedAction = ex.Action } + }); + } + } + + /// a delegate that is called when the remote service returns 200 (OK). + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnOk(responseMessage, response, ref _returnNow); + // if overrideOnOk has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // onOk - response for 200 / application/json + // response should be returning an array of some kind. +Pageable + // pageable / value / nextLink + var result = await response; + WriteObject(result.Value,true); + _nextLink = result.NextLink; + if (_isFirst) + { + _isFirst = false; + while (_nextLink != null) + { + if (responseMessage.RequestMessage is System.Net.Http.HttpRequestMessage requestMessage ) + { + requestMessage = requestMessage.Clone(new global::System.Uri( _nextLink ),Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Method.Get ); + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.FollowingNextLink); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await this.Client.DomainTopicsListByDomain_Call(requestMessage, onOk, onDefault, this, Pipeline); + } + } + } + } + } + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/cmdlets/GetAzEventGridDomain_Get.cs b/swaggerci/eventgrid/generated/cmdlets/GetAzEventGridDomain_Get.cs new file mode 100644 index 000000000000..c1dc39b76d73 --- /dev/null +++ b/swaggerci/eventgrid/generated/cmdlets/GetAzEventGridDomain_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.EventGrid.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Extensions; + using System; + + /// Get properties of a domain. + /// + /// [OpenAPI] Get=>GET:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.EventGrid/domains/{domainName}" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsCommon.Get, @"AzEventGridDomain_Get")] + [global::System.Management.Automation.OutputType(typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDomain))] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Description(@"Get properties of a domain.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Generated] + public partial class GetAzEventGridDomain_Get : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener + { + /// A unique id generatd for the this cmdlet when it is instantiated. + private string __correlationId = System.Guid.NewGuid().ToString(); + + /// A copy of the Invocation Info (necessary to allow asJob to clone this cmdlet) + private global::System.Management.Automation.InvocationInfo __invocationInfo; + + /// A unique id generatd for the this cmdlet when ProcessRecord() is called. + private string __processRecordId; + + /// + /// The for this operation. + /// + private global::System.Threading.CancellationTokenSource _cancellationTokenSource = new global::System.Threading.CancellationTokenSource(); + + /// Wait for .NET debugger to attach + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Wait for .NET debugger to attach")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.EventGridManagementClient Client => Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.ClientAPI; + + /// + /// The credentials, account, tenant, and subscription used for communication with Azure + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The credentials, account, tenant, and subscription used for communication with Azure.")] + [global::System.Management.Automation.ValidateNotNull] + [global::System.Management.Automation.Alias("AzureRMContext", "AzureCredential")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Azure)] + public global::System.Management.Automation.PSObject DefaultProfile { get; set; } + + /// SendAsync Pipeline Steps to be appended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be appended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[] HttpPipelineAppend { get; set; } + + /// SendAsync Pipeline Steps to be prepended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be prepended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[] HttpPipelinePrepend { get; set; } + + /// Accessor for our copy of the InvocationInfo. + public global::System.Management.Automation.InvocationInfo InvocationInformation { get => __invocationInfo = __invocationInfo ?? this.MyInvocation ; set { __invocationInfo = value; } } + + /// + /// cancellation delegate. Stops the cmdlet when called. + /// + global::System.Action Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener.Token => _cancellationTokenSource.Token; + + /// Backing field for property. + private string _name; + + /// Name of the domain. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Name of the domain.")] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Name of the domain.", + SerializedName = @"domainName", + PossibleTypes = new [] { typeof(string) })] + [global::System.Management.Automation.Alias("DomainName")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Runtime.HttpPipeline Pipeline { get; set; } + + /// The URI for the proxy server to use + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "The URI for the proxy server to use")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Uri Proxy { get; set; } + + /// Credentials for a proxy server to use for the remote call + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Credentials for a proxy server to use for the remote call")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Management.Automation.PSCredential ProxyCredential { get; set; } + + /// Use the default credentials for the proxy + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Use the default credentials for the proxy")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter ProxyUseDefaultCredentials { get; set; } + + /// Backing field for property. + private string _resourceGroupName; + + /// The name of the resource group within the user's subscription. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the resource group within the user's subscription.")] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the resource group within the user's subscription.", + SerializedName = @"resourceGroupName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Path)] + public string ResourceGroupName { get => this._resourceGroupName; set => this._resourceGroupName = value; } + + /// Backing field for property. + private string[] _subscriptionId; + + /// + /// Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription ID forms part of the + /// URI for every service call. + /// + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.")] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.", + SerializedName = @"subscriptionId", + PossibleTypes = new [] { typeof(string) })] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.DefaultInfo( + Name = @"", + Description =@"", + Script = @"(Get-AzContext).Subscription.Id")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Path)] + public string[] SubscriptionId { get => this._subscriptionId; set => this._subscriptionId = value; } + + /// + /// overrideOnDefault will be called before the regular onDefault has been processed, allowing customization of what + /// happens on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// /// Determines if the rest of the onDefault method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnDefault(global::System.Net.Http.HttpResponseMessage responseMessage, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnOk will be called before the regular onOk has been processed, allowing customization of what happens + /// on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// 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() + { + var telemetryId = Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.GetTelemetryId.Invoke(); + if (telemetryId != "" && telemetryId != "internal") + { + __correlationId = telemetryId; + } + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + + } + + /// + /// Intializes a new instance of the cmdlet class. + /// + public GetAzEventGridDomain_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.EventGrid.Runtime.IEventListener.Signal(string id, global::System.Threading.CancellationToken token, global::System.Func messageData) + { + using( NoSynchronizationContext ) + { + if (token.IsCancellationRequested) + { + return ; + } + + switch ( id ) + { + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Information: + { + var data = messageData(); + WriteInformation(data.Message, new string[]{}); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Error: + { + WriteError(new global::System.Management.Automation.ErrorRecord( new global::System.Exception(messageData().Message), string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null ) ); + return ; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.EventData ), InvocationInformation, this.ParameterSetName, __correlationId, __processRecordId, null ); + if (token.IsCancellationRequested) + { + return ; + } + WriteDebug($"{id}: {(messageData().Message ?? global::System.String.Empty)}"); + } + } + + /// Performs execution of the command. + protected override void ProcessRecord() + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + using( var asyncCommandRuntime = new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token); + } + } + catch (global::System.AggregateException aggregateException) + { + // unroll the inner exceptions to get the root cause + foreach( var innerException in aggregateException.Flatten().InnerExceptions ) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(innerException,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + } + catch (global::System.Exception exception) when ((exception as System.Management.Automation.PipelineStoppedException)== null || (exception as System.Management.Automation.PipelineStoppedException).InnerException != null) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(exception,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + finally + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletProcessRecordEnd).Wait(); + } + } + + /// Performs execution of the command, working asynchronously if required. + /// + /// A that will be complete when handling of the method is completed. + /// + protected async global::System.Threading.Tasks.Task ProcessRecordAsync() + { + using( NoSynchronizationContext ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + foreach( var SubscriptionId in this.SubscriptionId ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await this.Client.DomainsGet(SubscriptionId, ResourceGroupName, Name, onOk, onDefault, this, Pipeline); + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.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.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Cancel(); + base.StopProcessing(); + } + + /// + /// a delegate that is called when the remote service returns default (any response code not handled elsewhere). + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onDefault(global::System.Net.Http.HttpResponseMessage responseMessage) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnDefault(responseMessage, ref _returnNow); + // if overrideOnDefault has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // Error Response : default + // Unrecognized Response. Create an error record based on what we have. + var ex = new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.RestException(responseMessage); + 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 } + }); + } + } + + /// a delegate that is 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.EventGrid.Models.Api20211015Preview.IDomain + WriteObject((await response)); + } + } + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/cmdlets/GetAzEventGridDomain_GetViaIdentity.cs b/swaggerci/eventgrid/generated/cmdlets/GetAzEventGridDomain_GetViaIdentity.cs new file mode 100644 index 000000000000..726419eeb382 --- /dev/null +++ b/swaggerci/eventgrid/generated/cmdlets/GetAzEventGridDomain_GetViaIdentity.cs @@ -0,0 +1,373 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Extensions; + using System; + + /// Get properties of a domain. + /// + /// [OpenAPI] Get=>GET:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.EventGrid/domains/{domainName}" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsCommon.Get, @"AzEventGridDomain_GetViaIdentity")] + [global::System.Management.Automation.OutputType(typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDomain))] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Description(@"Get properties of a domain.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Generated] + public partial class GetAzEventGridDomain_GetViaIdentity : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener + { + /// A unique id generatd for the this cmdlet when it is instantiated. + private string __correlationId = System.Guid.NewGuid().ToString(); + + /// A copy of the Invocation Info (necessary to allow asJob to clone this cmdlet) + private global::System.Management.Automation.InvocationInfo __invocationInfo; + + /// A unique id generatd for the this cmdlet when ProcessRecord() is called. + private string __processRecordId; + + /// + /// The for this operation. + /// + private global::System.Threading.CancellationTokenSource _cancellationTokenSource = new global::System.Threading.CancellationTokenSource(); + + /// Wait for .NET debugger to attach + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Wait for .NET debugger to attach")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.EventGridManagementClient Client => Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.ClientAPI; + + /// + /// The credentials, account, tenant, and subscription used for communication with Azure + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The credentials, account, tenant, and subscription used for communication with Azure.")] + [global::System.Management.Automation.ValidateNotNull] + [global::System.Management.Automation.Alias("AzureRMContext", "AzureCredential")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Azure)] + public global::System.Management.Automation.PSObject DefaultProfile { get; set; } + + /// SendAsync Pipeline Steps to be appended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be appended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[] HttpPipelineAppend { get; set; } + + /// SendAsync Pipeline Steps to be prepended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be prepended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[] HttpPipelinePrepend { get; set; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.IEventGridIdentity _inputObject; + + /// Identity Parameter + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Identity Parameter", ValueFromPipeline = true)] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Path)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.IEventGridIdentity InputObject { get => this._inputObject; set => this._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.EventGrid.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Runtime.HttpPipeline Pipeline { get; set; } + + /// The URI for the proxy server to use + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "The URI for the proxy server to use")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Uri Proxy { get; set; } + + /// Credentials for a proxy server to use for the remote call + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Credentials for a proxy server to use for the remote call")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Management.Automation.PSCredential ProxyCredential { get; set; } + + /// Use the default credentials for the proxy + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Use the default credentials for the proxy")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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. + /// /// Determines if the rest of the onDefault method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnDefault(global::System.Net.Http.HttpResponseMessage responseMessage, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnOk will be called before the regular onOk has been processed, allowing customization of what happens + /// on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// 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() + { + var telemetryId = Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.GetTelemetryId.Invoke(); + if (telemetryId != "" && telemetryId != "internal") + { + __correlationId = telemetryId; + } + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + + } + + /// + /// Intializes a new instance of the cmdlet class. + /// + public GetAzEventGridDomain_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.EventGrid.Runtime.IEventListener.Signal(string id, global::System.Threading.CancellationToken token, global::System.Func messageData) + { + using( NoSynchronizationContext ) + { + if (token.IsCancellationRequested) + { + return ; + } + + switch ( id ) + { + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Information: + { + var data = messageData(); + WriteInformation(data.Message, new string[]{}); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Error: + { + WriteError(new global::System.Management.Automation.ErrorRecord( new global::System.Exception(messageData().Message), string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null ) ); + return ; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.EventData ), InvocationInformation, this.ParameterSetName, __correlationId, __processRecordId, null ); + if (token.IsCancellationRequested) + { + return ; + } + WriteDebug($"{id}: {(messageData().Message ?? global::System.String.Empty)}"); + } + } + + /// Performs execution of the command. + protected override void ProcessRecord() + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + using( var asyncCommandRuntime = new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token); + } + } + catch (global::System.AggregateException aggregateException) + { + // unroll the inner exceptions to get the root cause + foreach( var innerException in aggregateException.Flatten().InnerExceptions ) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(innerException,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + } + catch (global::System.Exception exception) when ((exception as System.Management.Automation.PipelineStoppedException)== null || (exception as System.Management.Automation.PipelineStoppedException).InnerException != null) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(exception,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + finally + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletProcessRecordEnd).Wait(); + } + } + + /// Performs execution of the command, working asynchronously if required. + /// + /// A that will be complete when handling of the method is completed. + /// + protected async global::System.Threading.Tasks.Task ProcessRecordAsync() + { + using( NoSynchronizationContext ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + if (InputObject?.Id != null) + { + await this.Client.DomainsGetViaIdentity(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.DomainName) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.DomainName"),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, InputObject) ); + } + await this.Client.DomainsGet(InputObject.SubscriptionId ?? null, InputObject.ResourceGroupName ?? null, InputObject.DomainName ?? null, onOk, onDefault, this, Pipeline); + } + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Cancel(); + base.StopProcessing(); + } + + /// + /// a delegate that is called when the remote service returns default (any response code not handled elsewhere). + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onDefault(global::System.Net.Http.HttpResponseMessage responseMessage) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnDefault(responseMessage, ref _returnNow); + // if overrideOnDefault has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // Error Response : default + // Unrecognized Response. Create an error record based on what we have. + var ex = new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.RestException(responseMessage); + WriteError( new global::System.Management.Automation.ErrorRecord(ex, ex.Code, global::System.Management.Automation.ErrorCategory.InvalidOperation, new { }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(ex.Message) { RecommendedAction = ex.Action } + }); + } + } + + /// a delegate that is called when the remote service returns 200 (OK). + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as 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.EventGrid.Models.Api20211015Preview.IDomain + WriteObject((await response)); + } + } + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/cmdlets/GetAzEventGridDomain_List.cs b/swaggerci/eventgrid/generated/cmdlets/GetAzEventGridDomain_List.cs new file mode 100644 index 000000000000..ac87a3b95bce --- /dev/null +++ b/swaggerci/eventgrid/generated/cmdlets/GetAzEventGridDomain_List.cs @@ -0,0 +1,428 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Extensions; + using System; + + /// List all the domains under an Azure subscription. + /// + /// [OpenAPI] ListBySubscription=>GET:"/subscriptions/{subscriptionId}/providers/Microsoft.EventGrid/domains" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsCommon.Get, @"AzEventGridDomain_List")] + [global::System.Management.Automation.OutputType(typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDomain))] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Description(@"List all the domains under an Azure subscription.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Generated] + public partial class GetAzEventGridDomain_List : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener + { + /// A unique id generatd for the this cmdlet when it is instantiated. + private string __correlationId = System.Guid.NewGuid().ToString(); + + /// A copy of the Invocation Info (necessary to allow asJob to clone this cmdlet) + private global::System.Management.Automation.InvocationInfo __invocationInfo; + + /// A unique id generatd for the this cmdlet when ProcessRecord() is called. + private string __processRecordId; + + /// + /// The for this operation. + /// + private global::System.Threading.CancellationTokenSource _cancellationTokenSource = new global::System.Threading.CancellationTokenSource(); + + /// A flag to tell whether it is the first onOK call. + private bool _isFirst = true; + + /// Link to retrieve next page. + private string _nextLink; + + /// Wait for .NET debugger to attach + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Wait for .NET debugger to attach")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.EventGridManagementClient Client => Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.ClientAPI; + + /// + /// The credentials, account, tenant, and subscription used for communication with Azure + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The credentials, account, tenant, and subscription used for communication with Azure.")] + [global::System.Management.Automation.ValidateNotNull] + [global::System.Management.Automation.Alias("AzureRMContext", "AzureCredential")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Azure)] + public global::System.Management.Automation.PSObject DefaultProfile { get; set; } + + /// Backing field for property. + private string _filter; + + /// + /// The query used to filter the search results using OData syntax. Filtering is permitted on the 'name' property only and + /// with limited number of OData operations. These operations are: the 'contains' function as well as the following logical + /// operations: not, and, or, eq (for equal), and ne (for not equal). No arithmetic operations are supported. The following + /// is a valid filter example: $filter=contains(namE, 'PATTERN') and name ne 'PATTERN-1'. The following is not a valid filter + /// example: $filter=location eq 'westus'. + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The query used to filter the search results using OData syntax. Filtering is permitted on the 'name' property only and with limited number of OData operations. These operations are: the 'contains' function as well as the following logical operations: not, and, or, eq (for equal), and ne (for not equal). No arithmetic operations are supported. The following is a valid filter example: $filter=contains(namE, 'PATTERN') and name ne 'PATTERN-1'. The following is not a valid filter example: $filter=location eq 'westus'.")] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The query used to filter the search results using OData syntax. Filtering is permitted on the 'name' property only and with limited number of OData operations. These operations are: the 'contains' function as well as the following logical operations: not, and, or, eq (for equal), and ne (for not equal). No arithmetic operations are supported. The following is a valid filter example: $filter=contains(namE, 'PATTERN') and name ne 'PATTERN-1'. The following is not a valid filter example: $filter=location eq 'westus'.", + SerializedName = @"$filter", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[] HttpPipelineAppend { get; set; } + + /// SendAsync Pipeline Steps to be prepended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be prepended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[] HttpPipelinePrepend { get; set; } + + /// Accessor for our copy of the InvocationInfo. + public global::System.Management.Automation.InvocationInfo InvocationInformation { get => __invocationInfo = __invocationInfo ?? this.MyInvocation ; set { __invocationInfo = value; } } + + /// + /// cancellation delegate. Stops the cmdlet when called. + /// + global::System.Action Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Runtime.HttpPipeline Pipeline { get; set; } + + /// The URI for the proxy server to use + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "The URI for the proxy server to use")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Uri Proxy { get; set; } + + /// Credentials for a proxy server to use for the remote call + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Credentials for a proxy server to use for the remote call")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Management.Automation.PSCredential ProxyCredential { get; set; } + + /// Use the default credentials for the proxy + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Use the default credentials for the proxy")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter ProxyUseDefaultCredentials { get; set; } + + /// Backing field for property. + private string[] _subscriptionId; + + /// + /// Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription ID forms part of the + /// URI for every service call. + /// + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.")] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.", + SerializedName = @"subscriptionId", + PossibleTypes = new [] { typeof(string) })] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.DefaultInfo( + Name = @"", + Description =@"", + Script = @"(Get-AzContext).Subscription.Id")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Path)] + public string[] SubscriptionId { get => this._subscriptionId; set => this._subscriptionId = value; } + + /// Backing field for property. + private int _top; + + /// + /// The number of results to return per page for the list operation. Valid range for top parameter is 1 to 100. If not specified, + /// the default number of results to be returned is 20 items per page. + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The number of results to return per page for the list operation. Valid range for top parameter is 1 to 100. If not specified, the default number of results to be returned is 20 items per page.")] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The number of results to return per page for the list operation. Valid range for top parameter is 1 to 100. If not specified, the default number of results to be returned is 20 items per page.", + SerializedName = @"$top", + PossibleTypes = new [] { typeof(int) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Query)] + public int Top { get => this._top; set => this._top = value; } + + /// + /// overrideOnDefault will be called before the regular onDefault has been processed, allowing customization of what + /// happens on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// /// Determines if the rest of the onDefault method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnDefault(global::System.Net.Http.HttpResponseMessage responseMessage, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnOk will be called before the regular onOk has been processed, allowing customization of what happens + /// on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// 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() + { + var telemetryId = Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.GetTelemetryId.Invoke(); + if (telemetryId != "" && telemetryId != "internal") + { + __correlationId = telemetryId; + } + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + + } + + /// + /// Intializes a new instance of the cmdlet class. + /// + public GetAzEventGridDomain_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.EventGrid.Runtime.IEventListener.Signal(string id, global::System.Threading.CancellationToken token, global::System.Func messageData) + { + using( NoSynchronizationContext ) + { + if (token.IsCancellationRequested) + { + return ; + } + + switch ( id ) + { + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Information: + { + var data = messageData(); + WriteInformation(data.Message, new string[]{}); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Error: + { + WriteError(new global::System.Management.Automation.ErrorRecord( new global::System.Exception(messageData().Message), string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null ) ); + return ; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.EventData ), InvocationInformation, this.ParameterSetName, __correlationId, __processRecordId, null ); + if (token.IsCancellationRequested) + { + return ; + } + WriteDebug($"{id}: {(messageData().Message ?? global::System.String.Empty)}"); + } + } + + /// Performs execution of the command. + protected override void ProcessRecord() + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + using( var asyncCommandRuntime = new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token); + } + } + catch (global::System.AggregateException aggregateException) + { + // unroll the inner exceptions to get the root cause + foreach( var innerException in aggregateException.Flatten().InnerExceptions ) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(innerException,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + } + catch (global::System.Exception exception) when ((exception as System.Management.Automation.PipelineStoppedException)== null || (exception as System.Management.Automation.PipelineStoppedException).InnerException != null) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(exception,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + finally + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletProcessRecordEnd).Wait(); + } + } + + /// Performs execution of the command, working asynchronously if required. + /// + /// A that will be complete when handling of the method is completed. + /// + protected async global::System.Threading.Tasks.Task ProcessRecordAsync() + { + using( NoSynchronizationContext ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + foreach( var SubscriptionId in this.SubscriptionId ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await this.Client.DomainsListBySubscription(SubscriptionId, this.InvocationInformation.BoundParameters.ContainsKey("Filter") ? Filter : null, this.InvocationInformation.BoundParameters.ContainsKey("Top") ? Top : default(int?), onOk, onDefault, this, Pipeline); + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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,Top=this.InvocationInformation.BoundParameters.ContainsKey("Top") ? Top : default(int?)}) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(urexception.Message) { RecommendedAction = urexception.Action } + }); + } + finally + { + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Cancel(); + base.StopProcessing(); + } + + /// + /// a delegate that is called when the remote service returns default (any response code not handled elsewhere). + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onDefault(global::System.Net.Http.HttpResponseMessage responseMessage) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnDefault(responseMessage, ref _returnNow); + // if overrideOnDefault has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // Error Response : default + // Unrecognized Response. Create an error record based on what we have. + var ex = new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.RestException(responseMessage); + 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, Top=this.InvocationInformation.BoundParameters.ContainsKey("Top") ? Top : default(int?) }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(ex.Message) { RecommendedAction = ex.Action } + }); + } + } + + /// a delegate that is called when the remote service returns 200 (OK). + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnOk(responseMessage, response, ref _returnNow); + // if overrideOnOk has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // onOk - response for 200 / application/json + // response should be returning an array of some kind. +Pageable + // pageable / value / nextLink + var result = await response; + WriteObject(result.Value,true); + _nextLink = result.NextLink; + if (_isFirst) + { + _isFirst = false; + while (_nextLink != null) + { + if (responseMessage.RequestMessage is System.Net.Http.HttpRequestMessage requestMessage ) + { + requestMessage = requestMessage.Clone(new global::System.Uri( _nextLink ),Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Method.Get ); + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.FollowingNextLink); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await this.Client.DomainsListBySubscription_Call(requestMessage, onOk, onDefault, this, Pipeline); + } + } + } + } + } + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/cmdlets/GetAzEventGridDomain_List1.cs b/swaggerci/eventgrid/generated/cmdlets/GetAzEventGridDomain_List1.cs new file mode 100644 index 000000000000..5c8b361ab06e --- /dev/null +++ b/swaggerci/eventgrid/generated/cmdlets/GetAzEventGridDomain_List1.cs @@ -0,0 +1,442 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Extensions; + using System; + + /// List all the domains under a resource group. + /// + /// [OpenAPI] ListByResourceGroup=>GET:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.EventGrid/domains" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsCommon.Get, @"AzEventGridDomain_List1")] + [global::System.Management.Automation.OutputType(typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDomain))] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Description(@"List all the domains under a resource group.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Generated] + public partial class GetAzEventGridDomain_List1 : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener + { + /// A unique id generatd for the this cmdlet when it is instantiated. + private string __correlationId = System.Guid.NewGuid().ToString(); + + /// A copy of the Invocation Info (necessary to allow asJob to clone this cmdlet) + private global::System.Management.Automation.InvocationInfo __invocationInfo; + + /// A unique id generatd for the this cmdlet when ProcessRecord() is called. + private string __processRecordId; + + /// + /// The for this operation. + /// + private global::System.Threading.CancellationTokenSource _cancellationTokenSource = new global::System.Threading.CancellationTokenSource(); + + /// A flag to tell whether it is the first onOK call. + private bool _isFirst = true; + + /// Link to retrieve next page. + private string _nextLink; + + /// Wait for .NET debugger to attach + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Wait for .NET debugger to attach")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.EventGridManagementClient Client => Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.ClientAPI; + + /// + /// The credentials, account, tenant, and subscription used for communication with Azure + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The credentials, account, tenant, and subscription used for communication with Azure.")] + [global::System.Management.Automation.ValidateNotNull] + [global::System.Management.Automation.Alias("AzureRMContext", "AzureCredential")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Azure)] + public global::System.Management.Automation.PSObject DefaultProfile { get; set; } + + /// Backing field for property. + private string _filter; + + /// + /// The query used to filter the search results using OData syntax. Filtering is permitted on the 'name' property only and + /// with limited number of OData operations. These operations are: the 'contains' function as well as the following logical + /// operations: not, and, or, eq (for equal), and ne (for not equal). No arithmetic operations are supported. The following + /// is a valid filter example: $filter=contains(namE, 'PATTERN') and name ne 'PATTERN-1'. The following is not a valid filter + /// example: $filter=location eq 'westus'. + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The query used to filter the search results using OData syntax. Filtering is permitted on the 'name' property only and with limited number of OData operations. These operations are: the 'contains' function as well as the following logical operations: not, and, or, eq (for equal), and ne (for not equal). No arithmetic operations are supported. The following is a valid filter example: $filter=contains(namE, 'PATTERN') and name ne 'PATTERN-1'. The following is not a valid filter example: $filter=location eq 'westus'.")] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The query used to filter the search results using OData syntax. Filtering is permitted on the 'name' property only and with limited number of OData operations. These operations are: the 'contains' function as well as the following logical operations: not, and, or, eq (for equal), and ne (for not equal). No arithmetic operations are supported. The following is a valid filter example: $filter=contains(namE, 'PATTERN') and name ne 'PATTERN-1'. The following is not a valid filter example: $filter=location eq 'westus'.", + SerializedName = @"$filter", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[] HttpPipelineAppend { get; set; } + + /// SendAsync Pipeline Steps to be prepended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be prepended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[] HttpPipelinePrepend { get; set; } + + /// Accessor for our copy of the InvocationInfo. + public global::System.Management.Automation.InvocationInfo InvocationInformation { get => __invocationInfo = __invocationInfo ?? this.MyInvocation ; set { __invocationInfo = value; } } + + /// + /// cancellation delegate. Stops the cmdlet when called. + /// + global::System.Action Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Runtime.HttpPipeline Pipeline { get; set; } + + /// The URI for the proxy server to use + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "The URI for the proxy server to use")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Uri Proxy { get; set; } + + /// Credentials for a proxy server to use for the remote call + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Credentials for a proxy server to use for the remote call")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Management.Automation.PSCredential ProxyCredential { get; set; } + + /// Use the default credentials for the proxy + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Use the default credentials for the proxy")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter ProxyUseDefaultCredentials { get; set; } + + /// Backing field for property. + private string _resourceGroupName; + + /// The name of the resource group within the user's subscription. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the resource group within the user's subscription.")] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the resource group within the user's subscription.", + SerializedName = @"resourceGroupName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Path)] + public string ResourceGroupName { get => this._resourceGroupName; set => this._resourceGroupName = value; } + + /// Backing field for property. + private string[] _subscriptionId; + + /// + /// Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription ID forms part of the + /// URI for every service call. + /// + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.")] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.", + SerializedName = @"subscriptionId", + PossibleTypes = new [] { typeof(string) })] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.DefaultInfo( + Name = @"", + Description =@"", + Script = @"(Get-AzContext).Subscription.Id")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Path)] + public string[] SubscriptionId { get => this._subscriptionId; set => this._subscriptionId = value; } + + /// Backing field for property. + private int _top; + + /// + /// The number of results to return per page for the list operation. Valid range for top parameter is 1 to 100. If not specified, + /// the default number of results to be returned is 20 items per page. + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The number of results to return per page for the list operation. Valid range for top parameter is 1 to 100. If not specified, the default number of results to be returned is 20 items per page.")] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The number of results to return per page for the list operation. Valid range for top parameter is 1 to 100. If not specified, the default number of results to be returned is 20 items per page.", + SerializedName = @"$top", + PossibleTypes = new [] { typeof(int) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Query)] + public int Top { get => this._top; set => this._top = value; } + + /// + /// overrideOnDefault will be called before the regular onDefault has been processed, allowing customization of what + /// happens on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// /// Determines if the rest of the onDefault method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnDefault(global::System.Net.Http.HttpResponseMessage responseMessage, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnOk will be called before the regular onOk has been processed, allowing customization of what happens + /// on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// 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() + { + var telemetryId = Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.GetTelemetryId.Invoke(); + if (telemetryId != "" && telemetryId != "internal") + { + __correlationId = telemetryId; + } + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + + } + + /// + /// Intializes a new instance of the cmdlet class. + /// + public GetAzEventGridDomain_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.EventGrid.Runtime.IEventListener.Signal(string id, global::System.Threading.CancellationToken token, global::System.Func messageData) + { + using( NoSynchronizationContext ) + { + if (token.IsCancellationRequested) + { + return ; + } + + switch ( id ) + { + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Information: + { + var data = messageData(); + WriteInformation(data.Message, new string[]{}); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Error: + { + WriteError(new global::System.Management.Automation.ErrorRecord( new global::System.Exception(messageData().Message), string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null ) ); + return ; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.EventData ), InvocationInformation, this.ParameterSetName, __correlationId, __processRecordId, null ); + if (token.IsCancellationRequested) + { + return ; + } + WriteDebug($"{id}: {(messageData().Message ?? global::System.String.Empty)}"); + } + } + + /// Performs execution of the command. + protected override void ProcessRecord() + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + using( var asyncCommandRuntime = new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token); + } + } + catch (global::System.AggregateException aggregateException) + { + // unroll the inner exceptions to get the root cause + foreach( var innerException in aggregateException.Flatten().InnerExceptions ) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(innerException,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + } + catch (global::System.Exception exception) when ((exception as System.Management.Automation.PipelineStoppedException)== null || (exception as System.Management.Automation.PipelineStoppedException).InnerException != null) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(exception,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + finally + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletProcessRecordEnd).Wait(); + } + } + + /// Performs execution of the command, working asynchronously if required. + /// + /// A that will be complete when handling of the method is completed. + /// + protected async global::System.Threading.Tasks.Task ProcessRecordAsync() + { + using( NoSynchronizationContext ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + foreach( var SubscriptionId in this.SubscriptionId ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await this.Client.DomainsListByResourceGroup(SubscriptionId, ResourceGroupName, this.InvocationInformation.BoundParameters.ContainsKey("Filter") ? Filter : null, this.InvocationInformation.BoundParameters.ContainsKey("Top") ? Top : default(int?), onOk, onDefault, this, Pipeline); + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.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,Top=this.InvocationInformation.BoundParameters.ContainsKey("Top") ? Top : default(int?)}) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(urexception.Message) { RecommendedAction = urexception.Action } + }); + } + finally + { + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Cancel(); + base.StopProcessing(); + } + + /// + /// a delegate that is called when the remote service returns default (any response code not handled elsewhere). + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onDefault(global::System.Net.Http.HttpResponseMessage responseMessage) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnDefault(responseMessage, ref _returnNow); + // if overrideOnDefault has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // Error Response : default + // Unrecognized Response. Create an error record based on what we have. + var ex = new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.RestException(responseMessage); + 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, Top=this.InvocationInformation.BoundParameters.ContainsKey("Top") ? Top : default(int?) }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(ex.Message) { RecommendedAction = ex.Action } + }); + } + } + + /// a delegate that is called when the remote service returns 200 (OK). + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnOk(responseMessage, response, ref _returnNow); + // if overrideOnOk has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // onOk - response for 200 / application/json + // response should be returning an array of some kind. +Pageable + // pageable / value / nextLink + var result = await response; + WriteObject(result.Value,true); + _nextLink = result.NextLink; + if (_isFirst) + { + _isFirst = false; + while (_nextLink != null) + { + if (responseMessage.RequestMessage is System.Net.Http.HttpRequestMessage requestMessage ) + { + requestMessage = requestMessage.Clone(new global::System.Uri( _nextLink ),Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Method.Get ); + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.FollowingNextLink); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await this.Client.DomainsListByResourceGroup_Call(requestMessage, onOk, onDefault, this, Pipeline); + } + } + } + } + } + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/cmdlets/GetAzEventGridEventChannel_Get.cs b/swaggerci/eventgrid/generated/cmdlets/GetAzEventGridEventChannel_Get.cs new file mode 100644 index 000000000000..ce5f17c4de2c --- /dev/null +++ b/swaggerci/eventgrid/generated/cmdlets/GetAzEventGridEventChannel_Get.cs @@ -0,0 +1,412 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Extensions; + using System; + + /// Get properties of an event channel. + /// + /// [OpenAPI] Get=>GET:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.EventGrid/partnerNamespaces/{partnerNamespaceName}/eventChannels/{eventChannelName}" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsCommon.Get, @"AzEventGridEventChannel_Get")] + [global::System.Management.Automation.OutputType(typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventChannel))] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Description(@"Get properties of an event channel.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Generated] + public partial class GetAzEventGridEventChannel_Get : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener + { + /// A unique id generatd for the this cmdlet when it is instantiated. + private string __correlationId = System.Guid.NewGuid().ToString(); + + /// A copy of the Invocation Info (necessary to allow asJob to clone this cmdlet) + private global::System.Management.Automation.InvocationInfo __invocationInfo; + + /// A unique id generatd for the this cmdlet when ProcessRecord() is called. + private string __processRecordId; + + /// + /// The for this operation. + /// + private global::System.Threading.CancellationTokenSource _cancellationTokenSource = new global::System.Threading.CancellationTokenSource(); + + /// Wait for .NET debugger to attach + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Wait for .NET debugger to attach")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.EventGridManagementClient Client => Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.ClientAPI; + + /// + /// The credentials, account, tenant, and subscription used for communication with Azure + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The credentials, account, tenant, and subscription used for communication with Azure.")] + [global::System.Management.Automation.ValidateNotNull] + [global::System.Management.Automation.Alias("AzureRMContext", "AzureCredential")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Azure)] + public global::System.Management.Automation.PSObject DefaultProfile { get; set; } + + /// SendAsync Pipeline Steps to be appended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be appended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[] HttpPipelineAppend { get; set; } + + /// SendAsync Pipeline Steps to be prepended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be prepended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[] HttpPipelinePrepend { get; set; } + + /// Accessor for our copy of the InvocationInfo. + public global::System.Management.Automation.InvocationInfo InvocationInformation { get => __invocationInfo = __invocationInfo ?? this.MyInvocation ; set { __invocationInfo = value; } } + + /// + /// cancellation delegate. Stops the cmdlet when called. + /// + global::System.Action Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener.Token => _cancellationTokenSource.Token; + + /// Backing field for property. + private string _name; + + /// Name of the event channel. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Name of the event channel.")] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Name of the event channel.", + SerializedName = @"eventChannelName", + PossibleTypes = new [] { typeof(string) })] + [global::System.Management.Automation.Alias("EventChannelName")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Path)] + public string Name { get => this._name; set => this._name = value; } + + /// Backing field for property. + private string _partnerNamespaceName; + + /// Name of the partner namespace. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Name of the partner namespace.")] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Name of the partner namespace.", + SerializedName = @"partnerNamespaceName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Path)] + public string PartnerNamespaceName { get => this._partnerNamespaceName; set => this._partnerNamespaceName = 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.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Runtime.HttpPipeline Pipeline { get; set; } + + /// The URI for the proxy server to use + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "The URI for the proxy server to use")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Uri Proxy { get; set; } + + /// Credentials for a proxy server to use for the remote call + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Credentials for a proxy server to use for the remote call")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Management.Automation.PSCredential ProxyCredential { get; set; } + + /// Use the default credentials for the proxy + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Use the default credentials for the proxy")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter ProxyUseDefaultCredentials { get; set; } + + /// Backing field for property. + private string _resourceGroupName; + + /// The name of the resource group within the user's subscription. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the resource group within the user's subscription.")] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the resource group within the user's subscription.", + SerializedName = @"resourceGroupName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Path)] + public string ResourceGroupName { get => this._resourceGroupName; set => this._resourceGroupName = value; } + + /// Backing field for property. + private string[] _subscriptionId; + + /// + /// Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription ID forms part of the + /// URI for every service call. + /// + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.")] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.", + SerializedName = @"subscriptionId", + PossibleTypes = new [] { typeof(string) })] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.DefaultInfo( + Name = @"", + Description =@"", + Script = @"(Get-AzContext).Subscription.Id")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Path)] + public string[] SubscriptionId { get => this._subscriptionId; set => this._subscriptionId = value; } + + /// + /// overrideOnDefault will be called before the regular onDefault has been processed, allowing customization of what + /// happens on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// /// Determines if the rest of the onDefault method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnDefault(global::System.Net.Http.HttpResponseMessage responseMessage, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnOk will be called before the regular onOk has been processed, allowing customization of what happens + /// on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// 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() + { + var telemetryId = Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.GetTelemetryId.Invoke(); + if (telemetryId != "" && telemetryId != "internal") + { + __correlationId = telemetryId; + } + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + + } + + /// + /// Intializes a new instance of the cmdlet class. + /// + public GetAzEventGridEventChannel_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.EventGrid.Runtime.IEventListener.Signal(string id, global::System.Threading.CancellationToken token, global::System.Func messageData) + { + using( NoSynchronizationContext ) + { + if (token.IsCancellationRequested) + { + return ; + } + + switch ( id ) + { + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Information: + { + var data = messageData(); + WriteInformation(data.Message, new string[]{}); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Error: + { + WriteError(new global::System.Management.Automation.ErrorRecord( new global::System.Exception(messageData().Message), string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null ) ); + return ; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.EventData ), InvocationInformation, this.ParameterSetName, __correlationId, __processRecordId, null ); + if (token.IsCancellationRequested) + { + return ; + } + WriteDebug($"{id}: {(messageData().Message ?? global::System.String.Empty)}"); + } + } + + /// Performs execution of the command. + protected override void ProcessRecord() + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + using( var asyncCommandRuntime = new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token); + } + } + catch (global::System.AggregateException aggregateException) + { + // unroll the inner exceptions to get the root cause + foreach( var innerException in aggregateException.Flatten().InnerExceptions ) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(innerException,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + } + catch (global::System.Exception exception) when ((exception as System.Management.Automation.PipelineStoppedException)== null || (exception as System.Management.Automation.PipelineStoppedException).InnerException != null) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(exception,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + finally + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletProcessRecordEnd).Wait(); + } + } + + /// Performs execution of the command, working asynchronously if required. + /// + /// A that will be complete when handling of the method is completed. + /// + protected async global::System.Threading.Tasks.Task ProcessRecordAsync() + { + using( NoSynchronizationContext ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + foreach( var SubscriptionId in this.SubscriptionId ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await this.Client.EventChannelsGet(SubscriptionId, ResourceGroupName, PartnerNamespaceName, Name, onOk, onDefault, this, Pipeline); + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.UndeclaredResponseException urexception) + { + WriteError(new global::System.Management.Automation.ErrorRecord(urexception, urexception.StatusCode.ToString(), global::System.Management.Automation.ErrorCategory.InvalidOperation, new { SubscriptionId=SubscriptionId,ResourceGroupName=ResourceGroupName,PartnerNamespaceName=PartnerNamespaceName,Name=Name}) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(urexception.Message) { RecommendedAction = urexception.Action } + }); + } + finally + { + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Cancel(); + base.StopProcessing(); + } + + /// + /// a delegate that is called when the remote service returns default (any response code not handled elsewhere). + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onDefault(global::System.Net.Http.HttpResponseMessage responseMessage) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnDefault(responseMessage, ref _returnNow); + // if overrideOnDefault has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // Error Response : default + // Unrecognized Response. Create an error record based on what we have. + var ex = new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.RestException(responseMessage); + WriteError( new global::System.Management.Automation.ErrorRecord(ex, ex.Code, global::System.Management.Automation.ErrorCategory.InvalidOperation, new { SubscriptionId=SubscriptionId, ResourceGroupName=ResourceGroupName, PartnerNamespaceName=PartnerNamespaceName, Name=Name }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(ex.Message) { RecommendedAction = ex.Action } + }); + } + } + + /// a delegate that is called when the remote service returns 200 (OK). + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as 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.EventGrid.Models.Api20211015Preview.IEventChannel + WriteObject((await response)); + } + } + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/cmdlets/GetAzEventGridEventChannel_GetViaIdentity.cs b/swaggerci/eventgrid/generated/cmdlets/GetAzEventGridEventChannel_GetViaIdentity.cs new file mode 100644 index 000000000000..247609ef05c8 --- /dev/null +++ b/swaggerci/eventgrid/generated/cmdlets/GetAzEventGridEventChannel_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.EventGrid.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Extensions; + using System; + + /// Get properties of an event channel. + /// + /// [OpenAPI] Get=>GET:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.EventGrid/partnerNamespaces/{partnerNamespaceName}/eventChannels/{eventChannelName}" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsCommon.Get, @"AzEventGridEventChannel_GetViaIdentity")] + [global::System.Management.Automation.OutputType(typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventChannel))] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Description(@"Get properties of an event channel.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Generated] + public partial class GetAzEventGridEventChannel_GetViaIdentity : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener + { + /// A unique id generatd for the this cmdlet when it is instantiated. + private string __correlationId = System.Guid.NewGuid().ToString(); + + /// A copy of the Invocation Info (necessary to allow asJob to clone this cmdlet) + private global::System.Management.Automation.InvocationInfo __invocationInfo; + + /// A unique id generatd for the this cmdlet when ProcessRecord() is called. + private string __processRecordId; + + /// + /// The for this operation. + /// + private global::System.Threading.CancellationTokenSource _cancellationTokenSource = new global::System.Threading.CancellationTokenSource(); + + /// Wait for .NET debugger to attach + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Wait for .NET debugger to attach")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.EventGridManagementClient Client => Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.ClientAPI; + + /// + /// The credentials, account, tenant, and subscription used for communication with Azure + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The credentials, account, tenant, and subscription used for communication with Azure.")] + [global::System.Management.Automation.ValidateNotNull] + [global::System.Management.Automation.Alias("AzureRMContext", "AzureCredential")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Azure)] + public global::System.Management.Automation.PSObject DefaultProfile { get; set; } + + /// SendAsync Pipeline Steps to be appended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be appended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[] HttpPipelineAppend { get; set; } + + /// SendAsync Pipeline Steps to be prepended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be prepended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[] HttpPipelinePrepend { get; set; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.IEventGridIdentity _inputObject; + + /// Identity Parameter + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Identity Parameter", ValueFromPipeline = true)] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Path)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.IEventGridIdentity InputObject { get => this._inputObject; set => this._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.EventGrid.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Runtime.HttpPipeline Pipeline { get; set; } + + /// The URI for the proxy server to use + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "The URI for the proxy server to use")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Uri Proxy { get; set; } + + /// Credentials for a proxy server to use for the remote call + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Credentials for a proxy server to use for the remote call")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Management.Automation.PSCredential ProxyCredential { get; set; } + + /// Use the default credentials for the proxy + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Use the default credentials for the proxy")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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. + /// /// Determines if the rest of the onDefault method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnDefault(global::System.Net.Http.HttpResponseMessage responseMessage, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnOk will be called before the regular onOk has been processed, allowing customization of what happens + /// on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// 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() + { + var telemetryId = Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.GetTelemetryId.Invoke(); + if (telemetryId != "" && telemetryId != "internal") + { + __correlationId = telemetryId; + } + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + + } + + /// + /// Intializes a new instance of the cmdlet class. + /// + public GetAzEventGridEventChannel_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.EventGrid.Runtime.IEventListener.Signal(string id, global::System.Threading.CancellationToken token, global::System.Func messageData) + { + using( NoSynchronizationContext ) + { + if (token.IsCancellationRequested) + { + return ; + } + + switch ( id ) + { + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Information: + { + var data = messageData(); + WriteInformation(data.Message, new string[]{}); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Error: + { + WriteError(new global::System.Management.Automation.ErrorRecord( new global::System.Exception(messageData().Message), string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null ) ); + return ; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.EventData ), InvocationInformation, this.ParameterSetName, __correlationId, __processRecordId, null ); + if (token.IsCancellationRequested) + { + return ; + } + WriteDebug($"{id}: {(messageData().Message ?? global::System.String.Empty)}"); + } + } + + /// Performs execution of the command. + protected override void ProcessRecord() + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + using( var asyncCommandRuntime = new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token); + } + } + catch (global::System.AggregateException aggregateException) + { + // unroll the inner exceptions to get the root cause + foreach( var innerException in aggregateException.Flatten().InnerExceptions ) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(innerException,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + } + catch (global::System.Exception exception) when ((exception as System.Management.Automation.PipelineStoppedException)== null || (exception as System.Management.Automation.PipelineStoppedException).InnerException != null) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(exception,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + finally + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletProcessRecordEnd).Wait(); + } + } + + /// Performs execution of the command, working asynchronously if required. + /// + /// A that will be complete when handling of the method is completed. + /// + protected async global::System.Threading.Tasks.Task ProcessRecordAsync() + { + using( NoSynchronizationContext ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + if (InputObject?.Id != null) + { + await this.Client.EventChannelsGetViaIdentity(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.PartnerNamespaceName) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.PartnerNamespaceName"),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, InputObject) ); + } + if (null == InputObject.EventChannelName) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.EventChannelName"),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, InputObject) ); + } + await this.Client.EventChannelsGet(InputObject.SubscriptionId ?? null, InputObject.ResourceGroupName ?? null, InputObject.PartnerNamespaceName ?? null, InputObject.EventChannelName ?? null, onOk, onDefault, this, Pipeline); + } + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Cancel(); + base.StopProcessing(); + } + + /// + /// a delegate that is called when the remote service returns default (any response code not handled elsewhere). + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onDefault(global::System.Net.Http.HttpResponseMessage responseMessage) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnDefault(responseMessage, ref _returnNow); + // if overrideOnDefault has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // Error Response : default + // Unrecognized Response. Create an error record based on what we have. + var ex = new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.RestException(responseMessage); + WriteError( new global::System.Management.Automation.ErrorRecord(ex, ex.Code, global::System.Management.Automation.ErrorCategory.InvalidOperation, new { }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(ex.Message) { RecommendedAction = ex.Action } + }); + } + } + + /// a delegate that is called when the remote service returns 200 (OK). + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as 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.EventGrid.Models.Api20211015Preview.IEventChannel + WriteObject((await response)); + } + } + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/cmdlets/GetAzEventGridEventChannel_List.cs b/swaggerci/eventgrid/generated/cmdlets/GetAzEventGridEventChannel_List.cs new file mode 100644 index 000000000000..d4e75217a2c2 --- /dev/null +++ b/swaggerci/eventgrid/generated/cmdlets/GetAzEventGridEventChannel_List.cs @@ -0,0 +1,456 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Extensions; + using System; + + /// List all the event channels in a partner namespace. + /// + /// [OpenAPI] ListByPartnerNamespace=>GET:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.EventGrid/partnerNamespaces/{partnerNamespaceName}/eventChannels" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsCommon.Get, @"AzEventGridEventChannel_List")] + [global::System.Management.Automation.OutputType(typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventChannel))] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Description(@"List all the event channels in a partner namespace.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Generated] + public partial class GetAzEventGridEventChannel_List : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener + { + /// A unique id generatd for the this cmdlet when it is instantiated. + private string __correlationId = System.Guid.NewGuid().ToString(); + + /// A copy of the Invocation Info (necessary to allow asJob to clone this cmdlet) + private global::System.Management.Automation.InvocationInfo __invocationInfo; + + /// A unique id generatd for the this cmdlet when ProcessRecord() is called. + private string __processRecordId; + + /// + /// The for this operation. + /// + private global::System.Threading.CancellationTokenSource _cancellationTokenSource = new global::System.Threading.CancellationTokenSource(); + + /// A flag to tell whether it is the first onOK call. + private bool _isFirst = true; + + /// Link to retrieve next page. + private string _nextLink; + + /// Wait for .NET debugger to attach + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Wait for .NET debugger to attach")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.EventGridManagementClient Client => Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.ClientAPI; + + /// + /// The credentials, account, tenant, and subscription used for communication with Azure + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The credentials, account, tenant, and subscription used for communication with Azure.")] + [global::System.Management.Automation.ValidateNotNull] + [global::System.Management.Automation.Alias("AzureRMContext", "AzureCredential")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Azure)] + public global::System.Management.Automation.PSObject DefaultProfile { get; set; } + + /// Backing field for property. + private string _filter; + + /// + /// The query used to filter the search results using OData syntax. Filtering is permitted on the 'name' property only and + /// with limited number of OData operations. These operations are: the 'contains' function as well as the following logical + /// operations: not, and, or, eq (for equal), and ne (for not equal). No arithmetic operations are supported. The following + /// is a valid filter example: $filter=contains(namE, 'PATTERN') and name ne 'PATTERN-1'. The following is not a valid filter + /// example: $filter=location eq 'westus'. + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The query used to filter the search results using OData syntax. Filtering is permitted on the 'name' property only and with limited number of OData operations. These operations are: the 'contains' function as well as the following logical operations: not, and, or, eq (for equal), and ne (for not equal). No arithmetic operations are supported. The following is a valid filter example: $filter=contains(namE, 'PATTERN') and name ne 'PATTERN-1'. The following is not a valid filter example: $filter=location eq 'westus'.")] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The query used to filter the search results using OData syntax. Filtering is permitted on the 'name' property only and with limited number of OData operations. These operations are: the 'contains' function as well as the following logical operations: not, and, or, eq (for equal), and ne (for not equal). No arithmetic operations are supported. The following is a valid filter example: $filter=contains(namE, 'PATTERN') and name ne 'PATTERN-1'. The following is not a valid filter example: $filter=location eq 'westus'.", + SerializedName = @"$filter", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[] HttpPipelineAppend { get; set; } + + /// SendAsync Pipeline Steps to be prepended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be prepended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[] HttpPipelinePrepend { get; set; } + + /// Accessor for our copy of the InvocationInfo. + public global::System.Management.Automation.InvocationInfo InvocationInformation { get => __invocationInfo = __invocationInfo ?? this.MyInvocation ; set { __invocationInfo = value; } } + + /// + /// cancellation delegate. Stops the cmdlet when called. + /// + global::System.Action Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener.Token => _cancellationTokenSource.Token; + + /// Backing field for property. + private string _partnerNamespaceName; + + /// Name of the partner namespace. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Name of the partner namespace.")] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Name of the partner namespace.", + SerializedName = @"partnerNamespaceName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Path)] + public string PartnerNamespaceName { get => this._partnerNamespaceName; set => this._partnerNamespaceName = 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.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Runtime.HttpPipeline Pipeline { get; set; } + + /// The URI for the proxy server to use + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "The URI for the proxy server to use")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Uri Proxy { get; set; } + + /// Credentials for a proxy server to use for the remote call + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Credentials for a proxy server to use for the remote call")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Management.Automation.PSCredential ProxyCredential { get; set; } + + /// Use the default credentials for the proxy + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Use the default credentials for the proxy")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter ProxyUseDefaultCredentials { get; set; } + + /// Backing field for property. + private string _resourceGroupName; + + /// The name of the resource group within the user's subscription. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the resource group within the user's subscription.")] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the resource group within the user's subscription.", + SerializedName = @"resourceGroupName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Path)] + public string ResourceGroupName { get => this._resourceGroupName; set => this._resourceGroupName = value; } + + /// Backing field for property. + private string[] _subscriptionId; + + /// + /// Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription ID forms part of the + /// URI for every service call. + /// + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.")] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.", + SerializedName = @"subscriptionId", + PossibleTypes = new [] { typeof(string) })] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.DefaultInfo( + Name = @"", + Description =@"", + Script = @"(Get-AzContext).Subscription.Id")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Path)] + public string[] SubscriptionId { get => this._subscriptionId; set => this._subscriptionId = value; } + + /// Backing field for property. + private int _top; + + /// + /// The number of results to return per page for the list operation. Valid range for top parameter is 1 to 100. If not specified, + /// the default number of results to be returned is 20 items per page. + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The number of results to return per page for the list operation. Valid range for top parameter is 1 to 100. If not specified, the default number of results to be returned is 20 items per page.")] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The number of results to return per page for the list operation. Valid range for top parameter is 1 to 100. If not specified, the default number of results to be returned is 20 items per page.", + SerializedName = @"$top", + PossibleTypes = new [] { typeof(int) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Query)] + public int Top { get => this._top; set => this._top = value; } + + /// + /// overrideOnDefault will be called before the regular onDefault has been processed, allowing customization of what + /// happens on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// /// Determines if the rest of the onDefault method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnDefault(global::System.Net.Http.HttpResponseMessage responseMessage, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnOk will be called before the regular onOk has been processed, allowing customization of what happens + /// on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// 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() + { + var telemetryId = Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.GetTelemetryId.Invoke(); + if (telemetryId != "" && telemetryId != "internal") + { + __correlationId = telemetryId; + } + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + + } + + /// + /// Intializes a new instance of the cmdlet class. + /// + public GetAzEventGridEventChannel_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.EventGrid.Runtime.IEventListener.Signal(string id, global::System.Threading.CancellationToken token, global::System.Func messageData) + { + using( NoSynchronizationContext ) + { + if (token.IsCancellationRequested) + { + return ; + } + + switch ( id ) + { + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Information: + { + var data = messageData(); + WriteInformation(data.Message, new string[]{}); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Error: + { + WriteError(new global::System.Management.Automation.ErrorRecord( new global::System.Exception(messageData().Message), string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null ) ); + return ; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.EventData ), InvocationInformation, this.ParameterSetName, __correlationId, __processRecordId, null ); + if (token.IsCancellationRequested) + { + return ; + } + WriteDebug($"{id}: {(messageData().Message ?? global::System.String.Empty)}"); + } + } + + /// Performs execution of the command. + protected override void ProcessRecord() + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + using( var asyncCommandRuntime = new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token); + } + } + catch (global::System.AggregateException aggregateException) + { + // unroll the inner exceptions to get the root cause + foreach( var innerException in aggregateException.Flatten().InnerExceptions ) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(innerException,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + } + catch (global::System.Exception exception) when ((exception as System.Management.Automation.PipelineStoppedException)== null || (exception as System.Management.Automation.PipelineStoppedException).InnerException != null) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(exception,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + finally + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletProcessRecordEnd).Wait(); + } + } + + /// Performs execution of the command, working asynchronously if required. + /// + /// A that will be complete when handling of the method is completed. + /// + protected async global::System.Threading.Tasks.Task ProcessRecordAsync() + { + using( NoSynchronizationContext ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + foreach( var SubscriptionId in this.SubscriptionId ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await this.Client.EventChannelsListByPartnerNamespace(SubscriptionId, ResourceGroupName, PartnerNamespaceName, this.InvocationInformation.BoundParameters.ContainsKey("Filter") ? Filter : null, this.InvocationInformation.BoundParameters.ContainsKey("Top") ? Top : default(int?), onOk, onDefault, this, Pipeline); + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.UndeclaredResponseException urexception) + { + WriteError(new global::System.Management.Automation.ErrorRecord(urexception, urexception.StatusCode.ToString(), global::System.Management.Automation.ErrorCategory.InvalidOperation, new { SubscriptionId=SubscriptionId,ResourceGroupName=ResourceGroupName,PartnerNamespaceName=PartnerNamespaceName,Filter=this.InvocationInformation.BoundParameters.ContainsKey("Filter") ? Filter : null,Top=this.InvocationInformation.BoundParameters.ContainsKey("Top") ? Top : default(int?)}) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(urexception.Message) { RecommendedAction = urexception.Action } + }); + } + finally + { + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Cancel(); + base.StopProcessing(); + } + + /// + /// a delegate that is called when the remote service returns default (any response code not handled elsewhere). + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onDefault(global::System.Net.Http.HttpResponseMessage responseMessage) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnDefault(responseMessage, ref _returnNow); + // if overrideOnDefault has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // Error Response : default + // Unrecognized Response. Create an error record based on what we have. + var ex = new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.RestException(responseMessage); + WriteError( new global::System.Management.Automation.ErrorRecord(ex, ex.Code, global::System.Management.Automation.ErrorCategory.InvalidOperation, new { SubscriptionId=SubscriptionId, ResourceGroupName=ResourceGroupName, PartnerNamespaceName=PartnerNamespaceName, Filter=this.InvocationInformation.BoundParameters.ContainsKey("Filter") ? Filter : null, Top=this.InvocationInformation.BoundParameters.ContainsKey("Top") ? Top : default(int?) }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(ex.Message) { RecommendedAction = ex.Action } + }); + } + } + + /// a delegate that is called when the remote service returns 200 (OK). + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnOk(responseMessage, response, ref _returnNow); + // if overrideOnOk has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // onOk - response for 200 / application/json + // response should be returning an array of some kind. +Pageable + // pageable / value / nextLink + var result = await response; + WriteObject(result.Value,true); + _nextLink = result.NextLink; + if (_isFirst) + { + _isFirst = false; + while (_nextLink != null) + { + if (responseMessage.RequestMessage is System.Net.Http.HttpRequestMessage requestMessage ) + { + requestMessage = requestMessage.Clone(new global::System.Uri( _nextLink ),Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Method.Get ); + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.FollowingNextLink); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await this.Client.EventChannelsListByPartnerNamespace_Call(requestMessage, onOk, onDefault, this, Pipeline); + } + } + } + } + } + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/cmdlets/GetAzEventGridEventSubscriptionDeliveryAttribute_Get.cs b/swaggerci/eventgrid/generated/cmdlets/GetAzEventGridEventSubscriptionDeliveryAttribute_Get.cs new file mode 100644 index 000000000000..e5be28a1ad36 --- /dev/null +++ b/swaggerci/eventgrid/generated/cmdlets/GetAzEventGridEventSubscriptionDeliveryAttribute_Get.cs @@ -0,0 +1,383 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Extensions; + using System; + + /// Get all delivery attributes for an event subscription. + /// + /// [OpenAPI] GetDeliveryAttributes=>POST:"/{scope}/providers/Microsoft.EventGrid/eventSubscriptions/{eventSubscriptionName}/getDeliveryAttributes" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsCommon.Get, @"AzEventGridEventSubscriptionDeliveryAttribute_Get", SupportsShouldProcess = true)] + [global::System.Management.Automation.OutputType(typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDeliveryAttributeMapping))] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Description(@"Get all delivery attributes for an event subscription.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Generated] + public partial class GetAzEventGridEventSubscriptionDeliveryAttribute_Get : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener + { + /// A unique id generatd for the this cmdlet when it is instantiated. + private string __correlationId = System.Guid.NewGuid().ToString(); + + /// A copy of the Invocation Info (necessary to allow asJob to clone this cmdlet) + private global::System.Management.Automation.InvocationInfo __invocationInfo; + + /// A unique id generatd for the this cmdlet when ProcessRecord() is called. + private string __processRecordId; + + /// + /// The for this operation. + /// + private global::System.Threading.CancellationTokenSource _cancellationTokenSource = new global::System.Threading.CancellationTokenSource(); + + /// Wait for .NET debugger to attach + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Wait for .NET debugger to attach")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.EventGridManagementClient Client => Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.ClientAPI; + + /// + /// The credentials, account, tenant, and subscription used for communication with Azure + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The credentials, account, tenant, and subscription used for communication with Azure.")] + [global::System.Management.Automation.ValidateNotNull] + [global::System.Management.Automation.Alias("AzureRMContext", "AzureCredential")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Azure)] + public global::System.Management.Automation.PSObject DefaultProfile { get; set; } + + /// Backing field for property. + private string _eventSubscriptionName; + + /// Name of the event subscription. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Name of the event subscription.")] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Name of the event subscription.", + SerializedName = @"eventSubscriptionName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Path)] + public string EventSubscriptionName { get => this._eventSubscriptionName; set => this._eventSubscriptionName = 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.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[] HttpPipelineAppend { get; set; } + + /// SendAsync Pipeline Steps to be prepended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be prepended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[] HttpPipelinePrepend { get; set; } + + /// Accessor for our copy of the InvocationInfo. + public global::System.Management.Automation.InvocationInfo InvocationInformation { get => __invocationInfo = __invocationInfo ?? this.MyInvocation ; set { __invocationInfo = value; } } + + /// + /// cancellation delegate. Stops the cmdlet when called. + /// + global::System.Action Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Runtime.HttpPipeline Pipeline { get; set; } + + /// The URI for the proxy server to use + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "The URI for the proxy server to use")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Uri Proxy { get; set; } + + /// Credentials for a proxy server to use for the remote call + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Credentials for a proxy server to use for the remote call")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Management.Automation.PSCredential ProxyCredential { get; set; } + + /// Use the default credentials for the proxy + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Use the default credentials for the proxy")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter ProxyUseDefaultCredentials { get; set; } + + /// Backing field for property. + private string _scope; + + /// + /// The scope of the event subscription. The scope can be a subscription, or a resource group, or a top level resource belonging + /// to a resource provider namespace, or an EventGrid topic. For example, use '/subscriptions/{subscriptionId}/' for a subscription, + /// '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}' for a resource group, and '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}' + /// for a resource, and '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.EventGrid/topics/{topicName}' + /// for an EventGrid topic. + /// + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The scope of the event subscription. The scope can be a subscription, or a resource group, or a top level resource belonging to a resource provider namespace, or an EventGrid topic. For example, use '/subscriptions/{subscriptionId}/' for a subscription, '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}' for a resource group, and '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}' for a resource, and '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.EventGrid/topics/{topicName}' for an EventGrid topic.")] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The scope of the event subscription. The scope can be a subscription, or a resource group, or a top level resource belonging to a resource provider namespace, or an EventGrid topic. For example, use '/subscriptions/{subscriptionId}/' for a subscription, '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}' for a resource group, and '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}' for a resource, and '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.EventGrid/topics/{topicName}' for an EventGrid topic.", + SerializedName = @"scope", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Path)] + public string Scope { get => this._scope; set => this._scope = value; } + + /// + /// overrideOnDefault will be called before the regular onDefault has been processed, allowing customization of what + /// happens on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// /// Determines if the rest of the onDefault method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnDefault(global::System.Net.Http.HttpResponseMessage responseMessage, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnOk will be called before the regular onOk has been processed, allowing customization of what happens + /// on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// 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() + { + var telemetryId = Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.GetTelemetryId.Invoke(); + if (telemetryId != "" && telemetryId != "internal") + { + __correlationId = telemetryId; + } + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + + } + + /// + /// Intializes a new instance of the cmdlet class. + /// + public GetAzEventGridEventSubscriptionDeliveryAttribute_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.EventGrid.Runtime.IEventListener.Signal(string id, global::System.Threading.CancellationToken token, global::System.Func messageData) + { + using( NoSynchronizationContext ) + { + if (token.IsCancellationRequested) + { + return ; + } + + switch ( id ) + { + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Information: + { + var data = messageData(); + WriteInformation(data.Message, new string[]{}); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Error: + { + WriteError(new global::System.Management.Automation.ErrorRecord( new global::System.Exception(messageData().Message), string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null ) ); + return ; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.EventData ), InvocationInformation, this.ParameterSetName, __correlationId, __processRecordId, null ); + if (token.IsCancellationRequested) + { + return ; + } + WriteDebug($"{id}: {(messageData().Message ?? global::System.String.Empty)}"); + } + } + + /// Performs execution of the command. + protected override void ProcessRecord() + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + if (ShouldProcess($"Call remote 'EventSubscriptionsGetDeliveryAttributes' operation")) + { + using( var asyncCommandRuntime = new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token); + } + } + } + catch (global::System.AggregateException aggregateException) + { + // unroll the inner exceptions to get the root cause + foreach( var innerException in aggregateException.Flatten().InnerExceptions ) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(innerException,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + } + catch (global::System.Exception exception) when ((exception as System.Management.Automation.PipelineStoppedException)== null || (exception as System.Management.Automation.PipelineStoppedException).InnerException != null) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(exception,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + finally + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletProcessRecordEnd).Wait(); + } + } + + /// Performs execution of the command, working asynchronously if required. + /// + /// A that will be complete when handling of the method is completed. + /// + protected async global::System.Threading.Tasks.Task ProcessRecordAsync() + { + using( NoSynchronizationContext ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await this.Client.EventSubscriptionsGetDeliveryAttributes(Scope, EventSubscriptionName, onOk, onDefault, this, Pipeline); + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.UndeclaredResponseException urexception) + { + WriteError(new global::System.Management.Automation.ErrorRecord(urexception, urexception.StatusCode.ToString(), global::System.Management.Automation.ErrorCategory.InvalidOperation, new { Scope=Scope,EventSubscriptionName=EventSubscriptionName}) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(urexception.Message) { RecommendedAction = urexception.Action } + }); + } + finally + { + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Cancel(); + base.StopProcessing(); + } + + /// + /// a delegate that is called when the remote service returns default (any response code not handled elsewhere). + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onDefault(global::System.Net.Http.HttpResponseMessage responseMessage) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnDefault(responseMessage, ref _returnNow); + // if overrideOnDefault has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // Error Response : default + // Unrecognized Response. Create an error record based on what we have. + var ex = new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.RestException(responseMessage); + WriteError( new global::System.Management.Automation.ErrorRecord(ex, ex.Code, global::System.Management.Automation.ErrorCategory.InvalidOperation, new { Scope=Scope, EventSubscriptionName=EventSubscriptionName }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(ex.Message) { RecommendedAction = ex.Action } + }); + } + } + + /// a delegate that is called when the remote service returns 200 (OK). + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnOk(responseMessage, response, ref _returnNow); + // if overrideOnOk has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // onOk - response for 200 / application/json + // response should be returning an array of some kind. +Pageable + // nested-array / value / + WriteObject((await response).Value, true); + } + } + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/cmdlets/GetAzEventGridEventSubscriptionDeliveryAttribute_GetViaIdentity.cs b/swaggerci/eventgrid/generated/cmdlets/GetAzEventGridEventSubscriptionDeliveryAttribute_GetViaIdentity.cs new file mode 100644 index 000000000000..e4996ac57749 --- /dev/null +++ b/swaggerci/eventgrid/generated/cmdlets/GetAzEventGridEventSubscriptionDeliveryAttribute_GetViaIdentity.cs @@ -0,0 +1,374 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Extensions; + using System; + + /// Get all delivery attributes for an event subscription. + /// + /// [OpenAPI] GetDeliveryAttributes=>POST:"/{scope}/providers/Microsoft.EventGrid/eventSubscriptions/{eventSubscriptionName}/getDeliveryAttributes" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsCommon.Get, @"AzEventGridEventSubscriptionDeliveryAttribute_GetViaIdentity", SupportsShouldProcess = true)] + [global::System.Management.Automation.OutputType(typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDeliveryAttributeMapping))] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Description(@"Get all delivery attributes for an event subscription.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Generated] + public partial class GetAzEventGridEventSubscriptionDeliveryAttribute_GetViaIdentity : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener + { + /// A unique id generatd for the this cmdlet when it is instantiated. + private string __correlationId = System.Guid.NewGuid().ToString(); + + /// A copy of the Invocation Info (necessary to allow asJob to clone this cmdlet) + private global::System.Management.Automation.InvocationInfo __invocationInfo; + + /// A unique id generatd for the this cmdlet when ProcessRecord() is called. + private string __processRecordId; + + /// + /// The for this operation. + /// + private global::System.Threading.CancellationTokenSource _cancellationTokenSource = new global::System.Threading.CancellationTokenSource(); + + /// Wait for .NET debugger to attach + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Wait for .NET debugger to attach")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.EventGridManagementClient Client => Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.ClientAPI; + + /// + /// The credentials, account, tenant, and subscription used for communication with Azure + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The credentials, account, tenant, and subscription used for communication with Azure.")] + [global::System.Management.Automation.ValidateNotNull] + [global::System.Management.Automation.Alias("AzureRMContext", "AzureCredential")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Azure)] + public global::System.Management.Automation.PSObject DefaultProfile { get; set; } + + /// SendAsync Pipeline Steps to be appended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be appended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[] HttpPipelineAppend { get; set; } + + /// SendAsync Pipeline Steps to be prepended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be prepended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[] HttpPipelinePrepend { get; set; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.IEventGridIdentity _inputObject; + + /// Identity Parameter + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Identity Parameter", ValueFromPipeline = true)] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Path)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.IEventGridIdentity InputObject { get => this._inputObject; set => this._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.EventGrid.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Runtime.HttpPipeline Pipeline { get; set; } + + /// The URI for the proxy server to use + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "The URI for the proxy server to use")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Uri Proxy { get; set; } + + /// Credentials for a proxy server to use for the remote call + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Credentials for a proxy server to use for the remote call")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Management.Automation.PSCredential ProxyCredential { get; set; } + + /// Use the default credentials for the proxy + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Use the default credentials for the proxy")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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. + /// /// Determines if the rest of the onDefault method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnDefault(global::System.Net.Http.HttpResponseMessage responseMessage, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnOk will be called before the regular onOk has been processed, allowing customization of what happens + /// on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// 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() + { + var telemetryId = Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.GetTelemetryId.Invoke(); + if (telemetryId != "" && telemetryId != "internal") + { + __correlationId = telemetryId; + } + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + + } + + /// + /// Intializes a new instance of the cmdlet + /// class. + /// + public GetAzEventGridEventSubscriptionDeliveryAttribute_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.EventGrid.Runtime.IEventListener.Signal(string id, global::System.Threading.CancellationToken token, global::System.Func messageData) + { + using( NoSynchronizationContext ) + { + if (token.IsCancellationRequested) + { + return ; + } + + switch ( id ) + { + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Information: + { + var data = messageData(); + WriteInformation(data.Message, new string[]{}); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Error: + { + WriteError(new global::System.Management.Automation.ErrorRecord( new global::System.Exception(messageData().Message), string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null ) ); + return ; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.EventData ), InvocationInformation, this.ParameterSetName, __correlationId, __processRecordId, null ); + if (token.IsCancellationRequested) + { + return ; + } + WriteDebug($"{id}: {(messageData().Message ?? global::System.String.Empty)}"); + } + } + + /// Performs execution of the command. + protected override void ProcessRecord() + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + if (ShouldProcess($"Call remote 'EventSubscriptionsGetDeliveryAttributes' operation")) + { + using( var asyncCommandRuntime = new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token); + } + } + } + catch (global::System.AggregateException aggregateException) + { + // unroll the inner exceptions to get the root cause + foreach( var innerException in aggregateException.Flatten().InnerExceptions ) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(innerException,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + } + catch (global::System.Exception exception) when ((exception as System.Management.Automation.PipelineStoppedException)== null || (exception as System.Management.Automation.PipelineStoppedException).InnerException != null) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(exception,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + finally + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletProcessRecordEnd).Wait(); + } + } + + /// Performs execution of the command, working asynchronously if required. + /// + /// A that will be complete when handling of the method is completed. + /// + protected async global::System.Threading.Tasks.Task ProcessRecordAsync() + { + using( NoSynchronizationContext ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + if (InputObject?.Id != null) + { + await this.Client.EventSubscriptionsGetDeliveryAttributesViaIdentity(InputObject.Id, onOk, onDefault, this, Pipeline); + } + else + { + // try to call with PATH parameters from Input Object + if (null == InputObject.Scope) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.Scope"),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, InputObject) ); + } + if (null == InputObject.EventSubscriptionName) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.EventSubscriptionName"),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, InputObject) ); + } + await this.Client.EventSubscriptionsGetDeliveryAttributes(InputObject.Scope ?? null, InputObject.EventSubscriptionName ?? null, onOk, onDefault, this, Pipeline); + } + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Cancel(); + base.StopProcessing(); + } + + /// + /// a delegate that is called when the remote service returns default (any response code not handled elsewhere). + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onDefault(global::System.Net.Http.HttpResponseMessage responseMessage) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnDefault(responseMessage, ref _returnNow); + // if overrideOnDefault has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // Error Response : default + // Unrecognized Response. Create an error record based on what we have. + var ex = new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.RestException(responseMessage); + WriteError( new global::System.Management.Automation.ErrorRecord(ex, ex.Code, global::System.Management.Automation.ErrorCategory.InvalidOperation, new { }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(ex.Message) { RecommendedAction = ex.Action } + }); + } + } + + /// a delegate that is called when the remote service returns 200 (OK). + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnOk(responseMessage, response, ref _returnNow); + // if overrideOnOk has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // onOk - response for 200 / application/json + // response should be returning an array of some kind. +Pageable + // nested-array / value / + WriteObject((await response).Value, true); + } + } + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/cmdlets/GetAzEventGridEventSubscriptionFullUrl_Get.cs b/swaggerci/eventgrid/generated/cmdlets/GetAzEventGridEventSubscriptionFullUrl_Get.cs new file mode 100644 index 000000000000..6c57d3405b17 --- /dev/null +++ b/swaggerci/eventgrid/generated/cmdlets/GetAzEventGridEventSubscriptionFullUrl_Get.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.EventGrid.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Extensions; + using System; + + /// Get the full endpoint URL for an event subscription. + /// + /// [OpenAPI] GetFullUrl=>POST:"/{scope}/providers/Microsoft.EventGrid/eventSubscriptions/{eventSubscriptionName}/getFullUrl" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsCommon.Get, @"AzEventGridEventSubscriptionFullUrl_Get", SupportsShouldProcess = true)] + [global::System.Management.Automation.OutputType(typeof(string))] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Description(@"Get the full endpoint URL for an event subscription.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Generated] + public partial class GetAzEventGridEventSubscriptionFullUrl_Get : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener + { + /// A unique id generatd for the this cmdlet when it is instantiated. + private string __correlationId = System.Guid.NewGuid().ToString(); + + /// A copy of the Invocation Info (necessary to allow asJob to clone this cmdlet) + private global::System.Management.Automation.InvocationInfo __invocationInfo; + + /// A unique id generatd for the this cmdlet when ProcessRecord() is called. + private string __processRecordId; + + /// + /// The for this operation. + /// + private global::System.Threading.CancellationTokenSource _cancellationTokenSource = new global::System.Threading.CancellationTokenSource(); + + /// Wait for .NET debugger to attach + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Wait for .NET debugger to attach")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.EventGridManagementClient Client => Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.ClientAPI; + + /// + /// The credentials, account, tenant, and subscription used for communication with Azure + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The credentials, account, tenant, and subscription used for communication with Azure.")] + [global::System.Management.Automation.ValidateNotNull] + [global::System.Management.Automation.Alias("AzureRMContext", "AzureCredential")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Azure)] + public global::System.Management.Automation.PSObject DefaultProfile { get; set; } + + /// Backing field for property. + private string _eventSubscriptionName; + + /// Name of the event subscription. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Name of the event subscription.")] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Name of the event subscription.", + SerializedName = @"eventSubscriptionName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Path)] + public string EventSubscriptionName { get => this._eventSubscriptionName; set => this._eventSubscriptionName = 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.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[] HttpPipelineAppend { get; set; } + + /// SendAsync Pipeline Steps to be prepended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be prepended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[] HttpPipelinePrepend { get; set; } + + /// Accessor for our copy of the InvocationInfo. + public global::System.Management.Automation.InvocationInfo InvocationInformation { get => __invocationInfo = __invocationInfo ?? this.MyInvocation ; set { __invocationInfo = value; } } + + /// + /// cancellation delegate. Stops the cmdlet when called. + /// + global::System.Action Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Runtime.HttpPipeline Pipeline { get; set; } + + /// The URI for the proxy server to use + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "The URI for the proxy server to use")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Uri Proxy { get; set; } + + /// Credentials for a proxy server to use for the remote call + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Credentials for a proxy server to use for the remote call")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Management.Automation.PSCredential ProxyCredential { get; set; } + + /// Use the default credentials for the proxy + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Use the default credentials for the proxy")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter ProxyUseDefaultCredentials { get; set; } + + /// Backing field for property. + private string _scope; + + /// + /// The scope of the event subscription. The scope can be a subscription, or a resource group, or a top level resource belonging + /// to a resource provider namespace, or an EventGrid topic. For example, use '/subscriptions/{subscriptionId}/' for a subscription, + /// '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}' for a resource group, and '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}' + /// for a resource, and '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.EventGrid/topics/{topicName}' + /// for an EventGrid topic. + /// + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The scope of the event subscription. The scope can be a subscription, or a resource group, or a top level resource belonging to a resource provider namespace, or an EventGrid topic. For example, use '/subscriptions/{subscriptionId}/' for a subscription, '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}' for a resource group, and '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}' for a resource, and '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.EventGrid/topics/{topicName}' for an EventGrid topic.")] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The scope of the event subscription. The scope can be a subscription, or a resource group, or a top level resource belonging to a resource provider namespace, or an EventGrid topic. For example, use '/subscriptions/{subscriptionId}/' for a subscription, '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}' for a resource group, and '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}' for a resource, and '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.EventGrid/topics/{topicName}' for an EventGrid topic.", + SerializedName = @"scope", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Path)] + public string Scope { get => this._scope; set => this._scope = value; } + + /// + /// overrideOnDefault will be called before the regular onDefault has been processed, allowing customization of what + /// happens on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// /// Determines if the rest of the onDefault method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnDefault(global::System.Net.Http.HttpResponseMessage responseMessage, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnOk will be called before the regular onOk has been processed, allowing customization of what happens + /// on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// 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() + { + var telemetryId = Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.GetTelemetryId.Invoke(); + if (telemetryId != "" && telemetryId != "internal") + { + __correlationId = telemetryId; + } + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + + } + + /// + /// Intializes a new instance of the cmdlet class. + /// + public GetAzEventGridEventSubscriptionFullUrl_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.EventGrid.Runtime.IEventListener.Signal(string id, global::System.Threading.CancellationToken token, global::System.Func messageData) + { + using( NoSynchronizationContext ) + { + if (token.IsCancellationRequested) + { + return ; + } + + switch ( id ) + { + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Information: + { + var data = messageData(); + WriteInformation(data.Message, new string[]{}); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Error: + { + WriteError(new global::System.Management.Automation.ErrorRecord( new global::System.Exception(messageData().Message), string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null ) ); + return ; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.EventData ), InvocationInformation, this.ParameterSetName, __correlationId, __processRecordId, null ); + if (token.IsCancellationRequested) + { + return ; + } + WriteDebug($"{id}: {(messageData().Message ?? global::System.String.Empty)}"); + } + } + + /// Performs execution of the command. + protected override void ProcessRecord() + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + if (ShouldProcess($"Call remote 'EventSubscriptionsGetFullUrl' operation")) + { + using( var asyncCommandRuntime = new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token); + } + } + } + catch (global::System.AggregateException aggregateException) + { + // unroll the inner exceptions to get the root cause + foreach( var innerException in aggregateException.Flatten().InnerExceptions ) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(innerException,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + } + catch (global::System.Exception exception) when ((exception as System.Management.Automation.PipelineStoppedException)== null || (exception as System.Management.Automation.PipelineStoppedException).InnerException != null) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(exception,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + finally + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletProcessRecordEnd).Wait(); + } + } + + /// Performs execution of the command, working asynchronously if required. + /// + /// A that will be complete when handling of the method is completed. + /// + protected async global::System.Threading.Tasks.Task ProcessRecordAsync() + { + using( NoSynchronizationContext ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await this.Client.EventSubscriptionsGetFullUrl(Scope, EventSubscriptionName, onOk, onDefault, this, Pipeline); + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.UndeclaredResponseException urexception) + { + WriteError(new global::System.Management.Automation.ErrorRecord(urexception, urexception.StatusCode.ToString(), global::System.Management.Automation.ErrorCategory.InvalidOperation, new { Scope=Scope,EventSubscriptionName=EventSubscriptionName}) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(urexception.Message) { RecommendedAction = urexception.Action } + }); + } + finally + { + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Cancel(); + base.StopProcessing(); + } + + /// + /// a delegate that is called when the remote service returns default (any response code not handled elsewhere). + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onDefault(global::System.Net.Http.HttpResponseMessage responseMessage) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnDefault(responseMessage, ref _returnNow); + // if overrideOnDefault has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // Error Response : default + // Unrecognized Response. Create an error record based on what we have. + var ex = new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.RestException(responseMessage); + WriteError( new global::System.Management.Automation.ErrorRecord(ex, ex.Code, global::System.Management.Automation.ErrorCategory.InvalidOperation, new { Scope=Scope, EventSubscriptionName=EventSubscriptionName }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(ex.Message) { RecommendedAction = ex.Action } + }); + } + } + + /// a delegate that is called when the remote service returns 200 (OK). + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as 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.EventGrid.Models.Api20211015Preview.IEventSubscriptionFullUrl + WriteObject((await response).EndpointUrl); + } + } + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/cmdlets/GetAzEventGridEventSubscriptionFullUrl_GetViaIdentity.cs b/swaggerci/eventgrid/generated/cmdlets/GetAzEventGridEventSubscriptionFullUrl_GetViaIdentity.cs new file mode 100644 index 000000000000..224868741c35 --- /dev/null +++ b/swaggerci/eventgrid/generated/cmdlets/GetAzEventGridEventSubscriptionFullUrl_GetViaIdentity.cs @@ -0,0 +1,372 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Extensions; + using System; + + /// Get the full endpoint URL for an event subscription. + /// + /// [OpenAPI] GetFullUrl=>POST:"/{scope}/providers/Microsoft.EventGrid/eventSubscriptions/{eventSubscriptionName}/getFullUrl" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsCommon.Get, @"AzEventGridEventSubscriptionFullUrl_GetViaIdentity", SupportsShouldProcess = true)] + [global::System.Management.Automation.OutputType(typeof(string))] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Description(@"Get the full endpoint URL for an event subscription.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Generated] + public partial class GetAzEventGridEventSubscriptionFullUrl_GetViaIdentity : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener + { + /// A unique id generatd for the this cmdlet when it is instantiated. + private string __correlationId = System.Guid.NewGuid().ToString(); + + /// A copy of the Invocation Info (necessary to allow asJob to clone this cmdlet) + private global::System.Management.Automation.InvocationInfo __invocationInfo; + + /// A unique id generatd for the this cmdlet when ProcessRecord() is called. + private string __processRecordId; + + /// + /// The for this operation. + /// + private global::System.Threading.CancellationTokenSource _cancellationTokenSource = new global::System.Threading.CancellationTokenSource(); + + /// Wait for .NET debugger to attach + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Wait for .NET debugger to attach")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.EventGridManagementClient Client => Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.ClientAPI; + + /// + /// The credentials, account, tenant, and subscription used for communication with Azure + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The credentials, account, tenant, and subscription used for communication with Azure.")] + [global::System.Management.Automation.ValidateNotNull] + [global::System.Management.Automation.Alias("AzureRMContext", "AzureCredential")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Azure)] + public global::System.Management.Automation.PSObject DefaultProfile { get; set; } + + /// SendAsync Pipeline Steps to be appended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be appended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[] HttpPipelineAppend { get; set; } + + /// SendAsync Pipeline Steps to be prepended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be prepended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[] HttpPipelinePrepend { get; set; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.IEventGridIdentity _inputObject; + + /// Identity Parameter + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Identity Parameter", ValueFromPipeline = true)] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Path)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.IEventGridIdentity InputObject { get => this._inputObject; set => this._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.EventGrid.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Runtime.HttpPipeline Pipeline { get; set; } + + /// The URI for the proxy server to use + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "The URI for the proxy server to use")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Uri Proxy { get; set; } + + /// Credentials for a proxy server to use for the remote call + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Credentials for a proxy server to use for the remote call")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Management.Automation.PSCredential ProxyCredential { get; set; } + + /// Use the default credentials for the proxy + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Use the default credentials for the proxy")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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. + /// /// Determines if the rest of the onDefault method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnDefault(global::System.Net.Http.HttpResponseMessage responseMessage, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnOk will be called before the regular onOk has been processed, allowing customization of what happens + /// on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// 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() + { + var telemetryId = Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.GetTelemetryId.Invoke(); + if (telemetryId != "" && telemetryId != "internal") + { + __correlationId = telemetryId; + } + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + + } + + /// + /// Intializes a new instance of the cmdlet class. + /// + public GetAzEventGridEventSubscriptionFullUrl_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.EventGrid.Runtime.IEventListener.Signal(string id, global::System.Threading.CancellationToken token, global::System.Func messageData) + { + using( NoSynchronizationContext ) + { + if (token.IsCancellationRequested) + { + return ; + } + + switch ( id ) + { + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Information: + { + var data = messageData(); + WriteInformation(data.Message, new string[]{}); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Error: + { + WriteError(new global::System.Management.Automation.ErrorRecord( new global::System.Exception(messageData().Message), string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null ) ); + return ; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.EventData ), InvocationInformation, this.ParameterSetName, __correlationId, __processRecordId, null ); + if (token.IsCancellationRequested) + { + return ; + } + WriteDebug($"{id}: {(messageData().Message ?? global::System.String.Empty)}"); + } + } + + /// Performs execution of the command. + protected override void ProcessRecord() + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + if (ShouldProcess($"Call remote 'EventSubscriptionsGetFullUrl' operation")) + { + using( var asyncCommandRuntime = new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token); + } + } + } + catch (global::System.AggregateException aggregateException) + { + // unroll the inner exceptions to get the root cause + foreach( var innerException in aggregateException.Flatten().InnerExceptions ) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(innerException,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + } + catch (global::System.Exception exception) when ((exception as System.Management.Automation.PipelineStoppedException)== null || (exception as System.Management.Automation.PipelineStoppedException).InnerException != null) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(exception,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + finally + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletProcessRecordEnd).Wait(); + } + } + + /// Performs execution of the command, working asynchronously if required. + /// + /// A that will be complete when handling of the method is completed. + /// + protected async global::System.Threading.Tasks.Task ProcessRecordAsync() + { + using( NoSynchronizationContext ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + if (InputObject?.Id != null) + { + await this.Client.EventSubscriptionsGetFullUrlViaIdentity(InputObject.Id, onOk, onDefault, this, Pipeline); + } + else + { + // try to call with PATH parameters from Input Object + if (null == InputObject.Scope) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.Scope"),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, InputObject) ); + } + if (null == InputObject.EventSubscriptionName) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.EventSubscriptionName"),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, InputObject) ); + } + await this.Client.EventSubscriptionsGetFullUrl(InputObject.Scope ?? null, InputObject.EventSubscriptionName ?? null, onOk, onDefault, this, Pipeline); + } + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Cancel(); + base.StopProcessing(); + } + + /// + /// a delegate that is called when the remote service returns default (any response code not handled elsewhere). + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onDefault(global::System.Net.Http.HttpResponseMessage responseMessage) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnDefault(responseMessage, ref _returnNow); + // if overrideOnDefault has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // Error Response : default + // Unrecognized Response. Create an error record based on what we have. + var ex = new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.RestException(responseMessage); + WriteError( new global::System.Management.Automation.ErrorRecord(ex, ex.Code, global::System.Management.Automation.ErrorCategory.InvalidOperation, new { }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(ex.Message) { RecommendedAction = ex.Action } + }); + } + } + + /// a delegate that is called when the remote service returns 200 (OK). + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as 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.EventGrid.Models.Api20211015Preview.IEventSubscriptionFullUrl + WriteObject((await response).EndpointUrl); + } + } + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/cmdlets/GetAzEventGridEventSubscriptionGlobal_List.cs b/swaggerci/eventgrid/generated/cmdlets/GetAzEventGridEventSubscriptionGlobal_List.cs new file mode 100644 index 000000000000..8b37332aebbf --- /dev/null +++ b/swaggerci/eventgrid/generated/cmdlets/GetAzEventGridEventSubscriptionGlobal_List.cs @@ -0,0 +1,430 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Extensions; + using System; + + /// + /// List all aggregated global event subscriptions under a specific Azure subscription. + /// + /// + /// [OpenAPI] ListGlobalBySubscription=>GET:"/subscriptions/{subscriptionId}/providers/Microsoft.EventGrid/eventSubscriptions" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsCommon.Get, @"AzEventGridEventSubscriptionGlobal_List")] + [global::System.Management.Automation.OutputType(typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscription))] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Description(@"List all aggregated global event subscriptions under a specific Azure subscription.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Generated] + public partial class GetAzEventGridEventSubscriptionGlobal_List : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener + { + /// A unique id generatd for the this cmdlet when it is instantiated. + private string __correlationId = System.Guid.NewGuid().ToString(); + + /// A copy of the Invocation Info (necessary to allow asJob to clone this cmdlet) + private global::System.Management.Automation.InvocationInfo __invocationInfo; + + /// A unique id generatd for the this cmdlet when ProcessRecord() is called. + private string __processRecordId; + + /// + /// The for this operation. + /// + private global::System.Threading.CancellationTokenSource _cancellationTokenSource = new global::System.Threading.CancellationTokenSource(); + + /// A flag to tell whether it is the first onOK call. + private bool _isFirst = true; + + /// Link to retrieve next page. + private string _nextLink; + + /// Wait for .NET debugger to attach + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Wait for .NET debugger to attach")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.EventGridManagementClient Client => Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.ClientAPI; + + /// + /// The credentials, account, tenant, and subscription used for communication with Azure + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The credentials, account, tenant, and subscription used for communication with Azure.")] + [global::System.Management.Automation.ValidateNotNull] + [global::System.Management.Automation.Alias("AzureRMContext", "AzureCredential")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Azure)] + public global::System.Management.Automation.PSObject DefaultProfile { get; set; } + + /// Backing field for property. + private string _filter; + + /// + /// The query used to filter the search results using OData syntax. Filtering is permitted on the 'name' property only and + /// with limited number of OData operations. These operations are: the 'contains' function as well as the following logical + /// operations: not, and, or, eq (for equal), and ne (for not equal). No arithmetic operations are supported. The following + /// is a valid filter example: $filter=contains(namE, 'PATTERN') and name ne 'PATTERN-1'. The following is not a valid filter + /// example: $filter=location eq 'westus'. + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The query used to filter the search results using OData syntax. Filtering is permitted on the 'name' property only and with limited number of OData operations. These operations are: the 'contains' function as well as the following logical operations: not, and, or, eq (for equal), and ne (for not equal). No arithmetic operations are supported. The following is a valid filter example: $filter=contains(namE, 'PATTERN') and name ne 'PATTERN-1'. The following is not a valid filter example: $filter=location eq 'westus'.")] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The query used to filter the search results using OData syntax. Filtering is permitted on the 'name' property only and with limited number of OData operations. These operations are: the 'contains' function as well as the following logical operations: not, and, or, eq (for equal), and ne (for not equal). No arithmetic operations are supported. The following is a valid filter example: $filter=contains(namE, 'PATTERN') and name ne 'PATTERN-1'. The following is not a valid filter example: $filter=location eq 'westus'.", + SerializedName = @"$filter", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[] HttpPipelineAppend { get; set; } + + /// SendAsync Pipeline Steps to be prepended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be prepended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[] HttpPipelinePrepend { get; set; } + + /// Accessor for our copy of the InvocationInfo. + public global::System.Management.Automation.InvocationInfo InvocationInformation { get => __invocationInfo = __invocationInfo ?? this.MyInvocation ; set { __invocationInfo = value; } } + + /// + /// cancellation delegate. Stops the cmdlet when called. + /// + global::System.Action Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Runtime.HttpPipeline Pipeline { get; set; } + + /// The URI for the proxy server to use + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "The URI for the proxy server to use")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Uri Proxy { get; set; } + + /// Credentials for a proxy server to use for the remote call + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Credentials for a proxy server to use for the remote call")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Management.Automation.PSCredential ProxyCredential { get; set; } + + /// Use the default credentials for the proxy + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Use the default credentials for the proxy")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter ProxyUseDefaultCredentials { get; set; } + + /// Backing field for property. + private string[] _subscriptionId; + + /// + /// Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription ID forms part of the + /// URI for every service call. + /// + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.")] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.", + SerializedName = @"subscriptionId", + PossibleTypes = new [] { typeof(string) })] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.DefaultInfo( + Name = @"", + Description =@"", + Script = @"(Get-AzContext).Subscription.Id")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Path)] + public string[] SubscriptionId { get => this._subscriptionId; set => this._subscriptionId = value; } + + /// Backing field for property. + private int _top; + + /// + /// The number of results to return per page for the list operation. Valid range for top parameter is 1 to 100. If not specified, + /// the default number of results to be returned is 20 items per page. + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The number of results to return per page for the list operation. Valid range for top parameter is 1 to 100. If not specified, the default number of results to be returned is 20 items per page.")] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The number of results to return per page for the list operation. Valid range for top parameter is 1 to 100. If not specified, the default number of results to be returned is 20 items per page.", + SerializedName = @"$top", + PossibleTypes = new [] { typeof(int) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Query)] + public int Top { get => this._top; set => this._top = value; } + + /// + /// overrideOnDefault will be called before the regular onDefault has been processed, allowing customization of what + /// happens on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// /// Determines if the rest of the onDefault method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnDefault(global::System.Net.Http.HttpResponseMessage responseMessage, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnOk will be called before the regular onOk has been processed, allowing customization of what happens + /// on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// 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() + { + var telemetryId = Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.GetTelemetryId.Invoke(); + if (telemetryId != "" && telemetryId != "internal") + { + __correlationId = telemetryId; + } + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + + } + + /// + /// Intializes a new instance of the cmdlet class. + /// + public GetAzEventGridEventSubscriptionGlobal_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.EventGrid.Runtime.IEventListener.Signal(string id, global::System.Threading.CancellationToken token, global::System.Func messageData) + { + using( NoSynchronizationContext ) + { + if (token.IsCancellationRequested) + { + return ; + } + + switch ( id ) + { + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Information: + { + var data = messageData(); + WriteInformation(data.Message, new string[]{}); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Error: + { + WriteError(new global::System.Management.Automation.ErrorRecord( new global::System.Exception(messageData().Message), string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null ) ); + return ; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.EventData ), InvocationInformation, this.ParameterSetName, __correlationId, __processRecordId, null ); + if (token.IsCancellationRequested) + { + return ; + } + WriteDebug($"{id}: {(messageData().Message ?? global::System.String.Empty)}"); + } + } + + /// Performs execution of the command. + protected override void ProcessRecord() + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + using( var asyncCommandRuntime = new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token); + } + } + catch (global::System.AggregateException aggregateException) + { + // unroll the inner exceptions to get the root cause + foreach( var innerException in aggregateException.Flatten().InnerExceptions ) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(innerException,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + } + catch (global::System.Exception exception) when ((exception as System.Management.Automation.PipelineStoppedException)== null || (exception as System.Management.Automation.PipelineStoppedException).InnerException != null) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(exception,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + finally + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletProcessRecordEnd).Wait(); + } + } + + /// Performs execution of the command, working asynchronously if required. + /// + /// A that will be complete when handling of the method is completed. + /// + protected async global::System.Threading.Tasks.Task ProcessRecordAsync() + { + using( NoSynchronizationContext ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + foreach( var SubscriptionId in this.SubscriptionId ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await this.Client.EventSubscriptionsListGlobalBySubscription(SubscriptionId, this.InvocationInformation.BoundParameters.ContainsKey("Filter") ? Filter : null, this.InvocationInformation.BoundParameters.ContainsKey("Top") ? Top : default(int?), onOk, onDefault, this, Pipeline); + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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,Top=this.InvocationInformation.BoundParameters.ContainsKey("Top") ? Top : default(int?)}) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(urexception.Message) { RecommendedAction = urexception.Action } + }); + } + finally + { + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Cancel(); + base.StopProcessing(); + } + + /// + /// a delegate that is called when the remote service returns default (any response code not handled elsewhere). + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onDefault(global::System.Net.Http.HttpResponseMessage responseMessage) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnDefault(responseMessage, ref _returnNow); + // if overrideOnDefault has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // Error Response : default + // Unrecognized Response. Create an error record based on what we have. + var ex = new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.RestException(responseMessage); + 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, Top=this.InvocationInformation.BoundParameters.ContainsKey("Top") ? Top : default(int?) }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(ex.Message) { RecommendedAction = ex.Action } + }); + } + } + + /// a delegate that is called when the remote service returns 200 (OK). + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnOk(responseMessage, response, ref _returnNow); + // if overrideOnOk has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // onOk - response for 200 / application/json + // response should be returning an array of some kind. +Pageable + // pageable / value / nextLink + var result = await response; + WriteObject(result.Value,true); + _nextLink = result.NextLink; + if (_isFirst) + { + _isFirst = false; + while (_nextLink != null) + { + if (responseMessage.RequestMessage is System.Net.Http.HttpRequestMessage requestMessage ) + { + requestMessage = requestMessage.Clone(new global::System.Uri( _nextLink ),Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Method.Get ); + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.FollowingNextLink); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await this.Client.EventSubscriptionsListGlobalBySubscription_Call(requestMessage, onOk, onDefault, this, Pipeline); + } + } + } + } + } + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/cmdlets/GetAzEventGridEventSubscriptionGlobal_List1.cs b/swaggerci/eventgrid/generated/cmdlets/GetAzEventGridEventSubscriptionGlobal_List1.cs new file mode 100644 index 000000000000..5cd3eb5435eb --- /dev/null +++ b/swaggerci/eventgrid/generated/cmdlets/GetAzEventGridEventSubscriptionGlobal_List1.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.EventGrid.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Extensions; + using System; + + /// + /// List all global event subscriptions under an Azure subscription for a topic type. + /// + /// + /// [OpenAPI] ListGlobalBySubscriptionForTopicType=>GET:"/subscriptions/{subscriptionId}/providers/Microsoft.EventGrid/topicTypes/{topicTypeName}/eventSubscriptions" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsCommon.Get, @"AzEventGridEventSubscriptionGlobal_List1")] + [global::System.Management.Automation.OutputType(typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscription))] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Description(@"List all global event subscriptions under an Azure subscription for a topic type.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Generated] + public partial class GetAzEventGridEventSubscriptionGlobal_List1 : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener + { + /// A unique id generatd for the this cmdlet when it is instantiated. + private string __correlationId = System.Guid.NewGuid().ToString(); + + /// A copy of the Invocation Info (necessary to allow asJob to clone this cmdlet) + private global::System.Management.Automation.InvocationInfo __invocationInfo; + + /// A unique id generatd for the this cmdlet when ProcessRecord() is called. + private string __processRecordId; + + /// + /// The for this operation. + /// + private global::System.Threading.CancellationTokenSource _cancellationTokenSource = new global::System.Threading.CancellationTokenSource(); + + /// A flag to tell whether it is the first onOK call. + private bool _isFirst = true; + + /// Link to retrieve next page. + private string _nextLink; + + /// Wait for .NET debugger to attach + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Wait for .NET debugger to attach")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.EventGridManagementClient Client => Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.ClientAPI; + + /// + /// The credentials, account, tenant, and subscription used for communication with Azure + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The credentials, account, tenant, and subscription used for communication with Azure.")] + [global::System.Management.Automation.ValidateNotNull] + [global::System.Management.Automation.Alias("AzureRMContext", "AzureCredential")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Azure)] + public global::System.Management.Automation.PSObject DefaultProfile { get; set; } + + /// Backing field for property. + private string _filter; + + /// + /// The query used to filter the search results using OData syntax. Filtering is permitted on the 'name' property only and + /// with limited number of OData operations. These operations are: the 'contains' function as well as the following logical + /// operations: not, and, or, eq (for equal), and ne (for not equal). No arithmetic operations are supported. The following + /// is a valid filter example: $filter=contains(namE, 'PATTERN') and name ne 'PATTERN-1'. The following is not a valid filter + /// example: $filter=location eq 'westus'. + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The query used to filter the search results using OData syntax. Filtering is permitted on the 'name' property only and with limited number of OData operations. These operations are: the 'contains' function as well as the following logical operations: not, and, or, eq (for equal), and ne (for not equal). No arithmetic operations are supported. The following is a valid filter example: $filter=contains(namE, 'PATTERN') and name ne 'PATTERN-1'. The following is not a valid filter example: $filter=location eq 'westus'.")] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The query used to filter the search results using OData syntax. Filtering is permitted on the 'name' property only and with limited number of OData operations. These operations are: the 'contains' function as well as the following logical operations: not, and, or, eq (for equal), and ne (for not equal). No arithmetic operations are supported. The following is a valid filter example: $filter=contains(namE, 'PATTERN') and name ne 'PATTERN-1'. The following is not a valid filter example: $filter=location eq 'westus'.", + SerializedName = @"$filter", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[] HttpPipelineAppend { get; set; } + + /// SendAsync Pipeline Steps to be prepended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be prepended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[] HttpPipelinePrepend { get; set; } + + /// Accessor for our copy of the InvocationInfo. + public global::System.Management.Automation.InvocationInfo InvocationInformation { get => __invocationInfo = __invocationInfo ?? this.MyInvocation ; set { __invocationInfo = value; } } + + /// + /// cancellation delegate. Stops the cmdlet when called. + /// + global::System.Action Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Runtime.HttpPipeline Pipeline { get; set; } + + /// The URI for the proxy server to use + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "The URI for the proxy server to use")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Uri Proxy { get; set; } + + /// Credentials for a proxy server to use for the remote call + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Credentials for a proxy server to use for the remote call")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Management.Automation.PSCredential ProxyCredential { get; set; } + + /// Use the default credentials for the proxy + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Use the default credentials for the proxy")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter ProxyUseDefaultCredentials { get; set; } + + /// Backing field for property. + private string[] _subscriptionId; + + /// + /// Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription ID forms part of the + /// URI for every service call. + /// + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.")] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.", + SerializedName = @"subscriptionId", + PossibleTypes = new [] { typeof(string) })] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.DefaultInfo( + Name = @"", + Description =@"", + Script = @"(Get-AzContext).Subscription.Id")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Path)] + public string[] SubscriptionId { get => this._subscriptionId; set => this._subscriptionId = value; } + + /// Backing field for property. + private int _top; + + /// + /// The number of results to return per page for the list operation. Valid range for top parameter is 1 to 100. If not specified, + /// the default number of results to be returned is 20 items per page. + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The number of results to return per page for the list operation. Valid range for top parameter is 1 to 100. If not specified, the default number of results to be returned is 20 items per page.")] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The number of results to return per page for the list operation. Valid range for top parameter is 1 to 100. If not specified, the default number of results to be returned is 20 items per page.", + SerializedName = @"$top", + PossibleTypes = new [] { typeof(int) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Query)] + public int Top { get => this._top; set => this._top = value; } + + /// Backing field for property. + private string _topicTypeName; + + /// Name of the topic type. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Name of the topic type.")] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Name of the topic type.", + SerializedName = @"topicTypeName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Path)] + public string TopicTypeName { get => this._topicTypeName; set => this._topicTypeName = value; } + + /// + /// overrideOnDefault will be called before the regular onDefault has been processed, allowing customization of what + /// happens on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// /// Determines if the rest of the onDefault method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnDefault(global::System.Net.Http.HttpResponseMessage responseMessage, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnOk will be called before the regular onOk has been processed, allowing customization of what happens + /// on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// 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() + { + var telemetryId = Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.GetTelemetryId.Invoke(); + if (telemetryId != "" && telemetryId != "internal") + { + __correlationId = telemetryId; + } + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + + } + + /// + /// Intializes a new instance of the cmdlet class. + /// + public GetAzEventGridEventSubscriptionGlobal_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.EventGrid.Runtime.IEventListener.Signal(string id, global::System.Threading.CancellationToken token, global::System.Func messageData) + { + using( NoSynchronizationContext ) + { + if (token.IsCancellationRequested) + { + return ; + } + + switch ( id ) + { + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Information: + { + var data = messageData(); + WriteInformation(data.Message, new string[]{}); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Error: + { + WriteError(new global::System.Management.Automation.ErrorRecord( new global::System.Exception(messageData().Message), string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null ) ); + return ; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.EventData ), InvocationInformation, this.ParameterSetName, __correlationId, __processRecordId, null ); + if (token.IsCancellationRequested) + { + return ; + } + WriteDebug($"{id}: {(messageData().Message ?? global::System.String.Empty)}"); + } + } + + /// Performs execution of the command. + protected override void ProcessRecord() + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + using( var asyncCommandRuntime = new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token); + } + } + catch (global::System.AggregateException aggregateException) + { + // unroll the inner exceptions to get the root cause + foreach( var innerException in aggregateException.Flatten().InnerExceptions ) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(innerException,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + } + catch (global::System.Exception exception) when ((exception as System.Management.Automation.PipelineStoppedException)== null || (exception as System.Management.Automation.PipelineStoppedException).InnerException != null) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(exception,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + finally + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletProcessRecordEnd).Wait(); + } + } + + /// Performs execution of the command, working asynchronously if required. + /// + /// A that will be complete when handling of the method is completed. + /// + protected async global::System.Threading.Tasks.Task ProcessRecordAsync() + { + using( NoSynchronizationContext ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + foreach( var SubscriptionId in this.SubscriptionId ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await this.Client.EventSubscriptionsListGlobalBySubscriptionForTopicType(SubscriptionId, TopicTypeName, this.InvocationInformation.BoundParameters.ContainsKey("Filter") ? Filter : null, this.InvocationInformation.BoundParameters.ContainsKey("Top") ? Top : default(int?), onOk, onDefault, this, Pipeline); + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.UndeclaredResponseException urexception) + { + WriteError(new global::System.Management.Automation.ErrorRecord(urexception, urexception.StatusCode.ToString(), global::System.Management.Automation.ErrorCategory.InvalidOperation, new { SubscriptionId=SubscriptionId,TopicTypeName=TopicTypeName,Filter=this.InvocationInformation.BoundParameters.ContainsKey("Filter") ? Filter : null,Top=this.InvocationInformation.BoundParameters.ContainsKey("Top") ? Top : default(int?)}) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(urexception.Message) { RecommendedAction = urexception.Action } + }); + } + finally + { + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Cancel(); + base.StopProcessing(); + } + + /// + /// a delegate that is called when the remote service returns default (any response code not handled elsewhere). + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onDefault(global::System.Net.Http.HttpResponseMessage responseMessage) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnDefault(responseMessage, ref _returnNow); + // if overrideOnDefault has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // Error Response : default + // Unrecognized Response. Create an error record based on what we have. + var ex = new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.RestException(responseMessage); + WriteError( new global::System.Management.Automation.ErrorRecord(ex, ex.Code, global::System.Management.Automation.ErrorCategory.InvalidOperation, new { SubscriptionId=SubscriptionId, TopicTypeName=TopicTypeName, Filter=this.InvocationInformation.BoundParameters.ContainsKey("Filter") ? Filter : null, Top=this.InvocationInformation.BoundParameters.ContainsKey("Top") ? Top : default(int?) }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(ex.Message) { RecommendedAction = ex.Action } + }); + } + } + + /// a delegate that is called when the remote service returns 200 (OK). + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnOk(responseMessage, response, ref _returnNow); + // if overrideOnOk has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // onOk - response for 200 / application/json + // response should be returning an array of some kind. +Pageable + // pageable / value / nextLink + var result = await response; + WriteObject(result.Value,true); + _nextLink = result.NextLink; + if (_isFirst) + { + _isFirst = false; + while (_nextLink != null) + { + if (responseMessage.RequestMessage is System.Net.Http.HttpRequestMessage requestMessage ) + { + requestMessage = requestMessage.Clone(new global::System.Uri( _nextLink ),Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Method.Get ); + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.FollowingNextLink); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await this.Client.EventSubscriptionsListGlobalBySubscriptionForTopicType_Call(requestMessage, onOk, onDefault, this, Pipeline); + } + } + } + } + } + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/cmdlets/GetAzEventGridEventSubscriptionGlobal_List2.cs b/swaggerci/eventgrid/generated/cmdlets/GetAzEventGridEventSubscriptionGlobal_List2.cs new file mode 100644 index 000000000000..7af258ed3198 --- /dev/null +++ b/swaggerci/eventgrid/generated/cmdlets/GetAzEventGridEventSubscriptionGlobal_List2.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.EventGrid.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Extensions; + using System; + + /// + /// List all global event subscriptions under a specific Azure subscription and resource group. + /// + /// + /// [OpenAPI] ListGlobalByResourceGroup=>GET:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.EventGrid/eventSubscriptions" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsCommon.Get, @"AzEventGridEventSubscriptionGlobal_List2")] + [global::System.Management.Automation.OutputType(typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscription))] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Description(@"List all global event subscriptions under a specific Azure subscription and resource group.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Generated] + public partial class GetAzEventGridEventSubscriptionGlobal_List2 : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener + { + /// A unique id generatd for the this cmdlet when it is instantiated. + private string __correlationId = System.Guid.NewGuid().ToString(); + + /// A copy of the Invocation Info (necessary to allow asJob to clone this cmdlet) + private global::System.Management.Automation.InvocationInfo __invocationInfo; + + /// A unique id generatd for the this cmdlet when ProcessRecord() is called. + private string __processRecordId; + + /// + /// The for this operation. + /// + private global::System.Threading.CancellationTokenSource _cancellationTokenSource = new global::System.Threading.CancellationTokenSource(); + + /// A flag to tell whether it is the first onOK call. + private bool _isFirst = true; + + /// Link to retrieve next page. + private string _nextLink; + + /// Wait for .NET debugger to attach + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Wait for .NET debugger to attach")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.EventGridManagementClient Client => Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.ClientAPI; + + /// + /// The credentials, account, tenant, and subscription used for communication with Azure + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The credentials, account, tenant, and subscription used for communication with Azure.")] + [global::System.Management.Automation.ValidateNotNull] + [global::System.Management.Automation.Alias("AzureRMContext", "AzureCredential")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Azure)] + public global::System.Management.Automation.PSObject DefaultProfile { get; set; } + + /// Backing field for property. + private string _filter; + + /// + /// The query used to filter the search results using OData syntax. Filtering is permitted on the 'name' property only and + /// with limited number of OData operations. These operations are: the 'contains' function as well as the following logical + /// operations: not, and, or, eq (for equal), and ne (for not equal). No arithmetic operations are supported. The following + /// is a valid filter example: $filter=contains(namE, 'PATTERN') and name ne 'PATTERN-1'. The following is not a valid filter + /// example: $filter=location eq 'westus'. + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The query used to filter the search results using OData syntax. Filtering is permitted on the 'name' property only and with limited number of OData operations. These operations are: the 'contains' function as well as the following logical operations: not, and, or, eq (for equal), and ne (for not equal). No arithmetic operations are supported. The following is a valid filter example: $filter=contains(namE, 'PATTERN') and name ne 'PATTERN-1'. The following is not a valid filter example: $filter=location eq 'westus'.")] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The query used to filter the search results using OData syntax. Filtering is permitted on the 'name' property only and with limited number of OData operations. These operations are: the 'contains' function as well as the following logical operations: not, and, or, eq (for equal), and ne (for not equal). No arithmetic operations are supported. The following is a valid filter example: $filter=contains(namE, 'PATTERN') and name ne 'PATTERN-1'. The following is not a valid filter example: $filter=location eq 'westus'.", + SerializedName = @"$filter", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[] HttpPipelineAppend { get; set; } + + /// SendAsync Pipeline Steps to be prepended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be prepended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[] HttpPipelinePrepend { get; set; } + + /// Accessor for our copy of the InvocationInfo. + public global::System.Management.Automation.InvocationInfo InvocationInformation { get => __invocationInfo = __invocationInfo ?? this.MyInvocation ; set { __invocationInfo = value; } } + + /// + /// cancellation delegate. Stops the cmdlet when called. + /// + global::System.Action Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Runtime.HttpPipeline Pipeline { get; set; } + + /// The URI for the proxy server to use + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "The URI for the proxy server to use")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Uri Proxy { get; set; } + + /// Credentials for a proxy server to use for the remote call + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Credentials for a proxy server to use for the remote call")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Management.Automation.PSCredential ProxyCredential { get; set; } + + /// Use the default credentials for the proxy + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Use the default credentials for the proxy")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter ProxyUseDefaultCredentials { get; set; } + + /// Backing field for property. + private string _resourceGroupName; + + /// The name of the resource group within the user's subscription. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the resource group within the user's subscription.")] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the resource group within the user's subscription.", + SerializedName = @"resourceGroupName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Path)] + public string ResourceGroupName { get => this._resourceGroupName; set => this._resourceGroupName = value; } + + /// Backing field for property. + private string[] _subscriptionId; + + /// + /// Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription ID forms part of the + /// URI for every service call. + /// + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.")] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.", + SerializedName = @"subscriptionId", + PossibleTypes = new [] { typeof(string) })] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.DefaultInfo( + Name = @"", + Description =@"", + Script = @"(Get-AzContext).Subscription.Id")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Path)] + public string[] SubscriptionId { get => this._subscriptionId; set => this._subscriptionId = value; } + + /// Backing field for property. + private int _top; + + /// + /// The number of results to return per page for the list operation. Valid range for top parameter is 1 to 100. If not specified, + /// the default number of results to be returned is 20 items per page. + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The number of results to return per page for the list operation. Valid range for top parameter is 1 to 100. If not specified, the default number of results to be returned is 20 items per page.")] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The number of results to return per page for the list operation. Valid range for top parameter is 1 to 100. If not specified, the default number of results to be returned is 20 items per page.", + SerializedName = @"$top", + PossibleTypes = new [] { typeof(int) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Query)] + public int Top { get => this._top; set => this._top = value; } + + /// + /// overrideOnDefault will be called before the regular onDefault has been processed, allowing customization of what + /// happens on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// /// Determines if the rest of the onDefault method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnDefault(global::System.Net.Http.HttpResponseMessage responseMessage, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnOk will be called before the regular onOk has been processed, allowing customization of what happens + /// on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// 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() + { + var telemetryId = Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.GetTelemetryId.Invoke(); + if (telemetryId != "" && telemetryId != "internal") + { + __correlationId = telemetryId; + } + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + + } + + /// + /// Intializes a new instance of the cmdlet class. + /// + public GetAzEventGridEventSubscriptionGlobal_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.EventGrid.Runtime.IEventListener.Signal(string id, global::System.Threading.CancellationToken token, global::System.Func messageData) + { + using( NoSynchronizationContext ) + { + if (token.IsCancellationRequested) + { + return ; + } + + switch ( id ) + { + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Information: + { + var data = messageData(); + WriteInformation(data.Message, new string[]{}); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Error: + { + WriteError(new global::System.Management.Automation.ErrorRecord( new global::System.Exception(messageData().Message), string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null ) ); + return ; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.EventData ), InvocationInformation, this.ParameterSetName, __correlationId, __processRecordId, null ); + if (token.IsCancellationRequested) + { + return ; + } + WriteDebug($"{id}: {(messageData().Message ?? global::System.String.Empty)}"); + } + } + + /// Performs execution of the command. + protected override void ProcessRecord() + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + using( var asyncCommandRuntime = new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token); + } + } + catch (global::System.AggregateException aggregateException) + { + // unroll the inner exceptions to get the root cause + foreach( var innerException in aggregateException.Flatten().InnerExceptions ) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(innerException,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + } + catch (global::System.Exception exception) when ((exception as System.Management.Automation.PipelineStoppedException)== null || (exception as System.Management.Automation.PipelineStoppedException).InnerException != null) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(exception,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + finally + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletProcessRecordEnd).Wait(); + } + } + + /// Performs execution of the command, working asynchronously if required. + /// + /// A that will be complete when handling of the method is completed. + /// + protected async global::System.Threading.Tasks.Task ProcessRecordAsync() + { + using( NoSynchronizationContext ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + foreach( var SubscriptionId in this.SubscriptionId ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await this.Client.EventSubscriptionsListGlobalByResourceGroup(SubscriptionId, ResourceGroupName, this.InvocationInformation.BoundParameters.ContainsKey("Filter") ? Filter : null, this.InvocationInformation.BoundParameters.ContainsKey("Top") ? Top : default(int?), onOk, onDefault, this, Pipeline); + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.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,Top=this.InvocationInformation.BoundParameters.ContainsKey("Top") ? Top : default(int?)}) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(urexception.Message) { RecommendedAction = urexception.Action } + }); + } + finally + { + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Cancel(); + base.StopProcessing(); + } + + /// + /// a delegate that is called when the remote service returns default (any response code not handled elsewhere). + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onDefault(global::System.Net.Http.HttpResponseMessage responseMessage) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnDefault(responseMessage, ref _returnNow); + // if overrideOnDefault has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // Error Response : default + // Unrecognized Response. Create an error record based on what we have. + var ex = new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.RestException(responseMessage); + 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, Top=this.InvocationInformation.BoundParameters.ContainsKey("Top") ? Top : default(int?) }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(ex.Message) { RecommendedAction = ex.Action } + }); + } + } + + /// a delegate that is called when the remote service returns 200 (OK). + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnOk(responseMessage, response, ref _returnNow); + // if overrideOnOk has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // onOk - response for 200 / application/json + // response should be returning an array of some kind. +Pageable + // pageable / value / nextLink + var result = await response; + WriteObject(result.Value,true); + _nextLink = result.NextLink; + if (_isFirst) + { + _isFirst = false; + while (_nextLink != null) + { + if (responseMessage.RequestMessage is System.Net.Http.HttpRequestMessage requestMessage ) + { + requestMessage = requestMessage.Clone(new global::System.Uri( _nextLink ),Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Method.Get ); + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.FollowingNextLink); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await this.Client.EventSubscriptionsListGlobalByResourceGroup_Call(requestMessage, onOk, onDefault, this, Pipeline); + } + } + } + } + } + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/cmdlets/GetAzEventGridEventSubscriptionGlobal_List3.cs b/swaggerci/eventgrid/generated/cmdlets/GetAzEventGridEventSubscriptionGlobal_List3.cs new file mode 100644 index 000000000000..94d47ac6d2b5 --- /dev/null +++ b/swaggerci/eventgrid/generated/cmdlets/GetAzEventGridEventSubscriptionGlobal_List3.cs @@ -0,0 +1,458 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Extensions; + using System; + + /// + /// List all global event subscriptions under a resource group for a specific topic type. + /// + /// + /// [OpenAPI] ListGlobalByResourceGroupForTopicType=>GET:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.EventGrid/topicTypes/{topicTypeName}/eventSubscriptions" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsCommon.Get, @"AzEventGridEventSubscriptionGlobal_List3")] + [global::System.Management.Automation.OutputType(typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscription))] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Description(@"List all global event subscriptions under a resource group for a specific topic type.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Generated] + public partial class GetAzEventGridEventSubscriptionGlobal_List3 : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener + { + /// A unique id generatd for the this cmdlet when it is instantiated. + private string __correlationId = System.Guid.NewGuid().ToString(); + + /// A copy of the Invocation Info (necessary to allow asJob to clone this cmdlet) + private global::System.Management.Automation.InvocationInfo __invocationInfo; + + /// A unique id generatd for the this cmdlet when ProcessRecord() is called. + private string __processRecordId; + + /// + /// The for this operation. + /// + private global::System.Threading.CancellationTokenSource _cancellationTokenSource = new global::System.Threading.CancellationTokenSource(); + + /// A flag to tell whether it is the first onOK call. + private bool _isFirst = true; + + /// Link to retrieve next page. + private string _nextLink; + + /// Wait for .NET debugger to attach + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Wait for .NET debugger to attach")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.EventGridManagementClient Client => Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.ClientAPI; + + /// + /// The credentials, account, tenant, and subscription used for communication with Azure + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The credentials, account, tenant, and subscription used for communication with Azure.")] + [global::System.Management.Automation.ValidateNotNull] + [global::System.Management.Automation.Alias("AzureRMContext", "AzureCredential")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Azure)] + public global::System.Management.Automation.PSObject DefaultProfile { get; set; } + + /// Backing field for property. + private string _filter; + + /// + /// The query used to filter the search results using OData syntax. Filtering is permitted on the 'name' property only and + /// with limited number of OData operations. These operations are: the 'contains' function as well as the following logical + /// operations: not, and, or, eq (for equal), and ne (for not equal). No arithmetic operations are supported. The following + /// is a valid filter example: $filter=contains(namE, 'PATTERN') and name ne 'PATTERN-1'. The following is not a valid filter + /// example: $filter=location eq 'westus'. + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The query used to filter the search results using OData syntax. Filtering is permitted on the 'name' property only and with limited number of OData operations. These operations are: the 'contains' function as well as the following logical operations: not, and, or, eq (for equal), and ne (for not equal). No arithmetic operations are supported. The following is a valid filter example: $filter=contains(namE, 'PATTERN') and name ne 'PATTERN-1'. The following is not a valid filter example: $filter=location eq 'westus'.")] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The query used to filter the search results using OData syntax. Filtering is permitted on the 'name' property only and with limited number of OData operations. These operations are: the 'contains' function as well as the following logical operations: not, and, or, eq (for equal), and ne (for not equal). No arithmetic operations are supported. The following is a valid filter example: $filter=contains(namE, 'PATTERN') and name ne 'PATTERN-1'. The following is not a valid filter example: $filter=location eq 'westus'.", + SerializedName = @"$filter", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[] HttpPipelineAppend { get; set; } + + /// SendAsync Pipeline Steps to be prepended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be prepended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[] HttpPipelinePrepend { get; set; } + + /// Accessor for our copy of the InvocationInfo. + public global::System.Management.Automation.InvocationInfo InvocationInformation { get => __invocationInfo = __invocationInfo ?? this.MyInvocation ; set { __invocationInfo = value; } } + + /// + /// cancellation delegate. Stops the cmdlet when called. + /// + global::System.Action Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Runtime.HttpPipeline Pipeline { get; set; } + + /// The URI for the proxy server to use + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "The URI for the proxy server to use")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Uri Proxy { get; set; } + + /// Credentials for a proxy server to use for the remote call + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Credentials for a proxy server to use for the remote call")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Management.Automation.PSCredential ProxyCredential { get; set; } + + /// Use the default credentials for the proxy + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Use the default credentials for the proxy")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter ProxyUseDefaultCredentials { get; set; } + + /// Backing field for property. + private string _resourceGroupName; + + /// The name of the resource group within the user's subscription. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the resource group within the user's subscription.")] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the resource group within the user's subscription.", + SerializedName = @"resourceGroupName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Path)] + public string ResourceGroupName { get => this._resourceGroupName; set => this._resourceGroupName = value; } + + /// Backing field for property. + private string[] _subscriptionId; + + /// + /// Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription ID forms part of the + /// URI for every service call. + /// + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.")] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.", + SerializedName = @"subscriptionId", + PossibleTypes = new [] { typeof(string) })] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.DefaultInfo( + Name = @"", + Description =@"", + Script = @"(Get-AzContext).Subscription.Id")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Path)] + public string[] SubscriptionId { get => this._subscriptionId; set => this._subscriptionId = value; } + + /// Backing field for property. + private int _top; + + /// + /// The number of results to return per page for the list operation. Valid range for top parameter is 1 to 100. If not specified, + /// the default number of results to be returned is 20 items per page. + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The number of results to return per page for the list operation. Valid range for top parameter is 1 to 100. If not specified, the default number of results to be returned is 20 items per page.")] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The number of results to return per page for the list operation. Valid range for top parameter is 1 to 100. If not specified, the default number of results to be returned is 20 items per page.", + SerializedName = @"$top", + PossibleTypes = new [] { typeof(int) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Query)] + public int Top { get => this._top; set => this._top = value; } + + /// Backing field for property. + private string _topicTypeName; + + /// Name of the topic type. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Name of the topic type.")] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Name of the topic type.", + SerializedName = @"topicTypeName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Path)] + public string TopicTypeName { get => this._topicTypeName; set => this._topicTypeName = value; } + + /// + /// overrideOnDefault will be called before the regular onDefault has been processed, allowing customization of what + /// happens on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// /// Determines if the rest of the onDefault method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnDefault(global::System.Net.Http.HttpResponseMessage responseMessage, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnOk will be called before the regular onOk has been processed, allowing customization of what happens + /// on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// 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() + { + var telemetryId = Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.GetTelemetryId.Invoke(); + if (telemetryId != "" && telemetryId != "internal") + { + __correlationId = telemetryId; + } + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + + } + + /// + /// Intializes a new instance of the cmdlet class. + /// + public GetAzEventGridEventSubscriptionGlobal_List3() + { + + } + + /// Handles/Dispatches events during the call to the REST service. + /// The message id + /// The message cancellation token. When this call is cancelled, this should be true + /// Detailed message data for the message event. + /// + /// A that will be complete when handling of the message is completed. + /// + async global::System.Threading.Tasks.Task Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener.Signal(string id, global::System.Threading.CancellationToken token, global::System.Func messageData) + { + using( NoSynchronizationContext ) + { + if (token.IsCancellationRequested) + { + return ; + } + + switch ( id ) + { + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Information: + { + var data = messageData(); + WriteInformation(data.Message, new string[]{}); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Error: + { + WriteError(new global::System.Management.Automation.ErrorRecord( new global::System.Exception(messageData().Message), string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null ) ); + return ; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.EventData ), InvocationInformation, this.ParameterSetName, __correlationId, __processRecordId, null ); + if (token.IsCancellationRequested) + { + return ; + } + WriteDebug($"{id}: {(messageData().Message ?? global::System.String.Empty)}"); + } + } + + /// Performs execution of the command. + protected override void ProcessRecord() + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + using( var asyncCommandRuntime = new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token); + } + } + catch (global::System.AggregateException aggregateException) + { + // unroll the inner exceptions to get the root cause + foreach( var innerException in aggregateException.Flatten().InnerExceptions ) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(innerException,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + } + catch (global::System.Exception exception) when ((exception as System.Management.Automation.PipelineStoppedException)== null || (exception as System.Management.Automation.PipelineStoppedException).InnerException != null) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(exception,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + finally + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletProcessRecordEnd).Wait(); + } + } + + /// Performs execution of the command, working asynchronously if required. + /// + /// A that will be complete when handling of the method is completed. + /// + protected async global::System.Threading.Tasks.Task ProcessRecordAsync() + { + using( NoSynchronizationContext ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + foreach( var SubscriptionId in this.SubscriptionId ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await this.Client.EventSubscriptionsListGlobalByResourceGroupForTopicType(SubscriptionId, ResourceGroupName, TopicTypeName, this.InvocationInformation.BoundParameters.ContainsKey("Filter") ? Filter : null, this.InvocationInformation.BoundParameters.ContainsKey("Top") ? Top : default(int?), onOk, onDefault, this, Pipeline); + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.UndeclaredResponseException urexception) + { + WriteError(new global::System.Management.Automation.ErrorRecord(urexception, urexception.StatusCode.ToString(), global::System.Management.Automation.ErrorCategory.InvalidOperation, new { SubscriptionId=SubscriptionId,ResourceGroupName=ResourceGroupName,TopicTypeName=TopicTypeName,Filter=this.InvocationInformation.BoundParameters.ContainsKey("Filter") ? Filter : null,Top=this.InvocationInformation.BoundParameters.ContainsKey("Top") ? Top : default(int?)}) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(urexception.Message) { RecommendedAction = urexception.Action } + }); + } + finally + { + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Cancel(); + base.StopProcessing(); + } + + /// + /// a delegate that is called when the remote service returns default (any response code not handled elsewhere). + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onDefault(global::System.Net.Http.HttpResponseMessage responseMessage) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnDefault(responseMessage, ref _returnNow); + // if overrideOnDefault has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // Error Response : default + // Unrecognized Response. Create an error record based on what we have. + var ex = new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.RestException(responseMessage); + WriteError( new global::System.Management.Automation.ErrorRecord(ex, ex.Code, global::System.Management.Automation.ErrorCategory.InvalidOperation, new { SubscriptionId=SubscriptionId, ResourceGroupName=ResourceGroupName, TopicTypeName=TopicTypeName, Filter=this.InvocationInformation.BoundParameters.ContainsKey("Filter") ? Filter : null, Top=this.InvocationInformation.BoundParameters.ContainsKey("Top") ? Top : default(int?) }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(ex.Message) { RecommendedAction = ex.Action } + }); + } + } + + /// a delegate that is called when the remote service returns 200 (OK). + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnOk(responseMessage, response, ref _returnNow); + // if overrideOnOk has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // onOk - response for 200 / application/json + // response should be returning an array of some kind. +Pageable + // pageable / value / nextLink + var result = await response; + WriteObject(result.Value,true); + _nextLink = result.NextLink; + if (_isFirst) + { + _isFirst = false; + while (_nextLink != null) + { + if (responseMessage.RequestMessage is System.Net.Http.HttpRequestMessage requestMessage ) + { + requestMessage = requestMessage.Clone(new global::System.Uri( _nextLink ),Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Method.Get ); + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.FollowingNextLink); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await this.Client.EventSubscriptionsListGlobalByResourceGroupForTopicType_Call(requestMessage, onOk, onDefault, this, Pipeline); + } + } + } + } + } + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/cmdlets/GetAzEventGridEventSubscriptionRegional_List.cs b/swaggerci/eventgrid/generated/cmdlets/GetAzEventGridEventSubscriptionRegional_List.cs new file mode 100644 index 000000000000..24dfcce88a91 --- /dev/null +++ b/swaggerci/eventgrid/generated/cmdlets/GetAzEventGridEventSubscriptionRegional_List.cs @@ -0,0 +1,444 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Extensions; + using System; + + /// + /// List all event subscriptions from the given location under a specific Azure subscription. + /// + /// + /// [OpenAPI] ListRegionalBySubscription=>GET:"/subscriptions/{subscriptionId}/providers/Microsoft.EventGrid/locations/{location}/eventSubscriptions" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsCommon.Get, @"AzEventGridEventSubscriptionRegional_List")] + [global::System.Management.Automation.OutputType(typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscription))] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Description(@"List all event subscriptions from the given location under a specific Azure subscription.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Generated] + public partial class GetAzEventGridEventSubscriptionRegional_List : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener + { + /// A unique id generatd for the this cmdlet when it is instantiated. + private string __correlationId = System.Guid.NewGuid().ToString(); + + /// A copy of the Invocation Info (necessary to allow asJob to clone this cmdlet) + private global::System.Management.Automation.InvocationInfo __invocationInfo; + + /// A unique id generatd for the this cmdlet when ProcessRecord() is called. + private string __processRecordId; + + /// + /// The for this operation. + /// + private global::System.Threading.CancellationTokenSource _cancellationTokenSource = new global::System.Threading.CancellationTokenSource(); + + /// A flag to tell whether it is the first onOK call. + private bool _isFirst = true; + + /// Link to retrieve next page. + private string _nextLink; + + /// Wait for .NET debugger to attach + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Wait for .NET debugger to attach")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.EventGridManagementClient Client => Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.ClientAPI; + + /// + /// The credentials, account, tenant, and subscription used for communication with Azure + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The credentials, account, tenant, and subscription used for communication with Azure.")] + [global::System.Management.Automation.ValidateNotNull] + [global::System.Management.Automation.Alias("AzureRMContext", "AzureCredential")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Azure)] + public global::System.Management.Automation.PSObject DefaultProfile { get; set; } + + /// Backing field for property. + private string _filter; + + /// + /// The query used to filter the search results using OData syntax. Filtering is permitted on the 'name' property only and + /// with limited number of OData operations. These operations are: the 'contains' function as well as the following logical + /// operations: not, and, or, eq (for equal), and ne (for not equal). No arithmetic operations are supported. The following + /// is a valid filter example: $filter=contains(namE, 'PATTERN') and name ne 'PATTERN-1'. The following is not a valid filter + /// example: $filter=location eq 'westus'. + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The query used to filter the search results using OData syntax. Filtering is permitted on the 'name' property only and with limited number of OData operations. These operations are: the 'contains' function as well as the following logical operations: not, and, or, eq (for equal), and ne (for not equal). No arithmetic operations are supported. The following is a valid filter example: $filter=contains(namE, 'PATTERN') and name ne 'PATTERN-1'. The following is not a valid filter example: $filter=location eq 'westus'.")] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The query used to filter the search results using OData syntax. Filtering is permitted on the 'name' property only and with limited number of OData operations. These operations are: the 'contains' function as well as the following logical operations: not, and, or, eq (for equal), and ne (for not equal). No arithmetic operations are supported. The following is a valid filter example: $filter=contains(namE, 'PATTERN') and name ne 'PATTERN-1'. The following is not a valid filter example: $filter=location eq 'westus'.", + SerializedName = @"$filter", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[] HttpPipelineAppend { get; set; } + + /// SendAsync Pipeline Steps to be prepended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be prepended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[] HttpPipelinePrepend { get; set; } + + /// Accessor for our copy of the InvocationInfo. + public global::System.Management.Automation.InvocationInfo InvocationInformation { get => __invocationInfo = __invocationInfo ?? this.MyInvocation ; set { __invocationInfo = value; } } + + /// Backing field for property. + private string _location; + + /// Name of the location. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Name of the location.")] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Name of the location.", + SerializedName = @"location", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Path)] + public string Location { get => this._location; set => this._location = value; } + + /// + /// cancellation delegate. Stops the cmdlet when called. + /// + global::System.Action Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Runtime.HttpPipeline Pipeline { get; set; } + + /// The URI for the proxy server to use + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "The URI for the proxy server to use")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Uri Proxy { get; set; } + + /// Credentials for a proxy server to use for the remote call + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Credentials for a proxy server to use for the remote call")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Management.Automation.PSCredential ProxyCredential { get; set; } + + /// Use the default credentials for the proxy + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Use the default credentials for the proxy")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter ProxyUseDefaultCredentials { get; set; } + + /// Backing field for property. + private string[] _subscriptionId; + + /// + /// Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription ID forms part of the + /// URI for every service call. + /// + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.")] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.", + SerializedName = @"subscriptionId", + PossibleTypes = new [] { typeof(string) })] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.DefaultInfo( + Name = @"", + Description =@"", + Script = @"(Get-AzContext).Subscription.Id")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Path)] + public string[] SubscriptionId { get => this._subscriptionId; set => this._subscriptionId = value; } + + /// Backing field for property. + private int _top; + + /// + /// The number of results to return per page for the list operation. Valid range for top parameter is 1 to 100. If not specified, + /// the default number of results to be returned is 20 items per page. + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The number of results to return per page for the list operation. Valid range for top parameter is 1 to 100. If not specified, the default number of results to be returned is 20 items per page.")] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The number of results to return per page for the list operation. Valid range for top parameter is 1 to 100. If not specified, the default number of results to be returned is 20 items per page.", + SerializedName = @"$top", + PossibleTypes = new [] { typeof(int) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Query)] + public int Top { get => this._top; set => this._top = value; } + + /// + /// overrideOnDefault will be called before the regular onDefault has been processed, allowing customization of what + /// happens on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// /// Determines if the rest of the onDefault method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnDefault(global::System.Net.Http.HttpResponseMessage responseMessage, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnOk will be called before the regular onOk has been processed, allowing customization of what happens + /// on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// 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() + { + var telemetryId = Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.GetTelemetryId.Invoke(); + if (telemetryId != "" && telemetryId != "internal") + { + __correlationId = telemetryId; + } + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + + } + + /// + /// Intializes a new instance of the cmdlet class. + /// + public GetAzEventGridEventSubscriptionRegional_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.EventGrid.Runtime.IEventListener.Signal(string id, global::System.Threading.CancellationToken token, global::System.Func messageData) + { + using( NoSynchronizationContext ) + { + if (token.IsCancellationRequested) + { + return ; + } + + switch ( id ) + { + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Information: + { + var data = messageData(); + WriteInformation(data.Message, new string[]{}); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Error: + { + WriteError(new global::System.Management.Automation.ErrorRecord( new global::System.Exception(messageData().Message), string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null ) ); + return ; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.EventData ), InvocationInformation, this.ParameterSetName, __correlationId, __processRecordId, null ); + if (token.IsCancellationRequested) + { + return ; + } + WriteDebug($"{id}: {(messageData().Message ?? global::System.String.Empty)}"); + } + } + + /// Performs execution of the command. + protected override void ProcessRecord() + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + using( var asyncCommandRuntime = new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token); + } + } + catch (global::System.AggregateException aggregateException) + { + // unroll the inner exceptions to get the root cause + foreach( var innerException in aggregateException.Flatten().InnerExceptions ) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(innerException,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + } + catch (global::System.Exception exception) when ((exception as System.Management.Automation.PipelineStoppedException)== null || (exception as System.Management.Automation.PipelineStoppedException).InnerException != null) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(exception,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + finally + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletProcessRecordEnd).Wait(); + } + } + + /// Performs execution of the command, working asynchronously if required. + /// + /// A that will be complete when handling of the method is completed. + /// + protected async global::System.Threading.Tasks.Task ProcessRecordAsync() + { + using( NoSynchronizationContext ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + foreach( var SubscriptionId in this.SubscriptionId ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await this.Client.EventSubscriptionsListRegionalBySubscription(SubscriptionId, Location, this.InvocationInformation.BoundParameters.ContainsKey("Filter") ? Filter : null, this.InvocationInformation.BoundParameters.ContainsKey("Top") ? Top : default(int?), onOk, onDefault, this, Pipeline); + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.UndeclaredResponseException urexception) + { + WriteError(new global::System.Management.Automation.ErrorRecord(urexception, urexception.StatusCode.ToString(), global::System.Management.Automation.ErrorCategory.InvalidOperation, new { SubscriptionId=SubscriptionId,Location=Location,Filter=this.InvocationInformation.BoundParameters.ContainsKey("Filter") ? Filter : null,Top=this.InvocationInformation.BoundParameters.ContainsKey("Top") ? Top : default(int?)}) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(urexception.Message) { RecommendedAction = urexception.Action } + }); + } + finally + { + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Cancel(); + base.StopProcessing(); + } + + /// + /// a delegate that is called when the remote service returns default (any response code not handled elsewhere). + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onDefault(global::System.Net.Http.HttpResponseMessage responseMessage) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnDefault(responseMessage, ref _returnNow); + // if overrideOnDefault has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // Error Response : default + // Unrecognized Response. Create an error record based on what we have. + var ex = new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.RestException(responseMessage); + WriteError( new global::System.Management.Automation.ErrorRecord(ex, ex.Code, global::System.Management.Automation.ErrorCategory.InvalidOperation, new { SubscriptionId=SubscriptionId, Location=Location, Filter=this.InvocationInformation.BoundParameters.ContainsKey("Filter") ? Filter : null, Top=this.InvocationInformation.BoundParameters.ContainsKey("Top") ? Top : default(int?) }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(ex.Message) { RecommendedAction = ex.Action } + }); + } + } + + /// a delegate that is called when the remote service returns 200 (OK). + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnOk(responseMessage, response, ref _returnNow); + // if overrideOnOk has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // onOk - response for 200 / application/json + // response should be returning an array of some kind. +Pageable + // pageable / value / nextLink + var result = await response; + WriteObject(result.Value,true); + _nextLink = result.NextLink; + if (_isFirst) + { + _isFirst = false; + while (_nextLink != null) + { + if (responseMessage.RequestMessage is System.Net.Http.HttpRequestMessage requestMessage ) + { + requestMessage = requestMessage.Clone(new global::System.Uri( _nextLink ),Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Method.Get ); + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.FollowingNextLink); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await this.Client.EventSubscriptionsListRegionalBySubscription_Call(requestMessage, onOk, onDefault, this, Pipeline); + } + } + } + } + } + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/cmdlets/GetAzEventGridEventSubscriptionRegional_List1.cs b/swaggerci/eventgrid/generated/cmdlets/GetAzEventGridEventSubscriptionRegional_List1.cs new file mode 100644 index 000000000000..8712c40a6a2a --- /dev/null +++ b/swaggerci/eventgrid/generated/cmdlets/GetAzEventGridEventSubscriptionRegional_List1.cs @@ -0,0 +1,458 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Extensions; + using System; + + /// + /// List all event subscriptions from the given location under a specific Azure subscription and resource group. + /// + /// + /// [OpenAPI] ListRegionalByResourceGroup=>GET:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.EventGrid/locations/{location}/eventSubscriptions" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsCommon.Get, @"AzEventGridEventSubscriptionRegional_List1")] + [global::System.Management.Automation.OutputType(typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscription))] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Description(@"List all event subscriptions from the given location under a specific Azure subscription and resource group.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Generated] + public partial class GetAzEventGridEventSubscriptionRegional_List1 : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener + { + /// A unique id generatd for the this cmdlet when it is instantiated. + private string __correlationId = System.Guid.NewGuid().ToString(); + + /// A copy of the Invocation Info (necessary to allow asJob to clone this cmdlet) + private global::System.Management.Automation.InvocationInfo __invocationInfo; + + /// A unique id generatd for the this cmdlet when ProcessRecord() is called. + private string __processRecordId; + + /// + /// The for this operation. + /// + private global::System.Threading.CancellationTokenSource _cancellationTokenSource = new global::System.Threading.CancellationTokenSource(); + + /// A flag to tell whether it is the first onOK call. + private bool _isFirst = true; + + /// Link to retrieve next page. + private string _nextLink; + + /// Wait for .NET debugger to attach + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Wait for .NET debugger to attach")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.EventGridManagementClient Client => Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.ClientAPI; + + /// + /// The credentials, account, tenant, and subscription used for communication with Azure + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The credentials, account, tenant, and subscription used for communication with Azure.")] + [global::System.Management.Automation.ValidateNotNull] + [global::System.Management.Automation.Alias("AzureRMContext", "AzureCredential")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Azure)] + public global::System.Management.Automation.PSObject DefaultProfile { get; set; } + + /// Backing field for property. + private string _filter; + + /// + /// The query used to filter the search results using OData syntax. Filtering is permitted on the 'name' property only and + /// with limited number of OData operations. These operations are: the 'contains' function as well as the following logical + /// operations: not, and, or, eq (for equal), and ne (for not equal). No arithmetic operations are supported. The following + /// is a valid filter example: $filter=contains(namE, 'PATTERN') and name ne 'PATTERN-1'. The following is not a valid filter + /// example: $filter=location eq 'westus'. + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The query used to filter the search results using OData syntax. Filtering is permitted on the 'name' property only and with limited number of OData operations. These operations are: the 'contains' function as well as the following logical operations: not, and, or, eq (for equal), and ne (for not equal). No arithmetic operations are supported. The following is a valid filter example: $filter=contains(namE, 'PATTERN') and name ne 'PATTERN-1'. The following is not a valid filter example: $filter=location eq 'westus'.")] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The query used to filter the search results using OData syntax. Filtering is permitted on the 'name' property only and with limited number of OData operations. These operations are: the 'contains' function as well as the following logical operations: not, and, or, eq (for equal), and ne (for not equal). No arithmetic operations are supported. The following is a valid filter example: $filter=contains(namE, 'PATTERN') and name ne 'PATTERN-1'. The following is not a valid filter example: $filter=location eq 'westus'.", + SerializedName = @"$filter", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[] HttpPipelineAppend { get; set; } + + /// SendAsync Pipeline Steps to be prepended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be prepended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[] HttpPipelinePrepend { get; set; } + + /// Accessor for our copy of the InvocationInfo. + public global::System.Management.Automation.InvocationInfo InvocationInformation { get => __invocationInfo = __invocationInfo ?? this.MyInvocation ; set { __invocationInfo = value; } } + + /// Backing field for property. + private string _location; + + /// Name of the location. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Name of the location.")] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Name of the location.", + SerializedName = @"location", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Path)] + public string Location { get => this._location; set => this._location = value; } + + /// + /// cancellation delegate. Stops the cmdlet when called. + /// + global::System.Action Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Runtime.HttpPipeline Pipeline { get; set; } + + /// The URI for the proxy server to use + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "The URI for the proxy server to use")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Uri Proxy { get; set; } + + /// Credentials for a proxy server to use for the remote call + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Credentials for a proxy server to use for the remote call")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Management.Automation.PSCredential ProxyCredential { get; set; } + + /// Use the default credentials for the proxy + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Use the default credentials for the proxy")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter ProxyUseDefaultCredentials { get; set; } + + /// Backing field for property. + private string _resourceGroupName; + + /// The name of the resource group within the user's subscription. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the resource group within the user's subscription.")] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the resource group within the user's subscription.", + SerializedName = @"resourceGroupName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Path)] + public string ResourceGroupName { get => this._resourceGroupName; set => this._resourceGroupName = value; } + + /// Backing field for property. + private string[] _subscriptionId; + + /// + /// Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription ID forms part of the + /// URI for every service call. + /// + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.")] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.", + SerializedName = @"subscriptionId", + PossibleTypes = new [] { typeof(string) })] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.DefaultInfo( + Name = @"", + Description =@"", + Script = @"(Get-AzContext).Subscription.Id")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Path)] + public string[] SubscriptionId { get => this._subscriptionId; set => this._subscriptionId = value; } + + /// Backing field for property. + private int _top; + + /// + /// The number of results to return per page for the list operation. Valid range for top parameter is 1 to 100. If not specified, + /// the default number of results to be returned is 20 items per page. + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The number of results to return per page for the list operation. Valid range for top parameter is 1 to 100. If not specified, the default number of results to be returned is 20 items per page.")] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The number of results to return per page for the list operation. Valid range for top parameter is 1 to 100. If not specified, the default number of results to be returned is 20 items per page.", + SerializedName = @"$top", + PossibleTypes = new [] { typeof(int) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Query)] + public int Top { get => this._top; set => this._top = value; } + + /// + /// overrideOnDefault will be called before the regular onDefault has been processed, allowing customization of what + /// happens on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// /// Determines if the rest of the onDefault method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnDefault(global::System.Net.Http.HttpResponseMessage responseMessage, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnOk will be called before the regular onOk has been processed, allowing customization of what happens + /// on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// 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() + { + var telemetryId = Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.GetTelemetryId.Invoke(); + if (telemetryId != "" && telemetryId != "internal") + { + __correlationId = telemetryId; + } + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + + } + + /// + /// Intializes a new instance of the cmdlet class. + /// + public GetAzEventGridEventSubscriptionRegional_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.EventGrid.Runtime.IEventListener.Signal(string id, global::System.Threading.CancellationToken token, global::System.Func messageData) + { + using( NoSynchronizationContext ) + { + if (token.IsCancellationRequested) + { + return ; + } + + switch ( id ) + { + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Information: + { + var data = messageData(); + WriteInformation(data.Message, new string[]{}); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Error: + { + WriteError(new global::System.Management.Automation.ErrorRecord( new global::System.Exception(messageData().Message), string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null ) ); + return ; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.EventData ), InvocationInformation, this.ParameterSetName, __correlationId, __processRecordId, null ); + if (token.IsCancellationRequested) + { + return ; + } + WriteDebug($"{id}: {(messageData().Message ?? global::System.String.Empty)}"); + } + } + + /// Performs execution of the command. + protected override void ProcessRecord() + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + using( var asyncCommandRuntime = new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token); + } + } + catch (global::System.AggregateException aggregateException) + { + // unroll the inner exceptions to get the root cause + foreach( var innerException in aggregateException.Flatten().InnerExceptions ) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(innerException,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + } + catch (global::System.Exception exception) when ((exception as System.Management.Automation.PipelineStoppedException)== null || (exception as System.Management.Automation.PipelineStoppedException).InnerException != null) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(exception,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + finally + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletProcessRecordEnd).Wait(); + } + } + + /// Performs execution of the command, working asynchronously if required. + /// + /// A that will be complete when handling of the method is completed. + /// + protected async global::System.Threading.Tasks.Task ProcessRecordAsync() + { + using( NoSynchronizationContext ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + foreach( var SubscriptionId in this.SubscriptionId ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await this.Client.EventSubscriptionsListRegionalByResourceGroup(SubscriptionId, ResourceGroupName, Location, this.InvocationInformation.BoundParameters.ContainsKey("Filter") ? Filter : null, this.InvocationInformation.BoundParameters.ContainsKey("Top") ? Top : default(int?), onOk, onDefault, this, Pipeline); + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.UndeclaredResponseException urexception) + { + WriteError(new global::System.Management.Automation.ErrorRecord(urexception, urexception.StatusCode.ToString(), global::System.Management.Automation.ErrorCategory.InvalidOperation, new { SubscriptionId=SubscriptionId,ResourceGroupName=ResourceGroupName,Location=Location,Filter=this.InvocationInformation.BoundParameters.ContainsKey("Filter") ? Filter : null,Top=this.InvocationInformation.BoundParameters.ContainsKey("Top") ? Top : default(int?)}) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(urexception.Message) { RecommendedAction = urexception.Action } + }); + } + finally + { + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Cancel(); + base.StopProcessing(); + } + + /// + /// a delegate that is called when the remote service returns default (any response code not handled elsewhere). + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onDefault(global::System.Net.Http.HttpResponseMessage responseMessage) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnDefault(responseMessage, ref _returnNow); + // if overrideOnDefault has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // Error Response : default + // Unrecognized Response. Create an error record based on what we have. + var ex = new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.RestException(responseMessage); + WriteError( new global::System.Management.Automation.ErrorRecord(ex, ex.Code, global::System.Management.Automation.ErrorCategory.InvalidOperation, new { SubscriptionId=SubscriptionId, ResourceGroupName=ResourceGroupName, Location=Location, Filter=this.InvocationInformation.BoundParameters.ContainsKey("Filter") ? Filter : null, Top=this.InvocationInformation.BoundParameters.ContainsKey("Top") ? Top : default(int?) }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(ex.Message) { RecommendedAction = ex.Action } + }); + } + } + + /// a delegate that is called when the remote service returns 200 (OK). + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnOk(responseMessage, response, ref _returnNow); + // if overrideOnOk has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // onOk - response for 200 / application/json + // response should be returning an array of some kind. +Pageable + // pageable / value / nextLink + var result = await response; + WriteObject(result.Value,true); + _nextLink = result.NextLink; + if (_isFirst) + { + _isFirst = false; + while (_nextLink != null) + { + if (responseMessage.RequestMessage is System.Net.Http.HttpRequestMessage requestMessage ) + { + requestMessage = requestMessage.Clone(new global::System.Uri( _nextLink ),Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Method.Get ); + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.FollowingNextLink); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await this.Client.EventSubscriptionsListRegionalByResourceGroup_Call(requestMessage, onOk, onDefault, this, Pipeline); + } + } + } + } + } + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/cmdlets/GetAzEventGridEventSubscriptionRegional_List2.cs b/swaggerci/eventgrid/generated/cmdlets/GetAzEventGridEventSubscriptionRegional_List2.cs new file mode 100644 index 000000000000..f554868a5e5e --- /dev/null +++ b/swaggerci/eventgrid/generated/cmdlets/GetAzEventGridEventSubscriptionRegional_List2.cs @@ -0,0 +1,458 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Extensions; + using System; + + /// + /// List all event subscriptions from the given location under a specific Azure subscription and topic type. + /// + /// + /// [OpenAPI] ListRegionalBySubscriptionForTopicType=>GET:"/subscriptions/{subscriptionId}/providers/Microsoft.EventGrid/locations/{location}/topicTypes/{topicTypeName}/eventSubscriptions" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsCommon.Get, @"AzEventGridEventSubscriptionRegional_List2")] + [global::System.Management.Automation.OutputType(typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscription))] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Description(@"List all event subscriptions from the given location under a specific Azure subscription and topic type.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Generated] + public partial class GetAzEventGridEventSubscriptionRegional_List2 : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener + { + /// A unique id generatd for the this cmdlet when it is instantiated. + private string __correlationId = System.Guid.NewGuid().ToString(); + + /// A copy of the Invocation Info (necessary to allow asJob to clone this cmdlet) + private global::System.Management.Automation.InvocationInfo __invocationInfo; + + /// A unique id generatd for the this cmdlet when ProcessRecord() is called. + private string __processRecordId; + + /// + /// The for this operation. + /// + private global::System.Threading.CancellationTokenSource _cancellationTokenSource = new global::System.Threading.CancellationTokenSource(); + + /// A flag to tell whether it is the first onOK call. + private bool _isFirst = true; + + /// Link to retrieve next page. + private string _nextLink; + + /// Wait for .NET debugger to attach + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Wait for .NET debugger to attach")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.EventGridManagementClient Client => Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.ClientAPI; + + /// + /// The credentials, account, tenant, and subscription used for communication with Azure + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The credentials, account, tenant, and subscription used for communication with Azure.")] + [global::System.Management.Automation.ValidateNotNull] + [global::System.Management.Automation.Alias("AzureRMContext", "AzureCredential")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Azure)] + public global::System.Management.Automation.PSObject DefaultProfile { get; set; } + + /// Backing field for property. + private string _filter; + + /// + /// The query used to filter the search results using OData syntax. Filtering is permitted on the 'name' property only and + /// with limited number of OData operations. These operations are: the 'contains' function as well as the following logical + /// operations: not, and, or, eq (for equal), and ne (for not equal). No arithmetic operations are supported. The following + /// is a valid filter example: $filter=contains(namE, 'PATTERN') and name ne 'PATTERN-1'. The following is not a valid filter + /// example: $filter=location eq 'westus'. + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The query used to filter the search results using OData syntax. Filtering is permitted on the 'name' property only and with limited number of OData operations. These operations are: the 'contains' function as well as the following logical operations: not, and, or, eq (for equal), and ne (for not equal). No arithmetic operations are supported. The following is a valid filter example: $filter=contains(namE, 'PATTERN') and name ne 'PATTERN-1'. The following is not a valid filter example: $filter=location eq 'westus'.")] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The query used to filter the search results using OData syntax. Filtering is permitted on the 'name' property only and with limited number of OData operations. These operations are: the 'contains' function as well as the following logical operations: not, and, or, eq (for equal), and ne (for not equal). No arithmetic operations are supported. The following is a valid filter example: $filter=contains(namE, 'PATTERN') and name ne 'PATTERN-1'. The following is not a valid filter example: $filter=location eq 'westus'.", + SerializedName = @"$filter", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[] HttpPipelineAppend { get; set; } + + /// SendAsync Pipeline Steps to be prepended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be prepended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[] HttpPipelinePrepend { get; set; } + + /// Accessor for our copy of the InvocationInfo. + public global::System.Management.Automation.InvocationInfo InvocationInformation { get => __invocationInfo = __invocationInfo ?? this.MyInvocation ; set { __invocationInfo = value; } } + + /// Backing field for property. + private string _location; + + /// Name of the location. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Name of the location.")] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Name of the location.", + SerializedName = @"location", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Path)] + public string Location { get => this._location; set => this._location = value; } + + /// + /// cancellation delegate. Stops the cmdlet when called. + /// + global::System.Action Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Runtime.HttpPipeline Pipeline { get; set; } + + /// The URI for the proxy server to use + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "The URI for the proxy server to use")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Uri Proxy { get; set; } + + /// Credentials for a proxy server to use for the remote call + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Credentials for a proxy server to use for the remote call")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Management.Automation.PSCredential ProxyCredential { get; set; } + + /// Use the default credentials for the proxy + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Use the default credentials for the proxy")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter ProxyUseDefaultCredentials { get; set; } + + /// Backing field for property. + private string[] _subscriptionId; + + /// + /// Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription ID forms part of the + /// URI for every service call. + /// + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.")] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.", + SerializedName = @"subscriptionId", + PossibleTypes = new [] { typeof(string) })] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.DefaultInfo( + Name = @"", + Description =@"", + Script = @"(Get-AzContext).Subscription.Id")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Path)] + public string[] SubscriptionId { get => this._subscriptionId; set => this._subscriptionId = value; } + + /// Backing field for property. + private int _top; + + /// + /// The number of results to return per page for the list operation. Valid range for top parameter is 1 to 100. If not specified, + /// the default number of results to be returned is 20 items per page. + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The number of results to return per page for the list operation. Valid range for top parameter is 1 to 100. If not specified, the default number of results to be returned is 20 items per page.")] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The number of results to return per page for the list operation. Valid range for top parameter is 1 to 100. If not specified, the default number of results to be returned is 20 items per page.", + SerializedName = @"$top", + PossibleTypes = new [] { typeof(int) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Query)] + public int Top { get => this._top; set => this._top = value; } + + /// Backing field for property. + private string _topicTypeName; + + /// Name of the topic type. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Name of the topic type.")] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Name of the topic type.", + SerializedName = @"topicTypeName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Path)] + public string TopicTypeName { get => this._topicTypeName; set => this._topicTypeName = value; } + + /// + /// overrideOnDefault will be called before the regular onDefault has been processed, allowing customization of what + /// happens on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// /// Determines if the rest of the onDefault method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnDefault(global::System.Net.Http.HttpResponseMessage responseMessage, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnOk will be called before the regular onOk has been processed, allowing customization of what happens + /// on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// 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() + { + var telemetryId = Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.GetTelemetryId.Invoke(); + if (telemetryId != "" && telemetryId != "internal") + { + __correlationId = telemetryId; + } + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + + } + + /// + /// Intializes a new instance of the cmdlet class. + /// + public GetAzEventGridEventSubscriptionRegional_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.EventGrid.Runtime.IEventListener.Signal(string id, global::System.Threading.CancellationToken token, global::System.Func messageData) + { + using( NoSynchronizationContext ) + { + if (token.IsCancellationRequested) + { + return ; + } + + switch ( id ) + { + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Information: + { + var data = messageData(); + WriteInformation(data.Message, new string[]{}); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Error: + { + WriteError(new global::System.Management.Automation.ErrorRecord( new global::System.Exception(messageData().Message), string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null ) ); + return ; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.EventData ), InvocationInformation, this.ParameterSetName, __correlationId, __processRecordId, null ); + if (token.IsCancellationRequested) + { + return ; + } + WriteDebug($"{id}: {(messageData().Message ?? global::System.String.Empty)}"); + } + } + + /// Performs execution of the command. + protected override void ProcessRecord() + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + using( var asyncCommandRuntime = new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token); + } + } + catch (global::System.AggregateException aggregateException) + { + // unroll the inner exceptions to get the root cause + foreach( var innerException in aggregateException.Flatten().InnerExceptions ) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(innerException,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + } + catch (global::System.Exception exception) when ((exception as System.Management.Automation.PipelineStoppedException)== null || (exception as System.Management.Automation.PipelineStoppedException).InnerException != null) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(exception,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + finally + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletProcessRecordEnd).Wait(); + } + } + + /// Performs execution of the command, working asynchronously if required. + /// + /// A that will be complete when handling of the method is completed. + /// + protected async global::System.Threading.Tasks.Task ProcessRecordAsync() + { + using( NoSynchronizationContext ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + foreach( var SubscriptionId in this.SubscriptionId ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await this.Client.EventSubscriptionsListRegionalBySubscriptionForTopicType(SubscriptionId, Location, TopicTypeName, this.InvocationInformation.BoundParameters.ContainsKey("Filter") ? Filter : null, this.InvocationInformation.BoundParameters.ContainsKey("Top") ? Top : default(int?), onOk, onDefault, this, Pipeline); + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.UndeclaredResponseException urexception) + { + WriteError(new global::System.Management.Automation.ErrorRecord(urexception, urexception.StatusCode.ToString(), global::System.Management.Automation.ErrorCategory.InvalidOperation, new { SubscriptionId=SubscriptionId,Location=Location,TopicTypeName=TopicTypeName,Filter=this.InvocationInformation.BoundParameters.ContainsKey("Filter") ? Filter : null,Top=this.InvocationInformation.BoundParameters.ContainsKey("Top") ? Top : default(int?)}) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(urexception.Message) { RecommendedAction = urexception.Action } + }); + } + finally + { + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Cancel(); + base.StopProcessing(); + } + + /// + /// a delegate that is called when the remote service returns default (any response code not handled elsewhere). + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onDefault(global::System.Net.Http.HttpResponseMessage responseMessage) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnDefault(responseMessage, ref _returnNow); + // if overrideOnDefault has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // Error Response : default + // Unrecognized Response. Create an error record based on what we have. + var ex = new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.RestException(responseMessage); + WriteError( new global::System.Management.Automation.ErrorRecord(ex, ex.Code, global::System.Management.Automation.ErrorCategory.InvalidOperation, new { SubscriptionId=SubscriptionId, Location=Location, TopicTypeName=TopicTypeName, Filter=this.InvocationInformation.BoundParameters.ContainsKey("Filter") ? Filter : null, Top=this.InvocationInformation.BoundParameters.ContainsKey("Top") ? Top : default(int?) }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(ex.Message) { RecommendedAction = ex.Action } + }); + } + } + + /// a delegate that is called when the remote service returns 200 (OK). + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnOk(responseMessage, response, ref _returnNow); + // if overrideOnOk has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // onOk - response for 200 / application/json + // response should be returning an array of some kind. +Pageable + // pageable / value / nextLink + var result = await response; + WriteObject(result.Value,true); + _nextLink = result.NextLink; + if (_isFirst) + { + _isFirst = false; + while (_nextLink != null) + { + if (responseMessage.RequestMessage is System.Net.Http.HttpRequestMessage requestMessage ) + { + requestMessage = requestMessage.Clone(new global::System.Uri( _nextLink ),Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Method.Get ); + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.FollowingNextLink); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await this.Client.EventSubscriptionsListRegionalBySubscriptionForTopicType_Call(requestMessage, onOk, onDefault, this, Pipeline); + } + } + } + } + } + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/cmdlets/GetAzEventGridEventSubscriptionRegional_List3.cs b/swaggerci/eventgrid/generated/cmdlets/GetAzEventGridEventSubscriptionRegional_List3.cs new file mode 100644 index 000000000000..23f56060ebd5 --- /dev/null +++ b/swaggerci/eventgrid/generated/cmdlets/GetAzEventGridEventSubscriptionRegional_List3.cs @@ -0,0 +1,473 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Extensions; + using System; + + /// + /// List all event subscriptions from the given location under a specific Azure subscription and resource group and topic + /// type. + /// + /// + /// [OpenAPI] ListRegionalByResourceGroupForTopicType=>GET:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.EventGrid/locations/{location}/topicTypes/{topicTypeName}/eventSubscriptions" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsCommon.Get, @"AzEventGridEventSubscriptionRegional_List3")] + [global::System.Management.Automation.OutputType(typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscription))] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Description(@"List all event subscriptions from the given location under a specific Azure subscription and resource group and topic type.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Generated] + public partial class GetAzEventGridEventSubscriptionRegional_List3 : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener + { + /// A unique id generatd for the this cmdlet when it is instantiated. + private string __correlationId = System.Guid.NewGuid().ToString(); + + /// A copy of the Invocation Info (necessary to allow asJob to clone this cmdlet) + private global::System.Management.Automation.InvocationInfo __invocationInfo; + + /// A unique id generatd for the this cmdlet when ProcessRecord() is called. + private string __processRecordId; + + /// + /// The for this operation. + /// + private global::System.Threading.CancellationTokenSource _cancellationTokenSource = new global::System.Threading.CancellationTokenSource(); + + /// A flag to tell whether it is the first onOK call. + private bool _isFirst = true; + + /// Link to retrieve next page. + private string _nextLink; + + /// Wait for .NET debugger to attach + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Wait for .NET debugger to attach")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.EventGridManagementClient Client => Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.ClientAPI; + + /// + /// The credentials, account, tenant, and subscription used for communication with Azure + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The credentials, account, tenant, and subscription used for communication with Azure.")] + [global::System.Management.Automation.ValidateNotNull] + [global::System.Management.Automation.Alias("AzureRMContext", "AzureCredential")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Azure)] + public global::System.Management.Automation.PSObject DefaultProfile { get; set; } + + /// Backing field for property. + private string _filter; + + /// + /// The query used to filter the search results using OData syntax. Filtering is permitted on the 'name' property only and + /// with limited number of OData operations. These operations are: the 'contains' function as well as the following logical + /// operations: not, and, or, eq (for equal), and ne (for not equal). No arithmetic operations are supported. The following + /// is a valid filter example: $filter=contains(namE, 'PATTERN') and name ne 'PATTERN-1'. The following is not a valid filter + /// example: $filter=location eq 'westus'. + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The query used to filter the search results using OData syntax. Filtering is permitted on the 'name' property only and with limited number of OData operations. These operations are: the 'contains' function as well as the following logical operations: not, and, or, eq (for equal), and ne (for not equal). No arithmetic operations are supported. The following is a valid filter example: $filter=contains(namE, 'PATTERN') and name ne 'PATTERN-1'. The following is not a valid filter example: $filter=location eq 'westus'.")] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The query used to filter the search results using OData syntax. Filtering is permitted on the 'name' property only and with limited number of OData operations. These operations are: the 'contains' function as well as the following logical operations: not, and, or, eq (for equal), and ne (for not equal). No arithmetic operations are supported. The following is a valid filter example: $filter=contains(namE, 'PATTERN') and name ne 'PATTERN-1'. The following is not a valid filter example: $filter=location eq 'westus'.", + SerializedName = @"$filter", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[] HttpPipelineAppend { get; set; } + + /// SendAsync Pipeline Steps to be prepended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be prepended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[] HttpPipelinePrepend { get; set; } + + /// Accessor for our copy of the InvocationInfo. + public global::System.Management.Automation.InvocationInfo InvocationInformation { get => __invocationInfo = __invocationInfo ?? this.MyInvocation ; set { __invocationInfo = value; } } + + /// Backing field for property. + private string _location; + + /// Name of the location. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Name of the location.")] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Name of the location.", + SerializedName = @"location", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Path)] + public string Location { get => this._location; set => this._location = value; } + + /// + /// cancellation delegate. Stops the cmdlet when called. + /// + global::System.Action Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Runtime.HttpPipeline Pipeline { get; set; } + + /// The URI for the proxy server to use + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "The URI for the proxy server to use")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Uri Proxy { get; set; } + + /// Credentials for a proxy server to use for the remote call + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Credentials for a proxy server to use for the remote call")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Management.Automation.PSCredential ProxyCredential { get; set; } + + /// Use the default credentials for the proxy + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Use the default credentials for the proxy")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter ProxyUseDefaultCredentials { get; set; } + + /// Backing field for property. + private string _resourceGroupName; + + /// The name of the resource group within the user's subscription. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the resource group within the user's subscription.")] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the resource group within the user's subscription.", + SerializedName = @"resourceGroupName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Path)] + public string ResourceGroupName { get => this._resourceGroupName; set => this._resourceGroupName = value; } + + /// Backing field for property. + private string[] _subscriptionId; + + /// + /// Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription ID forms part of the + /// URI for every service call. + /// + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.")] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.", + SerializedName = @"subscriptionId", + PossibleTypes = new [] { typeof(string) })] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.DefaultInfo( + Name = @"", + Description =@"", + Script = @"(Get-AzContext).Subscription.Id")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Path)] + public string[] SubscriptionId { get => this._subscriptionId; set => this._subscriptionId = value; } + + /// Backing field for property. + private int _top; + + /// + /// The number of results to return per page for the list operation. Valid range for top parameter is 1 to 100. If not specified, + /// the default number of results to be returned is 20 items per page. + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The number of results to return per page for the list operation. Valid range for top parameter is 1 to 100. If not specified, the default number of results to be returned is 20 items per page.")] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The number of results to return per page for the list operation. Valid range for top parameter is 1 to 100. If not specified, the default number of results to be returned is 20 items per page.", + SerializedName = @"$top", + PossibleTypes = new [] { typeof(int) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Query)] + public int Top { get => this._top; set => this._top = value; } + + /// Backing field for property. + private string _topicTypeName; + + /// Name of the topic type. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Name of the topic type.")] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Name of the topic type.", + SerializedName = @"topicTypeName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Path)] + public string TopicTypeName { get => this._topicTypeName; set => this._topicTypeName = value; } + + /// + /// overrideOnDefault will be called before the regular onDefault has been processed, allowing customization of what + /// happens on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// /// Determines if the rest of the onDefault method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnDefault(global::System.Net.Http.HttpResponseMessage responseMessage, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnOk will be called before the regular onOk has been processed, allowing customization of what happens + /// on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// 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() + { + var telemetryId = Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.GetTelemetryId.Invoke(); + if (telemetryId != "" && telemetryId != "internal") + { + __correlationId = telemetryId; + } + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + + } + + /// + /// Intializes a new instance of the cmdlet class. + /// + public GetAzEventGridEventSubscriptionRegional_List3() + { + + } + + /// Handles/Dispatches events during the call to the REST service. + /// The message id + /// The message cancellation token. When this call is cancelled, this should be true + /// Detailed message data for the message event. + /// + /// A that will be complete when handling of the message is completed. + /// + async global::System.Threading.Tasks.Task Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener.Signal(string id, global::System.Threading.CancellationToken token, global::System.Func messageData) + { + using( NoSynchronizationContext ) + { + if (token.IsCancellationRequested) + { + return ; + } + + switch ( id ) + { + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Information: + { + var data = messageData(); + WriteInformation(data.Message, new string[]{}); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Error: + { + WriteError(new global::System.Management.Automation.ErrorRecord( new global::System.Exception(messageData().Message), string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null ) ); + return ; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.EventData ), InvocationInformation, this.ParameterSetName, __correlationId, __processRecordId, null ); + if (token.IsCancellationRequested) + { + return ; + } + WriteDebug($"{id}: {(messageData().Message ?? global::System.String.Empty)}"); + } + } + + /// Performs execution of the command. + protected override void ProcessRecord() + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + using( var asyncCommandRuntime = new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token); + } + } + catch (global::System.AggregateException aggregateException) + { + // unroll the inner exceptions to get the root cause + foreach( var innerException in aggregateException.Flatten().InnerExceptions ) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(innerException,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + } + catch (global::System.Exception exception) when ((exception as System.Management.Automation.PipelineStoppedException)== null || (exception as System.Management.Automation.PipelineStoppedException).InnerException != null) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(exception,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + finally + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletProcessRecordEnd).Wait(); + } + } + + /// Performs execution of the command, working asynchronously if required. + /// + /// A that will be complete when handling of the method is completed. + /// + protected async global::System.Threading.Tasks.Task ProcessRecordAsync() + { + using( NoSynchronizationContext ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + foreach( var SubscriptionId in this.SubscriptionId ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await this.Client.EventSubscriptionsListRegionalByResourceGroupForTopicType(SubscriptionId, ResourceGroupName, Location, TopicTypeName, this.InvocationInformation.BoundParameters.ContainsKey("Filter") ? Filter : null, this.InvocationInformation.BoundParameters.ContainsKey("Top") ? Top : default(int?), onOk, onDefault, this, Pipeline); + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.UndeclaredResponseException urexception) + { + WriteError(new global::System.Management.Automation.ErrorRecord(urexception, urexception.StatusCode.ToString(), global::System.Management.Automation.ErrorCategory.InvalidOperation, new { SubscriptionId=SubscriptionId,ResourceGroupName=ResourceGroupName,Location=Location,TopicTypeName=TopicTypeName,Filter=this.InvocationInformation.BoundParameters.ContainsKey("Filter") ? Filter : null,Top=this.InvocationInformation.BoundParameters.ContainsKey("Top") ? Top : default(int?)}) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(urexception.Message) { RecommendedAction = urexception.Action } + }); + } + finally + { + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Cancel(); + base.StopProcessing(); + } + + /// + /// a delegate that is called when the remote service returns default (any response code not handled elsewhere). + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onDefault(global::System.Net.Http.HttpResponseMessage responseMessage) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnDefault(responseMessage, ref _returnNow); + // if overrideOnDefault has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // Error Response : default + // Unrecognized Response. Create an error record based on what we have. + var ex = new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.RestException(responseMessage); + WriteError( new global::System.Management.Automation.ErrorRecord(ex, ex.Code, global::System.Management.Automation.ErrorCategory.InvalidOperation, new { SubscriptionId=SubscriptionId, ResourceGroupName=ResourceGroupName, Location=Location, TopicTypeName=TopicTypeName, Filter=this.InvocationInformation.BoundParameters.ContainsKey("Filter") ? Filter : null, Top=this.InvocationInformation.BoundParameters.ContainsKey("Top") ? Top : default(int?) }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(ex.Message) { RecommendedAction = ex.Action } + }); + } + } + + /// a delegate that is called when the remote service returns 200 (OK). + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnOk(responseMessage, response, ref _returnNow); + // if overrideOnOk has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // onOk - response for 200 / application/json + // response should be returning an array of some kind. +Pageable + // pageable / value / nextLink + var result = await response; + WriteObject(result.Value,true); + _nextLink = result.NextLink; + if (_isFirst) + { + _isFirst = false; + while (_nextLink != null) + { + if (responseMessage.RequestMessage is System.Net.Http.HttpRequestMessage requestMessage ) + { + requestMessage = requestMessage.Clone(new global::System.Uri( _nextLink ),Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Method.Get ); + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.FollowingNextLink); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await this.Client.EventSubscriptionsListRegionalByResourceGroupForTopicType_Call(requestMessage, onOk, onDefault, this, Pipeline); + } + } + } + } + } + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/cmdlets/GetAzEventGridEventSubscription_Get.cs b/swaggerci/eventgrid/generated/cmdlets/GetAzEventGridEventSubscription_Get.cs new file mode 100644 index 000000000000..e03174a24784 --- /dev/null +++ b/swaggerci/eventgrid/generated/cmdlets/GetAzEventGridEventSubscription_Get.cs @@ -0,0 +1,380 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Extensions; + using System; + + /// Get properties of an event subscription. + /// + /// [OpenAPI] Get=>GET:"/{scope}/providers/Microsoft.EventGrid/eventSubscriptions/{eventSubscriptionName}" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsCommon.Get, @"AzEventGridEventSubscription_Get")] + [global::System.Management.Automation.OutputType(typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscription))] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Description(@"Get properties of an event subscription.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Generated] + public partial class GetAzEventGridEventSubscription_Get : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener + { + /// A unique id generatd for the this cmdlet when it is instantiated. + private string __correlationId = System.Guid.NewGuid().ToString(); + + /// A copy of the Invocation Info (necessary to allow asJob to clone this cmdlet) + private global::System.Management.Automation.InvocationInfo __invocationInfo; + + /// A unique id generatd for the this cmdlet when ProcessRecord() is called. + private string __processRecordId; + + /// + /// The for this operation. + /// + private global::System.Threading.CancellationTokenSource _cancellationTokenSource = new global::System.Threading.CancellationTokenSource(); + + /// Wait for .NET debugger to attach + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Wait for .NET debugger to attach")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.EventGridManagementClient Client => Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.ClientAPI; + + /// + /// The credentials, account, tenant, and subscription used for communication with Azure + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The credentials, account, tenant, and subscription used for communication with Azure.")] + [global::System.Management.Automation.ValidateNotNull] + [global::System.Management.Automation.Alias("AzureRMContext", "AzureCredential")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Azure)] + public global::System.Management.Automation.PSObject DefaultProfile { get; set; } + + /// SendAsync Pipeline Steps to be appended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be appended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[] HttpPipelineAppend { get; set; } + + /// SendAsync Pipeline Steps to be prepended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be prepended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[] HttpPipelinePrepend { get; set; } + + /// Accessor for our copy of the InvocationInfo. + public global::System.Management.Automation.InvocationInfo InvocationInformation { get => __invocationInfo = __invocationInfo ?? this.MyInvocation ; set { __invocationInfo = value; } } + + /// + /// cancellation delegate. Stops the cmdlet when called. + /// + global::System.Action Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener.Token => _cancellationTokenSource.Token; + + /// Backing field for property. + private string _name; + + /// Name of the event subscription. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Name of the event subscription.")] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Name of the event subscription.", + SerializedName = @"eventSubscriptionName", + PossibleTypes = new [] { typeof(string) })] + [global::System.Management.Automation.Alias("EventSubscriptionName")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Runtime.HttpPipeline Pipeline { get; set; } + + /// The URI for the proxy server to use + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "The URI for the proxy server to use")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Uri Proxy { get; set; } + + /// Credentials for a proxy server to use for the remote call + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Credentials for a proxy server to use for the remote call")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Management.Automation.PSCredential ProxyCredential { get; set; } + + /// Use the default credentials for the proxy + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Use the default credentials for the proxy")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter ProxyUseDefaultCredentials { get; set; } + + /// Backing field for property. + private string _scope; + + /// + /// The scope of the event subscription. The scope can be a subscription, or a resource group, or a top level resource belonging + /// to a resource provider namespace, or an EventGrid topic. For example, use '/subscriptions/{subscriptionId}/' for a subscription, + /// '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}' for a resource group, and '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}' + /// for a resource, and '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.EventGrid/topics/{topicName}' + /// for an EventGrid topic. + /// + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The scope of the event subscription. The scope can be a subscription, or a resource group, or a top level resource belonging to a resource provider namespace, or an EventGrid topic. For example, use '/subscriptions/{subscriptionId}/' for a subscription, '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}' for a resource group, and '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}' for a resource, and '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.EventGrid/topics/{topicName}' for an EventGrid topic.")] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The scope of the event subscription. The scope can be a subscription, or a resource group, or a top level resource belonging to a resource provider namespace, or an EventGrid topic. For example, use '/subscriptions/{subscriptionId}/' for a subscription, '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}' for a resource group, and '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}' for a resource, and '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.EventGrid/topics/{topicName}' for an EventGrid topic.", + SerializedName = @"scope", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Path)] + public string Scope { get => this._scope; set => this._scope = value; } + + /// + /// overrideOnDefault will be called before the regular onDefault has been processed, allowing customization of what + /// happens on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// /// Determines if the rest of the onDefault method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnDefault(global::System.Net.Http.HttpResponseMessage responseMessage, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnOk will be called before the regular onOk has been processed, allowing customization of what happens + /// on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// 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() + { + var telemetryId = Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.GetTelemetryId.Invoke(); + if (telemetryId != "" && telemetryId != "internal") + { + __correlationId = telemetryId; + } + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + + } + + /// + /// Intializes a new instance of the cmdlet class. + /// + public GetAzEventGridEventSubscription_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.EventGrid.Runtime.IEventListener.Signal(string id, global::System.Threading.CancellationToken token, global::System.Func messageData) + { + using( NoSynchronizationContext ) + { + if (token.IsCancellationRequested) + { + return ; + } + + switch ( id ) + { + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Information: + { + var data = messageData(); + WriteInformation(data.Message, new string[]{}); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Error: + { + WriteError(new global::System.Management.Automation.ErrorRecord( new global::System.Exception(messageData().Message), string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null ) ); + return ; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.EventData ), InvocationInformation, this.ParameterSetName, __correlationId, __processRecordId, null ); + if (token.IsCancellationRequested) + { + return ; + } + WriteDebug($"{id}: {(messageData().Message ?? global::System.String.Empty)}"); + } + } + + /// Performs execution of the command. + protected override void ProcessRecord() + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + using( var asyncCommandRuntime = new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token); + } + } + catch (global::System.AggregateException aggregateException) + { + // unroll the inner exceptions to get the root cause + foreach( var innerException in aggregateException.Flatten().InnerExceptions ) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(innerException,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + } + catch (global::System.Exception exception) when ((exception as System.Management.Automation.PipelineStoppedException)== null || (exception as System.Management.Automation.PipelineStoppedException).InnerException != null) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(exception,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + finally + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletProcessRecordEnd).Wait(); + } + } + + /// Performs execution of the command, working asynchronously if required. + /// + /// A that will be complete when handling of the method is completed. + /// + protected async global::System.Threading.Tasks.Task ProcessRecordAsync() + { + using( NoSynchronizationContext ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await this.Client.EventSubscriptionsGet(Scope, Name, onOk, onDefault, this, Pipeline); + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.UndeclaredResponseException urexception) + { + WriteError(new global::System.Management.Automation.ErrorRecord(urexception, urexception.StatusCode.ToString(), global::System.Management.Automation.ErrorCategory.InvalidOperation, new { Scope=Scope,Name=Name}) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(urexception.Message) { RecommendedAction = urexception.Action } + }); + } + finally + { + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Cancel(); + base.StopProcessing(); + } + + /// + /// a delegate that is called when the remote service returns default (any response code not handled elsewhere). + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onDefault(global::System.Net.Http.HttpResponseMessage responseMessage) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnDefault(responseMessage, ref _returnNow); + // if overrideOnDefault has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // Error Response : default + // Unrecognized Response. Create an error record based on what we have. + var ex = new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.RestException(responseMessage); + WriteError( new global::System.Management.Automation.ErrorRecord(ex, ex.Code, global::System.Management.Automation.ErrorCategory.InvalidOperation, new { Scope=Scope, Name=Name }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(ex.Message) { RecommendedAction = ex.Action } + }); + } + } + + /// a delegate that is called when the remote service returns 200 (OK). + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as 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.EventGrid.Models.Api20211015Preview.IEventSubscription + WriteObject((await response)); + } + } + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/cmdlets/GetAzEventGridEventSubscription_GetViaIdentity.cs b/swaggerci/eventgrid/generated/cmdlets/GetAzEventGridEventSubscription_GetViaIdentity.cs new file mode 100644 index 000000000000..97d18542d86c --- /dev/null +++ b/swaggerci/eventgrid/generated/cmdlets/GetAzEventGridEventSubscription_GetViaIdentity.cs @@ -0,0 +1,369 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Extensions; + using System; + + /// Get properties of an event subscription. + /// + /// [OpenAPI] Get=>GET:"/{scope}/providers/Microsoft.EventGrid/eventSubscriptions/{eventSubscriptionName}" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsCommon.Get, @"AzEventGridEventSubscription_GetViaIdentity")] + [global::System.Management.Automation.OutputType(typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscription))] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Description(@"Get properties of an event subscription.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Generated] + public partial class GetAzEventGridEventSubscription_GetViaIdentity : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener + { + /// A unique id generatd for the this cmdlet when it is instantiated. + private string __correlationId = System.Guid.NewGuid().ToString(); + + /// A copy of the Invocation Info (necessary to allow asJob to clone this cmdlet) + private global::System.Management.Automation.InvocationInfo __invocationInfo; + + /// A unique id generatd for the this cmdlet when ProcessRecord() is called. + private string __processRecordId; + + /// + /// The for this operation. + /// + private global::System.Threading.CancellationTokenSource _cancellationTokenSource = new global::System.Threading.CancellationTokenSource(); + + /// Wait for .NET debugger to attach + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Wait for .NET debugger to attach")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.EventGridManagementClient Client => Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.ClientAPI; + + /// + /// The credentials, account, tenant, and subscription used for communication with Azure + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The credentials, account, tenant, and subscription used for communication with Azure.")] + [global::System.Management.Automation.ValidateNotNull] + [global::System.Management.Automation.Alias("AzureRMContext", "AzureCredential")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Azure)] + public global::System.Management.Automation.PSObject DefaultProfile { get; set; } + + /// SendAsync Pipeline Steps to be appended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be appended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[] HttpPipelineAppend { get; set; } + + /// SendAsync Pipeline Steps to be prepended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be prepended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[] HttpPipelinePrepend { get; set; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.IEventGridIdentity _inputObject; + + /// Identity Parameter + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Identity Parameter", ValueFromPipeline = true)] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Path)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.IEventGridIdentity InputObject { get => this._inputObject; set => this._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.EventGrid.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Runtime.HttpPipeline Pipeline { get; set; } + + /// The URI for the proxy server to use + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "The URI for the proxy server to use")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Uri Proxy { get; set; } + + /// Credentials for a proxy server to use for the remote call + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Credentials for a proxy server to use for the remote call")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Management.Automation.PSCredential ProxyCredential { get; set; } + + /// Use the default credentials for the proxy + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Use the default credentials for the proxy")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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. + /// /// Determines if the rest of the onDefault method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnDefault(global::System.Net.Http.HttpResponseMessage responseMessage, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnOk will be called before the regular onOk has been processed, allowing customization of what happens + /// on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// 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() + { + var telemetryId = Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.GetTelemetryId.Invoke(); + if (telemetryId != "" && telemetryId != "internal") + { + __correlationId = telemetryId; + } + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + + } + + /// + /// Intializes a new instance of the cmdlet class. + /// + public GetAzEventGridEventSubscription_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.EventGrid.Runtime.IEventListener.Signal(string id, global::System.Threading.CancellationToken token, global::System.Func messageData) + { + using( NoSynchronizationContext ) + { + if (token.IsCancellationRequested) + { + return ; + } + + switch ( id ) + { + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Information: + { + var data = messageData(); + WriteInformation(data.Message, new string[]{}); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Error: + { + WriteError(new global::System.Management.Automation.ErrorRecord( new global::System.Exception(messageData().Message), string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null ) ); + return ; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.EventData ), InvocationInformation, this.ParameterSetName, __correlationId, __processRecordId, null ); + if (token.IsCancellationRequested) + { + return ; + } + WriteDebug($"{id}: {(messageData().Message ?? global::System.String.Empty)}"); + } + } + + /// Performs execution of the command. + protected override void ProcessRecord() + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + using( var asyncCommandRuntime = new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token); + } + } + catch (global::System.AggregateException aggregateException) + { + // unroll the inner exceptions to get the root cause + foreach( var innerException in aggregateException.Flatten().InnerExceptions ) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(innerException,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + } + catch (global::System.Exception exception) when ((exception as System.Management.Automation.PipelineStoppedException)== null || (exception as System.Management.Automation.PipelineStoppedException).InnerException != null) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(exception,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + finally + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletProcessRecordEnd).Wait(); + } + } + + /// Performs execution of the command, working asynchronously if required. + /// + /// A that will be complete when handling of the method is completed. + /// + protected async global::System.Threading.Tasks.Task ProcessRecordAsync() + { + using( NoSynchronizationContext ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + if (InputObject?.Id != null) + { + await this.Client.EventSubscriptionsGetViaIdentity(InputObject.Id, onOk, onDefault, this, Pipeline); + } + else + { + // try to call with PATH parameters from Input Object + if (null == InputObject.Scope) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.Scope"),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, InputObject) ); + } + if (null == InputObject.EventSubscriptionName) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.EventSubscriptionName"),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, InputObject) ); + } + await this.Client.EventSubscriptionsGet(InputObject.Scope ?? null, InputObject.EventSubscriptionName ?? null, onOk, onDefault, this, Pipeline); + } + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Cancel(); + base.StopProcessing(); + } + + /// + /// a delegate that is called when the remote service returns default (any response code not handled elsewhere). + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onDefault(global::System.Net.Http.HttpResponseMessage responseMessage) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnDefault(responseMessage, ref _returnNow); + // if overrideOnDefault has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // Error Response : default + // Unrecognized Response. Create an error record based on what we have. + var ex = new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.RestException(responseMessage); + WriteError( new global::System.Management.Automation.ErrorRecord(ex, ex.Code, global::System.Management.Automation.ErrorCategory.InvalidOperation, new { }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(ex.Message) { RecommendedAction = ex.Action } + }); + } + } + + /// a delegate that is called when the remote service returns 200 (OK). + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as 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.EventGrid.Models.Api20211015Preview.IEventSubscription + WriteObject((await response)); + } + } + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/cmdlets/GetAzEventGridEventSubscription_List.cs b/swaggerci/eventgrid/generated/cmdlets/GetAzEventGridEventSubscription_List.cs new file mode 100644 index 000000000000..5a5c5182bb9c --- /dev/null +++ b/swaggerci/eventgrid/generated/cmdlets/GetAzEventGridEventSubscription_List.cs @@ -0,0 +1,484 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Extensions; + using System; + + /// List all event subscriptions that have been created for a specific resource. + /// + /// [OpenAPI] ListByResource=>GET:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{providerNamespace}/{resourceTypeName}/{resourceName}/providers/Microsoft.EventGrid/eventSubscriptions" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsCommon.Get, @"AzEventGridEventSubscription_List")] + [global::System.Management.Automation.OutputType(typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscription))] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Description(@"List all event subscriptions that have been created for a specific resource.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Generated] + public partial class GetAzEventGridEventSubscription_List : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener + { + /// A unique id generatd for the this cmdlet when it is instantiated. + private string __correlationId = System.Guid.NewGuid().ToString(); + + /// A copy of the Invocation Info (necessary to allow asJob to clone this cmdlet) + private global::System.Management.Automation.InvocationInfo __invocationInfo; + + /// A unique id generatd for the this cmdlet when ProcessRecord() is called. + private string __processRecordId; + + /// + /// The for this operation. + /// + private global::System.Threading.CancellationTokenSource _cancellationTokenSource = new global::System.Threading.CancellationTokenSource(); + + /// A flag to tell whether it is the first onOK call. + private bool _isFirst = true; + + /// Link to retrieve next page. + private string _nextLink; + + /// Wait for .NET debugger to attach + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Wait for .NET debugger to attach")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.EventGridManagementClient Client => Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.ClientAPI; + + /// + /// The credentials, account, tenant, and subscription used for communication with Azure + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The credentials, account, tenant, and subscription used for communication with Azure.")] + [global::System.Management.Automation.ValidateNotNull] + [global::System.Management.Automation.Alias("AzureRMContext", "AzureCredential")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Azure)] + public global::System.Management.Automation.PSObject DefaultProfile { get; set; } + + /// Backing field for property. + private string _filter; + + /// + /// The query used to filter the search results using OData syntax. Filtering is permitted on the 'name' property only and + /// with limited number of OData operations. These operations are: the 'contains' function as well as the following logical + /// operations: not, and, or, eq (for equal), and ne (for not equal). No arithmetic operations are supported. The following + /// is a valid filter example: $filter=contains(namE, 'PATTERN') and name ne 'PATTERN-1'. The following is not a valid filter + /// example: $filter=location eq 'westus'. + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The query used to filter the search results using OData syntax. Filtering is permitted on the 'name' property only and with limited number of OData operations. These operations are: the 'contains' function as well as the following logical operations: not, and, or, eq (for equal), and ne (for not equal). No arithmetic operations are supported. The following is a valid filter example: $filter=contains(namE, 'PATTERN') and name ne 'PATTERN-1'. The following is not a valid filter example: $filter=location eq 'westus'.")] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The query used to filter the search results using OData syntax. Filtering is permitted on the 'name' property only and with limited number of OData operations. These operations are: the 'contains' function as well as the following logical operations: not, and, or, eq (for equal), and ne (for not equal). No arithmetic operations are supported. The following is a valid filter example: $filter=contains(namE, 'PATTERN') and name ne 'PATTERN-1'. The following is not a valid filter example: $filter=location eq 'westus'.", + SerializedName = @"$filter", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[] HttpPipelineAppend { get; set; } + + /// SendAsync Pipeline Steps to be prepended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be prepended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[] HttpPipelinePrepend { get; set; } + + /// Accessor for our copy of the InvocationInfo. + public global::System.Management.Automation.InvocationInfo InvocationInformation { get => __invocationInfo = __invocationInfo ?? this.MyInvocation ; set { __invocationInfo = value; } } + + /// + /// cancellation delegate. Stops the cmdlet when called. + /// + global::System.Action Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Runtime.HttpPipeline Pipeline { get; set; } + + /// Backing field for property. + private string _providerNamespace; + + /// Namespace of the provider of the topic. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Namespace of the provider of the topic.")] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Namespace of the provider of the topic.", + SerializedName = @"providerNamespace", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Path)] + public string ProviderNamespace { get => this._providerNamespace; set => this._providerNamespace = 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.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Uri Proxy { get; set; } + + /// Credentials for a proxy server to use for the remote call + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Credentials for a proxy server to use for the remote call")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Management.Automation.PSCredential ProxyCredential { get; set; } + + /// Use the default credentials for the proxy + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Use the default credentials for the proxy")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter ProxyUseDefaultCredentials { get; set; } + + /// Backing field for property. + private string _resourceGroupName; + + /// The name of the resource group within the user's subscription. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the resource group within the user's subscription.")] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the resource group within the user's subscription.", + SerializedName = @"resourceGroupName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Path)] + public string ResourceGroupName { get => this._resourceGroupName; set => this._resourceGroupName = value; } + + /// Backing field for property. + private string _resourceName; + + /// Name of the resource. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Name of the resource.")] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Name of the resource.", + SerializedName = @"resourceName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Path)] + public string ResourceName { get => this._resourceName; set => this._resourceName = value; } + + /// Backing field for property. + private string _resourceTypeName; + + /// Name of the resource type. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Name of the resource type.")] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Name of the resource type.", + SerializedName = @"resourceTypeName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Path)] + public string ResourceTypeName { get => this._resourceTypeName; set => this._resourceTypeName = value; } + + /// Backing field for property. + private string[] _subscriptionId; + + /// + /// Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription ID forms part of the + /// URI for every service call. + /// + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.")] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.", + SerializedName = @"subscriptionId", + PossibleTypes = new [] { typeof(string) })] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.DefaultInfo( + Name = @"", + Description =@"", + Script = @"(Get-AzContext).Subscription.Id")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Path)] + public string[] SubscriptionId { get => this._subscriptionId; set => this._subscriptionId = value; } + + /// Backing field for property. + private int _top; + + /// + /// The number of results to return per page for the list operation. Valid range for top parameter is 1 to 100. If not specified, + /// the default number of results to be returned is 20 items per page. + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The number of results to return per page for the list operation. Valid range for top parameter is 1 to 100. If not specified, the default number of results to be returned is 20 items per page.")] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The number of results to return per page for the list operation. Valid range for top parameter is 1 to 100. If not specified, the default number of results to be returned is 20 items per page.", + SerializedName = @"$top", + PossibleTypes = new [] { typeof(int) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Query)] + public int Top { get => this._top; set => this._top = value; } + + /// + /// overrideOnDefault will be called before the regular onDefault has been processed, allowing customization of what + /// happens on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// /// Determines if the rest of the onDefault method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnDefault(global::System.Net.Http.HttpResponseMessage responseMessage, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnOk will be called before the regular onOk has been processed, allowing customization of what happens + /// on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// 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() + { + var telemetryId = Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.GetTelemetryId.Invoke(); + if (telemetryId != "" && telemetryId != "internal") + { + __correlationId = telemetryId; + } + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + + } + + /// + /// Intializes a new instance of the cmdlet class. + /// + public GetAzEventGridEventSubscription_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.EventGrid.Runtime.IEventListener.Signal(string id, global::System.Threading.CancellationToken token, global::System.Func messageData) + { + using( NoSynchronizationContext ) + { + if (token.IsCancellationRequested) + { + return ; + } + + switch ( id ) + { + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Information: + { + var data = messageData(); + WriteInformation(data.Message, new string[]{}); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Error: + { + WriteError(new global::System.Management.Automation.ErrorRecord( new global::System.Exception(messageData().Message), string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null ) ); + return ; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.EventData ), InvocationInformation, this.ParameterSetName, __correlationId, __processRecordId, null ); + if (token.IsCancellationRequested) + { + return ; + } + WriteDebug($"{id}: {(messageData().Message ?? global::System.String.Empty)}"); + } + } + + /// Performs execution of the command. + protected override void ProcessRecord() + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + using( var asyncCommandRuntime = new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token); + } + } + catch (global::System.AggregateException aggregateException) + { + // unroll the inner exceptions to get the root cause + foreach( var innerException in aggregateException.Flatten().InnerExceptions ) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(innerException,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + } + catch (global::System.Exception exception) when ((exception as System.Management.Automation.PipelineStoppedException)== null || (exception as System.Management.Automation.PipelineStoppedException).InnerException != null) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(exception,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + finally + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletProcessRecordEnd).Wait(); + } + } + + /// Performs execution of the command, working asynchronously if required. + /// + /// A that will be complete when handling of the method is completed. + /// + protected async global::System.Threading.Tasks.Task ProcessRecordAsync() + { + using( NoSynchronizationContext ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + foreach( var SubscriptionId in this.SubscriptionId ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await this.Client.EventSubscriptionsListByResource(SubscriptionId, ResourceGroupName, ProviderNamespace, ResourceTypeName, ResourceName, this.InvocationInformation.BoundParameters.ContainsKey("Filter") ? Filter : null, this.InvocationInformation.BoundParameters.ContainsKey("Top") ? Top : default(int?), onOk, onDefault, this, Pipeline); + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.UndeclaredResponseException urexception) + { + WriteError(new global::System.Management.Automation.ErrorRecord(urexception, urexception.StatusCode.ToString(), global::System.Management.Automation.ErrorCategory.InvalidOperation, new { SubscriptionId=SubscriptionId,ResourceGroupName=ResourceGroupName,ProviderNamespace=ProviderNamespace,ResourceTypeName=ResourceTypeName,ResourceName=ResourceName,Filter=this.InvocationInformation.BoundParameters.ContainsKey("Filter") ? Filter : null,Top=this.InvocationInformation.BoundParameters.ContainsKey("Top") ? Top : default(int?)}) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(urexception.Message) { RecommendedAction = urexception.Action } + }); + } + finally + { + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Cancel(); + base.StopProcessing(); + } + + /// + /// a delegate that is called when the remote service returns default (any response code not handled elsewhere). + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onDefault(global::System.Net.Http.HttpResponseMessage responseMessage) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnDefault(responseMessage, ref _returnNow); + // if overrideOnDefault has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // Error Response : default + // Unrecognized Response. Create an error record based on what we have. + var ex = new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.RestException(responseMessage); + WriteError( new global::System.Management.Automation.ErrorRecord(ex, ex.Code, global::System.Management.Automation.ErrorCategory.InvalidOperation, new { SubscriptionId=SubscriptionId, ResourceGroupName=ResourceGroupName, ProviderNamespace=ProviderNamespace, ResourceTypeName=ResourceTypeName, ResourceName=ResourceName, Filter=this.InvocationInformation.BoundParameters.ContainsKey("Filter") ? Filter : null, Top=this.InvocationInformation.BoundParameters.ContainsKey("Top") ? Top : default(int?) }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(ex.Message) { RecommendedAction = ex.Action } + }); + } + } + + /// a delegate that is called when the remote service returns 200 (OK). + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnOk(responseMessage, response, ref _returnNow); + // if overrideOnOk has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // onOk - response for 200 / application/json + // response should be returning an array of some kind. +Pageable + // pageable / value / nextLink + var result = await response; + WriteObject(result.Value,true); + _nextLink = result.NextLink; + if (_isFirst) + { + _isFirst = false; + while (_nextLink != null) + { + if (responseMessage.RequestMessage is System.Net.Http.HttpRequestMessage requestMessage ) + { + requestMessage = requestMessage.Clone(new global::System.Uri( _nextLink ),Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Method.Get ); + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.FollowingNextLink); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await this.Client.EventSubscriptionsListByResource_Call(requestMessage, onOk, onDefault, this, Pipeline); + } + } + } + } + } + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/cmdlets/GetAzEventGridEventSubscription_List1.cs b/swaggerci/eventgrid/generated/cmdlets/GetAzEventGridEventSubscription_List1.cs new file mode 100644 index 000000000000..a99770af5cc1 --- /dev/null +++ b/swaggerci/eventgrid/generated/cmdlets/GetAzEventGridEventSubscription_List1.cs @@ -0,0 +1,472 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Extensions; + using System; + + /// + /// List all event subscriptions that have been created for a specific domain topic. + /// + /// + /// [OpenAPI] ListByDomainTopic=>GET:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.EventGrid/domains/{domainName}/topics/{topicName}/providers/Microsoft.EventGrid/eventSubscriptions" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsCommon.Get, @"AzEventGridEventSubscription_List1")] + [global::System.Management.Automation.OutputType(typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscription))] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Description(@"List all event subscriptions that have been created for a specific domain topic.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Generated] + public partial class GetAzEventGridEventSubscription_List1 : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener + { + /// A unique id generatd for the this cmdlet when it is instantiated. + private string __correlationId = System.Guid.NewGuid().ToString(); + + /// A copy of the Invocation Info (necessary to allow asJob to clone this cmdlet) + private global::System.Management.Automation.InvocationInfo __invocationInfo; + + /// A unique id generatd for the this cmdlet when ProcessRecord() is called. + private string __processRecordId; + + /// + /// The for this operation. + /// + private global::System.Threading.CancellationTokenSource _cancellationTokenSource = new global::System.Threading.CancellationTokenSource(); + + /// A flag to tell whether it is the first onOK call. + private bool _isFirst = true; + + /// Link to retrieve next page. + private string _nextLink; + + /// Wait for .NET debugger to attach + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Wait for .NET debugger to attach")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.EventGridManagementClient Client => Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.ClientAPI; + + /// + /// The credentials, account, tenant, and subscription used for communication with Azure + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The credentials, account, tenant, and subscription used for communication with Azure.")] + [global::System.Management.Automation.ValidateNotNull] + [global::System.Management.Automation.Alias("AzureRMContext", "AzureCredential")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Azure)] + public global::System.Management.Automation.PSObject DefaultProfile { get; set; } + + /// Backing field for property. + private string _domainName; + + /// Name of the top level domain. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Name of the top level domain.")] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Name of the top level domain.", + SerializedName = @"domainName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Path)] + public string DomainName { get => this._domainName; set => this._domainName = value; } + + /// Backing field for property. + private string _filter; + + /// + /// The query used to filter the search results using OData syntax. Filtering is permitted on the 'name' property only and + /// with limited number of OData operations. These operations are: the 'contains' function as well as the following logical + /// operations: not, and, or, eq (for equal), and ne (for not equal). No arithmetic operations are supported. The following + /// is a valid filter example: $filter=contains(namE, 'PATTERN') and name ne 'PATTERN-1'. The following is not a valid filter + /// example: $filter=location eq 'westus'. + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The query used to filter the search results using OData syntax. Filtering is permitted on the 'name' property only and with limited number of OData operations. These operations are: the 'contains' function as well as the following logical operations: not, and, or, eq (for equal), and ne (for not equal). No arithmetic operations are supported. The following is a valid filter example: $filter=contains(namE, 'PATTERN') and name ne 'PATTERN-1'. The following is not a valid filter example: $filter=location eq 'westus'.")] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The query used to filter the search results using OData syntax. Filtering is permitted on the 'name' property only and with limited number of OData operations. These operations are: the 'contains' function as well as the following logical operations: not, and, or, eq (for equal), and ne (for not equal). No arithmetic operations are supported. The following is a valid filter example: $filter=contains(namE, 'PATTERN') and name ne 'PATTERN-1'. The following is not a valid filter example: $filter=location eq 'westus'.", + SerializedName = @"$filter", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[] HttpPipelineAppend { get; set; } + + /// SendAsync Pipeline Steps to be prepended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be prepended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[] HttpPipelinePrepend { get; set; } + + /// Accessor for our copy of the InvocationInfo. + public global::System.Management.Automation.InvocationInfo InvocationInformation { get => __invocationInfo = __invocationInfo ?? this.MyInvocation ; set { __invocationInfo = value; } } + + /// + /// cancellation delegate. Stops the cmdlet when called. + /// + global::System.Action Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Runtime.HttpPipeline Pipeline { get; set; } + + /// The URI for the proxy server to use + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "The URI for the proxy server to use")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Uri Proxy { get; set; } + + /// Credentials for a proxy server to use for the remote call + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Credentials for a proxy server to use for the remote call")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Management.Automation.PSCredential ProxyCredential { get; set; } + + /// Use the default credentials for the proxy + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Use the default credentials for the proxy")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter ProxyUseDefaultCredentials { get; set; } + + /// Backing field for property. + private string _resourceGroupName; + + /// The name of the resource group within the user's subscription. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the resource group within the user's subscription.")] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the resource group within the user's subscription.", + SerializedName = @"resourceGroupName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Path)] + public string ResourceGroupName { get => this._resourceGroupName; set => this._resourceGroupName = value; } + + /// Backing field for property. + private string[] _subscriptionId; + + /// + /// Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription ID forms part of the + /// URI for every service call. + /// + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.")] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.", + SerializedName = @"subscriptionId", + PossibleTypes = new [] { typeof(string) })] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.DefaultInfo( + Name = @"", + Description =@"", + Script = @"(Get-AzContext).Subscription.Id")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Path)] + public string[] SubscriptionId { get => this._subscriptionId; set => this._subscriptionId = value; } + + /// Backing field for property. + private int _top; + + /// + /// The number of results to return per page for the list operation. Valid range for top parameter is 1 to 100. If not specified, + /// the default number of results to be returned is 20 items per page. + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The number of results to return per page for the list operation. Valid range for top parameter is 1 to 100. If not specified, the default number of results to be returned is 20 items per page.")] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The number of results to return per page for the list operation. Valid range for top parameter is 1 to 100. If not specified, the default number of results to be returned is 20 items per page.", + SerializedName = @"$top", + PossibleTypes = new [] { typeof(int) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Query)] + public int Top { get => this._top; set => this._top = value; } + + /// Backing field for property. + private string _topicName; + + /// Name of the domain topic. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Name of the domain topic.")] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Name of the domain topic.", + SerializedName = @"topicName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Path)] + public string TopicName { get => this._topicName; set => this._topicName = value; } + + /// + /// overrideOnDefault will be called before the regular onDefault has been processed, allowing customization of what + /// happens on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// /// Determines if the rest of the onDefault method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnDefault(global::System.Net.Http.HttpResponseMessage responseMessage, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnOk will be called before the regular onOk has been processed, allowing customization of what happens + /// on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// 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() + { + var telemetryId = Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.GetTelemetryId.Invoke(); + if (telemetryId != "" && telemetryId != "internal") + { + __correlationId = telemetryId; + } + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + + } + + /// + /// Intializes a new instance of the cmdlet class. + /// + public GetAzEventGridEventSubscription_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.EventGrid.Runtime.IEventListener.Signal(string id, global::System.Threading.CancellationToken token, global::System.Func messageData) + { + using( NoSynchronizationContext ) + { + if (token.IsCancellationRequested) + { + return ; + } + + switch ( id ) + { + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Information: + { + var data = messageData(); + WriteInformation(data.Message, new string[]{}); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Error: + { + WriteError(new global::System.Management.Automation.ErrorRecord( new global::System.Exception(messageData().Message), string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null ) ); + return ; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.EventData ), InvocationInformation, this.ParameterSetName, __correlationId, __processRecordId, null ); + if (token.IsCancellationRequested) + { + return ; + } + WriteDebug($"{id}: {(messageData().Message ?? global::System.String.Empty)}"); + } + } + + /// Performs execution of the command. + protected override void ProcessRecord() + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + using( var asyncCommandRuntime = new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token); + } + } + catch (global::System.AggregateException aggregateException) + { + // unroll the inner exceptions to get the root cause + foreach( var innerException in aggregateException.Flatten().InnerExceptions ) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(innerException,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + } + catch (global::System.Exception exception) when ((exception as System.Management.Automation.PipelineStoppedException)== null || (exception as System.Management.Automation.PipelineStoppedException).InnerException != null) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(exception,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + finally + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletProcessRecordEnd).Wait(); + } + } + + /// Performs execution of the command, working asynchronously if required. + /// + /// A that will be complete when handling of the method is completed. + /// + protected async global::System.Threading.Tasks.Task ProcessRecordAsync() + { + using( NoSynchronizationContext ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + foreach( var SubscriptionId in this.SubscriptionId ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await this.Client.EventSubscriptionsListByDomainTopic(SubscriptionId, ResourceGroupName, DomainName, TopicName, this.InvocationInformation.BoundParameters.ContainsKey("Filter") ? Filter : null, this.InvocationInformation.BoundParameters.ContainsKey("Top") ? Top : default(int?), onOk, onDefault, this, Pipeline); + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.UndeclaredResponseException urexception) + { + WriteError(new global::System.Management.Automation.ErrorRecord(urexception, urexception.StatusCode.ToString(), global::System.Management.Automation.ErrorCategory.InvalidOperation, new { SubscriptionId=SubscriptionId,ResourceGroupName=ResourceGroupName,DomainName=DomainName,TopicName=TopicName,Filter=this.InvocationInformation.BoundParameters.ContainsKey("Filter") ? Filter : null,Top=this.InvocationInformation.BoundParameters.ContainsKey("Top") ? Top : default(int?)}) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(urexception.Message) { RecommendedAction = urexception.Action } + }); + } + finally + { + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Cancel(); + base.StopProcessing(); + } + + /// + /// a delegate that is called when the remote service returns default (any response code not handled elsewhere). + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onDefault(global::System.Net.Http.HttpResponseMessage responseMessage) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnDefault(responseMessage, ref _returnNow); + // if overrideOnDefault has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // Error Response : default + // Unrecognized Response. Create an error record based on what we have. + var ex = new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.RestException(responseMessage); + WriteError( new global::System.Management.Automation.ErrorRecord(ex, ex.Code, global::System.Management.Automation.ErrorCategory.InvalidOperation, new { SubscriptionId=SubscriptionId, ResourceGroupName=ResourceGroupName, DomainName=DomainName, TopicName=TopicName, Filter=this.InvocationInformation.BoundParameters.ContainsKey("Filter") ? Filter : null, Top=this.InvocationInformation.BoundParameters.ContainsKey("Top") ? Top : default(int?) }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(ex.Message) { RecommendedAction = ex.Action } + }); + } + } + + /// a delegate that is called when the remote service returns 200 (OK). + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnOk(responseMessage, response, ref _returnNow); + // if overrideOnOk has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // onOk - response for 200 / application/json + // response should be returning an array of some kind. +Pageable + // pageable / value / nextLink + var result = await response; + WriteObject(result.Value,true); + _nextLink = result.NextLink; + if (_isFirst) + { + _isFirst = false; + while (_nextLink != null) + { + if (responseMessage.RequestMessage is System.Net.Http.HttpRequestMessage requestMessage ) + { + requestMessage = requestMessage.Clone(new global::System.Uri( _nextLink ),Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Method.Get ); + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.FollowingNextLink); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await this.Client.EventSubscriptionsListByDomainTopic_Call(requestMessage, onOk, onDefault, this, Pipeline); + } + } + } + } + } + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/cmdlets/GetAzEventGridExtensionTopic_Get.cs b/swaggerci/eventgrid/generated/cmdlets/GetAzEventGridExtensionTopic_Get.cs new file mode 100644 index 000000000000..d5008a165dc3 --- /dev/null +++ b/swaggerci/eventgrid/generated/cmdlets/GetAzEventGridExtensionTopic_Get.cs @@ -0,0 +1,364 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Extensions; + using System; + + /// Get the properties of an extension topic. + /// + /// [OpenAPI] Get=>GET:"/{scope}/providers/Microsoft.EventGrid/extensionTopics/default" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsCommon.Get, @"AzEventGridExtensionTopic_Get")] + [global::System.Management.Automation.OutputType(typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IExtensionTopic))] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Description(@"Get the properties of an extension topic.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Generated] + public partial class GetAzEventGridExtensionTopic_Get : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener + { + /// A unique id generatd for the this cmdlet when it is instantiated. + private string __correlationId = System.Guid.NewGuid().ToString(); + + /// A copy of the Invocation Info (necessary to allow asJob to clone this cmdlet) + private global::System.Management.Automation.InvocationInfo __invocationInfo; + + /// A unique id generatd for the this cmdlet when ProcessRecord() is called. + private string __processRecordId; + + /// + /// The for this operation. + /// + private global::System.Threading.CancellationTokenSource _cancellationTokenSource = new global::System.Threading.CancellationTokenSource(); + + /// Wait for .NET debugger to attach + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Wait for .NET debugger to attach")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.EventGridManagementClient Client => Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.ClientAPI; + + /// + /// The credentials, account, tenant, and subscription used for communication with Azure + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The credentials, account, tenant, and subscription used for communication with Azure.")] + [global::System.Management.Automation.ValidateNotNull] + [global::System.Management.Automation.Alias("AzureRMContext", "AzureCredential")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Azure)] + public global::System.Management.Automation.PSObject DefaultProfile { get; set; } + + /// SendAsync Pipeline Steps to be appended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be appended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[] HttpPipelineAppend { get; set; } + + /// SendAsync Pipeline Steps to be prepended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be prepended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[] HttpPipelinePrepend { get; set; } + + /// Accessor for our copy of the InvocationInfo. + public global::System.Management.Automation.InvocationInfo InvocationInformation { get => __invocationInfo = __invocationInfo ?? this.MyInvocation ; set { __invocationInfo = value; } } + + /// + /// cancellation delegate. Stops the cmdlet when called. + /// + global::System.Action Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Runtime.HttpPipeline Pipeline { get; set; } + + /// The URI for the proxy server to use + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "The URI for the proxy server to use")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Uri Proxy { get; set; } + + /// Credentials for a proxy server to use for the remote call + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Credentials for a proxy server to use for the remote call")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Management.Automation.PSCredential ProxyCredential { get; set; } + + /// Use the default credentials for the proxy + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Use the default credentials for the proxy")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter ProxyUseDefaultCredentials { get; set; } + + /// Backing field for property. + private string _scope; + + /// + /// The identifier of the resource to which extension topic is queried. The scope can be a subscription, or a resource group, + /// or a top level resource belonging to a resource provider namespace. For example, use '/subscriptions/{subscriptionId}/' + /// for a subscription, '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}' for a resource group, and '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}' + /// for Azure resource. + /// + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The identifier of the resource to which extension topic is queried. The scope can be a subscription, or a resource group, or a top level resource belonging to a resource provider namespace. For example, use '/subscriptions/{subscriptionId}/' for a subscription, '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}' for a resource group, and '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}' for Azure resource.")] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The identifier of the resource to which extension topic is queried. The scope can be a subscription, or a resource group, or a top level resource belonging to a resource provider namespace. For example, use '/subscriptions/{subscriptionId}/' for a subscription, '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}' for a resource group, and '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}' for Azure resource.", + SerializedName = @"scope", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Path)] + public string Scope { get => this._scope; set => this._scope = value; } + + /// + /// overrideOnDefault will be called before the regular onDefault has been processed, allowing customization of what + /// happens on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// /// Determines if the rest of the onDefault method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnDefault(global::System.Net.Http.HttpResponseMessage responseMessage, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnOk will be called before the regular onOk has been processed, allowing customization of what happens + /// on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// 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() + { + var telemetryId = Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.GetTelemetryId.Invoke(); + if (telemetryId != "" && telemetryId != "internal") + { + __correlationId = telemetryId; + } + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + + } + + /// + /// Intializes a new instance of the cmdlet class. + /// + public GetAzEventGridExtensionTopic_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.EventGrid.Runtime.IEventListener.Signal(string id, global::System.Threading.CancellationToken token, global::System.Func messageData) + { + using( NoSynchronizationContext ) + { + if (token.IsCancellationRequested) + { + return ; + } + + switch ( id ) + { + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Information: + { + var data = messageData(); + WriteInformation(data.Message, new string[]{}); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Error: + { + WriteError(new global::System.Management.Automation.ErrorRecord( new global::System.Exception(messageData().Message), string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null ) ); + return ; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.EventData ), InvocationInformation, this.ParameterSetName, __correlationId, __processRecordId, null ); + if (token.IsCancellationRequested) + { + return ; + } + WriteDebug($"{id}: {(messageData().Message ?? global::System.String.Empty)}"); + } + } + + /// Performs execution of the command. + protected override void ProcessRecord() + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + using( var asyncCommandRuntime = new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token); + } + } + catch (global::System.AggregateException aggregateException) + { + // unroll the inner exceptions to get the root cause + foreach( var innerException in aggregateException.Flatten().InnerExceptions ) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(innerException,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + } + catch (global::System.Exception exception) when ((exception as System.Management.Automation.PipelineStoppedException)== null || (exception as System.Management.Automation.PipelineStoppedException).InnerException != null) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(exception,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + finally + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletProcessRecordEnd).Wait(); + } + } + + /// Performs execution of the command, working asynchronously if required. + /// + /// A that will be complete when handling of the method is completed. + /// + protected async global::System.Threading.Tasks.Task ProcessRecordAsync() + { + using( NoSynchronizationContext ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await this.Client.ExtensionTopicsGet(Scope, onOk, onDefault, this, Pipeline); + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.UndeclaredResponseException urexception) + { + WriteError(new global::System.Management.Automation.ErrorRecord(urexception, urexception.StatusCode.ToString(), global::System.Management.Automation.ErrorCategory.InvalidOperation, new { Scope=Scope}) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(urexception.Message) { RecommendedAction = urexception.Action } + }); + } + finally + { + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Cancel(); + base.StopProcessing(); + } + + /// + /// a delegate that is called when the remote service returns default (any response code not handled elsewhere). + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onDefault(global::System.Net.Http.HttpResponseMessage responseMessage) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnDefault(responseMessage, ref _returnNow); + // if overrideOnDefault has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // Error Response : default + // Unrecognized Response. Create an error record based on what we have. + var ex = new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.RestException(responseMessage); + WriteError( new global::System.Management.Automation.ErrorRecord(ex, ex.Code, global::System.Management.Automation.ErrorCategory.InvalidOperation, new { Scope=Scope }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(ex.Message) { RecommendedAction = ex.Action } + }); + } + } + + /// a delegate that is called when the remote service returns 200 (OK). + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as 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.EventGrid.Models.Api20211015Preview.IExtensionTopic + WriteObject((await response)); + } + } + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/cmdlets/GetAzEventGridExtensionTopic_GetViaIdentity.cs b/swaggerci/eventgrid/generated/cmdlets/GetAzEventGridExtensionTopic_GetViaIdentity.cs new file mode 100644 index 000000000000..89188e9a9e8a --- /dev/null +++ b/swaggerci/eventgrid/generated/cmdlets/GetAzEventGridExtensionTopic_GetViaIdentity.cs @@ -0,0 +1,365 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Extensions; + using System; + + /// Get the properties of an extension topic. + /// + /// [OpenAPI] Get=>GET:"/{scope}/providers/Microsoft.EventGrid/extensionTopics/default" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsCommon.Get, @"AzEventGridExtensionTopic_GetViaIdentity")] + [global::System.Management.Automation.OutputType(typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IExtensionTopic))] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Description(@"Get the properties of an extension topic.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Generated] + public partial class GetAzEventGridExtensionTopic_GetViaIdentity : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener + { + /// A unique id generatd for the this cmdlet when it is instantiated. + private string __correlationId = System.Guid.NewGuid().ToString(); + + /// A copy of the Invocation Info (necessary to allow asJob to clone this cmdlet) + private global::System.Management.Automation.InvocationInfo __invocationInfo; + + /// A unique id generatd for the this cmdlet when ProcessRecord() is called. + private string __processRecordId; + + /// + /// The for this operation. + /// + private global::System.Threading.CancellationTokenSource _cancellationTokenSource = new global::System.Threading.CancellationTokenSource(); + + /// Wait for .NET debugger to attach + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Wait for .NET debugger to attach")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.EventGridManagementClient Client => Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.ClientAPI; + + /// + /// The credentials, account, tenant, and subscription used for communication with Azure + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The credentials, account, tenant, and subscription used for communication with Azure.")] + [global::System.Management.Automation.ValidateNotNull] + [global::System.Management.Automation.Alias("AzureRMContext", "AzureCredential")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Azure)] + public global::System.Management.Automation.PSObject DefaultProfile { get; set; } + + /// SendAsync Pipeline Steps to be appended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be appended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[] HttpPipelineAppend { get; set; } + + /// SendAsync Pipeline Steps to be prepended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be prepended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[] HttpPipelinePrepend { get; set; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.IEventGridIdentity _inputObject; + + /// Identity Parameter + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Identity Parameter", ValueFromPipeline = true)] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Path)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.IEventGridIdentity InputObject { get => this._inputObject; set => this._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.EventGrid.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Runtime.HttpPipeline Pipeline { get; set; } + + /// The URI for the proxy server to use + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "The URI for the proxy server to use")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Uri Proxy { get; set; } + + /// Credentials for a proxy server to use for the remote call + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Credentials for a proxy server to use for the remote call")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Management.Automation.PSCredential ProxyCredential { get; set; } + + /// Use the default credentials for the proxy + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Use the default credentials for the proxy")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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. + /// /// Determines if the rest of the onDefault method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnDefault(global::System.Net.Http.HttpResponseMessage responseMessage, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnOk will be called before the regular onOk has been processed, allowing customization of what happens + /// on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// 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() + { + var telemetryId = Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.GetTelemetryId.Invoke(); + if (telemetryId != "" && telemetryId != "internal") + { + __correlationId = telemetryId; + } + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + + } + + /// + /// Intializes a new instance of the cmdlet class. + /// + public GetAzEventGridExtensionTopic_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.EventGrid.Runtime.IEventListener.Signal(string id, global::System.Threading.CancellationToken token, global::System.Func messageData) + { + using( NoSynchronizationContext ) + { + if (token.IsCancellationRequested) + { + return ; + } + + switch ( id ) + { + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Information: + { + var data = messageData(); + WriteInformation(data.Message, new string[]{}); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Error: + { + WriteError(new global::System.Management.Automation.ErrorRecord( new global::System.Exception(messageData().Message), string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null ) ); + return ; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.EventData ), InvocationInformation, this.ParameterSetName, __correlationId, __processRecordId, null ); + if (token.IsCancellationRequested) + { + return ; + } + WriteDebug($"{id}: {(messageData().Message ?? global::System.String.Empty)}"); + } + } + + /// Performs execution of the command. + protected override void ProcessRecord() + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + using( var asyncCommandRuntime = new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token); + } + } + catch (global::System.AggregateException aggregateException) + { + // unroll the inner exceptions to get the root cause + foreach( var innerException in aggregateException.Flatten().InnerExceptions ) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(innerException,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + } + catch (global::System.Exception exception) when ((exception as System.Management.Automation.PipelineStoppedException)== null || (exception as System.Management.Automation.PipelineStoppedException).InnerException != null) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(exception,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + finally + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletProcessRecordEnd).Wait(); + } + } + + /// Performs execution of the command, working asynchronously if required. + /// + /// A that will be complete when handling of the method is completed. + /// + protected async global::System.Threading.Tasks.Task ProcessRecordAsync() + { + using( NoSynchronizationContext ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + if (InputObject?.Id != null) + { + await this.Client.ExtensionTopicsGetViaIdentity(InputObject.Id, onOk, onDefault, this, Pipeline); + } + else + { + // try to call with PATH parameters from Input Object + if (null == InputObject.Scope) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.Scope"),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, InputObject) ); + } + await this.Client.ExtensionTopicsGet(InputObject.Scope ?? null, onOk, onDefault, this, Pipeline); + } + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Cancel(); + base.StopProcessing(); + } + + /// + /// a delegate that is called when the remote service returns default (any response code not handled elsewhere). + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onDefault(global::System.Net.Http.HttpResponseMessage responseMessage) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnDefault(responseMessage, ref _returnNow); + // if overrideOnDefault has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // Error Response : default + // Unrecognized Response. Create an error record based on what we have. + var ex = new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.RestException(responseMessage); + WriteError( new global::System.Management.Automation.ErrorRecord(ex, ex.Code, global::System.Management.Automation.ErrorCategory.InvalidOperation, new { }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(ex.Message) { RecommendedAction = ex.Action } + }); + } + } + + /// a delegate that is called when the remote service returns 200 (OK). + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as 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.EventGrid.Models.Api20211015Preview.IExtensionTopic + WriteObject((await response)); + } + } + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/cmdlets/GetAzEventGridOperation_List.cs b/swaggerci/eventgrid/generated/cmdlets/GetAzEventGridOperation_List.cs new file mode 100644 index 000000000000..2453cc0d778b --- /dev/null +++ b/swaggerci/eventgrid/generated/cmdlets/GetAzEventGridOperation_List.cs @@ -0,0 +1,349 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Extensions; + using System; + + /// + /// List the available operations supported by the Microsoft.EventGrid resource provider. + /// + /// + /// [OpenAPI] List=>GET:"/providers/Microsoft.EventGrid/operations" + /// + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.InternalExport] + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsCommon.Get, @"AzEventGridOperation_List")] + [global::System.Management.Automation.OutputType(typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IOperation))] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Description(@"List the available operations supported by the Microsoft.EventGrid resource provider.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Generated] + public partial class GetAzEventGridOperation_List : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener + { + /// A unique id generatd for the this cmdlet when it is instantiated. + private string __correlationId = System.Guid.NewGuid().ToString(); + + /// A copy of the Invocation Info (necessary to allow asJob to clone this cmdlet) + private global::System.Management.Automation.InvocationInfo __invocationInfo; + + /// A unique id generatd for the this cmdlet when ProcessRecord() is called. + private string __processRecordId; + + /// + /// The for this operation. + /// + private global::System.Threading.CancellationTokenSource _cancellationTokenSource = new global::System.Threading.CancellationTokenSource(); + + /// Wait for .NET debugger to attach + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Wait for .NET debugger to attach")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.EventGridManagementClient Client => Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.ClientAPI; + + /// + /// The credentials, account, tenant, and subscription used for communication with Azure + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The credentials, account, tenant, and subscription used for communication with Azure.")] + [global::System.Management.Automation.ValidateNotNull] + [global::System.Management.Automation.Alias("AzureRMContext", "AzureCredential")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Azure)] + public global::System.Management.Automation.PSObject DefaultProfile { get; set; } + + /// SendAsync Pipeline Steps to be appended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be appended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[] HttpPipelineAppend { get; set; } + + /// SendAsync Pipeline Steps to be prepended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be prepended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[] HttpPipelinePrepend { get; set; } + + /// Accessor for our copy of the InvocationInfo. + public global::System.Management.Automation.InvocationInfo InvocationInformation { get => __invocationInfo = __invocationInfo ?? this.MyInvocation ; set { __invocationInfo = value; } } + + /// + /// cancellation delegate. Stops the cmdlet when called. + /// + global::System.Action Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Runtime.HttpPipeline Pipeline { get; set; } + + /// The URI for the proxy server to use + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "The URI for the proxy server to use")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Uri Proxy { get; set; } + + /// Credentials for a proxy server to use for the remote call + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Credentials for a proxy server to use for the remote call")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Management.Automation.PSCredential ProxyCredential { get; set; } + + /// Use the default credentials for the proxy + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Use the default credentials for the proxy")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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. + /// /// Determines if the rest of the onDefault method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnDefault(global::System.Net.Http.HttpResponseMessage responseMessage, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnOk will be called before the regular onOk has been processed, allowing customization of what happens + /// on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// 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() + { + var telemetryId = Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.GetTelemetryId.Invoke(); + if (telemetryId != "" && telemetryId != "internal") + { + __correlationId = telemetryId; + } + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + + } + + /// + /// Intializes a new instance of the cmdlet class. + /// + public GetAzEventGridOperation_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.EventGrid.Runtime.IEventListener.Signal(string id, global::System.Threading.CancellationToken token, global::System.Func messageData) + { + using( NoSynchronizationContext ) + { + if (token.IsCancellationRequested) + { + return ; + } + + switch ( id ) + { + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Information: + { + var data = messageData(); + WriteInformation(data.Message, new string[]{}); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Error: + { + WriteError(new global::System.Management.Automation.ErrorRecord( new global::System.Exception(messageData().Message), string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null ) ); + return ; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.EventData ), InvocationInformation, this.ParameterSetName, __correlationId, __processRecordId, null ); + if (token.IsCancellationRequested) + { + return ; + } + WriteDebug($"{id}: {(messageData().Message ?? global::System.String.Empty)}"); + } + } + + /// Performs execution of the command. + protected override void ProcessRecord() + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + using( var asyncCommandRuntime = new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token); + } + } + catch (global::System.AggregateException aggregateException) + { + // unroll the inner exceptions to get the root cause + foreach( var innerException in aggregateException.Flatten().InnerExceptions ) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(innerException,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + } + catch (global::System.Exception exception) when ((exception as System.Management.Automation.PipelineStoppedException)== null || (exception as System.Management.Automation.PipelineStoppedException).InnerException != null) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(exception,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + finally + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletProcessRecordEnd).Wait(); + } + } + + /// Performs execution of the command, working asynchronously if required. + /// + /// A that will be complete when handling of the method is completed. + /// + protected async global::System.Threading.Tasks.Task ProcessRecordAsync() + { + using( NoSynchronizationContext ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await this.Client.OperationsList(onOk, onDefault, this, Pipeline); + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Cancel(); + base.StopProcessing(); + } + + /// + /// a delegate that is called when the remote service returns default (any response code not handled elsewhere). + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onDefault(global::System.Net.Http.HttpResponseMessage responseMessage) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnDefault(responseMessage, ref _returnNow); + // if overrideOnDefault has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // Error Response : default + // Unrecognized Response. Create an error record based on what we have. + var ex = new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.RestException(responseMessage); + WriteError( new global::System.Management.Automation.ErrorRecord(ex, ex.Code, global::System.Management.Automation.ErrorCategory.InvalidOperation, new { }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(ex.Message) { RecommendedAction = ex.Action } + }); + } + } + + /// a delegate that is called when the remote service returns 200 (OK). + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnOk(responseMessage, response, ref _returnNow); + // if overrideOnOk has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // onOk - response for 200 / application/json + // response should be returning an array of some kind. +Pageable + // pageable / value / + WriteObject((await response).Value, true); + } + } + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/cmdlets/GetAzEventGridPartnerConfiguration_Get.cs b/swaggerci/eventgrid/generated/cmdlets/GetAzEventGridPartnerConfiguration_Get.cs new file mode 100644 index 000000000000..75804b6745e7 --- /dev/null +++ b/swaggerci/eventgrid/generated/cmdlets/GetAzEventGridPartnerConfiguration_Get.cs @@ -0,0 +1,383 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Extensions; + using System; + + /// Get properties of a partner configuration. + /// + /// [OpenAPI] Get=>GET:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.EventGrid/partnerConfigurations/default" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsCommon.Get, @"AzEventGridPartnerConfiguration_Get")] + [global::System.Management.Automation.OutputType(typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerConfiguration))] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Description(@"Get properties of a partner configuration.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Generated] + public partial class GetAzEventGridPartnerConfiguration_Get : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener + { + /// A unique id generatd for the this cmdlet when it is instantiated. + private string __correlationId = System.Guid.NewGuid().ToString(); + + /// A copy of the Invocation Info (necessary to allow asJob to clone this cmdlet) + private global::System.Management.Automation.InvocationInfo __invocationInfo; + + /// A unique id generatd for the this cmdlet when ProcessRecord() is called. + private string __processRecordId; + + /// + /// The for this operation. + /// + private global::System.Threading.CancellationTokenSource _cancellationTokenSource = new global::System.Threading.CancellationTokenSource(); + + /// Wait for .NET debugger to attach + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Wait for .NET debugger to attach")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.EventGridManagementClient Client => Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.ClientAPI; + + /// + /// The credentials, account, tenant, and subscription used for communication with Azure + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The credentials, account, tenant, and subscription used for communication with Azure.")] + [global::System.Management.Automation.ValidateNotNull] + [global::System.Management.Automation.Alias("AzureRMContext", "AzureCredential")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Azure)] + public global::System.Management.Automation.PSObject DefaultProfile { get; set; } + + /// SendAsync Pipeline Steps to be appended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be appended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[] HttpPipelineAppend { get; set; } + + /// SendAsync Pipeline Steps to be prepended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be prepended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[] HttpPipelinePrepend { get; set; } + + /// Accessor for our copy of the InvocationInfo. + public global::System.Management.Automation.InvocationInfo InvocationInformation { get => __invocationInfo = __invocationInfo ?? this.MyInvocation ; set { __invocationInfo = value; } } + + /// + /// cancellation delegate. Stops the cmdlet when called. + /// + global::System.Action Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Runtime.HttpPipeline Pipeline { get; set; } + + /// The URI for the proxy server to use + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "The URI for the proxy server to use")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Uri Proxy { get; set; } + + /// Credentials for a proxy server to use for the remote call + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Credentials for a proxy server to use for the remote call")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Management.Automation.PSCredential ProxyCredential { get; set; } + + /// Use the default credentials for the proxy + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Use the default credentials for the proxy")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter ProxyUseDefaultCredentials { get; set; } + + /// Backing field for property. + private string _resourceGroupName; + + /// The name of the resource group within the user's subscription. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the resource group within the user's subscription.")] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the resource group within the user's subscription.", + SerializedName = @"resourceGroupName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Path)] + public string ResourceGroupName { get => this._resourceGroupName; set => this._resourceGroupName = value; } + + /// Backing field for property. + private string[] _subscriptionId; + + /// + /// Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription ID forms part of the + /// URI for every service call. + /// + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.")] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.", + SerializedName = @"subscriptionId", + PossibleTypes = new [] { typeof(string) })] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.DefaultInfo( + Name = @"", + Description =@"", + Script = @"(Get-AzContext).Subscription.Id")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Path)] + public string[] SubscriptionId { get => this._subscriptionId; set => this._subscriptionId = value; } + + /// + /// overrideOnDefault will be called before the regular onDefault has been processed, allowing customization of what + /// happens on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// /// Determines if the rest of the onDefault method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnDefault(global::System.Net.Http.HttpResponseMessage responseMessage, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnOk will be called before the regular onOk has been processed, allowing customization of what happens + /// on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// 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() + { + var telemetryId = Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.GetTelemetryId.Invoke(); + if (telemetryId != "" && telemetryId != "internal") + { + __correlationId = telemetryId; + } + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + + } + + /// + /// Intializes a new instance of the cmdlet class. + /// + public GetAzEventGridPartnerConfiguration_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.EventGrid.Runtime.IEventListener.Signal(string id, global::System.Threading.CancellationToken token, global::System.Func messageData) + { + using( NoSynchronizationContext ) + { + if (token.IsCancellationRequested) + { + return ; + } + + switch ( id ) + { + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Information: + { + var data = messageData(); + WriteInformation(data.Message, new string[]{}); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Error: + { + WriteError(new global::System.Management.Automation.ErrorRecord( new global::System.Exception(messageData().Message), string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null ) ); + return ; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.EventData ), InvocationInformation, this.ParameterSetName, __correlationId, __processRecordId, null ); + if (token.IsCancellationRequested) + { + return ; + } + WriteDebug($"{id}: {(messageData().Message ?? global::System.String.Empty)}"); + } + } + + /// Performs execution of the command. + protected override void ProcessRecord() + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + using( var asyncCommandRuntime = new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token); + } + } + catch (global::System.AggregateException aggregateException) + { + // unroll the inner exceptions to get the root cause + foreach( var innerException in aggregateException.Flatten().InnerExceptions ) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(innerException,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + } + catch (global::System.Exception exception) when ((exception as System.Management.Automation.PipelineStoppedException)== null || (exception as System.Management.Automation.PipelineStoppedException).InnerException != null) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(exception,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + finally + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletProcessRecordEnd).Wait(); + } + } + + /// Performs execution of the command, working asynchronously if required. + /// + /// A that will be complete when handling of the method is completed. + /// + protected async global::System.Threading.Tasks.Task ProcessRecordAsync() + { + using( NoSynchronizationContext ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + foreach( var SubscriptionId in this.SubscriptionId ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await this.Client.PartnerConfigurationsGet(SubscriptionId, ResourceGroupName, onOk, onDefault, this, Pipeline); + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.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.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Cancel(); + base.StopProcessing(); + } + + /// + /// a delegate that is called when the remote service returns default (any response code not handled elsewhere). + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onDefault(global::System.Net.Http.HttpResponseMessage responseMessage) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnDefault(responseMessage, ref _returnNow); + // if overrideOnDefault has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // Error Response : default + // Unrecognized Response. Create an error record based on what we have. + var ex = new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.RestException(responseMessage); + 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 } + }); + } + } + + /// a delegate that is 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.EventGrid.Models.Api20211015Preview.IPartnerConfiguration + WriteObject((await response)); + } + } + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/cmdlets/GetAzEventGridPartnerConfiguration_GetViaIdentity.cs b/swaggerci/eventgrid/generated/cmdlets/GetAzEventGridPartnerConfiguration_GetViaIdentity.cs new file mode 100644 index 000000000000..a59fefee71a2 --- /dev/null +++ b/swaggerci/eventgrid/generated/cmdlets/GetAzEventGridPartnerConfiguration_GetViaIdentity.cs @@ -0,0 +1,369 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Extensions; + using System; + + /// Get properties of a partner configuration. + /// + /// [OpenAPI] Get=>GET:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.EventGrid/partnerConfigurations/default" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsCommon.Get, @"AzEventGridPartnerConfiguration_GetViaIdentity")] + [global::System.Management.Automation.OutputType(typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerConfiguration))] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Description(@"Get properties of a partner configuration.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Generated] + public partial class GetAzEventGridPartnerConfiguration_GetViaIdentity : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener + { + /// A unique id generatd for the this cmdlet when it is instantiated. + private string __correlationId = System.Guid.NewGuid().ToString(); + + /// A copy of the Invocation Info (necessary to allow asJob to clone this cmdlet) + private global::System.Management.Automation.InvocationInfo __invocationInfo; + + /// A unique id generatd for the this cmdlet when ProcessRecord() is called. + private string __processRecordId; + + /// + /// The for this operation. + /// + private global::System.Threading.CancellationTokenSource _cancellationTokenSource = new global::System.Threading.CancellationTokenSource(); + + /// Wait for .NET debugger to attach + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Wait for .NET debugger to attach")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.EventGridManagementClient Client => Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.ClientAPI; + + /// + /// The credentials, account, tenant, and subscription used for communication with Azure + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The credentials, account, tenant, and subscription used for communication with Azure.")] + [global::System.Management.Automation.ValidateNotNull] + [global::System.Management.Automation.Alias("AzureRMContext", "AzureCredential")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Azure)] + public global::System.Management.Automation.PSObject DefaultProfile { get; set; } + + /// SendAsync Pipeline Steps to be appended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be appended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[] HttpPipelineAppend { get; set; } + + /// SendAsync Pipeline Steps to be prepended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be prepended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[] HttpPipelinePrepend { get; set; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.IEventGridIdentity _inputObject; + + /// Identity Parameter + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Identity Parameter", ValueFromPipeline = true)] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Path)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.IEventGridIdentity InputObject { get => this._inputObject; set => this._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.EventGrid.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Runtime.HttpPipeline Pipeline { get; set; } + + /// The URI for the proxy server to use + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "The URI for the proxy server to use")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Uri Proxy { get; set; } + + /// Credentials for a proxy server to use for the remote call + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Credentials for a proxy server to use for the remote call")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Management.Automation.PSCredential ProxyCredential { get; set; } + + /// Use the default credentials for the proxy + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Use the default credentials for the proxy")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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. + /// /// Determines if the rest of the onDefault method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnDefault(global::System.Net.Http.HttpResponseMessage responseMessage, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnOk will be called before the regular onOk has been processed, allowing customization of what happens + /// on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// 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() + { + var telemetryId = Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.GetTelemetryId.Invoke(); + if (telemetryId != "" && telemetryId != "internal") + { + __correlationId = telemetryId; + } + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + + } + + /// + /// Intializes a new instance of the cmdlet class. + /// + public GetAzEventGridPartnerConfiguration_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.EventGrid.Runtime.IEventListener.Signal(string id, global::System.Threading.CancellationToken token, global::System.Func messageData) + { + using( NoSynchronizationContext ) + { + if (token.IsCancellationRequested) + { + return ; + } + + switch ( id ) + { + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Information: + { + var data = messageData(); + WriteInformation(data.Message, new string[]{}); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Error: + { + WriteError(new global::System.Management.Automation.ErrorRecord( new global::System.Exception(messageData().Message), string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null ) ); + return ; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.EventData ), InvocationInformation, this.ParameterSetName, __correlationId, __processRecordId, null ); + if (token.IsCancellationRequested) + { + return ; + } + WriteDebug($"{id}: {(messageData().Message ?? global::System.String.Empty)}"); + } + } + + /// Performs execution of the command. + protected override void ProcessRecord() + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + using( var asyncCommandRuntime = new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token); + } + } + catch (global::System.AggregateException aggregateException) + { + // unroll the inner exceptions to get the root cause + foreach( var innerException in aggregateException.Flatten().InnerExceptions ) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(innerException,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + } + catch (global::System.Exception exception) when ((exception as System.Management.Automation.PipelineStoppedException)== null || (exception as System.Management.Automation.PipelineStoppedException).InnerException != null) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(exception,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + finally + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletProcessRecordEnd).Wait(); + } + } + + /// Performs execution of the command, working asynchronously if required. + /// + /// A that will be complete when handling of the method is completed. + /// + protected async global::System.Threading.Tasks.Task ProcessRecordAsync() + { + using( NoSynchronizationContext ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + if (InputObject?.Id != null) + { + await this.Client.PartnerConfigurationsGetViaIdentity(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) ); + } + await this.Client.PartnerConfigurationsGet(InputObject.SubscriptionId ?? null, InputObject.ResourceGroupName ?? null, onOk, onDefault, this, Pipeline); + } + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Cancel(); + base.StopProcessing(); + } + + /// + /// a delegate that is called when the remote service returns default (any response code not handled elsewhere). + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onDefault(global::System.Net.Http.HttpResponseMessage responseMessage) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnDefault(responseMessage, ref _returnNow); + // if overrideOnDefault has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // Error Response : default + // Unrecognized Response. Create an error record based on what we have. + var ex = new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.RestException(responseMessage); + WriteError( new global::System.Management.Automation.ErrorRecord(ex, ex.Code, global::System.Management.Automation.ErrorCategory.InvalidOperation, new { }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(ex.Message) { RecommendedAction = ex.Action } + }); + } + } + + /// a delegate that is called when the remote service returns 200 (OK). + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as 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.EventGrid.Models.Api20211015Preview.IPartnerConfiguration + WriteObject((await response)); + } + } + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/cmdlets/GetAzEventGridPartnerConfiguration_List.cs b/swaggerci/eventgrid/generated/cmdlets/GetAzEventGridPartnerConfiguration_List.cs new file mode 100644 index 000000000000..20ca856fd991 --- /dev/null +++ b/swaggerci/eventgrid/generated/cmdlets/GetAzEventGridPartnerConfiguration_List.cs @@ -0,0 +1,384 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Extensions; + using System; + + /// List all the partner configurations under a resource group. + /// + /// [OpenAPI] ListByResourceGroup=>GET:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.EventGrid/partnerConfigurations" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsCommon.Get, @"AzEventGridPartnerConfiguration_List")] + [global::System.Management.Automation.OutputType(typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerConfiguration))] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Description(@"List all the partner configurations under a resource group.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Generated] + public partial class GetAzEventGridPartnerConfiguration_List : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener + { + /// A unique id generatd for the this cmdlet when it is instantiated. + private string __correlationId = System.Guid.NewGuid().ToString(); + + /// A copy of the Invocation Info (necessary to allow asJob to clone this cmdlet) + private global::System.Management.Automation.InvocationInfo __invocationInfo; + + /// A unique id generatd for the this cmdlet when ProcessRecord() is called. + private string __processRecordId; + + /// + /// The for this operation. + /// + private global::System.Threading.CancellationTokenSource _cancellationTokenSource = new global::System.Threading.CancellationTokenSource(); + + /// Wait for .NET debugger to attach + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Wait for .NET debugger to attach")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.EventGridManagementClient Client => Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.ClientAPI; + + /// + /// The credentials, account, tenant, and subscription used for communication with Azure + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The credentials, account, tenant, and subscription used for communication with Azure.")] + [global::System.Management.Automation.ValidateNotNull] + [global::System.Management.Automation.Alias("AzureRMContext", "AzureCredential")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Azure)] + public global::System.Management.Automation.PSObject DefaultProfile { get; set; } + + /// SendAsync Pipeline Steps to be appended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be appended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[] HttpPipelineAppend { get; set; } + + /// SendAsync Pipeline Steps to be prepended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be prepended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[] HttpPipelinePrepend { get; set; } + + /// Accessor for our copy of the InvocationInfo. + public global::System.Management.Automation.InvocationInfo InvocationInformation { get => __invocationInfo = __invocationInfo ?? this.MyInvocation ; set { __invocationInfo = value; } } + + /// + /// cancellation delegate. Stops the cmdlet when called. + /// + global::System.Action Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Runtime.HttpPipeline Pipeline { get; set; } + + /// The URI for the proxy server to use + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "The URI for the proxy server to use")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Uri Proxy { get; set; } + + /// Credentials for a proxy server to use for the remote call + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Credentials for a proxy server to use for the remote call")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Management.Automation.PSCredential ProxyCredential { get; set; } + + /// Use the default credentials for the proxy + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Use the default credentials for the proxy")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter ProxyUseDefaultCredentials { get; set; } + + /// Backing field for property. + private string _resourceGroupName; + + /// The name of the resource group within the user's subscription. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the resource group within the user's subscription.")] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the resource group within the user's subscription.", + SerializedName = @"resourceGroupName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Path)] + public string ResourceGroupName { get => this._resourceGroupName; set => this._resourceGroupName = value; } + + /// Backing field for property. + private string[] _subscriptionId; + + /// + /// Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription ID forms part of the + /// URI for every service call. + /// + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.")] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.", + SerializedName = @"subscriptionId", + PossibleTypes = new [] { typeof(string) })] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.DefaultInfo( + Name = @"", + Description =@"", + Script = @"(Get-AzContext).Subscription.Id")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Path)] + public string[] SubscriptionId { get => this._subscriptionId; set => this._subscriptionId = value; } + + /// + /// overrideOnDefault will be called before the regular onDefault has been processed, allowing customization of what + /// happens on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// /// Determines if the rest of the onDefault method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnDefault(global::System.Net.Http.HttpResponseMessage responseMessage, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnOk will be called before the regular onOk has been processed, allowing customization of what happens + /// on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// 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() + { + var telemetryId = Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.GetTelemetryId.Invoke(); + if (telemetryId != "" && telemetryId != "internal") + { + __correlationId = telemetryId; + } + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + + } + + /// + /// Intializes a new instance of the cmdlet class. + /// + public GetAzEventGridPartnerConfiguration_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.EventGrid.Runtime.IEventListener.Signal(string id, global::System.Threading.CancellationToken token, global::System.Func messageData) + { + using( NoSynchronizationContext ) + { + if (token.IsCancellationRequested) + { + return ; + } + + switch ( id ) + { + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Information: + { + var data = messageData(); + WriteInformation(data.Message, new string[]{}); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Error: + { + WriteError(new global::System.Management.Automation.ErrorRecord( new global::System.Exception(messageData().Message), string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null ) ); + return ; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.EventData ), InvocationInformation, this.ParameterSetName, __correlationId, __processRecordId, null ); + if (token.IsCancellationRequested) + { + return ; + } + WriteDebug($"{id}: {(messageData().Message ?? global::System.String.Empty)}"); + } + } + + /// Performs execution of the command. + protected override void ProcessRecord() + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + using( var asyncCommandRuntime = new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token); + } + } + catch (global::System.AggregateException aggregateException) + { + // unroll the inner exceptions to get the root cause + foreach( var innerException in aggregateException.Flatten().InnerExceptions ) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(innerException,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + } + catch (global::System.Exception exception) when ((exception as System.Management.Automation.PipelineStoppedException)== null || (exception as System.Management.Automation.PipelineStoppedException).InnerException != null) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(exception,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + finally + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletProcessRecordEnd).Wait(); + } + } + + /// Performs execution of the command, working asynchronously if required. + /// + /// A that will be complete when handling of the method is completed. + /// + protected async global::System.Threading.Tasks.Task ProcessRecordAsync() + { + using( NoSynchronizationContext ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + foreach( var SubscriptionId in this.SubscriptionId ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await this.Client.PartnerConfigurationsListByResourceGroup(SubscriptionId, ResourceGroupName, onOk, onDefault, this, Pipeline); + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.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.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Cancel(); + base.StopProcessing(); + } + + /// + /// a delegate that is called when the remote service returns default (any response code not handled elsewhere). + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onDefault(global::System.Net.Http.HttpResponseMessage responseMessage) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnDefault(responseMessage, ref _returnNow); + // if overrideOnDefault has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // Error Response : default + // Unrecognized Response. Create an error record based on what we have. + var ex = new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.RestException(responseMessage); + 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 } + }); + } + } + + /// a delegate that is called when the remote service returns 200 (OK). + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnOk(responseMessage, response, ref _returnNow); + // if overrideOnOk has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // onOk - response for 200 / application/json + // response should be returning an array of some kind. +Pageable + // pageable / value / + WriteObject((await response).Value, true); + } + } + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/cmdlets/GetAzEventGridPartnerConfiguration_List1.cs b/swaggerci/eventgrid/generated/cmdlets/GetAzEventGridPartnerConfiguration_List1.cs new file mode 100644 index 000000000000..c948ca8dcbd1 --- /dev/null +++ b/swaggerci/eventgrid/generated/cmdlets/GetAzEventGridPartnerConfiguration_List1.cs @@ -0,0 +1,428 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Extensions; + using System; + + /// List all the partner configurations under an Azure subscription. + /// + /// [OpenAPI] ListBySubscription=>GET:"/subscriptions/{subscriptionId}/providers/Microsoft.EventGrid/partnerConfigurations" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsCommon.Get, @"AzEventGridPartnerConfiguration_List1")] + [global::System.Management.Automation.OutputType(typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerConfiguration))] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Description(@"List all the partner configurations under an Azure subscription.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Generated] + public partial class GetAzEventGridPartnerConfiguration_List1 : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener + { + /// A unique id generatd for the this cmdlet when it is instantiated. + private string __correlationId = System.Guid.NewGuid().ToString(); + + /// A copy of the Invocation Info (necessary to allow asJob to clone this cmdlet) + private global::System.Management.Automation.InvocationInfo __invocationInfo; + + /// A unique id generatd for the this cmdlet when ProcessRecord() is called. + private string __processRecordId; + + /// + /// The for this operation. + /// + private global::System.Threading.CancellationTokenSource _cancellationTokenSource = new global::System.Threading.CancellationTokenSource(); + + /// A flag to tell whether it is the first onOK call. + private bool _isFirst = true; + + /// Link to retrieve next page. + private string _nextLink; + + /// Wait for .NET debugger to attach + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Wait for .NET debugger to attach")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.EventGridManagementClient Client => Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.ClientAPI; + + /// + /// The credentials, account, tenant, and subscription used for communication with Azure + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The credentials, account, tenant, and subscription used for communication with Azure.")] + [global::System.Management.Automation.ValidateNotNull] + [global::System.Management.Automation.Alias("AzureRMContext", "AzureCredential")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Azure)] + public global::System.Management.Automation.PSObject DefaultProfile { get; set; } + + /// Backing field for property. + private string _filter; + + /// + /// The query used to filter the search results using OData syntax. Filtering is permitted on the 'name' property only and + /// with limited number of OData operations. These operations are: the 'contains' function as well as the following logical + /// operations: not, and, or, eq (for equal), and ne (for not equal). No arithmetic operations are supported. The following + /// is a valid filter example: $filter=contains(namE, 'PATTERN') and name ne 'PATTERN-1'. The following is not a valid filter + /// example: $filter=location eq 'westus'. + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The query used to filter the search results using OData syntax. Filtering is permitted on the 'name' property only and with limited number of OData operations. These operations are: the 'contains' function as well as the following logical operations: not, and, or, eq (for equal), and ne (for not equal). No arithmetic operations are supported. The following is a valid filter example: $filter=contains(namE, 'PATTERN') and name ne 'PATTERN-1'. The following is not a valid filter example: $filter=location eq 'westus'.")] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The query used to filter the search results using OData syntax. Filtering is permitted on the 'name' property only and with limited number of OData operations. These operations are: the 'contains' function as well as the following logical operations: not, and, or, eq (for equal), and ne (for not equal). No arithmetic operations are supported. The following is a valid filter example: $filter=contains(namE, 'PATTERN') and name ne 'PATTERN-1'. The following is not a valid filter example: $filter=location eq 'westus'.", + SerializedName = @"$filter", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[] HttpPipelineAppend { get; set; } + + /// SendAsync Pipeline Steps to be prepended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be prepended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[] HttpPipelinePrepend { get; set; } + + /// Accessor for our copy of the InvocationInfo. + public global::System.Management.Automation.InvocationInfo InvocationInformation { get => __invocationInfo = __invocationInfo ?? this.MyInvocation ; set { __invocationInfo = value; } } + + /// + /// cancellation delegate. Stops the cmdlet when called. + /// + global::System.Action Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Runtime.HttpPipeline Pipeline { get; set; } + + /// The URI for the proxy server to use + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "The URI for the proxy server to use")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Uri Proxy { get; set; } + + /// Credentials for a proxy server to use for the remote call + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Credentials for a proxy server to use for the remote call")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Management.Automation.PSCredential ProxyCredential { get; set; } + + /// Use the default credentials for the proxy + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Use the default credentials for the proxy")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter ProxyUseDefaultCredentials { get; set; } + + /// Backing field for property. + private string[] _subscriptionId; + + /// + /// Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription ID forms part of the + /// URI for every service call. + /// + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.")] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.", + SerializedName = @"subscriptionId", + PossibleTypes = new [] { typeof(string) })] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.DefaultInfo( + Name = @"", + Description =@"", + Script = @"(Get-AzContext).Subscription.Id")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Path)] + public string[] SubscriptionId { get => this._subscriptionId; set => this._subscriptionId = value; } + + /// Backing field for property. + private int _top; + + /// + /// The number of results to return per page for the list operation. Valid range for top parameter is 1 to 100. If not specified, + /// the default number of results to be returned is 20 items per page. + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The number of results to return per page for the list operation. Valid range for top parameter is 1 to 100. If not specified, the default number of results to be returned is 20 items per page.")] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The number of results to return per page for the list operation. Valid range for top parameter is 1 to 100. If not specified, the default number of results to be returned is 20 items per page.", + SerializedName = @"$top", + PossibleTypes = new [] { typeof(int) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Query)] + public int Top { get => this._top; set => this._top = value; } + + /// + /// overrideOnDefault will be called before the regular onDefault has been processed, allowing customization of what + /// happens on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// /// Determines if the rest of the onDefault method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnDefault(global::System.Net.Http.HttpResponseMessage responseMessage, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnOk will be called before the regular onOk has been processed, allowing customization of what happens + /// on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// 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() + { + var telemetryId = Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.GetTelemetryId.Invoke(); + if (telemetryId != "" && telemetryId != "internal") + { + __correlationId = telemetryId; + } + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + + } + + /// + /// Intializes a new instance of the cmdlet class. + /// + public GetAzEventGridPartnerConfiguration_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.EventGrid.Runtime.IEventListener.Signal(string id, global::System.Threading.CancellationToken token, global::System.Func messageData) + { + using( NoSynchronizationContext ) + { + if (token.IsCancellationRequested) + { + return ; + } + + switch ( id ) + { + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Information: + { + var data = messageData(); + WriteInformation(data.Message, new string[]{}); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Error: + { + WriteError(new global::System.Management.Automation.ErrorRecord( new global::System.Exception(messageData().Message), string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null ) ); + return ; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.EventData ), InvocationInformation, this.ParameterSetName, __correlationId, __processRecordId, null ); + if (token.IsCancellationRequested) + { + return ; + } + WriteDebug($"{id}: {(messageData().Message ?? global::System.String.Empty)}"); + } + } + + /// Performs execution of the command. + protected override void ProcessRecord() + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + using( var asyncCommandRuntime = new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token); + } + } + catch (global::System.AggregateException aggregateException) + { + // unroll the inner exceptions to get the root cause + foreach( var innerException in aggregateException.Flatten().InnerExceptions ) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(innerException,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + } + catch (global::System.Exception exception) when ((exception as System.Management.Automation.PipelineStoppedException)== null || (exception as System.Management.Automation.PipelineStoppedException).InnerException != null) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(exception,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + finally + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletProcessRecordEnd).Wait(); + } + } + + /// Performs execution of the command, working asynchronously if required. + /// + /// A that will be complete when handling of the method is completed. + /// + protected async global::System.Threading.Tasks.Task ProcessRecordAsync() + { + using( NoSynchronizationContext ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + foreach( var SubscriptionId in this.SubscriptionId ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await this.Client.PartnerConfigurationsListBySubscription(SubscriptionId, this.InvocationInformation.BoundParameters.ContainsKey("Filter") ? Filter : null, this.InvocationInformation.BoundParameters.ContainsKey("Top") ? Top : default(int?), onOk, onDefault, this, Pipeline); + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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,Top=this.InvocationInformation.BoundParameters.ContainsKey("Top") ? Top : default(int?)}) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(urexception.Message) { RecommendedAction = urexception.Action } + }); + } + finally + { + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Cancel(); + base.StopProcessing(); + } + + /// + /// a delegate that is called when the remote service returns default (any response code not handled elsewhere). + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onDefault(global::System.Net.Http.HttpResponseMessage responseMessage) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnDefault(responseMessage, ref _returnNow); + // if overrideOnDefault has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // Error Response : default + // Unrecognized Response. Create an error record based on what we have. + var ex = new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.RestException(responseMessage); + 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, Top=this.InvocationInformation.BoundParameters.ContainsKey("Top") ? Top : default(int?) }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(ex.Message) { RecommendedAction = ex.Action } + }); + } + } + + /// a delegate that is called when the remote service returns 200 (OK). + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnOk(responseMessage, response, ref _returnNow); + // if overrideOnOk has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // onOk - response for 200 / application/json + // response should be returning an array of some kind. +Pageable + // pageable / value / nextLink + var result = await response; + WriteObject(result.Value,true); + _nextLink = result.NextLink; + if (_isFirst) + { + _isFirst = false; + while (_nextLink != null) + { + if (responseMessage.RequestMessage is System.Net.Http.HttpRequestMessage requestMessage ) + { + requestMessage = requestMessage.Clone(new global::System.Uri( _nextLink ),Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Method.Get ); + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.FollowingNextLink); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await this.Client.PartnerConfigurationsListBySubscription_Call(requestMessage, onOk, onDefault, this, Pipeline); + } + } + } + } + } + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/cmdlets/GetAzEventGridPartnerDestination_Get.cs b/swaggerci/eventgrid/generated/cmdlets/GetAzEventGridPartnerDestination_Get.cs new file mode 100644 index 000000000000..5d8fb8d3c5a7 --- /dev/null +++ b/swaggerci/eventgrid/generated/cmdlets/GetAzEventGridPartnerDestination_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.EventGrid.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Extensions; + using System; + + /// Get properties of a partner destination. + /// + /// [OpenAPI] Get=>GET:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.EventGrid/partnerDestinations/{partnerDestinationName}" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsCommon.Get, @"AzEventGridPartnerDestination_Get")] + [global::System.Management.Automation.OutputType(typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerDestination))] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Description(@"Get properties of a partner destination.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Generated] + public partial class GetAzEventGridPartnerDestination_Get : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener + { + /// A unique id generatd for the this cmdlet when it is instantiated. + private string __correlationId = System.Guid.NewGuid().ToString(); + + /// A copy of the Invocation Info (necessary to allow asJob to clone this cmdlet) + private global::System.Management.Automation.InvocationInfo __invocationInfo; + + /// A unique id generatd for the this cmdlet when ProcessRecord() is called. + private string __processRecordId; + + /// + /// The for this operation. + /// + private global::System.Threading.CancellationTokenSource _cancellationTokenSource = new global::System.Threading.CancellationTokenSource(); + + /// Wait for .NET debugger to attach + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Wait for .NET debugger to attach")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.EventGridManagementClient Client => Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.ClientAPI; + + /// + /// The credentials, account, tenant, and subscription used for communication with Azure + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The credentials, account, tenant, and subscription used for communication with Azure.")] + [global::System.Management.Automation.ValidateNotNull] + [global::System.Management.Automation.Alias("AzureRMContext", "AzureCredential")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Azure)] + public global::System.Management.Automation.PSObject DefaultProfile { get; set; } + + /// SendAsync Pipeline Steps to be appended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be appended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[] HttpPipelineAppend { get; set; } + + /// SendAsync Pipeline Steps to be prepended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be prepended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[] HttpPipelinePrepend { get; set; } + + /// Accessor for our copy of the InvocationInfo. + public global::System.Management.Automation.InvocationInfo InvocationInformation { get => __invocationInfo = __invocationInfo ?? this.MyInvocation ; set { __invocationInfo = value; } } + + /// + /// cancellation delegate. Stops the cmdlet when called. + /// + global::System.Action Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener.Token => _cancellationTokenSource.Token; + + /// Backing field for property. + private string _name; + + /// Name of the partner destination. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Name of the partner destination.")] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Name of the partner destination.", + SerializedName = @"partnerDestinationName", + PossibleTypes = new [] { typeof(string) })] + [global::System.Management.Automation.Alias("PartnerDestinationName")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Runtime.HttpPipeline Pipeline { get; set; } + + /// The URI for the proxy server to use + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "The URI for the proxy server to use")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Uri Proxy { get; set; } + + /// Credentials for a proxy server to use for the remote call + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Credentials for a proxy server to use for the remote call")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Management.Automation.PSCredential ProxyCredential { get; set; } + + /// Use the default credentials for the proxy + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Use the default credentials for the proxy")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter ProxyUseDefaultCredentials { get; set; } + + /// Backing field for property. + private string _resourceGroupName; + + /// The name of the resource group within the user's subscription. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the resource group within the user's subscription.")] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the resource group within the user's subscription.", + SerializedName = @"resourceGroupName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Path)] + public string ResourceGroupName { get => this._resourceGroupName; set => this._resourceGroupName = value; } + + /// Backing field for property. + private string[] _subscriptionId; + + /// + /// Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription ID forms part of the + /// URI for every service call. + /// + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.")] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.", + SerializedName = @"subscriptionId", + PossibleTypes = new [] { typeof(string) })] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.DefaultInfo( + Name = @"", + Description =@"", + Script = @"(Get-AzContext).Subscription.Id")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Path)] + public string[] SubscriptionId { get => this._subscriptionId; set => this._subscriptionId = value; } + + /// + /// overrideOnDefault will be called before the regular onDefault has been processed, allowing customization of what + /// happens on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// /// Determines if the rest of the onDefault method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnDefault(global::System.Net.Http.HttpResponseMessage responseMessage, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnOk will be called before the regular onOk has been processed, allowing customization of what happens + /// on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// 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() + { + var telemetryId = Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.GetTelemetryId.Invoke(); + if (telemetryId != "" && telemetryId != "internal") + { + __correlationId = telemetryId; + } + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + + } + + /// + /// Intializes a new instance of the cmdlet class. + /// + public GetAzEventGridPartnerDestination_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.EventGrid.Runtime.IEventListener.Signal(string id, global::System.Threading.CancellationToken token, global::System.Func messageData) + { + using( NoSynchronizationContext ) + { + if (token.IsCancellationRequested) + { + return ; + } + + switch ( id ) + { + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Information: + { + var data = messageData(); + WriteInformation(data.Message, new string[]{}); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Error: + { + WriteError(new global::System.Management.Automation.ErrorRecord( new global::System.Exception(messageData().Message), string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null ) ); + return ; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.EventData ), InvocationInformation, this.ParameterSetName, __correlationId, __processRecordId, null ); + if (token.IsCancellationRequested) + { + return ; + } + WriteDebug($"{id}: {(messageData().Message ?? global::System.String.Empty)}"); + } + } + + /// Performs execution of the command. + protected override void ProcessRecord() + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + using( var asyncCommandRuntime = new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token); + } + } + catch (global::System.AggregateException aggregateException) + { + // unroll the inner exceptions to get the root cause + foreach( var innerException in aggregateException.Flatten().InnerExceptions ) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(innerException,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + } + catch (global::System.Exception exception) when ((exception as System.Management.Automation.PipelineStoppedException)== null || (exception as System.Management.Automation.PipelineStoppedException).InnerException != null) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(exception,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + finally + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletProcessRecordEnd).Wait(); + } + } + + /// Performs execution of the command, working asynchronously if required. + /// + /// A that will be complete when handling of the method is completed. + /// + protected async global::System.Threading.Tasks.Task ProcessRecordAsync() + { + using( NoSynchronizationContext ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + foreach( var SubscriptionId in this.SubscriptionId ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await this.Client.PartnerDestinationsGet(SubscriptionId, ResourceGroupName, Name, onOk, onDefault, this, Pipeline); + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.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.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Cancel(); + base.StopProcessing(); + } + + /// + /// a delegate that is called when the remote service returns default (any response code not handled elsewhere). + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onDefault(global::System.Net.Http.HttpResponseMessage responseMessage) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnDefault(responseMessage, ref _returnNow); + // if overrideOnDefault has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // Error Response : default + // Unrecognized Response. Create an error record based on what we have. + var ex = new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.RestException(responseMessage); + 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 } + }); + } + } + + /// a delegate that is 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.EventGrid.Models.Api20211015Preview.IPartnerDestination + WriteObject((await response)); + } + } + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/cmdlets/GetAzEventGridPartnerDestination_GetViaIdentity.cs b/swaggerci/eventgrid/generated/cmdlets/GetAzEventGridPartnerDestination_GetViaIdentity.cs new file mode 100644 index 000000000000..c436caa2e756 --- /dev/null +++ b/swaggerci/eventgrid/generated/cmdlets/GetAzEventGridPartnerDestination_GetViaIdentity.cs @@ -0,0 +1,373 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Extensions; + using System; + + /// Get properties of a partner destination. + /// + /// [OpenAPI] Get=>GET:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.EventGrid/partnerDestinations/{partnerDestinationName}" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsCommon.Get, @"AzEventGridPartnerDestination_GetViaIdentity")] + [global::System.Management.Automation.OutputType(typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerDestination))] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Description(@"Get properties of a partner destination.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Generated] + public partial class GetAzEventGridPartnerDestination_GetViaIdentity : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener + { + /// A unique id generatd for the this cmdlet when it is instantiated. + private string __correlationId = System.Guid.NewGuid().ToString(); + + /// A copy of the Invocation Info (necessary to allow asJob to clone this cmdlet) + private global::System.Management.Automation.InvocationInfo __invocationInfo; + + /// A unique id generatd for the this cmdlet when ProcessRecord() is called. + private string __processRecordId; + + /// + /// The for this operation. + /// + private global::System.Threading.CancellationTokenSource _cancellationTokenSource = new global::System.Threading.CancellationTokenSource(); + + /// Wait for .NET debugger to attach + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Wait for .NET debugger to attach")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.EventGridManagementClient Client => Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.ClientAPI; + + /// + /// The credentials, account, tenant, and subscription used for communication with Azure + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The credentials, account, tenant, and subscription used for communication with Azure.")] + [global::System.Management.Automation.ValidateNotNull] + [global::System.Management.Automation.Alias("AzureRMContext", "AzureCredential")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Azure)] + public global::System.Management.Automation.PSObject DefaultProfile { get; set; } + + /// SendAsync Pipeline Steps to be appended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be appended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[] HttpPipelineAppend { get; set; } + + /// SendAsync Pipeline Steps to be prepended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be prepended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[] HttpPipelinePrepend { get; set; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.IEventGridIdentity _inputObject; + + /// Identity Parameter + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Identity Parameter", ValueFromPipeline = true)] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Path)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.IEventGridIdentity InputObject { get => this._inputObject; set => this._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.EventGrid.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Runtime.HttpPipeline Pipeline { get; set; } + + /// The URI for the proxy server to use + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "The URI for the proxy server to use")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Uri Proxy { get; set; } + + /// Credentials for a proxy server to use for the remote call + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Credentials for a proxy server to use for the remote call")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Management.Automation.PSCredential ProxyCredential { get; set; } + + /// Use the default credentials for the proxy + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Use the default credentials for the proxy")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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. + /// /// Determines if the rest of the onDefault method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnDefault(global::System.Net.Http.HttpResponseMessage responseMessage, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnOk will be called before the regular onOk has been processed, allowing customization of what happens + /// on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// 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() + { + var telemetryId = Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.GetTelemetryId.Invoke(); + if (telemetryId != "" && telemetryId != "internal") + { + __correlationId = telemetryId; + } + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + + } + + /// + /// Intializes a new instance of the cmdlet class. + /// + public GetAzEventGridPartnerDestination_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.EventGrid.Runtime.IEventListener.Signal(string id, global::System.Threading.CancellationToken token, global::System.Func messageData) + { + using( NoSynchronizationContext ) + { + if (token.IsCancellationRequested) + { + return ; + } + + switch ( id ) + { + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Information: + { + var data = messageData(); + WriteInformation(data.Message, new string[]{}); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Error: + { + WriteError(new global::System.Management.Automation.ErrorRecord( new global::System.Exception(messageData().Message), string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null ) ); + return ; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.EventData ), InvocationInformation, this.ParameterSetName, __correlationId, __processRecordId, null ); + if (token.IsCancellationRequested) + { + return ; + } + WriteDebug($"{id}: {(messageData().Message ?? global::System.String.Empty)}"); + } + } + + /// Performs execution of the command. + protected override void ProcessRecord() + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + using( var asyncCommandRuntime = new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token); + } + } + catch (global::System.AggregateException aggregateException) + { + // unroll the inner exceptions to get the root cause + foreach( var innerException in aggregateException.Flatten().InnerExceptions ) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(innerException,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + } + catch (global::System.Exception exception) when ((exception as System.Management.Automation.PipelineStoppedException)== null || (exception as System.Management.Automation.PipelineStoppedException).InnerException != null) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(exception,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + finally + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletProcessRecordEnd).Wait(); + } + } + + /// Performs execution of the command, working asynchronously if required. + /// + /// A that will be complete when handling of the method is completed. + /// + protected async global::System.Threading.Tasks.Task ProcessRecordAsync() + { + using( NoSynchronizationContext ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + if (InputObject?.Id != null) + { + await this.Client.PartnerDestinationsGetViaIdentity(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.PartnerDestinationName) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.PartnerDestinationName"),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, InputObject) ); + } + await this.Client.PartnerDestinationsGet(InputObject.SubscriptionId ?? null, InputObject.ResourceGroupName ?? null, InputObject.PartnerDestinationName ?? null, onOk, onDefault, this, Pipeline); + } + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Cancel(); + base.StopProcessing(); + } + + /// + /// a delegate that is called when the remote service returns default (any response code not handled elsewhere). + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onDefault(global::System.Net.Http.HttpResponseMessage responseMessage) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnDefault(responseMessage, ref _returnNow); + // if overrideOnDefault has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // Error Response : default + // Unrecognized Response. Create an error record based on what we have. + var ex = new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.RestException(responseMessage); + WriteError( new global::System.Management.Automation.ErrorRecord(ex, ex.Code, global::System.Management.Automation.ErrorCategory.InvalidOperation, new { }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(ex.Message) { RecommendedAction = ex.Action } + }); + } + } + + /// a delegate that is called when the remote service returns 200 (OK). + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as 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.EventGrid.Models.Api20211015Preview.IPartnerDestination + WriteObject((await response)); + } + } + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/cmdlets/GetAzEventGridPartnerDestination_List.cs b/swaggerci/eventgrid/generated/cmdlets/GetAzEventGridPartnerDestination_List.cs new file mode 100644 index 000000000000..d9c65f6ff2bb --- /dev/null +++ b/swaggerci/eventgrid/generated/cmdlets/GetAzEventGridPartnerDestination_List.cs @@ -0,0 +1,428 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Extensions; + using System; + + /// List all the partner destinations under an Azure subscription. + /// + /// [OpenAPI] ListBySubscription=>GET:"/subscriptions/{subscriptionId}/providers/Microsoft.EventGrid/partnerDestinations" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsCommon.Get, @"AzEventGridPartnerDestination_List")] + [global::System.Management.Automation.OutputType(typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerDestination))] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Description(@"List all the partner destinations under an Azure subscription.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Generated] + public partial class GetAzEventGridPartnerDestination_List : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener + { + /// A unique id generatd for the this cmdlet when it is instantiated. + private string __correlationId = System.Guid.NewGuid().ToString(); + + /// A copy of the Invocation Info (necessary to allow asJob to clone this cmdlet) + private global::System.Management.Automation.InvocationInfo __invocationInfo; + + /// A unique id generatd for the this cmdlet when ProcessRecord() is called. + private string __processRecordId; + + /// + /// The for this operation. + /// + private global::System.Threading.CancellationTokenSource _cancellationTokenSource = new global::System.Threading.CancellationTokenSource(); + + /// A flag to tell whether it is the first onOK call. + private bool _isFirst = true; + + /// Link to retrieve next page. + private string _nextLink; + + /// Wait for .NET debugger to attach + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Wait for .NET debugger to attach")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.EventGridManagementClient Client => Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.ClientAPI; + + /// + /// The credentials, account, tenant, and subscription used for communication with Azure + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The credentials, account, tenant, and subscription used for communication with Azure.")] + [global::System.Management.Automation.ValidateNotNull] + [global::System.Management.Automation.Alias("AzureRMContext", "AzureCredential")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Azure)] + public global::System.Management.Automation.PSObject DefaultProfile { get; set; } + + /// Backing field for property. + private string _filter; + + /// + /// The query used to filter the search results using OData syntax. Filtering is permitted on the 'name' property only and + /// with limited number of OData operations. These operations are: the 'contains' function as well as the following logical + /// operations: not, and, or, eq (for equal), and ne (for not equal). No arithmetic operations are supported. The following + /// is a valid filter example: $filter=contains(namE, 'PATTERN') and name ne 'PATTERN-1'. The following is not a valid filter + /// example: $filter=location eq 'westus'. + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The query used to filter the search results using OData syntax. Filtering is permitted on the 'name' property only and with limited number of OData operations. These operations are: the 'contains' function as well as the following logical operations: not, and, or, eq (for equal), and ne (for not equal). No arithmetic operations are supported. The following is a valid filter example: $filter=contains(namE, 'PATTERN') and name ne 'PATTERN-1'. The following is not a valid filter example: $filter=location eq 'westus'.")] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The query used to filter the search results using OData syntax. Filtering is permitted on the 'name' property only and with limited number of OData operations. These operations are: the 'contains' function as well as the following logical operations: not, and, or, eq (for equal), and ne (for not equal). No arithmetic operations are supported. The following is a valid filter example: $filter=contains(namE, 'PATTERN') and name ne 'PATTERN-1'. The following is not a valid filter example: $filter=location eq 'westus'.", + SerializedName = @"$filter", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[] HttpPipelineAppend { get; set; } + + /// SendAsync Pipeline Steps to be prepended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be prepended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[] HttpPipelinePrepend { get; set; } + + /// Accessor for our copy of the InvocationInfo. + public global::System.Management.Automation.InvocationInfo InvocationInformation { get => __invocationInfo = __invocationInfo ?? this.MyInvocation ; set { __invocationInfo = value; } } + + /// + /// cancellation delegate. Stops the cmdlet when called. + /// + global::System.Action Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Runtime.HttpPipeline Pipeline { get; set; } + + /// The URI for the proxy server to use + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "The URI for the proxy server to use")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Uri Proxy { get; set; } + + /// Credentials for a proxy server to use for the remote call + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Credentials for a proxy server to use for the remote call")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Management.Automation.PSCredential ProxyCredential { get; set; } + + /// Use the default credentials for the proxy + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Use the default credentials for the proxy")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter ProxyUseDefaultCredentials { get; set; } + + /// Backing field for property. + private string[] _subscriptionId; + + /// + /// Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription ID forms part of the + /// URI for every service call. + /// + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.")] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.", + SerializedName = @"subscriptionId", + PossibleTypes = new [] { typeof(string) })] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.DefaultInfo( + Name = @"", + Description =@"", + Script = @"(Get-AzContext).Subscription.Id")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Path)] + public string[] SubscriptionId { get => this._subscriptionId; set => this._subscriptionId = value; } + + /// Backing field for property. + private int _top; + + /// + /// The number of results to return per page for the list operation. Valid range for top parameter is 1 to 100. If not specified, + /// the default number of results to be returned is 20 items per page. + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The number of results to return per page for the list operation. Valid range for top parameter is 1 to 100. If not specified, the default number of results to be returned is 20 items per page.")] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The number of results to return per page for the list operation. Valid range for top parameter is 1 to 100. If not specified, the default number of results to be returned is 20 items per page.", + SerializedName = @"$top", + PossibleTypes = new [] { typeof(int) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Query)] + public int Top { get => this._top; set => this._top = value; } + + /// + /// overrideOnDefault will be called before the regular onDefault has been processed, allowing customization of what + /// happens on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// /// Determines if the rest of the onDefault method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnDefault(global::System.Net.Http.HttpResponseMessage responseMessage, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnOk will be called before the regular onOk has been processed, allowing customization of what happens + /// on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// 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() + { + var telemetryId = Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.GetTelemetryId.Invoke(); + if (telemetryId != "" && telemetryId != "internal") + { + __correlationId = telemetryId; + } + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + + } + + /// + /// Intializes a new instance of the cmdlet class. + /// + public GetAzEventGridPartnerDestination_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.EventGrid.Runtime.IEventListener.Signal(string id, global::System.Threading.CancellationToken token, global::System.Func messageData) + { + using( NoSynchronizationContext ) + { + if (token.IsCancellationRequested) + { + return ; + } + + switch ( id ) + { + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Information: + { + var data = messageData(); + WriteInformation(data.Message, new string[]{}); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Error: + { + WriteError(new global::System.Management.Automation.ErrorRecord( new global::System.Exception(messageData().Message), string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null ) ); + return ; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.EventData ), InvocationInformation, this.ParameterSetName, __correlationId, __processRecordId, null ); + if (token.IsCancellationRequested) + { + return ; + } + WriteDebug($"{id}: {(messageData().Message ?? global::System.String.Empty)}"); + } + } + + /// Performs execution of the command. + protected override void ProcessRecord() + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + using( var asyncCommandRuntime = new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token); + } + } + catch (global::System.AggregateException aggregateException) + { + // unroll the inner exceptions to get the root cause + foreach( var innerException in aggregateException.Flatten().InnerExceptions ) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(innerException,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + } + catch (global::System.Exception exception) when ((exception as System.Management.Automation.PipelineStoppedException)== null || (exception as System.Management.Automation.PipelineStoppedException).InnerException != null) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(exception,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + finally + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletProcessRecordEnd).Wait(); + } + } + + /// Performs execution of the command, working asynchronously if required. + /// + /// A that will be complete when handling of the method is completed. + /// + protected async global::System.Threading.Tasks.Task ProcessRecordAsync() + { + using( NoSynchronizationContext ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + foreach( var SubscriptionId in this.SubscriptionId ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await this.Client.PartnerDestinationsListBySubscription(SubscriptionId, this.InvocationInformation.BoundParameters.ContainsKey("Filter") ? Filter : null, this.InvocationInformation.BoundParameters.ContainsKey("Top") ? Top : default(int?), onOk, onDefault, this, Pipeline); + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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,Top=this.InvocationInformation.BoundParameters.ContainsKey("Top") ? Top : default(int?)}) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(urexception.Message) { RecommendedAction = urexception.Action } + }); + } + finally + { + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Cancel(); + base.StopProcessing(); + } + + /// + /// a delegate that is called when the remote service returns default (any response code not handled elsewhere). + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onDefault(global::System.Net.Http.HttpResponseMessage responseMessage) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnDefault(responseMessage, ref _returnNow); + // if overrideOnDefault has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // Error Response : default + // Unrecognized Response. Create an error record based on what we have. + var ex = new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.RestException(responseMessage); + 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, Top=this.InvocationInformation.BoundParameters.ContainsKey("Top") ? Top : default(int?) }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(ex.Message) { RecommendedAction = ex.Action } + }); + } + } + + /// a delegate that is called when the remote service returns 200 (OK). + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnOk(responseMessage, response, ref _returnNow); + // if overrideOnOk has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // onOk - response for 200 / application/json + // response should be returning an array of some kind. +Pageable + // pageable / value / nextLink + var result = await response; + WriteObject(result.Value,true); + _nextLink = result.NextLink; + if (_isFirst) + { + _isFirst = false; + while (_nextLink != null) + { + if (responseMessage.RequestMessage is System.Net.Http.HttpRequestMessage requestMessage ) + { + requestMessage = requestMessage.Clone(new global::System.Uri( _nextLink ),Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Method.Get ); + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.FollowingNextLink); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await this.Client.PartnerDestinationsListBySubscription_Call(requestMessage, onOk, onDefault, this, Pipeline); + } + } + } + } + } + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/cmdlets/GetAzEventGridPartnerDestination_List1.cs b/swaggerci/eventgrid/generated/cmdlets/GetAzEventGridPartnerDestination_List1.cs new file mode 100644 index 000000000000..55f398adeeed --- /dev/null +++ b/swaggerci/eventgrid/generated/cmdlets/GetAzEventGridPartnerDestination_List1.cs @@ -0,0 +1,442 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Extensions; + using System; + + /// List all the partner destinations under a resource group. + /// + /// [OpenAPI] ListByResourceGroup=>GET:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.EventGrid/partnerDestinations" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsCommon.Get, @"AzEventGridPartnerDestination_List1")] + [global::System.Management.Automation.OutputType(typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerDestination))] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Description(@"List all the partner destinations under a resource group.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Generated] + public partial class GetAzEventGridPartnerDestination_List1 : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener + { + /// A unique id generatd for the this cmdlet when it is instantiated. + private string __correlationId = System.Guid.NewGuid().ToString(); + + /// A copy of the Invocation Info (necessary to allow asJob to clone this cmdlet) + private global::System.Management.Automation.InvocationInfo __invocationInfo; + + /// A unique id generatd for the this cmdlet when ProcessRecord() is called. + private string __processRecordId; + + /// + /// The for this operation. + /// + private global::System.Threading.CancellationTokenSource _cancellationTokenSource = new global::System.Threading.CancellationTokenSource(); + + /// A flag to tell whether it is the first onOK call. + private bool _isFirst = true; + + /// Link to retrieve next page. + private string _nextLink; + + /// Wait for .NET debugger to attach + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Wait for .NET debugger to attach")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.EventGridManagementClient Client => Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.ClientAPI; + + /// + /// The credentials, account, tenant, and subscription used for communication with Azure + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The credentials, account, tenant, and subscription used for communication with Azure.")] + [global::System.Management.Automation.ValidateNotNull] + [global::System.Management.Automation.Alias("AzureRMContext", "AzureCredential")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Azure)] + public global::System.Management.Automation.PSObject DefaultProfile { get; set; } + + /// Backing field for property. + private string _filter; + + /// + /// The query used to filter the search results using OData syntax. Filtering is permitted on the 'name' property only and + /// with limited number of OData operations. These operations are: the 'contains' function as well as the following logical + /// operations: not, and, or, eq (for equal), and ne (for not equal). No arithmetic operations are supported. The following + /// is a valid filter example: $filter=contains(namE, 'PATTERN') and name ne 'PATTERN-1'. The following is not a valid filter + /// example: $filter=location eq 'westus'. + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The query used to filter the search results using OData syntax. Filtering is permitted on the 'name' property only and with limited number of OData operations. These operations are: the 'contains' function as well as the following logical operations: not, and, or, eq (for equal), and ne (for not equal). No arithmetic operations are supported. The following is a valid filter example: $filter=contains(namE, 'PATTERN') and name ne 'PATTERN-1'. The following is not a valid filter example: $filter=location eq 'westus'.")] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The query used to filter the search results using OData syntax. Filtering is permitted on the 'name' property only and with limited number of OData operations. These operations are: the 'contains' function as well as the following logical operations: not, and, or, eq (for equal), and ne (for not equal). No arithmetic operations are supported. The following is a valid filter example: $filter=contains(namE, 'PATTERN') and name ne 'PATTERN-1'. The following is not a valid filter example: $filter=location eq 'westus'.", + SerializedName = @"$filter", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[] HttpPipelineAppend { get; set; } + + /// SendAsync Pipeline Steps to be prepended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be prepended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[] HttpPipelinePrepend { get; set; } + + /// Accessor for our copy of the InvocationInfo. + public global::System.Management.Automation.InvocationInfo InvocationInformation { get => __invocationInfo = __invocationInfo ?? this.MyInvocation ; set { __invocationInfo = value; } } + + /// + /// cancellation delegate. Stops the cmdlet when called. + /// + global::System.Action Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Runtime.HttpPipeline Pipeline { get; set; } + + /// The URI for the proxy server to use + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "The URI for the proxy server to use")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Uri Proxy { get; set; } + + /// Credentials for a proxy server to use for the remote call + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Credentials for a proxy server to use for the remote call")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Management.Automation.PSCredential ProxyCredential { get; set; } + + /// Use the default credentials for the proxy + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Use the default credentials for the proxy")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter ProxyUseDefaultCredentials { get; set; } + + /// Backing field for property. + private string _resourceGroupName; + + /// The name of the resource group within the user's subscription. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the resource group within the user's subscription.")] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the resource group within the user's subscription.", + SerializedName = @"resourceGroupName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Path)] + public string ResourceGroupName { get => this._resourceGroupName; set => this._resourceGroupName = value; } + + /// Backing field for property. + private string[] _subscriptionId; + + /// + /// Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription ID forms part of the + /// URI for every service call. + /// + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.")] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.", + SerializedName = @"subscriptionId", + PossibleTypes = new [] { typeof(string) })] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.DefaultInfo( + Name = @"", + Description =@"", + Script = @"(Get-AzContext).Subscription.Id")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Path)] + public string[] SubscriptionId { get => this._subscriptionId; set => this._subscriptionId = value; } + + /// Backing field for property. + private int _top; + + /// + /// The number of results to return per page for the list operation. Valid range for top parameter is 1 to 100. If not specified, + /// the default number of results to be returned is 20 items per page. + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The number of results to return per page for the list operation. Valid range for top parameter is 1 to 100. If not specified, the default number of results to be returned is 20 items per page.")] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The number of results to return per page for the list operation. Valid range for top parameter is 1 to 100. If not specified, the default number of results to be returned is 20 items per page.", + SerializedName = @"$top", + PossibleTypes = new [] { typeof(int) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Query)] + public int Top { get => this._top; set => this._top = value; } + + /// + /// overrideOnDefault will be called before the regular onDefault has been processed, allowing customization of what + /// happens on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// /// Determines if the rest of the onDefault method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnDefault(global::System.Net.Http.HttpResponseMessage responseMessage, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnOk will be called before the regular onOk has been processed, allowing customization of what happens + /// on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// 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() + { + var telemetryId = Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.GetTelemetryId.Invoke(); + if (telemetryId != "" && telemetryId != "internal") + { + __correlationId = telemetryId; + } + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + + } + + /// + /// Intializes a new instance of the cmdlet class. + /// + public GetAzEventGridPartnerDestination_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.EventGrid.Runtime.IEventListener.Signal(string id, global::System.Threading.CancellationToken token, global::System.Func messageData) + { + using( NoSynchronizationContext ) + { + if (token.IsCancellationRequested) + { + return ; + } + + switch ( id ) + { + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Information: + { + var data = messageData(); + WriteInformation(data.Message, new string[]{}); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Error: + { + WriteError(new global::System.Management.Automation.ErrorRecord( new global::System.Exception(messageData().Message), string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null ) ); + return ; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.EventData ), InvocationInformation, this.ParameterSetName, __correlationId, __processRecordId, null ); + if (token.IsCancellationRequested) + { + return ; + } + WriteDebug($"{id}: {(messageData().Message ?? global::System.String.Empty)}"); + } + } + + /// Performs execution of the command. + protected override void ProcessRecord() + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + using( var asyncCommandRuntime = new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token); + } + } + catch (global::System.AggregateException aggregateException) + { + // unroll the inner exceptions to get the root cause + foreach( var innerException in aggregateException.Flatten().InnerExceptions ) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(innerException,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + } + catch (global::System.Exception exception) when ((exception as System.Management.Automation.PipelineStoppedException)== null || (exception as System.Management.Automation.PipelineStoppedException).InnerException != null) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(exception,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + finally + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletProcessRecordEnd).Wait(); + } + } + + /// Performs execution of the command, working asynchronously if required. + /// + /// A that will be complete when handling of the method is completed. + /// + protected async global::System.Threading.Tasks.Task ProcessRecordAsync() + { + using( NoSynchronizationContext ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + foreach( var SubscriptionId in this.SubscriptionId ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await this.Client.PartnerDestinationsListByResourceGroup(SubscriptionId, ResourceGroupName, this.InvocationInformation.BoundParameters.ContainsKey("Filter") ? Filter : null, this.InvocationInformation.BoundParameters.ContainsKey("Top") ? Top : default(int?), onOk, onDefault, this, Pipeline); + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.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,Top=this.InvocationInformation.BoundParameters.ContainsKey("Top") ? Top : default(int?)}) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(urexception.Message) { RecommendedAction = urexception.Action } + }); + } + finally + { + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Cancel(); + base.StopProcessing(); + } + + /// + /// a delegate that is called when the remote service returns default (any response code not handled elsewhere). + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onDefault(global::System.Net.Http.HttpResponseMessage responseMessage) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnDefault(responseMessage, ref _returnNow); + // if overrideOnDefault has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // Error Response : default + // Unrecognized Response. Create an error record based on what we have. + var ex = new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.RestException(responseMessage); + 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, Top=this.InvocationInformation.BoundParameters.ContainsKey("Top") ? Top : default(int?) }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(ex.Message) { RecommendedAction = ex.Action } + }); + } + } + + /// a delegate that is called when the remote service returns 200 (OK). + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnOk(responseMessage, response, ref _returnNow); + // if overrideOnOk has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // onOk - response for 200 / application/json + // response should be returning an array of some kind. +Pageable + // pageable / value / nextLink + var result = await response; + WriteObject(result.Value,true); + _nextLink = result.NextLink; + if (_isFirst) + { + _isFirst = false; + while (_nextLink != null) + { + if (responseMessage.RequestMessage is System.Net.Http.HttpRequestMessage requestMessage ) + { + requestMessage = requestMessage.Clone(new global::System.Uri( _nextLink ),Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Method.Get ); + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.FollowingNextLink); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await this.Client.PartnerDestinationsListByResourceGroup_Call(requestMessage, onOk, onDefault, this, Pipeline); + } + } + } + } + } + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/cmdlets/GetAzEventGridPartnerNamespaceSharedAccessKey_List.cs b/swaggerci/eventgrid/generated/cmdlets/GetAzEventGridPartnerNamespaceSharedAccessKey_List.cs new file mode 100644 index 000000000000..1eb0ec5e5376 --- /dev/null +++ b/swaggerci/eventgrid/generated/cmdlets/GetAzEventGridPartnerNamespaceSharedAccessKey_List.cs @@ -0,0 +1,400 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Extensions; + using System; + + /// List the two keys used to publish to a partner namespace. + /// + /// [OpenAPI] ListSharedAccessKeys=>POST:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.EventGrid/partnerNamespaces/{partnerNamespaceName}/listKeys" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsCommon.Get, @"AzEventGridPartnerNamespaceSharedAccessKey_List", SupportsShouldProcess = true)] + [global::System.Management.Automation.OutputType(typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerNamespaceSharedAccessKeys))] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Description(@"List the two keys used to publish to a partner namespace.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Generated] + public partial class GetAzEventGridPartnerNamespaceSharedAccessKey_List : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener + { + /// A unique id generatd for the this cmdlet when it is instantiated. + private string __correlationId = System.Guid.NewGuid().ToString(); + + /// A copy of the Invocation Info (necessary to allow asJob to clone this cmdlet) + private global::System.Management.Automation.InvocationInfo __invocationInfo; + + /// A unique id generatd for the this cmdlet when ProcessRecord() is called. + private string __processRecordId; + + /// + /// The for this operation. + /// + private global::System.Threading.CancellationTokenSource _cancellationTokenSource = new global::System.Threading.CancellationTokenSource(); + + /// Wait for .NET debugger to attach + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Wait for .NET debugger to attach")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.EventGridManagementClient Client => Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.ClientAPI; + + /// + /// The credentials, account, tenant, and subscription used for communication with Azure + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The credentials, account, tenant, and subscription used for communication with Azure.")] + [global::System.Management.Automation.ValidateNotNull] + [global::System.Management.Automation.Alias("AzureRMContext", "AzureCredential")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Azure)] + public global::System.Management.Automation.PSObject DefaultProfile { get; set; } + + /// SendAsync Pipeline Steps to be appended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be appended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[] HttpPipelineAppend { get; set; } + + /// SendAsync Pipeline Steps to be prepended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be prepended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[] HttpPipelinePrepend { get; set; } + + /// Accessor for our copy of the InvocationInfo. + public global::System.Management.Automation.InvocationInfo InvocationInformation { get => __invocationInfo = __invocationInfo ?? this.MyInvocation ; set { __invocationInfo = value; } } + + /// + /// cancellation delegate. Stops the cmdlet when called. + /// + global::System.Action Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener.Token => _cancellationTokenSource.Token; + + /// Backing field for property. + private string _partnerNamespaceName; + + /// Name of the partner namespace. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Name of the partner namespace.")] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Name of the partner namespace.", + SerializedName = @"partnerNamespaceName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Path)] + public string PartnerNamespaceName { get => this._partnerNamespaceName; set => this._partnerNamespaceName = 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.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Runtime.HttpPipeline Pipeline { get; set; } + + /// The URI for the proxy server to use + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "The URI for the proxy server to use")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Uri Proxy { get; set; } + + /// Credentials for a proxy server to use for the remote call + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Credentials for a proxy server to use for the remote call")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Management.Automation.PSCredential ProxyCredential { get; set; } + + /// Use the default credentials for the proxy + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Use the default credentials for the proxy")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter ProxyUseDefaultCredentials { get; set; } + + /// Backing field for property. + private string _resourceGroupName; + + /// The name of the resource group within the user's subscription. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the resource group within the user's subscription.")] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the resource group within the user's subscription.", + SerializedName = @"resourceGroupName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Path)] + public string ResourceGroupName { get => this._resourceGroupName; set => this._resourceGroupName = value; } + + /// Backing field for property. + private string[] _subscriptionId; + + /// + /// Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription ID forms part of the + /// URI for every service call. + /// + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.")] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.", + SerializedName = @"subscriptionId", + PossibleTypes = new [] { typeof(string) })] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.DefaultInfo( + Name = @"", + Description =@"", + Script = @"(Get-AzContext).Subscription.Id")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Path)] + public string[] SubscriptionId { get => this._subscriptionId; set => this._subscriptionId = value; } + + /// + /// overrideOnDefault will be called before the regular onDefault has been processed, allowing customization of what + /// happens on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// /// Determines if the rest of the onDefault method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnDefault(global::System.Net.Http.HttpResponseMessage responseMessage, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnOk will be called before the regular onOk has been processed, allowing customization of what happens + /// on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// 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() + { + var telemetryId = Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.GetTelemetryId.Invoke(); + if (telemetryId != "" && telemetryId != "internal") + { + __correlationId = telemetryId; + } + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + + } + + /// + /// Intializes a new instance of the cmdlet class. + /// + public GetAzEventGridPartnerNamespaceSharedAccessKey_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.EventGrid.Runtime.IEventListener.Signal(string id, global::System.Threading.CancellationToken token, global::System.Func messageData) + { + using( NoSynchronizationContext ) + { + if (token.IsCancellationRequested) + { + return ; + } + + switch ( id ) + { + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Information: + { + var data = messageData(); + WriteInformation(data.Message, new string[]{}); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Error: + { + WriteError(new global::System.Management.Automation.ErrorRecord( new global::System.Exception(messageData().Message), string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null ) ); + return ; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.EventData ), InvocationInformation, this.ParameterSetName, __correlationId, __processRecordId, null ); + if (token.IsCancellationRequested) + { + return ; + } + WriteDebug($"{id}: {(messageData().Message ?? global::System.String.Empty)}"); + } + } + + /// Performs execution of the command. + protected override void ProcessRecord() + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + if (ShouldProcess($"Call remote 'PartnerNamespacesListSharedAccessKeys' operation")) + { + using( var asyncCommandRuntime = new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token); + } + } + } + catch (global::System.AggregateException aggregateException) + { + // unroll the inner exceptions to get the root cause + foreach( var innerException in aggregateException.Flatten().InnerExceptions ) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(innerException,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + } + catch (global::System.Exception exception) when ((exception as System.Management.Automation.PipelineStoppedException)== null || (exception as System.Management.Automation.PipelineStoppedException).InnerException != null) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(exception,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + finally + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletProcessRecordEnd).Wait(); + } + } + + /// Performs execution of the command, working asynchronously if required. + /// + /// A that will be complete when handling of the method is completed. + /// + protected async global::System.Threading.Tasks.Task ProcessRecordAsync() + { + using( NoSynchronizationContext ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + foreach( var SubscriptionId in this.SubscriptionId ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await this.Client.PartnerNamespacesListSharedAccessKeys(SubscriptionId, ResourceGroupName, PartnerNamespaceName, onOk, onDefault, this, Pipeline); + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.UndeclaredResponseException urexception) + { + WriteError(new global::System.Management.Automation.ErrorRecord(urexception, urexception.StatusCode.ToString(), global::System.Management.Automation.ErrorCategory.InvalidOperation, new { SubscriptionId=SubscriptionId,ResourceGroupName=ResourceGroupName,PartnerNamespaceName=PartnerNamespaceName}) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(urexception.Message) { RecommendedAction = urexception.Action } + }); + } + finally + { + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Cancel(); + base.StopProcessing(); + } + + /// + /// a delegate that is called when the remote service returns default (any response code not handled elsewhere). + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onDefault(global::System.Net.Http.HttpResponseMessage responseMessage) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnDefault(responseMessage, ref _returnNow); + // if overrideOnDefault has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // Error Response : default + // Unrecognized Response. Create an error record based on what we have. + var ex = new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.RestException(responseMessage); + WriteError( new global::System.Management.Automation.ErrorRecord(ex, ex.Code, global::System.Management.Automation.ErrorCategory.InvalidOperation, new { SubscriptionId=SubscriptionId, ResourceGroupName=ResourceGroupName, PartnerNamespaceName=PartnerNamespaceName }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(ex.Message) { RecommendedAction = ex.Action } + }); + } + } + + /// a delegate that is called when the remote service returns 200 (OK). + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as 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.EventGrid.Models.Api20211015Preview.IPartnerNamespaceSharedAccessKeys + WriteObject((await response)); + } + } + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/cmdlets/GetAzEventGridPartnerNamespace_Get.cs b/swaggerci/eventgrid/generated/cmdlets/GetAzEventGridPartnerNamespace_Get.cs new file mode 100644 index 000000000000..fd03a407b5bd --- /dev/null +++ b/swaggerci/eventgrid/generated/cmdlets/GetAzEventGridPartnerNamespace_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.EventGrid.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Extensions; + using System; + + /// Get properties of a partner namespace. + /// + /// [OpenAPI] Get=>GET:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.EventGrid/partnerNamespaces/{partnerNamespaceName}" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsCommon.Get, @"AzEventGridPartnerNamespace_Get")] + [global::System.Management.Automation.OutputType(typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerNamespace))] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Description(@"Get properties of a partner namespace.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Generated] + public partial class GetAzEventGridPartnerNamespace_Get : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener + { + /// A unique id generatd for the this cmdlet when it is instantiated. + private string __correlationId = System.Guid.NewGuid().ToString(); + + /// A copy of the Invocation Info (necessary to allow asJob to clone this cmdlet) + private global::System.Management.Automation.InvocationInfo __invocationInfo; + + /// A unique id generatd for the this cmdlet when ProcessRecord() is called. + private string __processRecordId; + + /// + /// The for this operation. + /// + private global::System.Threading.CancellationTokenSource _cancellationTokenSource = new global::System.Threading.CancellationTokenSource(); + + /// Wait for .NET debugger to attach + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Wait for .NET debugger to attach")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.EventGridManagementClient Client => Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.ClientAPI; + + /// + /// The credentials, account, tenant, and subscription used for communication with Azure + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The credentials, account, tenant, and subscription used for communication with Azure.")] + [global::System.Management.Automation.ValidateNotNull] + [global::System.Management.Automation.Alias("AzureRMContext", "AzureCredential")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Azure)] + public global::System.Management.Automation.PSObject DefaultProfile { get; set; } + + /// SendAsync Pipeline Steps to be appended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be appended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[] HttpPipelineAppend { get; set; } + + /// SendAsync Pipeline Steps to be prepended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be prepended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[] HttpPipelinePrepend { get; set; } + + /// Accessor for our copy of the InvocationInfo. + public global::System.Management.Automation.InvocationInfo InvocationInformation { get => __invocationInfo = __invocationInfo ?? this.MyInvocation ; set { __invocationInfo = value; } } + + /// + /// cancellation delegate. Stops the cmdlet when called. + /// + global::System.Action Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener.Token => _cancellationTokenSource.Token; + + /// Backing field for property. + private string _name; + + /// Name of the partner namespace. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Name of the partner namespace.")] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Name of the partner namespace.", + SerializedName = @"partnerNamespaceName", + PossibleTypes = new [] { typeof(string) })] + [global::System.Management.Automation.Alias("PartnerNamespaceName")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Runtime.HttpPipeline Pipeline { get; set; } + + /// The URI for the proxy server to use + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "The URI for the proxy server to use")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Uri Proxy { get; set; } + + /// Credentials for a proxy server to use for the remote call + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Credentials for a proxy server to use for the remote call")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Management.Automation.PSCredential ProxyCredential { get; set; } + + /// Use the default credentials for the proxy + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Use the default credentials for the proxy")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter ProxyUseDefaultCredentials { get; set; } + + /// Backing field for property. + private string _resourceGroupName; + + /// The name of the resource group within the user's subscription. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the resource group within the user's subscription.")] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the resource group within the user's subscription.", + SerializedName = @"resourceGroupName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Path)] + public string ResourceGroupName { get => this._resourceGroupName; set => this._resourceGroupName = value; } + + /// Backing field for property. + private string[] _subscriptionId; + + /// + /// Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription ID forms part of the + /// URI for every service call. + /// + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.")] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.", + SerializedName = @"subscriptionId", + PossibleTypes = new [] { typeof(string) })] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.DefaultInfo( + Name = @"", + Description =@"", + Script = @"(Get-AzContext).Subscription.Id")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Path)] + public string[] SubscriptionId { get => this._subscriptionId; set => this._subscriptionId = value; } + + /// + /// overrideOnDefault will be called before the regular onDefault has been processed, allowing customization of what + /// happens on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// /// Determines if the rest of the onDefault method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnDefault(global::System.Net.Http.HttpResponseMessage responseMessage, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnOk will be called before the regular onOk has been processed, allowing customization of what happens + /// on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// 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() + { + var telemetryId = Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.GetTelemetryId.Invoke(); + if (telemetryId != "" && telemetryId != "internal") + { + __correlationId = telemetryId; + } + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + + } + + /// + /// Intializes a new instance of the cmdlet class. + /// + public GetAzEventGridPartnerNamespace_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.EventGrid.Runtime.IEventListener.Signal(string id, global::System.Threading.CancellationToken token, global::System.Func messageData) + { + using( NoSynchronizationContext ) + { + if (token.IsCancellationRequested) + { + return ; + } + + switch ( id ) + { + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Information: + { + var data = messageData(); + WriteInformation(data.Message, new string[]{}); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Error: + { + WriteError(new global::System.Management.Automation.ErrorRecord( new global::System.Exception(messageData().Message), string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null ) ); + return ; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.EventData ), InvocationInformation, this.ParameterSetName, __correlationId, __processRecordId, null ); + if (token.IsCancellationRequested) + { + return ; + } + WriteDebug($"{id}: {(messageData().Message ?? global::System.String.Empty)}"); + } + } + + /// Performs execution of the command. + protected override void ProcessRecord() + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + using( var asyncCommandRuntime = new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token); + } + } + catch (global::System.AggregateException aggregateException) + { + // unroll the inner exceptions to get the root cause + foreach( var innerException in aggregateException.Flatten().InnerExceptions ) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(innerException,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + } + catch (global::System.Exception exception) when ((exception as System.Management.Automation.PipelineStoppedException)== null || (exception as System.Management.Automation.PipelineStoppedException).InnerException != null) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(exception,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + finally + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletProcessRecordEnd).Wait(); + } + } + + /// Performs execution of the command, working asynchronously if required. + /// + /// A that will be complete when handling of the method is completed. + /// + protected async global::System.Threading.Tasks.Task ProcessRecordAsync() + { + using( NoSynchronizationContext ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + foreach( var SubscriptionId in this.SubscriptionId ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await this.Client.PartnerNamespacesGet(SubscriptionId, ResourceGroupName, Name, onOk, onDefault, this, Pipeline); + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.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.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Cancel(); + base.StopProcessing(); + } + + /// + /// a delegate that is called when the remote service returns default (any response code not handled elsewhere). + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onDefault(global::System.Net.Http.HttpResponseMessage responseMessage) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnDefault(responseMessage, ref _returnNow); + // if overrideOnDefault has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // Error Response : default + // Unrecognized Response. Create an error record based on what we have. + var ex = new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.RestException(responseMessage); + 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 } + }); + } + } + + /// a delegate that is 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.EventGrid.Models.Api20211015Preview.IPartnerNamespace + WriteObject((await response)); + } + } + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/cmdlets/GetAzEventGridPartnerNamespace_GetViaIdentity.cs b/swaggerci/eventgrid/generated/cmdlets/GetAzEventGridPartnerNamespace_GetViaIdentity.cs new file mode 100644 index 000000000000..9b720f7c001b --- /dev/null +++ b/swaggerci/eventgrid/generated/cmdlets/GetAzEventGridPartnerNamespace_GetViaIdentity.cs @@ -0,0 +1,373 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Extensions; + using System; + + /// Get properties of a partner namespace. + /// + /// [OpenAPI] Get=>GET:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.EventGrid/partnerNamespaces/{partnerNamespaceName}" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsCommon.Get, @"AzEventGridPartnerNamespace_GetViaIdentity")] + [global::System.Management.Automation.OutputType(typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerNamespace))] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Description(@"Get properties of a partner namespace.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Generated] + public partial class GetAzEventGridPartnerNamespace_GetViaIdentity : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener + { + /// A unique id generatd for the this cmdlet when it is instantiated. + private string __correlationId = System.Guid.NewGuid().ToString(); + + /// A copy of the Invocation Info (necessary to allow asJob to clone this cmdlet) + private global::System.Management.Automation.InvocationInfo __invocationInfo; + + /// A unique id generatd for the this cmdlet when ProcessRecord() is called. + private string __processRecordId; + + /// + /// The for this operation. + /// + private global::System.Threading.CancellationTokenSource _cancellationTokenSource = new global::System.Threading.CancellationTokenSource(); + + /// Wait for .NET debugger to attach + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Wait for .NET debugger to attach")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.EventGridManagementClient Client => Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.ClientAPI; + + /// + /// The credentials, account, tenant, and subscription used for communication with Azure + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The credentials, account, tenant, and subscription used for communication with Azure.")] + [global::System.Management.Automation.ValidateNotNull] + [global::System.Management.Automation.Alias("AzureRMContext", "AzureCredential")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Azure)] + public global::System.Management.Automation.PSObject DefaultProfile { get; set; } + + /// SendAsync Pipeline Steps to be appended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be appended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[] HttpPipelineAppend { get; set; } + + /// SendAsync Pipeline Steps to be prepended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be prepended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[] HttpPipelinePrepend { get; set; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.IEventGridIdentity _inputObject; + + /// Identity Parameter + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Identity Parameter", ValueFromPipeline = true)] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Path)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.IEventGridIdentity InputObject { get => this._inputObject; set => this._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.EventGrid.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Runtime.HttpPipeline Pipeline { get; set; } + + /// The URI for the proxy server to use + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "The URI for the proxy server to use")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Uri Proxy { get; set; } + + /// Credentials for a proxy server to use for the remote call + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Credentials for a proxy server to use for the remote call")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Management.Automation.PSCredential ProxyCredential { get; set; } + + /// Use the default credentials for the proxy + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Use the default credentials for the proxy")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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. + /// /// Determines if the rest of the onDefault method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnDefault(global::System.Net.Http.HttpResponseMessage responseMessage, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnOk will be called before the regular onOk has been processed, allowing customization of what happens + /// on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// 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() + { + var telemetryId = Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.GetTelemetryId.Invoke(); + if (telemetryId != "" && telemetryId != "internal") + { + __correlationId = telemetryId; + } + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + + } + + /// + /// Intializes a new instance of the cmdlet class. + /// + public GetAzEventGridPartnerNamespace_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.EventGrid.Runtime.IEventListener.Signal(string id, global::System.Threading.CancellationToken token, global::System.Func messageData) + { + using( NoSynchronizationContext ) + { + if (token.IsCancellationRequested) + { + return ; + } + + switch ( id ) + { + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Information: + { + var data = messageData(); + WriteInformation(data.Message, new string[]{}); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Error: + { + WriteError(new global::System.Management.Automation.ErrorRecord( new global::System.Exception(messageData().Message), string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null ) ); + return ; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.EventData ), InvocationInformation, this.ParameterSetName, __correlationId, __processRecordId, null ); + if (token.IsCancellationRequested) + { + return ; + } + WriteDebug($"{id}: {(messageData().Message ?? global::System.String.Empty)}"); + } + } + + /// Performs execution of the command. + protected override void ProcessRecord() + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + using( var asyncCommandRuntime = new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token); + } + } + catch (global::System.AggregateException aggregateException) + { + // unroll the inner exceptions to get the root cause + foreach( var innerException in aggregateException.Flatten().InnerExceptions ) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(innerException,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + } + catch (global::System.Exception exception) when ((exception as System.Management.Automation.PipelineStoppedException)== null || (exception as System.Management.Automation.PipelineStoppedException).InnerException != null) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(exception,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + finally + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletProcessRecordEnd).Wait(); + } + } + + /// Performs execution of the command, working asynchronously if required. + /// + /// A that will be complete when handling of the method is completed. + /// + protected async global::System.Threading.Tasks.Task ProcessRecordAsync() + { + using( NoSynchronizationContext ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + if (InputObject?.Id != null) + { + await this.Client.PartnerNamespacesGetViaIdentity(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.PartnerNamespaceName) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.PartnerNamespaceName"),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, InputObject) ); + } + await this.Client.PartnerNamespacesGet(InputObject.SubscriptionId ?? null, InputObject.ResourceGroupName ?? null, InputObject.PartnerNamespaceName ?? null, onOk, onDefault, this, Pipeline); + } + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Cancel(); + base.StopProcessing(); + } + + /// + /// a delegate that is called when the remote service returns default (any response code not handled elsewhere). + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onDefault(global::System.Net.Http.HttpResponseMessage responseMessage) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnDefault(responseMessage, ref _returnNow); + // if overrideOnDefault has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // Error Response : default + // Unrecognized Response. Create an error record based on what we have. + var ex = new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.RestException(responseMessage); + WriteError( new global::System.Management.Automation.ErrorRecord(ex, ex.Code, global::System.Management.Automation.ErrorCategory.InvalidOperation, new { }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(ex.Message) { RecommendedAction = ex.Action } + }); + } + } + + /// a delegate that is called when the remote service returns 200 (OK). + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as 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.EventGrid.Models.Api20211015Preview.IPartnerNamespace + WriteObject((await response)); + } + } + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/cmdlets/GetAzEventGridPartnerNamespace_List.cs b/swaggerci/eventgrid/generated/cmdlets/GetAzEventGridPartnerNamespace_List.cs new file mode 100644 index 000000000000..b75e67b97157 --- /dev/null +++ b/swaggerci/eventgrid/generated/cmdlets/GetAzEventGridPartnerNamespace_List.cs @@ -0,0 +1,428 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Extensions; + using System; + + /// List all the partner namespaces under an Azure subscription. + /// + /// [OpenAPI] ListBySubscription=>GET:"/subscriptions/{subscriptionId}/providers/Microsoft.EventGrid/partnerNamespaces" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsCommon.Get, @"AzEventGridPartnerNamespace_List")] + [global::System.Management.Automation.OutputType(typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerNamespace))] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Description(@"List all the partner namespaces under an Azure subscription.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Generated] + public partial class GetAzEventGridPartnerNamespace_List : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener + { + /// A unique id generatd for the this cmdlet when it is instantiated. + private string __correlationId = System.Guid.NewGuid().ToString(); + + /// A copy of the Invocation Info (necessary to allow asJob to clone this cmdlet) + private global::System.Management.Automation.InvocationInfo __invocationInfo; + + /// A unique id generatd for the this cmdlet when ProcessRecord() is called. + private string __processRecordId; + + /// + /// The for this operation. + /// + private global::System.Threading.CancellationTokenSource _cancellationTokenSource = new global::System.Threading.CancellationTokenSource(); + + /// A flag to tell whether it is the first onOK call. + private bool _isFirst = true; + + /// Link to retrieve next page. + private string _nextLink; + + /// Wait for .NET debugger to attach + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Wait for .NET debugger to attach")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.EventGridManagementClient Client => Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.ClientAPI; + + /// + /// The credentials, account, tenant, and subscription used for communication with Azure + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The credentials, account, tenant, and subscription used for communication with Azure.")] + [global::System.Management.Automation.ValidateNotNull] + [global::System.Management.Automation.Alias("AzureRMContext", "AzureCredential")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Azure)] + public global::System.Management.Automation.PSObject DefaultProfile { get; set; } + + /// Backing field for property. + private string _filter; + + /// + /// The query used to filter the search results using OData syntax. Filtering is permitted on the 'name' property only and + /// with limited number of OData operations. These operations are: the 'contains' function as well as the following logical + /// operations: not, and, or, eq (for equal), and ne (for not equal). No arithmetic operations are supported. The following + /// is a valid filter example: $filter=contains(namE, 'PATTERN') and name ne 'PATTERN-1'. The following is not a valid filter + /// example: $filter=location eq 'westus'. + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The query used to filter the search results using OData syntax. Filtering is permitted on the 'name' property only and with limited number of OData operations. These operations are: the 'contains' function as well as the following logical operations: not, and, or, eq (for equal), and ne (for not equal). No arithmetic operations are supported. The following is a valid filter example: $filter=contains(namE, 'PATTERN') and name ne 'PATTERN-1'. The following is not a valid filter example: $filter=location eq 'westus'.")] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The query used to filter the search results using OData syntax. Filtering is permitted on the 'name' property only and with limited number of OData operations. These operations are: the 'contains' function as well as the following logical operations: not, and, or, eq (for equal), and ne (for not equal). No arithmetic operations are supported. The following is a valid filter example: $filter=contains(namE, 'PATTERN') and name ne 'PATTERN-1'. The following is not a valid filter example: $filter=location eq 'westus'.", + SerializedName = @"$filter", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[] HttpPipelineAppend { get; set; } + + /// SendAsync Pipeline Steps to be prepended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be prepended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[] HttpPipelinePrepend { get; set; } + + /// Accessor for our copy of the InvocationInfo. + public global::System.Management.Automation.InvocationInfo InvocationInformation { get => __invocationInfo = __invocationInfo ?? this.MyInvocation ; set { __invocationInfo = value; } } + + /// + /// cancellation delegate. Stops the cmdlet when called. + /// + global::System.Action Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Runtime.HttpPipeline Pipeline { get; set; } + + /// The URI for the proxy server to use + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "The URI for the proxy server to use")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Uri Proxy { get; set; } + + /// Credentials for a proxy server to use for the remote call + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Credentials for a proxy server to use for the remote call")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Management.Automation.PSCredential ProxyCredential { get; set; } + + /// Use the default credentials for the proxy + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Use the default credentials for the proxy")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter ProxyUseDefaultCredentials { get; set; } + + /// Backing field for property. + private string[] _subscriptionId; + + /// + /// Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription ID forms part of the + /// URI for every service call. + /// + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.")] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.", + SerializedName = @"subscriptionId", + PossibleTypes = new [] { typeof(string) })] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.DefaultInfo( + Name = @"", + Description =@"", + Script = @"(Get-AzContext).Subscription.Id")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Path)] + public string[] SubscriptionId { get => this._subscriptionId; set => this._subscriptionId = value; } + + /// Backing field for property. + private int _top; + + /// + /// The number of results to return per page for the list operation. Valid range for top parameter is 1 to 100. If not specified, + /// the default number of results to be returned is 20 items per page. + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The number of results to return per page for the list operation. Valid range for top parameter is 1 to 100. If not specified, the default number of results to be returned is 20 items per page.")] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The number of results to return per page for the list operation. Valid range for top parameter is 1 to 100. If not specified, the default number of results to be returned is 20 items per page.", + SerializedName = @"$top", + PossibleTypes = new [] { typeof(int) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Query)] + public int Top { get => this._top; set => this._top = value; } + + /// + /// overrideOnDefault will be called before the regular onDefault has been processed, allowing customization of what + /// happens on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// /// Determines if the rest of the onDefault method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnDefault(global::System.Net.Http.HttpResponseMessage responseMessage, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnOk will be called before the regular onOk has been processed, allowing customization of what happens + /// on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// 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() + { + var telemetryId = Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.GetTelemetryId.Invoke(); + if (telemetryId != "" && telemetryId != "internal") + { + __correlationId = telemetryId; + } + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + + } + + /// + /// Intializes a new instance of the cmdlet class. + /// + public GetAzEventGridPartnerNamespace_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.EventGrid.Runtime.IEventListener.Signal(string id, global::System.Threading.CancellationToken token, global::System.Func messageData) + { + using( NoSynchronizationContext ) + { + if (token.IsCancellationRequested) + { + return ; + } + + switch ( id ) + { + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Information: + { + var data = messageData(); + WriteInformation(data.Message, new string[]{}); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Error: + { + WriteError(new global::System.Management.Automation.ErrorRecord( new global::System.Exception(messageData().Message), string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null ) ); + return ; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.EventData ), InvocationInformation, this.ParameterSetName, __correlationId, __processRecordId, null ); + if (token.IsCancellationRequested) + { + return ; + } + WriteDebug($"{id}: {(messageData().Message ?? global::System.String.Empty)}"); + } + } + + /// Performs execution of the command. + protected override void ProcessRecord() + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + using( var asyncCommandRuntime = new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token); + } + } + catch (global::System.AggregateException aggregateException) + { + // unroll the inner exceptions to get the root cause + foreach( var innerException in aggregateException.Flatten().InnerExceptions ) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(innerException,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + } + catch (global::System.Exception exception) when ((exception as System.Management.Automation.PipelineStoppedException)== null || (exception as System.Management.Automation.PipelineStoppedException).InnerException != null) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(exception,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + finally + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletProcessRecordEnd).Wait(); + } + } + + /// Performs execution of the command, working asynchronously if required. + /// + /// A that will be complete when handling of the method is completed. + /// + protected async global::System.Threading.Tasks.Task ProcessRecordAsync() + { + using( NoSynchronizationContext ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + foreach( var SubscriptionId in this.SubscriptionId ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await this.Client.PartnerNamespacesListBySubscription(SubscriptionId, this.InvocationInformation.BoundParameters.ContainsKey("Filter") ? Filter : null, this.InvocationInformation.BoundParameters.ContainsKey("Top") ? Top : default(int?), onOk, onDefault, this, Pipeline); + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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,Top=this.InvocationInformation.BoundParameters.ContainsKey("Top") ? Top : default(int?)}) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(urexception.Message) { RecommendedAction = urexception.Action } + }); + } + finally + { + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Cancel(); + base.StopProcessing(); + } + + /// + /// a delegate that is called when the remote service returns default (any response code not handled elsewhere). + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onDefault(global::System.Net.Http.HttpResponseMessage responseMessage) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnDefault(responseMessage, ref _returnNow); + // if overrideOnDefault has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // Error Response : default + // Unrecognized Response. Create an error record based on what we have. + var ex = new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.RestException(responseMessage); + 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, Top=this.InvocationInformation.BoundParameters.ContainsKey("Top") ? Top : default(int?) }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(ex.Message) { RecommendedAction = ex.Action } + }); + } + } + + /// a delegate that is called when the remote service returns 200 (OK). + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnOk(responseMessage, response, ref _returnNow); + // if overrideOnOk has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // onOk - response for 200 / application/json + // response should be returning an array of some kind. +Pageable + // pageable / value / nextLink + var result = await response; + WriteObject(result.Value,true); + _nextLink = result.NextLink; + if (_isFirst) + { + _isFirst = false; + while (_nextLink != null) + { + if (responseMessage.RequestMessage is System.Net.Http.HttpRequestMessage requestMessage ) + { + requestMessage = requestMessage.Clone(new global::System.Uri( _nextLink ),Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Method.Get ); + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.FollowingNextLink); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await this.Client.PartnerNamespacesListBySubscription_Call(requestMessage, onOk, onDefault, this, Pipeline); + } + } + } + } + } + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/cmdlets/GetAzEventGridPartnerNamespace_List1.cs b/swaggerci/eventgrid/generated/cmdlets/GetAzEventGridPartnerNamespace_List1.cs new file mode 100644 index 000000000000..dc3c6c7a0800 --- /dev/null +++ b/swaggerci/eventgrid/generated/cmdlets/GetAzEventGridPartnerNamespace_List1.cs @@ -0,0 +1,442 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Extensions; + using System; + + /// List all the partner namespaces under a resource group. + /// + /// [OpenAPI] ListByResourceGroup=>GET:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.EventGrid/partnerNamespaces" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsCommon.Get, @"AzEventGridPartnerNamespace_List1")] + [global::System.Management.Automation.OutputType(typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerNamespace))] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Description(@"List all the partner namespaces under a resource group.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Generated] + public partial class GetAzEventGridPartnerNamespace_List1 : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener + { + /// A unique id generatd for the this cmdlet when it is instantiated. + private string __correlationId = System.Guid.NewGuid().ToString(); + + /// A copy of the Invocation Info (necessary to allow asJob to clone this cmdlet) + private global::System.Management.Automation.InvocationInfo __invocationInfo; + + /// A unique id generatd for the this cmdlet when ProcessRecord() is called. + private string __processRecordId; + + /// + /// The for this operation. + /// + private global::System.Threading.CancellationTokenSource _cancellationTokenSource = new global::System.Threading.CancellationTokenSource(); + + /// A flag to tell whether it is the first onOK call. + private bool _isFirst = true; + + /// Link to retrieve next page. + private string _nextLink; + + /// Wait for .NET debugger to attach + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Wait for .NET debugger to attach")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.EventGridManagementClient Client => Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.ClientAPI; + + /// + /// The credentials, account, tenant, and subscription used for communication with Azure + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The credentials, account, tenant, and subscription used for communication with Azure.")] + [global::System.Management.Automation.ValidateNotNull] + [global::System.Management.Automation.Alias("AzureRMContext", "AzureCredential")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Azure)] + public global::System.Management.Automation.PSObject DefaultProfile { get; set; } + + /// Backing field for property. + private string _filter; + + /// + /// The query used to filter the search results using OData syntax. Filtering is permitted on the 'name' property only and + /// with limited number of OData operations. These operations are: the 'contains' function as well as the following logical + /// operations: not, and, or, eq (for equal), and ne (for not equal). No arithmetic operations are supported. The following + /// is a valid filter example: $filter=contains(namE, 'PATTERN') and name ne 'PATTERN-1'. The following is not a valid filter + /// example: $filter=location eq 'westus'. + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The query used to filter the search results using OData syntax. Filtering is permitted on the 'name' property only and with limited number of OData operations. These operations are: the 'contains' function as well as the following logical operations: not, and, or, eq (for equal), and ne (for not equal). No arithmetic operations are supported. The following is a valid filter example: $filter=contains(namE, 'PATTERN') and name ne 'PATTERN-1'. The following is not a valid filter example: $filter=location eq 'westus'.")] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The query used to filter the search results using OData syntax. Filtering is permitted on the 'name' property only and with limited number of OData operations. These operations are: the 'contains' function as well as the following logical operations: not, and, or, eq (for equal), and ne (for not equal). No arithmetic operations are supported. The following is a valid filter example: $filter=contains(namE, 'PATTERN') and name ne 'PATTERN-1'. The following is not a valid filter example: $filter=location eq 'westus'.", + SerializedName = @"$filter", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[] HttpPipelineAppend { get; set; } + + /// SendAsync Pipeline Steps to be prepended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be prepended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[] HttpPipelinePrepend { get; set; } + + /// Accessor for our copy of the InvocationInfo. + public global::System.Management.Automation.InvocationInfo InvocationInformation { get => __invocationInfo = __invocationInfo ?? this.MyInvocation ; set { __invocationInfo = value; } } + + /// + /// cancellation delegate. Stops the cmdlet when called. + /// + global::System.Action Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Runtime.HttpPipeline Pipeline { get; set; } + + /// The URI for the proxy server to use + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "The URI for the proxy server to use")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Uri Proxy { get; set; } + + /// Credentials for a proxy server to use for the remote call + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Credentials for a proxy server to use for the remote call")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Management.Automation.PSCredential ProxyCredential { get; set; } + + /// Use the default credentials for the proxy + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Use the default credentials for the proxy")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter ProxyUseDefaultCredentials { get; set; } + + /// Backing field for property. + private string _resourceGroupName; + + /// The name of the resource group within the user's subscription. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the resource group within the user's subscription.")] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the resource group within the user's subscription.", + SerializedName = @"resourceGroupName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Path)] + public string ResourceGroupName { get => this._resourceGroupName; set => this._resourceGroupName = value; } + + /// Backing field for property. + private string[] _subscriptionId; + + /// + /// Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription ID forms part of the + /// URI for every service call. + /// + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.")] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.", + SerializedName = @"subscriptionId", + PossibleTypes = new [] { typeof(string) })] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.DefaultInfo( + Name = @"", + Description =@"", + Script = @"(Get-AzContext).Subscription.Id")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Path)] + public string[] SubscriptionId { get => this._subscriptionId; set => this._subscriptionId = value; } + + /// Backing field for property. + private int _top; + + /// + /// The number of results to return per page for the list operation. Valid range for top parameter is 1 to 100. If not specified, + /// the default number of results to be returned is 20 items per page. + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The number of results to return per page for the list operation. Valid range for top parameter is 1 to 100. If not specified, the default number of results to be returned is 20 items per page.")] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The number of results to return per page for the list operation. Valid range for top parameter is 1 to 100. If not specified, the default number of results to be returned is 20 items per page.", + SerializedName = @"$top", + PossibleTypes = new [] { typeof(int) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Query)] + public int Top { get => this._top; set => this._top = value; } + + /// + /// overrideOnDefault will be called before the regular onDefault has been processed, allowing customization of what + /// happens on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// /// Determines if the rest of the onDefault method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnDefault(global::System.Net.Http.HttpResponseMessage responseMessage, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnOk will be called before the regular onOk has been processed, allowing customization of what happens + /// on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// 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() + { + var telemetryId = Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.GetTelemetryId.Invoke(); + if (telemetryId != "" && telemetryId != "internal") + { + __correlationId = telemetryId; + } + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + + } + + /// + /// Intializes a new instance of the cmdlet class. + /// + public GetAzEventGridPartnerNamespace_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.EventGrid.Runtime.IEventListener.Signal(string id, global::System.Threading.CancellationToken token, global::System.Func messageData) + { + using( NoSynchronizationContext ) + { + if (token.IsCancellationRequested) + { + return ; + } + + switch ( id ) + { + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Information: + { + var data = messageData(); + WriteInformation(data.Message, new string[]{}); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Error: + { + WriteError(new global::System.Management.Automation.ErrorRecord( new global::System.Exception(messageData().Message), string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null ) ); + return ; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.EventData ), InvocationInformation, this.ParameterSetName, __correlationId, __processRecordId, null ); + if (token.IsCancellationRequested) + { + return ; + } + WriteDebug($"{id}: {(messageData().Message ?? global::System.String.Empty)}"); + } + } + + /// Performs execution of the command. + protected override void ProcessRecord() + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + using( var asyncCommandRuntime = new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token); + } + } + catch (global::System.AggregateException aggregateException) + { + // unroll the inner exceptions to get the root cause + foreach( var innerException in aggregateException.Flatten().InnerExceptions ) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(innerException,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + } + catch (global::System.Exception exception) when ((exception as System.Management.Automation.PipelineStoppedException)== null || (exception as System.Management.Automation.PipelineStoppedException).InnerException != null) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(exception,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + finally + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletProcessRecordEnd).Wait(); + } + } + + /// Performs execution of the command, working asynchronously if required. + /// + /// A that will be complete when handling of the method is completed. + /// + protected async global::System.Threading.Tasks.Task ProcessRecordAsync() + { + using( NoSynchronizationContext ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + foreach( var SubscriptionId in this.SubscriptionId ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await this.Client.PartnerNamespacesListByResourceGroup(SubscriptionId, ResourceGroupName, this.InvocationInformation.BoundParameters.ContainsKey("Filter") ? Filter : null, this.InvocationInformation.BoundParameters.ContainsKey("Top") ? Top : default(int?), onOk, onDefault, this, Pipeline); + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.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,Top=this.InvocationInformation.BoundParameters.ContainsKey("Top") ? Top : default(int?)}) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(urexception.Message) { RecommendedAction = urexception.Action } + }); + } + finally + { + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Cancel(); + base.StopProcessing(); + } + + /// + /// a delegate that is called when the remote service returns default (any response code not handled elsewhere). + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onDefault(global::System.Net.Http.HttpResponseMessage responseMessage) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnDefault(responseMessage, ref _returnNow); + // if overrideOnDefault has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // Error Response : default + // Unrecognized Response. Create an error record based on what we have. + var ex = new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.RestException(responseMessage); + 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, Top=this.InvocationInformation.BoundParameters.ContainsKey("Top") ? Top : default(int?) }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(ex.Message) { RecommendedAction = ex.Action } + }); + } + } + + /// a delegate that is called when the remote service returns 200 (OK). + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnOk(responseMessage, response, ref _returnNow); + // if overrideOnOk has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // onOk - response for 200 / application/json + // response should be returning an array of some kind. +Pageable + // pageable / value / nextLink + var result = await response; + WriteObject(result.Value,true); + _nextLink = result.NextLink; + if (_isFirst) + { + _isFirst = false; + while (_nextLink != null) + { + if (responseMessage.RequestMessage is System.Net.Http.HttpRequestMessage requestMessage ) + { + requestMessage = requestMessage.Clone(new global::System.Uri( _nextLink ),Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Method.Get ); + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.FollowingNextLink); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await this.Client.PartnerNamespacesListByResourceGroup_Call(requestMessage, onOk, onDefault, this, Pipeline); + } + } + } + } + } + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/cmdlets/GetAzEventGridPartnerRegistration_Get.cs b/swaggerci/eventgrid/generated/cmdlets/GetAzEventGridPartnerRegistration_Get.cs new file mode 100644 index 000000000000..a35105e1e1f5 --- /dev/null +++ b/swaggerci/eventgrid/generated/cmdlets/GetAzEventGridPartnerRegistration_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.EventGrid.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Extensions; + using System; + + /// Gets a partner registration with the specified parameters. + /// + /// [OpenAPI] Get=>GET:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.EventGrid/partnerRegistrations/{partnerRegistrationName}" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsCommon.Get, @"AzEventGridPartnerRegistration_Get")] + [global::System.Management.Automation.OutputType(typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerRegistration))] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Description(@"Gets a partner registration with the specified parameters.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Generated] + public partial class GetAzEventGridPartnerRegistration_Get : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener + { + /// A unique id generatd for the this cmdlet when it is instantiated. + private string __correlationId = System.Guid.NewGuid().ToString(); + + /// A copy of the Invocation Info (necessary to allow asJob to clone this cmdlet) + private global::System.Management.Automation.InvocationInfo __invocationInfo; + + /// A unique id generatd for the this cmdlet when ProcessRecord() is called. + private string __processRecordId; + + /// + /// The for this operation. + /// + private global::System.Threading.CancellationTokenSource _cancellationTokenSource = new global::System.Threading.CancellationTokenSource(); + + /// Wait for .NET debugger to attach + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Wait for .NET debugger to attach")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.EventGridManagementClient Client => Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.ClientAPI; + + /// + /// The credentials, account, tenant, and subscription used for communication with Azure + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The credentials, account, tenant, and subscription used for communication with Azure.")] + [global::System.Management.Automation.ValidateNotNull] + [global::System.Management.Automation.Alias("AzureRMContext", "AzureCredential")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Azure)] + public global::System.Management.Automation.PSObject DefaultProfile { get; set; } + + /// SendAsync Pipeline Steps to be appended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be appended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[] HttpPipelineAppend { get; set; } + + /// SendAsync Pipeline Steps to be prepended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be prepended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[] HttpPipelinePrepend { get; set; } + + /// Accessor for our copy of the InvocationInfo. + public global::System.Management.Automation.InvocationInfo InvocationInformation { get => __invocationInfo = __invocationInfo ?? this.MyInvocation ; set { __invocationInfo = value; } } + + /// + /// cancellation delegate. Stops the cmdlet when called. + /// + global::System.Action Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener.Token => _cancellationTokenSource.Token; + + /// Backing field for property. + private string _name; + + /// Name of the partner registration. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Name of the partner registration.")] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Name of the partner registration.", + SerializedName = @"partnerRegistrationName", + PossibleTypes = new [] { typeof(string) })] + [global::System.Management.Automation.Alias("PartnerRegistrationName")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Runtime.HttpPipeline Pipeline { get; set; } + + /// The URI for the proxy server to use + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "The URI for the proxy server to use")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Uri Proxy { get; set; } + + /// Credentials for a proxy server to use for the remote call + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Credentials for a proxy server to use for the remote call")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Management.Automation.PSCredential ProxyCredential { get; set; } + + /// Use the default credentials for the proxy + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Use the default credentials for the proxy")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter ProxyUseDefaultCredentials { get; set; } + + /// Backing field for property. + private string _resourceGroupName; + + /// The name of the resource group within the user's subscription. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the resource group within the user's subscription.")] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the resource group within the user's subscription.", + SerializedName = @"resourceGroupName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Path)] + public string ResourceGroupName { get => this._resourceGroupName; set => this._resourceGroupName = value; } + + /// Backing field for property. + private string[] _subscriptionId; + + /// + /// Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription ID forms part of the + /// URI for every service call. + /// + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.")] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.", + SerializedName = @"subscriptionId", + PossibleTypes = new [] { typeof(string) })] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.DefaultInfo( + Name = @"", + Description =@"", + Script = @"(Get-AzContext).Subscription.Id")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Path)] + public string[] SubscriptionId { get => this._subscriptionId; set => this._subscriptionId = value; } + + /// + /// overrideOnDefault will be called before the regular onDefault has been processed, allowing customization of what + /// happens on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// /// Determines if the rest of the onDefault method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnDefault(global::System.Net.Http.HttpResponseMessage responseMessage, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnOk will be called before the regular onOk has been processed, allowing customization of what happens + /// on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// 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() + { + var telemetryId = Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.GetTelemetryId.Invoke(); + if (telemetryId != "" && telemetryId != "internal") + { + __correlationId = telemetryId; + } + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + + } + + /// + /// Intializes a new instance of the cmdlet class. + /// + public GetAzEventGridPartnerRegistration_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.EventGrid.Runtime.IEventListener.Signal(string id, global::System.Threading.CancellationToken token, global::System.Func messageData) + { + using( NoSynchronizationContext ) + { + if (token.IsCancellationRequested) + { + return ; + } + + switch ( id ) + { + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Information: + { + var data = messageData(); + WriteInformation(data.Message, new string[]{}); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Error: + { + WriteError(new global::System.Management.Automation.ErrorRecord( new global::System.Exception(messageData().Message), string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null ) ); + return ; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.EventData ), InvocationInformation, this.ParameterSetName, __correlationId, __processRecordId, null ); + if (token.IsCancellationRequested) + { + return ; + } + WriteDebug($"{id}: {(messageData().Message ?? global::System.String.Empty)}"); + } + } + + /// Performs execution of the command. + protected override void ProcessRecord() + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + using( var asyncCommandRuntime = new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token); + } + } + catch (global::System.AggregateException aggregateException) + { + // unroll the inner exceptions to get the root cause + foreach( var innerException in aggregateException.Flatten().InnerExceptions ) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(innerException,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + } + catch (global::System.Exception exception) when ((exception as System.Management.Automation.PipelineStoppedException)== null || (exception as System.Management.Automation.PipelineStoppedException).InnerException != null) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(exception,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + finally + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletProcessRecordEnd).Wait(); + } + } + + /// Performs execution of the command, working asynchronously if required. + /// + /// A that will be complete when handling of the method is completed. + /// + protected async global::System.Threading.Tasks.Task ProcessRecordAsync() + { + using( NoSynchronizationContext ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + foreach( var SubscriptionId in this.SubscriptionId ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await this.Client.PartnerRegistrationsGet(SubscriptionId, ResourceGroupName, Name, onOk, onDefault, this, Pipeline); + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.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.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Cancel(); + base.StopProcessing(); + } + + /// + /// a delegate that is called when the remote service returns default (any response code not handled elsewhere). + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onDefault(global::System.Net.Http.HttpResponseMessage responseMessage) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnDefault(responseMessage, ref _returnNow); + // if overrideOnDefault has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // Error Response : default + // Unrecognized Response. Create an error record based on what we have. + var ex = new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.RestException(responseMessage); + 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 } + }); + } + } + + /// a delegate that is 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.EventGrid.Models.Api20211015Preview.IPartnerRegistration + WriteObject((await response)); + } + } + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/cmdlets/GetAzEventGridPartnerRegistration_GetViaIdentity.cs b/swaggerci/eventgrid/generated/cmdlets/GetAzEventGridPartnerRegistration_GetViaIdentity.cs new file mode 100644 index 000000000000..943776f67cfb --- /dev/null +++ b/swaggerci/eventgrid/generated/cmdlets/GetAzEventGridPartnerRegistration_GetViaIdentity.cs @@ -0,0 +1,373 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Extensions; + using System; + + /// Gets a partner registration with the specified parameters. + /// + /// [OpenAPI] Get=>GET:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.EventGrid/partnerRegistrations/{partnerRegistrationName}" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsCommon.Get, @"AzEventGridPartnerRegistration_GetViaIdentity")] + [global::System.Management.Automation.OutputType(typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerRegistration))] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Description(@"Gets a partner registration with the specified parameters.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Generated] + public partial class GetAzEventGridPartnerRegistration_GetViaIdentity : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener + { + /// A unique id generatd for the this cmdlet when it is instantiated. + private string __correlationId = System.Guid.NewGuid().ToString(); + + /// A copy of the Invocation Info (necessary to allow asJob to clone this cmdlet) + private global::System.Management.Automation.InvocationInfo __invocationInfo; + + /// A unique id generatd for the this cmdlet when ProcessRecord() is called. + private string __processRecordId; + + /// + /// The for this operation. + /// + private global::System.Threading.CancellationTokenSource _cancellationTokenSource = new global::System.Threading.CancellationTokenSource(); + + /// Wait for .NET debugger to attach + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Wait for .NET debugger to attach")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.EventGridManagementClient Client => Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.ClientAPI; + + /// + /// The credentials, account, tenant, and subscription used for communication with Azure + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The credentials, account, tenant, and subscription used for communication with Azure.")] + [global::System.Management.Automation.ValidateNotNull] + [global::System.Management.Automation.Alias("AzureRMContext", "AzureCredential")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Azure)] + public global::System.Management.Automation.PSObject DefaultProfile { get; set; } + + /// SendAsync Pipeline Steps to be appended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be appended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[] HttpPipelineAppend { get; set; } + + /// SendAsync Pipeline Steps to be prepended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be prepended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[] HttpPipelinePrepend { get; set; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.IEventGridIdentity _inputObject; + + /// Identity Parameter + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Identity Parameter", ValueFromPipeline = true)] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Path)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.IEventGridIdentity InputObject { get => this._inputObject; set => this._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.EventGrid.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Runtime.HttpPipeline Pipeline { get; set; } + + /// The URI for the proxy server to use + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "The URI for the proxy server to use")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Uri Proxy { get; set; } + + /// Credentials for a proxy server to use for the remote call + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Credentials for a proxy server to use for the remote call")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Management.Automation.PSCredential ProxyCredential { get; set; } + + /// Use the default credentials for the proxy + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Use the default credentials for the proxy")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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. + /// /// Determines if the rest of the onDefault method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnDefault(global::System.Net.Http.HttpResponseMessage responseMessage, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnOk will be called before the regular onOk has been processed, allowing customization of what happens + /// on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// 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() + { + var telemetryId = Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.GetTelemetryId.Invoke(); + if (telemetryId != "" && telemetryId != "internal") + { + __correlationId = telemetryId; + } + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + + } + + /// + /// Intializes a new instance of the cmdlet class. + /// + public GetAzEventGridPartnerRegistration_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.EventGrid.Runtime.IEventListener.Signal(string id, global::System.Threading.CancellationToken token, global::System.Func messageData) + { + using( NoSynchronizationContext ) + { + if (token.IsCancellationRequested) + { + return ; + } + + switch ( id ) + { + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Information: + { + var data = messageData(); + WriteInformation(data.Message, new string[]{}); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Error: + { + WriteError(new global::System.Management.Automation.ErrorRecord( new global::System.Exception(messageData().Message), string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null ) ); + return ; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.EventData ), InvocationInformation, this.ParameterSetName, __correlationId, __processRecordId, null ); + if (token.IsCancellationRequested) + { + return ; + } + WriteDebug($"{id}: {(messageData().Message ?? global::System.String.Empty)}"); + } + } + + /// Performs execution of the command. + protected override void ProcessRecord() + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + using( var asyncCommandRuntime = new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token); + } + } + catch (global::System.AggregateException aggregateException) + { + // unroll the inner exceptions to get the root cause + foreach( var innerException in aggregateException.Flatten().InnerExceptions ) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(innerException,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + } + catch (global::System.Exception exception) when ((exception as System.Management.Automation.PipelineStoppedException)== null || (exception as System.Management.Automation.PipelineStoppedException).InnerException != null) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(exception,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + finally + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletProcessRecordEnd).Wait(); + } + } + + /// Performs execution of the command, working asynchronously if required. + /// + /// A that will be complete when handling of the method is completed. + /// + protected async global::System.Threading.Tasks.Task ProcessRecordAsync() + { + using( NoSynchronizationContext ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + if (InputObject?.Id != null) + { + await this.Client.PartnerRegistrationsGetViaIdentity(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.PartnerRegistrationName) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.PartnerRegistrationName"),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, InputObject) ); + } + await this.Client.PartnerRegistrationsGet(InputObject.SubscriptionId ?? null, InputObject.ResourceGroupName ?? null, InputObject.PartnerRegistrationName ?? null, onOk, onDefault, this, Pipeline); + } + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Cancel(); + base.StopProcessing(); + } + + /// + /// a delegate that is called when the remote service returns default (any response code not handled elsewhere). + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onDefault(global::System.Net.Http.HttpResponseMessage responseMessage) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnDefault(responseMessage, ref _returnNow); + // if overrideOnDefault has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // Error Response : default + // Unrecognized Response. Create an error record based on what we have. + var ex = new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.RestException(responseMessage); + WriteError( new global::System.Management.Automation.ErrorRecord(ex, ex.Code, global::System.Management.Automation.ErrorCategory.InvalidOperation, new { }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(ex.Message) { RecommendedAction = ex.Action } + }); + } + } + + /// a delegate that is called when the remote service returns 200 (OK). + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as 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.EventGrid.Models.Api20211015Preview.IPartnerRegistration + WriteObject((await response)); + } + } + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/cmdlets/GetAzEventGridPartnerRegistration_List.cs b/swaggerci/eventgrid/generated/cmdlets/GetAzEventGridPartnerRegistration_List.cs new file mode 100644 index 000000000000..b734c4e2c536 --- /dev/null +++ b/swaggerci/eventgrid/generated/cmdlets/GetAzEventGridPartnerRegistration_List.cs @@ -0,0 +1,428 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Extensions; + using System; + + /// List all the partner registrations under an Azure subscription. + /// + /// [OpenAPI] ListBySubscription=>GET:"/subscriptions/{subscriptionId}/providers/Microsoft.EventGrid/partnerRegistrations" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsCommon.Get, @"AzEventGridPartnerRegistration_List")] + [global::System.Management.Automation.OutputType(typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerRegistration))] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Description(@"List all the partner registrations under an Azure subscription.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Generated] + public partial class GetAzEventGridPartnerRegistration_List : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener + { + /// A unique id generatd for the this cmdlet when it is instantiated. + private string __correlationId = System.Guid.NewGuid().ToString(); + + /// A copy of the Invocation Info (necessary to allow asJob to clone this cmdlet) + private global::System.Management.Automation.InvocationInfo __invocationInfo; + + /// A unique id generatd for the this cmdlet when ProcessRecord() is called. + private string __processRecordId; + + /// + /// The for this operation. + /// + private global::System.Threading.CancellationTokenSource _cancellationTokenSource = new global::System.Threading.CancellationTokenSource(); + + /// A flag to tell whether it is the first onOK call. + private bool _isFirst = true; + + /// Link to retrieve next page. + private string _nextLink; + + /// Wait for .NET debugger to attach + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Wait for .NET debugger to attach")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.EventGridManagementClient Client => Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.ClientAPI; + + /// + /// The credentials, account, tenant, and subscription used for communication with Azure + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The credentials, account, tenant, and subscription used for communication with Azure.")] + [global::System.Management.Automation.ValidateNotNull] + [global::System.Management.Automation.Alias("AzureRMContext", "AzureCredential")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Azure)] + public global::System.Management.Automation.PSObject DefaultProfile { get; set; } + + /// Backing field for property. + private string _filter; + + /// + /// The query used to filter the search results using OData syntax. Filtering is permitted on the 'name' property only and + /// with limited number of OData operations. These operations are: the 'contains' function as well as the following logical + /// operations: not, and, or, eq (for equal), and ne (for not equal). No arithmetic operations are supported. The following + /// is a valid filter example: $filter=contains(namE, 'PATTERN') and name ne 'PATTERN-1'. The following is not a valid filter + /// example: $filter=location eq 'westus'. + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The query used to filter the search results using OData syntax. Filtering is permitted on the 'name' property only and with limited number of OData operations. These operations are: the 'contains' function as well as the following logical operations: not, and, or, eq (for equal), and ne (for not equal). No arithmetic operations are supported. The following is a valid filter example: $filter=contains(namE, 'PATTERN') and name ne 'PATTERN-1'. The following is not a valid filter example: $filter=location eq 'westus'.")] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The query used to filter the search results using OData syntax. Filtering is permitted on the 'name' property only and with limited number of OData operations. These operations are: the 'contains' function as well as the following logical operations: not, and, or, eq (for equal), and ne (for not equal). No arithmetic operations are supported. The following is a valid filter example: $filter=contains(namE, 'PATTERN') and name ne 'PATTERN-1'. The following is not a valid filter example: $filter=location eq 'westus'.", + SerializedName = @"$filter", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[] HttpPipelineAppend { get; set; } + + /// SendAsync Pipeline Steps to be prepended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be prepended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[] HttpPipelinePrepend { get; set; } + + /// Accessor for our copy of the InvocationInfo. + public global::System.Management.Automation.InvocationInfo InvocationInformation { get => __invocationInfo = __invocationInfo ?? this.MyInvocation ; set { __invocationInfo = value; } } + + /// + /// cancellation delegate. Stops the cmdlet when called. + /// + global::System.Action Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Runtime.HttpPipeline Pipeline { get; set; } + + /// The URI for the proxy server to use + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "The URI for the proxy server to use")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Uri Proxy { get; set; } + + /// Credentials for a proxy server to use for the remote call + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Credentials for a proxy server to use for the remote call")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Management.Automation.PSCredential ProxyCredential { get; set; } + + /// Use the default credentials for the proxy + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Use the default credentials for the proxy")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter ProxyUseDefaultCredentials { get; set; } + + /// Backing field for property. + private string[] _subscriptionId; + + /// + /// Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription ID forms part of the + /// URI for every service call. + /// + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.")] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.", + SerializedName = @"subscriptionId", + PossibleTypes = new [] { typeof(string) })] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.DefaultInfo( + Name = @"", + Description =@"", + Script = @"(Get-AzContext).Subscription.Id")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Path)] + public string[] SubscriptionId { get => this._subscriptionId; set => this._subscriptionId = value; } + + /// Backing field for property. + private int _top; + + /// + /// The number of results to return per page for the list operation. Valid range for top parameter is 1 to 100. If not specified, + /// the default number of results to be returned is 20 items per page. + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The number of results to return per page for the list operation. Valid range for top parameter is 1 to 100. If not specified, the default number of results to be returned is 20 items per page.")] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The number of results to return per page for the list operation. Valid range for top parameter is 1 to 100. If not specified, the default number of results to be returned is 20 items per page.", + SerializedName = @"$top", + PossibleTypes = new [] { typeof(int) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Query)] + public int Top { get => this._top; set => this._top = value; } + + /// + /// overrideOnDefault will be called before the regular onDefault has been processed, allowing customization of what + /// happens on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// /// Determines if the rest of the onDefault method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnDefault(global::System.Net.Http.HttpResponseMessage responseMessage, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnOk will be called before the regular onOk has been processed, allowing customization of what happens + /// on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// 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() + { + var telemetryId = Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.GetTelemetryId.Invoke(); + if (telemetryId != "" && telemetryId != "internal") + { + __correlationId = telemetryId; + } + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + + } + + /// + /// Intializes a new instance of the cmdlet class. + /// + public GetAzEventGridPartnerRegistration_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.EventGrid.Runtime.IEventListener.Signal(string id, global::System.Threading.CancellationToken token, global::System.Func messageData) + { + using( NoSynchronizationContext ) + { + if (token.IsCancellationRequested) + { + return ; + } + + switch ( id ) + { + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Information: + { + var data = messageData(); + WriteInformation(data.Message, new string[]{}); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Error: + { + WriteError(new global::System.Management.Automation.ErrorRecord( new global::System.Exception(messageData().Message), string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null ) ); + return ; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.EventData ), InvocationInformation, this.ParameterSetName, __correlationId, __processRecordId, null ); + if (token.IsCancellationRequested) + { + return ; + } + WriteDebug($"{id}: {(messageData().Message ?? global::System.String.Empty)}"); + } + } + + /// Performs execution of the command. + protected override void ProcessRecord() + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + using( var asyncCommandRuntime = new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token); + } + } + catch (global::System.AggregateException aggregateException) + { + // unroll the inner exceptions to get the root cause + foreach( var innerException in aggregateException.Flatten().InnerExceptions ) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(innerException,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + } + catch (global::System.Exception exception) when ((exception as System.Management.Automation.PipelineStoppedException)== null || (exception as System.Management.Automation.PipelineStoppedException).InnerException != null) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(exception,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + finally + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletProcessRecordEnd).Wait(); + } + } + + /// Performs execution of the command, working asynchronously if required. + /// + /// A that will be complete when handling of the method is completed. + /// + protected async global::System.Threading.Tasks.Task ProcessRecordAsync() + { + using( NoSynchronizationContext ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + foreach( var SubscriptionId in this.SubscriptionId ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await this.Client.PartnerRegistrationsListBySubscription(SubscriptionId, this.InvocationInformation.BoundParameters.ContainsKey("Filter") ? Filter : null, this.InvocationInformation.BoundParameters.ContainsKey("Top") ? Top : default(int?), onOk, onDefault, this, Pipeline); + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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,Top=this.InvocationInformation.BoundParameters.ContainsKey("Top") ? Top : default(int?)}) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(urexception.Message) { RecommendedAction = urexception.Action } + }); + } + finally + { + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Cancel(); + base.StopProcessing(); + } + + /// + /// a delegate that is called when the remote service returns default (any response code not handled elsewhere). + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onDefault(global::System.Net.Http.HttpResponseMessage responseMessage) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnDefault(responseMessage, ref _returnNow); + // if overrideOnDefault has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // Error Response : default + // Unrecognized Response. Create an error record based on what we have. + var ex = new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.RestException(responseMessage); + 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, Top=this.InvocationInformation.BoundParameters.ContainsKey("Top") ? Top : default(int?) }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(ex.Message) { RecommendedAction = ex.Action } + }); + } + } + + /// a delegate that is called when the remote service returns 200 (OK). + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnOk(responseMessage, response, ref _returnNow); + // if overrideOnOk has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // onOk - response for 200 / application/json + // response should be returning an array of some kind. +Pageable + // pageable / value / nextLink + var result = await response; + WriteObject(result.Value,true); + _nextLink = result.NextLink; + if (_isFirst) + { + _isFirst = false; + while (_nextLink != null) + { + if (responseMessage.RequestMessage is System.Net.Http.HttpRequestMessage requestMessage ) + { + requestMessage = requestMessage.Clone(new global::System.Uri( _nextLink ),Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Method.Get ); + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.FollowingNextLink); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await this.Client.PartnerRegistrationsListBySubscription_Call(requestMessage, onOk, onDefault, this, Pipeline); + } + } + } + } + } + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/cmdlets/GetAzEventGridPartnerRegistration_List1.cs b/swaggerci/eventgrid/generated/cmdlets/GetAzEventGridPartnerRegistration_List1.cs new file mode 100644 index 000000000000..f6041d26e8ec --- /dev/null +++ b/swaggerci/eventgrid/generated/cmdlets/GetAzEventGridPartnerRegistration_List1.cs @@ -0,0 +1,442 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Extensions; + using System; + + /// List all the partner registrations under a resource group. + /// + /// [OpenAPI] ListByResourceGroup=>GET:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.EventGrid/partnerRegistrations" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsCommon.Get, @"AzEventGridPartnerRegistration_List1")] + [global::System.Management.Automation.OutputType(typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerRegistration))] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Description(@"List all the partner registrations under a resource group.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Generated] + public partial class GetAzEventGridPartnerRegistration_List1 : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener + { + /// A unique id generatd for the this cmdlet when it is instantiated. + private string __correlationId = System.Guid.NewGuid().ToString(); + + /// A copy of the Invocation Info (necessary to allow asJob to clone this cmdlet) + private global::System.Management.Automation.InvocationInfo __invocationInfo; + + /// A unique id generatd for the this cmdlet when ProcessRecord() is called. + private string __processRecordId; + + /// + /// The for this operation. + /// + private global::System.Threading.CancellationTokenSource _cancellationTokenSource = new global::System.Threading.CancellationTokenSource(); + + /// A flag to tell whether it is the first onOK call. + private bool _isFirst = true; + + /// Link to retrieve next page. + private string _nextLink; + + /// Wait for .NET debugger to attach + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Wait for .NET debugger to attach")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.EventGridManagementClient Client => Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.ClientAPI; + + /// + /// The credentials, account, tenant, and subscription used for communication with Azure + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The credentials, account, tenant, and subscription used for communication with Azure.")] + [global::System.Management.Automation.ValidateNotNull] + [global::System.Management.Automation.Alias("AzureRMContext", "AzureCredential")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Azure)] + public global::System.Management.Automation.PSObject DefaultProfile { get; set; } + + /// Backing field for property. + private string _filter; + + /// + /// The query used to filter the search results using OData syntax. Filtering is permitted on the 'name' property only and + /// with limited number of OData operations. These operations are: the 'contains' function as well as the following logical + /// operations: not, and, or, eq (for equal), and ne (for not equal). No arithmetic operations are supported. The following + /// is a valid filter example: $filter=contains(namE, 'PATTERN') and name ne 'PATTERN-1'. The following is not a valid filter + /// example: $filter=location eq 'westus'. + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The query used to filter the search results using OData syntax. Filtering is permitted on the 'name' property only and with limited number of OData operations. These operations are: the 'contains' function as well as the following logical operations: not, and, or, eq (for equal), and ne (for not equal). No arithmetic operations are supported. The following is a valid filter example: $filter=contains(namE, 'PATTERN') and name ne 'PATTERN-1'. The following is not a valid filter example: $filter=location eq 'westus'.")] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The query used to filter the search results using OData syntax. Filtering is permitted on the 'name' property only and with limited number of OData operations. These operations are: the 'contains' function as well as the following logical operations: not, and, or, eq (for equal), and ne (for not equal). No arithmetic operations are supported. The following is a valid filter example: $filter=contains(namE, 'PATTERN') and name ne 'PATTERN-1'. The following is not a valid filter example: $filter=location eq 'westus'.", + SerializedName = @"$filter", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[] HttpPipelineAppend { get; set; } + + /// SendAsync Pipeline Steps to be prepended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be prepended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[] HttpPipelinePrepend { get; set; } + + /// Accessor for our copy of the InvocationInfo. + public global::System.Management.Automation.InvocationInfo InvocationInformation { get => __invocationInfo = __invocationInfo ?? this.MyInvocation ; set { __invocationInfo = value; } } + + /// + /// cancellation delegate. Stops the cmdlet when called. + /// + global::System.Action Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Runtime.HttpPipeline Pipeline { get; set; } + + /// The URI for the proxy server to use + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "The URI for the proxy server to use")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Uri Proxy { get; set; } + + /// Credentials for a proxy server to use for the remote call + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Credentials for a proxy server to use for the remote call")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Management.Automation.PSCredential ProxyCredential { get; set; } + + /// Use the default credentials for the proxy + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Use the default credentials for the proxy")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter ProxyUseDefaultCredentials { get; set; } + + /// Backing field for property. + private string _resourceGroupName; + + /// The name of the resource group within the user's subscription. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the resource group within the user's subscription.")] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the resource group within the user's subscription.", + SerializedName = @"resourceGroupName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Path)] + public string ResourceGroupName { get => this._resourceGroupName; set => this._resourceGroupName = value; } + + /// Backing field for property. + private string[] _subscriptionId; + + /// + /// Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription ID forms part of the + /// URI for every service call. + /// + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.")] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.", + SerializedName = @"subscriptionId", + PossibleTypes = new [] { typeof(string) })] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.DefaultInfo( + Name = @"", + Description =@"", + Script = @"(Get-AzContext).Subscription.Id")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Path)] + public string[] SubscriptionId { get => this._subscriptionId; set => this._subscriptionId = value; } + + /// Backing field for property. + private int _top; + + /// + /// The number of results to return per page for the list operation. Valid range for top parameter is 1 to 100. If not specified, + /// the default number of results to be returned is 20 items per page. + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The number of results to return per page for the list operation. Valid range for top parameter is 1 to 100. If not specified, the default number of results to be returned is 20 items per page.")] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The number of results to return per page for the list operation. Valid range for top parameter is 1 to 100. If not specified, the default number of results to be returned is 20 items per page.", + SerializedName = @"$top", + PossibleTypes = new [] { typeof(int) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Query)] + public int Top { get => this._top; set => this._top = value; } + + /// + /// overrideOnDefault will be called before the regular onDefault has been processed, allowing customization of what + /// happens on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// /// Determines if the rest of the onDefault method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnDefault(global::System.Net.Http.HttpResponseMessage responseMessage, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnOk will be called before the regular onOk has been processed, allowing customization of what happens + /// on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// 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() + { + var telemetryId = Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.GetTelemetryId.Invoke(); + if (telemetryId != "" && telemetryId != "internal") + { + __correlationId = telemetryId; + } + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + + } + + /// + /// Intializes a new instance of the cmdlet class. + /// + public GetAzEventGridPartnerRegistration_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.EventGrid.Runtime.IEventListener.Signal(string id, global::System.Threading.CancellationToken token, global::System.Func messageData) + { + using( NoSynchronizationContext ) + { + if (token.IsCancellationRequested) + { + return ; + } + + switch ( id ) + { + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Information: + { + var data = messageData(); + WriteInformation(data.Message, new string[]{}); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Error: + { + WriteError(new global::System.Management.Automation.ErrorRecord( new global::System.Exception(messageData().Message), string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null ) ); + return ; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.EventData ), InvocationInformation, this.ParameterSetName, __correlationId, __processRecordId, null ); + if (token.IsCancellationRequested) + { + return ; + } + WriteDebug($"{id}: {(messageData().Message ?? global::System.String.Empty)}"); + } + } + + /// Performs execution of the command. + protected override void ProcessRecord() + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + using( var asyncCommandRuntime = new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token); + } + } + catch (global::System.AggregateException aggregateException) + { + // unroll the inner exceptions to get the root cause + foreach( var innerException in aggregateException.Flatten().InnerExceptions ) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(innerException,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + } + catch (global::System.Exception exception) when ((exception as System.Management.Automation.PipelineStoppedException)== null || (exception as System.Management.Automation.PipelineStoppedException).InnerException != null) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(exception,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + finally + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletProcessRecordEnd).Wait(); + } + } + + /// Performs execution of the command, working asynchronously if required. + /// + /// A that will be complete when handling of the method is completed. + /// + protected async global::System.Threading.Tasks.Task ProcessRecordAsync() + { + using( NoSynchronizationContext ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + foreach( var SubscriptionId in this.SubscriptionId ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await this.Client.PartnerRegistrationsListByResourceGroup(SubscriptionId, ResourceGroupName, this.InvocationInformation.BoundParameters.ContainsKey("Filter") ? Filter : null, this.InvocationInformation.BoundParameters.ContainsKey("Top") ? Top : default(int?), onOk, onDefault, this, Pipeline); + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.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,Top=this.InvocationInformation.BoundParameters.ContainsKey("Top") ? Top : default(int?)}) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(urexception.Message) { RecommendedAction = urexception.Action } + }); + } + finally + { + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Cancel(); + base.StopProcessing(); + } + + /// + /// a delegate that is called when the remote service returns default (any response code not handled elsewhere). + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onDefault(global::System.Net.Http.HttpResponseMessage responseMessage) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnDefault(responseMessage, ref _returnNow); + // if overrideOnDefault has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // Error Response : default + // Unrecognized Response. Create an error record based on what we have. + var ex = new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.RestException(responseMessage); + 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, Top=this.InvocationInformation.BoundParameters.ContainsKey("Top") ? Top : default(int?) }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(ex.Message) { RecommendedAction = ex.Action } + }); + } + } + + /// a delegate that is called when the remote service returns 200 (OK). + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnOk(responseMessage, response, ref _returnNow); + // if overrideOnOk has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // onOk - response for 200 / application/json + // response should be returning an array of some kind. +Pageable + // pageable / value / nextLink + var result = await response; + WriteObject(result.Value,true); + _nextLink = result.NextLink; + if (_isFirst) + { + _isFirst = false; + while (_nextLink != null) + { + if (responseMessage.RequestMessage is System.Net.Http.HttpRequestMessage requestMessage ) + { + requestMessage = requestMessage.Clone(new global::System.Uri( _nextLink ),Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Method.Get ); + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.FollowingNextLink); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await this.Client.PartnerRegistrationsListByResourceGroup_Call(requestMessage, onOk, onDefault, this, Pipeline); + } + } + } + } + } + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/cmdlets/GetAzEventGridPartnerTopicEventSubscriptionDeliveryAttribute_Get.cs b/swaggerci/eventgrid/generated/cmdlets/GetAzEventGridPartnerTopicEventSubscriptionDeliveryAttribute_Get.cs new file mode 100644 index 000000000000..9d2eb8ef8aa7 --- /dev/null +++ b/swaggerci/eventgrid/generated/cmdlets/GetAzEventGridPartnerTopicEventSubscriptionDeliveryAttribute_Get.cs @@ -0,0 +1,419 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Extensions; + using System; + + /// Get all delivery attributes for an event subscription of a partner topic. + /// + /// [OpenAPI] GetDeliveryAttributes=>POST:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.EventGrid/partnerTopics/{partnerTopicName}/eventSubscriptions/{eventSubscriptionName}/getDeliveryAttributes" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsCommon.Get, @"AzEventGridPartnerTopicEventSubscriptionDeliveryAttribute_Get", SupportsShouldProcess = true)] + [global::System.Management.Automation.OutputType(typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDeliveryAttributeMapping))] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Description(@"Get all delivery attributes for an event subscription of a partner topic.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Generated] + public partial class GetAzEventGridPartnerTopicEventSubscriptionDeliveryAttribute_Get : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener + { + /// A unique id generatd for the this cmdlet when it is instantiated. + private string __correlationId = System.Guid.NewGuid().ToString(); + + /// A copy of the Invocation Info (necessary to allow asJob to clone this cmdlet) + private global::System.Management.Automation.InvocationInfo __invocationInfo; + + /// A unique id generatd for the this cmdlet when ProcessRecord() is called. + private string __processRecordId; + + /// + /// The for this operation. + /// + private global::System.Threading.CancellationTokenSource _cancellationTokenSource = new global::System.Threading.CancellationTokenSource(); + + /// Wait for .NET debugger to attach + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Wait for .NET debugger to attach")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.EventGridManagementClient Client => Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.ClientAPI; + + /// + /// The credentials, account, tenant, and subscription used for communication with Azure + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The credentials, account, tenant, and subscription used for communication with Azure.")] + [global::System.Management.Automation.ValidateNotNull] + [global::System.Management.Automation.Alias("AzureRMContext", "AzureCredential")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Azure)] + public global::System.Management.Automation.PSObject DefaultProfile { get; set; } + + /// Backing field for property. + private string _eventSubscriptionName; + + /// + /// Name of the event subscription to be created. Event subscription names must be between 3 and 100 characters in length + /// and use alphanumeric letters only. + /// + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Name of the event subscription to be created. Event subscription names must be between 3 and 100 characters in length and use alphanumeric letters only.")] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Name of the event subscription to be created. Event subscription names must be between 3 and 100 characters in length and use alphanumeric letters only.", + SerializedName = @"eventSubscriptionName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Path)] + public string EventSubscriptionName { get => this._eventSubscriptionName; set => this._eventSubscriptionName = 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.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[] HttpPipelineAppend { get; set; } + + /// SendAsync Pipeline Steps to be prepended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be prepended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[] HttpPipelinePrepend { get; set; } + + /// Accessor for our copy of the InvocationInfo. + public global::System.Management.Automation.InvocationInfo InvocationInformation { get => __invocationInfo = __invocationInfo ?? this.MyInvocation ; set { __invocationInfo = value; } } + + /// + /// cancellation delegate. Stops the cmdlet when called. + /// + global::System.Action Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener.Token => _cancellationTokenSource.Token; + + /// Backing field for property. + private string _partnerTopicName; + + /// Name of the partner topic. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Name of the partner topic.")] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Name of the partner topic.", + SerializedName = @"partnerTopicName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Path)] + public string PartnerTopicName { get => this._partnerTopicName; set => this._partnerTopicName = 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.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Runtime.HttpPipeline Pipeline { get; set; } + + /// The URI for the proxy server to use + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "The URI for the proxy server to use")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Uri Proxy { get; set; } + + /// Credentials for a proxy server to use for the remote call + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Credentials for a proxy server to use for the remote call")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Management.Automation.PSCredential ProxyCredential { get; set; } + + /// Use the default credentials for the proxy + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Use the default credentials for the proxy")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter ProxyUseDefaultCredentials { get; set; } + + /// Backing field for property. + private string _resourceGroupName; + + /// The name of the resource group within the user's subscription. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the resource group within the user's subscription.")] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the resource group within the user's subscription.", + SerializedName = @"resourceGroupName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Path)] + public string ResourceGroupName { get => this._resourceGroupName; set => this._resourceGroupName = value; } + + /// Backing field for property. + private string[] _subscriptionId; + + /// + /// Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription ID forms part of the + /// URI for every service call. + /// + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.")] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.", + SerializedName = @"subscriptionId", + PossibleTypes = new [] { typeof(string) })] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.DefaultInfo( + Name = @"", + Description =@"", + Script = @"(Get-AzContext).Subscription.Id")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Path)] + public string[] SubscriptionId { get => this._subscriptionId; set => this._subscriptionId = value; } + + /// + /// overrideOnDefault will be called before the regular onDefault has been processed, allowing customization of what + /// happens on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// /// Determines if the rest of the onDefault method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnDefault(global::System.Net.Http.HttpResponseMessage responseMessage, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnOk will be called before the regular onOk has been processed, allowing customization of what happens + /// on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// 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() + { + var telemetryId = Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.GetTelemetryId.Invoke(); + if (telemetryId != "" && telemetryId != "internal") + { + __correlationId = telemetryId; + } + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + + } + + /// + /// Intializes a new instance of the cmdlet + /// class. + /// + public GetAzEventGridPartnerTopicEventSubscriptionDeliveryAttribute_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.EventGrid.Runtime.IEventListener.Signal(string id, global::System.Threading.CancellationToken token, global::System.Func messageData) + { + using( NoSynchronizationContext ) + { + if (token.IsCancellationRequested) + { + return ; + } + + switch ( id ) + { + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Information: + { + var data = messageData(); + WriteInformation(data.Message, new string[]{}); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Error: + { + WriteError(new global::System.Management.Automation.ErrorRecord( new global::System.Exception(messageData().Message), string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null ) ); + return ; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.EventData ), InvocationInformation, this.ParameterSetName, __correlationId, __processRecordId, null ); + if (token.IsCancellationRequested) + { + return ; + } + WriteDebug($"{id}: {(messageData().Message ?? global::System.String.Empty)}"); + } + } + + /// Performs execution of the command. + protected override void ProcessRecord() + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + if (ShouldProcess($"Call remote 'PartnerTopicEventSubscriptionsGetDeliveryAttributes' operation")) + { + using( var asyncCommandRuntime = new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token); + } + } + } + catch (global::System.AggregateException aggregateException) + { + // unroll the inner exceptions to get the root cause + foreach( var innerException in aggregateException.Flatten().InnerExceptions ) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(innerException,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + } + catch (global::System.Exception exception) when ((exception as System.Management.Automation.PipelineStoppedException)== null || (exception as System.Management.Automation.PipelineStoppedException).InnerException != null) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(exception,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + finally + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletProcessRecordEnd).Wait(); + } + } + + /// Performs execution of the command, working asynchronously if required. + /// + /// A that will be complete when handling of the method is completed. + /// + protected async global::System.Threading.Tasks.Task ProcessRecordAsync() + { + using( NoSynchronizationContext ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + foreach( var SubscriptionId in this.SubscriptionId ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await this.Client.PartnerTopicEventSubscriptionsGetDeliveryAttributes(SubscriptionId, ResourceGroupName, PartnerTopicName, EventSubscriptionName, onOk, onDefault, this, Pipeline); + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.UndeclaredResponseException urexception) + { + WriteError(new global::System.Management.Automation.ErrorRecord(urexception, urexception.StatusCode.ToString(), global::System.Management.Automation.ErrorCategory.InvalidOperation, new { SubscriptionId=SubscriptionId,ResourceGroupName=ResourceGroupName,PartnerTopicName=PartnerTopicName,EventSubscriptionName=EventSubscriptionName}) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(urexception.Message) { RecommendedAction = urexception.Action } + }); + } + finally + { + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Cancel(); + base.StopProcessing(); + } + + /// + /// a delegate that is called when the remote service returns default (any response code not handled elsewhere). + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onDefault(global::System.Net.Http.HttpResponseMessage responseMessage) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnDefault(responseMessage, ref _returnNow); + // if overrideOnDefault has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // Error Response : default + // Unrecognized Response. Create an error record based on what we have. + var ex = new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.RestException(responseMessage); + WriteError( new global::System.Management.Automation.ErrorRecord(ex, ex.Code, global::System.Management.Automation.ErrorCategory.InvalidOperation, new { SubscriptionId=SubscriptionId, ResourceGroupName=ResourceGroupName, PartnerTopicName=PartnerTopicName, EventSubscriptionName=EventSubscriptionName }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(ex.Message) { RecommendedAction = ex.Action } + }); + } + } + + /// a delegate that is called when the remote service returns 200 (OK). + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnOk(responseMessage, response, ref _returnNow); + // if overrideOnOk has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // onOk - response for 200 / application/json + // response should be returning an array of some kind. +Pageable + // nested-array / value / + WriteObject((await response).Value, true); + } + } + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/cmdlets/GetAzEventGridPartnerTopicEventSubscriptionDeliveryAttribute_GetViaIdentity.cs b/swaggerci/eventgrid/generated/cmdlets/GetAzEventGridPartnerTopicEventSubscriptionDeliveryAttribute_GetViaIdentity.cs new file mode 100644 index 000000000000..ec6dae1f52b5 --- /dev/null +++ b/swaggerci/eventgrid/generated/cmdlets/GetAzEventGridPartnerTopicEventSubscriptionDeliveryAttribute_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.EventGrid.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Extensions; + using System; + + /// Get all delivery attributes for an event subscription of a partner topic. + /// + /// [OpenAPI] GetDeliveryAttributes=>POST:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.EventGrid/partnerTopics/{partnerTopicName}/eventSubscriptions/{eventSubscriptionName}/getDeliveryAttributes" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsCommon.Get, @"AzEventGridPartnerTopicEventSubscriptionDeliveryAttribute_GetViaIdentity", SupportsShouldProcess = true)] + [global::System.Management.Automation.OutputType(typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDeliveryAttributeMapping))] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Description(@"Get all delivery attributes for an event subscription of a partner topic.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Generated] + public partial class GetAzEventGridPartnerTopicEventSubscriptionDeliveryAttribute_GetViaIdentity : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener + { + /// A unique id generatd for the this cmdlet when it is instantiated. + private string __correlationId = System.Guid.NewGuid().ToString(); + + /// A copy of the Invocation Info (necessary to allow asJob to clone this cmdlet) + private global::System.Management.Automation.InvocationInfo __invocationInfo; + + /// A unique id generatd for the this cmdlet when ProcessRecord() is called. + private string __processRecordId; + + /// + /// The for this operation. + /// + private global::System.Threading.CancellationTokenSource _cancellationTokenSource = new global::System.Threading.CancellationTokenSource(); + + /// Wait for .NET debugger to attach + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Wait for .NET debugger to attach")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.EventGridManagementClient Client => Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.ClientAPI; + + /// + /// The credentials, account, tenant, and subscription used for communication with Azure + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The credentials, account, tenant, and subscription used for communication with Azure.")] + [global::System.Management.Automation.ValidateNotNull] + [global::System.Management.Automation.Alias("AzureRMContext", "AzureCredential")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Azure)] + public global::System.Management.Automation.PSObject DefaultProfile { get; set; } + + /// SendAsync Pipeline Steps to be appended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be appended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[] HttpPipelineAppend { get; set; } + + /// SendAsync Pipeline Steps to be prepended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be prepended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[] HttpPipelinePrepend { get; set; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.IEventGridIdentity _inputObject; + + /// Identity Parameter + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Identity Parameter", ValueFromPipeline = true)] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Path)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.IEventGridIdentity InputObject { get => this._inputObject; set => this._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.EventGrid.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Runtime.HttpPipeline Pipeline { get; set; } + + /// The URI for the proxy server to use + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "The URI for the proxy server to use")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Uri Proxy { get; set; } + + /// Credentials for a proxy server to use for the remote call + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Credentials for a proxy server to use for the remote call")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Management.Automation.PSCredential ProxyCredential { get; set; } + + /// Use the default credentials for the proxy + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Use the default credentials for the proxy")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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. + /// /// Determines if the rest of the onDefault method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnDefault(global::System.Net.Http.HttpResponseMessage responseMessage, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnOk will be called before the regular onOk has been processed, allowing customization of what happens + /// on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// 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() + { + var telemetryId = Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.GetTelemetryId.Invoke(); + if (telemetryId != "" && telemetryId != "internal") + { + __correlationId = telemetryId; + } + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + + } + + /// + /// Intializes a new instance of the cmdlet class. + /// + public GetAzEventGridPartnerTopicEventSubscriptionDeliveryAttribute_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.EventGrid.Runtime.IEventListener.Signal(string id, global::System.Threading.CancellationToken token, global::System.Func messageData) + { + using( NoSynchronizationContext ) + { + if (token.IsCancellationRequested) + { + return ; + } + + switch ( id ) + { + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Information: + { + var data = messageData(); + WriteInformation(data.Message, new string[]{}); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Error: + { + WriteError(new global::System.Management.Automation.ErrorRecord( new global::System.Exception(messageData().Message), string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null ) ); + return ; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.EventData ), InvocationInformation, this.ParameterSetName, __correlationId, __processRecordId, null ); + if (token.IsCancellationRequested) + { + return ; + } + WriteDebug($"{id}: {(messageData().Message ?? global::System.String.Empty)}"); + } + } + + /// Performs execution of the command. + protected override void ProcessRecord() + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + if (ShouldProcess($"Call remote 'PartnerTopicEventSubscriptionsGetDeliveryAttributes' operation")) + { + using( var asyncCommandRuntime = new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token); + } + } + } + catch (global::System.AggregateException aggregateException) + { + // unroll the inner exceptions to get the root cause + foreach( var innerException in aggregateException.Flatten().InnerExceptions ) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(innerException,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + } + catch (global::System.Exception exception) when ((exception as System.Management.Automation.PipelineStoppedException)== null || (exception as System.Management.Automation.PipelineStoppedException).InnerException != null) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(exception,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + finally + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletProcessRecordEnd).Wait(); + } + } + + /// Performs execution of the command, working asynchronously if required. + /// + /// A that will be complete when handling of the method is completed. + /// + protected async global::System.Threading.Tasks.Task ProcessRecordAsync() + { + using( NoSynchronizationContext ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + if (InputObject?.Id != null) + { + await this.Client.PartnerTopicEventSubscriptionsGetDeliveryAttributesViaIdentity(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.PartnerTopicName) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.PartnerTopicName"),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, InputObject) ); + } + if (null == InputObject.EventSubscriptionName) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.EventSubscriptionName"),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, InputObject) ); + } + await this.Client.PartnerTopicEventSubscriptionsGetDeliveryAttributes(InputObject.SubscriptionId ?? null, InputObject.ResourceGroupName ?? null, InputObject.PartnerTopicName ?? null, InputObject.EventSubscriptionName ?? null, onOk, onDefault, this, Pipeline); + } + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Cancel(); + base.StopProcessing(); + } + + /// + /// a delegate that is called when the remote service returns default (any response code not handled elsewhere). + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onDefault(global::System.Net.Http.HttpResponseMessage responseMessage) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnDefault(responseMessage, ref _returnNow); + // if overrideOnDefault has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // Error Response : default + // Unrecognized Response. Create an error record based on what we have. + var ex = new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.RestException(responseMessage); + WriteError( new global::System.Management.Automation.ErrorRecord(ex, ex.Code, global::System.Management.Automation.ErrorCategory.InvalidOperation, new { }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(ex.Message) { RecommendedAction = ex.Action } + }); + } + } + + /// a delegate that is called when the remote service returns 200 (OK). + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnOk(responseMessage, response, ref _returnNow); + // if overrideOnOk has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // onOk - response for 200 / application/json + // response should be returning an array of some kind. +Pageable + // nested-array / value / + WriteObject((await response).Value, true); + } + } + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/cmdlets/GetAzEventGridPartnerTopicEventSubscriptionFullUrl_Get.cs b/swaggerci/eventgrid/generated/cmdlets/GetAzEventGridPartnerTopicEventSubscriptionFullUrl_Get.cs new file mode 100644 index 000000000000..1174600a7218 --- /dev/null +++ b/swaggerci/eventgrid/generated/cmdlets/GetAzEventGridPartnerTopicEventSubscriptionFullUrl_Get.cs @@ -0,0 +1,417 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Extensions; + using System; + + /// Get the full endpoint URL for an event subscription of a partner topic. + /// + /// [OpenAPI] GetFullUrl=>POST:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.EventGrid/partnerTopics/{partnerTopicName}/eventSubscriptions/{eventSubscriptionName}/getFullUrl" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsCommon.Get, @"AzEventGridPartnerTopicEventSubscriptionFullUrl_Get", SupportsShouldProcess = true)] + [global::System.Management.Automation.OutputType(typeof(string))] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Description(@"Get the full endpoint URL for an event subscription of a partner topic.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Generated] + public partial class GetAzEventGridPartnerTopicEventSubscriptionFullUrl_Get : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener + { + /// A unique id generatd for the this cmdlet when it is instantiated. + private string __correlationId = System.Guid.NewGuid().ToString(); + + /// A copy of the Invocation Info (necessary to allow asJob to clone this cmdlet) + private global::System.Management.Automation.InvocationInfo __invocationInfo; + + /// A unique id generatd for the this cmdlet when ProcessRecord() is called. + private string __processRecordId; + + /// + /// The for this operation. + /// + private global::System.Threading.CancellationTokenSource _cancellationTokenSource = new global::System.Threading.CancellationTokenSource(); + + /// Wait for .NET debugger to attach + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Wait for .NET debugger to attach")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.EventGridManagementClient Client => Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.ClientAPI; + + /// + /// The credentials, account, tenant, and subscription used for communication with Azure + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The credentials, account, tenant, and subscription used for communication with Azure.")] + [global::System.Management.Automation.ValidateNotNull] + [global::System.Management.Automation.Alias("AzureRMContext", "AzureCredential")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Azure)] + public global::System.Management.Automation.PSObject DefaultProfile { get; set; } + + /// Backing field for property. + private string _eventSubscriptionName; + + /// + /// Name of the event subscription to be created. Event subscription names must be between 3 and 100 characters in length + /// and use alphanumeric letters only. + /// + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Name of the event subscription to be created. Event subscription names must be between 3 and 100 characters in length and use alphanumeric letters only.")] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Name of the event subscription to be created. Event subscription names must be between 3 and 100 characters in length and use alphanumeric letters only.", + SerializedName = @"eventSubscriptionName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Path)] + public string EventSubscriptionName { get => this._eventSubscriptionName; set => this._eventSubscriptionName = 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.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[] HttpPipelineAppend { get; set; } + + /// SendAsync Pipeline Steps to be prepended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be prepended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[] HttpPipelinePrepend { get; set; } + + /// Accessor for our copy of the InvocationInfo. + public global::System.Management.Automation.InvocationInfo InvocationInformation { get => __invocationInfo = __invocationInfo ?? this.MyInvocation ; set { __invocationInfo = value; } } + + /// + /// cancellation delegate. Stops the cmdlet when called. + /// + global::System.Action Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener.Token => _cancellationTokenSource.Token; + + /// Backing field for property. + private string _partnerTopicName; + + /// Name of the partner topic. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Name of the partner topic.")] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Name of the partner topic.", + SerializedName = @"partnerTopicName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Path)] + public string PartnerTopicName { get => this._partnerTopicName; set => this._partnerTopicName = 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.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Runtime.HttpPipeline Pipeline { get; set; } + + /// The URI for the proxy server to use + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "The URI for the proxy server to use")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Uri Proxy { get; set; } + + /// Credentials for a proxy server to use for the remote call + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Credentials for a proxy server to use for the remote call")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Management.Automation.PSCredential ProxyCredential { get; set; } + + /// Use the default credentials for the proxy + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Use the default credentials for the proxy")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter ProxyUseDefaultCredentials { get; set; } + + /// Backing field for property. + private string _resourceGroupName; + + /// The name of the resource group within the user's subscription. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the resource group within the user's subscription.")] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the resource group within the user's subscription.", + SerializedName = @"resourceGroupName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Path)] + public string ResourceGroupName { get => this._resourceGroupName; set => this._resourceGroupName = value; } + + /// Backing field for property. + private string[] _subscriptionId; + + /// + /// Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription ID forms part of the + /// URI for every service call. + /// + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.")] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.", + SerializedName = @"subscriptionId", + PossibleTypes = new [] { typeof(string) })] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.DefaultInfo( + Name = @"", + Description =@"", + Script = @"(Get-AzContext).Subscription.Id")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Path)] + public string[] SubscriptionId { get => this._subscriptionId; set => this._subscriptionId = value; } + + /// + /// overrideOnDefault will be called before the regular onDefault has been processed, allowing customization of what + /// happens on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// /// Determines if the rest of the onDefault method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnDefault(global::System.Net.Http.HttpResponseMessage responseMessage, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnOk will be called before the regular onOk has been processed, allowing customization of what happens + /// on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// 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() + { + var telemetryId = Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.GetTelemetryId.Invoke(); + if (telemetryId != "" && telemetryId != "internal") + { + __correlationId = telemetryId; + } + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + + } + + /// + /// Intializes a new instance of the cmdlet class. + /// + public GetAzEventGridPartnerTopicEventSubscriptionFullUrl_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.EventGrid.Runtime.IEventListener.Signal(string id, global::System.Threading.CancellationToken token, global::System.Func messageData) + { + using( NoSynchronizationContext ) + { + if (token.IsCancellationRequested) + { + return ; + } + + switch ( id ) + { + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Information: + { + var data = messageData(); + WriteInformation(data.Message, new string[]{}); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Error: + { + WriteError(new global::System.Management.Automation.ErrorRecord( new global::System.Exception(messageData().Message), string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null ) ); + return ; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.EventData ), InvocationInformation, this.ParameterSetName, __correlationId, __processRecordId, null ); + if (token.IsCancellationRequested) + { + return ; + } + WriteDebug($"{id}: {(messageData().Message ?? global::System.String.Empty)}"); + } + } + + /// Performs execution of the command. + protected override void ProcessRecord() + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + if (ShouldProcess($"Call remote 'PartnerTopicEventSubscriptionsGetFullUrl' operation")) + { + using( var asyncCommandRuntime = new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token); + } + } + } + catch (global::System.AggregateException aggregateException) + { + // unroll the inner exceptions to get the root cause + foreach( var innerException in aggregateException.Flatten().InnerExceptions ) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(innerException,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + } + catch (global::System.Exception exception) when ((exception as System.Management.Automation.PipelineStoppedException)== null || (exception as System.Management.Automation.PipelineStoppedException).InnerException != null) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(exception,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + finally + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletProcessRecordEnd).Wait(); + } + } + + /// Performs execution of the command, working asynchronously if required. + /// + /// A that will be complete when handling of the method is completed. + /// + protected async global::System.Threading.Tasks.Task ProcessRecordAsync() + { + using( NoSynchronizationContext ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + foreach( var SubscriptionId in this.SubscriptionId ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await this.Client.PartnerTopicEventSubscriptionsGetFullUrl(SubscriptionId, ResourceGroupName, PartnerTopicName, EventSubscriptionName, onOk, onDefault, this, Pipeline); + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.UndeclaredResponseException urexception) + { + WriteError(new global::System.Management.Automation.ErrorRecord(urexception, urexception.StatusCode.ToString(), global::System.Management.Automation.ErrorCategory.InvalidOperation, new { SubscriptionId=SubscriptionId,ResourceGroupName=ResourceGroupName,PartnerTopicName=PartnerTopicName,EventSubscriptionName=EventSubscriptionName}) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(urexception.Message) { RecommendedAction = urexception.Action } + }); + } + finally + { + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Cancel(); + base.StopProcessing(); + } + + /// + /// a delegate that is called when the remote service returns default (any response code not handled elsewhere). + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onDefault(global::System.Net.Http.HttpResponseMessage responseMessage) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnDefault(responseMessage, ref _returnNow); + // if overrideOnDefault has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // Error Response : default + // Unrecognized Response. Create an error record based on what we have. + var ex = new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.RestException(responseMessage); + WriteError( new global::System.Management.Automation.ErrorRecord(ex, ex.Code, global::System.Management.Automation.ErrorCategory.InvalidOperation, new { SubscriptionId=SubscriptionId, ResourceGroupName=ResourceGroupName, PartnerTopicName=PartnerTopicName, EventSubscriptionName=EventSubscriptionName }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(ex.Message) { RecommendedAction = ex.Action } + }); + } + } + + /// a delegate that is called when the remote service returns 200 (OK). + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as 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.EventGrid.Models.Api20211015Preview.IEventSubscriptionFullUrl + WriteObject((await response).EndpointUrl); + } + } + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/cmdlets/GetAzEventGridPartnerTopicEventSubscriptionFullUrl_GetViaIdentity.cs b/swaggerci/eventgrid/generated/cmdlets/GetAzEventGridPartnerTopicEventSubscriptionFullUrl_GetViaIdentity.cs new file mode 100644 index 000000000000..4cb958a1cf90 --- /dev/null +++ b/swaggerci/eventgrid/generated/cmdlets/GetAzEventGridPartnerTopicEventSubscriptionFullUrl_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.EventGrid.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Extensions; + using System; + + /// Get the full endpoint URL for an event subscription of a partner topic. + /// + /// [OpenAPI] GetFullUrl=>POST:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.EventGrid/partnerTopics/{partnerTopicName}/eventSubscriptions/{eventSubscriptionName}/getFullUrl" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsCommon.Get, @"AzEventGridPartnerTopicEventSubscriptionFullUrl_GetViaIdentity", SupportsShouldProcess = true)] + [global::System.Management.Automation.OutputType(typeof(string))] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Description(@"Get the full endpoint URL for an event subscription of a partner topic.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Generated] + public partial class GetAzEventGridPartnerTopicEventSubscriptionFullUrl_GetViaIdentity : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener + { + /// A unique id generatd for the this cmdlet when it is instantiated. + private string __correlationId = System.Guid.NewGuid().ToString(); + + /// A copy of the Invocation Info (necessary to allow asJob to clone this cmdlet) + private global::System.Management.Automation.InvocationInfo __invocationInfo; + + /// A unique id generatd for the this cmdlet when ProcessRecord() is called. + private string __processRecordId; + + /// + /// The for this operation. + /// + private global::System.Threading.CancellationTokenSource _cancellationTokenSource = new global::System.Threading.CancellationTokenSource(); + + /// Wait for .NET debugger to attach + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Wait for .NET debugger to attach")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.EventGridManagementClient Client => Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.ClientAPI; + + /// + /// The credentials, account, tenant, and subscription used for communication with Azure + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The credentials, account, tenant, and subscription used for communication with Azure.")] + [global::System.Management.Automation.ValidateNotNull] + [global::System.Management.Automation.Alias("AzureRMContext", "AzureCredential")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Azure)] + public global::System.Management.Automation.PSObject DefaultProfile { get; set; } + + /// SendAsync Pipeline Steps to be appended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be appended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[] HttpPipelineAppend { get; set; } + + /// SendAsync Pipeline Steps to be prepended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be prepended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[] HttpPipelinePrepend { get; set; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.IEventGridIdentity _inputObject; + + /// Identity Parameter + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Identity Parameter", ValueFromPipeline = true)] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Path)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.IEventGridIdentity InputObject { get => this._inputObject; set => this._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.EventGrid.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Runtime.HttpPipeline Pipeline { get; set; } + + /// The URI for the proxy server to use + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "The URI for the proxy server to use")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Uri Proxy { get; set; } + + /// Credentials for a proxy server to use for the remote call + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Credentials for a proxy server to use for the remote call")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Management.Automation.PSCredential ProxyCredential { get; set; } + + /// Use the default credentials for the proxy + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Use the default credentials for the proxy")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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. + /// /// Determines if the rest of the onDefault method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnDefault(global::System.Net.Http.HttpResponseMessage responseMessage, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnOk will be called before the regular onOk has been processed, allowing customization of what happens + /// on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// 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() + { + var telemetryId = Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.GetTelemetryId.Invoke(); + if (telemetryId != "" && telemetryId != "internal") + { + __correlationId = telemetryId; + } + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + + } + + /// + /// Intializes a new instance of the cmdlet + /// class. + /// + public GetAzEventGridPartnerTopicEventSubscriptionFullUrl_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.EventGrid.Runtime.IEventListener.Signal(string id, global::System.Threading.CancellationToken token, global::System.Func messageData) + { + using( NoSynchronizationContext ) + { + if (token.IsCancellationRequested) + { + return ; + } + + switch ( id ) + { + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Information: + { + var data = messageData(); + WriteInformation(data.Message, new string[]{}); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Error: + { + WriteError(new global::System.Management.Automation.ErrorRecord( new global::System.Exception(messageData().Message), string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null ) ); + return ; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.EventData ), InvocationInformation, this.ParameterSetName, __correlationId, __processRecordId, null ); + if (token.IsCancellationRequested) + { + return ; + } + WriteDebug($"{id}: {(messageData().Message ?? global::System.String.Empty)}"); + } + } + + /// Performs execution of the command. + protected override void ProcessRecord() + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + if (ShouldProcess($"Call remote 'PartnerTopicEventSubscriptionsGetFullUrl' operation")) + { + using( var asyncCommandRuntime = new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token); + } + } + } + catch (global::System.AggregateException aggregateException) + { + // unroll the inner exceptions to get the root cause + foreach( var innerException in aggregateException.Flatten().InnerExceptions ) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(innerException,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + } + catch (global::System.Exception exception) when ((exception as System.Management.Automation.PipelineStoppedException)== null || (exception as System.Management.Automation.PipelineStoppedException).InnerException != null) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(exception,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + finally + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletProcessRecordEnd).Wait(); + } + } + + /// Performs execution of the command, working asynchronously if required. + /// + /// A that will be complete when handling of the method is completed. + /// + protected async global::System.Threading.Tasks.Task ProcessRecordAsync() + { + using( NoSynchronizationContext ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + if (InputObject?.Id != null) + { + await this.Client.PartnerTopicEventSubscriptionsGetFullUrlViaIdentity(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.PartnerTopicName) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.PartnerTopicName"),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, InputObject) ); + } + if (null == InputObject.EventSubscriptionName) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.EventSubscriptionName"),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, InputObject) ); + } + await this.Client.PartnerTopicEventSubscriptionsGetFullUrl(InputObject.SubscriptionId ?? null, InputObject.ResourceGroupName ?? null, InputObject.PartnerTopicName ?? null, InputObject.EventSubscriptionName ?? null, onOk, onDefault, this, Pipeline); + } + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Cancel(); + base.StopProcessing(); + } + + /// + /// a delegate that is called when the remote service returns default (any response code not handled elsewhere). + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onDefault(global::System.Net.Http.HttpResponseMessage responseMessage) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnDefault(responseMessage, ref _returnNow); + // if overrideOnDefault has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // Error Response : default + // Unrecognized Response. Create an error record based on what we have. + var ex = new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.RestException(responseMessage); + WriteError( new global::System.Management.Automation.ErrorRecord(ex, ex.Code, global::System.Management.Automation.ErrorCategory.InvalidOperation, new { }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(ex.Message) { RecommendedAction = ex.Action } + }); + } + } + + /// a delegate that is called when the remote service returns 200 (OK). + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as 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.EventGrid.Models.Api20211015Preview.IEventSubscriptionFullUrl + WriteObject((await response).EndpointUrl); + } + } + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/cmdlets/GetAzEventGridPartnerTopicEventSubscription_Get.cs b/swaggerci/eventgrid/generated/cmdlets/GetAzEventGridPartnerTopicEventSubscription_Get.cs new file mode 100644 index 000000000000..19cc1ad1788d --- /dev/null +++ b/swaggerci/eventgrid/generated/cmdlets/GetAzEventGridPartnerTopicEventSubscription_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.EventGrid.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Extensions; + using System; + + /// Get properties of an event subscription of a partner topic. + /// + /// [OpenAPI] Get=>GET:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.EventGrid/partnerTopics/{partnerTopicName}/eventSubscriptions/{eventSubscriptionName}" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsCommon.Get, @"AzEventGridPartnerTopicEventSubscription_Get")] + [global::System.Management.Automation.OutputType(typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscription))] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Description(@"Get properties of an event subscription of a partner topic.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Generated] + public partial class GetAzEventGridPartnerTopicEventSubscription_Get : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener + { + /// A unique id generatd for the this cmdlet when it is instantiated. + private string __correlationId = System.Guid.NewGuid().ToString(); + + /// A copy of the Invocation Info (necessary to allow asJob to clone this cmdlet) + private global::System.Management.Automation.InvocationInfo __invocationInfo; + + /// A unique id generatd for the this cmdlet when ProcessRecord() is called. + private string __processRecordId; + + /// + /// The for this operation. + /// + private global::System.Threading.CancellationTokenSource _cancellationTokenSource = new global::System.Threading.CancellationTokenSource(); + + /// Wait for .NET debugger to attach + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Wait for .NET debugger to attach")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.EventGridManagementClient Client => Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.ClientAPI; + + /// + /// The credentials, account, tenant, and subscription used for communication with Azure + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The credentials, account, tenant, and subscription used for communication with Azure.")] + [global::System.Management.Automation.ValidateNotNull] + [global::System.Management.Automation.Alias("AzureRMContext", "AzureCredential")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Azure)] + public global::System.Management.Automation.PSObject DefaultProfile { get; set; } + + /// Backing field for property. + private string _eventSubscriptionName; + + /// + /// Name of the event subscription to be found. Event subscription names must be between 3 and 100 characters in length and + /// use alphanumeric letters only. + /// + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Name of the event subscription to be found. Event subscription names must be between 3 and 100 characters in length and use alphanumeric letters only.")] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Name of the event subscription to be found. Event subscription names must be between 3 and 100 characters in length and use alphanumeric letters only.", + SerializedName = @"eventSubscriptionName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Path)] + public string EventSubscriptionName { get => this._eventSubscriptionName; set => this._eventSubscriptionName = 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.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[] HttpPipelineAppend { get; set; } + + /// SendAsync Pipeline Steps to be prepended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be prepended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[] HttpPipelinePrepend { get; set; } + + /// Accessor for our copy of the InvocationInfo. + public global::System.Management.Automation.InvocationInfo InvocationInformation { get => __invocationInfo = __invocationInfo ?? this.MyInvocation ; set { __invocationInfo = value; } } + + /// + /// cancellation delegate. Stops the cmdlet when called. + /// + global::System.Action Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener.Token => _cancellationTokenSource.Token; + + /// Backing field for property. + private string _partnerTopicName; + + /// Name of the partner topic. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Name of the partner topic.")] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Name of the partner topic.", + SerializedName = @"partnerTopicName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Path)] + public string PartnerTopicName { get => this._partnerTopicName; set => this._partnerTopicName = 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.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Runtime.HttpPipeline Pipeline { get; set; } + + /// The URI for the proxy server to use + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "The URI for the proxy server to use")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Uri Proxy { get; set; } + + /// Credentials for a proxy server to use for the remote call + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Credentials for a proxy server to use for the remote call")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Management.Automation.PSCredential ProxyCredential { get; set; } + + /// Use the default credentials for the proxy + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Use the default credentials for the proxy")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter ProxyUseDefaultCredentials { get; set; } + + /// Backing field for property. + private string _resourceGroupName; + + /// The name of the resource group within the user's subscription. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the resource group within the user's subscription.")] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the resource group within the user's subscription.", + SerializedName = @"resourceGroupName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Path)] + public string ResourceGroupName { get => this._resourceGroupName; set => this._resourceGroupName = value; } + + /// Backing field for property. + private string[] _subscriptionId; + + /// + /// Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription ID forms part of the + /// URI for every service call. + /// + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.")] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.", + SerializedName = @"subscriptionId", + PossibleTypes = new [] { typeof(string) })] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.DefaultInfo( + Name = @"", + Description =@"", + Script = @"(Get-AzContext).Subscription.Id")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Path)] + public string[] SubscriptionId { get => this._subscriptionId; set => this._subscriptionId = value; } + + /// + /// overrideOnDefault will be called before the regular onDefault has been processed, allowing customization of what + /// happens on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// /// Determines if the rest of the onDefault method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnDefault(global::System.Net.Http.HttpResponseMessage responseMessage, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnOk will be called before the regular onOk has been processed, allowing customization of what happens + /// on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// 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() + { + var telemetryId = Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.GetTelemetryId.Invoke(); + if (telemetryId != "" && telemetryId != "internal") + { + __correlationId = telemetryId; + } + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + + } + + /// + /// Intializes a new instance of the cmdlet class. + /// + public GetAzEventGridPartnerTopicEventSubscription_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.EventGrid.Runtime.IEventListener.Signal(string id, global::System.Threading.CancellationToken token, global::System.Func messageData) + { + using( NoSynchronizationContext ) + { + if (token.IsCancellationRequested) + { + return ; + } + + switch ( id ) + { + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Information: + { + var data = messageData(); + WriteInformation(data.Message, new string[]{}); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Error: + { + WriteError(new global::System.Management.Automation.ErrorRecord( new global::System.Exception(messageData().Message), string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null ) ); + return ; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.EventData ), InvocationInformation, this.ParameterSetName, __correlationId, __processRecordId, null ); + if (token.IsCancellationRequested) + { + return ; + } + WriteDebug($"{id}: {(messageData().Message ?? global::System.String.Empty)}"); + } + } + + /// Performs execution of the command. + protected override void ProcessRecord() + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + using( var asyncCommandRuntime = new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token); + } + } + catch (global::System.AggregateException aggregateException) + { + // unroll the inner exceptions to get the root cause + foreach( var innerException in aggregateException.Flatten().InnerExceptions ) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(innerException,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + } + catch (global::System.Exception exception) when ((exception as System.Management.Automation.PipelineStoppedException)== null || (exception as System.Management.Automation.PipelineStoppedException).InnerException != null) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(exception,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + finally + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletProcessRecordEnd).Wait(); + } + } + + /// Performs execution of the command, working asynchronously if required. + /// + /// A that will be complete when handling of the method is completed. + /// + protected async global::System.Threading.Tasks.Task ProcessRecordAsync() + { + using( NoSynchronizationContext ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + foreach( var SubscriptionId in this.SubscriptionId ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await this.Client.PartnerTopicEventSubscriptionsGet(SubscriptionId, ResourceGroupName, PartnerTopicName, EventSubscriptionName, onOk, onDefault, this, Pipeline); + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.UndeclaredResponseException urexception) + { + WriteError(new global::System.Management.Automation.ErrorRecord(urexception, urexception.StatusCode.ToString(), global::System.Management.Automation.ErrorCategory.InvalidOperation, new { SubscriptionId=SubscriptionId,ResourceGroupName=ResourceGroupName,PartnerTopicName=PartnerTopicName,EventSubscriptionName=EventSubscriptionName}) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(urexception.Message) { RecommendedAction = urexception.Action } + }); + } + finally + { + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Cancel(); + base.StopProcessing(); + } + + /// + /// a delegate that is called when the remote service returns default (any response code not handled elsewhere). + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onDefault(global::System.Net.Http.HttpResponseMessage responseMessage) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnDefault(responseMessage, ref _returnNow); + // if overrideOnDefault has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // Error Response : default + // Unrecognized Response. Create an error record based on what we have. + var ex = new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.RestException(responseMessage); + WriteError( new global::System.Management.Automation.ErrorRecord(ex, ex.Code, global::System.Management.Automation.ErrorCategory.InvalidOperation, new { SubscriptionId=SubscriptionId, ResourceGroupName=ResourceGroupName, PartnerTopicName=PartnerTopicName, EventSubscriptionName=EventSubscriptionName }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(ex.Message) { RecommendedAction = ex.Action } + }); + } + } + + /// a delegate that is called when the remote service returns 200 (OK). + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as 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.EventGrid.Models.Api20211015Preview.IEventSubscription + WriteObject((await response)); + } + } + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/cmdlets/GetAzEventGridPartnerTopicEventSubscription_GetViaIdentity.cs b/swaggerci/eventgrid/generated/cmdlets/GetAzEventGridPartnerTopicEventSubscription_GetViaIdentity.cs new file mode 100644 index 000000000000..a62df69b10c4 --- /dev/null +++ b/swaggerci/eventgrid/generated/cmdlets/GetAzEventGridPartnerTopicEventSubscription_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.EventGrid.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Extensions; + using System; + + /// Get properties of an event subscription of a partner topic. + /// + /// [OpenAPI] Get=>GET:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.EventGrid/partnerTopics/{partnerTopicName}/eventSubscriptions/{eventSubscriptionName}" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsCommon.Get, @"AzEventGridPartnerTopicEventSubscription_GetViaIdentity")] + [global::System.Management.Automation.OutputType(typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscription))] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Description(@"Get properties of an event subscription of a partner topic.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Generated] + public partial class GetAzEventGridPartnerTopicEventSubscription_GetViaIdentity : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener + { + /// A unique id generatd for the this cmdlet when it is instantiated. + private string __correlationId = System.Guid.NewGuid().ToString(); + + /// A copy of the Invocation Info (necessary to allow asJob to clone this cmdlet) + private global::System.Management.Automation.InvocationInfo __invocationInfo; + + /// A unique id generatd for the this cmdlet when ProcessRecord() is called. + private string __processRecordId; + + /// + /// The for this operation. + /// + private global::System.Threading.CancellationTokenSource _cancellationTokenSource = new global::System.Threading.CancellationTokenSource(); + + /// Wait for .NET debugger to attach + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Wait for .NET debugger to attach")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.EventGridManagementClient Client => Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.ClientAPI; + + /// + /// The credentials, account, tenant, and subscription used for communication with Azure + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The credentials, account, tenant, and subscription used for communication with Azure.")] + [global::System.Management.Automation.ValidateNotNull] + [global::System.Management.Automation.Alias("AzureRMContext", "AzureCredential")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Azure)] + public global::System.Management.Automation.PSObject DefaultProfile { get; set; } + + /// SendAsync Pipeline Steps to be appended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be appended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[] HttpPipelineAppend { get; set; } + + /// SendAsync Pipeline Steps to be prepended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be prepended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[] HttpPipelinePrepend { get; set; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.IEventGridIdentity _inputObject; + + /// Identity Parameter + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Identity Parameter", ValueFromPipeline = true)] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Path)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.IEventGridIdentity InputObject { get => this._inputObject; set => this._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.EventGrid.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Runtime.HttpPipeline Pipeline { get; set; } + + /// The URI for the proxy server to use + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "The URI for the proxy server to use")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Uri Proxy { get; set; } + + /// Credentials for a proxy server to use for the remote call + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Credentials for a proxy server to use for the remote call")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Management.Automation.PSCredential ProxyCredential { get; set; } + + /// Use the default credentials for the proxy + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Use the default credentials for the proxy")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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. + /// /// Determines if the rest of the onDefault method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnDefault(global::System.Net.Http.HttpResponseMessage responseMessage, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnOk will be called before the regular onOk has been processed, allowing customization of what happens + /// on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// 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() + { + var telemetryId = Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.GetTelemetryId.Invoke(); + if (telemetryId != "" && telemetryId != "internal") + { + __correlationId = telemetryId; + } + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + + } + + /// + /// Intializes a new instance of the cmdlet class. + /// + public GetAzEventGridPartnerTopicEventSubscription_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.EventGrid.Runtime.IEventListener.Signal(string id, global::System.Threading.CancellationToken token, global::System.Func messageData) + { + using( NoSynchronizationContext ) + { + if (token.IsCancellationRequested) + { + return ; + } + + switch ( id ) + { + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Information: + { + var data = messageData(); + WriteInformation(data.Message, new string[]{}); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Error: + { + WriteError(new global::System.Management.Automation.ErrorRecord( new global::System.Exception(messageData().Message), string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null ) ); + return ; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.EventData ), InvocationInformation, this.ParameterSetName, __correlationId, __processRecordId, null ); + if (token.IsCancellationRequested) + { + return ; + } + WriteDebug($"{id}: {(messageData().Message ?? global::System.String.Empty)}"); + } + } + + /// Performs execution of the command. + protected override void ProcessRecord() + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + using( var asyncCommandRuntime = new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token); + } + } + catch (global::System.AggregateException aggregateException) + { + // unroll the inner exceptions to get the root cause + foreach( var innerException in aggregateException.Flatten().InnerExceptions ) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(innerException,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + } + catch (global::System.Exception exception) when ((exception as System.Management.Automation.PipelineStoppedException)== null || (exception as System.Management.Automation.PipelineStoppedException).InnerException != null) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(exception,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + finally + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletProcessRecordEnd).Wait(); + } + } + + /// Performs execution of the command, working asynchronously if required. + /// + /// A that will be complete when handling of the method is completed. + /// + protected async global::System.Threading.Tasks.Task ProcessRecordAsync() + { + using( NoSynchronizationContext ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + if (InputObject?.Id != null) + { + await this.Client.PartnerTopicEventSubscriptionsGetViaIdentity(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.PartnerTopicName) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.PartnerTopicName"),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, InputObject) ); + } + if (null == InputObject.EventSubscriptionName) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.EventSubscriptionName"),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, InputObject) ); + } + await this.Client.PartnerTopicEventSubscriptionsGet(InputObject.SubscriptionId ?? null, InputObject.ResourceGroupName ?? null, InputObject.PartnerTopicName ?? null, InputObject.EventSubscriptionName ?? null, onOk, onDefault, this, Pipeline); + } + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Cancel(); + base.StopProcessing(); + } + + /// + /// a delegate that is called when the remote service returns default (any response code not handled elsewhere). + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onDefault(global::System.Net.Http.HttpResponseMessage responseMessage) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnDefault(responseMessage, ref _returnNow); + // if overrideOnDefault has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // Error Response : default + // Unrecognized Response. Create an error record based on what we have. + var ex = new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.RestException(responseMessage); + WriteError( new global::System.Management.Automation.ErrorRecord(ex, ex.Code, global::System.Management.Automation.ErrorCategory.InvalidOperation, new { }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(ex.Message) { RecommendedAction = ex.Action } + }); + } + } + + /// a delegate that is called when the remote service returns 200 (OK). + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as 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.EventGrid.Models.Api20211015Preview.IEventSubscription + WriteObject((await response)); + } + } + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/cmdlets/GetAzEventGridPartnerTopicEventSubscription_List.cs b/swaggerci/eventgrid/generated/cmdlets/GetAzEventGridPartnerTopicEventSubscription_List.cs new file mode 100644 index 000000000000..d8393daca147 --- /dev/null +++ b/swaggerci/eventgrid/generated/cmdlets/GetAzEventGridPartnerTopicEventSubscription_List.cs @@ -0,0 +1,456 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Extensions; + using System; + + /// List event subscriptions that belong to a specific partner topic. + /// + /// [OpenAPI] ListByPartnerTopic=>GET:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.EventGrid/partnerTopics/{partnerTopicName}/eventSubscriptions" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsCommon.Get, @"AzEventGridPartnerTopicEventSubscription_List")] + [global::System.Management.Automation.OutputType(typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscription))] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Description(@"List event subscriptions that belong to a specific partner topic.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Generated] + public partial class GetAzEventGridPartnerTopicEventSubscription_List : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener + { + /// A unique id generatd for the this cmdlet when it is instantiated. + private string __correlationId = System.Guid.NewGuid().ToString(); + + /// A copy of the Invocation Info (necessary to allow asJob to clone this cmdlet) + private global::System.Management.Automation.InvocationInfo __invocationInfo; + + /// A unique id generatd for the this cmdlet when ProcessRecord() is called. + private string __processRecordId; + + /// + /// The for this operation. + /// + private global::System.Threading.CancellationTokenSource _cancellationTokenSource = new global::System.Threading.CancellationTokenSource(); + + /// A flag to tell whether it is the first onOK call. + private bool _isFirst = true; + + /// Link to retrieve next page. + private string _nextLink; + + /// Wait for .NET debugger to attach + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Wait for .NET debugger to attach")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.EventGridManagementClient Client => Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.ClientAPI; + + /// + /// The credentials, account, tenant, and subscription used for communication with Azure + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The credentials, account, tenant, and subscription used for communication with Azure.")] + [global::System.Management.Automation.ValidateNotNull] + [global::System.Management.Automation.Alias("AzureRMContext", "AzureCredential")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Azure)] + public global::System.Management.Automation.PSObject DefaultProfile { get; set; } + + /// Backing field for property. + private string _filter; + + /// + /// The query used to filter the search results using OData syntax. Filtering is permitted on the 'name' property only and + /// with limited number of OData operations. These operations are: the 'contains' function as well as the following logical + /// operations: not, and, or, eq (for equal), and ne (for not equal). No arithmetic operations are supported. The following + /// is a valid filter example: $filter=contains(namE, 'PATTERN') and name ne 'PATTERN-1'. The following is not a valid filter + /// example: $filter=location eq 'westus'. + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The query used to filter the search results using OData syntax. Filtering is permitted on the 'name' property only and with limited number of OData operations. These operations are: the 'contains' function as well as the following logical operations: not, and, or, eq (for equal), and ne (for not equal). No arithmetic operations are supported. The following is a valid filter example: $filter=contains(namE, 'PATTERN') and name ne 'PATTERN-1'. The following is not a valid filter example: $filter=location eq 'westus'.")] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The query used to filter the search results using OData syntax. Filtering is permitted on the 'name' property only and with limited number of OData operations. These operations are: the 'contains' function as well as the following logical operations: not, and, or, eq (for equal), and ne (for not equal). No arithmetic operations are supported. The following is a valid filter example: $filter=contains(namE, 'PATTERN') and name ne 'PATTERN-1'. The following is not a valid filter example: $filter=location eq 'westus'.", + SerializedName = @"$filter", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[] HttpPipelineAppend { get; set; } + + /// SendAsync Pipeline Steps to be prepended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be prepended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[] HttpPipelinePrepend { get; set; } + + /// Accessor for our copy of the InvocationInfo. + public global::System.Management.Automation.InvocationInfo InvocationInformation { get => __invocationInfo = __invocationInfo ?? this.MyInvocation ; set { __invocationInfo = value; } } + + /// + /// cancellation delegate. Stops the cmdlet when called. + /// + global::System.Action Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener.Token => _cancellationTokenSource.Token; + + /// Backing field for property. + private string _partnerTopicName; + + /// Name of the partner topic. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Name of the partner topic.")] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Name of the partner topic.", + SerializedName = @"partnerTopicName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Path)] + public string PartnerTopicName { get => this._partnerTopicName; set => this._partnerTopicName = 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.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Runtime.HttpPipeline Pipeline { get; set; } + + /// The URI for the proxy server to use + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "The URI for the proxy server to use")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Uri Proxy { get; set; } + + /// Credentials for a proxy server to use for the remote call + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Credentials for a proxy server to use for the remote call")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Management.Automation.PSCredential ProxyCredential { get; set; } + + /// Use the default credentials for the proxy + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Use the default credentials for the proxy")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter ProxyUseDefaultCredentials { get; set; } + + /// Backing field for property. + private string _resourceGroupName; + + /// The name of the resource group within the user's subscription. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the resource group within the user's subscription.")] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the resource group within the user's subscription.", + SerializedName = @"resourceGroupName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Path)] + public string ResourceGroupName { get => this._resourceGroupName; set => this._resourceGroupName = value; } + + /// Backing field for property. + private string[] _subscriptionId; + + /// + /// Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription ID forms part of the + /// URI for every service call. + /// + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.")] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.", + SerializedName = @"subscriptionId", + PossibleTypes = new [] { typeof(string) })] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.DefaultInfo( + Name = @"", + Description =@"", + Script = @"(Get-AzContext).Subscription.Id")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Path)] + public string[] SubscriptionId { get => this._subscriptionId; set => this._subscriptionId = value; } + + /// Backing field for property. + private int _top; + + /// + /// The number of results to return per page for the list operation. Valid range for top parameter is 1 to 100. If not specified, + /// the default number of results to be returned is 20 items per page. + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The number of results to return per page for the list operation. Valid range for top parameter is 1 to 100. If not specified, the default number of results to be returned is 20 items per page.")] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The number of results to return per page for the list operation. Valid range for top parameter is 1 to 100. If not specified, the default number of results to be returned is 20 items per page.", + SerializedName = @"$top", + PossibleTypes = new [] { typeof(int) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Query)] + public int Top { get => this._top; set => this._top = value; } + + /// + /// overrideOnDefault will be called before the regular onDefault has been processed, allowing customization of what + /// happens on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// /// Determines if the rest of the onDefault method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnDefault(global::System.Net.Http.HttpResponseMessage responseMessage, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnOk will be called before the regular onOk has been processed, allowing customization of what happens + /// on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// 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() + { + var telemetryId = Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.GetTelemetryId.Invoke(); + if (telemetryId != "" && telemetryId != "internal") + { + __correlationId = telemetryId; + } + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + + } + + /// + /// Intializes a new instance of the cmdlet class. + /// + public GetAzEventGridPartnerTopicEventSubscription_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.EventGrid.Runtime.IEventListener.Signal(string id, global::System.Threading.CancellationToken token, global::System.Func messageData) + { + using( NoSynchronizationContext ) + { + if (token.IsCancellationRequested) + { + return ; + } + + switch ( id ) + { + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Information: + { + var data = messageData(); + WriteInformation(data.Message, new string[]{}); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Error: + { + WriteError(new global::System.Management.Automation.ErrorRecord( new global::System.Exception(messageData().Message), string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null ) ); + return ; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.EventData ), InvocationInformation, this.ParameterSetName, __correlationId, __processRecordId, null ); + if (token.IsCancellationRequested) + { + return ; + } + WriteDebug($"{id}: {(messageData().Message ?? global::System.String.Empty)}"); + } + } + + /// Performs execution of the command. + protected override void ProcessRecord() + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + using( var asyncCommandRuntime = new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token); + } + } + catch (global::System.AggregateException aggregateException) + { + // unroll the inner exceptions to get the root cause + foreach( var innerException in aggregateException.Flatten().InnerExceptions ) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(innerException,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + } + catch (global::System.Exception exception) when ((exception as System.Management.Automation.PipelineStoppedException)== null || (exception as System.Management.Automation.PipelineStoppedException).InnerException != null) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(exception,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + finally + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletProcessRecordEnd).Wait(); + } + } + + /// Performs execution of the command, working asynchronously if required. + /// + /// A that will be complete when handling of the method is completed. + /// + protected async global::System.Threading.Tasks.Task ProcessRecordAsync() + { + using( NoSynchronizationContext ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + foreach( var SubscriptionId in this.SubscriptionId ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await this.Client.PartnerTopicEventSubscriptionsListByPartnerTopic(SubscriptionId, ResourceGroupName, PartnerTopicName, this.InvocationInformation.BoundParameters.ContainsKey("Filter") ? Filter : null, this.InvocationInformation.BoundParameters.ContainsKey("Top") ? Top : default(int?), onOk, onDefault, this, Pipeline); + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.UndeclaredResponseException urexception) + { + WriteError(new global::System.Management.Automation.ErrorRecord(urexception, urexception.StatusCode.ToString(), global::System.Management.Automation.ErrorCategory.InvalidOperation, new { SubscriptionId=SubscriptionId,ResourceGroupName=ResourceGroupName,PartnerTopicName=PartnerTopicName,Filter=this.InvocationInformation.BoundParameters.ContainsKey("Filter") ? Filter : null,Top=this.InvocationInformation.BoundParameters.ContainsKey("Top") ? Top : default(int?)}) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(urexception.Message) { RecommendedAction = urexception.Action } + }); + } + finally + { + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Cancel(); + base.StopProcessing(); + } + + /// + /// a delegate that is called when the remote service returns default (any response code not handled elsewhere). + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onDefault(global::System.Net.Http.HttpResponseMessage responseMessage) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnDefault(responseMessage, ref _returnNow); + // if overrideOnDefault has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // Error Response : default + // Unrecognized Response. Create an error record based on what we have. + var ex = new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.RestException(responseMessage); + WriteError( new global::System.Management.Automation.ErrorRecord(ex, ex.Code, global::System.Management.Automation.ErrorCategory.InvalidOperation, new { SubscriptionId=SubscriptionId, ResourceGroupName=ResourceGroupName, PartnerTopicName=PartnerTopicName, Filter=this.InvocationInformation.BoundParameters.ContainsKey("Filter") ? Filter : null, Top=this.InvocationInformation.BoundParameters.ContainsKey("Top") ? Top : default(int?) }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(ex.Message) { RecommendedAction = ex.Action } + }); + } + } + + /// a delegate that is called when the remote service returns 200 (OK). + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnOk(responseMessage, response, ref _returnNow); + // if overrideOnOk has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // onOk - response for 200 / application/json + // response should be returning an array of some kind. +Pageable + // pageable / value / nextLink + var result = await response; + WriteObject(result.Value,true); + _nextLink = result.NextLink; + if (_isFirst) + { + _isFirst = false; + while (_nextLink != null) + { + if (responseMessage.RequestMessage is System.Net.Http.HttpRequestMessage requestMessage ) + { + requestMessage = requestMessage.Clone(new global::System.Uri( _nextLink ),Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Method.Get ); + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.FollowingNextLink); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await this.Client.PartnerTopicEventSubscriptionsListByPartnerTopic_Call(requestMessage, onOk, onDefault, this, Pipeline); + } + } + } + } + } + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/cmdlets/GetAzEventGridPartnerTopic_Get.cs b/swaggerci/eventgrid/generated/cmdlets/GetAzEventGridPartnerTopic_Get.cs new file mode 100644 index 000000000000..42e9692f7409 --- /dev/null +++ b/swaggerci/eventgrid/generated/cmdlets/GetAzEventGridPartnerTopic_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.EventGrid.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Extensions; + using System; + + /// Get properties of a partner topic. + /// + /// [OpenAPI] Get=>GET:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.EventGrid/partnerTopics/{partnerTopicName}" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsCommon.Get, @"AzEventGridPartnerTopic_Get")] + [global::System.Management.Automation.OutputType(typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerTopic))] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Description(@"Get properties of a partner topic.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Generated] + public partial class GetAzEventGridPartnerTopic_Get : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener + { + /// A unique id generatd for the this cmdlet when it is instantiated. + private string __correlationId = System.Guid.NewGuid().ToString(); + + /// A copy of the Invocation Info (necessary to allow asJob to clone this cmdlet) + private global::System.Management.Automation.InvocationInfo __invocationInfo; + + /// A unique id generatd for the this cmdlet when ProcessRecord() is called. + private string __processRecordId; + + /// + /// The for this operation. + /// + private global::System.Threading.CancellationTokenSource _cancellationTokenSource = new global::System.Threading.CancellationTokenSource(); + + /// Wait for .NET debugger to attach + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Wait for .NET debugger to attach")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.EventGridManagementClient Client => Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.ClientAPI; + + /// + /// The credentials, account, tenant, and subscription used for communication with Azure + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The credentials, account, tenant, and subscription used for communication with Azure.")] + [global::System.Management.Automation.ValidateNotNull] + [global::System.Management.Automation.Alias("AzureRMContext", "AzureCredential")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Azure)] + public global::System.Management.Automation.PSObject DefaultProfile { get; set; } + + /// SendAsync Pipeline Steps to be appended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be appended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[] HttpPipelineAppend { get; set; } + + /// SendAsync Pipeline Steps to be prepended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be prepended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[] HttpPipelinePrepend { get; set; } + + /// Accessor for our copy of the InvocationInfo. + public global::System.Management.Automation.InvocationInfo InvocationInformation { get => __invocationInfo = __invocationInfo ?? this.MyInvocation ; set { __invocationInfo = value; } } + + /// + /// cancellation delegate. Stops the cmdlet when called. + /// + global::System.Action Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener.Token => _cancellationTokenSource.Token; + + /// Backing field for property. + private string _name; + + /// Name of the partner topic. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Name of the partner topic.")] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Name of the partner topic.", + SerializedName = @"partnerTopicName", + PossibleTypes = new [] { typeof(string) })] + [global::System.Management.Automation.Alias("PartnerTopicName")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Runtime.HttpPipeline Pipeline { get; set; } + + /// The URI for the proxy server to use + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "The URI for the proxy server to use")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Uri Proxy { get; set; } + + /// Credentials for a proxy server to use for the remote call + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Credentials for a proxy server to use for the remote call")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Management.Automation.PSCredential ProxyCredential { get; set; } + + /// Use the default credentials for the proxy + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Use the default credentials for the proxy")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter ProxyUseDefaultCredentials { get; set; } + + /// Backing field for property. + private string _resourceGroupName; + + /// The name of the resource group within the user's subscription. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the resource group within the user's subscription.")] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the resource group within the user's subscription.", + SerializedName = @"resourceGroupName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Path)] + public string ResourceGroupName { get => this._resourceGroupName; set => this._resourceGroupName = value; } + + /// Backing field for property. + private string[] _subscriptionId; + + /// + /// Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription ID forms part of the + /// URI for every service call. + /// + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.")] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.", + SerializedName = @"subscriptionId", + PossibleTypes = new [] { typeof(string) })] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.DefaultInfo( + Name = @"", + Description =@"", + Script = @"(Get-AzContext).Subscription.Id")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Path)] + public string[] SubscriptionId { get => this._subscriptionId; set => this._subscriptionId = value; } + + /// + /// overrideOnDefault will be called before the regular onDefault has been processed, allowing customization of what + /// happens on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// /// Determines if the rest of the onDefault method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnDefault(global::System.Net.Http.HttpResponseMessage responseMessage, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnOk will be called before the regular onOk has been processed, allowing customization of what happens + /// on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// 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() + { + var telemetryId = Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.GetTelemetryId.Invoke(); + if (telemetryId != "" && telemetryId != "internal") + { + __correlationId = telemetryId; + } + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + + } + + /// + /// Intializes a new instance of the cmdlet class. + /// + public GetAzEventGridPartnerTopic_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.EventGrid.Runtime.IEventListener.Signal(string id, global::System.Threading.CancellationToken token, global::System.Func messageData) + { + using( NoSynchronizationContext ) + { + if (token.IsCancellationRequested) + { + return ; + } + + switch ( id ) + { + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Information: + { + var data = messageData(); + WriteInformation(data.Message, new string[]{}); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Error: + { + WriteError(new global::System.Management.Automation.ErrorRecord( new global::System.Exception(messageData().Message), string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null ) ); + return ; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.EventData ), InvocationInformation, this.ParameterSetName, __correlationId, __processRecordId, null ); + if (token.IsCancellationRequested) + { + return ; + } + WriteDebug($"{id}: {(messageData().Message ?? global::System.String.Empty)}"); + } + } + + /// Performs execution of the command. + protected override void ProcessRecord() + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + using( var asyncCommandRuntime = new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token); + } + } + catch (global::System.AggregateException aggregateException) + { + // unroll the inner exceptions to get the root cause + foreach( var innerException in aggregateException.Flatten().InnerExceptions ) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(innerException,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + } + catch (global::System.Exception exception) when ((exception as System.Management.Automation.PipelineStoppedException)== null || (exception as System.Management.Automation.PipelineStoppedException).InnerException != null) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(exception,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + finally + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletProcessRecordEnd).Wait(); + } + } + + /// Performs execution of the command, working asynchronously if required. + /// + /// A that will be complete when handling of the method is completed. + /// + protected async global::System.Threading.Tasks.Task ProcessRecordAsync() + { + using( NoSynchronizationContext ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + foreach( var SubscriptionId in this.SubscriptionId ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await this.Client.PartnerTopicsGet(SubscriptionId, ResourceGroupName, Name, onOk, onDefault, this, Pipeline); + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.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.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Cancel(); + base.StopProcessing(); + } + + /// + /// a delegate that is called when the remote service returns default (any response code not handled elsewhere). + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onDefault(global::System.Net.Http.HttpResponseMessage responseMessage) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnDefault(responseMessage, ref _returnNow); + // if overrideOnDefault has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // Error Response : default + // Unrecognized Response. Create an error record based on what we have. + var ex = new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.RestException(responseMessage); + 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 } + }); + } + } + + /// a delegate that is 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.EventGrid.Models.Api20211015Preview.IPartnerTopic + WriteObject((await response)); + } + } + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/cmdlets/GetAzEventGridPartnerTopic_GetViaIdentity.cs b/swaggerci/eventgrid/generated/cmdlets/GetAzEventGridPartnerTopic_GetViaIdentity.cs new file mode 100644 index 000000000000..354a153519ce --- /dev/null +++ b/swaggerci/eventgrid/generated/cmdlets/GetAzEventGridPartnerTopic_GetViaIdentity.cs @@ -0,0 +1,373 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Extensions; + using System; + + /// Get properties of a partner topic. + /// + /// [OpenAPI] Get=>GET:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.EventGrid/partnerTopics/{partnerTopicName}" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsCommon.Get, @"AzEventGridPartnerTopic_GetViaIdentity")] + [global::System.Management.Automation.OutputType(typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerTopic))] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Description(@"Get properties of a partner topic.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Generated] + public partial class GetAzEventGridPartnerTopic_GetViaIdentity : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener + { + /// A unique id generatd for the this cmdlet when it is instantiated. + private string __correlationId = System.Guid.NewGuid().ToString(); + + /// A copy of the Invocation Info (necessary to allow asJob to clone this cmdlet) + private global::System.Management.Automation.InvocationInfo __invocationInfo; + + /// A unique id generatd for the this cmdlet when ProcessRecord() is called. + private string __processRecordId; + + /// + /// The for this operation. + /// + private global::System.Threading.CancellationTokenSource _cancellationTokenSource = new global::System.Threading.CancellationTokenSource(); + + /// Wait for .NET debugger to attach + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Wait for .NET debugger to attach")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.EventGridManagementClient Client => Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.ClientAPI; + + /// + /// The credentials, account, tenant, and subscription used for communication with Azure + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The credentials, account, tenant, and subscription used for communication with Azure.")] + [global::System.Management.Automation.ValidateNotNull] + [global::System.Management.Automation.Alias("AzureRMContext", "AzureCredential")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Azure)] + public global::System.Management.Automation.PSObject DefaultProfile { get; set; } + + /// SendAsync Pipeline Steps to be appended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be appended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[] HttpPipelineAppend { get; set; } + + /// SendAsync Pipeline Steps to be prepended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be prepended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[] HttpPipelinePrepend { get; set; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.IEventGridIdentity _inputObject; + + /// Identity Parameter + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Identity Parameter", ValueFromPipeline = true)] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Path)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.IEventGridIdentity InputObject { get => this._inputObject; set => this._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.EventGrid.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Runtime.HttpPipeline Pipeline { get; set; } + + /// The URI for the proxy server to use + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "The URI for the proxy server to use")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Uri Proxy { get; set; } + + /// Credentials for a proxy server to use for the remote call + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Credentials for a proxy server to use for the remote call")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Management.Automation.PSCredential ProxyCredential { get; set; } + + /// Use the default credentials for the proxy + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Use the default credentials for the proxy")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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. + /// /// Determines if the rest of the onDefault method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnDefault(global::System.Net.Http.HttpResponseMessage responseMessage, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnOk will be called before the regular onOk has been processed, allowing customization of what happens + /// on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// 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() + { + var telemetryId = Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.GetTelemetryId.Invoke(); + if (telemetryId != "" && telemetryId != "internal") + { + __correlationId = telemetryId; + } + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + + } + + /// + /// Intializes a new instance of the cmdlet class. + /// + public GetAzEventGridPartnerTopic_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.EventGrid.Runtime.IEventListener.Signal(string id, global::System.Threading.CancellationToken token, global::System.Func messageData) + { + using( NoSynchronizationContext ) + { + if (token.IsCancellationRequested) + { + return ; + } + + switch ( id ) + { + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Information: + { + var data = messageData(); + WriteInformation(data.Message, new string[]{}); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Error: + { + WriteError(new global::System.Management.Automation.ErrorRecord( new global::System.Exception(messageData().Message), string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null ) ); + return ; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.EventData ), InvocationInformation, this.ParameterSetName, __correlationId, __processRecordId, null ); + if (token.IsCancellationRequested) + { + return ; + } + WriteDebug($"{id}: {(messageData().Message ?? global::System.String.Empty)}"); + } + } + + /// Performs execution of the command. + protected override void ProcessRecord() + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + using( var asyncCommandRuntime = new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token); + } + } + catch (global::System.AggregateException aggregateException) + { + // unroll the inner exceptions to get the root cause + foreach( var innerException in aggregateException.Flatten().InnerExceptions ) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(innerException,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + } + catch (global::System.Exception exception) when ((exception as System.Management.Automation.PipelineStoppedException)== null || (exception as System.Management.Automation.PipelineStoppedException).InnerException != null) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(exception,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + finally + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletProcessRecordEnd).Wait(); + } + } + + /// Performs execution of the command, working asynchronously if required. + /// + /// A that will be complete when handling of the method is completed. + /// + protected async global::System.Threading.Tasks.Task ProcessRecordAsync() + { + using( NoSynchronizationContext ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + if (InputObject?.Id != null) + { + await this.Client.PartnerTopicsGetViaIdentity(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.PartnerTopicName) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.PartnerTopicName"),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, InputObject) ); + } + await this.Client.PartnerTopicsGet(InputObject.SubscriptionId ?? null, InputObject.ResourceGroupName ?? null, InputObject.PartnerTopicName ?? null, onOk, onDefault, this, Pipeline); + } + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Cancel(); + base.StopProcessing(); + } + + /// + /// a delegate that is called when the remote service returns default (any response code not handled elsewhere). + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onDefault(global::System.Net.Http.HttpResponseMessage responseMessage) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnDefault(responseMessage, ref _returnNow); + // if overrideOnDefault has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // Error Response : default + // Unrecognized Response. Create an error record based on what we have. + var ex = new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.RestException(responseMessage); + WriteError( new global::System.Management.Automation.ErrorRecord(ex, ex.Code, global::System.Management.Automation.ErrorCategory.InvalidOperation, new { }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(ex.Message) { RecommendedAction = ex.Action } + }); + } + } + + /// a delegate that is called when the remote service returns 200 (OK). + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as 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.EventGrid.Models.Api20211015Preview.IPartnerTopic + WriteObject((await response)); + } + } + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/cmdlets/GetAzEventGridPartnerTopic_List.cs b/swaggerci/eventgrid/generated/cmdlets/GetAzEventGridPartnerTopic_List.cs new file mode 100644 index 000000000000..3841381a5775 --- /dev/null +++ b/swaggerci/eventgrid/generated/cmdlets/GetAzEventGridPartnerTopic_List.cs @@ -0,0 +1,428 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Extensions; + using System; + + /// List all the partner topics under an Azure subscription. + /// + /// [OpenAPI] ListBySubscription=>GET:"/subscriptions/{subscriptionId}/providers/Microsoft.EventGrid/partnerTopics" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsCommon.Get, @"AzEventGridPartnerTopic_List")] + [global::System.Management.Automation.OutputType(typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerTopic))] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Description(@"List all the partner topics under an Azure subscription.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Generated] + public partial class GetAzEventGridPartnerTopic_List : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener + { + /// A unique id generatd for the this cmdlet when it is instantiated. + private string __correlationId = System.Guid.NewGuid().ToString(); + + /// A copy of the Invocation Info (necessary to allow asJob to clone this cmdlet) + private global::System.Management.Automation.InvocationInfo __invocationInfo; + + /// A unique id generatd for the this cmdlet when ProcessRecord() is called. + private string __processRecordId; + + /// + /// The for this operation. + /// + private global::System.Threading.CancellationTokenSource _cancellationTokenSource = new global::System.Threading.CancellationTokenSource(); + + /// A flag to tell whether it is the first onOK call. + private bool _isFirst = true; + + /// Link to retrieve next page. + private string _nextLink; + + /// Wait for .NET debugger to attach + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Wait for .NET debugger to attach")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.EventGridManagementClient Client => Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.ClientAPI; + + /// + /// The credentials, account, tenant, and subscription used for communication with Azure + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The credentials, account, tenant, and subscription used for communication with Azure.")] + [global::System.Management.Automation.ValidateNotNull] + [global::System.Management.Automation.Alias("AzureRMContext", "AzureCredential")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Azure)] + public global::System.Management.Automation.PSObject DefaultProfile { get; set; } + + /// Backing field for property. + private string _filter; + + /// + /// The query used to filter the search results using OData syntax. Filtering is permitted on the 'name' property only and + /// with limited number of OData operations. These operations are: the 'contains' function as well as the following logical + /// operations: not, and, or, eq (for equal), and ne (for not equal). No arithmetic operations are supported. The following + /// is a valid filter example: $filter=contains(namE, 'PATTERN') and name ne 'PATTERN-1'. The following is not a valid filter + /// example: $filter=location eq 'westus'. + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The query used to filter the search results using OData syntax. Filtering is permitted on the 'name' property only and with limited number of OData operations. These operations are: the 'contains' function as well as the following logical operations: not, and, or, eq (for equal), and ne (for not equal). No arithmetic operations are supported. The following is a valid filter example: $filter=contains(namE, 'PATTERN') and name ne 'PATTERN-1'. The following is not a valid filter example: $filter=location eq 'westus'.")] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The query used to filter the search results using OData syntax. Filtering is permitted on the 'name' property only and with limited number of OData operations. These operations are: the 'contains' function as well as the following logical operations: not, and, or, eq (for equal), and ne (for not equal). No arithmetic operations are supported. The following is a valid filter example: $filter=contains(namE, 'PATTERN') and name ne 'PATTERN-1'. The following is not a valid filter example: $filter=location eq 'westus'.", + SerializedName = @"$filter", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[] HttpPipelineAppend { get; set; } + + /// SendAsync Pipeline Steps to be prepended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be prepended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[] HttpPipelinePrepend { get; set; } + + /// Accessor for our copy of the InvocationInfo. + public global::System.Management.Automation.InvocationInfo InvocationInformation { get => __invocationInfo = __invocationInfo ?? this.MyInvocation ; set { __invocationInfo = value; } } + + /// + /// cancellation delegate. Stops the cmdlet when called. + /// + global::System.Action Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Runtime.HttpPipeline Pipeline { get; set; } + + /// The URI for the proxy server to use + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "The URI for the proxy server to use")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Uri Proxy { get; set; } + + /// Credentials for a proxy server to use for the remote call + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Credentials for a proxy server to use for the remote call")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Management.Automation.PSCredential ProxyCredential { get; set; } + + /// Use the default credentials for the proxy + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Use the default credentials for the proxy")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter ProxyUseDefaultCredentials { get; set; } + + /// Backing field for property. + private string[] _subscriptionId; + + /// + /// Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription ID forms part of the + /// URI for every service call. + /// + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.")] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.", + SerializedName = @"subscriptionId", + PossibleTypes = new [] { typeof(string) })] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.DefaultInfo( + Name = @"", + Description =@"", + Script = @"(Get-AzContext).Subscription.Id")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Path)] + public string[] SubscriptionId { get => this._subscriptionId; set => this._subscriptionId = value; } + + /// Backing field for property. + private int _top; + + /// + /// The number of results to return per page for the list operation. Valid range for top parameter is 1 to 100. If not specified, + /// the default number of results to be returned is 20 items per page. + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The number of results to return per page for the list operation. Valid range for top parameter is 1 to 100. If not specified, the default number of results to be returned is 20 items per page.")] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The number of results to return per page for the list operation. Valid range for top parameter is 1 to 100. If not specified, the default number of results to be returned is 20 items per page.", + SerializedName = @"$top", + PossibleTypes = new [] { typeof(int) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Query)] + public int Top { get => this._top; set => this._top = value; } + + /// + /// overrideOnDefault will be called before the regular onDefault has been processed, allowing customization of what + /// happens on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// /// Determines if the rest of the onDefault method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnDefault(global::System.Net.Http.HttpResponseMessage responseMessage, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnOk will be called before the regular onOk has been processed, allowing customization of what happens + /// on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// 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() + { + var telemetryId = Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.GetTelemetryId.Invoke(); + if (telemetryId != "" && telemetryId != "internal") + { + __correlationId = telemetryId; + } + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + + } + + /// + /// Intializes a new instance of the cmdlet class. + /// + public GetAzEventGridPartnerTopic_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.EventGrid.Runtime.IEventListener.Signal(string id, global::System.Threading.CancellationToken token, global::System.Func messageData) + { + using( NoSynchronizationContext ) + { + if (token.IsCancellationRequested) + { + return ; + } + + switch ( id ) + { + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Information: + { + var data = messageData(); + WriteInformation(data.Message, new string[]{}); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Error: + { + WriteError(new global::System.Management.Automation.ErrorRecord( new global::System.Exception(messageData().Message), string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null ) ); + return ; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.EventData ), InvocationInformation, this.ParameterSetName, __correlationId, __processRecordId, null ); + if (token.IsCancellationRequested) + { + return ; + } + WriteDebug($"{id}: {(messageData().Message ?? global::System.String.Empty)}"); + } + } + + /// Performs execution of the command. + protected override void ProcessRecord() + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + using( var asyncCommandRuntime = new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token); + } + } + catch (global::System.AggregateException aggregateException) + { + // unroll the inner exceptions to get the root cause + foreach( var innerException in aggregateException.Flatten().InnerExceptions ) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(innerException,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + } + catch (global::System.Exception exception) when ((exception as System.Management.Automation.PipelineStoppedException)== null || (exception as System.Management.Automation.PipelineStoppedException).InnerException != null) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(exception,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + finally + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletProcessRecordEnd).Wait(); + } + } + + /// Performs execution of the command, working asynchronously if required. + /// + /// A that will be complete when handling of the method is completed. + /// + protected async global::System.Threading.Tasks.Task ProcessRecordAsync() + { + using( NoSynchronizationContext ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + foreach( var SubscriptionId in this.SubscriptionId ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await this.Client.PartnerTopicsListBySubscription(SubscriptionId, this.InvocationInformation.BoundParameters.ContainsKey("Filter") ? Filter : null, this.InvocationInformation.BoundParameters.ContainsKey("Top") ? Top : default(int?), onOk, onDefault, this, Pipeline); + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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,Top=this.InvocationInformation.BoundParameters.ContainsKey("Top") ? Top : default(int?)}) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(urexception.Message) { RecommendedAction = urexception.Action } + }); + } + finally + { + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Cancel(); + base.StopProcessing(); + } + + /// + /// a delegate that is called when the remote service returns default (any response code not handled elsewhere). + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onDefault(global::System.Net.Http.HttpResponseMessage responseMessage) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnDefault(responseMessage, ref _returnNow); + // if overrideOnDefault has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // Error Response : default + // Unrecognized Response. Create an error record based on what we have. + var ex = new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.RestException(responseMessage); + 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, Top=this.InvocationInformation.BoundParameters.ContainsKey("Top") ? Top : default(int?) }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(ex.Message) { RecommendedAction = ex.Action } + }); + } + } + + /// a delegate that is called when the remote service returns 200 (OK). + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnOk(responseMessage, response, ref _returnNow); + // if overrideOnOk has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // onOk - response for 200 / application/json + // response should be returning an array of some kind. +Pageable + // pageable / value / nextLink + var result = await response; + WriteObject(result.Value,true); + _nextLink = result.NextLink; + if (_isFirst) + { + _isFirst = false; + while (_nextLink != null) + { + if (responseMessage.RequestMessage is System.Net.Http.HttpRequestMessage requestMessage ) + { + requestMessage = requestMessage.Clone(new global::System.Uri( _nextLink ),Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Method.Get ); + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.FollowingNextLink); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await this.Client.PartnerTopicsListBySubscription_Call(requestMessage, onOk, onDefault, this, Pipeline); + } + } + } + } + } + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/cmdlets/GetAzEventGridPartnerTopic_List1.cs b/swaggerci/eventgrid/generated/cmdlets/GetAzEventGridPartnerTopic_List1.cs new file mode 100644 index 000000000000..14508d0e6bd2 --- /dev/null +++ b/swaggerci/eventgrid/generated/cmdlets/GetAzEventGridPartnerTopic_List1.cs @@ -0,0 +1,442 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Extensions; + using System; + + /// List all the partner topics under a resource group. + /// + /// [OpenAPI] ListByResourceGroup=>GET:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.EventGrid/partnerTopics" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsCommon.Get, @"AzEventGridPartnerTopic_List1")] + [global::System.Management.Automation.OutputType(typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerTopic))] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Description(@"List all the partner topics under a resource group.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Generated] + public partial class GetAzEventGridPartnerTopic_List1 : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener + { + /// A unique id generatd for the this cmdlet when it is instantiated. + private string __correlationId = System.Guid.NewGuid().ToString(); + + /// A copy of the Invocation Info (necessary to allow asJob to clone this cmdlet) + private global::System.Management.Automation.InvocationInfo __invocationInfo; + + /// A unique id generatd for the this cmdlet when ProcessRecord() is called. + private string __processRecordId; + + /// + /// The for this operation. + /// + private global::System.Threading.CancellationTokenSource _cancellationTokenSource = new global::System.Threading.CancellationTokenSource(); + + /// A flag to tell whether it is the first onOK call. + private bool _isFirst = true; + + /// Link to retrieve next page. + private string _nextLink; + + /// Wait for .NET debugger to attach + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Wait for .NET debugger to attach")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.EventGridManagementClient Client => Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.ClientAPI; + + /// + /// The credentials, account, tenant, and subscription used for communication with Azure + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The credentials, account, tenant, and subscription used for communication with Azure.")] + [global::System.Management.Automation.ValidateNotNull] + [global::System.Management.Automation.Alias("AzureRMContext", "AzureCredential")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Azure)] + public global::System.Management.Automation.PSObject DefaultProfile { get; set; } + + /// Backing field for property. + private string _filter; + + /// + /// The query used to filter the search results using OData syntax. Filtering is permitted on the 'name' property only and + /// with limited number of OData operations. These operations are: the 'contains' function as well as the following logical + /// operations: not, and, or, eq (for equal), and ne (for not equal). No arithmetic operations are supported. The following + /// is a valid filter example: $filter=contains(namE, 'PATTERN') and name ne 'PATTERN-1'. The following is not a valid filter + /// example: $filter=location eq 'westus'. + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The query used to filter the search results using OData syntax. Filtering is permitted on the 'name' property only and with limited number of OData operations. These operations are: the 'contains' function as well as the following logical operations: not, and, or, eq (for equal), and ne (for not equal). No arithmetic operations are supported. The following is a valid filter example: $filter=contains(namE, 'PATTERN') and name ne 'PATTERN-1'. The following is not a valid filter example: $filter=location eq 'westus'.")] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The query used to filter the search results using OData syntax. Filtering is permitted on the 'name' property only and with limited number of OData operations. These operations are: the 'contains' function as well as the following logical operations: not, and, or, eq (for equal), and ne (for not equal). No arithmetic operations are supported. The following is a valid filter example: $filter=contains(namE, 'PATTERN') and name ne 'PATTERN-1'. The following is not a valid filter example: $filter=location eq 'westus'.", + SerializedName = @"$filter", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[] HttpPipelineAppend { get; set; } + + /// SendAsync Pipeline Steps to be prepended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be prepended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[] HttpPipelinePrepend { get; set; } + + /// Accessor for our copy of the InvocationInfo. + public global::System.Management.Automation.InvocationInfo InvocationInformation { get => __invocationInfo = __invocationInfo ?? this.MyInvocation ; set { __invocationInfo = value; } } + + /// + /// cancellation delegate. Stops the cmdlet when called. + /// + global::System.Action Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Runtime.HttpPipeline Pipeline { get; set; } + + /// The URI for the proxy server to use + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "The URI for the proxy server to use")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Uri Proxy { get; set; } + + /// Credentials for a proxy server to use for the remote call + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Credentials for a proxy server to use for the remote call")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Management.Automation.PSCredential ProxyCredential { get; set; } + + /// Use the default credentials for the proxy + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Use the default credentials for the proxy")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter ProxyUseDefaultCredentials { get; set; } + + /// Backing field for property. + private string _resourceGroupName; + + /// The name of the resource group within the user's subscription. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the resource group within the user's subscription.")] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the resource group within the user's subscription.", + SerializedName = @"resourceGroupName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Path)] + public string ResourceGroupName { get => this._resourceGroupName; set => this._resourceGroupName = value; } + + /// Backing field for property. + private string[] _subscriptionId; + + /// + /// Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription ID forms part of the + /// URI for every service call. + /// + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.")] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.", + SerializedName = @"subscriptionId", + PossibleTypes = new [] { typeof(string) })] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.DefaultInfo( + Name = @"", + Description =@"", + Script = @"(Get-AzContext).Subscription.Id")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Path)] + public string[] SubscriptionId { get => this._subscriptionId; set => this._subscriptionId = value; } + + /// Backing field for property. + private int _top; + + /// + /// The number of results to return per page for the list operation. Valid range for top parameter is 1 to 100. If not specified, + /// the default number of results to be returned is 20 items per page. + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The number of results to return per page for the list operation. Valid range for top parameter is 1 to 100. If not specified, the default number of results to be returned is 20 items per page.")] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The number of results to return per page for the list operation. Valid range for top parameter is 1 to 100. If not specified, the default number of results to be returned is 20 items per page.", + SerializedName = @"$top", + PossibleTypes = new [] { typeof(int) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Query)] + public int Top { get => this._top; set => this._top = value; } + + /// + /// overrideOnDefault will be called before the regular onDefault has been processed, allowing customization of what + /// happens on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// /// Determines if the rest of the onDefault method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnDefault(global::System.Net.Http.HttpResponseMessage responseMessage, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnOk will be called before the regular onOk has been processed, allowing customization of what happens + /// on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// 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() + { + var telemetryId = Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.GetTelemetryId.Invoke(); + if (telemetryId != "" && telemetryId != "internal") + { + __correlationId = telemetryId; + } + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + + } + + /// + /// Intializes a new instance of the cmdlet class. + /// + public GetAzEventGridPartnerTopic_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.EventGrid.Runtime.IEventListener.Signal(string id, global::System.Threading.CancellationToken token, global::System.Func messageData) + { + using( NoSynchronizationContext ) + { + if (token.IsCancellationRequested) + { + return ; + } + + switch ( id ) + { + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Information: + { + var data = messageData(); + WriteInformation(data.Message, new string[]{}); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Error: + { + WriteError(new global::System.Management.Automation.ErrorRecord( new global::System.Exception(messageData().Message), string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null ) ); + return ; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.EventData ), InvocationInformation, this.ParameterSetName, __correlationId, __processRecordId, null ); + if (token.IsCancellationRequested) + { + return ; + } + WriteDebug($"{id}: {(messageData().Message ?? global::System.String.Empty)}"); + } + } + + /// Performs execution of the command. + protected override void ProcessRecord() + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + using( var asyncCommandRuntime = new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token); + } + } + catch (global::System.AggregateException aggregateException) + { + // unroll the inner exceptions to get the root cause + foreach( var innerException in aggregateException.Flatten().InnerExceptions ) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(innerException,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + } + catch (global::System.Exception exception) when ((exception as System.Management.Automation.PipelineStoppedException)== null || (exception as System.Management.Automation.PipelineStoppedException).InnerException != null) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(exception,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + finally + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletProcessRecordEnd).Wait(); + } + } + + /// Performs execution of the command, working asynchronously if required. + /// + /// A that will be complete when handling of the method is completed. + /// + protected async global::System.Threading.Tasks.Task ProcessRecordAsync() + { + using( NoSynchronizationContext ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + foreach( var SubscriptionId in this.SubscriptionId ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await this.Client.PartnerTopicsListByResourceGroup(SubscriptionId, ResourceGroupName, this.InvocationInformation.BoundParameters.ContainsKey("Filter") ? Filter : null, this.InvocationInformation.BoundParameters.ContainsKey("Top") ? Top : default(int?), onOk, onDefault, this, Pipeline); + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.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,Top=this.InvocationInformation.BoundParameters.ContainsKey("Top") ? Top : default(int?)}) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(urexception.Message) { RecommendedAction = urexception.Action } + }); + } + finally + { + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Cancel(); + base.StopProcessing(); + } + + /// + /// a delegate that is called when the remote service returns default (any response code not handled elsewhere). + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onDefault(global::System.Net.Http.HttpResponseMessage responseMessage) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnDefault(responseMessage, ref _returnNow); + // if overrideOnDefault has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // Error Response : default + // Unrecognized Response. Create an error record based on what we have. + var ex = new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.RestException(responseMessage); + 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, Top=this.InvocationInformation.BoundParameters.ContainsKey("Top") ? Top : default(int?) }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(ex.Message) { RecommendedAction = ex.Action } + }); + } + } + + /// a delegate that is called when the remote service returns 200 (OK). + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnOk(responseMessage, response, ref _returnNow); + // if overrideOnOk has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // onOk - response for 200 / application/json + // response should be returning an array of some kind. +Pageable + // pageable / value / nextLink + var result = await response; + WriteObject(result.Value,true); + _nextLink = result.NextLink; + if (_isFirst) + { + _isFirst = false; + while (_nextLink != null) + { + if (responseMessage.RequestMessage is System.Net.Http.HttpRequestMessage requestMessage ) + { + requestMessage = requestMessage.Clone(new global::System.Uri( _nextLink ),Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Method.Get ); + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.FollowingNextLink); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await this.Client.PartnerTopicsListByResourceGroup_Call(requestMessage, onOk, onDefault, this, Pipeline); + } + } + } + } + } + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/cmdlets/GetAzEventGridPrivateEndpointConnection_Get.cs b/swaggerci/eventgrid/generated/cmdlets/GetAzEventGridPrivateEndpointConnection_Get.cs new file mode 100644 index 000000000000..643fa08df2af --- /dev/null +++ b/swaggerci/eventgrid/generated/cmdlets/GetAzEventGridPrivateEndpointConnection_Get.cs @@ -0,0 +1,433 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Extensions; + using System; + + /// + /// Get a specific private endpoint connection under a topic, domain, or partner namespace. + /// + /// + /// [OpenAPI] Get=>GET:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.EventGrid/{parentType}/{parentName}/privateEndpointConnections/{privateEndpointConnectionName}" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsCommon.Get, @"AzEventGridPrivateEndpointConnection_Get")] + [global::System.Management.Automation.OutputType(typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPrivateEndpointConnection))] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Description(@"Get a specific private endpoint connection under a topic, domain, or partner namespace.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Generated] + public partial class GetAzEventGridPrivateEndpointConnection_Get : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener + { + /// A unique id generatd for the this cmdlet when it is instantiated. + private string __correlationId = System.Guid.NewGuid().ToString(); + + /// A copy of the Invocation Info (necessary to allow asJob to clone this cmdlet) + private global::System.Management.Automation.InvocationInfo __invocationInfo; + + /// A unique id generatd for the this cmdlet when ProcessRecord() is called. + private string __processRecordId; + + /// + /// The for this operation. + /// + private global::System.Threading.CancellationTokenSource _cancellationTokenSource = new global::System.Threading.CancellationTokenSource(); + + /// Wait for .NET debugger to attach + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Wait for .NET debugger to attach")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.EventGridManagementClient Client => Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.ClientAPI; + + /// + /// The credentials, account, tenant, and subscription used for communication with Azure + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The credentials, account, tenant, and subscription used for communication with Azure.")] + [global::System.Management.Automation.ValidateNotNull] + [global::System.Management.Automation.Alias("AzureRMContext", "AzureCredential")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Azure)] + public global::System.Management.Automation.PSObject DefaultProfile { get; set; } + + /// SendAsync Pipeline Steps to be appended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be appended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[] HttpPipelineAppend { get; set; } + + /// SendAsync Pipeline Steps to be prepended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be prepended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[] HttpPipelinePrepend { get; set; } + + /// Accessor for our copy of the InvocationInfo. + public global::System.Management.Automation.InvocationInfo InvocationInformation { get => __invocationInfo = __invocationInfo ?? this.MyInvocation ; set { __invocationInfo = value; } } + + /// + /// cancellation delegate. Stops the cmdlet when called. + /// + global::System.Action Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener.Token => _cancellationTokenSource.Token; + + /// Backing field for property. + private string _name; + + /// The name of the private endpoint connection connection. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the private endpoint connection connection.")] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the private endpoint connection connection.", + SerializedName = @"privateEndpointConnectionName", + PossibleTypes = new [] { typeof(string) })] + [global::System.Management.Automation.Alias("PrivateEndpointConnectionName")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Path)] + public string Name { get => this._name; set => this._name = value; } + + /// Backing field for property. + private string _parentName; + + /// + /// The name of the parent resource (namely, either, the topic name, domain name, or partner namespace name). + /// + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the parent resource (namely, either, the topic name, domain name, or partner namespace name).")] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the parent resource (namely, either, the topic name, domain name, or partner namespace name).", + SerializedName = @"parentName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Path)] + public string ParentName { get => this._parentName; set => this._parentName = value; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.ParentType _parentType; + + /// + /// The type of the parent resource. This can be either \'topics\', \'domains\', or \'partnerNamespaces\'. + /// + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The type of the parent resource. This can be either \\'topics\\', \\'domains\\', or \\'partnerNamespaces\\'.")] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The type of the parent resource. This can be either \'topics\', \'domains\', or \'partnerNamespaces\'.", + SerializedName = @"parentType", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.ParentType) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Path)] + [global::System.Management.Automation.ArgumentCompleter(typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.ParentType))] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.ParentType ParentType { get => this._parentType; set => this._parentType = 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.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Runtime.HttpPipeline Pipeline { get; set; } + + /// The URI for the proxy server to use + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "The URI for the proxy server to use")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Uri Proxy { get; set; } + + /// Credentials for a proxy server to use for the remote call + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Credentials for a proxy server to use for the remote call")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Management.Automation.PSCredential ProxyCredential { get; set; } + + /// Use the default credentials for the proxy + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Use the default credentials for the proxy")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter ProxyUseDefaultCredentials { get; set; } + + /// Backing field for property. + private string _resourceGroupName; + + /// The name of the resource group within the user's subscription. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the resource group within the user's subscription.")] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the resource group within the user's subscription.", + SerializedName = @"resourceGroupName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Path)] + public string ResourceGroupName { get => this._resourceGroupName; set => this._resourceGroupName = value; } + + /// Backing field for property. + private string[] _subscriptionId; + + /// + /// Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription ID forms part of the + /// URI for every service call. + /// + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.")] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.", + SerializedName = @"subscriptionId", + PossibleTypes = new [] { typeof(string) })] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.DefaultInfo( + Name = @"", + Description =@"", + Script = @"(Get-AzContext).Subscription.Id")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Path)] + public string[] SubscriptionId { get => this._subscriptionId; set => this._subscriptionId = value; } + + /// + /// overrideOnDefault will be called before the regular onDefault has been processed, allowing customization of what + /// happens on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// /// Determines if the rest of the onDefault method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnDefault(global::System.Net.Http.HttpResponseMessage responseMessage, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnOk will be called before the regular onOk has been processed, allowing customization of what happens + /// on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// 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() + { + var telemetryId = Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.GetTelemetryId.Invoke(); + if (telemetryId != "" && telemetryId != "internal") + { + __correlationId = telemetryId; + } + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + + } + + /// + /// Intializes a new instance of the cmdlet class. + /// + public GetAzEventGridPrivateEndpointConnection_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.EventGrid.Runtime.IEventListener.Signal(string id, global::System.Threading.CancellationToken token, global::System.Func messageData) + { + using( NoSynchronizationContext ) + { + if (token.IsCancellationRequested) + { + return ; + } + + switch ( id ) + { + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Information: + { + var data = messageData(); + WriteInformation(data.Message, new string[]{}); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Error: + { + WriteError(new global::System.Management.Automation.ErrorRecord( new global::System.Exception(messageData().Message), string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null ) ); + return ; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.EventData ), InvocationInformation, this.ParameterSetName, __correlationId, __processRecordId, null ); + if (token.IsCancellationRequested) + { + return ; + } + WriteDebug($"{id}: {(messageData().Message ?? global::System.String.Empty)}"); + } + } + + /// Performs execution of the command. + protected override void ProcessRecord() + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + using( var asyncCommandRuntime = new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token); + } + } + catch (global::System.AggregateException aggregateException) + { + // unroll the inner exceptions to get the root cause + foreach( var innerException in aggregateException.Flatten().InnerExceptions ) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(innerException,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + } + catch (global::System.Exception exception) when ((exception as System.Management.Automation.PipelineStoppedException)== null || (exception as System.Management.Automation.PipelineStoppedException).InnerException != null) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(exception,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + finally + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletProcessRecordEnd).Wait(); + } + } + + /// Performs execution of the command, working asynchronously if required. + /// + /// A that will be complete when handling of the method is completed. + /// + protected async global::System.Threading.Tasks.Task ProcessRecordAsync() + { + using( NoSynchronizationContext ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + foreach( var SubscriptionId in this.SubscriptionId ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await this.Client.PrivateEndpointConnectionsGet(SubscriptionId, ResourceGroupName, ParentType, ParentName, Name, onOk, onDefault, this, Pipeline); + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.UndeclaredResponseException urexception) + { + WriteError(new global::System.Management.Automation.ErrorRecord(urexception, urexception.StatusCode.ToString(), global::System.Management.Automation.ErrorCategory.InvalidOperation, new { SubscriptionId=SubscriptionId,ResourceGroupName=ResourceGroupName,ParentType=ParentType,ParentName=ParentName,Name=Name}) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(urexception.Message) { RecommendedAction = urexception.Action } + }); + } + finally + { + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Cancel(); + base.StopProcessing(); + } + + /// + /// a delegate that is called when the remote service returns default (any response code not handled elsewhere). + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onDefault(global::System.Net.Http.HttpResponseMessage responseMessage) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnDefault(responseMessage, ref _returnNow); + // if overrideOnDefault has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // Error Response : default + // Unrecognized Response. Create an error record based on what we have. + var ex = new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.RestException(responseMessage); + WriteError( new global::System.Management.Automation.ErrorRecord(ex, ex.Code, global::System.Management.Automation.ErrorCategory.InvalidOperation, new { SubscriptionId=SubscriptionId, ResourceGroupName=ResourceGroupName, ParentType=ParentType, ParentName=ParentName, Name=Name }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(ex.Message) { RecommendedAction = ex.Action } + }); + } + } + + /// a delegate that is called when the remote service returns 200 (OK). + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as 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.EventGrid.Models.Api20211015Preview.IPrivateEndpointConnection + WriteObject((await response)); + } + } + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/cmdlets/GetAzEventGridPrivateEndpointConnection_GetViaIdentity.cs b/swaggerci/eventgrid/generated/cmdlets/GetAzEventGridPrivateEndpointConnection_GetViaIdentity.cs new file mode 100644 index 000000000000..c239978cf1a5 --- /dev/null +++ b/swaggerci/eventgrid/generated/cmdlets/GetAzEventGridPrivateEndpointConnection_GetViaIdentity.cs @@ -0,0 +1,383 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Extensions; + using System; + + /// + /// Get a specific private endpoint connection under a topic, domain, or partner namespace. + /// + /// + /// [OpenAPI] Get=>GET:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.EventGrid/{parentType}/{parentName}/privateEndpointConnections/{privateEndpointConnectionName}" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsCommon.Get, @"AzEventGridPrivateEndpointConnection_GetViaIdentity")] + [global::System.Management.Automation.OutputType(typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPrivateEndpointConnection))] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Description(@"Get a specific private endpoint connection under a topic, domain, or partner namespace.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Generated] + public partial class GetAzEventGridPrivateEndpointConnection_GetViaIdentity : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener + { + /// A unique id generatd for the this cmdlet when it is instantiated. + private string __correlationId = System.Guid.NewGuid().ToString(); + + /// A copy of the Invocation Info (necessary to allow asJob to clone this cmdlet) + private global::System.Management.Automation.InvocationInfo __invocationInfo; + + /// A unique id generatd for the this cmdlet when ProcessRecord() is called. + private string __processRecordId; + + /// + /// The for this operation. + /// + private global::System.Threading.CancellationTokenSource _cancellationTokenSource = new global::System.Threading.CancellationTokenSource(); + + /// Wait for .NET debugger to attach + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Wait for .NET debugger to attach")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.EventGridManagementClient Client => Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.ClientAPI; + + /// + /// The credentials, account, tenant, and subscription used for communication with Azure + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The credentials, account, tenant, and subscription used for communication with Azure.")] + [global::System.Management.Automation.ValidateNotNull] + [global::System.Management.Automation.Alias("AzureRMContext", "AzureCredential")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Azure)] + public global::System.Management.Automation.PSObject DefaultProfile { get; set; } + + /// SendAsync Pipeline Steps to be appended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be appended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[] HttpPipelineAppend { get; set; } + + /// SendAsync Pipeline Steps to be prepended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be prepended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[] HttpPipelinePrepend { get; set; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.IEventGridIdentity _inputObject; + + /// Identity Parameter + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Identity Parameter", ValueFromPipeline = true)] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Path)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.IEventGridIdentity InputObject { get => this._inputObject; set => this._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.EventGrid.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Runtime.HttpPipeline Pipeline { get; set; } + + /// The URI for the proxy server to use + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "The URI for the proxy server to use")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Uri Proxy { get; set; } + + /// Credentials for a proxy server to use for the remote call + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Credentials for a proxy server to use for the remote call")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Management.Automation.PSCredential ProxyCredential { get; set; } + + /// Use the default credentials for the proxy + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Use the default credentials for the proxy")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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. + /// /// Determines if the rest of the onDefault method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnDefault(global::System.Net.Http.HttpResponseMessage responseMessage, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnOk will be called before the regular onOk has been processed, allowing customization of what happens + /// on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// 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() + { + var telemetryId = Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.GetTelemetryId.Invoke(); + if (telemetryId != "" && telemetryId != "internal") + { + __correlationId = telemetryId; + } + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + + } + + /// + /// Intializes a new instance of the cmdlet class. + /// + public GetAzEventGridPrivateEndpointConnection_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.EventGrid.Runtime.IEventListener.Signal(string id, global::System.Threading.CancellationToken token, global::System.Func messageData) + { + using( NoSynchronizationContext ) + { + if (token.IsCancellationRequested) + { + return ; + } + + switch ( id ) + { + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Information: + { + var data = messageData(); + WriteInformation(data.Message, new string[]{}); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Error: + { + WriteError(new global::System.Management.Automation.ErrorRecord( new global::System.Exception(messageData().Message), string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null ) ); + return ; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.EventData ), InvocationInformation, this.ParameterSetName, __correlationId, __processRecordId, null ); + if (token.IsCancellationRequested) + { + return ; + } + WriteDebug($"{id}: {(messageData().Message ?? global::System.String.Empty)}"); + } + } + + /// Performs execution of the command. + protected override void ProcessRecord() + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + using( var asyncCommandRuntime = new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token); + } + } + catch (global::System.AggregateException aggregateException) + { + // unroll the inner exceptions to get the root cause + foreach( var innerException in aggregateException.Flatten().InnerExceptions ) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(innerException,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + } + catch (global::System.Exception exception) when ((exception as System.Management.Automation.PipelineStoppedException)== null || (exception as System.Management.Automation.PipelineStoppedException).InnerException != null) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(exception,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + finally + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletProcessRecordEnd).Wait(); + } + } + + /// Performs execution of the command, working asynchronously if required. + /// + /// A that will be complete when handling of the method is completed. + /// + protected async global::System.Threading.Tasks.Task ProcessRecordAsync() + { + using( NoSynchronizationContext ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + if (InputObject?.Id != null) + { + await this.Client.PrivateEndpointConnectionsGetViaIdentity(InputObject.Id, onOk, onDefault, this, Pipeline); + } + else + { + // try to call with PATH parameters from Input Object + if (null == InputObject.SubscriptionId) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.SubscriptionId"),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, InputObject) ); + } + if (null == InputObject.ResourceGroupName) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.ResourceGroupName"),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, InputObject) ); + } + if (null == InputObject.ParentType) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.ParentType"),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, InputObject) ); + } + if (null == InputObject.ParentName) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.ParentName"),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, InputObject) ); + } + if (null == InputObject.PrivateEndpointConnectionName) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.PrivateEndpointConnectionName"),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, InputObject) ); + } + await this.Client.PrivateEndpointConnectionsGet(InputObject.SubscriptionId ?? null, InputObject.ResourceGroupName ?? null, InputObject.ParentType ?? ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.ParentType)""), InputObject.ParentName ?? null, InputObject.PrivateEndpointConnectionName ?? null, onOk, onDefault, this, Pipeline); + } + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Cancel(); + base.StopProcessing(); + } + + /// + /// a delegate that is called when the remote service returns default (any response code not handled elsewhere). + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onDefault(global::System.Net.Http.HttpResponseMessage responseMessage) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnDefault(responseMessage, ref _returnNow); + // if overrideOnDefault has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // Error Response : default + // Unrecognized Response. Create an error record based on what we have. + var ex = new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.RestException(responseMessage); + WriteError( new global::System.Management.Automation.ErrorRecord(ex, ex.Code, global::System.Management.Automation.ErrorCategory.InvalidOperation, new { }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(ex.Message) { RecommendedAction = ex.Action } + }); + } + } + + /// a delegate that is called when the remote service returns 200 (OK). + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as 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.EventGrid.Models.Api20211015Preview.IPrivateEndpointConnection + WriteObject((await response)); + } + } + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/cmdlets/GetAzEventGridPrivateEndpointConnection_List.cs b/swaggerci/eventgrid/generated/cmdlets/GetAzEventGridPrivateEndpointConnection_List.cs new file mode 100644 index 000000000000..04e506e1203e --- /dev/null +++ b/swaggerci/eventgrid/generated/cmdlets/GetAzEventGridPrivateEndpointConnection_List.cs @@ -0,0 +1,477 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Extensions; + using System; + + /// + /// Get all private endpoint connections under a topic, domain, or partner namespace. + /// + /// + /// [OpenAPI] ListByResource=>GET:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.EventGrid/{parentType}/{parentName}/privateEndpointConnections" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsCommon.Get, @"AzEventGridPrivateEndpointConnection_List")] + [global::System.Management.Automation.OutputType(typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPrivateEndpointConnection))] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Description(@"Get all private endpoint connections under a topic, domain, or partner namespace.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Generated] + public partial class GetAzEventGridPrivateEndpointConnection_List : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener + { + /// A unique id generatd for the this cmdlet when it is instantiated. + private string __correlationId = System.Guid.NewGuid().ToString(); + + /// A copy of the Invocation Info (necessary to allow asJob to clone this cmdlet) + private global::System.Management.Automation.InvocationInfo __invocationInfo; + + /// A unique id generatd for the this cmdlet when ProcessRecord() is called. + private string __processRecordId; + + /// + /// The for this operation. + /// + private global::System.Threading.CancellationTokenSource _cancellationTokenSource = new global::System.Threading.CancellationTokenSource(); + + /// A flag to tell whether it is the first onOK call. + private bool _isFirst = true; + + /// Link to retrieve next page. + private string _nextLink; + + /// Wait for .NET debugger to attach + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Wait for .NET debugger to attach")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.EventGridManagementClient Client => Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.ClientAPI; + + /// + /// The credentials, account, tenant, and subscription used for communication with Azure + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The credentials, account, tenant, and subscription used for communication with Azure.")] + [global::System.Management.Automation.ValidateNotNull] + [global::System.Management.Automation.Alias("AzureRMContext", "AzureCredential")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Azure)] + public global::System.Management.Automation.PSObject DefaultProfile { get; set; } + + /// Backing field for property. + private string _filter; + + /// + /// The query used to filter the search results using OData syntax. Filtering is permitted on the 'name' property only and + /// with limited number of OData operations. These operations are: the 'contains' function as well as the following logical + /// operations: not, and, or, eq (for equal), and ne (for not equal). No arithmetic operations are supported. The following + /// is a valid filter example: $filter=contains(namE, 'PATTERN') and name ne 'PATTERN-1'. The following is not a valid filter + /// example: $filter=location eq 'westus'. + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The query used to filter the search results using OData syntax. Filtering is permitted on the 'name' property only and with limited number of OData operations. These operations are: the 'contains' function as well as the following logical operations: not, and, or, eq (for equal), and ne (for not equal). No arithmetic operations are supported. The following is a valid filter example: $filter=contains(namE, 'PATTERN') and name ne 'PATTERN-1'. The following is not a valid filter example: $filter=location eq 'westus'.")] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The query used to filter the search results using OData syntax. Filtering is permitted on the 'name' property only and with limited number of OData operations. These operations are: the 'contains' function as well as the following logical operations: not, and, or, eq (for equal), and ne (for not equal). No arithmetic operations are supported. The following is a valid filter example: $filter=contains(namE, 'PATTERN') and name ne 'PATTERN-1'. The following is not a valid filter example: $filter=location eq 'westus'.", + SerializedName = @"$filter", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[] HttpPipelineAppend { get; set; } + + /// SendAsync Pipeline Steps to be prepended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be prepended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[] HttpPipelinePrepend { get; set; } + + /// Accessor for our copy of the InvocationInfo. + public global::System.Management.Automation.InvocationInfo InvocationInformation { get => __invocationInfo = __invocationInfo ?? this.MyInvocation ; set { __invocationInfo = value; } } + + /// + /// cancellation delegate. Stops the cmdlet when called. + /// + global::System.Action Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener.Token => _cancellationTokenSource.Token; + + /// Backing field for property. + private string _parentName; + + /// + /// The name of the parent resource (namely, either, the topic name, domain name, or partner namespace name). + /// + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the parent resource (namely, either, the topic name, domain name, or partner namespace name).")] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the parent resource (namely, either, the topic name, domain name, or partner namespace name).", + SerializedName = @"parentName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Path)] + public string ParentName { get => this._parentName; set => this._parentName = value; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.ParentType _parentType; + + /// + /// The type of the parent resource. This can be either \'topics\', \'domains\', or \'partnerNamespaces\'. + /// + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The type of the parent resource. This can be either \\'topics\\', \\'domains\\', or \\'partnerNamespaces\\'.")] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The type of the parent resource. This can be either \'topics\', \'domains\', or \'partnerNamespaces\'.", + SerializedName = @"parentType", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.ParentType) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Path)] + [global::System.Management.Automation.ArgumentCompleter(typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.ParentType))] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.ParentType ParentType { get => this._parentType; set => this._parentType = 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.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Runtime.HttpPipeline Pipeline { get; set; } + + /// The URI for the proxy server to use + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "The URI for the proxy server to use")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Uri Proxy { get; set; } + + /// Credentials for a proxy server to use for the remote call + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Credentials for a proxy server to use for the remote call")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Management.Automation.PSCredential ProxyCredential { get; set; } + + /// Use the default credentials for the proxy + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Use the default credentials for the proxy")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter ProxyUseDefaultCredentials { get; set; } + + /// Backing field for property. + private string _resourceGroupName; + + /// The name of the resource group within the user's subscription. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the resource group within the user's subscription.")] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the resource group within the user's subscription.", + SerializedName = @"resourceGroupName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Path)] + public string ResourceGroupName { get => this._resourceGroupName; set => this._resourceGroupName = value; } + + /// Backing field for property. + private string[] _subscriptionId; + + /// + /// Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription ID forms part of the + /// URI for every service call. + /// + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.")] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.", + SerializedName = @"subscriptionId", + PossibleTypes = new [] { typeof(string) })] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.DefaultInfo( + Name = @"", + Description =@"", + Script = @"(Get-AzContext).Subscription.Id")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Path)] + public string[] SubscriptionId { get => this._subscriptionId; set => this._subscriptionId = value; } + + /// Backing field for property. + private int _top; + + /// + /// The number of results to return per page for the list operation. Valid range for top parameter is 1 to 100. If not specified, + /// the default number of results to be returned is 20 items per page. + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The number of results to return per page for the list operation. Valid range for top parameter is 1 to 100. If not specified, the default number of results to be returned is 20 items per page.")] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The number of results to return per page for the list operation. Valid range for top parameter is 1 to 100. If not specified, the default number of results to be returned is 20 items per page.", + SerializedName = @"$top", + PossibleTypes = new [] { typeof(int) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Query)] + public int Top { get => this._top; set => this._top = value; } + + /// + /// overrideOnDefault will be called before the regular onDefault has been processed, allowing customization of what + /// happens on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// /// Determines if the rest of the onDefault method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnDefault(global::System.Net.Http.HttpResponseMessage responseMessage, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnOk will be called before the regular onOk has been processed, allowing customization of what happens + /// on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// 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() + { + var telemetryId = Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.GetTelemetryId.Invoke(); + if (telemetryId != "" && telemetryId != "internal") + { + __correlationId = telemetryId; + } + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + + } + + /// + /// Intializes a new instance of the cmdlet class. + /// + public GetAzEventGridPrivateEndpointConnection_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.EventGrid.Runtime.IEventListener.Signal(string id, global::System.Threading.CancellationToken token, global::System.Func messageData) + { + using( NoSynchronizationContext ) + { + if (token.IsCancellationRequested) + { + return ; + } + + switch ( id ) + { + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Information: + { + var data = messageData(); + WriteInformation(data.Message, new string[]{}); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Error: + { + WriteError(new global::System.Management.Automation.ErrorRecord( new global::System.Exception(messageData().Message), string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null ) ); + return ; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.EventData ), InvocationInformation, this.ParameterSetName, __correlationId, __processRecordId, null ); + if (token.IsCancellationRequested) + { + return ; + } + WriteDebug($"{id}: {(messageData().Message ?? global::System.String.Empty)}"); + } + } + + /// Performs execution of the command. + protected override void ProcessRecord() + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + using( var asyncCommandRuntime = new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token); + } + } + catch (global::System.AggregateException aggregateException) + { + // unroll the inner exceptions to get the root cause + foreach( var innerException in aggregateException.Flatten().InnerExceptions ) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(innerException,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + } + catch (global::System.Exception exception) when ((exception as System.Management.Automation.PipelineStoppedException)== null || (exception as System.Management.Automation.PipelineStoppedException).InnerException != null) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(exception,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + finally + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletProcessRecordEnd).Wait(); + } + } + + /// Performs execution of the command, working asynchronously if required. + /// + /// A that will be complete when handling of the method is completed. + /// + protected async global::System.Threading.Tasks.Task ProcessRecordAsync() + { + using( NoSynchronizationContext ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + foreach( var SubscriptionId in this.SubscriptionId ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await this.Client.PrivateEndpointConnectionsListByResource(SubscriptionId, ResourceGroupName, ParentType, ParentName, this.InvocationInformation.BoundParameters.ContainsKey("Filter") ? Filter : null, this.InvocationInformation.BoundParameters.ContainsKey("Top") ? Top : default(int?), onOk, onDefault, this, Pipeline); + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.UndeclaredResponseException urexception) + { + WriteError(new global::System.Management.Automation.ErrorRecord(urexception, urexception.StatusCode.ToString(), global::System.Management.Automation.ErrorCategory.InvalidOperation, new { SubscriptionId=SubscriptionId,ResourceGroupName=ResourceGroupName,ParentType=ParentType,ParentName=ParentName,Filter=this.InvocationInformation.BoundParameters.ContainsKey("Filter") ? Filter : null,Top=this.InvocationInformation.BoundParameters.ContainsKey("Top") ? Top : default(int?)}) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(urexception.Message) { RecommendedAction = urexception.Action } + }); + } + finally + { + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Cancel(); + base.StopProcessing(); + } + + /// + /// a delegate that is called when the remote service returns default (any response code not handled elsewhere). + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onDefault(global::System.Net.Http.HttpResponseMessage responseMessage) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnDefault(responseMessage, ref _returnNow); + // if overrideOnDefault has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // Error Response : default + // Unrecognized Response. Create an error record based on what we have. + var ex = new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.RestException(responseMessage); + WriteError( new global::System.Management.Automation.ErrorRecord(ex, ex.Code, global::System.Management.Automation.ErrorCategory.InvalidOperation, new { SubscriptionId=SubscriptionId, ResourceGroupName=ResourceGroupName, ParentType=ParentType, ParentName=ParentName, Filter=this.InvocationInformation.BoundParameters.ContainsKey("Filter") ? Filter : null, Top=this.InvocationInformation.BoundParameters.ContainsKey("Top") ? Top : default(int?) }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(ex.Message) { RecommendedAction = ex.Action } + }); + } + } + + /// a delegate that is called when the remote service returns 200 (OK). + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnOk(responseMessage, response, ref _returnNow); + // if overrideOnOk has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // onOk - response for 200 / application/json + // response should be returning an array of some kind. +Pageable + // pageable / value / nextLink + var result = await response; + WriteObject(result.Value,true); + _nextLink = result.NextLink; + if (_isFirst) + { + _isFirst = false; + while (_nextLink != null) + { + if (responseMessage.RequestMessage is System.Net.Http.HttpRequestMessage requestMessage ) + { + requestMessage = requestMessage.Clone(new global::System.Uri( _nextLink ),Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Method.Get ); + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.FollowingNextLink); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await this.Client.PrivateEndpointConnectionsListByResource_Call(requestMessage, onOk, onDefault, this, Pipeline); + } + } + } + } + } + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/cmdlets/GetAzEventGridPrivateLinkResource_Get.cs b/swaggerci/eventgrid/generated/cmdlets/GetAzEventGridPrivateLinkResource_Get.cs new file mode 100644 index 000000000000..891c6a85b0d7 --- /dev/null +++ b/swaggerci/eventgrid/generated/cmdlets/GetAzEventGridPrivateLinkResource_Get.cs @@ -0,0 +1,430 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Extensions; + using System; + + /// Get properties of a private link resource. + /// + /// [OpenAPI] Get=>GET:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.EventGrid/{parentType}/{parentName}/privateLinkResources/{privateLinkResourceName}" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsCommon.Get, @"AzEventGridPrivateLinkResource_Get")] + [global::System.Management.Automation.OutputType(typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPrivateLinkResource))] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Description(@"Get properties of a private link resource.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Generated] + public partial class GetAzEventGridPrivateLinkResource_Get : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener + { + /// A unique id generatd for the this cmdlet when it is instantiated. + private string __correlationId = System.Guid.NewGuid().ToString(); + + /// A copy of the Invocation Info (necessary to allow asJob to clone this cmdlet) + private global::System.Management.Automation.InvocationInfo __invocationInfo; + + /// A unique id generatd for the this cmdlet when ProcessRecord() is called. + private string __processRecordId; + + /// + /// The for this operation. + /// + private global::System.Threading.CancellationTokenSource _cancellationTokenSource = new global::System.Threading.CancellationTokenSource(); + + /// Wait for .NET debugger to attach + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Wait for .NET debugger to attach")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.EventGridManagementClient Client => Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.ClientAPI; + + /// + /// The credentials, account, tenant, and subscription used for communication with Azure + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The credentials, account, tenant, and subscription used for communication with Azure.")] + [global::System.Management.Automation.ValidateNotNull] + [global::System.Management.Automation.Alias("AzureRMContext", "AzureCredential")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Azure)] + public global::System.Management.Automation.PSObject DefaultProfile { get; set; } + + /// SendAsync Pipeline Steps to be appended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be appended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[] HttpPipelineAppend { get; set; } + + /// SendAsync Pipeline Steps to be prepended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be prepended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[] HttpPipelinePrepend { get; set; } + + /// Accessor for our copy of the InvocationInfo. + public global::System.Management.Automation.InvocationInfo InvocationInformation { get => __invocationInfo = __invocationInfo ?? this.MyInvocation ; set { __invocationInfo = value; } } + + /// + /// cancellation delegate. Stops the cmdlet when called. + /// + global::System.Action Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener.Token => _cancellationTokenSource.Token; + + /// Backing field for property. + private string _name; + + /// The name of private link resource. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of private link resource.")] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of private link resource.", + SerializedName = @"privateLinkResourceName", + PossibleTypes = new [] { typeof(string) })] + [global::System.Management.Automation.Alias("PrivateLinkResourceName")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Path)] + public string Name { get => this._name; set => this._name = value; } + + /// Backing field for property. + private string _parentName; + + /// + /// The name of the parent resource (namely, either, the topic name, domain name, or partner namespace name). + /// + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the parent resource (namely, either, the topic name, domain name, or partner namespace name).")] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the parent resource (namely, either, the topic name, domain name, or partner namespace name).", + SerializedName = @"parentName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Path)] + public string ParentName { get => this._parentName; set => this._parentName = value; } + + /// Backing field for property. + private string _parentType; + + /// + /// The type of the parent resource. This can be either \'topics\', \'domains\', or \'partnerNamespaces\'. + /// + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The type of the parent resource. This can be either \\'topics\\', \\'domains\\', or \\'partnerNamespaces\\'.")] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The type of the parent resource. This can be either \'topics\', \'domains\', or \'partnerNamespaces\'.", + SerializedName = @"parentType", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Path)] + public string ParentType { get => this._parentType; set => this._parentType = 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.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Runtime.HttpPipeline Pipeline { get; set; } + + /// The URI for the proxy server to use + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "The URI for the proxy server to use")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Uri Proxy { get; set; } + + /// Credentials for a proxy server to use for the remote call + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Credentials for a proxy server to use for the remote call")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Management.Automation.PSCredential ProxyCredential { get; set; } + + /// Use the default credentials for the proxy + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Use the default credentials for the proxy")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter ProxyUseDefaultCredentials { get; set; } + + /// Backing field for property. + private string _resourceGroupName; + + /// The name of the resource group within the user's subscription. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the resource group within the user's subscription.")] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the resource group within the user's subscription.", + SerializedName = @"resourceGroupName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Path)] + public string ResourceGroupName { get => this._resourceGroupName; set => this._resourceGroupName = value; } + + /// Backing field for property. + private string[] _subscriptionId; + + /// + /// Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription ID forms part of the + /// URI for every service call. + /// + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.")] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.", + SerializedName = @"subscriptionId", + PossibleTypes = new [] { typeof(string) })] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.DefaultInfo( + Name = @"", + Description =@"", + Script = @"(Get-AzContext).Subscription.Id")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Path)] + public string[] SubscriptionId { get => this._subscriptionId; set => this._subscriptionId = value; } + + /// + /// overrideOnDefault will be called before the regular onDefault has been processed, allowing customization of what + /// happens on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// /// Determines if the rest of the onDefault method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnDefault(global::System.Net.Http.HttpResponseMessage responseMessage, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnOk will be called before the regular onOk has been processed, allowing customization of what happens + /// on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// 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() + { + var telemetryId = Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.GetTelemetryId.Invoke(); + if (telemetryId != "" && telemetryId != "internal") + { + __correlationId = telemetryId; + } + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + + } + + /// + /// Intializes a new instance of the cmdlet class. + /// + public GetAzEventGridPrivateLinkResource_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.EventGrid.Runtime.IEventListener.Signal(string id, global::System.Threading.CancellationToken token, global::System.Func messageData) + { + using( NoSynchronizationContext ) + { + if (token.IsCancellationRequested) + { + return ; + } + + switch ( id ) + { + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Information: + { + var data = messageData(); + WriteInformation(data.Message, new string[]{}); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Error: + { + WriteError(new global::System.Management.Automation.ErrorRecord( new global::System.Exception(messageData().Message), string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null ) ); + return ; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.EventData ), InvocationInformation, this.ParameterSetName, __correlationId, __processRecordId, null ); + if (token.IsCancellationRequested) + { + return ; + } + WriteDebug($"{id}: {(messageData().Message ?? global::System.String.Empty)}"); + } + } + + /// Performs execution of the command. + protected override void ProcessRecord() + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + using( var asyncCommandRuntime = new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token); + } + } + catch (global::System.AggregateException aggregateException) + { + // unroll the inner exceptions to get the root cause + foreach( var innerException in aggregateException.Flatten().InnerExceptions ) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(innerException,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + } + catch (global::System.Exception exception) when ((exception as System.Management.Automation.PipelineStoppedException)== null || (exception as System.Management.Automation.PipelineStoppedException).InnerException != null) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(exception,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + finally + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletProcessRecordEnd).Wait(); + } + } + + /// Performs execution of the command, working asynchronously if required. + /// + /// A that will be complete when handling of the method is completed. + /// + protected async global::System.Threading.Tasks.Task ProcessRecordAsync() + { + using( NoSynchronizationContext ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + foreach( var SubscriptionId in this.SubscriptionId ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await this.Client.PrivateLinkResourcesGet(SubscriptionId, ResourceGroupName, ParentType, ParentName, Name, onOk, onDefault, this, Pipeline); + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.UndeclaredResponseException urexception) + { + WriteError(new global::System.Management.Automation.ErrorRecord(urexception, urexception.StatusCode.ToString(), global::System.Management.Automation.ErrorCategory.InvalidOperation, new { SubscriptionId=SubscriptionId,ResourceGroupName=ResourceGroupName,ParentType=ParentType,ParentName=ParentName,Name=Name}) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(urexception.Message) { RecommendedAction = urexception.Action } + }); + } + finally + { + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Cancel(); + base.StopProcessing(); + } + + /// + /// a delegate that is called when the remote service returns default (any response code not handled elsewhere). + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onDefault(global::System.Net.Http.HttpResponseMessage responseMessage) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnDefault(responseMessage, ref _returnNow); + // if overrideOnDefault has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // Error Response : default + // Unrecognized Response. Create an error record based on what we have. + var ex = new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.RestException(responseMessage); + WriteError( new global::System.Management.Automation.ErrorRecord(ex, ex.Code, global::System.Management.Automation.ErrorCategory.InvalidOperation, new { SubscriptionId=SubscriptionId, ResourceGroupName=ResourceGroupName, ParentType=ParentType, ParentName=ParentName, Name=Name }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(ex.Message) { RecommendedAction = ex.Action } + }); + } + } + + /// a delegate that is called when the remote service returns 200 (OK). + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as 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.EventGrid.Models.Api20211015Preview.IPrivateLinkResource + WriteObject((await response)); + } + } + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/cmdlets/GetAzEventGridPrivateLinkResource_GetViaIdentity.cs b/swaggerci/eventgrid/generated/cmdlets/GetAzEventGridPrivateLinkResource_GetViaIdentity.cs new file mode 100644 index 000000000000..dabc2d1a433e --- /dev/null +++ b/swaggerci/eventgrid/generated/cmdlets/GetAzEventGridPrivateLinkResource_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.EventGrid.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Extensions; + using System; + + /// Get properties of a private link resource. + /// + /// [OpenAPI] Get=>GET:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.EventGrid/{parentType}/{parentName}/privateLinkResources/{privateLinkResourceName}" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsCommon.Get, @"AzEventGridPrivateLinkResource_GetViaIdentity")] + [global::System.Management.Automation.OutputType(typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPrivateLinkResource))] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Description(@"Get properties of a private link resource.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Generated] + public partial class GetAzEventGridPrivateLinkResource_GetViaIdentity : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener + { + /// A unique id generatd for the this cmdlet when it is instantiated. + private string __correlationId = System.Guid.NewGuid().ToString(); + + /// A copy of the Invocation Info (necessary to allow asJob to clone this cmdlet) + private global::System.Management.Automation.InvocationInfo __invocationInfo; + + /// A unique id generatd for the this cmdlet when ProcessRecord() is called. + private string __processRecordId; + + /// + /// The for this operation. + /// + private global::System.Threading.CancellationTokenSource _cancellationTokenSource = new global::System.Threading.CancellationTokenSource(); + + /// Wait for .NET debugger to attach + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Wait for .NET debugger to attach")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.EventGridManagementClient Client => Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.ClientAPI; + + /// + /// The credentials, account, tenant, and subscription used for communication with Azure + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The credentials, account, tenant, and subscription used for communication with Azure.")] + [global::System.Management.Automation.ValidateNotNull] + [global::System.Management.Automation.Alias("AzureRMContext", "AzureCredential")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Azure)] + public global::System.Management.Automation.PSObject DefaultProfile { get; set; } + + /// SendAsync Pipeline Steps to be appended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be appended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[] HttpPipelineAppend { get; set; } + + /// SendAsync Pipeline Steps to be prepended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be prepended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[] HttpPipelinePrepend { get; set; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.IEventGridIdentity _inputObject; + + /// Identity Parameter + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Identity Parameter", ValueFromPipeline = true)] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Path)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.IEventGridIdentity InputObject { get => this._inputObject; set => this._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.EventGrid.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Runtime.HttpPipeline Pipeline { get; set; } + + /// The URI for the proxy server to use + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "The URI for the proxy server to use")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Uri Proxy { get; set; } + + /// Credentials for a proxy server to use for the remote call + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Credentials for a proxy server to use for the remote call")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Management.Automation.PSCredential ProxyCredential { get; set; } + + /// Use the default credentials for the proxy + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Use the default credentials for the proxy")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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. + /// /// Determines if the rest of the onDefault method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnDefault(global::System.Net.Http.HttpResponseMessage responseMessage, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnOk will be called before the regular onOk has been processed, allowing customization of what happens + /// on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// 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() + { + var telemetryId = Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.GetTelemetryId.Invoke(); + if (telemetryId != "" && telemetryId != "internal") + { + __correlationId = telemetryId; + } + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + + } + + /// + /// Intializes a new instance of the cmdlet class. + /// + public GetAzEventGridPrivateLinkResource_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.EventGrid.Runtime.IEventListener.Signal(string id, global::System.Threading.CancellationToken token, global::System.Func messageData) + { + using( NoSynchronizationContext ) + { + if (token.IsCancellationRequested) + { + return ; + } + + switch ( id ) + { + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Information: + { + var data = messageData(); + WriteInformation(data.Message, new string[]{}); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Error: + { + WriteError(new global::System.Management.Automation.ErrorRecord( new global::System.Exception(messageData().Message), string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null ) ); + return ; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.EventData ), InvocationInformation, this.ParameterSetName, __correlationId, __processRecordId, null ); + if (token.IsCancellationRequested) + { + return ; + } + WriteDebug($"{id}: {(messageData().Message ?? global::System.String.Empty)}"); + } + } + + /// Performs execution of the command. + protected override void ProcessRecord() + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + using( var asyncCommandRuntime = new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token); + } + } + catch (global::System.AggregateException aggregateException) + { + // unroll the inner exceptions to get the root cause + foreach( var innerException in aggregateException.Flatten().InnerExceptions ) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(innerException,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + } + catch (global::System.Exception exception) when ((exception as System.Management.Automation.PipelineStoppedException)== null || (exception as System.Management.Automation.PipelineStoppedException).InnerException != null) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(exception,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + finally + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletProcessRecordEnd).Wait(); + } + } + + /// Performs execution of the command, working asynchronously if required. + /// + /// A that will be complete when handling of the method is completed. + /// + protected async global::System.Threading.Tasks.Task ProcessRecordAsync() + { + using( NoSynchronizationContext ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + if (InputObject?.Id != null) + { + await this.Client.PrivateLinkResourcesGetViaIdentity(InputObject.Id, onOk, onDefault, this, Pipeline); + } + else + { + // try to call with PATH parameters from Input Object + if (null == InputObject.SubscriptionId) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.SubscriptionId"),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, InputObject) ); + } + if (null == InputObject.ResourceGroupName) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.ResourceGroupName"),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, InputObject) ); + } + if (null == InputObject.ParentType) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.ParentType"),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, InputObject) ); + } + if (null == InputObject.ParentName) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.ParentName"),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, InputObject) ); + } + if (null == InputObject.PrivateLinkResourceName) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.PrivateLinkResourceName"),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, InputObject) ); + } + await this.Client.PrivateLinkResourcesGet(InputObject.SubscriptionId ?? null, InputObject.ResourceGroupName ?? null, InputObject.ParentType ?? ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.ParentType)""), InputObject.ParentName ?? null, InputObject.PrivateLinkResourceName ?? null, onOk, onDefault, this, Pipeline); + } + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Cancel(); + base.StopProcessing(); + } + + /// + /// a delegate that is called when the remote service returns default (any response code not handled elsewhere). + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onDefault(global::System.Net.Http.HttpResponseMessage responseMessage) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnDefault(responseMessage, ref _returnNow); + // if overrideOnDefault has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // Error Response : default + // Unrecognized Response. Create an error record based on what we have. + var ex = new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.RestException(responseMessage); + WriteError( new global::System.Management.Automation.ErrorRecord(ex, ex.Code, global::System.Management.Automation.ErrorCategory.InvalidOperation, new { }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(ex.Message) { RecommendedAction = ex.Action } + }); + } + } + + /// a delegate that is called when the remote service returns 200 (OK). + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as 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.EventGrid.Models.Api20211015Preview.IPrivateLinkResource + WriteObject((await response)); + } + } + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/cmdlets/GetAzEventGridPrivateLinkResource_List.cs b/swaggerci/eventgrid/generated/cmdlets/GetAzEventGridPrivateLinkResource_List.cs new file mode 100644 index 000000000000..ecd41c8650b4 --- /dev/null +++ b/swaggerci/eventgrid/generated/cmdlets/GetAzEventGridPrivateLinkResource_List.cs @@ -0,0 +1,476 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Extensions; + using System; + + /// + /// List all the private link resources under a topic, domain, or partner namespace. + /// + /// + /// [OpenAPI] ListByResource=>GET:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.EventGrid/{parentType}/{parentName}/privateLinkResources" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsCommon.Get, @"AzEventGridPrivateLinkResource_List")] + [global::System.Management.Automation.OutputType(typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPrivateLinkResource))] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Description(@"List all the private link resources under a topic, domain, or partner namespace.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Generated] + public partial class GetAzEventGridPrivateLinkResource_List : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener + { + /// A unique id generatd for the this cmdlet when it is instantiated. + private string __correlationId = System.Guid.NewGuid().ToString(); + + /// A copy of the Invocation Info (necessary to allow asJob to clone this cmdlet) + private global::System.Management.Automation.InvocationInfo __invocationInfo; + + /// A unique id generatd for the this cmdlet when ProcessRecord() is called. + private string __processRecordId; + + /// + /// The for this operation. + /// + private global::System.Threading.CancellationTokenSource _cancellationTokenSource = new global::System.Threading.CancellationTokenSource(); + + /// A flag to tell whether it is the first onOK call. + private bool _isFirst = true; + + /// Link to retrieve next page. + private string _nextLink; + + /// Wait for .NET debugger to attach + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Wait for .NET debugger to attach")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.EventGridManagementClient Client => Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.ClientAPI; + + /// + /// The credentials, account, tenant, and subscription used for communication with Azure + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The credentials, account, tenant, and subscription used for communication with Azure.")] + [global::System.Management.Automation.ValidateNotNull] + [global::System.Management.Automation.Alias("AzureRMContext", "AzureCredential")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Azure)] + public global::System.Management.Automation.PSObject DefaultProfile { get; set; } + + /// Backing field for property. + private string _filter; + + /// + /// The query used to filter the search results using OData syntax. Filtering is permitted on the 'name' property only and + /// with limited number of OData operations. These operations are: the 'contains' function as well as the following logical + /// operations: not, and, or, eq (for equal), and ne (for not equal). No arithmetic operations are supported. The following + /// is a valid filter example: $filter=contains(namE, 'PATTERN') and name ne 'PATTERN-1'. The following is not a valid filter + /// example: $filter=location eq 'westus'. + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The query used to filter the search results using OData syntax. Filtering is permitted on the 'name' property only and with limited number of OData operations. These operations are: the 'contains' function as well as the following logical operations: not, and, or, eq (for equal), and ne (for not equal). No arithmetic operations are supported. The following is a valid filter example: $filter=contains(namE, 'PATTERN') and name ne 'PATTERN-1'. The following is not a valid filter example: $filter=location eq 'westus'.")] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The query used to filter the search results using OData syntax. Filtering is permitted on the 'name' property only and with limited number of OData operations. These operations are: the 'contains' function as well as the following logical operations: not, and, or, eq (for equal), and ne (for not equal). No arithmetic operations are supported. The following is a valid filter example: $filter=contains(namE, 'PATTERN') and name ne 'PATTERN-1'. The following is not a valid filter example: $filter=location eq 'westus'.", + SerializedName = @"$filter", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[] HttpPipelineAppend { get; set; } + + /// SendAsync Pipeline Steps to be prepended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be prepended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[] HttpPipelinePrepend { get; set; } + + /// Accessor for our copy of the InvocationInfo. + public global::System.Management.Automation.InvocationInfo InvocationInformation { get => __invocationInfo = __invocationInfo ?? this.MyInvocation ; set { __invocationInfo = value; } } + + /// + /// cancellation delegate. Stops the cmdlet when called. + /// + global::System.Action Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener.Token => _cancellationTokenSource.Token; + + /// Backing field for property. + private string _parentName; + + /// + /// The name of the parent resource (namely, either, the topic name, domain name, or partner namespace name). + /// + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the parent resource (namely, either, the topic name, domain name, or partner namespace name).")] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the parent resource (namely, either, the topic name, domain name, or partner namespace name).", + SerializedName = @"parentName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Path)] + public string ParentName { get => this._parentName; set => this._parentName = value; } + + /// Backing field for property. + private string _parentType; + + /// + /// The type of the parent resource. This can be either \'topics\', \'domains\', or \'partnerNamespaces\'. + /// + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The type of the parent resource. This can be either \\'topics\\', \\'domains\\', or \\'partnerNamespaces\\'.")] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The type of the parent resource. This can be either \'topics\', \'domains\', or \'partnerNamespaces\'.", + SerializedName = @"parentType", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Path)] + public string ParentType { get => this._parentType; set => this._parentType = 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.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Runtime.HttpPipeline Pipeline { get; set; } + + /// The URI for the proxy server to use + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "The URI for the proxy server to use")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Uri Proxy { get; set; } + + /// Credentials for a proxy server to use for the remote call + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Credentials for a proxy server to use for the remote call")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Management.Automation.PSCredential ProxyCredential { get; set; } + + /// Use the default credentials for the proxy + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Use the default credentials for the proxy")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter ProxyUseDefaultCredentials { get; set; } + + /// Backing field for property. + private string _resourceGroupName; + + /// The name of the resource group within the user's subscription. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the resource group within the user's subscription.")] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the resource group within the user's subscription.", + SerializedName = @"resourceGroupName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Path)] + public string ResourceGroupName { get => this._resourceGroupName; set => this._resourceGroupName = value; } + + /// Backing field for property. + private string[] _subscriptionId; + + /// + /// Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription ID forms part of the + /// URI for every service call. + /// + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.")] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.", + SerializedName = @"subscriptionId", + PossibleTypes = new [] { typeof(string) })] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.DefaultInfo( + Name = @"", + Description =@"", + Script = @"(Get-AzContext).Subscription.Id")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Path)] + public string[] SubscriptionId { get => this._subscriptionId; set => this._subscriptionId = value; } + + /// Backing field for property. + private int _top; + + /// + /// The number of results to return per page for the list operation. Valid range for top parameter is 1 to 100. If not specified, + /// the default number of results to be returned is 20 items per page. + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The number of results to return per page for the list operation. Valid range for top parameter is 1 to 100. If not specified, the default number of results to be returned is 20 items per page.")] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The number of results to return per page for the list operation. Valid range for top parameter is 1 to 100. If not specified, the default number of results to be returned is 20 items per page.", + SerializedName = @"$top", + PossibleTypes = new [] { typeof(int) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Query)] + public int Top { get => this._top; set => this._top = value; } + + /// + /// overrideOnDefault will be called before the regular onDefault has been processed, allowing customization of what + /// happens on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// /// Determines if the rest of the onDefault method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnDefault(global::System.Net.Http.HttpResponseMessage responseMessage, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnOk will be called before the regular onOk has been processed, allowing customization of what happens + /// on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// 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() + { + var telemetryId = Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.GetTelemetryId.Invoke(); + if (telemetryId != "" && telemetryId != "internal") + { + __correlationId = telemetryId; + } + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + + } + + /// + /// Intializes a new instance of the cmdlet class. + /// + public GetAzEventGridPrivateLinkResource_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.EventGrid.Runtime.IEventListener.Signal(string id, global::System.Threading.CancellationToken token, global::System.Func messageData) + { + using( NoSynchronizationContext ) + { + if (token.IsCancellationRequested) + { + return ; + } + + switch ( id ) + { + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Information: + { + var data = messageData(); + WriteInformation(data.Message, new string[]{}); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Error: + { + WriteError(new global::System.Management.Automation.ErrorRecord( new global::System.Exception(messageData().Message), string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null ) ); + return ; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.EventData ), InvocationInformation, this.ParameterSetName, __correlationId, __processRecordId, null ); + if (token.IsCancellationRequested) + { + return ; + } + WriteDebug($"{id}: {(messageData().Message ?? global::System.String.Empty)}"); + } + } + + /// Performs execution of the command. + protected override void ProcessRecord() + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + using( var asyncCommandRuntime = new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token); + } + } + catch (global::System.AggregateException aggregateException) + { + // unroll the inner exceptions to get the root cause + foreach( var innerException in aggregateException.Flatten().InnerExceptions ) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(innerException,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + } + catch (global::System.Exception exception) when ((exception as System.Management.Automation.PipelineStoppedException)== null || (exception as System.Management.Automation.PipelineStoppedException).InnerException != null) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(exception,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + finally + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletProcessRecordEnd).Wait(); + } + } + + /// Performs execution of the command, working asynchronously if required. + /// + /// A that will be complete when handling of the method is completed. + /// + protected async global::System.Threading.Tasks.Task ProcessRecordAsync() + { + using( NoSynchronizationContext ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + foreach( var SubscriptionId in this.SubscriptionId ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await this.Client.PrivateLinkResourcesListByResource(SubscriptionId, ResourceGroupName, ParentType, ParentName, this.InvocationInformation.BoundParameters.ContainsKey("Filter") ? Filter : null, this.InvocationInformation.BoundParameters.ContainsKey("Top") ? Top : default(int?), onOk, onDefault, this, Pipeline); + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.UndeclaredResponseException urexception) + { + WriteError(new global::System.Management.Automation.ErrorRecord(urexception, urexception.StatusCode.ToString(), global::System.Management.Automation.ErrorCategory.InvalidOperation, new { SubscriptionId=SubscriptionId,ResourceGroupName=ResourceGroupName,ParentType=ParentType,ParentName=ParentName,Filter=this.InvocationInformation.BoundParameters.ContainsKey("Filter") ? Filter : null,Top=this.InvocationInformation.BoundParameters.ContainsKey("Top") ? Top : default(int?)}) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(urexception.Message) { RecommendedAction = urexception.Action } + }); + } + finally + { + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Cancel(); + base.StopProcessing(); + } + + /// + /// a delegate that is called when the remote service returns default (any response code not handled elsewhere). + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onDefault(global::System.Net.Http.HttpResponseMessage responseMessage) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnDefault(responseMessage, ref _returnNow); + // if overrideOnDefault has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // Error Response : default + // Unrecognized Response. Create an error record based on what we have. + var ex = new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.RestException(responseMessage); + WriteError( new global::System.Management.Automation.ErrorRecord(ex, ex.Code, global::System.Management.Automation.ErrorCategory.InvalidOperation, new { SubscriptionId=SubscriptionId, ResourceGroupName=ResourceGroupName, ParentType=ParentType, ParentName=ParentName, Filter=this.InvocationInformation.BoundParameters.ContainsKey("Filter") ? Filter : null, Top=this.InvocationInformation.BoundParameters.ContainsKey("Top") ? Top : default(int?) }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(ex.Message) { RecommendedAction = ex.Action } + }); + } + } + + /// a delegate that is called when the remote service returns 200 (OK). + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnOk(responseMessage, response, ref _returnNow); + // if overrideOnOk has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // onOk - response for 200 / application/json + // response should be returning an array of some kind. +Pageable + // pageable / value / nextLink + var result = await response; + WriteObject(result.Value,true); + _nextLink = result.NextLink; + if (_isFirst) + { + _isFirst = false; + while (_nextLink != null) + { + if (responseMessage.RequestMessage is System.Net.Http.HttpRequestMessage requestMessage ) + { + requestMessage = requestMessage.Clone(new global::System.Uri( _nextLink ),Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Method.Get ); + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.FollowingNextLink); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await this.Client.PrivateLinkResourcesListByResource_Call(requestMessage, onOk, onDefault, this, Pipeline); + } + } + } + } + } + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/cmdlets/GetAzEventGridSystemTopicEventSubscriptionDeliveryAttribute_Get.cs b/swaggerci/eventgrid/generated/cmdlets/GetAzEventGridSystemTopicEventSubscriptionDeliveryAttribute_Get.cs new file mode 100644 index 000000000000..6158a904dba6 --- /dev/null +++ b/swaggerci/eventgrid/generated/cmdlets/GetAzEventGridSystemTopicEventSubscriptionDeliveryAttribute_Get.cs @@ -0,0 +1,419 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Extensions; + using System; + + /// Get all delivery attributes for an event subscription. + /// + /// [OpenAPI] GetDeliveryAttributes=>POST:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.EventGrid/systemTopics/{systemTopicName}/eventSubscriptions/{eventSubscriptionName}/getDeliveryAttributes" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsCommon.Get, @"AzEventGridSystemTopicEventSubscriptionDeliveryAttribute_Get", SupportsShouldProcess = true)] + [global::System.Management.Automation.OutputType(typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDeliveryAttributeMapping))] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Description(@"Get all delivery attributes for an event subscription.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Generated] + public partial class GetAzEventGridSystemTopicEventSubscriptionDeliveryAttribute_Get : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener + { + /// A unique id generatd for the this cmdlet when it is instantiated. + private string __correlationId = System.Guid.NewGuid().ToString(); + + /// A copy of the Invocation Info (necessary to allow asJob to clone this cmdlet) + private global::System.Management.Automation.InvocationInfo __invocationInfo; + + /// A unique id generatd for the this cmdlet when ProcessRecord() is called. + private string __processRecordId; + + /// + /// The for this operation. + /// + private global::System.Threading.CancellationTokenSource _cancellationTokenSource = new global::System.Threading.CancellationTokenSource(); + + /// Wait for .NET debugger to attach + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Wait for .NET debugger to attach")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.EventGridManagementClient Client => Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.ClientAPI; + + /// + /// The credentials, account, tenant, and subscription used for communication with Azure + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The credentials, account, tenant, and subscription used for communication with Azure.")] + [global::System.Management.Automation.ValidateNotNull] + [global::System.Management.Automation.Alias("AzureRMContext", "AzureCredential")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Azure)] + public global::System.Management.Automation.PSObject DefaultProfile { get; set; } + + /// Backing field for property. + private string _eventSubscriptionName; + + /// + /// Name of the event subscription to be created. Event subscription names must be between 3 and 100 characters in length + /// and use alphanumeric letters only. + /// + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Name of the event subscription to be created. Event subscription names must be between 3 and 100 characters in length and use alphanumeric letters only.")] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Name of the event subscription to be created. Event subscription names must be between 3 and 100 characters in length and use alphanumeric letters only.", + SerializedName = @"eventSubscriptionName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Path)] + public string EventSubscriptionName { get => this._eventSubscriptionName; set => this._eventSubscriptionName = 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.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[] HttpPipelineAppend { get; set; } + + /// SendAsync Pipeline Steps to be prepended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be prepended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[] HttpPipelinePrepend { get; set; } + + /// Accessor for our copy of the InvocationInfo. + public global::System.Management.Automation.InvocationInfo InvocationInformation { get => __invocationInfo = __invocationInfo ?? this.MyInvocation ; set { __invocationInfo = value; } } + + /// + /// cancellation delegate. Stops the cmdlet when called. + /// + global::System.Action Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Runtime.HttpPipeline Pipeline { get; set; } + + /// The URI for the proxy server to use + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "The URI for the proxy server to use")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Uri Proxy { get; set; } + + /// Credentials for a proxy server to use for the remote call + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Credentials for a proxy server to use for the remote call")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Management.Automation.PSCredential ProxyCredential { get; set; } + + /// Use the default credentials for the proxy + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Use the default credentials for the proxy")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter ProxyUseDefaultCredentials { get; set; } + + /// Backing field for property. + private string _resourceGroupName; + + /// The name of the resource group within the user's subscription. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the resource group within the user's subscription.")] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the resource group within the user's subscription.", + SerializedName = @"resourceGroupName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Path)] + public string ResourceGroupName { get => this._resourceGroupName; set => this._resourceGroupName = value; } + + /// Backing field for property. + private string[] _subscriptionId; + + /// + /// Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription ID forms part of the + /// URI for every service call. + /// + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.")] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.", + SerializedName = @"subscriptionId", + PossibleTypes = new [] { typeof(string) })] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.DefaultInfo( + Name = @"", + Description =@"", + Script = @"(Get-AzContext).Subscription.Id")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Path)] + public string[] SubscriptionId { get => this._subscriptionId; set => this._subscriptionId = value; } + + /// Backing field for property. + private string _systemTopicName; + + /// Name of the system topic. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Name of the system topic.")] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Name of the system topic.", + SerializedName = @"systemTopicName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Path)] + public string SystemTopicName { get => this._systemTopicName; set => this._systemTopicName = value; } + + /// + /// overrideOnDefault will be called before the regular onDefault has been processed, allowing customization of what + /// happens on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// /// Determines if the rest of the onDefault method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnDefault(global::System.Net.Http.HttpResponseMessage responseMessage, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnOk will be called before the regular onOk has been processed, allowing customization of what happens + /// on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// 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() + { + var telemetryId = Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.GetTelemetryId.Invoke(); + if (telemetryId != "" && telemetryId != "internal") + { + __correlationId = telemetryId; + } + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + + } + + /// + /// Intializes a new instance of the cmdlet + /// class. + /// + public GetAzEventGridSystemTopicEventSubscriptionDeliveryAttribute_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.EventGrid.Runtime.IEventListener.Signal(string id, global::System.Threading.CancellationToken token, global::System.Func messageData) + { + using( NoSynchronizationContext ) + { + if (token.IsCancellationRequested) + { + return ; + } + + switch ( id ) + { + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Information: + { + var data = messageData(); + WriteInformation(data.Message, new string[]{}); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Error: + { + WriteError(new global::System.Management.Automation.ErrorRecord( new global::System.Exception(messageData().Message), string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null ) ); + return ; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.EventData ), InvocationInformation, this.ParameterSetName, __correlationId, __processRecordId, null ); + if (token.IsCancellationRequested) + { + return ; + } + WriteDebug($"{id}: {(messageData().Message ?? global::System.String.Empty)}"); + } + } + + /// Performs execution of the command. + protected override void ProcessRecord() + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + if (ShouldProcess($"Call remote 'SystemTopicEventSubscriptionsGetDeliveryAttributes' operation")) + { + using( var asyncCommandRuntime = new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token); + } + } + } + catch (global::System.AggregateException aggregateException) + { + // unroll the inner exceptions to get the root cause + foreach( var innerException in aggregateException.Flatten().InnerExceptions ) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(innerException,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + } + catch (global::System.Exception exception) when ((exception as System.Management.Automation.PipelineStoppedException)== null || (exception as System.Management.Automation.PipelineStoppedException).InnerException != null) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(exception,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + finally + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletProcessRecordEnd).Wait(); + } + } + + /// Performs execution of the command, working asynchronously if required. + /// + /// A that will be complete when handling of the method is completed. + /// + protected async global::System.Threading.Tasks.Task ProcessRecordAsync() + { + using( NoSynchronizationContext ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + foreach( var SubscriptionId in this.SubscriptionId ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await this.Client.SystemTopicEventSubscriptionsGetDeliveryAttributes(SubscriptionId, ResourceGroupName, SystemTopicName, EventSubscriptionName, onOk, onDefault, this, Pipeline); + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.UndeclaredResponseException urexception) + { + WriteError(new global::System.Management.Automation.ErrorRecord(urexception, urexception.StatusCode.ToString(), global::System.Management.Automation.ErrorCategory.InvalidOperation, new { SubscriptionId=SubscriptionId,ResourceGroupName=ResourceGroupName,SystemTopicName=SystemTopicName,EventSubscriptionName=EventSubscriptionName}) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(urexception.Message) { RecommendedAction = urexception.Action } + }); + } + finally + { + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Cancel(); + base.StopProcessing(); + } + + /// + /// a delegate that is called when the remote service returns default (any response code not handled elsewhere). + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onDefault(global::System.Net.Http.HttpResponseMessage responseMessage) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnDefault(responseMessage, ref _returnNow); + // if overrideOnDefault has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // Error Response : default + // Unrecognized Response. Create an error record based on what we have. + var ex = new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.RestException(responseMessage); + WriteError( new global::System.Management.Automation.ErrorRecord(ex, ex.Code, global::System.Management.Automation.ErrorCategory.InvalidOperation, new { SubscriptionId=SubscriptionId, ResourceGroupName=ResourceGroupName, SystemTopicName=SystemTopicName, EventSubscriptionName=EventSubscriptionName }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(ex.Message) { RecommendedAction = ex.Action } + }); + } + } + + /// a delegate that is called when the remote service returns 200 (OK). + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnOk(responseMessage, response, ref _returnNow); + // if overrideOnOk has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // onOk - response for 200 / application/json + // response should be returning an array of some kind. +Pageable + // nested-array / value / + WriteObject((await response).Value, true); + } + } + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/cmdlets/GetAzEventGridSystemTopicEventSubscriptionDeliveryAttribute_GetViaIdentity.cs b/swaggerci/eventgrid/generated/cmdlets/GetAzEventGridSystemTopicEventSubscriptionDeliveryAttribute_GetViaIdentity.cs new file mode 100644 index 000000000000..70a731ff9736 --- /dev/null +++ b/swaggerci/eventgrid/generated/cmdlets/GetAzEventGridSystemTopicEventSubscriptionDeliveryAttribute_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.EventGrid.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Extensions; + using System; + + /// Get all delivery attributes for an event subscription. + /// + /// [OpenAPI] GetDeliveryAttributes=>POST:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.EventGrid/systemTopics/{systemTopicName}/eventSubscriptions/{eventSubscriptionName}/getDeliveryAttributes" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsCommon.Get, @"AzEventGridSystemTopicEventSubscriptionDeliveryAttribute_GetViaIdentity", SupportsShouldProcess = true)] + [global::System.Management.Automation.OutputType(typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDeliveryAttributeMapping))] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Description(@"Get all delivery attributes for an event subscription.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Generated] + public partial class GetAzEventGridSystemTopicEventSubscriptionDeliveryAttribute_GetViaIdentity : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener + { + /// A unique id generatd for the this cmdlet when it is instantiated. + private string __correlationId = System.Guid.NewGuid().ToString(); + + /// A copy of the Invocation Info (necessary to allow asJob to clone this cmdlet) + private global::System.Management.Automation.InvocationInfo __invocationInfo; + + /// A unique id generatd for the this cmdlet when ProcessRecord() is called. + private string __processRecordId; + + /// + /// The for this operation. + /// + private global::System.Threading.CancellationTokenSource _cancellationTokenSource = new global::System.Threading.CancellationTokenSource(); + + /// Wait for .NET debugger to attach + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Wait for .NET debugger to attach")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.EventGridManagementClient Client => Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.ClientAPI; + + /// + /// The credentials, account, tenant, and subscription used for communication with Azure + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The credentials, account, tenant, and subscription used for communication with Azure.")] + [global::System.Management.Automation.ValidateNotNull] + [global::System.Management.Automation.Alias("AzureRMContext", "AzureCredential")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Azure)] + public global::System.Management.Automation.PSObject DefaultProfile { get; set; } + + /// SendAsync Pipeline Steps to be appended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be appended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[] HttpPipelineAppend { get; set; } + + /// SendAsync Pipeline Steps to be prepended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be prepended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[] HttpPipelinePrepend { get; set; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.IEventGridIdentity _inputObject; + + /// Identity Parameter + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Identity Parameter", ValueFromPipeline = true)] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Path)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.IEventGridIdentity InputObject { get => this._inputObject; set => this._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.EventGrid.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Runtime.HttpPipeline Pipeline { get; set; } + + /// The URI for the proxy server to use + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "The URI for the proxy server to use")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Uri Proxy { get; set; } + + /// Credentials for a proxy server to use for the remote call + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Credentials for a proxy server to use for the remote call")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Management.Automation.PSCredential ProxyCredential { get; set; } + + /// Use the default credentials for the proxy + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Use the default credentials for the proxy")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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. + /// /// Determines if the rest of the onDefault method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnDefault(global::System.Net.Http.HttpResponseMessage responseMessage, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnOk will be called before the regular onOk has been processed, allowing customization of what happens + /// on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// 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() + { + var telemetryId = Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.GetTelemetryId.Invoke(); + if (telemetryId != "" && telemetryId != "internal") + { + __correlationId = telemetryId; + } + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + + } + + /// + /// Intializes a new instance of the cmdlet class. + /// + public GetAzEventGridSystemTopicEventSubscriptionDeliveryAttribute_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.EventGrid.Runtime.IEventListener.Signal(string id, global::System.Threading.CancellationToken token, global::System.Func messageData) + { + using( NoSynchronizationContext ) + { + if (token.IsCancellationRequested) + { + return ; + } + + switch ( id ) + { + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Information: + { + var data = messageData(); + WriteInformation(data.Message, new string[]{}); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Error: + { + WriteError(new global::System.Management.Automation.ErrorRecord( new global::System.Exception(messageData().Message), string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null ) ); + return ; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.EventData ), InvocationInformation, this.ParameterSetName, __correlationId, __processRecordId, null ); + if (token.IsCancellationRequested) + { + return ; + } + WriteDebug($"{id}: {(messageData().Message ?? global::System.String.Empty)}"); + } + } + + /// Performs execution of the command. + protected override void ProcessRecord() + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + if (ShouldProcess($"Call remote 'SystemTopicEventSubscriptionsGetDeliveryAttributes' operation")) + { + using( var asyncCommandRuntime = new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token); + } + } + } + catch (global::System.AggregateException aggregateException) + { + // unroll the inner exceptions to get the root cause + foreach( var innerException in aggregateException.Flatten().InnerExceptions ) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(innerException,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + } + catch (global::System.Exception exception) when ((exception as System.Management.Automation.PipelineStoppedException)== null || (exception as System.Management.Automation.PipelineStoppedException).InnerException != null) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(exception,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + finally + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletProcessRecordEnd).Wait(); + } + } + + /// Performs execution of the command, working asynchronously if required. + /// + /// A that will be complete when handling of the method is completed. + /// + protected async global::System.Threading.Tasks.Task ProcessRecordAsync() + { + using( NoSynchronizationContext ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + if (InputObject?.Id != null) + { + await this.Client.SystemTopicEventSubscriptionsGetDeliveryAttributesViaIdentity(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.SystemTopicName) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.SystemTopicName"),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, InputObject) ); + } + if (null == InputObject.EventSubscriptionName) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.EventSubscriptionName"),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, InputObject) ); + } + await this.Client.SystemTopicEventSubscriptionsGetDeliveryAttributes(InputObject.SubscriptionId ?? null, InputObject.ResourceGroupName ?? null, InputObject.SystemTopicName ?? null, InputObject.EventSubscriptionName ?? null, onOk, onDefault, this, Pipeline); + } + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Cancel(); + base.StopProcessing(); + } + + /// + /// a delegate that is called when the remote service returns default (any response code not handled elsewhere). + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onDefault(global::System.Net.Http.HttpResponseMessage responseMessage) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnDefault(responseMessage, ref _returnNow); + // if overrideOnDefault has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // Error Response : default + // Unrecognized Response. Create an error record based on what we have. + var ex = new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.RestException(responseMessage); + WriteError( new global::System.Management.Automation.ErrorRecord(ex, ex.Code, global::System.Management.Automation.ErrorCategory.InvalidOperation, new { }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(ex.Message) { RecommendedAction = ex.Action } + }); + } + } + + /// a delegate that is called when the remote service returns 200 (OK). + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnOk(responseMessage, response, ref _returnNow); + // if overrideOnOk has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // onOk - response for 200 / application/json + // response should be returning an array of some kind. +Pageable + // nested-array / value / + WriteObject((await response).Value, true); + } + } + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/cmdlets/GetAzEventGridSystemTopicEventSubscriptionFullUrl_Get.cs b/swaggerci/eventgrid/generated/cmdlets/GetAzEventGridSystemTopicEventSubscriptionFullUrl_Get.cs new file mode 100644 index 000000000000..2111b7149a66 --- /dev/null +++ b/swaggerci/eventgrid/generated/cmdlets/GetAzEventGridSystemTopicEventSubscriptionFullUrl_Get.cs @@ -0,0 +1,417 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Extensions; + using System; + + /// Get the full endpoint URL for an event subscription of a system topic. + /// + /// [OpenAPI] GetFullUrl=>POST:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.EventGrid/systemTopics/{systemTopicName}/eventSubscriptions/{eventSubscriptionName}/getFullUrl" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsCommon.Get, @"AzEventGridSystemTopicEventSubscriptionFullUrl_Get", SupportsShouldProcess = true)] + [global::System.Management.Automation.OutputType(typeof(string))] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Description(@"Get the full endpoint URL for an event subscription of a system topic.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Generated] + public partial class GetAzEventGridSystemTopicEventSubscriptionFullUrl_Get : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener + { + /// A unique id generatd for the this cmdlet when it is instantiated. + private string __correlationId = System.Guid.NewGuid().ToString(); + + /// A copy of the Invocation Info (necessary to allow asJob to clone this cmdlet) + private global::System.Management.Automation.InvocationInfo __invocationInfo; + + /// A unique id generatd for the this cmdlet when ProcessRecord() is called. + private string __processRecordId; + + /// + /// The for this operation. + /// + private global::System.Threading.CancellationTokenSource _cancellationTokenSource = new global::System.Threading.CancellationTokenSource(); + + /// Wait for .NET debugger to attach + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Wait for .NET debugger to attach")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.EventGridManagementClient Client => Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.ClientAPI; + + /// + /// The credentials, account, tenant, and subscription used for communication with Azure + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The credentials, account, tenant, and subscription used for communication with Azure.")] + [global::System.Management.Automation.ValidateNotNull] + [global::System.Management.Automation.Alias("AzureRMContext", "AzureCredential")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Azure)] + public global::System.Management.Automation.PSObject DefaultProfile { get; set; } + + /// Backing field for property. + private string _eventSubscriptionName; + + /// + /// Name of the event subscription to be created. Event subscription names must be between 3 and 100 characters in length + /// and use alphanumeric letters only. + /// + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Name of the event subscription to be created. Event subscription names must be between 3 and 100 characters in length and use alphanumeric letters only.")] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Name of the event subscription to be created. Event subscription names must be between 3 and 100 characters in length and use alphanumeric letters only.", + SerializedName = @"eventSubscriptionName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Path)] + public string EventSubscriptionName { get => this._eventSubscriptionName; set => this._eventSubscriptionName = 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.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[] HttpPipelineAppend { get; set; } + + /// SendAsync Pipeline Steps to be prepended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be prepended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[] HttpPipelinePrepend { get; set; } + + /// Accessor for our copy of the InvocationInfo. + public global::System.Management.Automation.InvocationInfo InvocationInformation { get => __invocationInfo = __invocationInfo ?? this.MyInvocation ; set { __invocationInfo = value; } } + + /// + /// cancellation delegate. Stops the cmdlet when called. + /// + global::System.Action Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Runtime.HttpPipeline Pipeline { get; set; } + + /// The URI for the proxy server to use + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "The URI for the proxy server to use")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Uri Proxy { get; set; } + + /// Credentials for a proxy server to use for the remote call + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Credentials for a proxy server to use for the remote call")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Management.Automation.PSCredential ProxyCredential { get; set; } + + /// Use the default credentials for the proxy + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Use the default credentials for the proxy")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter ProxyUseDefaultCredentials { get; set; } + + /// Backing field for property. + private string _resourceGroupName; + + /// The name of the resource group within the user's subscription. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the resource group within the user's subscription.")] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the resource group within the user's subscription.", + SerializedName = @"resourceGroupName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Path)] + public string ResourceGroupName { get => this._resourceGroupName; set => this._resourceGroupName = value; } + + /// Backing field for property. + private string[] _subscriptionId; + + /// + /// Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription ID forms part of the + /// URI for every service call. + /// + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.")] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.", + SerializedName = @"subscriptionId", + PossibleTypes = new [] { typeof(string) })] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.DefaultInfo( + Name = @"", + Description =@"", + Script = @"(Get-AzContext).Subscription.Id")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Path)] + public string[] SubscriptionId { get => this._subscriptionId; set => this._subscriptionId = value; } + + /// Backing field for property. + private string _systemTopicName; + + /// Name of the system topic. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Name of the system topic.")] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Name of the system topic.", + SerializedName = @"systemTopicName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Path)] + public string SystemTopicName { get => this._systemTopicName; set => this._systemTopicName = value; } + + /// + /// overrideOnDefault will be called before the regular onDefault has been processed, allowing customization of what + /// happens on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// /// Determines if the rest of the onDefault method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnDefault(global::System.Net.Http.HttpResponseMessage responseMessage, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnOk will be called before the regular onOk has been processed, allowing customization of what happens + /// on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// 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() + { + var telemetryId = Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.GetTelemetryId.Invoke(); + if (telemetryId != "" && telemetryId != "internal") + { + __correlationId = telemetryId; + } + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + + } + + /// + /// Intializes a new instance of the cmdlet class. + /// + public GetAzEventGridSystemTopicEventSubscriptionFullUrl_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.EventGrid.Runtime.IEventListener.Signal(string id, global::System.Threading.CancellationToken token, global::System.Func messageData) + { + using( NoSynchronizationContext ) + { + if (token.IsCancellationRequested) + { + return ; + } + + switch ( id ) + { + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Information: + { + var data = messageData(); + WriteInformation(data.Message, new string[]{}); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Error: + { + WriteError(new global::System.Management.Automation.ErrorRecord( new global::System.Exception(messageData().Message), string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null ) ); + return ; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.EventData ), InvocationInformation, this.ParameterSetName, __correlationId, __processRecordId, null ); + if (token.IsCancellationRequested) + { + return ; + } + WriteDebug($"{id}: {(messageData().Message ?? global::System.String.Empty)}"); + } + } + + /// Performs execution of the command. + protected override void ProcessRecord() + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + if (ShouldProcess($"Call remote 'SystemTopicEventSubscriptionsGetFullUrl' operation")) + { + using( var asyncCommandRuntime = new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token); + } + } + } + catch (global::System.AggregateException aggregateException) + { + // unroll the inner exceptions to get the root cause + foreach( var innerException in aggregateException.Flatten().InnerExceptions ) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(innerException,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + } + catch (global::System.Exception exception) when ((exception as System.Management.Automation.PipelineStoppedException)== null || (exception as System.Management.Automation.PipelineStoppedException).InnerException != null) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(exception,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + finally + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletProcessRecordEnd).Wait(); + } + } + + /// Performs execution of the command, working asynchronously if required. + /// + /// A that will be complete when handling of the method is completed. + /// + protected async global::System.Threading.Tasks.Task ProcessRecordAsync() + { + using( NoSynchronizationContext ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + foreach( var SubscriptionId in this.SubscriptionId ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await this.Client.SystemTopicEventSubscriptionsGetFullUrl(SubscriptionId, ResourceGroupName, SystemTopicName, EventSubscriptionName, onOk, onDefault, this, Pipeline); + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.UndeclaredResponseException urexception) + { + WriteError(new global::System.Management.Automation.ErrorRecord(urexception, urexception.StatusCode.ToString(), global::System.Management.Automation.ErrorCategory.InvalidOperation, new { SubscriptionId=SubscriptionId,ResourceGroupName=ResourceGroupName,SystemTopicName=SystemTopicName,EventSubscriptionName=EventSubscriptionName}) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(urexception.Message) { RecommendedAction = urexception.Action } + }); + } + finally + { + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Cancel(); + base.StopProcessing(); + } + + /// + /// a delegate that is called when the remote service returns default (any response code not handled elsewhere). + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onDefault(global::System.Net.Http.HttpResponseMessage responseMessage) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnDefault(responseMessage, ref _returnNow); + // if overrideOnDefault has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // Error Response : default + // Unrecognized Response. Create an error record based on what we have. + var ex = new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.RestException(responseMessage); + WriteError( new global::System.Management.Automation.ErrorRecord(ex, ex.Code, global::System.Management.Automation.ErrorCategory.InvalidOperation, new { SubscriptionId=SubscriptionId, ResourceGroupName=ResourceGroupName, SystemTopicName=SystemTopicName, EventSubscriptionName=EventSubscriptionName }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(ex.Message) { RecommendedAction = ex.Action } + }); + } + } + + /// a delegate that is called when the remote service returns 200 (OK). + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as 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.EventGrid.Models.Api20211015Preview.IEventSubscriptionFullUrl + WriteObject((await response).EndpointUrl); + } + } + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/cmdlets/GetAzEventGridSystemTopicEventSubscriptionFullUrl_GetViaIdentity.cs b/swaggerci/eventgrid/generated/cmdlets/GetAzEventGridSystemTopicEventSubscriptionFullUrl_GetViaIdentity.cs new file mode 100644 index 000000000000..a851d049d98f --- /dev/null +++ b/swaggerci/eventgrid/generated/cmdlets/GetAzEventGridSystemTopicEventSubscriptionFullUrl_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.EventGrid.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Extensions; + using System; + + /// Get the full endpoint URL for an event subscription of a system topic. + /// + /// [OpenAPI] GetFullUrl=>POST:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.EventGrid/systemTopics/{systemTopicName}/eventSubscriptions/{eventSubscriptionName}/getFullUrl" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsCommon.Get, @"AzEventGridSystemTopicEventSubscriptionFullUrl_GetViaIdentity", SupportsShouldProcess = true)] + [global::System.Management.Automation.OutputType(typeof(string))] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Description(@"Get the full endpoint URL for an event subscription of a system topic.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Generated] + public partial class GetAzEventGridSystemTopicEventSubscriptionFullUrl_GetViaIdentity : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener + { + /// A unique id generatd for the this cmdlet when it is instantiated. + private string __correlationId = System.Guid.NewGuid().ToString(); + + /// A copy of the Invocation Info (necessary to allow asJob to clone this cmdlet) + private global::System.Management.Automation.InvocationInfo __invocationInfo; + + /// A unique id generatd for the this cmdlet when ProcessRecord() is called. + private string __processRecordId; + + /// + /// The for this operation. + /// + private global::System.Threading.CancellationTokenSource _cancellationTokenSource = new global::System.Threading.CancellationTokenSource(); + + /// Wait for .NET debugger to attach + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Wait for .NET debugger to attach")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.EventGridManagementClient Client => Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.ClientAPI; + + /// + /// The credentials, account, tenant, and subscription used for communication with Azure + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The credentials, account, tenant, and subscription used for communication with Azure.")] + [global::System.Management.Automation.ValidateNotNull] + [global::System.Management.Automation.Alias("AzureRMContext", "AzureCredential")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Azure)] + public global::System.Management.Automation.PSObject DefaultProfile { get; set; } + + /// SendAsync Pipeline Steps to be appended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be appended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[] HttpPipelineAppend { get; set; } + + /// SendAsync Pipeline Steps to be prepended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be prepended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[] HttpPipelinePrepend { get; set; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.IEventGridIdentity _inputObject; + + /// Identity Parameter + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Identity Parameter", ValueFromPipeline = true)] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Path)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.IEventGridIdentity InputObject { get => this._inputObject; set => this._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.EventGrid.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Runtime.HttpPipeline Pipeline { get; set; } + + /// The URI for the proxy server to use + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "The URI for the proxy server to use")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Uri Proxy { get; set; } + + /// Credentials for a proxy server to use for the remote call + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Credentials for a proxy server to use for the remote call")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Management.Automation.PSCredential ProxyCredential { get; set; } + + /// Use the default credentials for the proxy + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Use the default credentials for the proxy")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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. + /// /// Determines if the rest of the onDefault method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnDefault(global::System.Net.Http.HttpResponseMessage responseMessage, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnOk will be called before the regular onOk has been processed, allowing customization of what happens + /// on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// 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() + { + var telemetryId = Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.GetTelemetryId.Invoke(); + if (telemetryId != "" && telemetryId != "internal") + { + __correlationId = telemetryId; + } + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + + } + + /// + /// Intializes a new instance of the cmdlet + /// class. + /// + public GetAzEventGridSystemTopicEventSubscriptionFullUrl_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.EventGrid.Runtime.IEventListener.Signal(string id, global::System.Threading.CancellationToken token, global::System.Func messageData) + { + using( NoSynchronizationContext ) + { + if (token.IsCancellationRequested) + { + return ; + } + + switch ( id ) + { + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Information: + { + var data = messageData(); + WriteInformation(data.Message, new string[]{}); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Error: + { + WriteError(new global::System.Management.Automation.ErrorRecord( new global::System.Exception(messageData().Message), string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null ) ); + return ; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.EventData ), InvocationInformation, this.ParameterSetName, __correlationId, __processRecordId, null ); + if (token.IsCancellationRequested) + { + return ; + } + WriteDebug($"{id}: {(messageData().Message ?? global::System.String.Empty)}"); + } + } + + /// Performs execution of the command. + protected override void ProcessRecord() + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + if (ShouldProcess($"Call remote 'SystemTopicEventSubscriptionsGetFullUrl' operation")) + { + using( var asyncCommandRuntime = new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token); + } + } + } + catch (global::System.AggregateException aggregateException) + { + // unroll the inner exceptions to get the root cause + foreach( var innerException in aggregateException.Flatten().InnerExceptions ) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(innerException,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + } + catch (global::System.Exception exception) when ((exception as System.Management.Automation.PipelineStoppedException)== null || (exception as System.Management.Automation.PipelineStoppedException).InnerException != null) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(exception,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + finally + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletProcessRecordEnd).Wait(); + } + } + + /// Performs execution of the command, working asynchronously if required. + /// + /// A that will be complete when handling of the method is completed. + /// + protected async global::System.Threading.Tasks.Task ProcessRecordAsync() + { + using( NoSynchronizationContext ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + if (InputObject?.Id != null) + { + await this.Client.SystemTopicEventSubscriptionsGetFullUrlViaIdentity(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.SystemTopicName) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.SystemTopicName"),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, InputObject) ); + } + if (null == InputObject.EventSubscriptionName) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.EventSubscriptionName"),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, InputObject) ); + } + await this.Client.SystemTopicEventSubscriptionsGetFullUrl(InputObject.SubscriptionId ?? null, InputObject.ResourceGroupName ?? null, InputObject.SystemTopicName ?? null, InputObject.EventSubscriptionName ?? null, onOk, onDefault, this, Pipeline); + } + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Cancel(); + base.StopProcessing(); + } + + /// + /// a delegate that is called when the remote service returns default (any response code not handled elsewhere). + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onDefault(global::System.Net.Http.HttpResponseMessage responseMessage) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnDefault(responseMessage, ref _returnNow); + // if overrideOnDefault has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // Error Response : default + // Unrecognized Response. Create an error record based on what we have. + var ex = new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.RestException(responseMessage); + WriteError( new global::System.Management.Automation.ErrorRecord(ex, ex.Code, global::System.Management.Automation.ErrorCategory.InvalidOperation, new { }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(ex.Message) { RecommendedAction = ex.Action } + }); + } + } + + /// a delegate that is called when the remote service returns 200 (OK). + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as 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.EventGrid.Models.Api20211015Preview.IEventSubscriptionFullUrl + WriteObject((await response).EndpointUrl); + } + } + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/cmdlets/GetAzEventGridSystemTopicEventSubscription_Get.cs b/swaggerci/eventgrid/generated/cmdlets/GetAzEventGridSystemTopicEventSubscription_Get.cs new file mode 100644 index 000000000000..d710b31eea45 --- /dev/null +++ b/swaggerci/eventgrid/generated/cmdlets/GetAzEventGridSystemTopicEventSubscription_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.EventGrid.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Extensions; + using System; + + /// Get an event subscription. + /// + /// [OpenAPI] Get=>GET:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.EventGrid/systemTopics/{systemTopicName}/eventSubscriptions/{eventSubscriptionName}" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsCommon.Get, @"AzEventGridSystemTopicEventSubscription_Get")] + [global::System.Management.Automation.OutputType(typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscription))] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Description(@"Get an event subscription.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Generated] + public partial class GetAzEventGridSystemTopicEventSubscription_Get : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener + { + /// A unique id generatd for the this cmdlet when it is instantiated. + private string __correlationId = System.Guid.NewGuid().ToString(); + + /// A copy of the Invocation Info (necessary to allow asJob to clone this cmdlet) + private global::System.Management.Automation.InvocationInfo __invocationInfo; + + /// A unique id generatd for the this cmdlet when ProcessRecord() is called. + private string __processRecordId; + + /// + /// The for this operation. + /// + private global::System.Threading.CancellationTokenSource _cancellationTokenSource = new global::System.Threading.CancellationTokenSource(); + + /// Wait for .NET debugger to attach + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Wait for .NET debugger to attach")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.EventGridManagementClient Client => Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.ClientAPI; + + /// + /// The credentials, account, tenant, and subscription used for communication with Azure + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The credentials, account, tenant, and subscription used for communication with Azure.")] + [global::System.Management.Automation.ValidateNotNull] + [global::System.Management.Automation.Alias("AzureRMContext", "AzureCredential")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Azure)] + public global::System.Management.Automation.PSObject DefaultProfile { get; set; } + + /// Backing field for property. + private string _eventSubscriptionName; + + /// + /// Name of the event subscription to be created. Event subscription names must be between 3 and 100 characters in length + /// and use alphanumeric letters only. + /// + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Name of the event subscription to be created. Event subscription names must be between 3 and 100 characters in length and use alphanumeric letters only.")] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Name of the event subscription to be created. Event subscription names must be between 3 and 100 characters in length and use alphanumeric letters only.", + SerializedName = @"eventSubscriptionName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Path)] + public string EventSubscriptionName { get => this._eventSubscriptionName; set => this._eventSubscriptionName = 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.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[] HttpPipelineAppend { get; set; } + + /// SendAsync Pipeline Steps to be prepended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be prepended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[] HttpPipelinePrepend { get; set; } + + /// Accessor for our copy of the InvocationInfo. + public global::System.Management.Automation.InvocationInfo InvocationInformation { get => __invocationInfo = __invocationInfo ?? this.MyInvocation ; set { __invocationInfo = value; } } + + /// + /// cancellation delegate. Stops the cmdlet when called. + /// + global::System.Action Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Runtime.HttpPipeline Pipeline { get; set; } + + /// The URI for the proxy server to use + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "The URI for the proxy server to use")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Uri Proxy { get; set; } + + /// Credentials for a proxy server to use for the remote call + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Credentials for a proxy server to use for the remote call")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Management.Automation.PSCredential ProxyCredential { get; set; } + + /// Use the default credentials for the proxy + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Use the default credentials for the proxy")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter ProxyUseDefaultCredentials { get; set; } + + /// Backing field for property. + private string _resourceGroupName; + + /// The name of the resource group within the user's subscription. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the resource group within the user's subscription.")] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the resource group within the user's subscription.", + SerializedName = @"resourceGroupName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Path)] + public string ResourceGroupName { get => this._resourceGroupName; set => this._resourceGroupName = value; } + + /// Backing field for property. + private string[] _subscriptionId; + + /// + /// Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription ID forms part of the + /// URI for every service call. + /// + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.")] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.", + SerializedName = @"subscriptionId", + PossibleTypes = new [] { typeof(string) })] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.DefaultInfo( + Name = @"", + Description =@"", + Script = @"(Get-AzContext).Subscription.Id")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Path)] + public string[] SubscriptionId { get => this._subscriptionId; set => this._subscriptionId = value; } + + /// Backing field for property. + private string _systemTopicName; + + /// Name of the system topic. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Name of the system topic.")] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Name of the system topic.", + SerializedName = @"systemTopicName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Path)] + public string SystemTopicName { get => this._systemTopicName; set => this._systemTopicName = value; } + + /// + /// overrideOnDefault will be called before the regular onDefault has been processed, allowing customization of what + /// happens on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// /// Determines if the rest of the onDefault method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnDefault(global::System.Net.Http.HttpResponseMessage responseMessage, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnOk will be called before the regular onOk has been processed, allowing customization of what happens + /// on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// 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() + { + var telemetryId = Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.GetTelemetryId.Invoke(); + if (telemetryId != "" && telemetryId != "internal") + { + __correlationId = telemetryId; + } + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + + } + + /// + /// Intializes a new instance of the cmdlet class. + /// + public GetAzEventGridSystemTopicEventSubscription_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.EventGrid.Runtime.IEventListener.Signal(string id, global::System.Threading.CancellationToken token, global::System.Func messageData) + { + using( NoSynchronizationContext ) + { + if (token.IsCancellationRequested) + { + return ; + } + + switch ( id ) + { + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Information: + { + var data = messageData(); + WriteInformation(data.Message, new string[]{}); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Error: + { + WriteError(new global::System.Management.Automation.ErrorRecord( new global::System.Exception(messageData().Message), string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null ) ); + return ; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.EventData ), InvocationInformation, this.ParameterSetName, __correlationId, __processRecordId, null ); + if (token.IsCancellationRequested) + { + return ; + } + WriteDebug($"{id}: {(messageData().Message ?? global::System.String.Empty)}"); + } + } + + /// Performs execution of the command. + protected override void ProcessRecord() + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + using( var asyncCommandRuntime = new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token); + } + } + catch (global::System.AggregateException aggregateException) + { + // unroll the inner exceptions to get the root cause + foreach( var innerException in aggregateException.Flatten().InnerExceptions ) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(innerException,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + } + catch (global::System.Exception exception) when ((exception as System.Management.Automation.PipelineStoppedException)== null || (exception as System.Management.Automation.PipelineStoppedException).InnerException != null) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(exception,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + finally + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletProcessRecordEnd).Wait(); + } + } + + /// Performs execution of the command, working asynchronously if required. + /// + /// A that will be complete when handling of the method is completed. + /// + protected async global::System.Threading.Tasks.Task ProcessRecordAsync() + { + using( NoSynchronizationContext ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + foreach( var SubscriptionId in this.SubscriptionId ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await this.Client.SystemTopicEventSubscriptionsGet(SubscriptionId, ResourceGroupName, SystemTopicName, EventSubscriptionName, onOk, onDefault, this, Pipeline); + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.UndeclaredResponseException urexception) + { + WriteError(new global::System.Management.Automation.ErrorRecord(urexception, urexception.StatusCode.ToString(), global::System.Management.Automation.ErrorCategory.InvalidOperation, new { SubscriptionId=SubscriptionId,ResourceGroupName=ResourceGroupName,SystemTopicName=SystemTopicName,EventSubscriptionName=EventSubscriptionName}) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(urexception.Message) { RecommendedAction = urexception.Action } + }); + } + finally + { + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Cancel(); + base.StopProcessing(); + } + + /// + /// a delegate that is called when the remote service returns default (any response code not handled elsewhere). + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onDefault(global::System.Net.Http.HttpResponseMessage responseMessage) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnDefault(responseMessage, ref _returnNow); + // if overrideOnDefault has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // Error Response : default + // Unrecognized Response. Create an error record based on what we have. + var ex = new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.RestException(responseMessage); + WriteError( new global::System.Management.Automation.ErrorRecord(ex, ex.Code, global::System.Management.Automation.ErrorCategory.InvalidOperation, new { SubscriptionId=SubscriptionId, ResourceGroupName=ResourceGroupName, SystemTopicName=SystemTopicName, EventSubscriptionName=EventSubscriptionName }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(ex.Message) { RecommendedAction = ex.Action } + }); + } + } + + /// a delegate that is called when the remote service returns 200 (OK). + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as 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.EventGrid.Models.Api20211015Preview.IEventSubscription + WriteObject((await response)); + } + } + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/cmdlets/GetAzEventGridSystemTopicEventSubscription_GetViaIdentity.cs b/swaggerci/eventgrid/generated/cmdlets/GetAzEventGridSystemTopicEventSubscription_GetViaIdentity.cs new file mode 100644 index 000000000000..97d9434f0858 --- /dev/null +++ b/swaggerci/eventgrid/generated/cmdlets/GetAzEventGridSystemTopicEventSubscription_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.EventGrid.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Extensions; + using System; + + /// Get an event subscription. + /// + /// [OpenAPI] Get=>GET:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.EventGrid/systemTopics/{systemTopicName}/eventSubscriptions/{eventSubscriptionName}" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsCommon.Get, @"AzEventGridSystemTopicEventSubscription_GetViaIdentity")] + [global::System.Management.Automation.OutputType(typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscription))] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Description(@"Get an event subscription.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Generated] + public partial class GetAzEventGridSystemTopicEventSubscription_GetViaIdentity : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener + { + /// A unique id generatd for the this cmdlet when it is instantiated. + private string __correlationId = System.Guid.NewGuid().ToString(); + + /// A copy of the Invocation Info (necessary to allow asJob to clone this cmdlet) + private global::System.Management.Automation.InvocationInfo __invocationInfo; + + /// A unique id generatd for the this cmdlet when ProcessRecord() is called. + private string __processRecordId; + + /// + /// The for this operation. + /// + private global::System.Threading.CancellationTokenSource _cancellationTokenSource = new global::System.Threading.CancellationTokenSource(); + + /// Wait for .NET debugger to attach + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Wait for .NET debugger to attach")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.EventGridManagementClient Client => Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.ClientAPI; + + /// + /// The credentials, account, tenant, and subscription used for communication with Azure + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The credentials, account, tenant, and subscription used for communication with Azure.")] + [global::System.Management.Automation.ValidateNotNull] + [global::System.Management.Automation.Alias("AzureRMContext", "AzureCredential")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Azure)] + public global::System.Management.Automation.PSObject DefaultProfile { get; set; } + + /// SendAsync Pipeline Steps to be appended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be appended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[] HttpPipelineAppend { get; set; } + + /// SendAsync Pipeline Steps to be prepended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be prepended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[] HttpPipelinePrepend { get; set; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.IEventGridIdentity _inputObject; + + /// Identity Parameter + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Identity Parameter", ValueFromPipeline = true)] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Path)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.IEventGridIdentity InputObject { get => this._inputObject; set => this._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.EventGrid.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Runtime.HttpPipeline Pipeline { get; set; } + + /// The URI for the proxy server to use + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "The URI for the proxy server to use")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Uri Proxy { get; set; } + + /// Credentials for a proxy server to use for the remote call + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Credentials for a proxy server to use for the remote call")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Management.Automation.PSCredential ProxyCredential { get; set; } + + /// Use the default credentials for the proxy + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Use the default credentials for the proxy")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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. + /// /// Determines if the rest of the onDefault method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnDefault(global::System.Net.Http.HttpResponseMessage responseMessage, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnOk will be called before the regular onOk has been processed, allowing customization of what happens + /// on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// 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() + { + var telemetryId = Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.GetTelemetryId.Invoke(); + if (telemetryId != "" && telemetryId != "internal") + { + __correlationId = telemetryId; + } + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + + } + + /// + /// Intializes a new instance of the cmdlet class. + /// + public GetAzEventGridSystemTopicEventSubscription_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.EventGrid.Runtime.IEventListener.Signal(string id, global::System.Threading.CancellationToken token, global::System.Func messageData) + { + using( NoSynchronizationContext ) + { + if (token.IsCancellationRequested) + { + return ; + } + + switch ( id ) + { + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Information: + { + var data = messageData(); + WriteInformation(data.Message, new string[]{}); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Error: + { + WriteError(new global::System.Management.Automation.ErrorRecord( new global::System.Exception(messageData().Message), string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null ) ); + return ; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.EventData ), InvocationInformation, this.ParameterSetName, __correlationId, __processRecordId, null ); + if (token.IsCancellationRequested) + { + return ; + } + WriteDebug($"{id}: {(messageData().Message ?? global::System.String.Empty)}"); + } + } + + /// Performs execution of the command. + protected override void ProcessRecord() + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + using( var asyncCommandRuntime = new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token); + } + } + catch (global::System.AggregateException aggregateException) + { + // unroll the inner exceptions to get the root cause + foreach( var innerException in aggregateException.Flatten().InnerExceptions ) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(innerException,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + } + catch (global::System.Exception exception) when ((exception as System.Management.Automation.PipelineStoppedException)== null || (exception as System.Management.Automation.PipelineStoppedException).InnerException != null) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(exception,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + finally + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletProcessRecordEnd).Wait(); + } + } + + /// Performs execution of the command, working asynchronously if required. + /// + /// A that will be complete when handling of the method is completed. + /// + protected async global::System.Threading.Tasks.Task ProcessRecordAsync() + { + using( NoSynchronizationContext ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + if (InputObject?.Id != null) + { + await this.Client.SystemTopicEventSubscriptionsGetViaIdentity(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.SystemTopicName) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.SystemTopicName"),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, InputObject) ); + } + if (null == InputObject.EventSubscriptionName) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.EventSubscriptionName"),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, InputObject) ); + } + await this.Client.SystemTopicEventSubscriptionsGet(InputObject.SubscriptionId ?? null, InputObject.ResourceGroupName ?? null, InputObject.SystemTopicName ?? null, InputObject.EventSubscriptionName ?? null, onOk, onDefault, this, Pipeline); + } + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Cancel(); + base.StopProcessing(); + } + + /// + /// a delegate that is called when the remote service returns default (any response code not handled elsewhere). + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onDefault(global::System.Net.Http.HttpResponseMessage responseMessage) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnDefault(responseMessage, ref _returnNow); + // if overrideOnDefault has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // Error Response : default + // Unrecognized Response. Create an error record based on what we have. + var ex = new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.RestException(responseMessage); + WriteError( new global::System.Management.Automation.ErrorRecord(ex, ex.Code, global::System.Management.Automation.ErrorCategory.InvalidOperation, new { }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(ex.Message) { RecommendedAction = ex.Action } + }); + } + } + + /// a delegate that is called when the remote service returns 200 (OK). + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as 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.EventGrid.Models.Api20211015Preview.IEventSubscription + WriteObject((await response)); + } + } + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/cmdlets/GetAzEventGridSystemTopicEventSubscription_List.cs b/swaggerci/eventgrid/generated/cmdlets/GetAzEventGridSystemTopicEventSubscription_List.cs new file mode 100644 index 000000000000..6b07debcef51 --- /dev/null +++ b/swaggerci/eventgrid/generated/cmdlets/GetAzEventGridSystemTopicEventSubscription_List.cs @@ -0,0 +1,456 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Extensions; + using System; + + /// List event subscriptions that belong to a specific system topic. + /// + /// [OpenAPI] ListBySystemTopic=>GET:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.EventGrid/systemTopics/{systemTopicName}/eventSubscriptions" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsCommon.Get, @"AzEventGridSystemTopicEventSubscription_List")] + [global::System.Management.Automation.OutputType(typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscription))] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Description(@"List event subscriptions that belong to a specific system topic.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Generated] + public partial class GetAzEventGridSystemTopicEventSubscription_List : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener + { + /// A unique id generatd for the this cmdlet when it is instantiated. + private string __correlationId = System.Guid.NewGuid().ToString(); + + /// A copy of the Invocation Info (necessary to allow asJob to clone this cmdlet) + private global::System.Management.Automation.InvocationInfo __invocationInfo; + + /// A unique id generatd for the this cmdlet when ProcessRecord() is called. + private string __processRecordId; + + /// + /// The for this operation. + /// + private global::System.Threading.CancellationTokenSource _cancellationTokenSource = new global::System.Threading.CancellationTokenSource(); + + /// A flag to tell whether it is the first onOK call. + private bool _isFirst = true; + + /// Link to retrieve next page. + private string _nextLink; + + /// Wait for .NET debugger to attach + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Wait for .NET debugger to attach")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.EventGridManagementClient Client => Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.ClientAPI; + + /// + /// The credentials, account, tenant, and subscription used for communication with Azure + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The credentials, account, tenant, and subscription used for communication with Azure.")] + [global::System.Management.Automation.ValidateNotNull] + [global::System.Management.Automation.Alias("AzureRMContext", "AzureCredential")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Azure)] + public global::System.Management.Automation.PSObject DefaultProfile { get; set; } + + /// Backing field for property. + private string _filter; + + /// + /// The query used to filter the search results using OData syntax. Filtering is permitted on the 'name' property only and + /// with limited number of OData operations. These operations are: the 'contains' function as well as the following logical + /// operations: not, and, or, eq (for equal), and ne (for not equal). No arithmetic operations are supported. The following + /// is a valid filter example: $filter=contains(namE, 'PATTERN') and name ne 'PATTERN-1'. The following is not a valid filter + /// example: $filter=location eq 'westus'. + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The query used to filter the search results using OData syntax. Filtering is permitted on the 'name' property only and with limited number of OData operations. These operations are: the 'contains' function as well as the following logical operations: not, and, or, eq (for equal), and ne (for not equal). No arithmetic operations are supported. The following is a valid filter example: $filter=contains(namE, 'PATTERN') and name ne 'PATTERN-1'. The following is not a valid filter example: $filter=location eq 'westus'.")] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The query used to filter the search results using OData syntax. Filtering is permitted on the 'name' property only and with limited number of OData operations. These operations are: the 'contains' function as well as the following logical operations: not, and, or, eq (for equal), and ne (for not equal). No arithmetic operations are supported. The following is a valid filter example: $filter=contains(namE, 'PATTERN') and name ne 'PATTERN-1'. The following is not a valid filter example: $filter=location eq 'westus'.", + SerializedName = @"$filter", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[] HttpPipelineAppend { get; set; } + + /// SendAsync Pipeline Steps to be prepended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be prepended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[] HttpPipelinePrepend { get; set; } + + /// Accessor for our copy of the InvocationInfo. + public global::System.Management.Automation.InvocationInfo InvocationInformation { get => __invocationInfo = __invocationInfo ?? this.MyInvocation ; set { __invocationInfo = value; } } + + /// + /// cancellation delegate. Stops the cmdlet when called. + /// + global::System.Action Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Runtime.HttpPipeline Pipeline { get; set; } + + /// The URI for the proxy server to use + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "The URI for the proxy server to use")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Uri Proxy { get; set; } + + /// Credentials for a proxy server to use for the remote call + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Credentials for a proxy server to use for the remote call")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Management.Automation.PSCredential ProxyCredential { get; set; } + + /// Use the default credentials for the proxy + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Use the default credentials for the proxy")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter ProxyUseDefaultCredentials { get; set; } + + /// Backing field for property. + private string _resourceGroupName; + + /// The name of the resource group within the user's subscription. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the resource group within the user's subscription.")] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the resource group within the user's subscription.", + SerializedName = @"resourceGroupName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Path)] + public string ResourceGroupName { get => this._resourceGroupName; set => this._resourceGroupName = value; } + + /// Backing field for property. + private string[] _subscriptionId; + + /// + /// Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription ID forms part of the + /// URI for every service call. + /// + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.")] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.", + SerializedName = @"subscriptionId", + PossibleTypes = new [] { typeof(string) })] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.DefaultInfo( + Name = @"", + Description =@"", + Script = @"(Get-AzContext).Subscription.Id")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Path)] + public string[] SubscriptionId { get => this._subscriptionId; set => this._subscriptionId = value; } + + /// Backing field for property. + private string _systemTopicName; + + /// Name of the system topic. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Name of the system topic.")] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Name of the system topic.", + SerializedName = @"systemTopicName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Path)] + public string SystemTopicName { get => this._systemTopicName; set => this._systemTopicName = value; } + + /// Backing field for property. + private int _top; + + /// + /// The number of results to return per page for the list operation. Valid range for top parameter is 1 to 100. If not specified, + /// the default number of results to be returned is 20 items per page. + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The number of results to return per page for the list operation. Valid range for top parameter is 1 to 100. If not specified, the default number of results to be returned is 20 items per page.")] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The number of results to return per page for the list operation. Valid range for top parameter is 1 to 100. If not specified, the default number of results to be returned is 20 items per page.", + SerializedName = @"$top", + PossibleTypes = new [] { typeof(int) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Query)] + public int Top { get => this._top; set => this._top = value; } + + /// + /// overrideOnDefault will be called before the regular onDefault has been processed, allowing customization of what + /// happens on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// /// Determines if the rest of the onDefault method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnDefault(global::System.Net.Http.HttpResponseMessage responseMessage, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnOk will be called before the regular onOk has been processed, allowing customization of what happens + /// on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// 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() + { + var telemetryId = Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.GetTelemetryId.Invoke(); + if (telemetryId != "" && telemetryId != "internal") + { + __correlationId = telemetryId; + } + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + + } + + /// + /// Intializes a new instance of the cmdlet class. + /// + public GetAzEventGridSystemTopicEventSubscription_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.EventGrid.Runtime.IEventListener.Signal(string id, global::System.Threading.CancellationToken token, global::System.Func messageData) + { + using( NoSynchronizationContext ) + { + if (token.IsCancellationRequested) + { + return ; + } + + switch ( id ) + { + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Information: + { + var data = messageData(); + WriteInformation(data.Message, new string[]{}); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Error: + { + WriteError(new global::System.Management.Automation.ErrorRecord( new global::System.Exception(messageData().Message), string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null ) ); + return ; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.EventData ), InvocationInformation, this.ParameterSetName, __correlationId, __processRecordId, null ); + if (token.IsCancellationRequested) + { + return ; + } + WriteDebug($"{id}: {(messageData().Message ?? global::System.String.Empty)}"); + } + } + + /// Performs execution of the command. + protected override void ProcessRecord() + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + using( var asyncCommandRuntime = new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token); + } + } + catch (global::System.AggregateException aggregateException) + { + // unroll the inner exceptions to get the root cause + foreach( var innerException in aggregateException.Flatten().InnerExceptions ) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(innerException,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + } + catch (global::System.Exception exception) when ((exception as System.Management.Automation.PipelineStoppedException)== null || (exception as System.Management.Automation.PipelineStoppedException).InnerException != null) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(exception,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + finally + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletProcessRecordEnd).Wait(); + } + } + + /// Performs execution of the command, working asynchronously if required. + /// + /// A that will be complete when handling of the method is completed. + /// + protected async global::System.Threading.Tasks.Task ProcessRecordAsync() + { + using( NoSynchronizationContext ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + foreach( var SubscriptionId in this.SubscriptionId ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await this.Client.SystemTopicEventSubscriptionsListBySystemTopic(SubscriptionId, ResourceGroupName, SystemTopicName, this.InvocationInformation.BoundParameters.ContainsKey("Filter") ? Filter : null, this.InvocationInformation.BoundParameters.ContainsKey("Top") ? Top : default(int?), onOk, onDefault, this, Pipeline); + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.UndeclaredResponseException urexception) + { + WriteError(new global::System.Management.Automation.ErrorRecord(urexception, urexception.StatusCode.ToString(), global::System.Management.Automation.ErrorCategory.InvalidOperation, new { SubscriptionId=SubscriptionId,ResourceGroupName=ResourceGroupName,SystemTopicName=SystemTopicName,Filter=this.InvocationInformation.BoundParameters.ContainsKey("Filter") ? Filter : null,Top=this.InvocationInformation.BoundParameters.ContainsKey("Top") ? Top : default(int?)}) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(urexception.Message) { RecommendedAction = urexception.Action } + }); + } + finally + { + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Cancel(); + base.StopProcessing(); + } + + /// + /// a delegate that is called when the remote service returns default (any response code not handled elsewhere). + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onDefault(global::System.Net.Http.HttpResponseMessage responseMessage) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnDefault(responseMessage, ref _returnNow); + // if overrideOnDefault has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // Error Response : default + // Unrecognized Response. Create an error record based on what we have. + var ex = new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.RestException(responseMessage); + WriteError( new global::System.Management.Automation.ErrorRecord(ex, ex.Code, global::System.Management.Automation.ErrorCategory.InvalidOperation, new { SubscriptionId=SubscriptionId, ResourceGroupName=ResourceGroupName, SystemTopicName=SystemTopicName, Filter=this.InvocationInformation.BoundParameters.ContainsKey("Filter") ? Filter : null, Top=this.InvocationInformation.BoundParameters.ContainsKey("Top") ? Top : default(int?) }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(ex.Message) { RecommendedAction = ex.Action } + }); + } + } + + /// a delegate that is called when the remote service returns 200 (OK). + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnOk(responseMessage, response, ref _returnNow); + // if overrideOnOk has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // onOk - response for 200 / application/json + // response should be returning an array of some kind. +Pageable + // pageable / value / nextLink + var result = await response; + WriteObject(result.Value,true); + _nextLink = result.NextLink; + if (_isFirst) + { + _isFirst = false; + while (_nextLink != null) + { + if (responseMessage.RequestMessage is System.Net.Http.HttpRequestMessage requestMessage ) + { + requestMessage = requestMessage.Clone(new global::System.Uri( _nextLink ),Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Method.Get ); + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.FollowingNextLink); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await this.Client.SystemTopicEventSubscriptionsListBySystemTopic_Call(requestMessage, onOk, onDefault, this, Pipeline); + } + } + } + } + } + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/cmdlets/GetAzEventGridSystemTopic_Get.cs b/swaggerci/eventgrid/generated/cmdlets/GetAzEventGridSystemTopic_Get.cs new file mode 100644 index 000000000000..62d4b17f904b --- /dev/null +++ b/swaggerci/eventgrid/generated/cmdlets/GetAzEventGridSystemTopic_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.EventGrid.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Extensions; + using System; + + /// Get properties of a system topic. + /// + /// [OpenAPI] Get=>GET:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.EventGrid/systemTopics/{systemTopicName}" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsCommon.Get, @"AzEventGridSystemTopic_Get")] + [global::System.Management.Automation.OutputType(typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ISystemTopic))] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Description(@"Get properties of a system topic.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Generated] + public partial class GetAzEventGridSystemTopic_Get : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener + { + /// A unique id generatd for the this cmdlet when it is instantiated. + private string __correlationId = System.Guid.NewGuid().ToString(); + + /// A copy of the Invocation Info (necessary to allow asJob to clone this cmdlet) + private global::System.Management.Automation.InvocationInfo __invocationInfo; + + /// A unique id generatd for the this cmdlet when ProcessRecord() is called. + private string __processRecordId; + + /// + /// The for this operation. + /// + private global::System.Threading.CancellationTokenSource _cancellationTokenSource = new global::System.Threading.CancellationTokenSource(); + + /// Wait for .NET debugger to attach + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Wait for .NET debugger to attach")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.EventGridManagementClient Client => Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.ClientAPI; + + /// + /// The credentials, account, tenant, and subscription used for communication with Azure + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The credentials, account, tenant, and subscription used for communication with Azure.")] + [global::System.Management.Automation.ValidateNotNull] + [global::System.Management.Automation.Alias("AzureRMContext", "AzureCredential")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Azure)] + public global::System.Management.Automation.PSObject DefaultProfile { get; set; } + + /// SendAsync Pipeline Steps to be appended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be appended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[] HttpPipelineAppend { get; set; } + + /// SendAsync Pipeline Steps to be prepended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be prepended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[] HttpPipelinePrepend { get; set; } + + /// Accessor for our copy of the InvocationInfo. + public global::System.Management.Automation.InvocationInfo InvocationInformation { get => __invocationInfo = __invocationInfo ?? this.MyInvocation ; set { __invocationInfo = value; } } + + /// + /// cancellation delegate. Stops the cmdlet when called. + /// + global::System.Action Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener.Token => _cancellationTokenSource.Token; + + /// Backing field for property. + private string _name; + + /// Name of the system topic. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Name of the system topic.")] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Name of the system topic.", + SerializedName = @"systemTopicName", + PossibleTypes = new [] { typeof(string) })] + [global::System.Management.Automation.Alias("SystemTopicName")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Runtime.HttpPipeline Pipeline { get; set; } + + /// The URI for the proxy server to use + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "The URI for the proxy server to use")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Uri Proxy { get; set; } + + /// Credentials for a proxy server to use for the remote call + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Credentials for a proxy server to use for the remote call")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Management.Automation.PSCredential ProxyCredential { get; set; } + + /// Use the default credentials for the proxy + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Use the default credentials for the proxy")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter ProxyUseDefaultCredentials { get; set; } + + /// Backing field for property. + private string _resourceGroupName; + + /// The name of the resource group within the user's subscription. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the resource group within the user's subscription.")] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the resource group within the user's subscription.", + SerializedName = @"resourceGroupName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Path)] + public string ResourceGroupName { get => this._resourceGroupName; set => this._resourceGroupName = value; } + + /// Backing field for property. + private string[] _subscriptionId; + + /// + /// Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription ID forms part of the + /// URI for every service call. + /// + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.")] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.", + SerializedName = @"subscriptionId", + PossibleTypes = new [] { typeof(string) })] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.DefaultInfo( + Name = @"", + Description =@"", + Script = @"(Get-AzContext).Subscription.Id")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Path)] + public string[] SubscriptionId { get => this._subscriptionId; set => this._subscriptionId = value; } + + /// + /// overrideOnDefault will be called before the regular onDefault has been processed, allowing customization of what + /// happens on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// /// Determines if the rest of the onDefault method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnDefault(global::System.Net.Http.HttpResponseMessage responseMessage, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnOk will be called before the regular onOk has been processed, allowing customization of what happens + /// on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// 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() + { + var telemetryId = Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.GetTelemetryId.Invoke(); + if (telemetryId != "" && telemetryId != "internal") + { + __correlationId = telemetryId; + } + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + + } + + /// + /// Intializes a new instance of the cmdlet class. + /// + public GetAzEventGridSystemTopic_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.EventGrid.Runtime.IEventListener.Signal(string id, global::System.Threading.CancellationToken token, global::System.Func messageData) + { + using( NoSynchronizationContext ) + { + if (token.IsCancellationRequested) + { + return ; + } + + switch ( id ) + { + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Information: + { + var data = messageData(); + WriteInformation(data.Message, new string[]{}); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Error: + { + WriteError(new global::System.Management.Automation.ErrorRecord( new global::System.Exception(messageData().Message), string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null ) ); + return ; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.EventData ), InvocationInformation, this.ParameterSetName, __correlationId, __processRecordId, null ); + if (token.IsCancellationRequested) + { + return ; + } + WriteDebug($"{id}: {(messageData().Message ?? global::System.String.Empty)}"); + } + } + + /// Performs execution of the command. + protected override void ProcessRecord() + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + using( var asyncCommandRuntime = new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token); + } + } + catch (global::System.AggregateException aggregateException) + { + // unroll the inner exceptions to get the root cause + foreach( var innerException in aggregateException.Flatten().InnerExceptions ) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(innerException,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + } + catch (global::System.Exception exception) when ((exception as System.Management.Automation.PipelineStoppedException)== null || (exception as System.Management.Automation.PipelineStoppedException).InnerException != null) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(exception,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + finally + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletProcessRecordEnd).Wait(); + } + } + + /// Performs execution of the command, working asynchronously if required. + /// + /// A that will be complete when handling of the method is completed. + /// + protected async global::System.Threading.Tasks.Task ProcessRecordAsync() + { + using( NoSynchronizationContext ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + foreach( var SubscriptionId in this.SubscriptionId ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await this.Client.SystemTopicsGet(SubscriptionId, ResourceGroupName, Name, onOk, onDefault, this, Pipeline); + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.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.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Cancel(); + base.StopProcessing(); + } + + /// + /// a delegate that is called when the remote service returns default (any response code not handled elsewhere). + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onDefault(global::System.Net.Http.HttpResponseMessage responseMessage) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnDefault(responseMessage, ref _returnNow); + // if overrideOnDefault has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // Error Response : default + // Unrecognized Response. Create an error record based on what we have. + var ex = new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.RestException(responseMessage); + 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 } + }); + } + } + + /// a delegate that is 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.EventGrid.Models.Api20211015Preview.ISystemTopic + WriteObject((await response)); + } + } + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/cmdlets/GetAzEventGridSystemTopic_GetViaIdentity.cs b/swaggerci/eventgrid/generated/cmdlets/GetAzEventGridSystemTopic_GetViaIdentity.cs new file mode 100644 index 000000000000..0d6fd600a9dd --- /dev/null +++ b/swaggerci/eventgrid/generated/cmdlets/GetAzEventGridSystemTopic_GetViaIdentity.cs @@ -0,0 +1,373 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Extensions; + using System; + + /// Get properties of a system topic. + /// + /// [OpenAPI] Get=>GET:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.EventGrid/systemTopics/{systemTopicName}" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsCommon.Get, @"AzEventGridSystemTopic_GetViaIdentity")] + [global::System.Management.Automation.OutputType(typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ISystemTopic))] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Description(@"Get properties of a system topic.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Generated] + public partial class GetAzEventGridSystemTopic_GetViaIdentity : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener + { + /// A unique id generatd for the this cmdlet when it is instantiated. + private string __correlationId = System.Guid.NewGuid().ToString(); + + /// A copy of the Invocation Info (necessary to allow asJob to clone this cmdlet) + private global::System.Management.Automation.InvocationInfo __invocationInfo; + + /// A unique id generatd for the this cmdlet when ProcessRecord() is called. + private string __processRecordId; + + /// + /// The for this operation. + /// + private global::System.Threading.CancellationTokenSource _cancellationTokenSource = new global::System.Threading.CancellationTokenSource(); + + /// Wait for .NET debugger to attach + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Wait for .NET debugger to attach")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.EventGridManagementClient Client => Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.ClientAPI; + + /// + /// The credentials, account, tenant, and subscription used for communication with Azure + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The credentials, account, tenant, and subscription used for communication with Azure.")] + [global::System.Management.Automation.ValidateNotNull] + [global::System.Management.Automation.Alias("AzureRMContext", "AzureCredential")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Azure)] + public global::System.Management.Automation.PSObject DefaultProfile { get; set; } + + /// SendAsync Pipeline Steps to be appended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be appended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[] HttpPipelineAppend { get; set; } + + /// SendAsync Pipeline Steps to be prepended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be prepended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[] HttpPipelinePrepend { get; set; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.IEventGridIdentity _inputObject; + + /// Identity Parameter + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Identity Parameter", ValueFromPipeline = true)] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Path)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.IEventGridIdentity InputObject { get => this._inputObject; set => this._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.EventGrid.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Runtime.HttpPipeline Pipeline { get; set; } + + /// The URI for the proxy server to use + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "The URI for the proxy server to use")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Uri Proxy { get; set; } + + /// Credentials for a proxy server to use for the remote call + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Credentials for a proxy server to use for the remote call")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Management.Automation.PSCredential ProxyCredential { get; set; } + + /// Use the default credentials for the proxy + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Use the default credentials for the proxy")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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. + /// /// Determines if the rest of the onDefault method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnDefault(global::System.Net.Http.HttpResponseMessage responseMessage, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnOk will be called before the regular onOk has been processed, allowing customization of what happens + /// on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// 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() + { + var telemetryId = Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.GetTelemetryId.Invoke(); + if (telemetryId != "" && telemetryId != "internal") + { + __correlationId = telemetryId; + } + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + + } + + /// + /// Intializes a new instance of the cmdlet class. + /// + public GetAzEventGridSystemTopic_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.EventGrid.Runtime.IEventListener.Signal(string id, global::System.Threading.CancellationToken token, global::System.Func messageData) + { + using( NoSynchronizationContext ) + { + if (token.IsCancellationRequested) + { + return ; + } + + switch ( id ) + { + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Information: + { + var data = messageData(); + WriteInformation(data.Message, new string[]{}); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Error: + { + WriteError(new global::System.Management.Automation.ErrorRecord( new global::System.Exception(messageData().Message), string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null ) ); + return ; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.EventData ), InvocationInformation, this.ParameterSetName, __correlationId, __processRecordId, null ); + if (token.IsCancellationRequested) + { + return ; + } + WriteDebug($"{id}: {(messageData().Message ?? global::System.String.Empty)}"); + } + } + + /// Performs execution of the command. + protected override void ProcessRecord() + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + using( var asyncCommandRuntime = new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token); + } + } + catch (global::System.AggregateException aggregateException) + { + // unroll the inner exceptions to get the root cause + foreach( var innerException in aggregateException.Flatten().InnerExceptions ) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(innerException,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + } + catch (global::System.Exception exception) when ((exception as System.Management.Automation.PipelineStoppedException)== null || (exception as System.Management.Automation.PipelineStoppedException).InnerException != null) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(exception,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + finally + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletProcessRecordEnd).Wait(); + } + } + + /// Performs execution of the command, working asynchronously if required. + /// + /// A that will be complete when handling of the method is completed. + /// + protected async global::System.Threading.Tasks.Task ProcessRecordAsync() + { + using( NoSynchronizationContext ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + if (InputObject?.Id != null) + { + await this.Client.SystemTopicsGetViaIdentity(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.SystemTopicName) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.SystemTopicName"),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, InputObject) ); + } + await this.Client.SystemTopicsGet(InputObject.SubscriptionId ?? null, InputObject.ResourceGroupName ?? null, InputObject.SystemTopicName ?? null, onOk, onDefault, this, Pipeline); + } + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Cancel(); + base.StopProcessing(); + } + + /// + /// a delegate that is called when the remote service returns default (any response code not handled elsewhere). + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onDefault(global::System.Net.Http.HttpResponseMessage responseMessage) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnDefault(responseMessage, ref _returnNow); + // if overrideOnDefault has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // Error Response : default + // Unrecognized Response. Create an error record based on what we have. + var ex = new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.RestException(responseMessage); + WriteError( new global::System.Management.Automation.ErrorRecord(ex, ex.Code, global::System.Management.Automation.ErrorCategory.InvalidOperation, new { }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(ex.Message) { RecommendedAction = ex.Action } + }); + } + } + + /// a delegate that is called when the remote service returns 200 (OK). + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as 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.EventGrid.Models.Api20211015Preview.ISystemTopic + WriteObject((await response)); + } + } + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/cmdlets/GetAzEventGridSystemTopic_List.cs b/swaggerci/eventgrid/generated/cmdlets/GetAzEventGridSystemTopic_List.cs new file mode 100644 index 000000000000..004a460e7b0a --- /dev/null +++ b/swaggerci/eventgrid/generated/cmdlets/GetAzEventGridSystemTopic_List.cs @@ -0,0 +1,428 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Extensions; + using System; + + /// List all the system topics under an Azure subscription. + /// + /// [OpenAPI] ListBySubscription=>GET:"/subscriptions/{subscriptionId}/providers/Microsoft.EventGrid/systemTopics" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsCommon.Get, @"AzEventGridSystemTopic_List")] + [global::System.Management.Automation.OutputType(typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ISystemTopic))] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Description(@"List all the system topics under an Azure subscription.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Generated] + public partial class GetAzEventGridSystemTopic_List : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener + { + /// A unique id generatd for the this cmdlet when it is instantiated. + private string __correlationId = System.Guid.NewGuid().ToString(); + + /// A copy of the Invocation Info (necessary to allow asJob to clone this cmdlet) + private global::System.Management.Automation.InvocationInfo __invocationInfo; + + /// A unique id generatd for the this cmdlet when ProcessRecord() is called. + private string __processRecordId; + + /// + /// The for this operation. + /// + private global::System.Threading.CancellationTokenSource _cancellationTokenSource = new global::System.Threading.CancellationTokenSource(); + + /// A flag to tell whether it is the first onOK call. + private bool _isFirst = true; + + /// Link to retrieve next page. + private string _nextLink; + + /// Wait for .NET debugger to attach + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Wait for .NET debugger to attach")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.EventGridManagementClient Client => Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.ClientAPI; + + /// + /// The credentials, account, tenant, and subscription used for communication with Azure + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The credentials, account, tenant, and subscription used for communication with Azure.")] + [global::System.Management.Automation.ValidateNotNull] + [global::System.Management.Automation.Alias("AzureRMContext", "AzureCredential")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Azure)] + public global::System.Management.Automation.PSObject DefaultProfile { get; set; } + + /// Backing field for property. + private string _filter; + + /// + /// The query used to filter the search results using OData syntax. Filtering is permitted on the 'name' property only and + /// with limited number of OData operations. These operations are: the 'contains' function as well as the following logical + /// operations: not, and, or, eq (for equal), and ne (for not equal). No arithmetic operations are supported. The following + /// is a valid filter example: $filter=contains(namE, 'PATTERN') and name ne 'PATTERN-1'. The following is not a valid filter + /// example: $filter=location eq 'westus'. + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The query used to filter the search results using OData syntax. Filtering is permitted on the 'name' property only and with limited number of OData operations. These operations are: the 'contains' function as well as the following logical operations: not, and, or, eq (for equal), and ne (for not equal). No arithmetic operations are supported. The following is a valid filter example: $filter=contains(namE, 'PATTERN') and name ne 'PATTERN-1'. The following is not a valid filter example: $filter=location eq 'westus'.")] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The query used to filter the search results using OData syntax. Filtering is permitted on the 'name' property only and with limited number of OData operations. These operations are: the 'contains' function as well as the following logical operations: not, and, or, eq (for equal), and ne (for not equal). No arithmetic operations are supported. The following is a valid filter example: $filter=contains(namE, 'PATTERN') and name ne 'PATTERN-1'. The following is not a valid filter example: $filter=location eq 'westus'.", + SerializedName = @"$filter", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[] HttpPipelineAppend { get; set; } + + /// SendAsync Pipeline Steps to be prepended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be prepended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[] HttpPipelinePrepend { get; set; } + + /// Accessor for our copy of the InvocationInfo. + public global::System.Management.Automation.InvocationInfo InvocationInformation { get => __invocationInfo = __invocationInfo ?? this.MyInvocation ; set { __invocationInfo = value; } } + + /// + /// cancellation delegate. Stops the cmdlet when called. + /// + global::System.Action Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Runtime.HttpPipeline Pipeline { get; set; } + + /// The URI for the proxy server to use + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "The URI for the proxy server to use")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Uri Proxy { get; set; } + + /// Credentials for a proxy server to use for the remote call + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Credentials for a proxy server to use for the remote call")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Management.Automation.PSCredential ProxyCredential { get; set; } + + /// Use the default credentials for the proxy + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Use the default credentials for the proxy")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter ProxyUseDefaultCredentials { get; set; } + + /// Backing field for property. + private string[] _subscriptionId; + + /// + /// Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription ID forms part of the + /// URI for every service call. + /// + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.")] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.", + SerializedName = @"subscriptionId", + PossibleTypes = new [] { typeof(string) })] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.DefaultInfo( + Name = @"", + Description =@"", + Script = @"(Get-AzContext).Subscription.Id")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Path)] + public string[] SubscriptionId { get => this._subscriptionId; set => this._subscriptionId = value; } + + /// Backing field for property. + private int _top; + + /// + /// The number of results to return per page for the list operation. Valid range for top parameter is 1 to 100. If not specified, + /// the default number of results to be returned is 20 items per page. + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The number of results to return per page for the list operation. Valid range for top parameter is 1 to 100. If not specified, the default number of results to be returned is 20 items per page.")] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The number of results to return per page for the list operation. Valid range for top parameter is 1 to 100. If not specified, the default number of results to be returned is 20 items per page.", + SerializedName = @"$top", + PossibleTypes = new [] { typeof(int) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Query)] + public int Top { get => this._top; set => this._top = value; } + + /// + /// overrideOnDefault will be called before the regular onDefault has been processed, allowing customization of what + /// happens on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// /// Determines if the rest of the onDefault method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnDefault(global::System.Net.Http.HttpResponseMessage responseMessage, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnOk will be called before the regular onOk has been processed, allowing customization of what happens + /// on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// 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() + { + var telemetryId = Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.GetTelemetryId.Invoke(); + if (telemetryId != "" && telemetryId != "internal") + { + __correlationId = telemetryId; + } + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + + } + + /// + /// Intializes a new instance of the cmdlet class. + /// + public GetAzEventGridSystemTopic_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.EventGrid.Runtime.IEventListener.Signal(string id, global::System.Threading.CancellationToken token, global::System.Func messageData) + { + using( NoSynchronizationContext ) + { + if (token.IsCancellationRequested) + { + return ; + } + + switch ( id ) + { + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Information: + { + var data = messageData(); + WriteInformation(data.Message, new string[]{}); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Error: + { + WriteError(new global::System.Management.Automation.ErrorRecord( new global::System.Exception(messageData().Message), string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null ) ); + return ; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.EventData ), InvocationInformation, this.ParameterSetName, __correlationId, __processRecordId, null ); + if (token.IsCancellationRequested) + { + return ; + } + WriteDebug($"{id}: {(messageData().Message ?? global::System.String.Empty)}"); + } + } + + /// Performs execution of the command. + protected override void ProcessRecord() + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + using( var asyncCommandRuntime = new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token); + } + } + catch (global::System.AggregateException aggregateException) + { + // unroll the inner exceptions to get the root cause + foreach( var innerException in aggregateException.Flatten().InnerExceptions ) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(innerException,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + } + catch (global::System.Exception exception) when ((exception as System.Management.Automation.PipelineStoppedException)== null || (exception as System.Management.Automation.PipelineStoppedException).InnerException != null) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(exception,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + finally + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletProcessRecordEnd).Wait(); + } + } + + /// Performs execution of the command, working asynchronously if required. + /// + /// A that will be complete when handling of the method is completed. + /// + protected async global::System.Threading.Tasks.Task ProcessRecordAsync() + { + using( NoSynchronizationContext ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + foreach( var SubscriptionId in this.SubscriptionId ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await this.Client.SystemTopicsListBySubscription(SubscriptionId, this.InvocationInformation.BoundParameters.ContainsKey("Filter") ? Filter : null, this.InvocationInformation.BoundParameters.ContainsKey("Top") ? Top : default(int?), onOk, onDefault, this, Pipeline); + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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,Top=this.InvocationInformation.BoundParameters.ContainsKey("Top") ? Top : default(int?)}) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(urexception.Message) { RecommendedAction = urexception.Action } + }); + } + finally + { + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Cancel(); + base.StopProcessing(); + } + + /// + /// a delegate that is called when the remote service returns default (any response code not handled elsewhere). + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onDefault(global::System.Net.Http.HttpResponseMessage responseMessage) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnDefault(responseMessage, ref _returnNow); + // if overrideOnDefault has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // Error Response : default + // Unrecognized Response. Create an error record based on what we have. + var ex = new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.RestException(responseMessage); + 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, Top=this.InvocationInformation.BoundParameters.ContainsKey("Top") ? Top : default(int?) }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(ex.Message) { RecommendedAction = ex.Action } + }); + } + } + + /// a delegate that is called when the remote service returns 200 (OK). + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnOk(responseMessage, response, ref _returnNow); + // if overrideOnOk has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // onOk - response for 200 / application/json + // response should be returning an array of some kind. +Pageable + // pageable / value / nextLink + var result = await response; + WriteObject(result.Value,true); + _nextLink = result.NextLink; + if (_isFirst) + { + _isFirst = false; + while (_nextLink != null) + { + if (responseMessage.RequestMessage is System.Net.Http.HttpRequestMessage requestMessage ) + { + requestMessage = requestMessage.Clone(new global::System.Uri( _nextLink ),Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Method.Get ); + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.FollowingNextLink); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await this.Client.SystemTopicsListBySubscription_Call(requestMessage, onOk, onDefault, this, Pipeline); + } + } + } + } + } + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/cmdlets/GetAzEventGridSystemTopic_List1.cs b/swaggerci/eventgrid/generated/cmdlets/GetAzEventGridSystemTopic_List1.cs new file mode 100644 index 000000000000..535dc0620e25 --- /dev/null +++ b/swaggerci/eventgrid/generated/cmdlets/GetAzEventGridSystemTopic_List1.cs @@ -0,0 +1,442 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Extensions; + using System; + + /// List all the system topics under a resource group. + /// + /// [OpenAPI] ListByResourceGroup=>GET:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.EventGrid/systemTopics" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsCommon.Get, @"AzEventGridSystemTopic_List1")] + [global::System.Management.Automation.OutputType(typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ISystemTopic))] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Description(@"List all the system topics under a resource group.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Generated] + public partial class GetAzEventGridSystemTopic_List1 : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener + { + /// A unique id generatd for the this cmdlet when it is instantiated. + private string __correlationId = System.Guid.NewGuid().ToString(); + + /// A copy of the Invocation Info (necessary to allow asJob to clone this cmdlet) + private global::System.Management.Automation.InvocationInfo __invocationInfo; + + /// A unique id generatd for the this cmdlet when ProcessRecord() is called. + private string __processRecordId; + + /// + /// The for this operation. + /// + private global::System.Threading.CancellationTokenSource _cancellationTokenSource = new global::System.Threading.CancellationTokenSource(); + + /// A flag to tell whether it is the first onOK call. + private bool _isFirst = true; + + /// Link to retrieve next page. + private string _nextLink; + + /// Wait for .NET debugger to attach + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Wait for .NET debugger to attach")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.EventGridManagementClient Client => Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.ClientAPI; + + /// + /// The credentials, account, tenant, and subscription used for communication with Azure + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The credentials, account, tenant, and subscription used for communication with Azure.")] + [global::System.Management.Automation.ValidateNotNull] + [global::System.Management.Automation.Alias("AzureRMContext", "AzureCredential")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Azure)] + public global::System.Management.Automation.PSObject DefaultProfile { get; set; } + + /// Backing field for property. + private string _filter; + + /// + /// The query used to filter the search results using OData syntax. Filtering is permitted on the 'name' property only and + /// with limited number of OData operations. These operations are: the 'contains' function as well as the following logical + /// operations: not, and, or, eq (for equal), and ne (for not equal). No arithmetic operations are supported. The following + /// is a valid filter example: $filter=contains(namE, 'PATTERN') and name ne 'PATTERN-1'. The following is not a valid filter + /// example: $filter=location eq 'westus'. + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The query used to filter the search results using OData syntax. Filtering is permitted on the 'name' property only and with limited number of OData operations. These operations are: the 'contains' function as well as the following logical operations: not, and, or, eq (for equal), and ne (for not equal). No arithmetic operations are supported. The following is a valid filter example: $filter=contains(namE, 'PATTERN') and name ne 'PATTERN-1'. The following is not a valid filter example: $filter=location eq 'westus'.")] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The query used to filter the search results using OData syntax. Filtering is permitted on the 'name' property only and with limited number of OData operations. These operations are: the 'contains' function as well as the following logical operations: not, and, or, eq (for equal), and ne (for not equal). No arithmetic operations are supported. The following is a valid filter example: $filter=contains(namE, 'PATTERN') and name ne 'PATTERN-1'. The following is not a valid filter example: $filter=location eq 'westus'.", + SerializedName = @"$filter", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[] HttpPipelineAppend { get; set; } + + /// SendAsync Pipeline Steps to be prepended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be prepended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[] HttpPipelinePrepend { get; set; } + + /// Accessor for our copy of the InvocationInfo. + public global::System.Management.Automation.InvocationInfo InvocationInformation { get => __invocationInfo = __invocationInfo ?? this.MyInvocation ; set { __invocationInfo = value; } } + + /// + /// cancellation delegate. Stops the cmdlet when called. + /// + global::System.Action Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Runtime.HttpPipeline Pipeline { get; set; } + + /// The URI for the proxy server to use + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "The URI for the proxy server to use")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Uri Proxy { get; set; } + + /// Credentials for a proxy server to use for the remote call + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Credentials for a proxy server to use for the remote call")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Management.Automation.PSCredential ProxyCredential { get; set; } + + /// Use the default credentials for the proxy + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Use the default credentials for the proxy")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter ProxyUseDefaultCredentials { get; set; } + + /// Backing field for property. + private string _resourceGroupName; + + /// The name of the resource group within the user's subscription. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the resource group within the user's subscription.")] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the resource group within the user's subscription.", + SerializedName = @"resourceGroupName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Path)] + public string ResourceGroupName { get => this._resourceGroupName; set => this._resourceGroupName = value; } + + /// Backing field for property. + private string[] _subscriptionId; + + /// + /// Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription ID forms part of the + /// URI for every service call. + /// + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.")] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.", + SerializedName = @"subscriptionId", + PossibleTypes = new [] { typeof(string) })] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.DefaultInfo( + Name = @"", + Description =@"", + Script = @"(Get-AzContext).Subscription.Id")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Path)] + public string[] SubscriptionId { get => this._subscriptionId; set => this._subscriptionId = value; } + + /// Backing field for property. + private int _top; + + /// + /// The number of results to return per page for the list operation. Valid range for top parameter is 1 to 100. If not specified, + /// the default number of results to be returned is 20 items per page. + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The number of results to return per page for the list operation. Valid range for top parameter is 1 to 100. If not specified, the default number of results to be returned is 20 items per page.")] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The number of results to return per page for the list operation. Valid range for top parameter is 1 to 100. If not specified, the default number of results to be returned is 20 items per page.", + SerializedName = @"$top", + PossibleTypes = new [] { typeof(int) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Query)] + public int Top { get => this._top; set => this._top = value; } + + /// + /// overrideOnDefault will be called before the regular onDefault has been processed, allowing customization of what + /// happens on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// /// Determines if the rest of the onDefault method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnDefault(global::System.Net.Http.HttpResponseMessage responseMessage, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnOk will be called before the regular onOk has been processed, allowing customization of what happens + /// on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// 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() + { + var telemetryId = Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.GetTelemetryId.Invoke(); + if (telemetryId != "" && telemetryId != "internal") + { + __correlationId = telemetryId; + } + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + + } + + /// + /// Intializes a new instance of the cmdlet class. + /// + public GetAzEventGridSystemTopic_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.EventGrid.Runtime.IEventListener.Signal(string id, global::System.Threading.CancellationToken token, global::System.Func messageData) + { + using( NoSynchronizationContext ) + { + if (token.IsCancellationRequested) + { + return ; + } + + switch ( id ) + { + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Information: + { + var data = messageData(); + WriteInformation(data.Message, new string[]{}); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Error: + { + WriteError(new global::System.Management.Automation.ErrorRecord( new global::System.Exception(messageData().Message), string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null ) ); + return ; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.EventData ), InvocationInformation, this.ParameterSetName, __correlationId, __processRecordId, null ); + if (token.IsCancellationRequested) + { + return ; + } + WriteDebug($"{id}: {(messageData().Message ?? global::System.String.Empty)}"); + } + } + + /// Performs execution of the command. + protected override void ProcessRecord() + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + using( var asyncCommandRuntime = new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token); + } + } + catch (global::System.AggregateException aggregateException) + { + // unroll the inner exceptions to get the root cause + foreach( var innerException in aggregateException.Flatten().InnerExceptions ) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(innerException,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + } + catch (global::System.Exception exception) when ((exception as System.Management.Automation.PipelineStoppedException)== null || (exception as System.Management.Automation.PipelineStoppedException).InnerException != null) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(exception,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + finally + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletProcessRecordEnd).Wait(); + } + } + + /// Performs execution of the command, working asynchronously if required. + /// + /// A that will be complete when handling of the method is completed. + /// + protected async global::System.Threading.Tasks.Task ProcessRecordAsync() + { + using( NoSynchronizationContext ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + foreach( var SubscriptionId in this.SubscriptionId ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await this.Client.SystemTopicsListByResourceGroup(SubscriptionId, ResourceGroupName, this.InvocationInformation.BoundParameters.ContainsKey("Filter") ? Filter : null, this.InvocationInformation.BoundParameters.ContainsKey("Top") ? Top : default(int?), onOk, onDefault, this, Pipeline); + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.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,Top=this.InvocationInformation.BoundParameters.ContainsKey("Top") ? Top : default(int?)}) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(urexception.Message) { RecommendedAction = urexception.Action } + }); + } + finally + { + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Cancel(); + base.StopProcessing(); + } + + /// + /// a delegate that is called when the remote service returns default (any response code not handled elsewhere). + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onDefault(global::System.Net.Http.HttpResponseMessage responseMessage) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnDefault(responseMessage, ref _returnNow); + // if overrideOnDefault has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // Error Response : default + // Unrecognized Response. Create an error record based on what we have. + var ex = new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.RestException(responseMessage); + 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, Top=this.InvocationInformation.BoundParameters.ContainsKey("Top") ? Top : default(int?) }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(ex.Message) { RecommendedAction = ex.Action } + }); + } + } + + /// a delegate that is called when the remote service returns 200 (OK). + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnOk(responseMessage, response, ref _returnNow); + // if overrideOnOk has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // onOk - response for 200 / application/json + // response should be returning an array of some kind. +Pageable + // pageable / value / nextLink + var result = await response; + WriteObject(result.Value,true); + _nextLink = result.NextLink; + if (_isFirst) + { + _isFirst = false; + while (_nextLink != null) + { + if (responseMessage.RequestMessage is System.Net.Http.HttpRequestMessage requestMessage ) + { + requestMessage = requestMessage.Clone(new global::System.Uri( _nextLink ),Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Method.Get ); + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.FollowingNextLink); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await this.Client.SystemTopicsListByResourceGroup_Call(requestMessage, onOk, onDefault, this, Pipeline); + } + } + } + } + } + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/cmdlets/GetAzEventGridTopicEventSubscriptionDeliveryAttribute_Get.cs b/swaggerci/eventgrid/generated/cmdlets/GetAzEventGridTopicEventSubscriptionDeliveryAttribute_Get.cs new file mode 100644 index 000000000000..f59a02dc24e7 --- /dev/null +++ b/swaggerci/eventgrid/generated/cmdlets/GetAzEventGridTopicEventSubscriptionDeliveryAttribute_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.EventGrid.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Extensions; + using System; + + /// Get all delivery attributes for an event subscription for topic. + /// + /// [OpenAPI] GetDeliveryAttributes=>POST:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.EventGrid/topics/{topicName}/eventSubscriptions/{eventSubscriptionName}/getDeliveryAttributes" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsCommon.Get, @"AzEventGridTopicEventSubscriptionDeliveryAttribute_Get", SupportsShouldProcess = true)] + [global::System.Management.Automation.OutputType(typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDeliveryAttributeMapping))] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Description(@"Get all delivery attributes for an event subscription for topic.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Generated] + public partial class GetAzEventGridTopicEventSubscriptionDeliveryAttribute_Get : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener + { + /// A unique id generatd for the this cmdlet when it is instantiated. + private string __correlationId = System.Guid.NewGuid().ToString(); + + /// A copy of the Invocation Info (necessary to allow asJob to clone this cmdlet) + private global::System.Management.Automation.InvocationInfo __invocationInfo; + + /// A unique id generatd for the this cmdlet when ProcessRecord() is called. + private string __processRecordId; + + /// + /// The for this operation. + /// + private global::System.Threading.CancellationTokenSource _cancellationTokenSource = new global::System.Threading.CancellationTokenSource(); + + /// Wait for .NET debugger to attach + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Wait for .NET debugger to attach")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.EventGridManagementClient Client => Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.ClientAPI; + + /// + /// The credentials, account, tenant, and subscription used for communication with Azure + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The credentials, account, tenant, and subscription used for communication with Azure.")] + [global::System.Management.Automation.ValidateNotNull] + [global::System.Management.Automation.Alias("AzureRMContext", "AzureCredential")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Azure)] + public global::System.Management.Automation.PSObject DefaultProfile { get; set; } + + /// Backing field for property. + private string _eventSubscriptionName; + + /// Name of the event subscription. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Name of the event subscription.")] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Name of the event subscription.", + SerializedName = @"eventSubscriptionName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Path)] + public string EventSubscriptionName { get => this._eventSubscriptionName; set => this._eventSubscriptionName = 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.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[] HttpPipelineAppend { get; set; } + + /// SendAsync Pipeline Steps to be prepended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be prepended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[] HttpPipelinePrepend { get; set; } + + /// Accessor for our copy of the InvocationInfo. + public global::System.Management.Automation.InvocationInfo InvocationInformation { get => __invocationInfo = __invocationInfo ?? this.MyInvocation ; set { __invocationInfo = value; } } + + /// + /// cancellation delegate. Stops the cmdlet when called. + /// + global::System.Action Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Runtime.HttpPipeline Pipeline { get; set; } + + /// The URI for the proxy server to use + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "The URI for the proxy server to use")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Uri Proxy { get; set; } + + /// Credentials for a proxy server to use for the remote call + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Credentials for a proxy server to use for the remote call")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Management.Automation.PSCredential ProxyCredential { get; set; } + + /// Use the default credentials for the proxy + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Use the default credentials for the proxy")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter ProxyUseDefaultCredentials { get; set; } + + /// Backing field for property. + private string _resourceGroupName; + + /// The name of the resource group within the user's subscription. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the resource group within the user's subscription.")] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the resource group within the user's subscription.", + SerializedName = @"resourceGroupName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Path)] + public string ResourceGroupName { get => this._resourceGroupName; set => this._resourceGroupName = value; } + + /// Backing field for property. + private string[] _subscriptionId; + + /// + /// Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription ID forms part of the + /// URI for every service call. + /// + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.")] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.", + SerializedName = @"subscriptionId", + PossibleTypes = new [] { typeof(string) })] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.DefaultInfo( + Name = @"", + Description =@"", + Script = @"(Get-AzContext).Subscription.Id")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Path)] + public string[] SubscriptionId { get => this._subscriptionId; set => this._subscriptionId = value; } + + /// Backing field for property. + private string _topicName; + + /// Name of the domain topic. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Name of the domain topic.")] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Name of the domain topic.", + SerializedName = @"topicName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Path)] + public string TopicName { get => this._topicName; set => this._topicName = value; } + + /// + /// overrideOnDefault will be called before the regular onDefault has been processed, allowing customization of what + /// happens on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// /// Determines if the rest of the onDefault method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnDefault(global::System.Net.Http.HttpResponseMessage responseMessage, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnOk will be called before the regular onOk has been processed, allowing customization of what happens + /// on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// 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() + { + var telemetryId = Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.GetTelemetryId.Invoke(); + if (telemetryId != "" && telemetryId != "internal") + { + __correlationId = telemetryId; + } + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + + } + + /// + /// Intializes a new instance of the cmdlet class. + /// + public GetAzEventGridTopicEventSubscriptionDeliveryAttribute_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.EventGrid.Runtime.IEventListener.Signal(string id, global::System.Threading.CancellationToken token, global::System.Func messageData) + { + using( NoSynchronizationContext ) + { + if (token.IsCancellationRequested) + { + return ; + } + + switch ( id ) + { + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Information: + { + var data = messageData(); + WriteInformation(data.Message, new string[]{}); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Error: + { + WriteError(new global::System.Management.Automation.ErrorRecord( new global::System.Exception(messageData().Message), string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null ) ); + return ; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.EventData ), InvocationInformation, this.ParameterSetName, __correlationId, __processRecordId, null ); + if (token.IsCancellationRequested) + { + return ; + } + WriteDebug($"{id}: {(messageData().Message ?? global::System.String.Empty)}"); + } + } + + /// Performs execution of the command. + protected override void ProcessRecord() + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + if (ShouldProcess($"Call remote 'TopicEventSubscriptionsGetDeliveryAttributes' operation")) + { + using( var asyncCommandRuntime = new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token); + } + } + } + catch (global::System.AggregateException aggregateException) + { + // unroll the inner exceptions to get the root cause + foreach( var innerException in aggregateException.Flatten().InnerExceptions ) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(innerException,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + } + catch (global::System.Exception exception) when ((exception as System.Management.Automation.PipelineStoppedException)== null || (exception as System.Management.Automation.PipelineStoppedException).InnerException != null) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(exception,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + finally + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletProcessRecordEnd).Wait(); + } + } + + /// Performs execution of the command, working asynchronously if required. + /// + /// A that will be complete when handling of the method is completed. + /// + protected async global::System.Threading.Tasks.Task ProcessRecordAsync() + { + using( NoSynchronizationContext ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + foreach( var SubscriptionId in this.SubscriptionId ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await this.Client.TopicEventSubscriptionsGetDeliveryAttributes(SubscriptionId, ResourceGroupName, TopicName, EventSubscriptionName, onOk, onDefault, this, Pipeline); + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.UndeclaredResponseException urexception) + { + WriteError(new global::System.Management.Automation.ErrorRecord(urexception, urexception.StatusCode.ToString(), global::System.Management.Automation.ErrorCategory.InvalidOperation, new { SubscriptionId=SubscriptionId,ResourceGroupName=ResourceGroupName,TopicName=TopicName,EventSubscriptionName=EventSubscriptionName}) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(urexception.Message) { RecommendedAction = urexception.Action } + }); + } + finally + { + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Cancel(); + base.StopProcessing(); + } + + /// + /// a delegate that is called when the remote service returns default (any response code not handled elsewhere). + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onDefault(global::System.Net.Http.HttpResponseMessage responseMessage) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnDefault(responseMessage, ref _returnNow); + // if overrideOnDefault has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // Error Response : default + // Unrecognized Response. Create an error record based on what we have. + var ex = new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.RestException(responseMessage); + WriteError( new global::System.Management.Automation.ErrorRecord(ex, ex.Code, global::System.Management.Automation.ErrorCategory.InvalidOperation, new { SubscriptionId=SubscriptionId, ResourceGroupName=ResourceGroupName, TopicName=TopicName, EventSubscriptionName=EventSubscriptionName }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(ex.Message) { RecommendedAction = ex.Action } + }); + } + } + + /// a delegate that is called when the remote service returns 200 (OK). + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnOk(responseMessage, response, ref _returnNow); + // if overrideOnOk has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // onOk - response for 200 / application/json + // response should be returning an array of some kind. +Pageable + // nested-array / value / + WriteObject((await response).Value, true); + } + } + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/cmdlets/GetAzEventGridTopicEventSubscriptionDeliveryAttribute_GetViaIdentity.cs b/swaggerci/eventgrid/generated/cmdlets/GetAzEventGridTopicEventSubscriptionDeliveryAttribute_GetViaIdentity.cs new file mode 100644 index 000000000000..c12324fcbec0 --- /dev/null +++ b/swaggerci/eventgrid/generated/cmdlets/GetAzEventGridTopicEventSubscriptionDeliveryAttribute_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.EventGrid.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Extensions; + using System; + + /// Get all delivery attributes for an event subscription for topic. + /// + /// [OpenAPI] GetDeliveryAttributes=>POST:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.EventGrid/topics/{topicName}/eventSubscriptions/{eventSubscriptionName}/getDeliveryAttributes" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsCommon.Get, @"AzEventGridTopicEventSubscriptionDeliveryAttribute_GetViaIdentity", SupportsShouldProcess = true)] + [global::System.Management.Automation.OutputType(typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDeliveryAttributeMapping))] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Description(@"Get all delivery attributes for an event subscription for topic.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Generated] + public partial class GetAzEventGridTopicEventSubscriptionDeliveryAttribute_GetViaIdentity : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener + { + /// A unique id generatd for the this cmdlet when it is instantiated. + private string __correlationId = System.Guid.NewGuid().ToString(); + + /// A copy of the Invocation Info (necessary to allow asJob to clone this cmdlet) + private global::System.Management.Automation.InvocationInfo __invocationInfo; + + /// A unique id generatd for the this cmdlet when ProcessRecord() is called. + private string __processRecordId; + + /// + /// The for this operation. + /// + private global::System.Threading.CancellationTokenSource _cancellationTokenSource = new global::System.Threading.CancellationTokenSource(); + + /// Wait for .NET debugger to attach + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Wait for .NET debugger to attach")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.EventGridManagementClient Client => Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.ClientAPI; + + /// + /// The credentials, account, tenant, and subscription used for communication with Azure + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The credentials, account, tenant, and subscription used for communication with Azure.")] + [global::System.Management.Automation.ValidateNotNull] + [global::System.Management.Automation.Alias("AzureRMContext", "AzureCredential")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Azure)] + public global::System.Management.Automation.PSObject DefaultProfile { get; set; } + + /// SendAsync Pipeline Steps to be appended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be appended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[] HttpPipelineAppend { get; set; } + + /// SendAsync Pipeline Steps to be prepended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be prepended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[] HttpPipelinePrepend { get; set; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.IEventGridIdentity _inputObject; + + /// Identity Parameter + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Identity Parameter", ValueFromPipeline = true)] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Path)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.IEventGridIdentity InputObject { get => this._inputObject; set => this._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.EventGrid.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Runtime.HttpPipeline Pipeline { get; set; } + + /// The URI for the proxy server to use + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "The URI for the proxy server to use")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Uri Proxy { get; set; } + + /// Credentials for a proxy server to use for the remote call + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Credentials for a proxy server to use for the remote call")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Management.Automation.PSCredential ProxyCredential { get; set; } + + /// Use the default credentials for the proxy + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Use the default credentials for the proxy")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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. + /// /// Determines if the rest of the onDefault method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnDefault(global::System.Net.Http.HttpResponseMessage responseMessage, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnOk will be called before the regular onOk has been processed, allowing customization of what happens + /// on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// 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() + { + var telemetryId = Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.GetTelemetryId.Invoke(); + if (telemetryId != "" && telemetryId != "internal") + { + __correlationId = telemetryId; + } + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + + } + + /// + /// Intializes a new instance of the cmdlet + /// class. + /// + public GetAzEventGridTopicEventSubscriptionDeliveryAttribute_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.EventGrid.Runtime.IEventListener.Signal(string id, global::System.Threading.CancellationToken token, global::System.Func messageData) + { + using( NoSynchronizationContext ) + { + if (token.IsCancellationRequested) + { + return ; + } + + switch ( id ) + { + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Information: + { + var data = messageData(); + WriteInformation(data.Message, new string[]{}); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Error: + { + WriteError(new global::System.Management.Automation.ErrorRecord( new global::System.Exception(messageData().Message), string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null ) ); + return ; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.EventData ), InvocationInformation, this.ParameterSetName, __correlationId, __processRecordId, null ); + if (token.IsCancellationRequested) + { + return ; + } + WriteDebug($"{id}: {(messageData().Message ?? global::System.String.Empty)}"); + } + } + + /// Performs execution of the command. + protected override void ProcessRecord() + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + if (ShouldProcess($"Call remote 'TopicEventSubscriptionsGetDeliveryAttributes' operation")) + { + using( var asyncCommandRuntime = new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token); + } + } + } + catch (global::System.AggregateException aggregateException) + { + // unroll the inner exceptions to get the root cause + foreach( var innerException in aggregateException.Flatten().InnerExceptions ) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(innerException,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + } + catch (global::System.Exception exception) when ((exception as System.Management.Automation.PipelineStoppedException)== null || (exception as System.Management.Automation.PipelineStoppedException).InnerException != null) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(exception,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + finally + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletProcessRecordEnd).Wait(); + } + } + + /// Performs execution of the command, working asynchronously if required. + /// + /// A that will be complete when handling of the method is completed. + /// + protected async global::System.Threading.Tasks.Task ProcessRecordAsync() + { + using( NoSynchronizationContext ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + if (InputObject?.Id != null) + { + await this.Client.TopicEventSubscriptionsGetDeliveryAttributesViaIdentity(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.TopicName) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.TopicName"),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, InputObject) ); + } + if (null == InputObject.EventSubscriptionName) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.EventSubscriptionName"),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, InputObject) ); + } + await this.Client.TopicEventSubscriptionsGetDeliveryAttributes(InputObject.SubscriptionId ?? null, InputObject.ResourceGroupName ?? null, InputObject.TopicName ?? null, InputObject.EventSubscriptionName ?? null, onOk, onDefault, this, Pipeline); + } + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Cancel(); + base.StopProcessing(); + } + + /// + /// a delegate that is called when the remote service returns default (any response code not handled elsewhere). + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onDefault(global::System.Net.Http.HttpResponseMessage responseMessage) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnDefault(responseMessage, ref _returnNow); + // if overrideOnDefault has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // Error Response : default + // Unrecognized Response. Create an error record based on what we have. + var ex = new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.RestException(responseMessage); + WriteError( new global::System.Management.Automation.ErrorRecord(ex, ex.Code, global::System.Management.Automation.ErrorCategory.InvalidOperation, new { }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(ex.Message) { RecommendedAction = ex.Action } + }); + } + } + + /// a delegate that is called when the remote service returns 200 (OK). + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnOk(responseMessage, response, ref _returnNow); + // if overrideOnOk has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // onOk - response for 200 / application/json + // response should be returning an array of some kind. +Pageable + // nested-array / value / + WriteObject((await response).Value, true); + } + } + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/cmdlets/GetAzEventGridTopicEventSubscriptionFullUrl_Get.cs b/swaggerci/eventgrid/generated/cmdlets/GetAzEventGridTopicEventSubscriptionFullUrl_Get.cs new file mode 100644 index 000000000000..3470fcd1ceb9 --- /dev/null +++ b/swaggerci/eventgrid/generated/cmdlets/GetAzEventGridTopicEventSubscriptionFullUrl_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.EventGrid.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Extensions; + using System; + + /// Get the full endpoint URL for an event subscription for topic. + /// + /// [OpenAPI] GetFullUrl=>POST:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.EventGrid/topics/{topicName}/eventSubscriptions/{eventSubscriptionName}/getFullUrl" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsCommon.Get, @"AzEventGridTopicEventSubscriptionFullUrl_Get", SupportsShouldProcess = true)] + [global::System.Management.Automation.OutputType(typeof(string))] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Description(@"Get the full endpoint URL for an event subscription for topic.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Generated] + public partial class GetAzEventGridTopicEventSubscriptionFullUrl_Get : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener + { + /// A unique id generatd for the this cmdlet when it is instantiated. + private string __correlationId = System.Guid.NewGuid().ToString(); + + /// A copy of the Invocation Info (necessary to allow asJob to clone this cmdlet) + private global::System.Management.Automation.InvocationInfo __invocationInfo; + + /// A unique id generatd for the this cmdlet when ProcessRecord() is called. + private string __processRecordId; + + /// + /// The for this operation. + /// + private global::System.Threading.CancellationTokenSource _cancellationTokenSource = new global::System.Threading.CancellationTokenSource(); + + /// Wait for .NET debugger to attach + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Wait for .NET debugger to attach")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.EventGridManagementClient Client => Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.ClientAPI; + + /// + /// The credentials, account, tenant, and subscription used for communication with Azure + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The credentials, account, tenant, and subscription used for communication with Azure.")] + [global::System.Management.Automation.ValidateNotNull] + [global::System.Management.Automation.Alias("AzureRMContext", "AzureCredential")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Azure)] + public global::System.Management.Automation.PSObject DefaultProfile { get; set; } + + /// Backing field for property. + private string _eventSubscriptionName; + + /// Name of the event subscription. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Name of the event subscription.")] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Name of the event subscription.", + SerializedName = @"eventSubscriptionName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Path)] + public string EventSubscriptionName { get => this._eventSubscriptionName; set => this._eventSubscriptionName = 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.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[] HttpPipelineAppend { get; set; } + + /// SendAsync Pipeline Steps to be prepended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be prepended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[] HttpPipelinePrepend { get; set; } + + /// Accessor for our copy of the InvocationInfo. + public global::System.Management.Automation.InvocationInfo InvocationInformation { get => __invocationInfo = __invocationInfo ?? this.MyInvocation ; set { __invocationInfo = value; } } + + /// + /// cancellation delegate. Stops the cmdlet when called. + /// + global::System.Action Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Runtime.HttpPipeline Pipeline { get; set; } + + /// The URI for the proxy server to use + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "The URI for the proxy server to use")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Uri Proxy { get; set; } + + /// Credentials for a proxy server to use for the remote call + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Credentials for a proxy server to use for the remote call")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Management.Automation.PSCredential ProxyCredential { get; set; } + + /// Use the default credentials for the proxy + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Use the default credentials for the proxy")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter ProxyUseDefaultCredentials { get; set; } + + /// Backing field for property. + private string _resourceGroupName; + + /// The name of the resource group within the user's subscription. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the resource group within the user's subscription.")] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the resource group within the user's subscription.", + SerializedName = @"resourceGroupName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Path)] + public string ResourceGroupName { get => this._resourceGroupName; set => this._resourceGroupName = value; } + + /// Backing field for property. + private string[] _subscriptionId; + + /// + /// Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription ID forms part of the + /// URI for every service call. + /// + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.")] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.", + SerializedName = @"subscriptionId", + PossibleTypes = new [] { typeof(string) })] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.DefaultInfo( + Name = @"", + Description =@"", + Script = @"(Get-AzContext).Subscription.Id")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Path)] + public string[] SubscriptionId { get => this._subscriptionId; set => this._subscriptionId = value; } + + /// Backing field for property. + private string _topicName; + + /// Name of the domain topic. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Name of the domain topic.")] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Name of the domain topic.", + SerializedName = @"topicName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Path)] + public string TopicName { get => this._topicName; set => this._topicName = value; } + + /// + /// overrideOnDefault will be called before the regular onDefault has been processed, allowing customization of what + /// happens on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// /// Determines if the rest of the onDefault method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnDefault(global::System.Net.Http.HttpResponseMessage responseMessage, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnOk will be called before the regular onOk has been processed, allowing customization of what happens + /// on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// 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() + { + var telemetryId = Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.GetTelemetryId.Invoke(); + if (telemetryId != "" && telemetryId != "internal") + { + __correlationId = telemetryId; + } + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + + } + + /// + /// Intializes a new instance of the cmdlet class. + /// + public GetAzEventGridTopicEventSubscriptionFullUrl_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.EventGrid.Runtime.IEventListener.Signal(string id, global::System.Threading.CancellationToken token, global::System.Func messageData) + { + using( NoSynchronizationContext ) + { + if (token.IsCancellationRequested) + { + return ; + } + + switch ( id ) + { + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Information: + { + var data = messageData(); + WriteInformation(data.Message, new string[]{}); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Error: + { + WriteError(new global::System.Management.Automation.ErrorRecord( new global::System.Exception(messageData().Message), string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null ) ); + return ; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.EventData ), InvocationInformation, this.ParameterSetName, __correlationId, __processRecordId, null ); + if (token.IsCancellationRequested) + { + return ; + } + WriteDebug($"{id}: {(messageData().Message ?? global::System.String.Empty)}"); + } + } + + /// Performs execution of the command. + protected override void ProcessRecord() + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + if (ShouldProcess($"Call remote 'TopicEventSubscriptionsGetFullUrl' operation")) + { + using( var asyncCommandRuntime = new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token); + } + } + } + catch (global::System.AggregateException aggregateException) + { + // unroll the inner exceptions to get the root cause + foreach( var innerException in aggregateException.Flatten().InnerExceptions ) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(innerException,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + } + catch (global::System.Exception exception) when ((exception as System.Management.Automation.PipelineStoppedException)== null || (exception as System.Management.Automation.PipelineStoppedException).InnerException != null) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(exception,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + finally + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletProcessRecordEnd).Wait(); + } + } + + /// Performs execution of the command, working asynchronously if required. + /// + /// A that will be complete when handling of the method is completed. + /// + protected async global::System.Threading.Tasks.Task ProcessRecordAsync() + { + using( NoSynchronizationContext ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + foreach( var SubscriptionId in this.SubscriptionId ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await this.Client.TopicEventSubscriptionsGetFullUrl(SubscriptionId, ResourceGroupName, TopicName, EventSubscriptionName, onOk, onDefault, this, Pipeline); + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.UndeclaredResponseException urexception) + { + WriteError(new global::System.Management.Automation.ErrorRecord(urexception, urexception.StatusCode.ToString(), global::System.Management.Automation.ErrorCategory.InvalidOperation, new { SubscriptionId=SubscriptionId,ResourceGroupName=ResourceGroupName,TopicName=TopicName,EventSubscriptionName=EventSubscriptionName}) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(urexception.Message) { RecommendedAction = urexception.Action } + }); + } + finally + { + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Cancel(); + base.StopProcessing(); + } + + /// + /// a delegate that is called when the remote service returns default (any response code not handled elsewhere). + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onDefault(global::System.Net.Http.HttpResponseMessage responseMessage) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnDefault(responseMessage, ref _returnNow); + // if overrideOnDefault has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // Error Response : default + // Unrecognized Response. Create an error record based on what we have. + var ex = new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.RestException(responseMessage); + WriteError( new global::System.Management.Automation.ErrorRecord(ex, ex.Code, global::System.Management.Automation.ErrorCategory.InvalidOperation, new { SubscriptionId=SubscriptionId, ResourceGroupName=ResourceGroupName, TopicName=TopicName, EventSubscriptionName=EventSubscriptionName }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(ex.Message) { RecommendedAction = ex.Action } + }); + } + } + + /// a delegate that is called when the remote service returns 200 (OK). + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as 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.EventGrid.Models.Api20211015Preview.IEventSubscriptionFullUrl + WriteObject((await response).EndpointUrl); + } + } + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/cmdlets/GetAzEventGridTopicEventSubscriptionFullUrl_GetViaIdentity.cs b/swaggerci/eventgrid/generated/cmdlets/GetAzEventGridTopicEventSubscriptionFullUrl_GetViaIdentity.cs new file mode 100644 index 000000000000..14621972995f --- /dev/null +++ b/swaggerci/eventgrid/generated/cmdlets/GetAzEventGridTopicEventSubscriptionFullUrl_GetViaIdentity.cs @@ -0,0 +1,380 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Extensions; + using System; + + /// Get the full endpoint URL for an event subscription for topic. + /// + /// [OpenAPI] GetFullUrl=>POST:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.EventGrid/topics/{topicName}/eventSubscriptions/{eventSubscriptionName}/getFullUrl" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsCommon.Get, @"AzEventGridTopicEventSubscriptionFullUrl_GetViaIdentity", SupportsShouldProcess = true)] + [global::System.Management.Automation.OutputType(typeof(string))] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Description(@"Get the full endpoint URL for an event subscription for topic.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Generated] + public partial class GetAzEventGridTopicEventSubscriptionFullUrl_GetViaIdentity : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener + { + /// A unique id generatd for the this cmdlet when it is instantiated. + private string __correlationId = System.Guid.NewGuid().ToString(); + + /// A copy of the Invocation Info (necessary to allow asJob to clone this cmdlet) + private global::System.Management.Automation.InvocationInfo __invocationInfo; + + /// A unique id generatd for the this cmdlet when ProcessRecord() is called. + private string __processRecordId; + + /// + /// The for this operation. + /// + private global::System.Threading.CancellationTokenSource _cancellationTokenSource = new global::System.Threading.CancellationTokenSource(); + + /// Wait for .NET debugger to attach + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Wait for .NET debugger to attach")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.EventGridManagementClient Client => Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.ClientAPI; + + /// + /// The credentials, account, tenant, and subscription used for communication with Azure + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The credentials, account, tenant, and subscription used for communication with Azure.")] + [global::System.Management.Automation.ValidateNotNull] + [global::System.Management.Automation.Alias("AzureRMContext", "AzureCredential")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Azure)] + public global::System.Management.Automation.PSObject DefaultProfile { get; set; } + + /// SendAsync Pipeline Steps to be appended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be appended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[] HttpPipelineAppend { get; set; } + + /// SendAsync Pipeline Steps to be prepended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be prepended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[] HttpPipelinePrepend { get; set; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.IEventGridIdentity _inputObject; + + /// Identity Parameter + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Identity Parameter", ValueFromPipeline = true)] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Path)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.IEventGridIdentity InputObject { get => this._inputObject; set => this._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.EventGrid.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Runtime.HttpPipeline Pipeline { get; set; } + + /// The URI for the proxy server to use + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "The URI for the proxy server to use")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Uri Proxy { get; set; } + + /// Credentials for a proxy server to use for the remote call + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Credentials for a proxy server to use for the remote call")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Management.Automation.PSCredential ProxyCredential { get; set; } + + /// Use the default credentials for the proxy + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Use the default credentials for the proxy")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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. + /// /// Determines if the rest of the onDefault method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnDefault(global::System.Net.Http.HttpResponseMessage responseMessage, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnOk will be called before the regular onOk has been processed, allowing customization of what happens + /// on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// 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() + { + var telemetryId = Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.GetTelemetryId.Invoke(); + if (telemetryId != "" && telemetryId != "internal") + { + __correlationId = telemetryId; + } + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + + } + + /// + /// Intializes a new instance of the cmdlet class. + /// + public GetAzEventGridTopicEventSubscriptionFullUrl_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.EventGrid.Runtime.IEventListener.Signal(string id, global::System.Threading.CancellationToken token, global::System.Func messageData) + { + using( NoSynchronizationContext ) + { + if (token.IsCancellationRequested) + { + return ; + } + + switch ( id ) + { + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Information: + { + var data = messageData(); + WriteInformation(data.Message, new string[]{}); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Error: + { + WriteError(new global::System.Management.Automation.ErrorRecord( new global::System.Exception(messageData().Message), string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null ) ); + return ; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.EventData ), InvocationInformation, this.ParameterSetName, __correlationId, __processRecordId, null ); + if (token.IsCancellationRequested) + { + return ; + } + WriteDebug($"{id}: {(messageData().Message ?? global::System.String.Empty)}"); + } + } + + /// Performs execution of the command. + protected override void ProcessRecord() + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + if (ShouldProcess($"Call remote 'TopicEventSubscriptionsGetFullUrl' operation")) + { + using( var asyncCommandRuntime = new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token); + } + } + } + catch (global::System.AggregateException aggregateException) + { + // unroll the inner exceptions to get the root cause + foreach( var innerException in aggregateException.Flatten().InnerExceptions ) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(innerException,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + } + catch (global::System.Exception exception) when ((exception as System.Management.Automation.PipelineStoppedException)== null || (exception as System.Management.Automation.PipelineStoppedException).InnerException != null) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(exception,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + finally + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletProcessRecordEnd).Wait(); + } + } + + /// Performs execution of the command, working asynchronously if required. + /// + /// A that will be complete when handling of the method is completed. + /// + protected async global::System.Threading.Tasks.Task ProcessRecordAsync() + { + using( NoSynchronizationContext ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + if (InputObject?.Id != null) + { + await this.Client.TopicEventSubscriptionsGetFullUrlViaIdentity(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.TopicName) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.TopicName"),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, InputObject) ); + } + if (null == InputObject.EventSubscriptionName) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.EventSubscriptionName"),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, InputObject) ); + } + await this.Client.TopicEventSubscriptionsGetFullUrl(InputObject.SubscriptionId ?? null, InputObject.ResourceGroupName ?? null, InputObject.TopicName ?? null, InputObject.EventSubscriptionName ?? null, onOk, onDefault, this, Pipeline); + } + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Cancel(); + base.StopProcessing(); + } + + /// + /// a delegate that is called when the remote service returns default (any response code not handled elsewhere). + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onDefault(global::System.Net.Http.HttpResponseMessage responseMessage) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnDefault(responseMessage, ref _returnNow); + // if overrideOnDefault has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // Error Response : default + // Unrecognized Response. Create an error record based on what we have. + var ex = new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.RestException(responseMessage); + WriteError( new global::System.Management.Automation.ErrorRecord(ex, ex.Code, global::System.Management.Automation.ErrorCategory.InvalidOperation, new { }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(ex.Message) { RecommendedAction = ex.Action } + }); + } + } + + /// a delegate that is called when the remote service returns 200 (OK). + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as 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.EventGrid.Models.Api20211015Preview.IEventSubscriptionFullUrl + WriteObject((await response).EndpointUrl); + } + } + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/cmdlets/GetAzEventGridTopicEventSubscription_Get.cs b/swaggerci/eventgrid/generated/cmdlets/GetAzEventGridTopicEventSubscription_Get.cs new file mode 100644 index 000000000000..6b7997bc9b38 --- /dev/null +++ b/swaggerci/eventgrid/generated/cmdlets/GetAzEventGridTopicEventSubscription_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.EventGrid.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Extensions; + using System; + + /// Get properties of an event subscription of a topic. + /// + /// [OpenAPI] Get=>GET:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.EventGrid/topics/{topicName}/eventSubscriptions/{eventSubscriptionName}" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsCommon.Get, @"AzEventGridTopicEventSubscription_Get")] + [global::System.Management.Automation.OutputType(typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscription))] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Description(@"Get properties of an event subscription of a topic.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Generated] + public partial class GetAzEventGridTopicEventSubscription_Get : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener + { + /// A unique id generatd for the this cmdlet when it is instantiated. + private string __correlationId = System.Guid.NewGuid().ToString(); + + /// A copy of the Invocation Info (necessary to allow asJob to clone this cmdlet) + private global::System.Management.Automation.InvocationInfo __invocationInfo; + + /// A unique id generatd for the this cmdlet when ProcessRecord() is called. + private string __processRecordId; + + /// + /// The for this operation. + /// + private global::System.Threading.CancellationTokenSource _cancellationTokenSource = new global::System.Threading.CancellationTokenSource(); + + /// Wait for .NET debugger to attach + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Wait for .NET debugger to attach")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.EventGridManagementClient Client => Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.ClientAPI; + + /// + /// The credentials, account, tenant, and subscription used for communication with Azure + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The credentials, account, tenant, and subscription used for communication with Azure.")] + [global::System.Management.Automation.ValidateNotNull] + [global::System.Management.Automation.Alias("AzureRMContext", "AzureCredential")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Azure)] + public global::System.Management.Automation.PSObject DefaultProfile { get; set; } + + /// Backing field for property. + private string _eventSubscriptionName; + + /// + /// Name of the event subscription to be found. Event subscription names must be between 3 and 100 characters in length and + /// use alphanumeric letters only. + /// + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Name of the event subscription to be found. Event subscription names must be between 3 and 100 characters in length and use alphanumeric letters only.")] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Name of the event subscription to be found. Event subscription names must be between 3 and 100 characters in length and use alphanumeric letters only.", + SerializedName = @"eventSubscriptionName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Path)] + public string EventSubscriptionName { get => this._eventSubscriptionName; set => this._eventSubscriptionName = 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.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[] HttpPipelineAppend { get; set; } + + /// SendAsync Pipeline Steps to be prepended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be prepended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[] HttpPipelinePrepend { get; set; } + + /// Accessor for our copy of the InvocationInfo. + public global::System.Management.Automation.InvocationInfo InvocationInformation { get => __invocationInfo = __invocationInfo ?? this.MyInvocation ; set { __invocationInfo = value; } } + + /// + /// cancellation delegate. Stops the cmdlet when called. + /// + global::System.Action Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Runtime.HttpPipeline Pipeline { get; set; } + + /// The URI for the proxy server to use + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "The URI for the proxy server to use")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Uri Proxy { get; set; } + + /// Credentials for a proxy server to use for the remote call + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Credentials for a proxy server to use for the remote call")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Management.Automation.PSCredential ProxyCredential { get; set; } + + /// Use the default credentials for the proxy + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Use the default credentials for the proxy")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter ProxyUseDefaultCredentials { get; set; } + + /// Backing field for property. + private string _resourceGroupName; + + /// The name of the resource group within the user's subscription. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the resource group within the user's subscription.")] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the resource group within the user's subscription.", + SerializedName = @"resourceGroupName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Path)] + public string ResourceGroupName { get => this._resourceGroupName; set => this._resourceGroupName = value; } + + /// Backing field for property. + private string[] _subscriptionId; + + /// + /// Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription ID forms part of the + /// URI for every service call. + /// + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.")] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.", + SerializedName = @"subscriptionId", + PossibleTypes = new [] { typeof(string) })] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.DefaultInfo( + Name = @"", + Description =@"", + Script = @"(Get-AzContext).Subscription.Id")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Path)] + public string[] SubscriptionId { get => this._subscriptionId; set => this._subscriptionId = value; } + + /// Backing field for property. + private string _topicName; + + /// Name of the partner topic. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Name of the partner topic.")] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Name of the partner topic.", + SerializedName = @"topicName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Path)] + public string TopicName { get => this._topicName; set => this._topicName = value; } + + /// + /// overrideOnDefault will be called before the regular onDefault has been processed, allowing customization of what + /// happens on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// /// Determines if the rest of the onDefault method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnDefault(global::System.Net.Http.HttpResponseMessage responseMessage, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnOk will be called before the regular onOk has been processed, allowing customization of what happens + /// on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// 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() + { + var telemetryId = Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.GetTelemetryId.Invoke(); + if (telemetryId != "" && telemetryId != "internal") + { + __correlationId = telemetryId; + } + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + + } + + /// + /// Intializes a new instance of the cmdlet class. + /// + public GetAzEventGridTopicEventSubscription_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.EventGrid.Runtime.IEventListener.Signal(string id, global::System.Threading.CancellationToken token, global::System.Func messageData) + { + using( NoSynchronizationContext ) + { + if (token.IsCancellationRequested) + { + return ; + } + + switch ( id ) + { + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Information: + { + var data = messageData(); + WriteInformation(data.Message, new string[]{}); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Error: + { + WriteError(new global::System.Management.Automation.ErrorRecord( new global::System.Exception(messageData().Message), string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null ) ); + return ; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.EventData ), InvocationInformation, this.ParameterSetName, __correlationId, __processRecordId, null ); + if (token.IsCancellationRequested) + { + return ; + } + WriteDebug($"{id}: {(messageData().Message ?? global::System.String.Empty)}"); + } + } + + /// Performs execution of the command. + protected override void ProcessRecord() + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + using( var asyncCommandRuntime = new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token); + } + } + catch (global::System.AggregateException aggregateException) + { + // unroll the inner exceptions to get the root cause + foreach( var innerException in aggregateException.Flatten().InnerExceptions ) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(innerException,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + } + catch (global::System.Exception exception) when ((exception as System.Management.Automation.PipelineStoppedException)== null || (exception as System.Management.Automation.PipelineStoppedException).InnerException != null) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(exception,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + finally + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletProcessRecordEnd).Wait(); + } + } + + /// Performs execution of the command, working asynchronously if required. + /// + /// A that will be complete when handling of the method is completed. + /// + protected async global::System.Threading.Tasks.Task ProcessRecordAsync() + { + using( NoSynchronizationContext ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + foreach( var SubscriptionId in this.SubscriptionId ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await this.Client.TopicEventSubscriptionsGet(SubscriptionId, ResourceGroupName, TopicName, EventSubscriptionName, onOk, onDefault, this, Pipeline); + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.UndeclaredResponseException urexception) + { + WriteError(new global::System.Management.Automation.ErrorRecord(urexception, urexception.StatusCode.ToString(), global::System.Management.Automation.ErrorCategory.InvalidOperation, new { SubscriptionId=SubscriptionId,ResourceGroupName=ResourceGroupName,TopicName=TopicName,EventSubscriptionName=EventSubscriptionName}) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(urexception.Message) { RecommendedAction = urexception.Action } + }); + } + finally + { + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Cancel(); + base.StopProcessing(); + } + + /// + /// a delegate that is called when the remote service returns default (any response code not handled elsewhere). + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onDefault(global::System.Net.Http.HttpResponseMessage responseMessage) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnDefault(responseMessage, ref _returnNow); + // if overrideOnDefault has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // Error Response : default + // Unrecognized Response. Create an error record based on what we have. + var ex = new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.RestException(responseMessage); + WriteError( new global::System.Management.Automation.ErrorRecord(ex, ex.Code, global::System.Management.Automation.ErrorCategory.InvalidOperation, new { SubscriptionId=SubscriptionId, ResourceGroupName=ResourceGroupName, TopicName=TopicName, EventSubscriptionName=EventSubscriptionName }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(ex.Message) { RecommendedAction = ex.Action } + }); + } + } + + /// a delegate that is called when the remote service returns 200 (OK). + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as 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.EventGrid.Models.Api20211015Preview.IEventSubscription + WriteObject((await response)); + } + } + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/cmdlets/GetAzEventGridTopicEventSubscription_GetViaIdentity.cs b/swaggerci/eventgrid/generated/cmdlets/GetAzEventGridTopicEventSubscription_GetViaIdentity.cs new file mode 100644 index 000000000000..98f3112e1e96 --- /dev/null +++ b/swaggerci/eventgrid/generated/cmdlets/GetAzEventGridTopicEventSubscription_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.EventGrid.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Extensions; + using System; + + /// Get properties of an event subscription of a topic. + /// + /// [OpenAPI] Get=>GET:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.EventGrid/topics/{topicName}/eventSubscriptions/{eventSubscriptionName}" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsCommon.Get, @"AzEventGridTopicEventSubscription_GetViaIdentity")] + [global::System.Management.Automation.OutputType(typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscription))] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Description(@"Get properties of an event subscription of a topic.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Generated] + public partial class GetAzEventGridTopicEventSubscription_GetViaIdentity : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener + { + /// A unique id generatd for the this cmdlet when it is instantiated. + private string __correlationId = System.Guid.NewGuid().ToString(); + + /// A copy of the Invocation Info (necessary to allow asJob to clone this cmdlet) + private global::System.Management.Automation.InvocationInfo __invocationInfo; + + /// A unique id generatd for the this cmdlet when ProcessRecord() is called. + private string __processRecordId; + + /// + /// The for this operation. + /// + private global::System.Threading.CancellationTokenSource _cancellationTokenSource = new global::System.Threading.CancellationTokenSource(); + + /// Wait for .NET debugger to attach + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Wait for .NET debugger to attach")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.EventGridManagementClient Client => Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.ClientAPI; + + /// + /// The credentials, account, tenant, and subscription used for communication with Azure + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The credentials, account, tenant, and subscription used for communication with Azure.")] + [global::System.Management.Automation.ValidateNotNull] + [global::System.Management.Automation.Alias("AzureRMContext", "AzureCredential")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Azure)] + public global::System.Management.Automation.PSObject DefaultProfile { get; set; } + + /// SendAsync Pipeline Steps to be appended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be appended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[] HttpPipelineAppend { get; set; } + + /// SendAsync Pipeline Steps to be prepended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be prepended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[] HttpPipelinePrepend { get; set; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.IEventGridIdentity _inputObject; + + /// Identity Parameter + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Identity Parameter", ValueFromPipeline = true)] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Path)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.IEventGridIdentity InputObject { get => this._inputObject; set => this._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.EventGrid.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Runtime.HttpPipeline Pipeline { get; set; } + + /// The URI for the proxy server to use + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "The URI for the proxy server to use")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Uri Proxy { get; set; } + + /// Credentials for a proxy server to use for the remote call + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Credentials for a proxy server to use for the remote call")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Management.Automation.PSCredential ProxyCredential { get; set; } + + /// Use the default credentials for the proxy + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Use the default credentials for the proxy")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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. + /// /// Determines if the rest of the onDefault method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnDefault(global::System.Net.Http.HttpResponseMessage responseMessage, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnOk will be called before the regular onOk has been processed, allowing customization of what happens + /// on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// 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() + { + var telemetryId = Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.GetTelemetryId.Invoke(); + if (telemetryId != "" && telemetryId != "internal") + { + __correlationId = telemetryId; + } + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + + } + + /// + /// Intializes a new instance of the cmdlet class. + /// + public GetAzEventGridTopicEventSubscription_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.EventGrid.Runtime.IEventListener.Signal(string id, global::System.Threading.CancellationToken token, global::System.Func messageData) + { + using( NoSynchronizationContext ) + { + if (token.IsCancellationRequested) + { + return ; + } + + switch ( id ) + { + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Information: + { + var data = messageData(); + WriteInformation(data.Message, new string[]{}); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Error: + { + WriteError(new global::System.Management.Automation.ErrorRecord( new global::System.Exception(messageData().Message), string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null ) ); + return ; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.EventData ), InvocationInformation, this.ParameterSetName, __correlationId, __processRecordId, null ); + if (token.IsCancellationRequested) + { + return ; + } + WriteDebug($"{id}: {(messageData().Message ?? global::System.String.Empty)}"); + } + } + + /// Performs execution of the command. + protected override void ProcessRecord() + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + using( var asyncCommandRuntime = new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token); + } + } + catch (global::System.AggregateException aggregateException) + { + // unroll the inner exceptions to get the root cause + foreach( var innerException in aggregateException.Flatten().InnerExceptions ) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(innerException,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + } + catch (global::System.Exception exception) when ((exception as System.Management.Automation.PipelineStoppedException)== null || (exception as System.Management.Automation.PipelineStoppedException).InnerException != null) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(exception,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + finally + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletProcessRecordEnd).Wait(); + } + } + + /// Performs execution of the command, working asynchronously if required. + /// + /// A that will be complete when handling of the method is completed. + /// + protected async global::System.Threading.Tasks.Task ProcessRecordAsync() + { + using( NoSynchronizationContext ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + if (InputObject?.Id != null) + { + await this.Client.TopicEventSubscriptionsGetViaIdentity(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.TopicName) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.TopicName"),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, InputObject) ); + } + if (null == InputObject.EventSubscriptionName) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.EventSubscriptionName"),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, InputObject) ); + } + await this.Client.TopicEventSubscriptionsGet(InputObject.SubscriptionId ?? null, InputObject.ResourceGroupName ?? null, InputObject.TopicName ?? null, InputObject.EventSubscriptionName ?? null, onOk, onDefault, this, Pipeline); + } + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Cancel(); + base.StopProcessing(); + } + + /// + /// a delegate that is called when the remote service returns default (any response code not handled elsewhere). + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onDefault(global::System.Net.Http.HttpResponseMessage responseMessage) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnDefault(responseMessage, ref _returnNow); + // if overrideOnDefault has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // Error Response : default + // Unrecognized Response. Create an error record based on what we have. + var ex = new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.RestException(responseMessage); + WriteError( new global::System.Management.Automation.ErrorRecord(ex, ex.Code, global::System.Management.Automation.ErrorCategory.InvalidOperation, new { }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(ex.Message) { RecommendedAction = ex.Action } + }); + } + } + + /// a delegate that is called when the remote service returns 200 (OK). + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as 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.EventGrid.Models.Api20211015Preview.IEventSubscription + WriteObject((await response)); + } + } + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/cmdlets/GetAzEventGridTopicEventSubscription_List.cs b/swaggerci/eventgrid/generated/cmdlets/GetAzEventGridTopicEventSubscription_List.cs new file mode 100644 index 000000000000..2246a1038bc3 --- /dev/null +++ b/swaggerci/eventgrid/generated/cmdlets/GetAzEventGridTopicEventSubscription_List.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.EventGrid.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Extensions; + using System; + + /// List all event subscriptions that have been created for a specific topic. + /// + /// [OpenAPI] List=>GET:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.EventGrid/topics/{topicName}/eventSubscriptions" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsCommon.Get, @"AzEventGridTopicEventSubscription_List")] + [global::System.Management.Automation.OutputType(typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscription))] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Description(@"List all event subscriptions that have been created for a specific topic.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Generated] + public partial class GetAzEventGridTopicEventSubscription_List : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener + { + /// A unique id generatd for the this cmdlet when it is instantiated. + private string __correlationId = System.Guid.NewGuid().ToString(); + + /// A copy of the Invocation Info (necessary to allow asJob to clone this cmdlet) + private global::System.Management.Automation.InvocationInfo __invocationInfo; + + /// A unique id generatd for the this cmdlet when ProcessRecord() is called. + private string __processRecordId; + + /// + /// The for this operation. + /// + private global::System.Threading.CancellationTokenSource _cancellationTokenSource = new global::System.Threading.CancellationTokenSource(); + + /// Wait for .NET debugger to attach + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Wait for .NET debugger to attach")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.EventGridManagementClient Client => Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.ClientAPI; + + /// + /// The credentials, account, tenant, and subscription used for communication with Azure + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The credentials, account, tenant, and subscription used for communication with Azure.")] + [global::System.Management.Automation.ValidateNotNull] + [global::System.Management.Automation.Alias("AzureRMContext", "AzureCredential")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Azure)] + public global::System.Management.Automation.PSObject DefaultProfile { get; set; } + + /// SendAsync Pipeline Steps to be appended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be appended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[] HttpPipelineAppend { get; set; } + + /// SendAsync Pipeline Steps to be prepended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be prepended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[] HttpPipelinePrepend { get; set; } + + /// Accessor for our copy of the InvocationInfo. + public global::System.Management.Automation.InvocationInfo InvocationInformation { get => __invocationInfo = __invocationInfo ?? this.MyInvocation ; set { __invocationInfo = value; } } + + /// + /// cancellation delegate. Stops the cmdlet when called. + /// + global::System.Action Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Runtime.HttpPipeline Pipeline { get; set; } + + /// The URI for the proxy server to use + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "The URI for the proxy server to use")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Uri Proxy { get; set; } + + /// Credentials for a proxy server to use for the remote call + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Credentials for a proxy server to use for the remote call")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Management.Automation.PSCredential ProxyCredential { get; set; } + + /// Use the default credentials for the proxy + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Use the default credentials for the proxy")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter ProxyUseDefaultCredentials { get; set; } + + /// Backing field for property. + private string _resourceGroupName; + + /// The name of the resource group within the user's subscription. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the resource group within the user's subscription.")] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the resource group within the user's subscription.", + SerializedName = @"resourceGroupName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Path)] + public string ResourceGroupName { get => this._resourceGroupName; set => this._resourceGroupName = value; } + + /// Backing field for property. + private string[] _subscriptionId; + + /// + /// Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription ID forms part of the + /// URI for every service call. + /// + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.")] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.", + SerializedName = @"subscriptionId", + PossibleTypes = new [] { typeof(string) })] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.DefaultInfo( + Name = @"", + Description =@"", + Script = @"(Get-AzContext).Subscription.Id")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Path)] + public string[] SubscriptionId { get => this._subscriptionId; set => this._subscriptionId = value; } + + /// Backing field for property. + private string _topicName; + + /// Name of the topic. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Name of the topic.")] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Name of the topic.", + SerializedName = @"topicName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Path)] + public string TopicName { get => this._topicName; set => this._topicName = value; } + + /// + /// overrideOnDefault will be called before the regular onDefault has been processed, allowing customization of what + /// happens on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// /// Determines if the rest of the onDefault method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnDefault(global::System.Net.Http.HttpResponseMessage responseMessage, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnOk will be called before the regular onOk has been processed, allowing customization of what happens + /// on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// 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() + { + var telemetryId = Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.GetTelemetryId.Invoke(); + if (telemetryId != "" && telemetryId != "internal") + { + __correlationId = telemetryId; + } + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + + } + + /// + /// Intializes a new instance of the cmdlet class. + /// + public GetAzEventGridTopicEventSubscription_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.EventGrid.Runtime.IEventListener.Signal(string id, global::System.Threading.CancellationToken token, global::System.Func messageData) + { + using( NoSynchronizationContext ) + { + if (token.IsCancellationRequested) + { + return ; + } + + switch ( id ) + { + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Information: + { + var data = messageData(); + WriteInformation(data.Message, new string[]{}); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Error: + { + WriteError(new global::System.Management.Automation.ErrorRecord( new global::System.Exception(messageData().Message), string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null ) ); + return ; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.EventData ), InvocationInformation, this.ParameterSetName, __correlationId, __processRecordId, null ); + if (token.IsCancellationRequested) + { + return ; + } + WriteDebug($"{id}: {(messageData().Message ?? global::System.String.Empty)}"); + } + } + + /// Performs execution of the command. + protected override void ProcessRecord() + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + using( var asyncCommandRuntime = new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token); + } + } + catch (global::System.AggregateException aggregateException) + { + // unroll the inner exceptions to get the root cause + foreach( var innerException in aggregateException.Flatten().InnerExceptions ) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(innerException,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + } + catch (global::System.Exception exception) when ((exception as System.Management.Automation.PipelineStoppedException)== null || (exception as System.Management.Automation.PipelineStoppedException).InnerException != null) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(exception,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + finally + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletProcessRecordEnd).Wait(); + } + } + + /// Performs execution of the command, working asynchronously if required. + /// + /// A that will be complete when handling of the method is completed. + /// + protected async global::System.Threading.Tasks.Task ProcessRecordAsync() + { + using( NoSynchronizationContext ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + foreach( var SubscriptionId in this.SubscriptionId ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await this.Client.TopicEventSubscriptionsList(SubscriptionId, ResourceGroupName, TopicName, onOk, onDefault, this, Pipeline); + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.UndeclaredResponseException urexception) + { + WriteError(new global::System.Management.Automation.ErrorRecord(urexception, urexception.StatusCode.ToString(), global::System.Management.Automation.ErrorCategory.InvalidOperation, new { SubscriptionId=SubscriptionId,ResourceGroupName=ResourceGroupName,TopicName=TopicName}) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(urexception.Message) { RecommendedAction = urexception.Action } + }); + } + finally + { + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Cancel(); + base.StopProcessing(); + } + + /// + /// a delegate that is called when the remote service returns default (any response code not handled elsewhere). + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onDefault(global::System.Net.Http.HttpResponseMessage responseMessage) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnDefault(responseMessage, ref _returnNow); + // if overrideOnDefault has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // Error Response : default + // Unrecognized Response. Create an error record based on what we have. + var ex = new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.RestException(responseMessage); + WriteError( new global::System.Management.Automation.ErrorRecord(ex, ex.Code, global::System.Management.Automation.ErrorCategory.InvalidOperation, new { SubscriptionId=SubscriptionId, ResourceGroupName=ResourceGroupName, TopicName=TopicName }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(ex.Message) { RecommendedAction = ex.Action } + }); + } + } + + /// a delegate that is called when the remote service returns 200 (OK). + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnOk(responseMessage, response, ref _returnNow); + // if overrideOnOk has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // onOk - response for 200 / application/json + // response should be returning an array of some kind. +Pageable + // pageable / value / + WriteObject((await response).Value, true); + } + } + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/cmdlets/GetAzEventGridTopicEventType_List.cs b/swaggerci/eventgrid/generated/cmdlets/GetAzEventGridTopicEventType_List.cs new file mode 100644 index 000000000000..7fae5263ee00 --- /dev/null +++ b/swaggerci/eventgrid/generated/cmdlets/GetAzEventGridTopicEventType_List.cs @@ -0,0 +1,426 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Extensions; + using System; + + /// List event types for a topic. + /// + /// [OpenAPI] ListEventTypes=>GET:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{providerNamespace}/{resourceTypeName}/{resourceName}/providers/Microsoft.EventGrid/eventTypes" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsCommon.Get, @"AzEventGridTopicEventType_List")] + [global::System.Management.Automation.OutputType(typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventType))] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Description(@"List event types for a topic.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Generated] + public partial class GetAzEventGridTopicEventType_List : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener + { + /// A unique id generatd for the this cmdlet when it is instantiated. + private string __correlationId = System.Guid.NewGuid().ToString(); + + /// A copy of the Invocation Info (necessary to allow asJob to clone this cmdlet) + private global::System.Management.Automation.InvocationInfo __invocationInfo; + + /// A unique id generatd for the this cmdlet when ProcessRecord() is called. + private string __processRecordId; + + /// + /// The for this operation. + /// + private global::System.Threading.CancellationTokenSource _cancellationTokenSource = new global::System.Threading.CancellationTokenSource(); + + /// Wait for .NET debugger to attach + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Wait for .NET debugger to attach")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.EventGridManagementClient Client => Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.ClientAPI; + + /// + /// The credentials, account, tenant, and subscription used for communication with Azure + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The credentials, account, tenant, and subscription used for communication with Azure.")] + [global::System.Management.Automation.ValidateNotNull] + [global::System.Management.Automation.Alias("AzureRMContext", "AzureCredential")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Azure)] + public global::System.Management.Automation.PSObject DefaultProfile { get; set; } + + /// SendAsync Pipeline Steps to be appended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be appended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[] HttpPipelineAppend { get; set; } + + /// SendAsync Pipeline Steps to be prepended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be prepended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[] HttpPipelinePrepend { get; set; } + + /// Accessor for our copy of the InvocationInfo. + public global::System.Management.Automation.InvocationInfo InvocationInformation { get => __invocationInfo = __invocationInfo ?? this.MyInvocation ; set { __invocationInfo = value; } } + + /// + /// cancellation delegate. Stops the cmdlet when called. + /// + global::System.Action Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Runtime.HttpPipeline Pipeline { get; set; } + + /// Backing field for property. + private string _providerNamespace; + + /// Namespace of the provider of the topic. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Namespace of the provider of the topic.")] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Namespace of the provider of the topic.", + SerializedName = @"providerNamespace", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Path)] + public string ProviderNamespace { get => this._providerNamespace; set => this._providerNamespace = 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.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Uri Proxy { get; set; } + + /// Credentials for a proxy server to use for the remote call + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Credentials for a proxy server to use for the remote call")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Management.Automation.PSCredential ProxyCredential { get; set; } + + /// Use the default credentials for the proxy + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Use the default credentials for the proxy")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter ProxyUseDefaultCredentials { get; set; } + + /// Backing field for property. + private string _resourceGroupName; + + /// The name of the resource group within the user's subscription. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the resource group within the user's subscription.")] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the resource group within the user's subscription.", + SerializedName = @"resourceGroupName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Path)] + public string ResourceGroupName { get => this._resourceGroupName; set => this._resourceGroupName = value; } + + /// Backing field for property. + private string _resourceName; + + /// Name of the topic. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Name of the topic.")] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Name of the topic.", + SerializedName = @"resourceName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Path)] + public string ResourceName { get => this._resourceName; set => this._resourceName = value; } + + /// Backing field for property. + private string _resourceTypeName; + + /// Name of the topic type. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Name of the topic type.")] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Name of the topic type.", + SerializedName = @"resourceTypeName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Path)] + public string ResourceTypeName { get => this._resourceTypeName; set => this._resourceTypeName = value; } + + /// Backing field for property. + private string[] _subscriptionId; + + /// + /// Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription ID forms part of the + /// URI for every service call. + /// + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.")] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.", + SerializedName = @"subscriptionId", + PossibleTypes = new [] { typeof(string) })] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.DefaultInfo( + Name = @"", + Description =@"", + Script = @"(Get-AzContext).Subscription.Id")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Path)] + public string[] SubscriptionId { get => this._subscriptionId; set => this._subscriptionId = value; } + + /// + /// overrideOnDefault will be called before the regular onDefault has been processed, allowing customization of what + /// happens on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// /// Determines if the rest of the onDefault method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnDefault(global::System.Net.Http.HttpResponseMessage responseMessage, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnOk will be called before the regular onOk has been processed, allowing customization of what happens + /// on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// 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() + { + var telemetryId = Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.GetTelemetryId.Invoke(); + if (telemetryId != "" && telemetryId != "internal") + { + __correlationId = telemetryId; + } + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + + } + + /// + /// Intializes a new instance of the cmdlet class. + /// + public GetAzEventGridTopicEventType_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.EventGrid.Runtime.IEventListener.Signal(string id, global::System.Threading.CancellationToken token, global::System.Func messageData) + { + using( NoSynchronizationContext ) + { + if (token.IsCancellationRequested) + { + return ; + } + + switch ( id ) + { + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Information: + { + var data = messageData(); + WriteInformation(data.Message, new string[]{}); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Error: + { + WriteError(new global::System.Management.Automation.ErrorRecord( new global::System.Exception(messageData().Message), string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null ) ); + return ; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.EventData ), InvocationInformation, this.ParameterSetName, __correlationId, __processRecordId, null ); + if (token.IsCancellationRequested) + { + return ; + } + WriteDebug($"{id}: {(messageData().Message ?? global::System.String.Empty)}"); + } + } + + /// Performs execution of the command. + protected override void ProcessRecord() + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + using( var asyncCommandRuntime = new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token); + } + } + catch (global::System.AggregateException aggregateException) + { + // unroll the inner exceptions to get the root cause + foreach( var innerException in aggregateException.Flatten().InnerExceptions ) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(innerException,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + } + catch (global::System.Exception exception) when ((exception as System.Management.Automation.PipelineStoppedException)== null || (exception as System.Management.Automation.PipelineStoppedException).InnerException != null) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(exception,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + finally + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletProcessRecordEnd).Wait(); + } + } + + /// Performs execution of the command, working asynchronously if required. + /// + /// A that will be complete when handling of the method is completed. + /// + protected async global::System.Threading.Tasks.Task ProcessRecordAsync() + { + using( NoSynchronizationContext ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + foreach( var SubscriptionId in this.SubscriptionId ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await this.Client.TopicsListEventTypes(SubscriptionId, ResourceGroupName, ProviderNamespace, ResourceTypeName, ResourceName, onOk, onDefault, this, Pipeline); + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.UndeclaredResponseException urexception) + { + WriteError(new global::System.Management.Automation.ErrorRecord(urexception, urexception.StatusCode.ToString(), global::System.Management.Automation.ErrorCategory.InvalidOperation, new { SubscriptionId=SubscriptionId,ResourceGroupName=ResourceGroupName,ProviderNamespace=ProviderNamespace,ResourceTypeName=ResourceTypeName,ResourceName=ResourceName}) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(urexception.Message) { RecommendedAction = urexception.Action } + }); + } + finally + { + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Cancel(); + base.StopProcessing(); + } + + /// + /// a delegate that is called when the remote service returns default (any response code not handled elsewhere). + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onDefault(global::System.Net.Http.HttpResponseMessage responseMessage) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnDefault(responseMessage, ref _returnNow); + // if overrideOnDefault has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // Error Response : default + // Unrecognized Response. Create an error record based on what we have. + var ex = new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.RestException(responseMessage); + WriteError( new global::System.Management.Automation.ErrorRecord(ex, ex.Code, global::System.Management.Automation.ErrorCategory.InvalidOperation, new { SubscriptionId=SubscriptionId, ResourceGroupName=ResourceGroupName, ProviderNamespace=ProviderNamespace, ResourceTypeName=ResourceTypeName, ResourceName=ResourceName }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(ex.Message) { RecommendedAction = ex.Action } + }); + } + } + + /// a delegate that is called when the remote service returns 200 (OK). + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnOk(responseMessage, response, ref _returnNow); + // if overrideOnOk has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // onOk - response for 200 / application/json + // response should be returning an array of some kind. +Pageable + // pageable / value / + WriteObject((await response).Value, true); + } + } + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/cmdlets/GetAzEventGridTopicSharedAccessKey_List.cs b/swaggerci/eventgrid/generated/cmdlets/GetAzEventGridTopicSharedAccessKey_List.cs new file mode 100644 index 000000000000..d0b152145294 --- /dev/null +++ b/swaggerci/eventgrid/generated/cmdlets/GetAzEventGridTopicSharedAccessKey_List.cs @@ -0,0 +1,400 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Extensions; + using System; + + /// List the two keys used to publish to a topic. + /// + /// [OpenAPI] ListSharedAccessKeys=>POST:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.EventGrid/topics/{topicName}/listKeys" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsCommon.Get, @"AzEventGridTopicSharedAccessKey_List", SupportsShouldProcess = true)] + [global::System.Management.Automation.OutputType(typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITopicSharedAccessKeys))] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Description(@"List the two keys used to publish to a topic.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Generated] + public partial class GetAzEventGridTopicSharedAccessKey_List : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener + { + /// A unique id generatd for the this cmdlet when it is instantiated. + private string __correlationId = System.Guid.NewGuid().ToString(); + + /// A copy of the Invocation Info (necessary to allow asJob to clone this cmdlet) + private global::System.Management.Automation.InvocationInfo __invocationInfo; + + /// A unique id generatd for the this cmdlet when ProcessRecord() is called. + private string __processRecordId; + + /// + /// The for this operation. + /// + private global::System.Threading.CancellationTokenSource _cancellationTokenSource = new global::System.Threading.CancellationTokenSource(); + + /// Wait for .NET debugger to attach + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Wait for .NET debugger to attach")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.EventGridManagementClient Client => Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.ClientAPI; + + /// + /// The credentials, account, tenant, and subscription used for communication with Azure + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The credentials, account, tenant, and subscription used for communication with Azure.")] + [global::System.Management.Automation.ValidateNotNull] + [global::System.Management.Automation.Alias("AzureRMContext", "AzureCredential")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Azure)] + public global::System.Management.Automation.PSObject DefaultProfile { get; set; } + + /// SendAsync Pipeline Steps to be appended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be appended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[] HttpPipelineAppend { get; set; } + + /// SendAsync Pipeline Steps to be prepended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be prepended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[] HttpPipelinePrepend { get; set; } + + /// Accessor for our copy of the InvocationInfo. + public global::System.Management.Automation.InvocationInfo InvocationInformation { get => __invocationInfo = __invocationInfo ?? this.MyInvocation ; set { __invocationInfo = value; } } + + /// + /// cancellation delegate. Stops the cmdlet when called. + /// + global::System.Action Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Runtime.HttpPipeline Pipeline { get; set; } + + /// The URI for the proxy server to use + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "The URI for the proxy server to use")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Uri Proxy { get; set; } + + /// Credentials for a proxy server to use for the remote call + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Credentials for a proxy server to use for the remote call")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Management.Automation.PSCredential ProxyCredential { get; set; } + + /// Use the default credentials for the proxy + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Use the default credentials for the proxy")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter ProxyUseDefaultCredentials { get; set; } + + /// Backing field for property. + private string _resourceGroupName; + + /// The name of the resource group within the user's subscription. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the resource group within the user's subscription.")] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the resource group within the user's subscription.", + SerializedName = @"resourceGroupName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Path)] + public string ResourceGroupName { get => this._resourceGroupName; set => this._resourceGroupName = value; } + + /// Backing field for property. + private string[] _subscriptionId; + + /// + /// Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription ID forms part of the + /// URI for every service call. + /// + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.")] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.", + SerializedName = @"subscriptionId", + PossibleTypes = new [] { typeof(string) })] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.DefaultInfo( + Name = @"", + Description =@"", + Script = @"(Get-AzContext).Subscription.Id")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Path)] + public string[] SubscriptionId { get => this._subscriptionId; set => this._subscriptionId = value; } + + /// Backing field for property. + private string _topicName; + + /// Name of the topic. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Name of the topic.")] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Name of the topic.", + SerializedName = @"topicName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Path)] + public string TopicName { get => this._topicName; set => this._topicName = value; } + + /// + /// overrideOnDefault will be called before the regular onDefault has been processed, allowing customization of what + /// happens on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// /// Determines if the rest of the onDefault method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnDefault(global::System.Net.Http.HttpResponseMessage responseMessage, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnOk will be called before the regular onOk has been processed, allowing customization of what happens + /// on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// 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() + { + var telemetryId = Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.GetTelemetryId.Invoke(); + if (telemetryId != "" && telemetryId != "internal") + { + __correlationId = telemetryId; + } + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + + } + + /// + /// Intializes a new instance of the cmdlet class. + /// + public GetAzEventGridTopicSharedAccessKey_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.EventGrid.Runtime.IEventListener.Signal(string id, global::System.Threading.CancellationToken token, global::System.Func messageData) + { + using( NoSynchronizationContext ) + { + if (token.IsCancellationRequested) + { + return ; + } + + switch ( id ) + { + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Information: + { + var data = messageData(); + WriteInformation(data.Message, new string[]{}); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Error: + { + WriteError(new global::System.Management.Automation.ErrorRecord( new global::System.Exception(messageData().Message), string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null ) ); + return ; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.EventData ), InvocationInformation, this.ParameterSetName, __correlationId, __processRecordId, null ); + if (token.IsCancellationRequested) + { + return ; + } + WriteDebug($"{id}: {(messageData().Message ?? global::System.String.Empty)}"); + } + } + + /// Performs execution of the command. + protected override void ProcessRecord() + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + if (ShouldProcess($"Call remote 'TopicsListSharedAccessKeys' operation")) + { + using( var asyncCommandRuntime = new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token); + } + } + } + catch (global::System.AggregateException aggregateException) + { + // unroll the inner exceptions to get the root cause + foreach( var innerException in aggregateException.Flatten().InnerExceptions ) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(innerException,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + } + catch (global::System.Exception exception) when ((exception as System.Management.Automation.PipelineStoppedException)== null || (exception as System.Management.Automation.PipelineStoppedException).InnerException != null) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(exception,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + finally + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletProcessRecordEnd).Wait(); + } + } + + /// Performs execution of the command, working asynchronously if required. + /// + /// A that will be complete when handling of the method is completed. + /// + protected async global::System.Threading.Tasks.Task ProcessRecordAsync() + { + using( NoSynchronizationContext ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + foreach( var SubscriptionId in this.SubscriptionId ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await this.Client.TopicsListSharedAccessKeys(SubscriptionId, ResourceGroupName, TopicName, onOk, onDefault, this, Pipeline); + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.UndeclaredResponseException urexception) + { + WriteError(new global::System.Management.Automation.ErrorRecord(urexception, urexception.StatusCode.ToString(), global::System.Management.Automation.ErrorCategory.InvalidOperation, new { SubscriptionId=SubscriptionId,ResourceGroupName=ResourceGroupName,TopicName=TopicName}) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(urexception.Message) { RecommendedAction = urexception.Action } + }); + } + finally + { + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Cancel(); + base.StopProcessing(); + } + + /// + /// a delegate that is called when the remote service returns default (any response code not handled elsewhere). + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onDefault(global::System.Net.Http.HttpResponseMessage responseMessage) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnDefault(responseMessage, ref _returnNow); + // if overrideOnDefault has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // Error Response : default + // Unrecognized Response. Create an error record based on what we have. + var ex = new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.RestException(responseMessage); + WriteError( new global::System.Management.Automation.ErrorRecord(ex, ex.Code, global::System.Management.Automation.ErrorCategory.InvalidOperation, new { SubscriptionId=SubscriptionId, ResourceGroupName=ResourceGroupName, TopicName=TopicName }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(ex.Message) { RecommendedAction = ex.Action } + }); + } + } + + /// a delegate that is called when the remote service returns 200 (OK). + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as 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.EventGrid.Models.Api20211015Preview.ITopicSharedAccessKeys + WriteObject((await response)); + } + } + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/cmdlets/GetAzEventGridTopicTypeEventType_List.cs b/swaggerci/eventgrid/generated/cmdlets/GetAzEventGridTopicTypeEventType_List.cs new file mode 100644 index 000000000000..7ef5a6f2e8ad --- /dev/null +++ b/swaggerci/eventgrid/generated/cmdlets/GetAzEventGridTopicTypeEventType_List.cs @@ -0,0 +1,360 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Extensions; + using System; + + /// List event types for a topic type. + /// + /// [OpenAPI] ListEventTypes=>GET:"/providers/Microsoft.EventGrid/topicTypes/{topicTypeName}/eventTypes" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsCommon.Get, @"AzEventGridTopicTypeEventType_List")] + [global::System.Management.Automation.OutputType(typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventType))] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Description(@"List event types for a topic type.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Generated] + public partial class GetAzEventGridTopicTypeEventType_List : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener + { + /// A unique id generatd for the this cmdlet when it is instantiated. + private string __correlationId = System.Guid.NewGuid().ToString(); + + /// A copy of the Invocation Info (necessary to allow asJob to clone this cmdlet) + private global::System.Management.Automation.InvocationInfo __invocationInfo; + + /// A unique id generatd for the this cmdlet when ProcessRecord() is called. + private string __processRecordId; + + /// + /// The for this operation. + /// + private global::System.Threading.CancellationTokenSource _cancellationTokenSource = new global::System.Threading.CancellationTokenSource(); + + /// Wait for .NET debugger to attach + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Wait for .NET debugger to attach")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.EventGridManagementClient Client => Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.ClientAPI; + + /// + /// The credentials, account, tenant, and subscription used for communication with Azure + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The credentials, account, tenant, and subscription used for communication with Azure.")] + [global::System.Management.Automation.ValidateNotNull] + [global::System.Management.Automation.Alias("AzureRMContext", "AzureCredential")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Azure)] + public global::System.Management.Automation.PSObject DefaultProfile { get; set; } + + /// SendAsync Pipeline Steps to be appended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be appended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[] HttpPipelineAppend { get; set; } + + /// SendAsync Pipeline Steps to be prepended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be prepended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[] HttpPipelinePrepend { get; set; } + + /// Accessor for our copy of the InvocationInfo. + public global::System.Management.Automation.InvocationInfo InvocationInformation { get => __invocationInfo = __invocationInfo ?? this.MyInvocation ; set { __invocationInfo = value; } } + + /// + /// cancellation delegate. Stops the cmdlet when called. + /// + global::System.Action Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Runtime.HttpPipeline Pipeline { get; set; } + + /// The URI for the proxy server to use + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "The URI for the proxy server to use")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Uri Proxy { get; set; } + + /// Credentials for a proxy server to use for the remote call + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Credentials for a proxy server to use for the remote call")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Management.Automation.PSCredential ProxyCredential { get; set; } + + /// Use the default credentials for the proxy + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Use the default credentials for the proxy")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter ProxyUseDefaultCredentials { get; set; } + + /// Backing field for property. + private string _topicTypeName; + + /// Name of the topic type. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Name of the topic type.")] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Name of the topic type.", + SerializedName = @"topicTypeName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Path)] + public string TopicTypeName { get => this._topicTypeName; set => this._topicTypeName = value; } + + /// + /// overrideOnDefault will be called before the regular onDefault has been processed, allowing customization of what + /// happens on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// /// Determines if the rest of the onDefault method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnDefault(global::System.Net.Http.HttpResponseMessage responseMessage, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnOk will be called before the regular onOk has been processed, allowing customization of what happens + /// on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// 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() + { + var telemetryId = Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.GetTelemetryId.Invoke(); + if (telemetryId != "" && telemetryId != "internal") + { + __correlationId = telemetryId; + } + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + + } + + /// + /// Intializes a new instance of the cmdlet class. + /// + public GetAzEventGridTopicTypeEventType_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.EventGrid.Runtime.IEventListener.Signal(string id, global::System.Threading.CancellationToken token, global::System.Func messageData) + { + using( NoSynchronizationContext ) + { + if (token.IsCancellationRequested) + { + return ; + } + + switch ( id ) + { + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Information: + { + var data = messageData(); + WriteInformation(data.Message, new string[]{}); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Error: + { + WriteError(new global::System.Management.Automation.ErrorRecord( new global::System.Exception(messageData().Message), string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null ) ); + return ; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.EventData ), InvocationInformation, this.ParameterSetName, __correlationId, __processRecordId, null ); + if (token.IsCancellationRequested) + { + return ; + } + WriteDebug($"{id}: {(messageData().Message ?? global::System.String.Empty)}"); + } + } + + /// Performs execution of the command. + protected override void ProcessRecord() + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + using( var asyncCommandRuntime = new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token); + } + } + catch (global::System.AggregateException aggregateException) + { + // unroll the inner exceptions to get the root cause + foreach( var innerException in aggregateException.Flatten().InnerExceptions ) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(innerException,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + } + catch (global::System.Exception exception) when ((exception as System.Management.Automation.PipelineStoppedException)== null || (exception as System.Management.Automation.PipelineStoppedException).InnerException != null) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(exception,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + finally + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletProcessRecordEnd).Wait(); + } + } + + /// Performs execution of the command, working asynchronously if required. + /// + /// A that will be complete when handling of the method is completed. + /// + protected async global::System.Threading.Tasks.Task ProcessRecordAsync() + { + using( NoSynchronizationContext ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await this.Client.TopicTypesListEventTypes(TopicTypeName, onOk, onDefault, this, Pipeline); + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.UndeclaredResponseException urexception) + { + WriteError(new global::System.Management.Automation.ErrorRecord(urexception, urexception.StatusCode.ToString(), global::System.Management.Automation.ErrorCategory.InvalidOperation, new { TopicTypeName=TopicTypeName}) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(urexception.Message) { RecommendedAction = urexception.Action } + }); + } + finally + { + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Cancel(); + base.StopProcessing(); + } + + /// + /// a delegate that is called when the remote service returns default (any response code not handled elsewhere). + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onDefault(global::System.Net.Http.HttpResponseMessage responseMessage) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnDefault(responseMessage, ref _returnNow); + // if overrideOnDefault has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // Error Response : default + // Unrecognized Response. Create an error record based on what we have. + var ex = new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.RestException(responseMessage); + WriteError( new global::System.Management.Automation.ErrorRecord(ex, ex.Code, global::System.Management.Automation.ErrorCategory.InvalidOperation, new { TopicTypeName=TopicTypeName }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(ex.Message) { RecommendedAction = ex.Action } + }); + } + } + + /// a delegate that is called when the remote service returns 200 (OK). + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnOk(responseMessage, response, ref _returnNow); + // if overrideOnOk has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // onOk - response for 200 / application/json + // response should be returning an array of some kind. +Pageable + // pageable / value / + WriteObject((await response).Value, true); + } + } + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/cmdlets/GetAzEventGridTopicType_Get.cs b/swaggerci/eventgrid/generated/cmdlets/GetAzEventGridTopicType_Get.cs new file mode 100644 index 000000000000..0712df7301b1 --- /dev/null +++ b/swaggerci/eventgrid/generated/cmdlets/GetAzEventGridTopicType_Get.cs @@ -0,0 +1,360 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Extensions; + using System; + + /// Get information about a topic type. + /// + /// [OpenAPI] Get=>GET:"/providers/Microsoft.EventGrid/topicTypes/{topicTypeName}" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsCommon.Get, @"AzEventGridTopicType_Get")] + [global::System.Management.Automation.OutputType(typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITopicTypeInfo))] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Description(@"Get information about a topic type.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Generated] + public partial class GetAzEventGridTopicType_Get : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener + { + /// A unique id generatd for the this cmdlet when it is instantiated. + private string __correlationId = System.Guid.NewGuid().ToString(); + + /// A copy of the Invocation Info (necessary to allow asJob to clone this cmdlet) + private global::System.Management.Automation.InvocationInfo __invocationInfo; + + /// A unique id generatd for the this cmdlet when ProcessRecord() is called. + private string __processRecordId; + + /// + /// The for this operation. + /// + private global::System.Threading.CancellationTokenSource _cancellationTokenSource = new global::System.Threading.CancellationTokenSource(); + + /// Wait for .NET debugger to attach + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Wait for .NET debugger to attach")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.EventGridManagementClient Client => Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.ClientAPI; + + /// + /// The credentials, account, tenant, and subscription used for communication with Azure + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The credentials, account, tenant, and subscription used for communication with Azure.")] + [global::System.Management.Automation.ValidateNotNull] + [global::System.Management.Automation.Alias("AzureRMContext", "AzureCredential")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Azure)] + public global::System.Management.Automation.PSObject DefaultProfile { get; set; } + + /// SendAsync Pipeline Steps to be appended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be appended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[] HttpPipelineAppend { get; set; } + + /// SendAsync Pipeline Steps to be prepended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be prepended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[] HttpPipelinePrepend { get; set; } + + /// Accessor for our copy of the InvocationInfo. + public global::System.Management.Automation.InvocationInfo InvocationInformation { get => __invocationInfo = __invocationInfo ?? this.MyInvocation ; set { __invocationInfo = value; } } + + /// + /// cancellation delegate. Stops the cmdlet when called. + /// + global::System.Action Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener.Token => _cancellationTokenSource.Token; + + /// Backing field for property. + private string _name; + + /// Name of the topic type. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Name of the topic type.")] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Name of the topic type.", + SerializedName = @"topicTypeName", + PossibleTypes = new [] { typeof(string) })] + [global::System.Management.Automation.Alias("TopicTypeName")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Runtime.HttpPipeline Pipeline { get; set; } + + /// The URI for the proxy server to use + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "The URI for the proxy server to use")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Uri Proxy { get; set; } + + /// Credentials for a proxy server to use for the remote call + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Credentials for a proxy server to use for the remote call")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Management.Automation.PSCredential ProxyCredential { get; set; } + + /// Use the default credentials for the proxy + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Use the default credentials for the proxy")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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. + /// /// Determines if the rest of the onDefault method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnDefault(global::System.Net.Http.HttpResponseMessage responseMessage, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnOk will be called before the regular onOk has been processed, allowing customization of what happens + /// on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// 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() + { + var telemetryId = Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.GetTelemetryId.Invoke(); + if (telemetryId != "" && telemetryId != "internal") + { + __correlationId = telemetryId; + } + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + + } + + /// + /// Intializes a new instance of the cmdlet class. + /// + public GetAzEventGridTopicType_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.EventGrid.Runtime.IEventListener.Signal(string id, global::System.Threading.CancellationToken token, global::System.Func messageData) + { + using( NoSynchronizationContext ) + { + if (token.IsCancellationRequested) + { + return ; + } + + switch ( id ) + { + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Information: + { + var data = messageData(); + WriteInformation(data.Message, new string[]{}); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Error: + { + WriteError(new global::System.Management.Automation.ErrorRecord( new global::System.Exception(messageData().Message), string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null ) ); + return ; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.EventData ), InvocationInformation, this.ParameterSetName, __correlationId, __processRecordId, null ); + if (token.IsCancellationRequested) + { + return ; + } + WriteDebug($"{id}: {(messageData().Message ?? global::System.String.Empty)}"); + } + } + + /// Performs execution of the command. + protected override void ProcessRecord() + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + using( var asyncCommandRuntime = new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token); + } + } + catch (global::System.AggregateException aggregateException) + { + // unroll the inner exceptions to get the root cause + foreach( var innerException in aggregateException.Flatten().InnerExceptions ) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(innerException,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + } + catch (global::System.Exception exception) when ((exception as System.Management.Automation.PipelineStoppedException)== null || (exception as System.Management.Automation.PipelineStoppedException).InnerException != null) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(exception,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + finally + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletProcessRecordEnd).Wait(); + } + } + + /// Performs execution of the command, working asynchronously if required. + /// + /// A that will be complete when handling of the method is completed. + /// + protected async global::System.Threading.Tasks.Task ProcessRecordAsync() + { + using( NoSynchronizationContext ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await this.Client.TopicTypesGet(Name, onOk, onDefault, this, Pipeline); + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.UndeclaredResponseException urexception) + { + WriteError(new global::System.Management.Automation.ErrorRecord(urexception, urexception.StatusCode.ToString(), global::System.Management.Automation.ErrorCategory.InvalidOperation, new { Name=Name}) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(urexception.Message) { RecommendedAction = urexception.Action } + }); + } + finally + { + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Cancel(); + base.StopProcessing(); + } + + /// + /// a delegate that is called when the remote service returns default (any response code not handled elsewhere). + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onDefault(global::System.Net.Http.HttpResponseMessage responseMessage) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnDefault(responseMessage, ref _returnNow); + // if overrideOnDefault has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // Error Response : default + // Unrecognized Response. Create an error record based on what we have. + var ex = new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.RestException(responseMessage); + WriteError( new global::System.Management.Automation.ErrorRecord(ex, ex.Code, global::System.Management.Automation.ErrorCategory.InvalidOperation, new { Name=Name }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(ex.Message) { RecommendedAction = ex.Action } + }); + } + } + + /// a delegate that is called when the remote service returns 200 (OK). + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as 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.EventGrid.Models.Api20211015Preview.ITopicTypeInfo + WriteObject((await response)); + } + } + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/cmdlets/GetAzEventGridTopicType_GetViaIdentity.cs b/swaggerci/eventgrid/generated/cmdlets/GetAzEventGridTopicType_GetViaIdentity.cs new file mode 100644 index 000000000000..31ec39e52021 --- /dev/null +++ b/swaggerci/eventgrid/generated/cmdlets/GetAzEventGridTopicType_GetViaIdentity.cs @@ -0,0 +1,365 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Extensions; + using System; + + /// Get information about a topic type. + /// + /// [OpenAPI] Get=>GET:"/providers/Microsoft.EventGrid/topicTypes/{topicTypeName}" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsCommon.Get, @"AzEventGridTopicType_GetViaIdentity")] + [global::System.Management.Automation.OutputType(typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITopicTypeInfo))] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Description(@"Get information about a topic type.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Generated] + public partial class GetAzEventGridTopicType_GetViaIdentity : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener + { + /// A unique id generatd for the this cmdlet when it is instantiated. + private string __correlationId = System.Guid.NewGuid().ToString(); + + /// A copy of the Invocation Info (necessary to allow asJob to clone this cmdlet) + private global::System.Management.Automation.InvocationInfo __invocationInfo; + + /// A unique id generatd for the this cmdlet when ProcessRecord() is called. + private string __processRecordId; + + /// + /// The for this operation. + /// + private global::System.Threading.CancellationTokenSource _cancellationTokenSource = new global::System.Threading.CancellationTokenSource(); + + /// Wait for .NET debugger to attach + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Wait for .NET debugger to attach")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.EventGridManagementClient Client => Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.ClientAPI; + + /// + /// The credentials, account, tenant, and subscription used for communication with Azure + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The credentials, account, tenant, and subscription used for communication with Azure.")] + [global::System.Management.Automation.ValidateNotNull] + [global::System.Management.Automation.Alias("AzureRMContext", "AzureCredential")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Azure)] + public global::System.Management.Automation.PSObject DefaultProfile { get; set; } + + /// SendAsync Pipeline Steps to be appended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be appended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[] HttpPipelineAppend { get; set; } + + /// SendAsync Pipeline Steps to be prepended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be prepended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[] HttpPipelinePrepend { get; set; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.IEventGridIdentity _inputObject; + + /// Identity Parameter + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Identity Parameter", ValueFromPipeline = true)] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Path)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.IEventGridIdentity InputObject { get => this._inputObject; set => this._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.EventGrid.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Runtime.HttpPipeline Pipeline { get; set; } + + /// The URI for the proxy server to use + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "The URI for the proxy server to use")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Uri Proxy { get; set; } + + /// Credentials for a proxy server to use for the remote call + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Credentials for a proxy server to use for the remote call")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Management.Automation.PSCredential ProxyCredential { get; set; } + + /// Use the default credentials for the proxy + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Use the default credentials for the proxy")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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. + /// /// Determines if the rest of the onDefault method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnDefault(global::System.Net.Http.HttpResponseMessage responseMessage, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnOk will be called before the regular onOk has been processed, allowing customization of what happens + /// on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// 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() + { + var telemetryId = Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.GetTelemetryId.Invoke(); + if (telemetryId != "" && telemetryId != "internal") + { + __correlationId = telemetryId; + } + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + + } + + /// + /// Intializes a new instance of the cmdlet class. + /// + public GetAzEventGridTopicType_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.EventGrid.Runtime.IEventListener.Signal(string id, global::System.Threading.CancellationToken token, global::System.Func messageData) + { + using( NoSynchronizationContext ) + { + if (token.IsCancellationRequested) + { + return ; + } + + switch ( id ) + { + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Information: + { + var data = messageData(); + WriteInformation(data.Message, new string[]{}); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Error: + { + WriteError(new global::System.Management.Automation.ErrorRecord( new global::System.Exception(messageData().Message), string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null ) ); + return ; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.EventData ), InvocationInformation, this.ParameterSetName, __correlationId, __processRecordId, null ); + if (token.IsCancellationRequested) + { + return ; + } + WriteDebug($"{id}: {(messageData().Message ?? global::System.String.Empty)}"); + } + } + + /// Performs execution of the command. + protected override void ProcessRecord() + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + using( var asyncCommandRuntime = new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token); + } + } + catch (global::System.AggregateException aggregateException) + { + // unroll the inner exceptions to get the root cause + foreach( var innerException in aggregateException.Flatten().InnerExceptions ) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(innerException,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + } + catch (global::System.Exception exception) when ((exception as System.Management.Automation.PipelineStoppedException)== null || (exception as System.Management.Automation.PipelineStoppedException).InnerException != null) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(exception,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + finally + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletProcessRecordEnd).Wait(); + } + } + + /// Performs execution of the command, working asynchronously if required. + /// + /// A that will be complete when handling of the method is completed. + /// + protected async global::System.Threading.Tasks.Task ProcessRecordAsync() + { + using( NoSynchronizationContext ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + if (InputObject?.Id != null) + { + await this.Client.TopicTypesGetViaIdentity(InputObject.Id, onOk, onDefault, this, Pipeline); + } + else + { + // try to call with PATH parameters from Input Object + if (null == InputObject.TopicTypeName) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.TopicTypeName"),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, InputObject) ); + } + await this.Client.TopicTypesGet(InputObject.TopicTypeName ?? null, onOk, onDefault, this, Pipeline); + } + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Cancel(); + base.StopProcessing(); + } + + /// + /// a delegate that is called when the remote service returns default (any response code not handled elsewhere). + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onDefault(global::System.Net.Http.HttpResponseMessage responseMessage) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnDefault(responseMessage, ref _returnNow); + // if overrideOnDefault has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // Error Response : default + // Unrecognized Response. Create an error record based on what we have. + var ex = new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.RestException(responseMessage); + WriteError( new global::System.Management.Automation.ErrorRecord(ex, ex.Code, global::System.Management.Automation.ErrorCategory.InvalidOperation, new { }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(ex.Message) { RecommendedAction = ex.Action } + }); + } + } + + /// a delegate that is called when the remote service returns 200 (OK). + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as 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.EventGrid.Models.Api20211015Preview.ITopicTypeInfo + WriteObject((await response)); + } + } + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/cmdlets/GetAzEventGridTopicType_List.cs b/swaggerci/eventgrid/generated/cmdlets/GetAzEventGridTopicType_List.cs new file mode 100644 index 000000000000..460e00081ff4 --- /dev/null +++ b/swaggerci/eventgrid/generated/cmdlets/GetAzEventGridTopicType_List.cs @@ -0,0 +1,346 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Extensions; + using System; + + /// List all registered topic types. + /// + /// [OpenAPI] List=>GET:"/providers/Microsoft.EventGrid/topicTypes" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsCommon.Get, @"AzEventGridTopicType_List")] + [global::System.Management.Automation.OutputType(typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITopicTypeInfo))] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Description(@"List all registered topic types.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Generated] + public partial class GetAzEventGridTopicType_List : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener + { + /// A unique id generatd for the this cmdlet when it is instantiated. + private string __correlationId = System.Guid.NewGuid().ToString(); + + /// A copy of the Invocation Info (necessary to allow asJob to clone this cmdlet) + private global::System.Management.Automation.InvocationInfo __invocationInfo; + + /// A unique id generatd for the this cmdlet when ProcessRecord() is called. + private string __processRecordId; + + /// + /// The for this operation. + /// + private global::System.Threading.CancellationTokenSource _cancellationTokenSource = new global::System.Threading.CancellationTokenSource(); + + /// Wait for .NET debugger to attach + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Wait for .NET debugger to attach")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.EventGridManagementClient Client => Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.ClientAPI; + + /// + /// The credentials, account, tenant, and subscription used for communication with Azure + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The credentials, account, tenant, and subscription used for communication with Azure.")] + [global::System.Management.Automation.ValidateNotNull] + [global::System.Management.Automation.Alias("AzureRMContext", "AzureCredential")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Azure)] + public global::System.Management.Automation.PSObject DefaultProfile { get; set; } + + /// SendAsync Pipeline Steps to be appended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be appended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[] HttpPipelineAppend { get; set; } + + /// SendAsync Pipeline Steps to be prepended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be prepended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[] HttpPipelinePrepend { get; set; } + + /// Accessor for our copy of the InvocationInfo. + public global::System.Management.Automation.InvocationInfo InvocationInformation { get => __invocationInfo = __invocationInfo ?? this.MyInvocation ; set { __invocationInfo = value; } } + + /// + /// cancellation delegate. Stops the cmdlet when called. + /// + global::System.Action Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Runtime.HttpPipeline Pipeline { get; set; } + + /// The URI for the proxy server to use + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "The URI for the proxy server to use")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Uri Proxy { get; set; } + + /// Credentials for a proxy server to use for the remote call + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Credentials for a proxy server to use for the remote call")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Management.Automation.PSCredential ProxyCredential { get; set; } + + /// Use the default credentials for the proxy + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Use the default credentials for the proxy")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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. + /// /// Determines if the rest of the onDefault method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnDefault(global::System.Net.Http.HttpResponseMessage responseMessage, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnOk will be called before the regular onOk has been processed, allowing customization of what happens + /// on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// 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() + { + var telemetryId = Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.GetTelemetryId.Invoke(); + if (telemetryId != "" && telemetryId != "internal") + { + __correlationId = telemetryId; + } + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + + } + + /// + /// Intializes a new instance of the cmdlet class. + /// + public GetAzEventGridTopicType_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.EventGrid.Runtime.IEventListener.Signal(string id, global::System.Threading.CancellationToken token, global::System.Func messageData) + { + using( NoSynchronizationContext ) + { + if (token.IsCancellationRequested) + { + return ; + } + + switch ( id ) + { + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Information: + { + var data = messageData(); + WriteInformation(data.Message, new string[]{}); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Error: + { + WriteError(new global::System.Management.Automation.ErrorRecord( new global::System.Exception(messageData().Message), string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null ) ); + return ; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.EventData ), InvocationInformation, this.ParameterSetName, __correlationId, __processRecordId, null ); + if (token.IsCancellationRequested) + { + return ; + } + WriteDebug($"{id}: {(messageData().Message ?? global::System.String.Empty)}"); + } + } + + /// Performs execution of the command. + protected override void ProcessRecord() + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + using( var asyncCommandRuntime = new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token); + } + } + catch (global::System.AggregateException aggregateException) + { + // unroll the inner exceptions to get the root cause + foreach( var innerException in aggregateException.Flatten().InnerExceptions ) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(innerException,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + } + catch (global::System.Exception exception) when ((exception as System.Management.Automation.PipelineStoppedException)== null || (exception as System.Management.Automation.PipelineStoppedException).InnerException != null) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(exception,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + finally + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletProcessRecordEnd).Wait(); + } + } + + /// Performs execution of the command, working asynchronously if required. + /// + /// A that will be complete when handling of the method is completed. + /// + protected async global::System.Threading.Tasks.Task ProcessRecordAsync() + { + using( NoSynchronizationContext ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await this.Client.TopicTypesList(onOk, onDefault, this, Pipeline); + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Cancel(); + base.StopProcessing(); + } + + /// + /// a delegate that is called when the remote service returns default (any response code not handled elsewhere). + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onDefault(global::System.Net.Http.HttpResponseMessage responseMessage) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnDefault(responseMessage, ref _returnNow); + // if overrideOnDefault has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // Error Response : default + // Unrecognized Response. Create an error record based on what we have. + var ex = new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.RestException(responseMessage); + WriteError( new global::System.Management.Automation.ErrorRecord(ex, ex.Code, global::System.Management.Automation.ErrorCategory.InvalidOperation, new { }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(ex.Message) { RecommendedAction = ex.Action } + }); + } + } + + /// a delegate that is called when the remote service returns 200 (OK). + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnOk(responseMessage, response, ref _returnNow); + // if overrideOnOk has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // onOk - response for 200 / application/json + // response should be returning an array of some kind. +Pageable + // pageable / value / + WriteObject((await response).Value, true); + } + } + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/cmdlets/GetAzEventGridTopic_Get.cs b/swaggerci/eventgrid/generated/cmdlets/GetAzEventGridTopic_Get.cs new file mode 100644 index 000000000000..bb1b1321996c --- /dev/null +++ b/swaggerci/eventgrid/generated/cmdlets/GetAzEventGridTopic_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.EventGrid.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Extensions; + using System; + + /// Get properties of a topic. + /// + /// [OpenAPI] Get=>GET:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.EventGrid/topics/{topicName}" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsCommon.Get, @"AzEventGridTopic_Get")] + [global::System.Management.Automation.OutputType(typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITopic))] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Description(@"Get properties of a topic.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Generated] + public partial class GetAzEventGridTopic_Get : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener + { + /// A unique id generatd for the this cmdlet when it is instantiated. + private string __correlationId = System.Guid.NewGuid().ToString(); + + /// A copy of the Invocation Info (necessary to allow asJob to clone this cmdlet) + private global::System.Management.Automation.InvocationInfo __invocationInfo; + + /// A unique id generatd for the this cmdlet when ProcessRecord() is called. + private string __processRecordId; + + /// + /// The for this operation. + /// + private global::System.Threading.CancellationTokenSource _cancellationTokenSource = new global::System.Threading.CancellationTokenSource(); + + /// Wait for .NET debugger to attach + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Wait for .NET debugger to attach")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.EventGridManagementClient Client => Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.ClientAPI; + + /// + /// The credentials, account, tenant, and subscription used for communication with Azure + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The credentials, account, tenant, and subscription used for communication with Azure.")] + [global::System.Management.Automation.ValidateNotNull] + [global::System.Management.Automation.Alias("AzureRMContext", "AzureCredential")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Azure)] + public global::System.Management.Automation.PSObject DefaultProfile { get; set; } + + /// SendAsync Pipeline Steps to be appended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be appended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[] HttpPipelineAppend { get; set; } + + /// SendAsync Pipeline Steps to be prepended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be prepended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[] HttpPipelinePrepend { get; set; } + + /// Accessor for our copy of the InvocationInfo. + public global::System.Management.Automation.InvocationInfo InvocationInformation { get => __invocationInfo = __invocationInfo ?? this.MyInvocation ; set { __invocationInfo = value; } } + + /// + /// cancellation delegate. Stops the cmdlet when called. + /// + global::System.Action Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener.Token => _cancellationTokenSource.Token; + + /// Backing field for property. + private string _name; + + /// Name of the topic. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Name of the topic.")] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Name of the topic.", + SerializedName = @"topicName", + PossibleTypes = new [] { typeof(string) })] + [global::System.Management.Automation.Alias("TopicName")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Runtime.HttpPipeline Pipeline { get; set; } + + /// The URI for the proxy server to use + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "The URI for the proxy server to use")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Uri Proxy { get; set; } + + /// Credentials for a proxy server to use for the remote call + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Credentials for a proxy server to use for the remote call")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Management.Automation.PSCredential ProxyCredential { get; set; } + + /// Use the default credentials for the proxy + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Use the default credentials for the proxy")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter ProxyUseDefaultCredentials { get; set; } + + /// Backing field for property. + private string _resourceGroupName; + + /// The name of the resource group within the user's subscription. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the resource group within the user's subscription.")] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the resource group within the user's subscription.", + SerializedName = @"resourceGroupName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Path)] + public string ResourceGroupName { get => this._resourceGroupName; set => this._resourceGroupName = value; } + + /// Backing field for property. + private string[] _subscriptionId; + + /// + /// Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription ID forms part of the + /// URI for every service call. + /// + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.")] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.", + SerializedName = @"subscriptionId", + PossibleTypes = new [] { typeof(string) })] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.DefaultInfo( + Name = @"", + Description =@"", + Script = @"(Get-AzContext).Subscription.Id")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Path)] + public string[] SubscriptionId { get => this._subscriptionId; set => this._subscriptionId = value; } + + /// + /// overrideOnDefault will be called before the regular onDefault has been processed, allowing customization of what + /// happens on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// /// Determines if the rest of the onDefault method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnDefault(global::System.Net.Http.HttpResponseMessage responseMessage, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnOk will be called before the regular onOk has been processed, allowing customization of what happens + /// on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// 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() + { + var telemetryId = Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.GetTelemetryId.Invoke(); + if (telemetryId != "" && telemetryId != "internal") + { + __correlationId = telemetryId; + } + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + + } + + /// + /// Intializes a new instance of the cmdlet class. + /// + public GetAzEventGridTopic_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.EventGrid.Runtime.IEventListener.Signal(string id, global::System.Threading.CancellationToken token, global::System.Func messageData) + { + using( NoSynchronizationContext ) + { + if (token.IsCancellationRequested) + { + return ; + } + + switch ( id ) + { + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Information: + { + var data = messageData(); + WriteInformation(data.Message, new string[]{}); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Error: + { + WriteError(new global::System.Management.Automation.ErrorRecord( new global::System.Exception(messageData().Message), string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null ) ); + return ; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.EventData ), InvocationInformation, this.ParameterSetName, __correlationId, __processRecordId, null ); + if (token.IsCancellationRequested) + { + return ; + } + WriteDebug($"{id}: {(messageData().Message ?? global::System.String.Empty)}"); + } + } + + /// Performs execution of the command. + protected override void ProcessRecord() + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + using( var asyncCommandRuntime = new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token); + } + } + catch (global::System.AggregateException aggregateException) + { + // unroll the inner exceptions to get the root cause + foreach( var innerException in aggregateException.Flatten().InnerExceptions ) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(innerException,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + } + catch (global::System.Exception exception) when ((exception as System.Management.Automation.PipelineStoppedException)== null || (exception as System.Management.Automation.PipelineStoppedException).InnerException != null) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(exception,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + finally + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletProcessRecordEnd).Wait(); + } + } + + /// Performs execution of the command, working asynchronously if required. + /// + /// A that will be complete when handling of the method is completed. + /// + protected async global::System.Threading.Tasks.Task ProcessRecordAsync() + { + using( NoSynchronizationContext ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + foreach( var SubscriptionId in this.SubscriptionId ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await this.Client.TopicsGet(SubscriptionId, ResourceGroupName, Name, onOk, onDefault, this, Pipeline); + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.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.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Cancel(); + base.StopProcessing(); + } + + /// + /// a delegate that is called when the remote service returns default (any response code not handled elsewhere). + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onDefault(global::System.Net.Http.HttpResponseMessage responseMessage) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnDefault(responseMessage, ref _returnNow); + // if overrideOnDefault has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // Error Response : default + // Unrecognized Response. Create an error record based on what we have. + var ex = new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.RestException(responseMessage); + 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 } + }); + } + } + + /// a delegate that is 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.EventGrid.Models.Api20211015Preview.ITopic + WriteObject((await response)); + } + } + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/cmdlets/GetAzEventGridTopic_GetViaIdentity.cs b/swaggerci/eventgrid/generated/cmdlets/GetAzEventGridTopic_GetViaIdentity.cs new file mode 100644 index 000000000000..7d26789a8743 --- /dev/null +++ b/swaggerci/eventgrid/generated/cmdlets/GetAzEventGridTopic_GetViaIdentity.cs @@ -0,0 +1,373 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Extensions; + using System; + + /// Get properties of a topic. + /// + /// [OpenAPI] Get=>GET:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.EventGrid/topics/{topicName}" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsCommon.Get, @"AzEventGridTopic_GetViaIdentity")] + [global::System.Management.Automation.OutputType(typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITopic))] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Description(@"Get properties of a topic.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Generated] + public partial class GetAzEventGridTopic_GetViaIdentity : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener + { + /// A unique id generatd for the this cmdlet when it is instantiated. + private string __correlationId = System.Guid.NewGuid().ToString(); + + /// A copy of the Invocation Info (necessary to allow asJob to clone this cmdlet) + private global::System.Management.Automation.InvocationInfo __invocationInfo; + + /// A unique id generatd for the this cmdlet when ProcessRecord() is called. + private string __processRecordId; + + /// + /// The for this operation. + /// + private global::System.Threading.CancellationTokenSource _cancellationTokenSource = new global::System.Threading.CancellationTokenSource(); + + /// Wait for .NET debugger to attach + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Wait for .NET debugger to attach")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.EventGridManagementClient Client => Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.ClientAPI; + + /// + /// The credentials, account, tenant, and subscription used for communication with Azure + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The credentials, account, tenant, and subscription used for communication with Azure.")] + [global::System.Management.Automation.ValidateNotNull] + [global::System.Management.Automation.Alias("AzureRMContext", "AzureCredential")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Azure)] + public global::System.Management.Automation.PSObject DefaultProfile { get; set; } + + /// SendAsync Pipeline Steps to be appended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be appended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[] HttpPipelineAppend { get; set; } + + /// SendAsync Pipeline Steps to be prepended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be prepended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[] HttpPipelinePrepend { get; set; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.IEventGridIdentity _inputObject; + + /// Identity Parameter + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Identity Parameter", ValueFromPipeline = true)] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Path)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.IEventGridIdentity InputObject { get => this._inputObject; set => this._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.EventGrid.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Runtime.HttpPipeline Pipeline { get; set; } + + /// The URI for the proxy server to use + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "The URI for the proxy server to use")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Uri Proxy { get; set; } + + /// Credentials for a proxy server to use for the remote call + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Credentials for a proxy server to use for the remote call")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Management.Automation.PSCredential ProxyCredential { get; set; } + + /// Use the default credentials for the proxy + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Use the default credentials for the proxy")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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. + /// /// Determines if the rest of the onDefault method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnDefault(global::System.Net.Http.HttpResponseMessage responseMessage, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnOk will be called before the regular onOk has been processed, allowing customization of what happens + /// on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// 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() + { + var telemetryId = Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.GetTelemetryId.Invoke(); + if (telemetryId != "" && telemetryId != "internal") + { + __correlationId = telemetryId; + } + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + + } + + /// + /// Intializes a new instance of the cmdlet class. + /// + public GetAzEventGridTopic_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.EventGrid.Runtime.IEventListener.Signal(string id, global::System.Threading.CancellationToken token, global::System.Func messageData) + { + using( NoSynchronizationContext ) + { + if (token.IsCancellationRequested) + { + return ; + } + + switch ( id ) + { + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Information: + { + var data = messageData(); + WriteInformation(data.Message, new string[]{}); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Error: + { + WriteError(new global::System.Management.Automation.ErrorRecord( new global::System.Exception(messageData().Message), string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null ) ); + return ; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.EventData ), InvocationInformation, this.ParameterSetName, __correlationId, __processRecordId, null ); + if (token.IsCancellationRequested) + { + return ; + } + WriteDebug($"{id}: {(messageData().Message ?? global::System.String.Empty)}"); + } + } + + /// Performs execution of the command. + protected override void ProcessRecord() + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + using( var asyncCommandRuntime = new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token); + } + } + catch (global::System.AggregateException aggregateException) + { + // unroll the inner exceptions to get the root cause + foreach( var innerException in aggregateException.Flatten().InnerExceptions ) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(innerException,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + } + catch (global::System.Exception exception) when ((exception as System.Management.Automation.PipelineStoppedException)== null || (exception as System.Management.Automation.PipelineStoppedException).InnerException != null) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(exception,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + finally + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletProcessRecordEnd).Wait(); + } + } + + /// Performs execution of the command, working asynchronously if required. + /// + /// A that will be complete when handling of the method is completed. + /// + protected async global::System.Threading.Tasks.Task ProcessRecordAsync() + { + using( NoSynchronizationContext ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + if (InputObject?.Id != null) + { + await this.Client.TopicsGetViaIdentity(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.TopicName) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.TopicName"),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, InputObject) ); + } + await this.Client.TopicsGet(InputObject.SubscriptionId ?? null, InputObject.ResourceGroupName ?? null, InputObject.TopicName ?? null, onOk, onDefault, this, Pipeline); + } + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Cancel(); + base.StopProcessing(); + } + + /// + /// a delegate that is called when the remote service returns default (any response code not handled elsewhere). + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onDefault(global::System.Net.Http.HttpResponseMessage responseMessage) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnDefault(responseMessage, ref _returnNow); + // if overrideOnDefault has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // Error Response : default + // Unrecognized Response. Create an error record based on what we have. + var ex = new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.RestException(responseMessage); + WriteError( new global::System.Management.Automation.ErrorRecord(ex, ex.Code, global::System.Management.Automation.ErrorCategory.InvalidOperation, new { }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(ex.Message) { RecommendedAction = ex.Action } + }); + } + } + + /// a delegate that is called when the remote service returns 200 (OK). + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as 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.EventGrid.Models.Api20211015Preview.ITopic + WriteObject((await response)); + } + } + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/cmdlets/GetAzEventGridTopic_List.cs b/swaggerci/eventgrid/generated/cmdlets/GetAzEventGridTopic_List.cs new file mode 100644 index 000000000000..4a724059af70 --- /dev/null +++ b/swaggerci/eventgrid/generated/cmdlets/GetAzEventGridTopic_List.cs @@ -0,0 +1,428 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Extensions; + using System; + + /// List all the topics under an Azure subscription. + /// + /// [OpenAPI] ListBySubscription=>GET:"/subscriptions/{subscriptionId}/providers/Microsoft.EventGrid/topics" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsCommon.Get, @"AzEventGridTopic_List")] + [global::System.Management.Automation.OutputType(typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITopic))] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Description(@"List all the topics under an Azure subscription.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Generated] + public partial class GetAzEventGridTopic_List : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener + { + /// A unique id generatd for the this cmdlet when it is instantiated. + private string __correlationId = System.Guid.NewGuid().ToString(); + + /// A copy of the Invocation Info (necessary to allow asJob to clone this cmdlet) + private global::System.Management.Automation.InvocationInfo __invocationInfo; + + /// A unique id generatd for the this cmdlet when ProcessRecord() is called. + private string __processRecordId; + + /// + /// The for this operation. + /// + private global::System.Threading.CancellationTokenSource _cancellationTokenSource = new global::System.Threading.CancellationTokenSource(); + + /// A flag to tell whether it is the first onOK call. + private bool _isFirst = true; + + /// Link to retrieve next page. + private string _nextLink; + + /// Wait for .NET debugger to attach + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Wait for .NET debugger to attach")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.EventGridManagementClient Client => Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.ClientAPI; + + /// + /// The credentials, account, tenant, and subscription used for communication with Azure + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The credentials, account, tenant, and subscription used for communication with Azure.")] + [global::System.Management.Automation.ValidateNotNull] + [global::System.Management.Automation.Alias("AzureRMContext", "AzureCredential")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Azure)] + public global::System.Management.Automation.PSObject DefaultProfile { get; set; } + + /// Backing field for property. + private string _filter; + + /// + /// The query used to filter the search results using OData syntax. Filtering is permitted on the 'name' property only and + /// with limited number of OData operations. These operations are: the 'contains' function as well as the following logical + /// operations: not, and, or, eq (for equal), and ne (for not equal). No arithmetic operations are supported. The following + /// is a valid filter example: $filter=contains(namE, 'PATTERN') and name ne 'PATTERN-1'. The following is not a valid filter + /// example: $filter=location eq 'westus'. + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The query used to filter the search results using OData syntax. Filtering is permitted on the 'name' property only and with limited number of OData operations. These operations are: the 'contains' function as well as the following logical operations: not, and, or, eq (for equal), and ne (for not equal). No arithmetic operations are supported. The following is a valid filter example: $filter=contains(namE, 'PATTERN') and name ne 'PATTERN-1'. The following is not a valid filter example: $filter=location eq 'westus'.")] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The query used to filter the search results using OData syntax. Filtering is permitted on the 'name' property only and with limited number of OData operations. These operations are: the 'contains' function as well as the following logical operations: not, and, or, eq (for equal), and ne (for not equal). No arithmetic operations are supported. The following is a valid filter example: $filter=contains(namE, 'PATTERN') and name ne 'PATTERN-1'. The following is not a valid filter example: $filter=location eq 'westus'.", + SerializedName = @"$filter", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[] HttpPipelineAppend { get; set; } + + /// SendAsync Pipeline Steps to be prepended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be prepended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[] HttpPipelinePrepend { get; set; } + + /// Accessor for our copy of the InvocationInfo. + public global::System.Management.Automation.InvocationInfo InvocationInformation { get => __invocationInfo = __invocationInfo ?? this.MyInvocation ; set { __invocationInfo = value; } } + + /// + /// cancellation delegate. Stops the cmdlet when called. + /// + global::System.Action Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Runtime.HttpPipeline Pipeline { get; set; } + + /// The URI for the proxy server to use + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "The URI for the proxy server to use")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Uri Proxy { get; set; } + + /// Credentials for a proxy server to use for the remote call + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Credentials for a proxy server to use for the remote call")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Management.Automation.PSCredential ProxyCredential { get; set; } + + /// Use the default credentials for the proxy + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Use the default credentials for the proxy")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter ProxyUseDefaultCredentials { get; set; } + + /// Backing field for property. + private string[] _subscriptionId; + + /// + /// Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription ID forms part of the + /// URI for every service call. + /// + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.")] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.", + SerializedName = @"subscriptionId", + PossibleTypes = new [] { typeof(string) })] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.DefaultInfo( + Name = @"", + Description =@"", + Script = @"(Get-AzContext).Subscription.Id")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Path)] + public string[] SubscriptionId { get => this._subscriptionId; set => this._subscriptionId = value; } + + /// Backing field for property. + private int _top; + + /// + /// The number of results to return per page for the list operation. Valid range for top parameter is 1 to 100. If not specified, + /// the default number of results to be returned is 20 items per page. + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The number of results to return per page for the list operation. Valid range for top parameter is 1 to 100. If not specified, the default number of results to be returned is 20 items per page.")] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The number of results to return per page for the list operation. Valid range for top parameter is 1 to 100. If not specified, the default number of results to be returned is 20 items per page.", + SerializedName = @"$top", + PossibleTypes = new [] { typeof(int) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Query)] + public int Top { get => this._top; set => this._top = value; } + + /// + /// overrideOnDefault will be called before the regular onDefault has been processed, allowing customization of what + /// happens on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// /// Determines if the rest of the onDefault method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnDefault(global::System.Net.Http.HttpResponseMessage responseMessage, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnOk will be called before the regular onOk has been processed, allowing customization of what happens + /// on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// 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() + { + var telemetryId = Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.GetTelemetryId.Invoke(); + if (telemetryId != "" && telemetryId != "internal") + { + __correlationId = telemetryId; + } + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + + } + + /// + /// Intializes a new instance of the cmdlet class. + /// + public GetAzEventGridTopic_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.EventGrid.Runtime.IEventListener.Signal(string id, global::System.Threading.CancellationToken token, global::System.Func messageData) + { + using( NoSynchronizationContext ) + { + if (token.IsCancellationRequested) + { + return ; + } + + switch ( id ) + { + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Information: + { + var data = messageData(); + WriteInformation(data.Message, new string[]{}); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Error: + { + WriteError(new global::System.Management.Automation.ErrorRecord( new global::System.Exception(messageData().Message), string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null ) ); + return ; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.EventData ), InvocationInformation, this.ParameterSetName, __correlationId, __processRecordId, null ); + if (token.IsCancellationRequested) + { + return ; + } + WriteDebug($"{id}: {(messageData().Message ?? global::System.String.Empty)}"); + } + } + + /// Performs execution of the command. + protected override void ProcessRecord() + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + using( var asyncCommandRuntime = new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token); + } + } + catch (global::System.AggregateException aggregateException) + { + // unroll the inner exceptions to get the root cause + foreach( var innerException in aggregateException.Flatten().InnerExceptions ) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(innerException,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + } + catch (global::System.Exception exception) when ((exception as System.Management.Automation.PipelineStoppedException)== null || (exception as System.Management.Automation.PipelineStoppedException).InnerException != null) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(exception,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + finally + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletProcessRecordEnd).Wait(); + } + } + + /// Performs execution of the command, working asynchronously if required. + /// + /// A that will be complete when handling of the method is completed. + /// + protected async global::System.Threading.Tasks.Task ProcessRecordAsync() + { + using( NoSynchronizationContext ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + foreach( var SubscriptionId in this.SubscriptionId ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await this.Client.TopicsListBySubscription(SubscriptionId, this.InvocationInformation.BoundParameters.ContainsKey("Filter") ? Filter : null, this.InvocationInformation.BoundParameters.ContainsKey("Top") ? Top : default(int?), onOk, onDefault, this, Pipeline); + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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,Top=this.InvocationInformation.BoundParameters.ContainsKey("Top") ? Top : default(int?)}) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(urexception.Message) { RecommendedAction = urexception.Action } + }); + } + finally + { + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Cancel(); + base.StopProcessing(); + } + + /// + /// a delegate that is called when the remote service returns default (any response code not handled elsewhere). + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onDefault(global::System.Net.Http.HttpResponseMessage responseMessage) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnDefault(responseMessage, ref _returnNow); + // if overrideOnDefault has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // Error Response : default + // Unrecognized Response. Create an error record based on what we have. + var ex = new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.RestException(responseMessage); + 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, Top=this.InvocationInformation.BoundParameters.ContainsKey("Top") ? Top : default(int?) }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(ex.Message) { RecommendedAction = ex.Action } + }); + } + } + + /// a delegate that is called when the remote service returns 200 (OK). + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnOk(responseMessage, response, ref _returnNow); + // if overrideOnOk has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // onOk - response for 200 / application/json + // response should be returning an array of some kind. +Pageable + // pageable / value / nextLink + var result = await response; + WriteObject(result.Value,true); + _nextLink = result.NextLink; + if (_isFirst) + { + _isFirst = false; + while (_nextLink != null) + { + if (responseMessage.RequestMessage is System.Net.Http.HttpRequestMessage requestMessage ) + { + requestMessage = requestMessage.Clone(new global::System.Uri( _nextLink ),Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Method.Get ); + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.FollowingNextLink); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await this.Client.TopicsListBySubscription_Call(requestMessage, onOk, onDefault, this, Pipeline); + } + } + } + } + } + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/cmdlets/GetAzEventGridTopic_List1.cs b/swaggerci/eventgrid/generated/cmdlets/GetAzEventGridTopic_List1.cs new file mode 100644 index 000000000000..2b8a28c74077 --- /dev/null +++ b/swaggerci/eventgrid/generated/cmdlets/GetAzEventGridTopic_List1.cs @@ -0,0 +1,442 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Extensions; + using System; + + /// List all the topics under a resource group. + /// + /// [OpenAPI] ListByResourceGroup=>GET:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.EventGrid/topics" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsCommon.Get, @"AzEventGridTopic_List1")] + [global::System.Management.Automation.OutputType(typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITopic))] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Description(@"List all the topics under a resource group.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Generated] + public partial class GetAzEventGridTopic_List1 : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener + { + /// A unique id generatd for the this cmdlet when it is instantiated. + private string __correlationId = System.Guid.NewGuid().ToString(); + + /// A copy of the Invocation Info (necessary to allow asJob to clone this cmdlet) + private global::System.Management.Automation.InvocationInfo __invocationInfo; + + /// A unique id generatd for the this cmdlet when ProcessRecord() is called. + private string __processRecordId; + + /// + /// The for this operation. + /// + private global::System.Threading.CancellationTokenSource _cancellationTokenSource = new global::System.Threading.CancellationTokenSource(); + + /// A flag to tell whether it is the first onOK call. + private bool _isFirst = true; + + /// Link to retrieve next page. + private string _nextLink; + + /// Wait for .NET debugger to attach + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Wait for .NET debugger to attach")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.EventGridManagementClient Client => Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.ClientAPI; + + /// + /// The credentials, account, tenant, and subscription used for communication with Azure + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The credentials, account, tenant, and subscription used for communication with Azure.")] + [global::System.Management.Automation.ValidateNotNull] + [global::System.Management.Automation.Alias("AzureRMContext", "AzureCredential")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Azure)] + public global::System.Management.Automation.PSObject DefaultProfile { get; set; } + + /// Backing field for property. + private string _filter; + + /// + /// The query used to filter the search results using OData syntax. Filtering is permitted on the 'name' property only and + /// with limited number of OData operations. These operations are: the 'contains' function as well as the following logical + /// operations: not, and, or, eq (for equal), and ne (for not equal). No arithmetic operations are supported. The following + /// is a valid filter example: $filter=contains(namE, 'PATTERN') and name ne 'PATTERN-1'. The following is not a valid filter + /// example: $filter=location eq 'westus'. + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The query used to filter the search results using OData syntax. Filtering is permitted on the 'name' property only and with limited number of OData operations. These operations are: the 'contains' function as well as the following logical operations: not, and, or, eq (for equal), and ne (for not equal). No arithmetic operations are supported. The following is a valid filter example: $filter=contains(namE, 'PATTERN') and name ne 'PATTERN-1'. The following is not a valid filter example: $filter=location eq 'westus'.")] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The query used to filter the search results using OData syntax. Filtering is permitted on the 'name' property only and with limited number of OData operations. These operations are: the 'contains' function as well as the following logical operations: not, and, or, eq (for equal), and ne (for not equal). No arithmetic operations are supported. The following is a valid filter example: $filter=contains(namE, 'PATTERN') and name ne 'PATTERN-1'. The following is not a valid filter example: $filter=location eq 'westus'.", + SerializedName = @"$filter", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[] HttpPipelineAppend { get; set; } + + /// SendAsync Pipeline Steps to be prepended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be prepended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[] HttpPipelinePrepend { get; set; } + + /// Accessor for our copy of the InvocationInfo. + public global::System.Management.Automation.InvocationInfo InvocationInformation { get => __invocationInfo = __invocationInfo ?? this.MyInvocation ; set { __invocationInfo = value; } } + + /// + /// cancellation delegate. Stops the cmdlet when called. + /// + global::System.Action Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Runtime.HttpPipeline Pipeline { get; set; } + + /// The URI for the proxy server to use + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "The URI for the proxy server to use")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Uri Proxy { get; set; } + + /// Credentials for a proxy server to use for the remote call + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Credentials for a proxy server to use for the remote call")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Management.Automation.PSCredential ProxyCredential { get; set; } + + /// Use the default credentials for the proxy + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Use the default credentials for the proxy")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter ProxyUseDefaultCredentials { get; set; } + + /// Backing field for property. + private string _resourceGroupName; + + /// The name of the resource group within the user's subscription. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the resource group within the user's subscription.")] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the resource group within the user's subscription.", + SerializedName = @"resourceGroupName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Path)] + public string ResourceGroupName { get => this._resourceGroupName; set => this._resourceGroupName = value; } + + /// Backing field for property. + private string[] _subscriptionId; + + /// + /// Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription ID forms part of the + /// URI for every service call. + /// + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.")] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.", + SerializedName = @"subscriptionId", + PossibleTypes = new [] { typeof(string) })] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.DefaultInfo( + Name = @"", + Description =@"", + Script = @"(Get-AzContext).Subscription.Id")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Path)] + public string[] SubscriptionId { get => this._subscriptionId; set => this._subscriptionId = value; } + + /// Backing field for property. + private int _top; + + /// + /// The number of results to return per page for the list operation. Valid range for top parameter is 1 to 100. If not specified, + /// the default number of results to be returned is 20 items per page. + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The number of results to return per page for the list operation. Valid range for top parameter is 1 to 100. If not specified, the default number of results to be returned is 20 items per page.")] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The number of results to return per page for the list operation. Valid range for top parameter is 1 to 100. If not specified, the default number of results to be returned is 20 items per page.", + SerializedName = @"$top", + PossibleTypes = new [] { typeof(int) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Query)] + public int Top { get => this._top; set => this._top = value; } + + /// + /// overrideOnDefault will be called before the regular onDefault has been processed, allowing customization of what + /// happens on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// /// Determines if the rest of the onDefault method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnDefault(global::System.Net.Http.HttpResponseMessage responseMessage, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnOk will be called before the regular onOk has been processed, allowing customization of what happens + /// on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// 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() + { + var telemetryId = Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.GetTelemetryId.Invoke(); + if (telemetryId != "" && telemetryId != "internal") + { + __correlationId = telemetryId; + } + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + + } + + /// + /// Intializes a new instance of the cmdlet class. + /// + public GetAzEventGridTopic_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.EventGrid.Runtime.IEventListener.Signal(string id, global::System.Threading.CancellationToken token, global::System.Func messageData) + { + using( NoSynchronizationContext ) + { + if (token.IsCancellationRequested) + { + return ; + } + + switch ( id ) + { + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Information: + { + var data = messageData(); + WriteInformation(data.Message, new string[]{}); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Error: + { + WriteError(new global::System.Management.Automation.ErrorRecord( new global::System.Exception(messageData().Message), string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null ) ); + return ; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.EventData ), InvocationInformation, this.ParameterSetName, __correlationId, __processRecordId, null ); + if (token.IsCancellationRequested) + { + return ; + } + WriteDebug($"{id}: {(messageData().Message ?? global::System.String.Empty)}"); + } + } + + /// Performs execution of the command. + protected override void ProcessRecord() + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + using( var asyncCommandRuntime = new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token); + } + } + catch (global::System.AggregateException aggregateException) + { + // unroll the inner exceptions to get the root cause + foreach( var innerException in aggregateException.Flatten().InnerExceptions ) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(innerException,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + } + catch (global::System.Exception exception) when ((exception as System.Management.Automation.PipelineStoppedException)== null || (exception as System.Management.Automation.PipelineStoppedException).InnerException != null) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(exception,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + finally + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletProcessRecordEnd).Wait(); + } + } + + /// Performs execution of the command, working asynchronously if required. + /// + /// A that will be complete when handling of the method is completed. + /// + protected async global::System.Threading.Tasks.Task ProcessRecordAsync() + { + using( NoSynchronizationContext ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + foreach( var SubscriptionId in this.SubscriptionId ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await this.Client.TopicsListByResourceGroup(SubscriptionId, ResourceGroupName, this.InvocationInformation.BoundParameters.ContainsKey("Filter") ? Filter : null, this.InvocationInformation.BoundParameters.ContainsKey("Top") ? Top : default(int?), onOk, onDefault, this, Pipeline); + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.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,Top=this.InvocationInformation.BoundParameters.ContainsKey("Top") ? Top : default(int?)}) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(urexception.Message) { RecommendedAction = urexception.Action } + }); + } + finally + { + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Cancel(); + base.StopProcessing(); + } + + /// + /// a delegate that is called when the remote service returns default (any response code not handled elsewhere). + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onDefault(global::System.Net.Http.HttpResponseMessage responseMessage) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnDefault(responseMessage, ref _returnNow); + // if overrideOnDefault has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // Error Response : default + // Unrecognized Response. Create an error record based on what we have. + var ex = new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.RestException(responseMessage); + 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, Top=this.InvocationInformation.BoundParameters.ContainsKey("Top") ? Top : default(int?) }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(ex.Message) { RecommendedAction = ex.Action } + }); + } + } + + /// a delegate that is called when the remote service returns 200 (OK). + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnOk(responseMessage, response, ref _returnNow); + // if overrideOnOk has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // onOk - response for 200 / application/json + // response should be returning an array of some kind. +Pageable + // pageable / value / nextLink + var result = await response; + WriteObject(result.Value,true); + _nextLink = result.NextLink; + if (_isFirst) + { + _isFirst = false; + while (_nextLink != null) + { + if (responseMessage.RequestMessage is System.Net.Http.HttpRequestMessage requestMessage ) + { + requestMessage = requestMessage.Clone(new global::System.Uri( _nextLink ),Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Method.Get ); + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.FollowingNextLink); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await this.Client.TopicsListByResourceGroup_Call(requestMessage, onOk, onDefault, this, Pipeline); + } + } + } + } + } + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/cmdlets/GetAzEventGridVerifiedPartner_Get.cs b/swaggerci/eventgrid/generated/cmdlets/GetAzEventGridVerifiedPartner_Get.cs new file mode 100644 index 000000000000..908c35842b64 --- /dev/null +++ b/swaggerci/eventgrid/generated/cmdlets/GetAzEventGridVerifiedPartner_Get.cs @@ -0,0 +1,360 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Extensions; + using System; + + /// Get properties of a verified partner. + /// + /// [OpenAPI] Get=>GET:"/providers/Microsoft.EventGrid/verifiedPartners/{verifiedPartnerName}" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsCommon.Get, @"AzEventGridVerifiedPartner_Get")] + [global::System.Management.Automation.OutputType(typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IVerifiedPartner))] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Description(@"Get properties of a verified partner.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Generated] + public partial class GetAzEventGridVerifiedPartner_Get : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener + { + /// A unique id generatd for the this cmdlet when it is instantiated. + private string __correlationId = System.Guid.NewGuid().ToString(); + + /// A copy of the Invocation Info (necessary to allow asJob to clone this cmdlet) + private global::System.Management.Automation.InvocationInfo __invocationInfo; + + /// A unique id generatd for the this cmdlet when ProcessRecord() is called. + private string __processRecordId; + + /// + /// The for this operation. + /// + private global::System.Threading.CancellationTokenSource _cancellationTokenSource = new global::System.Threading.CancellationTokenSource(); + + /// Wait for .NET debugger to attach + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Wait for .NET debugger to attach")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.EventGridManagementClient Client => Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.ClientAPI; + + /// + /// The credentials, account, tenant, and subscription used for communication with Azure + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The credentials, account, tenant, and subscription used for communication with Azure.")] + [global::System.Management.Automation.ValidateNotNull] + [global::System.Management.Automation.Alias("AzureRMContext", "AzureCredential")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Azure)] + public global::System.Management.Automation.PSObject DefaultProfile { get; set; } + + /// SendAsync Pipeline Steps to be appended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be appended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[] HttpPipelineAppend { get; set; } + + /// SendAsync Pipeline Steps to be prepended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be prepended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[] HttpPipelinePrepend { get; set; } + + /// Accessor for our copy of the InvocationInfo. + public global::System.Management.Automation.InvocationInfo InvocationInformation { get => __invocationInfo = __invocationInfo ?? this.MyInvocation ; set { __invocationInfo = value; } } + + /// + /// cancellation delegate. Stops the cmdlet when called. + /// + global::System.Action Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener.Token => _cancellationTokenSource.Token; + + /// Backing field for property. + private string _name; + + /// Name of the verified partner. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Name of the verified partner.")] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Name of the verified partner.", + SerializedName = @"verifiedPartnerName", + PossibleTypes = new [] { typeof(string) })] + [global::System.Management.Automation.Alias("VerifiedPartnerName")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Runtime.HttpPipeline Pipeline { get; set; } + + /// The URI for the proxy server to use + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "The URI for the proxy server to use")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Uri Proxy { get; set; } + + /// Credentials for a proxy server to use for the remote call + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Credentials for a proxy server to use for the remote call")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Management.Automation.PSCredential ProxyCredential { get; set; } + + /// Use the default credentials for the proxy + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Use the default credentials for the proxy")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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. + /// /// Determines if the rest of the onDefault method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnDefault(global::System.Net.Http.HttpResponseMessage responseMessage, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnOk will be called before the regular onOk has been processed, allowing customization of what happens + /// on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// 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() + { + var telemetryId = Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.GetTelemetryId.Invoke(); + if (telemetryId != "" && telemetryId != "internal") + { + __correlationId = telemetryId; + } + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + + } + + /// + /// Intializes a new instance of the cmdlet class. + /// + public GetAzEventGridVerifiedPartner_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.EventGrid.Runtime.IEventListener.Signal(string id, global::System.Threading.CancellationToken token, global::System.Func messageData) + { + using( NoSynchronizationContext ) + { + if (token.IsCancellationRequested) + { + return ; + } + + switch ( id ) + { + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Information: + { + var data = messageData(); + WriteInformation(data.Message, new string[]{}); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Error: + { + WriteError(new global::System.Management.Automation.ErrorRecord( new global::System.Exception(messageData().Message), string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null ) ); + return ; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.EventData ), InvocationInformation, this.ParameterSetName, __correlationId, __processRecordId, null ); + if (token.IsCancellationRequested) + { + return ; + } + WriteDebug($"{id}: {(messageData().Message ?? global::System.String.Empty)}"); + } + } + + /// Performs execution of the command. + protected override void ProcessRecord() + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + using( var asyncCommandRuntime = new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token); + } + } + catch (global::System.AggregateException aggregateException) + { + // unroll the inner exceptions to get the root cause + foreach( var innerException in aggregateException.Flatten().InnerExceptions ) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(innerException,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + } + catch (global::System.Exception exception) when ((exception as System.Management.Automation.PipelineStoppedException)== null || (exception as System.Management.Automation.PipelineStoppedException).InnerException != null) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(exception,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + finally + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletProcessRecordEnd).Wait(); + } + } + + /// Performs execution of the command, working asynchronously if required. + /// + /// A that will be complete when handling of the method is completed. + /// + protected async global::System.Threading.Tasks.Task ProcessRecordAsync() + { + using( NoSynchronizationContext ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await this.Client.VerifiedPartnersGet(Name, onOk, onDefault, this, Pipeline); + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.UndeclaredResponseException urexception) + { + WriteError(new global::System.Management.Automation.ErrorRecord(urexception, urexception.StatusCode.ToString(), global::System.Management.Automation.ErrorCategory.InvalidOperation, new { Name=Name}) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(urexception.Message) { RecommendedAction = urexception.Action } + }); + } + finally + { + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Cancel(); + base.StopProcessing(); + } + + /// + /// a delegate that is called when the remote service returns default (any response code not handled elsewhere). + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onDefault(global::System.Net.Http.HttpResponseMessage responseMessage) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnDefault(responseMessage, ref _returnNow); + // if overrideOnDefault has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // Error Response : default + // Unrecognized Response. Create an error record based on what we have. + var ex = new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.RestException(responseMessage); + WriteError( new global::System.Management.Automation.ErrorRecord(ex, ex.Code, global::System.Management.Automation.ErrorCategory.InvalidOperation, new { Name=Name }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(ex.Message) { RecommendedAction = ex.Action } + }); + } + } + + /// a delegate that is called when the remote service returns 200 (OK). + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as 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.EventGrid.Models.Api20211015Preview.IVerifiedPartner + WriteObject((await response)); + } + } + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/cmdlets/GetAzEventGridVerifiedPartner_GetViaIdentity.cs b/swaggerci/eventgrid/generated/cmdlets/GetAzEventGridVerifiedPartner_GetViaIdentity.cs new file mode 100644 index 000000000000..1fd2fb1ae652 --- /dev/null +++ b/swaggerci/eventgrid/generated/cmdlets/GetAzEventGridVerifiedPartner_GetViaIdentity.cs @@ -0,0 +1,365 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Extensions; + using System; + + /// Get properties of a verified partner. + /// + /// [OpenAPI] Get=>GET:"/providers/Microsoft.EventGrid/verifiedPartners/{verifiedPartnerName}" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsCommon.Get, @"AzEventGridVerifiedPartner_GetViaIdentity")] + [global::System.Management.Automation.OutputType(typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IVerifiedPartner))] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Description(@"Get properties of a verified partner.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Generated] + public partial class GetAzEventGridVerifiedPartner_GetViaIdentity : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener + { + /// A unique id generatd for the this cmdlet when it is instantiated. + private string __correlationId = System.Guid.NewGuid().ToString(); + + /// A copy of the Invocation Info (necessary to allow asJob to clone this cmdlet) + private global::System.Management.Automation.InvocationInfo __invocationInfo; + + /// A unique id generatd for the this cmdlet when ProcessRecord() is called. + private string __processRecordId; + + /// + /// The for this operation. + /// + private global::System.Threading.CancellationTokenSource _cancellationTokenSource = new global::System.Threading.CancellationTokenSource(); + + /// Wait for .NET debugger to attach + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Wait for .NET debugger to attach")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.EventGridManagementClient Client => Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.ClientAPI; + + /// + /// The credentials, account, tenant, and subscription used for communication with Azure + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The credentials, account, tenant, and subscription used for communication with Azure.")] + [global::System.Management.Automation.ValidateNotNull] + [global::System.Management.Automation.Alias("AzureRMContext", "AzureCredential")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Azure)] + public global::System.Management.Automation.PSObject DefaultProfile { get; set; } + + /// SendAsync Pipeline Steps to be appended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be appended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[] HttpPipelineAppend { get; set; } + + /// SendAsync Pipeline Steps to be prepended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be prepended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[] HttpPipelinePrepend { get; set; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.IEventGridIdentity _inputObject; + + /// Identity Parameter + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Identity Parameter", ValueFromPipeline = true)] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Path)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.IEventGridIdentity InputObject { get => this._inputObject; set => this._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.EventGrid.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Runtime.HttpPipeline Pipeline { get; set; } + + /// The URI for the proxy server to use + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "The URI for the proxy server to use")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Uri Proxy { get; set; } + + /// Credentials for a proxy server to use for the remote call + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Credentials for a proxy server to use for the remote call")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Management.Automation.PSCredential ProxyCredential { get; set; } + + /// Use the default credentials for the proxy + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Use the default credentials for the proxy")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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. + /// /// Determines if the rest of the onDefault method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnDefault(global::System.Net.Http.HttpResponseMessage responseMessage, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnOk will be called before the regular onOk has been processed, allowing customization of what happens + /// on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// 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() + { + var telemetryId = Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.GetTelemetryId.Invoke(); + if (telemetryId != "" && telemetryId != "internal") + { + __correlationId = telemetryId; + } + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + + } + + /// + /// Intializes a new instance of the cmdlet class. + /// + public GetAzEventGridVerifiedPartner_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.EventGrid.Runtime.IEventListener.Signal(string id, global::System.Threading.CancellationToken token, global::System.Func messageData) + { + using( NoSynchronizationContext ) + { + if (token.IsCancellationRequested) + { + return ; + } + + switch ( id ) + { + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Information: + { + var data = messageData(); + WriteInformation(data.Message, new string[]{}); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Error: + { + WriteError(new global::System.Management.Automation.ErrorRecord( new global::System.Exception(messageData().Message), string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null ) ); + return ; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.EventData ), InvocationInformation, this.ParameterSetName, __correlationId, __processRecordId, null ); + if (token.IsCancellationRequested) + { + return ; + } + WriteDebug($"{id}: {(messageData().Message ?? global::System.String.Empty)}"); + } + } + + /// Performs execution of the command. + protected override void ProcessRecord() + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + using( var asyncCommandRuntime = new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token); + } + } + catch (global::System.AggregateException aggregateException) + { + // unroll the inner exceptions to get the root cause + foreach( var innerException in aggregateException.Flatten().InnerExceptions ) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(innerException,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + } + catch (global::System.Exception exception) when ((exception as System.Management.Automation.PipelineStoppedException)== null || (exception as System.Management.Automation.PipelineStoppedException).InnerException != null) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(exception,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + finally + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletProcessRecordEnd).Wait(); + } + } + + /// Performs execution of the command, working asynchronously if required. + /// + /// A that will be complete when handling of the method is completed. + /// + protected async global::System.Threading.Tasks.Task ProcessRecordAsync() + { + using( NoSynchronizationContext ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + if (InputObject?.Id != null) + { + await this.Client.VerifiedPartnersGetViaIdentity(InputObject.Id, onOk, onDefault, this, Pipeline); + } + else + { + // try to call with PATH parameters from Input Object + if (null == InputObject.VerifiedPartnerName) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.VerifiedPartnerName"),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, InputObject) ); + } + await this.Client.VerifiedPartnersGet(InputObject.VerifiedPartnerName ?? null, onOk, onDefault, this, Pipeline); + } + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Cancel(); + base.StopProcessing(); + } + + /// + /// a delegate that is called when the remote service returns default (any response code not handled elsewhere). + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onDefault(global::System.Net.Http.HttpResponseMessage responseMessage) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnDefault(responseMessage, ref _returnNow); + // if overrideOnDefault has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // Error Response : default + // Unrecognized Response. Create an error record based on what we have. + var ex = new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.RestException(responseMessage); + WriteError( new global::System.Management.Automation.ErrorRecord(ex, ex.Code, global::System.Management.Automation.ErrorCategory.InvalidOperation, new { }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(ex.Message) { RecommendedAction = ex.Action } + }); + } + } + + /// a delegate that is called when the remote service returns 200 (OK). + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as 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.EventGrid.Models.Api20211015Preview.IVerifiedPartner + WriteObject((await response)); + } + } + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/cmdlets/GetAzEventGridVerifiedPartner_List.cs b/swaggerci/eventgrid/generated/cmdlets/GetAzEventGridVerifiedPartner_List.cs new file mode 100644 index 000000000000..f351a9f8a1ca --- /dev/null +++ b/swaggerci/eventgrid/generated/cmdlets/GetAzEventGridVerifiedPartner_List.cs @@ -0,0 +1,404 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Extensions; + using System; + + /// Get a list of all verified partners. + /// + /// [OpenAPI] List=>GET:"/providers/Microsoft.EventGrid/verifiedPartners" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsCommon.Get, @"AzEventGridVerifiedPartner_List")] + [global::System.Management.Automation.OutputType(typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IVerifiedPartner))] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Description(@"Get a list of all verified partners.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Generated] + public partial class GetAzEventGridVerifiedPartner_List : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener + { + /// A unique id generatd for the this cmdlet when it is instantiated. + private string __correlationId = System.Guid.NewGuid().ToString(); + + /// A copy of the Invocation Info (necessary to allow asJob to clone this cmdlet) + private global::System.Management.Automation.InvocationInfo __invocationInfo; + + /// A unique id generatd for the this cmdlet when ProcessRecord() is called. + private string __processRecordId; + + /// + /// The for this operation. + /// + private global::System.Threading.CancellationTokenSource _cancellationTokenSource = new global::System.Threading.CancellationTokenSource(); + + /// A flag to tell whether it is the first onOK call. + private bool _isFirst = true; + + /// Link to retrieve next page. + private string _nextLink; + + /// Wait for .NET debugger to attach + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Wait for .NET debugger to attach")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.EventGridManagementClient Client => Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.ClientAPI; + + /// + /// The credentials, account, tenant, and subscription used for communication with Azure + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The credentials, account, tenant, and subscription used for communication with Azure.")] + [global::System.Management.Automation.ValidateNotNull] + [global::System.Management.Automation.Alias("AzureRMContext", "AzureCredential")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Azure)] + public global::System.Management.Automation.PSObject DefaultProfile { get; set; } + + /// Backing field for property. + private string _filter; + + /// + /// The query used to filter the search results using OData syntax. Filtering is permitted on the 'name' property only and + /// with limited number of OData operations. These operations are: the 'contains' function as well as the following logical + /// operations: not, and, or, eq (for equal), and ne (for not equal). No arithmetic operations are supported. The following + /// is a valid filter example: $filter=contains(namE, 'PATTERN') and name ne 'PATTERN-1'. The following is not a valid filter + /// example: $filter=location eq 'westus'. + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The query used to filter the search results using OData syntax. Filtering is permitted on the 'name' property only and with limited number of OData operations. These operations are: the 'contains' function as well as the following logical operations: not, and, or, eq (for equal), and ne (for not equal). No arithmetic operations are supported. The following is a valid filter example: $filter=contains(namE, 'PATTERN') and name ne 'PATTERN-1'. The following is not a valid filter example: $filter=location eq 'westus'.")] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The query used to filter the search results using OData syntax. Filtering is permitted on the 'name' property only and with limited number of OData operations. These operations are: the 'contains' function as well as the following logical operations: not, and, or, eq (for equal), and ne (for not equal). No arithmetic operations are supported. The following is a valid filter example: $filter=contains(namE, 'PATTERN') and name ne 'PATTERN-1'. The following is not a valid filter example: $filter=location eq 'westus'.", + SerializedName = @"$filter", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[] HttpPipelineAppend { get; set; } + + /// SendAsync Pipeline Steps to be prepended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be prepended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[] HttpPipelinePrepend { get; set; } + + /// Accessor for our copy of the InvocationInfo. + public global::System.Management.Automation.InvocationInfo InvocationInformation { get => __invocationInfo = __invocationInfo ?? this.MyInvocation ; set { __invocationInfo = value; } } + + /// + /// cancellation delegate. Stops the cmdlet when called. + /// + global::System.Action Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Runtime.HttpPipeline Pipeline { get; set; } + + /// The URI for the proxy server to use + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "The URI for the proxy server to use")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Uri Proxy { get; set; } + + /// Credentials for a proxy server to use for the remote call + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Credentials for a proxy server to use for the remote call")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Management.Automation.PSCredential ProxyCredential { get; set; } + + /// Use the default credentials for the proxy + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Use the default credentials for the proxy")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter ProxyUseDefaultCredentials { get; set; } + + /// Backing field for property. + private int _top; + + /// + /// The number of results to return per page for the list operation. Valid range for top parameter is 1 to 100. If not specified, + /// the default number of results to be returned is 20 items per page. + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The number of results to return per page for the list operation. Valid range for top parameter is 1 to 100. If not specified, the default number of results to be returned is 20 items per page.")] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The number of results to return per page for the list operation. Valid range for top parameter is 1 to 100. If not specified, the default number of results to be returned is 20 items per page.", + SerializedName = @"$top", + PossibleTypes = new [] { typeof(int) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Query)] + public int Top { get => this._top; set => this._top = value; } + + /// + /// overrideOnDefault will be called before the regular onDefault has been processed, allowing customization of what + /// happens on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// /// Determines if the rest of the onDefault method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnDefault(global::System.Net.Http.HttpResponseMessage responseMessage, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnOk will be called before the regular onOk has been processed, allowing customization of what happens + /// on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// 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() + { + var telemetryId = Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.GetTelemetryId.Invoke(); + if (telemetryId != "" && telemetryId != "internal") + { + __correlationId = telemetryId; + } + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + + } + + /// + /// Intializes a new instance of the cmdlet class. + /// + public GetAzEventGridVerifiedPartner_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.EventGrid.Runtime.IEventListener.Signal(string id, global::System.Threading.CancellationToken token, global::System.Func messageData) + { + using( NoSynchronizationContext ) + { + if (token.IsCancellationRequested) + { + return ; + } + + switch ( id ) + { + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Information: + { + var data = messageData(); + WriteInformation(data.Message, new string[]{}); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Error: + { + WriteError(new global::System.Management.Automation.ErrorRecord( new global::System.Exception(messageData().Message), string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null ) ); + return ; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.EventData ), InvocationInformation, this.ParameterSetName, __correlationId, __processRecordId, null ); + if (token.IsCancellationRequested) + { + return ; + } + WriteDebug($"{id}: {(messageData().Message ?? global::System.String.Empty)}"); + } + } + + /// Performs execution of the command. + protected override void ProcessRecord() + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + using( var asyncCommandRuntime = new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token); + } + } + catch (global::System.AggregateException aggregateException) + { + // unroll the inner exceptions to get the root cause + foreach( var innerException in aggregateException.Flatten().InnerExceptions ) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(innerException,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + } + catch (global::System.Exception exception) when ((exception as System.Management.Automation.PipelineStoppedException)== null || (exception as System.Management.Automation.PipelineStoppedException).InnerException != null) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(exception,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + finally + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletProcessRecordEnd).Wait(); + } + } + + /// Performs execution of the command, working asynchronously if required. + /// + /// A that will be complete when handling of the method is completed. + /// + protected async global::System.Threading.Tasks.Task ProcessRecordAsync() + { + using( NoSynchronizationContext ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await this.Client.VerifiedPartnersList(this.InvocationInformation.BoundParameters.ContainsKey("Filter") ? Filter : null, this.InvocationInformation.BoundParameters.ContainsKey("Top") ? Top : default(int?), onOk, onDefault, this, Pipeline); + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.UndeclaredResponseException urexception) + { + WriteError(new global::System.Management.Automation.ErrorRecord(urexception, urexception.StatusCode.ToString(), global::System.Management.Automation.ErrorCategory.InvalidOperation, new { Filter=this.InvocationInformation.BoundParameters.ContainsKey("Filter") ? Filter : null,Top=this.InvocationInformation.BoundParameters.ContainsKey("Top") ? Top : default(int?)}) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(urexception.Message) { RecommendedAction = urexception.Action } + }); + } + finally + { + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Cancel(); + base.StopProcessing(); + } + + /// + /// a delegate that is called when the remote service returns default (any response code not handled elsewhere). + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onDefault(global::System.Net.Http.HttpResponseMessage responseMessage) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnDefault(responseMessage, ref _returnNow); + // if overrideOnDefault has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // Error Response : default + // Unrecognized Response. Create an error record based on what we have. + var ex = new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.RestException(responseMessage); + WriteError( new global::System.Management.Automation.ErrorRecord(ex, ex.Code, global::System.Management.Automation.ErrorCategory.InvalidOperation, new { Filter=this.InvocationInformation.BoundParameters.ContainsKey("Filter") ? Filter : null, Top=this.InvocationInformation.BoundParameters.ContainsKey("Top") ? Top : default(int?) }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(ex.Message) { RecommendedAction = ex.Action } + }); + } + } + + /// a delegate that is called when the remote service returns 200 (OK). + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as a from the remote call + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onOk(global::System.Net.Http.HttpResponseMessage responseMessage, global::System.Threading.Tasks.Task response) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnOk(responseMessage, response, ref _returnNow); + // if overrideOnOk has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // onOk - response for 200 / application/json + // response should be returning an array of some kind. +Pageable + // pageable / value / nextLink + var result = await response; + WriteObject(result.Value,true); + _nextLink = result.NextLink; + if (_isFirst) + { + _isFirst = false; + while (_nextLink != null) + { + if (responseMessage.RequestMessage is System.Net.Http.HttpRequestMessage requestMessage ) + { + requestMessage = requestMessage.Clone(new global::System.Uri( _nextLink ),Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Method.Get ); + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.FollowingNextLink); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await this.Client.VerifiedPartnersList_Call(requestMessage, onOk, onDefault, this, Pipeline); + } + } + } + } + } + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/cmdlets/GrantAzEventGridPartnerConfigurationPartner_Authorize.cs b/swaggerci/eventgrid/generated/cmdlets/GrantAzEventGridPartnerConfigurationPartner_Authorize.cs new file mode 100644 index 000000000000..959c7ba0bad6 --- /dev/null +++ b/swaggerci/eventgrid/generated/cmdlets/GrantAzEventGridPartnerConfigurationPartner_Authorize.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.EventGrid.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Extensions; + using System; + + /// + /// Authorize a single partner either by partner registration immutable Id or by partner name. + /// + /// + /// [OpenAPI] AuthorizePartner=>POST:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.EventGrid/partnerConfigurations/default/authorizePartner" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsSecurity.Grant, @"AzEventGridPartnerConfigurationPartner_Authorize", SupportsShouldProcess = true)] + [global::System.Management.Automation.OutputType(typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerConfiguration))] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Description(@"Authorize a single partner either by partner registration immutable Id or by partner name.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Generated] + public partial class GrantAzEventGridPartnerConfigurationPartner_Authorize : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener + { + /// A unique id generatd for the this cmdlet when it is instantiated. + private string __correlationId = System.Guid.NewGuid().ToString(); + + /// A copy of the Invocation Info (necessary to allow asJob to clone this cmdlet) + private global::System.Management.Automation.InvocationInfo __invocationInfo; + + /// A unique id generatd for the this cmdlet when ProcessRecord() is called. + private string __processRecordId; + + /// + /// The for this operation. + /// + private global::System.Threading.CancellationTokenSource _cancellationTokenSource = new global::System.Threading.CancellationTokenSource(); + + /// Wait for .NET debugger to attach + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Wait for .NET debugger to attach")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.EventGridManagementClient Client => Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.ClientAPI; + + /// + /// The credentials, account, tenant, and subscription used for communication with Azure + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The credentials, account, tenant, and subscription used for communication with Azure.")] + [global::System.Management.Automation.ValidateNotNull] + [global::System.Management.Automation.Alias("AzureRMContext", "AzureCredential")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Azure)] + public global::System.Management.Automation.PSObject DefaultProfile { get; set; } + + /// SendAsync Pipeline Steps to be appended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be appended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[] HttpPipelineAppend { get; set; } + + /// SendAsync Pipeline Steps to be prepended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be prepended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[] HttpPipelinePrepend { get; set; } + + /// Accessor for our copy of the InvocationInfo. + public global::System.Management.Automation.InvocationInfo InvocationInformation { get => __invocationInfo = __invocationInfo ?? this.MyInvocation ; set { __invocationInfo = value; } } + + /// + /// cancellation delegate. Stops the cmdlet when called. + /// + global::System.Action Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener.Token => _cancellationTokenSource.Token; + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartner _partnerInfo; + + /// Information about the partner. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Information about the partner.", ValueFromPipeline = true)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Information about the partner.", + SerializedName = @"partnerInfo", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartner) })] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartner PartnerInfo { get => this._partnerInfo; set => this._partnerInfo = 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.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Runtime.HttpPipeline Pipeline { get; set; } + + /// The URI for the proxy server to use + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "The URI for the proxy server to use")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Uri Proxy { get; set; } + + /// Credentials for a proxy server to use for the remote call + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Credentials for a proxy server to use for the remote call")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Management.Automation.PSCredential ProxyCredential { get; set; } + + /// Use the default credentials for the proxy + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Use the default credentials for the proxy")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter ProxyUseDefaultCredentials { get; set; } + + /// Backing field for property. + private string _resourceGroupName; + + /// The name of the resource group within the user's subscription. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the resource group within the user's subscription.")] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the resource group within the user's subscription.", + SerializedName = @"resourceGroupName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Path)] + public string ResourceGroupName { get => this._resourceGroupName; set => this._resourceGroupName = value; } + + /// Backing field for property. + private string _subscriptionId; + + /// + /// Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription ID forms part of the + /// URI for every service call. + /// + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.")] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.", + SerializedName = @"subscriptionId", + PossibleTypes = new [] { typeof(string) })] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.DefaultInfo( + Name = @"", + Description =@"", + Script = @"(Get-AzContext).Subscription.Id")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Path)] + public string SubscriptionId { get => this._subscriptionId; set => this._subscriptionId = value; } + + /// + /// overrideOnDefault will be called before the regular onDefault has been processed, allowing customization of what + /// happens on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// /// Determines if the rest of the onDefault method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnDefault(global::System.Net.Http.HttpResponseMessage responseMessage, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnOk will be called before the regular onOk has been processed, allowing customization of what happens + /// on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// 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() + { + var telemetryId = Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.GetTelemetryId.Invoke(); + if (telemetryId != "" && telemetryId != "internal") + { + __correlationId = telemetryId; + } + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + + } + + /// + /// Intializes a new instance of the cmdlet class. + /// + public GrantAzEventGridPartnerConfigurationPartner_Authorize() + { + + } + + /// Handles/Dispatches events during the call to the REST service. + /// The message id + /// The message cancellation token. When this call is cancelled, this should be true + /// Detailed message data for the message event. + /// + /// A that will be complete when handling of the message is completed. + /// + async global::System.Threading.Tasks.Task Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener.Signal(string id, global::System.Threading.CancellationToken token, global::System.Func messageData) + { + using( NoSynchronizationContext ) + { + if (token.IsCancellationRequested) + { + return ; + } + + switch ( id ) + { + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Information: + { + var data = messageData(); + WriteInformation(data.Message, new string[]{}); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Error: + { + WriteError(new global::System.Management.Automation.ErrorRecord( new global::System.Exception(messageData().Message), string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null ) ); + return ; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.EventData ), InvocationInformation, this.ParameterSetName, __correlationId, __processRecordId, null ); + if (token.IsCancellationRequested) + { + return ; + } + WriteDebug($"{id}: {(messageData().Message ?? global::System.String.Empty)}"); + } + } + + /// Performs execution of the command. + protected override void ProcessRecord() + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + if (ShouldProcess($"Call remote 'PartnerConfigurationsAuthorizePartner' operation")) + { + using( var asyncCommandRuntime = new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token); + } + } + } + catch (global::System.AggregateException aggregateException) + { + // unroll the inner exceptions to get the root cause + foreach( var innerException in aggregateException.Flatten().InnerExceptions ) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(innerException,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + } + catch (global::System.Exception exception) when ((exception as System.Management.Automation.PipelineStoppedException)== null || (exception as System.Management.Automation.PipelineStoppedException).InnerException != null) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(exception,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + finally + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletProcessRecordEnd).Wait(); + } + } + + /// Performs execution of the command, working asynchronously if required. + /// + /// A that will be complete when handling of the method is completed. + /// + protected async global::System.Threading.Tasks.Task ProcessRecordAsync() + { + using( NoSynchronizationContext ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await this.Client.PartnerConfigurationsAuthorizePartner(SubscriptionId, ResourceGroupName, PartnerInfo, onOk, onDefault, this, Pipeline); + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.UndeclaredResponseException urexception) + { + WriteError(new global::System.Management.Automation.ErrorRecord(urexception, urexception.StatusCode.ToString(), global::System.Management.Automation.ErrorCategory.InvalidOperation, new { SubscriptionId=SubscriptionId,ResourceGroupName=ResourceGroupName,body=PartnerInfo}) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(urexception.Message) { RecommendedAction = urexception.Action } + }); + } + finally + { + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Cancel(); + base.StopProcessing(); + } + + /// + /// a delegate that is called when the remote service returns default (any response code not handled elsewhere). + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onDefault(global::System.Net.Http.HttpResponseMessage responseMessage) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnDefault(responseMessage, ref _returnNow); + // if overrideOnDefault has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // Error Response : default + // Unrecognized Response. Create an error record based on what we have. + var ex = new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.RestException(responseMessage); + WriteError( new global::System.Management.Automation.ErrorRecord(ex, ex.Code, global::System.Management.Automation.ErrorCategory.InvalidOperation, new { SubscriptionId=SubscriptionId, ResourceGroupName=ResourceGroupName, body=PartnerInfo }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(ex.Message) { RecommendedAction = ex.Action } + }); + } + } + + /// a delegate that is called when the remote service returns 200 (OK). + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as 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.EventGrid.Models.Api20211015Preview.IPartnerConfiguration + WriteObject((await response)); + } + } + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/cmdlets/GrantAzEventGridPartnerConfigurationPartner_AuthorizeExpanded.cs b/swaggerci/eventgrid/generated/cmdlets/GrantAzEventGridPartnerConfigurationPartner_AuthorizeExpanded.cs new file mode 100644 index 000000000000..8a0b65f85fb9 --- /dev/null +++ b/swaggerci/eventgrid/generated/cmdlets/GrantAzEventGridPartnerConfigurationPartner_AuthorizeExpanded.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.EventGrid.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Extensions; + using System; + + /// + /// Authorize a single partner either by partner registration immutable Id or by partner name. + /// + /// + /// [OpenAPI] AuthorizePartner=>POST:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.EventGrid/partnerConfigurations/default/authorizePartner" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsSecurity.Grant, @"AzEventGridPartnerConfigurationPartner_AuthorizeExpanded", SupportsShouldProcess = true)] + [global::System.Management.Automation.OutputType(typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerConfiguration))] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Description(@"Authorize a single partner either by partner registration immutable Id or by partner name.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Generated] + public partial class GrantAzEventGridPartnerConfigurationPartner_AuthorizeExpanded : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener + { + /// A unique id generatd for the this cmdlet when it is instantiated. + private string __correlationId = System.Guid.NewGuid().ToString(); + + /// A copy of the Invocation Info (necessary to allow asJob to clone this cmdlet) + private global::System.Management.Automation.InvocationInfo __invocationInfo; + + /// A unique id generatd for the this cmdlet when ProcessRecord() is called. + private string __processRecordId; + + /// + /// The for this operation. + /// + private global::System.Threading.CancellationTokenSource _cancellationTokenSource = new global::System.Threading.CancellationTokenSource(); + + /// Information about the partner. + private Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartner _partnerInfoBody = new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.Partner(); + + /// + /// Expiration time of the partner authorization. If this timer expires, any request from this partner to create, update or + /// delete resources in subscriber'scontext will fail. If specified, the allowed values are between 1 to the value of defaultMaximumExpirationTimeInDays + /// specified in PartnerConfiguration.If not specified, the default value will be the value of defaultMaximumExpirationTimeInDays + /// specified in PartnerConfiguration or 7 if this value is not specified. + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Expiration time of the partner authorization. If this timer expires, any request from this partner to create, update or delete resources in subscriber'scontext will fail. If specified, the allowed values are between 1 to the value of defaultMaximumExpirationTimeInDays specified in PartnerConfiguration.If not specified, the default value will be the value of defaultMaximumExpirationTimeInDays specified in PartnerConfiguration or 7 if this value is not specified.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Expiration time of the partner authorization. If this timer expires, any request from this partner to create, update or delete resources in subscriber'scontext will fail. If specified, the allowed values are between 1 to the value of defaultMaximumExpirationTimeInDays specified in PartnerConfiguration.If not specified, the default value will be the value of defaultMaximumExpirationTimeInDays specified in PartnerConfiguration or 7 if this value is not specified.", + SerializedName = @"authorizationExpirationTimeInUtc", + PossibleTypes = new [] { typeof(global::System.DateTime) })] + public global::System.DateTime AuthorizationExpirationTimeInUtc { get => _partnerInfoBody.AuthorizationExpirationTimeInUtc ?? default(global::System.DateTime); set => _partnerInfoBody.AuthorizationExpirationTimeInUtc = 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.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.EventGridManagementClient Client => Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.ClientAPI; + + /// + /// The credentials, account, tenant, and subscription used for communication with Azure + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The credentials, account, tenant, and subscription used for communication with Azure.")] + [global::System.Management.Automation.ValidateNotNull] + [global::System.Management.Automation.Alias("AzureRMContext", "AzureCredential")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Azure)] + public global::System.Management.Automation.PSObject DefaultProfile { get; set; } + + /// SendAsync Pipeline Steps to be appended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be appended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[] HttpPipelineAppend { get; set; } + + /// SendAsync Pipeline Steps to be prepended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be prepended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[] HttpPipelinePrepend { get; set; } + + /// Accessor for our copy of the InvocationInfo. + public global::System.Management.Automation.InvocationInfo InvocationInformation { get => __invocationInfo = __invocationInfo ?? this.MyInvocation ; set { __invocationInfo = value; } } + + /// + /// cancellation delegate. Stops the cmdlet when called. + /// + global::System.Action Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener.Token => _cancellationTokenSource.Token; + + /// The partner name. + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The partner name.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The partner name.", + SerializedName = @"partnerName", + PossibleTypes = new [] { typeof(string) })] + public string PartnerName { get => _partnerInfoBody.Name ?? null; set => _partnerInfoBody.Name = value; } + + /// The immutableId of the corresponding partner registration. + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The immutableId of the corresponding partner registration.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The immutableId of the corresponding partner registration.", + SerializedName = @"partnerRegistrationImmutableId", + PossibleTypes = new [] { typeof(string) })] + public string PartnerRegistrationImmutableId { get => _partnerInfoBody.RegistrationImmutableId ?? null; set => _partnerInfoBody.RegistrationImmutableId = 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.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Runtime.HttpPipeline Pipeline { get; set; } + + /// The URI for the proxy server to use + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "The URI for the proxy server to use")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Uri Proxy { get; set; } + + /// Credentials for a proxy server to use for the remote call + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Credentials for a proxy server to use for the remote call")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Management.Automation.PSCredential ProxyCredential { get; set; } + + /// Use the default credentials for the proxy + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Use the default credentials for the proxy")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter ProxyUseDefaultCredentials { get; set; } + + /// Backing field for property. + private string _resourceGroupName; + + /// The name of the resource group within the user's subscription. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the resource group within the user's subscription.")] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the resource group within the user's subscription.", + SerializedName = @"resourceGroupName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Path)] + public string ResourceGroupName { get => this._resourceGroupName; set => this._resourceGroupName = value; } + + /// Backing field for property. + private string _subscriptionId; + + /// + /// Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription ID forms part of the + /// URI for every service call. + /// + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.")] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.", + SerializedName = @"subscriptionId", + PossibleTypes = new [] { typeof(string) })] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.DefaultInfo( + Name = @"", + Description =@"", + Script = @"(Get-AzContext).Subscription.Id")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Path)] + public string SubscriptionId { get => this._subscriptionId; set => this._subscriptionId = value; } + + /// + /// overrideOnDefault will be called before the regular onDefault has been processed, allowing customization of what + /// happens on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// /// Determines if the rest of the onDefault method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnDefault(global::System.Net.Http.HttpResponseMessage responseMessage, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnOk will be called before the regular onOk has been processed, allowing customization of what happens + /// on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// 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() + { + var telemetryId = Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.GetTelemetryId.Invoke(); + if (telemetryId != "" && telemetryId != "internal") + { + __correlationId = telemetryId; + } + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + + } + + /// + /// Intializes a new instance of the cmdlet class. + /// + public GrantAzEventGridPartnerConfigurationPartner_AuthorizeExpanded() + { + + } + + /// Handles/Dispatches events during the call to the REST service. + /// The message id + /// The message cancellation token. When this call is cancelled, this should be true + /// Detailed message data for the message event. + /// + /// A that will be complete when handling of the message is completed. + /// + async global::System.Threading.Tasks.Task Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener.Signal(string id, global::System.Threading.CancellationToken token, global::System.Func messageData) + { + using( NoSynchronizationContext ) + { + if (token.IsCancellationRequested) + { + return ; + } + + switch ( id ) + { + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Information: + { + var data = messageData(); + WriteInformation(data.Message, new string[]{}); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Error: + { + WriteError(new global::System.Management.Automation.ErrorRecord( new global::System.Exception(messageData().Message), string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null ) ); + return ; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.EventData ), InvocationInformation, this.ParameterSetName, __correlationId, __processRecordId, null ); + if (token.IsCancellationRequested) + { + return ; + } + WriteDebug($"{id}: {(messageData().Message ?? global::System.String.Empty)}"); + } + } + + /// Performs execution of the command. + protected override void ProcessRecord() + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + if (ShouldProcess($"Call remote 'PartnerConfigurationsAuthorizePartner' operation")) + { + using( var asyncCommandRuntime = new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token); + } + } + } + catch (global::System.AggregateException aggregateException) + { + // unroll the inner exceptions to get the root cause + foreach( var innerException in aggregateException.Flatten().InnerExceptions ) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(innerException,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + } + catch (global::System.Exception exception) when ((exception as System.Management.Automation.PipelineStoppedException)== null || (exception as System.Management.Automation.PipelineStoppedException).InnerException != null) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(exception,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + finally + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletProcessRecordEnd).Wait(); + } + } + + /// Performs execution of the command, working asynchronously if required. + /// + /// A that will be complete when handling of the method is completed. + /// + protected async global::System.Threading.Tasks.Task ProcessRecordAsync() + { + using( NoSynchronizationContext ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await this.Client.PartnerConfigurationsAuthorizePartner(SubscriptionId, ResourceGroupName, _partnerInfoBody, onOk, onDefault, this, Pipeline); + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.UndeclaredResponseException urexception) + { + WriteError(new global::System.Management.Automation.ErrorRecord(urexception, urexception.StatusCode.ToString(), global::System.Management.Automation.ErrorCategory.InvalidOperation, new { SubscriptionId=SubscriptionId,ResourceGroupName=ResourceGroupName,body=_partnerInfoBody}) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(urexception.Message) { RecommendedAction = urexception.Action } + }); + } + finally + { + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Cancel(); + base.StopProcessing(); + } + + /// + /// a delegate that is called when the remote service returns default (any response code not handled elsewhere). + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onDefault(global::System.Net.Http.HttpResponseMessage responseMessage) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnDefault(responseMessage, ref _returnNow); + // if overrideOnDefault has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // Error Response : default + // Unrecognized Response. Create an error record based on what we have. + var ex = new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.RestException(responseMessage); + WriteError( new global::System.Management.Automation.ErrorRecord(ex, ex.Code, global::System.Management.Automation.ErrorCategory.InvalidOperation, new { SubscriptionId=SubscriptionId, ResourceGroupName=ResourceGroupName, body=_partnerInfoBody }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(ex.Message) { RecommendedAction = ex.Action } + }); + } + } + + /// a delegate that is called when the remote service returns 200 (OK). + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as 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.EventGrid.Models.Api20211015Preview.IPartnerConfiguration + WriteObject((await response)); + } + } + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/cmdlets/GrantAzEventGridPartnerConfigurationPartner_AuthorizeViaIdentity.cs b/swaggerci/eventgrid/generated/cmdlets/GrantAzEventGridPartnerConfigurationPartner_AuthorizeViaIdentity.cs new file mode 100644 index 000000000000..bb2604b8f87d --- /dev/null +++ b/swaggerci/eventgrid/generated/cmdlets/GrantAzEventGridPartnerConfigurationPartner_AuthorizeViaIdentity.cs @@ -0,0 +1,388 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Extensions; + using System; + + /// + /// Authorize a single partner either by partner registration immutable Id or by partner name. + /// + /// + /// [OpenAPI] AuthorizePartner=>POST:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.EventGrid/partnerConfigurations/default/authorizePartner" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsSecurity.Grant, @"AzEventGridPartnerConfigurationPartner_AuthorizeViaIdentity", SupportsShouldProcess = true)] + [global::System.Management.Automation.OutputType(typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerConfiguration))] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Description(@"Authorize a single partner either by partner registration immutable Id or by partner name.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Generated] + public partial class GrantAzEventGridPartnerConfigurationPartner_AuthorizeViaIdentity : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener + { + /// A unique id generatd for the this cmdlet when it is instantiated. + private string __correlationId = System.Guid.NewGuid().ToString(); + + /// A copy of the Invocation Info (necessary to allow asJob to clone this cmdlet) + private global::System.Management.Automation.InvocationInfo __invocationInfo; + + /// A unique id generatd for the this cmdlet when ProcessRecord() is called. + private string __processRecordId; + + /// + /// The for this operation. + /// + private global::System.Threading.CancellationTokenSource _cancellationTokenSource = new global::System.Threading.CancellationTokenSource(); + + /// Wait for .NET debugger to attach + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Wait for .NET debugger to attach")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.EventGridManagementClient Client => Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.ClientAPI; + + /// + /// The credentials, account, tenant, and subscription used for communication with Azure + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The credentials, account, tenant, and subscription used for communication with Azure.")] + [global::System.Management.Automation.ValidateNotNull] + [global::System.Management.Automation.Alias("AzureRMContext", "AzureCredential")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Azure)] + public global::System.Management.Automation.PSObject DefaultProfile { get; set; } + + /// SendAsync Pipeline Steps to be appended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be appended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[] HttpPipelineAppend { get; set; } + + /// SendAsync Pipeline Steps to be prepended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be prepended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[] HttpPipelinePrepend { get; set; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.IEventGridIdentity _inputObject; + + /// Identity Parameter + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Identity Parameter", ValueFromPipeline = true)] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Path)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.IEventGridIdentity InputObject { get => this._inputObject; set => this._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.EventGrid.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener.Token => _cancellationTokenSource.Token; + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartner _partnerInfo; + + /// Information about the partner. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Information about the partner.", ValueFromPipeline = true)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Information about the partner.", + SerializedName = @"partnerInfo", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartner) })] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartner PartnerInfo { get => this._partnerInfo; set => this._partnerInfo = 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.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Runtime.HttpPipeline Pipeline { get; set; } + + /// The URI for the proxy server to use + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "The URI for the proxy server to use")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Uri Proxy { get; set; } + + /// Credentials for a proxy server to use for the remote call + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Credentials for a proxy server to use for the remote call")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Management.Automation.PSCredential ProxyCredential { get; set; } + + /// Use the default credentials for the proxy + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Use the default credentials for the proxy")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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. + /// /// Determines if the rest of the onDefault method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnDefault(global::System.Net.Http.HttpResponseMessage responseMessage, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnOk will be called before the regular onOk has been processed, allowing customization of what happens + /// on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// 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() + { + var telemetryId = Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.GetTelemetryId.Invoke(); + if (telemetryId != "" && telemetryId != "internal") + { + __correlationId = telemetryId; + } + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + + } + + /// + /// Intializes a new instance of the cmdlet + /// class. + /// + public GrantAzEventGridPartnerConfigurationPartner_AuthorizeViaIdentity() + { + + } + + /// Handles/Dispatches events during the call to the REST service. + /// The message id + /// The message cancellation token. When this call is cancelled, this should be true + /// Detailed message data for the message event. + /// + /// A that will be complete when handling of the message is completed. + /// + async global::System.Threading.Tasks.Task Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener.Signal(string id, global::System.Threading.CancellationToken token, global::System.Func messageData) + { + using( NoSynchronizationContext ) + { + if (token.IsCancellationRequested) + { + return ; + } + + switch ( id ) + { + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Information: + { + var data = messageData(); + WriteInformation(data.Message, new string[]{}); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Error: + { + WriteError(new global::System.Management.Automation.ErrorRecord( new global::System.Exception(messageData().Message), string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null ) ); + return ; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.EventData ), InvocationInformation, this.ParameterSetName, __correlationId, __processRecordId, null ); + if (token.IsCancellationRequested) + { + return ; + } + WriteDebug($"{id}: {(messageData().Message ?? global::System.String.Empty)}"); + } + } + + /// Performs execution of the command. + protected override void ProcessRecord() + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + if (ShouldProcess($"Call remote 'PartnerConfigurationsAuthorizePartner' operation")) + { + using( var asyncCommandRuntime = new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token); + } + } + } + catch (global::System.AggregateException aggregateException) + { + // unroll the inner exceptions to get the root cause + foreach( var innerException in aggregateException.Flatten().InnerExceptions ) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(innerException,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + } + catch (global::System.Exception exception) when ((exception as System.Management.Automation.PipelineStoppedException)== null || (exception as System.Management.Automation.PipelineStoppedException).InnerException != null) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(exception,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + finally + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletProcessRecordEnd).Wait(); + } + } + + /// Performs execution of the command, working asynchronously if required. + /// + /// A that will be complete when handling of the method is completed. + /// + protected async global::System.Threading.Tasks.Task ProcessRecordAsync() + { + using( NoSynchronizationContext ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + if (InputObject?.Id != null) + { + await this.Client.PartnerConfigurationsAuthorizePartnerViaIdentity(InputObject.Id, PartnerInfo, 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) ); + } + await this.Client.PartnerConfigurationsAuthorizePartner(InputObject.SubscriptionId ?? null, InputObject.ResourceGroupName ?? null, PartnerInfo, onOk, onDefault, this, Pipeline); + } + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.UndeclaredResponseException urexception) + { + WriteError(new global::System.Management.Automation.ErrorRecord(urexception, urexception.StatusCode.ToString(), global::System.Management.Automation.ErrorCategory.InvalidOperation, new { body=PartnerInfo}) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(urexception.Message) { RecommendedAction = urexception.Action } + }); + } + finally + { + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Cancel(); + base.StopProcessing(); + } + + /// + /// a delegate that is called when the remote service returns default (any response code not handled elsewhere). + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onDefault(global::System.Net.Http.HttpResponseMessage responseMessage) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnDefault(responseMessage, ref _returnNow); + // if overrideOnDefault has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // Error Response : default + // Unrecognized Response. Create an error record based on what we have. + var ex = new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.RestException(responseMessage); + WriteError( new global::System.Management.Automation.ErrorRecord(ex, ex.Code, global::System.Management.Automation.ErrorCategory.InvalidOperation, new { body=PartnerInfo }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(ex.Message) { RecommendedAction = ex.Action } + }); + } + } + + /// a delegate that is called when the remote service returns 200 (OK). + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as 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.EventGrid.Models.Api20211015Preview.IPartnerConfiguration + WriteObject((await response)); + } + } + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/cmdlets/GrantAzEventGridPartnerConfigurationPartner_AuthorizeViaIdentityExpanded.cs b/swaggerci/eventgrid/generated/cmdlets/GrantAzEventGridPartnerConfigurationPartner_AuthorizeViaIdentityExpanded.cs new file mode 100644 index 000000000000..dc0d81d0f63c --- /dev/null +++ b/swaggerci/eventgrid/generated/cmdlets/GrantAzEventGridPartnerConfigurationPartner_AuthorizeViaIdentityExpanded.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.EventGrid.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Extensions; + using System; + + /// + /// Authorize a single partner either by partner registration immutable Id or by partner name. + /// + /// + /// [OpenAPI] AuthorizePartner=>POST:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.EventGrid/partnerConfigurations/default/authorizePartner" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsSecurity.Grant, @"AzEventGridPartnerConfigurationPartner_AuthorizeViaIdentityExpanded", SupportsShouldProcess = true)] + [global::System.Management.Automation.OutputType(typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerConfiguration))] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Description(@"Authorize a single partner either by partner registration immutable Id or by partner name.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Generated] + public partial class GrantAzEventGridPartnerConfigurationPartner_AuthorizeViaIdentityExpanded : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener + { + /// A unique id generatd for the this cmdlet when it is instantiated. + private string __correlationId = System.Guid.NewGuid().ToString(); + + /// A copy of the Invocation Info (necessary to allow asJob to clone this cmdlet) + private global::System.Management.Automation.InvocationInfo __invocationInfo; + + /// A unique id generatd for the this cmdlet when ProcessRecord() is called. + private string __processRecordId; + + /// + /// The for this operation. + /// + private global::System.Threading.CancellationTokenSource _cancellationTokenSource = new global::System.Threading.CancellationTokenSource(); + + /// Information about the partner. + private Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartner _partnerInfoBody = new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.Partner(); + + /// + /// Expiration time of the partner authorization. If this timer expires, any request from this partner to create, update or + /// delete resources in subscriber'scontext will fail. If specified, the allowed values are between 1 to the value of defaultMaximumExpirationTimeInDays + /// specified in PartnerConfiguration.If not specified, the default value will be the value of defaultMaximumExpirationTimeInDays + /// specified in PartnerConfiguration or 7 if this value is not specified. + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Expiration time of the partner authorization. If this timer expires, any request from this partner to create, update or delete resources in subscriber'scontext will fail. If specified, the allowed values are between 1 to the value of defaultMaximumExpirationTimeInDays specified in PartnerConfiguration.If not specified, the default value will be the value of defaultMaximumExpirationTimeInDays specified in PartnerConfiguration or 7 if this value is not specified.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Expiration time of the partner authorization. If this timer expires, any request from this partner to create, update or delete resources in subscriber'scontext will fail. If specified, the allowed values are between 1 to the value of defaultMaximumExpirationTimeInDays specified in PartnerConfiguration.If not specified, the default value will be the value of defaultMaximumExpirationTimeInDays specified in PartnerConfiguration or 7 if this value is not specified.", + SerializedName = @"authorizationExpirationTimeInUtc", + PossibleTypes = new [] { typeof(global::System.DateTime) })] + public global::System.DateTime AuthorizationExpirationTimeInUtc { get => _partnerInfoBody.AuthorizationExpirationTimeInUtc ?? default(global::System.DateTime); set => _partnerInfoBody.AuthorizationExpirationTimeInUtc = 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.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.EventGridManagementClient Client => Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.ClientAPI; + + /// + /// The credentials, account, tenant, and subscription used for communication with Azure + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The credentials, account, tenant, and subscription used for communication with Azure.")] + [global::System.Management.Automation.ValidateNotNull] + [global::System.Management.Automation.Alias("AzureRMContext", "AzureCredential")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Azure)] + public global::System.Management.Automation.PSObject DefaultProfile { get; set; } + + /// SendAsync Pipeline Steps to be appended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be appended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[] HttpPipelineAppend { get; set; } + + /// SendAsync Pipeline Steps to be prepended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be prepended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[] HttpPipelinePrepend { get; set; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.IEventGridIdentity _inputObject; + + /// Identity Parameter + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Identity Parameter", ValueFromPipeline = true)] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Path)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.IEventGridIdentity InputObject { get => this._inputObject; set => this._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.EventGrid.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener.Token => _cancellationTokenSource.Token; + + /// The partner name. + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The partner name.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The partner name.", + SerializedName = @"partnerName", + PossibleTypes = new [] { typeof(string) })] + public string PartnerName { get => _partnerInfoBody.Name ?? null; set => _partnerInfoBody.Name = value; } + + /// The immutableId of the corresponding partner registration. + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The immutableId of the corresponding partner registration.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The immutableId of the corresponding partner registration.", + SerializedName = @"partnerRegistrationImmutableId", + PossibleTypes = new [] { typeof(string) })] + public string PartnerRegistrationImmutableId { get => _partnerInfoBody.RegistrationImmutableId ?? null; set => _partnerInfoBody.RegistrationImmutableId = 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.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Runtime.HttpPipeline Pipeline { get; set; } + + /// The URI for the proxy server to use + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "The URI for the proxy server to use")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Uri Proxy { get; set; } + + /// Credentials for a proxy server to use for the remote call + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Credentials for a proxy server to use for the remote call")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Management.Automation.PSCredential ProxyCredential { get; set; } + + /// Use the default credentials for the proxy + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Use the default credentials for the proxy")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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. + /// /// Determines if the rest of the onDefault method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnDefault(global::System.Net.Http.HttpResponseMessage responseMessage, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnOk will be called before the regular onOk has been processed, allowing customization of what happens + /// on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// 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() + { + var telemetryId = Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.GetTelemetryId.Invoke(); + if (telemetryId != "" && telemetryId != "internal") + { + __correlationId = telemetryId; + } + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + + } + + /// + /// Intializes a new instance of the cmdlet class. + /// + public GrantAzEventGridPartnerConfigurationPartner_AuthorizeViaIdentityExpanded() + { + + } + + /// Handles/Dispatches events during the call to the REST service. + /// The message id + /// The message cancellation token. When this call is cancelled, this should be true + /// Detailed message data for the message event. + /// + /// A that will be complete when handling of the message is completed. + /// + async global::System.Threading.Tasks.Task Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener.Signal(string id, global::System.Threading.CancellationToken token, global::System.Func messageData) + { + using( NoSynchronizationContext ) + { + if (token.IsCancellationRequested) + { + return ; + } + + switch ( id ) + { + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Information: + { + var data = messageData(); + WriteInformation(data.Message, new string[]{}); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Error: + { + WriteError(new global::System.Management.Automation.ErrorRecord( new global::System.Exception(messageData().Message), string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null ) ); + return ; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.EventData ), InvocationInformation, this.ParameterSetName, __correlationId, __processRecordId, null ); + if (token.IsCancellationRequested) + { + return ; + } + WriteDebug($"{id}: {(messageData().Message ?? global::System.String.Empty)}"); + } + } + + /// Performs execution of the command. + protected override void ProcessRecord() + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + if (ShouldProcess($"Call remote 'PartnerConfigurationsAuthorizePartner' operation")) + { + using( var asyncCommandRuntime = new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token); + } + } + } + catch (global::System.AggregateException aggregateException) + { + // unroll the inner exceptions to get the root cause + foreach( var innerException in aggregateException.Flatten().InnerExceptions ) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(innerException,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + } + catch (global::System.Exception exception) when ((exception as System.Management.Automation.PipelineStoppedException)== null || (exception as System.Management.Automation.PipelineStoppedException).InnerException != null) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(exception,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + finally + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletProcessRecordEnd).Wait(); + } + } + + /// Performs execution of the command, working asynchronously if required. + /// + /// A that will be complete when handling of the method is completed. + /// + protected async global::System.Threading.Tasks.Task ProcessRecordAsync() + { + using( NoSynchronizationContext ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + if (InputObject?.Id != null) + { + await this.Client.PartnerConfigurationsAuthorizePartnerViaIdentity(InputObject.Id, _partnerInfoBody, 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) ); + } + await this.Client.PartnerConfigurationsAuthorizePartner(InputObject.SubscriptionId ?? null, InputObject.ResourceGroupName ?? null, _partnerInfoBody, onOk, onDefault, this, Pipeline); + } + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.UndeclaredResponseException urexception) + { + WriteError(new global::System.Management.Automation.ErrorRecord(urexception, urexception.StatusCode.ToString(), global::System.Management.Automation.ErrorCategory.InvalidOperation, new { body=_partnerInfoBody}) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(urexception.Message) { RecommendedAction = urexception.Action } + }); + } + finally + { + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Cancel(); + base.StopProcessing(); + } + + /// + /// a delegate that is called when the remote service returns default (any response code not handled elsewhere). + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onDefault(global::System.Net.Http.HttpResponseMessage responseMessage) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnDefault(responseMessage, ref _returnNow); + // if overrideOnDefault has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // Error Response : default + // Unrecognized Response. Create an error record based on what we have. + var ex = new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.RestException(responseMessage); + WriteError( new global::System.Management.Automation.ErrorRecord(ex, ex.Code, global::System.Management.Automation.ErrorCategory.InvalidOperation, new { body=_partnerInfoBody }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(ex.Message) { RecommendedAction = ex.Action } + }); + } + } + + /// a delegate that is called when the remote service returns 200 (OK). + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as 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.EventGrid.Models.Api20211015Preview.IPartnerConfiguration + WriteObject((await response)); + } + } + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/cmdlets/InitializeAzEventGridPartnerDestination_Activate.cs b/swaggerci/eventgrid/generated/cmdlets/InitializeAzEventGridPartnerDestination_Activate.cs new file mode 100644 index 000000000000..262cd378adb6 --- /dev/null +++ b/swaggerci/eventgrid/generated/cmdlets/InitializeAzEventGridPartnerDestination_Activate.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.EventGrid.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Extensions; + using System; + + /// Activate a newly created partner destination. + /// + /// [OpenAPI] Activate=>POST:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.EventGrid/partnerDestinations/{partnerDestinationName}/activate" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsData.Initialize, @"AzEventGridPartnerDestination_Activate", SupportsShouldProcess = true)] + [global::System.Management.Automation.OutputType(typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerDestination))] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Description(@"Activate a newly created partner destination.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Generated] + public partial class InitializeAzEventGridPartnerDestination_Activate : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener + { + /// A unique id generatd for the this cmdlet when it is instantiated. + private string __correlationId = System.Guid.NewGuid().ToString(); + + /// A copy of the Invocation Info (necessary to allow asJob to clone this cmdlet) + private global::System.Management.Automation.InvocationInfo __invocationInfo; + + /// A unique id generatd for the this cmdlet when ProcessRecord() is called. + private string __processRecordId; + + /// + /// The for this operation. + /// + private global::System.Threading.CancellationTokenSource _cancellationTokenSource = new global::System.Threading.CancellationTokenSource(); + + /// Wait for .NET debugger to attach + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Wait for .NET debugger to attach")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.EventGridManagementClient Client => Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.ClientAPI; + + /// + /// The credentials, account, tenant, and subscription used for communication with Azure + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The credentials, account, tenant, and subscription used for communication with Azure.")] + [global::System.Management.Automation.ValidateNotNull] + [global::System.Management.Automation.Alias("AzureRMContext", "AzureCredential")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Azure)] + public global::System.Management.Automation.PSObject DefaultProfile { get; set; } + + /// SendAsync Pipeline Steps to be appended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be appended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[] HttpPipelineAppend { get; set; } + + /// SendAsync Pipeline Steps to be prepended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be prepended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[] HttpPipelinePrepend { get; set; } + + /// Accessor for our copy of the InvocationInfo. + public global::System.Management.Automation.InvocationInfo InvocationInformation { get => __invocationInfo = __invocationInfo ?? this.MyInvocation ; set { __invocationInfo = value; } } + + /// + /// cancellation delegate. Stops the cmdlet when called. + /// + global::System.Action Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener.Token => _cancellationTokenSource.Token; + + /// Backing field for property. + private string _name; + + /// Name of the partner destination. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Name of the partner destination.")] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Name of the partner destination.", + SerializedName = @"partnerDestinationName", + PossibleTypes = new [] { typeof(string) })] + [global::System.Management.Automation.Alias("PartnerDestinationName")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Runtime.HttpPipeline Pipeline { get; set; } + + /// The URI for the proxy server to use + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "The URI for the proxy server to use")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Uri Proxy { get; set; } + + /// Credentials for a proxy server to use for the remote call + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Credentials for a proxy server to use for the remote call")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Management.Automation.PSCredential ProxyCredential { get; set; } + + /// Use the default credentials for the proxy + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Use the default credentials for the proxy")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter ProxyUseDefaultCredentials { get; set; } + + /// Backing field for property. + private string _resourceGroupName; + + /// The name of the resource group within the user's subscription. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the resource group within the user's subscription.")] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the resource group within the user's subscription.", + SerializedName = @"resourceGroupName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Path)] + public string ResourceGroupName { get => this._resourceGroupName; set => this._resourceGroupName = value; } + + /// Backing field for property. + private string _subscriptionId; + + /// + /// Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription ID forms part of the + /// URI for every service call. + /// + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.")] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.", + SerializedName = @"subscriptionId", + PossibleTypes = new [] { typeof(string) })] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.DefaultInfo( + Name = @"", + Description =@"", + Script = @"(Get-AzContext).Subscription.Id")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Path)] + public string SubscriptionId { get => this._subscriptionId; set => this._subscriptionId = value; } + + /// + /// overrideOnDefault will be called before the regular onDefault has been processed, allowing customization of what + /// happens on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// /// Determines if the rest of the onDefault method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnDefault(global::System.Net.Http.HttpResponseMessage responseMessage, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnOk will be called before the regular onOk has been processed, allowing customization of what happens + /// on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// 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() + { + var telemetryId = Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.GetTelemetryId.Invoke(); + if (telemetryId != "" && telemetryId != "internal") + { + __correlationId = telemetryId; + } + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + + } + + /// + /// Intializes a new instance of the cmdlet class. + /// + public InitializeAzEventGridPartnerDestination_Activate() + { + + } + + /// Handles/Dispatches events during the call to the REST service. + /// The message id + /// The message cancellation token. When this call is cancelled, this should be true + /// Detailed message data for the message event. + /// + /// A that will be complete when handling of the message is completed. + /// + async global::System.Threading.Tasks.Task Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener.Signal(string id, global::System.Threading.CancellationToken token, global::System.Func messageData) + { + using( NoSynchronizationContext ) + { + if (token.IsCancellationRequested) + { + return ; + } + + switch ( id ) + { + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Information: + { + var data = messageData(); + WriteInformation(data.Message, new string[]{}); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Error: + { + WriteError(new global::System.Management.Automation.ErrorRecord( new global::System.Exception(messageData().Message), string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null ) ); + return ; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.EventData ), InvocationInformation, this.ParameterSetName, __correlationId, __processRecordId, null ); + if (token.IsCancellationRequested) + { + return ; + } + WriteDebug($"{id}: {(messageData().Message ?? global::System.String.Empty)}"); + } + } + + /// Performs execution of the command. + protected override void ProcessRecord() + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + if (ShouldProcess($"Call remote 'PartnerDestinationsActivate' operation")) + { + using( var asyncCommandRuntime = new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token); + } + } + } + catch (global::System.AggregateException aggregateException) + { + // unroll the inner exceptions to get the root cause + foreach( var innerException in aggregateException.Flatten().InnerExceptions ) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(innerException,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + } + catch (global::System.Exception exception) when ((exception as System.Management.Automation.PipelineStoppedException)== null || (exception as System.Management.Automation.PipelineStoppedException).InnerException != null) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(exception,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + finally + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletProcessRecordEnd).Wait(); + } + } + + /// Performs execution of the command, working asynchronously if required. + /// + /// A that will be complete when handling of the method is completed. + /// + protected async global::System.Threading.Tasks.Task ProcessRecordAsync() + { + using( NoSynchronizationContext ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await this.Client.PartnerDestinationsActivate(SubscriptionId, ResourceGroupName, Name, onOk, onDefault, this, Pipeline); + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.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.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Cancel(); + base.StopProcessing(); + } + + /// + /// a delegate that is called when the remote service returns default (any response code not handled elsewhere). + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onDefault(global::System.Net.Http.HttpResponseMessage responseMessage) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnDefault(responseMessage, ref _returnNow); + // if overrideOnDefault has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // Error Response : default + // Unrecognized Response. Create an error record based on what we have. + var ex = new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.RestException(responseMessage); + 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 } + }); + } + } + + /// a delegate that is 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.EventGrid.Models.Api20211015Preview.IPartnerDestination + WriteObject((await response)); + } + } + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/cmdlets/InitializeAzEventGridPartnerDestination_ActivateViaIdentity.cs b/swaggerci/eventgrid/generated/cmdlets/InitializeAzEventGridPartnerDestination_ActivateViaIdentity.cs new file mode 100644 index 000000000000..8b2698e7605e --- /dev/null +++ b/swaggerci/eventgrid/generated/cmdlets/InitializeAzEventGridPartnerDestination_ActivateViaIdentity.cs @@ -0,0 +1,376 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Extensions; + using System; + + /// Activate a newly created partner destination. + /// + /// [OpenAPI] Activate=>POST:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.EventGrid/partnerDestinations/{partnerDestinationName}/activate" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsData.Initialize, @"AzEventGridPartnerDestination_ActivateViaIdentity", SupportsShouldProcess = true)] + [global::System.Management.Automation.OutputType(typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerDestination))] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Description(@"Activate a newly created partner destination.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Generated] + public partial class InitializeAzEventGridPartnerDestination_ActivateViaIdentity : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener + { + /// A unique id generatd for the this cmdlet when it is instantiated. + private string __correlationId = System.Guid.NewGuid().ToString(); + + /// A copy of the Invocation Info (necessary to allow asJob to clone this cmdlet) + private global::System.Management.Automation.InvocationInfo __invocationInfo; + + /// A unique id generatd for the this cmdlet when ProcessRecord() is called. + private string __processRecordId; + + /// + /// The for this operation. + /// + private global::System.Threading.CancellationTokenSource _cancellationTokenSource = new global::System.Threading.CancellationTokenSource(); + + /// Wait for .NET debugger to attach + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Wait for .NET debugger to attach")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.EventGridManagementClient Client => Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.ClientAPI; + + /// + /// The credentials, account, tenant, and subscription used for communication with Azure + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The credentials, account, tenant, and subscription used for communication with Azure.")] + [global::System.Management.Automation.ValidateNotNull] + [global::System.Management.Automation.Alias("AzureRMContext", "AzureCredential")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Azure)] + public global::System.Management.Automation.PSObject DefaultProfile { get; set; } + + /// SendAsync Pipeline Steps to be appended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be appended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[] HttpPipelineAppend { get; set; } + + /// SendAsync Pipeline Steps to be prepended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be prepended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[] HttpPipelinePrepend { get; set; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.IEventGridIdentity _inputObject; + + /// Identity Parameter + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Identity Parameter", ValueFromPipeline = true)] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Path)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.IEventGridIdentity InputObject { get => this._inputObject; set => this._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.EventGrid.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Runtime.HttpPipeline Pipeline { get; set; } + + /// The URI for the proxy server to use + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "The URI for the proxy server to use")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Uri Proxy { get; set; } + + /// Credentials for a proxy server to use for the remote call + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Credentials for a proxy server to use for the remote call")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Management.Automation.PSCredential ProxyCredential { get; set; } + + /// Use the default credentials for the proxy + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Use the default credentials for the proxy")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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. + /// /// Determines if the rest of the onDefault method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnDefault(global::System.Net.Http.HttpResponseMessage responseMessage, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnOk will be called before the regular onOk has been processed, allowing customization of what happens + /// on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// 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() + { + var telemetryId = Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.GetTelemetryId.Invoke(); + if (telemetryId != "" && telemetryId != "internal") + { + __correlationId = telemetryId; + } + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + + } + + /// + /// Intializes a new instance of the cmdlet class. + /// + public InitializeAzEventGridPartnerDestination_ActivateViaIdentity() + { + + } + + /// Handles/Dispatches events during the call to the REST service. + /// The message id + /// The message cancellation token. When this call is cancelled, this should be true + /// Detailed message data for the message event. + /// + /// A that will be complete when handling of the message is completed. + /// + async global::System.Threading.Tasks.Task Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener.Signal(string id, global::System.Threading.CancellationToken token, global::System.Func messageData) + { + using( NoSynchronizationContext ) + { + if (token.IsCancellationRequested) + { + return ; + } + + switch ( id ) + { + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Information: + { + var data = messageData(); + WriteInformation(data.Message, new string[]{}); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Error: + { + WriteError(new global::System.Management.Automation.ErrorRecord( new global::System.Exception(messageData().Message), string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null ) ); + return ; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.EventData ), InvocationInformation, this.ParameterSetName, __correlationId, __processRecordId, null ); + if (token.IsCancellationRequested) + { + return ; + } + WriteDebug($"{id}: {(messageData().Message ?? global::System.String.Empty)}"); + } + } + + /// Performs execution of the command. + protected override void ProcessRecord() + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + if (ShouldProcess($"Call remote 'PartnerDestinationsActivate' operation")) + { + using( var asyncCommandRuntime = new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token); + } + } + } + catch (global::System.AggregateException aggregateException) + { + // unroll the inner exceptions to get the root cause + foreach( var innerException in aggregateException.Flatten().InnerExceptions ) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(innerException,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + } + catch (global::System.Exception exception) when ((exception as System.Management.Automation.PipelineStoppedException)== null || (exception as System.Management.Automation.PipelineStoppedException).InnerException != null) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(exception,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + finally + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletProcessRecordEnd).Wait(); + } + } + + /// Performs execution of the command, working asynchronously if required. + /// + /// A that will be complete when handling of the method is completed. + /// + protected async global::System.Threading.Tasks.Task ProcessRecordAsync() + { + using( NoSynchronizationContext ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + if (InputObject?.Id != null) + { + await this.Client.PartnerDestinationsActivateViaIdentity(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.PartnerDestinationName) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.PartnerDestinationName"),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, InputObject) ); + } + await this.Client.PartnerDestinationsActivate(InputObject.SubscriptionId ?? null, InputObject.ResourceGroupName ?? null, InputObject.PartnerDestinationName ?? null, onOk, onDefault, this, Pipeline); + } + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Cancel(); + base.StopProcessing(); + } + + /// + /// a delegate that is called when the remote service returns default (any response code not handled elsewhere). + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onDefault(global::System.Net.Http.HttpResponseMessage responseMessage) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnDefault(responseMessage, ref _returnNow); + // if overrideOnDefault has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // Error Response : default + // Unrecognized Response. Create an error record based on what we have. + var ex = new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.RestException(responseMessage); + WriteError( new global::System.Management.Automation.ErrorRecord(ex, ex.Code, global::System.Management.Automation.ErrorCategory.InvalidOperation, new { }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(ex.Message) { RecommendedAction = ex.Action } + }); + } + } + + /// a delegate that is called when the remote service returns 200 (OK). + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as 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.EventGrid.Models.Api20211015Preview.IPartnerDestination + WriteObject((await response)); + } + } + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/cmdlets/InitializeAzEventGridPartnerTopic_Activate.cs b/swaggerci/eventgrid/generated/cmdlets/InitializeAzEventGridPartnerTopic_Activate.cs new file mode 100644 index 000000000000..3bca856ec862 --- /dev/null +++ b/swaggerci/eventgrid/generated/cmdlets/InitializeAzEventGridPartnerTopic_Activate.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.EventGrid.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Extensions; + using System; + + /// Activate a newly created partner topic. + /// + /// [OpenAPI] Activate=>POST:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.EventGrid/partnerTopics/{partnerTopicName}/activate" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsData.Initialize, @"AzEventGridPartnerTopic_Activate", SupportsShouldProcess = true)] + [global::System.Management.Automation.OutputType(typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerTopic))] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Description(@"Activate a newly created partner topic.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Generated] + public partial class InitializeAzEventGridPartnerTopic_Activate : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener + { + /// A unique id generatd for the this cmdlet when it is instantiated. + private string __correlationId = System.Guid.NewGuid().ToString(); + + /// A copy of the Invocation Info (necessary to allow asJob to clone this cmdlet) + private global::System.Management.Automation.InvocationInfo __invocationInfo; + + /// A unique id generatd for the this cmdlet when ProcessRecord() is called. + private string __processRecordId; + + /// + /// The for this operation. + /// + private global::System.Threading.CancellationTokenSource _cancellationTokenSource = new global::System.Threading.CancellationTokenSource(); + + /// Wait for .NET debugger to attach + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Wait for .NET debugger to attach")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.EventGridManagementClient Client => Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.ClientAPI; + + /// + /// The credentials, account, tenant, and subscription used for communication with Azure + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The credentials, account, tenant, and subscription used for communication with Azure.")] + [global::System.Management.Automation.ValidateNotNull] + [global::System.Management.Automation.Alias("AzureRMContext", "AzureCredential")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Azure)] + public global::System.Management.Automation.PSObject DefaultProfile { get; set; } + + /// SendAsync Pipeline Steps to be appended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be appended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[] HttpPipelineAppend { get; set; } + + /// SendAsync Pipeline Steps to be prepended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be prepended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[] HttpPipelinePrepend { get; set; } + + /// Accessor for our copy of the InvocationInfo. + public global::System.Management.Automation.InvocationInfo InvocationInformation { get => __invocationInfo = __invocationInfo ?? this.MyInvocation ; set { __invocationInfo = value; } } + + /// + /// cancellation delegate. Stops the cmdlet when called. + /// + global::System.Action Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener.Token => _cancellationTokenSource.Token; + + /// Backing field for property. + private string _name; + + /// Name of the partner topic. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Name of the partner topic.")] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Name of the partner topic.", + SerializedName = @"partnerTopicName", + PossibleTypes = new [] { typeof(string) })] + [global::System.Management.Automation.Alias("PartnerTopicName")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Runtime.HttpPipeline Pipeline { get; set; } + + /// The URI for the proxy server to use + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "The URI for the proxy server to use")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Uri Proxy { get; set; } + + /// Credentials for a proxy server to use for the remote call + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Credentials for a proxy server to use for the remote call")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Management.Automation.PSCredential ProxyCredential { get; set; } + + /// Use the default credentials for the proxy + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Use the default credentials for the proxy")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter ProxyUseDefaultCredentials { get; set; } + + /// Backing field for property. + private string _resourceGroupName; + + /// The name of the resource group within the user's subscription. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the resource group within the user's subscription.")] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the resource group within the user's subscription.", + SerializedName = @"resourceGroupName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Path)] + public string ResourceGroupName { get => this._resourceGroupName; set => this._resourceGroupName = value; } + + /// Backing field for property. + private string _subscriptionId; + + /// + /// Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription ID forms part of the + /// URI for every service call. + /// + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.")] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.", + SerializedName = @"subscriptionId", + PossibleTypes = new [] { typeof(string) })] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.DefaultInfo( + Name = @"", + Description =@"", + Script = @"(Get-AzContext).Subscription.Id")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Path)] + public string SubscriptionId { get => this._subscriptionId; set => this._subscriptionId = value; } + + /// + /// overrideOnDefault will be called before the regular onDefault has been processed, allowing customization of what + /// happens on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// /// Determines if the rest of the onDefault method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnDefault(global::System.Net.Http.HttpResponseMessage responseMessage, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnOk will be called before the regular onOk has been processed, allowing customization of what happens + /// on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// 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() + { + var telemetryId = Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.GetTelemetryId.Invoke(); + if (telemetryId != "" && telemetryId != "internal") + { + __correlationId = telemetryId; + } + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + + } + + /// + /// Intializes a new instance of the cmdlet class. + /// + public InitializeAzEventGridPartnerTopic_Activate() + { + + } + + /// Handles/Dispatches events during the call to the REST service. + /// The message id + /// The message cancellation token. When this call is cancelled, this should be true + /// Detailed message data for the message event. + /// + /// A that will be complete when handling of the message is completed. + /// + async global::System.Threading.Tasks.Task Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener.Signal(string id, global::System.Threading.CancellationToken token, global::System.Func messageData) + { + using( NoSynchronizationContext ) + { + if (token.IsCancellationRequested) + { + return ; + } + + switch ( id ) + { + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Information: + { + var data = messageData(); + WriteInformation(data.Message, new string[]{}); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Error: + { + WriteError(new global::System.Management.Automation.ErrorRecord( new global::System.Exception(messageData().Message), string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null ) ); + return ; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.EventData ), InvocationInformation, this.ParameterSetName, __correlationId, __processRecordId, null ); + if (token.IsCancellationRequested) + { + return ; + } + WriteDebug($"{id}: {(messageData().Message ?? global::System.String.Empty)}"); + } + } + + /// Performs execution of the command. + protected override void ProcessRecord() + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + if (ShouldProcess($"Call remote 'PartnerTopicsActivate' operation")) + { + using( var asyncCommandRuntime = new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token); + } + } + } + catch (global::System.AggregateException aggregateException) + { + // unroll the inner exceptions to get the root cause + foreach( var innerException in aggregateException.Flatten().InnerExceptions ) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(innerException,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + } + catch (global::System.Exception exception) when ((exception as System.Management.Automation.PipelineStoppedException)== null || (exception as System.Management.Automation.PipelineStoppedException).InnerException != null) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(exception,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + finally + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletProcessRecordEnd).Wait(); + } + } + + /// Performs execution of the command, working asynchronously if required. + /// + /// A that will be complete when handling of the method is completed. + /// + protected async global::System.Threading.Tasks.Task ProcessRecordAsync() + { + using( NoSynchronizationContext ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await this.Client.PartnerTopicsActivate(SubscriptionId, ResourceGroupName, Name, onOk, onDefault, this, Pipeline); + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.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.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Cancel(); + base.StopProcessing(); + } + + /// + /// a delegate that is called when the remote service returns default (any response code not handled elsewhere). + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onDefault(global::System.Net.Http.HttpResponseMessage responseMessage) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnDefault(responseMessage, ref _returnNow); + // if overrideOnDefault has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // Error Response : default + // Unrecognized Response. Create an error record based on what we have. + var ex = new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.RestException(responseMessage); + 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 } + }); + } + } + + /// a delegate that is 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.EventGrid.Models.Api20211015Preview.IPartnerTopic + WriteObject((await response)); + } + } + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/cmdlets/InitializeAzEventGridPartnerTopic_ActivateViaIdentity.cs b/swaggerci/eventgrid/generated/cmdlets/InitializeAzEventGridPartnerTopic_ActivateViaIdentity.cs new file mode 100644 index 000000000000..fe551f670da7 --- /dev/null +++ b/swaggerci/eventgrid/generated/cmdlets/InitializeAzEventGridPartnerTopic_ActivateViaIdentity.cs @@ -0,0 +1,376 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Extensions; + using System; + + /// Activate a newly created partner topic. + /// + /// [OpenAPI] Activate=>POST:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.EventGrid/partnerTopics/{partnerTopicName}/activate" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsData.Initialize, @"AzEventGridPartnerTopic_ActivateViaIdentity", SupportsShouldProcess = true)] + [global::System.Management.Automation.OutputType(typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerTopic))] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Description(@"Activate a newly created partner topic.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Generated] + public partial class InitializeAzEventGridPartnerTopic_ActivateViaIdentity : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener + { + /// A unique id generatd for the this cmdlet when it is instantiated. + private string __correlationId = System.Guid.NewGuid().ToString(); + + /// A copy of the Invocation Info (necessary to allow asJob to clone this cmdlet) + private global::System.Management.Automation.InvocationInfo __invocationInfo; + + /// A unique id generatd for the this cmdlet when ProcessRecord() is called. + private string __processRecordId; + + /// + /// The for this operation. + /// + private global::System.Threading.CancellationTokenSource _cancellationTokenSource = new global::System.Threading.CancellationTokenSource(); + + /// Wait for .NET debugger to attach + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Wait for .NET debugger to attach")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.EventGridManagementClient Client => Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.ClientAPI; + + /// + /// The credentials, account, tenant, and subscription used for communication with Azure + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The credentials, account, tenant, and subscription used for communication with Azure.")] + [global::System.Management.Automation.ValidateNotNull] + [global::System.Management.Automation.Alias("AzureRMContext", "AzureCredential")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Azure)] + public global::System.Management.Automation.PSObject DefaultProfile { get; set; } + + /// SendAsync Pipeline Steps to be appended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be appended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[] HttpPipelineAppend { get; set; } + + /// SendAsync Pipeline Steps to be prepended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be prepended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[] HttpPipelinePrepend { get; set; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.IEventGridIdentity _inputObject; + + /// Identity Parameter + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Identity Parameter", ValueFromPipeline = true)] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Path)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.IEventGridIdentity InputObject { get => this._inputObject; set => this._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.EventGrid.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Runtime.HttpPipeline Pipeline { get; set; } + + /// The URI for the proxy server to use + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "The URI for the proxy server to use")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Uri Proxy { get; set; } + + /// Credentials for a proxy server to use for the remote call + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Credentials for a proxy server to use for the remote call")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Management.Automation.PSCredential ProxyCredential { get; set; } + + /// Use the default credentials for the proxy + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Use the default credentials for the proxy")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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. + /// /// Determines if the rest of the onDefault method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnDefault(global::System.Net.Http.HttpResponseMessage responseMessage, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnOk will be called before the regular onOk has been processed, allowing customization of what happens + /// on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// 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() + { + var telemetryId = Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.GetTelemetryId.Invoke(); + if (telemetryId != "" && telemetryId != "internal") + { + __correlationId = telemetryId; + } + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + + } + + /// + /// Intializes a new instance of the cmdlet class. + /// + public InitializeAzEventGridPartnerTopic_ActivateViaIdentity() + { + + } + + /// Handles/Dispatches events during the call to the REST service. + /// The message id + /// The message cancellation token. When this call is cancelled, this should be true + /// Detailed message data for the message event. + /// + /// A that will be complete when handling of the message is completed. + /// + async global::System.Threading.Tasks.Task Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener.Signal(string id, global::System.Threading.CancellationToken token, global::System.Func messageData) + { + using( NoSynchronizationContext ) + { + if (token.IsCancellationRequested) + { + return ; + } + + switch ( id ) + { + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Information: + { + var data = messageData(); + WriteInformation(data.Message, new string[]{}); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Error: + { + WriteError(new global::System.Management.Automation.ErrorRecord( new global::System.Exception(messageData().Message), string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null ) ); + return ; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.EventData ), InvocationInformation, this.ParameterSetName, __correlationId, __processRecordId, null ); + if (token.IsCancellationRequested) + { + return ; + } + WriteDebug($"{id}: {(messageData().Message ?? global::System.String.Empty)}"); + } + } + + /// Performs execution of the command. + protected override void ProcessRecord() + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + if (ShouldProcess($"Call remote 'PartnerTopicsActivate' operation")) + { + using( var asyncCommandRuntime = new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token); + } + } + } + catch (global::System.AggregateException aggregateException) + { + // unroll the inner exceptions to get the root cause + foreach( var innerException in aggregateException.Flatten().InnerExceptions ) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(innerException,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + } + catch (global::System.Exception exception) when ((exception as System.Management.Automation.PipelineStoppedException)== null || (exception as System.Management.Automation.PipelineStoppedException).InnerException != null) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(exception,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + finally + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletProcessRecordEnd).Wait(); + } + } + + /// Performs execution of the command, working asynchronously if required. + /// + /// A that will be complete when handling of the method is completed. + /// + protected async global::System.Threading.Tasks.Task ProcessRecordAsync() + { + using( NoSynchronizationContext ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + if (InputObject?.Id != null) + { + await this.Client.PartnerTopicsActivateViaIdentity(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.PartnerTopicName) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.PartnerTopicName"),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, InputObject) ); + } + await this.Client.PartnerTopicsActivate(InputObject.SubscriptionId ?? null, InputObject.ResourceGroupName ?? null, InputObject.PartnerTopicName ?? null, onOk, onDefault, this, Pipeline); + } + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Cancel(); + base.StopProcessing(); + } + + /// + /// a delegate that is called when the remote service returns default (any response code not handled elsewhere). + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onDefault(global::System.Net.Http.HttpResponseMessage responseMessage) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnDefault(responseMessage, ref _returnNow); + // if overrideOnDefault has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // Error Response : default + // Unrecognized Response. Create an error record based on what we have. + var ex = new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.RestException(responseMessage); + WriteError( new global::System.Management.Automation.ErrorRecord(ex, ex.Code, global::System.Management.Automation.ErrorCategory.InvalidOperation, new { }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(ex.Message) { RecommendedAction = ex.Action } + }); + } + } + + /// a delegate that is called when the remote service returns 200 (OK). + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as 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.EventGrid.Models.Api20211015Preview.IPartnerTopic + WriteObject((await response)); + } + } + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/cmdlets/InvokeAzEventGridDeactivatePartnerTopic_Deactivate.cs b/swaggerci/eventgrid/generated/cmdlets/InvokeAzEventGridDeactivatePartnerTopic_Deactivate.cs new file mode 100644 index 000000000000..b1cfa3ccda1a --- /dev/null +++ b/swaggerci/eventgrid/generated/cmdlets/InvokeAzEventGridDeactivatePartnerTopic_Deactivate.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.EventGrid.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Extensions; + using System; + + /// Deactivate specific partner topic. + /// + /// [OpenAPI] Deactivate=>POST:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.EventGrid/partnerTopics/{partnerTopicName}/deactivate" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsLifecycle.Invoke, @"AzEventGridDeactivatePartnerTopic_Deactivate", SupportsShouldProcess = true)] + [global::System.Management.Automation.OutputType(typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerTopic))] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Description(@"Deactivate specific partner topic.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Generated] + public partial class InvokeAzEventGridDeactivatePartnerTopic_Deactivate : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener + { + /// A unique id generatd for the this cmdlet when it is instantiated. + private string __correlationId = System.Guid.NewGuid().ToString(); + + /// A copy of the Invocation Info (necessary to allow asJob to clone this cmdlet) + private global::System.Management.Automation.InvocationInfo __invocationInfo; + + /// A unique id generatd for the this cmdlet when ProcessRecord() is called. + private string __processRecordId; + + /// + /// The for this operation. + /// + private global::System.Threading.CancellationTokenSource _cancellationTokenSource = new global::System.Threading.CancellationTokenSource(); + + /// Wait for .NET debugger to attach + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Wait for .NET debugger to attach")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.EventGridManagementClient Client => Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.ClientAPI; + + /// + /// The credentials, account, tenant, and subscription used for communication with Azure + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The credentials, account, tenant, and subscription used for communication with Azure.")] + [global::System.Management.Automation.ValidateNotNull] + [global::System.Management.Automation.Alias("AzureRMContext", "AzureCredential")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Azure)] + public global::System.Management.Automation.PSObject DefaultProfile { get; set; } + + /// SendAsync Pipeline Steps to be appended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be appended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[] HttpPipelineAppend { get; set; } + + /// SendAsync Pipeline Steps to be prepended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be prepended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[] HttpPipelinePrepend { get; set; } + + /// Accessor for our copy of the InvocationInfo. + public global::System.Management.Automation.InvocationInfo InvocationInformation { get => __invocationInfo = __invocationInfo ?? this.MyInvocation ; set { __invocationInfo = value; } } + + /// + /// cancellation delegate. Stops the cmdlet when called. + /// + global::System.Action Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener.Token => _cancellationTokenSource.Token; + + /// Backing field for property. + private string _partnerTopicName; + + /// Name of the partner topic. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Name of the partner topic.")] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Name of the partner topic.", + SerializedName = @"partnerTopicName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Path)] + public string PartnerTopicName { get => this._partnerTopicName; set => this._partnerTopicName = 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.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Runtime.HttpPipeline Pipeline { get; set; } + + /// The URI for the proxy server to use + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "The URI for the proxy server to use")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Uri Proxy { get; set; } + + /// Credentials for a proxy server to use for the remote call + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Credentials for a proxy server to use for the remote call")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Management.Automation.PSCredential ProxyCredential { get; set; } + + /// Use the default credentials for the proxy + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Use the default credentials for the proxy")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter ProxyUseDefaultCredentials { get; set; } + + /// Backing field for property. + private string _resourceGroupName; + + /// The name of the resource group within the user's subscription. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the resource group within the user's subscription.")] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the resource group within the user's subscription.", + SerializedName = @"resourceGroupName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Path)] + public string ResourceGroupName { get => this._resourceGroupName; set => this._resourceGroupName = value; } + + /// Backing field for property. + private string _subscriptionId; + + /// + /// Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription ID forms part of the + /// URI for every service call. + /// + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.")] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.", + SerializedName = @"subscriptionId", + PossibleTypes = new [] { typeof(string) })] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.DefaultInfo( + Name = @"", + Description =@"", + Script = @"(Get-AzContext).Subscription.Id")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Path)] + public string SubscriptionId { get => this._subscriptionId; set => this._subscriptionId = value; } + + /// + /// overrideOnDefault will be called before the regular onDefault has been processed, allowing customization of what + /// happens on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// /// Determines if the rest of the onDefault method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnDefault(global::System.Net.Http.HttpResponseMessage responseMessage, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnOk will be called before the regular onOk has been processed, allowing customization of what happens + /// on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// 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() + { + var telemetryId = Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.GetTelemetryId.Invoke(); + if (telemetryId != "" && telemetryId != "internal") + { + __correlationId = telemetryId; + } + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + + } + + /// + /// Intializes a new instance of the cmdlet class. + /// + public InvokeAzEventGridDeactivatePartnerTopic_Deactivate() + { + + } + + /// Handles/Dispatches events during the call to the REST service. + /// The message id + /// The message cancellation token. When this call is cancelled, this should be true + /// Detailed message data for the message event. + /// + /// A that will be complete when handling of the message is completed. + /// + async global::System.Threading.Tasks.Task Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener.Signal(string id, global::System.Threading.CancellationToken token, global::System.Func messageData) + { + using( NoSynchronizationContext ) + { + if (token.IsCancellationRequested) + { + return ; + } + + switch ( id ) + { + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Information: + { + var data = messageData(); + WriteInformation(data.Message, new string[]{}); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Error: + { + WriteError(new global::System.Management.Automation.ErrorRecord( new global::System.Exception(messageData().Message), string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null ) ); + return ; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.EventData ), InvocationInformation, this.ParameterSetName, __correlationId, __processRecordId, null ); + if (token.IsCancellationRequested) + { + return ; + } + WriteDebug($"{id}: {(messageData().Message ?? global::System.String.Empty)}"); + } + } + + /// Performs execution of the command. + protected override void ProcessRecord() + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + if (ShouldProcess($"Call remote 'PartnerTopicsDeactivate' operation")) + { + using( var asyncCommandRuntime = new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token); + } + } + } + catch (global::System.AggregateException aggregateException) + { + // unroll the inner exceptions to get the root cause + foreach( var innerException in aggregateException.Flatten().InnerExceptions ) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(innerException,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + } + catch (global::System.Exception exception) when ((exception as System.Management.Automation.PipelineStoppedException)== null || (exception as System.Management.Automation.PipelineStoppedException).InnerException != null) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(exception,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + finally + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletProcessRecordEnd).Wait(); + } + } + + /// Performs execution of the command, working asynchronously if required. + /// + /// A that will be complete when handling of the method is completed. + /// + protected async global::System.Threading.Tasks.Task ProcessRecordAsync() + { + using( NoSynchronizationContext ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await this.Client.PartnerTopicsDeactivate(SubscriptionId, ResourceGroupName, PartnerTopicName, onOk, onDefault, this, Pipeline); + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.UndeclaredResponseException urexception) + { + WriteError(new global::System.Management.Automation.ErrorRecord(urexception, urexception.StatusCode.ToString(), global::System.Management.Automation.ErrorCategory.InvalidOperation, new { SubscriptionId=SubscriptionId,ResourceGroupName=ResourceGroupName,PartnerTopicName=PartnerTopicName}) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(urexception.Message) { RecommendedAction = urexception.Action } + }); + } + finally + { + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Cancel(); + base.StopProcessing(); + } + + /// + /// a delegate that is called when the remote service returns default (any response code not handled elsewhere). + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onDefault(global::System.Net.Http.HttpResponseMessage responseMessage) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnDefault(responseMessage, ref _returnNow); + // if overrideOnDefault has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // Error Response : default + // Unrecognized Response. Create an error record based on what we have. + var ex = new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.RestException(responseMessage); + WriteError( new global::System.Management.Automation.ErrorRecord(ex, ex.Code, global::System.Management.Automation.ErrorCategory.InvalidOperation, new { SubscriptionId=SubscriptionId, ResourceGroupName=ResourceGroupName, PartnerTopicName=PartnerTopicName }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(ex.Message) { RecommendedAction = ex.Action } + }); + } + } + + /// a delegate that is called when the remote service returns 200 (OK). + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as 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.EventGrid.Models.Api20211015Preview.IPartnerTopic + WriteObject((await response)); + } + } + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/cmdlets/InvokeAzEventGridDeactivatePartnerTopic_DeactivateViaIdentity.cs b/swaggerci/eventgrid/generated/cmdlets/InvokeAzEventGridDeactivatePartnerTopic_DeactivateViaIdentity.cs new file mode 100644 index 000000000000..c837118b0d3c --- /dev/null +++ b/swaggerci/eventgrid/generated/cmdlets/InvokeAzEventGridDeactivatePartnerTopic_DeactivateViaIdentity.cs @@ -0,0 +1,376 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Extensions; + using System; + + /// Deactivate specific partner topic. + /// + /// [OpenAPI] Deactivate=>POST:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.EventGrid/partnerTopics/{partnerTopicName}/deactivate" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsLifecycle.Invoke, @"AzEventGridDeactivatePartnerTopic_DeactivateViaIdentity", SupportsShouldProcess = true)] + [global::System.Management.Automation.OutputType(typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerTopic))] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Description(@"Deactivate specific partner topic.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Generated] + public partial class InvokeAzEventGridDeactivatePartnerTopic_DeactivateViaIdentity : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener + { + /// A unique id generatd for the this cmdlet when it is instantiated. + private string __correlationId = System.Guid.NewGuid().ToString(); + + /// A copy of the Invocation Info (necessary to allow asJob to clone this cmdlet) + private global::System.Management.Automation.InvocationInfo __invocationInfo; + + /// A unique id generatd for the this cmdlet when ProcessRecord() is called. + private string __processRecordId; + + /// + /// The for this operation. + /// + private global::System.Threading.CancellationTokenSource _cancellationTokenSource = new global::System.Threading.CancellationTokenSource(); + + /// Wait for .NET debugger to attach + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Wait for .NET debugger to attach")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.EventGridManagementClient Client => Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.ClientAPI; + + /// + /// The credentials, account, tenant, and subscription used for communication with Azure + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The credentials, account, tenant, and subscription used for communication with Azure.")] + [global::System.Management.Automation.ValidateNotNull] + [global::System.Management.Automation.Alias("AzureRMContext", "AzureCredential")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Azure)] + public global::System.Management.Automation.PSObject DefaultProfile { get; set; } + + /// SendAsync Pipeline Steps to be appended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be appended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[] HttpPipelineAppend { get; set; } + + /// SendAsync Pipeline Steps to be prepended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be prepended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[] HttpPipelinePrepend { get; set; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.IEventGridIdentity _inputObject; + + /// Identity Parameter + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Identity Parameter", ValueFromPipeline = true)] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Path)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.IEventGridIdentity InputObject { get => this._inputObject; set => this._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.EventGrid.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Runtime.HttpPipeline Pipeline { get; set; } + + /// The URI for the proxy server to use + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "The URI for the proxy server to use")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Uri Proxy { get; set; } + + /// Credentials for a proxy server to use for the remote call + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Credentials for a proxy server to use for the remote call")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Management.Automation.PSCredential ProxyCredential { get; set; } + + /// Use the default credentials for the proxy + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Use the default credentials for the proxy")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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. + /// /// Determines if the rest of the onDefault method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnDefault(global::System.Net.Http.HttpResponseMessage responseMessage, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnOk will be called before the regular onOk has been processed, allowing customization of what happens + /// on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// 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() + { + var telemetryId = Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.GetTelemetryId.Invoke(); + if (telemetryId != "" && telemetryId != "internal") + { + __correlationId = telemetryId; + } + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + + } + + /// + /// Intializes a new instance of the cmdlet class. + /// + public InvokeAzEventGridDeactivatePartnerTopic_DeactivateViaIdentity() + { + + } + + /// Handles/Dispatches events during the call to the REST service. + /// The message id + /// The message cancellation token. When this call is cancelled, this should be true + /// Detailed message data for the message event. + /// + /// A that will be complete when handling of the message is completed. + /// + async global::System.Threading.Tasks.Task Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener.Signal(string id, global::System.Threading.CancellationToken token, global::System.Func messageData) + { + using( NoSynchronizationContext ) + { + if (token.IsCancellationRequested) + { + return ; + } + + switch ( id ) + { + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Information: + { + var data = messageData(); + WriteInformation(data.Message, new string[]{}); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Error: + { + WriteError(new global::System.Management.Automation.ErrorRecord( new global::System.Exception(messageData().Message), string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null ) ); + return ; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.EventData ), InvocationInformation, this.ParameterSetName, __correlationId, __processRecordId, null ); + if (token.IsCancellationRequested) + { + return ; + } + WriteDebug($"{id}: {(messageData().Message ?? global::System.String.Empty)}"); + } + } + + /// Performs execution of the command. + protected override void ProcessRecord() + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + if (ShouldProcess($"Call remote 'PartnerTopicsDeactivate' operation")) + { + using( var asyncCommandRuntime = new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token); + } + } + } + catch (global::System.AggregateException aggregateException) + { + // unroll the inner exceptions to get the root cause + foreach( var innerException in aggregateException.Flatten().InnerExceptions ) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(innerException,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + } + catch (global::System.Exception exception) when ((exception as System.Management.Automation.PipelineStoppedException)== null || (exception as System.Management.Automation.PipelineStoppedException).InnerException != null) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(exception,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + finally + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletProcessRecordEnd).Wait(); + } + } + + /// Performs execution of the command, working asynchronously if required. + /// + /// A that will be complete when handling of the method is completed. + /// + protected async global::System.Threading.Tasks.Task ProcessRecordAsync() + { + using( NoSynchronizationContext ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + if (InputObject?.Id != null) + { + await this.Client.PartnerTopicsDeactivateViaIdentity(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.PartnerTopicName) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.PartnerTopicName"),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, InputObject) ); + } + await this.Client.PartnerTopicsDeactivate(InputObject.SubscriptionId ?? null, InputObject.ResourceGroupName ?? null, InputObject.PartnerTopicName ?? null, onOk, onDefault, this, Pipeline); + } + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Cancel(); + base.StopProcessing(); + } + + /// + /// a delegate that is called when the remote service returns default (any response code not handled elsewhere). + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onDefault(global::System.Net.Http.HttpResponseMessage responseMessage) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnDefault(responseMessage, ref _returnNow); + // if overrideOnDefault has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // Error Response : default + // Unrecognized Response. Create an error record based on what we have. + var ex = new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.RestException(responseMessage); + WriteError( new global::System.Management.Automation.ErrorRecord(ex, ex.Code, global::System.Management.Automation.ErrorCategory.InvalidOperation, new { }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(ex.Message) { RecommendedAction = ex.Action } + }); + } + } + + /// a delegate that is called when the remote service returns 200 (OK). + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as 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.EventGrid.Models.Api20211015Preview.IPartnerTopic + WriteObject((await response)); + } + } + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/cmdlets/InvokeAzEventGridPartnerConfigurationUnauthorize_Partner.cs b/swaggerci/eventgrid/generated/cmdlets/InvokeAzEventGridPartnerConfigurationUnauthorize_Partner.cs new file mode 100644 index 000000000000..9d37d6361846 --- /dev/null +++ b/swaggerci/eventgrid/generated/cmdlets/InvokeAzEventGridPartnerConfigurationUnauthorize_Partner.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.EventGrid.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Extensions; + using System; + + /// + /// Unauthorize a single partner either by partner registration immutable Id or by partner name. + /// + /// + /// [OpenAPI] UnauthorizePartner=>POST:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.EventGrid/partnerConfigurations/default/unauthorizePartner" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsLifecycle.Invoke, @"AzEventGridPartnerConfigurationUnauthorize_Partner", SupportsShouldProcess = true)] + [global::System.Management.Automation.OutputType(typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerConfiguration))] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Description(@"Unauthorize a single partner either by partner registration immutable Id or by partner name.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Generated] + public partial class InvokeAzEventGridPartnerConfigurationUnauthorize_Partner : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener + { + /// A unique id generatd for the this cmdlet when it is instantiated. + private string __correlationId = System.Guid.NewGuid().ToString(); + + /// A copy of the Invocation Info (necessary to allow asJob to clone this cmdlet) + private global::System.Management.Automation.InvocationInfo __invocationInfo; + + /// A unique id generatd for the this cmdlet when ProcessRecord() is called. + private string __processRecordId; + + /// + /// The for this operation. + /// + private global::System.Threading.CancellationTokenSource _cancellationTokenSource = new global::System.Threading.CancellationTokenSource(); + + /// Wait for .NET debugger to attach + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Wait for .NET debugger to attach")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.EventGridManagementClient Client => Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.ClientAPI; + + /// + /// The credentials, account, tenant, and subscription used for communication with Azure + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The credentials, account, tenant, and subscription used for communication with Azure.")] + [global::System.Management.Automation.ValidateNotNull] + [global::System.Management.Automation.Alias("AzureRMContext", "AzureCredential")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Azure)] + public global::System.Management.Automation.PSObject DefaultProfile { get; set; } + + /// SendAsync Pipeline Steps to be appended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be appended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[] HttpPipelineAppend { get; set; } + + /// SendAsync Pipeline Steps to be prepended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be prepended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[] HttpPipelinePrepend { get; set; } + + /// Accessor for our copy of the InvocationInfo. + public global::System.Management.Automation.InvocationInfo InvocationInformation { get => __invocationInfo = __invocationInfo ?? this.MyInvocation ; set { __invocationInfo = value; } } + + /// + /// cancellation delegate. Stops the cmdlet when called. + /// + global::System.Action Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener.Token => _cancellationTokenSource.Token; + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartner _partnerInfo; + + /// Information about the partner. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Information about the partner.", ValueFromPipeline = true)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Information about the partner.", + SerializedName = @"partnerInfo", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartner) })] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartner PartnerInfo { get => this._partnerInfo; set => this._partnerInfo = 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.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Runtime.HttpPipeline Pipeline { get; set; } + + /// The URI for the proxy server to use + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "The URI for the proxy server to use")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Uri Proxy { get; set; } + + /// Credentials for a proxy server to use for the remote call + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Credentials for a proxy server to use for the remote call")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Management.Automation.PSCredential ProxyCredential { get; set; } + + /// Use the default credentials for the proxy + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Use the default credentials for the proxy")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter ProxyUseDefaultCredentials { get; set; } + + /// Backing field for property. + private string _resourceGroupName; + + /// The name of the resource group within the user's subscription. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the resource group within the user's subscription.")] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the resource group within the user's subscription.", + SerializedName = @"resourceGroupName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Path)] + public string ResourceGroupName { get => this._resourceGroupName; set => this._resourceGroupName = value; } + + /// Backing field for property. + private string _subscriptionId; + + /// + /// Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription ID forms part of the + /// URI for every service call. + /// + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.")] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.", + SerializedName = @"subscriptionId", + PossibleTypes = new [] { typeof(string) })] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.DefaultInfo( + Name = @"", + Description =@"", + Script = @"(Get-AzContext).Subscription.Id")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Path)] + public string SubscriptionId { get => this._subscriptionId; set => this._subscriptionId = value; } + + /// + /// overrideOnDefault will be called before the regular onDefault has been processed, allowing customization of what + /// happens on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// /// Determines if the rest of the onDefault method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnDefault(global::System.Net.Http.HttpResponseMessage responseMessage, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnOk will be called before the regular onOk has been processed, allowing customization of what happens + /// on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// 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() + { + var telemetryId = Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.GetTelemetryId.Invoke(); + if (telemetryId != "" && telemetryId != "internal") + { + __correlationId = telemetryId; + } + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + + } + + /// + /// Intializes a new instance of the cmdlet class. + /// + public InvokeAzEventGridPartnerConfigurationUnauthorize_Partner() + { + + } + + /// Handles/Dispatches events during the call to the REST service. + /// The message id + /// The message cancellation token. When this call is cancelled, this should be true + /// Detailed message data for the message event. + /// + /// A that will be complete when handling of the message is completed. + /// + async global::System.Threading.Tasks.Task Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener.Signal(string id, global::System.Threading.CancellationToken token, global::System.Func messageData) + { + using( NoSynchronizationContext ) + { + if (token.IsCancellationRequested) + { + return ; + } + + switch ( id ) + { + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Information: + { + var data = messageData(); + WriteInformation(data.Message, new string[]{}); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Error: + { + WriteError(new global::System.Management.Automation.ErrorRecord( new global::System.Exception(messageData().Message), string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null ) ); + return ; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.EventData ), InvocationInformation, this.ParameterSetName, __correlationId, __processRecordId, null ); + if (token.IsCancellationRequested) + { + return ; + } + WriteDebug($"{id}: {(messageData().Message ?? global::System.String.Empty)}"); + } + } + + /// Performs execution of the command. + protected override void ProcessRecord() + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + if (ShouldProcess($"Call remote 'PartnerConfigurationsUnauthorizePartner' operation")) + { + using( var asyncCommandRuntime = new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token); + } + } + } + catch (global::System.AggregateException aggregateException) + { + // unroll the inner exceptions to get the root cause + foreach( var innerException in aggregateException.Flatten().InnerExceptions ) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(innerException,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + } + catch (global::System.Exception exception) when ((exception as System.Management.Automation.PipelineStoppedException)== null || (exception as System.Management.Automation.PipelineStoppedException).InnerException != null) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(exception,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + finally + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletProcessRecordEnd).Wait(); + } + } + + /// Performs execution of the command, working asynchronously if required. + /// + /// A that will be complete when handling of the method is completed. + /// + protected async global::System.Threading.Tasks.Task ProcessRecordAsync() + { + using( NoSynchronizationContext ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await this.Client.PartnerConfigurationsUnauthorizePartner(SubscriptionId, ResourceGroupName, PartnerInfo, onOk, onDefault, this, Pipeline); + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.UndeclaredResponseException urexception) + { + WriteError(new global::System.Management.Automation.ErrorRecord(urexception, urexception.StatusCode.ToString(), global::System.Management.Automation.ErrorCategory.InvalidOperation, new { SubscriptionId=SubscriptionId,ResourceGroupName=ResourceGroupName,body=PartnerInfo}) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(urexception.Message) { RecommendedAction = urexception.Action } + }); + } + finally + { + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Cancel(); + base.StopProcessing(); + } + + /// + /// a delegate that is called when the remote service returns default (any response code not handled elsewhere). + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onDefault(global::System.Net.Http.HttpResponseMessage responseMessage) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnDefault(responseMessage, ref _returnNow); + // if overrideOnDefault has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // Error Response : default + // Unrecognized Response. Create an error record based on what we have. + var ex = new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.RestException(responseMessage); + WriteError( new global::System.Management.Automation.ErrorRecord(ex, ex.Code, global::System.Management.Automation.ErrorCategory.InvalidOperation, new { SubscriptionId=SubscriptionId, ResourceGroupName=ResourceGroupName, body=PartnerInfo }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(ex.Message) { RecommendedAction = ex.Action } + }); + } + } + + /// a delegate that is called when the remote service returns 200 (OK). + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as 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.EventGrid.Models.Api20211015Preview.IPartnerConfiguration + WriteObject((await response)); + } + } + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/cmdlets/InvokeAzEventGridPartnerConfigurationUnauthorize_PartnerExpanded.cs b/swaggerci/eventgrid/generated/cmdlets/InvokeAzEventGridPartnerConfigurationUnauthorize_PartnerExpanded.cs new file mode 100644 index 000000000000..40c92f519926 --- /dev/null +++ b/swaggerci/eventgrid/generated/cmdlets/InvokeAzEventGridPartnerConfigurationUnauthorize_PartnerExpanded.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.EventGrid.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Extensions; + using System; + + /// + /// Unauthorize a single partner either by partner registration immutable Id or by partner name. + /// + /// + /// [OpenAPI] UnauthorizePartner=>POST:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.EventGrid/partnerConfigurations/default/unauthorizePartner" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsLifecycle.Invoke, @"AzEventGridPartnerConfigurationUnauthorize_PartnerExpanded", SupportsShouldProcess = true)] + [global::System.Management.Automation.OutputType(typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerConfiguration))] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Description(@"Unauthorize a single partner either by partner registration immutable Id or by partner name.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Generated] + public partial class InvokeAzEventGridPartnerConfigurationUnauthorize_PartnerExpanded : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener + { + /// A unique id generatd for the this cmdlet when it is instantiated. + private string __correlationId = System.Guid.NewGuid().ToString(); + + /// A copy of the Invocation Info (necessary to allow asJob to clone this cmdlet) + private global::System.Management.Automation.InvocationInfo __invocationInfo; + + /// A unique id generatd for the this cmdlet when ProcessRecord() is called. + private string __processRecordId; + + /// + /// The for this operation. + /// + private global::System.Threading.CancellationTokenSource _cancellationTokenSource = new global::System.Threading.CancellationTokenSource(); + + /// Information about the partner. + private Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartner _partnerInfoBody = new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.Partner(); + + /// + /// Expiration time of the partner authorization. If this timer expires, any request from this partner to create, update or + /// delete resources in subscriber'scontext will fail. If specified, the allowed values are between 1 to the value of defaultMaximumExpirationTimeInDays + /// specified in PartnerConfiguration.If not specified, the default value will be the value of defaultMaximumExpirationTimeInDays + /// specified in PartnerConfiguration or 7 if this value is not specified. + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Expiration time of the partner authorization. If this timer expires, any request from this partner to create, update or delete resources in subscriber'scontext will fail. If specified, the allowed values are between 1 to the value of defaultMaximumExpirationTimeInDays specified in PartnerConfiguration.If not specified, the default value will be the value of defaultMaximumExpirationTimeInDays specified in PartnerConfiguration or 7 if this value is not specified.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Expiration time of the partner authorization. If this timer expires, any request from this partner to create, update or delete resources in subscriber'scontext will fail. If specified, the allowed values are between 1 to the value of defaultMaximumExpirationTimeInDays specified in PartnerConfiguration.If not specified, the default value will be the value of defaultMaximumExpirationTimeInDays specified in PartnerConfiguration or 7 if this value is not specified.", + SerializedName = @"authorizationExpirationTimeInUtc", + PossibleTypes = new [] { typeof(global::System.DateTime) })] + public global::System.DateTime AuthorizationExpirationTimeInUtc { get => _partnerInfoBody.AuthorizationExpirationTimeInUtc ?? default(global::System.DateTime); set => _partnerInfoBody.AuthorizationExpirationTimeInUtc = 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.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.EventGridManagementClient Client => Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.ClientAPI; + + /// + /// The credentials, account, tenant, and subscription used for communication with Azure + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The credentials, account, tenant, and subscription used for communication with Azure.")] + [global::System.Management.Automation.ValidateNotNull] + [global::System.Management.Automation.Alias("AzureRMContext", "AzureCredential")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Azure)] + public global::System.Management.Automation.PSObject DefaultProfile { get; set; } + + /// SendAsync Pipeline Steps to be appended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be appended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[] HttpPipelineAppend { get; set; } + + /// SendAsync Pipeline Steps to be prepended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be prepended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[] HttpPipelinePrepend { get; set; } + + /// Accessor for our copy of the InvocationInfo. + public global::System.Management.Automation.InvocationInfo InvocationInformation { get => __invocationInfo = __invocationInfo ?? this.MyInvocation ; set { __invocationInfo = value; } } + + /// + /// cancellation delegate. Stops the cmdlet when called. + /// + global::System.Action Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener.Token => _cancellationTokenSource.Token; + + /// The partner name. + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The partner name.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The partner name.", + SerializedName = @"partnerName", + PossibleTypes = new [] { typeof(string) })] + public string PartnerName { get => _partnerInfoBody.Name ?? null; set => _partnerInfoBody.Name = value; } + + /// The immutableId of the corresponding partner registration. + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The immutableId of the corresponding partner registration.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The immutableId of the corresponding partner registration.", + SerializedName = @"partnerRegistrationImmutableId", + PossibleTypes = new [] { typeof(string) })] + public string PartnerRegistrationImmutableId { get => _partnerInfoBody.RegistrationImmutableId ?? null; set => _partnerInfoBody.RegistrationImmutableId = 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.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Runtime.HttpPipeline Pipeline { get; set; } + + /// The URI for the proxy server to use + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "The URI for the proxy server to use")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Uri Proxy { get; set; } + + /// Credentials for a proxy server to use for the remote call + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Credentials for a proxy server to use for the remote call")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Management.Automation.PSCredential ProxyCredential { get; set; } + + /// Use the default credentials for the proxy + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Use the default credentials for the proxy")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter ProxyUseDefaultCredentials { get; set; } + + /// Backing field for property. + private string _resourceGroupName; + + /// The name of the resource group within the user's subscription. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the resource group within the user's subscription.")] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the resource group within the user's subscription.", + SerializedName = @"resourceGroupName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Path)] + public string ResourceGroupName { get => this._resourceGroupName; set => this._resourceGroupName = value; } + + /// Backing field for property. + private string _subscriptionId; + + /// + /// Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription ID forms part of the + /// URI for every service call. + /// + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.")] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.", + SerializedName = @"subscriptionId", + PossibleTypes = new [] { typeof(string) })] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.DefaultInfo( + Name = @"", + Description =@"", + Script = @"(Get-AzContext).Subscription.Id")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Path)] + public string SubscriptionId { get => this._subscriptionId; set => this._subscriptionId = value; } + + /// + /// overrideOnDefault will be called before the regular onDefault has been processed, allowing customization of what + /// happens on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// /// Determines if the rest of the onDefault method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnDefault(global::System.Net.Http.HttpResponseMessage responseMessage, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnOk will be called before the regular onOk has been processed, allowing customization of what happens + /// on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// 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() + { + var telemetryId = Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.GetTelemetryId.Invoke(); + if (telemetryId != "" && telemetryId != "internal") + { + __correlationId = telemetryId; + } + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + + } + + /// + /// Intializes a new instance of the cmdlet + /// class. + /// + public InvokeAzEventGridPartnerConfigurationUnauthorize_PartnerExpanded() + { + + } + + /// Handles/Dispatches events during the call to the REST service. + /// The message id + /// The message cancellation token. When this call is cancelled, this should be true + /// Detailed message data for the message event. + /// + /// A that will be complete when handling of the message is completed. + /// + async global::System.Threading.Tasks.Task Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener.Signal(string id, global::System.Threading.CancellationToken token, global::System.Func messageData) + { + using( NoSynchronizationContext ) + { + if (token.IsCancellationRequested) + { + return ; + } + + switch ( id ) + { + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Information: + { + var data = messageData(); + WriteInformation(data.Message, new string[]{}); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Error: + { + WriteError(new global::System.Management.Automation.ErrorRecord( new global::System.Exception(messageData().Message), string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null ) ); + return ; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.EventData ), InvocationInformation, this.ParameterSetName, __correlationId, __processRecordId, null ); + if (token.IsCancellationRequested) + { + return ; + } + WriteDebug($"{id}: {(messageData().Message ?? global::System.String.Empty)}"); + } + } + + /// Performs execution of the command. + protected override void ProcessRecord() + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + if (ShouldProcess($"Call remote 'PartnerConfigurationsUnauthorizePartner' operation")) + { + using( var asyncCommandRuntime = new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token); + } + } + } + catch (global::System.AggregateException aggregateException) + { + // unroll the inner exceptions to get the root cause + foreach( var innerException in aggregateException.Flatten().InnerExceptions ) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(innerException,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + } + catch (global::System.Exception exception) when ((exception as System.Management.Automation.PipelineStoppedException)== null || (exception as System.Management.Automation.PipelineStoppedException).InnerException != null) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(exception,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + finally + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletProcessRecordEnd).Wait(); + } + } + + /// Performs execution of the command, working asynchronously if required. + /// + /// A that will be complete when handling of the method is completed. + /// + protected async global::System.Threading.Tasks.Task ProcessRecordAsync() + { + using( NoSynchronizationContext ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await this.Client.PartnerConfigurationsUnauthorizePartner(SubscriptionId, ResourceGroupName, _partnerInfoBody, onOk, onDefault, this, Pipeline); + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.UndeclaredResponseException urexception) + { + WriteError(new global::System.Management.Automation.ErrorRecord(urexception, urexception.StatusCode.ToString(), global::System.Management.Automation.ErrorCategory.InvalidOperation, new { SubscriptionId=SubscriptionId,ResourceGroupName=ResourceGroupName,body=_partnerInfoBody}) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(urexception.Message) { RecommendedAction = urexception.Action } + }); + } + finally + { + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Cancel(); + base.StopProcessing(); + } + + /// + /// a delegate that is called when the remote service returns default (any response code not handled elsewhere). + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onDefault(global::System.Net.Http.HttpResponseMessage responseMessage) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnDefault(responseMessage, ref _returnNow); + // if overrideOnDefault has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // Error Response : default + // Unrecognized Response. Create an error record based on what we have. + var ex = new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.RestException(responseMessage); + WriteError( new global::System.Management.Automation.ErrorRecord(ex, ex.Code, global::System.Management.Automation.ErrorCategory.InvalidOperation, new { SubscriptionId=SubscriptionId, ResourceGroupName=ResourceGroupName, body=_partnerInfoBody }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(ex.Message) { RecommendedAction = ex.Action } + }); + } + } + + /// a delegate that is called when the remote service returns 200 (OK). + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as 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.EventGrid.Models.Api20211015Preview.IPartnerConfiguration + WriteObject((await response)); + } + } + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/cmdlets/InvokeAzEventGridPartnerConfigurationUnauthorize_PartnerViaIdentity.cs b/swaggerci/eventgrid/generated/cmdlets/InvokeAzEventGridPartnerConfigurationUnauthorize_PartnerViaIdentity.cs new file mode 100644 index 000000000000..0a26fe2fce3b --- /dev/null +++ b/swaggerci/eventgrid/generated/cmdlets/InvokeAzEventGridPartnerConfigurationUnauthorize_PartnerViaIdentity.cs @@ -0,0 +1,388 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Extensions; + using System; + + /// + /// Unauthorize a single partner either by partner registration immutable Id or by partner name. + /// + /// + /// [OpenAPI] UnauthorizePartner=>POST:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.EventGrid/partnerConfigurations/default/unauthorizePartner" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsLifecycle.Invoke, @"AzEventGridPartnerConfigurationUnauthorize_PartnerViaIdentity", SupportsShouldProcess = true)] + [global::System.Management.Automation.OutputType(typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerConfiguration))] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Description(@"Unauthorize a single partner either by partner registration immutable Id or by partner name.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Generated] + public partial class InvokeAzEventGridPartnerConfigurationUnauthorize_PartnerViaIdentity : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener + { + /// A unique id generatd for the this cmdlet when it is instantiated. + private string __correlationId = System.Guid.NewGuid().ToString(); + + /// A copy of the Invocation Info (necessary to allow asJob to clone this cmdlet) + private global::System.Management.Automation.InvocationInfo __invocationInfo; + + /// A unique id generatd for the this cmdlet when ProcessRecord() is called. + private string __processRecordId; + + /// + /// The for this operation. + /// + private global::System.Threading.CancellationTokenSource _cancellationTokenSource = new global::System.Threading.CancellationTokenSource(); + + /// Wait for .NET debugger to attach + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Wait for .NET debugger to attach")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.EventGridManagementClient Client => Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.ClientAPI; + + /// + /// The credentials, account, tenant, and subscription used for communication with Azure + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The credentials, account, tenant, and subscription used for communication with Azure.")] + [global::System.Management.Automation.ValidateNotNull] + [global::System.Management.Automation.Alias("AzureRMContext", "AzureCredential")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Azure)] + public global::System.Management.Automation.PSObject DefaultProfile { get; set; } + + /// SendAsync Pipeline Steps to be appended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be appended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[] HttpPipelineAppend { get; set; } + + /// SendAsync Pipeline Steps to be prepended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be prepended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[] HttpPipelinePrepend { get; set; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.IEventGridIdentity _inputObject; + + /// Identity Parameter + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Identity Parameter", ValueFromPipeline = true)] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Path)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.IEventGridIdentity InputObject { get => this._inputObject; set => this._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.EventGrid.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener.Token => _cancellationTokenSource.Token; + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartner _partnerInfo; + + /// Information about the partner. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Information about the partner.", ValueFromPipeline = true)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Information about the partner.", + SerializedName = @"partnerInfo", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartner) })] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartner PartnerInfo { get => this._partnerInfo; set => this._partnerInfo = 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.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Runtime.HttpPipeline Pipeline { get; set; } + + /// The URI for the proxy server to use + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "The URI for the proxy server to use")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Uri Proxy { get; set; } + + /// Credentials for a proxy server to use for the remote call + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Credentials for a proxy server to use for the remote call")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Management.Automation.PSCredential ProxyCredential { get; set; } + + /// Use the default credentials for the proxy + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Use the default credentials for the proxy")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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. + /// /// Determines if the rest of the onDefault method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnDefault(global::System.Net.Http.HttpResponseMessage responseMessage, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnOk will be called before the regular onOk has been processed, allowing customization of what happens + /// on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// 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() + { + var telemetryId = Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.GetTelemetryId.Invoke(); + if (telemetryId != "" && telemetryId != "internal") + { + __correlationId = telemetryId; + } + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + + } + + /// + /// Intializes a new instance of the cmdlet + /// class. + /// + public InvokeAzEventGridPartnerConfigurationUnauthorize_PartnerViaIdentity() + { + + } + + /// Handles/Dispatches events during the call to the REST service. + /// The message id + /// The message cancellation token. When this call is cancelled, this should be true + /// Detailed message data for the message event. + /// + /// A that will be complete when handling of the message is completed. + /// + async global::System.Threading.Tasks.Task Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener.Signal(string id, global::System.Threading.CancellationToken token, global::System.Func messageData) + { + using( NoSynchronizationContext ) + { + if (token.IsCancellationRequested) + { + return ; + } + + switch ( id ) + { + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Information: + { + var data = messageData(); + WriteInformation(data.Message, new string[]{}); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Error: + { + WriteError(new global::System.Management.Automation.ErrorRecord( new global::System.Exception(messageData().Message), string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null ) ); + return ; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.EventData ), InvocationInformation, this.ParameterSetName, __correlationId, __processRecordId, null ); + if (token.IsCancellationRequested) + { + return ; + } + WriteDebug($"{id}: {(messageData().Message ?? global::System.String.Empty)}"); + } + } + + /// Performs execution of the command. + protected override void ProcessRecord() + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + if (ShouldProcess($"Call remote 'PartnerConfigurationsUnauthorizePartner' operation")) + { + using( var asyncCommandRuntime = new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token); + } + } + } + catch (global::System.AggregateException aggregateException) + { + // unroll the inner exceptions to get the root cause + foreach( var innerException in aggregateException.Flatten().InnerExceptions ) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(innerException,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + } + catch (global::System.Exception exception) when ((exception as System.Management.Automation.PipelineStoppedException)== null || (exception as System.Management.Automation.PipelineStoppedException).InnerException != null) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(exception,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + finally + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletProcessRecordEnd).Wait(); + } + } + + /// Performs execution of the command, working asynchronously if required. + /// + /// A that will be complete when handling of the method is completed. + /// + protected async global::System.Threading.Tasks.Task ProcessRecordAsync() + { + using( NoSynchronizationContext ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + if (InputObject?.Id != null) + { + await this.Client.PartnerConfigurationsUnauthorizePartnerViaIdentity(InputObject.Id, PartnerInfo, 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) ); + } + await this.Client.PartnerConfigurationsUnauthorizePartner(InputObject.SubscriptionId ?? null, InputObject.ResourceGroupName ?? null, PartnerInfo, onOk, onDefault, this, Pipeline); + } + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.UndeclaredResponseException urexception) + { + WriteError(new global::System.Management.Automation.ErrorRecord(urexception, urexception.StatusCode.ToString(), global::System.Management.Automation.ErrorCategory.InvalidOperation, new { body=PartnerInfo}) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(urexception.Message) { RecommendedAction = urexception.Action } + }); + } + finally + { + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Cancel(); + base.StopProcessing(); + } + + /// + /// a delegate that is called when the remote service returns default (any response code not handled elsewhere). + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onDefault(global::System.Net.Http.HttpResponseMessage responseMessage) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnDefault(responseMessage, ref _returnNow); + // if overrideOnDefault has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // Error Response : default + // Unrecognized Response. Create an error record based on what we have. + var ex = new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.RestException(responseMessage); + WriteError( new global::System.Management.Automation.ErrorRecord(ex, ex.Code, global::System.Management.Automation.ErrorCategory.InvalidOperation, new { body=PartnerInfo }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(ex.Message) { RecommendedAction = ex.Action } + }); + } + } + + /// a delegate that is called when the remote service returns 200 (OK). + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as 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.EventGrid.Models.Api20211015Preview.IPartnerConfiguration + WriteObject((await response)); + } + } + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/cmdlets/InvokeAzEventGridPartnerConfigurationUnauthorize_PartnerViaIdentityExpanded.cs b/swaggerci/eventgrid/generated/cmdlets/InvokeAzEventGridPartnerConfigurationUnauthorize_PartnerViaIdentityExpanded.cs new file mode 100644 index 000000000000..c3391855b545 --- /dev/null +++ b/swaggerci/eventgrid/generated/cmdlets/InvokeAzEventGridPartnerConfigurationUnauthorize_PartnerViaIdentityExpanded.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.EventGrid.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Extensions; + using System; + + /// + /// Unauthorize a single partner either by partner registration immutable Id or by partner name. + /// + /// + /// [OpenAPI] UnauthorizePartner=>POST:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.EventGrid/partnerConfigurations/default/unauthorizePartner" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsLifecycle.Invoke, @"AzEventGridPartnerConfigurationUnauthorize_PartnerViaIdentityExpanded", SupportsShouldProcess = true)] + [global::System.Management.Automation.OutputType(typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerConfiguration))] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Description(@"Unauthorize a single partner either by partner registration immutable Id or by partner name.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Generated] + public partial class InvokeAzEventGridPartnerConfigurationUnauthorize_PartnerViaIdentityExpanded : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener + { + /// A unique id generatd for the this cmdlet when it is instantiated. + private string __correlationId = System.Guid.NewGuid().ToString(); + + /// A copy of the Invocation Info (necessary to allow asJob to clone this cmdlet) + private global::System.Management.Automation.InvocationInfo __invocationInfo; + + /// A unique id generatd for the this cmdlet when ProcessRecord() is called. + private string __processRecordId; + + /// + /// The for this operation. + /// + private global::System.Threading.CancellationTokenSource _cancellationTokenSource = new global::System.Threading.CancellationTokenSource(); + + /// Information about the partner. + private Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartner _partnerInfoBody = new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.Partner(); + + /// + /// Expiration time of the partner authorization. If this timer expires, any request from this partner to create, update or + /// delete resources in subscriber'scontext will fail. If specified, the allowed values are between 1 to the value of defaultMaximumExpirationTimeInDays + /// specified in PartnerConfiguration.If not specified, the default value will be the value of defaultMaximumExpirationTimeInDays + /// specified in PartnerConfiguration or 7 if this value is not specified. + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Expiration time of the partner authorization. If this timer expires, any request from this partner to create, update or delete resources in subscriber'scontext will fail. If specified, the allowed values are between 1 to the value of defaultMaximumExpirationTimeInDays specified in PartnerConfiguration.If not specified, the default value will be the value of defaultMaximumExpirationTimeInDays specified in PartnerConfiguration or 7 if this value is not specified.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Expiration time of the partner authorization. If this timer expires, any request from this partner to create, update or delete resources in subscriber'scontext will fail. If specified, the allowed values are between 1 to the value of defaultMaximumExpirationTimeInDays specified in PartnerConfiguration.If not specified, the default value will be the value of defaultMaximumExpirationTimeInDays specified in PartnerConfiguration or 7 if this value is not specified.", + SerializedName = @"authorizationExpirationTimeInUtc", + PossibleTypes = new [] { typeof(global::System.DateTime) })] + public global::System.DateTime AuthorizationExpirationTimeInUtc { get => _partnerInfoBody.AuthorizationExpirationTimeInUtc ?? default(global::System.DateTime); set => _partnerInfoBody.AuthorizationExpirationTimeInUtc = 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.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.EventGridManagementClient Client => Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.ClientAPI; + + /// + /// The credentials, account, tenant, and subscription used for communication with Azure + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The credentials, account, tenant, and subscription used for communication with Azure.")] + [global::System.Management.Automation.ValidateNotNull] + [global::System.Management.Automation.Alias("AzureRMContext", "AzureCredential")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Azure)] + public global::System.Management.Automation.PSObject DefaultProfile { get; set; } + + /// SendAsync Pipeline Steps to be appended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be appended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[] HttpPipelineAppend { get; set; } + + /// SendAsync Pipeline Steps to be prepended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be prepended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[] HttpPipelinePrepend { get; set; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.IEventGridIdentity _inputObject; + + /// Identity Parameter + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Identity Parameter", ValueFromPipeline = true)] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Path)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.IEventGridIdentity InputObject { get => this._inputObject; set => this._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.EventGrid.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener.Token => _cancellationTokenSource.Token; + + /// The partner name. + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The partner name.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The partner name.", + SerializedName = @"partnerName", + PossibleTypes = new [] { typeof(string) })] + public string PartnerName { get => _partnerInfoBody.Name ?? null; set => _partnerInfoBody.Name = value; } + + /// The immutableId of the corresponding partner registration. + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The immutableId of the corresponding partner registration.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The immutableId of the corresponding partner registration.", + SerializedName = @"partnerRegistrationImmutableId", + PossibleTypes = new [] { typeof(string) })] + public string PartnerRegistrationImmutableId { get => _partnerInfoBody.RegistrationImmutableId ?? null; set => _partnerInfoBody.RegistrationImmutableId = 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.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Runtime.HttpPipeline Pipeline { get; set; } + + /// The URI for the proxy server to use + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "The URI for the proxy server to use")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Uri Proxy { get; set; } + + /// Credentials for a proxy server to use for the remote call + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Credentials for a proxy server to use for the remote call")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Management.Automation.PSCredential ProxyCredential { get; set; } + + /// Use the default credentials for the proxy + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Use the default credentials for the proxy")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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. + /// /// Determines if the rest of the onDefault method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnDefault(global::System.Net.Http.HttpResponseMessage responseMessage, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnOk will be called before the regular onOk has been processed, allowing customization of what happens + /// on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// 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() + { + var telemetryId = Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.GetTelemetryId.Invoke(); + if (telemetryId != "" && telemetryId != "internal") + { + __correlationId = telemetryId; + } + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + + } + + /// + /// Intializes a new instance of the cmdlet class. + /// + public InvokeAzEventGridPartnerConfigurationUnauthorize_PartnerViaIdentityExpanded() + { + + } + + /// Handles/Dispatches events during the call to the REST service. + /// The message id + /// The message cancellation token. When this call is cancelled, this should be true + /// Detailed message data for the message event. + /// + /// A that will be complete when handling of the message is completed. + /// + async global::System.Threading.Tasks.Task Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener.Signal(string id, global::System.Threading.CancellationToken token, global::System.Func messageData) + { + using( NoSynchronizationContext ) + { + if (token.IsCancellationRequested) + { + return ; + } + + switch ( id ) + { + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Information: + { + var data = messageData(); + WriteInformation(data.Message, new string[]{}); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Error: + { + WriteError(new global::System.Management.Automation.ErrorRecord( new global::System.Exception(messageData().Message), string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null ) ); + return ; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.EventData ), InvocationInformation, this.ParameterSetName, __correlationId, __processRecordId, null ); + if (token.IsCancellationRequested) + { + return ; + } + WriteDebug($"{id}: {(messageData().Message ?? global::System.String.Empty)}"); + } + } + + /// Performs execution of the command. + protected override void ProcessRecord() + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + if (ShouldProcess($"Call remote 'PartnerConfigurationsUnauthorizePartner' operation")) + { + using( var asyncCommandRuntime = new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token); + } + } + } + catch (global::System.AggregateException aggregateException) + { + // unroll the inner exceptions to get the root cause + foreach( var innerException in aggregateException.Flatten().InnerExceptions ) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(innerException,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + } + catch (global::System.Exception exception) when ((exception as System.Management.Automation.PipelineStoppedException)== null || (exception as System.Management.Automation.PipelineStoppedException).InnerException != null) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(exception,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + finally + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletProcessRecordEnd).Wait(); + } + } + + /// Performs execution of the command, working asynchronously if required. + /// + /// A that will be complete when handling of the method is completed. + /// + protected async global::System.Threading.Tasks.Task ProcessRecordAsync() + { + using( NoSynchronizationContext ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + if (InputObject?.Id != null) + { + await this.Client.PartnerConfigurationsUnauthorizePartnerViaIdentity(InputObject.Id, _partnerInfoBody, 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) ); + } + await this.Client.PartnerConfigurationsUnauthorizePartner(InputObject.SubscriptionId ?? null, InputObject.ResourceGroupName ?? null, _partnerInfoBody, onOk, onDefault, this, Pipeline); + } + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.UndeclaredResponseException urexception) + { + WriteError(new global::System.Management.Automation.ErrorRecord(urexception, urexception.StatusCode.ToString(), global::System.Management.Automation.ErrorCategory.InvalidOperation, new { body=_partnerInfoBody}) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(urexception.Message) { RecommendedAction = urexception.Action } + }); + } + finally + { + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Cancel(); + base.StopProcessing(); + } + + /// + /// a delegate that is called when the remote service returns default (any response code not handled elsewhere). + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onDefault(global::System.Net.Http.HttpResponseMessage responseMessage) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnDefault(responseMessage, ref _returnNow); + // if overrideOnDefault has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // Error Response : default + // Unrecognized Response. Create an error record based on what we have. + var ex = new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.RestException(responseMessage); + WriteError( new global::System.Management.Automation.ErrorRecord(ex, ex.Code, global::System.Management.Automation.ErrorCategory.InvalidOperation, new { body=_partnerInfoBody }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(ex.Message) { RecommendedAction = ex.Action } + }); + } + } + + /// a delegate that is called when the remote service returns 200 (OK). + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as 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.EventGrid.Models.Api20211015Preview.IPartnerConfiguration + WriteObject((await response)); + } + } + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/cmdlets/NewAzEventGridChannel_CreateExpanded.cs b/swaggerci/eventgrid/generated/cmdlets/NewAzEventGridChannel_CreateExpanded.cs new file mode 100644 index 000000000000..fb6521743afa --- /dev/null +++ b/swaggerci/eventgrid/generated/cmdlets/NewAzEventGridChannel_CreateExpanded.cs @@ -0,0 +1,657 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Extensions; + using System; + + /// Synchronously creates or updates a new channel with the specified parameters. + /// + /// [OpenAPI] CreateOrUpdate=>PUT:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.EventGrid/partnerNamespaces/{partnerNamespaceName}/channels/{channelName}" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsCommon.New, @"AzEventGridChannel_CreateExpanded", SupportsShouldProcess = true)] + [global::System.Management.Automation.OutputType(typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IChannel))] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Description(@"Synchronously creates or updates a new channel with the specified parameters.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Generated] + public partial class NewAzEventGridChannel_CreateExpanded : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener + { + /// A unique id generatd for the this cmdlet when it is instantiated. + private string __correlationId = System.Guid.NewGuid().ToString(); + + /// A copy of the Invocation Info (necessary to allow asJob to clone this cmdlet) + private global::System.Management.Automation.InvocationInfo __invocationInfo; + + /// A unique id generatd for the this cmdlet when ProcessRecord() is called. + private string __processRecordId; + + /// + /// The for this operation. + /// + private global::System.Threading.CancellationTokenSource _cancellationTokenSource = new global::System.Threading.CancellationTokenSource(); + + /// Channel info. + private Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IChannel _channelInfoBody = new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.Channel(); + + /// Wait for .NET debugger to attach + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Wait for .NET debugger to attach")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The type of the event channel which represents the direction flow of events. + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The type of the event channel which represents the direction flow of events.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The type of the event channel which represents the direction flow of events.", + SerializedName = @"channelType", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.ChannelType) })] + [global::System.Management.Automation.ArgumentCompleter(typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.ChannelType))] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.ChannelType ChannelType { get => _channelInfoBody.ChannelType ?? ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.ChannelType)""); set => _channelInfoBody.ChannelType = value; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.EventGridManagementClient Client => Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.ClientAPI; + + /// + /// The credentials, account, tenant, and subscription used for communication with Azure + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The credentials, account, tenant, and subscription used for communication with Azure.")] + [global::System.Management.Automation.ValidateNotNull] + [global::System.Management.Automation.Alias("AzureRMContext", "AzureCredential")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Azure)] + public global::System.Management.Automation.PSObject DefaultProfile { get; set; } + + /// + /// A collection of inline event types for the resource. The inline event type keys are of type string which represents the + /// name of the event.An example of a valid inline event name is "Contoso.OrderCreated".The inline event type values are of + /// type InlineEventProperties and will contain additional information for every inline event type. + /// + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ExportAs(typeof(global::System.Collections.Hashtable))] + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "A collection of inline event types for the resource. The inline event type keys are of type string which represents the name of the event.An example of a valid inline event name is \"Contoso.OrderCreated\".The inline event type values are of type InlineEventProperties and will contain additional information for every inline event type.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"A collection of inline event types for the resource. The inline event type keys are of type string which represents the name of the event.An example of a valid inline event name is ""Contoso.OrderCreated"".The inline event type values are of type InlineEventProperties and will contain additional information for every inline event type.", + SerializedName = @"inlineEventTypes", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventTypeInfoInlineEventTypes) })] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventTypeInfoInlineEventTypes EventTypeInfoInlineEventType { get => _channelInfoBody.EventTypeInfoInlineEventType ?? null /* object */; set => _channelInfoBody.EventTypeInfoInlineEventType = value; } + + /// The kind of event type used. + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The kind of event type used.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The kind of event type used.", + SerializedName = @"kind", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EventDefinitionKind) })] + [global::System.Management.Automation.ArgumentCompleter(typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EventDefinitionKind))] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EventDefinitionKind EventTypeInfoKind { get => _channelInfoBody.EventTypeInfoKind ?? ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EventDefinitionKind)""); set => _channelInfoBody.EventTypeInfoKind = value; } + + /// + /// Expiration time of the channel. If this timer expires while the corresponding partner topic is never activated,the channel + /// and corresponding partner topic are deleted. + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Expiration time of the channel. If this timer expires while the corresponding partner topic is never activated,the channel and corresponding partner topic are deleted.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Expiration time of the channel. If this timer expires while the corresponding partner topic is never activated,the channel and corresponding partner topic are deleted.", + SerializedName = @"expirationTimeIfNotActivatedUtc", + PossibleTypes = new [] { typeof(global::System.DateTime) })] + public global::System.DateTime ExpirationTimeIfNotActivatedUtc { get => _channelInfoBody.ExpirationTimeIfNotActivatedUtc ?? default(global::System.DateTime); set => _channelInfoBody.ExpirationTimeIfNotActivatedUtc = 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.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[] HttpPipelineAppend { get; set; } + + /// SendAsync Pipeline Steps to be prepended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be prepended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[] HttpPipelinePrepend { get; set; } + + /// Accessor for our copy of the InvocationInfo. + public global::System.Management.Automation.InvocationInfo InvocationInformation { get => __invocationInfo = __invocationInfo ?? this.MyInvocation ; set { __invocationInfo = value; } } + + /// + /// Context or helpful message that can be used during the approval process by the subscriber. + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Context or helpful message that can be used during the approval process by the subscriber.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Context or helpful message that can be used during the approval process by the subscriber.", + SerializedName = @"messageForActivation", + PossibleTypes = new [] { typeof(string) })] + public string MessageForActivation { get => _channelInfoBody.MessageForActivation ?? null; set => _channelInfoBody.MessageForActivation = value; } + + /// + /// cancellation delegate. Stops the cmdlet when called. + /// + global::System.Action Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener.Token => _cancellationTokenSource.Token; + + /// Backing field for property. + private string _name; + + /// Name of the channel. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Name of the channel.")] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Name of the channel.", + SerializedName = @"channelName", + PossibleTypes = new [] { typeof(string) })] + [global::System.Management.Automation.Alias("ChannelName")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Path)] + public string Name { get => this._name; set => this._name = value; } + + /// + /// Azure subscription ID of the subscriber. The partner destination associated with the channel will becreated under this + /// Azure subscription. + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Azure subscription ID of the subscriber. The partner destination associated with the channel will becreated under this Azure subscription.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Azure subscription ID of the subscriber. The partner destination associated with the channel will becreated under this Azure subscription.", + SerializedName = @"azureSubscriptionId", + PossibleTypes = new [] { typeof(string) })] + public string PartnerDestinationInfoAzureSubscriptionId { get => _channelInfoBody.PartnerDestinationInfoAzureSubscriptionId ?? null; set => _channelInfoBody.PartnerDestinationInfoAzureSubscriptionId = value; } + + /// Additional context of the partner destination endpoint. + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Additional context of the partner destination endpoint.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Additional context of the partner destination endpoint.", + SerializedName = @"endpointServiceContext", + PossibleTypes = new [] { typeof(string) })] + public string PartnerDestinationInfoEndpointServiceContext { get => _channelInfoBody.PartnerDestinationInfoEndpointServiceContext ?? null; set => _channelInfoBody.PartnerDestinationInfoEndpointServiceContext = value; } + + /// Name of the partner destination associated with the channel. + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Name of the partner destination associated with the channel.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Name of the partner destination associated with the channel.", + SerializedName = @"name", + PossibleTypes = new [] { typeof(string) })] + public string PartnerDestinationInfoName { get => _channelInfoBody.PartnerDestinationInfoName ?? null; set => _channelInfoBody.PartnerDestinationInfoName = value; } + + /// + /// Azure Resource Group of the subscriber. The partner destination associated with the channel will becreated under this + /// resource group. + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Azure Resource Group of the subscriber. The partner destination associated with the channel will becreated under this resource group.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Azure Resource Group of the subscriber. The partner destination associated with the channel will becreated under this resource group.", + SerializedName = @"resourceGroupName", + PossibleTypes = new [] { typeof(string) })] + public string PartnerDestinationInfoResourceGroupName { get => _channelInfoBody.PartnerDestinationInfoResourceGroupName ?? null; set => _channelInfoBody.PartnerDestinationInfoResourceGroupName = value; } + + /// Change history of the resource move. + [global::System.Management.Automation.AllowEmptyCollection] + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Change history of the resource move.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Change history of the resource move.", + SerializedName = @"resourceMoveChangeHistory", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IResourceMoveChangeHistory) })] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IResourceMoveChangeHistory[] PartnerDestinationInfoResourceMoveChangeHistory { get => _channelInfoBody.PartnerDestinationInfoResourceMoveChangeHistory ?? null /* arrayOf */; set => _channelInfoBody.PartnerDestinationInfoResourceMoveChangeHistory = value; } + + /// Backing field for property. + private string _partnerNamespaceName; + + /// Name of the partner namespace. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Name of the partner namespace.")] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Name of the partner namespace.", + SerializedName = @"partnerNamespaceName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Path)] + public string PartnerNamespaceName { get => this._partnerNamespaceName; set => this._partnerNamespaceName = value; } + + /// + /// Azure subscription ID of the subscriber. The partner topic associated with the channel will becreated under this Azure + /// subscription. + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Azure subscription ID of the subscriber. The partner topic associated with the channel will becreated under this Azure subscription.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Azure subscription ID of the subscriber. The partner topic associated with the channel will becreated under this Azure subscription.", + SerializedName = @"azureSubscriptionId", + PossibleTypes = new [] { typeof(string) })] + public string PartnerTopicInfoAzureSubscriptionId { get => _channelInfoBody.PartnerTopicInfoAzureSubscriptionId ?? null; set => _channelInfoBody.PartnerTopicInfoAzureSubscriptionId = value; } + + /// Name of the partner topic associated with the channel. + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Name of the partner topic associated with the channel.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Name of the partner topic associated with the channel.", + SerializedName = @"name", + PossibleTypes = new [] { typeof(string) })] + public string PartnerTopicInfoName { get => _channelInfoBody.PartnerTopicInfoName ?? null; set => _channelInfoBody.PartnerTopicInfoName = value; } + + /// + /// Azure Resource Group of the subscriber. The partner topic associated with the channel will becreated under this resource + /// group. + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Azure Resource Group of the subscriber. The partner topic associated with the channel will becreated under this resource group.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Azure Resource Group of the subscriber. The partner topic associated with the channel will becreated under this resource group.", + SerializedName = @"resourceGroupName", + PossibleTypes = new [] { typeof(string) })] + public string PartnerTopicInfoResourceGroupName { get => _channelInfoBody.PartnerTopicInfoResourceGroupName ?? null; set => _channelInfoBody.PartnerTopicInfoResourceGroupName = value; } + + /// + /// The source information is provided by the publisher to determine the scope or context from which the eventsare originating. + /// This information can be used by the subscriber during the approval process of thecreated partner topic. + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The source information is provided by the publisher to determine the scope or context from which the eventsare originating. This information can be used by the subscriber during the approval process of thecreated partner topic.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The source information is provided by the publisher to determine the scope or context from which the eventsare originating. This information can be used by the subscriber during the approval process of thecreated partner topic.", + SerializedName = @"source", + PossibleTypes = new [] { typeof(string) })] + public string PartnerTopicInfoSource { get => _channelInfoBody.PartnerTopicInfoSource ?? null; set => _channelInfoBody.PartnerTopicInfoSource = 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.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Runtime.HttpPipeline Pipeline { get; set; } + + /// Provisioning state of the channel. + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Provisioning state of the channel.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Provisioning state of the channel.", + SerializedName = @"provisioningState", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.ChannelProvisioningState) })] + [global::System.Management.Automation.ArgumentCompleter(typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.ChannelProvisioningState))] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.ChannelProvisioningState ProvisioningState { get => _channelInfoBody.ProvisioningState ?? ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.ChannelProvisioningState)""); set => _channelInfoBody.ProvisioningState = 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.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Uri Proxy { get; set; } + + /// Credentials for a proxy server to use for the remote call + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Credentials for a proxy server to use for the remote call")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Management.Automation.PSCredential ProxyCredential { get; set; } + + /// Use the default credentials for the proxy + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Use the default credentials for the proxy")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter ProxyUseDefaultCredentials { get; set; } + + /// The readiness state of the corresponding partner topic. + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The readiness state of the corresponding partner topic.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The readiness state of the corresponding partner topic.", + SerializedName = @"readinessState", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.ReadinessState) })] + [global::System.Management.Automation.ArgumentCompleter(typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.ReadinessState))] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.ReadinessState ReadinessState { get => _channelInfoBody.ReadinessState ?? ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.ReadinessState)""); set => _channelInfoBody.ReadinessState = value; } + + /// Backing field for property. + private string _resourceGroupName; + + /// The name of the resource group within the partners subscription. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the resource group within the partners subscription.")] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the resource group within the partners subscription.", + SerializedName = @"resourceGroupName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Path)] + public string ResourceGroupName { get => this._resourceGroupName; set => this._resourceGroupName = value; } + + /// Backing field for property. + private string _subscriptionId; + + /// + /// Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription ID forms part of the + /// URI for every service call. + /// + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.")] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.", + SerializedName = @"subscriptionId", + PossibleTypes = new [] { typeof(string) })] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.DefaultInfo( + Name = @"", + Description =@"", + Script = @"(Get-AzContext).Subscription.Id")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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. + /// /// Determines if the rest of the onDefault method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnDefault(global::System.Net.Http.HttpResponseMessage responseMessage, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnOk will be called before the regular onOk has been processed, allowing customization of what happens + /// on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// 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() + { + var telemetryId = Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.GetTelemetryId.Invoke(); + if (telemetryId != "" && telemetryId != "internal") + { + __correlationId = telemetryId; + } + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + + } + + /// Handles/Dispatches events during the call to the REST service. + /// The message id + /// The message cancellation token. When this call is cancelled, this should be true + /// Detailed message data for the message event. + /// + /// A that will be complete when handling of the message is completed. + /// + async global::System.Threading.Tasks.Task Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener.Signal(string id, global::System.Threading.CancellationToken token, global::System.Func messageData) + { + using( NoSynchronizationContext ) + { + if (token.IsCancellationRequested) + { + return ; + } + + switch ( id ) + { + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Information: + { + var data = messageData(); + WriteInformation(data.Message, new string[]{}); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Error: + { + WriteError(new global::System.Management.Automation.ErrorRecord( new global::System.Exception(messageData().Message), string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null ) ); + return ; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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 NewAzEventGridChannel_CreateExpanded() + { + + } + + /// Performs execution of the command. + protected override void ProcessRecord() + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + if (ShouldProcess($"Call remote 'ChannelsCreateOrUpdate' operation")) + { + using( var asyncCommandRuntime = new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token); + } + } + } + catch (global::System.AggregateException aggregateException) + { + // unroll the inner exceptions to get the root cause + foreach( var innerException in aggregateException.Flatten().InnerExceptions ) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(innerException,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + } + catch (global::System.Exception exception) when ((exception as System.Management.Automation.PipelineStoppedException)== null || (exception as System.Management.Automation.PipelineStoppedException).InnerException != null) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(exception,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + finally + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletProcessRecordEnd).Wait(); + } + } + + /// Performs execution of the command, working asynchronously if required. + /// + /// A that will be complete when handling of the method is completed. + /// + protected async global::System.Threading.Tasks.Task ProcessRecordAsync() + { + using( NoSynchronizationContext ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await this.Client.ChannelsCreateOrUpdate(SubscriptionId, ResourceGroupName, PartnerNamespaceName, Name, _channelInfoBody, onOk, onCreated, onDefault, this, Pipeline); + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.UndeclaredResponseException urexception) + { + WriteError(new global::System.Management.Automation.ErrorRecord(urexception, urexception.StatusCode.ToString(), global::System.Management.Automation.ErrorCategory.InvalidOperation, new { SubscriptionId=SubscriptionId,ResourceGroupName=ResourceGroupName,PartnerNamespaceName=PartnerNamespaceName,Name=Name,body=_channelInfoBody}) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(urexception.Message) { RecommendedAction = urexception.Action } + }); + } + finally + { + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Models.Api20211015Preview.IChannel + 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. + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onDefault(global::System.Net.Http.HttpResponseMessage responseMessage) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnDefault(responseMessage, ref _returnNow); + // if overrideOnDefault has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // Error Response : default + // Unrecognized Response. Create an error record based on what we have. + var ex = new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.RestException(responseMessage); + WriteError( new global::System.Management.Automation.ErrorRecord(ex, ex.Code, global::System.Management.Automation.ErrorCategory.InvalidOperation, new { SubscriptionId=SubscriptionId, ResourceGroupName=ResourceGroupName, PartnerNamespaceName=PartnerNamespaceName, Name=Name, body=_channelInfoBody }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(ex.Message) { RecommendedAction = ex.Action } + }); + } + } + + /// a delegate that is called when the remote service returns 200 (OK). + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as 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.EventGrid.Models.Api20211015Preview.IChannel + WriteObject((await response)); + } + } + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/cmdlets/NewAzEventGridDomainEventSubscription_CreateExpanded.cs b/swaggerci/eventgrid/generated/cmdlets/NewAzEventGridDomainEventSubscription_CreateExpanded.cs new file mode 100644 index 000000000000..d17e9377ac13 --- /dev/null +++ b/swaggerci/eventgrid/generated/cmdlets/NewAzEventGridDomainEventSubscription_CreateExpanded.cs @@ -0,0 +1,702 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Extensions; + using System; + + /// + /// Asynchronously creates a new event subscription or updates an existing event subscription. + /// + /// + /// [OpenAPI] CreateOrUpdate=>PUT:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.EventGrid/domains/{domainName}/eventSubscriptions/{eventSubscriptionName}" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsCommon.New, @"AzEventGridDomainEventSubscription_CreateExpanded", SupportsShouldProcess = true)] + [global::System.Management.Automation.OutputType(typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscription))] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Description(@"Asynchronously creates a new event subscription or updates an existing event subscription.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Generated] + public partial class NewAzEventGridDomainEventSubscription_CreateExpanded : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener + { + /// A unique id generatd for the this cmdlet when it is instantiated. + private string __correlationId = System.Guid.NewGuid().ToString(); + + /// A copy of the Invocation Info (necessary to allow asJob to clone this cmdlet) + private global::System.Management.Automation.InvocationInfo __invocationInfo; + + /// A unique id generatd for the this cmdlet when ProcessRecord() is called. + private string __processRecordId; + + /// + /// The for this operation. + /// + private global::System.Threading.CancellationTokenSource _cancellationTokenSource = new global::System.Threading.CancellationTokenSource(); + + /// Event Subscription + private Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscription _eventSubscriptionInfoBody = new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.EventSubscription(); + + /// 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.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.EventGridManagementClient Client => Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.ClientAPI; + + /// + /// The type of managed identity used. The type 'SystemAssigned, UserAssigned' includes both an implicitly created identity + /// and a set of user-assigned identities. The type 'None' will remove any identity. + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The type of managed identity used. The type 'SystemAssigned, UserAssigned' includes both an implicitly created identity and a set of user-assigned identities. The type 'None' will remove any identity.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The type of managed identity used. The type 'SystemAssigned, UserAssigned' includes both an implicitly created identity and a set of user-assigned identities. The type 'None' will remove any identity.", + SerializedName = @"type", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EventSubscriptionIdentityType) })] + [global::System.Management.Automation.ArgumentCompleter(typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EventSubscriptionIdentityType))] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EventSubscriptionIdentityType DeadLetterWithResourceIdentityType { get => _eventSubscriptionInfoBody.DeadLetterWithResourceIdentityType ?? ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EventSubscriptionIdentityType)""); set => _eventSubscriptionInfoBody.DeadLetterWithResourceIdentityType = value; } + + /// The user identity associated with the resource. + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The user identity associated with the resource.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The user identity associated with the resource.", + SerializedName = @"userAssignedIdentity", + PossibleTypes = new [] { typeof(string) })] + public string DeadLetterWithResourceIdentityUserAssignedIdentity { get => _eventSubscriptionInfoBody.DeadLetterWithResourceIdentityUserAssignedIdentity ?? null; set => _eventSubscriptionInfoBody.DeadLetterWithResourceIdentityUserAssignedIdentity = 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.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Azure)] + public global::System.Management.Automation.PSObject DefaultProfile { get; set; } + + /// Type of the endpoint for the event subscription destination. + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Type of the endpoint for the event subscription destination.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Type of the endpoint for the event subscription destination.", + SerializedName = @"endpointType", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EndpointType) })] + [global::System.Management.Automation.ArgumentCompleter(typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EndpointType))] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EndpointType DeliveryWithResourceIdentityDestinationEndpointType { get => _eventSubscriptionInfoBody.DeliveryWithResourceIdentityDestinationEndpointType ?? ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EndpointType)""); set => _eventSubscriptionInfoBody.DeliveryWithResourceIdentityDestinationEndpointType = value; } + + /// + /// The type of managed identity used. The type 'SystemAssigned, UserAssigned' includes both an implicitly created identity + /// and a set of user-assigned identities. The type 'None' will remove any identity. + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The type of managed identity used. The type 'SystemAssigned, UserAssigned' includes both an implicitly created identity and a set of user-assigned identities. The type 'None' will remove any identity.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The type of managed identity used. The type 'SystemAssigned, UserAssigned' includes both an implicitly created identity and a set of user-assigned identities. The type 'None' will remove any identity.", + SerializedName = @"type", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EventSubscriptionIdentityType) })] + [global::System.Management.Automation.ArgumentCompleter(typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EventSubscriptionIdentityType))] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EventSubscriptionIdentityType DeliveryWithResourceIdentityType { get => _eventSubscriptionInfoBody.DeliveryWithResourceIdentityType ?? ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EventSubscriptionIdentityType)""); set => _eventSubscriptionInfoBody.DeliveryWithResourceIdentityType = value; } + + /// The user identity associated with the resource. + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The user identity associated with the resource.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The user identity associated with the resource.", + SerializedName = @"userAssignedIdentity", + PossibleTypes = new [] { typeof(string) })] + public string DeliveryWithResourceIdentityUserAssignedIdentity { get => _eventSubscriptionInfoBody.DeliveryWithResourceIdentityUserAssignedIdentity ?? null; set => _eventSubscriptionInfoBody.DeliveryWithResourceIdentityUserAssignedIdentity = value; } + + /// Backing field for property. + private string _domainName; + + /// Name of the domain topic. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Name of the domain topic.")] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Name of the domain topic.", + SerializedName = @"domainName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Path)] + public string DomainName { get => this._domainName; set => this._domainName = value; } + + /// Type of the endpoint for the event subscription destination. + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Type of the endpoint for the event subscription destination.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Type of the endpoint for the event subscription destination.", + SerializedName = @"endpointType", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EndpointType) })] + [global::System.Management.Automation.ArgumentCompleter(typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EndpointType))] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EndpointType EndpointType { get => _eventSubscriptionInfoBody.EndpointType ?? ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EndpointType)""); set => _eventSubscriptionInfoBody.EndpointType = value; } + + /// The event delivery schema for the event subscription. + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The event delivery schema for the event subscription.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The event delivery schema for the event subscription.", + SerializedName = @"eventDeliverySchema", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EventDeliverySchema) })] + [global::System.Management.Automation.ArgumentCompleter(typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EventDeliverySchema))] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EventDeliverySchema EventDeliverySchema { get => _eventSubscriptionInfoBody.EventDeliverySchema ?? ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EventDeliverySchema)""); set => _eventSubscriptionInfoBody.EventDeliverySchema = value; } + + /// Backing field for property. + private string _eventSubscriptionName; + + /// + /// Name of the event subscription to be created. Event subscription names must be between 3 and 100 characters in length + /// and use alphanumeric letters only. + /// + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Name of the event subscription to be created. Event subscription names must be between 3 and 100 characters in length and use alphanumeric letters only.")] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Name of the event subscription to be created. Event subscription names must be between 3 and 100 characters in length and use alphanumeric letters only.", + SerializedName = @"eventSubscriptionName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Path)] + public string EventSubscriptionName { get => this._eventSubscriptionName; set => this._eventSubscriptionName = value; } + + /// Expiration time of the event subscription. + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Expiration time of the event subscription.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Expiration time of the event subscription.", + SerializedName = @"expirationTimeUtc", + PossibleTypes = new [] { typeof(global::System.DateTime) })] + public global::System.DateTime ExpirationTimeUtc { get => _eventSubscriptionInfoBody.ExpirationTimeUtc ?? default(global::System.DateTime); set => _eventSubscriptionInfoBody.ExpirationTimeUtc = value; } + + /// An array of advanced filters that are used for filtering event subscriptions. + [global::System.Management.Automation.AllowEmptyCollection] + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "An array of advanced filters that are used for filtering event subscriptions.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"An array of advanced filters that are used for filtering event subscriptions.", + SerializedName = @"advancedFilters", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IAdvancedFilter) })] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IAdvancedFilter[] FilterAdvancedFilter { get => _eventSubscriptionInfoBody.FilterAdvancedFilter ?? null /* arrayOf */; set => _eventSubscriptionInfoBody.FilterAdvancedFilter = value; } + + /// + /// Allows advanced filters to be evaluated against an array of values instead of expecting a singular value. + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Allows advanced filters to be evaluated against an array of values instead of expecting a singular value.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Allows advanced filters to be evaluated against an array of values instead of expecting a singular value.", + SerializedName = @"enableAdvancedFilteringOnArrays", + PossibleTypes = new [] { typeof(global::System.Management.Automation.SwitchParameter) })] + public global::System.Management.Automation.SwitchParameter FilterEnableAdvancedFilteringOnArray { get => _eventSubscriptionInfoBody.FilterEnableAdvancedFilteringOnArray ?? default(global::System.Management.Automation.SwitchParameter); set => _eventSubscriptionInfoBody.FilterEnableAdvancedFilteringOnArray = value; } + + /// + /// A list of applicable event types that need to be part of the event subscription. If it is desired to subscribe to all + /// default event types, set the IncludedEventTypes to null. + /// + [global::System.Management.Automation.AllowEmptyCollection] + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "A list of applicable event types that need to be part of the event subscription. If it is desired to subscribe to all default event types, set the IncludedEventTypes to null.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"A list of applicable event types that need to be part of the event subscription. If it is desired to subscribe to all default event types, set the IncludedEventTypes to null.", + SerializedName = @"includedEventTypes", + PossibleTypes = new [] { typeof(string) })] + public string[] FilterIncludedEventType { get => _eventSubscriptionInfoBody.FilterIncludedEventType ?? null /* arrayOf */; set => _eventSubscriptionInfoBody.FilterIncludedEventType = value; } + + /// + /// Specifies if the SubjectBeginsWith and SubjectEndsWith properties of the filtershould be compared in a case sensitive + /// manner. + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Specifies if the SubjectBeginsWith and SubjectEndsWith properties of the filtershould be compared in a case sensitive manner.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Specifies if the SubjectBeginsWith and SubjectEndsWith properties of the filtershould be compared in a case sensitive manner.", + SerializedName = @"isSubjectCaseSensitive", + PossibleTypes = new [] { typeof(global::System.Management.Automation.SwitchParameter) })] + public global::System.Management.Automation.SwitchParameter FilterIsSubjectCaseSensitive { get => _eventSubscriptionInfoBody.FilterIsSubjectCaseSensitive ?? default(global::System.Management.Automation.SwitchParameter); set => _eventSubscriptionInfoBody.FilterIsSubjectCaseSensitive = value; } + + /// + /// An optional string to filter events for an event subscription based on a resource path prefix.The format of this depends + /// on the publisher of the events.Wildcard characters are not supported in this path. + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "An optional string to filter events for an event subscription based on a resource path prefix.The format of this depends on the publisher of the events.Wildcard characters are not supported in this path.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"An optional string to filter events for an event subscription based on a resource path prefix.The format of this depends on the publisher of the events.Wildcard characters are not supported in this path.", + SerializedName = @"subjectBeginsWith", + PossibleTypes = new [] { typeof(string) })] + public string FilterSubjectBeginsWith { get => _eventSubscriptionInfoBody.FilterSubjectBeginsWith ?? null; set => _eventSubscriptionInfoBody.FilterSubjectBeginsWith = value; } + + /// + /// An optional string to filter events for an event subscription based on a resource path suffix.Wildcard characters are + /// not supported in this path. + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "An optional string to filter events for an event subscription based on a resource path suffix.Wildcard characters are not supported in this path.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"An optional string to filter events for an event subscription based on a resource path suffix.Wildcard characters are not supported in this path.", + SerializedName = @"subjectEndsWith", + PossibleTypes = new [] { typeof(string) })] + public string FilterSubjectEndsWith { get => _eventSubscriptionInfoBody.FilterSubjectEndsWith ?? null; set => _eventSubscriptionInfoBody.FilterSubjectEndsWith = 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.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[] HttpPipelineAppend { get; set; } + + /// SendAsync Pipeline Steps to be prepended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be prepended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[] HttpPipelinePrepend { get; set; } + + /// Accessor for our copy of the InvocationInfo. + public global::System.Management.Automation.InvocationInfo InvocationInformation { get => __invocationInfo = __invocationInfo ?? this.MyInvocation ; set { __invocationInfo = value; } } + + /// List of user defined labels. + [global::System.Management.Automation.AllowEmptyCollection] + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "List of user defined labels.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"List of user defined labels.", + SerializedName = @"labels", + PossibleTypes = new [] { typeof(string) })] + public string[] Label { get => _eventSubscriptionInfoBody.Label ?? null /* arrayOf */; set => _eventSubscriptionInfoBody.Label = value; } + + /// + /// cancellation delegate. Stops the cmdlet when called. + /// + global::System.Action Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter NoWait { get; set; } + + /// + /// When specified, forces the cmdlet return a 'bool' given that there isn't a return type by default. + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Returns true when the command succeeds")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Runtime.HttpPipeline Pipeline { get; set; } + + /// The URI for the proxy server to use + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "The URI for the proxy server to use")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Uri Proxy { get; set; } + + /// Credentials for a proxy server to use for the remote call + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Credentials for a proxy server to use for the remote call")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Management.Automation.PSCredential ProxyCredential { get; set; } + + /// Use the default credentials for the proxy + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Use the default credentials for the proxy")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter ProxyUseDefaultCredentials { get; set; } + + /// Backing field for property. + private string _resourceGroupName; + + /// The name of the resource group within the user's subscription. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the resource group within the user's subscription.")] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the resource group within the user's subscription.", + SerializedName = @"resourceGroupName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Path)] + public string ResourceGroupName { get => this._resourceGroupName; set => this._resourceGroupName = value; } + + /// Time To Live (in minutes) for events. + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Time To Live (in minutes) for events.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Time To Live (in minutes) for events.", + SerializedName = @"eventTimeToLiveInMinutes", + PossibleTypes = new [] { typeof(int) })] + public int RetryPolicyEventTimeToLiveInMinute { get => _eventSubscriptionInfoBody.RetryPolicyEventTimeToLiveInMinute ?? default(int); set => _eventSubscriptionInfoBody.RetryPolicyEventTimeToLiveInMinute = value; } + + /// Maximum number of delivery retry attempts for events. + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Maximum number of delivery retry attempts for events.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Maximum number of delivery retry attempts for events.", + SerializedName = @"maxDeliveryAttempts", + PossibleTypes = new [] { typeof(int) })] + public int RetryPolicyMaxDeliveryAttempt { get => _eventSubscriptionInfoBody.RetryPolicyMaxDeliveryAttempt ?? default(int); set => _eventSubscriptionInfoBody.RetryPolicyMaxDeliveryAttempt = value; } + + /// Backing field for property. + private string _subscriptionId; + + /// + /// Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription ID forms part of the + /// URI for every service call. + /// + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.")] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.", + SerializedName = @"subscriptionId", + PossibleTypes = new [] { typeof(string) })] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.DefaultInfo( + Name = @"", + Description =@"", + Script = @"(Get-AzContext).Subscription.Id")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Path)] + public string SubscriptionId { get => this._subscriptionId; set => this._subscriptionId = value; } + + /// + /// overrideOnDefault will be called before the regular onDefault has been processed, allowing customization of what + /// happens on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// /// Determines if the rest of the onDefault method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnDefault(global::System.Net.Http.HttpResponseMessage responseMessage, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnOk will be called before the regular onOk has been processed, allowing customization of what happens + /// on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// 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() + { + var telemetryId = Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.GetTelemetryId.Invoke(); + if (telemetryId != "" && telemetryId != "internal") + { + __correlationId = telemetryId; + } + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Creates a duplicate instance of this cmdlet (via JSON serialization). + /// a duplicate instance of NewAzEventGridDomainEventSubscription_CreateExpanded + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Cmdlets.NewAzEventGridDomainEventSubscription_CreateExpanded Clone() + { + var clone = new NewAzEventGridDomainEventSubscription_CreateExpanded(); + clone.__correlationId = this.__correlationId; + clone.__processRecordId = this.__processRecordId; + clone.DefaultProfile = this.DefaultProfile; + clone.InvocationInformation = this.InvocationInformation; + clone.Proxy = this.Proxy; + clone.Pipeline = this.Pipeline; + clone.AsJob = this.AsJob; + clone.Break = this.Break; + clone.ProxyCredential = this.ProxyCredential; + clone.ProxyUseDefaultCredentials = this.ProxyUseDefaultCredentials; + clone.HttpPipelinePrepend = this.HttpPipelinePrepend; + clone.HttpPipelineAppend = this.HttpPipelineAppend; + clone._eventSubscriptionInfoBody = this._eventSubscriptionInfoBody; + clone.SubscriptionId = this.SubscriptionId; + clone.ResourceGroupName = this.ResourceGroupName; + clone.DomainName = this.DomainName; + clone.EventSubscriptionName = this.EventSubscriptionName; + return clone; + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + + } + + /// Handles/Dispatches events during the call to the REST service. + /// The message id + /// The message cancellation token. When this call is cancelled, this should be true + /// Detailed message data for the message event. + /// + /// A that will be complete when handling of the message is completed. + /// + async global::System.Threading.Tasks.Task Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener.Signal(string id, global::System.Threading.CancellationToken token, global::System.Func messageData) + { + using( NoSynchronizationContext ) + { + if (token.IsCancellationRequested) + { + return ; + } + + switch ( id ) + { + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.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.EventGrid.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.EventGrid.Runtime.PowerShell.AsyncOperationResponse { Target = uri }); + // do nothing more. + data.Cancel(); + return; + } + } + break; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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 NewAzEventGridDomainEventSubscription_CreateExpanded() + { + + } + + /// Performs execution of the command. + protected override void ProcessRecord() + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + if (ShouldProcess($"Call remote 'DomainEventSubscriptionsCreateOrUpdate' operation")) + { + if (true == MyInvocation?.BoundParameters?.ContainsKey("AsJob")) + { + var instance = this.Clone(); + var job = new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token); + } + } + } + } + catch (global::System.AggregateException aggregateException) + { + // unroll the inner exceptions to get the root cause + foreach( var innerException in aggregateException.Flatten().InnerExceptions ) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(innerException,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + } + catch (global::System.Exception exception) when ((exception as System.Management.Automation.PipelineStoppedException)== null || (exception as System.Management.Automation.PipelineStoppedException).InnerException != null) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(exception,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + finally + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletProcessRecordEnd).Wait(); + } + } + + /// Performs execution of the command, working asynchronously if required. + /// + /// A that will be complete when handling of the method is completed. + /// + protected async global::System.Threading.Tasks.Task ProcessRecordAsync() + { + using( NoSynchronizationContext ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await this.Client.DomainEventSubscriptionsCreateOrUpdate(SubscriptionId, ResourceGroupName, DomainName, EventSubscriptionName, _eventSubscriptionInfoBody, onOk, onDefault, this, Pipeline); + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.UndeclaredResponseException urexception) + { + WriteError(new global::System.Management.Automation.ErrorRecord(urexception, urexception.StatusCode.ToString(), global::System.Management.Automation.ErrorCategory.InvalidOperation, new { SubscriptionId=SubscriptionId,ResourceGroupName=ResourceGroupName,DomainName=DomainName,EventSubscriptionName=EventSubscriptionName,body=_eventSubscriptionInfoBody}) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(urexception.Message) { RecommendedAction = urexception.Action } + }); + } + finally + { + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Cancel(); + base.StopProcessing(); + } + + /// + /// a delegate that is called when the remote service returns default (any response code not handled elsewhere). + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onDefault(global::System.Net.Http.HttpResponseMessage responseMessage) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnDefault(responseMessage, ref _returnNow); + // if overrideOnDefault has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // Error Response : default + // Unrecognized Response. Create an error record based on what we have. + var ex = new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.RestException(responseMessage); + WriteError( new global::System.Management.Automation.ErrorRecord(ex, ex.Code, global::System.Management.Automation.ErrorCategory.InvalidOperation, new { SubscriptionId=SubscriptionId, ResourceGroupName=ResourceGroupName, DomainName=DomainName, EventSubscriptionName=EventSubscriptionName, body=_eventSubscriptionInfoBody }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(ex.Message) { RecommendedAction = ex.Action } + }); + } + } + + /// a delegate that is called when the remote service returns 200 (OK). + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as 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.EventGrid.Models.Api20211015Preview.IEventSubscription + WriteObject((await response)); + } + } + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/cmdlets/NewAzEventGridDomainKey_Regenerate.cs b/swaggerci/eventgrid/generated/cmdlets/NewAzEventGridDomainKey_Regenerate.cs new file mode 100644 index 000000000000..2a880de0572c --- /dev/null +++ b/swaggerci/eventgrid/generated/cmdlets/NewAzEventGridDomainKey_Regenerate.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.EventGrid.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Extensions; + using System; + + /// Regenerate a shared access key for a domain. + /// + /// [OpenAPI] RegenerateKey=>POST:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.EventGrid/domains/{domainName}/regenerateKey" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsCommon.New, @"AzEventGridDomainKey_Regenerate", SupportsShouldProcess = true)] + [global::System.Management.Automation.OutputType(typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDomainSharedAccessKeys))] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Description(@"Regenerate a shared access key for a domain.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Generated] + public partial class NewAzEventGridDomainKey_Regenerate : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener + { + /// A unique id generatd for the this cmdlet when it is instantiated. + private string __correlationId = System.Guid.NewGuid().ToString(); + + /// A copy of the Invocation Info (necessary to allow asJob to clone this cmdlet) + private global::System.Management.Automation.InvocationInfo __invocationInfo; + + /// A unique id generatd for the this cmdlet when ProcessRecord() is called. + private string __processRecordId; + + /// + /// The for this operation. + /// + private global::System.Threading.CancellationTokenSource _cancellationTokenSource = new global::System.Threading.CancellationTokenSource(); + + /// Wait for .NET debugger to attach + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Wait for .NET debugger to attach")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.EventGridManagementClient Client => Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.ClientAPI; + + /// + /// The credentials, account, tenant, and subscription used for communication with Azure + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The credentials, account, tenant, and subscription used for communication with Azure.")] + [global::System.Management.Automation.ValidateNotNull] + [global::System.Management.Automation.Alias("AzureRMContext", "AzureCredential")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Azure)] + public global::System.Management.Automation.PSObject DefaultProfile { get; set; } + + /// Backing field for property. + private string _domainName; + + /// Name of the domain. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Name of the domain.")] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Name of the domain.", + SerializedName = @"domainName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Path)] + public string DomainName { get => this._domainName; set => this._domainName = value; } + + /// SendAsync Pipeline Steps to be appended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be appended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[] HttpPipelineAppend { get; set; } + + /// SendAsync Pipeline Steps to be prepended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be prepended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[] HttpPipelinePrepend { get; set; } + + /// Accessor for our copy of the InvocationInfo. + public global::System.Management.Automation.InvocationInfo InvocationInformation { get => __invocationInfo = __invocationInfo ?? this.MyInvocation ; set { __invocationInfo = value; } } + + /// + /// cancellation delegate. Stops the cmdlet when called. + /// + global::System.Action Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Runtime.HttpPipeline Pipeline { get; set; } + + /// The URI for the proxy server to use + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "The URI for the proxy server to use")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Uri Proxy { get; set; } + + /// Credentials for a proxy server to use for the remote call + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Credentials for a proxy server to use for the remote call")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Management.Automation.PSCredential ProxyCredential { get; set; } + + /// Use the default credentials for the proxy + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Use the default credentials for the proxy")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter ProxyUseDefaultCredentials { get; set; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDomainRegenerateKeyRequest _regenerateKeyRequest; + + /// Domain regenerate share access key request. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Domain regenerate share access key request.", ValueFromPipeline = true)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Domain regenerate share access key request.", + SerializedName = @"regenerateKeyRequest", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDomainRegenerateKeyRequest) })] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDomainRegenerateKeyRequest RegenerateKeyRequest { get => this._regenerateKeyRequest; set => this._regenerateKeyRequest = value; } + + /// Backing field for property. + private string _resourceGroupName; + + /// The name of the resource group within the user's subscription. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the resource group within the user's subscription.")] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the resource group within the user's subscription.", + SerializedName = @"resourceGroupName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Path)] + public string ResourceGroupName { get => this._resourceGroupName; set => this._resourceGroupName = value; } + + /// Backing field for property. + private string _subscriptionId; + + /// + /// Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription ID forms part of the + /// URI for every service call. + /// + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.")] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.", + SerializedName = @"subscriptionId", + PossibleTypes = new [] { typeof(string) })] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.DefaultInfo( + Name = @"", + Description =@"", + Script = @"(Get-AzContext).Subscription.Id")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Path)] + public string SubscriptionId { get => this._subscriptionId; set => this._subscriptionId = value; } + + /// + /// overrideOnDefault will be called before the regular onDefault has been processed, allowing customization of what + /// happens on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// /// Determines if the rest of the onDefault method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnDefault(global::System.Net.Http.HttpResponseMessage responseMessage, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnOk will be called before the regular onOk has been processed, allowing customization of what happens + /// on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// 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() + { + var telemetryId = Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.GetTelemetryId.Invoke(); + if (telemetryId != "" && telemetryId != "internal") + { + __correlationId = telemetryId; + } + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + + } + + /// Handles/Dispatches events during the call to the REST service. + /// The message id + /// The message cancellation token. When this call is cancelled, this should be true + /// Detailed message data for the message event. + /// + /// A that will be complete when handling of the message is completed. + /// + async global::System.Threading.Tasks.Task Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener.Signal(string id, global::System.Threading.CancellationToken token, global::System.Func messageData) + { + using( NoSynchronizationContext ) + { + if (token.IsCancellationRequested) + { + return ; + } + + switch ( id ) + { + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Information: + { + var data = messageData(); + WriteInformation(data.Message, new string[]{}); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Error: + { + WriteError(new global::System.Management.Automation.ErrorRecord( new global::System.Exception(messageData().Message), string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null ) ); + return ; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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 NewAzEventGridDomainKey_Regenerate() + { + + } + + /// Performs execution of the command. + protected override void ProcessRecord() + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + if (ShouldProcess($"Call remote 'DomainsRegenerateKey' operation")) + { + using( var asyncCommandRuntime = new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token); + } + } + } + catch (global::System.AggregateException aggregateException) + { + // unroll the inner exceptions to get the root cause + foreach( var innerException in aggregateException.Flatten().InnerExceptions ) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(innerException,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + } + catch (global::System.Exception exception) when ((exception as System.Management.Automation.PipelineStoppedException)== null || (exception as System.Management.Automation.PipelineStoppedException).InnerException != null) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(exception,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + finally + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletProcessRecordEnd).Wait(); + } + } + + /// Performs execution of the command, working asynchronously if required. + /// + /// A that will be complete when handling of the method is completed. + /// + protected async global::System.Threading.Tasks.Task ProcessRecordAsync() + { + using( NoSynchronizationContext ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await this.Client.DomainsRegenerateKey(SubscriptionId, ResourceGroupName, DomainName, RegenerateKeyRequest, onOk, onDefault, this, Pipeline); + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.UndeclaredResponseException urexception) + { + WriteError(new global::System.Management.Automation.ErrorRecord(urexception, urexception.StatusCode.ToString(), global::System.Management.Automation.ErrorCategory.InvalidOperation, new { SubscriptionId=SubscriptionId,ResourceGroupName=ResourceGroupName,DomainName=DomainName,body=RegenerateKeyRequest}) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(urexception.Message) { RecommendedAction = urexception.Action } + }); + } + finally + { + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Cancel(); + base.StopProcessing(); + } + + /// + /// a delegate that is called when the remote service returns default (any response code not handled elsewhere). + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onDefault(global::System.Net.Http.HttpResponseMessage responseMessage) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnDefault(responseMessage, ref _returnNow); + // if overrideOnDefault has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // Error Response : default + // Unrecognized Response. Create an error record based on what we have. + var ex = new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.RestException(responseMessage); + WriteError( new global::System.Management.Automation.ErrorRecord(ex, ex.Code, global::System.Management.Automation.ErrorCategory.InvalidOperation, new { SubscriptionId=SubscriptionId, ResourceGroupName=ResourceGroupName, DomainName=DomainName, body=RegenerateKeyRequest }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(ex.Message) { RecommendedAction = ex.Action } + }); + } + } + + /// a delegate that is called when the remote service returns 200 (OK). + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as 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.EventGrid.Models.Api20211015Preview.IDomainSharedAccessKeys + WriteObject((await response)); + } + } + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/cmdlets/NewAzEventGridDomainKey_RegenerateExpanded.cs b/swaggerci/eventgrid/generated/cmdlets/NewAzEventGridDomainKey_RegenerateExpanded.cs new file mode 100644 index 000000000000..b6de462ce5b6 --- /dev/null +++ b/swaggerci/eventgrid/generated/cmdlets/NewAzEventGridDomainKey_RegenerateExpanded.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.EventGrid.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Extensions; + using System; + + /// Regenerate a shared access key for a domain. + /// + /// [OpenAPI] RegenerateKey=>POST:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.EventGrid/domains/{domainName}/regenerateKey" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsCommon.New, @"AzEventGridDomainKey_RegenerateExpanded", SupportsShouldProcess = true)] + [global::System.Management.Automation.OutputType(typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDomainSharedAccessKeys))] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Description(@"Regenerate a shared access key for a domain.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Generated] + public partial class NewAzEventGridDomainKey_RegenerateExpanded : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener + { + /// A unique id generatd for the this cmdlet when it is instantiated. + private string __correlationId = System.Guid.NewGuid().ToString(); + + /// A copy of the Invocation Info (necessary to allow asJob to clone this cmdlet) + private global::System.Management.Automation.InvocationInfo __invocationInfo; + + /// A unique id generatd for the this cmdlet when ProcessRecord() is called. + private string __processRecordId; + + /// + /// The for this operation. + /// + private global::System.Threading.CancellationTokenSource _cancellationTokenSource = new global::System.Threading.CancellationTokenSource(); + + /// Domain regenerate share access key request. + private Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDomainRegenerateKeyRequest _regenerateKeyRequestBody = new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.DomainRegenerateKeyRequest(); + + /// Wait for .NET debugger to attach + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Wait for .NET debugger to attach")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.EventGridManagementClient Client => Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.ClientAPI; + + /// + /// The credentials, account, tenant, and subscription used for communication with Azure + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The credentials, account, tenant, and subscription used for communication with Azure.")] + [global::System.Management.Automation.ValidateNotNull] + [global::System.Management.Automation.Alias("AzureRMContext", "AzureCredential")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Azure)] + public global::System.Management.Automation.PSObject DefaultProfile { get; set; } + + /// Backing field for property. + private string _domainName; + + /// Name of the domain. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Name of the domain.")] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Name of the domain.", + SerializedName = @"domainName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Path)] + public string DomainName { get => this._domainName; set => this._domainName = value; } + + /// SendAsync Pipeline Steps to be appended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be appended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[] HttpPipelineAppend { get; set; } + + /// SendAsync Pipeline Steps to be prepended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be prepended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[] HttpPipelinePrepend { get; set; } + + /// Accessor for our copy of the InvocationInfo. + public global::System.Management.Automation.InvocationInfo InvocationInformation { get => __invocationInfo = __invocationInfo ?? this.MyInvocation ; set { __invocationInfo = value; } } + + /// Key name to regenerate key1 or key2. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Key name to regenerate key1 or key2.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Key name to regenerate key1 or key2.", + SerializedName = @"keyName", + PossibleTypes = new [] { typeof(string) })] + public string KeyName { get => _regenerateKeyRequestBody.KeyName ?? null; set => _regenerateKeyRequestBody.KeyName = value; } + + /// + /// cancellation delegate. Stops the cmdlet when called. + /// + global::System.Action Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Runtime.HttpPipeline Pipeline { get; set; } + + /// The URI for the proxy server to use + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "The URI for the proxy server to use")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Uri Proxy { get; set; } + + /// Credentials for a proxy server to use for the remote call + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Credentials for a proxy server to use for the remote call")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Management.Automation.PSCredential ProxyCredential { get; set; } + + /// Use the default credentials for the proxy + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Use the default credentials for the proxy")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter ProxyUseDefaultCredentials { get; set; } + + /// Backing field for property. + private string _resourceGroupName; + + /// The name of the resource group within the user's subscription. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the resource group within the user's subscription.")] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the resource group within the user's subscription.", + SerializedName = @"resourceGroupName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Path)] + public string ResourceGroupName { get => this._resourceGroupName; set => this._resourceGroupName = value; } + + /// Backing field for property. + private string _subscriptionId; + + /// + /// Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription ID forms part of the + /// URI for every service call. + /// + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.")] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.", + SerializedName = @"subscriptionId", + PossibleTypes = new [] { typeof(string) })] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.DefaultInfo( + Name = @"", + Description =@"", + Script = @"(Get-AzContext).Subscription.Id")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Path)] + public string SubscriptionId { get => this._subscriptionId; set => this._subscriptionId = value; } + + /// + /// overrideOnDefault will be called before the regular onDefault has been processed, allowing customization of what + /// happens on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// /// Determines if the rest of the onDefault method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnDefault(global::System.Net.Http.HttpResponseMessage responseMessage, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnOk will be called before the regular onOk has been processed, allowing customization of what happens + /// on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// 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() + { + var telemetryId = Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.GetTelemetryId.Invoke(); + if (telemetryId != "" && telemetryId != "internal") + { + __correlationId = telemetryId; + } + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + + } + + /// Handles/Dispatches events during the call to the REST service. + /// The message id + /// The message cancellation token. When this call is cancelled, this should be true + /// Detailed message data for the message event. + /// + /// A that will be complete when handling of the message is completed. + /// + async global::System.Threading.Tasks.Task Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener.Signal(string id, global::System.Threading.CancellationToken token, global::System.Func messageData) + { + using( NoSynchronizationContext ) + { + if (token.IsCancellationRequested) + { + return ; + } + + switch ( id ) + { + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Information: + { + var data = messageData(); + WriteInformation(data.Message, new string[]{}); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Error: + { + WriteError(new global::System.Management.Automation.ErrorRecord( new global::System.Exception(messageData().Message), string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null ) ); + return ; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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 NewAzEventGridDomainKey_RegenerateExpanded() + { + + } + + /// Performs execution of the command. + protected override void ProcessRecord() + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + if (ShouldProcess($"Call remote 'DomainsRegenerateKey' operation")) + { + using( var asyncCommandRuntime = new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token); + } + } + } + catch (global::System.AggregateException aggregateException) + { + // unroll the inner exceptions to get the root cause + foreach( var innerException in aggregateException.Flatten().InnerExceptions ) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(innerException,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + } + catch (global::System.Exception exception) when ((exception as System.Management.Automation.PipelineStoppedException)== null || (exception as System.Management.Automation.PipelineStoppedException).InnerException != null) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(exception,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + finally + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletProcessRecordEnd).Wait(); + } + } + + /// Performs execution of the command, working asynchronously if required. + /// + /// A that will be complete when handling of the method is completed. + /// + protected async global::System.Threading.Tasks.Task ProcessRecordAsync() + { + using( NoSynchronizationContext ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await this.Client.DomainsRegenerateKey(SubscriptionId, ResourceGroupName, DomainName, _regenerateKeyRequestBody, onOk, onDefault, this, Pipeline); + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.UndeclaredResponseException urexception) + { + WriteError(new global::System.Management.Automation.ErrorRecord(urexception, urexception.StatusCode.ToString(), global::System.Management.Automation.ErrorCategory.InvalidOperation, new { SubscriptionId=SubscriptionId,ResourceGroupName=ResourceGroupName,DomainName=DomainName,body=_regenerateKeyRequestBody}) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(urexception.Message) { RecommendedAction = urexception.Action } + }); + } + finally + { + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Cancel(); + base.StopProcessing(); + } + + /// + /// a delegate that is called when the remote service returns default (any response code not handled elsewhere). + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onDefault(global::System.Net.Http.HttpResponseMessage responseMessage) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnDefault(responseMessage, ref _returnNow); + // if overrideOnDefault has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // Error Response : default + // Unrecognized Response. Create an error record based on what we have. + var ex = new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.RestException(responseMessage); + WriteError( new global::System.Management.Automation.ErrorRecord(ex, ex.Code, global::System.Management.Automation.ErrorCategory.InvalidOperation, new { SubscriptionId=SubscriptionId, ResourceGroupName=ResourceGroupName, DomainName=DomainName, body=_regenerateKeyRequestBody }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(ex.Message) { RecommendedAction = ex.Action } + }); + } + } + + /// a delegate that is called when the remote service returns 200 (OK). + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as 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.EventGrid.Models.Api20211015Preview.IDomainSharedAccessKeys + WriteObject((await response)); + } + } + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/cmdlets/NewAzEventGridDomainKey_RegenerateViaIdentity.cs b/swaggerci/eventgrid/generated/cmdlets/NewAzEventGridDomainKey_RegenerateViaIdentity.cs new file mode 100644 index 000000000000..9568feff7dd5 --- /dev/null +++ b/swaggerci/eventgrid/generated/cmdlets/NewAzEventGridDomainKey_RegenerateViaIdentity.cs @@ -0,0 +1,389 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Extensions; + using System; + + /// Regenerate a shared access key for a domain. + /// + /// [OpenAPI] RegenerateKey=>POST:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.EventGrid/domains/{domainName}/regenerateKey" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsCommon.New, @"AzEventGridDomainKey_RegenerateViaIdentity", SupportsShouldProcess = true)] + [global::System.Management.Automation.OutputType(typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDomainSharedAccessKeys))] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Description(@"Regenerate a shared access key for a domain.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Generated] + public partial class NewAzEventGridDomainKey_RegenerateViaIdentity : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener + { + /// A unique id generatd for the this cmdlet when it is instantiated. + private string __correlationId = System.Guid.NewGuid().ToString(); + + /// A copy of the Invocation Info (necessary to allow asJob to clone this cmdlet) + private global::System.Management.Automation.InvocationInfo __invocationInfo; + + /// A unique id generatd for the this cmdlet when ProcessRecord() is called. + private string __processRecordId; + + /// + /// The for this operation. + /// + private global::System.Threading.CancellationTokenSource _cancellationTokenSource = new global::System.Threading.CancellationTokenSource(); + + /// Wait for .NET debugger to attach + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Wait for .NET debugger to attach")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.EventGridManagementClient Client => Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.ClientAPI; + + /// + /// The credentials, account, tenant, and subscription used for communication with Azure + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The credentials, account, tenant, and subscription used for communication with Azure.")] + [global::System.Management.Automation.ValidateNotNull] + [global::System.Management.Automation.Alias("AzureRMContext", "AzureCredential")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Azure)] + public global::System.Management.Automation.PSObject DefaultProfile { get; set; } + + /// SendAsync Pipeline Steps to be appended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be appended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[] HttpPipelineAppend { get; set; } + + /// SendAsync Pipeline Steps to be prepended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be prepended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[] HttpPipelinePrepend { get; set; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.IEventGridIdentity _inputObject; + + /// Identity Parameter + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Identity Parameter", ValueFromPipeline = true)] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Path)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.IEventGridIdentity InputObject { get => this._inputObject; set => this._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.EventGrid.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Runtime.HttpPipeline Pipeline { get; set; } + + /// The URI for the proxy server to use + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "The URI for the proxy server to use")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Uri Proxy { get; set; } + + /// Credentials for a proxy server to use for the remote call + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Credentials for a proxy server to use for the remote call")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Management.Automation.PSCredential ProxyCredential { get; set; } + + /// Use the default credentials for the proxy + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Use the default credentials for the proxy")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter ProxyUseDefaultCredentials { get; set; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDomainRegenerateKeyRequest _regenerateKeyRequest; + + /// Domain regenerate share access key request. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Domain regenerate share access key request.", ValueFromPipeline = true)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Domain regenerate share access key request.", + SerializedName = @"regenerateKeyRequest", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDomainRegenerateKeyRequest) })] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDomainRegenerateKeyRequest RegenerateKeyRequest { get => this._regenerateKeyRequest; set => this._regenerateKeyRequest = value; } + + /// + /// overrideOnDefault will be called before the regular onDefault has been processed, allowing customization of what + /// happens on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// /// Determines if the rest of the onDefault method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnDefault(global::System.Net.Http.HttpResponseMessage responseMessage, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnOk will be called before the regular onOk has been processed, allowing customization of what happens + /// on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// 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() + { + var telemetryId = Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.GetTelemetryId.Invoke(); + if (telemetryId != "" && telemetryId != "internal") + { + __correlationId = telemetryId; + } + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + + } + + /// Handles/Dispatches events during the call to the REST service. + /// The message id + /// The message cancellation token. When this call is cancelled, this should be true + /// Detailed message data for the message event. + /// + /// A that will be complete when handling of the message is completed. + /// + async global::System.Threading.Tasks.Task Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener.Signal(string id, global::System.Threading.CancellationToken token, global::System.Func messageData) + { + using( NoSynchronizationContext ) + { + if (token.IsCancellationRequested) + { + return ; + } + + switch ( id ) + { + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Information: + { + var data = messageData(); + WriteInformation(data.Message, new string[]{}); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Error: + { + WriteError(new global::System.Management.Automation.ErrorRecord( new global::System.Exception(messageData().Message), string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null ) ); + return ; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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 NewAzEventGridDomainKey_RegenerateViaIdentity() + { + + } + + /// Performs execution of the command. + protected override void ProcessRecord() + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + if (ShouldProcess($"Call remote 'DomainsRegenerateKey' operation")) + { + using( var asyncCommandRuntime = new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token); + } + } + } + catch (global::System.AggregateException aggregateException) + { + // unroll the inner exceptions to get the root cause + foreach( var innerException in aggregateException.Flatten().InnerExceptions ) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(innerException,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + } + catch (global::System.Exception exception) when ((exception as System.Management.Automation.PipelineStoppedException)== null || (exception as System.Management.Automation.PipelineStoppedException).InnerException != null) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(exception,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + finally + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletProcessRecordEnd).Wait(); + } + } + + /// Performs execution of the command, working asynchronously if required. + /// + /// A that will be complete when handling of the method is completed. + /// + protected async global::System.Threading.Tasks.Task ProcessRecordAsync() + { + using( NoSynchronizationContext ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + if (InputObject?.Id != null) + { + await this.Client.DomainsRegenerateKeyViaIdentity(InputObject.Id, RegenerateKeyRequest, 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.DomainName) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.DomainName"),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, InputObject) ); + } + await this.Client.DomainsRegenerateKey(InputObject.SubscriptionId ?? null, InputObject.ResourceGroupName ?? null, InputObject.DomainName ?? null, RegenerateKeyRequest, onOk, onDefault, this, Pipeline); + } + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.UndeclaredResponseException urexception) + { + WriteError(new global::System.Management.Automation.ErrorRecord(urexception, urexception.StatusCode.ToString(), global::System.Management.Automation.ErrorCategory.InvalidOperation, new { body=RegenerateKeyRequest}) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(urexception.Message) { RecommendedAction = urexception.Action } + }); + } + finally + { + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Cancel(); + base.StopProcessing(); + } + + /// + /// a delegate that is called when the remote service returns default (any response code not handled elsewhere). + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onDefault(global::System.Net.Http.HttpResponseMessage responseMessage) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnDefault(responseMessage, ref _returnNow); + // if overrideOnDefault has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // Error Response : default + // Unrecognized Response. Create an error record based on what we have. + var ex = new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.RestException(responseMessage); + WriteError( new global::System.Management.Automation.ErrorRecord(ex, ex.Code, global::System.Management.Automation.ErrorCategory.InvalidOperation, new { body=RegenerateKeyRequest }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(ex.Message) { RecommendedAction = ex.Action } + }); + } + } + + /// a delegate that is called when the remote service returns 200 (OK). + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as 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.EventGrid.Models.Api20211015Preview.IDomainSharedAccessKeys + WriteObject((await response)); + } + } + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/cmdlets/NewAzEventGridDomainKey_RegenerateViaIdentityExpanded.cs b/swaggerci/eventgrid/generated/cmdlets/NewAzEventGridDomainKey_RegenerateViaIdentityExpanded.cs new file mode 100644 index 000000000000..cc2bfe291e89 --- /dev/null +++ b/swaggerci/eventgrid/generated/cmdlets/NewAzEventGridDomainKey_RegenerateViaIdentityExpanded.cs @@ -0,0 +1,390 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Extensions; + using System; + + /// Regenerate a shared access key for a domain. + /// + /// [OpenAPI] RegenerateKey=>POST:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.EventGrid/domains/{domainName}/regenerateKey" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsCommon.New, @"AzEventGridDomainKey_RegenerateViaIdentityExpanded", SupportsShouldProcess = true)] + [global::System.Management.Automation.OutputType(typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDomainSharedAccessKeys))] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Description(@"Regenerate a shared access key for a domain.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Generated] + public partial class NewAzEventGridDomainKey_RegenerateViaIdentityExpanded : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener + { + /// A unique id generatd for the this cmdlet when it is instantiated. + private string __correlationId = System.Guid.NewGuid().ToString(); + + /// A copy of the Invocation Info (necessary to allow asJob to clone this cmdlet) + private global::System.Management.Automation.InvocationInfo __invocationInfo; + + /// A unique id generatd for the this cmdlet when ProcessRecord() is called. + private string __processRecordId; + + /// + /// The for this operation. + /// + private global::System.Threading.CancellationTokenSource _cancellationTokenSource = new global::System.Threading.CancellationTokenSource(); + + /// Domain regenerate share access key request. + private Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDomainRegenerateKeyRequest _regenerateKeyRequestBody = new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.DomainRegenerateKeyRequest(); + + /// Wait for .NET debugger to attach + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Wait for .NET debugger to attach")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.EventGridManagementClient Client => Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.ClientAPI; + + /// + /// The credentials, account, tenant, and subscription used for communication with Azure + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The credentials, account, tenant, and subscription used for communication with Azure.")] + [global::System.Management.Automation.ValidateNotNull] + [global::System.Management.Automation.Alias("AzureRMContext", "AzureCredential")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Azure)] + public global::System.Management.Automation.PSObject DefaultProfile { get; set; } + + /// SendAsync Pipeline Steps to be appended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be appended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[] HttpPipelineAppend { get; set; } + + /// SendAsync Pipeline Steps to be prepended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be prepended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[] HttpPipelinePrepend { get; set; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.IEventGridIdentity _inputObject; + + /// Identity Parameter + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Identity Parameter", ValueFromPipeline = true)] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Path)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.IEventGridIdentity InputObject { get => this._inputObject; set => this._inputObject = value; } + + /// Accessor for our copy of the InvocationInfo. + public global::System.Management.Automation.InvocationInfo InvocationInformation { get => __invocationInfo = __invocationInfo ?? this.MyInvocation ; set { __invocationInfo = value; } } + + /// Key name to regenerate key1 or key2. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Key name to regenerate key1 or key2.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Key name to regenerate key1 or key2.", + SerializedName = @"keyName", + PossibleTypes = new [] { typeof(string) })] + public string KeyName { get => _regenerateKeyRequestBody.KeyName ?? null; set => _regenerateKeyRequestBody.KeyName = value; } + + /// + /// cancellation delegate. Stops the cmdlet when called. + /// + global::System.Action Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Runtime.HttpPipeline Pipeline { get; set; } + + /// The URI for the proxy server to use + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "The URI for the proxy server to use")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Uri Proxy { get; set; } + + /// Credentials for a proxy server to use for the remote call + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Credentials for a proxy server to use for the remote call")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Management.Automation.PSCredential ProxyCredential { get; set; } + + /// Use the default credentials for the proxy + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Use the default credentials for the proxy")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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. + /// /// Determines if the rest of the onDefault method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnDefault(global::System.Net.Http.HttpResponseMessage responseMessage, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnOk will be called before the regular onOk has been processed, allowing customization of what happens + /// on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// 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() + { + var telemetryId = Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.GetTelemetryId.Invoke(); + if (telemetryId != "" && telemetryId != "internal") + { + __correlationId = telemetryId; + } + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + + } + + /// Handles/Dispatches events during the call to the REST service. + /// The message id + /// The message cancellation token. When this call is cancelled, this should be true + /// Detailed message data for the message event. + /// + /// A that will be complete when handling of the message is completed. + /// + async global::System.Threading.Tasks.Task Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener.Signal(string id, global::System.Threading.CancellationToken token, global::System.Func messageData) + { + using( NoSynchronizationContext ) + { + if (token.IsCancellationRequested) + { + return ; + } + + switch ( id ) + { + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Information: + { + var data = messageData(); + WriteInformation(data.Message, new string[]{}); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Error: + { + WriteError(new global::System.Management.Automation.ErrorRecord( new global::System.Exception(messageData().Message), string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null ) ); + return ; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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 NewAzEventGridDomainKey_RegenerateViaIdentityExpanded() + { + + } + + /// Performs execution of the command. + protected override void ProcessRecord() + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + if (ShouldProcess($"Call remote 'DomainsRegenerateKey' operation")) + { + using( var asyncCommandRuntime = new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token); + } + } + } + catch (global::System.AggregateException aggregateException) + { + // unroll the inner exceptions to get the root cause + foreach( var innerException in aggregateException.Flatten().InnerExceptions ) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(innerException,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + } + catch (global::System.Exception exception) when ((exception as System.Management.Automation.PipelineStoppedException)== null || (exception as System.Management.Automation.PipelineStoppedException).InnerException != null) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(exception,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + finally + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletProcessRecordEnd).Wait(); + } + } + + /// Performs execution of the command, working asynchronously if required. + /// + /// A that will be complete when handling of the method is completed. + /// + protected async global::System.Threading.Tasks.Task ProcessRecordAsync() + { + using( NoSynchronizationContext ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + if (InputObject?.Id != null) + { + await this.Client.DomainsRegenerateKeyViaIdentity(InputObject.Id, _regenerateKeyRequestBody, 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.DomainName) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.DomainName"),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, InputObject) ); + } + await this.Client.DomainsRegenerateKey(InputObject.SubscriptionId ?? null, InputObject.ResourceGroupName ?? null, InputObject.DomainName ?? null, _regenerateKeyRequestBody, onOk, onDefault, this, Pipeline); + } + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.UndeclaredResponseException urexception) + { + WriteError(new global::System.Management.Automation.ErrorRecord(urexception, urexception.StatusCode.ToString(), global::System.Management.Automation.ErrorCategory.InvalidOperation, new { body=_regenerateKeyRequestBody}) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(urexception.Message) { RecommendedAction = urexception.Action } + }); + } + finally + { + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Cancel(); + base.StopProcessing(); + } + + /// + /// a delegate that is called when the remote service returns default (any response code not handled elsewhere). + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onDefault(global::System.Net.Http.HttpResponseMessage responseMessage) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnDefault(responseMessage, ref _returnNow); + // if overrideOnDefault has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // Error Response : default + // Unrecognized Response. Create an error record based on what we have. + var ex = new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.RestException(responseMessage); + WriteError( new global::System.Management.Automation.ErrorRecord(ex, ex.Code, global::System.Management.Automation.ErrorCategory.InvalidOperation, new { body=_regenerateKeyRequestBody }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(ex.Message) { RecommendedAction = ex.Action } + }); + } + } + + /// a delegate that is called when the remote service returns 200 (OK). + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as 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.EventGrid.Models.Api20211015Preview.IDomainSharedAccessKeys + WriteObject((await response)); + } + } + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/cmdlets/NewAzEventGridDomainTopicEventSubscription_CreateExpanded.cs b/swaggerci/eventgrid/generated/cmdlets/NewAzEventGridDomainTopicEventSubscription_CreateExpanded.cs new file mode 100644 index 000000000000..0e50b05a3bf2 --- /dev/null +++ b/swaggerci/eventgrid/generated/cmdlets/NewAzEventGridDomainTopicEventSubscription_CreateExpanded.cs @@ -0,0 +1,719 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Extensions; + using System; + + /// + /// Asynchronously creates a new event subscription or updates an existing event subscription. + /// + /// + /// [OpenAPI] CreateOrUpdate=>PUT:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.EventGrid/domains/{domainName}/topics/{topicName}/eventSubscriptions/{eventSubscriptionName}" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsCommon.New, @"AzEventGridDomainTopicEventSubscription_CreateExpanded", SupportsShouldProcess = true)] + [global::System.Management.Automation.OutputType(typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscription))] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Description(@"Asynchronously creates a new event subscription or updates an existing event subscription.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Generated] + public partial class NewAzEventGridDomainTopicEventSubscription_CreateExpanded : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener + { + /// A unique id generatd for the this cmdlet when it is instantiated. + private string __correlationId = System.Guid.NewGuid().ToString(); + + /// A copy of the Invocation Info (necessary to allow asJob to clone this cmdlet) + private global::System.Management.Automation.InvocationInfo __invocationInfo; + + /// A unique id generatd for the this cmdlet when ProcessRecord() is called. + private string __processRecordId; + + /// + /// The for this operation. + /// + private global::System.Threading.CancellationTokenSource _cancellationTokenSource = new global::System.Threading.CancellationTokenSource(); + + /// Event Subscription + private Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscription _eventSubscriptionInfoBody = new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.EventSubscription(); + + /// 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.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.EventGridManagementClient Client => Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.ClientAPI; + + /// + /// The type of managed identity used. The type 'SystemAssigned, UserAssigned' includes both an implicitly created identity + /// and a set of user-assigned identities. The type 'None' will remove any identity. + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The type of managed identity used. The type 'SystemAssigned, UserAssigned' includes both an implicitly created identity and a set of user-assigned identities. The type 'None' will remove any identity.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The type of managed identity used. The type 'SystemAssigned, UserAssigned' includes both an implicitly created identity and a set of user-assigned identities. The type 'None' will remove any identity.", + SerializedName = @"type", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EventSubscriptionIdentityType) })] + [global::System.Management.Automation.ArgumentCompleter(typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EventSubscriptionIdentityType))] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EventSubscriptionIdentityType DeadLetterWithResourceIdentityType { get => _eventSubscriptionInfoBody.DeadLetterWithResourceIdentityType ?? ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EventSubscriptionIdentityType)""); set => _eventSubscriptionInfoBody.DeadLetterWithResourceIdentityType = value; } + + /// The user identity associated with the resource. + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The user identity associated with the resource.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The user identity associated with the resource.", + SerializedName = @"userAssignedIdentity", + PossibleTypes = new [] { typeof(string) })] + public string DeadLetterWithResourceIdentityUserAssignedIdentity { get => _eventSubscriptionInfoBody.DeadLetterWithResourceIdentityUserAssignedIdentity ?? null; set => _eventSubscriptionInfoBody.DeadLetterWithResourceIdentityUserAssignedIdentity = 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.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Azure)] + public global::System.Management.Automation.PSObject DefaultProfile { get; set; } + + /// Type of the endpoint for the event subscription destination. + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Type of the endpoint for the event subscription destination.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Type of the endpoint for the event subscription destination.", + SerializedName = @"endpointType", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EndpointType) })] + [global::System.Management.Automation.ArgumentCompleter(typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EndpointType))] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EndpointType DeliveryWithResourceIdentityDestinationEndpointType { get => _eventSubscriptionInfoBody.DeliveryWithResourceIdentityDestinationEndpointType ?? ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EndpointType)""); set => _eventSubscriptionInfoBody.DeliveryWithResourceIdentityDestinationEndpointType = value; } + + /// + /// The type of managed identity used. The type 'SystemAssigned, UserAssigned' includes both an implicitly created identity + /// and a set of user-assigned identities. The type 'None' will remove any identity. + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The type of managed identity used. The type 'SystemAssigned, UserAssigned' includes both an implicitly created identity and a set of user-assigned identities. The type 'None' will remove any identity.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The type of managed identity used. The type 'SystemAssigned, UserAssigned' includes both an implicitly created identity and a set of user-assigned identities. The type 'None' will remove any identity.", + SerializedName = @"type", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EventSubscriptionIdentityType) })] + [global::System.Management.Automation.ArgumentCompleter(typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EventSubscriptionIdentityType))] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EventSubscriptionIdentityType DeliveryWithResourceIdentityType { get => _eventSubscriptionInfoBody.DeliveryWithResourceIdentityType ?? ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EventSubscriptionIdentityType)""); set => _eventSubscriptionInfoBody.DeliveryWithResourceIdentityType = value; } + + /// The user identity associated with the resource. + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The user identity associated with the resource.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The user identity associated with the resource.", + SerializedName = @"userAssignedIdentity", + PossibleTypes = new [] { typeof(string) })] + public string DeliveryWithResourceIdentityUserAssignedIdentity { get => _eventSubscriptionInfoBody.DeliveryWithResourceIdentityUserAssignedIdentity ?? null; set => _eventSubscriptionInfoBody.DeliveryWithResourceIdentityUserAssignedIdentity = value; } + + /// Backing field for property. + private string _domainName; + + /// Name of the top level domain. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Name of the top level domain.")] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Name of the top level domain.", + SerializedName = @"domainName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Path)] + public string DomainName { get => this._domainName; set => this._domainName = value; } + + /// Type of the endpoint for the event subscription destination. + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Type of the endpoint for the event subscription destination.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Type of the endpoint for the event subscription destination.", + SerializedName = @"endpointType", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EndpointType) })] + [global::System.Management.Automation.ArgumentCompleter(typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EndpointType))] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EndpointType EndpointType { get => _eventSubscriptionInfoBody.EndpointType ?? ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EndpointType)""); set => _eventSubscriptionInfoBody.EndpointType = value; } + + /// The event delivery schema for the event subscription. + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The event delivery schema for the event subscription.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The event delivery schema for the event subscription.", + SerializedName = @"eventDeliverySchema", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EventDeliverySchema) })] + [global::System.Management.Automation.ArgumentCompleter(typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EventDeliverySchema))] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EventDeliverySchema EventDeliverySchema { get => _eventSubscriptionInfoBody.EventDeliverySchema ?? ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EventDeliverySchema)""); set => _eventSubscriptionInfoBody.EventDeliverySchema = value; } + + /// Backing field for property. + private string _eventSubscriptionName; + + /// + /// Name of the event subscription to be created. Event subscription names must be between 3 and 100 characters in length + /// and use alphanumeric letters only. + /// + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Name of the event subscription to be created. Event subscription names must be between 3 and 100 characters in length and use alphanumeric letters only.")] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Name of the event subscription to be created. Event subscription names must be between 3 and 100 characters in length and use alphanumeric letters only.", + SerializedName = @"eventSubscriptionName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Path)] + public string EventSubscriptionName { get => this._eventSubscriptionName; set => this._eventSubscriptionName = value; } + + /// Expiration time of the event subscription. + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Expiration time of the event subscription.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Expiration time of the event subscription.", + SerializedName = @"expirationTimeUtc", + PossibleTypes = new [] { typeof(global::System.DateTime) })] + public global::System.DateTime ExpirationTimeUtc { get => _eventSubscriptionInfoBody.ExpirationTimeUtc ?? default(global::System.DateTime); set => _eventSubscriptionInfoBody.ExpirationTimeUtc = value; } + + /// An array of advanced filters that are used for filtering event subscriptions. + [global::System.Management.Automation.AllowEmptyCollection] + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "An array of advanced filters that are used for filtering event subscriptions.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"An array of advanced filters that are used for filtering event subscriptions.", + SerializedName = @"advancedFilters", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IAdvancedFilter) })] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IAdvancedFilter[] FilterAdvancedFilter { get => _eventSubscriptionInfoBody.FilterAdvancedFilter ?? null /* arrayOf */; set => _eventSubscriptionInfoBody.FilterAdvancedFilter = value; } + + /// + /// Allows advanced filters to be evaluated against an array of values instead of expecting a singular value. + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Allows advanced filters to be evaluated against an array of values instead of expecting a singular value.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Allows advanced filters to be evaluated against an array of values instead of expecting a singular value.", + SerializedName = @"enableAdvancedFilteringOnArrays", + PossibleTypes = new [] { typeof(global::System.Management.Automation.SwitchParameter) })] + public global::System.Management.Automation.SwitchParameter FilterEnableAdvancedFilteringOnArray { get => _eventSubscriptionInfoBody.FilterEnableAdvancedFilteringOnArray ?? default(global::System.Management.Automation.SwitchParameter); set => _eventSubscriptionInfoBody.FilterEnableAdvancedFilteringOnArray = value; } + + /// + /// A list of applicable event types that need to be part of the event subscription. If it is desired to subscribe to all + /// default event types, set the IncludedEventTypes to null. + /// + [global::System.Management.Automation.AllowEmptyCollection] + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "A list of applicable event types that need to be part of the event subscription. If it is desired to subscribe to all default event types, set the IncludedEventTypes to null.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"A list of applicable event types that need to be part of the event subscription. If it is desired to subscribe to all default event types, set the IncludedEventTypes to null.", + SerializedName = @"includedEventTypes", + PossibleTypes = new [] { typeof(string) })] + public string[] FilterIncludedEventType { get => _eventSubscriptionInfoBody.FilterIncludedEventType ?? null /* arrayOf */; set => _eventSubscriptionInfoBody.FilterIncludedEventType = value; } + + /// + /// Specifies if the SubjectBeginsWith and SubjectEndsWith properties of the filtershould be compared in a case sensitive + /// manner. + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Specifies if the SubjectBeginsWith and SubjectEndsWith properties of the filtershould be compared in a case sensitive manner.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Specifies if the SubjectBeginsWith and SubjectEndsWith properties of the filtershould be compared in a case sensitive manner.", + SerializedName = @"isSubjectCaseSensitive", + PossibleTypes = new [] { typeof(global::System.Management.Automation.SwitchParameter) })] + public global::System.Management.Automation.SwitchParameter FilterIsSubjectCaseSensitive { get => _eventSubscriptionInfoBody.FilterIsSubjectCaseSensitive ?? default(global::System.Management.Automation.SwitchParameter); set => _eventSubscriptionInfoBody.FilterIsSubjectCaseSensitive = value; } + + /// + /// An optional string to filter events for an event subscription based on a resource path prefix.The format of this depends + /// on the publisher of the events.Wildcard characters are not supported in this path. + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "An optional string to filter events for an event subscription based on a resource path prefix.The format of this depends on the publisher of the events.Wildcard characters are not supported in this path.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"An optional string to filter events for an event subscription based on a resource path prefix.The format of this depends on the publisher of the events.Wildcard characters are not supported in this path.", + SerializedName = @"subjectBeginsWith", + PossibleTypes = new [] { typeof(string) })] + public string FilterSubjectBeginsWith { get => _eventSubscriptionInfoBody.FilterSubjectBeginsWith ?? null; set => _eventSubscriptionInfoBody.FilterSubjectBeginsWith = value; } + + /// + /// An optional string to filter events for an event subscription based on a resource path suffix.Wildcard characters are + /// not supported in this path. + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "An optional string to filter events for an event subscription based on a resource path suffix.Wildcard characters are not supported in this path.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"An optional string to filter events for an event subscription based on a resource path suffix.Wildcard characters are not supported in this path.", + SerializedName = @"subjectEndsWith", + PossibleTypes = new [] { typeof(string) })] + public string FilterSubjectEndsWith { get => _eventSubscriptionInfoBody.FilterSubjectEndsWith ?? null; set => _eventSubscriptionInfoBody.FilterSubjectEndsWith = 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.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[] HttpPipelineAppend { get; set; } + + /// SendAsync Pipeline Steps to be prepended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be prepended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[] HttpPipelinePrepend { get; set; } + + /// Accessor for our copy of the InvocationInfo. + public global::System.Management.Automation.InvocationInfo InvocationInformation { get => __invocationInfo = __invocationInfo ?? this.MyInvocation ; set { __invocationInfo = value; } } + + /// List of user defined labels. + [global::System.Management.Automation.AllowEmptyCollection] + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "List of user defined labels.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"List of user defined labels.", + SerializedName = @"labels", + PossibleTypes = new [] { typeof(string) })] + public string[] Label { get => _eventSubscriptionInfoBody.Label ?? null /* arrayOf */; set => _eventSubscriptionInfoBody.Label = value; } + + /// + /// cancellation delegate. Stops the cmdlet when called. + /// + global::System.Action Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter NoWait { get; set; } + + /// + /// When specified, forces the cmdlet return a 'bool' given that there isn't a return type by default. + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Returns true when the command succeeds")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Runtime.HttpPipeline Pipeline { get; set; } + + /// The URI for the proxy server to use + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "The URI for the proxy server to use")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Uri Proxy { get; set; } + + /// Credentials for a proxy server to use for the remote call + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Credentials for a proxy server to use for the remote call")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Management.Automation.PSCredential ProxyCredential { get; set; } + + /// Use the default credentials for the proxy + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Use the default credentials for the proxy")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter ProxyUseDefaultCredentials { get; set; } + + /// Backing field for property. + private string _resourceGroupName; + + /// The name of the resource group within the user's subscription. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the resource group within the user's subscription.")] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the resource group within the user's subscription.", + SerializedName = @"resourceGroupName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Path)] + public string ResourceGroupName { get => this._resourceGroupName; set => this._resourceGroupName = value; } + + /// Time To Live (in minutes) for events. + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Time To Live (in minutes) for events.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Time To Live (in minutes) for events.", + SerializedName = @"eventTimeToLiveInMinutes", + PossibleTypes = new [] { typeof(int) })] + public int RetryPolicyEventTimeToLiveInMinute { get => _eventSubscriptionInfoBody.RetryPolicyEventTimeToLiveInMinute ?? default(int); set => _eventSubscriptionInfoBody.RetryPolicyEventTimeToLiveInMinute = value; } + + /// Maximum number of delivery retry attempts for events. + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Maximum number of delivery retry attempts for events.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Maximum number of delivery retry attempts for events.", + SerializedName = @"maxDeliveryAttempts", + PossibleTypes = new [] { typeof(int) })] + public int RetryPolicyMaxDeliveryAttempt { get => _eventSubscriptionInfoBody.RetryPolicyMaxDeliveryAttempt ?? default(int); set => _eventSubscriptionInfoBody.RetryPolicyMaxDeliveryAttempt = value; } + + /// Backing field for property. + private string _subscriptionId; + + /// + /// Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription ID forms part of the + /// URI for every service call. + /// + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.")] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.", + SerializedName = @"subscriptionId", + PossibleTypes = new [] { typeof(string) })] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.DefaultInfo( + Name = @"", + Description =@"", + Script = @"(Get-AzContext).Subscription.Id")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Path)] + public string SubscriptionId { get => this._subscriptionId; set => this._subscriptionId = value; } + + /// Backing field for property. + private string _topicName; + + /// Name of the domain topic. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Name of the domain topic.")] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Name of the domain topic.", + SerializedName = @"topicName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Path)] + public string TopicName { get => this._topicName; set => this._topicName = value; } + + /// + /// overrideOnDefault will be called before the regular onDefault has been processed, allowing customization of what + /// happens on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// /// Determines if the rest of the onDefault method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnDefault(global::System.Net.Http.HttpResponseMessage responseMessage, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnOk will be called before the regular onOk has been processed, allowing customization of what happens + /// on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// 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() + { + var telemetryId = Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.GetTelemetryId.Invoke(); + if (telemetryId != "" && telemetryId != "internal") + { + __correlationId = telemetryId; + } + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Creates a duplicate instance of this cmdlet (via JSON serialization). + /// + /// a duplicate instance of NewAzEventGridDomainTopicEventSubscription_CreateExpanded + /// + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Cmdlets.NewAzEventGridDomainTopicEventSubscription_CreateExpanded Clone() + { + var clone = new NewAzEventGridDomainTopicEventSubscription_CreateExpanded(); + clone.__correlationId = this.__correlationId; + clone.__processRecordId = this.__processRecordId; + clone.DefaultProfile = this.DefaultProfile; + clone.InvocationInformation = this.InvocationInformation; + clone.Proxy = this.Proxy; + clone.Pipeline = this.Pipeline; + clone.AsJob = this.AsJob; + clone.Break = this.Break; + clone.ProxyCredential = this.ProxyCredential; + clone.ProxyUseDefaultCredentials = this.ProxyUseDefaultCredentials; + clone.HttpPipelinePrepend = this.HttpPipelinePrepend; + clone.HttpPipelineAppend = this.HttpPipelineAppend; + clone._eventSubscriptionInfoBody = this._eventSubscriptionInfoBody; + clone.SubscriptionId = this.SubscriptionId; + clone.ResourceGroupName = this.ResourceGroupName; + clone.DomainName = this.DomainName; + clone.TopicName = this.TopicName; + clone.EventSubscriptionName = this.EventSubscriptionName; + return clone; + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + + } + + /// Handles/Dispatches events during the call to the REST service. + /// The message id + /// The message cancellation token. When this call is cancelled, this should be true + /// Detailed message data for the message event. + /// + /// A that will be complete when handling of the message is completed. + /// + async global::System.Threading.Tasks.Task Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener.Signal(string id, global::System.Threading.CancellationToken token, global::System.Func messageData) + { + using( NoSynchronizationContext ) + { + if (token.IsCancellationRequested) + { + return ; + } + + switch ( id ) + { + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.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.EventGrid.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.EventGrid.Runtime.PowerShell.AsyncOperationResponse { Target = uri }); + // do nothing more. + data.Cancel(); + return; + } + } + break; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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 NewAzEventGridDomainTopicEventSubscription_CreateExpanded() + { + + } + + /// Performs execution of the command. + protected override void ProcessRecord() + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + if (ShouldProcess($"Call remote 'DomainTopicEventSubscriptionsCreateOrUpdate' operation")) + { + if (true == MyInvocation?.BoundParameters?.ContainsKey("AsJob")) + { + var instance = this.Clone(); + var job = new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token); + } + } + } + } + catch (global::System.AggregateException aggregateException) + { + // unroll the inner exceptions to get the root cause + foreach( var innerException in aggregateException.Flatten().InnerExceptions ) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(innerException,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + } + catch (global::System.Exception exception) when ((exception as System.Management.Automation.PipelineStoppedException)== null || (exception as System.Management.Automation.PipelineStoppedException).InnerException != null) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(exception,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + finally + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletProcessRecordEnd).Wait(); + } + } + + /// Performs execution of the command, working asynchronously if required. + /// + /// A that will be complete when handling of the method is completed. + /// + protected async global::System.Threading.Tasks.Task ProcessRecordAsync() + { + using( NoSynchronizationContext ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await this.Client.DomainTopicEventSubscriptionsCreateOrUpdate(SubscriptionId, ResourceGroupName, DomainName, TopicName, EventSubscriptionName, _eventSubscriptionInfoBody, onOk, onDefault, this, Pipeline); + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.UndeclaredResponseException urexception) + { + WriteError(new global::System.Management.Automation.ErrorRecord(urexception, urexception.StatusCode.ToString(), global::System.Management.Automation.ErrorCategory.InvalidOperation, new { SubscriptionId=SubscriptionId,ResourceGroupName=ResourceGroupName,DomainName=DomainName,TopicName=TopicName,EventSubscriptionName=EventSubscriptionName,body=_eventSubscriptionInfoBody}) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(urexception.Message) { RecommendedAction = urexception.Action } + }); + } + finally + { + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Cancel(); + base.StopProcessing(); + } + + /// + /// a delegate that is called when the remote service returns default (any response code not handled elsewhere). + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onDefault(global::System.Net.Http.HttpResponseMessage responseMessage) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnDefault(responseMessage, ref _returnNow); + // if overrideOnDefault has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // Error Response : default + // Unrecognized Response. Create an error record based on what we have. + var ex = new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.RestException(responseMessage); + WriteError( new global::System.Management.Automation.ErrorRecord(ex, ex.Code, global::System.Management.Automation.ErrorCategory.InvalidOperation, new { SubscriptionId=SubscriptionId, ResourceGroupName=ResourceGroupName, DomainName=DomainName, TopicName=TopicName, EventSubscriptionName=EventSubscriptionName, body=_eventSubscriptionInfoBody }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(ex.Message) { RecommendedAction = ex.Action } + }); + } + } + + /// a delegate that is called when the remote service returns 200 (OK). + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as 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.EventGrid.Models.Api20211015Preview.IEventSubscription + WriteObject((await response)); + } + } + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/cmdlets/NewAzEventGridDomain_CreateExpanded.cs b/swaggerci/eventgrid/generated/cmdlets/NewAzEventGridDomain_CreateExpanded.cs new file mode 100644 index 000000000000..b911f0efb4f0 --- /dev/null +++ b/swaggerci/eventgrid/generated/cmdlets/NewAzEventGridDomain_CreateExpanded.cs @@ -0,0 +1,631 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Extensions; + using System; + + /// Asynchronously creates or updates a new domain with the specified parameters. + /// + /// [OpenAPI] CreateOrUpdate=>PUT:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.EventGrid/domains/{domainName}" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsCommon.New, @"AzEventGridDomain_CreateExpanded", SupportsShouldProcess = true)] + [global::System.Management.Automation.OutputType(typeof(bool))] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Description(@"Asynchronously creates or updates a new domain with the specified parameters.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Generated] + public partial class NewAzEventGridDomain_CreateExpanded : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener + { + /// A unique id generatd for the this cmdlet when it is instantiated. + private string __correlationId = System.Guid.NewGuid().ToString(); + + /// A copy of the Invocation Info (necessary to allow asJob to clone this cmdlet) + private global::System.Management.Automation.InvocationInfo __invocationInfo; + + /// A unique id generatd for the this cmdlet when ProcessRecord() is called. + private string __processRecordId; + + /// + /// The for this operation. + /// + private global::System.Threading.CancellationTokenSource _cancellationTokenSource = new global::System.Threading.CancellationTokenSource(); + + /// EventGrid Domain. + private Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDomain _domainInfoBody = new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.Domain(); + + /// 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.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter AsJob { get; set; } + + /// + /// This Boolean is used to specify the creation mechanism for 'all' the Event Grid Domain Topics associated with this Event + /// Grid Domain resource.In this context, creation of domain topic can be auto-managed (when true) or self-managed (when false). + /// The default value for this property is true.When this property is null or set to true, Event Grid is responsible of automatically + /// creating the domain topic when the first event subscription iscreated at the scope of the domain topic. If this property + /// is set to false, then creating the first event subscription will require creating a domain topicby the user. The self-management + /// mode can be used if the user wants full control of when the domain topic is created, while auto-managed mode provides + /// theflexibility to perform less operations and manage fewer resources by the user. Also, note that in auto-managed creation + /// mode, user is allowed to create thedomain topic on demand if needed. + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "This Boolean is used to specify the creation mechanism for 'all' the Event Grid Domain Topics associated with this Event Grid Domain resource.In this context, creation of domain topic can be auto-managed (when true) or self-managed (when false). The default value for this property is true.When this property is null or set to true, Event Grid is responsible of automatically creating the domain topic when the first event subscription iscreated at the scope of the domain topic. If this property is set to false, then creating the first event subscription will require creating a domain topicby the user. The self-management mode can be used if the user wants full control of when the domain topic is created, while auto-managed mode provides theflexibility to perform less operations and manage fewer resources by the user. Also, note that in auto-managed creation mode, user is allowed to create thedomain topic on demand if needed.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"This Boolean is used to specify the creation mechanism for 'all' the Event Grid Domain Topics associated with this Event Grid Domain resource.In this context, creation of domain topic can be auto-managed (when true) or self-managed (when false). The default value for this property is true.When this property is null or set to true, Event Grid is responsible of automatically creating the domain topic when the first event subscription iscreated at the scope of the domain topic. If this property is set to false, then creating the first event subscription will require creating a domain topicby the user. The self-management mode can be used if the user wants full control of when the domain topic is created, while auto-managed mode provides theflexibility to perform less operations and manage fewer resources by the user. Also, note that in auto-managed creation mode, user is allowed to create thedomain topic on demand if needed.", + SerializedName = @"autoCreateTopicWithFirstSubscription", + PossibleTypes = new [] { typeof(global::System.Management.Automation.SwitchParameter) })] + public global::System.Management.Automation.SwitchParameter AutoCreateTopicWithFirstSubscription { get => _domainInfoBody.AutoCreateTopicWithFirstSubscription ?? default(global::System.Management.Automation.SwitchParameter); set => _domainInfoBody.AutoCreateTopicWithFirstSubscription = value; } + + /// + /// This Boolean is used to specify the deletion mechanism for 'all' the Event Grid Domain Topics associated with this Event + /// Grid Domain resource.In this context, deletion of domain topic can be auto-managed (when true) or self-managed (when false). + /// The default value for this property is true.When this property is set to true, Event Grid is responsible of automatically + /// deleting the domain topic when the last event subscription at the scopeof the domain topic is deleted. If this property + /// is set to false, then the user needs to manually delete the domain topic when it is no longer needed(e.g., when last event + /// subscription is deleted and the resource needs to be cleaned up). The self-management mode can be used if the user wants + /// fullcontrol of when the domain topic needs to be deleted, while auto-managed mode provides the flexibility to perform + /// less operations and manage fewerresources by the user. + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "This Boolean is used to specify the deletion mechanism for 'all' the Event Grid Domain Topics associated with this Event Grid Domain resource.In this context, deletion of domain topic can be auto-managed (when true) or self-managed (when false). The default value for this property is true.When this property is set to true, Event Grid is responsible of automatically deleting the domain topic when the last event subscription at the scopeof the domain topic is deleted. If this property is set to false, then the user needs to manually delete the domain topic when it is no longer needed(e.g., when last event subscription is deleted and the resource needs to be cleaned up). The self-management mode can be used if the user wants fullcontrol of when the domain topic needs to be deleted, while auto-managed mode provides the flexibility to perform less operations and manage fewerresources by the user.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"This Boolean is used to specify the deletion mechanism for 'all' the Event Grid Domain Topics associated with this Event Grid Domain resource.In this context, deletion of domain topic can be auto-managed (when true) or self-managed (when false). The default value for this property is true.When this property is set to true, Event Grid is responsible of automatically deleting the domain topic when the last event subscription at the scopeof the domain topic is deleted. If this property is set to false, then the user needs to manually delete the domain topic when it is no longer needed(e.g., when last event subscription is deleted and the resource needs to be cleaned up). The self-management mode can be used if the user wants fullcontrol of when the domain topic needs to be deleted, while auto-managed mode provides the flexibility to perform less operations and manage fewerresources by the user.", + SerializedName = @"autoDeleteTopicWithLastSubscription", + PossibleTypes = new [] { typeof(global::System.Management.Automation.SwitchParameter) })] + public global::System.Management.Automation.SwitchParameter AutoDeleteTopicWithLastSubscription { get => _domainInfoBody.AutoDeleteTopicWithLastSubscription ?? default(global::System.Management.Automation.SwitchParameter); set => _domainInfoBody.AutoDeleteTopicWithLastSubscription = 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.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.EventGridManagementClient Client => Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.ClientAPI; + + /// Data Residency Boundary of the resource. + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Data Residency Boundary of the resource.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Data Residency Boundary of the resource.", + SerializedName = @"dataResidencyBoundary", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.DataResidencyBoundary) })] + [global::System.Management.Automation.ArgumentCompleter(typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.DataResidencyBoundary))] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.DataResidencyBoundary DataResidencyBoundary { get => _domainInfoBody.DataResidencyBoundary ?? ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.DataResidencyBoundary)""); set => _domainInfoBody.DataResidencyBoundary = 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.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Azure)] + public global::System.Management.Automation.PSObject DefaultProfile { get; set; } + + /// + /// This boolean is used to enable or disable local auth. Default value is false. When the property is set to true, only AAD + /// token will be used to authenticate if user is allowed to publish to the domain. + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "This boolean is used to enable or disable local auth. Default value is false. When the property is set to true, only AAD token will be used to authenticate if user is allowed to publish to the domain.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"This boolean is used to enable or disable local auth. Default value is false. When the property is set to true, only AAD token will be used to authenticate if user is allowed to publish to the domain.", + SerializedName = @"disableLocalAuth", + PossibleTypes = new [] { typeof(global::System.Management.Automation.SwitchParameter) })] + public global::System.Management.Automation.SwitchParameter DisableLocalAuth { get => _domainInfoBody.DisableLocalAuth ?? default(global::System.Management.Automation.SwitchParameter); set => _domainInfoBody.DisableLocalAuth = 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.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[] HttpPipelineAppend { get; set; } + + /// SendAsync Pipeline Steps to be prepended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be prepended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[] HttpPipelinePrepend { get; set; } + + /// The principal ID of resource identity. + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The principal ID of resource identity.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The principal ID of resource identity.", + SerializedName = @"principalId", + PossibleTypes = new [] { typeof(string) })] + public string IdentityPrincipalId { get => _domainInfoBody.IdentityPrincipalId ?? null; set => _domainInfoBody.IdentityPrincipalId = value; } + + /// The tenant ID of resource. + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The tenant ID of resource.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The tenant ID of resource.", + SerializedName = @"tenantId", + PossibleTypes = new [] { typeof(string) })] + public string IdentityTenantId { get => _domainInfoBody.IdentityTenantId ?? null; set => _domainInfoBody.IdentityTenantId = value; } + + /// + /// The type of managed identity used. The type 'SystemAssigned, UserAssigned' includes both an implicitly created identity + /// and a set of user-assigned identities. The type 'None' will remove any identity. + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The type of managed identity used. The type 'SystemAssigned, UserAssigned' includes both an implicitly created identity and a set of user-assigned identities. The type 'None' will remove any identity.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The type of managed identity used. The type 'SystemAssigned, UserAssigned' includes both an implicitly created identity and a set of user-assigned identities. The type 'None' will remove any identity.", + SerializedName = @"type", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.IdentityType) })] + [global::System.Management.Automation.ArgumentCompleter(typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.IdentityType))] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.IdentityType IdentityType { get => _domainInfoBody.IdentityType ?? ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.IdentityType)""); set => _domainInfoBody.IdentityType = value; } + + /// + /// The list of user identities associated with the resource. The user identity dictionary key references will be ARM resource + /// ids in the form:'/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ManagedIdentity/userAssignedIdentities/{identityName}'.This + /// property is currently not used and reserved for future usage. + /// + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ExportAs(typeof(global::System.Collections.Hashtable))] + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The list of user identities associated with the resource. The user identity dictionary key references will be ARM resource ids in the form:'/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ManagedIdentity/userAssignedIdentities/{identityName}'.This property is currently not used and reserved for future usage.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The list of user identities associated with the resource. The user identity dictionary key references will be ARM resource ids in the form:'/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ManagedIdentity/userAssignedIdentities/{identityName}'.This property is currently not used and reserved for future usage.", + SerializedName = @"userAssignedIdentities", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IIdentityInfoUserAssignedIdentities) })] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IIdentityInfoUserAssignedIdentities IdentityUserAssignedIdentity { get => _domainInfoBody.IdentityUserAssignedIdentity ?? null /* object */; set => _domainInfoBody.IdentityUserAssignedIdentity = value; } + + /// + /// This can be used to restrict traffic from specific IPs instead of all IPs. Note: These are considered only if PublicNetworkAccess + /// is enabled. + /// + [global::System.Management.Automation.AllowEmptyCollection] + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "This can be used to restrict traffic from specific IPs instead of all IPs. Note: These are considered only if PublicNetworkAccess is enabled.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"This can be used to restrict traffic from specific IPs instead of all IPs. Note: These are considered only if PublicNetworkAccess is enabled.", + SerializedName = @"inboundIpRules", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IInboundIPRule) })] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IInboundIPRule[] InboundIPRule { get => _domainInfoBody.InboundIPRule ?? null /* arrayOf */; set => _domainInfoBody.InboundIPRule = value; } + + /// + /// This determines the format that Event Grid should expect for incoming events published to the Event Grid Domain Resource. + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "This determines the format that Event Grid should expect for incoming events published to the Event Grid Domain Resource.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"This determines the format that Event Grid should expect for incoming events published to the Event Grid Domain Resource.", + SerializedName = @"inputSchema", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.InputSchema) })] + [global::System.Management.Automation.ArgumentCompleter(typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.InputSchema))] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.InputSchema InputSchema { get => _domainInfoBody.InputSchema ?? ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.InputSchema)""); set => _domainInfoBody.InputSchema = value; } + + /// Accessor for our copy of the InvocationInfo. + public global::System.Management.Automation.InvocationInfo InvocationInformation { get => __invocationInfo = __invocationInfo ?? this.MyInvocation ; set { __invocationInfo = value; } } + + /// Location of the resource. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Location of the resource.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Location of the resource.", + SerializedName = @"location", + PossibleTypes = new [] { typeof(string) })] + public string Location { get => _domainInfoBody.Location ?? null; set => _domainInfoBody.Location = value; } + + /// + /// cancellation delegate. Stops the cmdlet when called. + /// + global::System.Action Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener.Token => _cancellationTokenSource.Token; + + /// Backing field for property. + private string _name; + + /// Name of the domain. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Name of the domain.")] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Name of the domain.", + SerializedName = @"domainName", + PossibleTypes = new [] { typeof(string) })] + [global::System.Management.Automation.Alias("DomainName")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Path)] + public string Name { get => this._name; set => this._name = value; } + + /// + /// when specified, will make the remote call, and return an AsyncOperationResponse, letting the remote operation continue + /// asynchronously. + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Run the command asynchronously")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter NoWait { get; set; } + + /// + /// When specified, forces the cmdlet return a 'bool' given that there isn't a return type by default. + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Returns true when the command succeeds")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Runtime.HttpPipeline Pipeline { get; set; } + + /// The URI for the proxy server to use + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "The URI for the proxy server to use")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Uri Proxy { get; set; } + + /// Credentials for a proxy server to use for the remote call + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Credentials for a proxy server to use for the remote call")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Management.Automation.PSCredential ProxyCredential { get; set; } + + /// Use the default credentials for the proxy + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Use the default credentials for the proxy")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter ProxyUseDefaultCredentials { get; set; } + + /// + /// This determines if traffic is allowed over public network. By default it is enabled.You can further restrict to specific + /// IPs by configuring + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "This determines if traffic is allowed over public network. By default it is enabled.You can further restrict to specific IPs by configuring ")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"This determines if traffic is allowed over public network. By default it is enabled.You can further restrict to specific IPs by configuring ", + SerializedName = @"publicNetworkAccess", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.PublicNetworkAccess) })] + [global::System.Management.Automation.ArgumentCompleter(typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.PublicNetworkAccess))] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.PublicNetworkAccess PublicNetworkAccess { get => _domainInfoBody.PublicNetworkAccess ?? ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.PublicNetworkAccess)""); set => _domainInfoBody.PublicNetworkAccess = value; } + + /// Backing field for property. + private string _resourceGroupName; + + /// The name of the resource group within the user's subscription. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the resource group within the user's subscription.")] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the resource group within the user's subscription.", + SerializedName = @"resourceGroupName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Path)] + public string ResourceGroupName { get => this._resourceGroupName; set => this._resourceGroupName = value; } + + /// The Sku name of the resource. The possible values are: Basic or Premium. + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The Sku name of the resource. The possible values are: Basic or Premium.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The Sku name of the resource. The possible values are: Basic or Premium.", + SerializedName = @"name", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.Sku) })] + [global::System.Management.Automation.ArgumentCompleter(typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.Sku))] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.Sku SkuName { get => _domainInfoBody.SkuName ?? ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.Sku)""); set => _domainInfoBody.SkuName = value; } + + /// Backing field for property. + private string _subscriptionId; + + /// + /// Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription ID forms part of the + /// URI for every service call. + /// + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.")] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.", + SerializedName = @"subscriptionId", + PossibleTypes = new [] { typeof(string) })] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.DefaultInfo( + Name = @"", + Description =@"", + Script = @"(Get-AzContext).Subscription.Id")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Path)] + public string SubscriptionId { get => this._subscriptionId; set => this._subscriptionId = value; } + + /// Tags of the resource. + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ExportAs(typeof(global::System.Collections.Hashtable))] + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Tags of the resource.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Tags of the resource.", + SerializedName = @"tags", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITrackedResourceTags) })] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITrackedResourceTags Tag { get => _domainInfoBody.Tag ?? null /* object */; set => _domainInfoBody.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. + /// /// Determines if the rest of the onDefault method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnDefault(global::System.Net.Http.HttpResponseMessage responseMessage, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// (overrides the default BeginProcessing method in global::System.Management.Automation.PSCmdlet) + /// + protected override void BeginProcessing() + { + var telemetryId = Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.GetTelemetryId.Invoke(); + if (telemetryId != "" && telemetryId != "internal") + { + __correlationId = telemetryId; + } + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Creates a duplicate instance of this cmdlet (via JSON serialization). + /// a duplicate instance of NewAzEventGridDomain_CreateExpanded + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Cmdlets.NewAzEventGridDomain_CreateExpanded Clone() + { + var clone = new NewAzEventGridDomain_CreateExpanded(); + clone.__correlationId = this.__correlationId; + clone.__processRecordId = this.__processRecordId; + clone.DefaultProfile = this.DefaultProfile; + clone.InvocationInformation = this.InvocationInformation; + clone.Proxy = this.Proxy; + clone.Pipeline = this.Pipeline; + clone.AsJob = this.AsJob; + clone.Break = this.Break; + clone.ProxyCredential = this.ProxyCredential; + clone.ProxyUseDefaultCredentials = this.ProxyUseDefaultCredentials; + clone.HttpPipelinePrepend = this.HttpPipelinePrepend; + clone.HttpPipelineAppend = this.HttpPipelineAppend; + clone._domainInfoBody = this._domainInfoBody; + clone.SubscriptionId = this.SubscriptionId; + clone.ResourceGroupName = this.ResourceGroupName; + clone.Name = this.Name; + return clone; + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + + } + + /// Handles/Dispatches events during the call to the REST service. + /// The message id + /// The message cancellation token. When this call is cancelled, this should be true + /// Detailed message data for the message event. + /// + /// A that will be complete when handling of the message is completed. + /// + async global::System.Threading.Tasks.Task Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener.Signal(string id, global::System.Threading.CancellationToken token, global::System.Func messageData) + { + using( NoSynchronizationContext ) + { + if (token.IsCancellationRequested) + { + return ; + } + + switch ( id ) + { + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.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.EventGrid.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.EventGrid.Runtime.PowerShell.AsyncOperationResponse { Target = uri }); + // do nothing more. + data.Cancel(); + return; + } + } + break; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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 NewAzEventGridDomain_CreateExpanded() + { + + } + + /// Performs execution of the command. + protected override void ProcessRecord() + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + if (ShouldProcess($"Call remote 'DomainsCreateOrUpdate' operation")) + { + if (true == MyInvocation?.BoundParameters?.ContainsKey("AsJob")) + { + var instance = this.Clone(); + var job = new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token); + } + } + } + } + catch (global::System.AggregateException aggregateException) + { + // unroll the inner exceptions to get the root cause + foreach( var innerException in aggregateException.Flatten().InnerExceptions ) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(innerException,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + } + catch (global::System.Exception exception) when ((exception as System.Management.Automation.PipelineStoppedException)== null || (exception as System.Management.Automation.PipelineStoppedException).InnerException != null) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(exception,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + finally + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletProcessRecordEnd).Wait(); + } + } + + /// Performs execution of the command, working asynchronously if required. + /// + /// A that will be complete when handling of the method is completed. + /// + protected async global::System.Threading.Tasks.Task ProcessRecordAsync() + { + using( NoSynchronizationContext ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await this.Client.DomainsCreateOrUpdate(SubscriptionId, ResourceGroupName, Name, _domainInfoBody, onDefault, this, Pipeline); + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.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=_domainInfoBody}) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(urexception.Message) { RecommendedAction = urexception.Action } + }); + } + finally + { + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Cancel(); + base.StopProcessing(); + } + + /// + /// a delegate that is called when the remote service returns default (any response code not handled elsewhere). + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onDefault(global::System.Net.Http.HttpResponseMessage responseMessage) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnDefault(responseMessage, ref _returnNow); + // if overrideOnDefault has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // Error Response : default + // Unrecognized Response. Create an error record based on what we have. + var ex = new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.RestException(responseMessage); + WriteError( new global::System.Management.Automation.ErrorRecord(ex, ex.Code, global::System.Management.Automation.ErrorCategory.InvalidOperation, new { SubscriptionId=SubscriptionId, ResourceGroupName=ResourceGroupName, Name=Name, body=_domainInfoBody }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(ex.Message) { RecommendedAction = ex.Action } + }); + } + } + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/cmdlets/NewAzEventGridEventChannel_CreateExpanded.cs b/swaggerci/eventgrid/generated/cmdlets/NewAzEventGridEventChannel_CreateExpanded.cs new file mode 100644 index 000000000000..7f150af2899c --- /dev/null +++ b/swaggerci/eventgrid/generated/cmdlets/NewAzEventGridEventChannel_CreateExpanded.cs @@ -0,0 +1,522 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Extensions; + using System; + + /// Asynchronously creates a new event channel with the specified parameters. + /// + /// [OpenAPI] CreateOrUpdate=>PUT:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.EventGrid/partnerNamespaces/{partnerNamespaceName}/eventChannels/{eventChannelName}" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsCommon.New, @"AzEventGridEventChannel_CreateExpanded", SupportsShouldProcess = true)] + [global::System.Management.Automation.OutputType(typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventChannel))] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Description(@"Asynchronously creates a new event channel with the specified parameters.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Generated] + public partial class NewAzEventGridEventChannel_CreateExpanded : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener + { + /// A unique id generatd for the this cmdlet when it is instantiated. + private string __correlationId = System.Guid.NewGuid().ToString(); + + /// A copy of the Invocation Info (necessary to allow asJob to clone this cmdlet) + private global::System.Management.Automation.InvocationInfo __invocationInfo; + + /// A unique id generatd for the this cmdlet when ProcessRecord() is called. + private string __processRecordId; + + /// + /// The for this operation. + /// + private global::System.Threading.CancellationTokenSource _cancellationTokenSource = new global::System.Threading.CancellationTokenSource(); + + /// Event Channel. + private Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventChannel _eventChannelInfoBody = new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.EventChannel(); + + /// Wait for .NET debugger to attach + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Wait for .NET debugger to attach")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.EventGridManagementClient Client => Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.ClientAPI; + + /// + /// The credentials, account, tenant, and subscription used for communication with Azure + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The credentials, account, tenant, and subscription used for communication with Azure.")] + [global::System.Management.Automation.ValidateNotNull] + [global::System.Management.Automation.Alias("AzureRMContext", "AzureCredential")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Azure)] + public global::System.Management.Automation.PSObject DefaultProfile { get; set; } + + /// + /// Azure subscription ID of the customer creating the event channel. The partner topicassociated with the event channel will + /// be created under this Azure subscription. + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Azure subscription ID of the customer creating the event channel. The partner topicassociated with the event channel will be created under this Azure subscription.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Azure subscription ID of the customer creating the event channel. The partner topicassociated with the event channel will be created under this Azure subscription.", + SerializedName = @"azureSubscriptionId", + PossibleTypes = new [] { typeof(string) })] + public string DestinationAzureSubscriptionId { get => _eventChannelInfoBody.DestinationAzureSubscriptionId ?? null; set => _eventChannelInfoBody.DestinationAzureSubscriptionId = value; } + + /// Name of the partner topic associated with the event channel. + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Name of the partner topic associated with the event channel.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Name of the partner topic associated with the event channel.", + SerializedName = @"partnerTopicName", + PossibleTypes = new [] { typeof(string) })] + public string DestinationPartnerTopicName { get => _eventChannelInfoBody.DestinationPartnerTopicName ?? null; set => _eventChannelInfoBody.DestinationPartnerTopicName = value; } + + /// + /// Azure Resource Group of the customer creating the event channel. The partner topicassociated with the event channel will + /// be created under this resource group. + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Azure Resource Group of the customer creating the event channel. The partner topicassociated with the event channel will be created under this resource group.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Azure Resource Group of the customer creating the event channel. The partner topicassociated with the event channel will be created under this resource group.", + SerializedName = @"resourceGroup", + PossibleTypes = new [] { typeof(string) })] + public string DestinationResourceGroup { get => _eventChannelInfoBody.DestinationResourceGroup ?? null; set => _eventChannelInfoBody.DestinationResourceGroup = value; } + + /// + /// The identifier of the resource that's the source of the events.This represents a unique resource in the partner's resource + /// model. + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The identifier of the resource that's the source of the events.This represents a unique resource in the partner's resource model.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The identifier of the resource that's the source of the events.This represents a unique resource in the partner's resource model.", + SerializedName = @"source", + PossibleTypes = new [] { typeof(string) })] + public string EventChannelSource { get => _eventChannelInfoBody.EventChannelSource ?? null; set => _eventChannelInfoBody.EventChannelSource = value; } + + /// + /// Expiration time of the event channel. If this timer expires while the corresponding partner topic is never activated,the + /// event channel and corresponding partner topic are deleted. + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Expiration time of the event channel. If this timer expires while the corresponding partner topic is never activated,the event channel and corresponding partner topic are deleted.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Expiration time of the event channel. If this timer expires while the corresponding partner topic is never activated,the event channel and corresponding partner topic are deleted.", + SerializedName = @"expirationTimeIfNotActivatedUtc", + PossibleTypes = new [] { typeof(global::System.DateTime) })] + public global::System.DateTime ExpirationTimeIfNotActivatedUtc { get => _eventChannelInfoBody.ExpirationTimeIfNotActivatedUtc ?? default(global::System.DateTime); set => _eventChannelInfoBody.ExpirationTimeIfNotActivatedUtc = value; } + + /// An array of advanced filters that are used for filtering event channels. + [global::System.Management.Automation.AllowEmptyCollection] + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "An array of advanced filters that are used for filtering event channels.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"An array of advanced filters that are used for filtering event channels.", + SerializedName = @"advancedFilters", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IAdvancedFilter) })] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IAdvancedFilter[] FilterAdvancedFilter { get => _eventChannelInfoBody.FilterAdvancedFilter ?? null /* arrayOf */; set => _eventChannelInfoBody.FilterAdvancedFilter = value; } + + /// + /// Allows advanced filters to be evaluated against an array of values instead of expecting a singular value. The default + /// value is either false or null. + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Allows advanced filters to be evaluated against an array of values instead of expecting a singular value. The default value is either false or null.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Allows advanced filters to be evaluated against an array of values instead of expecting a singular value. The default value is either false or null.", + SerializedName = @"enableAdvancedFilteringOnArrays", + PossibleTypes = new [] { typeof(global::System.Management.Automation.SwitchParameter) })] + public global::System.Management.Automation.SwitchParameter FilterEnableAdvancedFilteringOnArray { get => _eventChannelInfoBody.FilterEnableAdvancedFilteringOnArray ?? default(global::System.Management.Automation.SwitchParameter); set => _eventChannelInfoBody.FilterEnableAdvancedFilteringOnArray = 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.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[] HttpPipelineAppend { get; set; } + + /// SendAsync Pipeline Steps to be prepended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be prepended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[] HttpPipelinePrepend { get; set; } + + /// Accessor for our copy of the InvocationInfo. + public global::System.Management.Automation.InvocationInfo InvocationInformation { get => __invocationInfo = __invocationInfo ?? this.MyInvocation ; set { __invocationInfo = value; } } + + /// + /// cancellation delegate. Stops the cmdlet when called. + /// + global::System.Action Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener.Token => _cancellationTokenSource.Token; + + /// Backing field for property. + private string _name; + + /// Name of the event channel. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Name of the event channel.")] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Name of the event channel.", + SerializedName = @"eventChannelName", + PossibleTypes = new [] { typeof(string) })] + [global::System.Management.Automation.Alias("EventChannelName")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Path)] + public string Name { get => this._name; set => this._name = value; } + + /// Backing field for property. + private string _partnerNamespaceName; + + /// Name of the partner namespace. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Name of the partner namespace.")] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Name of the partner namespace.", + SerializedName = @"partnerNamespaceName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Path)] + public string PartnerNamespaceName { get => this._partnerNamespaceName; set => this._partnerNamespaceName = value; } + + /// + /// Friendly description about the topic. This can be set by the publisher/partner to show custom description for the customer + /// partner topic.This will be helpful to remove any ambiguity of the origin of creation of the partner topic for the customer. + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Friendly description about the topic. This can be set by the publisher/partner to show custom description for the customer partner topic.This will be helpful to remove any ambiguity of the origin of creation of the partner topic for the customer.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Friendly description about the topic. This can be set by the publisher/partner to show custom description for the customer partner topic.This will be helpful to remove any ambiguity of the origin of creation of the partner topic for the customer.", + SerializedName = @"partnerTopicFriendlyDescription", + PossibleTypes = new [] { typeof(string) })] + public string PartnerTopicFriendlyDescription { get => _eventChannelInfoBody.PartnerTopicFriendlyDescription ?? null; set => _eventChannelInfoBody.PartnerTopicFriendlyDescription = 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.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Runtime.HttpPipeline Pipeline { get; set; } + + /// The URI for the proxy server to use + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "The URI for the proxy server to use")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Uri Proxy { get; set; } + + /// Credentials for a proxy server to use for the remote call + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Credentials for a proxy server to use for the remote call")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Management.Automation.PSCredential ProxyCredential { get; set; } + + /// Use the default credentials for the proxy + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Use the default credentials for the proxy")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter ProxyUseDefaultCredentials { get; set; } + + /// Backing field for property. + private string _resourceGroupName; + + /// The name of the resource group within the user's subscription. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the resource group within the user's subscription.")] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the resource group within the user's subscription.", + SerializedName = @"resourceGroupName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Path)] + public string ResourceGroupName { get => this._resourceGroupName; set => this._resourceGroupName = value; } + + /// Backing field for property. + private string _subscriptionId; + + /// + /// Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription ID forms part of the + /// URI for every service call. + /// + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.")] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.", + SerializedName = @"subscriptionId", + PossibleTypes = new [] { typeof(string) })] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.DefaultInfo( + Name = @"", + Description =@"", + Script = @"(Get-AzContext).Subscription.Id")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Path)] + public string SubscriptionId { get => this._subscriptionId; set => this._subscriptionId = value; } + + /// + /// overrideOnDefault will be called before the regular onDefault has been processed, allowing customization of what + /// happens on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// /// Determines if the rest of the onDefault method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnDefault(global::System.Net.Http.HttpResponseMessage responseMessage, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnOk will be called before the regular onOk has been processed, allowing customization of what happens + /// on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// 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() + { + var telemetryId = Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.GetTelemetryId.Invoke(); + if (telemetryId != "" && telemetryId != "internal") + { + __correlationId = telemetryId; + } + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + + } + + /// Handles/Dispatches events during the call to the REST service. + /// The message id + /// The message cancellation token. When this call is cancelled, this should be true + /// Detailed message data for the message event. + /// + /// A that will be complete when handling of the message is completed. + /// + async global::System.Threading.Tasks.Task Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener.Signal(string id, global::System.Threading.CancellationToken token, global::System.Func messageData) + { + using( NoSynchronizationContext ) + { + if (token.IsCancellationRequested) + { + return ; + } + + switch ( id ) + { + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Information: + { + var data = messageData(); + WriteInformation(data.Message, new string[]{}); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Error: + { + WriteError(new global::System.Management.Automation.ErrorRecord( new global::System.Exception(messageData().Message), string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null ) ); + return ; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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 NewAzEventGridEventChannel_CreateExpanded() + { + + } + + /// Performs execution of the command. + protected override void ProcessRecord() + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + if (ShouldProcess($"Call remote 'EventChannelsCreateOrUpdate' operation")) + { + using( var asyncCommandRuntime = new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token); + } + } + } + catch (global::System.AggregateException aggregateException) + { + // unroll the inner exceptions to get the root cause + foreach( var innerException in aggregateException.Flatten().InnerExceptions ) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(innerException,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + } + catch (global::System.Exception exception) when ((exception as System.Management.Automation.PipelineStoppedException)== null || (exception as System.Management.Automation.PipelineStoppedException).InnerException != null) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(exception,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + finally + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletProcessRecordEnd).Wait(); + } + } + + /// Performs execution of the command, working asynchronously if required. + /// + /// A that will be complete when handling of the method is completed. + /// + protected async global::System.Threading.Tasks.Task ProcessRecordAsync() + { + using( NoSynchronizationContext ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await this.Client.EventChannelsCreateOrUpdate(SubscriptionId, ResourceGroupName, PartnerNamespaceName, Name, _eventChannelInfoBody, onOk, onDefault, this, Pipeline); + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.UndeclaredResponseException urexception) + { + WriteError(new global::System.Management.Automation.ErrorRecord(urexception, urexception.StatusCode.ToString(), global::System.Management.Automation.ErrorCategory.InvalidOperation, new { SubscriptionId=SubscriptionId,ResourceGroupName=ResourceGroupName,PartnerNamespaceName=PartnerNamespaceName,Name=Name,body=_eventChannelInfoBody}) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(urexception.Message) { RecommendedAction = urexception.Action } + }); + } + finally + { + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Cancel(); + base.StopProcessing(); + } + + /// + /// a delegate that is called when the remote service returns default (any response code not handled elsewhere). + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onDefault(global::System.Net.Http.HttpResponseMessage responseMessage) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnDefault(responseMessage, ref _returnNow); + // if overrideOnDefault has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // Error Response : default + // Unrecognized Response. Create an error record based on what we have. + var ex = new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.RestException(responseMessage); + WriteError( new global::System.Management.Automation.ErrorRecord(ex, ex.Code, global::System.Management.Automation.ErrorCategory.InvalidOperation, new { SubscriptionId=SubscriptionId, ResourceGroupName=ResourceGroupName, PartnerNamespaceName=PartnerNamespaceName, Name=Name, body=_eventChannelInfoBody }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(ex.Message) { RecommendedAction = ex.Action } + }); + } + } + + /// a delegate that is called when the remote service returns 200 (OK). + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as 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.EventGrid.Models.Api20211015Preview.IEventChannel + WriteObject((await response)); + } + } + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/cmdlets/NewAzEventGridEventSubscription_CreateExpanded.cs b/swaggerci/eventgrid/generated/cmdlets/NewAzEventGridEventSubscription_CreateExpanded.cs new file mode 100644 index 000000000000..6dab3613621f --- /dev/null +++ b/swaggerci/eventgrid/generated/cmdlets/NewAzEventGridEventSubscription_CreateExpanded.cs @@ -0,0 +1,637 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Extensions; + using System; + + /// + /// Asynchronously creates a new event subscription or updates an existing event subscription based on the specified scope. + /// + /// + /// [OpenAPI] CreateOrUpdate=>PUT:"/{scope}/providers/Microsoft.EventGrid/eventSubscriptions/{eventSubscriptionName}" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsCommon.New, @"AzEventGridEventSubscription_CreateExpanded", SupportsShouldProcess = true)] + [global::System.Management.Automation.OutputType(typeof(bool))] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Description(@"Asynchronously creates a new event subscription or updates an existing event subscription based on the specified scope.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Generated] + public partial class NewAzEventGridEventSubscription_CreateExpanded : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener + { + /// A unique id generatd for the this cmdlet when it is instantiated. + private string __correlationId = System.Guid.NewGuid().ToString(); + + /// A copy of the Invocation Info (necessary to allow asJob to clone this cmdlet) + private global::System.Management.Automation.InvocationInfo __invocationInfo; + + /// A unique id generatd for the this cmdlet when ProcessRecord() is called. + private string __processRecordId; + + /// + /// The for this operation. + /// + private global::System.Threading.CancellationTokenSource _cancellationTokenSource = new global::System.Threading.CancellationTokenSource(); + + /// Event Subscription + private Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscription _eventSubscriptionInfoBody = new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.EventSubscription(); + + /// 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.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.EventGridManagementClient Client => Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.ClientAPI; + + /// + /// The type of managed identity used. The type 'SystemAssigned, UserAssigned' includes both an implicitly created identity + /// and a set of user-assigned identities. The type 'None' will remove any identity. + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The type of managed identity used. The type 'SystemAssigned, UserAssigned' includes both an implicitly created identity and a set of user-assigned identities. The type 'None' will remove any identity.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The type of managed identity used. The type 'SystemAssigned, UserAssigned' includes both an implicitly created identity and a set of user-assigned identities. The type 'None' will remove any identity.", + SerializedName = @"type", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EventSubscriptionIdentityType) })] + [global::System.Management.Automation.ArgumentCompleter(typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EventSubscriptionIdentityType))] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EventSubscriptionIdentityType DeadLetterWithResourceIdentityType { get => _eventSubscriptionInfoBody.DeadLetterWithResourceIdentityType ?? ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EventSubscriptionIdentityType)""); set => _eventSubscriptionInfoBody.DeadLetterWithResourceIdentityType = value; } + + /// The user identity associated with the resource. + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The user identity associated with the resource.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The user identity associated with the resource.", + SerializedName = @"userAssignedIdentity", + PossibleTypes = new [] { typeof(string) })] + public string DeadLetterWithResourceIdentityUserAssignedIdentity { get => _eventSubscriptionInfoBody.DeadLetterWithResourceIdentityUserAssignedIdentity ?? null; set => _eventSubscriptionInfoBody.DeadLetterWithResourceIdentityUserAssignedIdentity = 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.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Azure)] + public global::System.Management.Automation.PSObject DefaultProfile { get; set; } + + /// Type of the endpoint for the event subscription destination. + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Type of the endpoint for the event subscription destination.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Type of the endpoint for the event subscription destination.", + SerializedName = @"endpointType", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EndpointType) })] + [global::System.Management.Automation.ArgumentCompleter(typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EndpointType))] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EndpointType DeliveryWithResourceIdentityDestinationEndpointType { get => _eventSubscriptionInfoBody.DeliveryWithResourceIdentityDestinationEndpointType ?? ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EndpointType)""); set => _eventSubscriptionInfoBody.DeliveryWithResourceIdentityDestinationEndpointType = value; } + + /// + /// The type of managed identity used. The type 'SystemAssigned, UserAssigned' includes both an implicitly created identity + /// and a set of user-assigned identities. The type 'None' will remove any identity. + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The type of managed identity used. The type 'SystemAssigned, UserAssigned' includes both an implicitly created identity and a set of user-assigned identities. The type 'None' will remove any identity.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The type of managed identity used. The type 'SystemAssigned, UserAssigned' includes both an implicitly created identity and a set of user-assigned identities. The type 'None' will remove any identity.", + SerializedName = @"type", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EventSubscriptionIdentityType) })] + [global::System.Management.Automation.ArgumentCompleter(typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EventSubscriptionIdentityType))] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EventSubscriptionIdentityType DeliveryWithResourceIdentityType { get => _eventSubscriptionInfoBody.DeliveryWithResourceIdentityType ?? ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EventSubscriptionIdentityType)""); set => _eventSubscriptionInfoBody.DeliveryWithResourceIdentityType = value; } + + /// The user identity associated with the resource. + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The user identity associated with the resource.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The user identity associated with the resource.", + SerializedName = @"userAssignedIdentity", + PossibleTypes = new [] { typeof(string) })] + public string DeliveryWithResourceIdentityUserAssignedIdentity { get => _eventSubscriptionInfoBody.DeliveryWithResourceIdentityUserAssignedIdentity ?? null; set => _eventSubscriptionInfoBody.DeliveryWithResourceIdentityUserAssignedIdentity = value; } + + /// Type of the endpoint for the event subscription destination. + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Type of the endpoint for the event subscription destination.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Type of the endpoint for the event subscription destination.", + SerializedName = @"endpointType", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EndpointType) })] + [global::System.Management.Automation.ArgumentCompleter(typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EndpointType))] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EndpointType EndpointType { get => _eventSubscriptionInfoBody.EndpointType ?? ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EndpointType)""); set => _eventSubscriptionInfoBody.EndpointType = value; } + + /// The event delivery schema for the event subscription. + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The event delivery schema for the event subscription.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The event delivery schema for the event subscription.", + SerializedName = @"eventDeliverySchema", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EventDeliverySchema) })] + [global::System.Management.Automation.ArgumentCompleter(typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EventDeliverySchema))] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EventDeliverySchema EventDeliverySchema { get => _eventSubscriptionInfoBody.EventDeliverySchema ?? ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EventDeliverySchema)""); set => _eventSubscriptionInfoBody.EventDeliverySchema = value; } + + /// Expiration time of the event subscription. + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Expiration time of the event subscription.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Expiration time of the event subscription.", + SerializedName = @"expirationTimeUtc", + PossibleTypes = new [] { typeof(global::System.DateTime) })] + public global::System.DateTime ExpirationTimeUtc { get => _eventSubscriptionInfoBody.ExpirationTimeUtc ?? default(global::System.DateTime); set => _eventSubscriptionInfoBody.ExpirationTimeUtc = value; } + + /// An array of advanced filters that are used for filtering event subscriptions. + [global::System.Management.Automation.AllowEmptyCollection] + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "An array of advanced filters that are used for filtering event subscriptions.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"An array of advanced filters that are used for filtering event subscriptions.", + SerializedName = @"advancedFilters", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IAdvancedFilter) })] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IAdvancedFilter[] FilterAdvancedFilter { get => _eventSubscriptionInfoBody.FilterAdvancedFilter ?? null /* arrayOf */; set => _eventSubscriptionInfoBody.FilterAdvancedFilter = value; } + + /// + /// Allows advanced filters to be evaluated against an array of values instead of expecting a singular value. + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Allows advanced filters to be evaluated against an array of values instead of expecting a singular value.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Allows advanced filters to be evaluated against an array of values instead of expecting a singular value.", + SerializedName = @"enableAdvancedFilteringOnArrays", + PossibleTypes = new [] { typeof(global::System.Management.Automation.SwitchParameter) })] + public global::System.Management.Automation.SwitchParameter FilterEnableAdvancedFilteringOnArray { get => _eventSubscriptionInfoBody.FilterEnableAdvancedFilteringOnArray ?? default(global::System.Management.Automation.SwitchParameter); set => _eventSubscriptionInfoBody.FilterEnableAdvancedFilteringOnArray = value; } + + /// + /// A list of applicable event types that need to be part of the event subscription. If it is desired to subscribe to all + /// default event types, set the IncludedEventTypes to null. + /// + [global::System.Management.Automation.AllowEmptyCollection] + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "A list of applicable event types that need to be part of the event subscription. If it is desired to subscribe to all default event types, set the IncludedEventTypes to null.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"A list of applicable event types that need to be part of the event subscription. If it is desired to subscribe to all default event types, set the IncludedEventTypes to null.", + SerializedName = @"includedEventTypes", + PossibleTypes = new [] { typeof(string) })] + public string[] FilterIncludedEventType { get => _eventSubscriptionInfoBody.FilterIncludedEventType ?? null /* arrayOf */; set => _eventSubscriptionInfoBody.FilterIncludedEventType = value; } + + /// + /// Specifies if the SubjectBeginsWith and SubjectEndsWith properties of the filtershould be compared in a case sensitive + /// manner. + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Specifies if the SubjectBeginsWith and SubjectEndsWith properties of the filtershould be compared in a case sensitive manner.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Specifies if the SubjectBeginsWith and SubjectEndsWith properties of the filtershould be compared in a case sensitive manner.", + SerializedName = @"isSubjectCaseSensitive", + PossibleTypes = new [] { typeof(global::System.Management.Automation.SwitchParameter) })] + public global::System.Management.Automation.SwitchParameter FilterIsSubjectCaseSensitive { get => _eventSubscriptionInfoBody.FilterIsSubjectCaseSensitive ?? default(global::System.Management.Automation.SwitchParameter); set => _eventSubscriptionInfoBody.FilterIsSubjectCaseSensitive = value; } + + /// + /// An optional string to filter events for an event subscription based on a resource path prefix.The format of this depends + /// on the publisher of the events.Wildcard characters are not supported in this path. + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "An optional string to filter events for an event subscription based on a resource path prefix.The format of this depends on the publisher of the events.Wildcard characters are not supported in this path.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"An optional string to filter events for an event subscription based on a resource path prefix.The format of this depends on the publisher of the events.Wildcard characters are not supported in this path.", + SerializedName = @"subjectBeginsWith", + PossibleTypes = new [] { typeof(string) })] + public string FilterSubjectBeginsWith { get => _eventSubscriptionInfoBody.FilterSubjectBeginsWith ?? null; set => _eventSubscriptionInfoBody.FilterSubjectBeginsWith = value; } + + /// + /// An optional string to filter events for an event subscription based on a resource path suffix.Wildcard characters are + /// not supported in this path. + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "An optional string to filter events for an event subscription based on a resource path suffix.Wildcard characters are not supported in this path.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"An optional string to filter events for an event subscription based on a resource path suffix.Wildcard characters are not supported in this path.", + SerializedName = @"subjectEndsWith", + PossibleTypes = new [] { typeof(string) })] + public string FilterSubjectEndsWith { get => _eventSubscriptionInfoBody.FilterSubjectEndsWith ?? null; set => _eventSubscriptionInfoBody.FilterSubjectEndsWith = 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.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[] HttpPipelineAppend { get; set; } + + /// SendAsync Pipeline Steps to be prepended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be prepended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[] HttpPipelinePrepend { get; set; } + + /// Accessor for our copy of the InvocationInfo. + public global::System.Management.Automation.InvocationInfo InvocationInformation { get => __invocationInfo = __invocationInfo ?? this.MyInvocation ; set { __invocationInfo = value; } } + + /// List of user defined labels. + [global::System.Management.Automation.AllowEmptyCollection] + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "List of user defined labels.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"List of user defined labels.", + SerializedName = @"labels", + PossibleTypes = new [] { typeof(string) })] + public string[] Label { get => _eventSubscriptionInfoBody.Label ?? null /* arrayOf */; set => _eventSubscriptionInfoBody.Label = value; } + + /// + /// cancellation delegate. Stops the cmdlet when called. + /// + global::System.Action Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener.Token => _cancellationTokenSource.Token; + + /// Backing field for property. + private string _name; + + /// + /// Name of the event subscription. Event subscription names must be between 3 and 64 characters in length and should use + /// alphanumeric letters only. + /// + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Name of the event subscription. Event subscription names must be between 3 and 64 characters in length and should use alphanumeric letters only.")] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Name of the event subscription. Event subscription names must be between 3 and 64 characters in length and should use alphanumeric letters only.", + SerializedName = @"eventSubscriptionName", + PossibleTypes = new [] { typeof(string) })] + [global::System.Management.Automation.Alias("EventSubscriptionName")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Path)] + public string Name { get => this._name; set => this._name = value; } + + /// + /// when specified, will make the remote call, and return an AsyncOperationResponse, letting the remote operation continue + /// asynchronously. + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Run the command asynchronously")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter NoWait { get; set; } + + /// + /// When specified, forces the cmdlet return a 'bool' given that there isn't a return type by default. + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Returns true when the command succeeds")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Runtime.HttpPipeline Pipeline { get; set; } + + /// The URI for the proxy server to use + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "The URI for the proxy server to use")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Uri Proxy { get; set; } + + /// Credentials for a proxy server to use for the remote call + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Credentials for a proxy server to use for the remote call")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Management.Automation.PSCredential ProxyCredential { get; set; } + + /// Use the default credentials for the proxy + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Use the default credentials for the proxy")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter ProxyUseDefaultCredentials { get; set; } + + /// Time To Live (in minutes) for events. + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Time To Live (in minutes) for events.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Time To Live (in minutes) for events.", + SerializedName = @"eventTimeToLiveInMinutes", + PossibleTypes = new [] { typeof(int) })] + public int RetryPolicyEventTimeToLiveInMinute { get => _eventSubscriptionInfoBody.RetryPolicyEventTimeToLiveInMinute ?? default(int); set => _eventSubscriptionInfoBody.RetryPolicyEventTimeToLiveInMinute = value; } + + /// Maximum number of delivery retry attempts for events. + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Maximum number of delivery retry attempts for events.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Maximum number of delivery retry attempts for events.", + SerializedName = @"maxDeliveryAttempts", + PossibleTypes = new [] { typeof(int) })] + public int RetryPolicyMaxDeliveryAttempt { get => _eventSubscriptionInfoBody.RetryPolicyMaxDeliveryAttempt ?? default(int); set => _eventSubscriptionInfoBody.RetryPolicyMaxDeliveryAttempt = value; } + + /// Backing field for property. + private string _scope; + + /// + /// The identifier of the resource to which the event subscription needs to be created or updated. The scope can be a subscription, + /// or a resource group, or a top level resource belonging to a resource provider namespace, or an EventGrid topic. For example, + /// use '/subscriptions/{subscriptionId}/' for a subscription, '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}' + /// for a resource group, and '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}' + /// for a resource, and '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.EventGrid/topics/{topicName}' + /// for an EventGrid topic. + /// + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The identifier of the resource to which the event subscription needs to be created or updated. The scope can be a subscription, or a resource group, or a top level resource belonging to a resource provider namespace, or an EventGrid topic. For example, use '/subscriptions/{subscriptionId}/' for a subscription, '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}' for a resource group, and '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}' for a resource, and '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.EventGrid/topics/{topicName}' for an EventGrid topic.")] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The identifier of the resource to which the event subscription needs to be created or updated. The scope can be a subscription, or a resource group, or a top level resource belonging to a resource provider namespace, or an EventGrid topic. For example, use '/subscriptions/{subscriptionId}/' for a subscription, '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}' for a resource group, and '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}' for a resource, and '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.EventGrid/topics/{topicName}' for an EventGrid topic.", + SerializedName = @"scope", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Path)] + public string Scope { get => this._scope; set => this._scope = value; } + + /// + /// overrideOnDefault will be called before the regular onDefault has been processed, allowing customization of what + /// happens on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// /// Determines if the rest of the onDefault method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnDefault(global::System.Net.Http.HttpResponseMessage responseMessage, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// (overrides the default BeginProcessing method in global::System.Management.Automation.PSCmdlet) + /// + protected override void BeginProcessing() + { + var telemetryId = Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.GetTelemetryId.Invoke(); + if (telemetryId != "" && telemetryId != "internal") + { + __correlationId = telemetryId; + } + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Creates a duplicate instance of this cmdlet (via JSON serialization). + /// a duplicate instance of NewAzEventGridEventSubscription_CreateExpanded + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Cmdlets.NewAzEventGridEventSubscription_CreateExpanded Clone() + { + var clone = new NewAzEventGridEventSubscription_CreateExpanded(); + clone.__correlationId = this.__correlationId; + clone.__processRecordId = this.__processRecordId; + clone.DefaultProfile = this.DefaultProfile; + clone.InvocationInformation = this.InvocationInformation; + clone.Proxy = this.Proxy; + clone.Pipeline = this.Pipeline; + clone.AsJob = this.AsJob; + clone.Break = this.Break; + clone.ProxyCredential = this.ProxyCredential; + clone.ProxyUseDefaultCredentials = this.ProxyUseDefaultCredentials; + clone.HttpPipelinePrepend = this.HttpPipelinePrepend; + clone.HttpPipelineAppend = this.HttpPipelineAppend; + clone._eventSubscriptionInfoBody = this._eventSubscriptionInfoBody; + clone.Scope = this.Scope; + clone.Name = this.Name; + return clone; + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + + } + + /// Handles/Dispatches events during the call to the REST service. + /// The message id + /// The message cancellation token. When this call is cancelled, this should be true + /// Detailed message data for the message event. + /// + /// A that will be complete when handling of the message is completed. + /// + async global::System.Threading.Tasks.Task Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener.Signal(string id, global::System.Threading.CancellationToken token, global::System.Func messageData) + { + using( NoSynchronizationContext ) + { + if (token.IsCancellationRequested) + { + return ; + } + + switch ( id ) + { + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.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.EventGrid.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.EventGrid.Runtime.PowerShell.AsyncOperationResponse { Target = uri }); + // do nothing more. + data.Cancel(); + return; + } + } + break; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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 NewAzEventGridEventSubscription_CreateExpanded() + { + + } + + /// Performs execution of the command. + protected override void ProcessRecord() + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + if (ShouldProcess($"Call remote 'EventSubscriptionsCreateOrUpdate' operation")) + { + if (true == MyInvocation?.BoundParameters?.ContainsKey("AsJob")) + { + var instance = this.Clone(); + var job = new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token); + } + } + } + } + catch (global::System.AggregateException aggregateException) + { + // unroll the inner exceptions to get the root cause + foreach( var innerException in aggregateException.Flatten().InnerExceptions ) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(innerException,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + } + catch (global::System.Exception exception) when ((exception as System.Management.Automation.PipelineStoppedException)== null || (exception as System.Management.Automation.PipelineStoppedException).InnerException != null) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(exception,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + finally + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletProcessRecordEnd).Wait(); + } + } + + /// Performs execution of the command, working asynchronously if required. + /// + /// A that will be complete when handling of the method is completed. + /// + protected async global::System.Threading.Tasks.Task ProcessRecordAsync() + { + using( NoSynchronizationContext ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await this.Client.EventSubscriptionsCreateOrUpdate(Scope, Name, _eventSubscriptionInfoBody, onDefault, this, Pipeline); + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.UndeclaredResponseException urexception) + { + WriteError(new global::System.Management.Automation.ErrorRecord(urexception, urexception.StatusCode.ToString(), global::System.Management.Automation.ErrorCategory.InvalidOperation, new { Scope=Scope,Name=Name,body=_eventSubscriptionInfoBody}) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(urexception.Message) { RecommendedAction = urexception.Action } + }); + } + finally + { + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Cancel(); + base.StopProcessing(); + } + + /// + /// a delegate that is called when the remote service returns default (any response code not handled elsewhere). + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onDefault(global::System.Net.Http.HttpResponseMessage responseMessage) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnDefault(responseMessage, ref _returnNow); + // if overrideOnDefault has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // Error Response : default + // Unrecognized Response. Create an error record based on what we have. + var ex = new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.RestException(responseMessage); + WriteError( new global::System.Management.Automation.ErrorRecord(ex, ex.Code, global::System.Management.Automation.ErrorCategory.InvalidOperation, new { Scope=Scope, Name=Name, body=_eventSubscriptionInfoBody }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(ex.Message) { RecommendedAction = ex.Action } + }); + } + } + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/cmdlets/NewAzEventGridPartnerConfiguration_CreateExpanded.cs b/swaggerci/eventgrid/generated/cmdlets/NewAzEventGridPartnerConfiguration_CreateExpanded.cs new file mode 100644 index 000000000000..1edf73e7b0ae --- /dev/null +++ b/swaggerci/eventgrid/generated/cmdlets/NewAzEventGridPartnerConfiguration_CreateExpanded.cs @@ -0,0 +1,515 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Extensions; + using System; + + /// + /// Synchronously creates or updates a partner configuration with the specified parameters. + /// + /// + /// [OpenAPI] CreateOrUpdate=>PUT:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.EventGrid/partnerConfigurations/default" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsCommon.New, @"AzEventGridPartnerConfiguration_CreateExpanded", SupportsShouldProcess = true)] + [global::System.Management.Automation.OutputType(typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerConfiguration))] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Description(@"Synchronously creates or updates a partner configuration with the specified parameters.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Generated] + public partial class NewAzEventGridPartnerConfiguration_CreateExpanded : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener + { + /// A unique id generatd for the this cmdlet when it is instantiated. + private string __correlationId = System.Guid.NewGuid().ToString(); + + /// A copy of the Invocation Info (necessary to allow asJob to clone this cmdlet) + private global::System.Management.Automation.InvocationInfo __invocationInfo; + + /// A unique id generatd for the this cmdlet when ProcessRecord() is called. + private string __processRecordId; + + /// + /// The for this operation. + /// + private global::System.Threading.CancellationTokenSource _cancellationTokenSource = new global::System.Threading.CancellationTokenSource(); + + /// Partner configuration information + private Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerConfiguration _partnerConfigurationInfoBody = new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.PartnerConfiguration(); + + /// 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.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.EventGridManagementClient Client => Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.ClientAPI; + + /// + /// The credentials, account, tenant, and subscription used for communication with Azure + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The credentials, account, tenant, and subscription used for communication with Azure.")] + [global::System.Management.Automation.ValidateNotNull] + [global::System.Management.Automation.Alias("AzureRMContext", "AzureCredential")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Azure)] + public global::System.Management.Automation.PSObject DefaultProfile { get; set; } + + /// SendAsync Pipeline Steps to be appended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be appended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[] HttpPipelineAppend { get; set; } + + /// SendAsync Pipeline Steps to be prepended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be prepended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[] HttpPipelinePrepend { get; set; } + + /// Accessor for our copy of the InvocationInfo. + public global::System.Management.Automation.InvocationInfo InvocationInformation { get => __invocationInfo = __invocationInfo ?? this.MyInvocation ; set { __invocationInfo = value; } } + + /// Location of the resource. + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Location of the resource.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Location of the resource.", + SerializedName = @"location", + PossibleTypes = new [] { typeof(string) })] + public string Location { get => _partnerConfigurationInfoBody.Location ?? null; set => _partnerConfigurationInfoBody.Location = value; } + + /// + /// cancellation delegate. Stops the cmdlet when called. + /// + global::System.Action Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter NoWait { get; set; } + + /// The list of authorized partners. + [global::System.Management.Automation.AllowEmptyCollection] + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The list of authorized partners.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The list of authorized partners.", + SerializedName = @"authorizedPartnersList", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartner) })] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartner[] PartnerAuthorizationAuthorizedPartnersList { get => _partnerConfigurationInfoBody.PartnerAuthorizationAuthorizedPartnersList ?? null /* arrayOf */; set => _partnerConfigurationInfoBody.PartnerAuthorizationAuthorizedPartnersList = value; } + + /// + /// Time used to validate the authorization expiration time for each authorized partner. If DefaultMaximumExpirationTimeInDays + /// isnot specified, the default is 7 days. Otherwise, allowed values are between 1 and 365 days. + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Time used to validate the authorization expiration time for each authorized partner. If DefaultMaximumExpirationTimeInDays isnot specified, the default is 7 days. Otherwise, allowed values are between 1 and 365 days.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Time used to validate the authorization expiration time for each authorized partner. If DefaultMaximumExpirationTimeInDays isnot specified, the default is 7 days. Otherwise, allowed values are between 1 and 365 days.", + SerializedName = @"defaultMaximumExpirationTimeInDays", + PossibleTypes = new [] { typeof(int) })] + public int PartnerAuthorizationDefaultMaximumExpirationTimeInDay { get => _partnerConfigurationInfoBody.PartnerAuthorizationDefaultMaximumExpirationTimeInDay ?? default(int); set => _partnerConfigurationInfoBody.PartnerAuthorizationDefaultMaximumExpirationTimeInDay = 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.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Runtime.HttpPipeline Pipeline { get; set; } + + /// Provisioning state of the partner configuration. + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Provisioning state of the partner configuration.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Provisioning state of the partner configuration.", + SerializedName = @"provisioningState", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.PartnerConfigurationProvisioningState) })] + [global::System.Management.Automation.ArgumentCompleter(typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.PartnerConfigurationProvisioningState))] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.PartnerConfigurationProvisioningState ProvisioningState { get => _partnerConfigurationInfoBody.ProvisioningState ?? ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.PartnerConfigurationProvisioningState)""); set => _partnerConfigurationInfoBody.ProvisioningState = 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.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Uri Proxy { get; set; } + + /// Credentials for a proxy server to use for the remote call + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Credentials for a proxy server to use for the remote call")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Management.Automation.PSCredential ProxyCredential { get; set; } + + /// Use the default credentials for the proxy + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Use the default credentials for the proxy")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter ProxyUseDefaultCredentials { get; set; } + + /// Backing field for property. + private string _resourceGroupName; + + /// The name of the resource group within the user's subscription. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the resource group within the user's subscription.")] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the resource group within the user's subscription.", + SerializedName = @"resourceGroupName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Path)] + public string ResourceGroupName { get => this._resourceGroupName; set => this._resourceGroupName = value; } + + /// Backing field for property. + private string _subscriptionId; + + /// + /// Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription ID forms part of the + /// URI for every service call. + /// + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.")] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.", + SerializedName = @"subscriptionId", + PossibleTypes = new [] { typeof(string) })] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.DefaultInfo( + Name = @"", + Description =@"", + Script = @"(Get-AzContext).Subscription.Id")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Path)] + public string SubscriptionId { get => this._subscriptionId; set => this._subscriptionId = value; } + + /// Tags of the resource. + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ExportAs(typeof(global::System.Collections.Hashtable))] + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Tags of the resource.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Tags of the resource.", + SerializedName = @"tags", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerConfigurationTags) })] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerConfigurationTags Tag { get => _partnerConfigurationInfoBody.Tag ?? null /* object */; set => _partnerConfigurationInfoBody.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. + /// /// Determines if the rest of the onDefault method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnDefault(global::System.Net.Http.HttpResponseMessage responseMessage, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnOk will be called before the regular onOk has been processed, allowing customization of what happens + /// on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// 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() + { + var telemetryId = Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.GetTelemetryId.Invoke(); + if (telemetryId != "" && telemetryId != "internal") + { + __correlationId = telemetryId; + } + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Creates a duplicate instance of this cmdlet (via JSON serialization). + /// a duplicate instance of NewAzEventGridPartnerConfiguration_CreateExpanded + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Cmdlets.NewAzEventGridPartnerConfiguration_CreateExpanded Clone() + { + var clone = new NewAzEventGridPartnerConfiguration_CreateExpanded(); + clone.__correlationId = this.__correlationId; + clone.__processRecordId = this.__processRecordId; + clone.DefaultProfile = this.DefaultProfile; + clone.InvocationInformation = this.InvocationInformation; + clone.Proxy = this.Proxy; + clone.Pipeline = this.Pipeline; + clone.AsJob = this.AsJob; + clone.Break = this.Break; + clone.ProxyCredential = this.ProxyCredential; + clone.ProxyUseDefaultCredentials = this.ProxyUseDefaultCredentials; + clone.HttpPipelinePrepend = this.HttpPipelinePrepend; + clone.HttpPipelineAppend = this.HttpPipelineAppend; + clone._partnerConfigurationInfoBody = this._partnerConfigurationInfoBody; + clone.SubscriptionId = this.SubscriptionId; + clone.ResourceGroupName = this.ResourceGroupName; + return clone; + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + + } + + /// Handles/Dispatches events during the call to the REST service. + /// The message id + /// The message cancellation token. When this call is cancelled, this should be true + /// Detailed message data for the message event. + /// + /// A that will be complete when handling of the message is completed. + /// + async global::System.Threading.Tasks.Task Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener.Signal(string id, global::System.Threading.CancellationToken token, global::System.Func messageData) + { + using( NoSynchronizationContext ) + { + if (token.IsCancellationRequested) + { + return ; + } + + switch ( id ) + { + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.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.EventGrid.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.EventGrid.Runtime.PowerShell.AsyncOperationResponse { Target = uri }); + // do nothing more. + data.Cancel(); + return; + } + } + break; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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 NewAzEventGridPartnerConfiguration_CreateExpanded() + { + + } + + /// Performs execution of the command. + protected override void ProcessRecord() + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + if (ShouldProcess($"Call remote 'PartnerConfigurationsCreateOrUpdate' operation")) + { + if (true == MyInvocation?.BoundParameters?.ContainsKey("AsJob")) + { + var instance = this.Clone(); + var job = new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token); + } + } + } + } + catch (global::System.AggregateException aggregateException) + { + // unroll the inner exceptions to get the root cause + foreach( var innerException in aggregateException.Flatten().InnerExceptions ) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(innerException,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + } + catch (global::System.Exception exception) when ((exception as System.Management.Automation.PipelineStoppedException)== null || (exception as System.Management.Automation.PipelineStoppedException).InnerException != null) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(exception,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + finally + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletProcessRecordEnd).Wait(); + } + } + + /// Performs execution of the command, working asynchronously if required. + /// + /// A that will be complete when handling of the method is completed. + /// + protected async global::System.Threading.Tasks.Task ProcessRecordAsync() + { + using( NoSynchronizationContext ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await this.Client.PartnerConfigurationsCreateOrUpdate(SubscriptionId, ResourceGroupName, _partnerConfigurationInfoBody, onOk, onDefault, this, Pipeline); + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.UndeclaredResponseException urexception) + { + WriteError(new global::System.Management.Automation.ErrorRecord(urexception, urexception.StatusCode.ToString(), global::System.Management.Automation.ErrorCategory.InvalidOperation, new { SubscriptionId=SubscriptionId,ResourceGroupName=ResourceGroupName,body=_partnerConfigurationInfoBody}) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(urexception.Message) { RecommendedAction = urexception.Action } + }); + } + finally + { + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Cancel(); + base.StopProcessing(); + } + + /// + /// a delegate that is called when the remote service returns default (any response code not handled elsewhere). + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onDefault(global::System.Net.Http.HttpResponseMessage responseMessage) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnDefault(responseMessage, ref _returnNow); + // if overrideOnDefault has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // Error Response : default + // Unrecognized Response. Create an error record based on what we have. + var ex = new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.RestException(responseMessage); + WriteError( new global::System.Management.Automation.ErrorRecord(ex, ex.Code, global::System.Management.Automation.ErrorCategory.InvalidOperation, new { SubscriptionId=SubscriptionId, ResourceGroupName=ResourceGroupName, body=_partnerConfigurationInfoBody }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(ex.Message) { RecommendedAction = ex.Action } + }); + } + } + + /// a delegate that is called when the remote service returns 200 (OK). + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as 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.EventGrid.Models.Api20211015Preview.IPartnerConfiguration + WriteObject((await response)); + } + } + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/cmdlets/NewAzEventGridPartnerDestination_CreateExpanded.cs b/swaggerci/eventgrid/generated/cmdlets/NewAzEventGridPartnerDestination_CreateExpanded.cs new file mode 100644 index 000000000000..a636f961a0d7 --- /dev/null +++ b/swaggerci/eventgrid/generated/cmdlets/NewAzEventGridPartnerDestination_CreateExpanded.cs @@ -0,0 +1,542 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Extensions; + using System; + + /// Asynchronously creates a new partner destination with the specified parameters. + /// + /// [OpenAPI] CreateOrUpdate=>PUT:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.EventGrid/partnerDestinations/{partnerDestinationName}" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsCommon.New, @"AzEventGridPartnerDestination_CreateExpanded", SupportsShouldProcess = true)] + [global::System.Management.Automation.OutputType(typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerDestination))] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Description(@"Asynchronously creates a new partner destination with the specified parameters.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Generated] + public partial class NewAzEventGridPartnerDestination_CreateExpanded : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener + { + /// A unique id generatd for the this cmdlet when it is instantiated. + private string __correlationId = System.Guid.NewGuid().ToString(); + + /// A copy of the Invocation Info (necessary to allow asJob to clone this cmdlet) + private global::System.Management.Automation.InvocationInfo __invocationInfo; + + /// A unique id generatd for the this cmdlet when ProcessRecord() is called. + private string __processRecordId; + + /// + /// The for this operation. + /// + private global::System.Threading.CancellationTokenSource _cancellationTokenSource = new global::System.Threading.CancellationTokenSource(); + + /// Event Grid Partner Destination. + private Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerDestination _partnerDestinationBody = new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.PartnerDestination(); + + /// Activation state of the partner destination. + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Activation state of the partner destination.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Activation state of the partner destination.", + SerializedName = @"activationState", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.PartnerDestinationActivationState) })] + [global::System.Management.Automation.ArgumentCompleter(typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.PartnerDestinationActivationState))] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.PartnerDestinationActivationState ActivationState { get => _partnerDestinationBody.ActivationState ?? ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.PartnerDestinationActivationState)""); set => _partnerDestinationBody.ActivationState = 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.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.EventGridManagementClient Client => Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.ClientAPI; + + /// + /// The credentials, account, tenant, and subscription used for communication with Azure + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The credentials, account, tenant, and subscription used for communication with Azure.")] + [global::System.Management.Automation.ValidateNotNull] + [global::System.Management.Automation.Alias("AzureRMContext", "AzureCredential")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Azure)] + public global::System.Management.Automation.PSObject DefaultProfile { get; set; } + + /// Endpoint Base URL of the partner destination + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Endpoint Base URL of the partner destination")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Endpoint Base URL of the partner destination", + SerializedName = @"endpointBaseUrl", + PossibleTypes = new [] { typeof(string) })] + public string EndpointBaseUrl { get => _partnerDestinationBody.EndpointBaseUrl ?? null; set => _partnerDestinationBody.EndpointBaseUrl = value; } + + /// Endpoint context associated with this partner destination. + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Endpoint context associated with this partner destination.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Endpoint context associated with this partner destination.", + SerializedName = @"endpointServiceContext", + PossibleTypes = new [] { typeof(string) })] + public string EndpointServiceContext { get => _partnerDestinationBody.EndpointServiceContext ?? null; set => _partnerDestinationBody.EndpointServiceContext = value; } + + /// + /// Expiration time of the partner destination. If this timer expires and the partner destination was never activated,the + /// partner destination and corresponding channel are deleted. + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Expiration time of the partner destination. If this timer expires and the partner destination was never activated,the partner destination and corresponding channel are deleted.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Expiration time of the partner destination. If this timer expires and the partner destination was never activated,the partner destination and corresponding channel are deleted.", + SerializedName = @"expirationTimeIfNotActivatedUtc", + PossibleTypes = new [] { typeof(global::System.DateTime) })] + public global::System.DateTime ExpirationTimeIfNotActivatedUtc { get => _partnerDestinationBody.ExpirationTimeIfNotActivatedUtc ?? default(global::System.DateTime); set => _partnerDestinationBody.ExpirationTimeIfNotActivatedUtc = 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.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[] HttpPipelineAppend { get; set; } + + /// SendAsync Pipeline Steps to be prepended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be prepended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[] HttpPipelinePrepend { get; set; } + + /// Accessor for our copy of the InvocationInfo. + public global::System.Management.Automation.InvocationInfo InvocationInformation { get => __invocationInfo = __invocationInfo ?? this.MyInvocation ; set { __invocationInfo = value; } } + + /// Location of the resource. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Location of the resource.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Location of the resource.", + SerializedName = @"location", + PossibleTypes = new [] { typeof(string) })] + public string Location { get => _partnerDestinationBody.Location ?? null; set => _partnerDestinationBody.Location = value; } + + /// Context or helpful message that can be used during the approval process. + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Context or helpful message that can be used during the approval process.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Context or helpful message that can be used during the approval process.", + SerializedName = @"messageForActivation", + PossibleTypes = new [] { typeof(string) })] + public string MessageForActivation { get => _partnerDestinationBody.MessageForActivation ?? null; set => _partnerDestinationBody.MessageForActivation = value; } + + /// + /// cancellation delegate. Stops the cmdlet when called. + /// + global::System.Action Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener.Token => _cancellationTokenSource.Token; + + /// Backing field for property. + private string _name; + + /// Name of the partner destination. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Name of the partner destination.")] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Name of the partner destination.", + SerializedName = @"partnerDestinationName", + PossibleTypes = new [] { typeof(string) })] + [global::System.Management.Automation.Alias("PartnerDestinationName")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Path)] + public string Name { get => this._name; set => this._name = value; } + + /// The immutable Id of the corresponding partner registration. + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The immutable Id of the corresponding partner registration.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The immutable Id of the corresponding partner registration.", + SerializedName = @"partnerRegistrationImmutableId", + PossibleTypes = new [] { typeof(string) })] + public string PartnerRegistrationImmutableId { get => _partnerDestinationBody.PartnerRegistrationImmutableId ?? null; set => _partnerDestinationBody.PartnerRegistrationImmutableId = 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.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Runtime.HttpPipeline Pipeline { get; set; } + + /// Provisioning state of the partner destination. + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Provisioning state of the partner destination.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Provisioning state of the partner destination.", + SerializedName = @"provisioningState", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.PartnerDestinationProvisioningState) })] + [global::System.Management.Automation.ArgumentCompleter(typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.PartnerDestinationProvisioningState))] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.PartnerDestinationProvisioningState ProvisioningState { get => _partnerDestinationBody.ProvisioningState ?? ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.PartnerDestinationProvisioningState)""); set => _partnerDestinationBody.ProvisioningState = 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.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Uri Proxy { get; set; } + + /// Credentials for a proxy server to use for the remote call + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Credentials for a proxy server to use for the remote call")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Management.Automation.PSCredential ProxyCredential { get; set; } + + /// Use the default credentials for the proxy + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Use the default credentials for the proxy")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter ProxyUseDefaultCredentials { get; set; } + + /// Backing field for property. + private string _resourceGroupName; + + /// The name of the resource group within the user's subscription. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the resource group within the user's subscription.")] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the resource group within the user's subscription.", + SerializedName = @"resourceGroupName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Path)] + public string ResourceGroupName { get => this._resourceGroupName; set => this._resourceGroupName = value; } + + /// Backing field for property. + private string _subscriptionId; + + /// + /// Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription ID forms part of the + /// URI for every service call. + /// + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.")] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.", + SerializedName = @"subscriptionId", + PossibleTypes = new [] { typeof(string) })] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.DefaultInfo( + Name = @"", + Description =@"", + Script = @"(Get-AzContext).Subscription.Id")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Path)] + public string SubscriptionId { get => this._subscriptionId; set => this._subscriptionId = value; } + + /// Tags of the resource. + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ExportAs(typeof(global::System.Collections.Hashtable))] + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Tags of the resource.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Tags of the resource.", + SerializedName = @"tags", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITrackedResourceTags) })] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITrackedResourceTags Tag { get => _partnerDestinationBody.Tag ?? null /* object */; set => _partnerDestinationBody.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. + /// /// Determines if the rest of the onDefault method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnDefault(global::System.Net.Http.HttpResponseMessage responseMessage, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnOk will be called before the regular onOk has been processed, allowing customization of what happens + /// on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// 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() + { + var telemetryId = Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.GetTelemetryId.Invoke(); + if (telemetryId != "" && telemetryId != "internal") + { + __correlationId = telemetryId; + } + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + + } + + /// Handles/Dispatches events during the call to the REST service. + /// The message id + /// The message cancellation token. When this call is cancelled, this should be true + /// Detailed message data for the message event. + /// + /// A that will be complete when handling of the message is completed. + /// + async global::System.Threading.Tasks.Task Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener.Signal(string id, global::System.Threading.CancellationToken token, global::System.Func messageData) + { + using( NoSynchronizationContext ) + { + if (token.IsCancellationRequested) + { + return ; + } + + switch ( id ) + { + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Information: + { + var data = messageData(); + WriteInformation(data.Message, new string[]{}); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Error: + { + WriteError(new global::System.Management.Automation.ErrorRecord( new global::System.Exception(messageData().Message), string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null ) ); + return ; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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 NewAzEventGridPartnerDestination_CreateExpanded() + { + + } + + /// Performs execution of the command. + protected override void ProcessRecord() + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + if (ShouldProcess($"Call remote 'PartnerDestinationsCreateOrUpdate' operation")) + { + using( var asyncCommandRuntime = new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token); + } + } + } + catch (global::System.AggregateException aggregateException) + { + // unroll the inner exceptions to get the root cause + foreach( var innerException in aggregateException.Flatten().InnerExceptions ) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(innerException,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + } + catch (global::System.Exception exception) when ((exception as System.Management.Automation.PipelineStoppedException)== null || (exception as System.Management.Automation.PipelineStoppedException).InnerException != null) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(exception,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + finally + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletProcessRecordEnd).Wait(); + } + } + + /// Performs execution of the command, working asynchronously if required. + /// + /// A that will be complete when handling of the method is completed. + /// + protected async global::System.Threading.Tasks.Task ProcessRecordAsync() + { + using( NoSynchronizationContext ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await this.Client.PartnerDestinationsCreateOrUpdate(SubscriptionId, ResourceGroupName, Name, _partnerDestinationBody, onOk, onCreated, onDefault, this, Pipeline); + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.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=_partnerDestinationBody}) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(urexception.Message) { RecommendedAction = urexception.Action } + }); + } + finally + { + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Models.Api20211015Preview.IPartnerDestination + 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. + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onDefault(global::System.Net.Http.HttpResponseMessage responseMessage) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnDefault(responseMessage, ref _returnNow); + // if overrideOnDefault has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // Error Response : default + // Unrecognized Response. Create an error record based on what we have. + var ex = new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.RestException(responseMessage); + WriteError( new global::System.Management.Automation.ErrorRecord(ex, ex.Code, global::System.Management.Automation.ErrorCategory.InvalidOperation, new { SubscriptionId=SubscriptionId, ResourceGroupName=ResourceGroupName, Name=Name, body=_partnerDestinationBody }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(ex.Message) { RecommendedAction = ex.Action } + }); + } + } + + /// a delegate that is called when the remote service returns 200 (OK). + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as 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.EventGrid.Models.Api20211015Preview.IPartnerDestination + WriteObject((await response)); + } + } + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/cmdlets/NewAzEventGridPartnerNamespaceKey_Regenerate.cs b/swaggerci/eventgrid/generated/cmdlets/NewAzEventGridPartnerNamespaceKey_Regenerate.cs new file mode 100644 index 000000000000..f406d4f551df --- /dev/null +++ b/swaggerci/eventgrid/generated/cmdlets/NewAzEventGridPartnerNamespaceKey_Regenerate.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.EventGrid.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Extensions; + using System; + + /// Regenerate a shared access key for a partner namespace. + /// + /// [OpenAPI] RegenerateKey=>POST:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.EventGrid/partnerNamespaces/{partnerNamespaceName}/regenerateKey" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsCommon.New, @"AzEventGridPartnerNamespaceKey_Regenerate", SupportsShouldProcess = true)] + [global::System.Management.Automation.OutputType(typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerNamespaceSharedAccessKeys))] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Description(@"Regenerate a shared access key for a partner namespace.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Generated] + public partial class NewAzEventGridPartnerNamespaceKey_Regenerate : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener + { + /// A unique id generatd for the this cmdlet when it is instantiated. + private string __correlationId = System.Guid.NewGuid().ToString(); + + /// A copy of the Invocation Info (necessary to allow asJob to clone this cmdlet) + private global::System.Management.Automation.InvocationInfo __invocationInfo; + + /// A unique id generatd for the this cmdlet when ProcessRecord() is called. + private string __processRecordId; + + /// + /// The for this operation. + /// + private global::System.Threading.CancellationTokenSource _cancellationTokenSource = new global::System.Threading.CancellationTokenSource(); + + /// Wait for .NET debugger to attach + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Wait for .NET debugger to attach")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.EventGridManagementClient Client => Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.ClientAPI; + + /// + /// The credentials, account, tenant, and subscription used for communication with Azure + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The credentials, account, tenant, and subscription used for communication with Azure.")] + [global::System.Management.Automation.ValidateNotNull] + [global::System.Management.Automation.Alias("AzureRMContext", "AzureCredential")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Azure)] + public global::System.Management.Automation.PSObject DefaultProfile { get; set; } + + /// SendAsync Pipeline Steps to be appended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be appended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[] HttpPipelineAppend { get; set; } + + /// SendAsync Pipeline Steps to be prepended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be prepended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[] HttpPipelinePrepend { get; set; } + + /// Accessor for our copy of the InvocationInfo. + public global::System.Management.Automation.InvocationInfo InvocationInformation { get => __invocationInfo = __invocationInfo ?? this.MyInvocation ; set { __invocationInfo = value; } } + + /// + /// cancellation delegate. Stops the cmdlet when called. + /// + global::System.Action Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener.Token => _cancellationTokenSource.Token; + + /// Backing field for property. + private string _partnerNamespaceName; + + /// Name of the partner namespace. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Name of the partner namespace.")] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Name of the partner namespace.", + SerializedName = @"partnerNamespaceName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Path)] + public string PartnerNamespaceName { get => this._partnerNamespaceName; set => this._partnerNamespaceName = 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.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Runtime.HttpPipeline Pipeline { get; set; } + + /// The URI for the proxy server to use + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "The URI for the proxy server to use")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Uri Proxy { get; set; } + + /// Credentials for a proxy server to use for the remote call + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Credentials for a proxy server to use for the remote call")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Management.Automation.PSCredential ProxyCredential { get; set; } + + /// Use the default credentials for the proxy + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Use the default credentials for the proxy")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter ProxyUseDefaultCredentials { get; set; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerNamespaceRegenerateKeyRequest _regenerateKeyRequest; + + /// PartnerNamespace regenerate shared access key request. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "PartnerNamespace regenerate shared access key request.", ValueFromPipeline = true)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"PartnerNamespace regenerate shared access key request.", + SerializedName = @"regenerateKeyRequest", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerNamespaceRegenerateKeyRequest) })] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerNamespaceRegenerateKeyRequest RegenerateKeyRequest { get => this._regenerateKeyRequest; set => this._regenerateKeyRequest = value; } + + /// Backing field for property. + private string _resourceGroupName; + + /// The name of the resource group within the user's subscription. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the resource group within the user's subscription.")] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the resource group within the user's subscription.", + SerializedName = @"resourceGroupName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Path)] + public string ResourceGroupName { get => this._resourceGroupName; set => this._resourceGroupName = value; } + + /// Backing field for property. + private string _subscriptionId; + + /// + /// Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription ID forms part of the + /// URI for every service call. + /// + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.")] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.", + SerializedName = @"subscriptionId", + PossibleTypes = new [] { typeof(string) })] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.DefaultInfo( + Name = @"", + Description =@"", + Script = @"(Get-AzContext).Subscription.Id")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Path)] + public string SubscriptionId { get => this._subscriptionId; set => this._subscriptionId = value; } + + /// + /// overrideOnDefault will be called before the regular onDefault has been processed, allowing customization of what + /// happens on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// /// Determines if the rest of the onDefault method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnDefault(global::System.Net.Http.HttpResponseMessage responseMessage, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnOk will be called before the regular onOk has been processed, allowing customization of what happens + /// on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// 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() + { + var telemetryId = Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.GetTelemetryId.Invoke(); + if (telemetryId != "" && telemetryId != "internal") + { + __correlationId = telemetryId; + } + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + + } + + /// Handles/Dispatches events during the call to the REST service. + /// The message id + /// The message cancellation token. When this call is cancelled, this should be true + /// Detailed message data for the message event. + /// + /// A that will be complete when handling of the message is completed. + /// + async global::System.Threading.Tasks.Task Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener.Signal(string id, global::System.Threading.CancellationToken token, global::System.Func messageData) + { + using( NoSynchronizationContext ) + { + if (token.IsCancellationRequested) + { + return ; + } + + switch ( id ) + { + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Information: + { + var data = messageData(); + WriteInformation(data.Message, new string[]{}); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Error: + { + WriteError(new global::System.Management.Automation.ErrorRecord( new global::System.Exception(messageData().Message), string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null ) ); + return ; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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 NewAzEventGridPartnerNamespaceKey_Regenerate() + { + + } + + /// Performs execution of the command. + protected override void ProcessRecord() + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + if (ShouldProcess($"Call remote 'PartnerNamespacesRegenerateKey' operation")) + { + using( var asyncCommandRuntime = new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token); + } + } + } + catch (global::System.AggregateException aggregateException) + { + // unroll the inner exceptions to get the root cause + foreach( var innerException in aggregateException.Flatten().InnerExceptions ) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(innerException,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + } + catch (global::System.Exception exception) when ((exception as System.Management.Automation.PipelineStoppedException)== null || (exception as System.Management.Automation.PipelineStoppedException).InnerException != null) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(exception,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + finally + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletProcessRecordEnd).Wait(); + } + } + + /// Performs execution of the command, working asynchronously if required. + /// + /// A that will be complete when handling of the method is completed. + /// + protected async global::System.Threading.Tasks.Task ProcessRecordAsync() + { + using( NoSynchronizationContext ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await this.Client.PartnerNamespacesRegenerateKey(SubscriptionId, ResourceGroupName, PartnerNamespaceName, RegenerateKeyRequest, onOk, onDefault, this, Pipeline); + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.UndeclaredResponseException urexception) + { + WriteError(new global::System.Management.Automation.ErrorRecord(urexception, urexception.StatusCode.ToString(), global::System.Management.Automation.ErrorCategory.InvalidOperation, new { SubscriptionId=SubscriptionId,ResourceGroupName=ResourceGroupName,PartnerNamespaceName=PartnerNamespaceName,body=RegenerateKeyRequest}) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(urexception.Message) { RecommendedAction = urexception.Action } + }); + } + finally + { + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Cancel(); + base.StopProcessing(); + } + + /// + /// a delegate that is called when the remote service returns default (any response code not handled elsewhere). + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onDefault(global::System.Net.Http.HttpResponseMessage responseMessage) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnDefault(responseMessage, ref _returnNow); + // if overrideOnDefault has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // Error Response : default + // Unrecognized Response. Create an error record based on what we have. + var ex = new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.RestException(responseMessage); + WriteError( new global::System.Management.Automation.ErrorRecord(ex, ex.Code, global::System.Management.Automation.ErrorCategory.InvalidOperation, new { SubscriptionId=SubscriptionId, ResourceGroupName=ResourceGroupName, PartnerNamespaceName=PartnerNamespaceName, body=RegenerateKeyRequest }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(ex.Message) { RecommendedAction = ex.Action } + }); + } + } + + /// a delegate that is called when the remote service returns 200 (OK). + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as 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.EventGrid.Models.Api20211015Preview.IPartnerNamespaceSharedAccessKeys + WriteObject((await response)); + } + } + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/cmdlets/NewAzEventGridPartnerNamespaceKey_RegenerateExpanded.cs b/swaggerci/eventgrid/generated/cmdlets/NewAzEventGridPartnerNamespaceKey_RegenerateExpanded.cs new file mode 100644 index 000000000000..e80566c5a689 --- /dev/null +++ b/swaggerci/eventgrid/generated/cmdlets/NewAzEventGridPartnerNamespaceKey_RegenerateExpanded.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.EventGrid.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Extensions; + using System; + + /// Regenerate a shared access key for a partner namespace. + /// + /// [OpenAPI] RegenerateKey=>POST:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.EventGrid/partnerNamespaces/{partnerNamespaceName}/regenerateKey" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsCommon.New, @"AzEventGridPartnerNamespaceKey_RegenerateExpanded", SupportsShouldProcess = true)] + [global::System.Management.Automation.OutputType(typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerNamespaceSharedAccessKeys))] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Description(@"Regenerate a shared access key for a partner namespace.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Generated] + public partial class NewAzEventGridPartnerNamespaceKey_RegenerateExpanded : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener + { + /// A unique id generatd for the this cmdlet when it is instantiated. + private string __correlationId = System.Guid.NewGuid().ToString(); + + /// A copy of the Invocation Info (necessary to allow asJob to clone this cmdlet) + private global::System.Management.Automation.InvocationInfo __invocationInfo; + + /// A unique id generatd for the this cmdlet when ProcessRecord() is called. + private string __processRecordId; + + /// + /// The for this operation. + /// + private global::System.Threading.CancellationTokenSource _cancellationTokenSource = new global::System.Threading.CancellationTokenSource(); + + /// PartnerNamespace regenerate shared access key request. + private Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerNamespaceRegenerateKeyRequest _regenerateKeyRequestBody = new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.PartnerNamespaceRegenerateKeyRequest(); + + /// Wait for .NET debugger to attach + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Wait for .NET debugger to attach")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.EventGridManagementClient Client => Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.ClientAPI; + + /// + /// The credentials, account, tenant, and subscription used for communication with Azure + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The credentials, account, tenant, and subscription used for communication with Azure.")] + [global::System.Management.Automation.ValidateNotNull] + [global::System.Management.Automation.Alias("AzureRMContext", "AzureCredential")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Azure)] + public global::System.Management.Automation.PSObject DefaultProfile { get; set; } + + /// SendAsync Pipeline Steps to be appended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be appended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[] HttpPipelineAppend { get; set; } + + /// SendAsync Pipeline Steps to be prepended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be prepended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[] HttpPipelinePrepend { get; set; } + + /// Accessor for our copy of the InvocationInfo. + public global::System.Management.Automation.InvocationInfo InvocationInformation { get => __invocationInfo = __invocationInfo ?? this.MyInvocation ; set { __invocationInfo = value; } } + + /// Key name to regenerate (key1 or key2). + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Key name to regenerate (key1 or key2).")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Key name to regenerate (key1 or key2).", + SerializedName = @"keyName", + PossibleTypes = new [] { typeof(string) })] + public string KeyName { get => _regenerateKeyRequestBody.KeyName ?? null; set => _regenerateKeyRequestBody.KeyName = value; } + + /// + /// cancellation delegate. Stops the cmdlet when called. + /// + global::System.Action Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener.Token => _cancellationTokenSource.Token; + + /// Backing field for property. + private string _partnerNamespaceName; + + /// Name of the partner namespace. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Name of the partner namespace.")] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Name of the partner namespace.", + SerializedName = @"partnerNamespaceName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Path)] + public string PartnerNamespaceName { get => this._partnerNamespaceName; set => this._partnerNamespaceName = 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.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Runtime.HttpPipeline Pipeline { get; set; } + + /// The URI for the proxy server to use + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "The URI for the proxy server to use")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Uri Proxy { get; set; } + + /// Credentials for a proxy server to use for the remote call + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Credentials for a proxy server to use for the remote call")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Management.Automation.PSCredential ProxyCredential { get; set; } + + /// Use the default credentials for the proxy + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Use the default credentials for the proxy")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter ProxyUseDefaultCredentials { get; set; } + + /// Backing field for property. + private string _resourceGroupName; + + /// The name of the resource group within the user's subscription. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the resource group within the user's subscription.")] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the resource group within the user's subscription.", + SerializedName = @"resourceGroupName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Path)] + public string ResourceGroupName { get => this._resourceGroupName; set => this._resourceGroupName = value; } + + /// Backing field for property. + private string _subscriptionId; + + /// + /// Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription ID forms part of the + /// URI for every service call. + /// + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.")] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.", + SerializedName = @"subscriptionId", + PossibleTypes = new [] { typeof(string) })] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.DefaultInfo( + Name = @"", + Description =@"", + Script = @"(Get-AzContext).Subscription.Id")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Path)] + public string SubscriptionId { get => this._subscriptionId; set => this._subscriptionId = value; } + + /// + /// overrideOnDefault will be called before the regular onDefault has been processed, allowing customization of what + /// happens on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// /// Determines if the rest of the onDefault method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnDefault(global::System.Net.Http.HttpResponseMessage responseMessage, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnOk will be called before the regular onOk has been processed, allowing customization of what happens + /// on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// 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() + { + var telemetryId = Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.GetTelemetryId.Invoke(); + if (telemetryId != "" && telemetryId != "internal") + { + __correlationId = telemetryId; + } + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + + } + + /// Handles/Dispatches events during the call to the REST service. + /// The message id + /// The message cancellation token. When this call is cancelled, this should be true + /// Detailed message data for the message event. + /// + /// A that will be complete when handling of the message is completed. + /// + async global::System.Threading.Tasks.Task Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener.Signal(string id, global::System.Threading.CancellationToken token, global::System.Func messageData) + { + using( NoSynchronizationContext ) + { + if (token.IsCancellationRequested) + { + return ; + } + + switch ( id ) + { + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Information: + { + var data = messageData(); + WriteInformation(data.Message, new string[]{}); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Error: + { + WriteError(new global::System.Management.Automation.ErrorRecord( new global::System.Exception(messageData().Message), string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null ) ); + return ; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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 NewAzEventGridPartnerNamespaceKey_RegenerateExpanded() + { + + } + + /// Performs execution of the command. + protected override void ProcessRecord() + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + if (ShouldProcess($"Call remote 'PartnerNamespacesRegenerateKey' operation")) + { + using( var asyncCommandRuntime = new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token); + } + } + } + catch (global::System.AggregateException aggregateException) + { + // unroll the inner exceptions to get the root cause + foreach( var innerException in aggregateException.Flatten().InnerExceptions ) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(innerException,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + } + catch (global::System.Exception exception) when ((exception as System.Management.Automation.PipelineStoppedException)== null || (exception as System.Management.Automation.PipelineStoppedException).InnerException != null) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(exception,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + finally + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletProcessRecordEnd).Wait(); + } + } + + /// Performs execution of the command, working asynchronously if required. + /// + /// A that will be complete when handling of the method is completed. + /// + protected async global::System.Threading.Tasks.Task ProcessRecordAsync() + { + using( NoSynchronizationContext ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await this.Client.PartnerNamespacesRegenerateKey(SubscriptionId, ResourceGroupName, PartnerNamespaceName, _regenerateKeyRequestBody, onOk, onDefault, this, Pipeline); + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.UndeclaredResponseException urexception) + { + WriteError(new global::System.Management.Automation.ErrorRecord(urexception, urexception.StatusCode.ToString(), global::System.Management.Automation.ErrorCategory.InvalidOperation, new { SubscriptionId=SubscriptionId,ResourceGroupName=ResourceGroupName,PartnerNamespaceName=PartnerNamespaceName,body=_regenerateKeyRequestBody}) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(urexception.Message) { RecommendedAction = urexception.Action } + }); + } + finally + { + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Cancel(); + base.StopProcessing(); + } + + /// + /// a delegate that is called when the remote service returns default (any response code not handled elsewhere). + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onDefault(global::System.Net.Http.HttpResponseMessage responseMessage) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnDefault(responseMessage, ref _returnNow); + // if overrideOnDefault has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // Error Response : default + // Unrecognized Response. Create an error record based on what we have. + var ex = new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.RestException(responseMessage); + WriteError( new global::System.Management.Automation.ErrorRecord(ex, ex.Code, global::System.Management.Automation.ErrorCategory.InvalidOperation, new { SubscriptionId=SubscriptionId, ResourceGroupName=ResourceGroupName, PartnerNamespaceName=PartnerNamespaceName, body=_regenerateKeyRequestBody }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(ex.Message) { RecommendedAction = ex.Action } + }); + } + } + + /// a delegate that is called when the remote service returns 200 (OK). + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as 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.EventGrid.Models.Api20211015Preview.IPartnerNamespaceSharedAccessKeys + WriteObject((await response)); + } + } + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/cmdlets/NewAzEventGridPartnerNamespaceKey_RegenerateViaIdentity.cs b/swaggerci/eventgrid/generated/cmdlets/NewAzEventGridPartnerNamespaceKey_RegenerateViaIdentity.cs new file mode 100644 index 000000000000..6f3086ce93ae --- /dev/null +++ b/swaggerci/eventgrid/generated/cmdlets/NewAzEventGridPartnerNamespaceKey_RegenerateViaIdentity.cs @@ -0,0 +1,389 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Extensions; + using System; + + /// Regenerate a shared access key for a partner namespace. + /// + /// [OpenAPI] RegenerateKey=>POST:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.EventGrid/partnerNamespaces/{partnerNamespaceName}/regenerateKey" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsCommon.New, @"AzEventGridPartnerNamespaceKey_RegenerateViaIdentity", SupportsShouldProcess = true)] + [global::System.Management.Automation.OutputType(typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerNamespaceSharedAccessKeys))] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Description(@"Regenerate a shared access key for a partner namespace.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Generated] + public partial class NewAzEventGridPartnerNamespaceKey_RegenerateViaIdentity : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener + { + /// A unique id generatd for the this cmdlet when it is instantiated. + private string __correlationId = System.Guid.NewGuid().ToString(); + + /// A copy of the Invocation Info (necessary to allow asJob to clone this cmdlet) + private global::System.Management.Automation.InvocationInfo __invocationInfo; + + /// A unique id generatd for the this cmdlet when ProcessRecord() is called. + private string __processRecordId; + + /// + /// The for this operation. + /// + private global::System.Threading.CancellationTokenSource _cancellationTokenSource = new global::System.Threading.CancellationTokenSource(); + + /// Wait for .NET debugger to attach + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Wait for .NET debugger to attach")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.EventGridManagementClient Client => Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.ClientAPI; + + /// + /// The credentials, account, tenant, and subscription used for communication with Azure + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The credentials, account, tenant, and subscription used for communication with Azure.")] + [global::System.Management.Automation.ValidateNotNull] + [global::System.Management.Automation.Alias("AzureRMContext", "AzureCredential")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Azure)] + public global::System.Management.Automation.PSObject DefaultProfile { get; set; } + + /// SendAsync Pipeline Steps to be appended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be appended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[] HttpPipelineAppend { get; set; } + + /// SendAsync Pipeline Steps to be prepended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be prepended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[] HttpPipelinePrepend { get; set; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.IEventGridIdentity _inputObject; + + /// Identity Parameter + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Identity Parameter", ValueFromPipeline = true)] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Path)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.IEventGridIdentity InputObject { get => this._inputObject; set => this._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.EventGrid.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Runtime.HttpPipeline Pipeline { get; set; } + + /// The URI for the proxy server to use + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "The URI for the proxy server to use")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Uri Proxy { get; set; } + + /// Credentials for a proxy server to use for the remote call + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Credentials for a proxy server to use for the remote call")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Management.Automation.PSCredential ProxyCredential { get; set; } + + /// Use the default credentials for the proxy + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Use the default credentials for the proxy")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter ProxyUseDefaultCredentials { get; set; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerNamespaceRegenerateKeyRequest _regenerateKeyRequest; + + /// PartnerNamespace regenerate shared access key request. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "PartnerNamespace regenerate shared access key request.", ValueFromPipeline = true)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"PartnerNamespace regenerate shared access key request.", + SerializedName = @"regenerateKeyRequest", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerNamespaceRegenerateKeyRequest) })] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerNamespaceRegenerateKeyRequest RegenerateKeyRequest { get => this._regenerateKeyRequest; set => this._regenerateKeyRequest = value; } + + /// + /// overrideOnDefault will be called before the regular onDefault has been processed, allowing customization of what + /// happens on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// /// Determines if the rest of the onDefault method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnDefault(global::System.Net.Http.HttpResponseMessage responseMessage, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnOk will be called before the regular onOk has been processed, allowing customization of what happens + /// on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// 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() + { + var telemetryId = Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.GetTelemetryId.Invoke(); + if (telemetryId != "" && telemetryId != "internal") + { + __correlationId = telemetryId; + } + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + + } + + /// Handles/Dispatches events during the call to the REST service. + /// The message id + /// The message cancellation token. When this call is cancelled, this should be true + /// Detailed message data for the message event. + /// + /// A that will be complete when handling of the message is completed. + /// + async global::System.Threading.Tasks.Task Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener.Signal(string id, global::System.Threading.CancellationToken token, global::System.Func messageData) + { + using( NoSynchronizationContext ) + { + if (token.IsCancellationRequested) + { + return ; + } + + switch ( id ) + { + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Information: + { + var data = messageData(); + WriteInformation(data.Message, new string[]{}); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Error: + { + WriteError(new global::System.Management.Automation.ErrorRecord( new global::System.Exception(messageData().Message), string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null ) ); + return ; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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 NewAzEventGridPartnerNamespaceKey_RegenerateViaIdentity() + { + + } + + /// Performs execution of the command. + protected override void ProcessRecord() + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + if (ShouldProcess($"Call remote 'PartnerNamespacesRegenerateKey' operation")) + { + using( var asyncCommandRuntime = new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token); + } + } + } + catch (global::System.AggregateException aggregateException) + { + // unroll the inner exceptions to get the root cause + foreach( var innerException in aggregateException.Flatten().InnerExceptions ) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(innerException,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + } + catch (global::System.Exception exception) when ((exception as System.Management.Automation.PipelineStoppedException)== null || (exception as System.Management.Automation.PipelineStoppedException).InnerException != null) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(exception,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + finally + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletProcessRecordEnd).Wait(); + } + } + + /// Performs execution of the command, working asynchronously if required. + /// + /// A that will be complete when handling of the method is completed. + /// + protected async global::System.Threading.Tasks.Task ProcessRecordAsync() + { + using( NoSynchronizationContext ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + if (InputObject?.Id != null) + { + await this.Client.PartnerNamespacesRegenerateKeyViaIdentity(InputObject.Id, RegenerateKeyRequest, 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.PartnerNamespaceName) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.PartnerNamespaceName"),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, InputObject) ); + } + await this.Client.PartnerNamespacesRegenerateKey(InputObject.SubscriptionId ?? null, InputObject.ResourceGroupName ?? null, InputObject.PartnerNamespaceName ?? null, RegenerateKeyRequest, onOk, onDefault, this, Pipeline); + } + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.UndeclaredResponseException urexception) + { + WriteError(new global::System.Management.Automation.ErrorRecord(urexception, urexception.StatusCode.ToString(), global::System.Management.Automation.ErrorCategory.InvalidOperation, new { body=RegenerateKeyRequest}) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(urexception.Message) { RecommendedAction = urexception.Action } + }); + } + finally + { + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Cancel(); + base.StopProcessing(); + } + + /// + /// a delegate that is called when the remote service returns default (any response code not handled elsewhere). + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onDefault(global::System.Net.Http.HttpResponseMessage responseMessage) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnDefault(responseMessage, ref _returnNow); + // if overrideOnDefault has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // Error Response : default + // Unrecognized Response. Create an error record based on what we have. + var ex = new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.RestException(responseMessage); + WriteError( new global::System.Management.Automation.ErrorRecord(ex, ex.Code, global::System.Management.Automation.ErrorCategory.InvalidOperation, new { body=RegenerateKeyRequest }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(ex.Message) { RecommendedAction = ex.Action } + }); + } + } + + /// a delegate that is called when the remote service returns 200 (OK). + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as 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.EventGrid.Models.Api20211015Preview.IPartnerNamespaceSharedAccessKeys + WriteObject((await response)); + } + } + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/cmdlets/NewAzEventGridPartnerNamespaceKey_RegenerateViaIdentityExpanded.cs b/swaggerci/eventgrid/generated/cmdlets/NewAzEventGridPartnerNamespaceKey_RegenerateViaIdentityExpanded.cs new file mode 100644 index 000000000000..f8594bb8d13b --- /dev/null +++ b/swaggerci/eventgrid/generated/cmdlets/NewAzEventGridPartnerNamespaceKey_RegenerateViaIdentityExpanded.cs @@ -0,0 +1,391 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Extensions; + using System; + + /// Regenerate a shared access key for a partner namespace. + /// + /// [OpenAPI] RegenerateKey=>POST:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.EventGrid/partnerNamespaces/{partnerNamespaceName}/regenerateKey" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsCommon.New, @"AzEventGridPartnerNamespaceKey_RegenerateViaIdentityExpanded", SupportsShouldProcess = true)] + [global::System.Management.Automation.OutputType(typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerNamespaceSharedAccessKeys))] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Description(@"Regenerate a shared access key for a partner namespace.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Generated] + public partial class NewAzEventGridPartnerNamespaceKey_RegenerateViaIdentityExpanded : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener + { + /// A unique id generatd for the this cmdlet when it is instantiated. + private string __correlationId = System.Guid.NewGuid().ToString(); + + /// A copy of the Invocation Info (necessary to allow asJob to clone this cmdlet) + private global::System.Management.Automation.InvocationInfo __invocationInfo; + + /// A unique id generatd for the this cmdlet when ProcessRecord() is called. + private string __processRecordId; + + /// + /// The for this operation. + /// + private global::System.Threading.CancellationTokenSource _cancellationTokenSource = new global::System.Threading.CancellationTokenSource(); + + /// PartnerNamespace regenerate shared access key request. + private Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerNamespaceRegenerateKeyRequest _regenerateKeyRequestBody = new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.PartnerNamespaceRegenerateKeyRequest(); + + /// Wait for .NET debugger to attach + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Wait for .NET debugger to attach")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.EventGridManagementClient Client => Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.ClientAPI; + + /// + /// The credentials, account, tenant, and subscription used for communication with Azure + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The credentials, account, tenant, and subscription used for communication with Azure.")] + [global::System.Management.Automation.ValidateNotNull] + [global::System.Management.Automation.Alias("AzureRMContext", "AzureCredential")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Azure)] + public global::System.Management.Automation.PSObject DefaultProfile { get; set; } + + /// SendAsync Pipeline Steps to be appended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be appended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[] HttpPipelineAppend { get; set; } + + /// SendAsync Pipeline Steps to be prepended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be prepended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[] HttpPipelinePrepend { get; set; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.IEventGridIdentity _inputObject; + + /// Identity Parameter + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Identity Parameter", ValueFromPipeline = true)] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Path)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.IEventGridIdentity InputObject { get => this._inputObject; set => this._inputObject = value; } + + /// Accessor for our copy of the InvocationInfo. + public global::System.Management.Automation.InvocationInfo InvocationInformation { get => __invocationInfo = __invocationInfo ?? this.MyInvocation ; set { __invocationInfo = value; } } + + /// Key name to regenerate (key1 or key2). + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Key name to regenerate (key1 or key2).")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Key name to regenerate (key1 or key2).", + SerializedName = @"keyName", + PossibleTypes = new [] { typeof(string) })] + public string KeyName { get => _regenerateKeyRequestBody.KeyName ?? null; set => _regenerateKeyRequestBody.KeyName = value; } + + /// + /// cancellation delegate. Stops the cmdlet when called. + /// + global::System.Action Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Runtime.HttpPipeline Pipeline { get; set; } + + /// The URI for the proxy server to use + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "The URI for the proxy server to use")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Uri Proxy { get; set; } + + /// Credentials for a proxy server to use for the remote call + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Credentials for a proxy server to use for the remote call")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Management.Automation.PSCredential ProxyCredential { get; set; } + + /// Use the default credentials for the proxy + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Use the default credentials for the proxy")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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. + /// /// Determines if the rest of the onDefault method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnDefault(global::System.Net.Http.HttpResponseMessage responseMessage, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnOk will be called before the regular onOk has been processed, allowing customization of what happens + /// on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// 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() + { + var telemetryId = Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.GetTelemetryId.Invoke(); + if (telemetryId != "" && telemetryId != "internal") + { + __correlationId = telemetryId; + } + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + + } + + /// Handles/Dispatches events during the call to the REST service. + /// The message id + /// The message cancellation token. When this call is cancelled, this should be true + /// Detailed message data for the message event. + /// + /// A that will be complete when handling of the message is completed. + /// + async global::System.Threading.Tasks.Task Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener.Signal(string id, global::System.Threading.CancellationToken token, global::System.Func messageData) + { + using( NoSynchronizationContext ) + { + if (token.IsCancellationRequested) + { + return ; + } + + switch ( id ) + { + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Information: + { + var data = messageData(); + WriteInformation(data.Message, new string[]{}); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Error: + { + WriteError(new global::System.Management.Automation.ErrorRecord( new global::System.Exception(messageData().Message), string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null ) ); + return ; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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 NewAzEventGridPartnerNamespaceKey_RegenerateViaIdentityExpanded() + { + + } + + /// Performs execution of the command. + protected override void ProcessRecord() + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + if (ShouldProcess($"Call remote 'PartnerNamespacesRegenerateKey' operation")) + { + using( var asyncCommandRuntime = new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token); + } + } + } + catch (global::System.AggregateException aggregateException) + { + // unroll the inner exceptions to get the root cause + foreach( var innerException in aggregateException.Flatten().InnerExceptions ) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(innerException,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + } + catch (global::System.Exception exception) when ((exception as System.Management.Automation.PipelineStoppedException)== null || (exception as System.Management.Automation.PipelineStoppedException).InnerException != null) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(exception,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + finally + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletProcessRecordEnd).Wait(); + } + } + + /// Performs execution of the command, working asynchronously if required. + /// + /// A that will be complete when handling of the method is completed. + /// + protected async global::System.Threading.Tasks.Task ProcessRecordAsync() + { + using( NoSynchronizationContext ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + if (InputObject?.Id != null) + { + await this.Client.PartnerNamespacesRegenerateKeyViaIdentity(InputObject.Id, _regenerateKeyRequestBody, 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.PartnerNamespaceName) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.PartnerNamespaceName"),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, InputObject) ); + } + await this.Client.PartnerNamespacesRegenerateKey(InputObject.SubscriptionId ?? null, InputObject.ResourceGroupName ?? null, InputObject.PartnerNamespaceName ?? null, _regenerateKeyRequestBody, onOk, onDefault, this, Pipeline); + } + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.UndeclaredResponseException urexception) + { + WriteError(new global::System.Management.Automation.ErrorRecord(urexception, urexception.StatusCode.ToString(), global::System.Management.Automation.ErrorCategory.InvalidOperation, new { body=_regenerateKeyRequestBody}) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(urexception.Message) { RecommendedAction = urexception.Action } + }); + } + finally + { + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Cancel(); + base.StopProcessing(); + } + + /// + /// a delegate that is called when the remote service returns default (any response code not handled elsewhere). + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onDefault(global::System.Net.Http.HttpResponseMessage responseMessage) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnDefault(responseMessage, ref _returnNow); + // if overrideOnDefault has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // Error Response : default + // Unrecognized Response. Create an error record based on what we have. + var ex = new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.RestException(responseMessage); + WriteError( new global::System.Management.Automation.ErrorRecord(ex, ex.Code, global::System.Management.Automation.ErrorCategory.InvalidOperation, new { body=_regenerateKeyRequestBody }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(ex.Message) { RecommendedAction = ex.Action } + }); + } + } + + /// a delegate that is called when the remote service returns 200 (OK). + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as 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.EventGrid.Models.Api20211015Preview.IPartnerNamespaceSharedAccessKeys + WriteObject((await response)); + } + } + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/cmdlets/NewAzEventGridPartnerNamespace_CreateExpanded.cs b/swaggerci/eventgrid/generated/cmdlets/NewAzEventGridPartnerNamespace_CreateExpanded.cs new file mode 100644 index 000000000000..db7beec104e0 --- /dev/null +++ b/swaggerci/eventgrid/generated/cmdlets/NewAzEventGridPartnerNamespace_CreateExpanded.cs @@ -0,0 +1,530 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Extensions; + using System; + + /// Asynchronously creates a new partner namespace with the specified parameters. + /// + /// [OpenAPI] CreateOrUpdate=>PUT:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.EventGrid/partnerNamespaces/{partnerNamespaceName}" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsCommon.New, @"AzEventGridPartnerNamespace_CreateExpanded", SupportsShouldProcess = true)] + [global::System.Management.Automation.OutputType(typeof(bool))] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Description(@"Asynchronously creates a new partner namespace with the specified parameters.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Generated] + public partial class NewAzEventGridPartnerNamespace_CreateExpanded : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener + { + /// A unique id generatd for the this cmdlet when it is instantiated. + private string __correlationId = System.Guid.NewGuid().ToString(); + + /// A copy of the Invocation Info (necessary to allow asJob to clone this cmdlet) + private global::System.Management.Automation.InvocationInfo __invocationInfo; + + /// A unique id generatd for the this cmdlet when ProcessRecord() is called. + private string __processRecordId; + + /// + /// The for this operation. + /// + private global::System.Threading.CancellationTokenSource _cancellationTokenSource = new global::System.Threading.CancellationTokenSource(); + + /// EventGrid Partner Namespace. + private Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerNamespace _partnerNamespaceInfoBody = new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.PartnerNamespace(); + + /// 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.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.EventGridManagementClient Client => Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.ClientAPI; + + /// + /// The credentials, account, tenant, and subscription used for communication with Azure + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The credentials, account, tenant, and subscription used for communication with Azure.")] + [global::System.Management.Automation.ValidateNotNull] + [global::System.Management.Automation.Alias("AzureRMContext", "AzureCredential")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Azure)] + public global::System.Management.Automation.PSObject DefaultProfile { get; set; } + + /// + /// This boolean is used to enable or disable local auth. Default value is false. When the property is set to true, only AAD + /// token will be used to authenticate if user is allowed to publish to the partner namespace. + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "This boolean is used to enable or disable local auth. Default value is false. When the property is set to true, only AAD token will be used to authenticate if user is allowed to publish to the partner namespace.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"This boolean is used to enable or disable local auth. Default value is false. When the property is set to true, only AAD token will be used to authenticate if user is allowed to publish to the partner namespace.", + SerializedName = @"disableLocalAuth", + PossibleTypes = new [] { typeof(global::System.Management.Automation.SwitchParameter) })] + public global::System.Management.Automation.SwitchParameter DisableLocalAuth { get => _partnerNamespaceInfoBody.DisableLocalAuth ?? default(global::System.Management.Automation.SwitchParameter); set => _partnerNamespaceInfoBody.DisableLocalAuth = 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.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[] HttpPipelineAppend { get; set; } + + /// SendAsync Pipeline Steps to be prepended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be prepended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[] HttpPipelinePrepend { get; set; } + + /// + /// This can be used to restrict traffic from specific IPs instead of all IPs. Note: These are considered only if PublicNetworkAccess + /// is enabled. + /// + [global::System.Management.Automation.AllowEmptyCollection] + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "This can be used to restrict traffic from specific IPs instead of all IPs. Note: These are considered only if PublicNetworkAccess is enabled.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"This can be used to restrict traffic from specific IPs instead of all IPs. Note: These are considered only if PublicNetworkAccess is enabled.", + SerializedName = @"inboundIpRules", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IInboundIPRule) })] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IInboundIPRule[] InboundIPRule { get => _partnerNamespaceInfoBody.InboundIPRule ?? null /* arrayOf */; set => _partnerNamespaceInfoBody.InboundIPRule = value; } + + /// Accessor for our copy of the InvocationInfo. + public global::System.Management.Automation.InvocationInfo InvocationInformation { get => __invocationInfo = __invocationInfo ?? this.MyInvocation ; set { __invocationInfo = value; } } + + /// Location of the resource. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Location of the resource.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Location of the resource.", + SerializedName = @"location", + PossibleTypes = new [] { typeof(string) })] + public string Location { get => _partnerNamespaceInfoBody.Location ?? null; set => _partnerNamespaceInfoBody.Location = value; } + + /// + /// cancellation delegate. Stops the cmdlet when called. + /// + global::System.Action Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener.Token => _cancellationTokenSource.Token; + + /// Backing field for property. + private string _name; + + /// Name of the partner namespace. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Name of the partner namespace.")] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Name of the partner namespace.", + SerializedName = @"partnerNamespaceName", + PossibleTypes = new [] { typeof(string) })] + [global::System.Management.Automation.Alias("PartnerNamespaceName")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Path)] + public string Name { get => this._name; set => this._name = value; } + + /// + /// when specified, will make the remote call, and return an AsyncOperationResponse, letting the remote operation continue + /// asynchronously. + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Run the command asynchronously")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter NoWait { get; set; } + + /// + /// The fully qualified ARM Id of the partner registration that should be associated with this partner namespace. This takes + /// the following format:/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.EventGrid/partnerRegistrations/{partnerRegistrationName}. + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The fully qualified ARM Id of the partner registration that should be associated with this partner namespace. This takes the following format:/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.EventGrid/partnerRegistrations/{partnerRegistrationName}.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The fully qualified ARM Id of the partner registration that should be associated with this partner namespace. This takes the following format:/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.EventGrid/partnerRegistrations/{partnerRegistrationName}.", + SerializedName = @"partnerRegistrationFullyQualifiedId", + PossibleTypes = new [] { typeof(string) })] + public string PartnerRegistrationFullyQualifiedId { get => _partnerNamespaceInfoBody.PartnerRegistrationFullyQualifiedId ?? null; set => _partnerNamespaceInfoBody.PartnerRegistrationFullyQualifiedId = value; } + + /// + /// This determines if events published to this partner namespace should use the source attribute in the event payloador use + /// the channel name in the header when matching to the partner topic. If none is specified, source attribute routing will + /// be used to match the partner topic. + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "This determines if events published to this partner namespace should use the source attribute in the event payloador use the channel name in the header when matching to the partner topic. If none is specified, source attribute routing will be used to match the partner topic.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"This determines if events published to this partner namespace should use the source attribute in the event payloador use the channel name in the header when matching to the partner topic. If none is specified, source attribute routing will be used to match the partner topic.", + SerializedName = @"partnerTopicRoutingMode", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.PartnerTopicRoutingMode) })] + [global::System.Management.Automation.ArgumentCompleter(typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.PartnerTopicRoutingMode))] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.PartnerTopicRoutingMode PartnerTopicRoutingMode { get => _partnerNamespaceInfoBody.PartnerTopicRoutingMode ?? ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.PartnerTopicRoutingMode)""); set => _partnerNamespaceInfoBody.PartnerTopicRoutingMode = 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.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Runtime.HttpPipeline Pipeline { get; set; } + + /// The URI for the proxy server to use + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "The URI for the proxy server to use")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Uri Proxy { get; set; } + + /// Credentials for a proxy server to use for the remote call + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Credentials for a proxy server to use for the remote call")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Management.Automation.PSCredential ProxyCredential { get; set; } + + /// Use the default credentials for the proxy + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Use the default credentials for the proxy")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter ProxyUseDefaultCredentials { get; set; } + + /// + /// This determines if traffic is allowed over public network. By default it is enabled.You can further restrict to specific + /// IPs by configuring + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "This determines if traffic is allowed over public network. By default it is enabled.You can further restrict to specific IPs by configuring ")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"This determines if traffic is allowed over public network. By default it is enabled.You can further restrict to specific IPs by configuring ", + SerializedName = @"publicNetworkAccess", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.PublicNetworkAccess) })] + [global::System.Management.Automation.ArgumentCompleter(typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.PublicNetworkAccess))] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.PublicNetworkAccess PublicNetworkAccess { get => _partnerNamespaceInfoBody.PublicNetworkAccess ?? ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.PublicNetworkAccess)""); set => _partnerNamespaceInfoBody.PublicNetworkAccess = value; } + + /// Backing field for property. + private string _resourceGroupName; + + /// The name of the resource group within the user's subscription. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the resource group within the user's subscription.")] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the resource group within the user's subscription.", + SerializedName = @"resourceGroupName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Path)] + public string ResourceGroupName { get => this._resourceGroupName; set => this._resourceGroupName = value; } + + /// Backing field for property. + private string _subscriptionId; + + /// + /// Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription ID forms part of the + /// URI for every service call. + /// + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.")] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.", + SerializedName = @"subscriptionId", + PossibleTypes = new [] { typeof(string) })] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.DefaultInfo( + Name = @"", + Description =@"", + Script = @"(Get-AzContext).Subscription.Id")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Path)] + public string SubscriptionId { get => this._subscriptionId; set => this._subscriptionId = value; } + + /// Tags of the resource. + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ExportAs(typeof(global::System.Collections.Hashtable))] + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Tags of the resource.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Tags of the resource.", + SerializedName = @"tags", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITrackedResourceTags) })] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITrackedResourceTags Tag { get => _partnerNamespaceInfoBody.Tag ?? null /* object */; set => _partnerNamespaceInfoBody.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. + /// /// Determines if the rest of the onDefault method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnDefault(global::System.Net.Http.HttpResponseMessage responseMessage, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// (overrides the default BeginProcessing method in global::System.Management.Automation.PSCmdlet) + /// + protected override void BeginProcessing() + { + var telemetryId = Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.GetTelemetryId.Invoke(); + if (telemetryId != "" && telemetryId != "internal") + { + __correlationId = telemetryId; + } + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Creates a duplicate instance of this cmdlet (via JSON serialization). + /// a duplicate instance of NewAzEventGridPartnerNamespace_CreateExpanded + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Cmdlets.NewAzEventGridPartnerNamespace_CreateExpanded Clone() + { + var clone = new NewAzEventGridPartnerNamespace_CreateExpanded(); + clone.__correlationId = this.__correlationId; + clone.__processRecordId = this.__processRecordId; + clone.DefaultProfile = this.DefaultProfile; + clone.InvocationInformation = this.InvocationInformation; + clone.Proxy = this.Proxy; + clone.Pipeline = this.Pipeline; + clone.AsJob = this.AsJob; + clone.Break = this.Break; + clone.ProxyCredential = this.ProxyCredential; + clone.ProxyUseDefaultCredentials = this.ProxyUseDefaultCredentials; + clone.HttpPipelinePrepend = this.HttpPipelinePrepend; + clone.HttpPipelineAppend = this.HttpPipelineAppend; + clone._partnerNamespaceInfoBody = this._partnerNamespaceInfoBody; + clone.SubscriptionId = this.SubscriptionId; + clone.ResourceGroupName = this.ResourceGroupName; + clone.Name = this.Name; + return clone; + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + + } + + /// Handles/Dispatches events during the call to the REST service. + /// The message id + /// The message cancellation token. When this call is cancelled, this should be true + /// Detailed message data for the message event. + /// + /// A that will be complete when handling of the message is completed. + /// + async global::System.Threading.Tasks.Task Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener.Signal(string id, global::System.Threading.CancellationToken token, global::System.Func messageData) + { + using( NoSynchronizationContext ) + { + if (token.IsCancellationRequested) + { + return ; + } + + switch ( id ) + { + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.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.EventGrid.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.EventGrid.Runtime.PowerShell.AsyncOperationResponse { Target = uri }); + // do nothing more. + data.Cancel(); + return; + } + } + break; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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 NewAzEventGridPartnerNamespace_CreateExpanded() + { + + } + + /// Performs execution of the command. + protected override void ProcessRecord() + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + if (ShouldProcess($"Call remote 'PartnerNamespacesCreateOrUpdate' operation")) + { + if (true == MyInvocation?.BoundParameters?.ContainsKey("AsJob")) + { + var instance = this.Clone(); + var job = new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token); + } + } + } + } + catch (global::System.AggregateException aggregateException) + { + // unroll the inner exceptions to get the root cause + foreach( var innerException in aggregateException.Flatten().InnerExceptions ) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(innerException,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + } + catch (global::System.Exception exception) when ((exception as System.Management.Automation.PipelineStoppedException)== null || (exception as System.Management.Automation.PipelineStoppedException).InnerException != null) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(exception,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + finally + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletProcessRecordEnd).Wait(); + } + } + + /// Performs execution of the command, working asynchronously if required. + /// + /// A that will be complete when handling of the method is completed. + /// + protected async global::System.Threading.Tasks.Task ProcessRecordAsync() + { + using( NoSynchronizationContext ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await this.Client.PartnerNamespacesCreateOrUpdate(SubscriptionId, ResourceGroupName, Name, _partnerNamespaceInfoBody, onDefault, this, Pipeline); + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.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=_partnerNamespaceInfoBody}) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(urexception.Message) { RecommendedAction = urexception.Action } + }); + } + finally + { + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Cancel(); + base.StopProcessing(); + } + + /// + /// a delegate that is called when the remote service returns default (any response code not handled elsewhere). + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onDefault(global::System.Net.Http.HttpResponseMessage responseMessage) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnDefault(responseMessage, ref _returnNow); + // if overrideOnDefault has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // Error Response : default + // Unrecognized Response. Create an error record based on what we have. + var ex = new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.RestException(responseMessage); + WriteError( new global::System.Management.Automation.ErrorRecord(ex, ex.Code, global::System.Management.Automation.ErrorCategory.InvalidOperation, new { SubscriptionId=SubscriptionId, ResourceGroupName=ResourceGroupName, Name=Name, body=_partnerNamespaceInfoBody }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(ex.Message) { RecommendedAction = ex.Action } + }); + } + } + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/cmdlets/NewAzEventGridPartnerRegistration_CreateExpanded.cs b/swaggerci/eventgrid/generated/cmdlets/NewAzEventGridPartnerRegistration_CreateExpanded.cs new file mode 100644 index 000000000000..fab8beb73180 --- /dev/null +++ b/swaggerci/eventgrid/generated/cmdlets/NewAzEventGridPartnerRegistration_CreateExpanded.cs @@ -0,0 +1,655 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Extensions; + using System; + + /// Creates a new partner registration with the specified parameters. + /// + /// [OpenAPI] CreateOrUpdate=>PUT:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.EventGrid/partnerRegistrations/{partnerRegistrationName}" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsCommon.New, @"AzEventGridPartnerRegistration_CreateExpanded", SupportsShouldProcess = true)] + [global::System.Management.Automation.OutputType(typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerRegistration))] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Description(@"Creates a new partner registration with the specified parameters.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Generated] + public partial class NewAzEventGridPartnerRegistration_CreateExpanded : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener + { + /// A unique id generatd for the this cmdlet when it is instantiated. + private string __correlationId = System.Guid.NewGuid().ToString(); + + /// A copy of the Invocation Info (necessary to allow asJob to clone this cmdlet) + private global::System.Management.Automation.InvocationInfo __invocationInfo; + + /// A unique id generatd for the this cmdlet when ProcessRecord() is called. + private string __processRecordId; + + /// + /// The for this operation. + /// + private global::System.Threading.CancellationTokenSource _cancellationTokenSource = new global::System.Threading.CancellationTokenSource(); + + /// Information about a partner registration. + private Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerRegistration _partnerRegistrationInfoBody = new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.PartnerRegistration(); + + /// 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.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter AsJob { get; set; } + + /// + /// List of Azure subscription Ids that are authorized to create a partner namespaceassociated with this partner registration. + /// This is an optional property. Creatingpartner namespaces is always permitted under the same Azure subscription as the + /// one usedfor creating the partner registration. + /// + [global::System.Management.Automation.AllowEmptyCollection] + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "List of Azure subscription Ids that are authorized to create a partner namespaceassociated with this partner registration. This is an optional property. Creatingpartner namespaces is always permitted under the same Azure subscription as the one usedfor creating the partner registration.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"List of Azure subscription Ids that are authorized to create a partner namespaceassociated with this partner registration. This is an optional property. Creatingpartner namespaces is always permitted under the same Azure subscription as the one usedfor creating the partner registration.", + SerializedName = @"authorizedAzureSubscriptionIds", + PossibleTypes = new [] { typeof(string) })] + public string[] AuthorizedAzureSubscriptionId { get => _partnerRegistrationInfoBody.AuthorizedAzureSubscriptionId ?? null /* arrayOf */; set => _partnerRegistrationInfoBody.AuthorizedAzureSubscriptionId = 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.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.EventGridManagementClient Client => Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.ClientAPI; + + /// The extension of the customer service URI of the publisher. + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The extension of the customer service URI of the publisher.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The extension of the customer service URI of the publisher.", + SerializedName = @"customerServiceUri", + PossibleTypes = new [] { typeof(string) })] + public string CustomerServiceUri { get => _partnerRegistrationInfoBody.CustomerServiceUri ?? null; set => _partnerRegistrationInfoBody.CustomerServiceUri = 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.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Azure)] + public global::System.Management.Automation.PSObject DefaultProfile { get; set; } + + /// SendAsync Pipeline Steps to be appended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be appended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[] HttpPipelineAppend { get; set; } + + /// SendAsync Pipeline Steps to be prepended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be prepended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[] HttpPipelinePrepend { get; set; } + + /// Accessor for our copy of the InvocationInfo. + public global::System.Management.Automation.InvocationInfo InvocationInformation { get => __invocationInfo = __invocationInfo ?? this.MyInvocation ; set { __invocationInfo = value; } } + + /// Location of the resource. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Location of the resource.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Location of the resource.", + SerializedName = @"location", + PossibleTypes = new [] { typeof(string) })] + public string Location { get => _partnerRegistrationInfoBody.Location ?? null; set => _partnerRegistrationInfoBody.Location = value; } + + /// URI of the logo. + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "URI of the logo.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"URI of the logo.", + SerializedName = @"logoUri", + PossibleTypes = new [] { typeof(string) })] + public string LogoUri { get => _partnerRegistrationInfoBody.LogoUri ?? null; set => _partnerRegistrationInfoBody.LogoUri = value; } + + /// + /// Long description for the custom scenarios and integration to be displayed in the portal if needed.Length of this description + /// should not exceed 2048 characters. + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Long description for the custom scenarios and integration to be displayed in the portal if needed.Length of this description should not exceed 2048 characters.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Long description for the custom scenarios and integration to be displayed in the portal if needed.Length of this description should not exceed 2048 characters.", + SerializedName = @"longDescription", + PossibleTypes = new [] { typeof(string) })] + public string LongDescription { get => _partnerRegistrationInfoBody.LongDescription ?? null; set => _partnerRegistrationInfoBody.LongDescription = value; } + + /// + /// cancellation delegate. Stops the cmdlet when called. + /// + global::System.Action Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener.Token => _cancellationTokenSource.Token; + + /// Backing field for property. + private string _name; + + /// Name of the partner registration. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Name of the partner registration.")] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Name of the partner registration.", + SerializedName = @"partnerRegistrationName", + PossibleTypes = new [] { typeof(string) })] + [global::System.Management.Automation.Alias("PartnerRegistrationName")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Path)] + public string Name { get => this._name; set => this._name = value; } + + /// + /// when specified, will make the remote call, and return an AsyncOperationResponse, letting the remote operation continue + /// asynchronously. + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Run the command asynchronously")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter NoWait { get; set; } + + /// + /// The extension of the customer service number of the publisher. Only digits are allowed and number of digits should not + /// exceed 10. + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The extension of the customer service number of the publisher. Only digits are allowed and number of digits should not exceed 10.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The extension of the customer service number of the publisher. Only digits are allowed and number of digits should not exceed 10.", + SerializedName = @"partnerCustomerServiceExtension", + PossibleTypes = new [] { typeof(string) })] + public string PartnerCustomerServiceExtension { get => _partnerRegistrationInfoBody.PartnerCustomerServiceExtension ?? null; set => _partnerRegistrationInfoBody.PartnerCustomerServiceExtension = value; } + + /// + /// The customer service number of the publisher. The expected phone format should start with a '+' sign followed by the country + /// code. The remaining digits are then followed. Only digits and spaces are allowed and itslength cannot exceed 16 digits + /// including country code. Examples of valid phone numbers are: +1 515 123 4567 and+966 7 5115 2471. Examples of invalid + /// phone numbers are: +1 (515) 123-4567, 1 515 123 4567 and +966 121 5115 24 7 551 1234 43 + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The customer service number of the publisher. The expected phone format should start with a '+' sign followed by the country code. The remaining digits are then followed. Only digits and spaces are allowed and itslength cannot exceed 16 digits including country code. Examples of valid phone numbers are: +1 515 123 4567 and+966 7 5115 2471. Examples of invalid phone numbers are: +1 (515) 123-4567, 1 515 123 4567 and +966 121 5115 24 7 551 1234 43")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The customer service number of the publisher. The expected phone format should start with a '+' sign followed by the country code. The remaining digits are then followed. Only digits and spaces are allowed and itslength cannot exceed 16 digits including country code. Examples of valid phone numbers are: +1 515 123 4567 and+966 7 5115 2471. Examples of invalid phone numbers are: +1 (515) 123-4567, 1 515 123 4567 and +966 121 5115 24 7 551 1234 43", + SerializedName = @"partnerCustomerServiceNumber", + PossibleTypes = new [] { typeof(string) })] + public string PartnerCustomerServiceNumber { get => _partnerRegistrationInfoBody.PartnerCustomerServiceNumber ?? null; set => _partnerRegistrationInfoBody.PartnerCustomerServiceNumber = value; } + + /// Official name of the partner name. For example: "Contoso". + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Official name of the partner name. For example: \"Contoso\".")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Official name of the partner name. For example: ""Contoso"".", + SerializedName = @"partnerName", + PossibleTypes = new [] { typeof(string) })] + public string PartnerName { get => _partnerRegistrationInfoBody.PartnerName ?? null; set => _partnerRegistrationInfoBody.PartnerName = value; } + + /// The immutableId of the corresponding partner registration. + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The immutableId of the corresponding partner registration.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The immutableId of the corresponding partner registration.", + SerializedName = @"partnerRegistrationImmutableId", + PossibleTypes = new [] { typeof(string) })] + public string PartnerRegistrationImmutableId { get => _partnerRegistrationInfoBody.ImmutableId ?? null; set => _partnerRegistrationInfoBody.ImmutableId = value; } + + /// + /// Short description of the partner resource type. The length of this description should not exceed 256 characters. + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Short description of the partner resource type. The length of this description should not exceed 256 characters.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Short description of the partner resource type. The length of this description should not exceed 256 characters.", + SerializedName = @"partnerResourceTypeDescription", + PossibleTypes = new [] { typeof(string) })] + public string PartnerResourceTypeDescription { get => _partnerRegistrationInfoBody.PartnerResourceTypeDescription ?? null; set => _partnerRegistrationInfoBody.PartnerResourceTypeDescription = value; } + + /// Display name of the partner resource type. + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Display name of the partner resource type.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Display name of the partner resource type.", + SerializedName = @"partnerResourceTypeDisplayName", + PossibleTypes = new [] { typeof(string) })] + public string PartnerResourceTypeDisplayName { get => _partnerRegistrationInfoBody.PartnerResourceTypeDisplayName ?? null; set => _partnerRegistrationInfoBody.PartnerResourceTypeDisplayName = value; } + + /// Name of the partner resource type. + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Name of the partner resource type.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Name of the partner resource type.", + SerializedName = @"partnerResourceTypeName", + PossibleTypes = new [] { typeof(string) })] + public string PartnerResourceTypeName { get => _partnerRegistrationInfoBody.PartnerResourceTypeName ?? null; set => _partnerRegistrationInfoBody.PartnerResourceTypeName = 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.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Runtime.HttpPipeline Pipeline { get; set; } + + /// The URI for the proxy server to use + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "The URI for the proxy server to use")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Uri Proxy { get; set; } + + /// Credentials for a proxy server to use for the remote call + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Credentials for a proxy server to use for the remote call")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Management.Automation.PSCredential ProxyCredential { get; set; } + + /// Use the default credentials for the proxy + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Use the default credentials for the proxy")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter ProxyUseDefaultCredentials { get; set; } + + /// Backing field for property. + private string _resourceGroupName; + + /// The name of the resource group within the user's subscription. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the resource group within the user's subscription.")] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the resource group within the user's subscription.", + SerializedName = @"resourceGroupName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Path)] + public string ResourceGroupName { get => this._resourceGroupName; set => this._resourceGroupName = value; } + + /// + /// URI of the partner website that can be used by Azure customers to setup Event Gridintegration on an event source. + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "URI of the partner website that can be used by Azure customers to setup Event Gridintegration on an event source.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"URI of the partner website that can be used by Azure customers to setup Event Gridintegration on an event source.", + SerializedName = @"setupUri", + PossibleTypes = new [] { typeof(string) })] + public string SetupUri { get => _partnerRegistrationInfoBody.SetupUri ?? null; set => _partnerRegistrationInfoBody.SetupUri = value; } + + /// Backing field for property. + private string _subscriptionId; + + /// + /// Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription ID forms part of the + /// URI for every service call. + /// + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.")] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.", + SerializedName = @"subscriptionId", + PossibleTypes = new [] { typeof(string) })] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.DefaultInfo( + Name = @"", + Description =@"", + Script = @"(Get-AzContext).Subscription.Id")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Path)] + public string SubscriptionId { get => this._subscriptionId; set => this._subscriptionId = value; } + + /// Tags of the resource. + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ExportAs(typeof(global::System.Collections.Hashtable))] + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Tags of the resource.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Tags of the resource.", + SerializedName = @"tags", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITrackedResourceTags) })] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITrackedResourceTags Tag { get => _partnerRegistrationInfoBody.Tag ?? null /* object */; set => _partnerRegistrationInfoBody.Tag = value; } + + /// Visibility state of the partner registration. + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Visibility state of the partner registration.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Visibility state of the partner registration.", + SerializedName = @"visibilityState", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.PartnerRegistrationVisibilityState) })] + [global::System.Management.Automation.ArgumentCompleter(typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.PartnerRegistrationVisibilityState))] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.PartnerRegistrationVisibilityState VisibilityState { get => _partnerRegistrationInfoBody.VisibilityState ?? ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.PartnerRegistrationVisibilityState)""); set => _partnerRegistrationInfoBody.VisibilityState = value; } + + /// + /// overrideOnDefault will be called before the regular onDefault has been processed, allowing customization of what + /// happens on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// /// Determines if the rest of the onDefault method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnDefault(global::System.Net.Http.HttpResponseMessage responseMessage, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnOk will be called before the regular onOk has been processed, allowing customization of what happens + /// on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// 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() + { + var telemetryId = Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.GetTelemetryId.Invoke(); + if (telemetryId != "" && telemetryId != "internal") + { + __correlationId = telemetryId; + } + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Creates a duplicate instance of this cmdlet (via JSON serialization). + /// a duplicate instance of NewAzEventGridPartnerRegistration_CreateExpanded + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Cmdlets.NewAzEventGridPartnerRegistration_CreateExpanded Clone() + { + var clone = new NewAzEventGridPartnerRegistration_CreateExpanded(); + clone.__correlationId = this.__correlationId; + clone.__processRecordId = this.__processRecordId; + clone.DefaultProfile = this.DefaultProfile; + clone.InvocationInformation = this.InvocationInformation; + clone.Proxy = this.Proxy; + clone.Pipeline = this.Pipeline; + clone.AsJob = this.AsJob; + clone.Break = this.Break; + clone.ProxyCredential = this.ProxyCredential; + clone.ProxyUseDefaultCredentials = this.ProxyUseDefaultCredentials; + clone.HttpPipelinePrepend = this.HttpPipelinePrepend; + clone.HttpPipelineAppend = this.HttpPipelineAppend; + clone._partnerRegistrationInfoBody = this._partnerRegistrationInfoBody; + clone.SubscriptionId = this.SubscriptionId; + clone.ResourceGroupName = this.ResourceGroupName; + clone.Name = this.Name; + return clone; + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + + } + + /// Handles/Dispatches events during the call to the REST service. + /// The message id + /// The message cancellation token. When this call is cancelled, this should be true + /// Detailed message data for the message event. + /// + /// A that will be complete when handling of the message is completed. + /// + async global::System.Threading.Tasks.Task Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener.Signal(string id, global::System.Threading.CancellationToken token, global::System.Func messageData) + { + using( NoSynchronizationContext ) + { + if (token.IsCancellationRequested) + { + return ; + } + + switch ( id ) + { + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.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.EventGrid.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.EventGrid.Runtime.PowerShell.AsyncOperationResponse { Target = uri }); + // do nothing more. + data.Cancel(); + return; + } + } + break; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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 NewAzEventGridPartnerRegistration_CreateExpanded() + { + + } + + /// Performs execution of the command. + protected override void ProcessRecord() + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + if (ShouldProcess($"Call remote 'PartnerRegistrationsCreateOrUpdate' operation")) + { + if (true == MyInvocation?.BoundParameters?.ContainsKey("AsJob")) + { + var instance = this.Clone(); + var job = new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token); + } + } + } + } + catch (global::System.AggregateException aggregateException) + { + // unroll the inner exceptions to get the root cause + foreach( var innerException in aggregateException.Flatten().InnerExceptions ) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(innerException,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + } + catch (global::System.Exception exception) when ((exception as System.Management.Automation.PipelineStoppedException)== null || (exception as System.Management.Automation.PipelineStoppedException).InnerException != null) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(exception,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + finally + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletProcessRecordEnd).Wait(); + } + } + + /// Performs execution of the command, working asynchronously if required. + /// + /// A that will be complete when handling of the method is completed. + /// + protected async global::System.Threading.Tasks.Task ProcessRecordAsync() + { + using( NoSynchronizationContext ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await this.Client.PartnerRegistrationsCreateOrUpdate(SubscriptionId, ResourceGroupName, Name, _partnerRegistrationInfoBody, onOk, onDefault, this, Pipeline); + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.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=_partnerRegistrationInfoBody}) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(urexception.Message) { RecommendedAction = urexception.Action } + }); + } + finally + { + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Cancel(); + base.StopProcessing(); + } + + /// + /// a delegate that is called when the remote service returns default (any response code not handled elsewhere). + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onDefault(global::System.Net.Http.HttpResponseMessage responseMessage) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnDefault(responseMessage, ref _returnNow); + // if overrideOnDefault has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // Error Response : default + // Unrecognized Response. Create an error record based on what we have. + var ex = new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.RestException(responseMessage); + WriteError( new global::System.Management.Automation.ErrorRecord(ex, ex.Code, global::System.Management.Automation.ErrorCategory.InvalidOperation, new { SubscriptionId=SubscriptionId, ResourceGroupName=ResourceGroupName, Name=Name, body=_partnerRegistrationInfoBody }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(ex.Message) { RecommendedAction = ex.Action } + }); + } + } + + /// a delegate that is called when the remote service returns 200 (OK). + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as 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.EventGrid.Models.Api20211015Preview.IPartnerRegistration + WriteObject((await response)); + } + } + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/cmdlets/NewAzEventGridPartnerTopicEventSubscription_CreateExpanded.cs b/swaggerci/eventgrid/generated/cmdlets/NewAzEventGridPartnerTopicEventSubscription_CreateExpanded.cs new file mode 100644 index 000000000000..eefc23e910b5 --- /dev/null +++ b/swaggerci/eventgrid/generated/cmdlets/NewAzEventGridPartnerTopicEventSubscription_CreateExpanded.cs @@ -0,0 +1,705 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Extensions; + using System; + + /// + /// Asynchronously creates or updates an event subscription of a partner topic with the specified parameters. Existing event + /// subscriptions will be updated with this API. + /// + /// + /// [OpenAPI] CreateOrUpdate=>PUT:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.EventGrid/partnerTopics/{partnerTopicName}/eventSubscriptions/{eventSubscriptionName}" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsCommon.New, @"AzEventGridPartnerTopicEventSubscription_CreateExpanded", SupportsShouldProcess = true)] + [global::System.Management.Automation.OutputType(typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscription))] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Description(@"Asynchronously creates or updates an event subscription of a partner topic with the specified parameters. Existing event subscriptions will be updated with this API.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Generated] + public partial class NewAzEventGridPartnerTopicEventSubscription_CreateExpanded : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener + { + /// A unique id generatd for the this cmdlet when it is instantiated. + private string __correlationId = System.Guid.NewGuid().ToString(); + + /// A copy of the Invocation Info (necessary to allow asJob to clone this cmdlet) + private global::System.Management.Automation.InvocationInfo __invocationInfo; + + /// A unique id generatd for the this cmdlet when ProcessRecord() is called. + private string __processRecordId; + + /// + /// The for this operation. + /// + private global::System.Threading.CancellationTokenSource _cancellationTokenSource = new global::System.Threading.CancellationTokenSource(); + + /// Event Subscription + private Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscription _eventSubscriptionInfoBody = new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.EventSubscription(); + + /// 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.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.EventGridManagementClient Client => Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.ClientAPI; + + /// + /// The type of managed identity used. The type 'SystemAssigned, UserAssigned' includes both an implicitly created identity + /// and a set of user-assigned identities. The type 'None' will remove any identity. + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The type of managed identity used. The type 'SystemAssigned, UserAssigned' includes both an implicitly created identity and a set of user-assigned identities. The type 'None' will remove any identity.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The type of managed identity used. The type 'SystemAssigned, UserAssigned' includes both an implicitly created identity and a set of user-assigned identities. The type 'None' will remove any identity.", + SerializedName = @"type", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EventSubscriptionIdentityType) })] + [global::System.Management.Automation.ArgumentCompleter(typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EventSubscriptionIdentityType))] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EventSubscriptionIdentityType DeadLetterWithResourceIdentityType { get => _eventSubscriptionInfoBody.DeadLetterWithResourceIdentityType ?? ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EventSubscriptionIdentityType)""); set => _eventSubscriptionInfoBody.DeadLetterWithResourceIdentityType = value; } + + /// The user identity associated with the resource. + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The user identity associated with the resource.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The user identity associated with the resource.", + SerializedName = @"userAssignedIdentity", + PossibleTypes = new [] { typeof(string) })] + public string DeadLetterWithResourceIdentityUserAssignedIdentity { get => _eventSubscriptionInfoBody.DeadLetterWithResourceIdentityUserAssignedIdentity ?? null; set => _eventSubscriptionInfoBody.DeadLetterWithResourceIdentityUserAssignedIdentity = 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.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Azure)] + public global::System.Management.Automation.PSObject DefaultProfile { get; set; } + + /// Type of the endpoint for the event subscription destination. + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Type of the endpoint for the event subscription destination.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Type of the endpoint for the event subscription destination.", + SerializedName = @"endpointType", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EndpointType) })] + [global::System.Management.Automation.ArgumentCompleter(typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EndpointType))] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EndpointType DeliveryWithResourceIdentityDestinationEndpointType { get => _eventSubscriptionInfoBody.DeliveryWithResourceIdentityDestinationEndpointType ?? ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EndpointType)""); set => _eventSubscriptionInfoBody.DeliveryWithResourceIdentityDestinationEndpointType = value; } + + /// + /// The type of managed identity used. The type 'SystemAssigned, UserAssigned' includes both an implicitly created identity + /// and a set of user-assigned identities. The type 'None' will remove any identity. + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The type of managed identity used. The type 'SystemAssigned, UserAssigned' includes both an implicitly created identity and a set of user-assigned identities. The type 'None' will remove any identity.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The type of managed identity used. The type 'SystemAssigned, UserAssigned' includes both an implicitly created identity and a set of user-assigned identities. The type 'None' will remove any identity.", + SerializedName = @"type", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EventSubscriptionIdentityType) })] + [global::System.Management.Automation.ArgumentCompleter(typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EventSubscriptionIdentityType))] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EventSubscriptionIdentityType DeliveryWithResourceIdentityType { get => _eventSubscriptionInfoBody.DeliveryWithResourceIdentityType ?? ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EventSubscriptionIdentityType)""); set => _eventSubscriptionInfoBody.DeliveryWithResourceIdentityType = value; } + + /// The user identity associated with the resource. + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The user identity associated with the resource.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The user identity associated with the resource.", + SerializedName = @"userAssignedIdentity", + PossibleTypes = new [] { typeof(string) })] + public string DeliveryWithResourceIdentityUserAssignedIdentity { get => _eventSubscriptionInfoBody.DeliveryWithResourceIdentityUserAssignedIdentity ?? null; set => _eventSubscriptionInfoBody.DeliveryWithResourceIdentityUserAssignedIdentity = value; } + + /// Type of the endpoint for the event subscription destination. + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Type of the endpoint for the event subscription destination.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Type of the endpoint for the event subscription destination.", + SerializedName = @"endpointType", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EndpointType) })] + [global::System.Management.Automation.ArgumentCompleter(typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EndpointType))] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EndpointType EndpointType { get => _eventSubscriptionInfoBody.EndpointType ?? ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EndpointType)""); set => _eventSubscriptionInfoBody.EndpointType = value; } + + /// The event delivery schema for the event subscription. + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The event delivery schema for the event subscription.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The event delivery schema for the event subscription.", + SerializedName = @"eventDeliverySchema", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EventDeliverySchema) })] + [global::System.Management.Automation.ArgumentCompleter(typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EventDeliverySchema))] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EventDeliverySchema EventDeliverySchema { get => _eventSubscriptionInfoBody.EventDeliverySchema ?? ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EventDeliverySchema)""); set => _eventSubscriptionInfoBody.EventDeliverySchema = value; } + + /// Backing field for property. + private string _eventSubscriptionName; + + /// + /// Name of the event subscription to be created. Event subscription names must be between 3 and 100 characters in length + /// and use alphanumeric letters only. + /// + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Name of the event subscription to be created. Event subscription names must be between 3 and 100 characters in length and use alphanumeric letters only.")] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Name of the event subscription to be created. Event subscription names must be between 3 and 100 characters in length and use alphanumeric letters only.", + SerializedName = @"eventSubscriptionName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Path)] + public string EventSubscriptionName { get => this._eventSubscriptionName; set => this._eventSubscriptionName = value; } + + /// Expiration time of the event subscription. + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Expiration time of the event subscription.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Expiration time of the event subscription.", + SerializedName = @"expirationTimeUtc", + PossibleTypes = new [] { typeof(global::System.DateTime) })] + public global::System.DateTime ExpirationTimeUtc { get => _eventSubscriptionInfoBody.ExpirationTimeUtc ?? default(global::System.DateTime); set => _eventSubscriptionInfoBody.ExpirationTimeUtc = value; } + + /// An array of advanced filters that are used for filtering event subscriptions. + [global::System.Management.Automation.AllowEmptyCollection] + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "An array of advanced filters that are used for filtering event subscriptions.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"An array of advanced filters that are used for filtering event subscriptions.", + SerializedName = @"advancedFilters", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IAdvancedFilter) })] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IAdvancedFilter[] FilterAdvancedFilter { get => _eventSubscriptionInfoBody.FilterAdvancedFilter ?? null /* arrayOf */; set => _eventSubscriptionInfoBody.FilterAdvancedFilter = value; } + + /// + /// Allows advanced filters to be evaluated against an array of values instead of expecting a singular value. + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Allows advanced filters to be evaluated against an array of values instead of expecting a singular value.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Allows advanced filters to be evaluated against an array of values instead of expecting a singular value.", + SerializedName = @"enableAdvancedFilteringOnArrays", + PossibleTypes = new [] { typeof(global::System.Management.Automation.SwitchParameter) })] + public global::System.Management.Automation.SwitchParameter FilterEnableAdvancedFilteringOnArray { get => _eventSubscriptionInfoBody.FilterEnableAdvancedFilteringOnArray ?? default(global::System.Management.Automation.SwitchParameter); set => _eventSubscriptionInfoBody.FilterEnableAdvancedFilteringOnArray = value; } + + /// + /// A list of applicable event types that need to be part of the event subscription. If it is desired to subscribe to all + /// default event types, set the IncludedEventTypes to null. + /// + [global::System.Management.Automation.AllowEmptyCollection] + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "A list of applicable event types that need to be part of the event subscription. If it is desired to subscribe to all default event types, set the IncludedEventTypes to null.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"A list of applicable event types that need to be part of the event subscription. If it is desired to subscribe to all default event types, set the IncludedEventTypes to null.", + SerializedName = @"includedEventTypes", + PossibleTypes = new [] { typeof(string) })] + public string[] FilterIncludedEventType { get => _eventSubscriptionInfoBody.FilterIncludedEventType ?? null /* arrayOf */; set => _eventSubscriptionInfoBody.FilterIncludedEventType = value; } + + /// + /// Specifies if the SubjectBeginsWith and SubjectEndsWith properties of the filtershould be compared in a case sensitive + /// manner. + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Specifies if the SubjectBeginsWith and SubjectEndsWith properties of the filtershould be compared in a case sensitive manner.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Specifies if the SubjectBeginsWith and SubjectEndsWith properties of the filtershould be compared in a case sensitive manner.", + SerializedName = @"isSubjectCaseSensitive", + PossibleTypes = new [] { typeof(global::System.Management.Automation.SwitchParameter) })] + public global::System.Management.Automation.SwitchParameter FilterIsSubjectCaseSensitive { get => _eventSubscriptionInfoBody.FilterIsSubjectCaseSensitive ?? default(global::System.Management.Automation.SwitchParameter); set => _eventSubscriptionInfoBody.FilterIsSubjectCaseSensitive = value; } + + /// + /// An optional string to filter events for an event subscription based on a resource path prefix.The format of this depends + /// on the publisher of the events.Wildcard characters are not supported in this path. + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "An optional string to filter events for an event subscription based on a resource path prefix.The format of this depends on the publisher of the events.Wildcard characters are not supported in this path.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"An optional string to filter events for an event subscription based on a resource path prefix.The format of this depends on the publisher of the events.Wildcard characters are not supported in this path.", + SerializedName = @"subjectBeginsWith", + PossibleTypes = new [] { typeof(string) })] + public string FilterSubjectBeginsWith { get => _eventSubscriptionInfoBody.FilterSubjectBeginsWith ?? null; set => _eventSubscriptionInfoBody.FilterSubjectBeginsWith = value; } + + /// + /// An optional string to filter events for an event subscription based on a resource path suffix.Wildcard characters are + /// not supported in this path. + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "An optional string to filter events for an event subscription based on a resource path suffix.Wildcard characters are not supported in this path.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"An optional string to filter events for an event subscription based on a resource path suffix.Wildcard characters are not supported in this path.", + SerializedName = @"subjectEndsWith", + PossibleTypes = new [] { typeof(string) })] + public string FilterSubjectEndsWith { get => _eventSubscriptionInfoBody.FilterSubjectEndsWith ?? null; set => _eventSubscriptionInfoBody.FilterSubjectEndsWith = 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.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[] HttpPipelineAppend { get; set; } + + /// SendAsync Pipeline Steps to be prepended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be prepended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[] HttpPipelinePrepend { get; set; } + + /// Accessor for our copy of the InvocationInfo. + public global::System.Management.Automation.InvocationInfo InvocationInformation { get => __invocationInfo = __invocationInfo ?? this.MyInvocation ; set { __invocationInfo = value; } } + + /// List of user defined labels. + [global::System.Management.Automation.AllowEmptyCollection] + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "List of user defined labels.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"List of user defined labels.", + SerializedName = @"labels", + PossibleTypes = new [] { typeof(string) })] + public string[] Label { get => _eventSubscriptionInfoBody.Label ?? null /* arrayOf */; set => _eventSubscriptionInfoBody.Label = value; } + + /// + /// cancellation delegate. Stops the cmdlet when called. + /// + global::System.Action Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter NoWait { get; set; } + + /// Backing field for property. + private string _partnerTopicName; + + /// Name of the partner topic. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Name of the partner topic.")] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Name of the partner topic.", + SerializedName = @"partnerTopicName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Path)] + public string PartnerTopicName { get => this._partnerTopicName; set => this._partnerTopicName = 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.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Runtime.HttpPipeline Pipeline { get; set; } + + /// The URI for the proxy server to use + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "The URI for the proxy server to use")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Uri Proxy { get; set; } + + /// Credentials for a proxy server to use for the remote call + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Credentials for a proxy server to use for the remote call")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Management.Automation.PSCredential ProxyCredential { get; set; } + + /// Use the default credentials for the proxy + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Use the default credentials for the proxy")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter ProxyUseDefaultCredentials { get; set; } + + /// Backing field for property. + private string _resourceGroupName; + + /// The name of the resource group within the user's subscription. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the resource group within the user's subscription.")] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the resource group within the user's subscription.", + SerializedName = @"resourceGroupName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Path)] + public string ResourceGroupName { get => this._resourceGroupName; set => this._resourceGroupName = value; } + + /// Time To Live (in minutes) for events. + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Time To Live (in minutes) for events.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Time To Live (in minutes) for events.", + SerializedName = @"eventTimeToLiveInMinutes", + PossibleTypes = new [] { typeof(int) })] + public int RetryPolicyEventTimeToLiveInMinute { get => _eventSubscriptionInfoBody.RetryPolicyEventTimeToLiveInMinute ?? default(int); set => _eventSubscriptionInfoBody.RetryPolicyEventTimeToLiveInMinute = value; } + + /// Maximum number of delivery retry attempts for events. + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Maximum number of delivery retry attempts for events.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Maximum number of delivery retry attempts for events.", + SerializedName = @"maxDeliveryAttempts", + PossibleTypes = new [] { typeof(int) })] + public int RetryPolicyMaxDeliveryAttempt { get => _eventSubscriptionInfoBody.RetryPolicyMaxDeliveryAttempt ?? default(int); set => _eventSubscriptionInfoBody.RetryPolicyMaxDeliveryAttempt = value; } + + /// Backing field for property. + private string _subscriptionId; + + /// + /// Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription ID forms part of the + /// URI for every service call. + /// + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.")] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.", + SerializedName = @"subscriptionId", + PossibleTypes = new [] { typeof(string) })] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.DefaultInfo( + Name = @"", + Description =@"", + Script = @"(Get-AzContext).Subscription.Id")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Path)] + public string SubscriptionId { get => this._subscriptionId; set => this._subscriptionId = value; } + + /// + /// overrideOnDefault will be called before the regular onDefault has been processed, allowing customization of what + /// happens on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// /// Determines if the rest of the onDefault method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnDefault(global::System.Net.Http.HttpResponseMessage responseMessage, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnOk will be called before the regular onOk has been processed, allowing customization of what happens + /// on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// 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() + { + var telemetryId = Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.GetTelemetryId.Invoke(); + if (telemetryId != "" && telemetryId != "internal") + { + __correlationId = telemetryId; + } + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Creates a duplicate instance of this cmdlet (via JSON serialization). + /// + /// a duplicate instance of NewAzEventGridPartnerTopicEventSubscription_CreateExpanded + /// + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Cmdlets.NewAzEventGridPartnerTopicEventSubscription_CreateExpanded Clone() + { + var clone = new NewAzEventGridPartnerTopicEventSubscription_CreateExpanded(); + clone.__correlationId = this.__correlationId; + clone.__processRecordId = this.__processRecordId; + clone.DefaultProfile = this.DefaultProfile; + clone.InvocationInformation = this.InvocationInformation; + clone.Proxy = this.Proxy; + clone.Pipeline = this.Pipeline; + clone.AsJob = this.AsJob; + clone.Break = this.Break; + clone.ProxyCredential = this.ProxyCredential; + clone.ProxyUseDefaultCredentials = this.ProxyUseDefaultCredentials; + clone.HttpPipelinePrepend = this.HttpPipelinePrepend; + clone.HttpPipelineAppend = this.HttpPipelineAppend; + clone._eventSubscriptionInfoBody = this._eventSubscriptionInfoBody; + clone.SubscriptionId = this.SubscriptionId; + clone.ResourceGroupName = this.ResourceGroupName; + clone.PartnerTopicName = this.PartnerTopicName; + clone.EventSubscriptionName = this.EventSubscriptionName; + return clone; + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + + } + + /// Handles/Dispatches events during the call to the REST service. + /// The message id + /// The message cancellation token. When this call is cancelled, this should be true + /// Detailed message data for the message event. + /// + /// A that will be complete when handling of the message is completed. + /// + async global::System.Threading.Tasks.Task Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener.Signal(string id, global::System.Threading.CancellationToken token, global::System.Func messageData) + { + using( NoSynchronizationContext ) + { + if (token.IsCancellationRequested) + { + return ; + } + + switch ( id ) + { + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.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.EventGrid.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.EventGrid.Runtime.PowerShell.AsyncOperationResponse { Target = uri }); + // do nothing more. + data.Cancel(); + return; + } + } + break; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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 NewAzEventGridPartnerTopicEventSubscription_CreateExpanded() + { + + } + + /// Performs execution of the command. + protected override void ProcessRecord() + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + if (ShouldProcess($"Call remote 'PartnerTopicEventSubscriptionsCreateOrUpdate' operation")) + { + if (true == MyInvocation?.BoundParameters?.ContainsKey("AsJob")) + { + var instance = this.Clone(); + var job = new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token); + } + } + } + } + catch (global::System.AggregateException aggregateException) + { + // unroll the inner exceptions to get the root cause + foreach( var innerException in aggregateException.Flatten().InnerExceptions ) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(innerException,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + } + catch (global::System.Exception exception) when ((exception as System.Management.Automation.PipelineStoppedException)== null || (exception as System.Management.Automation.PipelineStoppedException).InnerException != null) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(exception,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + finally + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletProcessRecordEnd).Wait(); + } + } + + /// Performs execution of the command, working asynchronously if required. + /// + /// A that will be complete when handling of the method is completed. + /// + protected async global::System.Threading.Tasks.Task ProcessRecordAsync() + { + using( NoSynchronizationContext ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await this.Client.PartnerTopicEventSubscriptionsCreateOrUpdate(SubscriptionId, ResourceGroupName, PartnerTopicName, EventSubscriptionName, _eventSubscriptionInfoBody, onOk, onDefault, this, Pipeline); + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.UndeclaredResponseException urexception) + { + WriteError(new global::System.Management.Automation.ErrorRecord(urexception, urexception.StatusCode.ToString(), global::System.Management.Automation.ErrorCategory.InvalidOperation, new { SubscriptionId=SubscriptionId,ResourceGroupName=ResourceGroupName,PartnerTopicName=PartnerTopicName,EventSubscriptionName=EventSubscriptionName,body=_eventSubscriptionInfoBody}) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(urexception.Message) { RecommendedAction = urexception.Action } + }); + } + finally + { + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Cancel(); + base.StopProcessing(); + } + + /// + /// a delegate that is called when the remote service returns default (any response code not handled elsewhere). + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onDefault(global::System.Net.Http.HttpResponseMessage responseMessage) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnDefault(responseMessage, ref _returnNow); + // if overrideOnDefault has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // Error Response : default + // Unrecognized Response. Create an error record based on what we have. + var ex = new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.RestException(responseMessage); + WriteError( new global::System.Management.Automation.ErrorRecord(ex, ex.Code, global::System.Management.Automation.ErrorCategory.InvalidOperation, new { SubscriptionId=SubscriptionId, ResourceGroupName=ResourceGroupName, PartnerTopicName=PartnerTopicName, EventSubscriptionName=EventSubscriptionName, body=_eventSubscriptionInfoBody }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(ex.Message) { RecommendedAction = ex.Action } + }); + } + } + + /// a delegate that is called when the remote service returns 200 (OK). + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as 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.EventGrid.Models.Api20211015Preview.IEventSubscription + WriteObject((await response)); + } + } + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/cmdlets/NewAzEventGridPartnerTopic_CreateExpanded.cs b/swaggerci/eventgrid/generated/cmdlets/NewAzEventGridPartnerTopic_CreateExpanded.cs new file mode 100644 index 000000000000..d2fc88513833 --- /dev/null +++ b/swaggerci/eventgrid/generated/cmdlets/NewAzEventGridPartnerTopic_CreateExpanded.cs @@ -0,0 +1,618 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Extensions; + using System; + + /// Asynchronously creates a new partner topic with the specified parameters. + /// + /// [OpenAPI] CreateOrUpdate=>PUT:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.EventGrid/partnerTopics/{partnerTopicName}" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsCommon.New, @"AzEventGridPartnerTopic_CreateExpanded", SupportsShouldProcess = true)] + [global::System.Management.Automation.OutputType(typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerTopic))] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Description(@"Asynchronously creates a new partner topic with the specified parameters.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Generated] + public partial class NewAzEventGridPartnerTopic_CreateExpanded : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener + { + /// A unique id generatd for the this cmdlet when it is instantiated. + private string __correlationId = System.Guid.NewGuid().ToString(); + + /// A copy of the Invocation Info (necessary to allow asJob to clone this cmdlet) + private global::System.Management.Automation.InvocationInfo __invocationInfo; + + /// A unique id generatd for the this cmdlet when ProcessRecord() is called. + private string __processRecordId; + + /// + /// The for this operation. + /// + private global::System.Threading.CancellationTokenSource _cancellationTokenSource = new global::System.Threading.CancellationTokenSource(); + + /// Event Grid Partner Topic. + private Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerTopic _partnerTopicInfoBody = new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.PartnerTopic(); + + /// Activation state of the partner topic. + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Activation state of the partner topic.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Activation state of the partner topic.", + SerializedName = @"activationState", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.PartnerTopicActivationState) })] + [global::System.Management.Automation.ArgumentCompleter(typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.PartnerTopicActivationState))] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.PartnerTopicActivationState ActivationState { get => _partnerTopicInfoBody.ActivationState ?? ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.PartnerTopicActivationState)""); set => _partnerTopicInfoBody.ActivationState = 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.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.EventGridManagementClient Client => Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.ClientAPI; + + /// + /// The credentials, account, tenant, and subscription used for communication with Azure + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The credentials, account, tenant, and subscription used for communication with Azure.")] + [global::System.Management.Automation.ValidateNotNull] + [global::System.Management.Automation.Alias("AzureRMContext", "AzureCredential")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Azure)] + public global::System.Management.Automation.PSObject DefaultProfile { get; set; } + + /// + /// A collection of inline event types for the resource. The inline event type keys are of type string which represents the + /// name of the event.An example of a valid inline event name is "Contoso.OrderCreated".The inline event type values are of + /// type InlineEventProperties and will contain additional information for every inline event type. + /// + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ExportAs(typeof(global::System.Collections.Hashtable))] + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "A collection of inline event types for the resource. The inline event type keys are of type string which represents the name of the event.An example of a valid inline event name is \"Contoso.OrderCreated\".The inline event type values are of type InlineEventProperties and will contain additional information for every inline event type.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"A collection of inline event types for the resource. The inline event type keys are of type string which represents the name of the event.An example of a valid inline event name is ""Contoso.OrderCreated"".The inline event type values are of type InlineEventProperties and will contain additional information for every inline event type.", + SerializedName = @"inlineEventTypes", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventTypeInfoInlineEventTypes) })] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventTypeInfoInlineEventTypes EventTypeInfoInlineEventType { get => _partnerTopicInfoBody.EventTypeInfoInlineEventType ?? null /* object */; set => _partnerTopicInfoBody.EventTypeInfoInlineEventType = value; } + + /// The kind of event type used. + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The kind of event type used.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The kind of event type used.", + SerializedName = @"kind", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EventDefinitionKind) })] + [global::System.Management.Automation.ArgumentCompleter(typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EventDefinitionKind))] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EventDefinitionKind EventTypeInfoKind { get => _partnerTopicInfoBody.EventTypeInfoKind ?? ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EventDefinitionKind)""); set => _partnerTopicInfoBody.EventTypeInfoKind = value; } + + /// + /// Expiration time of the partner topic. If this timer expires while the partner topic is still never activated,the partner + /// topic and corresponding event channel are deleted. + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Expiration time of the partner topic. If this timer expires while the partner topic is still never activated,the partner topic and corresponding event channel are deleted.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Expiration time of the partner topic. If this timer expires while the partner topic is still never activated,the partner topic and corresponding event channel are deleted.", + SerializedName = @"expirationTimeIfNotActivatedUtc", + PossibleTypes = new [] { typeof(global::System.DateTime) })] + public global::System.DateTime ExpirationTimeIfNotActivatedUtc { get => _partnerTopicInfoBody.ExpirationTimeIfNotActivatedUtc ?? default(global::System.DateTime); set => _partnerTopicInfoBody.ExpirationTimeIfNotActivatedUtc = 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.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[] HttpPipelineAppend { get; set; } + + /// SendAsync Pipeline Steps to be prepended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be prepended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[] HttpPipelinePrepend { get; set; } + + /// The principal ID of resource identity. + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The principal ID of resource identity.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The principal ID of resource identity.", + SerializedName = @"principalId", + PossibleTypes = new [] { typeof(string) })] + public string IdentityPrincipalId { get => _partnerTopicInfoBody.IdentityPrincipalId ?? null; set => _partnerTopicInfoBody.IdentityPrincipalId = value; } + + /// The tenant ID of resource. + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The tenant ID of resource.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The tenant ID of resource.", + SerializedName = @"tenantId", + PossibleTypes = new [] { typeof(string) })] + public string IdentityTenantId { get => _partnerTopicInfoBody.IdentityTenantId ?? null; set => _partnerTopicInfoBody.IdentityTenantId = value; } + + /// + /// The type of managed identity used. The type 'SystemAssigned, UserAssigned' includes both an implicitly created identity + /// and a set of user-assigned identities. The type 'None' will remove any identity. + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The type of managed identity used. The type 'SystemAssigned, UserAssigned' includes both an implicitly created identity and a set of user-assigned identities. The type 'None' will remove any identity.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The type of managed identity used. The type 'SystemAssigned, UserAssigned' includes both an implicitly created identity and a set of user-assigned identities. The type 'None' will remove any identity.", + SerializedName = @"type", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.IdentityType) })] + [global::System.Management.Automation.ArgumentCompleter(typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.IdentityType))] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.IdentityType IdentityType { get => _partnerTopicInfoBody.IdentityType ?? ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.IdentityType)""); set => _partnerTopicInfoBody.IdentityType = value; } + + /// + /// The list of user identities associated with the resource. The user identity dictionary key references will be ARM resource + /// ids in the form:'/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ManagedIdentity/userAssignedIdentities/{identityName}'.This + /// property is currently not used and reserved for future usage. + /// + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ExportAs(typeof(global::System.Collections.Hashtable))] + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The list of user identities associated with the resource. The user identity dictionary key references will be ARM resource ids in the form:'/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ManagedIdentity/userAssignedIdentities/{identityName}'.This property is currently not used and reserved for future usage.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The list of user identities associated with the resource. The user identity dictionary key references will be ARM resource ids in the form:'/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ManagedIdentity/userAssignedIdentities/{identityName}'.This property is currently not used and reserved for future usage.", + SerializedName = @"userAssignedIdentities", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IIdentityInfoUserAssignedIdentities) })] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IIdentityInfoUserAssignedIdentities IdentityUserAssignedIdentity { get => _partnerTopicInfoBody.IdentityUserAssignedIdentity ?? null /* object */; set => _partnerTopicInfoBody.IdentityUserAssignedIdentity = value; } + + /// Accessor for our copy of the InvocationInfo. + public global::System.Management.Automation.InvocationInfo InvocationInformation { get => __invocationInfo = __invocationInfo ?? this.MyInvocation ; set { __invocationInfo = value; } } + + /// Location of the resource. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Location of the resource.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Location of the resource.", + SerializedName = @"location", + PossibleTypes = new [] { typeof(string) })] + public string Location { get => _partnerTopicInfoBody.Location ?? null; set => _partnerTopicInfoBody.Location = value; } + + /// + /// Context or helpful message that can be used during the approval process by the subscriber. + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Context or helpful message that can be used during the approval process by the subscriber.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Context or helpful message that can be used during the approval process by the subscriber.", + SerializedName = @"messageForActivation", + PossibleTypes = new [] { typeof(string) })] + public string MessageForActivation { get => _partnerTopicInfoBody.MessageForActivation ?? null; set => _partnerTopicInfoBody.MessageForActivation = value; } + + /// + /// cancellation delegate. Stops the cmdlet when called. + /// + global::System.Action Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener.Token => _cancellationTokenSource.Token; + + /// Backing field for property. + private string _name; + + /// Name of the partner topic. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Name of the partner topic.")] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Name of the partner topic.", + SerializedName = @"partnerTopicName", + PossibleTypes = new [] { typeof(string) })] + [global::System.Management.Automation.Alias("PartnerTopicName")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Path)] + public string Name { get => this._name; set => this._name = value; } + + /// The immutableId of the corresponding partner registration. + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The immutableId of the corresponding partner registration.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The immutableId of the corresponding partner registration.", + SerializedName = @"partnerRegistrationImmutableId", + PossibleTypes = new [] { typeof(string) })] + public string PartnerRegistrationImmutableId { get => _partnerTopicInfoBody.PartnerRegistrationImmutableId ?? null; set => _partnerTopicInfoBody.PartnerRegistrationImmutableId = value; } + + /// + /// Friendly description about the topic. This can be set by the publisher/partner to show custom description for the customer + /// partner topic.This will be helpful to remove any ambiguity of the origin of creation of the partner topic for the customer. + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Friendly description about the topic. This can be set by the publisher/partner to show custom description for the customer partner topic.This will be helpful to remove any ambiguity of the origin of creation of the partner topic for the customer.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Friendly description about the topic. This can be set by the publisher/partner to show custom description for the customer partner topic.This will be helpful to remove any ambiguity of the origin of creation of the partner topic for the customer.", + SerializedName = @"partnerTopicFriendlyDescription", + PossibleTypes = new [] { typeof(string) })] + public string PartnerTopicFriendlyDescription { get => _partnerTopicInfoBody.FriendlyDescription ?? null; set => _partnerTopicInfoBody.FriendlyDescription = 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.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Runtime.HttpPipeline Pipeline { get; set; } + + /// The URI for the proxy server to use + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "The URI for the proxy server to use")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Uri Proxy { get; set; } + + /// Credentials for a proxy server to use for the remote call + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Credentials for a proxy server to use for the remote call")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Management.Automation.PSCredential ProxyCredential { get; set; } + + /// Use the default credentials for the proxy + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Use the default credentials for the proxy")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter ProxyUseDefaultCredentials { get; set; } + + /// Backing field for property. + private string _resourceGroupName; + + /// The name of the resource group within the user's subscription. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the resource group within the user's subscription.")] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the resource group within the user's subscription.", + SerializedName = @"resourceGroupName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Path)] + public string ResourceGroupName { get => this._resourceGroupName; set => this._resourceGroupName = value; } + + /// + /// Source associated with this partner topic. This represents a unique partner resource. + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Source associated with this partner topic. This represents a unique partner resource.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Source associated with this partner topic. This represents a unique partner resource.", + SerializedName = @"source", + PossibleTypes = new [] { typeof(string) })] + public string Source { get => _partnerTopicInfoBody.Source ?? null; set => _partnerTopicInfoBody.Source = value; } + + /// Backing field for property. + private string _subscriptionId; + + /// + /// Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription ID forms part of the + /// URI for every service call. + /// + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.")] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.", + SerializedName = @"subscriptionId", + PossibleTypes = new [] { typeof(string) })] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.DefaultInfo( + Name = @"", + Description =@"", + Script = @"(Get-AzContext).Subscription.Id")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Path)] + public string SubscriptionId { get => this._subscriptionId; set => this._subscriptionId = value; } + + /// Tags of the resource. + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ExportAs(typeof(global::System.Collections.Hashtable))] + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Tags of the resource.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Tags of the resource.", + SerializedName = @"tags", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITrackedResourceTags) })] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITrackedResourceTags Tag { get => _partnerTopicInfoBody.Tag ?? null /* object */; set => _partnerTopicInfoBody.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. + /// /// Determines if the rest of the onDefault method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnDefault(global::System.Net.Http.HttpResponseMessage responseMessage, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnOk will be called before the regular onOk has been processed, allowing customization of what happens + /// on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// 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() + { + var telemetryId = Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.GetTelemetryId.Invoke(); + if (telemetryId != "" && telemetryId != "internal") + { + __correlationId = telemetryId; + } + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + + } + + /// Handles/Dispatches events during the call to the REST service. + /// The message id + /// The message cancellation token. When this call is cancelled, this should be true + /// Detailed message data for the message event. + /// + /// A that will be complete when handling of the message is completed. + /// + async global::System.Threading.Tasks.Task Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener.Signal(string id, global::System.Threading.CancellationToken token, global::System.Func messageData) + { + using( NoSynchronizationContext ) + { + if (token.IsCancellationRequested) + { + return ; + } + + switch ( id ) + { + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Information: + { + var data = messageData(); + WriteInformation(data.Message, new string[]{}); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Error: + { + WriteError(new global::System.Management.Automation.ErrorRecord( new global::System.Exception(messageData().Message), string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null ) ); + return ; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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 NewAzEventGridPartnerTopic_CreateExpanded() + { + + } + + /// Performs execution of the command. + protected override void ProcessRecord() + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + if (ShouldProcess($"Call remote 'PartnerTopicsCreateOrUpdate' operation")) + { + using( var asyncCommandRuntime = new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token); + } + } + } + catch (global::System.AggregateException aggregateException) + { + // unroll the inner exceptions to get the root cause + foreach( var innerException in aggregateException.Flatten().InnerExceptions ) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(innerException,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + } + catch (global::System.Exception exception) when ((exception as System.Management.Automation.PipelineStoppedException)== null || (exception as System.Management.Automation.PipelineStoppedException).InnerException != null) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(exception,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + finally + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletProcessRecordEnd).Wait(); + } + } + + /// Performs execution of the command, working asynchronously if required. + /// + /// A that will be complete when handling of the method is completed. + /// + protected async global::System.Threading.Tasks.Task ProcessRecordAsync() + { + using( NoSynchronizationContext ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await this.Client.PartnerTopicsCreateOrUpdate(SubscriptionId, ResourceGroupName, Name, _partnerTopicInfoBody, onOk, onCreated, onDefault, this, Pipeline); + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.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=_partnerTopicInfoBody}) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(urexception.Message) { RecommendedAction = urexception.Action } + }); + } + finally + { + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Models.Api20211015Preview.IPartnerTopic + 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. + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onDefault(global::System.Net.Http.HttpResponseMessage responseMessage) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnDefault(responseMessage, ref _returnNow); + // if overrideOnDefault has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // Error Response : default + // Unrecognized Response. Create an error record based on what we have. + var ex = new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.RestException(responseMessage); + WriteError( new global::System.Management.Automation.ErrorRecord(ex, ex.Code, global::System.Management.Automation.ErrorCategory.InvalidOperation, new { SubscriptionId=SubscriptionId, ResourceGroupName=ResourceGroupName, Name=Name, body=_partnerTopicInfoBody }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(ex.Message) { RecommendedAction = ex.Action } + }); + } + } + + /// a delegate that is called when the remote service returns 200 (OK). + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as 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.EventGrid.Models.Api20211015Preview.IPartnerTopic + WriteObject((await response)); + } + } + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/cmdlets/NewAzEventGridSystemTopicEventSubscription_CreateExpanded.cs b/swaggerci/eventgrid/generated/cmdlets/NewAzEventGridSystemTopicEventSubscription_CreateExpanded.cs new file mode 100644 index 000000000000..bf551f40f626 --- /dev/null +++ b/swaggerci/eventgrid/generated/cmdlets/NewAzEventGridSystemTopicEventSubscription_CreateExpanded.cs @@ -0,0 +1,669 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Extensions; + using System; + + /// + /// Asynchronously creates or updates an event subscription with the specified parameters. Existing event subscriptions will + /// be updated with this API. + /// + /// + /// [OpenAPI] CreateOrUpdate=>PUT:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.EventGrid/systemTopics/{systemTopicName}/eventSubscriptions/{eventSubscriptionName}" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsCommon.New, @"AzEventGridSystemTopicEventSubscription_CreateExpanded", SupportsShouldProcess = true)] + [global::System.Management.Automation.OutputType(typeof(bool))] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Description(@"Asynchronously creates or updates an event subscription with the specified parameters. Existing event subscriptions will be updated with this API.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Generated] + public partial class NewAzEventGridSystemTopicEventSubscription_CreateExpanded : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener + { + /// A unique id generatd for the this cmdlet when it is instantiated. + private string __correlationId = System.Guid.NewGuid().ToString(); + + /// A copy of the Invocation Info (necessary to allow asJob to clone this cmdlet) + private global::System.Management.Automation.InvocationInfo __invocationInfo; + + /// A unique id generatd for the this cmdlet when ProcessRecord() is called. + private string __processRecordId; + + /// + /// The for this operation. + /// + private global::System.Threading.CancellationTokenSource _cancellationTokenSource = new global::System.Threading.CancellationTokenSource(); + + /// Event Subscription + private Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscription _eventSubscriptionInfoBody = new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.EventSubscription(); + + /// 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.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.EventGridManagementClient Client => Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.ClientAPI; + + /// + /// The type of managed identity used. The type 'SystemAssigned, UserAssigned' includes both an implicitly created identity + /// and a set of user-assigned identities. The type 'None' will remove any identity. + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The type of managed identity used. The type 'SystemAssigned, UserAssigned' includes both an implicitly created identity and a set of user-assigned identities. The type 'None' will remove any identity.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The type of managed identity used. The type 'SystemAssigned, UserAssigned' includes both an implicitly created identity and a set of user-assigned identities. The type 'None' will remove any identity.", + SerializedName = @"type", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EventSubscriptionIdentityType) })] + [global::System.Management.Automation.ArgumentCompleter(typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EventSubscriptionIdentityType))] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EventSubscriptionIdentityType DeadLetterWithResourceIdentityType { get => _eventSubscriptionInfoBody.DeadLetterWithResourceIdentityType ?? ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EventSubscriptionIdentityType)""); set => _eventSubscriptionInfoBody.DeadLetterWithResourceIdentityType = value; } + + /// The user identity associated with the resource. + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The user identity associated with the resource.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The user identity associated with the resource.", + SerializedName = @"userAssignedIdentity", + PossibleTypes = new [] { typeof(string) })] + public string DeadLetterWithResourceIdentityUserAssignedIdentity { get => _eventSubscriptionInfoBody.DeadLetterWithResourceIdentityUserAssignedIdentity ?? null; set => _eventSubscriptionInfoBody.DeadLetterWithResourceIdentityUserAssignedIdentity = 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.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Azure)] + public global::System.Management.Automation.PSObject DefaultProfile { get; set; } + + /// Type of the endpoint for the event subscription destination. + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Type of the endpoint for the event subscription destination.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Type of the endpoint for the event subscription destination.", + SerializedName = @"endpointType", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EndpointType) })] + [global::System.Management.Automation.ArgumentCompleter(typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EndpointType))] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EndpointType DeliveryWithResourceIdentityDestinationEndpointType { get => _eventSubscriptionInfoBody.DeliveryWithResourceIdentityDestinationEndpointType ?? ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EndpointType)""); set => _eventSubscriptionInfoBody.DeliveryWithResourceIdentityDestinationEndpointType = value; } + + /// + /// The type of managed identity used. The type 'SystemAssigned, UserAssigned' includes both an implicitly created identity + /// and a set of user-assigned identities. The type 'None' will remove any identity. + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The type of managed identity used. The type 'SystemAssigned, UserAssigned' includes both an implicitly created identity and a set of user-assigned identities. The type 'None' will remove any identity.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The type of managed identity used. The type 'SystemAssigned, UserAssigned' includes both an implicitly created identity and a set of user-assigned identities. The type 'None' will remove any identity.", + SerializedName = @"type", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EventSubscriptionIdentityType) })] + [global::System.Management.Automation.ArgumentCompleter(typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EventSubscriptionIdentityType))] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EventSubscriptionIdentityType DeliveryWithResourceIdentityType { get => _eventSubscriptionInfoBody.DeliveryWithResourceIdentityType ?? ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EventSubscriptionIdentityType)""); set => _eventSubscriptionInfoBody.DeliveryWithResourceIdentityType = value; } + + /// The user identity associated with the resource. + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The user identity associated with the resource.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The user identity associated with the resource.", + SerializedName = @"userAssignedIdentity", + PossibleTypes = new [] { typeof(string) })] + public string DeliveryWithResourceIdentityUserAssignedIdentity { get => _eventSubscriptionInfoBody.DeliveryWithResourceIdentityUserAssignedIdentity ?? null; set => _eventSubscriptionInfoBody.DeliveryWithResourceIdentityUserAssignedIdentity = value; } + + /// Type of the endpoint for the event subscription destination. + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Type of the endpoint for the event subscription destination.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Type of the endpoint for the event subscription destination.", + SerializedName = @"endpointType", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EndpointType) })] + [global::System.Management.Automation.ArgumentCompleter(typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EndpointType))] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EndpointType EndpointType { get => _eventSubscriptionInfoBody.EndpointType ?? ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EndpointType)""); set => _eventSubscriptionInfoBody.EndpointType = value; } + + /// The event delivery schema for the event subscription. + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The event delivery schema for the event subscription.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The event delivery schema for the event subscription.", + SerializedName = @"eventDeliverySchema", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EventDeliverySchema) })] + [global::System.Management.Automation.ArgumentCompleter(typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EventDeliverySchema))] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EventDeliverySchema EventDeliverySchema { get => _eventSubscriptionInfoBody.EventDeliverySchema ?? ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EventDeliverySchema)""); set => _eventSubscriptionInfoBody.EventDeliverySchema = value; } + + /// Backing field for property. + private string _eventSubscriptionName; + + /// + /// Name of the event subscription to be created. Event subscription names must be between 3 and 100 characters in length + /// and use alphanumeric letters only. + /// + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Name of the event subscription to be created. Event subscription names must be between 3 and 100 characters in length and use alphanumeric letters only.")] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Name of the event subscription to be created. Event subscription names must be between 3 and 100 characters in length and use alphanumeric letters only.", + SerializedName = @"eventSubscriptionName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Path)] + public string EventSubscriptionName { get => this._eventSubscriptionName; set => this._eventSubscriptionName = value; } + + /// Expiration time of the event subscription. + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Expiration time of the event subscription.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Expiration time of the event subscription.", + SerializedName = @"expirationTimeUtc", + PossibleTypes = new [] { typeof(global::System.DateTime) })] + public global::System.DateTime ExpirationTimeUtc { get => _eventSubscriptionInfoBody.ExpirationTimeUtc ?? default(global::System.DateTime); set => _eventSubscriptionInfoBody.ExpirationTimeUtc = value; } + + /// An array of advanced filters that are used for filtering event subscriptions. + [global::System.Management.Automation.AllowEmptyCollection] + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "An array of advanced filters that are used for filtering event subscriptions.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"An array of advanced filters that are used for filtering event subscriptions.", + SerializedName = @"advancedFilters", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IAdvancedFilter) })] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IAdvancedFilter[] FilterAdvancedFilter { get => _eventSubscriptionInfoBody.FilterAdvancedFilter ?? null /* arrayOf */; set => _eventSubscriptionInfoBody.FilterAdvancedFilter = value; } + + /// + /// Allows advanced filters to be evaluated against an array of values instead of expecting a singular value. + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Allows advanced filters to be evaluated against an array of values instead of expecting a singular value.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Allows advanced filters to be evaluated against an array of values instead of expecting a singular value.", + SerializedName = @"enableAdvancedFilteringOnArrays", + PossibleTypes = new [] { typeof(global::System.Management.Automation.SwitchParameter) })] + public global::System.Management.Automation.SwitchParameter FilterEnableAdvancedFilteringOnArray { get => _eventSubscriptionInfoBody.FilterEnableAdvancedFilteringOnArray ?? default(global::System.Management.Automation.SwitchParameter); set => _eventSubscriptionInfoBody.FilterEnableAdvancedFilteringOnArray = value; } + + /// + /// A list of applicable event types that need to be part of the event subscription. If it is desired to subscribe to all + /// default event types, set the IncludedEventTypes to null. + /// + [global::System.Management.Automation.AllowEmptyCollection] + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "A list of applicable event types that need to be part of the event subscription. If it is desired to subscribe to all default event types, set the IncludedEventTypes to null.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"A list of applicable event types that need to be part of the event subscription. If it is desired to subscribe to all default event types, set the IncludedEventTypes to null.", + SerializedName = @"includedEventTypes", + PossibleTypes = new [] { typeof(string) })] + public string[] FilterIncludedEventType { get => _eventSubscriptionInfoBody.FilterIncludedEventType ?? null /* arrayOf */; set => _eventSubscriptionInfoBody.FilterIncludedEventType = value; } + + /// + /// Specifies if the SubjectBeginsWith and SubjectEndsWith properties of the filtershould be compared in a case sensitive + /// manner. + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Specifies if the SubjectBeginsWith and SubjectEndsWith properties of the filtershould be compared in a case sensitive manner.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Specifies if the SubjectBeginsWith and SubjectEndsWith properties of the filtershould be compared in a case sensitive manner.", + SerializedName = @"isSubjectCaseSensitive", + PossibleTypes = new [] { typeof(global::System.Management.Automation.SwitchParameter) })] + public global::System.Management.Automation.SwitchParameter FilterIsSubjectCaseSensitive { get => _eventSubscriptionInfoBody.FilterIsSubjectCaseSensitive ?? default(global::System.Management.Automation.SwitchParameter); set => _eventSubscriptionInfoBody.FilterIsSubjectCaseSensitive = value; } + + /// + /// An optional string to filter events for an event subscription based on a resource path prefix.The format of this depends + /// on the publisher of the events.Wildcard characters are not supported in this path. + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "An optional string to filter events for an event subscription based on a resource path prefix.The format of this depends on the publisher of the events.Wildcard characters are not supported in this path.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"An optional string to filter events for an event subscription based on a resource path prefix.The format of this depends on the publisher of the events.Wildcard characters are not supported in this path.", + SerializedName = @"subjectBeginsWith", + PossibleTypes = new [] { typeof(string) })] + public string FilterSubjectBeginsWith { get => _eventSubscriptionInfoBody.FilterSubjectBeginsWith ?? null; set => _eventSubscriptionInfoBody.FilterSubjectBeginsWith = value; } + + /// + /// An optional string to filter events for an event subscription based on a resource path suffix.Wildcard characters are + /// not supported in this path. + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "An optional string to filter events for an event subscription based on a resource path suffix.Wildcard characters are not supported in this path.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"An optional string to filter events for an event subscription based on a resource path suffix.Wildcard characters are not supported in this path.", + SerializedName = @"subjectEndsWith", + PossibleTypes = new [] { typeof(string) })] + public string FilterSubjectEndsWith { get => _eventSubscriptionInfoBody.FilterSubjectEndsWith ?? null; set => _eventSubscriptionInfoBody.FilterSubjectEndsWith = 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.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[] HttpPipelineAppend { get; set; } + + /// SendAsync Pipeline Steps to be prepended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be prepended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[] HttpPipelinePrepend { get; set; } + + /// Accessor for our copy of the InvocationInfo. + public global::System.Management.Automation.InvocationInfo InvocationInformation { get => __invocationInfo = __invocationInfo ?? this.MyInvocation ; set { __invocationInfo = value; } } + + /// List of user defined labels. + [global::System.Management.Automation.AllowEmptyCollection] + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "List of user defined labels.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"List of user defined labels.", + SerializedName = @"labels", + PossibleTypes = new [] { typeof(string) })] + public string[] Label { get => _eventSubscriptionInfoBody.Label ?? null /* arrayOf */; set => _eventSubscriptionInfoBody.Label = value; } + + /// + /// cancellation delegate. Stops the cmdlet when called. + /// + global::System.Action Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter NoWait { get; set; } + + /// + /// When specified, forces the cmdlet return a 'bool' given that there isn't a return type by default. + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Returns true when the command succeeds")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Runtime.HttpPipeline Pipeline { get; set; } + + /// The URI for the proxy server to use + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "The URI for the proxy server to use")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Uri Proxy { get; set; } + + /// Credentials for a proxy server to use for the remote call + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Credentials for a proxy server to use for the remote call")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Management.Automation.PSCredential ProxyCredential { get; set; } + + /// Use the default credentials for the proxy + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Use the default credentials for the proxy")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter ProxyUseDefaultCredentials { get; set; } + + /// Backing field for property. + private string _resourceGroupName; + + /// The name of the resource group within the user's subscription. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the resource group within the user's subscription.")] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the resource group within the user's subscription.", + SerializedName = @"resourceGroupName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Path)] + public string ResourceGroupName { get => this._resourceGroupName; set => this._resourceGroupName = value; } + + /// Time To Live (in minutes) for events. + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Time To Live (in minutes) for events.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Time To Live (in minutes) for events.", + SerializedName = @"eventTimeToLiveInMinutes", + PossibleTypes = new [] { typeof(int) })] + public int RetryPolicyEventTimeToLiveInMinute { get => _eventSubscriptionInfoBody.RetryPolicyEventTimeToLiveInMinute ?? default(int); set => _eventSubscriptionInfoBody.RetryPolicyEventTimeToLiveInMinute = value; } + + /// Maximum number of delivery retry attempts for events. + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Maximum number of delivery retry attempts for events.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Maximum number of delivery retry attempts for events.", + SerializedName = @"maxDeliveryAttempts", + PossibleTypes = new [] { typeof(int) })] + public int RetryPolicyMaxDeliveryAttempt { get => _eventSubscriptionInfoBody.RetryPolicyMaxDeliveryAttempt ?? default(int); set => _eventSubscriptionInfoBody.RetryPolicyMaxDeliveryAttempt = value; } + + /// Backing field for property. + private string _subscriptionId; + + /// + /// Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription ID forms part of the + /// URI for every service call. + /// + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.")] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.", + SerializedName = @"subscriptionId", + PossibleTypes = new [] { typeof(string) })] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.DefaultInfo( + Name = @"", + Description =@"", + Script = @"(Get-AzContext).Subscription.Id")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Path)] + public string SubscriptionId { get => this._subscriptionId; set => this._subscriptionId = value; } + + /// Backing field for property. + private string _systemTopicName; + + /// Name of the system topic. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Name of the system topic.")] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Name of the system topic.", + SerializedName = @"systemTopicName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Path)] + public string SystemTopicName { get => this._systemTopicName; set => this._systemTopicName = value; } + + /// + /// overrideOnDefault will be called before the regular onDefault has been processed, allowing customization of what + /// happens on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// /// Determines if the rest of the onDefault method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnDefault(global::System.Net.Http.HttpResponseMessage responseMessage, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// (overrides the default BeginProcessing method in global::System.Management.Automation.PSCmdlet) + /// + protected override void BeginProcessing() + { + var telemetryId = Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.GetTelemetryId.Invoke(); + if (telemetryId != "" && telemetryId != "internal") + { + __correlationId = telemetryId; + } + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Creates a duplicate instance of this cmdlet (via JSON serialization). + /// + /// a duplicate instance of NewAzEventGridSystemTopicEventSubscription_CreateExpanded + /// + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Cmdlets.NewAzEventGridSystemTopicEventSubscription_CreateExpanded Clone() + { + var clone = new NewAzEventGridSystemTopicEventSubscription_CreateExpanded(); + clone.__correlationId = this.__correlationId; + clone.__processRecordId = this.__processRecordId; + clone.DefaultProfile = this.DefaultProfile; + clone.InvocationInformation = this.InvocationInformation; + clone.Proxy = this.Proxy; + clone.Pipeline = this.Pipeline; + clone.AsJob = this.AsJob; + clone.Break = this.Break; + clone.ProxyCredential = this.ProxyCredential; + clone.ProxyUseDefaultCredentials = this.ProxyUseDefaultCredentials; + clone.HttpPipelinePrepend = this.HttpPipelinePrepend; + clone.HttpPipelineAppend = this.HttpPipelineAppend; + clone._eventSubscriptionInfoBody = this._eventSubscriptionInfoBody; + clone.SubscriptionId = this.SubscriptionId; + clone.ResourceGroupName = this.ResourceGroupName; + clone.SystemTopicName = this.SystemTopicName; + clone.EventSubscriptionName = this.EventSubscriptionName; + return clone; + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + + } + + /// Handles/Dispatches events during the call to the REST service. + /// The message id + /// The message cancellation token. When this call is cancelled, this should be true + /// Detailed message data for the message event. + /// + /// A that will be complete when handling of the message is completed. + /// + async global::System.Threading.Tasks.Task Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener.Signal(string id, global::System.Threading.CancellationToken token, global::System.Func messageData) + { + using( NoSynchronizationContext ) + { + if (token.IsCancellationRequested) + { + return ; + } + + switch ( id ) + { + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.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.EventGrid.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.EventGrid.Runtime.PowerShell.AsyncOperationResponse { Target = uri }); + // do nothing more. + data.Cancel(); + return; + } + } + break; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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 NewAzEventGridSystemTopicEventSubscription_CreateExpanded() + { + + } + + /// Performs execution of the command. + protected override void ProcessRecord() + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + if (ShouldProcess($"Call remote 'SystemTopicEventSubscriptionsCreateOrUpdate' operation")) + { + if (true == MyInvocation?.BoundParameters?.ContainsKey("AsJob")) + { + var instance = this.Clone(); + var job = new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token); + } + } + } + } + catch (global::System.AggregateException aggregateException) + { + // unroll the inner exceptions to get the root cause + foreach( var innerException in aggregateException.Flatten().InnerExceptions ) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(innerException,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + } + catch (global::System.Exception exception) when ((exception as System.Management.Automation.PipelineStoppedException)== null || (exception as System.Management.Automation.PipelineStoppedException).InnerException != null) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(exception,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + finally + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletProcessRecordEnd).Wait(); + } + } + + /// Performs execution of the command, working asynchronously if required. + /// + /// A that will be complete when handling of the method is completed. + /// + protected async global::System.Threading.Tasks.Task ProcessRecordAsync() + { + using( NoSynchronizationContext ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await this.Client.SystemTopicEventSubscriptionsCreateOrUpdate(SubscriptionId, ResourceGroupName, SystemTopicName, EventSubscriptionName, _eventSubscriptionInfoBody, onDefault, this, Pipeline); + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.UndeclaredResponseException urexception) + { + WriteError(new global::System.Management.Automation.ErrorRecord(urexception, urexception.StatusCode.ToString(), global::System.Management.Automation.ErrorCategory.InvalidOperation, new { SubscriptionId=SubscriptionId,ResourceGroupName=ResourceGroupName,SystemTopicName=SystemTopicName,EventSubscriptionName=EventSubscriptionName,body=_eventSubscriptionInfoBody}) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(urexception.Message) { RecommendedAction = urexception.Action } + }); + } + finally + { + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Cancel(); + base.StopProcessing(); + } + + /// + /// a delegate that is called when the remote service returns default (any response code not handled elsewhere). + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onDefault(global::System.Net.Http.HttpResponseMessage responseMessage) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnDefault(responseMessage, ref _returnNow); + // if overrideOnDefault has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // Error Response : default + // Unrecognized Response. Create an error record based on what we have. + var ex = new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.RestException(responseMessage); + WriteError( new global::System.Management.Automation.ErrorRecord(ex, ex.Code, global::System.Management.Automation.ErrorCategory.InvalidOperation, new { SubscriptionId=SubscriptionId, ResourceGroupName=ResourceGroupName, SystemTopicName=SystemTopicName, EventSubscriptionName=EventSubscriptionName, body=_eventSubscriptionInfoBody }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(ex.Message) { RecommendedAction = ex.Action } + }); + } + } + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/cmdlets/NewAzEventGridSystemTopic_CreateExpanded.cs b/swaggerci/eventgrid/generated/cmdlets/NewAzEventGridSystemTopic_CreateExpanded.cs new file mode 100644 index 000000000000..84b44370ff29 --- /dev/null +++ b/swaggerci/eventgrid/generated/cmdlets/NewAzEventGridSystemTopic_CreateExpanded.cs @@ -0,0 +1,566 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Extensions; + using System; + + /// Asynchronously creates a new system topic with the specified parameters. + /// + /// [OpenAPI] CreateOrUpdate=>PUT:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.EventGrid/systemTopics/{systemTopicName}" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsCommon.New, @"AzEventGridSystemTopic_CreateExpanded", SupportsShouldProcess = true)] + [global::System.Management.Automation.OutputType(typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ISystemTopic))] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Description(@"Asynchronously creates a new system topic with the specified parameters.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Generated] + public partial class NewAzEventGridSystemTopic_CreateExpanded : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener + { + /// A unique id generatd for the this cmdlet when it is instantiated. + private string __correlationId = System.Guid.NewGuid().ToString(); + + /// A copy of the Invocation Info (necessary to allow asJob to clone this cmdlet) + private global::System.Management.Automation.InvocationInfo __invocationInfo; + + /// A unique id generatd for the this cmdlet when ProcessRecord() is called. + private string __processRecordId; + + /// + /// The for this operation. + /// + private global::System.Threading.CancellationTokenSource _cancellationTokenSource = new global::System.Threading.CancellationTokenSource(); + + /// EventGrid System Topic. + private Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ISystemTopic _systemTopicInfoBody = new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.SystemTopic(); + + /// 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.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.EventGridManagementClient Client => Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.ClientAPI; + + /// + /// The credentials, account, tenant, and subscription used for communication with Azure + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The credentials, account, tenant, and subscription used for communication with Azure.")] + [global::System.Management.Automation.ValidateNotNull] + [global::System.Management.Automation.Alias("AzureRMContext", "AzureCredential")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Azure)] + public global::System.Management.Automation.PSObject DefaultProfile { get; set; } + + /// SendAsync Pipeline Steps to be appended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be appended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[] HttpPipelineAppend { get; set; } + + /// SendAsync Pipeline Steps to be prepended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be prepended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[] HttpPipelinePrepend { get; set; } + + /// The principal ID of resource identity. + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The principal ID of resource identity.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The principal ID of resource identity.", + SerializedName = @"principalId", + PossibleTypes = new [] { typeof(string) })] + public string IdentityPrincipalId { get => _systemTopicInfoBody.IdentityPrincipalId ?? null; set => _systemTopicInfoBody.IdentityPrincipalId = value; } + + /// The tenant ID of resource. + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The tenant ID of resource.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The tenant ID of resource.", + SerializedName = @"tenantId", + PossibleTypes = new [] { typeof(string) })] + public string IdentityTenantId { get => _systemTopicInfoBody.IdentityTenantId ?? null; set => _systemTopicInfoBody.IdentityTenantId = value; } + + /// + /// The type of managed identity used. The type 'SystemAssigned, UserAssigned' includes both an implicitly created identity + /// and a set of user-assigned identities. The type 'None' will remove any identity. + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The type of managed identity used. The type 'SystemAssigned, UserAssigned' includes both an implicitly created identity and a set of user-assigned identities. The type 'None' will remove any identity.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The type of managed identity used. The type 'SystemAssigned, UserAssigned' includes both an implicitly created identity and a set of user-assigned identities. The type 'None' will remove any identity.", + SerializedName = @"type", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.IdentityType) })] + [global::System.Management.Automation.ArgumentCompleter(typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.IdentityType))] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.IdentityType IdentityType { get => _systemTopicInfoBody.IdentityType ?? ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.IdentityType)""); set => _systemTopicInfoBody.IdentityType = value; } + + /// + /// The list of user identities associated with the resource. The user identity dictionary key references will be ARM resource + /// ids in the form:'/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ManagedIdentity/userAssignedIdentities/{identityName}'.This + /// property is currently not used and reserved for future usage. + /// + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ExportAs(typeof(global::System.Collections.Hashtable))] + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The list of user identities associated with the resource. The user identity dictionary key references will be ARM resource ids in the form:'/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ManagedIdentity/userAssignedIdentities/{identityName}'.This property is currently not used and reserved for future usage.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The list of user identities associated with the resource. The user identity dictionary key references will be ARM resource ids in the form:'/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ManagedIdentity/userAssignedIdentities/{identityName}'.This property is currently not used and reserved for future usage.", + SerializedName = @"userAssignedIdentities", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IIdentityInfoUserAssignedIdentities) })] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IIdentityInfoUserAssignedIdentities IdentityUserAssignedIdentity { get => _systemTopicInfoBody.IdentityUserAssignedIdentity ?? null /* object */; set => _systemTopicInfoBody.IdentityUserAssignedIdentity = value; } + + /// Accessor for our copy of the InvocationInfo. + public global::System.Management.Automation.InvocationInfo InvocationInformation { get => __invocationInfo = __invocationInfo ?? this.MyInvocation ; set { __invocationInfo = value; } } + + /// Location of the resource. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Location of the resource.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Location of the resource.", + SerializedName = @"location", + PossibleTypes = new [] { typeof(string) })] + public string Location { get => _systemTopicInfoBody.Location ?? null; set => _systemTopicInfoBody.Location = value; } + + /// + /// cancellation delegate. Stops the cmdlet when called. + /// + global::System.Action Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener.Token => _cancellationTokenSource.Token; + + /// Backing field for property. + private string _name; + + /// Name of the system topic. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Name of the system topic.")] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Name of the system topic.", + SerializedName = @"systemTopicName", + PossibleTypes = new [] { typeof(string) })] + [global::System.Management.Automation.Alias("SystemTopicName")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Path)] + public string Name { get => this._name; set => this._name = value; } + + /// + /// when specified, will make the remote call, and return an AsyncOperationResponse, letting the remote operation continue + /// asynchronously. + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Run the command asynchronously")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter NoWait { get; set; } + + /// + /// When specified, forces the cmdlet return a 'bool' given that there isn't a return type by default. + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Returns true when the command succeeds")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Runtime.HttpPipeline Pipeline { get; set; } + + /// The URI for the proxy server to use + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "The URI for the proxy server to use")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Uri Proxy { get; set; } + + /// Credentials for a proxy server to use for the remote call + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Credentials for a proxy server to use for the remote call")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Management.Automation.PSCredential ProxyCredential { get; set; } + + /// Use the default credentials for the proxy + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Use the default credentials for the proxy")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter ProxyUseDefaultCredentials { get; set; } + + /// Backing field for property. + private string _resourceGroupName; + + /// The name of the resource group within the user's subscription. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the resource group within the user's subscription.")] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the resource group within the user's subscription.", + SerializedName = @"resourceGroupName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Path)] + public string ResourceGroupName { get => this._resourceGroupName; set => this._resourceGroupName = value; } + + /// Source for the system topic. + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Source for the system topic.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Source for the system topic.", + SerializedName = @"source", + PossibleTypes = new [] { typeof(string) })] + public string Source { get => _systemTopicInfoBody.Source ?? null; set => _systemTopicInfoBody.Source = value; } + + /// Backing field for property. + private string _subscriptionId; + + /// + /// Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription ID forms part of the + /// URI for every service call. + /// + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.")] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.", + SerializedName = @"subscriptionId", + PossibleTypes = new [] { typeof(string) })] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.DefaultInfo( + Name = @"", + Description =@"", + Script = @"(Get-AzContext).Subscription.Id")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Path)] + public string SubscriptionId { get => this._subscriptionId; set => this._subscriptionId = value; } + + /// Tags of the resource. + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ExportAs(typeof(global::System.Collections.Hashtable))] + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Tags of the resource.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Tags of the resource.", + SerializedName = @"tags", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITrackedResourceTags) })] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITrackedResourceTags Tag { get => _systemTopicInfoBody.Tag ?? null /* object */; set => _systemTopicInfoBody.Tag = value; } + + /// TopicType for the system topic. + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "TopicType for the system topic.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"TopicType for the system topic.", + SerializedName = @"topicType", + PossibleTypes = new [] { typeof(string) })] + public string TopicType { get => _systemTopicInfoBody.TopicType ?? null; set => _systemTopicInfoBody.TopicType = value; } + + /// + /// overrideOnDefault will be called before the regular onDefault has been processed, allowing customization of what + /// happens on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// /// Determines if the rest of the onDefault method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnDefault(global::System.Net.Http.HttpResponseMessage responseMessage, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnOk will be called before the regular onOk has been processed, allowing customization of what happens + /// on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// 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() + { + var telemetryId = Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.GetTelemetryId.Invoke(); + if (telemetryId != "" && telemetryId != "internal") + { + __correlationId = telemetryId; + } + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Creates a duplicate instance of this cmdlet (via JSON serialization). + /// a duplicate instance of NewAzEventGridSystemTopic_CreateExpanded + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Cmdlets.NewAzEventGridSystemTopic_CreateExpanded Clone() + { + var clone = new NewAzEventGridSystemTopic_CreateExpanded(); + clone.__correlationId = this.__correlationId; + clone.__processRecordId = this.__processRecordId; + clone.DefaultProfile = this.DefaultProfile; + clone.InvocationInformation = this.InvocationInformation; + clone.Proxy = this.Proxy; + clone.Pipeline = this.Pipeline; + clone.AsJob = this.AsJob; + clone.Break = this.Break; + clone.ProxyCredential = this.ProxyCredential; + clone.ProxyUseDefaultCredentials = this.ProxyUseDefaultCredentials; + clone.HttpPipelinePrepend = this.HttpPipelinePrepend; + clone.HttpPipelineAppend = this.HttpPipelineAppend; + clone._systemTopicInfoBody = this._systemTopicInfoBody; + clone.SubscriptionId = this.SubscriptionId; + clone.ResourceGroupName = this.ResourceGroupName; + clone.Name = this.Name; + return clone; + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + + } + + /// Handles/Dispatches events during the call to the REST service. + /// The message id + /// The message cancellation token. When this call is cancelled, this should be true + /// Detailed message data for the message event. + /// + /// A that will be complete when handling of the message is completed. + /// + async global::System.Threading.Tasks.Task Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener.Signal(string id, global::System.Threading.CancellationToken token, global::System.Func messageData) + { + using( NoSynchronizationContext ) + { + if (token.IsCancellationRequested) + { + return ; + } + + switch ( id ) + { + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.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.EventGrid.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.EventGrid.Runtime.PowerShell.AsyncOperationResponse { Target = uri }); + // do nothing more. + data.Cancel(); + return; + } + } + break; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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 NewAzEventGridSystemTopic_CreateExpanded() + { + + } + + /// Performs execution of the command. + protected override void ProcessRecord() + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + if (ShouldProcess($"Call remote 'SystemTopicsCreateOrUpdate' operation")) + { + if (true == MyInvocation?.BoundParameters?.ContainsKey("AsJob")) + { + var instance = this.Clone(); + var job = new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token); + } + } + } + } + catch (global::System.AggregateException aggregateException) + { + // unroll the inner exceptions to get the root cause + foreach( var innerException in aggregateException.Flatten().InnerExceptions ) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(innerException,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + } + catch (global::System.Exception exception) when ((exception as System.Management.Automation.PipelineStoppedException)== null || (exception as System.Management.Automation.PipelineStoppedException).InnerException != null) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(exception,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + finally + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletProcessRecordEnd).Wait(); + } + } + + /// Performs execution of the command, working asynchronously if required. + /// + /// A that will be complete when handling of the method is completed. + /// + protected async global::System.Threading.Tasks.Task ProcessRecordAsync() + { + using( NoSynchronizationContext ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await this.Client.SystemTopicsCreateOrUpdate(SubscriptionId, ResourceGroupName, Name, _systemTopicInfoBody, onOk, onDefault, this, Pipeline); + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.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=_systemTopicInfoBody}) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(urexception.Message) { RecommendedAction = urexception.Action } + }); + } + finally + { + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Cancel(); + base.StopProcessing(); + } + + /// + /// a delegate that is called when the remote service returns default (any response code not handled elsewhere). + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onDefault(global::System.Net.Http.HttpResponseMessage responseMessage) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnDefault(responseMessage, ref _returnNow); + // if overrideOnDefault has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // Error Response : default + // Unrecognized Response. Create an error record based on what we have. + var ex = new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.RestException(responseMessage); + WriteError( new global::System.Management.Automation.ErrorRecord(ex, ex.Code, global::System.Management.Automation.ErrorCategory.InvalidOperation, new { SubscriptionId=SubscriptionId, ResourceGroupName=ResourceGroupName, Name=Name, body=_systemTopicInfoBody }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(ex.Message) { RecommendedAction = ex.Action } + }); + } + } + + /// a delegate that is called when the remote service returns 200 (OK). + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as 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.EventGrid.Models.Api20211015Preview.ISystemTopic + WriteObject((await response)); + } + } + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/cmdlets/NewAzEventGridTopicEventSubscription_CreateExpanded.cs b/swaggerci/eventgrid/generated/cmdlets/NewAzEventGridTopicEventSubscription_CreateExpanded.cs new file mode 100644 index 000000000000..adfad898f91d --- /dev/null +++ b/swaggerci/eventgrid/generated/cmdlets/NewAzEventGridTopicEventSubscription_CreateExpanded.cs @@ -0,0 +1,702 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Extensions; + using System; + + /// + /// Asynchronously creates a new event subscription or updates an existing event subscription. + /// + /// + /// [OpenAPI] CreateOrUpdate=>PUT:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.EventGrid/topics/{topicName}/eventSubscriptions/{eventSubscriptionName}" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsCommon.New, @"AzEventGridTopicEventSubscription_CreateExpanded", SupportsShouldProcess = true)] + [global::System.Management.Automation.OutputType(typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscription))] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Description(@"Asynchronously creates a new event subscription or updates an existing event subscription.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Generated] + public partial class NewAzEventGridTopicEventSubscription_CreateExpanded : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener + { + /// A unique id generatd for the this cmdlet when it is instantiated. + private string __correlationId = System.Guid.NewGuid().ToString(); + + /// A copy of the Invocation Info (necessary to allow asJob to clone this cmdlet) + private global::System.Management.Automation.InvocationInfo __invocationInfo; + + /// A unique id generatd for the this cmdlet when ProcessRecord() is called. + private string __processRecordId; + + /// + /// The for this operation. + /// + private global::System.Threading.CancellationTokenSource _cancellationTokenSource = new global::System.Threading.CancellationTokenSource(); + + /// Event Subscription + private Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscription _eventSubscriptionInfoBody = new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.EventSubscription(); + + /// 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.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.EventGridManagementClient Client => Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.ClientAPI; + + /// + /// The type of managed identity used. The type 'SystemAssigned, UserAssigned' includes both an implicitly created identity + /// and a set of user-assigned identities. The type 'None' will remove any identity. + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The type of managed identity used. The type 'SystemAssigned, UserAssigned' includes both an implicitly created identity and a set of user-assigned identities. The type 'None' will remove any identity.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The type of managed identity used. The type 'SystemAssigned, UserAssigned' includes both an implicitly created identity and a set of user-assigned identities. The type 'None' will remove any identity.", + SerializedName = @"type", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EventSubscriptionIdentityType) })] + [global::System.Management.Automation.ArgumentCompleter(typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EventSubscriptionIdentityType))] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EventSubscriptionIdentityType DeadLetterWithResourceIdentityType { get => _eventSubscriptionInfoBody.DeadLetterWithResourceIdentityType ?? ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EventSubscriptionIdentityType)""); set => _eventSubscriptionInfoBody.DeadLetterWithResourceIdentityType = value; } + + /// The user identity associated with the resource. + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The user identity associated with the resource.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The user identity associated with the resource.", + SerializedName = @"userAssignedIdentity", + PossibleTypes = new [] { typeof(string) })] + public string DeadLetterWithResourceIdentityUserAssignedIdentity { get => _eventSubscriptionInfoBody.DeadLetterWithResourceIdentityUserAssignedIdentity ?? null; set => _eventSubscriptionInfoBody.DeadLetterWithResourceIdentityUserAssignedIdentity = 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.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Azure)] + public global::System.Management.Automation.PSObject DefaultProfile { get; set; } + + /// Type of the endpoint for the event subscription destination. + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Type of the endpoint for the event subscription destination.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Type of the endpoint for the event subscription destination.", + SerializedName = @"endpointType", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EndpointType) })] + [global::System.Management.Automation.ArgumentCompleter(typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EndpointType))] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EndpointType DeliveryWithResourceIdentityDestinationEndpointType { get => _eventSubscriptionInfoBody.DeliveryWithResourceIdentityDestinationEndpointType ?? ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EndpointType)""); set => _eventSubscriptionInfoBody.DeliveryWithResourceIdentityDestinationEndpointType = value; } + + /// + /// The type of managed identity used. The type 'SystemAssigned, UserAssigned' includes both an implicitly created identity + /// and a set of user-assigned identities. The type 'None' will remove any identity. + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The type of managed identity used. The type 'SystemAssigned, UserAssigned' includes both an implicitly created identity and a set of user-assigned identities. The type 'None' will remove any identity.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The type of managed identity used. The type 'SystemAssigned, UserAssigned' includes both an implicitly created identity and a set of user-assigned identities. The type 'None' will remove any identity.", + SerializedName = @"type", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EventSubscriptionIdentityType) })] + [global::System.Management.Automation.ArgumentCompleter(typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EventSubscriptionIdentityType))] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EventSubscriptionIdentityType DeliveryWithResourceIdentityType { get => _eventSubscriptionInfoBody.DeliveryWithResourceIdentityType ?? ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EventSubscriptionIdentityType)""); set => _eventSubscriptionInfoBody.DeliveryWithResourceIdentityType = value; } + + /// The user identity associated with the resource. + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The user identity associated with the resource.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The user identity associated with the resource.", + SerializedName = @"userAssignedIdentity", + PossibleTypes = new [] { typeof(string) })] + public string DeliveryWithResourceIdentityUserAssignedIdentity { get => _eventSubscriptionInfoBody.DeliveryWithResourceIdentityUserAssignedIdentity ?? null; set => _eventSubscriptionInfoBody.DeliveryWithResourceIdentityUserAssignedIdentity = value; } + + /// Type of the endpoint for the event subscription destination. + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Type of the endpoint for the event subscription destination.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Type of the endpoint for the event subscription destination.", + SerializedName = @"endpointType", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EndpointType) })] + [global::System.Management.Automation.ArgumentCompleter(typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EndpointType))] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EndpointType EndpointType { get => _eventSubscriptionInfoBody.EndpointType ?? ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EndpointType)""); set => _eventSubscriptionInfoBody.EndpointType = value; } + + /// The event delivery schema for the event subscription. + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The event delivery schema for the event subscription.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The event delivery schema for the event subscription.", + SerializedName = @"eventDeliverySchema", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EventDeliverySchema) })] + [global::System.Management.Automation.ArgumentCompleter(typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EventDeliverySchema))] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EventDeliverySchema EventDeliverySchema { get => _eventSubscriptionInfoBody.EventDeliverySchema ?? ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EventDeliverySchema)""); set => _eventSubscriptionInfoBody.EventDeliverySchema = value; } + + /// Backing field for property. + private string _eventSubscriptionName; + + /// + /// Name of the event subscription to be created. Event subscription names must be between 3 and 100 characters in length + /// and use alphanumeric letters only. + /// + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Name of the event subscription to be created. Event subscription names must be between 3 and 100 characters in length and use alphanumeric letters only.")] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Name of the event subscription to be created. Event subscription names must be between 3 and 100 characters in length and use alphanumeric letters only.", + SerializedName = @"eventSubscriptionName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Path)] + public string EventSubscriptionName { get => this._eventSubscriptionName; set => this._eventSubscriptionName = value; } + + /// Expiration time of the event subscription. + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Expiration time of the event subscription.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Expiration time of the event subscription.", + SerializedName = @"expirationTimeUtc", + PossibleTypes = new [] { typeof(global::System.DateTime) })] + public global::System.DateTime ExpirationTimeUtc { get => _eventSubscriptionInfoBody.ExpirationTimeUtc ?? default(global::System.DateTime); set => _eventSubscriptionInfoBody.ExpirationTimeUtc = value; } + + /// An array of advanced filters that are used for filtering event subscriptions. + [global::System.Management.Automation.AllowEmptyCollection] + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "An array of advanced filters that are used for filtering event subscriptions.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"An array of advanced filters that are used for filtering event subscriptions.", + SerializedName = @"advancedFilters", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IAdvancedFilter) })] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IAdvancedFilter[] FilterAdvancedFilter { get => _eventSubscriptionInfoBody.FilterAdvancedFilter ?? null /* arrayOf */; set => _eventSubscriptionInfoBody.FilterAdvancedFilter = value; } + + /// + /// Allows advanced filters to be evaluated against an array of values instead of expecting a singular value. + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Allows advanced filters to be evaluated against an array of values instead of expecting a singular value.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Allows advanced filters to be evaluated against an array of values instead of expecting a singular value.", + SerializedName = @"enableAdvancedFilteringOnArrays", + PossibleTypes = new [] { typeof(global::System.Management.Automation.SwitchParameter) })] + public global::System.Management.Automation.SwitchParameter FilterEnableAdvancedFilteringOnArray { get => _eventSubscriptionInfoBody.FilterEnableAdvancedFilteringOnArray ?? default(global::System.Management.Automation.SwitchParameter); set => _eventSubscriptionInfoBody.FilterEnableAdvancedFilteringOnArray = value; } + + /// + /// A list of applicable event types that need to be part of the event subscription. If it is desired to subscribe to all + /// default event types, set the IncludedEventTypes to null. + /// + [global::System.Management.Automation.AllowEmptyCollection] + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "A list of applicable event types that need to be part of the event subscription. If it is desired to subscribe to all default event types, set the IncludedEventTypes to null.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"A list of applicable event types that need to be part of the event subscription. If it is desired to subscribe to all default event types, set the IncludedEventTypes to null.", + SerializedName = @"includedEventTypes", + PossibleTypes = new [] { typeof(string) })] + public string[] FilterIncludedEventType { get => _eventSubscriptionInfoBody.FilterIncludedEventType ?? null /* arrayOf */; set => _eventSubscriptionInfoBody.FilterIncludedEventType = value; } + + /// + /// Specifies if the SubjectBeginsWith and SubjectEndsWith properties of the filtershould be compared in a case sensitive + /// manner. + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Specifies if the SubjectBeginsWith and SubjectEndsWith properties of the filtershould be compared in a case sensitive manner.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Specifies if the SubjectBeginsWith and SubjectEndsWith properties of the filtershould be compared in a case sensitive manner.", + SerializedName = @"isSubjectCaseSensitive", + PossibleTypes = new [] { typeof(global::System.Management.Automation.SwitchParameter) })] + public global::System.Management.Automation.SwitchParameter FilterIsSubjectCaseSensitive { get => _eventSubscriptionInfoBody.FilterIsSubjectCaseSensitive ?? default(global::System.Management.Automation.SwitchParameter); set => _eventSubscriptionInfoBody.FilterIsSubjectCaseSensitive = value; } + + /// + /// An optional string to filter events for an event subscription based on a resource path prefix.The format of this depends + /// on the publisher of the events.Wildcard characters are not supported in this path. + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "An optional string to filter events for an event subscription based on a resource path prefix.The format of this depends on the publisher of the events.Wildcard characters are not supported in this path.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"An optional string to filter events for an event subscription based on a resource path prefix.The format of this depends on the publisher of the events.Wildcard characters are not supported in this path.", + SerializedName = @"subjectBeginsWith", + PossibleTypes = new [] { typeof(string) })] + public string FilterSubjectBeginsWith { get => _eventSubscriptionInfoBody.FilterSubjectBeginsWith ?? null; set => _eventSubscriptionInfoBody.FilterSubjectBeginsWith = value; } + + /// + /// An optional string to filter events for an event subscription based on a resource path suffix.Wildcard characters are + /// not supported in this path. + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "An optional string to filter events for an event subscription based on a resource path suffix.Wildcard characters are not supported in this path.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"An optional string to filter events for an event subscription based on a resource path suffix.Wildcard characters are not supported in this path.", + SerializedName = @"subjectEndsWith", + PossibleTypes = new [] { typeof(string) })] + public string FilterSubjectEndsWith { get => _eventSubscriptionInfoBody.FilterSubjectEndsWith ?? null; set => _eventSubscriptionInfoBody.FilterSubjectEndsWith = 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.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[] HttpPipelineAppend { get; set; } + + /// SendAsync Pipeline Steps to be prepended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be prepended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[] HttpPipelinePrepend { get; set; } + + /// Accessor for our copy of the InvocationInfo. + public global::System.Management.Automation.InvocationInfo InvocationInformation { get => __invocationInfo = __invocationInfo ?? this.MyInvocation ; set { __invocationInfo = value; } } + + /// List of user defined labels. + [global::System.Management.Automation.AllowEmptyCollection] + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "List of user defined labels.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"List of user defined labels.", + SerializedName = @"labels", + PossibleTypes = new [] { typeof(string) })] + public string[] Label { get => _eventSubscriptionInfoBody.Label ?? null /* arrayOf */; set => _eventSubscriptionInfoBody.Label = value; } + + /// + /// cancellation delegate. Stops the cmdlet when called. + /// + global::System.Action Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter NoWait { get; set; } + + /// + /// When specified, forces the cmdlet return a 'bool' given that there isn't a return type by default. + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Returns true when the command succeeds")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Runtime.HttpPipeline Pipeline { get; set; } + + /// The URI for the proxy server to use + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "The URI for the proxy server to use")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Uri Proxy { get; set; } + + /// Credentials for a proxy server to use for the remote call + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Credentials for a proxy server to use for the remote call")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Management.Automation.PSCredential ProxyCredential { get; set; } + + /// Use the default credentials for the proxy + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Use the default credentials for the proxy")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter ProxyUseDefaultCredentials { get; set; } + + /// Backing field for property. + private string _resourceGroupName; + + /// The name of the resource group within the user's subscription. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the resource group within the user's subscription.")] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the resource group within the user's subscription.", + SerializedName = @"resourceGroupName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Path)] + public string ResourceGroupName { get => this._resourceGroupName; set => this._resourceGroupName = value; } + + /// Time To Live (in minutes) for events. + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Time To Live (in minutes) for events.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Time To Live (in minutes) for events.", + SerializedName = @"eventTimeToLiveInMinutes", + PossibleTypes = new [] { typeof(int) })] + public int RetryPolicyEventTimeToLiveInMinute { get => _eventSubscriptionInfoBody.RetryPolicyEventTimeToLiveInMinute ?? default(int); set => _eventSubscriptionInfoBody.RetryPolicyEventTimeToLiveInMinute = value; } + + /// Maximum number of delivery retry attempts for events. + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Maximum number of delivery retry attempts for events.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Maximum number of delivery retry attempts for events.", + SerializedName = @"maxDeliveryAttempts", + PossibleTypes = new [] { typeof(int) })] + public int RetryPolicyMaxDeliveryAttempt { get => _eventSubscriptionInfoBody.RetryPolicyMaxDeliveryAttempt ?? default(int); set => _eventSubscriptionInfoBody.RetryPolicyMaxDeliveryAttempt = value; } + + /// Backing field for property. + private string _subscriptionId; + + /// + /// Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription ID forms part of the + /// URI for every service call. + /// + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.")] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.", + SerializedName = @"subscriptionId", + PossibleTypes = new [] { typeof(string) })] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.DefaultInfo( + Name = @"", + Description =@"", + Script = @"(Get-AzContext).Subscription.Id")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Path)] + public string SubscriptionId { get => this._subscriptionId; set => this._subscriptionId = value; } + + /// Backing field for property. + private string _topicName; + + /// Name of the domain topic. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Name of the domain topic.")] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Name of the domain topic.", + SerializedName = @"topicName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Path)] + public string TopicName { get => this._topicName; set => this._topicName = value; } + + /// + /// overrideOnDefault will be called before the regular onDefault has been processed, allowing customization of what + /// happens on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// /// Determines if the rest of the onDefault method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnDefault(global::System.Net.Http.HttpResponseMessage responseMessage, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnOk will be called before the regular onOk has been processed, allowing customization of what happens + /// on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// 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() + { + var telemetryId = Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.GetTelemetryId.Invoke(); + if (telemetryId != "" && telemetryId != "internal") + { + __correlationId = telemetryId; + } + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Creates a duplicate instance of this cmdlet (via JSON serialization). + /// a duplicate instance of NewAzEventGridTopicEventSubscription_CreateExpanded + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Cmdlets.NewAzEventGridTopicEventSubscription_CreateExpanded Clone() + { + var clone = new NewAzEventGridTopicEventSubscription_CreateExpanded(); + clone.__correlationId = this.__correlationId; + clone.__processRecordId = this.__processRecordId; + clone.DefaultProfile = this.DefaultProfile; + clone.InvocationInformation = this.InvocationInformation; + clone.Proxy = this.Proxy; + clone.Pipeline = this.Pipeline; + clone.AsJob = this.AsJob; + clone.Break = this.Break; + clone.ProxyCredential = this.ProxyCredential; + clone.ProxyUseDefaultCredentials = this.ProxyUseDefaultCredentials; + clone.HttpPipelinePrepend = this.HttpPipelinePrepend; + clone.HttpPipelineAppend = this.HttpPipelineAppend; + clone._eventSubscriptionInfoBody = this._eventSubscriptionInfoBody; + clone.SubscriptionId = this.SubscriptionId; + clone.ResourceGroupName = this.ResourceGroupName; + clone.TopicName = this.TopicName; + clone.EventSubscriptionName = this.EventSubscriptionName; + return clone; + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + + } + + /// Handles/Dispatches events during the call to the REST service. + /// The message id + /// The message cancellation token. When this call is cancelled, this should be true + /// Detailed message data for the message event. + /// + /// A that will be complete when handling of the message is completed. + /// + async global::System.Threading.Tasks.Task Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener.Signal(string id, global::System.Threading.CancellationToken token, global::System.Func messageData) + { + using( NoSynchronizationContext ) + { + if (token.IsCancellationRequested) + { + return ; + } + + switch ( id ) + { + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.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.EventGrid.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.EventGrid.Runtime.PowerShell.AsyncOperationResponse { Target = uri }); + // do nothing more. + data.Cancel(); + return; + } + } + break; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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 NewAzEventGridTopicEventSubscription_CreateExpanded() + { + + } + + /// Performs execution of the command. + protected override void ProcessRecord() + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + if (ShouldProcess($"Call remote 'TopicEventSubscriptionsCreateOrUpdate' operation")) + { + if (true == MyInvocation?.BoundParameters?.ContainsKey("AsJob")) + { + var instance = this.Clone(); + var job = new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token); + } + } + } + } + catch (global::System.AggregateException aggregateException) + { + // unroll the inner exceptions to get the root cause + foreach( var innerException in aggregateException.Flatten().InnerExceptions ) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(innerException,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + } + catch (global::System.Exception exception) when ((exception as System.Management.Automation.PipelineStoppedException)== null || (exception as System.Management.Automation.PipelineStoppedException).InnerException != null) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(exception,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + finally + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletProcessRecordEnd).Wait(); + } + } + + /// Performs execution of the command, working asynchronously if required. + /// + /// A that will be complete when handling of the method is completed. + /// + protected async global::System.Threading.Tasks.Task ProcessRecordAsync() + { + using( NoSynchronizationContext ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await this.Client.TopicEventSubscriptionsCreateOrUpdate(SubscriptionId, ResourceGroupName, TopicName, EventSubscriptionName, _eventSubscriptionInfoBody, onOk, onDefault, this, Pipeline); + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.UndeclaredResponseException urexception) + { + WriteError(new global::System.Management.Automation.ErrorRecord(urexception, urexception.StatusCode.ToString(), global::System.Management.Automation.ErrorCategory.InvalidOperation, new { SubscriptionId=SubscriptionId,ResourceGroupName=ResourceGroupName,TopicName=TopicName,EventSubscriptionName=EventSubscriptionName,body=_eventSubscriptionInfoBody}) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(urexception.Message) { RecommendedAction = urexception.Action } + }); + } + finally + { + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Cancel(); + base.StopProcessing(); + } + + /// + /// a delegate that is called when the remote service returns default (any response code not handled elsewhere). + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onDefault(global::System.Net.Http.HttpResponseMessage responseMessage) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnDefault(responseMessage, ref _returnNow); + // if overrideOnDefault has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // Error Response : default + // Unrecognized Response. Create an error record based on what we have. + var ex = new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.RestException(responseMessage); + WriteError( new global::System.Management.Automation.ErrorRecord(ex, ex.Code, global::System.Management.Automation.ErrorCategory.InvalidOperation, new { SubscriptionId=SubscriptionId, ResourceGroupName=ResourceGroupName, TopicName=TopicName, EventSubscriptionName=EventSubscriptionName, body=_eventSubscriptionInfoBody }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(ex.Message) { RecommendedAction = ex.Action } + }); + } + } + + /// a delegate that is called when the remote service returns 200 (OK). + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as 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.EventGrid.Models.Api20211015Preview.IEventSubscription + WriteObject((await response)); + } + } + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/cmdlets/NewAzEventGridTopicKey_Regenerate.cs b/swaggerci/eventgrid/generated/cmdlets/NewAzEventGridTopicKey_Regenerate.cs new file mode 100644 index 000000000000..63b767b26943 --- /dev/null +++ b/swaggerci/eventgrid/generated/cmdlets/NewAzEventGridTopicKey_Regenerate.cs @@ -0,0 +1,477 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Extensions; + using System; + + /// Regenerate a shared access key for a topic. + /// + /// [OpenAPI] RegenerateKey=>POST:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.EventGrid/topics/{topicName}/regenerateKey" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsCommon.New, @"AzEventGridTopicKey_Regenerate", SupportsShouldProcess = true)] + [global::System.Management.Automation.OutputType(typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITopicSharedAccessKeys))] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Description(@"Regenerate a shared access key for a topic.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Generated] + public partial class NewAzEventGridTopicKey_Regenerate : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener + { + /// A unique id generatd for the this cmdlet when it is instantiated. + private string __correlationId = System.Guid.NewGuid().ToString(); + + /// A copy of the Invocation Info (necessary to allow asJob to clone this cmdlet) + private global::System.Management.Automation.InvocationInfo __invocationInfo; + + /// A unique id generatd for the 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.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.EventGridManagementClient Client => Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.ClientAPI; + + /// + /// The credentials, account, tenant, and subscription used for communication with Azure + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The credentials, account, tenant, and subscription used for communication with Azure.")] + [global::System.Management.Automation.ValidateNotNull] + [global::System.Management.Automation.Alias("AzureRMContext", "AzureCredential")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Azure)] + public global::System.Management.Automation.PSObject DefaultProfile { get; set; } + + /// SendAsync Pipeline Steps to be appended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be appended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[] HttpPipelineAppend { get; set; } + + /// SendAsync Pipeline Steps to be prepended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be prepended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[] HttpPipelinePrepend { get; set; } + + /// Accessor for our copy of the InvocationInfo. + public global::System.Management.Automation.InvocationInfo InvocationInformation { get => __invocationInfo = __invocationInfo ?? this.MyInvocation ; set { __invocationInfo = value; } } + + /// + /// cancellation delegate. Stops the cmdlet when called. + /// + global::System.Action Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter NoWait { get; set; } + + /// + /// When specified, forces the cmdlet return a 'bool' given that there isn't a return type by default. + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Returns true when the command succeeds")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Runtime.HttpPipeline Pipeline { get; set; } + + /// The URI for the proxy server to use + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "The URI for the proxy server to use")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Uri Proxy { get; set; } + + /// Credentials for a proxy server to use for the remote call + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Credentials for a proxy server to use for the remote call")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Management.Automation.PSCredential ProxyCredential { get; set; } + + /// Use the default credentials for the proxy + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Use the default credentials for the proxy")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter ProxyUseDefaultCredentials { get; set; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITopicRegenerateKeyRequest _regenerateKeyRequest; + + /// Topic regenerate share access key request + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Topic regenerate share access key request", ValueFromPipeline = true)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Topic regenerate share access key request", + SerializedName = @"regenerateKeyRequest", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITopicRegenerateKeyRequest) })] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITopicRegenerateKeyRequest RegenerateKeyRequest { get => this._regenerateKeyRequest; set => this._regenerateKeyRequest = value; } + + /// Backing field for property. + private string _resourceGroupName; + + /// The name of the resource group within the user's subscription. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the resource group within the user's subscription.")] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the resource group within the user's subscription.", + SerializedName = @"resourceGroupName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Path)] + public string ResourceGroupName { get => this._resourceGroupName; set => this._resourceGroupName = value; } + + /// Backing field for property. + private string _subscriptionId; + + /// + /// Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription ID forms part of the + /// URI for every service call. + /// + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.")] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.", + SerializedName = @"subscriptionId", + PossibleTypes = new [] { typeof(string) })] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.DefaultInfo( + Name = @"", + Description =@"", + Script = @"(Get-AzContext).Subscription.Id")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Path)] + public string SubscriptionId { get => this._subscriptionId; set => this._subscriptionId = value; } + + /// Backing field for property. + private string _topicName; + + /// Name of the topic. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Name of the topic.")] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Name of the topic.", + SerializedName = @"topicName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Path)] + public string TopicName { get => this._topicName; set => this._topicName = value; } + + /// + /// overrideOnDefault will be called before the regular onDefault has been processed, allowing customization of what + /// happens on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// /// Determines if the rest of the onDefault method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnDefault(global::System.Net.Http.HttpResponseMessage responseMessage, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnOk will be called before the regular onOk has been processed, allowing customization of what happens + /// on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// 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() + { + var telemetryId = Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.GetTelemetryId.Invoke(); + if (telemetryId != "" && telemetryId != "internal") + { + __correlationId = telemetryId; + } + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Creates a duplicate instance of this cmdlet (via JSON serialization). + /// a duplicate instance of NewAzEventGridTopicKey_Regenerate + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Cmdlets.NewAzEventGridTopicKey_Regenerate Clone() + { + var clone = new NewAzEventGridTopicKey_Regenerate(); + 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.TopicName = this.TopicName; + clone.RegenerateKeyRequest = this.RegenerateKeyRequest; + return clone; + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + + } + + /// Handles/Dispatches events during the call to the REST service. + /// The message id + /// The message cancellation token. When this call is cancelled, this should be true + /// Detailed message data for the message event. + /// + /// A that will be complete when handling of the message is completed. + /// + async global::System.Threading.Tasks.Task Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener.Signal(string id, global::System.Threading.CancellationToken token, global::System.Func messageData) + { + using( NoSynchronizationContext ) + { + if (token.IsCancellationRequested) + { + return ; + } + + switch ( id ) + { + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.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.EventGrid.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.EventGrid.Runtime.PowerShell.AsyncOperationResponse { Target = uri }); + // do nothing more. + data.Cancel(); + return; + } + } + break; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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 NewAzEventGridTopicKey_Regenerate() + { + + } + + /// Performs execution of the command. + protected override void ProcessRecord() + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + if (ShouldProcess($"Call remote 'TopicsRegenerateKey' operation")) + { + if (true == MyInvocation?.BoundParameters?.ContainsKey("AsJob")) + { + var instance = this.Clone(); + var job = new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token); + } + } + } + } + catch (global::System.AggregateException aggregateException) + { + // unroll the inner exceptions to get the root cause + foreach( var innerException in aggregateException.Flatten().InnerExceptions ) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(innerException,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + } + catch (global::System.Exception exception) when ((exception as System.Management.Automation.PipelineStoppedException)== null || (exception as System.Management.Automation.PipelineStoppedException).InnerException != null) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(exception,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + finally + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletProcessRecordEnd).Wait(); + } + } + + /// Performs execution of the command, working asynchronously if required. + /// + /// A that will be complete when handling of the method is completed. + /// + protected async global::System.Threading.Tasks.Task ProcessRecordAsync() + { + using( NoSynchronizationContext ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await this.Client.TopicsRegenerateKey(SubscriptionId, ResourceGroupName, TopicName, RegenerateKeyRequest, onOk, onDefault, this, Pipeline); + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.UndeclaredResponseException urexception) + { + WriteError(new global::System.Management.Automation.ErrorRecord(urexception, urexception.StatusCode.ToString(), global::System.Management.Automation.ErrorCategory.InvalidOperation, new { SubscriptionId=SubscriptionId,ResourceGroupName=ResourceGroupName,TopicName=TopicName,body=RegenerateKeyRequest}) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(urexception.Message) { RecommendedAction = urexception.Action } + }); + } + finally + { + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Cancel(); + base.StopProcessing(); + } + + /// + /// a delegate that is called when the remote service returns default (any response code not handled elsewhere). + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onDefault(global::System.Net.Http.HttpResponseMessage responseMessage) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnDefault(responseMessage, ref _returnNow); + // if overrideOnDefault has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // Error Response : default + // Unrecognized Response. Create an error record based on what we have. + var ex = new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.RestException(responseMessage); + WriteError( new global::System.Management.Automation.ErrorRecord(ex, ex.Code, global::System.Management.Automation.ErrorCategory.InvalidOperation, new { SubscriptionId=SubscriptionId, ResourceGroupName=ResourceGroupName, TopicName=TopicName, body=RegenerateKeyRequest }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(ex.Message) { RecommendedAction = ex.Action } + }); + } + } + + /// a delegate that is called when the remote service returns 200 (OK). + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as 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.EventGrid.Models.Api20211015Preview.ITopicSharedAccessKeys + WriteObject((await response)); + } + } + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/cmdlets/NewAzEventGridTopicKey_RegenerateExpanded.cs b/swaggerci/eventgrid/generated/cmdlets/NewAzEventGridTopicKey_RegenerateExpanded.cs new file mode 100644 index 000000000000..ff3b753beb49 --- /dev/null +++ b/swaggerci/eventgrid/generated/cmdlets/NewAzEventGridTopicKey_RegenerateExpanded.cs @@ -0,0 +1,478 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Extensions; + using System; + + /// Regenerate a shared access key for a topic. + /// + /// [OpenAPI] RegenerateKey=>POST:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.EventGrid/topics/{topicName}/regenerateKey" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsCommon.New, @"AzEventGridTopicKey_RegenerateExpanded", SupportsShouldProcess = true)] + [global::System.Management.Automation.OutputType(typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITopicSharedAccessKeys))] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Description(@"Regenerate a shared access key for a topic.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Generated] + public partial class NewAzEventGridTopicKey_RegenerateExpanded : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener + { + /// A unique id generatd for the this cmdlet when it is instantiated. + private string __correlationId = System.Guid.NewGuid().ToString(); + + /// A copy of the Invocation Info (necessary to allow asJob to clone this cmdlet) + private global::System.Management.Automation.InvocationInfo __invocationInfo; + + /// A unique id generatd for the this cmdlet when ProcessRecord() is called. + private string __processRecordId; + + /// + /// The for this operation. + /// + private global::System.Threading.CancellationTokenSource _cancellationTokenSource = new global::System.Threading.CancellationTokenSource(); + + /// Topic regenerate share access key request + private Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITopicRegenerateKeyRequest _regenerateKeyRequestBody = new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.TopicRegenerateKeyRequest(); + + /// 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.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.EventGridManagementClient Client => Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.ClientAPI; + + /// + /// The credentials, account, tenant, and subscription used for communication with Azure + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The credentials, account, tenant, and subscription used for communication with Azure.")] + [global::System.Management.Automation.ValidateNotNull] + [global::System.Management.Automation.Alias("AzureRMContext", "AzureCredential")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Azure)] + public global::System.Management.Automation.PSObject DefaultProfile { get; set; } + + /// SendAsync Pipeline Steps to be appended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be appended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[] HttpPipelineAppend { get; set; } + + /// SendAsync Pipeline Steps to be prepended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be prepended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[] HttpPipelinePrepend { get; set; } + + /// Accessor for our copy of the InvocationInfo. + public global::System.Management.Automation.InvocationInfo InvocationInformation { get => __invocationInfo = __invocationInfo ?? this.MyInvocation ; set { __invocationInfo = value; } } + + /// Key name to regenerate key1 or key2 + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Key name to regenerate key1 or key2")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Key name to regenerate key1 or key2", + SerializedName = @"keyName", + PossibleTypes = new [] { typeof(string) })] + public string KeyName { get => _regenerateKeyRequestBody.KeyName ?? null; set => _regenerateKeyRequestBody.KeyName = value; } + + /// + /// cancellation delegate. Stops the cmdlet when called. + /// + global::System.Action Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter NoWait { get; set; } + + /// + /// When specified, forces the cmdlet return a 'bool' given that there isn't a return type by default. + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Returns true when the command succeeds")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Runtime.HttpPipeline Pipeline { get; set; } + + /// The URI for the proxy server to use + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "The URI for the proxy server to use")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Uri Proxy { get; set; } + + /// Credentials for a proxy server to use for the remote call + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Credentials for a proxy server to use for the remote call")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Management.Automation.PSCredential ProxyCredential { get; set; } + + /// Use the default credentials for the proxy + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Use the default credentials for the proxy")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter ProxyUseDefaultCredentials { get; set; } + + /// Backing field for property. + private string _resourceGroupName; + + /// The name of the resource group within the user's subscription. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the resource group within the user's subscription.")] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the resource group within the user's subscription.", + SerializedName = @"resourceGroupName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Path)] + public string ResourceGroupName { get => this._resourceGroupName; set => this._resourceGroupName = value; } + + /// Backing field for property. + private string _subscriptionId; + + /// + /// Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription ID forms part of the + /// URI for every service call. + /// + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.")] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.", + SerializedName = @"subscriptionId", + PossibleTypes = new [] { typeof(string) })] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.DefaultInfo( + Name = @"", + Description =@"", + Script = @"(Get-AzContext).Subscription.Id")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Path)] + public string SubscriptionId { get => this._subscriptionId; set => this._subscriptionId = value; } + + /// Backing field for property. + private string _topicName; + + /// Name of the topic. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Name of the topic.")] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Name of the topic.", + SerializedName = @"topicName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Path)] + public string TopicName { get => this._topicName; set => this._topicName = value; } + + /// + /// overrideOnDefault will be called before the regular onDefault has been processed, allowing customization of what + /// happens on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// /// Determines if the rest of the onDefault method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnDefault(global::System.Net.Http.HttpResponseMessage responseMessage, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnOk will be called before the regular onOk has been processed, allowing customization of what happens + /// on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// 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() + { + var telemetryId = Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.GetTelemetryId.Invoke(); + if (telemetryId != "" && telemetryId != "internal") + { + __correlationId = telemetryId; + } + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Creates a duplicate instance of this cmdlet (via JSON serialization). + /// a duplicate instance of NewAzEventGridTopicKey_RegenerateExpanded + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Cmdlets.NewAzEventGridTopicKey_RegenerateExpanded Clone() + { + var clone = new NewAzEventGridTopicKey_RegenerateExpanded(); + 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._regenerateKeyRequestBody = this._regenerateKeyRequestBody; + clone.SubscriptionId = this.SubscriptionId; + clone.ResourceGroupName = this.ResourceGroupName; + clone.TopicName = this.TopicName; + return clone; + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + + } + + /// Handles/Dispatches events during the call to the REST service. + /// The message id + /// The message cancellation token. When this call is cancelled, this should be true + /// Detailed message data for the message event. + /// + /// A that will be complete when handling of the message is completed. + /// + async global::System.Threading.Tasks.Task Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener.Signal(string id, global::System.Threading.CancellationToken token, global::System.Func messageData) + { + using( NoSynchronizationContext ) + { + if (token.IsCancellationRequested) + { + return ; + } + + switch ( id ) + { + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.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.EventGrid.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.EventGrid.Runtime.PowerShell.AsyncOperationResponse { Target = uri }); + // do nothing more. + data.Cancel(); + return; + } + } + break; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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 NewAzEventGridTopicKey_RegenerateExpanded() + { + + } + + /// Performs execution of the command. + protected override void ProcessRecord() + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + if (ShouldProcess($"Call remote 'TopicsRegenerateKey' operation")) + { + if (true == MyInvocation?.BoundParameters?.ContainsKey("AsJob")) + { + var instance = this.Clone(); + var job = new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token); + } + } + } + } + catch (global::System.AggregateException aggregateException) + { + // unroll the inner exceptions to get the root cause + foreach( var innerException in aggregateException.Flatten().InnerExceptions ) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(innerException,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + } + catch (global::System.Exception exception) when ((exception as System.Management.Automation.PipelineStoppedException)== null || (exception as System.Management.Automation.PipelineStoppedException).InnerException != null) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(exception,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + finally + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletProcessRecordEnd).Wait(); + } + } + + /// Performs execution of the command, working asynchronously if required. + /// + /// A that will be complete when handling of the method is completed. + /// + protected async global::System.Threading.Tasks.Task ProcessRecordAsync() + { + using( NoSynchronizationContext ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await this.Client.TopicsRegenerateKey(SubscriptionId, ResourceGroupName, TopicName, _regenerateKeyRequestBody, onOk, onDefault, this, Pipeline); + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.UndeclaredResponseException urexception) + { + WriteError(new global::System.Management.Automation.ErrorRecord(urexception, urexception.StatusCode.ToString(), global::System.Management.Automation.ErrorCategory.InvalidOperation, new { SubscriptionId=SubscriptionId,ResourceGroupName=ResourceGroupName,TopicName=TopicName,body=_regenerateKeyRequestBody}) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(urexception.Message) { RecommendedAction = urexception.Action } + }); + } + finally + { + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Cancel(); + base.StopProcessing(); + } + + /// + /// a delegate that is called when the remote service returns default (any response code not handled elsewhere). + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onDefault(global::System.Net.Http.HttpResponseMessage responseMessage) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnDefault(responseMessage, ref _returnNow); + // if overrideOnDefault has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // Error Response : default + // Unrecognized Response. Create an error record based on what we have. + var ex = new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.RestException(responseMessage); + WriteError( new global::System.Management.Automation.ErrorRecord(ex, ex.Code, global::System.Management.Automation.ErrorCategory.InvalidOperation, new { SubscriptionId=SubscriptionId, ResourceGroupName=ResourceGroupName, TopicName=TopicName, body=_regenerateKeyRequestBody }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(ex.Message) { RecommendedAction = ex.Action } + }); + } + } + + /// a delegate that is called when the remote service returns 200 (OK). + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as 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.EventGrid.Models.Api20211015Preview.ITopicSharedAccessKeys + WriteObject((await response)); + } + } + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/cmdlets/NewAzEventGridTopicKey_RegenerateViaIdentity.cs b/swaggerci/eventgrid/generated/cmdlets/NewAzEventGridTopicKey_RegenerateViaIdentity.cs new file mode 100644 index 000000000000..2c54c19f17b1 --- /dev/null +++ b/swaggerci/eventgrid/generated/cmdlets/NewAzEventGridTopicKey_RegenerateViaIdentity.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.EventGrid.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Extensions; + using System; + + /// Regenerate a shared access key for a topic. + /// + /// [OpenAPI] RegenerateKey=>POST:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.EventGrid/topics/{topicName}/regenerateKey" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsCommon.New, @"AzEventGridTopicKey_RegenerateViaIdentity", SupportsShouldProcess = true)] + [global::System.Management.Automation.OutputType(typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITopicSharedAccessKeys))] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Description(@"Regenerate a shared access key for a topic.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Generated] + public partial class NewAzEventGridTopicKey_RegenerateViaIdentity : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener + { + /// A unique id generatd for the this cmdlet when it is instantiated. + private string __correlationId = System.Guid.NewGuid().ToString(); + + /// A copy of the Invocation Info (necessary to allow asJob to clone this cmdlet) + private global::System.Management.Automation.InvocationInfo __invocationInfo; + + /// A unique id generatd for the 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.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.EventGridManagementClient Client => Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.ClientAPI; + + /// + /// The credentials, account, tenant, and subscription used for communication with Azure + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The credentials, account, tenant, and subscription used for communication with Azure.")] + [global::System.Management.Automation.ValidateNotNull] + [global::System.Management.Automation.Alias("AzureRMContext", "AzureCredential")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Azure)] + public global::System.Management.Automation.PSObject DefaultProfile { get; set; } + + /// SendAsync Pipeline Steps to be appended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be appended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[] HttpPipelineAppend { get; set; } + + /// SendAsync Pipeline Steps to be prepended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be prepended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[] HttpPipelinePrepend { get; set; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.IEventGridIdentity _inputObject; + + /// Identity Parameter + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Identity Parameter", ValueFromPipeline = true)] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Path)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.IEventGridIdentity InputObject { get => this._inputObject; set => this._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.EventGrid.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter NoWait { get; set; } + + /// + /// When specified, forces the cmdlet return a 'bool' given that there isn't a return type by default. + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Returns true when the command succeeds")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Runtime.HttpPipeline Pipeline { get; set; } + + /// The URI for the proxy server to use + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "The URI for the proxy server to use")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Uri Proxy { get; set; } + + /// Credentials for a proxy server to use for the remote call + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Credentials for a proxy server to use for the remote call")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Management.Automation.PSCredential ProxyCredential { get; set; } + + /// Use the default credentials for the proxy + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Use the default credentials for the proxy")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter ProxyUseDefaultCredentials { get; set; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITopicRegenerateKeyRequest _regenerateKeyRequest; + + /// Topic regenerate share access key request + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Topic regenerate share access key request", ValueFromPipeline = true)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Topic regenerate share access key request", + SerializedName = @"regenerateKeyRequest", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITopicRegenerateKeyRequest) })] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITopicRegenerateKeyRequest RegenerateKeyRequest { get => this._regenerateKeyRequest; set => this._regenerateKeyRequest = value; } + + /// + /// overrideOnDefault will be called before the regular onDefault has been processed, allowing customization of what + /// happens on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// /// Determines if the rest of the onDefault method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnDefault(global::System.Net.Http.HttpResponseMessage responseMessage, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnOk will be called before the regular onOk has been processed, allowing customization of what happens + /// on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// 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() + { + var telemetryId = Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.GetTelemetryId.Invoke(); + if (telemetryId != "" && telemetryId != "internal") + { + __correlationId = telemetryId; + } + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Creates a duplicate instance of this cmdlet (via JSON serialization). + /// a duplicate instance of NewAzEventGridTopicKey_RegenerateViaIdentity + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Cmdlets.NewAzEventGridTopicKey_RegenerateViaIdentity Clone() + { + var clone = new NewAzEventGridTopicKey_RegenerateViaIdentity(); + 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.RegenerateKeyRequest = this.RegenerateKeyRequest; + return clone; + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + + } + + /// Handles/Dispatches events during the call to the REST service. + /// The message id + /// The message cancellation token. When this call is cancelled, this should be true + /// Detailed message data for the message event. + /// + /// A that will be complete when handling of the message is completed. + /// + async global::System.Threading.Tasks.Task Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener.Signal(string id, global::System.Threading.CancellationToken token, global::System.Func messageData) + { + using( NoSynchronizationContext ) + { + if (token.IsCancellationRequested) + { + return ; + } + + switch ( id ) + { + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.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.EventGrid.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.EventGrid.Runtime.PowerShell.AsyncOperationResponse { Target = uri }); + // do nothing more. + data.Cancel(); + return; + } + } + break; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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 NewAzEventGridTopicKey_RegenerateViaIdentity() + { + + } + + /// Performs execution of the command. + protected override void ProcessRecord() + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + if (ShouldProcess($"Call remote 'TopicsRegenerateKey' operation")) + { + if (true == MyInvocation?.BoundParameters?.ContainsKey("AsJob")) + { + var instance = this.Clone(); + var job = new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token); + } + } + } + } + catch (global::System.AggregateException aggregateException) + { + // unroll the inner exceptions to get the root cause + foreach( var innerException in aggregateException.Flatten().InnerExceptions ) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(innerException,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + } + catch (global::System.Exception exception) when ((exception as System.Management.Automation.PipelineStoppedException)== null || (exception as System.Management.Automation.PipelineStoppedException).InnerException != null) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(exception,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + finally + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletProcessRecordEnd).Wait(); + } + } + + /// Performs execution of the command, working asynchronously if required. + /// + /// A that will be complete when handling of the method is completed. + /// + protected async global::System.Threading.Tasks.Task ProcessRecordAsync() + { + using( NoSynchronizationContext ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + if (InputObject?.Id != null) + { + await this.Client.TopicsRegenerateKeyViaIdentity(InputObject.Id, RegenerateKeyRequest, 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.TopicName) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.TopicName"),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, InputObject) ); + } + await this.Client.TopicsRegenerateKey(InputObject.SubscriptionId ?? null, InputObject.ResourceGroupName ?? null, InputObject.TopicName ?? null, RegenerateKeyRequest, onOk, onDefault, this, Pipeline); + } + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.UndeclaredResponseException urexception) + { + WriteError(new global::System.Management.Automation.ErrorRecord(urexception, urexception.StatusCode.ToString(), global::System.Management.Automation.ErrorCategory.InvalidOperation, new { body=RegenerateKeyRequest}) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(urexception.Message) { RecommendedAction = urexception.Action } + }); + } + finally + { + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Cancel(); + base.StopProcessing(); + } + + /// + /// a delegate that is called when the remote service returns default (any response code not handled elsewhere). + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onDefault(global::System.Net.Http.HttpResponseMessage responseMessage) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnDefault(responseMessage, ref _returnNow); + // if overrideOnDefault has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // Error Response : default + // Unrecognized Response. Create an error record based on what we have. + var ex = new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.RestException(responseMessage); + WriteError( new global::System.Management.Automation.ErrorRecord(ex, ex.Code, global::System.Management.Automation.ErrorCategory.InvalidOperation, new { body=RegenerateKeyRequest }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(ex.Message) { RecommendedAction = ex.Action } + }); + } + } + + /// a delegate that is called when the remote service returns 200 (OK). + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as 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.EventGrid.Models.Api20211015Preview.ITopicSharedAccessKeys + WriteObject((await response)); + } + } + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/cmdlets/NewAzEventGridTopicKey_RegenerateViaIdentityExpanded.cs b/swaggerci/eventgrid/generated/cmdlets/NewAzEventGridTopicKey_RegenerateViaIdentityExpanded.cs new file mode 100644 index 000000000000..ea919ede606c --- /dev/null +++ b/swaggerci/eventgrid/generated/cmdlets/NewAzEventGridTopicKey_RegenerateViaIdentityExpanded.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.EventGrid.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Extensions; + using System; + + /// Regenerate a shared access key for a topic. + /// + /// [OpenAPI] RegenerateKey=>POST:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.EventGrid/topics/{topicName}/regenerateKey" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsCommon.New, @"AzEventGridTopicKey_RegenerateViaIdentityExpanded", SupportsShouldProcess = true)] + [global::System.Management.Automation.OutputType(typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITopicSharedAccessKeys))] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Description(@"Regenerate a shared access key for a topic.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Generated] + public partial class NewAzEventGridTopicKey_RegenerateViaIdentityExpanded : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener + { + /// A unique id generatd for the this cmdlet when it is instantiated. + private string __correlationId = System.Guid.NewGuid().ToString(); + + /// A copy of the Invocation Info (necessary to allow asJob to clone this cmdlet) + private global::System.Management.Automation.InvocationInfo __invocationInfo; + + /// A unique id generatd for the this cmdlet when ProcessRecord() is called. + private string __processRecordId; + + /// + /// The for this operation. + /// + private global::System.Threading.CancellationTokenSource _cancellationTokenSource = new global::System.Threading.CancellationTokenSource(); + + /// Topic regenerate share access key request + private Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITopicRegenerateKeyRequest _regenerateKeyRequestBody = new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.TopicRegenerateKeyRequest(); + + /// 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.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.EventGridManagementClient Client => Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.ClientAPI; + + /// + /// The credentials, account, tenant, and subscription used for communication with Azure + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The credentials, account, tenant, and subscription used for communication with Azure.")] + [global::System.Management.Automation.ValidateNotNull] + [global::System.Management.Automation.Alias("AzureRMContext", "AzureCredential")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Azure)] + public global::System.Management.Automation.PSObject DefaultProfile { get; set; } + + /// SendAsync Pipeline Steps to be appended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be appended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[] HttpPipelineAppend { get; set; } + + /// SendAsync Pipeline Steps to be prepended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be prepended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[] HttpPipelinePrepend { get; set; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.IEventGridIdentity _inputObject; + + /// Identity Parameter + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Identity Parameter", ValueFromPipeline = true)] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Path)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.IEventGridIdentity InputObject { get => this._inputObject; set => this._inputObject = value; } + + /// Accessor for our copy of the InvocationInfo. + public global::System.Management.Automation.InvocationInfo InvocationInformation { get => __invocationInfo = __invocationInfo ?? this.MyInvocation ; set { __invocationInfo = value; } } + + /// Key name to regenerate key1 or key2 + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Key name to regenerate key1 or key2")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Key name to regenerate key1 or key2", + SerializedName = @"keyName", + PossibleTypes = new [] { typeof(string) })] + public string KeyName { get => _regenerateKeyRequestBody.KeyName ?? null; set => _regenerateKeyRequestBody.KeyName = value; } + + /// + /// cancellation delegate. Stops the cmdlet when called. + /// + global::System.Action Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter NoWait { get; set; } + + /// + /// When specified, forces the cmdlet return a 'bool' given that there isn't a return type by default. + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Returns true when the command succeeds")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Runtime.HttpPipeline Pipeline { get; set; } + + /// The URI for the proxy server to use + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "The URI for the proxy server to use")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Uri Proxy { get; set; } + + /// Credentials for a proxy server to use for the remote call + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Credentials for a proxy server to use for the remote call")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Management.Automation.PSCredential ProxyCredential { get; set; } + + /// Use the default credentials for the proxy + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Use the default credentials for the proxy")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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. + /// /// Determines if the rest of the onDefault method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnDefault(global::System.Net.Http.HttpResponseMessage responseMessage, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnOk will be called before the regular onOk has been processed, allowing customization of what happens + /// on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// 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() + { + var telemetryId = Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.GetTelemetryId.Invoke(); + if (telemetryId != "" && telemetryId != "internal") + { + __correlationId = telemetryId; + } + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Creates a duplicate instance of this cmdlet (via JSON serialization). + /// a duplicate instance of NewAzEventGridTopicKey_RegenerateViaIdentityExpanded + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Cmdlets.NewAzEventGridTopicKey_RegenerateViaIdentityExpanded Clone() + { + var clone = new NewAzEventGridTopicKey_RegenerateViaIdentityExpanded(); + 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._regenerateKeyRequestBody = this._regenerateKeyRequestBody; + return clone; + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + + } + + /// Handles/Dispatches events during the call to the REST service. + /// The message id + /// The message cancellation token. When this call is cancelled, this should be true + /// Detailed message data for the message event. + /// + /// A that will be complete when handling of the message is completed. + /// + async global::System.Threading.Tasks.Task Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener.Signal(string id, global::System.Threading.CancellationToken token, global::System.Func messageData) + { + using( NoSynchronizationContext ) + { + if (token.IsCancellationRequested) + { + return ; + } + + switch ( id ) + { + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.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.EventGrid.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.EventGrid.Runtime.PowerShell.AsyncOperationResponse { Target = uri }); + // do nothing more. + data.Cancel(); + return; + } + } + break; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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 NewAzEventGridTopicKey_RegenerateViaIdentityExpanded() + { + + } + + /// Performs execution of the command. + protected override void ProcessRecord() + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + if (ShouldProcess($"Call remote 'TopicsRegenerateKey' operation")) + { + if (true == MyInvocation?.BoundParameters?.ContainsKey("AsJob")) + { + var instance = this.Clone(); + var job = new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token); + } + } + } + } + catch (global::System.AggregateException aggregateException) + { + // unroll the inner exceptions to get the root cause + foreach( var innerException in aggregateException.Flatten().InnerExceptions ) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(innerException,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + } + catch (global::System.Exception exception) when ((exception as System.Management.Automation.PipelineStoppedException)== null || (exception as System.Management.Automation.PipelineStoppedException).InnerException != null) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(exception,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + finally + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletProcessRecordEnd).Wait(); + } + } + + /// Performs execution of the command, working asynchronously if required. + /// + /// A that will be complete when handling of the method is completed. + /// + protected async global::System.Threading.Tasks.Task ProcessRecordAsync() + { + using( NoSynchronizationContext ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + if (InputObject?.Id != null) + { + await this.Client.TopicsRegenerateKeyViaIdentity(InputObject.Id, _regenerateKeyRequestBody, 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.TopicName) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.TopicName"),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, InputObject) ); + } + await this.Client.TopicsRegenerateKey(InputObject.SubscriptionId ?? null, InputObject.ResourceGroupName ?? null, InputObject.TopicName ?? null, _regenerateKeyRequestBody, onOk, onDefault, this, Pipeline); + } + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.UndeclaredResponseException urexception) + { + WriteError(new global::System.Management.Automation.ErrorRecord(urexception, urexception.StatusCode.ToString(), global::System.Management.Automation.ErrorCategory.InvalidOperation, new { body=_regenerateKeyRequestBody}) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(urexception.Message) { RecommendedAction = urexception.Action } + }); + } + finally + { + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Cancel(); + base.StopProcessing(); + } + + /// + /// a delegate that is called when the remote service returns default (any response code not handled elsewhere). + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onDefault(global::System.Net.Http.HttpResponseMessage responseMessage) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnDefault(responseMessage, ref _returnNow); + // if overrideOnDefault has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // Error Response : default + // Unrecognized Response. Create an error record based on what we have. + var ex = new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.RestException(responseMessage); + WriteError( new global::System.Management.Automation.ErrorRecord(ex, ex.Code, global::System.Management.Automation.ErrorCategory.InvalidOperation, new { body=_regenerateKeyRequestBody }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(ex.Message) { RecommendedAction = ex.Action } + }); + } + } + + /// a delegate that is called when the remote service returns 200 (OK). + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as 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.EventGrid.Models.Api20211015Preview.ITopicSharedAccessKeys + WriteObject((await response)); + } + } + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/cmdlets/NewAzEventGridTopic_CreateExpanded.cs b/swaggerci/eventgrid/generated/cmdlets/NewAzEventGridTopic_CreateExpanded.cs new file mode 100644 index 000000000000..175a99b76578 --- /dev/null +++ b/swaggerci/eventgrid/generated/cmdlets/NewAzEventGridTopic_CreateExpanded.cs @@ -0,0 +1,625 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Extensions; + using System; + + /// Asynchronously creates a new topic with the specified parameters. + /// + /// [OpenAPI] CreateOrUpdate=>PUT:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.EventGrid/topics/{topicName}" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsCommon.New, @"AzEventGridTopic_CreateExpanded", SupportsShouldProcess = true)] + [global::System.Management.Automation.OutputType(typeof(bool))] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Description(@"Asynchronously creates a new topic with the specified parameters.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Generated] + public partial class NewAzEventGridTopic_CreateExpanded : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener + { + /// A unique id generatd for the this cmdlet when it is instantiated. + private string __correlationId = System.Guid.NewGuid().ToString(); + + /// A copy of the Invocation Info (necessary to allow asJob to clone this cmdlet) + private global::System.Management.Automation.InvocationInfo __invocationInfo; + + /// A unique id generatd for the this cmdlet when ProcessRecord() is called. + private string __processRecordId; + + /// + /// The for this operation. + /// + private global::System.Threading.CancellationTokenSource _cancellationTokenSource = new global::System.Threading.CancellationTokenSource(); + + /// EventGrid Topic + private Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITopic _topicInfoBody = new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.Topic(); + + /// 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.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.EventGridManagementClient Client => Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.ClientAPI; + + /// Data Residency Boundary of the resource. + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Data Residency Boundary of the resource.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Data Residency Boundary of the resource.", + SerializedName = @"dataResidencyBoundary", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.DataResidencyBoundary) })] + [global::System.Management.Automation.ArgumentCompleter(typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.DataResidencyBoundary))] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.DataResidencyBoundary DataResidencyBoundary { get => _topicInfoBody.DataResidencyBoundary ?? ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.DataResidencyBoundary)""); set => _topicInfoBody.DataResidencyBoundary = 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.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Azure)] + public global::System.Management.Automation.PSObject DefaultProfile { get; set; } + + /// + /// This boolean is used to enable or disable local auth. Default value is false. When the property is set to true, only AAD + /// token will be used to authenticate if user is allowed to publish to the topic. + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "This boolean is used to enable or disable local auth. Default value is false. When the property is set to true, only AAD token will be used to authenticate if user is allowed to publish to the topic.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"This boolean is used to enable or disable local auth. Default value is false. When the property is set to true, only AAD token will be used to authenticate if user is allowed to publish to the topic.", + SerializedName = @"disableLocalAuth", + PossibleTypes = new [] { typeof(global::System.Management.Automation.SwitchParameter) })] + public global::System.Management.Automation.SwitchParameter DisableLocalAuth { get => _topicInfoBody.DisableLocalAuth ?? default(global::System.Management.Automation.SwitchParameter); set => _topicInfoBody.DisableLocalAuth = value; } + + /// Fully qualified name of the extended location. + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Fully qualified name of the extended location.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Fully qualified name of the extended location.", + SerializedName = @"name", + PossibleTypes = new [] { typeof(string) })] + public string ExtendedLocationName { get => _topicInfoBody.ExtendedLocationName ?? null; set => _topicInfoBody.ExtendedLocationName = value; } + + /// Type of the extended location. + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Type of the extended location.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Type of the extended location.", + SerializedName = @"type", + PossibleTypes = new [] { typeof(string) })] + public string ExtendedLocationType { get => _topicInfoBody.ExtendedLocationType ?? null; set => _topicInfoBody.ExtendedLocationType = value; } + + /// SendAsync Pipeline Steps to be appended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be appended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[] HttpPipelineAppend { get; set; } + + /// SendAsync Pipeline Steps to be prepended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be prepended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[] HttpPipelinePrepend { get; set; } + + /// The principal ID of resource identity. + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The principal ID of resource identity.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The principal ID of resource identity.", + SerializedName = @"principalId", + PossibleTypes = new [] { typeof(string) })] + public string IdentityPrincipalId { get => _topicInfoBody.IdentityPrincipalId ?? null; set => _topicInfoBody.IdentityPrincipalId = value; } + + /// The tenant ID of resource. + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The tenant ID of resource.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The tenant ID of resource.", + SerializedName = @"tenantId", + PossibleTypes = new [] { typeof(string) })] + public string IdentityTenantId { get => _topicInfoBody.IdentityTenantId ?? null; set => _topicInfoBody.IdentityTenantId = value; } + + /// + /// The type of managed identity used. The type 'SystemAssigned, UserAssigned' includes both an implicitly created identity + /// and a set of user-assigned identities. The type 'None' will remove any identity. + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The type of managed identity used. The type 'SystemAssigned, UserAssigned' includes both an implicitly created identity and a set of user-assigned identities. The type 'None' will remove any identity.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The type of managed identity used. The type 'SystemAssigned, UserAssigned' includes both an implicitly created identity and a set of user-assigned identities. The type 'None' will remove any identity.", + SerializedName = @"type", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.IdentityType) })] + [global::System.Management.Automation.ArgumentCompleter(typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.IdentityType))] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.IdentityType IdentityType { get => _topicInfoBody.IdentityType ?? ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.IdentityType)""); set => _topicInfoBody.IdentityType = value; } + + /// + /// The list of user identities associated with the resource. The user identity dictionary key references will be ARM resource + /// ids in the form:'/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ManagedIdentity/userAssignedIdentities/{identityName}'.This + /// property is currently not used and reserved for future usage. + /// + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ExportAs(typeof(global::System.Collections.Hashtable))] + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The list of user identities associated with the resource. The user identity dictionary key references will be ARM resource ids in the form:'/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ManagedIdentity/userAssignedIdentities/{identityName}'.This property is currently not used and reserved for future usage.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The list of user identities associated with the resource. The user identity dictionary key references will be ARM resource ids in the form:'/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ManagedIdentity/userAssignedIdentities/{identityName}'.This property is currently not used and reserved for future usage.", + SerializedName = @"userAssignedIdentities", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IIdentityInfoUserAssignedIdentities) })] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IIdentityInfoUserAssignedIdentities IdentityUserAssignedIdentity { get => _topicInfoBody.IdentityUserAssignedIdentity ?? null /* object */; set => _topicInfoBody.IdentityUserAssignedIdentity = value; } + + /// + /// This can be used to restrict traffic from specific IPs instead of all IPs. Note: These are considered only if PublicNetworkAccess + /// is enabled. + /// + [global::System.Management.Automation.AllowEmptyCollection] + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "This can be used to restrict traffic from specific IPs instead of all IPs. Note: These are considered only if PublicNetworkAccess is enabled.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"This can be used to restrict traffic from specific IPs instead of all IPs. Note: These are considered only if PublicNetworkAccess is enabled.", + SerializedName = @"inboundIpRules", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IInboundIPRule) })] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IInboundIPRule[] InboundIPRule { get => _topicInfoBody.InboundIPRule ?? null /* arrayOf */; set => _topicInfoBody.InboundIPRule = value; } + + /// + /// This determines the format that Event Grid should expect for incoming events published to the topic. + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "This determines the format that Event Grid should expect for incoming events published to the topic.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"This determines the format that Event Grid should expect for incoming events published to the topic.", + SerializedName = @"inputSchema", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.InputSchema) })] + [global::System.Management.Automation.ArgumentCompleter(typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.InputSchema))] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.InputSchema InputSchema { get => _topicInfoBody.InputSchema ?? ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.InputSchema)""); set => _topicInfoBody.InputSchema = value; } + + /// Accessor for our copy of the InvocationInfo. + public global::System.Management.Automation.InvocationInfo InvocationInformation { get => __invocationInfo = __invocationInfo ?? this.MyInvocation ; set { __invocationInfo = value; } } + + /// Kind of the resource. + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Kind of the resource.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Kind of the resource.", + SerializedName = @"kind", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.ResourceKind) })] + [global::System.Management.Automation.ArgumentCompleter(typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.ResourceKind))] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.ResourceKind Kind { get => _topicInfoBody.Kind ?? ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.ResourceKind)""); set => _topicInfoBody.Kind = value; } + + /// Location of the resource. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Location of the resource.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Location of the resource.", + SerializedName = @"location", + PossibleTypes = new [] { typeof(string) })] + public string Location { get => _topicInfoBody.Location ?? null; set => _topicInfoBody.Location = value; } + + /// + /// cancellation delegate. Stops the cmdlet when called. + /// + global::System.Action Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener.Token => _cancellationTokenSource.Token; + + /// Backing field for property. + private string _name; + + /// Name of the topic. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Name of the topic.")] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Name of the topic.", + SerializedName = @"topicName", + PossibleTypes = new [] { typeof(string) })] + [global::System.Management.Automation.Alias("TopicName")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Path)] + public string Name { get => this._name; set => this._name = value; } + + /// + /// when specified, will make the remote call, and return an AsyncOperationResponse, letting the remote operation continue + /// asynchronously. + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Run the command asynchronously")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter NoWait { get; set; } + + /// + /// When specified, forces the cmdlet return a 'bool' given that there isn't a return type by default. + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Returns true when the command succeeds")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Runtime.HttpPipeline Pipeline { get; set; } + + /// The URI for the proxy server to use + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "The URI for the proxy server to use")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Uri Proxy { get; set; } + + /// Credentials for a proxy server to use for the remote call + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Credentials for a proxy server to use for the remote call")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Management.Automation.PSCredential ProxyCredential { get; set; } + + /// Use the default credentials for the proxy + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Use the default credentials for the proxy")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter ProxyUseDefaultCredentials { get; set; } + + /// + /// This determines if traffic is allowed over public network. By default it is enabled. You can further restrict to specific + /// IPs by configuring + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "This determines if traffic is allowed over public network. By default it is enabled. You can further restrict to specific IPs by configuring ")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"This determines if traffic is allowed over public network. By default it is enabled. You can further restrict to specific IPs by configuring ", + SerializedName = @"publicNetworkAccess", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.PublicNetworkAccess) })] + [global::System.Management.Automation.ArgumentCompleter(typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.PublicNetworkAccess))] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.PublicNetworkAccess PublicNetworkAccess { get => _topicInfoBody.PublicNetworkAccess ?? ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.PublicNetworkAccess)""); set => _topicInfoBody.PublicNetworkAccess = value; } + + /// Backing field for property. + private string _resourceGroupName; + + /// The name of the resource group within the user's subscription. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the resource group within the user's subscription.")] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the resource group within the user's subscription.", + SerializedName = @"resourceGroupName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Path)] + public string ResourceGroupName { get => this._resourceGroupName; set => this._resourceGroupName = value; } + + /// The Sku name of the resource. The possible values are: Basic or Premium. + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The Sku name of the resource. The possible values are: Basic or Premium.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The Sku name of the resource. The possible values are: Basic or Premium.", + SerializedName = @"name", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.Sku) })] + [global::System.Management.Automation.ArgumentCompleter(typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.Sku))] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.Sku SkuName { get => _topicInfoBody.SkuName ?? ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.Sku)""); set => _topicInfoBody.SkuName = value; } + + /// Backing field for property. + private string _subscriptionId; + + /// + /// Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription ID forms part of the + /// URI for every service call. + /// + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.")] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.", + SerializedName = @"subscriptionId", + PossibleTypes = new [] { typeof(string) })] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.DefaultInfo( + Name = @"", + Description =@"", + Script = @"(Get-AzContext).Subscription.Id")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Path)] + public string SubscriptionId { get => this._subscriptionId; set => this._subscriptionId = value; } + + /// Tags of the resource. + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ExportAs(typeof(global::System.Collections.Hashtable))] + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Tags of the resource.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Tags of the resource.", + SerializedName = @"tags", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITrackedResourceTags) })] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITrackedResourceTags Tag { get => _topicInfoBody.Tag ?? null /* object */; set => _topicInfoBody.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. + /// /// Determines if the rest of the onDefault method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnDefault(global::System.Net.Http.HttpResponseMessage responseMessage, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// (overrides the default BeginProcessing method in global::System.Management.Automation.PSCmdlet) + /// + protected override void BeginProcessing() + { + var telemetryId = Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.GetTelemetryId.Invoke(); + if (telemetryId != "" && telemetryId != "internal") + { + __correlationId = telemetryId; + } + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Creates a duplicate instance of this cmdlet (via JSON serialization). + /// a duplicate instance of NewAzEventGridTopic_CreateExpanded + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Cmdlets.NewAzEventGridTopic_CreateExpanded Clone() + { + var clone = new NewAzEventGridTopic_CreateExpanded(); + clone.__correlationId = this.__correlationId; + clone.__processRecordId = this.__processRecordId; + clone.DefaultProfile = this.DefaultProfile; + clone.InvocationInformation = this.InvocationInformation; + clone.Proxy = this.Proxy; + clone.Pipeline = this.Pipeline; + clone.AsJob = this.AsJob; + clone.Break = this.Break; + clone.ProxyCredential = this.ProxyCredential; + clone.ProxyUseDefaultCredentials = this.ProxyUseDefaultCredentials; + clone.HttpPipelinePrepend = this.HttpPipelinePrepend; + clone.HttpPipelineAppend = this.HttpPipelineAppend; + clone._topicInfoBody = this._topicInfoBody; + clone.SubscriptionId = this.SubscriptionId; + clone.ResourceGroupName = this.ResourceGroupName; + clone.Name = this.Name; + return clone; + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + + } + + /// Handles/Dispatches events during the call to the REST service. + /// The message id + /// The message cancellation token. When this call is cancelled, this should be true + /// Detailed message data for the message event. + /// + /// A that will be complete when handling of the message is completed. + /// + async global::System.Threading.Tasks.Task Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener.Signal(string id, global::System.Threading.CancellationToken token, global::System.Func messageData) + { + using( NoSynchronizationContext ) + { + if (token.IsCancellationRequested) + { + return ; + } + + switch ( id ) + { + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.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.EventGrid.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.EventGrid.Runtime.PowerShell.AsyncOperationResponse { Target = uri }); + // do nothing more. + data.Cancel(); + return; + } + } + break; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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 NewAzEventGridTopic_CreateExpanded() + { + + } + + /// Performs execution of the command. + protected override void ProcessRecord() + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + if (ShouldProcess($"Call remote 'TopicsCreateOrUpdate' operation")) + { + if (true == MyInvocation?.BoundParameters?.ContainsKey("AsJob")) + { + var instance = this.Clone(); + var job = new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token); + } + } + } + } + catch (global::System.AggregateException aggregateException) + { + // unroll the inner exceptions to get the root cause + foreach( var innerException in aggregateException.Flatten().InnerExceptions ) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(innerException,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + } + catch (global::System.Exception exception) when ((exception as System.Management.Automation.PipelineStoppedException)== null || (exception as System.Management.Automation.PipelineStoppedException).InnerException != null) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(exception,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + finally + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletProcessRecordEnd).Wait(); + } + } + + /// Performs execution of the command, working asynchronously if required. + /// + /// A that will be complete when handling of the method is completed. + /// + protected async global::System.Threading.Tasks.Task ProcessRecordAsync() + { + using( NoSynchronizationContext ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await this.Client.TopicsCreateOrUpdate(SubscriptionId, ResourceGroupName, Name, _topicInfoBody, onDefault, this, Pipeline); + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.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=_topicInfoBody}) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(urexception.Message) { RecommendedAction = urexception.Action } + }); + } + finally + { + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Cancel(); + base.StopProcessing(); + } + + /// + /// a delegate that is called when the remote service returns default (any response code not handled elsewhere). + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onDefault(global::System.Net.Http.HttpResponseMessage responseMessage) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnDefault(responseMessage, ref _returnNow); + // if overrideOnDefault has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // Error Response : default + // Unrecognized Response. Create an error record based on what we have. + var ex = new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.RestException(responseMessage); + WriteError( new global::System.Management.Automation.ErrorRecord(ex, ex.Code, global::System.Management.Automation.ErrorCategory.InvalidOperation, new { SubscriptionId=SubscriptionId, ResourceGroupName=ResourceGroupName, Name=Name, body=_topicInfoBody }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(ex.Message) { RecommendedAction = ex.Action } + }); + } + } + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/cmdlets/RemoveAzEventGridChannel_Delete.cs b/swaggerci/eventgrid/generated/cmdlets/RemoveAzEventGridChannel_Delete.cs new file mode 100644 index 000000000000..8196f771bc80 --- /dev/null +++ b/swaggerci/eventgrid/generated/cmdlets/RemoveAzEventGridChannel_Delete.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.EventGrid.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Extensions; + using System; + + /// Delete an existing channel. + /// + /// [OpenAPI] Delete=>DELETE:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.EventGrid/partnerNamespaces/{partnerNamespaceName}/channels/{channelName}" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsCommon.Remove, @"AzEventGridChannel_Delete", SupportsShouldProcess = true)] + [global::System.Management.Automation.OutputType(typeof(bool))] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Description(@"Delete an existing channel.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Generated] + public partial class RemoveAzEventGridChannel_Delete : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener + { + /// A unique id generatd for the this cmdlet when it is instantiated. + private string __correlationId = System.Guid.NewGuid().ToString(); + + /// A copy of the Invocation Info (necessary to allow asJob to clone this cmdlet) + private global::System.Management.Automation.InvocationInfo __invocationInfo; + + /// A unique id generatd for the 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.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.EventGridManagementClient Client => Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.ClientAPI; + + /// + /// The credentials, account, tenant, and subscription used for communication with Azure + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The credentials, account, tenant, and subscription used for communication with Azure.")] + [global::System.Management.Automation.ValidateNotNull] + [global::System.Management.Automation.Alias("AzureRMContext", "AzureCredential")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Azure)] + public global::System.Management.Automation.PSObject DefaultProfile { get; set; } + + /// SendAsync Pipeline Steps to be appended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be appended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[] HttpPipelineAppend { get; set; } + + /// SendAsync Pipeline Steps to be prepended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be prepended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[] HttpPipelinePrepend { get; set; } + + /// Accessor for our copy of the InvocationInfo. + public global::System.Management.Automation.InvocationInfo InvocationInformation { get => __invocationInfo = __invocationInfo ?? this.MyInvocation ; set { __invocationInfo = value; } } + + /// + /// cancellation delegate. Stops the cmdlet when called. + /// + global::System.Action Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener.Token => _cancellationTokenSource.Token; + + /// Backing field for property. + private string _name; + + /// Name of the channel. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Name of the channel.")] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Name of the channel.", + SerializedName = @"channelName", + PossibleTypes = new [] { typeof(string) })] + [global::System.Management.Automation.Alias("ChannelName")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Path)] + public string Name { get => this._name; set => this._name = value; } + + /// + /// when specified, will make the remote call, and return an AsyncOperationResponse, letting the remote operation continue + /// asynchronously. + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Run the command asynchronously")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter NoWait { get; set; } + + /// Backing field for property. + private string _partnerNamespaceName; + + /// Name of the partner namespace. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Name of the partner namespace.")] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Name of the partner namespace.", + SerializedName = @"partnerNamespaceName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Path)] + public string PartnerNamespaceName { get => this._partnerNamespaceName; set => this._partnerNamespaceName = 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.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Runtime.HttpPipeline Pipeline { get; set; } + + /// The URI for the proxy server to use + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "The URI for the proxy server to use")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Uri Proxy { get; set; } + + /// Credentials for a proxy server to use for the remote call + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Credentials for a proxy server to use for the remote call")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Management.Automation.PSCredential ProxyCredential { get; set; } + + /// Use the default credentials for the proxy + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Use the default credentials for the proxy")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter ProxyUseDefaultCredentials { get; set; } + + /// Backing field for property. + private string _resourceGroupName; + + /// The name of the resource group within the partners subscription. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the resource group within the partners subscription.")] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the resource group within the partners subscription.", + SerializedName = @"resourceGroupName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Path)] + public string ResourceGroupName { get => this._resourceGroupName; set => this._resourceGroupName = value; } + + /// Backing field for property. + private string _subscriptionId; + + /// + /// Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription ID forms part of the + /// URI for every service call. + /// + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.")] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.", + SerializedName = @"subscriptionId", + PossibleTypes = new [] { typeof(string) })] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.DefaultInfo( + Name = @"", + Description =@"", + Script = @"(Get-AzContext).Subscription.Id")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Path)] + public string SubscriptionId { get => this._subscriptionId; set => this._subscriptionId = value; } + + /// + /// overrideOnDefault will be called before the regular onDefault has been processed, allowing customization of what + /// happens on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// /// Determines if the rest of the onDefault method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnDefault(global::System.Net.Http.HttpResponseMessage responseMessage, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnNoContent will be called before the regular onNoContent has been processed, allowing customization of + /// what happens on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// /// Determines if the rest of the onNoContent method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnNoContent(global::System.Net.Http.HttpResponseMessage responseMessage, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnOk will be called before the regular onOk has been processed, allowing customization of what happens + /// on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// /// Determines if the rest of the onOk method should be processed, or if the method should return + /// immediately (set to true to skip further processing ) + + partial void overrideOnOk(global::System.Net.Http.HttpResponseMessage responseMessage, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// (overrides the default BeginProcessing method in global::System.Management.Automation.PSCmdlet) + /// + protected override void BeginProcessing() + { + var telemetryId = Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.GetTelemetryId.Invoke(); + if (telemetryId != "" && telemetryId != "internal") + { + __correlationId = telemetryId; + } + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Creates a duplicate instance of this cmdlet (via JSON serialization). + /// a duplicate instance of RemoveAzEventGridChannel_Delete + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Cmdlets.RemoveAzEventGridChannel_Delete Clone() + { + var clone = new RemoveAzEventGridChannel_Delete(); + clone.__correlationId = this.__correlationId; + clone.__processRecordId = this.__processRecordId; + clone.DefaultProfile = this.DefaultProfile; + clone.InvocationInformation = this.InvocationInformation; + clone.Proxy = this.Proxy; + clone.Pipeline = this.Pipeline; + clone.AsJob = this.AsJob; + clone.Break = this.Break; + clone.ProxyCredential = this.ProxyCredential; + clone.ProxyUseDefaultCredentials = this.ProxyUseDefaultCredentials; + clone.HttpPipelinePrepend = this.HttpPipelinePrepend; + clone.HttpPipelineAppend = this.HttpPipelineAppend; + clone.SubscriptionId = this.SubscriptionId; + clone.ResourceGroupName = this.ResourceGroupName; + clone.PartnerNamespaceName = this.PartnerNamespaceName; + clone.Name = this.Name; + return clone; + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + + } + + /// Handles/Dispatches events during the call to the REST service. + /// The message id + /// The message cancellation token. When this call is cancelled, this should be true + /// Detailed message data for the message event. + /// + /// A that will be complete when handling of the message is completed. + /// + async global::System.Threading.Tasks.Task Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener.Signal(string id, global::System.Threading.CancellationToken token, global::System.Func messageData) + { + using( NoSynchronizationContext ) + { + if (token.IsCancellationRequested) + { + return ; + } + + switch ( id ) + { + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.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.EventGrid.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.EventGrid.Runtime.PowerShell.AsyncOperationResponse { Target = uri }); + // do nothing more. + data.Cancel(); + return; + } + } + break; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.EventData ), InvocationInformation, this.ParameterSetName, __correlationId, __processRecordId, null ); + if (token.IsCancellationRequested) + { + return ; + } + WriteDebug($"{id}: {(messageData().Message ?? global::System.String.Empty)}"); + } + } + + /// Performs execution of the command. + protected override void ProcessRecord() + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + if (ShouldProcess($"Call remote 'ChannelsDelete' operation")) + { + if (true == MyInvocation?.BoundParameters?.ContainsKey("AsJob")) + { + var instance = this.Clone(); + var job = new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token); + } + } + } + } + catch (global::System.AggregateException aggregateException) + { + // unroll the inner exceptions to get the root cause + foreach( var innerException in aggregateException.Flatten().InnerExceptions ) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(innerException,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + } + catch (global::System.Exception exception) when ((exception as System.Management.Automation.PipelineStoppedException)== null || (exception as System.Management.Automation.PipelineStoppedException).InnerException != null) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(exception,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + finally + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletProcessRecordEnd).Wait(); + } + } + + /// Performs execution of the command, working asynchronously if required. + /// + /// A that will be complete when handling of the method is completed. + /// + protected async global::System.Threading.Tasks.Task ProcessRecordAsync() + { + using( NoSynchronizationContext ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await this.Client.ChannelsDelete(SubscriptionId, ResourceGroupName, PartnerNamespaceName, Name, onOk, onNoContent, onDefault, this, Pipeline); + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.UndeclaredResponseException urexception) + { + WriteError(new global::System.Management.Automation.ErrorRecord(urexception, urexception.StatusCode.ToString(), global::System.Management.Automation.ErrorCategory.InvalidOperation, new { SubscriptionId=SubscriptionId,ResourceGroupName=ResourceGroupName,PartnerNamespaceName=PartnerNamespaceName,Name=Name}) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(urexception.Message) { RecommendedAction = urexception.Action } + }); + } + finally + { + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// + /// Intializes a new instance of the cmdlet class. + /// + public RemoveAzEventGridChannel_Delete() + { + + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Cancel(); + base.StopProcessing(); + } + + /// + /// a delegate that is called when the remote service returns default (any response code not handled elsewhere). + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onDefault(global::System.Net.Http.HttpResponseMessage responseMessage) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnDefault(responseMessage, ref _returnNow); + // if overrideOnDefault has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // Error Response : default + // Unrecognized Response. Create an error record based on what we have. + var ex = new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.RestException(responseMessage); + WriteError( new global::System.Management.Automation.ErrorRecord(ex, ex.Code, global::System.Management.Automation.ErrorCategory.InvalidOperation, new { SubscriptionId=SubscriptionId, ResourceGroupName=ResourceGroupName, PartnerNamespaceName=PartnerNamespaceName, Name=Name }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(ex.Message) { RecommendedAction = ex.Action } + }); + } + } + + /// 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/eventgrid/generated/cmdlets/RemoveAzEventGridChannel_DeleteViaIdentity.cs b/swaggerci/eventgrid/generated/cmdlets/RemoveAzEventGridChannel_DeleteViaIdentity.cs new file mode 100644 index 000000000000..e5e2397ec0e2 --- /dev/null +++ b/swaggerci/eventgrid/generated/cmdlets/RemoveAzEventGridChannel_DeleteViaIdentity.cs @@ -0,0 +1,475 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Extensions; + using System; + + /// Delete an existing channel. + /// + /// [OpenAPI] Delete=>DELETE:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.EventGrid/partnerNamespaces/{partnerNamespaceName}/channels/{channelName}" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsCommon.Remove, @"AzEventGridChannel_DeleteViaIdentity", SupportsShouldProcess = true)] + [global::System.Management.Automation.OutputType(typeof(bool))] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Description(@"Delete an existing channel.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Generated] + public partial class RemoveAzEventGridChannel_DeleteViaIdentity : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener + { + /// A unique id generatd for the this cmdlet when it is instantiated. + private string __correlationId = System.Guid.NewGuid().ToString(); + + /// A copy of the Invocation Info (necessary to allow asJob to clone this cmdlet) + private global::System.Management.Automation.InvocationInfo __invocationInfo; + + /// A unique id generatd for the 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.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.EventGridManagementClient Client => Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.ClientAPI; + + /// + /// The credentials, account, tenant, and subscription used for communication with Azure + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The credentials, account, tenant, and subscription used for communication with Azure.")] + [global::System.Management.Automation.ValidateNotNull] + [global::System.Management.Automation.Alias("AzureRMContext", "AzureCredential")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Azure)] + public global::System.Management.Automation.PSObject DefaultProfile { get; set; } + + /// SendAsync Pipeline Steps to be appended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be appended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[] HttpPipelineAppend { get; set; } + + /// SendAsync Pipeline Steps to be prepended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be prepended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[] HttpPipelinePrepend { get; set; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.IEventGridIdentity _inputObject; + + /// Identity Parameter + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Identity Parameter", ValueFromPipeline = true)] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Path)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.IEventGridIdentity InputObject { get => this._inputObject; set => this._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.EventGrid.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter NoWait { get; set; } + + /// + /// When specified, forces the cmdlet return a 'bool' given that there isn't a return type by default. + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Returns true when the command succeeds")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Runtime.HttpPipeline Pipeline { get; set; } + + /// The URI for the proxy server to use + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "The URI for the proxy server to use")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Uri Proxy { get; set; } + + /// Credentials for a proxy server to use for the remote call + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Credentials for a proxy server to use for the remote call")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Management.Automation.PSCredential ProxyCredential { get; set; } + + /// Use the default credentials for the proxy + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Use the default credentials for the proxy")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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. + /// /// Determines if the rest of the onDefault method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnDefault(global::System.Net.Http.HttpResponseMessage responseMessage, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnNoContent will be called before the regular onNoContent has been processed, allowing customization of + /// what happens on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// /// Determines if the rest of the onNoContent method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnNoContent(global::System.Net.Http.HttpResponseMessage responseMessage, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnOk will be called before the regular onOk has been processed, allowing customization of what happens + /// on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// /// Determines if the rest of the onOk method should be processed, or if the method should return + /// immediately (set to true to skip further processing ) + + partial void overrideOnOk(global::System.Net.Http.HttpResponseMessage responseMessage, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// (overrides the default BeginProcessing method in global::System.Management.Automation.PSCmdlet) + /// + protected override void BeginProcessing() + { + var telemetryId = Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.GetTelemetryId.Invoke(); + if (telemetryId != "" && telemetryId != "internal") + { + __correlationId = telemetryId; + } + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Creates a duplicate instance of this cmdlet (via JSON serialization). + /// a duplicate instance of RemoveAzEventGridChannel_DeleteViaIdentity + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Cmdlets.RemoveAzEventGridChannel_DeleteViaIdentity Clone() + { + var clone = new RemoveAzEventGridChannel_DeleteViaIdentity(); + clone.__correlationId = this.__correlationId; + clone.__processRecordId = this.__processRecordId; + clone.DefaultProfile = this.DefaultProfile; + clone.InvocationInformation = this.InvocationInformation; + clone.Proxy = this.Proxy; + clone.Pipeline = this.Pipeline; + clone.AsJob = this.AsJob; + clone.Break = this.Break; + clone.ProxyCredential = this.ProxyCredential; + clone.ProxyUseDefaultCredentials = this.ProxyUseDefaultCredentials; + clone.HttpPipelinePrepend = this.HttpPipelinePrepend; + clone.HttpPipelineAppend = this.HttpPipelineAppend; + return clone; + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + + } + + /// Handles/Dispatches events during the call to the REST service. + /// The message id + /// The message cancellation token. When this call is cancelled, this should be true + /// Detailed message data for the message event. + /// + /// A that will be complete when handling of the message is completed. + /// + async global::System.Threading.Tasks.Task Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener.Signal(string id, global::System.Threading.CancellationToken token, global::System.Func messageData) + { + using( NoSynchronizationContext ) + { + if (token.IsCancellationRequested) + { + return ; + } + + switch ( id ) + { + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.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.EventGrid.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.EventGrid.Runtime.PowerShell.AsyncOperationResponse { Target = uri }); + // do nothing more. + data.Cancel(); + return; + } + } + break; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.EventData ), InvocationInformation, this.ParameterSetName, __correlationId, __processRecordId, null ); + if (token.IsCancellationRequested) + { + return ; + } + WriteDebug($"{id}: {(messageData().Message ?? global::System.String.Empty)}"); + } + } + + /// Performs execution of the command. + protected override void ProcessRecord() + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + if (ShouldProcess($"Call remote 'ChannelsDelete' operation")) + { + if (true == MyInvocation?.BoundParameters?.ContainsKey("AsJob")) + { + var instance = this.Clone(); + var job = new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token); + } + } + } + } + catch (global::System.AggregateException aggregateException) + { + // unroll the inner exceptions to get the root cause + foreach( var innerException in aggregateException.Flatten().InnerExceptions ) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(innerException,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + } + catch (global::System.Exception exception) when ((exception as System.Management.Automation.PipelineStoppedException)== null || (exception as System.Management.Automation.PipelineStoppedException).InnerException != null) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(exception,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + finally + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletProcessRecordEnd).Wait(); + } + } + + /// Performs execution of the command, working asynchronously if required. + /// + /// A that will be complete when handling of the method is completed. + /// + protected async global::System.Threading.Tasks.Task ProcessRecordAsync() + { + using( NoSynchronizationContext ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + if (InputObject?.Id != null) + { + await this.Client.ChannelsDeleteViaIdentity(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.PartnerNamespaceName) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.PartnerNamespaceName"),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, InputObject) ); + } + if (null == InputObject.ChannelName) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.ChannelName"),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, InputObject) ); + } + await this.Client.ChannelsDelete(InputObject.SubscriptionId ?? null, InputObject.ResourceGroupName ?? null, InputObject.PartnerNamespaceName ?? null, InputObject.ChannelName ?? null, onOk, onNoContent, onDefault, this, Pipeline); + } + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// + /// Intializes a new instance of the cmdlet class. + /// + public RemoveAzEventGridChannel_DeleteViaIdentity() + { + + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Cancel(); + base.StopProcessing(); + } + + /// + /// a delegate that is called when the remote service returns default (any response code not handled elsewhere). + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onDefault(global::System.Net.Http.HttpResponseMessage responseMessage) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnDefault(responseMessage, ref _returnNow); + // if overrideOnDefault has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // Error Response : default + // Unrecognized Response. Create an error record based on what we have. + var ex = new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.RestException(responseMessage); + WriteError( new global::System.Management.Automation.ErrorRecord(ex, ex.Code, global::System.Management.Automation.ErrorCategory.InvalidOperation, new { }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(ex.Message) { RecommendedAction = ex.Action } + }); + } + } + + /// a delegate that is called when the remote service returns 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/eventgrid/generated/cmdlets/RemoveAzEventGridDomainEventSubscription_Delete.cs b/swaggerci/eventgrid/generated/cmdlets/RemoveAzEventGridDomainEventSubscription_Delete.cs new file mode 100644 index 000000000000..a59dc376c3ed --- /dev/null +++ b/swaggerci/eventgrid/generated/cmdlets/RemoveAzEventGridDomainEventSubscription_Delete.cs @@ -0,0 +1,513 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Extensions; + using System; + + /// Delete an existing event subscription for a domain. + /// + /// [OpenAPI] Delete=>DELETE:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.EventGrid/domains/{domainName}/eventSubscriptions/{eventSubscriptionName}" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsCommon.Remove, @"AzEventGridDomainEventSubscription_Delete", SupportsShouldProcess = true)] + [global::System.Management.Automation.OutputType(typeof(bool))] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Description(@"Delete an existing event subscription for a domain.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Generated] + public partial class RemoveAzEventGridDomainEventSubscription_Delete : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener + { + /// A unique id generatd for the this cmdlet when it is instantiated. + private string __correlationId = System.Guid.NewGuid().ToString(); + + /// A copy of the Invocation Info (necessary to allow asJob to clone this cmdlet) + private global::System.Management.Automation.InvocationInfo __invocationInfo; + + /// A unique id generatd for the 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.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.EventGridManagementClient Client => Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.ClientAPI; + + /// + /// The credentials, account, tenant, and subscription used for communication with Azure + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The credentials, account, tenant, and subscription used for communication with Azure.")] + [global::System.Management.Automation.ValidateNotNull] + [global::System.Management.Automation.Alias("AzureRMContext", "AzureCredential")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Azure)] + public global::System.Management.Automation.PSObject DefaultProfile { get; set; } + + /// Backing field for property. + private string _domainName; + + /// Name of the domain. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Name of the domain.")] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Name of the domain.", + SerializedName = @"domainName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Path)] + public string DomainName { get => this._domainName; set => this._domainName = value; } + + /// Backing field for property. + private string _eventSubscriptionName; + + /// + /// Name of the event subscription to be deleted. Event subscription names must be between 3 and 100 characters in length + /// and use alphanumeric letters only. + /// + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Name of the event subscription to be deleted. Event subscription names must be between 3 and 100 characters in length and use alphanumeric letters only.")] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Name of the event subscription to be deleted. Event subscription names must be between 3 and 100 characters in length and use alphanumeric letters only.", + SerializedName = @"eventSubscriptionName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Path)] + public string EventSubscriptionName { get => this._eventSubscriptionName; set => this._eventSubscriptionName = 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.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[] HttpPipelineAppend { get; set; } + + /// SendAsync Pipeline Steps to be prepended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be prepended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[] HttpPipelinePrepend { get; set; } + + /// Accessor for our copy of the InvocationInfo. + public global::System.Management.Automation.InvocationInfo InvocationInformation { get => __invocationInfo = __invocationInfo ?? this.MyInvocation ; set { __invocationInfo = value; } } + + /// + /// cancellation delegate. Stops the cmdlet when called. + /// + global::System.Action Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter NoWait { get; set; } + + /// + /// When specified, forces the cmdlet return a 'bool' given that there isn't a return type by default. + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Returns true when the command succeeds")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Runtime.HttpPipeline Pipeline { get; set; } + + /// The URI for the proxy server to use + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "The URI for the proxy server to use")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Uri Proxy { get; set; } + + /// Credentials for a proxy server to use for the remote call + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Credentials for a proxy server to use for the remote call")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Management.Automation.PSCredential ProxyCredential { get; set; } + + /// Use the default credentials for the proxy + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Use the default credentials for the proxy")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter ProxyUseDefaultCredentials { get; set; } + + /// Backing field for property. + private string _resourceGroupName; + + /// The name of the resource group within the user's subscription. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the resource group within the user's subscription.")] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the resource group within the user's subscription.", + SerializedName = @"resourceGroupName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Path)] + public string ResourceGroupName { get => this._resourceGroupName; set => this._resourceGroupName = value; } + + /// Backing field for property. + private string _subscriptionId; + + /// + /// Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription ID forms part of the + /// URI for every service call. + /// + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.")] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.", + SerializedName = @"subscriptionId", + PossibleTypes = new [] { typeof(string) })] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.DefaultInfo( + Name = @"", + Description =@"", + Script = @"(Get-AzContext).Subscription.Id")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Path)] + public string SubscriptionId { get => this._subscriptionId; set => this._subscriptionId = value; } + + /// + /// overrideOnDefault will be called before the regular onDefault has been processed, allowing customization of what + /// happens on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// /// Determines if the rest of the onDefault method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnDefault(global::System.Net.Http.HttpResponseMessage responseMessage, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnNoContent will be called before the regular onNoContent has been processed, allowing customization of + /// what happens on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// /// Determines if the rest of the onNoContent method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnNoContent(global::System.Net.Http.HttpResponseMessage responseMessage, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnOk will be called before the regular onOk has been processed, allowing customization of what happens + /// on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// /// Determines if the rest of the onOk method should be processed, or if the method should return + /// immediately (set to true to skip further processing ) + + partial void overrideOnOk(global::System.Net.Http.HttpResponseMessage responseMessage, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// (overrides the default BeginProcessing method in global::System.Management.Automation.PSCmdlet) + /// + protected override void BeginProcessing() + { + var telemetryId = Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.GetTelemetryId.Invoke(); + if (telemetryId != "" && telemetryId != "internal") + { + __correlationId = telemetryId; + } + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Creates a duplicate instance of this cmdlet (via JSON serialization). + /// a duplicate instance of RemoveAzEventGridDomainEventSubscription_Delete + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Cmdlets.RemoveAzEventGridDomainEventSubscription_Delete Clone() + { + var clone = new RemoveAzEventGridDomainEventSubscription_Delete(); + clone.__correlationId = this.__correlationId; + clone.__processRecordId = this.__processRecordId; + clone.DefaultProfile = this.DefaultProfile; + clone.InvocationInformation = this.InvocationInformation; + clone.Proxy = this.Proxy; + clone.Pipeline = this.Pipeline; + clone.AsJob = this.AsJob; + clone.Break = this.Break; + clone.ProxyCredential = this.ProxyCredential; + clone.ProxyUseDefaultCredentials = this.ProxyUseDefaultCredentials; + clone.HttpPipelinePrepend = this.HttpPipelinePrepend; + clone.HttpPipelineAppend = this.HttpPipelineAppend; + clone.SubscriptionId = this.SubscriptionId; + clone.ResourceGroupName = this.ResourceGroupName; + clone.DomainName = this.DomainName; + clone.EventSubscriptionName = this.EventSubscriptionName; + return clone; + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + + } + + /// Handles/Dispatches events during the call to the REST service. + /// The message id + /// The message cancellation token. When this call is cancelled, this should be true + /// Detailed message data for the message event. + /// + /// A that will be complete when handling of the message is completed. + /// + async global::System.Threading.Tasks.Task Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener.Signal(string id, global::System.Threading.CancellationToken token, global::System.Func messageData) + { + using( NoSynchronizationContext ) + { + if (token.IsCancellationRequested) + { + return ; + } + + switch ( id ) + { + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.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.EventGrid.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.EventGrid.Runtime.PowerShell.AsyncOperationResponse { Target = uri }); + // do nothing more. + data.Cancel(); + return; + } + } + break; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.EventData ), InvocationInformation, this.ParameterSetName, __correlationId, __processRecordId, null ); + if (token.IsCancellationRequested) + { + return ; + } + WriteDebug($"{id}: {(messageData().Message ?? global::System.String.Empty)}"); + } + } + + /// Performs execution of the command. + protected override void ProcessRecord() + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + if (ShouldProcess($"Call remote 'DomainEventSubscriptionsDelete' operation")) + { + if (true == MyInvocation?.BoundParameters?.ContainsKey("AsJob")) + { + var instance = this.Clone(); + var job = new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token); + } + } + } + } + catch (global::System.AggregateException aggregateException) + { + // unroll the inner exceptions to get the root cause + foreach( var innerException in aggregateException.Flatten().InnerExceptions ) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(innerException,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + } + catch (global::System.Exception exception) when ((exception as System.Management.Automation.PipelineStoppedException)== null || (exception as System.Management.Automation.PipelineStoppedException).InnerException != null) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(exception,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + finally + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletProcessRecordEnd).Wait(); + } + } + + /// Performs execution of the command, working asynchronously if required. + /// + /// A that will be complete when handling of the method is completed. + /// + protected async global::System.Threading.Tasks.Task ProcessRecordAsync() + { + using( NoSynchronizationContext ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await this.Client.DomainEventSubscriptionsDelete(SubscriptionId, ResourceGroupName, DomainName, EventSubscriptionName, onOk, onNoContent, onDefault, this, Pipeline); + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.UndeclaredResponseException urexception) + { + WriteError(new global::System.Management.Automation.ErrorRecord(urexception, urexception.StatusCode.ToString(), global::System.Management.Automation.ErrorCategory.InvalidOperation, new { SubscriptionId=SubscriptionId,ResourceGroupName=ResourceGroupName,DomainName=DomainName,EventSubscriptionName=EventSubscriptionName}) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(urexception.Message) { RecommendedAction = urexception.Action } + }); + } + finally + { + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// + /// Intializes a new instance of the cmdlet class. + /// + public RemoveAzEventGridDomainEventSubscription_Delete() + { + + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Cancel(); + base.StopProcessing(); + } + + /// + /// a delegate that is called when the remote service returns default (any response code not handled elsewhere). + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onDefault(global::System.Net.Http.HttpResponseMessage responseMessage) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnDefault(responseMessage, ref _returnNow); + // if overrideOnDefault has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // Error Response : default + // Unrecognized Response. Create an error record based on what we have. + var ex = new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.RestException(responseMessage); + WriteError( new global::System.Management.Automation.ErrorRecord(ex, ex.Code, global::System.Management.Automation.ErrorCategory.InvalidOperation, new { SubscriptionId=SubscriptionId, ResourceGroupName=ResourceGroupName, DomainName=DomainName, EventSubscriptionName=EventSubscriptionName }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(ex.Message) { RecommendedAction = ex.Action } + }); + } + } + + /// 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/eventgrid/generated/cmdlets/RemoveAzEventGridDomainEventSubscription_DeleteViaIdentity.cs b/swaggerci/eventgrid/generated/cmdlets/RemoveAzEventGridDomainEventSubscription_DeleteViaIdentity.cs new file mode 100644 index 000000000000..8453960e476d --- /dev/null +++ b/swaggerci/eventgrid/generated/cmdlets/RemoveAzEventGridDomainEventSubscription_DeleteViaIdentity.cs @@ -0,0 +1,477 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Extensions; + using System; + + /// Delete an existing event subscription for a domain. + /// + /// [OpenAPI] Delete=>DELETE:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.EventGrid/domains/{domainName}/eventSubscriptions/{eventSubscriptionName}" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsCommon.Remove, @"AzEventGridDomainEventSubscription_DeleteViaIdentity", SupportsShouldProcess = true)] + [global::System.Management.Automation.OutputType(typeof(bool))] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Description(@"Delete an existing event subscription for a domain.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Generated] + public partial class RemoveAzEventGridDomainEventSubscription_DeleteViaIdentity : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener + { + /// A unique id generatd for the this cmdlet when it is instantiated. + private string __correlationId = System.Guid.NewGuid().ToString(); + + /// A copy of the Invocation Info (necessary to allow asJob to clone this cmdlet) + private global::System.Management.Automation.InvocationInfo __invocationInfo; + + /// A unique id generatd for the 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.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.EventGridManagementClient Client => Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.ClientAPI; + + /// + /// The credentials, account, tenant, and subscription used for communication with Azure + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The credentials, account, tenant, and subscription used for communication with Azure.")] + [global::System.Management.Automation.ValidateNotNull] + [global::System.Management.Automation.Alias("AzureRMContext", "AzureCredential")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Azure)] + public global::System.Management.Automation.PSObject DefaultProfile { get; set; } + + /// SendAsync Pipeline Steps to be appended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be appended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[] HttpPipelineAppend { get; set; } + + /// SendAsync Pipeline Steps to be prepended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be prepended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[] HttpPipelinePrepend { get; set; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.IEventGridIdentity _inputObject; + + /// Identity Parameter + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Identity Parameter", ValueFromPipeline = true)] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Path)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.IEventGridIdentity InputObject { get => this._inputObject; set => this._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.EventGrid.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter NoWait { get; set; } + + /// + /// When specified, forces the cmdlet return a 'bool' given that there isn't a return type by default. + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Returns true when the command succeeds")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Runtime.HttpPipeline Pipeline { get; set; } + + /// The URI for the proxy server to use + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "The URI for the proxy server to use")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Uri Proxy { get; set; } + + /// Credentials for a proxy server to use for the remote call + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Credentials for a proxy server to use for the remote call")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Management.Automation.PSCredential ProxyCredential { get; set; } + + /// Use the default credentials for the proxy + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Use the default credentials for the proxy")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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. + /// /// Determines if the rest of the onDefault method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnDefault(global::System.Net.Http.HttpResponseMessage responseMessage, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnNoContent will be called before the regular onNoContent has been processed, allowing customization of + /// what happens on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// /// Determines if the rest of the onNoContent method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnNoContent(global::System.Net.Http.HttpResponseMessage responseMessage, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnOk will be called before the regular onOk has been processed, allowing customization of what happens + /// on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// /// Determines if the rest of the onOk method should be processed, or if the method should return + /// immediately (set to true to skip further processing ) + + partial void overrideOnOk(global::System.Net.Http.HttpResponseMessage responseMessage, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// (overrides the default BeginProcessing method in global::System.Management.Automation.PSCmdlet) + /// + protected override void BeginProcessing() + { + var telemetryId = Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.GetTelemetryId.Invoke(); + if (telemetryId != "" && telemetryId != "internal") + { + __correlationId = telemetryId; + } + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Creates a duplicate instance of this cmdlet (via JSON serialization). + /// + /// a duplicate instance of RemoveAzEventGridDomainEventSubscription_DeleteViaIdentity + /// + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Cmdlets.RemoveAzEventGridDomainEventSubscription_DeleteViaIdentity Clone() + { + var clone = new RemoveAzEventGridDomainEventSubscription_DeleteViaIdentity(); + clone.__correlationId = this.__correlationId; + clone.__processRecordId = this.__processRecordId; + clone.DefaultProfile = this.DefaultProfile; + clone.InvocationInformation = this.InvocationInformation; + clone.Proxy = this.Proxy; + clone.Pipeline = this.Pipeline; + clone.AsJob = this.AsJob; + clone.Break = this.Break; + clone.ProxyCredential = this.ProxyCredential; + clone.ProxyUseDefaultCredentials = this.ProxyUseDefaultCredentials; + clone.HttpPipelinePrepend = this.HttpPipelinePrepend; + clone.HttpPipelineAppend = this.HttpPipelineAppend; + return clone; + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + + } + + /// Handles/Dispatches events during the call to the REST service. + /// The message id + /// The message cancellation token. When this call is cancelled, this should be true + /// Detailed message data for the message event. + /// + /// A that will be complete when handling of the message is completed. + /// + async global::System.Threading.Tasks.Task Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener.Signal(string id, global::System.Threading.CancellationToken token, global::System.Func messageData) + { + using( NoSynchronizationContext ) + { + if (token.IsCancellationRequested) + { + return ; + } + + switch ( id ) + { + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.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.EventGrid.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.EventGrid.Runtime.PowerShell.AsyncOperationResponse { Target = uri }); + // do nothing more. + data.Cancel(); + return; + } + } + break; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.EventData ), InvocationInformation, this.ParameterSetName, __correlationId, __processRecordId, null ); + if (token.IsCancellationRequested) + { + return ; + } + WriteDebug($"{id}: {(messageData().Message ?? global::System.String.Empty)}"); + } + } + + /// Performs execution of the command. + protected override void ProcessRecord() + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + if (ShouldProcess($"Call remote 'DomainEventSubscriptionsDelete' operation")) + { + if (true == MyInvocation?.BoundParameters?.ContainsKey("AsJob")) + { + var instance = this.Clone(); + var job = new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token); + } + } + } + } + catch (global::System.AggregateException aggregateException) + { + // unroll the inner exceptions to get the root cause + foreach( var innerException in aggregateException.Flatten().InnerExceptions ) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(innerException,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + } + catch (global::System.Exception exception) when ((exception as System.Management.Automation.PipelineStoppedException)== null || (exception as System.Management.Automation.PipelineStoppedException).InnerException != null) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(exception,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + finally + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletProcessRecordEnd).Wait(); + } + } + + /// Performs execution of the command, working asynchronously if required. + /// + /// A that will be complete when handling of the method is completed. + /// + protected async global::System.Threading.Tasks.Task ProcessRecordAsync() + { + using( NoSynchronizationContext ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + if (InputObject?.Id != null) + { + await this.Client.DomainEventSubscriptionsDeleteViaIdentity(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.DomainName) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.DomainName"),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, InputObject) ); + } + if (null == InputObject.EventSubscriptionName) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.EventSubscriptionName"),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, InputObject) ); + } + await this.Client.DomainEventSubscriptionsDelete(InputObject.SubscriptionId ?? null, InputObject.ResourceGroupName ?? null, InputObject.DomainName ?? null, InputObject.EventSubscriptionName ?? null, onOk, onNoContent, onDefault, this, Pipeline); + } + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// + /// Intializes a new instance of the cmdlet class. + /// + public RemoveAzEventGridDomainEventSubscription_DeleteViaIdentity() + { + + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Cancel(); + base.StopProcessing(); + } + + /// + /// a delegate that is called when the remote service returns default (any response code not handled elsewhere). + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onDefault(global::System.Net.Http.HttpResponseMessage responseMessage) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnDefault(responseMessage, ref _returnNow); + // if overrideOnDefault has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // Error Response : default + // Unrecognized Response. Create an error record based on what we have. + var ex = new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.RestException(responseMessage); + WriteError( new global::System.Management.Automation.ErrorRecord(ex, ex.Code, global::System.Management.Automation.ErrorCategory.InvalidOperation, new { }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(ex.Message) { RecommendedAction = ex.Action } + }); + } + } + + /// a delegate that is called when the remote service returns 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/eventgrid/generated/cmdlets/RemoveAzEventGridDomainTopicEventSubscription_Delete.cs b/swaggerci/eventgrid/generated/cmdlets/RemoveAzEventGridDomainTopicEventSubscription_Delete.cs new file mode 100644 index 000000000000..77101d2b06db --- /dev/null +++ b/swaggerci/eventgrid/generated/cmdlets/RemoveAzEventGridDomainTopicEventSubscription_Delete.cs @@ -0,0 +1,528 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Extensions; + using System; + + /// Delete a nested existing event subscription for a domain topic. + /// + /// [OpenAPI] Delete=>DELETE:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.EventGrid/domains/{domainName}/topics/{topicName}/eventSubscriptions/{eventSubscriptionName}" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsCommon.Remove, @"AzEventGridDomainTopicEventSubscription_Delete", SupportsShouldProcess = true)] + [global::System.Management.Automation.OutputType(typeof(bool))] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Description(@"Delete a nested existing event subscription for a domain topic.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Generated] + public partial class RemoveAzEventGridDomainTopicEventSubscription_Delete : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener + { + /// A unique id generatd for the this cmdlet when it is instantiated. + private string __correlationId = System.Guid.NewGuid().ToString(); + + /// A copy of the Invocation Info (necessary to allow asJob to clone this cmdlet) + private global::System.Management.Automation.InvocationInfo __invocationInfo; + + /// A unique id generatd for the 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.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.EventGridManagementClient Client => Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.ClientAPI; + + /// + /// The credentials, account, tenant, and subscription used for communication with Azure + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The credentials, account, tenant, and subscription used for communication with Azure.")] + [global::System.Management.Automation.ValidateNotNull] + [global::System.Management.Automation.Alias("AzureRMContext", "AzureCredential")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Azure)] + public global::System.Management.Automation.PSObject DefaultProfile { get; set; } + + /// Backing field for property. + private string _domainName; + + /// Name of the top level domain. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Name of the top level domain.")] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Name of the top level domain.", + SerializedName = @"domainName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Path)] + public string DomainName { get => this._domainName; set => this._domainName = value; } + + /// Backing field for property. + private string _eventSubscriptionName; + + /// + /// Name of the event subscription to be deleted. Event subscription names must be between 3 and 100 characters in length + /// and use alphanumeric letters only. + /// + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Name of the event subscription to be deleted. Event subscription names must be between 3 and 100 characters in length and use alphanumeric letters only.")] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Name of the event subscription to be deleted. Event subscription names must be between 3 and 100 characters in length and use alphanumeric letters only.", + SerializedName = @"eventSubscriptionName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Path)] + public string EventSubscriptionName { get => this._eventSubscriptionName; set => this._eventSubscriptionName = 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.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[] HttpPipelineAppend { get; set; } + + /// SendAsync Pipeline Steps to be prepended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be prepended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[] HttpPipelinePrepend { get; set; } + + /// Accessor for our copy of the InvocationInfo. + public global::System.Management.Automation.InvocationInfo InvocationInformation { get => __invocationInfo = __invocationInfo ?? this.MyInvocation ; set { __invocationInfo = value; } } + + /// + /// cancellation delegate. Stops the cmdlet when called. + /// + global::System.Action Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter NoWait { get; set; } + + /// + /// When specified, forces the cmdlet return a 'bool' given that there isn't a return type by default. + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Returns true when the command succeeds")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Runtime.HttpPipeline Pipeline { get; set; } + + /// The URI for the proxy server to use + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "The URI for the proxy server to use")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Uri Proxy { get; set; } + + /// Credentials for a proxy server to use for the remote call + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Credentials for a proxy server to use for the remote call")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Management.Automation.PSCredential ProxyCredential { get; set; } + + /// Use the default credentials for the proxy + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Use the default credentials for the proxy")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter ProxyUseDefaultCredentials { get; set; } + + /// Backing field for property. + private string _resourceGroupName; + + /// The name of the resource group within the user's subscription. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the resource group within the user's subscription.")] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the resource group within the user's subscription.", + SerializedName = @"resourceGroupName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Path)] + public string ResourceGroupName { get => this._resourceGroupName; set => this._resourceGroupName = value; } + + /// Backing field for property. + private string _subscriptionId; + + /// + /// Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription ID forms part of the + /// URI for every service call. + /// + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.")] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.", + SerializedName = @"subscriptionId", + PossibleTypes = new [] { typeof(string) })] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.DefaultInfo( + Name = @"", + Description =@"", + Script = @"(Get-AzContext).Subscription.Id")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Path)] + public string SubscriptionId { get => this._subscriptionId; set => this._subscriptionId = value; } + + /// Backing field for property. + private string _topicName; + + /// Name of the domain topic. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Name of the domain topic.")] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Name of the domain topic.", + SerializedName = @"topicName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Path)] + public string TopicName { get => this._topicName; set => this._topicName = value; } + + /// + /// overrideOnDefault will be called before the regular onDefault has been processed, allowing customization of what + /// happens on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// /// Determines if the rest of the onDefault method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnDefault(global::System.Net.Http.HttpResponseMessage responseMessage, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnNoContent will be called before the regular onNoContent has been processed, allowing customization of + /// what happens on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// /// Determines if the rest of the onNoContent method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnNoContent(global::System.Net.Http.HttpResponseMessage responseMessage, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnOk will be called before the regular onOk has been processed, allowing customization of what happens + /// on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// /// Determines if the rest of the onOk method should be processed, or if the method should return + /// immediately (set to true to skip further processing ) + + partial void overrideOnOk(global::System.Net.Http.HttpResponseMessage responseMessage, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// (overrides the default BeginProcessing method in global::System.Management.Automation.PSCmdlet) + /// + protected override void BeginProcessing() + { + var telemetryId = Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.GetTelemetryId.Invoke(); + if (telemetryId != "" && telemetryId != "internal") + { + __correlationId = telemetryId; + } + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Creates a duplicate instance of this cmdlet (via JSON serialization). + /// a duplicate instance of RemoveAzEventGridDomainTopicEventSubscription_Delete + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Cmdlets.RemoveAzEventGridDomainTopicEventSubscription_Delete Clone() + { + var clone = new RemoveAzEventGridDomainTopicEventSubscription_Delete(); + clone.__correlationId = this.__correlationId; + clone.__processRecordId = this.__processRecordId; + clone.DefaultProfile = this.DefaultProfile; + clone.InvocationInformation = this.InvocationInformation; + clone.Proxy = this.Proxy; + clone.Pipeline = this.Pipeline; + clone.AsJob = this.AsJob; + clone.Break = this.Break; + clone.ProxyCredential = this.ProxyCredential; + clone.ProxyUseDefaultCredentials = this.ProxyUseDefaultCredentials; + clone.HttpPipelinePrepend = this.HttpPipelinePrepend; + clone.HttpPipelineAppend = this.HttpPipelineAppend; + clone.SubscriptionId = this.SubscriptionId; + clone.ResourceGroupName = this.ResourceGroupName; + clone.DomainName = this.DomainName; + clone.TopicName = this.TopicName; + clone.EventSubscriptionName = this.EventSubscriptionName; + return clone; + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + + } + + /// Handles/Dispatches events during the call to the REST service. + /// The message id + /// The message cancellation token. When this call is cancelled, this should be true + /// Detailed message data for the message event. + /// + /// A that will be complete when handling of the message is completed. + /// + async global::System.Threading.Tasks.Task Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener.Signal(string id, global::System.Threading.CancellationToken token, global::System.Func messageData) + { + using( NoSynchronizationContext ) + { + if (token.IsCancellationRequested) + { + return ; + } + + switch ( id ) + { + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.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.EventGrid.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.EventGrid.Runtime.PowerShell.AsyncOperationResponse { Target = uri }); + // do nothing more. + data.Cancel(); + return; + } + } + break; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.EventData ), InvocationInformation, this.ParameterSetName, __correlationId, __processRecordId, null ); + if (token.IsCancellationRequested) + { + return ; + } + WriteDebug($"{id}: {(messageData().Message ?? global::System.String.Empty)}"); + } + } + + /// Performs execution of the command. + protected override void ProcessRecord() + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + if (ShouldProcess($"Call remote 'DomainTopicEventSubscriptionsDelete' operation")) + { + if (true == MyInvocation?.BoundParameters?.ContainsKey("AsJob")) + { + var instance = this.Clone(); + var job = new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token); + } + } + } + } + catch (global::System.AggregateException aggregateException) + { + // unroll the inner exceptions to get the root cause + foreach( var innerException in aggregateException.Flatten().InnerExceptions ) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(innerException,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + } + catch (global::System.Exception exception) when ((exception as System.Management.Automation.PipelineStoppedException)== null || (exception as System.Management.Automation.PipelineStoppedException).InnerException != null) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(exception,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + finally + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletProcessRecordEnd).Wait(); + } + } + + /// Performs execution of the command, working asynchronously if required. + /// + /// A that will be complete when handling of the method is completed. + /// + protected async global::System.Threading.Tasks.Task ProcessRecordAsync() + { + using( NoSynchronizationContext ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await this.Client.DomainTopicEventSubscriptionsDelete(SubscriptionId, ResourceGroupName, DomainName, TopicName, EventSubscriptionName, onOk, onNoContent, onDefault, this, Pipeline); + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.UndeclaredResponseException urexception) + { + WriteError(new global::System.Management.Automation.ErrorRecord(urexception, urexception.StatusCode.ToString(), global::System.Management.Automation.ErrorCategory.InvalidOperation, new { SubscriptionId=SubscriptionId,ResourceGroupName=ResourceGroupName,DomainName=DomainName,TopicName=TopicName,EventSubscriptionName=EventSubscriptionName}) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(urexception.Message) { RecommendedAction = urexception.Action } + }); + } + finally + { + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// + /// Intializes a new instance of the cmdlet class. + /// + public RemoveAzEventGridDomainTopicEventSubscription_Delete() + { + + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Cancel(); + base.StopProcessing(); + } + + /// + /// a delegate that is called when the remote service returns default (any response code not handled elsewhere). + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onDefault(global::System.Net.Http.HttpResponseMessage responseMessage) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnDefault(responseMessage, ref _returnNow); + // if overrideOnDefault has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // Error Response : default + // Unrecognized Response. Create an error record based on what we have. + var ex = new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.RestException(responseMessage); + WriteError( new global::System.Management.Automation.ErrorRecord(ex, ex.Code, global::System.Management.Automation.ErrorCategory.InvalidOperation, new { SubscriptionId=SubscriptionId, ResourceGroupName=ResourceGroupName, DomainName=DomainName, TopicName=TopicName, EventSubscriptionName=EventSubscriptionName }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(ex.Message) { RecommendedAction = ex.Action } + }); + } + } + + /// 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/eventgrid/generated/cmdlets/RemoveAzEventGridDomainTopicEventSubscription_DeleteViaIdentity.cs b/swaggerci/eventgrid/generated/cmdlets/RemoveAzEventGridDomainTopicEventSubscription_DeleteViaIdentity.cs new file mode 100644 index 000000000000..7b959f952e84 --- /dev/null +++ b/swaggerci/eventgrid/generated/cmdlets/RemoveAzEventGridDomainTopicEventSubscription_DeleteViaIdentity.cs @@ -0,0 +1,482 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Extensions; + using System; + + /// Delete a nested existing event subscription for a domain topic. + /// + /// [OpenAPI] Delete=>DELETE:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.EventGrid/domains/{domainName}/topics/{topicName}/eventSubscriptions/{eventSubscriptionName}" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsCommon.Remove, @"AzEventGridDomainTopicEventSubscription_DeleteViaIdentity", SupportsShouldProcess = true)] + [global::System.Management.Automation.OutputType(typeof(bool))] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Description(@"Delete a nested existing event subscription for a domain topic.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Generated] + public partial class RemoveAzEventGridDomainTopicEventSubscription_DeleteViaIdentity : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener + { + /// A unique id generatd for the this cmdlet when it is instantiated. + private string __correlationId = System.Guid.NewGuid().ToString(); + + /// A copy of the Invocation Info (necessary to allow asJob to clone this cmdlet) + private global::System.Management.Automation.InvocationInfo __invocationInfo; + + /// A unique id generatd for the 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.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.EventGridManagementClient Client => Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.ClientAPI; + + /// + /// The credentials, account, tenant, and subscription used for communication with Azure + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The credentials, account, tenant, and subscription used for communication with Azure.")] + [global::System.Management.Automation.ValidateNotNull] + [global::System.Management.Automation.Alias("AzureRMContext", "AzureCredential")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Azure)] + public global::System.Management.Automation.PSObject DefaultProfile { get; set; } + + /// SendAsync Pipeline Steps to be appended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be appended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[] HttpPipelineAppend { get; set; } + + /// SendAsync Pipeline Steps to be prepended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be prepended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[] HttpPipelinePrepend { get; set; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.IEventGridIdentity _inputObject; + + /// Identity Parameter + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Identity Parameter", ValueFromPipeline = true)] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Path)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.IEventGridIdentity InputObject { get => this._inputObject; set => this._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.EventGrid.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter NoWait { get; set; } + + /// + /// When specified, forces the cmdlet return a 'bool' given that there isn't a return type by default. + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Returns true when the command succeeds")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Runtime.HttpPipeline Pipeline { get; set; } + + /// The URI for the proxy server to use + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "The URI for the proxy server to use")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Uri Proxy { get; set; } + + /// Credentials for a proxy server to use for the remote call + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Credentials for a proxy server to use for the remote call")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Management.Automation.PSCredential ProxyCredential { get; set; } + + /// Use the default credentials for the proxy + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Use the default credentials for the proxy")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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. + /// /// Determines if the rest of the onDefault method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnDefault(global::System.Net.Http.HttpResponseMessage responseMessage, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnNoContent will be called before the regular onNoContent has been processed, allowing customization of + /// what happens on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// /// Determines if the rest of the onNoContent method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnNoContent(global::System.Net.Http.HttpResponseMessage responseMessage, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnOk will be called before the regular onOk has been processed, allowing customization of what happens + /// on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// /// Determines if the rest of the onOk method should be processed, or if the method should return + /// immediately (set to true to skip further processing ) + + partial void overrideOnOk(global::System.Net.Http.HttpResponseMessage responseMessage, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// (overrides the default BeginProcessing method in global::System.Management.Automation.PSCmdlet) + /// + protected override void BeginProcessing() + { + var telemetryId = Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.GetTelemetryId.Invoke(); + if (telemetryId != "" && telemetryId != "internal") + { + __correlationId = telemetryId; + } + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Creates a duplicate instance of this cmdlet (via JSON serialization). + /// + /// a duplicate instance of RemoveAzEventGridDomainTopicEventSubscription_DeleteViaIdentity + /// + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Cmdlets.RemoveAzEventGridDomainTopicEventSubscription_DeleteViaIdentity Clone() + { + var clone = new RemoveAzEventGridDomainTopicEventSubscription_DeleteViaIdentity(); + clone.__correlationId = this.__correlationId; + clone.__processRecordId = this.__processRecordId; + clone.DefaultProfile = this.DefaultProfile; + clone.InvocationInformation = this.InvocationInformation; + clone.Proxy = this.Proxy; + clone.Pipeline = this.Pipeline; + clone.AsJob = this.AsJob; + clone.Break = this.Break; + clone.ProxyCredential = this.ProxyCredential; + clone.ProxyUseDefaultCredentials = this.ProxyUseDefaultCredentials; + clone.HttpPipelinePrepend = this.HttpPipelinePrepend; + clone.HttpPipelineAppend = this.HttpPipelineAppend; + return clone; + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + + } + + /// Handles/Dispatches events during the call to the REST service. + /// The message id + /// The message cancellation token. When this call is cancelled, this should be true + /// Detailed message data for the message event. + /// + /// A that will be complete when handling of the message is completed. + /// + async global::System.Threading.Tasks.Task Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener.Signal(string id, global::System.Threading.CancellationToken token, global::System.Func messageData) + { + using( NoSynchronizationContext ) + { + if (token.IsCancellationRequested) + { + return ; + } + + switch ( id ) + { + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.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.EventGrid.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.EventGrid.Runtime.PowerShell.AsyncOperationResponse { Target = uri }); + // do nothing more. + data.Cancel(); + return; + } + } + break; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.EventData ), InvocationInformation, this.ParameterSetName, __correlationId, __processRecordId, null ); + if (token.IsCancellationRequested) + { + return ; + } + WriteDebug($"{id}: {(messageData().Message ?? global::System.String.Empty)}"); + } + } + + /// Performs execution of the command. + protected override void ProcessRecord() + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + if (ShouldProcess($"Call remote 'DomainTopicEventSubscriptionsDelete' operation")) + { + if (true == MyInvocation?.BoundParameters?.ContainsKey("AsJob")) + { + var instance = this.Clone(); + var job = new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token); + } + } + } + } + catch (global::System.AggregateException aggregateException) + { + // unroll the inner exceptions to get the root cause + foreach( var innerException in aggregateException.Flatten().InnerExceptions ) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(innerException,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + } + catch (global::System.Exception exception) when ((exception as System.Management.Automation.PipelineStoppedException)== null || (exception as System.Management.Automation.PipelineStoppedException).InnerException != null) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(exception,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + finally + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletProcessRecordEnd).Wait(); + } + } + + /// Performs execution of the command, working asynchronously if required. + /// + /// A that will be complete when handling of the method is completed. + /// + protected async global::System.Threading.Tasks.Task ProcessRecordAsync() + { + using( NoSynchronizationContext ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + if (InputObject?.Id != null) + { + await this.Client.DomainTopicEventSubscriptionsDeleteViaIdentity(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.DomainName) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.DomainName"),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, InputObject) ); + } + if (null == InputObject.TopicName) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.TopicName"),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, InputObject) ); + } + if (null == InputObject.EventSubscriptionName) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.EventSubscriptionName"),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, InputObject) ); + } + await this.Client.DomainTopicEventSubscriptionsDelete(InputObject.SubscriptionId ?? null, InputObject.ResourceGroupName ?? null, InputObject.DomainName ?? null, InputObject.TopicName ?? null, InputObject.EventSubscriptionName ?? null, onOk, onNoContent, onDefault, this, Pipeline); + } + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// + /// Intializes a new instance of the cmdlet + /// class. + /// + public RemoveAzEventGridDomainTopicEventSubscription_DeleteViaIdentity() + { + + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Cancel(); + base.StopProcessing(); + } + + /// + /// a delegate that is called when the remote service returns default (any response code not handled elsewhere). + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onDefault(global::System.Net.Http.HttpResponseMessage responseMessage) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnDefault(responseMessage, ref _returnNow); + // if overrideOnDefault has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // Error Response : default + // Unrecognized Response. Create an error record based on what we have. + var ex = new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.RestException(responseMessage); + WriteError( new global::System.Management.Automation.ErrorRecord(ex, ex.Code, global::System.Management.Automation.ErrorCategory.InvalidOperation, new { }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(ex.Message) { RecommendedAction = ex.Action } + }); + } + } + + /// a delegate that is called when the remote service returns 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/eventgrid/generated/cmdlets/RemoveAzEventGridDomainTopic_Delete.cs b/swaggerci/eventgrid/generated/cmdlets/RemoveAzEventGridDomainTopic_Delete.cs new file mode 100644 index 000000000000..1ccf7eb1cc23 --- /dev/null +++ b/swaggerci/eventgrid/generated/cmdlets/RemoveAzEventGridDomainTopic_Delete.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.EventGrid.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Extensions; + using System; + + /// Delete existing domain topic. + /// + /// [OpenAPI] Delete=>DELETE:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.EventGrid/domains/{domainName}/topics/{domainTopicName}" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsCommon.Remove, @"AzEventGridDomainTopic_Delete", SupportsShouldProcess = true)] + [global::System.Management.Automation.OutputType(typeof(bool))] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Description(@"Delete existing domain topic.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Generated] + public partial class RemoveAzEventGridDomainTopic_Delete : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener + { + /// A unique id generatd for the this cmdlet when it is instantiated. + private string __correlationId = System.Guid.NewGuid().ToString(); + + /// A copy of the Invocation Info (necessary to allow asJob to clone this cmdlet) + private global::System.Management.Automation.InvocationInfo __invocationInfo; + + /// A unique id generatd for the 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.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.EventGridManagementClient Client => Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.ClientAPI; + + /// + /// The credentials, account, tenant, and subscription used for communication with Azure + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The credentials, account, tenant, and subscription used for communication with Azure.")] + [global::System.Management.Automation.ValidateNotNull] + [global::System.Management.Automation.Alias("AzureRMContext", "AzureCredential")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Azure)] + public global::System.Management.Automation.PSObject DefaultProfile { get; set; } + + /// Backing field for property. + private string _domainName; + + /// Name of the domain. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Name of the domain.")] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Name of the domain.", + SerializedName = @"domainName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Path)] + public string DomainName { get => this._domainName; set => this._domainName = value; } + + /// SendAsync Pipeline Steps to be appended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be appended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[] HttpPipelineAppend { get; set; } + + /// SendAsync Pipeline Steps to be prepended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be prepended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[] HttpPipelinePrepend { get; set; } + + /// Accessor for our copy of the InvocationInfo. + public global::System.Management.Automation.InvocationInfo InvocationInformation { get => __invocationInfo = __invocationInfo ?? this.MyInvocation ; set { __invocationInfo = value; } } + + /// + /// cancellation delegate. Stops the cmdlet when called. + /// + global::System.Action Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener.Token => _cancellationTokenSource.Token; + + /// Backing field for property. + private string _name; + + /// Name of the domain topic. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Name of the domain topic.")] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Name of the domain topic.", + SerializedName = @"domainTopicName", + PossibleTypes = new [] { typeof(string) })] + [global::System.Management.Automation.Alias("DomainTopicName")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Path)] + public string Name { get => this._name; set => this._name = value; } + + /// + /// when specified, will make the remote call, and return an AsyncOperationResponse, letting the remote operation continue + /// asynchronously. + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Run the command asynchronously")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter NoWait { get; set; } + + /// + /// When specified, forces the cmdlet return a 'bool' given that there isn't a return type by default. + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Returns true when the command succeeds")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Runtime.HttpPipeline Pipeline { get; set; } + + /// The URI for the proxy server to use + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "The URI for the proxy server to use")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Uri Proxy { get; set; } + + /// Credentials for a proxy server to use for the remote call + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Credentials for a proxy server to use for the remote call")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Management.Automation.PSCredential ProxyCredential { get; set; } + + /// Use the default credentials for the proxy + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Use the default credentials for the proxy")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter ProxyUseDefaultCredentials { get; set; } + + /// Backing field for property. + private string _resourceGroupName; + + /// The name of the resource group within the user's subscription. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the resource group within the user's subscription.")] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the resource group within the user's subscription.", + SerializedName = @"resourceGroupName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Path)] + public string ResourceGroupName { get => this._resourceGroupName; set => this._resourceGroupName = value; } + + /// Backing field for property. + private string _subscriptionId; + + /// + /// Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription ID forms part of the + /// URI for every service call. + /// + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.")] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.", + SerializedName = @"subscriptionId", + PossibleTypes = new [] { typeof(string) })] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.DefaultInfo( + Name = @"", + Description =@"", + Script = @"(Get-AzContext).Subscription.Id")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Path)] + public string SubscriptionId { get => this._subscriptionId; set => this._subscriptionId = value; } + + /// + /// overrideOnDefault will be called before the regular onDefault has been processed, allowing customization of what + /// happens on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// /// Determines if the rest of the onDefault method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnDefault(global::System.Net.Http.HttpResponseMessage responseMessage, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnNoContent will be called before the regular onNoContent has been processed, allowing customization of + /// what happens on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// /// Determines if the rest of the onNoContent method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnNoContent(global::System.Net.Http.HttpResponseMessage responseMessage, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnOk will be called before the regular onOk has been processed, allowing customization of what happens + /// on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// /// Determines if the rest of the onOk method should be processed, or if the method should return + /// immediately (set to true to skip further processing ) + + partial void overrideOnOk(global::System.Net.Http.HttpResponseMessage responseMessage, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// (overrides the default BeginProcessing method in global::System.Management.Automation.PSCmdlet) + /// + protected override void BeginProcessing() + { + var telemetryId = Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.GetTelemetryId.Invoke(); + if (telemetryId != "" && telemetryId != "internal") + { + __correlationId = telemetryId; + } + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Creates a duplicate instance of this cmdlet (via JSON serialization). + /// a duplicate instance of RemoveAzEventGridDomainTopic_Delete + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Cmdlets.RemoveAzEventGridDomainTopic_Delete Clone() + { + var clone = new RemoveAzEventGridDomainTopic_Delete(); + clone.__correlationId = this.__correlationId; + clone.__processRecordId = this.__processRecordId; + clone.DefaultProfile = this.DefaultProfile; + clone.InvocationInformation = this.InvocationInformation; + clone.Proxy = this.Proxy; + clone.Pipeline = this.Pipeline; + clone.AsJob = this.AsJob; + clone.Break = this.Break; + clone.ProxyCredential = this.ProxyCredential; + clone.ProxyUseDefaultCredentials = this.ProxyUseDefaultCredentials; + clone.HttpPipelinePrepend = this.HttpPipelinePrepend; + clone.HttpPipelineAppend = this.HttpPipelineAppend; + clone.SubscriptionId = this.SubscriptionId; + clone.ResourceGroupName = this.ResourceGroupName; + clone.DomainName = this.DomainName; + clone.Name = this.Name; + return clone; + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + + } + + /// Handles/Dispatches events during the call to the REST service. + /// The message id + /// The message cancellation token. When this call is cancelled, this should be true + /// Detailed message data for the message event. + /// + /// A that will be complete when handling of the message is completed. + /// + async global::System.Threading.Tasks.Task Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener.Signal(string id, global::System.Threading.CancellationToken token, global::System.Func messageData) + { + using( NoSynchronizationContext ) + { + if (token.IsCancellationRequested) + { + return ; + } + + switch ( id ) + { + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.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.EventGrid.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.EventGrid.Runtime.PowerShell.AsyncOperationResponse { Target = uri }); + // do nothing more. + data.Cancel(); + return; + } + } + break; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.EventData ), InvocationInformation, this.ParameterSetName, __correlationId, __processRecordId, null ); + if (token.IsCancellationRequested) + { + return ; + } + WriteDebug($"{id}: {(messageData().Message ?? global::System.String.Empty)}"); + } + } + + /// Performs execution of the command. + protected override void ProcessRecord() + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + if (ShouldProcess($"Call remote 'DomainTopicsDelete' operation")) + { + if (true == MyInvocation?.BoundParameters?.ContainsKey("AsJob")) + { + var instance = this.Clone(); + var job = new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token); + } + } + } + } + catch (global::System.AggregateException aggregateException) + { + // unroll the inner exceptions to get the root cause + foreach( var innerException in aggregateException.Flatten().InnerExceptions ) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(innerException,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + } + catch (global::System.Exception exception) when ((exception as System.Management.Automation.PipelineStoppedException)== null || (exception as System.Management.Automation.PipelineStoppedException).InnerException != null) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(exception,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + finally + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletProcessRecordEnd).Wait(); + } + } + + /// Performs execution of the command, working asynchronously if required. + /// + /// A that will be complete when handling of the method is completed. + /// + protected async global::System.Threading.Tasks.Task ProcessRecordAsync() + { + using( NoSynchronizationContext ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await this.Client.DomainTopicsDelete(SubscriptionId, ResourceGroupName, DomainName, Name, onOk, onNoContent, onDefault, this, Pipeline); + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.UndeclaredResponseException urexception) + { + WriteError(new global::System.Management.Automation.ErrorRecord(urexception, urexception.StatusCode.ToString(), global::System.Management.Automation.ErrorCategory.InvalidOperation, new { SubscriptionId=SubscriptionId,ResourceGroupName=ResourceGroupName,DomainName=DomainName,Name=Name}) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(urexception.Message) { RecommendedAction = urexception.Action } + }); + } + finally + { + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// + /// Intializes a new instance of the cmdlet class. + /// + public RemoveAzEventGridDomainTopic_Delete() + { + + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Cancel(); + base.StopProcessing(); + } + + /// + /// a delegate that is called when the remote service returns default (any response code not handled elsewhere). + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onDefault(global::System.Net.Http.HttpResponseMessage responseMessage) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnDefault(responseMessage, ref _returnNow); + // if overrideOnDefault has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // Error Response : default + // Unrecognized Response. Create an error record based on what we have. + var ex = new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.RestException(responseMessage); + WriteError( new global::System.Management.Automation.ErrorRecord(ex, ex.Code, global::System.Management.Automation.ErrorCategory.InvalidOperation, new { SubscriptionId=SubscriptionId, ResourceGroupName=ResourceGroupName, DomainName=DomainName, Name=Name }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(ex.Message) { RecommendedAction = ex.Action } + }); + } + } + + /// 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/eventgrid/generated/cmdlets/RemoveAzEventGridDomainTopic_DeleteViaIdentity.cs b/swaggerci/eventgrid/generated/cmdlets/RemoveAzEventGridDomainTopic_DeleteViaIdentity.cs new file mode 100644 index 000000000000..d881c7e35fd3 --- /dev/null +++ b/swaggerci/eventgrid/generated/cmdlets/RemoveAzEventGridDomainTopic_DeleteViaIdentity.cs @@ -0,0 +1,475 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Extensions; + using System; + + /// Delete existing domain topic. + /// + /// [OpenAPI] Delete=>DELETE:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.EventGrid/domains/{domainName}/topics/{domainTopicName}" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsCommon.Remove, @"AzEventGridDomainTopic_DeleteViaIdentity", SupportsShouldProcess = true)] + [global::System.Management.Automation.OutputType(typeof(bool))] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Description(@"Delete existing domain topic.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Generated] + public partial class RemoveAzEventGridDomainTopic_DeleteViaIdentity : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener + { + /// A unique id generatd for the this cmdlet when it is instantiated. + private string __correlationId = System.Guid.NewGuid().ToString(); + + /// A copy of the Invocation Info (necessary to allow asJob to clone this cmdlet) + private global::System.Management.Automation.InvocationInfo __invocationInfo; + + /// A unique id generatd for the 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.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.EventGridManagementClient Client => Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.ClientAPI; + + /// + /// The credentials, account, tenant, and subscription used for communication with Azure + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The credentials, account, tenant, and subscription used for communication with Azure.")] + [global::System.Management.Automation.ValidateNotNull] + [global::System.Management.Automation.Alias("AzureRMContext", "AzureCredential")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Azure)] + public global::System.Management.Automation.PSObject DefaultProfile { get; set; } + + /// SendAsync Pipeline Steps to be appended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be appended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[] HttpPipelineAppend { get; set; } + + /// SendAsync Pipeline Steps to be prepended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be prepended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[] HttpPipelinePrepend { get; set; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.IEventGridIdentity _inputObject; + + /// Identity Parameter + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Identity Parameter", ValueFromPipeline = true)] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Path)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.IEventGridIdentity InputObject { get => this._inputObject; set => this._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.EventGrid.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter NoWait { get; set; } + + /// + /// When specified, forces the cmdlet return a 'bool' given that there isn't a return type by default. + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Returns true when the command succeeds")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Runtime.HttpPipeline Pipeline { get; set; } + + /// The URI for the proxy server to use + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "The URI for the proxy server to use")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Uri Proxy { get; set; } + + /// Credentials for a proxy server to use for the remote call + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Credentials for a proxy server to use for the remote call")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Management.Automation.PSCredential ProxyCredential { get; set; } + + /// Use the default credentials for the proxy + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Use the default credentials for the proxy")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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. + /// /// Determines if the rest of the onDefault method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnDefault(global::System.Net.Http.HttpResponseMessage responseMessage, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnNoContent will be called before the regular onNoContent has been processed, allowing customization of + /// what happens on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// /// Determines if the rest of the onNoContent method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnNoContent(global::System.Net.Http.HttpResponseMessage responseMessage, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnOk will be called before the regular onOk has been processed, allowing customization of what happens + /// on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// /// Determines if the rest of the onOk method should be processed, or if the method should return + /// immediately (set to true to skip further processing ) + + partial void overrideOnOk(global::System.Net.Http.HttpResponseMessage responseMessage, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// (overrides the default BeginProcessing method in global::System.Management.Automation.PSCmdlet) + /// + protected override void BeginProcessing() + { + var telemetryId = Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.GetTelemetryId.Invoke(); + if (telemetryId != "" && telemetryId != "internal") + { + __correlationId = telemetryId; + } + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Creates a duplicate instance of this cmdlet (via JSON serialization). + /// a duplicate instance of RemoveAzEventGridDomainTopic_DeleteViaIdentity + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Cmdlets.RemoveAzEventGridDomainTopic_DeleteViaIdentity Clone() + { + var clone = new RemoveAzEventGridDomainTopic_DeleteViaIdentity(); + clone.__correlationId = this.__correlationId; + clone.__processRecordId = this.__processRecordId; + clone.DefaultProfile = this.DefaultProfile; + clone.InvocationInformation = this.InvocationInformation; + clone.Proxy = this.Proxy; + clone.Pipeline = this.Pipeline; + clone.AsJob = this.AsJob; + clone.Break = this.Break; + clone.ProxyCredential = this.ProxyCredential; + clone.ProxyUseDefaultCredentials = this.ProxyUseDefaultCredentials; + clone.HttpPipelinePrepend = this.HttpPipelinePrepend; + clone.HttpPipelineAppend = this.HttpPipelineAppend; + return clone; + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + + } + + /// Handles/Dispatches events during the call to the REST service. + /// The message id + /// The message cancellation token. When this call is cancelled, this should be true + /// Detailed message data for the message event. + /// + /// A that will be complete when handling of the message is completed. + /// + async global::System.Threading.Tasks.Task Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener.Signal(string id, global::System.Threading.CancellationToken token, global::System.Func messageData) + { + using( NoSynchronizationContext ) + { + if (token.IsCancellationRequested) + { + return ; + } + + switch ( id ) + { + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.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.EventGrid.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.EventGrid.Runtime.PowerShell.AsyncOperationResponse { Target = uri }); + // do nothing more. + data.Cancel(); + return; + } + } + break; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.EventData ), InvocationInformation, this.ParameterSetName, __correlationId, __processRecordId, null ); + if (token.IsCancellationRequested) + { + return ; + } + WriteDebug($"{id}: {(messageData().Message ?? global::System.String.Empty)}"); + } + } + + /// Performs execution of the command. + protected override void ProcessRecord() + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + if (ShouldProcess($"Call remote 'DomainTopicsDelete' operation")) + { + if (true == MyInvocation?.BoundParameters?.ContainsKey("AsJob")) + { + var instance = this.Clone(); + var job = new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token); + } + } + } + } + catch (global::System.AggregateException aggregateException) + { + // unroll the inner exceptions to get the root cause + foreach( var innerException in aggregateException.Flatten().InnerExceptions ) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(innerException,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + } + catch (global::System.Exception exception) when ((exception as System.Management.Automation.PipelineStoppedException)== null || (exception as System.Management.Automation.PipelineStoppedException).InnerException != null) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(exception,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + finally + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletProcessRecordEnd).Wait(); + } + } + + /// Performs execution of the command, working asynchronously if required. + /// + /// A that will be complete when handling of the method is completed. + /// + protected async global::System.Threading.Tasks.Task ProcessRecordAsync() + { + using( NoSynchronizationContext ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + if (InputObject?.Id != null) + { + await this.Client.DomainTopicsDeleteViaIdentity(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.DomainName) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.DomainName"),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, InputObject) ); + } + if (null == InputObject.DomainTopicName) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.DomainTopicName"),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, InputObject) ); + } + await this.Client.DomainTopicsDelete(InputObject.SubscriptionId ?? null, InputObject.ResourceGroupName ?? null, InputObject.DomainName ?? null, InputObject.DomainTopicName ?? null, onOk, onNoContent, onDefault, this, Pipeline); + } + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// + /// Intializes a new instance of the cmdlet class. + /// + public RemoveAzEventGridDomainTopic_DeleteViaIdentity() + { + + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Cancel(); + base.StopProcessing(); + } + + /// + /// a delegate that is called when the remote service returns default (any response code not handled elsewhere). + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onDefault(global::System.Net.Http.HttpResponseMessage responseMessage) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnDefault(responseMessage, ref _returnNow); + // if overrideOnDefault has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // Error Response : default + // Unrecognized Response. Create an error record based on what we have. + var ex = new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.RestException(responseMessage); + WriteError( new global::System.Management.Automation.ErrorRecord(ex, ex.Code, global::System.Management.Automation.ErrorCategory.InvalidOperation, new { }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(ex.Message) { RecommendedAction = ex.Action } + }); + } + } + + /// a delegate that is called when the remote service returns 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/eventgrid/generated/cmdlets/RemoveAzEventGridDomain_Delete.cs b/swaggerci/eventgrid/generated/cmdlets/RemoveAzEventGridDomain_Delete.cs new file mode 100644 index 000000000000..10aca342c18a --- /dev/null +++ b/swaggerci/eventgrid/generated/cmdlets/RemoveAzEventGridDomain_Delete.cs @@ -0,0 +1,496 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Extensions; + using System; + + /// Delete existing domain. + /// + /// [OpenAPI] Delete=>DELETE:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.EventGrid/domains/{domainName}" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsCommon.Remove, @"AzEventGridDomain_Delete", SupportsShouldProcess = true)] + [global::System.Management.Automation.OutputType(typeof(bool))] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Description(@"Delete existing domain.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Generated] + public partial class RemoveAzEventGridDomain_Delete : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener + { + /// A unique id generatd for the this cmdlet when it is instantiated. + private string __correlationId = System.Guid.NewGuid().ToString(); + + /// A copy of the Invocation Info (necessary to allow asJob to clone this cmdlet) + private global::System.Management.Automation.InvocationInfo __invocationInfo; + + /// A unique id generatd for the 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.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.EventGridManagementClient Client => Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.ClientAPI; + + /// + /// The credentials, account, tenant, and subscription used for communication with Azure + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The credentials, account, tenant, and subscription used for communication with Azure.")] + [global::System.Management.Automation.ValidateNotNull] + [global::System.Management.Automation.Alias("AzureRMContext", "AzureCredential")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Azure)] + public global::System.Management.Automation.PSObject DefaultProfile { get; set; } + + /// SendAsync Pipeline Steps to be appended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be appended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[] HttpPipelineAppend { get; set; } + + /// SendAsync Pipeline Steps to be prepended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be prepended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[] HttpPipelinePrepend { get; set; } + + /// Accessor for our copy of the InvocationInfo. + public global::System.Management.Automation.InvocationInfo InvocationInformation { get => __invocationInfo = __invocationInfo ?? this.MyInvocation ; set { __invocationInfo = value; } } + + /// + /// cancellation delegate. Stops the cmdlet when called. + /// + global::System.Action Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener.Token => _cancellationTokenSource.Token; + + /// Backing field for property. + private string _name; + + /// Name of the domain. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Name of the domain.")] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Name of the domain.", + SerializedName = @"domainName", + PossibleTypes = new [] { typeof(string) })] + [global::System.Management.Automation.Alias("DomainName")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Path)] + public string Name { get => this._name; set => this._name = value; } + + /// + /// when specified, will make the remote call, and return an AsyncOperationResponse, letting the remote operation continue + /// asynchronously. + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Run the command asynchronously")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter NoWait { get; set; } + + /// + /// When specified, forces the cmdlet return a 'bool' given that there isn't a return type by default. + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Returns true when the command succeeds")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Runtime.HttpPipeline Pipeline { get; set; } + + /// The URI for the proxy server to use + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "The URI for the proxy server to use")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Uri Proxy { get; set; } + + /// Credentials for a proxy server to use for the remote call + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Credentials for a proxy server to use for the remote call")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Management.Automation.PSCredential ProxyCredential { get; set; } + + /// Use the default credentials for the proxy + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Use the default credentials for the proxy")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter ProxyUseDefaultCredentials { get; set; } + + /// Backing field for property. + private string _resourceGroupName; + + /// The name of the resource group within the user's subscription. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the resource group within the user's subscription.")] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the resource group within the user's subscription.", + SerializedName = @"resourceGroupName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Path)] + public string ResourceGroupName { get => this._resourceGroupName; set => this._resourceGroupName = value; } + + /// Backing field for property. + private string _subscriptionId; + + /// + /// Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription ID forms part of the + /// URI for every service call. + /// + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.")] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.", + SerializedName = @"subscriptionId", + PossibleTypes = new [] { typeof(string) })] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.DefaultInfo( + Name = @"", + Description =@"", + Script = @"(Get-AzContext).Subscription.Id")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Path)] + public string SubscriptionId { get => this._subscriptionId; set => this._subscriptionId = value; } + + /// + /// overrideOnDefault will be called before the regular onDefault has been processed, allowing customization of what + /// happens on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// /// Determines if the rest of the onDefault method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnDefault(global::System.Net.Http.HttpResponseMessage responseMessage, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnNoContent will be called before the regular onNoContent has been processed, allowing customization of + /// what happens on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// /// Determines if the rest of the onNoContent method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnNoContent(global::System.Net.Http.HttpResponseMessage responseMessage, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnOk will be called before the regular onOk has been processed, allowing customization of what happens + /// on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// /// Determines if the rest of the onOk method should be processed, or if the method should return + /// immediately (set to true to skip further processing ) + + partial void overrideOnOk(global::System.Net.Http.HttpResponseMessage responseMessage, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// (overrides the default BeginProcessing method in global::System.Management.Automation.PSCmdlet) + /// + protected override void BeginProcessing() + { + var telemetryId = Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.GetTelemetryId.Invoke(); + if (telemetryId != "" && telemetryId != "internal") + { + __correlationId = telemetryId; + } + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Creates a duplicate instance of this cmdlet (via JSON serialization). + /// a duplicate instance of RemoveAzEventGridDomain_Delete + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Cmdlets.RemoveAzEventGridDomain_Delete Clone() + { + var clone = new RemoveAzEventGridDomain_Delete(); + clone.__correlationId = this.__correlationId; + clone.__processRecordId = this.__processRecordId; + clone.DefaultProfile = this.DefaultProfile; + clone.InvocationInformation = this.InvocationInformation; + clone.Proxy = this.Proxy; + clone.Pipeline = this.Pipeline; + clone.AsJob = this.AsJob; + clone.Break = this.Break; + clone.ProxyCredential = this.ProxyCredential; + clone.ProxyUseDefaultCredentials = this.ProxyUseDefaultCredentials; + clone.HttpPipelinePrepend = this.HttpPipelinePrepend; + clone.HttpPipelineAppend = this.HttpPipelineAppend; + clone.SubscriptionId = this.SubscriptionId; + clone.ResourceGroupName = this.ResourceGroupName; + clone.Name = this.Name; + return clone; + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + + } + + /// Handles/Dispatches events during the call to the REST service. + /// The message id + /// The message cancellation token. When this call is cancelled, this should be true + /// Detailed message data for the message event. + /// + /// A that will be complete when handling of the message is completed. + /// + async global::System.Threading.Tasks.Task Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener.Signal(string id, global::System.Threading.CancellationToken token, global::System.Func messageData) + { + using( NoSynchronizationContext ) + { + if (token.IsCancellationRequested) + { + return ; + } + + switch ( id ) + { + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.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.EventGrid.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.EventGrid.Runtime.PowerShell.AsyncOperationResponse { Target = uri }); + // do nothing more. + data.Cancel(); + return; + } + } + break; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.EventData ), InvocationInformation, this.ParameterSetName, __correlationId, __processRecordId, null ); + if (token.IsCancellationRequested) + { + return ; + } + WriteDebug($"{id}: {(messageData().Message ?? global::System.String.Empty)}"); + } + } + + /// Performs execution of the command. + protected override void ProcessRecord() + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + if (ShouldProcess($"Call remote 'DomainsDelete' operation")) + { + if (true == MyInvocation?.BoundParameters?.ContainsKey("AsJob")) + { + var instance = this.Clone(); + var job = new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token); + } + } + } + } + catch (global::System.AggregateException aggregateException) + { + // unroll the inner exceptions to get the root cause + foreach( var innerException in aggregateException.Flatten().InnerExceptions ) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(innerException,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + } + catch (global::System.Exception exception) when ((exception as System.Management.Automation.PipelineStoppedException)== null || (exception as System.Management.Automation.PipelineStoppedException).InnerException != null) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(exception,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + finally + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletProcessRecordEnd).Wait(); + } + } + + /// Performs execution of the command, working asynchronously if required. + /// + /// A that will be complete when handling of the method is completed. + /// + protected async global::System.Threading.Tasks.Task ProcessRecordAsync() + { + using( NoSynchronizationContext ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await this.Client.DomainsDelete(SubscriptionId, ResourceGroupName, Name, onOk, onNoContent, onDefault, this, Pipeline); + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.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.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// + /// Intializes a new instance of the cmdlet class. + /// + public RemoveAzEventGridDomain_Delete() + { + + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Cancel(); + base.StopProcessing(); + } + + /// + /// a delegate that is called when the remote service returns default (any response code not handled elsewhere). + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onDefault(global::System.Net.Http.HttpResponseMessage responseMessage) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnDefault(responseMessage, ref _returnNow); + // if overrideOnDefault has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // Error Response : default + // Unrecognized Response. Create an error record based on what we have. + var ex = new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.RestException(responseMessage); + 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 } + }); + } + } + + /// 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/eventgrid/generated/cmdlets/RemoveAzEventGridDomain_DeleteViaIdentity.cs b/swaggerci/eventgrid/generated/cmdlets/RemoveAzEventGridDomain_DeleteViaIdentity.cs new file mode 100644 index 000000000000..87b96e1adaac --- /dev/null +++ b/swaggerci/eventgrid/generated/cmdlets/RemoveAzEventGridDomain_DeleteViaIdentity.cs @@ -0,0 +1,471 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Extensions; + using System; + + /// Delete existing domain. + /// + /// [OpenAPI] Delete=>DELETE:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.EventGrid/domains/{domainName}" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsCommon.Remove, @"AzEventGridDomain_DeleteViaIdentity", SupportsShouldProcess = true)] + [global::System.Management.Automation.OutputType(typeof(bool))] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Description(@"Delete existing domain.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Generated] + public partial class RemoveAzEventGridDomain_DeleteViaIdentity : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener + { + /// A unique id generatd for the this cmdlet when it is instantiated. + private string __correlationId = System.Guid.NewGuid().ToString(); + + /// A copy of the Invocation Info (necessary to allow asJob to clone this cmdlet) + private global::System.Management.Automation.InvocationInfo __invocationInfo; + + /// A unique id generatd for the 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.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.EventGridManagementClient Client => Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.ClientAPI; + + /// + /// The credentials, account, tenant, and subscription used for communication with Azure + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The credentials, account, tenant, and subscription used for communication with Azure.")] + [global::System.Management.Automation.ValidateNotNull] + [global::System.Management.Automation.Alias("AzureRMContext", "AzureCredential")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Azure)] + public global::System.Management.Automation.PSObject DefaultProfile { get; set; } + + /// SendAsync Pipeline Steps to be appended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be appended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[] HttpPipelineAppend { get; set; } + + /// SendAsync Pipeline Steps to be prepended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be prepended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[] HttpPipelinePrepend { get; set; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.IEventGridIdentity _inputObject; + + /// Identity Parameter + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Identity Parameter", ValueFromPipeline = true)] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Path)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.IEventGridIdentity InputObject { get => this._inputObject; set => this._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.EventGrid.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter NoWait { get; set; } + + /// + /// When specified, forces the cmdlet return a 'bool' given that there isn't a return type by default. + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Returns true when the command succeeds")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Runtime.HttpPipeline Pipeline { get; set; } + + /// The URI for the proxy server to use + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "The URI for the proxy server to use")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Uri Proxy { get; set; } + + /// Credentials for a proxy server to use for the remote call + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Credentials for a proxy server to use for the remote call")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Management.Automation.PSCredential ProxyCredential { get; set; } + + /// Use the default credentials for the proxy + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Use the default credentials for the proxy")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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. + /// /// Determines if the rest of the onDefault method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnDefault(global::System.Net.Http.HttpResponseMessage responseMessage, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnNoContent will be called before the regular onNoContent has been processed, allowing customization of + /// what happens on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// /// Determines if the rest of the onNoContent method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnNoContent(global::System.Net.Http.HttpResponseMessage responseMessage, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnOk will be called before the regular onOk has been processed, allowing customization of what happens + /// on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// /// Determines if the rest of the onOk method should be processed, or if the method should return + /// immediately (set to true to skip further processing ) + + partial void overrideOnOk(global::System.Net.Http.HttpResponseMessage responseMessage, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// (overrides the default BeginProcessing method in global::System.Management.Automation.PSCmdlet) + /// + protected override void BeginProcessing() + { + var telemetryId = Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.GetTelemetryId.Invoke(); + if (telemetryId != "" && telemetryId != "internal") + { + __correlationId = telemetryId; + } + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Creates a duplicate instance of this cmdlet (via JSON serialization). + /// a duplicate instance of RemoveAzEventGridDomain_DeleteViaIdentity + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Cmdlets.RemoveAzEventGridDomain_DeleteViaIdentity Clone() + { + var clone = new RemoveAzEventGridDomain_DeleteViaIdentity(); + clone.__correlationId = this.__correlationId; + clone.__processRecordId = this.__processRecordId; + clone.DefaultProfile = this.DefaultProfile; + clone.InvocationInformation = this.InvocationInformation; + clone.Proxy = this.Proxy; + clone.Pipeline = this.Pipeline; + clone.AsJob = this.AsJob; + clone.Break = this.Break; + clone.ProxyCredential = this.ProxyCredential; + clone.ProxyUseDefaultCredentials = this.ProxyUseDefaultCredentials; + clone.HttpPipelinePrepend = this.HttpPipelinePrepend; + clone.HttpPipelineAppend = this.HttpPipelineAppend; + return clone; + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + + } + + /// Handles/Dispatches events during the call to the REST service. + /// The message id + /// The message cancellation token. When this call is cancelled, this should be true + /// Detailed message data for the message event. + /// + /// A that will be complete when handling of the message is completed. + /// + async global::System.Threading.Tasks.Task Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener.Signal(string id, global::System.Threading.CancellationToken token, global::System.Func messageData) + { + using( NoSynchronizationContext ) + { + if (token.IsCancellationRequested) + { + return ; + } + + switch ( id ) + { + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.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.EventGrid.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.EventGrid.Runtime.PowerShell.AsyncOperationResponse { Target = uri }); + // do nothing more. + data.Cancel(); + return; + } + } + break; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.EventData ), InvocationInformation, this.ParameterSetName, __correlationId, __processRecordId, null ); + if (token.IsCancellationRequested) + { + return ; + } + WriteDebug($"{id}: {(messageData().Message ?? global::System.String.Empty)}"); + } + } + + /// Performs execution of the command. + protected override void ProcessRecord() + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + if (ShouldProcess($"Call remote 'DomainsDelete' operation")) + { + if (true == MyInvocation?.BoundParameters?.ContainsKey("AsJob")) + { + var instance = this.Clone(); + var job = new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token); + } + } + } + } + catch (global::System.AggregateException aggregateException) + { + // unroll the inner exceptions to get the root cause + foreach( var innerException in aggregateException.Flatten().InnerExceptions ) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(innerException,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + } + catch (global::System.Exception exception) when ((exception as System.Management.Automation.PipelineStoppedException)== null || (exception as System.Management.Automation.PipelineStoppedException).InnerException != null) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(exception,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + finally + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletProcessRecordEnd).Wait(); + } + } + + /// Performs execution of the command, working asynchronously if required. + /// + /// A that will be complete when handling of the method is completed. + /// + protected async global::System.Threading.Tasks.Task ProcessRecordAsync() + { + using( NoSynchronizationContext ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + if (InputObject?.Id != null) + { + await this.Client.DomainsDeleteViaIdentity(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.DomainName) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.DomainName"),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, InputObject) ); + } + await this.Client.DomainsDelete(InputObject.SubscriptionId ?? null, InputObject.ResourceGroupName ?? null, InputObject.DomainName ?? null, onOk, onNoContent, onDefault, this, Pipeline); + } + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// + /// Intializes a new instance of the cmdlet class. + /// + public RemoveAzEventGridDomain_DeleteViaIdentity() + { + + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Cancel(); + base.StopProcessing(); + } + + /// + /// a delegate that is called when the remote service returns default (any response code not handled elsewhere). + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onDefault(global::System.Net.Http.HttpResponseMessage responseMessage) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnDefault(responseMessage, ref _returnNow); + // if overrideOnDefault has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // Error Response : default + // Unrecognized Response. Create an error record based on what we have. + var ex = new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.RestException(responseMessage); + WriteError( new global::System.Management.Automation.ErrorRecord(ex, ex.Code, global::System.Management.Automation.ErrorCategory.InvalidOperation, new { }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(ex.Message) { RecommendedAction = ex.Action } + }); + } + } + + /// a delegate that is called when the remote service returns 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/eventgrid/generated/cmdlets/RemoveAzEventGridEventChannel_Delete.cs b/swaggerci/eventgrid/generated/cmdlets/RemoveAzEventGridEventChannel_Delete.cs new file mode 100644 index 000000000000..8c422a21155e --- /dev/null +++ b/swaggerci/eventgrid/generated/cmdlets/RemoveAzEventGridEventChannel_Delete.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.EventGrid.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Extensions; + using System; + + /// Delete existing event channel. + /// + /// [OpenAPI] Delete=>DELETE:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.EventGrid/partnerNamespaces/{partnerNamespaceName}/eventChannels/{eventChannelName}" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsCommon.Remove, @"AzEventGridEventChannel_Delete", SupportsShouldProcess = true)] + [global::System.Management.Automation.OutputType(typeof(bool))] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Description(@"Delete existing event channel.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Generated] + public partial class RemoveAzEventGridEventChannel_Delete : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener + { + /// A unique id generatd for the this cmdlet when it is instantiated. + private string __correlationId = System.Guid.NewGuid().ToString(); + + /// A copy of the Invocation Info (necessary to allow asJob to clone this cmdlet) + private global::System.Management.Automation.InvocationInfo __invocationInfo; + + /// A unique id generatd for the 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.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.EventGridManagementClient Client => Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.ClientAPI; + + /// + /// The credentials, account, tenant, and subscription used for communication with Azure + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The credentials, account, tenant, and subscription used for communication with Azure.")] + [global::System.Management.Automation.ValidateNotNull] + [global::System.Management.Automation.Alias("AzureRMContext", "AzureCredential")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Azure)] + public global::System.Management.Automation.PSObject DefaultProfile { get; set; } + + /// SendAsync Pipeline Steps to be appended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be appended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[] HttpPipelineAppend { get; set; } + + /// SendAsync Pipeline Steps to be prepended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be prepended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[] HttpPipelinePrepend { get; set; } + + /// Accessor for our copy of the InvocationInfo. + public global::System.Management.Automation.InvocationInfo InvocationInformation { get => __invocationInfo = __invocationInfo ?? this.MyInvocation ; set { __invocationInfo = value; } } + + /// + /// cancellation delegate. Stops the cmdlet when called. + /// + global::System.Action Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener.Token => _cancellationTokenSource.Token; + + /// Backing field for property. + private string _name; + + /// Name of the event channel. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Name of the event channel.")] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Name of the event channel.", + SerializedName = @"eventChannelName", + PossibleTypes = new [] { typeof(string) })] + [global::System.Management.Automation.Alias("EventChannelName")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Path)] + public string Name { get => this._name; set => this._name = value; } + + /// + /// when specified, will make the remote call, and return an AsyncOperationResponse, letting the remote operation continue + /// asynchronously. + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Run the command asynchronously")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter NoWait { get; set; } + + /// Backing field for property. + private string _partnerNamespaceName; + + /// Name of the partner namespace. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Name of the partner namespace.")] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Name of the partner namespace.", + SerializedName = @"partnerNamespaceName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Path)] + public string PartnerNamespaceName { get => this._partnerNamespaceName; set => this._partnerNamespaceName = 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.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Runtime.HttpPipeline Pipeline { get; set; } + + /// The URI for the proxy server to use + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "The URI for the proxy server to use")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Uri Proxy { get; set; } + + /// Credentials for a proxy server to use for the remote call + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Credentials for a proxy server to use for the remote call")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Management.Automation.PSCredential ProxyCredential { get; set; } + + /// Use the default credentials for the proxy + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Use the default credentials for the proxy")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter ProxyUseDefaultCredentials { get; set; } + + /// Backing field for property. + private string _resourceGroupName; + + /// The name of the resource group within the user's subscription. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the resource group within the user's subscription.")] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the resource group within the user's subscription.", + SerializedName = @"resourceGroupName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Path)] + public string ResourceGroupName { get => this._resourceGroupName; set => this._resourceGroupName = value; } + + /// Backing field for property. + private string _subscriptionId; + + /// + /// Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription ID forms part of the + /// URI for every service call. + /// + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.")] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.", + SerializedName = @"subscriptionId", + PossibleTypes = new [] { typeof(string) })] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.DefaultInfo( + Name = @"", + Description =@"", + Script = @"(Get-AzContext).Subscription.Id")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Path)] + public string SubscriptionId { get => this._subscriptionId; set => this._subscriptionId = value; } + + /// + /// overrideOnDefault will be called before the regular onDefault has been processed, allowing customization of what + /// happens on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// /// Determines if the rest of the onDefault method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnDefault(global::System.Net.Http.HttpResponseMessage responseMessage, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnNoContent will be called before the regular onNoContent has been processed, allowing customization of + /// what happens on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// /// Determines if the rest of the onNoContent method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnNoContent(global::System.Net.Http.HttpResponseMessage responseMessage, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnOk will be called before the regular onOk has been processed, allowing customization of what happens + /// on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// /// Determines if the rest of the onOk method should be processed, or if the method should return + /// immediately (set to true to skip further processing ) + + partial void overrideOnOk(global::System.Net.Http.HttpResponseMessage responseMessage, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// (overrides the default BeginProcessing method in global::System.Management.Automation.PSCmdlet) + /// + protected override void BeginProcessing() + { + var telemetryId = Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.GetTelemetryId.Invoke(); + if (telemetryId != "" && telemetryId != "internal") + { + __correlationId = telemetryId; + } + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Creates a duplicate instance of this cmdlet (via JSON serialization). + /// a duplicate instance of RemoveAzEventGridEventChannel_Delete + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Cmdlets.RemoveAzEventGridEventChannel_Delete Clone() + { + var clone = new RemoveAzEventGridEventChannel_Delete(); + clone.__correlationId = this.__correlationId; + clone.__processRecordId = this.__processRecordId; + clone.DefaultProfile = this.DefaultProfile; + clone.InvocationInformation = this.InvocationInformation; + clone.Proxy = this.Proxy; + clone.Pipeline = this.Pipeline; + clone.AsJob = this.AsJob; + clone.Break = this.Break; + clone.ProxyCredential = this.ProxyCredential; + clone.ProxyUseDefaultCredentials = this.ProxyUseDefaultCredentials; + clone.HttpPipelinePrepend = this.HttpPipelinePrepend; + clone.HttpPipelineAppend = this.HttpPipelineAppend; + clone.SubscriptionId = this.SubscriptionId; + clone.ResourceGroupName = this.ResourceGroupName; + clone.PartnerNamespaceName = this.PartnerNamespaceName; + clone.Name = this.Name; + return clone; + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + + } + + /// Handles/Dispatches events during the call to the REST service. + /// The message id + /// The message cancellation token. When this call is cancelled, this should be true + /// Detailed message data for the message event. + /// + /// A that will be complete when handling of the message is completed. + /// + async global::System.Threading.Tasks.Task Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener.Signal(string id, global::System.Threading.CancellationToken token, global::System.Func messageData) + { + using( NoSynchronizationContext ) + { + if (token.IsCancellationRequested) + { + return ; + } + + switch ( id ) + { + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.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.EventGrid.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.EventGrid.Runtime.PowerShell.AsyncOperationResponse { Target = uri }); + // do nothing more. + data.Cancel(); + return; + } + } + break; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.EventData ), InvocationInformation, this.ParameterSetName, __correlationId, __processRecordId, null ); + if (token.IsCancellationRequested) + { + return ; + } + WriteDebug($"{id}: {(messageData().Message ?? global::System.String.Empty)}"); + } + } + + /// Performs execution of the command. + protected override void ProcessRecord() + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + if (ShouldProcess($"Call remote 'EventChannelsDelete' operation")) + { + if (true == MyInvocation?.BoundParameters?.ContainsKey("AsJob")) + { + var instance = this.Clone(); + var job = new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token); + } + } + } + } + catch (global::System.AggregateException aggregateException) + { + // unroll the inner exceptions to get the root cause + foreach( var innerException in aggregateException.Flatten().InnerExceptions ) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(innerException,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + } + catch (global::System.Exception exception) when ((exception as System.Management.Automation.PipelineStoppedException)== null || (exception as System.Management.Automation.PipelineStoppedException).InnerException != null) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(exception,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + finally + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletProcessRecordEnd).Wait(); + } + } + + /// Performs execution of the command, working asynchronously if required. + /// + /// A that will be complete when handling of the method is completed. + /// + protected async global::System.Threading.Tasks.Task ProcessRecordAsync() + { + using( NoSynchronizationContext ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await this.Client.EventChannelsDelete(SubscriptionId, ResourceGroupName, PartnerNamespaceName, Name, onOk, onNoContent, onDefault, this, Pipeline); + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.UndeclaredResponseException urexception) + { + WriteError(new global::System.Management.Automation.ErrorRecord(urexception, urexception.StatusCode.ToString(), global::System.Management.Automation.ErrorCategory.InvalidOperation, new { SubscriptionId=SubscriptionId,ResourceGroupName=ResourceGroupName,PartnerNamespaceName=PartnerNamespaceName,Name=Name}) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(urexception.Message) { RecommendedAction = urexception.Action } + }); + } + finally + { + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// + /// Intializes a new instance of the cmdlet class. + /// + public RemoveAzEventGridEventChannel_Delete() + { + + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Cancel(); + base.StopProcessing(); + } + + /// + /// a delegate that is called when the remote service returns default (any response code not handled elsewhere). + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onDefault(global::System.Net.Http.HttpResponseMessage responseMessage) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnDefault(responseMessage, ref _returnNow); + // if overrideOnDefault has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // Error Response : default + // Unrecognized Response. Create an error record based on what we have. + var ex = new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.RestException(responseMessage); + WriteError( new global::System.Management.Automation.ErrorRecord(ex, ex.Code, global::System.Management.Automation.ErrorCategory.InvalidOperation, new { SubscriptionId=SubscriptionId, ResourceGroupName=ResourceGroupName, PartnerNamespaceName=PartnerNamespaceName, Name=Name }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(ex.Message) { RecommendedAction = ex.Action } + }); + } + } + + /// 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/eventgrid/generated/cmdlets/RemoveAzEventGridEventChannel_DeleteViaIdentity.cs b/swaggerci/eventgrid/generated/cmdlets/RemoveAzEventGridEventChannel_DeleteViaIdentity.cs new file mode 100644 index 000000000000..e8198c1881db --- /dev/null +++ b/swaggerci/eventgrid/generated/cmdlets/RemoveAzEventGridEventChannel_DeleteViaIdentity.cs @@ -0,0 +1,475 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Extensions; + using System; + + /// Delete existing event channel. + /// + /// [OpenAPI] Delete=>DELETE:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.EventGrid/partnerNamespaces/{partnerNamespaceName}/eventChannels/{eventChannelName}" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsCommon.Remove, @"AzEventGridEventChannel_DeleteViaIdentity", SupportsShouldProcess = true)] + [global::System.Management.Automation.OutputType(typeof(bool))] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Description(@"Delete existing event channel.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Generated] + public partial class RemoveAzEventGridEventChannel_DeleteViaIdentity : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener + { + /// A unique id generatd for the this cmdlet when it is instantiated. + private string __correlationId = System.Guid.NewGuid().ToString(); + + /// A copy of the Invocation Info (necessary to allow asJob to clone this cmdlet) + private global::System.Management.Automation.InvocationInfo __invocationInfo; + + /// A unique id generatd for the 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.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.EventGridManagementClient Client => Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.ClientAPI; + + /// + /// The credentials, account, tenant, and subscription used for communication with Azure + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The credentials, account, tenant, and subscription used for communication with Azure.")] + [global::System.Management.Automation.ValidateNotNull] + [global::System.Management.Automation.Alias("AzureRMContext", "AzureCredential")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Azure)] + public global::System.Management.Automation.PSObject DefaultProfile { get; set; } + + /// SendAsync Pipeline Steps to be appended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be appended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[] HttpPipelineAppend { get; set; } + + /// SendAsync Pipeline Steps to be prepended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be prepended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[] HttpPipelinePrepend { get; set; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.IEventGridIdentity _inputObject; + + /// Identity Parameter + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Identity Parameter", ValueFromPipeline = true)] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Path)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.IEventGridIdentity InputObject { get => this._inputObject; set => this._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.EventGrid.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter NoWait { get; set; } + + /// + /// When specified, forces the cmdlet return a 'bool' given that there isn't a return type by default. + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Returns true when the command succeeds")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Runtime.HttpPipeline Pipeline { get; set; } + + /// The URI for the proxy server to use + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "The URI for the proxy server to use")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Uri Proxy { get; set; } + + /// Credentials for a proxy server to use for the remote call + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Credentials for a proxy server to use for the remote call")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Management.Automation.PSCredential ProxyCredential { get; set; } + + /// Use the default credentials for the proxy + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Use the default credentials for the proxy")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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. + /// /// Determines if the rest of the onDefault method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnDefault(global::System.Net.Http.HttpResponseMessage responseMessage, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnNoContent will be called before the regular onNoContent has been processed, allowing customization of + /// what happens on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// /// Determines if the rest of the onNoContent method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnNoContent(global::System.Net.Http.HttpResponseMessage responseMessage, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnOk will be called before the regular onOk has been processed, allowing customization of what happens + /// on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// /// Determines if the rest of the onOk method should be processed, or if the method should return + /// immediately (set to true to skip further processing ) + + partial void overrideOnOk(global::System.Net.Http.HttpResponseMessage responseMessage, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// (overrides the default BeginProcessing method in global::System.Management.Automation.PSCmdlet) + /// + protected override void BeginProcessing() + { + var telemetryId = Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.GetTelemetryId.Invoke(); + if (telemetryId != "" && telemetryId != "internal") + { + __correlationId = telemetryId; + } + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Creates a duplicate instance of this cmdlet (via JSON serialization). + /// a duplicate instance of RemoveAzEventGridEventChannel_DeleteViaIdentity + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Cmdlets.RemoveAzEventGridEventChannel_DeleteViaIdentity Clone() + { + var clone = new RemoveAzEventGridEventChannel_DeleteViaIdentity(); + clone.__correlationId = this.__correlationId; + clone.__processRecordId = this.__processRecordId; + clone.DefaultProfile = this.DefaultProfile; + clone.InvocationInformation = this.InvocationInformation; + clone.Proxy = this.Proxy; + clone.Pipeline = this.Pipeline; + clone.AsJob = this.AsJob; + clone.Break = this.Break; + clone.ProxyCredential = this.ProxyCredential; + clone.ProxyUseDefaultCredentials = this.ProxyUseDefaultCredentials; + clone.HttpPipelinePrepend = this.HttpPipelinePrepend; + clone.HttpPipelineAppend = this.HttpPipelineAppend; + return clone; + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + + } + + /// Handles/Dispatches events during the call to the REST service. + /// The message id + /// The message cancellation token. When this call is cancelled, this should be true + /// Detailed message data for the message event. + /// + /// A that will be complete when handling of the message is completed. + /// + async global::System.Threading.Tasks.Task Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener.Signal(string id, global::System.Threading.CancellationToken token, global::System.Func messageData) + { + using( NoSynchronizationContext ) + { + if (token.IsCancellationRequested) + { + return ; + } + + switch ( id ) + { + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.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.EventGrid.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.EventGrid.Runtime.PowerShell.AsyncOperationResponse { Target = uri }); + // do nothing more. + data.Cancel(); + return; + } + } + break; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.EventData ), InvocationInformation, this.ParameterSetName, __correlationId, __processRecordId, null ); + if (token.IsCancellationRequested) + { + return ; + } + WriteDebug($"{id}: {(messageData().Message ?? global::System.String.Empty)}"); + } + } + + /// Performs execution of the command. + protected override void ProcessRecord() + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + if (ShouldProcess($"Call remote 'EventChannelsDelete' operation")) + { + if (true == MyInvocation?.BoundParameters?.ContainsKey("AsJob")) + { + var instance = this.Clone(); + var job = new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token); + } + } + } + } + catch (global::System.AggregateException aggregateException) + { + // unroll the inner exceptions to get the root cause + foreach( var innerException in aggregateException.Flatten().InnerExceptions ) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(innerException,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + } + catch (global::System.Exception exception) when ((exception as System.Management.Automation.PipelineStoppedException)== null || (exception as System.Management.Automation.PipelineStoppedException).InnerException != null) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(exception,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + finally + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletProcessRecordEnd).Wait(); + } + } + + /// Performs execution of the command, working asynchronously if required. + /// + /// A that will be complete when handling of the method is completed. + /// + protected async global::System.Threading.Tasks.Task ProcessRecordAsync() + { + using( NoSynchronizationContext ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + if (InputObject?.Id != null) + { + await this.Client.EventChannelsDeleteViaIdentity(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.PartnerNamespaceName) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.PartnerNamespaceName"),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, InputObject) ); + } + if (null == InputObject.EventChannelName) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.EventChannelName"),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, InputObject) ); + } + await this.Client.EventChannelsDelete(InputObject.SubscriptionId ?? null, InputObject.ResourceGroupName ?? null, InputObject.PartnerNamespaceName ?? null, InputObject.EventChannelName ?? null, onOk, onNoContent, onDefault, this, Pipeline); + } + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// + /// Intializes a new instance of the cmdlet class. + /// + public RemoveAzEventGridEventChannel_DeleteViaIdentity() + { + + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Cancel(); + base.StopProcessing(); + } + + /// + /// a delegate that is called when the remote service returns default (any response code not handled elsewhere). + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onDefault(global::System.Net.Http.HttpResponseMessage responseMessage) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnDefault(responseMessage, ref _returnNow); + // if overrideOnDefault has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // Error Response : default + // Unrecognized Response. Create an error record based on what we have. + var ex = new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.RestException(responseMessage); + WriteError( new global::System.Management.Automation.ErrorRecord(ex, ex.Code, global::System.Management.Automation.ErrorCategory.InvalidOperation, new { }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(ex.Message) { RecommendedAction = ex.Action } + }); + } + } + + /// a delegate that is called when the remote service returns 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/eventgrid/generated/cmdlets/RemoveAzEventGridEventSubscription_Delete.cs b/swaggerci/eventgrid/generated/cmdlets/RemoveAzEventGridEventSubscription_Delete.cs new file mode 100644 index 000000000000..608b0c06dffa --- /dev/null +++ b/swaggerci/eventgrid/generated/cmdlets/RemoveAzEventGridEventSubscription_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.EventGrid.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Extensions; + using System; + + /// Delete an existing event subscription. + /// + /// [OpenAPI] Delete=>DELETE:"/{scope}/providers/Microsoft.EventGrid/eventSubscriptions/{eventSubscriptionName}" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsCommon.Remove, @"AzEventGridEventSubscription_Delete", SupportsShouldProcess = true)] + [global::System.Management.Automation.OutputType(typeof(bool))] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Description(@"Delete an existing event subscription.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Generated] + public partial class RemoveAzEventGridEventSubscription_Delete : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener + { + /// A unique id generatd for the this cmdlet when it is instantiated. + private string __correlationId = System.Guid.NewGuid().ToString(); + + /// A copy of the Invocation Info (necessary to allow asJob to clone this cmdlet) + private global::System.Management.Automation.InvocationInfo __invocationInfo; + + /// A unique id generatd for the 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.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.EventGridManagementClient Client => Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.ClientAPI; + + /// + /// The credentials, account, tenant, and subscription used for communication with Azure + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The credentials, account, tenant, and subscription used for communication with Azure.")] + [global::System.Management.Automation.ValidateNotNull] + [global::System.Management.Automation.Alias("AzureRMContext", "AzureCredential")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Azure)] + public global::System.Management.Automation.PSObject DefaultProfile { get; set; } + + /// SendAsync Pipeline Steps to be appended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be appended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[] HttpPipelineAppend { get; set; } + + /// SendAsync Pipeline Steps to be prepended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be prepended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[] HttpPipelinePrepend { get; set; } + + /// Accessor for our copy of the InvocationInfo. + public global::System.Management.Automation.InvocationInfo InvocationInformation { get => __invocationInfo = __invocationInfo ?? this.MyInvocation ; set { __invocationInfo = value; } } + + /// + /// cancellation delegate. Stops the cmdlet when called. + /// + global::System.Action Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener.Token => _cancellationTokenSource.Token; + + /// Backing field for property. + private string _name; + + /// Name of the event subscription. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Name of the event subscription.")] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Name of the event subscription.", + SerializedName = @"eventSubscriptionName", + PossibleTypes = new [] { typeof(string) })] + [global::System.Management.Automation.Alias("EventSubscriptionName")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Path)] + public string Name { get => this._name; set => this._name = value; } + + /// + /// when specified, will make the remote call, and return an AsyncOperationResponse, letting the remote operation continue + /// asynchronously. + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Run the command asynchronously")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter NoWait { get; set; } + + /// + /// When specified, forces the cmdlet return a 'bool' given that there isn't a return type by default. + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Returns true when the command succeeds")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Runtime.HttpPipeline Pipeline { get; set; } + + /// The URI for the proxy server to use + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "The URI for the proxy server to use")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Uri Proxy { get; set; } + + /// Credentials for a proxy server to use for the remote call + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Credentials for a proxy server to use for the remote call")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Management.Automation.PSCredential ProxyCredential { get; set; } + + /// Use the default credentials for the proxy + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Use the default credentials for the proxy")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter ProxyUseDefaultCredentials { get; set; } + + /// Backing field for property. + private string _scope; + + /// + /// The scope of the event subscription. The scope can be a subscription, or a resource group, or a top level resource belonging + /// to a resource provider namespace, or an EventGrid topic. For example, use '/subscriptions/{subscriptionId}/' for a subscription, + /// '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}' for a resource group, and '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}' + /// for a resource, and '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.EventGrid/topics/{topicName}' + /// for an EventGrid topic. + /// + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The scope of the event subscription. The scope can be a subscription, or a resource group, or a top level resource belonging to a resource provider namespace, or an EventGrid topic. For example, use '/subscriptions/{subscriptionId}/' for a subscription, '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}' for a resource group, and '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}' for a resource, and '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.EventGrid/topics/{topicName}' for an EventGrid topic.")] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The scope of the event subscription. The scope can be a subscription, or a resource group, or a top level resource belonging to a resource provider namespace, or an EventGrid topic. For example, use '/subscriptions/{subscriptionId}/' for a subscription, '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}' for a resource group, and '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}' for a resource, and '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.EventGrid/topics/{topicName}' for an EventGrid topic.", + SerializedName = @"scope", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Path)] + public string Scope { get => this._scope; set => this._scope = value; } + + /// + /// overrideOnDefault will be called before the regular onDefault has been processed, allowing customization of what + /// happens on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// /// Determines if the rest of the onDefault method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnDefault(global::System.Net.Http.HttpResponseMessage responseMessage, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnNoContent will be called before the regular onNoContent has been processed, allowing customization of + /// what happens on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// /// Determines if the rest of the onNoContent method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnNoContent(global::System.Net.Http.HttpResponseMessage responseMessage, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnOk will be called before the regular onOk has been processed, allowing customization of what happens + /// on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// /// Determines if the rest of the onOk method should be processed, or if the method should return + /// immediately (set to true to skip further processing ) + + partial void overrideOnOk(global::System.Net.Http.HttpResponseMessage responseMessage, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// (overrides the default BeginProcessing method in global::System.Management.Automation.PSCmdlet) + /// + protected override void BeginProcessing() + { + var telemetryId = Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.GetTelemetryId.Invoke(); + if (telemetryId != "" && telemetryId != "internal") + { + __correlationId = telemetryId; + } + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Creates a duplicate instance of this cmdlet (via JSON serialization). + /// a duplicate instance of RemoveAzEventGridEventSubscription_Delete + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Cmdlets.RemoveAzEventGridEventSubscription_Delete Clone() + { + var clone = new RemoveAzEventGridEventSubscription_Delete(); + clone.__correlationId = this.__correlationId; + clone.__processRecordId = this.__processRecordId; + clone.DefaultProfile = this.DefaultProfile; + clone.InvocationInformation = this.InvocationInformation; + clone.Proxy = this.Proxy; + clone.Pipeline = this.Pipeline; + clone.AsJob = this.AsJob; + clone.Break = this.Break; + clone.ProxyCredential = this.ProxyCredential; + clone.ProxyUseDefaultCredentials = this.ProxyUseDefaultCredentials; + clone.HttpPipelinePrepend = this.HttpPipelinePrepend; + clone.HttpPipelineAppend = this.HttpPipelineAppend; + clone.Scope = this.Scope; + clone.Name = this.Name; + return clone; + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + + } + + /// Handles/Dispatches events during the call to the REST service. + /// The message id + /// The message cancellation token. When this call is cancelled, this should be true + /// Detailed message data for the message event. + /// + /// A that will be complete when handling of the message is completed. + /// + async global::System.Threading.Tasks.Task Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener.Signal(string id, global::System.Threading.CancellationToken token, global::System.Func messageData) + { + using( NoSynchronizationContext ) + { + if (token.IsCancellationRequested) + { + return ; + } + + switch ( id ) + { + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.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.EventGrid.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.EventGrid.Runtime.PowerShell.AsyncOperationResponse { Target = uri }); + // do nothing more. + data.Cancel(); + return; + } + } + break; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.EventData ), InvocationInformation, this.ParameterSetName, __correlationId, __processRecordId, null ); + if (token.IsCancellationRequested) + { + return ; + } + WriteDebug($"{id}: {(messageData().Message ?? global::System.String.Empty)}"); + } + } + + /// Performs execution of the command. + protected override void ProcessRecord() + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + if (ShouldProcess($"Call remote 'EventSubscriptionsDelete' operation")) + { + if (true == MyInvocation?.BoundParameters?.ContainsKey("AsJob")) + { + var instance = this.Clone(); + var job = new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token); + } + } + } + } + catch (global::System.AggregateException aggregateException) + { + // unroll the inner exceptions to get the root cause + foreach( var innerException in aggregateException.Flatten().InnerExceptions ) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(innerException,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + } + catch (global::System.Exception exception) when ((exception as System.Management.Automation.PipelineStoppedException)== null || (exception as System.Management.Automation.PipelineStoppedException).InnerException != null) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(exception,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + finally + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletProcessRecordEnd).Wait(); + } + } + + /// Performs execution of the command, working asynchronously if required. + /// + /// A that will be complete when handling of the method is completed. + /// + protected async global::System.Threading.Tasks.Task ProcessRecordAsync() + { + using( NoSynchronizationContext ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await this.Client.EventSubscriptionsDelete(Scope, Name, onOk, onNoContent, onDefault, this, Pipeline); + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.UndeclaredResponseException urexception) + { + WriteError(new global::System.Management.Automation.ErrorRecord(urexception, urexception.StatusCode.ToString(), global::System.Management.Automation.ErrorCategory.InvalidOperation, new { Scope=Scope,Name=Name}) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(urexception.Message) { RecommendedAction = urexception.Action } + }); + } + finally + { + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// + /// Intializes a new instance of the cmdlet class. + /// + public RemoveAzEventGridEventSubscription_Delete() + { + + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Cancel(); + base.StopProcessing(); + } + + /// + /// a delegate that is called when the remote service returns default (any response code not handled elsewhere). + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onDefault(global::System.Net.Http.HttpResponseMessage responseMessage) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnDefault(responseMessage, ref _returnNow); + // if overrideOnDefault has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // Error Response : default + // Unrecognized Response. Create an error record based on what we have. + var ex = new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.RestException(responseMessage); + WriteError( new global::System.Management.Automation.ErrorRecord(ex, ex.Code, global::System.Management.Automation.ErrorCategory.InvalidOperation, new { Scope=Scope, Name=Name }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(ex.Message) { RecommendedAction = ex.Action } + }); + } + } + + /// 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/eventgrid/generated/cmdlets/RemoveAzEventGridEventSubscription_DeleteViaIdentity.cs b/swaggerci/eventgrid/generated/cmdlets/RemoveAzEventGridEventSubscription_DeleteViaIdentity.cs new file mode 100644 index 000000000000..95a2181bd2ef --- /dev/null +++ b/swaggerci/eventgrid/generated/cmdlets/RemoveAzEventGridEventSubscription_DeleteViaIdentity.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.EventGrid.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Extensions; + using System; + + /// Delete an existing event subscription. + /// + /// [OpenAPI] Delete=>DELETE:"/{scope}/providers/Microsoft.EventGrid/eventSubscriptions/{eventSubscriptionName}" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsCommon.Remove, @"AzEventGridEventSubscription_DeleteViaIdentity", SupportsShouldProcess = true)] + [global::System.Management.Automation.OutputType(typeof(bool))] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Description(@"Delete an existing event subscription.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Generated] + public partial class RemoveAzEventGridEventSubscription_DeleteViaIdentity : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener + { + /// A unique id generatd for the this cmdlet when it is instantiated. + private string __correlationId = System.Guid.NewGuid().ToString(); + + /// A copy of the Invocation Info (necessary to allow asJob to clone this cmdlet) + private global::System.Management.Automation.InvocationInfo __invocationInfo; + + /// A unique id generatd for the 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.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.EventGridManagementClient Client => Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.ClientAPI; + + /// + /// The credentials, account, tenant, and subscription used for communication with Azure + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The credentials, account, tenant, and subscription used for communication with Azure.")] + [global::System.Management.Automation.ValidateNotNull] + [global::System.Management.Automation.Alias("AzureRMContext", "AzureCredential")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Azure)] + public global::System.Management.Automation.PSObject DefaultProfile { get; set; } + + /// SendAsync Pipeline Steps to be appended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be appended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[] HttpPipelineAppend { get; set; } + + /// SendAsync Pipeline Steps to be prepended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be prepended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[] HttpPipelinePrepend { get; set; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.IEventGridIdentity _inputObject; + + /// Identity Parameter + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Identity Parameter", ValueFromPipeline = true)] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Path)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.IEventGridIdentity InputObject { get => this._inputObject; set => this._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.EventGrid.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter NoWait { get; set; } + + /// + /// When specified, forces the cmdlet return a 'bool' given that there isn't a return type by default. + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Returns true when the command succeeds")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Runtime.HttpPipeline Pipeline { get; set; } + + /// The URI for the proxy server to use + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "The URI for the proxy server to use")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Uri Proxy { get; set; } + + /// Credentials for a proxy server to use for the remote call + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Credentials for a proxy server to use for the remote call")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Management.Automation.PSCredential ProxyCredential { get; set; } + + /// Use the default credentials for the proxy + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Use the default credentials for the proxy")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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. + /// /// Determines if the rest of the onDefault method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnDefault(global::System.Net.Http.HttpResponseMessage responseMessage, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnNoContent will be called before the regular onNoContent has been processed, allowing customization of + /// what happens on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// /// Determines if the rest of the onNoContent method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnNoContent(global::System.Net.Http.HttpResponseMessage responseMessage, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnOk will be called before the regular onOk has been processed, allowing customization of what happens + /// on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// /// Determines if the rest of the onOk method should be processed, or if the method should return + /// immediately (set to true to skip further processing ) + + partial void overrideOnOk(global::System.Net.Http.HttpResponseMessage responseMessage, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// (overrides the default BeginProcessing method in global::System.Management.Automation.PSCmdlet) + /// + protected override void BeginProcessing() + { + var telemetryId = Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.GetTelemetryId.Invoke(); + if (telemetryId != "" && telemetryId != "internal") + { + __correlationId = telemetryId; + } + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Creates a duplicate instance of this cmdlet (via JSON serialization). + /// a duplicate instance of RemoveAzEventGridEventSubscription_DeleteViaIdentity + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Cmdlets.RemoveAzEventGridEventSubscription_DeleteViaIdentity Clone() + { + var clone = new RemoveAzEventGridEventSubscription_DeleteViaIdentity(); + clone.__correlationId = this.__correlationId; + clone.__processRecordId = this.__processRecordId; + clone.DefaultProfile = this.DefaultProfile; + clone.InvocationInformation = this.InvocationInformation; + clone.Proxy = this.Proxy; + clone.Pipeline = this.Pipeline; + clone.AsJob = this.AsJob; + clone.Break = this.Break; + clone.ProxyCredential = this.ProxyCredential; + clone.ProxyUseDefaultCredentials = this.ProxyUseDefaultCredentials; + clone.HttpPipelinePrepend = this.HttpPipelinePrepend; + clone.HttpPipelineAppend = this.HttpPipelineAppend; + return clone; + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + + } + + /// Handles/Dispatches events during the call to the REST service. + /// The message id + /// The message cancellation token. When this call is cancelled, this should be true + /// Detailed message data for the message event. + /// + /// A that will be complete when handling of the message is completed. + /// + async global::System.Threading.Tasks.Task Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener.Signal(string id, global::System.Threading.CancellationToken token, global::System.Func messageData) + { + using( NoSynchronizationContext ) + { + if (token.IsCancellationRequested) + { + return ; + } + + switch ( id ) + { + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.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.EventGrid.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.EventGrid.Runtime.PowerShell.AsyncOperationResponse { Target = uri }); + // do nothing more. + data.Cancel(); + return; + } + } + break; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.EventData ), InvocationInformation, this.ParameterSetName, __correlationId, __processRecordId, null ); + if (token.IsCancellationRequested) + { + return ; + } + WriteDebug($"{id}: {(messageData().Message ?? global::System.String.Empty)}"); + } + } + + /// Performs execution of the command. + protected override void ProcessRecord() + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + if (ShouldProcess($"Call remote 'EventSubscriptionsDelete' operation")) + { + if (true == MyInvocation?.BoundParameters?.ContainsKey("AsJob")) + { + var instance = this.Clone(); + var job = new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token); + } + } + } + } + catch (global::System.AggregateException aggregateException) + { + // unroll the inner exceptions to get the root cause + foreach( var innerException in aggregateException.Flatten().InnerExceptions ) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(innerException,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + } + catch (global::System.Exception exception) when ((exception as System.Management.Automation.PipelineStoppedException)== null || (exception as System.Management.Automation.PipelineStoppedException).InnerException != null) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(exception,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + finally + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletProcessRecordEnd).Wait(); + } + } + + /// Performs execution of the command, working asynchronously if required. + /// + /// A that will be complete when handling of the method is completed. + /// + protected async global::System.Threading.Tasks.Task ProcessRecordAsync() + { + using( NoSynchronizationContext ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + if (InputObject?.Id != null) + { + await this.Client.EventSubscriptionsDeleteViaIdentity(InputObject.Id, onOk, onNoContent, onDefault, this, Pipeline); + } + else + { + // try to call with PATH parameters from Input Object + if (null == InputObject.Scope) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.Scope"),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, InputObject) ); + } + if (null == InputObject.EventSubscriptionName) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.EventSubscriptionName"),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, InputObject) ); + } + await this.Client.EventSubscriptionsDelete(InputObject.Scope ?? null, InputObject.EventSubscriptionName ?? null, onOk, onNoContent, onDefault, this, Pipeline); + } + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// + /// Intializes a new instance of the cmdlet class. + /// + public RemoveAzEventGridEventSubscription_DeleteViaIdentity() + { + + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Cancel(); + base.StopProcessing(); + } + + /// + /// a delegate that is called when the remote service returns default (any response code not handled elsewhere). + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onDefault(global::System.Net.Http.HttpResponseMessage responseMessage) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnDefault(responseMessage, ref _returnNow); + // if overrideOnDefault has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // Error Response : default + // Unrecognized Response. Create an error record based on what we have. + var ex = new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.RestException(responseMessage); + WriteError( new global::System.Management.Automation.ErrorRecord(ex, ex.Code, global::System.Management.Automation.ErrorCategory.InvalidOperation, new { }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(ex.Message) { RecommendedAction = ex.Action } + }); + } + } + + /// a delegate that is called when the remote service returns 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/eventgrid/generated/cmdlets/RemoveAzEventGridPartnerConfiguration_Delete.cs b/swaggerci/eventgrid/generated/cmdlets/RemoveAzEventGridPartnerConfiguration_Delete.cs new file mode 100644 index 000000000000..6eb7ae68091a --- /dev/null +++ b/swaggerci/eventgrid/generated/cmdlets/RemoveAzEventGridPartnerConfiguration_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.EventGrid.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Extensions; + using System; + + /// Delete existing partner configuration. + /// + /// [OpenAPI] Delete=>DELETE:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.EventGrid/partnerConfigurations/default" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsCommon.Remove, @"AzEventGridPartnerConfiguration_Delete", SupportsShouldProcess = true)] + [global::System.Management.Automation.OutputType(typeof(bool))] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Description(@"Delete existing partner configuration.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Generated] + public partial class RemoveAzEventGridPartnerConfiguration_Delete : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener + { + /// A unique id generatd for the this cmdlet when it is instantiated. + private string __correlationId = System.Guid.NewGuid().ToString(); + + /// A copy of the Invocation Info (necessary to allow asJob to clone this cmdlet) + private global::System.Management.Automation.InvocationInfo __invocationInfo; + + /// A unique id generatd for the 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.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.EventGridManagementClient Client => Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.ClientAPI; + + /// + /// The credentials, account, tenant, and subscription used for communication with Azure + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The credentials, account, tenant, and subscription used for communication with Azure.")] + [global::System.Management.Automation.ValidateNotNull] + [global::System.Management.Automation.Alias("AzureRMContext", "AzureCredential")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Azure)] + public global::System.Management.Automation.PSObject DefaultProfile { get; set; } + + /// SendAsync Pipeline Steps to be appended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be appended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[] HttpPipelineAppend { get; set; } + + /// SendAsync Pipeline Steps to be prepended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be prepended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[] HttpPipelinePrepend { get; set; } + + /// Accessor for our copy of the InvocationInfo. + public global::System.Management.Automation.InvocationInfo InvocationInformation { get => __invocationInfo = __invocationInfo ?? this.MyInvocation ; set { __invocationInfo = value; } } + + /// + /// cancellation delegate. Stops the cmdlet when called. + /// + global::System.Action Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter NoWait { get; set; } + + /// + /// When specified, forces the cmdlet return a 'bool' given that there isn't a return type by default. + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Returns true when the command succeeds")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Runtime.HttpPipeline Pipeline { get; set; } + + /// The URI for the proxy server to use + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "The URI for the proxy server to use")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Uri Proxy { get; set; } + + /// Credentials for a proxy server to use for the remote call + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Credentials for a proxy server to use for the remote call")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Management.Automation.PSCredential ProxyCredential { get; set; } + + /// Use the default credentials for the proxy + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Use the default credentials for the proxy")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter ProxyUseDefaultCredentials { get; set; } + + /// Backing field for property. + private string _resourceGroupName; + + /// The name of the resource group within the user's subscription. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the resource group within the user's subscription.")] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the resource group within the user's subscription.", + SerializedName = @"resourceGroupName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Path)] + public string ResourceGroupName { get => this._resourceGroupName; set => this._resourceGroupName = value; } + + /// Backing field for property. + private string _subscriptionId; + + /// + /// Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription ID forms part of the + /// URI for every service call. + /// + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.")] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.", + SerializedName = @"subscriptionId", + PossibleTypes = new [] { typeof(string) })] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.DefaultInfo( + Name = @"", + Description =@"", + Script = @"(Get-AzContext).Subscription.Id")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Path)] + public string SubscriptionId { get => this._subscriptionId; set => this._subscriptionId = value; } + + /// + /// overrideOnDefault will be called before the regular onDefault has been processed, allowing customization of what + /// happens on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// /// Determines if the rest of the onDefault method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnDefault(global::System.Net.Http.HttpResponseMessage responseMessage, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnNoContent will be called before the regular onNoContent has been processed, allowing customization of + /// what happens on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// /// Determines if the rest of the onNoContent method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnNoContent(global::System.Net.Http.HttpResponseMessage responseMessage, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnOk will be called before the regular onOk has been processed, allowing customization of what happens + /// on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// /// Determines if the rest of the onOk method should be processed, or if the method should return + /// immediately (set to true to skip further processing ) + + partial void overrideOnOk(global::System.Net.Http.HttpResponseMessage responseMessage, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// (overrides the default BeginProcessing method in global::System.Management.Automation.PSCmdlet) + /// + protected override void BeginProcessing() + { + var telemetryId = Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.GetTelemetryId.Invoke(); + if (telemetryId != "" && telemetryId != "internal") + { + __correlationId = telemetryId; + } + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Creates a duplicate instance of this cmdlet (via JSON serialization). + /// a duplicate instance of RemoveAzEventGridPartnerConfiguration_Delete + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Cmdlets.RemoveAzEventGridPartnerConfiguration_Delete Clone() + { + var clone = new RemoveAzEventGridPartnerConfiguration_Delete(); + clone.__correlationId = this.__correlationId; + clone.__processRecordId = this.__processRecordId; + clone.DefaultProfile = this.DefaultProfile; + clone.InvocationInformation = this.InvocationInformation; + clone.Proxy = this.Proxy; + clone.Pipeline = this.Pipeline; + clone.AsJob = this.AsJob; + clone.Break = this.Break; + clone.ProxyCredential = this.ProxyCredential; + clone.ProxyUseDefaultCredentials = this.ProxyUseDefaultCredentials; + clone.HttpPipelinePrepend = this.HttpPipelinePrepend; + clone.HttpPipelineAppend = this.HttpPipelineAppend; + clone.SubscriptionId = this.SubscriptionId; + clone.ResourceGroupName = this.ResourceGroupName; + return clone; + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + + } + + /// Handles/Dispatches events during the call to the REST service. + /// The message id + /// The message cancellation token. When this call is cancelled, this should be true + /// Detailed message data for the message event. + /// + /// A that will be complete when handling of the message is completed. + /// + async global::System.Threading.Tasks.Task Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener.Signal(string id, global::System.Threading.CancellationToken token, global::System.Func messageData) + { + using( NoSynchronizationContext ) + { + if (token.IsCancellationRequested) + { + return ; + } + + switch ( id ) + { + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.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.EventGrid.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.EventGrid.Runtime.PowerShell.AsyncOperationResponse { Target = uri }); + // do nothing more. + data.Cancel(); + return; + } + } + break; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.EventData ), InvocationInformation, this.ParameterSetName, __correlationId, __processRecordId, null ); + if (token.IsCancellationRequested) + { + return ; + } + WriteDebug($"{id}: {(messageData().Message ?? global::System.String.Empty)}"); + } + } + + /// Performs execution of the command. + protected override void ProcessRecord() + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + if (ShouldProcess($"Call remote 'PartnerConfigurationsDelete' operation")) + { + if (true == MyInvocation?.BoundParameters?.ContainsKey("AsJob")) + { + var instance = this.Clone(); + var job = new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token); + } + } + } + } + catch (global::System.AggregateException aggregateException) + { + // unroll the inner exceptions to get the root cause + foreach( var innerException in aggregateException.Flatten().InnerExceptions ) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(innerException,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + } + catch (global::System.Exception exception) when ((exception as System.Management.Automation.PipelineStoppedException)== null || (exception as System.Management.Automation.PipelineStoppedException).InnerException != null) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(exception,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + finally + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletProcessRecordEnd).Wait(); + } + } + + /// Performs execution of the command, working asynchronously if required. + /// + /// A that will be complete when handling of the method is completed. + /// + protected async global::System.Threading.Tasks.Task ProcessRecordAsync() + { + using( NoSynchronizationContext ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await this.Client.PartnerConfigurationsDelete(SubscriptionId, ResourceGroupName, onOk, onNoContent, onDefault, this, Pipeline); + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.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.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// + /// Intializes a new instance of the cmdlet class. + /// + public RemoveAzEventGridPartnerConfiguration_Delete() + { + + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Cancel(); + base.StopProcessing(); + } + + /// + /// a delegate that is called when the remote service returns default (any response code not handled elsewhere). + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onDefault(global::System.Net.Http.HttpResponseMessage responseMessage) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnDefault(responseMessage, ref _returnNow); + // if overrideOnDefault has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // Error Response : default + // Unrecognized Response. Create an error record based on what we have. + var ex = new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.RestException(responseMessage); + 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 } + }); + } + } + + /// 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/eventgrid/generated/cmdlets/RemoveAzEventGridPartnerConfiguration_DeleteViaIdentity.cs b/swaggerci/eventgrid/generated/cmdlets/RemoveAzEventGridPartnerConfiguration_DeleteViaIdentity.cs new file mode 100644 index 000000000000..e4239b4530a7 --- /dev/null +++ b/swaggerci/eventgrid/generated/cmdlets/RemoveAzEventGridPartnerConfiguration_DeleteViaIdentity.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.EventGrid.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Extensions; + using System; + + /// Delete existing partner configuration. + /// + /// [OpenAPI] Delete=>DELETE:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.EventGrid/partnerConfigurations/default" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsCommon.Remove, @"AzEventGridPartnerConfiguration_DeleteViaIdentity", SupportsShouldProcess = true)] + [global::System.Management.Automation.OutputType(typeof(bool))] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Description(@"Delete existing partner configuration.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Generated] + public partial class RemoveAzEventGridPartnerConfiguration_DeleteViaIdentity : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener + { + /// A unique id generatd for the this cmdlet when it is instantiated. + private string __correlationId = System.Guid.NewGuid().ToString(); + + /// A copy of the Invocation Info (necessary to allow asJob to clone this cmdlet) + private global::System.Management.Automation.InvocationInfo __invocationInfo; + + /// A unique id generatd for the 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.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.EventGridManagementClient Client => Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.ClientAPI; + + /// + /// The credentials, account, tenant, and subscription used for communication with Azure + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The credentials, account, tenant, and subscription used for communication with Azure.")] + [global::System.Management.Automation.ValidateNotNull] + [global::System.Management.Automation.Alias("AzureRMContext", "AzureCredential")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Azure)] + public global::System.Management.Automation.PSObject DefaultProfile { get; set; } + + /// SendAsync Pipeline Steps to be appended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be appended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[] HttpPipelineAppend { get; set; } + + /// SendAsync Pipeline Steps to be prepended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be prepended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[] HttpPipelinePrepend { get; set; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.IEventGridIdentity _inputObject; + + /// Identity Parameter + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Identity Parameter", ValueFromPipeline = true)] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Path)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.IEventGridIdentity InputObject { get => this._inputObject; set => this._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.EventGrid.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter NoWait { get; set; } + + /// + /// When specified, forces the cmdlet return a 'bool' given that there isn't a return type by default. + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Returns true when the command succeeds")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Runtime.HttpPipeline Pipeline { get; set; } + + /// The URI for the proxy server to use + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "The URI for the proxy server to use")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Uri Proxy { get; set; } + + /// Credentials for a proxy server to use for the remote call + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Credentials for a proxy server to use for the remote call")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Management.Automation.PSCredential ProxyCredential { get; set; } + + /// Use the default credentials for the proxy + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Use the default credentials for the proxy")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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. + /// /// Determines if the rest of the onDefault method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnDefault(global::System.Net.Http.HttpResponseMessage responseMessage, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnNoContent will be called before the regular onNoContent has been processed, allowing customization of + /// what happens on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// /// Determines if the rest of the onNoContent method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnNoContent(global::System.Net.Http.HttpResponseMessage responseMessage, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnOk will be called before the regular onOk has been processed, allowing customization of what happens + /// on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// /// Determines if the rest of the onOk method should be processed, or if the method should return + /// immediately (set to true to skip further processing ) + + partial void overrideOnOk(global::System.Net.Http.HttpResponseMessage responseMessage, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// (overrides the default BeginProcessing method in global::System.Management.Automation.PSCmdlet) + /// + protected override void BeginProcessing() + { + var telemetryId = Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.GetTelemetryId.Invoke(); + if (telemetryId != "" && telemetryId != "internal") + { + __correlationId = telemetryId; + } + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Creates a duplicate instance of this cmdlet (via JSON serialization). + /// a duplicate instance of RemoveAzEventGridPartnerConfiguration_DeleteViaIdentity + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Cmdlets.RemoveAzEventGridPartnerConfiguration_DeleteViaIdentity Clone() + { + var clone = new RemoveAzEventGridPartnerConfiguration_DeleteViaIdentity(); + clone.__correlationId = this.__correlationId; + clone.__processRecordId = this.__processRecordId; + clone.DefaultProfile = this.DefaultProfile; + clone.InvocationInformation = this.InvocationInformation; + clone.Proxy = this.Proxy; + clone.Pipeline = this.Pipeline; + clone.AsJob = this.AsJob; + clone.Break = this.Break; + clone.ProxyCredential = this.ProxyCredential; + clone.ProxyUseDefaultCredentials = this.ProxyUseDefaultCredentials; + clone.HttpPipelinePrepend = this.HttpPipelinePrepend; + clone.HttpPipelineAppend = this.HttpPipelineAppend; + return clone; + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + + } + + /// Handles/Dispatches events during the call to the REST service. + /// The message id + /// The message cancellation token. When this call is cancelled, this should be true + /// Detailed message data for the message event. + /// + /// A that will be complete when handling of the message is completed. + /// + async global::System.Threading.Tasks.Task Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener.Signal(string id, global::System.Threading.CancellationToken token, global::System.Func messageData) + { + using( NoSynchronizationContext ) + { + if (token.IsCancellationRequested) + { + return ; + } + + switch ( id ) + { + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.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.EventGrid.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.EventGrid.Runtime.PowerShell.AsyncOperationResponse { Target = uri }); + // do nothing more. + data.Cancel(); + return; + } + } + break; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.EventData ), InvocationInformation, this.ParameterSetName, __correlationId, __processRecordId, null ); + if (token.IsCancellationRequested) + { + return ; + } + WriteDebug($"{id}: {(messageData().Message ?? global::System.String.Empty)}"); + } + } + + /// Performs execution of the command. + protected override void ProcessRecord() + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + if (ShouldProcess($"Call remote 'PartnerConfigurationsDelete' operation")) + { + if (true == MyInvocation?.BoundParameters?.ContainsKey("AsJob")) + { + var instance = this.Clone(); + var job = new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token); + } + } + } + } + catch (global::System.AggregateException aggregateException) + { + // unroll the inner exceptions to get the root cause + foreach( var innerException in aggregateException.Flatten().InnerExceptions ) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(innerException,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + } + catch (global::System.Exception exception) when ((exception as System.Management.Automation.PipelineStoppedException)== null || (exception as System.Management.Automation.PipelineStoppedException).InnerException != null) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(exception,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + finally + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletProcessRecordEnd).Wait(); + } + } + + /// Performs execution of the command, working asynchronously if required. + /// + /// A that will be complete when handling of the method is completed. + /// + protected async global::System.Threading.Tasks.Task ProcessRecordAsync() + { + using( NoSynchronizationContext ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + if (InputObject?.Id != null) + { + await this.Client.PartnerConfigurationsDeleteViaIdentity(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) ); + } + await this.Client.PartnerConfigurationsDelete(InputObject.SubscriptionId ?? null, InputObject.ResourceGroupName ?? null, onOk, onNoContent, onDefault, this, Pipeline); + } + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// + /// Intializes a new instance of the cmdlet class. + /// + public RemoveAzEventGridPartnerConfiguration_DeleteViaIdentity() + { + + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Cancel(); + base.StopProcessing(); + } + + /// + /// a delegate that is called when the remote service returns default (any response code not handled elsewhere). + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onDefault(global::System.Net.Http.HttpResponseMessage responseMessage) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnDefault(responseMessage, ref _returnNow); + // if overrideOnDefault has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // Error Response : default + // Unrecognized Response. Create an error record based on what we have. + var ex = new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.RestException(responseMessage); + WriteError( new global::System.Management.Automation.ErrorRecord(ex, ex.Code, global::System.Management.Automation.ErrorCategory.InvalidOperation, new { }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(ex.Message) { RecommendedAction = ex.Action } + }); + } + } + + /// a delegate that is called when the remote service returns 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/eventgrid/generated/cmdlets/RemoveAzEventGridPartnerDestination_Delete.cs b/swaggerci/eventgrid/generated/cmdlets/RemoveAzEventGridPartnerDestination_Delete.cs new file mode 100644 index 000000000000..65ace379b916 --- /dev/null +++ b/swaggerci/eventgrid/generated/cmdlets/RemoveAzEventGridPartnerDestination_Delete.cs @@ -0,0 +1,496 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Extensions; + using System; + + /// Delete existing partner destination. + /// + /// [OpenAPI] Delete=>DELETE:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.EventGrid/partnerDestinations/{partnerDestinationName}" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsCommon.Remove, @"AzEventGridPartnerDestination_Delete", SupportsShouldProcess = true)] + [global::System.Management.Automation.OutputType(typeof(bool))] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Description(@"Delete existing partner destination.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Generated] + public partial class RemoveAzEventGridPartnerDestination_Delete : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener + { + /// A unique id generatd for the this cmdlet when it is instantiated. + private string __correlationId = System.Guid.NewGuid().ToString(); + + /// A copy of the Invocation Info (necessary to allow asJob to clone this cmdlet) + private global::System.Management.Automation.InvocationInfo __invocationInfo; + + /// A unique id generatd for the 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.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.EventGridManagementClient Client => Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.ClientAPI; + + /// + /// The credentials, account, tenant, and subscription used for communication with Azure + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The credentials, account, tenant, and subscription used for communication with Azure.")] + [global::System.Management.Automation.ValidateNotNull] + [global::System.Management.Automation.Alias("AzureRMContext", "AzureCredential")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Azure)] + public global::System.Management.Automation.PSObject DefaultProfile { get; set; } + + /// SendAsync Pipeline Steps to be appended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be appended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[] HttpPipelineAppend { get; set; } + + /// SendAsync Pipeline Steps to be prepended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be prepended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[] HttpPipelinePrepend { get; set; } + + /// Accessor for our copy of the InvocationInfo. + public global::System.Management.Automation.InvocationInfo InvocationInformation { get => __invocationInfo = __invocationInfo ?? this.MyInvocation ; set { __invocationInfo = value; } } + + /// + /// cancellation delegate. Stops the cmdlet when called. + /// + global::System.Action Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener.Token => _cancellationTokenSource.Token; + + /// Backing field for property. + private string _name; + + /// Name of the partner destination. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Name of the partner destination.")] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Name of the partner destination.", + SerializedName = @"partnerDestinationName", + PossibleTypes = new [] { typeof(string) })] + [global::System.Management.Automation.Alias("PartnerDestinationName")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Path)] + public string Name { get => this._name; set => this._name = value; } + + /// + /// when specified, will make the remote call, and return an AsyncOperationResponse, letting the remote operation continue + /// asynchronously. + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Run the command asynchronously")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter NoWait { get; set; } + + /// + /// When specified, forces the cmdlet return a 'bool' given that there isn't a return type by default. + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Returns true when the command succeeds")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Runtime.HttpPipeline Pipeline { get; set; } + + /// The URI for the proxy server to use + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "The URI for the proxy server to use")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Uri Proxy { get; set; } + + /// Credentials for a proxy server to use for the remote call + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Credentials for a proxy server to use for the remote call")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Management.Automation.PSCredential ProxyCredential { get; set; } + + /// Use the default credentials for the proxy + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Use the default credentials for the proxy")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter ProxyUseDefaultCredentials { get; set; } + + /// Backing field for property. + private string _resourceGroupName; + + /// The name of the resource group within the user's subscription. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the resource group within the user's subscription.")] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the resource group within the user's subscription.", + SerializedName = @"resourceGroupName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Path)] + public string ResourceGroupName { get => this._resourceGroupName; set => this._resourceGroupName = value; } + + /// Backing field for property. + private string _subscriptionId; + + /// + /// Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription ID forms part of the + /// URI for every service call. + /// + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.")] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.", + SerializedName = @"subscriptionId", + PossibleTypes = new [] { typeof(string) })] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.DefaultInfo( + Name = @"", + Description =@"", + Script = @"(Get-AzContext).Subscription.Id")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Path)] + public string SubscriptionId { get => this._subscriptionId; set => this._subscriptionId = value; } + + /// + /// overrideOnDefault will be called before the regular onDefault has been processed, allowing customization of what + /// happens on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// /// Determines if the rest of the onDefault method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnDefault(global::System.Net.Http.HttpResponseMessage responseMessage, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnNoContent will be called before the regular onNoContent has been processed, allowing customization of + /// what happens on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// /// Determines if the rest of the onNoContent method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnNoContent(global::System.Net.Http.HttpResponseMessage responseMessage, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnOk will be called before the regular onOk has been processed, allowing customization of what happens + /// on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// /// Determines if the rest of the onOk method should be processed, or if the method should return + /// immediately (set to true to skip further processing ) + + partial void overrideOnOk(global::System.Net.Http.HttpResponseMessage responseMessage, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// (overrides the default BeginProcessing method in global::System.Management.Automation.PSCmdlet) + /// + protected override void BeginProcessing() + { + var telemetryId = Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.GetTelemetryId.Invoke(); + if (telemetryId != "" && telemetryId != "internal") + { + __correlationId = telemetryId; + } + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Creates a duplicate instance of this cmdlet (via JSON serialization). + /// a duplicate instance of RemoveAzEventGridPartnerDestination_Delete + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Cmdlets.RemoveAzEventGridPartnerDestination_Delete Clone() + { + var clone = new RemoveAzEventGridPartnerDestination_Delete(); + clone.__correlationId = this.__correlationId; + clone.__processRecordId = this.__processRecordId; + clone.DefaultProfile = this.DefaultProfile; + clone.InvocationInformation = this.InvocationInformation; + clone.Proxy = this.Proxy; + clone.Pipeline = this.Pipeline; + clone.AsJob = this.AsJob; + clone.Break = this.Break; + clone.ProxyCredential = this.ProxyCredential; + clone.ProxyUseDefaultCredentials = this.ProxyUseDefaultCredentials; + clone.HttpPipelinePrepend = this.HttpPipelinePrepend; + clone.HttpPipelineAppend = this.HttpPipelineAppend; + clone.SubscriptionId = this.SubscriptionId; + clone.ResourceGroupName = this.ResourceGroupName; + clone.Name = this.Name; + return clone; + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + + } + + /// Handles/Dispatches events during the call to the REST service. + /// The message id + /// The message cancellation token. When this call is cancelled, this should be true + /// Detailed message data for the message event. + /// + /// A that will be complete when handling of the message is completed. + /// + async global::System.Threading.Tasks.Task Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener.Signal(string id, global::System.Threading.CancellationToken token, global::System.Func messageData) + { + using( NoSynchronizationContext ) + { + if (token.IsCancellationRequested) + { + return ; + } + + switch ( id ) + { + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.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.EventGrid.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.EventGrid.Runtime.PowerShell.AsyncOperationResponse { Target = uri }); + // do nothing more. + data.Cancel(); + return; + } + } + break; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.EventData ), InvocationInformation, this.ParameterSetName, __correlationId, __processRecordId, null ); + if (token.IsCancellationRequested) + { + return ; + } + WriteDebug($"{id}: {(messageData().Message ?? global::System.String.Empty)}"); + } + } + + /// Performs execution of the command. + protected override void ProcessRecord() + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + if (ShouldProcess($"Call remote 'PartnerDestinationsDelete' operation")) + { + if (true == MyInvocation?.BoundParameters?.ContainsKey("AsJob")) + { + var instance = this.Clone(); + var job = new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token); + } + } + } + } + catch (global::System.AggregateException aggregateException) + { + // unroll the inner exceptions to get the root cause + foreach( var innerException in aggregateException.Flatten().InnerExceptions ) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(innerException,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + } + catch (global::System.Exception exception) when ((exception as System.Management.Automation.PipelineStoppedException)== null || (exception as System.Management.Automation.PipelineStoppedException).InnerException != null) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(exception,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + finally + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletProcessRecordEnd).Wait(); + } + } + + /// Performs execution of the command, working asynchronously if required. + /// + /// A that will be complete when handling of the method is completed. + /// + protected async global::System.Threading.Tasks.Task ProcessRecordAsync() + { + using( NoSynchronizationContext ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await this.Client.PartnerDestinationsDelete(SubscriptionId, ResourceGroupName, Name, onOk, onNoContent, onDefault, this, Pipeline); + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.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.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// + /// Intializes a new instance of the cmdlet class. + /// + public RemoveAzEventGridPartnerDestination_Delete() + { + + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Cancel(); + base.StopProcessing(); + } + + /// + /// a delegate that is called when the remote service returns default (any response code not handled elsewhere). + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onDefault(global::System.Net.Http.HttpResponseMessage responseMessage) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnDefault(responseMessage, ref _returnNow); + // if overrideOnDefault has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // Error Response : default + // Unrecognized Response. Create an error record based on what we have. + var ex = new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.RestException(responseMessage); + 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 } + }); + } + } + + /// 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/eventgrid/generated/cmdlets/RemoveAzEventGridPartnerDestination_DeleteViaIdentity.cs b/swaggerci/eventgrid/generated/cmdlets/RemoveAzEventGridPartnerDestination_DeleteViaIdentity.cs new file mode 100644 index 000000000000..d415cc1d8a56 --- /dev/null +++ b/swaggerci/eventgrid/generated/cmdlets/RemoveAzEventGridPartnerDestination_DeleteViaIdentity.cs @@ -0,0 +1,471 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Extensions; + using System; + + /// Delete existing partner destination. + /// + /// [OpenAPI] Delete=>DELETE:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.EventGrid/partnerDestinations/{partnerDestinationName}" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsCommon.Remove, @"AzEventGridPartnerDestination_DeleteViaIdentity", SupportsShouldProcess = true)] + [global::System.Management.Automation.OutputType(typeof(bool))] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Description(@"Delete existing partner destination.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Generated] + public partial class RemoveAzEventGridPartnerDestination_DeleteViaIdentity : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener + { + /// A unique id generatd for the this cmdlet when it is instantiated. + private string __correlationId = System.Guid.NewGuid().ToString(); + + /// A copy of the Invocation Info (necessary to allow asJob to clone this cmdlet) + private global::System.Management.Automation.InvocationInfo __invocationInfo; + + /// A unique id generatd for the 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.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.EventGridManagementClient Client => Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.ClientAPI; + + /// + /// The credentials, account, tenant, and subscription used for communication with Azure + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The credentials, account, tenant, and subscription used for communication with Azure.")] + [global::System.Management.Automation.ValidateNotNull] + [global::System.Management.Automation.Alias("AzureRMContext", "AzureCredential")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Azure)] + public global::System.Management.Automation.PSObject DefaultProfile { get; set; } + + /// SendAsync Pipeline Steps to be appended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be appended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[] HttpPipelineAppend { get; set; } + + /// SendAsync Pipeline Steps to be prepended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be prepended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[] HttpPipelinePrepend { get; set; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.IEventGridIdentity _inputObject; + + /// Identity Parameter + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Identity Parameter", ValueFromPipeline = true)] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Path)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.IEventGridIdentity InputObject { get => this._inputObject; set => this._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.EventGrid.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter NoWait { get; set; } + + /// + /// When specified, forces the cmdlet return a 'bool' given that there isn't a return type by default. + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Returns true when the command succeeds")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Runtime.HttpPipeline Pipeline { get; set; } + + /// The URI for the proxy server to use + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "The URI for the proxy server to use")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Uri Proxy { get; set; } + + /// Credentials for a proxy server to use for the remote call + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Credentials for a proxy server to use for the remote call")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Management.Automation.PSCredential ProxyCredential { get; set; } + + /// Use the default credentials for the proxy + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Use the default credentials for the proxy")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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. + /// /// Determines if the rest of the onDefault method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnDefault(global::System.Net.Http.HttpResponseMessage responseMessage, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnNoContent will be called before the regular onNoContent has been processed, allowing customization of + /// what happens on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// /// Determines if the rest of the onNoContent method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnNoContent(global::System.Net.Http.HttpResponseMessage responseMessage, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnOk will be called before the regular onOk has been processed, allowing customization of what happens + /// on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// /// Determines if the rest of the onOk method should be processed, or if the method should return + /// immediately (set to true to skip further processing ) + + partial void overrideOnOk(global::System.Net.Http.HttpResponseMessage responseMessage, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// (overrides the default BeginProcessing method in global::System.Management.Automation.PSCmdlet) + /// + protected override void BeginProcessing() + { + var telemetryId = Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.GetTelemetryId.Invoke(); + if (telemetryId != "" && telemetryId != "internal") + { + __correlationId = telemetryId; + } + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Creates a duplicate instance of this cmdlet (via JSON serialization). + /// a duplicate instance of RemoveAzEventGridPartnerDestination_DeleteViaIdentity + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Cmdlets.RemoveAzEventGridPartnerDestination_DeleteViaIdentity Clone() + { + var clone = new RemoveAzEventGridPartnerDestination_DeleteViaIdentity(); + clone.__correlationId = this.__correlationId; + clone.__processRecordId = this.__processRecordId; + clone.DefaultProfile = this.DefaultProfile; + clone.InvocationInformation = this.InvocationInformation; + clone.Proxy = this.Proxy; + clone.Pipeline = this.Pipeline; + clone.AsJob = this.AsJob; + clone.Break = this.Break; + clone.ProxyCredential = this.ProxyCredential; + clone.ProxyUseDefaultCredentials = this.ProxyUseDefaultCredentials; + clone.HttpPipelinePrepend = this.HttpPipelinePrepend; + clone.HttpPipelineAppend = this.HttpPipelineAppend; + return clone; + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + + } + + /// Handles/Dispatches events during the call to the REST service. + /// The message id + /// The message cancellation token. When this call is cancelled, this should be true + /// Detailed message data for the message event. + /// + /// A that will be complete when handling of the message is completed. + /// + async global::System.Threading.Tasks.Task Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener.Signal(string id, global::System.Threading.CancellationToken token, global::System.Func messageData) + { + using( NoSynchronizationContext ) + { + if (token.IsCancellationRequested) + { + return ; + } + + switch ( id ) + { + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.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.EventGrid.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.EventGrid.Runtime.PowerShell.AsyncOperationResponse { Target = uri }); + // do nothing more. + data.Cancel(); + return; + } + } + break; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.EventData ), InvocationInformation, this.ParameterSetName, __correlationId, __processRecordId, null ); + if (token.IsCancellationRequested) + { + return ; + } + WriteDebug($"{id}: {(messageData().Message ?? global::System.String.Empty)}"); + } + } + + /// Performs execution of the command. + protected override void ProcessRecord() + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + if (ShouldProcess($"Call remote 'PartnerDestinationsDelete' operation")) + { + if (true == MyInvocation?.BoundParameters?.ContainsKey("AsJob")) + { + var instance = this.Clone(); + var job = new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token); + } + } + } + } + catch (global::System.AggregateException aggregateException) + { + // unroll the inner exceptions to get the root cause + foreach( var innerException in aggregateException.Flatten().InnerExceptions ) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(innerException,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + } + catch (global::System.Exception exception) when ((exception as System.Management.Automation.PipelineStoppedException)== null || (exception as System.Management.Automation.PipelineStoppedException).InnerException != null) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(exception,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + finally + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletProcessRecordEnd).Wait(); + } + } + + /// Performs execution of the command, working asynchronously if required. + /// + /// A that will be complete when handling of the method is completed. + /// + protected async global::System.Threading.Tasks.Task ProcessRecordAsync() + { + using( NoSynchronizationContext ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + if (InputObject?.Id != null) + { + await this.Client.PartnerDestinationsDeleteViaIdentity(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.PartnerDestinationName) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.PartnerDestinationName"),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, InputObject) ); + } + await this.Client.PartnerDestinationsDelete(InputObject.SubscriptionId ?? null, InputObject.ResourceGroupName ?? null, InputObject.PartnerDestinationName ?? null, onOk, onNoContent, onDefault, this, Pipeline); + } + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// + /// Intializes a new instance of the cmdlet class. + /// + public RemoveAzEventGridPartnerDestination_DeleteViaIdentity() + { + + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Cancel(); + base.StopProcessing(); + } + + /// + /// a delegate that is called when the remote service returns default (any response code not handled elsewhere). + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onDefault(global::System.Net.Http.HttpResponseMessage responseMessage) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnDefault(responseMessage, ref _returnNow); + // if overrideOnDefault has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // Error Response : default + // Unrecognized Response. Create an error record based on what we have. + var ex = new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.RestException(responseMessage); + WriteError( new global::System.Management.Automation.ErrorRecord(ex, ex.Code, global::System.Management.Automation.ErrorCategory.InvalidOperation, new { }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(ex.Message) { RecommendedAction = ex.Action } + }); + } + } + + /// a delegate that is called when the remote service returns 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/eventgrid/generated/cmdlets/RemoveAzEventGridPartnerNamespace_Delete.cs b/swaggerci/eventgrid/generated/cmdlets/RemoveAzEventGridPartnerNamespace_Delete.cs new file mode 100644 index 000000000000..114b0f484312 --- /dev/null +++ b/swaggerci/eventgrid/generated/cmdlets/RemoveAzEventGridPartnerNamespace_Delete.cs @@ -0,0 +1,496 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Extensions; + using System; + + /// Delete existing partner namespace. + /// + /// [OpenAPI] Delete=>DELETE:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.EventGrid/partnerNamespaces/{partnerNamespaceName}" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsCommon.Remove, @"AzEventGridPartnerNamespace_Delete", SupportsShouldProcess = true)] + [global::System.Management.Automation.OutputType(typeof(bool))] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Description(@"Delete existing partner namespace.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Generated] + public partial class RemoveAzEventGridPartnerNamespace_Delete : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener + { + /// A unique id generatd for the this cmdlet when it is instantiated. + private string __correlationId = System.Guid.NewGuid().ToString(); + + /// A copy of the Invocation Info (necessary to allow asJob to clone this cmdlet) + private global::System.Management.Automation.InvocationInfo __invocationInfo; + + /// A unique id generatd for the 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.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.EventGridManagementClient Client => Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.ClientAPI; + + /// + /// The credentials, account, tenant, and subscription used for communication with Azure + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The credentials, account, tenant, and subscription used for communication with Azure.")] + [global::System.Management.Automation.ValidateNotNull] + [global::System.Management.Automation.Alias("AzureRMContext", "AzureCredential")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Azure)] + public global::System.Management.Automation.PSObject DefaultProfile { get; set; } + + /// SendAsync Pipeline Steps to be appended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be appended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[] HttpPipelineAppend { get; set; } + + /// SendAsync Pipeline Steps to be prepended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be prepended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[] HttpPipelinePrepend { get; set; } + + /// Accessor for our copy of the InvocationInfo. + public global::System.Management.Automation.InvocationInfo InvocationInformation { get => __invocationInfo = __invocationInfo ?? this.MyInvocation ; set { __invocationInfo = value; } } + + /// + /// cancellation delegate. Stops the cmdlet when called. + /// + global::System.Action Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener.Token => _cancellationTokenSource.Token; + + /// Backing field for property. + private string _name; + + /// Name of the partner namespace. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Name of the partner namespace.")] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Name of the partner namespace.", + SerializedName = @"partnerNamespaceName", + PossibleTypes = new [] { typeof(string) })] + [global::System.Management.Automation.Alias("PartnerNamespaceName")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Path)] + public string Name { get => this._name; set => this._name = value; } + + /// + /// when specified, will make the remote call, and return an AsyncOperationResponse, letting the remote operation continue + /// asynchronously. + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Run the command asynchronously")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter NoWait { get; set; } + + /// + /// When specified, forces the cmdlet return a 'bool' given that there isn't a return type by default. + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Returns true when the command succeeds")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Runtime.HttpPipeline Pipeline { get; set; } + + /// The URI for the proxy server to use + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "The URI for the proxy server to use")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Uri Proxy { get; set; } + + /// Credentials for a proxy server to use for the remote call + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Credentials for a proxy server to use for the remote call")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Management.Automation.PSCredential ProxyCredential { get; set; } + + /// Use the default credentials for the proxy + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Use the default credentials for the proxy")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter ProxyUseDefaultCredentials { get; set; } + + /// Backing field for property. + private string _resourceGroupName; + + /// The name of the resource group within the user's subscription. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the resource group within the user's subscription.")] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the resource group within the user's subscription.", + SerializedName = @"resourceGroupName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Path)] + public string ResourceGroupName { get => this._resourceGroupName; set => this._resourceGroupName = value; } + + /// Backing field for property. + private string _subscriptionId; + + /// + /// Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription ID forms part of the + /// URI for every service call. + /// + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.")] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.", + SerializedName = @"subscriptionId", + PossibleTypes = new [] { typeof(string) })] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.DefaultInfo( + Name = @"", + Description =@"", + Script = @"(Get-AzContext).Subscription.Id")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Path)] + public string SubscriptionId { get => this._subscriptionId; set => this._subscriptionId = value; } + + /// + /// overrideOnDefault will be called before the regular onDefault has been processed, allowing customization of what + /// happens on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// /// Determines if the rest of the onDefault method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnDefault(global::System.Net.Http.HttpResponseMessage responseMessage, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnNoContent will be called before the regular onNoContent has been processed, allowing customization of + /// what happens on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// /// Determines if the rest of the onNoContent method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnNoContent(global::System.Net.Http.HttpResponseMessage responseMessage, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnOk will be called before the regular onOk has been processed, allowing customization of what happens + /// on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// /// Determines if the rest of the onOk method should be processed, or if the method should return + /// immediately (set to true to skip further processing ) + + partial void overrideOnOk(global::System.Net.Http.HttpResponseMessage responseMessage, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// (overrides the default BeginProcessing method in global::System.Management.Automation.PSCmdlet) + /// + protected override void BeginProcessing() + { + var telemetryId = Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.GetTelemetryId.Invoke(); + if (telemetryId != "" && telemetryId != "internal") + { + __correlationId = telemetryId; + } + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Creates a duplicate instance of this cmdlet (via JSON serialization). + /// a duplicate instance of RemoveAzEventGridPartnerNamespace_Delete + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Cmdlets.RemoveAzEventGridPartnerNamespace_Delete Clone() + { + var clone = new RemoveAzEventGridPartnerNamespace_Delete(); + clone.__correlationId = this.__correlationId; + clone.__processRecordId = this.__processRecordId; + clone.DefaultProfile = this.DefaultProfile; + clone.InvocationInformation = this.InvocationInformation; + clone.Proxy = this.Proxy; + clone.Pipeline = this.Pipeline; + clone.AsJob = this.AsJob; + clone.Break = this.Break; + clone.ProxyCredential = this.ProxyCredential; + clone.ProxyUseDefaultCredentials = this.ProxyUseDefaultCredentials; + clone.HttpPipelinePrepend = this.HttpPipelinePrepend; + clone.HttpPipelineAppend = this.HttpPipelineAppend; + clone.SubscriptionId = this.SubscriptionId; + clone.ResourceGroupName = this.ResourceGroupName; + clone.Name = this.Name; + return clone; + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + + } + + /// Handles/Dispatches events during the call to the REST service. + /// The message id + /// The message cancellation token. When this call is cancelled, this should be true + /// Detailed message data for the message event. + /// + /// A that will be complete when handling of the message is completed. + /// + async global::System.Threading.Tasks.Task Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener.Signal(string id, global::System.Threading.CancellationToken token, global::System.Func messageData) + { + using( NoSynchronizationContext ) + { + if (token.IsCancellationRequested) + { + return ; + } + + switch ( id ) + { + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.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.EventGrid.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.EventGrid.Runtime.PowerShell.AsyncOperationResponse { Target = uri }); + // do nothing more. + data.Cancel(); + return; + } + } + break; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.EventData ), InvocationInformation, this.ParameterSetName, __correlationId, __processRecordId, null ); + if (token.IsCancellationRequested) + { + return ; + } + WriteDebug($"{id}: {(messageData().Message ?? global::System.String.Empty)}"); + } + } + + /// Performs execution of the command. + protected override void ProcessRecord() + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + if (ShouldProcess($"Call remote 'PartnerNamespacesDelete' operation")) + { + if (true == MyInvocation?.BoundParameters?.ContainsKey("AsJob")) + { + var instance = this.Clone(); + var job = new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token); + } + } + } + } + catch (global::System.AggregateException aggregateException) + { + // unroll the inner exceptions to get the root cause + foreach( var innerException in aggregateException.Flatten().InnerExceptions ) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(innerException,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + } + catch (global::System.Exception exception) when ((exception as System.Management.Automation.PipelineStoppedException)== null || (exception as System.Management.Automation.PipelineStoppedException).InnerException != null) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(exception,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + finally + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletProcessRecordEnd).Wait(); + } + } + + /// Performs execution of the command, working asynchronously if required. + /// + /// A that will be complete when handling of the method is completed. + /// + protected async global::System.Threading.Tasks.Task ProcessRecordAsync() + { + using( NoSynchronizationContext ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await this.Client.PartnerNamespacesDelete(SubscriptionId, ResourceGroupName, Name, onOk, onNoContent, onDefault, this, Pipeline); + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.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.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// + /// Intializes a new instance of the cmdlet class. + /// + public RemoveAzEventGridPartnerNamespace_Delete() + { + + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Cancel(); + base.StopProcessing(); + } + + /// + /// a delegate that is called when the remote service returns default (any response code not handled elsewhere). + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onDefault(global::System.Net.Http.HttpResponseMessage responseMessage) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnDefault(responseMessage, ref _returnNow); + // if overrideOnDefault has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // Error Response : default + // Unrecognized Response. Create an error record based on what we have. + var ex = new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.RestException(responseMessage); + 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 } + }); + } + } + + /// 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/eventgrid/generated/cmdlets/RemoveAzEventGridPartnerNamespace_DeleteViaIdentity.cs b/swaggerci/eventgrid/generated/cmdlets/RemoveAzEventGridPartnerNamespace_DeleteViaIdentity.cs new file mode 100644 index 000000000000..c25436c1798a --- /dev/null +++ b/swaggerci/eventgrid/generated/cmdlets/RemoveAzEventGridPartnerNamespace_DeleteViaIdentity.cs @@ -0,0 +1,471 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Extensions; + using System; + + /// Delete existing partner namespace. + /// + /// [OpenAPI] Delete=>DELETE:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.EventGrid/partnerNamespaces/{partnerNamespaceName}" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsCommon.Remove, @"AzEventGridPartnerNamespace_DeleteViaIdentity", SupportsShouldProcess = true)] + [global::System.Management.Automation.OutputType(typeof(bool))] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Description(@"Delete existing partner namespace.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Generated] + public partial class RemoveAzEventGridPartnerNamespace_DeleteViaIdentity : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener + { + /// A unique id generatd for the this cmdlet when it is instantiated. + private string __correlationId = System.Guid.NewGuid().ToString(); + + /// A copy of the Invocation Info (necessary to allow asJob to clone this cmdlet) + private global::System.Management.Automation.InvocationInfo __invocationInfo; + + /// A unique id generatd for the 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.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.EventGridManagementClient Client => Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.ClientAPI; + + /// + /// The credentials, account, tenant, and subscription used for communication with Azure + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The credentials, account, tenant, and subscription used for communication with Azure.")] + [global::System.Management.Automation.ValidateNotNull] + [global::System.Management.Automation.Alias("AzureRMContext", "AzureCredential")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Azure)] + public global::System.Management.Automation.PSObject DefaultProfile { get; set; } + + /// SendAsync Pipeline Steps to be appended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be appended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[] HttpPipelineAppend { get; set; } + + /// SendAsync Pipeline Steps to be prepended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be prepended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[] HttpPipelinePrepend { get; set; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.IEventGridIdentity _inputObject; + + /// Identity Parameter + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Identity Parameter", ValueFromPipeline = true)] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Path)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.IEventGridIdentity InputObject { get => this._inputObject; set => this._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.EventGrid.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter NoWait { get; set; } + + /// + /// When specified, forces the cmdlet return a 'bool' given that there isn't a return type by default. + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Returns true when the command succeeds")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Runtime.HttpPipeline Pipeline { get; set; } + + /// The URI for the proxy server to use + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "The URI for the proxy server to use")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Uri Proxy { get; set; } + + /// Credentials for a proxy server to use for the remote call + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Credentials for a proxy server to use for the remote call")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Management.Automation.PSCredential ProxyCredential { get; set; } + + /// Use the default credentials for the proxy + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Use the default credentials for the proxy")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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. + /// /// Determines if the rest of the onDefault method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnDefault(global::System.Net.Http.HttpResponseMessage responseMessage, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnNoContent will be called before the regular onNoContent has been processed, allowing customization of + /// what happens on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// /// Determines if the rest of the onNoContent method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnNoContent(global::System.Net.Http.HttpResponseMessage responseMessage, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnOk will be called before the regular onOk has been processed, allowing customization of what happens + /// on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// /// Determines if the rest of the onOk method should be processed, or if the method should return + /// immediately (set to true to skip further processing ) + + partial void overrideOnOk(global::System.Net.Http.HttpResponseMessage responseMessage, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// (overrides the default BeginProcessing method in global::System.Management.Automation.PSCmdlet) + /// + protected override void BeginProcessing() + { + var telemetryId = Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.GetTelemetryId.Invoke(); + if (telemetryId != "" && telemetryId != "internal") + { + __correlationId = telemetryId; + } + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Creates a duplicate instance of this cmdlet (via JSON serialization). + /// a duplicate instance of RemoveAzEventGridPartnerNamespace_DeleteViaIdentity + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Cmdlets.RemoveAzEventGridPartnerNamespace_DeleteViaIdentity Clone() + { + var clone = new RemoveAzEventGridPartnerNamespace_DeleteViaIdentity(); + clone.__correlationId = this.__correlationId; + clone.__processRecordId = this.__processRecordId; + clone.DefaultProfile = this.DefaultProfile; + clone.InvocationInformation = this.InvocationInformation; + clone.Proxy = this.Proxy; + clone.Pipeline = this.Pipeline; + clone.AsJob = this.AsJob; + clone.Break = this.Break; + clone.ProxyCredential = this.ProxyCredential; + clone.ProxyUseDefaultCredentials = this.ProxyUseDefaultCredentials; + clone.HttpPipelinePrepend = this.HttpPipelinePrepend; + clone.HttpPipelineAppend = this.HttpPipelineAppend; + return clone; + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + + } + + /// Handles/Dispatches events during the call to the REST service. + /// The message id + /// The message cancellation token. When this call is cancelled, this should be true + /// Detailed message data for the message event. + /// + /// A that will be complete when handling of the message is completed. + /// + async global::System.Threading.Tasks.Task Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener.Signal(string id, global::System.Threading.CancellationToken token, global::System.Func messageData) + { + using( NoSynchronizationContext ) + { + if (token.IsCancellationRequested) + { + return ; + } + + switch ( id ) + { + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.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.EventGrid.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.EventGrid.Runtime.PowerShell.AsyncOperationResponse { Target = uri }); + // do nothing more. + data.Cancel(); + return; + } + } + break; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.EventData ), InvocationInformation, this.ParameterSetName, __correlationId, __processRecordId, null ); + if (token.IsCancellationRequested) + { + return ; + } + WriteDebug($"{id}: {(messageData().Message ?? global::System.String.Empty)}"); + } + } + + /// Performs execution of the command. + protected override void ProcessRecord() + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + if (ShouldProcess($"Call remote 'PartnerNamespacesDelete' operation")) + { + if (true == MyInvocation?.BoundParameters?.ContainsKey("AsJob")) + { + var instance = this.Clone(); + var job = new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token); + } + } + } + } + catch (global::System.AggregateException aggregateException) + { + // unroll the inner exceptions to get the root cause + foreach( var innerException in aggregateException.Flatten().InnerExceptions ) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(innerException,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + } + catch (global::System.Exception exception) when ((exception as System.Management.Automation.PipelineStoppedException)== null || (exception as System.Management.Automation.PipelineStoppedException).InnerException != null) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(exception,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + finally + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletProcessRecordEnd).Wait(); + } + } + + /// Performs execution of the command, working asynchronously if required. + /// + /// A that will be complete when handling of the method is completed. + /// + protected async global::System.Threading.Tasks.Task ProcessRecordAsync() + { + using( NoSynchronizationContext ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + if (InputObject?.Id != null) + { + await this.Client.PartnerNamespacesDeleteViaIdentity(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.PartnerNamespaceName) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.PartnerNamespaceName"),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, InputObject) ); + } + await this.Client.PartnerNamespacesDelete(InputObject.SubscriptionId ?? null, InputObject.ResourceGroupName ?? null, InputObject.PartnerNamespaceName ?? null, onOk, onNoContent, onDefault, this, Pipeline); + } + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// + /// Intializes a new instance of the cmdlet class. + /// + public RemoveAzEventGridPartnerNamespace_DeleteViaIdentity() + { + + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Cancel(); + base.StopProcessing(); + } + + /// + /// a delegate that is called when the remote service returns default (any response code not handled elsewhere). + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onDefault(global::System.Net.Http.HttpResponseMessage responseMessage) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnDefault(responseMessage, ref _returnNow); + // if overrideOnDefault has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // Error Response : default + // Unrecognized Response. Create an error record based on what we have. + var ex = new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.RestException(responseMessage); + WriteError( new global::System.Management.Automation.ErrorRecord(ex, ex.Code, global::System.Management.Automation.ErrorCategory.InvalidOperation, new { }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(ex.Message) { RecommendedAction = ex.Action } + }); + } + } + + /// a delegate that is called when the remote service returns 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/eventgrid/generated/cmdlets/RemoveAzEventGridPartnerRegistration_Delete.cs b/swaggerci/eventgrid/generated/cmdlets/RemoveAzEventGridPartnerRegistration_Delete.cs new file mode 100644 index 000000000000..b269e76ba6f1 --- /dev/null +++ b/swaggerci/eventgrid/generated/cmdlets/RemoveAzEventGridPartnerRegistration_Delete.cs @@ -0,0 +1,496 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Extensions; + using System; + + /// Deletes a partner registration with the specified parameters. + /// + /// [OpenAPI] Delete=>DELETE:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.EventGrid/partnerRegistrations/{partnerRegistrationName}" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsCommon.Remove, @"AzEventGridPartnerRegistration_Delete", SupportsShouldProcess = true)] + [global::System.Management.Automation.OutputType(typeof(bool))] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Description(@"Deletes a partner registration with the specified parameters.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Generated] + public partial class RemoveAzEventGridPartnerRegistration_Delete : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener + { + /// A unique id generatd for the this cmdlet when it is instantiated. + private string __correlationId = System.Guid.NewGuid().ToString(); + + /// A copy of the Invocation Info (necessary to allow asJob to clone this cmdlet) + private global::System.Management.Automation.InvocationInfo __invocationInfo; + + /// A unique id generatd for the 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.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.EventGridManagementClient Client => Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.ClientAPI; + + /// + /// The credentials, account, tenant, and subscription used for communication with Azure + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The credentials, account, tenant, and subscription used for communication with Azure.")] + [global::System.Management.Automation.ValidateNotNull] + [global::System.Management.Automation.Alias("AzureRMContext", "AzureCredential")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Azure)] + public global::System.Management.Automation.PSObject DefaultProfile { get; set; } + + /// SendAsync Pipeline Steps to be appended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be appended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[] HttpPipelineAppend { get; set; } + + /// SendAsync Pipeline Steps to be prepended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be prepended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[] HttpPipelinePrepend { get; set; } + + /// Accessor for our copy of the InvocationInfo. + public global::System.Management.Automation.InvocationInfo InvocationInformation { get => __invocationInfo = __invocationInfo ?? this.MyInvocation ; set { __invocationInfo = value; } } + + /// + /// cancellation delegate. Stops the cmdlet when called. + /// + global::System.Action Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener.Token => _cancellationTokenSource.Token; + + /// Backing field for property. + private string _name; + + /// Name of the partner registration. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Name of the partner registration.")] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Name of the partner registration.", + SerializedName = @"partnerRegistrationName", + PossibleTypes = new [] { typeof(string) })] + [global::System.Management.Automation.Alias("PartnerRegistrationName")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Path)] + public string Name { get => this._name; set => this._name = value; } + + /// + /// when specified, will make the remote call, and return an AsyncOperationResponse, letting the remote operation continue + /// asynchronously. + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Run the command asynchronously")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter NoWait { get; set; } + + /// + /// When specified, forces the cmdlet return a 'bool' given that there isn't a return type by default. + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Returns true when the command succeeds")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Runtime.HttpPipeline Pipeline { get; set; } + + /// The URI for the proxy server to use + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "The URI for the proxy server to use")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Uri Proxy { get; set; } + + /// Credentials for a proxy server to use for the remote call + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Credentials for a proxy server to use for the remote call")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Management.Automation.PSCredential ProxyCredential { get; set; } + + /// Use the default credentials for the proxy + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Use the default credentials for the proxy")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter ProxyUseDefaultCredentials { get; set; } + + /// Backing field for property. + private string _resourceGroupName; + + /// The name of the resource group within the user's subscription. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the resource group within the user's subscription.")] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the resource group within the user's subscription.", + SerializedName = @"resourceGroupName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Path)] + public string ResourceGroupName { get => this._resourceGroupName; set => this._resourceGroupName = value; } + + /// Backing field for property. + private string _subscriptionId; + + /// + /// Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription ID forms part of the + /// URI for every service call. + /// + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.")] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.", + SerializedName = @"subscriptionId", + PossibleTypes = new [] { typeof(string) })] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.DefaultInfo( + Name = @"", + Description =@"", + Script = @"(Get-AzContext).Subscription.Id")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Path)] + public string SubscriptionId { get => this._subscriptionId; set => this._subscriptionId = value; } + + /// + /// overrideOnDefault will be called before the regular onDefault has been processed, allowing customization of what + /// happens on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// /// Determines if the rest of the onDefault method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnDefault(global::System.Net.Http.HttpResponseMessage responseMessage, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnNoContent will be called before the regular onNoContent has been processed, allowing customization of + /// what happens on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// /// Determines if the rest of the onNoContent method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnNoContent(global::System.Net.Http.HttpResponseMessage responseMessage, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnOk will be called before the regular onOk has been processed, allowing customization of what happens + /// on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// /// Determines if the rest of the onOk method should be processed, or if the method should return + /// immediately (set to true to skip further processing ) + + partial void overrideOnOk(global::System.Net.Http.HttpResponseMessage responseMessage, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// (overrides the default BeginProcessing method in global::System.Management.Automation.PSCmdlet) + /// + protected override void BeginProcessing() + { + var telemetryId = Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.GetTelemetryId.Invoke(); + if (telemetryId != "" && telemetryId != "internal") + { + __correlationId = telemetryId; + } + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Creates a duplicate instance of this cmdlet (via JSON serialization). + /// a duplicate instance of RemoveAzEventGridPartnerRegistration_Delete + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Cmdlets.RemoveAzEventGridPartnerRegistration_Delete Clone() + { + var clone = new RemoveAzEventGridPartnerRegistration_Delete(); + clone.__correlationId = this.__correlationId; + clone.__processRecordId = this.__processRecordId; + clone.DefaultProfile = this.DefaultProfile; + clone.InvocationInformation = this.InvocationInformation; + clone.Proxy = this.Proxy; + clone.Pipeline = this.Pipeline; + clone.AsJob = this.AsJob; + clone.Break = this.Break; + clone.ProxyCredential = this.ProxyCredential; + clone.ProxyUseDefaultCredentials = this.ProxyUseDefaultCredentials; + clone.HttpPipelinePrepend = this.HttpPipelinePrepend; + clone.HttpPipelineAppend = this.HttpPipelineAppend; + clone.SubscriptionId = this.SubscriptionId; + clone.ResourceGroupName = this.ResourceGroupName; + clone.Name = this.Name; + return clone; + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + + } + + /// Handles/Dispatches events during the call to the REST service. + /// The message id + /// The message cancellation token. When this call is cancelled, this should be true + /// Detailed message data for the message event. + /// + /// A that will be complete when handling of the message is completed. + /// + async global::System.Threading.Tasks.Task Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener.Signal(string id, global::System.Threading.CancellationToken token, global::System.Func messageData) + { + using( NoSynchronizationContext ) + { + if (token.IsCancellationRequested) + { + return ; + } + + switch ( id ) + { + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.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.EventGrid.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.EventGrid.Runtime.PowerShell.AsyncOperationResponse { Target = uri }); + // do nothing more. + data.Cancel(); + return; + } + } + break; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.EventData ), InvocationInformation, this.ParameterSetName, __correlationId, __processRecordId, null ); + if (token.IsCancellationRequested) + { + return ; + } + WriteDebug($"{id}: {(messageData().Message ?? global::System.String.Empty)}"); + } + } + + /// Performs execution of the command. + protected override void ProcessRecord() + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + if (ShouldProcess($"Call remote 'PartnerRegistrationsDelete' operation")) + { + if (true == MyInvocation?.BoundParameters?.ContainsKey("AsJob")) + { + var instance = this.Clone(); + var job = new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token); + } + } + } + } + catch (global::System.AggregateException aggregateException) + { + // unroll the inner exceptions to get the root cause + foreach( var innerException in aggregateException.Flatten().InnerExceptions ) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(innerException,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + } + catch (global::System.Exception exception) when ((exception as System.Management.Automation.PipelineStoppedException)== null || (exception as System.Management.Automation.PipelineStoppedException).InnerException != null) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(exception,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + finally + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletProcessRecordEnd).Wait(); + } + } + + /// Performs execution of the command, working asynchronously if required. + /// + /// A that will be complete when handling of the method is completed. + /// + protected async global::System.Threading.Tasks.Task ProcessRecordAsync() + { + using( NoSynchronizationContext ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await this.Client.PartnerRegistrationsDelete(SubscriptionId, ResourceGroupName, Name, onOk, onNoContent, onDefault, this, Pipeline); + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.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.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// + /// Intializes a new instance of the cmdlet class. + /// + public RemoveAzEventGridPartnerRegistration_Delete() + { + + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Cancel(); + base.StopProcessing(); + } + + /// + /// a delegate that is called when the remote service returns default (any response code not handled elsewhere). + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onDefault(global::System.Net.Http.HttpResponseMessage responseMessage) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnDefault(responseMessage, ref _returnNow); + // if overrideOnDefault has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // Error Response : default + // Unrecognized Response. Create an error record based on what we have. + var ex = new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.RestException(responseMessage); + 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 } + }); + } + } + + /// 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/eventgrid/generated/cmdlets/RemoveAzEventGridPartnerRegistration_DeleteViaIdentity.cs b/swaggerci/eventgrid/generated/cmdlets/RemoveAzEventGridPartnerRegistration_DeleteViaIdentity.cs new file mode 100644 index 000000000000..8972dd7a1d29 --- /dev/null +++ b/swaggerci/eventgrid/generated/cmdlets/RemoveAzEventGridPartnerRegistration_DeleteViaIdentity.cs @@ -0,0 +1,471 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Extensions; + using System; + + /// Deletes a partner registration with the specified parameters. + /// + /// [OpenAPI] Delete=>DELETE:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.EventGrid/partnerRegistrations/{partnerRegistrationName}" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsCommon.Remove, @"AzEventGridPartnerRegistration_DeleteViaIdentity", SupportsShouldProcess = true)] + [global::System.Management.Automation.OutputType(typeof(bool))] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Description(@"Deletes a partner registration with the specified parameters.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Generated] + public partial class RemoveAzEventGridPartnerRegistration_DeleteViaIdentity : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener + { + /// A unique id generatd for the this cmdlet when it is instantiated. + private string __correlationId = System.Guid.NewGuid().ToString(); + + /// A copy of the Invocation Info (necessary to allow asJob to clone this cmdlet) + private global::System.Management.Automation.InvocationInfo __invocationInfo; + + /// A unique id generatd for the 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.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.EventGridManagementClient Client => Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.ClientAPI; + + /// + /// The credentials, account, tenant, and subscription used for communication with Azure + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The credentials, account, tenant, and subscription used for communication with Azure.")] + [global::System.Management.Automation.ValidateNotNull] + [global::System.Management.Automation.Alias("AzureRMContext", "AzureCredential")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Azure)] + public global::System.Management.Automation.PSObject DefaultProfile { get; set; } + + /// SendAsync Pipeline Steps to be appended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be appended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[] HttpPipelineAppend { get; set; } + + /// SendAsync Pipeline Steps to be prepended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be prepended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[] HttpPipelinePrepend { get; set; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.IEventGridIdentity _inputObject; + + /// Identity Parameter + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Identity Parameter", ValueFromPipeline = true)] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Path)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.IEventGridIdentity InputObject { get => this._inputObject; set => this._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.EventGrid.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter NoWait { get; set; } + + /// + /// When specified, forces the cmdlet return a 'bool' given that there isn't a return type by default. + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Returns true when the command succeeds")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Runtime.HttpPipeline Pipeline { get; set; } + + /// The URI for the proxy server to use + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "The URI for the proxy server to use")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Uri Proxy { get; set; } + + /// Credentials for a proxy server to use for the remote call + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Credentials for a proxy server to use for the remote call")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Management.Automation.PSCredential ProxyCredential { get; set; } + + /// Use the default credentials for the proxy + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Use the default credentials for the proxy")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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. + /// /// Determines if the rest of the onDefault method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnDefault(global::System.Net.Http.HttpResponseMessage responseMessage, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnNoContent will be called before the regular onNoContent has been processed, allowing customization of + /// what happens on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// /// Determines if the rest of the onNoContent method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnNoContent(global::System.Net.Http.HttpResponseMessage responseMessage, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnOk will be called before the regular onOk has been processed, allowing customization of what happens + /// on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// /// Determines if the rest of the onOk method should be processed, or if the method should return + /// immediately (set to true to skip further processing ) + + partial void overrideOnOk(global::System.Net.Http.HttpResponseMessage responseMessage, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// (overrides the default BeginProcessing method in global::System.Management.Automation.PSCmdlet) + /// + protected override void BeginProcessing() + { + var telemetryId = Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.GetTelemetryId.Invoke(); + if (telemetryId != "" && telemetryId != "internal") + { + __correlationId = telemetryId; + } + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Creates a duplicate instance of this cmdlet (via JSON serialization). + /// a duplicate instance of RemoveAzEventGridPartnerRegistration_DeleteViaIdentity + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Cmdlets.RemoveAzEventGridPartnerRegistration_DeleteViaIdentity Clone() + { + var clone = new RemoveAzEventGridPartnerRegistration_DeleteViaIdentity(); + clone.__correlationId = this.__correlationId; + clone.__processRecordId = this.__processRecordId; + clone.DefaultProfile = this.DefaultProfile; + clone.InvocationInformation = this.InvocationInformation; + clone.Proxy = this.Proxy; + clone.Pipeline = this.Pipeline; + clone.AsJob = this.AsJob; + clone.Break = this.Break; + clone.ProxyCredential = this.ProxyCredential; + clone.ProxyUseDefaultCredentials = this.ProxyUseDefaultCredentials; + clone.HttpPipelinePrepend = this.HttpPipelinePrepend; + clone.HttpPipelineAppend = this.HttpPipelineAppend; + return clone; + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + + } + + /// Handles/Dispatches events during the call to the REST service. + /// The message id + /// The message cancellation token. When this call is cancelled, this should be true + /// Detailed message data for the message event. + /// + /// A that will be complete when handling of the message is completed. + /// + async global::System.Threading.Tasks.Task Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener.Signal(string id, global::System.Threading.CancellationToken token, global::System.Func messageData) + { + using( NoSynchronizationContext ) + { + if (token.IsCancellationRequested) + { + return ; + } + + switch ( id ) + { + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.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.EventGrid.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.EventGrid.Runtime.PowerShell.AsyncOperationResponse { Target = uri }); + // do nothing more. + data.Cancel(); + return; + } + } + break; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.EventData ), InvocationInformation, this.ParameterSetName, __correlationId, __processRecordId, null ); + if (token.IsCancellationRequested) + { + return ; + } + WriteDebug($"{id}: {(messageData().Message ?? global::System.String.Empty)}"); + } + } + + /// Performs execution of the command. + protected override void ProcessRecord() + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + if (ShouldProcess($"Call remote 'PartnerRegistrationsDelete' operation")) + { + if (true == MyInvocation?.BoundParameters?.ContainsKey("AsJob")) + { + var instance = this.Clone(); + var job = new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token); + } + } + } + } + catch (global::System.AggregateException aggregateException) + { + // unroll the inner exceptions to get the root cause + foreach( var innerException in aggregateException.Flatten().InnerExceptions ) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(innerException,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + } + catch (global::System.Exception exception) when ((exception as System.Management.Automation.PipelineStoppedException)== null || (exception as System.Management.Automation.PipelineStoppedException).InnerException != null) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(exception,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + finally + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletProcessRecordEnd).Wait(); + } + } + + /// Performs execution of the command, working asynchronously if required. + /// + /// A that will be complete when handling of the method is completed. + /// + protected async global::System.Threading.Tasks.Task ProcessRecordAsync() + { + using( NoSynchronizationContext ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + if (InputObject?.Id != null) + { + await this.Client.PartnerRegistrationsDeleteViaIdentity(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.PartnerRegistrationName) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.PartnerRegistrationName"),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, InputObject) ); + } + await this.Client.PartnerRegistrationsDelete(InputObject.SubscriptionId ?? null, InputObject.ResourceGroupName ?? null, InputObject.PartnerRegistrationName ?? null, onOk, onNoContent, onDefault, this, Pipeline); + } + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// + /// Intializes a new instance of the cmdlet class. + /// + public RemoveAzEventGridPartnerRegistration_DeleteViaIdentity() + { + + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Cancel(); + base.StopProcessing(); + } + + /// + /// a delegate that is called when the remote service returns default (any response code not handled elsewhere). + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onDefault(global::System.Net.Http.HttpResponseMessage responseMessage) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnDefault(responseMessage, ref _returnNow); + // if overrideOnDefault has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // Error Response : default + // Unrecognized Response. Create an error record based on what we have. + var ex = new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.RestException(responseMessage); + WriteError( new global::System.Management.Automation.ErrorRecord(ex, ex.Code, global::System.Management.Automation.ErrorCategory.InvalidOperation, new { }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(ex.Message) { RecommendedAction = ex.Action } + }); + } + } + + /// a delegate that is called when the remote service returns 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/eventgrid/generated/cmdlets/RemoveAzEventGridPartnerTopicEventSubscription_Delete.cs b/swaggerci/eventgrid/generated/cmdlets/RemoveAzEventGridPartnerTopicEventSubscription_Delete.cs new file mode 100644 index 000000000000..6b32b9c11bc9 --- /dev/null +++ b/swaggerci/eventgrid/generated/cmdlets/RemoveAzEventGridPartnerTopicEventSubscription_Delete.cs @@ -0,0 +1,513 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Extensions; + using System; + + /// Delete an existing event subscription of a partner topic. + /// + /// [OpenAPI] Delete=>DELETE:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.EventGrid/partnerTopics/{partnerTopicName}/eventSubscriptions/{eventSubscriptionName}" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsCommon.Remove, @"AzEventGridPartnerTopicEventSubscription_Delete", SupportsShouldProcess = true)] + [global::System.Management.Automation.OutputType(typeof(bool))] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Description(@"Delete an existing event subscription of a partner topic.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Generated] + public partial class RemoveAzEventGridPartnerTopicEventSubscription_Delete : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener + { + /// A unique id generatd for the this cmdlet when it is instantiated. + private string __correlationId = System.Guid.NewGuid().ToString(); + + /// A copy of the Invocation Info (necessary to allow asJob to clone this cmdlet) + private global::System.Management.Automation.InvocationInfo __invocationInfo; + + /// A unique id generatd for the 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.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.EventGridManagementClient Client => Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.ClientAPI; + + /// + /// The credentials, account, tenant, and subscription used for communication with Azure + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The credentials, account, tenant, and subscription used for communication with Azure.")] + [global::System.Management.Automation.ValidateNotNull] + [global::System.Management.Automation.Alias("AzureRMContext", "AzureCredential")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Azure)] + public global::System.Management.Automation.PSObject DefaultProfile { get; set; } + + /// Backing field for property. + private string _eventSubscriptionName; + + /// + /// Name of the event subscription to be created. Event subscription names must be between 3 and 100 characters in length + /// and use alphanumeric letters only. + /// + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Name of the event subscription to be created. Event subscription names must be between 3 and 100 characters in length and use alphanumeric letters only.")] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Name of the event subscription to be created. Event subscription names must be between 3 and 100 characters in length and use alphanumeric letters only.", + SerializedName = @"eventSubscriptionName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Path)] + public string EventSubscriptionName { get => this._eventSubscriptionName; set => this._eventSubscriptionName = 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.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[] HttpPipelineAppend { get; set; } + + /// SendAsync Pipeline Steps to be prepended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be prepended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[] HttpPipelinePrepend { get; set; } + + /// Accessor for our copy of the InvocationInfo. + public global::System.Management.Automation.InvocationInfo InvocationInformation { get => __invocationInfo = __invocationInfo ?? this.MyInvocation ; set { __invocationInfo = value; } } + + /// + /// cancellation delegate. Stops the cmdlet when called. + /// + global::System.Action Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter NoWait { get; set; } + + /// Backing field for property. + private string _partnerTopicName; + + /// Name of the partner topic. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Name of the partner topic.")] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Name of the partner topic.", + SerializedName = @"partnerTopicName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Path)] + public string PartnerTopicName { get => this._partnerTopicName; set => this._partnerTopicName = 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.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Runtime.HttpPipeline Pipeline { get; set; } + + /// The URI for the proxy server to use + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "The URI for the proxy server to use")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Uri Proxy { get; set; } + + /// Credentials for a proxy server to use for the remote call + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Credentials for a proxy server to use for the remote call")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Management.Automation.PSCredential ProxyCredential { get; set; } + + /// Use the default credentials for the proxy + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Use the default credentials for the proxy")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter ProxyUseDefaultCredentials { get; set; } + + /// Backing field for property. + private string _resourceGroupName; + + /// The name of the resource group within the user's subscription. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the resource group within the user's subscription.")] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the resource group within the user's subscription.", + SerializedName = @"resourceGroupName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Path)] + public string ResourceGroupName { get => this._resourceGroupName; set => this._resourceGroupName = value; } + + /// Backing field for property. + private string _subscriptionId; + + /// + /// Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription ID forms part of the + /// URI for every service call. + /// + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.")] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.", + SerializedName = @"subscriptionId", + PossibleTypes = new [] { typeof(string) })] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.DefaultInfo( + Name = @"", + Description =@"", + Script = @"(Get-AzContext).Subscription.Id")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Path)] + public string SubscriptionId { get => this._subscriptionId; set => this._subscriptionId = value; } + + /// + /// overrideOnDefault will be called before the regular onDefault has been processed, allowing customization of what + /// happens on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// /// Determines if the rest of the onDefault method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnDefault(global::System.Net.Http.HttpResponseMessage responseMessage, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnNoContent will be called before the regular onNoContent has been processed, allowing customization of + /// what happens on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// /// Determines if the rest of the onNoContent method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnNoContent(global::System.Net.Http.HttpResponseMessage responseMessage, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnOk will be called before the regular onOk has been processed, allowing customization of what happens + /// on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// /// Determines if the rest of the onOk method should be processed, or if the method should return + /// immediately (set to true to skip further processing ) + + partial void overrideOnOk(global::System.Net.Http.HttpResponseMessage responseMessage, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// (overrides the default BeginProcessing method in global::System.Management.Automation.PSCmdlet) + /// + protected override void BeginProcessing() + { + var telemetryId = Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.GetTelemetryId.Invoke(); + if (telemetryId != "" && telemetryId != "internal") + { + __correlationId = telemetryId; + } + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Creates a duplicate instance of this cmdlet (via JSON serialization). + /// a duplicate instance of RemoveAzEventGridPartnerTopicEventSubscription_Delete + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Cmdlets.RemoveAzEventGridPartnerTopicEventSubscription_Delete Clone() + { + var clone = new RemoveAzEventGridPartnerTopicEventSubscription_Delete(); + clone.__correlationId = this.__correlationId; + clone.__processRecordId = this.__processRecordId; + clone.DefaultProfile = this.DefaultProfile; + clone.InvocationInformation = this.InvocationInformation; + clone.Proxy = this.Proxy; + clone.Pipeline = this.Pipeline; + clone.AsJob = this.AsJob; + clone.Break = this.Break; + clone.ProxyCredential = this.ProxyCredential; + clone.ProxyUseDefaultCredentials = this.ProxyUseDefaultCredentials; + clone.HttpPipelinePrepend = this.HttpPipelinePrepend; + clone.HttpPipelineAppend = this.HttpPipelineAppend; + clone.SubscriptionId = this.SubscriptionId; + clone.ResourceGroupName = this.ResourceGroupName; + clone.PartnerTopicName = this.PartnerTopicName; + clone.EventSubscriptionName = this.EventSubscriptionName; + return clone; + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + + } + + /// Handles/Dispatches events during the call to the REST service. + /// The message id + /// The message cancellation token. When this call is cancelled, this should be true + /// Detailed message data for the message event. + /// + /// A that will be complete when handling of the message is completed. + /// + async global::System.Threading.Tasks.Task Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener.Signal(string id, global::System.Threading.CancellationToken token, global::System.Func messageData) + { + using( NoSynchronizationContext ) + { + if (token.IsCancellationRequested) + { + return ; + } + + switch ( id ) + { + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.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.EventGrid.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.EventGrid.Runtime.PowerShell.AsyncOperationResponse { Target = uri }); + // do nothing more. + data.Cancel(); + return; + } + } + break; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.EventData ), InvocationInformation, this.ParameterSetName, __correlationId, __processRecordId, null ); + if (token.IsCancellationRequested) + { + return ; + } + WriteDebug($"{id}: {(messageData().Message ?? global::System.String.Empty)}"); + } + } + + /// Performs execution of the command. + protected override void ProcessRecord() + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + if (ShouldProcess($"Call remote 'PartnerTopicEventSubscriptionsDelete' operation")) + { + if (true == MyInvocation?.BoundParameters?.ContainsKey("AsJob")) + { + var instance = this.Clone(); + var job = new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token); + } + } + } + } + catch (global::System.AggregateException aggregateException) + { + // unroll the inner exceptions to get the root cause + foreach( var innerException in aggregateException.Flatten().InnerExceptions ) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(innerException,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + } + catch (global::System.Exception exception) when ((exception as System.Management.Automation.PipelineStoppedException)== null || (exception as System.Management.Automation.PipelineStoppedException).InnerException != null) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(exception,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + finally + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletProcessRecordEnd).Wait(); + } + } + + /// Performs execution of the command, working asynchronously if required. + /// + /// A that will be complete when handling of the method is completed. + /// + protected async global::System.Threading.Tasks.Task ProcessRecordAsync() + { + using( NoSynchronizationContext ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await this.Client.PartnerTopicEventSubscriptionsDelete(SubscriptionId, ResourceGroupName, PartnerTopicName, EventSubscriptionName, onOk, onNoContent, onDefault, this, Pipeline); + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.UndeclaredResponseException urexception) + { + WriteError(new global::System.Management.Automation.ErrorRecord(urexception, urexception.StatusCode.ToString(), global::System.Management.Automation.ErrorCategory.InvalidOperation, new { SubscriptionId=SubscriptionId,ResourceGroupName=ResourceGroupName,PartnerTopicName=PartnerTopicName,EventSubscriptionName=EventSubscriptionName}) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(urexception.Message) { RecommendedAction = urexception.Action } + }); + } + finally + { + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// + /// Intializes a new instance of the cmdlet class. + /// + public RemoveAzEventGridPartnerTopicEventSubscription_Delete() + { + + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Cancel(); + base.StopProcessing(); + } + + /// + /// a delegate that is called when the remote service returns default (any response code not handled elsewhere). + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onDefault(global::System.Net.Http.HttpResponseMessage responseMessage) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnDefault(responseMessage, ref _returnNow); + // if overrideOnDefault has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // Error Response : default + // Unrecognized Response. Create an error record based on what we have. + var ex = new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.RestException(responseMessage); + WriteError( new global::System.Management.Automation.ErrorRecord(ex, ex.Code, global::System.Management.Automation.ErrorCategory.InvalidOperation, new { SubscriptionId=SubscriptionId, ResourceGroupName=ResourceGroupName, PartnerTopicName=PartnerTopicName, EventSubscriptionName=EventSubscriptionName }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(ex.Message) { RecommendedAction = ex.Action } + }); + } + } + + /// 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/eventgrid/generated/cmdlets/RemoveAzEventGridPartnerTopicEventSubscription_DeleteViaIdentity.cs b/swaggerci/eventgrid/generated/cmdlets/RemoveAzEventGridPartnerTopicEventSubscription_DeleteViaIdentity.cs new file mode 100644 index 000000000000..b4b06121907e --- /dev/null +++ b/swaggerci/eventgrid/generated/cmdlets/RemoveAzEventGridPartnerTopicEventSubscription_DeleteViaIdentity.cs @@ -0,0 +1,478 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Extensions; + using System; + + /// Delete an existing event subscription of a partner topic. + /// + /// [OpenAPI] Delete=>DELETE:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.EventGrid/partnerTopics/{partnerTopicName}/eventSubscriptions/{eventSubscriptionName}" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsCommon.Remove, @"AzEventGridPartnerTopicEventSubscription_DeleteViaIdentity", SupportsShouldProcess = true)] + [global::System.Management.Automation.OutputType(typeof(bool))] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Description(@"Delete an existing event subscription of a partner topic.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Generated] + public partial class RemoveAzEventGridPartnerTopicEventSubscription_DeleteViaIdentity : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener + { + /// A unique id generatd for the this cmdlet when it is instantiated. + private string __correlationId = System.Guid.NewGuid().ToString(); + + /// A copy of the Invocation Info (necessary to allow asJob to clone this cmdlet) + private global::System.Management.Automation.InvocationInfo __invocationInfo; + + /// A unique id generatd for the 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.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.EventGridManagementClient Client => Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.ClientAPI; + + /// + /// The credentials, account, tenant, and subscription used for communication with Azure + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The credentials, account, tenant, and subscription used for communication with Azure.")] + [global::System.Management.Automation.ValidateNotNull] + [global::System.Management.Automation.Alias("AzureRMContext", "AzureCredential")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Azure)] + public global::System.Management.Automation.PSObject DefaultProfile { get; set; } + + /// SendAsync Pipeline Steps to be appended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be appended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[] HttpPipelineAppend { get; set; } + + /// SendAsync Pipeline Steps to be prepended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be prepended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[] HttpPipelinePrepend { get; set; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.IEventGridIdentity _inputObject; + + /// Identity Parameter + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Identity Parameter", ValueFromPipeline = true)] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Path)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.IEventGridIdentity InputObject { get => this._inputObject; set => this._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.EventGrid.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter NoWait { get; set; } + + /// + /// When specified, forces the cmdlet return a 'bool' given that there isn't a return type by default. + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Returns true when the command succeeds")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Runtime.HttpPipeline Pipeline { get; set; } + + /// The URI for the proxy server to use + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "The URI for the proxy server to use")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Uri Proxy { get; set; } + + /// Credentials for a proxy server to use for the remote call + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Credentials for a proxy server to use for the remote call")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Management.Automation.PSCredential ProxyCredential { get; set; } + + /// Use the default credentials for the proxy + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Use the default credentials for the proxy")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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. + /// /// Determines if the rest of the onDefault method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnDefault(global::System.Net.Http.HttpResponseMessage responseMessage, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnNoContent will be called before the regular onNoContent has been processed, allowing customization of + /// what happens on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// /// Determines if the rest of the onNoContent method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnNoContent(global::System.Net.Http.HttpResponseMessage responseMessage, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnOk will be called before the regular onOk has been processed, allowing customization of what happens + /// on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// /// Determines if the rest of the onOk method should be processed, or if the method should return + /// immediately (set to true to skip further processing ) + + partial void overrideOnOk(global::System.Net.Http.HttpResponseMessage responseMessage, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// (overrides the default BeginProcessing method in global::System.Management.Automation.PSCmdlet) + /// + protected override void BeginProcessing() + { + var telemetryId = Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.GetTelemetryId.Invoke(); + if (telemetryId != "" && telemetryId != "internal") + { + __correlationId = telemetryId; + } + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Creates a duplicate instance of this cmdlet (via JSON serialization). + /// + /// a duplicate instance of RemoveAzEventGridPartnerTopicEventSubscription_DeleteViaIdentity + /// + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Cmdlets.RemoveAzEventGridPartnerTopicEventSubscription_DeleteViaIdentity Clone() + { + var clone = new RemoveAzEventGridPartnerTopicEventSubscription_DeleteViaIdentity(); + clone.__correlationId = this.__correlationId; + clone.__processRecordId = this.__processRecordId; + clone.DefaultProfile = this.DefaultProfile; + clone.InvocationInformation = this.InvocationInformation; + clone.Proxy = this.Proxy; + clone.Pipeline = this.Pipeline; + clone.AsJob = this.AsJob; + clone.Break = this.Break; + clone.ProxyCredential = this.ProxyCredential; + clone.ProxyUseDefaultCredentials = this.ProxyUseDefaultCredentials; + clone.HttpPipelinePrepend = this.HttpPipelinePrepend; + clone.HttpPipelineAppend = this.HttpPipelineAppend; + return clone; + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + + } + + /// Handles/Dispatches events during the call to the REST service. + /// The message id + /// The message cancellation token. When this call is cancelled, this should be true + /// Detailed message data for the message event. + /// + /// A that will be complete when handling of the message is completed. + /// + async global::System.Threading.Tasks.Task Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener.Signal(string id, global::System.Threading.CancellationToken token, global::System.Func messageData) + { + using( NoSynchronizationContext ) + { + if (token.IsCancellationRequested) + { + return ; + } + + switch ( id ) + { + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.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.EventGrid.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.EventGrid.Runtime.PowerShell.AsyncOperationResponse { Target = uri }); + // do nothing more. + data.Cancel(); + return; + } + } + break; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.EventData ), InvocationInformation, this.ParameterSetName, __correlationId, __processRecordId, null ); + if (token.IsCancellationRequested) + { + return ; + } + WriteDebug($"{id}: {(messageData().Message ?? global::System.String.Empty)}"); + } + } + + /// Performs execution of the command. + protected override void ProcessRecord() + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + if (ShouldProcess($"Call remote 'PartnerTopicEventSubscriptionsDelete' operation")) + { + if (true == MyInvocation?.BoundParameters?.ContainsKey("AsJob")) + { + var instance = this.Clone(); + var job = new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token); + } + } + } + } + catch (global::System.AggregateException aggregateException) + { + // unroll the inner exceptions to get the root cause + foreach( var innerException in aggregateException.Flatten().InnerExceptions ) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(innerException,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + } + catch (global::System.Exception exception) when ((exception as System.Management.Automation.PipelineStoppedException)== null || (exception as System.Management.Automation.PipelineStoppedException).InnerException != null) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(exception,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + finally + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletProcessRecordEnd).Wait(); + } + } + + /// Performs execution of the command, working asynchronously if required. + /// + /// A that will be complete when handling of the method is completed. + /// + protected async global::System.Threading.Tasks.Task ProcessRecordAsync() + { + using( NoSynchronizationContext ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + if (InputObject?.Id != null) + { + await this.Client.PartnerTopicEventSubscriptionsDeleteViaIdentity(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.PartnerTopicName) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.PartnerTopicName"),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, InputObject) ); + } + if (null == InputObject.EventSubscriptionName) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.EventSubscriptionName"),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, InputObject) ); + } + await this.Client.PartnerTopicEventSubscriptionsDelete(InputObject.SubscriptionId ?? null, InputObject.ResourceGroupName ?? null, InputObject.PartnerTopicName ?? null, InputObject.EventSubscriptionName ?? null, onOk, onNoContent, onDefault, this, Pipeline); + } + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// + /// Intializes a new instance of the cmdlet + /// class. + /// + public RemoveAzEventGridPartnerTopicEventSubscription_DeleteViaIdentity() + { + + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Cancel(); + base.StopProcessing(); + } + + /// + /// a delegate that is called when the remote service returns default (any response code not handled elsewhere). + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onDefault(global::System.Net.Http.HttpResponseMessage responseMessage) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnDefault(responseMessage, ref _returnNow); + // if overrideOnDefault has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // Error Response : default + // Unrecognized Response. Create an error record based on what we have. + var ex = new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.RestException(responseMessage); + WriteError( new global::System.Management.Automation.ErrorRecord(ex, ex.Code, global::System.Management.Automation.ErrorCategory.InvalidOperation, new { }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(ex.Message) { RecommendedAction = ex.Action } + }); + } + } + + /// a delegate that is called when the remote service returns 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/eventgrid/generated/cmdlets/RemoveAzEventGridPartnerTopic_Delete.cs b/swaggerci/eventgrid/generated/cmdlets/RemoveAzEventGridPartnerTopic_Delete.cs new file mode 100644 index 000000000000..a4f2b41ffbbf --- /dev/null +++ b/swaggerci/eventgrid/generated/cmdlets/RemoveAzEventGridPartnerTopic_Delete.cs @@ -0,0 +1,496 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Extensions; + using System; + + /// Delete existing partner topic. + /// + /// [OpenAPI] Delete=>DELETE:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.EventGrid/partnerTopics/{partnerTopicName}" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsCommon.Remove, @"AzEventGridPartnerTopic_Delete", SupportsShouldProcess = true)] + [global::System.Management.Automation.OutputType(typeof(bool))] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Description(@"Delete existing partner topic.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Generated] + public partial class RemoveAzEventGridPartnerTopic_Delete : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener + { + /// A unique id generatd for the this cmdlet when it is instantiated. + private string __correlationId = System.Guid.NewGuid().ToString(); + + /// A copy of the Invocation Info (necessary to allow asJob to clone this cmdlet) + private global::System.Management.Automation.InvocationInfo __invocationInfo; + + /// A unique id generatd for the 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.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.EventGridManagementClient Client => Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.ClientAPI; + + /// + /// The credentials, account, tenant, and subscription used for communication with Azure + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The credentials, account, tenant, and subscription used for communication with Azure.")] + [global::System.Management.Automation.ValidateNotNull] + [global::System.Management.Automation.Alias("AzureRMContext", "AzureCredential")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Azure)] + public global::System.Management.Automation.PSObject DefaultProfile { get; set; } + + /// SendAsync Pipeline Steps to be appended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be appended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[] HttpPipelineAppend { get; set; } + + /// SendAsync Pipeline Steps to be prepended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be prepended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[] HttpPipelinePrepend { get; set; } + + /// Accessor for our copy of the InvocationInfo. + public global::System.Management.Automation.InvocationInfo InvocationInformation { get => __invocationInfo = __invocationInfo ?? this.MyInvocation ; set { __invocationInfo = value; } } + + /// + /// cancellation delegate. Stops the cmdlet when called. + /// + global::System.Action Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener.Token => _cancellationTokenSource.Token; + + /// Backing field for property. + private string _name; + + /// Name of the partner topic. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Name of the partner topic.")] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Name of the partner topic.", + SerializedName = @"partnerTopicName", + PossibleTypes = new [] { typeof(string) })] + [global::System.Management.Automation.Alias("PartnerTopicName")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Path)] + public string Name { get => this._name; set => this._name = value; } + + /// + /// when specified, will make the remote call, and return an AsyncOperationResponse, letting the remote operation continue + /// asynchronously. + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Run the command asynchronously")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter NoWait { get; set; } + + /// + /// When specified, forces the cmdlet return a 'bool' given that there isn't a return type by default. + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Returns true when the command succeeds")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Runtime.HttpPipeline Pipeline { get; set; } + + /// The URI for the proxy server to use + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "The URI for the proxy server to use")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Uri Proxy { get; set; } + + /// Credentials for a proxy server to use for the remote call + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Credentials for a proxy server to use for the remote call")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Management.Automation.PSCredential ProxyCredential { get; set; } + + /// Use the default credentials for the proxy + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Use the default credentials for the proxy")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter ProxyUseDefaultCredentials { get; set; } + + /// Backing field for property. + private string _resourceGroupName; + + /// The name of the resource group within the user's subscription. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the resource group within the user's subscription.")] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the resource group within the user's subscription.", + SerializedName = @"resourceGroupName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Path)] + public string ResourceGroupName { get => this._resourceGroupName; set => this._resourceGroupName = value; } + + /// Backing field for property. + private string _subscriptionId; + + /// + /// Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription ID forms part of the + /// URI for every service call. + /// + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.")] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.", + SerializedName = @"subscriptionId", + PossibleTypes = new [] { typeof(string) })] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.DefaultInfo( + Name = @"", + Description =@"", + Script = @"(Get-AzContext).Subscription.Id")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Path)] + public string SubscriptionId { get => this._subscriptionId; set => this._subscriptionId = value; } + + /// + /// overrideOnDefault will be called before the regular onDefault has been processed, allowing customization of what + /// happens on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// /// Determines if the rest of the onDefault method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnDefault(global::System.Net.Http.HttpResponseMessage responseMessage, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnNoContent will be called before the regular onNoContent has been processed, allowing customization of + /// what happens on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// /// Determines if the rest of the onNoContent method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnNoContent(global::System.Net.Http.HttpResponseMessage responseMessage, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnOk will be called before the regular onOk has been processed, allowing customization of what happens + /// on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// /// Determines if the rest of the onOk method should be processed, or if the method should return + /// immediately (set to true to skip further processing ) + + partial void overrideOnOk(global::System.Net.Http.HttpResponseMessage responseMessage, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// (overrides the default BeginProcessing method in global::System.Management.Automation.PSCmdlet) + /// + protected override void BeginProcessing() + { + var telemetryId = Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.GetTelemetryId.Invoke(); + if (telemetryId != "" && telemetryId != "internal") + { + __correlationId = telemetryId; + } + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Creates a duplicate instance of this cmdlet (via JSON serialization). + /// a duplicate instance of RemoveAzEventGridPartnerTopic_Delete + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Cmdlets.RemoveAzEventGridPartnerTopic_Delete Clone() + { + var clone = new RemoveAzEventGridPartnerTopic_Delete(); + clone.__correlationId = this.__correlationId; + clone.__processRecordId = this.__processRecordId; + clone.DefaultProfile = this.DefaultProfile; + clone.InvocationInformation = this.InvocationInformation; + clone.Proxy = this.Proxy; + clone.Pipeline = this.Pipeline; + clone.AsJob = this.AsJob; + clone.Break = this.Break; + clone.ProxyCredential = this.ProxyCredential; + clone.ProxyUseDefaultCredentials = this.ProxyUseDefaultCredentials; + clone.HttpPipelinePrepend = this.HttpPipelinePrepend; + clone.HttpPipelineAppend = this.HttpPipelineAppend; + clone.SubscriptionId = this.SubscriptionId; + clone.ResourceGroupName = this.ResourceGroupName; + clone.Name = this.Name; + return clone; + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + + } + + /// Handles/Dispatches events during the call to the REST service. + /// The message id + /// The message cancellation token. When this call is cancelled, this should be true + /// Detailed message data for the message event. + /// + /// A that will be complete when handling of the message is completed. + /// + async global::System.Threading.Tasks.Task Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener.Signal(string id, global::System.Threading.CancellationToken token, global::System.Func messageData) + { + using( NoSynchronizationContext ) + { + if (token.IsCancellationRequested) + { + return ; + } + + switch ( id ) + { + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.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.EventGrid.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.EventGrid.Runtime.PowerShell.AsyncOperationResponse { Target = uri }); + // do nothing more. + data.Cancel(); + return; + } + } + break; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.EventData ), InvocationInformation, this.ParameterSetName, __correlationId, __processRecordId, null ); + if (token.IsCancellationRequested) + { + return ; + } + WriteDebug($"{id}: {(messageData().Message ?? global::System.String.Empty)}"); + } + } + + /// Performs execution of the command. + protected override void ProcessRecord() + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + if (ShouldProcess($"Call remote 'PartnerTopicsDelete' operation")) + { + if (true == MyInvocation?.BoundParameters?.ContainsKey("AsJob")) + { + var instance = this.Clone(); + var job = new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token); + } + } + } + } + catch (global::System.AggregateException aggregateException) + { + // unroll the inner exceptions to get the root cause + foreach( var innerException in aggregateException.Flatten().InnerExceptions ) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(innerException,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + } + catch (global::System.Exception exception) when ((exception as System.Management.Automation.PipelineStoppedException)== null || (exception as System.Management.Automation.PipelineStoppedException).InnerException != null) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(exception,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + finally + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletProcessRecordEnd).Wait(); + } + } + + /// Performs execution of the command, working asynchronously if required. + /// + /// A that will be complete when handling of the method is completed. + /// + protected async global::System.Threading.Tasks.Task ProcessRecordAsync() + { + using( NoSynchronizationContext ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await this.Client.PartnerTopicsDelete(SubscriptionId, ResourceGroupName, Name, onOk, onNoContent, onDefault, this, Pipeline); + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.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.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// + /// Intializes a new instance of the cmdlet class. + /// + public RemoveAzEventGridPartnerTopic_Delete() + { + + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Cancel(); + base.StopProcessing(); + } + + /// + /// a delegate that is called when the remote service returns default (any response code not handled elsewhere). + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onDefault(global::System.Net.Http.HttpResponseMessage responseMessage) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnDefault(responseMessage, ref _returnNow); + // if overrideOnDefault has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // Error Response : default + // Unrecognized Response. Create an error record based on what we have. + var ex = new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.RestException(responseMessage); + 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 } + }); + } + } + + /// 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/eventgrid/generated/cmdlets/RemoveAzEventGridPartnerTopic_DeleteViaIdentity.cs b/swaggerci/eventgrid/generated/cmdlets/RemoveAzEventGridPartnerTopic_DeleteViaIdentity.cs new file mode 100644 index 000000000000..3167fe36af5a --- /dev/null +++ b/swaggerci/eventgrid/generated/cmdlets/RemoveAzEventGridPartnerTopic_DeleteViaIdentity.cs @@ -0,0 +1,471 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Extensions; + using System; + + /// Delete existing partner topic. + /// + /// [OpenAPI] Delete=>DELETE:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.EventGrid/partnerTopics/{partnerTopicName}" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsCommon.Remove, @"AzEventGridPartnerTopic_DeleteViaIdentity", SupportsShouldProcess = true)] + [global::System.Management.Automation.OutputType(typeof(bool))] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Description(@"Delete existing partner topic.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Generated] + public partial class RemoveAzEventGridPartnerTopic_DeleteViaIdentity : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener + { + /// A unique id generatd for the this cmdlet when it is instantiated. + private string __correlationId = System.Guid.NewGuid().ToString(); + + /// A copy of the Invocation Info (necessary to allow asJob to clone this cmdlet) + private global::System.Management.Automation.InvocationInfo __invocationInfo; + + /// A unique id generatd for the 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.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.EventGridManagementClient Client => Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.ClientAPI; + + /// + /// The credentials, account, tenant, and subscription used for communication with Azure + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The credentials, account, tenant, and subscription used for communication with Azure.")] + [global::System.Management.Automation.ValidateNotNull] + [global::System.Management.Automation.Alias("AzureRMContext", "AzureCredential")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Azure)] + public global::System.Management.Automation.PSObject DefaultProfile { get; set; } + + /// SendAsync Pipeline Steps to be appended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be appended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[] HttpPipelineAppend { get; set; } + + /// SendAsync Pipeline Steps to be prepended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be prepended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[] HttpPipelinePrepend { get; set; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.IEventGridIdentity _inputObject; + + /// Identity Parameter + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Identity Parameter", ValueFromPipeline = true)] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Path)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.IEventGridIdentity InputObject { get => this._inputObject; set => this._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.EventGrid.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter NoWait { get; set; } + + /// + /// When specified, forces the cmdlet return a 'bool' given that there isn't a return type by default. + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Returns true when the command succeeds")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Runtime.HttpPipeline Pipeline { get; set; } + + /// The URI for the proxy server to use + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "The URI for the proxy server to use")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Uri Proxy { get; set; } + + /// Credentials for a proxy server to use for the remote call + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Credentials for a proxy server to use for the remote call")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Management.Automation.PSCredential ProxyCredential { get; set; } + + /// Use the default credentials for the proxy + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Use the default credentials for the proxy")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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. + /// /// Determines if the rest of the onDefault method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnDefault(global::System.Net.Http.HttpResponseMessage responseMessage, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnNoContent will be called before the regular onNoContent has been processed, allowing customization of + /// what happens on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// /// Determines if the rest of the onNoContent method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnNoContent(global::System.Net.Http.HttpResponseMessage responseMessage, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnOk will be called before the regular onOk has been processed, allowing customization of what happens + /// on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// /// Determines if the rest of the onOk method should be processed, or if the method should return + /// immediately (set to true to skip further processing ) + + partial void overrideOnOk(global::System.Net.Http.HttpResponseMessage responseMessage, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// (overrides the default BeginProcessing method in global::System.Management.Automation.PSCmdlet) + /// + protected override void BeginProcessing() + { + var telemetryId = Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.GetTelemetryId.Invoke(); + if (telemetryId != "" && telemetryId != "internal") + { + __correlationId = telemetryId; + } + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Creates a duplicate instance of this cmdlet (via JSON serialization). + /// a duplicate instance of RemoveAzEventGridPartnerTopic_DeleteViaIdentity + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Cmdlets.RemoveAzEventGridPartnerTopic_DeleteViaIdentity Clone() + { + var clone = new RemoveAzEventGridPartnerTopic_DeleteViaIdentity(); + clone.__correlationId = this.__correlationId; + clone.__processRecordId = this.__processRecordId; + clone.DefaultProfile = this.DefaultProfile; + clone.InvocationInformation = this.InvocationInformation; + clone.Proxy = this.Proxy; + clone.Pipeline = this.Pipeline; + clone.AsJob = this.AsJob; + clone.Break = this.Break; + clone.ProxyCredential = this.ProxyCredential; + clone.ProxyUseDefaultCredentials = this.ProxyUseDefaultCredentials; + clone.HttpPipelinePrepend = this.HttpPipelinePrepend; + clone.HttpPipelineAppend = this.HttpPipelineAppend; + return clone; + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + + } + + /// Handles/Dispatches events during the call to the REST service. + /// The message id + /// The message cancellation token. When this call is cancelled, this should be true + /// Detailed message data for the message event. + /// + /// A that will be complete when handling of the message is completed. + /// + async global::System.Threading.Tasks.Task Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener.Signal(string id, global::System.Threading.CancellationToken token, global::System.Func messageData) + { + using( NoSynchronizationContext ) + { + if (token.IsCancellationRequested) + { + return ; + } + + switch ( id ) + { + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.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.EventGrid.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.EventGrid.Runtime.PowerShell.AsyncOperationResponse { Target = uri }); + // do nothing more. + data.Cancel(); + return; + } + } + break; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.EventData ), InvocationInformation, this.ParameterSetName, __correlationId, __processRecordId, null ); + if (token.IsCancellationRequested) + { + return ; + } + WriteDebug($"{id}: {(messageData().Message ?? global::System.String.Empty)}"); + } + } + + /// Performs execution of the command. + protected override void ProcessRecord() + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + if (ShouldProcess($"Call remote 'PartnerTopicsDelete' operation")) + { + if (true == MyInvocation?.BoundParameters?.ContainsKey("AsJob")) + { + var instance = this.Clone(); + var job = new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token); + } + } + } + } + catch (global::System.AggregateException aggregateException) + { + // unroll the inner exceptions to get the root cause + foreach( var innerException in aggregateException.Flatten().InnerExceptions ) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(innerException,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + } + catch (global::System.Exception exception) when ((exception as System.Management.Automation.PipelineStoppedException)== null || (exception as System.Management.Automation.PipelineStoppedException).InnerException != null) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(exception,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + finally + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletProcessRecordEnd).Wait(); + } + } + + /// Performs execution of the command, working asynchronously if required. + /// + /// A that will be complete when handling of the method is completed. + /// + protected async global::System.Threading.Tasks.Task ProcessRecordAsync() + { + using( NoSynchronizationContext ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + if (InputObject?.Id != null) + { + await this.Client.PartnerTopicsDeleteViaIdentity(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.PartnerTopicName) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.PartnerTopicName"),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, InputObject) ); + } + await this.Client.PartnerTopicsDelete(InputObject.SubscriptionId ?? null, InputObject.ResourceGroupName ?? null, InputObject.PartnerTopicName ?? null, onOk, onNoContent, onDefault, this, Pipeline); + } + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// + /// Intializes a new instance of the cmdlet class. + /// + public RemoveAzEventGridPartnerTopic_DeleteViaIdentity() + { + + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Cancel(); + base.StopProcessing(); + } + + /// + /// a delegate that is called when the remote service returns default (any response code not handled elsewhere). + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onDefault(global::System.Net.Http.HttpResponseMessage responseMessage) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnDefault(responseMessage, ref _returnNow); + // if overrideOnDefault has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // Error Response : default + // Unrecognized Response. Create an error record based on what we have. + var ex = new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.RestException(responseMessage); + WriteError( new global::System.Management.Automation.ErrorRecord(ex, ex.Code, global::System.Management.Automation.ErrorCategory.InvalidOperation, new { }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(ex.Message) { RecommendedAction = ex.Action } + }); + } + } + + /// a delegate that is called when the remote service returns 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/eventgrid/generated/cmdlets/RemoveAzEventGridPrivateEndpointConnection_Delete.cs b/swaggerci/eventgrid/generated/cmdlets/RemoveAzEventGridPrivateEndpointConnection_Delete.cs new file mode 100644 index 000000000000..ac2194f835df --- /dev/null +++ b/swaggerci/eventgrid/generated/cmdlets/RemoveAzEventGridPrivateEndpointConnection_Delete.cs @@ -0,0 +1,499 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Extensions; + using System; + + /// + /// Delete a specific private endpoint connection under a topic, domain, or partner namespace. + /// + /// + /// [OpenAPI] Delete=>DELETE:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.EventGrid/{parentType}/{parentName}/privateEndpointConnections/{privateEndpointConnectionName}" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsCommon.Remove, @"AzEventGridPrivateEndpointConnection_Delete", SupportsShouldProcess = true)] + [global::System.Management.Automation.OutputType(typeof(bool))] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Description(@"Delete a specific private endpoint connection under a topic, domain, or partner namespace.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Generated] + public partial class RemoveAzEventGridPrivateEndpointConnection_Delete : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener + { + /// A unique id generatd for the this cmdlet when it is instantiated. + private string __correlationId = System.Guid.NewGuid().ToString(); + + /// A copy of the Invocation Info (necessary to allow asJob to clone this cmdlet) + private global::System.Management.Automation.InvocationInfo __invocationInfo; + + /// A unique id generatd for the 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.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.EventGridManagementClient Client => Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.ClientAPI; + + /// + /// The credentials, account, tenant, and subscription used for communication with Azure + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The credentials, account, tenant, and subscription used for communication with Azure.")] + [global::System.Management.Automation.ValidateNotNull] + [global::System.Management.Automation.Alias("AzureRMContext", "AzureCredential")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Azure)] + public global::System.Management.Automation.PSObject DefaultProfile { get; set; } + + /// SendAsync Pipeline Steps to be appended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be appended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[] HttpPipelineAppend { get; set; } + + /// SendAsync Pipeline Steps to be prepended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be prepended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[] HttpPipelinePrepend { get; set; } + + /// Accessor for our copy of the InvocationInfo. + public global::System.Management.Automation.InvocationInfo InvocationInformation { get => __invocationInfo = __invocationInfo ?? this.MyInvocation ; set { __invocationInfo = value; } } + + /// + /// cancellation delegate. Stops the cmdlet when called. + /// + global::System.Action Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener.Token => _cancellationTokenSource.Token; + + /// Backing field for property. + private string _name; + + /// The name of the private endpoint connection connection. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the private endpoint connection connection.")] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the private endpoint connection connection.", + SerializedName = @"privateEndpointConnectionName", + PossibleTypes = new [] { typeof(string) })] + [global::System.Management.Automation.Alias("PrivateEndpointConnectionName")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Path)] + public string Name { get => this._name; set => this._name = value; } + + /// + /// when specified, will make the remote call, and return an AsyncOperationResponse, letting the remote operation continue + /// asynchronously. + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Run the command asynchronously")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter NoWait { get; set; } + + /// Backing field for property. + private string _parentName; + + /// + /// The name of the parent resource (namely, either, the topic name, domain name, or partner namespace name). + /// + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the parent resource (namely, either, the topic name, domain name, or partner namespace name).")] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the parent resource (namely, either, the topic name, domain name, or partner namespace name).", + SerializedName = @"parentName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Path)] + public string ParentName { get => this._parentName; set => this._parentName = value; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.ParentType _parentType; + + /// + /// The type of the parent resource. This can be either \'topics\', \'domains\', or \'partnerNamespaces\'. + /// + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The type of the parent resource. This can be either \\'topics\\', \\'domains\\', or \\'partnerNamespaces\\'.")] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The type of the parent resource. This can be either \'topics\', \'domains\', or \'partnerNamespaces\'.", + SerializedName = @"parentType", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.ParentType) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Path)] + [global::System.Management.Automation.ArgumentCompleter(typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.ParentType))] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.ParentType ParentType { get => this._parentType; set => this._parentType = 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.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Runtime.HttpPipeline Pipeline { get; set; } + + /// The URI for the proxy server to use + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "The URI for the proxy server to use")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Uri Proxy { get; set; } + + /// Credentials for a proxy server to use for the remote call + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Credentials for a proxy server to use for the remote call")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Management.Automation.PSCredential ProxyCredential { get; set; } + + /// Use the default credentials for the proxy + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Use the default credentials for the proxy")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter ProxyUseDefaultCredentials { get; set; } + + /// Backing field for property. + private string _resourceGroupName; + + /// The name of the resource group within the user's subscription. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the resource group within the user's subscription.")] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the resource group within the user's subscription.", + SerializedName = @"resourceGroupName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Path)] + public string ResourceGroupName { get => this._resourceGroupName; set => this._resourceGroupName = value; } + + /// Backing field for property. + private string _subscriptionId; + + /// + /// Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription ID forms part of the + /// URI for every service call. + /// + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.")] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.", + SerializedName = @"subscriptionId", + PossibleTypes = new [] { typeof(string) })] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.DefaultInfo( + Name = @"", + Description =@"", + Script = @"(Get-AzContext).Subscription.Id")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Path)] + public string SubscriptionId { get => this._subscriptionId; set => this._subscriptionId = value; } + + /// + /// overrideOnDefault will be called before the regular onDefault has been processed, allowing customization of what + /// happens on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// /// Determines if the rest of the onDefault method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnDefault(global::System.Net.Http.HttpResponseMessage responseMessage, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// 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() + { + var telemetryId = Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.GetTelemetryId.Invoke(); + if (telemetryId != "" && telemetryId != "internal") + { + __correlationId = telemetryId; + } + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Creates a duplicate instance of this cmdlet (via JSON serialization). + /// a duplicate instance of RemoveAzEventGridPrivateEndpointConnection_Delete + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Cmdlets.RemoveAzEventGridPrivateEndpointConnection_Delete Clone() + { + var clone = new RemoveAzEventGridPrivateEndpointConnection_Delete(); + clone.__correlationId = this.__correlationId; + clone.__processRecordId = this.__processRecordId; + clone.DefaultProfile = this.DefaultProfile; + clone.InvocationInformation = this.InvocationInformation; + clone.Proxy = this.Proxy; + clone.Pipeline = this.Pipeline; + clone.AsJob = this.AsJob; + clone.Break = this.Break; + clone.ProxyCredential = this.ProxyCredential; + clone.ProxyUseDefaultCredentials = this.ProxyUseDefaultCredentials; + clone.HttpPipelinePrepend = this.HttpPipelinePrepend; + clone.HttpPipelineAppend = this.HttpPipelineAppend; + clone.SubscriptionId = this.SubscriptionId; + clone.ResourceGroupName = this.ResourceGroupName; + clone.ParentType = this.ParentType; + clone.ParentName = this.ParentName; + clone.Name = this.Name; + return clone; + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + + } + + /// Handles/Dispatches events during the call to the REST service. + /// The message id + /// The message cancellation token. When this call is cancelled, this should be true + /// Detailed message data for the message event. + /// + /// A that will be complete when handling of the message is completed. + /// + async global::System.Threading.Tasks.Task Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener.Signal(string id, global::System.Threading.CancellationToken token, global::System.Func messageData) + { + using( NoSynchronizationContext ) + { + if (token.IsCancellationRequested) + { + return ; + } + + switch ( id ) + { + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.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.EventGrid.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.EventGrid.Runtime.PowerShell.AsyncOperationResponse { Target = uri }); + // do nothing more. + data.Cancel(); + return; + } + } + break; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.EventData ), InvocationInformation, this.ParameterSetName, __correlationId, __processRecordId, null ); + if (token.IsCancellationRequested) + { + return ; + } + WriteDebug($"{id}: {(messageData().Message ?? global::System.String.Empty)}"); + } + } + + /// Performs execution of the command. + protected override void ProcessRecord() + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + if (ShouldProcess($"Call remote 'PrivateEndpointConnectionsDelete' operation")) + { + if (true == MyInvocation?.BoundParameters?.ContainsKey("AsJob")) + { + var instance = this.Clone(); + var job = new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token); + } + } + } + } + catch (global::System.AggregateException aggregateException) + { + // unroll the inner exceptions to get the root cause + foreach( var innerException in aggregateException.Flatten().InnerExceptions ) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(innerException,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + } + catch (global::System.Exception exception) when ((exception as System.Management.Automation.PipelineStoppedException)== null || (exception as System.Management.Automation.PipelineStoppedException).InnerException != null) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(exception,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + finally + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletProcessRecordEnd).Wait(); + } + } + + /// Performs execution of the command, working asynchronously if required. + /// + /// A that will be complete when handling of the method is completed. + /// + protected async global::System.Threading.Tasks.Task ProcessRecordAsync() + { + using( NoSynchronizationContext ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await this.Client.PrivateEndpointConnectionsDelete(SubscriptionId, ResourceGroupName, ParentType, ParentName, Name, onNoContent, onDefault, this, Pipeline); + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.UndeclaredResponseException urexception) + { + WriteError(new global::System.Management.Automation.ErrorRecord(urexception, urexception.StatusCode.ToString(), global::System.Management.Automation.ErrorCategory.InvalidOperation, new { SubscriptionId=SubscriptionId,ResourceGroupName=ResourceGroupName,ParentType=ParentType,ParentName=ParentName,Name=Name}) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(urexception.Message) { RecommendedAction = urexception.Action } + }); + } + finally + { + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// + /// Intializes a new instance of the cmdlet class. + /// + public RemoveAzEventGridPrivateEndpointConnection_Delete() + { + + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Cancel(); + base.StopProcessing(); + } + + /// + /// a delegate that is called when the remote service returns default (any response code not handled elsewhere). + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onDefault(global::System.Net.Http.HttpResponseMessage responseMessage) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnDefault(responseMessage, ref _returnNow); + // if overrideOnDefault has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // Error Response : default + // Unrecognized Response. Create an error record based on what we have. + var ex = new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.RestException(responseMessage); + WriteError( new global::System.Management.Automation.ErrorRecord(ex, ex.Code, global::System.Management.Automation.ErrorCategory.InvalidOperation, new { SubscriptionId=SubscriptionId, ResourceGroupName=ResourceGroupName, ParentType=ParentType, ParentName=ParentName, Name=Name }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(ex.Message) { RecommendedAction = ex.Action } + }); + } + } + + /// 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/eventgrid/generated/cmdlets/RemoveAzEventGridPrivateEndpointConnection_DeleteViaIdentity.cs b/swaggerci/eventgrid/generated/cmdlets/RemoveAzEventGridPrivateEndpointConnection_DeleteViaIdentity.cs new file mode 100644 index 000000000000..56a34afeaadd --- /dev/null +++ b/swaggerci/eventgrid/generated/cmdlets/RemoveAzEventGridPrivateEndpointConnection_DeleteViaIdentity.cs @@ -0,0 +1,449 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Extensions; + using System; + + /// + /// Delete a specific private endpoint connection under a topic, domain, or partner namespace. + /// + /// + /// [OpenAPI] Delete=>DELETE:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.EventGrid/{parentType}/{parentName}/privateEndpointConnections/{privateEndpointConnectionName}" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsCommon.Remove, @"AzEventGridPrivateEndpointConnection_DeleteViaIdentity", SupportsShouldProcess = true)] + [global::System.Management.Automation.OutputType(typeof(bool))] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Description(@"Delete a specific private endpoint connection under a topic, domain, or partner namespace.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Generated] + public partial class RemoveAzEventGridPrivateEndpointConnection_DeleteViaIdentity : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener + { + /// A unique id generatd for the this cmdlet when it is instantiated. + private string __correlationId = System.Guid.NewGuid().ToString(); + + /// A copy of the Invocation Info (necessary to allow asJob to clone this cmdlet) + private global::System.Management.Automation.InvocationInfo __invocationInfo; + + /// A unique id generatd for the 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.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.EventGridManagementClient Client => Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.ClientAPI; + + /// + /// The credentials, account, tenant, and subscription used for communication with Azure + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The credentials, account, tenant, and subscription used for communication with Azure.")] + [global::System.Management.Automation.ValidateNotNull] + [global::System.Management.Automation.Alias("AzureRMContext", "AzureCredential")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Azure)] + public global::System.Management.Automation.PSObject DefaultProfile { get; set; } + + /// SendAsync Pipeline Steps to be appended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be appended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[] HttpPipelineAppend { get; set; } + + /// SendAsync Pipeline Steps to be prepended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be prepended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[] HttpPipelinePrepend { get; set; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.IEventGridIdentity _inputObject; + + /// Identity Parameter + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Identity Parameter", ValueFromPipeline = true)] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Path)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.IEventGridIdentity InputObject { get => this._inputObject; set => this._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.EventGrid.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter NoWait { get; set; } + + /// + /// When specified, forces the cmdlet return a 'bool' given that there isn't a return type by default. + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Returns true when the command succeeds")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Runtime.HttpPipeline Pipeline { get; set; } + + /// The URI for the proxy server to use + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "The URI for the proxy server to use")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Uri Proxy { get; set; } + + /// Credentials for a proxy server to use for the remote call + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Credentials for a proxy server to use for the remote call")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Management.Automation.PSCredential ProxyCredential { get; set; } + + /// Use the default credentials for the proxy + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Use the default credentials for the proxy")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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. + /// /// Determines if the rest of the onDefault method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnDefault(global::System.Net.Http.HttpResponseMessage responseMessage, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// 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() + { + var telemetryId = Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.GetTelemetryId.Invoke(); + if (telemetryId != "" && telemetryId != "internal") + { + __correlationId = telemetryId; + } + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Creates a duplicate instance of this cmdlet (via JSON serialization). + /// + /// a duplicate instance of RemoveAzEventGridPrivateEndpointConnection_DeleteViaIdentity + /// + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Cmdlets.RemoveAzEventGridPrivateEndpointConnection_DeleteViaIdentity Clone() + { + var clone = new RemoveAzEventGridPrivateEndpointConnection_DeleteViaIdentity(); + clone.__correlationId = this.__correlationId; + clone.__processRecordId = this.__processRecordId; + clone.DefaultProfile = this.DefaultProfile; + clone.InvocationInformation = this.InvocationInformation; + clone.Proxy = this.Proxy; + clone.Pipeline = this.Pipeline; + clone.AsJob = this.AsJob; + clone.Break = this.Break; + clone.ProxyCredential = this.ProxyCredential; + clone.ProxyUseDefaultCredentials = this.ProxyUseDefaultCredentials; + clone.HttpPipelinePrepend = this.HttpPipelinePrepend; + clone.HttpPipelineAppend = this.HttpPipelineAppend; + return clone; + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + + } + + /// Handles/Dispatches events during the call to the REST service. + /// The message id + /// The message cancellation token. When this call is cancelled, this should be true + /// Detailed message data for the message event. + /// + /// A that will be complete when handling of the message is completed. + /// + async global::System.Threading.Tasks.Task Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener.Signal(string id, global::System.Threading.CancellationToken token, global::System.Func messageData) + { + using( NoSynchronizationContext ) + { + if (token.IsCancellationRequested) + { + return ; + } + + switch ( id ) + { + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.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.EventGrid.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.EventGrid.Runtime.PowerShell.AsyncOperationResponse { Target = uri }); + // do nothing more. + data.Cancel(); + return; + } + } + break; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.EventData ), InvocationInformation, this.ParameterSetName, __correlationId, __processRecordId, null ); + if (token.IsCancellationRequested) + { + return ; + } + WriteDebug($"{id}: {(messageData().Message ?? global::System.String.Empty)}"); + } + } + + /// Performs execution of the command. + protected override void ProcessRecord() + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + if (ShouldProcess($"Call remote 'PrivateEndpointConnectionsDelete' operation")) + { + if (true == MyInvocation?.BoundParameters?.ContainsKey("AsJob")) + { + var instance = this.Clone(); + var job = new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token); + } + } + } + } + catch (global::System.AggregateException aggregateException) + { + // unroll the inner exceptions to get the root cause + foreach( var innerException in aggregateException.Flatten().InnerExceptions ) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(innerException,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + } + catch (global::System.Exception exception) when ((exception as System.Management.Automation.PipelineStoppedException)== null || (exception as System.Management.Automation.PipelineStoppedException).InnerException != null) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(exception,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + finally + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletProcessRecordEnd).Wait(); + } + } + + /// Performs execution of the command, working asynchronously if required. + /// + /// A that will be complete when handling of the method is completed. + /// + protected async global::System.Threading.Tasks.Task ProcessRecordAsync() + { + using( NoSynchronizationContext ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + if (InputObject?.Id != null) + { + await this.Client.PrivateEndpointConnectionsDeleteViaIdentity(InputObject.Id, onNoContent, onDefault, this, Pipeline); + } + else + { + // try to call with PATH parameters from Input Object + if (null == InputObject.SubscriptionId) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.SubscriptionId"),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, InputObject) ); + } + if (null == InputObject.ResourceGroupName) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.ResourceGroupName"),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, InputObject) ); + } + if (null == InputObject.ParentType) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.ParentType"),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, InputObject) ); + } + if (null == InputObject.ParentName) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.ParentName"),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, InputObject) ); + } + if (null == InputObject.PrivateEndpointConnectionName) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.PrivateEndpointConnectionName"),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, InputObject) ); + } + await this.Client.PrivateEndpointConnectionsDelete(InputObject.SubscriptionId ?? null, InputObject.ResourceGroupName ?? null, InputObject.ParentType ?? ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.ParentType)""), InputObject.ParentName ?? null, InputObject.PrivateEndpointConnectionName ?? null, onNoContent, onDefault, this, Pipeline); + } + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// + /// Intializes a new instance of the cmdlet class. + /// + public RemoveAzEventGridPrivateEndpointConnection_DeleteViaIdentity() + { + + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Cancel(); + base.StopProcessing(); + } + + /// + /// a delegate that is called when the remote service returns default (any response code not handled elsewhere). + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onDefault(global::System.Net.Http.HttpResponseMessage responseMessage) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnDefault(responseMessage, ref _returnNow); + // if overrideOnDefault has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // Error Response : default + // Unrecognized Response. Create an error record based on what we have. + var ex = new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.RestException(responseMessage); + WriteError( new global::System.Management.Automation.ErrorRecord(ex, ex.Code, global::System.Management.Automation.ErrorCategory.InvalidOperation, new { }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(ex.Message) { RecommendedAction = ex.Action } + }); + } + } + + /// a delegate that is called when the remote service returns 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/eventgrid/generated/cmdlets/RemoveAzEventGridSystemTopicEventSubscription_Delete.cs b/swaggerci/eventgrid/generated/cmdlets/RemoveAzEventGridSystemTopicEventSubscription_Delete.cs new file mode 100644 index 000000000000..dea7b22f2a76 --- /dev/null +++ b/swaggerci/eventgrid/generated/cmdlets/RemoveAzEventGridSystemTopicEventSubscription_Delete.cs @@ -0,0 +1,513 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Extensions; + using System; + + /// Delete an existing event subscription of a system topic. + /// + /// [OpenAPI] Delete=>DELETE:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.EventGrid/systemTopics/{systemTopicName}/eventSubscriptions/{eventSubscriptionName}" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsCommon.Remove, @"AzEventGridSystemTopicEventSubscription_Delete", SupportsShouldProcess = true)] + [global::System.Management.Automation.OutputType(typeof(bool))] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Description(@"Delete an existing event subscription of a system topic.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Generated] + public partial class RemoveAzEventGridSystemTopicEventSubscription_Delete : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener + { + /// A unique id generatd for the this cmdlet when it is instantiated. + private string __correlationId = System.Guid.NewGuid().ToString(); + + /// A copy of the Invocation Info (necessary to allow asJob to clone this cmdlet) + private global::System.Management.Automation.InvocationInfo __invocationInfo; + + /// A unique id generatd for the 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.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.EventGridManagementClient Client => Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.ClientAPI; + + /// + /// The credentials, account, tenant, and subscription used for communication with Azure + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The credentials, account, tenant, and subscription used for communication with Azure.")] + [global::System.Management.Automation.ValidateNotNull] + [global::System.Management.Automation.Alias("AzureRMContext", "AzureCredential")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Azure)] + public global::System.Management.Automation.PSObject DefaultProfile { get; set; } + + /// Backing field for property. + private string _eventSubscriptionName; + + /// + /// Name of the event subscription to be created. Event subscription names must be between 3 and 100 characters in length + /// and use alphanumeric letters only. + /// + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Name of the event subscription to be created. Event subscription names must be between 3 and 100 characters in length and use alphanumeric letters only.")] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Name of the event subscription to be created. Event subscription names must be between 3 and 100 characters in length and use alphanumeric letters only.", + SerializedName = @"eventSubscriptionName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Path)] + public string EventSubscriptionName { get => this._eventSubscriptionName; set => this._eventSubscriptionName = 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.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[] HttpPipelineAppend { get; set; } + + /// SendAsync Pipeline Steps to be prepended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be prepended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[] HttpPipelinePrepend { get; set; } + + /// Accessor for our copy of the InvocationInfo. + public global::System.Management.Automation.InvocationInfo InvocationInformation { get => __invocationInfo = __invocationInfo ?? this.MyInvocation ; set { __invocationInfo = value; } } + + /// + /// cancellation delegate. Stops the cmdlet when called. + /// + global::System.Action Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter NoWait { get; set; } + + /// + /// When specified, forces the cmdlet return a 'bool' given that there isn't a return type by default. + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Returns true when the command succeeds")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Runtime.HttpPipeline Pipeline { get; set; } + + /// The URI for the proxy server to use + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "The URI for the proxy server to use")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Uri Proxy { get; set; } + + /// Credentials for a proxy server to use for the remote call + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Credentials for a proxy server to use for the remote call")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Management.Automation.PSCredential ProxyCredential { get; set; } + + /// Use the default credentials for the proxy + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Use the default credentials for the proxy")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter ProxyUseDefaultCredentials { get; set; } + + /// Backing field for property. + private string _resourceGroupName; + + /// The name of the resource group within the user's subscription. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the resource group within the user's subscription.")] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the resource group within the user's subscription.", + SerializedName = @"resourceGroupName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Path)] + public string ResourceGroupName { get => this._resourceGroupName; set => this._resourceGroupName = value; } + + /// Backing field for property. + private string _subscriptionId; + + /// + /// Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription ID forms part of the + /// URI for every service call. + /// + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.")] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.", + SerializedName = @"subscriptionId", + PossibleTypes = new [] { typeof(string) })] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.DefaultInfo( + Name = @"", + Description =@"", + Script = @"(Get-AzContext).Subscription.Id")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Path)] + public string SubscriptionId { get => this._subscriptionId; set => this._subscriptionId = value; } + + /// Backing field for property. + private string _systemTopicName; + + /// Name of the system topic. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Name of the system topic.")] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Name of the system topic.", + SerializedName = @"systemTopicName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Path)] + public string SystemTopicName { get => this._systemTopicName; set => this._systemTopicName = value; } + + /// + /// overrideOnDefault will be called before the regular onDefault has been processed, allowing customization of what + /// happens on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// /// Determines if the rest of the onDefault method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnDefault(global::System.Net.Http.HttpResponseMessage responseMessage, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnNoContent will be called before the regular onNoContent has been processed, allowing customization of + /// what happens on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// /// Determines if the rest of the onNoContent method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnNoContent(global::System.Net.Http.HttpResponseMessage responseMessage, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnOk will be called before the regular onOk has been processed, allowing customization of what happens + /// on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// /// Determines if the rest of the onOk method should be processed, or if the method should return + /// immediately (set to true to skip further processing ) + + partial void overrideOnOk(global::System.Net.Http.HttpResponseMessage responseMessage, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// (overrides the default BeginProcessing method in global::System.Management.Automation.PSCmdlet) + /// + protected override void BeginProcessing() + { + var telemetryId = Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.GetTelemetryId.Invoke(); + if (telemetryId != "" && telemetryId != "internal") + { + __correlationId = telemetryId; + } + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Creates a duplicate instance of this cmdlet (via JSON serialization). + /// a duplicate instance of RemoveAzEventGridSystemTopicEventSubscription_Delete + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Cmdlets.RemoveAzEventGridSystemTopicEventSubscription_Delete Clone() + { + var clone = new RemoveAzEventGridSystemTopicEventSubscription_Delete(); + clone.__correlationId = this.__correlationId; + clone.__processRecordId = this.__processRecordId; + clone.DefaultProfile = this.DefaultProfile; + clone.InvocationInformation = this.InvocationInformation; + clone.Proxy = this.Proxy; + clone.Pipeline = this.Pipeline; + clone.AsJob = this.AsJob; + clone.Break = this.Break; + clone.ProxyCredential = this.ProxyCredential; + clone.ProxyUseDefaultCredentials = this.ProxyUseDefaultCredentials; + clone.HttpPipelinePrepend = this.HttpPipelinePrepend; + clone.HttpPipelineAppend = this.HttpPipelineAppend; + clone.SubscriptionId = this.SubscriptionId; + clone.ResourceGroupName = this.ResourceGroupName; + clone.SystemTopicName = this.SystemTopicName; + clone.EventSubscriptionName = this.EventSubscriptionName; + return clone; + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + + } + + /// Handles/Dispatches events during the call to the REST service. + /// The message id + /// The message cancellation token. When this call is cancelled, this should be true + /// Detailed message data for the message event. + /// + /// A that will be complete when handling of the message is completed. + /// + async global::System.Threading.Tasks.Task Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener.Signal(string id, global::System.Threading.CancellationToken token, global::System.Func messageData) + { + using( NoSynchronizationContext ) + { + if (token.IsCancellationRequested) + { + return ; + } + + switch ( id ) + { + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.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.EventGrid.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.EventGrid.Runtime.PowerShell.AsyncOperationResponse { Target = uri }); + // do nothing more. + data.Cancel(); + return; + } + } + break; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.EventData ), InvocationInformation, this.ParameterSetName, __correlationId, __processRecordId, null ); + if (token.IsCancellationRequested) + { + return ; + } + WriteDebug($"{id}: {(messageData().Message ?? global::System.String.Empty)}"); + } + } + + /// Performs execution of the command. + protected override void ProcessRecord() + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + if (ShouldProcess($"Call remote 'SystemTopicEventSubscriptionsDelete' operation")) + { + if (true == MyInvocation?.BoundParameters?.ContainsKey("AsJob")) + { + var instance = this.Clone(); + var job = new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token); + } + } + } + } + catch (global::System.AggregateException aggregateException) + { + // unroll the inner exceptions to get the root cause + foreach( var innerException in aggregateException.Flatten().InnerExceptions ) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(innerException,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + } + catch (global::System.Exception exception) when ((exception as System.Management.Automation.PipelineStoppedException)== null || (exception as System.Management.Automation.PipelineStoppedException).InnerException != null) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(exception,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + finally + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletProcessRecordEnd).Wait(); + } + } + + /// Performs execution of the command, working asynchronously if required. + /// + /// A that will be complete when handling of the method is completed. + /// + protected async global::System.Threading.Tasks.Task ProcessRecordAsync() + { + using( NoSynchronizationContext ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await this.Client.SystemTopicEventSubscriptionsDelete(SubscriptionId, ResourceGroupName, SystemTopicName, EventSubscriptionName, onOk, onNoContent, onDefault, this, Pipeline); + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.UndeclaredResponseException urexception) + { + WriteError(new global::System.Management.Automation.ErrorRecord(urexception, urexception.StatusCode.ToString(), global::System.Management.Automation.ErrorCategory.InvalidOperation, new { SubscriptionId=SubscriptionId,ResourceGroupName=ResourceGroupName,SystemTopicName=SystemTopicName,EventSubscriptionName=EventSubscriptionName}) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(urexception.Message) { RecommendedAction = urexception.Action } + }); + } + finally + { + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// + /// Intializes a new instance of the cmdlet class. + /// + public RemoveAzEventGridSystemTopicEventSubscription_Delete() + { + + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Cancel(); + base.StopProcessing(); + } + + /// + /// a delegate that is called when the remote service returns default (any response code not handled elsewhere). + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onDefault(global::System.Net.Http.HttpResponseMessage responseMessage) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnDefault(responseMessage, ref _returnNow); + // if overrideOnDefault has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // Error Response : default + // Unrecognized Response. Create an error record based on what we have. + var ex = new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.RestException(responseMessage); + WriteError( new global::System.Management.Automation.ErrorRecord(ex, ex.Code, global::System.Management.Automation.ErrorCategory.InvalidOperation, new { SubscriptionId=SubscriptionId, ResourceGroupName=ResourceGroupName, SystemTopicName=SystemTopicName, EventSubscriptionName=EventSubscriptionName }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(ex.Message) { RecommendedAction = ex.Action } + }); + } + } + + /// 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/eventgrid/generated/cmdlets/RemoveAzEventGridSystemTopicEventSubscription_DeleteViaIdentity.cs b/swaggerci/eventgrid/generated/cmdlets/RemoveAzEventGridSystemTopicEventSubscription_DeleteViaIdentity.cs new file mode 100644 index 000000000000..9ec1070e0173 --- /dev/null +++ b/swaggerci/eventgrid/generated/cmdlets/RemoveAzEventGridSystemTopicEventSubscription_DeleteViaIdentity.cs @@ -0,0 +1,478 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Extensions; + using System; + + /// Delete an existing event subscription of a system topic. + /// + /// [OpenAPI] Delete=>DELETE:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.EventGrid/systemTopics/{systemTopicName}/eventSubscriptions/{eventSubscriptionName}" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsCommon.Remove, @"AzEventGridSystemTopicEventSubscription_DeleteViaIdentity", SupportsShouldProcess = true)] + [global::System.Management.Automation.OutputType(typeof(bool))] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Description(@"Delete an existing event subscription of a system topic.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Generated] + public partial class RemoveAzEventGridSystemTopicEventSubscription_DeleteViaIdentity : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener + { + /// A unique id generatd for the this cmdlet when it is instantiated. + private string __correlationId = System.Guid.NewGuid().ToString(); + + /// A copy of the Invocation Info (necessary to allow asJob to clone this cmdlet) + private global::System.Management.Automation.InvocationInfo __invocationInfo; + + /// A unique id generatd for the 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.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.EventGridManagementClient Client => Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.ClientAPI; + + /// + /// The credentials, account, tenant, and subscription used for communication with Azure + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The credentials, account, tenant, and subscription used for communication with Azure.")] + [global::System.Management.Automation.ValidateNotNull] + [global::System.Management.Automation.Alias("AzureRMContext", "AzureCredential")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Azure)] + public global::System.Management.Automation.PSObject DefaultProfile { get; set; } + + /// SendAsync Pipeline Steps to be appended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be appended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[] HttpPipelineAppend { get; set; } + + /// SendAsync Pipeline Steps to be prepended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be prepended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[] HttpPipelinePrepend { get; set; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.IEventGridIdentity _inputObject; + + /// Identity Parameter + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Identity Parameter", ValueFromPipeline = true)] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Path)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.IEventGridIdentity InputObject { get => this._inputObject; set => this._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.EventGrid.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter NoWait { get; set; } + + /// + /// When specified, forces the cmdlet return a 'bool' given that there isn't a return type by default. + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Returns true when the command succeeds")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Runtime.HttpPipeline Pipeline { get; set; } + + /// The URI for the proxy server to use + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "The URI for the proxy server to use")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Uri Proxy { get; set; } + + /// Credentials for a proxy server to use for the remote call + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Credentials for a proxy server to use for the remote call")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Management.Automation.PSCredential ProxyCredential { get; set; } + + /// Use the default credentials for the proxy + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Use the default credentials for the proxy")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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. + /// /// Determines if the rest of the onDefault method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnDefault(global::System.Net.Http.HttpResponseMessage responseMessage, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnNoContent will be called before the regular onNoContent has been processed, allowing customization of + /// what happens on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// /// Determines if the rest of the onNoContent method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnNoContent(global::System.Net.Http.HttpResponseMessage responseMessage, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnOk will be called before the regular onOk has been processed, allowing customization of what happens + /// on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// /// Determines if the rest of the onOk method should be processed, or if the method should return + /// immediately (set to true to skip further processing ) + + partial void overrideOnOk(global::System.Net.Http.HttpResponseMessage responseMessage, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// (overrides the default BeginProcessing method in global::System.Management.Automation.PSCmdlet) + /// + protected override void BeginProcessing() + { + var telemetryId = Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.GetTelemetryId.Invoke(); + if (telemetryId != "" && telemetryId != "internal") + { + __correlationId = telemetryId; + } + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Creates a duplicate instance of this cmdlet (via JSON serialization). + /// + /// a duplicate instance of RemoveAzEventGridSystemTopicEventSubscription_DeleteViaIdentity + /// + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Cmdlets.RemoveAzEventGridSystemTopicEventSubscription_DeleteViaIdentity Clone() + { + var clone = new RemoveAzEventGridSystemTopicEventSubscription_DeleteViaIdentity(); + clone.__correlationId = this.__correlationId; + clone.__processRecordId = this.__processRecordId; + clone.DefaultProfile = this.DefaultProfile; + clone.InvocationInformation = this.InvocationInformation; + clone.Proxy = this.Proxy; + clone.Pipeline = this.Pipeline; + clone.AsJob = this.AsJob; + clone.Break = this.Break; + clone.ProxyCredential = this.ProxyCredential; + clone.ProxyUseDefaultCredentials = this.ProxyUseDefaultCredentials; + clone.HttpPipelinePrepend = this.HttpPipelinePrepend; + clone.HttpPipelineAppend = this.HttpPipelineAppend; + return clone; + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + + } + + /// Handles/Dispatches events during the call to the REST service. + /// The message id + /// The message cancellation token. When this call is cancelled, this should be true + /// Detailed message data for the message event. + /// + /// A that will be complete when handling of the message is completed. + /// + async global::System.Threading.Tasks.Task Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener.Signal(string id, global::System.Threading.CancellationToken token, global::System.Func messageData) + { + using( NoSynchronizationContext ) + { + if (token.IsCancellationRequested) + { + return ; + } + + switch ( id ) + { + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.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.EventGrid.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.EventGrid.Runtime.PowerShell.AsyncOperationResponse { Target = uri }); + // do nothing more. + data.Cancel(); + return; + } + } + break; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.EventData ), InvocationInformation, this.ParameterSetName, __correlationId, __processRecordId, null ); + if (token.IsCancellationRequested) + { + return ; + } + WriteDebug($"{id}: {(messageData().Message ?? global::System.String.Empty)}"); + } + } + + /// Performs execution of the command. + protected override void ProcessRecord() + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + if (ShouldProcess($"Call remote 'SystemTopicEventSubscriptionsDelete' operation")) + { + if (true == MyInvocation?.BoundParameters?.ContainsKey("AsJob")) + { + var instance = this.Clone(); + var job = new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token); + } + } + } + } + catch (global::System.AggregateException aggregateException) + { + // unroll the inner exceptions to get the root cause + foreach( var innerException in aggregateException.Flatten().InnerExceptions ) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(innerException,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + } + catch (global::System.Exception exception) when ((exception as System.Management.Automation.PipelineStoppedException)== null || (exception as System.Management.Automation.PipelineStoppedException).InnerException != null) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(exception,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + finally + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletProcessRecordEnd).Wait(); + } + } + + /// Performs execution of the command, working asynchronously if required. + /// + /// A that will be complete when handling of the method is completed. + /// + protected async global::System.Threading.Tasks.Task ProcessRecordAsync() + { + using( NoSynchronizationContext ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + if (InputObject?.Id != null) + { + await this.Client.SystemTopicEventSubscriptionsDeleteViaIdentity(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.SystemTopicName) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.SystemTopicName"),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, InputObject) ); + } + if (null == InputObject.EventSubscriptionName) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.EventSubscriptionName"),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, InputObject) ); + } + await this.Client.SystemTopicEventSubscriptionsDelete(InputObject.SubscriptionId ?? null, InputObject.ResourceGroupName ?? null, InputObject.SystemTopicName ?? null, InputObject.EventSubscriptionName ?? null, onOk, onNoContent, onDefault, this, Pipeline); + } + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// + /// Intializes a new instance of the cmdlet + /// class. + /// + public RemoveAzEventGridSystemTopicEventSubscription_DeleteViaIdentity() + { + + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Cancel(); + base.StopProcessing(); + } + + /// + /// a delegate that is called when the remote service returns default (any response code not handled elsewhere). + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onDefault(global::System.Net.Http.HttpResponseMessage responseMessage) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnDefault(responseMessage, ref _returnNow); + // if overrideOnDefault has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // Error Response : default + // Unrecognized Response. Create an error record based on what we have. + var ex = new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.RestException(responseMessage); + WriteError( new global::System.Management.Automation.ErrorRecord(ex, ex.Code, global::System.Management.Automation.ErrorCategory.InvalidOperation, new { }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(ex.Message) { RecommendedAction = ex.Action } + }); + } + } + + /// a delegate that is called when the remote service returns 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/eventgrid/generated/cmdlets/RemoveAzEventGridSystemTopic_Delete.cs b/swaggerci/eventgrid/generated/cmdlets/RemoveAzEventGridSystemTopic_Delete.cs new file mode 100644 index 000000000000..802e8f23d3f2 --- /dev/null +++ b/swaggerci/eventgrid/generated/cmdlets/RemoveAzEventGridSystemTopic_Delete.cs @@ -0,0 +1,496 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Extensions; + using System; + + /// Delete existing system topic. + /// + /// [OpenAPI] Delete=>DELETE:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.EventGrid/systemTopics/{systemTopicName}" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsCommon.Remove, @"AzEventGridSystemTopic_Delete", SupportsShouldProcess = true)] + [global::System.Management.Automation.OutputType(typeof(bool))] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Description(@"Delete existing system topic.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Generated] + public partial class RemoveAzEventGridSystemTopic_Delete : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener + { + /// A unique id generatd for the this cmdlet when it is instantiated. + private string __correlationId = System.Guid.NewGuid().ToString(); + + /// A copy of the Invocation Info (necessary to allow asJob to clone this cmdlet) + private global::System.Management.Automation.InvocationInfo __invocationInfo; + + /// A unique id generatd for the 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.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.EventGridManagementClient Client => Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.ClientAPI; + + /// + /// The credentials, account, tenant, and subscription used for communication with Azure + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The credentials, account, tenant, and subscription used for communication with Azure.")] + [global::System.Management.Automation.ValidateNotNull] + [global::System.Management.Automation.Alias("AzureRMContext", "AzureCredential")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Azure)] + public global::System.Management.Automation.PSObject DefaultProfile { get; set; } + + /// SendAsync Pipeline Steps to be appended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be appended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[] HttpPipelineAppend { get; set; } + + /// SendAsync Pipeline Steps to be prepended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be prepended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[] HttpPipelinePrepend { get; set; } + + /// Accessor for our copy of the InvocationInfo. + public global::System.Management.Automation.InvocationInfo InvocationInformation { get => __invocationInfo = __invocationInfo ?? this.MyInvocation ; set { __invocationInfo = value; } } + + /// + /// cancellation delegate. Stops the cmdlet when called. + /// + global::System.Action Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener.Token => _cancellationTokenSource.Token; + + /// Backing field for property. + private string _name; + + /// Name of the system topic. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Name of the system topic.")] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Name of the system topic.", + SerializedName = @"systemTopicName", + PossibleTypes = new [] { typeof(string) })] + [global::System.Management.Automation.Alias("SystemTopicName")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Path)] + public string Name { get => this._name; set => this._name = value; } + + /// + /// when specified, will make the remote call, and return an AsyncOperationResponse, letting the remote operation continue + /// asynchronously. + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Run the command asynchronously")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter NoWait { get; set; } + + /// + /// When specified, forces the cmdlet return a 'bool' given that there isn't a return type by default. + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Returns true when the command succeeds")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Runtime.HttpPipeline Pipeline { get; set; } + + /// The URI for the proxy server to use + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "The URI for the proxy server to use")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Uri Proxy { get; set; } + + /// Credentials for a proxy server to use for the remote call + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Credentials for a proxy server to use for the remote call")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Management.Automation.PSCredential ProxyCredential { get; set; } + + /// Use the default credentials for the proxy + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Use the default credentials for the proxy")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter ProxyUseDefaultCredentials { get; set; } + + /// Backing field for property. + private string _resourceGroupName; + + /// The name of the resource group within the user's subscription. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the resource group within the user's subscription.")] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the resource group within the user's subscription.", + SerializedName = @"resourceGroupName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Path)] + public string ResourceGroupName { get => this._resourceGroupName; set => this._resourceGroupName = value; } + + /// Backing field for property. + private string _subscriptionId; + + /// + /// Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription ID forms part of the + /// URI for every service call. + /// + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.")] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.", + SerializedName = @"subscriptionId", + PossibleTypes = new [] { typeof(string) })] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.DefaultInfo( + Name = @"", + Description =@"", + Script = @"(Get-AzContext).Subscription.Id")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Path)] + public string SubscriptionId { get => this._subscriptionId; set => this._subscriptionId = value; } + + /// + /// overrideOnDefault will be called before the regular onDefault has been processed, allowing customization of what + /// happens on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// /// Determines if the rest of the onDefault method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnDefault(global::System.Net.Http.HttpResponseMessage responseMessage, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnNoContent will be called before the regular onNoContent has been processed, allowing customization of + /// what happens on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// /// Determines if the rest of the onNoContent method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnNoContent(global::System.Net.Http.HttpResponseMessage responseMessage, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnOk will be called before the regular onOk has been processed, allowing customization of what happens + /// on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// /// Determines if the rest of the onOk method should be processed, or if the method should return + /// immediately (set to true to skip further processing ) + + partial void overrideOnOk(global::System.Net.Http.HttpResponseMessage responseMessage, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// (overrides the default BeginProcessing method in global::System.Management.Automation.PSCmdlet) + /// + protected override void BeginProcessing() + { + var telemetryId = Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.GetTelemetryId.Invoke(); + if (telemetryId != "" && telemetryId != "internal") + { + __correlationId = telemetryId; + } + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Creates a duplicate instance of this cmdlet (via JSON serialization). + /// a duplicate instance of RemoveAzEventGridSystemTopic_Delete + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Cmdlets.RemoveAzEventGridSystemTopic_Delete Clone() + { + var clone = new RemoveAzEventGridSystemTopic_Delete(); + clone.__correlationId = this.__correlationId; + clone.__processRecordId = this.__processRecordId; + clone.DefaultProfile = this.DefaultProfile; + clone.InvocationInformation = this.InvocationInformation; + clone.Proxy = this.Proxy; + clone.Pipeline = this.Pipeline; + clone.AsJob = this.AsJob; + clone.Break = this.Break; + clone.ProxyCredential = this.ProxyCredential; + clone.ProxyUseDefaultCredentials = this.ProxyUseDefaultCredentials; + clone.HttpPipelinePrepend = this.HttpPipelinePrepend; + clone.HttpPipelineAppend = this.HttpPipelineAppend; + clone.SubscriptionId = this.SubscriptionId; + clone.ResourceGroupName = this.ResourceGroupName; + clone.Name = this.Name; + return clone; + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + + } + + /// Handles/Dispatches events during the call to the REST service. + /// The message id + /// The message cancellation token. When this call is cancelled, this should be true + /// Detailed message data for the message event. + /// + /// A that will be complete when handling of the message is completed. + /// + async global::System.Threading.Tasks.Task Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener.Signal(string id, global::System.Threading.CancellationToken token, global::System.Func messageData) + { + using( NoSynchronizationContext ) + { + if (token.IsCancellationRequested) + { + return ; + } + + switch ( id ) + { + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.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.EventGrid.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.EventGrid.Runtime.PowerShell.AsyncOperationResponse { Target = uri }); + // do nothing more. + data.Cancel(); + return; + } + } + break; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.EventData ), InvocationInformation, this.ParameterSetName, __correlationId, __processRecordId, null ); + if (token.IsCancellationRequested) + { + return ; + } + WriteDebug($"{id}: {(messageData().Message ?? global::System.String.Empty)}"); + } + } + + /// Performs execution of the command. + protected override void ProcessRecord() + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + if (ShouldProcess($"Call remote 'SystemTopicsDelete' operation")) + { + if (true == MyInvocation?.BoundParameters?.ContainsKey("AsJob")) + { + var instance = this.Clone(); + var job = new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token); + } + } + } + } + catch (global::System.AggregateException aggregateException) + { + // unroll the inner exceptions to get the root cause + foreach( var innerException in aggregateException.Flatten().InnerExceptions ) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(innerException,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + } + catch (global::System.Exception exception) when ((exception as System.Management.Automation.PipelineStoppedException)== null || (exception as System.Management.Automation.PipelineStoppedException).InnerException != null) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(exception,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + finally + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletProcessRecordEnd).Wait(); + } + } + + /// Performs execution of the command, working asynchronously if required. + /// + /// A that will be complete when handling of the method is completed. + /// + protected async global::System.Threading.Tasks.Task ProcessRecordAsync() + { + using( NoSynchronizationContext ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await this.Client.SystemTopicsDelete(SubscriptionId, ResourceGroupName, Name, onOk, onNoContent, onDefault, this, Pipeline); + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.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.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// + /// Intializes a new instance of the cmdlet class. + /// + public RemoveAzEventGridSystemTopic_Delete() + { + + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Cancel(); + base.StopProcessing(); + } + + /// + /// a delegate that is called when the remote service returns default (any response code not handled elsewhere). + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onDefault(global::System.Net.Http.HttpResponseMessage responseMessage) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnDefault(responseMessage, ref _returnNow); + // if overrideOnDefault has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // Error Response : default + // Unrecognized Response. Create an error record based on what we have. + var ex = new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.RestException(responseMessage); + 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 } + }); + } + } + + /// 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/eventgrid/generated/cmdlets/RemoveAzEventGridSystemTopic_DeleteViaIdentity.cs b/swaggerci/eventgrid/generated/cmdlets/RemoveAzEventGridSystemTopic_DeleteViaIdentity.cs new file mode 100644 index 000000000000..8ebe6505535f --- /dev/null +++ b/swaggerci/eventgrid/generated/cmdlets/RemoveAzEventGridSystemTopic_DeleteViaIdentity.cs @@ -0,0 +1,471 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Extensions; + using System; + + /// Delete existing system topic. + /// + /// [OpenAPI] Delete=>DELETE:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.EventGrid/systemTopics/{systemTopicName}" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsCommon.Remove, @"AzEventGridSystemTopic_DeleteViaIdentity", SupportsShouldProcess = true)] + [global::System.Management.Automation.OutputType(typeof(bool))] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Description(@"Delete existing system topic.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Generated] + public partial class RemoveAzEventGridSystemTopic_DeleteViaIdentity : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener + { + /// A unique id generatd for the this cmdlet when it is instantiated. + private string __correlationId = System.Guid.NewGuid().ToString(); + + /// A copy of the Invocation Info (necessary to allow asJob to clone this cmdlet) + private global::System.Management.Automation.InvocationInfo __invocationInfo; + + /// A unique id generatd for the 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.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.EventGridManagementClient Client => Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.ClientAPI; + + /// + /// The credentials, account, tenant, and subscription used for communication with Azure + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The credentials, account, tenant, and subscription used for communication with Azure.")] + [global::System.Management.Automation.ValidateNotNull] + [global::System.Management.Automation.Alias("AzureRMContext", "AzureCredential")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Azure)] + public global::System.Management.Automation.PSObject DefaultProfile { get; set; } + + /// SendAsync Pipeline Steps to be appended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be appended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[] HttpPipelineAppend { get; set; } + + /// SendAsync Pipeline Steps to be prepended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be prepended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[] HttpPipelinePrepend { get; set; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.IEventGridIdentity _inputObject; + + /// Identity Parameter + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Identity Parameter", ValueFromPipeline = true)] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Path)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.IEventGridIdentity InputObject { get => this._inputObject; set => this._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.EventGrid.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter NoWait { get; set; } + + /// + /// When specified, forces the cmdlet return a 'bool' given that there isn't a return type by default. + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Returns true when the command succeeds")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Runtime.HttpPipeline Pipeline { get; set; } + + /// The URI for the proxy server to use + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "The URI for the proxy server to use")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Uri Proxy { get; set; } + + /// Credentials for a proxy server to use for the remote call + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Credentials for a proxy server to use for the remote call")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Management.Automation.PSCredential ProxyCredential { get; set; } + + /// Use the default credentials for the proxy + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Use the default credentials for the proxy")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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. + /// /// Determines if the rest of the onDefault method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnDefault(global::System.Net.Http.HttpResponseMessage responseMessage, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnNoContent will be called before the regular onNoContent has been processed, allowing customization of + /// what happens on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// /// Determines if the rest of the onNoContent method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnNoContent(global::System.Net.Http.HttpResponseMessage responseMessage, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnOk will be called before the regular onOk has been processed, allowing customization of what happens + /// on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// /// Determines if the rest of the onOk method should be processed, or if the method should return + /// immediately (set to true to skip further processing ) + + partial void overrideOnOk(global::System.Net.Http.HttpResponseMessage responseMessage, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// (overrides the default BeginProcessing method in global::System.Management.Automation.PSCmdlet) + /// + protected override void BeginProcessing() + { + var telemetryId = Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.GetTelemetryId.Invoke(); + if (telemetryId != "" && telemetryId != "internal") + { + __correlationId = telemetryId; + } + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Creates a duplicate instance of this cmdlet (via JSON serialization). + /// a duplicate instance of RemoveAzEventGridSystemTopic_DeleteViaIdentity + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Cmdlets.RemoveAzEventGridSystemTopic_DeleteViaIdentity Clone() + { + var clone = new RemoveAzEventGridSystemTopic_DeleteViaIdentity(); + clone.__correlationId = this.__correlationId; + clone.__processRecordId = this.__processRecordId; + clone.DefaultProfile = this.DefaultProfile; + clone.InvocationInformation = this.InvocationInformation; + clone.Proxy = this.Proxy; + clone.Pipeline = this.Pipeline; + clone.AsJob = this.AsJob; + clone.Break = this.Break; + clone.ProxyCredential = this.ProxyCredential; + clone.ProxyUseDefaultCredentials = this.ProxyUseDefaultCredentials; + clone.HttpPipelinePrepend = this.HttpPipelinePrepend; + clone.HttpPipelineAppend = this.HttpPipelineAppend; + return clone; + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + + } + + /// Handles/Dispatches events during the call to the REST service. + /// The message id + /// The message cancellation token. When this call is cancelled, this should be true + /// Detailed message data for the message event. + /// + /// A that will be complete when handling of the message is completed. + /// + async global::System.Threading.Tasks.Task Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener.Signal(string id, global::System.Threading.CancellationToken token, global::System.Func messageData) + { + using( NoSynchronizationContext ) + { + if (token.IsCancellationRequested) + { + return ; + } + + switch ( id ) + { + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.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.EventGrid.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.EventGrid.Runtime.PowerShell.AsyncOperationResponse { Target = uri }); + // do nothing more. + data.Cancel(); + return; + } + } + break; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.EventData ), InvocationInformation, this.ParameterSetName, __correlationId, __processRecordId, null ); + if (token.IsCancellationRequested) + { + return ; + } + WriteDebug($"{id}: {(messageData().Message ?? global::System.String.Empty)}"); + } + } + + /// Performs execution of the command. + protected override void ProcessRecord() + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + if (ShouldProcess($"Call remote 'SystemTopicsDelete' operation")) + { + if (true == MyInvocation?.BoundParameters?.ContainsKey("AsJob")) + { + var instance = this.Clone(); + var job = new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token); + } + } + } + } + catch (global::System.AggregateException aggregateException) + { + // unroll the inner exceptions to get the root cause + foreach( var innerException in aggregateException.Flatten().InnerExceptions ) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(innerException,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + } + catch (global::System.Exception exception) when ((exception as System.Management.Automation.PipelineStoppedException)== null || (exception as System.Management.Automation.PipelineStoppedException).InnerException != null) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(exception,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + finally + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletProcessRecordEnd).Wait(); + } + } + + /// Performs execution of the command, working asynchronously if required. + /// + /// A that will be complete when handling of the method is completed. + /// + protected async global::System.Threading.Tasks.Task ProcessRecordAsync() + { + using( NoSynchronizationContext ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + if (InputObject?.Id != null) + { + await this.Client.SystemTopicsDeleteViaIdentity(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.SystemTopicName) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.SystemTopicName"),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, InputObject) ); + } + await this.Client.SystemTopicsDelete(InputObject.SubscriptionId ?? null, InputObject.ResourceGroupName ?? null, InputObject.SystemTopicName ?? null, onOk, onNoContent, onDefault, this, Pipeline); + } + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// + /// Intializes a new instance of the cmdlet class. + /// + public RemoveAzEventGridSystemTopic_DeleteViaIdentity() + { + + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Cancel(); + base.StopProcessing(); + } + + /// + /// a delegate that is called when the remote service returns default (any response code not handled elsewhere). + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onDefault(global::System.Net.Http.HttpResponseMessage responseMessage) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnDefault(responseMessage, ref _returnNow); + // if overrideOnDefault has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // Error Response : default + // Unrecognized Response. Create an error record based on what we have. + var ex = new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.RestException(responseMessage); + WriteError( new global::System.Management.Automation.ErrorRecord(ex, ex.Code, global::System.Management.Automation.ErrorCategory.InvalidOperation, new { }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(ex.Message) { RecommendedAction = ex.Action } + }); + } + } + + /// a delegate that is called when the remote service returns 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/eventgrid/generated/cmdlets/RemoveAzEventGridTopicEventSubscription_Delete.cs b/swaggerci/eventgrid/generated/cmdlets/RemoveAzEventGridTopicEventSubscription_Delete.cs new file mode 100644 index 000000000000..dbac0f52809f --- /dev/null +++ b/swaggerci/eventgrid/generated/cmdlets/RemoveAzEventGridTopicEventSubscription_Delete.cs @@ -0,0 +1,513 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Extensions; + using System; + + /// Delete an existing event subscription for a topic. + /// + /// [OpenAPI] Delete=>DELETE:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.EventGrid/topics/{topicName}/eventSubscriptions/{eventSubscriptionName}" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsCommon.Remove, @"AzEventGridTopicEventSubscription_Delete", SupportsShouldProcess = true)] + [global::System.Management.Automation.OutputType(typeof(bool))] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Description(@"Delete an existing event subscription for a topic.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Generated] + public partial class RemoveAzEventGridTopicEventSubscription_Delete : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener + { + /// A unique id generatd for the this cmdlet when it is instantiated. + private string __correlationId = System.Guid.NewGuid().ToString(); + + /// A copy of the Invocation Info (necessary to allow asJob to clone this cmdlet) + private global::System.Management.Automation.InvocationInfo __invocationInfo; + + /// A unique id generatd for the 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.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.EventGridManagementClient Client => Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.ClientAPI; + + /// + /// The credentials, account, tenant, and subscription used for communication with Azure + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The credentials, account, tenant, and subscription used for communication with Azure.")] + [global::System.Management.Automation.ValidateNotNull] + [global::System.Management.Automation.Alias("AzureRMContext", "AzureCredential")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Azure)] + public global::System.Management.Automation.PSObject DefaultProfile { get; set; } + + /// Backing field for property. + private string _eventSubscriptionName; + + /// + /// Name of the event subscription to be deleted. Event subscription names must be between 3 and 100 characters in length + /// and use alphanumeric letters only. + /// + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Name of the event subscription to be deleted. Event subscription names must be between 3 and 100 characters in length and use alphanumeric letters only.")] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Name of the event subscription to be deleted. Event subscription names must be between 3 and 100 characters in length and use alphanumeric letters only.", + SerializedName = @"eventSubscriptionName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Path)] + public string EventSubscriptionName { get => this._eventSubscriptionName; set => this._eventSubscriptionName = 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.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[] HttpPipelineAppend { get; set; } + + /// SendAsync Pipeline Steps to be prepended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be prepended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[] HttpPipelinePrepend { get; set; } + + /// Accessor for our copy of the InvocationInfo. + public global::System.Management.Automation.InvocationInfo InvocationInformation { get => __invocationInfo = __invocationInfo ?? this.MyInvocation ; set { __invocationInfo = value; } } + + /// + /// cancellation delegate. Stops the cmdlet when called. + /// + global::System.Action Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter NoWait { get; set; } + + /// + /// When specified, forces the cmdlet return a 'bool' given that there isn't a return type by default. + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Returns true when the command succeeds")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Runtime.HttpPipeline Pipeline { get; set; } + + /// The URI for the proxy server to use + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "The URI for the proxy server to use")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Uri Proxy { get; set; } + + /// Credentials for a proxy server to use for the remote call + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Credentials for a proxy server to use for the remote call")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Management.Automation.PSCredential ProxyCredential { get; set; } + + /// Use the default credentials for the proxy + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Use the default credentials for the proxy")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter ProxyUseDefaultCredentials { get; set; } + + /// Backing field for property. + private string _resourceGroupName; + + /// The name of the resource group within the user's subscription. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the resource group within the user's subscription.")] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the resource group within the user's subscription.", + SerializedName = @"resourceGroupName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Path)] + public string ResourceGroupName { get => this._resourceGroupName; set => this._resourceGroupName = value; } + + /// Backing field for property. + private string _subscriptionId; + + /// + /// Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription ID forms part of the + /// URI for every service call. + /// + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.")] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.", + SerializedName = @"subscriptionId", + PossibleTypes = new [] { typeof(string) })] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.DefaultInfo( + Name = @"", + Description =@"", + Script = @"(Get-AzContext).Subscription.Id")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Path)] + public string SubscriptionId { get => this._subscriptionId; set => this._subscriptionId = value; } + + /// Backing field for property. + private string _topicName; + + /// Name of the topic. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Name of the topic.")] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Name of the topic.", + SerializedName = @"topicName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Path)] + public string TopicName { get => this._topicName; set => this._topicName = value; } + + /// + /// overrideOnDefault will be called before the regular onDefault has been processed, allowing customization of what + /// happens on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// /// Determines if the rest of the onDefault method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnDefault(global::System.Net.Http.HttpResponseMessage responseMessage, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnNoContent will be called before the regular onNoContent has been processed, allowing customization of + /// what happens on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// /// Determines if the rest of the onNoContent method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnNoContent(global::System.Net.Http.HttpResponseMessage responseMessage, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnOk will be called before the regular onOk has been processed, allowing customization of what happens + /// on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// /// Determines if the rest of the onOk method should be processed, or if the method should return + /// immediately (set to true to skip further processing ) + + partial void overrideOnOk(global::System.Net.Http.HttpResponseMessage responseMessage, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// (overrides the default BeginProcessing method in global::System.Management.Automation.PSCmdlet) + /// + protected override void BeginProcessing() + { + var telemetryId = Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.GetTelemetryId.Invoke(); + if (telemetryId != "" && telemetryId != "internal") + { + __correlationId = telemetryId; + } + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Creates a duplicate instance of this cmdlet (via JSON serialization). + /// a duplicate instance of RemoveAzEventGridTopicEventSubscription_Delete + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Cmdlets.RemoveAzEventGridTopicEventSubscription_Delete Clone() + { + var clone = new RemoveAzEventGridTopicEventSubscription_Delete(); + clone.__correlationId = this.__correlationId; + clone.__processRecordId = this.__processRecordId; + clone.DefaultProfile = this.DefaultProfile; + clone.InvocationInformation = this.InvocationInformation; + clone.Proxy = this.Proxy; + clone.Pipeline = this.Pipeline; + clone.AsJob = this.AsJob; + clone.Break = this.Break; + clone.ProxyCredential = this.ProxyCredential; + clone.ProxyUseDefaultCredentials = this.ProxyUseDefaultCredentials; + clone.HttpPipelinePrepend = this.HttpPipelinePrepend; + clone.HttpPipelineAppend = this.HttpPipelineAppend; + clone.SubscriptionId = this.SubscriptionId; + clone.ResourceGroupName = this.ResourceGroupName; + clone.TopicName = this.TopicName; + clone.EventSubscriptionName = this.EventSubscriptionName; + return clone; + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + + } + + /// Handles/Dispatches events during the call to the REST service. + /// The message id + /// The message cancellation token. When this call is cancelled, this should be true + /// Detailed message data for the message event. + /// + /// A that will be complete when handling of the message is completed. + /// + async global::System.Threading.Tasks.Task Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener.Signal(string id, global::System.Threading.CancellationToken token, global::System.Func messageData) + { + using( NoSynchronizationContext ) + { + if (token.IsCancellationRequested) + { + return ; + } + + switch ( id ) + { + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.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.EventGrid.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.EventGrid.Runtime.PowerShell.AsyncOperationResponse { Target = uri }); + // do nothing more. + data.Cancel(); + return; + } + } + break; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.EventData ), InvocationInformation, this.ParameterSetName, __correlationId, __processRecordId, null ); + if (token.IsCancellationRequested) + { + return ; + } + WriteDebug($"{id}: {(messageData().Message ?? global::System.String.Empty)}"); + } + } + + /// Performs execution of the command. + protected override void ProcessRecord() + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + if (ShouldProcess($"Call remote 'TopicEventSubscriptionsDelete' operation")) + { + if (true == MyInvocation?.BoundParameters?.ContainsKey("AsJob")) + { + var instance = this.Clone(); + var job = new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token); + } + } + } + } + catch (global::System.AggregateException aggregateException) + { + // unroll the inner exceptions to get the root cause + foreach( var innerException in aggregateException.Flatten().InnerExceptions ) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(innerException,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + } + catch (global::System.Exception exception) when ((exception as System.Management.Automation.PipelineStoppedException)== null || (exception as System.Management.Automation.PipelineStoppedException).InnerException != null) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(exception,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + finally + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletProcessRecordEnd).Wait(); + } + } + + /// Performs execution of the command, working asynchronously if required. + /// + /// A that will be complete when handling of the method is completed. + /// + protected async global::System.Threading.Tasks.Task ProcessRecordAsync() + { + using( NoSynchronizationContext ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await this.Client.TopicEventSubscriptionsDelete(SubscriptionId, ResourceGroupName, TopicName, EventSubscriptionName, onOk, onNoContent, onDefault, this, Pipeline); + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.UndeclaredResponseException urexception) + { + WriteError(new global::System.Management.Automation.ErrorRecord(urexception, urexception.StatusCode.ToString(), global::System.Management.Automation.ErrorCategory.InvalidOperation, new { SubscriptionId=SubscriptionId,ResourceGroupName=ResourceGroupName,TopicName=TopicName,EventSubscriptionName=EventSubscriptionName}) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(urexception.Message) { RecommendedAction = urexception.Action } + }); + } + finally + { + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// + /// Intializes a new instance of the cmdlet class. + /// + public RemoveAzEventGridTopicEventSubscription_Delete() + { + + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Cancel(); + base.StopProcessing(); + } + + /// + /// a delegate that is called when the remote service returns default (any response code not handled elsewhere). + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onDefault(global::System.Net.Http.HttpResponseMessage responseMessage) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnDefault(responseMessage, ref _returnNow); + // if overrideOnDefault has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // Error Response : default + // Unrecognized Response. Create an error record based on what we have. + var ex = new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.RestException(responseMessage); + WriteError( new global::System.Management.Automation.ErrorRecord(ex, ex.Code, global::System.Management.Automation.ErrorCategory.InvalidOperation, new { SubscriptionId=SubscriptionId, ResourceGroupName=ResourceGroupName, TopicName=TopicName, EventSubscriptionName=EventSubscriptionName }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(ex.Message) { RecommendedAction = ex.Action } + }); + } + } + + /// 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/eventgrid/generated/cmdlets/RemoveAzEventGridTopicEventSubscription_DeleteViaIdentity.cs b/swaggerci/eventgrid/generated/cmdlets/RemoveAzEventGridTopicEventSubscription_DeleteViaIdentity.cs new file mode 100644 index 000000000000..c70b6238430e --- /dev/null +++ b/swaggerci/eventgrid/generated/cmdlets/RemoveAzEventGridTopicEventSubscription_DeleteViaIdentity.cs @@ -0,0 +1,477 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Extensions; + using System; + + /// Delete an existing event subscription for a topic. + /// + /// [OpenAPI] Delete=>DELETE:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.EventGrid/topics/{topicName}/eventSubscriptions/{eventSubscriptionName}" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsCommon.Remove, @"AzEventGridTopicEventSubscription_DeleteViaIdentity", SupportsShouldProcess = true)] + [global::System.Management.Automation.OutputType(typeof(bool))] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Description(@"Delete an existing event subscription for a topic.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Generated] + public partial class RemoveAzEventGridTopicEventSubscription_DeleteViaIdentity : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener + { + /// A unique id generatd for the this cmdlet when it is instantiated. + private string __correlationId = System.Guid.NewGuid().ToString(); + + /// A copy of the Invocation Info (necessary to allow asJob to clone this cmdlet) + private global::System.Management.Automation.InvocationInfo __invocationInfo; + + /// A unique id generatd for the 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.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.EventGridManagementClient Client => Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.ClientAPI; + + /// + /// The credentials, account, tenant, and subscription used for communication with Azure + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The credentials, account, tenant, and subscription used for communication with Azure.")] + [global::System.Management.Automation.ValidateNotNull] + [global::System.Management.Automation.Alias("AzureRMContext", "AzureCredential")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Azure)] + public global::System.Management.Automation.PSObject DefaultProfile { get; set; } + + /// SendAsync Pipeline Steps to be appended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be appended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[] HttpPipelineAppend { get; set; } + + /// SendAsync Pipeline Steps to be prepended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be prepended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[] HttpPipelinePrepend { get; set; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.IEventGridIdentity _inputObject; + + /// Identity Parameter + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Identity Parameter", ValueFromPipeline = true)] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Path)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.IEventGridIdentity InputObject { get => this._inputObject; set => this._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.EventGrid.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter NoWait { get; set; } + + /// + /// When specified, forces the cmdlet return a 'bool' given that there isn't a return type by default. + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Returns true when the command succeeds")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Runtime.HttpPipeline Pipeline { get; set; } + + /// The URI for the proxy server to use + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "The URI for the proxy server to use")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Uri Proxy { get; set; } + + /// Credentials for a proxy server to use for the remote call + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Credentials for a proxy server to use for the remote call")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Management.Automation.PSCredential ProxyCredential { get; set; } + + /// Use the default credentials for the proxy + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Use the default credentials for the proxy")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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. + /// /// Determines if the rest of the onDefault method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnDefault(global::System.Net.Http.HttpResponseMessage responseMessage, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnNoContent will be called before the regular onNoContent has been processed, allowing customization of + /// what happens on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// /// Determines if the rest of the onNoContent method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnNoContent(global::System.Net.Http.HttpResponseMessage responseMessage, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnOk will be called before the regular onOk has been processed, allowing customization of what happens + /// on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// /// Determines if the rest of the onOk method should be processed, or if the method should return + /// immediately (set to true to skip further processing ) + + partial void overrideOnOk(global::System.Net.Http.HttpResponseMessage responseMessage, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// (overrides the default BeginProcessing method in global::System.Management.Automation.PSCmdlet) + /// + protected override void BeginProcessing() + { + var telemetryId = Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.GetTelemetryId.Invoke(); + if (telemetryId != "" && telemetryId != "internal") + { + __correlationId = telemetryId; + } + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Creates a duplicate instance of this cmdlet (via JSON serialization). + /// + /// a duplicate instance of RemoveAzEventGridTopicEventSubscription_DeleteViaIdentity + /// + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Cmdlets.RemoveAzEventGridTopicEventSubscription_DeleteViaIdentity Clone() + { + var clone = new RemoveAzEventGridTopicEventSubscription_DeleteViaIdentity(); + clone.__correlationId = this.__correlationId; + clone.__processRecordId = this.__processRecordId; + clone.DefaultProfile = this.DefaultProfile; + clone.InvocationInformation = this.InvocationInformation; + clone.Proxy = this.Proxy; + clone.Pipeline = this.Pipeline; + clone.AsJob = this.AsJob; + clone.Break = this.Break; + clone.ProxyCredential = this.ProxyCredential; + clone.ProxyUseDefaultCredentials = this.ProxyUseDefaultCredentials; + clone.HttpPipelinePrepend = this.HttpPipelinePrepend; + clone.HttpPipelineAppend = this.HttpPipelineAppend; + return clone; + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + + } + + /// Handles/Dispatches events during the call to the REST service. + /// The message id + /// The message cancellation token. When this call is cancelled, this should be true + /// Detailed message data for the message event. + /// + /// A that will be complete when handling of the message is completed. + /// + async global::System.Threading.Tasks.Task Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener.Signal(string id, global::System.Threading.CancellationToken token, global::System.Func messageData) + { + using( NoSynchronizationContext ) + { + if (token.IsCancellationRequested) + { + return ; + } + + switch ( id ) + { + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.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.EventGrid.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.EventGrid.Runtime.PowerShell.AsyncOperationResponse { Target = uri }); + // do nothing more. + data.Cancel(); + return; + } + } + break; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.EventData ), InvocationInformation, this.ParameterSetName, __correlationId, __processRecordId, null ); + if (token.IsCancellationRequested) + { + return ; + } + WriteDebug($"{id}: {(messageData().Message ?? global::System.String.Empty)}"); + } + } + + /// Performs execution of the command. + protected override void ProcessRecord() + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + if (ShouldProcess($"Call remote 'TopicEventSubscriptionsDelete' operation")) + { + if (true == MyInvocation?.BoundParameters?.ContainsKey("AsJob")) + { + var instance = this.Clone(); + var job = new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token); + } + } + } + } + catch (global::System.AggregateException aggregateException) + { + // unroll the inner exceptions to get the root cause + foreach( var innerException in aggregateException.Flatten().InnerExceptions ) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(innerException,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + } + catch (global::System.Exception exception) when ((exception as System.Management.Automation.PipelineStoppedException)== null || (exception as System.Management.Automation.PipelineStoppedException).InnerException != null) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(exception,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + finally + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletProcessRecordEnd).Wait(); + } + } + + /// Performs execution of the command, working asynchronously if required. + /// + /// A that will be complete when handling of the method is completed. + /// + protected async global::System.Threading.Tasks.Task ProcessRecordAsync() + { + using( NoSynchronizationContext ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + if (InputObject?.Id != null) + { + await this.Client.TopicEventSubscriptionsDeleteViaIdentity(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.TopicName) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.TopicName"),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, InputObject) ); + } + if (null == InputObject.EventSubscriptionName) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.EventSubscriptionName"),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, InputObject) ); + } + await this.Client.TopicEventSubscriptionsDelete(InputObject.SubscriptionId ?? null, InputObject.ResourceGroupName ?? null, InputObject.TopicName ?? null, InputObject.EventSubscriptionName ?? null, onOk, onNoContent, onDefault, this, Pipeline); + } + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// + /// Intializes a new instance of the cmdlet class. + /// + public RemoveAzEventGridTopicEventSubscription_DeleteViaIdentity() + { + + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Cancel(); + base.StopProcessing(); + } + + /// + /// a delegate that is called when the remote service returns default (any response code not handled elsewhere). + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onDefault(global::System.Net.Http.HttpResponseMessage responseMessage) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnDefault(responseMessage, ref _returnNow); + // if overrideOnDefault has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // Error Response : default + // Unrecognized Response. Create an error record based on what we have. + var ex = new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.RestException(responseMessage); + WriteError( new global::System.Management.Automation.ErrorRecord(ex, ex.Code, global::System.Management.Automation.ErrorCategory.InvalidOperation, new { }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(ex.Message) { RecommendedAction = ex.Action } + }); + } + } + + /// a delegate that is called when the remote service returns 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/eventgrid/generated/cmdlets/RemoveAzEventGridTopic_Delete.cs b/swaggerci/eventgrid/generated/cmdlets/RemoveAzEventGridTopic_Delete.cs new file mode 100644 index 000000000000..ecefedc9f5f9 --- /dev/null +++ b/swaggerci/eventgrid/generated/cmdlets/RemoveAzEventGridTopic_Delete.cs @@ -0,0 +1,462 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Extensions; + using System; + + /// Delete existing topic. + /// + /// [OpenAPI] Delete=>DELETE:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.EventGrid/topics/{topicName}" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsCommon.Remove, @"AzEventGridTopic_Delete", SupportsShouldProcess = true)] + [global::System.Management.Automation.OutputType(typeof(bool))] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Description(@"Delete existing topic.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Generated] + public partial class RemoveAzEventGridTopic_Delete : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener + { + /// A unique id generatd for the this cmdlet when it is instantiated. + private string __correlationId = System.Guid.NewGuid().ToString(); + + /// A copy of the Invocation Info (necessary to allow asJob to clone this cmdlet) + private global::System.Management.Automation.InvocationInfo __invocationInfo; + + /// A unique id generatd for the 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.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.EventGridManagementClient Client => Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.ClientAPI; + + /// + /// The credentials, account, tenant, and subscription used for communication with Azure + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The credentials, account, tenant, and subscription used for communication with Azure.")] + [global::System.Management.Automation.ValidateNotNull] + [global::System.Management.Automation.Alias("AzureRMContext", "AzureCredential")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Azure)] + public global::System.Management.Automation.PSObject DefaultProfile { get; set; } + + /// SendAsync Pipeline Steps to be appended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be appended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[] HttpPipelineAppend { get; set; } + + /// SendAsync Pipeline Steps to be prepended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be prepended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[] HttpPipelinePrepend { get; set; } + + /// Accessor for our copy of the InvocationInfo. + public global::System.Management.Automation.InvocationInfo InvocationInformation { get => __invocationInfo = __invocationInfo ?? this.MyInvocation ; set { __invocationInfo = value; } } + + /// + /// cancellation delegate. Stops the cmdlet when called. + /// + global::System.Action Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener.Token => _cancellationTokenSource.Token; + + /// Backing field for property. + private string _name; + + /// Name of the topic. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Name of the topic.")] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Name of the topic.", + SerializedName = @"topicName", + PossibleTypes = new [] { typeof(string) })] + [global::System.Management.Automation.Alias("TopicName")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Path)] + public string Name { get => this._name; set => this._name = value; } + + /// + /// when specified, will make the remote call, and return an AsyncOperationResponse, letting the remote operation continue + /// asynchronously. + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Run the command asynchronously")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter NoWait { get; set; } + + /// + /// When specified, forces the cmdlet return a 'bool' given that there isn't a return type by default. + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Returns true when the command succeeds")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Runtime.HttpPipeline Pipeline { get; set; } + + /// The URI for the proxy server to use + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "The URI for the proxy server to use")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Uri Proxy { get; set; } + + /// Credentials for a proxy server to use for the remote call + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Credentials for a proxy server to use for the remote call")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Management.Automation.PSCredential ProxyCredential { get; set; } + + /// Use the default credentials for the proxy + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Use the default credentials for the proxy")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter ProxyUseDefaultCredentials { get; set; } + + /// Backing field for property. + private string _resourceGroupName; + + /// The name of the resource group within the user's subscription. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the resource group within the user's subscription.")] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the resource group within the user's subscription.", + SerializedName = @"resourceGroupName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Path)] + public string ResourceGroupName { get => this._resourceGroupName; set => this._resourceGroupName = value; } + + /// Backing field for property. + private string _subscriptionId; + + /// + /// Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription ID forms part of the + /// URI for every service call. + /// + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.")] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.", + SerializedName = @"subscriptionId", + PossibleTypes = new [] { typeof(string) })] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.DefaultInfo( + Name = @"", + Description =@"", + Script = @"(Get-AzContext).Subscription.Id")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Path)] + public string SubscriptionId { get => this._subscriptionId; set => this._subscriptionId = value; } + + /// + /// overrideOnDefault will be called before the regular onDefault has been processed, allowing customization of what + /// happens on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// /// Determines if the rest of the onDefault method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnDefault(global::System.Net.Http.HttpResponseMessage responseMessage, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// 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() + { + var telemetryId = Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.GetTelemetryId.Invoke(); + if (telemetryId != "" && telemetryId != "internal") + { + __correlationId = telemetryId; + } + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Creates a duplicate instance of this cmdlet (via JSON serialization). + /// a duplicate instance of RemoveAzEventGridTopic_Delete + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Cmdlets.RemoveAzEventGridTopic_Delete Clone() + { + var clone = new RemoveAzEventGridTopic_Delete(); + clone.__correlationId = this.__correlationId; + clone.__processRecordId = this.__processRecordId; + clone.DefaultProfile = this.DefaultProfile; + clone.InvocationInformation = this.InvocationInformation; + clone.Proxy = this.Proxy; + clone.Pipeline = this.Pipeline; + clone.AsJob = this.AsJob; + clone.Break = this.Break; + clone.ProxyCredential = this.ProxyCredential; + clone.ProxyUseDefaultCredentials = this.ProxyUseDefaultCredentials; + clone.HttpPipelinePrepend = this.HttpPipelinePrepend; + clone.HttpPipelineAppend = this.HttpPipelineAppend; + clone.SubscriptionId = this.SubscriptionId; + clone.ResourceGroupName = this.ResourceGroupName; + clone.Name = this.Name; + return clone; + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + + } + + /// Handles/Dispatches events during the call to the REST service. + /// The message id + /// The message cancellation token. When this call is cancelled, this should be true + /// Detailed message data for the message event. + /// + /// A that will be complete when handling of the message is completed. + /// + async global::System.Threading.Tasks.Task Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener.Signal(string id, global::System.Threading.CancellationToken token, global::System.Func messageData) + { + using( NoSynchronizationContext ) + { + if (token.IsCancellationRequested) + { + return ; + } + + switch ( id ) + { + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.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.EventGrid.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.EventGrid.Runtime.PowerShell.AsyncOperationResponse { Target = uri }); + // do nothing more. + data.Cancel(); + return; + } + } + break; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.EventData ), InvocationInformation, this.ParameterSetName, __correlationId, __processRecordId, null ); + if (token.IsCancellationRequested) + { + return ; + } + WriteDebug($"{id}: {(messageData().Message ?? global::System.String.Empty)}"); + } + } + + /// Performs execution of the command. + protected override void ProcessRecord() + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + if (ShouldProcess($"Call remote 'TopicsDelete' operation")) + { + if (true == MyInvocation?.BoundParameters?.ContainsKey("AsJob")) + { + var instance = this.Clone(); + var job = new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token); + } + } + } + } + catch (global::System.AggregateException aggregateException) + { + // unroll the inner exceptions to get the root cause + foreach( var innerException in aggregateException.Flatten().InnerExceptions ) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(innerException,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + } + catch (global::System.Exception exception) when ((exception as System.Management.Automation.PipelineStoppedException)== null || (exception as System.Management.Automation.PipelineStoppedException).InnerException != null) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(exception,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + finally + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletProcessRecordEnd).Wait(); + } + } + + /// Performs execution of the command, working asynchronously if required. + /// + /// A that will be complete when handling of the method is completed. + /// + protected async global::System.Threading.Tasks.Task ProcessRecordAsync() + { + using( NoSynchronizationContext ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await this.Client.TopicsDelete(SubscriptionId, ResourceGroupName, Name, onNoContent, onDefault, this, Pipeline); + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.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.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// + /// Intializes a new instance of the cmdlet class. + /// + public RemoveAzEventGridTopic_Delete() + { + + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Cancel(); + base.StopProcessing(); + } + + /// + /// a delegate that is called when the remote service returns default (any response code not handled elsewhere). + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onDefault(global::System.Net.Http.HttpResponseMessage responseMessage) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnDefault(responseMessage, ref _returnNow); + // if overrideOnDefault has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // Error Response : default + // Unrecognized Response. Create an error record based on what we have. + var ex = new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.RestException(responseMessage); + 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 } + }); + } + } + + /// 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/eventgrid/generated/cmdlets/RemoveAzEventGridTopic_DeleteViaIdentity.cs b/swaggerci/eventgrid/generated/cmdlets/RemoveAzEventGridTopic_DeleteViaIdentity.cs new file mode 100644 index 000000000000..31ab6eea5c0b --- /dev/null +++ b/swaggerci/eventgrid/generated/cmdlets/RemoveAzEventGridTopic_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.EventGrid.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Extensions; + using System; + + /// Delete existing topic. + /// + /// [OpenAPI] Delete=>DELETE:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.EventGrid/topics/{topicName}" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsCommon.Remove, @"AzEventGridTopic_DeleteViaIdentity", SupportsShouldProcess = true)] + [global::System.Management.Automation.OutputType(typeof(bool))] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Description(@"Delete existing topic.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Generated] + public partial class RemoveAzEventGridTopic_DeleteViaIdentity : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener + { + /// A unique id generatd for the this cmdlet when it is instantiated. + private string __correlationId = System.Guid.NewGuid().ToString(); + + /// A copy of the Invocation Info (necessary to allow asJob to clone this cmdlet) + private global::System.Management.Automation.InvocationInfo __invocationInfo; + + /// A unique id generatd for the 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.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.EventGridManagementClient Client => Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.ClientAPI; + + /// + /// The credentials, account, tenant, and subscription used for communication with Azure + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The credentials, account, tenant, and subscription used for communication with Azure.")] + [global::System.Management.Automation.ValidateNotNull] + [global::System.Management.Automation.Alias("AzureRMContext", "AzureCredential")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Azure)] + public global::System.Management.Automation.PSObject DefaultProfile { get; set; } + + /// SendAsync Pipeline Steps to be appended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be appended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[] HttpPipelineAppend { get; set; } + + /// SendAsync Pipeline Steps to be prepended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be prepended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[] HttpPipelinePrepend { get; set; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.IEventGridIdentity _inputObject; + + /// Identity Parameter + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Identity Parameter", ValueFromPipeline = true)] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Path)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.IEventGridIdentity InputObject { get => this._inputObject; set => this._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.EventGrid.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter NoWait { get; set; } + + /// + /// When specified, forces the cmdlet return a 'bool' given that there isn't a return type by default. + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Returns true when the command succeeds")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Runtime.HttpPipeline Pipeline { get; set; } + + /// The URI for the proxy server to use + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "The URI for the proxy server to use")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Uri Proxy { get; set; } + + /// Credentials for a proxy server to use for the remote call + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Credentials for a proxy server to use for the remote call")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Management.Automation.PSCredential ProxyCredential { get; set; } + + /// Use the default credentials for the proxy + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Use the default credentials for the proxy")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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. + /// /// Determines if the rest of the onDefault method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnDefault(global::System.Net.Http.HttpResponseMessage responseMessage, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// 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() + { + var telemetryId = Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.GetTelemetryId.Invoke(); + if (telemetryId != "" && telemetryId != "internal") + { + __correlationId = telemetryId; + } + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Creates a duplicate instance of this cmdlet (via JSON serialization). + /// a duplicate instance of RemoveAzEventGridTopic_DeleteViaIdentity + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Cmdlets.RemoveAzEventGridTopic_DeleteViaIdentity Clone() + { + var clone = new RemoveAzEventGridTopic_DeleteViaIdentity(); + clone.__correlationId = this.__correlationId; + clone.__processRecordId = this.__processRecordId; + clone.DefaultProfile = this.DefaultProfile; + clone.InvocationInformation = this.InvocationInformation; + clone.Proxy = this.Proxy; + clone.Pipeline = this.Pipeline; + clone.AsJob = this.AsJob; + clone.Break = this.Break; + clone.ProxyCredential = this.ProxyCredential; + clone.ProxyUseDefaultCredentials = this.ProxyUseDefaultCredentials; + clone.HttpPipelinePrepend = this.HttpPipelinePrepend; + clone.HttpPipelineAppend = this.HttpPipelineAppend; + return clone; + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + + } + + /// Handles/Dispatches events during the call to the REST service. + /// The message id + /// The message cancellation token. When this call is cancelled, this should be true + /// Detailed message data for the message event. + /// + /// A that will be complete when handling of the message is completed. + /// + async global::System.Threading.Tasks.Task Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener.Signal(string id, global::System.Threading.CancellationToken token, global::System.Func messageData) + { + using( NoSynchronizationContext ) + { + if (token.IsCancellationRequested) + { + return ; + } + + switch ( id ) + { + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.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.EventGrid.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.EventGrid.Runtime.PowerShell.AsyncOperationResponse { Target = uri }); + // do nothing more. + data.Cancel(); + return; + } + } + break; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.EventData ), InvocationInformation, this.ParameterSetName, __correlationId, __processRecordId, null ); + if (token.IsCancellationRequested) + { + return ; + } + WriteDebug($"{id}: {(messageData().Message ?? global::System.String.Empty)}"); + } + } + + /// Performs execution of the command. + protected override void ProcessRecord() + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + if (ShouldProcess($"Call remote 'TopicsDelete' operation")) + { + if (true == MyInvocation?.BoundParameters?.ContainsKey("AsJob")) + { + var instance = this.Clone(); + var job = new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token); + } + } + } + } + catch (global::System.AggregateException aggregateException) + { + // unroll the inner exceptions to get the root cause + foreach( var innerException in aggregateException.Flatten().InnerExceptions ) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(innerException,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + } + catch (global::System.Exception exception) when ((exception as System.Management.Automation.PipelineStoppedException)== null || (exception as System.Management.Automation.PipelineStoppedException).InnerException != null) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(exception,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + finally + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletProcessRecordEnd).Wait(); + } + } + + /// Performs execution of the command, working asynchronously if required. + /// + /// A that will be complete when handling of the method is completed. + /// + protected async global::System.Threading.Tasks.Task ProcessRecordAsync() + { + using( NoSynchronizationContext ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + if (InputObject?.Id != null) + { + await this.Client.TopicsDeleteViaIdentity(InputObject.Id, onNoContent, onDefault, this, Pipeline); + } + else + { + // try to call with PATH parameters from Input Object + if (null == InputObject.SubscriptionId) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.SubscriptionId"),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, InputObject) ); + } + if (null == InputObject.ResourceGroupName) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.ResourceGroupName"),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, InputObject) ); + } + if (null == InputObject.TopicName) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.TopicName"),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, InputObject) ); + } + await this.Client.TopicsDelete(InputObject.SubscriptionId ?? null, InputObject.ResourceGroupName ?? null, InputObject.TopicName ?? null, onNoContent, onDefault, this, Pipeline); + } + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// + /// Intializes a new instance of the cmdlet class. + /// + public RemoveAzEventGridTopic_DeleteViaIdentity() + { + + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Cancel(); + base.StopProcessing(); + } + + /// + /// a delegate that is called when the remote service returns default (any response code not handled elsewhere). + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onDefault(global::System.Net.Http.HttpResponseMessage responseMessage) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnDefault(responseMessage, ref _returnNow); + // if overrideOnDefault has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // Error Response : default + // Unrecognized Response. Create an error record based on what we have. + var ex = new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.RestException(responseMessage); + WriteError( new global::System.Management.Automation.ErrorRecord(ex, ex.Code, global::System.Management.Automation.ErrorCategory.InvalidOperation, new { }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(ex.Message) { RecommendedAction = ex.Action } + }); + } + } + + /// a delegate that is called when the remote service returns 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/eventgrid/generated/cmdlets/UpdateAzEventGridChannel_UpdateExpanded.cs b/swaggerci/eventgrid/generated/cmdlets/UpdateAzEventGridChannel_UpdateExpanded.cs new file mode 100644 index 000000000000..b3890c25b1c1 --- /dev/null +++ b/swaggerci/eventgrid/generated/cmdlets/UpdateAzEventGridChannel_UpdateExpanded.cs @@ -0,0 +1,455 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Extensions; + using System; + + /// Synchronously updates a channel with the specified parameters. + /// + /// [OpenAPI] Update=>PATCH:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.EventGrid/partnerNamespaces/{partnerNamespaceName}/channels/{channelName}" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsData.Update, @"AzEventGridChannel_UpdateExpanded", SupportsShouldProcess = true)] + [global::System.Management.Automation.OutputType(typeof(bool))] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Description(@"Synchronously updates a channel with the specified parameters.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Generated] + public partial class UpdateAzEventGridChannel_UpdateExpanded : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener + { + /// A unique id generatd for the this cmdlet when it is instantiated. + private string __correlationId = System.Guid.NewGuid().ToString(); + + /// A copy of the Invocation Info (necessary to allow asJob to clone this cmdlet) + private global::System.Management.Automation.InvocationInfo __invocationInfo; + + /// A unique id generatd for the this cmdlet when ProcessRecord() is called. + private string __processRecordId; + + /// + /// The for this operation. + /// + private global::System.Threading.CancellationTokenSource _cancellationTokenSource = new global::System.Threading.CancellationTokenSource(); + + /// Properties of the Channel update. + private Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IChannelUpdateParameters _channelUpdateParametersBody = new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ChannelUpdateParameters(); + + /// Wait for .NET debugger to attach + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Wait for .NET debugger to attach")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.EventGridManagementClient Client => Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.ClientAPI; + + /// + /// The credentials, account, tenant, and subscription used for communication with Azure + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The credentials, account, tenant, and subscription used for communication with Azure.")] + [global::System.Management.Automation.ValidateNotNull] + [global::System.Management.Automation.Alias("AzureRMContext", "AzureCredential")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Azure)] + public global::System.Management.Automation.PSObject DefaultProfile { get; set; } + + /// + /// A collection of inline event types for the resource. The inline event type keys are of type string which represents the + /// name of the event.An example of a valid inline event name is "Contoso.OrderCreated".The inline event type values are of + /// type InlineEventProperties and will contain additional information for every inline event type. + /// + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ExportAs(typeof(global::System.Collections.Hashtable))] + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "A collection of inline event types for the resource. The inline event type keys are of type string which represents the name of the event.An example of a valid inline event name is \"Contoso.OrderCreated\".The inline event type values are of type InlineEventProperties and will contain additional information for every inline event type.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"A collection of inline event types for the resource. The inline event type keys are of type string which represents the name of the event.An example of a valid inline event name is ""Contoso.OrderCreated"".The inline event type values are of type InlineEventProperties and will contain additional information for every inline event type.", + SerializedName = @"inlineEventTypes", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventTypeInfoInlineEventTypes) })] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventTypeInfoInlineEventTypes EventTypeInfoInlineEventType { get => _channelUpdateParametersBody.EventTypeInfoInlineEventType ?? null /* object */; set => _channelUpdateParametersBody.EventTypeInfoInlineEventType = value; } + + /// The kind of event type used. + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The kind of event type used.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The kind of event type used.", + SerializedName = @"kind", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EventDefinitionKind) })] + [global::System.Management.Automation.ArgumentCompleter(typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EventDefinitionKind))] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EventDefinitionKind EventTypeInfoKind { get => _channelUpdateParametersBody.EventTypeInfoKind ?? ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EventDefinitionKind)""); set => _channelUpdateParametersBody.EventTypeInfoKind = value; } + + /// + /// Expiration time of the event channel. If this timer expires while the corresponding partner topic or partner destination + /// is never activated,the channel and corresponding partner topic or partner destination are deleted. + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Expiration time of the event channel. If this timer expires while the corresponding partner topic or partner destination is never activated,the channel and corresponding partner topic or partner destination are deleted.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Expiration time of the event channel. If this timer expires while the corresponding partner topic or partner destination is never activated,the channel and corresponding partner topic or partner destination are deleted.", + SerializedName = @"expirationTimeIfNotActivatedUtc", + PossibleTypes = new [] { typeof(global::System.DateTime) })] + public global::System.DateTime ExpirationTimeIfNotActivatedUtc { get => _channelUpdateParametersBody.ExpirationTimeIfNotActivatedUtc ?? default(global::System.DateTime); set => _channelUpdateParametersBody.ExpirationTimeIfNotActivatedUtc = 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.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[] HttpPipelineAppend { get; set; } + + /// SendAsync Pipeline Steps to be prepended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be prepended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[] HttpPipelinePrepend { get; set; } + + /// Accessor for our copy of the InvocationInfo. + public global::System.Management.Automation.InvocationInfo InvocationInformation { get => __invocationInfo = __invocationInfo ?? this.MyInvocation ; set { __invocationInfo = value; } } + + /// + /// cancellation delegate. Stops the cmdlet when called. + /// + global::System.Action Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener.Token => _cancellationTokenSource.Token; + + /// Backing field for property. + private string _name; + + /// Name of the channel. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Name of the channel.")] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Name of the channel.", + SerializedName = @"channelName", + PossibleTypes = new [] { typeof(string) })] + [global::System.Management.Automation.Alias("ChannelName")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Path)] + public string Name { get => this._name; set => this._name = value; } + + /// Backing field for property. + private string _partnerNamespaceName; + + /// Name of the partner namespace. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Name of the partner namespace.")] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Name of the partner namespace.", + SerializedName = @"partnerNamespaceName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Path)] + public string PartnerNamespaceName { get => this._partnerNamespaceName; set => this._partnerNamespaceName = 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.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Runtime.HttpPipeline Pipeline { get; set; } + + /// The URI for the proxy server to use + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "The URI for the proxy server to use")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Uri Proxy { get; set; } + + /// Credentials for a proxy server to use for the remote call + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Credentials for a proxy server to use for the remote call")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Management.Automation.PSCredential ProxyCredential { get; set; } + + /// Use the default credentials for the proxy + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Use the default credentials for the proxy")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter ProxyUseDefaultCredentials { get; set; } + + /// Backing field for property. + private string _resourceGroupName; + + /// The name of the resource group within the partners subscription. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the resource group within the partners subscription.")] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the resource group within the partners subscription.", + SerializedName = @"resourceGroupName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Path)] + public string ResourceGroupName { get => this._resourceGroupName; set => this._resourceGroupName = value; } + + /// Backing field for property. + private string _subscriptionId; + + /// + /// Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription ID forms part of the + /// URI for every service call. + /// + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.")] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.", + SerializedName = @"subscriptionId", + PossibleTypes = new [] { typeof(string) })] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.DefaultInfo( + Name = @"", + Description =@"", + Script = @"(Get-AzContext).Subscription.Id")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Path)] + public string SubscriptionId { get => this._subscriptionId; set => this._subscriptionId = value; } + + /// + /// overrideOnDefault will be called before the regular onDefault has been processed, allowing customization of what + /// happens on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// /// Determines if the rest of the onDefault method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnDefault(global::System.Net.Http.HttpResponseMessage responseMessage, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnOk will be called before the regular onOk has been processed, allowing customization of what happens + /// on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// /// Determines if the rest of the onOk method should be processed, or if the method should return + /// immediately (set to true to skip further processing ) + + partial void overrideOnOk(global::System.Net.Http.HttpResponseMessage responseMessage, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// (overrides the default BeginProcessing method in global::System.Management.Automation.PSCmdlet) + /// + protected override void BeginProcessing() + { + var telemetryId = Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.GetTelemetryId.Invoke(); + if (telemetryId != "" && telemetryId != "internal") + { + __correlationId = telemetryId; + } + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + + } + + /// Handles/Dispatches events during the call to the REST service. + /// The message id + /// The message cancellation token. When this call is cancelled, this should be true + /// Detailed message data for the message event. + /// + /// A that will be complete when handling of the message is completed. + /// + async global::System.Threading.Tasks.Task Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener.Signal(string id, global::System.Threading.CancellationToken token, global::System.Func messageData) + { + using( NoSynchronizationContext ) + { + if (token.IsCancellationRequested) + { + return ; + } + + switch ( id ) + { + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Information: + { + var data = messageData(); + WriteInformation(data.Message, new string[]{}); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Error: + { + WriteError(new global::System.Management.Automation.ErrorRecord( new global::System.Exception(messageData().Message), string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null ) ); + return ; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.EventData ), InvocationInformation, this.ParameterSetName, __correlationId, __processRecordId, null ); + if (token.IsCancellationRequested) + { + return ; + } + WriteDebug($"{id}: {(messageData().Message ?? global::System.String.Empty)}"); + } + } + + /// Performs execution of the command. + protected override void ProcessRecord() + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + if (ShouldProcess($"Call remote 'ChannelsUpdate' operation")) + { + using( var asyncCommandRuntime = new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token); + } + } + } + catch (global::System.AggregateException aggregateException) + { + // unroll the inner exceptions to get the root cause + foreach( var innerException in aggregateException.Flatten().InnerExceptions ) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(innerException,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + } + catch (global::System.Exception exception) when ((exception as System.Management.Automation.PipelineStoppedException)== null || (exception as System.Management.Automation.PipelineStoppedException).InnerException != null) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(exception,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + finally + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletProcessRecordEnd).Wait(); + } + } + + /// Performs execution of the command, working asynchronously if required. + /// + /// A that will be complete when handling of the method is completed. + /// + protected async global::System.Threading.Tasks.Task ProcessRecordAsync() + { + using( NoSynchronizationContext ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await this.Client.ChannelsUpdate(SubscriptionId, ResourceGroupName, PartnerNamespaceName, Name, _channelUpdateParametersBody, onOk, onDefault, this, Pipeline); + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.UndeclaredResponseException urexception) + { + WriteError(new global::System.Management.Automation.ErrorRecord(urexception, urexception.StatusCode.ToString(), global::System.Management.Automation.ErrorCategory.InvalidOperation, new { SubscriptionId=SubscriptionId,ResourceGroupName=ResourceGroupName,PartnerNamespaceName=PartnerNamespaceName,Name=Name,body=_channelUpdateParametersBody}) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(urexception.Message) { RecommendedAction = urexception.Action } + }); + } + finally + { + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Cancel(); + base.StopProcessing(); + } + + /// + /// Intializes a new instance of the cmdlet class. + /// + public UpdateAzEventGridChannel_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. + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onDefault(global::System.Net.Http.HttpResponseMessage responseMessage) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnDefault(responseMessage, ref _returnNow); + // if overrideOnDefault has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // Error Response : default + // Unrecognized Response. Create an error record based on what we have. + var ex = new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.RestException(responseMessage); + WriteError( new global::System.Management.Automation.ErrorRecord(ex, ex.Code, global::System.Management.Automation.ErrorCategory.InvalidOperation, new { SubscriptionId=SubscriptionId, ResourceGroupName=ResourceGroupName, PartnerNamespaceName=PartnerNamespaceName, Name=Name, body=_channelUpdateParametersBody }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(ex.Message) { RecommendedAction = ex.Action } + }); + } + } + + /// a delegate that is called when the remote service returns 200 (OK). + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onOk(global::System.Net.Http.HttpResponseMessage responseMessage) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnOk(responseMessage, ref _returnNow); + // if overrideOnOk has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // onOk - response for 200 / + if (true == MyInvocation?.BoundParameters?.ContainsKey("PassThru")) + { + WriteObject(true); + } + } + } + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/cmdlets/UpdateAzEventGridChannel_UpdateViaIdentityExpanded.cs b/swaggerci/eventgrid/generated/cmdlets/UpdateAzEventGridChannel_UpdateViaIdentityExpanded.cs new file mode 100644 index 000000000000..7685d95c2c5e --- /dev/null +++ b/swaggerci/eventgrid/generated/cmdlets/UpdateAzEventGridChannel_UpdateViaIdentityExpanded.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.EventGrid.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Extensions; + using System; + + /// Synchronously updates a channel with the specified parameters. + /// + /// [OpenAPI] Update=>PATCH:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.EventGrid/partnerNamespaces/{partnerNamespaceName}/channels/{channelName}" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsData.Update, @"AzEventGridChannel_UpdateViaIdentityExpanded", SupportsShouldProcess = true)] + [global::System.Management.Automation.OutputType(typeof(bool))] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Description(@"Synchronously updates a channel with the specified parameters.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Generated] + public partial class UpdateAzEventGridChannel_UpdateViaIdentityExpanded : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener + { + /// A unique id generatd for the this cmdlet when it is instantiated. + private string __correlationId = System.Guid.NewGuid().ToString(); + + /// A copy of the Invocation Info (necessary to allow asJob to clone this cmdlet) + private global::System.Management.Automation.InvocationInfo __invocationInfo; + + /// A unique id generatd for the this cmdlet when ProcessRecord() is called. + private string __processRecordId; + + /// + /// The for this operation. + /// + private global::System.Threading.CancellationTokenSource _cancellationTokenSource = new global::System.Threading.CancellationTokenSource(); + + /// Properties of the Channel update. + private Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IChannelUpdateParameters _channelUpdateParametersBody = new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ChannelUpdateParameters(); + + /// Wait for .NET debugger to attach + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Wait for .NET debugger to attach")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.EventGridManagementClient Client => Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.ClientAPI; + + /// + /// The credentials, account, tenant, and subscription used for communication with Azure + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The credentials, account, tenant, and subscription used for communication with Azure.")] + [global::System.Management.Automation.ValidateNotNull] + [global::System.Management.Automation.Alias("AzureRMContext", "AzureCredential")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Azure)] + public global::System.Management.Automation.PSObject DefaultProfile { get; set; } + + /// + /// A collection of inline event types for the resource. The inline event type keys are of type string which represents the + /// name of the event.An example of a valid inline event name is "Contoso.OrderCreated".The inline event type values are of + /// type InlineEventProperties and will contain additional information for every inline event type. + /// + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ExportAs(typeof(global::System.Collections.Hashtable))] + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "A collection of inline event types for the resource. The inline event type keys are of type string which represents the name of the event.An example of a valid inline event name is \"Contoso.OrderCreated\".The inline event type values are of type InlineEventProperties and will contain additional information for every inline event type.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"A collection of inline event types for the resource. The inline event type keys are of type string which represents the name of the event.An example of a valid inline event name is ""Contoso.OrderCreated"".The inline event type values are of type InlineEventProperties and will contain additional information for every inline event type.", + SerializedName = @"inlineEventTypes", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventTypeInfoInlineEventTypes) })] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventTypeInfoInlineEventTypes EventTypeInfoInlineEventType { get => _channelUpdateParametersBody.EventTypeInfoInlineEventType ?? null /* object */; set => _channelUpdateParametersBody.EventTypeInfoInlineEventType = value; } + + /// The kind of event type used. + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The kind of event type used.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The kind of event type used.", + SerializedName = @"kind", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EventDefinitionKind) })] + [global::System.Management.Automation.ArgumentCompleter(typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EventDefinitionKind))] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EventDefinitionKind EventTypeInfoKind { get => _channelUpdateParametersBody.EventTypeInfoKind ?? ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EventDefinitionKind)""); set => _channelUpdateParametersBody.EventTypeInfoKind = value; } + + /// + /// Expiration time of the event channel. If this timer expires while the corresponding partner topic or partner destination + /// is never activated,the channel and corresponding partner topic or partner destination are deleted. + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Expiration time of the event channel. If this timer expires while the corresponding partner topic or partner destination is never activated,the channel and corresponding partner topic or partner destination are deleted.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Expiration time of the event channel. If this timer expires while the corresponding partner topic or partner destination is never activated,the channel and corresponding partner topic or partner destination are deleted.", + SerializedName = @"expirationTimeIfNotActivatedUtc", + PossibleTypes = new [] { typeof(global::System.DateTime) })] + public global::System.DateTime ExpirationTimeIfNotActivatedUtc { get => _channelUpdateParametersBody.ExpirationTimeIfNotActivatedUtc ?? default(global::System.DateTime); set => _channelUpdateParametersBody.ExpirationTimeIfNotActivatedUtc = 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.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[] HttpPipelineAppend { get; set; } + + /// SendAsync Pipeline Steps to be prepended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be prepended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[] HttpPipelinePrepend { get; set; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.IEventGridIdentity _inputObject; + + /// Identity Parameter + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Identity Parameter", ValueFromPipeline = true)] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Path)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.IEventGridIdentity InputObject { get => this._inputObject; set => this._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.EventGrid.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Runtime.HttpPipeline Pipeline { get; set; } + + /// The URI for the proxy server to use + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "The URI for the proxy server to use")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Uri Proxy { get; set; } + + /// Credentials for a proxy server to use for the remote call + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Credentials for a proxy server to use for the remote call")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Management.Automation.PSCredential ProxyCredential { get; set; } + + /// Use the default credentials for the proxy + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Use the default credentials for the proxy")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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. + /// /// Determines if the rest of the onDefault method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnDefault(global::System.Net.Http.HttpResponseMessage responseMessage, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnOk will be called before the regular onOk has been processed, allowing customization of what happens + /// on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// /// Determines if the rest of the onOk method should be processed, or if the method should return + /// immediately (set to true to skip further processing ) + + partial void overrideOnOk(global::System.Net.Http.HttpResponseMessage responseMessage, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// (overrides the default BeginProcessing method in global::System.Management.Automation.PSCmdlet) + /// + protected override void BeginProcessing() + { + var telemetryId = Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.GetTelemetryId.Invoke(); + if (telemetryId != "" && telemetryId != "internal") + { + __correlationId = telemetryId; + } + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + + } + + /// Handles/Dispatches events during the call to the REST service. + /// The message id + /// The message cancellation token. When this call is cancelled, this should be true + /// Detailed message data for the message event. + /// + /// A that will be complete when handling of the message is completed. + /// + async global::System.Threading.Tasks.Task Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener.Signal(string id, global::System.Threading.CancellationToken token, global::System.Func messageData) + { + using( NoSynchronizationContext ) + { + if (token.IsCancellationRequested) + { + return ; + } + + switch ( id ) + { + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Information: + { + var data = messageData(); + WriteInformation(data.Message, new string[]{}); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Error: + { + WriteError(new global::System.Management.Automation.ErrorRecord( new global::System.Exception(messageData().Message), string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null ) ); + return ; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.EventData ), InvocationInformation, this.ParameterSetName, __correlationId, __processRecordId, null ); + if (token.IsCancellationRequested) + { + return ; + } + WriteDebug($"{id}: {(messageData().Message ?? global::System.String.Empty)}"); + } + } + + /// Performs execution of the command. + protected override void ProcessRecord() + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + if (ShouldProcess($"Call remote 'ChannelsUpdate' operation")) + { + using( var asyncCommandRuntime = new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token); + } + } + } + catch (global::System.AggregateException aggregateException) + { + // unroll the inner exceptions to get the root cause + foreach( var innerException in aggregateException.Flatten().InnerExceptions ) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(innerException,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + } + catch (global::System.Exception exception) when ((exception as System.Management.Automation.PipelineStoppedException)== null || (exception as System.Management.Automation.PipelineStoppedException).InnerException != null) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(exception,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + finally + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletProcessRecordEnd).Wait(); + } + } + + /// Performs execution of the command, working asynchronously if required. + /// + /// A that will be complete when handling of the method is completed. + /// + protected async global::System.Threading.Tasks.Task ProcessRecordAsync() + { + using( NoSynchronizationContext ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + if (InputObject?.Id != null) + { + await this.Client.ChannelsUpdateViaIdentity(InputObject.Id, _channelUpdateParametersBody, 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.PartnerNamespaceName) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.PartnerNamespaceName"),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, InputObject) ); + } + if (null == InputObject.ChannelName) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.ChannelName"),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, InputObject) ); + } + await this.Client.ChannelsUpdate(InputObject.SubscriptionId ?? null, InputObject.ResourceGroupName ?? null, InputObject.PartnerNamespaceName ?? null, InputObject.ChannelName ?? null, _channelUpdateParametersBody, onOk, onDefault, this, Pipeline); + } + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.UndeclaredResponseException urexception) + { + WriteError(new global::System.Management.Automation.ErrorRecord(urexception, urexception.StatusCode.ToString(), global::System.Management.Automation.ErrorCategory.InvalidOperation, new { body=_channelUpdateParametersBody}) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(urexception.Message) { RecommendedAction = urexception.Action } + }); + } + finally + { + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Cancel(); + base.StopProcessing(); + } + + /// + /// Intializes a new instance of the cmdlet class. + /// + public UpdateAzEventGridChannel_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. + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onDefault(global::System.Net.Http.HttpResponseMessage responseMessage) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnDefault(responseMessage, ref _returnNow); + // if overrideOnDefault has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // Error Response : default + // Unrecognized Response. Create an error record based on what we have. + var ex = new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.RestException(responseMessage); + WriteError( new global::System.Management.Automation.ErrorRecord(ex, ex.Code, global::System.Management.Automation.ErrorCategory.InvalidOperation, new { body=_channelUpdateParametersBody }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(ex.Message) { RecommendedAction = ex.Action } + }); + } + } + + /// a delegate that is called when the remote service returns 200 (OK). + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onOk(global::System.Net.Http.HttpResponseMessage responseMessage) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnOk(responseMessage, ref _returnNow); + // if overrideOnOk has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // onOk - response for 200 / + if (true == MyInvocation?.BoundParameters?.ContainsKey("PassThru")) + { + WriteObject(true); + } + } + } + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/cmdlets/UpdateAzEventGridDomainEventSubscription_UpdateExpanded.cs b/swaggerci/eventgrid/generated/cmdlets/UpdateAzEventGridDomainEventSubscription_UpdateExpanded.cs new file mode 100644 index 000000000000..65b5343933c1 --- /dev/null +++ b/swaggerci/eventgrid/generated/cmdlets/UpdateAzEventGridDomainEventSubscription_UpdateExpanded.cs @@ -0,0 +1,661 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Extensions; + using System; + + /// Update an existing event subscription for a topic. + /// + /// [OpenAPI] Update=>PATCH:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.EventGrid/domains/{domainName}/eventSubscriptions/{eventSubscriptionName}" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsData.Update, @"AzEventGridDomainEventSubscription_UpdateExpanded", SupportsShouldProcess = true)] + [global::System.Management.Automation.OutputType(typeof(bool))] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Description(@"Update an existing event subscription for a topic.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Generated] + public partial class UpdateAzEventGridDomainEventSubscription_UpdateExpanded : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener + { + /// A unique id generatd for the this cmdlet when it is instantiated. + private string __correlationId = System.Guid.NewGuid().ToString(); + + /// A copy of the Invocation Info (necessary to allow asJob to clone this cmdlet) + private global::System.Management.Automation.InvocationInfo __invocationInfo; + + /// A unique id generatd for the this cmdlet when ProcessRecord() is called. + private string __processRecordId; + + /// + /// The for this operation. + /// + private global::System.Threading.CancellationTokenSource _cancellationTokenSource = new global::System.Threading.CancellationTokenSource(); + + /// Properties of the Event Subscription update. + private Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionUpdateParameters _eventSubscriptionUpdateParametersBody = new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.EventSubscriptionUpdateParameters(); + + /// 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.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.EventGridManagementClient Client => Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.ClientAPI; + + /// + /// The type of managed identity used. The type 'SystemAssigned, UserAssigned' includes both an implicitly created identity + /// and a set of user-assigned identities. The type 'None' will remove any identity. + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The type of managed identity used. The type 'SystemAssigned, UserAssigned' includes both an implicitly created identity and a set of user-assigned identities. The type 'None' will remove any identity.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The type of managed identity used. The type 'SystemAssigned, UserAssigned' includes both an implicitly created identity and a set of user-assigned identities. The type 'None' will remove any identity.", + SerializedName = @"type", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EventSubscriptionIdentityType) })] + [global::System.Management.Automation.ArgumentCompleter(typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EventSubscriptionIdentityType))] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EventSubscriptionIdentityType DeadLetterWithResourceIdentityType { get => _eventSubscriptionUpdateParametersBody.DeadLetterWithResourceIdentityType ?? ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EventSubscriptionIdentityType)""); set => _eventSubscriptionUpdateParametersBody.DeadLetterWithResourceIdentityType = value; } + + /// The user identity associated with the resource. + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The user identity associated with the resource.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The user identity associated with the resource.", + SerializedName = @"userAssignedIdentity", + PossibleTypes = new [] { typeof(string) })] + public string DeadLetterWithResourceIdentityUserAssignedIdentity { get => _eventSubscriptionUpdateParametersBody.DeadLetterWithResourceIdentityUserAssignedIdentity ?? null; set => _eventSubscriptionUpdateParametersBody.DeadLetterWithResourceIdentityUserAssignedIdentity = 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.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Azure)] + public global::System.Management.Automation.PSObject DefaultProfile { get; set; } + + /// Type of the endpoint for the event subscription destination. + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Type of the endpoint for the event subscription destination.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Type of the endpoint for the event subscription destination.", + SerializedName = @"endpointType", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EndpointType) })] + [global::System.Management.Automation.ArgumentCompleter(typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EndpointType))] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EndpointType DeliveryWithResourceIdentityDestinationEndpointType { get => _eventSubscriptionUpdateParametersBody.DeliveryWithResourceIdentityDestinationEndpointType ?? ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EndpointType)""); set => _eventSubscriptionUpdateParametersBody.DeliveryWithResourceIdentityDestinationEndpointType = value; } + + /// + /// The type of managed identity used. The type 'SystemAssigned, UserAssigned' includes both an implicitly created identity + /// and a set of user-assigned identities. The type 'None' will remove any identity. + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The type of managed identity used. The type 'SystemAssigned, UserAssigned' includes both an implicitly created identity and a set of user-assigned identities. The type 'None' will remove any identity.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The type of managed identity used. The type 'SystemAssigned, UserAssigned' includes both an implicitly created identity and a set of user-assigned identities. The type 'None' will remove any identity.", + SerializedName = @"type", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EventSubscriptionIdentityType) })] + [global::System.Management.Automation.ArgumentCompleter(typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EventSubscriptionIdentityType))] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EventSubscriptionIdentityType DeliveryWithResourceIdentityType { get => _eventSubscriptionUpdateParametersBody.DeliveryWithResourceIdentityType ?? ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EventSubscriptionIdentityType)""); set => _eventSubscriptionUpdateParametersBody.DeliveryWithResourceIdentityType = value; } + + /// The user identity associated with the resource. + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The user identity associated with the resource.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The user identity associated with the resource.", + SerializedName = @"userAssignedIdentity", + PossibleTypes = new [] { typeof(string) })] + public string DeliveryWithResourceIdentityUserAssignedIdentity { get => _eventSubscriptionUpdateParametersBody.DeliveryWithResourceIdentityUserAssignedIdentity ?? null; set => _eventSubscriptionUpdateParametersBody.DeliveryWithResourceIdentityUserAssignedIdentity = value; } + + /// Backing field for property. + private string _domainName; + + /// Name of the domain. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Name of the domain.")] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Name of the domain.", + SerializedName = @"domainName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Path)] + public string DomainName { get => this._domainName; set => this._domainName = value; } + + /// Type of the endpoint for the event subscription destination. + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Type of the endpoint for the event subscription destination.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Type of the endpoint for the event subscription destination.", + SerializedName = @"endpointType", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EndpointType) })] + [global::System.Management.Automation.ArgumentCompleter(typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EndpointType))] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EndpointType EndpointType { get => _eventSubscriptionUpdateParametersBody.EndpointType ?? ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EndpointType)""); set => _eventSubscriptionUpdateParametersBody.EndpointType = value; } + + /// The event delivery schema for the event subscription. + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The event delivery schema for the event subscription.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The event delivery schema for the event subscription.", + SerializedName = @"eventDeliverySchema", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EventDeliverySchema) })] + [global::System.Management.Automation.ArgumentCompleter(typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EventDeliverySchema))] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EventDeliverySchema EventDeliverySchema { get => _eventSubscriptionUpdateParametersBody.EventDeliverySchema ?? ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EventDeliverySchema)""); set => _eventSubscriptionUpdateParametersBody.EventDeliverySchema = value; } + + /// Backing field for property. + private string _eventSubscriptionName; + + /// Name of the event subscription to be updated. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Name of the event subscription to be updated.")] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Name of the event subscription to be updated.", + SerializedName = @"eventSubscriptionName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Path)] + public string EventSubscriptionName { get => this._eventSubscriptionName; set => this._eventSubscriptionName = value; } + + /// Information about the expiration time for the event subscription. + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Information about the expiration time for the event subscription.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Information about the expiration time for the event subscription.", + SerializedName = @"expirationTimeUtc", + PossibleTypes = new [] { typeof(global::System.DateTime) })] + public global::System.DateTime ExpirationTimeUtc { get => _eventSubscriptionUpdateParametersBody.ExpirationTimeUtc ?? default(global::System.DateTime); set => _eventSubscriptionUpdateParametersBody.ExpirationTimeUtc = value; } + + /// An array of advanced filters that are used for filtering event subscriptions. + [global::System.Management.Automation.AllowEmptyCollection] + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "An array of advanced filters that are used for filtering event subscriptions.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"An array of advanced filters that are used for filtering event subscriptions.", + SerializedName = @"advancedFilters", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IAdvancedFilter) })] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IAdvancedFilter[] FilterAdvancedFilter { get => _eventSubscriptionUpdateParametersBody.FilterAdvancedFilter ?? null /* arrayOf */; set => _eventSubscriptionUpdateParametersBody.FilterAdvancedFilter = value; } + + /// + /// Allows advanced filters to be evaluated against an array of values instead of expecting a singular value. + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Allows advanced filters to be evaluated against an array of values instead of expecting a singular value.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Allows advanced filters to be evaluated against an array of values instead of expecting a singular value.", + SerializedName = @"enableAdvancedFilteringOnArrays", + PossibleTypes = new [] { typeof(global::System.Management.Automation.SwitchParameter) })] + public global::System.Management.Automation.SwitchParameter FilterEnableAdvancedFilteringOnArray { get => _eventSubscriptionUpdateParametersBody.FilterEnableAdvancedFilteringOnArray ?? default(global::System.Management.Automation.SwitchParameter); set => _eventSubscriptionUpdateParametersBody.FilterEnableAdvancedFilteringOnArray = value; } + + /// + /// A list of applicable event types that need to be part of the event subscription. If it is desired to subscribe to all + /// default event types, set the IncludedEventTypes to null. + /// + [global::System.Management.Automation.AllowEmptyCollection] + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "A list of applicable event types that need to be part of the event subscription. If it is desired to subscribe to all default event types, set the IncludedEventTypes to null.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"A list of applicable event types that need to be part of the event subscription. If it is desired to subscribe to all default event types, set the IncludedEventTypes to null.", + SerializedName = @"includedEventTypes", + PossibleTypes = new [] { typeof(string) })] + public string[] FilterIncludedEventType { get => _eventSubscriptionUpdateParametersBody.FilterIncludedEventType ?? null /* arrayOf */; set => _eventSubscriptionUpdateParametersBody.FilterIncludedEventType = value; } + + /// + /// Specifies if the SubjectBeginsWith and SubjectEndsWith properties of the filtershould be compared in a case sensitive + /// manner. + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Specifies if the SubjectBeginsWith and SubjectEndsWith properties of the filtershould be compared in a case sensitive manner.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Specifies if the SubjectBeginsWith and SubjectEndsWith properties of the filtershould be compared in a case sensitive manner.", + SerializedName = @"isSubjectCaseSensitive", + PossibleTypes = new [] { typeof(global::System.Management.Automation.SwitchParameter) })] + public global::System.Management.Automation.SwitchParameter FilterIsSubjectCaseSensitive { get => _eventSubscriptionUpdateParametersBody.FilterIsSubjectCaseSensitive ?? default(global::System.Management.Automation.SwitchParameter); set => _eventSubscriptionUpdateParametersBody.FilterIsSubjectCaseSensitive = value; } + + /// + /// An optional string to filter events for an event subscription based on a resource path prefix.The format of this depends + /// on the publisher of the events.Wildcard characters are not supported in this path. + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "An optional string to filter events for an event subscription based on a resource path prefix.The format of this depends on the publisher of the events.Wildcard characters are not supported in this path.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"An optional string to filter events for an event subscription based on a resource path prefix.The format of this depends on the publisher of the events.Wildcard characters are not supported in this path.", + SerializedName = @"subjectBeginsWith", + PossibleTypes = new [] { typeof(string) })] + public string FilterSubjectBeginsWith { get => _eventSubscriptionUpdateParametersBody.FilterSubjectBeginsWith ?? null; set => _eventSubscriptionUpdateParametersBody.FilterSubjectBeginsWith = value; } + + /// + /// An optional string to filter events for an event subscription based on a resource path suffix.Wildcard characters are + /// not supported in this path. + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "An optional string to filter events for an event subscription based on a resource path suffix.Wildcard characters are not supported in this path.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"An optional string to filter events for an event subscription based on a resource path suffix.Wildcard characters are not supported in this path.", + SerializedName = @"subjectEndsWith", + PossibleTypes = new [] { typeof(string) })] + public string FilterSubjectEndsWith { get => _eventSubscriptionUpdateParametersBody.FilterSubjectEndsWith ?? null; set => _eventSubscriptionUpdateParametersBody.FilterSubjectEndsWith = 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.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[] HttpPipelineAppend { get; set; } + + /// SendAsync Pipeline Steps to be prepended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be prepended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[] HttpPipelinePrepend { get; set; } + + /// Accessor for our copy of the InvocationInfo. + public global::System.Management.Automation.InvocationInfo InvocationInformation { get => __invocationInfo = __invocationInfo ?? this.MyInvocation ; set { __invocationInfo = value; } } + + /// List of user defined labels. + [global::System.Management.Automation.AllowEmptyCollection] + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "List of user defined labels.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"List of user defined labels.", + SerializedName = @"labels", + PossibleTypes = new [] { typeof(string) })] + public string[] Label { get => _eventSubscriptionUpdateParametersBody.Label ?? null /* arrayOf */; set => _eventSubscriptionUpdateParametersBody.Label = value; } + + /// + /// cancellation delegate. Stops the cmdlet when called. + /// + global::System.Action Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter NoWait { get; set; } + + /// + /// When specified, forces the cmdlet return a 'bool' given that there isn't a return type by default. + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Returns true when the command succeeds")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Runtime.HttpPipeline Pipeline { get; set; } + + /// The URI for the proxy server to use + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "The URI for the proxy server to use")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Uri Proxy { get; set; } + + /// Credentials for a proxy server to use for the remote call + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Credentials for a proxy server to use for the remote call")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Management.Automation.PSCredential ProxyCredential { get; set; } + + /// Use the default credentials for the proxy + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Use the default credentials for the proxy")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter ProxyUseDefaultCredentials { get; set; } + + /// Backing field for property. + private string _resourceGroupName; + + /// The name of the resource group within the user's subscription. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the resource group within the user's subscription.")] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the resource group within the user's subscription.", + SerializedName = @"resourceGroupName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Path)] + public string ResourceGroupName { get => this._resourceGroupName; set => this._resourceGroupName = value; } + + /// Time To Live (in minutes) for events. + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Time To Live (in minutes) for events.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Time To Live (in minutes) for events.", + SerializedName = @"eventTimeToLiveInMinutes", + PossibleTypes = new [] { typeof(int) })] + public int RetryPolicyEventTimeToLiveInMinute { get => _eventSubscriptionUpdateParametersBody.RetryPolicyEventTimeToLiveInMinute ?? default(int); set => _eventSubscriptionUpdateParametersBody.RetryPolicyEventTimeToLiveInMinute = value; } + + /// Maximum number of delivery retry attempts for events. + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Maximum number of delivery retry attempts for events.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Maximum number of delivery retry attempts for events.", + SerializedName = @"maxDeliveryAttempts", + PossibleTypes = new [] { typeof(int) })] + public int RetryPolicyMaxDeliveryAttempt { get => _eventSubscriptionUpdateParametersBody.RetryPolicyMaxDeliveryAttempt ?? default(int); set => _eventSubscriptionUpdateParametersBody.RetryPolicyMaxDeliveryAttempt = value; } + + /// Backing field for property. + private string _subscriptionId; + + /// + /// Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription ID forms part of the + /// URI for every service call. + /// + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.")] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.", + SerializedName = @"subscriptionId", + PossibleTypes = new [] { typeof(string) })] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.DefaultInfo( + Name = @"", + Description =@"", + Script = @"(Get-AzContext).Subscription.Id")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Path)] + public string SubscriptionId { get => this._subscriptionId; set => this._subscriptionId = value; } + + /// + /// overrideOnDefault will be called before the regular onDefault has been processed, allowing customization of what + /// happens on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// /// Determines if the rest of the onDefault method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnDefault(global::System.Net.Http.HttpResponseMessage responseMessage, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// (overrides the default BeginProcessing method in global::System.Management.Automation.PSCmdlet) + /// + protected override void BeginProcessing() + { + var telemetryId = Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.GetTelemetryId.Invoke(); + if (telemetryId != "" && telemetryId != "internal") + { + __correlationId = telemetryId; + } + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Creates a duplicate instance of this cmdlet (via JSON serialization). + /// a duplicate instance of UpdateAzEventGridDomainEventSubscription_UpdateExpanded + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Cmdlets.UpdateAzEventGridDomainEventSubscription_UpdateExpanded Clone() + { + var clone = new UpdateAzEventGridDomainEventSubscription_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._eventSubscriptionUpdateParametersBody = this._eventSubscriptionUpdateParametersBody; + clone.SubscriptionId = this.SubscriptionId; + clone.ResourceGroupName = this.ResourceGroupName; + clone.DomainName = this.DomainName; + clone.EventSubscriptionName = this.EventSubscriptionName; + return clone; + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + + } + + /// Handles/Dispatches events during the call to the REST service. + /// The message id + /// The message cancellation token. When this call is cancelled, this should be true + /// Detailed message data for the message event. + /// + /// A that will be complete when handling of the message is completed. + /// + async global::System.Threading.Tasks.Task Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener.Signal(string id, global::System.Threading.CancellationToken token, global::System.Func messageData) + { + using( NoSynchronizationContext ) + { + if (token.IsCancellationRequested) + { + return ; + } + + switch ( id ) + { + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.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.EventGrid.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.EventGrid.Runtime.PowerShell.AsyncOperationResponse { Target = uri }); + // do nothing more. + data.Cancel(); + return; + } + } + break; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.EventData ), InvocationInformation, this.ParameterSetName, __correlationId, __processRecordId, null ); + if (token.IsCancellationRequested) + { + return ; + } + WriteDebug($"{id}: {(messageData().Message ?? global::System.String.Empty)}"); + } + } + + /// Performs execution of the command. + protected override void ProcessRecord() + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + if (ShouldProcess($"Call remote 'DomainEventSubscriptionsUpdate' operation")) + { + if (true == MyInvocation?.BoundParameters?.ContainsKey("AsJob")) + { + var instance = this.Clone(); + var job = new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token); + } + } + } + } + catch (global::System.AggregateException aggregateException) + { + // unroll the inner exceptions to get the root cause + foreach( var innerException in aggregateException.Flatten().InnerExceptions ) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(innerException,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + } + catch (global::System.Exception exception) when ((exception as System.Management.Automation.PipelineStoppedException)== null || (exception as System.Management.Automation.PipelineStoppedException).InnerException != null) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(exception,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + finally + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletProcessRecordEnd).Wait(); + } + } + + /// Performs execution of the command, working asynchronously if required. + /// + /// A that will be complete when handling of the method is completed. + /// + protected async global::System.Threading.Tasks.Task ProcessRecordAsync() + { + using( NoSynchronizationContext ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await this.Client.DomainEventSubscriptionsUpdate(SubscriptionId, ResourceGroupName, DomainName, EventSubscriptionName, _eventSubscriptionUpdateParametersBody, onDefault, this, Pipeline); + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.UndeclaredResponseException urexception) + { + WriteError(new global::System.Management.Automation.ErrorRecord(urexception, urexception.StatusCode.ToString(), global::System.Management.Automation.ErrorCategory.InvalidOperation, new { SubscriptionId=SubscriptionId,ResourceGroupName=ResourceGroupName,DomainName=DomainName,EventSubscriptionName=EventSubscriptionName,body=_eventSubscriptionUpdateParametersBody}) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(urexception.Message) { RecommendedAction = urexception.Action } + }); + } + finally + { + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Cancel(); + base.StopProcessing(); + } + + /// + /// Intializes a new instance of the cmdlet class. + /// + public UpdateAzEventGridDomainEventSubscription_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. + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onDefault(global::System.Net.Http.HttpResponseMessage responseMessage) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnDefault(responseMessage, ref _returnNow); + // if overrideOnDefault has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // Error Response : default + // Unrecognized Response. Create an error record based on what we have. + var ex = new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.RestException(responseMessage); + WriteError( new global::System.Management.Automation.ErrorRecord(ex, ex.Code, global::System.Management.Automation.ErrorCategory.InvalidOperation, new { SubscriptionId=SubscriptionId, ResourceGroupName=ResourceGroupName, DomainName=DomainName, EventSubscriptionName=EventSubscriptionName, body=_eventSubscriptionUpdateParametersBody }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(ex.Message) { RecommendedAction = ex.Action } + }); + } + } + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/cmdlets/UpdateAzEventGridDomainEventSubscription_UpdateViaIdentityExpanded.cs b/swaggerci/eventgrid/generated/cmdlets/UpdateAzEventGridDomainEventSubscription_UpdateViaIdentityExpanded.cs new file mode 100644 index 000000000000..bc9ed6c08ce4 --- /dev/null +++ b/swaggerci/eventgrid/generated/cmdlets/UpdateAzEventGridDomainEventSubscription_UpdateViaIdentityExpanded.cs @@ -0,0 +1,629 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Extensions; + using System; + + /// Update an existing event subscription for a topic. + /// + /// [OpenAPI] Update=>PATCH:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.EventGrid/domains/{domainName}/eventSubscriptions/{eventSubscriptionName}" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsData.Update, @"AzEventGridDomainEventSubscription_UpdateViaIdentityExpanded", SupportsShouldProcess = true)] + [global::System.Management.Automation.OutputType(typeof(bool))] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Description(@"Update an existing event subscription for a topic.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Generated] + public partial class UpdateAzEventGridDomainEventSubscription_UpdateViaIdentityExpanded : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener + { + /// A unique id generatd for the this cmdlet when it is instantiated. + private string __correlationId = System.Guid.NewGuid().ToString(); + + /// A copy of the Invocation Info (necessary to allow asJob to clone this cmdlet) + private global::System.Management.Automation.InvocationInfo __invocationInfo; + + /// A unique id generatd for the this cmdlet when ProcessRecord() is called. + private string __processRecordId; + + /// + /// The for this operation. + /// + private global::System.Threading.CancellationTokenSource _cancellationTokenSource = new global::System.Threading.CancellationTokenSource(); + + /// Properties of the Event Subscription update. + private Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionUpdateParameters _eventSubscriptionUpdateParametersBody = new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.EventSubscriptionUpdateParameters(); + + /// 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.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.EventGridManagementClient Client => Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.ClientAPI; + + /// + /// The type of managed identity used. The type 'SystemAssigned, UserAssigned' includes both an implicitly created identity + /// and a set of user-assigned identities. The type 'None' will remove any identity. + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The type of managed identity used. The type 'SystemAssigned, UserAssigned' includes both an implicitly created identity and a set of user-assigned identities. The type 'None' will remove any identity.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The type of managed identity used. The type 'SystemAssigned, UserAssigned' includes both an implicitly created identity and a set of user-assigned identities. The type 'None' will remove any identity.", + SerializedName = @"type", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EventSubscriptionIdentityType) })] + [global::System.Management.Automation.ArgumentCompleter(typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EventSubscriptionIdentityType))] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EventSubscriptionIdentityType DeadLetterWithResourceIdentityType { get => _eventSubscriptionUpdateParametersBody.DeadLetterWithResourceIdentityType ?? ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EventSubscriptionIdentityType)""); set => _eventSubscriptionUpdateParametersBody.DeadLetterWithResourceIdentityType = value; } + + /// The user identity associated with the resource. + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The user identity associated with the resource.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The user identity associated with the resource.", + SerializedName = @"userAssignedIdentity", + PossibleTypes = new [] { typeof(string) })] + public string DeadLetterWithResourceIdentityUserAssignedIdentity { get => _eventSubscriptionUpdateParametersBody.DeadLetterWithResourceIdentityUserAssignedIdentity ?? null; set => _eventSubscriptionUpdateParametersBody.DeadLetterWithResourceIdentityUserAssignedIdentity = 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.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Azure)] + public global::System.Management.Automation.PSObject DefaultProfile { get; set; } + + /// Type of the endpoint for the event subscription destination. + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Type of the endpoint for the event subscription destination.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Type of the endpoint for the event subscription destination.", + SerializedName = @"endpointType", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EndpointType) })] + [global::System.Management.Automation.ArgumentCompleter(typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EndpointType))] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EndpointType DeliveryWithResourceIdentityDestinationEndpointType { get => _eventSubscriptionUpdateParametersBody.DeliveryWithResourceIdentityDestinationEndpointType ?? ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EndpointType)""); set => _eventSubscriptionUpdateParametersBody.DeliveryWithResourceIdentityDestinationEndpointType = value; } + + /// + /// The type of managed identity used. The type 'SystemAssigned, UserAssigned' includes both an implicitly created identity + /// and a set of user-assigned identities. The type 'None' will remove any identity. + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The type of managed identity used. The type 'SystemAssigned, UserAssigned' includes both an implicitly created identity and a set of user-assigned identities. The type 'None' will remove any identity.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The type of managed identity used. The type 'SystemAssigned, UserAssigned' includes both an implicitly created identity and a set of user-assigned identities. The type 'None' will remove any identity.", + SerializedName = @"type", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EventSubscriptionIdentityType) })] + [global::System.Management.Automation.ArgumentCompleter(typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EventSubscriptionIdentityType))] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EventSubscriptionIdentityType DeliveryWithResourceIdentityType { get => _eventSubscriptionUpdateParametersBody.DeliveryWithResourceIdentityType ?? ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EventSubscriptionIdentityType)""); set => _eventSubscriptionUpdateParametersBody.DeliveryWithResourceIdentityType = value; } + + /// The user identity associated with the resource. + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The user identity associated with the resource.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The user identity associated with the resource.", + SerializedName = @"userAssignedIdentity", + PossibleTypes = new [] { typeof(string) })] + public string DeliveryWithResourceIdentityUserAssignedIdentity { get => _eventSubscriptionUpdateParametersBody.DeliveryWithResourceIdentityUserAssignedIdentity ?? null; set => _eventSubscriptionUpdateParametersBody.DeliveryWithResourceIdentityUserAssignedIdentity = value; } + + /// Type of the endpoint for the event subscription destination. + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Type of the endpoint for the event subscription destination.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Type of the endpoint for the event subscription destination.", + SerializedName = @"endpointType", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EndpointType) })] + [global::System.Management.Automation.ArgumentCompleter(typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EndpointType))] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EndpointType EndpointType { get => _eventSubscriptionUpdateParametersBody.EndpointType ?? ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EndpointType)""); set => _eventSubscriptionUpdateParametersBody.EndpointType = value; } + + /// The event delivery schema for the event subscription. + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The event delivery schema for the event subscription.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The event delivery schema for the event subscription.", + SerializedName = @"eventDeliverySchema", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EventDeliverySchema) })] + [global::System.Management.Automation.ArgumentCompleter(typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EventDeliverySchema))] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EventDeliverySchema EventDeliverySchema { get => _eventSubscriptionUpdateParametersBody.EventDeliverySchema ?? ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EventDeliverySchema)""); set => _eventSubscriptionUpdateParametersBody.EventDeliverySchema = value; } + + /// Information about the expiration time for the event subscription. + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Information about the expiration time for the event subscription.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Information about the expiration time for the event subscription.", + SerializedName = @"expirationTimeUtc", + PossibleTypes = new [] { typeof(global::System.DateTime) })] + public global::System.DateTime ExpirationTimeUtc { get => _eventSubscriptionUpdateParametersBody.ExpirationTimeUtc ?? default(global::System.DateTime); set => _eventSubscriptionUpdateParametersBody.ExpirationTimeUtc = value; } + + /// An array of advanced filters that are used for filtering event subscriptions. + [global::System.Management.Automation.AllowEmptyCollection] + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "An array of advanced filters that are used for filtering event subscriptions.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"An array of advanced filters that are used for filtering event subscriptions.", + SerializedName = @"advancedFilters", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IAdvancedFilter) })] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IAdvancedFilter[] FilterAdvancedFilter { get => _eventSubscriptionUpdateParametersBody.FilterAdvancedFilter ?? null /* arrayOf */; set => _eventSubscriptionUpdateParametersBody.FilterAdvancedFilter = value; } + + /// + /// Allows advanced filters to be evaluated against an array of values instead of expecting a singular value. + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Allows advanced filters to be evaluated against an array of values instead of expecting a singular value.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Allows advanced filters to be evaluated against an array of values instead of expecting a singular value.", + SerializedName = @"enableAdvancedFilteringOnArrays", + PossibleTypes = new [] { typeof(global::System.Management.Automation.SwitchParameter) })] + public global::System.Management.Automation.SwitchParameter FilterEnableAdvancedFilteringOnArray { get => _eventSubscriptionUpdateParametersBody.FilterEnableAdvancedFilteringOnArray ?? default(global::System.Management.Automation.SwitchParameter); set => _eventSubscriptionUpdateParametersBody.FilterEnableAdvancedFilteringOnArray = value; } + + /// + /// A list of applicable event types that need to be part of the event subscription. If it is desired to subscribe to all + /// default event types, set the IncludedEventTypes to null. + /// + [global::System.Management.Automation.AllowEmptyCollection] + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "A list of applicable event types that need to be part of the event subscription. If it is desired to subscribe to all default event types, set the IncludedEventTypes to null.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"A list of applicable event types that need to be part of the event subscription. If it is desired to subscribe to all default event types, set the IncludedEventTypes to null.", + SerializedName = @"includedEventTypes", + PossibleTypes = new [] { typeof(string) })] + public string[] FilterIncludedEventType { get => _eventSubscriptionUpdateParametersBody.FilterIncludedEventType ?? null /* arrayOf */; set => _eventSubscriptionUpdateParametersBody.FilterIncludedEventType = value; } + + /// + /// Specifies if the SubjectBeginsWith and SubjectEndsWith properties of the filtershould be compared in a case sensitive + /// manner. + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Specifies if the SubjectBeginsWith and SubjectEndsWith properties of the filtershould be compared in a case sensitive manner.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Specifies if the SubjectBeginsWith and SubjectEndsWith properties of the filtershould be compared in a case sensitive manner.", + SerializedName = @"isSubjectCaseSensitive", + PossibleTypes = new [] { typeof(global::System.Management.Automation.SwitchParameter) })] + public global::System.Management.Automation.SwitchParameter FilterIsSubjectCaseSensitive { get => _eventSubscriptionUpdateParametersBody.FilterIsSubjectCaseSensitive ?? default(global::System.Management.Automation.SwitchParameter); set => _eventSubscriptionUpdateParametersBody.FilterIsSubjectCaseSensitive = value; } + + /// + /// An optional string to filter events for an event subscription based on a resource path prefix.The format of this depends + /// on the publisher of the events.Wildcard characters are not supported in this path. + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "An optional string to filter events for an event subscription based on a resource path prefix.The format of this depends on the publisher of the events.Wildcard characters are not supported in this path.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"An optional string to filter events for an event subscription based on a resource path prefix.The format of this depends on the publisher of the events.Wildcard characters are not supported in this path.", + SerializedName = @"subjectBeginsWith", + PossibleTypes = new [] { typeof(string) })] + public string FilterSubjectBeginsWith { get => _eventSubscriptionUpdateParametersBody.FilterSubjectBeginsWith ?? null; set => _eventSubscriptionUpdateParametersBody.FilterSubjectBeginsWith = value; } + + /// + /// An optional string to filter events for an event subscription based on a resource path suffix.Wildcard characters are + /// not supported in this path. + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "An optional string to filter events for an event subscription based on a resource path suffix.Wildcard characters are not supported in this path.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"An optional string to filter events for an event subscription based on a resource path suffix.Wildcard characters are not supported in this path.", + SerializedName = @"subjectEndsWith", + PossibleTypes = new [] { typeof(string) })] + public string FilterSubjectEndsWith { get => _eventSubscriptionUpdateParametersBody.FilterSubjectEndsWith ?? null; set => _eventSubscriptionUpdateParametersBody.FilterSubjectEndsWith = 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.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[] HttpPipelineAppend { get; set; } + + /// SendAsync Pipeline Steps to be prepended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be prepended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[] HttpPipelinePrepend { get; set; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.IEventGridIdentity _inputObject; + + /// Identity Parameter + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Identity Parameter", ValueFromPipeline = true)] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Path)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.IEventGridIdentity InputObject { get => this._inputObject; set => this._inputObject = value; } + + /// Accessor for our copy of the InvocationInfo. + public global::System.Management.Automation.InvocationInfo InvocationInformation { get => __invocationInfo = __invocationInfo ?? this.MyInvocation ; set { __invocationInfo = value; } } + + /// List of user defined labels. + [global::System.Management.Automation.AllowEmptyCollection] + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "List of user defined labels.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"List of user defined labels.", + SerializedName = @"labels", + PossibleTypes = new [] { typeof(string) })] + public string[] Label { get => _eventSubscriptionUpdateParametersBody.Label ?? null /* arrayOf */; set => _eventSubscriptionUpdateParametersBody.Label = value; } + + /// + /// cancellation delegate. Stops the cmdlet when called. + /// + global::System.Action Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter NoWait { get; set; } + + /// + /// When specified, forces the cmdlet return a 'bool' given that there isn't a return type by default. + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Returns true when the command succeeds")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Runtime.HttpPipeline Pipeline { get; set; } + + /// The URI for the proxy server to use + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "The URI for the proxy server to use")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Uri Proxy { get; set; } + + /// Credentials for a proxy server to use for the remote call + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Credentials for a proxy server to use for the remote call")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Management.Automation.PSCredential ProxyCredential { get; set; } + + /// Use the default credentials for the proxy + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Use the default credentials for the proxy")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter ProxyUseDefaultCredentials { get; set; } + + /// Time To Live (in minutes) for events. + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Time To Live (in minutes) for events.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Time To Live (in minutes) for events.", + SerializedName = @"eventTimeToLiveInMinutes", + PossibleTypes = new [] { typeof(int) })] + public int RetryPolicyEventTimeToLiveInMinute { get => _eventSubscriptionUpdateParametersBody.RetryPolicyEventTimeToLiveInMinute ?? default(int); set => _eventSubscriptionUpdateParametersBody.RetryPolicyEventTimeToLiveInMinute = value; } + + /// Maximum number of delivery retry attempts for events. + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Maximum number of delivery retry attempts for events.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Maximum number of delivery retry attempts for events.", + SerializedName = @"maxDeliveryAttempts", + PossibleTypes = new [] { typeof(int) })] + public int RetryPolicyMaxDeliveryAttempt { get => _eventSubscriptionUpdateParametersBody.RetryPolicyMaxDeliveryAttempt ?? default(int); set => _eventSubscriptionUpdateParametersBody.RetryPolicyMaxDeliveryAttempt = value; } + + /// + /// overrideOnDefault will be called before the regular onDefault has been processed, allowing customization of what + /// happens on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// /// Determines if the rest of the onDefault method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnDefault(global::System.Net.Http.HttpResponseMessage responseMessage, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// (overrides the default BeginProcessing method in global::System.Management.Automation.PSCmdlet) + /// + protected override void BeginProcessing() + { + var telemetryId = Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.GetTelemetryId.Invoke(); + if (telemetryId != "" && telemetryId != "internal") + { + __correlationId = telemetryId; + } + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Creates a duplicate instance of this cmdlet (via JSON serialization). + /// + /// a duplicate instance of UpdateAzEventGridDomainEventSubscription_UpdateViaIdentityExpanded + /// + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Cmdlets.UpdateAzEventGridDomainEventSubscription_UpdateViaIdentityExpanded Clone() + { + var clone = new UpdateAzEventGridDomainEventSubscription_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._eventSubscriptionUpdateParametersBody = this._eventSubscriptionUpdateParametersBody; + return clone; + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + + } + + /// Handles/Dispatches events during the call to the REST service. + /// The message id + /// The message cancellation token. When this call is cancelled, this should be true + /// Detailed message data for the message event. + /// + /// A that will be complete when handling of the message is completed. + /// + async global::System.Threading.Tasks.Task Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener.Signal(string id, global::System.Threading.CancellationToken token, global::System.Func messageData) + { + using( NoSynchronizationContext ) + { + if (token.IsCancellationRequested) + { + return ; + } + + switch ( id ) + { + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.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.EventGrid.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.EventGrid.Runtime.PowerShell.AsyncOperationResponse { Target = uri }); + // do nothing more. + data.Cancel(); + return; + } + } + break; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.EventData ), InvocationInformation, this.ParameterSetName, __correlationId, __processRecordId, null ); + if (token.IsCancellationRequested) + { + return ; + } + WriteDebug($"{id}: {(messageData().Message ?? global::System.String.Empty)}"); + } + } + + /// Performs execution of the command. + protected override void ProcessRecord() + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + if (ShouldProcess($"Call remote 'DomainEventSubscriptionsUpdate' operation")) + { + if (true == MyInvocation?.BoundParameters?.ContainsKey("AsJob")) + { + var instance = this.Clone(); + var job = new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token); + } + } + } + } + catch (global::System.AggregateException aggregateException) + { + // unroll the inner exceptions to get the root cause + foreach( var innerException in aggregateException.Flatten().InnerExceptions ) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(innerException,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + } + catch (global::System.Exception exception) when ((exception as System.Management.Automation.PipelineStoppedException)== null || (exception as System.Management.Automation.PipelineStoppedException).InnerException != null) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(exception,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + finally + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletProcessRecordEnd).Wait(); + } + } + + /// Performs execution of the command, working asynchronously if required. + /// + /// A that will be complete when handling of the method is completed. + /// + protected async global::System.Threading.Tasks.Task ProcessRecordAsync() + { + using( NoSynchronizationContext ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + if (InputObject?.Id != null) + { + await this.Client.DomainEventSubscriptionsUpdateViaIdentity(InputObject.Id, _eventSubscriptionUpdateParametersBody, 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.DomainName) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.DomainName"),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, InputObject) ); + } + if (null == InputObject.EventSubscriptionName) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.EventSubscriptionName"),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, InputObject) ); + } + await this.Client.DomainEventSubscriptionsUpdate(InputObject.SubscriptionId ?? null, InputObject.ResourceGroupName ?? null, InputObject.DomainName ?? null, InputObject.EventSubscriptionName ?? null, _eventSubscriptionUpdateParametersBody, onDefault, this, Pipeline); + } + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.UndeclaredResponseException urexception) + { + WriteError(new global::System.Management.Automation.ErrorRecord(urexception, urexception.StatusCode.ToString(), global::System.Management.Automation.ErrorCategory.InvalidOperation, new { body=_eventSubscriptionUpdateParametersBody}) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(urexception.Message) { RecommendedAction = urexception.Action } + }); + } + finally + { + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Cancel(); + base.StopProcessing(); + } + + /// + /// Intializes a new instance of the cmdlet + /// class. + /// + public UpdateAzEventGridDomainEventSubscription_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. + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onDefault(global::System.Net.Http.HttpResponseMessage responseMessage) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnDefault(responseMessage, ref _returnNow); + // if overrideOnDefault has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // Error Response : default + // Unrecognized Response. Create an error record based on what we have. + var ex = new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.RestException(responseMessage); + WriteError( new global::System.Management.Automation.ErrorRecord(ex, ex.Code, global::System.Management.Automation.ErrorCategory.InvalidOperation, new { body=_eventSubscriptionUpdateParametersBody }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(ex.Message) { RecommendedAction = ex.Action } + }); + } + } + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/cmdlets/UpdateAzEventGridDomainTopicEventSubscription_UpdateExpanded.cs b/swaggerci/eventgrid/generated/cmdlets/UpdateAzEventGridDomainTopicEventSubscription_UpdateExpanded.cs new file mode 100644 index 000000000000..dae43762c6aa --- /dev/null +++ b/swaggerci/eventgrid/generated/cmdlets/UpdateAzEventGridDomainTopicEventSubscription_UpdateExpanded.cs @@ -0,0 +1,678 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Extensions; + using System; + + /// Update an existing event subscription for a domain topic. + /// + /// [OpenAPI] Update=>PATCH:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.EventGrid/domains/{domainName}/topics/{topicName}/eventSubscriptions/{eventSubscriptionName}" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsData.Update, @"AzEventGridDomainTopicEventSubscription_UpdateExpanded", SupportsShouldProcess = true)] + [global::System.Management.Automation.OutputType(typeof(bool))] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Description(@"Update an existing event subscription for a domain topic.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Generated] + public partial class UpdateAzEventGridDomainTopicEventSubscription_UpdateExpanded : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener + { + /// A unique id generatd for the this cmdlet when it is instantiated. + private string __correlationId = System.Guid.NewGuid().ToString(); + + /// A copy of the Invocation Info (necessary to allow asJob to clone this cmdlet) + private global::System.Management.Automation.InvocationInfo __invocationInfo; + + /// A unique id generatd for the this cmdlet when ProcessRecord() is called. + private string __processRecordId; + + /// + /// The for this operation. + /// + private global::System.Threading.CancellationTokenSource _cancellationTokenSource = new global::System.Threading.CancellationTokenSource(); + + /// Properties of the Event Subscription update. + private Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionUpdateParameters _eventSubscriptionUpdateParametersBody = new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.EventSubscriptionUpdateParameters(); + + /// 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.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.EventGridManagementClient Client => Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.ClientAPI; + + /// + /// The type of managed identity used. The type 'SystemAssigned, UserAssigned' includes both an implicitly created identity + /// and a set of user-assigned identities. The type 'None' will remove any identity. + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The type of managed identity used. The type 'SystemAssigned, UserAssigned' includes both an implicitly created identity and a set of user-assigned identities. The type 'None' will remove any identity.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The type of managed identity used. The type 'SystemAssigned, UserAssigned' includes both an implicitly created identity and a set of user-assigned identities. The type 'None' will remove any identity.", + SerializedName = @"type", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EventSubscriptionIdentityType) })] + [global::System.Management.Automation.ArgumentCompleter(typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EventSubscriptionIdentityType))] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EventSubscriptionIdentityType DeadLetterWithResourceIdentityType { get => _eventSubscriptionUpdateParametersBody.DeadLetterWithResourceIdentityType ?? ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EventSubscriptionIdentityType)""); set => _eventSubscriptionUpdateParametersBody.DeadLetterWithResourceIdentityType = value; } + + /// The user identity associated with the resource. + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The user identity associated with the resource.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The user identity associated with the resource.", + SerializedName = @"userAssignedIdentity", + PossibleTypes = new [] { typeof(string) })] + public string DeadLetterWithResourceIdentityUserAssignedIdentity { get => _eventSubscriptionUpdateParametersBody.DeadLetterWithResourceIdentityUserAssignedIdentity ?? null; set => _eventSubscriptionUpdateParametersBody.DeadLetterWithResourceIdentityUserAssignedIdentity = 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.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Azure)] + public global::System.Management.Automation.PSObject DefaultProfile { get; set; } + + /// Type of the endpoint for the event subscription destination. + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Type of the endpoint for the event subscription destination.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Type of the endpoint for the event subscription destination.", + SerializedName = @"endpointType", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EndpointType) })] + [global::System.Management.Automation.ArgumentCompleter(typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EndpointType))] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EndpointType DeliveryWithResourceIdentityDestinationEndpointType { get => _eventSubscriptionUpdateParametersBody.DeliveryWithResourceIdentityDestinationEndpointType ?? ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EndpointType)""); set => _eventSubscriptionUpdateParametersBody.DeliveryWithResourceIdentityDestinationEndpointType = value; } + + /// + /// The type of managed identity used. The type 'SystemAssigned, UserAssigned' includes both an implicitly created identity + /// and a set of user-assigned identities. The type 'None' will remove any identity. + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The type of managed identity used. The type 'SystemAssigned, UserAssigned' includes both an implicitly created identity and a set of user-assigned identities. The type 'None' will remove any identity.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The type of managed identity used. The type 'SystemAssigned, UserAssigned' includes both an implicitly created identity and a set of user-assigned identities. The type 'None' will remove any identity.", + SerializedName = @"type", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EventSubscriptionIdentityType) })] + [global::System.Management.Automation.ArgumentCompleter(typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EventSubscriptionIdentityType))] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EventSubscriptionIdentityType DeliveryWithResourceIdentityType { get => _eventSubscriptionUpdateParametersBody.DeliveryWithResourceIdentityType ?? ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EventSubscriptionIdentityType)""); set => _eventSubscriptionUpdateParametersBody.DeliveryWithResourceIdentityType = value; } + + /// The user identity associated with the resource. + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The user identity associated with the resource.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The user identity associated with the resource.", + SerializedName = @"userAssignedIdentity", + PossibleTypes = new [] { typeof(string) })] + public string DeliveryWithResourceIdentityUserAssignedIdentity { get => _eventSubscriptionUpdateParametersBody.DeliveryWithResourceIdentityUserAssignedIdentity ?? null; set => _eventSubscriptionUpdateParametersBody.DeliveryWithResourceIdentityUserAssignedIdentity = value; } + + /// Backing field for property. + private string _domainName; + + /// Name of the domain. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Name of the domain.")] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Name of the domain.", + SerializedName = @"domainName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Path)] + public string DomainName { get => this._domainName; set => this._domainName = value; } + + /// Type of the endpoint for the event subscription destination. + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Type of the endpoint for the event subscription destination.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Type of the endpoint for the event subscription destination.", + SerializedName = @"endpointType", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EndpointType) })] + [global::System.Management.Automation.ArgumentCompleter(typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EndpointType))] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EndpointType EndpointType { get => _eventSubscriptionUpdateParametersBody.EndpointType ?? ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EndpointType)""); set => _eventSubscriptionUpdateParametersBody.EndpointType = value; } + + /// The event delivery schema for the event subscription. + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The event delivery schema for the event subscription.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The event delivery schema for the event subscription.", + SerializedName = @"eventDeliverySchema", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EventDeliverySchema) })] + [global::System.Management.Automation.ArgumentCompleter(typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EventDeliverySchema))] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EventDeliverySchema EventDeliverySchema { get => _eventSubscriptionUpdateParametersBody.EventDeliverySchema ?? ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EventDeliverySchema)""); set => _eventSubscriptionUpdateParametersBody.EventDeliverySchema = value; } + + /// Backing field for property. + private string _eventSubscriptionName; + + /// Name of the event subscription to be updated. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Name of the event subscription to be updated.")] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Name of the event subscription to be updated.", + SerializedName = @"eventSubscriptionName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Path)] + public string EventSubscriptionName { get => this._eventSubscriptionName; set => this._eventSubscriptionName = value; } + + /// Information about the expiration time for the event subscription. + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Information about the expiration time for the event subscription.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Information about the expiration time for the event subscription.", + SerializedName = @"expirationTimeUtc", + PossibleTypes = new [] { typeof(global::System.DateTime) })] + public global::System.DateTime ExpirationTimeUtc { get => _eventSubscriptionUpdateParametersBody.ExpirationTimeUtc ?? default(global::System.DateTime); set => _eventSubscriptionUpdateParametersBody.ExpirationTimeUtc = value; } + + /// An array of advanced filters that are used for filtering event subscriptions. + [global::System.Management.Automation.AllowEmptyCollection] + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "An array of advanced filters that are used for filtering event subscriptions.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"An array of advanced filters that are used for filtering event subscriptions.", + SerializedName = @"advancedFilters", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IAdvancedFilter) })] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IAdvancedFilter[] FilterAdvancedFilter { get => _eventSubscriptionUpdateParametersBody.FilterAdvancedFilter ?? null /* arrayOf */; set => _eventSubscriptionUpdateParametersBody.FilterAdvancedFilter = value; } + + /// + /// Allows advanced filters to be evaluated against an array of values instead of expecting a singular value. + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Allows advanced filters to be evaluated against an array of values instead of expecting a singular value.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Allows advanced filters to be evaluated against an array of values instead of expecting a singular value.", + SerializedName = @"enableAdvancedFilteringOnArrays", + PossibleTypes = new [] { typeof(global::System.Management.Automation.SwitchParameter) })] + public global::System.Management.Automation.SwitchParameter FilterEnableAdvancedFilteringOnArray { get => _eventSubscriptionUpdateParametersBody.FilterEnableAdvancedFilteringOnArray ?? default(global::System.Management.Automation.SwitchParameter); set => _eventSubscriptionUpdateParametersBody.FilterEnableAdvancedFilteringOnArray = value; } + + /// + /// A list of applicable event types that need to be part of the event subscription. If it is desired to subscribe to all + /// default event types, set the IncludedEventTypes to null. + /// + [global::System.Management.Automation.AllowEmptyCollection] + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "A list of applicable event types that need to be part of the event subscription. If it is desired to subscribe to all default event types, set the IncludedEventTypes to null.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"A list of applicable event types that need to be part of the event subscription. If it is desired to subscribe to all default event types, set the IncludedEventTypes to null.", + SerializedName = @"includedEventTypes", + PossibleTypes = new [] { typeof(string) })] + public string[] FilterIncludedEventType { get => _eventSubscriptionUpdateParametersBody.FilterIncludedEventType ?? null /* arrayOf */; set => _eventSubscriptionUpdateParametersBody.FilterIncludedEventType = value; } + + /// + /// Specifies if the SubjectBeginsWith and SubjectEndsWith properties of the filtershould be compared in a case sensitive + /// manner. + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Specifies if the SubjectBeginsWith and SubjectEndsWith properties of the filtershould be compared in a case sensitive manner.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Specifies if the SubjectBeginsWith and SubjectEndsWith properties of the filtershould be compared in a case sensitive manner.", + SerializedName = @"isSubjectCaseSensitive", + PossibleTypes = new [] { typeof(global::System.Management.Automation.SwitchParameter) })] + public global::System.Management.Automation.SwitchParameter FilterIsSubjectCaseSensitive { get => _eventSubscriptionUpdateParametersBody.FilterIsSubjectCaseSensitive ?? default(global::System.Management.Automation.SwitchParameter); set => _eventSubscriptionUpdateParametersBody.FilterIsSubjectCaseSensitive = value; } + + /// + /// An optional string to filter events for an event subscription based on a resource path prefix.The format of this depends + /// on the publisher of the events.Wildcard characters are not supported in this path. + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "An optional string to filter events for an event subscription based on a resource path prefix.The format of this depends on the publisher of the events.Wildcard characters are not supported in this path.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"An optional string to filter events for an event subscription based on a resource path prefix.The format of this depends on the publisher of the events.Wildcard characters are not supported in this path.", + SerializedName = @"subjectBeginsWith", + PossibleTypes = new [] { typeof(string) })] + public string FilterSubjectBeginsWith { get => _eventSubscriptionUpdateParametersBody.FilterSubjectBeginsWith ?? null; set => _eventSubscriptionUpdateParametersBody.FilterSubjectBeginsWith = value; } + + /// + /// An optional string to filter events for an event subscription based on a resource path suffix.Wildcard characters are + /// not supported in this path. + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "An optional string to filter events for an event subscription based on a resource path suffix.Wildcard characters are not supported in this path.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"An optional string to filter events for an event subscription based on a resource path suffix.Wildcard characters are not supported in this path.", + SerializedName = @"subjectEndsWith", + PossibleTypes = new [] { typeof(string) })] + public string FilterSubjectEndsWith { get => _eventSubscriptionUpdateParametersBody.FilterSubjectEndsWith ?? null; set => _eventSubscriptionUpdateParametersBody.FilterSubjectEndsWith = 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.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[] HttpPipelineAppend { get; set; } + + /// SendAsync Pipeline Steps to be prepended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be prepended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[] HttpPipelinePrepend { get; set; } + + /// Accessor for our copy of the InvocationInfo. + public global::System.Management.Automation.InvocationInfo InvocationInformation { get => __invocationInfo = __invocationInfo ?? this.MyInvocation ; set { __invocationInfo = value; } } + + /// List of user defined labels. + [global::System.Management.Automation.AllowEmptyCollection] + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "List of user defined labels.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"List of user defined labels.", + SerializedName = @"labels", + PossibleTypes = new [] { typeof(string) })] + public string[] Label { get => _eventSubscriptionUpdateParametersBody.Label ?? null /* arrayOf */; set => _eventSubscriptionUpdateParametersBody.Label = value; } + + /// + /// cancellation delegate. Stops the cmdlet when called. + /// + global::System.Action Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter NoWait { get; set; } + + /// + /// When specified, forces the cmdlet return a 'bool' given that there isn't a return type by default. + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Returns true when the command succeeds")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Runtime.HttpPipeline Pipeline { get; set; } + + /// The URI for the proxy server to use + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "The URI for the proxy server to use")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Uri Proxy { get; set; } + + /// Credentials for a proxy server to use for the remote call + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Credentials for a proxy server to use for the remote call")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Management.Automation.PSCredential ProxyCredential { get; set; } + + /// Use the default credentials for the proxy + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Use the default credentials for the proxy")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter ProxyUseDefaultCredentials { get; set; } + + /// Backing field for property. + private string _resourceGroupName; + + /// The name of the resource group within the user's subscription. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the resource group within the user's subscription.")] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the resource group within the user's subscription.", + SerializedName = @"resourceGroupName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Path)] + public string ResourceGroupName { get => this._resourceGroupName; set => this._resourceGroupName = value; } + + /// Time To Live (in minutes) for events. + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Time To Live (in minutes) for events.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Time To Live (in minutes) for events.", + SerializedName = @"eventTimeToLiveInMinutes", + PossibleTypes = new [] { typeof(int) })] + public int RetryPolicyEventTimeToLiveInMinute { get => _eventSubscriptionUpdateParametersBody.RetryPolicyEventTimeToLiveInMinute ?? default(int); set => _eventSubscriptionUpdateParametersBody.RetryPolicyEventTimeToLiveInMinute = value; } + + /// Maximum number of delivery retry attempts for events. + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Maximum number of delivery retry attempts for events.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Maximum number of delivery retry attempts for events.", + SerializedName = @"maxDeliveryAttempts", + PossibleTypes = new [] { typeof(int) })] + public int RetryPolicyMaxDeliveryAttempt { get => _eventSubscriptionUpdateParametersBody.RetryPolicyMaxDeliveryAttempt ?? default(int); set => _eventSubscriptionUpdateParametersBody.RetryPolicyMaxDeliveryAttempt = value; } + + /// Backing field for property. + private string _subscriptionId; + + /// + /// Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription ID forms part of the + /// URI for every service call. + /// + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.")] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.", + SerializedName = @"subscriptionId", + PossibleTypes = new [] { typeof(string) })] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.DefaultInfo( + Name = @"", + Description =@"", + Script = @"(Get-AzContext).Subscription.Id")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Path)] + public string SubscriptionId { get => this._subscriptionId; set => this._subscriptionId = value; } + + /// Backing field for property. + private string _topicName; + + /// Name of the topic. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Name of the topic.")] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Name of the topic.", + SerializedName = @"topicName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Path)] + public string TopicName { get => this._topicName; set => this._topicName = value; } + + /// + /// overrideOnDefault will be called before the regular onDefault has been processed, allowing customization of what + /// happens on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// /// Determines if the rest of the onDefault method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnDefault(global::System.Net.Http.HttpResponseMessage responseMessage, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// (overrides the default BeginProcessing method in global::System.Management.Automation.PSCmdlet) + /// + protected override void BeginProcessing() + { + var telemetryId = Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.GetTelemetryId.Invoke(); + if (telemetryId != "" && telemetryId != "internal") + { + __correlationId = telemetryId; + } + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Creates a duplicate instance of this cmdlet (via JSON serialization). + /// + /// a duplicate instance of UpdateAzEventGridDomainTopicEventSubscription_UpdateExpanded + /// + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Cmdlets.UpdateAzEventGridDomainTopicEventSubscription_UpdateExpanded Clone() + { + var clone = new UpdateAzEventGridDomainTopicEventSubscription_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._eventSubscriptionUpdateParametersBody = this._eventSubscriptionUpdateParametersBody; + clone.SubscriptionId = this.SubscriptionId; + clone.ResourceGroupName = this.ResourceGroupName; + clone.DomainName = this.DomainName; + clone.TopicName = this.TopicName; + clone.EventSubscriptionName = this.EventSubscriptionName; + return clone; + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + + } + + /// Handles/Dispatches events during the call to the REST service. + /// The message id + /// The message cancellation token. When this call is cancelled, this should be true + /// Detailed message data for the message event. + /// + /// A that will be complete when handling of the message is completed. + /// + async global::System.Threading.Tasks.Task Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener.Signal(string id, global::System.Threading.CancellationToken token, global::System.Func messageData) + { + using( NoSynchronizationContext ) + { + if (token.IsCancellationRequested) + { + return ; + } + + switch ( id ) + { + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.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.EventGrid.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.EventGrid.Runtime.PowerShell.AsyncOperationResponse { Target = uri }); + // do nothing more. + data.Cancel(); + return; + } + } + break; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.EventData ), InvocationInformation, this.ParameterSetName, __correlationId, __processRecordId, null ); + if (token.IsCancellationRequested) + { + return ; + } + WriteDebug($"{id}: {(messageData().Message ?? global::System.String.Empty)}"); + } + } + + /// Performs execution of the command. + protected override void ProcessRecord() + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + if (ShouldProcess($"Call remote 'DomainTopicEventSubscriptionsUpdate' operation")) + { + if (true == MyInvocation?.BoundParameters?.ContainsKey("AsJob")) + { + var instance = this.Clone(); + var job = new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token); + } + } + } + } + catch (global::System.AggregateException aggregateException) + { + // unroll the inner exceptions to get the root cause + foreach( var innerException in aggregateException.Flatten().InnerExceptions ) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(innerException,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + } + catch (global::System.Exception exception) when ((exception as System.Management.Automation.PipelineStoppedException)== null || (exception as System.Management.Automation.PipelineStoppedException).InnerException != null) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(exception,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + finally + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletProcessRecordEnd).Wait(); + } + } + + /// Performs execution of the command, working asynchronously if required. + /// + /// A that will be complete when handling of the method is completed. + /// + protected async global::System.Threading.Tasks.Task ProcessRecordAsync() + { + using( NoSynchronizationContext ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await this.Client.DomainTopicEventSubscriptionsUpdate(SubscriptionId, ResourceGroupName, DomainName, TopicName, EventSubscriptionName, _eventSubscriptionUpdateParametersBody, onDefault, this, Pipeline); + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.UndeclaredResponseException urexception) + { + WriteError(new global::System.Management.Automation.ErrorRecord(urexception, urexception.StatusCode.ToString(), global::System.Management.Automation.ErrorCategory.InvalidOperation, new { SubscriptionId=SubscriptionId,ResourceGroupName=ResourceGroupName,DomainName=DomainName,TopicName=TopicName,EventSubscriptionName=EventSubscriptionName,body=_eventSubscriptionUpdateParametersBody}) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(urexception.Message) { RecommendedAction = urexception.Action } + }); + } + finally + { + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Cancel(); + base.StopProcessing(); + } + + /// + /// Intializes a new instance of the cmdlet class. + /// + public UpdateAzEventGridDomainTopicEventSubscription_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. + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onDefault(global::System.Net.Http.HttpResponseMessage responseMessage) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnDefault(responseMessage, ref _returnNow); + // if overrideOnDefault has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // Error Response : default + // Unrecognized Response. Create an error record based on what we have. + var ex = new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.RestException(responseMessage); + WriteError( new global::System.Management.Automation.ErrorRecord(ex, ex.Code, global::System.Management.Automation.ErrorCategory.InvalidOperation, new { SubscriptionId=SubscriptionId, ResourceGroupName=ResourceGroupName, DomainName=DomainName, TopicName=TopicName, EventSubscriptionName=EventSubscriptionName, body=_eventSubscriptionUpdateParametersBody }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(ex.Message) { RecommendedAction = ex.Action } + }); + } + } + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/cmdlets/UpdateAzEventGridDomainTopicEventSubscription_UpdateViaIdentityExpanded.cs b/swaggerci/eventgrid/generated/cmdlets/UpdateAzEventGridDomainTopicEventSubscription_UpdateViaIdentityExpanded.cs new file mode 100644 index 000000000000..e1f7ecd6941a --- /dev/null +++ b/swaggerci/eventgrid/generated/cmdlets/UpdateAzEventGridDomainTopicEventSubscription_UpdateViaIdentityExpanded.cs @@ -0,0 +1,633 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Extensions; + using System; + + /// Update an existing event subscription for a domain topic. + /// + /// [OpenAPI] Update=>PATCH:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.EventGrid/domains/{domainName}/topics/{topicName}/eventSubscriptions/{eventSubscriptionName}" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsData.Update, @"AzEventGridDomainTopicEventSubscription_UpdateViaIdentityExpanded", SupportsShouldProcess = true)] + [global::System.Management.Automation.OutputType(typeof(bool))] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Description(@"Update an existing event subscription for a domain topic.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Generated] + public partial class UpdateAzEventGridDomainTopicEventSubscription_UpdateViaIdentityExpanded : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener + { + /// A unique id generatd for the this cmdlet when it is instantiated. + private string __correlationId = System.Guid.NewGuid().ToString(); + + /// A copy of the Invocation Info (necessary to allow asJob to clone this cmdlet) + private global::System.Management.Automation.InvocationInfo __invocationInfo; + + /// A unique id generatd for the this cmdlet when ProcessRecord() is called. + private string __processRecordId; + + /// + /// The for this operation. + /// + private global::System.Threading.CancellationTokenSource _cancellationTokenSource = new global::System.Threading.CancellationTokenSource(); + + /// Properties of the Event Subscription update. + private Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionUpdateParameters _eventSubscriptionUpdateParametersBody = new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.EventSubscriptionUpdateParameters(); + + /// 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.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.EventGridManagementClient Client => Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.ClientAPI; + + /// + /// The type of managed identity used. The type 'SystemAssigned, UserAssigned' includes both an implicitly created identity + /// and a set of user-assigned identities. The type 'None' will remove any identity. + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The type of managed identity used. The type 'SystemAssigned, UserAssigned' includes both an implicitly created identity and a set of user-assigned identities. The type 'None' will remove any identity.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The type of managed identity used. The type 'SystemAssigned, UserAssigned' includes both an implicitly created identity and a set of user-assigned identities. The type 'None' will remove any identity.", + SerializedName = @"type", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EventSubscriptionIdentityType) })] + [global::System.Management.Automation.ArgumentCompleter(typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EventSubscriptionIdentityType))] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EventSubscriptionIdentityType DeadLetterWithResourceIdentityType { get => _eventSubscriptionUpdateParametersBody.DeadLetterWithResourceIdentityType ?? ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EventSubscriptionIdentityType)""); set => _eventSubscriptionUpdateParametersBody.DeadLetterWithResourceIdentityType = value; } + + /// The user identity associated with the resource. + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The user identity associated with the resource.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The user identity associated with the resource.", + SerializedName = @"userAssignedIdentity", + PossibleTypes = new [] { typeof(string) })] + public string DeadLetterWithResourceIdentityUserAssignedIdentity { get => _eventSubscriptionUpdateParametersBody.DeadLetterWithResourceIdentityUserAssignedIdentity ?? null; set => _eventSubscriptionUpdateParametersBody.DeadLetterWithResourceIdentityUserAssignedIdentity = 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.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Azure)] + public global::System.Management.Automation.PSObject DefaultProfile { get; set; } + + /// Type of the endpoint for the event subscription destination. + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Type of the endpoint for the event subscription destination.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Type of the endpoint for the event subscription destination.", + SerializedName = @"endpointType", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EndpointType) })] + [global::System.Management.Automation.ArgumentCompleter(typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EndpointType))] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EndpointType DeliveryWithResourceIdentityDestinationEndpointType { get => _eventSubscriptionUpdateParametersBody.DeliveryWithResourceIdentityDestinationEndpointType ?? ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EndpointType)""); set => _eventSubscriptionUpdateParametersBody.DeliveryWithResourceIdentityDestinationEndpointType = value; } + + /// + /// The type of managed identity used. The type 'SystemAssigned, UserAssigned' includes both an implicitly created identity + /// and a set of user-assigned identities. The type 'None' will remove any identity. + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The type of managed identity used. The type 'SystemAssigned, UserAssigned' includes both an implicitly created identity and a set of user-assigned identities. The type 'None' will remove any identity.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The type of managed identity used. The type 'SystemAssigned, UserAssigned' includes both an implicitly created identity and a set of user-assigned identities. The type 'None' will remove any identity.", + SerializedName = @"type", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EventSubscriptionIdentityType) })] + [global::System.Management.Automation.ArgumentCompleter(typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EventSubscriptionIdentityType))] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EventSubscriptionIdentityType DeliveryWithResourceIdentityType { get => _eventSubscriptionUpdateParametersBody.DeliveryWithResourceIdentityType ?? ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EventSubscriptionIdentityType)""); set => _eventSubscriptionUpdateParametersBody.DeliveryWithResourceIdentityType = value; } + + /// The user identity associated with the resource. + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The user identity associated with the resource.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The user identity associated with the resource.", + SerializedName = @"userAssignedIdentity", + PossibleTypes = new [] { typeof(string) })] + public string DeliveryWithResourceIdentityUserAssignedIdentity { get => _eventSubscriptionUpdateParametersBody.DeliveryWithResourceIdentityUserAssignedIdentity ?? null; set => _eventSubscriptionUpdateParametersBody.DeliveryWithResourceIdentityUserAssignedIdentity = value; } + + /// Type of the endpoint for the event subscription destination. + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Type of the endpoint for the event subscription destination.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Type of the endpoint for the event subscription destination.", + SerializedName = @"endpointType", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EndpointType) })] + [global::System.Management.Automation.ArgumentCompleter(typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EndpointType))] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EndpointType EndpointType { get => _eventSubscriptionUpdateParametersBody.EndpointType ?? ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EndpointType)""); set => _eventSubscriptionUpdateParametersBody.EndpointType = value; } + + /// The event delivery schema for the event subscription. + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The event delivery schema for the event subscription.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The event delivery schema for the event subscription.", + SerializedName = @"eventDeliverySchema", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EventDeliverySchema) })] + [global::System.Management.Automation.ArgumentCompleter(typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EventDeliverySchema))] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EventDeliverySchema EventDeliverySchema { get => _eventSubscriptionUpdateParametersBody.EventDeliverySchema ?? ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EventDeliverySchema)""); set => _eventSubscriptionUpdateParametersBody.EventDeliverySchema = value; } + + /// Information about the expiration time for the event subscription. + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Information about the expiration time for the event subscription.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Information about the expiration time for the event subscription.", + SerializedName = @"expirationTimeUtc", + PossibleTypes = new [] { typeof(global::System.DateTime) })] + public global::System.DateTime ExpirationTimeUtc { get => _eventSubscriptionUpdateParametersBody.ExpirationTimeUtc ?? default(global::System.DateTime); set => _eventSubscriptionUpdateParametersBody.ExpirationTimeUtc = value; } + + /// An array of advanced filters that are used for filtering event subscriptions. + [global::System.Management.Automation.AllowEmptyCollection] + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "An array of advanced filters that are used for filtering event subscriptions.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"An array of advanced filters that are used for filtering event subscriptions.", + SerializedName = @"advancedFilters", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IAdvancedFilter) })] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IAdvancedFilter[] FilterAdvancedFilter { get => _eventSubscriptionUpdateParametersBody.FilterAdvancedFilter ?? null /* arrayOf */; set => _eventSubscriptionUpdateParametersBody.FilterAdvancedFilter = value; } + + /// + /// Allows advanced filters to be evaluated against an array of values instead of expecting a singular value. + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Allows advanced filters to be evaluated against an array of values instead of expecting a singular value.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Allows advanced filters to be evaluated against an array of values instead of expecting a singular value.", + SerializedName = @"enableAdvancedFilteringOnArrays", + PossibleTypes = new [] { typeof(global::System.Management.Automation.SwitchParameter) })] + public global::System.Management.Automation.SwitchParameter FilterEnableAdvancedFilteringOnArray { get => _eventSubscriptionUpdateParametersBody.FilterEnableAdvancedFilteringOnArray ?? default(global::System.Management.Automation.SwitchParameter); set => _eventSubscriptionUpdateParametersBody.FilterEnableAdvancedFilteringOnArray = value; } + + /// + /// A list of applicable event types that need to be part of the event subscription. If it is desired to subscribe to all + /// default event types, set the IncludedEventTypes to null. + /// + [global::System.Management.Automation.AllowEmptyCollection] + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "A list of applicable event types that need to be part of the event subscription. If it is desired to subscribe to all default event types, set the IncludedEventTypes to null.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"A list of applicable event types that need to be part of the event subscription. If it is desired to subscribe to all default event types, set the IncludedEventTypes to null.", + SerializedName = @"includedEventTypes", + PossibleTypes = new [] { typeof(string) })] + public string[] FilterIncludedEventType { get => _eventSubscriptionUpdateParametersBody.FilterIncludedEventType ?? null /* arrayOf */; set => _eventSubscriptionUpdateParametersBody.FilterIncludedEventType = value; } + + /// + /// Specifies if the SubjectBeginsWith and SubjectEndsWith properties of the filtershould be compared in a case sensitive + /// manner. + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Specifies if the SubjectBeginsWith and SubjectEndsWith properties of the filtershould be compared in a case sensitive manner.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Specifies if the SubjectBeginsWith and SubjectEndsWith properties of the filtershould be compared in a case sensitive manner.", + SerializedName = @"isSubjectCaseSensitive", + PossibleTypes = new [] { typeof(global::System.Management.Automation.SwitchParameter) })] + public global::System.Management.Automation.SwitchParameter FilterIsSubjectCaseSensitive { get => _eventSubscriptionUpdateParametersBody.FilterIsSubjectCaseSensitive ?? default(global::System.Management.Automation.SwitchParameter); set => _eventSubscriptionUpdateParametersBody.FilterIsSubjectCaseSensitive = value; } + + /// + /// An optional string to filter events for an event subscription based on a resource path prefix.The format of this depends + /// on the publisher of the events.Wildcard characters are not supported in this path. + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "An optional string to filter events for an event subscription based on a resource path prefix.The format of this depends on the publisher of the events.Wildcard characters are not supported in this path.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"An optional string to filter events for an event subscription based on a resource path prefix.The format of this depends on the publisher of the events.Wildcard characters are not supported in this path.", + SerializedName = @"subjectBeginsWith", + PossibleTypes = new [] { typeof(string) })] + public string FilterSubjectBeginsWith { get => _eventSubscriptionUpdateParametersBody.FilterSubjectBeginsWith ?? null; set => _eventSubscriptionUpdateParametersBody.FilterSubjectBeginsWith = value; } + + /// + /// An optional string to filter events for an event subscription based on a resource path suffix.Wildcard characters are + /// not supported in this path. + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "An optional string to filter events for an event subscription based on a resource path suffix.Wildcard characters are not supported in this path.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"An optional string to filter events for an event subscription based on a resource path suffix.Wildcard characters are not supported in this path.", + SerializedName = @"subjectEndsWith", + PossibleTypes = new [] { typeof(string) })] + public string FilterSubjectEndsWith { get => _eventSubscriptionUpdateParametersBody.FilterSubjectEndsWith ?? null; set => _eventSubscriptionUpdateParametersBody.FilterSubjectEndsWith = 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.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[] HttpPipelineAppend { get; set; } + + /// SendAsync Pipeline Steps to be prepended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be prepended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[] HttpPipelinePrepend { get; set; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.IEventGridIdentity _inputObject; + + /// Identity Parameter + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Identity Parameter", ValueFromPipeline = true)] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Path)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.IEventGridIdentity InputObject { get => this._inputObject; set => this._inputObject = value; } + + /// Accessor for our copy of the InvocationInfo. + public global::System.Management.Automation.InvocationInfo InvocationInformation { get => __invocationInfo = __invocationInfo ?? this.MyInvocation ; set { __invocationInfo = value; } } + + /// List of user defined labels. + [global::System.Management.Automation.AllowEmptyCollection] + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "List of user defined labels.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"List of user defined labels.", + SerializedName = @"labels", + PossibleTypes = new [] { typeof(string) })] + public string[] Label { get => _eventSubscriptionUpdateParametersBody.Label ?? null /* arrayOf */; set => _eventSubscriptionUpdateParametersBody.Label = value; } + + /// + /// cancellation delegate. Stops the cmdlet when called. + /// + global::System.Action Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter NoWait { get; set; } + + /// + /// When specified, forces the cmdlet return a 'bool' given that there isn't a return type by default. + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Returns true when the command succeeds")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Runtime.HttpPipeline Pipeline { get; set; } + + /// The URI for the proxy server to use + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "The URI for the proxy server to use")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Uri Proxy { get; set; } + + /// Credentials for a proxy server to use for the remote call + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Credentials for a proxy server to use for the remote call")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Management.Automation.PSCredential ProxyCredential { get; set; } + + /// Use the default credentials for the proxy + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Use the default credentials for the proxy")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter ProxyUseDefaultCredentials { get; set; } + + /// Time To Live (in minutes) for events. + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Time To Live (in minutes) for events.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Time To Live (in minutes) for events.", + SerializedName = @"eventTimeToLiveInMinutes", + PossibleTypes = new [] { typeof(int) })] + public int RetryPolicyEventTimeToLiveInMinute { get => _eventSubscriptionUpdateParametersBody.RetryPolicyEventTimeToLiveInMinute ?? default(int); set => _eventSubscriptionUpdateParametersBody.RetryPolicyEventTimeToLiveInMinute = value; } + + /// Maximum number of delivery retry attempts for events. + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Maximum number of delivery retry attempts for events.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Maximum number of delivery retry attempts for events.", + SerializedName = @"maxDeliveryAttempts", + PossibleTypes = new [] { typeof(int) })] + public int RetryPolicyMaxDeliveryAttempt { get => _eventSubscriptionUpdateParametersBody.RetryPolicyMaxDeliveryAttempt ?? default(int); set => _eventSubscriptionUpdateParametersBody.RetryPolicyMaxDeliveryAttempt = value; } + + /// + /// overrideOnDefault will be called before the regular onDefault has been processed, allowing customization of what + /// happens on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// /// Determines if the rest of the onDefault method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnDefault(global::System.Net.Http.HttpResponseMessage responseMessage, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// (overrides the default BeginProcessing method in global::System.Management.Automation.PSCmdlet) + /// + protected override void BeginProcessing() + { + var telemetryId = Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.GetTelemetryId.Invoke(); + if (telemetryId != "" && telemetryId != "internal") + { + __correlationId = telemetryId; + } + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Creates a duplicate instance of this cmdlet (via JSON serialization). + /// + /// a duplicate instance of UpdateAzEventGridDomainTopicEventSubscription_UpdateViaIdentityExpanded + /// + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Cmdlets.UpdateAzEventGridDomainTopicEventSubscription_UpdateViaIdentityExpanded Clone() + { + var clone = new UpdateAzEventGridDomainTopicEventSubscription_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._eventSubscriptionUpdateParametersBody = this._eventSubscriptionUpdateParametersBody; + return clone; + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + + } + + /// Handles/Dispatches events during the call to the REST service. + /// The message id + /// The message cancellation token. When this call is cancelled, this should be true + /// Detailed message data for the message event. + /// + /// A that will be complete when handling of the message is completed. + /// + async global::System.Threading.Tasks.Task Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener.Signal(string id, global::System.Threading.CancellationToken token, global::System.Func messageData) + { + using( NoSynchronizationContext ) + { + if (token.IsCancellationRequested) + { + return ; + } + + switch ( id ) + { + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.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.EventGrid.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.EventGrid.Runtime.PowerShell.AsyncOperationResponse { Target = uri }); + // do nothing more. + data.Cancel(); + return; + } + } + break; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.EventData ), InvocationInformation, this.ParameterSetName, __correlationId, __processRecordId, null ); + if (token.IsCancellationRequested) + { + return ; + } + WriteDebug($"{id}: {(messageData().Message ?? global::System.String.Empty)}"); + } + } + + /// Performs execution of the command. + protected override void ProcessRecord() + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + if (ShouldProcess($"Call remote 'DomainTopicEventSubscriptionsUpdate' operation")) + { + if (true == MyInvocation?.BoundParameters?.ContainsKey("AsJob")) + { + var instance = this.Clone(); + var job = new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token); + } + } + } + } + catch (global::System.AggregateException aggregateException) + { + // unroll the inner exceptions to get the root cause + foreach( var innerException in aggregateException.Flatten().InnerExceptions ) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(innerException,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + } + catch (global::System.Exception exception) when ((exception as System.Management.Automation.PipelineStoppedException)== null || (exception as System.Management.Automation.PipelineStoppedException).InnerException != null) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(exception,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + finally + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletProcessRecordEnd).Wait(); + } + } + + /// Performs execution of the command, working asynchronously if required. + /// + /// A that will be complete when handling of the method is completed. + /// + protected async global::System.Threading.Tasks.Task ProcessRecordAsync() + { + using( NoSynchronizationContext ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + if (InputObject?.Id != null) + { + await this.Client.DomainTopicEventSubscriptionsUpdateViaIdentity(InputObject.Id, _eventSubscriptionUpdateParametersBody, 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.DomainName) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.DomainName"),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, InputObject) ); + } + if (null == InputObject.TopicName) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.TopicName"),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, InputObject) ); + } + if (null == InputObject.EventSubscriptionName) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.EventSubscriptionName"),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, InputObject) ); + } + await this.Client.DomainTopicEventSubscriptionsUpdate(InputObject.SubscriptionId ?? null, InputObject.ResourceGroupName ?? null, InputObject.DomainName ?? null, InputObject.TopicName ?? null, InputObject.EventSubscriptionName ?? null, _eventSubscriptionUpdateParametersBody, onDefault, this, Pipeline); + } + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.UndeclaredResponseException urexception) + { + WriteError(new global::System.Management.Automation.ErrorRecord(urexception, urexception.StatusCode.ToString(), global::System.Management.Automation.ErrorCategory.InvalidOperation, new { body=_eventSubscriptionUpdateParametersBody}) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(urexception.Message) { RecommendedAction = urexception.Action } + }); + } + finally + { + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Cancel(); + base.StopProcessing(); + } + + /// + /// Intializes a new instance of the + /// cmdlet class. + /// + public UpdateAzEventGridDomainTopicEventSubscription_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. + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onDefault(global::System.Net.Http.HttpResponseMessage responseMessage) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnDefault(responseMessage, ref _returnNow); + // if overrideOnDefault has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // Error Response : default + // Unrecognized Response. Create an error record based on what we have. + var ex = new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.RestException(responseMessage); + WriteError( new global::System.Management.Automation.ErrorRecord(ex, ex.Code, global::System.Management.Automation.ErrorCategory.InvalidOperation, new { body=_eventSubscriptionUpdateParametersBody }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(ex.Message) { RecommendedAction = ex.Action } + }); + } + } + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/cmdlets/UpdateAzEventGridDomain_UpdateExpanded.cs b/swaggerci/eventgrid/generated/cmdlets/UpdateAzEventGridDomain_UpdateExpanded.cs new file mode 100644 index 000000000000..82c777611b72 --- /dev/null +++ b/swaggerci/eventgrid/generated/cmdlets/UpdateAzEventGridDomain_UpdateExpanded.cs @@ -0,0 +1,640 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Extensions; + using System; + + /// Asynchronously updates a domain with the specified parameters. + /// + /// [OpenAPI] Update=>PATCH:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.EventGrid/domains/{domainName}" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsData.Update, @"AzEventGridDomain_UpdateExpanded", SupportsShouldProcess = true)] + [global::System.Management.Automation.OutputType(typeof(bool))] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Description(@"Asynchronously updates a domain with the specified parameters.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Generated] + public partial class UpdateAzEventGridDomain_UpdateExpanded : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener + { + /// A unique id generatd for the this cmdlet when it is instantiated. + private string __correlationId = System.Guid.NewGuid().ToString(); + + /// A copy of the Invocation Info (necessary to allow asJob to clone this cmdlet) + private global::System.Management.Automation.InvocationInfo __invocationInfo; + + /// A unique id generatd for the this cmdlet when ProcessRecord() is called. + private string __processRecordId; + + /// + /// The for this operation. + /// + private global::System.Threading.CancellationTokenSource _cancellationTokenSource = new global::System.Threading.CancellationTokenSource(); + + /// Properties of the Domain update. + private Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDomainUpdateParameters _domainUpdateParametersBody = new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.DomainUpdateParameters(); + + /// 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.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter AsJob { get; set; } + + /// + /// This Boolean is used to specify the creation mechanism for 'all' the Event Grid Domain Topics associated with this Event + /// Grid Domain resource.In this context, creation of domain topic can be auto-managed (when true) or self-managed (when false). + /// The default value for this property is true.When this property is null or set to true, Event Grid is responsible of automatically + /// creating the domain topic when the first event subscription iscreated at the scope of the domain topic. If this property + /// is set to false, then creating the first event subscription will require creating a domain topicby the user. The self-management + /// mode can be used if the user wants full control of when the domain topic is created, while auto-managed mode provides + /// theflexibility to perform less operations and manage fewer resources by the user. Also, note that in auto-managed creation + /// mode, user is allowed to create thedomain topic on demand if needed. + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "This Boolean is used to specify the creation mechanism for 'all' the Event Grid Domain Topics associated with this Event Grid Domain resource.In this context, creation of domain topic can be auto-managed (when true) or self-managed (when false). The default value for this property is true.When this property is null or set to true, Event Grid is responsible of automatically creating the domain topic when the first event subscription iscreated at the scope of the domain topic. If this property is set to false, then creating the first event subscription will require creating a domain topicby the user. The self-management mode can be used if the user wants full control of when the domain topic is created, while auto-managed mode provides theflexibility to perform less operations and manage fewer resources by the user. Also, note that in auto-managed creation mode, user is allowed to create thedomain topic on demand if needed.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"This Boolean is used to specify the creation mechanism for 'all' the Event Grid Domain Topics associated with this Event Grid Domain resource.In this context, creation of domain topic can be auto-managed (when true) or self-managed (when false). The default value for this property is true.When this property is null or set to true, Event Grid is responsible of automatically creating the domain topic when the first event subscription iscreated at the scope of the domain topic. If this property is set to false, then creating the first event subscription will require creating a domain topicby the user. The self-management mode can be used if the user wants full control of when the domain topic is created, while auto-managed mode provides theflexibility to perform less operations and manage fewer resources by the user. Also, note that in auto-managed creation mode, user is allowed to create thedomain topic on demand if needed.", + SerializedName = @"autoCreateTopicWithFirstSubscription", + PossibleTypes = new [] { typeof(global::System.Management.Automation.SwitchParameter) })] + public global::System.Management.Automation.SwitchParameter AutoCreateTopicWithFirstSubscription { get => _domainUpdateParametersBody.AutoCreateTopicWithFirstSubscription ?? default(global::System.Management.Automation.SwitchParameter); set => _domainUpdateParametersBody.AutoCreateTopicWithFirstSubscription = value; } + + /// + /// This Boolean is used to specify the deletion mechanism for 'all' the Event Grid Domain Topics associated with this Event + /// Grid Domain resource.In this context, deletion of domain topic can be auto-managed (when true) or self-managed (when false). + /// The default value for this property is true.When this property is set to true, Event Grid is responsible of automatically + /// deleting the domain topic when the last event subscription at the scopeof the domain topic is deleted. If this property + /// is set to false, then the user needs to manually delete the domain topic when it is no longer needed(e.g., when last event + /// subscription is deleted and the resource needs to be cleaned up). The self-management mode can be used if the user wants + /// fullcontrol of when the domain topic needs to be deleted, while auto-managed mode provides the flexibility to perform + /// less operations and manage fewerresources by the user. + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "This Boolean is used to specify the deletion mechanism for 'all' the Event Grid Domain Topics associated with this Event Grid Domain resource.In this context, deletion of domain topic can be auto-managed (when true) or self-managed (when false). The default value for this property is true.When this property is set to true, Event Grid is responsible of automatically deleting the domain topic when the last event subscription at the scopeof the domain topic is deleted. If this property is set to false, then the user needs to manually delete the domain topic when it is no longer needed(e.g., when last event subscription is deleted and the resource needs to be cleaned up). The self-management mode can be used if the user wants fullcontrol of when the domain topic needs to be deleted, while auto-managed mode provides the flexibility to perform less operations and manage fewerresources by the user.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"This Boolean is used to specify the deletion mechanism for 'all' the Event Grid Domain Topics associated with this Event Grid Domain resource.In this context, deletion of domain topic can be auto-managed (when true) or self-managed (when false). The default value for this property is true.When this property is set to true, Event Grid is responsible of automatically deleting the domain topic when the last event subscription at the scopeof the domain topic is deleted. If this property is set to false, then the user needs to manually delete the domain topic when it is no longer needed(e.g., when last event subscription is deleted and the resource needs to be cleaned up). The self-management mode can be used if the user wants fullcontrol of when the domain topic needs to be deleted, while auto-managed mode provides the flexibility to perform less operations and manage fewerresources by the user.", + SerializedName = @"autoDeleteTopicWithLastSubscription", + PossibleTypes = new [] { typeof(global::System.Management.Automation.SwitchParameter) })] + public global::System.Management.Automation.SwitchParameter AutoDeleteTopicWithLastSubscription { get => _domainUpdateParametersBody.AutoDeleteTopicWithLastSubscription ?? default(global::System.Management.Automation.SwitchParameter); set => _domainUpdateParametersBody.AutoDeleteTopicWithLastSubscription = 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.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.EventGridManagementClient Client => Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.ClientAPI; + + /// The data residency boundary for the domain. + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The data residency boundary for the domain.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The data residency boundary for the domain.", + SerializedName = @"dataResidencyBoundary", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.DataResidencyBoundary) })] + [global::System.Management.Automation.ArgumentCompleter(typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.DataResidencyBoundary))] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.DataResidencyBoundary DataResidencyBoundary { get => _domainUpdateParametersBody.DataResidencyBoundary ?? ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.DataResidencyBoundary)""); set => _domainUpdateParametersBody.DataResidencyBoundary = 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.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Azure)] + public global::System.Management.Automation.PSObject DefaultProfile { get; set; } + + /// + /// This boolean is used to enable or disable local auth. Default value is false. When the property is set to true, only AAD + /// token will be used to authenticate if user is allowed to publish to the domain. + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "This boolean is used to enable or disable local auth. Default value is false. When the property is set to true, only AAD token will be used to authenticate if user is allowed to publish to the domain.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"This boolean is used to enable or disable local auth. Default value is false. When the property is set to true, only AAD token will be used to authenticate if user is allowed to publish to the domain.", + SerializedName = @"disableLocalAuth", + PossibleTypes = new [] { typeof(global::System.Management.Automation.SwitchParameter) })] + public global::System.Management.Automation.SwitchParameter DisableLocalAuth { get => _domainUpdateParametersBody.DisableLocalAuth ?? default(global::System.Management.Automation.SwitchParameter); set => _domainUpdateParametersBody.DisableLocalAuth = 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.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[] HttpPipelineAppend { get; set; } + + /// SendAsync Pipeline Steps to be prepended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be prepended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[] HttpPipelinePrepend { get; set; } + + /// The principal ID of resource identity. + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The principal ID of resource identity.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The principal ID of resource identity.", + SerializedName = @"principalId", + PossibleTypes = new [] { typeof(string) })] + public string IdentityPrincipalId { get => _domainUpdateParametersBody.IdentityPrincipalId ?? null; set => _domainUpdateParametersBody.IdentityPrincipalId = value; } + + /// The tenant ID of resource. + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The tenant ID of resource.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The tenant ID of resource.", + SerializedName = @"tenantId", + PossibleTypes = new [] { typeof(string) })] + public string IdentityTenantId { get => _domainUpdateParametersBody.IdentityTenantId ?? null; set => _domainUpdateParametersBody.IdentityTenantId = value; } + + /// + /// The type of managed identity used. The type 'SystemAssigned, UserAssigned' includes both an implicitly created identity + /// and a set of user-assigned identities. The type 'None' will remove any identity. + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The type of managed identity used. The type 'SystemAssigned, UserAssigned' includes both an implicitly created identity and a set of user-assigned identities. The type 'None' will remove any identity.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The type of managed identity used. The type 'SystemAssigned, UserAssigned' includes both an implicitly created identity and a set of user-assigned identities. The type 'None' will remove any identity.", + SerializedName = @"type", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.IdentityType) })] + [global::System.Management.Automation.ArgumentCompleter(typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.IdentityType))] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.IdentityType IdentityType { get => _domainUpdateParametersBody.IdentityType ?? ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.IdentityType)""); set => _domainUpdateParametersBody.IdentityType = value; } + + /// + /// The list of user identities associated with the resource. The user identity dictionary key references will be ARM resource + /// ids in the form:'/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ManagedIdentity/userAssignedIdentities/{identityName}'.This + /// property is currently not used and reserved for future usage. + /// + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ExportAs(typeof(global::System.Collections.Hashtable))] + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The list of user identities associated with the resource. The user identity dictionary key references will be ARM resource ids in the form:'/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ManagedIdentity/userAssignedIdentities/{identityName}'.This property is currently not used and reserved for future usage.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The list of user identities associated with the resource. The user identity dictionary key references will be ARM resource ids in the form:'/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ManagedIdentity/userAssignedIdentities/{identityName}'.This property is currently not used and reserved for future usage.", + SerializedName = @"userAssignedIdentities", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IIdentityInfoUserAssignedIdentities) })] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IIdentityInfoUserAssignedIdentities IdentityUserAssignedIdentity { get => _domainUpdateParametersBody.IdentityUserAssignedIdentity ?? null /* object */; set => _domainUpdateParametersBody.IdentityUserAssignedIdentity = value; } + + /// + /// This can be used to restrict traffic from specific IPs instead of all IPs. Note: These are considered only if PublicNetworkAccess + /// is enabled. + /// + [global::System.Management.Automation.AllowEmptyCollection] + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "This can be used to restrict traffic from specific IPs instead of all IPs. Note: These are considered only if PublicNetworkAccess is enabled.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"This can be used to restrict traffic from specific IPs instead of all IPs. Note: These are considered only if PublicNetworkAccess is enabled.", + SerializedName = @"inboundIpRules", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IInboundIPRule) })] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IInboundIPRule[] InboundIPRule { get => _domainUpdateParametersBody.InboundIPRule ?? null /* arrayOf */; set => _domainUpdateParametersBody.InboundIPRule = value; } + + /// Accessor for our copy of the InvocationInfo. + public global::System.Management.Automation.InvocationInfo InvocationInformation { get => __invocationInfo = __invocationInfo ?? this.MyInvocation ; set { __invocationInfo = value; } } + + /// + /// cancellation delegate. Stops the cmdlet when called. + /// + global::System.Action Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener.Token => _cancellationTokenSource.Token; + + /// Backing field for property. + private string _name; + + /// Name of the domain. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Name of the domain.")] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Name of the domain.", + SerializedName = @"domainName", + PossibleTypes = new [] { typeof(string) })] + [global::System.Management.Automation.Alias("DomainName")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Path)] + public string Name { get => this._name; set => this._name = value; } + + /// + /// when specified, will make the remote call, and return an AsyncOperationResponse, letting the remote operation continue + /// asynchronously. + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Run the command asynchronously")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter NoWait { get; set; } + + /// + /// When specified, forces the cmdlet return a 'bool' given that there isn't a return type by default. + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Returns true when the command succeeds")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Runtime.HttpPipeline Pipeline { get; set; } + + /// The URI for the proxy server to use + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "The URI for the proxy server to use")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Uri Proxy { get; set; } + + /// Credentials for a proxy server to use for the remote call + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Credentials for a proxy server to use for the remote call")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Management.Automation.PSCredential ProxyCredential { get; set; } + + /// Use the default credentials for the proxy + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Use the default credentials for the proxy")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter ProxyUseDefaultCredentials { get; set; } + + /// + /// This determines if traffic is allowed over public network. By default it is enabled. You can further restrict to specific + /// IPs by configuring + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "This determines if traffic is allowed over public network. By default it is enabled. You can further restrict to specific IPs by configuring ")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"This determines if traffic is allowed over public network. By default it is enabled. You can further restrict to specific IPs by configuring ", + SerializedName = @"publicNetworkAccess", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.PublicNetworkAccess) })] + [global::System.Management.Automation.ArgumentCompleter(typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.PublicNetworkAccess))] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.PublicNetworkAccess PublicNetworkAccess { get => _domainUpdateParametersBody.PublicNetworkAccess ?? ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.PublicNetworkAccess)""); set => _domainUpdateParametersBody.PublicNetworkAccess = value; } + + /// Backing field for property. + private string _resourceGroupName; + + /// The name of the resource group within the user's subscription. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the resource group within the user's subscription.")] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the resource group within the user's subscription.", + SerializedName = @"resourceGroupName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Path)] + public string ResourceGroupName { get => this._resourceGroupName; set => this._resourceGroupName = value; } + + /// The Sku name of the resource. The possible values are: Basic or Premium. + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The Sku name of the resource. The possible values are: Basic or Premium.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The Sku name of the resource. The possible values are: Basic or Premium.", + SerializedName = @"name", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.Sku) })] + [global::System.Management.Automation.ArgumentCompleter(typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.Sku))] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.Sku SkuName { get => _domainUpdateParametersBody.SkuName ?? ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.Sku)""); set => _domainUpdateParametersBody.SkuName = value; } + + /// Backing field for property. + private string _subscriptionId; + + /// + /// Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription ID forms part of the + /// URI for every service call. + /// + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.")] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.", + SerializedName = @"subscriptionId", + PossibleTypes = new [] { typeof(string) })] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.DefaultInfo( + Name = @"", + Description =@"", + Script = @"(Get-AzContext).Subscription.Id")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Path)] + public string SubscriptionId { get => this._subscriptionId; set => this._subscriptionId = value; } + + /// Tags of the domains resource. + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ExportAs(typeof(global::System.Collections.Hashtable))] + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Tags of the domains resource.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Tags of the domains resource.", + SerializedName = @"tags", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDomainUpdateParametersTags) })] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDomainUpdateParametersTags Tag { get => _domainUpdateParametersBody.Tag ?? null /* object */; set => _domainUpdateParametersBody.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. + /// /// Determines if the rest of the onDefault method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnDefault(global::System.Net.Http.HttpResponseMessage responseMessage, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnOk will be called before the regular onOk has been processed, allowing customization of what happens + /// on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// /// Determines if the rest of the onOk method should be processed, or if the method should return + /// immediately (set to true to skip further processing ) + + partial void overrideOnOk(global::System.Net.Http.HttpResponseMessage responseMessage, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// (overrides the default BeginProcessing method in global::System.Management.Automation.PSCmdlet) + /// + protected override void BeginProcessing() + { + var telemetryId = Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.GetTelemetryId.Invoke(); + if (telemetryId != "" && telemetryId != "internal") + { + __correlationId = telemetryId; + } + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Creates a duplicate instance of this cmdlet (via JSON serialization). + /// a duplicate instance of UpdateAzEventGridDomain_UpdateExpanded + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Cmdlets.UpdateAzEventGridDomain_UpdateExpanded Clone() + { + var clone = new UpdateAzEventGridDomain_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._domainUpdateParametersBody = this._domainUpdateParametersBody; + clone.SubscriptionId = this.SubscriptionId; + clone.ResourceGroupName = this.ResourceGroupName; + clone.Name = this.Name; + return clone; + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + + } + + /// Handles/Dispatches events during the call to the REST service. + /// The message id + /// The message cancellation token. When this call is cancelled, this should be true + /// Detailed message data for the message event. + /// + /// A that will be complete when handling of the message is completed. + /// + async global::System.Threading.Tasks.Task Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener.Signal(string id, global::System.Threading.CancellationToken token, global::System.Func messageData) + { + using( NoSynchronizationContext ) + { + if (token.IsCancellationRequested) + { + return ; + } + + switch ( id ) + { + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.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.EventGrid.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.EventGrid.Runtime.PowerShell.AsyncOperationResponse { Target = uri }); + // do nothing more. + data.Cancel(); + return; + } + } + break; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.EventData ), InvocationInformation, this.ParameterSetName, __correlationId, __processRecordId, null ); + if (token.IsCancellationRequested) + { + return ; + } + WriteDebug($"{id}: {(messageData().Message ?? global::System.String.Empty)}"); + } + } + + /// Performs execution of the command. + protected override void ProcessRecord() + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + if (ShouldProcess($"Call remote 'DomainsUpdate' operation")) + { + if (true == MyInvocation?.BoundParameters?.ContainsKey("AsJob")) + { + var instance = this.Clone(); + var job = new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token); + } + } + } + } + catch (global::System.AggregateException aggregateException) + { + // unroll the inner exceptions to get the root cause + foreach( var innerException in aggregateException.Flatten().InnerExceptions ) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(innerException,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + } + catch (global::System.Exception exception) when ((exception as System.Management.Automation.PipelineStoppedException)== null || (exception as System.Management.Automation.PipelineStoppedException).InnerException != null) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(exception,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + finally + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletProcessRecordEnd).Wait(); + } + } + + /// Performs execution of the command, working asynchronously if required. + /// + /// A that will be complete when handling of the method is completed. + /// + protected async global::System.Threading.Tasks.Task ProcessRecordAsync() + { + using( NoSynchronizationContext ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await this.Client.DomainsUpdate(SubscriptionId, ResourceGroupName, Name, _domainUpdateParametersBody, onOk, onDefault, this, Pipeline); + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.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=_domainUpdateParametersBody}) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(urexception.Message) { RecommendedAction = urexception.Action } + }); + } + finally + { + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Cancel(); + base.StopProcessing(); + } + + /// + /// Intializes a new instance of the cmdlet class. + /// + public UpdateAzEventGridDomain_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. + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onDefault(global::System.Net.Http.HttpResponseMessage responseMessage) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnDefault(responseMessage, ref _returnNow); + // if overrideOnDefault has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // Error Response : default + // Unrecognized Response. Create an error record based on what we have. + var ex = new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.RestException(responseMessage); + WriteError( new global::System.Management.Automation.ErrorRecord(ex, ex.Code, global::System.Management.Automation.ErrorCategory.InvalidOperation, new { SubscriptionId=SubscriptionId, ResourceGroupName=ResourceGroupName, Name=Name, body=_domainUpdateParametersBody }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(ex.Message) { RecommendedAction = ex.Action } + }); + } + } + + /// a delegate that is called when the remote service returns 200 (OK). + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onOk(global::System.Net.Http.HttpResponseMessage responseMessage) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnOk(responseMessage, ref _returnNow); + // if overrideOnOk has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // onOk - response for 200 / + if (true == MyInvocation?.BoundParameters?.ContainsKey("PassThru")) + { + WriteObject(true); + } + } + } + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/cmdlets/UpdateAzEventGridDomain_UpdateViaIdentityExpanded.cs b/swaggerci/eventgrid/generated/cmdlets/UpdateAzEventGridDomain_UpdateViaIdentityExpanded.cs new file mode 100644 index 000000000000..05bc066826ee --- /dev/null +++ b/swaggerci/eventgrid/generated/cmdlets/UpdateAzEventGridDomain_UpdateViaIdentityExpanded.cs @@ -0,0 +1,615 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Extensions; + using System; + + /// Asynchronously updates a domain with the specified parameters. + /// + /// [OpenAPI] Update=>PATCH:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.EventGrid/domains/{domainName}" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsData.Update, @"AzEventGridDomain_UpdateViaIdentityExpanded", SupportsShouldProcess = true)] + [global::System.Management.Automation.OutputType(typeof(bool))] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Description(@"Asynchronously updates a domain with the specified parameters.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Generated] + public partial class UpdateAzEventGridDomain_UpdateViaIdentityExpanded : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener + { + /// A unique id generatd for the this cmdlet when it is instantiated. + private string __correlationId = System.Guid.NewGuid().ToString(); + + /// A copy of the Invocation Info (necessary to allow asJob to clone this cmdlet) + private global::System.Management.Automation.InvocationInfo __invocationInfo; + + /// A unique id generatd for the this cmdlet when ProcessRecord() is called. + private string __processRecordId; + + /// + /// The for this operation. + /// + private global::System.Threading.CancellationTokenSource _cancellationTokenSource = new global::System.Threading.CancellationTokenSource(); + + /// Properties of the Domain update. + private Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDomainUpdateParameters _domainUpdateParametersBody = new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.DomainUpdateParameters(); + + /// 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.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter AsJob { get; set; } + + /// + /// This Boolean is used to specify the creation mechanism for 'all' the Event Grid Domain Topics associated with this Event + /// Grid Domain resource.In this context, creation of domain topic can be auto-managed (when true) or self-managed (when false). + /// The default value for this property is true.When this property is null or set to true, Event Grid is responsible of automatically + /// creating the domain topic when the first event subscription iscreated at the scope of the domain topic. If this property + /// is set to false, then creating the first event subscription will require creating a domain topicby the user. The self-management + /// mode can be used if the user wants full control of when the domain topic is created, while auto-managed mode provides + /// theflexibility to perform less operations and manage fewer resources by the user. Also, note that in auto-managed creation + /// mode, user is allowed to create thedomain topic on demand if needed. + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "This Boolean is used to specify the creation mechanism for 'all' the Event Grid Domain Topics associated with this Event Grid Domain resource.In this context, creation of domain topic can be auto-managed (when true) or self-managed (when false). The default value for this property is true.When this property is null or set to true, Event Grid is responsible of automatically creating the domain topic when the first event subscription iscreated at the scope of the domain topic. If this property is set to false, then creating the first event subscription will require creating a domain topicby the user. The self-management mode can be used if the user wants full control of when the domain topic is created, while auto-managed mode provides theflexibility to perform less operations and manage fewer resources by the user. Also, note that in auto-managed creation mode, user is allowed to create thedomain topic on demand if needed.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"This Boolean is used to specify the creation mechanism for 'all' the Event Grid Domain Topics associated with this Event Grid Domain resource.In this context, creation of domain topic can be auto-managed (when true) or self-managed (when false). The default value for this property is true.When this property is null or set to true, Event Grid is responsible of automatically creating the domain topic when the first event subscription iscreated at the scope of the domain topic. If this property is set to false, then creating the first event subscription will require creating a domain topicby the user. The self-management mode can be used if the user wants full control of when the domain topic is created, while auto-managed mode provides theflexibility to perform less operations and manage fewer resources by the user. Also, note that in auto-managed creation mode, user is allowed to create thedomain topic on demand if needed.", + SerializedName = @"autoCreateTopicWithFirstSubscription", + PossibleTypes = new [] { typeof(global::System.Management.Automation.SwitchParameter) })] + public global::System.Management.Automation.SwitchParameter AutoCreateTopicWithFirstSubscription { get => _domainUpdateParametersBody.AutoCreateTopicWithFirstSubscription ?? default(global::System.Management.Automation.SwitchParameter); set => _domainUpdateParametersBody.AutoCreateTopicWithFirstSubscription = value; } + + /// + /// This Boolean is used to specify the deletion mechanism for 'all' the Event Grid Domain Topics associated with this Event + /// Grid Domain resource.In this context, deletion of domain topic can be auto-managed (when true) or self-managed (when false). + /// The default value for this property is true.When this property is set to true, Event Grid is responsible of automatically + /// deleting the domain topic when the last event subscription at the scopeof the domain topic is deleted. If this property + /// is set to false, then the user needs to manually delete the domain topic when it is no longer needed(e.g., when last event + /// subscription is deleted and the resource needs to be cleaned up). The self-management mode can be used if the user wants + /// fullcontrol of when the domain topic needs to be deleted, while auto-managed mode provides the flexibility to perform + /// less operations and manage fewerresources by the user. + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "This Boolean is used to specify the deletion mechanism for 'all' the Event Grid Domain Topics associated with this Event Grid Domain resource.In this context, deletion of domain topic can be auto-managed (when true) or self-managed (when false). The default value for this property is true.When this property is set to true, Event Grid is responsible of automatically deleting the domain topic when the last event subscription at the scopeof the domain topic is deleted. If this property is set to false, then the user needs to manually delete the domain topic when it is no longer needed(e.g., when last event subscription is deleted and the resource needs to be cleaned up). The self-management mode can be used if the user wants fullcontrol of when the domain topic needs to be deleted, while auto-managed mode provides the flexibility to perform less operations and manage fewerresources by the user.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"This Boolean is used to specify the deletion mechanism for 'all' the Event Grid Domain Topics associated with this Event Grid Domain resource.In this context, deletion of domain topic can be auto-managed (when true) or self-managed (when false). The default value for this property is true.When this property is set to true, Event Grid is responsible of automatically deleting the domain topic when the last event subscription at the scopeof the domain topic is deleted. If this property is set to false, then the user needs to manually delete the domain topic when it is no longer needed(e.g., when last event subscription is deleted and the resource needs to be cleaned up). The self-management mode can be used if the user wants fullcontrol of when the domain topic needs to be deleted, while auto-managed mode provides the flexibility to perform less operations and manage fewerresources by the user.", + SerializedName = @"autoDeleteTopicWithLastSubscription", + PossibleTypes = new [] { typeof(global::System.Management.Automation.SwitchParameter) })] + public global::System.Management.Automation.SwitchParameter AutoDeleteTopicWithLastSubscription { get => _domainUpdateParametersBody.AutoDeleteTopicWithLastSubscription ?? default(global::System.Management.Automation.SwitchParameter); set => _domainUpdateParametersBody.AutoDeleteTopicWithLastSubscription = 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.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.EventGridManagementClient Client => Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.ClientAPI; + + /// The data residency boundary for the domain. + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The data residency boundary for the domain.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The data residency boundary for the domain.", + SerializedName = @"dataResidencyBoundary", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.DataResidencyBoundary) })] + [global::System.Management.Automation.ArgumentCompleter(typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.DataResidencyBoundary))] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.DataResidencyBoundary DataResidencyBoundary { get => _domainUpdateParametersBody.DataResidencyBoundary ?? ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.DataResidencyBoundary)""); set => _domainUpdateParametersBody.DataResidencyBoundary = 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.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Azure)] + public global::System.Management.Automation.PSObject DefaultProfile { get; set; } + + /// + /// This boolean is used to enable or disable local auth. Default value is false. When the property is set to true, only AAD + /// token will be used to authenticate if user is allowed to publish to the domain. + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "This boolean is used to enable or disable local auth. Default value is false. When the property is set to true, only AAD token will be used to authenticate if user is allowed to publish to the domain.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"This boolean is used to enable or disable local auth. Default value is false. When the property is set to true, only AAD token will be used to authenticate if user is allowed to publish to the domain.", + SerializedName = @"disableLocalAuth", + PossibleTypes = new [] { typeof(global::System.Management.Automation.SwitchParameter) })] + public global::System.Management.Automation.SwitchParameter DisableLocalAuth { get => _domainUpdateParametersBody.DisableLocalAuth ?? default(global::System.Management.Automation.SwitchParameter); set => _domainUpdateParametersBody.DisableLocalAuth = 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.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[] HttpPipelineAppend { get; set; } + + /// SendAsync Pipeline Steps to be prepended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be prepended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[] HttpPipelinePrepend { get; set; } + + /// The principal ID of resource identity. + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The principal ID of resource identity.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The principal ID of resource identity.", + SerializedName = @"principalId", + PossibleTypes = new [] { typeof(string) })] + public string IdentityPrincipalId { get => _domainUpdateParametersBody.IdentityPrincipalId ?? null; set => _domainUpdateParametersBody.IdentityPrincipalId = value; } + + /// The tenant ID of resource. + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The tenant ID of resource.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The tenant ID of resource.", + SerializedName = @"tenantId", + PossibleTypes = new [] { typeof(string) })] + public string IdentityTenantId { get => _domainUpdateParametersBody.IdentityTenantId ?? null; set => _domainUpdateParametersBody.IdentityTenantId = value; } + + /// + /// The type of managed identity used. The type 'SystemAssigned, UserAssigned' includes both an implicitly created identity + /// and a set of user-assigned identities. The type 'None' will remove any identity. + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The type of managed identity used. The type 'SystemAssigned, UserAssigned' includes both an implicitly created identity and a set of user-assigned identities. The type 'None' will remove any identity.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The type of managed identity used. The type 'SystemAssigned, UserAssigned' includes both an implicitly created identity and a set of user-assigned identities. The type 'None' will remove any identity.", + SerializedName = @"type", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.IdentityType) })] + [global::System.Management.Automation.ArgumentCompleter(typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.IdentityType))] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.IdentityType IdentityType { get => _domainUpdateParametersBody.IdentityType ?? ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.IdentityType)""); set => _domainUpdateParametersBody.IdentityType = value; } + + /// + /// The list of user identities associated with the resource. The user identity dictionary key references will be ARM resource + /// ids in the form:'/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ManagedIdentity/userAssignedIdentities/{identityName}'.This + /// property is currently not used and reserved for future usage. + /// + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ExportAs(typeof(global::System.Collections.Hashtable))] + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The list of user identities associated with the resource. The user identity dictionary key references will be ARM resource ids in the form:'/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ManagedIdentity/userAssignedIdentities/{identityName}'.This property is currently not used and reserved for future usage.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The list of user identities associated with the resource. The user identity dictionary key references will be ARM resource ids in the form:'/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ManagedIdentity/userAssignedIdentities/{identityName}'.This property is currently not used and reserved for future usage.", + SerializedName = @"userAssignedIdentities", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IIdentityInfoUserAssignedIdentities) })] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IIdentityInfoUserAssignedIdentities IdentityUserAssignedIdentity { get => _domainUpdateParametersBody.IdentityUserAssignedIdentity ?? null /* object */; set => _domainUpdateParametersBody.IdentityUserAssignedIdentity = value; } + + /// + /// This can be used to restrict traffic from specific IPs instead of all IPs. Note: These are considered only if PublicNetworkAccess + /// is enabled. + /// + [global::System.Management.Automation.AllowEmptyCollection] + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "This can be used to restrict traffic from specific IPs instead of all IPs. Note: These are considered only if PublicNetworkAccess is enabled.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"This can be used to restrict traffic from specific IPs instead of all IPs. Note: These are considered only if PublicNetworkAccess is enabled.", + SerializedName = @"inboundIpRules", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IInboundIPRule) })] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IInboundIPRule[] InboundIPRule { get => _domainUpdateParametersBody.InboundIPRule ?? null /* arrayOf */; set => _domainUpdateParametersBody.InboundIPRule = value; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.IEventGridIdentity _inputObject; + + /// Identity Parameter + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Identity Parameter", ValueFromPipeline = true)] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Path)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.IEventGridIdentity InputObject { get => this._inputObject; set => this._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.EventGrid.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter NoWait { get; set; } + + /// + /// When specified, forces the cmdlet return a 'bool' given that there isn't a return type by default. + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Returns true when the command succeeds")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Runtime.HttpPipeline Pipeline { get; set; } + + /// The URI for the proxy server to use + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "The URI for the proxy server to use")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Uri Proxy { get; set; } + + /// Credentials for a proxy server to use for the remote call + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Credentials for a proxy server to use for the remote call")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Management.Automation.PSCredential ProxyCredential { get; set; } + + /// Use the default credentials for the proxy + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Use the default credentials for the proxy")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter ProxyUseDefaultCredentials { get; set; } + + /// + /// This determines if traffic is allowed over public network. By default it is enabled. You can further restrict to specific + /// IPs by configuring + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "This determines if traffic is allowed over public network. By default it is enabled. You can further restrict to specific IPs by configuring ")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"This determines if traffic is allowed over public network. By default it is enabled. You can further restrict to specific IPs by configuring ", + SerializedName = @"publicNetworkAccess", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.PublicNetworkAccess) })] + [global::System.Management.Automation.ArgumentCompleter(typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.PublicNetworkAccess))] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.PublicNetworkAccess PublicNetworkAccess { get => _domainUpdateParametersBody.PublicNetworkAccess ?? ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.PublicNetworkAccess)""); set => _domainUpdateParametersBody.PublicNetworkAccess = value; } + + /// The Sku name of the resource. The possible values are: Basic or Premium. + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The Sku name of the resource. The possible values are: Basic or Premium.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The Sku name of the resource. The possible values are: Basic or Premium.", + SerializedName = @"name", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.Sku) })] + [global::System.Management.Automation.ArgumentCompleter(typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.Sku))] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.Sku SkuName { get => _domainUpdateParametersBody.SkuName ?? ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.Sku)""); set => _domainUpdateParametersBody.SkuName = value; } + + /// Tags of the domains resource. + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ExportAs(typeof(global::System.Collections.Hashtable))] + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Tags of the domains resource.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Tags of the domains resource.", + SerializedName = @"tags", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDomainUpdateParametersTags) })] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IDomainUpdateParametersTags Tag { get => _domainUpdateParametersBody.Tag ?? null /* object */; set => _domainUpdateParametersBody.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. + /// /// Determines if the rest of the onDefault method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnDefault(global::System.Net.Http.HttpResponseMessage responseMessage, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnOk will be called before the regular onOk has been processed, allowing customization of what happens + /// on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// /// Determines if the rest of the onOk method should be processed, or if the method should return + /// immediately (set to true to skip further processing ) + + partial void overrideOnOk(global::System.Net.Http.HttpResponseMessage responseMessage, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// (overrides the default BeginProcessing method in global::System.Management.Automation.PSCmdlet) + /// + protected override void BeginProcessing() + { + var telemetryId = Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.GetTelemetryId.Invoke(); + if (telemetryId != "" && telemetryId != "internal") + { + __correlationId = telemetryId; + } + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Creates a duplicate instance of this cmdlet (via JSON serialization). + /// a duplicate instance of UpdateAzEventGridDomain_UpdateViaIdentityExpanded + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Cmdlets.UpdateAzEventGridDomain_UpdateViaIdentityExpanded Clone() + { + var clone = new UpdateAzEventGridDomain_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._domainUpdateParametersBody = this._domainUpdateParametersBody; + return clone; + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + + } + + /// Handles/Dispatches events during the call to the REST service. + /// The message id + /// The message cancellation token. When this call is cancelled, this should be true + /// Detailed message data for the message event. + /// + /// A that will be complete when handling of the message is completed. + /// + async global::System.Threading.Tasks.Task Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener.Signal(string id, global::System.Threading.CancellationToken token, global::System.Func messageData) + { + using( NoSynchronizationContext ) + { + if (token.IsCancellationRequested) + { + return ; + } + + switch ( id ) + { + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.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.EventGrid.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.EventGrid.Runtime.PowerShell.AsyncOperationResponse { Target = uri }); + // do nothing more. + data.Cancel(); + return; + } + } + break; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.EventData ), InvocationInformation, this.ParameterSetName, __correlationId, __processRecordId, null ); + if (token.IsCancellationRequested) + { + return ; + } + WriteDebug($"{id}: {(messageData().Message ?? global::System.String.Empty)}"); + } + } + + /// Performs execution of the command. + protected override void ProcessRecord() + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + if (ShouldProcess($"Call remote 'DomainsUpdate' operation")) + { + if (true == MyInvocation?.BoundParameters?.ContainsKey("AsJob")) + { + var instance = this.Clone(); + var job = new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token); + } + } + } + } + catch (global::System.AggregateException aggregateException) + { + // unroll the inner exceptions to get the root cause + foreach( var innerException in aggregateException.Flatten().InnerExceptions ) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(innerException,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + } + catch (global::System.Exception exception) when ((exception as System.Management.Automation.PipelineStoppedException)== null || (exception as System.Management.Automation.PipelineStoppedException).InnerException != null) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(exception,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + finally + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletProcessRecordEnd).Wait(); + } + } + + /// Performs execution of the command, working asynchronously if required. + /// + /// A that will be complete when handling of the method is completed. + /// + protected async global::System.Threading.Tasks.Task ProcessRecordAsync() + { + using( NoSynchronizationContext ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + if (InputObject?.Id != null) + { + await this.Client.DomainsUpdateViaIdentity(InputObject.Id, _domainUpdateParametersBody, 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.DomainName) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.DomainName"),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, InputObject) ); + } + await this.Client.DomainsUpdate(InputObject.SubscriptionId ?? null, InputObject.ResourceGroupName ?? null, InputObject.DomainName ?? null, _domainUpdateParametersBody, onOk, onDefault, this, Pipeline); + } + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.UndeclaredResponseException urexception) + { + WriteError(new global::System.Management.Automation.ErrorRecord(urexception, urexception.StatusCode.ToString(), global::System.Management.Automation.ErrorCategory.InvalidOperation, new { body=_domainUpdateParametersBody}) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(urexception.Message) { RecommendedAction = urexception.Action } + }); + } + finally + { + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Cancel(); + base.StopProcessing(); + } + + /// + /// Intializes a new instance of the cmdlet class. + /// + public UpdateAzEventGridDomain_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. + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onDefault(global::System.Net.Http.HttpResponseMessage responseMessage) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnDefault(responseMessage, ref _returnNow); + // if overrideOnDefault has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // Error Response : default + // Unrecognized Response. Create an error record based on what we have. + var ex = new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.RestException(responseMessage); + WriteError( new global::System.Management.Automation.ErrorRecord(ex, ex.Code, global::System.Management.Automation.ErrorCategory.InvalidOperation, new { body=_domainUpdateParametersBody }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(ex.Message) { RecommendedAction = ex.Action } + }); + } + } + + /// a delegate that is called when the remote service returns 200 (OK). + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onOk(global::System.Net.Http.HttpResponseMessage responseMessage) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnOk(responseMessage, ref _returnNow); + // if overrideOnOk has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // onOk - response for 200 / + if (true == MyInvocation?.BoundParameters?.ContainsKey("PassThru")) + { + WriteObject(true); + } + } + } + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/cmdlets/UpdateAzEventGridEventSubscription_UpdateExpanded.cs b/swaggerci/eventgrid/generated/cmdlets/UpdateAzEventGridEventSubscription_UpdateExpanded.cs new file mode 100644 index 000000000000..0ebf2ac4574c --- /dev/null +++ b/swaggerci/eventgrid/generated/cmdlets/UpdateAzEventGridEventSubscription_UpdateExpanded.cs @@ -0,0 +1,631 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Extensions; + using System; + + /// Asynchronously updates an existing event subscription. + /// + /// [OpenAPI] Update=>PATCH:"/{scope}/providers/Microsoft.EventGrid/eventSubscriptions/{eventSubscriptionName}" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsData.Update, @"AzEventGridEventSubscription_UpdateExpanded", SupportsShouldProcess = true)] + [global::System.Management.Automation.OutputType(typeof(bool))] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Description(@"Asynchronously updates an existing event subscription.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Generated] + public partial class UpdateAzEventGridEventSubscription_UpdateExpanded : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener + { + /// A unique id generatd for the this cmdlet when it is instantiated. + private string __correlationId = System.Guid.NewGuid().ToString(); + + /// A copy of the Invocation Info (necessary to allow asJob to clone this cmdlet) + private global::System.Management.Automation.InvocationInfo __invocationInfo; + + /// A unique id generatd for the this cmdlet when ProcessRecord() is called. + private string __processRecordId; + + /// + /// The for this operation. + /// + private global::System.Threading.CancellationTokenSource _cancellationTokenSource = new global::System.Threading.CancellationTokenSource(); + + /// Properties of the Event Subscription update. + private Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionUpdateParameters _eventSubscriptionUpdateParametersBody = new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.EventSubscriptionUpdateParameters(); + + /// 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.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.EventGridManagementClient Client => Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.ClientAPI; + + /// + /// The type of managed identity used. The type 'SystemAssigned, UserAssigned' includes both an implicitly created identity + /// and a set of user-assigned identities. The type 'None' will remove any identity. + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The type of managed identity used. The type 'SystemAssigned, UserAssigned' includes both an implicitly created identity and a set of user-assigned identities. The type 'None' will remove any identity.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The type of managed identity used. The type 'SystemAssigned, UserAssigned' includes both an implicitly created identity and a set of user-assigned identities. The type 'None' will remove any identity.", + SerializedName = @"type", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EventSubscriptionIdentityType) })] + [global::System.Management.Automation.ArgumentCompleter(typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EventSubscriptionIdentityType))] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EventSubscriptionIdentityType DeadLetterWithResourceIdentityType { get => _eventSubscriptionUpdateParametersBody.DeadLetterWithResourceIdentityType ?? ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EventSubscriptionIdentityType)""); set => _eventSubscriptionUpdateParametersBody.DeadLetterWithResourceIdentityType = value; } + + /// The user identity associated with the resource. + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The user identity associated with the resource.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The user identity associated with the resource.", + SerializedName = @"userAssignedIdentity", + PossibleTypes = new [] { typeof(string) })] + public string DeadLetterWithResourceIdentityUserAssignedIdentity { get => _eventSubscriptionUpdateParametersBody.DeadLetterWithResourceIdentityUserAssignedIdentity ?? null; set => _eventSubscriptionUpdateParametersBody.DeadLetterWithResourceIdentityUserAssignedIdentity = 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.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Azure)] + public global::System.Management.Automation.PSObject DefaultProfile { get; set; } + + /// Type of the endpoint for the event subscription destination. + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Type of the endpoint for the event subscription destination.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Type of the endpoint for the event subscription destination.", + SerializedName = @"endpointType", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EndpointType) })] + [global::System.Management.Automation.ArgumentCompleter(typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EndpointType))] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EndpointType DeliveryWithResourceIdentityDestinationEndpointType { get => _eventSubscriptionUpdateParametersBody.DeliveryWithResourceIdentityDestinationEndpointType ?? ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EndpointType)""); set => _eventSubscriptionUpdateParametersBody.DeliveryWithResourceIdentityDestinationEndpointType = value; } + + /// + /// The type of managed identity used. The type 'SystemAssigned, UserAssigned' includes both an implicitly created identity + /// and a set of user-assigned identities. The type 'None' will remove any identity. + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The type of managed identity used. The type 'SystemAssigned, UserAssigned' includes both an implicitly created identity and a set of user-assigned identities. The type 'None' will remove any identity.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The type of managed identity used. The type 'SystemAssigned, UserAssigned' includes both an implicitly created identity and a set of user-assigned identities. The type 'None' will remove any identity.", + SerializedName = @"type", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EventSubscriptionIdentityType) })] + [global::System.Management.Automation.ArgumentCompleter(typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EventSubscriptionIdentityType))] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EventSubscriptionIdentityType DeliveryWithResourceIdentityType { get => _eventSubscriptionUpdateParametersBody.DeliveryWithResourceIdentityType ?? ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EventSubscriptionIdentityType)""); set => _eventSubscriptionUpdateParametersBody.DeliveryWithResourceIdentityType = value; } + + /// The user identity associated with the resource. + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The user identity associated with the resource.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The user identity associated with the resource.", + SerializedName = @"userAssignedIdentity", + PossibleTypes = new [] { typeof(string) })] + public string DeliveryWithResourceIdentityUserAssignedIdentity { get => _eventSubscriptionUpdateParametersBody.DeliveryWithResourceIdentityUserAssignedIdentity ?? null; set => _eventSubscriptionUpdateParametersBody.DeliveryWithResourceIdentityUserAssignedIdentity = value; } + + /// Type of the endpoint for the event subscription destination. + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Type of the endpoint for the event subscription destination.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Type of the endpoint for the event subscription destination.", + SerializedName = @"endpointType", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EndpointType) })] + [global::System.Management.Automation.ArgumentCompleter(typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EndpointType))] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EndpointType EndpointType { get => _eventSubscriptionUpdateParametersBody.EndpointType ?? ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EndpointType)""); set => _eventSubscriptionUpdateParametersBody.EndpointType = value; } + + /// The event delivery schema for the event subscription. + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The event delivery schema for the event subscription.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The event delivery schema for the event subscription.", + SerializedName = @"eventDeliverySchema", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EventDeliverySchema) })] + [global::System.Management.Automation.ArgumentCompleter(typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EventDeliverySchema))] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EventDeliverySchema EventDeliverySchema { get => _eventSubscriptionUpdateParametersBody.EventDeliverySchema ?? ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EventDeliverySchema)""); set => _eventSubscriptionUpdateParametersBody.EventDeliverySchema = value; } + + /// Information about the expiration time for the event subscription. + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Information about the expiration time for the event subscription.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Information about the expiration time for the event subscription.", + SerializedName = @"expirationTimeUtc", + PossibleTypes = new [] { typeof(global::System.DateTime) })] + public global::System.DateTime ExpirationTimeUtc { get => _eventSubscriptionUpdateParametersBody.ExpirationTimeUtc ?? default(global::System.DateTime); set => _eventSubscriptionUpdateParametersBody.ExpirationTimeUtc = value; } + + /// An array of advanced filters that are used for filtering event subscriptions. + [global::System.Management.Automation.AllowEmptyCollection] + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "An array of advanced filters that are used for filtering event subscriptions.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"An array of advanced filters that are used for filtering event subscriptions.", + SerializedName = @"advancedFilters", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IAdvancedFilter) })] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IAdvancedFilter[] FilterAdvancedFilter { get => _eventSubscriptionUpdateParametersBody.FilterAdvancedFilter ?? null /* arrayOf */; set => _eventSubscriptionUpdateParametersBody.FilterAdvancedFilter = value; } + + /// + /// Allows advanced filters to be evaluated against an array of values instead of expecting a singular value. + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Allows advanced filters to be evaluated against an array of values instead of expecting a singular value.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Allows advanced filters to be evaluated against an array of values instead of expecting a singular value.", + SerializedName = @"enableAdvancedFilteringOnArrays", + PossibleTypes = new [] { typeof(global::System.Management.Automation.SwitchParameter) })] + public global::System.Management.Automation.SwitchParameter FilterEnableAdvancedFilteringOnArray { get => _eventSubscriptionUpdateParametersBody.FilterEnableAdvancedFilteringOnArray ?? default(global::System.Management.Automation.SwitchParameter); set => _eventSubscriptionUpdateParametersBody.FilterEnableAdvancedFilteringOnArray = value; } + + /// + /// A list of applicable event types that need to be part of the event subscription. If it is desired to subscribe to all + /// default event types, set the IncludedEventTypes to null. + /// + [global::System.Management.Automation.AllowEmptyCollection] + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "A list of applicable event types that need to be part of the event subscription. If it is desired to subscribe to all default event types, set the IncludedEventTypes to null.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"A list of applicable event types that need to be part of the event subscription. If it is desired to subscribe to all default event types, set the IncludedEventTypes to null.", + SerializedName = @"includedEventTypes", + PossibleTypes = new [] { typeof(string) })] + public string[] FilterIncludedEventType { get => _eventSubscriptionUpdateParametersBody.FilterIncludedEventType ?? null /* arrayOf */; set => _eventSubscriptionUpdateParametersBody.FilterIncludedEventType = value; } + + /// + /// Specifies if the SubjectBeginsWith and SubjectEndsWith properties of the filtershould be compared in a case sensitive + /// manner. + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Specifies if the SubjectBeginsWith and SubjectEndsWith properties of the filtershould be compared in a case sensitive manner.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Specifies if the SubjectBeginsWith and SubjectEndsWith properties of the filtershould be compared in a case sensitive manner.", + SerializedName = @"isSubjectCaseSensitive", + PossibleTypes = new [] { typeof(global::System.Management.Automation.SwitchParameter) })] + public global::System.Management.Automation.SwitchParameter FilterIsSubjectCaseSensitive { get => _eventSubscriptionUpdateParametersBody.FilterIsSubjectCaseSensitive ?? default(global::System.Management.Automation.SwitchParameter); set => _eventSubscriptionUpdateParametersBody.FilterIsSubjectCaseSensitive = value; } + + /// + /// An optional string to filter events for an event subscription based on a resource path prefix.The format of this depends + /// on the publisher of the events.Wildcard characters are not supported in this path. + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "An optional string to filter events for an event subscription based on a resource path prefix.The format of this depends on the publisher of the events.Wildcard characters are not supported in this path.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"An optional string to filter events for an event subscription based on a resource path prefix.The format of this depends on the publisher of the events.Wildcard characters are not supported in this path.", + SerializedName = @"subjectBeginsWith", + PossibleTypes = new [] { typeof(string) })] + public string FilterSubjectBeginsWith { get => _eventSubscriptionUpdateParametersBody.FilterSubjectBeginsWith ?? null; set => _eventSubscriptionUpdateParametersBody.FilterSubjectBeginsWith = value; } + + /// + /// An optional string to filter events for an event subscription based on a resource path suffix.Wildcard characters are + /// not supported in this path. + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "An optional string to filter events for an event subscription based on a resource path suffix.Wildcard characters are not supported in this path.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"An optional string to filter events for an event subscription based on a resource path suffix.Wildcard characters are not supported in this path.", + SerializedName = @"subjectEndsWith", + PossibleTypes = new [] { typeof(string) })] + public string FilterSubjectEndsWith { get => _eventSubscriptionUpdateParametersBody.FilterSubjectEndsWith ?? null; set => _eventSubscriptionUpdateParametersBody.FilterSubjectEndsWith = 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.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[] HttpPipelineAppend { get; set; } + + /// SendAsync Pipeline Steps to be prepended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be prepended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[] HttpPipelinePrepend { get; set; } + + /// Accessor for our copy of the InvocationInfo. + public global::System.Management.Automation.InvocationInfo InvocationInformation { get => __invocationInfo = __invocationInfo ?? this.MyInvocation ; set { __invocationInfo = value; } } + + /// List of user defined labels. + [global::System.Management.Automation.AllowEmptyCollection] + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "List of user defined labels.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"List of user defined labels.", + SerializedName = @"labels", + PossibleTypes = new [] { typeof(string) })] + public string[] Label { get => _eventSubscriptionUpdateParametersBody.Label ?? null /* arrayOf */; set => _eventSubscriptionUpdateParametersBody.Label = value; } + + /// + /// cancellation delegate. Stops the cmdlet when called. + /// + global::System.Action Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener.Token => _cancellationTokenSource.Token; + + /// Backing field for property. + private string _name; + + /// Name of the event subscription to be updated. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Name of the event subscription to be updated.")] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Name of the event subscription to be updated.", + SerializedName = @"eventSubscriptionName", + PossibleTypes = new [] { typeof(string) })] + [global::System.Management.Automation.Alias("EventSubscriptionName")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Path)] + public string Name { get => this._name; set => this._name = value; } + + /// + /// when specified, will make the remote call, and return an AsyncOperationResponse, letting the remote operation continue + /// asynchronously. + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Run the command asynchronously")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter NoWait { get; set; } + + /// + /// When specified, forces the cmdlet return a 'bool' given that there isn't a return type by default. + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Returns true when the command succeeds")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Runtime.HttpPipeline Pipeline { get; set; } + + /// The URI for the proxy server to use + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "The URI for the proxy server to use")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Uri Proxy { get; set; } + + /// Credentials for a proxy server to use for the remote call + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Credentials for a proxy server to use for the remote call")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Management.Automation.PSCredential ProxyCredential { get; set; } + + /// Use the default credentials for the proxy + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Use the default credentials for the proxy")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter ProxyUseDefaultCredentials { get; set; } + + /// Time To Live (in minutes) for events. + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Time To Live (in minutes) for events.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Time To Live (in minutes) for events.", + SerializedName = @"eventTimeToLiveInMinutes", + PossibleTypes = new [] { typeof(int) })] + public int RetryPolicyEventTimeToLiveInMinute { get => _eventSubscriptionUpdateParametersBody.RetryPolicyEventTimeToLiveInMinute ?? default(int); set => _eventSubscriptionUpdateParametersBody.RetryPolicyEventTimeToLiveInMinute = value; } + + /// Maximum number of delivery retry attempts for events. + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Maximum number of delivery retry attempts for events.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Maximum number of delivery retry attempts for events.", + SerializedName = @"maxDeliveryAttempts", + PossibleTypes = new [] { typeof(int) })] + public int RetryPolicyMaxDeliveryAttempt { get => _eventSubscriptionUpdateParametersBody.RetryPolicyMaxDeliveryAttempt ?? default(int); set => _eventSubscriptionUpdateParametersBody.RetryPolicyMaxDeliveryAttempt = value; } + + /// Backing field for property. + private string _scope; + + /// + /// The scope of existing event subscription. The scope can be a subscription, or a resource group, or a top level resource + /// belonging to a resource provider namespace, or an EventGrid topic. For example, use '/subscriptions/{subscriptionId}/' + /// for a subscription, '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}' for a resource group, and '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}' + /// for a resource, and '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.EventGrid/topics/{topicName}' + /// for an EventGrid topic. + /// + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The scope of existing event subscription. The scope can be a subscription, or a resource group, or a top level resource belonging to a resource provider namespace, or an EventGrid topic. For example, use '/subscriptions/{subscriptionId}/' for a subscription, '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}' for a resource group, and '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}' for a resource, and '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.EventGrid/topics/{topicName}' for an EventGrid topic.")] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The scope of existing event subscription. The scope can be a subscription, or a resource group, or a top level resource belonging to a resource provider namespace, or an EventGrid topic. For example, use '/subscriptions/{subscriptionId}/' for a subscription, '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}' for a resource group, and '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}' for a resource, and '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.EventGrid/topics/{topicName}' for an EventGrid topic.", + SerializedName = @"scope", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Path)] + public string Scope { get => this._scope; set => this._scope = value; } + + /// + /// overrideOnDefault will be called before the regular onDefault has been processed, allowing customization of what + /// happens on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// /// Determines if the rest of the onDefault method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnDefault(global::System.Net.Http.HttpResponseMessage responseMessage, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// (overrides the default BeginProcessing method in global::System.Management.Automation.PSCmdlet) + /// + protected override void BeginProcessing() + { + var telemetryId = Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.GetTelemetryId.Invoke(); + if (telemetryId != "" && telemetryId != "internal") + { + __correlationId = telemetryId; + } + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Creates a duplicate instance of this cmdlet (via JSON serialization). + /// a duplicate instance of UpdateAzEventGridEventSubscription_UpdateExpanded + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Cmdlets.UpdateAzEventGridEventSubscription_UpdateExpanded Clone() + { + var clone = new UpdateAzEventGridEventSubscription_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._eventSubscriptionUpdateParametersBody = this._eventSubscriptionUpdateParametersBody; + clone.Scope = this.Scope; + clone.Name = this.Name; + return clone; + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + + } + + /// Handles/Dispatches events during the call to the REST service. + /// The message id + /// The message cancellation token. When this call is cancelled, this should be true + /// Detailed message data for the message event. + /// + /// A that will be complete when handling of the message is completed. + /// + async global::System.Threading.Tasks.Task Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener.Signal(string id, global::System.Threading.CancellationToken token, global::System.Func messageData) + { + using( NoSynchronizationContext ) + { + if (token.IsCancellationRequested) + { + return ; + } + + switch ( id ) + { + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.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.EventGrid.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.EventGrid.Runtime.PowerShell.AsyncOperationResponse { Target = uri }); + // do nothing more. + data.Cancel(); + return; + } + } + break; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.EventData ), InvocationInformation, this.ParameterSetName, __correlationId, __processRecordId, null ); + if (token.IsCancellationRequested) + { + return ; + } + WriteDebug($"{id}: {(messageData().Message ?? global::System.String.Empty)}"); + } + } + + /// Performs execution of the command. + protected override void ProcessRecord() + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + if (ShouldProcess($"Call remote 'EventSubscriptionsUpdate' operation")) + { + if (true == MyInvocation?.BoundParameters?.ContainsKey("AsJob")) + { + var instance = this.Clone(); + var job = new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token); + } + } + } + } + catch (global::System.AggregateException aggregateException) + { + // unroll the inner exceptions to get the root cause + foreach( var innerException in aggregateException.Flatten().InnerExceptions ) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(innerException,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + } + catch (global::System.Exception exception) when ((exception as System.Management.Automation.PipelineStoppedException)== null || (exception as System.Management.Automation.PipelineStoppedException).InnerException != null) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(exception,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + finally + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletProcessRecordEnd).Wait(); + } + } + + /// Performs execution of the command, working asynchronously if required. + /// + /// A that will be complete when handling of the method is completed. + /// + protected async global::System.Threading.Tasks.Task ProcessRecordAsync() + { + using( NoSynchronizationContext ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await this.Client.EventSubscriptionsUpdate(Scope, Name, _eventSubscriptionUpdateParametersBody, onDefault, this, Pipeline); + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.UndeclaredResponseException urexception) + { + WriteError(new global::System.Management.Automation.ErrorRecord(urexception, urexception.StatusCode.ToString(), global::System.Management.Automation.ErrorCategory.InvalidOperation, new { Scope=Scope,Name=Name,body=_eventSubscriptionUpdateParametersBody}) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(urexception.Message) { RecommendedAction = urexception.Action } + }); + } + finally + { + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Cancel(); + base.StopProcessing(); + } + + /// + /// Intializes a new instance of the cmdlet class. + /// + public UpdateAzEventGridEventSubscription_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. + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onDefault(global::System.Net.Http.HttpResponseMessage responseMessage) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnDefault(responseMessage, ref _returnNow); + // if overrideOnDefault has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // Error Response : default + // Unrecognized Response. Create an error record based on what we have. + var ex = new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.RestException(responseMessage); + WriteError( new global::System.Management.Automation.ErrorRecord(ex, ex.Code, global::System.Management.Automation.ErrorCategory.InvalidOperation, new { Scope=Scope, Name=Name, body=_eventSubscriptionUpdateParametersBody }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(ex.Message) { RecommendedAction = ex.Action } + }); + } + } + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/cmdlets/UpdateAzEventGridEventSubscription_UpdateViaIdentityExpanded.cs b/swaggerci/eventgrid/generated/cmdlets/UpdateAzEventGridEventSubscription_UpdateViaIdentityExpanded.cs new file mode 100644 index 000000000000..02342b697be2 --- /dev/null +++ b/swaggerci/eventgrid/generated/cmdlets/UpdateAzEventGridEventSubscription_UpdateViaIdentityExpanded.cs @@ -0,0 +1,620 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Extensions; + using System; + + /// Asynchronously updates an existing event subscription. + /// + /// [OpenAPI] Update=>PATCH:"/{scope}/providers/Microsoft.EventGrid/eventSubscriptions/{eventSubscriptionName}" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsData.Update, @"AzEventGridEventSubscription_UpdateViaIdentityExpanded", SupportsShouldProcess = true)] + [global::System.Management.Automation.OutputType(typeof(bool))] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Description(@"Asynchronously updates an existing event subscription.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Generated] + public partial class UpdateAzEventGridEventSubscription_UpdateViaIdentityExpanded : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener + { + /// A unique id generatd for the this cmdlet when it is instantiated. + private string __correlationId = System.Guid.NewGuid().ToString(); + + /// A copy of the Invocation Info (necessary to allow asJob to clone this cmdlet) + private global::System.Management.Automation.InvocationInfo __invocationInfo; + + /// A unique id generatd for the this cmdlet when ProcessRecord() is called. + private string __processRecordId; + + /// + /// The for this operation. + /// + private global::System.Threading.CancellationTokenSource _cancellationTokenSource = new global::System.Threading.CancellationTokenSource(); + + /// Properties of the Event Subscription update. + private Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionUpdateParameters _eventSubscriptionUpdateParametersBody = new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.EventSubscriptionUpdateParameters(); + + /// 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.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.EventGridManagementClient Client => Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.ClientAPI; + + /// + /// The type of managed identity used. The type 'SystemAssigned, UserAssigned' includes both an implicitly created identity + /// and a set of user-assigned identities. The type 'None' will remove any identity. + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The type of managed identity used. The type 'SystemAssigned, UserAssigned' includes both an implicitly created identity and a set of user-assigned identities. The type 'None' will remove any identity.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The type of managed identity used. The type 'SystemAssigned, UserAssigned' includes both an implicitly created identity and a set of user-assigned identities. The type 'None' will remove any identity.", + SerializedName = @"type", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EventSubscriptionIdentityType) })] + [global::System.Management.Automation.ArgumentCompleter(typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EventSubscriptionIdentityType))] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EventSubscriptionIdentityType DeadLetterWithResourceIdentityType { get => _eventSubscriptionUpdateParametersBody.DeadLetterWithResourceIdentityType ?? ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EventSubscriptionIdentityType)""); set => _eventSubscriptionUpdateParametersBody.DeadLetterWithResourceIdentityType = value; } + + /// The user identity associated with the resource. + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The user identity associated with the resource.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The user identity associated with the resource.", + SerializedName = @"userAssignedIdentity", + PossibleTypes = new [] { typeof(string) })] + public string DeadLetterWithResourceIdentityUserAssignedIdentity { get => _eventSubscriptionUpdateParametersBody.DeadLetterWithResourceIdentityUserAssignedIdentity ?? null; set => _eventSubscriptionUpdateParametersBody.DeadLetterWithResourceIdentityUserAssignedIdentity = 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.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Azure)] + public global::System.Management.Automation.PSObject DefaultProfile { get; set; } + + /// Type of the endpoint for the event subscription destination. + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Type of the endpoint for the event subscription destination.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Type of the endpoint for the event subscription destination.", + SerializedName = @"endpointType", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EndpointType) })] + [global::System.Management.Automation.ArgumentCompleter(typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EndpointType))] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EndpointType DeliveryWithResourceIdentityDestinationEndpointType { get => _eventSubscriptionUpdateParametersBody.DeliveryWithResourceIdentityDestinationEndpointType ?? ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EndpointType)""); set => _eventSubscriptionUpdateParametersBody.DeliveryWithResourceIdentityDestinationEndpointType = value; } + + /// + /// The type of managed identity used. The type 'SystemAssigned, UserAssigned' includes both an implicitly created identity + /// and a set of user-assigned identities. The type 'None' will remove any identity. + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The type of managed identity used. The type 'SystemAssigned, UserAssigned' includes both an implicitly created identity and a set of user-assigned identities. The type 'None' will remove any identity.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The type of managed identity used. The type 'SystemAssigned, UserAssigned' includes both an implicitly created identity and a set of user-assigned identities. The type 'None' will remove any identity.", + SerializedName = @"type", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EventSubscriptionIdentityType) })] + [global::System.Management.Automation.ArgumentCompleter(typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EventSubscriptionIdentityType))] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EventSubscriptionIdentityType DeliveryWithResourceIdentityType { get => _eventSubscriptionUpdateParametersBody.DeliveryWithResourceIdentityType ?? ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EventSubscriptionIdentityType)""); set => _eventSubscriptionUpdateParametersBody.DeliveryWithResourceIdentityType = value; } + + /// The user identity associated with the resource. + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The user identity associated with the resource.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The user identity associated with the resource.", + SerializedName = @"userAssignedIdentity", + PossibleTypes = new [] { typeof(string) })] + public string DeliveryWithResourceIdentityUserAssignedIdentity { get => _eventSubscriptionUpdateParametersBody.DeliveryWithResourceIdentityUserAssignedIdentity ?? null; set => _eventSubscriptionUpdateParametersBody.DeliveryWithResourceIdentityUserAssignedIdentity = value; } + + /// Type of the endpoint for the event subscription destination. + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Type of the endpoint for the event subscription destination.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Type of the endpoint for the event subscription destination.", + SerializedName = @"endpointType", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EndpointType) })] + [global::System.Management.Automation.ArgumentCompleter(typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EndpointType))] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EndpointType EndpointType { get => _eventSubscriptionUpdateParametersBody.EndpointType ?? ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EndpointType)""); set => _eventSubscriptionUpdateParametersBody.EndpointType = value; } + + /// The event delivery schema for the event subscription. + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The event delivery schema for the event subscription.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The event delivery schema for the event subscription.", + SerializedName = @"eventDeliverySchema", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EventDeliverySchema) })] + [global::System.Management.Automation.ArgumentCompleter(typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EventDeliverySchema))] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EventDeliverySchema EventDeliverySchema { get => _eventSubscriptionUpdateParametersBody.EventDeliverySchema ?? ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EventDeliverySchema)""); set => _eventSubscriptionUpdateParametersBody.EventDeliverySchema = value; } + + /// Information about the expiration time for the event subscription. + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Information about the expiration time for the event subscription.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Information about the expiration time for the event subscription.", + SerializedName = @"expirationTimeUtc", + PossibleTypes = new [] { typeof(global::System.DateTime) })] + public global::System.DateTime ExpirationTimeUtc { get => _eventSubscriptionUpdateParametersBody.ExpirationTimeUtc ?? default(global::System.DateTime); set => _eventSubscriptionUpdateParametersBody.ExpirationTimeUtc = value; } + + /// An array of advanced filters that are used for filtering event subscriptions. + [global::System.Management.Automation.AllowEmptyCollection] + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "An array of advanced filters that are used for filtering event subscriptions.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"An array of advanced filters that are used for filtering event subscriptions.", + SerializedName = @"advancedFilters", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IAdvancedFilter) })] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IAdvancedFilter[] FilterAdvancedFilter { get => _eventSubscriptionUpdateParametersBody.FilterAdvancedFilter ?? null /* arrayOf */; set => _eventSubscriptionUpdateParametersBody.FilterAdvancedFilter = value; } + + /// + /// Allows advanced filters to be evaluated against an array of values instead of expecting a singular value. + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Allows advanced filters to be evaluated against an array of values instead of expecting a singular value.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Allows advanced filters to be evaluated against an array of values instead of expecting a singular value.", + SerializedName = @"enableAdvancedFilteringOnArrays", + PossibleTypes = new [] { typeof(global::System.Management.Automation.SwitchParameter) })] + public global::System.Management.Automation.SwitchParameter FilterEnableAdvancedFilteringOnArray { get => _eventSubscriptionUpdateParametersBody.FilterEnableAdvancedFilteringOnArray ?? default(global::System.Management.Automation.SwitchParameter); set => _eventSubscriptionUpdateParametersBody.FilterEnableAdvancedFilteringOnArray = value; } + + /// + /// A list of applicable event types that need to be part of the event subscription. If it is desired to subscribe to all + /// default event types, set the IncludedEventTypes to null. + /// + [global::System.Management.Automation.AllowEmptyCollection] + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "A list of applicable event types that need to be part of the event subscription. If it is desired to subscribe to all default event types, set the IncludedEventTypes to null.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"A list of applicable event types that need to be part of the event subscription. If it is desired to subscribe to all default event types, set the IncludedEventTypes to null.", + SerializedName = @"includedEventTypes", + PossibleTypes = new [] { typeof(string) })] + public string[] FilterIncludedEventType { get => _eventSubscriptionUpdateParametersBody.FilterIncludedEventType ?? null /* arrayOf */; set => _eventSubscriptionUpdateParametersBody.FilterIncludedEventType = value; } + + /// + /// Specifies if the SubjectBeginsWith and SubjectEndsWith properties of the filtershould be compared in a case sensitive + /// manner. + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Specifies if the SubjectBeginsWith and SubjectEndsWith properties of the filtershould be compared in a case sensitive manner.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Specifies if the SubjectBeginsWith and SubjectEndsWith properties of the filtershould be compared in a case sensitive manner.", + SerializedName = @"isSubjectCaseSensitive", + PossibleTypes = new [] { typeof(global::System.Management.Automation.SwitchParameter) })] + public global::System.Management.Automation.SwitchParameter FilterIsSubjectCaseSensitive { get => _eventSubscriptionUpdateParametersBody.FilterIsSubjectCaseSensitive ?? default(global::System.Management.Automation.SwitchParameter); set => _eventSubscriptionUpdateParametersBody.FilterIsSubjectCaseSensitive = value; } + + /// + /// An optional string to filter events for an event subscription based on a resource path prefix.The format of this depends + /// on the publisher of the events.Wildcard characters are not supported in this path. + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "An optional string to filter events for an event subscription based on a resource path prefix.The format of this depends on the publisher of the events.Wildcard characters are not supported in this path.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"An optional string to filter events for an event subscription based on a resource path prefix.The format of this depends on the publisher of the events.Wildcard characters are not supported in this path.", + SerializedName = @"subjectBeginsWith", + PossibleTypes = new [] { typeof(string) })] + public string FilterSubjectBeginsWith { get => _eventSubscriptionUpdateParametersBody.FilterSubjectBeginsWith ?? null; set => _eventSubscriptionUpdateParametersBody.FilterSubjectBeginsWith = value; } + + /// + /// An optional string to filter events for an event subscription based on a resource path suffix.Wildcard characters are + /// not supported in this path. + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "An optional string to filter events for an event subscription based on a resource path suffix.Wildcard characters are not supported in this path.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"An optional string to filter events for an event subscription based on a resource path suffix.Wildcard characters are not supported in this path.", + SerializedName = @"subjectEndsWith", + PossibleTypes = new [] { typeof(string) })] + public string FilterSubjectEndsWith { get => _eventSubscriptionUpdateParametersBody.FilterSubjectEndsWith ?? null; set => _eventSubscriptionUpdateParametersBody.FilterSubjectEndsWith = 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.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[] HttpPipelineAppend { get; set; } + + /// SendAsync Pipeline Steps to be prepended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be prepended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[] HttpPipelinePrepend { get; set; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.IEventGridIdentity _inputObject; + + /// Identity Parameter + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Identity Parameter", ValueFromPipeline = true)] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Path)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.IEventGridIdentity InputObject { get => this._inputObject; set => this._inputObject = value; } + + /// Accessor for our copy of the InvocationInfo. + public global::System.Management.Automation.InvocationInfo InvocationInformation { get => __invocationInfo = __invocationInfo ?? this.MyInvocation ; set { __invocationInfo = value; } } + + /// List of user defined labels. + [global::System.Management.Automation.AllowEmptyCollection] + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "List of user defined labels.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"List of user defined labels.", + SerializedName = @"labels", + PossibleTypes = new [] { typeof(string) })] + public string[] Label { get => _eventSubscriptionUpdateParametersBody.Label ?? null /* arrayOf */; set => _eventSubscriptionUpdateParametersBody.Label = value; } + + /// + /// cancellation delegate. Stops the cmdlet when called. + /// + global::System.Action Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter NoWait { get; set; } + + /// + /// When specified, forces the cmdlet return a 'bool' given that there isn't a return type by default. + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Returns true when the command succeeds")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Runtime.HttpPipeline Pipeline { get; set; } + + /// The URI for the proxy server to use + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "The URI for the proxy server to use")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Uri Proxy { get; set; } + + /// Credentials for a proxy server to use for the remote call + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Credentials for a proxy server to use for the remote call")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Management.Automation.PSCredential ProxyCredential { get; set; } + + /// Use the default credentials for the proxy + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Use the default credentials for the proxy")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter ProxyUseDefaultCredentials { get; set; } + + /// Time To Live (in minutes) for events. + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Time To Live (in minutes) for events.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Time To Live (in minutes) for events.", + SerializedName = @"eventTimeToLiveInMinutes", + PossibleTypes = new [] { typeof(int) })] + public int RetryPolicyEventTimeToLiveInMinute { get => _eventSubscriptionUpdateParametersBody.RetryPolicyEventTimeToLiveInMinute ?? default(int); set => _eventSubscriptionUpdateParametersBody.RetryPolicyEventTimeToLiveInMinute = value; } + + /// Maximum number of delivery retry attempts for events. + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Maximum number of delivery retry attempts for events.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Maximum number of delivery retry attempts for events.", + SerializedName = @"maxDeliveryAttempts", + PossibleTypes = new [] { typeof(int) })] + public int RetryPolicyMaxDeliveryAttempt { get => _eventSubscriptionUpdateParametersBody.RetryPolicyMaxDeliveryAttempt ?? default(int); set => _eventSubscriptionUpdateParametersBody.RetryPolicyMaxDeliveryAttempt = value; } + + /// + /// overrideOnDefault will be called before the regular onDefault has been processed, allowing customization of what + /// happens on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// /// Determines if the rest of the onDefault method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnDefault(global::System.Net.Http.HttpResponseMessage responseMessage, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// (overrides the default BeginProcessing method in global::System.Management.Automation.PSCmdlet) + /// + protected override void BeginProcessing() + { + var telemetryId = Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.GetTelemetryId.Invoke(); + if (telemetryId != "" && telemetryId != "internal") + { + __correlationId = telemetryId; + } + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Creates a duplicate instance of this cmdlet (via JSON serialization). + /// + /// a duplicate instance of UpdateAzEventGridEventSubscription_UpdateViaIdentityExpanded + /// + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Cmdlets.UpdateAzEventGridEventSubscription_UpdateViaIdentityExpanded Clone() + { + var clone = new UpdateAzEventGridEventSubscription_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._eventSubscriptionUpdateParametersBody = this._eventSubscriptionUpdateParametersBody; + return clone; + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + + } + + /// Handles/Dispatches events during the call to the REST service. + /// The message id + /// The message cancellation token. When this call is cancelled, this should be true + /// Detailed message data for the message event. + /// + /// A that will be complete when handling of the message is completed. + /// + async global::System.Threading.Tasks.Task Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener.Signal(string id, global::System.Threading.CancellationToken token, global::System.Func messageData) + { + using( NoSynchronizationContext ) + { + if (token.IsCancellationRequested) + { + return ; + } + + switch ( id ) + { + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.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.EventGrid.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.EventGrid.Runtime.PowerShell.AsyncOperationResponse { Target = uri }); + // do nothing more. + data.Cancel(); + return; + } + } + break; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.EventData ), InvocationInformation, this.ParameterSetName, __correlationId, __processRecordId, null ); + if (token.IsCancellationRequested) + { + return ; + } + WriteDebug($"{id}: {(messageData().Message ?? global::System.String.Empty)}"); + } + } + + /// Performs execution of the command. + protected override void ProcessRecord() + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + if (ShouldProcess($"Call remote 'EventSubscriptionsUpdate' operation")) + { + if (true == MyInvocation?.BoundParameters?.ContainsKey("AsJob")) + { + var instance = this.Clone(); + var job = new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token); + } + } + } + } + catch (global::System.AggregateException aggregateException) + { + // unroll the inner exceptions to get the root cause + foreach( var innerException in aggregateException.Flatten().InnerExceptions ) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(innerException,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + } + catch (global::System.Exception exception) when ((exception as System.Management.Automation.PipelineStoppedException)== null || (exception as System.Management.Automation.PipelineStoppedException).InnerException != null) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(exception,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + finally + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletProcessRecordEnd).Wait(); + } + } + + /// Performs execution of the command, working asynchronously if required. + /// + /// A that will be complete when handling of the method is completed. + /// + protected async global::System.Threading.Tasks.Task ProcessRecordAsync() + { + using( NoSynchronizationContext ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + if (InputObject?.Id != null) + { + await this.Client.EventSubscriptionsUpdateViaIdentity(InputObject.Id, _eventSubscriptionUpdateParametersBody, onDefault, this, Pipeline); + } + else + { + // try to call with PATH parameters from Input Object + if (null == InputObject.Scope) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.Scope"),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, InputObject) ); + } + if (null == InputObject.EventSubscriptionName) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.EventSubscriptionName"),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, InputObject) ); + } + await this.Client.EventSubscriptionsUpdate(InputObject.Scope ?? null, InputObject.EventSubscriptionName ?? null, _eventSubscriptionUpdateParametersBody, onDefault, this, Pipeline); + } + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.UndeclaredResponseException urexception) + { + WriteError(new global::System.Management.Automation.ErrorRecord(urexception, urexception.StatusCode.ToString(), global::System.Management.Automation.ErrorCategory.InvalidOperation, new { body=_eventSubscriptionUpdateParametersBody}) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(urexception.Message) { RecommendedAction = urexception.Action } + }); + } + finally + { + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Cancel(); + base.StopProcessing(); + } + + /// + /// Intializes a new instance of the cmdlet class. + /// + public UpdateAzEventGridEventSubscription_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. + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onDefault(global::System.Net.Http.HttpResponseMessage responseMessage) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnDefault(responseMessage, ref _returnNow); + // if overrideOnDefault has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // Error Response : default + // Unrecognized Response. Create an error record based on what we have. + var ex = new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.RestException(responseMessage); + WriteError( new global::System.Management.Automation.ErrorRecord(ex, ex.Code, global::System.Management.Automation.ErrorCategory.InvalidOperation, new { body=_eventSubscriptionUpdateParametersBody }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(ex.Message) { RecommendedAction = ex.Action } + }); + } + } + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/cmdlets/UpdateAzEventGridPartnerConfiguration_UpdateExpanded.cs b/swaggerci/eventgrid/generated/cmdlets/UpdateAzEventGridPartnerConfiguration_UpdateExpanded.cs new file mode 100644 index 000000000000..2de6107f1da5 --- /dev/null +++ b/swaggerci/eventgrid/generated/cmdlets/UpdateAzEventGridPartnerConfiguration_UpdateExpanded.cs @@ -0,0 +1,478 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Extensions; + using System; + + /// Synchronously updates a partner configuration with the specified parameters. + /// + /// [OpenAPI] Update=>PATCH:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.EventGrid/partnerConfigurations/default" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsData.Update, @"AzEventGridPartnerConfiguration_UpdateExpanded", SupportsShouldProcess = true)] + [global::System.Management.Automation.OutputType(typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerConfiguration))] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Description(@"Synchronously updates a partner configuration with the specified parameters.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Generated] + public partial class UpdateAzEventGridPartnerConfiguration_UpdateExpanded : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener + { + /// A unique id generatd for the this cmdlet when it is instantiated. + private string __correlationId = System.Guid.NewGuid().ToString(); + + /// A copy of the Invocation Info (necessary to allow asJob to clone this cmdlet) + private global::System.Management.Automation.InvocationInfo __invocationInfo; + + /// A unique id generatd for the this cmdlet when ProcessRecord() is called. + private string __processRecordId; + + /// + /// The for this operation. + /// + private global::System.Threading.CancellationTokenSource _cancellationTokenSource = new global::System.Threading.CancellationTokenSource(); + + /// Properties of the partner configuration update. + private Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerConfigurationUpdateParameters _partnerConfigurationUpdateParametersBody = new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.PartnerConfigurationUpdateParameters(); + + /// 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.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.EventGridManagementClient Client => Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.ClientAPI; + + /// + /// The default time used to validate the maximum expiration time for each authorized partners in days. Allowed values ar + /// between 1 and 365 days. + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The default time used to validate the maximum expiration time for each authorized partners in days. Allowed values ar between 1 and 365 days.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The default time used to validate the maximum expiration time for each authorized partners in days. Allowed values ar between 1 and 365 days.", + SerializedName = @"defaultMaximumExpirationTimeInDays", + PossibleTypes = new [] { typeof(int) })] + public int DefaultMaximumExpirationTimeInDay { get => _partnerConfigurationUpdateParametersBody.DefaultMaximumExpirationTimeInDay ?? default(int); set => _partnerConfigurationUpdateParametersBody.DefaultMaximumExpirationTimeInDay = 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.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Azure)] + public global::System.Management.Automation.PSObject DefaultProfile { get; set; } + + /// SendAsync Pipeline Steps to be appended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be appended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[] HttpPipelineAppend { get; set; } + + /// SendAsync Pipeline Steps to be prepended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be prepended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[] HttpPipelinePrepend { get; set; } + + /// Accessor for our copy of the InvocationInfo. + public global::System.Management.Automation.InvocationInfo InvocationInformation { get => __invocationInfo = __invocationInfo ?? this.MyInvocation ; set { __invocationInfo = value; } } + + /// + /// cancellation delegate. Stops the cmdlet when called. + /// + global::System.Action Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter NoWait { get; set; } + + /// + /// When specified, forces the cmdlet return a 'bool' given that there isn't a return type by default. + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Returns true when the command succeeds")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Runtime.HttpPipeline Pipeline { get; set; } + + /// The URI for the proxy server to use + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "The URI for the proxy server to use")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Uri Proxy { get; set; } + + /// Credentials for a proxy server to use for the remote call + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Credentials for a proxy server to use for the remote call")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Management.Automation.PSCredential ProxyCredential { get; set; } + + /// Use the default credentials for the proxy + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Use the default credentials for the proxy")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter ProxyUseDefaultCredentials { get; set; } + + /// Backing field for property. + private string _resourceGroupName; + + /// The name of the resource group within the user's subscription. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the resource group within the user's subscription.")] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the resource group within the user's subscription.", + SerializedName = @"resourceGroupName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Path)] + public string ResourceGroupName { get => this._resourceGroupName; set => this._resourceGroupName = value; } + + /// Backing field for property. + private string _subscriptionId; + + /// + /// Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription ID forms part of the + /// URI for every service call. + /// + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.")] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.", + SerializedName = @"subscriptionId", + PossibleTypes = new [] { typeof(string) })] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.DefaultInfo( + Name = @"", + Description =@"", + Script = @"(Get-AzContext).Subscription.Id")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Path)] + public string SubscriptionId { get => this._subscriptionId; set => this._subscriptionId = value; } + + /// Tags of the partner configuration resource. + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ExportAs(typeof(global::System.Collections.Hashtable))] + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Tags of the partner configuration resource.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Tags of the partner configuration resource.", + SerializedName = @"tags", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerConfigurationUpdateParametersTags) })] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerConfigurationUpdateParametersTags Tag { get => _partnerConfigurationUpdateParametersBody.Tag ?? null /* object */; set => _partnerConfigurationUpdateParametersBody.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. + /// /// Determines if the rest of the onDefault method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnDefault(global::System.Net.Http.HttpResponseMessage responseMessage, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnOk will be called before the regular onOk has been processed, allowing customization of what happens + /// on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// 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() + { + var telemetryId = Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.GetTelemetryId.Invoke(); + if (telemetryId != "" && telemetryId != "internal") + { + __correlationId = telemetryId; + } + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Creates a duplicate instance of this cmdlet (via JSON serialization). + /// a duplicate instance of UpdateAzEventGridPartnerConfiguration_UpdateExpanded + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Cmdlets.UpdateAzEventGridPartnerConfiguration_UpdateExpanded Clone() + { + var clone = new UpdateAzEventGridPartnerConfiguration_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._partnerConfigurationUpdateParametersBody = this._partnerConfigurationUpdateParametersBody; + clone.SubscriptionId = this.SubscriptionId; + clone.ResourceGroupName = this.ResourceGroupName; + return clone; + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + + } + + /// Handles/Dispatches events during the call to the REST service. + /// The message id + /// The message cancellation token. When this call is cancelled, this should be true + /// Detailed message data for the message event. + /// + /// A that will be complete when handling of the message is completed. + /// + async global::System.Threading.Tasks.Task Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener.Signal(string id, global::System.Threading.CancellationToken token, global::System.Func messageData) + { + using( NoSynchronizationContext ) + { + if (token.IsCancellationRequested) + { + return ; + } + + switch ( id ) + { + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.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.EventGrid.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.EventGrid.Runtime.PowerShell.AsyncOperationResponse { Target = uri }); + // do nothing more. + data.Cancel(); + return; + } + } + break; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.EventData ), InvocationInformation, this.ParameterSetName, __correlationId, __processRecordId, null ); + if (token.IsCancellationRequested) + { + return ; + } + WriteDebug($"{id}: {(messageData().Message ?? global::System.String.Empty)}"); + } + } + + /// Performs execution of the command. + protected override void ProcessRecord() + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + if (ShouldProcess($"Call remote 'PartnerConfigurationsUpdate' operation")) + { + if (true == MyInvocation?.BoundParameters?.ContainsKey("AsJob")) + { + var instance = this.Clone(); + var job = new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token); + } + } + } + } + catch (global::System.AggregateException aggregateException) + { + // unroll the inner exceptions to get the root cause + foreach( var innerException in aggregateException.Flatten().InnerExceptions ) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(innerException,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + } + catch (global::System.Exception exception) when ((exception as System.Management.Automation.PipelineStoppedException)== null || (exception as System.Management.Automation.PipelineStoppedException).InnerException != null) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(exception,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + finally + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletProcessRecordEnd).Wait(); + } + } + + /// Performs execution of the command, working asynchronously if required. + /// + /// A that will be complete when handling of the method is completed. + /// + protected async global::System.Threading.Tasks.Task ProcessRecordAsync() + { + using( NoSynchronizationContext ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await this.Client.PartnerConfigurationsUpdate(SubscriptionId, ResourceGroupName, _partnerConfigurationUpdateParametersBody, onOk, onDefault, this, Pipeline); + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.UndeclaredResponseException urexception) + { + WriteError(new global::System.Management.Automation.ErrorRecord(urexception, urexception.StatusCode.ToString(), global::System.Management.Automation.ErrorCategory.InvalidOperation, new { SubscriptionId=SubscriptionId,ResourceGroupName=ResourceGroupName,body=_partnerConfigurationUpdateParametersBody}) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(urexception.Message) { RecommendedAction = urexception.Action } + }); + } + finally + { + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Cancel(); + base.StopProcessing(); + } + + /// + /// Intializes a new instance of the cmdlet class. + /// + public UpdateAzEventGridPartnerConfiguration_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. + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onDefault(global::System.Net.Http.HttpResponseMessage responseMessage) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnDefault(responseMessage, ref _returnNow); + // if overrideOnDefault has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // Error Response : default + // Unrecognized Response. Create an error record based on what we have. + var ex = new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.RestException(responseMessage); + WriteError( new global::System.Management.Automation.ErrorRecord(ex, ex.Code, global::System.Management.Automation.ErrorCategory.InvalidOperation, new { SubscriptionId=SubscriptionId, ResourceGroupName=ResourceGroupName, body=_partnerConfigurationUpdateParametersBody }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(ex.Message) { RecommendedAction = ex.Action } + }); + } + } + + /// a delegate that is called when the remote service returns 200 (OK). + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as 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.EventGrid.Models.Api20211015Preview.IPartnerConfiguration + WriteObject((await response)); + } + } + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/cmdlets/UpdateAzEventGridPartnerConfiguration_UpdateViaIdentityExpanded.cs b/swaggerci/eventgrid/generated/cmdlets/UpdateAzEventGridPartnerConfiguration_UpdateViaIdentityExpanded.cs new file mode 100644 index 000000000000..51ba01c1e385 --- /dev/null +++ b/swaggerci/eventgrid/generated/cmdlets/UpdateAzEventGridPartnerConfiguration_UpdateViaIdentityExpanded.cs @@ -0,0 +1,468 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Extensions; + using System; + + /// Synchronously updates a partner configuration with the specified parameters. + /// + /// [OpenAPI] Update=>PATCH:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.EventGrid/partnerConfigurations/default" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsData.Update, @"AzEventGridPartnerConfiguration_UpdateViaIdentityExpanded", SupportsShouldProcess = true)] + [global::System.Management.Automation.OutputType(typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerConfiguration))] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Description(@"Synchronously updates a partner configuration with the specified parameters.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Generated] + public partial class UpdateAzEventGridPartnerConfiguration_UpdateViaIdentityExpanded : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener + { + /// A unique id generatd for the this cmdlet when it is instantiated. + private string __correlationId = System.Guid.NewGuid().ToString(); + + /// A copy of the Invocation Info (necessary to allow asJob to clone this cmdlet) + private global::System.Management.Automation.InvocationInfo __invocationInfo; + + /// A unique id generatd for the this cmdlet when ProcessRecord() is called. + private string __processRecordId; + + /// + /// The for this operation. + /// + private global::System.Threading.CancellationTokenSource _cancellationTokenSource = new global::System.Threading.CancellationTokenSource(); + + /// Properties of the partner configuration update. + private Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerConfigurationUpdateParameters _partnerConfigurationUpdateParametersBody = new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.PartnerConfigurationUpdateParameters(); + + /// 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.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.EventGridManagementClient Client => Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.ClientAPI; + + /// + /// The default time used to validate the maximum expiration time for each authorized partners in days. Allowed values ar + /// between 1 and 365 days. + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The default time used to validate the maximum expiration time for each authorized partners in days. Allowed values ar between 1 and 365 days.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The default time used to validate the maximum expiration time for each authorized partners in days. Allowed values ar between 1 and 365 days.", + SerializedName = @"defaultMaximumExpirationTimeInDays", + PossibleTypes = new [] { typeof(int) })] + public int DefaultMaximumExpirationTimeInDay { get => _partnerConfigurationUpdateParametersBody.DefaultMaximumExpirationTimeInDay ?? default(int); set => _partnerConfigurationUpdateParametersBody.DefaultMaximumExpirationTimeInDay = 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.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Azure)] + public global::System.Management.Automation.PSObject DefaultProfile { get; set; } + + /// SendAsync Pipeline Steps to be appended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be appended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[] HttpPipelineAppend { get; set; } + + /// SendAsync Pipeline Steps to be prepended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be prepended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[] HttpPipelinePrepend { get; set; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.IEventGridIdentity _inputObject; + + /// Identity Parameter + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Identity Parameter", ValueFromPipeline = true)] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Path)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.IEventGridIdentity InputObject { get => this._inputObject; set => this._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.EventGrid.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter NoWait { get; set; } + + /// + /// When specified, forces the cmdlet return a 'bool' given that there isn't a return type by default. + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Returns true when the command succeeds")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Runtime.HttpPipeline Pipeline { get; set; } + + /// The URI for the proxy server to use + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "The URI for the proxy server to use")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Uri Proxy { get; set; } + + /// Credentials for a proxy server to use for the remote call + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Credentials for a proxy server to use for the remote call")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Management.Automation.PSCredential ProxyCredential { get; set; } + + /// Use the default credentials for the proxy + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Use the default credentials for the proxy")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter ProxyUseDefaultCredentials { get; set; } + + /// Tags of the partner configuration resource. + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ExportAs(typeof(global::System.Collections.Hashtable))] + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Tags of the partner configuration resource.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Tags of the partner configuration resource.", + SerializedName = @"tags", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerConfigurationUpdateParametersTags) })] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerConfigurationUpdateParametersTags Tag { get => _partnerConfigurationUpdateParametersBody.Tag ?? null /* object */; set => _partnerConfigurationUpdateParametersBody.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. + /// /// Determines if the rest of the onDefault method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnDefault(global::System.Net.Http.HttpResponseMessage responseMessage, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnOk will be called before the regular onOk has been processed, allowing customization of what happens + /// on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// 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() + { + var telemetryId = Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.GetTelemetryId.Invoke(); + if (telemetryId != "" && telemetryId != "internal") + { + __correlationId = telemetryId; + } + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Creates a duplicate instance of this cmdlet (via JSON serialization). + /// + /// a duplicate instance of UpdateAzEventGridPartnerConfiguration_UpdateViaIdentityExpanded + /// + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Cmdlets.UpdateAzEventGridPartnerConfiguration_UpdateViaIdentityExpanded Clone() + { + var clone = new UpdateAzEventGridPartnerConfiguration_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._partnerConfigurationUpdateParametersBody = this._partnerConfigurationUpdateParametersBody; + return clone; + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + + } + + /// Handles/Dispatches events during the call to the REST service. + /// The message id + /// The message cancellation token. When this call is cancelled, this should be true + /// Detailed message data for the message event. + /// + /// A that will be complete when handling of the message is completed. + /// + async global::System.Threading.Tasks.Task Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener.Signal(string id, global::System.Threading.CancellationToken token, global::System.Func messageData) + { + using( NoSynchronizationContext ) + { + if (token.IsCancellationRequested) + { + return ; + } + + switch ( id ) + { + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.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.EventGrid.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.EventGrid.Runtime.PowerShell.AsyncOperationResponse { Target = uri }); + // do nothing more. + data.Cancel(); + return; + } + } + break; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.EventData ), InvocationInformation, this.ParameterSetName, __correlationId, __processRecordId, null ); + if (token.IsCancellationRequested) + { + return ; + } + WriteDebug($"{id}: {(messageData().Message ?? global::System.String.Empty)}"); + } + } + + /// Performs execution of the command. + protected override void ProcessRecord() + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + if (ShouldProcess($"Call remote 'PartnerConfigurationsUpdate' operation")) + { + if (true == MyInvocation?.BoundParameters?.ContainsKey("AsJob")) + { + var instance = this.Clone(); + var job = new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token); + } + } + } + } + catch (global::System.AggregateException aggregateException) + { + // unroll the inner exceptions to get the root cause + foreach( var innerException in aggregateException.Flatten().InnerExceptions ) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(innerException,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + } + catch (global::System.Exception exception) when ((exception as System.Management.Automation.PipelineStoppedException)== null || (exception as System.Management.Automation.PipelineStoppedException).InnerException != null) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(exception,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + finally + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletProcessRecordEnd).Wait(); + } + } + + /// Performs execution of the command, working asynchronously if required. + /// + /// A that will be complete when handling of the method is completed. + /// + protected async global::System.Threading.Tasks.Task ProcessRecordAsync() + { + using( NoSynchronizationContext ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + if (InputObject?.Id != null) + { + await this.Client.PartnerConfigurationsUpdateViaIdentity(InputObject.Id, _partnerConfigurationUpdateParametersBody, 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) ); + } + await this.Client.PartnerConfigurationsUpdate(InputObject.SubscriptionId ?? null, InputObject.ResourceGroupName ?? null, _partnerConfigurationUpdateParametersBody, onOk, onDefault, this, Pipeline); + } + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.UndeclaredResponseException urexception) + { + WriteError(new global::System.Management.Automation.ErrorRecord(urexception, urexception.StatusCode.ToString(), global::System.Management.Automation.ErrorCategory.InvalidOperation, new { body=_partnerConfigurationUpdateParametersBody}) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(urexception.Message) { RecommendedAction = urexception.Action } + }); + } + finally + { + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Cancel(); + base.StopProcessing(); + } + + /// + /// Intializes a new instance of the cmdlet + /// class. + /// + public UpdateAzEventGridPartnerConfiguration_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. + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onDefault(global::System.Net.Http.HttpResponseMessage responseMessage) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnDefault(responseMessage, ref _returnNow); + // if overrideOnDefault has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // Error Response : default + // Unrecognized Response. Create an error record based on what we have. + var ex = new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.RestException(responseMessage); + WriteError( new global::System.Management.Automation.ErrorRecord(ex, ex.Code, global::System.Management.Automation.ErrorCategory.InvalidOperation, new { body=_partnerConfigurationUpdateParametersBody }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(ex.Message) { RecommendedAction = ex.Action } + }); + } + } + + /// a delegate that is called when the remote service returns 200 (OK). + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as 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.EventGrid.Models.Api20211015Preview.IPartnerConfiguration + WriteObject((await response)); + } + } + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/cmdlets/UpdateAzEventGridPartnerDestination_UpdateExpanded.cs b/swaggerci/eventgrid/generated/cmdlets/UpdateAzEventGridPartnerDestination_UpdateExpanded.cs new file mode 100644 index 000000000000..86825720c1fc --- /dev/null +++ b/swaggerci/eventgrid/generated/cmdlets/UpdateAzEventGridPartnerDestination_UpdateExpanded.cs @@ -0,0 +1,447 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Extensions; + using System; + + /// Asynchronously updates a partner destination with the specified parameters. + /// + /// [OpenAPI] Update=>PATCH:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.EventGrid/partnerDestinations/{partnerDestinationName}" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsData.Update, @"AzEventGridPartnerDestination_UpdateExpanded", SupportsShouldProcess = true)] + [global::System.Management.Automation.OutputType(typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerDestination))] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Description(@"Asynchronously updates a partner destination with the specified parameters.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Generated] + public partial class UpdateAzEventGridPartnerDestination_UpdateExpanded : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener + { + /// A unique id generatd for the this cmdlet when it is instantiated. + private string __correlationId = System.Guid.NewGuid().ToString(); + + /// A copy of the Invocation Info (necessary to allow asJob to clone this cmdlet) + private global::System.Management.Automation.InvocationInfo __invocationInfo; + + /// A unique id generatd for the this cmdlet when ProcessRecord() is called. + private string __processRecordId; + + /// + /// The for this operation. + /// + private global::System.Threading.CancellationTokenSource _cancellationTokenSource = new global::System.Threading.CancellationTokenSource(); + + /// Properties of the Partner Destination that can be updated. + private Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerDestinationUpdateParameters _partnerDestinationUpdateParametersBody = new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.PartnerDestinationUpdateParameters(); + + /// Wait for .NET debugger to attach + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Wait for .NET debugger to attach")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.EventGridManagementClient Client => Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.ClientAPI; + + /// + /// The credentials, account, tenant, and subscription used for communication with Azure + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The credentials, account, tenant, and subscription used for communication with Azure.")] + [global::System.Management.Automation.ValidateNotNull] + [global::System.Management.Automation.Alias("AzureRMContext", "AzureCredential")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Azure)] + public global::System.Management.Automation.PSObject DefaultProfile { get; set; } + + /// SendAsync Pipeline Steps to be appended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be appended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[] HttpPipelineAppend { get; set; } + + /// SendAsync Pipeline Steps to be prepended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be prepended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[] HttpPipelinePrepend { get; set; } + + /// Accessor for our copy of the InvocationInfo. + public global::System.Management.Automation.InvocationInfo InvocationInformation { get => __invocationInfo = __invocationInfo ?? this.MyInvocation ; set { __invocationInfo = value; } } + + /// + /// cancellation delegate. Stops the cmdlet when called. + /// + global::System.Action Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener.Token => _cancellationTokenSource.Token; + + /// Backing field for property. + private string _name; + + /// Name of the partner destination. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Name of the partner destination.")] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Name of the partner destination.", + SerializedName = @"partnerDestinationName", + PossibleTypes = new [] { typeof(string) })] + [global::System.Management.Automation.Alias("PartnerDestinationName")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Runtime.HttpPipeline Pipeline { get; set; } + + /// The URI for the proxy server to use + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "The URI for the proxy server to use")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Uri Proxy { get; set; } + + /// Credentials for a proxy server to use for the remote call + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Credentials for a proxy server to use for the remote call")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Management.Automation.PSCredential ProxyCredential { get; set; } + + /// Use the default credentials for the proxy + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Use the default credentials for the proxy")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter ProxyUseDefaultCredentials { get; set; } + + /// Backing field for property. + private string _resourceGroupName; + + /// The name of the resource group within the user's subscription. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the resource group within the user's subscription.")] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the resource group within the user's subscription.", + SerializedName = @"resourceGroupName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Path)] + public string ResourceGroupName { get => this._resourceGroupName; set => this._resourceGroupName = value; } + + /// Backing field for property. + private string _subscriptionId; + + /// + /// Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription ID forms part of the + /// URI for every service call. + /// + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.")] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.", + SerializedName = @"subscriptionId", + PossibleTypes = new [] { typeof(string) })] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.DefaultInfo( + Name = @"", + Description =@"", + Script = @"(Get-AzContext).Subscription.Id")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Path)] + public string SubscriptionId { get => this._subscriptionId; set => this._subscriptionId = value; } + + /// Tags of the Partner Destination resource. + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ExportAs(typeof(global::System.Collections.Hashtable))] + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Tags of the Partner Destination resource.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Tags of the Partner Destination resource.", + SerializedName = @"tags", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerDestinationUpdateParametersTags) })] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerDestinationUpdateParametersTags Tag { get => _partnerDestinationUpdateParametersBody.Tag ?? null /* object */; set => _partnerDestinationUpdateParametersBody.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. + /// /// Determines if the rest of the onDefault method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnDefault(global::System.Net.Http.HttpResponseMessage responseMessage, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnOk will be called before the regular onOk has been processed, allowing customization of what happens + /// on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// /// Determines if the rest of the onOk method should be processed, or if the method should return + /// immediately (set to true to skip further processing ) + + partial void overrideOnOk(global::System.Net.Http.HttpResponseMessage responseMessage, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// (overrides the default BeginProcessing method in global::System.Management.Automation.PSCmdlet) + /// + protected override void BeginProcessing() + { + var telemetryId = Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.GetTelemetryId.Invoke(); + if (telemetryId != "" && telemetryId != "internal") + { + __correlationId = telemetryId; + } + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + + } + + /// Handles/Dispatches events during the call to the REST service. + /// The message id + /// The message cancellation token. When this call is cancelled, this should be true + /// Detailed message data for the message event. + /// + /// A that will be complete when handling of the message is completed. + /// + async global::System.Threading.Tasks.Task Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener.Signal(string id, global::System.Threading.CancellationToken token, global::System.Func messageData) + { + using( NoSynchronizationContext ) + { + if (token.IsCancellationRequested) + { + return ; + } + + switch ( id ) + { + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Information: + { + var data = messageData(); + WriteInformation(data.Message, new string[]{}); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Error: + { + WriteError(new global::System.Management.Automation.ErrorRecord( new global::System.Exception(messageData().Message), string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null ) ); + return ; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.EventData ), InvocationInformation, this.ParameterSetName, __correlationId, __processRecordId, null ); + if (token.IsCancellationRequested) + { + return ; + } + WriteDebug($"{id}: {(messageData().Message ?? global::System.String.Empty)}"); + } + } + + /// Performs execution of the command. + protected override void ProcessRecord() + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + if (ShouldProcess($"Call remote 'PartnerDestinationsUpdate' operation")) + { + using( var asyncCommandRuntime = new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token); + } + } + } + catch (global::System.AggregateException aggregateException) + { + // unroll the inner exceptions to get the root cause + foreach( var innerException in aggregateException.Flatten().InnerExceptions ) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(innerException,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + } + catch (global::System.Exception exception) when ((exception as System.Management.Automation.PipelineStoppedException)== null || (exception as System.Management.Automation.PipelineStoppedException).InnerException != null) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(exception,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + finally + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletProcessRecordEnd).Wait(); + } + } + + /// Performs execution of the command, working asynchronously if required. + /// + /// A that will be complete when handling of the method is completed. + /// + protected async global::System.Threading.Tasks.Task ProcessRecordAsync() + { + using( NoSynchronizationContext ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await this.Client.PartnerDestinationsUpdate(SubscriptionId, ResourceGroupName, Name, _partnerDestinationUpdateParametersBody, onOk, onCreated, onDefault, this, Pipeline); + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.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=_partnerDestinationUpdateParametersBody}) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(urexception.Message) { RecommendedAction = urexception.Action } + }); + } + finally + { + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Cancel(); + base.StopProcessing(); + } + + /// + /// Intializes a new instance of the cmdlet class. + /// + public UpdateAzEventGridPartnerDestination_UpdateExpanded() + { + + } + + /// 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.EventGrid.Models.Api20211015Preview.IPartnerDestination + 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. + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onDefault(global::System.Net.Http.HttpResponseMessage responseMessage) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnDefault(responseMessage, ref _returnNow); + // if overrideOnDefault has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // Error Response : default + // Unrecognized Response. Create an error record based on what we have. + var ex = new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.RestException(responseMessage); + WriteError( new global::System.Management.Automation.ErrorRecord(ex, ex.Code, global::System.Management.Automation.ErrorCategory.InvalidOperation, new { SubscriptionId=SubscriptionId, ResourceGroupName=ResourceGroupName, Name=Name, body=_partnerDestinationUpdateParametersBody }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(ex.Message) { RecommendedAction = ex.Action } + }); + } + } + + /// a delegate that is called when the remote service returns 200 (OK). + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onOk(global::System.Net.Http.HttpResponseMessage responseMessage) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnOk(responseMessage, ref _returnNow); + // if overrideOnOk has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // onOk - response for 200 / + if (true == MyInvocation?.BoundParameters?.ContainsKey("PassThru")) + { + WriteObject(true); + } + } + } + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/cmdlets/UpdateAzEventGridPartnerDestination_UpdateViaIdentityExpanded.cs b/swaggerci/eventgrid/generated/cmdlets/UpdateAzEventGridPartnerDestination_UpdateViaIdentityExpanded.cs new file mode 100644 index 000000000000..4dd917c373e2 --- /dev/null +++ b/swaggerci/eventgrid/generated/cmdlets/UpdateAzEventGridPartnerDestination_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.EventGrid.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Extensions; + using System; + + /// Asynchronously updates a partner destination with the specified parameters. + /// + /// [OpenAPI] Update=>PATCH:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.EventGrid/partnerDestinations/{partnerDestinationName}" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsData.Update, @"AzEventGridPartnerDestination_UpdateViaIdentityExpanded", SupportsShouldProcess = true)] + [global::System.Management.Automation.OutputType(typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerDestination))] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Description(@"Asynchronously updates a partner destination with the specified parameters.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Generated] + public partial class UpdateAzEventGridPartnerDestination_UpdateViaIdentityExpanded : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener + { + /// A unique id generatd for the this cmdlet when it is instantiated. + private string __correlationId = System.Guid.NewGuid().ToString(); + + /// A copy of the Invocation Info (necessary to allow asJob to clone this cmdlet) + private global::System.Management.Automation.InvocationInfo __invocationInfo; + + /// A unique id generatd for the this cmdlet when ProcessRecord() is called. + private string __processRecordId; + + /// + /// The for this operation. + /// + private global::System.Threading.CancellationTokenSource _cancellationTokenSource = new global::System.Threading.CancellationTokenSource(); + + /// Properties of the Partner Destination that can be updated. + private Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerDestinationUpdateParameters _partnerDestinationUpdateParametersBody = new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.PartnerDestinationUpdateParameters(); + + /// Wait for .NET debugger to attach + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Wait for .NET debugger to attach")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.EventGridManagementClient Client => Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.ClientAPI; + + /// + /// The credentials, account, tenant, and subscription used for communication with Azure + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The credentials, account, tenant, and subscription used for communication with Azure.")] + [global::System.Management.Automation.ValidateNotNull] + [global::System.Management.Automation.Alias("AzureRMContext", "AzureCredential")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Azure)] + public global::System.Management.Automation.PSObject DefaultProfile { get; set; } + + /// SendAsync Pipeline Steps to be appended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be appended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[] HttpPipelineAppend { get; set; } + + /// SendAsync Pipeline Steps to be prepended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be prepended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[] HttpPipelinePrepend { get; set; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.IEventGridIdentity _inputObject; + + /// Identity Parameter + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Identity Parameter", ValueFromPipeline = true)] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Path)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.IEventGridIdentity InputObject { get => this._inputObject; set => this._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.EventGrid.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Runtime.HttpPipeline Pipeline { get; set; } + + /// The URI for the proxy server to use + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "The URI for the proxy server to use")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Uri Proxy { get; set; } + + /// Credentials for a proxy server to use for the remote call + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Credentials for a proxy server to use for the remote call")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Management.Automation.PSCredential ProxyCredential { get; set; } + + /// Use the default credentials for the proxy + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Use the default credentials for the proxy")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter ProxyUseDefaultCredentials { get; set; } + + /// Tags of the Partner Destination resource. + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ExportAs(typeof(global::System.Collections.Hashtable))] + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Tags of the Partner Destination resource.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Tags of the Partner Destination resource.", + SerializedName = @"tags", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerDestinationUpdateParametersTags) })] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerDestinationUpdateParametersTags Tag { get => _partnerDestinationUpdateParametersBody.Tag ?? null /* object */; set => _partnerDestinationUpdateParametersBody.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. + /// /// Determines if the rest of the onDefault method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnDefault(global::System.Net.Http.HttpResponseMessage responseMessage, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnOk will be called before the regular onOk has been processed, allowing customization of what happens + /// on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// /// Determines if the rest of the onOk method should be processed, or if the method should return + /// immediately (set to true to skip further processing ) + + partial void overrideOnOk(global::System.Net.Http.HttpResponseMessage responseMessage, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// (overrides the default BeginProcessing method in global::System.Management.Automation.PSCmdlet) + /// + protected override void BeginProcessing() + { + var telemetryId = Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.GetTelemetryId.Invoke(); + if (telemetryId != "" && telemetryId != "internal") + { + __correlationId = telemetryId; + } + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + + } + + /// Handles/Dispatches events during the call to the REST service. + /// The message id + /// The message cancellation token. When this call is cancelled, this should be true + /// Detailed message data for the message event. + /// + /// A that will be complete when handling of the message is completed. + /// + async global::System.Threading.Tasks.Task Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener.Signal(string id, global::System.Threading.CancellationToken token, global::System.Func messageData) + { + using( NoSynchronizationContext ) + { + if (token.IsCancellationRequested) + { + return ; + } + + switch ( id ) + { + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Information: + { + var data = messageData(); + WriteInformation(data.Message, new string[]{}); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Error: + { + WriteError(new global::System.Management.Automation.ErrorRecord( new global::System.Exception(messageData().Message), string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null ) ); + return ; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.EventData ), InvocationInformation, this.ParameterSetName, __correlationId, __processRecordId, null ); + if (token.IsCancellationRequested) + { + return ; + } + WriteDebug($"{id}: {(messageData().Message ?? global::System.String.Empty)}"); + } + } + + /// Performs execution of the command. + protected override void ProcessRecord() + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + if (ShouldProcess($"Call remote 'PartnerDestinationsUpdate' operation")) + { + using( var asyncCommandRuntime = new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token); + } + } + } + catch (global::System.AggregateException aggregateException) + { + // unroll the inner exceptions to get the root cause + foreach( var innerException in aggregateException.Flatten().InnerExceptions ) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(innerException,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + } + catch (global::System.Exception exception) when ((exception as System.Management.Automation.PipelineStoppedException)== null || (exception as System.Management.Automation.PipelineStoppedException).InnerException != null) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(exception,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + finally + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletProcessRecordEnd).Wait(); + } + } + + /// Performs execution of the command, working asynchronously if required. + /// + /// A that will be complete when handling of the method is completed. + /// + protected async global::System.Threading.Tasks.Task ProcessRecordAsync() + { + using( NoSynchronizationContext ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + if (InputObject?.Id != null) + { + await this.Client.PartnerDestinationsUpdateViaIdentity(InputObject.Id, _partnerDestinationUpdateParametersBody, onOk, onCreated, 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.PartnerDestinationName) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.PartnerDestinationName"),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, InputObject) ); + } + await this.Client.PartnerDestinationsUpdate(InputObject.SubscriptionId ?? null, InputObject.ResourceGroupName ?? null, InputObject.PartnerDestinationName ?? null, _partnerDestinationUpdateParametersBody, onOk, onCreated, onDefault, this, Pipeline); + } + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.UndeclaredResponseException urexception) + { + WriteError(new global::System.Management.Automation.ErrorRecord(urexception, urexception.StatusCode.ToString(), global::System.Management.Automation.ErrorCategory.InvalidOperation, new { body=_partnerDestinationUpdateParametersBody}) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(urexception.Message) { RecommendedAction = urexception.Action } + }); + } + finally + { + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Cancel(); + base.StopProcessing(); + } + + /// + /// Intializes a new instance of the cmdlet class. + /// + public UpdateAzEventGridPartnerDestination_UpdateViaIdentityExpanded() + { + + } + + /// 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.EventGrid.Models.Api20211015Preview.IPartnerDestination + 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. + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onDefault(global::System.Net.Http.HttpResponseMessage responseMessage) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnDefault(responseMessage, ref _returnNow); + // if overrideOnDefault has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // Error Response : default + // Unrecognized Response. Create an error record based on what we have. + var ex = new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.RestException(responseMessage); + WriteError( new global::System.Management.Automation.ErrorRecord(ex, ex.Code, global::System.Management.Automation.ErrorCategory.InvalidOperation, new { body=_partnerDestinationUpdateParametersBody }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(ex.Message) { RecommendedAction = ex.Action } + }); + } + } + + /// a delegate that is called when the remote service returns 200 (OK). + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onOk(global::System.Net.Http.HttpResponseMessage responseMessage) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnOk(responseMessage, ref _returnNow); + // if overrideOnOk has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // onOk - response for 200 / + if (true == MyInvocation?.BoundParameters?.ContainsKey("PassThru")) + { + WriteObject(true); + } + } + } + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/cmdlets/UpdateAzEventGridPartnerNamespace_UpdateExpanded.cs b/swaggerci/eventgrid/generated/cmdlets/UpdateAzEventGridPartnerNamespace_UpdateExpanded.cs new file mode 100644 index 000000000000..ffc3e6698df2 --- /dev/null +++ b/swaggerci/eventgrid/generated/cmdlets/UpdateAzEventGridPartnerNamespace_UpdateExpanded.cs @@ -0,0 +1,523 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Extensions; + using System; + + /// Asynchronously updates a partner namespace with the specified parameters. + /// + /// [OpenAPI] Update=>PATCH:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.EventGrid/partnerNamespaces/{partnerNamespaceName}" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsData.Update, @"AzEventGridPartnerNamespace_UpdateExpanded", SupportsShouldProcess = true)] + [global::System.Management.Automation.OutputType(typeof(bool))] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Description(@"Asynchronously updates a partner namespace with the specified parameters.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Generated] + public partial class UpdateAzEventGridPartnerNamespace_UpdateExpanded : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener + { + /// A unique id generatd for the this cmdlet when it is instantiated. + private string __correlationId = System.Guid.NewGuid().ToString(); + + /// A copy of the Invocation Info (necessary to allow asJob to clone this cmdlet) + private global::System.Management.Automation.InvocationInfo __invocationInfo; + + /// A unique id generatd for the this cmdlet when ProcessRecord() is called. + private string __processRecordId; + + /// + /// The for this operation. + /// + private global::System.Threading.CancellationTokenSource _cancellationTokenSource = new global::System.Threading.CancellationTokenSource(); + + /// Properties of the Partner Namespace update. + private Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerNamespaceUpdateParameters _partnerNamespaceUpdateParametersBody = new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.PartnerNamespaceUpdateParameters(); + + /// 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.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.EventGridManagementClient Client => Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.ClientAPI; + + /// + /// The credentials, account, tenant, and subscription used for communication with Azure + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The credentials, account, tenant, and subscription used for communication with Azure.")] + [global::System.Management.Automation.ValidateNotNull] + [global::System.Management.Automation.Alias("AzureRMContext", "AzureCredential")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Azure)] + public global::System.Management.Automation.PSObject DefaultProfile { get; set; } + + /// + /// This boolean is used to enable or disable local auth. Default value is false. When the property is set to true, only AAD + /// token will be used to authenticate if user is allowed to publish to the partner namespace. + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "This boolean is used to enable or disable local auth. Default value is false. When the property is set to true, only AAD token will be used to authenticate if user is allowed to publish to the partner namespace.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"This boolean is used to enable or disable local auth. Default value is false. When the property is set to true, only AAD token will be used to authenticate if user is allowed to publish to the partner namespace.", + SerializedName = @"disableLocalAuth", + PossibleTypes = new [] { typeof(global::System.Management.Automation.SwitchParameter) })] + public global::System.Management.Automation.SwitchParameter DisableLocalAuth { get => _partnerNamespaceUpdateParametersBody.DisableLocalAuth ?? default(global::System.Management.Automation.SwitchParameter); set => _partnerNamespaceUpdateParametersBody.DisableLocalAuth = 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.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[] HttpPipelineAppend { get; set; } + + /// SendAsync Pipeline Steps to be prepended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be prepended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[] HttpPipelinePrepend { get; set; } + + /// + /// This can be used to restrict traffic from specific IPs instead of all IPs. Note: These are considered only if PublicNetworkAccess + /// is enabled. + /// + [global::System.Management.Automation.AllowEmptyCollection] + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "This can be used to restrict traffic from specific IPs instead of all IPs. Note: These are considered only if PublicNetworkAccess is enabled.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"This can be used to restrict traffic from specific IPs instead of all IPs. Note: These are considered only if PublicNetworkAccess is enabled.", + SerializedName = @"inboundIpRules", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IInboundIPRule) })] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IInboundIPRule[] InboundIPRule { get => _partnerNamespaceUpdateParametersBody.InboundIPRule ?? null /* arrayOf */; set => _partnerNamespaceUpdateParametersBody.InboundIPRule = value; } + + /// Accessor for our copy of the InvocationInfo. + public global::System.Management.Automation.InvocationInfo InvocationInformation { get => __invocationInfo = __invocationInfo ?? this.MyInvocation ; set { __invocationInfo = value; } } + + /// + /// cancellation delegate. Stops the cmdlet when called. + /// + global::System.Action Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener.Token => _cancellationTokenSource.Token; + + /// Backing field for property. + private string _name; + + /// Name of the partner namespace. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Name of the partner namespace.")] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Name of the partner namespace.", + SerializedName = @"partnerNamespaceName", + PossibleTypes = new [] { typeof(string) })] + [global::System.Management.Automation.Alias("PartnerNamespaceName")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Path)] + public string Name { get => this._name; set => this._name = value; } + + /// + /// when specified, will make the remote call, and return an AsyncOperationResponse, letting the remote operation continue + /// asynchronously. + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Run the command asynchronously")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter NoWait { get; set; } + + /// + /// When specified, forces the cmdlet return a 'bool' given that there isn't a return type by default. + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Returns true when the command succeeds")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Runtime.HttpPipeline Pipeline { get; set; } + + /// The URI for the proxy server to use + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "The URI for the proxy server to use")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Uri Proxy { get; set; } + + /// Credentials for a proxy server to use for the remote call + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Credentials for a proxy server to use for the remote call")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Management.Automation.PSCredential ProxyCredential { get; set; } + + /// Use the default credentials for the proxy + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Use the default credentials for the proxy")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter ProxyUseDefaultCredentials { get; set; } + + /// + /// This determines if traffic is allowed over public network. By default it is enabled. You can further restrict to specific + /// IPs by configuring + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "This determines if traffic is allowed over public network. By default it is enabled. You can further restrict to specific IPs by configuring ")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"This determines if traffic is allowed over public network. By default it is enabled. You can further restrict to specific IPs by configuring ", + SerializedName = @"publicNetworkAccess", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.PublicNetworkAccess) })] + [global::System.Management.Automation.ArgumentCompleter(typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.PublicNetworkAccess))] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.PublicNetworkAccess PublicNetworkAccess { get => _partnerNamespaceUpdateParametersBody.PublicNetworkAccess ?? ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.PublicNetworkAccess)""); set => _partnerNamespaceUpdateParametersBody.PublicNetworkAccess = value; } + + /// Backing field for property. + private string _resourceGroupName; + + /// The name of the resource group within the user's subscription. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the resource group within the user's subscription.")] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the resource group within the user's subscription.", + SerializedName = @"resourceGroupName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Path)] + public string ResourceGroupName { get => this._resourceGroupName; set => this._resourceGroupName = value; } + + /// Backing field for property. + private string _subscriptionId; + + /// + /// Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription ID forms part of the + /// URI for every service call. + /// + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.")] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.", + SerializedName = @"subscriptionId", + PossibleTypes = new [] { typeof(string) })] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.DefaultInfo( + Name = @"", + Description =@"", + Script = @"(Get-AzContext).Subscription.Id")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Path)] + public string SubscriptionId { get => this._subscriptionId; set => this._subscriptionId = value; } + + /// Tags of the Partner Namespace. + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ExportAs(typeof(global::System.Collections.Hashtable))] + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Tags of the Partner Namespace.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Tags of the Partner Namespace.", + SerializedName = @"tags", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerNamespaceUpdateParametersTags) })] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerNamespaceUpdateParametersTags Tag { get => _partnerNamespaceUpdateParametersBody.Tag ?? null /* object */; set => _partnerNamespaceUpdateParametersBody.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. + /// /// Determines if the rest of the onDefault method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnDefault(global::System.Net.Http.HttpResponseMessage responseMessage, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnOk will be called before the regular onOk has been processed, allowing customization of what happens + /// on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// /// Determines if the rest of the onOk method should be processed, or if the method should return + /// immediately (set to true to skip further processing ) + + partial void overrideOnOk(global::System.Net.Http.HttpResponseMessage responseMessage, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// (overrides the default BeginProcessing method in global::System.Management.Automation.PSCmdlet) + /// + protected override void BeginProcessing() + { + var telemetryId = Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.GetTelemetryId.Invoke(); + if (telemetryId != "" && telemetryId != "internal") + { + __correlationId = telemetryId; + } + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Creates a duplicate instance of this cmdlet (via JSON serialization). + /// a duplicate instance of UpdateAzEventGridPartnerNamespace_UpdateExpanded + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Cmdlets.UpdateAzEventGridPartnerNamespace_UpdateExpanded Clone() + { + var clone = new UpdateAzEventGridPartnerNamespace_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._partnerNamespaceUpdateParametersBody = this._partnerNamespaceUpdateParametersBody; + clone.SubscriptionId = this.SubscriptionId; + clone.ResourceGroupName = this.ResourceGroupName; + clone.Name = this.Name; + return clone; + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + + } + + /// Handles/Dispatches events during the call to the REST service. + /// The message id + /// The message cancellation token. When this call is cancelled, this should be true + /// Detailed message data for the message event. + /// + /// A that will be complete when handling of the message is completed. + /// + async global::System.Threading.Tasks.Task Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener.Signal(string id, global::System.Threading.CancellationToken token, global::System.Func messageData) + { + using( NoSynchronizationContext ) + { + if (token.IsCancellationRequested) + { + return ; + } + + switch ( id ) + { + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.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.EventGrid.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.EventGrid.Runtime.PowerShell.AsyncOperationResponse { Target = uri }); + // do nothing more. + data.Cancel(); + return; + } + } + break; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.EventData ), InvocationInformation, this.ParameterSetName, __correlationId, __processRecordId, null ); + if (token.IsCancellationRequested) + { + return ; + } + WriteDebug($"{id}: {(messageData().Message ?? global::System.String.Empty)}"); + } + } + + /// Performs execution of the command. + protected override void ProcessRecord() + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + if (ShouldProcess($"Call remote 'PartnerNamespacesUpdate' operation")) + { + if (true == MyInvocation?.BoundParameters?.ContainsKey("AsJob")) + { + var instance = this.Clone(); + var job = new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token); + } + } + } + } + catch (global::System.AggregateException aggregateException) + { + // unroll the inner exceptions to get the root cause + foreach( var innerException in aggregateException.Flatten().InnerExceptions ) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(innerException,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + } + catch (global::System.Exception exception) when ((exception as System.Management.Automation.PipelineStoppedException)== null || (exception as System.Management.Automation.PipelineStoppedException).InnerException != null) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(exception,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + finally + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletProcessRecordEnd).Wait(); + } + } + + /// Performs execution of the command, working asynchronously if required. + /// + /// A that will be complete when handling of the method is completed. + /// + protected async global::System.Threading.Tasks.Task ProcessRecordAsync() + { + using( NoSynchronizationContext ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await this.Client.PartnerNamespacesUpdate(SubscriptionId, ResourceGroupName, Name, _partnerNamespaceUpdateParametersBody, onOk, onDefault, this, Pipeline); + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.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=_partnerNamespaceUpdateParametersBody}) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(urexception.Message) { RecommendedAction = urexception.Action } + }); + } + finally + { + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Cancel(); + base.StopProcessing(); + } + + /// + /// Intializes a new instance of the cmdlet class. + /// + public UpdateAzEventGridPartnerNamespace_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. + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onDefault(global::System.Net.Http.HttpResponseMessage responseMessage) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnDefault(responseMessage, ref _returnNow); + // if overrideOnDefault has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // Error Response : default + // Unrecognized Response. Create an error record based on what we have. + var ex = new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.RestException(responseMessage); + WriteError( new global::System.Management.Automation.ErrorRecord(ex, ex.Code, global::System.Management.Automation.ErrorCategory.InvalidOperation, new { SubscriptionId=SubscriptionId, ResourceGroupName=ResourceGroupName, Name=Name, body=_partnerNamespaceUpdateParametersBody }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(ex.Message) { RecommendedAction = ex.Action } + }); + } + } + + /// a delegate that is called when the remote service returns 200 (OK). + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onOk(global::System.Net.Http.HttpResponseMessage responseMessage) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnOk(responseMessage, ref _returnNow); + // if overrideOnOk has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // onOk - response for 200 / + if (true == MyInvocation?.BoundParameters?.ContainsKey("PassThru")) + { + WriteObject(true); + } + } + } + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/cmdlets/UpdateAzEventGridPartnerNamespace_UpdateViaIdentityExpanded.cs b/swaggerci/eventgrid/generated/cmdlets/UpdateAzEventGridPartnerNamespace_UpdateViaIdentityExpanded.cs new file mode 100644 index 000000000000..003d6258b12f --- /dev/null +++ b/swaggerci/eventgrid/generated/cmdlets/UpdateAzEventGridPartnerNamespace_UpdateViaIdentityExpanded.cs @@ -0,0 +1,500 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Extensions; + using System; + + /// Asynchronously updates a partner namespace with the specified parameters. + /// + /// [OpenAPI] Update=>PATCH:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.EventGrid/partnerNamespaces/{partnerNamespaceName}" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsData.Update, @"AzEventGridPartnerNamespace_UpdateViaIdentityExpanded", SupportsShouldProcess = true)] + [global::System.Management.Automation.OutputType(typeof(bool))] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Description(@"Asynchronously updates a partner namespace with the specified parameters.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Generated] + public partial class UpdateAzEventGridPartnerNamespace_UpdateViaIdentityExpanded : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener + { + /// A unique id generatd for the this cmdlet when it is instantiated. + private string __correlationId = System.Guid.NewGuid().ToString(); + + /// A copy of the Invocation Info (necessary to allow asJob to clone this cmdlet) + private global::System.Management.Automation.InvocationInfo __invocationInfo; + + /// A unique id generatd for the this cmdlet when ProcessRecord() is called. + private string __processRecordId; + + /// + /// The for this operation. + /// + private global::System.Threading.CancellationTokenSource _cancellationTokenSource = new global::System.Threading.CancellationTokenSource(); + + /// Properties of the Partner Namespace update. + private Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerNamespaceUpdateParameters _partnerNamespaceUpdateParametersBody = new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.PartnerNamespaceUpdateParameters(); + + /// 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.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.EventGridManagementClient Client => Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.ClientAPI; + + /// + /// The credentials, account, tenant, and subscription used for communication with Azure + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The credentials, account, tenant, and subscription used for communication with Azure.")] + [global::System.Management.Automation.ValidateNotNull] + [global::System.Management.Automation.Alias("AzureRMContext", "AzureCredential")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Azure)] + public global::System.Management.Automation.PSObject DefaultProfile { get; set; } + + /// + /// This boolean is used to enable or disable local auth. Default value is false. When the property is set to true, only AAD + /// token will be used to authenticate if user is allowed to publish to the partner namespace. + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "This boolean is used to enable or disable local auth. Default value is false. When the property is set to true, only AAD token will be used to authenticate if user is allowed to publish to the partner namespace.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"This boolean is used to enable or disable local auth. Default value is false. When the property is set to true, only AAD token will be used to authenticate if user is allowed to publish to the partner namespace.", + SerializedName = @"disableLocalAuth", + PossibleTypes = new [] { typeof(global::System.Management.Automation.SwitchParameter) })] + public global::System.Management.Automation.SwitchParameter DisableLocalAuth { get => _partnerNamespaceUpdateParametersBody.DisableLocalAuth ?? default(global::System.Management.Automation.SwitchParameter); set => _partnerNamespaceUpdateParametersBody.DisableLocalAuth = 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.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[] HttpPipelineAppend { get; set; } + + /// SendAsync Pipeline Steps to be prepended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be prepended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[] HttpPipelinePrepend { get; set; } + + /// + /// This can be used to restrict traffic from specific IPs instead of all IPs. Note: These are considered only if PublicNetworkAccess + /// is enabled. + /// + [global::System.Management.Automation.AllowEmptyCollection] + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "This can be used to restrict traffic from specific IPs instead of all IPs. Note: These are considered only if PublicNetworkAccess is enabled.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"This can be used to restrict traffic from specific IPs instead of all IPs. Note: These are considered only if PublicNetworkAccess is enabled.", + SerializedName = @"inboundIpRules", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IInboundIPRule) })] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IInboundIPRule[] InboundIPRule { get => _partnerNamespaceUpdateParametersBody.InboundIPRule ?? null /* arrayOf */; set => _partnerNamespaceUpdateParametersBody.InboundIPRule = value; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.IEventGridIdentity _inputObject; + + /// Identity Parameter + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Identity Parameter", ValueFromPipeline = true)] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Path)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.IEventGridIdentity InputObject { get => this._inputObject; set => this._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.EventGrid.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter NoWait { get; set; } + + /// + /// When specified, forces the cmdlet return a 'bool' given that there isn't a return type by default. + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Returns true when the command succeeds")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Runtime.HttpPipeline Pipeline { get; set; } + + /// The URI for the proxy server to use + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "The URI for the proxy server to use")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Uri Proxy { get; set; } + + /// Credentials for a proxy server to use for the remote call + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Credentials for a proxy server to use for the remote call")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Management.Automation.PSCredential ProxyCredential { get; set; } + + /// Use the default credentials for the proxy + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Use the default credentials for the proxy")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter ProxyUseDefaultCredentials { get; set; } + + /// + /// This determines if traffic is allowed over public network. By default it is enabled. You can further restrict to specific + /// IPs by configuring + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "This determines if traffic is allowed over public network. By default it is enabled. You can further restrict to specific IPs by configuring ")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"This determines if traffic is allowed over public network. By default it is enabled. You can further restrict to specific IPs by configuring ", + SerializedName = @"publicNetworkAccess", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.PublicNetworkAccess) })] + [global::System.Management.Automation.ArgumentCompleter(typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.PublicNetworkAccess))] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.PublicNetworkAccess PublicNetworkAccess { get => _partnerNamespaceUpdateParametersBody.PublicNetworkAccess ?? ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.PublicNetworkAccess)""); set => _partnerNamespaceUpdateParametersBody.PublicNetworkAccess = value; } + + /// Tags of the Partner Namespace. + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ExportAs(typeof(global::System.Collections.Hashtable))] + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Tags of the Partner Namespace.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Tags of the Partner Namespace.", + SerializedName = @"tags", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerNamespaceUpdateParametersTags) })] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerNamespaceUpdateParametersTags Tag { get => _partnerNamespaceUpdateParametersBody.Tag ?? null /* object */; set => _partnerNamespaceUpdateParametersBody.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. + /// /// Determines if the rest of the onDefault method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnDefault(global::System.Net.Http.HttpResponseMessage responseMessage, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnOk will be called before the regular onOk has been processed, allowing customization of what happens + /// on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// /// Determines if the rest of the onOk method should be processed, or if the method should return + /// immediately (set to true to skip further processing ) + + partial void overrideOnOk(global::System.Net.Http.HttpResponseMessage responseMessage, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// (overrides the default BeginProcessing method in global::System.Management.Automation.PSCmdlet) + /// + protected override void BeginProcessing() + { + var telemetryId = Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.GetTelemetryId.Invoke(); + if (telemetryId != "" && telemetryId != "internal") + { + __correlationId = telemetryId; + } + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Creates a duplicate instance of this cmdlet (via JSON serialization). + /// + /// a duplicate instance of UpdateAzEventGridPartnerNamespace_UpdateViaIdentityExpanded + /// + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Cmdlets.UpdateAzEventGridPartnerNamespace_UpdateViaIdentityExpanded Clone() + { + var clone = new UpdateAzEventGridPartnerNamespace_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._partnerNamespaceUpdateParametersBody = this._partnerNamespaceUpdateParametersBody; + return clone; + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + + } + + /// Handles/Dispatches events during the call to the REST service. + /// The message id + /// The message cancellation token. When this call is cancelled, this should be true + /// Detailed message data for the message event. + /// + /// A that will be complete when handling of the message is completed. + /// + async global::System.Threading.Tasks.Task Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener.Signal(string id, global::System.Threading.CancellationToken token, global::System.Func messageData) + { + using( NoSynchronizationContext ) + { + if (token.IsCancellationRequested) + { + return ; + } + + switch ( id ) + { + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.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.EventGrid.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.EventGrid.Runtime.PowerShell.AsyncOperationResponse { Target = uri }); + // do nothing more. + data.Cancel(); + return; + } + } + break; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.EventData ), InvocationInformation, this.ParameterSetName, __correlationId, __processRecordId, null ); + if (token.IsCancellationRequested) + { + return ; + } + WriteDebug($"{id}: {(messageData().Message ?? global::System.String.Empty)}"); + } + } + + /// Performs execution of the command. + protected override void ProcessRecord() + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + if (ShouldProcess($"Call remote 'PartnerNamespacesUpdate' operation")) + { + if (true == MyInvocation?.BoundParameters?.ContainsKey("AsJob")) + { + var instance = this.Clone(); + var job = new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token); + } + } + } + } + catch (global::System.AggregateException aggregateException) + { + // unroll the inner exceptions to get the root cause + foreach( var innerException in aggregateException.Flatten().InnerExceptions ) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(innerException,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + } + catch (global::System.Exception exception) when ((exception as System.Management.Automation.PipelineStoppedException)== null || (exception as System.Management.Automation.PipelineStoppedException).InnerException != null) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(exception,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + finally + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletProcessRecordEnd).Wait(); + } + } + + /// Performs execution of the command, working asynchronously if required. + /// + /// A that will be complete when handling of the method is completed. + /// + protected async global::System.Threading.Tasks.Task ProcessRecordAsync() + { + using( NoSynchronizationContext ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + if (InputObject?.Id != null) + { + await this.Client.PartnerNamespacesUpdateViaIdentity(InputObject.Id, _partnerNamespaceUpdateParametersBody, 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.PartnerNamespaceName) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.PartnerNamespaceName"),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, InputObject) ); + } + await this.Client.PartnerNamespacesUpdate(InputObject.SubscriptionId ?? null, InputObject.ResourceGroupName ?? null, InputObject.PartnerNamespaceName ?? null, _partnerNamespaceUpdateParametersBody, onOk, onDefault, this, Pipeline); + } + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.UndeclaredResponseException urexception) + { + WriteError(new global::System.Management.Automation.ErrorRecord(urexception, urexception.StatusCode.ToString(), global::System.Management.Automation.ErrorCategory.InvalidOperation, new { body=_partnerNamespaceUpdateParametersBody}) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(urexception.Message) { RecommendedAction = urexception.Action } + }); + } + finally + { + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Cancel(); + base.StopProcessing(); + } + + /// + /// Intializes a new instance of the cmdlet class. + /// + public UpdateAzEventGridPartnerNamespace_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. + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onDefault(global::System.Net.Http.HttpResponseMessage responseMessage) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnDefault(responseMessage, ref _returnNow); + // if overrideOnDefault has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // Error Response : default + // Unrecognized Response. Create an error record based on what we have. + var ex = new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.RestException(responseMessage); + WriteError( new global::System.Management.Automation.ErrorRecord(ex, ex.Code, global::System.Management.Automation.ErrorCategory.InvalidOperation, new { body=_partnerNamespaceUpdateParametersBody }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(ex.Message) { RecommendedAction = ex.Action } + }); + } + } + + /// a delegate that is called when the remote service returns 200 (OK). + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onOk(global::System.Net.Http.HttpResponseMessage responseMessage) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnOk(responseMessage, ref _returnNow); + // if overrideOnOk has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // onOk - response for 200 / + if (true == MyInvocation?.BoundParameters?.ContainsKey("PassThru")) + { + WriteObject(true); + } + } + } + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/cmdlets/UpdateAzEventGridPartnerRegistration_UpdateExpanded.cs b/swaggerci/eventgrid/generated/cmdlets/UpdateAzEventGridPartnerRegistration_UpdateExpanded.cs new file mode 100644 index 000000000000..985f0c00a108 --- /dev/null +++ b/swaggerci/eventgrid/generated/cmdlets/UpdateAzEventGridPartnerRegistration_UpdateExpanded.cs @@ -0,0 +1,551 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Extensions; + using System; + + /// Updates a partner registration with the specified parameters. + /// + /// [OpenAPI] Update=>PATCH:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.EventGrid/partnerRegistrations/{partnerRegistrationName}" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsData.Update, @"AzEventGridPartnerRegistration_UpdateExpanded", SupportsShouldProcess = true)] + [global::System.Management.Automation.OutputType(typeof(bool))] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Description(@"Updates a partner registration with the specified parameters.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Generated] + public partial class UpdateAzEventGridPartnerRegistration_UpdateExpanded : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener + { + /// A unique id generatd for the this cmdlet when it is instantiated. + private string __correlationId = System.Guid.NewGuid().ToString(); + + /// A copy of the Invocation Info (necessary to allow asJob to clone this cmdlet) + private global::System.Management.Automation.InvocationInfo __invocationInfo; + + /// A unique id generatd for the this cmdlet when ProcessRecord() is called. + private string __processRecordId; + + /// + /// The for this operation. + /// + private global::System.Threading.CancellationTokenSource _cancellationTokenSource = new global::System.Threading.CancellationTokenSource(); + + /// Properties of the Partner Registration update. + private Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerRegistrationUpdateParameters _partnerRegistrationUpdateParametersBody = new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.PartnerRegistrationUpdateParameters(); + + /// 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.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter AsJob { get; set; } + + /// + /// List of IDs of Azure AD applications that are authorized to create a partner namespaceassociated with this partner registration. + /// This is an optional property. Creatingpartner namespaces is always permitted under the same Azure subscription as the + /// one usedfor creating the partner registration. + /// + [global::System.Management.Automation.AllowEmptyCollection] + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "List of IDs of Azure AD applications that are authorized to create a partner namespaceassociated with this partner registration. This is an optional property. Creatingpartner namespaces is always permitted under the same Azure subscription as the one usedfor creating the partner registration.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"List of IDs of Azure AD applications that are authorized to create a partner namespaceassociated with this partner registration. This is an optional property. Creatingpartner namespaces is always permitted under the same Azure subscription as the one usedfor creating the partner registration.", + SerializedName = @"authorizedAzureSubscriptionIds", + PossibleTypes = new [] { typeof(string) })] + public string[] AuthorizedAzureSubscriptionId { get => _partnerRegistrationUpdateParametersBody.AuthorizedAzureSubscriptionId ?? null /* arrayOf */; set => _partnerRegistrationUpdateParametersBody.AuthorizedAzureSubscriptionId = 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.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.EventGridManagementClient Client => Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.ClientAPI; + + /// + /// The credentials, account, tenant, and subscription used for communication with Azure + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The credentials, account, tenant, and subscription used for communication with Azure.")] + [global::System.Management.Automation.ValidateNotNull] + [global::System.Management.Automation.Alias("AzureRMContext", "AzureCredential")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Azure)] + public global::System.Management.Automation.PSObject DefaultProfile { get; set; } + + /// SendAsync Pipeline Steps to be appended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be appended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[] HttpPipelineAppend { get; set; } + + /// SendAsync Pipeline Steps to be prepended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be prepended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[] HttpPipelinePrepend { get; set; } + + /// Accessor for our copy of the InvocationInfo. + public global::System.Management.Automation.InvocationInfo InvocationInformation { get => __invocationInfo = __invocationInfo ?? this.MyInvocation ; set { __invocationInfo = value; } } + + /// URI of the partner logo. + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "URI of the partner logo.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"URI of the partner logo.", + SerializedName = @"logoUri", + PossibleTypes = new [] { typeof(string) })] + public string LogoUri { get => _partnerRegistrationUpdateParametersBody.LogoUri ?? null; set => _partnerRegistrationUpdateParametersBody.LogoUri = value; } + + /// + /// cancellation delegate. Stops the cmdlet when called. + /// + global::System.Action Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener.Token => _cancellationTokenSource.Token; + + /// Backing field for property. + private string _name; + + /// Name of the partner registration. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Name of the partner registration.")] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Name of the partner registration.", + SerializedName = @"partnerRegistrationName", + PossibleTypes = new [] { typeof(string) })] + [global::System.Management.Automation.Alias("PartnerRegistrationName")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Path)] + public string Name { get => this._name; set => this._name = value; } + + /// + /// when specified, will make the remote call, and return an AsyncOperationResponse, letting the remote operation continue + /// asynchronously. + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Run the command asynchronously")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter NoWait { get; set; } + + /// Description of the partner topic type. + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Description of the partner topic type.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Description of the partner topic type.", + SerializedName = @"partnerTopicTypeDescription", + PossibleTypes = new [] { typeof(string) })] + public string PartnerTopicTypeDescription { get => _partnerRegistrationUpdateParametersBody.PartnerTopicTypeDescription ?? null; set => _partnerRegistrationUpdateParametersBody.PartnerTopicTypeDescription = value; } + + /// Display name of the partner topic type. + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Display name of the partner topic type.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Display name of the partner topic type.", + SerializedName = @"partnerTopicTypeDisplayName", + PossibleTypes = new [] { typeof(string) })] + public string PartnerTopicTypeDisplayName { get => _partnerRegistrationUpdateParametersBody.PartnerTopicTypeDisplayName ?? null; set => _partnerRegistrationUpdateParametersBody.PartnerTopicTypeDisplayName = value; } + + /// Name of the partner topic type. + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Name of the partner topic type.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Name of the partner topic type.", + SerializedName = @"partnerTopicTypeName", + PossibleTypes = new [] { typeof(string) })] + public string PartnerTopicTypeName { get => _partnerRegistrationUpdateParametersBody.PartnerTopicTypeName ?? null; set => _partnerRegistrationUpdateParametersBody.PartnerTopicTypeName = 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.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Runtime.HttpPipeline Pipeline { get; set; } + + /// The URI for the proxy server to use + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "The URI for the proxy server to use")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Uri Proxy { get; set; } + + /// Credentials for a proxy server to use for the remote call + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Credentials for a proxy server to use for the remote call")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Management.Automation.PSCredential ProxyCredential { get; set; } + + /// Use the default credentials for the proxy + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Use the default credentials for the proxy")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter ProxyUseDefaultCredentials { get; set; } + + /// Backing field for property. + private string _resourceGroupName; + + /// The name of the resource group within the user's subscription. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the resource group within the user's subscription.")] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the resource group within the user's subscription.", + SerializedName = @"resourceGroupName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Path)] + public string ResourceGroupName { get => this._resourceGroupName; set => this._resourceGroupName = value; } + + /// + /// URI of the partner website that can be used by Azure customers to setup Event Gridintegration on an event source. + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "URI of the partner website that can be used by Azure customers to setup Event Gridintegration on an event source.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"URI of the partner website that can be used by Azure customers to setup Event Gridintegration on an event source.", + SerializedName = @"setupUri", + PossibleTypes = new [] { typeof(string) })] + public string SetupUri { get => _partnerRegistrationUpdateParametersBody.SetupUri ?? null; set => _partnerRegistrationUpdateParametersBody.SetupUri = value; } + + /// Backing field for property. + private string _subscriptionId; + + /// + /// Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription ID forms part of the + /// URI for every service call. + /// + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.")] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.", + SerializedName = @"subscriptionId", + PossibleTypes = new [] { typeof(string) })] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.DefaultInfo( + Name = @"", + Description =@"", + Script = @"(Get-AzContext).Subscription.Id")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Path)] + public string SubscriptionId { get => this._subscriptionId; set => this._subscriptionId = value; } + + /// Tags of the partner registration resource. + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ExportAs(typeof(global::System.Collections.Hashtable))] + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Tags of the partner registration resource.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Tags of the partner registration resource.", + SerializedName = @"tags", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerRegistrationUpdateParametersTags) })] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerRegistrationUpdateParametersTags Tag { get => _partnerRegistrationUpdateParametersBody.Tag ?? null /* object */; set => _partnerRegistrationUpdateParametersBody.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. + /// /// Determines if the rest of the onDefault method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnDefault(global::System.Net.Http.HttpResponseMessage responseMessage, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnOk will be called before the regular onOk has been processed, allowing customization of what happens + /// on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// /// Determines if the rest of the onOk method should be processed, or if the method should return + /// immediately (set to true to skip further processing ) + + partial void overrideOnOk(global::System.Net.Http.HttpResponseMessage responseMessage, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// (overrides the default BeginProcessing method in global::System.Management.Automation.PSCmdlet) + /// + protected override void BeginProcessing() + { + var telemetryId = Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.GetTelemetryId.Invoke(); + if (telemetryId != "" && telemetryId != "internal") + { + __correlationId = telemetryId; + } + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Creates a duplicate instance of this cmdlet (via JSON serialization). + /// a duplicate instance of UpdateAzEventGridPartnerRegistration_UpdateExpanded + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Cmdlets.UpdateAzEventGridPartnerRegistration_UpdateExpanded Clone() + { + var clone = new UpdateAzEventGridPartnerRegistration_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._partnerRegistrationUpdateParametersBody = this._partnerRegistrationUpdateParametersBody; + clone.SubscriptionId = this.SubscriptionId; + clone.ResourceGroupName = this.ResourceGroupName; + clone.Name = this.Name; + return clone; + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + + } + + /// Handles/Dispatches events during the call to the REST service. + /// The message id + /// The message cancellation token. When this call is cancelled, this should be true + /// Detailed message data for the message event. + /// + /// A that will be complete when handling of the message is completed. + /// + async global::System.Threading.Tasks.Task Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener.Signal(string id, global::System.Threading.CancellationToken token, global::System.Func messageData) + { + using( NoSynchronizationContext ) + { + if (token.IsCancellationRequested) + { + return ; + } + + switch ( id ) + { + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.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.EventGrid.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.EventGrid.Runtime.PowerShell.AsyncOperationResponse { Target = uri }); + // do nothing more. + data.Cancel(); + return; + } + } + break; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.EventData ), InvocationInformation, this.ParameterSetName, __correlationId, __processRecordId, null ); + if (token.IsCancellationRequested) + { + return ; + } + WriteDebug($"{id}: {(messageData().Message ?? global::System.String.Empty)}"); + } + } + + /// Performs execution of the command. + protected override void ProcessRecord() + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + if (ShouldProcess($"Call remote 'PartnerRegistrationsUpdate' operation")) + { + if (true == MyInvocation?.BoundParameters?.ContainsKey("AsJob")) + { + var instance = this.Clone(); + var job = new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token); + } + } + } + } + catch (global::System.AggregateException aggregateException) + { + // unroll the inner exceptions to get the root cause + foreach( var innerException in aggregateException.Flatten().InnerExceptions ) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(innerException,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + } + catch (global::System.Exception exception) when ((exception as System.Management.Automation.PipelineStoppedException)== null || (exception as System.Management.Automation.PipelineStoppedException).InnerException != null) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(exception,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + finally + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletProcessRecordEnd).Wait(); + } + } + + /// Performs execution of the command, working asynchronously if required. + /// + /// A that will be complete when handling of the method is completed. + /// + protected async global::System.Threading.Tasks.Task ProcessRecordAsync() + { + using( NoSynchronizationContext ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await this.Client.PartnerRegistrationsUpdate(SubscriptionId, ResourceGroupName, Name, _partnerRegistrationUpdateParametersBody, onOk, onDefault, this, Pipeline); + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.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=_partnerRegistrationUpdateParametersBody}) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(urexception.Message) { RecommendedAction = urexception.Action } + }); + } + finally + { + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Cancel(); + base.StopProcessing(); + } + + /// + /// Intializes a new instance of the cmdlet class. + /// + public UpdateAzEventGridPartnerRegistration_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. + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onDefault(global::System.Net.Http.HttpResponseMessage responseMessage) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnDefault(responseMessage, ref _returnNow); + // if overrideOnDefault has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // Error Response : default + // Unrecognized Response. Create an error record based on what we have. + var ex = new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.RestException(responseMessage); + WriteError( new global::System.Management.Automation.ErrorRecord(ex, ex.Code, global::System.Management.Automation.ErrorCategory.InvalidOperation, new { SubscriptionId=SubscriptionId, ResourceGroupName=ResourceGroupName, Name=Name, body=_partnerRegistrationUpdateParametersBody }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(ex.Message) { RecommendedAction = ex.Action } + }); + } + } + + /// a delegate that is called when the remote service returns 200 (OK). + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onOk(global::System.Net.Http.HttpResponseMessage responseMessage) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnOk(responseMessage, ref _returnNow); + // if overrideOnOk has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // onOk - response for 200 / + if (true == MyInvocation?.BoundParameters?.ContainsKey("PassThru")) + { + WriteObject(true); + } + } + } + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/cmdlets/UpdateAzEventGridPartnerRegistration_UpdateViaIdentityExpanded.cs b/swaggerci/eventgrid/generated/cmdlets/UpdateAzEventGridPartnerRegistration_UpdateViaIdentityExpanded.cs new file mode 100644 index 000000000000..e50d161c72aa --- /dev/null +++ b/swaggerci/eventgrid/generated/cmdlets/UpdateAzEventGridPartnerRegistration_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.EventGrid.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Extensions; + using System; + + /// Updates a partner registration with the specified parameters. + /// + /// [OpenAPI] Update=>PATCH:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.EventGrid/partnerRegistrations/{partnerRegistrationName}" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsData.Update, @"AzEventGridPartnerRegistration_UpdateViaIdentityExpanded", SupportsShouldProcess = true)] + [global::System.Management.Automation.OutputType(typeof(bool))] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Description(@"Updates a partner registration with the specified parameters.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Generated] + public partial class UpdateAzEventGridPartnerRegistration_UpdateViaIdentityExpanded : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener + { + /// A unique id generatd for the this cmdlet when it is instantiated. + private string __correlationId = System.Guid.NewGuid().ToString(); + + /// A copy of the Invocation Info (necessary to allow asJob to clone this cmdlet) + private global::System.Management.Automation.InvocationInfo __invocationInfo; + + /// A unique id generatd for the this cmdlet when ProcessRecord() is called. + private string __processRecordId; + + /// + /// The for this operation. + /// + private global::System.Threading.CancellationTokenSource _cancellationTokenSource = new global::System.Threading.CancellationTokenSource(); + + /// Properties of the Partner Registration update. + private Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerRegistrationUpdateParameters _partnerRegistrationUpdateParametersBody = new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.PartnerRegistrationUpdateParameters(); + + /// 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.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter AsJob { get; set; } + + /// + /// List of IDs of Azure AD applications that are authorized to create a partner namespaceassociated with this partner registration. + /// This is an optional property. Creatingpartner namespaces is always permitted under the same Azure subscription as the + /// one usedfor creating the partner registration. + /// + [global::System.Management.Automation.AllowEmptyCollection] + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "List of IDs of Azure AD applications that are authorized to create a partner namespaceassociated with this partner registration. This is an optional property. Creatingpartner namespaces is always permitted under the same Azure subscription as the one usedfor creating the partner registration.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"List of IDs of Azure AD applications that are authorized to create a partner namespaceassociated with this partner registration. This is an optional property. Creatingpartner namespaces is always permitted under the same Azure subscription as the one usedfor creating the partner registration.", + SerializedName = @"authorizedAzureSubscriptionIds", + PossibleTypes = new [] { typeof(string) })] + public string[] AuthorizedAzureSubscriptionId { get => _partnerRegistrationUpdateParametersBody.AuthorizedAzureSubscriptionId ?? null /* arrayOf */; set => _partnerRegistrationUpdateParametersBody.AuthorizedAzureSubscriptionId = 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.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.EventGridManagementClient Client => Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.ClientAPI; + + /// + /// The credentials, account, tenant, and subscription used for communication with Azure + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The credentials, account, tenant, and subscription used for communication with Azure.")] + [global::System.Management.Automation.ValidateNotNull] + [global::System.Management.Automation.Alias("AzureRMContext", "AzureCredential")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Azure)] + public global::System.Management.Automation.PSObject DefaultProfile { get; set; } + + /// SendAsync Pipeline Steps to be appended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be appended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[] HttpPipelineAppend { get; set; } + + /// SendAsync Pipeline Steps to be prepended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be prepended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[] HttpPipelinePrepend { get; set; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.IEventGridIdentity _inputObject; + + /// Identity Parameter + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Identity Parameter", ValueFromPipeline = true)] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Path)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.IEventGridIdentity InputObject { get => this._inputObject; set => this._inputObject = value; } + + /// Accessor for our copy of the InvocationInfo. + public global::System.Management.Automation.InvocationInfo InvocationInformation { get => __invocationInfo = __invocationInfo ?? this.MyInvocation ; set { __invocationInfo = value; } } + + /// URI of the partner logo. + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "URI of the partner logo.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"URI of the partner logo.", + SerializedName = @"logoUri", + PossibleTypes = new [] { typeof(string) })] + public string LogoUri { get => _partnerRegistrationUpdateParametersBody.LogoUri ?? null; set => _partnerRegistrationUpdateParametersBody.LogoUri = value; } + + /// + /// cancellation delegate. Stops the cmdlet when called. + /// + global::System.Action Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter NoWait { get; set; } + + /// Description of the partner topic type. + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Description of the partner topic type.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Description of the partner topic type.", + SerializedName = @"partnerTopicTypeDescription", + PossibleTypes = new [] { typeof(string) })] + public string PartnerTopicTypeDescription { get => _partnerRegistrationUpdateParametersBody.PartnerTopicTypeDescription ?? null; set => _partnerRegistrationUpdateParametersBody.PartnerTopicTypeDescription = value; } + + /// Display name of the partner topic type. + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Display name of the partner topic type.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Display name of the partner topic type.", + SerializedName = @"partnerTopicTypeDisplayName", + PossibleTypes = new [] { typeof(string) })] + public string PartnerTopicTypeDisplayName { get => _partnerRegistrationUpdateParametersBody.PartnerTopicTypeDisplayName ?? null; set => _partnerRegistrationUpdateParametersBody.PartnerTopicTypeDisplayName = value; } + + /// Name of the partner topic type. + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Name of the partner topic type.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Name of the partner topic type.", + SerializedName = @"partnerTopicTypeName", + PossibleTypes = new [] { typeof(string) })] + public string PartnerTopicTypeName { get => _partnerRegistrationUpdateParametersBody.PartnerTopicTypeName ?? null; set => _partnerRegistrationUpdateParametersBody.PartnerTopicTypeName = 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.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Runtime.HttpPipeline Pipeline { get; set; } + + /// The URI for the proxy server to use + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "The URI for the proxy server to use")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Uri Proxy { get; set; } + + /// Credentials for a proxy server to use for the remote call + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Credentials for a proxy server to use for the remote call")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Management.Automation.PSCredential ProxyCredential { get; set; } + + /// Use the default credentials for the proxy + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Use the default credentials for the proxy")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter ProxyUseDefaultCredentials { get; set; } + + /// + /// URI of the partner website that can be used by Azure customers to setup Event Gridintegration on an event source. + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "URI of the partner website that can be used by Azure customers to setup Event Gridintegration on an event source.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"URI of the partner website that can be used by Azure customers to setup Event Gridintegration on an event source.", + SerializedName = @"setupUri", + PossibleTypes = new [] { typeof(string) })] + public string SetupUri { get => _partnerRegistrationUpdateParametersBody.SetupUri ?? null; set => _partnerRegistrationUpdateParametersBody.SetupUri = value; } + + /// Tags of the partner registration resource. + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ExportAs(typeof(global::System.Collections.Hashtable))] + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Tags of the partner registration resource.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Tags of the partner registration resource.", + SerializedName = @"tags", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerRegistrationUpdateParametersTags) })] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerRegistrationUpdateParametersTags Tag { get => _partnerRegistrationUpdateParametersBody.Tag ?? null /* object */; set => _partnerRegistrationUpdateParametersBody.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. + /// /// Determines if the rest of the onDefault method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnDefault(global::System.Net.Http.HttpResponseMessage responseMessage, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnOk will be called before the regular onOk has been processed, allowing customization of what happens + /// on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// /// Determines if the rest of the onOk method should be processed, or if the method should return + /// immediately (set to true to skip further processing ) + + partial void overrideOnOk(global::System.Net.Http.HttpResponseMessage responseMessage, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// (overrides the default BeginProcessing method in global::System.Management.Automation.PSCmdlet) + /// + protected override void BeginProcessing() + { + var telemetryId = Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.GetTelemetryId.Invoke(); + if (telemetryId != "" && telemetryId != "internal") + { + __correlationId = telemetryId; + } + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Creates a duplicate instance of this cmdlet (via JSON serialization). + /// + /// a duplicate instance of UpdateAzEventGridPartnerRegistration_UpdateViaIdentityExpanded + /// + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Cmdlets.UpdateAzEventGridPartnerRegistration_UpdateViaIdentityExpanded Clone() + { + var clone = new UpdateAzEventGridPartnerRegistration_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._partnerRegistrationUpdateParametersBody = this._partnerRegistrationUpdateParametersBody; + return clone; + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + + } + + /// Handles/Dispatches events during the call to the REST service. + /// The message id + /// The message cancellation token. When this call is cancelled, this should be true + /// Detailed message data for the message event. + /// + /// A that will be complete when handling of the message is completed. + /// + async global::System.Threading.Tasks.Task Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener.Signal(string id, global::System.Threading.CancellationToken token, global::System.Func messageData) + { + using( NoSynchronizationContext ) + { + if (token.IsCancellationRequested) + { + return ; + } + + switch ( id ) + { + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.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.EventGrid.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.EventGrid.Runtime.PowerShell.AsyncOperationResponse { Target = uri }); + // do nothing more. + data.Cancel(); + return; + } + } + break; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.EventData ), InvocationInformation, this.ParameterSetName, __correlationId, __processRecordId, null ); + if (token.IsCancellationRequested) + { + return ; + } + WriteDebug($"{id}: {(messageData().Message ?? global::System.String.Empty)}"); + } + } + + /// Performs execution of the command. + protected override void ProcessRecord() + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + if (ShouldProcess($"Call remote 'PartnerRegistrationsUpdate' operation")) + { + if (true == MyInvocation?.BoundParameters?.ContainsKey("AsJob")) + { + var instance = this.Clone(); + var job = new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token); + } + } + } + } + catch (global::System.AggregateException aggregateException) + { + // unroll the inner exceptions to get the root cause + foreach( var innerException in aggregateException.Flatten().InnerExceptions ) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(innerException,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + } + catch (global::System.Exception exception) when ((exception as System.Management.Automation.PipelineStoppedException)== null || (exception as System.Management.Automation.PipelineStoppedException).InnerException != null) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(exception,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + finally + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletProcessRecordEnd).Wait(); + } + } + + /// Performs execution of the command, working asynchronously if required. + /// + /// A that will be complete when handling of the method is completed. + /// + protected async global::System.Threading.Tasks.Task ProcessRecordAsync() + { + using( NoSynchronizationContext ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + if (InputObject?.Id != null) + { + await this.Client.PartnerRegistrationsUpdateViaIdentity(InputObject.Id, _partnerRegistrationUpdateParametersBody, 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.PartnerRegistrationName) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.PartnerRegistrationName"),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, InputObject) ); + } + await this.Client.PartnerRegistrationsUpdate(InputObject.SubscriptionId ?? null, InputObject.ResourceGroupName ?? null, InputObject.PartnerRegistrationName ?? null, _partnerRegistrationUpdateParametersBody, onOk, onDefault, this, Pipeline); + } + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.UndeclaredResponseException urexception) + { + WriteError(new global::System.Management.Automation.ErrorRecord(urexception, urexception.StatusCode.ToString(), global::System.Management.Automation.ErrorCategory.InvalidOperation, new { body=_partnerRegistrationUpdateParametersBody}) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(urexception.Message) { RecommendedAction = urexception.Action } + }); + } + finally + { + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Cancel(); + base.StopProcessing(); + } + + /// + /// Intializes a new instance of the cmdlet + /// class. + /// + public UpdateAzEventGridPartnerRegistration_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. + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onDefault(global::System.Net.Http.HttpResponseMessage responseMessage) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnDefault(responseMessage, ref _returnNow); + // if overrideOnDefault has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // Error Response : default + // Unrecognized Response. Create an error record based on what we have. + var ex = new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.RestException(responseMessage); + WriteError( new global::System.Management.Automation.ErrorRecord(ex, ex.Code, global::System.Management.Automation.ErrorCategory.InvalidOperation, new { body=_partnerRegistrationUpdateParametersBody }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(ex.Message) { RecommendedAction = ex.Action } + }); + } + } + + /// a delegate that is called when the remote service returns 200 (OK). + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onOk(global::System.Net.Http.HttpResponseMessage responseMessage) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnOk(responseMessage, ref _returnNow); + // if overrideOnOk has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // onOk - response for 200 / + if (true == MyInvocation?.BoundParameters?.ContainsKey("PassThru")) + { + WriteObject(true); + } + } + } + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/cmdlets/UpdateAzEventGridPartnerTopicEventSubscription_UpdateExpanded.cs b/swaggerci/eventgrid/generated/cmdlets/UpdateAzEventGridPartnerTopicEventSubscription_UpdateExpanded.cs new file mode 100644 index 000000000000..5ae406d7b4d7 --- /dev/null +++ b/swaggerci/eventgrid/generated/cmdlets/UpdateAzEventGridPartnerTopicEventSubscription_UpdateExpanded.cs @@ -0,0 +1,666 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Extensions; + using System; + + /// Update an existing event subscription of a partner topic. + /// + /// [OpenAPI] Update=>PATCH:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.EventGrid/partnerTopics/{partnerTopicName}/eventSubscriptions/{eventSubscriptionName}" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsData.Update, @"AzEventGridPartnerTopicEventSubscription_UpdateExpanded", SupportsShouldProcess = true)] + [global::System.Management.Automation.OutputType(typeof(bool))] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Description(@"Update an existing event subscription of a partner topic.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Generated] + public partial class UpdateAzEventGridPartnerTopicEventSubscription_UpdateExpanded : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener + { + /// A unique id generatd for the this cmdlet when it is instantiated. + private string __correlationId = System.Guid.NewGuid().ToString(); + + /// A copy of the Invocation Info (necessary to allow asJob to clone this cmdlet) + private global::System.Management.Automation.InvocationInfo __invocationInfo; + + /// A unique id generatd for the this cmdlet when ProcessRecord() is called. + private string __processRecordId; + + /// + /// The for this operation. + /// + private global::System.Threading.CancellationTokenSource _cancellationTokenSource = new global::System.Threading.CancellationTokenSource(); + + /// Properties of the Event Subscription update. + private Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionUpdateParameters _eventSubscriptionUpdateParametersBody = new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.EventSubscriptionUpdateParameters(); + + /// 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.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.EventGridManagementClient Client => Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.ClientAPI; + + /// + /// The type of managed identity used. The type 'SystemAssigned, UserAssigned' includes both an implicitly created identity + /// and a set of user-assigned identities. The type 'None' will remove any identity. + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The type of managed identity used. The type 'SystemAssigned, UserAssigned' includes both an implicitly created identity and a set of user-assigned identities. The type 'None' will remove any identity.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The type of managed identity used. The type 'SystemAssigned, UserAssigned' includes both an implicitly created identity and a set of user-assigned identities. The type 'None' will remove any identity.", + SerializedName = @"type", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EventSubscriptionIdentityType) })] + [global::System.Management.Automation.ArgumentCompleter(typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EventSubscriptionIdentityType))] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EventSubscriptionIdentityType DeadLetterWithResourceIdentityType { get => _eventSubscriptionUpdateParametersBody.DeadLetterWithResourceIdentityType ?? ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EventSubscriptionIdentityType)""); set => _eventSubscriptionUpdateParametersBody.DeadLetterWithResourceIdentityType = value; } + + /// The user identity associated with the resource. + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The user identity associated with the resource.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The user identity associated with the resource.", + SerializedName = @"userAssignedIdentity", + PossibleTypes = new [] { typeof(string) })] + public string DeadLetterWithResourceIdentityUserAssignedIdentity { get => _eventSubscriptionUpdateParametersBody.DeadLetterWithResourceIdentityUserAssignedIdentity ?? null; set => _eventSubscriptionUpdateParametersBody.DeadLetterWithResourceIdentityUserAssignedIdentity = 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.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Azure)] + public global::System.Management.Automation.PSObject DefaultProfile { get; set; } + + /// Type of the endpoint for the event subscription destination. + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Type of the endpoint for the event subscription destination.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Type of the endpoint for the event subscription destination.", + SerializedName = @"endpointType", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EndpointType) })] + [global::System.Management.Automation.ArgumentCompleter(typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EndpointType))] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EndpointType DeliveryWithResourceIdentityDestinationEndpointType { get => _eventSubscriptionUpdateParametersBody.DeliveryWithResourceIdentityDestinationEndpointType ?? ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EndpointType)""); set => _eventSubscriptionUpdateParametersBody.DeliveryWithResourceIdentityDestinationEndpointType = value; } + + /// + /// The type of managed identity used. The type 'SystemAssigned, UserAssigned' includes both an implicitly created identity + /// and a set of user-assigned identities. The type 'None' will remove any identity. + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The type of managed identity used. The type 'SystemAssigned, UserAssigned' includes both an implicitly created identity and a set of user-assigned identities. The type 'None' will remove any identity.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The type of managed identity used. The type 'SystemAssigned, UserAssigned' includes both an implicitly created identity and a set of user-assigned identities. The type 'None' will remove any identity.", + SerializedName = @"type", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EventSubscriptionIdentityType) })] + [global::System.Management.Automation.ArgumentCompleter(typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EventSubscriptionIdentityType))] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EventSubscriptionIdentityType DeliveryWithResourceIdentityType { get => _eventSubscriptionUpdateParametersBody.DeliveryWithResourceIdentityType ?? ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EventSubscriptionIdentityType)""); set => _eventSubscriptionUpdateParametersBody.DeliveryWithResourceIdentityType = value; } + + /// The user identity associated with the resource. + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The user identity associated with the resource.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The user identity associated with the resource.", + SerializedName = @"userAssignedIdentity", + PossibleTypes = new [] { typeof(string) })] + public string DeliveryWithResourceIdentityUserAssignedIdentity { get => _eventSubscriptionUpdateParametersBody.DeliveryWithResourceIdentityUserAssignedIdentity ?? null; set => _eventSubscriptionUpdateParametersBody.DeliveryWithResourceIdentityUserAssignedIdentity = value; } + + /// Type of the endpoint for the event subscription destination. + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Type of the endpoint for the event subscription destination.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Type of the endpoint for the event subscription destination.", + SerializedName = @"endpointType", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EndpointType) })] + [global::System.Management.Automation.ArgumentCompleter(typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EndpointType))] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EndpointType EndpointType { get => _eventSubscriptionUpdateParametersBody.EndpointType ?? ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EndpointType)""); set => _eventSubscriptionUpdateParametersBody.EndpointType = value; } + + /// The event delivery schema for the event subscription. + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The event delivery schema for the event subscription.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The event delivery schema for the event subscription.", + SerializedName = @"eventDeliverySchema", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EventDeliverySchema) })] + [global::System.Management.Automation.ArgumentCompleter(typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EventDeliverySchema))] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EventDeliverySchema EventDeliverySchema { get => _eventSubscriptionUpdateParametersBody.EventDeliverySchema ?? ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EventDeliverySchema)""); set => _eventSubscriptionUpdateParametersBody.EventDeliverySchema = value; } + + /// Backing field for property. + private string _eventSubscriptionName; + + /// + /// Name of the event subscription to be created. Event subscription names must be between 3 and 100 characters in length + /// and use alphanumeric letters only. + /// + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Name of the event subscription to be created. Event subscription names must be between 3 and 100 characters in length and use alphanumeric letters only.")] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Name of the event subscription to be created. Event subscription names must be between 3 and 100 characters in length and use alphanumeric letters only.", + SerializedName = @"eventSubscriptionName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Path)] + public string EventSubscriptionName { get => this._eventSubscriptionName; set => this._eventSubscriptionName = value; } + + /// Information about the expiration time for the event subscription. + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Information about the expiration time for the event subscription.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Information about the expiration time for the event subscription.", + SerializedName = @"expirationTimeUtc", + PossibleTypes = new [] { typeof(global::System.DateTime) })] + public global::System.DateTime ExpirationTimeUtc { get => _eventSubscriptionUpdateParametersBody.ExpirationTimeUtc ?? default(global::System.DateTime); set => _eventSubscriptionUpdateParametersBody.ExpirationTimeUtc = value; } + + /// An array of advanced filters that are used for filtering event subscriptions. + [global::System.Management.Automation.AllowEmptyCollection] + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "An array of advanced filters that are used for filtering event subscriptions.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"An array of advanced filters that are used for filtering event subscriptions.", + SerializedName = @"advancedFilters", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IAdvancedFilter) })] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IAdvancedFilter[] FilterAdvancedFilter { get => _eventSubscriptionUpdateParametersBody.FilterAdvancedFilter ?? null /* arrayOf */; set => _eventSubscriptionUpdateParametersBody.FilterAdvancedFilter = value; } + + /// + /// Allows advanced filters to be evaluated against an array of values instead of expecting a singular value. + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Allows advanced filters to be evaluated against an array of values instead of expecting a singular value.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Allows advanced filters to be evaluated against an array of values instead of expecting a singular value.", + SerializedName = @"enableAdvancedFilteringOnArrays", + PossibleTypes = new [] { typeof(global::System.Management.Automation.SwitchParameter) })] + public global::System.Management.Automation.SwitchParameter FilterEnableAdvancedFilteringOnArray { get => _eventSubscriptionUpdateParametersBody.FilterEnableAdvancedFilteringOnArray ?? default(global::System.Management.Automation.SwitchParameter); set => _eventSubscriptionUpdateParametersBody.FilterEnableAdvancedFilteringOnArray = value; } + + /// + /// A list of applicable event types that need to be part of the event subscription. If it is desired to subscribe to all + /// default event types, set the IncludedEventTypes to null. + /// + [global::System.Management.Automation.AllowEmptyCollection] + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "A list of applicable event types that need to be part of the event subscription. If it is desired to subscribe to all default event types, set the IncludedEventTypes to null.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"A list of applicable event types that need to be part of the event subscription. If it is desired to subscribe to all default event types, set the IncludedEventTypes to null.", + SerializedName = @"includedEventTypes", + PossibleTypes = new [] { typeof(string) })] + public string[] FilterIncludedEventType { get => _eventSubscriptionUpdateParametersBody.FilterIncludedEventType ?? null /* arrayOf */; set => _eventSubscriptionUpdateParametersBody.FilterIncludedEventType = value; } + + /// + /// Specifies if the SubjectBeginsWith and SubjectEndsWith properties of the filtershould be compared in a case sensitive + /// manner. + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Specifies if the SubjectBeginsWith and SubjectEndsWith properties of the filtershould be compared in a case sensitive manner.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Specifies if the SubjectBeginsWith and SubjectEndsWith properties of the filtershould be compared in a case sensitive manner.", + SerializedName = @"isSubjectCaseSensitive", + PossibleTypes = new [] { typeof(global::System.Management.Automation.SwitchParameter) })] + public global::System.Management.Automation.SwitchParameter FilterIsSubjectCaseSensitive { get => _eventSubscriptionUpdateParametersBody.FilterIsSubjectCaseSensitive ?? default(global::System.Management.Automation.SwitchParameter); set => _eventSubscriptionUpdateParametersBody.FilterIsSubjectCaseSensitive = value; } + + /// + /// An optional string to filter events for an event subscription based on a resource path prefix.The format of this depends + /// on the publisher of the events.Wildcard characters are not supported in this path. + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "An optional string to filter events for an event subscription based on a resource path prefix.The format of this depends on the publisher of the events.Wildcard characters are not supported in this path.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"An optional string to filter events for an event subscription based on a resource path prefix.The format of this depends on the publisher of the events.Wildcard characters are not supported in this path.", + SerializedName = @"subjectBeginsWith", + PossibleTypes = new [] { typeof(string) })] + public string FilterSubjectBeginsWith { get => _eventSubscriptionUpdateParametersBody.FilterSubjectBeginsWith ?? null; set => _eventSubscriptionUpdateParametersBody.FilterSubjectBeginsWith = value; } + + /// + /// An optional string to filter events for an event subscription based on a resource path suffix.Wildcard characters are + /// not supported in this path. + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "An optional string to filter events for an event subscription based on a resource path suffix.Wildcard characters are not supported in this path.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"An optional string to filter events for an event subscription based on a resource path suffix.Wildcard characters are not supported in this path.", + SerializedName = @"subjectEndsWith", + PossibleTypes = new [] { typeof(string) })] + public string FilterSubjectEndsWith { get => _eventSubscriptionUpdateParametersBody.FilterSubjectEndsWith ?? null; set => _eventSubscriptionUpdateParametersBody.FilterSubjectEndsWith = 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.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[] HttpPipelineAppend { get; set; } + + /// SendAsync Pipeline Steps to be prepended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be prepended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[] HttpPipelinePrepend { get; set; } + + /// Accessor for our copy of the InvocationInfo. + public global::System.Management.Automation.InvocationInfo InvocationInformation { get => __invocationInfo = __invocationInfo ?? this.MyInvocation ; set { __invocationInfo = value; } } + + /// List of user defined labels. + [global::System.Management.Automation.AllowEmptyCollection] + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "List of user defined labels.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"List of user defined labels.", + SerializedName = @"labels", + PossibleTypes = new [] { typeof(string) })] + public string[] Label { get => _eventSubscriptionUpdateParametersBody.Label ?? null /* arrayOf */; set => _eventSubscriptionUpdateParametersBody.Label = value; } + + /// + /// cancellation delegate. Stops the cmdlet when called. + /// + global::System.Action Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter NoWait { get; set; } + + /// Backing field for property. + private string _partnerTopicName; + + /// Name of the partner topic. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Name of the partner topic.")] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Name of the partner topic.", + SerializedName = @"partnerTopicName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Path)] + public string PartnerTopicName { get => this._partnerTopicName; set => this._partnerTopicName = 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.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Runtime.HttpPipeline Pipeline { get; set; } + + /// The URI for the proxy server to use + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "The URI for the proxy server to use")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Uri Proxy { get; set; } + + /// Credentials for a proxy server to use for the remote call + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Credentials for a proxy server to use for the remote call")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Management.Automation.PSCredential ProxyCredential { get; set; } + + /// Use the default credentials for the proxy + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Use the default credentials for the proxy")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter ProxyUseDefaultCredentials { get; set; } + + /// Backing field for property. + private string _resourceGroupName; + + /// The name of the resource group within the user's subscription. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the resource group within the user's subscription.")] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the resource group within the user's subscription.", + SerializedName = @"resourceGroupName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Path)] + public string ResourceGroupName { get => this._resourceGroupName; set => this._resourceGroupName = value; } + + /// Time To Live (in minutes) for events. + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Time To Live (in minutes) for events.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Time To Live (in minutes) for events.", + SerializedName = @"eventTimeToLiveInMinutes", + PossibleTypes = new [] { typeof(int) })] + public int RetryPolicyEventTimeToLiveInMinute { get => _eventSubscriptionUpdateParametersBody.RetryPolicyEventTimeToLiveInMinute ?? default(int); set => _eventSubscriptionUpdateParametersBody.RetryPolicyEventTimeToLiveInMinute = value; } + + /// Maximum number of delivery retry attempts for events. + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Maximum number of delivery retry attempts for events.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Maximum number of delivery retry attempts for events.", + SerializedName = @"maxDeliveryAttempts", + PossibleTypes = new [] { typeof(int) })] + public int RetryPolicyMaxDeliveryAttempt { get => _eventSubscriptionUpdateParametersBody.RetryPolicyMaxDeliveryAttempt ?? default(int); set => _eventSubscriptionUpdateParametersBody.RetryPolicyMaxDeliveryAttempt = value; } + + /// Backing field for property. + private string _subscriptionId; + + /// + /// Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription ID forms part of the + /// URI for every service call. + /// + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.")] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.", + SerializedName = @"subscriptionId", + PossibleTypes = new [] { typeof(string) })] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.DefaultInfo( + Name = @"", + Description =@"", + Script = @"(Get-AzContext).Subscription.Id")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Path)] + public string SubscriptionId { get => this._subscriptionId; set => this._subscriptionId = value; } + + /// + /// overrideOnDefault will be called before the regular onDefault has been processed, allowing customization of what + /// happens on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// /// Determines if the rest of the onDefault method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnDefault(global::System.Net.Http.HttpResponseMessage responseMessage, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// (overrides the default BeginProcessing method in global::System.Management.Automation.PSCmdlet) + /// + protected override void BeginProcessing() + { + var telemetryId = Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.GetTelemetryId.Invoke(); + if (telemetryId != "" && telemetryId != "internal") + { + __correlationId = telemetryId; + } + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Creates a duplicate instance of this cmdlet (via JSON serialization). + /// + /// a duplicate instance of UpdateAzEventGridPartnerTopicEventSubscription_UpdateExpanded + /// + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Cmdlets.UpdateAzEventGridPartnerTopicEventSubscription_UpdateExpanded Clone() + { + var clone = new UpdateAzEventGridPartnerTopicEventSubscription_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._eventSubscriptionUpdateParametersBody = this._eventSubscriptionUpdateParametersBody; + clone.SubscriptionId = this.SubscriptionId; + clone.ResourceGroupName = this.ResourceGroupName; + clone.PartnerTopicName = this.PartnerTopicName; + clone.EventSubscriptionName = this.EventSubscriptionName; + return clone; + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + + } + + /// Handles/Dispatches events during the call to the REST service. + /// The message id + /// The message cancellation token. When this call is cancelled, this should be true + /// Detailed message data for the message event. + /// + /// A that will be complete when handling of the message is completed. + /// + async global::System.Threading.Tasks.Task Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener.Signal(string id, global::System.Threading.CancellationToken token, global::System.Func messageData) + { + using( NoSynchronizationContext ) + { + if (token.IsCancellationRequested) + { + return ; + } + + switch ( id ) + { + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.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.EventGrid.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.EventGrid.Runtime.PowerShell.AsyncOperationResponse { Target = uri }); + // do nothing more. + data.Cancel(); + return; + } + } + break; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.EventData ), InvocationInformation, this.ParameterSetName, __correlationId, __processRecordId, null ); + if (token.IsCancellationRequested) + { + return ; + } + WriteDebug($"{id}: {(messageData().Message ?? global::System.String.Empty)}"); + } + } + + /// Performs execution of the command. + protected override void ProcessRecord() + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + if (ShouldProcess($"Call remote 'PartnerTopicEventSubscriptionsUpdate' operation")) + { + if (true == MyInvocation?.BoundParameters?.ContainsKey("AsJob")) + { + var instance = this.Clone(); + var job = new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token); + } + } + } + } + catch (global::System.AggregateException aggregateException) + { + // unroll the inner exceptions to get the root cause + foreach( var innerException in aggregateException.Flatten().InnerExceptions ) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(innerException,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + } + catch (global::System.Exception exception) when ((exception as System.Management.Automation.PipelineStoppedException)== null || (exception as System.Management.Automation.PipelineStoppedException).InnerException != null) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(exception,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + finally + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletProcessRecordEnd).Wait(); + } + } + + /// Performs execution of the command, working asynchronously if required. + /// + /// A that will be complete when handling of the method is completed. + /// + protected async global::System.Threading.Tasks.Task ProcessRecordAsync() + { + using( NoSynchronizationContext ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await this.Client.PartnerTopicEventSubscriptionsUpdate(SubscriptionId, ResourceGroupName, PartnerTopicName, EventSubscriptionName, _eventSubscriptionUpdateParametersBody, onDefault, this, Pipeline); + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.UndeclaredResponseException urexception) + { + WriteError(new global::System.Management.Automation.ErrorRecord(urexception, urexception.StatusCode.ToString(), global::System.Management.Automation.ErrorCategory.InvalidOperation, new { SubscriptionId=SubscriptionId,ResourceGroupName=ResourceGroupName,PartnerTopicName=PartnerTopicName,EventSubscriptionName=EventSubscriptionName,body=_eventSubscriptionUpdateParametersBody}) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(urexception.Message) { RecommendedAction = urexception.Action } + }); + } + finally + { + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Cancel(); + base.StopProcessing(); + } + + /// + /// Intializes a new instance of the cmdlet class. + /// + public UpdateAzEventGridPartnerTopicEventSubscription_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. + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onDefault(global::System.Net.Http.HttpResponseMessage responseMessage) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnDefault(responseMessage, ref _returnNow); + // if overrideOnDefault has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // Error Response : default + // Unrecognized Response. Create an error record based on what we have. + var ex = new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.RestException(responseMessage); + WriteError( new global::System.Management.Automation.ErrorRecord(ex, ex.Code, global::System.Management.Automation.ErrorCategory.InvalidOperation, new { SubscriptionId=SubscriptionId, ResourceGroupName=ResourceGroupName, PartnerTopicName=PartnerTopicName, EventSubscriptionName=EventSubscriptionName, body=_eventSubscriptionUpdateParametersBody }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(ex.Message) { RecommendedAction = ex.Action } + }); + } + } + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/cmdlets/UpdateAzEventGridPartnerTopicEventSubscription_UpdateViaIdentityExpanded.cs b/swaggerci/eventgrid/generated/cmdlets/UpdateAzEventGridPartnerTopicEventSubscription_UpdateViaIdentityExpanded.cs new file mode 100644 index 000000000000..ff21a0f60961 --- /dev/null +++ b/swaggerci/eventgrid/generated/cmdlets/UpdateAzEventGridPartnerTopicEventSubscription_UpdateViaIdentityExpanded.cs @@ -0,0 +1,629 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Extensions; + using System; + + /// Update an existing event subscription of a partner topic. + /// + /// [OpenAPI] Update=>PATCH:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.EventGrid/partnerTopics/{partnerTopicName}/eventSubscriptions/{eventSubscriptionName}" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsData.Update, @"AzEventGridPartnerTopicEventSubscription_UpdateViaIdentityExpanded", SupportsShouldProcess = true)] + [global::System.Management.Automation.OutputType(typeof(bool))] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Description(@"Update an existing event subscription of a partner topic.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Generated] + public partial class UpdateAzEventGridPartnerTopicEventSubscription_UpdateViaIdentityExpanded : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener + { + /// A unique id generatd for the this cmdlet when it is instantiated. + private string __correlationId = System.Guid.NewGuid().ToString(); + + /// A copy of the Invocation Info (necessary to allow asJob to clone this cmdlet) + private global::System.Management.Automation.InvocationInfo __invocationInfo; + + /// A unique id generatd for the this cmdlet when ProcessRecord() is called. + private string __processRecordId; + + /// + /// The for this operation. + /// + private global::System.Threading.CancellationTokenSource _cancellationTokenSource = new global::System.Threading.CancellationTokenSource(); + + /// Properties of the Event Subscription update. + private Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionUpdateParameters _eventSubscriptionUpdateParametersBody = new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.EventSubscriptionUpdateParameters(); + + /// 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.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.EventGridManagementClient Client => Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.ClientAPI; + + /// + /// The type of managed identity used. The type 'SystemAssigned, UserAssigned' includes both an implicitly created identity + /// and a set of user-assigned identities. The type 'None' will remove any identity. + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The type of managed identity used. The type 'SystemAssigned, UserAssigned' includes both an implicitly created identity and a set of user-assigned identities. The type 'None' will remove any identity.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The type of managed identity used. The type 'SystemAssigned, UserAssigned' includes both an implicitly created identity and a set of user-assigned identities. The type 'None' will remove any identity.", + SerializedName = @"type", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EventSubscriptionIdentityType) })] + [global::System.Management.Automation.ArgumentCompleter(typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EventSubscriptionIdentityType))] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EventSubscriptionIdentityType DeadLetterWithResourceIdentityType { get => _eventSubscriptionUpdateParametersBody.DeadLetterWithResourceIdentityType ?? ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EventSubscriptionIdentityType)""); set => _eventSubscriptionUpdateParametersBody.DeadLetterWithResourceIdentityType = value; } + + /// The user identity associated with the resource. + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The user identity associated with the resource.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The user identity associated with the resource.", + SerializedName = @"userAssignedIdentity", + PossibleTypes = new [] { typeof(string) })] + public string DeadLetterWithResourceIdentityUserAssignedIdentity { get => _eventSubscriptionUpdateParametersBody.DeadLetterWithResourceIdentityUserAssignedIdentity ?? null; set => _eventSubscriptionUpdateParametersBody.DeadLetterWithResourceIdentityUserAssignedIdentity = 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.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Azure)] + public global::System.Management.Automation.PSObject DefaultProfile { get; set; } + + /// Type of the endpoint for the event subscription destination. + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Type of the endpoint for the event subscription destination.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Type of the endpoint for the event subscription destination.", + SerializedName = @"endpointType", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EndpointType) })] + [global::System.Management.Automation.ArgumentCompleter(typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EndpointType))] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EndpointType DeliveryWithResourceIdentityDestinationEndpointType { get => _eventSubscriptionUpdateParametersBody.DeliveryWithResourceIdentityDestinationEndpointType ?? ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EndpointType)""); set => _eventSubscriptionUpdateParametersBody.DeliveryWithResourceIdentityDestinationEndpointType = value; } + + /// + /// The type of managed identity used. The type 'SystemAssigned, UserAssigned' includes both an implicitly created identity + /// and a set of user-assigned identities. The type 'None' will remove any identity. + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The type of managed identity used. The type 'SystemAssigned, UserAssigned' includes both an implicitly created identity and a set of user-assigned identities. The type 'None' will remove any identity.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The type of managed identity used. The type 'SystemAssigned, UserAssigned' includes both an implicitly created identity and a set of user-assigned identities. The type 'None' will remove any identity.", + SerializedName = @"type", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EventSubscriptionIdentityType) })] + [global::System.Management.Automation.ArgumentCompleter(typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EventSubscriptionIdentityType))] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EventSubscriptionIdentityType DeliveryWithResourceIdentityType { get => _eventSubscriptionUpdateParametersBody.DeliveryWithResourceIdentityType ?? ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EventSubscriptionIdentityType)""); set => _eventSubscriptionUpdateParametersBody.DeliveryWithResourceIdentityType = value; } + + /// The user identity associated with the resource. + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The user identity associated with the resource.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The user identity associated with the resource.", + SerializedName = @"userAssignedIdentity", + PossibleTypes = new [] { typeof(string) })] + public string DeliveryWithResourceIdentityUserAssignedIdentity { get => _eventSubscriptionUpdateParametersBody.DeliveryWithResourceIdentityUserAssignedIdentity ?? null; set => _eventSubscriptionUpdateParametersBody.DeliveryWithResourceIdentityUserAssignedIdentity = value; } + + /// Type of the endpoint for the event subscription destination. + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Type of the endpoint for the event subscription destination.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Type of the endpoint for the event subscription destination.", + SerializedName = @"endpointType", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EndpointType) })] + [global::System.Management.Automation.ArgumentCompleter(typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EndpointType))] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EndpointType EndpointType { get => _eventSubscriptionUpdateParametersBody.EndpointType ?? ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EndpointType)""); set => _eventSubscriptionUpdateParametersBody.EndpointType = value; } + + /// The event delivery schema for the event subscription. + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The event delivery schema for the event subscription.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The event delivery schema for the event subscription.", + SerializedName = @"eventDeliverySchema", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EventDeliverySchema) })] + [global::System.Management.Automation.ArgumentCompleter(typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EventDeliverySchema))] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EventDeliverySchema EventDeliverySchema { get => _eventSubscriptionUpdateParametersBody.EventDeliverySchema ?? ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EventDeliverySchema)""); set => _eventSubscriptionUpdateParametersBody.EventDeliverySchema = value; } + + /// Information about the expiration time for the event subscription. + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Information about the expiration time for the event subscription.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Information about the expiration time for the event subscription.", + SerializedName = @"expirationTimeUtc", + PossibleTypes = new [] { typeof(global::System.DateTime) })] + public global::System.DateTime ExpirationTimeUtc { get => _eventSubscriptionUpdateParametersBody.ExpirationTimeUtc ?? default(global::System.DateTime); set => _eventSubscriptionUpdateParametersBody.ExpirationTimeUtc = value; } + + /// An array of advanced filters that are used for filtering event subscriptions. + [global::System.Management.Automation.AllowEmptyCollection] + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "An array of advanced filters that are used for filtering event subscriptions.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"An array of advanced filters that are used for filtering event subscriptions.", + SerializedName = @"advancedFilters", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IAdvancedFilter) })] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IAdvancedFilter[] FilterAdvancedFilter { get => _eventSubscriptionUpdateParametersBody.FilterAdvancedFilter ?? null /* arrayOf */; set => _eventSubscriptionUpdateParametersBody.FilterAdvancedFilter = value; } + + /// + /// Allows advanced filters to be evaluated against an array of values instead of expecting a singular value. + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Allows advanced filters to be evaluated against an array of values instead of expecting a singular value.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Allows advanced filters to be evaluated against an array of values instead of expecting a singular value.", + SerializedName = @"enableAdvancedFilteringOnArrays", + PossibleTypes = new [] { typeof(global::System.Management.Automation.SwitchParameter) })] + public global::System.Management.Automation.SwitchParameter FilterEnableAdvancedFilteringOnArray { get => _eventSubscriptionUpdateParametersBody.FilterEnableAdvancedFilteringOnArray ?? default(global::System.Management.Automation.SwitchParameter); set => _eventSubscriptionUpdateParametersBody.FilterEnableAdvancedFilteringOnArray = value; } + + /// + /// A list of applicable event types that need to be part of the event subscription. If it is desired to subscribe to all + /// default event types, set the IncludedEventTypes to null. + /// + [global::System.Management.Automation.AllowEmptyCollection] + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "A list of applicable event types that need to be part of the event subscription. If it is desired to subscribe to all default event types, set the IncludedEventTypes to null.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"A list of applicable event types that need to be part of the event subscription. If it is desired to subscribe to all default event types, set the IncludedEventTypes to null.", + SerializedName = @"includedEventTypes", + PossibleTypes = new [] { typeof(string) })] + public string[] FilterIncludedEventType { get => _eventSubscriptionUpdateParametersBody.FilterIncludedEventType ?? null /* arrayOf */; set => _eventSubscriptionUpdateParametersBody.FilterIncludedEventType = value; } + + /// + /// Specifies if the SubjectBeginsWith and SubjectEndsWith properties of the filtershould be compared in a case sensitive + /// manner. + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Specifies if the SubjectBeginsWith and SubjectEndsWith properties of the filtershould be compared in a case sensitive manner.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Specifies if the SubjectBeginsWith and SubjectEndsWith properties of the filtershould be compared in a case sensitive manner.", + SerializedName = @"isSubjectCaseSensitive", + PossibleTypes = new [] { typeof(global::System.Management.Automation.SwitchParameter) })] + public global::System.Management.Automation.SwitchParameter FilterIsSubjectCaseSensitive { get => _eventSubscriptionUpdateParametersBody.FilterIsSubjectCaseSensitive ?? default(global::System.Management.Automation.SwitchParameter); set => _eventSubscriptionUpdateParametersBody.FilterIsSubjectCaseSensitive = value; } + + /// + /// An optional string to filter events for an event subscription based on a resource path prefix.The format of this depends + /// on the publisher of the events.Wildcard characters are not supported in this path. + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "An optional string to filter events for an event subscription based on a resource path prefix.The format of this depends on the publisher of the events.Wildcard characters are not supported in this path.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"An optional string to filter events for an event subscription based on a resource path prefix.The format of this depends on the publisher of the events.Wildcard characters are not supported in this path.", + SerializedName = @"subjectBeginsWith", + PossibleTypes = new [] { typeof(string) })] + public string FilterSubjectBeginsWith { get => _eventSubscriptionUpdateParametersBody.FilterSubjectBeginsWith ?? null; set => _eventSubscriptionUpdateParametersBody.FilterSubjectBeginsWith = value; } + + /// + /// An optional string to filter events for an event subscription based on a resource path suffix.Wildcard characters are + /// not supported in this path. + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "An optional string to filter events for an event subscription based on a resource path suffix.Wildcard characters are not supported in this path.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"An optional string to filter events for an event subscription based on a resource path suffix.Wildcard characters are not supported in this path.", + SerializedName = @"subjectEndsWith", + PossibleTypes = new [] { typeof(string) })] + public string FilterSubjectEndsWith { get => _eventSubscriptionUpdateParametersBody.FilterSubjectEndsWith ?? null; set => _eventSubscriptionUpdateParametersBody.FilterSubjectEndsWith = 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.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[] HttpPipelineAppend { get; set; } + + /// SendAsync Pipeline Steps to be prepended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be prepended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[] HttpPipelinePrepend { get; set; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.IEventGridIdentity _inputObject; + + /// Identity Parameter + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Identity Parameter", ValueFromPipeline = true)] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Path)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.IEventGridIdentity InputObject { get => this._inputObject; set => this._inputObject = value; } + + /// Accessor for our copy of the InvocationInfo. + public global::System.Management.Automation.InvocationInfo InvocationInformation { get => __invocationInfo = __invocationInfo ?? this.MyInvocation ; set { __invocationInfo = value; } } + + /// List of user defined labels. + [global::System.Management.Automation.AllowEmptyCollection] + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "List of user defined labels.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"List of user defined labels.", + SerializedName = @"labels", + PossibleTypes = new [] { typeof(string) })] + public string[] Label { get => _eventSubscriptionUpdateParametersBody.Label ?? null /* arrayOf */; set => _eventSubscriptionUpdateParametersBody.Label = value; } + + /// + /// cancellation delegate. Stops the cmdlet when called. + /// + global::System.Action Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter NoWait { get; set; } + + /// + /// When specified, forces the cmdlet return a 'bool' given that there isn't a return type by default. + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Returns true when the command succeeds")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Runtime.HttpPipeline Pipeline { get; set; } + + /// The URI for the proxy server to use + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "The URI for the proxy server to use")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Uri Proxy { get; set; } + + /// Credentials for a proxy server to use for the remote call + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Credentials for a proxy server to use for the remote call")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Management.Automation.PSCredential ProxyCredential { get; set; } + + /// Use the default credentials for the proxy + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Use the default credentials for the proxy")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter ProxyUseDefaultCredentials { get; set; } + + /// Time To Live (in minutes) for events. + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Time To Live (in minutes) for events.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Time To Live (in minutes) for events.", + SerializedName = @"eventTimeToLiveInMinutes", + PossibleTypes = new [] { typeof(int) })] + public int RetryPolicyEventTimeToLiveInMinute { get => _eventSubscriptionUpdateParametersBody.RetryPolicyEventTimeToLiveInMinute ?? default(int); set => _eventSubscriptionUpdateParametersBody.RetryPolicyEventTimeToLiveInMinute = value; } + + /// Maximum number of delivery retry attempts for events. + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Maximum number of delivery retry attempts for events.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Maximum number of delivery retry attempts for events.", + SerializedName = @"maxDeliveryAttempts", + PossibleTypes = new [] { typeof(int) })] + public int RetryPolicyMaxDeliveryAttempt { get => _eventSubscriptionUpdateParametersBody.RetryPolicyMaxDeliveryAttempt ?? default(int); set => _eventSubscriptionUpdateParametersBody.RetryPolicyMaxDeliveryAttempt = value; } + + /// + /// overrideOnDefault will be called before the regular onDefault has been processed, allowing customization of what + /// happens on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// /// Determines if the rest of the onDefault method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnDefault(global::System.Net.Http.HttpResponseMessage responseMessage, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// (overrides the default BeginProcessing method in global::System.Management.Automation.PSCmdlet) + /// + protected override void BeginProcessing() + { + var telemetryId = Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.GetTelemetryId.Invoke(); + if (telemetryId != "" && telemetryId != "internal") + { + __correlationId = telemetryId; + } + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Creates a duplicate instance of this cmdlet (via JSON serialization). + /// + /// a duplicate instance of UpdateAzEventGridPartnerTopicEventSubscription_UpdateViaIdentityExpanded + /// + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Cmdlets.UpdateAzEventGridPartnerTopicEventSubscription_UpdateViaIdentityExpanded Clone() + { + var clone = new UpdateAzEventGridPartnerTopicEventSubscription_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._eventSubscriptionUpdateParametersBody = this._eventSubscriptionUpdateParametersBody; + return clone; + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + + } + + /// Handles/Dispatches events during the call to the REST service. + /// The message id + /// The message cancellation token. When this call is cancelled, this should be true + /// Detailed message data for the message event. + /// + /// A that will be complete when handling of the message is completed. + /// + async global::System.Threading.Tasks.Task Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener.Signal(string id, global::System.Threading.CancellationToken token, global::System.Func messageData) + { + using( NoSynchronizationContext ) + { + if (token.IsCancellationRequested) + { + return ; + } + + switch ( id ) + { + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.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.EventGrid.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.EventGrid.Runtime.PowerShell.AsyncOperationResponse { Target = uri }); + // do nothing more. + data.Cancel(); + return; + } + } + break; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.EventData ), InvocationInformation, this.ParameterSetName, __correlationId, __processRecordId, null ); + if (token.IsCancellationRequested) + { + return ; + } + WriteDebug($"{id}: {(messageData().Message ?? global::System.String.Empty)}"); + } + } + + /// Performs execution of the command. + protected override void ProcessRecord() + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + if (ShouldProcess($"Call remote 'PartnerTopicEventSubscriptionsUpdate' operation")) + { + if (true == MyInvocation?.BoundParameters?.ContainsKey("AsJob")) + { + var instance = this.Clone(); + var job = new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token); + } + } + } + } + catch (global::System.AggregateException aggregateException) + { + // unroll the inner exceptions to get the root cause + foreach( var innerException in aggregateException.Flatten().InnerExceptions ) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(innerException,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + } + catch (global::System.Exception exception) when ((exception as System.Management.Automation.PipelineStoppedException)== null || (exception as System.Management.Automation.PipelineStoppedException).InnerException != null) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(exception,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + finally + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletProcessRecordEnd).Wait(); + } + } + + /// Performs execution of the command, working asynchronously if required. + /// + /// A that will be complete when handling of the method is completed. + /// + protected async global::System.Threading.Tasks.Task ProcessRecordAsync() + { + using( NoSynchronizationContext ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + if (InputObject?.Id != null) + { + await this.Client.PartnerTopicEventSubscriptionsUpdateViaIdentity(InputObject.Id, _eventSubscriptionUpdateParametersBody, 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.PartnerTopicName) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.PartnerTopicName"),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, InputObject) ); + } + if (null == InputObject.EventSubscriptionName) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.EventSubscriptionName"),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, InputObject) ); + } + await this.Client.PartnerTopicEventSubscriptionsUpdate(InputObject.SubscriptionId ?? null, InputObject.ResourceGroupName ?? null, InputObject.PartnerTopicName ?? null, InputObject.EventSubscriptionName ?? null, _eventSubscriptionUpdateParametersBody, onDefault, this, Pipeline); + } + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.UndeclaredResponseException urexception) + { + WriteError(new global::System.Management.Automation.ErrorRecord(urexception, urexception.StatusCode.ToString(), global::System.Management.Automation.ErrorCategory.InvalidOperation, new { body=_eventSubscriptionUpdateParametersBody}) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(urexception.Message) { RecommendedAction = urexception.Action } + }); + } + finally + { + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Cancel(); + base.StopProcessing(); + } + + /// + /// Intializes a new instance of the cmdlet class. + /// + public UpdateAzEventGridPartnerTopicEventSubscription_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. + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onDefault(global::System.Net.Http.HttpResponseMessage responseMessage) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnDefault(responseMessage, ref _returnNow); + // if overrideOnDefault has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // Error Response : default + // Unrecognized Response. Create an error record based on what we have. + var ex = new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.RestException(responseMessage); + WriteError( new global::System.Management.Automation.ErrorRecord(ex, ex.Code, global::System.Management.Automation.ErrorCategory.InvalidOperation, new { body=_eventSubscriptionUpdateParametersBody }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(ex.Message) { RecommendedAction = ex.Action } + }); + } + } + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/cmdlets/UpdateAzEventGridPartnerTopic_UpdateExpanded.cs b/swaggerci/eventgrid/generated/cmdlets/UpdateAzEventGridPartnerTopic_UpdateExpanded.cs new file mode 100644 index 000000000000..d8c969e1c959 --- /dev/null +++ b/swaggerci/eventgrid/generated/cmdlets/UpdateAzEventGridPartnerTopic_UpdateExpanded.cs @@ -0,0 +1,500 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Extensions; + using System; + + /// Asynchronously updates a partner topic with the specified parameters. + /// + /// [OpenAPI] Update=>PATCH:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.EventGrid/partnerTopics/{partnerTopicName}" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsData.Update, @"AzEventGridPartnerTopic_UpdateExpanded", SupportsShouldProcess = true)] + [global::System.Management.Automation.OutputType(typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerTopic))] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Description(@"Asynchronously updates a partner topic with the specified parameters.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Generated] + public partial class UpdateAzEventGridPartnerTopic_UpdateExpanded : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener + { + /// A unique id generatd for the this cmdlet when it is instantiated. + private string __correlationId = System.Guid.NewGuid().ToString(); + + /// A copy of the Invocation Info (necessary to allow asJob to clone this cmdlet) + private global::System.Management.Automation.InvocationInfo __invocationInfo; + + /// A unique id generatd for the this cmdlet when ProcessRecord() is called. + private string __processRecordId; + + /// + /// The for this operation. + /// + private global::System.Threading.CancellationTokenSource _cancellationTokenSource = new global::System.Threading.CancellationTokenSource(); + + /// Properties of the Partner Topic update. + private Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerTopicUpdateParameters _partnerTopicUpdateParametersBody = new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.PartnerTopicUpdateParameters(); + + /// Wait for .NET debugger to attach + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Wait for .NET debugger to attach")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.EventGridManagementClient Client => Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.ClientAPI; + + /// + /// The credentials, account, tenant, and subscription used for communication with Azure + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The credentials, account, tenant, and subscription used for communication with Azure.")] + [global::System.Management.Automation.ValidateNotNull] + [global::System.Management.Automation.Alias("AzureRMContext", "AzureCredential")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Azure)] + public global::System.Management.Automation.PSObject DefaultProfile { get; set; } + + /// SendAsync Pipeline Steps to be appended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be appended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[] HttpPipelineAppend { get; set; } + + /// SendAsync Pipeline Steps to be prepended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be prepended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[] HttpPipelinePrepend { get; set; } + + /// The principal ID of resource identity. + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The principal ID of resource identity.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The principal ID of resource identity.", + SerializedName = @"principalId", + PossibleTypes = new [] { typeof(string) })] + public string IdentityPrincipalId { get => _partnerTopicUpdateParametersBody.IdentityPrincipalId ?? null; set => _partnerTopicUpdateParametersBody.IdentityPrincipalId = value; } + + /// The tenant ID of resource. + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The tenant ID of resource.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The tenant ID of resource.", + SerializedName = @"tenantId", + PossibleTypes = new [] { typeof(string) })] + public string IdentityTenantId { get => _partnerTopicUpdateParametersBody.IdentityTenantId ?? null; set => _partnerTopicUpdateParametersBody.IdentityTenantId = value; } + + /// + /// The type of managed identity used. The type 'SystemAssigned, UserAssigned' includes both an implicitly created identity + /// and a set of user-assigned identities. The type 'None' will remove any identity. + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The type of managed identity used. The type 'SystemAssigned, UserAssigned' includes both an implicitly created identity and a set of user-assigned identities. The type 'None' will remove any identity.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The type of managed identity used. The type 'SystemAssigned, UserAssigned' includes both an implicitly created identity and a set of user-assigned identities. The type 'None' will remove any identity.", + SerializedName = @"type", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.IdentityType) })] + [global::System.Management.Automation.ArgumentCompleter(typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.IdentityType))] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.IdentityType IdentityType { get => _partnerTopicUpdateParametersBody.IdentityType ?? ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.IdentityType)""); set => _partnerTopicUpdateParametersBody.IdentityType = value; } + + /// + /// The list of user identities associated with the resource. The user identity dictionary key references will be ARM resource + /// ids in the form:'/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ManagedIdentity/userAssignedIdentities/{identityName}'.This + /// property is currently not used and reserved for future usage. + /// + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ExportAs(typeof(global::System.Collections.Hashtable))] + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The list of user identities associated with the resource. The user identity dictionary key references will be ARM resource ids in the form:'/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ManagedIdentity/userAssignedIdentities/{identityName}'.This property is currently not used and reserved for future usage.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The list of user identities associated with the resource. The user identity dictionary key references will be ARM resource ids in the form:'/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ManagedIdentity/userAssignedIdentities/{identityName}'.This property is currently not used and reserved for future usage.", + SerializedName = @"userAssignedIdentities", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IIdentityInfoUserAssignedIdentities) })] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IIdentityInfoUserAssignedIdentities IdentityUserAssignedIdentity { get => _partnerTopicUpdateParametersBody.IdentityUserAssignedIdentity ?? null /* object */; set => _partnerTopicUpdateParametersBody.IdentityUserAssignedIdentity = value; } + + /// Accessor for our copy of the InvocationInfo. + public global::System.Management.Automation.InvocationInfo InvocationInformation { get => __invocationInfo = __invocationInfo ?? this.MyInvocation ; set { __invocationInfo = value; } } + + /// + /// cancellation delegate. Stops the cmdlet when called. + /// + global::System.Action Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener.Token => _cancellationTokenSource.Token; + + /// Backing field for property. + private string _name; + + /// Name of the partner topic. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Name of the partner topic.")] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Name of the partner topic.", + SerializedName = @"partnerTopicName", + PossibleTypes = new [] { typeof(string) })] + [global::System.Management.Automation.Alias("PartnerTopicName")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Runtime.HttpPipeline Pipeline { get; set; } + + /// The URI for the proxy server to use + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "The URI for the proxy server to use")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Uri Proxy { get; set; } + + /// Credentials for a proxy server to use for the remote call + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Credentials for a proxy server to use for the remote call")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Management.Automation.PSCredential ProxyCredential { get; set; } + + /// Use the default credentials for the proxy + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Use the default credentials for the proxy")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter ProxyUseDefaultCredentials { get; set; } + + /// Backing field for property. + private string _resourceGroupName; + + /// The name of the resource group within the user's subscription. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the resource group within the user's subscription.")] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the resource group within the user's subscription.", + SerializedName = @"resourceGroupName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Path)] + public string ResourceGroupName { get => this._resourceGroupName; set => this._resourceGroupName = value; } + + /// Backing field for property. + private string _subscriptionId; + + /// + /// Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription ID forms part of the + /// URI for every service call. + /// + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.")] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.", + SerializedName = @"subscriptionId", + PossibleTypes = new [] { typeof(string) })] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.DefaultInfo( + Name = @"", + Description =@"", + Script = @"(Get-AzContext).Subscription.Id")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Path)] + public string SubscriptionId { get => this._subscriptionId; set => this._subscriptionId = value; } + + /// Tags of the Partner Topic resource. + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ExportAs(typeof(global::System.Collections.Hashtable))] + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Tags of the Partner Topic resource.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Tags of the Partner Topic resource.", + SerializedName = @"tags", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerTopicUpdateParametersTags) })] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerTopicUpdateParametersTags Tag { get => _partnerTopicUpdateParametersBody.Tag ?? null /* object */; set => _partnerTopicUpdateParametersBody.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. + /// /// Determines if the rest of the onDefault method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnDefault(global::System.Net.Http.HttpResponseMessage responseMessage, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnOk will be called before the regular onOk has been processed, allowing customization of what happens + /// on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// /// Determines if the rest of the onOk method should be processed, or if the method should return + /// immediately (set to true to skip further processing ) + + partial void overrideOnOk(global::System.Net.Http.HttpResponseMessage responseMessage, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// (overrides the default BeginProcessing method in global::System.Management.Automation.PSCmdlet) + /// + protected override void BeginProcessing() + { + var telemetryId = Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.GetTelemetryId.Invoke(); + if (telemetryId != "" && telemetryId != "internal") + { + __correlationId = telemetryId; + } + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + + } + + /// Handles/Dispatches events during the call to the REST service. + /// The message id + /// The message cancellation token. When this call is cancelled, this should be true + /// Detailed message data for the message event. + /// + /// A that will be complete when handling of the message is completed. + /// + async global::System.Threading.Tasks.Task Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener.Signal(string id, global::System.Threading.CancellationToken token, global::System.Func messageData) + { + using( NoSynchronizationContext ) + { + if (token.IsCancellationRequested) + { + return ; + } + + switch ( id ) + { + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Information: + { + var data = messageData(); + WriteInformation(data.Message, new string[]{}); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Error: + { + WriteError(new global::System.Management.Automation.ErrorRecord( new global::System.Exception(messageData().Message), string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null ) ); + return ; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.EventData ), InvocationInformation, this.ParameterSetName, __correlationId, __processRecordId, null ); + if (token.IsCancellationRequested) + { + return ; + } + WriteDebug($"{id}: {(messageData().Message ?? global::System.String.Empty)}"); + } + } + + /// Performs execution of the command. + protected override void ProcessRecord() + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + if (ShouldProcess($"Call remote 'PartnerTopicsUpdate' operation")) + { + using( var asyncCommandRuntime = new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token); + } + } + } + catch (global::System.AggregateException aggregateException) + { + // unroll the inner exceptions to get the root cause + foreach( var innerException in aggregateException.Flatten().InnerExceptions ) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(innerException,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + } + catch (global::System.Exception exception) when ((exception as System.Management.Automation.PipelineStoppedException)== null || (exception as System.Management.Automation.PipelineStoppedException).InnerException != null) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(exception,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + finally + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletProcessRecordEnd).Wait(); + } + } + + /// Performs execution of the command, working asynchronously if required. + /// + /// A that will be complete when handling of the method is completed. + /// + protected async global::System.Threading.Tasks.Task ProcessRecordAsync() + { + using( NoSynchronizationContext ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await this.Client.PartnerTopicsUpdate(SubscriptionId, ResourceGroupName, Name, _partnerTopicUpdateParametersBody, onOk, onCreated, onDefault, this, Pipeline); + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.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=_partnerTopicUpdateParametersBody}) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(urexception.Message) { RecommendedAction = urexception.Action } + }); + } + finally + { + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Cancel(); + base.StopProcessing(); + } + + /// + /// Intializes a new instance of the cmdlet class. + /// + public UpdateAzEventGridPartnerTopic_UpdateExpanded() + { + + } + + /// 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.EventGrid.Models.Api20211015Preview.IPartnerTopic + 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. + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onDefault(global::System.Net.Http.HttpResponseMessage responseMessage) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnDefault(responseMessage, ref _returnNow); + // if overrideOnDefault has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // Error Response : default + // Unrecognized Response. Create an error record based on what we have. + var ex = new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.RestException(responseMessage); + WriteError( new global::System.Management.Automation.ErrorRecord(ex, ex.Code, global::System.Management.Automation.ErrorCategory.InvalidOperation, new { SubscriptionId=SubscriptionId, ResourceGroupName=ResourceGroupName, Name=Name, body=_partnerTopicUpdateParametersBody }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(ex.Message) { RecommendedAction = ex.Action } + }); + } + } + + /// a delegate that is called when the remote service returns 200 (OK). + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onOk(global::System.Net.Http.HttpResponseMessage responseMessage) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnOk(responseMessage, ref _returnNow); + // if overrideOnOk has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // onOk - response for 200 / + if (true == MyInvocation?.BoundParameters?.ContainsKey("PassThru")) + { + WriteObject(true); + } + } + } + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/cmdlets/UpdateAzEventGridPartnerTopic_UpdateViaIdentityExpanded.cs b/swaggerci/eventgrid/generated/cmdlets/UpdateAzEventGridPartnerTopic_UpdateViaIdentityExpanded.cs new file mode 100644 index 000000000000..e18904acc673 --- /dev/null +++ b/swaggerci/eventgrid/generated/cmdlets/UpdateAzEventGridPartnerTopic_UpdateViaIdentityExpanded.cs @@ -0,0 +1,478 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Extensions; + using System; + + /// Asynchronously updates a partner topic with the specified parameters. + /// + /// [OpenAPI] Update=>PATCH:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.EventGrid/partnerTopics/{partnerTopicName}" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsData.Update, @"AzEventGridPartnerTopic_UpdateViaIdentityExpanded", SupportsShouldProcess = true)] + [global::System.Management.Automation.OutputType(typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerTopic))] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Description(@"Asynchronously updates a partner topic with the specified parameters.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Generated] + public partial class UpdateAzEventGridPartnerTopic_UpdateViaIdentityExpanded : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener + { + /// A unique id generatd for the this cmdlet when it is instantiated. + private string __correlationId = System.Guid.NewGuid().ToString(); + + /// A copy of the Invocation Info (necessary to allow asJob to clone this cmdlet) + private global::System.Management.Automation.InvocationInfo __invocationInfo; + + /// A unique id generatd for the this cmdlet when ProcessRecord() is called. + private string __processRecordId; + + /// + /// The for this operation. + /// + private global::System.Threading.CancellationTokenSource _cancellationTokenSource = new global::System.Threading.CancellationTokenSource(); + + /// Properties of the Partner Topic update. + private Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerTopicUpdateParameters _partnerTopicUpdateParametersBody = new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.PartnerTopicUpdateParameters(); + + /// Wait for .NET debugger to attach + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Wait for .NET debugger to attach")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.EventGridManagementClient Client => Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.ClientAPI; + + /// + /// The credentials, account, tenant, and subscription used for communication with Azure + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The credentials, account, tenant, and subscription used for communication with Azure.")] + [global::System.Management.Automation.ValidateNotNull] + [global::System.Management.Automation.Alias("AzureRMContext", "AzureCredential")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Azure)] + public global::System.Management.Automation.PSObject DefaultProfile { get; set; } + + /// SendAsync Pipeline Steps to be appended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be appended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[] HttpPipelineAppend { get; set; } + + /// SendAsync Pipeline Steps to be prepended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be prepended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[] HttpPipelinePrepend { get; set; } + + /// The principal ID of resource identity. + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The principal ID of resource identity.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The principal ID of resource identity.", + SerializedName = @"principalId", + PossibleTypes = new [] { typeof(string) })] + public string IdentityPrincipalId { get => _partnerTopicUpdateParametersBody.IdentityPrincipalId ?? null; set => _partnerTopicUpdateParametersBody.IdentityPrincipalId = value; } + + /// The tenant ID of resource. + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The tenant ID of resource.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The tenant ID of resource.", + SerializedName = @"tenantId", + PossibleTypes = new [] { typeof(string) })] + public string IdentityTenantId { get => _partnerTopicUpdateParametersBody.IdentityTenantId ?? null; set => _partnerTopicUpdateParametersBody.IdentityTenantId = value; } + + /// + /// The type of managed identity used. The type 'SystemAssigned, UserAssigned' includes both an implicitly created identity + /// and a set of user-assigned identities. The type 'None' will remove any identity. + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The type of managed identity used. The type 'SystemAssigned, UserAssigned' includes both an implicitly created identity and a set of user-assigned identities. The type 'None' will remove any identity.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The type of managed identity used. The type 'SystemAssigned, UserAssigned' includes both an implicitly created identity and a set of user-assigned identities. The type 'None' will remove any identity.", + SerializedName = @"type", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.IdentityType) })] + [global::System.Management.Automation.ArgumentCompleter(typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.IdentityType))] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.IdentityType IdentityType { get => _partnerTopicUpdateParametersBody.IdentityType ?? ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.IdentityType)""); set => _partnerTopicUpdateParametersBody.IdentityType = value; } + + /// + /// The list of user identities associated with the resource. The user identity dictionary key references will be ARM resource + /// ids in the form:'/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ManagedIdentity/userAssignedIdentities/{identityName}'.This + /// property is currently not used and reserved for future usage. + /// + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ExportAs(typeof(global::System.Collections.Hashtable))] + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The list of user identities associated with the resource. The user identity dictionary key references will be ARM resource ids in the form:'/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ManagedIdentity/userAssignedIdentities/{identityName}'.This property is currently not used and reserved for future usage.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The list of user identities associated with the resource. The user identity dictionary key references will be ARM resource ids in the form:'/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ManagedIdentity/userAssignedIdentities/{identityName}'.This property is currently not used and reserved for future usage.", + SerializedName = @"userAssignedIdentities", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IIdentityInfoUserAssignedIdentities) })] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IIdentityInfoUserAssignedIdentities IdentityUserAssignedIdentity { get => _partnerTopicUpdateParametersBody.IdentityUserAssignedIdentity ?? null /* object */; set => _partnerTopicUpdateParametersBody.IdentityUserAssignedIdentity = value; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.IEventGridIdentity _inputObject; + + /// Identity Parameter + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Identity Parameter", ValueFromPipeline = true)] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Path)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.IEventGridIdentity InputObject { get => this._inputObject; set => this._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.EventGrid.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Runtime.HttpPipeline Pipeline { get; set; } + + /// The URI for the proxy server to use + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "The URI for the proxy server to use")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Uri Proxy { get; set; } + + /// Credentials for a proxy server to use for the remote call + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Credentials for a proxy server to use for the remote call")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Management.Automation.PSCredential ProxyCredential { get; set; } + + /// Use the default credentials for the proxy + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Use the default credentials for the proxy")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter ProxyUseDefaultCredentials { get; set; } + + /// Tags of the Partner Topic resource. + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ExportAs(typeof(global::System.Collections.Hashtable))] + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Tags of the Partner Topic resource.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Tags of the Partner Topic resource.", + SerializedName = @"tags", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerTopicUpdateParametersTags) })] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IPartnerTopicUpdateParametersTags Tag { get => _partnerTopicUpdateParametersBody.Tag ?? null /* object */; set => _partnerTopicUpdateParametersBody.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. + /// /// Determines if the rest of the onDefault method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnDefault(global::System.Net.Http.HttpResponseMessage responseMessage, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnOk will be called before the regular onOk has been processed, allowing customization of what happens + /// on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// /// Determines if the rest of the onOk method should be processed, or if the method should return + /// immediately (set to true to skip further processing ) + + partial void overrideOnOk(global::System.Net.Http.HttpResponseMessage responseMessage, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// (overrides the default BeginProcessing method in global::System.Management.Automation.PSCmdlet) + /// + protected override void BeginProcessing() + { + var telemetryId = Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.GetTelemetryId.Invoke(); + if (telemetryId != "" && telemetryId != "internal") + { + __correlationId = telemetryId; + } + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + + } + + /// Handles/Dispatches events during the call to the REST service. + /// The message id + /// The message cancellation token. When this call is cancelled, this should be true + /// Detailed message data for the message event. + /// + /// A that will be complete when handling of the message is completed. + /// + async global::System.Threading.Tasks.Task Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener.Signal(string id, global::System.Threading.CancellationToken token, global::System.Func messageData) + { + using( NoSynchronizationContext ) + { + if (token.IsCancellationRequested) + { + return ; + } + + switch ( id ) + { + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Information: + { + var data = messageData(); + WriteInformation(data.Message, new string[]{}); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Error: + { + WriteError(new global::System.Management.Automation.ErrorRecord( new global::System.Exception(messageData().Message), string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null ) ); + return ; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.EventData ), InvocationInformation, this.ParameterSetName, __correlationId, __processRecordId, null ); + if (token.IsCancellationRequested) + { + return ; + } + WriteDebug($"{id}: {(messageData().Message ?? global::System.String.Empty)}"); + } + } + + /// Performs execution of the command. + protected override void ProcessRecord() + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + if (ShouldProcess($"Call remote 'PartnerTopicsUpdate' operation")) + { + using( var asyncCommandRuntime = new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token); + } + } + } + catch (global::System.AggregateException aggregateException) + { + // unroll the inner exceptions to get the root cause + foreach( var innerException in aggregateException.Flatten().InnerExceptions ) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(innerException,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + } + catch (global::System.Exception exception) when ((exception as System.Management.Automation.PipelineStoppedException)== null || (exception as System.Management.Automation.PipelineStoppedException).InnerException != null) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(exception,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + finally + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletProcessRecordEnd).Wait(); + } + } + + /// Performs execution of the command, working asynchronously if required. + /// + /// A that will be complete when handling of the method is completed. + /// + protected async global::System.Threading.Tasks.Task ProcessRecordAsync() + { + using( NoSynchronizationContext ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + if (InputObject?.Id != null) + { + await this.Client.PartnerTopicsUpdateViaIdentity(InputObject.Id, _partnerTopicUpdateParametersBody, onOk, onCreated, 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.PartnerTopicName) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.PartnerTopicName"),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, InputObject) ); + } + await this.Client.PartnerTopicsUpdate(InputObject.SubscriptionId ?? null, InputObject.ResourceGroupName ?? null, InputObject.PartnerTopicName ?? null, _partnerTopicUpdateParametersBody, onOk, onCreated, onDefault, this, Pipeline); + } + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.UndeclaredResponseException urexception) + { + WriteError(new global::System.Management.Automation.ErrorRecord(urexception, urexception.StatusCode.ToString(), global::System.Management.Automation.ErrorCategory.InvalidOperation, new { body=_partnerTopicUpdateParametersBody}) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(urexception.Message) { RecommendedAction = urexception.Action } + }); + } + finally + { + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Cancel(); + base.StopProcessing(); + } + + /// + /// Intializes a new instance of the cmdlet class. + /// + public UpdateAzEventGridPartnerTopic_UpdateViaIdentityExpanded() + { + + } + + /// 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.EventGrid.Models.Api20211015Preview.IPartnerTopic + 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. + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onDefault(global::System.Net.Http.HttpResponseMessage responseMessage) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnDefault(responseMessage, ref _returnNow); + // if overrideOnDefault has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // Error Response : default + // Unrecognized Response. Create an error record based on what we have. + var ex = new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.RestException(responseMessage); + WriteError( new global::System.Management.Automation.ErrorRecord(ex, ex.Code, global::System.Management.Automation.ErrorCategory.InvalidOperation, new { body=_partnerTopicUpdateParametersBody }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(ex.Message) { RecommendedAction = ex.Action } + }); + } + } + + /// a delegate that is called when the remote service returns 200 (OK). + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onOk(global::System.Net.Http.HttpResponseMessage responseMessage) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnOk(responseMessage, ref _returnNow); + // if overrideOnOk has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // onOk - response for 200 / + if (true == MyInvocation?.BoundParameters?.ContainsKey("PassThru")) + { + WriteObject(true); + } + } + } + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/cmdlets/UpdateAzEventGridSystemTopicEventSubscription_UpdateExpanded.cs b/swaggerci/eventgrid/generated/cmdlets/UpdateAzEventGridSystemTopicEventSubscription_UpdateExpanded.cs new file mode 100644 index 000000000000..58579f34513f --- /dev/null +++ b/swaggerci/eventgrid/generated/cmdlets/UpdateAzEventGridSystemTopicEventSubscription_UpdateExpanded.cs @@ -0,0 +1,666 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Extensions; + using System; + + /// Update an existing event subscription of a system topic. + /// + /// [OpenAPI] Update=>PATCH:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.EventGrid/systemTopics/{systemTopicName}/eventSubscriptions/{eventSubscriptionName}" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsData.Update, @"AzEventGridSystemTopicEventSubscription_UpdateExpanded", SupportsShouldProcess = true)] + [global::System.Management.Automation.OutputType(typeof(bool))] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Description(@"Update an existing event subscription of a system topic.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Generated] + public partial class UpdateAzEventGridSystemTopicEventSubscription_UpdateExpanded : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener + { + /// A unique id generatd for the this cmdlet when it is instantiated. + private string __correlationId = System.Guid.NewGuid().ToString(); + + /// A copy of the Invocation Info (necessary to allow asJob to clone this cmdlet) + private global::System.Management.Automation.InvocationInfo __invocationInfo; + + /// A unique id generatd for the this cmdlet when ProcessRecord() is called. + private string __processRecordId; + + /// + /// The for this operation. + /// + private global::System.Threading.CancellationTokenSource _cancellationTokenSource = new global::System.Threading.CancellationTokenSource(); + + /// Properties of the Event Subscription update. + private Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionUpdateParameters _eventSubscriptionUpdateParametersBody = new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.EventSubscriptionUpdateParameters(); + + /// 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.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.EventGridManagementClient Client => Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.ClientAPI; + + /// + /// The type of managed identity used. The type 'SystemAssigned, UserAssigned' includes both an implicitly created identity + /// and a set of user-assigned identities. The type 'None' will remove any identity. + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The type of managed identity used. The type 'SystemAssigned, UserAssigned' includes both an implicitly created identity and a set of user-assigned identities. The type 'None' will remove any identity.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The type of managed identity used. The type 'SystemAssigned, UserAssigned' includes both an implicitly created identity and a set of user-assigned identities. The type 'None' will remove any identity.", + SerializedName = @"type", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EventSubscriptionIdentityType) })] + [global::System.Management.Automation.ArgumentCompleter(typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EventSubscriptionIdentityType))] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EventSubscriptionIdentityType DeadLetterWithResourceIdentityType { get => _eventSubscriptionUpdateParametersBody.DeadLetterWithResourceIdentityType ?? ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EventSubscriptionIdentityType)""); set => _eventSubscriptionUpdateParametersBody.DeadLetterWithResourceIdentityType = value; } + + /// The user identity associated with the resource. + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The user identity associated with the resource.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The user identity associated with the resource.", + SerializedName = @"userAssignedIdentity", + PossibleTypes = new [] { typeof(string) })] + public string DeadLetterWithResourceIdentityUserAssignedIdentity { get => _eventSubscriptionUpdateParametersBody.DeadLetterWithResourceIdentityUserAssignedIdentity ?? null; set => _eventSubscriptionUpdateParametersBody.DeadLetterWithResourceIdentityUserAssignedIdentity = 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.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Azure)] + public global::System.Management.Automation.PSObject DefaultProfile { get; set; } + + /// Type of the endpoint for the event subscription destination. + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Type of the endpoint for the event subscription destination.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Type of the endpoint for the event subscription destination.", + SerializedName = @"endpointType", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EndpointType) })] + [global::System.Management.Automation.ArgumentCompleter(typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EndpointType))] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EndpointType DeliveryWithResourceIdentityDestinationEndpointType { get => _eventSubscriptionUpdateParametersBody.DeliveryWithResourceIdentityDestinationEndpointType ?? ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EndpointType)""); set => _eventSubscriptionUpdateParametersBody.DeliveryWithResourceIdentityDestinationEndpointType = value; } + + /// + /// The type of managed identity used. The type 'SystemAssigned, UserAssigned' includes both an implicitly created identity + /// and a set of user-assigned identities. The type 'None' will remove any identity. + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The type of managed identity used. The type 'SystemAssigned, UserAssigned' includes both an implicitly created identity and a set of user-assigned identities. The type 'None' will remove any identity.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The type of managed identity used. The type 'SystemAssigned, UserAssigned' includes both an implicitly created identity and a set of user-assigned identities. The type 'None' will remove any identity.", + SerializedName = @"type", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EventSubscriptionIdentityType) })] + [global::System.Management.Automation.ArgumentCompleter(typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EventSubscriptionIdentityType))] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EventSubscriptionIdentityType DeliveryWithResourceIdentityType { get => _eventSubscriptionUpdateParametersBody.DeliveryWithResourceIdentityType ?? ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EventSubscriptionIdentityType)""); set => _eventSubscriptionUpdateParametersBody.DeliveryWithResourceIdentityType = value; } + + /// The user identity associated with the resource. + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The user identity associated with the resource.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The user identity associated with the resource.", + SerializedName = @"userAssignedIdentity", + PossibleTypes = new [] { typeof(string) })] + public string DeliveryWithResourceIdentityUserAssignedIdentity { get => _eventSubscriptionUpdateParametersBody.DeliveryWithResourceIdentityUserAssignedIdentity ?? null; set => _eventSubscriptionUpdateParametersBody.DeliveryWithResourceIdentityUserAssignedIdentity = value; } + + /// Type of the endpoint for the event subscription destination. + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Type of the endpoint for the event subscription destination.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Type of the endpoint for the event subscription destination.", + SerializedName = @"endpointType", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EndpointType) })] + [global::System.Management.Automation.ArgumentCompleter(typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EndpointType))] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EndpointType EndpointType { get => _eventSubscriptionUpdateParametersBody.EndpointType ?? ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EndpointType)""); set => _eventSubscriptionUpdateParametersBody.EndpointType = value; } + + /// The event delivery schema for the event subscription. + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The event delivery schema for the event subscription.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The event delivery schema for the event subscription.", + SerializedName = @"eventDeliverySchema", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EventDeliverySchema) })] + [global::System.Management.Automation.ArgumentCompleter(typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EventDeliverySchema))] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EventDeliverySchema EventDeliverySchema { get => _eventSubscriptionUpdateParametersBody.EventDeliverySchema ?? ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EventDeliverySchema)""); set => _eventSubscriptionUpdateParametersBody.EventDeliverySchema = value; } + + /// Backing field for property. + private string _eventSubscriptionName; + + /// + /// Name of the event subscription to be created. Event subscription names must be between 3 and 100 characters in length + /// and use alphanumeric letters only. + /// + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Name of the event subscription to be created. Event subscription names must be between 3 and 100 characters in length and use alphanumeric letters only.")] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Name of the event subscription to be created. Event subscription names must be between 3 and 100 characters in length and use alphanumeric letters only.", + SerializedName = @"eventSubscriptionName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Path)] + public string EventSubscriptionName { get => this._eventSubscriptionName; set => this._eventSubscriptionName = value; } + + /// Information about the expiration time for the event subscription. + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Information about the expiration time for the event subscription.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Information about the expiration time for the event subscription.", + SerializedName = @"expirationTimeUtc", + PossibleTypes = new [] { typeof(global::System.DateTime) })] + public global::System.DateTime ExpirationTimeUtc { get => _eventSubscriptionUpdateParametersBody.ExpirationTimeUtc ?? default(global::System.DateTime); set => _eventSubscriptionUpdateParametersBody.ExpirationTimeUtc = value; } + + /// An array of advanced filters that are used for filtering event subscriptions. + [global::System.Management.Automation.AllowEmptyCollection] + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "An array of advanced filters that are used for filtering event subscriptions.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"An array of advanced filters that are used for filtering event subscriptions.", + SerializedName = @"advancedFilters", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IAdvancedFilter) })] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IAdvancedFilter[] FilterAdvancedFilter { get => _eventSubscriptionUpdateParametersBody.FilterAdvancedFilter ?? null /* arrayOf */; set => _eventSubscriptionUpdateParametersBody.FilterAdvancedFilter = value; } + + /// + /// Allows advanced filters to be evaluated against an array of values instead of expecting a singular value. + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Allows advanced filters to be evaluated against an array of values instead of expecting a singular value.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Allows advanced filters to be evaluated against an array of values instead of expecting a singular value.", + SerializedName = @"enableAdvancedFilteringOnArrays", + PossibleTypes = new [] { typeof(global::System.Management.Automation.SwitchParameter) })] + public global::System.Management.Automation.SwitchParameter FilterEnableAdvancedFilteringOnArray { get => _eventSubscriptionUpdateParametersBody.FilterEnableAdvancedFilteringOnArray ?? default(global::System.Management.Automation.SwitchParameter); set => _eventSubscriptionUpdateParametersBody.FilterEnableAdvancedFilteringOnArray = value; } + + /// + /// A list of applicable event types that need to be part of the event subscription. If it is desired to subscribe to all + /// default event types, set the IncludedEventTypes to null. + /// + [global::System.Management.Automation.AllowEmptyCollection] + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "A list of applicable event types that need to be part of the event subscription. If it is desired to subscribe to all default event types, set the IncludedEventTypes to null.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"A list of applicable event types that need to be part of the event subscription. If it is desired to subscribe to all default event types, set the IncludedEventTypes to null.", + SerializedName = @"includedEventTypes", + PossibleTypes = new [] { typeof(string) })] + public string[] FilterIncludedEventType { get => _eventSubscriptionUpdateParametersBody.FilterIncludedEventType ?? null /* arrayOf */; set => _eventSubscriptionUpdateParametersBody.FilterIncludedEventType = value; } + + /// + /// Specifies if the SubjectBeginsWith and SubjectEndsWith properties of the filtershould be compared in a case sensitive + /// manner. + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Specifies if the SubjectBeginsWith and SubjectEndsWith properties of the filtershould be compared in a case sensitive manner.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Specifies if the SubjectBeginsWith and SubjectEndsWith properties of the filtershould be compared in a case sensitive manner.", + SerializedName = @"isSubjectCaseSensitive", + PossibleTypes = new [] { typeof(global::System.Management.Automation.SwitchParameter) })] + public global::System.Management.Automation.SwitchParameter FilterIsSubjectCaseSensitive { get => _eventSubscriptionUpdateParametersBody.FilterIsSubjectCaseSensitive ?? default(global::System.Management.Automation.SwitchParameter); set => _eventSubscriptionUpdateParametersBody.FilterIsSubjectCaseSensitive = value; } + + /// + /// An optional string to filter events for an event subscription based on a resource path prefix.The format of this depends + /// on the publisher of the events.Wildcard characters are not supported in this path. + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "An optional string to filter events for an event subscription based on a resource path prefix.The format of this depends on the publisher of the events.Wildcard characters are not supported in this path.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"An optional string to filter events for an event subscription based on a resource path prefix.The format of this depends on the publisher of the events.Wildcard characters are not supported in this path.", + SerializedName = @"subjectBeginsWith", + PossibleTypes = new [] { typeof(string) })] + public string FilterSubjectBeginsWith { get => _eventSubscriptionUpdateParametersBody.FilterSubjectBeginsWith ?? null; set => _eventSubscriptionUpdateParametersBody.FilterSubjectBeginsWith = value; } + + /// + /// An optional string to filter events for an event subscription based on a resource path suffix.Wildcard characters are + /// not supported in this path. + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "An optional string to filter events for an event subscription based on a resource path suffix.Wildcard characters are not supported in this path.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"An optional string to filter events for an event subscription based on a resource path suffix.Wildcard characters are not supported in this path.", + SerializedName = @"subjectEndsWith", + PossibleTypes = new [] { typeof(string) })] + public string FilterSubjectEndsWith { get => _eventSubscriptionUpdateParametersBody.FilterSubjectEndsWith ?? null; set => _eventSubscriptionUpdateParametersBody.FilterSubjectEndsWith = 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.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[] HttpPipelineAppend { get; set; } + + /// SendAsync Pipeline Steps to be prepended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be prepended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[] HttpPipelinePrepend { get; set; } + + /// Accessor for our copy of the InvocationInfo. + public global::System.Management.Automation.InvocationInfo InvocationInformation { get => __invocationInfo = __invocationInfo ?? this.MyInvocation ; set { __invocationInfo = value; } } + + /// List of user defined labels. + [global::System.Management.Automation.AllowEmptyCollection] + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "List of user defined labels.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"List of user defined labels.", + SerializedName = @"labels", + PossibleTypes = new [] { typeof(string) })] + public string[] Label { get => _eventSubscriptionUpdateParametersBody.Label ?? null /* arrayOf */; set => _eventSubscriptionUpdateParametersBody.Label = value; } + + /// + /// cancellation delegate. Stops the cmdlet when called. + /// + global::System.Action Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter NoWait { get; set; } + + /// + /// When specified, forces the cmdlet return a 'bool' given that there isn't a return type by default. + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Returns true when the command succeeds")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Runtime.HttpPipeline Pipeline { get; set; } + + /// The URI for the proxy server to use + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "The URI for the proxy server to use")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Uri Proxy { get; set; } + + /// Credentials for a proxy server to use for the remote call + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Credentials for a proxy server to use for the remote call")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Management.Automation.PSCredential ProxyCredential { get; set; } + + /// Use the default credentials for the proxy + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Use the default credentials for the proxy")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter ProxyUseDefaultCredentials { get; set; } + + /// Backing field for property. + private string _resourceGroupName; + + /// The name of the resource group within the user's subscription. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the resource group within the user's subscription.")] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the resource group within the user's subscription.", + SerializedName = @"resourceGroupName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Path)] + public string ResourceGroupName { get => this._resourceGroupName; set => this._resourceGroupName = value; } + + /// Time To Live (in minutes) for events. + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Time To Live (in minutes) for events.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Time To Live (in minutes) for events.", + SerializedName = @"eventTimeToLiveInMinutes", + PossibleTypes = new [] { typeof(int) })] + public int RetryPolicyEventTimeToLiveInMinute { get => _eventSubscriptionUpdateParametersBody.RetryPolicyEventTimeToLiveInMinute ?? default(int); set => _eventSubscriptionUpdateParametersBody.RetryPolicyEventTimeToLiveInMinute = value; } + + /// Maximum number of delivery retry attempts for events. + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Maximum number of delivery retry attempts for events.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Maximum number of delivery retry attempts for events.", + SerializedName = @"maxDeliveryAttempts", + PossibleTypes = new [] { typeof(int) })] + public int RetryPolicyMaxDeliveryAttempt { get => _eventSubscriptionUpdateParametersBody.RetryPolicyMaxDeliveryAttempt ?? default(int); set => _eventSubscriptionUpdateParametersBody.RetryPolicyMaxDeliveryAttempt = value; } + + /// Backing field for property. + private string _subscriptionId; + + /// + /// Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription ID forms part of the + /// URI for every service call. + /// + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.")] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.", + SerializedName = @"subscriptionId", + PossibleTypes = new [] { typeof(string) })] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.DefaultInfo( + Name = @"", + Description =@"", + Script = @"(Get-AzContext).Subscription.Id")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Path)] + public string SubscriptionId { get => this._subscriptionId; set => this._subscriptionId = value; } + + /// Backing field for property. + private string _systemTopicName; + + /// Name of the system topic. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Name of the system topic.")] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Name of the system topic.", + SerializedName = @"systemTopicName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Path)] + public string SystemTopicName { get => this._systemTopicName; set => this._systemTopicName = value; } + + /// + /// overrideOnDefault will be called before the regular onDefault has been processed, allowing customization of what + /// happens on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// /// Determines if the rest of the onDefault method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnDefault(global::System.Net.Http.HttpResponseMessage responseMessage, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// (overrides the default BeginProcessing method in global::System.Management.Automation.PSCmdlet) + /// + protected override void BeginProcessing() + { + var telemetryId = Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.GetTelemetryId.Invoke(); + if (telemetryId != "" && telemetryId != "internal") + { + __correlationId = telemetryId; + } + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Creates a duplicate instance of this cmdlet (via JSON serialization). + /// + /// a duplicate instance of UpdateAzEventGridSystemTopicEventSubscription_UpdateExpanded + /// + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Cmdlets.UpdateAzEventGridSystemTopicEventSubscription_UpdateExpanded Clone() + { + var clone = new UpdateAzEventGridSystemTopicEventSubscription_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._eventSubscriptionUpdateParametersBody = this._eventSubscriptionUpdateParametersBody; + clone.SubscriptionId = this.SubscriptionId; + clone.ResourceGroupName = this.ResourceGroupName; + clone.SystemTopicName = this.SystemTopicName; + clone.EventSubscriptionName = this.EventSubscriptionName; + return clone; + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + + } + + /// Handles/Dispatches events during the call to the REST service. + /// The message id + /// The message cancellation token. When this call is cancelled, this should be true + /// Detailed message data for the message event. + /// + /// A that will be complete when handling of the message is completed. + /// + async global::System.Threading.Tasks.Task Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener.Signal(string id, global::System.Threading.CancellationToken token, global::System.Func messageData) + { + using( NoSynchronizationContext ) + { + if (token.IsCancellationRequested) + { + return ; + } + + switch ( id ) + { + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.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.EventGrid.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.EventGrid.Runtime.PowerShell.AsyncOperationResponse { Target = uri }); + // do nothing more. + data.Cancel(); + return; + } + } + break; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.EventData ), InvocationInformation, this.ParameterSetName, __correlationId, __processRecordId, null ); + if (token.IsCancellationRequested) + { + return ; + } + WriteDebug($"{id}: {(messageData().Message ?? global::System.String.Empty)}"); + } + } + + /// Performs execution of the command. + protected override void ProcessRecord() + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + if (ShouldProcess($"Call remote 'SystemTopicEventSubscriptionsUpdate' operation")) + { + if (true == MyInvocation?.BoundParameters?.ContainsKey("AsJob")) + { + var instance = this.Clone(); + var job = new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token); + } + } + } + } + catch (global::System.AggregateException aggregateException) + { + // unroll the inner exceptions to get the root cause + foreach( var innerException in aggregateException.Flatten().InnerExceptions ) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(innerException,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + } + catch (global::System.Exception exception) when ((exception as System.Management.Automation.PipelineStoppedException)== null || (exception as System.Management.Automation.PipelineStoppedException).InnerException != null) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(exception,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + finally + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletProcessRecordEnd).Wait(); + } + } + + /// Performs execution of the command, working asynchronously if required. + /// + /// A that will be complete when handling of the method is completed. + /// + protected async global::System.Threading.Tasks.Task ProcessRecordAsync() + { + using( NoSynchronizationContext ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await this.Client.SystemTopicEventSubscriptionsUpdate(SubscriptionId, ResourceGroupName, SystemTopicName, EventSubscriptionName, _eventSubscriptionUpdateParametersBody, onDefault, this, Pipeline); + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.UndeclaredResponseException urexception) + { + WriteError(new global::System.Management.Automation.ErrorRecord(urexception, urexception.StatusCode.ToString(), global::System.Management.Automation.ErrorCategory.InvalidOperation, new { SubscriptionId=SubscriptionId,ResourceGroupName=ResourceGroupName,SystemTopicName=SystemTopicName,EventSubscriptionName=EventSubscriptionName,body=_eventSubscriptionUpdateParametersBody}) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(urexception.Message) { RecommendedAction = urexception.Action } + }); + } + finally + { + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Cancel(); + base.StopProcessing(); + } + + /// + /// Intializes a new instance of the cmdlet class. + /// + public UpdateAzEventGridSystemTopicEventSubscription_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. + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onDefault(global::System.Net.Http.HttpResponseMessage responseMessage) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnDefault(responseMessage, ref _returnNow); + // if overrideOnDefault has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // Error Response : default + // Unrecognized Response. Create an error record based on what we have. + var ex = new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.RestException(responseMessage); + WriteError( new global::System.Management.Automation.ErrorRecord(ex, ex.Code, global::System.Management.Automation.ErrorCategory.InvalidOperation, new { SubscriptionId=SubscriptionId, ResourceGroupName=ResourceGroupName, SystemTopicName=SystemTopicName, EventSubscriptionName=EventSubscriptionName, body=_eventSubscriptionUpdateParametersBody }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(ex.Message) { RecommendedAction = ex.Action } + }); + } + } + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/cmdlets/UpdateAzEventGridSystemTopicEventSubscription_UpdateViaIdentityExpanded.cs b/swaggerci/eventgrid/generated/cmdlets/UpdateAzEventGridSystemTopicEventSubscription_UpdateViaIdentityExpanded.cs new file mode 100644 index 000000000000..5c94196c5fb6 --- /dev/null +++ b/swaggerci/eventgrid/generated/cmdlets/UpdateAzEventGridSystemTopicEventSubscription_UpdateViaIdentityExpanded.cs @@ -0,0 +1,629 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Extensions; + using System; + + /// Update an existing event subscription of a system topic. + /// + /// [OpenAPI] Update=>PATCH:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.EventGrid/systemTopics/{systemTopicName}/eventSubscriptions/{eventSubscriptionName}" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsData.Update, @"AzEventGridSystemTopicEventSubscription_UpdateViaIdentityExpanded", SupportsShouldProcess = true)] + [global::System.Management.Automation.OutputType(typeof(bool))] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Description(@"Update an existing event subscription of a system topic.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Generated] + public partial class UpdateAzEventGridSystemTopicEventSubscription_UpdateViaIdentityExpanded : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener + { + /// A unique id generatd for the this cmdlet when it is instantiated. + private string __correlationId = System.Guid.NewGuid().ToString(); + + /// A copy of the Invocation Info (necessary to allow asJob to clone this cmdlet) + private global::System.Management.Automation.InvocationInfo __invocationInfo; + + /// A unique id generatd for the this cmdlet when ProcessRecord() is called. + private string __processRecordId; + + /// + /// The for this operation. + /// + private global::System.Threading.CancellationTokenSource _cancellationTokenSource = new global::System.Threading.CancellationTokenSource(); + + /// Properties of the Event Subscription update. + private Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionUpdateParameters _eventSubscriptionUpdateParametersBody = new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.EventSubscriptionUpdateParameters(); + + /// 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.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.EventGridManagementClient Client => Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.ClientAPI; + + /// + /// The type of managed identity used. The type 'SystemAssigned, UserAssigned' includes both an implicitly created identity + /// and a set of user-assigned identities. The type 'None' will remove any identity. + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The type of managed identity used. The type 'SystemAssigned, UserAssigned' includes both an implicitly created identity and a set of user-assigned identities. The type 'None' will remove any identity.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The type of managed identity used. The type 'SystemAssigned, UserAssigned' includes both an implicitly created identity and a set of user-assigned identities. The type 'None' will remove any identity.", + SerializedName = @"type", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EventSubscriptionIdentityType) })] + [global::System.Management.Automation.ArgumentCompleter(typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EventSubscriptionIdentityType))] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EventSubscriptionIdentityType DeadLetterWithResourceIdentityType { get => _eventSubscriptionUpdateParametersBody.DeadLetterWithResourceIdentityType ?? ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EventSubscriptionIdentityType)""); set => _eventSubscriptionUpdateParametersBody.DeadLetterWithResourceIdentityType = value; } + + /// The user identity associated with the resource. + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The user identity associated with the resource.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The user identity associated with the resource.", + SerializedName = @"userAssignedIdentity", + PossibleTypes = new [] { typeof(string) })] + public string DeadLetterWithResourceIdentityUserAssignedIdentity { get => _eventSubscriptionUpdateParametersBody.DeadLetterWithResourceIdentityUserAssignedIdentity ?? null; set => _eventSubscriptionUpdateParametersBody.DeadLetterWithResourceIdentityUserAssignedIdentity = 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.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Azure)] + public global::System.Management.Automation.PSObject DefaultProfile { get; set; } + + /// Type of the endpoint for the event subscription destination. + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Type of the endpoint for the event subscription destination.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Type of the endpoint for the event subscription destination.", + SerializedName = @"endpointType", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EndpointType) })] + [global::System.Management.Automation.ArgumentCompleter(typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EndpointType))] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EndpointType DeliveryWithResourceIdentityDestinationEndpointType { get => _eventSubscriptionUpdateParametersBody.DeliveryWithResourceIdentityDestinationEndpointType ?? ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EndpointType)""); set => _eventSubscriptionUpdateParametersBody.DeliveryWithResourceIdentityDestinationEndpointType = value; } + + /// + /// The type of managed identity used. The type 'SystemAssigned, UserAssigned' includes both an implicitly created identity + /// and a set of user-assigned identities. The type 'None' will remove any identity. + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The type of managed identity used. The type 'SystemAssigned, UserAssigned' includes both an implicitly created identity and a set of user-assigned identities. The type 'None' will remove any identity.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The type of managed identity used. The type 'SystemAssigned, UserAssigned' includes both an implicitly created identity and a set of user-assigned identities. The type 'None' will remove any identity.", + SerializedName = @"type", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EventSubscriptionIdentityType) })] + [global::System.Management.Automation.ArgumentCompleter(typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EventSubscriptionIdentityType))] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EventSubscriptionIdentityType DeliveryWithResourceIdentityType { get => _eventSubscriptionUpdateParametersBody.DeliveryWithResourceIdentityType ?? ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EventSubscriptionIdentityType)""); set => _eventSubscriptionUpdateParametersBody.DeliveryWithResourceIdentityType = value; } + + /// The user identity associated with the resource. + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The user identity associated with the resource.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The user identity associated with the resource.", + SerializedName = @"userAssignedIdentity", + PossibleTypes = new [] { typeof(string) })] + public string DeliveryWithResourceIdentityUserAssignedIdentity { get => _eventSubscriptionUpdateParametersBody.DeliveryWithResourceIdentityUserAssignedIdentity ?? null; set => _eventSubscriptionUpdateParametersBody.DeliveryWithResourceIdentityUserAssignedIdentity = value; } + + /// Type of the endpoint for the event subscription destination. + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Type of the endpoint for the event subscription destination.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Type of the endpoint for the event subscription destination.", + SerializedName = @"endpointType", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EndpointType) })] + [global::System.Management.Automation.ArgumentCompleter(typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EndpointType))] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EndpointType EndpointType { get => _eventSubscriptionUpdateParametersBody.EndpointType ?? ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EndpointType)""); set => _eventSubscriptionUpdateParametersBody.EndpointType = value; } + + /// The event delivery schema for the event subscription. + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The event delivery schema for the event subscription.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The event delivery schema for the event subscription.", + SerializedName = @"eventDeliverySchema", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EventDeliverySchema) })] + [global::System.Management.Automation.ArgumentCompleter(typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EventDeliverySchema))] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EventDeliverySchema EventDeliverySchema { get => _eventSubscriptionUpdateParametersBody.EventDeliverySchema ?? ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EventDeliverySchema)""); set => _eventSubscriptionUpdateParametersBody.EventDeliverySchema = value; } + + /// Information about the expiration time for the event subscription. + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Information about the expiration time for the event subscription.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Information about the expiration time for the event subscription.", + SerializedName = @"expirationTimeUtc", + PossibleTypes = new [] { typeof(global::System.DateTime) })] + public global::System.DateTime ExpirationTimeUtc { get => _eventSubscriptionUpdateParametersBody.ExpirationTimeUtc ?? default(global::System.DateTime); set => _eventSubscriptionUpdateParametersBody.ExpirationTimeUtc = value; } + + /// An array of advanced filters that are used for filtering event subscriptions. + [global::System.Management.Automation.AllowEmptyCollection] + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "An array of advanced filters that are used for filtering event subscriptions.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"An array of advanced filters that are used for filtering event subscriptions.", + SerializedName = @"advancedFilters", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IAdvancedFilter) })] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IAdvancedFilter[] FilterAdvancedFilter { get => _eventSubscriptionUpdateParametersBody.FilterAdvancedFilter ?? null /* arrayOf */; set => _eventSubscriptionUpdateParametersBody.FilterAdvancedFilter = value; } + + /// + /// Allows advanced filters to be evaluated against an array of values instead of expecting a singular value. + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Allows advanced filters to be evaluated against an array of values instead of expecting a singular value.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Allows advanced filters to be evaluated against an array of values instead of expecting a singular value.", + SerializedName = @"enableAdvancedFilteringOnArrays", + PossibleTypes = new [] { typeof(global::System.Management.Automation.SwitchParameter) })] + public global::System.Management.Automation.SwitchParameter FilterEnableAdvancedFilteringOnArray { get => _eventSubscriptionUpdateParametersBody.FilterEnableAdvancedFilteringOnArray ?? default(global::System.Management.Automation.SwitchParameter); set => _eventSubscriptionUpdateParametersBody.FilterEnableAdvancedFilteringOnArray = value; } + + /// + /// A list of applicable event types that need to be part of the event subscription. If it is desired to subscribe to all + /// default event types, set the IncludedEventTypes to null. + /// + [global::System.Management.Automation.AllowEmptyCollection] + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "A list of applicable event types that need to be part of the event subscription. If it is desired to subscribe to all default event types, set the IncludedEventTypes to null.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"A list of applicable event types that need to be part of the event subscription. If it is desired to subscribe to all default event types, set the IncludedEventTypes to null.", + SerializedName = @"includedEventTypes", + PossibleTypes = new [] { typeof(string) })] + public string[] FilterIncludedEventType { get => _eventSubscriptionUpdateParametersBody.FilterIncludedEventType ?? null /* arrayOf */; set => _eventSubscriptionUpdateParametersBody.FilterIncludedEventType = value; } + + /// + /// Specifies if the SubjectBeginsWith and SubjectEndsWith properties of the filtershould be compared in a case sensitive + /// manner. + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Specifies if the SubjectBeginsWith and SubjectEndsWith properties of the filtershould be compared in a case sensitive manner.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Specifies if the SubjectBeginsWith and SubjectEndsWith properties of the filtershould be compared in a case sensitive manner.", + SerializedName = @"isSubjectCaseSensitive", + PossibleTypes = new [] { typeof(global::System.Management.Automation.SwitchParameter) })] + public global::System.Management.Automation.SwitchParameter FilterIsSubjectCaseSensitive { get => _eventSubscriptionUpdateParametersBody.FilterIsSubjectCaseSensitive ?? default(global::System.Management.Automation.SwitchParameter); set => _eventSubscriptionUpdateParametersBody.FilterIsSubjectCaseSensitive = value; } + + /// + /// An optional string to filter events for an event subscription based on a resource path prefix.The format of this depends + /// on the publisher of the events.Wildcard characters are not supported in this path. + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "An optional string to filter events for an event subscription based on a resource path prefix.The format of this depends on the publisher of the events.Wildcard characters are not supported in this path.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"An optional string to filter events for an event subscription based on a resource path prefix.The format of this depends on the publisher of the events.Wildcard characters are not supported in this path.", + SerializedName = @"subjectBeginsWith", + PossibleTypes = new [] { typeof(string) })] + public string FilterSubjectBeginsWith { get => _eventSubscriptionUpdateParametersBody.FilterSubjectBeginsWith ?? null; set => _eventSubscriptionUpdateParametersBody.FilterSubjectBeginsWith = value; } + + /// + /// An optional string to filter events for an event subscription based on a resource path suffix.Wildcard characters are + /// not supported in this path. + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "An optional string to filter events for an event subscription based on a resource path suffix.Wildcard characters are not supported in this path.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"An optional string to filter events for an event subscription based on a resource path suffix.Wildcard characters are not supported in this path.", + SerializedName = @"subjectEndsWith", + PossibleTypes = new [] { typeof(string) })] + public string FilterSubjectEndsWith { get => _eventSubscriptionUpdateParametersBody.FilterSubjectEndsWith ?? null; set => _eventSubscriptionUpdateParametersBody.FilterSubjectEndsWith = 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.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[] HttpPipelineAppend { get; set; } + + /// SendAsync Pipeline Steps to be prepended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be prepended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[] HttpPipelinePrepend { get; set; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.IEventGridIdentity _inputObject; + + /// Identity Parameter + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Identity Parameter", ValueFromPipeline = true)] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Path)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.IEventGridIdentity InputObject { get => this._inputObject; set => this._inputObject = value; } + + /// Accessor for our copy of the InvocationInfo. + public global::System.Management.Automation.InvocationInfo InvocationInformation { get => __invocationInfo = __invocationInfo ?? this.MyInvocation ; set { __invocationInfo = value; } } + + /// List of user defined labels. + [global::System.Management.Automation.AllowEmptyCollection] + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "List of user defined labels.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"List of user defined labels.", + SerializedName = @"labels", + PossibleTypes = new [] { typeof(string) })] + public string[] Label { get => _eventSubscriptionUpdateParametersBody.Label ?? null /* arrayOf */; set => _eventSubscriptionUpdateParametersBody.Label = value; } + + /// + /// cancellation delegate. Stops the cmdlet when called. + /// + global::System.Action Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter NoWait { get; set; } + + /// + /// When specified, forces the cmdlet return a 'bool' given that there isn't a return type by default. + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Returns true when the command succeeds")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Runtime.HttpPipeline Pipeline { get; set; } + + /// The URI for the proxy server to use + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "The URI for the proxy server to use")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Uri Proxy { get; set; } + + /// Credentials for a proxy server to use for the remote call + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Credentials for a proxy server to use for the remote call")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Management.Automation.PSCredential ProxyCredential { get; set; } + + /// Use the default credentials for the proxy + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Use the default credentials for the proxy")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter ProxyUseDefaultCredentials { get; set; } + + /// Time To Live (in minutes) for events. + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Time To Live (in minutes) for events.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Time To Live (in minutes) for events.", + SerializedName = @"eventTimeToLiveInMinutes", + PossibleTypes = new [] { typeof(int) })] + public int RetryPolicyEventTimeToLiveInMinute { get => _eventSubscriptionUpdateParametersBody.RetryPolicyEventTimeToLiveInMinute ?? default(int); set => _eventSubscriptionUpdateParametersBody.RetryPolicyEventTimeToLiveInMinute = value; } + + /// Maximum number of delivery retry attempts for events. + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Maximum number of delivery retry attempts for events.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Maximum number of delivery retry attempts for events.", + SerializedName = @"maxDeliveryAttempts", + PossibleTypes = new [] { typeof(int) })] + public int RetryPolicyMaxDeliveryAttempt { get => _eventSubscriptionUpdateParametersBody.RetryPolicyMaxDeliveryAttempt ?? default(int); set => _eventSubscriptionUpdateParametersBody.RetryPolicyMaxDeliveryAttempt = value; } + + /// + /// overrideOnDefault will be called before the regular onDefault has been processed, allowing customization of what + /// happens on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// /// Determines if the rest of the onDefault method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnDefault(global::System.Net.Http.HttpResponseMessage responseMessage, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// (overrides the default BeginProcessing method in global::System.Management.Automation.PSCmdlet) + /// + protected override void BeginProcessing() + { + var telemetryId = Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.GetTelemetryId.Invoke(); + if (telemetryId != "" && telemetryId != "internal") + { + __correlationId = telemetryId; + } + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Creates a duplicate instance of this cmdlet (via JSON serialization). + /// + /// a duplicate instance of UpdateAzEventGridSystemTopicEventSubscription_UpdateViaIdentityExpanded + /// + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Cmdlets.UpdateAzEventGridSystemTopicEventSubscription_UpdateViaIdentityExpanded Clone() + { + var clone = new UpdateAzEventGridSystemTopicEventSubscription_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._eventSubscriptionUpdateParametersBody = this._eventSubscriptionUpdateParametersBody; + return clone; + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + + } + + /// Handles/Dispatches events during the call to the REST service. + /// The message id + /// The message cancellation token. When this call is cancelled, this should be true + /// Detailed message data for the message event. + /// + /// A that will be complete when handling of the message is completed. + /// + async global::System.Threading.Tasks.Task Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener.Signal(string id, global::System.Threading.CancellationToken token, global::System.Func messageData) + { + using( NoSynchronizationContext ) + { + if (token.IsCancellationRequested) + { + return ; + } + + switch ( id ) + { + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.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.EventGrid.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.EventGrid.Runtime.PowerShell.AsyncOperationResponse { Target = uri }); + // do nothing more. + data.Cancel(); + return; + } + } + break; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.EventData ), InvocationInformation, this.ParameterSetName, __correlationId, __processRecordId, null ); + if (token.IsCancellationRequested) + { + return ; + } + WriteDebug($"{id}: {(messageData().Message ?? global::System.String.Empty)}"); + } + } + + /// Performs execution of the command. + protected override void ProcessRecord() + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + if (ShouldProcess($"Call remote 'SystemTopicEventSubscriptionsUpdate' operation")) + { + if (true == MyInvocation?.BoundParameters?.ContainsKey("AsJob")) + { + var instance = this.Clone(); + var job = new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token); + } + } + } + } + catch (global::System.AggregateException aggregateException) + { + // unroll the inner exceptions to get the root cause + foreach( var innerException in aggregateException.Flatten().InnerExceptions ) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(innerException,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + } + catch (global::System.Exception exception) when ((exception as System.Management.Automation.PipelineStoppedException)== null || (exception as System.Management.Automation.PipelineStoppedException).InnerException != null) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(exception,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + finally + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletProcessRecordEnd).Wait(); + } + } + + /// Performs execution of the command, working asynchronously if required. + /// + /// A that will be complete when handling of the method is completed. + /// + protected async global::System.Threading.Tasks.Task ProcessRecordAsync() + { + using( NoSynchronizationContext ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + if (InputObject?.Id != null) + { + await this.Client.SystemTopicEventSubscriptionsUpdateViaIdentity(InputObject.Id, _eventSubscriptionUpdateParametersBody, 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.SystemTopicName) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.SystemTopicName"),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, InputObject) ); + } + if (null == InputObject.EventSubscriptionName) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.EventSubscriptionName"),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, InputObject) ); + } + await this.Client.SystemTopicEventSubscriptionsUpdate(InputObject.SubscriptionId ?? null, InputObject.ResourceGroupName ?? null, InputObject.SystemTopicName ?? null, InputObject.EventSubscriptionName ?? null, _eventSubscriptionUpdateParametersBody, onDefault, this, Pipeline); + } + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.UndeclaredResponseException urexception) + { + WriteError(new global::System.Management.Automation.ErrorRecord(urexception, urexception.StatusCode.ToString(), global::System.Management.Automation.ErrorCategory.InvalidOperation, new { body=_eventSubscriptionUpdateParametersBody}) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(urexception.Message) { RecommendedAction = urexception.Action } + }); + } + finally + { + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Cancel(); + base.StopProcessing(); + } + + /// + /// Intializes a new instance of the + /// cmdlet class. + /// + public UpdateAzEventGridSystemTopicEventSubscription_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. + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onDefault(global::System.Net.Http.HttpResponseMessage responseMessage) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnDefault(responseMessage, ref _returnNow); + // if overrideOnDefault has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // Error Response : default + // Unrecognized Response. Create an error record based on what we have. + var ex = new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.RestException(responseMessage); + WriteError( new global::System.Management.Automation.ErrorRecord(ex, ex.Code, global::System.Management.Automation.ErrorCategory.InvalidOperation, new { body=_eventSubscriptionUpdateParametersBody }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(ex.Message) { RecommendedAction = ex.Action } + }); + } + } + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/cmdlets/UpdateAzEventGridSystemTopic_UpdateExpanded.cs b/swaggerci/eventgrid/generated/cmdlets/UpdateAzEventGridSystemTopic_UpdateExpanded.cs new file mode 100644 index 000000000000..d8b4a61f7011 --- /dev/null +++ b/swaggerci/eventgrid/generated/cmdlets/UpdateAzEventGridSystemTopic_UpdateExpanded.cs @@ -0,0 +1,533 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Extensions; + using System; + + /// Asynchronously updates a system topic with the specified parameters. + /// + /// [OpenAPI] Update=>PATCH:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.EventGrid/systemTopics/{systemTopicName}" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsData.Update, @"AzEventGridSystemTopic_UpdateExpanded", SupportsShouldProcess = true)] + [global::System.Management.Automation.OutputType(typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ISystemTopic))] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Description(@"Asynchronously updates a system topic with the specified parameters.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Generated] + public partial class UpdateAzEventGridSystemTopic_UpdateExpanded : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener + { + /// A unique id generatd for the this cmdlet when it is instantiated. + private string __correlationId = System.Guid.NewGuid().ToString(); + + /// A copy of the Invocation Info (necessary to allow asJob to clone this cmdlet) + private global::System.Management.Automation.InvocationInfo __invocationInfo; + + /// A unique id generatd for the this cmdlet when ProcessRecord() is called. + private string __processRecordId; + + /// + /// The for this operation. + /// + private global::System.Threading.CancellationTokenSource _cancellationTokenSource = new global::System.Threading.CancellationTokenSource(); + + /// Properties of the System Topic update. + private Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ISystemTopicUpdateParameters _systemTopicUpdateParametersBody = new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.SystemTopicUpdateParameters(); + + /// 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.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.EventGridManagementClient Client => Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.ClientAPI; + + /// + /// The credentials, account, tenant, and subscription used for communication with Azure + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The credentials, account, tenant, and subscription used for communication with Azure.")] + [global::System.Management.Automation.ValidateNotNull] + [global::System.Management.Automation.Alias("AzureRMContext", "AzureCredential")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Azure)] + public global::System.Management.Automation.PSObject DefaultProfile { get; set; } + + /// SendAsync Pipeline Steps to be appended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be appended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[] HttpPipelineAppend { get; set; } + + /// SendAsync Pipeline Steps to be prepended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be prepended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[] HttpPipelinePrepend { get; set; } + + /// The principal ID of resource identity. + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The principal ID of resource identity.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The principal ID of resource identity.", + SerializedName = @"principalId", + PossibleTypes = new [] { typeof(string) })] + public string IdentityPrincipalId { get => _systemTopicUpdateParametersBody.IdentityPrincipalId ?? null; set => _systemTopicUpdateParametersBody.IdentityPrincipalId = value; } + + /// The tenant ID of resource. + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The tenant ID of resource.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The tenant ID of resource.", + SerializedName = @"tenantId", + PossibleTypes = new [] { typeof(string) })] + public string IdentityTenantId { get => _systemTopicUpdateParametersBody.IdentityTenantId ?? null; set => _systemTopicUpdateParametersBody.IdentityTenantId = value; } + + /// + /// The type of managed identity used. The type 'SystemAssigned, UserAssigned' includes both an implicitly created identity + /// and a set of user-assigned identities. The type 'None' will remove any identity. + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The type of managed identity used. The type 'SystemAssigned, UserAssigned' includes both an implicitly created identity and a set of user-assigned identities. The type 'None' will remove any identity.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The type of managed identity used. The type 'SystemAssigned, UserAssigned' includes both an implicitly created identity and a set of user-assigned identities. The type 'None' will remove any identity.", + SerializedName = @"type", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.IdentityType) })] + [global::System.Management.Automation.ArgumentCompleter(typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.IdentityType))] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.IdentityType IdentityType { get => _systemTopicUpdateParametersBody.IdentityType ?? ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.IdentityType)""); set => _systemTopicUpdateParametersBody.IdentityType = value; } + + /// + /// The list of user identities associated with the resource. The user identity dictionary key references will be ARM resource + /// ids in the form:'/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ManagedIdentity/userAssignedIdentities/{identityName}'.This + /// property is currently not used and reserved for future usage. + /// + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ExportAs(typeof(global::System.Collections.Hashtable))] + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The list of user identities associated with the resource. The user identity dictionary key references will be ARM resource ids in the form:'/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ManagedIdentity/userAssignedIdentities/{identityName}'.This property is currently not used and reserved for future usage.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The list of user identities associated with the resource. The user identity dictionary key references will be ARM resource ids in the form:'/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ManagedIdentity/userAssignedIdentities/{identityName}'.This property is currently not used and reserved for future usage.", + SerializedName = @"userAssignedIdentities", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IIdentityInfoUserAssignedIdentities) })] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IIdentityInfoUserAssignedIdentities IdentityUserAssignedIdentity { get => _systemTopicUpdateParametersBody.IdentityUserAssignedIdentity ?? null /* object */; set => _systemTopicUpdateParametersBody.IdentityUserAssignedIdentity = value; } + + /// Accessor for our copy of the InvocationInfo. + public global::System.Management.Automation.InvocationInfo InvocationInformation { get => __invocationInfo = __invocationInfo ?? this.MyInvocation ; set { __invocationInfo = value; } } + + /// + /// cancellation delegate. Stops the cmdlet when called. + /// + global::System.Action Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener.Token => _cancellationTokenSource.Token; + + /// Backing field for property. + private string _name; + + /// Name of the system topic. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Name of the system topic.")] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Name of the system topic.", + SerializedName = @"systemTopicName", + PossibleTypes = new [] { typeof(string) })] + [global::System.Management.Automation.Alias("SystemTopicName")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Path)] + public string Name { get => this._name; set => this._name = value; } + + /// + /// when specified, will make the remote call, and return an AsyncOperationResponse, letting the remote operation continue + /// asynchronously. + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Run the command asynchronously")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter NoWait { get; set; } + + /// + /// When specified, forces the cmdlet return a 'bool' given that there isn't a return type by default. + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Returns true when the command succeeds")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Runtime.HttpPipeline Pipeline { get; set; } + + /// The URI for the proxy server to use + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "The URI for the proxy server to use")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Uri Proxy { get; set; } + + /// Credentials for a proxy server to use for the remote call + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Credentials for a proxy server to use for the remote call")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Management.Automation.PSCredential ProxyCredential { get; set; } + + /// Use the default credentials for the proxy + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Use the default credentials for the proxy")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter ProxyUseDefaultCredentials { get; set; } + + /// Backing field for property. + private string _resourceGroupName; + + /// The name of the resource group within the user's subscription. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the resource group within the user's subscription.")] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the resource group within the user's subscription.", + SerializedName = @"resourceGroupName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Path)] + public string ResourceGroupName { get => this._resourceGroupName; set => this._resourceGroupName = value; } + + /// Backing field for property. + private string _subscriptionId; + + /// + /// Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription ID forms part of the + /// URI for every service call. + /// + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.")] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.", + SerializedName = @"subscriptionId", + PossibleTypes = new [] { typeof(string) })] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.DefaultInfo( + Name = @"", + Description =@"", + Script = @"(Get-AzContext).Subscription.Id")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Path)] + public string SubscriptionId { get => this._subscriptionId; set => this._subscriptionId = value; } + + /// Tags of the system topic. + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ExportAs(typeof(global::System.Collections.Hashtable))] + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Tags of the system topic.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Tags of the system topic.", + SerializedName = @"tags", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ISystemTopicUpdateParametersTags) })] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ISystemTopicUpdateParametersTags Tag { get => _systemTopicUpdateParametersBody.Tag ?? null /* object */; set => _systemTopicUpdateParametersBody.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. + /// /// Determines if the rest of the onDefault method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnDefault(global::System.Net.Http.HttpResponseMessage responseMessage, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnOk will be called before the regular onOk has been processed, allowing customization of what happens + /// on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// 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() + { + var telemetryId = Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.GetTelemetryId.Invoke(); + if (telemetryId != "" && telemetryId != "internal") + { + __correlationId = telemetryId; + } + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Creates a duplicate instance of this cmdlet (via JSON serialization). + /// a duplicate instance of UpdateAzEventGridSystemTopic_UpdateExpanded + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Cmdlets.UpdateAzEventGridSystemTopic_UpdateExpanded Clone() + { + var clone = new UpdateAzEventGridSystemTopic_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._systemTopicUpdateParametersBody = this._systemTopicUpdateParametersBody; + clone.SubscriptionId = this.SubscriptionId; + clone.ResourceGroupName = this.ResourceGroupName; + clone.Name = this.Name; + return clone; + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + + } + + /// Handles/Dispatches events during the call to the REST service. + /// The message id + /// The message cancellation token. When this call is cancelled, this should be true + /// Detailed message data for the message event. + /// + /// A that will be complete when handling of the message is completed. + /// + async global::System.Threading.Tasks.Task Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener.Signal(string id, global::System.Threading.CancellationToken token, global::System.Func messageData) + { + using( NoSynchronizationContext ) + { + if (token.IsCancellationRequested) + { + return ; + } + + switch ( id ) + { + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.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.EventGrid.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.EventGrid.Runtime.PowerShell.AsyncOperationResponse { Target = uri }); + // do nothing more. + data.Cancel(); + return; + } + } + break; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.EventData ), InvocationInformation, this.ParameterSetName, __correlationId, __processRecordId, null ); + if (token.IsCancellationRequested) + { + return ; + } + WriteDebug($"{id}: {(messageData().Message ?? global::System.String.Empty)}"); + } + } + + /// Performs execution of the command. + protected override void ProcessRecord() + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + if (ShouldProcess($"Call remote 'SystemTopicsUpdate' operation")) + { + if (true == MyInvocation?.BoundParameters?.ContainsKey("AsJob")) + { + var instance = this.Clone(); + var job = new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token); + } + } + } + } + catch (global::System.AggregateException aggregateException) + { + // unroll the inner exceptions to get the root cause + foreach( var innerException in aggregateException.Flatten().InnerExceptions ) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(innerException,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + } + catch (global::System.Exception exception) when ((exception as System.Management.Automation.PipelineStoppedException)== null || (exception as System.Management.Automation.PipelineStoppedException).InnerException != null) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(exception,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + finally + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletProcessRecordEnd).Wait(); + } + } + + /// Performs execution of the command, working asynchronously if required. + /// + /// A that will be complete when handling of the method is completed. + /// + protected async global::System.Threading.Tasks.Task ProcessRecordAsync() + { + using( NoSynchronizationContext ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await this.Client.SystemTopicsUpdate(SubscriptionId, ResourceGroupName, Name, _systemTopicUpdateParametersBody, onOk, onDefault, this, Pipeline); + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.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=_systemTopicUpdateParametersBody}) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(urexception.Message) { RecommendedAction = urexception.Action } + }); + } + finally + { + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Cancel(); + base.StopProcessing(); + } + + /// + /// Intializes a new instance of the cmdlet class. + /// + public UpdateAzEventGridSystemTopic_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. + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onDefault(global::System.Net.Http.HttpResponseMessage responseMessage) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnDefault(responseMessage, ref _returnNow); + // if overrideOnDefault has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // Error Response : default + // Unrecognized Response. Create an error record based on what we have. + var ex = new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.RestException(responseMessage); + WriteError( new global::System.Management.Automation.ErrorRecord(ex, ex.Code, global::System.Management.Automation.ErrorCategory.InvalidOperation, new { SubscriptionId=SubscriptionId, ResourceGroupName=ResourceGroupName, Name=Name, body=_systemTopicUpdateParametersBody }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(ex.Message) { RecommendedAction = ex.Action } + }); + } + } + + /// a delegate that is called when the remote service returns 200 (OK). + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as 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.EventGrid.Models.Api20211015Preview.ISystemTopic + WriteObject((await response)); + } + } + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/cmdlets/UpdateAzEventGridSystemTopic_UpdateViaIdentityExpanded.cs b/swaggerci/eventgrid/generated/cmdlets/UpdateAzEventGridSystemTopic_UpdateViaIdentityExpanded.cs new file mode 100644 index 000000000000..241995c0edcf --- /dev/null +++ b/swaggerci/eventgrid/generated/cmdlets/UpdateAzEventGridSystemTopic_UpdateViaIdentityExpanded.cs @@ -0,0 +1,508 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Extensions; + using System; + + /// Asynchronously updates a system topic with the specified parameters. + /// + /// [OpenAPI] Update=>PATCH:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.EventGrid/systemTopics/{systemTopicName}" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsData.Update, @"AzEventGridSystemTopic_UpdateViaIdentityExpanded", SupportsShouldProcess = true)] + [global::System.Management.Automation.OutputType(typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ISystemTopic))] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Description(@"Asynchronously updates a system topic with the specified parameters.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Generated] + public partial class UpdateAzEventGridSystemTopic_UpdateViaIdentityExpanded : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener + { + /// A unique id generatd for the this cmdlet when it is instantiated. + private string __correlationId = System.Guid.NewGuid().ToString(); + + /// A copy of the Invocation Info (necessary to allow asJob to clone this cmdlet) + private global::System.Management.Automation.InvocationInfo __invocationInfo; + + /// A unique id generatd for the this cmdlet when ProcessRecord() is called. + private string __processRecordId; + + /// + /// The for this operation. + /// + private global::System.Threading.CancellationTokenSource _cancellationTokenSource = new global::System.Threading.CancellationTokenSource(); + + /// Properties of the System Topic update. + private Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ISystemTopicUpdateParameters _systemTopicUpdateParametersBody = new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.SystemTopicUpdateParameters(); + + /// 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.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.EventGridManagementClient Client => Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.ClientAPI; + + /// + /// The credentials, account, tenant, and subscription used for communication with Azure + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The credentials, account, tenant, and subscription used for communication with Azure.")] + [global::System.Management.Automation.ValidateNotNull] + [global::System.Management.Automation.Alias("AzureRMContext", "AzureCredential")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Azure)] + public global::System.Management.Automation.PSObject DefaultProfile { get; set; } + + /// SendAsync Pipeline Steps to be appended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be appended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[] HttpPipelineAppend { get; set; } + + /// SendAsync Pipeline Steps to be prepended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be prepended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[] HttpPipelinePrepend { get; set; } + + /// The principal ID of resource identity. + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The principal ID of resource identity.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The principal ID of resource identity.", + SerializedName = @"principalId", + PossibleTypes = new [] { typeof(string) })] + public string IdentityPrincipalId { get => _systemTopicUpdateParametersBody.IdentityPrincipalId ?? null; set => _systemTopicUpdateParametersBody.IdentityPrincipalId = value; } + + /// The tenant ID of resource. + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The tenant ID of resource.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The tenant ID of resource.", + SerializedName = @"tenantId", + PossibleTypes = new [] { typeof(string) })] + public string IdentityTenantId { get => _systemTopicUpdateParametersBody.IdentityTenantId ?? null; set => _systemTopicUpdateParametersBody.IdentityTenantId = value; } + + /// + /// The type of managed identity used. The type 'SystemAssigned, UserAssigned' includes both an implicitly created identity + /// and a set of user-assigned identities. The type 'None' will remove any identity. + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The type of managed identity used. The type 'SystemAssigned, UserAssigned' includes both an implicitly created identity and a set of user-assigned identities. The type 'None' will remove any identity.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The type of managed identity used. The type 'SystemAssigned, UserAssigned' includes both an implicitly created identity and a set of user-assigned identities. The type 'None' will remove any identity.", + SerializedName = @"type", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.IdentityType) })] + [global::System.Management.Automation.ArgumentCompleter(typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.IdentityType))] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.IdentityType IdentityType { get => _systemTopicUpdateParametersBody.IdentityType ?? ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.IdentityType)""); set => _systemTopicUpdateParametersBody.IdentityType = value; } + + /// + /// The list of user identities associated with the resource. The user identity dictionary key references will be ARM resource + /// ids in the form:'/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ManagedIdentity/userAssignedIdentities/{identityName}'.This + /// property is currently not used and reserved for future usage. + /// + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ExportAs(typeof(global::System.Collections.Hashtable))] + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The list of user identities associated with the resource. The user identity dictionary key references will be ARM resource ids in the form:'/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ManagedIdentity/userAssignedIdentities/{identityName}'.This property is currently not used and reserved for future usage.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The list of user identities associated with the resource. The user identity dictionary key references will be ARM resource ids in the form:'/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ManagedIdentity/userAssignedIdentities/{identityName}'.This property is currently not used and reserved for future usage.", + SerializedName = @"userAssignedIdentities", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IIdentityInfoUserAssignedIdentities) })] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IIdentityInfoUserAssignedIdentities IdentityUserAssignedIdentity { get => _systemTopicUpdateParametersBody.IdentityUserAssignedIdentity ?? null /* object */; set => _systemTopicUpdateParametersBody.IdentityUserAssignedIdentity = value; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.IEventGridIdentity _inputObject; + + /// Identity Parameter + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Identity Parameter", ValueFromPipeline = true)] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Path)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.IEventGridIdentity InputObject { get => this._inputObject; set => this._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.EventGrid.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter NoWait { get; set; } + + /// + /// When specified, forces the cmdlet return a 'bool' given that there isn't a return type by default. + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Returns true when the command succeeds")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Runtime.HttpPipeline Pipeline { get; set; } + + /// The URI for the proxy server to use + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "The URI for the proxy server to use")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Uri Proxy { get; set; } + + /// Credentials for a proxy server to use for the remote call + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Credentials for a proxy server to use for the remote call")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Management.Automation.PSCredential ProxyCredential { get; set; } + + /// Use the default credentials for the proxy + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Use the default credentials for the proxy")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter ProxyUseDefaultCredentials { get; set; } + + /// Tags of the system topic. + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ExportAs(typeof(global::System.Collections.Hashtable))] + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Tags of the system topic.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Tags of the system topic.", + SerializedName = @"tags", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ISystemTopicUpdateParametersTags) })] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ISystemTopicUpdateParametersTags Tag { get => _systemTopicUpdateParametersBody.Tag ?? null /* object */; set => _systemTopicUpdateParametersBody.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. + /// /// Determines if the rest of the onDefault method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnDefault(global::System.Net.Http.HttpResponseMessage responseMessage, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnOk will be called before the regular onOk has been processed, allowing customization of what happens + /// on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// 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() + { + var telemetryId = Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.GetTelemetryId.Invoke(); + if (telemetryId != "" && telemetryId != "internal") + { + __correlationId = telemetryId; + } + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Creates a duplicate instance of this cmdlet (via JSON serialization). + /// a duplicate instance of UpdateAzEventGridSystemTopic_UpdateViaIdentityExpanded + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Cmdlets.UpdateAzEventGridSystemTopic_UpdateViaIdentityExpanded Clone() + { + var clone = new UpdateAzEventGridSystemTopic_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._systemTopicUpdateParametersBody = this._systemTopicUpdateParametersBody; + return clone; + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + + } + + /// Handles/Dispatches events during the call to the REST service. + /// The message id + /// The message cancellation token. When this call is cancelled, this should be true + /// Detailed message data for the message event. + /// + /// A that will be complete when handling of the message is completed. + /// + async global::System.Threading.Tasks.Task Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener.Signal(string id, global::System.Threading.CancellationToken token, global::System.Func messageData) + { + using( NoSynchronizationContext ) + { + if (token.IsCancellationRequested) + { + return ; + } + + switch ( id ) + { + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.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.EventGrid.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.EventGrid.Runtime.PowerShell.AsyncOperationResponse { Target = uri }); + // do nothing more. + data.Cancel(); + return; + } + } + break; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.EventData ), InvocationInformation, this.ParameterSetName, __correlationId, __processRecordId, null ); + if (token.IsCancellationRequested) + { + return ; + } + WriteDebug($"{id}: {(messageData().Message ?? global::System.String.Empty)}"); + } + } + + /// Performs execution of the command. + protected override void ProcessRecord() + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + if (ShouldProcess($"Call remote 'SystemTopicsUpdate' operation")) + { + if (true == MyInvocation?.BoundParameters?.ContainsKey("AsJob")) + { + var instance = this.Clone(); + var job = new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token); + } + } + } + } + catch (global::System.AggregateException aggregateException) + { + // unroll the inner exceptions to get the root cause + foreach( var innerException in aggregateException.Flatten().InnerExceptions ) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(innerException,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + } + catch (global::System.Exception exception) when ((exception as System.Management.Automation.PipelineStoppedException)== null || (exception as System.Management.Automation.PipelineStoppedException).InnerException != null) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(exception,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + finally + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletProcessRecordEnd).Wait(); + } + } + + /// Performs execution of the command, working asynchronously if required. + /// + /// A that will be complete when handling of the method is completed. + /// + protected async global::System.Threading.Tasks.Task ProcessRecordAsync() + { + using( NoSynchronizationContext ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + if (InputObject?.Id != null) + { + await this.Client.SystemTopicsUpdateViaIdentity(InputObject.Id, _systemTopicUpdateParametersBody, 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.SystemTopicName) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.SystemTopicName"),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, InputObject) ); + } + await this.Client.SystemTopicsUpdate(InputObject.SubscriptionId ?? null, InputObject.ResourceGroupName ?? null, InputObject.SystemTopicName ?? null, _systemTopicUpdateParametersBody, onOk, onDefault, this, Pipeline); + } + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.UndeclaredResponseException urexception) + { + WriteError(new global::System.Management.Automation.ErrorRecord(urexception, urexception.StatusCode.ToString(), global::System.Management.Automation.ErrorCategory.InvalidOperation, new { body=_systemTopicUpdateParametersBody}) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(urexception.Message) { RecommendedAction = urexception.Action } + }); + } + finally + { + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Cancel(); + base.StopProcessing(); + } + + /// + /// Intializes a new instance of the cmdlet class. + /// + public UpdateAzEventGridSystemTopic_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. + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onDefault(global::System.Net.Http.HttpResponseMessage responseMessage) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnDefault(responseMessage, ref _returnNow); + // if overrideOnDefault has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // Error Response : default + // Unrecognized Response. Create an error record based on what we have. + var ex = new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.RestException(responseMessage); + WriteError( new global::System.Management.Automation.ErrorRecord(ex, ex.Code, global::System.Management.Automation.ErrorCategory.InvalidOperation, new { body=_systemTopicUpdateParametersBody }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(ex.Message) { RecommendedAction = ex.Action } + }); + } + } + + /// a delegate that is called when the remote service returns 200 (OK). + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// the body result as 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.EventGrid.Models.Api20211015Preview.ISystemTopic + WriteObject((await response)); + } + } + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/cmdlets/UpdateAzEventGridTopicEventSubscription_UpdateExpanded.cs b/swaggerci/eventgrid/generated/cmdlets/UpdateAzEventGridTopicEventSubscription_UpdateExpanded.cs new file mode 100644 index 000000000000..9fbf0a9469b8 --- /dev/null +++ b/swaggerci/eventgrid/generated/cmdlets/UpdateAzEventGridTopicEventSubscription_UpdateExpanded.cs @@ -0,0 +1,661 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Extensions; + using System; + + /// Update an existing event subscription for a topic. + /// + /// [OpenAPI] Update=>PATCH:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.EventGrid/topics/{topicName}/eventSubscriptions/{eventSubscriptionName}" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsData.Update, @"AzEventGridTopicEventSubscription_UpdateExpanded", SupportsShouldProcess = true)] + [global::System.Management.Automation.OutputType(typeof(bool))] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Description(@"Update an existing event subscription for a topic.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Generated] + public partial class UpdateAzEventGridTopicEventSubscription_UpdateExpanded : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener + { + /// A unique id generatd for the this cmdlet when it is instantiated. + private string __correlationId = System.Guid.NewGuid().ToString(); + + /// A copy of the Invocation Info (necessary to allow asJob to clone this cmdlet) + private global::System.Management.Automation.InvocationInfo __invocationInfo; + + /// A unique id generatd for the this cmdlet when ProcessRecord() is called. + private string __processRecordId; + + /// + /// The for this operation. + /// + private global::System.Threading.CancellationTokenSource _cancellationTokenSource = new global::System.Threading.CancellationTokenSource(); + + /// Properties of the Event Subscription update. + private Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionUpdateParameters _eventSubscriptionUpdateParametersBody = new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.EventSubscriptionUpdateParameters(); + + /// 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.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.EventGridManagementClient Client => Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.ClientAPI; + + /// + /// The type of managed identity used. The type 'SystemAssigned, UserAssigned' includes both an implicitly created identity + /// and a set of user-assigned identities. The type 'None' will remove any identity. + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The type of managed identity used. The type 'SystemAssigned, UserAssigned' includes both an implicitly created identity and a set of user-assigned identities. The type 'None' will remove any identity.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The type of managed identity used. The type 'SystemAssigned, UserAssigned' includes both an implicitly created identity and a set of user-assigned identities. The type 'None' will remove any identity.", + SerializedName = @"type", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EventSubscriptionIdentityType) })] + [global::System.Management.Automation.ArgumentCompleter(typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EventSubscriptionIdentityType))] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EventSubscriptionIdentityType DeadLetterWithResourceIdentityType { get => _eventSubscriptionUpdateParametersBody.DeadLetterWithResourceIdentityType ?? ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EventSubscriptionIdentityType)""); set => _eventSubscriptionUpdateParametersBody.DeadLetterWithResourceIdentityType = value; } + + /// The user identity associated with the resource. + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The user identity associated with the resource.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The user identity associated with the resource.", + SerializedName = @"userAssignedIdentity", + PossibleTypes = new [] { typeof(string) })] + public string DeadLetterWithResourceIdentityUserAssignedIdentity { get => _eventSubscriptionUpdateParametersBody.DeadLetterWithResourceIdentityUserAssignedIdentity ?? null; set => _eventSubscriptionUpdateParametersBody.DeadLetterWithResourceIdentityUserAssignedIdentity = 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.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Azure)] + public global::System.Management.Automation.PSObject DefaultProfile { get; set; } + + /// Type of the endpoint for the event subscription destination. + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Type of the endpoint for the event subscription destination.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Type of the endpoint for the event subscription destination.", + SerializedName = @"endpointType", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EndpointType) })] + [global::System.Management.Automation.ArgumentCompleter(typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EndpointType))] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EndpointType DeliveryWithResourceIdentityDestinationEndpointType { get => _eventSubscriptionUpdateParametersBody.DeliveryWithResourceIdentityDestinationEndpointType ?? ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EndpointType)""); set => _eventSubscriptionUpdateParametersBody.DeliveryWithResourceIdentityDestinationEndpointType = value; } + + /// + /// The type of managed identity used. The type 'SystemAssigned, UserAssigned' includes both an implicitly created identity + /// and a set of user-assigned identities. The type 'None' will remove any identity. + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The type of managed identity used. The type 'SystemAssigned, UserAssigned' includes both an implicitly created identity and a set of user-assigned identities. The type 'None' will remove any identity.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The type of managed identity used. The type 'SystemAssigned, UserAssigned' includes both an implicitly created identity and a set of user-assigned identities. The type 'None' will remove any identity.", + SerializedName = @"type", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EventSubscriptionIdentityType) })] + [global::System.Management.Automation.ArgumentCompleter(typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EventSubscriptionIdentityType))] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EventSubscriptionIdentityType DeliveryWithResourceIdentityType { get => _eventSubscriptionUpdateParametersBody.DeliveryWithResourceIdentityType ?? ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EventSubscriptionIdentityType)""); set => _eventSubscriptionUpdateParametersBody.DeliveryWithResourceIdentityType = value; } + + /// The user identity associated with the resource. + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The user identity associated with the resource.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The user identity associated with the resource.", + SerializedName = @"userAssignedIdentity", + PossibleTypes = new [] { typeof(string) })] + public string DeliveryWithResourceIdentityUserAssignedIdentity { get => _eventSubscriptionUpdateParametersBody.DeliveryWithResourceIdentityUserAssignedIdentity ?? null; set => _eventSubscriptionUpdateParametersBody.DeliveryWithResourceIdentityUserAssignedIdentity = value; } + + /// Type of the endpoint for the event subscription destination. + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Type of the endpoint for the event subscription destination.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Type of the endpoint for the event subscription destination.", + SerializedName = @"endpointType", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EndpointType) })] + [global::System.Management.Automation.ArgumentCompleter(typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EndpointType))] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EndpointType EndpointType { get => _eventSubscriptionUpdateParametersBody.EndpointType ?? ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EndpointType)""); set => _eventSubscriptionUpdateParametersBody.EndpointType = value; } + + /// The event delivery schema for the event subscription. + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The event delivery schema for the event subscription.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The event delivery schema for the event subscription.", + SerializedName = @"eventDeliverySchema", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EventDeliverySchema) })] + [global::System.Management.Automation.ArgumentCompleter(typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EventDeliverySchema))] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EventDeliverySchema EventDeliverySchema { get => _eventSubscriptionUpdateParametersBody.EventDeliverySchema ?? ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EventDeliverySchema)""); set => _eventSubscriptionUpdateParametersBody.EventDeliverySchema = value; } + + /// Backing field for property. + private string _eventSubscriptionName; + + /// Name of the event subscription to be updated. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Name of the event subscription to be updated.")] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Name of the event subscription to be updated.", + SerializedName = @"eventSubscriptionName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Path)] + public string EventSubscriptionName { get => this._eventSubscriptionName; set => this._eventSubscriptionName = value; } + + /// Information about the expiration time for the event subscription. + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Information about the expiration time for the event subscription.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Information about the expiration time for the event subscription.", + SerializedName = @"expirationTimeUtc", + PossibleTypes = new [] { typeof(global::System.DateTime) })] + public global::System.DateTime ExpirationTimeUtc { get => _eventSubscriptionUpdateParametersBody.ExpirationTimeUtc ?? default(global::System.DateTime); set => _eventSubscriptionUpdateParametersBody.ExpirationTimeUtc = value; } + + /// An array of advanced filters that are used for filtering event subscriptions. + [global::System.Management.Automation.AllowEmptyCollection] + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "An array of advanced filters that are used for filtering event subscriptions.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"An array of advanced filters that are used for filtering event subscriptions.", + SerializedName = @"advancedFilters", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IAdvancedFilter) })] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IAdvancedFilter[] FilterAdvancedFilter { get => _eventSubscriptionUpdateParametersBody.FilterAdvancedFilter ?? null /* arrayOf */; set => _eventSubscriptionUpdateParametersBody.FilterAdvancedFilter = value; } + + /// + /// Allows advanced filters to be evaluated against an array of values instead of expecting a singular value. + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Allows advanced filters to be evaluated against an array of values instead of expecting a singular value.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Allows advanced filters to be evaluated against an array of values instead of expecting a singular value.", + SerializedName = @"enableAdvancedFilteringOnArrays", + PossibleTypes = new [] { typeof(global::System.Management.Automation.SwitchParameter) })] + public global::System.Management.Automation.SwitchParameter FilterEnableAdvancedFilteringOnArray { get => _eventSubscriptionUpdateParametersBody.FilterEnableAdvancedFilteringOnArray ?? default(global::System.Management.Automation.SwitchParameter); set => _eventSubscriptionUpdateParametersBody.FilterEnableAdvancedFilteringOnArray = value; } + + /// + /// A list of applicable event types that need to be part of the event subscription. If it is desired to subscribe to all + /// default event types, set the IncludedEventTypes to null. + /// + [global::System.Management.Automation.AllowEmptyCollection] + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "A list of applicable event types that need to be part of the event subscription. If it is desired to subscribe to all default event types, set the IncludedEventTypes to null.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"A list of applicable event types that need to be part of the event subscription. If it is desired to subscribe to all default event types, set the IncludedEventTypes to null.", + SerializedName = @"includedEventTypes", + PossibleTypes = new [] { typeof(string) })] + public string[] FilterIncludedEventType { get => _eventSubscriptionUpdateParametersBody.FilterIncludedEventType ?? null /* arrayOf */; set => _eventSubscriptionUpdateParametersBody.FilterIncludedEventType = value; } + + /// + /// Specifies if the SubjectBeginsWith and SubjectEndsWith properties of the filtershould be compared in a case sensitive + /// manner. + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Specifies if the SubjectBeginsWith and SubjectEndsWith properties of the filtershould be compared in a case sensitive manner.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Specifies if the SubjectBeginsWith and SubjectEndsWith properties of the filtershould be compared in a case sensitive manner.", + SerializedName = @"isSubjectCaseSensitive", + PossibleTypes = new [] { typeof(global::System.Management.Automation.SwitchParameter) })] + public global::System.Management.Automation.SwitchParameter FilterIsSubjectCaseSensitive { get => _eventSubscriptionUpdateParametersBody.FilterIsSubjectCaseSensitive ?? default(global::System.Management.Automation.SwitchParameter); set => _eventSubscriptionUpdateParametersBody.FilterIsSubjectCaseSensitive = value; } + + /// + /// An optional string to filter events for an event subscription based on a resource path prefix.The format of this depends + /// on the publisher of the events.Wildcard characters are not supported in this path. + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "An optional string to filter events for an event subscription based on a resource path prefix.The format of this depends on the publisher of the events.Wildcard characters are not supported in this path.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"An optional string to filter events for an event subscription based on a resource path prefix.The format of this depends on the publisher of the events.Wildcard characters are not supported in this path.", + SerializedName = @"subjectBeginsWith", + PossibleTypes = new [] { typeof(string) })] + public string FilterSubjectBeginsWith { get => _eventSubscriptionUpdateParametersBody.FilterSubjectBeginsWith ?? null; set => _eventSubscriptionUpdateParametersBody.FilterSubjectBeginsWith = value; } + + /// + /// An optional string to filter events for an event subscription based on a resource path suffix.Wildcard characters are + /// not supported in this path. + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "An optional string to filter events for an event subscription based on a resource path suffix.Wildcard characters are not supported in this path.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"An optional string to filter events for an event subscription based on a resource path suffix.Wildcard characters are not supported in this path.", + SerializedName = @"subjectEndsWith", + PossibleTypes = new [] { typeof(string) })] + public string FilterSubjectEndsWith { get => _eventSubscriptionUpdateParametersBody.FilterSubjectEndsWith ?? null; set => _eventSubscriptionUpdateParametersBody.FilterSubjectEndsWith = 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.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[] HttpPipelineAppend { get; set; } + + /// SendAsync Pipeline Steps to be prepended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be prepended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[] HttpPipelinePrepend { get; set; } + + /// Accessor for our copy of the InvocationInfo. + public global::System.Management.Automation.InvocationInfo InvocationInformation { get => __invocationInfo = __invocationInfo ?? this.MyInvocation ; set { __invocationInfo = value; } } + + /// List of user defined labels. + [global::System.Management.Automation.AllowEmptyCollection] + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "List of user defined labels.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"List of user defined labels.", + SerializedName = @"labels", + PossibleTypes = new [] { typeof(string) })] + public string[] Label { get => _eventSubscriptionUpdateParametersBody.Label ?? null /* arrayOf */; set => _eventSubscriptionUpdateParametersBody.Label = value; } + + /// + /// cancellation delegate. Stops the cmdlet when called. + /// + global::System.Action Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter NoWait { get; set; } + + /// + /// When specified, forces the cmdlet return a 'bool' given that there isn't a return type by default. + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Returns true when the command succeeds")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Runtime.HttpPipeline Pipeline { get; set; } + + /// The URI for the proxy server to use + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "The URI for the proxy server to use")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Uri Proxy { get; set; } + + /// Credentials for a proxy server to use for the remote call + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Credentials for a proxy server to use for the remote call")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Management.Automation.PSCredential ProxyCredential { get; set; } + + /// Use the default credentials for the proxy + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Use the default credentials for the proxy")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter ProxyUseDefaultCredentials { get; set; } + + /// Backing field for property. + private string _resourceGroupName; + + /// The name of the resource group within the user's subscription. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the resource group within the user's subscription.")] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the resource group within the user's subscription.", + SerializedName = @"resourceGroupName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Path)] + public string ResourceGroupName { get => this._resourceGroupName; set => this._resourceGroupName = value; } + + /// Time To Live (in minutes) for events. + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Time To Live (in minutes) for events.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Time To Live (in minutes) for events.", + SerializedName = @"eventTimeToLiveInMinutes", + PossibleTypes = new [] { typeof(int) })] + public int RetryPolicyEventTimeToLiveInMinute { get => _eventSubscriptionUpdateParametersBody.RetryPolicyEventTimeToLiveInMinute ?? default(int); set => _eventSubscriptionUpdateParametersBody.RetryPolicyEventTimeToLiveInMinute = value; } + + /// Maximum number of delivery retry attempts for events. + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Maximum number of delivery retry attempts for events.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Maximum number of delivery retry attempts for events.", + SerializedName = @"maxDeliveryAttempts", + PossibleTypes = new [] { typeof(int) })] + public int RetryPolicyMaxDeliveryAttempt { get => _eventSubscriptionUpdateParametersBody.RetryPolicyMaxDeliveryAttempt ?? default(int); set => _eventSubscriptionUpdateParametersBody.RetryPolicyMaxDeliveryAttempt = value; } + + /// Backing field for property. + private string _subscriptionId; + + /// + /// Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription ID forms part of the + /// URI for every service call. + /// + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.")] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.", + SerializedName = @"subscriptionId", + PossibleTypes = new [] { typeof(string) })] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.DefaultInfo( + Name = @"", + Description =@"", + Script = @"(Get-AzContext).Subscription.Id")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Path)] + public string SubscriptionId { get => this._subscriptionId; set => this._subscriptionId = value; } + + /// Backing field for property. + private string _topicName; + + /// Name of the domain. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Name of the domain.")] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Name of the domain.", + SerializedName = @"topicName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Path)] + public string TopicName { get => this._topicName; set => this._topicName = value; } + + /// + /// overrideOnDefault will be called before the regular onDefault has been processed, allowing customization of what + /// happens on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// /// Determines if the rest of the onDefault method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnDefault(global::System.Net.Http.HttpResponseMessage responseMessage, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// (overrides the default BeginProcessing method in global::System.Management.Automation.PSCmdlet) + /// + protected override void BeginProcessing() + { + var telemetryId = Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.GetTelemetryId.Invoke(); + if (telemetryId != "" && telemetryId != "internal") + { + __correlationId = telemetryId; + } + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Creates a duplicate instance of this cmdlet (via JSON serialization). + /// a duplicate instance of UpdateAzEventGridTopicEventSubscription_UpdateExpanded + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Cmdlets.UpdateAzEventGridTopicEventSubscription_UpdateExpanded Clone() + { + var clone = new UpdateAzEventGridTopicEventSubscription_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._eventSubscriptionUpdateParametersBody = this._eventSubscriptionUpdateParametersBody; + clone.SubscriptionId = this.SubscriptionId; + clone.ResourceGroupName = this.ResourceGroupName; + clone.TopicName = this.TopicName; + clone.EventSubscriptionName = this.EventSubscriptionName; + return clone; + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + + } + + /// Handles/Dispatches events during the call to the REST service. + /// The message id + /// The message cancellation token. When this call is cancelled, this should be true + /// Detailed message data for the message event. + /// + /// A that will be complete when handling of the message is completed. + /// + async global::System.Threading.Tasks.Task Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener.Signal(string id, global::System.Threading.CancellationToken token, global::System.Func messageData) + { + using( NoSynchronizationContext ) + { + if (token.IsCancellationRequested) + { + return ; + } + + switch ( id ) + { + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.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.EventGrid.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.EventGrid.Runtime.PowerShell.AsyncOperationResponse { Target = uri }); + // do nothing more. + data.Cancel(); + return; + } + } + break; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.EventData ), InvocationInformation, this.ParameterSetName, __correlationId, __processRecordId, null ); + if (token.IsCancellationRequested) + { + return ; + } + WriteDebug($"{id}: {(messageData().Message ?? global::System.String.Empty)}"); + } + } + + /// Performs execution of the command. + protected override void ProcessRecord() + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + if (ShouldProcess($"Call remote 'TopicEventSubscriptionsUpdate' operation")) + { + if (true == MyInvocation?.BoundParameters?.ContainsKey("AsJob")) + { + var instance = this.Clone(); + var job = new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token); + } + } + } + } + catch (global::System.AggregateException aggregateException) + { + // unroll the inner exceptions to get the root cause + foreach( var innerException in aggregateException.Flatten().InnerExceptions ) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(innerException,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + } + catch (global::System.Exception exception) when ((exception as System.Management.Automation.PipelineStoppedException)== null || (exception as System.Management.Automation.PipelineStoppedException).InnerException != null) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(exception,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + finally + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletProcessRecordEnd).Wait(); + } + } + + /// Performs execution of the command, working asynchronously if required. + /// + /// A that will be complete when handling of the method is completed. + /// + protected async global::System.Threading.Tasks.Task ProcessRecordAsync() + { + using( NoSynchronizationContext ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await this.Client.TopicEventSubscriptionsUpdate(SubscriptionId, ResourceGroupName, TopicName, EventSubscriptionName, _eventSubscriptionUpdateParametersBody, onDefault, this, Pipeline); + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.UndeclaredResponseException urexception) + { + WriteError(new global::System.Management.Automation.ErrorRecord(urexception, urexception.StatusCode.ToString(), global::System.Management.Automation.ErrorCategory.InvalidOperation, new { SubscriptionId=SubscriptionId,ResourceGroupName=ResourceGroupName,TopicName=TopicName,EventSubscriptionName=EventSubscriptionName,body=_eventSubscriptionUpdateParametersBody}) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(urexception.Message) { RecommendedAction = urexception.Action } + }); + } + finally + { + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Cancel(); + base.StopProcessing(); + } + + /// + /// Intializes a new instance of the cmdlet class. + /// + public UpdateAzEventGridTopicEventSubscription_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. + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onDefault(global::System.Net.Http.HttpResponseMessage responseMessage) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnDefault(responseMessage, ref _returnNow); + // if overrideOnDefault has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // Error Response : default + // Unrecognized Response. Create an error record based on what we have. + var ex = new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.RestException(responseMessage); + WriteError( new global::System.Management.Automation.ErrorRecord(ex, ex.Code, global::System.Management.Automation.ErrorCategory.InvalidOperation, new { SubscriptionId=SubscriptionId, ResourceGroupName=ResourceGroupName, TopicName=TopicName, EventSubscriptionName=EventSubscriptionName, body=_eventSubscriptionUpdateParametersBody }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(ex.Message) { RecommendedAction = ex.Action } + }); + } + } + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/cmdlets/UpdateAzEventGridTopicEventSubscription_UpdateViaIdentityExpanded.cs b/swaggerci/eventgrid/generated/cmdlets/UpdateAzEventGridTopicEventSubscription_UpdateViaIdentityExpanded.cs new file mode 100644 index 000000000000..2e335f4f7763 --- /dev/null +++ b/swaggerci/eventgrid/generated/cmdlets/UpdateAzEventGridTopicEventSubscription_UpdateViaIdentityExpanded.cs @@ -0,0 +1,629 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Extensions; + using System; + + /// Update an existing event subscription for a topic. + /// + /// [OpenAPI] Update=>PATCH:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.EventGrid/topics/{topicName}/eventSubscriptions/{eventSubscriptionName}" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsData.Update, @"AzEventGridTopicEventSubscription_UpdateViaIdentityExpanded", SupportsShouldProcess = true)] + [global::System.Management.Automation.OutputType(typeof(bool))] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Description(@"Update an existing event subscription for a topic.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Generated] + public partial class UpdateAzEventGridTopicEventSubscription_UpdateViaIdentityExpanded : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener + { + /// A unique id generatd for the this cmdlet when it is instantiated. + private string __correlationId = System.Guid.NewGuid().ToString(); + + /// A copy of the Invocation Info (necessary to allow asJob to clone this cmdlet) + private global::System.Management.Automation.InvocationInfo __invocationInfo; + + /// A unique id generatd for the this cmdlet when ProcessRecord() is called. + private string __processRecordId; + + /// + /// The for this operation. + /// + private global::System.Threading.CancellationTokenSource _cancellationTokenSource = new global::System.Threading.CancellationTokenSource(); + + /// Properties of the Event Subscription update. + private Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IEventSubscriptionUpdateParameters _eventSubscriptionUpdateParametersBody = new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.EventSubscriptionUpdateParameters(); + + /// 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.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.EventGridManagementClient Client => Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.ClientAPI; + + /// + /// The type of managed identity used. The type 'SystemAssigned, UserAssigned' includes both an implicitly created identity + /// and a set of user-assigned identities. The type 'None' will remove any identity. + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The type of managed identity used. The type 'SystemAssigned, UserAssigned' includes both an implicitly created identity and a set of user-assigned identities. The type 'None' will remove any identity.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The type of managed identity used. The type 'SystemAssigned, UserAssigned' includes both an implicitly created identity and a set of user-assigned identities. The type 'None' will remove any identity.", + SerializedName = @"type", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EventSubscriptionIdentityType) })] + [global::System.Management.Automation.ArgumentCompleter(typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EventSubscriptionIdentityType))] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EventSubscriptionIdentityType DeadLetterWithResourceIdentityType { get => _eventSubscriptionUpdateParametersBody.DeadLetterWithResourceIdentityType ?? ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EventSubscriptionIdentityType)""); set => _eventSubscriptionUpdateParametersBody.DeadLetterWithResourceIdentityType = value; } + + /// The user identity associated with the resource. + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The user identity associated with the resource.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The user identity associated with the resource.", + SerializedName = @"userAssignedIdentity", + PossibleTypes = new [] { typeof(string) })] + public string DeadLetterWithResourceIdentityUserAssignedIdentity { get => _eventSubscriptionUpdateParametersBody.DeadLetterWithResourceIdentityUserAssignedIdentity ?? null; set => _eventSubscriptionUpdateParametersBody.DeadLetterWithResourceIdentityUserAssignedIdentity = 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.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Azure)] + public global::System.Management.Automation.PSObject DefaultProfile { get; set; } + + /// Type of the endpoint for the event subscription destination. + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Type of the endpoint for the event subscription destination.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Type of the endpoint for the event subscription destination.", + SerializedName = @"endpointType", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EndpointType) })] + [global::System.Management.Automation.ArgumentCompleter(typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EndpointType))] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EndpointType DeliveryWithResourceIdentityDestinationEndpointType { get => _eventSubscriptionUpdateParametersBody.DeliveryWithResourceIdentityDestinationEndpointType ?? ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EndpointType)""); set => _eventSubscriptionUpdateParametersBody.DeliveryWithResourceIdentityDestinationEndpointType = value; } + + /// + /// The type of managed identity used. The type 'SystemAssigned, UserAssigned' includes both an implicitly created identity + /// and a set of user-assigned identities. The type 'None' will remove any identity. + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The type of managed identity used. The type 'SystemAssigned, UserAssigned' includes both an implicitly created identity and a set of user-assigned identities. The type 'None' will remove any identity.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The type of managed identity used. The type 'SystemAssigned, UserAssigned' includes both an implicitly created identity and a set of user-assigned identities. The type 'None' will remove any identity.", + SerializedName = @"type", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EventSubscriptionIdentityType) })] + [global::System.Management.Automation.ArgumentCompleter(typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EventSubscriptionIdentityType))] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EventSubscriptionIdentityType DeliveryWithResourceIdentityType { get => _eventSubscriptionUpdateParametersBody.DeliveryWithResourceIdentityType ?? ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EventSubscriptionIdentityType)""); set => _eventSubscriptionUpdateParametersBody.DeliveryWithResourceIdentityType = value; } + + /// The user identity associated with the resource. + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The user identity associated with the resource.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The user identity associated with the resource.", + SerializedName = @"userAssignedIdentity", + PossibleTypes = new [] { typeof(string) })] + public string DeliveryWithResourceIdentityUserAssignedIdentity { get => _eventSubscriptionUpdateParametersBody.DeliveryWithResourceIdentityUserAssignedIdentity ?? null; set => _eventSubscriptionUpdateParametersBody.DeliveryWithResourceIdentityUserAssignedIdentity = value; } + + /// Type of the endpoint for the event subscription destination. + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Type of the endpoint for the event subscription destination.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Type of the endpoint for the event subscription destination.", + SerializedName = @"endpointType", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EndpointType) })] + [global::System.Management.Automation.ArgumentCompleter(typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EndpointType))] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EndpointType EndpointType { get => _eventSubscriptionUpdateParametersBody.EndpointType ?? ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EndpointType)""); set => _eventSubscriptionUpdateParametersBody.EndpointType = value; } + + /// The event delivery schema for the event subscription. + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The event delivery schema for the event subscription.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The event delivery schema for the event subscription.", + SerializedName = @"eventDeliverySchema", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EventDeliverySchema) })] + [global::System.Management.Automation.ArgumentCompleter(typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EventDeliverySchema))] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EventDeliverySchema EventDeliverySchema { get => _eventSubscriptionUpdateParametersBody.EventDeliverySchema ?? ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.EventDeliverySchema)""); set => _eventSubscriptionUpdateParametersBody.EventDeliverySchema = value; } + + /// Information about the expiration time for the event subscription. + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Information about the expiration time for the event subscription.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Information about the expiration time for the event subscription.", + SerializedName = @"expirationTimeUtc", + PossibleTypes = new [] { typeof(global::System.DateTime) })] + public global::System.DateTime ExpirationTimeUtc { get => _eventSubscriptionUpdateParametersBody.ExpirationTimeUtc ?? default(global::System.DateTime); set => _eventSubscriptionUpdateParametersBody.ExpirationTimeUtc = value; } + + /// An array of advanced filters that are used for filtering event subscriptions. + [global::System.Management.Automation.AllowEmptyCollection] + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "An array of advanced filters that are used for filtering event subscriptions.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"An array of advanced filters that are used for filtering event subscriptions.", + SerializedName = @"advancedFilters", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IAdvancedFilter) })] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IAdvancedFilter[] FilterAdvancedFilter { get => _eventSubscriptionUpdateParametersBody.FilterAdvancedFilter ?? null /* arrayOf */; set => _eventSubscriptionUpdateParametersBody.FilterAdvancedFilter = value; } + + /// + /// Allows advanced filters to be evaluated against an array of values instead of expecting a singular value. + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Allows advanced filters to be evaluated against an array of values instead of expecting a singular value.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Allows advanced filters to be evaluated against an array of values instead of expecting a singular value.", + SerializedName = @"enableAdvancedFilteringOnArrays", + PossibleTypes = new [] { typeof(global::System.Management.Automation.SwitchParameter) })] + public global::System.Management.Automation.SwitchParameter FilterEnableAdvancedFilteringOnArray { get => _eventSubscriptionUpdateParametersBody.FilterEnableAdvancedFilteringOnArray ?? default(global::System.Management.Automation.SwitchParameter); set => _eventSubscriptionUpdateParametersBody.FilterEnableAdvancedFilteringOnArray = value; } + + /// + /// A list of applicable event types that need to be part of the event subscription. If it is desired to subscribe to all + /// default event types, set the IncludedEventTypes to null. + /// + [global::System.Management.Automation.AllowEmptyCollection] + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "A list of applicable event types that need to be part of the event subscription. If it is desired to subscribe to all default event types, set the IncludedEventTypes to null.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"A list of applicable event types that need to be part of the event subscription. If it is desired to subscribe to all default event types, set the IncludedEventTypes to null.", + SerializedName = @"includedEventTypes", + PossibleTypes = new [] { typeof(string) })] + public string[] FilterIncludedEventType { get => _eventSubscriptionUpdateParametersBody.FilterIncludedEventType ?? null /* arrayOf */; set => _eventSubscriptionUpdateParametersBody.FilterIncludedEventType = value; } + + /// + /// Specifies if the SubjectBeginsWith and SubjectEndsWith properties of the filtershould be compared in a case sensitive + /// manner. + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Specifies if the SubjectBeginsWith and SubjectEndsWith properties of the filtershould be compared in a case sensitive manner.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Specifies if the SubjectBeginsWith and SubjectEndsWith properties of the filtershould be compared in a case sensitive manner.", + SerializedName = @"isSubjectCaseSensitive", + PossibleTypes = new [] { typeof(global::System.Management.Automation.SwitchParameter) })] + public global::System.Management.Automation.SwitchParameter FilterIsSubjectCaseSensitive { get => _eventSubscriptionUpdateParametersBody.FilterIsSubjectCaseSensitive ?? default(global::System.Management.Automation.SwitchParameter); set => _eventSubscriptionUpdateParametersBody.FilterIsSubjectCaseSensitive = value; } + + /// + /// An optional string to filter events for an event subscription based on a resource path prefix.The format of this depends + /// on the publisher of the events.Wildcard characters are not supported in this path. + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "An optional string to filter events for an event subscription based on a resource path prefix.The format of this depends on the publisher of the events.Wildcard characters are not supported in this path.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"An optional string to filter events for an event subscription based on a resource path prefix.The format of this depends on the publisher of the events.Wildcard characters are not supported in this path.", + SerializedName = @"subjectBeginsWith", + PossibleTypes = new [] { typeof(string) })] + public string FilterSubjectBeginsWith { get => _eventSubscriptionUpdateParametersBody.FilterSubjectBeginsWith ?? null; set => _eventSubscriptionUpdateParametersBody.FilterSubjectBeginsWith = value; } + + /// + /// An optional string to filter events for an event subscription based on a resource path suffix.Wildcard characters are + /// not supported in this path. + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "An optional string to filter events for an event subscription based on a resource path suffix.Wildcard characters are not supported in this path.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"An optional string to filter events for an event subscription based on a resource path suffix.Wildcard characters are not supported in this path.", + SerializedName = @"subjectEndsWith", + PossibleTypes = new [] { typeof(string) })] + public string FilterSubjectEndsWith { get => _eventSubscriptionUpdateParametersBody.FilterSubjectEndsWith ?? null; set => _eventSubscriptionUpdateParametersBody.FilterSubjectEndsWith = 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.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[] HttpPipelineAppend { get; set; } + + /// SendAsync Pipeline Steps to be prepended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be prepended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[] HttpPipelinePrepend { get; set; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.IEventGridIdentity _inputObject; + + /// Identity Parameter + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Identity Parameter", ValueFromPipeline = true)] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Path)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.IEventGridIdentity InputObject { get => this._inputObject; set => this._inputObject = value; } + + /// Accessor for our copy of the InvocationInfo. + public global::System.Management.Automation.InvocationInfo InvocationInformation { get => __invocationInfo = __invocationInfo ?? this.MyInvocation ; set { __invocationInfo = value; } } + + /// List of user defined labels. + [global::System.Management.Automation.AllowEmptyCollection] + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "List of user defined labels.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"List of user defined labels.", + SerializedName = @"labels", + PossibleTypes = new [] { typeof(string) })] + public string[] Label { get => _eventSubscriptionUpdateParametersBody.Label ?? null /* arrayOf */; set => _eventSubscriptionUpdateParametersBody.Label = value; } + + /// + /// cancellation delegate. Stops the cmdlet when called. + /// + global::System.Action Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter NoWait { get; set; } + + /// + /// When specified, forces the cmdlet return a 'bool' given that there isn't a return type by default. + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Returns true when the command succeeds")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Runtime.HttpPipeline Pipeline { get; set; } + + /// The URI for the proxy server to use + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "The URI for the proxy server to use")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Uri Proxy { get; set; } + + /// Credentials for a proxy server to use for the remote call + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Credentials for a proxy server to use for the remote call")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Management.Automation.PSCredential ProxyCredential { get; set; } + + /// Use the default credentials for the proxy + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Use the default credentials for the proxy")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter ProxyUseDefaultCredentials { get; set; } + + /// Time To Live (in minutes) for events. + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Time To Live (in minutes) for events.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Time To Live (in minutes) for events.", + SerializedName = @"eventTimeToLiveInMinutes", + PossibleTypes = new [] { typeof(int) })] + public int RetryPolicyEventTimeToLiveInMinute { get => _eventSubscriptionUpdateParametersBody.RetryPolicyEventTimeToLiveInMinute ?? default(int); set => _eventSubscriptionUpdateParametersBody.RetryPolicyEventTimeToLiveInMinute = value; } + + /// Maximum number of delivery retry attempts for events. + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Maximum number of delivery retry attempts for events.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Maximum number of delivery retry attempts for events.", + SerializedName = @"maxDeliveryAttempts", + PossibleTypes = new [] { typeof(int) })] + public int RetryPolicyMaxDeliveryAttempt { get => _eventSubscriptionUpdateParametersBody.RetryPolicyMaxDeliveryAttempt ?? default(int); set => _eventSubscriptionUpdateParametersBody.RetryPolicyMaxDeliveryAttempt = value; } + + /// + /// overrideOnDefault will be called before the regular onDefault has been processed, allowing customization of what + /// happens on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// /// Determines if the rest of the onDefault method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnDefault(global::System.Net.Http.HttpResponseMessage responseMessage, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// (overrides the default BeginProcessing method in global::System.Management.Automation.PSCmdlet) + /// + protected override void BeginProcessing() + { + var telemetryId = Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.GetTelemetryId.Invoke(); + if (telemetryId != "" && telemetryId != "internal") + { + __correlationId = telemetryId; + } + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Creates a duplicate instance of this cmdlet (via JSON serialization). + /// + /// a duplicate instance of UpdateAzEventGridTopicEventSubscription_UpdateViaIdentityExpanded + /// + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Cmdlets.UpdateAzEventGridTopicEventSubscription_UpdateViaIdentityExpanded Clone() + { + var clone = new UpdateAzEventGridTopicEventSubscription_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._eventSubscriptionUpdateParametersBody = this._eventSubscriptionUpdateParametersBody; + return clone; + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + + } + + /// Handles/Dispatches events during the call to the REST service. + /// The message id + /// The message cancellation token. When this call is cancelled, this should be true + /// Detailed message data for the message event. + /// + /// A that will be complete when handling of the message is completed. + /// + async global::System.Threading.Tasks.Task Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener.Signal(string id, global::System.Threading.CancellationToken token, global::System.Func messageData) + { + using( NoSynchronizationContext ) + { + if (token.IsCancellationRequested) + { + return ; + } + + switch ( id ) + { + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.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.EventGrid.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.EventGrid.Runtime.PowerShell.AsyncOperationResponse { Target = uri }); + // do nothing more. + data.Cancel(); + return; + } + } + break; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.EventData ), InvocationInformation, this.ParameterSetName, __correlationId, __processRecordId, null ); + if (token.IsCancellationRequested) + { + return ; + } + WriteDebug($"{id}: {(messageData().Message ?? global::System.String.Empty)}"); + } + } + + /// Performs execution of the command. + protected override void ProcessRecord() + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + if (ShouldProcess($"Call remote 'TopicEventSubscriptionsUpdate' operation")) + { + if (true == MyInvocation?.BoundParameters?.ContainsKey("AsJob")) + { + var instance = this.Clone(); + var job = new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token); + } + } + } + } + catch (global::System.AggregateException aggregateException) + { + // unroll the inner exceptions to get the root cause + foreach( var innerException in aggregateException.Flatten().InnerExceptions ) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(innerException,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + } + catch (global::System.Exception exception) when ((exception as System.Management.Automation.PipelineStoppedException)== null || (exception as System.Management.Automation.PipelineStoppedException).InnerException != null) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(exception,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + finally + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletProcessRecordEnd).Wait(); + } + } + + /// Performs execution of the command, working asynchronously if required. + /// + /// A that will be complete when handling of the method is completed. + /// + protected async global::System.Threading.Tasks.Task ProcessRecordAsync() + { + using( NoSynchronizationContext ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + if (InputObject?.Id != null) + { + await this.Client.TopicEventSubscriptionsUpdateViaIdentity(InputObject.Id, _eventSubscriptionUpdateParametersBody, 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.TopicName) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.TopicName"),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, InputObject) ); + } + if (null == InputObject.EventSubscriptionName) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.EventSubscriptionName"),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, InputObject) ); + } + await this.Client.TopicEventSubscriptionsUpdate(InputObject.SubscriptionId ?? null, InputObject.ResourceGroupName ?? null, InputObject.TopicName ?? null, InputObject.EventSubscriptionName ?? null, _eventSubscriptionUpdateParametersBody, onDefault, this, Pipeline); + } + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.UndeclaredResponseException urexception) + { + WriteError(new global::System.Management.Automation.ErrorRecord(urexception, urexception.StatusCode.ToString(), global::System.Management.Automation.ErrorCategory.InvalidOperation, new { body=_eventSubscriptionUpdateParametersBody}) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(urexception.Message) { RecommendedAction = urexception.Action } + }); + } + finally + { + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Cancel(); + base.StopProcessing(); + } + + /// + /// Intializes a new instance of the cmdlet + /// class. + /// + public UpdateAzEventGridTopicEventSubscription_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. + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onDefault(global::System.Net.Http.HttpResponseMessage responseMessage) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnDefault(responseMessage, ref _returnNow); + // if overrideOnDefault has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // Error Response : default + // Unrecognized Response. Create an error record based on what we have. + var ex = new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.RestException(responseMessage); + WriteError( new global::System.Management.Automation.ErrorRecord(ex, ex.Code, global::System.Management.Automation.ErrorCategory.InvalidOperation, new { body=_eventSubscriptionUpdateParametersBody }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(ex.Message) { RecommendedAction = ex.Action } + }); + } + } + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/cmdlets/UpdateAzEventGridTopic_UpdateExpanded.cs b/swaggerci/eventgrid/generated/cmdlets/UpdateAzEventGridTopic_UpdateExpanded.cs new file mode 100644 index 000000000000..dcebac9ca476 --- /dev/null +++ b/swaggerci/eventgrid/generated/cmdlets/UpdateAzEventGridTopic_UpdateExpanded.cs @@ -0,0 +1,600 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Extensions; + using System; + + /// Asynchronously updates a topic with the specified parameters. + /// + /// [OpenAPI] Update=>PATCH:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.EventGrid/topics/{topicName}" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsData.Update, @"AzEventGridTopic_UpdateExpanded", SupportsShouldProcess = true)] + [global::System.Management.Automation.OutputType(typeof(bool))] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Description(@"Asynchronously updates a topic with the specified parameters.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Generated] + public partial class UpdateAzEventGridTopic_UpdateExpanded : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener + { + /// A unique id generatd for the this cmdlet when it is instantiated. + private string __correlationId = System.Guid.NewGuid().ToString(); + + /// A copy of the Invocation Info (necessary to allow asJob to clone this cmdlet) + private global::System.Management.Automation.InvocationInfo __invocationInfo; + + /// A unique id generatd for the this cmdlet when ProcessRecord() is called. + private string __processRecordId; + + /// + /// The for this operation. + /// + private global::System.Threading.CancellationTokenSource _cancellationTokenSource = new global::System.Threading.CancellationTokenSource(); + + /// Properties of the Topic update + private Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITopicUpdateParameters _topicUpdateParametersBody = new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.TopicUpdateParameters(); + + /// 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.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.EventGridManagementClient Client => Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.ClientAPI; + + /// The data residency boundary for the topic. + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The data residency boundary for the topic.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The data residency boundary for the topic.", + SerializedName = @"dataResidencyBoundary", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.DataResidencyBoundary) })] + [global::System.Management.Automation.ArgumentCompleter(typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.DataResidencyBoundary))] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.DataResidencyBoundary DataResidencyBoundary { get => _topicUpdateParametersBody.DataResidencyBoundary ?? ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.DataResidencyBoundary)""); set => _topicUpdateParametersBody.DataResidencyBoundary = 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.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Azure)] + public global::System.Management.Automation.PSObject DefaultProfile { get; set; } + + /// + /// This boolean is used to enable or disable local auth. Default value is false. When the property is set to true, only AAD + /// token will be used to authenticate if user is allowed to publish to the topic. + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "This boolean is used to enable or disable local auth. Default value is false. When the property is set to true, only AAD token will be used to authenticate if user is allowed to publish to the topic.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"This boolean is used to enable or disable local auth. Default value is false. When the property is set to true, only AAD token will be used to authenticate if user is allowed to publish to the topic.", + SerializedName = @"disableLocalAuth", + PossibleTypes = new [] { typeof(global::System.Management.Automation.SwitchParameter) })] + public global::System.Management.Automation.SwitchParameter DisableLocalAuth { get => _topicUpdateParametersBody.DisableLocalAuth ?? default(global::System.Management.Automation.SwitchParameter); set => _topicUpdateParametersBody.DisableLocalAuth = 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.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[] HttpPipelineAppend { get; set; } + + /// SendAsync Pipeline Steps to be prepended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be prepended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[] HttpPipelinePrepend { get; set; } + + /// The principal ID of resource identity. + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The principal ID of resource identity.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The principal ID of resource identity.", + SerializedName = @"principalId", + PossibleTypes = new [] { typeof(string) })] + public string IdentityPrincipalId { get => _topicUpdateParametersBody.IdentityPrincipalId ?? null; set => _topicUpdateParametersBody.IdentityPrincipalId = value; } + + /// The tenant ID of resource. + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The tenant ID of resource.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The tenant ID of resource.", + SerializedName = @"tenantId", + PossibleTypes = new [] { typeof(string) })] + public string IdentityTenantId { get => _topicUpdateParametersBody.IdentityTenantId ?? null; set => _topicUpdateParametersBody.IdentityTenantId = value; } + + /// + /// The type of managed identity used. The type 'SystemAssigned, UserAssigned' includes both an implicitly created identity + /// and a set of user-assigned identities. The type 'None' will remove any identity. + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The type of managed identity used. The type 'SystemAssigned, UserAssigned' includes both an implicitly created identity and a set of user-assigned identities. The type 'None' will remove any identity.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The type of managed identity used. The type 'SystemAssigned, UserAssigned' includes both an implicitly created identity and a set of user-assigned identities. The type 'None' will remove any identity.", + SerializedName = @"type", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.IdentityType) })] + [global::System.Management.Automation.ArgumentCompleter(typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.IdentityType))] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.IdentityType IdentityType { get => _topicUpdateParametersBody.IdentityType ?? ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.IdentityType)""); set => _topicUpdateParametersBody.IdentityType = value; } + + /// + /// The list of user identities associated with the resource. The user identity dictionary key references will be ARM resource + /// ids in the form:'/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ManagedIdentity/userAssignedIdentities/{identityName}'.This + /// property is currently not used and reserved for future usage. + /// + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ExportAs(typeof(global::System.Collections.Hashtable))] + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The list of user identities associated with the resource. The user identity dictionary key references will be ARM resource ids in the form:'/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ManagedIdentity/userAssignedIdentities/{identityName}'.This property is currently not used and reserved for future usage.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The list of user identities associated with the resource. The user identity dictionary key references will be ARM resource ids in the form:'/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ManagedIdentity/userAssignedIdentities/{identityName}'.This property is currently not used and reserved for future usage.", + SerializedName = @"userAssignedIdentities", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IIdentityInfoUserAssignedIdentities) })] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IIdentityInfoUserAssignedIdentities IdentityUserAssignedIdentity { get => _topicUpdateParametersBody.IdentityUserAssignedIdentity ?? null /* object */; set => _topicUpdateParametersBody.IdentityUserAssignedIdentity = value; } + + /// + /// This can be used to restrict traffic from specific IPs instead of all IPs. Note: These are considered only if PublicNetworkAccess + /// is enabled. + /// + [global::System.Management.Automation.AllowEmptyCollection] + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "This can be used to restrict traffic from specific IPs instead of all IPs. Note: These are considered only if PublicNetworkAccess is enabled.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"This can be used to restrict traffic from specific IPs instead of all IPs. Note: These are considered only if PublicNetworkAccess is enabled.", + SerializedName = @"inboundIpRules", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IInboundIPRule) })] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IInboundIPRule[] InboundIPRule { get => _topicUpdateParametersBody.InboundIPRule ?? null /* arrayOf */; set => _topicUpdateParametersBody.InboundIPRule = value; } + + /// Accessor for our copy of the InvocationInfo. + public global::System.Management.Automation.InvocationInfo InvocationInformation { get => __invocationInfo = __invocationInfo ?? this.MyInvocation ; set { __invocationInfo = value; } } + + /// + /// cancellation delegate. Stops the cmdlet when called. + /// + global::System.Action Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener.Token => _cancellationTokenSource.Token; + + /// Backing field for property. + private string _name; + + /// Name of the topic. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Name of the topic.")] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Name of the topic.", + SerializedName = @"topicName", + PossibleTypes = new [] { typeof(string) })] + [global::System.Management.Automation.Alias("TopicName")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Path)] + public string Name { get => this._name; set => this._name = value; } + + /// + /// when specified, will make the remote call, and return an AsyncOperationResponse, letting the remote operation continue + /// asynchronously. + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Run the command asynchronously")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter NoWait { get; set; } + + /// + /// When specified, forces the cmdlet return a 'bool' given that there isn't a return type by default. + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Returns true when the command succeeds")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Runtime.HttpPipeline Pipeline { get; set; } + + /// The URI for the proxy server to use + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "The URI for the proxy server to use")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Uri Proxy { get; set; } + + /// Credentials for a proxy server to use for the remote call + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Credentials for a proxy server to use for the remote call")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Management.Automation.PSCredential ProxyCredential { get; set; } + + /// Use the default credentials for the proxy + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Use the default credentials for the proxy")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter ProxyUseDefaultCredentials { get; set; } + + /// + /// This determines if traffic is allowed over public network. By default it is enabled. You can further restrict to specific + /// IPs by configuring + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "This determines if traffic is allowed over public network. By default it is enabled. You can further restrict to specific IPs by configuring ")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"This determines if traffic is allowed over public network. By default it is enabled. You can further restrict to specific IPs by configuring ", + SerializedName = @"publicNetworkAccess", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.PublicNetworkAccess) })] + [global::System.Management.Automation.ArgumentCompleter(typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.PublicNetworkAccess))] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.PublicNetworkAccess PublicNetworkAccess { get => _topicUpdateParametersBody.PublicNetworkAccess ?? ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.PublicNetworkAccess)""); set => _topicUpdateParametersBody.PublicNetworkAccess = value; } + + /// Backing field for property. + private string _resourceGroupName; + + /// The name of the resource group within the user's subscription. + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "The name of the resource group within the user's subscription.")] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"The name of the resource group within the user's subscription.", + SerializedName = @"resourceGroupName", + PossibleTypes = new [] { typeof(string) })] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Path)] + public string ResourceGroupName { get => this._resourceGroupName; set => this._resourceGroupName = value; } + + /// The Sku name of the resource. The possible values are: Basic or Premium. + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The Sku name of the resource. The possible values are: Basic or Premium.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The Sku name of the resource. The possible values are: Basic or Premium.", + SerializedName = @"name", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.Sku) })] + [global::System.Management.Automation.ArgumentCompleter(typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.Sku))] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.Sku SkuName { get => _topicUpdateParametersBody.SkuName ?? ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.Sku)""); set => _topicUpdateParametersBody.SkuName = value; } + + /// Backing field for property. + private string _subscriptionId; + + /// + /// Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription ID forms part of the + /// URI for every service call. + /// + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.")] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = true, + ReadOnly = false, + Description = @"Subscription credentials that uniquely identify a Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.", + SerializedName = @"subscriptionId", + PossibleTypes = new [] { typeof(string) })] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.DefaultInfo( + Name = @"", + Description =@"", + Script = @"(Get-AzContext).Subscription.Id")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Path)] + public string SubscriptionId { get => this._subscriptionId; set => this._subscriptionId = value; } + + /// Tags of the Topic resource. + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ExportAs(typeof(global::System.Collections.Hashtable))] + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Tags of the Topic resource.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Tags of the Topic resource.", + SerializedName = @"tags", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITopicUpdateParametersTags) })] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITopicUpdateParametersTags Tag { get => _topicUpdateParametersBody.Tag ?? null /* object */; set => _topicUpdateParametersBody.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. + /// /// Determines if the rest of the onDefault method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnDefault(global::System.Net.Http.HttpResponseMessage responseMessage, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnOk will be called before the regular onOk has been processed, allowing customization of what happens + /// on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// /// Determines if the rest of the onOk method should be processed, or if the method should return + /// immediately (set to true to skip further processing ) + + partial void overrideOnOk(global::System.Net.Http.HttpResponseMessage responseMessage, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// (overrides the default BeginProcessing method in global::System.Management.Automation.PSCmdlet) + /// + protected override void BeginProcessing() + { + var telemetryId = Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.GetTelemetryId.Invoke(); + if (telemetryId != "" && telemetryId != "internal") + { + __correlationId = telemetryId; + } + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Creates a duplicate instance of this cmdlet (via JSON serialization). + /// a duplicate instance of UpdateAzEventGridTopic_UpdateExpanded + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Cmdlets.UpdateAzEventGridTopic_UpdateExpanded Clone() + { + var clone = new UpdateAzEventGridTopic_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._topicUpdateParametersBody = this._topicUpdateParametersBody; + clone.SubscriptionId = this.SubscriptionId; + clone.ResourceGroupName = this.ResourceGroupName; + clone.Name = this.Name; + return clone; + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + + } + + /// Handles/Dispatches events during the call to the REST service. + /// The message id + /// The message cancellation token. When this call is cancelled, this should be true + /// Detailed message data for the message event. + /// + /// A that will be complete when handling of the message is completed. + /// + async global::System.Threading.Tasks.Task Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener.Signal(string id, global::System.Threading.CancellationToken token, global::System.Func messageData) + { + using( NoSynchronizationContext ) + { + if (token.IsCancellationRequested) + { + return ; + } + + switch ( id ) + { + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.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.EventGrid.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.EventGrid.Runtime.PowerShell.AsyncOperationResponse { Target = uri }); + // do nothing more. + data.Cancel(); + return; + } + } + break; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.EventData ), InvocationInformation, this.ParameterSetName, __correlationId, __processRecordId, null ); + if (token.IsCancellationRequested) + { + return ; + } + WriteDebug($"{id}: {(messageData().Message ?? global::System.String.Empty)}"); + } + } + + /// Performs execution of the command. + protected override void ProcessRecord() + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + if (ShouldProcess($"Call remote 'TopicsUpdate' operation")) + { + if (true == MyInvocation?.BoundParameters?.ContainsKey("AsJob")) + { + var instance = this.Clone(); + var job = new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token); + } + } + } + } + catch (global::System.AggregateException aggregateException) + { + // unroll the inner exceptions to get the root cause + foreach( var innerException in aggregateException.Flatten().InnerExceptions ) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(innerException,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + } + catch (global::System.Exception exception) when ((exception as System.Management.Automation.PipelineStoppedException)== null || (exception as System.Management.Automation.PipelineStoppedException).InnerException != null) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(exception,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + finally + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletProcessRecordEnd).Wait(); + } + } + + /// Performs execution of the command, working asynchronously if required. + /// + /// A that will be complete when handling of the method is completed. + /// + protected async global::System.Threading.Tasks.Task ProcessRecordAsync() + { + using( NoSynchronizationContext ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + await this.Client.TopicsUpdate(SubscriptionId, ResourceGroupName, Name, _topicUpdateParametersBody, onOk, onDefault, this, Pipeline); + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.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=_topicUpdateParametersBody}) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(urexception.Message) { RecommendedAction = urexception.Action } + }); + } + finally + { + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Cancel(); + base.StopProcessing(); + } + + /// + /// Intializes a new instance of the cmdlet class. + /// + public UpdateAzEventGridTopic_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. + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onDefault(global::System.Net.Http.HttpResponseMessage responseMessage) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnDefault(responseMessage, ref _returnNow); + // if overrideOnDefault has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // Error Response : default + // Unrecognized Response. Create an error record based on what we have. + var ex = new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.RestException(responseMessage); + WriteError( new global::System.Management.Automation.ErrorRecord(ex, ex.Code, global::System.Management.Automation.ErrorCategory.InvalidOperation, new { SubscriptionId=SubscriptionId, ResourceGroupName=ResourceGroupName, Name=Name, body=_topicUpdateParametersBody }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(ex.Message) { RecommendedAction = ex.Action } + }); + } + } + + /// a delegate that is called when the remote service returns 200 (OK). + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onOk(global::System.Net.Http.HttpResponseMessage responseMessage) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnOk(responseMessage, ref _returnNow); + // if overrideOnOk has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // onOk - response for 200 / + if (true == MyInvocation?.BoundParameters?.ContainsKey("PassThru")) + { + WriteObject(true); + } + } + } + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/cmdlets/UpdateAzEventGridTopic_UpdateViaIdentityExpanded.cs b/swaggerci/eventgrid/generated/cmdlets/UpdateAzEventGridTopic_UpdateViaIdentityExpanded.cs new file mode 100644 index 000000000000..d5e8041b4a60 --- /dev/null +++ b/swaggerci/eventgrid/generated/cmdlets/UpdateAzEventGridTopic_UpdateViaIdentityExpanded.cs @@ -0,0 +1,575 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Cmdlets +{ + using static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Extensions; + using System; + + /// Asynchronously updates a topic with the specified parameters. + /// + /// [OpenAPI] Update=>PATCH:"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.EventGrid/topics/{topicName}" + /// + [global::System.Management.Automation.Cmdlet(global::System.Management.Automation.VerbsData.Update, @"AzEventGridTopic_UpdateViaIdentityExpanded", SupportsShouldProcess = true)] + [global::System.Management.Automation.OutputType(typeof(bool))] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Description(@"Asynchronously updates a topic with the specified parameters.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Generated] + public partial class UpdateAzEventGridTopic_UpdateViaIdentityExpanded : global::System.Management.Automation.PSCmdlet, + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener + { + /// A unique id generatd for the this cmdlet when it is instantiated. + private string __correlationId = System.Guid.NewGuid().ToString(); + + /// A copy of the Invocation Info (necessary to allow asJob to clone this cmdlet) + private global::System.Management.Automation.InvocationInfo __invocationInfo; + + /// A unique id generatd for the this cmdlet when ProcessRecord() is called. + private string __processRecordId; + + /// + /// The for this operation. + /// + private global::System.Threading.CancellationTokenSource _cancellationTokenSource = new global::System.Threading.CancellationTokenSource(); + + /// Properties of the Topic update + private Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITopicUpdateParameters _topicUpdateParametersBody = new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.TopicUpdateParameters(); + + /// 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.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter Break { get; set; } + + /// The reference to the client API class. + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.EventGridManagementClient Client => Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.ClientAPI; + + /// The data residency boundary for the topic. + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The data residency boundary for the topic.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The data residency boundary for the topic.", + SerializedName = @"dataResidencyBoundary", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.DataResidencyBoundary) })] + [global::System.Management.Automation.ArgumentCompleter(typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.DataResidencyBoundary))] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.DataResidencyBoundary DataResidencyBoundary { get => _topicUpdateParametersBody.DataResidencyBoundary ?? ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.DataResidencyBoundary)""); set => _topicUpdateParametersBody.DataResidencyBoundary = 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.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Azure)] + public global::System.Management.Automation.PSObject DefaultProfile { get; set; } + + /// + /// This boolean is used to enable or disable local auth. Default value is false. When the property is set to true, only AAD + /// token will be used to authenticate if user is allowed to publish to the topic. + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "This boolean is used to enable or disable local auth. Default value is false. When the property is set to true, only AAD token will be used to authenticate if user is allowed to publish to the topic.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"This boolean is used to enable or disable local auth. Default value is false. When the property is set to true, only AAD token will be used to authenticate if user is allowed to publish to the topic.", + SerializedName = @"disableLocalAuth", + PossibleTypes = new [] { typeof(global::System.Management.Automation.SwitchParameter) })] + public global::System.Management.Automation.SwitchParameter DisableLocalAuth { get => _topicUpdateParametersBody.DisableLocalAuth ?? default(global::System.Management.Automation.SwitchParameter); set => _topicUpdateParametersBody.DisableLocalAuth = 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.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[] HttpPipelineAppend { get; set; } + + /// SendAsync Pipeline Steps to be prepended to the front of the pipeline + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "SendAsync Pipeline Steps to be prepended to the front of the pipeline")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[] HttpPipelinePrepend { get; set; } + + /// The principal ID of resource identity. + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The principal ID of resource identity.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The principal ID of resource identity.", + SerializedName = @"principalId", + PossibleTypes = new [] { typeof(string) })] + public string IdentityPrincipalId { get => _topicUpdateParametersBody.IdentityPrincipalId ?? null; set => _topicUpdateParametersBody.IdentityPrincipalId = value; } + + /// The tenant ID of resource. + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The tenant ID of resource.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The tenant ID of resource.", + SerializedName = @"tenantId", + PossibleTypes = new [] { typeof(string) })] + public string IdentityTenantId { get => _topicUpdateParametersBody.IdentityTenantId ?? null; set => _topicUpdateParametersBody.IdentityTenantId = value; } + + /// + /// The type of managed identity used. The type 'SystemAssigned, UserAssigned' includes both an implicitly created identity + /// and a set of user-assigned identities. The type 'None' will remove any identity. + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The type of managed identity used. The type 'SystemAssigned, UserAssigned' includes both an implicitly created identity and a set of user-assigned identities. The type 'None' will remove any identity.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The type of managed identity used. The type 'SystemAssigned, UserAssigned' includes both an implicitly created identity and a set of user-assigned identities. The type 'None' will remove any identity.", + SerializedName = @"type", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.IdentityType) })] + [global::System.Management.Automation.ArgumentCompleter(typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.IdentityType))] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.IdentityType IdentityType { get => _topicUpdateParametersBody.IdentityType ?? ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.IdentityType)""); set => _topicUpdateParametersBody.IdentityType = value; } + + /// + /// The list of user identities associated with the resource. The user identity dictionary key references will be ARM resource + /// ids in the form:'/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ManagedIdentity/userAssignedIdentities/{identityName}'.This + /// property is currently not used and reserved for future usage. + /// + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ExportAs(typeof(global::System.Collections.Hashtable))] + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The list of user identities associated with the resource. The user identity dictionary key references will be ARM resource ids in the form:'/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ManagedIdentity/userAssignedIdentities/{identityName}'.This property is currently not used and reserved for future usage.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The list of user identities associated with the resource. The user identity dictionary key references will be ARM resource ids in the form:'/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ManagedIdentity/userAssignedIdentities/{identityName}'.This property is currently not used and reserved for future usage.", + SerializedName = @"userAssignedIdentities", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IIdentityInfoUserAssignedIdentities) })] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IIdentityInfoUserAssignedIdentities IdentityUserAssignedIdentity { get => _topicUpdateParametersBody.IdentityUserAssignedIdentity ?? null /* object */; set => _topicUpdateParametersBody.IdentityUserAssignedIdentity = value; } + + /// + /// This can be used to restrict traffic from specific IPs instead of all IPs. Note: These are considered only if PublicNetworkAccess + /// is enabled. + /// + [global::System.Management.Automation.AllowEmptyCollection] + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "This can be used to restrict traffic from specific IPs instead of all IPs. Note: These are considered only if PublicNetworkAccess is enabled.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"This can be used to restrict traffic from specific IPs instead of all IPs. Note: These are considered only if PublicNetworkAccess is enabled.", + SerializedName = @"inboundIpRules", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IInboundIPRule) })] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IInboundIPRule[] InboundIPRule { get => _topicUpdateParametersBody.InboundIPRule ?? null /* arrayOf */; set => _topicUpdateParametersBody.InboundIPRule = value; } + + /// Backing field for property. + private Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.IEventGridIdentity _inputObject; + + /// Identity Parameter + [global::System.Management.Automation.Parameter(Mandatory = true, HelpMessage = "Identity Parameter", ValueFromPipeline = true)] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Path)] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.IEventGridIdentity InputObject { get => this._inputObject; set => this._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.EventGrid.Runtime.IEventListener.Cancel => _cancellationTokenSource.Cancel; + + /// cancellation token. + global::System.Threading.CancellationToken Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter NoWait { get; set; } + + /// + /// When specified, forces the cmdlet return a 'bool' given that there isn't a return type by default. + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Returns true when the command succeeds")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Runtime.HttpPipeline Pipeline { get; set; } + + /// The URI for the proxy server to use + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "The URI for the proxy server to use")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Uri Proxy { get; set; } + + /// Credentials for a proxy server to use for the remote call + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Credentials for a proxy server to use for the remote call")] + [global::System.Management.Automation.ValidateNotNull] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Management.Automation.PSCredential ProxyCredential { get; set; } + + /// Use the default credentials for the proxy + [global::System.Management.Automation.Parameter(Mandatory = false, DontShow = true, HelpMessage = "Use the default credentials for the proxy")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Runtime)] + public global::System.Management.Automation.SwitchParameter ProxyUseDefaultCredentials { get; set; } + + /// + /// This determines if traffic is allowed over public network. By default it is enabled. You can further restrict to specific + /// IPs by configuring + /// + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "This determines if traffic is allowed over public network. By default it is enabled. You can further restrict to specific IPs by configuring ")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"This determines if traffic is allowed over public network. By default it is enabled. You can further restrict to specific IPs by configuring ", + SerializedName = @"publicNetworkAccess", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.PublicNetworkAccess) })] + [global::System.Management.Automation.ArgumentCompleter(typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.PublicNetworkAccess))] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.PublicNetworkAccess PublicNetworkAccess { get => _topicUpdateParametersBody.PublicNetworkAccess ?? ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.PublicNetworkAccess)""); set => _topicUpdateParametersBody.PublicNetworkAccess = value; } + + /// The Sku name of the resource. The possible values are: Basic or Premium. + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "The Sku name of the resource. The possible values are: Basic or Premium.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"The Sku name of the resource. The possible values are: Basic or Premium.", + SerializedName = @"name", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.Sku) })] + [global::System.Management.Automation.ArgumentCompleter(typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.Sku))] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.Sku SkuName { get => _topicUpdateParametersBody.SkuName ?? ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support.Sku)""); set => _topicUpdateParametersBody.SkuName = value; } + + /// Tags of the Topic resource. + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ExportAs(typeof(global::System.Collections.Hashtable))] + [global::System.Management.Automation.Parameter(Mandatory = false, HelpMessage = "Tags of the Topic resource.")] + [global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category(global::Microsoft.Azure.PowerShell.Cmdlets.EventGrid.ParameterCategory.Body)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Info( + Required = false, + ReadOnly = false, + Description = @"Tags of the Topic resource.", + SerializedName = @"tags", + PossibleTypes = new [] { typeof(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITopicUpdateParametersTags) })] + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.ITopicUpdateParametersTags Tag { get => _topicUpdateParametersBody.Tag ?? null /* object */; set => _topicUpdateParametersBody.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. + /// /// Determines if the rest of the onDefault method should be processed, or if the method should + /// return immediately (set to true to skip further processing ) + + partial void overrideOnDefault(global::System.Net.Http.HttpResponseMessage responseMessage, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// overrideOnOk will be called before the regular onOk has been processed, allowing customization of what happens + /// on that response. Implement this method in a partial class to enable this behavior + /// + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// /// Determines if the rest of the onOk method should be processed, or if the method should return + /// immediately (set to true to skip further processing ) + + partial void overrideOnOk(global::System.Net.Http.HttpResponseMessage responseMessage, ref global::System.Threading.Tasks.Task returnNow); + + /// + /// (overrides the default BeginProcessing method in global::System.Management.Automation.PSCmdlet) + /// + protected override void BeginProcessing() + { + var telemetryId = Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.GetTelemetryId.Invoke(); + if (telemetryId != "" && telemetryId != "internal") + { + __correlationId = telemetryId; + } + Module.Instance.SetProxyConfiguration(Proxy, ProxyCredential, ProxyUseDefaultCredentials); + if (Break) + { + Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.AttachDebugger.Break(); + } + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletBeginProcessing).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + + /// Creates a duplicate instance of this cmdlet (via JSON serialization). + /// a duplicate instance of UpdateAzEventGridTopic_UpdateViaIdentityExpanded + public Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Cmdlets.UpdateAzEventGridTopic_UpdateViaIdentityExpanded Clone() + { + var clone = new UpdateAzEventGridTopic_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._topicUpdateParametersBody = this._topicUpdateParametersBody; + return clone; + } + + /// Performs clean-up after the command execution + protected override void EndProcessing() + { + + } + + /// Handles/Dispatches events during the call to the REST service. + /// The message id + /// The message cancellation token. When this call is cancelled, this should be true + /// Detailed message data for the message event. + /// + /// A that will be complete when handling of the message is completed. + /// + async global::System.Threading.Tasks.Task Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener.Signal(string id, global::System.Threading.CancellationToken token, global::System.Func messageData) + { + using( NoSynchronizationContext ) + { + if (token.IsCancellationRequested) + { + return ; + } + + switch ( id ) + { + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Verbose: + { + WriteVerbose($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.Warning: + { + WriteWarning($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Runtime.Events.Debug: + { + WriteDebug($"{(messageData().Message ?? global::System.String.Empty)}"); + return ; + } + case Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.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.EventGrid.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.EventGrid.Runtime.PowerShell.AsyncOperationResponse { Target = uri }); + // do nothing more. + data.Cancel(); + return; + } + } + break; + } + } + await Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.Signal(id, token, messageData, (i,t,m) => ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(i,t,()=> Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.EventDataConverter.ConvertFrom( m() ) as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.EventData ), InvocationInformation, this.ParameterSetName, __correlationId, __processRecordId, null ); + if (token.IsCancellationRequested) + { + return ; + } + WriteDebug($"{id}: {(messageData().Message ?? global::System.String.Empty)}"); + } + } + + /// Performs execution of the command. + protected override void ProcessRecord() + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletProcessRecordStart).Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + __processRecordId = System.Guid.NewGuid().ToString(); + try + { + // work + if (ShouldProcess($"Call remote 'TopicsUpdate' operation")) + { + if (true == MyInvocation?.BoundParameters?.ContainsKey("AsJob")) + { + var instance = this.Clone(); + var job = new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.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.EventGrid.Runtime.PowerShell.AsyncCommandRuntime(this, ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token) ) + { + asyncCommandRuntime.Wait( ProcessRecordAsync(),((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token); + } + } + } + } + catch (global::System.AggregateException aggregateException) + { + // unroll the inner exceptions to get the root cause + foreach( var innerException in aggregateException.Flatten().InnerExceptions ) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletException, $"{innerException.GetType().Name} - {innerException.Message} : {innerException.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(innerException,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + } + catch (global::System.Exception exception) when ((exception as System.Management.Automation.PipelineStoppedException)== null || (exception as System.Management.Automation.PipelineStoppedException).InnerException != null) + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletException, $"{exception.GetType().Name} - {exception.Message} : {exception.StackTrace}").Wait(); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + // Write exception out to error channel. + WriteError( new global::System.Management.Automation.ErrorRecord(exception,string.Empty, global::System.Management.Automation.ErrorCategory.NotSpecified, null) ); + } + finally + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletProcessRecordEnd).Wait(); + } + } + + /// Performs execution of the command, working asynchronously if required. + /// + /// A that will be complete when handling of the method is completed. + /// + protected async global::System.Threading.Tasks.Task ProcessRecordAsync() + { + using( NoSynchronizationContext ) + { + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletGetPipeline); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + Pipeline = Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module.Instance.CreatePipeline(InvocationInformation, __correlationId, __processRecordId, this.ParameterSetName); + if (null != HttpPipelinePrepend) + { + Pipeline.Prepend((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelinePrepend) ?? HttpPipelinePrepend); + } + if (null != HttpPipelineAppend) + { + Pipeline.Append((this.CommandRuntime as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell.IAsyncCommandRuntimeExtensions)?.Wrap(HttpPipelineAppend) ?? HttpPipelineAppend); + } + // get the client instance + try + { + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletBeforeAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + if (InputObject?.Id != null) + { + await this.Client.TopicsUpdateViaIdentity(InputObject.Id, _topicUpdateParametersBody, 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.TopicName) + { + ThrowTerminatingError( new global::System.Management.Automation.ErrorRecord(new global::System.Exception("InputObject has null value for InputObject.TopicName"),string.Empty, global::System.Management.Automation.ErrorCategory.InvalidArgument, InputObject) ); + } + await this.Client.TopicsUpdate(InputObject.SubscriptionId ?? null, InputObject.ResourceGroupName ?? null, InputObject.TopicName ?? null, _topicUpdateParametersBody, onOk, onDefault, this, Pipeline); + } + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletAfterAPICall); if( ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Token.IsCancellationRequested ) { return; } + } + catch (Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.UndeclaredResponseException urexception) + { + WriteError(new global::System.Management.Automation.ErrorRecord(urexception, urexception.StatusCode.ToString(), global::System.Management.Automation.ErrorCategory.InvalidOperation, new { body=_topicUpdateParametersBody}) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(urexception.Message) { RecommendedAction = urexception.Action } + }); + } + finally + { + await ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.CmdletProcessRecordAsyncEnd); + } + } + } + + /// Interrupts currently running code within the command. + protected override void StopProcessing() + { + ((Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener)this).Cancel(); + base.StopProcessing(); + } + + /// + /// Intializes a new instance of the cmdlet class. + /// + public UpdateAzEventGridTopic_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. + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onDefault(global::System.Net.Http.HttpResponseMessage responseMessage) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnDefault(responseMessage, ref _returnNow); + // if overrideOnDefault has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // Error Response : default + // Unrecognized Response. Create an error record based on what we have. + var ex = new Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.RestException(responseMessage); + WriteError( new global::System.Management.Automation.ErrorRecord(ex, ex.Code, global::System.Management.Automation.ErrorCategory.InvalidOperation, new { body=_topicUpdateParametersBody }) + { + ErrorDetails = new global::System.Management.Automation.ErrorDetails(ex.Message) { RecommendedAction = ex.Action } + }); + } + } + + /// a delegate that is called when the remote service returns 200 (OK). + /// the raw response message as an global::System.Net.Http.HttpResponseMessage. + /// + /// A that will be complete when handling of the method is completed. + /// + private async global::System.Threading.Tasks.Task onOk(global::System.Net.Http.HttpResponseMessage responseMessage) + { + using( NoSynchronizationContext ) + { + var _returnNow = global::System.Threading.Tasks.Task.FromResult(false); + overrideOnOk(responseMessage, ref _returnNow); + // if overrideOnOk has returned true, then return right away. + if ((null != _returnNow && await _returnNow)) + { + return ; + } + // onOk - response for 200 / + if (true == MyInvocation?.BoundParameters?.ContainsKey("PassThru")) + { + WriteObject(true); + } + } + } + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/modules/Az.Accounts/2.7.5/Accounts.format.ps1xml b/swaggerci/eventgrid/generated/modules/Az.Accounts/2.7.5/Accounts.format.ps1xml new file mode 100644 index 000000000000..ae0c12dd4efa --- /dev/null +++ b/swaggerci/eventgrid/generated/modules/Az.Accounts/2.7.5/Accounts.format.ps1xml @@ -0,0 +1,496 @@ + + + + + AzureErrorRecords + + Microsoft.Azure.Commands.Profile.Errors.AzureErrorRecord + Microsoft.Azure.Commands.Profile.Errors.AzureExceptionRecord + Microsoft.Azure.Commands.Profile.Errors.AzureRestExceptionRecord + + + + + + Microsoft.Azure.Commands.Profile.Errors.AzureRestExceptionRecord + + AzureErrorRecords + + + $_.InvocationInfo.HistoryId + + + + + + + + ErrorCategory + + + ErrorDetail + + + + "{" + $_.InvocationInfo.MyCommand + "}" + + + + $_.InvocationInfo.Line + + + + $_.InvocationInfo.PositionMessage + + + + $_.InvocationInfo.BoundParameters + + + + $_.InvocationInfo.UnboundParameters + + + + $_.InvocationInfo.HistoryId + + + + + + + AzureErrorRecords + $_.GetType() -eq [Microsoft.Azure.Commands.Profile.Errors.AzureRestExceptionRecord] + + + + + RequestId + + + Message + + + ServerMessage + + + ServerResponse + + + RequestMessage + + + + "{" + $_.InvocationInfo.MyCommand + "}" + + + + $_.InvocationInfo.Line + + + + $_.InvocationInfo.PositionMessage + + + StackTrace + + + + $_.InvocationInfo.HistoryId + + + + + + + AzureErrorRecords + $_.GetType() -eq [Microsoft.Azure.Commands.Profile.Errors.AzureExceptionRecord] + + + + + Message + + + StackTrace + + + + $_.Exception.GetType() + + + + "{" + $_.InvocationInfo.MyCommand + "}" + + + + $_.InvocationInfo.Line + + + + $_.InvocationInfo.PositionMessage + + + + $_.InvocationInfo.HistoryId + + + + + + + + Microsoft.Azure.Commands.Profile.CommonModule.PSAzureServiceProfile + + Microsoft.Azure.Commands.Profile.CommonModule.PSAzureServiceProfile + + + + + Left + + + + Left + + + + + + + + Left + Name + + + Left + Description + + + + + + + + Microsoft.Azure.Commands.Profile.Models.PSAccessToken + + Microsoft.Azure.Commands.Profile.Models.PSAccessToken + + + + + + + Token + + + ExpiresOn + + + Type + + + TenantId + + + UserId + + + + + + + + Microsoft.Azure.Commands.Profile.Models.PSAzureSubscriptionPolicy + + Microsoft.Azure.Commands.Profile.Models.PSAzureSubscriptionPolicy + + + + + Left + + + + Left + + + + Left + + + + + + + + Left + locationPlacementId + + + Left + QuotaId + + + Left + SpendingLimit + + + + + + + + Microsoft.Azure.Commands.Profile.Models.PSAzureRmAccount + + Microsoft.Azure.Commands.Profile.Models.PSAzureRmAccount + + + + + + + Id + + + Type + + + Tenants + + + Credential + + + TenantMap + + + CertificateThumbprint + + + + $_.ExtendedProperties.GetEnumerator() + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/swaggerci/eventgrid/generated/modules/Az.Accounts/2.7.5/Accounts.generated.format.ps1xml b/swaggerci/eventgrid/generated/modules/Az.Accounts/2.7.5/Accounts.generated.format.ps1xml new file mode 100644 index 000000000000..a81dae94b4db --- /dev/null +++ b/swaggerci/eventgrid/generated/modules/Az.Accounts/2.7.5/Accounts.generated.format.ps1xml @@ -0,0 +1,468 @@ + + + + + Microsoft.Azure.Commands.Profile.Models.PSAzureEnvironment + + Microsoft.Azure.Commands.Profile.Models.PSAzureEnvironment + + + + + Left + + + + Left + + + + Left + + + + Left + + + + + + + + Left + Name + + + Left + ResourceManagerUrl + + + Left + ActiveDirectoryAuthority + + + Left + Type + + + + + + + + Microsoft.Azure.Commands.Profile.Models.PSAzureSubscription + + Microsoft.Azure.Commands.Profile.Models.PSAzureSubscription + + + + + Left + + + + Left + + + + Left + + + + Left + + + + + + + + Left + Name + + + Left + Id + + + Left + TenantId + + + Left + State + + + + + + + + Microsoft.Azure.Commands.Profile.Models.Core.PSAzureProfile + + Microsoft.Azure.Commands.Profile.Models.Core.PSAzureProfile + + + + + Left + + + + Left + + + + Left + + + + Left + + + + + + + + Left + $_.Context.Account.ToString() + + + Left + $_.Context.Subscription.Name + + + Left + $_.Context.Tenant.ToString() + + + Left + $_.Context.Environment.ToString() + + + + + + + + Microsoft.Azure.Commands.Profile.Models.Core.PSAzureContext + + Microsoft.Azure.Commands.Profile.Models.Core.PSAzureContext + + + + + 40 + Left + + + + Left + + + + Left + + + + Left + + + + Left + + + + + + + + Left + Name + + + Left + Account + + + Left + $_.Subscription.Name + + + Left + Environment + + + Left + $_.Tenant.ToString() + + + + + + + + Microsoft.Azure.Commands.Profile.Models.PSAzureTenant + + Microsoft.Azure.Commands.Profile.Models.PSAzureTenant + + + + + Left + + + + Left + + + + Left + + + + Left + + + + + + + + Left + Id + + + Left + $_.Name + + + Left + $_.TenantCategory + + + Left + $_.Domains + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/swaggerci/eventgrid/generated/modules/Az.Accounts/2.7.5/Accounts.types.ps1xml b/swaggerci/eventgrid/generated/modules/Az.Accounts/2.7.5/Accounts.types.ps1xml new file mode 100644 index 000000000000..e3b670a7daff --- /dev/null +++ b/swaggerci/eventgrid/generated/modules/Az.Accounts/2.7.5/Accounts.types.ps1xml @@ -0,0 +1,303 @@ + + + + Microsoft.Azure.Commands.Profile.Models.Core.PSAzureProfile + + + PSStandardMembers + + + SerializationDepth + 10 + + + + + + + Microsoft.Azure.Commands.Profile.Models.Core.PSAzureContext + + + PSStandardMembers + + + SerializationDepth + 10 + + + + + + + Microsoft.Azure.Commands.Common.Authentication.Core.AuthenticationStoreTokenCache + + + PSStandardMembers + + + SerializationMethod + SpecificProperties + + + PropertySerializationSet + + CacheData + + + + + + + + Microsoft.Azure.Commands.Common.Authentication.Core.ProtectedFileTokenCache + + + PSStandardMembers + + + SerializationMethod + SpecificProperties + + + PropertySerializationSet + + CacheData + + + + + + + + Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer + + + PSStandardMembers + + + SerializationDepth + 10 + + + + + + Microsoft.Azure.Commands.Profile.Models.AzureContextConverter + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/swaggerci/eventgrid/generated/modules/Az.Accounts/2.7.5/Az.Accounts.nuspec b/swaggerci/eventgrid/generated/modules/Az.Accounts/2.7.5/Az.Accounts.nuspec new file mode 100644 index 000000000000..f664d888f3b8 --- /dev/null +++ b/swaggerci/eventgrid/generated/modules/Az.Accounts/2.7.5/Az.Accounts.nuspec @@ -0,0 +1,20 @@ + + + + Az.Accounts + 2.7.5 + Microsoft Corporation + Microsoft Corporation + true + https://aka.ms/azps-license + https://github.com/Azure/azure-powershell + Microsoft Azure PowerShell - Accounts credential management cmdlets for Azure Resource Manager in Windows PowerShell and PowerShell Core. + +For more information on account credential management, please visit the following: https://docs.microsoft.com/powershell/azure/authenticate-azureps + * Added 'SshCredentialFactory' to support get ssh credential of vm from msal. +* Fixed the bug of cmdlet fails when -DefaultProfile is set to service principal login context. [#16617] +* Fixed the issue that authorization does not work in Dogfood environment + Microsoft Corporation. All rights reserved. + Azure ResourceManager ARM Accounts Authentication Environment Subscription PSModule PSIncludes_Cmdlet PSCmdlet_Disable-AzDataCollection PSCmdlet_Disable-AzContextAutosave PSCmdlet_Enable-AzDataCollection PSCmdlet_Enable-AzContextAutosave PSCmdlet_Remove-AzEnvironment PSCmdlet_Get-AzEnvironment PSCmdlet_Set-AzEnvironment PSCmdlet_Add-AzEnvironment PSCmdlet_Get-AzSubscription PSCmdlet_Connect-AzAccount PSCmdlet_Get-AzContext PSCmdlet_Set-AzContext PSCmdlet_Import-AzContext PSCmdlet_Save-AzContext PSCmdlet_Get-AzTenant PSCmdlet_Send-Feedback PSCmdlet_Resolve-AzError PSCmdlet_Select-AzContext PSCmdlet_Rename-AzContext PSCmdlet_Remove-AzContext PSCmdlet_Clear-AzContext PSCmdlet_Disconnect-AzAccount PSCmdlet_Get-AzContextAutosaveSetting PSCmdlet_Set-AzDefault PSCmdlet_Get-AzDefault PSCmdlet_Clear-AzDefault PSCmdlet_Register-AzModule PSCmdlet_Enable-AzureRmAlias PSCmdlet_Disable-AzureRmAlias PSCmdlet_Uninstall-AzureRm PSCmdlet_Invoke-AzRestMethod PSCmdlet_Get-AzAccessToken PSCmdlet_Open-AzSurveyLink PSCommand_Disable-AzDataCollection PSCommand_Disable-AzContextAutosave PSCommand_Enable-AzDataCollection PSCommand_Enable-AzContextAutosave PSCommand_Remove-AzEnvironment PSCommand_Get-AzEnvironment PSCommand_Set-AzEnvironment PSCommand_Add-AzEnvironment PSCommand_Get-AzSubscription PSCommand_Connect-AzAccount PSCommand_Get-AzContext PSCommand_Set-AzContext PSCommand_Import-AzContext PSCommand_Save-AzContext PSCommand_Get-AzTenant PSCommand_Send-Feedback PSCommand_Resolve-AzError PSCommand_Select-AzContext PSCommand_Rename-AzContext PSCommand_Remove-AzContext PSCommand_Clear-AzContext PSCommand_Disconnect-AzAccount PSCommand_Get-AzContextAutosaveSetting PSCommand_Set-AzDefault PSCommand_Get-AzDefault PSCommand_Clear-AzDefault PSCommand_Register-AzModule PSCommand_Enable-AzureRmAlias PSCommand_Disable-AzureRmAlias PSCommand_Uninstall-AzureRm PSCommand_Invoke-AzRestMethod PSCommand_Get-AzAccessToken PSCommand_Open-AzSurveyLink PSCommand_Add-AzAccount PSCommand_Login-AzAccount PSCommand_Remove-AzAccount PSCommand_Logout-AzAccount PSCommand_Select-AzSubscription PSCommand_Resolve-Error PSCommand_Save-AzProfile PSCommand_Get-AzDomain PSCommand_Invoke-AzRest + + \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/modules/Az.Accounts/2.7.5/Az.Accounts.psd1 b/swaggerci/eventgrid/generated/modules/Az.Accounts/2.7.5/Az.Accounts.psd1 new file mode 100644 index 000000000000..5597a247fce7 --- /dev/null +++ b/swaggerci/eventgrid/generated/modules/Az.Accounts/2.7.5/Az.Accounts.psd1 @@ -0,0 +1,387 @@ +# +# Module manifest for module 'Az.Accounts' +# +# Generated by: Microsoft Corporation +# +# Generated on: 3/31/2022 +# + +@{ + +# Script module or binary module file associated with this manifest. +RootModule = 'Az.Accounts.psm1' + +# Version number of this module. +ModuleVersion = '2.7.5' + +# Supported PSEditions +CompatiblePSEditions = 'Core', 'Desktop' + +# ID used to uniquely identify this module +GUID = '17a2feff-488b-47f9-8729-e2cec094624c' + +# Author of this module +Author = 'Microsoft Corporation' + +# Company or vendor of this module +CompanyName = 'Microsoft Corporation' + +# Copyright statement for this module +Copyright = 'Microsoft Corporation. All rights reserved.' + +# Description of the functionality provided by this module +Description = 'Microsoft Azure PowerShell - Accounts credential management cmdlets for Azure Resource Manager in Windows PowerShell and PowerShell Core. + +For more information on account credential management, please visit the following: https://docs.microsoft.com/powershell/azure/authenticate-azureps' + +# Minimum version of the PowerShell engine required by this module +PowerShellVersion = '5.1' + +# Name of the PowerShell host required by this module +# PowerShellHostName = '' + +# Minimum version of the PowerShell host required by this module +# PowerShellHostVersion = '' + +# Minimum version of Microsoft .NET Framework required by this module. This prerequisite is valid for the PowerShell Desktop edition only. +DotNetFrameworkVersion = '4.7.2' + +# Minimum version of the common language runtime (CLR) required by this module. This prerequisite is valid for the PowerShell Desktop edition only. +# ClrVersion = '' + +# Processor architecture (None, X86, Amd64) required by this module +# ProcessorArchitecture = '' + +# Modules that must be imported into the global environment prior to importing this module +# RequiredModules = @() + +# Assemblies that must be loaded prior to importing this module +RequiredAssemblies = 'Microsoft.Azure.PowerShell.Authentication.Abstractions.dll', + 'Microsoft.Azure.PowerShell.Authentication.dll', + 'Microsoft.Azure.PowerShell.Authenticators.dll', + 'Microsoft.Azure.PowerShell.Authentication.ResourceManager.dll', + 'Microsoft.Azure.PowerShell.Clients.Authorization.dll', + 'Microsoft.Azure.PowerShell.Clients.Compute.dll', + 'Microsoft.Azure.PowerShell.Clients.Graph.Rbac.dll', + 'Microsoft.Azure.PowerShell.Clients.Monitor.dll', + 'Microsoft.Azure.PowerShell.Clients.Network.dll', + 'Microsoft.Azure.PowerShell.Clients.PolicyInsights.dll', + 'Microsoft.Azure.PowerShell.Clients.ResourceManager.dll', + 'Microsoft.Azure.PowerShell.Common.dll', + 'Microsoft.Azure.PowerShell.Storage.dll', + 'Microsoft.Azure.PowerShell.Clients.Storage.Management.dll', + 'Microsoft.Azure.PowerShell.Clients.KeyVault.dll', + 'Microsoft.Azure.PowerShell.Clients.Websites.dll', + 'Hyak.Common.dll', 'Microsoft.ApplicationInsights.dll', + 'Microsoft.Azure.Common.dll', 'Microsoft.Rest.ClientRuntime.dll', + 'Microsoft.Rest.ClientRuntime.Azure.dll', + 'Microsoft.WindowsAzure.Storage.dll', + 'Microsoft.WindowsAzure.Storage.DataMovement.dll', + 'Microsoft.Azure.PowerShell.Clients.Aks.dll', + 'Microsoft.Azure.PowerShell.Strategies.dll', + 'Microsoft.Azure.PowerShell.Common.Share.dll' + +# Script files (.ps1) that are run in the caller's environment prior to importing this module. +# ScriptsToProcess = @() + +# Type files (.ps1xml) to be loaded when importing this module +# TypesToProcess = @() + +# Format files (.ps1xml) to be loaded when importing this module +FormatsToProcess = 'Accounts.format.ps1xml', 'Accounts.generated.format.ps1xml' + +# Modules to import as nested modules of the module specified in RootModule/ModuleToProcess +NestedModules = @() + +# Functions to export from this module, for best performance, do not use wildcards and do not delete the entry, use an empty array if there are no functions to export. +FunctionsToExport = @() + +# Cmdlets to export from this module, for best performance, do not use wildcards and do not delete the entry, use an empty array if there are no cmdlets to export. +CmdletsToExport = 'Disable-AzDataCollection', 'Disable-AzContextAutosave', + 'Enable-AzDataCollection', 'Enable-AzContextAutosave', + 'Remove-AzEnvironment', 'Get-AzEnvironment', 'Set-AzEnvironment', + 'Add-AzEnvironment', 'Get-AzSubscription', 'Connect-AzAccount', + 'Get-AzContext', 'Set-AzContext', 'Import-AzContext', 'Save-AzContext', + 'Get-AzTenant', 'Send-Feedback', 'Resolve-AzError', 'Select-AzContext', + 'Rename-AzContext', 'Remove-AzContext', 'Clear-AzContext', + 'Disconnect-AzAccount', 'Get-AzContextAutosaveSetting', + 'Set-AzDefault', 'Get-AzDefault', 'Clear-AzDefault', + 'Register-AzModule', 'Enable-AzureRmAlias', 'Disable-AzureRmAlias', + 'Uninstall-AzureRm', 'Invoke-AzRestMethod', 'Get-AzAccessToken', + 'Open-AzSurveyLink' + +# Variables to export from this module +# VariablesToExport = @() + +# Aliases to export from this module, for best performance, do not use wildcards and do not delete the entry, use an empty array if there are no aliases to export. +AliasesToExport = 'Add-AzAccount', 'Login-AzAccount', 'Remove-AzAccount', + 'Logout-AzAccount', 'Select-AzSubscription', 'Resolve-Error', + 'Save-AzProfile', 'Get-AzDomain', 'Invoke-AzRest' + +# DSC resources to export from this module +# DscResourcesToExport = @() + +# List of all modules packaged with this module +# ModuleList = @() + +# List of all files packaged with this module +# FileList = @() + +# Private data to pass to the module specified in RootModule/ModuleToProcess. This may also contain a PSData hashtable with additional module metadata used by PowerShell. +PrivateData = @{ + + PSData = @{ + + # Tags applied to this module. These help with module discovery in online galleries. + Tags = 'Azure','ResourceManager','ARM','Accounts','Authentication','Environment','Subscription' + + # A URL to the license for this module. + LicenseUri = 'https://aka.ms/azps-license' + + # A URL to the main website for this project. + ProjectUri = 'https://github.com/Azure/azure-powershell' + + # A URL to an icon representing this module. + # IconUri = '' + + # ReleaseNotes of this module + ReleaseNotes = '* Added ''SshCredentialFactory'' to support get ssh credential of vm from msal. +* Fixed the bug of cmdlet fails when -DefaultProfile is set to service principal login context. [#16617] +* Fixed the issue that authorization does not work in Dogfood environment' + + # Prerelease string of this module + # Prerelease = '' + + # Flag to indicate whether the module requires explicit user acceptance for install/update/save + # RequireLicenseAcceptance = $false + + # External dependent modules of this module + # ExternalModuleDependencies = @() + + } # End of PSData hashtable + + } # End of PrivateData hashtable + +# HelpInfo URI of this module +# HelpInfoURI = '' + +# Default prefix for commands exported from this module. Override the default prefix using Import-Module -Prefix. +# DefaultCommandPrefix = '' + +} + + +# SIG # Begin signature block +# MIInoQYJKoZIhvcNAQcCoIInkjCCJ44CAQExDzANBglghkgBZQMEAgEFADB5Bgor +# BgEEAYI3AgEEoGswaTA0BgorBgEEAYI3AgEeMCYCAwEAAAQQH8w7YFlLCE63JNLG +# KX7zUQIBAAIBAAIBAAIBAAIBADAxMA0GCWCGSAFlAwQCAQUABCBfih7Yjug0H4t7 +# yWl+P37e8ytBZAxLWrUP62/jyADYPKCCDYEwggX/MIID56ADAgECAhMzAAACUosz +# qviV8znbAAAAAAJSMA0GCSqGSIb3DQEBCwUAMH4xCzAJBgNVBAYTAlVTMRMwEQYD +# VQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNy +# b3NvZnQgQ29ycG9yYXRpb24xKDAmBgNVBAMTH01pY3Jvc29mdCBDb2RlIFNpZ25p +# bmcgUENBIDIwMTEwHhcNMjEwOTAyMTgzMjU5WhcNMjIwOTAxMTgzMjU5WjB0MQsw +# CQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9u +# ZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMR4wHAYDVQQDExVNaWNy +# b3NvZnQgQ29ycG9yYXRpb24wggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIB +# AQDQ5M+Ps/X7BNuv5B/0I6uoDwj0NJOo1KrVQqO7ggRXccklyTrWL4xMShjIou2I +# sbYnF67wXzVAq5Om4oe+LfzSDOzjcb6ms00gBo0OQaqwQ1BijyJ7NvDf80I1fW9O +# L76Kt0Wpc2zrGhzcHdb7upPrvxvSNNUvxK3sgw7YTt31410vpEp8yfBEl/hd8ZzA +# v47DCgJ5j1zm295s1RVZHNp6MoiQFVOECm4AwK2l28i+YER1JO4IplTH44uvzX9o +# RnJHaMvWzZEpozPy4jNO2DDqbcNs4zh7AWMhE1PWFVA+CHI/En5nASvCvLmuR/t8 +# q4bc8XR8QIZJQSp+2U6m2ldNAgMBAAGjggF+MIIBejAfBgNVHSUEGDAWBgorBgEE +# AYI3TAgBBggrBgEFBQcDAzAdBgNVHQ4EFgQUNZJaEUGL2Guwt7ZOAu4efEYXedEw +# UAYDVR0RBEkwR6RFMEMxKTAnBgNVBAsTIE1pY3Jvc29mdCBPcGVyYXRpb25zIFB1 +# ZXJ0byBSaWNvMRYwFAYDVQQFEw0yMzAwMTIrNDY3NTk3MB8GA1UdIwQYMBaAFEhu +# ZOVQBdOCqhc3NyK1bajKdQKVMFQGA1UdHwRNMEswSaBHoEWGQ2h0dHA6Ly93d3cu +# bWljcm9zb2Z0LmNvbS9wa2lvcHMvY3JsL01pY0NvZFNpZ1BDQTIwMTFfMjAxMS0w +# Ny0wOC5jcmwwYQYIKwYBBQUHAQEEVTBTMFEGCCsGAQUFBzAChkVodHRwOi8vd3d3 +# Lm1pY3Jvc29mdC5jb20vcGtpb3BzL2NlcnRzL01pY0NvZFNpZ1BDQTIwMTFfMjAx +# MS0wNy0wOC5jcnQwDAYDVR0TAQH/BAIwADANBgkqhkiG9w0BAQsFAAOCAgEAFkk3 +# uSxkTEBh1NtAl7BivIEsAWdgX1qZ+EdZMYbQKasY6IhSLXRMxF1B3OKdR9K/kccp +# kvNcGl8D7YyYS4mhCUMBR+VLrg3f8PUj38A9V5aiY2/Jok7WZFOAmjPRNNGnyeg7 +# l0lTiThFqE+2aOs6+heegqAdelGgNJKRHLWRuhGKuLIw5lkgx9Ky+QvZrn/Ddi8u +# TIgWKp+MGG8xY6PBvvjgt9jQShlnPrZ3UY8Bvwy6rynhXBaV0V0TTL0gEx7eh/K1 +# o8Miaru6s/7FyqOLeUS4vTHh9TgBL5DtxCYurXbSBVtL1Fj44+Od/6cmC9mmvrti +# yG709Y3Rd3YdJj2f3GJq7Y7KdWq0QYhatKhBeg4fxjhg0yut2g6aM1mxjNPrE48z +# 6HWCNGu9gMK5ZudldRw4a45Z06Aoktof0CqOyTErvq0YjoE4Xpa0+87T/PVUXNqf +# 7Y+qSU7+9LtLQuMYR4w3cSPjuNusvLf9gBnch5RqM7kaDtYWDgLyB42EfsxeMqwK +# WwA+TVi0HrWRqfSx2olbE56hJcEkMjOSKz3sRuupFCX3UroyYf52L+2iVTrda8XW +# esPG62Mnn3T8AuLfzeJFuAbfOSERx7IFZO92UPoXE1uEjL5skl1yTZB3MubgOA4F +# 8KoRNhviFAEST+nG8c8uIsbZeb08SeYQMqjVEmkwggd6MIIFYqADAgECAgphDpDS +# AAAAAAADMA0GCSqGSIb3DQEBCwUAMIGIMQswCQYDVQQGEwJVUzETMBEGA1UECBMK +# V2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0 +# IENvcnBvcmF0aW9uMTIwMAYDVQQDEylNaWNyb3NvZnQgUm9vdCBDZXJ0aWZpY2F0 +# ZSBBdXRob3JpdHkgMjAxMTAeFw0xMTA3MDgyMDU5MDlaFw0yNjA3MDgyMTA5MDla +# MH4xCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdS +# ZWRtb25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRpb24xKDAmBgNVBAMT +# H01pY3Jvc29mdCBDb2RlIFNpZ25pbmcgUENBIDIwMTEwggIiMA0GCSqGSIb3DQEB +# AQUAA4ICDwAwggIKAoICAQCr8PpyEBwurdhuqoIQTTS68rZYIZ9CGypr6VpQqrgG +# OBoESbp/wwwe3TdrxhLYC/A4wpkGsMg51QEUMULTiQ15ZId+lGAkbK+eSZzpaF7S +# 35tTsgosw6/ZqSuuegmv15ZZymAaBelmdugyUiYSL+erCFDPs0S3XdjELgN1q2jz +# y23zOlyhFvRGuuA4ZKxuZDV4pqBjDy3TQJP4494HDdVceaVJKecNvqATd76UPe/7 +# 4ytaEB9NViiienLgEjq3SV7Y7e1DkYPZe7J7hhvZPrGMXeiJT4Qa8qEvWeSQOy2u +# M1jFtz7+MtOzAz2xsq+SOH7SnYAs9U5WkSE1JcM5bmR/U7qcD60ZI4TL9LoDho33 +# X/DQUr+MlIe8wCF0JV8YKLbMJyg4JZg5SjbPfLGSrhwjp6lm7GEfauEoSZ1fiOIl +# XdMhSz5SxLVXPyQD8NF6Wy/VI+NwXQ9RRnez+ADhvKwCgl/bwBWzvRvUVUvnOaEP +# 6SNJvBi4RHxF5MHDcnrgcuck379GmcXvwhxX24ON7E1JMKerjt/sW5+v/N2wZuLB +# l4F77dbtS+dJKacTKKanfWeA5opieF+yL4TXV5xcv3coKPHtbcMojyyPQDdPweGF +# RInECUzF1KVDL3SV9274eCBYLBNdYJWaPk8zhNqwiBfenk70lrC8RqBsmNLg1oiM +# CwIDAQABo4IB7TCCAekwEAYJKwYBBAGCNxUBBAMCAQAwHQYDVR0OBBYEFEhuZOVQ +# BdOCqhc3NyK1bajKdQKVMBkGCSsGAQQBgjcUAgQMHgoAUwB1AGIAQwBBMAsGA1Ud +# DwQEAwIBhjAPBgNVHRMBAf8EBTADAQH/MB8GA1UdIwQYMBaAFHItOgIxkEO5FAVO +# 4eqnxzHRI4k0MFoGA1UdHwRTMFEwT6BNoEuGSWh0dHA6Ly9jcmwubWljcm9zb2Z0 +# LmNvbS9wa2kvY3JsL3Byb2R1Y3RzL01pY1Jvb0NlckF1dDIwMTFfMjAxMV8wM18y +# Mi5jcmwwXgYIKwYBBQUHAQEEUjBQME4GCCsGAQUFBzAChkJodHRwOi8vd3d3Lm1p +# Y3Jvc29mdC5jb20vcGtpL2NlcnRzL01pY1Jvb0NlckF1dDIwMTFfMjAxMV8wM18y +# Mi5jcnQwgZ8GA1UdIASBlzCBlDCBkQYJKwYBBAGCNy4DMIGDMD8GCCsGAQUFBwIB +# FjNodHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20vcGtpb3BzL2RvY3MvcHJpbWFyeWNw +# cy5odG0wQAYIKwYBBQUHAgIwNB4yIB0ATABlAGcAYQBsAF8AcABvAGwAaQBjAHkA +# XwBzAHQAYQB0AGUAbQBlAG4AdAAuIB0wDQYJKoZIhvcNAQELBQADggIBAGfyhqWY +# 4FR5Gi7T2HRnIpsLlhHhY5KZQpZ90nkMkMFlXy4sPvjDctFtg/6+P+gKyju/R6mj +# 82nbY78iNaWXXWWEkH2LRlBV2AySfNIaSxzzPEKLUtCw/WvjPgcuKZvmPRul1LUd +# d5Q54ulkyUQ9eHoj8xN9ppB0g430yyYCRirCihC7pKkFDJvtaPpoLpWgKj8qa1hJ +# Yx8JaW5amJbkg/TAj/NGK978O9C9Ne9uJa7lryft0N3zDq+ZKJeYTQ49C/IIidYf +# wzIY4vDFLc5bnrRJOQrGCsLGra7lstnbFYhRRVg4MnEnGn+x9Cf43iw6IGmYslmJ +# aG5vp7d0w0AFBqYBKig+gj8TTWYLwLNN9eGPfxxvFX1Fp3blQCplo8NdUmKGwx1j +# NpeG39rz+PIWoZon4c2ll9DuXWNB41sHnIc+BncG0QaxdR8UvmFhtfDcxhsEvt9B +# xw4o7t5lL+yX9qFcltgA1qFGvVnzl6UJS0gQmYAf0AApxbGbpT9Fdx41xtKiop96 +# eiL6SJUfq/tHI4D1nvi/a7dLl+LrdXga7Oo3mXkYS//WsyNodeav+vyL6wuA6mk7 +# r/ww7QRMjt/fdW1jkT3RnVZOT7+AVyKheBEyIXrvQQqxP/uozKRdwaGIm1dxVk5I +# RcBCyZt2WwqASGv9eZ/BvW1taslScxMNelDNMYIZdjCCGXICAQEwgZUwfjELMAkG +# A1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcTB1JlZG1vbmQx +# HjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjEoMCYGA1UEAxMfTWljcm9z +# b2Z0IENvZGUgU2lnbmluZyBQQ0EgMjAxMQITMwAAAlKLM6r4lfM52wAAAAACUjAN +# BglghkgBZQMEAgEFAKCBrjAZBgkqhkiG9w0BCQMxDAYKKwYBBAGCNwIBBDAcBgor +# BgEEAYI3AgELMQ4wDAYKKwYBBAGCNwIBFTAvBgkqhkiG9w0BCQQxIgQgXA6GKgxI +# VhLOuEe05JK0ofRRaS3Iixk8S4yAEDyheGcwQgYKKwYBBAGCNwIBDDE0MDKgFIAS +# AE0AaQBjAHIAbwBzAG8AZgB0oRqAGGh0dHA6Ly93d3cubWljcm9zb2Z0LmNvbTAN +# BgkqhkiG9w0BAQEFAASCAQCk7+MONSYp7vxlpfSvtfVGPGdZ5LuxWlb4eimh/TgO +# qAAMDghpYUB8mFe46dAf/OoVHrcxhCfAof+aWlMkEqZTwIZ6p0XsXZ72jDLDFLgf +# WJNQ605jndPQx7/b3tDvqqI1sCHz4CvYnqiQn4/JpHjiE4321HRDFjhWv1lhTpMx +# Xaifyrvwc1OwLcSqMrEPSShevbYOH54J0MG+qI+t+AQ9D/WQdL/5HBJZ8PDZ2n9b +# I4FxGwm0aeTSnAiV602r8db+jebwv/5ypKfkok4IzN9qdQY1y3jXdP9MfEK2nCod +# Mbuby8eakQsarqZJovnvBOsZANYE8UafuSbYMQtJaEtnoYIXADCCFvwGCisGAQQB +# gjcDAwExghbsMIIW6AYJKoZIhvcNAQcCoIIW2TCCFtUCAQMxDzANBglghkgBZQME +# AgEFADCCAVEGCyqGSIb3DQEJEAEEoIIBQASCATwwggE4AgEBBgorBgEEAYRZCgMB +# MDEwDQYJYIZIAWUDBAIBBQAEIPieBDiQ8jeOJOjc2VK1Wl36ph7izu7GPD9rSN/j +# BxeOAgZiFm2JbrQYEzIwMjIwMzMxMTAyMDU2LjYzNlowBIACAfSggdCkgc0wgcox +# CzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRt +# b25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRpb24xJTAjBgNVBAsTHE1p +# Y3Jvc29mdCBBbWVyaWNhIE9wZXJhdGlvbnMxJjAkBgNVBAsTHVRoYWxlcyBUU1Mg +# RVNOOjEyQkMtRTNBRS03NEVCMSUwIwYDVQQDExxNaWNyb3NvZnQgVGltZS1TdGFt +# cCBTZXJ2aWNloIIRVzCCBwwwggT0oAMCAQICEzMAAAGhAYVVmblUXYoAAQAAAaEw +# DQYJKoZIhvcNAQELBQAwfDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0 +# b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3Jh +# dGlvbjEmMCQGA1UEAxMdTWljcm9zb2Z0IFRpbWUtU3RhbXAgUENBIDIwMTAwHhcN +# MjExMjAyMTkwNTI0WhcNMjMwMjI4MTkwNTI0WjCByjELMAkGA1UEBhMCVVMxEzAR +# BgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNVBAoTFU1p +# Y3Jvc29mdCBDb3Jwb3JhdGlvbjElMCMGA1UECxMcTWljcm9zb2Z0IEFtZXJpY2Eg +# T3BlcmF0aW9uczEmMCQGA1UECxMdVGhhbGVzIFRTUyBFU046MTJCQy1FM0FFLTc0 +# RUIxJTAjBgNVBAMTHE1pY3Jvc29mdCBUaW1lLVN0YW1wIFNlcnZpY2UwggIiMA0G +# CSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQDayTxe5WukkrYxxVuHLYW9BEWCD9kk +# jnnHsOKwGddIPbZlLY+l5ovLDNf+BEMQKAZQI3DX91l1yCDuP9X7tOPC48ZRGXA/ +# bf9ql0FK5438gIl7cV528XeEOFwc/A+UbIUfW296Omg8Z62xaQv3jrG4U/priArF +# /er1UA1HNuIGUyqjlygiSPwK2NnFApi1JD+Uef5c47kh7pW1Kj7RnchpFeY9MekP +# QRia7cEaUYU4sqCiJVdDJpefLvPT9EdthlQx75ldx+AwZf2a9T7uQRSBh8tpxPdI +# DDkKiWMwjKTrAY09A3I/jidqPuc8PvX+sqxqyZEN2h4GA0Edjmk64nkIukAK18K5 +# nALDLO9SMTxpAwQIHRDtZeTClvAPCEoy1vtPD7f+eqHqStuu+XCkfRjXEpX9+h9f +# rsB0/BgD5CBf3ELLAa8TefMfHZWEJRTPNrbXMKizSrUSkVv/3HP/ZsJpwaz5My2R +# byc3Ah9bT76eBJkyfT5FN9v/KQ0HnxhRMs6HHhTmNx+LztYci+vHf0D3QH1eCjZW +# ZRjp1mOyxpPU2mDMG6gelvJse1JzRADo7YIok/J3Ccbm8MbBbm85iogFltFHecHF +# EFwrsDGBFnNYHMhcbarQNA+gY2e2l9fAkX3MjI7Uklkoz74/P6KIqe5jcd9FPCbb +# SbYH9OLsteeYOQIDAQABo4IBNjCCATIwHQYDVR0OBBYEFBa/IDLbY475VQyKiZSw +# 47l0/cypMB8GA1UdIwQYMBaAFJ+nFV0AXmJdg/Tl0mWnG1M1GelyMF8GA1UdHwRY +# MFYwVKBSoFCGTmh0dHA6Ly93d3cubWljcm9zb2Z0LmNvbS9wa2lvcHMvY3JsL01p +# Y3Jvc29mdCUyMFRpbWUtU3RhbXAlMjBQQ0ElMjAyMDEwKDEpLmNybDBsBggrBgEF +# BQcBAQRgMF4wXAYIKwYBBQUHMAKGUGh0dHA6Ly93d3cubWljcm9zb2Z0LmNvbS9w +# a2lvcHMvY2VydHMvTWljcm9zb2Z0JTIwVGltZS1TdGFtcCUyMFBDQSUyMDIwMTAo +# MSkuY3J0MAwGA1UdEwEB/wQCMAAwEwYDVR0lBAwwCgYIKwYBBQUHAwgwDQYJKoZI +# hvcNAQELBQADggIBACDDIxElfXlG5YKcKrLPSS+f3JWZprwKEiASvivaHTBRlXtA +# s+TkadcsEei+9w5vmF5tCUzTH4c0nCI7bZxnsL+S6XsiOs3Z1V4WX+IwoXUJ4zLv +# s0+mT4vjGDtYfKQ/bsmJKar2c99m/fHv1Wm2CTcyaePvi86Jh3UyLjdRILWbtzs4 +# oImFMwwKbzHdPopxrBhgi+C1YZshosWLlgzyuxjUl+qNg1m52MJmf11loI7D9HJo +# aQzd+rf928Y8rvULmg2h/G50o+D0UJ1Fa/cJJaHfB3sfKw9X6GrtXYGjmM3+g+Ah +# aVsfupKXNtOFu5tnLKvAH5OIjEDYV1YKmlXuBuhbYassygPFMmNgG2Ank3drEcDc +# ZhCXXqpRszNo1F6Gu5JCpQZXbOJM9Ue5PlJKtmImAYIGsw+pnHy/r5ggSYOp4g5Z +# 1oU9GhVCM3V0T9adee6OUXBk1rE4dZc/UsPlj0qoiljL+lN1A5gkmmz7k5tIObVG +# B7dJdz8J0FwXRE5qYu1AdvauVbZwGQkL1x8aK/svjEQW0NUyJ29znDHiXl5vLoRT +# jjFpshUBi2+IY+mNqbLmj24j5eT+bjDlE3HmNtLPpLcMDYqZ1H+6U6YmaiNmac2j +# RXDAaeEE/uoDMt2dArfJP7M+MDv3zzNNTINeuNEtDVgm9zwfgIUCXnDZuVtiMIIH +# cTCCBVmgAwIBAgITMwAAABXF52ueAptJmQAAAAAAFTANBgkqhkiG9w0BAQsFADCB +# iDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcTB1Jl +# ZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjEyMDAGA1UEAxMp +# TWljcm9zb2Z0IFJvb3QgQ2VydGlmaWNhdGUgQXV0aG9yaXR5IDIwMTAwHhcNMjEw +# OTMwMTgyMjI1WhcNMzAwOTMwMTgzMjI1WjB8MQswCQYDVQQGEwJVUzETMBEGA1UE +# CBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwGA1UEChMVTWljcm9z +# b2Z0IENvcnBvcmF0aW9uMSYwJAYDVQQDEx1NaWNyb3NvZnQgVGltZS1TdGFtcCBQ +# Q0EgMjAxMDCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAOThpkzntHIh +# C3miy9ckeb0O1YLT/e6cBwfSqWxOdcjKNVf2AX9sSuDivbk+F2Az/1xPx2b3lVNx +# WuJ+Slr+uDZnhUYjDLWNE893MsAQGOhgfWpSg0S3po5GawcU88V29YZQ3MFEyHFc +# UTE3oAo4bo3t1w/YJlN8OWECesSq/XJprx2rrPY2vjUmZNqYO7oaezOtgFt+jBAc +# nVL+tuhiJdxqD89d9P6OU8/W7IVWTe/dvI2k45GPsjksUZzpcGkNyjYtcI4xyDUo +# veO0hyTD4MmPfrVUj9z6BVWYbWg7mka97aSueik3rMvrg0XnRm7KMtXAhjBcTyzi +# YrLNueKNiOSWrAFKu75xqRdbZ2De+JKRHh09/SDPc31BmkZ1zcRfNN0Sidb9pSB9 +# fvzZnkXftnIv231fgLrbqn427DZM9ituqBJR6L8FA6PRc6ZNN3SUHDSCD/AQ8rdH +# GO2n6Jl8P0zbr17C89XYcz1DTsEzOUyOArxCaC4Q6oRRRuLRvWoYWmEBc8pnol7X +# KHYC4jMYctenIPDC+hIK12NvDMk2ZItboKaDIV1fMHSRlJTYuVD5C4lh8zYGNRiE +# R9vcG9H9stQcxWv2XFJRXRLbJbqvUAV6bMURHXLvjflSxIUXk8A8FdsaN8cIFRg/ +# eKtFtvUeh17aj54WcmnGrnu3tz5q4i6tAgMBAAGjggHdMIIB2TASBgkrBgEEAYI3 +# FQEEBQIDAQABMCMGCSsGAQQBgjcVAgQWBBQqp1L+ZMSavoKRPEY1Kc8Q/y8E7jAd +# BgNVHQ4EFgQUn6cVXQBeYl2D9OXSZacbUzUZ6XIwXAYDVR0gBFUwUzBRBgwrBgEE +# AYI3TIN9AQEwQTA/BggrBgEFBQcCARYzaHR0cDovL3d3dy5taWNyb3NvZnQuY29t +# L3BraW9wcy9Eb2NzL1JlcG9zaXRvcnkuaHRtMBMGA1UdJQQMMAoGCCsGAQUFBwMI +# MBkGCSsGAQQBgjcUAgQMHgoAUwB1AGIAQwBBMAsGA1UdDwQEAwIBhjAPBgNVHRMB +# Af8EBTADAQH/MB8GA1UdIwQYMBaAFNX2VsuP6KJcYmjRPZSQW9fOmhjEMFYGA1Ud +# HwRPME0wS6BJoEeGRWh0dHA6Ly9jcmwubWljcm9zb2Z0LmNvbS9wa2kvY3JsL3By +# b2R1Y3RzL01pY1Jvb0NlckF1dF8yMDEwLTA2LTIzLmNybDBaBggrBgEFBQcBAQRO +# MEwwSgYIKwYBBQUHMAKGPmh0dHA6Ly93d3cubWljcm9zb2Z0LmNvbS9wa2kvY2Vy +# dHMvTWljUm9vQ2VyQXV0XzIwMTAtMDYtMjMuY3J0MA0GCSqGSIb3DQEBCwUAA4IC +# AQCdVX38Kq3hLB9nATEkW+Geckv8qW/qXBS2Pk5HZHixBpOXPTEztTnXwnE2P9pk +# bHzQdTltuw8x5MKP+2zRoZQYIu7pZmc6U03dmLq2HnjYNi6cqYJWAAOwBb6J6Gng +# ugnue99qb74py27YP0h1AdkY3m2CDPVtI1TkeFN1JFe53Z/zjj3G82jfZfakVqr3 +# lbYoVSfQJL1AoL8ZthISEV09J+BAljis9/kpicO8F7BUhUKz/AyeixmJ5/ALaoHC +# gRlCGVJ1ijbCHcNhcy4sa3tuPywJeBTpkbKpW99Jo3QMvOyRgNI95ko+ZjtPu4b6 +# MhrZlvSP9pEB9s7GdP32THJvEKt1MMU0sHrYUP4KWN1APMdUbZ1jdEgssU5HLcEU +# BHG/ZPkkvnNtyo4JvbMBV0lUZNlz138eW0QBjloZkWsNn6Qo3GcZKCS6OEuabvsh +# VGtqRRFHqfG3rsjoiV5PndLQTHa1V1QJsWkBRH58oWFsc/4Ku+xBZj1p/cvBQUl+ +# fpO+y/g75LcVv7TOPqUxUYS8vwLBgqJ7Fx0ViY1w/ue10CgaiQuPNtq6TPmb/wrp +# NPgkNWcr4A245oyZ1uEi6vAnQj0llOZ0dFtq0Z4+7X6gMTN9vMvpe784cETRkPHI +# qzqKOghif9lwY1NNje6CbaUFEMFxBmoQtB1VM1izoXBm8qGCAs4wggI3AgEBMIH4 +# oYHQpIHNMIHKMQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4G +# A1UEBxMHUmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSUw +# IwYDVQQLExxNaWNyb3NvZnQgQW1lcmljYSBPcGVyYXRpb25zMSYwJAYDVQQLEx1U +# aGFsZXMgVFNTIEVTTjoxMkJDLUUzQUUtNzRFQjElMCMGA1UEAxMcTWljcm9zb2Z0 +# IFRpbWUtU3RhbXAgU2VydmljZaIjCgEBMAcGBSsOAwIaAxUAG3F2jO4LEMVLwgKG +# XdYMN4FBgOCggYMwgYCkfjB8MQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGlu +# Z3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBv +# cmF0aW9uMSYwJAYDVQQDEx1NaWNyb3NvZnQgVGltZS1TdGFtcCBQQ0EgMjAxMDAN +# BgkqhkiG9w0BAQUFAAIFAOXvuD8wIhgPMjAyMjAzMzExMzE4NTVaGA8yMDIyMDQw +# MTEzMTg1NVowdzA9BgorBgEEAYRZCgQBMS8wLTAKAgUA5e+4PwIBADAKAgEAAgIP +# IwIB/zAHAgEAAgIRnzAKAgUA5fEJvwIBADA2BgorBgEEAYRZCgQCMSgwJjAMBgor +# BgEEAYRZCgMCoAowCAIBAAIDB6EgoQowCAIBAAIDAYagMA0GCSqGSIb3DQEBBQUA +# A4GBANc53MLryLt1FD+jkakQydkemUps4QiN8HJxJ36VPuc2XRhvcn0Fhp1Pi8Hk +# gg08sFJoJ2vT/9g5J39zdjQpnbNGMkfmEi+qT6hbGq0ta5rnt1wDG2pVMuMn7N2Q +# 8CytKi6ZynWVbiCNuQtxsuwdgM7bRwcf510Wwp7iQUeNjJZzMYIEDTCCBAkCAQEw +# gZMwfDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcT +# B1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjEmMCQGA1UE +# AxMdTWljcm9zb2Z0IFRpbWUtU3RhbXAgUENBIDIwMTACEzMAAAGhAYVVmblUXYoA +# AQAAAaEwDQYJYIZIAWUDBAIBBQCgggFKMBoGCSqGSIb3DQEJAzENBgsqhkiG9w0B +# CRABBDAvBgkqhkiG9w0BCQQxIgQg7aLPwq2FhUC9oleuUeRc4uk9d+4UFLvls0ps +# 5tQU14wwgfoGCyqGSIb3DQEJEAIvMYHqMIHnMIHkMIG9BCDrCFTxOoGCaCCCjoRy +# Be1JSQrMJeCCTyErziiJ347QhDCBmDCBgKR+MHwxCzAJBgNVBAYTAlVTMRMwEQYD +# VQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNy +# b3NvZnQgQ29ycG9yYXRpb24xJjAkBgNVBAMTHU1pY3Jvc29mdCBUaW1lLVN0YW1w +# IFBDQSAyMDEwAhMzAAABoQGFVZm5VF2KAAEAAAGhMCIEIOKn52EgS+EFhqx/FxY8 +# xYD6qqUYqtVZ3iZ47g3sjJRaMA0GCSqGSIb3DQEBCwUABIICACJi4QGIi9yhn8uf +# NlWbdGQNP0UkTWxJRMnAe4eQUYbcHoOxPxguwy7r8VfTZOdKBxfy7/LKo5XGmAo2 +# hmZSsLHjtT0zzkZti2AFeCRmZ8DMVaGfR9sWBr0OwlRS3HMDigpWyI5jP/tD529k +# jh0/BYwKg2TGRk6ZmdFWXuQf0lVb/LytEUyFbziq4hoxhKc4IQ3oCcOm1xaVZzbe +# SgzPg3j4QfHAucYgfxJoIUP1lKTRclmUc2ERYmHchaUxeYIdiDHx5lpEdNsh0acm +# LgV307ncxLeN1Ih2E6By+Dknm8OppqVYOSvcjcjqHY+fU7ci/FuvyUVDQv6xe2ZS +# K6qCMCrPWtoOlE3ms+LE5kHVQ1JOs0v7mVVP8xfO+fkArk3RuUl/1gaGxi5Ljheg +# l+51jV5PMM4Vha9KoWfU2306ZLt/I1Rftq1sCOD5ysLnhTQuInQMRpfXlY/rvTPu +# 9jzQ4q4Ty7WPp004gh+9hLIm0s0nmZmM8jyTRUFrK1SfHglBOKgdrcuJfmEuPKxL +# foRg/LzuUjcXvdtO3oozIaVWsTxGx6laY2DkMPnqYaj/oBwla86bNyQT94YTTGWq +# 3mCwt0/H4E3Mn1OXLVIGO3NrzZwTFFN2uqRmcTQ0AKiXU3ar4b8F/ykpQOvTV6x/ +# U7Jz/JaISbEvO3mUarzheUPqVmWq +# SIG # End signature block diff --git a/swaggerci/eventgrid/generated/modules/Az.Accounts/2.7.5/Az.Accounts.psm1 b/swaggerci/eventgrid/generated/modules/Az.Accounts/2.7.5/Az.Accounts.psm1 new file mode 100644 index 000000000000..67107181add7 --- /dev/null +++ b/swaggerci/eventgrid/generated/modules/Az.Accounts/2.7.5/Az.Accounts.psm1 @@ -0,0 +1,375 @@ +# +# Script module for module 'Az.Accounts' that is executed when 'Az.Accounts' is imported in a PowerShell session. +# +# Generated by: Microsoft Corporation +# +# Generated on: 03/31/2022 09:26:49 +# + +$PSDefaultParameterValues.Clear() +Set-StrictMode -Version Latest + +function Test-DotNet +{ + try + { + if ((Get-PSDrive 'HKLM' -ErrorAction Ignore) -and (-not (Get-ChildItem 'HKLM:\SOFTWARE\Microsoft\NET Framework Setup\NDP\v4\Full\' -ErrorAction Stop | Get-ItemPropertyValue -ErrorAction Stop -Name Release | Where-Object { $_ -ge 461808 }))) + { + throw ".NET Framework versions lower than 4.7.2 are not supported in Az. Please upgrade to .NET Framework 4.7.2 or higher." + } + } + catch [System.Management.Automation.DriveNotFoundException] + { + Write-Verbose ".NET Framework version check failed." + } +} + +function Preload-Assembly { + param ( + [string] + $AssemblyDirectory + ) + if($PSEdition -eq 'Desktop' -and (Test-Path $AssemblyDirectory -ErrorAction Ignore)) + { + try + { + Get-ChildItem -ErrorAction Stop -Path $AssemblyDirectory -Filter "*.dll" | ForEach-Object { + try + { + Add-Type -Path $_.FullName -ErrorAction Ignore | Out-Null + } + catch { + Write-Verbose $_ + } + } + } + catch {} + } +} + +if ($true -and ($PSEdition -eq 'Desktop')) +{ + if ($PSVersionTable.PSVersion -lt [Version]'5.1') + { + throw "PowerShell versions lower than 5.1 are not supported in Az. Please upgrade to PowerShell 5.1 or higher." + } + + Test-DotNet +} + +if ($true -and ($PSEdition -eq 'Core')) +{ + if ($PSVersionTable.PSVersion -lt [Version]'6.2.4') + { + throw "Current Az version doesn't support PowerShell Core versions lower than 6.2.4. Please upgrade to PowerShell Core 6.2.4 or higher." + } + if ($PSVersionTable.PSVersion -lt [Version]'7.0.6') + { + Write-Warning "This version of Az.Accounts is only supported on Windows PowerShell 5.1 and PowerShell 7.0.6 or greater, open https://aka.ms/install-powershell to learn how to upgrade. For further information, go to https://aka.ms/azpslifecycle." + } +} + +if (Test-Path -Path "$PSScriptRoot\StartupScripts" -ErrorAction Ignore) +{ + Get-ChildItem "$PSScriptRoot\StartupScripts" -ErrorAction Stop | ForEach-Object { + . $_.FullName + } +} + +if (Get-Module AzureRM.profile -ErrorAction Ignore) +{ + Write-Warning ("AzureRM.Profile already loaded. Az and AzureRM modules cannot be imported in the same session or used in the same script or runbook. If you are running PowerShell in an environment you control you can use the 'Uninstall-AzureRm' cmdlet to remove all AzureRm modules from your machine. " + + "If you are running in Azure Automation, take care that none of your runbooks import both Az and AzureRM modules. More information can be found here: https://aka.ms/azps-migration-guide.") + throw ("AzureRM.Profile already loaded. Az and AzureRM modules cannot be imported in the same session or used in the same script or runbook. If you are running PowerShell in an environment you control you can use the 'Uninstall-AzureRm' cmdlet to remove all AzureRm modules from your machine. " + + "If you are running in Azure Automation, take care that none of your runbooks import both Az and AzureRM modules. More information can be found here: https://aka.ms/azps-migration-guide.") +} + +$preloadPath = (Join-Path $PSScriptRoot -ChildPath "PreloadAssemblies") +Preload-Assembly -AssemblyDirectory $preloadPath +$preloadPath = (Join-Path $PSScriptRoot -ChildPath "ModuleAlcAssemblies") +Preload-Assembly -AssemblyDirectory $preloadPath + +$netCorePath = (Join-Path $PSScriptRoot -ChildPath "NetCoreAssemblies") +if($PSEdition -eq 'Core' -and (Test-Path $netCorePath -ErrorAction Ignore)) +{ + try + { + $loadedAssemblies = ([System.AppDomain]::CurrentDomain.GetAssemblies() | ForEach-Object {New-Object -TypeName System.Reflection.AssemblyName -ArgumentList $_.FullName} ) + Get-ChildItem -ErrorAction Stop -Path $netCorePath -Filter "*.dll" | ForEach-Object { + $assemblyName = ([System.Reflection.AssemblyName]::GetAssemblyName($_.FullName)) + $matches = ($loadedAssemblies | Where-Object {$_.Name -eq $assemblyName.Name}) + if (-not $matches) + { + try + { + Add-Type -Path $_.FullName -ErrorAction Ignore | Out-Null + } + catch { + Write-Verbose $_ + } + } + } + } + catch {} +} + + +Import-Module (Join-Path -Path $PSScriptRoot -ChildPath Microsoft.Azure.PowerShell.Cmdlets.Accounts.dll) + + +if (Test-Path -Path "$PSScriptRoot\PostImportScripts" -ErrorAction Ignore) +{ + Get-ChildItem "$PSScriptRoot\PostImportScripts" -ErrorAction Stop | ForEach-Object { + . $_.FullName + } +} + +$FilteredCommands = @() + +if ($Env:ACC_CLOUD -eq $null) +{ + $FilteredCommands | ForEach-Object { + + $existingDefault = $false + foreach ($key in $global:PSDefaultParameterValues.Keys) + { + if ($_ -like "$key") + { + $existingDefault = $true + } + } + + if (!$existingDefault) + { + $global:PSDefaultParameterValues.Add($_, + { + if ((Get-Command Get-AzContext -ErrorAction Ignore) -eq $null) + { + $context = Get-AzureRmContext + } + else + { + $context = Get-AzContext + } + if (($context -ne $null) -and $context.ExtendedProperties.ContainsKey("Default Resource Group")) { + $context.ExtendedProperties["Default Resource Group"] + } + }) + } + } +} + +# SIG # Begin signature block +# MIInugYJKoZIhvcNAQcCoIInqzCCJ6cCAQExDzANBglghkgBZQMEAgEFADB5Bgor +# BgEEAYI3AgEEoGswaTA0BgorBgEEAYI3AgEeMCYCAwEAAAQQH8w7YFlLCE63JNLG +# KX7zUQIBAAIBAAIBAAIBAAIBADAxMA0GCWCGSAFlAwQCAQUABCBnXoRblwqGgp4a +# USzJaf5Wf+Tu+eUWmfecChJ7ENNasaCCDYEwggX/MIID56ADAgECAhMzAAACUosz +# qviV8znbAAAAAAJSMA0GCSqGSIb3DQEBCwUAMH4xCzAJBgNVBAYTAlVTMRMwEQYD +# VQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNy +# b3NvZnQgQ29ycG9yYXRpb24xKDAmBgNVBAMTH01pY3Jvc29mdCBDb2RlIFNpZ25p +# bmcgUENBIDIwMTEwHhcNMjEwOTAyMTgzMjU5WhcNMjIwOTAxMTgzMjU5WjB0MQsw +# CQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9u +# ZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMR4wHAYDVQQDExVNaWNy +# b3NvZnQgQ29ycG9yYXRpb24wggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIB +# AQDQ5M+Ps/X7BNuv5B/0I6uoDwj0NJOo1KrVQqO7ggRXccklyTrWL4xMShjIou2I +# sbYnF67wXzVAq5Om4oe+LfzSDOzjcb6ms00gBo0OQaqwQ1BijyJ7NvDf80I1fW9O +# L76Kt0Wpc2zrGhzcHdb7upPrvxvSNNUvxK3sgw7YTt31410vpEp8yfBEl/hd8ZzA +# v47DCgJ5j1zm295s1RVZHNp6MoiQFVOECm4AwK2l28i+YER1JO4IplTH44uvzX9o +# RnJHaMvWzZEpozPy4jNO2DDqbcNs4zh7AWMhE1PWFVA+CHI/En5nASvCvLmuR/t8 +# q4bc8XR8QIZJQSp+2U6m2ldNAgMBAAGjggF+MIIBejAfBgNVHSUEGDAWBgorBgEE +# AYI3TAgBBggrBgEFBQcDAzAdBgNVHQ4EFgQUNZJaEUGL2Guwt7ZOAu4efEYXedEw +# UAYDVR0RBEkwR6RFMEMxKTAnBgNVBAsTIE1pY3Jvc29mdCBPcGVyYXRpb25zIFB1 +# ZXJ0byBSaWNvMRYwFAYDVQQFEw0yMzAwMTIrNDY3NTk3MB8GA1UdIwQYMBaAFEhu +# ZOVQBdOCqhc3NyK1bajKdQKVMFQGA1UdHwRNMEswSaBHoEWGQ2h0dHA6Ly93d3cu +# bWljcm9zb2Z0LmNvbS9wa2lvcHMvY3JsL01pY0NvZFNpZ1BDQTIwMTFfMjAxMS0w +# Ny0wOC5jcmwwYQYIKwYBBQUHAQEEVTBTMFEGCCsGAQUFBzAChkVodHRwOi8vd3d3 +# Lm1pY3Jvc29mdC5jb20vcGtpb3BzL2NlcnRzL01pY0NvZFNpZ1BDQTIwMTFfMjAx +# MS0wNy0wOC5jcnQwDAYDVR0TAQH/BAIwADANBgkqhkiG9w0BAQsFAAOCAgEAFkk3 +# uSxkTEBh1NtAl7BivIEsAWdgX1qZ+EdZMYbQKasY6IhSLXRMxF1B3OKdR9K/kccp +# kvNcGl8D7YyYS4mhCUMBR+VLrg3f8PUj38A9V5aiY2/Jok7WZFOAmjPRNNGnyeg7 +# l0lTiThFqE+2aOs6+heegqAdelGgNJKRHLWRuhGKuLIw5lkgx9Ky+QvZrn/Ddi8u +# TIgWKp+MGG8xY6PBvvjgt9jQShlnPrZ3UY8Bvwy6rynhXBaV0V0TTL0gEx7eh/K1 +# o8Miaru6s/7FyqOLeUS4vTHh9TgBL5DtxCYurXbSBVtL1Fj44+Od/6cmC9mmvrti +# yG709Y3Rd3YdJj2f3GJq7Y7KdWq0QYhatKhBeg4fxjhg0yut2g6aM1mxjNPrE48z +# 6HWCNGu9gMK5ZudldRw4a45Z06Aoktof0CqOyTErvq0YjoE4Xpa0+87T/PVUXNqf +# 7Y+qSU7+9LtLQuMYR4w3cSPjuNusvLf9gBnch5RqM7kaDtYWDgLyB42EfsxeMqwK +# WwA+TVi0HrWRqfSx2olbE56hJcEkMjOSKz3sRuupFCX3UroyYf52L+2iVTrda8XW +# esPG62Mnn3T8AuLfzeJFuAbfOSERx7IFZO92UPoXE1uEjL5skl1yTZB3MubgOA4F +# 8KoRNhviFAEST+nG8c8uIsbZeb08SeYQMqjVEmkwggd6MIIFYqADAgECAgphDpDS +# AAAAAAADMA0GCSqGSIb3DQEBCwUAMIGIMQswCQYDVQQGEwJVUzETMBEGA1UECBMK +# V2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0 +# IENvcnBvcmF0aW9uMTIwMAYDVQQDEylNaWNyb3NvZnQgUm9vdCBDZXJ0aWZpY2F0 +# ZSBBdXRob3JpdHkgMjAxMTAeFw0xMTA3MDgyMDU5MDlaFw0yNjA3MDgyMTA5MDla +# MH4xCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdS +# ZWRtb25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRpb24xKDAmBgNVBAMT +# H01pY3Jvc29mdCBDb2RlIFNpZ25pbmcgUENBIDIwMTEwggIiMA0GCSqGSIb3DQEB +# AQUAA4ICDwAwggIKAoICAQCr8PpyEBwurdhuqoIQTTS68rZYIZ9CGypr6VpQqrgG +# OBoESbp/wwwe3TdrxhLYC/A4wpkGsMg51QEUMULTiQ15ZId+lGAkbK+eSZzpaF7S +# 35tTsgosw6/ZqSuuegmv15ZZymAaBelmdugyUiYSL+erCFDPs0S3XdjELgN1q2jz +# y23zOlyhFvRGuuA4ZKxuZDV4pqBjDy3TQJP4494HDdVceaVJKecNvqATd76UPe/7 +# 4ytaEB9NViiienLgEjq3SV7Y7e1DkYPZe7J7hhvZPrGMXeiJT4Qa8qEvWeSQOy2u +# M1jFtz7+MtOzAz2xsq+SOH7SnYAs9U5WkSE1JcM5bmR/U7qcD60ZI4TL9LoDho33 +# X/DQUr+MlIe8wCF0JV8YKLbMJyg4JZg5SjbPfLGSrhwjp6lm7GEfauEoSZ1fiOIl +# XdMhSz5SxLVXPyQD8NF6Wy/VI+NwXQ9RRnez+ADhvKwCgl/bwBWzvRvUVUvnOaEP +# 6SNJvBi4RHxF5MHDcnrgcuck379GmcXvwhxX24ON7E1JMKerjt/sW5+v/N2wZuLB +# l4F77dbtS+dJKacTKKanfWeA5opieF+yL4TXV5xcv3coKPHtbcMojyyPQDdPweGF +# RInECUzF1KVDL3SV9274eCBYLBNdYJWaPk8zhNqwiBfenk70lrC8RqBsmNLg1oiM +# CwIDAQABo4IB7TCCAekwEAYJKwYBBAGCNxUBBAMCAQAwHQYDVR0OBBYEFEhuZOVQ +# BdOCqhc3NyK1bajKdQKVMBkGCSsGAQQBgjcUAgQMHgoAUwB1AGIAQwBBMAsGA1Ud +# DwQEAwIBhjAPBgNVHRMBAf8EBTADAQH/MB8GA1UdIwQYMBaAFHItOgIxkEO5FAVO +# 4eqnxzHRI4k0MFoGA1UdHwRTMFEwT6BNoEuGSWh0dHA6Ly9jcmwubWljcm9zb2Z0 +# LmNvbS9wa2kvY3JsL3Byb2R1Y3RzL01pY1Jvb0NlckF1dDIwMTFfMjAxMV8wM18y +# Mi5jcmwwXgYIKwYBBQUHAQEEUjBQME4GCCsGAQUFBzAChkJodHRwOi8vd3d3Lm1p +# Y3Jvc29mdC5jb20vcGtpL2NlcnRzL01pY1Jvb0NlckF1dDIwMTFfMjAxMV8wM18y +# Mi5jcnQwgZ8GA1UdIASBlzCBlDCBkQYJKwYBBAGCNy4DMIGDMD8GCCsGAQUFBwIB +# FjNodHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20vcGtpb3BzL2RvY3MvcHJpbWFyeWNw +# cy5odG0wQAYIKwYBBQUHAgIwNB4yIB0ATABlAGcAYQBsAF8AcABvAGwAaQBjAHkA +# XwBzAHQAYQB0AGUAbQBlAG4AdAAuIB0wDQYJKoZIhvcNAQELBQADggIBAGfyhqWY +# 4FR5Gi7T2HRnIpsLlhHhY5KZQpZ90nkMkMFlXy4sPvjDctFtg/6+P+gKyju/R6mj +# 82nbY78iNaWXXWWEkH2LRlBV2AySfNIaSxzzPEKLUtCw/WvjPgcuKZvmPRul1LUd +# d5Q54ulkyUQ9eHoj8xN9ppB0g430yyYCRirCihC7pKkFDJvtaPpoLpWgKj8qa1hJ +# Yx8JaW5amJbkg/TAj/NGK978O9C9Ne9uJa7lryft0N3zDq+ZKJeYTQ49C/IIidYf +# wzIY4vDFLc5bnrRJOQrGCsLGra7lstnbFYhRRVg4MnEnGn+x9Cf43iw6IGmYslmJ +# aG5vp7d0w0AFBqYBKig+gj8TTWYLwLNN9eGPfxxvFX1Fp3blQCplo8NdUmKGwx1j +# NpeG39rz+PIWoZon4c2ll9DuXWNB41sHnIc+BncG0QaxdR8UvmFhtfDcxhsEvt9B +# xw4o7t5lL+yX9qFcltgA1qFGvVnzl6UJS0gQmYAf0AApxbGbpT9Fdx41xtKiop96 +# eiL6SJUfq/tHI4D1nvi/a7dLl+LrdXga7Oo3mXkYS//WsyNodeav+vyL6wuA6mk7 +# r/ww7QRMjt/fdW1jkT3RnVZOT7+AVyKheBEyIXrvQQqxP/uozKRdwaGIm1dxVk5I +# RcBCyZt2WwqASGv9eZ/BvW1taslScxMNelDNMYIZjzCCGYsCAQEwgZUwfjELMAkG +# A1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcTB1JlZG1vbmQx +# HjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjEoMCYGA1UEAxMfTWljcm9z +# b2Z0IENvZGUgU2lnbmluZyBQQ0EgMjAxMQITMwAAAlKLM6r4lfM52wAAAAACUjAN +# BglghkgBZQMEAgEFAKCBrjAZBgkqhkiG9w0BCQMxDAYKKwYBBAGCNwIBBDAcBgor +# BgEEAYI3AgELMQ4wDAYKKwYBBAGCNwIBFTAvBgkqhkiG9w0BCQQxIgQgqwm8h/dw +# FED0y+xGCWSaD8Fc1mZMgPkryh2zfSvZwxIwQgYKKwYBBAGCNwIBDDE0MDKgFIAS +# AE0AaQBjAHIAbwBzAG8AZgB0oRqAGGh0dHA6Ly93d3cubWljcm9zb2Z0LmNvbTAN +# BgkqhkiG9w0BAQEFAASCAQBvXNrKAkE7o84rJI6+XFvnA65dqlWCZBeFhG6YGpde +# Nom1mPdcfauabmxLKg7N5GG1FBWXuYDu1aEyDhiXzPG6ET+/ikXTGfN9J0D9g5Wx +# a2SeSIJ0XfsllBKKwOKl4OhoY3y5Kjjk08Cw75aE5BR8Ux0FWciN8n+nztakOyN9 +# tf7I5nmgbrHvJC5az2N9aR5DejRvjPDcNCnRkepz3nnA+FQNFbXaKqjgJz9oRBgA +# K2SAZDQnnK3B3MAv7qJX6GyeUhen7kwXZC0OV2RjyPRC+f8SiV/OF/ZsaFe4nXps +# RJqg5f5sUjCHFS5g8yK9Zy6D7EZKJJA4yk8YgRpdxOiuoYIXGTCCFxUGCisGAQQB +# gjcDAwExghcFMIIXAQYJKoZIhvcNAQcCoIIW8jCCFu4CAQMxDzANBglghkgBZQME +# AgEFADCCAVkGCyqGSIb3DQEJEAEEoIIBSASCAUQwggFAAgEBBgorBgEEAYRZCgMB +# MDEwDQYJYIZIAWUDBAIBBQAEIAn/Ph2Du7oUABZfi9Z4pWXxedNUse800UpCJBeG +# +id6AgZiF5hUHpsYEzIwMjIwMzMxMTAwMDEyLjU2OFowBIACAfSggdikgdUwgdIx +# CzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRt +# b25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRpb24xLTArBgNVBAsTJE1p +# Y3Jvc29mdCBJcmVsYW5kIE9wZXJhdGlvbnMgTGltaXRlZDEmMCQGA1UECxMdVGhh +# bGVzIFRTUyBFU046RkM0MS00QkQ0LUQyMjAxJTAjBgNVBAMTHE1pY3Jvc29mdCBU +# aW1lLVN0YW1wIFNlcnZpY2WgghFoMIIHFDCCBPygAwIBAgITMwAAAY5Z20YAqBCU +# zAABAAABjjANBgkqhkiG9w0BAQsFADB8MQswCQYDVQQGEwJVUzETMBEGA1UECBMK +# V2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0 +# IENvcnBvcmF0aW9uMSYwJAYDVQQDEx1NaWNyb3NvZnQgVGltZS1TdGFtcCBQQ0Eg +# MjAxMDAeFw0yMTEwMjgxOTI3NDVaFw0yMzAxMjYxOTI3NDVaMIHSMQswCQYDVQQG +# EwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwG +# A1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMS0wKwYDVQQLEyRNaWNyb3NvZnQg +# SXJlbGFuZCBPcGVyYXRpb25zIExpbWl0ZWQxJjAkBgNVBAsTHVRoYWxlcyBUU1Mg +# RVNOOkZDNDEtNEJENC1EMjIwMSUwIwYDVQQDExxNaWNyb3NvZnQgVGltZS1TdGFt +# cCBTZXJ2aWNlMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAqiMCq6OM +# zLa5wrtcf7Bf9f1WXW9kpqbOBzgPJvaGLrZG7twgwqTRWf1FkjpJKBOG5QPIRy7a +# 6IFVAy0W+tBaFX4In4DbBf2tGubyY9+hRU+hRewPJH5CYOvpPh77FfGM63+OlwRX +# p5YER6tC0WRKn3mryWpt4CwADuGv0LD2QjnhhgtRVidsiDnn9+aLjMuNapUhstGq +# Cr7JcQZt0ZrPUHW/TqTJymeU1eqgNorEbTed6UQyLaTVAmhXNQXDChfa526nW7RQ +# 7L4tXX9Lc0oguiCSkPlu5drNA6NM8z+UXQOAHxVfIQXmi+Y3SV2hr2dcxby9nlTz +# Yvf4ZDr5Wpcwt7tTdRIJibXHsXWMKrmOziliGDToLx34a/ctZE4NOLnlrKQWN9ZG +# +Ox5zRarK1EhShahM0uQNhb6BJjp3+c0eNzMFJ2qLZqDp2/3Yl5Q+4k+MDHLTipP +# 6VBdxcdVfd4mgrVTx3afO5KNfgMngGGfhSawGraRW28EhrLOspmIxii92E7vjncJ +# 2tcjhLCjBArVpPh3cZG5g3ZVy5iiAaoDaswpNgnMFAK5Un1reK+MFhPi9iMnvUPw +# tTDDJt5YED5DAT3mBUxp5QH3t7RhZwAJNLWLtpTeGF7ub81sSKYv2ardazAe9XLS +# 10tV2oOPrcniGJzlXW7VPvxqQNxe8lCDA20CAwEAAaOCATYwggEyMB0GA1UdDgQW +# BBTsQfkz9gT44N/5G8vNHayep+aV5DAfBgNVHSMEGDAWgBSfpxVdAF5iXYP05dJl +# pxtTNRnpcjBfBgNVHR8EWDBWMFSgUqBQhk5odHRwOi8vd3d3Lm1pY3Jvc29mdC5j +# b20vcGtpb3BzL2NybC9NaWNyb3NvZnQlMjBUaW1lLVN0YW1wJTIwUENBJTIwMjAx +# MCgxKS5jcmwwbAYIKwYBBQUHAQEEYDBeMFwGCCsGAQUFBzAChlBodHRwOi8vd3d3 +# Lm1pY3Jvc29mdC5jb20vcGtpb3BzL2NlcnRzL01pY3Jvc29mdCUyMFRpbWUtU3Rh +# bXAlMjBQQ0ElMjAyMDEwKDEpLmNydDAMBgNVHRMBAf8EAjAAMBMGA1UdJQQMMAoG +# CCsGAQUFBwMIMA0GCSqGSIb3DQEBCwUAA4ICAQA1UK9xzIeTlKhSbLn0bekR5gYh +# 6bB1XQpluCqCA15skZ37UilaFJw8+GklDLzlNhSP2mOiOzVyCq8kkpqnfUc01ZaB +# ezQxg77qevj2iMyg39YJfeiCIhxYOFugwepYrPO8MlB/oue/VhIiDb1eNYTlPSmv +# 3palsgtkrb0oo0F0uWmX4EQVGKRo0UENtZetVIxa0J9DpUdjQWPeEh9cEM+RgE26 +# 5w5WAVb+WNx0iWiF4iTbCmrWaVEOX92dNqBm9bT1U7nGwN5CygpNAgEaYnrTMx1N +# 4AjxObACDN5DdvGlu/O0DfMWVc6qk6iKDFC6WpXQSkMlrlXII/Nhp+0+noU6tfEp +# HKLt7fYm9of5i/QomcCwo/ekiOCjYktp393ovoC1O2uLtbLnMVlE5raBLBNSbINZ +# 6QLxiA41lXnVVLIzDihUL8MU9CMvG4sdbhk2FX8zvrsP5PeBIw1faenMZuz0V3UX +# CtU5Okx5fmioWiiLZSCi1ljaxX+BEwQiinCi+vE59bTYI5FbuR8tDuGLiVu/JSpV +# FXrzWMP2Kn11sCLAGEjqJYUmO1tRY29Kd7HcIj2niSB0PQOCjYlnCnywnDinqS1C +# XvRsisjVlS1Rp4Tmuks+pGxiMGzF58zcb+hoFKyONuL3b+tgxTAz3sF3BVX9uk9M +# 5F+OEoeyLyGfLekNAjCCB3EwggVZoAMCAQICEzMAAAAVxedrngKbSZkAAAAAABUw +# DQYJKoZIhvcNAQELBQAwgYgxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5n +# dG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9y +# YXRpb24xMjAwBgNVBAMTKU1pY3Jvc29mdCBSb290IENlcnRpZmljYXRlIEF1dGhv +# cml0eSAyMDEwMB4XDTIxMDkzMDE4MjIyNVoXDTMwMDkzMDE4MzIyNVowfDELMAkG +# A1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcTB1JlZG1vbmQx +# HjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjEmMCQGA1UEAxMdTWljcm9z +# b2Z0IFRpbWUtU3RhbXAgUENBIDIwMTAwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAw +# ggIKAoICAQDk4aZM57RyIQt5osvXJHm9DtWC0/3unAcH0qlsTnXIyjVX9gF/bErg +# 4r25PhdgM/9cT8dm95VTcVrifkpa/rg2Z4VGIwy1jRPPdzLAEBjoYH1qUoNEt6aO +# RmsHFPPFdvWGUNzBRMhxXFExN6AKOG6N7dcP2CZTfDlhAnrEqv1yaa8dq6z2Nr41 +# JmTamDu6GnszrYBbfowQHJ1S/rboYiXcag/PXfT+jlPP1uyFVk3v3byNpOORj7I5 +# LFGc6XBpDco2LXCOMcg1KL3jtIckw+DJj361VI/c+gVVmG1oO5pGve2krnopN6zL +# 64NF50ZuyjLVwIYwXE8s4mKyzbnijYjklqwBSru+cakXW2dg3viSkR4dPf0gz3N9 +# QZpGdc3EXzTdEonW/aUgfX782Z5F37ZyL9t9X4C626p+Nuw2TPYrbqgSUei/BQOj +# 0XOmTTd0lBw0gg/wEPK3Rxjtp+iZfD9M269ewvPV2HM9Q07BMzlMjgK8QmguEOqE +# UUbi0b1qGFphAXPKZ6Je1yh2AuIzGHLXpyDwwvoSCtdjbwzJNmSLW6CmgyFdXzB0 +# kZSU2LlQ+QuJYfM2BjUYhEfb3BvR/bLUHMVr9lxSUV0S2yW6r1AFemzFER1y7435 +# UsSFF5PAPBXbGjfHCBUYP3irRbb1Hode2o+eFnJpxq57t7c+auIurQIDAQABo4IB +# 3TCCAdkwEgYJKwYBBAGCNxUBBAUCAwEAATAjBgkrBgEEAYI3FQIEFgQUKqdS/mTE +# mr6CkTxGNSnPEP8vBO4wHQYDVR0OBBYEFJ+nFV0AXmJdg/Tl0mWnG1M1GelyMFwG +# A1UdIARVMFMwUQYMKwYBBAGCN0yDfQEBMEEwPwYIKwYBBQUHAgEWM2h0dHA6Ly93 +# d3cubWljcm9zb2Z0LmNvbS9wa2lvcHMvRG9jcy9SZXBvc2l0b3J5Lmh0bTATBgNV +# HSUEDDAKBggrBgEFBQcDCDAZBgkrBgEEAYI3FAIEDB4KAFMAdQBiAEMAQTALBgNV +# HQ8EBAMCAYYwDwYDVR0TAQH/BAUwAwEB/zAfBgNVHSMEGDAWgBTV9lbLj+iiXGJo +# 0T2UkFvXzpoYxDBWBgNVHR8ETzBNMEugSaBHhkVodHRwOi8vY3JsLm1pY3Jvc29m +# dC5jb20vcGtpL2NybC9wcm9kdWN0cy9NaWNSb29DZXJBdXRfMjAxMC0wNi0yMy5j +# cmwwWgYIKwYBBQUHAQEETjBMMEoGCCsGAQUFBzAChj5odHRwOi8vd3d3Lm1pY3Jv +# c29mdC5jb20vcGtpL2NlcnRzL01pY1Jvb0NlckF1dF8yMDEwLTA2LTIzLmNydDAN +# BgkqhkiG9w0BAQsFAAOCAgEAnVV9/Cqt4SwfZwExJFvhnnJL/Klv6lwUtj5OR2R4 +# sQaTlz0xM7U518JxNj/aZGx80HU5bbsPMeTCj/ts0aGUGCLu6WZnOlNN3Zi6th54 +# 2DYunKmCVgADsAW+iehp4LoJ7nvfam++Kctu2D9IdQHZGN5tggz1bSNU5HhTdSRX +# ud2f8449xvNo32X2pFaq95W2KFUn0CS9QKC/GbYSEhFdPSfgQJY4rPf5KYnDvBew +# VIVCs/wMnosZiefwC2qBwoEZQhlSdYo2wh3DYXMuLGt7bj8sCXgU6ZGyqVvfSaN0 +# DLzskYDSPeZKPmY7T7uG+jIa2Zb0j/aRAfbOxnT99kxybxCrdTDFNLB62FD+Cljd +# QDzHVG2dY3RILLFORy3BFARxv2T5JL5zbcqOCb2zAVdJVGTZc9d/HltEAY5aGZFr +# DZ+kKNxnGSgkujhLmm77IVRrakURR6nxt67I6IleT53S0Ex2tVdUCbFpAUR+fKFh +# bHP+CrvsQWY9af3LwUFJfn6Tvsv4O+S3Fb+0zj6lMVGEvL8CwYKiexcdFYmNcP7n +# tdAoGokLjzbaukz5m/8K6TT4JDVnK+ANuOaMmdbhIurwJ0I9JZTmdHRbatGePu1+ +# oDEzfbzL6Xu/OHBE0ZDxyKs6ijoIYn/ZcGNTTY3ugm2lBRDBcQZqELQdVTNYs6Fw +# ZvKhggLXMIICQAIBATCCAQChgdikgdUwgdIxCzAJBgNVBAYTAlVTMRMwEQYDVQQI +# EwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNyb3Nv +# ZnQgQ29ycG9yYXRpb24xLTArBgNVBAsTJE1pY3Jvc29mdCBJcmVsYW5kIE9wZXJh +# dGlvbnMgTGltaXRlZDEmMCQGA1UECxMdVGhhbGVzIFRTUyBFU046RkM0MS00QkQ0 +# LUQyMjAxJTAjBgNVBAMTHE1pY3Jvc29mdCBUaW1lLVN0YW1wIFNlcnZpY2WiIwoB +# ATAHBgUrDgMCGgMVAD1iK+pPThHqgpa5xsPmiYruWVuMoIGDMIGApH4wfDELMAkG +# A1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcTB1JlZG1vbmQx +# HjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjEmMCQGA1UEAxMdTWljcm9z +# b2Z0IFRpbWUtU3RhbXAgUENBIDIwMTAwDQYJKoZIhvcNAQEFBQACBQDl75AOMCIY +# DzIwMjIwMzMxMTAyNzI2WhgPMjAyMjA0MDExMDI3MjZaMHcwPQYKKwYBBAGEWQoE +# ATEvMC0wCgIFAOXvkA4CAQAwCgIBAAICAYUCAf8wBwIBAAICEiowCgIFAOXw4Y4C +# AQAwNgYKKwYBBAGEWQoEAjEoMCYwDAYKKwYBBAGEWQoDAqAKMAgCAQACAwehIKEK +# MAgCAQACAwGGoDANBgkqhkiG9w0BAQUFAAOBgQCCQ+gyinUAzBfQG0tdRLTKoWAz +# 1F9XL8HUl1+DL/nO5fnfNT2fIwdNtkcnjXkY7J89nDVJ5orczCc/Jjd8FWrGsZYF +# R7jTDpEnctly2mdeOC54DPn8NfB2rKnTAZSMNZUA5+qwXYtBJ9/L+zBcWbLJGn17 +# Xdsy6ogPG2mqiNeJETGCBA0wggQJAgEBMIGTMHwxCzAJBgNVBAYTAlVTMRMwEQYD +# VQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNy +# b3NvZnQgQ29ycG9yYXRpb24xJjAkBgNVBAMTHU1pY3Jvc29mdCBUaW1lLVN0YW1w +# IFBDQSAyMDEwAhMzAAABjlnbRgCoEJTMAAEAAAGOMA0GCWCGSAFlAwQCAQUAoIIB +# SjAaBgkqhkiG9w0BCQMxDQYLKoZIhvcNAQkQAQQwLwYJKoZIhvcNAQkEMSIEIBdm +# /Yr/algho7Se4sS1u0RA1CsQ3avLfVkP9cSuIl4vMIH6BgsqhkiG9w0BCRACLzGB +# 6jCB5zCB5DCBvQQgvQWPITvigaUuV5+f/lWs3BXZwJ/l1mf+yelu5nXmxCUwgZgw +# gYCkfjB8MQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UE +# BxMHUmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSYwJAYD +# VQQDEx1NaWNyb3NvZnQgVGltZS1TdGFtcCBQQ0EgMjAxMAITMwAAAY5Z20YAqBCU +# zAABAAABjjAiBCDFYh4a5uyi794y1CHlKx3P8nxZO/8fomUMsnns7kvKmzANBgkq +# hkiG9w0BAQsFAASCAgCphAx90HI/vzWSwneRSNg3gV826YqxCNSVkzMDcu1Rkayq +# 3FhK466ELhIxyI9EL3hLCS/BIQYKH8AiVU85P07pmaLls+bUM2CPt3II0oZYY5T8 +# BN/MyqZ0vUS6QvNX8ZT8A82R5/meSt8qS8+8ppG1XumAYmdqv7vriD8ENBrhIyus +# 3Wjwt0rS2kovNj+6g3xMJBU+LnP+qzNv72aEr2LvKkU8/abYiNXN1FGlJPqHYrF/ +# zumVFsNkJMjJrlgRFlo/EROGu3iUiI37hM7mTm77aYrWoMbKrl/4nKfMpjR4KQqL +# Mhi9Cb1c11cugxCFnoc1IA6kQ+Xg1fYUchz5UmgzDTpwic3FVGGRlTv4Wf9PMjjj +# heZyL7BFkHZCpr5qpwpu/ZvpCSQpsP4Aa07qY5ffgRu/te0ip3gkzL3Ur7zNqf60 +# Dw9If1ECZOcx+GMgIHd0t+48+hsE4RrmvMvWrEBz2B/BJEOfrIQEClhFczLjDd4G +# nhh4y/vSlqbUUupH+/oJRtpla+ZQbAxsg8jTPsiGG7hmvSaNfV7+SgwCjO1HB/On +# DkzS+edyqivrfkuwjFYecbLcl9e9Pr3SPFvelW5kXiQw2KyWFrD0aznq7YT0x/Na +# /XaZDuLepRVe7YnvH4Ky7yk58zG3QYNy5EJ6Pf3ClNsX4BBAJsUrWMxicmpUDg== +# SIG # End signature block diff --git a/swaggerci/eventgrid/generated/modules/Az.Accounts/2.7.5/AzSharedAlcAssemblies/Azure.Core.dll b/swaggerci/eventgrid/generated/modules/Az.Accounts/2.7.5/AzSharedAlcAssemblies/Azure.Core.dll new file mode 100644 index 0000000000000000000000000000000000000000..32652d6de4d07df3cfb06b166d419796c0c144ae GIT binary patch literal 251816 zcmd44378#4)i>VL-M8;LliXSEoy>&HBrrp9m&q~^hCyK1!oCCnlK^2~fcUq2RSuXy)@``0W2*|%N`F-u5X#}_RJ=A91m;TQD2U`yR&irG~ zSySu3F!0X~PCdW>^iwamz`wZvv@`pI@eBIbT+n~OQLpbm-#_Ebq1M*SP7&*)545bq zTO2F@14dq@wyp->qv!_TN9s)AzuU2H-J>2D0hH58nAo)1FGD%v2gySAa* zPlB6%9;9CJN7-yEVcoQ%#k%Q@wv`ra<7W}_Ki%-Ys%xHY_O`4{X|+PTxc+;V)iO|U zZV6i;S7|iDJ6n4puUm>^zZz`BhSVgV5ZFMY1O+Xyflfr|2&#yUVCYn0#c&_y;85F) z0orC?{Dy);3_&^SUDfxm8Wfrtu*3ZcobUhuNL53nCN#?k7ub$DC_+HZnbHz_61Cbj zP)ND7R6UM?0?Jg6reNlws7psW0f;U%r`nbWE^~=nW>2DUT!WmK{lmy_?>Lfc=9A*1 zP5=sxzPw0_m0pXIYLxx?X8X>?&+&DIIA~FxZjb9&;qKH5%a}ugW?HvO-gN zXB_l)WtMXrVaE29X#sKy5A)F$reOzY!xx%`Ob~f>tn(2cn#(Iy)tf@&&y<{?OtPcl zuFi5aj(8T9mqz>+gGD8!o^n?Jju)y&oMt(qX3Cw4%9OLgFbHbL0J|0`Q+CICJs|(= zD>{)^6_cq{yeT3|wqYXG*}cg!0QGvie=?JZln zsPAOS({v?Y(4CZt+iq#FXAHHKbo>>FSaN3Bs$Uj^zmh1lja3RKx|nse z%RmN$u_wIQ_7-J)K;$o+n*)m6Q(&!uCszk;GYaZPoYf#$Q9O5LuH7~#!);E%PbOFk z&U4lyNtn{$dU!St6gBF)r-0lz(CuwBs5TjM8h*5uje&7#2xbEY*<&MP9fZBIlC1xd z?yMF8!;4jb4E!p*>LC)iu8K(PEiEUP3aHf7D@0-!jrNE#k@iT)_9)30Xhs`3G*DBM zkqb|!uxPP_{u#}lGwC_rHfI4s=VueR;W@;jd}BzomM^<_7`?pBI*2^)g9MM)(3MjqTA+pB$Ppe9*57r1V7}#JRE_JFU$JtUrNHJoSd%0)8rk5^pfT> z5M(_6a)8!$$E*eHaNAuo0Y|Q!M}wUtD$$;BOb8bcQvlT$Hg_ZEg+st3%4Iz(k+QB} zJa6P9kSXu^)AYf1UJ2*~_o3FcC(VaYL>;O2)RqFWVEfAu=3j*$1brAmm3Ak1NGa)+ zASd{WVm8JY5PyWkBax$#w>L4(v?HC4e>FV$wBx@SaC0u7t|aqmmE7^KVVLJv0Y;C0 z<&{?u4nq%&l%M0j1p!h%yRuBita+=gHe?HKV;yi_TvmyeuAY{h;@@OFFskm}MG5Or zAQ6z)Dq~NurFqV}eNbAP_+#FR1Soee%f!Eft(QgY`ESFo6m71#vZNqP3ycHktdYGn zeHf5_R!a^_!~w+o7$FXHPh-qT&(r|%OT`v@jt^@j;|SYAm9SbNC+gI-pbUS|Vxjx9 z!>0r~;WGl=@M(cv;gbR4 zr;^HZ%o;$m9t_Gq0xj)3gt2BJjx%)~(B>WZsn|}*LFBtZjBX|PE^9@L8G}ly#RmGf z4Rob5i3nR2N?+G*E0R63Gq0z#V3yXTqfNeju|4Om6O9*p5dEI28` zYBs1KZtVtyu2p>LT-&^d#501-jX<%0W{#XuF0A<+K8z6_vm>&Lzd!6F2~W=~t@n}y zp|l5!0Jo#dcH6%RRH{*vVed3Ut()ov^FC!pUM&0BTJ{@&4R6K|%l;ODPWXO-Zg{J} zuJ8i_CzZ^=+OX{DGatf__Fqtug?_4DpEgPyJN&RfCxmT48eQRS0w*=tprw!(eOiws zuavL7iPuLZjvanXpcCFM&<*bp*cIL>a8k((YBhP%r#zu-*lVveXghB0<3LmWQViQG zpD`tv_yi$3fBK_2l%VP}oKU=Flv1A^}h79pyS8`ZU?HPk0>!1hth z5`$r4L&O0VZFXU3II5Kv1sFGa72d2rL(LE_MAVzykH_qdIw*&ka#)>Ki`*bpq3tY_PFzbiDQ! z{|n$#$tMl!j}9+tUm|DiLTX>uR3;XZ5xWR+pgb1E2z5Ai?JFb=f)~Nv7FDkM2~xCu zG!oBzm4WBlM~f8I+4j)`RcElAFkb`S?p%(xG4%>KhU6AivHc88Kv^W1mV7XeN$S@s zGLI-~4sQ=;RqyOHUqmvczeY{0%?%fmlM|vyI6oOCXiJ2<5+=gk#On=Iy+H%xP!5*@ z!D>cwLedkGo{$j;g${B!B1bpmsC@%jz!1M^;J~O%Yyo8KMSZYaEY1lqXFM510aht6 zH-man*P&R?d=pszG5lcW0}XkVxe?`Ib=jcQPkAuK}0zZSOpgQij!uXc4f_!0tx zC-JlCn0R!xJ(u|bqST(k&sy6*6JT45ydij#%XV-ELYo@{sn-c}6mFyIzQnQpr-5jU z>RkWhXxO*y139!$WIxt}x`Z*-GoTEAh#&T|&kA(H9|?5B=LB|zKNdKtWTpd^9Q_!5 z2F;QwPmD$y-jncn+dL0E%7JKPtAg$b9jjyUsa&CL?qERDPQ|<^+5H$j%uaJ z6bBG{5rIWau4Nfib-Z7Yrz6pb6F>Xt63y4%jHgtZT<^I#i=bwTT(Jh z%qHuzL|TmEaCdP%h81?kD`<#g{)U3sSiWQ?VfXNv4FpO&qp=DdZUem*=nk*llWAv1 zqTJJ-(0OOl%ew=`6&-Fq8L>ym6sW5|-rUxnm@xsBUI5)@xuiB~owf75I#1)A`0L2$ z4m0z)y8v{#6|u8ZOo+c3 zv|iEw8KYonb>j~Z*!+=F3#)>%@|D%fI;-vE{jjZBN#1D^ zN3gg|NlvdvU%IU%xviuB2||b=_E8?*2=q@L=hu1k&X8LYLk;srzO00Ael0>U^F}r( z;mviz?rk~JfR-;tx(~k=74+qmk94X#c|N2jmp?=J<~+U(wEq_%%R4L0#mB?Qyc*$u zGj@ylE5PWL|H7(E8|5reBo; zeI+Tr@ahyWc%Jr3uwt1#ZiCu9pUCR6-t~_|D6CNrWn_(7q`>NQKtVPR%!&Lxv(Ou| zno4iD(fl2Jf|Ii7Kwl5n+8tsp=L3b6Zskrk9}+~JO~kf0VmtS>*|G!O7X}=SigO0* z8aQsjzc#q}*NgGi!_Z?N+J3zJ#?~zhVvg%mGqQc5tu{te=@FXkAx2Zvf_8ljOuS0X z^?wQ|3z@~Cf%56v5@T}G`2U048&r*q{}23>$26+{Pk6TKVYKB-TaW zg4t-|VB(@+wht+|iH>y4MSEV?~jV|1)vp^W=k#(R7frS6QMh@#JUqn{TK27$emoO2st zcH}|9q2ODHBg~CFAUM|Z*7WE-;z1Q?skAz`5q7vEY!S}*X%UjJBQf$mL7qjAm-j~B zE#6}z8p4j`$T~ru9U%!jQX|uXTnTwP()n~XbjDAjJCo0hegQ!vs47?yUcszm+r_2E zKnxEo#yA|!sFa^Tc*#yjBzf2O1OXi;)uHpbI6NuUqGab&eoDe+SsLrXQe0USS5}KF zXSe4X#YIn}xU!An%A&ZkT3og)CS$ICDTK^t{51G?w3hSvRzE{$o1Jgd;%?RWFQB+v z5x+H#{}yI5*gI!k==f-EnSrW1*jY~K5IYMVHFP4GwOSwcZ&_4}*PP$eGVk6-eK-j9 zVLrz@GQYzB$~`azox(oJa`Z<46Zn_Izft_#7ylSGg1*4A4Lcg>+A^(3tCI9&4M3FN zCWxf$(3Na63*L1Qv!zsA$BI%aDCjKJW+NzP%Q!>Eb{uG+EevA7gPsYy0V%B5OBa&V z5e9YwXeT^BkC>oh&rtooj`L0jZ`Dw$RBK0gtF4rnWIdzaz zT1Qbo1*dfLC@SrDBDfTs1zksK%C+aV6xJ{;jFmH{q3)>tz0(^0vYJ-gdePdkwMEP< z#$H|Igax)SM6+uJ_`)Jl*l8zp{BHWLcVyBy&UWUmL!Nrg9N;4w*Y6<_whkG^?``(X zZT9TY?7=kT-!twb5zZcnEUqu!N3k)A9#-eEA`%euiP%~&e*vS%a_vY@JzqP`@D0${ zNN14VWl?^1hG*TG$a5nyPKz|L+GS>BoDbMuWYkZt+x!!70qb|;SV%M_D`E;TRYqjn zui&@R8*E?!2X<>TY>*h*DHk&3qiyW`fG(TtTeKvR?Av2;d$RA;C7ER3TG=r#yM=N~ zu{scVh@V{dD-@j>0)22X`LTvH@$-r+GM?=(1a`^C98qd@M2&HEkuy&FTQ$x&ZEm&S z8E1>Bc01!Vpw-#VIE`a9<&293Z7BugZLt;5B)<&5R?1^g&(=~8Z-O59SHti#Gaw^J ze=(ec12Tw@-5im}Zt2h?8tL02w{(M%TROGK%@J)JmqYW|%`vySr>Sln*>OTxY_2-M zR?F0rUQR*9FY|mFn;qFtjSs=lR2Dh65n?65psivW&tHR+8<|Q6aA@hk@mJ2VV255d z-xV#S-JJ0COr5}ldZy6p5uh(2Sgqh>1*a%DRRKCMlAx*+oS^`@1}&}GnfnS#p|tW_|fU{XP-U`oLi z3Z@lYso*LFs2;AI7eJn@ov3%L98b=QH~nn~O5PXh4X*~Fhq~tvL-%DUeLrBc2A0fA zVnb1btz7&CwXHhH?#%oy`E{DI60m zy=Du!@{Y-rG{)9+U;l8zDIQa9_0ncHBdSORMhX<&WLF=G%_vV-=%J9u%sLo&m4IY-U~k=Cx{m8#v+Oxrk?RNDuUah^-) zVI`>pt&pP}oiF5AMWoQRto|rnr)n2U&NzcBY3DY=Oc^MQXwW_LB$sgVp^NBvi=ugm zj4nOjVq+@-4DnYRf!x!q>cMp=!r+7WF*r%&O|#wy_Yt?Lj$qToT|o~q;6q=LT_H#;Av%k~wN;0?y= zI5xIm1##!qac2>C6>&G#acqXcCy4t>9mh5qY$opII*tuA=xzsYZ~UlU*jj_Lh?}hA z*mQ#%h`XzfV>=EWBW`mY$3`9eg}B)rF+aBOU1W9Y;$NY#{EQI*w)~ z_%?Ab)p4{jL3r=&$Fim4%NJ;=)MMS$6p0!Wg&>@sO^DPYfgZxWOoXIUAu_160f#@%#)^z(MvFw zayCm2ON#x}SVeObnShKj2`NfR$3q7~;!fBvx6YDn)L+Vf%Kn=CXI}*#4mf)uZaPXKFno_3)Gi!8-`BQ2t#O4P@g&`8wjT z-FZ55f&;SjJMtTyh>dU>65(i{cSZhoW`8lhnC5i0a~mNx?97?WQjZR{vdKyt4rq~U zkH06fjPXJd<8r}pud+~TvbKz=M|SC=wLM-baU4Zrl;red>7n2SWI<$}W)_1~ckE?W zgVDNIvMl|{gOJy-Kk1Zu1+WDLZH`Amwqe}~jz%o=I@XN~;N{uMz2K>4xhMkr)|)EN z0&Z{MAQ^ig?zbq7Q!FRpW|)6jgX2~II~*?oM;S95jXdmvJWQeQ%-Fqhg1Ooj+>K-+ zUnN--$x2fgL^P4y*Gy7S67KRcUvhA|cBv~>xpo;L(&@ln#33zk;Lk3G*F&!WSWs~7 zejbVlZ=}2u z+;IM?;rvs>Y4_9=x)a)2d-+BIdzzoL#{qKG*` z>PdBv)6E(M{N;47#Sd*4OIQqyIDlYT3ql+~+z=zg0mOS^ggAg;oscNv0OGwdLL5Nc z6eGj|#Jh-i)~S>o8AbMWFP<+udBI$$E;tWAeRE{BL(V$X4n#gVe3fYX8TJ!m`9)Ku zWetSwQ*EVN9kUEkDzk&Pl3$ub;MYe(;P)YE%#Ais0!TtHq4>pSEJPWh%rIWv(sdMy z3*%OE4RwaWV8+aW1tsP!#Po>ATnC$?`^pHl%3>dPLrmTwAf$bKJLM|y@(Otc-+){Z zljR(D;&eLk7}XMJBd>HS1&~awZc2lw0m^YOZ{6nILvF-}SxtKH7!_QcJ= zX?KDnJcp6+8bwyKwk&+{{G6*OEV3U?3T=xAL&geZR0YI~d!K+b+2lC%hyB!QB3VtB zvCZ->+D0YRUpWs{yB=sBEc243&eFBESr5te9FG40Ga=i{~l1G`x}P^z`_EG z^9V{(C@q8Z-r&^7C}izO;s$M}(|icg*Dk~6Ajv8?;AA!eQ`)bFfk(zi<vdN({tqt&^+#*_v)a4NNW0yh&K=M z3F6KeA&zB8^&YT+sILD>3WkBiHx-&O)@ArVK%EWQ1^c=+wU5wEYIPy>4q^cBB3w50 zaqzc&jQcX?A@W&b%eI7)X`j@OymYWm$@cOFv^QJMD?xM|&HE(#^v_2kJQ~5+FCr}| z)G#p2OfxB|<0xvEYhr}{y@=wEQ1opvXh)=p8fMfKHQ!iaV^FMyhW9Rt(C~hWUM$rK zv48i>z)#Nzq+(eHs8<}j-KF4D3hq|$X$7cMB)M0?eF{E9a2oEo%&iahd<=Fnp)l0; z`E}@$e|8g%6{gENonen|M zTTDn>yqWQMpG%_XeJ;5@CINDLj4lpE_fr~HyWm!cP@)c7tjk4%mL=*EIi^`wq6zh~ z%tUeOW!VMHzj|4Q0kf`NmSsSVsh4FMPzmZ~*#^wNdZmm}M?MEMYMJ>5M1|EBFVK(7 zM2i>bhi9V2`xv$u5IMf8X7dOq%;jh0mu_~l8AYt*+$%cs?AG%ir7mnL<$uFqB^V6a zT_O2v2VLFW);N-o1{7rJsc)a5HVx|AM;D#c=R`-~ZjD6GMe$|bN8JS#xJh2eIx#9Q zja3<%NvVQK?h7(ogqS)o5s_g0sSNO~>%?!05{rZu&YX2^X<@~=BodGdO^tYwE=w0| zB|h~GI>tw}RC>u03Bpcu3PLJ*TNll0r@|)$8jQh#;}*?d5mD;AZDBAcf6ZlHoxe>1s`PQGl`FRS z19%jNyEGswoYRn6QyC9#r;H;;dudRjGTW6wT{Yzz%v&?FqmuQVY>(_wvEcZ4lZXb1lC*W zp8=3{E6Jn?kZsOTl8X$eHkv(M8(pEb$HlSEnLKhSVGz~bRFnZ_*F=ixFb{h&FGo%sSpyF#b7ZD;q|Gw$tbOb0A!QtAcnoZ!>(e3nR4h2LJc`48jcU|scTRmDL2?zi zP%y7R&=PwrazOh^w7EDKDOl~Bzk@U|roq^G5t?)s4x7x2nfDOfV1J>B6PyX0I=U+2aCW{6oQHF*MNli5dHlY za1rb91hr+(1ILUP>`Dpf?ltG*w>r-Yj@=5C4bB5bC2Ys_6Ry-`iYtu|a7f?6AuPxg z&4uvbrkqub!n;=*Ebqx;jSCfJr#2x`#BMPTyt(oc)Q0;o{sj1pg8LObpx{A(+7@KJ z5eIRx(wM1ym3uD#F0Pj9@%98&P(>p`nRt%eR}y>bT3B(l7E>R=KN=aXF@dz(eeBc| zRGl5nnOE13g!MYU2ToG0ObISf7muBKoYbxz>^76U>R{V+&aoN?dg4CG8&Sn{V|^z? zSNqa}3bO>VxEC=LXCFmpQHJ-x7y?t)tt6>-c-siRAUFi+^E`4rk!`A&iqG7s_}SoN zh@++JCa+{fZ~NJ3wIwdELC#3RFdrSRop;SHaMkAHM_XLFhNIJ7Nwbslf{wl!%G~2Q zWDI4=QmuBRwhpc=*91kmB5W0Va9e4AftwPU?Wre`C7zwDXT8{?$p+5-h2eezKjnnftJ)>VJ5-Qn_<^2S zJln8haQ%1yP>u)09cq$@OA)0(E2u0`N>i?=)e~RvBuYcsts8?Ww~bJL6;^siCy0$x z%7p12XaDMPM9f}YbZ0zQVs1vy;{U9_~vC~-1#z-&39XS}W<+^CkZ zAl{##aQglP`sAk&-*#~6og>%qY4M?r`fKTZhRks*Pw}q!QP~E;JF3w;!zrT!VT1yh zNt;mg^--M1k+N+Vr*EMg&~fx?&jMgL;bBM|&c*3WBna0#C>o*2gq0zhaQc}6eR2Y4 z+M`_}y0jumup_^^WKoa8ITPwOZtGp0DmfQq3AqR$44Z4ZF<`9ddQBJJTGLU_ z91FYU@)x{-%m!`q@iPxUwH*<4nj<|8U{@I&Uk_mCtN|MsZn*fLAs(+}n-0AiIg&0s^`ev={-VJ7; zAbk44XGGfk$GH|+aK;yC+s7?;Ec=RHxmU+DcLr?-XmLk;7}=}Nb!7n)mDhh4gy1&V z5hz6#1*1Sew%Gcu$9o`M{DWPd z*RB66E=C}qW*ChE8x8txev&l4n4!K<4uRMYrkWrnj*ql$(YCC8b1$RBAqLm z!iDj9&5W_rlBrGM2N75Y1`uygi8sARD4X~=SAQyh^6OODJtufsML zA-BR{Es+?kG(G?-E-gl0OjTrQQM~?V>63Dxz2KicC)|vP_Kq9g$G>0eW%lqVf>RP) zaL0yGCVZZ_V))ahpp|2C_dWa>aawGM!*X7)asSu(qZ2rgt#BEB;68}%gVlWq-G{3C zFuD&{_Yrg-i61t8W>(gB#Q_9!DhP1^!E6db96&I`f)ED~%&j2A5!csCP)C1`5NsX& zf}k_}rGghozIA9~Mku$gn&U>Hm^(>iq{&dqPu7IwO(@}_b4TnM>;Uhi8|)C`@db`- zUk4ZV+jmF?qYJQdD?NX;H7VP}+zbO58~=W`zLJo1^ekA3`wQ7aV|uoM=C7{Bqb4q~DqJuiiG)e=~47942EzGa_!zq$*xY z&l00u>0PlSEL=RvKm=>5NdW2E5c|4DvUvHSA)pMcD!E`&Q#kABPT;e*>T65aKF9=y z$OQg1)JiTme8+k=N-xc7!H`-)vDJpVy}3lN7U9}A&$4F(E=1sC^+0ZI7+BG=Ev{2p zE2Yn#MEc-}`{Q?_UG~FfTEpG?(uG``c*jgjphJ(WPK@_kYd?D|pBIl3VlTFhA>`QU%a0KKKo4loqa|Sya)AyUVBBwfc(NTVX zeUy*!q!W+om15@59@d_AAYrv3Q)9@Zqr6=OLH|w|+sFhzO3gEG+iqf66(%7m=aQ*~ zUa||@Mx|6?p~{ewnT5Hw9^1y@!^RvV%F67e$y^tEP?|fX5q6TL@*)lJ z%#J8L9?dT-$%7oT$cy6C$~jkwn$)CIWU~%5*r3JktE@&e$yDTK?q5(yPB2J4pdOZ8 z*@KQ(i++XH4LkB*Y~k4iiGN!+t-TeL9&Ds;Bv?mzN$Lf%0zK;Mr64jgv zdL^Fh`E`TmrQo?A%SM@fj2wSMj`jqpd}JHDox$rMW4As4mr538Xqd%abqJ8D4#N@? zwt2xA$dWP`#0zwcla#?L&eV&j4To)WJ84wr)wyQeq*)75 zmzPtn@>*UjVFMfwrLlc;ytJ*1m7VJG6K--jD)=_S#9Xj(A=3KqM&3BM5MPwHdLRxN z@R))GPW9NF$rlHw=D@MVdl;sy_8t%nOf$p`qB5421P7x?Z1Y}59I9cEn(^O9H{_*# zW}Qd<$VWXBR;pULJS9f>V3a_{ybYP|S>c&$0L`^5EXF$w@eX{gc+R?uP#m20wa&tN z2R(A!EGrD>MGTWoY(*XzM{C*t5np#*P)`s&1wE2rP7>_P%}6mdGhNsE6w*EDe>dI4 zx>{WzXG?(|5vaA@#o8IV5py-PnRh+&WegzS1pTI)!D1c-sY}DYmUkl7qRJ)T%k9WOks^nvXzLk1)-yCLHH|w)JPgL;mmQuPw1|yqC@oSSloqKklg~!#%c54fYBoTK`Xu%Rlu(>FK?*}6 zPSP?YtE%pg?8;O2)Njz&_J8{F-EUpdf9YetdGm^69Yv|f70 zR>E<{DWxS*l4l=ZSW&viw)4|DJFR+nIfISG4d^y8C{kLs%llCG4o97HGT3qcJJi*Rk#9&xI-BfSol8|y zwio_4{H0WJnC`!dyIb6UqdPfgcn5p(k8s+Pf0ADqJGlRXUnz2Mme2{Zks=GlZ%+vM z1UV{N{Pu*zpCEHZi{G9gLoNM~PMMRSm1+9vdBiWol6#%&I3ZEQbhOCRv<(kL8PSP%B4y@wVR>PwGkLH6No>} zN(b2-xf2EPFzg)T;1M@IS}=;oYFIgZ88o)jg!qRb!haGZ!haFC=KWw^yA?m-79jX! zE8}s{NWY`^A#H5#O)!G!1M9P#r(v8)j`FM`PEafd4=nEv^OZ%J1;%~O@uBp9bPN99BC=;sW?2tzX(is`SO zFu=_K>Q47VU~-Bp_2kCja5~u+9VP+K6|HH_!#=;<^2#eoJv?wOpO7xgPjEO!sI}`^ z{I9Sm@J@qc{RCxyB+J6bLCpB#x7h`8q zy_9uOkLsm2=u2F%3ax1+^lt~3JLVLM@8!H^@EdFiz&X*Lgd7;h-|AIrVaoaDFQNF1#xwS_v*ecJl5zY`(Sl zcR+$c5h(>;Ka51NvCy5s8>Tq;RJ#)t1`lU=*f%kEQ^k4-=W3SIxoD1SLl>lW?c*Q} z9mW!QDEHBj$4%H1Bru;qI9{4Bc-O7rVa<5YYX#_*gAPk*cag(f%vSjBSHD2K$t=(f zu^9w>BE*IdAQtMdApu8M*eh^Slmb=@64i!ei|YA0-!v= zftkFBcn{Fo<_Bf#?+JO<{GD|jY;Px`PMCYiA8So`sFC^^ja{|-81OX*^ReDRM;`ie zqZea1lXi|Cpqd-@7Z}KRm|M~xfhtgtB z$``t)rS3r<&MnUZJeG2ePa~HQYnA7J0W7bpaIN0|qHx#4S6_m=ibc^cZ-qln%niIsHcLJ8QI=pQ7G)i`kT9Qu&tS`-%(|@a$seb6^sC?u?cnfK?MqmA2$S$e#}ywU58Qxv z3x-Z}Gadzn$%0-TYd+u`B=7bFIYcX0Xg;_Q24dUs%)^ZT|AYRKIz3d3c+juh8-YE= z4XX^FvagrvO4YmAoqa@&cDSEFCma*#hWiUlg!>BY3ilQ`spR}70n3y=H8;W=YX{b< zCf<8U96KBp=!AO;bi>yP>4dUoX+YhPFHZM%EXx7>jgcY0sZ3P@h!*9`x5wJaSxg$ferMR8< z4a75Frc#$;9kJoN);6z@rBnNcG&j7NKZIHlbqNw32X2)_ZfzdERcKG`TaZ)Mk9I)b zPGsI3|DWK=eavryss9*$n4xb0($E&o*C~kT7{hVvq$VAoAUd?elLR{9i2}RARRSk9 z*o>%d=~LZaXPa+==YV-ke$PSe)C^61n-YA7Dc>2aVtxNE+~#}usd%+b#MiLsn;9th zj|1RPx`-ySjX}26kZtRDEhXeEi6kmJ+2ikm&a+7z&l|rUF3b)4fQ0~O(U+n3Zk0Q=j*FqZSK~|U-!3?);`O$U!Soyig3z{F{gDZ z(y#p%TERo-;nC2CH^JY^HigS47bM8X9ycDqvi%=JEN_eVJ4CK+rkp>)j~(d~YgpE4 zGXEm&6U#z5uFeMv?i>g^=fT>e`HPj-`XV(qO$s(@xk48E-E}#IPNHx0*Cq>n_i> z-RssASFDH4!>J{>)vU;EZu3SqsSf;XbiIQA0;TeJJ~|V&Y1)l598ubBNCxI)??&QG z>{UeKbE+UdqfXr5jSZdIB6XN2D2B6`AP)00FaE!f3%*SBETCGH=m=v->kQ}!yZ+ZB%rXB3LRkxt8+BL{(5rJ*V^1=3ya>Sat_7Zl&K!+* zgNZHjPC&;0J>udNmiY;x_DQs9XM%q`7Csv#&av=00-X^1jPQ4bX9=9tV199h{RMqd zf5G=lVKX>(`rncD4 z%Y}LuNsF>mTl6O1AP7!qBgxE*|bi)e; zc7^8&oK!M?;D)-Pul{Df!*^Y+bEuo9a!0Ln&GV4TlLI}a)pA`?Z&2Iv@|O7pweTf7 zxCC|0ybheFawtw)e*NDg3$=fuP5OU;tARt&!j`xe7BejDNumE{Erc=Oz#6N@d`4yA zRS2A=&Z64b6Rf}HPe5>g8V^gtW&VO64avDqA!S~ms#EC|xV#|sTq3P(Ma2 z?R!CN;lK#4Q*4Tk89d`_OuAk(W_MFe2k*ZpwT^FuM8y@gzd}ZxyVK5{i+tmfM`b_T z{~H3b<$hT1zr&SFP5cjlJ3Pxtcq>v9FT*2KTZI1u?&{O}_~l!;2Fjtyb21iG+nuwj zdsuB?FMS1Usr5#r)6jh7xQ5&R7fa@!V3{copn3fZE{-fP$>N?dT$m@ZKOw@$auH8C zZGpS`I3&Ox*jwuopg=YK`PP!xYx+aAS3o+=+CYm!ljs;)N%JDB49Y*jdoR{`EPr{z z|F^(rya~%j4>8dqzqb53^6TQa#t|Fi>OBX>O$7K5*M(+p@Yivj`49Mb6A5zroN!}Z z^ehZP_-!=U89TfbO@ogTy$76i@W#sdnYyptn&(ZBNZ#y-@3|a|{H}1WTeAYjenrhg z0^wz#i74Ly{oz^UD`*HfJxI#kcyTt?cXCa{{y0cmy$SL#^UzoLNznuSj-P_Nfbw_= zSx}m(ixD8Zoi#YNc!>n8cN$~^(+uI&jLe{t^2!EUPsH1ec_;l#kz}QycooI`4hcjl zOO987q$8mucr)=Z1OptT;1C4|0@RL)*+$8X%=EjG1>S>b%EI`}EO?D9Fl5^--~<4c z@4U*Mk=}41DdXpmIlq-ZZOmp`)5jyBpiIhp16a|o6=sSPF<|ceBPjl1GsD3}vR_ZZ zjDsLmJ0K>*V?xb2xnyQel8u}&B+iMjJdPUWLS>?Ibd<`G%+!e4kqvYfGEv!G+#0I) zz%#OX!UN1$jllJ6taD}j5kx3w6Y_jWM-pqAQ8^`3GTM-GY~u)p4RJO;mVtFpHy>3X z9(Kk;XRRH8ZA{niFJSwW$0bFvSW`rgjAeuBSpBKnr_nIvk=jngl+9~op1ibBI}v4qH7;B3Q~HqKX*AZ#kxd@4yqWR>6df&ZHYt|Z9!3PVvZUBv zQ5q=3_WnREU&HoB?}yK`79OE?k9zBeUE`Ptw|!^!_4cfm=8?{SNc#sA7LM7OF%&Vz zT%Mej!q_yA;aex{t1d?1+8DxvXQ9Bp&d#Y01a$fZXgK3_nj&CjE?zV1hC|k@JozPcV(@tVZx3iHET@FVn&Q&ML0Qd=<|gZ^Go?mX*AX z)09Bxr5vwZ1bLywyP)TAEtE?;J0Z{sCk47;D6lKMT;QaVG20xk&{v=Px5#%P0_vce zk}-a!j1NP85d!IBZK5k2P3)o&Jh>~5Sc!mtq3k_V-3;fvW?#sNfAKk_`%#-PN|ncA z96daAA5e0pDe}i8d_+c$HR^$>j@?hu_IaTvh(;53y4iWQm@R;CyCBui)JB^OMXg0 zaP(y*c9hNl0=L7k^pEe2b(So-Sej3yc#R~39-z{i$FBJ4pz?PFCP}|u4fe6@3WM)s z$rjz@<^(d>S<2(+5zylE`{FYTTz|7$$=BTw!aHyZ--DBa95<$KxXBQ7jpERWNj8@XFJ23 z*t$&WHwJB5zon+mw)88k_!?DIL363Dp-vu1m71He3n{5H*!b@|QL3gAMCfdt5(M~E z6_(QFJEUCihB8XX4OCQ?OmQE8^YhCgM{L`t#dh1_l>(jcDuG?$6#^$U*uc`#rqic3 z{V98btR4R!NJsCF;Co`g`1j)gs3II5{eycqkofljT|$|OT#0ZI<#NIy0yjjBk`i1D zSh{Wswb7Mv6y7Y=-i_T?!OVd&b@6@eRy1)JR}>oBlz7i$ZBt&~DS5KP>jmQBCxLEw zgTO@iZh>9lI|NQDx!F(iPM_xeP<&bo5<0T+>mxEJbX@B@7wJwQJ$>}lk;h-M<*}rX zKfpX zj6A2QLXJVAZWGp3`gZ*W>Lg@r>J%}FlztOc;=4$k4=b$)^!(4@x8!ITJ|oAlk(3-e zZB55iX{8FDgRK_Ilx!BJWOSojY*=!_7TZv52Nd75NP;blnWrUWyo3!OzO`fqK!>`q zD`ZC9*p0yKMw}_(S9I-K*Fo1I@_}2^`fbe=X1=>1JcBQSAqw^k{0bPhZeD|RhnNN{ zsleet_5|6Q<)GivgR8$=g=4?BIb1#ji^b^{ENV-9ygASmj%H^n;Pf0n^xCp31jBXm z{Ek*X)~{fT;ojfs|3vIQ-Ri#G(w=`-NYaj4C`Y~Bw?Kd=0D)@`xs2it-zj)z`+B>TFm|)^v2Ofn>~9r zdoZAFkiCu}ID{-L{JqpSDP_7hJZtcpf}`INZK{7VM?n$GUnJ%}pvF46FtVE%_+to= zF$n9#Y>hKGsQq&+?7mDF*Lci+a6}B5??`cy&z`9fr~|u?YB~FsguByUw{O#0XJnjy zJM_qL`X>ZB;hh5A@Z$m#;T;0I!jB1@RC0sU(zNaL)yM0u^)y7j61*L`XTlj=e+89! z<(#FhaB{S^vWUGkbpLn5vh((QaA=9Q^z~vLLU1kI?2Be0S9y7!1mBOrPcG^2kL*@c zsU+WA&16%&oP|-AUJB?>idQ`NR%>k;!Uob@u*k^32jnN912ubrb7l8r!&5Ca&A;c0 z+xG86f+?}ndMw0WiWzrjDT%KTYIeGpX6$}+Kh{uNd1qWL1--#u1n)pSN%zn2gD+{w zTT|k}HW1(23;5iJ4sr0+XtOt@!4PGs9h?XyMAt^yX%)>VgLLzl&Uo{fV}fDm_$ulc z&(3LvdF2`x;-R^NkzpJJF#91+6NdL!k{r8p%)AltF}B0lUB?u-&&)yHj<$|P`(Hu$ zV(jTe{=O>~yTuH?AIR}oG%|hCtE^V%`tPBl@}Ny0KDNQ}U_E*&9bq271;bdL{Eet4}!BqwH{2zjZqjTyBHoYOw~&t2_j|3V}Yxi z+RDAs2JG-N0-f+afo}MKz(jbzz^?Effs;yZ4%D_nU%jn3@}0FegSWv-6sGTcd>DH7 z{3GG1FZE<`#1{fpR_J!9T*BeEjrokJ*@Q|~y=XfjN%I{9dFCyMiY^y>VCkvFmLT*F-83P&g<@?dA?cqqq*7iVWqdn*u zm1~;H=xd^TJN$+~C;YlVH+)PW-ii^}6@FFVq>}SXzqDuc)yqhEV;PA3>vG5&eoo@p z;pYW9;THtD;THua!bb&mg^viFRC2zPOy2aF*Mp6=!;?|oSX|GWV}a_okazz$xH9D( z@!cOd_$jvI0WqwgBBa;EMq*OVkVVJII93_RR=>NsJJIOwgduhu-+;jS-qLJq=`uds zWLb~d=EJBD=(~^LoMM6N1dpHu66+2{8R}OhPA#KEvNV_<0_ED$qj;VfS`QC`9QD%K zpB^_nfFKbbNPvL_=Hcvj*p`l~7nGJE{bPAa)MSoKO@Q<-tDa&1$YJuh*b@TUUZ@Mi+M!k-A7)L?_%8kP}#T1I=%vds!; z(D7H|cTm?oz}I>^c>9Jl0JbhR_WVTTaCo8T(A?9!s&5Kkp_ zm=MS8v>Q~0BmQ@SZ6%e`4~?Twbj&IUQOTvv34rEA{FF3p>eJylF>4*?OlV+f6jQDSE%lJF zPCkzUa$@;v%!_<|(MUsAxR&2TtWzvsOQyW&i`9xyC_f8J-+8vi5^t~w82rfdo~ ztC>ff65;qWVZrW4cjx~Cvru1;{sZbL)}zhIAm(!PU&KGhoFe|7;AQ${Av%+&jN0+X z))I&lY!TXS2cK$_=OwUk?QR_C4OXDEHV(}7G+uZZgeuu{*FO%W;A3xvilm5G-BGML zh}9Ft>YWh_GP7Lz0QZ&pQa8cW!c`bg*b`(gc9`}6-*f;isuRZ9hf^7aEUU|@$c-Z8 zzFJOZbDlX3=;xwyvo@v!g+86faXwjnZ9dq-r_#6Pge+pbNnYLaV_teM?loj`{L{B( z74s?fH~27b?|6;8ov|&Ox;%}%+44>T+QzHt$nnnvqh=kI8u^O(9BRw`zmQtC%}ua! zTqJ@mlw0mcM(`*?3^B$~4bc@b7{-pFFm@8iGQ)bWg^Ie(k(ic}rKg+lc5kkJ;;E~= zujiiy3A=|!yuKy=*>IMJlKwe@N+p3>1834d7r#@lM_L9-%i!$h)UojRZv=X?HyBM2 zbp5WwT6v!3d>Yy0Oll>L$=n0?TImg@$zn%{XiXp0zOS^XX)-FkjAefABlzcmW8}=i zDcfE8Ap_Z%G}pr{fR?*1a-1bRp3$$d8#|o#_I5Z+C7y_s&!X#IIQnPndX^jB)(I+T zN4h{;wKoU&wro4DY@?5CNgIqyu|XrBD&@X^un43uhv!2!e0LPj+R&d+e;QZqT@fsecE_EWBDaoN2#N$uCkn+AO-uUQ{jI%Q9WTN zlCnqcAU&Kxu76t|=Q4DfG|Qgl%yRwnq%2%dAL_dhKI+!v*(K`+>NY;`7|@pM49vr$ zeqQY(7+7Z85|zE%68=R1o(FQAH>lW{!ZYeGBAg! zuIMw^E5c!}D1-I{YoV!$26P_)*44TZGUytbCr>j6$D>ZjT3B!mT~DA&==%pe|A5g~ z#$dOpeiP#3P?An2cl3gr8WD)s+YszgbZxDS^NQaFgTZKfqv!><#xW8?tif$=<%~Ah zpFlE&#W=prIKlm~Sc3@C;wVSO!H%9Kq3OL4vjkQO<~vL>Dw*#zmyBD%$3unrZ)4`J zN*bZJ#OT53(FcBH7@agWS<9o?U*%F`hu4N1oU+&mP+w5&Nb)nxT!IWJ5N^yZ2eEQT zO!PLH>gVvuLcB!^Zw21x>dTDLH}dYccK@B$7aKb^2d&j_60+`atoGify7M=w0d|N@ zNvS*kBd{y{tH4POHiv7?pigTC+K|mN{MJou2StApI^>*oAK9o7Q->WU9^VgUS246b z8d6r~rGr!8@k0>nZaeN9e-<>dR@vBpco^F)?91;4|M!tU9~Q%InH}7K=)L|F6T`z- zyV-Kr2$jo|5ZTh!w-|KFdmeb}%aZu^le`9iDY+foDO@mu%T$-?H@9_Hq&i{;_eRg(bi=5oc!I>><17yd-_*z;AJE3zk>=|)hhR@lBE77L# z6nxdg^C2Jiwo&Y&+ zh8*T?Ooj_V@+M_GsK^U z6GuKLD6SmpMs}Bh1{Zi7cj`(hXS@?|6&zc+jx>i5b7&LBF^6qKbi}qqhZ8kay9Q}aGuzrn zv^3uP>KQ^6ehY)KrsW2A)Vom;?R@f-SjE+ce0Vsd#0J` zbAU7NLeXfNp7j~%;uh#)>J)^G-U?qMO7MH~dK*=PeYa}?D}z(m_|@gw*-}EsBQLeL zBWPfnA=6}2UbX2bGm^zNpT7e- zYtGLbn4fop`M@+orpdCryUJ>A0KO?}%tmpBz~(3l`ySvWq6lRBH^SeI_sBTcd3!AD zsbE~atV!8({*9nGXWT643JUsOa2}Xu$TaztO_QKoNd}8p_HUwOq@3c9?Y|Fxw%e42 z8IbjU>hN>~j6MWklW2QFG#p0hj!%bhx}>K=28xYKUmH730sNYD+c{I@l@xh{h|G{_ zCRILWQ=OYs(QJdE_@jD)Cl#-K-x2-KaX~u*&`|2p67`2N(qZ{lJutpIU`< zD!D1PrA|31gEcDlCjoMa8lRs!8zI$Grr4a~Q(4D=qq!CFnVk;+qUv|e%+4xi=Yt3u zm}bZ{xs-c6^C6%N`l_;l$uIjG;gv8+#>WN?D=x=`7hz2E0jAG}+i5<65FT)tIt$*> zLlHQ|CaeXek+;8by@ z0#Bp@??QS5(+rs=-|}cvE@+W4^JBdfJ$PbZ;&uzuhhah4{}l7UxFQ%vcanpSML7!_ zLDq*Lzr2b%bq2*o1GJi|Q+4Mi2~qg0Pg>q6e0C=F!tb6b`$?4j(;_=VrpbH+L#Jk) zyfN_AF3jDYT@dyti>O-8*|ajQ6sHzZ|2SBM$B9koESoyh4s3<9SL;ZkdwT>! zKP|+$^&SnC5eI&n`n*^jhV>UqQ@9bIoHHZ5hmWQ7%s}-v@N*`liYuhKDt=dp(Z_4HWE+<})PP z+*F-Nvq`5dT34Q=Nlrd`H6(5`~}%3HmHBGQUddN?UaPvurInN#`*b)G{gQv#|u5e9&NslW!(W?LAlGJfUp9)!u|8AK%7nz zh~r5DyTY=-NhLF|b6f$UFWL)=dEVK?bBV;U!(o9q)glnbS_F25iv><9nOUVg=~JH6 z!vTz56dZ&Ql$xhek_68sGYKhI!{ z5PIX_!_s~N3*nCcO$PsX>);BO6S5Ni7{ilruDib}dJYdvb}^-V5^sbgq#mz_OrO|p zUKcg;T505!*eI{NHs^I|`2ZX}#Fx8K=D`1sdOISC{qL&Z zDTrW8?2GP!n6>W#iz6py6X3cBftl$+Gq@aej?H0h1ScXm8No1uQ-mBNa<2MG=2w=+ z_?5uVf-kP{L=N*g2w!@W%|q}wK7S2bak&Ch{ji|; zE2wBp-U)dyXT_Tcm!Y1qzrdBsM?r+}J8eU;R31%V(^LM+(wqqXY7f5wUUyS>l00`? zpJ0YAhT};%G8&nI}%#TjiZ%UifwlmD^hGj`?7BQu)+*aQ^rt zVqq^}>pV@oN}f)S^Avm*hHh@$w@U`rVS}IrqX$hn@^yQW15aSHTq9qP3KRKylj<-} zA#QbAz`NaJZ`Pv z(K&2nx9Bn~j)%{(l<6iA*FfYNxI2kJeH|?R5G}-?pdA;-dp#)J{f#6 z_KeXr;XSNH!+{6DVymtdeh@;H9*5Ze<-FqN+T6#!>@%;W0)3B9!+Qvo<&DOi6q zeQo6(@@@W4=$wUz*=A|cOLYHvU=b)w&(C7%xeZItZBd>xNaJN;`cuZuwqwO}D@D$Y z6*(L4M9r2oYtJEy|1-phwfUoMw3!8G7oAY4_H%O1ZHM!Mm~$S_OXY=gBscTv|DuUM z?-L$^VG~v zHLDGE0q%WTN^5kz-?naQ+2xBZ5&lmt3+LOB`x1MX55(?c?2EsqZuW0~01pgSaF!mQ z6GBqhxH%v4?eQ$|aQ_Mk=TbdG>D1hzBSsz)WWivQF2ftxnC4+HUfjyxy_J8?41etr zlt8A8OaA|k&&+u3Ej=^%w71Mmr}itVwWW6kksxdAqBD5Ncpv1i_G^%>r5$m&pT)QJ zn0NCcGYVt<8^CP&1Z4fUa50mA2ITNejE#Plx4I|1)K=uhK+1`n^YLvNx!#?@Gir$a z5@T~O==-dnc~O}8E0EP&Q1p2F51WgTHSsudl#^++!RYFApFeM%bGeo^WyUEG_Jrtv zz8}eTU<%nd82=8%KTMOX1pejlZxsLb#Xp9PKn~bgn#dBLl*ghkJ~r#E<2o@AEv8Kn z$#qW&LP}P;hEj3e&xtB1=qyR*a;h--v=KFif!iSRNR@RYQ!uSm8i3@U7PgW5gy#PH z$UWXRZR9>xs1a1rb@di78Ck#t*_r#5%jf(*!r7$s{{@wUspx1U3MB`TbK8o%9(7X2gEK|ua8_zqlR&t~S0BW7 zw3Z9`Rv*VIFj`WYe47kIft56WiZol1X6rU-mgffVMhDUSM4!GKBxc9)UqV4-lY4vt zk|}5DPqvmugOV~E^#5E}UDD@VMG#4u)OE~ipQV$lo;V8UdVqwxtkc4D|9z+x}iDgVC(rv1MPgtY=A1mM*OPbkG!=c95+;fdCimP6V`Picch zih!Pm_M@XNPeS`CXg~Tyi|vczZC}h{(oZ8Y3{)QGCqrk}#xu@RdXag00r8v6lP%Sv z6zq)-SkJ!cCQf3T-WN)l%W~UfErK$UeYh92%o|fT&xGs*Tv7T$e2+nfrg)9(X|}AO zcei+C9F6HP=fsH>U6aGaPu6W5vCZhNJ80Xf%Q~hr#vrsEZq6Z}070dvP71)%m1@D0~- zN^iIr$PE7zs2+StZWzj}VXZH-wjNe6|3YBhs}7#*VjO&tm7%5=imPOUJL=K79Ka-S z%OGA&kSXXjcF+Gu+nc~wU0i+KbN@HFNiK^7vaksRBwUk#0*dT}MN~i$5d>5ekVUpD z3E*;bF>a`c0@khW3$C?lwXG{^U9hdzTCLWqMC;OOZMD=sK3x>w@9)h2E&;1P@8^B< z$(@-qbLPxBXZH1KliT4Eku5XK)Uv3JBJ+K7 zId4ega#^0fHq>m!zRoKyQ&MbQ;dl zW%L(eMw_RWm6g!~{3^OKS`|SVtYkQYTzN5r_@Hk^)K)2O4rQ^Wh@312ULSN$-_(k? zGsN2>&)Z`0c4Nq!*`%yNWreN4E9FcP6Op_UZZrPt`GDIkt%$D|@g<%()0f)x%^`8K z5xfn=ZFnWY+XASBo2ORDCAffSQVaY_J|I6OxRQ~*HMDOH?b~E)4$_e_^h1@QC|fU? zwQid(%%S)TomFmOv&wBmz}H^LcU2erP)qE+ zOI2PUwf#K3?D{zEx|Atc^y8Vu?eHv_-|O8|rn;a@O=pTl!{;hY z_0n3`b=#EB1A?BNSXYgzOk5gNb_;-eeI8RCz7hF~peN^MDBkS#n=-Q^=Idu=uy-p~^2123V$Ns0=vhvKohVdh0#syynxJQ8G!c{kfX3dGk!C9)>cgTs+vlE8oo?iHw|M$V z)%paF)o^XY9>{Ea5Mu}G9PhRN%r^{A$w~<^$>Tc|)xD?`ycZI0!+^F8Heg$<{vY~5 z&I{Q=P8f^Rrt$Dhz;M@nW@d~Nb@lL~KZXyY6Qqw*|>?oA0*NtKc#IDAV#IY;3Sw~$s z>=*CbtdO8_xGK}t>$qi{kG3U;rjQT~p4F~uT>2!s?3}stBwnd-#_7$?&x%0~=fxX_ zNQQD;Yv^3Gmt4`v7Chg{%7(_06$HncpCJy1a-)f{uv4+lNK_JHYn%^~-p@#Hov`w* zJS94Vk?exeuC{AQvMY{G1%|}TqMO17k{Vx^u<2P#OT46xcQ0%JVpxHF*rLCu8+c@% z;Axp$*|uRNtOvzb@T|@36!U}`z(BKqrwn8%lyXVErChHO)oy3F6W+YiBSAH6IdjxS z?PNDsJvKAeDR$T0>fMOu?!DLF$6@f*9j@t{_QtBwd&50&@ZNAwSE0Mb=%WzrE8Rzf{FKUhN?w#LIm zp>stKipsPGx17x5X&^i*63gh8STW?T9&{7^@YDKX0z1tM8F9Wc%0n7FETaPraX!BF z#ekaFu=hx1=#>~jlaTbH1vwRvOB{!YCr3a^2O>Ovb?t#cN>FkT{_J>_7V4BlJm~pF z$kq<3KpvCEI$u5aku0wtZ|TfeNIH2hUSjq^mh)Lj&l5jomTt%v%>+xoEcp(ULl+u2 zEWtO>gNlqkN@F@~5oh5qXp-i+tXZ5uJ+(VVm=YD(DHb%z-c`;%YqzW}p>`m?!~ey1 zJzCm!DhWzUOjQ&TuaqH*+lJNQgXGZK@lYJ3UYSijo*sr*F7-I6uTbiYF33U!c8Uj0 zvUimqNVA+vJ+8+BC=SXU_6AGpDoab&?4y>uf3&pZjKm21lQa>aDCep}H3cohGFfU| z?kay7p<4Fo#3Na|d>JuC=*pu#)UFHTZ!?6wDInu!~}rK!5uRoBcFKVL=4t88hIMPhNCK@3|37C z(S%TPkm7Uh--qeNc|9SZheqPdl^>2CtqK_{MTzN<8M=!KO!cMs8z~cro%W*% zYbk5(U98*f@tU!$59v>3wJo~s%1?6wl~oFiG!jkB6sFhzbi%ir{%@cKME}=fh5CP= zcvxMMU~Ph7^LPYk;KxRnq@opcbSQApOhE)4$^FrvJ*K0kTu8(rk%zc-v@Qf9uXXh9rD;mPAkgu{rc3xH(S7BCsmdy$yWwMbKbBN)yBIjMK%jqaM zKQAiLbKll^A?-vH#~G^C1@@I4%UATLw-Q8N+=4}397ZN=#hE-FT$T8W#9XK#_xz^gMimrkeriLKBUWbXJg(Z@ZvL)~@n5GsRy~ATl4{OwsfIu zq1YKMBf^V>xnh^|4vU?whp5z@dY5m zh9Gg07%EIJlod@cl2wpijHTrRfwD8Ou(S@gL})xJFHl3Vr8pRhEt3^ZFPAr1^&|w= z3V~X;+8<5^TX~UJTm!GlAzV=!ytfU8VzJ5rK})G?Y0o!)L3oRXP*#m!59{fIDpw?F z0`6&-C%jwZx;OCqd6q6CntMsOt-jb(IiRT`zJs+ghD63kP+X?F(hN(wl_XDrI!Ejo zV6DOx^!(CLYL^8m!N~!H>^>4}FvKrBVj@Th&Krw0D!9@@E8{JPFf8+_dORC`J@18M zkKz>D|~F&xqprQ=su_ zf#jyR%sd3gn^*!j9)(6~px=#2NEP-k(5FA8m04C?$?RkIFI@TZ6~I#aazAF*ed>P^ z|ChvP0bINDd+SbO8O!1R@_8h4$2{Win3uIB#BQJO7SgtiPY5@xW3s`Tv<|J*>8&{( zacEc8sequ3`9VdA1{myAP}ZrCpqul8jwhD*=sb8jE<1goelLX=hr+7E6F~{dr%mg+ zveLr-MU89FiZ;C2G+B!iECxsM{yNvt>eLZOvXJvsQ1oTp#-GvQN{@d1eybb&JL}q9 z*T&O8IfGTa)3LQD@Ab@{&~AE`7~igE?VTJ!Ixqa+^qj9UJ}RrU+QvBKW&$*l=`0>) zIX%NTRhcNzn8*E!w1QL$Ulx~nv7`xCkV<1Fe}`^fQW>&ienD!TJnv?zO-kAEq3esOC%i2M$|CQ%-A8!WTc3C<@F+vQRpzauy;U&OqIdLGZ*SFk>u6avFPKI?>o2hm z(d>qF<9Xa%Z;t4y_&Kfp0{IzUac5SD3@@7X(|v01SAd^-kwV$@3$@f`RBPaXhP9+^ z*B@%SCcZ}kXZ(L-{W8!;%vc&9L25h~J$V>cVNw{4(CpJQ&C@cD>nd1B5ar}5*!6tOp24%f6-#I6Lu8uo973F5!z+tz zO!MMthTwLOf^iRaG|d1TyCBW*8M{1vl-W%lEwPq5#ytu_{>}qkfhEZBT78JA57m@N z4+ZJCtip5~EWKn7cNUN`|CGG_rx^zjB4{bh!e55Zm-6^z)M|VlYj!lvnAG@WXlZ=T zGFyXNzyw>V;!}|4lMavYbIEaVchVK?6B9I`rO zd}_Qg;KYum8K+_wq#0^rm!}!XVmEoT#A%*4LA&$T?(2AyXX11swfdUnXn3=b&G3fW zGCE^9AYFP|CgI3lW36+&@oWFk@o3$bOnQjoL;P=8}%zbQ-+8bAp>S1P2%p&`E zWRR-DtvmPO>{hdjX+Y{{DDjzoM&#&cIKRbgt~;js8O8v$Ez@`c8<>7ZR^D_Fn*^=#FlxQ?@xeu4DkAlJe5wi9n2wD4L zA?r-$7u7g<8yk~XP7_!O?x`}o(PZihNZ4fRN*ogRD(tX36(yz_`^xfPk7SzBBr&J+ z@;1IqGi2>5|1i^?DhfodhDdfEWn?TqGmL8p@jYqIyEt(zzW#ip>Tun%0$LT3ycacJmZtRE33EbVafD%5Dw|h77@qTBvhQCw?VS}2QkrG8olj! z66!%p0jN$^-twVhL1#GhYJ2>57Vgwo!uU&`LRI18Oybo#ppz5DB%P%iqekq4G^1hc!Zc$|?D8~YZR{qGt|7PDF+t%wHR_|gBFO7jo(>{G#-fvW zGn-AB+HY;njb?#2;X~4aY1V7T62NBXU&YcvOz|K5kh><4r`Y2~v`e z_gIU`*LiRrq?AY<-}{#Bsq(GbXwUk_n~6}?_#jl$3iBAoN$C73L6t_gQ{j$Y3@Oq2vSnr=zLy6 zf%AC%TG7ig0=Jx+Ovq-&VRgjV|?Vqe&<)37_4n={;oe*J*R!Qbw z%C$9beNUF#0SwpZL5tKvSt>@Jhp=)zXwKXBpqc*jx*ufwm0^(2>p!FJ4f6CY)4^zh z(7`yYHZi*icsBa^AAY|g@5h4|r0TQW-3~kYl4We&T`->bUrGi?+%DAIfVFex2C1>& z4ttO2wCNV_r?lXxt0G~2h?d^fhiHhA*N2D;h8PoM`LFyk#DJ079keNMpa4c0vhw;6 z#e$Cd5T6+Pl6ctz!QYsq_P+jml5Ea@mn8XuOeo@m)=5d)kO9s`(*T+HoY#xlgXF!o zK(>B}(awe3$GU-)s!e3KUR93`;|2%Gn;t*P)8j*gY1g45@dMAH>~lRpB8CGQtE97;?4NSyMy6B9sTETcRi{74NaRmC_v zZy8TMJ2+%`ruuRUAQvl09SR@Ndjai#eaNpAGJnrFx@P|M0o+56@fiK?sU$d)=l54* zPKEw$)7?bUuR9<_R!#)DNBJ9n3{17p3K>gERGpBE@u4pBkH_*NB!6NAet>f74hd35 zyGP^m^sfvRC8=qp$jl5C(^i`zj=_S)1N4fV+>VJEhb_$k9fjtnOD~qCbyG@XUKc#@^wbehj4N_$qPM^ z@}#++%E|Y!qv(v~$XAF@Y1j`Ix(rUl8YX0){jZDZUUR%A)-WaKcYYgc~21wbYBmhqq1TX(`-$)r@NpB|~dA zGNDY`uh(CYU}npjg&nBsH3HP7>S~hr%9pyucZd(j`lhFdaAEogSv+2hm3#sQ(ud=c z>dfa!vBbWt0Y3xCzIw0fthjtm!$QlFPZ3O=G*1GjDo}OZ9Ml)1@wAXqN+Ykn>=}}& zFT02M`a-qXEx=ccwcbB04$mm5Cb5&)rbXwBOjaCNB(GPoxFX1X6uZDaZ&T3tED<>) z(8xLng%|)?JvNy$4SG6i9n&#_Je16_plJFiFjzh!UixU98cPLk9QiZY>Z*cmU+Q3O zG_~PJH|EOoeuCv+<61bc`5EodTTUA_|B#D-+$p!gB9q z(+UrYDzSO|2ypCI#lT^E$9N4=Gb9w7`SJ8@G0!fQ0&44d6;dG_3}EcV0D^6Kt%|>i zWuI=hWtH@F#i_I?mGK>SlR$<-7~i&@9`K^D^<-(Jjv-dvsT4gqtTD;w;0w>es5}nZ z@dUBwAo{f&bPhRa>90L8lgzVk$^X>rFHGL=eC?D%V|G5E0Iv1d6TRpsb?HxgU^!Bn zESp9&S?2Q<|2>QfAhqOefeGArAiA-&xAD;aLpF~%IMO*tskB(R8Qg{gT$U=IQmn9# z-qS*-W)hxOR^gr{w=`#;SNbP{_%S=JynEN^&LNPhc05*_SmlsXG<_WI#PhWK>AAR= zHxAi5NXgl7H0?qdzFsYES^7l7s5_A}C-gC{$iCX{u~{t=r6l9DSn}tTbB?BC+V0CQ zacIo{Ja&J->>)-N^E1(9oOLXwcBRiJl^xfq5T+EsuwT}$^1o+>{fY&h7ofvuyVIO6 zq8XHFtyEo89+3PMNEOK!G3~U;ujSBa?m|(OwUvxYdjP@=N7dnOzq!ggh zp6p%a4D0sWa*?#7aMDZ5%UAWpd_WxB6tgCPEedi{>6B`{DXesog63;Ve>{ z(3(YB-Lz@sXj_UDgF2J6Om@>^Or1%(km}HK8qc8t>p+t1yji3oF)P(95?xm8S8AMl zPAih1AkAAXy*QdlK{WbhCXOdxTI`En*RKr?=i}X}h_2poPqKpS=dZo{^h?)^vZOL1 zE?bombnQMceJ>{neJ8Qd_ad6Ql{kwMJJ3esMs%HCC71&YSUhBgnP`!wY_0q2*KGa4 zAyKCBYLL~m0#l6_mA|%y?_tQ7mP=NiniPeW%TKnIpnZ6xEvm8OLq?JF7X)~Une#Qa zxVlGZc+4iVR&n(mS$&9`@QlrX#sbFL&5ihE$0`-kGOnuRn;IMZ9G(5qbapz(=q!bW z&Ss;WCY<)&Vee$y9glBYBk*bxFzX*)^OqAl#~)e2UC}GMUdL2$|2qLgpij>_eA9>TKZT z7bN}-Q+MB&i2!n*Bde(yQ#(8x)r(wAB0)+4h$<^jRK?0JzgS{g>?q28R5N5jzM+%b zfEgzX-~Jn$8PymQmU=7IT=e(VFJ~t^2cA#Y{g) zUukwUeU;e->F=9en7-Ow57+JIY5Rw&3Wb*_InM zYXh5_M55`9c#}sL%hEzIwm(y`2wJQMNGJE8y);vN>15Tzl*%+K007Z6GjZ&KGz%cu zg=yA0u%W}uS&qUqQ-2)g>HExX@>CL+cnt{(KjCEgpmpy*=cUOMn8;z8%xM9lY37vJ z1!?BO*oA3kl-Q)nY!^p)nprh=laH)VsVFl9Ws)MTn5}bvOj-qr-joYI7F5FZy&gCz zQ0*x_(unDgPiPbkE^c4Yzo4*fZO0=2={u%s#T7-mC(8^qR@^?;z9>_ zC&zB`xcZum=nBfvEzo|jV|l$4CGiabbX90~g(;wtzD+^f;)7Wtv1zIL;S>4Q#Og|l zcvZh2qm!DVXkoHij=c)?*h;*vQ>?B-Q55J6Aa3a7hvfnalQjwmDb;2u?VFFi8>NBy zVfmEy%cI1|%kwlqjvl?_1UO3rXVZq7Stmo>@QRWXW4{_~R|mX`bzU0E5RJ2Tv$;<0fgXo+s} zO%3FrR$& zJ7_X<4;Hod#)Ra1N}wCaok}{E_~Bsa$#^Gb7hG&)sDt`8GW53vq^6*>IDNIHuo<&s zagex_aRxughEmtoqlBFEX+ zvZHz1H?Z?J<{96Gomw(KFX6vykkPACo82>*cWRi-#FGcW^scTZf;Klz@xC`U=Yd3L zCKv{&$4*~mQpxlmOy#Ah1bv5QpguoS7IrtYy}H^U2l)A8v7N=@T5;W8K1b=)_a@tF zBNdF$gOt=bd-=MzQ0ekx)87XwEv!2%H;=m}zq`N@y9}sh#FGmTZ|dBVIJS{2nkR zmr#LyeY~`tAJwv0_1z-)L7mQ6=tqsQiJ@X5{<21QpdL>K{mt6V>p-O4ya9_bbLW6EbtCSe=~hhp zEO&Y-!IacI5h9qe$uNC`6Kx=oh< z<~38U@2LU$0|Esp1u*N9wX6JJnS~m~g3i0pX}jY(5UHe|(Ns3^(!!$rk9#v8+XI7U z`al}o%;&>1!sgK^YK6fxxFbkPf-5SR{&V4e7HpD~nR>h=%!1#8!4{k9?Gak6r$iVV zj%|W{{?vytFwlD}HpZq#TOMcp-wOR{SX%k-3jH_WPw_B1pJVp|s}ei&*B-~d_#MQr z7jBgy=GoUHMO06nXne1-@LP!Nw6btJL6n8Nu_z1kSsUy^7uWb8JwH6}SBCp+XqLEgB)*@u*bvKF^u0^PQ&r4YCJIkj( z6hR;0JN0|yVTd*#Z#VQN#12xz_Jc0?vPYIwfM^ zu)v(Q-LLM$e~~(Q5cOf`0`N%VA@MR$b&h=9!0$%8#5T#32SOqw ztHg_wpJDp2&|5>5#7Js%U3c$epS@1rg|~;xl6RZ?|6T5>cm9UlyO{#TEg5O||D1by zx#T&`%QxMWjrDC?mPjzA8a`6Dd3*W&Zeyk_ZTV~^DYNZuYfgKFhV5y0_~cJ@;UWqg zZFzoOxC8#P?PhI9W5ZZhB*m=aQ7*n+ybX$Ny>x+=! z9D-;3bLjILa+X0|%%Hse6iMn>>lTYa>OoBZoo|0o! ziyE2;tSxM~0L$XEjL<@>XLDD@DTtfD-fyZgz3(blm{(6`nZKuo7GIANt`KpCjqwCU z*2W5zI41E67hhE^tX>?2pBm%7z+oTp02;{Fi$SUvkKmK77ZanakE1i`+drtTN!Wsi z`VpSlaGzP-cnoCf#uHfDn<@`>yZ4ZOiVzCb>GUwVi5{dL$D=6siEZBMz=Ov)Fe|)u z2_G;P)^{CdhzEulPs{S(0B4xN`QX|e-7Q50FwBsZH_TA1%rK*P*d=I$r$0o(vr^pn zAtfZAk&l4CZb4obRl`EAmejc6rG;li%d=C+cW=dxUs+TDLz*Vpd4=5gDYQa9^ffhx z)s&Yi&%kaU8xL9Z7eg`&^_Fg#>DwpE5arLX++vO99-(@jOv8d~xk=z2g1+YRtHz!A zQ+uj0>Uw^?aEIk)8{9|r5`1QC!3QJUKdekVOAwm-IhM-Aestc?;kI4I^z*oQVyl}9 z75Oc2tANB`A(egskkWD}rA1{d@C7CPD@F1|uB4)AnE46lb$j9X6o>W|J&p(jDY@+f z?$BE0BL*o2`69(bZB*7@0Bfit-h$LGF~93jM*?c7^K04ui}nn4IFM4iqrhg?3Q%V$ zJ1>hBFK?)mm+;?dGg^8xdNGCM@mh+PqzQ+yExjoeZ1wu6QeM&vBjL)Ee?u29oYkEMJ?kEYlC`I5 zDt5&Nt34e;zuC80AwGq~L3mVa)!^jt;QmV%W?I*-m}km+ioEW*^EBF#q-bjh)8tSq zd=!pw@7F87B>fwa@`^7B5?4#{7a8XYU<}bDJMV6WDZa$+X4H26y0l4^5+Rn7YUF~H z_^McHYrvs?q)zW|(_N;3!r7r?NW6i$N50{emv6lCu?GfT`55Gk)s394OYzFX*dt$P z94zNNXI`JeZ>&ZdW3pv3#f9qu(yw-zEgS0)@U2em)uos|o0ROXa#ccv5(<`4GY#{| zt!>)a^!B?%2z#Wl6g~Z^Wo3Q9>0OuJ*qOPE{C~qw`_J;v{I#b@vKQz+!ng16s0CI`rH+;4yIK%5vp6q z=ZXhL7zkE9jX-(&u8)$Q8+|E~JucPI zZxm+_$73W|7AL(s#tJ466EymdKq=M5XKq^Mf+`nxX*J~kop6zAoVV0-fJm3Z!fLuky=x_-{4lP zpeX&GtfqG`J4S*8%S^Q`Q-hRzd8hmNRQ|OI^-tVMy2{uv^_?MnAFvgZ;WTNqtlGmE z_N>D5B9t`lf_VDh5TL!77Nq`#OQUA_B)=l8B1w=xkQb3dv-$u>_$rmy(5(JHvi&#X znbqH@f=6EuFAC7CUiPl?uQKbriU%dWg2RElTE;q-AP?&TmKL_<;W-<-$X8<*3#Gwe zfLmtV7V9MkJELSASjxWpNBN<))FG+>E=EPXQR;wL* zHpdY`;wD5&3t+36cYMh(okPDF8UL;PNYuj|r=+98C`dCC&<1~@EH=qwW*4T5WTynh zV|?tLa?h_LzdrobL>|nKkFrlyZ#G-K*+hod8INVVdraxO8^-CoV_cN=(3y*~CLs2|*D!egvdD61agrB{IFdC9&( z&R7X$WHm0VHCQ<=!03<0`@hP2^M$-u&tVmnj^boH=oBa0W0oW?B6+>OUsu8xc#?bJ zS53+tu!o=V6_afH>JH}&!&lYWGx23)tlRGtdmhgPuF7rrfpt%;p+{X4y88kd8?HmK zjVcH6m|ho&af!54^kW6dj@X5D!wOBBHnrW0OqRAh`0YjE%@RaOn&OJQ6mPY}bMJe5 zRcVCA%gFJx^ya-{N!~=xyoFlh5=Uj;(J8dI(7u%JgTy3COj^0?^J)0+EW52hrmQ@s zR0_+IJm4MIF&-Y<0B)Q>w7x!_xD^B|@yYS6shO-nDozZ&D1J00xG2F}(D6E!<}A@B zh3Sdqc(OA_wJ$|n>9mq&hdtZYRu|i0PpZA*&^Xy)&!`>tT>Uacy>`NH61;4mhs}JE zz@j9(c-lF!8Xi?qZ^NM(-ll+P-~L6UE%M2(;D&un;BIq+UiW&tD@a*w4Ygu*)Fkt) z28lzEJ#jIaTeFTz&-3>2w1o3iefdwAj5QmAlsGXzug`{GWY~#j(pUXkrpm{kry=!w z7P~{-4=g!36KB!Uyc2ulo$P^uD0!m3ouTbTwFJT#n_-utX1(=RueC;iI?%v2ZsJDLWk~* z^buj*Z|#cAovdw;m!1*Vj5C(p2dI&=6v`jr_53!xjfGTK&TJ((xf1t)65>FMUWQD` zPBPevCuo^#Ywl_I7*z$U6v>e7d4Ld&zA|o)()!P-aoEdZ_r+TYupJ)0b(NvpTM@32 z-gxZZkM8xvtlInTQpwz)NuZ58gOt1)ljzH1b3P`X=H!gtOykf@T-X8=9J8Uw%BzvB ze7&r_7vDqU5KKJH@fe|VGRDvaCOAt2y1W`0pvP-QOU<5%-eO{9&?L|gdi79+fWxU4 z9CSL$hmk;HwaPY|-SIsz|q=CNm}us2lR!!X2ND^DI;HuiE7>yzJQK@ii6xT@@W zrnbQ9A4S*GXcB%|f_W5Q>el9lVk9OKH`0`Jyga zd21Sq0uilgFy^zjRg8*7=Op2u6<|}aoOfn{J2MB{kb7H2iRR70qK*{{4aAUjAVJ8w zFE2ab%9FL}0N})C66#;L1HI_Q;~{u4W^QD+#zGI3{*ky~XtNNS@UC)h zYIbYs!Qi?}kdg#-rM73|fr{*=g1wPuOn5;(6C7zWW!qGLkI;xS~yBg5AiF(w`&U&t2+|cm;Xnm;YNKowQ^JsFKsJuV{ zp-EN5`>kVa2*wC6FK{}6c@Yyw3;EJ;Uf>@YpMe)5&6MRY79Jxc)i>?EutP=}R4AhL zBoFo8_<#|yo?lke{m;UmhsEDVVfM0}QQ;aJ-dqq!&%tKHg#IUdr}9`l?5)hY+GB#0 zAbX{f*`iP>wE3)RaY=c_8m7T-3x3a$xT{6u?ChBV_Q{G$I(w2#s|5mms z%*!(t7W683zNC4g`nR%k7j930Tv#tolwi7V%P29tlb}%U+kQDfufWFbBJDi9xJauu zKH%0`&?$F!R{a-)K6q91s%Pr&#Y*O`Y6i4&IUaerD;(;BOyi!al$^V#YE=33 zWQD!Zt8y-t**m?sS^JBpr6#+lx>(6DPAJgZt**%EvdF46xudaIlUvN&GOVW*yjF(9Y=^wt^m<0OKRaWNJ$ zvMaC%S5c~+$+!e};$CKe-&kHn0{Li0kZ&QT25;`4IPQQ5j{xgkur673Nx?7GAcvjhXmH`3+l0o(<5}`(B++2 zp=zURkW6B&JsU|{j31d3*-L1HyzL)KTM2Tv!9DZ6l6WcYAHhR3aS9Nm)VFDj>gnWO zg$v_zj40=qPav^M@%`JIG`tr7Ymx6KHAAkWU$fWKOoYrrOU8aTNUcGcsZ*p;?_6ch z)j5xboU;*U;#sC13~Q_n#;xxmP`tQak@Nwg5Ki{c_>*vN_VEL#%&_fB&S|>4oRgY1+yIacripI@eHgoYbz~CHK4cj zI>XQ6;N2*1NsN0n?qR=%;e0X*8}>TV=6i~tx^>)2#kPE}NUkBWy&SMs4sBGNiX+^p zkZ!b5(Jb3P8puY)J(Rv3=SM|a0otgLy{o*8d6JE@6%R_Mi6lqS#W?%&%9>iXSH1LE z9uoIL&jNkWuGr&fs_}FpC)kgvt@hqcik`TSptd{MNTX}69MHIj<~**~q-kI8XZwRx ziS1IVT?k5vF>Nh3$)UrSX&m8^8838k`Ya-bLURk~M-uu{(&Y**0lEbwdslhqRzer+ zUeoSEdxeLrNsQ!~Ahq;FGSfn{pi-TQ5y)knv*bZaSsk@=vCacl#JY^oJi5f*U>vS< zG`ovicM7{|If-eZYdf{;*e-Fln9|*xb8sN1E{J$J+v;iXjGSD^e?W3_P8!k*VE6bVDL7blb2@*}1zUfjNyp--LH2&xKHxK%Iu*(C z_FN0>y^MC&zMex6?dy6h#s((^sq=6RI}18onXv%^O$n{x1(?a{bX@+#=z5h{J>hV^ z96IT90gkX;5>1`-xlp!$$dQviKUUGb1;SjYCO{{BWbZ2HP^&MxiU*|)B3V$|N6v)U4hil~xI>GJFz}wZ2uh6)s7=c3tQu>^5<9CK3HICfIq%}c z#rUcp%8Z$Je4HI)oeP6(Gk64znSVzfv^PC&AP7Bf#6pjytXm9$gT_tZrnlh9K;U?q z!;5hSDK;uF+sNG|sWD`)awQoCKLdLwuVmj!~k+C$8weL*b5k9xVFs*G5of>l_{=o3k zlxyVt*_$TGmzYB?Wnbgso81$^)V4^h8+pObt=?1Qd2)^F!Erem{`XMY)g-Br?9QT2_g z>Eyo{zYYAD%4h#nKRLPNuI1MYcUV6!LTllfAO@?j<@f2$fyZST4|8aYH-@--QSKQ3 zO+(7`GhpbQfoIK*rnj42o_^ZwCLf&mDP@H#*Mj`J=zKu;S+X*ke3q)C-Lfqx-H*Wv z-5*GUrB%jYmlJ`qeI*uUdv1}vLBKUgU@mN$d9|6>VCG+=Q$cBFx zS--DfNq#F%drhG6MG{Zn4oItV0+;)6>Dj5kUB$(UX zVexLk)ZC5|Uc2LF*x_SOcrnh9l{dXptZ;f)%Pp?2Px~3t_8cYYwc~9v&wGnUt@Owa zZ;jX{h_O;;q6PNk0Q1Bv(4xPVxJPJF;!0C-xK>)_e)Mu?t+dF!_vh?;G!lw;;ytd` zcm`$ldnZAmet&>7Prvs7qTj__D#T@7B6sp|a`6kZm+OUcnkzJ!V*L2hHejh>c*f5R*=)l(fK=#5#`XRB9 zdH}PoQ_%EdgXHI5(J0*UtRjT|!s6oYi`$I_xEcw zN*?_`EX%(ig8m;>qr-t(`J#MTyUKZH&yPqH1tQl%gjHbL8wizV9)|&JF!U|H4E3{{8&6(dfX-=)TF=_y5*Q{p=WX53=2zvN%>zCPTkrBQ zpRqSBaoWDfN!W||p-~43{%)C}FhRFXe0O=wy?uzxYY&zAt@-hDCg%f^^n zKB4#Km>W4kX+3}FS2JVorqg7upCI#}XM8oYqZ?CrcgL7(oK;P_oeSlEd%gT8AN=m} zj_&>3obAOy5^RFXC^NJINUmxqz5OcpP2v)@0fv3xSIwt=er^tQZ;9x~Z zS3FccA0O4Fp`-iR0#S~}6uK4q6>k2-0H31@Me_#C=iLgFNV-GcUH*!>pK}e%BAZZgw6j$Pfs`z!Q(D9|4egLt2_ySkMJD_<%wxzTN@oB%&H?#~4(MF(41I*&5YCy<_N+&(8L#V;^x+^2)9 zrwnn2t(!G}h&yiKtobo_)#7)T4|k7lxiB@vU53vP_j5BJ7$Wzt*3MWv#2tN(+$95L z9zAKs+Tre%3xz)doYC&XaVwIe-GJFElEb+bFlh5=*QL#hU9b5ml~Q;vB!%pGg>sNG)T>gY=(-2tYb^O1D8+rQz$RC`x`(pNKwyPD}2rfS^ZV$$SK=1R}U znJlNHnThVbg~9TP?*7fe^7gK$mE?^Ux*D^+8@QmpbfQ}^Sh@fA^QGqtP0!0M?;0%i zQSHRTwt}x_PI6=Be9$<_orM{56=*x=ip^YarF4Orr=qKvd;MV1{PXeVHuI6=MCZ6; ztEW5{%J>GQ1)Wo_2DoD;w3#x%4L(%nnKNYWwMgcq1C+~eqm6OyqoHa&BEv+d@Ccb> z=E=O-B)W87NBH@(alU$i{2$t+)CV3e_g-kD+Wo9i?!B#U-cDO_1kc-v=DX(8*UHlG zE|O;cwoaHgpt1I@*Lt~c1pk)Et;Z{mJ~>XU#1-=udeUVz8mG!XRO>Gj#pXjcVYFEId1AP zPcNV2dLH}q@*(c;l&-n%(ba=C&viFV8$?UnuKiatDW6s{pX%_{%=vD1Om%97m5@mz zMF04cWWHzSnl<7-L9CdYzQ4>vjuM{-nfYt9+TM+yDh=PVOxmc}G~|* z<@-W&pLmqq)6Lz88FT4niu>`B>M0fOwhECcZ$~%0QT6ejc{eYwcK0?)iZ@nwX&B-PPgM7E#*)MuUEr9pk+!?vVg{XT=onhAeeHJe_TeiG=n^j3n@ zQ+IIVXx(SyrW*$8I`KI$ql^m#^$#K1N}#_U?8Ax-Dhb2XZFg{Igiwh=TMR1DJK%&l zg9=?cgN{B#R4A1O-DWgnj4ICJS6tX}>_WEuJHlND_uzCv#q|1uZZN2Xv$BGg85DPY zY_W6PnvP>XAhmw3g!EpR+;Qwq);as32V_{%acpm1{T*!aZahvj%N?y1m|qPMW~Cc$ zn4cFZtg9Pu&_1z_W7+NJjbNqs#X5!U?GE#)uNKtH%`vVIIaW|_R(H+<^Frb+chzo{ zK@pRv+MQugyAV3tptHc72$vg;W(t~1fHoWS(S@S9FDpusULD-QCv+UUg_~p7TfB3| zDQtkd3)wrk1t$v{=$*JE)PLY^aW_Vq2|IX^!fp?t z^^Jn=aJL#SZ=LU<+YLJX96>*D4_gW)rz(ZJ-7gHfV4$EMx>t;s_9qGRr|ttweaJ#V zkGn4o^NP{J{Ee&PuvG`w!NPv;1_si^#cLJzh8r4)&&v-KpKtQj9btAMY$0F&03xhk z(IfT0kG$um2GZHFriu65bffbAg`)DFn;A&H0Vdy{-0=n_&J>kDxw!_t7=|sTig$3+ zH$GCoJn|>E)S$Zz`p7Le%sH)MoGC6XbLFLEnJ?dw{l*n9;*mZC#SBcNVBPT^w3NAWT(2fsB&{1`rHY0Dq+sO+^DcQk#jBHO`8Or9J$ouU1?z} zB9~jd(Z@b?#7=7FjRqaNzo1o-TMhHJ#_^{vH0`)B0L2=iCMMl7kDcNcBa^A`5$WMOWMyk*ez!-aWqq{X0i7H?DJ-Kgrr z8)pb}OXOq1oO@tQ-MkOnWs%Pe^NRBn@7fT$)Z$$q`Im+LVz$C=j06SZY>tK994RRf z*Xg<9dTXR(flBhF@d9SOw?}#!)a#^t=<=9{dRbUxx`(O?B+>o{e7vkKxINOlKza1} z!jG377=1i4yr3DH2NO0d`gCNB#k=+5eJ^otdt{tJCol2PAq7$5Z90e*P{Ix?h(hxp zYy~WI&qXF1bYol1pMM)U#-MR@pF7=~k=X`4Y0$foV-1>3m%G#bDRR8ge70V1)&Dhe zLNBP)20yMq&S1kftOyq@8~PM|f0Ig$;I&XF%7 zrxu(IpA(XzvMbVLkS6bfHXCMyW0b2Rg~1l1GVvV8TeGp?27|6Ls3h2G(5(iw4em5( z_SwR07u*BHnf%duAEABlKtUVQD?DAilmSJnI=E{(D!nej!xoS7MOe4sF%L21*y;KN zj~lcOeeUF*;giPMRCK-24Gx~Nu=^Os?4*5u&Y<5LmC?a347%`q$BWGqgXay}KGxB1 zO$pvM=$CLu{R{qL(DAgC3*EHf6NC0P?H(2U&7ek0VNURGOMS;EVJ-;1u&~9(=c3>% zgZf!+E)ODwIr$ocXrao)|5BcIx>JKMmKK~kwHs~tD{5+^Hq-l2z z`>RZR5sWiwCvIj%CDO7cS2J~}NgtV8tZ!Z=!5#;|v% z>l!`5pofYCb&D=A=!l_$x<^ko=sm;i5nX1`;|BGLt}y5VQs3!%N0SDvH7ff=*BCV2 zpz5e@-*s^7$(4mJ5k1S~yU9vjZS-7&*gl8K!0395r}^ma-eAzLO}j@$?=a{DD`&H!cNz32%jvn%yYrxvqW4(oxqhBfUmCs7 zxV~V#QdklFv0=VrHQ-F1m7cf&saCUoPtjreRFcQfXh zeQw9>c4lOFm3w>1*+o@u(CQMNkDI+uC(MzU)0$Td7oBs=JR5VMd$0QAf-2`ZKe<;o zFgKWa&c6HL_Wq~Veo9*ZQ`=Zr<^I%5vCi$7E{eFl_U+dz;$BY-A;ll98-e*7LaW?O zrjySS_4uUggK?+waD3=h`$>~Nm3cix^X~4_Uc0)fr2fDGa^H;(Bd#|Zh`4dR z#o@s{;l4Wu9+)wGA)Nda895Lv#VFTUJ z+C{?$y0$%5VOE>jZg08IH}j$Ha^GO?gqeq$Ijgt)*O<9!fZTWXm-#?nnH$XgjF}G_ z{wrqgG;?gVa8_FAJi|ZGC@iti-&l$#8qOIOdZW3oF!wrh|JiW*n)}6lMD0T}4>vk- z!(3_ZI&(i^n0J}ahooEO93#lm;qEp*bC2Cg>nOn@g#LOSo38z!dCa7IryD6Lc znUn!05y>m@_qAaAfE#i967~JWt+;Ebo9uAzcNcDPlBti^%y@wO{c4lUhV>6fpF>1# z`m~3@jP=@v*`xnc_)nPf94Wqk{*9QiUXo&5-8TH+9w767%xu_4?!|p%zS2YH+*+AO zL1$X?dnc>DzlvGq=4^Ta%I9v7MAN7J2KVswau2#dskfs{PH+Cu@XtC-wY7luWLooQ z7t8#knZGdex96D;X2jjl-82S%#N9IbHE3QwLhg}gzKQ$G0~Fep8bP`XWZpgJ9sG9= zQ#*6-d2bHy?TE|%G`jm$M|Wlm@(v#kBUp*)Y!h+9Qy#9d2h#4R8+;`*Ea zLFV6N{=JV>tm{pp$JeU;X}415jMK!`p(lxl)7O^8JGqhRAz*%TdShX!>oE7r;ic|4 z^jzf{4hlw8xxs7OjTlI2?>Hjj7A6(<#DjRt(Ji{9U$5!Sr%w}|PwKjl7~;OywF=DF zMpcjKZ8fFJ%^kHr6#m^+)Rs{as@!HXRborsyQdB(^qR5CwU_#i88N;2nfWRe*OP0fQV(kwG4Sl_g6@ETIQ`GBR}rZumgth9au zwJP_+13!YR=8NQ>YvzcR3avio3^cQQ9|wn&c^_KkCiOX!)ZglNF6Lvk7lQv*Q)A(@ z=BLfP=mO<+!K{x9O5Iz>d|W_}Oq<|k9O$O6xP(|mORmH`oOY?yy?sQ#UIX2n(MMBC z4>NPt7`gv!?yKsLCN~cmci#=1KiR)% zvkn=Ug)%-ggM@ExqeU zPHR4m)_Yp>%cEsBn!7vw>9pownNOv;8_n#yMgH^6Tw~@|%qq9A=3uCKQ#2`!HB&?S zgWabqXXD$}3 z->x?Qz<#~hp;~obz@GCgjZr5SpF!KQsLj%D^s{Z%R?lj89X?kUJcqe5{yF#=YL`ND z+p4W2eOz{jW~fGASHbCjRxQ|10R>kc%$vg|=L z+Cb;|HvC(2wqU*;`yWTqCp4&_+?H^INX_iLCh*;wm` zz0?9c+xvBR*ssHmkrnRM;9c@1lT)AJ{sTP3+`f~Sc8j@7Xn&-Qj`;X|zp@}dzy1mS zwpG$bK7Ix>7?q8L8#wMnh?5?bkq z`^orVeMxkam93PrVQTQj&d-}9g0##yru9IfA4;ci73(h$R z^L`uc`0?AXju;6iQ-_SjeDmyygx+F((-uY@>>ID03{9E2QuO@Dh+AEudNJbEBMBXX z8F3GtGZFU#m?~W}aOZ2@^SNzR6}}%N_)ce`kzuFd||3=Y#deLx)*H0>{TLj zYnv@#9qR*+jLL8q8GeI=Wm|@YqqpVvN@$HXK@>$#K_@L1R z?QW(`8`OSwSOz5T!^qeeJf0`lcHG-my@)COV4n2$u$UV_FCTMvQY#~FOvy4R{JxDw zSyvXkk{4IU@ z#z;Qr{{+97@sd*f5_kMS)#yRTsuVp`@;0jq;#OrTzf_3lOp1z?pW+oIYV)hxO5Q{} zYrVrV`8l%Jw^z+=-ID(|4Fsd9YjJ6>yloNgvUa7IsdmbjT#oEcO%gpgGQTCyZ-pvG z$K1u5M<8!6+^;d>;^e}CGM|~(7oWpVR4P{%@Im?;*kHf)(f2RwPm0izd^Shr zs&(s>k3&xv;v61Vxn0!e3e&dwh#ePI_h;V9tcMd=i?27G+=3on4K738!O_czn@Kl+ zJhPZs8qZ|f=Lcq~oZMsPwpG9F8F6ovD0ER9_5PxuQGsIl_PjNI6r3D>E=5VPZPgvf z?&Zx$nqO{nl5Sh|LomM$=l(pL{F<9j=fON2<9Y2~ct&*-5PI@?y=o7L5Y=P1Rs zC0)U6Jx1Cc^PzLp4u2h{+RW|reVH(3-1n zi{(q{L1C@*oFCbX#csF0^ZCnkl4n*HN|NR&S?GZnxt@g-c1adeyenEk*SCUhYX#kt zg{pW6VVj4Fiza=aND!mI? z<@j4)d-UU>0}8ggi)g>8?FUwSlW zho&2Jg*#`(>M9<+Ta`t{WFvQ<_cYNxC zF&*8$9x8sZerr(Xh8T2K@muvBT$!8T!z{gWH$9A}^eWuqys%1lia}Qt7jND?rn5UE zgvx-ry7LYCW8{*CtHyM9*Z6qul7@lBd%L?0+75I_(8K*Egrtd{t|f$|v!3oRVZ47G zz981qE$Jf}zUO{5?)ovk+;awPamh0tBr6N|QP`Hw7cZOGt+(rJ(013c^VTuFU400> zJO2JLech=B`Es3bXL_jknh{%rggZZk{=G=hrYvT;OSnf3+HSd7<6a3dzfAotTI1df zq14pJ$JDs@v+=eA)%O)=K3<)B%^>OQr7?Bxoe(Mm8sPq7kaYI?nElEkYs4tASE=;K2hIfZsz7W2v2VE2GQ+lv);pnKFqE={}x z-7{It2x0GJp^wHK=)TNCcgBXW<}S{Z`rpPJLd=2%-AP<(!CnFN9`J=46%oGK7XhWumK0Sn96b`CpDX z)C~=xBTo5#@g(42GsX@LSoa-Jp$k(yC85!ECEajkUX-((4S3H%-_TyL9&vox-p^Cy2T(AC$x;>IE zYwkVI?Vp8e3KzI@J>(?&BKJ}j8eYG|^%M$4b?AO0Wa-UO_w>U;d& z`%Ik6AjqJoIFPgA0HUIzGRr(WlZxUzD>-%0ZBb|_>n z+=)W71!iZ^&1HWGqBcK|8C_79Z*O}!E_pEV>BW9tIefvDJ=opU>6 z0Sgj36KB|kEJV`uAthZFvKUF79{V*UhowmB_t>968G_g!tM$-DtWfGY%-^Ft&NfT( z?_LVDT@a+xjXlm@v{8t$gdMa|$L4wLsEu4hm$EZ9@(x|jz9Py8E02V(X202VokQ0$ z*RGg%EYEaf9SbHZVmoGa4=rR1h^knId%6KXYNEd?7fk0y8;uDqwWG%er90H=iUzfH zt)n>&OBMWmH~v+*tZL{6S8n@743?>L!a|E#g{08DXdv-drN0&iYcAH%pU$)FomdOh zoangIYZHAf#jG7szWLjP#L!Kwt0c?BbRh9}LT@}~c<5#uZJM#k?I{~Mjqx{2Y_w<2 z=+LbUZe7D)F{_N33KT{p+Wa;)l4t{as_~-GZEOLNXp!65S|Tx`Y-ihvu=RMc?d%v4 z*2A*UXW5@ZXV!vJ0g*? zoh)AHSlh0qSdsqpPu(F3$i1Wb88=w<^RW$bO zwGxeyd)aRk68po6(7mizAgaYE{1OY3ggty8{1!v#a1`FhW)g`q+sEb;6|=Jo&W7$| znF37YW=Dzg&8tI8m6PnGq?_;v;z@Q^ zhV%+P6mp7Pl+-NvD9{&@H1|^F9rleR4|g|sx89GEF7_`~PP5-6eb?WOon{(5wTEL} zyZ$dboMFyH1*QQl>kRXhX~h!&7_MLcR!32|Lej_CqRS2V+NseF`6y z6I8QcT-YTxBMeE{yv*i3K&y$aS*{N%vs`9dB;6VmWL#lyNHP~p3%klrOPVob9?%6z z+m`K7uClKr{RdjsRd!ntPxTHmuCj*V6gxXPEXeqRwIR9&y1cL&Hb_$8Xbw+RjgfSE z*7~ro*i1>EuDxQp#vYfnB(o&!Yqn0($jQ6IYT0&48F5!E->|(lS|9c;tB_O`t2o|Z zr-{T2`#rl#RK)Tk4_Urv*CVLR=o;ZBn;U5@vx=~rY`GxQA65{z*?LLK2lq2?v&}@J zr`~2)BwJC&+93vUO%LMlG2wWMM^qdfD~_~WTZ4nuaa(DtEk`7aR z6C_m;O_y|@XpW>w>1cD2q!-D`Qc1-W-)c$Tl(HuzEhZ~lB;BEs*e)rDY`!3=jI8XH z^epKPN_w4i6_VDH?zp5VCrsHpl7^G+tfYQ)-UUemi9VO)N9nvKX%gwalN3U_JCYtJ z-EWf0DF$VLsQ1wn(jw_5m5Un@_FFghBg?aq7kuY&J5dp9+vk(8pV=LuGx19QF1s(O zAzZcIWm+`GP{ckBxEywuwIvd>)32;65zaYZh5gC~6X6x+jj-R?WSj2Cu=^}Wo`);W z-`P${*vkK42W3dJ@Yk?E*qf3(ffzqSB<661tMQnYd~@SM*tg+MM7idkg}xSrdlD6! zmPJ~)%9{`snO=(=fm#x6U@IPrYNGKjL}JF%crX#pNA<%sewe7h3@Pvq*ZG^05(}CE zU6JH9rFFQ$uSxo8eMg|1f@mFS@X!R2PF%&BJcdZDVl6zCNc49{K3o!(gcBbl31?;} zKAA}5-HFd7DmJ|{{llI3Vo6zpkd{eWFcfJGk*IekzFq2O=kyGB<~xb7j{1eW@CqCG zoAvkyL?UIb+$|CFP{lB1ZoDNC?kq%xyYWtvJb~PKZy6F(?a7mgM5;ac5+X5oc=CuO zv{}U79hemE$+r^~vw-j+;a+@~jTVJB5N`qevUp`UN*#<9$`|^b%B$R{~dxSqH&%=J(itm>6Z8TCjk*L2` z{H7%Af33Jz8m3J2;?}$q5w?k!!dvs9L|9{o!rSmUg3OuAkA}D7izVfTKB>0jTO_Ru z?Ht;UKPzb>%&6`89!a=5Y|jr8<(qgt)}Fs1bw6cQg?HdplAOn$0eW9jYp~LhpO+LA z=4&3GH()meh1Di^$_tRuXpOyIR-rNEpzCq5$48j`Le6ZtLD ziBUL_-y_1YAQeL5FKuv58xTG`B8j`$XiP*hZ)l^b5ox@+jpj!T(hzwgg4|#5jc+^JoGGB}sX``)4*_KQjVG9|}my#8c zqtSc~kr)R@^DRU;g1sCunmqn?b%4PB)uMhG@nS!PSf~Cp@XZJ z4gdwnfi$p4V!p1em{$bE+6 zdAa7^B%~ms0y73;SjeLVv0oOtdM)IeC8;THo;mzYNfTh-JBOdK(Kiu``E>kUE3}Yd z5PL4qvC(@xk4Ha>Ix!SHJ$Ghxq-hj z21CM{!M|H%G1s!_Jabe`sj`W8AcFCwUwGsu9wZ58!%aL&lKY5W+Z#gdAKCBb=XBz;CUONerr0WE72A2k-!BFbzNpFo6dcPN~fD`{Hh zsL0K{M25uKcMJbW61L>0_*X=@h8`dJ6u&LWESwfu!qssYL$T=z^bBt(>CoV5k=uDk zNk61di+q;%m-GVYN_n!Ri=ca+ParB_?+4C{+{w2~dOa{VayLIsRK(t#yE1YQ|6bCz zxe1;2abrBjUc}BVPUv)icM(MMSUHa-61}*b|Az=iH!pUOpC!Up5afB7Ul%&|U6;bh z*SO0Bv{}IN;NIZtyuBbZGyut867J2s&U+DIxonDjox|${;1B7U$O;}K$t?U&JK8lD|Gm*!5Hj${Kw|I^utcSPw5lL7N$N2|DVw^b6LnmT<8_e~M4@Dm5(L`1J zKxhR}p``O8k4IMW3P}fhz7u(Z-;@*=RuTC&Z!ih1h`w@?HzN`;oa7ydu*^D#p5%cd zr1?=8>@V>gNvB}f=oBxJbUx`^(=Z;f+m?WG#PVRfh&2@Kut2T{X__1HM60#Oe+W&hn=vrK}$3c9xe)n$`Ww$Pam$q=nsUfeuRA zy`n>dkN6QuZ>$*S_7Tm#DwS@D%Q;C^d_~Wjk)PNozvtaZd}}SfPq>QD@2N$7N(B8@ zALZ#1b;(AThcu14!mB6-F^6B}?}_-JB-%w?6=~2J%>yi!(Tp0Bmzb)xfVIRxy z{Jx~~p-ZFw#RVo@=92<*KA65QCuI~7 z>fVlmx5L@#-~$Y^Fk~^?)_tN&JtbMv^WB?RT$OyH4Xk0pR!2AGNlC4M>MJi0iGJj+ z92LZHP3x|-nvFIK7_MnOl`KiPrfs0?l7wqoZ{@HgT+=pEswCl>wuy3160T`|6qb!P zi&#YLyHP%hi=-#L&qp;?e29wKSHYhFrQ7I>sAfu;jlPX)p|pAotzgKXqgpCgZKMup zs~nwU)wvJwQ;yEHQp*7WO3geg^%&4g>A3)i7qRVeaRWk?sghQ89XudXSte;2&;Vtt zq^H6k9T1}&B`Rj!bH)xxP(DP096c9)J}OE1T!#E2ZSsI5#d#s>aK$-eK(gXzqqzf8 zlp#d9pwr>a9o{)2WMddH)0L-)#1&?`vO^M%t?9~6A~DttRLaG9&?c4*7zpnZ6jpAH zUN>Nf(#}c)#~8zu&5Kbd&Ks_j6BV=41sewpSN1(lI<|cE(*rV;3zBxl?ihf-RmZ<7 zJ)rmV14bwvmLTC?(4GOK6n`SodPXVzZ1ghdCJ(E`z@+cERKG0aKN9Nvq<17%)>AA?cLIuLB-arV{0{F6oZZ^ObEx)m(#=OlO{rFr5W9!gQ{(5vFsU z@<=|VnqxYjPy!`kI*XM;qFmt+A=RIdY7_>sFJ68&5qu!R7g4m<3yQqLsF1OPV^o{S%xuG z^5#7&BKImLQ7+hA5&e>qMYNQKdp#9>KzT*d3(KF6E>~_7VOsV@A5ts@XhmGHS19d> z^38sWk40A~U5P|1s8IR|9h~ zy{R0Lbj5Ra^iky`5vKa%=wphil3y#W20g|RaV$2HRh6XnMjo273HqfeV;ud=8EFHimcEIuv+mZ z!t$ILQ>|C@ zAq$qs{X@wjDrWb(G>QE~ znP;PRu}m$uQE;rLYK3^-29}VX7Hd(xHwf}xJ3rP{y&%b%=f%3IsKGG{dro~DVbAeU zlQ*JnBm3TKZLF7?BPnX-GqDZTokXIiHd6OJK$a)TCbZA2=tgP_Nf<*DHB=DCdAg|@ zE@@ln(Wqu>B#{_(95gTFeXsMRdc^hEgW>0KO^&F8% zXDjs*QGt0P4TXhssG3yfkaco;PeiMeotB}jF?bLHbMeO~A>#-fxu3JdQ?k@i!)=zzt=o-IN z^mA+{^{S*#8~+g7S^ZUzrSGgiW4oxzQ+VDrOTsKYu8V3R!XDrp*H!H-bi63dCoWK( zK!j;&6W2p6Cn{oB69VFb)Yea<6+Ew3TrV}4NQ|F-)a8<}{`#s%Y$3zr`m0~q>B3c` z1g(hkBGq<8V#FMv=1a1qB*ew4n83hL?I$U51X7%&;Um8C9HkDG z6u)ARlBtfDl(9l*nQ9JEE}OCfb_CT*p<~6kKd7E1s${RhZuV&PCJ~l(UfdY<7jYhx z1pFdgHFq%h%cuEojG9GM#QH2;5jRd9@GRUuZO>Lu3ZjuOTRlgFb@ZROZ1onAusK(C zDaG?}Hq45iuLcr{Hn>nNBr1XtY;W9Rb;5rzWUl#GVJ*v5*AR&|n5&i%Q7drERbM9( zG32RLk}!s)>IEVZLxCFjJlSN&J&(q%R0}07$$URNc?ZD=x*YSNjuT4By0U zP^S}#RBuurmxN>F7Ih7gh~a7VI?-{pq1WBGXVh*x(dKb=P>veEU5y~B`|}V z=(g7$HE_2GnXuBO!Aok6q>`WomVIiaq>(dTHukB`Wf&4;fM1rV%>|iv!~Em-t8FEP z4ebfkMbgxHeSvz~&I<=hCn{zq=iQ1fS8o!D8at@E?y<&DKm4GYNCa1I6O-c)sWXTw z`Ifw)@rTtMsT-9)HNHai+e_!Mjh=Jj-&9K^^&eRne?q+=sagJi;!mqXUJ@a_JzkIh zP(2~(Zr<7W3+g2zxD%82Mf??Y<9-aef%$s<9ABeem6REvCVZ`i96(($%ZhhQs8#P1 z;Tpvw;afH0Wz-=xPxwJyNK|01hWmea)TKnQ9~tPEa7X=C=vdPTFZPT2r;UE^e^15F z{NPHbX+%K6Z)&QfgQ;N&f2iXn-CqX3RnX>38Xnxq!nHL-Vx6UE&q!Tn;}*V(wx39p zwW=L`fC3LYD?N2ew@YWpM|NzF-c(z?DTt;}7QP*1xlXA!dpvz1FaO8f8u>uZHOSYtM97`O|&wiVs?4h@r0(@ zK^wi7&|G`NMqecOY9}StZ}M|OORdI6Y9f4k=S`8$`b``YTWdZxYM9tY3zGCn&t{2j zwGf-GOJX}M(nev49kf`YBIes9KG9DbM}&DuN$jL86J&PoIy})|TPq27`Teygt-8TT zTP4-Pj0PUcpxHzN=Nk8}_9hcOTbni&|Z5`^)O461i zT_6%Wo&nlbBGHxtwCJOvT()|Qhma*UnwQvJ`+*4i!^mbq+Fc@iuIv4Jy|kKRc-}P& zKCRVTTl5xE0UJ5_LX+OwDk8DV*jw8qsbZ1^-WXUaLYgg?FR=91$|OCTj8raZM*&iW zq&U)5O8UP0%EaE<8A*;kkj@E$bQS^qVWTaH{j|X2lup=#-<=qtRT7E&N0C~MB;4(d z(%dR359akj2NI*S8X{3<1GLH$q=Og^Cl1g)veEIxXze$md~?9Gi;3_q!zvNq$jLQ8 zZbYIa;xuoeqcV%rT1&b<=m!Ydji}0O+VAJYc&(2h=30>I6R#yma`(QUn4pc6^hLN+ zQnEIIXahXY=be&G8e|6_`&?e==#D<}QeI z<1}9zZBH7nh1-Rkq{R`55}c%^*+L#lnxu`k(OXHAwN*s3L<=}vt@F&_5qRT#gA##;yj3< zL-J$V&o=6sJXdqRKsG_wCwYO^#71Gs3pGDMkcYJ7#abYd$ireS*cNgq=;CZNHu-UF zHc`I$jbHYYFDzP3?m@-of!BIVC)IrFvT6bYAp%tXoc2^NW`#0>n?NvA{%>w?x>_o%O6YGrhO%8 ze*WT=QtiH^xhuWc^O|`HqbOkcVarl>YCR>L&Rd+aM@y76BXwQMOWJfvW8l04+CoXI zQj1f{wGv4QVCArOTGC5kr9%5s(qypmhNfK>@r?j0$22!d%fQNU&0kWV#H}e++F(iA z>e7@`+H6T4VP5RC_PC^kg)gSOtNlk(wRe!`S?z$NK|trUHzmE{?FL^%d51{!@C(`n zp@Z@~ka9uGx`HXIVP7>)Y5u9UPg0YiZ>4;ueMD5uj%J-oxupFnX)n-at<~pvp0IgE zTSA0a-frxQwo&NVhF)78KeyJV%Wb$Pb=6Ax;k6&8)X|?_S5v;U>D~n0H5)lMxSCRH zqb_kjrrfYmg~$Dr@3kdYF)cXiKMC)UT~AcS@K>(4wC8O)o&BgCC939qS8{eoJNYG? z#;Q5%8wPYn(tfW=>?f^H4e2c7a%Z!jwQxZ^W07O(FItMEG4q$PyV^)e-J7go_q3Uk zo?rAd`(0ZiX%B?_Lt7^)7efB2ZI?99V>?rI?JJQMOqr@@U#m-*sxOsH1AOouQwstvk=qKOw?0dq;QBe5Y1@Q|DQFlS=zRkS{be#x)f#90zs<*p=Hj99orF!Tg-yz{I5Zb1C>H~-{ z)toidlcmnxJ217OUPy%Np77Kr`Zu=o;!}O}TXyF)*Y6XF*3(?S`aQ-VT2FKRdm>!n z4oz*LYd@e4DJS(2y){u4!+XLl^*~8@Pq?)nPL#`PnM+h#eK1im+^PS?Xs?fubctxJ zq*MJ-H$~FFXrn&R#eDNlCa@*-bBzg!_Em^yehuK3_NeMM=2N*G=C~ zge|hIYoJ~ubntuM7bCjsS+_8MRScg4?5P(@!Y2lU^e-jhQ-Qtpn?z{EaP6(T+!p7d zuCMMY32pY(+e<>5{q-P8Xfs4#O@vl<8DaWUQioQ;^%6;FC0su$39Urx=Om$(D822E z7&}_okQ%M`AgY4>NX}yPAW3K?M$eFhR^s$2lF&-L{w5JxxfPM9UlU~Fb5?2k_mc35 ztTg>+NnPRTsWkl$N%#y_nr_^ow3xs3+nSoD*CP_GCrxiGbPxl)dsJ^ll+S)uo`aBC zM52eM>mfg(716`f^<+sn(hk(y{amLTs0T?x-5~wWFLk;>I{eH5{xC=TQU~jPg4j-v zBdNpm6-2qrcj~*TBlI)BV#r+fjeBkCD81`%f^K{Kk(#BiArdJYuP?ceI+3#RdZ8qY zeS*I6&pO=%{aGT6owJGhL82;nIx`?*qJBmaKIuDA|6CG2={rgPS`t3#J4wGO37^BA ztha=>V?g^f@j2YddJxeGhEG0B(dS6Q=O?D=Ws>mui5Ys8Bz%5imVQ+dK0lGI-;;z- zOgyH$bBy5x!zU)@=zc^6Y+Dc4v^hF{Hw1eJwye2&vLsw_&ecZ|6|u+s8>Y?G;RV(Z zGM5$jv`Cw$w;&R&V4faGgyqr(bgPM~O#IF3LVdF&{LSk^eXk_^&FexPzS2N>$KSjz z)Zx1fL|864`bUzmTyk{yN(1Ol(6b|p^q(bR-XGW9G@--1=j!bxVQ%yEP$H4PJbk1j z%wL{9g-Fz9o}NvV&z7nFX?glncDe%nS(~nZT7iDVrqkIf{Q{AgnOEx(I;I6%RxMkt zZ-lp^SZC(d`aVfGGq2Xq5LH`t?6fWVb3|1PXP|9*xg?yOcIaOa z<+ABnhHI(b3O*i@I4N80;(GLb0x5A-38P$$O05A<d}66x{LY{NvQi&_wH1u`&4fy33Z?85uNLFpXuq6P?oy|_qz{pVy32Zb z*E-#0{Vk#b^N*Q&`W5{hN#-m!ppOJWe{f@;>(_1MlYUj-?2lFo*x5KQ_LY8zD3`T< zw0-*5`h@_Y!+RlL>oed^Er!HZgb1Cess(87ZqztKM;DqwhL5bV0&@91m<5mj^C zXLmNnNW#(E*_dHF?>2;-Pjrpu4i{s!q+j4#&BZt@$l{nc8>o_~+Jf_gi*Z(l#5vr> z_>u_IvMSxhxF?A1AHN~p)u`W->K1h6ja`klf?yy2ej7S>Weoyd>!@paw>z2+2NK1XqeiEm1DJGyDm^hK5U!H7z~; zyp5)U$Yx`s7m={p*hrLwHk%k@L`bkXoB0?kh=ffaqfF=^e^dRM8Wn=bW^>~Lk+9j^ z_)ZeqY+)$9C@o~u*Jw*5Z2B7ULI*a>(jPHa2r}OtelWe2Q7A(m7!F_QFpd(5(X^FO z0`Gsbjv=j#GD+B{TN{DFb-LC@7!l6X?>1>;3?&k+pskT330py1W0^RQ>bWla8zq^Oj;D7r?n;^f`#oKZ@%<^JrFO}O>0J$c8yuDd?)Uf`izMNGPk^yn z67KhOGqy^?{hppinIzor2{K-jg!?_cj5CsOzo)O!IixPteT`@$u_EhdERlpOvVKNJ zD25b!CH;(fMAeoTAe|6W5Us)b8Ox;(`&d7tQ0nGQI?}1X@wp`I#UaLZNm#d`#s^UT z)_M;$u1Z2(m{Ad4rwcRANJ3q>u|1+r7jEp6gt`c0No1Wa!dORCUh`a^mL6@KkaT|X4WM@=?I!xzcHS?byCaDGKBV5jIAc^4 zrlo-8uJalgZ|szGu(8*`1mn6S-z2YriAIY76cS?REXip10CgqGXOq?KpqoM@+F6oO z5nq?vB;$-EEQw@8ORUo+8=jI-mtx@O|EwjSVoV|`FlWLQSgJ8g(lWRLOEnfs!r#26 z8Tpd%H?L{N8lpTG5jXCz^6M;q-1*6BtYL6T56#+Wjw zPB+HLk%YP|W9Q&HU6%2RB-D*HRt%}rjWyt5cGfVqPQKq8-D}CGV2GO=d`}0Y!WJ(> zcfkSS>r{8GE{vAPvJtB+#y7iWDNf@cZ&4cUpy!E=*Aa%S(o zoP|C@ig`k>b8Q!f~OLdRoXI_F@%S|hqv)#-bMY2I<@+sR^+kiz`xqhOtIQT3z%j+7yqpOg8sW!#E$k4 z&py%XI}!=*hOiJHXz(W;ccMKgtRJ-s(M~J@fAtq3 z#h5AFVjQy{-|XG?CA|MJv?hG&dX2R`2!CNM4eA$mg-JdUZZX%`r%j~itL0dREyvd7=%1|F_gN9od!uIL0&&7kWV+*k#4IT_xXHAR@lW5#Psj%(P>QtKP82xdE z{`PMCN(EXFa#;}eBQd+#`=ezA-dK(yt!|vz#T<&|4DSPnS=ib>|E>)GdoHT{(Snfn zGroQMv3J{--aonjT2`X3sjLOf(RF7jY;IqSeI?aV49x5bEA5A+m(~kMsy_l5yg%BB z#<73b3Y&Rwmcn8lSHOb(S$}5Q_Ahf4Ke>>{}OXFv|gLrIye1$ zzi2ZD&#kM|zjOadJyEo=*I-uV45h*br((UJR{X*4*do;8FRw&@f6zT{I{Ke)h+*p7 zPy(}r5B8(;4RPMAoP{%BdkXm+wTe+xN|;XNf%#pO=l`AmFqkP+HX5Y%uQsi@6Dz&_ zP=hKnX+1eD7JKM=SSi8V`^jCh7F+MDF_`|_uv*~kbXr}SMSY=1u31ZyqZlYzB3hVFmpj%~2o&U~9V{tD3?60#X_5PdIV2xe>XJH)J{Qskn zCTjrg17so{tZKg9_ zJz;qJmani^$JP0WxqHw&w7*~uw$B(^``Opg?*lRX0(X>8uSVGqR<_ob^E9~OJxtWs z#9V-}tMI)iOploF{@&keL1uk|ckBR%Ne1XtV&n?h@hB9Izb!07btP5DhQApu_3*0LCXfpi|`e@51rp8)JApOJlRaEy5_QnpQY8&udBU+SjqkV<#8(L>ylvRU7Yf3~OMLMl@AzH84AsOEtEfo7>c-)b*%DOy? z99he%eH^C5q`6PjRAeKx@HnhyRTloQdeT5b>fd`Klz=l@{rb^cZhqBH`AW9%ke z5m?K|-lq>;+uj7JvUV`@YOKpj47r!`o(p5L%0`0J7`{8^pJKH4x5j=LO3bHPmG(}|?3+!HiTd}#(=ZD^Cq0ul*!?z8rXK{8FN?2jnV$nxPY#W@J;pjgKY8-6B znt?Mhk_S>B?>Pm1aAa24R`3zmzZ&h5>F_PKIxVJ9?4DU$#o90&IkD%WKdvwA zy|w?_Ft6mJ9khnA3^Yvg}>@ECNYfxW)(2l+3 zN7rE*(n7FCmc^sH7nGR7=E1dqO1(^DOS+;z`Y7ZB{o7o z?^c=EGmoIF+KO;2a})Lf;G2fj2gP;J>xJlp(i%&hkNvD?)mp7#`kO&IIi*ubg^i;t z3rsVtLm(EN!Whg0u8*u1MEXT6yP-#0`?VL1w8ed}g@`h_pNd*B8~&S{Gt@pPZ}dc; zsX=G~Yve)qPfgGVV-frCDy;`Jxrd($J>9xKEXcxgv)==;_i09JY}{|*>^oW~e3pzQ z^C!%|8Y=|%Kl$tI4;UHXS_ArsbvHn)(uK7_G)ka^Ssv`G>wYGdzi?v-rx#iM;Tbbpp$&sxZ@(}4pj+&nin`kqf+6kY+HCZB9af?C^1+m+ zlNRNJ{+J{2$0?_Z%&GlVe=?0K$7n3Q0Ftvhx60a38H%+B$_MTLK_eK-2mM7!ij;Sv zmW=YjFxAj*p(TKP&|jQemxjMfPuza;S@%PP z8+R~NTCr%f64qHFjW9xsqm%V4dpF+QP+4{;wn7_jIf!Q0M=5J}=Oo9=*9*qHY30~*}4ZV zR@!2A`0L)gHT;jm{yF^r8)5!^U;1;JgC4G5v4?;=1}g0sSZf4VO5$$jgX?*54SRet zYP(V2L?2Dgt)jGXp0)N1`xr$T+RMLRvEY3KTq%i=!Y!`N#k?b=C~a{yA;zd=NVCdH zsg53u<=?FBt&e%ZwXVv7pf_o9tttZt(*N#by~-2iBd*=VH6xCD3d8GD zm99^%Aw{aHAPp+r{n02TV&!ZdQE`@0$=})%?9akfX_Ru{gc-SpU z>|L4#a7_-Y({7jsT(P^AUUgCi9TP#sH?)ao6$#%!y_qQ_VQtC_9LN~ryN$*%|s$R?nnLI%=p*w z#5yL35#!;wtUmRik9)9Y@HN>sAOqkC<&UsT-V(k>(1{IVo!BrqM!*ruyRgyBpN)fK z5`2?%8tVaJdc)BNj$n9IZ7_uC%jU5DYyljLSqRHxVc;JI{%I_l4}x%m;TXw6l~HV~ zG6URm*%NFo#5)(l%!T*#%wtcn`Ro}uo`oZn&u7oGMQkq|2jB?hi`XG}ZuB)c-hd;N z=d!opY49pI-hm^O=d<_NQuZNR&b*cNtT9{9_Q25qj$Lr9Wrc7Q!SMtf8{jC0)D^Qx zUJPm30{kC1o`>TFICjDDA{;M49$o_5FR^v-KN9{Y@O|LFAO0VJ|1ZOF2#&*Wyaq=F z97o`I6OLnWyamT`I4a>d0SEk!8@`^l7E+wR--Eor2e#jbbi5C?-v_^sn2Y)mtFNAe z|L5TU$MFAS_BNm^&PM;AjBHE;!b*%d8(9q5LxI4gVwI ze*(V({-48f6^?2+uEFs&9M|Fa29EFG_#TcQ;J69LEjTO;pBt?YQfH0G?F-To+5rB( zp%=+ek})JxNDd{LNpd2|nIz|v%mwMiR+4)Q$R=zDNDe7Sc?_g4#0~HHX7%~<$${|A z8hkFY5&fp!hvB!KTd}L~gmWu~&*8&Yd>1_q@-jT1?8i>RbIB?E6L@ktg`-ajJQ2T! z4dsO%+uN(B!#XS0KVQ!Y>k>uzq(In7&4vgoCE)7)pPvumM^F^R2OH-at(a7 zu2Q|k^`crsz&2!C!@4G&Zllqu$`Nb6mAtb%|>W?Git+ zx(&D$coUUHd3QBu{>r=XW*>iL$Kvr?sB&oaR4oQ-8Kq+$`rvnoW2lyE;9Vvbeurw! zqI|yqW89SBMHceG+HCmxg+GP2CRAt5WY{-l>5tG1NlMf zN$r*qGWvp+q6Cfp7Nl8tQ@dxp6ZR{($4=pTiV{xpg~2y9?tpdStYE1+D_BaNO4Xwc zbWiDC1i$n4A^WYAK3R|It&}4(CxdJ{@LR2wf^DOfg5RI_q1b&Wc0ULSzagZMeiX)! z!UU3kAo&N9g+S5clQfoGdR z1{oO&)}1fZW{5FG2{B(#rzoSGk`44pH%=*^n>~NHkqz#nMv+mv;FM8KebeILRP=#y3;bcEa<~}$3%K(a{6^Ar zxTRDEdy;JIkfUHLS_<`U;cKAYXTwa?vum(JsIqEhsd7tc+qE%-Y}+-=0qw^-U_10; z7nR}gJJ}K{^HM0WY==^%*nJVms}u4-VwsmxiIq^9mr$8===+@QP|{azawvneRjTD8 zh3Y<^Jr1YXG5Crl=Ia%Zvva(ezbU!M6r{ z)o-J*tzv%+Rn9tpt6o$hX7qsYW==oQ;+H%spyY#$as|Kt*hs}utH|(_Jw4vMNbR!{ zV$3rwN=(dp@L9ipi&;kPt&G|j_VH)UGgM0FsFW@#!`9Abmq7cg;_L8Hd=raBX&I|S zzj!ak7u+*q+K}vIxj|>$p|fyo>0?<*V@s%V$(&{hRcf5GK|TR*VZ2YJai3DFQCVp! zwi!*uo?A*S%9;E<)koIvusEyu%}h@fzaHtV;ukZWRdYcFxM$2b2@-3zoZ%NSoxx6! z(MrWMw}KM;75ve%vx?unEQc@tT!HZToy&5zB(nzGBPZVgiQlsLP3BQ_E6dYzZ+^G;Eo^9KY9F zWE_n<4;H>ndkbXi?jwv`bX>4RyxQ^7~4Ax8RT>kW~EV187ihE16slYaGwZRN^(6&oFgtm zd5(gRN8{cHpUT2&vhRlNKj1LLdmyBqbCGd+Rx6OsiS0pFK;C!2yb$Gl&v-X%q;nR< zIE7@2;xU8k6CGTW7D32$(EGBfjh!Ny18oL=NeJ(jx?=I<(=zusUo_rXc7^0`Al(ML zxm+}^t!wU*p?VeuxL~~g<}HN>40XYrX1e$~ycItY+&o~q3-*P%AhAu}hZ4SGSqf<= zahd7RY~izT?%|>Dxa2}V;w)Fkcb!(M@ZKtC>{*=6bT~aLre2IgXJ`Z1CI{EUI?bzx z<+h?;t=h%=nR+uFPON?b-BjbH3l4(&_ulYz4b^4(oAu5>dA<)4dk~JC)%7@}hqH5F z4Pta?KI6A~)e8P<##ajn_XLUany>aj>ULJGEXi!^n(MGJt~1CB9(`ReQR&rC`p>Be z-Vmb&G>jpD_m4 z>diY0;fMOa;kv_Nn|m$16LdVd@!U$+8!FDQH&jf?4HakDiO{P1xn=U7QWM>Z)cxbr z-R5ifi^u&Arw4xv+7S2#%Bv0m;Zxm?IV23ub}OP@uu{s_@J-B>+Ww;D;E!^LhF^Nw zrA?jl9Juj2U^}#tlTW$bhtYU8(=;4gG!4g=9omUu_uW=%W!WzEFG8;=aXIU-HN~U8 zGgvNhDbjvS=~lni0oRbX9CpXW)Ze1bnU+|;f_kOJVM*rL`kvbCoH-!h8oaK)kA`jA zQ#%o`1AMTxx6;-(zF5DN)_C!kAjf2WQ{NBbg>|p?Q*@>3Lt%U%{CcNAu+zicM_ZB^ z?vAye=vQ2h&kl-0>@o;W5n_4HRKjIOWxLqEmw>bJ~NB?iI=c~(;|s8;ap1(}*Z{7Nkg z+W$6?*y^&N{l5hMIIdn~Z5!9JOzl{=H^C=v{5ZEvD#IyM8W-892_Jwzwt;E|-;7YL z;2X886@0%zwSsRls8;X|1}RF?lm(V*rFsSW;~TQ86?_*qu5)}X{_3sdT81O4?&Yt( z26GMO%hfAXe|s^kNYyUkO}%=VzNrCTp&*02a@8U6{Xi;-abELv$GoW^@!Q}tbu9mx zaIPEM0{v*2*B0tWTc95$x@A*)%ck~rkvaKrmQAhhB0C-QidT$T5&VYN4&|M&_dv$O z+GdAxEaSWvj!U<_Qp^rR?|L0`I5p}QhXSu#9T0T*I-eLhGi+HmuOPxTS-{U%*$Awo+Tsv&>RXwOk8pxhV}NnmxzQ0y~fT z7c}(O;Y(W{XDH+j2L|KVE&WMY?@csY6l{W!&kTGP}WbmRGkTVifKu%4}Xyixd`oOtQH43Eg!Q>MN zK4q2&@~LHA`Z+X?C;tfWPi?%zJRLBGYcW7cUa3o&?A%mLiH(&A&135M&s>w#Z>9|Qv zvN_IQ86?Yebgv=zQo3fGLb5`~v8aUHm0;&xI2Yf?+umW_tUFC!HP_9$*W`?jYp^pq zuECC(IQQXtueVPGT@S|7xxr+)mh~K*>T?e4z$~fb=y!?SHDJ@iZ$Mvz)iU|tA^$t% zzEAG^)3$_w1HD3*x^zJW1|;>s{^?VUmSooNiu z8DmT|uFV_LyjG2CxJQ{{VEdl}7D`;I%_oLF*1X!BXg`_YSGAPUHdMmz$UIK3QLa#OvZRzO;MW z7M|i=ie^?$-xh0(FNS4-44*WkMH!DW7l0h+G^t4$FLIs@Zx6y+$YA&$!7@I?Wh=-A zc`v9NjjLYIw9kAE5GUMFP zF!0BHtunCxIJ|is+YHJm@W-95OsMOTzU4+%&Q{+FN?RqRO;a#cm6WO?b;0VBzC~(Q z&PTqP%Kq`6`c70ZZ4(ttm8M|qnu4)w3ckarm9j}|_J|KzXr)YZ>cYrzK&4vtxXXMzGHC;)L^TY5lWO91ah3y))o;8)=PwfZ)dy#7Ep@* zHM8${t%!QxMvA3`3(Wy**4Y6|=8myRd$Z*o1F!u( z9k3*w9k6~q9k3ic9k8rC9k3jHXa(rwu%hSfmaRzoflnpO@7S9zaa_@H%Zb&&tpXiz z=PK9Xl*imwz8c!})zF%+b`@&DS3_%;ppLfs22)BRC?z*k3>iVO-%v694HaX*0S{D! zLG5Sd+-Mc=fGd+C6;qxLu`l$F2N~Zw16IHLv~xIzyIejdUM4=w|F zf7!u~JM=HY7Z^KW7wdKKSuwmrgI;R-s!DLTr7&qQ*Z7b%9}`z@z7F>iKJ3`a{I=&8 z9i8b8f*)vagAcwP$j=-!$?)@|)CR(gaHmbMIVGr>U$D6hMuP|w+fqD)@9CEg+O57B zpiTG7AZ-?C54D&A+NpjM6@2^7Lm@*(Qd`HgOD@ z0wGKMrclTn3OR*B=1|BS3YkM8+ryYv;(}KbFZ;z<8uYC2^Ea?Bw1?Rf?rS)VoUC+O z3c2tAiDg@DIb70hBZ%U9CMWFyV>wQ7sNE}d%C#|C!qlwx^5xKAfs?Syw4 z3hsnXOJS`066R1GA(tB24N&5|xzu>H zvufz98Ux4b8ak_n&Z?oaYUr#Q1IOwb1K;OTtsM9K3?#mf1Fv3VJFkJS*Nz1D>GT<$ zaR&zOR;V53uk5_hjDT|6p}a5{+s4K8K*w|kye3U|z$?~t2fSk4NcC7kbyrHIT1sVD z1~mm&) zqx02jN@)*ezB+ruk7^KNUl*`>rR;ZwRqjC`B zX5|a8vju$I;jS~vcR{M`g7S4Y6?V110qte-|BB>Kq`eFN^IMC+>{OuD|lhdbOSL_3=C2Kbo9DUi;_6_9Sm zk03n_rDr|nZTN!pF?xe+VPHFHWsC%OJ0lyUpRu~9$UkD10;lTn2li^HiBg42{_l=T+%~jzNU9ClLed9K26MTgo*i$HZi~P z<`&4~qn0Mn*WR_D&9fvgldJ}5GCxNXv?-3L9Y`{h2c7%Gjk&8!M-2dnKfa*fNaSc4C%}| zvgRPWvHYQ(Ss(T)$Z&QJWE`sonZ~?^b!Pt$WnTgpS9P|3?ks_X?7P_n0YhR!b~PFU zlYvAeJK%;oOlBr924-*ul8{6TLbPf%TD5L%1tC_e)~#B#S_dJuwzYn(T|etzD6y?; zwbpKa{ro@gbMBqFFr?r2@%znl-}AihIrp4%&wkFmRI8o9fZ7e*qwWF5)uX_J>gT|A zHMM#*PGJ-jdDT6*i&u>UmVzlMssQe&_LC2oDB6JPR^N~VG~0h|pgC<;I>0d}i54u&YV(!L#xRJSpNc52(ncM-eEbW=V`e9(E1vH8G*h)?K1AGLkt zhbRw$Kd?YoBt?rL@2DZZ2a{gBar=qUX@Nt=XQ z^0|*TeY817?JJNAiUt|-5Vb?p4!NZkyiJ==7=kf|Pj-yl%Q=Q66AbDdF_%oPDU09y zF_Lx|}piO|<5HU`hHfr0cZ71KJAt^mf`BvI=Qrm5!#I~C@M``mU zZF(6_A8q=`A0xg_?GX7PGH(;#0TvW}Laj5C`H(3gJ2U0(ZpzbuXn&v;loFMb$&yd| zT-xLlSJASVHXhn|Y2&5V%P>nRSJ2W=n-G~enKm+q$=ph&i_B3nPm<{+bBxUEWCq9# zLPn{kJjB=z(PoJEeVg(pw0Dn{G)@De=8lzA=aR`Mt|DJbxq@;HY|zKiGC)2=j8of6 zZ9BE?{7o#Xgi#xc&o9o2c`#BV;C zRb;%hDJ4@uCO{@YCP@1br@uwoF#E~6Q==DkEqS1HkW)paTT@2)OxA)k}oAzP+LQ-pBSJ`fZ8CnA_jpNH4&~hOEI(xO#!GML zA@3#cC0_x=sDpffe1LqA_HE>ErA-&*ZrXIyCNaL;sHyHH-$%ZWd_VkRq(onX)DBTQ zM6EG_PhkR|!UTz}Yl7J4kk2KbOWs4qOU6s4269P}pL~FPfP5?D9o4N9qy=cBww+8n zwH?46)rTo}(x!_xN692;nIPXwzKjKaugDDDihrlorVac}KOI zOb%^wVS`#sCU+v+=ZSMvplA^-J+$#M94~E3sr8c&&^|=IjZ8a3YbVprJ07OoMQu03 z=_b=n?NQ2!iRH#U)xEUoqfHkC zL>Xzk137d+O)59CE>V-juQ7=^Gf7hIoWz`&B)(je#NIVY?A_#ZXqgL3v~Of`X_-68 zYy9L;9_{mJpAQTad1&vYy%)^dqEh;*;l2FShRC#0Zf7`$$#jwFrr&Nd-Mm*fZH|&j zFq{Na(M$V2GJVwc(Q<&y0Br_oqb4)elbPzt5_9)t);==1lbJd)xsxRya%qzXW=C~C z`C?jnh+f)z$$M#8O1X^oe%b_R6CfX8m;qXb$b@OxM$7ieQYPDJbC}vLYP+cIW;jR5 zCm>^Xz_j#{@2BN4Y6ofmHf1%X+Sqi7F@@=!BB^st;g|%7HivvJ`CKx&Q-+Mc9V!Nc zarG3*D-UhFwDHoWhP;1@lo0ZII7 z>?V_-+)L~u4ibl^O1=%j=A8q^G{$P0FwSYhWRuAu<`VO!NeuI*T@0IIG9IEAd`VFa zWk390aUeh@2>G@HLE5)c+r|*uslASJ7x`{750Xic=_U4&A3&^jR1c6DBo2``rZdjd zr5(rf_7m@dv$nePrXc;EoI)mYpxsFUHnJ!v(6MKn$#8+rDNO_28%w+0_u9*^(9Ll*f zCA}WXUSbW=PYe*lv~Q){Mr30YTL*1^_EHWI+lifXq>t{V z{NNnP!^E6&C(&42jvq-1+h>a_38Y^5%<8 zF?lbsh8TcNNl_5m^NL!@w9~$mayKzS>>~~khlpwc??}uh<`Nez;1gLO`BqG(hH`kp z9ChV^R?VL*aSNX;mhTXAvgJwnv&H5*$R$Nx*%H1hhvS(XY3uSR=TY|Lh_(&#bq9KZ zYl{YQB+PemB%I#&~5gQM&hD;6R)>Fi?>lCS9U1So(elUea1C&*+_%(>x#A0F% zv6a|KOb`c%Do=c66N`y8#8zS_F+m(4s(jiLi-|SFR$?bHLF~_$eCW@Yd>9~eoXl}D z>Qsh9%sEwZAdgr~ri^k8Wk0c%*hx$f`(aa1^a?Ep$f$+P0b(|>nCMw3;g>CxCsjkH zmDov45RC#pg#rnora*GLhH^jo{sQS?U5h0DU5iA{UL-czi=^EsCUz|nzX@V5aez2T zREtGBcCp+gn{p6xK~d{s38#nh0Qtei5>Is+({h^F=TI&tmXN8T+JP7%X1IL$0OpY&+ zv>Qt$<~d7cT#*O74Jf<^JZc27ZK>S7i?C#(6U1KP0CAA0mNO5D*~=vr#l#w7E3s#} zq&h*H0d2WLEK61h-?lecM`kK5c{09(w2INB|zllS}9#^WIEPL zdFvq4OJ;`AH(h;ziU_Z*2;KeSjI1n#IFBy*gW$7z|jUVP=P7hnGM5?YWi)8#6EaKgZB%CfVg+)DNddM7yB}#s=JgFLDE3vCsVyHZlmSSQJ zv6HAa2%k+XHc?utnhk<&8^muHv6nbVG`zysc*Ulb*yWYj_7Vq)Mu{+O#Lg12?4q0~ z5x>2Z2Ph9x&MB1~@R!mTv5S}}l^7;UC4>RuAo=W#5>C!Wu^$8?b(_S}vq=~~v6D>K zCJEU%S9lN6f37gC=dyO3%QTWtP#z$vGU1If2|1f`4&`FX9?BldHN;k8Cow_nrOhB^ zbsooi=SduLh$ZJq9qFQ+pthItAkion%j|OTm0ix1k}0NKLu@6sk?$y%5lbiSyU6qs z`+=APf=4cqF*Y*}L=Uk9h+4l{Z2XkFHcKnlwOQ`lPi6pG^eJ2DmzW1cZf}vC>>|?x z`JDs3ln049Tg5&Ph@lg6@3fnaiWGBjcd5bfAb#*<6}_60@# zWK@OtH7dluxI*%$q(UtHWZH;{igKg<(q77g#OzA(l~YMylxv7>WO|9JNM}p&PG}2?dMOWFAaNU{Y+NXo*%vZJls!a0F$mmI-9a3v|z+RqH(D(ImA35 zVt%Q#)qXN=+zawM2YP^49_R-m=Cm<< z;>+dZ+{8CWoqlB=%`JiCw@yHBPNu)$oCTa$qdw?e)$KmJkx* za^oR?FXaKq@A?NRXJ5{{TrQSvmy2cR<>f}ft}e<6$o^fPJ;M8mt@VWk2~gVh5Qn%Du$n zWQ<1fn?v*vgN+hS8|BVMNqc9bjDdT|C&(no^wMU4%mA6=v{6@xFLj0Z%DF+Fd62T&$9oZT_K9UNOb6t54jk7uSF)$RQhe1A6T|`VD5X~kW)t(Sk}yk% z9mE89i~z3^zv>HuC0~$vL=9!tDj~aCnf6xEb`pD9C7c0jRU3V^Nl#HjIoKxo&_hOD z%@D3;&Ri{)#l#w7@M`hZO1TF%NPD})C$C-PR>+8dhhR;I_-*ZY&zKVI1b!4u0FQ+R zfY`4IK_5Ft>CIgUPtykB)XWZM64Xlk6 z1J_1tfD;;n*GMU9h5XaTPT;LqB!E}P`pFMKj>pxt?-_fV@~)G37GL*}I^0}xo%Gi= z*UgpnUSfhcKvdTYpG_<#)(~5X9oNgsVJGFD>m{57<$m(&2J!24`;T)%&cN6Vz z5+-<)gpjyN{AM3vsWwsW-g87OT{rVCH;dd)`8eg0TZ9kZB7F9jSrTq5H$G|(-X^@d zz1x8`MWE$@*H~z7= z6L{&q#GMl71mrjNsk=m5OibJ*sY~1?Aq-F+pq%$rwme@IZ4I&Yt76kZzLWBC$|YYD z%g(P!_ya`sbqPP4nD=!_V+Rm6WO^tkDECtypsentFJj)kVqZe6A=7%V#H90HiNkU7 zs#EM;os1{tAmt8X53!%<>XJBQcZq!sF-WE#SWg z0Ff5W{FtE;gTxME4>1$p=qz0Okt5SN!CB~B?esb?ckXjOnxkKLJL>c+H=`PG=AG4G7IIOCR#moom6F)edv=8rNxW3$E;jw>B^!MOTy9pi2o z_rSR4$Nga3PsaUr+=t_)XO(2#lhu{=qb&FMS>qRsFC4#S{MqBTkFOoSe|*RI2gW}+ z{=@NQ6DlWMJ>eG8-PzhHWJdTjcar$0OW-RXawK6A#R z85J{pGvYJ8FyodPoiiSuacsuWjQ3~!_l&7C=giERxqRlfnZcP4&wO#_r!$RNvt})t zwRF~jS!-q=p8coUM^Ae7q$}p^o6|k#mvjC(N6pQfd*0mh=QhlJVD9hcel&ODy!?5~ z=Uq6@m_K9ws`(}Jcg+7_{=x-kFSvHWZ3{kIkahBklj~2u{^UQNyf9~HPHoORIh#)z zpIe%{HMc4E%G_&nr{>Mh%gbAyw=?guyxP25@_w23UwN7N75TpWru?V!KhGa?YQd>3 zr+($subz78!uZ0@g)c6AW8vQxjxCr`kW=6(s4DOm>?!Ch_^4p!qOwI_S~Rd|@#5me z^^3o<`2EEhr(Jg1Ri{0&UD~qrwxwN5pIrK*r5`PwQMjV8z3|S$`1N8UptLfSzI^?3;wS`E0>~V!<)%1kb1yTzF^=aPIcCz$-U+fTxsiO5*)nH$%RjIHsx!^5?U} z*B|G~9kpdA@AX(?HJGnnC|Z5rQ_4e-Ggn1`D~X>q>`!VpG|PWa7-+c}xMq#`(sHdw z2lQ`)&>24{V^XpPVlCcZMGZ{_vp455}HIYBjIp`OHn? zSI6y^sS=t_%S8uXfc)@k@%s(t&tEPQIkHY-K5MGT9~TKODe42x4 z{DI#9A8Q-}b|01$J;-}aVmLQk@Bx_lO`ibYnesXCuf%JJw-MjZ6#ibymk^^w$9mzX z5-+?~EPFqdFhMmAnQ16+p!Vyi!0fdnlD@q`Q6o`{TEYxFd#PF7dL``YpuwSuN2hf`PMlHzz=PZ z^1P8H{Ecm`V18V_8O)okWy>RS-vc*%5quT#?lm_-e(8(CTo%0z_%bbDh)KxVl-FH( z7kK|w_X2f({%yxm$hXdU9C$_SJCt7lzU7tJPMR(F$WFnz+ok1cy-YCnMY;Q}bNXP} zah zj)*+%TES1x{{v9h)B0;afc%T?fj-;G@x*Nz}~NXbu?5atXDofLi-%#G90Vef<_{E0WCL_Fn|q@*AX9!qD6p5K)RCzp+j5$K`_IS%OQh66`xH*mH^C)&)iW z{%%3k5#WuN3C{Kk&aafdz+Q56S+bWOT_bcI*~s#*Yscs7A3@C1>+*^EnzLG;guPDh zUn9>#w%^x&$MLZ~XeVBs%Aa4ePqgFTtACOVO}~{}(YT!+-u$3xT^ZD#N?fc%K>ns~Dp*{O4ed%^VmPtpHw)H=G^#y2Bda&A2DN zZU%IyFXJoj21aRXA>WSsei!J#IC3B4_ks97D;QfE z7*V!B{uA=jfp6nq3Fc#YGkAQ28SAnNvJdAQ{{1kX5#>M#V1xCdv z!^W?GXX8H;IPevaH-P70bnH;;jkkasj6t9m<75X$%5NjbwgDaZ3dkQI?*KaR6%c&q zRh$ zw=oy;JwS*0hA|)V13-s*&^Q_LH-V^SMh@hMfe!U;BNy^hK!f#*w_U8vrz{8r%?`cJGKDFIJN;Z96NxSjtbydM-_0K z;{sro<09aAM>TMQ<5J+M4j*u#!w+2H2mseQLcp^ewZO9-VcZbEXV2<+$u+Vu6aGCQ~;Bx2fz!lCr zV7U^AdgQzd@@gPzjq@I0ne%JFpz~f}$k_$l?d%4&IFABvb$$cb<$Mr$pYtJLxAPHT zkMmLB{m#dM-*7$&e8Bk>@ImKyfZudJ3w+4=UEt%+7l2PVUj#nw>;-wFb>%=sGd2hN`YUva(;{Gsy~z&D-00uDHT0~~a|0X*(}6Zi+` zTfjd$2Z8T6hk)-o-v++t`~&a<=R3d;o$mqv=KKKocjupgpE*AU{E2|3AoKQ7g*z(5A?fE243#U0oJ>6frniAz$;w~fmgW}0l(ln z4cO{h3T$&N177V~0c>}z0(Q9801vy)0AAx-3%u5KHt>tCbAZ>mih$S4cl*^1E-&y) zu2SHQu1&z3@Lwk!>WHfxc#CTb@GjRj;NAG&5a@Yb6~M2$s(@c}UEsj~6bGUOa9sp^ z%2f?~+I1=LJ1!sa8J8dUV^;u{uL2$FC$13W*MJW7AFf)+KLz4By28Lg*B;>STn*rd zfOw{^DCD<+4)v+)3gF*dap1pP&A=({eZZ;i7T`4ZLEv=vm9U=yMBci;0ND#fNp`mZ zYu)X@M)zUhUiY=YL+KG30Fb{~cO1K{MX{G|y3mZ(e=HS*14MIaXn; zajtu%d!MSys6yXNi2YQvDd%rv3?RS93C})Dd-O<}%>jnJa)_#lN;bqQ0J4 z4(!Za3%oD$Y+z63Il%ifi+~SgdVt@=zo$E*9?mSq80%XI;b!$1Lbyde0r?j7ZOC6% zPecB)dIs{X>N&`_s^=kpMg2JQBH&LltARhy3;}z^c(~r^EyRf`Vy${QyYX8_} zzyo7fU{&o9Nd!as^5*h2zY#KHSpcB zQQ-SyeZUXL`hg#fy#n~>u~iti{RO@rQ-6i8C)9sKenP2nD=>z0j9UhDL4I0IhWxae z3i&%~I^^%DnUJ4T8zDcZ&V~HE+79`7wG;9SsuJ=G>U_vAs>>k1sA?ehsyfKM>T<|0 zsd~sSsR-mg)d;yy#US^qCdmD2FXUrtKjdTT0OaqhLy*6(u7dosYK8o=x*GCN)Jx;` z0sF^QVbu7Oaej;%GqaWf@s)3k9mhldwVDX|H)>{)w7H6#jF3DO0 zEX+CsxIAkuaAnrnz|~pj08h^<0-l-W0iKoR1+L2~#dx$h>muNWtZLxKtV@CCX8C~U z;Vy5g%~=89)~qUwS-0bk|4;429p6%wkl#}0Lmp5ULLN{TLmpI@Kps?=LH@nE3i9t& zE95_@t0DhEbwK{3x(4ze)fXYZtL}vSuDToY2dW412kL&vAF2l+f2h6*`A_O$$bVAb zg8Y$s4Dv_n3CJI-Z$tiAJq>vw<^W|Fckf5pdPF^iXLby$u>Xni^amL2PQyrL3C0oY z(eLjtYK*9{-)J+wXxw7lZFCzC8&4VEGrn*9+<4P?+xWovtMR#!>6qe}Xrp}#~H|@^p zuS~ydM%B!#X5KLK>ocF2`Nx?nXPq@`!>qup8)yB;thZ(vvnS6!b+%{rp4r{Ae?2?v zr0kPgPx{tLiId(rY1y2+<~%&7ch10^KhGIAci!CPb9c?{nES=Kx6HkJ?(=hx&3$+7 zOY?p-@8|R0ocH^Af13CAc~8v$?)?7wug?GF{I}+>T=0bjoeTcBpy=dtPu_L%BPTz7 z@{doxF#FozC*|Ch^FYqyIk%kh^-~@?<+D@vwSC z=RKYGV&0PcHTj|Z+w$+pzb}8!sqdZo`KePEu3mV~!i@_z6}(pP%Yrux&RO*RMOllF zE&lQ1*BAeJ@tLQ2PW$0$|9RTGr%hZkbIHOb%a)WZ*}UY^C7~tPFFCqo{L%{xj}$tV zWi2aMR<>;Cvg&2AWrvr&y6l(B9$xu|gEO~Ofd z+DhzB!T%f7c5;b-tS#$RMJAYrg-BPTgjP(2GGt;?Sn2wvUc5(#2o3Zk73)V}%jNh&J-G()g z+p#P475whNs>z*L@3;%C)7@CjxCd()U&ZfhSV#Ff+N*o<>%^}Mzx%La(T!h^+KQgC z0oj ztUx@2RhDP*dk(+vVin?f{9eEg)%UO#@gjZ+RVTd}`mZ|lTVeE9VYHkP^iL7=OA+j5 zHL6$e`yqZm!tclUy^6JnpI{B*HT?bqzn|jwGyGo1@8|ga0>5A4_bas*J=R|ISNqTs zA5d?o>(S@jgx=(K^detJ?{P1B4g60QVUJH=mz&o!&Ffj_b)9)#Z(cX^>cW~;)s0fm zE>_3Sm2j>%^sWFB%XH&9 zR@$_Gx!SXY|J>wpCI2~isoS5sJ{m82!>z-?m3qUi^@jVS@oY!k`zMH<)3n2tc23jI zY1%nq=ce56n-?qw6lz@OV)G)eB0Vfw?B{xVE|8K%Ds(_e<^ zF9ZHE=|e7DEg>z-wN z6~AZPt23T+JnxE(X*XQ1BmBKN<^|*0jOSg#|2E@@@gd~Nv`7?owJ;8;#xA{dDpfHOPw!FSnGVwam0AeQRe?DjaWS?^d zel?Si7``b!=Mz(A8GoPhyvsH9J*N-Xe@zJOopbf0s_bf4=%TtC9^q8UDC z%Z#J08*sfJ*C%GY<+^O<$F67b`)uYv$NbQlmGJ}oKFRyo<;X`m^UE?K z`S}?S;`b(gzt4Zzz2Ve{-G9q^*!{Cp^E2iy%+J_{-yI9@8S^x*Kf~|Cg+AB67W$l% z3VhDF1&?NI!>_s^KjY?tzKr9zPFR$mv3k)z$CNI5EhCIyJKR6P?^pOa7UyT=EPgHH zjKv>h)GYoq<9hu5bMX=5_ls9&{4MK-%$Juu?|O5|YZ*iM&0l(W%=JrO%lHF+;|pKQ zD8SEC_>0Wv9KXTu(~RlMmS>!@?9)u|vQIOD_^LJJjGLBC8~fI>{EWQiM_p$w@5?xU z`DtVK;n%wStc-6j&(C-Tzh5qYE#s5rS?F`7pw}qGZ#m9=EXQ>PT6_Gh+Zc^C_?tZO zmPlZI(C1sRT&-Il@cBx@@y2?8i?`k%kFQ+r1A9R%+!R`0>+@0A9*u{a!qLe2{`%%n z{E#+TzZLtJ_Ttms!#?~R50O`%GEZQL8JuMY(zsP(YZTH39YaI~EV z`n}<%md)YF9$HaHt5srU=_{hmu|Vite|&Q|-V}<2VsTp2rZCVHjfs=4kx3-Ep*dV1 zEQ>USViAA6q|_4(dYj`-(S}fLd$c|r2qUH1yCh_F`mHOP{IMo0HoP~DhUEsrwY$qA zi02`iNrKjlmU|>cyW(_FSA?1_Smo6ZPHv*vkx5!f+mWm$C8#qP{R7RhP@y*ps0hWv z{`&9%zdVb=vMr&8U7^@ke?!O{jqDA@kSnmGlv45T45%zVJW3=--h8EIad+(}f+8fh z3{^(=gd+OsNs!cT3MF%LgoZhBrbHh$l`(%HgnUQYl&l~v1{8GhLA2x1`q1WRZEc7} zfV$F1GoCB_og4B8&7zX@y<#nMCm7te>vEJ%6jX*zRzkPbo~EW)cvrK&IZ3l*ORQ2i zqy~}Iw_=@1Rt+h?jg9p!+ZrX~OK%ScgnCDgh*`#OvoYS|t$k5v|JUyv3P# zW+M|R#?9m_qdNanDXTFS2X*Z%rH}4B$A$e{&2b`nIOCRf^buvzDqr8?f=SXopyF6M2@x_=xj7o}*NY<-^S5k|Mnz6OphkZL&eHvjG4u_1 z3UF9?zO7N}qUOpx(kglD!=XsiM!&S%Ei8ed7!zz}uw^ZUk3r!dD|0ExL?5vpxKEX7v(LAhFaVY;n{SrXdSTzh^vv=26$ zLQ(pLXj!A3N7jSb9t$^wRwy6pS2M1ArO#iXYC}!FvZhdj)W|b@zI`!&;|k@i$XmA_ zmAYQaK^%Vein_t)+ZaZtTHgX!TFbN&4FJkKGnh>k2#EtS0loNe-qYMv2ae^>6A6kl z8bc4VQ!0Oam~CaO1x+sc^HnPu*HVAHsj5QD7r<8JO1bx_0~=`rq10_4gi+c+uyKw! z)~~^EK&@*)sYVlGy5fOoqa}x=*htHow3M8!Xo`jW4VJmx5v>ohOB|+?EJ3%R@3pIW z_wJ;ljv8Hh198h!U9`DAxHHt$9E(UTv-n1HBx9Ndnk>livaZ?rkmWNQ6Qc)*R8 ztFEc3(adO5AJf@xSxcoiWhn&66Hi><8$(ODq*-67+wGOQU8!tFi(Io(nYDN&%6F>r zTh()=Di5_VdE5Qr7_7bZ(dJ;OWNPVt6cK4ll09)8`m&NRTLnLgFRY`HKyxex>tS@V zRt#fV)>org=-M_<;>#03VIBz`<1?t-S#C6OF7q9uN)w z{q~*%#UzH&t*H#{4}|n+#3al@!ke+4nf%DA3hQTRI(j_ zx^lHzw=1+89h;;8j(~1sQdJQg<~%4@W)_%skx%(fD$kjSIt93F~ zGZ_fOO2%p=1I~&N+N$InYmKU0V~+t*n2H{B(helUf;)Zu2NGjXyA9j8 z%BYa#GLo@B7F`kx~Pqu~W*c#7?TjV!D1x+NNHt`DtOo4l$tve#2z51aiho9Wsb zwK>j3r!~SEx4A8!Rd%1+k@T5zYMty^;ob_6udhH%T!&CA*)r$WKu&d9?TZiFoC{n9u;p*QPe=99|FfVIu(YWMWp%$$$r14-i7!iBT zp(l*i?==mq+&7&in9kW(1(enBjtFUZKIm|hL7lKsMz)%PS4M3OiuoAq404?VSsk*k zc9=6QkF?b&c|W|ZSN2vFqq}7LE{WqXQ7=5ACrhnDs;Wj5E3OnZn`+x~h#I!iz^7+r z^6+^GOO(AQU{R1ZT4uy2nvp287L8JN3r9}q)^Pw_D8uG;mFw3RZi(&gpc@MeNK3G? z4zrygRO{B)`+Q-&_Ln3v{^3;0^eQW2lA{>dgOPS-ID>-ZD+%rPH`g}}SFlMMP2t1n z*A}D%P|>_A9*BiG(#2hT@!@VUsSHK@ktQfH%g}%D-F~|M{>RZ*F{nuQxQsWSg%3^Q*K{Ok6p~j;2A^OLlp1QFfz`V z5=c{Ol`{Qw!jalSEzxGXzokBE+GBxSA^&A?3uzM?{Fn&ljd$87lv0H;n4!J(9HatP z#p+8Vfv9M(c*iSSb=0O!_0e7a`U-ecabH|664|mirh0z#RYA2q+!(44M?zQwj-UyR zHJNLuTcf&Ez+^;JHeg+14`_}tO<4zume*X$4a$--5?vaRCfO{}@e}KP;eVslfur@U zO$%`ZsV%LW4)bTu0xX>rm9n_$eS}W?s|?kL8Zf168SW*G*4EbYtz{gJk7UFSWn)7~ z&l!;^DEUb_H8R~9+Kq}_rw8b2i$Au<6n(OEAfs7DDNa#0bb9ll4kcDU-wG|7J)!PQ z%68+CZs3v!tULkPTVlVWgWndznj+RN5PDEgd+~(h8(JE%c?EJ?g!K}m9_$Y3-UXIn zbEBsoi+2$``{qCsY)d0?S$otA#c-dGo^E%GEYPJmvoW{T4yfaWI{bLy$i?S%ru_!2 zhKBr+^@SKLB*XtdhBeGDmx8MzasTd+JxKjfQ@0Q|mIzZs*e06`JV+^$6Wv#~TR&C3 zo@`bgD9tdrqCHZ#F}y#Sab?LZ9jUW2EG(;yV78rHok3m)xp8Q>v@)H`eRhS_O<;jf zo>)+A4ei_1jO#i*NM5;qkIyH?50z_UI8+aXxw4n8NL!#uH%X4e(^bO<^XYmHssD}t zVZ;1%?>af@yiQFz&)acypRTjd1k$z1X+gTmnj@rZcspytkgk?tyq-Obu1jaFel=Y) zqQ6Tw&>gN>G|PhN2GX0Qv*?%7$+8o-+@l!}Z?Q+SFq_cPRHL@nqZy8DrAM}OPBemhC=22A`mX5CR)SpPR zB^>!TO8@?Uqcm4_(;7N?1nCL2GG=rw>JEHiD}Qvg^tm|nF}ji!e3U!Nl4yE7*j|=4 z$7ByAE$Y$+ok+)Bk~AMyvPRcdG=>6LBO6`G#>t$oazb%pGjl98x`7^kAR=6BPfwI> zw;)|vf&m#038bZqv(;sO*%cv|8 z+Tw2t)TMhueIH%1{e<)=p=`#AO4BGji&y$ht30JA(69&d?8ah||3nu1!c7N4v3i`o zIDy5c5ROVkT27$l9Y%>#`3V%|7#8_YpxcNE4NkSlYGHba8)E(g;rbIOu`+|hI<~T? z4=~|*hq3&D>9iNiRJ$-@N)LBiER0DCPCliTQe>++s7Tjgyyy>Fn_lT^rt*ZIM~=zT z{p*}KVF2bMv5l_MgD}?#aDoeS#ahn%_KucH+d{%N%mteC)FVASSu;y#&8g3}NV-Z- zPU54f^e%5&hT8|>Co;jtRTw8XX770i3WgRU{4{wWqzqK)&b}yXQkQu&g z+NS9+O2STW)2KS#9{f8C8K{PWx*w6Dz$iDsLCn$U3OVvHin%u$jRn!PU|%*pvZL(a zryH@q8pZQY6rfRPIVd^`T@q@-*5N1$6tZx`C_ElbOD$Fh(j%nzBzO)%jyy>%9L369 zk4pE>Qg%YEegZq1L$Q`*5g#S=ig-QCP76aD#bA3BiyWiya$K@`6kdi(dQm(*##k(s zlaT3(O`%c9vbZj1$(1>*7o~fx^vAHUkj`)0y&G#>>AcPtbCgzr+Pyj45FW+OZ1K|r z(38t_9=VM5(sbUuRl34jc|4(k%%#)4>CSR=U9vA6U45P(r{_jjC4F*C5E}K)wn4+_ z29+3-r$<;i)^xV2d~}}o*MqDR7^KEnqZ=@lqpL9N+UIW>U1zQaq{kG;)JKW`cAVfy zYc#hGKjD$4H+M7m#P^Tle}inzqdD3T-Jc#f#{W1Ol@=x%_!DT#;yaro5dA zi8jaUM+rf8ztY2%UL&2>EA`$woN`w@N`%#MKMtBuk8EsrS8Bi<%34RGhO zpl&Bk2Cdr&2JM;;cBWojurXaY;w`J;+{ZB~vjCf}nBJ{1UBlxu>~yth(ZIv3YJ0R% zw)QSSXR9KXfQA(NRq;4ZFX`+x*L2KhYPohx_E*S?4pz?P^z*jZ1$Eed)|3b9=&>fO z!KY~?WgH~Xt2IqeF~|dpwAOA?N^DETnaSxY6h$udq>S~xSIRASW&uzY*iQ6F3|4q$8^LIV$0JdIe1(mR&JSEo$75erhL#VS~W>yI^%d}OR zk~E)s+S(yD6w)~{m32ZK2#{md6cMSUEP4*Ns0mriiYzcv*qX7o0^d@>ZBCR)OCtfu zlA~_lL|C_epU>L2qK2(ErIJuUEc6Dc@->J<0!Xe-s(NdkQu8S7vNWk=kA{L+TZ@Y{ zv8_a^hSaL0)}LwXB$-6yu>I(%k_tVH(9hmHI)i6vFJ~63n_eEB zR_4gfQn8mxwvF0E%tuhx_O|7%!Hl9Ley1O2auj+FQ(#M07SS$-MFTOFJ$gE@S6!#Q zjW}LzJLaSGu~KPplShB-JCk17qE;xp$-PRG2~dHqwJfq16;^EsVb#Tyb#rCC6CoSw zINKIR?=J`X&-dfd4R)l_Kyy||*?Lh0uOjI8nZ!Wvr^(2{M*4W5!$#ncG#(bu9hq+x z*a!@B%-2|wFDLMRDW3iRaOKEXABJmv{(U&it5aYdAfgL>i+=M=;*KiIPwdXX1IBh;Dyl zqaJfsVDKEMBPY?=h)$Z0-IgGeek3v)N!nNu+k|tYjbxKuZi=#R!&^^6Liu05185zw zD6=gYpmJa&A*I=TyN>r}yXM)A?T6Ijg1RupZi(A?hM?zVHdaP6RVXjX6ej1#WE$=J z8&XEdBB-#I0w@hwvW{q%D@QLl-40G};>R9Om{#q$o=4^qz|zR>|qH z-?nk6;;BtUwM9ZQ7ypvRvO1RRx47&sH$@c~g|+TBe6Go$%!ON=I<3w$=bz!kh#HbLceFGa|cngbJBQ9BJ7+*-|ilMB+ss~?TOfFnf%+` zzJPwChVf?WN{JmQB{OfaGD+vAP}63tSWyl~8k@CbFYp=hNS5|r@Ep@ysg04pCIkvn@ z#7rIOv5e=Nyq0Vg&{rV5wG*< z>LObt`t?5h+kMnsuy3DinPH^BftY!CTyCOUdfh?IR6%nZNOnW4!zm^V77@5Aeh~UX10X)Ck4JApxY~*&`I=1INVTDOG~X+C8Z5W9>_}$Tu{!jkvmKi45rLV@i~YfPU)r?b7&p2j_cY~ ztoOR*PuW+=_zD>=V}6+=r!+~aO5UGMx-bK1Mk3|ibdIRwn=vVC9%jKem}@0On=kX- z{S-4I%To$#&{i34vWFnKWgn5*J&YJZj8NevMhw9*(z1;sQYI3vZW&S>IyBjtx5aR{Ol<_Wa+3u8Qy@7%~@`jMSotRRf-PFe{{q-qwi@#-8NG6Oa%3RVb z!$}UV?WHt$FDklkxG}062A?BYly1G(lk!`ZdK(urdc0$f?{1tMM(MHf$;e!QT9)!^ z#$z~{EV(H=>&b1zoX*^xPFKo)tbE-DlNo<~nia>(cz1t0j&+3jJ%aQQkdK@OGmLaK zUbC@YAV?{PJ*^bYg9nI5{QPh{i~@_d0|148Vy8K0EtM1AdLknS z;`LWZ)W&*zQYYoqRg{t6i5-ajlx%t{7g5-QIRBjTXenfS0mnk>Y%136l%=%*VfNH1 z1^XR-QXs`i=cPZ^k>XOfLdPCyNh!>6K0ExT@UF0YXCbAv%9RWp5dHl&l|Pvs@+z>Z zoyznn7L-K!lwm^i2YQVirJ2s zF>iG1qOJ8{)E4O0W+|Dep!AenyU)Wev)yg$I8pKJnmRmudnha-avV_y#5ARx5@ie- zv`%lgXqlO)$H1DvlfmQAGG=rZiCMoEv6iU?DSde6Jb><(H%2)L*E)uJBBgJyeDeZ* zJYTtEe#u!mbM8rzIn0xC$*mPRHfO${rUy&1XKht>saiJHnpue6S`fpOHMxwhWS$?x z!X`hYA>qidxhxV4?ccVW5h}%GLl!#Ci#bUECyjza?_P_MNL1!W{@6|wIC|QKZx?CT z33eXD&{QQ~cu?}nG8d&q8~2HGYji`jA<5x!BxU_{%O)IiWQkj5yDv^5jh9gWIsi_$7!{Ml@Y zI*L_IyU&yyF!jiGY`+dCFkm&`A?HUCtdQizO$icSOi5mc)0`eti`F)fqi7~yROVl2PXQQB%jWr1ZxvW!vnp zkb^Y_8}~KxTG143+^3~ccbW7;s#NAs(?)!UPFBshwkk1{{Ll`}zv}eBd@J5Pi>FS2 znMeIlubN?jsOc0TW_64%1-&XoQIg}4K^^KEiAKwdKHiET_QTwIE3PbP(uj?8e(+@y z5|9L7I?>db5()$A3WftVLw3kX#+sI!20k>2ricWym$rH3$s^0Mo=0%8rx1+G`o6-@ z7W;M-B|g@XTRt2fjirRae^Z_9ysajYvGyajB<-haRYcyICtX#}AX0%*N*$V|({@gl zZrdprg*k&2R4mNrf~r9)yg_I_4Ph#yg1TUf#9|?W)J(IGi!-J-Y#ekXUFL@Y zMA?d|H$d(hjW&|2g{cT!wRwGXG zGEM2BG|PtzN3oV<{qL>i5hqs!(3t6%>Bc9Pbn7NE<;J(4w4qn3Az!*w+%-k!av8%c zoF~>uccHbrT?aIVfO1dP3)WLD<0jAE1ld&HUCy_kMW*+$_IqVQPne=nt zh#Lm(IO9<&pJY?fM&Bk>I}C0rv6YLXOcuKt70*sdG?Tj|!%m2+#^EQ%twD$$Sjql; zy+x(ga^r=gs?BXD?MZIAIkXqv*{5pJS5HR2Yk^U}!n9Oc3wu`=gwtCW3hXgw$y~d^ zmX)5nqlr%2E5=|5TP;eDi14blvd%?|+>D=9AuIT`Fod)rghkIFh6MODnYr5`Lk@At z@k{jdrVE{x?jlUL&nhLR+xj$weypkP&9;tAmDv=SzNB>;&R9K{X|NMRc-c}y>uzKC z{YM>3{iPC9C(|j3x@0-lW*XS0Qoz}!2J`VLe|;??-&EIt0YDhQFBMeawOSkp2u2%l ztU+HT6d7D$2OhK5Fcz9Ik0-HPv)d|gh`wnz79HelMYy3ESO0!qW#gUENWLh59))j9 zZ;Oymz9pbSe3==Gzsj7;jVR6Hw2Cpk;*eGZQ-$5QrQVM-2{Z{Uhld~%A7Q3|5M$G+mcG#&9n|Is01)5#AewB~K!FuID z)3*1)mF>KRv~t=Y`P~sEn~W$qnof>jbt{bRLd`eHVyyMnxD3Vd@dvb{5ye$xd4WRh zm(RmdVnS0Z$-`f?u&*nR&@dy>$?>fVnK70`WwOKPX&yB-8R_$MQ>@H7rew-JY?Df6 z9p-)&Log>uX6Z=2z`+M#d!d8+(N@W@d~G&aR!DjqL|P;iRP5fs*IVLX)@UkP2eSU0!97cqFGD+pvzHDW5DUXwiOG7Ob5( z>4WyjG>q9@lI)UZQ&owom|Atjqp-WAakPqmnT&5_*sp_RQM9S8;^MEjd%`BUpC?MJ zP~-;5AgvtH-`+6425pg6Hd(^}eOox*<=^W0; z7WQz)TD6s7A07dkLd;u{soH5B5eV%zKPs+lUxn2}z*JwYd{`5)InC7(bRFpBhVdi5 zL@h&2n;ru*3^YcNsS0Vc1Zi_=e^{=ueFR-s5ifl-*%JERnQe7Ma%KRZ1xev)M0s%%?wMxtaSuPd7Ei-6|LAXzKZ z4fJqFYC>7$-!;YjuliGzSjtg4 zI+7hZU8soYr?4RuHMQnKIhA3F<;9^`R5e9$^ga}75m`;g~DN5^u0hoCP(Oe3&d|4k4MCxQdv6CAaN>*Q`9GFh&=uFX9 zr!8QN9S@cW#FuY0s4`tKl5TnJMr%B>Y9uY1dFDj^9|e4qPA*@JqQis+Lx*T=xXPO0 zn_p4pfoASn3tMwS)`nr zRnnTiq>j}l8$z>$$|3X=CxcG;M>Hu0k-+kt1gHlYJl>3ET@Tsy(j(^~Vv%H%mDy5_ z%mHZxEFDIvDaR(P*2^(^1m`!eRx89!qnO$!Uk#06F-Xv=?|f|dlztGW+(29Du-wUa zY%F55fB&LngAoB?wOYb3`@j^D`Y3yf(^DQ;mthc#RpM9+Pcp(GbqHTC)eiz|N$_JX zKg73(%tdid2u`GvhS%!r5R5qWh|5OetAXZ%CE6bUftIr5cB;Ow)f>e0#Mt^~fZ42= z^*LoEwJeR4x|v4$;>obAmWBh7tqKc4|O!Nuzb|wDRK++jcO4b`AVr2H$sX0aR+q%QQPm1-fk>4kk5-I(b`DTfP zHtbasA@qZ>S^T^ErCw1P)mLA*I zto7vWl=!y0b;n|7g2{vHac;n4QjTe1oN=s-Hu>wfgt3$!H(6OB9Y(NQKpP56K}gYB|?vMjDJ*!WpTS$s~@9v4N2#9!sA* z+fXP?Z}MY~9NL0N%|UgK85e~m+Pk!PvTe1rW>L4s3~`+AkP~rOVvyYcoquwI89w#@ z%23$G7NGNbxFQ>Gs@ctEM^;XJ~-zecwJ=KU} zT#P8v&Kxe;7#Ut8gBs&n4>0JfHL^DZpRGQU$^D?Z)N}omH(f; zZ-I}is`lPz@|a1|Of!?F4@lZ6P}@?PCTY_qNRjkG8|jNC<)PGel1$pryqX7XdFaff zVo^}4a0M?YC@821_(Y@#f?o0BCr@uxydvlo6uw&(KJi}E@Bd%x>~qfK0hJGbAHU!C zL37T2uD$l!YpuQZ+Iyb~Ty4^!7@Nw7V4f}S$ zFxt7VdejMJrM`cjco0)V@O<$gEFegaepCf+n*kmg!Z~s8fShosQY4T@tXA7|z=8Cn zJu;{K2xm7=9ROoHePWXwYaRJz4O~OT&X0T}M&lH34Pm#5zr8`(&;YF`4Q*?a9JVjU zkGA6mN1Y%W%vpT7W#HrmST}Nk{OX{UU9K|uvn}9?3(z{-pi|A?@l{a_d?QtkNqRr> zr7^BnAe0*EyQQzCFqt;VjLJ*Yk|YY#-HDK}q@Hr>l5N|Dc6NE36;RQ*8G#elIBvRc5c$4} z%}FMu=(couT0+~vzDRJj)+n_IZ>qP;>~d%z&IMF3pVMYwPf{op%nxi?56X=T*`!st z?x%XlN@6J4cn8k0;S)YG$okbDgDXJzc#miruHPjK%1u7p!#!LLST(FSNvk~}fZFwc z12K?l2>=eRmg5Z==wL0e&;xc4ru#r`fk~HmAZ?T|26A+56G$NNKvba7*Q)E~!9bSo zb_NoxX&*>(yMmG4jUL#|8*hv~eYD9t2<;M4es>}F8%NkvfVvdNzXu>-HHvb;G7NiJ za5istKL8F-8+ecoD@+Hfys6KyUyt9u@KbOZSrj|u-~BX_jAby4PafGQf@+v>)dxZ0 zMGZ7$vq?f(DhJY3OkH)qaljVk(m@wb!4yyTdF3cB!i=^U89pZ=Ab_?^z*MqHI@~Qd z@MS+(PP-rXp7p!+wwN2$PTItFadz1lF<;f!t`1_oBbMXlfvY6v!|2$(l5ggZNyi3C zZb2~-Y%>FNyV(dBfOH}X-LatE~Omex=Ch>5t4f{V2W>aJzdZ)Pd za@2<_o>qCdouS9Ss)jL$&JaDLLiAeuamv3BLg{P{_%6{*p9A2SfjpKW(IS=VFq`v ze6`*FbcgY56us&~HPRLQoI5zVYly@fl5c@w8t{G^4x2@NKLnWLo}N;sUykt$yE59YJom1$X<9O-_fJ>Eo3^oD|nzNhDY} z%7L7h;_47D&Qp@^Mv63n8g|xWQJ(xm^>*B-9fLb+;k?)E+y75tE}qZpt<}1!E5@$p`sNpT0I@h0im|okJ8?82l3K zW?b$H8D1_WND)ro?J15+?$~qt6ThZSHd}?0g+P~cp>$j|imRZ#Py9*OC&+4sS8?<) zC$0s!mVd%OtNTViBMvzQ%( zIQ{yD?S$Wo)UZ3|LAi6kmk^Y{(SA+$yw`YA>(y=wtTiCQZv=$Zm8cD;=o@MDD60h; z3M{UC^XxSn59+C-!EsDuo09G?XOVY~2Eyx*_GrNb5CNTzw$|vz|BkAG1}7l%>mU&% zb+G6ur`F+|rG7+YJf?(twz*PGeS9K?uI7gN$o)}vo6hp1Hl?KA=rk-}xlzY6HMpK* zYm2skY75>Wfc}=Eqm#YQ3E0YXZ`!b|4DF9b>%kp&4@Y+5+zyRX%JV-5%V9x>Lje|c zV1;3Eli?BMZ6Sa4OZO;0oMua&Q)b?E8F6NNOGSR?T4nKjk6ZZ z5PO`LLD;Uc4Aco0U*;Ub)W|1q3rix8JogXDgyjZ#a$QW@oRd2k>xS6$7D)Ukk^}^j|Ak{s+vDA8^U8VOF_sekr;8=(vN;x3z4k|iJu$U;IjZONeq$16 z)d>qCW2^53?QPiV7PE)FXr}W4hPSxm@WZFF+?F(5c}tMpUyDyC%ZN%q82~BUb~0U} z!P$eeF9OAA;r@zWQ!k!`)XaUu$~ zvDrMFX2Wv0bAlf{+c;oLiOkr@kX|3ao+@r-VrN!=nbSHe=q#|)CFOqHD{qqF4oyHu zK<4=|9Ld$`1fwbWfa9OL5h}Pgjm>qZVjK0u$V&)(TgIjh1g0A_(9Q`D?+aWRz!n>j zaU+(DB12&98;(Bzmx}?O}xIf9mC!26%rfaV>6!_Y<*c!n&)Mqf-2GvQ~z=ye|swiOL z9SzwTN@LheZ6C%Z9(eA(OLUrp5o+Nc8&-nQ;2bawkj1bssuB7Mya;#7G&yHAEgf{z zI|LRKH1?vg{VPAMDU-kH4@Pv7#LsM!Y`)V&qxh1DB>V0Sjc-dzG9^xzVJ_P>>+bPB zZoJAa@V*?Uv75x@HmK&t=sLotsGq=I18q9f`4vMyLu?)RlAyudd*?2Q6*$_N8jzb1 zxi0&0aA?6EnETapH&?*sT%R0U#(G}H0q9AEn`Z}oMPJ80F9~Lc8&>t}{Sup3LX0%) z&vjG#xqrS7=O8Fky$H3U_rhs>lOg!lA7rCjj4}DdBQJIGM^Cv8EH^y;V`$95k}}!D zz?idBa)pCA-cR;I1_u2jwalWVb32S-dxb_K!GqM2V66j*xK^+oS=QdR3y;78Be-oX z-LzkD!A@KkEJ81ela=yGOq@^h$iHz3=y!nnZM*&*P(^ag#-vZ0v06-N)0QgZRKBLS$gN`CTn1LA}&!@X0Z`PJ*jR z@NfY`aCabyHO03rgR3DC2b{ZV>g~`3ev815L4#w0_KRW@KqIchKuvr&W86T~pd0Xa zl;kjhdqsKdXDDojJ#eQ2Z&P((Y>c>y4&ohC4Ztb4nm1%|wox2(z2Ieyxd_@#LOZ{4 zbH_{bk+h>lY)mMx7cf-JybQbM^b%}90p!5MO+P)0Dd6M_X|QT|aREo` z_H)U;_=e!FRBt3AHPAaXT!%TV5%7Ae{F(j(aJ({3G(FznMO*w&!kQJBxV#Li6GZkxE8z338uC9!;QqR+Q`BpcrUzkDjw54chhcok44VO_<*mWrTKpYn%)(~mU4Yzfl+f90F52&1hl;_+%}LSVa_&-j49D>5@!=;3c8H*;89=E7O7#J5C-7pbDecCaL>WR&A|GfCI;2Ct`zm<3=7*6QB=q>&Iv+O*mqh?2reh zC~d)8*=rCCw;Hh67o3pB6TbtFK5=x(SZ0lFl{jO|4r#amiZD4K*kY&fQ@4y>8^WYL zu_U*k&E>&1PeyH}KlzLOCH9282|Z!Y*n*bg=-AQnQ*^XURV&KkY$i$%x#c;kI;Q4W zib^l?$di6A2T{_*R!N;CdeM#6kW#c6u=Yrv;^wzzW{eMsa7NR`q;In%>vD&n3&YXn z4hy@+0kZ6)-47D>6qhuoqLd1vc87HoT@^rzWjj)ag;*@Bf=+UdhDX*WygewdgGS-+ z=D;kPcwo*#X?&&t@B*Yr{|mdPV^1z4H<0Itfeg_ltvm205d0`Rx7*K%k1F ztgOPD{8)|jEvQA_vYnZz1?ICBOC}AKC|gV7Z#>AVt%zq5t+t~yIv%dYvj*dSKI*a` zCNq~^WAjG`M8&LEz_L3;;hm<%Y&07X@<+G_o$p4eE>|E~51+_DD#bDd)lAid)x40v zC$B0rs%nXa4O#S(1)34`Wms6XD1~GP_!V z6O}gyPzP*mAA|j(n2+YuO4Fum@(E z4Q<0TrD|iTS%MNnfJZgS5ake|X_N}e4Czh0Re72U3&WpQ0C|>8we-?4^59M;OShTx z1tKPxVaq!~Om%{@3Y&Ekz=f0`>*~a6vFZZHbO9R2kmEqkNCI1qnMjY>Uk@Y_w+nk%PU^HfMQ8 zIoTQkzIIn5fRf4K)S**#N!hk@5OoL#lZKM7a)WYf>)K%_3+)R?XTlI89TcDFzHZ7@ z`yAq2%&iP2z+$S7=ZYD*N1!V2kChkgmD;^QDe*C$(xy=R zO_?}_bplg3*;=+A3){z3TTy#%u1v2^`fuY6(|9QQU{pC-y={#W@;%9~^1~T@k085H z)T+*lYJh7e2xT5RofL(t>TRyM5V83JMNKEJ{y2l%(lt4y8{N{rbzx<*36{r7(~SSe zC!lHrsLAzb0Ry$`*oKvUoiD9nPI_<{UyJQ!21IAQ3*IciBRSRHJS~yFNsaa0rg*_l=a{#dVs#uwmMhmzF=8ml` zWhVPrNG=qc!e(w=4wlSMFs+oVNV+P7v)z~rzlxGeOME9NFb1dD)EAmdofgcu^?e$Q zSKp_?1ofx+?WcgDoi)vjV9Tq6ITf})IpwGM{mLm_em*F~$*NaGl5{W?@AT5>Ur_3p zKuJs0+>(~|W?Gw!+lAl^t{Ck&n;9zt=?T!^%Q;pTXLh{FQC=HWO)@gUJg!l7T+N)Z zHT@Pn7<0#i;kWOVgCE128_heWB3RSw-L%{~9t|fC!yfi~Zem-^8Gz~c+LW?{#oJ8Q ze2cR=*5>5mDDpJRmKu$tD<6|>T`Qq}c~3%T>=G$sKXO|z$DZNkjD~M2{91v&O$*it z^zc|t6Qn3x7}ZME>4Cg4?Mw^S474;Ow^pF7*<*QjREx)t$FD1MIpFx$g96<)F5l&|Jm` z+CO$pPEJm{b8>6h_D1o{{Lv6>t7FEmLfhpcXrC|D)0F0#8qoW*#@FVaR+&AKR`*K8 z=*^;?;Mot;a$N8MjnmG z4Q9=FrSodxTZhkVR<19bI|n+SE<_(YjI+?sZ;TMS)VQ?Jm{0l>2JKA;))?bl7L)F-g9x*d zma@HAhkU!2;LI4EYscLwvKFW*;s_*R-5S_(dx0swXAKyz|6`{kfXA1vx#)pBTnEv`L;~?c8!s=_cSue7UV;DmJ5y z;Hc5t;b0fRuJEwqa(t`Q;JQrx{tLl%#8x4bT293ly~pi z>Z)x#hZ$X>v`=+qNGn#oSk_TKcKrxSAKQd>#!4akV&37eY=dsrUM#k_z|&PrFSwje zbGyEvYoQ=||PCyr_ME3^AL>GVKJ7l;*AzkUU*0no%ftCp=f?s<_ZEDeWq*(~m z8*H1aX;T{XlbP@uk#7^;1j%oO!*dfH&@B>Li<~CNyeZj)cPqFZn~0^WkV?Hk{a_|< z#GXqlB%V%dtUTaPR2_i4(o=wi_W4x!%TI=`!LD47e1hmN(w6O|3vThr7pVH;ZIh1s?>v?r2k=KJh0h5O{TOQhve41LE<-! z8j_Xzr?0Tc=s@M7s?2D`jVp2A??fTtYM89xd)HqZ4a+3sBZIEUW}zAZ zN-+H129V}937K``E}HVu3s;oi`uFusN!$Yh;qEz}6i?p+sC&}>P?=q-v{WgoLuV|B z)xk_*Bva!D&_F?@Dt!rdGcgN=;fV43AX)>q9pc5{fBk2ln&TzjvY*xjX_ zyB>H_&S@{v_rqQ2(Lx9&o=lBSP0V=#@nuI>ZxKr8)LVJ9^Fc6{FR^3iJF*nb|SxPhRi#h?X2SK*I@~cj3tx%IL}F969k~CUeKi&c5I* zu`YVV=7C*TzEZ}AR-`Rsx>{Wg>Th-{hw8Z$T139<+@D6~x(6GoUCqdy6Zp64o-FQvs6SY(5#PnGWpeW-kj?UO zTAZWW#kV-Qu|b=jQ@U;@gDzO7(!Szm808dvaC|Nub#Ap|$1P~kI{j~4CUGfbx0uL$ z>`HEB63@4Z6v*gh9xVeZ96bj^@FaV1&v7)0*6_6kxGD)%HhR!Rtq{NEwO~&grJF`| zb_E1hCrL61SZelILT*Go%iQStEbRsRPa)ql3U@PG^EZP~goQ(`qf4Z(rVY<|m2$*m z8nhmQ2ldp}WdmoSlz$kZNxDIc*xz+i4z+x%D@P6l^(G~VgjLPJHN-0Maw-@2?aN-< z7E0ValqN20l`sj3J}O#Dz6nUbB{^SrYH~FMOWDmL?B0dBeMMPq!d4coe>q(F1!NnP%bP(;h*H(`@OM-16l*#5rZlo3J`sms>7IF~}(u+kiH6+MaCNcGpQg zcKvG8M~lwUoK8^7i)^NIEZ3skU$O#1T_PvsV(Wk*wW(!f6W${{Xi8X~-hu}48tJYo zg^+VD=O$AT969QHj-i<~UTQV8uDkk6f5uJ&s-OwjHtwUR3Z6`0m#?~_ z@u{!R7sN;zHbc78*XT=GuDVc5Ruw@t_%zsBD{50+DvGc=^5z*+@OHp6dGo=ov?DIW zNOS}-wv(J*o(rX{$svKr>eCNW@|WjluE49$#fNZWvrZpUmxh>N#o7=_Jv zbHj$GiMgS(5+%(HP7Kw8fvSAFC^id72OgE2XhB0IMOt)V8Az3jcPXcNZV}M&ZYDEE z_qbBs6nQx^(e%?WgVR9`2ebU$?qZJIp(coic+y-$i@neiFI11vRyfm+t~N?maG|G8 zJRN(sZ|1DYNyS~Gab()ab{x5kQx!)|u_v$eNeT~zsMw9-t%~)~p?YFFPyX2~ zCd^{|<(_=xbVgU_XiAKCaL}wAP1{@?)TkvM{>pH4KO7f^?;hv_#`dJNT6&Z&-P%-J zt`88ojYD3P#mY3cG1{$wWrlaox?9GO1_XQU8^{wam+WHOwn2VKfO>>LJ(0k<@rfv9 z(jT+NF3nI{E3BaY2LiDm#v`;fO|3aQ5#sj19R-orn!nOh)YTX3-_tTB77|2ab~|bi zD+a(-&$CQHU+}D?Db1orI1rE zu-?!eSoYWn)1QVN(%HTZ=${VHQLW3UDD7Hv{4&0E*o+=;0cEJ-lzDmAi)$vQlvc03 zJ!C3K8`|K+#@fARGObgV(^Frj+~2F_86~O|2Rn;;=8q!Q1LV9Re++VYCMx+Mj?0^rU07-3Hw>ooC^96(c8N#rVY|VFnZO5*W z;M@{nJ+{nQO?TULO-IX?=`0s))z?f|#4O5%)Z>bSUD%NUQkWm@+|3&$e#<8Pg%yGX zo1i+O9B~_rYd_`tdQYQj4)!Xz{?mzqx{5tg{xFMpvZf7Olk2%U9jSUUA$Q$t zO2{BwCxNrYKcXj82pcl7dVFZB(V`uK7Qkg$4n1WLziE$HaDYvDF6J~7%`Bz`ORbl< z^$MFcxp6f#X?W^sbgpF?=15YPTd7zHJjklNM%0e6H(2Fb9aAj^2HW-hAG+@Msp|Wl zs?i_POfPPkm>tn-@DZ;znOVUUGA4eq1Fcd=a6HUxKc7rWsikh;2E5!A|7@*gSNNox zkBLxeHr=)~1FBJTTo@%=V0zL!jxz%#^sUj0wi%w^g9OK+q5Tnb6;KrXeO&9_Vo7xx z)8i7XOC-t6I=EJ+Pz3C@;`q)MRnOcepfw4G$B`XQbxNMmZ0NUWitGgj6Jwhsz<@9u zhz@!8S%6a>9UC1WEL|i}v@sP2T4fwQq*SdF%&7)=C?j{BZAz;_Je@#jN9vk^uzX*# zDbX_2vL^i}OE5K1)U&7OJb34ovdE=7$rQY6O>JZ~h!RHCq&*=*qF9v4DU?6Xy1^?n z7<$C|V-*s5qHaK7D& z@=62xgWSF0a=R4JT=8XM??%l!4g{`;pdwG{)lTD~eg7B0hwa;sgSh zAQ0<8>LqS!Bw;FI>8qVke!`$uMLd1269Pbl0V0;ZzA&1|N7?j^PGx0bEPXRkDTMzl zmcA3E2``M?mz~%;zW?mL5kH6VYY0f&N1b?PH4`(MxEC+?8YK6^)?4pV8MVZQv>!xT&Zjo_T+$+>|>}gl=;xVwtOLlug(uD*)s4 zJvQ(l3GuQcu$l1$Gcq>7l$W$kOYy98Z({zV&oQuZ8@@`6ES&6jE$_%4}+ib!k}JZw7`Ur zSZMO1_%ED5gar~#G_N3x@VZDiR1w?l6c-oBt0qgwN49{Qqw$fg5fh4!q@q=o zg@*CeB)66nWpn35ibKT`L-)_)@Q@d-L4XXLz8tabh~yU{oL7i!pdQNAXFt%5Unbh6E2QtX2dd8vCN!UX0|?oI5;lzi2Qp3`BC&f zGec28SpYy;dCn1qktra9NSz`n8bzr{I1kvzdZHn)w1K9HjSLrnQrXiYfYb=qzq|-D z1cP9f8pq+-7ZkGq#h2OzScX{+LeMe14cAK*5OdFY!65a(MB3u2xgF*V%b&5og`Sfd0{t^P=TvWb%BQpBji@Crx4Zx z0xR)dq?OoLDJ5yr&N{ag-@$4p~L=$;v3BrdUDpQuuVFk3hmv6*d@h0c>Anjs= zMNu~(5bKFkE;8qG^tXm$>8IkEon@mFN&=Y>3)Cxj_(pRFfjuflqhM4=SuPdJbU|n$ z6kSXv5E49#!HX%;QkZX0v$7-%K8d07uu}kZLS-6^LCRegl>`Vlb%LNk_?gASBi$xS79g)F)h!S=%hpe(jlp+R#}pO;J6Wr zUuGZJ6i+H@F;3YAiSw~lNFa3pOS^_^uLa;_{4(a!Yn zu}O!MnS%Lc5W86BOjO*Be&8KXe>D`Xl+?>0$MNAJjCN%l_zceoN2=oKo2*REj)+83 zG=?0BB1gprz0d`RFOy47j zgO!0kpRp`vDKaO*(KrkY4Z4{l>y_{G!0NL`?kvN&Pz|%R43U;bFe2SE^TQY_AGix8 zdjQrS{`t}D0a!1QQW!*>E1!fW5fdp-CrkndAy7le@hXNnBsvHBg`-7MAQR>gdJby` zLjpTf=#@PHVuteYh(LVJFtORJ#Jz|hAk2{p$LGAAoik+R^kdYH1rbziWg!zF$k1q!3#Nr42U zgsHn;#Gn+0^O-}=qtV2{0+E2aL_j1KD>u`_(TK`Z#2u4RB!V>+7n_m1NQrR=4gyyc z&acAUM%fb$2VD#34yJV%ei7z+&f8U$wg7e2$RVy=(NqLhUlr%}s)7iN3W~AJ@=#CN z0&x0YqTr^gf?|_bRZtlp#w;3!B0^yix$IS(X0tJhOZF-XLMB#8%@4H_HF=!9Fg;1N zxXBlj5XkP9gjf%l5H_Ma)n@)ejrhDYIXMBnE!22kl{C~()`6^jR}@bcizlwbVLd>& zvZY+vP#*pgqQGWLX;X~+Q1lz3MTIcP6FWjcYf{%#Wxf zUMD@{GoG0qk#$oBl%q1Olr;uA06i;fb*XTRRJcXLH%a&=kOgY~h>#`Q2(++Bk7bt= zpUgwF3J@j&_et^lSWZlCCpPkPh`kfSy9CyLwke)n9nUr^pe8m?7K)Z6s2MaYUH|ng zET8;IUvpGcG+a(r@r(jZi;YR4nGWgF>|!>eK_DB?epOm}UT_(CQIhV8gRg#H5YMiU zXNTk2o>+Ews6r;N(W#h`Fo6>Zv4sl3VX&cv$U7nR7?Ss61x)J%$!ha(nT2_|m{S{g z3hA|^>cCj!M9wX>Ii5)W3miV~2aDZQ2|V*4ovia&yiKk31Ya-%Ct1l^S-=1^%n zG80oOEDkZ??D_&wZBY7+T-YI_OO_JWp^;OcBiHIN!cWpUVCE07K z7vlSis^Y^{vHhj0A+AL_=F<=~jjoCh%ODm(Uce#{)pK(^3rhA%sJZuz_s?v*ctl_}SPVSG zl_L8yg$je-ngfFClo>z|5#a{pK>yNy<14tRlZai^VIl{WYu%+CZ3LYeVy-GI(r%BZJv%!DjVvjbJ9+zZ^{>1}osj z66$ZaBIYw>c~RH?07P(v2SzH;EEl>$`@MFXh6h_!F_=is74Fj-B$ z*97t1Uq4AObF*RIDr#<=E(}$h;F@^$Wva+wuClT(L+`21dl?bT;@RgpL%DACXk`S1 z+~0&O3?ceoF0JGinQ9x$O{Q-n3!(!q=+1wTeOKR3K|8;O2PfDPJq>=lF#p&=0MOo% zq(pLdLUCLP22g!XW!Fs6I=uoVeU^7Tt-9 zlqCww;jQ+kL(EwauPXXeC}y0k)>p`q53Y}R_M4!v213em8X+TUNc7izvCMtY1|zG$ z_R#U&{xk|Q)&kPgGwEr}E< zDLJCl#Md=az~&mH6ulT-Ckm!X{NwLZ0;qa)ckxCSm{g@YsR0o=nRi(Bj{gp)5 zb5be`@=~a=QmFY*X_>6ouolOvN}g~DlmhQ~=IOHHLd*?lf48HL;&8qjEyZSs8^oLu z#R{yL9FvA4G9#WAJOMpE+!daR=>Sv3(?D_#*Rz?~=o#&)S9HrjpPH7X+048b-1iYT zT{Sz%!hf7|_|KMA2qc(*bpv)+N@44xuH)Q{FNP z?!J{wFS5e~Dxkpr9&~;Z0AZljd1;#g0SPc`yoAgP(!vW~LY9UW2SHHuAH0SQS2i?fnWee8u1VGCG#=hCW3_+7n5?NF*Z`` zPU@MLVFI%YaIA{)NFQZol#?J#%;Bo&G+{dAy8E}<09-{}$Z^D_H9vrX9%-BeQv*r5 zPfB8P_low1?4#1IOn(jgUg@u$3OBWGva*N3HvL_+EB!+{U(*lKzL0%cIH8`5 zr60xiPN*;x=bo6|;uptXL`)GvqGzTH&ycticm@D_MP3Uf39v9?RM(=H(mz2MsK*e{ z=2_f^#m1L?EZGn}#2#T?Er_uW@KY#1L=F>xHeA;7F0Kj5hH%+TXEL2*(k1N-?br09 z@_dpcc@o|;Jl(E}NpT5!Dv-XZ4iLULoauvQoUeo?YzY1lVPQ#tAHNXp3UmYq8h{Y@ zd9^4keprvFerw@L;o?ZV8yi*lCs^qlt4fJK#CI%HAIsFDF^-Pp$l4$M#pJ;>DaF7K zS-jNkA8Te$quG&ph<1LDD6v``t$@8=k3D9>&7QUd80h9E5arIMwk)7*d$tV^6YfQ7 zYcanya5{H9xt$6FkKo;u#o@5qgoW)kCGh?5L!_0WaIj2x!{1fyfrkd2cMCA$m1g9J zHiuiQeyqa9&TB(q+~obO4Qvc3o& zRI?PJeZ~#7D=WiAoG7AL?qI8tnjw9qP7}Iss42GiRXjO>;wXGfxDcLg=@Rrj2*Bq< zu$N?K6}yJY=}2e4k)hq^Rt?F3#fa`GTBb*JsRZ{`=4*Ly?8SNnEOu|OR)eDg_F1W) z$7Gw2GY(jQiUqS5x-&MiSHc%d_+kmCC7h0`QCQ5=|`cXDEG1Kb<&q>1k-Dd$DZg2MDWZ?F!Y(AUIhhy2D*R1zR4S! zGIjiX>WbL@_Y2q?1ndnGz7AMo$qG=Cc-<`cVB(opFcOB2&#UG65GI235%i8@iX^^} z#uti}xGWxxWpA2GZIWsA`UV$<6r#d|ZjyS~zd2}odW)?bie+!%$~t?l=rz3P8@Nn1 zbh13Lf>nGxyOl-u%WkJckcznr%cS-3k(*><%bpu|eI?l~>OG{fB<_uK1^yOlpZ(l2 zj_*IHZFRXz%gh}#mm`(od@40sHX>Z0gC7Rj;@NxZ!zJkEdGTxt^qzwhzGw3d#?d5s zBMJWZ?EH9kA36;h$J2-7365Wt6wa=X?Z29?c{f4SDgdckRfsa9pb@A8+nBJFwhKpg zFPDP6cBOxZ}e`=+<_2z6f=8auRY~x%8sTd}~MU z`^w4NspP@4qq855LvO@0-Q(pQ*1Y}W<%zFuF zHu6Pyz9yLhSRC(g?PSSq+37>O`|X@4X#8+Knja}&Iv^F`}<9OS8DTW1p3TIQ#NTwkkDx&uN;leo&s zsl?PW)n#|Vy*G|Jv)!itf?Kdk^xj?c{*6|Axh1C`i&4iU3LeRDuNPy-=WID?Bnk-f zp1EH(|1jL#{L`0|;ozf!B{*89s}D{NVao(PI&#j5Ybw}hbX`Sj=#+*S(y-4S!ao%9 zyd=TJ5%3VtrAsV0&}^kB6$GsWEdc92QaPQzRKW6dfUORd$aWL-)6=BS9^$Oym$QpK ztVDn%PZZ%8i}=P+@On|PhcNo6#He8|%^5l!;ckgmV!xA40iNyRX%6}+80TTjB3VgY zA|d0Zu?$lH1BBGFwDDX)k_1th1j55+;({TWT^9_d9j(RFYOIBsOA_pRga($@!q~Hx z%nBnFu8?XIga`cMBNb)%6F4l4R;3aKkja?FM`j>UEPJGK{F4JbQb8-jml>T3pqzES zA33iA%F-1&Pq5MlMe~oa*FYQZ0!e^sMn~M5+lh%daY*@*Mh?eFEslHP^h#xA5srPy z{xVMlVN;|Wf&w~{_G%u2xk+H!nshhmB288lvRosz?21AXWCbB1DtwtI_3T~{2BDP- z%ULT_Y^>~FPex0)^GzEIy9rhw?A1aS2MWPC@esEy{6ZJY%#lq8Noh%uRsj1w02cCo zZqds&pzQsjQ~Pm}T+fs8kc7KK$O9EHP>@Hz6E-l_5eL(V2E&~?wZc;B3df-5Z-5#C zL(&Kv*CNx5Ic|a3`Ua~=I*6+8hxo=I2=7V~+=zIi$4I3BOHBp@l%2#`WJK-514Qh3 zn2&eL$wVT>H7}BYKjyqNFy|aRO%)!JwRvScN)wYdv96TVAX}zA*>fUi z!0ZjIoW2YH6so+@p1jdq8Y-AwVbf~Nqv`ZrUel;La-Hl7aZ3oZfe+TAiFYo=WR3w? z4+!a@ChdbVxjzV>1#o+sJH#LzpO|$~!|Gma9KyWdnSdxnvkGT%>)j=;J3oEZvd>+| z0Thq#fn@T!T3-*z3mywVr5a!|HVUffh(%xZ%_?#hMk>RM2}bS{jvcvaOxq7e?s&(x z_r;zpJ~{I6Mdg3{;liJvnZCiCU`&46n5%GCqA-L9;+tEVYE3>|y!gN9!Y5Ds)^9)k z%NwtmyXIl1uw`TFN59<>{_Trh=bzmE)8D55eNKF6r}MdAz3;$p_RidW`#+Ulc6arh zvu5?*@yyR2T0GeSN`sqROK1HI~u-o z@wPADcS6@+KYsR+&#d{x17$xx=YyL*eZ?hD)P6Jkm%8^%|K@Wq0u3PO;1N2`6zWg; zh1QtRT2t)*-riLICJ!$!+M7m|ysM(ukroCnAn9-Ey)Ag9a^hlBd0&k8?0CJ{|JqW1 z7jE`U;_Vmv$&84-Z#`3Qck(V+@Rpp-o?^3uzZn(P?+MzA&VZ#~4~W>pQ*9vk*Qzqb z_CDrzT&nqh`$wEY36npa%t9^>y~BhSnYiB7;$=7cshDGw(&K#rHqL9rdZ|yZXbu|T zpx`L)ko#8pEytO!{T1nZM@;zk7fF@-Kb)JNb)# z_r%=%J9nHlHFTmm{mr?jc#n~I4FY~Kzx+&F^P{- zKB9a~=A(>{7$0#y%K4bWM+F~K`Iv@B!f$E(F9JXt>jzVpzOkXWuT(oJaaL-8q2)`e>#A$3Yfeh69PS<( z9!M?kO$`qXB)d;aY#MIE&$Huq%;opRm$%g{?yT=z)>&KIQD2i>oUCwKLuD)h!iH=Kb^dR%fgdAUy>tsyf5p6Dd z=v6o~hT6Jhw&(SDXXP|*0L*aA|nI2 z;Z;fPgtVKP1ajbpQv4MBtqK(up+r_LSY+K}!KmvHz&hsKz(+l!=dpu&Fp@hW>bA=- z#CZwn7!UZ~5n{o;ta3dcH-`#K`96Wkm-Dfk(OQPCVd$HD5asMJAGih-%kE~kfs1r| zWFCRr^FXAB9N3B4CV8fZ1>Dm#GZ~)vRE7|g2SzGbZp>kmI8$?v$`Gp;?Z64XvCI?7 zG^KXHGaQ1|L47%<5SwFihqJFD)V=*-N$k#+E7Sjnrba zy6NMwI~iElln0`^Zb{#Tvbgff@xd+x8$7@+Tv^7V!DIEzilH_7-7L7Dxc`bF>Dvnw7oK!vuX$XOIaf&pt1*Im#T|Ft z!b8?|>r4J$spNLDHG@HrXB|sp|I5sI%6B_)`ZAZo^K>+H= zLXGUBd>q0aUBHWGo5&tQ=EzAdV#?}Ehz@0AqynLl83avN3{owjzJVk>iTzu=IrHQ=QI^N8~sj`d%w+?usAhu5KEx?HaB~G8HUL}_L=fuvD`sc`j zAl+*fcUxwYy5OkrvB`!jv~XBq=dK2>8s4Q8Xt8zTB9u8mT#NH@_(Ft?F7qB972_Kh z8oWeqJL5Dx(;3v$ry83Cw-D}Y6U~{1Cjk_lSP#xUY1hFd%i#p!rB$Jf?7xzkG+Vs9 zq!zbrWOLR%MIdvN^iZd%IK5%H^He#=JvuE6r+IpRY;8UqPHV-*vQ}Nn*ob+G2i9?6 ziC#fD^nnof_Tkx(+pR*x^yPYdpVwW1a{=IF^xSk0!k8G9)Oc|_4Oe~CFAU{`8qqR4}_(!l(PhxeIXnSq$B()6xWva zl^8nMl(2BaFz*TMpx3HZmFBT~iLb}JHSeOI>(Qw$AuwX5~vLM5z?HB0P`;{F1G8DLG53-g?0}l$s2VIB{DyRox zzrZI?P7g&-0Hre1f!5b__Z@SV9}&4hN*t^>s*pDSh%h}3A@$ZXln?ye2A>dyO+N># zNKkuDP|H_r^GRBfi21&7%vZSkl_zn47S{;U2Pvr-#)A@!A`t{YBD4XL33V^oFgCs3^H(aSOQfAxUGc*x|qSI2w_B_e!MUyYfuyE zKtOBu2sgceTUDE=RK$l(h9xiUb~g^vGDcwhPnMdk?^nwMl~UUDh*k`4_v@qjUJ zEP!#bjhTLx*BG%IejozXC!dqRMNOmuH{1?HJ`Nlnn2Mw$b?N|=Cu;13zQEu{IwAKx z36+h3V>29Y)IF>(Xe`1$j1k1I6OaLTaTOHfRRJ9SX9TZs0!a_yd=}cz{2Zr%GQX_k zz7mQ2bF0$9nsQ_W)VD!ujVfY`3q3%S+JoVzh*B)$~#5efJ6=GH?w> zj%Be#zGy!;k%|!GjxFN!K{N80>Hg>4o7uOg$c7RRk)F84|@z zT!c>nI1$WhxIc;4OsBXkFHZt9LzBw#^WEUgyl7cLfft#XUshIF7>Ld+h?l`NO#m}- zZ*pe-%z~MPQ_8Soo|`l?TmrvrS&{w^;lZ6q>=4PNNr^=uN<~GSYC(X~8lf0e0S-^P&z?Jad|mW@NcG>GQm)GsQ-&N{1VB4!Mof2QNR2^2)=HcZjcxM1N%IQeJh zm&xun21NuN<}3AhAjVcujwISjATmp>L4 zqtG&13b#gW5r`!~p(?N2$UVl@Xh6caFw=}Mb|_)2W!J;Ff)Pi=Y3Bp&$<#uDZix0c zOhKds?-#)%iCneEfE7+i3YNsy-jX2tgfsO~m?b<~uj}raG|zOUD)$3NSw_dgZ-kOL zAN*iB+CV}gQU(mM9aAFHao*35xSg2FLtN*$1vCwJ@AKyvY~zf%jHh7yQXGKHEvO9h z0@Qs93ik;RJC_Nfq_EFOQm3CZrYXSnFxK7f$zY9$gzOC)d|&~0OKBpYmC*<|4D}e1iPa6D0M3;_ zFhRHU;RsB&`A`dv1kgD~g<`|<6f-fqTiVPH>+M(>qSN5h!97MAXAv%H_$3)GAED^6 zC5-=PB)HSZGp+|j@w@pzbPBFNj!CRYU{R_iL0AEWq7^O>ojct0P+6it6KqNB>*pqb zj$mzRpBW(xC{8HhFpX0CekxWN#My7gMiOEiBUo992-J9GG&;EkG7W)7gU{oNHq;>} zZnt?6o$MjJz&d;Z4i0Ki3E+Yhe6c9!oh!j;0$wl$%05(ijKN~`5N_(gv<+tBfC?uA zIX#|z5{!hkJPx-cAV9H^(>R(v<(Ow>ds#N8xkv4#@s5o2nQ6Kx!|Itu1n0~{ZW@P0 z)4*xCB!c-|F1+XgZ*JcM%0mi_FRlr2W{n3cfgO)#lg*yMGzK0)0PKxtnQ_@vbP^6d z1ruNaa&{4;rIe@bdHW;=MW1^MMP>JCETK#BDHAU2pqJygD1ia6;kb9-#9KIJUa^)U z$^r(SWMa6jM0Q^B)-ZPE!rK@4Fc=GR$-=;L{W|BgJdRxYr|qA;R`%h3y=Y{myxX z_}xF^cc1t5Q6nM^?#h5tja59bEb^A#v&pZwOKyPT9U_hu+?FAr=0kA4VN)B=) zZnn%v5w~1yC*r&lW1)K};{FB@qQ?yRL=iVx{OY(97yK&Oh+hR) zKgL$cLjTzo<@+vKd=4Z?6iXTM96E!ch5Q1nhwcO0WErej9 zujS1I38zC?sO+;RL}bZLOAj>Vongjt;0??VU4ml}vQ~*8o6%BIo_SPDQ4F47fP13w zkHR|&6aoBYGHiAp;xIJup%HWdi!A7V_Z(~>DZ**3CQ7T3SXQAPV~{I+`wr7d`btkE z2$Uz-XIt4wUkTZeLRaM$qBp`TbQKC6CuqLr@)u|SDMJ1Vnbe`{g-S<`l9Q7TV1ma) ziWDB$(>A7azRJwECM?uAZNt#9@DPoEPAF43MNDM$SI%_vGz}_%cSR?5hz4vhl@_zaWN)bB7?T>i&L3MR-GlSd& zTZ-Qcz%lM$firg_j<4&%4FryaJ)b=RGk*`(s8GI97L*R z#z?X3VBbQ-jEoa%VFlvaR@r3UJlyh}hwo6%!}N(jad@80SH%VMz_XVl8OOLZ32xg6 znwwvQsJb?pAr4f`wqRNcs-c!*yv% zCC3%cldptng1Fiw3n7Q)(X9yaa@}PSy32rX94;?5)h~@aBH=Rj13oRO4-Zsc1b5hp z!*i0I@AYQBq`rbDC59zlknj-!z!dr{nEtA*qm5?rT{5ztAelTTp+i+s;*?p(O4<4n z!N9ffnZ8%jua`2H%kvsZ8I~u>h0QcRVShyA38I(?h+FD5Seic%W`sveSO)Vr%PAhO zGTohk{US%C2xd<=)0PlQ%k0V4GfzwFWnMi@X#kBW%}c?A#ey$*3E7Ag!5kC>ZQ-+j z*%N?!r9eKwXZi^pUuqQrqtZ*bI3P=MQ36;JY|p5&eZ+D1xMy-Zqct@3?15zehQ8j_ zd)rg}+%Rt4IncLf&_Oxwa~P9pb4=#ErVFtXUA?jokJi-S&|qLQdU;Jv-I5yqx1>Q{ zjT)<|Sz1#k32uIUUH#%EwTo+6Qqmd1Uq@|yM@M^GUE|V*hPuZ3#fuw~olDx5Ep1r3 z6g%9hrL{|vZ5{RX^{JZ1RA*bVp|h=_A;m~-=d!li_V#2d)lrvf=xnH4+?i}lr8*aP zc66Za+GU;XHMMoA2J*ho?1G`pr4fb~@_iaGb9OIaZ^|SLkZOF?;DUkf7yKsZ%%cml7lH@7CWZ;JGUmrEn1yu>h4YqbnVzVG?*Aj4WQ8ld^`gOY z$3$zZ>oE9uR4=Wo#o?YMj#Y4?eOWQkAZFNgi^-F8(7cX7bj-hUB>+HnPHP+VD zFIiSopQ>xDX;VPj2C0*1S#<_ZV>77oU$f0Bx$RAhkH^WeBZ#S9ox1omCZni4g^Rx1#NDS`m8}9B%^!5!U+ENLOa({9l)sfhPQBU-N zkp~hM#9(z|%U~+e+Gi6ILw%3{oYYBOkP_}@Z5-O^NbE$bfYp(z#)!5!X1!PC%|HV% z*E(jUQbaUt3(oH(ySpwFUa5ZPU|+9N#HObP7M$XRy|J$al~y|D)CmC{4Ul?c&UVb^ zHv*%zZ$(#ca$w)8^mR;F z|1}t6yy`3a`f<$A>pJAO!7+=+$A4&G!d8hjtecwGt;jjeYmElOX6V`RYN_C@>PqhD z?Hh!u7+i45N{rQzmEhBpUEQe;&z$vOq6eECbH*D7xgI(Q)4vB0j5N`Zj)Nl^X=NYO zVsCCYX=|)ny<*FnG0Ja|cUV+!!#e zThja86RQD&S3^46Az{_4FF+5!)EW)DQc`BQdrlenn%lJw(hnZ32U2W2D^lG_{Low%s( zlG5Uf7GKh?_I7e`FxAu6z3=42MN2M8e_PjUZ?#UrpBEUjV{$vyuJV8mU{uh7*jte4 zj=lpALz3Tu9mtiMxmMTb@>OEqMN3Y`a;@f)!TG{t>H8e)3cdAoK<;oHJE}K14D|!Y zl)UA8FlYQ8B-*^ z;p%~bz5)7l#INvr^8P(sY<&xkPpSV!ottB7&QB5ZegDgW^(6U_q1qPwZs81-qNebnndVZZn+q?btd< ztZi-G)I#Sm1L&qwVGIfOBnMTqV}B+6zZ^65E#KiYb306zN~#0y@Sfyet3a?1WIGIh zy5)c|eHUvM{mx8x3@;eJ)%ZGBG6!3+;pHx}2Oy+y>|qnkdV0aNy`5b{eHV0rlGTaUef=p|_%)X-b4;DO zro_J#*g|RHmYcWnwBVGcL1v1N7+$hE$1K!(M_uI|jyXBt1#<^^rLM&nsN>VdP7w!F zt{-re6LM7jrh$Rvz6q+GuTS-0!*0U*aAGz)X4S;#)6KTAw|id;m1}Q%>a`%X zJLWwBNS+(`^)@7$+PNJe8x|{*?K@Ml6{xQJvy$DzzCR8w$4eZu_aD*5=}@q6dvpR0d|0H(Wb~~o~AK$vyB0Qq29dp`vE#^Aq-PpKJc6y9AI_90P55*l@@j|xr z4G*-Zc$NWstP4&-10Gi3nKu<4MiqO28~%^*!`5$4GT;b?=k`s92|D&WX4iOlj<#$#)rj-N+pFdXzdPmM%2apxVo+J(BC;a!al8SHktw_!uP zChLZAYS_C^8wiH{61cJGU8+S*L}KoWl@a_QrOaKIGa^MwU6&lA9(-cx-pmnrS@>sf1YEG z*KBqAbJJmEci(V_$b6u^BHXra9!m8DtH|Eonp7Y6&#T>cpvqJ^{}j#VQJP|DWFc$d zP!0IQ*jNZe)wl)U0*uz*#COp;>YgZ_Q8%1G+uhlqOKcW{q5`@{bJXhe}4E& z%m4Pa8*e+V=UrD0&Un{jKYjXF7tjCh?-%^#xex4{_wlDrc;D^&ZvA}txl{gd*6*J= z@SU!2NB^?weK${k)j|J^*3|2g(a|3e>T%V{p&TamXlkjD~q z90dQ{+_I`=%ICg%*Qw5qGrn;6!9!=yT6`5@EZVjxIWW}KnQR{#T-4WgzI)Du1G~sQ z548wKeA*GmOo7u?fdbY29c`v%ZBt$SQsct@(C=K>#DD8QFZz1J#{Ro{o?X1+i@?$T z_dSLaHkSLoD^SjuZNOtyclY{aSFh}DSkzf&wb_hNv)O1iAl{7U=?L?`L;3&t zS1OBZaKdTT^r=|Lkn%9>cmHo_}>Xq zs};FPqz)oKiOE$!oz0F+LYv1R>_B_+^8Hy|negxQ2J zKb6O{Uc7MzMyRED^h;m&fwD0@DlX##z+)LaGlV?W_G5zM~_ z=Ti-?JA3V%g?9Xp{t!{lAD3#kuPMOk zKpB;cG-8-AQFn*bBt81gKH-8Lpu!N^xD~WGdfHW^bd$hO1fY-$_^q))!IB?0>_E!~ zJ!k(nx+OW1#NX1LG4hB3#0%xqhs0jTEVmy@hfRRf2gt+ty4g^G3c>mbK-d5YYz0Ow zW|hIINBp-R^mV{f!TO^|!;VEY$}RwxE=4Q+&R-kGVkzGBc-G>%81H4sTZVUoX+(Y} z{%=Hy6rQ!HU2m2km+utnHX_sp98Sh2frFk73YB`0){T)!K(ceWB8UfZ`TzgDi4?dm zPqsJ?V`20E|NDQB0=Lje!V0G*JNFZXMJHam_R>F`hM}Q*{1Me>*U6>pf53kS)#BWDEXQlg<0h4S86o zh01X}FSPkXi$DL$)qiaK8HXsenP6RHof4q*-rACyqQX3UGpjtbrKPsKCdNply!dRK zwuPZT)Yn^ERug4nxEzPsJ9_$hJ8EavR5GQweEgH|wexD;#{9hUz!`BlFx=9$qnDoP zO)Hxcbv3oMH8ZD`*45TD;+jCi;=20AcOhDbXssKq8TyCd=i;9?0sb{v=eQuDFm`!a zXEMgxDGp_^6nNxUKl;d5UjFa=pWXheSuY*`g^URv_8Tb}s*lPf;+t!)0;yC0hK z(8)hubosh>PXGR=Up#Q<*XK_A(vfZTr+wjLpMB;7_bz<(u}LpHyZheHer0{4@QP^D z=kHj#sqG`jU9|MbFaEfq{*t~8i|+m4H&)*|*!{a>Dxa$Q@qgd_vEP0B*vFPUx#+>$ zUKoiU-thC6pWV9XrgvWa(2-Rie`V|MueI6X7L}MS-jzJ z&2M`i=zg~0BBys8Q7oR?D-=j5~m>tV+u32-_>YA0c^K0gkc}mIycO|?t`-AxW zA{M}XiOpT@eYI0-rm$#1d1>8ZTwOUDL`YXXUT2IisfehBY^=zH}vTCg5Vio;`c2d+faixu4L#tE;bna8dg} z_aa<)02hOY!M^0)ZG0@OS+=mIp&I!$N!w?~$=_1bQgfz_*Mu%z{kjdHTZ6CD#8Ay7 zB3|w|f6EWS(#sX*yle;?8qLeTc~Zx^(~?j8?6i;H(RNSfBxlF=ZST7Fl{M$qUi!%V zFHC>#z~+TR>mJuzy*t{*BzL8;-@a3-dEfHnfvd3 z<>_x6e&n4qcAWb4J!gKz`Szr{Z=e6m^QKrnbT-|YNNYPhmt*N4x2{DyfS{pqYnPWL9uThIIHr(XQX=bJbD^`&o}vEte3Yc5~5`}k+?`q>xn`Nm(;GoJduRp&4M<}uM9 zPmPBD5WZsndmnyJ-4~1BZBAW(&R1uC?cl91-TBkY-d+C58|U1ALfztzE?EA;>A$;m z%A7xKzPm2@*9#WC_~|Vt|9sbXe|+Hs-}_zr+)oX?8hYjzKYV8OU4_4BoE`g@FBf$D z=LMVoYg+lc_g{W*_eZx5tiN(k-G4mY5G^?J`PkB9pPAysH$MNp-~XukxbOXB-=R~Q z|D&w#mM7y~HQDfmmD&d~@AKK?l0+e~+Yem+~ae#zZ``1(1sKegi66L&rTu1%l6tFYmi{N}sg_rRo?KVP=%d-201 zM;g9!ZQ&i?Z+z03QoG{u%S!ikeBixTZ9k#=_D?on_x#THJobx!ZuxTYNe|rqlUo;j z>B6Gh|Lvd7{lWHQ3ZC!0;JLcZZ;LPb%@-n@e)N@9-`INi!Rox>FYNr|zxMp`LO9P`>BhtCs)ge?Pn6 zU1hV@pEd8(7Y;lfKlvNY?>YS9iz^R~{N$o9Uv%lQKRNZz%eOvv*~b0H{Nct$=l<%- zw=ewC;&Zn#S813Yd-gd5C7tYcYo^kSATv-=QHHqj( z+um(oUbO$;&c5!vZ||8m@AohEJTUJgCw=6!WgGAR<@;A%_F&Pv?>=$!%0)w0|Ec$t zy@_*9D&M;O>Q9`yaq<42-toV?JM(a;+Wvu?G4_35vV|h+nZekJB(m>i&A#sx$}&T? zEXht7B1t7nl(L6JSt`jsN|r*FgwT7&gFMgE`@FyRx_F zD2$wg6wEgL!JO^{o)SQY>+Y#wxN0H+s{Ov70Kf+k@H@=;2+Kg>S5G{mC(y>u7PrHD zd1Ax?Q`{PyFpxxm4n_;35vjgQA&^#o#@r6$z)?{<@G-6(5`pa&Y_(ux-G`kOAZ7(V zJ&1#ywwK*KT?L2LLMZJ8S-N6T=Y`uI%oc!E@tmS`~j15l}dH@N<326!MT#h~s1US%SA8dADVg^G)@QPI9@W1!YeQXgy zbC8S7*B{3y&~&K}8CROFekZ(J8Lm)6)cs6EepR`n3iq`M>bel49DEw5drlTW@+BlYI1MAWlUE7#mm0vJJA zyN$(T6j!XObz^7|TWil|*Wi>aHmQo_PQgtVVS9+ubE?!y-RxBV?ezlaki>Va`lnUX zn_cl$i9~V_Ilj7FqbkWgnIk9@87|wZga+u-=mKRf9?19KXLG=% z|Hy&Z-7|bT_Fw+uT`>dvCT8FOLJBU8kQCdA$;H478@XHjpFB@sK>yc)eq(&wI~UJs z4&peXPpBp5oL4X9!yj0WDb$-x^UyJl5-C$CRvxa-3%5KbGbh|TLw|y!s>P6drD0@0;cA`dw9T~)HqB0cL=WZ%c!kIK4C)MJe=>83PB9OE5uutOn z%gA$SEsJMkBn(m&4*5?nK|D$~GuJ}u7DbQ?5fOvcbsHu^l_&~ktjqV|;Bmd?_cn6^ z(HHNMBR4kkD#&SW@|#addjiIzEgN&G)LF3U%+o!mjfAuB_zPhJJ5w4{7d>4o!U#>$ z+8QnedYSd}rLe}aW%_6o8E0^a>YR+oLU-ozfQY+Lrlbef zMZ$!Yum!J10nL)+s)%ea`y-c_H(lQ3`)BA{6LoBS5YZIsWrZQKh-rzk?fP!VvlXjk z&|sIF1ac+yN9WaePW>}uD`hlh9w0J%?^OgtqeZ+gB zy2{#jM>|9V(^#UV??QXrw_*H=jPLrF>&Ptht62oI)aigK&aaKjsd|v0`PdBqRSn5n zG|A|20$b;{n(m`^$Dl53mb$M7QXuIHdyy**`NQ`0u)Me|>opEeUl_!hAyITzQ!2;{ zxV%kXIfA@OIn;U``nad|uA4@ae2;U$;f6>Z`#$50ZsLk(4vHK%_5yt**efCqg!L@d zH%{U&IQVHaLcs z5TlRLjnw{U%oF{+g!*l+ks}D;XIBFjz@`hnf}JbC4?ngOqPy*dxL}BW4zL9M^RANv zLv-DLxvjk@{r|SLKdLD@+|C_=kprZA8^tI7Ll3tTF}KV+<{yb4)AT`4FmE?9pq6u` z9u?RC%|yAhbyBap=1d2*;ud>#UU^jng|kUKVC(w$>B+S&5~SXX;wsDYjoi&^sY$77<-t2(${dQ__8P~~xv-&zY;Rai6Y}Fv+;UBXx5%`+davc}90AY;MNF=UnfToFYmKa`A=j zn=9)M1l!9-G&)_FChFTpjHZ)MNo2}rkQGNKI%X$j1yc~(DvIeI#1T#{FSd`mvlL&2`XTZHa}Kq&J3!uR>~EG?^diU9Y^Qxg`)08C4f|i31yS>9xQs zqO-wk%IvkrvlZ15-Rz8xvX((yFFw}T#K3|xXg$(EE_#E$>g-Q0;xV*Nx#mK%)iZa* z6~iB{n*SbgwF^l=8U&*h0)dbKM=wAPy;Bs!75`?0|0|k(z~0oHs`5EZ7Ff{vmN&4D z@(udc*8FuMqP`M0ZU1M_B}`T!p>C(gC+Z$4Fr5?oVXo8e@GaHA+jJu2wCVOkq~m2( z9`XnAbln#ajnvH3=Yn1I!&Pc-CaAg+(J!~2{~D<~+@$i%+guMWi6NEph@X2)HE`76 zlC(86=;`e(ALlam(mSijdWoZUgBh~5tQW=ZhM9%LQM2XfZ&y#-92s_@>b6+fPB7^1 z|9sh4YhmO`eBt|~#0qI4z3Vex&J@p)!d?mRXA=B%@2jGCTgE#QLmn6=4sQ?`Ww<-Z zW~tWA72XRvCV8jxQ~1d#RgdS0H;s{ixsK3;O~s2x6Y((XV`Kd$#KVKQ?(H@bE$ ziGy8!i>uo=SSd@@|HV@)@e$gX{;eXe;E>ICxhKb}eMELctKv0VtLv({zMci`(2?3QU4kIDRvLDnh4^*-r5gQ<%qHzOw48Uac;YJv8G1BWkTfc9?eETn!N*P_XP{6tq69O zfx+#*%7WsCZv=|Ts3?9GK={sVEh}hbpUYW2m_8B z?GNkxn?emYas&tiNMVH74yjG|APJHhH!gg7uMCn};jc*j3z_!&y8ZspeeOUv$0&GH z;4W5((-8vaHN)omXl#~v&YII#D`=mx3n(W{PM3#^J&=Ce?2S|$v~#=E<1g+0mgc}*UTEF-~N_b&2Pll!&`S8)4)sDxa~ zw|4X0CVl)_$wA(EtFuW-JtQQ#zH?3XLk&Yi)k}pUxL(AQ251wy;35+{LrlEa_SAzO ze%2VWMC4$t=6d!I(i!nJUI|CRaf*i@<1+iP+_PW!l;w}4eDw1(bLq`hm1!&y7;VACRT>nCiI<`t$|kjJleg8fV#<>(1p5+-AL?AWxkigQa&2`8ccTN zaheMBC;9)osdoVnDY%bBgam?=_)u1S20X~U0dZeb<)Q@pCG}vtg7Qx6G9L!?$*8cx zkiVJN2l9UcaEfyRyvdlHcz~OkYS)>F0SGZMacR^24?usm^8w%o$ov#EFbG@-5CBMb zE5Hpv5P>gHC`aAy8ycD4mc}kn;Fcl}tP926yRmQiaJmPIAq9wW>*EvUbLH>7heToy zb}ZoU#Yds=OcpOE+@t%J2~b8)mfgKZ8+D>DjU*J0-6=MQZ~RS=fRbIBe%85<5#-p+ z=*w*g3*N&{EOfVo9Jlg18L^i!nUl0Lf%hE)H0J$VuQ7d>Lh{d^NqbMngdb4fEt}j| z8?fON3I1CG&-i0Tqrud#DU&&6Pt_l2^4LVYx>9JDhG2oCVHBWbA=%Nd$$#(Z+>x)p zay$p+D;jbdVBJ@ApnawIorL?7V7<4XY-v@;QIKsGE&O0MFq3(CSgq>i^&r-75*VkY zqHh3d<3I&aQ8;QAKurOt4*;qT#>JW$JzgP1Y}ghPm!|@|m|bo!?UmrNoE;s0WZ!7+EL7%~XbGgocFmlq_laHI^H6@(*9_iY}HR!<$61=ww zhKAy${lF%TLq7xR0fjH?R6Y%OepEXfXC6FlX+^-Qs8Yma?Y_16(77!~_H@S~8d5n)7qfN(%u*%|24fFvzJ$+v zl?nTa!eNB6)P4KzGIgwY`)I_g$h44E3Vx(nC!Ei9;(~8$(?F;CLK(Rr7YjQCF~l)2 zRn$b$zGNd*nu=Iu^DPZLT2@Z_P-QA&OdcKdJm}0Ds(}!_xpRxRO;@xm##ZYF>Yuvv zzl!b(NEd(nWm}ZfO43wYzGF_9MWwcWm6ha#`8W=S(EozD~vP>rqLo?^Hed!a>9Zu_kBCN?BOvA?*N!Px2y^wyUpU$uZ* zDLLYpXXa0P68)l5Aa*)s?64*JH@#V*2G0GxR8mShA)H-Zv2iB~0w9#fbRUB1(TdNr>8X<*fa$Lu8Jp6y}J;(VvApaK1_rHHe;M~#wV2AUy*6(ff^_G3Ux6#2Tom`)J zW)z+n9ew)DV~;-LjPUH4#~eR1T5-nAlh2sB>;4DLJUu+__}T64xlLlx2khoJ`?R>u z1E1UM_9V7fosDPaTefhV1CXk$<*p2Y&jdcglsZ!dS2o>b2$#qsz`(!%haU2E)W!75 zf8#JF$->`8kh?z-$bGjd1oU#xxoQ^REuPZ`ull_20~9(j`b1^q#4}v(G;M z+_OPnzCR*`o8%SgPXEnxoTFw(_2^hIC2dHf6M#4{olq&Og|nmMPYdCZX=R$J183>` z{4Jt$`tK0x6@N^da(w6QOIn;Cy`h{|;f{YEKizXi#>xMPZK(8Sj*}}-hDTVw>bc_Q zj?*$wa&Iy%D7Er}nD0&|k$$i2I9*$~&en(xo(rne(O~7ODk!_U0xX}YZjg!Kc4l8# z1zl^;M0rqQO}zD#OXWrCa_FS5mT~K|!CY0|eTt(ur{5;0Zwuv|fjAIlK{eTGMF+y= zf@*gV!WMJ2wrC1OyY($8My=Qoi9-C{nQ+egUBkKHwPnMt-sd!$%T|MIh&<)iAu}zo zP37$Cl#X?BRO)al0pUCwdf9li<+Qur2JY3i=*EjPJ{T(zgxgyG zJuS^_l>acLMa8c3;ab|V&5w42dwl_@Ra4Xi$IapR@up*WP`MhquPDKw_du0TPr0g^o{`K+pUXR+9DslNg+Ei2IXE+K+-1oJVp&MU`gqP02*1TXc%s;Jjnr; zThY7HVM8^9b|hEcSh+@!K`UbQ$tZsjw)$i%Z5eb0QBHF#~~j`0LqCHtI93A{X2zdiF3K2 zIG3cWv1YD`91L97w2ZP5>FTS#kskd@G1!0vlIeb3x4Y|jY7+HWlCLH zHN=c}{m05*+q3wpQ_Clu6u0H@Defop=Rv|fC=_s@zd|RQdkY9cBoEHjS>#{D9 z)s-t`tL+&GZnZh8>{SRRGPb2_&bns$cd)t4Slxw(BZ|Q+QnxHT0%-r>+}2G0p!EZp zOWRv*9(H?*Kfy=jzLrPC2gqjSnxnW*^e)+zHi%G^i7D6_9X*X$R|+S|&q&Keq}EK>Re zk<|yAybrPvOQC)uSOY3N2_QTfpPUL$0jL%Ni_}l0%W3$i@N|6JI+aGFpUYQ{%Y-42 z_9nm6)n|gy>FKios=EeZMAC8#URVcJn;nGczjM_-3&R!f_mYoJX2q3im9bsH$3}CR zYLKzbe^5@^{{_yOci8ryI!Cikg8Eqr%p4?oQ0CxRF9%w^Shhx0pB9qZ~@Ck>Lpyl25`M{-b55f@&i8>3(*IkU77W6DV zxDZ@DeRe*2lDfMPzR^c$bihF_s7>UiL*z3XY&p?&anQ3&qg|=A6*K+)M;_DOsZit} zfqm_BJ=ItYTNt+LftH zQ-#dcBIL+gP{?!zXr3}?o-&1uyEs@n=hZ^Mu5i3ySX^D%LbkPc=@#=#U9A+d0flsV zh1Ly@K}*((Y@C1O4~_yFODbgNyplnqb}18H2-+v)ueApa6XV+HXK0q7>|p7^apQzM z&|WaOaL_uXb=|vOT?bO4c@$`-6i7+N;;h}F2XQdI6FKdO_Tbj5bAeSLMwbB+oiDYO zp#DmB!(-aAG|$-EQEl0ooGDE(H`@&qyv&@nS@c_h^Xd1ebK3gT*)xZUw0fVD)^5-< zwS@Nc{cl%OiB-#)h7qb-lq%C*$8RH&{lMj zV+{cwRn3%q55`Fa~ z`kG1fwV(s&X@chT$G{!PgdYchjk!)OF1P=t3*;KplVA|})3bq;@0=dbz^2_a(9?6% z2o={q#q!qf!cOEm$RD8!ZF##+D|BAKzi#NfMK6Gq>Zw2;a-AURcQFLysHWGBYVvS+ z7!FfgDjOw!wwdH78~cHp^*7)b;9CGo+p?INT@P8Cw@q=f`V+vWI+c&QX!iGq2-_J1 zwP}7e=XQ5^^-sb>Il8s!kK7Z;k%RIB$T5+LYF4mX{EjO0EZ$x^EgjrDzZE zTcZ!r^+tHD--OSqf;Uxp)8-bs2WoAD(dXc3`DHig@H8e#?6#f0Ewawu&`T%uGF*hR zYJ0BTg(K;kAtRdQJ7@NHcTc;b0@grjZ65-N%bJ0nwZBWeg`a}oHQgF*MQ)@789gJE zG~7dR`>aJ96N}rQ;--y@+dXlixMr-eBuVxPgs9)b?2J%acW#*SyY*+ls_rP3WLay` zXDdls5Uzpa*`!^4E6`3iydTBlu0FYSc4w+0x_WCUA*Z@+3FIZcNZfSEYX)fw)`YiF z7SoAI@MnS7GT9(RN0jT%WxKr5?$ju#8U*@ta9LM?#kI`feE2#bUHP&4q`oEvtu zINQ}9fY$|`yJN)>xT>flhz(GqS*YaDL#a}E3M^9`U=6vYVoCW-G&sR)TUNYwwv@8^ z3-Fdt2gxqAz9oG76sI+|#%K;?pw%e#az1?|f?0nwpDs@oJgEzklvsXib}71PkrOQI z^4%aa#ff7q`1J>&;0u_Mp7Otx8{Ppi;TQ3V(JukzWHfNYFVpEx(#L{^Uo!Oezzr1d zl`m1@UF4vmR#fTeVH;6)lCozVIG|tEth5 zRUIlm5Czz(zY1nP6MhW<<0UWpAa$Vhy`ZaGcB<$k(!QlzJz)32WeFT2It11s3xs?u zsJL#hBs~rubq7Zsq{){3fU{(!9Sb9Q&V?5`E+(xl92XxA8Wn`&;`<@V93|smWsVW( znxh4J=2(HgIZj}QXE0C2q@}|*CkRqBM+$6M0UC9fBWP0k0SHD?(9dO@%>hfawUXWq zTGOz*N=~6HPKT!{YKl9>3z0Syh8IA!9lqXKl-mb8MIkw;dFUfO>x60=pjbISK|9hB z)E@+v@9?WTcKG2pfVWjGUQc={y@r%Qoq^>mr{Yu( z8=pf^SJSMn9z{rlnTX8WP7~;wQv`bEbb-D(Lm+e&TEsV}3Q{yD32aya8umh6kZ4D&J=m(2IlCF50lV&O9whWzUY2Bo?4dU7%~u z7FaZA32azrjhaczAZ0B>WE})q==}<+Cwvx(%9Zk!or25_=oRh&+1?s{4(amvu;Gh9?&}9@{PcLQ-Q+~J> zzH8ZlsaR4u2TPSnwmHt^PxJ8W^EV_#>d@{nQYXJ5W=DWn}jm_$jYJ`!f6jJu>i%K*oX} z<6D1;yb-!+G+|s*be#>6Mz&{GPPOQJ;ZNWJ%Z8MTB{LB@DVk>)&F-nF_4mkGoZ`6p z`S*GH{`)V~%#ZHgT@>2;KcF_@>1MzPp-J#g+te2AnlJPR%hJ_Tw#NOUu0y+XAF-Fg(T zIyiiJQaT@%(s>yfss9X410!@9p_t0@@o}9*3o{L0g`d(5;m-l|FYsv_W?F)tD=?zQ zurRwu{}SA3SD;e>DUKLDW!7l)9F_2OxQT2@rs3 z%RG$NAV2&SLZ`PWacPS@_@!5{1dZx z=rGzMui7@uy40=zOkN3Pp_~Z0M4c%N!;rk%QNzeTS`@akIgM7JqW=QF%+6l{Vft51 z%+4sY^EWsRjL>C-QYyWH{ySJ2tzktY;!5}rkm4rMg#QEypBz)2*y3>Sr7(;{AZ7o8 zOBJo<@Ma(v>w&?FHglYO6_{vEL>(G}>ti&@4M6$6)(w>j2ZEaS@W}?2vfD~7ooCA1=hB9%Vb6;1=gOK7T4(@oAUZ^ zNYZ2YAc?J#3TXz`==Z=&mAS1{9nvVQ-6659lm`)nrH|Yi-GXn@Vq__IjYc6?LIu90 zS5%4lfeVK1o4$$+pp8oUrczneFh?5JRQZ)~6Dvtn?&fLtR^^E*+haSD(i$ATW}?zw zrP4gaHZVe$5z4JBNTr^wa6Th4B>#alDoI^MbJx!d_{;#qO2Ska#OZHywp9-IG_f~J zOWBmkE`gOYq1vXY6r#XsL(Kw*^u*FO8@_g8+JDZpXC&=(8KLlPAD|hs=2)Ga8f_pt z>7J2H=bN>crbqFpk+CUGUpp_cj5PzjYf&X^L(vn5l|-)zvxsudK;POU6Zgpt$!5bJ zo0!sHjHi??Hl8f^cXw9|jbC1Rrj_1|u6F zerXR~=Wc{U`wiRn-R>o*n$aup)*Lp@-df3u0wza+xNvh6!RH3!)C?7EEtG`AqQGHIDkWUf$@PPi zkakp!*@ff{0htDT)rbR#lqN$#u%0Z$Ute~&6B2zG1aY(ae*5h?E}h!4F(L50)7 zgk^l%E4{5@1xS}Co-i-1(yfLMcILODsg923TB|{;ov?~8C5HlPR<5$1RhK`y zcTZci9g?oH_5j0d3J$E`z=r8cD2bsEAXE{%b8VF;u=p5Qo5I4ADsv;R1;(Q=Qyttn znGEMpljv`^vqm=MYEN_hV`b= zH*ua!O3%ZmjI}t=*$XnafK2^z3udwUr}*Xr{S=jw%?MZ;$py?py00 zMp>* z=MxBlA}qMN57v(zTr3PhpGZ!)En?1R^n8GD0X~^^s^lS^s_zS|3W|aNG>RBf_@mu`}Ff7{Qf8XFc}l|^E;7D zeypFwK2bYqp9`TxgJHGU=OTfw*+rmdb`@AOIPV4bhV`Z~Qlx#7(tF@T`&7;eu#35n zsfP9hFV&Lcw8&oIs2;PJpk($Y7}^J4EF^DjF>DqXaz2vq&RL{9bB2+uS}@DCe| z)0}FQ)DRO{^Sawc4~mnjCJc;obNb2@VD=)XKU&L;>MOA>}4bCjkw z!ez`PTn|iK1p(urgdqqR2PX_cz@SPb20>PGml6AqXWCPu$}M@^6$|t!%#GC<+kG^0 ztXInsuelH7aJKtj7wDS%1$yQIfkkt#z=rjvH?j4Kl>Q)-9jS>?mR$WQ#)x60Jp;HC z;zN_j_;AD|XC4xH%6wCxYrZA0Xuct^VVyNbldQj_^pT7Q?YfdP&fBKajzc?=_QwRe z=Gy{2^SD6Y;5-l9i{=r54eMQRYGsqMc@Wvu%luS2pO!Gnd{>}ro)PGoX9X6`Qvw^- zn?}dW^pa|(*Joeopnb%;@f8?!VF1%V`{wW{WG9E!-)VEFsGxL1&~romXt45V3F^lX z$;cW9#^v%Cl~A7D`dGM(EJkTZI9-s?80C4<_T%(Eq?eA<`;tCooZgRgW1QX}bQ$L` zFtc1k3t6OGpH{)n^-#J=ZA3Y<#tsPwN1~5IQp)oX3VTA`-1L-yc893Do7<4N z&hy9-S_`y&l;KKJOL`UhXhdWVM~r@SIg-cI*A<&`K|8$Y_Job3q1sD_c9_7-K&>#? z;d5W6eiTHpT@B1KxOMm|W@12uc}y|jPGexF!oEJ9YObj6yvmpliV!%>#c^APLcY`x zxd;x0{o_M*)91-j-30zLCXfkpGYz=rk4bK$fnQu-w7yJ`PBq-4G*VU+o?K-c_4pl4nZ z=$n@X7R?I+8`itV=$x`iS=lJtBbW~!JQf6nOiiM3uRnlXp-}H(p<>u9T2AwRYs*qi zyW(2(cLOCXH)ICg`m-nl4AfC7?SpQ3ABEIUgu>R;F~i{=%94eL!~w!plRnxr?hL(Q^yO~NRHD*|XAT=Tj>&-_ZDZ+g}jRZ-Ssf=U|tETvf(pfftZh{dHu}&^cBr?1E!d+Q&kqN!#(? zI(S{rSUKpyT=QfY09sj&|F{d;94f~nA`9FP&N8e*I>3bYJ6NisrWh8#Wv-M6iHJ*#eql z8!3%FzM$MYd>S>WOh>KzG%{CqM@;SP9a;4To9d%oY{jp zn+4HbO=9C9daFtF1<~BD#9Mb|T67Mma`Z#_&hIAvaelioPKy2wtbPhB`rkyjq+x^! z7V(y3!X*MrG6NEYB_$&}s%~ljP-UNH`kS#nqGfo;~z#gK}2;6eiZ zGa9g%bY^%MoQf|ja{*mZ)q_Ee{xL8gA`LOv==Aju5V65jEvezpg0>A~GOphxRpx({ zB2?yY0$uZWfu8w?z@qt!z=rk4BeX1HQj_ZUt|^)CNEl__73i8Vfu8xdK;OJ4uxS1z zuwlLP&>Llwnk0L-lx)|vV-8=SYcc{o;|cUlAh2kZz=rkC<7<>nswvxZ7TaQQ>ZhXQ z2i)*90xvwBpcI~AK}gUOo=Gr#KGYhXMKnYu%tc!lIkjYQgmutyeLo9wcSoAtT1T`K zedx2{n6GqND*7ULu3kZ2CZ|^d>T~d^4to6q`dnbqqwt~61GdDEz7ITzeoD@bXx)~S zz368k;PTdF7sT6#y)uk{*}mcKj%SbG;7HL|5i}Rb`5QJP|D?E8h(OK@po73-S5zqB zsEsQ}ZE70y0O*OHqWNTf2i|cea0tOGJ-PvaPzK;MJ&dnDAD^~teFUH@7)Ae&#ow(F zW?dnO*WU`x$`2=VGS4|XE(iT8>^%w@#m|X-g&5T|avn4s>tO>U z&j@SD1jmhf#F2qUSb9+njQRx>Is%ddE41mh^A#lNe9qX{Tk$O@twk^|5sthj0~-~}jBkBjUbSBOVlO9*OKFd#cwBxD%B#j*I-4$%JaI0o85qEQgwaTUi9+N(q4>;C z2^ZuF@oAT{pecK-2RAYuLoz7wqN%N7pOs^qT@=ZsC;Gw8SJ9V&3`&v#X{jtQuIq z5?0d+dcpd&u=)~T8L)msR$2AuVr2rwQoN{sP;J=6Hi)r1qK_jVT!YF*Hv&`oDr7*5 zB0iJk(B@-M_2>1~a7AhMw^}P81XZd*P=TtvW*+@}OWOpX)+4UC?enjdUD(5Xpy3w`1V8XlxY))+fM>L(;={EasnIH8;_H-KO)uakL>&!Q=O*Ff`n0~Q=n_Q1$w4S zpl^x-i)O08hV{+^?37JvlI(p_vZqTJWw1gkWAF_GdZt&PZ)ONAnrQ+X);kaFQZ}ik zY}Y}Wt?r}G!Sw9DQxV6`ze^Lv>Iz28(ZIBEm&~;KHLyo;uWWL8DdZhc*1v5BQ19f= z_Rq@p&p0`Wu>YZdz60fz?w=2uj?wZ3_=MN80zewilDq=AFLV)o1TI)f`#XxZ8brS# zLHOE642{BKp((+`@o7ulN}t`AnxjR%Fr& zzFq@H)eov_w8x%`TyXAt@4c5k7|DBF<7o~uGTJ}^+cn<>&gD)Ez#%MXY zfmXgF8Az~H#>)uIWrd|85}H*n;Gt;R?JuE2YTlCn(fdO(YLIz zAeHx1v$GNXDtC2lYV;&X%fo;-x2lw@Om~AD;PB2w2i&2-4(IBV=lmRzOANLhYKM7E zYKQhu)$5IPyi)K(@!+O`-TG^zmY-khf7^2m$#_($~#43dBjrel!dRhLg8`rnJaVF;ntF91#h41EkW{>14y(5jGos4qq`~js1_HeY6ipV$36sZ zn&XBb{=YRxISbBPOuHPC*kh-2z%di;@z9h#E)aWDW;=nd*F25V5;QiLb^uU^!oJrR7h_GNq3t>eh*nGvN z1At{3Mbm6HXjnMf>HQWYOX#A6@pj{|R5_smLp!9*B7xZR6^K1wfkm@WV8eRjH6oT1 zskkqhXqQZ8^j_L7=ces)&i}u5iDJi$+ZvG|U_6m91W9a$#Q54V$5dz`xpo?#vxryd z#!pt{N88)vWJNZ8vLZQHfsJ#nYua-I1*f&wo~uYLAV0|nee)Dk1AFr1e)}@S_aE1Z zKac)Hj#Jom;`UB=_zPg^JMc-Ch$%H*BIc0`_?fhp9PQMPg(m$)29)(GHN+&?w$KYYH#xp+w zf>8jDG;hV$@@0~~`Kjfab@cY2h6Ehr60bva3K1L(y2k7V1BP2e1Wvq8_KwE%9%dE- z0vAgyQ(8Q|FA5p6WgJ&PL+b~m4M4>0|%`5 zFs!H63SSjYOcLeq2NE1)@Nrp=n z;Ico)3pu$`5*49F_W<#2ua{s-l!^8L*R!;naSss7h8Vo2^FBSzW3qpn983s5$cFc4 zRHmyJGD-Z@cfepyKY$dOSH+1Z8v^rl;Mmhn&NN6U&-(DK1itY<#Y{y86Dy~d;+ZEG+% zJPKi$GAVs9f?^P=_XNbLw7mehPwYE05$1y|m--Y0`p+1H;$$h=(z%ZR-o4R&7D?`(CDomU~H zp1zdn+Zc}=9RYptF(MAP+v?YX!UP?wJOOv(W#>|#2&8^8KCV8BygTD5lpCH3(!7D} zQ{)LGeodnO6p~?nMYY(O&#`cdXFlWo)e+E1vd6oZ^he4p7U-J21$t&5fkm^Yz=rjv zcZM0Fzaka)SIHTNBU3W>moUm4AkZ}j3iQkpfxbCNVA1R+uwlLHMOHScNwSYh$zCpD zltB%VdDY_(ii!V8eRXyI9$zCdoe9%6^)9J6gghbF4tu94F8-#|ZSz z@dAqm8_kHLVZHO_C3Qkde-~nGz4#|=?-T6xH@t{UTrU)+8;*eFstuhkq0{uH(@KzTh%JPG`z`cu(Z=E zI$;}zPFM?0B?Fr^WMa`X#jIQArDTpL06iTNFpO^)(nElm_^YS|(Ta`Go5&PBQ(mcL z)lg}+WwPytp;@4ZK;bm)@@}zfF?+G!5m6E*E;6&!r$BD%pcYnorGXMSPidNecl~?x z^rt#*83)*jI)cDDg~t)M-J|pNPO`(o{ry~sE6YLsP<~Fvr@SN1k=P)0Ovr=sr(D?~ zj4ozIHldLEVc>@w0FC|S84gFtBni09$m+ZZ4})2{yM86*oKe3V0Ezl2z_{B5bX#1{ zBHb~w{tm;V>HRHp$Tbr|z<4uZ2m;3M5{4jP{61j_0>&Q_h9F>IVcH561dO*6h9F@4 zF<}S-#-9>~AYlACVF&`oUlN8OVEi><2m;365{4jP{5@d^GU3PpT>p`{3W9pWHf04M z|CIg_w8fSBKva{ashKoQ#iVKKMd=?j!&5Es2?vo!CE)xdGX}uyjL&oa1xm_85Tp_X zB_{Z84F8>Y5Ck5^Vu$w#&rscC!RHY(jWpLS28H=JR`1X`@&4@YHhXyUAzoa+A5J`a zk`9-+VN4h#I0kT1okS#hJ`p(weIRBtmN*7|f=rZpH{WLU=Fi z;Upb0bMs|lE(e(0=y_BEUcj$lP>AM?qd+PFHp;AGh`3^b%$dBw66Q)@hD1Zo_wTFHHw)ut-vW4khGJ;IYrug zWlk07n$rXp&B+2A)|t;mupc00&(ql+_zTR(0Nhya_6+-RDcPaOQ07d5t~pDfXCi?` zbB4f%^~T#1jDu7<4$N7SUOtKAcpC?X2061rWGJ&zpli+%=$Uf`7R}iL8`c|NO=KLT zY+tz;_aZP*3iR_3rq|*V>j`V9TubCwLiB{TUFNH|Gm1npFZD);sTq zGd@x_PogKvJ~5St4@nqhE)wXPO9Xo6Vu8N-u)w0ZP+-G)=hbw|CN-(wKgr7eKJ~L& z!YG5LTgDVu3-ru20)2Cpz@oWAV8eRneHF?krGH4J?5Fe%P?KB7@H)WVaq`eExGix@ zA_y3Y4AjMLTR)A^;CqQjLBQ}6h9F=B2}2MtG6_Qv96G)jR&E$RZpmI&ZukNc;)XBE z_s96k*&8=}NfBsXm1wX(G zlIZ}b_;G+%>#Yw$TPOM%YzjSeQhsbywgrNXC#}Qy9N?5x-TJuLwKCTUbj|ewJ@W~H zMe{L%4eO1Mo6_z{O{!C;rexkIVU)Q^pld!Q&@(p+^v$OQ7R?O;8`itV4kKlgva)AK z*KCYlsKT|6+0or8{J9kVhZNp1Yux|56dtAU>r(iADST}Tep-;_GKAU2K{VH%3 zgg*x`n=mJ8xDUYMsIRVbJ>tTQ;yu9N|PF51hSeJ-*J*_QI|6rJ0bp< zIey?%4KXja?j_fv?6n{AZJ6?bXejH*>wp?!Zo^+dlAMKS|8;t*KHMsHuFP!$UGrIi zp1ED1Z$2lmXx0d9SnqrunDv2Fs;*%jmG5RZ=kRw(7-haF&^2Ec=$X3&`sPalaR&8H zL5k)J0vk4*Mp79GDI3Y6XbrStk7%+uDGX4@aI+YeV_1n{m5`GmL2w{689&S93vv3~pO?Sp_<0&q zmyD5nSt3}AO2)_xMvro?r3At-re@HY;OGD!oI>m72^opzh^lbSRhK0B4(=Om0W&kJz~cYUapP0EgkQPI&j*orI&7@L!k8v6ZgA(}YT}RN7>B!n3DhZX|bU&Y{*qx%2-M{3`LY1?aD{jKy*eP zpU>2P1LsxI^s;ki`n+o}^co8Ca+F&O&RGRRuam+83#jSA&>NuE=-(owz5H(1x_OGH zb(+()1IXUtZCD&~o(lc9a~{&;Ms>u(hqD7O`e=gc-Jx3CgT+GjZou-RnLzIhWF21E zOV-e5IBlBGp<}+O_LW>kw<5e7eHC9%?*Q-RW1`1EOcRHaIF$7EbVvp^m-P4A&9RmW z20nRyiumX^k&O|XT02KzdRHO6vQg)T7hv#-1KRj{g69>k!UcHLHzQ@HS3&W5KgNV` zEZ3a@hyF`=k>!i5wsBeVR%I4btf8hntdupH1lLAQlbT%m=fMS+;i_#)?~kOU-Xy@? zfR?y_nz_Nv@4dI(BS@Z_xd~BhfdSnN=(62VEY4Ne(4Q-1DfVE}btghfENZ{loM#_E5UC6-SjCh%JC^T$aW?SuNLG2uH#=&c@8k zG0;W*d>9fA(V5?%ipQIZ!4L^MzTb__Y0Nkl!Fib-jIjW}krUMaz!u>xe0bMghI(}7 zkdNVP{jg`{h7nh?2lXbT^UTEW1iI$;0&#~*pl{w1h^tcq8`itVD42a2DchI5p)`6i z43##=h-eX}9RsxiU=Iqf57@>ShVtg6(#Hsv8C3PZ!XMMOJJZJ@ryyYLkuU@SW6y*k z2pD@M3_-wHoG=7QR1bI@G$O}f?B>QvRQm$ux%ESUY1xT5C7Hm7hf%BhKokWw2mQ;|VO9_iQ?>cRtX=bdXAobucq=E=VDfB_fpR z7U-IyK+lu}7EPzXhV{mK35o;JA7MUbiVU%rAGc4<<@%1n4; z(z^Jn>V52IEA25$p9AB}L!PAbb4VwC5@|f0LA4cm{}=O+kCs8Cy%x%Y2Je8G9Bq#G z;HNu>ueAAK`--&-zQJ6;y7s&9+dDTu1t;B%0|`?#j#%=$c-Ep6L^a z`vd|T)|NgkJa;*H_OR z46(|K{>BnJn<+hn4Bs3|fVy!QpsUdKqp0c`$O*F)#yoNl<y_fZIZgV`@<-1d01A8w0GSBn$r`mT^rY3Vjo>9=0M z*L32;7LHN~DTa_<2pP$E8-JP2CuYPsgDESlPnn`X*I?xWv}bw*!Y%|htT%nM%{M8H z1rS_6^Q&2<`+!#4?3ts}-d2e>zB!OcJ4T!XD+Q5@H0VC53s`An8;Ny}oY^KW+ieB9 zX1+krED%^U^8_}mH;uYQdm*KtmN&nV4VZ%#IR9nVkgU*%yJH*+rml779eR zcNU~*aL@`JPQ!-N$J$6p*@vT;ZfM)NA{ECT5=0rCRYFjlqY;R6Gy;9IuRuJ7zL!M; zvsjR#*%z*-3bBI8^fg#X0hY3V{2U#RA2Mba( z2MBCf0UG;+jE~g&;=3{x-v=ZV&fN%f&5;68^a5cD0-?jhErOFcf)ovY(2>ft0{9D3 zjE|I!5B7jXEiuN8Sc1#NeDL}(VQZ%VZCYW zs8J@VluTrn_o`X9r5;8S2Je{*#CzrfJ%e=?$n*_XNdRF(=UBuySm+=pFy{$^r_Tj8 ztR#&H7%i#9cv&|Y@5fW|Vh#-{%3$^k=$a9Mp1DwM)Z}=tOU3(P38V}Lyb|w61bXH&fxh{uK*W2wMSOFGMFO*0kfOOnV8cq% z7`QNAQt5cvHe8>I_i72G%rydC^KpTmxn7`et`mrCUTcxSd`ys{xk_Ne3eecUV05IC z=*0f8#>w~Un&rAiLMd~rK-b(R&@-PE=$qRGBA=hLh;Ke`k-*$xk&O9*AVu>TfekB? zkMc7Gq~a8?d>KEM8Jh8bS;8oDr$F5N5{Uau0)2CjK*awwi}>bViv;E_i)75*f)ve{ z1U9Tlja?1KPij*97+E*te?Y=0^PoW2d_$mT9unxAZwf^G-?E5r9=1qe9WBjC2@zdUJO2xlc!r+}Cfp{lKAl?ZQ=$ju2MEoyU#5XSrf)|7YHmm@R z^?1fcDvoWu@4Gn_-%lizGA|2s%_{;u^D}|I85M~5ergfltP`YYUJ}@_0{EUL<0Ca8 zKH3)+x0>bqO9`dSYXb51jzG`6A<#F!5{USIZ4ux6#v(YfW|53}Q;?$hg}{atsj;HZ z6p%{km+^l(75^V3j52Qtbj_axdggBeee-95i2pAZ@y%Z?5}3Cwk}-c2q-cIGuwg}V zy@c_TO2yBy`z0kaOVemGIK&%4@ESi4`Y*=UhWFlpevVB0Z@DU$7<9)Qd*)K1W z9-hb0Vn)itJ(E2MLq?u*ifg^s&v5+YD-6ebL>NoTU$UH%zAJ+T92urw_F zT#G=g&j|F5E3jzBti4$8`W$O7r0fz3MuMkNUtEO~1dP)Yh9F>^kuU^V9N$qRF@E2O z`u>eIgJdr2oAcp{fCWy2a;-?DOvImCpMAP5EUqDvakK57(L-`5H*2;t(};G z0rFE2THga44x^D!DT=Y+=_VT^=y5h4FAVB?(l-X+U^CwXHFvO*S3@j4uEHmgVYD68 z@TB%ilvyf%TabKmKrZ3PO1*xf83{+>aeN$h2T(3G$tm|(@NF>aixEXh?~Sj)nfm7X zHP<6hpV>d`L${3Bw=&t-&I5rB%jR#xvRx#_T_Wh3>v(KqKg)6%FRw{D#_S}h^~Bjh z2)qh}$&I9c6fdx{hz9L%P&v*_r@iLnc7Uy{RN?-Jq}uLUBs_po;y0d`5H7IMVYveo zLfih8yE(T?TH^fcgD4^{f2)=7V1{UFNPJ*Lz*eEDc6mYGPT}u-K&!MuH^lljqIoXP zrZJSV|Q_|+Obvim$s+S=uG z*yZi8OLqmFO2nP-&-A(Q>E zMrz`@_f)|p;`#^Zzu7fPI$E3=E&|~%x{rp#1dh;Pq8~I#8cy_TlcWJfZ#PLAQsixs zgrz}6olTO46>Z!kX<*U9CP_n!j%boJxM)?Aq~S%^HAxy^^ra?ALyR78k~GL@U6Z6? zMt^FOG|)(GnIw{i8cl7IG}x%xBx$(Ou1%5#9G%c4X~@wfO_By3-O?m!*wGVBk_H~F zYmzkd=ub_O1|NBIl2p;~qnS;T6(HKGNwOkDdp1c{i0HT`$%+wO)+AX$qAxW`R+MOM zlVpX7e%mBjaU#6K9hW{UP}JQdS&^c0lVpX8c5RZZSkdw($qE*o)+AZcqSZ~36)w87 zNwVTak2gtH!04qW$%+`g-6UBdqhPBfk*t`}CQXtRG}^sMvZ6-EG)Y$2Xl0XR#f`3N zlB~ed?M;#uIeM^3N`;<1{5rVd2U&l{H~iiJPaNdkPjr1U&RB%H^f~r7o-UyYz)xIw z(?Tpn;uWx=Um-*-uj)rYkRf4N7-`oro5KZ5@L4|#XbEs%3uhukM8@MW#zcS{9tCgu zXnaCU`D}aQ^3JLAdB$r4)mq~C?BTl2^fB;1JQe-4{HWU$AY%dMl0p4gI1G%?MW2V> zTwdqX-AFp#K|!pN!*1@6+uvmPI^w}zS)q;zsl3NhK*%_2?OrfMQlk+2-YLWu}{Ch{W43eil1B{7S z5O!OUg=FK6-!SZQN}G+#-0lBOCgZ_eJrLEsF9OK2_iekJS@Uch3$Q0k3ygb)*}U_Y z8=;-rtHK5LKXNIzlNeu>_H`FgYp0y&@Q?3>|A^);V+Q;@bkFRm(J#QTTnwM^E?4P> z2*2)dX0QFV7Y}q9|Hs*?YnLbMFJ<@7IqO+X@pPB>q{8msd~#23E@jK(U+^Q?M+tx~z!Fg3mx zk+t_C_{cC`2X_C{>%jOSU)JxSHdn4<4Cq-Xi|{O@MK7f3N5HV5?8z!Ve%r|7h&iYq zfDhl&YE7Pt*n~y6vR;Sx0bHjW1X({DM7RQ<`bvE8x?=MuIo_t)ee*{GOs4)sZ8CrV ztKa0Hv3=$W&UCEr@HzSM;qz1c8h*dn4bMT2MDKn2T%dL!H8ci~ z*z(1)3)WexRLNz{6VKa#Ob$zLO+4`e|F{wx`){6fmeABm#`y}$oPWvsiuos^!G!u> z1pW$aU&(Q1-Uyrz!RDQbd>(V&j{JAYpKu`hAHu_yd8oVF9(5)? z{CD`pt}G6B$IqP0nP+An_xzy`^KYQ>efZ5G%4{MKhrtDUW2~ozbth;T&89oDGG>uL0&#V&LgL@g#y%o^UmO z7y@gZHkzJo@wQ4vpU*ffCzwCZnO)xzWjVsa=K$ZqF-KWB5(JEvgdqqR?^!EoUb_<- ze3f_<1PnJ}2m%HUPf&KZ-U%_HS+uw87?E9bLK`ez*ap|2!@E#E@|$_}5u}|D=>g!U zTPjmB*=yVJGfNkO<}V^;afo!zo9u3+y+NrsSb{0&x6q>H_}~=$;gMW?tBYc?I$u@i z;fB77`~}GYpKh6c;}I1J5dH=IZ>4i0@2}tmRZrzB8>T~&(H@86@7pT;k^?e~qY74; zf}meSi?AE>ZqxZR(s?)Y*wa(L7>P5!sDktE_$D2ip@63+&?F4hW)2Q7fT78tYCe#$ z0E^K<{St&67@>>F!l%394742>TJ4~Mfw9c-h_3!&3ZFtTWSvOXrDRQ&_!_LQ0nz$L z$jtynTH|XThrqXKrEAjA9R!XvAgAKx8G>+(Dpg zb`DBWj-L#HOmBgX1TzkIZR-~deawKnWXF) z9@Gze1`;Q-SUw-6%%da>-s=#E-=Pavi{#jul5JuGTESx=U(D=+qN4I+Om-`#08>z zWj-VjKTIIdGZzW;&BX$XW<+4ade9T@@86snfk_CoRLg^0%V6UW$lhQJ9sUpPa?6KHaj zdx!+?TwwP~F1qpTUFz3uWY{OUL+U2nb(4Vqk9Xb9V*ah}*~UI(b$>Yfh09~zUm?&n zs|6O#M+G*lv&K#&>l`V2k88R7=FSSp)i|A2!6zFGO&X6rY-N6oc6qaeQRY(uU2}^-&wN^-Z$2ZiXl@eNu-^4mRyHYp9qm7u zYgm8pVFLjzj87cp$s#^4!&#&dtP>geeIBT)IS-6qvAGN?kTKS05Wm5O9_qOKypp~2 zS|tNRLK;8uWN5}<(On4A-JOizWD{MgG}9wfMf4b0&cWqfVL%KRmm;JogORF7-%i>1 zoni~h+$GR8cMJ5)R|FQ#mjyPgH~tzPZJd;~ak~|M5h9s%PXb*R`*&&Yza}!2xmTcT z?i1*l`vv;u>jI1Bs{$L=yS~=OMJldOd?)ir==5>g-w-nu{S!KIxsMqP=u40atV9)e zM9D6L9#-W>=dIwLAJ;ESmA-t&K6BWSS%KX(JV4}PC7{w$Dvh~gg~8|ogtJf6twO`b zwKB{#oJ|jK+BXHH?JoxW4&ui9+S}n)K5aUm>EB`-Khr;d-aw{*XJX6e^=0~xCbnu` zA=7{4?6ypQZFVLDBf_(a@&dQ5ICCEAL76a5*y(qkXyz%LkKFJFfoUB}yr^vsMii2DE-Rq`j7fnh9|TY}$Q*`5yeH(08zUVO`8$!IV*>f(21 zleeGyoI}oZ+;x&|;C07+1^A!FYfTm72dKELZ$Oo^zb+Hhu~7;R&XYDd*uf6U^_y5j zQ+j)n`IEfFKeD8vgOMyt%v8}SO`=Cdmp6%y%G91*rDIyIlAE5Z1iiV6>d8qry(MiL z=9jz@BXrVIaWcA^X^on*n@@tYkEgMwUP(u;VI7P#@-JSmnb>6-6b1X@c?42V?N2e8 zt;w(zOlsUVq`6vy8uwk~-)sv;bIlQJea*V?u-LdVj|gyOGC)GF1Ih%2OM`S4Tgh1CkDbO=d3&bn10*mHxfeq`Ozgx+;NZGi4kt+Jm z-m$K*Z+gb2N&2SmNnE&(EzmX33G~eO1^Q;K zz@m9pV8eRnuW&L=q-@`WdgwZRsF>e{?E0q=d5#xba(TC{)V}RIh&0=JYp%snUEUN= ze;V%im0pwuF3rrq066?J>d*YO@RkX0f#YB%ItFQ%*DL#HhD#v{_xSKd`^!T2<-v7c z(y4Bgi9JN;P6~nZ$`S-|Y=AgyYvZj(vr?TK^SUynu54w4LZ*v&OI<=;Dy}rLxzWLVbP46l z{zKd`v_)?;Sy>wy`-&M5fWIkIoUT!k4}4>%i)|_ARP*8X9OQE+pDMtDZ=B`0)o6Pi1rljaWc8BYlieF@6DgcvlG9PP6UbaM;Tk9QUE zrs`(o9g*<(>yIT}CNFC8CSRPcz&Rc}RG3G~$3Z83J4!eg%)H9O@2h76{Tal;;n}4W z#5GGfO|%Mjm~oClxaSdWrqhM;vp0sj+w5xr3U|Uv!qS6?sn&(727vNoF7mQ$`=}o6 z%UB=Sn!?GQjQ$+rZp-M;1FXxk(Uo6RDf1Gs-Q((Tste>Yw$nSj6E!FOEXx^nANTB^ zMJnyf!#(;YsT%qdu)Ta{=+|g!GDE*&gM+Oc{Gxd#(0Gd}SeLb90);&E&9?WGq5kcV zq4IydI4{v-)VPqz;E-AnFm@(mjTPZWYpFL*4C6C6q~kL<;*sTh3et}<#`&|`ks@AY zC#-(~YA7rHdEojE;NchX!3#p~QsfOtU~Nhe1-m9h0ZW{?fkE${{vy6u6HLf2k&LFo zuWiZgxQA`|_Yp6Q>Prx9-jX(2nYRVH=8pogH6#${Z3Pz19|Sh6ca2#w+j3I+P9|B# zRFwULl=7-ilO=$dy0;&=W8`esZZ&ejTSSntdwWs|b9q2EQ+@5*H1MGiI{#f;5{ zMphYdouf3~0*W z&%xI6-@KOTY+L8q$X)#n>&~$*&Mi1U68-Lt_@Uo@0rJ88+o=(o+i+V{JhMOeYRG=~ z10FsEA>lXi(cdDr0G_OS{ClP1>0vtUNGI!N4iGWo_6WnGTR^!z3RKGN+eBDyj{%9x zjR|A9Eg@{|gD=bNW|rHnunyeG28-oJI99~`*_Io_K@tug=Gt-D8C0vhR*zlbR4Sf; zbND2q4Jymgc|S!IWvZX1!!x9^mBB(b{4PX_lS(V1QCG&3oTZfgxv7KL{GJ!oLGZ@sQr{Tv)&i#s=vF=TE7l-OKAY=S$O z(#aqB9_SMRPo2canK1GHhe`Z3vHw;CPUKKn2mWI@*V!2VX9ADyo>t@P=WSYO_t?*H zUJ$#-jLE|`&ffUxcVN{sEDYDeZz=pfz8nJl0FWcG9|G34m*#}wRMs3q&^QR+PNn$6 z?3K|E;z#2_x2XofSP@;BwMYhmkQX3CzlcwMbc60Z>NSpDj~S6Cg7D(vkKt=#HZT2FC(1K{6jC@Xg@_Sgu4}mj!FOa^Zx|gmfnqcj$%Z z4toJ#q<%DBt>SYxV z^h^3>q)wW~pAuo!Tn8ks_630MEzy7%D?W$4p+Npy7*oS>`I0HCV_)X*uw)X=H; z{?7`-TNvn6D1r(*ldy3zzEs#Pw7;`);v6)!MVQhS12wgk#CkfI(8L)4IK7Rp-X*OA ziAW-V4u09x!8kjsUz@0d8$RFE0n_E`*ApGM&Ro>npNJ05f)nc9UfpQ5>cGQOP-^pE zm%(@PGv^cd zW`qDu#{~j?b0OgnDg0KdkFY3CyhY(Sv+y4soa|TOX2V4o*+r{4#(hRcw3czpWX7G7 z84pcnJlABfU2>fR5C{L%(1(zS+E!}lB0{{1zZ~YlxkvpiWX_Ol-FQx*jN_PZgB|{n z8Mk3$zWx(fgXN@8_^H_DC6tNNUwq&J^K_#44Ph|DKf`yvayAYu{smZ@#M<6k-7_2h z6?FIw+N@vM7;6v@5e-^lBi{lB@G!u5D&Ru~1TT!XVKpNIQmi8z{ta?k`5KHI605cb zI5+lp@CFg*KLBeVvWFyLqVXX~&Ihe+?CflQrqd?+aW--;SR>t`%(XC(aMmGj(W_8s zo#mek_`F_#Uq<*RrF+%+o+LkCnURsiw*}~{B<)Jl9*U+iHreY&bK{EwRyRBb`!9$x zRFq`};X7a;dGS1OmV;-gb4(xCLwaF6uTbAgKL;x@EKyrF3(%#Yh{Xtp#0H0GdEMc= z5chv*dk;9N%IlB&?w#40-DN>`*@D;r1+VOaVnK=xd!Y!}v7)FbI=YLrnZZQ`6|pPW zP(U#nOY9}a7E7wpXf!6e8%vDF7GpF~6W90qJI}o{ca|0TzwhVW&(2fM)6R3wdD?l( z)j3$-psl=2sHaR-V3jf7q&&j|hVk62o_=-_vGl<;cv_ZrpP%HqiWQnuSnw^GXF4&^ zHc5V(_jPvWJ7CpKTy6IfHkVWyI;1juSU%P)sSX^0!a3l}@sF;!VloM0l6SFMEu9i? zEzfZSGVtj6au$9YYocGAS}&kj4lqFq&DT3G9wB zbK{{)RR>0SyQ*3NVTxlx7wNI&nJQ9p4dxZ<(RM!hF*Av-$mlH@U6JWQl(uTci^5Jx zEUiJP0)~gGpeG?kEyS=^-h)iFT@=qMHKeM3NEN3$W$3>lbVwo4OBqXNsyWcj)*lF@ zQ{3CYkW^*^e676|%dN*Z`=NMCSxs%k*~Wkqyj9Mlf;h!nrMHk}XE?`O6;N8!kh@!k zK`Q@DC9=rDkEvA{P0nB#0@Hc}uK7HXW2rgZt@m z5n4A!#dZ z#d2?=Tt6FOHP})*x}ui|Wk@&*=PiYEB5@#}^l}-rmg|ss3d1TM5DtO1a+zo@u6n;? z^-!4d7@|C=w<2|4?|0+zRqrOE>R4^8-rdI;8pd(;?xtMo9hK|q9bq-hQg*Gk;;vP1 z0lU5AlSasZ1(YC|jvC&fC_5zBQs8Sq1 zVtG=bC{L@93*wxy(aN_wSgs$4qLuJaz*t>W|Aa?R;V~w#ezJL0XDY2Tgy?uUUzy0? zj4b#Ya4~EIY4f+pm&&if(lX3!waG!`@t*R?DSlmW3%vs~<~l#C6yp1#gr@Ay*DEBc(fGW_HGC$Z#Un&9FHrYRlZ+u*2o8lKYkU zv9fZzW9pfhHDJ&&2VE)tp1!^VS=CwpASIikOi36I_r$7h>c3WbnY{=wEzjPHVH05X z@jLY`(69{lHTJ>dR#`=GI@lMe-O13L_oiD5>kA>42=-Ix5L9W{b#^T;dw@W^#H|m7 ziQ?v;jKlmndF@ipMtXrvuta8@lF%K?XMif&G2SUGN{3w*4v7Vh-p2#Sk*cKqq?2FccLDEo9|{d=H*DYPPQQ2o}b$jx9yRo zv*Q%2N4j+a80c|D>Cg5Mi~~fvr#(^d12J4w)LXbSlQ23qVBt|!lWa~^2KA(PlV#B% zE^+f&VZ15IFl)sz$TZoKXfkPyIa6?iYa>A z*`4)|M1r7neDeDcpw%5MYZaQ|Xcy%h%0eZ$jU1~x_G9WJn8Pe{7|v$DvtKM?=5Wig ze;-?%8+PdOl*Eu@eR>2Qr;1uDv?7>FpvH!=<20w@4O4!L_|dlQO?WK(yC3s*en-L; zwg9~I8TAz)-O?Ofi}>}&jXps-RnaA(&xSc!NqSEc_JPUDgS1oX^N5;js`+TXsf>#= z5fvOYbBb^D5rQ!hMU|VBRugro25D)XGz3fQWW$`(Iw?oAPH1>ptv-Y)trN&Lb+Gmo z6s?o2&U%zIW!5Z}giJIlMY<--#ge0I;^YdCEUO_F!ND;AMJvreRrAGH722Finzv(C<&QNCzFCw&9brdRP;nbT-QM1K5PQz{vw|`@$cl-fl8}kS zP;Vj_K~BdLX-Wi;ro;klEllq%4?@equg<)cX@&76nxfDa!I998Wnr!M-OO(bcqUzQ zs4xNI+VSzg&g8ct{;(aZ8YOalKbd@F{Qf0D$aO0x_n~3_1-yQiy@BMY^GNS!e`5f4 z0+Mv0sm}VzG#qx<%Y%$j@(fHe zAYGp9&U&;6PTZA_;ii?GdN%QqSK&}BJD4SSWp#x+Qczi2X%Db!&%)k5?Nc#wI@M># z>fdx9soN-tH`6T zae!PQ2D2A$sEyd$)mCDUkV6w}I3r<$^M5M=gvPXSk~_{ad!&TX%?*%!QRc;V~Z~b9Ja{^rajH z>8NFR?pa$Ae;d{%?a?uepvsEoRJdj2He5_R>YT`#bg9W&w@h{`{v#(%Ej?rV)CL00{61xcor+lqDnS&kn_R53qtRAVx5gW5JdN^HbOaFbu_}2kv4$(=^H*k5W#=(Q>_mL8uV~&8x>FiO& zb`jkPCeAb*0ciAdL`r8-_EB$T6P$~nq_c+ts3FdgmW*v368~AHT+LxNx8uy=UAN=B zKn^Lj&&Cn4`F+Oj+A!NT<^N=Hs@%Ca1tWIB5o z7_=^-CVAmon?O%_D=1?92rD4Bs*(3~UkN49%@`Dz-PGi&AFhe^&eu^BdX4p~NhN4k zIKK3DnuZj%9c;ybs5ZI~`UotX^S` z#x*^h(DncRCJd5>QWZnZbW&fA*bFM!cIy9f92>rZpgPGHqU8iYG+ zpJH)Lc3u1Y)MU4vAY}J1SW)|Y3pZcS#?qQxgz z^i_K>BJ%RVn9~X8emua;$&9xBFGq%U`yWOKJPn|Fk(N{F(%{>88ykq>+BnFrrBolmiBX>QnGb! znHHVLWgkX!9JbZ@e<`KImNRDbwoUE-f);%1n1DVkgk;C$(6Fs`Lu0!JYPvGEB1JAu zu#L_(!T$e%;Vyn(dgt%Qu;ZZhLXW1ffqF~J$f{VgL98hh!BNi;&Fz_2c)Snj)g#wk z=k_-PyO&>VZZB5H+KcNS|7q>z3xa4b|Hg{?$N%8wPCsVwTe0c~=P$~G{*jF|81*Hl z`p5gj{!vi+M_Dl@DM{D<(Xz4hCH-R&98saTE|2w(Dz~JLTSK4Et&ZOiL>>Q!MIAML zIfst1WdUu>&wdNkO?p_g^quaUoeERmSw?Pt z?!WldccL(AYF}w$s{nPMvSSocx~Ti~bHb%KIMag&P?IhhoCPWwoNYhd%D3p9;ovMB z*ju+Q)&}S9qeRrzS!I1Q=<=U?HEui}=B;@p8isp$Z~WaG6pp*fIY#qxZvk>g<3tzY zgB&z3$Aac(_&IjeTo)LyF_KDWnHoV~gN_Bzb5Ouu2^+>qRA(a;$y8vIT~PrmwDQK2mnMVVq zbbBSK?Z%HgkzYI5&k1GI<8$*Ty!P`DGU-N~K0RuB*pcIwPGF50I=-p}ZK8q$+tV{z zupZ0hvgZ9sX19!@L`MSIDD!&~)o<4?0-jz3szk0EHIjJgT8ZB*#v4{2C7y6VH#sgG zR{+LxycwuNr=@W`1DV6v9mHlFOU-A*e+j#~W2EbxMJ#pBMl|c3-SW@4QD+==%wYLv za%{`LwL&8i_Qsw-AAyh{8r~KBcEnSS%`Id5i{L1gwFj>|vNrFeU+``NHUv5D+OKX8 zYvT{8z)vq$| zH!Yx`^sBOBy@--@?N==uOJCBj7QqFwbvN%+xg~X^33^{z9eWc*9od4Vj&5DJ0s(Dl znV^of4`A1^HsGRHtz@o)V%Tfw8FsOCz+F5)TaP>V&RRP<0yjO?IaHgT((6Vu10DWS zxl+udD26cXD${59!NY2!*TOtMs{kfmIoUDdC>=RzhN=!&XrULi6;S(bBs^vkPHMRI# zM>XjT)~}j$R94MsEICpOJ%dCGy^aRA)Dtj1nz(3g4Cxr;7Ji12C6C4y5x->N*L{>o z!gLN6LVG*$)71Q1e&zgL=BK|1?h`3m4+=gIKl&-}p%@%7v~}Wjz<6me8lV*2)``5C z=Y7I&5dN^e3fq`0mwQ{1$-hmO(eg@`8JpBzXZg8)xNOR9<5kZ}8=lfxw7kfy1!~yp zlT26EAXF@*z!{wcgRnQOONmy(Sih2S%X~IIswejTw6b4TrEWUR#%V z3{_7QBDD-Wkb%X;j1MdoK?0Nu1B+^;fyHVT8(55Fb$Nju#YzU2wL%N>8;&dJ!R=iI zwn1%Nk$mbeg0tnRZ%P)%6)oPz1AB#E*Kvg>*u0PU^(Rg!r($7DPTjcjACuGm1Rg>nro7JmPr_R{ph*MJ?o20E38cBubX!@JN zkG{(50VUPv(@N<|i}0QC^uxcgfc$OBuLbvI{5Ha^HY2!ngDY^|!LL8=uq}yOp`1m> z<#a}+%+|-NP2PqRC37JJ&g{YTU59J-#2!K(I;VLI`F(Biwj~~NxjhzgIlxZ`y&+I$ z4Xcor9XA!#c2G{H3*Ql!>(E=$K`)}YK+}J7XHW_KoTA$pQ^~f$2&KJJ3kDNN({O7B zv_NvA8Bk2aElebkBW35d!<0ZiCV^z#jrc1-0x3JD;Z{0wYBSOEb3&5ywWiWenr_&> z#8*%XGrzGY(fr2E6a$l^_qQRqoUu&$F>}<#{HrA{3lKw?o5#JaeM-c=c$6&!n=>sS)+47*Va3`RSg}dM? zu#j8cuuy>!3pX_u8bsR`V&Tq8yPhl*5@O-5vU8&`#X=B?Sf~K8PsVqeLvUvn8;|zBnu%e!?%#!(sTvL)JfQ@h}B{>PmU2 z;@9Hge~pK`5d;r+#|nA)lz8}^@o*2Ij)!~UD)4YSEf?~=iy^E!BU_@1{WTf-ZXqC8ha9B*pPudfiPK)s3*7Q zfOmz%L(H|CTwEa5O9^rgYuyK{Z68o5BpGI})wWKA^SX!a=2rhRncA0l$khH=$dv8n z9)R1=j>8O&C&drXt&|6ItMRgO`(bKs^#l^3lRJVkw~`f`B`8VPxs_#O=}YETMR0*# z-L2VGZmiuTJrrMBYcaQ)KoE625UWS3ukGdjO%3Nc8}%mv&Kycbb?6P!_0?W(^R!gs z;f;GRi(s?%eIoPyUqbnGsbXKOvBXBKOXSjsb*UU0u`a_A?#ZfLHI+kT=O$vRyW==V zQ~MSm=Vuk5rXstu{@2l-tkRLw<;s!_lKF!HXl0#cTZbxfa8Quo3L?1sqt1UNe(uH+ z6vtN2sHJr1BAoDPAvIfB>+iDnQGB*)dic zwiRv4_v?V#$)B?FP-V455IMeELn-%w2WAjSqRTFnL}s%fPx>6?0MieQzoT%#$1Lo* zl!CBp&ZxP-FZs2?h%tB?a7TaIPu>LBB!2O6NBharTTSZ{UvtJ&fX(F>n>z@tSo?uQ z>Z7dv98OS`Z4w;gXQ$$6&U2L%n~S7o9*ybN73)}s?P`}8l^1=*F|u+;V5+b9xp=z* zy!@;J=q_Z%WK5}|?xLx0H-&3qq4UN2#8wNnde;ES+(ufAE>qg8!MXqbhDDER1ujwOimWR2lM?nJyS z-cG_A$$>L)X`aDNTD;-;vf~vYt8hMHbAoxMW3DHaRT@-2Syt{iOi}q6QTb!a;>%!w zpt7tOm6fVM<;}P-i@!S@9I;EnTW^2?JvwHyZ;@5q*tWO;NC#!94$!%Vr{%1^4&qW@ zGGpu7l6*%0i&a_6N?7Fb372EG%VU+Q%NyyeQs`<{s1Q?(uN9gOZX|Gsr~O0y4dnL= zewH!D4o+A1rT!IY#vr|L0x5EL<$ z6|0?+kV#ZKJ1J_}Sb8?linS|(quPOYZ!xl$ch*(`b9hC=loF^-H7N+X>d{{?8siUk|Q&f_uDMn}AEE`K-GCwMU z3qwYsjxwp9Ze4K*8h*jK znP}$Om;pKngn1<_Hep^RhnT(^M>ru;K@#SLvU6EX2{Vnd$@HyUGX^Aimfcy8hTM(p zN=HsNOMLvC@Nh%);B;^erRppfL$}~Hsgf~Sppr4!PT?3D7Cjo1g$jMY365BWejZl1m*fbaHNr0f>=tzN zq?-QOytIxDB~(;i9SRlIeN=~}IW>v{drZ90*}xQ~j1C5lxY0>l*Au~neb z6^6$F(`R2^6NS$)Y-$g_{Hat zniGBiOlJ>cb3!2%_8HOYlUF`i#wK|jlXWYHec=pBL%nseC27k|u2~*Qt}n&nzSJ`E zZk>t%_e8TRSY8?6W~Ic3r7_Z>kY0}4RD*uboD$N?&eV~lZC!)g&$8l4R$9rKTYpGv z=*CasqBR(6BY1rYrq*CAwVFC|epXN|z+}gyREY|@3JztYgJsmy4#fuSw(5R^bQBKqj72!a4ClM3Sy z3mrtCg-$Z~JxKlVIHWunhpv^CW94Pz5bGKnYXzlql@%L@l%(r8WZ78yl5waAUgtQZ za!bacxyVi0>UbSN)RC!VI1Xh|87Es-AEI%HnO@i(uEa%uuvt3zHPz+=lsQ3K-XfZ9 zriJZ~C?{}3m!MG#5kVK*<>P0W*RA(Xh|rP<(Um~A>oFxlzg2g^TAuDg0g@uwG1@5| zQpCv4K-jclHwe(i391p@RfS?-!YW&Uno{kTKqY;NDWMHLiyrkQLa{{q)qRwxFHtAL zAKE65?VZA&gyz8vRo*aupYqdQMAtq;cWpF}i1isNyoA3x1XN-CT}=@DrCGyYDOnDq z1E*ml#kZPCb4dpO{Q+5a>qzB=EYpa7v3oJ52|O3wkhv87zBOkALukh z+dHs&r1sKSfCA1NOAb7u=%sUmXi1&*Q#GT?-bp0WL+V-8{+AIxtPY1de{+0gj;4)T z79Qc9f#}w^%$#bD>d29(GqJ54CFX}`V-JE(F7L`ZE-c@rLUw1AmYykm3Q9MB-q2|= zY0S8Y5X}pPJPXA9y|Qy~Az91!V}B=ZofZT$I_d=sxtPxxygiPP(NHafj<=aV;jBZoP~S z3E6yrAY}6)EVo`xz>ojqdih}zXL=hSk5jKHRqHhCK3NzXk0V?!t1L;vBeHW3Vrq%; z`;an%YJDL)wxU!bvYAdcg_}i|k!4V_UM_;8#XvNU$JWa#Ha6!^+BeDAuY(qk5(F(C z!;03+Kf}#kSe^*;EJ!8PhkwvdRcWJr7Z-kYcbPV)=fMa zUyU9?VVTPb@w3XPuzdD`b3sucw|q7yQy7-dN~7iT?+N7!BDXl}E zq4G5$zZ$CgSp{gQlpT{wL%z6tHsp&_UdAhflrEnIDiKIqJ{txWJ(}{0geA-8?xRF4 zKE8gIK6nQtr0e<_-JaLMuZHkwF04J3r-1!~U)Q2_*p<$^m9E}o`MFJNAPqb9{0#7SF(M4Vj zr0}zEU}jcRrkkOezDF~(1u9lEw6k%9!>Z8L4DC(Xxj$lRhW1DG z$tHFc!J*p~ZzK!YQ|!R?2mPxn}B(#L#A0DSovi@yDswBBGzX6~X2T(ASk z-7Yi#ftfi&#G|JTcUCngnN3U$*>glYr~Xxz3}>Io%6){X;p}yh4i&ec3}>=p!#%tKl$yJE(UqCJjSE&^7a1jJPhaBe&fZI#gaBD1g z7ot?62JTMTxvwxaaHFZ?Mh&9IO)EeexMj!4qIBdmPeSD9gizE$9;o&u0AF=$0W>;Hy%cfT2Rd%e8BeqPXVE8_y~ z^^Vmxr0fIjV`pA^r2FgC%do1nTWF@5D)_EUHDB_n2#?6vS7qFB7@a}&9id^$>Vrf$$Z0U%Td#jceq z8uzl4>~2W!nlx)Ox6HUl+(20G#UARk55fqE=Y=nLND(ISZ-~8nTQLfNfwDU5xuoHq zFA*}8=)Lm8*3OZA6sO-R+_Du&DsRcKZ z8{Fwatn9kHz?`wQ>KO)+W@MoH`0tBUZ0FIN7GuG87btr+zrMKj$56|clRWPGfZe|NqQRiWF+=;f%3n&v-m-I5m{KCPiy7#aDM$fQBFc`v`J!~>)GGca zn>Owi3w!y+DL^(LI_+T0ZHById@|hX&(4gu9S>_M+`SK@(?7Ejr0VwnTHMl*vk2jG zgw_5$!b@~K$`&0@U1nFQcbFzN1P=&5o#S~>4(+!*P3#b>7=<-aF=9v<<9vxf4!1!A@Hi#J_h5!TC&&by8rWCAVg9GmOWwIcIqCJaI&Ml3b?lGD*s3jN z+pwbxF%eB?X>Q2?ZA(>tAaO!J@?JG+5}EK^j7^jjW={_XXacH6jj*7D2})-VG4oJm z)1Mm@4H;JWj%X-QjA*DvqJdTDK(sAn0Sis7Zn&OAuzP)3B;kc`dZPirGOPl5J*Odq-lFjInNUM939x7rHQXaG0eOkK<+lRJZ0i(M;BscvUH#$Ww<#+>1iyoF z7YR47m&v+hM&|cKYRJ5dX`Rq3I5gQp@ews76^TqV$;xesDVcaz4QU=%n(!kKvO4Qw zn&XXUvc%R@uqTVE-*k2O*n?*2xq4b<%;~@0EH-X+!)N7+W)Q+vkK60W7(bc_m-es z5$vE)ohr<~k1HK~fH`V&5;|vyQBHxK4XAK7%CO{*P~6-4p+*3Dlf@q0w8_inKtNB2 zkR5u}d6w4^dhD=pY`m#mN*q%ZFyrxaiV%DA&?s7MZyx$tm2PiypT(-LOs^Y^Y7?Ig zTZbY?kXfCtCt@3}8!>3KeuxpH<$XokjjVl*py^Skkyz-~*q7kDR>5b)3?5_LN(UUftg`K=%yjerlc2`T=a^v_ z18=JJBaF_z9_Libtl<%0=2)l5S)M^}Qk5S=(Yyx5 zIG_n!(U*CG{0679(@H|*%b*}p$Z@zwT}(BdlSiG&iU*xBGo1Vmb#?zCvc03o%G-@> zU*iZn165xQV<*|U9WkY=dtai9!VU>hfYb@HJL?H>ou<+;Mxyheqj6ZXCyv?!yn@SB zw%RhvhN|WvVWo=TPNiZg(AjV_Mc7A!GT*tROG&DuVO2vTS_A@R7%bE~i#nMnp^Lsa zWtS_h0(C}2hd-AqS^S3web)-D2v{Z~N3s3MyWu&k^ZFO%MRZ663B{zs+a&Fc#Enf} zb|wgU;ZBXlw5iN}G>4>D+YJa$UtFh{@L^aC1REz%t3>HJ=l5@L?jfS_$D3o4P39n&SY;S@VU=ZM8I-W92o70QqGR6?y6nX- z#w*cnEnaa~6kZ)j5WJd||3 z!FafMg_%LuBVHYf`}=vN(8kOLA+KUc|6~1l<&aM24_CPkX?XQn$SXm`E7>t#8OB|B zWf@rpCA=zv*OOPG+giNZ%y@MKLGbEGtWsVb1%!{qVXiN)l$CfjO?GZ7rg-(wBCix6 zUdfK}O6dx`ItC9nXD~Cp9j}hV{r$XBXk!K?lC`TC(x0y%uN>0p{P8N+Aq}to74k|@ z@k(}#SB7yHURg$#K?$#l;PvE{=oaHu!h3-6tiSQ<1cKnziCFMzBAwq!IJwz_nOUL1 z8ag%vC`z0X8#RZmtI)_q>ndfzq<@C2+;mK>tG-Ze*_RTOb(O5ndidt12ui}bs)0-j z2W2c9OV74VBO$K8FM=zAzCgooIrQ@8E-vULRA?gDP@(GM6J9g@$^fh1DFji!nOM~C zaK_{(sXNs?4G5pE!wmY7&{cCIxukL37>AaRn_!2!dgVklGqQ50Vyc>7N)n$YN4|dt zh?>gktcTgIrbokKxn|D8%-mFvr@W?lBJ=_rBJ|nV;XbFbhS2k6?y?MwJi$dz1C5U?GvBJJh z>jJ9300^JO!gTUvn|mftQjSWVY>sCF<}mHM{xWao02>f2DsHnrPYBdY-QZL(t` zrF8UdPNdrKaNh;f<_vrxOHLFo8j{Y%-K$({WP+A89~(h3aqg2lO6_Hy%Gpl0WjCI?^8}x^BP&X%Q00= z_IsMz`;a4-2LMr1SusIXszTp)H6HFAUb$;(#H;he>|mg71YT4DX8fA z`Gnc^`7*O}4jg<-75HAde8DoJ>l{jjH=nWwn+&X?7$|l#7CH>^zx6JZtGYuYSpGT; z+_%Vmy>qXT`v&K}Rqhqe{Uf<=bne^azR9_7mwP3KpZziB&=J8Ws62*lZCB$ntbtNo zzPX!1Tl>R3z2Dg6KIo)g3>6yMzelOFiw-|i>B_93k~Jive|5DBy|24LR{MWXr$e?Z0J7nipV`|&hRHqoeJ8%dUtWq>NZ z$p0d^TmEa$d0Z*~g+ocZ<&LZFKGAOPBnX~CvS^Iax|VkP6CfN5$6VhrMp;#~2g_Kx1aGVv!_P)iSVM55RFDE+mp7%`Nj>&Rr;So)HYsR%9*BbrAo zyQMIXQn9i6C%yBaPhc|s3_;ZYIjnFV#a^jo{COapiN;)C8CO=4@fT$0p2gHWDk&LP zo}BjuBpH_-lX0ah$oMbuaID(QUt?yrG|B#roB>Y6`M0=>i^i@~Dup&?whF~JR*UlW z6JJ-0bpChb6V?LpMR{c6E2zX*c8p_Ig)ZW285tQ$#J30zITjzE_JvODuf}Cpbd2#X z<#EwGocq5>5WM?67Q8zSroD`l&$gKP2Qyza^EJ%OkJd|Gl_~Q2M_IX-FeR_t=QDW~ z6nT{utG$wRl~>Eg(wE3<5xkbXF1e;4uPQcH=Y%%_nz*^t>jY8fKVyY+skfmAReu8r zCs#4ob1tQvsOVd=a(}{9MY-74)XrWc(y9RJDk~!Lkwd3)#9hjLRCZ>Opv&oz> ze7Moo56t|#nID?@5oYH0^^!vs0DC@`m3tRc z>_O*lawsUgkrktbl5~|r%f`}|$YBv&phY+RrizW#Kj}>`$l)ghQU8Bng>tAfJjmf^ zK=?uf=6cGZa-yRDk(K)tQx#?5+0@SZ1vyjzb(Iy9L!}Dka2B)LGC%t{5DxxgW|~a` zzc9d;n2njC2Kl!FhnX{mCMPM^M?4Kr#Pcg<>kvgeIiYPGqo5K`*)f(Fnq9=xGO`Rx z#Ip!4u%u*M-wN7GR~;MIMXeZr5*`;uJ>oHU`yIvo)1($ZUgY zT7cm=r1jVqJJfn8A?)~8R_+^2v4b=IO&zoOlmdQuA*-{Vb(hmEDG8ZuM<&%x9Lg({ zl-XVdX$ri9!YcG+W|O{bXy3ZBlB@_svyli+(N+YfouZ98IoV8m*W6U-BZXQ_CzSH^ zHslbidnZB2Ca+RUHuW~-$!t5dynVFJN0$M0=cALj-1%revvU$LTwwUFVD>~oa*FPr z_e^I`wKzTy&a)~T7CP&m^g9KM@X@5dTq$$kiCRqhSpzk--)17N0L}Yl$Am}e!g;^0 zr*?Bkf1C~!s2*KzRtr>eg4))MhKEIuPEZRMgm6BKpALJaq5CL>1FX?EpR{lNGk&^! zRKrhu*lcIp-D+-auJ7BBD!$}gAt#M=o(=g;Q3H5bfdvnbMqm0W`KGfOc#s(k-A6Ap ze~bJ(B0LS5krFn|q(G7M|*~_GpQ2>H1tFxZvm=kQJ zBA=ber#fvnU@L;1@dVF;z{oa3fNi{WBe0XbM)$o4bkH<^uyhV&xeK`ER(|V5cAtai zK_Y5Pmc3PswzLZ=}KvK`-NGPtBO^)G0#vue`4#ilCE~LzP55pS_<7`9ba9rUBR@J}vm99%|FFbN2 zU5Bco_0UGLbA2$i9zs#q)PAn2mQ{e(L$YH>j+Bm^2CGx*>rS@`E1hnWT{vDSPdl&N zc(FI~HkqZasAuI_Z(`KD-MM?)p5obtr&N5F8uI8sXaCFWRr?)FVc04>z@z^&W zbPiU3I(xhsGD}AszmFguCxWAuv-ZE-y{w@o*BcW=f4(Ue{kgq6wi#|t>S6|4Q!$Cp zx-Xt75BN4fR&Enab>el%lT-QK5v#oT*;OTjhll2yNO4Di(`rQ{?%L>I+I;a zbY;ILE~j$|v?)k_D_l&dW$~WAnOiE5eZ_FraSW8UbHK;Sp>}v2j_}x&u+gkzi0s_v zn3{EPJEW;y+ejQE1*BPr?9O@=RBq5yI&zvuPTVoxlEOGD3@p4aY)-p>xi)H<8#N)a zr&(>Kr}I^&1(iD7w4m;3R)<> zrbXe?=W}@UKBp)xzlZ+m>^EY?;$!LAuBZ2_>CwuBF?wB12OllB(%ZTMl}w}T>V;u% z(W7aUh#TF%uxV8HQHpXk_5`&e_pa4ZFynH5P5AGm*NVe`hA%$9(tX_zTq= zfxXLb5OLHA^5&!P3S~8}+fR6>su2G8DgaT8G)|+mVIs3B)QQ123g)8D=i01``d_Fx zbZfpXKsuLXU?S6>B+(t-{9an%#g+*4MU#)Kc@jd?V(>y``X&t*D%T?Z|>63 zzU)vTjYmfa{8kp+sr>c?@U*{~ij-I7BEWC~gmpUmtu?f5EpR)`%n52fws|vME=lW& za%ji&BphLjQu(^&K0GAj{iOX1BJnD?ulxNR`1%VpUeRPf|43PP4H( zaqQF%IEH5?bosrH5YUb2IvmtV!xlV;2nMpQeGGyL`A|1QCW51$OX9Jqc=-96v#@EayloT@< z2jLqsvnWA}tFy4HYyDt0cDTq=eq2`>D=W7XX07iB{Ul09nkXrNj#gG@J$gOYI+Tih z=8zBPJn>|*T3w-CK>AdC^I7RE4-tfDWabia9Wze}wIRaHb9YjQm@xC)NSN@n4B09` zGf&yEnWv%RW}ZzoC56tTP$-i&G=yYrDl=a--_zmDnd*Hdmqe(_RA3aq`xU@h;>WXS zMSYjbn%~d4$PgCv$8~KJsg_q z(&{z{IY+wBHf-83Z8Ee_4o!y6!4Ya#<@d1PJrSXtVE=eox&1N4{!O8F$0QCDw^n)t3q@Fv`|88&foInuuJP?a|j?tM$$T!=0-+5bh~_Em1jkg?h4`} zlBAu0@hJi#XU>-d9$>6k=Y>GSm}$!t5``!;ZDFgUsa^UXz5zjirY*8#7Xl6E!i7Mt zk4f6;7vseXl+JFTR(g&Qv<47xE$ewf8 zptw%zrlWReBq}tyya>6DW@qIZJ4>2f5$r@Qy4$l5WU|nX$=Ol8RKPMEt(IivtPxCqrQcEnL`f zSQ{62LCzujZ6U(N>xZn<+I}yx9ohB6RHbLdwQAHhb|KTUtaCi6bF?)wMAtJ-ZS#GR zqRX1`eaq`1n^c8cA{XJ@Qe=(Y)l7IlM;_7LFs2_v5X?Fri@xtT`zj3Q;JgLZ@Y~NG z2b}LVU}i3XP#Q)Xf=lJnTIe!4q?@}ON4O|bhSKt#C_8s7rnGzB#9ya?(}J6Yy%xZ>C#hG-6pKNN^RwS{9k-YCP5LFDtYme{z`MK>8zL zoz7NKgJ8V%hnl3?N=LI)8?J4d>XtkXE}+x_Eugk571>Bygi4sP9DxQC*d6+)aAIbhZ*SM_nXm3E~shjkxY` zt^@JElHdPp#GCjwhL8^RsNf~v{NR2mdLO_*{cM#oHn#$>i@lH;B9VUrQ1lPK}^@hs7NzXnjZRHe#sN-o^p}v6w{CE~nbh7n2 zlC(U&nH04G2G`4fD*l#E*1=)S*NC~`j~JO72+pj)=m~vKCqZQ}vB+{wS4~#cCQMe{ zbKgQitt%rtcPge@7d@qIIt!|%B|9dlN<=mi)PmB}GO`R%dK$@1=~)C9=o`(Ye)`M8 zTuSA}Xq52&RG`rr1VN)#Ec%mHzLSA#EdmK>1j^hPC&Mhj>qQ2YA~KvMJ9j3g$S^o0 zgP=+r8s4E#PBg>$K3`KB(3IW#-XKgiBXprgf9nPquDy6K7>ZZ8gK+)zEPLH@h~*dSPvKLL3Md4yN_8kSKjiJi`}>8ooRD@nw6B9t{xS**_)DB-BBkDF!ZR$yv3awtS>SEs`*5I|DE z$&PLLDIIeo-F-j-$EQoO8-s#{J&M}Qr3e~gRulkF)FV)?%}CAh{l z>OByNxUB@?+q#_hn3E1!ZeYi9b2^qg`tt1w67fX_m9=vHxGk*3?K@=W)?kX;)Vir% zM+x|@10Zo*c8uFf7jm06r8-sGskh3mAGWr$p?xasu1-xwh6~XtKCBd>syaA?<2{&m zqt%1i!qB=fw;puJR_5*o*d+de<1jqZvB1rTX|amHD5_&OLxxOJiWaFxom(fEt7BSj$y9c9yN5 zrZ-l7X_vP$ieUW+EA}C@j#G8sLQz^CIDxOuRF@pZfT5PUXUoGUmiFZWmoyc7$H_3Z zBvDfl*1X+hY_`6<`zRsHqjsXcoO>Qx&#^)%wvz}x1$exjsE=pe;BmHit#+b4mj(P{ z?L}oGdHtu+2SGa4UPxQG+Ryo#9N3{$5sG{ZEVq)jp15ph+?uc^rYMt1Hw%vyAkC_JHtC}n%-{@CRq_cxfl8WD4{f#?1{OVPM#6%xOBb6_ z_faA)#^*#|LvYqOC1;n^Uf5UF`f{!Ig6w*e_{G|bN-yF6sXXGhm+}9%1i}9ov5fz% z_rQVt%Xm={{0=K~uK=&$Vv;jp$vi<=_-!VgBl?h@+;*iu z!V#*>g})v&`=jjK3z&M)YQJ_H8Dm<6iN{$}-i&O+YK~Np(hHdsWyB$5Znd7A1Ll-S6oeX<`PQiQl1;WTzNXMZEUD>Lgs|- zL25U8{YsT?T1A(-ImVzSq1TqzzCkQQn^$nNdrtz%R zH}Ke|$N6BdKXJ6a;#{MeOl;0s?){m}S@AGNeo7F1!)I9Z4Rz_@RyyBiZg0r0ZeJ-Z zQq45le-dM819Q^PakM@vNG9lEQ&868Wi6VyFPXu;G(s|uk!$!itQ7uw8`kti_BgB?2!y}%MPJFz{R30_ zBKCQk!bh?dpaDvD?1fmRV@~-RS@vw8ciGJ(q%O}qPT4i7#=|sZRc`xs<>(3D zA&=qtdf}~hExT~OULNS9Y%))fy7fs6BN9Sxnb#RfLfUruR(-lAy;fUmnSBb=y}~yK zHSAb@t)3hdc!~m?j;{!=2%ZMYWGFhTo`r)C^J79%B8!889R}=1e!XyO{-r;;1-p}9 z?A((`n+SgH^47l3sf6!iGW0b;$k2bWx|1O$!;+yLxadZVp$Of#*rt~5Ir1lj@fi#O zcx9*xIZ=Rzr05y(SY?XGR<`xsuu&dnJyYq*>lzyxf|1nBSlm5Rk)7{hYRcyD zd{(epu%JmBiWdaJ?#NG!rz?U(4HW&6 z7V}VIS@E3%y}nY=BkewAf0n3@VAaH&z5TFlhHbaacEd+0UAZ?Cvl@bKzQFV5Vjp`e zZ%a*?)iUGslf(+|^#{wmM@|8D@D%SdR6#0k^L-B9Z%^!%__yaG{^q;S%uG{c{^+{P z4*knRyH@Hj>NjQEsUuhE6EGOpJSy+)Q0{rtu&)MAldx}KoQkb@`oSw34~XLJ%TM#j z!+|juK*H@EdwUB%ir)j+4g5CYr@OHg*xZ0UMd3>E{*;A_Q{F!hl6mjJGQXNUeo-Iq zwZ#g(+Td4D`F3i`yXN4nTT2;lpCiwnEz_5# zyqyn{dFkYx)}*{0C#$UI4sM>A@=m%!=IxVZj=f6ewi9GtTrTt0@~Qn&-h(NbV_Pm> zn(|&q%l!)ry#}+&yFK0K@+vAP_qE*8s`6HuSpg*FeQNPt z1FMM&J=rL*DD};fly}n}qvxi)8}^d9-)YZI?d46rY3qr-ydek9!#s4J+>0)gIq2H0 zC#Jj)u2IZ0$EhxVC||hvUGK*nHmvnN#r=`@l)2k1=R40*S$|3?=8IFtFG_heJ*M{S z<^7S|Qr^d>ruwG5ts7>oPI-r3F7wXWqTXITCR~v6etMzINt2Yr?5kxiI8J8EOqu6S zX`b23d-+mfwE{Ec^(W^BZ`JZKvm3nkmdSkU(lN7pc^|gUBlPOkTesADpBpBBnJStr zny1o-?4#U<^%!(bKX3j5Vc5>8MkM5b=9&Gxuh)!U)X#fu7r}pSJo?(GI_;*5m!4a; z_j!_*iXMvpU{9Gn>tx<-?u>D2a%R}lly{Yx`_EDBb~1A$*rvRXriuR7r$wKS&R)2< z)|-pF*83aqTJP6DHuWAr5^B9;_EDU>jfP+CEqS=(+>4iP>b+t3>|>$dv?$I8nD3W~ zBPp-GMfhxc=Cerhk-OfGIciq(%z@s}bYj^+@5fgsmZiKYM%D9-Q^%XU%`O*KceE@5^?vpJugneu+Q^0PA=yk#rL%uadJ<}X~_;9Ufr8@w&r#?0QQ?2U6ZQ``Mk zQT~IK;?C*Q#hu$G-901aZ93)d8NIxg(*!wT)!x+NmN}wrPb+=?WMR11!7}$X^Mx6= zPaWtzJ42&~qraF8{FS;OQAqnh@9|7xSugL*yh{9b59R;Nlxa}oE2Gc7 z)}sFlX9s%cQtN?U*(~Mx4D}u8HQXZil4X+WC*~{9t6RTW0+m(>e!>Dl4l~)f=V;~m z+k>Vpex*!uKG=I^!M7(5_GX^{?a3+cYvg30_sL$$|AHk-`x+8H(7Sq~ATOUK^Mm;^ zYjQGoH1nja+)tW$3$+;N{fam#@8%iuQoTbQ#XoP0L6rTX^rzFeWUzv?u#soz~bZcWPDXQuM`Yt_QV z1HIaX%K4q3dFEhm(Ja;Fu+~)H25-x=#O2H^wUi0gV?5O`m>k|UF8pbwC^Kid%x#a7 zIc~Ph{}^9xF`nLR?(}N)PE|`4`jN$Ku9SPTeda^+1J9QGAmdc~*yFBBd4IMZX5nSy zFH3n3nE8~Mtt%9>4ct=RH#xcYy=uGuIe_X9L_37+4knpWd28LTZ?J)CNYri|2d0R>?dak)oH1nouf-E-or1OMT zuu!y}bDqpC^5V;xrwd-a$7^*xL)4X^H+@<==G-Ur@Vpt8b13f=erE&&5u{P1K~@9mm4jr*&3u?@u?#w>vqO z_3!OH-@1Iwm);)UVyM{LyKyIl?crT$VH?g`zUB|!A>JwrJLUN0YsUMBdTY%0#Kp_k z+*5Y6cbDb4V7kJN@$NC-A1+bYvED=Gd)06`&ig6fcj@g-xKbsY>^*6@e0YM=o#Fk$ zeCJrY#ac5Eb0X;u^Un8PwXpG4!V2y#3(p%Y=G|Tj9Yk;MBn$hAzB7;STJznfFY@C1 zx5a#j`Kn^hvGN|_D-81OVPTK+W`cb8o+w7qqjHz zX2txwH^agP87?1k20$?nHd=qp*Kp)pZM62w?kcOKyoYD2yo$1)T3GLsg!KkxzqZm> zp07Onl<7omZ_nSw`Tl0Uzgc;8WgnUEy~PTvFZ-lST)D==HY)pP*-Cg;MmnUlO#6bp zy%ARTjmo|>-ym>#q-=26w^sU9Mzg^*PT{$O(QNCo24A@hfl4}~Jji^bEYA^T+nF!1 zz=dsZzHgQ~-$?Tv-R69w%=e>t&Ns$aoAwRs5oO%`z;{0}r?X1f!@~Z&NWPI}`&rl= z3maQ@Al*i9?~Y{(+r8`{^F0He)6p(XHLRB!1rI1Y(QhN>A=Gv{+&j%;Hk>Wrlrk>N z5_T52O!p2dJKJJTPRVz8**O+AnGyzaa&@Ws#^4*w+e*u=ge#5jCzjn|z7vhpGs_+_ zJgED%YXSqCPeMq^#oB6&mnw9%wEtf;~R-Wbl z?g>fVQyU7G8h?`I(hkR_d$s-)^R+CIug*WreA}3>-ao>8k5k?bNW_tr=f4cIzW#BE zg<#ebS-PdHpFiDVjy9R^=g%--o5}p<{v5+>p_R9VKi|S$x0r#yz8PTI$t%~-M@>N_!*t( z75#e>3DRA|!fl4PXXsnfQ@#WI`z-7&mee!6$^HZQ_@31yy%m0l|4;(Pd;Ubv8;b9z zi7Ij#Jz6oR;!~b0Yvnt}f69D|>g7Ax|GD{AF=Wl~&h($PT&^J9(6TxH^N9p_-bxEQ zt1KV-UTPDb3;bUt5(5|w`^k5{|FZc`ESK*>|J7L7MgHrC3md;x6FUv ze7Sw(Tkd~izHM2u&+xAG|6#tK=DXhir}^GsRz1U8;s48g7g;Vh`CpswWb>`^zcZ{q zM?W#$yV);Ks_v7l^jrOkr08XT zKJ*8g?{OvzGrTYSEzCE;O8CYfY`*jB6vkI#%{R+Rs7eem-#{y&ccR&Rms&1;6T{56 z)XM9h*v5PvmgnHaw&s&ka=JG>vAy}OXTx}gw{2pC`CJL35+lvGtChZ6Vsuh6u~!~# zjK5D}C-ZG+wB9GNOR^{vtS>CxQj@HG6Z@I3%BVCUae(t#9S%>7H{U&0`mu?L=KIX( zG9xj`e3g~L?DWJG^F3|pW+e_b-UveVdhlz#e`-j#2pNVtLH^->^pTr{L-!$Xq zcZu^Y?Dtl`?-Cc9&&g+H@*?w%wEER1FE-y()=TwGUTVHyT8%bMUT(ezot!1FG~Z;) zvpIRS`B>zD*@)zF^C3?7c1~VvzB7!Qdnd0qU!~=8U~+}|W>_7LNZw?=e_PlI$yMh2 zgN2=vyxDwzxAM+Rt}&lfmyB`AADOSeacpt&cJm!*e7`JthxyL6_HbSDF7y2jMd1u@ zRq`k1`<2PWoymL6cd*ICBgy;C*Tb-WCi$TG-Z4tNn0(lLb%xpN$w$rCWSG5^e9U~8 z8D^g(A2%O2;wbOy0XcWS7YsO zgYq{m-GNBKbg!oTFXo$Lb*L?W+kB5%=^K~7Yrb8r^nvB?neQ~CM05H3=KI{JG_3qX zD{mvF{LF&NKaQ0*s{9`o^B}A3nDWof_mY*cNBI{nPb*=+@_(D}QOk2e`B&!qg_U(qA>KZz!)b-%P{v zmhuMk?QMA8Ro>TphZ<)0m-j30LAv_+%H^^0jV;XeJx`SPH=pYjpDiC~zLyNo-UXH*UJZ+??22EhL*jFud1xZ`x6^eGrV{36?=wH@o8Rg{3Oi_J}qyyJnyg? zeOkVa`4CUZS^2i*eTX^I$}3B4Z(-XEP?&s!y^aeTl7qclroJ_gRdarivPo?pAF+Zt z`7cMTC>!9N+5B0rNo{u@_F1n1-kQsn^cdj%Z?Vi9FMoI50B>1N@G~!aAGbIDAM=KL zpUr7V@*VX74arGu*`t(pmYEYr%RPI5%te?r-p6B>(4c-Z=8JhXUf-R*m^Z0ym%WtR z2@Ag_pF0{R%4|f|nz&rK0?Rd=T zq02{O4jr_lN16B4VKOg0Vg!(yeQ%jRrEQqyfBXK*?PW7BHFLU|^UZt$bGWy~g|~tK zR5KH1{^kNf-ZyhMAZ6aTp`WpI{og2=I}DNerJ1KU-9>1R?S=WWQTI`coyJDB5Fh8( zm3jB?bPMpOmpzO*<~W6>sbiV&?8^%)5v=+}r&anHh2z?#-F~G_-_~I~})b>|uTIQXwouu?2 zYhO=Nqe*Q!qtBO6V@lhfjY?%knIYgG(L~g66mT`2)OK)#T6(;`j~WMe!5rZIZ1GE! zE;DroWWomtgw7oP?<}+sI;nyK;{||9*0#;SkJ#gW}0c5Y5JA}<+s+_ z`woQm_V)jt@5AS8_iwMY*Pe&7@4e?NE?lp4VB3m@)g7J?1^uc6YhR4v9^KF_Ekt)@ zEV^HLp&R!i>Uf#1E$G08J6~HcJYg-=QUJR;0Nq1_euW%57vbn=wD>pZlT+tB1lJw> z&>|ZOM4Yg^H|6QDetwB+e&y3%P^I zeV)c__2yUuIKC7%xDD3WB63HyM!ygFmy-WFxlPDD0Ip@6j_6Qhp{2b7sioY5a715i zRU5)F50MFP_Qc$#L2eZ}x`pO{C?}%+n?fvwV!N%q9HFH}*iY~2#7q(&DJ3Iw`Tq%Ym^y`nk^!hw>o00!B@;j2h6#Q*i z8O$3)5zZtMnWiLs1%3t+E7 zzrsF=HG?$}z-%@1&uRl_KZS`pL2JVkzO0S;{2p>RJfYU|^~&&s@E6c+MQ>^t;5N zyRS341x?UBN8$TvzQVXe5;{Wu6&BZ{uQhL?J`c5T1wBXj|LB0NKl!O{5Q6y^u`GS; za6zQ(heHy&L7gbfylD7eto^ij6ojadVgM^AcO;CO0G0%!23m7qbVvXjI9_)NU^`(2 ztUT&{S}cMZ!*m<4EwJh}U_It%IyYc!0gm)mQj9K(IkSmC21<@aH6bFz6 zSl?fo3}vZ0Gd#0=8d&SKX;|F=wlw8M@HbCc0B!)enolbDuX>|9YFZBDbJX%2uoE$J zIk-5FVNW{(J?Bvr*6o<#=$1W;Zc7U3K_PudV8|$Pr;~e}bUKsHI^id`*GRHM{yQWM zCjCqb2_&}_=?o-)5=kde$R&{nau1Vxn%toz9YFpavcbiZM{qtp*&0vO1 z-v(oIN)gUu8FSE`6^1oDw&?Hzg?%=44@l39#J$7~*fohgm1T!{hFSzi&5(r75DVtR zp6Gg$|5xz0VUam|AuTb!#8}H4i0zm&14psg%Z(oYHt68&XPNEAtRi-aW?Ca~W(%P4 z7{Fc`Uk;jW8siLa%saMFV@I}}1`Fn%Xj80`{~3=v^JU||h42(t@OD8 z`n~Jjhw$w7)#4S_f!2sqK^XV#r!a57HpTGwH{y(%0ke(5zUl1=A#Y6djTftuSXC{v zx+t9}SG%tMs7ZTNQC?9loJk@R9BKE`klb&;9g^?|`TbzUk4z|snhapiBs7c0%L zS^V&X=g7^k-7H?L7Yh5aMGMG7o0ez|{q2;X+HKSN|m>CN0$c??h z9Sw7x!UpgGQ1&xUL+v!5tE8#0u}+ggr_>qU0eqUB=3MXxuSulv)Of>q-3xQLc1|wj zP??8rD^GO0dFMjjuFyT;pmr<4f4(WY&$Pt6S#r1@thI}HnNsHq;kyX1Uxm+`L(z4c zTLR%xFTF`=y#;@nYAwa1Nnb+FofFZ0s{q|5 z^Ub^zA=#?D`Ye{?3^oqe(OC(s=8;xFKOhGWma zlUWhpfhE>57J0H|s`DcBzhZd8`ROJD{T>h=p}H;bgs-qS0{3;*7hF|q1FoYo58S>= z47h8QQQ+QDx`O+?-W5ifci(te-9Ad*2d-Gf*7o&YWb@y%3xBGfCH(g#7hBoN#ckW4nClZ_{i5soa^`1l)s}#S3hfFSfGjw6N+}((PcEx4&8t`4pNP9lI~W z6#r^X=!kTMX0#*jR0r^0c9x%}T#W#?V$ZC zQ*FSAvyNp^!x{e|4>q0uB@Yg~U^GU|xb?KOXLTngoia$N!LLD!Sei&|92 z`|AN5YsP2%dT=dsmng3<)PTK(C-;+A{!%kf*4*_(O`K;+tK{LpU-U(8E9cXuQ?Wjk8pINspTJo`WzCjOSgZG4Z1ri$A)zR+BrWX|)?HhTV}Dy8FOy3BT;w1VT203*Q2Kp&85%cSCWf^fK&-A`>oc zM)y9r2J^^m0Xmj+MGZv4`1)t<)%I`eN?5b$Jg)5abu08cKDN|i-MQ!zvKae7D7aNu zA7NkgA2CZG%m>S(jbPN&cV zZEgkEzTTENzSc@%Q(W6hli_sHR{0aJO8@^3#^{9UX+3QvIje;2n7+&})?xbKgc4E^@W>7JxIsbTHg zmRaJ0U2Qx`=O)#Fy{4!Ev?l6mMi%D$kHUMh?3G)s@=R-sYin7H9brLOvy?@oUbX)J zntCbRfr=XVx2X#Ym^!w*E!~5ee@!cR{r%Z6;xk>W%Pj5E%_8Pe|^jk-5J@}hGkW??;DLl z^I)df{|7CBbAaWYz{Sr#0_53FZVQ}&KM#JB?w7kR@nqN3o)Bv54X4D&R>GKOB@$a4$Wle0+hYkyyy_ztFM5vcT`WqOl7HU zv05#vw6Yj1y3cB|u%0Z~m(->&RyVx=#oWFOxw5y3Qq1Qf_zbS{J+jS0be}zxim-rd zVmnVy_`zLga%(q4zr`l5lJ-(z*`4nN3(q)J?L}`xerz>k$;lGO4?w@It5~%^1^+=; zJY5lYRcD;m+m!+>6wu6oX$fmsmVcuoaw6=Eg#Cl46FkYpGoNPA>lF5AIl4)4(IK`{ zW52S*{TA}`}mg-KK84sIjII|RnAG(QD)P5d`{pSBi-=RC0{z>G&8l?X5gORbujvm!}+km99N;c za$0W)d1oX_!+gG~0lymB2sT;MLJUbs$B;*6)O?*{S?Xs1=p4)(3a+TzOqw%A@9ORp z1^NHQ1$VIbtKs~)-mMAjv@7ps|IUJ^llAP>+9INNMT2GB6-4;M*N0fD*C;c5dcj6i zqH&dIvX$Z>Zi1Cs!JM?rN+{bzRKP9{9|<|XDCzK&neb$&U#&Dh0e-0s$Low0uol}= z5*%2rmGTlC*=|YGy5=P~vy+mZUb!j(zV=pM#M{?<6MUUBL{jOLl7yP9k0kGHdbL_C zf=HCFHk)E4&T6xKL8fk7-c0afuSvQZcL?Z+q)vrSiWmEYDACj(o(Sm0zLc{0#ZHPh zyC^A@=&m4E8@^@b&FaI)ri@)t)_3DT<0M6GIhFvwK$Y|;?sS4L%O^@?m*P3|V-JY( zSn9l2lse2k5Ur$|R(3VRTYkI+L5sNoHL=o#gnBGq5Nk94YC?ThD5>exn+bu;r4d1dbq&Q!%q&Rw;52VMkSGP=hk&Ot(cq@RqC(UDS z9Rv;beMI_8v=; zve~Ob#=PJQzRTDlE2Sjmv8z_fNm{{b;7`^dXS>I*Pby%IB#mFMu+^-SB**X_NvqjF zqASX*2!*X-W27vvQM~UOHiJmC!&(+!iEa@Uu=^`^C#_|r_@!THzn@p^OIpXq!7mz+ z)>i;(5@xaU*^-#rv`^ubZi23Cy`8j;UG5<$zK3&i33Ch;^u~*B$vasuNi!n$CGBJ}l0Fzy;k1jzOZsAz zXYwxAsVBz6{!%Y_4=WR7`WR}yl$8r&@q-#Amol#~k%HsQR>^x=fR(x=?`O@d6p{QE z3zjsg@xHh{nnh*18ww(+nko-vP2-M0xCfzfpjT&&O5bq*&VWoAj8BF`ot zXE%rvA>PI06U?O#YL>I`jXx)!WV?w9Sf|MUB!9+S`l3u|e$Il3gyxs*BvC5sTIY{O zXIWrB(qs*zCb@jYwo5vYufSUX&PvK(lHu|-o7^8Y#TxK6TS$cC;ZgF}ER*P>qt8Gy zJI_{0>ahx`SW?%(bf7&%1tx7JH=kz*tmI<;h8-rt6x`rFOvkNs$mIh2f(YyELzj!} z0uiRJuuJT&m1>$Vu@M6>pD6P+|G-ufrJA}z&VFL+i4si%2D$-lld_MB&FnhcDP?Di z-GKH<*|7fAR!dq` zC*1rSyG)eGUZ^wLe2?`AM=N=3QJq-xLzXY;lhF&zf3lN;s7F46-^o&XP-lteN35Tf zGR%q+MI>roS0)IV>GGz0v!P72%HU2^nPrW)7GyBh!ymThX0wyB+)A&Rt1HDs*hc%! z9?FuZQS%5}Jgs2^UnN)4+`2}CI?83DM0UH*F>^ho`(UzZ`gL4bjrvMoNow>-=lV*7 zAg~EfVo^p^qDfZz+T1`{NQ9|>Zw^%U5{c9sD@P?^>P;2D2ux3;-dveW1Um?5>6Xe8 zNqeBBTPo>9d8}~CDR`dFN+F}Xv{rT#;n+Nz+*;8h$tK8tF}G3th{V_oR!SwE@_S%z zuXsHpQopV}Fh8XNcg4p_4O6-+K}1-CK`A|y)kLBO!<6lkum*c86-1&2 z`zj-biW0T2d(1pQDU~#5?o%m)6qjKr%VX~>4^0`YWJ{X7X<*6_C1g0ssJ9MP%7{`; zI2wm4<&tnT4plxDL^VH5`GN@NL4^%dz9%X$jhXXI$}r`c(1c!>Xdb4xJ&P%%0=05| zR`HYcP2h->k;+gjtu>EPW=rbZD8n4B6j^DlIYv1w>6LXSohK__S;-B4ZG2hM*3KuL zrzn3|$qk;DO#7YW@aAWh7Swwm4%c48g<|`Yd?A#Ouei6G} zlG7lh*Clmp48NmR-jP%**$sXz`r9$^q^5KmaGgS68$qpi6Tlig-p50Qj};(L#JGIO;M(Zc+~Ex z%1c&?Pf1l0geJ(6Q__?RM56CzDz_wI-_2Hfjl!IXzPnV}Bq;*=Zk|#>l*bO`op#Sx zhT>1cpzki9o13yyDIrRPp1e9`m9lz_kYP_=rxZRXs8-KYtWeo0i2C(<A6GWm!Ta?D*FkUi^ zqisqnNw|(}Q#wj&Snx{9Hl@3y`ZI2VtRE4kw;N>htW=)zigJTUq`p(hj%M(8gkkEt zl?z14rZ>ZjtG}-NDCxcM&r@DkZb^!T^xjbJNt##i6_7F>t%#YZRBmx3&%c;bssu>FGL$M!iEtf*lMST}5!!6!TB>xn(vKPN~>D+Q&VR8Cu|Tk07lVS=a^T=C8;eldcumcCV{6J2rK zpB<6C#dP(^}64vJ>S`AA<7i5k45d_yE^@RD-fN-w5fQ65<7$CRHG zmx)+DQ7<=@aw5?u?kZl-+iK!BrIbjN{hm@rB+7nI`G822@4oV}BrM;3<&4mz@;y*) z5Q+8nfzoRdrhsd}FXo5JXdvMJ8A1SSfL_d3^bRrV7%_F72DvM8j zq`V`D;k}xs-jH-VFe6n{U1HH@DjQI=JXKeNh!WXwnClF6oTT<2px28I(gNZONC8$X4DRZS8yQ^v-y8r9THN#BPbPOYXcmozTrL!h;S zSa`t+pmIs+gT6?0SMNz0Fz<`hnrh%wOkI?=mO6k4Q-@#asY9)F$i-6~N3?={JNrVa zmwJ~-><)d@KZ(S=1aHrXLz`&js;i$GV5OU>b=3AmsQI7Nx@t6$m^J*>*^+QP)K`xZ zi8(7!4V*^#WIO6SN^PtrNb;%Yk=9&2FX@|UZPQw-7he#XEoOC3YpXsIL^EwW)pNQf zXIoR-sewdThR;)i)pkNgvs8Pv3(*n9X;Qzm_G*7gsgs@tN|n?-W>{JWwLsF+=ZB?r zQV&YH9MdnYv-+{58qYrs^sS^*6P`}%qCSw+cVfS^5Y=@C<;;{)-^@bPT9S(4$Lt|$ zT}cmNq;^#sN%8_&SGAR-ArP;d+EG#*$hxULBprr$-PL}QzJ+zAyBaC!S-3yyp+-rX z4fjVq)bWyGfBCl~gj}s%wAsA(7b64^T}rMXUS) zDGXHIB-IBi164mk(0kxFgz9>tWK+X}F=^rIR!OZ3CIIb}gmdd4b+4rJ({BPDlr%MD zO4=ax2vMSGPROI=LF%VcmK{Ak?P>K(Nw|tWtzIA!bJo*pg_ROO^XV5Yy*w>#usX_0 z>(ic5XA|N0D@_}&nyvIn+9)+*7REcG1V&y@i&j@ls!``o+IaPnRmRdMsCTV0=k$qc z-`Nz8?&Bt@BP8J{j#XbJTEWT|`KC`*-z7?9U)O1zK27y|3FC6%Zc^jYfX zl1x(vq|Z@*BuX`5oy}8!k@RT#Ro8jyJxREZ%~#nRw3%wc-P3&4O%m4p0@X_r-lH#2 z1Bk?$vrug+Ww_ohRNG2QgjR`HJ4;#%trD+>Ny1iHqz;s{C3<-JB6X-B>Jy9ANkmxJ zlhYTg8>}=veTj;{Q^$PH3pKM;^&6r@Q%a~C&=o1W(ZdYS6S*m64|})){Vrv1!JTlr z`bf$?8F$h-T{X=WHgnbJ^AVhBGE$%)W-8M9^45Jtn0o;Z71pN5Tx#sUJgJS zD9OD6(zB8h^N}VoNZ=a;^ zNcO&@TVqi6sig24NMB2OGY#oSNf{fF?nvr10O^sW|MW$2UVt?rM*kYMCQ*UOXXWQSN(Shnxw^taVZl2-cs3iK0^C{daED^aou$4Z&{K+>>v zNGd!#1n;YG4JcEcB;kBrrq+;zGgz7GBME2yGPORDnDxul=0qaBchnFoJxqT`EwGXs zJn4P2mDG$w>RUuuXU-Y#sYk6;JL8Btdokur%UK*1TD?RhX76v+>ymKx{#Ly! z31{yMYK0`6y)URPi46Wysjk0MJtX10^qpFVNX*_B)rL}rv-d@{r6fEp{9f%K2~P{Z zSG!BXnf;R5R}#+bm(&PJ*qWEs5t1gXa|4PN1huQMA1uAq^~=UL?dV3RlVX#NoO`UJ zjV8~1&yEf@{2G8>5?w^PtRc52}$Mt^D_*MC1H^Y z*hBx+jOtnoNzHrC@TsNsl=R%F89tuc2%sFduD#}F8+Gt)xVs>kzO(GKa=xwy=R?YH^Hd?loPN%oiejpO3F~Qo;A|8#gVC^2! z5d~+{U~NbmrkBSedYnz}sO1o)nl@#h$mpc4lvI+vHMNtrK@!f2PifmE;YfW-+a>83 z^v}-PK1mnWUv=%Qy(>xGbSk5Zc2rV>P5o5P7P%Vf^oJjQ4mPo?0nO<5hk(kf=XxE9vonn8D zXQ0g#x>FpWxk|#a574}bL=6tmW)qbwxE{fK)#zk+H6UtKFvJFXo-^Q_h|)`ON1%3%zREePn5`3)a#r% zUTczrDI~J~zG0aYw5dcXrWNoR?F4NWk!Y0(TD+C^drZ)NArfbKleOO^VGT~!9!a|2 z`-@hSHHW2`f~f1s)*5_RZ!gH)NM>eD{P(t+qD_$0ICfC2I4zzi+0=iknN8QsLPq^% zx|U6ZB^s1DU3k>Qa1UyXKmFwEk`S<>}0+AS=+U2qH-n6uYT4m+ILdc(Z54hi8f*dYL+W|{W@g5 zuAL-GWgY#)v-WHK@-4FPtb^KqqEr@HCpxQK>$FnH`uIg>9oO~~rLqrv=4GAIIu!`n z1K)XB=d}GqsZ94>mi3+1WR;NB_gj|rgSMI|mDQ?SlJ%43wOYs~`IThd)>aecK^fl9 zx~E+t5;gHayH12P@nzNn?V*(}X8ozTtU)U%TWi*IKP%nLa?o24;dsBF<)RO@l1p|? z{f3q5W&7xbYtf3h?+DOKB;nqsfxe$8nSD^Fb#_C&<~r0AdyOW#FOfK%Y@!EB!jsvi zdXOYMnQf}KClbAGd-KAz_j^=`0NmUg{03nAgz`3l`~S2 zq}r2_wo7s(&0UfXk>*}W>qzq*Njr(kB^@R@E~z2WDM=n=^PHqb<1oGNB-JPS(W1E# zWj7^-k?cQ`j*^uMNg0%awh3#uz%-3Cog}#uxl3YX(@RoYlGT&+Iaz5WsSRnikW@

o`gMNH$B-bCl}^l71yC ziIN7BEL~DZinmOXiKsx*`LS5L>m^+yDwgyu*?d*fpCo%-Qcsc{kd#jOd{@$Oq7Nng zMCpAZX)?w8LegO`O#Qqh4~R>*+eVY ztW_Jc!}RS$V#I~%CyPaT-m7^zYee_{GPqALpC2lUeWY(>pf_`G9Rb{~C)q*)QW zvis?0B|VJYmpwo)*@l{VY|xKo=K$7wo*m*WPO#D&S%8x#UdVP zI%iDPORZEpW4b=`RZKywRkL-oBwVZJ=x2$R{l zx1Cs`0=9ExqnuQIEm5**h<7uObbT{XqG_~uE1*}2upNe{X6XBcCQ!?qOg(oOT6tev z+^0uQj((kJ1&ixb;gqZ2BZ9sQ``ui<*KX8IWD9}v^jt}Ed=sLtpfUMl6v&K$u{b5N*dqus_RDmpdhN9?ikdhazkoAvvW@UzIxy3-q2hE&tKjVGNq>t003rZBh<*rNMO z8rATs>lVGK(4^Fh^)^H}s&?cQ>$8c(=eOJSqeS9lZ-?HX6jKl*u0%&aV;^ulp?l3r zczU-}4)rC;l-i9{`(*EbP~8SK3Nnw4rTJ+GGuO-Rpg z={Ne&1DJxipZ;EdSrXn)U)J{%VHsLyU(r3@Ld`_xo^>E%SC4FAzQ$-1RWZM2Q@DElF4+2i{N+ zmB_?f6BV%Hz_m+F{258t;OxnXPn2{ta`RGWK3`IOI5BhOxkP!)v(YO{tMQ|fc7-0w zaO3^n!_>vulRJ-)glA9gyqHMzf||U9NX$|-`6on)ru>NAOKb8ol8Pht0$m_VHjRGH z%slvyL};(FaH4JT~y5BeSl6&LRkPWJ8F{!@Dq|yR-YFhv&rgn^lNm#xxi>3 z>4>to&&Nv}T4_(8b4wdr>E%Axmp13GkQMA%cbB%{$B0r*&#iY-+VIaLMZ_A*+VFFd zhIk`glr(fKYTgjUdcmsJhI@P@a)$YA!&@J><+Ba%Aqiz|dGHCFtS#>)31#j0rjKp1 zc6=vMs_8;z^<}|)ucT|4-av;0QH!
zvYtOGZHf>u&l`lwp03;&J?PKI7=v#cvG z`&7vAHx6BS#7RN;y_xPj{WGLQc3^9dy50F3M5zpa@z9-rE-3`QH`9aPBNF?wP(J+> z#uL3RlrJO_Ju;Lh6D70NYIWyOo@J*Q##h;ChVhM3vy1kI5ys!L)9lTU*lG6WpGeJ- zYR6^0`AJC&)b7jr^3NreseP99<7XtfXoHpw;AbV(RE94b#J`plsl+UMntv;4i?Sj+ zl3$echcbKFGyJlo8~W^JQT#_DEZ@&gEX@2`-DvLhIo8BQC<&tcnHM9;u1HJQ>g5CqkP` zmyPG=1u;Eg^|BbQp2obOEZQlCdkF&BZvW?bH>+%})AM|oRkmT-WIoL*+YXc<$g~+g zQJKPb6J1dX8c(k`g`bv`3pADA6PoPMN_Y||5B>sEhwog@+)yu$KTm{t@vS$F&l5y8 zr}OPZ!sc{-LK51X!EXsou<5DIo8OeE&B`8@wD#uM|| ze7>0|)pUKtO}2o)CTYrWPi+BzQxK#u$z=imz)GuK7V@tI(QiNE`Bfq@#uo7kB9Y!A z?)9}Ty+yoli#zGWpdMPp^36A zUVg_GFN>d+gtBZN_nS?Y&EqAZEQd$@Zj(h_FY(?@{?lqGWbK zGXvd|niy{x-~G@QZyA4A63TM<>_2R>TyB!Y#XmIY_e_K#X%6tUgjo~P4+VPl7zDD{HmR7JHKZq+rdxZi`ry9ckuI) zFy1S?7d+p@B721om4vcaIlaFgb#H{fepHbar z^EI9z32pA=L)~n$ojgVo%69SK8aCN3-b)h7cJo|(J%h~4ZoWwp%J%Red^xg|?cpJk zQ1&|SRNE$do%fT3vNyPwmreEtZz2h0rM$vUR?1zxg(k}0)K@dXs?*S3jBSFjxXD9CHy4&kd-d@pIP>U z%D*DQnW1g&ul%Yk5ti>)ezcyge82Lul2CSsm-yRccX*j3l-=b`>f2;@c_$(m#vB~c7yOL0LpC4^%lilZM zC86vAzt`L*d%#UWf>8F5hqSQC9`bNWD68Owt!=UjULpx)fAAA+ZL&Z3c}Xbylg9_! zWPkE(Nho{7@fG%#KL3b!l7up5oW>V<%kjXB%aTy07zt0=WQvh131zA=uCq<18Z#uJ zOf&X(vB@;!s3er>#_kZCOgG+@gfec#bhF90FusnT3yo@qQ z_-!U{<0DD66|FDM!J-p)&}JI8>@-Lx*1@M8)j>x0Aq$E zY`^+Oui-XXePgI3lr=DJjj+iY7=IFpu@Y#QqEMF14r-CPfyNR^EqG*ZL!*>Pq~6HL z9&NMI$XH7xtTZ-u2x4s_2Ul-wlnF9T8IDv=Bx<6uak5gpvqZ`8yMeS?jSYQ_NC9)* z*zg!@ORupJC<$dv3_aQ=YhrjvLRnMehMlabQDG-*X3UGR#cO7y5{WW2HG+Ny5CeGCZJPT1ILsBTy2`S{t3F z+GMSbev(ku#^@1eleIA-B%!RW5kAc(Yio=o!ZN^{Z;b>&?5E{s7HoLDAT%*vu;Dh{ z7BATFmxQwR#tl1Jd!xcm*1@!TB(YB#R$wHgWP@_x|rq|ObS!9#-G|D8Q zEX+8XXp@B*&;@9})VlYi++J2{k~}MSpp}XP=jDc5=~`rRZiJPNMrPzbVrL5}rAZv=W{Zb;TvcpI5q3a@ZgB4qzD~Fp9=;CU zmr3WduIS&GhxvRl*Ue31tKu;P^Q=<-754E|3{eK5J8~n2kDg}n!x?D=`h(Y?`!EpQ z#0;AsYXDYiAB^=`{{QO7{P0ngV`=Q{@c$lyzbS^h#B`fm-N(&MWi95TO{c+bZt&6j zW;Zv^KB3&Un2$M}u^DSvgjDxYAtbCbTJXq4Hz@^OEUC&?LWli@?-(^~Ti8Los!?xtMy?OG4w{=mf7pJ7^74cXPwHBiLKReA;q?DPlf7 z10Jt~<*Hm3Y*~wize)`@G4Zc<>@9DAnuI4)K`p857Z?i~`=JNg-$eC^Au5GvY)mGG zzYS7OQeo8+SBxF|-uQUG#tiCRmz!Wc<9AXOc8kVcbLv0pHVi@6V&4`bMyN);-6F^T z6?VA^=F+k$fI?$}_`t-$+b>OPh%9Z`EH%4hD)V#$_fRQdVHJPI5 z=Qz?;b{}R5jlB-FsbproXeT#-%AblUV)pNgPgr9HrZ;x-j5?! zh37Nk>}20wqCa@Rx}dT~lTf;C66V%EuD#!42iwTrPN^AVRqb8&{Yu2eI@D-Q(WQka zh2!@T6((GJ%LBS$K1GOq-t7HV^J$-o$oUoMt18>K3RAh%1O283D&*}-KNb3(2w$)X zrJ~o32tggu2ZSHTi^lS)huEYVI|eH_JOh#RZ900Ta8VDFpf(<-xfkYng*_YnWLITd zlPyw}i8&DUE#boQ*;ov*jY0eIXz{z!Og{T*wDu%TVPB+pr9RsH9bARk`$a8TdKBv5 z?4hv%-B7avYSJ=S{I4w~TH&9!S9PjYk)KaeMe2V)E^PhTekA&g$Msi~=t<#~%VjI0 z{Y+&aH}g5n&tF3xmkMe=F5HOxs|5^slIG*WH(4!nY9pLO{%X_9YV*lD$^uKem38df z*WPbmC&F)E4>(&^t{E|ZR;~a49{#`QN2FrE-r3JxxHGiuB5>sDtnp&ZZ5r*9Clz7u zdLs-&#JJo05{7J}*+W>yc}!(@U@rkb;{t1z*|KU4{0KWJ%RFQ6w~bB9N-9<&6YX6s zt18|FG|IBsZ&8faL>}zh!rotXwmb~00InC9Ta=2qn$e%aa7Ft=hIw{H;r|lrHP+pP^?3xWakj`A@B6+W%S&LFtFjw?PzR+tyEhDVPzvt@pi>K>^UaH>6A!yD z9o}GpIvC5KSPm4+M6nzz#rk{88IU@BqlDa*l#>Q@AaW zP%3h0KVt~LZC9_c9GHzCX9xF4oW)JWUWe8knEzJBOl1FY`nZ?lEOh=q)o%@_6C$4m zS$2???emN^iFZ|4b_}=7ha&tBs11#zItz(LYp8=y;l~mQojN`LyN>7Pz!f zwQjLCEP2Lyu3WrPZecondp(d8Xa#B$>|NmU46z&%Po1K566TBYn zEP=BfPIZg#1Hjg=n)83IiR-Cl9>dyxvdw?4i94mr?Il`V)Y#ukL!gJ~@OB(5V+EWb zJvl#ruZed(qQ&j^qHxkk_dXYCy}M)8cW=*VEE%=iTf;@)Sx-R;W2k) z;%@7oX#O?D$~K>L$11|@`+wE>dB}3CjozEE=jYVMRuKIPXET*P1<=^C6dYM+pk3fw zKvajX#-misc=mpM9)^pv1+k`!6wkukrLu46e$d`8q_d&tz`X{|x7+)p|KIHdF2i0L zPJqe9)&GClMPOeQr$&n0b)15^1$Ln@&#Ul`BCMYkMHnJhIx!cC6W1?krV{I;up{o{ zUVxFSv05)+t$v$li@TgokA)r48*!A06R^s=zQ2a!t`F_}^R-ggx9Q8q*RdLbwma`#4<3Mb6PxS<5B3gMDoaN--6cR!qx$D|(1<#Y)=F6LmU+Yta|| zO~e(gCQhL(e$*ccGdZ*iwUK>3h2>AZMc!;~)s><-w4){GA}#xUzGyYES3i)6tG~z< z*1t;oJV=$Jt)${09 z4f!Py`_BZ}pF>TCqHDjG7NrwshN4C6`#*+Taww$sA>y3SJ{CUz9zJuibMdJc@M#z9 zJ>Y#^^m*ueftCFl>j^tOo%PGd`bR0$Kh5ovVZKu79!H~@UuTD@Htg*SzbM5TYR9*s z4&jqBSi3d)ludkM$mvr;@tK3%P?jIQuo zq_z+t)kwz@8~^|Nxc0Ghip$A0?CjWE5caETDolKScRU$W{JYQoEb~eA1T2wg@lR%A ztWV&3C-5C-^8a6?Xu)FHzKvd9jH!tBs@jhKUxtX&&VRSEKmG*3etox`2K>7c;ay4P zarE!(;0y+%3ieJ-cK!DJT;_EC>H zi@d72 z-f({?&lx7e&PQdB)5p?Hfw-0RtDZ~XS%k`RnmoRBM34G+E%pCbtT*YTON__=)wLfx zvC&v3!mV1C#&oJ9+^SOh5c?gP@Y_qP`o%t~YWP11!P8fj;S-$TQ)yT)EPMW{aqnlK zX8Z1_IVJ$dMJ%|S-GloMgPk0SJ?9Is18XboW^Jpm#tKK_nV49e(N!S?H7o1jtc%aI zgm;|(A6CrDId^2$m^+JBd|80nk~L9U!_^MBGyLC;nUwDAfZ7NAeIe{=7NkVLH41n% z@EGQ=Jja@`u`E!D29AO78F0-7oq4RaG9Rvm@ME)hxE8^c2v-tZ$#A8DekQBIGTAvL zi+Qpv_6__Wtt?~L;QCp~h5vKme|U-qTt6!-AWlBWSHk}VaIJ!CHC$`pS_{`YxC-G~ z57!2`Ho~2iGyUK7#8wTpz>r30$ATbrP=6;5r4@ z=Wv~d>kGKf!1X0uXW=>r*H>_T4cB?N@ZYy^eFxV?xW0$$5?q(z`T?#haQz6^Rk*If z^%GpznV)hU>gyNq--7ElTzBC54X)qex(C;NxE{h)0oNaJ{R!72xD@3ZroyGcrNhPH zGT?H6%LJDrTuw?$<_!P4z~u^8O}ISZ@`THg;jh-*!NvCkqCWs!C)NgBcmg50q2%@_ zHTegkS8AWP7wQ_-*b1&3kn$3)S(dDxvxWcuQ8OJ`UcFwL^#B)w0jPRoFRl zFMF>~J)LF>MqZQvP$Djt_?Kuu}v#u&L z9ZCk@SBfDghFZ+#LJk8Q`i*L>hC*$_>8&!Ub9*(w;i)m*AY@YKF!1*qH9*CjM36fg z+#y-dlXN~v!*UbUV+@~@)Sud`gmsC`S4-d*h8w^=KE6aPrI1nzDW#B^q?xBoS>dG2 zR6Ys4q~<9Xr~ag7Kt0@2XDWkN{|+G&bN^I}lrXcdl`;HP^%@0#b5Nu#ho_9r1Zg8} zjl-51LEsNt-9g&}At72hrBzO8l~Y<+E_l|y@=VufH7wCsZHGgn(UZXKIC>g{JkxcS zwnshgu@GGMF^S;L%ShAqP>Y;k*qSHUgQ?rK0}dZ=-Ua&DXVA`ZvUW;~b?}^b1KiDh z&}|j_hZdlYU*V|-s2{CDcN4txI6!sxLbndNZsgV^*ArZCwM(QAxU=&7^}`My7B$vS zQ@W?w!>+ycHqieg^Z3S`WKc=*QS@vXj=;%%YUM z%_bhJj!UV=XR5Q{xid3WbDjr}b+}ek2SUC`^WXsvpN;*JC8~=fdhkT`cEJFip$^^_ z0j@jrgv-zhllf(8h0D+i^Y|Jl#YTRE#>-u5&1=dK@58);HQMZ{Rj?_;Kji_YbAhM1 z4$rll3@-K`UBS4aO26>=YEx7H!5&7mgK3P9k*9ny*bHOMd0Q<7r2&SEg5zM|l2irYL+5Pk}qrYkKl9LA3`42`@bvM*@FloA*Cg%NSL}?qK zCi|Oat^Wfw*%U{I{-(FQyd6RmpMIWNFj(v35Ng`hWvD|hiiJ8c4&fy2MQIJC@X-`9 zltN;xnjbpEQFsi5|K<>-lod1hQOabqrzuj~UF>g~Ej2xhx|rfgb2eytYLIi%e4|T} z$t-oAUHPgBQ!fSAv*>+rQ^uSGH)+gyQ$EEtV_e5V(l4fvLds7Gg+wWr2W2}#JwtiR zNLm8YFC7z2N!_lJd)qM*`pNS!OB{vXl3_Z~q^?t*sarxjr*g$Rs+ZGe&@0^FX_{JG zABQ|st(Aiy1Y7L{*pGHP4eng0^NOCZ%IUI#PZNmM^n_hb^EG^0!3_xi(CIFPXF&J` zr#uR;fLK2}tufVYcn{op(G^ZbriCv!Iv1JlcvpAEc~4zNp;yiO-!#otTbAdQFK3Xx%*#k!CWbUUfjGyc5rzXTFf{X7+_EYig$bKrmLD@sa z9_yiEkM*YcHc|=SxW{>qDJp-TbB1!h^E=>9%q@3zRL=#%YN%`;_mT4f(}Dbx;5u%p z#R4gnAV}pm=OFc9rtT6%sRU6fL6k}$r4mS~1gle{+qnd*%SLtp_uhz1=U}x(Lv;7% zb#@6+uMYFndO;0OatT+Dt*obns5nM~ReTdAhOdTjoS$Pgd``qQsJBBd=zi$pu5T~= z3|xFFS$}=?A~TECyF`BD602hwWA)?Xuel6`+~%u8DL+HWPJl!8l}%jxL)lxA>&BvW z-<};@*FXq-S6hE&oSDT?8Dl6`jI66pk?UQt#>!j|ljdRl96WdHu)b?Kx}Ofa3gIzh z(Ct`6{$dQDumIH<`!4md07)zEdScFq*PqDHlgreSej)w~`2$JVQM+Y}qFSIbbJ z+19PvebqI;H@HDXLm=c_wWw;2{N2qN*p*HS&Q!}F9N!UfP3iN}8<4}C z7Y>m=XO51z+QzBa^8;W%aEtPPr<%Lt;)rV1-5vS*TGhQBS1zSUxn>D0!3&TSlzK7GGB_Q^l1d+UAR4avBp;BMI}?m%|HZ0zHf0V{GN zH%ER9>Z$@pP#=dqWZ@~tnS)!nJ>@v82zHD-XIc+8cYb$SAGcVCkf$TT4PF`J7U|f( z^BlK)6`!P`7+oS)xD~3bcni3F>c8ry7|ZkbfZMbEyY{|5Ej%PP)tQ5@eM62P{JY8DdGLc8xHmiGg7b_+P3)^q)ljDy`R`P#pi<~CQ=M~b1F4v6x@b7=Tr?bs zE*g&C47G9oo|=hzm>FH~)%$8@=s1IAK;Ia^6Ls93dT6+V_0X^tGSnA3->jLTo~d@X zW}f51hzB+At1D6z4-ZIXlFNN{VT8%!FvsUyALjUc>%$zMYkipG^Q;eZe2%prXf80$ z@t5m`dIVB_0x3U%l%F7NXY)+wAZ=HRc^*Mp`)0SQ1!?~w*QdoIk6>!GAZ_4y-6a^} zPUa!n!uUdu5ba>*R&a4%4bgC34bgC34JOOMV0j)7((q~6y=V?ccfUt3ve1ikdXY{z zNzvW!5l(&HTVDtF2;O?aMsyd#6QjZzJ#P`}GpJTL!I}40N<#s}u=S(Qe32?E8%ruUVKkFH74DmLzLhW4O zB$s&Y#L7u7W(`+_L`7|KlbJP#Mn6G{`7hlD7oTE$Tf_Zflp*eDhGhNed5qz6QAg9r zDyCjktj!)i$)$wKQljBJR-!$a`krwSX4iVPOSH6%=Cw;HSFsL_R)*G&b$EY6Xzen% zcbi?i9PZsd<>eao%wn<-;LwY9WqU_t z@@DNl&^j;!P%3*IZ$y7ly9n;-I@CDqST-8>hXI4H*FI17FH^f*CTo|eU2w#;@VcSl znuz`$UQf~eV1R?Nc_{en%#ZTQqZKf~p$zuk2S6I*b(hkrAXkTxyTEV(7e22d*AG_7 zeASOuNk3R6OVo=Tp9L99eO@7*K+*{$oj}qFqL3g838E0Z>pbLwZY}7sWyLAp=S;77 z)qvG)UQvx|xX)MEMbo=4)pZXhn~BN~jq$Fe_WS@NSjSe*P+x~TmkgLcJNsm)O&y)! ze$c!=)Mvh9V&X(_SB$#~bCEt_hEE7snB;QXbl?TN^Zf?C7S;>$Gnx0I{PcqS%;Vwu z)%>4*hU$8P;yYT$-9ib=YU}}i?3t0uQvVjdF`(1eHx6`0`OYSt*(5DttKdo4B@BCA z3B%vM&R0I`{F(1D$Im*O*&fs4h%bHTEB&IwYRsqmxOhs-Olf74ol;6Go2<=;9h8IL z8iz2mt6x6Mb)H%w%yOUdVwn9#vJx4B_Y|d+ZYiZ(O6l%Vw7SuLrDVU1?3a`MaGU;C?{mZ1UD_B3ef@RkgEW1u;8b!+f zr_FFG2QyEdbB-lG9qMFjShtrcKR3wo4YGO8aRk)QHPCcpcd3;t!0qFZtzi3JQ`1K+ zsH5{R^ILUXIM%~8bz{cIb*`yj!ffUUBmHX#$MJPdz1-j)XkwqyImW#W_d#{*-d7L7 zZ}zXLj^WMgmcm{3NO*=I+Nsd#j*M#c8my8%>fTm=j)dJZ><9XQ{tGh)*LCC-bBBQo z_oNU~IXmx8_2!;#@7wv`;v3&27`1ngy2)xg84_u`|5`9 zz5YkR#dL$oz36zw@2qDm)X5ihkHPHsecfIh>nEJA?R&3oI3ES;!cb2A5UlyuivcP0 zI*>jEPb@>}Y>={GAEMqGHp!(7 ztnKzMrxb(K0sKS%KuW8e?8j=C@~``ctGF(l;8USofs|q(r5H#l#_E{2SRHc`tDk^7 zvREB+a+*qXo=S9?><=Z&m&x)_vNM$I3?)1Bp;u1~n6Gz)+|Ji`kDd;GFY<4wGZ*|n zjDcSZt9Sg~4!A*&TvRpwn@f6}-fNo$iQ*ykJ`Sg;M5n1lr>R6{u=BG|HrP>o^T|#=*~!yKX2I$Y zu@)FN$ifYZdxPTMptx&PJd4ZYzZBkYp2wT7zu#P^RX$RA+vnS$3>c3;1r@<~yd89a zYW@J!Je(jY<2%DoHYookl>bsnx0KR#S6>Uf$=ubUW236MtNydzY~i9|pK;N!&$!S& z#6`nCbC?I#`JqJ_<-eTre}e3sAUm;+egWYv@2j834Xb{dbk38`WzxA!IyWf%E`?W6 zcm;)D+*8TSjPi_M_Rh8Sw0`P)E%&{{vXD!1iq;%>)-d1rlFJqr3K0& zEsG#ap{48v8rlL?N`aQmEe%Q92GXP?DNx55Q^7$Uol(bqO$FDwk1L?20xB-!zHdcv zn{i`CN9S|<{^#8Hl9wiR?C*E~IrrRimv`S?&OP_O+st&TtDJOdEn~TCIqB3|{@bVK z(jN-PayiFxImdE2OZc6RK-?w6$0F`2!zXjxQWNZ7Q%g97$(%x|>8w6?POVVsEm!c` zXR?X@&q}H3^^99bm6|s8o0&P;ME{lLSlaT%?|^?xzr#}t(n>*B$o|W@mvHVSoO=ap zsuireUaNk*d*-wX)=?{1JH1vVy;QM$)w*C>DbH3VT*6W=VFj11l*^`A-deG7+NoT& zQ?+&3CBA#HA|su)g7dB5d@Hnk>3_mh@KZ12H0wCcI!>)1?Xt_?oz}-<8~n+%Q`4zb z$I=d6zP`xCbV1r;+sj2>jh=E!RdI;vGdZ;#oZ1DPnwLv>0jKHZGI+TRUM|Bj{=YOX zw8JICFXdR*a;$4v-j(kDQ|Ex)(3j4zcubdXxvS&^%jG8*%&4;DUpINi9UNL^*?i3c z&{V<`ENSx}m~lVz@7FjPwx4F~W6r>gg63s24}k9gQp(5DUL5tv%;&hxyo%hF;qP+p z?{e&Q5^A&19YSpux;v=NLbn99S?G44HVfSf)MlaEfZ8l{3s9Sd zZvSb6{!g*!wx2c&-SX3Bq1$~5GDxdGW*vXx%i@HLy4}ZSeTMPs`&m~Z-;CL9mg$!a z2CgZfy!OJHu|DJd;Ui{0$8X1D>gt#bn#%kfzn$m!?U=1R_F8%D<=Z@StkjRHSbu)k zL?ht{mKn=3lUe4d>@O@?!uM{L;1(Qc0#+L9N}=WAZKj`4^T?dfv9hoZJj(eV<$RBF zzAsrmnDEA&3Zx7T0VylP>p0~)PV*7V;Za))9jUp$HnP*IUO&j^Nsph$3=59%}=et>L$$u&Eb&cp3I3k-#{b!$J`$= z%RgcH1_=9P29^1(wEtW@eBN7WmP>}u%Q4flhxpmg^2st8PZhxngt1DBlnBHfNNdW-8sBQ8jlM@ZBYarT$h?oc>r&e=>(oX8vU6PiDR&{l+a9FDNn7D(Mbh zca%WW-ZS!kE9q?KsgGY;)Bg_G?He=ix01GbhgC|_`ywk%-9p;G7$Ej>TpD|KEUe(X z_HnFzR;pW)nVM6}e zY+0gSoMf{KkC^7Rie_MzI7duu%Mwv>211_`_X1xOPXfC|`JyawRIFQM#Xc-aW-8s_ z3{XA+<|y9-hbn!`vqhdlp(B*z%dKK0)A`D*a#a*4^N{jbWhwaMz|R)VjGGx-8QXwa zVu!MBQMNdT>2sB}Nb@|VFHojbWQz-#zDOBanJq46`cmbuOR~jvOh=SkL3c2{TloU? zO-$daOkSETZe#im#Si*UrlZPzOS528KMZ_YnO23TR!#%HsO$#5s^p%SCEiqi0KTjE zPO^$_W!SPTSkp%VzgCt5zfsl$N2q_Qwu*f9R^V9mPT&OfKHy~aA>cH1AFxF20?t;S z1eU7L0?X7Fffed&z@_Tjz-8(Oz!mCIV4eCIaGm-k@Kp8R)!E`SmEKgn`aL)<^{47A z(WI)&vtSv0u*NFRR41=Q?Wsk;bJc=XS>giq;@T{6k@_+4Qnjis3wKoC2)tH(2e?~Z zzRW7_L20w_e?fl+C#v4M8sAAVXRL|d`vlYEHCbY^X$f$eX~h~mh3P8LrKanF6{g35 zOHG!wXjhCYOnIQ|OohOD(Al{2ir(qDrupDpU@BUN@|d1lpDhl8pDmtee2wuvmK0{k z$yvf|KIs(XV*UhJXTI*VEV0gJ*eq*izes5k5{Lx$s6lv>FHf!2xNWV`S z-H36+G6q;@nF(BHsREvAaRKWs=K)=o+ks7% z=Yd|!$G{fL55SNmYZKmuWeo64ODQmHS-B}&v~#{YEE~W%*Rma)^O$piRA^ip5t?A!*t>XUlSDW#c)87K_OJ9f4?78%xLBE*(pbz6f`pf=o@fyc{ zGdfRA*3)rgL0{6T+Nu)mpD@xix}rH+8C=CS27;TB*||X|I65~A8~RSJwU72)}Qdq z{#530f6Dz_=3D?8b=ALM8|te6quVfs52U!SF}}w*E}J+-z%1d(rZMMH=Hw0{ejZ~1 z;|YvKjB^-I1LB*ALG->}V$S@WY3@G4HRRUnKB8&Joj~sps)rCbC?_~5Cv(C>Xl&mx zWMB1o{I8~4t8q$*agez8;zBW8>;aAuZviKX4;k0|mFUMVEyS6liI*3O>0&-`o(KWU z#b1CYiEDwi;zi&oV$2nV!YO6}H;GNapg0ToJ8=teyZGpea-0RbwYpqn04v34(GYer z$H^SrQVRZdraPG4r6I}h!a1>Z2fLWFUqj;W2mh>tuOPLrujm%V!0F0p@${AD$}Vy9 z!CIzGD)CJ!SQ}}wlgQ9QmJ+^Kg#re4&Be8N0@IjO%%%y zI82mpyNTq_0o@S3iLs0M2bu2X(8J96h&hUxVihpj7#-$`;^YJEK=*-&xl{b-iVo&P zK^I-w1$y&=!@xfrIAR{8L=TFzPSJLyl18x#fEOLG0V4<6fp;C~NTc+zvjaSwMrCta z=&2*=#o$C4yEW_-f4@>#iJ#9{reUWjxT>D%h_zD$uFCI2=_nb51&lUE2V*;9B!gS0>4anX`*ScQZfA^Z};3nHK#hZa!lfV?{rTThDZuvArLqyaW6_2O`Yr zV9xG-lvk8FUCilb`Y_WX>lN|9Rpu;8ts;v{#Td@&6w#}~S(NWl4jtQ{-bi_W%B6zo z`u?3_=+#c}UE2qmsiZGmc>#n=?_od!U@@iX2M8$#j@; zJL3+P*~RpJ#v_bJA^-IiBDb${$~C53t_Q|)#)@1@xjwg3xULBUZ@XqkE|-u)cQHm8 zyBPN~9$_>M=F}K%jOC0KgDC|E(@w_l;7;+cYucIK&KLn_#}EX7 zc!W_I!ZpKKz&M7{##qkiV01EWXN(N#6lY%B!SpW1sD}IT2D_Nv&)Cg)nDGds7|J;^ z<}(&Bj$tfgv@w=5IvCp-I~cndO?g~bjOC2=d7a|WwN9qPpwq6404uNC#hm?&M;J}R zI4)xuV>x3zqmywv<1WT1<9^2OVZ)VMtB)`(hL2JHe4PpZ1{XbIIPu3YT?YQD>&uz0 zXTFo^F!`Ma2of}a=J&vZBQ4>Ns)QH&U)d=ybeaJ@0+kD$B?m>$De#+-7d z>mh$rhm+|r^S3h{VR{$SQOLC3xS#26(EWEEVOoqFqujR3G?JePbouTArpGXrjih{S zOqVm(L*~8R4yMDP@4l&>=?LiG-Q2e`Mw;X2r2%|WT(pQe-CuPh( zZjAEIEd@-EVJu@A8`I^C^^j@3)xorrF$_-aZS71)Kp(ihgXvw2U5xt~yBQBN9$^%t zD0hX?#5ji0##qkiV01FJGj3;$jOrAF@91E97h@Eh^>=hJy`QlgoX8!AnLffeCZBRF zXLK++8QU4RGj=fUVvI6&G45yVW<1Pzgi$HrI%F(h9K&d1EH9uj+`+VyFFtaWaOU0F!SpW1C}S66H=`I$x#Tn27#)mG#_f!e(VgNCcSf1+W)x#M7GphQm@&c_ zWju_3CXKf+j|%Gm7Im9mWF2GDaI?J)?s$%-GHt zVeDY6AKxh~cSXiiI#I@MMlpdn?Tj6aU5tkrl@qw+j5bM6Bu*Kljj^6FEIE@X)WO)! z*umJvST?y+EWWEA_{X~(_{Z9}R);}9b5}dl5zs^L?qIrp3Wc^ab})7^h6{-wVT>|% zGm5Fi&u1)Sv@zB*h8ZJ_QO0gYF^yv}mNC{dh8ZJ_QO0gYQN;3$WsLQVVa5n!l(CyJ zznJ997{iPa#wcSqqnOTVGL|vcGe)P=ynJB#B#b28OxKrm3g_Js;7xaT13$Ste@3Sm zcTX8`(>?XTJMW3ipwyy_%1lm~v4F9R(Z*QM=wJ*pwlhW;I~b#kU5wp~hZ)5zN?Bnn zV6-th7{jxuSB9BxXN)j*Fh)5v%5)cFH{)SOF`MFw*_=LOK4Sr68HbiJZDXuwbTEcF zG|Y56V}!ATG0LG)rn?xs84ojxIh^kt&X+Ntv4F9R(Z=XtY-j9X>|#93DCTyG@9$CO za?OLDb#DRFHbw_yJ7Wi97vo_@Wgf*UV6-th7~2^;7`qq`Gb*Jl&uC+GFt#&B8O6d* zamKy*z^;4i7m|GaLeg!*Ooy57Vp^0@sKS`fSio4uXk)BrbTEb)+ZiK_QO0~5wc9er zsI60E+}CBJl*OV>QFmX#BBIMcUw@yC>3Yyd?{hF623`EOcBUhs&-_~l(^1B5#>0$d z<@_v+Va5n!l(CypRFF(QV;Q53v7XVvm|w}|VXS9#RZdqH91JrZVT>{=i%C*hN?5>X zlUPM7ukI6xFHR!NKdDo^^tXDZ9gJbdcE$)}2V<16i?N%Lt~^IB%V;%}&vXIPWlYRM zHKik#cZ%!oSC&&c`Jg|z-?p4mb1;U%8T&v7(_M`DHJ!ryKt~OyRzrHeSb-7gfqdXU zA1GTveA^1v{~6m?(E1|6{3v4=I42+IX8JH>8p2{F*T%|;;m~ zB|4w6jImyF)^&<4`^0(|%Gm2AKp0SLvo-xcAVT>|% zGm2ALp0SLvo-xcAVT>|%Gm6t#p0SLvo-xcAVT>|%Gm6tm-h4WZ$@xr|G1^Y2w^qUY zdgg=~cQ7Zybd<51QP??O#xllw#xP@qG0ND@DC$|Bv5c{vG0Z3&JhCymoIGE+I>p`l zx?L2j%uS(DH|FJi-M~qYiUzc_N9!9XG|U)bj56joaxBJr#xP@qQ8bYSrmTr%>KUU= zo#K&4g{M<|@n}A9@?&MdjgQp>Z+a{YeEYEoFz4|oaP8yWz^fiF+eqas+sNrKh8ZJ_ zQN{x-bCgkRB1vTvje+${M;W^r3%tztc8b>??*@*I<~NhP@O6r&Xc_RHXc+i?Gy*K` ziUQB=>h`gWpD@Z;*3v0n>L06=_u3r+bErS#t36{8|Thg-^R8_ z#_lu7P8AJPXns4#YG?XvF3H(k5~d@J-HiF$S&}ir*v*)~gZYdR#%{*^bC}ND^36nHGN{$uh<$ zqqu-MjA6zoqqvayjA6zoqxduP8SDQ%PkCp5{$J)PNB5U8)-#3~BaBhTvWqBIm@&#& zb}@4pqm1GbPMI;x7-bZHWjapo#Wmbc7|SGHOR>U?QO5e~h*N((VT7@pG5-eQbTj5h zScWme*ey97#CLR1F71pF=5#RK#n{c9qaEc~P2}Im=`cnZyBYI$F`qHKi&Bd)=I>@c zV}vofo8DFz2w|XvBus^vvvhzJ#$=4N0>eU`sphxZXrBy3)xP`-b%C! z`1KX$+lb!5xcfHJ77j3NzMbfb+c_4~N0}bmNu1rCEXnkaJGo!nMR-8seMFo8Mp(hP zoAD^)*!zj!{t!KT2cs4DF3iWb&i!$_POkE#_?H-_M3m>1A?i8mgX**DBGZMYeWtfe z-KI}XS>_^hqxlW<#I*HkXQ%x!?d`NL(xzJ$T28UpEpJ(tr{9yFVGUYG^;y#A`#wMS zv1Y8wI49$_j0ZB_$`F0W_C2-lwS8~t`$pfvnP+6)nE6KLH<{LcIsNkcmGwKd-{yY5 z?{{9m%lh5c@1A}K`n}li-G0CHJ3gy3>yfM{vtG`6KkFY^|IKpu-`xNA{m<`zY5#lr z@9Tf4|7-mZ_y1@AnFAgh@YH~#17;3fG;sOAlLu}cc+bFn1D_uF!N7kG{BB@w_Ho%0 zv*%~mW!GnWvoFcMKKu6U2eY5Z{(JU&*6Cwx^&bdqn;l1;i%K{f5{(GP+M>wwzO7`?i~I8=%O+AkNIRw{@9gccZ@wS_S>-& z#zJMPYH(WLq8&v)6orcaQS6)EF}-hztE8pm zm6FC8XU!Zp%RcM9SuI6G7Z>(JDR=+i<3;O?-%4j^NbQC%6^lQ>6Y6aS>|j zV(~e0_yV_pdpXg5`4+Ez<9s@qWp|<%4 zKo8F&jNVAN^9n+lf@8}wp#2*ucgZoPyyx;4!9Tu*Lcd$~I`B;97-c?gdl!5u`Q8N| zf_}Q0L{0Nje-pWrpg0Y41!vacS z8`sG?en$DEUo=p@?nc6qF2aq>d4}n4+{C%ZNq9WddoIWIEm|F#_!;jgO$X-|Mo8I~scK7;qkFoD4koBzoS7^9g?*O?Y4o z;pLYShPXC9xrXS5Ho^;;-pZkOGi|w+_(z$pvJ<@`oA8mHgb&<6Sb8Gif0q!hy{s7d zrf-=I>@pMP?IM(AYrTfbDQm;{)Uq~us{z@@WIf0f-WgAI`?ZbQ_P(v9NMF{KOjG9d z`Ck^r@;!1L$&ZgL1xLylC9mMVV66Eyi&w=Y>o-xEW&4qIa@$*b**eJI>^mL!#`T2n z_az+OMA(lx`;N;+TEvuNKTEHm; zs+a}wKd3Md;s!eLjG0dTJ_}UE5X_fW@tipWoace67%KXL^LKM5I4=NIF-r6URzX`- zF>eh7wj)m!H&*2Ww<8TzT!8zG6mcO?6@SJ&t6+8-4*DX@wJK()QQ%wxRB`sH0Q99m z{1-o*c*4DZKo$2^jRSop5TCGPu2#jJn5prf*nui;nVJOpA)tyIrKSL*n62^OC@^2E zxL0aA@MX-|3g*-qpkK!fj{ky$`5XU78;BeAlzE`jfhzu8{Cr@4Wg&2YVgn9T%7KHG zO2`ZWq8@Ow7j9Mns$#fO1stKA1RRMAOjU85QUjc%tc1*DApWzVQVY5esEVn|YS7bw zswh_00;enMfhEc*z!|t7OcnDLJ7g9BRk0Aagejs7h})YLCvcVG2G%N#z&gbP+@x#* zhLmPVwgOeLMe&2)3RJ~5Wi#kDpeoK#f}no~#QmR2E9l9fW8oj_pa;& z{TCqKxN;uoOMt4l6!(`Y;xZuaUsWyyUV)p;RBC2z*z03izIK2>8D8Ebs&6 zd0@Bl0`Rc%67WOi72px&HQ-U@4dBPhTfi@rcYt5wCNcb1N96;cP!9tY^$1W^KLVQ6 zPk?6iGhmwfPn6sOMB7%s06heVwyk~zIuEFdVd^o^!+~hw>c2sc1fqqj-+~?mR7Jk} z9q0m}Dn_gS1w96+igD@>z~j}QfaBF)z@GqAacW&rRIyey0oSQ%z*E$81^?d!sN!6D zAJC@*Rbf~Ag02VRT&3C%^adbq+*SL7b^-CzRvi!e5uhses3(Bl3sl9k>LlQc>J;Eh>Qvy% zY7y`ibvp1>bq4S?br$e-bq??ibsq3dbw2Pdbs_L=+}MTptCj=bRV#t-sY`(Gt5v`c z)RTbSYBlh%S_Ax0T?ss*)&h^JtAQV>Yk?oD>w%xBrvN`yPXm6Y+JXO29l(F8PT=RN z8~BCV2>ep@0KZZ<0l!w8fyY!o@L#y+3;)eZ4FbPWTY=xITY>*k+koGxzXN`+{vP;W z^(^53sqMfY)a}3@)pLM9sXKu`tLFiKQU3%KrVD|J=`TRlbTQCm`YX_Ex(t|Qx&k;J z_lRMvGhKtaEdgSzGhGLICQuc#OgDg@4OGP(QwQj|Kvm2$?E+m2#HeVx3Ao5~3pnLK zjD)7!fVHMhaO!}nSZ%r!^co;qm+5ZcDY&5w_vM=Y2L5S4Rh({m0JI&b3Xka_;8xQk z;A{h8BsA>>o^N^-oIe3oah2(D&{qTTf5A*$pl<=H;#Sjs;GL#}z`drYfcs2`fRCD< z1wLka9{8l`1;{@I#G5j`1pKGz72r3f*MR?LdIKoTZvidlcYqn@_kexP9{`^;9|k^U zJ_3B&{1MVQ1Vno?e*%2n{2A~K^FP6V6NvU^{sQ#dK)ikPSHKZz$ABZ#{;dqhIpO)3 zbj*VE@=ULRnc0?f8f#k`&m z`Z6&Z^yOkK=*z|Npsx@UKwlvyg1%Br27RR{1bvm52Kp*d4EkzO0{Ut(6ZAD=Ht1`_ zT+r8wQqb3m1)#4JWuUJUi$Gs5DnMT^7K6S)ECqdoI1zM2ECU@8%RzUD6`(uBD$qBI zI?y+YHK1{(8T2l3GU(mnRM5M{>7Z{C^`LJO8$jPIT%d0j4WMtuiTx=+AL!de3+UTK z0QBu51p0Qd1@s-_kJgRmJH)wGFYtV;&wQ7-1fh4~JpWX2x40bi-8j`h6*p>L4f-CO z?Vl>{71x8l7bpCuiu=Tkpzp&u|EaiX^JdV06SsoCU)&D*etZWu6*q6*1^NMT59kNQ zeV`u{_k(^|>;e5Sz6+Qt9ubd$endn;?-5Uc-Xjix-YcF2y%%2%OvO!|&w$>CZwIF0 z#?HTkeiUC2OvTNeFN1zeybAhp@jB?o#haj`;%(4T@h<2t@jmD-(GB_u@ge9Z#8J?g z+4@WYn)^(}O`jIf&j>5%XGI3+XGJFH=S4Q?=S2?azl*`3|1O4tenAWa{el<)`bBXZ z=odvk=$FK3&@YLxpkEfpgML{|0R4)X2>KN<8T6~75cI2J8tB(VG3eJs3Fz0wOwg~3 z*`VJLb3wl$N;zZEzh-IMP70W@tD^`Gh zPpks{o~Q%;zE}hLeX$O7w>TYiH@>QviW^BcfIci-pg$B1pg+VH7E@ut*$DcG@Pa-n ze4vkt7SJDw0O*fI2=vEd3+RuzWhUspN*UOvu|C6}@t2H_jK?!x z%J?XwvTt?YhQ9v3hx>lncXDQRraiMc^ZzoJ_uJ6#yME*PPwBtC|DXZq54d{3ivzwJ z@XLU#frAGY4y+$|*1(+ue;U}DJ#)~)L6;7CbI^>O4LL127vx-;^K8z%+%>tU=3bb4 zZLVwZroq1-+%fpp!AA$D56K-eYskhS;UO0dd1A;nLxv5VHFV?9;Lx*%{&nbWLq8ch zInSNfci8q}mkc{P?E7JThc6huYPfs&`@=sO{`K%tBc_g+H^Mf;JEC>OA4WVm;`tG; zj#xNy@ksZ`z{qNYTK0WU1#OOi)w0@9Jzh77n@b6dFAMh(o z$E=eU;SL$)-_~bqpe-ohT0br|;rBc1)BO8i>nkhC|AY0EE9v(q>&{b6kjFPxm9Ug6 zH5n7Or-=$>WyX0!E%>d?xPgCHXZ#hvWy;!&(TgnNOut!_tL88wz(PQO$Xn!>U2zlL ztR4URaiJambAoQ_CJB-e;>U&4cF`~HW1=7aODmg-|DHi|6kC@I|4H%)<=>AB=kfo8 zp!CSm-;WFTHh`~h~1v*5yT?XYp24YwT*H}}D^J`neB4-`A$&V@UV z@8QmchLZ~mM=tCexv*~J!nTnM%SJBj8o97)5PPiGZLE3NN6-8 zp~;Mb1~UqpO93>N0%$5@prMR|W-<;M$vBK56QF@ifaWm)8plLv8WY7WuyfoBcN;7n zw`0WV#Gb?*aCgGpg{*I|BLhk11!=F|0h8=qxcIT7VbZA-@$zk_g}dGgZlyQN4THheun!6PAIUXz^RH4 zW49lD$&Y!)kNL%qdBu^H&3X7Ta=W71pntvq!n$bdJc!~CVmG*m$_IsBY z$^GC3&Hs}2`-=AahW7i8_WPdp`f;I4t|5Z}VyakKiYI0!q#O4CkpooSGAohcV?2;55L zd$U9NR@tls(q4z`Im#z#=O}Y5S0l|s%B1u|N(ZHM~{ z+=Fn>z`YLlA>4CWFQ{+A9nESJ_WqEE+uHwiaXWq=gnI$*o&M`h*O~mL(+6yZYZEO4 zUQkO1zMw9Js~dQkY4gAV;_`uyst>|F0p8#7`w@PR4ZO)@$$mi{3pWk!WVnXxr%dN% zKdN2{w;TR@@VgJcPiNm`dNunclQQT9bvfM0a1C$)xIYZ~$aKx1ht!cd52O7VD2XM3An$*y$$y<+`r&{hRYbdNgWI~ z8m7&OZyt`M>uOUUfO?$-#NM=b zMjT8tk35)GJ+e)#ANjg?={UdT-BCL&i}L?2uFCJUyq5nme)n3k3JzHo7wol!@%xX0 zW0vyK$1K;uy$CmC%rVOaa5uxf1(!Ycn57bK3*3WnpTP|qcg)fVcPHE@a0SO7vpC@9 zjz4Bu19t`7N8@LukDYMHQVkcHfb{Tt48OJ$j#+9>s7}8WzfZxLCLXgagu4_j0(Zy6 zLzdUzegs`O>5%30NyjXA!R?z=o&Ga^izXklxZtjX`wlK+$}!8yaNDPBP2V$RuVrB2 zUW*Uz(!$R4uL`@;ubA4EegN*{so$obI&G)r@6$dN-{JQsxRZ)L6)iPjE|1c3ReyOiJ5WQf|Gy|4z$6 z_y^7SR8-DD+HmXPZh`-K{JsKr815_hN6g%584WiLZo$k?#U}i2o;k_-)y!t=s9DD> zD`#!B-a6|6>zLViHn`{D-k$xEH9Y4f>$P*}C%~N!cQ)M3aIeC>H`jr2 zq%(c=ym5W*g?k<@zjR!m61a7xsJGIS`g~t{$TD_5-p%}DmTmJ__qlI=b^0%G{T3Xv zl)-I>+Y9%93#!wXE^O;_DcqwASNHjHp$Yr)X*gMshF=TL81#j$EF1ItFz6;DLDSeS zyq*m~w=>`lO(`l2`U|It(q(>!tK1z3c^W)UN65W6;BQ{xZeHy1x^2NWpL2oBZZCqE z&AGYN6L8o0H@SVa2=s-@{eeW0r4FCV>t5v!w)lO)#Goba5XY=)Zt?b-?4q_+?uLLn z*uFmixV4w=?AN`xb1_Ll-#h_6kq1#p`G*_d0^XqGF1}v6+&wZHTqS6KY%L z@onO`QmRMX;*{K?>9G`<($lK-w+5W6xdTB?SxWaznYpzgMpqL%xZU_QMSkmN60}* zYo({ov&Q47aBuNA-Q|9l)=8v*v4>UpLT)@N8dZV_*OJrU>I=!XEF&&4vgF>8Fb20TZ~zA59N$I{an`Ye?pWuGk) zjqVV2MaKrOyL<)YQZ#pP>3tQK*eM;YQ_2RFs=1T+Y&2j|n*7SZOi|qw1NBNjt^8BD z&Fw^kh}F`xdJ03Um;+*QtIvs_I!AC*xgSHHo5mJd9I%(SdcE{8Agd_Y5zu{=zSd^E ze=UsDPGnVXZbi$I;pKi`gQu}I;C4|ywyh3Na>yEow-rNNV(?l|sHxoHbGlIsD%ful z>X}G&(BUojdN9T=as=s7R<^oZ>6c5r%KWe#c6?q+|W4UA=uGw7$n-QZ~ThUjI6XprJA zdy=~?;PExa2E8KT(8oWd7;-nGr6-RU3G;SQaeSOf7&D9kTyWMiAWbDii^hbfjd7%Z zfWNxMg;Af&MT2TAPBFra14cqF6xg#9BfXw+Vu?*J7OOGz;s>!Lk!qAds?BJfjz;%_ z8Awf(Hb5cLNCyTlOu+_D(CKf9g_24|okEj#Z*#g^SmBTfZ45&9kff6|nmP|M3OSlv zG$vZB+tEyQA#-(391PEj&&*gBm|p zJe}c$qNu%{7>hf<7NNz{;`VxcPy#o%qTm`gkl;%mYEgr=Zl5dm8sOJ7K{<8kdMNl+ zK2OMl-gZWO#08he;$k`477LWm1tGuB;a%%?Y^vj7vRE5>S}_RM7YmviFt!v6v~eCB zRyaHXc&jQr9O6Ld;FO%LfdHCf0(;$zX>$x3bMbHMJ;m|fQ_NFYd6UQISndymnxx;> zN@J1N<0walAW$0gF?zaLcKgc-qp2hQR#?b?3GEX1a+wCy>&}N zK3=v$IFHpX%&LI6fMj!f?pix?Lg9qK=&NWu#=#!ZlxD#hAr1d+yw_ zW)p&X9nPm4iXDpqW?i67j@L6Gpp9>=?p663{PY^Z_BS*H-8>+{6AECmhTf@#88eKf z3o*UAON8By^stKLX_&^Ky0#W~Ek>dFMKfY=m#cG8+iEmXAC!a@SS@b#2jasTiT1We zMo>~Uk-W~Nw$ zQJHR4 zK^vELjKpUvHslh^T4OGDc)c4O&P^%b3Khbzph|eH(+!DYUAidX--^b&%-`to#quDT z*f1R9mdxZi3=N_Y3NcxWg6n2OQtN$j?ZS{lLe>U;EK%^}AfiG_JT3|q-^VkoKl!eP>s`PbMsqWw^)kmPnS?& zLn^WI&V~x%gyCgXt!>37XOIe-^5xD+e1b&NWGuBJh~aJa97QQ|s#J>+umCPaBiEFx zSjvz}WteT)MqSM)l`C5tFs5%6rmx{4aGyBR6~cYq3a2t6;j zK%ka{lP#gUt3wesN01wz^6&XU2@;lJYr4MYhG2i{?x(sjMiPW}96xYq4$mjFOq<6*DRq z*-92Iu9#Lat#Y=l$hK%vaY@OX*)wc2XD%+Tn7+72L2Pw(tEv{QuB)`yf>^#p*uDP7 z6;)MYam^|`p}o4Yw$`?!(!O|AO|`vteQjN3wWzkOtEygI-D^sVYHF5M+Lr6#Sz80_(DSWzVA6mQl^3#EVuhUR=3K z&qjMU@dv6xJuX3bk0+^Gvb<(hrM+r-Eo!wkp(uhhP8!zMGF9P*Y0NEYHhHY&?p;&6 zPVkD?M8_*GH{&b?q8Y0FxE|5xv2J!4oHsmzo8m7Axsy2d(Ls>DwO~ zD=0%6VOiuknAc=Unbax@MM;A%caOfO=_XLaW|d7zUx;v=x>I z+FC+1Pqs9*6~qUrd|327^}3(ztthMXQ*>;3l&!SFk-?G6f9ip-oWom=CsJ`-yk*+z~HIJ zh+E}?g-dAH!s8UFY&U}5J`ZGuhmwLCn*{3om6}}uOF^A74sFSbn@kf=&2^PLePB5i z-^og$AS8tMrWtVQe|<`(io(d6pvo9Wc_hJ`U7U(6bgB{GuoWj#g&SrB!CePiP;!FM zA4H~YeCp&%i_M#QB(A)~+DR>AFfXJQNSr$3GI&Etv$j@eaz2fV8q3~e?@^>!Pzi0z zM?N?#w%TSS4FCqajaDx`Cu*$>GSq0@=kcS*N+hAW3{@dxC#uax@OZ9Q=9`RwBZv2*mW!xU9Y~(fXYcvO_M06?Q_$CGi@z;L7E< z&=)4MTgNw~5s-2-EEYj3!t%*5R?BVe9!yTb$itK9ok+%9i`^ed^)LV=bS)`ieD8_2 z0IngnUnNT#lu2$&#sxNp@*YO5gwS|tWwJD+>n(`Pa>>!9Ts0>A<(P@2Po7_}>r;1m zT*9?g8{e5;=I}MPIvU;ZK#jI}8?n9&H8sP_YJ`yyviEw+d9}}qcH2P|Mu>>fmYKISP#Z|>h9JUg<^JzuuEzIuJ zr6>i=b5P3=rPdva(G;K!5L#k!U$w^>@CW@3p+Y^^LYZx0l_pfU)Za{pYRFWI=)WNX z<(C+#DItk?LA8F5WLvo4aX-}@>3-a;us_XoO^aI+8_4F)ELeT{cZoYx6Tn#x8nn1+ z*S2EVg*xmKo?x7IlNJje7ts+Ud#<~@37r%?Y_`)61yu#H-$_eem#}++WO)R|&Cx4q zDFhoC)*ZBdtMt(ZlWaUyh|rTS<)M;jM@L+B*l=r9dP1CSQl(*Pdt3dR{n&LdhBx%gUEwcL+w*I)?tOq9}a8Vu(FaQIAn5!kQC zxfoQJ2Tg)?d1~~ALdQlAe_TKx3-BVGw0?BEY(5uCipp@y4Wxt+6odoqIP(?KmL>Wc zQx+B}$YoIc@oG`Iv@awoeL)y>wId(!ufZ~?p^bL<<2*j7A(wj?3*_k#h{~55_j~Xf z_~Zz}94?ogEcze=*udZ7)_oKSoBdi?oqV10^~$3iTJMUdZ#ec553BLfs&JLt=|=r( z+3D-Z7+23ZDS%2>!`^B3 z4a-TKl;~B8H?CSYK;0_$`dd?^gQEg`jumUDEgqa&S&p62U<*!hCTAJnsYwo_Ifdq< z6d`Oe<8flO50g9@+uSZ~b0k?@Q_+(H;#zTX7!^91tIu=EAw3)WuSn97U36SN>64t0 zzM4u7SsDtp^d4$3b0kOQjnriJ3P-3ZnQKTXwZJmBuQ64`)wW7L+>)Fm_OU}vwgy-R zmd2B2m461c>T1IoU(UP4!&#Dz=F^(245?dT<} z3g?Y_3tJqZnYNdRivo@_JlN$POL#s2KDos*@F~HCP>*N4Lq$Mq-fp0l* z=qYX@PbtrHZ#9k&d!)MdzvQL5vV;zZ{dG4pWplhi`#$IfD^hm_i# zp(b?&B{>yigT{uKBbY2w;c+zj{6SP!iaE+OeL@Ac;zMw@DhKi z2j}#X>W8efct&}OFDVrEi$ID^C@R&!@_1R{^?jvNZQz%?`smCfia7)wVV^qDtNJC>Sgr$?3=*B{kd>p?Z;%gXA26 zLyf(P@He4kK51Yh3V;5BLm8L=u|p42owipGTMoSVoQ8hLEX9kBlRWU9h;JL>K4`7X z)fcGjvBOFOBOfXaiMIIB^B2SR+|xjWvn#L+$q>pye$>O(dyQm>8l)+)}=A^ zoM0-(2Y(uK2`rhg$I5RCu_=lPLkoc-hh>=_iN@oEfW+@bwIEuQX`~(z?YhTToSFb~ zu5!uGB{dFAvOPHTbdb}+wFaX3c+&_Qy%@&$BwO4PmLL%OUc&W1Wy}37ZM3zMlv3ie z@ZhSmw7i=6t1IDihhV(*xf}uc@}=2;-;74m6D8^g2APxrcC2w=q2R`(AE_pbAv%DQ zlpnlK?VL%f(8Xv_J%f!_=;WgiIAuYbhOxwA8;x87?qMt91`o7+d>ZU@i>e@f&Q}vy z+XVY8zG4H*hC|tb5SnUI2-QN&5W?y9Y9^swjot%MIli zwS^YT0%^PP?Hg$@n&sS}(+KTkl0oAtjMK8W2|E_#nm(p+WGCmU(sshBM{9ebnvBt4 zE;o{-ythRY;3ury0>#P5(09)g0$N(Mnpsmkt!P${6`vkEL1<2DAuXB3jt#Jvq!!^~ z*#fSE=B=*O3Gf@@ljo_!X+TaLB6mDehuLB7gWeu$)2laOK-HMFtt~Wy#rCW; zHZ>>O<%!3(J9_wo^5sb7y3Vin5$ud;A&ux{aWe=HLI$sK5J)`dBwVr2v#ImZN0emx z5OxP9N2ZK%Q=AYJB$#lToV&Pg!sL>~Jgq@#*kqCASmJDPSJKuBXQUY`>5xgB$w&J* zn0B5q8f#m1f@U9sm!6+?gjkfiJr4a+Z+FrU1+Mman3jhbD|vsEI)`gibrbnYAioFYUX+^kv+%5&tqm57APMt%!BL9CW32!r!gZkzXp6Tz^-& zxOM5$G+m_(NPH1;>oy@KwQ9_IINsofaW1KqGNzdK2ww|r0H3(T?K09%lOW|bmQ~l!WTojdrTh>w z^~N!(z{N9x{gE{Uct+(U3Cfqx=jrsg&00=Ulc@5oqWZ$e@p3Si2WP2gvn4^; zLv*kw?yusZUxrbCH+bnJsi6lNLTVjb+^It-2`KgkSsq02$_=bg>}(M|-8!AjzfA z-xkV%y3OG2XoUup-$kQ-Sc9sMuVcegp+n1^aJ=7}p_F&4cFnn`1fCZosRqJ48OkM!}Hg3q{-`X=vx z(Ymj%vC8MA;>PnZEHi0b5!%^8SaH2ly%VGo8N8ST_~0ySdD^m5(x`wyXo-GakyFDv zbD#~=xJ_dX^B`eV6ooy=?D#b-GzA#$m0)i*W>C%K!G3)qMHaRMhFohgOWOP8M^Ul+ zUN}TfWRy)!12ZUj{z`y-RNYuocrh9K8kwVKhi0&e8P1q?oDiO9K#L`YqpRq;_?nbC zR7I3GWy1rgPx?tOTOEMukrps6V~CTE`f5^oQRL7oW5R62DQ?n!LzFzt9Na~D8gvBQ zVr>%)5ONaa)+knlpyt3p*y;?yrojawMHV^;ZoL~#|?Es^h}snS2P9U47rSeVQQ5d zc1==2^rZzYYc&;<^amrG=iUTnKwFQ%F4o9*Zny&*aG#o1H@fkou!>u(R7C=?$dK~n zrh}#i67Lqg9@nSHcN@QekVi4YzMR%?Rt2%29lNEl=ciEoU8*r$?|RiiPc3cv1dM^w zG?u_IByCvbxV2B$=sDyXN-GV0ut=*B!3u;E!*z_4(#+a3RDN}fwipYbmL4-ii%P8d z`~g1LMlX)XOMGQlWT&AT+0vjyQ9&9^p>$u2#w7tBnZ>$Te`bSZ^9FAl+8&Mv;1VVM zIwt`mYTQ%Vyus~4w~BK#6)dO4<|fZL%179*KmURR~B)JsvwU}%RHM5(JI^^r+-Ox-W(9Z$wO7wO-gbaIGxzBxI74kv3|`s70n$dVCqG{!;4 z5Tf)!;Ym1nD7o=x*QBrrG#)UNT*IM4$uMrdOOAGUP}y!*Cc- zGU8{yG{1h{OM2yr1nu=mmhoJdvJ%f`={&C9gv{h- ze*!D{+?7@Wxoe#u3ylNjJ{ex^k(e0iFO2hUt8^J=-$M5d_Vy7qSrGl+EpGhM$1be&NHaU#JV3W^30y@D)Mf&j z+T<0PMy_@e!w`VA7e*(Rfo>=-okJREQW}kXDOuw-Py7lS9C`?1&(h`IR?{Gy4fse& zV8<6qbOSV3CvBO?OC{{Bux~byNiYZ_%VHRMRyf+cu)AX6L;9BX6T5+!Hm*ohbuIQn zAjK{xsfSo(=|R%qL=4$>>8b`^4-pG{r+j4t>&56s^sSm6QJYcHl(5NWM83niIU0L8qg|T>%YJ3zwTpnny0mG!Nds(Ymg2p-IrZnj!>iEYdQd@zR1) z-e?d{id1&mkJC7O2t~6>;^YKMtp(5&8^1|hV`87)=jNf}>nX|0w0 zi#)oowv{e}}`? z=?#OookU1(KVh*Z{i(M_rSXuu1wL-a=@hCbwpeOSK=bf50s;v&@gPVV5f_RHyOTa{ zWD=bq$uLEINXoG#Kj!6ip|0M?xb#V6gC2vDGpwm%S;*CG&yb`w7|T23>oE4GQ0|0$ z0{SwOMLf+eS5Ov@ACxU>7{cjY1nJBXOW{2yJOVTM5%q`C#TNVN=3w0i?JA%r#yoAT zVH%sGS{=)eAh^wFr2cuj=B2K!nZh-W!QN_!9Umh!CJN32r{?wY*A}!v5+r-SU_+85 zss43+hhMy5gvX$)l{BvHNSPkW4l@n94*QK$6f-nUhv~SY!``@_!(M}$!+wL7gRgV( zbyLi+g4YETB@5wf82{R6sf5e5bw5Td`Cke!^AiuWV-~$w+F;{)r1cRksxhmA!^#CyA@bU>3qePs>*z@QCd_Vb_tGWM zARJyigf!RbWd;kMIR~*dEt8EESI|Jf8xp7zy48~mEK(VP>Y!ieZ(wTs67d@a4PjJt zY~ud<2R3pZ`JYlq76zGwk6d6#Nu62GT?m5|H5RQ%zak|w`xOCgbY!EDA@!swzz`PK ztPD&;4au~O9|sw0CPk<$WQu^EiN<#~4LKVsf|E!oWXK|QI2}yXFWQJV6iyIZC%g|y zoi83FYbf3W;~}wrruW2nkl}$68bDma@HD+h$VcfVkk(p;LK^Zj?0jmU-x}l$x&Er0 z%=_0xc#wfk2*uivgP|mbBLM~hLlII7$h=dB8TL~RNgDF(ap27$WXQL7A(?mY;mtiR z1Bt&+yE9H>tS5VXg3XRJc_=h=TM^WJ+`g6=s$1H4aEsd)q*pgD$dS+Z1sQXU#sy{= zZ41nZty#52JTrT&dyPQ}h6NT*v@2*Vqgg>?(F)a=QnFD&=AB?u_?0c*n7uSuNL8w@ zhhSTW`3$E>D(OEw2!D%x87j7}$>FOBNEWpTJ_N6?K`DBCUe=ZfQUa&K++OXzGI8mDO=NL zU_M$GOzJ*Sz}*1YLhx$^MdalX+g`oh4FCu*BEi1n=gbRNkgv` zbc6wC?`6{3Ct~ck1^EX}EEdeYR8%Eic$Z-F=@FzAT*i|fSYECoIarp;^Jb(jOBOX8 zm?vn=pkr~=!X*)6FAP2O4I3Mjw89GB93}06YbVvmo?KBW1CV@b{R>Abkzmm7l8rPz zUC97ibW4iXJlL?puqFKoO@#KMv1~w~lhaEGT<*tdh^AQBCS3^HP6fUq)t*P&9M?D} z;sYNxP;p<7CyV&8(Sv(@y-HOV8>CqV9g;Sjt z*dI3V>7cv8s})yIP;S}N5Q=t)X3F`;&MO#r+FLMia50U+hsJI2;ml%!ze@kSg#M|L zL0hE%gM`gBZPlSEjB#a>YXu7&-sD6DHe-F)* z8(!I)`DUzMzw^Zkd6TC_9u|u)NU7&z)kiH6yEO*>R5>0^#TC8*RM=E#4|2aWIF*hI z@#kQ?q%CaFL#AqPE;!ZJLq_oJOO%PRBkRX34N4Pc%pSd39%7Y;^{{>nCHez=q*V*0 zx~yo`JTxlnA2HKp6TfboE7TY)>^Q&-lP&(UmLU?1p$MO+_W_Qyxbg(EBz3FQ-KtiVTA&6As!jI-Hu^7hOBif~T7bs=&n-1HV?0es zRib6ol2A#|jUl%FsBi2G9B1zEt(n6Su!m#qi}5WpXKw9X9AV~6oQc4C3QEAnPt~BsxQC%^YZ1(m+!rNnO~;3xP?yKIRM86 z))QsNQOLcXM+&7_P&_wl??nvX#ii41Z@Xasaps=Ts~rV3Euv61jBGcrhoy&aU!azSJ%zAs1nK~;TUCj>5^%22w_eHMBul+8k0`psdtBeXgxYT?kZ z3l~&^S?^S3B75W59222v{Raf$(_=xc>U2;oVA^mwr}vTWcl!rqp<#j)8JoVn#6jFv z*ht_$RrjfGhbnd)9-fsA?>^0IuFyvBNHTmO!KVT~!NH`d=wq!y3kdB~=r;CmkVqVQ zK7u_w!P%9Mnv1>yJ^Kw1_R5F_;IryC1^yl2C#l^WFF9m=OfE=c&4(vLyC}pj6}SzI zIKTa?2srDe!&F|zG(lJ$5HgzG8Cuo5n7M`Gl$QluX6hz=;CklrhwMyPo?`?d2PZDT z+{hzYPG3;_Pq+YnbL{OyVQyq}FAz`W*uuRFiw`WwhK&sGnYBCQD2qepy1aT{sJz0i zwi__zRrW|~g6_+ca6nD89d7%XlM?Y2J@im1W6(YU!Z|po^> zE&p+Dd6DCM(XOBmqXKz%RJJE@-~^ZW8GKi7qdBr{aH3+5WIyncjdeOd@QY;qT=b-r z4KlF)DtBv;dLq2Q=3s`Mf6|>n_6e0$!FwfItX&-zL6%Xj2T-Hg4X%18p)P$uq3SK9 z(X{Y(ZF{Yz6)x`0FSWRsb!=ppjM2HirR*|=*Y~Tx0}qCKt?U%6-tE6()*2s(ZkRvB zup8#{e)A2pMJKTvW<_T!=WLiu&uy*B0wKZMh{X7S1p$75{jxHb%RBPj@QIZZC#Ees zOfKbSV2SElD}4gl3=d9)H8GPrDGRVL#jwX>+1xxQj|1F-_dt%na@v9JI9N7+gzqgU zWlN!MJ6KkC5zcnSDmnZ&y6wZvFWCSv;JvD{Qj3!@sx*tZIvk?F zZAgdrjmJr#2B51;Kd3{#)s&mTHL=30TO$X**{>|+rH0f%F`(m0MTtaOd)l*|-E1x2 z{kqQ`?6&T3Qbkn6D~K=U)h7_%y=^};a4@`ZcQG8W$|){}1}zS9kaJ_jE$I@dCb9j6 zg4%tN@2)d9$B~GOhG0ig-g=)krauob(x3J!x=GgwO(0F}J7&m)1L3LLA8hoAlX7LF zZVV62;h5J=pzOzql^|WTZZuGMF3uwAUc)vJG3ItN_f;(w3Aq}I#eTXTu#%ls%5na% ze7Mwk7@MnCc*s3Z@JAWoS^0@!BsP$xGLuD8Tme z&9Rl)VH$Y$m1@Zb$3f<0x?*n6&x~gAWdq($-0#B^VND|Yxosx+loq+WH*##fgJ3_( zT`w6H!|Lhv5*=k7tl&d57ooFr;HiFw35o^oDMOoOY21W9l6BS}5_v7MXFnP8m|577 zzImSgx!AlmNa0xEX$f-)up|1rG@mvNG zcD7OOGj4rVLvS{z1lwBV)E_%D!`2E-a&@hjK6YS2)FwP8S^&Og$_ag`pc)!3uIM0V zMEGdz(Uti_aG=vWj$H$bc?$@0I`0Q_EwjklX`SyUNJyH~@M6_OBa(J2xQj<=N$H%@ z*Wd0DM;0wk=QANL;rOf1;f%_24(`qn&&IJln+3mt4e!= zQbm2u+y!qyW7~U{oCov9vv^g~ls|x3%O$tE4y2%y$dh$=I5OX%@8EITV9g zHKi%`w^e13qKnSkUX@Jm0cJ1QVrPqkanuV4s#~q;-cRJkJ?LTBgI@C1VuOU`0%_hj zX(6r&YZV}x_w8{T?x$Db1;x8}j^HD`jC@+b=o#^sM54q3I<~@(FPMWS1jGP8BlMBj zRz>?4ENAUrDAjc=VsP|&DVUGCgJj*e?#iiv8(g$%U~S1veRAat_MHkRL!#jZ3!QMv zcQWdbpqC{tUQKBOh%gg4OY+=EDkQ~jSesEFRsy(AuINJygi~yL&=KHN@gqksx~rHg z<|)K<_Zdg-+%)#}<^6Xk=2Si2;|lJ9q7ijCDA* zDeti1MZd@8e(<~@IWa~pQ)wJl*&^@mGbByr%n4&cU$PJAb5?-CQJ>fC13I|if0XUA z>?5q%2RmN%gb|^?yP9tqC1v@tDz@s-EjTjKzTiL*yCu6K7TP%2(XvgNQs#Vy?+LtWE}}uK2Vm2s6*()ygV#Vs}Bfd>85=wOi2>r8)C0}jCJw| z-)AU=Li_2Ik3*SdBZyWlE+Hpa;2okckq0FPCOW~0slcLp+lpG%Se2}7P{Urm~hxhcqls@n>gGd6yd~eD9X|dbi5BJx+PEFiX2?QFtAtg z^>>ZrKrFz`Z@(AJbIr)^JPp8v3>4`=dupvnEf<74zAj}NL>y;z4sjH(%`&}o-0+5 zRFs2dk?IT)s#R4Gk^@zH9UT%{g^KNJ_#CQ;m1S2~!cVbXOvp@hQ99@+v14?_MO8SM zv|^V?p!*kRV9PHA1vqx1t5tautSCV~F6#A#l>Ja#bi=^Z)^&`$S*nU5IJ!21@#~fZ zy4CtnQRu>Y*qgIV@-ky~6DOBv*-jDNI}Nqb`FZ#1o$FfMnqT2$>mPPe_lGc&ccy-gj^5j-HOf+Slhz`ilA6dj^Vx2dlv%)VFJG#UJYa();B;P|f zNz&NxlPfvYBo8Cn@`9Re%e-68#Rz-27k3b-E*N3XG`0dFItx!HT+r9helpEadjp@c z%^@3lG7mokLiP)9N0dk`E0pyhXtb0!tFLN9 zl&UcI=|>RVW~XG%F@y!slQp8S4YDHEdyqCtbA`}eY}J7`@{WNqbxW|z{mZO;lV@Z~%{H+QeZK~=urjOro?>VH8zftS5$&EU8;QDYNH-1Gmu0PSYViQ>O2cxmJ(dQf zl%;!heHw@^jJ44G-p!NkwU1^>J0{deVuRUO`qRRzZuXlTamQD!wh0VLlFk%3p;xrS zuOUSCT!LL)eHEMF6_DkQNEuy`GRLhDk%Puvm_2e7A7;AuobI~l4psXN}<^?9=c&(?xK2=aV_^bhh9gyg0dLoLD2;x)mHuYXeq)g{)}-1=sIcy<=P0aIb=NS(-H%R}^%$_Y)AV z=&*NRn#NHK>jgV2c?y&k5cQxzn{2-%*EmNZ3!RHdI;)P#I6ZI8Z{v{aLbi7_w@#tC znZKfh#ejQYv_fmCz?%ir%}3jO((^SkM&qY*VOnW+E-&9U2M*xa0ZHZ-ea&~1!E3(BVWeIHR z-as;;wjtYe~d|Dq?j-QA#y~*?8YL_y>=}OyVW2tD&m;m zu544@fIFj?(+HdmGswwV?5pzGU z4Mt;TFh6l;w=5urlsdLDb7+x?u#V`z!P=uvvgD{w?gGI~R93Mu#XXJnO{}-TBbqzy zW_Xj>ZZvmVV9Cmx-FqoA4@dQ7&P3&;Mr|M`HG|)pAZJ4uo#d&rNMmq@+VV1>V~Ida zGTe|Z?^8Tq-G(y~6P7RPO%QA$V2$EIhdkd%kE%O}B-URTBa{lgqI%cUun((OiKI9k zb39$oWP$)cKnb}R4=*5<^{e5mg2l)|0b@8v#^A7S`CtLxg+ShhKL)X1i_pg*wYzul z3x={dS_H7&WU2<3Grt1d)gLSwt%fp_(Gz5Bo}2j7&s;fvCybp1IJ=A z3<~$APBixhkzx)jjSNP3uI7%jo1 zIb#UaJ0p-Hq?wc4an<4y^@qA4d$fAG5jhW7kK))Qj zSeP7Bqz&5|K)tpPoYs%OVKazc>Nb7&H(-YFHX?6~;h(vxI%h9R3?i>WK%S2~9GB4Q z>e`gY?~xuPx1AKepFqE)0pC%@Nt){ZF`qvQ+{rDDV&ua#Xg&rQ*p-6tdK8}pMvHcw zv7g7yLF8tyC?{%dCQzDu$o@QnUYS9S!w7|2`YG+JJ!8nXgkHM?@Y&9qxeEWt zk!uDWzKnm$%wzzZ_JD%3QXPdu79kFVG#adeI7*(hl#Y^yaKgyBPG_?>B8IuN3*u4# z-3&tA3KlQRLo_!7wJnV?T!F=OIuy1X$lP)C`3S2e{dO zO4`Ft!?A}Ll9Tvd27{96$)KdheV_|lP2n<&oZ49;9FvoXC5={*em&C7rnI>RHC~Hh zIgZj=BRhiiNsb;0FEWo)P!tqtv~D4wG$E?;x*iavRFW_#WVCk>pS%rW(wZ2vc5`?X zVv>D`Loe}{M+v^MCG7e|X_w|dgp%5Jr+!8OTUFjPO0ga@aN$r)Jyb^FOOxO_5{z20 z8=XNZe~&N?V@X_UwoyF!Msic?Plgb_4kS50D7B!6A(_G#&ks-~I-des3!v}&iOSdB z8!A&mKdgCzLY4N-`-$Frq|^bS)V=R3rT&ZeMkzl`PJ^f3N7`IU(ST)9FvKnBg=KIy zhp9xp6?Gj-|JxQxi1!~sBcF}UAs&bZ%3eFxAKp0yu$7$62fc)zU zMDIGa?94#4b_@NYV$*z#y_kn4uCyG8BXu<~X3Mh1?D7J798ypFCPMjrq@xq!wext< zO_gyBb%SrVt99E2E4L3;ZtP*F)L94RE5-jpzz=D}k>@CvofUi#{WW2Gbw7IiFy7eL z>@`(AI+LOLSBr<-9JX_h2}CG>X5uu1H@4hdO8U=%)@(6(S$inf)(^|A&+J1=FYG-2 z_CbBK6#L$(E|Z**-c@SRqBey;z3}GIz*FXR?5P&RMK$!Q<3PI-au+5lHlWIofH5e{0b2aO5WE-~Aqonv-}b4;Rq(4ALBYkv@MowYKCdd03Pttww~2F20A zKBxZI`3)QEdQ<1^=dyb_%kgGc%vTe?Z3uP#UG!>$`}ql&MB>o89#~C6>tL0 z<{tc`$KxJQhTbCf6`399AK-5m`6&IUU&z1RNMnCOM}2Z5DAaT;K|6rZR|O}^K|)wy z`LT`4p9>52?#05OU;&KJRN_I)#*HM36dfyUH~X_&#so(ay+pL*Nf&DE9)yXP=M$5= zP}t|DTa8*SxCPaHqV%i*`<@GJ0jWyw!u>URegjJF>#>}53T4S3i|7TFO8t0af9PC^ zqL|#M{bHJqU^Gra<(PXj7?m8^VFi!|F6^By8&BPu#~ZntJ{`&%PNK=791;9Y2ey-@ zvDd>I8I$ZbO$jR&#BQI#$l%17b{rH{6Wf$FAHjqef7^Q?#W^N=0PQ4FyKHI<76Nfr z+$fP1Gt){q95af+1j<&%9cJ9n8OUV*>w*?Ih+p;O-3F>$4~$OXm#yvwXZnA!(Yuhh za;$UKxgQ?1ytykRj(s;vkrw9?(0F);Y>h8o3xs4f^WlgH*HC z<-@4m#ooRi&W3LDQFAS*pbi;2YpD96_B*|lrjbGpSM5ff8>>GILqmJ9%X|X86lBBgf6%${S@_5fp$@{1ni>ZYn?>EUcg>wl*BQPyM(AtwdD5u$ zMnI+CkAJ-gN98(sg<6m_AXIU=;L!K51B#r%8faapmzcVgHV1#n-Go9uRRd}sF{%f3 zt`Uw`$*$55^t-p3JJ=$p`MPB`PVQnoS=88V-7LW09#Clo7x7hciCDxo7fh%PwjY01GZX6iT6@NBX-fey+aJqNijYxNACvYTy+efi3AlHJA_5m z8%TD&8XZL8xr7iQe5PVr^I5>8@+Ld#^2hB0#Z7zC!t_^%*k0i%HuSQxmav)GAFcQo7CLA#_R$# zVsI^Y{nf<*>sj>($WJ!h9Qx8l|3t#X(J2toh*phuw&AN=4~=D{7-s z^sp<3B-?%zxx$K%6I>3O z%a7>YK))MAn1%+XT*EdQyx)Q*ao&twL+BWiosv*VMF#cIVvx|#w2dD@y?B1ycb=}0 z>FnFhB|J%pMRV#Zy6lE>tr+#P|L355U*Y(YTeTOd|JCUa|JtSh09@p$qmBl|x8W#fw2WRs+8DID zp|y8)SJ?@~!!L-Kod<2XFs^ifm|JUU%l#-#&ZjM-KFM>|uw9)Xvr#*@NKa5Z%r)Zd4HBUo3ZZx+514P0gmIOco!r_&wMUi9v7X12 z=rjhvUf3;W=X!a}wP6f4tS8c2>_M(;9~R!=l1ig=I1Q0q|Fo@vN)Ns?v(#~KB- z3TAUAjBRzl?gxIH4!Pwc?MwEuUq~89>QS`m4&-DCdyh1uZ=L;oSXy`-F=NuVN=Y+t zAuS#QBy1Xq(DvNe+ESmokea+MngXrdbi_$NbMV6Gbr3B+0E&>4y=-y(V?Nm<##`7K z+Jl~<2v#eds-@D&w1U30t{3Y#)%A*g5%XA_xz{NCcfefzk{g?o1JZCYiSJ#F# zbwE;Mmy#6Tz76I)ms0!@o-U&W@tEs`^PBC_eC9^_mbhb->_hvA_;7WY9lM11NxVBI z(^&}ZKX%Ow=3LH7GEK*XF4(MeIcuc3sZ`^9Fj(0hrzocNs4Pk=-p!7xw`$R-p$Vny zUZ1hFg+Fg}eJD|1n_uhgMx7xD$D9yj>*n~B z<$9oR6X_Dc>66u^Id7=kL+t&f73EhakTX8YM*k}#T4Sj7;+VVE4`X( z|Em9s^Y{qXx4M20`z@U+*7~(iNCj{1R>N_v*Qp9IbKAOVZR7KFtib15?oquLf5exq zXNx$Naadmz^Q-75R4)U^+5?h@o;FWmv;BbJK@)2kbfSq{Ywrf>7v2?XwsT$2k6^P? zN1eu<0L{JHVoUsr!3m@+aE`&w^z2*hDy3*)r*bf5He^^5KI|&-g3viPI8Z$_MTmo* z%;X5-whv*B(b^5Brf|F$q*ANXG+O)Oaup|J+vu=@o8_vbBAl3_;xsB`)8=mExf+;w zh9%kWK`FPW$C+m_!ofhZ=Jo0_l^E<9gbm6ozq|8j13!hV0D8cy3sE7?-E z*EDlpO;~gQneE}XezcqlfrE?;!Kp0rG*eUg65%(L=p>Da)k(mwD%+_}q;*m+ceU3j zdAW)PT{w=Wo3?P8!^d1YEm%J&l=JnPOFf1;w1`86vryCKYLCQjUq!EnN;mV}lp6F2p|PW+bXRDqS6m$_YVQ>*tVz`&FqjHO++L96si9j$rbT@)h9* z`S(<(RoBSHwMqyTt-R`7Il!&hLlfpvj#FBjXl0wPGZfqES`dnByH|Qn@pqIlJAG`l z4%4LZvXKU2H&exK3T1&k6d3 zAh^67<54cFXvwZ_bZ_-(oTZXS%}yVuHu8f=;p~jGbdV^~ zP9qKyN?_2uqG@NjP+(|W1-{q{M>CQ#0A&l0PvOPw@NsJbPUzA#rRs%*S065obuzLO z@=i&Gom=#MQ*;x3vOFyi?{jy)cA`(AtluDUNms)mQAet?GY77U6|q}azvW`ju+Mc`P46cgL_a7CkcD(QP67~3C;Bv& zs>eB0(nup)QuR_@JC_aZFz;G$Zf>=Z$VY?}b#Z%(Os!0Btgt@Ck5G@H9ErwZK$XDS zX*ziFvSS&`Ita@f5EOKrah-zQ$-RFRK+Fw;2P?9b5XEng_%J-WswBSf_6JMMLo!68 z1mu8X1DqsNfB$-8L#L}cHTCx4`H|fee)qvP_k4KgVj54*AzmOPYYvp;#!QXQNU5YaKLWTJBAxK<6~)>|nV z{y@%k$hp;bD;Wom^y&DubXm_ZTz(Hnh?uy69qdyx|`XYsJ)Bm z0P^00E}s!qtNsHrsH)!RCw$7Ns=)66)~ti-lKvIbtZc|#T$oi)(4?FO)V)~m8^rgT zRGlMuBLnh_%o#X_8P^NOq+%VwLdr10TrJ#--wgf@Ar!m(c4@WqeuejUn|lwT7R5@Z zrW`{^;KtgW1GBkWp`SxeZ*hcB&*`2LBNsA{ggD9cgp28I`D92Av^{ytDt*AkoQ z3_%))lwP`i!|haDk#X)qZvW((C?%naU^=AOfhv^Q!EA-|N9fuOTjLp7ef=4jFc~lb zHxBe5^dO#D#Pt9IXZ*ER7w$(MvJ7iir)SjQ=|Q>L*qb)LvcjzfY$3Mf!SUm_-*I?2 zHb(gDr6MUUgVz5VV4Q&qhB)aGx$Oz}}_Mt{&E4@HTGsWzXx}PNx{L zBxA$WjCFdG^@#M4)26h(x#gI6U{g#RQ!Dq$nbuLnM*U3YO1GjKH3SGpwki#L1W$@4 zhd;$(SkwOzdV%YtEU(_G*tOMh>p=e)q0=De=q1mGA(Ka`nQ7!e$ep-d@Swp;lbjNP zyvLCd-Z|iew5N>6td@kJ(ag4*+`$8LItgSgF?=tqQtT+=X;PV1 z7vuNanKl=#;@oV;qNWW7ZfTZ?L_p zsT&+Vi#fKD5PQQMK8&7HCFN56)Pph1<*ClTrFBF}SBv}2Rp-XXG~Ek~sq{>ePtwC} z9M;d;oLisD(6^4pDkT{=Ky!RAqdX;_eg?xy6Jk2){-!&fJw@fiu}uEqqJe4V;*j&Y znl}BAld$~u9J5vP(4Sxm|6ZpVt_wI|C=%!{1bAC%Gm=>Cs&@N5G_ybIxfo;-n`?C;A*&GxaCbf7|I_ig)}ub;qWJx(e(gl z;JERuvjU|-jm?g`?!cakJ0SHPM3D`E@q~Cl`ur{Eej#o1nB-^Fz zJAoWw#XpW5ltfVB`C8pbig7PGTjE%d6A<@BDK(*k7;Tf!<+QkKiK8VuQa+|4nk2*d zjj)U3oe$S6ljB%zu^FM!`OYyR5669X)^eSkr#8j*7dQ9hp-#HG5dDzLF>h4Qs^vj8 ztsxIv9V>Y+gSqP5lF^LR#vodOzQuX2F6mrij>^?mE8pokwV$2kud<#?Pb)cQvmK3wJ4dQqmIT~ zc;*;Y2wr;;BE>OvEyX7lNp#Lb+t(Dn`Fqb{~)OU;Zj^2GM-bY z##G7I;;ju_rDNAY7@JPP{n7@zxcTZ_WFAPYS&SH;*2$w%=3_QJa45ohgNZu zJ>k)<*_hAJ(yR13Q9;oKNdtl|w6vt4|c2 zYBo|5xvgUA`P6lg+9sol@$jb?&gcxEhM;}Jjb-6FqN`r)!LWmg&7oz*DKnkUD){vz z0Sfki_QBFz?G=N%%-+$XNY^ZqNHNNZDxJf|PZP(XY;Z52NqGKY_$afCsOhL$#W z9fY?7)@H(WMSJ1@{V>TL=dX5+uiOiHfs!ZquFSzZKVnu%p<8bUzmY#FzrtH1HlBA@ z!72RD?*-6%mkj)3{1zZg-lOeKJDJ0|2Y+q=>%syh1qCPLm4BVZ6&;ow;NaR)?1OE{ zg^IZMPnJ>Yq;b0Q`R=CsaQR{`Vyjx=-+q_`%SANwlk2lOM~a_oQaIGI{Qkv-0Pq9T zO}5orbn88%uPFTKzhDUZLp;!>6EIz;ch}wg)G>f@w zj^&6rnS}sezvhKRVc=;Fnpf1&o9PW&1U3D6~3j9pGmp8&26dskQ7gww$#H2Y)YF{ z@n@)~11XFEkkTdvf@dpHKxHOX+CwJkl&NCPHyY(XsEY8tjMb4$#0BF7fsjoiEOXxQA@YLIJtORT;vS$G_| zkRu*%l$Tc1g1xNC!k3WKM%avB31|EYk~QO_nvoH8o8wK5EX)@m6^kcYVs!#V>#(m5 z637sbZ!-9aHz8xJg?QjSk?7cl_d0gW6$WJ3f<87TRsJrTQ21Ib(Si=wUTaI0zlX}& z8x!$V;i&{5vA#!R^#IzLh$leMczrxwuZeg|#L-W9t4HS}Wvd|#kRL^xq~Q#wOuYr8 ziRc+EMR@h`O^xWyU&N928-V(56E^EI2u|sZ#bPb!hAqs1LtlaJvxt`h@3;alNb)cTQf7{VF#pYCTC;pG~&rob6%Wo?LwBO);M;f`> zFm8XDD!kP}vG^bKPpzSkztyqLa#pLs(A%7@>*(n0Ac!@=7mwz~%_Jmn z1DWC}G+bY=AZI;_K>*U$Z%r#x0&Pe?v=)K~zat{KN>9ZS7&I{qAxpEy#zd+(nkY49Ewra^#gQEEV~#baQ&gTm7Yf_K5or3Ug`vhYj1qh}KBjSYZ( zklcp?5Iza}Xi7I=&?i!bcefG?8;fv|QJS5EtdU}5TpX-f7whN{1R&9fKtd{w|AR*1 zmr!Y2%(A@>8ez<}HuQWVwYHP+3s0fORad(J-X;*YH8nPLcEmf-C*nxs^|#uoz^!5oD$kqkO|sSl9za}+l1C5$V3t_ z;YI|IFtS6?s{ntgL$D$qqqr43*BXmA5;iUN=WedUNY$?cvt?)`r$i zaZ|@p+S!3|BEyxOnrXuDR595`tEl)Fbr3^yL7*-U0eFRh0#=UH| zgZ0uHqlwb7xv?&}Ke-fw=t7+x$$C{4YxW7g_5yh=ZO2F2x@qTfH%L_(KO1JD5OJ zcWa-f;8OD!y-^=aB-f60CN60tTF3)pLGY%Ezr+8D1VuVzGQvo9Pe~S~*U=$pmJXm| zs|HF<#DozLYoZuRO(NE41=nq^YuHR;pzk%)7HEY;s??k+C7T*yL=|307FAQe0BniQrEDY^{Ukn)!FG0$OUTNI3A5^n8mEkwV+2atYBqql5D4?$Z0knDG7;tNa7xna6!Ta z39m_b4U8SD6GOLnBg_kmGd`i8X^7${(P+SJ_)l2t6vRYba*YoluzG1@qceRT7Sl%z zpb{AnuZd>U0BHu4*LEh?9wva|!aekzbxS| zZz53>b(_&ZSlo#njhjKwhh;#Q9!`}W<{J=Bt$k4^qd-x|cj;jr-}1!xE@`$$6LHAv zwXdYs9wj@V{c0_-aWGl&!2hT^RXQkWJSJ#7CgHD2_^Sw~N>5-ML9r%e$O`wsSWXsR z0@pQxYrx!O-NMTPs!57JDaD`M2IW-vj$=7;{L_-~v}F2*gufw@Lu5!Z#R-`HOR-I0 zB+8l}i2y15s2O4&33ld6ll<}6rmdhw;Z@BqQl;>!X#B5nxS=abU&O$BMTXlKw~$n8 zPocoOw3*dlP8I)#I2T^oDq2J%8MF3v%w|&s=>H*T=CAWFRr(5KYw1hK{xUnEjCmy> zev6?-7UlSaC4q++5Mly~mGxg^Sr{CJr+~0@cHtGEgdSZb zYOIuKqaDad+Z2LalF`wHSD+yhm?gwulQ8~Wq@N5r^gBY}?+CGUu=}0l1)BdqfLMul;!Ooc=`1RM>60w{0tx_Ps>K>BK|~zmqfxb!sL-;>1C>6(PzbHCHfVKenrARk?>C>{2F!tZ%{%-(`!2Kc^0I{*pUAu+Z$5k z4GI5T!arAj_&TCeC7D>4nuXq!exc3l_Q+4v?m~GJ30GqtmmV1)8@v8_V&0)$#%LbQsuPevf>f)516)i zL~7nGz;;Xc8VO$`;p-%PorDJ^JSgE|2@i|%D!hO(Ah9=)JipO7TloeGgVLz{KTcT- z#>b2Nj$hUox0(l{)#ia18%K{?P4qDI(-z1f6%r4#*xC!=^|}@aXSz2;Mi(F6k}wUh z{X~AZP;QZ^Hwk(-NoSYdrksY6ff?~87_FSzlzs_TO^BinUZvoEDY#$4x2c{*QT7(z z=*^?k3}X~O#V17Wl@A~eIc0{7r@Y(AE5;>7Buj~fB5B*waD)_IhCojhmB{D|HK`tz znzTozBs?XU9GCEM3Ew4Q(fZ}PC44vheVvJp#?8>E{J*@DG=qbHEPY18R8k4}z(hdp z3|7BljgUD+tUq5U;9xQmSljD!znL(R1{})Y|@%VKyb`9tL#V> zix_6R1k0?XoRsiM3C~M-UcyTf7E_|UBH6=`gbpVXA(3)aCz=2Eyi>?Wb=01Wc zKeLret~@UDLgv5-C_huz3O_;MB4XqfrVc0|DFO9dhI%efU}Tk_K@k*Yh=3T&`B_tt zE^T;DMRKaBUGrQ*BykG-Sa=y4Q-N5pB`7?OMzDMs``B<`iXI-0&$;wzX z7FHA*Yqgjd$>r}0y+m7;e<0x>2qw^^I-Hd8UV_7{qY2JD$cO}7KGLP&$|hKijN)vk zAyw||tdG}IQs5^Rt0&=#-w`Vgj!l|5U~VftihmC2(Td2&;llU^dPX`rS$vX&%3!uy zepwLti6He8MY^a%`KJ>1Q%QeK!mmmA4GF&?VNpP3Q9xzqDn@Zip?4(1uO$2{3IAHc zqGQUUWAF=3SZiQBei;_mEYxLDSbQxmk=rE0HVL;#xJAM{B)mhy?Y2`(O%mBIksT7I z#!0|Y4i~409Z5<{Qd+{hCA^!~Ke!gT<4w>ABIN0a#Qzh_SC-CPyH0XnCnb9&+$-Th z2@iHQ(q%+xl7T_giG`Cm{$OZk=-PLEn%UC`8(ch{%%a{-xP`|PSOH*6s=P}5DYk#S z5o(l9QmNq@u{O(RQsw)$HeyaN4!HP*83liILsL5@93~cPhb7;hT)RoUl500vsaM=7 zs2;FQAMac-{LzkMZ+LMkQX+J zWXEKil}b5v#J&kZ%qRi5rMC`iC-i&7nzztJEV0SrFR)C4H%MrLeSuQSy(;9l07W26 z%?kN#3t5m;a1sPK8O?=v4|1&qt$IPtZB|CJo7lZdixuM#9$`@v;UH2lnu}01K{8o{ znq=)ws3 zXajf=LXGGbn}Cl@4Twas$zsERO}8X3HU-!eo07#}ah_3ll_kVtgctt`ER3XXf{UCJ zn73h%vm5yPmQ4R?G2xvLMDT$;Tcz(1fV;gz%FFbpx^yUG{PM;o`rC_l!WT~XZ%Qq% zdnW@LRlHLyWi(2vLLzHKP6dQOvP8K6_a3>o)B?W;MxBzbgH{guvjbCIx^5HQoLiqo zH>#4*p2hu`Vju6Hcb6tm^oyaj(nkHvt zr(iaTaL>|yyxU?N_mmKrZWMos06C%fOBwRTccm}^V+t><6I8)SMM**=`MWLnlM;jp z?7-Zz1j=Z(lqQf&fZs)Ui`XNOULul_vKxzva3$b>sY#z0oqUH$#UxH_>2f6U=mCya z_#P3gX!}r3$S|_eUmFrho*mPBTAvyq&PiEdo&7z5e-B-VJ9fJR@g(uH-SQYi}Y6M z_$3mrOV9-M#^oi@J z_$*0mYrMOUT3`ig7ym0%XyC&0(7sw1-b$lX`1mc2Q_{nUt^LC?5StUe$BLu2$235h zJnBU(0Ayw9%a*%}9P$t*ji~8upvUJg?ei@@Nf{T%fJ8DNxt&r&#$@SaZ{s!vhF7|< zB$qy+IOQGMQTP#H1IUO`$Tk2SS+ZI|g2~dnFmho{@mmki2r^4oQ|wETjY~PjE=?dE zBVbnG0t!+l8e0JJ5xm2Rm`GxqK@rCHi`vX;^TQDd&q|WQ$B7Ae0?a|ra&qlAu2O(Y zmQJJ6z|L?fg2ibi#AA5b0D7dzLm!1&OBGmT<5K94NWsEx*$Bdda0tOr6cy@~VkyVT zR7mfwDRNJ4Tur2oFZ7XR3M>-exENBEXCmbvQ5;#GPODl-MsfVI;`oh?D~r_e*id6L zaAXm9?KUWw+z+>*B8gu}KbqTxS0cc^${EntRL~|qCYw0^oXCUYm5t;X9W63c928_s zmY&p--@fpYPix8NF1+M7AVV=zd7S2A;YB6mPd1l16G)>c1A?dVT3?-IYfg+qW~Y)chDj%!Nn-v93@p2OHD#q z71G+y2s+>Ig)9gG(%iKP3kP{+7yjTfYKy`fsTDPkQz7*jR)as>Nj1oPz==8%535DP z*tH{BG7-LQdgjte!B7Kb}rR#!6^~}`I-{w9YtWBZi*7gDI1wYAuzDF*F~0C!|{5 zadeSJy(4^B+;J{G{FU$_^GWUN@!_w9%*7oWwYx%?{Z{ypkhM?^J`A%%*$A^q74HYL zl^Y_^8@d~}g7|Devh*TZ84n?{GG3)R;T-KnM^WZ3$CU*8&z}V4-CE?p1r)hP21SuY zHZE1cUFGZG{Hlv9dmfR}KT8&0NEUy*5hu|@3|4&{l3gZ+KdzG*>d$C)mwuKk4~l6n z>5dizT^`iFVm)+)DeKTBHi00-n0UvyV~-&naKmh*wwZaXEnamc~`^2Su0~RjO`%|gX>i~;NImr5&-+qxA#H56B5 zO7AANrFBNcjj!|&0J_YZU)RT*vA7c_aV$k)cZDwSCC|qGxN$peHLfvno3_jiftA(v zjB-|igsn}WnUTw8uxVTjdNi2)VV>&C@+BzDm!JmDVEtQ2|8ts(MFP&w*%(0$J_dmb zcOy8v#abdkKGLlC1b?w?w;7m#qWHB?Zl)<)yc;;mB2;))3QGurg+9rzd?&l&c?!LI z8vlddjp=&KofCCi;h!keXM_C<>nIKKlb z93Jun5P3451~KFLWITNpgfDq*jr=meLJ4XF{mWDE9I*y^DKYpFv(JcX?+RC&yx8{ME$zhyFlq1aT*XPLI2ozDr6M z>5&A!zbRj+l+0raBi1(VN(RCbT%r3o*02B2nHJ$B4p6Ni2>-sulq2Z z$~GROFTu4AaDt7oUR^Cl#Tu03O90S0t8J-d`AH;uxcEW_0O7K6EBeH_v`hRY#gk$T z3YV@obSb04y!iChBI=f81A@f^+aD}?3~@IEN?~1A+Jd(&K9xbDj@a!2*1jam-@xh$ zKMhdT1{^b@?K5CVyvV-3RO!d9Qu`V$q`(}ZsdRQ{BAMQdWva8C$+NqXXZOUDXRqCg z-7Q?Q!|GNYwmqcEHURSrucCfF3|_y_uyWgxJ&Hzl{^^B8z~Y zfrydbro^HWpng|npy^RbR{9IH0{=Vh50z?*IPJg7)d(=j@(=tQIQ0jo#OQfMD&G}w z9IYu=shC#!5;%Yqtx(E&ss^j5EO@J^LT}dUBQ{P^+0}ti6Yd6>ldUjwAEBe9_=Io~CI@)Zbf2=kP{xiD>nTAbsVJ!o&{&^R z0!lDh{)yv)pXgwCLV;j2gk;APhNythC~V{-bY0yj{}h89{EZ~7#s)BBEeV zDcBgFbYY7F5f7Nw!GSY`O57!sU#^^m$UMa5ej_}QctgJ#`x4A(RB)9{B%ZLvtuzqy zZ5YVQSUNjYB{F_-RCwtLp(uMwDC@dZUK|6-i?#QWO>+uGr7lL5PjPsL83vR`sxQSi z4?SQCVG?wvY;I9B94P@8(O1goCz_b_0YNh$UHJwhs{~Z$?1= zig9O0B5}WN3#xG}@x4&b|CaNQhq2+K12d3^K~nrSUoCw3ZAymo79nd5*GNU*0iU2T z;4f)X5QMy!Skw()8ilF6!evTT5QHH?C9HEM_lC_q>P~v@9PXsGZI=t@ARpj>qM{Bk zZe(T>5C+O|twpEg^s-AUG-x+>Em%*~%NJ1f zb+YbQWD(h;#0}L&bW28IoWnP_*4rhRvp6?8fk{crV4X|%KzI z013`k)#ed$t z=k_a?p7}Tb+lvD`U;C#!Gyi1gOYc7Y*MHjdm(M=<*=zsV_rLbTzn**g%m3%U$#r~c z;hy2Ydg#Poet-Ae|M!pXc;~;p_0RsNmjCtme}3d2f9c^@`o7!vyZ%3E|L)J<#*Q+4 z%k@!n32%nde>dYutXpyRpJ^mN;_9OB>)ON<`p)ou2k2pyF*j$(Rr$Rtj4 zaL4=~!nqDSO)8JJEZ8efcj%?AdY!9Y?b>G^a_2J=1`&v!`C5ITDz9Ok1k@9jC`WL- z8|gJAr%3Q<4R?U0o-V}Wba*(&{lJL#ZSb^-W2j{gt+yB{F2m@8UeK-ZpItag6X+fG z(G*ab!o7{}2XdR)Z@s3a@{Fofa%w@cej^rN2(HT5>glB`S0GF(337^Cy5#bA! z7?EKA`FnQ?ul&b&B~9Vqxla90<3^g&iaXaW4Zg2Dxs;>89rwetbvZ&fTGl^?>7(OcRVy+6(yWWW7s)em5{`wPO{DC*F?&ytt=hHe44xUcv@edCIww_XfS8tIj zdQ!C>K*Sqq^hy;yX4&Cz;b(O6axc9ug=gHX*J4U49_L)$>ixjYpWEl@U+a86J%KoS zup&Q*p`C`CaUB-G$uzbW1H%YY$R)QWy_!q7LFvVjqwp zmM$Dj^th|a!-_dNsoeZ6h|%MU3vYawPKjejswAp)Zr1vj5iHjttLpvV*ZoL^|L$D3 zHu1bMr(}uCDg5IBkmQGGr+VSWbnVcMPBQC8p4-4#dQhZ_9w&%-Et#_qYhv&yG zu{y)XMMDfTuLe%P8t^rZX~5*mG{DP;4=MT6$e%cWa4H2(C*#jn{%qqnGPQLx$>3< zN;z_`p5sSPBPN&Yjpp;Hbq?Vu-W$tjcfO%N z(w>yaqb|KMln1T4OR1vwQE*(dM@bW%RdB59y{K&AQKWims|Khn;ZD>puAE<=DHL~b z^xsFnId*sb7Ue0$FG_!BMppJ7IdnaPk4Db#pXv=QR~u9KcONF*c=6Y26&Ji%dT%$z zMb*}Y+9GNADLy<$@LxQ=r!JP{KXQW)r zg>fpGDA|60ceNEt?+2#q4L)kMb6;(D8Pz|pIpIxJ58_EyqZ-beI1iwmMc_92M5ocU z`|xiB-q9|&R&xIZ`sl*;6orcS)u!kT9mRdXW57;N`QLF$ zv^o!mW|bP5AQ10ADE!|aCfO9lJ%b*6FITt~A0v4^4ZOG-13{_K9ho^XsGPKX5JTm| zr7_;0UMYO_!g^(6Blr9?_W22o!p|qf;N@`RFrv($uY5gI&N)JyV)*dfxL5eIQH&@x zbi@8vDm8i|`P7MywvFSY)>@4-k@Z?-PGRyQ#%2Iv7XD)gkLLUoM4V3Bj)JCs`k;E9 zhV^M+)NP929JCcdUPyeeF7`SD$oEiS6{>@;_YXw+hWiGbs-%XA%Ea%>7=t zR%Ksmj}Y#=#=Iu8*v%gYR_M!(F{7w;#%s+VW=TOZvcd z-EbTe*iqoB2eK_$I&sVV~OLaZ*q_KR(Wh1j28_$te}Wb^tGz!|AdhLM{oh3I~% zY>2-s!g=q#Q>A)6N-YOUSCyWuA$m_>;in&DOF6mFC4Ne0wSpG9axrP)f2pmA&LvYm7<-ShC~AkE>n6!WUIYz&#~kGJyPJmoul?QM zHT3akfInUQxsE@(`P0dtYw=U~%MX$(R3b%dOhdCq)rYQ6hh+=rXk2Qf#OXG-D40_h zETW=d3cvm^O^u_ityEOC)+E+nRxJD(2S9kEl&UJPBNbGfAHsCGcULD>*Oso%6m8r`&Xu9xv`0&DY;bihV|MuZd}PX@?xS|xD;=eX z>-LM2rrk$I;qTzpl9h~sora9`Jr0&|kTQ_8+%u`H9Ab%D860+Ce77;j1I1uz%5*c+_uqx>T3yIU z7xHJ#$FP05@UN#pJsRs_#|p2~)Ky}xQ&V2lT4bR5JT0koWoe11j7?)I%gtBZ=tn`i zgt|C(R%LFd-OtT&jCH06$9&#UFI){wuePDCAauPAsWf4(9{dqLb&J+RZ#Q`+3mXM1 z{JV9ZuZEDM|RoZI`r57{@7?+jVdXP9xr`OsT`%-KOx1 z50*BE1Ru7GM^H#AU+Ro&cjG|7S8!mvGCguwzcQO2^Z7$ z3*(`}|MOw8vMc%g;_itq9+?2Ih3)KGqos258TX0YDSWDKS3AgUdRFHU>)|AqP&tk{8YnNg3&<^V=0!{OAe}qwc;#pHwpzcP zm-M3rPP=RwvfXJ%zV*P=ASPMFQ*Pw(RH@P>(8;4r@4}z^$fS5+3Xm%0jT$So0ywVe zqNCG(RoedtYOYUB?Aq1UAliA{H&27Wty}8`G%|xDsjlW6fWJH~N}A-RZRyzMnh=v* zi#+V8@GQRD{7LPN5(ki#i}o{ufVx@8k!qn-Uli_i)*Y6AXjPCCFXMIEy2*;R8TY}v z73AA!@lKt1h5xFUxtsX!CP z4*-c}nNIg$U5DWuQq?HX1r2qgb)(BG%k*H?h>doRHg5GF#otD7=HDA?q#@V4+_0>T zPGznZu3zm3PF&++C}s*zb;k;SI(a6)k~`HsnVVT%o?AK7eI&PhYA&CjTU^Kokv?v8 zWo3D8dUYjtU3ww6l3&RzWHZaz>(aO9mRaP+{_bA>yDmMpI=`~IoV#%$x4N>NnZGW5 zWOaIeZst?DGgFKA<`!<8nb|kpH!wRplkLxDvqODtv8lS2$$RIP0BLS^ZYHw=a5xKl z6E1VbH4^y36o)kN+Ldqe+LgBY&8h2nMwZ;ZiI`G5)4sKZQD5T8|}V|I|v0jFGp-;wu&1TlZ@jTsH^xOTh2o#R!>PqdaEGc=ZIJ{P+j41b$xu> z!_Wj1@5WEz8;tubU(MfJuhRB#iq zmAjpomffx>2lp?Lex+xHe#K{yL#yB+V{$*tSqH0lgvANJ%=$~Ovmj5$;>+)thOfc_ z3b&q+kimT@2;-0s7VF{%^S|NGX#&+-NdmHzrSf+P=o*LdE*ASNv)F4hSPpgKFe96# zIK=`}+ZfLd<;@#A_)>ZG25^(F*_W)@wpSItxcf{xjnD&UC@p# zEqqU+@I`##1qtCh^umilwilR16PV@IAmLRe{EaJHL>0JJSkS?`AI<|r;U)WuFSJpru*RQ9 z`12Tkic1VV$qgnmMha#qMed+C9D#qhF+Mz|AY83QsQ zgNq@oHv}p9I$lC@8yFMb!B24;e|7-*GD6963tw;J&jJ1%!B6RNQs-xUmB#bT+c=HTEOKKbns4;QoAup63MUiq$imwCHG@mCO*i4~dX_q65eRX-uZNy-g8xV5r5nCujsZEaJ<54?co)V*qCz&{c5liHP zp?V`R`L>gdxC=XuF7#OkXnAoS3T#&A!%P(_7(h;-j=dpv!aeS zIWC2%IsW`yQdyg%>IonbP&(|tZS&#W3=}JV2aT3ixPe}L&H)m}EdG$WUPheKEaO7B z^^XmZ(+-fOlmSiFhWT>?sZ*3xbPy#(s`wiEjQ}>`rToyQm@J#&aH37PFQyL1)g*8! zATEZ5^bEpsj18|@<0V^6#U%#J)_^ShCy^46O8{^Lh`kX)ZXU;>3uxElh>L6RD-7~R zE}X88TP=C9WCDjv;7W3ykyQ95&wS^p3v!*z_i*e&aQ6XkV)>rjL4u2BUTik#amn{8 zBvstVDX@|j0 z=R8{xQVz#l7JrM=Q98F7+|{v@XHw#&8P{iMdJAq_7o3YjEPfqsC~w8>XFPkp1?R`} zUS?k9$=dju*qP?hC^$Wd$B@3rQ=%jtB2(^HuZ(O$c&rQC83RI-E9z!%RQTv!!^e${a64A?^rvbl?TO-GQ4ud(qp8E6n!Z7}^k= zW#q126!b{}$O`~O!&dR2VWQx1{YX6{6CL=_DJ0*w6L{zyCq>kC>@;ZZDsE%O86TlE zT)~25-2ID_uZm~U%Q%`JM`7uGuXVWLEx8}Jy0q{r(^4-_!74nz13Zc$%u9}iL9XC^ zA2yPA919gBk{2BYnY0DZ+Bj0`3SM50#=U?$$0?wBRWUm4M|kk&dcb*$G5V;($zRFh zkMVyU5RTR1NW6Nf33>$v#U|ve10Hf#*Aa+oIo1o8hvA-B+^!04f1#7t*Ft>bN-+!z zkaGpqr{?vslA7lo6##}iD$r5~6!H}Mjg3B7GEk=SC1lz6`$c*riGW2X(a=6FS>|#I0)K>F8~X)`U_BL&|9p9SE+#-J8sc#E_TTzDH zkGposwWVg#P;TW?NMBV*FT>PK6~4;TlXx8hEotSDF+F$CL)E}~5fs-UH<5)bZhWx=!?@%^!Q0{c2b0?C0xbU6rJR^=do)O&cmNVm6pem*}h>_}^*1De- zIW5+=9Eqcbc!0q7w*jftP15Pb-Mq<0&VvHEKq~wX2CS=VVL-tFH*_Aa!uux7b@UAh z_6#e;lm@>yp+PVYfH6S8-Xh=x$XR#=LZI{%^1q^_c};qx@Y7V`wH+p40+1L5$eEos zGGr^U18gef8{bk=UeI_AfQUxvAmHPdJk1A27rHE~*k_62N()adgxMWTEEJ=kx1nj# z1d{y{5U3)S(Gc*pqCt-i^jM7oLa8hm2}hOV0vvb84_~$bRh(bW@v_}1MEfpR#5}8* zwqSIL5?rx^i^Gi((q}?7D-=rK0;nW-Hj0O|v-GW28Mf#|p0LDj!JLXoGE7*85!yZM zTo(fO8<0}2elC5l3CeSYf+^8v8i610{HO#7$;ab5OOHd~$+cL(6~i6JhB2DL>(8}c z+TAb+SfAXU5TOGMlyp+20|OI1iyJ;}f>46gy0Y}OmgN3s4kHbcS3yKd6^s(H(sr}C z9S32x;BOoMnxHS+aSdJ~vCTBa7?2l4$26MePkW*f7cI6R1)uu1Z(|xHOuVJNr5#O| zQZ2mJ7Db=}a9b~sAwBR`NfbN zmB(?5E4{{Dzw+F0Q6{Cgp*%}xEgeh0WQAk}9Hy6!3nFM1=BIYzU3aOA#he^^BZ%J# zULe}EB``w{r36GQJxU@bt)zxhf+fe89cdb|pfY1%^h;!GI1(smMr#X6(NyVojBLgz zk&0PoT~JxMjfv!R0bOqEv|zPIfn^aD?qVj`Oul|_A5J%|#3}(6W#lDk9&c_@g-C)m zRUM66LAA0DXS)f$sL~zETBD2{s)`zL2)NYX5X8J6H@&ODwG(HeQ;UNg@i*@k=zK~? zqQ-+7)S@=3msvH+t63WnQnOYbHdBfhVa%N+j%@}qy4)voB#dTz-zzx~7kc*D=a7u% zG=AyjfUTtmi&KFXPt!=R!_9NJf1ZiT%*E4EWVf&~2A!x^JTc->3N_-UR$h=TW4iRN zV{y#HgjZR({ORrZfF71T6(iKW zA%l2W)W(6he;bXrL!z9+Vc2#^(3&TQiSR5=kwn`t%^^D1Zom_U;o1!pcy%h{c500~gPw!1#dL^vDXI5p43jPhjZ|@udrK9s?SMHE zqtHB|Da2lau9q=Fl(-yt(@GR+oOmQFrh^u&D z%&bzC;DLDv!32ILDAve4WG81_oPvb%VAA1CMVVYcmM2R$h%7JhRzYe)p08PWUUXvd zU4%s5^9n%fv(mS=n8tQqDZLz+c^_YhY>Z!7s+6gqtzZh5^7| z_Z|}ftZg1aUW;#1G zG?eQd$<0n@hG(aThjV=Co5hmG%uFVi%l7AnXNUU-W-}wX-0Z+?HjBFZ_RY@p_Vwp7 zd-rAg2ltKa8|usSP7lxY4)4nh_6-jW4fahB5A{uFho}4Y&JJfs@H*I=LrmYybnkR# zFX~3Ik$t(LeS`fY{deGLX&St*>u-5Hz0!&F@z7PGoZnD_j@) z1D)T0I)4sy&h9_6kU2Fsb7Xn(^qE_83#0jb?$q@Bnf~{ar)P!+_swKx2KIq2y)(m^0Wjz6z%(9vXJ$r*NBZ{m4rP1$r!$$My?wodvx75W+Gt&>Y1Y3i*a$wb&zM1UI?8xlCzJ2|JeM3XNIkH;c zNMGN`5JuA8ebdu}vwH`@j>EbBzW%;};ojM7Uv?xrxHp6Kz>$9Z^bG-x-jRWk{=u1< zTxNFP;LPCg-oD%{I6gByyBDbRkM!lTy_o@wlD@uyY5e5&X7*(V@RCEZVIaP*cW?+x zjWD2MrrAr8(b4_J?2Vb7-G|1fCfzEgTg1E{tC$c@i5<5rXHMlFSX{n$|6G1)K6B;} zUd?4O(-uHVk1Z}QEiTJyr7_!LrtxTQK9|Yoj2VcT?!WqGx@Oky^yvJ2dU@`ilPmf3 zaxR}+zCV}kHs)x|9Gp5imrvvWm6N&j+^MDc+$oGesUW>LE3q;%)06u@l^&a)Lt^^C z-1Ks0`Am9taXGDtZrB>r8Z(K$?xEh^?tVP_27CJyHN159er(@Bc4!u&0U{7$C7T`Y z-`AVT_RY=?4Ga&C%nl4p4`urI_Mr^nC~VSapV>)50*@WjIxe|^jhX=R{(uKPB?Ix@GEo1a_A9n9tPnR{}#VO@GYxBRgiCUXnf z(fpZ(nNMU-oWO}-x5muP=UH@W(E&Z0yKfa*CV(?w%%PZ>c&~8A78jtyJh&lg7t|el zKLpfO->tp8e=c*+!eV}9ZYKY+8^)G%nU$PH?3T>jd@dWP&;ZZ9#vF;6PrY}LmYM;; z5o2zSnH$d&;L%(rTiMn=^a1;G|M<ox`9IG z^OYx==7?c=N5nis#KMN9OY({oq?T0}tm`CBf|XYWtfBx`1`E=H{1sPF!JMI1yK9~JwqvAnxt}*z#yxq%tb$`+JSZ?&n67#6gaxRo*dhYJa=2SbMVK>5zIYvIpgsBZVQei79*tP%s26 zWbTM11}d%mt7k;DEJO94e>G;x+%J+CcM0ef)!z&=pJCufLL`wDOy~1q`7sq{KVB3d zKn50F>{W}cDheOs1{?t!85}b0md_<%9e%sf<=t|V;EW7Lo;V;QHk>HTr1*Fivg9cc zR-vOmiC{jW=NMd0d{P3qGE54WBMP0#*Fk>@yv88DCx0pf#RbGRDIXf~lQ;|(B?Z<~ zk`#6`IhP2%#IaZ$K!T5qSg_3@vnXu$+kGk_iNOk||4K%BhanRIW|Hn*3RcwiF`>=4P^Zp@}RuTfR0_ z#4BhJW@sr!&^icZ*BU|%!wFcpD%V^!7zuxf8pxke>1~7CuOdL@kw^#C#1whvtqu{I zt02<%nkx+t0tc!FbfK3dJr&|X0!ag_DZBg0kS{>=KGT{ym{Od`Ph`AWJ3s;*S`Qw z9H`>ULBR~U5wJnufXYZ>u$ssH+!WTV41x{Bw*E~BKw#KEaQq=0Ae^flma+l%@FHNY zKh#=r1WFTR1MB67MjPGo z3f}$!2ucJ(G5zl&BHb8JITm0=722^GB2ow~tqedzzU3+1kFaV12uzS9W{y;gbe{t4 zoFWaSVn->EPiK438Hp@k7CV*2L%BTg$6}BlCrQw3OG~vBmjOU~g{Wl^$DIWxCQEGe z$mSI|L&bK>H?2iGjtC!wKg3!EB1bnAHl1NRMg|N-v3v(vP7^d1k@eyZ+xL>aLGcY) zODfEX3S}?C16lo&JuoSYg1CWA+U77|5w(8eT{7|_>C(cIXn9ZyfRrf&>nn(W4N<|!Edz7UZXP|6BL_sm0>C42F(7`xVdMCu;O9AF;Ut2M)LBfaZ`q+ zgc}XGe-Ht4_%7X42?3gFi%c$N6s<$4ts>$w4qYJ!0jAE8fY~%d0hA5e6Nex-2dOc! zI`+y+l4toKZ`XkUMdH!cx|K}rK!TD0e0H`sh+~wA0)~w^L?>fFSR5)=d}tzUUQ0ZE zr14ZCF9U(-reeka2n;2wrUepy2aZG>%dr8uVFSr=%_t#`TA;C53<_Z-Btcmcp2)b6 zihmVOk766C=^$#;%zi)wP~k)>H+PGd_Sn2NaE=O#L9z9)R3=jO2zyVufUY!FTLLCd zZj;ZtV$(ntFG1c?l&1z$?nJHZr;U(`5gr5pcrPv*`lvze9K>(ksuw0vg z@TRlbkms4K5&|p{6{=bhg4{q<03aGVNHckEootne+QJS$1a=cxEm*HAjcA~Uip4XG z!>7lKQ_DpC2Z>V8A+1g##Y8vdL{+(Xnkx*&1*j4gB&by^!k>qu+6Zk8j#Qe-hXfq0 zLddrULvc*XLIIZZPmW89k1`z9f-XFXpH63o3euTL+~y%CDID3jP)I=qEs7@ZI;?E93A3^iaS7RF6anvE+s?QaaHDY*;f%5($ab3ISFca+i<- z0stA{#DD?|;6m=EJOnH9r{c5FGcsBO8>$Fz|7)OGqV8p&k(Jv9@~}j&il7heVSfZ0 zMZktP8_2h|rVArBR+6pl!G@hMs!c3zF-WRZMRG*JauoL%7aNPaFfmM9oFxTi2}DV% zXit&|Igpau@cx!4!y9b~5=GB+kYrn+3-}LT>p}v!=xfmp4AYTh?x0HrK=4^hoMwh{ zEG6(ok4SGTbfwr7-f@#ZkJ`2sr#YeSWxc^p66#HY3u>Z>t>{9GZ8tFvY9gv=$psjO z^(J5wlSNxnL>dTH6nlo|L6o#M@O?C)u> zlChh49dk zbZN=xn;th^G7Bf|4nKNz-Hpf$t>|6@26yfDwrEoI>6B-)>w3&x`fmA<(XSWxIaS-q z`l)8h%X1rm5?Hi_XAwpS42DUAVsscbpF_sx2P4iB{~&Vd!+$uj75f0+eNgxgJt0~T z=!4`ZB-Ar>-0fUjUKxDP1i`S5wWgze6iCwGTXW+^H?u>mB`+&jD`a89 zyAREtvPxyfVWGZmG&_4t(#f^+l1|V-oH}3JGHvtWgf+hJXZUgDgJ7V~6e)_ze}^eN zhhec`<$JQ(fv|gprSKWxdb6yUY__z?S2F<99@kOV>{sAh@K%Qag?Oaj{mQ@MG=Q#< z_^OPBnB75!eRCf@=L`QM^T=3g{RK~(@bmUa1C2*T8+v-o^T1J7yY(IH)aP%jZxfki*PM6JR^ zB@I#SS5)<1dWM7O0c;Z)JwgDS#3zKJim~59x(iuf1Pqt`6Cb3BVcX!4D9HYX-cV^w zRH;z_y+HgJN`i{(d5V8aD=eb}cEkt6NS~JDgU;KI2WF5yD=*@Sj!pE${NXzf7y+se zF0SOPT<%eP$_EdgQf%4$kP(PRV4Y<+i_Z?ohEa&iL?W7edu}J{7nO`e=VYMbka7xg zFjIgfrI#mQ#)tZisCr|n!c(eY%CY>m%BHwSL@QKoR6JgUn+v9^(4TTyO7uMyYHHev zW(l2RE53r0$lwkbE%4(Fk_X;y5z!Bov_zFP*$Sg?4JTC49#s}bKY7p(=m)?I)o*2s z=#vU1H_^xwVD1I*%o>=9AE%|2Xx3@j$rz|Bs9UqsXEJ#w@A8m3{I5 zAO0^;pwJXX35Gr{G!@FM5e;IA(3B6ixZoC0b&;Jis=$}PB9Vz;r{E*hwJg-344}|~ zNFbLC#RKpz3U_pIO%eh0|8im;25+A$wpD>MBz zbbS&tEXV&uN{LV>9~Y{9#f79NB_wcBi2C3*5~`9Lt!9@G*>(v{3ZY8TbkYWt#!RvbsKTSSVE=?|?4a=xasL`H7I(E8udd?eTW#riMPe(aKEWa+uT}xFNcurLX$+ zS85-;H~OBWZ!CW&6nX5F(4+(o$`=myaHG(0Di!b1MF;-UsCMw`FV)sA8ZN0+8cvg3 z;)4GQeiHmiE#Qv}2_}k!g1I9J3A!-X1TCTv46Yq}yG6Cf%GSJixNF2}ZH=>c78;vg zx)r%D>yYo;UL7498THrvNe9or(>&8LxXFC$7vZ)K1|Ab@&c5&NSU31wq51ma@0Cz34Of`;KX%MDKJ>=yGqsySo*mHIwJ}{gyz5E7(2atFFISy!a(p^t zWmyw(X%6?|*kjgP&!zjMt{wa&u0z2+FJJ3UAGc`)a9z$i{8QvOCG=`Ly9)KyPEidX zj~l$rZ!EBn-y62K%6wjZ=O_n*o*n8mr(W;6<@oJ-@30V8A?ZOm5g3(FCM1jlisazN zFxN(A?7B7WmHow z9*n;3K=#9ZR(Rna)V{bmVjgXMg%_rSU^7|tMjs!lM?)}zO9@G0aH*Z~j_6S}eI1$& zRBWJG*xJKiCox8*2&24?z8vPGV6{r&+Aa%G(R|e z9?}1hh0oe`YiddkX8X;xy4US#!rmBqB0Xpv-&O6OJuB{HScM_`y+{G?45Hk zYN-0EV`TSpCJPqs?5Xp_OXKj|CAuX?4IRGDoPDudz<#%qH~o7r?6tGJU-7chb^X_{ zg!lxLv2W>5cidfMxY{oMs&+_NaoVwfqB`9?A01{<$sk|dxU5~=81_c=du1OU=9yW)z-=@l$^v zI8n;YP(7_z_0@G9i%WY>IKZr0;~uf}*7d>zeP&O#>r9!DFzM-Oe&L>s4>`mx2YlQA zWB+DX{hon3ylGS96Nu`srPHP6=)2{KnM%{nRCIKGfX3sB2$Z_&6@UcTdl0DRWBvH_{vK|2=cI zU)|Fl9o!QMBXFTc4yb`Ru?o<|x0e7U~c22kxQUdm(ODe2or|4gw+N+`IQnei|LTc9*)N0oiZQ_@ixm+;d1ip?6ce(ecOv^-ZUo zt`Ry?-76>SWHbL7H+NJocEwV^#ZMDQUa49Xx<#x1(TZDZEH>t7R@^9xIy1^Z?P+{Q z9WA7{p7oP;ZGtau_1qbA^OzMWeO+SH*_5UMBT75J^4?SJ$Xw51+GVXOVdz>`y3To5 zdtXE6+KB9xetnw*;ji=1=HWgHeL!jIBo7<`wsOKn8kMOv*Vn3A4jwKPDAW3j@>+a zqoHZ}n)v5*Q(p-x-(cfUH!|A|wn?o(60eO-5Xj`ezY_$V)@n)jqv)j{tC#~Y3qM%-GLm{Q8#b_gPh*n~?W-N?ca#7VC*OA{LK0nAxY# zi~5wKeP;Hb>FN-4xaLpK$;UJUj$d8rVJ(>Vmh&!)64_rrX4JfeE{r7{paPWC9M5t9ky_}nyQA9BnrG!Fsh3SB+v3rvg)td4 z5gt?$SmIycC(%Nnt-e)rA|02?<1*7xj1ZPDtXo*MuvlfvE*7_mrO`ynZlqMXfwBw1 zgYlu#YfyIXttmTehE&tF0$+gVFGI*v$oa*1{#-nNmW)VNBs_ltK3Livkr`G+3Y11+r1Gs21u3|z3;+?g?Lng$DFi5DMWGZFJVJ-f#Da^AjxZOW8zK&` zSW%3c2~?5xO?X+ba(;DKwt-dUO+kXmBJH9MHH_H{+>3IrWVbCm%!;+@@AB>_?{dn7 zF9!zKX`LB(&}U6qQ_>yAK@+=`#WAdjg}GC`gNNO0JA3RE1AoJ&LGDvSE^YdpT-69$^R%aPR*q?te(tJ5!G!6r&h{pH_d7DB{oWO8)Y>kpPyCQ* zHLs-K;C{)Gehg#HBu@1FqK6Y+9h%wXZE^q8z)Sn>8aQSfA61ywU%J=Su3|x-;`xE? zoV8!JnS9;&D6Q**#^aV3hA-Xb=cIK)>&S@>8y{`Cb*Iy$KfEFxX=&yL<2S!De|NwC z07}yQEm4ybIo$G{f}^f#>Z=I-`nU)O>j%bbAKDuDx@P8hLvE*BukwsXuKieLM`J?b z3XU2v?28MkZa2Mq*|~I~dCmEi#h3nxVYt-}*I4|Qi+ZN|W%bSJ#vKpP>DwFcp6E_K zP~~>AU7vsMv#g&NzbPG2bQ8N?>b*azsd%NPzi;~mdB&HpzQ;E&S~=J&vxnV@E6bNJ z%gHhM;5*NF-A5nOyw^+L9ZcToU;NA_-arLq2wz_(C-^*7*hzp3JEemAhv(1x)rzY{4^Y7=Ey>@A zg8-6*(=|!dwlX6goK*1h^6O5xwY(vjYC@)9U-pikA1PcqZ|uyulnWKm8U*9EdXvpim!)0>v{hmt~t*wuqIQH(u4%a^S8vQkCb9>#-cF~>x9x}&nKt$S` z`374Su-4>MP1CYmzbeA#Ms{XVWxTCj zyxtdMtd=c2XDWtJTg{``Ibp_SHAHnT+nRIk{@>^7DN1sIpbn^GYtP$+-V9 zIxX+6gJ-Ew?+Y%}`yeAOiA10Z^`61K$Fdnhu?f8!aI2C?AblH~5E7!)wWVADXBCtP z3BEvEPf%&Dz|9iS6Qi_91Qo#vGULjW7bBP4inl2GinTxMy+U_Z?Vs4DF@wA&h9#FV zR}t0ez8lM42Xxg3-yUo|sx8&lmS$sTWlyz_#>sg^!mE<}n=A6K;rUnoD`u%BZUO29 zoXTEuv(%5rVx!m46r9U|q!hHBN$rjI56h*mTGD1?rCf3 zNdv8DhMS`2Ncx6yuwh9lEK8^)mXb;dg=${#eoTq5T_7$bzlYFFjY4R~)wJ97k@x5I z5(Q)lu8NF}LNjCkD}<1YjHGX*5@ShV2A2e8aHtmOKy#$oBbyvq0Z_Y8bosw>o`BcC zHS`tZJ{xnBZPK1yvkt5r+~K`&ZG8RiGk#73!afZ>yJ`ES@KgA#&Ut!sZXAAgO1S(F z`iQQ)92dhX6WqazW;SYQK%0}>YbV7y94YUS`DRBodB%7(YQ6Te#cD29+uoZGy=vZc zE70joP=n7u^l<-DZPMahCr)+`|NLm=;U2-4rpHHVoIbmFXzo+y!$)NoGdflCHmo!0 zaIPrkv*BIFxdCh0b-s7H_Pq0Gvh&hx_2H){-ZRtgP)5@VIC8|yH8y+ze(PmGySqm< zt{ro_QRB>R2!6aIPHXL7e(bsAF?O+nj!_Hp=jC~C-ZyhcLU`(K{LuyfCf_H=b~Tyz z-=ovlf#KbMw>>@ah0M_H4wUMmVAk4s7+Uqt^rp<1c4cik``wd?mhBRhtkY|Z0VAeR z3!6N~jP>q*+$J&l&y-!ep;PU78${>sF~Jzv-zou?_M7-%N_dikjAJq7fa#x&eiNr#v+o#<>8|dNFr*_kA6T{fB-FnAQt#U7L7v7(leChd)lippY5Air2 zT$-?OcdABX(*=C6@7%P>XZj?4%35N6WZ}mP2P=yj{u*F+H0aXaCk3;sSE|`_N&ob> z+RxhR`-oM~@0`(Kuby2wzsK{NPmJ%*Fc7fsP3`EEU>IFxlecgE-x2j1X<=;`f-Pythy);%fOSB@X&ZYxQDoXqd})g=f3bM}o}^l1 zq_Z!x!;}G(=b!Y8Uw;^%G&flg*8bW`Ell|5$NI5}{{3T*AALkWlCjez-eP!Tr%-b; z)!41O!91f2n))-w(($OxxTo%mQIjTyd9=L|xXZE4R`+{z)?er25xs?FUOJbaz4pmJ zf3VjmTI4A2mytdNw23_g^n_Wl`C*$c&Iy=(_}HqL%XEECpA!b}3-b0>(LZ?~HaF^( zpvN=lIi=g(B~#`AG!sr&urpGI2@#frD zCst||6|C65)Ld_DY}z8@1d7> zIJ@v>JD-Jl$1j~PztoUBp|NIQnr2muV7^Hk`t41@J-GW{)L>Ols2VHg40y}($*Oy| z+IQXC`@C`VWNzk~{Ilhn>z(#KKXLY^a2xNu(W_m55_;r)>^`|)nA4Www@>K|Tafb? ze_)%(^DUoEuePz$>-+kUb(ne2x2M(*z1?Tm<~4VUwv@XsKYg*ATVQp;`+f_{I>h6Z zdj&NAD#n=C3#M3iKiRV)YWv2!o`Z^m({7YrIX3+oF%lGj^pU*uG{HSv~1~+B-6>@x;EVT}K#XB^&MtH0r-^ zU}Jj!!Id*&_S?2yMzc zUsf^5BqR*M4P>DRh%)IY1slEzBpuU=@)&aR?=Uj+<_Y3bTDKXl_HXQ|oV>&R?5z&y zYTm%}KPUhoT2u3%;rUPS{D*k{elo?{e$)16=dP?6(W{|}_cFBp_TbZJ#(FL4;5T6H z4q}^PSO@cegQcLFa1ccc`HVO5P845{yi%TgCinHDj7M$s-p(8TCgDSEV%>7Haz%!O zKmkN)Fr%X+q3tFkhCk8hlqcs>x3UV_j?`u4Hz#N7-B8oo;&-OW9>)I9T>gtMZZK&_eO(?qV{{L&=|GxL$bu%-k%$YN1&YUUtvQa~(AqGN-3BS*u z5!wzpegf$9?~_s>>s#;8N1M5)Y_=2qPT9m~N>%)9r6NNq%HoSfa=AjyPnGbMIdZ;K z&JXDy$InuvNd$U&ye?YNF`)?cBN*tr{KH`MLy!5N6WRVBZHp&WGP{_#tFK zmr0G@7=iVtpDIWJU-%k9zlM*;toXmyTnl0pJgY!%e_R-j(1jKu01FT*wS&AAp>~jM z2t+6z@_+i_x2R56(E+$mo5}*UBwvkT+y)2p9B2b zJOMCV0;NQz07k4U)|r;&f`Qg203qn@m(O)A2J1#57V-qyO%@1ozhpxc^uP2g+_yk0 z($Nqho>OyfOp&MqFcJtE8lg|79B9S}IT`^^5#X3?CvS2LE-)M+b$05mg_w?DjJ6;H zgYFutBS_>qEg(k&57XY&(t#Xd<7YVXQ%(2$*MNrq!b%lXU)ET3r$e1(4K7#1r(siA13^Pp@o|l2Gl7ySeQ4Xsm|`F>Aowom#K0Ca2IH|+HkjLiG-GH= zR^(_~jDdPZbOF~3gL?QO$fEIlxD_lIBhwoy?p%IBjjIiEFsBRc??KYWVG484k`YM~DL;7;6G*!I-g;74{df z55rYg3B_!ckgmj{bzYH)=tOK7cv2d)S=Ouj`7&8rr-tGI^-DKQ-+Bn=;6#``+X0pv5R5g zn1Yr*V0p$YLzYWNLskxMPmk-`6^ei-jG2Z^*KjAt?pO-bu?J*Ubd!pnP;_wO7WabO z-qp;Z*dGd?*u5cD1z=n$ra&DQw5$k%@|RK!nOYG+;F@@JniazS&OkY!D1Nj<)U2$T z#zpAyb2ZlVj_!`8hb|%HXzVF2-kQ8P7=Sj~g#f4u#kf*TAxD97ohIYN5uB3eL^_7! z4BExxw-Iun!JNY;YNz93szcic?Au3&HjggHH3us70kVr7Z6wVIkfX8j|7@GX` zFpo8{1!f!c6H^qh%<$;gf*BlRFqgZQGynr%#Ur{7qd6YYb?A5`P{jgwDRv7SK5)zf zqu}-+${`M(7iwLwJddr20~%Wa%N9>#6x#j-Y7e;%=39YB2vpLJ&Oa+7D6Vf1fg?IR zc)iK>6i@;W%0uXfF)Sp5bQTYmwqhuND$8*>POX&6GgO#kxhX;rA(34|9NGtEygb{5 zCq#f3p?ZK_KrOo~8!NTc98Y809Pc*(0UEW2fwKS%Yd6C6NBWTIttcxrjn#B4UBtK>)LisMj zPvUY38>iFhvH9U^GY7B zYrw_nPk_fZbf!&6`v+lw1~HcDgo4EZ2@o4Bi6IhI17{#zgMhUTLnBa6%mk4gLvOVZ z3lUJS57;9CXdD_k3VqIjT6#1T3%yPNNS}s^p!W$d+6FWf2;&zDK45~%K*|f9pLLP} zGNow;P&9DrAahg-v|=I}XolcJBtY9?8YLhj*l00q43IDAl?*bRKm#%77D=E>#3f{d zI*@ls8?>LB2W2l(0cjJf5K@dGP&E4rq?U|Jkec$&LVBHx%O?m-ozFcC>1xhNNNv~$ zAiWBB544JP1tc8g)Ds#x-l!{~AUdE(Gy+lrt$@@X$}xN}5~?si!@;&4^aX?|2-UF? ziHD%8=BZhupE|v2E^Hdma6X3SAXCN@fXXpMRG{r#3dU<1hEN6C zLG%J!FV#Xn0K`J;w2&7AkI+sU8mpt^JSREmj)n$$CIam@4Go~zqz-D*)=MOsNFK7a zLGX+PS~21wKN_k)sa%4ghoZEQ6I+*|k3?E%1E&L{Ju1;av?bc3?`UWa)UyWKv=*o< z!w~(Xg`C*F3}duSQ%}d6x0f(Qd$rJDUMKL6qZ$Y$aR~@E7C4YV-=}hqgY~;c23gJ`G%r4fY;TU4xpbnw{P zqRCnswzVzVNJGR$%Os66`mD1@bIxT>-6O1U9(*P+SO`yxQFxQ+>E&2)OSS>xbY7w4O zwcu+6`kCet5msb>^a#p{;03ANR9JIyv}s4jnRax{X$RC|h){TrTS9p`#4(IEyS?4ccrI`%U(iop7JBq$z% z3ZQI&41tGD_z~6IcErz!#V{hCqlKgyq_cR|L?Gb1LOKdk+zVG?0x^acOw30OWCSst z=*o*GdeV`tCmrQ_(modflE)C$gejvOByZv_1|A&udcsyBj~GBx4GA;OkAw?7LtGG^ z!68UM9tR#A8++3J83Gm9UwEGl;S1DbtQH!c;mH1IC0kmcaVlr7;AF z>%!(9(kc?;_tEKXIz@11oW(#4Oy$$51FT)^(QCAYxJrq zg_)Aesf09{HyP57>}ilBiSb#Q%O*|t^NMtUuM(2NJO5bw?iD0$K| zwjG_r#uaU%D;T4BFnX}})xsuPx~Ud#s>NHNBADL@;w+Yf5MK+sYGF6XyCPrI4Q^g866m=IdMt&#f(TbfsHeYQN{YKMg+e{!q#1INELf41Et9CF3b}u3 zGlk}H$2<}8T*XL9utKhu%5y|5Tr>@H3H>lvf4NqQBn=Cpkr9Ea0=YO;o|7d}ic)2g z;X(vr(xn+WN=aI!9qDuj8%rh7uu*5Ng-g^J3R5bwv>19^P<)(Pq?Sa9#FaNSSbMs2n^b4KDq^s5ZWv-MIe6>Wb0{3r4H46&^#Rf{0-zG-L z(-q1rdajFPf8x?kXlPY4hh;S5pPLAgsKiQXHlBXpBBqOSWa>bfRHSO9YAi;}i-q8j zPnX)zo3)Qo!o(D-TPrpbf)&{XN@+%B8&Yt;I4l+#lDEM|sA46ewEl8g!MB9K9FVsm zXg!sl8)|8)R3=roq2}Tkg|wj|J`+4C4W<~1lgQKhD`ONYb+AY#ONEJtCknneZ-HAT zMYDf_sh}DJT8Rv)QdG^wD5+SfP$|;Yf*`R>K)XL3Q_@9ZiAsNB`K`D>Wdf$OxB8p2!^fFBCC}WCsDToFvh3_!XZqg7H8s#08<_&8eW57&Sxspf^wv?G>KA! zZk~T%l2Wq1;Kau5pE?3ojEJ-_g;F!eK?0T;C(e}MH3lF$GD1OwmpaH(Bub@1i9;2w zLF=?@iN-JmkwC0T=}hZ{AyQF>92`$7R-wQ3ot6R9gknL90pcXeTq!u$*9@8oDp7t- zZ*hA8?vzTP85)%~p22j0l@z44IJ}15W-SYoiQsxIolaX-4u)ERutOOgX$a&@5kR z+Q0&&uMlzIx_AR1E!4~-O#lK%mxy!diKRuPNWR9gk80O9+l>@B0D8QE*S;8I*6=zkJ?d;6iANLuy2*at-pvaVGKekdOKx>nZCh0 zK84+@uNV#+d_E$We1gznL1Ji%i~1}+N$Bh2B1vPjm>j~;60TAW2XiO_F6FG?c9F0` zJc@)HGb?0ZMX-6K6}+6`Acm!ZrKKgVW>kQyML^N8h-8}@Iugc+!!|WCft+NM47OoZ zJ3fQZA`GLnBpx47=D>q7hCQLc19dbg5=+ErM`#@~Pg)e4!3K%O@Iuk3bP7%;kZeob zQt5cYQU?)$H7cEsyTfMj5flwLY)hlk#YUyon$!|56rdKJE@lEt0UULV3Jgp4!(oRs zDljUbN!9HP2nOygoF=T04iA*VEzq=M*g8=re3nt^VGY{SFv_s>6tn?~1c07cu@zV= z8USU$NF-rtZeT!?P~#`se%OXw9)>}%B?lOwk|nOXnuizwOn{Olm&4F14x)(jXtvAd611i49B3u<@X`#z-HSu?E^^+qDHS1EGVZVPor@9Bush zld?o`pHZD*I$0j(p5h$|a(24x`g`PXMTJ$hScY1uJVKiJAfO!49MJI{Dy(r2W6 zm+j#3D}BSQ%g%IOFKR5ab zcV=DLbI#fK1gHU5Ky1Uo47QO0^ujO#Fou?3F-tbKs{!u2VG$SG0=p(jTLqU4qja#j zuxKmre)yY$zI*&IV@#32c2nQ|l;}Y{Sy|Oavnj z2W*0F0|tR)I>Hbz9O3%K5y2}_#Af1?sty5XPW-?dPXfi09TJtIY}lB$EHZRtQ4zq0 zjgOEmfjYOw{%>q`;C&C=Mhl`t@*PaAduj|YW_E=0)C)O#-}%!Dn5j3SS2NC@bbo( zK>D5nABqyV!+%0g3SP@%IUWL`z|&dmDfIUAbN5Yk_n{;bcMoqrU&>dM>fz~==HcP# z?jcF{@%C~TLY*(vIUwV0#rq*9lb7axAgyYr;E{A&cTDoQ8&8 z2iaq`ieourhTOQHW1c@Y_S)LZmpZ+a%-a3Kt)26)?@RPFEM1m#G%wo@R7b+>_2Ur{ z6@$mT2!6~U_`%F;ez5DnR|BXk{K|k<)`o_8=+9wrLHoqUg~SaAf7kdj$|iL6Jzqgd zqP-l;a7%H6wNnavWVOmokvhVyWkkQVi*{>s7l5hi<&CuM zuXvQ+ezpf0Uz_4fVgKhKf;I?zKvVi<*XfyqsBhpgUmy4l8jest1lQ&#pNZej4n%Qq z?=ujEqF5+Jz?W9h07pO?rupg$?Pfmvgs0gql8KhYnLr8RA}k;9y#xJVk)*cVoP|Jv z0I4FR1UXW8-wan8u(L^r9S?rGKz;lc7!Cq}RRO*2?gw*hU|z=I7j#ks7v3Rdd_&S^ znumgZYyNqnRBQu~Yz1|Lp|vddCxO~(Xa%7tkR%3q3V;-#jT+uc2LVO~c_82lfKyCs zs)kxh;1B@}w=7V%AG~L3mYGfKT>w@R(ei=(4cUBJ10~9aws24JPEWJHOQZE`woC}! z0@h0kyscc{lKIc;>kl`yM2pP^(*04jXn^0%3y=?OHvw{o9H&CSQV4=HJZZ=l>f=$< z*g_6HkhSUYf83S=kS&9M*jWY8MnBLkgO-j*EE`4vTOtE)t<}J@8iK%|+xjcp3V=J1 zmdE-6hFXH@Dl;e1NeMEM-RG$=@OU;KEUNg`-sLrd|~w^=vkuzdKT1^!N~Dp z)?*vDdK%UNdza=%tN;JWzsCXrns0cT;Cs3MfBx@TpcL;Y;cE}7+%AjFb*ku7@kWo} zkX7Y&!vHmeBnV-9N{`JQUeSk;FqkC4LR1o)=gcOUM7a-1Fsq`eew0}oOnZvUAW#)^ z8Ci-b;a7E;{Jg1?0-DARsUK7_{6_A>l^r;Bg+H&GGjQhPHIG)MzK@+>RjxOlDrYmO za>j2}43Z#8V-HxWV;2T2jTtyUrxFhl5sSrYl_hjRrDCBj#bq-Rm~3M*Ax>ya8Dc=k zn3pJ0!7GmpwL&g5p!6}4W6X(_q-81OX+kT?5@UGA-#*C*9VrJ)XBb;DPK(!Sekcj)C6nlSVs=kG(Ni;0E_8)g#}pm^IhG z;kye-3%re{HB33SY3VwhHyg7UeXsIf3~DsCH!UzbX>A?ydBcLH2B#~B_xD%6DjIy> zDE#W&BDF!xB>gF6Yop$IrinW}d$@Ssk51J#4-%%#EIO8W=IGfMmN7q`Fp{v>eI!c- zjaQC7keLVamu`0Utcl31DJ!)9oIgu#plo33S?}37y=>j0x%18+5?dbNPoB1zENk~c zI(P37k#yMIx2JCSc$bX2=5e$17730@{7_DmgGGudYZ&X!_DplCLyI@}(;?V8;Oi_F zhrysaV+MU@2d2r5&*!&;S^^pU6C zk71oJ|Iy6H$97BBs^dB2Y)!M)xLGQqD!eMRA~;j6&hGB!mY0_&$ZC1-Ay#C$Wsj69 zvQ=(kr3@d;z>~p`!G*C0r{Khu@^Phn1wf}n&HW|_W&#yQ4QPfbvLf^!HXu>LiSh57 zP*d%&y^IOsGn0h<^_LTxQBD$QR%6J6@Ag!hmAed_>iEp{?ey|x-T~{`Rax5#tN7kt z9}-_L9x#09rm#xg0^iq1)TgfQ=`zD%l9}0~;F&eOCZ#=({VwbN`InBj7O|hqzEH>5 z9QS+jPn&JFEy{FH&Up5!{*LXUd2A!p6t`x6=#ufd?;5S~3sdsp`7%wBDOEjRAT;QjYF7p_`b?>+tE=1*52RHyD>Zk$&B$hrTs9}7a_JM)MO zrl-d12EX>rA7Hn{*~j5b{94_owni@3*7@Eye-ra**6mFF@0pHE;sf3fzrWF{Xv?|ZAwH?%~RH1Q*O=OtcAuK zmo8aRqul>t_a;%N8@pF-3HPsC@MQ7UN!Q)2{2!bvHBMSOZ%WfD1Ks3@FO@bG;~FA2 zPaRP=G;y$0PO)^?MzHy4F%3%?M>_PE1V zd6vKIzig9l?%~|{rR+I(47zWWbpKGk_5s7fscvyi^nAT7`x-ONW9BShSJ>O~e&rhX zd*{=MJm!(jo&I=jCr((AdiBP>`{!$n^EW0Pt+=_HwNm0zc_KmPWbY0h9=)7@ z`>=<1H0#s-ho5#l(Bn@*V|8v$dvH>|^};@bH4z1Fk7ms9*V|e`m2(QIa#pHl8Q_WZ zr=6o0XvSC0LX}niw}e*+;dn|ijJvhY;8+FxNmDTRw=^AIxTz)lz#Mp`1(!$#tqXyW z@}Yd)DK9_D4=)7XG$^Dn_%C0m%E>=32_#+;;9DF#=hig7R~lFfe!49GvD_fabH|IV zgKU-tb#fZ{Xh_VD+u6Pr%!nN&2isZQ@EKWWbXm92_rQGihNFHL2@_$^`3ZUjY2Ovk z8s0^=eo4flN14OU-C7v8k>_%7{gu_u>k7H+f0;A*_;3r>qx9Tg-D4e$+#asci8-?= zWLxs(Ljp$5n#`9cvR-yis_yVAY{zZiw6*dyul$u&;`XlR17^Oxdy}JgF{xlhM7M`} zd#a4{_RQ+_?89B>AqLh_109zYDsLNg-xe|K^3$im)5l&Jy>WC!rz`%olaqg)(0`o8 zi)y#Q_onr5UFR|A@HYQX?&mi#dev@RKf|~9+~QJ~*UCZ(}HcJJg_-|gCGqqa{mcieiitD~>|Jior)XU5ddSZ8ThvpW5W$a+MB zW5nW=$~*SS=WQbWV-Iaf?A?XYc(!n;+eN#(*~#q(gyn5|iyC&VCCgK;?K9o9yVHe) z$cKK_?H}1i>@wdTGA8ui{)5WG+scPsZtV@5fB4w}%fxGAr#y*@pla59f9uK6rR$q+ zY)HSee{R|6rOrUv-* z-`_AkWWphCzrz<+1iPtczmdPq=MQo*P98pcfq#FGaaT7~n%!Iy{c6sJU13$SdFO6l zs+_Fbyd*w_CGinuz~*XqdZq*uHe;yG8u-n{sAEe7_yDY(6%TG$a^UP1i~=cL9PZmQ zv6u>~eM{_TQ4ClDzF6jzuH8xDwBVmjSkVoSYmNxd+D-7JhTt03OjwDi{#8*`krffz zRR~tAKQD9i8V7%fh`({5S0b3VFl%A5wk&ojlt+rYJH6NqYhK)7v5Tc*sOV-G7Q3Lo zTkPD#%`4sC$X8QkOR@5NX4zb-Y!+2Ey~RiZ230ne>fPKNNp$e|yXNrXou&}0+_II@ zERnK6oUIaMsHRD3 zc#pl|tABVYy(Zpk>$PHTvSi$}qDf&f376Z=7<0}d((+}`ph>ay8$OP_>(3E%Tlk^_3R9B0V+E-oQ-gN2Cm(JTb zctWOJQL{~bFo4BgNjN$Bm-jY~O4r@DDe85@)DlaDX;ElR?)?BK$qxsUV^b>*b{2cj zt+;jd<=Yn>suy%^IJIJK{qM=*z`H{^i@x(`=dsVSYjdnk_J~AV8n4%NV(z&Wctqdv z_nQ*8Cv*R(PMUKWU8)Y-J^1C^72L=^2J=g;>ruDEwF_7D4$ZUjsynxA+0w#7+xLBD zTd(;LZddwx$=kgnw?)pq^IJ~7#goTA^9#%)KVRBpmzncm{rjd#zv-4fmiAcRL_KBp z`~KFgoGkJ5US}5%jPAd;G|{#?-_YHr@L3?Qw)clsCzmJhudZB}IBH;YpU{0l#}?)e z<(2js`LST>{@qzwBaX$YjP(j*P6^9Rhf?LHiEsp@%4Ywo7p}iN1-3buR+X)zAOLC4 zge22eq5s<(p|R_;|MrAB|gORTmiHUFzQ-FDi+;fz@huba-D2^nzX zS%SfG0e|k$vgnm-e5)^2jBk29eAez4PgngRyRgME_dfCvd_PwD_VelRT~n67{rQte z$&*=+3_8}$?LT)9Z?)h3n!*zaO$}-t7+o3q&1i?0gqoO*5ZzwxRfRK{rYmJj|#p zth?Y2+2P^w_47@Nr|ZwS)|4l_>Ubf4$gC;G&bR*f)UZ7HGdHPg!#RuD*PnVs{yu)y zh6Q~N^gC%el6@q1dH0m>X7rKRmL<*~@`68hK$nZ-b3OZXKjD>GGwu3S8E2;WZ_?E%ydl3@J#exjThz}9W{0t2|B zC?^8Iwmo4<^966#iXJzZ#~{9OLGknOse5z@^^sAB&UCPix62&&NHwXp!~Q-66Q&(} zqO5yPvWJ!HxBqb8+}NFh9ipcY-ao=w%}?Ox?K6a8mXgG)sPpt``S1Lx1q@tGo-M8%Jfi{ppJMR)fI3h{LH4DzL1z5Rkcg!Ysj z=3^LJw(fG{;j220>6NO%QFD`_WwNMNGuNoil?LTkq z+urreB`+=x69#TSGxlnJyyF)6kk3hy<6Ax-S$RB!SQ&F?(!R$B(Ue8KJRB@PEWO!b zOXlI)(|z6EguWo>^g9%O?{M76xubLz?ihF}GwaOS)93x`XP&%2c#-1M!MEH{L&MVP zM8%CyT%Qx7EX7&ZN7PHb3H z#Fi29>F@f)ZZ*HX;X#*$tPNB7wMX*=+id2&DVs4_wpVa=`Kly8-8fMVBLo!P0pmVcV=$hR=zi7*s;M& z#OfQ0y0zy5*Z05u{CV@nwi8&&tj#v|C+jPZJ5RJ)bbFp&Oo-(3o2+3spM9|#y(sRU zG*LM1W$@@RVVw?pWDXghl|T*D>_+=jaP3kB*Dfu0BLCcO6ucE?7dR@ucA@BN7a_e9 z9n!p$gPkb8Snb;k!%o!yua*&fuhY5{{R`P&-?td!9@sP6QM~3R7&>1~U$`tJki)M( zEMEQ0d-IMP&wA+m#NRievQfazwTyImx9_py(E$5Pg(-cxKRtajbAad5_uib9?agH~ z{eO$kpEZ&FdimV+cT_=Nb8r2)I~V&TbG@fLh`*Ha_y|foXji$l?A-VJudf@s`@sY6 zt+_P^qm#!@np3-f-*ElsYty#vU-+P6$Bp$d!vn|0+fg--14c~l;y@)mUu-2a^hwaW zcRV_zqw#{Mv4)Z#!m@O`>6H`=f&v0UQ{*xx-xv$@sNN0^y#~WN+!9(TaKRg|i8R?R8_~3off!uBW>CQtN zP2;*Uh1P+cEM|8;%{BghjEEXsONF$5KD=^Vd~my8qPF|$Yzn$DbL}M+mFQ6ZL#ST; z%N zBzaheMFgwAZB%oldH|8?&fgxvzZshTOOD_d{}^~;>aWX^QZvu?nl)|cFQ*rnANtP* zy_O@gHt2b~x_kUr1--wJ4M*=P9OvM(yw6NH#FWjT%BFsC`Yxk-HOD_VeGC6G#KuHM zXpY{&F>!8bns1T+iL-YMypC@@d*jbd{;9J!=RxHFy*qWc=k+cd#pt#8hiV(err%bc zd@bB_hIME4r}v3j9jQ$R4yPX*aqIQN#{At!RxPo=`)=3Mk@1N-&I8Irj6VDvH~HkN z;YJg4PX+`8F1(&(_BrX@Ff*@tT?R&~p9L8lUB9=auH=PJ(U9JjFXk8YogRzU`?fcG z?N(4Gxw3l8$a_al|8cw!DI%$mF19_-JY}qyGj(vcU0Xjg8?u+W_wD*IVZGa@t@pq8 z*qNHL;96q9qvxmRr%#*wc|>Z-jl+F)r#sy7d(yG*DDmRaHdzN3{jjX(`;wwLBc|oA z%sSVw=w0U~-^;UJ)ve&osaU>yiN!i*(Ae!;N*CJt^0(OEPkZv_)!t(9VEguk0>8xE zWuty%Pi#M-!wyl6;fV#8^}`pG9Up+0qN^KXtQ5PSH=tV& zg`DLxyT6fy=l}Y4Ri8C)ZYqmKBNch8%TCmA*ZS>zQg`BV`DW#*&abwQC#*_8beiB4 z@3(R2)uVa|^9#RI_0V}R&-L+?+a3a=Zm;*b#do!Nb98O=RmbhMtFO)3SQE7D*qM%j zQMW7JIW73XFr7NTQ|%skOFa7Z{E2Rzj@Yapyk*_>ke+j6M*UKK?r_3g>CMFbXKzyb zKAwCK^+9iMa{ot*tvdR;?K(4vC3vP+72|dF8MmwD#ZARtRysSbdS5%AGWDjqGQz03 zoIDLzvhaQt&fagU|Mwjymf7*3YaBMqS)V~#Fig?&kMBAQN5oxkoM_Z*#+9}Hylg7A z3hu_rN|zV^i`T0*Z>CuAN3bk(Cm{ADWozEP_53IF_3$3jg7AU^21ZbM5L`5O3~<cRg&iWYz`Q+be(q``XHn~A#iy=%;4RoI*DILw_IA_(<@oUqjYdJ z2B(@|-CQOrs@iT%KxIZ*8Jge8B0J{w)RKq!T@SsTEOuecSUmOINmW^9GGp_wGptSR zV!Qo%H)DFZ&dtd`I*byHTDg4goQm9>kE>GiYx4|NOvyigdv{H$?gXn|p9Q@OBHvlD z$Q66v_*6YFke%PwklOh0@$~V(wF}&0S9NmP)HkcwNrRk62lqa==ECd`CLNx1X%v<- zU@OJo(jGnYUpu0jyQFU%UEAIzl@om_i3|N@it@6S{j^W*%xcbWS< zyGs)5&TbR6%kzDY4#zh!_ZcUtDyg!0{{yDNw+#oEWj3egPwf4<(6L}kp_jP5b(V|j z9;biP!R=9-y|?^W)H$-PL&CiPzUWG~3T{{+54^fdu=hnqVqwgPkJVQv&v%KCUI^KA zY z$*r#%eTbj5XPan0dN9d|S-0`xjE4h6%T}iBzP_^Cgv;;FC9G`U^~vwKS0@iSs=H+F zrKQn)LBQM-ACpg+nZ%ysrMKT#_s6H9pc q=tIUISFC?GdQnr?uWa1u;+TLf>MK+2w)Fe-OP|k03G^WXp??E~Eq}KF literal 0 HcmV?d00001 diff --git a/swaggerci/eventgrid/generated/modules/Az.Accounts/2.7.5/AzSharedAlcAssemblies/Microsoft.Identity.Client.Extensions.Msal.dll b/swaggerci/eventgrid/generated/modules/Az.Accounts/2.7.5/AzSharedAlcAssemblies/Microsoft.Identity.Client.Extensions.Msal.dll new file mode 100644 index 0000000000000000000000000000000000000000..81b736cc09da9f13d5f2314d04dd7f95eafb8838 GIT binary patch literal 62472 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 O>@t+|;KF9On)n~SqjfR> literal 0 HcmV?d00001 diff --git a/swaggerci/eventgrid/generated/modules/Az.Accounts/2.7.5/AzSharedAlcAssemblies/Microsoft.Identity.Client.dll b/swaggerci/eventgrid/generated/modules/Az.Accounts/2.7.5/AzSharedAlcAssemblies/Microsoft.Identity.Client.dll new file mode 100644 index 0000000000000000000000000000000000000000..f656e5e423608e46dbe3de1e557b6e2fc95158d4 GIT binary patch literal 1363896 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

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

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

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

O 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 v!Urt2uavGua+nuE`nZ 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 WEh9E(pL;jZjM1dJ8d+Cj*na@ktwkIF literal 0 HcmV?d00001 diff --git a/swaggerci/eventgrid/generated/modules/Az.Accounts/2.7.5/Microsoft.ApplicationInsights.dll b/swaggerci/eventgrid/generated/modules/Az.Accounts/2.7.5/Microsoft.ApplicationInsights.dll new file mode 100644 index 0000000000000000000000000000000000000000..92d06762d6a5f3fac94ad52f43ceb76bd5cf388f GIT binary patch literal 336464 zcmd3P378yJ)pku)byauu%p^TC>7GnTW|A;N(aU5dWPvQ~1PB3Hk^lk19w9eW6Skfn zBI1TgL_}6WL~udH4Fz$*6%_>$6SJK3Ci(|NEX>)m_~)VfnuQf1ZDyr0%`v zo_o%@=Wge&eZ;z}49hSK8~=CiG>m)U@^86(U;VQc(e1tWwHtS*9-4k{%i#}AKj!Rn z%6*#ybyjfdd3~pyx@nWTpl`z&eZiJZedlcIJK)GS^_{0qKVz`1&D%XBz4}1IIK0I& zZf!sO!HC<_#*Dsn%WT8=8>DhHbib~IVf4Y@2iGtrir>_76F~Xp?-axXe#=P-Iiws6&Nx>Ak+M=|>cIH- z7`*)$9siq2z2c9unMT6+`o~&~pPpkGDS_5M*K{O|t@Yq8ebdZJ-Y~p8+(PIUL$^ft zYSSNtYg$#JnRb;}W}-?Yv)!%=5~z31wv0E!Z840DwPliFO!1uJ$^I;&2?s~M3bn*5 z9_-H%IB7Y;SIs4SmOoG6B<@uBRr3kY`FjbR%$y3pY5_j^Y+m?o2y@qG-u~V#eS02z z>>cZ3jMd&iT@!-qd=+X(4P0ld7RA7Iu4*yCP(kNx*Km+Y6j!DzfM;{h_I6~uKdZCp zbr>Bjqmz1|0CyX|rLOboq&r%|uszUKNRMU-R7*hhw*H*feQSr=VU13jf{4^Mevy<; zTZa{f!=wa;NxMx^Q>WcwcO*t9?S`04VjG=O_Ix^>iH<}B36m2XCZBAIHandTr^6kc zG?mHSZFG>FPN&=9MvyQ$!8*CW55#B9**A2ThVHV^T~4=NgNTM2L@d-GBC!SuQmy`= zNu&Nu1CLn!VM0f^G}a$daw_~b)*q5~D*QIqAF^^P{ElCLj=1UCfrk1+#^cl<;W)Pb z2*a`UNBAuUrLpyAM??J~xBp@Np+x_~`a`Mz7xjm^`(M?ctA|_BOO`yp3xmhjHu#76 zDLSTF0ooGK?HsL?-D$>D=oY=|t&^8SeE-^v&tZL{`JQm{ zMvIRG`0MI266oQ;0RG8FA`3tI17q4W!zFB*?lbe9vmNOxFeGL)$O?W9R{kfEQ#;sM z^QspCNcbp!2OVt=?9fcQ=_IP1bj*qXeS97D0@1YhxA2yqz^BWs5K;Y*2&4E^p-tNs z!lk0wRfUYUncF@cIq%PAw_ih%E5s=uiY(twcoliF^E%D;8-U^) z7I@OGMwt5>GogL}U~a8B>Y(~L<&_|mP!GYIP(Q-gDIW%i=G>);qpx7L^2edeqeT5B zdmvj#_=f{=4fJIiQ=va75&B|YE%hgUb89h(5Z_Tp029TB{=zm;mK?J~T%A|ftVlLY zAB>#xDxmj|$*zJ0;nhg4Mqt3n=Pj*}qjLFGrj^Tyj{39qZTt3^mat{jE(G{+#V&r5g1c;fzjX7?u1tOLjAp|_H>OL>Vso! zLW_hQlt~or#Ez0zFVC>GNGscM&fuGZ>87zc7mnMB9p`LgZNJSw3KhXW8lT|ySbQvT zGoJq@AeWE9=hAF?;pdT+gnMIavQ!NI00P}1g8+u@W{mP~bMo@BOqo>2!6_|xeQAO| z5R36m`o|-6@%5%Ys4=xPXeeOW0Xui@v`g)}l_k^~&@8k@p|uFHCtXKQX$!s+;6ppH zx{k``7wBeVDfFUFJv50SZ5N`OF+8@@4s^?~KAirdi>593v>VZ~8{>;9M3X>{CZ4o) zH0l~o!bdL=CxSTk2k0@Ha2g49&Q3JqwA=o)CQ8Ja9H$fFG*Tizrx~w3;rBLC(|EAg z>TSlZ{*N9J8kR|zuoh9Z{k4w z{$0@z@f$f%rq)+W)1LN0ag6?3#U5!Y*LJr(*`8|m!ZeMXsM|H@^Eh5w!B#eHS{9aA z0l^2NaMmkqvYc=X&&^sNd=W9hv39J7DkFd%3P{a;RPb>`MO|f$N;8&!B1%AagrMO$ z=G+~Ywhm^k34R6&K`9XyXf|G$#>ob`fNEB26jP=YhMrL--shUYQnA{A!{|8K9 zlO&A$QT}P@xXZH^VWcpu9p`NC;|v9z{#Jzb2th09_fUVU<=)tqdShciO84Ts2e&wN zHH{rFWTbK2WU71;^nE*JkRBWYExQOkc-%~Mnk_<1)MP53A1uSZFV zNt0GNmf;L%TVR5!0eJJ5n<@df*czr;$u#Eh$xIKU(a8rPLejMSF_F_u<&g^QMYiQu z)_WvcubI>nH_D>@-2gGm||tD^0Szrcy@7;tW_q@=nGIS>;osi(ki*-X8@)AJ`gE{RW5+YDHa-PD@`%vKPC1Lys){uG)h;y zQ~q=vi#W7@_!m)WcQ_2iu%zTa*--MdhcGuYGNRkiDk)zD9IxFi=Gxt`hPAc3j=F>V zSj_E7L?y#Y*4CbM)JGT<<{m{H7QlNNc#W7oOlGGzh-wF2W57EbMXd(#39EY&4ct=O zQ3TSSE!7|O7bVEp0U2XW$8-F1QBLTLbo2Ww+KQ)XIw}vM)ZG+}149rQvuvzSJptvQ z_jih(qgJB4x<^~m?&8&mx3-KRt~FUaJ*39Qtf#r{YBPv&sl`8!{Pv4s)T1^rYLBEk z0%U{rs8~t?QkoQl1eX%L8DO1@3MLqKaY~q_UN8wYLa(mP(l=Dl8`tsr>Ui|V@T5a& zOO4e^o2IK7rPQ8CmhDUwPBp@u`~!K-B-Htk%u>%GFtWVUksi+v01K{w++$Hy8FA8R zGLC-%@uYh^9^K;zCUdzpomjz)B~x2~Gxyz=Iurc4Y&jjXw~QP1<(3|J&Z_5bI=t%R zs1Z6t^UTUjbdCL`>;M*pAdx?a%F*AMsuG+@btXgYF{;e?J4!^fFf|L1JRcKOMAswQYc zr(K5?<2Z5+9Fa(r(f%UN>uZ!X7->bK4JPJbnq_lDjZV8=eyUFC%sQno0u+SSMiaBI zkk*)}7`669`RO{nO>uf*6zB-Wz{ISpMzJX}59Nk>r8mq_-b_T^qtPiofMQYq05?0K z67c8q=bx-%$R#B~7-(EoEZSmijy5V*rKD$x&0;M4qXoT<%oJPbZ(}j5?PhRIU(&0mLcw zjY~i$QqS&^!LMr!W+pW4DdQ4KsONxb>Nww_T4?8g8alyRM5a6hK|IH*R^d8kb(l_t z-$wmZ7%xfzJYUzFQ;(?UzIqv{I2Af|O~59rZe@g!k0<2777zcWmbZy9u#eT-i0E%> z7|6A7i^;)KQ!n7-bXDI%hNBKDTTJKurKKRGv&wvRmEVeQzkfQ?RIh+nCmTbUa)m`w zQwP`Fozf}gmk`${E!M7)0*d`^Wq$=}vkZLQM8Sf{y? zohH_rh)BB)?TR)~ra4VISY0bX%=6USkf7xFZ-?V`rMp`Fcfi*@Z@H!32~TmMc7qK_ z)T7=-K!fDs^VG`-; zVXEyw?4CE|nhLv9+*I=4!=%#cB&93W*Hl*ljJ-+!y>R`LAiw%6KCY^_!c$CjH6ppI zxd+Col>a`2iYwiS0wWtKuw54R1aIn4c*0MOOXjuYrWB4aGu1VWdp|y%c4202YM8N28r$hz``-eVd=*@+S8aCSx6c{R!y z!!h+XjXxSIX18GKO8=oPE3VZ3DOkt+DqxdYN2SopH$WbAL%Lesh=6|+KHO!dQlXy@ zAgFG}XCNkZYhkyfXrs+R8Bqmr&@Mf_1(wvgeqzK+7M*02=bAQK3sZIKPTPUKD#>k~ z{1!3_lm9B793p;@^l!ySY-XL$rG|edm*<$zA!E-ww4e6IbijI;PnnBzh518BT1BqH z`7$QD0|?}S$F{p4T&$61WLh4fn?uC+Z$rvCd+0z1>`|ukKMWu?-i54xI|2ii>?wjE z`4>SCMUg4rfhf;R7dlaUKLWq{C_b+G7`|z@^kQ%&+NI-v96|IUwyZgz!DND~0r$kT zMc(gZ!X@~aKH8eLWc7Ue0Px{oveZ=vD^O~f&+4vz*e7!pZQK2FM;n= z>i0H`{v1dT;J)nLh-aaE0WO>`YUdv9+^d~0!O0@>KDgyCqytrm=2A} zE6(p|c^xTpVM?DI3$E)UD^42LFH0utb}3XLr+OeV;Z*o7c3>3!F!H7?m#-n!09T99 z2Zi%((?E+era=cLb>yHo#UulNTURaj?*~4#;(r}374i+ZI@Z{0`TR_W)HC3|yv+Zm zpt5|~zn=;hZ6_nD#O#&)93kU>3y8W<{BOgX8_b3kM;A^`eFxBik$%%hQ+EnqP0LW} z`rpPd8Jl)l10%+WA@vCj#4rvpawizp?x=}kiAzGcGV=f#MQ~oX!o};6OcM<(&9sTxQM4yLfmc|Ym zz>qN^{Rd?<%V-B)bq=d~`F50FbsoLLv+>2kiT^#s#@5rZY}gMP)wx7c-$!KrAhW_y z(Y1Uu3K$r&7D-jLqFk&}RF1Fg%v(O%ii7n?^&nHS{5}CK&S0IWP=rp*q1_B7vi=W% zU{)wg1^aY%>=aew%!9d4ShLAY~{X|dwU4fX=XY{W@&b}@ZEpAx#EcXF+b}-328AlMtBh9VZ~;J}N;p!t9N9VG zi3BeKvu?TD?nIqz0JCBx$AVd*Qe(laNEy2hH!}&#e^j{O?8ij*t7+pSpVde9reOTQ zq=juXEJv;fp%vE)FOB7bcv+Rj(+JyHWif>?)=&ObS?bL&7U78J7SYcrSpo`X||5G@n z6P_El_K*ks_|TgJNJA1E-)t5^o5mb`9j>1?YDgSK8qIuja8 z=S1sVGt_>av8WkQkU}U>tl+djVFJlVptYbAYgIU+5Uq_+3)p9u zZc4XoYENgsUQt5s)S!-{Pb@UIslH4${*-R@(RnlF>$nM093d<&Ux7+zYt1zrQz=z@N4WS)rSb*iysjh>qvZI&j=R$bt< zMT?I4UycJb^%1F_I&$+dsQjH+_QWg(=JfI4SB#@#1c;xQV&7&O%aMQnnbEMgb8f!o zzif7wsfRh!%-2T7e1v*g&9_t5l1rF&zvtJIAoJ%$eI?`ogV$f8aA;n?F5x zYrC;|f+6!o{~5#vS5AOrC&CvZORw!Y;P^C+g%t~?2mb`htEO?*`p<$w#Ahke^k!Z? z4GW((`vi=Y1J=m8^SPMhG8MM z6jSCMbT1^}vmpXqhCde~&=rKwhX{0u00p-cUGomQ2wnpR?Q(CY4@YRVK4EzM8d@lt zZaz4r1G`Mp=b17e58lz)pyuEo2%Gg?r{K}9hWH1e?=OHDoG)tU9_?^)3gDOEWV7(d z?DRQ=^3T4GBtZEurff(kZEy=*{%z)|qSa3qlV<)|&kKcnBbS4L%7RaA#l4 z(Wxl)3Y~6mhR2B898z(wS>uUqXYM#>?n}}K5ug1X|IA?dB$Nc|onr;7YF@KTb{b8k zcQ)&rntDGI%Vc^hv%ZTd8<@pboC)F42z?>~^x5vwuNozh4SjrvDLcn{ijwf(f}IM_ zfwAZeFOkj=%ZK^>f)gnT_XxKVDs9I!E~LQt3+IyiASPPg*%V1`2RkBfBDgj3Vx?yp zvE}9iPk66jXlP%2^;V`iv{d|kC}y+#JnBq!KcbX>L+}3Z@^}Yn&|Mz7qypJEj=^3q z2ARhS#cG(BkV|WP3Xwz_JqD$WOphLeNCP%>IJar0VO2>aP6H&yr9nAnjV}jt_`jBe zL|#h{Xo$+ArbKgWH?$RC<)Xj-E~{FH!Fj1yoZ&oznlVMraOh6@w*cQkSbD@Au+t-^ zo##NN+toy4YDu>%o_(Nw1j{UA;v_RWzUqPC8rF#1tUZH=QT)Nn_|(qQHJ^VgzX)!Z zqIMjFly-JjI>3?l&E?+_iX(iOPLQNy-=a_0NeIp8g+%ZP;7O}NWjdH_P5)=eSoHw- zSvFH3-%D`k{9lw0J6_+Rc*kn-vT2)#-(U$XPb%=j!d7x`)u^ zp(^nJaA*V&kM1`nh2?AYdj5a2*2tX%DUoZaWA-gMxO1UntJq;}nT)=H#v>MfFmHCE zyJ}F9foYt!Q%!502@9U{Q5dBBE`KZHb^iKGtpgqA=p@)>Q<4RD$2qc^=2@bO@gvhP zcK--9L*;ZvTM&L(hv|&AoLn3*{W83k9{!LMuh?mFIS2yq%L^Bt7|X&(a}y~gTuf>R zF|ut1TtA}Y72oQ@J&5sahF5nWK)SD$?dax24;OWSWcke+EO1%>fk#oQOdo z(1y;zxh}^UN{w6N|U(C>Fc@9g+hFFFqvVuTc^(>6K7AIE8TG**N}9JY@}oOV~RVzSVtX~tO2!9O>g_J;W-d*uh z3m@xJyD_UpR3W-3rV{G!sJPkLu$A0IR=t8iB7){LG}j32*3j-o=wuC@+z9Q_(4Iyp zMrd-I(g@v6Lw9S0PSwzNDmSrVMlU2mGb zo*tjEGW7z$Xrvl(%%}~0>$ABmJ$7|0KDsQw{LyuWL&rXP zTMi`$daQo(rzyA=sn-Ni?~q?HapBbt^Y(kuVPiAVJg_nl*(}E+|}3;+^7)R5c8& zIVb7V*8?wF<7-M?Uv~>0h+%1x{kU${T#oumm2j|fvnFZ=Jv~s6=4#D3H@F_bh+jl0 zS*v3;CD>5PVjI&p)7jjuk4+?{T@t2`X5=q{Q&ITdRu9V$kv-Shghf3k;q>( zd3_Xg^jyNKo(y!e{9*8}oPitLTZkS-JEao*eRO8C&RgMC!I_W|4mD7P*QN_*== z90@tG(^}|iI{P9gI>MR7bMZx3%XT=gcG9McL+k!1X=`~pjJ~;g&Ty?&zpI@H{#MhF zNC%s#oPiQBgUHEwSk@_9^1e4@(|hzfBUwiuApkGSZ($nh$u{;tzqpY7tSnkt{+khn z#dJki0naP6WW6YIV;D&{icCB18eBVV$tSmCuxM$^VneuibVy(ZDiIE87qM50!opqs zj8p72D=b{>P`tLhuPo3HOt=E8NLO zL}_M&o#PstWQ2*x)-=9lEc&LK=$0AYVYjGLF`IDuqwlsW44(l`EI?bx3A|r6qygiv@v?&!~50LX?;A zghlwm28MLK4HoOP-29ob3aKT)nxV(cL^(?{us$4}nO94}q;OO#;W#DE-4M}%r9lr{ zL2hQ)^6l(g$HtYix#?ggV0r~2)L0wRgI7Dr$e1)4I)h;n&SyiCWQA1~tS;y%&2`>e+>0G1X%rqPBUt(`q>H=ilb2QJac&xHn_6%CV2A$cecIK z%Aji?MmH28gBK5KwK*69My(`;b3HP~D>|HcW7FYGr+Owzs@<+%dgT=9G{E4>W@PmY z2D++eY3FS1oTHtMa8NOIKeEiY`p3GTH;v<4Hh!a}6-CW4h%7kvuu{lA&t-t`gSyn^ znH7>RPBi^#sF|$NQ{WbsnOSp)to+^>*vy$jWZVesHisxi1JJ=5q{0aXFE_6PS1)q# z`Q7-a$@t`*au1wKb-Q~tS#}#=7J|pfBEV)@2z-6A;0og1?4ls5zK;og%b%sUDe=gN zXsW}kuq5P`h$S1a=zm00Q;||%C(&@TBDxw27Hw%Tu9}2I7T_L*2mlR*`w0mHHi)rr zyqvHaMebfqj=dQeCs|&S& zTz|R_Y?rc6(zq8sJaNuM<#o=y;^QoqOyDa>7%f@i<*M{sXW>e^@;tdRI4$0cLc}M zxcCjz;2g9QR9Tj0u^r70g9`M3Z9XU8rQ5;5h+i(cloEDIOH4VDU}n{O&`semB;mLa zgjQX^Vcs6I!fqd}>!XM+wFQYiFvLBHI((_iQ_Hl8Q2{y8&e*GQxRQFu%_nRuTE#w{ z*y^x(Ojt@bW1Bc(jw&c2%!~Vg-Xs5lX<%{%hq|d{OO?Lp@V`(nhge^_{B~BM z!fxgeD@hb=Gly6+!l16D3J;n=HY#^`_=AXj#K**6HbnGcyc;3AdJm9duX-uq;e-qw zX5RDf0aA4{f;6qre=;UN0NcHM6Jn6rXsvud=vdaud+W;!dy;sT%kfH97&dBKC0r=y zIZS;T6L*G8>ra3p6jmWZ+XZdVz@|_p z7K>XyJnZSE3%ff)pjAgE9Um3E(3WxrtrQNig;;L!7c{v@ygWd(d};$HA+b?aFICvV zT>#4*E)hIf^X|Zn@_!>Fpfbib?@~Pc(mQv~%HW_q>oj}kHV^&5t+D8F9?OXh*Vv|7 zlyI)e&6*XwfJBiM63)Q!W|DJFGj)CPLAJC&d+s-2mKC5AEPNK}n2GE)fagYA$|Z!W zg9O@DtWtWYQWfItIEOWXiBJ?nn09({^f`*Qu9363D0-Y?hHXCw2<%Vi!bN4|{Ofwe z9T>%dDw(Kx{LCkEVWXq=f+vml`C9x1gzt^d_8wT604#*xUxZIQGPkxZ1?y;c95!5x zD9m}*hS4x-mH=`)Q)lelTAmZi&U)NRs(k>)W;IHtv||KYM-EIe1fB@zqdDWk?b=Sk zNkEEdseSR~i#s~Bl%bD=2h7nc`pW>AiM-)&K!;>1W%`2^Oi&bFop>5SKX><*k&FwT@2UY_(kgZh-26aDca!;D?XX4xo7KE`uL=mv>k2#SelBlBqz*qr* z2<7UosNPJE*2LIO;nimya^*JxT0I7zaIWz`ZL=RJM9sI>W(oTLy3HQTY$vM6iG$}+ zu+lfBdOSnrHTYK7(rZ`O(aBa%fP+IJs0>7L%O~P{n_kco2s(o2@*B}t;*u?OP2>I~ zx{2y~IBeSFq+32&vzSR#xBUGu44;gU#zF^B2aun2V_5ewZ!r#KJ@8KfxO^%;>=`z| z#d~n9x0Zo*b7LiNvY^IHsMGLC7iPKYba;3>?hLs8nfSDI*eQh1V)$%)EHrf-we#4y zxw>6{Uydudx?Ph+cy6NISaPUt+vLgd{V>Xf=M9iPfA-WAziY6J+! z+#uK;*C~)*y#>HdH<`gYqq-b^41!#AlohA%629T zGqHTA-bzZ?Phz9ZByY6vUtIzJKqiSKz;NgMe448(eX7`J`ENtyL@ZN}pJkk@VE<#O zx8v)L?Aw{jc6#LGHFEO6$%{C7;N)dIaLT0WVoS$e3p%Nil`FLLgawJpuE)jJmI+f@_T{+9aS82K z{;VuEv-)Sj?puV9wh*zk^iI&3JE$YxiileEl$bF_+KV(7VMjT}#SvYp<@&7Nj&n4@ z!4m?1cD+GFZ3#81nP6}^@Lrv#n3Y084}7|G^G8STa_ZKymHk5g7PI^=xYaB13C(}2 z`fdj7>NYxw>UKD~|8b1%xrZpTfa4~K7`0(dp4c*aw(Crbp)$n%nZz$+u(@&or&&DB8;Bma*I!xei-osPv8L= z)4yH3JZ2iMw-${xSLhf1O}xZ(`89l6kG7U=d<`xRFN~9yP{>enbq8pMoIV2Y+}0?2 zoz6%VT5L_C&&jPFZGqJz-GF?P>Z3qT$wX2HoMcY4%_q|Rk0Gjrp$!zUg2Zg{>V_yG znMI8Od}cgzBY6C&mOB(p*oreW>Z1L_Yd)g$hIz`zLD1Lp6n02@o+7~dJf#-QZ^A72 zPN1Rt`UIV!PvWZ|mCvt>;wI@hyUIvTfg_hm7$yarh4ViJH+OOgZ|%|7b8;3pfO7dO zYY|!P>mGx$3gZrm^le4KoFWoo1w${dSk-H}?qgT6m?^8|43eva@5E{h=B|b64Mft% zrGnVjav4p;sbb!3=dT?P)x*{EXct>9A?A!GpIhcSA?3#~$?!Pzv^m!V^sY z(~!7n@yZe`*g)vGoW-nW(UZ%;Mx=}^I3C9fe#t((K7JE4e{OxS3T{E5A-+3!B_2OG zuPJ_VupFR>N3fppAWD%N==201LsT>JL zD^z&?%n2=`1|7wxFQS;aX5R}I?o7adbMlXx;iMJoa@gqqEa+E1K(8*a?Cf-KFGLDA z0IllHq>UmLmr9)7LL1yThHbV&BI(2fMk=H`tAi~ zZ0pzbxPHmG(ea?ixzR<~w2l_$O5_fa_Ek(sLsWK%5&9;NJ(t z{50KSsFO&qYsQhcNv|_7jx`HBu3qtGCUNl?m*t}e!f`_%!#B@SSjJtB+|I;$h>ZUop4^;?z7&# z?7IE#N3P(1*Gu2nveyalT(>YieXl*?d2hNpX~|#EuHiqnXOHeBu;=I}!jfqw&PCjx z5J2y|1M*AoejOtpnp)g@iPCRGRQpMC$;Cu`+!iVe zCqMoCUNb@N%QvriddbTgE3^8AX9kY|kgktj^WY?EDD&FG7#g(DgOwzX@Hgp|{ka{~A>H&`UM+-!-U1=;<1|VDE^oOXw;My{ZOH61q@Be^`U22%Vv!tqUUx z9-*xodQ1(PCKNAlF~@h-psj>Ht)b7>pxDGP7CxwSkT3%C*};WZi~&OeXW@AQ?v7z^CYTMz zQj=rgiwIse2K-in{W0Jw!I?4O%Lx7_YE~od3ca343in) zX)(EpB389Q5Yy!go_+sLm#^zHHD!E zP0zr7C)8;e*8x5N_p5L*QxrHVnM^*e0`9H&?;*@Tt|`7BF19aT&A!BAWEeHEhV%_^ zbEe4g=F(|FesRoliy3XfHbm4+KQZ}mR8 ze3KY*U}TNXsQwkm1Tdq)eiENI#%8u}sc$1v=F#7TmN&M!!LyJ7 zB_!1gqnIbp&>`VBNo5VvS?U3J9d!cyC_2omoMdtTq<$hTQJ8^QHRb@Qb(&51IvSi> zAxHD>pEb_A9lq`4z-rNU+f~M_`}N!!o2i4Kn7<1XUMw#-i6FZK9pWc}ZB}lDS!tEO zO-V7xdwA*c0XT9_ryn{xf#s-^g}5;PzYB~~BEdsvd>Zq6Ot9Vz@)1=_-_pDb4Du_@ zGKN#HN@PW=mC^*$y=*{IerEzQGF01bGPINbiAw4@lj%MhWZmmjdoT@O8t}p z^)tpT#jNl#1}*<_hDCl9B=KVc!fSkng||&WK+TnNxH?BdJ74+e}CSv z{TsH6LyY1D(K?f5{1&pUXMG3@06WJ|LZmd##=Vvjk*3X(}U{6#06gy};!@Ebr1Ib9h$6O9-HD10djp@gc*WCKzEhjwk89FX#okv&XoKcv*}0P-x{QB=Q&FaA0XZfd>+P}C14 zjTPaZ9M5dc2j5eu?+V+I`U9yrrJ2FSXou09Jz%4Zb>I3}kvztK8heMw%t_ThB4Iec z&f$vhzmOuDU(11l>dQnhD|FO<+lLhxNo4x0IN?)%F#$}Ur4{u<7ef!HQV$_*g~=P+tNJV4 z;>p~wms-~lU08~`E_JS@R_CTR)H%*CS?5^yq{=m<56PFl#8dW`|2N7rP4^^PE?X{2 zxsVG-PE!OB|zFVm6;C56pdI zL__rKF41Gwh#r%Akq1<4tQ#ccm!O6}gIbPOp+gue6pVN2|83S8u8n8P55olX1QRDL zy33e)dTp06VXDjTMoZ@r(Nr3*6l2b2yCx3R{|G6{n2dUSXxwXcDvT*k(r$7v1o&8A zcLrpgnQ!$EgWnmHO|NB@(!p-XtUi)$`8d2>@SJXJjST{-qs~N|xzu#FJ1tn!`78v= zp?k3u=CEE{VR}ko+KRr!tS~Bx3Wn!mT|D1hegxv(mQAPhp2FiJUaE*K4Xl33gPhu? zImjrLqrTfTc86@NtC|*9s!^GAz`4;V2mdJ(J{L!OXMyNkH~(oCc{&8=XPV{3|d zNSx_4NWb{23D#H;e{?K9LE$6RjRFuKGBndCNM6HsE0`+S#S^p}ULIN$T^_1X8^t`H z#b(a=iwx+VIA-hDgduJ%0-IQXhc}Gwj~~yE#*=w12VSh-T#M}5#lv?~4y=55e3ffI z2@b;)vK7`naHvH9T{>`F*#c}UQ^@m`TZu>8$~N|fV$VWZ@VF)^0fX(H>j{88M(_hVMg6 zX~i(}8hc$ugQt}-T02{b;-8D@uR#5K;8O~p_$cI))$7N{QnWTj;Pr;XWXxAAqx-(?juv8U4Ui(pP+LJWWvL3H9(!9^Mt z1dh`Br~{7LhP;%qg5~9h&7p4~22TlN1;;64{mS!Ubr)c_5YADwDxQP1O4UrJ&*GE+ zgIR&4VwZ4)mdchGTvS3-3?Qhn63a@7F%#b+`C*W!M+ZZ^<503$znwgQ$GRb6hzEfC z3D9Nw3Fvtv>z!8BKkKR@QkfMD54)cNhepl@xHLa7rIu>vqn*O|M^nL1U16X|7j|=H zplB9aSF>=38INw)moiKr2|+_@B<0SD+#}tsQWDA7)4andkI^2KHzqbFPE-2fo1e&n zarMp?of5*s?HisDHcKK6KyKvpncD+K%4aa?bcHfk9FXxd? z@ep&%L(mfr(stSx21U)B+KyN6|sjAiM5dFuBreaxOm^L1Gq_z>*AER;67#+ z=a^f55ByRt{%+WAOT*<^NoA@49bU84d&1fNo>@afh^Q}5;Rqe5vFkp1;Srb zRrULTZKVGljZs z^35az`==Ne$wfzCl|bZnijy5{5VusB_hOqqt{tfYL{R;7zat*>oKrv|)^lE|MJVBj z8!DqT%PwN*W=VgSXtClr|ffQ8}_Xs=T8G{+t#Ah07 zVl)QsZ_EsTE8tqKlVbe0JT5^0hY1l`S@PpvIE^5hkQ>zn3+82CfB70**}W#4~I`{XRw`{0w05?PbXHlQ1vv443U=9P(g)TYes-5o<25 z$NFqmV6?mjdlfjC}p&)W_p!e3&Sj6~U8lETZ}oq~-|0Smjc?x8S^BR$7lGN7sU1 zGlS4LR3d1WN)j(hlo~hDn^rU@^5Tio<0ksim_)7dL~Y|HI%2@E{g ze`?vdiPZjePDHa5wnjw}l4!-aiAG;N(Z1s*dfNfboR$(#&$*YOPMps+ikGjih(QOIK5=~2fz>KAcAxsiz&F! zH!D9yCNX%TTa)u6T{E32-qiv_b0LtkM{!Q)pl=W!a!`0#KjFPJmlgS>50%c_Vu)H_}7gi9PJ45Ro;%pMv8u}g)f&_(B1MJKE-bB_N%{g zm%`r(U@ z*Cl^^ zGo9R;Wbee&e|)nPuw}2A`wOQGQ&Q~n1nwMMgHq-Vog`Az<*5N|7m2>yiB)5-%t+{zpwW51M)?Ey%B zPyz}E2E6=6@pmakn8kDhT6s^VXF`;!UXEC2R(^%BURQ!;%mA*naxyAj#6J;_XCRCh z?-wn98GpKQBR-~oHstjWmhMBK=L&RV1kLZzDAthhJOqfQ&sb|nm=F+`3?@chG6q7< z;$0tdUM@Uv%t>>`hNRDcH6*EprjfL_+dURDL2LY*=LA!YF*{^@u;17W;)5&uj) zo`Eo4yoi4`9?w7+FJ8p|Iv&qJ7%$#~%nIcUCLV+ua}ag1G6u2ysh9*|fk7k9AA>}Q zhqvzma$moRewXTUMzco-rUCOZ|O?=Fy)n#>WhM2B>L~*MIEgWL|4Mv=GX^3 z(9dG;_FVL0#fiaHP;&4rKKg0~2FdFo9QL)|0S6X7RzgZ`VaQgU2ufds`Ix*n{)Xu6 zjU&A>bW9HkBFv$K2O$H9<3nej<`E)v=@4bNxdv`j-l**4`7*N_<5`OH{KISV9QvQ| z#KJ`b&rJx|@;L|rc9l%T_zjq+TGe9i({yz!um4q? zNi4M&;su_Mu)6$rp%&+#w~Bj>L&?7Zk&*zfi;qu8>K$wno*&p{o3V?B!+ykRTv!oO zjaj9{)|9q{6*{&hEEuvaVTLLpEJwc*)jY8mZH1LFZ|;|xg=gJQ7~g;l?yJeL=o(;T zy@gxhfc66DqIl#uncjtvTAw=IE|gK&U5mb}eCoCu=4Eg2Uv>fP!Liwa{cRiXgqRTZ zRdl-E4o_OF2v1s=mRL>UQ486@6#ZhsfEvYqO-#Q@pdDD#uU;~{XQaD+6Thj7=ym%U z#u4EEIW$oNi?aS6bz0}_Ia`yj0L#V1@$xuUs+s zllCufIPFUCy_|e4|LYw8bLHhM8BDOSpXYo4N+@G8O8?FDW8&@k(=Y^j{f@%S+fzS6 zD)=#d^VARE7nv;MgP{9X&@HdPIFH5Dg>W#B!7Lr;d%FCC;TGFv2Hh&(w!#6fI)p?H z6ZLT^DPM3c;zSsnnki4fY3X}z7UDaCgLx)^GhUK1Ai@^z-*Za^h)e(TIrSO|- z6}&u1gCE1e#Be#|xi?_S?;Ao~%<&fiSZvd-yq<|y3vuKigwlfzU=4FXI0ck7po^7cb)f9FJ!p zj2AE4`u@-#|3d3_lh~#oM-_}uVKxi&6HU-Spr4AMxFX~;p*18zYeST2tRaz71Bh-7 ziCAKp)~6+Zp>$ZJrQ2Ik$3v@FAO9<%Tv+`s5{?_WK2%V9goIx%1a8-Pu}38}$6(fJEI3eBv9$V33tk#oNFdg^mU1m1{(Vs%b-Es%POK%Jj)oG_ z1<8Y>Irq9)I@YGrQ_mZ(# zQn<3}KY&oUOZu~MxWgo!h`z>{Vaz&8^WR_>yTIv7NEcalLIexz_;pTAm}S8I`;*|p zhCna27H42kl^Yf@4UTP=ie9?xm&kr{(6$K-I#m0ue}RZNzhruv`|0 z?W!t`PWRPoAshd=zaz7^V?p>*OZs2D4%LcE6`$2r*iNy<7$wzL&%9WNZ9`c8)}dPlKy&#UTW94Ny%7YFid%Ngcru* zOk}VLFx^p{9O+2b)b!xF?B&s&J2f_*hh{IE?+GqI5;((jSpQ8K7p{ap%UB)68Q7BL z6!3$AKSMF5-QmAMFJ-LDd9COMegW7>SN-=_>c7kT;BxBA&+J8`P zI|dwX#@%N5KY|)V-48+@)S&Q%#^El(Ow&J&`{Vu@{92AW2wMU8^}>VUxc=iH zgqCgjKZgg0(@7U}Nbg9v{IjHIFcbc%Tx#Y(1@u$kw}MAdvWgwB75oxjTVk!?_YoND z>k4c%-H1AA!-Oz)P$zFkVjiy{8XV5dd|b}MxNr_2#rcAe)*)BM3RjRqR1-F}t2jGy zz9R^$ z1VE|Ow+RrnM%kD7?D5F|dstTGdw_s`4LL-OXf4c6Dy$xRE>4-IvvbmT5gZ|D75)0` zW=Yr5yHgy=cwS{u5A=C|0210{UywP&> zDzOZo05h>7xg5=aH6*FU?u(JcGDV#v10hNA!iN1vJf49tUc89^XFQ&PFkZZf|93o| zfiPaYi2qkSo`Eo4ytI)OD>eQ?8~HfN-7`_{Lg+ey{<;aeUZDTg1YIN0-!wr_6zFdw zs2+#eH}cQ)$x&f;?|I4n1EWrYTI=g_?(D3 z7VQ+sfj~a55T4^X4;8|+`?vLAh~QDlvr%iqs7;JYR23Xfg&4$Bl{vMUa2~?LFo1fT zFxoI0U&VHOK493ytOjtcMaTul+cNx%(Iw)rRs6@71^jJ*(I;Vb92e#B!3BAIMHc^H zMByMZ7RtTYLFB8ELe3N8msY37(A8g{g_J%@d=Ziq4~uOe9)|rw32Iwohz+yONhg)9 z?2y0(FpKoo>=vXPnQvC8rFaq;k1%~M2Gqw8f|-An`H5d9VgDJ~s!yBIxnDI3Y}s+# zNe{H@;`p&lFvWuwlt#aY;}t%}d0eU>R=r3!S=&l1r^b_dZy^kC-1(P42A)5A3(TJ> zIQg<#kG+;@9R-Sgu$v8kswUrO*sm|p7f0I~57c60&b}D=eJ|@-mwze5D9+Ni4X{Lo z+V1rkNzA;bI9c(i3NUcI9j5INaV-}c?IK}Zs24EBtBYIb#yV#k6H(_-88YS~oPELS z!&%@`u99x}ctPRhrk4wPk@GfOGZAaL3jwZY=y`Z=3h?Vd!5;>N(!`7%;W3P>24OUw z@hroL_ta$ohtrfB;?oqof`%BpL$n@G%DjbM$HWcD%i&XR#b*G4D+qQwTrJ4CAXl0l z2U8AgabO7ROq!WwJW3WPVbgk`{x*;)-7wPLkr>Th3!Q{F4zz7D*?996k!^CV@#dD6 zb`+23?FG2+6TLkHAAbK5)Hu9SZ=C$33#(k2{P0E&=RSUaOB6SMJSej!`%#yYczeSXYlaN+~j%rxYT z74c~OQ*hR7{P?e#wWPLU$FUDu))mt4111}s6dtgGKcGv|XJy$AD$p;co>xI4w1YmV z8>b(T1WQ@G^jBMz2oIakkPp#IPnn?|_c_#R{*~VgD*bvdnmfYMaMjgyAoniE0J$C6 z$DR5(CU-8!09TF&d|#U~*(_f5&o-V-aFq{3|SxJtL z#@%V<_o2+HIb!hs*J%mEKsSwZJkOyS7IAKeQB!go)iuE5g;R;Z1LU;WVX*%PLxI01 z{bKi-!9iex^S^+|uiS>-8MF!2-*M(91mNZuR>J-1Xg{F&Vw_obj2R=+u4d+{eUYev z*>Pazss#WGv(QUsZl#@9c61z>b#L@%Xl6f&GwX>lV?=9GGfS$MVYM_cqsg9BFLG&^ zzuy~r$t+pmhj1&4)bUb=6{-#ft(a9*UB3`TzP%-9u7zc4cC zXyMwo(eKw>A1BxIL$1?eOc}xJwmO$s)ZV?B>9u5*yr4bq7kn^;S z{(xruYcej6mtDqGoRBLl;iD&5fxavc4rE&k?Q)D8o&Ky zQuPKD`Gt8(notBH^LiWlabu=oFUB&>NIr!c^7Ygm&F%I%X4+G?MGZId3tz7S1IUg* zI@4s}@5xMuijHMgdO6EK6Ya7yok{Dd_Q%oRnlh!g^hB8bL+BMQxLSWUKq{WE3pMc` z8E$lj@Uy)5y}Kf4cZT&3hSz?0TzJW^kNe0=0l&D!_iEXb z^U?-g^?r2cGN!w-7w~@CUJ`>%_0dVE8U`LsZ+HA_frd9J+VSLd`8xO&(i9|}ZF~x& zEQ}AV>C}2DOJ*&W`Wr@t5X}3WiWAE64M^{W1It3qOhyY{&K8C(S{1^yqs8WaE!LTP z{F~t7E`On3BEcxiw4ScVNB;}d*O7j(JQI4`n&p58`MKT$-u&&8%ptBnVQ}2>Hp{>DEq8J6Y{;KbAaT{*uSXYCLX@czpb|cwiVH4{^G+lhaOCJN3Oi zYy-T6LoIm()*Sj2(DY;f zGE;E;hk+OU_CdR`$6k6qL)u)^cwMyBT_Czk(&7BP-58j!X=6#NmKjTZ8fp1!B6X0h zK0_GhQF`C|#@Cm>&mvJjuBgPasF!)eJnFYmQQ9V^C51&=mIlS{234?9e@@tgza_gJ zHwk|#&T~Y=B|KePQ+Is11!p1%SD(kH$^>RblEqgnqP@MT#?0kfhPkFZ;_Kgy1Xxb+ zzW~>gU$3AJEMqRp;R7PW7ZKA?yaeFg39M^+xOs%7Xe^Fk6Co;9^m>xtlre1&&8tQp z3(0z2>GjaR?{(8>naz0(c@4%>mXFc#XAT_1vnM@)i(h3zljgl@191o z^0x@EAW9z};qtK@?x{g^Y6IpF+395dEDiuC>MRSqD+b~~d=lcKg-6!EGa%b7tbbeJ zYr!tZfeshh(Hhiu$>MwX$c^0Z!!!0e?eSRL8}CN0EESrud$&ZSK6IU(YGCEYL(tgI zM5|U0g1D)EfNvf@5d{IIP&b)SJO5r@#*I=>^gB-Ru{0^RaNYU)F4(&%qILsg znicecZDX`-d8^03$qE*TP<&!QSYye8=8wODCH9zJT3t#M|13aon&M~#3W?wb*XUVOTaY#)Kk3n z0XiH9QN4^?SvN#TZLsy3^2P-!3JxaKOgBd!cF^|QYuR_2_VJ*NVH>n%dumlk*4*+W z`tY<{&K{pXq-Lb)XpjZigwBn;eBvj{-^k z1Rpu2rmtS1Q@z(DG6_T>fBOxT$awHx=-z<3EwMgb7RS zD!!#0R0VlRptUePDR;ZuQh1;e(3F~jZwb%LbPD`hw$QXXij<@aoUm~{PI=25Sc+w+NboYxpXmvfT zCwkjR3Dvp`jhr`4sa)%NQ2mq=m*5EXTBb#2)rh z+`-?_75F1asGh>-kwc?dhS`M)1Ee01dg~Z}M{0tx(VJ=Hc?7ip@yu4Xb6O++NB;n^r+`SL;VIHt=AKfce{9yi61=m@y0Zc zDN$b-81R^nQyd)L1DVflM?G!n&$_qqT^p}!@^(zJ5XL34oQ;cQ?e=Zzw}=?PXv4O^ zx!6akgW~a~)}Bu-i1uD2``_W?6$Z*LqB-zYx!)sPh4{ARjyk_%8+nOnumhZlE#bkW zN8<;REUBbWc{pxPGv=<=<0gNf2FGxWkCFebnJ@eba5Up|`S;-1nskHN4P{mR00hFK zAin)2d!Vb3@TI)aLwltohrf${L&r*)>E}9&6Yy%Ci^|<4$}Fta%`Q3Wyu@7n0lD($ zq5R~yYZ|`-5aP{oA6XgIsIKTuPwTcWsajhYg*{0;7{xZ6Qhx*)t(C=#V0^_D6P}@) zVm$oYNFNE~KIHY|QYUEzyoy!|mxU_nYIU1xF8I$azYN9{Jyox{)&B+zTQsB2pWrF~ z86ST>awwaLcu1q)eS}+xa{M9LWlM(e6h_uc-a$B*8oWZ%O=?Aixw^19S5Y}nH+Fow zp08~!hH)qJ<>RR&$KMNVp%*M$c-f_8#Nn|FloejE_&Y$u*GfUwy5i?pAg>^ze=B4B z1xVfMsDA>|wh)tT1J=&J5MX}mjRuE)Gl>pI{Tnfh(9ZEVcd(e%=F6}^i_5Gn>=>fz z!p^t9)Hz^D2}V%%v0PbPbT^Y@jnFSc`h_8}4K-pN_}QWhq@THf@oy)#V|8(n*~0=M zeqfzDzWDK?P^(-tES?7FPC$$6fQu-u>Uf1C>|z0eZmrRtnz8kuBO21)kjy}#SLdRX zlODsB?h>h`t6Ycf0*Yw?)y2QU!7%KJS)nHLnFrVb2!cq8Ngchs#kKRK5 zo;Uf*8m!n$kRekBIn&33_V6b;An@HE4X{|*Ie_XQ8hSLx`UJ~c^?;Yh;_8OS5_(}b z@%xdCvjt781<$X*^3g(pySA@gqr2D0P#BIooMV2H^yDQ8^v!!@J zu=n8Ju95YtMZrm)Zgf8<<%EreTL~!Tu#n$fvmj(}x8u96$T|ewHLdw%-EjDgXT9}K zLVBZDdYT5|tf8=<^rwF?!Un7EkY2+EJmv>$rnL;Yv$3wut2r4z>NiqXdgeB2#O=UW zh8Frisn9d0M4^{WxQVKafZBTZIAJ);XB5`0%l8iUawvIEmM>0ML#g&fZ%M;zS-z0y>}~wdvLBp{B>oYdm6><$rcs~ zcbkuTn+lI&3JUAYA?VLx&u%w5+*$1%w?2RLB+R-FX)W~N!mWOD8+Y1~vun%nEOMQW z^9{$#+#XKQEBO>)yo5zAd0iu$jF%v{>ZWaZe@FRaxC6S__{euRyF+Ujev#)~#L|bj z5%2xekQSVbOdnKtf^=-++Byb%-BjXdL5xFre>83FE&)&*?rKBz9@n>U|pCcT&*rz_EG*9~qLd&^nFVMh^f&{Pu#Wev#W zX16Mg8BdCBp4rQXC_Ao`*x_zE}BV ztXgeI+>$Uw#b}DgJv25>r=_Xb4a9hzYiXG2%16CCVsjs)wvwqz?V;FN@5>xyqxG?4 z?9zFpCbL0)Yp4+cRI1JU=5$-NaP^a5uoXRl? zbkA_IeP8~Aev6Tt|5;&xMZp2$74)0TwoG#Yx0bhc`D_lHiQbAENw)~BIX``$9e~{5 zQ(YBpf=#}A(`>XUgoXoW$*E0_O$}nBtu^XxNsOSgaTIOFBkprOu-f`7=WV~6%ZKO1 z3-w)xGRU}Mu&)ZleCmNNw=OBL`xMTVT-NbmkJaXc(L2VqQP%z34?i{v&B8@DURFn3 zYUBs!T0YjbENEq6%;OZg-dd`D-aR9yDy8&W%M04}@ipJjhlL;BDIb>&uo)!7kda

fkjKWJvy7_;G6w{8CAeaqPi*^Z7w7nCoAaMBl@*m6e8v4UqTT_?3(E->PwzO>;KrS(}f)rkX3Gt)z+G@za`EW|Ek@8`35g z;*}%;H@fClG}UnVDT_*6h%>JAYfX&u7C5N$OM11|njmiN8y|~aPU+mg5mt60IW>?) z`%u=UX2ZLY+4P;j3R#%}$GS6Xlc(;y>CF3XI=3YH z+_`UT-hb|Chs>X=E73FlRi|~3RY%{Ta(b?y~^pgE!lyf2B?l) z9{DQ7%IrtVBimTHkPQyqh_2&8gR|@wkXWq2;X&?KejApzJX=2@eB7TWHE?CZr-5L zTTC6JGQnY4>`0%tL!Nv=U1%S;lX&aoF2G zjZ^=jGi}SYLL+6&j9ng4_J$&vamynH=vM(V?aQO-tH(3rmq&CnSLX$*%!K6;!#Drg zHnaBfh>x{3I>=019`RB2Ke@?t)Gb%140nY=v>NV62Cd$UQ)t<P&GFN++=Pr}v8v|7eUlK3Ajtg^zzBf-6Tpb}!XIGLbu;@5>pmIo$)5dd=&z=$}WZNuZqknfMQaK%M2DaGR97di>MEZ@~&=Os*yAe8wD zUs8%u&iN*kHg$5SKlAMHaOTzqknJgbwJS%&c87Ah07a5ANRe~} z^C`So!ITKTS(O#IU)WpnD%h&LpG%}M0`U$`03!enNdP017gndEhgQ{*82E+L6sEjZ z!#p(MXaqqVmHC@C(-{OnHsNw6yiTdA#-W?TGgBF>+Ac0dMTd5wF?*RApIG%kwl(GF&TpVo$wouQ(DT>hWmmlPKE#-D?aJ0)pmR4oTU*y! zoXV$p@i{7G^$FXeC!iQ|eu*3tQS|81RV1=w_?zjTX1Y6?Vhcv-cZ0PKBFRR(LnWP> zl)o8IhrfeU;WKzPWs7epEcP=sseLTC0A%{CzX1Q-CHq$Z;7Xw4W(Rfp2@G1_CbK|j#?(Am}UoEQJY)t z#;~!*MwbO6zOa&^b^TRp8zc??g>lgFAEn5`a3C=Kw}Fl1icwlp>c&D2>L;N z6>2X$E@mMVLoz{#i&|IpO)}9f&f3C07d|uo&ZL)7nZ@q`XBP)o3Sjn>HdeDR>L?W;a~(T zO9@~EKz{-lK|&|(+>m(E|9FKZF~j;F;^7zWQq<(T8f-aXY6PJSB!CeBOA^2c^*^>H z?EBNYWzaR<|L6@`yP2y?pcAP%IKclu^*R)A-0M(~e&KhLQh~)%5>Iz;G{Giq@!7I= zZSi^L>7Vj+zLC}zUm&t$V);V7$CfX0uP^9TX?x{d8BA{VmRrkcMgYi{0Y(7GzX3+5 zU44$yRc%+#k-c9!m)GnEu<=V0bV$2uc2}95BrmR~2FkUoW}Y?7Jb9Qo)vlWR>DbeD z>PYOUdzjm}ecVcLs(mznar>zAw}-ZmvK`(&8utHN`&f}^c>5@eHMEZve@Xk8-|s)Q zk4iY&Mdt=8+$4 zsV^KxjNQ5~o4m5=P-|at?lm@gEt(6MZ6l}S$GCkdtT*Sd{$&Ib?Wkb)QJXr)AG->+ z*dND*HQ8zQb(Xf>S3VZ|?Pgn8j0mgP{?H$vtPXOA{A-Dj`-tvLhqNNx&oP^@#-P?- zLr`;kbT%wH`}iFU9u5On_#OFbC=6AtCTjaj8hq1r8s;02?$fFugQvs5GyIN`)o{|* zrZ}uet-%^8*Q#2tK}sAp{Z|eNaCFt-D)OjpWQ<-JhM(Wj+#WCMs`^plRn)~oubPx$ zT#8|wngrNV^_;Q~O#ui#rfOYfoOWpGfWy}R${_)^RUM}JBpM&PX6rR&beOxGzWQ>2 z_4qX~Cl0Bsy@tph;CHOe7<4r+9S~>5)#h&IGpjDG1ml0w5dRi+a_!_*oB~c+1tcC* z*Bp;^s@7|W2YF~{e(L;xoS&ZXJEm1?lT_BDMxi@5f()68O`HcM!(7YJ%G2vk_@DE1 z%xm1pglqfAbUx=&pNhs)VeDE7BOL#K6UM4sNl0C+R|(7&8c^L2JPaizyVGEj6M9zb zw09M!_~%5hD$~UO`a}FDIdOwkoZ^4_>OfX13}cGR4Oan))XX6vS)K*mXtn6Zt3@|i z6(unCB(5p}YXydZEaYG>T(&HjtHo60`if_REWJdn@QLwo))&p%<~?*N?xnJ`n{tgh z%P*OOmDvmM=}wY)7D`v?nuCk%TP-n8A8q$R%cgB^!fh}P=`w{>oQojk%PWDhWCC^^ z$+DETwz8Y%OOk@x!QNV%#L`9YLHY=p@De#+kEIsNAo4YScoA<-j^f!iZ{-LkMjdb- zz{*TlP3u0btjs7`h$RzYW%i5MRpUZ*$1Xawb&+=M=zE<3cJHTzRs1Kz!`icR3v)c| z*|}A(mhv}v`NoO;IUj2#s6?MHlvc7OSu(v}jU|_8w9Tlad0xr&!6R6{k9iZ!o39L< zS#^rr+nFOw_f-MIwASXK+M15d=i7(<{CtK~ z%FYKf0i#FoF|CWZDLf_`yq_t&k~}eD9AtFOZM#OSey*7GxOG$Pfhs6=@9}VR+IwKD zHP9JvK0F?(@X&5d=l@|`Lvjv5Vng47?8E6)Axn%Q;Z-ikv5htjM7T zwDFX7Z=*e3w_5$hCc@RvZw;@-=U~ncMBsKb_*tiEBabsmO4pK?bR1H5xHFI9 zVTA3{c@FkJNB*F7gZjcc`zP5?n%-C@(>u%guOSeIJH;m(9gcVFbFQkHy>RE|#@*Pw z@rKy}Rc5EM?tobkPK#Us=xmNw@+RyTz@C#}!sYNvEehBhqc*x(gwuPtCKHE;l?FD> zI5^hHmR^dpCthtiXQl64TkGyRR6fu;iC^Hq_=)B9pnSVBx$T(i^p6j>VvNdm74Q9jfbPLCAH;;Gc<}_GYTJi_{= z!YUps>#v&iLP*AxZj>QYzCo{&Y|`654baX;Sq$0p87;zlWA`}53y*_h47mya;xcBD zE_%#kaRRU2K{t^2tjbqQoLSvjL!mczYbUqQisEUfCF6z}op zh6*{;`b3x}tF0sG=!XtJN%RAbK3VkrjxLD)k)w;Ee+r#14hqRezjqd=V39E0g|ZU8 z1kUGz!p=oEVX(a{jP!YrNiN-CnJ?T)PHvAbBvQT2G4!56p8)mjatMUpYX1M2Tdf7Nn(8ETc z&ts)q<2OGbDcz*JIraVUYecVj1CR38@ukK`z8SnTo1l-5m@GKMzUnGE9ggrYm-a1t zAW}STx_JRsJ#&Ic@94)eY!e$E#NfDYKo3RXM`yst7JHWsBML$A9@7B286(NiK?yfkv!P z=K2Q*tdO&tq{S^TTeTOi%O?o{3U18mkm7t7yC9%v=D48uvt zp~GIdZM+ z?o+?aZ*~#0kHL68>DG zZw=dd5N5mjhRq6ubYab;f=K3+W_fM#{x5Rf9kS3|h!FtaP5>hS?o0q90KSs|MgZKE z07g`&l`Jo_#KrqHaShLxycbA%Bds?WU5MFj9H}2{Fg$D6i@9nZt@p-Gb!l{TT(4-o zZ@&Bkf~DuCJf`v^qu%!>(im}oAN~plz1%aRj1)v)z-!kFaa}$npR2oe#DSGu?{0N0 z|5%}9%J;|If0A%Fg1Bjo==r=^l|nmab@l0~y4scCW5VYo#9_tX@}jtkTkPmQlgjG$ zpFl>xkV72-{0zk4l=ue2^O4JKt+63Ym%+3he$Y#o^ub`7dT4Hs>AGIezTOm#ZTjB2 z-d?AVIM3U)gqtg$E{Td$~Ef7ygBpu(f&FhQh0mwK=yT zf$sclq+r`Jj+`>7^fsk&c;a!ks_3h4kku%y{bB0KXT0_$lvo1 zcD-$bJZfC1Z>{6+>czZQJKFX8cXV0Bnz^M+!SGExpqGwj*tjix9R0p74kiy<;Uc$8t;AH&yYT?WECt?wtj_It1EC&}&1WDT4kq1R4cYxCQ1hufcJRRxdLA&oZ+3%kKod3?jH{?%A8$ z{>ADBv}{PN)g7;60ih_(=aq^5v*^h#V#$Y> zNspH+kz0-C!*pfq>EwA6Bj3Gmcty&E=;1D=hhI*)5Ix+*sPIZqjkUQzvt4&Bd5BaD zzXIGlDy(5qfAK2lr9#bWW$UZzxJwmXpZLX_cz0ToMYkBK1dB-}S4=9gj4Ue$xD2U9 z-HNy7Jbp{O2Y!wfEi-+B+;Tt4(<1e-uH79@zii=*w_2Th^>0}_(lnYS&Uf-@HQEcx z-?n$A{2hCTS0i$nMcvqqDYH(Tb3tSx`m7t@i^Li2^$XA@Y9<2OF1eK=)!ABnon&3H zRC1^uepqkUM_P|C`LIrn#FLq2pKXuSx99x*w(xy?v#8d*;r$o#zKAZPh+yRi#yFgl zplnt+c|=ZB#EdvPzGF`eX!7MK)|Ba~+OL<=%fFJf>A(C$#bw+decAw(#NxG5#Zxl3 zE-F8%w>~&e_iu2ad%9b?RDWl66^kI;+dGK% z6KbPn#{6OR3q%p^;Lsj!$Ng053IA4kM%N)47oeoXQA8w`;->erdP_e>kOo@kv5+@w zd#LXv0PSMj&dH=b8F_|!YRNoB*6A~cMru!Uf%k6YhyNh>-e62Od+8+!Il?CE7Sgp} zna#@ASH&TlEw11l{tGu z)tcos{Ohg>`5iabE3#QLm|DAz>$=kV9HpF0rked{Pn-zn$`oSaOBO9_MvCsA^ zEbD?gvNdE>k;@aR)$2)$TCY{RM0^dNTx3tic`lA;x3~E*-o`GTS?z=Oeos6H9!I^Z zXzW+qo8=%BVCg(!D3j)Vhg`&XB{x^u8JmpDF=(UVIfijKzySWyNfbIx%0CjX3I1pB z-k^>3qsPyUj=~}yxw|_(a+kH9hFwcSU7!-!Sf~5MMAcn<7YX7nE18e~A>TE7pPYQx z1Rle6_Tyf5y!CFS8wIUE_4G29>dLbNB1Wz9gY0|11c!y^sdv*|EvgkUh;=o=Yh2H3 zbNwiH&&H@qxf;@s^2309e#*<#lI#Mq(?-=*F|Arx#epGTNZEnM2q3!6`Y$SySse`R z`Y(a*arRy$jNnvS3$1}ZfD>lXVh^XIseTwUCZf8|Ps>I%1UR^R9F1e=4T(lvj{kF| z@}i6VBSXBYKjQY!jrLkYuZ{MWe&uMdcPmdrhtw@2ysbs>i?d4K)^_63Qhnsd(3V?= zv>f@Rsxb>E&!?->N2Hf3(uFfIE>%wB``fp%^OuOL+NqzA<7s-VUAo`sG36htERemCfA%8l5-bDUb_HEQXJD9W-Ltkq!$s2)# zF0R6sI9yunUaZZL>38n+ynDT%SK$VPFFeMhXrr($?5p6W-;l5sCS5r1IR2f^vTttp zk#X4T#9{B}_bcp7_zwn7*>KP=5vnFhQZ-4Ss!4KHO%g9L4VO~-IUEu6^Wzknw{=+o zr;G|KWmI4(qe4p=6^NW08XFKy{0ahO> zjkm_#%eV_dMiq77+$-Ff;$|f{GT6N8%oe_m_a?V7-DAftxQlT1&bZqPG{=;LslFVy zLnmQ|lc{Y8Q-Fo3F>-ni-XE1d-$mWpo5puP4Jx}`v*ROLT8_oDA%McvgZQ+~hNmD| zeXe0}qWfNOMC@f(!vO<-Fj+WsYJx;rDkD9hN3SoM&WhYm7d^w#8;YLE!w)wS66tBj zg8AVr1N007>M1Enx>WnBpS#t@iQ=xdq0Dj6+lHtn7K$z$fYQwmO)>|}G8YoBNCzh$ zQ5tc!o1qf4$Tx64qR4_CWT=VkJkQ~1Fh4Z89iXdoob+~tTTqx|faH!|hKD+pyj`c# z2!KB(fDr(%B!CeBuO@&I0Iwy05deQm03!fiPXHqT-ber=cJvEHVpF(=N4P2Cxo;c3 zP3-4~%fS4xp_0`v{8+A(sxhfV_1*c5O4ArsGRCB(V)1oyWVkVC*ByTUn}k2`QyLfR zygdl9GRxFpwn%R*-?>ya>e+W&e_M{FtG5!Njo8sI{6s?QgFoC-e3PYZPQuLv^(}cD zPa&TJc6z}(2?rx!`ECLj0r2MpFaqGc1TX^NF9~1-!21bc1i%LgUR8s#^@1XCeaYk+=@&qFf7a1A(MUf{P`Jl)mr23nxBk4}ruXq6<(*&RA z6`k(rGenmh-7mWA=mF779KBTZnT|e7^x2L+NA$UlK2P-dJmPx!yM*|v+RMT_h!cnD zsz_G@Tfh$Zz+5PFn;yEG)U^(bJ2cadcIC(|tgB~b28B<}lSI=e^!rpay|ryt^LNvH zn8>aL$Q`EeO>TN+RN|uyFyS50W`M;&fT|tFom^ft0)Ugy9AE@ME&+@H;7BRw!UzD) z%W!}Z0Qm$k0-!zti~wjz03#>@orqT0ibr^%bbDEn?X5mm62{f7Qjj58C7#6R%Q$b< zs1fklSA32TAHI?8WQ#4F)5^m8rX*-1;4wM@i~wj(03!f6S)2$w-V6NjW~k^E9?-Xn{ss@e*M&rS#yyrh z4A9ehEULfUc~KHP>92@cy1(KIhp}~q!*wXcc1VXpY%3j#_C#k!phV8sbSYy500+4^ zzzDSZ6>0T5((1S1q>QzUH|@P57VFXC<@EARIid|;8$JUMC2jc6tPO9dw&Aj=w&8ND z^wNCn*}VTGef|he>NDQOJGz?(^gW`#@8}WANjjQEUY z{G>S-@!_iR6M?l6AH2!QLY#M$8XHgM@aB3Q@qCWb@G0O(5qBT#m30m|;=5xxZLR23@?#fp}K;-=^Kazq(gA3g(*BxUFq zR)$7b%aClUWk`-$2j<(E8*eKu-h_?P;uYS}t70F%CX&x9YRR!VZ7fqQDX=zLEGug5 zq^f*5T~+$w>sV(aJ(JYZIFiqR-#Xj6vEfgW3RB^w6Ko42?t-r7{Gj0KHZe5at0*A6 z%f?0kOiutK0A?hB5omS~X?CGB`xcy1nzi^Asdw_>pRkEF`-U8mztnF~yZ(;!^fy4= z)9c!Gv(vg}*|Bm!XmBbUg*8OH4m$iZK=d9D=)Z`5-_ak4{wogxP&=|19{MF}xf!dp zT2^V_mzbW6z025cJVIe;?0?9h#DCKl*f3F+5om8_0vG|XQ34o&I?tCnZ;?9xu86GQ zo)F$~4pp3EQc;dci*cgQcco9CgB*tGQ}w#+(C0gN4Nm>B)92>s(8GB&f(P_Jv5Y?E z0sV>SPaXX)(f@YzO3|P3i1qw$)AIjEdVbK-L?W(|1TUGDBwoep1G7>DRYsp!v#r}plYppt)Ge+!Ns(?#{u>u$qrH|)E^d<;Mnv2a6 z4H|(;H%|Z~0JcZ~BLKEc03!glN&q7OwoU*e0Jcd0BLKEd03!glO8_GPwod>fcJvE( zD`{U<(vBwrZcIh%Wc91`_i|XpDOgt}>#Jm=NH_d9N@QEuRJ9yaCEFlX$M2AcVTAI* z4_%Ozda?tT>3raleKKgA54N^+nOX&0P1;!nTs~M=j8gf)C40BfRI)c7sZ?IC>e*Gp zy;Z;^`}zXX$-be0B-wXNqGbf}+$jN!0N6PJi~!gr0gM3HH35tO*ewB!0N6bNi~!)Y z4A){B0Wc>4j3AZQC3=M&c!V>MH);D;N#{ve#_2qzO0H8Sr-^jw99GdTkz6@fMfxC> z&U+?;7?BiwrT1Z#^gh^BzX?9l>AldjRp3Gcwx|Nv7_ik4MiSzHLoy@|jI5Aq1NB|x>2eSCVv%9{-olbct`E#;8qC7Ezn zQ465#lzO*`hi{?0vpAabM{GH4yezgi7x-s}d^Wpu3#`v#^F>^<=WZeKvz!lV{f!yu zHAfp8pH8~oz!-*R<&KUcS6XE3%IfU&I*#sMo8H7)K2q390@lyCwSWyla<_Ki?`_{> z>%y}io-9!@xz>g_k=SaWt-w2^hs(LRob!AVrmjUU?4CM5a2G@CY`5qq%$me)wWetQ ztUf|B-Pk;vw|+?<){knKp=Y&5i~6?oYV#rcU%I>Ai!~dxMvG8eI7bQ%+MHo8GmLeH zeatY<8TP}V#6KcQI3oa#OaLPQj!FO{0FF)oBj)?z9`GtWM_LyVG#@_7qbr6Z847PH zA23y+fwa;wiFYFaj!gg~02U^I5w4%O4mzeL9oc-afMBh)g(sv zgk*qKL9Da}i8)UDX`T5eTO{Ai+|~u7NjkxN`Zl%%!Du%J_<8043vEYL4*@c};U~^H zZg0beBb4p1?h&C&Of7~2dgEYway)W+GgcXWtZe5J7B@GZ^RBqYYbRZ7UU)JR zTKYH%o+wPFi&Ya0S%l?RCUineyyNpfIRJ{{U|?7`?aaeZzS=T$|l^7Y)(f0 zH4?b^kGGRDI6>*ig&eif*%n_()L2u!OsTuZrn9vxdqw9s!&h{+bBa8%bb&uh04u^f ziELZO@?KmYjYZN_+Ab!DIBj(?XO=@MT8qEMuVwML^Lk!I@ta+@)KW1?h`#HVDym)g z_#HFC6UlSjyY3bVz>FHy5I0YM0U@#P5}jB*I}15VmS^Nr3s0xAfU6VhFv3@FlV7+V z9~RB)mzj`wTYe&+9nUZEIcO7k{VNEJjNAMO;2z zq-(*7=Mq%;^NPV`YjhYmN9+cYuRVDu6gZOl03w?XKTz53k%?E+qwhd=UYjhJU=iO^;7%E<9?Ysvxd zPVDe_WQ|_I=`_{CXTaK~SBwBCC4dp?@5~?$HN*ieaQ_ItwU@88JBJEhg$>(I$M|7s z2>t|L7kM>e?sI9mUwjRhIJ}D<1=Z97VVVhbeg$ zKRZ01va2)nIe@14Hr~ritLac&f;iIXwnR2Ej#71b$WE;X}RNL0& zQNP>zaq4od&wEE9(LC6?aoR4{=gH*O=glMUvTj^J_-7p2`rj`QR=ob#Z8(&i(R;F1 zSnY&GjmQ{`-9;B(f^%AEIm$+Vk*l+;Zt_DFXj_Q?0Cf&cIm)os(|sdK=8s~TsftWy zYL$x2)R!hRbuKc?w9}R*6{wKlw)24TZiQ68e50t=#e$H5Ggif zY$Z}`h?gQ|!do3{tDBCj@V5Sc;Dqh0NFS7{;#wS{bt`cQq8s59epNyR(Ji9I+7C+S z62*A4Z^U}{Y*_%CGjt0%FRjs0?P`iykFZp0$`DxWD^}e@th7d_V%0musxNJ|{tzqr zGF4yGhgi)>TWvVRYNkwN_VXmSGP@A~(uOQ7Lb5O-iOWW5juh5v-;(%yP>e@BD>miM_%C# zN)A7~QVhl_n|-AU6!yc#Q@>W0T?lWRhSDPKilb}gYn*`VoG+83U4Zd*qA1F`>m|;Y zkz%b&Uo1|(cWe@;w(=$D!LA@8dzUYkq1dFnbfMvSv9PXzF1(1z@W%?-KG>sAtLV=S zeF~|=UslPVL3TaNV6ULSamj>2{gD~xoeSJ;(BxzBs?kkfHrnodI9{31xYs!U-0Ej+ zt&H!I#3c@54IX^Tp}6}a8U3|)&c$V9ZB+tScLy3%wjXM#>L@5JLoYpSApDp7+cONP zeJEbiSQJ)t7epgao-WN&yjSAfg&mZ>fWxvL;LoCn@VBO$lC}0#aq;EEg%JQ( zCV&xmk?iKhl^3QHb{t2IxeyygM;p^(UY}7$6DI85nk0MndT!J|i z_RWutZltUQ`xKp)h7=g>3dJ7=o8nQnQbY}~vZx_LO!%`Zft3gtOVBO}@;Ek#7( zS0}g;0Lv4=hy{NC7XjEg^fHW!@6(=#2a)HEm2BWqyi;M!cGA-QoJtHi_{QQD(1%_} z=6yI&L+)A9@;uHXt7KKjUYzL4w+tRONlBK=9boHepL%-LTG2VueT!N1G>v*yhp>mu zaB$_p<&ki-0IQc=KGQ8R+E7%T;WLC#wXkWN9o~D+W}`G+N!s zIZQ+=$Wtn}u^K1yQr3mA#`j9+j~` zTPjq(7WedF^s>c3t`Bn^M$#bsBOWM4@5!I_Cm3h5U)&E0oX4-xC^$|*NnTU@Tz|sA zAbJx%;akQtdR_DzMwf2DPgxJ@pT7(L(Banu4XL{XP`9jPPKDQZSiPcLccV}>)zHqA!*|l zqy%m)O2$^1bk?|qD72SaGSNvZrZp3tv|?H?(K#|Vz*ncM5%?6PMwq4=;RDKP=Tg~d zhjw>(Fpua-Je0qtSd&j&=h7L`mf+}N97wA&1QxCoX;xa8QnivOQlT*;3Of6g+RT1Q zfBQ$c=?n&5PNe&TNw=P)`>RPOoA3}x$B`x7(f8z@iw04(t<)ms_X--BDgF)jkyZc^ z{o>zc_z8yctwW6B zq0)wLF$=0fNgu}l2RM>G%-#g8Sp9H_mBg-CX@ynQmm(o8ibo~%I{}L$*eJ(vPdt7i zO&V0b4VM&sy`mg$T+zQ>{vY+jMv$O)a!Wx=S)O`s)!bP;juvOF5mXNy3P9;rV|Sqa zQ|+M(t*!h`*aexIkr|ZD$iL>?*AOrl6>VtDRA*j0G!FzN@iK<=kxc3a+&XSSNphzm zR$y7<`ix(-m`=A^~% z8SjTx9&RVo(997y=n8iI|az1Xo70tYJictgyQi z%m^wC6Q&*?R_WlRxR$){N_AhgO6q*wB=32jTE6JP*(_~8^h1%l1cQ5?HFFWnI#bVO zJ!MXmFw53xCAPLa&g$_r+Gb4xgS)!~x#hW#HipYVYeQPl?A&~IlDCw(n&z~JR`bB{ zlY(`eqbI0jYNO8x#7-j!IE~;tU5B{L7&m28aP68h?HyZzg#RKQ|4ogfWA%_GpXnXv zhm*wSK=pka7*~?Xnzov3Wqg+^Z<;nC2&R&Df4h(^CITN6&lPpvyr z=*_`Nm1{m<3~X$TW5yg2yCj3VHDyP66V7yN%G6%{7WrA@!*_rxDe~dh$kncZ*g{mM zA6v2(6w8PZtRp{tH#f-McD#3z!)$7+!`(1!o8yW*B3ga6gV{CbXI|vvH=9Gv0fec+ z;^}7x7<^3^o4#uEBpYj<{IC;-e%NkLRU3Y&WUz{P4Yjh>?SZ#7anvs^)9EMH`NbY8>iLs3PJ|0m|n5!!5Wz^CRbH5qkmH{Ia?syNJ3}O0ChmdTMu42 zbkDJ&%+^}DUca5$-jo+^Kd*Rcp-_c2@=WC$su6Ru-o|g5=D)MDR6XW#606 zWd>du+_*p_nM!S_5L@mSopv8&qNkTEpmITf?X+?Y)!;L3p@c)NQ=n_~p)( zaEG|CB?#d$a$OT@13g0@MaGr#;X*UiIKy#faQjcf6EIj^xz})>hss&T1zwY4&8Udu z9kX-1V|I>r&IJ_ncKg)DKGsvsC5-s{Xa;yH9 zA+W7Ss@l!!j3HJfnG&mkAy!NN2P@^T5gy|M-b$-CjJx&$sRe&u6Y5#E-!~cId7nvc4rIm6 zBoDK#*a$6C`Qc$oHGO@%?BxLWrSr0~$*?g=D*)k%@?>8+et4v4&SuEEyy%BV10=fX z31f3>J=$U-JD;;Na%0sUs=H0)zB}u5=!#5uEKmaz`xB}BdnO`#0(1aaV5!0sE*kDS z0fxD@5)mFh+;svBb8SUtMN*&m)M({jk4I^V+DXe$*ZgfMea)chhI^E?S&t?qIE1)y9&%x zxUf!)5dgnV03!gNP5>hS6o7d#g3@C0Y9+F=vkZY-lAKs2-{a2e8*;cj_N9f#;jQF~ z9?d~JPQqG?IaS&#xU{(zLRUh|cZ;oojvWTB=c^UM`am)%{vv+ggdY==hNzc3i8kK3 zeLwBi)5rIJc591A6TX!dx2xx?MX41TDob!z?^df;D{d=ma#!zG%UUaLD~ohj?^f$x zRTr2Zl5q|*B;y>)4VG|5jO>`C4Dg!-G=e(f6y+1O!;6x9>4#@316k=;wxys6aHap1 z)s%j76kaAzZk*#wA~nu|*Rw^psUkQB$`6;wEZ)w=0Z-l632Y7 zJ;1*!{Cf(!y>Oc=U$?|f*YmhAog0C^Uq}EW04xf;6^6Mqf`qiFCdEpIYOyk_q*ytt zq*$5NuwqrgR#U8GS1DGG)n?ScuAq_q&F_$6C1f?lDv>zJdgd|7dQy}{&WMp6Ybopf zJ^_s&>s==mY9!43#?6zpPpQ244Jq65qEed-CE!2jMROG1DNimhep_Um7r!am^5X4K zet3(_E-$W#4&*I zqB*iD50*`&5DkFD*Oo0v;end~ah#KAtFu8c#ruZHbdpSolM|#F@>AA3h5pTG>!(TB z!UF_vM=tiP>r_>E2E@gr@H-$0H4biq`DFvD6U^b?5n|Q3=2s16 zz$kB1nwm;}T2L~T>?T!f;`!W6XztT9%6t-9|BGT~KW6JvvJ9OqwK<&+8KnqHuOr@S z=Xujpuq8#p&G}k%0=t3F$q+<;Lrxc~q4ThB34hx~;y=w1zXId39#jgi@*2`k2>^dh zZuCGIABg8)dC)fP=-MW&%vXVY0~b~)8v*cU0vG`x+2vAv&7~0lZzX^c0BD8L7d^b1ZUWpmVxLY~19lY~1AQj=s$)7M`IzMOM4*nnGN?CWR~U zOyNef+xM98_Y&L)fWIVw5diNefDz2l{tFPE300wN*Qn&XFx!&{w0T-xlL%Tza9eK|UUB*;q7Lvy%gWTSA0c{ONH ztkHc?lH2Gbe4U~>N%N`}(cq-xV1}gQUa^euYU9-y?-L|glgWl23-dRO9Pn{srfkVi$pGi?kB&=Dli26^3Gnn+# zw!y?58QK@qnTfX4t0vl1FD6a5ws%dW4K(3e(j^7x--KgD&xmP$OH0@+t7#1RI_d?# zcq@6JOcl+zVV*Ko4yt5Er0XRHWliyO_V{Pwxh#MiqW*&P2`pfwh>M?8jdx$wC0(C zcZa&&RBqQYx3W>mHMjM0%L3Ch-&u0oWNu}n;%{!H-vL&errpk#+tKD$Hd>ZrZj}fF ztT|1)-K^?XHqI?6p`>;F1K+z$y@L^~2OrHU?L3F`7>i(9cQzZIOg`Xro)mJ9A=0@{ z3znPX4UuLOgslholKv9pW<#W<1fki)jdYP9bf@@4nN0d-qi;jA$UW$-VTHHWw<`m( zy5>zPJ6qpgQZ|f%u8#uFg0Eq2F>%H+LLy>LqGmM3@sx=NXJzbSs~tIT3)OY@`qR4X z8%hOF4x$#kx-qQ7q#|?_*nl~_NhYqIp-(z+R2Lp)p_NW0)aa+dW_CD{^cMQhS``<2p$AD>-az%(f4Y64Fb{0G62lGG(^ zbSFTyUKj;4lx?~y7G<>}sn=fAP{v4fg5LD9GcDX~1-@)dL}&lgM$G0#>mG!?GG~gn zXl!(If#^+RCH;@@U?)F#?RIo3!ra$fa{xf#^WZe%5qhq5tK;QZ8^XQ0E;GX^RFR)BgmSjj^84_ z+8!AKI|xMMXlC_0tSU=5%-${GcwSx-|1Zb@cg4V310(Y7!deo{2wJ1{iJFaD82|LR z#X*T~E$EbN;TY1^k~s}~j{j<0%wDnY1* z_qXSxo~@jEt<-t+>dIl(YvqVTdv{6JREF`A%ASr`zUU0e#}a2UqvUOiN&wwV(pn@+ zvN4FvU?Py1icNGd&XgHs2%}7a16n zPh0iNP_Zh@gc?|Ttwuy=-QJ5H9%j5j`z8D6(IrQ>%1O^!sjYCwYR^Xy9Se)7g@^0U z?iua^-qUIh-MF{gj&i)5Ycwn0OBJq!9{7NVeTKXbu`;`*TDTIr?OZCG=nHljbrOpK zf*73QZi*{xieT=@SleCdLeL#J={w^t@J3$g?j%vZTZ?#|t8o-9j-5msz~sGRe_5jJ z!!S8b^o&YH^BBp^`SH;_*@vU3le(4%^xI8oz3qJ6Ni~j358J6M9S;?2@_UW#4;kx%X3A55lauogPtY)+xgQ%oq#>U%G;{+j zG;@k&g&K<8Mv85Cyt9r9o5~9uu_q{P*@3wATgii!_+TDeHo?{iYi-}9uGsr#FEEDH@ z_6&I$?g2OwBDx!mH*!thcXsTMI+^FN! zvX$#z;xo17}X7ggY%GCiEO60R6<_P!_GX~2ENMsLC+R`e+RJ%_eAct4cGTuT~0J@ zYaf`j?o?&h`=knsiU+ES_W)1wM)q-;2gU+NR$_HLnfU?sx&C3BgW_yGZ|nJTud=s* zcLU+aHtN#3dP6;qh;R99&(z__aIX38w(72?#R^Wp_qRJJpB)mQ`UwYM)1$KP>ZE$Q zoxW8RZ27cZpc7}jH>rkPtgWP@v*Q0GyL$hn&FC#IJ@Z)qP#Mvo`^blI)3 zL`rem9vl7Qa@~pI{7D>8>y@V&x%IZAyz;t6^4;Q6j#{0%7!k~dl#$=Re%BxX=9yMTHp7y}2o0&p}1fSOLWgPU>Y8gJG$ z%BRsW6KP@w*PE$gV{0Vqp~$THVFkyndz$POE_Y=`=XhzIU(U)(ieKw=T1Ck`l z2>H~$4buvzRM88Ba(gxCIaTx`p-jA7Z10+C%hZ9IdRe&2*6kj|4VTG5HTzdL^@W$p zrX{?LSJ!zgA##;QwJN9yRTc2jVJ_%g$1ZGLtl6;`D9C7)?8vN{YnJvBBze*zsJywp z%<8uq0e~7DU3?FoL@bU94e9wFdh0OXcRtzADj;7)? zT8Bpii#ICBX51U$6+3|&?b)1ZZRR8evtLM4+nnuQm%XryMCO`mYS+)#HRUXWcXI+j zOg7cD&26s1nJSy!r?@yU%f*55#h8A0F2UE0u5~S6Q*H4~%#pf8HQ=6ukUU$)Sq-CW;P zFT-ZPLn$`=*xcY=jjhciyXQ8IY^q;>-KGYsO?yW|h>=yO%?(WrP5Gvg%VSe_XH#S1 ztTE-Rv8gfTtg&e%Y8eS%LY;AA9N`AUeF|}16#YF3lk67sp`>@d|8+8ls zso=$4nfuIa>9C5s!nKrn7oli<+^Hc|xLOxiPq;zIA_jsi+>g6xx^c2(HcnbzDpNFL zSP-q*XhWbh_nDZpT{l-+M0W#<>JZzT-8rxk4x){DxKi%gGTKV7LFJ=o-AO;cZo-*r z7F*&LF?;x=%SU)4<_~EYU*+)l;&NnKx(Tc+b;YiH2Ym%46T@CXl4M`SYRzG1Mt z%-xnYbyA#*i0L3rsIJCAIEj!n-2X+1BzI|N4A5o^i|RC2s*v1qKxqezHD&Ei!E`_s zsimjuDCdpJqZ~z$&le`3#NySEd~wVcOJ>Hh4YjVr(->c>p&P~%us4^h4Vy9hrOj|Z zi>P~X{7;Bks3Yc-z=m-vnDQ*)3gq`mFm{{E^(96?YYb^6ohC zi`y!QJw#^8bDXD=Y+zUttheDuS3K@1*Wq^ZxVK!`_h{fTe(sG_Sue=}@!5x0y}qg1 z`g$p8W6I{St-LRI_Y9xp5*5Bn)+z4=MW0SCIGH4NYW92@waqm@&V4R?8xPYTXq9C0 z*419z9$C&vjOs&gf-IvdvUIH6kUbHS)ui6Ao<5n$lJ9PAE#8j4IIh*iElXxo=3Sr_ zrQYF}_QRrdxM_WVNX|IpsSPCqd?MQMIeZBtSjA6!p)1cEbNc|j@eGyPJxZ1X@kA9( zU6HXhk84RrOSqtLhH9_dRgPGCo-gk}oU-K|d18)s;>}0x&b)GE20{Q!_A1Fmv@4IE z(SFqstwU4HrDSugPOh zfu6CjAh~#q51^{qgiZj7+&0fdCP|&|iuq^&NuKynT+C_LNQT%s$Y;_eoSQMeyr)Uy z24%~8$)FF|BzEP!L7YB)5AEBUdB1-j(C{J3S3cV@X?nmSKP5{^-nCFpf{`6~&UJpX zm9fL1bq05^%YQJvrejjD!Fq*rNS4B-JlZZ9Ne$K68Vo-T# zmB&7e=Sd=ha3bzS8cjok<}(|7U0&PxuFiUw@nP3w`FCgBAni81>a(->z#@`p9AmgI z;i)FN6+=(1uHhvLJ*l)EMt5MKI{Q5%aj_o+_TAVIb~k66I0{=RjkhZ-hu2VXg{&&B zIQ%DZSK%&kJr8k>`#ouKW9}Rwx(0?rwY#vHVe0;&fh;T^sKnWl;ZHsynrfOdbIWs; zNd4O@s^8}EAM?w2_3$k**>+TtFXJlRF z1myScglRM%C%DRe!zv^EF|jAuyoT#df4lOt&zkG~j+Ks;v1qCf z55~t}%TTyBJOq>qW1HPAQ5hBVY;P#1#d+QQ*C7De?7%mn<~(lXt+B}jr}pq@G`u7E zkBf1pza@1L9_n~&>?DK>)2y_kr(s2DEAXQ1UyC0#nylN)hl_ZW55rTgG!N1*i5?w9 z$6@Gc99vgB9-`r;$MBOY9R!^#?ay-t%TC7>PcS=`-&|=wXwLZK88NUJpTpH$GrGnp zTwS7+!X=U4lqoO3so%dC(`dQ^MJfC=za*3_+OKy?;qn9n2D9|o9M*EC6<}I&@DDfNVz59u~ZyEhcNR}7K zrM}r|fYEQW>Gu>2ME*2h^i${^E`};hm>##oxe{GdTKdm}nsQujRF$jDs9hJPnyoA^ zikV+qK3%W=Q+bYNDCiV4^U{@w#4%<-4Sv5~Dc#5ye59Lhlt3EOp<@Ds^b#F?4~ty5 zl%CuAe{_(OGFm8wG&$8t%vg1U<46FMXVRD$j2$nM+vcHgc$_riba$yY^P#Hle)(KQ zcZvoFvdLxAzg)moyX2p2@gM58oq+=mW8;bz`gKp4+y9qOE>*kxDqeZl&-Z1>EB>qW#l z{+bxZjT*xRY@ZhLm5r{D>o4Oc50LugGo0Lrah<7ELt~ zTX6IEwUMU#7-`Bd(!|OK&=+IT^^NGhdM0M=+t4~0$BP%+RwNZeQ>>`e_=FoL*?z<> zmyBp2TX=oNXVo=cila*E?-QO#GW0f#4I|!d;YrGZl^hm6j|WB`f6q%DyEElg!-z%z zoRt7ZBw5$;B6A_6Rckd*^&IOyR{J;w?^Hgu-S;_5zR;c&8J-5%yPb2i_4i=1s=H;l zOHz6@DQGNu%4vW0Njs4&$)TzYP33#WG$j{ShLuozc6Ed2KgyAH>Az>qsP-*i=+_-N z!v%IXUOEO;J@G~Lr)r|n4zA6YSjj<+SB)nNq_X-%3r|MFv71Qp^w@Af3hCopnN=hC zlB`eVdw&E4gR!rIk|t4c@>ZGG7;77P))*_JWg27s0kv6~K~X!WZVK;gNhUYOdMb4# zW2^$gAL5X2rdO0Pu1IH$uHaO%so%0P=$aTrYa>e6SwVO$gB(4rLB#2a`KLBUG~0_8 zvfm`ni2-K?(J5H;;s90HfJVMBaW`stB`pqibrvj8##~&i2+a>7)@;UZ!;0G-U6_UK zNjV!3t;AgQT#fD9r5Dsx`BqqgQm-KbPwjxzCRIzeB`hHCDMBjV7X;B*vK$AX;Mn9C zAD$*b5{(|M?I!v_h-htL`gtr}1pA5~NKMzL)ig0EewQ%Nk$d+QKa`uVrrop`?=dH? z-mU~><5)Y9cKZ3HTkuk1oQ`V#R!G198$6@a3B5ODLB+Y`t+Jq1U6#z{8RU_ z{ic}AC3wz`5V;L;isu}yjoy+n$|ndl+PARIXJ=_(jj#5*WNVpdW;Xq) ziE2nmz;fD@Z}Zl2FTHD{I;|C1MkhI(LpGazHXdp@z5qMUx8NDo#-fgUfmniD|d{6KGJ9w(|vsg_$gF)y@7V7`#y>d*)2yeV~IOPvcOW>q=G{vFr zFc%fy#ASR#Qab|&C_r<#Z#R>kEJ${-lBaqack3CMASM7kqouHQJ)JyOL2D@YJhqTf|*lDK}_uU_Qd z(?rzo#ferBvUv)3zTMm2(?HaInE2ILNWi**rT2kU81)qnqe$7-_%o1I{j@uIw_6_g zF)qpSKjB3`ZMR(b3A}UR$M$@SXPj`-vJy@`G)uS5E#2hZuPZ;GSO5JyM>9Wj8p$@e zuU`_{==bZDN-}wYiIS`Vt=FjUWNgfT6LVkKIIUOVTBmijZ|Z}da#p1ur9fjn_Z4du z`3FHNk#8@att99x*30T=tF;;_tDmpds!3MASdCSZO0$`;{U!F}qfbZ~!fBO{N7Ftg z2H`o9A@OpEUwRySJ6o9jl#tPdtPpnnxxkxF3~MwGZmyhzAfhtJho8q;?0GQ@Ae|it z!=8ubw8TGkv>U5&ea7&7EQ9a@p5-S9i`33ex|F;+qcLk^mn$>e+}u5)t^A~fKG84f z-NP_DKG=ZRKf<4{TjYBRJDfbti@ejCD=jgheuFtW8&PLnfKytJ9r!d6 z7%l^BjV^+lmH#h5C_i1yyVvC>u_Qk|qn8~8tNiqNH>5 zUM@mq?FxvvZWJrkjnC`d|687_8&6l=_%7`Hk}Om=>b-KzI*DTB4^Cf(Q)69pC9j?n z>Y}gkj;`VnCq!;^E>uD^XGdpUN^I%3@hR^@&6Zz)OB^awT2vt2gQv62R6%C_e!Wv^ zVL{Ruz^`F&%OoWf(Yokr1$?GUjj4QG)wqQ~&9$lkEHsN7V;$8rslwGX*=8njCf;F+@*g|bplbjs?bv=yD9QR)r%6+_wm zVVK=#L`j{2PxS69_Q=gE!`$d3l9Zbb|dFxRS9V1zZoC=w<+m zEB9dIDt3DVR&ITBQ+Q*Au5srNd>t<-o|B#+@U6ejBL-FWXYtvp!DsO-|EtP)c)g(E zK&uyON7uS~VH>L#oQ7)4|CU#$Ar@ftOG6J?BxOON?$9qxx42Of zx0oEZ26fiYs?w^$uqbSH2OwJPTlD`@JjPPLtsx%&G8z7F<6&#?2FFsvalpRPSL;hH zo!wV`i{*{PfpVuDST0Q*$S^o=TAWKJU4>pFsr1lTpO+c?eeyvlzw~iU-)2ItM39+&+L}yDu5=l6$U4gI@N?9{H0`_ON|%F0Uq=KM#2sAg?p&~z zT;rMQ<=A+p>*a_!y_``!)LVTJ>KVg7n}mN|GwUS zUvq1@r|z`>F56>wB<7P?us(I$<0It_{Ydu_2i~xvyG|QHF}>_caohJ#+Q) z^?sf3@6Hpwj?o|6vuiIQA0MM<`yL-G$a<&F(X;nhA=lrm=Ua31yx2H56-CdjRfxZA zx?)-0yJob)y}`Jh44(D2shx0D*1KZN`v+vb>4%B#GW>{I$?&YXyn1K3d~A;5b@}Pv z`d-$1VYZO23xCDE1P{*E(>IsP>z98k>wU*UpKg49X!LESncrGicN(94k5!1X>%{Yv zpNPZpJBjCK+Y5Pp_JT`Cjo5yPH2>Psa``Re|Jr>P;+}FjXNg?)pRVWgo9X$}o8_{z zUi3?~qHmZWmz{M_qov#LJ&;hIuy}25dVX>{Y2$CZCH*+ReAQgh5f3T6E1dOkV(Mfj}0t@QKp{d#Vd7yiail$x)YgxlKl z7Y8ZT{%(G+*i3G&xkx$u!LJMdh&(^iYraO$w+TJ(t-MnBKieeFMtAG^`_1$`^AbIq zjKfjJd4X`-iIFPZ;wpXf8q z<(+2x)l;T`k33fR#@9Z5^d=(?I7GSVwnic2Nq1_JGez%mt@7%jGbH)0n+yM(<;mda zMaN~mn>N<7<94~+VFNvPvUFc`tx|A{vP$v9YxQj2LOCispy$`E%pSR1+%C3!xUFVQyR0^KlOwSRQeeL+HH{)uh>5j(jxvRzb z|1fu-QB_=D0O-$DFN%WY+8c^p6dOwH3Kn{AcCm{cI|`^Eu_Fpr?7b`YhKfcL6KkTz z-iRhfP1Hz?F>mjEHW&V{to1&;504LL&2P?`(`W9qd-;jx#;G`*6-B8IC#koOP$=49 z{x4lI_UbMSA5hqF^}q1{C47Q0Y(dMdMq|$QqqWM=#)DY86RqzDY4CXMO^0v#e1e-o ztKb959gg&PxOWu$N$^b;kpMagH^1Fsxg^PBWzBW&q8L4ra};*#Q6=DcvjQnwJEBU% z2af_7*>$P8Zakc2w5PZuv|VLTBBVUM0#jBI9ZB=jP}PMe$(d53;GUr9FhR!oP%h`U zqnw04rF=lS)Dkl(rP=1%ICoK7%%OV5t(d*s9qv5L6YC&0WaNE#FjrSBpp@lX-=B|h z_-W@T-Y49je?qv5Wz_cdDfj0W1;KMmh-)(yQ#KbHD9`HyP_4vH=qE=p(g)Q>oFaW5 zf$|WSsGhBM+@C){c){QqB}i*$aNN0pli&M)iYl;h`F)qN3sb8t6a~ z1-ZDxZ*$jBu+QqOK#ig6a!284S7QmPAtZDZC5oZOiKe7t7St5sLGqxuWD%iQAeY0i zouSMX{b;avEUK|&JoE~jen2igPG_HUhwpAlZS_Pg6EVtKs7vF->~lh_5TliKpgAd0 zV<_(H1gXgsHwL!Dlv7BdDJ%n70P1)z#fzHr&4`{o+;sVwB_3V!$-Qk?+66qXizxa;YSANoaXzc;<1NFqP zgHl&0?$l7J>!e^isT-u(@lrQQM_E6TrX|U^XQWzfq@I(kDN?!6Nsb~NQo2Lwzfi4X z=A*L2OPWikDejQ?o%-|mNQ^ro-ca0(KB#X*DLB`26xBz+Ki3I!f0 z4OJZXyK}I-TcWFqbFkyeDaGAEek%6-{dH1ND%K?}33XdUQOX&qQaveU(@ghK?&4<= zO(m2%gt{vRlZGBf-G}o|EWH}VJrMA9YMdeQ823yhQ!YIdQLn^GD(~5J)bC;qZ8wm% z`$KG{T3;UQ4iAgpi+!YZQ>6});^#;mq7r_f65fl$RO^vRnCD;Od&=_w<@r(ECDovM z=7~qNT@uCpD}E=1*x`1H@>)%VT3oq&zDqt{V34AImYWlG0McePuu~DR*PMsRFZ;6V?z0Y=4Lv{SOE z^g(GTPX(U#KwQw=6>#M1svIMoBY7!jNpI$0oUZ~;3?Sv)>8JqZI%&Z?shcDh+AdhR zM_NS+Q=X9&N*SrVB2^;wRN%TE@_b4u`zUb71vHN0`YSqIAvucQlCXraN@*SUmF5r! z-=0y*>NtM2mt)*Gr6Q$VM%%@*icy{u6}ZHNTqcmFDD_F7NYj+2q#m?gg7TG)v*+og z#bNGZp5jS*(R^{(G-bZhol;KC#JGh@5@|pLDpmQK>T+})YKa2(<)OSmcBqvK+{pv! z(@?7vxc3J733NxvRNy`t=q$ypSJvw|Ki%43%1z2vimP1$wOct#B^+OfI-um}IL~}m zqK<&DU!tKd0(74AW{T7|Bn?WyxQnC?9QQ4iP!oi?d`Ai<9aFASd1p6cT( z>L-%RZqym&XOiD!)H&rLZFj|rIXv6fW zQuYS6$O0)bu8e`b^r+j`aCcAzQtYUd!S3RoQrW;+U>}QmsMMgirzI}*br+8mXHtg4 zg}yh{M+*FZILM`$7skC*T9aOFK>ez;C+T}ohC0E(Q?#gV7y6DD#nm|!SJQH#Z?@{l zsx=f-mQ)u|T$3(R3rV3=UPTrDe+-oO7V2_St*Y)Nr7gph&T2L(nBp3!@GBFLvN_3B zeMA}$x!hBmsqkx^5VsfN-l}dY{2ngI4&vNJYgLC6Uq>;6%4@9}q@koPYE{xK*beqo zwS|c->Nx;g6rj3M+?CE47Y4!}e4LKzp>{TLW<4KTu^-Bt;_TKp+<@|dFLXMJ2Gdc| zAT0g3Z^I2%b+8&vCEV)RaKm^pOzlH)4JTvDQ6L=61|T6~)ghE;*z~+o?w}YG=X~@e z)C6@jl`xMqMTLLa2_+1fig9sjJn0B+7q2GKc6-n6U+XSrs0&G}K=YIobth>U#jR8y zleUh>lpEB)K|-|LxPR?<0XL$H;Qsz!EXHjGVO?IIL2Xlu7r`0nny?=#pQXAL5!D?< z#F+hSQ$e1PQi#WCm`j%0os={bbq0jny$Z+e&a;{=kn*9p(~G5iNk)W}AC>+w8%sa0 z29Rn{T`sF*Npq-0H`SFSKhiz*C}}da{h@jtBt#outjizjzZAEDa(Pd}S%7gL)e;tL z?Ul}0-oLC%hf!bDk`z~(wkrI^ExLHLJE$An=W-NTiKt3i zlm*-VARANG&<2qrASG(F1!tD`986h5n?T!5pCUDx@=O_yYM{Z_@t_SMaP8zS+_YsD z&B;+5b3nD!mRn{(E|(6Y+_hB}4RpQ;s;!nux<_iSttH)ooZyN9$LCwBs9(K4_^@5wuu=lgZLUZA4TbFSoo1!$<-@{S%tbb{w zOR)M=Tp3n%xI5}D%7JjC71~!SbKIp37*|F2rkd5IF{%N=x+L|-xZ1ie>0fyJt3Zd~ zIbMOf!*+0=fm612EUd0sh4pYiVZDL-{{`F0Jo9srs>gXsHDFyIf!j4?EhaT$olV0y z*Z)zo|4}Q}%5+TG8ssF(S1F}9i3gR-Lb$PVMF`(jt_q%<)` zETJoefe9_b?r0@N^UCm?QY`yQ=)nmi_TJHg6Fwcq@EwK9SzKNbl4;ZwFGsfZa1z0( zehyAzNmfT#c2D((@cNVp2oKlk>0z3`6wfrm5{{4T>k*c4etTaJH}PiN0FS_g6iDnNXHXl`Rn7Zh>`+S$7adry8T5 zcG`+57wpHaWXdvMWB+_}e4jnc=RWg_$uv$PiMEYSUj}Q2ZP*Usw(KnU!a8oNh#ryH z&tC;&DMOolEb1g2A!jG?EE?ChTi>*}B3e_*q`jr!glEkW+-ilJO9`C4FJLCTujo=D zEMadY4E?rXShpO8{uIuj^|7$*BsSOo&BIAtrf}Z&k5FQzzV9H1JKM0tFTJtO{g&iG znl}w`znBMYcN2MM6;DMxaW_5l_m`*Jf*isUc6ebpc5o2vU*%~pb9Ke#>br3)yt2a` z6p=~ua9YArSROuQ6ofrnkAgJY(~Ce4+@iKrJlfr{q$s_<0+jM}wX>&_xa3^lGcaKS zlwMK<9BS-YQq-sY;yc*K74hvv2d$>~rdvx`U*f=jWlD+{Au&+r=b3F_+v3Z*Kt6AW zctiN{B&Od0Gffdg&tQKRn-T!)aTdYz(Mh4OT&p6k53d^q+a}cSJ1>ZVe0nb!17Yd46CmYj=x0Sldd9)> z?y`8)QqSW&aVeVU*+gtQn&eqpv^z8hQ?|oAn>NERY&hojVR5F1B6f7cHR~#4cxe!Z zFQ|q^qVZVQ2zn_vp)7<>!g72Gl$&^T736jvj#P?>J?a4KYc<{o>)jjf@(fF`^uqbm z#RX$;RLA9|a7<9d)!G=!V_J78T@gW0A1Bc@;Sl83e=+=ijwl~~9G1&Xz*t$In`Lmh z?R*TQnq!DP15Z#&WB3DwNpN&B#koV79;TRbxQgy1ex$iKCFei*nhf^8lkjO=N(oNz zpk57W-~h**O+9f2UZe1D3SB82OJN3u9u!uA7KJ6)(Q*=n^=VBgEtiAPP4r%u4I{g} z$0g62Vocv3V0LYSTIIK*^uZgR&SKi=vWhN@17#IAQELbu$z!J7g{|ar%5hwCu=yj{ zc2P$>_D+LQ2uv7G;n=TmxfFy=#Ou+|VPqRL{T1ft!e(zEv{b`3R$TKQMqyIw7YOka z#7QjbQy-QyAIoy3WG~@fxRB)7=&~jSVhOEt2=Pb&wVgFN#So4 zo?BBI(!W_%p-W)G!{SvSd`{ta5GvwF3hz?*n8I%$#CleT*unK{LHMCQ=9y3v>oC~~ z!~cJ+2}>vs$E&b}MHIe?XV* zEGb%tU_K2f|8HSiC$VYue%Q)uJMLMl7hi(#K_G4`&jYazaHdgy2&`{e_a=n5z1P8f z`-|24o8 z<7rmcq5kx)kDnU*`o4gzK0wNnqU^>$V7WA<`3cSg714oGeuA?*MJ%M{A8O(99m=^o zeIg8QjB6@Y$1sJKYgfhPT9jr9Er(LcHmmkGF+rY}Z)TX>!nKFm^VEt^2lucKO!AzS=}{pcu`lKd6SgYTz;I(H=aL zDM{CKf75a+TAmDhcW}Z63csfCZwM9fu6A3<^I%O3tJKBtqzi`8Gzyz(tX-g&^6R!> zTqmf>=@1N`#9{b(f2Xd&34`Hmp@}#Fgv0FtKoHrSEEo!|JwqLZSR5m=06*HcdZF`b%%C^bMNgV zA!Q$^k37$*33uqm!TR40kAZEqVUr+Mp&lMs=aVYa{BLYucbxymX58OH)?&Cf7)Nci z?=)DCTjl4ll}7mu(Bvw(-UAz`0Gf+J5q!0c+GD z7*;wsgX@VSvK`vh+HnumN{&cDtDWddzo3`0Y-#?lHOG4bFpHp<3eq3_f7z=W98N*b zOFChnSUTp9Oa4rl<$Dfd^xM*UoCEp2 zopazK^vvtV7oj&cID8K^KLs^$5^EsLPt(i$I;1%mgJHEu3}a_w*t+j^$l0aJEm;1z z+5tv?MR2BvCe}jeB*q`Q2eI-TV8Vng&`XmCV;HydF{~foG#A3?CciL#ZCs=lbqjy2C{`dc?SK%Ccirx**TN3RcOzBag8=Pyo-SAXI5}ixSYY_|0csFZcxo&|8Q_s;|5y-(wbfm53!Ww81 z<>^6T_2rcypQUu&cY7jU9ke@$=MvB9XrP2+ddw5A$ebai109oJQrM&s9z)~^PH0fK zTQjAqXxhz9bS>VpTUmH}yG^&Sgl8x5=v4YRhV?1z3L(73MOR*T&y-T&-O$7Tz?#zW z@C{@k*OZ>3!7`qo!256+N8q~b=92E+OtBfRFHDg!WF3T~k6`#_FovJg*1xjWs(n!gKY?1Yk-Lt;ix7}J!Za`_D8?+^!f+k_+Bk!vQB zoArm9JICRS8Vh$?oJ87Y?89Spb@P5l8#_3gr8T8@V(b&>e>|Sx9RmxT!NS{kP$IlV zH>GAVEbC)YQ#@Q!1eSfFZ%wfc?s~x+ctcc3|9w#$!9aWL=NS~9DpDN&-%EZDXYDbE ztq?w3vJXPJ)yAUOmj6vT82V?rPYi^K8KWVTDP@{RbU)!h4=f9>=HN}!LE|CK*Au2d zs6qc@@5Mu3U8^?>!VWyZeNti(hUIBFV-+s{Mr&dh;PPf#KR6SY z+xTL5;2eg#R${oV>DN@ZyHNUOxJosJcf|!XTb99W*`ch4u&dYtVMl!*gwOQj5cVx{ z9>U&5ufet-w%>(tz274UcXX>!5$pUMVoR&PLbwP*T=O25d#QgziTl68a#vE_9J}Lk z420CK?vPs<9HXY&EwFq7uA|`%%f1UB_LouRAk6Ro;t(6N+6v+E1sINlYX{ilXw+U8 z!*lY{JZe=i7WN~P&d=cuNH`nE=(Ta}Hq z$}e#&r3rweggnZfDl!Gu{6ELefV#nLDXPyrC}qBobx4KfcqN_IuczfL5I$88(3;b* zyxz!x@R=sp`~b^2s@(PlEZ5g=LzrYdfzV!g1z|_^F9;(w;Z;^7>O~=3Z5Ncqw90QBMdv+j~KnX8*`j5kJ`b!}6&j*p~aW z9$OTaPz&y5g(VznhexOVa5WA0C*jUgV8TH-e+x_K2lqO{5@xw$s6=CUuq%d-pwGh+ zjt;_b-#84H!yT}|gj1A53Ap}P_Ai0y&=~$q4hFNb?V!F z(6?a;-5oK!7ldK0SPU=0cTfYW!y_+|Y?*Z;Tqq)fwJ-fYxK8TJ8dtnG)P4x7WJWY- zv{d;`bMC-Thb$vq5bc)DE&|Vaodo<{5SLp7!Z9|1l@%2apEHYVU|h1L5tL_&6|9ye z|AV;otO{*=!#vu~>S~P!?U$nR;4OKQEU%~ts98{6F_F!}@`{P;&KQ?2s>TlSDkkzs zX(GDANH2TQvKGdriP#RYUd2T>kVT}5Q=y+KIf#uEmki~>=dIXDnhBcf-*CStB?8hTL6$m{Qglh3<5gNjv5KTF2Mx4otydW_*`}?qSEbst z&#QviZPRhDD&ne57rbhSk2YQRsw-;NmE{#ledyI#gxK`ES4%O+rq5m-#6_Fzy}d;F zdimQ`@eUP>>r4F=RL46)thK4OW2D$?Q$z14an+`#-aW;8n_7AI7Udh{=hEK0pJ-!K z7w-Y0uT6g5Lqv*AVcs!fuT6ct$B5fD4e_2pKQ#|MFa8P|>m4T=Hq0*}&U=Q4uxYmU z*J74Ui@g_#y*6cfFB6Y!+U~tpIJ)HLa@c#D=wMTh_kJZF=K< zP1rZWTvEl*%3r+iiP4QwiK1qz;qySWb|ukVdMG-RQp+EkXYcb+_>FxI9W z<$NBA$)q&#bXzr_CnB-Xc2C6$PMLF{w$D?s#U>Y@XW{~D%Y@oKx#Aa_Tzr1P8}#s( zF49Za_IWAnNvUGrKo_51MQfW{_`DJ^oHFEyo%ULcBgy^YwU{bXQX5{2#s3qx)~5D8 zuf;!7mQM$}_`DGsJT-^!0$R*NJ|KHivSrhWc;&6Az&dflD&C4ZoHAi#u+JZ&v5XTH z%KL~vLN`Sl zA|;An96tDtR@_MGA}>bxjZ-{qD&aR?iD->^Vq8_f$x7+AQoqKy_)S&Xu<~MB`%P1- zx5Kzp@zq%`zj)e{VqChoyQq)fOeKL; zBdU+zECplW6SlZ(jE_jlm+>KGkYAFrmr`P$WBg{rO?ph3Bd&!i;%mi~lq_-%_<-iK zzHy8!@wKv*<*)!#uIr53rHO>ull{I{c9K#>agWJ<@PX)oaf!kyRuOZRd87*#_qcdv zuCj!bBmP@D!*8zA*b`IAqsDxtl}&T~<}1l4B}XI%ru!{Ymf5t@FICB=lsRIrPm;r8 zC8aCok|VO=3#DmF^=?w4=vu!trE+(vZ;I7+OjiQDQ1aNCp$sA6r?w(8l(nQ}5x-`q zUxpImjVY5w#+u`PE0kBHnd0Y=Z~Rs%u|60#Q+TFa_sdku_@Yul_x#o>5v)ZkbN$vU zk4T9kdCdpEjf#&Src4wQR+|1>mCGn4U3d?)`fpbrvmWJC^53bH_m^?4npX1Pt$48f zf?lh8l|?8R_g0{NO1A*1nn6zf`<3WGsYL;k{SGMU`Es4?m!(`~C3)2LKd4xOWXdFu zX8uQ%Ha4~OKdy{styq*<`;;=-rg=q9E3<9t>VHOAYm>kKdF3kW{NYgl3rd?{S%Sym zKK>V#F(ldZmy}r~9QQ%~mlQJuQzlzBH;Gp+DA-%vV)%UqJS1gbwN-B>-sHu?Xg1dwK0>O}g$JJ%7cj*;;0y3&u85E-xB zQiiftL|VlyC6<&dK5wpD;#AC)!r<;LTRZEVd2$FOLYM$7e*y0pp|-rlqS*= zBLdvj7kx07nIHq+H_s!biW!xA2eeTK^o1xTRRmOqoBnD*KTMe@PC|KJYQ6p_xp#P} zJ|x^b5(B){tt5Gb_Ew+CIE%I*CBR#KMVe`;HFZAdJrmTPI z8qRSpvCjkgsPkA=LLUb7Q?oc_mC&Go{_3|j{S*+bKIW8d=lmWpP<=;wtW=#dMhsN{ zVU;TT5#kyS&TrAb0fW>bL#dvYQt71vhpD4k&)_<4m^w)ct}W_#4^#DFvPFLd)pi`N zE+owq)ned%4|SDID;#1}hv8I$@M>8(aD-ajCMQrfYf4JPz)|Xe7)+T8B{T~ht!}lc zbKp4j6$)n0(3If7399`FOqnQ-r1T4%sP<(Arwj(&X8ARn95`7OBW21lpegDQlALE# z)f5uWGeSn-LhVz9l8Y zm3~TKf?8}8mM*XK6V=kBba7_Ng1|)8i6lS!XQ(YuO0os#(hRkmj1!~E#>2N27Rxx% zcFt6Drn-hCM{}mSh2{43U@=qOBe#PVr3cPbPuVonE=j#<)3(4A^_fkZ?B=M&#$Y{@ zEqI)muUc7kx1y@B{Pv^jONkF#>Xw+VHfL4aa3pYn8eo%Ibb+dmr94H&J)4UzR7vJXsAnu+JTfRdYt-P zCj)+xn#zN={~WkXooCauVk^{NWAo!WsH;_DJc(MnUUgt$YuBsgSlHV2s^6wMGvU=SpM@j7tK;9!F$qJ&tVlkiyl;0O+zJ$jJ|D( zA5`t9OO@F3xcCwEHmm3S$HkASS@ANi28_`O^)|~Mdhmq$oP_{SBJ5A8 zqwxQt=46Qxiu}3t-7+x9Pxpa-C1sHQ8A>M;!k)ckgX=jI4Hpq zl&z+7%GpcG2c1&c

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

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

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

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

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

EZg0v)ybrrtRzu8LSK3b4FbUlSzWg9kjyfW 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 literal 0 HcmV?d00001 diff --git a/swaggerci/eventgrid/generated/modules/Az.Accounts/2.7.5/Microsoft.Azure.PowerShell.Clients.Aks.dll b/swaggerci/eventgrid/generated/modules/Az.Accounts/2.7.5/Microsoft.Azure.PowerShell.Clients.Aks.dll new file mode 100644 index 0000000000000000000000000000000000000000..d966f6c302c5ff88b90615a3e398dc338c50f5c2 GIT binary patch literal 90000 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⩔K)^HrjvE+m5e^Es2?vKefUMBj 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 E0^N)Anf6ogEO&;C0=c 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

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

*WKawYl5PZi{& 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Ȃ+)^dm_n4j+psYE^9< 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�m-~Y4s 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

Al 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μ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 X^_REvj$RS_eoaFTC@A^If##U6! literal 0 HcmV?d00001 diff --git a/swaggerci/eventgrid/generated/modules/Az.Accounts/2.7.5/Microsoft.Azure.PowerShell.Clients.Graph.Rbac.dll b/swaggerci/eventgrid/generated/modules/Az.Accounts/2.7.5/Microsoft.Azure.PowerShell.Clients.Graph.Rbac.dll new file mode 100644 index 0000000000000000000000000000000000000000..78fd60ad7aebb92481d38267c51af0b78ffb86cd GIT binary patch literal 759184 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 literal 0 HcmV?d00001 diff --git a/swaggerci/eventgrid/generated/modules/Az.Accounts/2.7.5/Microsoft.Azure.PowerShell.Clients.KeyVault.dll b/swaggerci/eventgrid/generated/modules/Az.Accounts/2.7.5/Microsoft.Azure.PowerShell.Clients.KeyVault.dll new file mode 100644 index 0000000000000000000000000000000000000000..b33058d94c539ad11e8348921700d5da36db36b6 GIT binary patch literal 122792 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 YhgWbtdLhd5ar?t%R$C@qKE}WR0RL|V<^TWy literal 0 HcmV?d00001 diff --git a/swaggerci/eventgrid/generated/modules/Az.Accounts/2.7.5/Microsoft.Azure.PowerShell.Clients.Monitor.dll b/swaggerci/eventgrid/generated/modules/Az.Accounts/2.7.5/Microsoft.Azure.PowerShell.Clients.Monitor.dll new file mode 100644 index 0000000000000000000000000000000000000000..e07270d248054b190745bfcef469c9dd187ca84b GIT binary patch literal 413584 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%0Ak}vNI1Ogz73zTD}F2Q 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

eTYJ`r#AYBD0p39 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 literal 0 HcmV?d00001 diff --git a/swaggerci/eventgrid/generated/modules/Az.Accounts/2.7.5/Microsoft.Azure.PowerShell.Clients.Network.dll b/swaggerci/eventgrid/generated/modules/Az.Accounts/2.7.5/Microsoft.Azure.PowerShell.Clients.Network.dll new file mode 100644 index 0000000000000000000000000000000000000000..6f489252bcac43180ea2c00f1d34e9f0e867c91e GIT binary patch literal 1688488 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�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ϟ^>iS>c2e@A+9ZL!8mIagS8Qb{(*n9stsi*h< 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%0A1D-2}tFk)?~LbXF#t;tOVz6RTxJPG-OH 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ΜA|%BA$CBSaR-=j2{64;zxjRwRk>Z@la8p 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�r3wfP7tyUWWe^F|nlnCKxQwJoa)xP5hHf7!A%Kp|Lhd;}UEpcLrwf;d z4hIVPbm8L}DiOh_3(x?S$k%?lV0WaTlHZ>Qkf2gmLWfF0!T^;feYxNgZW&!c#U=^$ z<--4Es6+%`EYw9#AOSWTER8cFRO@opwbnUE2aN;%6Es8n_eSrSx2j0BY^AE;#YI8-8`pwfk9CP$akwa!4Y&~iCc za)#w`s5C*$kS^%put-Frjtl0!@v0QcnbtI_7B~a-==7LQXdr)jWaBwkdGpLl=8wLY$1(n+MXSLQx z++DxFCmPQIdWG-`{;u20@1>~rn+$zgZGJ83((`NGPrO?H!LP+bYt7)|UMW~fpOvTe zXGbVXSm|hy&ib=Es?MrDQW4{D5`1tHbT&?EQ%%81q?w76s`{uPQ1ofRM(7Ymu0OLDHJH|{KQomQ$9-B?QN9S=C}(l` zjH{fj^=A{lF-4vNxVcXYp$hgn$)|O!gj3UB9a8h7cg!)&2|#W3`ZF?jf!ZAF&vLc` zsCC#0GnL#iK<%m$A^|ln$E`nW%jm8@>qT@cUCsKlYeCYVT&G~I!j0_rahqnsFAN-e`a@}fSTWr2#|nUS3(DBLBask zCaphn3Ac`}rDBtWT7RZZ$qxJW{cZgj5v)Ih2B2mV#`R}DWJ_7$C7{M-3)EV{ef`<# zG9yRcNi(oA*7m9Cw6$p0RzW(Wh~hBhtVL^o%(E8F72ZC&4&`{4$j9|*6!x`fMBw9s z2H<82k6DZ6@_3^&kRtNRvX*PnOyG=I8q}4OPeEN}3zH?GE<{Msf$~9JR*$1D62`S? zmbzJsX6YPhjT6n*qIDuN%JQ{nCYIKsF-ZGs(X7#}v5U26nZ2^LXde+)&<-yVPjGMb z)}md^d@t8kl<>q2M5eAqyPgt^!xiu`d`q7lJbG-!Z4>HdFhHJ3YtdZ7 z14g$|u}MOKvdWqJ+E_tsU(v)sVGlQ#5q%+}_quYtiP_uw9E* z4mDaadFQxnCo)YHyBCX(Lo>ViIQ0MLwP-xdi*H6byL(_5`}T^`n7y+|n&0f7-F-(z zHu$=?r}SMFsmJ1RkeVO;J*A1ulZC#gG-WoEg%0NKBu)f#&NkT12 z`T`RAk|ZKnk^~J{#w3hOl6=UPvcgO58!lV-O)I#D`aKmf&pg|Gl`i2GE30eBCM`*F z1-Fmxr~FAlxof_Ng1#h)2;4Q$fLBbxxFiWdb-by<9$p!%&e_&C9-o|L3SKEYg)9lLAV$I~ln-99dK|Biu$gDOm#(YYL(AoO#Tk~z z@yY}-L%OU(#w-1KHY;bIE(WVi>0-C!E9+txw%gHho=ui~TGJ)0LJ4_EQrQXAkt{iv zttB^A>_H(*p6A&zyFbtNAKp`%hgO(pTeonE-Y)!H7`jHks%ECu0R7*TYWJ#xttEX+dIku%^r#o80Ho7~?wn(NVwZvl~!;wN-LOVuS zOTbl2K*An(WKkjPai^9zOk_e!SlL#nT4J}-c}ryW;^1&`XYH4bRBHy8ASL@{`&jUH zc$}hqEIdJ1IuOsoCn{76JV}HD)@QT;WvB(73>iLNAuaIL)Bjx@Hh4p%)5*|YQO&0S9x6>?b> zqOpECkqKkn%C4XlenmX$AbWOxvuOdcsF0&n zh+5!ikqIqeWm}C|}Zfk>AD$3j7BwbbYt1Wzu zLbbtbMV7v9ZE%b-TN@m!3)3~+9-glHh}Eec~;W~WKkj4 zR3U1EYl%!~11sAKRU2Ge>AVdxdvS0bac8#ya;+I$*VEDl`F?-BqWpe;qpqs@O%}dc zq1xbNk)?0Uy5A{6_xoEQ!#618em^ta?{Ia$L&E(|md^cdrC9cOzh~~W`<+UA_q#vS z->N9T-%rt%&VsP;R0~g2C@tS1vUH|tInB0Fl6v}`km1`D($m`4+j<(VdKwa*>|{|- z&$ew=wiQ}D*)w}S+lEx(xxRMcW5RJh*59QlwZo08`aQbRSr7`P`};(ezBzN0lUusK zA2NKmLUh-5=B7Jb=?)2_oGf#Vax2>kEk=1}r%~?sX7X7OsxOT3wF|G3-|29>&p)6j z`JFx_lKf8B(7K8r>;L~_?mOTuDT?*)&cfc^CEUGxH=rOv1P-u76+}cp0W$&$Dk6d) zLD8cZ6k*Q6h>D_Oz<^@nAu1v!e5lWyz?=ih8h9WIiaEdK|9w?8-PJv3=FU9?|M&O1 zU302ab#>3wH(fp5r(tdVd$C?@viEW5pnoxfYVzp=+rxV$+h|ziMK1D>@xWQW=`S6A z4rSv-_wytrf2=t$Kf0B1ab`;Ap*{nipNC?a$=REa3iD7__nRplP{h)0X1}^<;u(Ed z)1^C2%Jq)x&u+d0b`SVGSf^r(mZh`*M)qWb3w0Ap3)u+gLJa%khvvIQ=7A>}dY57$ zg)B)A`{Qr2WcDMddiF{L)9dw)LxSE(2sSEC#qGaz_yx2EO8Fv5$se_eE;5seE~)cU z2sz^?x>9bnJq0s&o9L4Km!Q-&2df~OEt%+wr3u^SoKmj!21}~;$@(mWu!$~Sj+*ES zW#kiGwTQgZaVEOH1Sw3;cRxjb0`4)&_gtJl6cBmJd>`&YzYs$Zg$O;~OeE$p{ zjE^0@i(>KY_#R2gA9b%5<05uo-8h&5ywt1pZE!rAV6N-VaDh{-}WrGRFoP%sd9jh}ja5k+IF*r`!=B<2w+-Kn5>I zfs9Z_4l-&Hd8Olkj2}XZI>_MotAh**fRk1zcL$Kc`;Z{x8q&cx5E5kkB7zJ?5M+=# zkimQbWXMefkfFB}1u&42OQ;~jN!S5osDx9)pP*Qi5Fq215o9oeAcNF_43W@-3>~tm ztmGNU;AH?AL2wN9A0eU($oMJJ8OV^bx>z8B3~k`d@LJ@z1_ETjNLL_(5d;~e4rE9J zJ;{F2ixp(duZvaK zyrVOa(WW{B87v`!jI zu@5i;F~%{VImW=7pzL|-Fa{r43C6%Tj1xP{Jj7Z=0b~3U#4yH}Aj3(h7d!M$tU*~t z`Ex|pF$T`Har~o?zTL3L^(YpPlp9D&{s>=jg`J5Qmtzk~Sz!-Kqw-Z8o!ht$X*?QX zIoWA1^G74kX45grzEt+X#sVEhBa|mWBPTzx5-MT;r$EZDARp9xBT300HIPE)*dT?O z#{elYTLMxtw&8`8I|8KqFN83V!pl)0C6tkalv+ey={O+e*N~zPQaCK@AcX?p0aC7yAcYYGDWndhh=d-b=#WiiCC@+#F9S#kf@7%v1`%CA%I}cQK#G*r#exx} zXai@4w;;bY5Fq7-2vQh9kV5J}iZsxJ6bf3D47-37id&QnQ;?#3?IVsm4^lKv70G%$ zNRc*217CrZn56}zq@BVn22v=7ffSZckRtUcNMS;Nl*8~AJiH0lIMzl&$)zAg8Ingq zN`sg#U2H=HDUU)G=}d@})1`|EQd+uLLCXBPScT0y8asUK*nczx)stP?RA(TCB}9;t zb^_}#kiyFVQlu&Jpa4iYoVCeJNMtYW9RcnR6-N21VU(jXjIybHSO237qnu?J1=G4U zjB+D*f5pGUD12fq>^+7x>Y3pYqx>FGz$kwPX~ZahMC2%p@+Zf?9Wlz^P%NG(eqrNGKuC;&jfpCZ!U$p%QioBPFJKh8+kjE@ z-lG79QE~|tqc{mWU=)>bYIrM(H3@-HejPCiBZyH*9YzreJx0+Xo61U_VH92lj1mOL zQ2#d~x?mK%CRP|l%Iadkh*7kGGs6YQZw&-S`Ax(qj37oKbr?k&=rIZfElP%6Fbc)R zX(?^(zb;l`^N!9iN}K8oqp*aC zQPNIe9fnbO88C`8MIIChMv3e@7o+frm0*;+0mJBejsl|t7-bQNVU$k;FC7c4bPN8s z5ns)Eh^#P5?K`5yh{XNBgrww;y2pia5mD%OL@YDK59@>D@dI;B&c5uJfFIKDh@^m# z-x1BVlwv6ghQu3?l>AYfKp=B$}1LvVVox+gc)aEjxx@njNCZa zBJxVdG0q!8in?)TpVy5u1;Ak-l)Hm*<_M;7o+2GAL`dU|jFoX_1dTJPGtSHxjI#_} z7-t>E6u^vgE}~oE>CV6XKmoja5?f@17V!8*=ptGU<8dbsWZ;fKyREWC{B4n z*u^+g+@fTd8fWEeA937y+xv$Q!Hw#qoiEG@=4?G$D)<4iHkIJ0~jXQ@Yx zGZR)`j*W4R6EP%|Txy(^A$im|H;C!d#WqCaTwh8d<#g#{8t0ZSR^vRsE>>alj?TOs zZK^Zl%o3t;PCJ2hm~rN1FwW8xc~B%?j>xXO9C0nhE!ZoGYbg%T)>5o6KgYL0VJ^d( ziPLQ@#RZ_bpW_$c-GYBNhrowc;^&C=c?MCi&#OTi?ej`RHrnUAAQF#&yONarQMb>G z%k4AEOzrb3aJ+qHuF2-_e5HV~?DM857!q$rQu0U5K9f1NeP-q{>~qYP*yoIGrZVM@ zu+N)72(!<;9A%$F8M%F~MdX!^W1sH^DeCr_eO|ZE6rd;>*Tp__1k*lmNjg}8koFm8 zhF12O5wy>w&OS3=u+K7ZVV`vvQvkEixrAz;orE3ivr0HM+zQ2-gs{)IMElGL+GkQ{ zpG87%pLNKlvXW=^nU}#n2f;DaH%CMl`+Rq#Gy5!Mb$NKxK5GMKhFc@QH4ygs_t8Ex zg7%rz*=K2>x6c$5M}HvfVxK84_T@*I+Gpi!A937y`>b)QNY>-+v$Q$dw#q)oEG_mq z?G$D)`%E#+KC^t<{h2c=Qh=ueP#*KKBt|)I?O)vGT3KniaaP1`yAPKx_#zD%k1;crw*qk z7CrAC;Oww@(c2au31HrTX4hh3CG7wE@Ez>J(|(G@2g@hct=t?R4=(C`9;<A`;jvymb_qs$7tbia^jrxChoE)qV`a^7WR%|TCbyp6PqGs)DgDpr)WV_ zUldJoE$J7KPW7|~DfC;LopFWD(-A^jyMpv@o>N=Q4Q=g4GS~?rwFQeH+9DU)B5~Sc zmQLD|vZc^OTaj(rn&Vp=N;N`P>rHHx>1uZ*#J=SeFKFz`VQlHQw-{nDlJ`Oy=nUUs z?;&~il<+dm|yX zg{FW(cUO?h&=2%)WaCct3yc!k3dLWVZoc|id^W5#OaDzI_XNvmO>L< zMRqq`Q7Y4w`or(PbYfyRc`hA>D7?!)1_bZ2aJx@%o!|f$+v0r~=3?RjIBOAmz#&2P zK6@VaXsu4*CZF4|lFq#^Y)BQhVP#qA8H!9(--eaxl6_$hcLKc=6VjDHM>xLUo|Sw8 zNz(qx4R}=eXBOi-w@VRJ4fEebN+ixM3X!#MB9BB#cu{yfNy#7e?O7S8Z}IV{aM6Kn zy-LBcYb8?Yd;R*ex;?81nQYJcSfuf9`Yd^J_9L8$ueN6uiQmCCb^Vg^pVXUQZFuqS zl!p=~F8k|`t;9^&>d6m^a&h6i%b;TS-DTiOhB3aoJPPtb@lPNr`J=WKE1Ah;gw**# z=w`-m#hP-f?=G1+pNts26|3aG45jkB%a|>hjL6tFFOYI=D6*vLyUWKx2%C)HrA|hq z$AX74@~v2F5qYKKY{hysq|m!ZwqoT7HL)*(*uBf}VcJmBu==9pb!{tFk*s+uR?+7r zD9*m>li)}SH&O*kDKWja!T_3R;=>7wiPS6`BtpQ zgJ;tqQceDj+_V*|Hh%f=$*fgFF>Tdw49avGJsYl1rySlp%R^8l*u?moBy;PJ^6+D%{xE?>j&VCQ6rX z=2S>aH|tic^Xq06IPdI#V$}4X24S(*5%{f5eKr-s65>{@VYJV;h1`m@rG+}#b9=WC z8@P3CVc3c_9ct8~P4@6IO!i1qIScT`6 z|K{Y8z>xf|bwjLe@V=Oj0#|Mg{*OVuFXoNFn&f{1)blx^Q2?_p!@u*<@M*rV_Y9SV z?>|SPp4|o4o`5I}+NXd3*Rt+?AsfE4oA@HIE%rb}Lf+L; zg5x16%bA@07qB9ZdBmn@OHKIO1CmmS4qq;rRY*#q683)zlJ+48)cg#Rl0Rxk7LnNi zN&S&U5t5QyK~iSUA?fHNixNm0vn7x;V;ee5xz=|clAZz~43hFvA?b!YJ`N5ce3!5k zM=eUrMb7-lqEL7hkykp-kwwph6egzwjU1MB&`1G_l5rk1HXT{Srw5NLnk5~ah>%AX z{fnsNpKv!9B_jyQNF8WozHnrb+-(4jdhbyH1C6w94^Kt0CLxY2 z`ZpzftVqZR9$7@{K%+?Lk1Wz5o61U_`Nwz}{9{3IJ+erSDSGGvIkM;~JYn~~Kdy_} zMU*(6sHXwsB_oEN0bSfQ#(^*v8XXQ^^Rr$VeSFls1}+47gq#ng{Oz00MlGMa;)037? zG2AH8T;;AsIwE5o#^){cj zdUM!ee(&jQHE*KiY@!Qk`^8p28&R;;XM)&zipo~^VXLw61iJb;h#Y0F$)~+0o!efA zR4w+JX*$^JGn_!QkkwvV@&F!xQfY`{VMxv*DfuJV>+r!UGjndQNAFRe*z1@rvDX>fOlQg+VXp@e!t6CKN3CZGW#sEwY7u#*>T0aDfiuIGAip&b#(H9XG*I`bX9SHksWaBnK);@a zf?`8vgf>>jZ;Ok9zT&IZLS;sn5D(=r=7wqX80+F z8Ge>e!!Pxy;b+2XBIkv;E=mn0mrmp;L-HsHXb{t-i*1NNfD<`32KLiQ94V(u7jqJ) zrHgfnV}4z%!sZ?ACvh;v(WW|^#9;|>JxkgNtiz@_cp0WRq$%>CNTxUcznc%Rx+1yF6KbgNB2@h z0Ux~r#C&u;Jk)SJ>BMQM`~9frJd{QHc_}*1UKF28O z+^#Y?3uNi=JS4_r=G7!6f7HEUjEmkdN~khdzAwtA(pDVxhKU@BH|&)t$wL{IJUM$T zq0IQ+uvZ{^;tktvze>UcvnZ6IQXTt_^?1Dol|i|$B`Nu%=J6u40j|vL@nYs2u5|Et z#cT;&$=HS*Qtk-2@+t^naD|tnJYJ!U+~ZY?$SWPko^mx6IbZ`zrdb}3U67MZ@pNyc#i`0Q3<_jJ# zxq|_Q^nRuQ28MD86%08E9T;lzc&UUN58s4hO+rks6qHasUX0-M3aJA_BBA$q=?#&} zN?zsh;Za`Op|3&1m=B-P|rw8`V8jbA=|Gwavx zfyZkh8?PQOM$qF$>VT3o-g~^X0Ss$EX@tj%;ua;t)Z?Xm?LUrS50o@cmCSlPP?9!B zkWtN$#4Ig9DeW+3F`z^-3@EXD8X>7iff5r|K-G5^Xq06IPYu^mf-PfQ=fq)mJmH&VYJV;h4gr}v{2#T?cGAa z!LBU~9it?b7=OtKf7c=49gTlChsI}lf)U@1deqEKw-OzGLCt#i$Ibd>2W{A2sh0nGNu6ZtoE@=kTtB_b6sd z;9bTxq?K|Sum2Vj(} zC>iGgSd;gN_aePV?+eR*qO?E#0bJ0QU}18FL;mSjsgJF`-=h?0Lvv*0Ollg z0IbP-q!LaK--BXJLU@m0|0?ehBj`OMbpT8x^xh*KvZ<`(*=!Uq!)#O#d<^f=dr=V1 ztYLAv0dDdhX&YyTmolsN0w$yuv5o3IVgx6oNFC0SHb(D})~xE~kn#8^N|kz#M9zpS zDr^*!w_u}Gm&{_=h$0v^V)?{IQjcOICiLDTNnLr5B%R`+QKE_WD2s?#NWDiQ7Q9Cs zj&<*m=vs7~c#k66yhoMq=woI-x5(@#=SEI}O*<3+&hGIRN_!`w=Z&J(5%k26I@`y5!4o5Q6l|Z~UlhP>UoN5A zJ}05GeNCPim2hhK2^4D*!V`mKmX#-l5%k26I@>1_dQXfF*;H2Y%=Ymz*uEe*hWeF= z=;Dd_AEdJh1}Uqn;nN1r3_pqd)<76On2E|0!w4EaQfK(2f!-5CL5q^1jg?kU48<)< zhN&k;`PxSuciw<%oGOy__z4DSbKQu>EG<{j-P7x3!craGHk zUkcUXgutmGYg?+q$H%%>0qtnpu{Fwg0^Zg4#rjkn z=Y#|m-tcQn$>&-X(z(~Fgj6kSRhXv3T9wZ_f#Sg~ILOWMe-{pX!QoYozv2PWk@N+} z-`VlM==c#x73G&4-#eJd=dDLNw}Z(ZKCRzkeFY`q(fU=Al0WwPJi6D8s9Usr5f4jW zD$&sar7LGd&E{OvgJ-BM#boQxQY)&bibH*I2;@OA46-{g#KjVa8y*B zmk5V#PO_?Nj15oNvvPKhEOlWoy0|+QTYe3KU{rjaq~wp9+l>H3mZ*6g#am<_8(QT$_Sbb6Q zy5=?$$-2AEcpKG`tCr6=k6fGFW_-HSZT20~!KV?@ZMKxKN!@0QpxcbpAy?)LZZkf5 z)&RNcgNOnca?K@FbPwESz+jczj1hF3kvdc>jrVRdZ2-d>svY4rqqsO|31R9sQ@-{eN3ch= z8mCHTJs#Ccn1HC^mTp$J+5Ea$13Z38u%<0OmLQ z0iuBE*MgYe?0%4KE&e|zbB8}d#3(FJKCwLM+*m%OYQgeM(*eu>*a_sZ{56j6vHVXQ z-(&foI=;v9*E)X0^7g14?GUucR)GEs6btL|OOld5_Tm}s2GE1UkkQd$r~qAbC!l%p ztO9hZK!NpQ1L$mg#ZiFHW>*{q=xlJsQGm{-Rvevt{TVnOj#Hk=*^Qrkn;ee~aGdRO zNVtOIY+S-tI4&(r;JCEVI10zv!X&H0aW*qy|EJ*ibr1w&;D1R<{;0V*$!vh*bGtd2 zIfvsN+?+960>?A9A>)*51K)on_j3qgaGaN;+?=6|+|5~w$SWPk&3QefFgcx@lLNgD zm?=O}GR_0$CO0P^opf{FKsxv#Lb^FOA|lg|XKOu%TffxvMiriR_akK%Y@#|DXA+rr=(N-I!ZKgb7m0{yQ-U0 z#DbfX!?Et>6kUss6E|mMS0Bk$eomf!NWAk6P>*+rQ#J(#*&hE6r|=$1{G1mM_sBPL zzd;mm${#_@&spIV`b*!5a*Fb1M2^BL-@K_}{co`iXyoyyscY;+G8CIbR6k{whtir}u z9K|YZcEwSw!Uk6y#VTxS#Zj#CCvZGgp*)kb_a#;t-%;FvRoJcsLg=xSY+S-ttRgK; zu!^)W!76NFl2x$^o0+ixQ&{D15Cmi3?<6IE)ZEf!Hei*x-O|jQW0ekW>6k6SDjC~g zL&_b2RsIYi46E>Rlv_HKk-Md95qYKKxTXIADe72-1HFz_C_qs%&SRA(w=^H0bW8u6 zbZ`?wx}}%VO74YcGY%gDi*9LBhgFy_xTX0hAXd=_0|hXwl1r#q#YyO}N|Re!C7c@m zABr^z;g+7Jg!+LXBj}bUby!6t^loV#vZ<`(8CKzCz$!s-4E28^qKjL49n#qZo|M%U zsAvOchPNWWH4s2$IUD#<%ncMJBM4MT9Z-=5dbczM#c4_iZLGAqr73PvGECjl%GW;P zxbuKV<5ZEX$4}r%o9mz_W@!OEX{RuYfgXxspoirX^hiAldYG`9!21`ji&8_$r4x9{ zkUR>28pL$zVjCg|s=KA7oGx9=$-9;=)~T)eb+HPYceJ0p!_-!r>TL3kB}BJ$+6k<~ zrnYz)rnaOh@}Nkjwj#Tl+6vzXo?=+VF}7;z?DMLV5nbKq*Tg2=uv>q~wp9gOkh#lrp!2lbLgr(!s$Qvn41cV;f*d zxg$`@A_!q9g_olooS}@|!C8yQD;>wdxdEimn?f9%9Ev7(bZ}}KR*$2F5Y`-=B3X9_ zCr5W318Mn;^BAbf!O6!29h_67g9Qlb;KWpX<=|ul9h{^N12JE4aLP>!45YU(1uzVh zOQ;ygN$4<8lY>(w+<3SQ#hQeeQCdL>--M@GQ8I!vN~8`0iG<$4sW(I_D|wZJlh^9t z+z?mAAPA3}X(Mt<^0&MikK(;ATELp+_f`Du9h~Im4$f)t3?E4~x$$graBAb150|rk z?H)KdSF-W?T_7Xq;3ReUNE+`QoZ0|}HGDL}!AWs(U>CyF!Kr-hKaOCJk2Fq|%z8XN zk~T+dQB4ZPEG_sb?J#CBd_*w}AF+HIC81K6s&aazQ;JmXvMuLO0O?`%uSVDAghS5IX7Sh4l(n3Xn zw|5JH0=u>_I5^XxMlBi&{0|wY7;y0qFVpzVm^@hyf1+7W5eK z-@s}tm@^E@wg~Tl{(5q&WI-}Ocay1V4_r)%wm{` zA{ZuO`NTw0k76Pw^o}w~T{+4mo#LQTqKTs{i-;IV9c3aG9AzAibw`=#T6CN^$|5`a z9`J)^H&c{@N5 zXm3Z7l0Rw=7cv`c-rNosX3lM12Zu|{me{?aA5=;E~L)pF<)@F z$V~*Br?(UZFq@Z4s5Z|@=xkn-!$l>W8t#f>O+q+a?n(*O;lcHlZM8bv1a}z?tFh$ZrjV!P}G#REG;AXz)m#!IK7h zhYJNQN`^L8S{*JFwMtqNY>*g6r{~{;~BHG7|*m*n8l1I#W3T^ z@@YJ!9yOj!SWPJGjO(J*P;%*nf-)qJ8qx+aUAowYXiV!47b&Mp7jrV9rHl1ddwyN4 z!sZ?AClm0h-KIL5OkfGo;gWU&>#$dCUWQj~X^K23l2`4>t{g7acYs$IX4o{t4A;QU z^IiK5c)vwd_zrL%d)GdOSi$j$F)jh`3j8~a!ADl|PJKS!$?qj=aqfvIV2nLL3}ftx zIUm_Ap9@`i)LG1yprVXz z043$RlB%Q5_JRB0Xak%pv4Nf|v7xIF(BM~SQD0u6urp97yo$&xH9p9V%=c>q z+oIs#fbR6xwaXW++GV5V8?0OPlLZr-_CJR9{uJ82Kcp}@-An+7X&n_&fTCoaM@1Xs zwf(oKVutVt$Eq*gY5!ssp4WVG6w@0G_a`0P3*qvOir!`s6)^$_X$(jmDq=pAq=%8o z-3L^p_aX%_RFq4osK`m^P|@`AX&!&NbcXNjF?$g z3`iX+5($^_+{>lFOw&^~WK&r=j13j>GN7U$IF!FHBD$cW2O^!JA}K33nJbsC?7?y^ zo#A`{PVQg>dG5M)!HVGl$Zri?QS>&CsE83bK59VfP?0on1y9&m3d}S;BZ3ws#kH{# zQPJ}0<#=FBFYjXq@};NZB)6qQid&Qn!N#`VOV=*kb}j6L^0kjR?mQ~eIKB5-k4Ht) z=7=b&DTSD&1r?>8!Yqc0D2AaTmQPe9^(ZQ0LZG5qY$83}57$Mhq2y9jqzuWUsHj0q zmoBy;qM}o4`&3IgUAma4sHKY)70s`URoJ|vx4?+$p9Vp3*w`w25b0TMlr>SEp&}XC zt4_tz?4@U#4GniO>o8QrOQNFH#TM(dDe|D0Ufp{ZYm=k6q=mv>+lrRO*L)BU!5oOkMK}#ud=Ses9|Um`4m+PX5&sSs@u9V_ce+-}Gq+v?UxebK z0}%yW^l%WvMfXCTKfpida4tYOMfo5^j>1Lc6Bm)rjf+C67F@(MbK)W#jO+yRYm^`2 z_ZWUpjbQ=4<#x2W8_+7M(5D$5#XiJOSG1(PG;k) zG`iIRn_Y3(yrN`-D~_&CW>YJULb!v$@eq#kOwNAj#M?Aubq%tQfN*R@0^xKmGMkdH zbuF^A2hcojV<7D@j(#`A_9R(n=i0BJD5+h7LecV_38x%70 z7@#m_OF&`9Hhh+HM}WddLI?weyc`7zLm3tJt3Y8bBCm8DQ21y_Q3r(__;pZ70g94w zT|glpn*@cAAsrlqkf3nO2nrcNP)O=PA@c=L$VUU$ChLQO0vIUFB~(!8B>pf|!UppfDgCBqaHDqs7E0flL&FpGggieaFTgVC@5?Y z)1`}TXaj{(PM0nwC~WCs1%>nLVih*;=nNFLsm?$lOPCIzFzp1^VW5zg0TfD87LV{VF=kY|SYbt&fnmvOG_AYed`32z2g+Zz0-5$jL5_T>0<{Ry902`2mr z%2Q1EctimcJ^{oq;Sd#V0XeuAz;&qqHbbOiQ8u0tPa-M#qwaTOT#k>91}{Z1PXx!K z80NyMA}8M_6!U6iPf$z;a6!=sE=0sT8C)EPx}nYENlN~xfeSLn1{cgc2DpgX5^#~R z&CaLX5#Zt&2w~uYm!rT%C?f|KwTQgZalplsAw?Zra6Hz*1qHxq+?3m`J!zV8;{8W( zaT4j^D1-zTTSsug2!abz2QHW|fD5^)050?vqW}gjatRe&I0-v|3zcx$@MIKg5&~S@ zBZ3P?5L}Qta3KK(7s}T@;<)qRLgQ4CtjB{3X>&Bp z6}X65TEIoxDa>Nvf?^oBVEF_WQjdZQCal24iMTFG4JDU?3uQC(jn7cE_^;9`DVtit9Uoq>xs)fu>82@zbRoxnN_T<|i03u%fxC=zfH*%i2`u*GHO zhns<2_t@e)ur4S~4m#y_*12hw3`a0m$(%ttcp5^k zlG!#|XGU<945_ou%m&ytQk|A~0StRtUWOT@;vXW=knU}#j2f;DaPe()->s%t8S!XFLe{?r33)KeB3 z4a6#$UbN1P;3^qXXPu>iew7RbElP$p>pbGzQi_Z7Z4sucWR$Oc#Bt}Xv&N|+S&z5Q z(&lK{D(f7xv{>h~Q<%l9GsQ6L%<^fSr5?4;Ojudx=inNLa7!q;)H*9e@~Cxg5YwfL zZD_O3QcjmHrgd)VVztim>tYo)?`UtGu}Y>*b!MGeLR=-2b^_}#>&(lrN=BL@4+^Z3 ziTzP2i=12*ZA&#IBcW0&nwJ6e;d@>=hI;~w?_I4Ky&;23-E5izq8MLXf@d9 zA);WPpAXV#pP!4!M*I9iMB)+fB9f9n>h_s&xqW7tseOJPINm-p*W~PxP4-y|7|TAN zje;TZi%ClUsM%*S$F|SRJcfOa*%JGlvCUMb+!6Nq1rWmQGcQNk=TJs&pKB3$rQ_J= zmq3cTeP*B6?K1_y>C2S6gMH=*rhR@H>EJAcw9nf|`^*U1XHsXMnJ?I98Mv^|I*ciR z+2>qBwa-q%4)$3koEp9y#hQe$&pSl>%m~_NQfHq)V={JL0$%{w}?&uywR`^*xeeNH=p zb(nqTWw6iE6nRi2_BpceboNqkVoIBJl_~pQPlEx_xF` zZl76ZYM);XjEKle zX`k0b`^*U1XHsXMnJ?I98Mv^|I*ciR+2>qBwa-q%4)$3koEp9b#hQe$&pSo?%m~_N zQfHq180VBMSg1_?DNji zJ~M*$nbg^5X`r{y6tpNAcCpVCw{&n%zzS?W>y%!HMFz5v%aom)c5rS@4Fl1J@xgP1N|Y(txUmU6muG3|3p z7pr}qUl*&ec}HjVxlMIupIJh*&uJ&H4ztg^4E9-?A`gnhK1cSQZlC$kGW)zarv9)5 z9g8_O}_e0Sh_Tz=lxhMT~ z(0Nh54{4ykBXD}ChaVyt zT!wJ@f})2?c3gW%QIdW!!(DMhj`>AfHPwKFNVcR83` z|GQur0_f$rFP>O!dSRstdmmtecD;NU331#aYY%$)vD3>}P_mAzE06|yc}!9Mx8%7} z!jB<@UOo=epPq9>u?&o;Pml~gijX5}HycspVnmU+5ydQ>MwFB-g(f2^vTZ~`Uoxi7 zo>=nAIHt~jOBhp>Ys8qU-WnnHLs{tRK%>@P&Ko9?=F;>Pg2`#DlTug}7k z@RH*?3IA8Z>m|HF!e2>vqlCXk2(AAHq`z`bt+NJb{U(yZFA!4e_cpDQ3$2qltusp} ztxMTbXrlGVPVVE2CYHP}J_|qm@$f99R3mi0cw(Y4+x{S zuM6XN$;8ztNA2z(kp}vHdQtva^87`@ze@Nw3I8tPKP3DoLTLJ5ApKRU>E`>MMdQBz zH_6~n2zlS{VfQ_`xbI2aea|e}eJ`a*c7NYTZtcE*!&`$rW~C$U`??j+6<(B7u8nt9m~wPWA8>XxC=twv3uDaOD^tM5_iWkOLoUfDU#jav5{+c zY=xiCcwV?)S>=fPwXTQFS!>Y4O+gP|2>0U_NC7<@T9jMiswnS{5PH}eq<_~rM-6jh z)ZBw)uq8r{n)}+QAs3^D#Elwe=`?DjY$-GuHIbdzi04i$d1<`gUiJELzfr0YW2Sz; zZG(i^M~31Bjr~?Mrte_9-}aPu*zJ%;@3-wG&khpqh!C1v1JcJCDnQB4$BUo5y}ke! ze0zN%sJ*?i3}|jAl0gq4HHY&&1=ElV&5^8I`N!%dj9E~~*(d~WuP+8^czczyrBG<@ zB}k`luaQ03!^YcuIh*5MgK{nGox`;LJ*{pRc1FUY+(p7&CEQKI-6gyy!l=_*f=-uA z&@QM>?}aqbDeS@?l4nl|?<3(}65dzBy(PRKLg;!Qkp5Y8Ok*Y_tG+#4Zvjbmy= z*W^OiBu>}N(n;4+wiKG^IVT|88??i@Bk#14#z^Bc!(WF>R3xZIL)_F-s?HN!e0pqOHg_ZRxmdyr(Hu zCtV#x!Gf;-G(uMoLJHN@LvV$!N)bX=4+H6MKBumj8@hTp$>6~VsjK^&uE>S1NSv;i zrIW6tY$-I+Rb+S56{YH=t4C0>YAx;m0%a0Ei?YCqEzxzH7f(-pIH(v_4gg(kX+>~6ZERHiH1$Mq&| z!20L=h<$uKqTs)MB8d5KUy6lXJ77K6mH7W1)@k9xD?|qW?Y?3Cb9uDm9~StNy?;Pw z{q2`bEUGenVEd3s7fnA2IpJ42j-=#|`c6QMb536ruYy!gUsi~(n~O_$k+cq)b)?VKKnU% zk&_RwcH1w=W1oTVFC5C_J_8R&(+8EfjeP=7GW0IR5^dQAsPjVZ<53y3_+*ljKWbb2 zl9@Q7rOsW@^cla9JLOgz`!I7iN3`VM5v6itpO`IiL}zUC38!2eIxMN$*ymUXVUB2C zj&ekYGIB?BEh4XU97psCkiz8L26FCo4orD5;HWc4v?zm7s*0jyTo*?)Z$&zyPbM84 zg^-Tu{qZER?G711M>MH(L^EG-M9a+t--F&-)POmna|u6QOyIs}0+X;)s4K(wQS#%Ie~! zl+Ub?kNfhRLaGgfBl>}Cpl)}_2s)xkog-Qr=pE4%6ki%4w6U@^21M`C#l(&?BNlQ~ z+@fTdI--@YeZ+C+9nl)6iex?B5iMO*|Xr;ENYTR*>PK zfG6;Amg7g9QIyYg{CMV67yR)oS{r=v3H^*JOZf7H&BB6Dm+!pvhJl9(+) zBpKVlLCPJ0NKS(ghDdlh3Xy~|azs*#$SWNOk(>c3blk~VQoJin?5${YF2i17Lruf# zi;~y1v!q0_=Ch;%s4=|5Fd;#ys z%?rGvw=xAVypv0)c*jZD0q>}UQ^O&OH3@-t4vKh(5yU&B4)2JB9`EQ4k;+P*;T>KE zyb}b+jdUg=VC(4G+WS>_@)onpcf@03{rtSBvyjg4j+E8K7!vPj180WMMSg1_@XmuG z-eCms4ynUC(m;=QC}>eK?1FbFZc#E!@s9Gfk2p#_-qAQ!B^rVzb;l`^N!B&PMhis@34f3chXK^9fo&!8SsuYMIICh-ihoQ-ub2Bod;)l z=gGhv#5;G#{05=|uDJ?0gm~vB&>ZjV4lJ`D{vF=oGb_P6abD$lhyvbu5lG{_$_o%V z3h%to@gv^pf@@xaoOo=!l%(X3`n(F`a$G|}D$Js|h9XoPMKNcC<53LDnVh|bkE7~9 z2{974$GnQjlb{&NbEl!0b5I$y_%f1`KWYp7$s8NSF!LBFCT2@eOvW}qk#a|%m={9` zLovJ@g!Q?9aw*PGhU8J4(IBQv7u!(78COM|A?0-GV&aUJ zE>@f|zb;l`^N!ANMw{vkXRw5bGty3A9fmV_8E}R)MIICh&WP+9&bWi;Rrt(Ga0aH9 zCiW8l&1(<^oN+#g;f!4{r}Az5KM@$`e3@5y9U?27;m?sEpZg_~&b?o9NY%1mGSket zUvevuvB>T4=30sT$DK3p(VI{U9$FWWl>AXgIgE=aM^BBA2H4icL-E$U9;s54^9FD{ z%3(Q^voF7Gb2V2Wd*VI1Sk954JPy-fV;?x3T>D*|`H}FsA@ZzQJ-y!SJNM^g6Msg> zkyGsL>1KK}DuKG+LQ?Wa4GxhxHXLH+G2l?lmcXHmZOA0$nx4Fy>5UM=;1DlI!J$w_ z4u@(Hd8OmPp$j2}$?4z_hi4rQQ2=}uM!7q{AwDq(hu%&)cr8N0p@&5{#0bJ6QU`~a zFTf$W>i~!J9;5&UhjIxO4mk-sz#)}zYWNNmYZ3wuJv_o8Mi35>IyfW}dN`y*HkFk; zgG0Owa3~0lq5f7xbb&+fL^^{*QdSpRNjRhpoEct({MJCgp+`hG#0bJ6QU`~mfgTP~ z(4u5$W2M#2L~)CfVG4(ouYJUE=i!jXsUlgAheOil2qh{w6tlFzp|n$&#o!RdFgV2W z35TQ}g+ojTIP@C07=~}dH9l#RP;x08QikMFIMg7fOBdS^;m~VQg^dB5c9C+rbTQ#j zOBX8~nqL>Iuz5!xj1kj+9RyW3Q=94x4zYv?htf`99R`PZ8Q_pKMIID@L+7(LaWh5s z;@<1Qg_|k(nVyJA75bUJn9aMq$mU)4&*oizW%Djefot-4mqWpOBL3aH3m;kwdvDN6 z>1X2k5%(25^k0Yq9=a67@KF8yh<72f0v8?+kxx8CIyW8)sao(5)69v7it-XCkUu}- z-Hz|ik9d#c`|~5->-aooLC=+Nu%K#nT##dtt$6El6pN?g2S`f(76pV5Ghc6I3TZ zbtH6SD;zvqGOOoDuqg>!&ySGy*mTy(2T*!xk8$+;2(~B5+5rqwyWHYgwA{SKvrNlz zIo9n73O|UtF(y7lQu0R)6q4Bh3jLvCBAu*A@`s8sa}EkeA1WsKtF=clTLKC*w&Ams zYd3-ih3|(D1`2tppfEjDER+FclpHEni^war3?SVP75gxxFgYD44-PDkyXkI#Aej zsF+H)Z1~?O)+EFh&xb@%$OvxnOzJ?PNa(kC)*+k9N}hp2UItJY1jkVS2qL0flL&FpGggieaFT1 z{Im?kbO09=jo?B=ypzGj=TJAa`FWC(KWgBD%(1}*Gmil-VzvZaWNfqZDR%_8_%wtt zaKXz_;3AZfgNs^3Ug)?U{6eZ)jfD7J#1Q%Z>9ee^I!Np+_Trh&* zg4BTv<_q9LZYqEay~QYifs0&11s6`j4&Xv1TsFK4#hQcw7mteIf)NB4qz+t&gdSYz zkWFPJ&%gyQ1Gor+W2k=-5naH=)ktUHLdxo5c{t;w4O}t&3i4Y60WKaL!384-E=V1? zkOq2iK|!&-2*NJlg5nk>!xUU7U;BvT&Vvh$Q$?~K4=$w5(J)uwB4%j;7ip(3i-8M@ zVc>%06I@6=3NDzi0vBJxbx~?4xfEO|L-HuNXb{t-i*0BF7gA1_E+)8W>0$*J^Xp<2 zHt*;RT(qgqzy(W);3Dk=)?wg+mjPTzQ{+LBfQ!hkz(s{E?%?wy_{d7I#l^rDx~}=F zhyu3w28dyc2Vu_Z*Z4mjc;_rh=p91=3?<|eDoSt?I+W0Kj)h7%HT*G(H3{LDIwGP3M$j)s>QI76=>1YUWaWMi zvXW;gftLX#1i>-Xe}ITCDB&8UGn61@M;=|FoJ$5Qil?x zf!;4gL5q@M4JC~D{E6aXmnDR$UrPDfM;vz^C1{)~lJ$6$AZ?Bown7OpOAAU!JB3*c zB~T1Q2`rx|LF!SIz=YK@ogd;F`(;TexfCTRL-Hs}Xb{t-i*1M~q5k=kl+&e)i4t16 zSW&|Kx>$wHJNf{O829;8o9YZDu!QKBN;`pd7)sz}@JmTkKgMSL9JFEx374~~;{JuNveeRb!8NAc+@BC7HXeH}(c7oqZal%g# zh3C`HK@2B+6BRuZ_1=nqo@Z5*YY|z;2}Suc$DiMKPS+tPo*Vy5Qu0TAr3~Y8{6Ik} z{GeYoQG|-4?v`JG;}HeR!ExPp2%->q?gT_}J=y?u-9S?ENA2?^GRH;~%sd97h}jZE zk+IFVr`!>U;+GJ@5CtzsA&O8&jwosod8OkZieEtr9pm!(5=WYe9Y0^vG_1ZTd0qQ_ zNhIt3`4R_j9j|EljO&6|ct;bj{DyRJEkfdz$40!u2;vn|hgX;{;1#(ifdTXmr2vLk zatRf$I0-x86_s#mcoT{>34vGejH^D^W(4sHslzKGp~owFL!`2jXLyB|0j~tXaUhOv*(Bl;fT9gdC;1!Bn zlnhh6qI~Tmj#7_TG)@)CdOTi{Hb+}u;gy)B1+S!?!YqbYD2Cw`mQTDQ^(bCp!V0ha z8rMasq2yA$q72ESc%?y1moB!UhF9F@OHxjkE+$@S>0-qz^Xp<2Ht*;Rue7Po@Cr+a zcqQ!w)?s*smjSOxQ{+LB;FZX(9riC!mnOq76{a-$+XSsChrg923W=l{=#x_8Zaz~($ zKS2mXA-o)gLP8li3aLfpm5zf#{thWjPPepz!>f)HC_qs%t_x1!okX1QFVev+2#FIO zA8`UBh!aR1PGG)(6XYHNPS87s0vJxnB~+Z?BS9EQ6SRRd!*$4S4FpbjLc|G- zAWk54I6)fdaRLP`N`_r<0>v##hAB=^zV;EvoyQ3pr;21f9w$hfqm8X_Ld?>F6Vgs$ z7Q+b?!*Bx2Cr*%h6eloYg%kdX>!Q?9aw$$whU8J4&>*Hu7u!(730J{-*?LoBGOW}kBj)jm53JJ@HHaB8>_iZuygpYeTP^&Za%+GkQ{pG87% zpLNKlvXW=^nU}#n2f;Damm;Ezecl-9%sxw5T^`=F&)UG5;S};)17V+!iT0Thw9ll@ zK1&0=eWsvA$*_xkrnp7PFtyLh*FNI7^Y&TeRFSO5+h=KWv~87rj#*mlbJ{7)V)mJ0 zn0;pXw9itH+Gi%LRwrzL>!Q?9a;be*hU8KE+#se)7uyi+bNzc5DW^*p(>}L!vD)YP zb+HPYceG!ffNj^>RA=^?B}Dt2b^_}#`^?K=pQS1Cph&)liR@~1Li`@)4n9Ad53OW< zLbT7z5C!|Z0>s|q>-Kp$A{*`VDn#NDu$rXgkGg$kTyCFPW@?{j!14B(xh7|q9u$@! zr1n_~7|T9yf`TFOT}Vp)sM%*S$F|SRJcfOa*%JGlvCUMb+!6M9C4?~h%*#>sIh2vx z=UPNw={WZJu8^W`pV{Yi`%D3fl5t(^Gew&OS3=u+K7Z zVV`vvQvkEixrAz;orE3ivr0HM+#JQ4gs{&~iuRciw9ll@K8u9jKI@Q8WhKw-GcSXE z4uWH-Z;FU6_IV4WGy5!Mb$NKxK5GMKhFc=PH4ygsxM-glLHkVV?6Wk`+h+=j^E(iB zvCkB@C>f^qS^3&W9CzM6Yn&>Q^?3U%ZH~6Bvd=L~i+xTzg;~r#Qw+1uET8sS>QVd5 zgq3~X4A(fdL_*1>_E{N{N9}Wim@ZvxLz{h;a=LUe?Q=^Pt9_nd7pt&&M`!lAO?76U zSwghWX(zA_v(LN?_F0-D4~oP-NA{g=pZU;gu+Li|3if#$kVgBwH6k1B^LB{DBcMl8 z@<-i1GcLE!EHkyw_W;M+XXcumJtls6klJS{U@ZH*Jqm`zJCKz8QM1ovj%}Zrc?|m; zvnBR9W1Fc=xg+fJwh+SXGcQNk=TJs&pKB3$rQ_J=9U(>CKC{p3_L%|{CF8o-XO3Xn z=bcFhcSlJ3e0;RejG%ocb@rM0f_;{O3;V3Ym;#u6&Lvd)>?G`9pH;%C;VvlFB!qo_ zaYL|8SaMs z)6lO8|Ofk$pvwYfTsYmTI6IS+lCtMe$hLTI|voa))+UEu_UAowYHv25) zbm?N+=aw#3`#ircR$=pw&g^rW>dZc~glM1BPGB8opLrSVvou8>6p4L~>^t2)^Py$- z*`J-|&mH?Y7U&h_?nqda_e2;^lv#`~>$&#@&wl<2=-#pq#l4UQXUgD=<2@wLo)X>% zAx@Ur3#7l5oGkN3Y+@njj=c#NJa_B@P&;>wW#D9)`;rXqjgTkHoQS)cr)HCjPo_xL zt^7xI?ijP6khh=^oI7?QNW-~fQnnO|lV#qDbh@cWWKZ_q1}+-5p#6+v%C)ffcBb{Z z^Jg5Z?)FB)qP(Ak`%uhqCeKpQV0Ff^>hJzY0sZ0Z@%<#n{t`Yw!UrOR77qaF-+fLk zvLtBnK$5|}2&u)BOpD|~izH5q%+g7VQnnPDXfd))i>kxMv&Sjb2p!hP-$6)NlnAv-93h6a2P`B?kT1_a-lntbu0f}-Mh?!LM}!jxOd+L(s1ue z*-|KUcL~zzy&Kt+y?28<_q|KG7WUr5wEo`pX9nuM`&cBzfmjkADdFQKJW9eRAdEU) z7Idm-2C7bvMjGf8X9gZ4d5)FvNfI6>;qekaS;7+#Lf0pP^tYK)*DM>lK8a-TM1<7! zQ%%?8Lf0ft*UZvM*HX3=n&>*RGhH{H8A!QC=-QtdsJcFxqJX*`_Uh z9yXpCNU1vM>KPO)=xRlxE43rfL<-f_skkc2(-1;e&jRUhH|G%yvp`pKTVN?$3QeAXk)7C%MqN>=PS3y7kq}$hQ@o(DRpDOs*yRkQ(dS<& zc?J>=5khlkf%JQGYK~<+PLKDqJc30a$xkl)& zeosD+q6MvOGGd%PA1QR4y%1N}_#Gj%bv8(U`#H76+|bsGNd_-KNNx2^TjWApBu-n* z(n(uVwiKFZE3&(dGfLG-S1+MpL05N8bfwR)mm-Dg>Seep%9kUAuFeJN?=a`{i@Bkz zSC9?rvb#OMC{?HD*DEPl(A8!mboDBvP+h$m zS4H_6gwWM%LHaw+sVnA&u3kqnI1eFp^-R+hxzH7f(-pIH(v_4gg(kX+>~6ZERGoBn zJ_QT9+I)nrUXK*2t2g2bTLUA6t}X!SubER<%ne<=nPl(=gw)ln>55$Fip1%PSvu)T z%9cVCT}5^`T~R92m7e4IRD55yk6_lfAPV!yZwIk?&`AlBcacCk(B&V`#O!xWZqortR456a;xJ$nYr7%x#X|5+>6~Rj_f805^X9x9HE$lu$mh*#5qYKK%$r{VDRczN*J->}Ozik|nxhvv1R|?nS<( z-y+-N`HR3H{5I`I(0hXVvqX0xj={hCHjR(0g}o0*m2zhJ+fm;A1?#*YQNTJM1Oe7T z^%G|!*bZ0+V*@zn1Bj^O9J_Z$f0t&Ft$5}mC>D>6D@aQI2%dKCT>EY8KO%98XBJN{ zo>e?UX%xLIo>lbnA#gl;VTpD``QqO9P>xA+d!QHA?hs0K$b{Gxw${bnvFPQa5Cq!$ zZ<3NfYP1%26tiYOQ;lF6ax3)0%sG15VEG2?R$=SH1+qVpo+xhlEA$ex zCFmt%8<0r3uB7U)@()7@Lod8k^s?cOkAp$I0n%fOJ88MdiH+@&4TD4BRYYE?@j={% z!5j8|gMxQ@>)PduR_(IU@(tIm`pJTcP5U3iq4ht7wy%T~Ca1#}9Dj9uK>@I>D&=;k zNK7rC>iw3obLZgSv9A4#Re1989xSFe9)65;a5=)|8yCIPY25ya2SZUZVrFCPRtxIz z1@oaK-K|G%BH#mi(Ep*7fwQlFP1M~-up8pvT5)8w;ba638_bl>tcThF|-$EhX2E?+6#afXRwW@v8Iv{gczg_Vn`beV&I&5 zty$H}A>*MzlxljBhXo>MG^rIVh{;=ELE7)kVz7WBn6sYc6BbB43JaL<%u~-_gpQe< zp0s<3aDYD~okD?8qHPt@M42NDcsIdv^tF-c2Z{C_jzJJHY0B9>wB0@&%HTKZ4B*2W2xZe}|_u=^OiJ!SOba zxw7LU#U|YzHjlMCyY`>6d0&Je(B79wO8%&=bR)CD=J_4!L^a_(zOs4DoZGz7JJd=3 z%I3vviOtK{W`0uc2%Gmg2w^slm!sa;LmBxSdo3cbbeuQ#FGGsD&Exp1+dK+@EoCXU zvw2NB)bT##JM~vc2cJU7cj`0wwA~9gVo@@J@6@Eu<}qJ*rN_G%Trm~V}HjkIV<^{nq)UQHB zW$W4wto|C(**mqA)z#o>180U`M}BJ{4BmhZ)OTt|(BP3egC`C2@6;5uC>h#VX?>@r zxJAh@eWzBw_7TUOH=G)$iex?BcuJe2A*zgL%+g{!(@tR)GoBQ~j3>*d@sxVhcrs!2 zPJK15u`REJl1tyIl_7c5kT!_v(#1AJV`}fz#5?v*E#-9SV!l(ibg{lu&##MB*u0~& zcj`9P**i5$i0{;CC$J8Cr{-mNrRyP&OVB-zO>g zqmCsQ7qNt%A@ptVQY`Tua6Fb^u56F|`D2L}Jw4mZc2-Vfl!8XTC}X!#RLni{Ma1Sk z@`K)PPjA2vP&c&sLz0p|YS@Cz25i9zi~9RCxfQlx<{Vp$K7dDBS7D2oEx{HU+su5* z9f2*r3n2_!@KUiwdH_!-0|qvEpRPsZm0AW6_ddNr`aX^MgXDesN06e9EjS+Q*n$FJ zBU;Msutn1WJiPz7NB&Pp2j4`f_vnXI&2{l`aSY>$fmNAXV`+50b2yYG1PyI zh%VUTTBI{ zhvF6`!*q{)EtDa76k9Zi>C(kEL~QY4RAFPlu!WSIs!{AisS!8d}|pOaaU~=Mt)Qb`m=4 z-1O$J5>5?&i(*Yey!pQ%T4zS^&7ag+XOYmq`RkBPWhKw7GcSX64uWH-{{|6Vtn=@X z&aAVPl|Qf@2 z{>s-r;<)qHS>sfZtjAktX>+t}m359;TC8*0Da>NlnPQlAX8E+vQjc0^CakRUO}H*f z4JDUaXJtqpwayJC(lt&MjT6)_Hzitit9U?X5HRh-p)uS!b3I-~7`~ zU>#5kgz*K>GI=Z9NArpbeM9iwC;F@&&y!K}}iATucscB^mq+;qnDV?`$dy z<&nEVF(6sD^04ZoB4$A$0~E6D+SMD;ktL-__9eadgTHnr<@PQIbBBoq%OLc`pzHVQ!3? zMI?g)AxF)NZPbv9QA6TJ4YPC_HBz<|nv9yrwox<3H!PH@)0mm0U}4N0oapKSa-S_m z3f0w8Tw#kZgwWN7ApQMBSD(eulsoKmxZoZ3c~BcP%ne;_L^4={kh*$_>55$Fie%l& zMb#a~EGXoQCWaCcs}&@JWeBOOmzu7~g|0}Pu9&5huB2=!G|^RL zcheQ6GF_>k_-}a6dZ3Jxm59Q7)+QkKp7kcoBkzs5E|S|x4=m2HY*0RlH8Dfy%RhQ_$~hQ_*8n)D6rE=c9y(3op- z_U1#wE@39>+bHk%u|{K?*{?2|ct-yRT=+35*E_C1yE*1=d!GmER5;_8&K8GdbGv$6 zJ9RO_PaIn7;=fBEj@}z2gwmI|;!? z#i^L>Upl-Sgo8#mCn@=3_J*C%ik~2^|5F6YOx_?xj?1B#8UF^Ea;y1Wme}nLQu1Gl zQr8@;b!xWc4KkJ{YdV}P>$v4QmlMYrP6sR`To(l9%BPG6;^Lz9k~Myg}Xr>Ffv2qaxMDNkX#Evr~-XJM1cGE$azCkLVorpco5c)SrjZ;Ok z9{&a@ZH{kW)f;5Y(((qGb_%oD8>HM#x*nV5^9@q!(KkpY#2e&SVW5Xw;kqa_lwA4- zsSL@ZZ;%aQx^%G(@eT58s3M);m2$dtG2b9tx>(;J=hww5Y~Io5V#M^n4ncK2cAM(# z4U#3qH^{UTScknq@-nk)Pfj7u+ur`_BjqJs}Z-N`=cds_z@h+L~7>hQ=cYJB) zJ3bV+VQW0!P6NFss9%r$3GlAQzw;gQk+rb*EvZuGcO&lD7EyTIY!A|iJ9>z$pvCQo zJJz6BJUVtFDfy$0I~bSa4oZ{ajvc`9xP!SSXDH~#~mD#b=*M#u!j}p?tnXZZxVOhlXS2hLgJ2BMBKp$;to=WJD4xv z4!N;_JM=cA0ERnq2^DuZ2|M5pm2hf!FBEGM0(ZPJ;toa-caS>VArgArp+h#6l{~{8 zybQP_2#%q?8zQ>kj(a1W;SMRQi%}x(&<4&7_dtGYAaKX4BJN-WaR;fx9nwILJ1A&T zGVFpoC~i?QOmTCNN`7F-^sXxk1U5fCMOQXcVY*~e8--M0`Axg#Bj%- zfPKyf-q{*h=W)OE*JP5^_gg`W}j);a4L^Pxh(TIc|(ddv( zWhKuL4KD+t34&v&KM)aJ5Y2;-&Jc~1)y3Qq(P#r_h7U%5YakHKYa*gy1Q89XLp0Jr zk7y`pQ8Ki#(mInuak2X$!W7XcU;BvT&LbL)Q$?~Kk7%UL5e-y`CT3|tG-;4$ONfXj?F80gh=!K|(MVI|K>d#$$FmMIe;ja&03Zf>eIg?9)HDK;1z5$xgrK|*A z!CsqwE`<-Rg}onYrJL@$-UQEyS0Bzp5Cu&0a1g^Z^>gAMhR8c$F69sui-*UdBqe{; z_v>L?#5xLU9synjYSgPk`6`aWoP)vfFo)%2U;oV?=6ofGIqKD6?QRC8!|Vz+L`5El zSNQWkhgS|m?dXR`k(B&V!z*NtjaQg?47?JvC3q!c8+1syBk;;2A%x)-UXH>mp^O}_ z)FSdq$H6O)h7@(Y!f{*2D-@t88P^4`@Qx;4c?{{`p$LgrUKjBSBZyZ>9bRF+fLG*p z1YXgblL8oC$t6_0;w0>VS5(5O;bT#(NeH}he#9$`AYLJLcts@ictwY7Dl2)0S9lrl zN)Q}F{cuEd!7GnLI>RecRu^MNyrK=986JuJ)SE6UeC;<)p8MdMVFtjFUOX>+vo6<TJTERDa>Mcg<=?9Vfn->Qjg*l zCah*)j=(kcKbBB(DPB>Ambm?N^m6k46yfVKoR$=pw&SqfR zRA+dFB}BZEb^_}#yu!AZm;4m(t z4qe;NGE!ZBjG)aXbvB#%g3Xq}44bV(n*x~4&Lvcv?Ii4AvsJ>W;mIi0B!ta=W3<_f zpv@+AHd`e0Hd}{mDl2(rvw0b8b`Tsx{RBjGvDr^SImM$l%HI-4yG^fsG<7A3HHd`5zM{Rb4m@ZvxL$ulTIR+`G zOBd5-w{)@E?D=)E3Y&LyHpkGWIP;6Ih4YY+eSNElrUJMKZ?_+4VVwg=Vu) z2K93cJzKAFJ*b~!csXn-=NPbLyEe!07tTk(CcE_-d}t+e3|~NAY?g-y(kY12HL_2~ zRZ;d4VvX!GK>81mHL^d#)P$@j{xL4Np7))P~zg}t9MrLK{U zZJ$Myw*53*;UEBnX#2B4`VXA5?aYm~pH4D36(QUHW@|gSXgi5(JF|3ZyOb@3CT)-G zZf&PjuI;+7|3T94&p{O0j_)9qGFd$M;UxO0E6 zLAe(8eywS%bD4DPKNnG|gXiO_C|@Aq3lTyGF9PWwIOix}8PLJmB!lN6qz*1L9gqth zkhoF6ES*Mylr4oOqad(951MlX zFgIHNa+1MI5VG}ewbql1)|0pqz$~3cfRrtTCLj<}h4klX|3 zA`0&-uL806m51RuiyaOpuuIa!2k{Io%2y(?dS5vYp3rKabn@3cQ{(#w!|%Dpk-M!v z>u@+tXPIn^BhS4I-E!*viixFXx>T!oS#{PCRif3kG_xPaV*1{Fk!h!uXYCClg$Y-S zn(Q49$7|!_e2Hvboc~(L4aD|3l9E5_6T6IyuUNYA%6Z^buUKrKHHnVu=|#4c>8p{( zzjU#j$=MzIZrPm3H?L)Le>yz#Uthd?Rr`pE-Ozp)XUpb_l5OA)Ez*|e9a@5doi94@ zvYFtpU;8-kiRVKebj9mQO8%(5Cz6@GCyE@hs^9P0l5(q6{mh)dCyw5=Me5Le zCyFw3RX+tNO2+y3#HL+a_%z|JEffRHXFYMYPcO+n$ z-k%h}-V<{P^*zx^=-v~Xc5P7!mkr;HVogHq+VXZvsH^%J!ChNO-Fu=)=yz?=A)Crd zp1mjXGQ1}S!7kJz<^;ua;tbk`Q;Yaemk`S(PPQ$?~K|DGsqj_+92dt%Je z@}8J>3bWXIBE_)xM3&F@M5#yL6PXb2i8lcz4c~-o9GD`Zj0CZIJ&cQ z(j}z}x)TVHND_+zIa(NyOcaY47I+1*7EDf5uV~C+(0Zq%~VrRQG-E6 z*CMTpikM?V*Ujqz6*ZU(-bLjs5-Qqxr?RMsP2(V+c)45hFTdH(!IS@OxHB8Vp+#?? z7ctQF;##PMbBK||9>X0b?g8Af$vn7|A{*r4Q_H}e>mY=IJA5n$cal8Pa3{k^7uplJ zGY3*+;SR@S7Vc1hFe0xOxWfs7aOWoa#jD{G?p#M*yDz4PFd~C+hrR=Mm@a`k@?rt* z=xas+4BSaesBni71{o1g#jmK&!smDq<+69V^_>^ud6NW+XEr0`JVC zh`)xREsV$@-l6Z{9TCyRJ33~4VM#N1hmQ%~NhHTuzYz@RI=T6Mrr!L15xgtY`YjgPFrtp)o~Tzp{$ zu8)0`u0x80(8WH=(?(@EF7}Z+Tig(1ADg5K_VGK2NeuR(7zX<=e_|ggN3jnhPM&xg z#uM)8$6;QHP0Yi9#3SBmjqmVZm@Ax)xQ3Myb-5&sWmxQUhNKfQakV@LJr0z$Nal(4 zSo%@kCs>bvfdq;QEV(g%Ca5^;w>5?^^f11IBA8$nd>0eoGl+r-MyD_V@0{Nidi_A( zM$9+3EA*5LVbS)54s=O26K(x{~Cccfgw7Y_&VK=2<0#U>BIo^ zyT<@YtST6Qak|9-_$rJe&`Zh3?3B(yKz?CTpP=4RgK-7iI}Z{C8Z$F@9^8$b@WS6i zFJd4utJJsED_kH?;X?1$-Ucp6T?H=m?xKK3Bty~ta(5z~3m}+}`MzE6#SI`R&;Kld zxEI2qjqjruF_8J@9f=hH1dnLMx7$ z_o-z7#9a`=00=%RfM~*3W194rav6B-ZC5^-4@u?TMnQz{SWR<^pC++E2V>sfo@I><`&xI#_fr{jtH2A=e z_e~l~)7q!>Yx>38;I{P%^RuZA$H)&BGTL!R5`71raIQm6dWWvO$bcvMT2lZ6Ptp=9 zJaHs+tTFs*j-V47jvREtlK9n}hv}gDJ(>6D=xl|g4iH`5AuS#;S12zr0AQa zBiKbN%F{+>IWAg}I$KR2qZON^3R>|yj7bbyk+((fUts=JR8o$j6-I=m=AZbHUU~@6 z_^yw*l1eQ#N{}>asi`2Q6VKMcqLt54gflkG9lMfOE!|9OO_grGTSnTVb+Zbb?(7>e zY6@RKSXgVYbXBeSjJ1Y2v<{p&0LTlAGs$RQ)EW-1UPHAN5iu}2jZd!A;n=Lae5xjZl@&qn+ug+0##R$Kve zd=|p9M;#9QNcuGRX*<=QKzkeij-86rd0qbBDh%yZV=$P;3s#*67Dnyk@cPt`+N*xh zm}ikMz6tdNDERP>xW9#)KMD(Jodw>o*WSCWw_LF&3*Bv@-- zWF)fVw}$;xl_i@`Rhc{f`Ul_l%Pnc{_+yQ|?@&!ZzilP${3KXt=ikFKYp1ja-i7~h zP_M_!+Ue6^#)#QnJ0+dJ2k3YIdmxEb<@W&Nbo+b2D2Pf2fV&6z&!QCQ%;)Gu3?w$e zvcI{MGN~Hn<>Eo5sKOmM1>6t2Z1V*G;95z9g{yz)p{|MpGqR-Qd7|1Mvl2`%K zyBC{Db0ycE#gLwf(~!RW)!33ghV(X>2kBE}gRXt58Ds7e=ra()Kzcrw+bWynk=`ns zVWbP~$yV7HAcc|B0o@#vSC@*_%0E>PNB2;8t1s z4(Mh&;CKby@?rsW>uW{<4CqcvsG!@C&;i|*uEtgg2b5k$wnjp1mA!=$>Jlg!+$u}o z0o@{@yH!?)tS>8R#w5tc#3Yyqj-mb{7_}^czJhoLSW8}M#8v5PY^`8>=~bjR6~tCq z9Mq4OK*``%S^5sJmI}ICWhrPF(KTbmE`gT0*o@-hGZ1k7t+GnjKH|7@fwl6qAz6+K ztfkHtl*Yi?CaD6f{Z3&L1FR{AF#|Gx0&6Kpfi)w>!1^UTzCSqIIzfo9<{AR0DEWYdQm}nSvsanFp!gv3FMTj z$VA~mPD?hBbL;_%H*p89*gEH=@aDn59K@R|rts#|z#+tyAHz@M%C&%Hu*22Gm7K9W zT=`Xkcm50(@Xj0X4BnXmtg`{ieH#A(;)T)cV3xx>q!aJZ?;h_Yv8v!5#_1OCgwcFQ zAZ!2p!8quz$QD!CoAe?E5@TnAgUCzcAgP$aL2B%zeDSU_HFhol#YINUr=e@}AGU|A z!fGky`JY8bZ$UV;@!Rww2D;wony<53N@9xa)89i?6{Y?z+|DE;5L_=sUQJ=@Q%}FEVhKzSb1L;I6cUin|;MYrtJ9;egWn z$ks>*+;yA9U1Sh<(RXl{Na*4&eIa~VNi(>Mj|uKd1jmc?E*Q1ot`88;;4aCl7Ntys zrdF`M^dZul3IccCZgCeG#9j0q+$9xsaTf)}hmGLYg1abg7}51{m(sP5I7(gIr95p& zmgC|ssk6l_G48TSs^BiaQ<%iyE{b7r7xO3Xl5!MxF=C9n-orCKiX*P1Qrx8kNu#){ zf|yP`TZd}6OY*6ui;26cbg|;DMeAY}Hr>%F+*PgV4DMnM7I*obz%mT(;$wolq$)B| zc(}`wQ@HC0gS%cx;jT{&?z$y~yLJE`BJMgCej0b-TOGmE_;>7ioUt;vYiqGHeFPS8 z*Qf9*;;xUuEQh;DC+?!(J?=_kRl!}1Qv>e$#1UvQ;;w%pTTEr2(~B6$;x6*ixJxSL z;V#POz;^Hpm)6n(Jm>;xv|BLdw)F{vYEbjUO!l8}7q!%%ex$>689^)=1?g8$y z$voVZA{z+gQ_JA4&me@sU3@HuyOKQ8xGTd*7uplt^)E<)4{N~{+{K3s?$S6cK8*OB z!CfL*?YN60K8w3FfAVU_yvV>^`dU)} zgS*laD(-S5tO0kagab<7AX_6LaM!Oa?jnP@i@t-qL_!yL=?me@N}9o4d`xgxA~;^8 ze}hpA?)nz-4DOP=YEjC>U0T8R(sxL2DhS+lr^Q`l5O>jcaFU#fyz3+|%0 zVMN!*T}szJ;wW`-m-4hBS&oalq|O$z#JI~Qse-%wPGJ&*yC{aiUCf`jOUhB)#fZRN zUt<-m^c9}*i7jy@mEtZXNE*dm6~uJn**aL<^$m*f?Ol>jEnQ69Ri%p+cP&~MtFY;g zz6&F!@GS(@>*uO9oxxqq!Qw8z6Ih19U3^S%msCY23gE8qSeh)cT5@ClKcJ3??Op$6 z+{GEIF29f^>e=W|VJG{k;I99G1>E&LJcGNY1N*HBo7X)2{~LJEye2(gPOBS)K{v3} zi(bS)b~%ka3up8wVgQ;CUUHzg;DxDD7w0bea@wWogNI#majs-kelL9(Q8b<~6cPUi zP8jxvJZRy1dJzMezx#6pssfr5` z;+FfnE!-f3Tkh#QaD(ZRE%)-G0dDAPM*$4nNK2@2!;#Q|8LeB=+Vzsp|f+D9CBF5FO_HYCe& z;fB=Ns_GbS*d$fphTkbnV&DeFFmQwU6K+U33O5)La3g2}+-Smc7^y3%6mBR%(kR@h zAf^+~*1^J!9E$MahU8OA7ZYw&>0*T&i`K;|Y`UZGBislfsGcya)^rALFb8|W(C-A6 zVc-TI2{+_~p;SdC3Y;*kV`&06EV(h?3sn2vpn2vVnw3&^p7)^hxxR+uJ>L1kEzSDc z5oOlb?gVWf{vA6Hr>wesZz)pF82ki$T%LgGs6XTe-e`pfyn*87d?EJ}U5_%us0EC2 zHXhPxsu%*oL z08-<xt+a4+#W9*_=$S(eKH>2>%=t7 z34z<=m!w}D0Jja>#w+ zXW?sfKzpUVMOxwZ($dUFy9BnD2U+2g?B*tewifyh_>l@5TTA`Oh764)5UpU1@Y_?A8uv|E?v+`*+9U z^S0H_1M=Ko1N3c&uao&^d3$_$pX;`wla~Pt@+}9?*Z{Kkxef(0*2|guTvq@SQ}T-R zA_fvAmuwUv&;G*K`&^l){|kRvP+TR)R1IA_+HE0SU88~t{czwN9zLPT3>MpcuEUTU zYB8K%#6ad(G>H`yOZS^pnK-RjYS^S|lX;3IMK*K1Pc5TZmWL2VvGB3nl0cG2dPyL| zNEh0ZC4rS7MOLwJ9Ap&>1;960DYv6oDt&#Iqnbwh5%h~g;L>RS5N9#nq)G;j_VgXa z!gSEHs#s(&L$T=4rT|8x*gTnQV_Da`2;<$75kn*%4S&plVq|SC; zk9CnvQbiZ}ox&tW7f}qOi^(h_Pc2={U(r>%Sbs$?S{JLZ>5g{q>A@z|YE5T;MKcF$wD&uKWtd;ld`yh? zQWcpfV6?aQ^jLECo}T~meXg9eynA}6v$qqSy$V>+*=xY7sIylCv!c#k3rtJ_YtxGu z$m(qJ(mI=Y`Z{}cP+XnOR8{U^mkbu0&Rz$Fp%&}Xix|l0Y!Z8{vzfRDI@>1mbaskt z)Td7^qqEn95JqS7v7F9M@<{9K3?p4=PjvQrkRq$IIS#Tqn*!kbrIfn{oy}2Aojrzr zaaFj~*^gMAO$K!~eMe_AU81vPFhghS(53)JXQw4po$W|igU(h72b4BIwnjqe>_@H6 zCWAVgzN526LRV+&ko9FH&FE}CCOSJ297BD5Fly1+KSn&Gvn8)uCUh>eYX#d&8zQ}_ zAawRTtFy_V&Zh6^Y^k8DvneP()Csp1olSAWh_0`*m9Blnap&r6g+}9Vih*s(XQniI=foa8J*1>tj_j3fn^w-&BsJ%OI2i|fX=p- zZ%d9X-}bvH|7D%cNz1W)>s{R2i_YE%EWL+%ES|z>oVY)Mi{tE@z$om4Cf(p%WERD2gVlOU63WP-c6`@pMk z7q{dsnc^nqzKEyG2$tNC?*}UO5Oi}7HRYgMipXsEfz$ z1n>4T@G899lDA}vHW-3+p9 z>Rx4DV`9u}$I~kw1DEp}&YQ}-Mk?ktdd|GYB&m5#a*^cjyk@DD=QS3Ynb#DvoB)>g zX@sXRD#As*O7IHXNxiC}6{bd?o=C4a87}+u_oh!tMW51h&zAJl=vNcF1?6>#PF2th#=4Ih+y_wpc)f=Q}`2#9@h2y`d~ugWiCE9$n(hFT|=H=GA4 zjGVZ*s($^mfa<~`hnKNuNn?N=rBmACmDTbnID`HaDn*t)=P6)<}rW4bM`- z-9$n%xVeG8W6u%^-OUX;WPMplGxjV#CibjEaNXSSB-(q-c-`C}cPMXIWpl#?$OvDh zVRp6HJ806p9$w=qatOB;LJ7%Vy7#t_8&7$#zv9fT3^XZY^D#@xp+9QtT2{5yLK z`4V~i7&gP5al44lx(F=10GGjo&f;|)Z$V$34t=!>0*7Gj1ivt$yDmY5SUp+Y6-Jjj zbbFjr>1<^33+Kx90!IzcdTk8VRBJpQnVE3w|bpil4rtRz*Vh(qDZcd|63TwHiiz z7QI^fC7!}!B0OHEYe8y zLs-4^w_5X=WhCZcFa1qM`=Zv6m;P3%p)Qmy?iymDtkxPPm;U-gjjd=F%J`Tplu1?O zUBp7!Dr`?VB4Wvn`Bg!MU2Ckl^Y=c3%dn2%;j&$UrFceUAaEI2LHrG>hk>tFK=@7g zYdZ8_0&|i6IDD5*dL*++Vid5kKz~Eb&7ipOjHyz$zAiR+ zCZ+#Bz_Z&>2Q<#@^dbf_`)o+80MFdLu@;_@8pAUtPQ$bEdt*I#W|MjFEJZd*$)}cq zXSYBI1JC$aZl6t(M|z)4hLJ9`C;M#ffD}ef2S9OnWdRfgz=w_~w_}&6v^SP-68G8M zMZY))F8A5IL=C;Zz!NgK&xXDOpqMV%XCv8H=sN&PBy{)L=#cegCC%6+_?Xxw62URle+5P@`)uw(JOh#> zueA28v^Q2O*j~C9=}iS;lz5pH)V;A}&?rIQ0ZCFpcb^Rf#YcPKWBsT3qBLDDElsvxEl&(^^QNoEWf_#pYz(!~TwRk~Q=!=iPu3Y+d|7a##XRBJi| zkeGwrXXAGQ%P{bPj|qH`s>np)!3RrD;6o7KX)(#*hc{AoohvZG5I^h=9O2@J@1ehm z6P8cm2jYZ7L7Rks#}33v%fkt;gTI^Lg!{k(PIv&G!3iZ4G?W+t|8Jw5s(8RK&%tkv z7)fNl1NAWS#w76wy@-JqZcudK^G)eKo?v! z${K%2jnM@Yr_n|E`zt(jVUv02B1JZe-lv*Qb5}in4IvD=;G?1o|Ne?352#r0NN0wT zF4QD|=NNywxxeBuNMYo3&;`e17F|#Pe1L{>JLsa){S|!wcz?xj=ojyY%lj){vFL&f z-d{oAK^IJi^&2(M$V&xup|2PPFz6yJp`r^%LI+(`y1zmtY$^Q~*%}FPf5od7U68^1 zE9g7uLL_wWuh1du%SxI-7ko_6MItzc`r}~Kf-ZiCcm`caUTM`+>HZ3>;K0(8NN*~L z`z!uz(FGa2zkt;l)1lx;^M0%aQ*u$l&*cmap$57tNBvnkd3Y7m`mcT}*UQrHd6^ELs<H|Ey?)!tt**Ir&{7cr158YMOe^3t&48PH-_!2kzT|=240ZZV|c;DJ%ATB znFlXYWTWYQY8iO(9E33Nf{*3kMUqDvUSt^QLVE%)UV;=^c)?Mag%=b6Us|HvHNXqL zf`k{Z&@Vm>m+<0s3opnZyrA#E3#Lopg}hvV7y7DE00S@55-PlKB&-2msDv%0SCOre z5b$EYg%@NHUeI^og-Gba3mvk)tfU!u!N&w%B!Xk8{|Ss*;KiR2&%g`Gs}|kE9Ti%^ zfu+}w-c%6q;tdNg$RNC+@4ySGpbIZ3Xc*D01zu3xFrw?j3#DrxaooA^LV4PdEXRcx zQfI50V|ZbcRDl}B%V8j?+yo~2CQdd$byikIqQFu{7OedbL zLp69I`P9FZ@nm83tbPF@YCS6`3eJcwxyg zyhv;pw;O!XnZg&?MJTq53sU%EJ>Uc4i#_0{@x`^E-Hv|;UvSRy@WnFV?=H5B*TDk5 z_zOIPFCKv``$3LR@jp!P#T#HI_yQMUD84Y;E8heYGr(K)A_lUS3Gyt2(7QO8XAB|C zCt5&p0RvMtbUkVTgMSx?WZ>%jn)f`ujf^4jJMiMq_!l-9HmRnm$@<^{OWEkl}d$P9hE~Ln+=LMi<)iVVMBl2AJTxo5A zBbaLo@6#{Nhs(8v1y((i!LAAbo+JaWFz4Q^%n+jrW;jdOblfktG`i^>*3c70x6cpd-fSXazW!4rbZWz(^*A|qn zeZ+C+s%PbCL$VxKJxiUfYKzsgO;SZY`<=ohMmR)w7hN>X{K^_53$HhmpFH zO4YLxB#o-)3Sv6(Y#pkpXUV6QE~a{}(#5Kt7p;p`*mOs`>KSVb)tb(zXXaqn7W__N z8Ad(xFnovwFUd@-;xvcoapCIv2FJt=-ZuBYYPL7etsT4)Mc_aVG{Hv_45q) zY5n{rXrJQW(a)T;D(L6Gg9ZKk4|o;z^Cw_d)X)C}6H~zF^dbhb`kB16erBG&e*P2` zS3fgVL)Ryj^s{8pBmMjZGKR!o(u)|#=w}jpte=^<2m0A2^Yn9yY*eLBEu)`5gAhhP z^Rb+MPVz|W=L{oVXixO>zaT|cKeNxX`k4aY(>ave`T1N)KXU|AKYvZX_%U4S=Qpi> zCWHE!zN4R+F4502aG{@d7*hbFpVJbmes(0RK|ia6_?QK8RMnCg0(a(wC80!B9qZa-AE#evdEP2&3dGqJ9RuCVvKzdU_=;ybsekOzZ znZBc+rGl=0rl9zk1>9QnGsVTnEa3Y3S?StG9CxmMR-QH_%W?Iy)Y)t|qIIzfo9^h8ey-MZMn5wLtDpT&U>Qa~^D)uSQWcpfJpF9R|L^*lla|rXL&E%U z>?6d!#rD;3EEqce7ThyXcg(xk3>ZfLLBzHIXU1`5MScDPoJ|}d_I!J8cOhcvx!qt1 z4yPPkobe3d74UVl`p!a?bGuB8bGvm+S^S=5;oR;!c#U}<0jb!6PR}{F%Ot6DyON6} zchBuwYUOjgEYh6Yb=#p=uw1GgdQrltH(c8q7fEZ_J1TxA_J?}JL3`|qJL@G)leo=r z(JFo56?T+XSr3aNa*}&}Jn$s=+rJ z!|N$wxRt8kKA@|H|-@^wSR)1@LyZpd#0YWL^ZDOX*7W5#vcE<1+$QM6)X8jRE&k48S374D0MQgReE9}&5YcVxitDRnP09>}#d#1HWMQhP>T8l|) zYAwlIGWA-^l1*!Mb4Hp{)znr4DOl20mw9c4+kgQWIuJwKY7m~nXbHGzt0mzTc9ymp zi!PCoH4YCPSwDeqMix_}tp?L8cEV*_{mrx$sc0*D3p-YcM;4PHlTDEcMivf>RT^26 zw`7X8+8pt8WLa`UehW~$yCZ;7)#bNjOm|#m-^ryAF^ra`cu9-RNWGKVX3HRszLP^G z&9dSy2Nx~3JiNj#-L@R_K+CN_uQ&uQTkd_+a-^c==s7LNBsI01UY&X)7kFsjVb$$<%8rORlZ0D3xg|)puiIKiE^|qcy<7 z@Af2)?&DE5**2^Z&-6gesqD%H^CeySw3Zm!TF>&r@-u@3Puu?{7IW2kQmMlIH%EfLRH zha|7G>7dfyO|9U-(s-md6~yL>Pgp@c8A1j(SI~E?LsCI^a|H#(rI2vVSh2UJm)W~X zad96bTz_+g(zTB`?p*7T^0XmYj%yu~I$O(1Y#p*ms#u5oPGJ&b9g??6ufAaZv<^u* zY8_%kScl}+^v&>$>n6pORB9bkf}~OFPz5oac(xAKI+VRNUGk}=i)kII(#2{WTC^@! zVbdM$-kRQNro;+OXRJfa!EUbbJAq{w>kuE4%@tA=c@43-!rq#0$?>h}@wt%y^0&u0 zWqEg|<1UC`Z^0W|fd#y=BRt>@t`D_g9|yjx7;KC6pD_9<7%`GKfAwTvh0yu!G4i|r z_E-|D%D2ZDr`vCjh0!*SKo5+y0&VNiKXK^WIrM?!Z2avV`YH~62Zw%HvXR707FBW8 zE=Y-~a94T}1MA;`=ENNgII+^sJsDVmYZkUbD|}GLeA!HzN3Jtz=wh9;mI}78d?ggt zFQ%{_VZ@rn6xIOur8*SK9!9K997ngX>;#Gn+9+;A*Uf- zgQc@x4qj{OYS@HicA-b!NXSw{S&eJzI#ei9Lqj=JD6FBEv<7s@HW;;ZYp<@0fZ4Q3 z7AM%-4cVjHcc&LI(DmY47-p}dvkUX#D6z+2k2&@L?Ac@<*h`TO?((T+z~0Uf!hk(K zmIHf99%-iOr*i=XFkmk&p@Ka|7-U2|ResTa&N-tJ+EWo*N_!!h5fNzb z9~AM|Sp3HgyI>IQ(Ra|Ei0Gm{9kaf$q#3lw#{}&ql4Gpz0S3^X+)FkSKW*`R5xg`VR7w%DTvpLWdFET96;b z4I{cf@>9AFDGovx`6*8umF2j|PwH$@Q;hs=#I&))Px^%%2G=&a-TdUWGgxV!z5k@Mpny&$CPbF5y|((Xg2i zuf%t4(AEMgW^f?>9a{_E;JW-2$r|fiO~LLMHEQSD7cA6we|WHS;e)+n{*F9g=lVG) zxTRU#1I0Z^+=InEMBGEgJq&LCPxwt)(FmpXFBV1n*WvVw`@yCC>z^FOYmPSG{kzbY3^`&aknCiXAMNM!fyUzS|n{euDB*SNfEW&-Y_ zf#!oYI{_^8%_;DVZIZtg?!x~#ypzY{y$hoV%yPdMNaybb`rZFtNMcp_y}&p%{9Y(J z0=d5zN)Fxqy>OyKcYiOO zUZ^*}7g$Th`Ss@a0_zu3^!Ea57E|>10_zl0^!Ea56I1l}!l|IRzZWP^>gJxs_IrU{ z>Y;o6y}-(OWc|G$HS~TjNDaN;3#_4+w1(dcYy;=_0)vb5_rfobAG-ZadJzK|<1mR8 zelNIN`=!~%Wb9rW#Kh^}3+1==OZwP2Y?FDv7gA&c-F<4A-wUTf2=jY^kL9)wCV8Z{ z4rUnXLVL1xa0;Zz{$AkN&i-DY0Jzwka@VkRkdq>}4xU55I2kUt4t`1Hu|ALsuJZM~%SxL0xxmNd=RzVlhWc4x0AxN1Enf8}!c@dFKM^Fa^iPCJ zTl=+w?WJi*Zz_nbga2j)?~&g_WN_;sedi~FRM6czNI`LtHQdZkgfd(EDK4&-hU;$~ zRJ!&N$DR8VL3!GcEXVzcAa%CzI{t}ZlT`VM;CBj>n4bs~!~8^G{``p`<>*fYMuc&A z2Wb1!*?7i99CkTpz{n*-Ht?7($m^s+3gMKHl3}YPTWAZ~tsv;8weh68lX2}Mr#kS#b z=6BGX)bF5!&F`QUQ@?|r1`b;RuiD4()BE~yYe9f5L@pNRjOF3IzaU?=4W9=V@ZLr6 zjBOb7AO|^S%FH$$j2P>6>}E}?7dUhaiOgBNOTfgOa4Efrf#f)UVj?Bann;;*7_lq` zCJkK*Rai<)QK)huC@xfCJ`G(Xk^TpmHn(TR+>alSVB`^~k=zzUfgIex;Nrv$mmxni z+~xEl1~PU=5-Z?_?iZDrIE@=>SX8#jJlv2X8x`(T%ixBKA%wvVd@N^YO!7$E88eJ@ zp*^uP&VUqI+`xgB#SIi7jL36wL#0J!zFf33UO~TjK3v)vzoybsJ0lsiGtzf(1JfmT zMtOgL8}x0W00uXtB~;wN2(UAXh&9+5Rm7Ikl}Khpgq`slil}x*GH7R{?*Io8(X}(` znDvDv%>V~JCcq()9AkYZ7{)p^rdB)SRY+q%gyfsnFqKxAwXy?CS0lZtEbNTmva)Jt zB!hNF`VNSY%DQ$&3XR+C;buTYnH6S=i|dZz`gTU8>yY9gbU}pjv{6}(3nHY>RsqK# z!X~K#BK!_w5(6SAh5-@GpCCfYQ4qn1uANb0$96`ESKiK8PE@forWh7PsGU*7gq@Lt zK5J)`ew6pgvol(9+Rk`3AmTyLm;Zq8+8G~$j-#FN1lTvycE;&2Z7H~&ia_C#h$lhqCMi`T%V$?7|fR<$RRL6a4I z$DYV^8GE8rbPe{z%0<&;)qS~%$x1R3**$xrC6~7+mf26o`aAZ-`e5_Ko;U|AwEa!+ z(DsMInD`p{6gJ+QK?$Q<#GNbdt>WGWH~(t)Mnh)I9=M%;@kY4pf&bVZAcH+X-!U38 zUB+nW6kUVSuyWDtf$qyqdO$J~**&A7CC5fX*Jjv<_Cnug$l7}t@*!YSwHe+47TW(F zc*bT(42dZ^n1=r+@DAasQZUQm$h#bR21nipCRD`z^dbfl9GRHT$g`$1#gQy4HgGA9 zWGOL4apc{gxHyveG;}?=sdFvVqMN+7FOMTd9v??iAO}Y>xHxg-1IP~z_aME9fsFl$ z#0ogFd;1d;r*UKr_9vUn!;vYnfpk8#434}PLKqy$$8z?kB#*THDZ@w?+7tWJLy#hi zBRSBrIFbT{5qU0-taNmhFBt7lkI*mv3NGzW3po#|{fP|PpXfU{lIarrle|B`k@_}K z0D~jb5-N^#B&@;yq!JD&J&J6Ngs?w-PYKojL{oJ3mv7-S?Fk!RDq6ur!a|ujugW{N9IrH zDCH=0WW?D1^e~=rZ?L$MO6^ZdkThz4svxEl&(^_0$E^KH@~NeZX@9EH#cF?Av@TX* z(;c0%KUHfwV}D`}*8b#o0?RP=Cq5?jC#i}|6rTObl2i64oK_cn{6z{M-)ZpigcLsR zgzl&PX?^%<`_svwO~b#l7R(vT!w$a(A9p)pHhLT^V29tqGxnz$D02gpH(GGRZ@`Fg z!{Jn~t+}9iau|`$wMP1>wMIr8`m=NA!i+U>1AH3L#FkjeS|cM3%EZa8H8P%1|J-vv51nSVN^E`JIlBZCov9+;_f|=^eDq&+6r3oX-r%)&U zUg(pcxKM}rG<3~G`qsuC?*^QQQ%&2sM>d{<5C#?TQBhIf zk-Gy1yvO}!_)VSU0TYvV-FAkNF4QD|=UlhlH~%3r9(~nNqD*I2x4B!q*(5 zl`xoAxV`iO^U*E=2CHL*ODr}bgBXmygTbW227}d)Y&a38i?Lk}cc3yKc^!1vxgg5Q z>VMc&q_^NBw!PWtRREOV!c1ZSlnie@qQLwKprjlHP>kq)*i>SR?F}XliKn2coM`f4 z(-gx3CjGFfh=qB9gEaeLQ)zT*Z12OSmKto?BooV}zmS7FfTSqWh3ovzVg$kXWafqDC3kCZ?!SWpmo@p_p*ua|=>KL(y{!tf7~*tNT-}Yy-y* z#GqtR<`e2YIi&hm9NSq;LIJ{vyjm~`Cq!bBx9JyOf=f)&iwbaQ!6al5 zlhAiC3DYH*gl|9hA?aK|0SqQdOQ@K{k+23#q7t^2-a)oTLST~KlyI_O5;BNM=sTE1 zBy=%}4q0DT(hMfyV}eN%!JW^lAK_pUgHHsjRKq9lB2(NQ%&cR4k_2kOCtCUT(tFHD zy9fBB-r^H7h)?J{_(UpS2A`-r+5sF?EH5){sNN=;X znoSW?6w|#&K}5-I(s08b@r0h0CLzW4#;6}ae|yLksk)azvx8_bUlm4bj>;>RscC% zNQ}RtX3aXJ#%3KRPJcJT59FlC25ZvDfJw?T>tq<|LQMjAj#;P4H|sQ|%sT&u6z0XHS%<^ih;7X} z8i&Q>u1>favyMnsyIF^CP8LFG{^Yq3sxJ&)AJdos3tava8mRP;7U%4+wNL3=`o;I* zw)F|~4b;(FVe-Z`p&+&6{zCc=gkn16q+7W;+YmzO+(Q8jgi1@O5XzCzflxF&eL)Gi zd+bYkG=z;M8f|0e=*B`+;yfegfA;;3ZcS? z&w`;!U*Rb%Cc@)o`kIu8^ktvItUBgSv9Cz@NrtbpVS!Z_GAw2vO_etN{0BLiWj84{ zy(ZJ%)}H@{lGE7rtu_WvhH7K9l@^MG(p_y~zKM--g&BO^juqchoZq8USTfZf*TDqA_Z&kYaZW(Ed*3Bw#y0hJ-w}EE9RHGYZ^_tHty)lQ@ zffEPd2rU+olF`4YH5^>MhPt@8xNC^b?bQZ|Tf>gHhW=1vE1JbcJ|>Hc(pfTfdW(ye z9PcQ?Im9BS1x&WaH0f8t zcj?6L?}GL@{vGVj`NCUwoC&+3+7`bD3!}Ezl8J3G-m~-{nPhWd#F)K!YOr8z&A_lUHc;s0V8*|3pyPzp*Y&84cSxQV%)K~|KiyE0vL)YA&{UFoW z_UT1D5{x{8`jUO`6v%;a3@%Ox*NFVka82|g1~PUk5-UKs?pNlRI1S-ySediQJP4N} z8#Lup%Rso^5W+w>K9;jnC3&RnR2fFP(4N?-njwXe)3H-=pk+Z81;EwLl-oHkS845x zFBk1peVD3G4rEe1jFd!=}p@J+&LI-43T02t- zTT6YBt&tFRsy>uZ?NnsYPDS4VSt6lpr_v$o%SxKDQ}HpeQze4`Ks!}GWEw`2b!?|f z0=3wwwDRqx{>(?a2X?Byth}zHkwH5ZeFs!Y<;&QqR37aB4k{NFSy_EMl?ZInM7)k> zqgO#herq#{K|~b6AR^{Zl`iEdB4R|>P9?EpJC(#!6jV+$u~VfO76IuxnurBE6$fnA zP9=>ljqTZ~EIDnbsNqW-s$)k&M;%wPd8mZ_OUoi# zBOz=a{VAc^Jjftmpzo+-k8{N~!j8>D z!cSuk9^=|PNKM;3mIKY$JfzrKehky*p^ed2TAuP~cfsZ{fQ_Lx4>D-;pzo+>X$;rq zp%tQQhG|us2gMB|y1var>Dr$h(XMt^o;Etmacv$_=d6aeNvddgzXO@XXn2ZYG(7XC zmXUH)!!u%R^B98XFj7}ism((Pl18m?whmU~tIZ=BE5;%qdDYU*w0TtNX0>@N zS~sh}>CR5sJgPOHu?R2+Yx77(|Dx8AHjgSbRGY`*t|4q5wbn4PdH6$(t!Qi>d`xT} zQWbd@J)4ImXKfzO!SF$w$J)SJuFc~_U@qD`#sI&8mDoJq1rDQaqY+rlwQc+kVbVWL z(TM|B2gch7{|*l1^zPX_R!6=+m-WgOzyc0j2_A4D;9u|}WIPr^)FH4wDo>sQINV3qrQg_Po(k9MyVRO7926IvF;zp?z9j%2#%q?3K+Elp3}TVI(yFY|#$2sndudIiHx-0Ip^X*1M|S;?L4yK)2eC*6 z-NR87G>qtG5KEcEQ4}|f==z7Fl&*cmapxiySb zLNN?tVg5ucQjQ`PMg(G!o7-2#Gd@BiuB1}Lq6A5!h^2yrOv(;zN^crv%jR?hfa2MHYY9T?)KgRFBN|q z-}A!4Zu4xw1HX&b2;Y1cjj8bsrj6+pH-O7; zFb!nY@Wnk+akmP+g&j-97kV-YGHFI8_%2!>con|5CwWVzFc|ekJiTqxk{j~>mb8g&lasnFN{KjZDxo_rR;r zGLpAsik7(-@w8N`Am|Gi@A3NOPX;(x$5%wYh1R?Q;4DC zervGMHb>zmc|3*Dw&HFl?)KvDAnuOh?gSTYvopNHgznx4W{vk@7kb5?!sYwWY2F7? z@jlRV-UlX0y$_O$BzNBjOU=9wmtK{;4=mJqADV;rQSSrfeb^N&)caUm(Tt}s`kA8T->K?gp15 zV~`mcq+(>y15}FN874s{yaX2`V;6W8Muy}qnPOz@ig-FQEV&`S8>r@;xh`nB#g2b7N=H(KUM zdc_0avSpSqEki0=hMvtIoO6QZKz(U*L8>SQR z6h=pj+XWYGFcDs1Vz=`K^FSLML$6qX%Qjfjv;nDT1A5N9!6Y@!8dhOLoSHYz z2%4tZ@p17L$@rjL&b;C3%VWVp8$e%9!V|7n7WV|WXoJb{3deLeKQIf-4-viMad0_5 z3^wxvshA(=Ir9UPq~-_7MUuPogQaHX2S;DBP-lLq5B`|U4@Iz0zrDifL_CGjN#dR? z?kR9l%TwVMj_r1|Gbi-)Y4nOExa{erOiz=Fo~GxFb|$H5v`gNSsW;j!*_#K>37Rgl z{XFy9q@O8OW~}Qxa5`8z)_;K~TzDz&6u4-Cv)~nu>$U}$2U_54dc`x~vIUklEkG(- zfS%I=Oj1(|NZyjE*8-NDdfzLKb;{+nfyIXBfTd%7DxSh_eHk;>NyS*F=ZtkGNsV>MMUuN?-BPQKbr$N3br%C%02b;83~&*i!sudg zFA?`raW511a&c$CMZIUjE8w2;>R+&C)~NRt^oke4Wxa=(dXtKJ({t+0B&m8!E|T1> zx20z4?O*^F>eSoC09S&AdIJMoji)gBrMTCKd#$+Fi91W&>&2Z77q!0uUg3mpM?Ooy z$e%;6cokfZ{Gn##lZuf~&l&klQq#znyd_g_y!HuXqz&_W!b`|4Bvv({uWtNmBhUxkz%i|1CAs|IQrGLY@A1 z=lI*fLj5qu{|ZmIJ4@WV#Jw9XYIzU5Ley7&q|>0zttCk#FV3wVze9VV>7S$*F_76CNusx0 zA#%u91KholJ~ckx!o=z2it>9SC4KxY0h`QQu1Jy1%7ITcZRg%v@&tr1%N2Yqw>L7$ zBfU2=!$=p}lf98oK?)?sS>u9e$P}Y zA@)YDND1{`5i+HZdX=>YzlE8^tUbu9p+_8;Ki3|l99?^0M0Y==#E$nvN<3X}C?}fihfFc-T7&L~ z6tS=$l7lq6A5t1!8r$0sY02sRkoC}i2jO?{5%66bJZ3p@YX^tsVF0AVN7E`@BP6j5_vD$QBd*%k&}!5*?eI zW+l&Vk5nB?DdWwMs$(f%Oi>;CA}FqoWj+mEEqgkfA!R~a96FZrI100=OLZ)T^2q;7 zI`$O^ho*m(Uc^9VJ0*z~bga9b(&||E2q_b%b!_?Vl%9^Y$vhpKA{%w*Q_JYsmmq}E zv3xAIoifQIy`3_{NEh0Z?Ua9p6j>e1p_L_r zPUvF*6tEH{ zyc`%Gcl3Zk6hPn6u_B?n;ZcXIFDq&BhDSc@hR4_N6c!WVG2CA#B_dtF+oOj%CCr5w zZ-XPL=?#v50nKa|kYdtn$(0UuYUSHXe`WdFJ=oxwXXSN+BN^P_NZ--7Qh9fSqgH^f z8Anw&I8t2PA_3Rm;HY%%KaNRPT`Nx;ndP|K1*Fbdm2Hz$QQ3ZnF^N&x6vJ#6VE$Cu zQjV%@M#Of3J+LxTnvZ8(9V4!!((M9DkTj~kD~RdDvvsg4d`}eNj19B>Px7jzo4IA6 zN;m5U$3^RA6*%45D`V6Y_JXkZo)2sT)tb+28DI`}gJUw<7qy1m;8>-Gx+!9D*ASZ` zYOP_i!OeL%%}Tzsapzrkb2r103b zW`85j6M1_g?g6e^0n^H#;k$bxE;IWZA1t%KF$897!M}s+IGfky_f=WAm*780cd+2P zH^IW7eFvVwb(cf7F_=%eKVvA$%?Yl18xgX&&P*Ydu5cC2T-8SMH)M-h^?iB~1Ig~l z1iz7&#&49yM{Dnb;-WRCYUtW?vmb=k)&tlpV-aEL|Ff{{0|Vu#Au8U|Et!8kS`k=|Xz~%RYh>Sy;v~nT2H(AdJYX z1(xysBrN-se(^21gk>WvEF*)kjJ^ZQm@a{3@?rs&>1##-3@l4asIbhDum)JB6810s z1KAo00n0{OSVjh68GQ$qiG(gJ(;@52N?Hud_^hz(?|2G}iSQWiACnT1?!qz&XJ8qr zX;}6dXa<%^F}3Jxo;%UXx0U|M^0j*a%SKsPMh0OSeFv6F&8^0bjzjtk4A&KAf_C>8BVOf;4>{668x-_=86lKZrQdAJ%asL~mV@IZSEOg^E=)Eia zwJ5$?-dYrGA-E?WuT6-WLpSz<2i*uWMX($4{09G15O^5*n0LSDc8Lb$jaj>qUc|tt zP0h6%T%(Xr%aEsfkf%0P>-7fB)q0H6(6y{RqiF07;0C6NR4+|FmYPFl|LBjtpeF(o_b4>ji&LbWz<_egfQxjkE-7MgP}ED`_4u)z4+e@uT zZz>3Nwk9j62SdrAI-~EXGpV3^FqDFZ5nVG@>`G6WgP{~RjOh9YLzS+5#Bt|pL*;2h zvK-f>Aa%}aM4P0FM)W&{NsLCM7)B#9e`-W2M>QfN!lZC0eovM9;W>=dl~ig{P=cgU z?N~ufC!Vc?)sTmw2r~xEk8R1PmM*3_p-LC)kL^Y4Vih*s(Q9GE6b^@=Fel*0cD1H6 z<^<+o4~F`kz%tB_Z9XPHwxudEQQ*h+5iCu9Y+G_;9+zs#8pr`W*9IMJaKI<<-90ID zp}To5^sv-#?H2P}d(G5uZT_a74B8a@JHM$pXVvA8(lYs*ns+%UZfFAwxSpm;sig7cr3hI!;glc@`DuT@K7se;vm-p#u~bCool&yBs8g#dep& zU=)U0EJZJ3AfvKL?6Jyb;vT4Mo6J+$DYDU?KDCU>9t0tb%I0G^m7U~~R@oUwy3n4e z?4=<^R%LS>WK}i=z}0h<+xbOWNo8|XQ)LgOUu=g%9aYcDw~3a5#3r; zHpRv5Q*eEit#s`pjyqRnD^DAe<+v(a>TK0r{3F&TsiLy|PGJ(GvMGj9+036RTgp+D z&4{te9)f4wJ|(WCQkAU)Nuw&ef|yP`TZd{YTk@%;i>b1!bg`=JMeAY}Hr>%Fm0hjr zjLK#XR%QF0z%q===3}C=r7AK}cq-eH6P5k{b(aGtEk|d&XH!=IOV2G0!xL_}5qBlH z*twF2S15INZi!jo+|tVQiYvn9xux~+a`G+*Qn7kU&pEfmB&l;tl8YpF&n;PMwR1}> z)H%1L=Z_B+TgC{mP(PeM9)+hc8ZGWBa8bWi;T2Al`V|0Z5S{T;9=D3aOu+@gN1r+ zg==1>$A>J&RA2fy8KxhHy+Dc z?{Q%1Sl$FrVYDe+)P6H~g;Tq&JyWCho6{@)1TJg;V^e!lQG0q$?U|&e+DqP&saJbT zHnrFH_@tm|imm&3mn3zkRHp7jus;}|@)@zp#F4E*{mEN`Ga{y~Ga#4W1=f7|M%M_2 zV52o5eFrwh??0SN0O;Hr3GusZ8+d&%71j?L^D;hQfe*EA3rZMm2RHw1AD&MB9M{~n z_ipR0AA#Xz9p)o2yrhHKgsr_w+tV-p6mDCuFux&M?~VELK@2k5!J_ZLOr}Fl{0L0H zhNk>iC~5u4R)E4e=;!>`pti%%n_n8=QvcB&WJd$)pnU5K=Ys#EEkS825Y!~}sh|&U zXoy-6tuT$5e2GjNB0%U~`2~Fg=5{k1$Z+45n7 zb~~iKamm%|C!UXple00~8nksg| z^6gEA^%r5aHWejrDP?2+1i}H5Q6C| zYsroIi$ImN{IxLo;BNu`ufhLG=#k~&^WGeIGMJk%<_6*4u@`Wh)a5T`Ch^!EA4WTX znm-$DP?z5b0|-NWO%CxLK~AELs~cT6aAbX5;R(D10~gkfxV3K7a1D(bQrGpz#$ZDJ zLS!*|Kwa0uIKX&=Ms$uCUpH}6e6(%Y=(^zpN94!ham0|i{0)fCy0ovB3p(JRjysR) z@|Qrk=C;83de(^ML5UdctA*LPxCDnaxRlk}TV)EPJxIC?qyoMbVyi3Vg~76>yfE4m z@yeB|O%b=!{$aEiB6fY)H<(bDe;lK%@G!(5o(LxS_6oLx&%ZF*8_^3-AWqlT{m?cW zBS{{c*P9FL;7QrSDa?R)`Hj);6CcNmFwCT!#i-BFnFHzw^wK`8&?}(S6*`bbQu4Gg zx&m3$h0&GFX)JO&=1dF&Y4W;>SF!esD^A=TXXEApAfbwD;rV17Qng(%q^@v_ zgwwv!9dVnmUUk7wP_HAQ6Lj?TY0Eid9wVfH{?_>xAD@aQAQT-%Qe9y#%82>5;@OVE z2g0ZeaVGu&FX^zl!X`P)vd{1t*ZY8;U&v{98;)Ka{bNEaUdtrcBm`7!b$l1-k5}UMIU!A%q7fi>I!=xHLlq~lBEiFFq3k$ zxMlDar4uN~Q7rOsKnUE)BQo^Hq+#oc@fW3{6&bB?0Mg~_IKg0Hy=)Zat}^imR-}YP ziL98CPC@b!BkBroqC%X!*3d`Q>zt`P6#J`8EV2QA;WuDmA2dkPpsP$gnQ_i?Vs8_^JmrvUzX^eeInh{qoFg~gO)1;a2G~XPpJ=%KJk;O^}#ho zy5r>eQGFJ7A8}U}`X3_3StepWgYG(DN`25ec_^MQL!O`%>E1Gd^!n2en9>}aciqa< z`v=F(+To%4;H?hQi=889wFRR)XX1*>k30T~Ul0oh)7^g%-LIxRcye3tTF1=e`v=<( z+To$LV3T_pbFKS6yP!VU>qO=-;}SmK0=Iv#2IABQuTLWVZISA+PRjPqaim;(44*eR za?iW!gJHWKFlAzJ(hS!6UMcZU6Xwr+Jm`NJDcc;yJlm1>Iia)#^Dduxd~>k;c`Hw^ z4^JbY?r@Ys15&+QEEe30(f_t7ohLwD)3?!cv^7$!F512AIc>k`i&L0w-cgNl5qJ=@} z3}#Ly0rsS1jv@i0-@6s>dJx;K}vDPo&+}i=M`Ip>1VkUUcz@E9!&WrtgAw z$WK1}jQZfti0(&{&pD?uhj|y#ojZ+v`oO8|)5)jMU0vMq;_eH#e{jU*v!^x(n_fNz z?h2Qa^3G+mr?v%4V$9SB%RbJ2dFv9o#arqA=?1#jOxW)tjJ=&7Jh?Myo^$bBsHAZn$`E|De}3?623S(fto{s}BYqO?hUc*Xo1YkLP3$9A;A&1vS;r*fwJA*xixy{F1+s;GZ-zM!CEMBaB$NN&qIc(H|%jkXE5q< zO8e$1Uq9X%{1RM@e9SY0gC9Ti)%l&lLDTpKtv{W)?Tyh}A6zKaKhu9YZDE))B6WBYOb<*vFw+u7b$$XFYLK~u; zCDpkn&A+WJ7=IH-!cV4=K0(^~u}2S>f+;%qU<10MgJ|NgpLQmbRp`A_X8alv~uAxID&n@PD)MqTx9VU4Wy@{cgpkO5X zs81V0RG5^EyrqJRjbsch9b91~)6gs<8AHniH%cy(&t3C+hUQ9W$W(?_2p*Ks4UaN3 zESM*u*E<+mIrzPVPLt5c;DsOu1-Q@MYhK@)8x8$=GTP;=vl(-BgxG>@=WA%bgbuor zq4k2lOS*?AGu@cr3rTmFq#KJ6(`_W_#s>eE(ByNkojo?#6sgF2y@R2xf&mgbO+r5n zIwf@e1oE~GmXXk~84PU~EYF0H^V-?1xgCSN@Y>ENZ&wpK=t_q64%U;H4^L*y{eq1p z=0+0pV1(H31LpkX>aoG0!DbQ~ZbF;qIF{zzdZzLMwAn;1GQI55Zdd}g|a4i#BGK%OJOJ4|BkD>07^rb;d)#PXvkECE($)B z&<&3=bV=|J388NhngJNcbm&`zuE1qJ4E^aWhOP=4L-xbfk1=#j&?2D$D1B@&3n9kb zu#2JDhPVHn49$Vv2bppdK+c;G($PxZt>hsc#)O0hO9*2Ep?iZ>Bpt>C(mfEYBk2y4 z`aOye^L!t&wB{ZS))(F^;XQ#6^Tg;uE>8p-sGM_dxN2vr zHrPo*Pu;7bT_jYzMMDQl=m`_z&FUOIEB0lchfAJAZ(`^<{4m$iqoHF&mJg8U8sHr( z=}O3DZ17resifQPMuuJwt`gpFg!g(dTX=U0Z+>vI8G zI_OGc!oAur5*XL^OaF!#Ob74qs4(q7R}Sf}swm*|y#xi$$6pQE96 z;D3yzx!2=8>X#cRypEd~>YrOicwgS4p_PUA<&6vt$c?LGZ}vet%=)>bB=iMhGIWfD z=G?5IvnBM3;hig?$L>?!WfI!Q@NSgQMkaKRgl;pT$0c;J2|X#HolP#!OXvkt-g^@I z)`S*H9k!7A4aoKC#g-T<^=rvB;RjJm@G9~g8?@y53GX?nUu$mZUTnd~QNo5nYi=!x zxv#`rCbyf!93e4>fo5Ik=xq~J2>U|8&$W4^c8mR49=(O`CH1=?Y?#Ruq z=LngDmLD73nY%@JLnP)sCiKTg$a^F=Ph#FKV`5(JNs0O7MdUqULXXMlc{2Bc@TQ^# z#|F>j7D(vo3mJML_o0OP$e4IF_qBv>lh%DL_q~LEHi0qc=Xy7=C9aXa{cCPO1KaHP z(q?bw+8fwrTS%L|hY(|aKAY*@%XLcVSxNU{ZdnOEIGwytbE72mvef9a+!_-4N?PLI zxs4@s;e(9%Rc;dry)SuwlN&Fgqoi*a=5~_M7^z<_+*3j&>4#q70Wgkmj{I&W=GO4= z2DWa;O$;@JM+@)ETQoFDcwgSgP-A$8{>|jIh4)L$Gv+YV9zNEf zv*~v;VF3%DmCzT+lcDD&v^H{KXugF0hFlo>NJ7UL-e(fp+k}Ef$^{w9w1oCCydO*GHWL~rp^Hsua|sPMp&cZ&v&m(53B6z>J5oa5noy~cy?HDo+W}Ia zCZT;0+9g;fyauO5TY|pGb8N6u_(&sL_d#iweE5>^UKL(G{7QJwN$aj0HZ(EM$5HzJ z!OG!K-UkxwD>2s!H)>)oBP8b9;pW1-U3hDU+Y9ev;jI(mQvyhLiSX75e=fW(;jJ5D z^9gt>32)u-OyT`SBwH_>E~TH3(hm#P3$Z4Gm@i7-ZXW(lVje6pw+LSo-gm;=BK$^p z*9vdTu&$YMmToFQGjACVkkBS`G}O|}`W-#t=d;P{kkI+JGPG4VSVDW<&(JpEauOPK z2}8SwKa$WV$9;S~uzt9egw~zJ(7xgJ5_4KHK;aGM_%+r|y7!vo_aEj3*Javl8EN_v;cHB-`RBOJ2j zDU#M0k)Ur=C9N|`f(~z#w8^Lds`84YZAJ}$x$Y~mDjyn6A=@)u%Jwkr!20bo;!yLo zQBwAW(FHYM7BhN8%V2tAnxt=x{*d`&jgA>3Kr1lYAC2chZ^CBBjTC>1yV6Q0j8w=f zU=BYs%|p9ijj50gLc7z(4A38M%kj<`Z-737>~~`+=>4fu_Ls2^^wl;=SB&>Tmj_C^ zVSEgl_P!*|@hRvO`ZOE|K!e9fnbYwds1|1H=QsgMgq{J8v!F>cHoP@e%kQ`dD{Y^+ zZN7-6j_XYO5+wZ%y0|!bill%1lf`O&vo?83vMzGp0J*krt(LM zT%+!3lvKm<9CYchgeVEJYhjm?q$~v#Sx8bH zM=GdS;sdLG&>K2l0lfig;+P2P?|>SE+BnvLDuUu1?}IkX z`&GOUv~}zZa0n}XeV-;?TM`_nKz~(~)YtJVsOCeGMmWxZYE_k#>Np2lD6;cMwAqde zpnT%T086zwj^9C>MArL=w!m=_l}KZ)Vk^evfYOcN1)Z`R}Npusz8^+4mXH&`Oc9KR35r~ z?+5@M ze4?lCqc`=^+qd0Ky$thhe^W2xd^_IM%S*nGfoQfn1<`De`Su6VY)|+O1kr3y`#u4p*8uyX`xQIw<#&QYKu*j06$qlvJmW1Y`~F4dAXdpeUqXLU(KoiBj?h8K)= zrhuxJkg`e6aiB-AH>WvMK`xz358nc}5;sg~xP1R7pI(o*LupufsVTH%}m>I*&B zJ6{DoP({jiJEwy_7r&ias(t310a{s8(oyFukO*Lc&O7IT-U^gtxaNVr7vHHa)e5>^ z2lW^K=dz_*Y1aa(iC7TjS_q0MEoF6Fi$MQiMonCAgZe%wWgT2gKst2k?^*_m6F=Wt zswKMK1%-&$sioRv*K&|Ud^Id0pKB%Pc!Z=?uGOHb#U$-=tp(kIRrpII_h+CqtY%C1eo$A;DBk@gXf)=~ z$$b#iqLS>hyZb9plj@TCyAOjthn1dme*=00y$p9Bp_*l7%|!S2puOlN#eEF49lgBd z{t+}ne1pDJo8~?ax>tPHzEqp-J_({-^@jTth<4Qq_pcz@RomTXK(wnqbe{vIVjt~w zUjT`(5JaEfxqk=IKDyw(2wL*6lo@`PKpo(pp?;S^v$2ov_qz&u9{yR&?>cA-{Iiwc zKcL3&Pw|Hu^UE{tN%+JNKLd0W{+Z;Dp^M?)40H(Ab@{gdUBiwG@NWfr57rIwZvz?(>qhv;f=Xbo6!U)+M7A#N-xfr+ zuI8TrB3n20?*JlOcku57`U+V0AhPur{{28?>mU6GfXLQ=_zwb+t$hLpgUHtY0Z)R+*1-W!gUHr}0)~Rd zX*!tdp5ulG@>v933Kt9+<4+e||orkTf20RZUTh|Fl0+Fp72D|_wTQ?6# z0g**5BZqDmkP2D`zwQ$-5ky(S@PJ96>+tId0k44CLhHE!Q$Rc5XYU5Q3OWKm zTOBYRL^;F8fEl3Yal&p3m<7r}FS`TgfIh_;urFX9=n&4-BLT02Uc;GsK41Zebh#9; z5R@P5?h0H4O4sCS77lzHbPVfWA#e%kVXS-Yz-6G$SocC`1~IjAG%&@*r) zXgD+*5V#sdb9gdvE$Bl;qGtowgAU+yN(|fxO2!B&f$xDnK_r?OxEbV&6Jbi=R!|kJ z!;HY~pwF-lO9FR*e#P8Z2JQkC!LHgExEu5UcIwB0dq9UV_wNHg0sRDD`ZaJLCWD-liG z=RX2!fPA7~{_jC`vHM5nKL#pSSgz44`F{lEM=W?d|8dX(#JVl{PlDDWzI>Md6le%y z-H-Wy1&x6P|IB{|lz`mES>PNf4IWvjzy;6+tY)zSzk}YzYL+Q*5kxs(RDnyNhq0Pf z3S0)A!)n$ka23=ayRlh;>!1x-&9(*p0sRTPJYGO6AkV*USfhaj4A3N;PEQx`0j-7Q zM;35`8e@LR1>B&jn9+m+`9NccMS5 z`4N}Gf@48+_LmEO6f_BEe~sX_p#9LSd2j-V&Z92D9YB;l4G!)EI*-*H7Tg&`791Vi z6+|&BCHQgBZ}9S$f_s3r!pmO`?gdJLm(L0A1ETZ&&ES5Z1+eFm-~pg?c=?LpK_EJF zHUtj_6+k@O68t2H*5T9Or$Kave;+&)bQu0}A^2HPMVtsm$OsVmOTmy)1+2G{(jlWE zn*#4C8!`q&ZzUB%l0meZQ6VpaX8OvvnJOV;L39>Jhm5D1PARJuG68e}epV;sB~S`v zjY3`qZG~oyLnea`iRdQY#6zZn$Ol`6Oapy^z4B zA#*_|5Xlk+0sfLd^gGa}*d0NkM?q)dFNH#X0ByyI z5E1$ls2OxA7J3478s|gt(4RpMW4tn-&_>x2crAtd!hayx^M0c4Fu7B z^GIj`5ZyP=g$9G@zIh|GAc*dpL1AGax^I>YD+D6{tP)ljMDa5^tO$twvsTzWpl9Hp zb;F8-$UmEel>|`?X%KLMf{Jr+I$L^q;A z;ZK2%KlK;`qRgX7p=lt>JX#fc4Me$He4&}35jaIV7McyxaYN}=XfB8{k3NOw zgDCTOqR<;4$~>Ma^d`s$@oZ$FG!SJTV+y?mqDVBh&|(nXBBvKx3L=kOT<9IpD4f0< z3#Efzq?=Ts6`=QYX|rz&tpe$Y*Jlc?0g<=Z z{tI*n)@@(-3g{u&vuELJAYWt&gA4x+8jZYQSm7I>PRImC7uJL2PJJG+E~T&obR50B zRM;1E0PFB-VHc<~PW1VO{Xmg8!P<8*6)wPg+O#4Ga?IvD8CMgECQnYSgFW+Kr`XH_eT~7(VngxSrSAxs}@-b zME9{ek!3)X3pa=?2co^wEb_i!D}!$yc|T-jVCzk?THR1>*P*T_de&BYy0`~oGi5ojQ&M`Sb5OQ2qnEkJ3YK9Oxe z?}Pe9#zL3wpaGGOLUtY_432CMI*ieWM0Nnt?teP66G;4RGco$m$j%@-nTJJoy=i{W zMm`Q%MPzFuB71^pwj(3^fM!GXTx7qS+9gH~6o2U;NLx2kj__jS)1Y?ZiYaLr+I@!6 z$3~92sol6p@fQ+=e^RtbjePzl*@Vb3kcoc}EqZx5G9|dAc7OYJVuzR1sMLYOZl}YbuT?qXw?p*|BOrPRB4)x!+FO|==Cq27%pt9{_R37K@C7#EVTq^mdex=ag-tJU? zctHGN#WYl&XJK zD*GpNCcpcs50#3;yH7>CFW67sV!y7`m+HOHYdYjn-CswU)%qrMUIMvVXPw7u(S8*^ zpUABBr+(kzeWLb}@{8AbpZw8nJ=!IKExVtZuw8tfko4_PS?ZdytD5JgejnoV-0eeM zQ~lZJn~>D5ozy=eX)>4jXAu7de@sX^kJ4&Sc1}oIm_YSrqqOF;E%g)3r+X5WZBbf& zqx@FcRn50jm(MZJlpcpsD!=X5=R5F{oCkQpIhS}YIj9&LQ>HLDz`pQL+fevOh{oU!`A({*E8y`qbz3uETz%=Aq)n!EWRaZ?k`lX71ZJ0PSfl@bp@I0^8uw7UmV%`}P`UMaDv$E#mGQY%f8x+s)KA<_ zWq*{Gp2|)o`nSXQ+4)1?zFkr8*0Lu)&(0r|U9!tNCidxv{s#7b0%hagPxH7mPT#(& zwCj^s<2!l}$9U;|Mx#90I~isF9^+8%?)?(VB|WF0EZ+Myl%95J!}-KsK7W-z=I=EJ z^_5=_;{7#%^O$bD&(gXrx^2Ba9FH&bSdMz(UFf_}{i^Y-dTUUxX&1S#EkDu5ZWNy< zBwZXOOUpm*;k@KRk1aQ~)3sLJcYuFmc}b2RM>^5?Q#!QS=VpCojTF@mAW1UFYS9ACF!ec|8Rb!#{Y!dpX~h$>MiT>2g>Zn`5X1DahyNO zc|Y32ALWG}WT$I<9y@t{Te-a6Hwg8r3r-@ch-jP3Zgp+U@C44W*K==5?T=SaduO`Sg^P8vlsh+6ZTW(k0pE1{0ng&^E2BenCq#y zUX$lhkL?lAlkBVfM&<1-+LL{h->dvdjW?lRJLs?WfwK1w?zfZ2`KS7={uuSE`d8zs zaa8|mJf$zyOGui~d8={NJk@xf;|%QG33_KWo*KV4>}icRJynjAkTepd zwVz++^L_yPRk@zM(7*D#Qyixr?>U&(oB2YIpW)Y8>7neZ@*2;27kZ4a*v*4iS<9l``yiPy<>m6XDd4?|9Pj2{c~l96MZK^uPHsJqEzix@_H({`dpnOYF$0| zVc))U(T^(g>fCJ7a{>4J7Ro&9x7V^f?XOI)6|Co4E;r?A{}cOcMSlZ(@3i%=>}{2M z@^swvKA)n$lfA!0xx4ovl>K`gLAj*o4=9WGK8e!OgZ#nrLyCLKpZl_ZD}Pewi8_zp z^f+JC`P`|~X^gY7>qV3Sd>&Ngeeh79EBO2qE>-`kKjp`(_Uyag&u_`m?NB#)|q`q%qb zLiv4XDwST!uIgO+tn0(5*QpbYU#V+N+jwfd)cRQYQ$5sM)}uMf?E9y6RsBEOBOdLP zT~u6Dc~GTW;&=ztS9T@8v+|G|!@5AewObGFm;CY8{HZVG&-5RJQu&Qq_dCy{o)Yb? z^YiCXbbh|@0iD;y*5i0M=YMiX{ z2$i>}b~LUvzdO$lQZP?tPb)uo1)r;X4dn+`|D`zJIgvzmEDN^wgR+B)H`(V8voM~j z=Xw4se^q{{&P|m+c<$3v?dIFoPw8`^$3lGmJm;NDcpVk1_0KwgSd8{+eea(9VHNb6 z(sR9S-d6rVa^){7UaEDs`*B>-y!W@GpC?!DL>aeXFUo5#WS|^_{K7{&Kj%B}fv0{H zWkON}zn}kJoBX129V!hjL$Kcxl78RLpEH+08JG0gO!>L4O+|mY7Wn?p=s*2ED!=El zHa<^Cs?Pm{aajtbuJvmF8`{0oMSfqRYv=e}db!Ibe6IKT2jx#~X}tOGxR1+v%1?^$ zd3S>EFH?F3+2rbTRsS8tzl5YlJpP!zg;D=Rce0mH4=U?#>HDZ0$A8;Ul&!YBfO6QY zRAwjdK4&57)BAg{cI<;zj4Ea3Qa%9jjhil;K);-}_MCYG2#d-Wsn3K3De1 zs=ktYwzKMYMn4&8gHb9w=iI(ei+-d%?$qCDe7l}<|B*ibTRo)R#|VAHwOB_A=5N_$ zCOAG_e%~zqYBJ)0oY!0UTH{1CHKDX>;uV>d=&fBy8CA3%j(XzAaq#P&bcJ>$Ty|Hs4jFfu>`F4|k`mk!RkAFmSaz42oj->#=zzkgegt(bRwy8K zy`$Y^uiTt3Pl*1!na8M1^~t?GQ@zwwn`>|CFu1RqxVm>)Gui`}M5vJ|*{OMp`7w+^=JC z(T_L&Oyk@2wDigOI(n-|6y_hFE`Kj~^Ep!!pIhr@uV>d=&Rf=(_l#Del=qA{kM^Cx z;=Y42_x659^y7`aX?(lh(%z&`&h7239!Z#ge7gJ{*3I^Q1)p2?w%4=kE$8i7e*xO7 zeVCE98k~DOZxH=>W9MD}BR#(KQjc$;N8Z`tY>vjaubcEYT9=&ro40ygg&pG4TRc!UG_+0xDA+e%xR5)_c)Juk%G^yb+gyA>n-Ok>&y5&LzFT;&-G~kHn`6-l&609D3uv$ zYw>yR?Y~L%7+wA12*MDy>T0grV%KbzB zl=J=L?YiA9di(%?j!&1rTXkxl{$s_>)2L_d>noYIv+o1BuUx;{keR;T)-R0tW~7xusq9I9rQ(Aer@V({y<#s-I?r-*e>#2|Ozgy>%`Tq56pI7tA=|28n>2v4yrTy%whq7yK?UPsg z+Ec&W>XqC5t@KfP{MY+j#bc$_YJ~uLLXX)j4+I~MO1XlL7$4zP9G9LBq^YGk9);ON|i+x?P zZg>0j@oeYqI(fFY^z~fdoX*p}Zl2@as_*UB&$GRy@9o!7wexm8Ra~~l@m$Bu{r=W@ z<&{0{{djZ#r19_S*}G~U^ts#g`tS646ZTO1Rq3&F7Oi9M*KLiL>t@#{cp&M~_(duYv46FE znpo+ZxMMr!@n7lt-|IpCUJL&oLB^H;cHb#I?w0+g^!e}XLVj(Jqt-g*JpSiwfBl~x z8s+lJzh(FFL>yi zdAsc5t39q}-*5Ky?RHc9GVA$fUf)~$WEStk*55ehr3e`PycAo|6cBH@sqsL zC%68RS9*BwH>L7;|32*H{=K`#&%1TVnH}u$TIOLCS96|+{huE4Jh8qX^41;=us`C{ z<==C=_1v@agI1_#EH->yFj^PXkqU8&%Vw3ktmeZ0@RZv8&@RngzA z`IoL`^`1rfm(nY@`lx++>v@{h_;$PG)%YpVncJagjk{fsxq0FjY8_Id(=+vltnKh$ zk8k&fy{qi|#J=zEp8b+rz0`W;cHiWc9^UUCyWixU9y#-0d%Tx<7{%F~=VAY+hdmGT z)*kO6uEnRzzo+Ze)On-!x0N64LcLq_Fnc?zzGuFY`8Za6&;Grw|D|mnR=>wQ^uE)2 znUAmRV&6ydT=&#p<#l%Z+}iHW>~w28&++W@y0!l8?O@-Raz6id{ok=p>U}aJO*@zS@^*7jL! z8$WT!CUEZ8X{VQZ*nhv9SN?M6`;Y8kj}tNuQyj>79QM`@>UWIt|HI(a)PA$#u;=d= z_hY@{)9v+D{IJ@6gL+o{R(YMhomJm+KW9FURo}D!%#E?YA9(Qxyc6~5&hg6$Ftt&w7--d zznSlZZJ4VR$efIB;vc66t}$9Q~7&t z*Z0wDXOtG{(W%3Sa4@|6G8{`GeKJ@ruQtM;v0XK(j!Uajx{O23@1ALV)W z{8-+jD1Y+SPL>|t=DT-`9*M|@;?w2-U(dSF+4EnSH@xJLH>vv>weyVIetgQ^D|wCJJr{|@1@;6^W3|;f6FeOdfV60 zGoD!OZof`hx4Zp1c((J_&UxM5ny;sw?0)&b-;eh3{%;?sfA?Uwi|6`V>vy;LojtzV z&&SN-zqj@2o-vx=b%u{o?-q*@_sA|ee{Z_;yy;zxm)CmSnlHU4#*ucj|2u%J^WmK~ zy)x2rXO~;``NB(m?CX_VeN>+0X^*V`UBWl8M_!Ga5`8Aq`DdNy)A;s%AoE08mz?K` z-s+*^iTwW^J2g+g%{rc3f&Jpsvuo!#FZ;FL!-Bz{?W}Q%c+}5aKdZiHoV(A~zg4fA zN5A%Z_H~f^%CmlRv{&bl`uFkb@7rahwTGO>%XyqhiS8`=xpiM>?MJ;c)l2E4zGu$8 zUc+;wm))+?zsXKH_iu0YNP&Ig)8+pc)4G3nuAk*6ub{r=uk&u(-fmyHZp&`l-foY~ z>Z^C}&FII|-^gya``+39zOUw)kw*RH)(`GHzJ37x)wrJX*t_a;$Zws`K@a;;Kc4MX zzqy@HO7xFnJa6_JtxsO-<7wBDm9zSt#A(>ab9`mb+}h>VbNx!D_Q^WWFfL@a&vL7m zI^R>GgGB#ct(Q$7rAOk93iv$t{`0W6`rz*ed9I(*E2sM0x&LIopZ<6LlllJ2+J6dT zUF>mEo*NXua(-@jyG|$gZ8|dqM-uJ3c-0c4~dBaXsVY z?b~PFE~oQs<)yv}sBfLCy>8py(s!^&yV04pv+rlQE)zZ4<#e96w`=z6V%OL1*O}=# z4|->$Ek{Xq$W1=EM)c!Nyrl8fyWoGP$9BwL>Cu7j^?9eyXI|RnZqtX>$?i`wPLki` zJWl4!U;Z0CjkXT3g{~0&}f3f1rd2oFC0>p1Cp8So^m0x95U&*s-r~J`sU*I=+ zPN?xzdsWZsr!eYy%5&O}vb)vZK5r$r#;5tK&%JGD)h~y6s5~ac{5{pf_&g)6CQ2ID z`}lQh9$HWIcWWHGO&(#(vy^_h)$7jltjz6`+wrYDICFbs{Z2sosK1k=?6G&%-L+nx z`sLPM-mX_(kDuH1Qu|BAi>!X9cek#mxBCCv>-}%*ms@|hTi03X^>43VUX7dcb!lch z2i5!&cXZ0t`Df|VE7Nl?>o{-MC%d?Dx9EGf=%Ml=mA5Fpa-L7;Z2kUU*F(i+wZB!K zV&$JtVSmM^uduz(c-FV_-sf!lRMoTkQ||+r_h(OSS^eBzFRLHY$1~r^Zk}1y z&#qrfKl?mA`?LC?d3wsNe(dw~tY`IOw|jQ+NUckDc2M^Bw!hr!WzFAiM{o79^sxKW zozBP7!@dqV*MrvSPVMhm&zg_DA4^ZWy;OUv9oa#BZnd+|Psy!zcK=f6uGM}*rg1{m zv-+87ix1hYgKD4MICt8Qrykk$ujHQX)VYzBUP}I7x3lzH3cIWLVg3E_4fve&^#1+8 z%AYoier|m?$U1+@T%WzGK7>9QX?K@i|D8Ucz#b~zC_U_d&o(#fcErndv+I-HzEk=p z?)U}s$i1KCOyB=r5At{QcXpLNxwl8o_MOt>ZrN{2pa0G-&R9si_-0H{wclw@# z=IL3_>ZdU3DS3ABSjFM&#<|meJoU(~esfIzo@@czIRm(a7J2Pl%!{F@`;9`A8+zN`kj~3 zC%1as`S%cZJLGm;D-ZT|{;h2GPu$TpkJh1|m+L@!D8E#GpzMI~q@|mo?tYHhq=cYBv{hW#_Eg zDY<7mtA0BAQE@sW?R_xS&&~ebF8c9i|K2Tne2n=kJE-3a+y8!7ZtU`Hp4cVt^zn9` z$Ub(zlKCz9P0shXw{|&&b&5~_68l;CujS{zLvH!GxAnC@C~uAd5*XG z4DeXz5qYxCmOhD@u5Z@%8D|?mamOrh?$>FdmwMR$okMQ@#dF_f{qGwn4%y?CJP#-y z<@`MGHvZ5$r=uEPqfe|-8O+xMLIxGdx97SyxO4fQ*8dpq(YS>N;b=bvXfj@qAA zyRSXQQF&}u<4_)J>6Q67S@)lL{p|JnIg9zw{vL;;Pkm_Lp5ec%m628)`qF&8&ol3Q-gS z+s0LLtKDSCmH#PuR_#6OdG@2$E35WOo>%RxaVXAaq`isxSbq=YZE*JaIORF2z5P7* zK2BTlz}q~>e$P_(-mHFSto}};(wpp>bA3JIc-HqZyS>%D=T7y_em&m7x~X}2+yCBG zo3dED2`dRMnlhu1c?&4BPw72J|x(6OXzUH|f$xbrvdftcCeURGO z^MK6mgX&&S^}XG9mL8t>f4lxU@7HsF894vq({rY;-Or>wJkQhI^>5k3vtPTNJ^kNm zcY8Z#-R|~w@@(g=9X#7x`g+dOzV3JKxAu1b|M3^Q-dWozuh+-E&u_h#c)s7!x$61% zxH8g?Vn5M(dY^aSdE7saaq@cnTjTxjndYNepNH3Mdgaz0x9a2fXJ+|v*814jDYyFE z`TB$iJ>@$|?)<^JHRDZ&XWYJFkorH0s4A)-s zc?o6d5Lw>*jy(sQk+ulsg3T`;mvU?TH^4{gEERIu-*QogYgc^MpnTVt$_eXqpTMB3d$`Z zvrsQ>UYaOlOK9T1aqii1a~yJ%4$R*VJl9n6ekryU5((h1Ye-^xy8l1us@Rax=gC;_QT*xm4P_qCa1=etQpYuxOP{esQAg->N@z zh@F=W2@-u-@{wECi}p^l|JS!{wehmH9|?Au^4)Dew{gIV!-9pu@!#&i605(vnSIZ< z`q9QAt@Xb&&0p2`tBp(VQm@9$)1tgYL-6(d8GC}%gMe)w4E$}bkRJ~zKFJu zO)xKjn+5aBx1T)$H9_<`6*}s@}iJ9zQOuM1#!~VrJ*S$1fvVU|a8Q04KYPtyn1ZE1{KSIju)Y?LL-AtzIJJCABKx6yd)sbWOWgd&J}of=g*} zCNCHD%V@()-YB@7HU~UTwEs}>{n|d0KNlP&yAc0L`4PbnY8^~ICAf;V7M!eAPZGn4 z-MXu^tp9`G^$k)`Roe%CQMCU{)UT@j0zT>I+VHpFYT9q$WOv90DX*qoC%I1kR$c2{ zM)r47Cx5G@ZDuBatE+{UB{}(9eQhXshBo;fg$%!#<3m&aK1^dhO|4{H4 z?G>9Nz{!*T#Eg-pAf4M%%+GXa%7`Z+#Y8|5F5Hqw|TlS0kuR`&50z-`BK*%;X=hY2Sf&`;mXl&`yAp-8kk8a^ zu$=s7mgagu+Bex9wK`nLXK6uT8K0**HEp(5!ekk*=V}j{EaUY&t)9s;UcavOG+D;$ z1zIXt#p^WfJ(G)y@!rzTnk?h@60O98QXdt+-_b^xEaUfb?I2ji@73CcO0vF+->bFD zVCAo?wXn)kuKab4b`Mzj>l&>*$wmB@`)93|%1rxbgLaCU_Ro7-{VM2Br~R{8TL6~v zyR4YcHf7xI`+D7KE*ad>W*4$N6%74|0uzU;Tr?pZn-wXL^EsEqk zzcX62$w$Qe&S)*TJ?VE&dz6{VHvtlX?DhssBZ78T0o8rTkBAHS_6#QvRp*KJ(>CQhrI>$?SYt$}egAn2S%5 z^1rl$%nweH^1rn2z$g8xr%3r_?F2a4-8@CgFKg$Ri!J`jt!Y=ZOU&gLUlRIX(QZ(C zJ$}wHA-}2>uP&NtKj_hOVnlgWD+gBob5(l~tj4>lRRgQ>u4?s}X}oJ%GiDm^nifax zdA#e|Q(!gTb!{YAjdxv322axh#^~2H?YcI{WPibbYrB{`tqT_Xj}}ow>aW`0&`OwG zM96PwU5MG=oqBJu@^_~`nC0Z}F8x`SlfS$4F)Sy4cI)F=PX6rHr?7lJ_KTlBi{;C( zU;OkpS^oFPD4|b2eJRUbqaFsYW_jiL^#uFt?=iQS-w3>uc?$d~K;O%}1pXADA0%df z4b+dA+(NVu)UR;;zo1``uGf_IN_H1$EBz%%&j%joUW|AUtcS3C4dOwtUWDaU*CmMl zLiAEBZ?>)*I0`J+tH0oadSjEH5ge+gFmD<)QgE2A)so|@^$OSBCch};;d(`4Uav^~ zVX#`SNWCu0$=*fuCM+j=7tv!_PU}@vZ_jdCucG?nEU&V7$~8^9NAJh-x{GInpCUQi zvzR{8WEnq;>C1^(ztZ}8u+p!zzK!MNPi6FvSWf;_M&HkJice+r!z`!xR963i<)nW( z{TG&#{^j)FSx)h@yndDC6hF)Bj@q!Vo8sqvx<5GCP4V+SJru0=^Zj~JmQ(z=UoXQ< z`?-Q%k(u^$1-&Y@=lvX|CxF#{j?%k=)%r&1eW*Uit0;XiSjCSheK<3XS5Y6sOygD5 zQ>i_V_kg|xtj2plUkO&@J)mziIqjOJJ)nQY?dy#c;Zl20-w)oc*Bg1hmE=n-kDs$t z)UTvF>PY*k{wwJLVA;Ryuae#ZeA2JTdus((*4tBkzw4U@iguOtZX_4|%ke7fy_h4m zy8I+>XAWOS@=IW)e`Wn2lix%CwdzWJCdv9{H>NghUI^c{8Z>uTOZGI*Qi6_DJ-u%|3|@f^jXX; z=AQz;$xQL9uD+C+;#XaLH8JnEdir}NpBL@x>4&&J#jghXQLu_%4fInir}))Szrb>e zUk&vuEU&umy6CTwuGf?HOm;V0=e#aCA6VJHu^wV_Jz?+0dU;~De^b2@x2Jrmsa}KS zWZ!1`BP=KTHq%>yXK33e2aEBV>zA2FtuHCKwR8gUpS(|36dYr6VoXcHafaCc=Vh0Kyrq5$GwmmO+xW0#ZeB30#BlQvu(BA#sh6RF0>(jyNzCBu> z$4u)#T7Qd~)<02C2dn#bqQ0KxK*S{O3izAT#;Ti+WM8yl+eY zNzqG#<$ZgFuuqC!k>%u1WA%qwUTnpBAs?&PWjXoRIK2tWqgHPb@^N|$SlzeB>)lM2 z_w5P#V3Xy2d!qil$@0EENndEPyl=mve*~8CM81zs)vuT=@7vS#s77-BQZDb?GxWzz zmhYvr^^GRW`}RCNw6UzO?%NCWN=+o6)MUW{QVuh30V32yLub2^7nW34kQ=%bGiT0_3g~G|5oWGnvp)V|JLdwm}&p5 z*AIi`{rs31f0ORhT-KkV&5ij(@MgUibBDD7|7hBFeG2pPm~g>6^i#~Wwv-k8p&r_T z+K0tHBzU*pi`m%LMDQMc3iJ55wt_#=Pk_~YKh=$v(3ki3XL>%cn(t?ND9OeCmhs|q zeGoIni!bzjV7b5hiT)4jmzl$2hY8Nmn~AJK&d=DED)^8-lzDvI48dRPAA{9-b435b zSpdH(Dz5}cK zV{zjoGuOnZ~=lxFjlaf z?uX@!4J@boNjYOX%PAg}H}|7yN*c%G_z)BEb(DN5INn zm5k#iuMqM|M(ubSpXOh~XarXAxQ5Z1X1X8OGnO&a{kWd7 zhB;yNAEJJJ<9+6VtN#J-Vm`63X)XKi&g3v5Z(v;I`gFf; zY#5>!>wU1X;SW~tgH4QrET{W*6Qd~0tFF6O^w-oV&GKgJqQDiwa=ohwZe}zwxq;y3 zMhf$$QOyOnFvM5j;y+oxt>BhMVUxQFZe=uL{%J=a!L5y1VC5fej0Gk?CFE@k@fEuG zPraXXFx+6}A03QfmecxnGzznv*0-Z^FUz;=m?-+|WZcj4{X3?EA7c5uo$|bU%&5ik zB|C$}xQ`i)Se}6IGddfsSl$QUXLL5&v7G#`i_wMUmeYG>S7SKK zCrpszcQeMYeC`A}em5hP<;{mn`QyeEmUqB;{kS22btLVxbG(#yH{N9VcjIOI?#8=d z`F`<+m~Ri`VtZMChBj*b3c-C0N%Vg4zTkc)C&qj&cz|Mlzj(rAy1!aX_t(LuobIa@ z)BV(9x{q2+_fL!I{%JAYKZlt8)BV$8x_>@t%IW@T@mle72wi*1ln1Q%$HpaA`{*~x z#qR;~**K*2eS(Lo_Ts%qyhUllO-_vIA$X+86`;1(l7md(Pvi(W%{i$4^vBpraywB_v^;3-n%we&I z1y3+8FdN%W3x3Hc`j~7#LmMA=MexhUP-1?sm|}bZR__&4jIWt#y{8yIGShlbHGT!F z_ll{;A1tT!f7Q6ga(b_L)$r*I{r$)vrWpa?WH-H6Of$k*PX007xQFHRUNPM$%X0FU z*Ng|4$zNVGsxgzl%rNRPlfTR`nyLEueZWj3mYMuzrqK~B-z%iQ%rd%z<$Fb-A$b7H z$$w@WPqVz(icle+Z9Kd=_2hZDVl}2n= z*`Io^SZfUGCRx2ttTl#$mH)0arh=9Kt}|wXmH)0Y7Li=MKgj*G-tc)`_9uVeCHK=N zqZc#nr_IJ@X4+3%jiTLUefj=yudv?-Ml}QEF&<+%EJu$=CPXN@H!=X~d!vC?FDo}Dwc zaeF%N&l?|cdphsW8~e@rx~PA_IBfEd!hRQwbKIWh_q%b4ndbMqaf5mC_FqN)KMYqN z*xNmK`vq_iG3$5Hh%i~+w=NoWxIW#tE*p)R>ArQ@Xv0kRtt&HZPyc!8PjAHj~7m=jjViTWXqY0LvxcLvWR zW`8c|SY&cPAus6ofa}x!BHZyYSbcvN?)Z}B^!;5S$2Tme`$ZwgPb{yxZkXsV!f~4A z&DM1ImbsV-?HNy(O-GT z=Pcj9<2d**%jte`pW_(I>3(sa;}@3G{o;PdZ!D+##r=+}EGPe};4tK~t@(Sb3J!np zI5*udq8tTTPWOu_M^UiM|IZ73DmvVQWP6$a-w<5c;q!!KdA|Ak=-NY$l3;nhg$Ryz z+y|EDo0La8qDijzY7!y%VaGh?DNUjU*Kqg@mi@`|y@TL7j-kvIS`QQ4z;T>;cI!EU zn>rc|q56q2l3O?yfoEv@hiwwv+OeN`eZ5_RV;z;Al=Ww5KM%_g+}6>V`OA8z1h;o= zX6~?7_tmw>9H*F<#{>%Q=7@cY+Sl4rTyQVPXlC(!gy4RTCd4|V(kR`wk3a6Tj3D|?P`F8;8owcUjHCWg^e61UMevJ`1jOu^V_>$n4 z9ebFkGzoU<+7w6mXGwmzX*I#q98;JlH;NHF({Y)3NYnm;=Q{cgr}`nSQw1+@>}T%S zOtxR-s6K+^6`C#*yu`7Dc}3Hmg3}#ABT1gn@~GfdjuFf{^k3&V%=`-GyU|g96xBZf z{Wd$6Fb{w}+Z_?lk$iS*r%Ts9bc|rW+D7so$6@dcZQiglg7-RnM$7s$v=Q|x3jWm5 znK@`!4Z-^zsmzD#J|g%_$1&#kVKIU;907^czD&K&f)6_eG4CHXMDP*EEavs~MhgDk zaX~T0|G`o8d1^lshrYvxEfsv$5yjl9-WtK@ z9VyH|58EmDcgITRFY6r^e9_@fqV{J;{UP`-M>O-q`qu?tbxdb|Y@nZ8*Zy&AXHKpg zB3Sn+kxcCujw~tI*QXV8T>S?H`}wS8?y$C@;QT(vm_`0AIM}ED3)DVjtQiA9I(H-9-JOK9`v*)_+2937^Mbr1syAOcq?mXA<*M^(P4~?{kKE_O$teqkJM# zsQ!Bm)(C#kX9V+1*#9A)Ma<8@{tx?HXKsV_t?pBPEVVCz^{wTT%KR6CCFgHJ;jU-74j6eL65l$4PmD zkCe*y8H%?ZO{RF;#bk=N-A$%=+s9;zw*yV4cstl+ia$@8Oz~%^$rOKvn@sWNIg=^= zJa00^pJbCM{){!5;!mo{6n|banc~l6lPUg8GnwMgER!kz%rlwd&jOPv{=8)}#h;}n zQ~XIcnc~k%lPUhJHJReiMw2Q2Y%!VQ&vuh5wEj)3=T4IoV+#0*cxCe8rVj|-WAe17 zEd=i~Ii$6ee_?V|%l?8hOkUGyg5a-BuF!g|;2%tWw9z+$kDFYv(Vv2UHu-7DPn*22 zO~HJ+cFyF+ttJ0va$=0+i;DSu@Gq0;y~tvEFS=~X>3zszdJnRg@@(hIX#q@r7&6Lx7ki|P!R}u5QZpy=#SGV!;^tv~*?~taAY<#$> zJm1wn;M^^K|I|as9lmOR?`$F2Y4VtsiGux1UfWWhulY^>q2)Xw4>7qy>y3iLP5!Bc zSY4Xk%k}H{9 zq4fiTA2Ru;7Lp$}c}&Yzf~%QK^Q~?24=o1@d3}@pTa6do$mGNr$xTguu8rgtCYOV} zwaIN;y)ERiCRYW=n_Qvw2ST1;a!BhFf;*X<7^4U1T33@NH(>N7Yw`j3(@2vOW8N3?(TaILjxm|`qs6oz zlT117M~i7cT1@-VV%m=u(|$}g`=kA6G5?;-l=JV&Oy=K{nasZ@Gns!+X7bv1z7g|H zG5P%JV>WKP@}!Mx%{yb`IV*m*@ri|(ZCo<_pPSh?p`}mYP2>44ZB;>Vsv6&SBzTg^ z6whL$>iqXGbXo&K7X35 zVf-s5f7?*%_m9a}+msUeIGidTCdNp1ntTuL7k(yRY}!D`15F;%w5#A?lWD(&np~mv zNFgs|a$?L(!G)da$hXvet*G-8u)43^_~{ z=X9|AK4!h>zm#)3b6D(7!KIx+6J&k)`?9YDmvz==9v^pHaCzrcu+-)5XT&Mh@qO<%&(ueYg%FbELls{B;ihlws{yV8t{!r7|kD2m^y3UKt zls`0aww*-vDSv40T+2-PLn~*|mq||fL#%T&GvyEQ&Lhl}KO{J7ze4pXf9U9(2cDsw z9pzg<*E&1*Fi)%>B)FTi{A5{whPG;CNx?mxZJB%5e^78==Vs;(Yi0XE&Qr|GV`Tdw z&Sq1neVJ(u1wZ2)%DkY#qk^Ax9%K$3)K~B*r+X^Zf30q^;AH0{=2~0c6gK~+QZ#efehsPBb{HC+~bZY3p2!be^no z_G3AH-?z&76wB#+S?wIjOy|pL=L^hqzN~RhG ztaHB0Oy|uy=Q>p%-v_RDZegbLX1#Mac()(re;b^ifs@@|udXQUxxsme<&+O@bRK1S z)beN{-{?HWa>@@kIWMsM@AO(izR7t7tiBI?&*?Wqu7~6mB3<0IoC2% ze*A|sbUxLm{P>b{C^O~9SDXi#DL=mMjDB6#pP?-r*+8u44d>&`arI*a8?NolXGirA z>~x)Bo>+f?V7IH$8`QqT+Ghp(yPjlT9+M}0m0>6mzisA zIW9QLReB+{4~zXxa7EWp<|(OC{-A3C^Y8{zUdeTVIefZLu&z~c6-}e|4>k-D9PJv) zY;2SAYOV#$!OB0Ix}r!f{8Qd{nz^PklYh2yU1X;FPK>MV+vrcH`_7}Twaj$iY3B-9 zOme#Kw0HGlru$Au*Fk3T->$COOQ=5GcY3%MG1GmgkIQE%$?3k+-_?tm?mL5AyO`;| zGsIPTnXE7Uv#hY!)2>+NxcUzX9_Cufe0Ee5!6RKqm?ze6BltO2^gGnP!`e=QpLadZ zyga6t;3U^Z=CP?#{-WzRbKeG1KGs$HU20!z%TU3ou71p6vB`obxHd9RNtN=KT*sM* zH<0p4uIO}X|M9fxf?shx&U~Q3Lcy=P_Avi4ZN1=`u8Yi<8*CFi$JKT@wb!Tb6a2a> zi8-v{A;E9DjxmQ%KPC7rSHKFY|6s#Qf)~4bF&o>Ye3@$s^Y}O^f7f-2`T4Ck$mGV`tLCjx4zScF1IS%dDyUv1D{<+DOZj*R5Uq5g)T8;ihJeBv?4_)sv)BW{hSHK$5x9048A>zHsRh_v*!%)GWxu!5z zhWrcHX66=`PrS`S9los{Ba@A)Ji>)U3Yu5ti4r^ltf9KlAygcSH!N*)t>!`i4 zZIIyOt`5xO<3hF(=oZA=ux2n0evIMS}CYecq$`arIXT4tDoqK09ic;4t?T=85(92`=P5#oS@- zVZo8^(D$kR@|Yh57j+L}UN-V~!NuLPm^;?LA^2YRW#(^3h7=U{5qIg$)c&dZ#RcEz zPGPRKrHbH+?v>18u}uX(=yq?R`rksoD(-0JvCuEtJ&D=a))^>+6Q~p`oU5uIX&pPh1V3mK?aX-j%%0KJ6tFfH&&${mVET{alp1T>#DgUhJ zj$=9HpY`1xnJNFQ@9x1&`R60<0o89Us+D?CC%Nxvpjvp0wHhizQ%HT zKWX81Y?JGm>^`?}v5>cL2Y`3`(R)fucPPtirY{%rmhOAND*tWeu4uB%f7`fgn=JF+ z7w3{?e0Df zR{3vlccmS&zRG`lyQ_m$eCq9P2UhW^kGl(4#iu^*ek9lFJ*lsIKQp~24RlxEDf>UE z(|gho_X1{mPkP2J{sa!>^q%yrdlECfCq3_u_>koEo;1$=E;GF+O?KDcO>%lqn&sZd zOz%kx+|eJAoZgcbx#uy{d(skjz#fv*ds4c4G&8*?t#%)0ruU@v?p7aDeR@xN&%KtJ z-jlYv>wiLWdQaNzKFCb(NuRs>?Ik(ACmnY0XQub0Bkub9NKWrbKe$&i(|giMchILK zr}v~^+)sjMXtSrS6aII`J&*al273jccVA~7JMU+~f4IwkCfm=@UT*li;7jgQ<^hmj zb+2W90`kAzp`TOzT3hr`@%^b^ede&(aKR40SD zzlq;w=H)R<1h@99e}LqFwA~`Oo!=nlYjt)D?%=nNxo*1*!JYjsGk2={z2I(s9S&0a zBJEBK?&+7pT(RyI!F~PCFqeXSkY7Xw)qfcBC;gI`o3{%L6Zxs%yUYXXMhG6^7w{F; zPlEkN`&DO7h5g6)&0_8i`HOzLnEOFK&ad<#YX2?lJJGKL^H|t-s^1aj`LN$?zo5fZ zzZLBFrr$i~A&@Wg+s|AJ^3{Hwzoz;%V4wH>QkmPqK3n}xF^6ORJN!bwq59=9|J{D0 znVpdD^;^PR5c1Fcg1)8tTesdP>~YYqHgj}bHNju`O=mX#Kd$aPu8ZRT1Ng@qc0Yai ze0Fy>^FE8bHB?eGG*nbnR5VgDH1otnMMd*KLB%Wa3=<2<%*^|~#U!&bqtY}}Q!~@@ zmdbBY{buI<+GYBE|M@EingrhN%Vr2Bb!rk#UtZV>a?*xF_I ze;dSnHnw(?jO9PB-FN+nFaL3^!d20}+4#Qf2`vPs_gSCND#8ceEobxVL#+n<@wt5tvkxo`;pbOzA$~CR!w^uj+5V$R@a8YugdS4t82;d<8r>S8d@qG zD(4%kq0Jy;{WZ0@u0{XU)Ur`Ne75MnT3Rj~JzM0pv=7|!JoePqwz;mtx39MLEz0L) z*5`goy995@Y$5$KOxqW#-GyoULbXRQZQs+H=SRL8-rux+Piw(2ZC^bt0Mqu>(<+g% zef70kuG{nV*Vn>P{@?jx`xoAx$s%v1y(BH(H+_vSzqK~O^(5{HEel>YDvi61 zR!H@+zP8#q*YkPaR{M>N_etAne@i?4(@rb@6K(H%y+nK3Yd+~2LA!d1_O#a?M_xB~ z8DHM>T6H)q_busAGS(lZHF3R$=TTZ3%G377XqnP8f@phVw8h9@U$T#v@20IpK6lA6 z={)2KaiV?QwGGI}$oa;)Ydervli$Pj&<-GPD8Gm6p%ozSGFt3kvD!)G38TgS6|0>= zUMJ}kUtdq{BJ!3=r=_nWA9C<}?q1p*Eyw zS{nRjhQ`Ye&@$l-8Gh--@XS$Xl*L;adLl6)@C7} zCHL24?G5C#KaJ5=AgBFljP?%l20KK5jn&?V!*_`O8mn!EKPdy!`80q*H(2e(BEA z&UjAI#!!y&oT5!~eUz7p3%%i~3c_89Dy^WD$V z7+h7(cRx$31`j!Sj<Ht^Ep~e_)_Xpp3l)D;dA-dc%G?6 z!&mZuk?u*x_RZB^bS;j@bG27oe^QUnAEb?PEzXY%wDGR*^W`nj=97b3=ZNdMH?*ZN zf1VCM7#x->es4LN4PPEE*1uY-2HzYm*1uYN3VtD90kN(@#Xj2FY@)8PDcF?G}CokzP%r4;VA!5&i}VbiC}H`IQLd<9K83P@zPVsXx}z1!?lr1#$J)Q}s{HSzgKj(9&xg-*T=TmY-ya^= znv;X*`@_$)HZXmE_?gxbrtc3w*Sf>>{o&`@3ow0ucv5>Artc3=YQtdq{_qPe8K&3I-vge~=E3wm;FsDGn7#-6Qd>p!@jYOnc0k(s9$6{y#M}MyANl}`|q!{KjEtK{_7j9^c~s1K~3b}1NlbNrJdu|X{|2h z7~j)cL)TaN_?*`Ip+4RJe5Vb9X?(xaM#49ii{sIGZ5;gja_qF$7x_^D3 zZIO2F&mL%dk<)xQ54C*cG#}1G?Nj75zD3$s$Z33wwDZXGkCc0&l;=0?DtzLIF8wP^ z_rJeu4`I6h{aq`D>HPVJR`wo^2c19v&>oX^_QywBEy^*TkF*A^4Zgld+5*&HE$0s@ ztuKQ&%K1Y|>#O0J@_w$2{vJGEUZ0iGH^a0)l+|~`v_F*9kH9n@<@8Tr8jo^%A$(zs z7?1M$Ir!HxVm!+0SKu@`UKRA4FpXCQ{Q*q-Ly-QbQ(oS01?gq(Q~%I-2J5=CGoHb^ zg`CDq)2kq-@zV6V$Z5QFy&-ZMZ(VOeIr`VDw{6Z&PC#_tLJCQRc~Nxu)%_*ByWglT*#>!lx1 zf6@3<)^(Wrzlv_c)c;lVDloObs$Rz_FZ;i$-VnAohw=7S)0@K$Ha{ob7N+s3u6LAn z#;3a8138UP4gCe=G(I)-MC3F+HT7Z0X?$wxW2BwmLoIzil}CTp(wDjx=Yv}M2V|Uo z>*(8HT3;P~KU`^rI6l|aKZ0wo@biwVtA8%-tnW$vC(5zDC-vK|yYlUSQa2u|`)579 zlC-n^_4L}v(+kA<>g)BL@&#gj_4P3Lb@}|NfgXYSi{uacYLw<10 ztI~ZbNBbJ-16+^cc_V#3>eKc0Gx}1PuCJfbbKsZ{#ql~!Ukms9P#mwr^i6Puyv2NZ z&GlWdnU^Dd7^dgjE%f6sJ>PDje+k#k74u)U)X&0UxnlmSmilEf+8?gpaJ`-{KU`-; zYX7#;t4cfl+eUv9IqhF<^+w2PyxZz6k<3AKfzX)Ug zE`1=3`MdNHWVFA%KGyXf-v0Lb`zTMpk7#|1wA21*eJ^rqe`h@(IkmsD{weahxu5do zb)u z{VB?^z1{W3uD|8&>8^J`eR^IKt9OIxc}=X|7pCVIJ@o-FJ-_Iw4<%#yy>#(6BKiFo zxA=Yc(r2OkVEOM2ar#0yd93(7#px^HuJV4ckN!3sFYgEY=hA>oADH?(L9g&T^)L1JOL_=Q{r!?&k&N~Y z&}+CB+c!XOjPmq6?`6HEv~xf7vK}cd?q}}s?Mc*Mbp1c>f%*dY_(V@7{(Mj`l6J1Q zU(t(Q>pXu&ulWbHm*#^Vsy{6~BZ%gM9jZ4&PV>PI)5Tv26z_-7e6Yjx=aJKVu*3DP z$Z0;<;d&hM!gZDS`bOvp$S5DA(e8e5C#s>eKahvM&D0p16Of>+NLy zLzwQD#^^g>x?dWjAB5?CX{=rV)BVy|{R^1xm&WO5V7gx#r(c5U{F|a*hw1#AqTeN> z{o{4yJI6_R{mDi8_PndD29^8r*8BIDe$-Pr|*Hiv1x~Z%oGWC+RI+ zH|6~|Nl!v~+MlQEDKPEN)Agw^oe$IWSumXs)ATpsC(^|FXXq>7T4`eaGxT@hSC5K( zrv5&hd{pE!^{r0*St3u@#b2ot<5PQ<$kX+s@WEr^?_Fl-pTeIW6MyeAL;sqL?VF{a zcP;AA(r=sW@r3u!9K9kL^JC7{Yru4Vn5#bx zKbj`mH&1U0m!2-#H&1UxM*HUL?Ok`~%b%|gMR{u9B7L;9bNpYVry{50S(cs#)A1}z zp9@bv(2p-~vA!6ddmvHzEho<#%DqI-gXiUqmHv>7_AS+SxSq!IrMmblb7DNGeJk{H z(oXwU=vR<`DX(AN)NjJq@GW@9p^|$E%mAdX)JpWs%hmx`W z9K8ul9uGZVZ^zW~$^)4`7-@L8&g6aC^ZM{Dk+y9RKifeH`c}Jgw^7Q;* zjXndW=Lc)_c`!Xc$kUg=^!y-CUnT9FAK%q?NsIR{=J5V~R~NH((fht{aIe+RON;j} zM7~zPMmc|fcNzD4dK|y%67O5o@3xJ5gI)mh?-jVW=yi%kF8*HHZ`|AUSa@@fQkD7q zYx-We^&yk{fPM{Tu}^Uy(PRFm`lXMw<1Wxs;W<5fa39ydkapVtss4+!cz;B+|1HGdK^^@@EPOtFgf1^kIOS#c)CigjA%pxnw)A#)s zbT7Xul-u9wZJuA&r@&h}9pe5;zvkrKzT>{B$M9L$M0xst|F*sp9wFCvU#}x(k>dH( z9-b=veG@%HT6~XIo%?_KR(M`yD0i{$=d%ey#RkdX%qKT-XPxVqWqZ1z1;P@!{FA3KILxYT?Vt*AGn)(i{S6& z_BZ#|;Inp!`m^Nv!@X(nYPo$8-i>gK+`dS!#lMOa3!es-YYP@@7vw`3rz3(_V7MHeR|)whxae!^uBMbw+#R4Q?#Gn_l@;> zVS3-Ur`Lk%ecztms!nsz_oZk_66@u*W&%y7rpOGi|aY@eOQ9`JJ;fU*a2QI|LTQ~$Krdi zf!@Kc#rv>>z4_A4`>?~j1^lamlJ{YUc~44<<3l~(-eKOG(&G5glzX`MzO*<#h>OIg8(8{ce4@le{}&qgx91Xm1t%)v(B0#0Zb`X2AWri}Dk_*Wjr= zgeQBW_*-dWe~g-w#XZ%V4fkumntPh}2Hg74R_-)!IR7eBlxMMrxo3K_;P{zyA``@4dwI z`z|s4zDrEM@AK~R==WS=`aPGJe$U^#<>~iaVw$huf}7Ltxy1B)zUbuTXn!v;?e9Oh zIqmOPUDN)4-8Jp+zqqFT{kCKD=RMcdpCzXLyzl1JpCzXLEHU+GiK#zJO#S)5T^{vk ziK#zJO#S)LEl>SfV(QN#H>dtAafP*a`0wL4H>bZRUt-$c64Unn?v|(REir9xiD`RF zOxs&x+TK6h<>R_U97Q{yg2yX@4#;?aw8q z{kg=nKbM&H=QMYDv_F@a_U97Q{yf7iPy2I;X@8#S=CnVT_}KOszP;&gZg1|Tn$MpU z{~y!)$cIN{4Up9I&J0N=bG<- z+=pD#_lEhd`}Qc}`7zggevMlEe$6$l|5MkaJ2m6^N!LcVSnfjCWxI~#{>JscQH#01 zb)DONFZX%ZuXPi?=otI&W!JR-mYDY6D{fBvZ;5IDEivuCC8qti#I*ljb(cr`Z;5ID zEivuCKf2{<|1B}?zt`NH_TLiU-F}vD?@w+XxAo$G{MMEq|Krv`LlXPxzxqwl|Nxu);Gid>KG)S8zsc5QSUz+KMgoDb-Gug6@|_g(?l z<)WtX^33(vsMXw+T(6bwtLB=%=c?s;gj|0;*Yy3?Gp;>y`7K>fmHTgmYx>^gIoCy< z_VM*U?|O8nGu)kA)BfGXb^UJlc;3zR)E>S%{Cwc+#=m+M_iJ>$(972crv0;*ZvagD zXK&vSY3Kg4w{J9Z+F#>*6Oq&XXPhq$IqkoFe3{7U{>0U`}$VGv_JRt<-xQ+ zzu?<|`gH&Kf^P?M+P~v{2VmO2<9*^QVX=L*f4}GxUkMA-{{5owj8k6TfA;fTglYfo z=esU_JeaPp`upxk&j@;AZA0FF{e6E(JNKUnzViI5IGV3S+<(60vt5h(&zF6zT#Nh9 zfxefeo%_$hzQwM^{pS#0fopO9Iowx;e>Fz;qvHNE$(Jha+zR^zhv)AjN( z-+Gv?mp}0Z@vC5w)AjOazF{z3FMr`Hgz0+uD_;V?3Kiw)diguwL71+WFZinPs~VBh z_3{tCDKK3xU-ey(Ug7z2b~Nv=pM2r`DndN3INPo-_f20e{9yJ7?mNCm@W1WGao_jF z^RtvF|Ja-~?%#Y{;p*+@b3gL=`B7Np6()$~7yFXnyU&T`dqPgbRVRq$mkVhi{wpu9 zMT+GIg)D&UPY}!ZhFpWIMvCQ!ghbV)@~dX$aGN3d@Xg50+?7LOo}_%=tmE8uLh@m6 zyKlJbheSO^`IocAlAj6L3qRHFA$O~gh)~K0&ko{CZXdD?j&H}fJA@R$vuB5LcMgeq zn#xaa*Mz%kNDiDkJA%7=$SwHob{)B6L!#(*FvRPXE9xHQC3)w9#evcxb7Lrdn z|MviK|1~`%w6R#;^-^?ymL8G~)BRay2>+AqGN=2q1tG&=xg;Z=#dHhaM|8Ph$yt#*{e>9{JuDkSQ?vF!4 zTTuDj_OEfD2+4%4q;&3+A;s|WwyU|n2}x^7gzlVgjrt;NeMgAxx4K95|HJ>SKN+U;dpZA1)Ti@%Isbg*bbc@IUkcOty}UmMrt^CR|5})?-zxYwIpyW`TabSj zOy~C?|6yq{U!AzW4)!0H7W370=KUG${}MUfZ)^Uu$Qx{q<+i)N%6S*_rMs@!>Y3F!T-G5BlIo{Ope=hADZ)*5YQ_jCn7ta%F`XeI6^7!B1mhD=RGywEH1Z#m7XQBY0`IS;eyhF6S9p3x4(1N?r@*%-Pvj2w z7r^r(r*pURS9zYw$M2la-Nv5;Z|a_gALt;;i~bS+ejMX(BrWCncVbbob}N^n9eJ z-_ubnPyBm~cs>&69|qI&k$8V0OwUIW{7pJhdt0sigSY2pe*zr;d?|jW9O&N(HyPX%%CGS3$a$S_@4NmaIQRL*-0S=&;r=5xac}THf@ied#l6uV+k@)oO*+QC#Xkk^ z8Cl4^-G2eTJ^4rO-Tt6hDnBpsSMI(3L^yuuAKVB03t;~K!PETtmH!$Xnl6@~@Avnl z`d`cCAM+=}-%kqg@}Kx~;4zWaxIgn3!>tcBU z|Jlg>qrZ`~*ndR+qd%N-9B;1qvtfGv_Osv9M=VdwcPXB~{pwGI>G|6oe?Cml-|qWE z`%-y&{`Q+c6Q<{HkNh{J#r4T{zW%@b;V;nk&Wqg7{kK00&YN_c+Y`6}_l*38yG$TD zp32AXyv|)AkPUC{agRGVa1TDc$iuHpy@ALVseER8#_bDa!~di-;SL1u!AIM6Eprle6oI^t@Mnbf467w{;VJ9gq)sNHVE`UK4|NFo;L`@Bd6z=4FieDH*HzM^M--p z$mw}zqre#C{Cz~8HwsKfPR}3L_9z*6L`HoedDCV?Dj=lY{* z;6vBq`lDIkfNOF65f=EtwYdIh5h(kT=wIjhyHkB#FvGg>yHkBVbad|qeEbpv~&LG7+5InoIg4SvMDb`&vQEkJc(j?;(RKe z=XMPw!t^}1d*BvK&vW|*QU_9bdY(HV;2lJ!=ea`z*)ToN9UbtzLODIp9Tyk|)AQVk zfpaiD&z%y898Bfud2U)@JxtGYGXi0+Qcllv7X(hg^gMTYpve%*>3QzTKrT$rbKeel zhKiiOKa{hXkMEj519;){`?%Kz7Qn3!o#0*{*bB4Ri`*Lm{$W(V|Hwz&n*verjJDWrlFf3;c2eJ79sx9yX|{UERv?$`D`?%x9bBr0FI&vx$r1tQ>v zZS%SR4y=Vc_c_g7+9-rawEcm*oY7=9#zFXdx&40Q9z08K|Kmo= zYgB)=-2UpudN@XI|5HZTXv&|J?Qdcv!hK}>pE2@bTeiQYaSINW?QdQp6yT2FXfwcR3G5(Zxe=kPaF=BbwG2c`tBMGMG|6PsKFg^e8VT6sP z@^rn`%UA}}^Z!1^EtsDFzhK0SqxLqNZZzP}Q;bx2OJrs4myC08wdtYU1C6pNRDMO| zGu(rX!EoLr@uX##kp=gR?9M&HxB=guJb-(YVU4Hy^CE|Ek2aFv)`!M&k2SJk7CW7L zoN)s#ePjvuc*B}N_2=}=<(_CH!Ao;?a!)o2QYn9NUjg?N;~xCu=u_O&jFXcnk4Qex zJ>7_SU3jtQ*?m{I(~RgT8OC1t(KPWr-z*~^E#BygFUm>UW%V!(k!SsIlY~w0iO1{57$M^*{<@@V%jE6A2znf|N1=IVx znMT>Eay?kzT%#sAh`#5ZYdj6p_uO-hW-!fXGS6rQ(|jiLjOXEx<@Y1=jjr(b^81nb zMjTAvS1d3RV47cNf$=I#^Pwy>M!_^6%0goTJag1T-rsK+)8P4|{+6Bt56cK@$e&*u zi{MEaKIv?@!pyh%hG!YMaJ8A@efKQm1Ne9OKK){28*Iq=vKAZr;W677U)~bqBRFka z4e8I}fpYmvjdO5=9iseF<1!q+LzG`?+=M5{^2?0h$rz7i#y`ku{FWKzr^)fc{8`J4 z5SaRVx$!tm{k`0%0n_{4D~wQ>-tS&vG=*Q3-$TD?JPRku@1fr`+Qah~z0FsgZFGTi z7K#4KHhPoM-jzmzYmu)sBBzV?uJAm!q5UGJc4={aBK~`>vEQ|rFD}<8BxAm~JmVZp^Tp*ES77>{?p@<1 zOyASJYdj!h`D=|oT}SZsuQmKL#Co0i;?@}zVfsC;Git&I-tElGzi&JZfBbHobTcxR zzusu&TD-5n-gp7!>3e|>jhA71U;jg67)<-aMk5)f-}6Re5=`U0$(RAtcyBW1k+J^G z#uC?JyfzzaP@d+C+hTkG(|mDTjO}iD(GOdV{jL-F_H8wOK>3`^(cC+YpWzLelcn#$ zw0*mbM=)*QE~C^;>R;Nv-9|7>+qc^=VA{StMkScGZ;w%%jP2WN)OS6buYa%63gzqO zF67>4w1>lTMZVAID(!r4u-`~@>x*{nH-@f56vQVDv+I+MZ90LDCsP zv^}2~BazemZ6}Oz$Z7tz6UG$eb#u4#<$Y>oz+t(2r5BRX{?CkT*GG8%nQ;T<>HPAw zaZfq}^S6C%{0}*uU%oL)Wr*#_2%_`LH-;uXJBa3QJ8c-qY5um;MrGtQf7=^|G-Grv3G@aTuoa=N02POy|!l#+NXC z&wkZ73)A=bSB=Z?n;B&q@#}x%2D~97So%IZbCjR^n(;q){wQ0z^enl527NrUD)&!@ z27f!VwzMhj?9bPY)|6v=uNzUW>+$l}jh(1Z`@;j{ptQ3;JTN{+PS-OJjW3YX^~^)# zTjaFA6d9M0)BaLq{EVFDXZy{#3)B2;zZs91=DyvGU~%LUjH+mfoZ({XGFj>UVj=o21ZOyl*J zF#x9Ptzu&cOxIh*#%P$v>u+NsOyl*pktXeo*FVO3$}wL57+YOu^6mY{IF9<8RxaW8 zn5W=9E3>7~!gRbVW&Qxu@vfA4L)uwiY4dN&vA)t~xjC}`xyARPrOnD@%r{ontPRum zp=HemFwHks&J2TTzOiy<8#0z(-t6F798b%eaVY=yBys&z!AyWF$oU5UHEL~S?NYF&8JqyYys1JYE{hV zV46>@s@Vyq`P8bKu`qq_UCoS#>3i>L=0G_A$R)nM>gI6x#F1;#W8vU}U%6|TlVQ8y zzI3{@v%l0dcOs|j>6+$2n69U5nje$VAGORcT#M_sTIMe(PuDMX%?B`DztlDVf@!|B zC(SZ*ssCucwI@w4O!KWhWm+)JxAv4-m5lX=nsr@^>yc114CQIQwWrMpnC4r1+U($# z7wfHOc60rR_eVW*1j^HVW)01;(ixaFvp;NbvYkY8*>ueRL%$0#+>Pv7u(U+oag#E{vX7D^_IETZ!8Bh$C$knz^96J=>%%lZSG4&IO!IR^n-MV0&(+zCf@yxP&Sp0<+SkSG z<63+P+{K)S@-&}MthofH`Fvu{RWQvr)YE(yrul|?nj2x7f2)_d6Q=pMdYOk{+JAbR zAH#G!?QNcdY5$2czlCZ4i8FtIssH+zKf~02eaw4gY+qmVk?Zz+|LtowTtNL#^BEeGBb!_0@sH>~N;*Eih!3;Dq{L!`?tl>LkLjWE5g$MSrH`7Akz zj_;$*b}${^N1I*X7&+fhve^r!`F@hk{&0o7C46~f%vWGDZ?$w1OwT9Ankg_npBQUS zg=xN@apo+T=KC3EzClL&Q_K~v#e6?0<}s9~{+(ogF75R1B=a`h-lg*!y z)BgRsc^f(H->;j$Bd7UtrkMZ0G+)jXv%(v+|I+*{Q_T>V=4Y8|RwSeS)65#KKj8f{ z&Fq8n)cy?fC26Pq8Rih=)c#rKYcREcmN^lwn|pvSZ?-ud4$D0%oe5L>=a^YAwSSJe z5~k~sOmhuP*CUzc2AH;QuDKni?VD>Jkamu@^UO1pV|(YB7hRv=?U`pjM18vcUts

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

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

Yp6{ZT^377T~>Z4u#V`m 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�R{M~k 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 z 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⁡t$Fe3a$p9*ZI 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∓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%0DitnquS$_Wp@;&5I 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 z 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/vj)q2{*&xew!F1wnY|9F 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

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

@jU|NNQmnsC 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 literal 0 HcmV?d00001 diff --git a/swaggerci/eventgrid/generated/modules/Az.Accounts/2.7.5/Microsoft.Azure.PowerShell.Cmdlets.Accounts.deps.json b/swaggerci/eventgrid/generated/modules/Az.Accounts/2.7.5/Microsoft.Azure.PowerShell.Cmdlets.Accounts.deps.json new file mode 100644 index 000000000000..54274e52ee76 --- /dev/null +++ b/swaggerci/eventgrid/generated/modules/Az.Accounts/2.7.5/Microsoft.Azure.PowerShell.Cmdlets.Accounts.deps.json @@ -0,0 +1,2413 @@ +{ + "runtimeTarget": { + "name": ".NETStandard,Version=v2.0/", + "signature": "" + }, + "compilationOptions": {}, + "targets": { + ".NETStandard,Version=v2.0": {}, + ".NETStandard,Version=v2.0/": { + "Microsoft.Azure.PowerShell.Cmdlets.Accounts/1.0.0": { + "dependencies": { + "Azure.Core": "1.22.0", + "Hyak.Common": "1.2.2", + "Microsoft.ApplicationInsights": "2.12.0", + "Microsoft.Azure.Common": "2.2.1", + "Microsoft.Azure.PowerShell.Authentication": "1.0.0", + "Microsoft.Azure.PowerShell.Authentication.Abstractions": "1.3.57-preview", + "Microsoft.Azure.PowerShell.Authentication.ResourceManager": "1.0.0", + "Microsoft.Azure.PowerShell.Authenticators": "1.0.0", + "Microsoft.Azure.PowerShell.Clients.Aks": "1.3.57-preview", + "Microsoft.Azure.PowerShell.Clients.Authorization": "1.3.57-preview", + "Microsoft.Azure.PowerShell.Clients.Compute": "1.3.57-preview", + "Microsoft.Azure.PowerShell.Clients.Graph.Rbac": "1.3.57-preview", + "Microsoft.Azure.PowerShell.Clients.KeyVault": "1.3.57-preview", + "Microsoft.Azure.PowerShell.Clients.Monitor": "1.3.57-preview", + "Microsoft.Azure.PowerShell.Clients.Network": "1.3.57-preview", + "Microsoft.Azure.PowerShell.Clients.PolicyInsights": "1.3.57-preview", + "Microsoft.Azure.PowerShell.Clients.ResourceManager": "1.3.57-preview", + "Microsoft.Azure.PowerShell.Clients.Storage.Management": "1.3.57-preview", + "Microsoft.Azure.PowerShell.Clients.Websites": "1.3.57-preview", + "Microsoft.Azure.PowerShell.Common": "1.3.57-preview", + "Microsoft.Azure.PowerShell.Common.Share": "1.3.57-preview", + "Microsoft.Azure.PowerShell.Storage": "1.3.57-preview", + "Microsoft.Azure.PowerShell.Strategies": "1.3.57-preview", + "Microsoft.Rest.ClientRuntime": "2.3.23", + "Microsoft.Rest.ClientRuntime.Azure": "3.3.19", + "NETStandard.Library": "2.0.3", + "Newtonsoft.Json": "10.0.3", + "PowerShellStandard.Library": "5.1.0", + "System.Security.Permissions": "4.5.0" + }, + "runtime": { + "Microsoft.Azure.PowerShell.Cmdlets.Accounts.dll": {} + } + }, + "Azure.Core/1.22.0": { + "dependencies": { + "Microsoft.Bcl.AsyncInterfaces": "1.1.1", + "System.Diagnostics.DiagnosticSource": "4.6.0", + "System.Memory.Data": "1.0.2", + "System.Numerics.Vectors": "4.5.0", + "System.Text.Encodings.Web": "4.7.2", + "System.Text.Json": "4.7.2", + "System.Threading.Tasks.Extensions": "4.5.4" + }, + "runtime": { + "lib/netstandard2.0/Azure.Core.dll": { + "assemblyVersion": "1.22.0.0", + "fileVersion": "1.2200.22.6212" + } + } + }, + "Azure.Identity/1.5.0": { + "dependencies": { + "Azure.Core": "1.22.0", + "Microsoft.Identity.Client": "4.30.1", + "Microsoft.Identity.Client.Extensions.Msal": "2.18.4", + "System.Memory": "4.5.4", + "System.Security.Cryptography.ProtectedData": "4.5.0", + "System.Text.Json": "4.7.2", + "System.Threading.Tasks.Extensions": "4.5.4" + }, + "runtime": { + "lib/netstandard2.0/Azure.Identity.dll": { + "assemblyVersion": "1.5.0.0", + "fileVersion": "1.500.21.51401" + } + } + }, + "Hyak.Common/1.2.2": { + "dependencies": { + "NETStandard.Library": "2.0.3", + "Newtonsoft.Json": "10.0.3", + "System.Reflection": "4.3.0", + "System.Threading": "4.3.0" + }, + "runtime": { + "lib/netstandard1.4/Hyak.Common.dll": { + "assemblyVersion": "1.0.0.0", + "fileVersion": "1.2.2.0" + } + } + }, + "Microsoft.ApplicationInsights/2.12.0": { + "dependencies": { + "System.Diagnostics.DiagnosticSource": "4.6.0", + "System.Runtime.InteropServices": "4.3.0" + }, + "runtime": { + "lib/netstandard2.0/Microsoft.ApplicationInsights.dll": { + "assemblyVersion": "2.12.0.21496", + "fileVersion": "2.12.0.21496" + } + } + }, + "Microsoft.Azure.Common/2.2.1": { + "dependencies": { + "Hyak.Common": "1.2.2", + "NETStandard.Library": "2.0.3" + }, + "runtime": { + "lib/netstandard1.4/Microsoft.Azure.Common.dll": { + "assemblyVersion": "2.0.0.0", + "fileVersion": "2.2.1.0" + } + } + }, + "Microsoft.Azure.PowerShell.Authentication.Abstractions/1.3.57-preview": { + "dependencies": { + "Hyak.Common": "1.2.2", + "Microsoft.Azure.Common": "2.2.1", + "Microsoft.Rest.ClientRuntime": "2.3.23", + "Newtonsoft.Json": "10.0.3" + }, + "runtime": { + "lib/netstandard2.0/Microsoft.Azure.PowerShell.Authentication.Abstractions.dll": { + "assemblyVersion": "1.0.0.0", + "fileVersion": "1.3.57.0" + } + } + }, + "Microsoft.Azure.PowerShell.Clients.Aks/1.3.57-preview": { + "dependencies": { + "Microsoft.Rest.ClientRuntime": "2.3.23", + "Microsoft.Rest.ClientRuntime.Azure": "3.3.19", + "Newtonsoft.Json": "10.0.3" + }, + "runtime": { + "lib/netstandard2.0/Microsoft.Azure.PowerShell.Clients.Aks.dll": { + "assemblyVersion": "1.0.0.0", + "fileVersion": "1.3.57.0" + } + } + }, + "Microsoft.Azure.PowerShell.Clients.Authorization/1.3.57-preview": { + "dependencies": { + "Microsoft.Rest.ClientRuntime": "2.3.23", + "Microsoft.Rest.ClientRuntime.Azure": "3.3.19", + "Newtonsoft.Json": "10.0.3" + }, + "runtime": { + "lib/netstandard2.0/Microsoft.Azure.PowerShell.Clients.Authorization.dll": { + "assemblyVersion": "1.0.0.0", + "fileVersion": "1.3.57.0" + } + } + }, + "Microsoft.Azure.PowerShell.Clients.Compute/1.3.57-preview": { + "dependencies": { + "Microsoft.Rest.ClientRuntime": "2.3.23", + "Microsoft.Rest.ClientRuntime.Azure": "3.3.19", + "Newtonsoft.Json": "10.0.3" + }, + "runtime": { + "lib/netstandard2.0/Microsoft.Azure.PowerShell.Clients.Compute.dll": { + "assemblyVersion": "1.0.0.0", + "fileVersion": "1.3.57.0" + } + } + }, + "Microsoft.Azure.PowerShell.Clients.Graph.Rbac/1.3.57-preview": { + "dependencies": { + "Microsoft.Azure.PowerShell.Authentication.Abstractions": "1.3.57-preview", + "Microsoft.Azure.PowerShell.Clients.ResourceManager": "1.3.57-preview", + "Microsoft.Azure.PowerShell.Common": "1.3.57-preview", + "Microsoft.Rest.ClientRuntime": "2.3.23", + "Microsoft.Rest.ClientRuntime.Azure": "3.3.19", + "Newtonsoft.Json": "10.0.3" + }, + "runtime": { + "lib/netstandard2.0/Microsoft.Azure.PowerShell.Clients.Graph.Rbac.dll": { + "assemblyVersion": "1.0.0.0", + "fileVersion": "1.3.57.0" + } + } + }, + "Microsoft.Azure.PowerShell.Clients.KeyVault/1.3.57-preview": { + "dependencies": { + "Microsoft.Rest.ClientRuntime": "2.3.23", + "Microsoft.Rest.ClientRuntime.Azure": "3.3.19", + "Newtonsoft.Json": "10.0.3", + "System.Collections.NonGeneric": "4.3.0", + "System.Collections.Specialized": "4.3.0", + "System.Reflection": "4.3.0", + "System.Security.SecureString": "4.3.0", + "System.Xml.XmlDocument": "4.3.0", + "System.Xml.XmlSerializer": "4.3.0" + }, + "runtime": { + "lib/netstandard2.0/Microsoft.Azure.PowerShell.Clients.KeyVault.dll": { + "assemblyVersion": "1.0.0.0", + "fileVersion": "1.3.57.0" + } + } + }, + "Microsoft.Azure.PowerShell.Clients.Monitor/1.3.57-preview": { + "dependencies": { + "Microsoft.Rest.ClientRuntime": "2.3.23", + "Microsoft.Rest.ClientRuntime.Azure": "3.3.19", + "Newtonsoft.Json": "10.0.3", + "System.Collections.Specialized": "4.3.0", + "System.Reflection": "4.3.0", + "System.Security.SecureString": "4.3.0", + "System.Xml.XmlDocument": "4.3.0", + "System.Xml.XmlSerializer": "4.3.0" + }, + "runtime": { + "lib/netstandard2.0/Microsoft.Azure.PowerShell.Clients.Monitor.dll": { + "assemblyVersion": "1.0.0.0", + "fileVersion": "1.3.57.0" + } + } + }, + "Microsoft.Azure.PowerShell.Clients.Network/1.3.57-preview": { + "dependencies": { + "Microsoft.Azure.PowerShell.Authentication.Abstractions": "1.3.57-preview", + "Microsoft.Azure.PowerShell.Common": "1.3.57-preview", + "Microsoft.Rest.ClientRuntime": "2.3.23", + "Microsoft.Rest.ClientRuntime.Azure": "3.3.19", + "Newtonsoft.Json": "10.0.3" + }, + "runtime": { + "lib/netstandard2.0/Microsoft.Azure.PowerShell.Clients.Network.dll": { + "assemblyVersion": "1.0.0.0", + "fileVersion": "1.3.57.0" + } + } + }, + "Microsoft.Azure.PowerShell.Clients.PolicyInsights/1.3.57-preview": { + "dependencies": { + "Microsoft.Rest.ClientRuntime": "2.3.23", + "Microsoft.Rest.ClientRuntime.Azure": "3.3.19", + "Newtonsoft.Json": "10.0.3" + }, + "runtime": { + "lib/netstandard2.0/Microsoft.Azure.PowerShell.Clients.PolicyInsights.dll": { + "assemblyVersion": "1.0.0.0", + "fileVersion": "1.3.57.0" + } + } + }, + "Microsoft.Azure.PowerShell.Clients.ResourceManager/1.3.57-preview": { + "dependencies": { + "Microsoft.Azure.PowerShell.Authentication.Abstractions": "1.3.57-preview", + "Microsoft.Azure.PowerShell.Common": "1.3.57-preview", + "Microsoft.Rest.ClientRuntime": "2.3.23", + "Microsoft.Rest.ClientRuntime.Azure": "3.3.19", + "Newtonsoft.Json": "10.0.3" + }, + "runtime": { + "lib/netstandard2.0/Microsoft.Azure.PowerShell.Clients.ResourceManager.dll": { + "assemblyVersion": "1.0.0.0", + "fileVersion": "1.3.57.0" + } + } + }, + "Microsoft.Azure.PowerShell.Clients.Storage.Management/1.3.57-preview": { + "dependencies": { + "Microsoft.Rest.ClientRuntime": "2.3.23", + "Microsoft.Rest.ClientRuntime.Azure": "3.3.19", + "System.Collections.NonGeneric": "4.3.0" + }, + "runtime": { + "lib/netstandard2.0/Microsoft.Azure.PowerShell.Clients.Storage.Management.dll": { + "assemblyVersion": "1.0.0.0", + "fileVersion": "1.3.57.0" + } + } + }, + "Microsoft.Azure.PowerShell.Clients.Websites/1.3.57-preview": { + "dependencies": { + "Microsoft.Rest.ClientRuntime": "2.3.23", + "Microsoft.Rest.ClientRuntime.Azure": "3.3.19", + "Newtonsoft.Json": "10.0.3", + "System.Collections.Specialized": "4.3.0", + "System.Reflection": "4.3.0", + "System.Security.SecureString": "4.3.0", + "System.Xml.XmlDocument": "4.3.0", + "System.Xml.XmlSerializer": "4.3.0" + }, + "runtime": { + "lib/netstandard2.0/Microsoft.Azure.PowerShell.Clients.Websites.dll": { + "assemblyVersion": "1.0.0.0", + "fileVersion": "1.3.57.0" + } + } + }, + "Microsoft.Azure.PowerShell.Common/1.3.57-preview": { + "dependencies": { + "Hyak.Common": "1.2.2", + "Microsoft.ApplicationInsights": "2.12.0", + "Microsoft.Azure.Common": "2.2.1", + "Microsoft.Azure.PowerShell.Authentication.Abstractions": "1.3.57-preview", + "Microsoft.Azure.PowerShell.Common.Share": "1.3.57-preview", + "Microsoft.Rest.ClientRuntime": "2.3.23", + "Microsoft.Rest.ClientRuntime.Azure": "3.3.19", + "Newtonsoft.Json": "10.0.3" + }, + "runtime": { + "lib/netstandard2.0/Microsoft.Azure.PowerShell.Common.dll": { + "assemblyVersion": "1.0.0.0", + "fileVersion": "1.3.57.0" + } + } + }, + "Microsoft.Azure.PowerShell.Common.Share/1.3.57-preview": { + "dependencies": { + "Hyak.Common": "1.2.2", + "Microsoft.Azure.Common": "2.2.1", + "Microsoft.Rest.ClientRuntime": "2.3.23", + "Microsoft.Rest.ClientRuntime.Azure": "3.3.19", + "Newtonsoft.Json": "10.0.3" + }, + "runtime": { + "lib/netstandard2.0/Microsoft.Azure.PowerShell.Common.Share.dll": { + "assemblyVersion": "1.0.0.0", + "fileVersion": "1.3.57.0" + } + } + }, + "Microsoft.Azure.PowerShell.Storage/1.3.57-preview": { + "dependencies": { + "Microsoft.Azure.PowerShell.Authentication.Abstractions": "1.3.57-preview", + "Microsoft.Rest.ClientRuntime": "2.3.23" + }, + "runtime": { + "lib/netstandard2.0/Microsoft.Azure.PowerShell.Storage.dll": { + "assemblyVersion": "1.0.0.0", + "fileVersion": "1.3.57.0" + } + } + }, + "Microsoft.Azure.PowerShell.Strategies/1.3.57-preview": { + "dependencies": { + "Microsoft.Rest.ClientRuntime": "2.3.23", + "Microsoft.Rest.ClientRuntime.Azure": "3.3.19", + "Newtonsoft.Json": "10.0.3" + }, + "runtime": { + "lib/netstandard2.0/Microsoft.Azure.PowerShell.Strategies.dll": { + "assemblyVersion": "1.0.0.0", + "fileVersion": "1.3.57.0" + } + } + }, + "Microsoft.Bcl.AsyncInterfaces/1.1.1": { + "dependencies": { + "System.Threading.Tasks.Extensions": "4.5.4" + }, + "runtime": { + "lib/netstandard2.0/Microsoft.Bcl.AsyncInterfaces.dll": { + "assemblyVersion": "1.0.0.0", + "fileVersion": "4.700.20.21406" + } + } + }, + "Microsoft.CSharp/4.5.0": { + "runtime": { + "lib/netstandard2.0/Microsoft.CSharp.dll": { + "assemblyVersion": "4.0.4.0", + "fileVersion": "4.6.26515.6" + } + } + }, + "Microsoft.Identity.Client/4.30.1": { + "dependencies": { + "Microsoft.CSharp": "4.5.0", + "NETStandard.Library": "2.0.3", + "System.ComponentModel.TypeConverter": "4.3.0", + "System.Diagnostics.Process": "4.3.0", + "System.Dynamic.Runtime": "4.3.0", + "System.Private.Uri": "4.3.2", + "System.Runtime.Serialization.Formatters": "4.3.0", + "System.Runtime.Serialization.Json": "4.3.0", + "System.Runtime.Serialization.Primitives": "4.3.0", + "System.Security.Cryptography.X509Certificates": "4.3.0", + "System.Security.SecureString": "4.3.0", + "System.Xml.XDocument": "4.3.0", + "System.Xml.XmlDocument": "4.3.0" + }, + "runtime": { + "lib/netstandard1.3/Microsoft.Identity.Client.dll": { + "assemblyVersion": "4.30.1.0", + "fileVersion": "4.30.1.0" + } + } + }, + "Microsoft.Identity.Client.Extensions.Msal/2.18.4": { + "dependencies": { + "Microsoft.Identity.Client": "4.30.1", + "System.Security.Cryptography.ProtectedData": "4.5.0" + }, + "runtime": { + "lib/netstandard2.0/Microsoft.Identity.Client.Extensions.Msal.dll": { + "assemblyVersion": "2.18.4.0", + "fileVersion": "2.18.4.0" + } + } + }, + "Microsoft.NETCore.Platforms/1.1.1": {}, + "Microsoft.NETCore.Targets/1.1.3": {}, + "Microsoft.Rest.ClientRuntime/2.3.23": { + "dependencies": { + "Newtonsoft.Json": "10.0.3" + }, + "runtime": { + "lib/netstandard2.0/Microsoft.Rest.ClientRuntime.dll": { + "assemblyVersion": "2.0.0.0", + "fileVersion": "2.3.23.0" + } + } + }, + "Microsoft.Rest.ClientRuntime.Azure/3.3.19": { + "dependencies": { + "Microsoft.Rest.ClientRuntime": "2.3.23", + "Newtonsoft.Json": "10.0.3" + }, + "runtime": { + "lib/netstandard2.0/Microsoft.Rest.ClientRuntime.Azure.dll": { + "assemblyVersion": "3.0.0.0", + "fileVersion": "3.3.18.0" + } + } + }, + "Microsoft.Win32.Primitives/4.3.0": { + "dependencies": { + "Microsoft.NETCore.Platforms": "1.1.1", + "Microsoft.NETCore.Targets": "1.1.3", + "System.Runtime": "4.3.0" + } + }, + "Microsoft.Win32.Registry/4.3.0": { + "dependencies": { + "Microsoft.NETCore.Platforms": "1.1.1", + "System.Collections": "4.3.0", + "System.Globalization": "4.3.0", + "System.Resources.ResourceManager": "4.3.0", + "System.Runtime": "4.3.0", + "System.Runtime.Extensions": "4.3.0", + "System.Runtime.Handles": "4.3.0", + "System.Runtime.InteropServices": "4.3.0" + } + }, + "NETStandard.Library/2.0.3": { + "dependencies": { + "Microsoft.NETCore.Platforms": "1.1.1" + } + }, + "Newtonsoft.Json/10.0.3": { + "dependencies": { + "Microsoft.CSharp": "4.5.0", + "NETStandard.Library": "2.0.3", + "System.ComponentModel.TypeConverter": "4.3.0", + "System.Runtime.Serialization.Formatters": "4.3.0", + "System.Runtime.Serialization.Primitives": "4.3.0", + "System.Xml.XmlDocument": "4.3.0" + }, + "runtime": { + "lib/netstandard1.3/Newtonsoft.Json.dll": { + "assemblyVersion": "10.0.0.0", + "fileVersion": "10.0.3.21018" + } + } + }, + "PowerShellStandard.Library/5.1.0": {}, + "runtime.debian.8-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.0": {}, + "runtime.fedora.23-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.0": {}, + "runtime.fedora.24-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.0": {}, + "runtime.native.System/4.3.0": { + "dependencies": { + "Microsoft.NETCore.Platforms": "1.1.1", + "Microsoft.NETCore.Targets": "1.1.3" + } + }, + "runtime.native.System.Net.Http/4.3.0": { + "dependencies": { + "Microsoft.NETCore.Platforms": "1.1.1", + "Microsoft.NETCore.Targets": "1.1.3" + } + }, + "runtime.native.System.Security.Cryptography.Apple/4.3.0": { + "dependencies": { + "runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography.Apple": "4.3.0" + } + }, + "runtime.native.System.Security.Cryptography.OpenSsl/4.3.0": { + "dependencies": { + "runtime.debian.8-x64.runtime.native.System.Security.Cryptography.OpenSsl": "4.3.0", + "runtime.fedora.23-x64.runtime.native.System.Security.Cryptography.OpenSsl": "4.3.0", + "runtime.fedora.24-x64.runtime.native.System.Security.Cryptography.OpenSsl": "4.3.0", + "runtime.opensuse.13.2-x64.runtime.native.System.Security.Cryptography.OpenSsl": "4.3.0", + "runtime.opensuse.42.1-x64.runtime.native.System.Security.Cryptography.OpenSsl": "4.3.0", + "runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography.OpenSsl": "4.3.0", + "runtime.rhel.7-x64.runtime.native.System.Security.Cryptography.OpenSsl": "4.3.0", + "runtime.ubuntu.14.04-x64.runtime.native.System.Security.Cryptography.OpenSsl": "4.3.0", + "runtime.ubuntu.16.04-x64.runtime.native.System.Security.Cryptography.OpenSsl": "4.3.0", + "runtime.ubuntu.16.10-x64.runtime.native.System.Security.Cryptography.OpenSsl": "4.3.0" + } + }, + "runtime.opensuse.13.2-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.0": {}, + "runtime.opensuse.42.1-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.0": {}, + "runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography.Apple/4.3.0": {}, + "runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.0": {}, + "runtime.rhel.7-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.0": {}, + "runtime.ubuntu.14.04-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.0": {}, + "runtime.ubuntu.16.04-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.0": {}, + "runtime.ubuntu.16.10-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.0": {}, + "System.Buffers/4.5.1": { + "runtime": { + "lib/netstandard2.0/System.Buffers.dll": { + "assemblyVersion": "4.0.3.0", + "fileVersion": "4.6.28619.1" + } + } + }, + "System.Collections/4.3.0": { + "dependencies": { + "Microsoft.NETCore.Platforms": "1.1.1", + "Microsoft.NETCore.Targets": "1.1.3", + "System.Runtime": "4.3.0" + } + }, + "System.Collections.Concurrent/4.3.0": { + "dependencies": { + "System.Collections": "4.3.0", + "System.Diagnostics.Debug": "4.3.0", + "System.Diagnostics.Tracing": "4.3.0", + "System.Globalization": "4.3.0", + "System.Reflection": "4.3.0", + "System.Resources.ResourceManager": "4.3.0", + "System.Runtime": "4.3.0", + "System.Runtime.Extensions": "4.3.0", + "System.Threading": "4.3.0", + "System.Threading.Tasks": "4.3.0" + }, + "runtime": { + "lib/netstandard1.3/System.Collections.Concurrent.dll": { + "assemblyVersion": "4.0.13.0", + "fileVersion": "4.6.24705.1" + } + } + }, + "System.Collections.NonGeneric/4.3.0": { + "dependencies": { + "System.Diagnostics.Debug": "4.3.0", + "System.Globalization": "4.3.0", + "System.Resources.ResourceManager": "4.3.0", + "System.Runtime": "4.3.0", + "System.Runtime.Extensions": "4.3.0", + "System.Threading": "4.3.0" + }, + "runtime": { + "lib/netstandard1.3/System.Collections.NonGeneric.dll": { + "assemblyVersion": "4.0.2.0", + "fileVersion": "4.6.24705.1" + } + } + }, + "System.Collections.Specialized/4.3.0": { + "dependencies": { + "System.Collections.NonGeneric": "4.3.0", + "System.Globalization": "4.3.0", + "System.Globalization.Extensions": "4.3.0", + "System.Resources.ResourceManager": "4.3.0", + "System.Runtime": "4.3.0", + "System.Runtime.Extensions": "4.3.0", + "System.Threading": "4.3.0" + }, + "runtime": { + "lib/netstandard1.3/System.Collections.Specialized.dll": { + "assemblyVersion": "4.0.2.0", + "fileVersion": "4.6.24705.1" + } + } + }, + "System.ComponentModel/4.3.0": { + "dependencies": { + "System.Runtime": "4.3.0" + }, + "runtime": { + "lib/netstandard1.3/System.ComponentModel.dll": { + "assemblyVersion": "4.0.2.0", + "fileVersion": "4.6.24705.1" + } + } + }, + "System.ComponentModel.Primitives/4.3.0": { + "dependencies": { + "System.ComponentModel": "4.3.0", + "System.Resources.ResourceManager": "4.3.0", + "System.Runtime": "4.3.0" + }, + "runtime": { + "lib/netstandard1.0/System.ComponentModel.Primitives.dll": { + "assemblyVersion": "4.1.1.0", + "fileVersion": "4.6.24705.1" + } + } + }, + "System.ComponentModel.TypeConverter/4.3.0": { + "dependencies": { + "System.Collections": "4.3.0", + "System.Collections.NonGeneric": "4.3.0", + "System.Collections.Specialized": "4.3.0", + "System.ComponentModel": "4.3.0", + "System.ComponentModel.Primitives": "4.3.0", + "System.Globalization": "4.3.0", + "System.Linq": "4.3.0", + "System.Reflection": "4.3.0", + "System.Reflection.Extensions": "4.3.0", + "System.Reflection.Primitives": "4.3.0", + "System.Reflection.TypeExtensions": "4.3.0", + "System.Resources.ResourceManager": "4.3.0", + "System.Runtime": "4.3.0", + "System.Runtime.Extensions": "4.3.0", + "System.Threading": "4.3.0" + }, + "runtime": { + "lib/netstandard1.5/System.ComponentModel.TypeConverter.dll": { + "assemblyVersion": "4.1.1.0", + "fileVersion": "4.6.24705.1" + } + } + }, + "System.Diagnostics.Debug/4.3.0": { + "dependencies": { + "Microsoft.NETCore.Platforms": "1.1.1", + "Microsoft.NETCore.Targets": "1.1.3", + "System.Runtime": "4.3.0" + } + }, + "System.Diagnostics.DiagnosticSource/4.6.0": { + "dependencies": { + "System.Memory": "4.5.4" + }, + "runtime": { + "lib/netstandard1.3/System.Diagnostics.DiagnosticSource.dll": { + "assemblyVersion": "4.0.4.0", + "fileVersion": "4.700.19.46214" + } + } + }, + "System.Diagnostics.Process/4.3.0": { + "dependencies": { + "Microsoft.NETCore.Platforms": "1.1.1", + "Microsoft.Win32.Primitives": "4.3.0", + "Microsoft.Win32.Registry": "4.3.0", + "System.Collections": "4.3.0", + "System.Diagnostics.Debug": "4.3.0", + "System.Globalization": "4.3.0", + "System.IO": "4.3.0", + "System.IO.FileSystem": "4.3.0", + "System.IO.FileSystem.Primitives": "4.3.0", + "System.Resources.ResourceManager": "4.3.0", + "System.Runtime": "4.3.0", + "System.Runtime.Extensions": "4.3.0", + "System.Runtime.Handles": "4.3.0", + "System.Runtime.InteropServices": "4.3.0", + "System.Text.Encoding": "4.3.0", + "System.Text.Encoding.Extensions": "4.3.0", + "System.Threading": "4.3.0", + "System.Threading.Tasks": "4.3.0", + "System.Threading.Thread": "4.3.0", + "System.Threading.ThreadPool": "4.3.0", + "runtime.native.System": "4.3.0" + } + }, + "System.Diagnostics.Tools/4.3.0": { + "dependencies": { + "Microsoft.NETCore.Platforms": "1.1.1", + "Microsoft.NETCore.Targets": "1.1.3", + "System.Runtime": "4.3.0" + } + }, + "System.Diagnostics.Tracing/4.3.0": { + "dependencies": { + "Microsoft.NETCore.Platforms": "1.1.1", + "Microsoft.NETCore.Targets": "1.1.3", + "System.Runtime": "4.3.0" + } + }, + "System.Dynamic.Runtime/4.3.0": { + "dependencies": { + "System.Collections": "4.3.0", + "System.Diagnostics.Debug": "4.3.0", + "System.Linq": "4.3.0", + "System.Linq.Expressions": "4.3.0", + "System.ObjectModel": "4.3.0", + "System.Reflection": "4.3.0", + "System.Reflection.Emit": "4.3.0", + "System.Reflection.Emit.ILGeneration": "4.3.0", + "System.Reflection.Primitives": "4.3.0", + "System.Reflection.TypeExtensions": "4.3.0", + "System.Resources.ResourceManager": "4.3.0", + "System.Runtime": "4.3.0", + "System.Runtime.Extensions": "4.3.0", + "System.Threading": "4.3.0" + }, + "runtime": { + "lib/netstandard1.3/System.Dynamic.Runtime.dll": { + "assemblyVersion": "4.0.12.0", + "fileVersion": "4.6.24705.1" + } + } + }, + "System.Globalization/4.3.0": { + "dependencies": { + "Microsoft.NETCore.Platforms": "1.1.1", + "Microsoft.NETCore.Targets": "1.1.3", + "System.Runtime": "4.3.0" + } + }, + "System.Globalization.Calendars/4.3.0": { + "dependencies": { + "Microsoft.NETCore.Platforms": "1.1.1", + "Microsoft.NETCore.Targets": "1.1.3", + "System.Globalization": "4.3.0", + "System.Runtime": "4.3.0" + } + }, + "System.Globalization.Extensions/4.3.0": { + "dependencies": { + "Microsoft.NETCore.Platforms": "1.1.1", + "System.Globalization": "4.3.0", + "System.Resources.ResourceManager": "4.3.0", + "System.Runtime": "4.3.0", + "System.Runtime.Extensions": "4.3.0", + "System.Runtime.InteropServices": "4.3.0" + } + }, + "System.IO/4.3.0": { + "dependencies": { + "Microsoft.NETCore.Platforms": "1.1.1", + "Microsoft.NETCore.Targets": "1.1.3", + "System.Runtime": "4.3.0", + "System.Text.Encoding": "4.3.0", + "System.Threading.Tasks": "4.3.0" + } + }, + "System.IO.FileSystem/4.3.0": { + "dependencies": { + "Microsoft.NETCore.Platforms": "1.1.1", + "Microsoft.NETCore.Targets": "1.1.3", + "System.IO": "4.3.0", + "System.IO.FileSystem.Primitives": "4.3.0", + "System.Runtime": "4.3.0", + "System.Runtime.Handles": "4.3.0", + "System.Text.Encoding": "4.3.0", + "System.Threading.Tasks": "4.3.0" + } + }, + "System.IO.FileSystem.Primitives/4.3.0": { + "dependencies": { + "System.Runtime": "4.3.0" + }, + "runtime": { + "lib/netstandard1.3/System.IO.FileSystem.Primitives.dll": { + "assemblyVersion": "4.0.2.0", + "fileVersion": "4.6.24705.1" + } + } + }, + "System.Linq/4.3.0": { + "dependencies": { + "System.Collections": "4.3.0", + "System.Diagnostics.Debug": "4.3.0", + "System.Resources.ResourceManager": "4.3.0", + "System.Runtime": "4.3.0", + "System.Runtime.Extensions": "4.3.0" + }, + "runtime": { + "lib/netstandard1.6/System.Linq.dll": { + "assemblyVersion": "4.1.1.0", + "fileVersion": "4.6.24705.1" + } + } + }, + "System.Linq.Expressions/4.3.0": { + "dependencies": { + "System.Collections": "4.3.0", + "System.Diagnostics.Debug": "4.3.0", + "System.Globalization": "4.3.0", + "System.IO": "4.3.0", + "System.Linq": "4.3.0", + "System.ObjectModel": "4.3.0", + "System.Reflection": "4.3.0", + "System.Reflection.Emit": "4.3.0", + "System.Reflection.Emit.ILGeneration": "4.3.0", + "System.Reflection.Emit.Lightweight": "4.3.0", + "System.Reflection.Extensions": "4.3.0", + "System.Reflection.Primitives": "4.3.0", + "System.Reflection.TypeExtensions": "4.3.0", + "System.Resources.ResourceManager": "4.3.0", + "System.Runtime": "4.3.0", + "System.Runtime.Extensions": "4.3.0", + "System.Threading": "4.3.0" + }, + "runtime": { + "lib/netstandard1.6/System.Linq.Expressions.dll": { + "assemblyVersion": "4.1.1.0", + "fileVersion": "4.6.24705.1" + } + } + }, + "System.Memory/4.5.4": { + "dependencies": { + "System.Buffers": "4.5.1", + "System.Numerics.Vectors": "4.5.0", + "System.Runtime.CompilerServices.Unsafe": "4.7.1" + }, + "runtime": { + "lib/netstandard2.0/System.Memory.dll": { + "assemblyVersion": "4.0.1.1", + "fileVersion": "4.6.28619.1" + } + } + }, + "System.Memory.Data/1.0.2": { + "dependencies": { + "System.Text.Encodings.Web": "4.7.2", + "System.Text.Json": "4.7.2" + }, + "runtime": { + "lib/netstandard2.0/System.Memory.Data.dll": { + "assemblyVersion": "1.0.2.0", + "fileVersion": "1.0.221.20802" + } + } + }, + "System.Numerics.Vectors/4.5.0": { + "runtime": { + "lib/netstandard2.0/System.Numerics.Vectors.dll": { + "assemblyVersion": "4.1.4.0", + "fileVersion": "4.6.26515.6" + } + } + }, + "System.ObjectModel/4.3.0": { + "dependencies": { + "System.Collections": "4.3.0", + "System.Diagnostics.Debug": "4.3.0", + "System.Resources.ResourceManager": "4.3.0", + "System.Runtime": "4.3.0", + "System.Threading": "4.3.0" + }, + "runtime": { + "lib/netstandard1.3/System.ObjectModel.dll": { + "assemblyVersion": "4.0.13.0", + "fileVersion": "4.6.24705.1" + } + } + }, + "System.Private.DataContractSerialization/4.3.0": { + "dependencies": { + "System.Collections": "4.3.0", + "System.Collections.Concurrent": "4.3.0", + "System.Diagnostics.Debug": "4.3.0", + "System.Globalization": "4.3.0", + "System.IO": "4.3.0", + "System.Linq": "4.3.0", + "System.Reflection": "4.3.0", + "System.Reflection.Emit.ILGeneration": "4.3.0", + "System.Reflection.Emit.Lightweight": "4.3.0", + "System.Reflection.Extensions": "4.3.0", + "System.Reflection.Primitives": "4.3.0", + "System.Reflection.TypeExtensions": "4.3.0", + "System.Resources.ResourceManager": "4.3.0", + "System.Runtime": "4.3.0", + "System.Runtime.Extensions": "4.3.0", + "System.Runtime.Serialization.Primitives": "4.3.0", + "System.Text.Encoding": "4.3.0", + "System.Text.Encoding.Extensions": "4.3.0", + "System.Text.RegularExpressions": "4.3.0", + "System.Threading": "4.3.0", + "System.Threading.Tasks": "4.3.0", + "System.Xml.ReaderWriter": "4.3.0", + "System.Xml.XDocument": "4.3.0", + "System.Xml.XmlDocument": "4.3.0", + "System.Xml.XmlSerializer": "4.3.0" + }, + "runtime": { + "lib/netstandard1.3/System.Private.DataContractSerialization.dll": { + "assemblyVersion": "4.1.2.0", + "fileVersion": "4.6.24705.1" + } + } + }, + "System.Private.Uri/4.3.2": { + "dependencies": { + "Microsoft.NETCore.Platforms": "1.1.1", + "Microsoft.NETCore.Targets": "1.1.3" + } + }, + "System.Reflection/4.3.0": { + "dependencies": { + "Microsoft.NETCore.Platforms": "1.1.1", + "Microsoft.NETCore.Targets": "1.1.3", + "System.IO": "4.3.0", + "System.Reflection.Primitives": "4.3.0", + "System.Runtime": "4.3.0" + } + }, + "System.Reflection.Emit/4.3.0": { + "dependencies": { + "System.IO": "4.3.0", + "System.Reflection": "4.3.0", + "System.Reflection.Emit.ILGeneration": "4.3.0", + "System.Reflection.Primitives": "4.3.0", + "System.Runtime": "4.3.0" + }, + "runtime": { + "lib/netstandard1.3/System.Reflection.Emit.dll": { + "assemblyVersion": "4.0.2.0", + "fileVersion": "4.6.24705.1" + } + } + }, + "System.Reflection.Emit.ILGeneration/4.3.0": { + "dependencies": { + "System.Reflection": "4.3.0", + "System.Reflection.Primitives": "4.3.0", + "System.Runtime": "4.3.0" + }, + "runtime": { + "lib/netstandard1.3/System.Reflection.Emit.ILGeneration.dll": { + "assemblyVersion": "4.0.2.0", + "fileVersion": "4.6.24705.1" + } + } + }, + "System.Reflection.Emit.Lightweight/4.3.0": { + "dependencies": { + "System.Reflection": "4.3.0", + "System.Reflection.Emit.ILGeneration": "4.3.0", + "System.Reflection.Primitives": "4.3.0", + "System.Runtime": "4.3.0" + }, + "runtime": { + "lib/netstandard1.3/System.Reflection.Emit.Lightweight.dll": { + "assemblyVersion": "4.0.2.0", + "fileVersion": "4.6.24705.1" + } + } + }, + "System.Reflection.Extensions/4.3.0": { + "dependencies": { + "Microsoft.NETCore.Platforms": "1.1.1", + "Microsoft.NETCore.Targets": "1.1.3", + "System.Reflection": "4.3.0", + "System.Runtime": "4.3.0" + } + }, + "System.Reflection.Primitives/4.3.0": { + "dependencies": { + "Microsoft.NETCore.Platforms": "1.1.1", + "Microsoft.NETCore.Targets": "1.1.3", + "System.Runtime": "4.3.0" + } + }, + "System.Reflection.TypeExtensions/4.3.0": { + "dependencies": { + "System.Reflection": "4.3.0", + "System.Runtime": "4.3.0" + }, + "runtime": { + "lib/netstandard1.5/System.Reflection.TypeExtensions.dll": { + "assemblyVersion": "4.1.1.0", + "fileVersion": "4.6.24705.1" + } + } + }, + "System.Resources.ResourceManager/4.3.0": { + "dependencies": { + "Microsoft.NETCore.Platforms": "1.1.1", + "Microsoft.NETCore.Targets": "1.1.3", + "System.Globalization": "4.3.0", + "System.Reflection": "4.3.0", + "System.Runtime": "4.3.0" + } + }, + "System.Runtime/4.3.0": { + "dependencies": { + "Microsoft.NETCore.Platforms": "1.1.1", + "Microsoft.NETCore.Targets": "1.1.3" + } + }, + "System.Runtime.CompilerServices.Unsafe/4.7.1": { + "runtime": { + "lib/netstandard2.0/System.Runtime.CompilerServices.Unsafe.dll": { + "assemblyVersion": "4.0.6.0", + "fileVersion": "4.700.20.12001" + } + } + }, + "System.Runtime.Extensions/4.3.0": { + "dependencies": { + "Microsoft.NETCore.Platforms": "1.1.1", + "Microsoft.NETCore.Targets": "1.1.3", + "System.Runtime": "4.3.0" + } + }, + "System.Runtime.Handles/4.3.0": { + "dependencies": { + "Microsoft.NETCore.Platforms": "1.1.1", + "Microsoft.NETCore.Targets": "1.1.3", + "System.Runtime": "4.3.0" + } + }, + "System.Runtime.InteropServices/4.3.0": { + "dependencies": { + "Microsoft.NETCore.Platforms": "1.1.1", + "Microsoft.NETCore.Targets": "1.1.3", + "System.Reflection": "4.3.0", + "System.Reflection.Primitives": "4.3.0", + "System.Runtime": "4.3.0", + "System.Runtime.Handles": "4.3.0" + } + }, + "System.Runtime.Numerics/4.3.0": { + "dependencies": { + "System.Globalization": "4.3.0", + "System.Resources.ResourceManager": "4.3.0", + "System.Runtime": "4.3.0", + "System.Runtime.Extensions": "4.3.0" + }, + "runtime": { + "lib/netstandard1.3/System.Runtime.Numerics.dll": { + "assemblyVersion": "4.0.2.0", + "fileVersion": "4.6.24705.1" + } + } + }, + "System.Runtime.Serialization.Formatters/4.3.0": { + "dependencies": { + "System.Collections": "4.3.0", + "System.Reflection": "4.3.0", + "System.Resources.ResourceManager": "4.3.0", + "System.Runtime": "4.3.0", + "System.Runtime.Serialization.Primitives": "4.3.0" + }, + "runtime": { + "lib/netstandard1.4/System.Runtime.Serialization.Formatters.dll": { + "assemblyVersion": "4.0.1.0", + "fileVersion": "4.6.24705.1" + } + } + }, + "System.Runtime.Serialization.Json/4.3.0": { + "dependencies": { + "System.IO": "4.3.0", + "System.Private.DataContractSerialization": "4.3.0", + "System.Runtime": "4.3.0" + }, + "runtime": { + "lib/netstandard1.3/System.Runtime.Serialization.Json.dll": { + "assemblyVersion": "4.0.3.0", + "fileVersion": "4.6.24705.1" + } + } + }, + "System.Runtime.Serialization.Primitives/4.3.0": { + "dependencies": { + "System.Resources.ResourceManager": "4.3.0", + "System.Runtime": "4.3.0" + }, + "runtime": { + "lib/netstandard1.3/System.Runtime.Serialization.Primitives.dll": { + "assemblyVersion": "4.1.2.0", + "fileVersion": "4.6.24705.1" + } + } + }, + "System.Security.AccessControl/4.5.0": { + "dependencies": { + "System.Security.Principal.Windows": "4.5.0" + }, + "runtime": { + "lib/netstandard2.0/System.Security.AccessControl.dll": { + "assemblyVersion": "4.1.1.0", + "fileVersion": "4.6.26515.6" + } + } + }, + "System.Security.Cryptography.Algorithms/4.3.0": { + "dependencies": { + "Microsoft.NETCore.Platforms": "1.1.1", + "System.Collections": "4.3.0", + "System.IO": "4.3.0", + "System.Resources.ResourceManager": "4.3.0", + "System.Runtime": "4.3.0", + "System.Runtime.Extensions": "4.3.0", + "System.Runtime.Handles": "4.3.0", + "System.Runtime.InteropServices": "4.3.0", + "System.Runtime.Numerics": "4.3.0", + "System.Security.Cryptography.Encoding": "4.3.0", + "System.Security.Cryptography.Primitives": "4.3.0", + "System.Text.Encoding": "4.3.0", + "runtime.native.System.Security.Cryptography.Apple": "4.3.0", + "runtime.native.System.Security.Cryptography.OpenSsl": "4.3.0" + } + }, + "System.Security.Cryptography.Cng/4.3.0": { + "dependencies": { + "Microsoft.NETCore.Platforms": "1.1.1", + "System.IO": "4.3.0", + "System.Resources.ResourceManager": "4.3.0", + "System.Runtime": "4.3.0", + "System.Runtime.Extensions": "4.3.0", + "System.Runtime.Handles": "4.3.0", + "System.Runtime.InteropServices": "4.3.0", + "System.Security.Cryptography.Algorithms": "4.3.0", + "System.Security.Cryptography.Encoding": "4.3.0", + "System.Security.Cryptography.Primitives": "4.3.0", + "System.Text.Encoding": "4.3.0" + } + }, + "System.Security.Cryptography.Csp/4.3.0": { + "dependencies": { + "Microsoft.NETCore.Platforms": "1.1.1", + "System.IO": "4.3.0", + "System.Reflection": "4.3.0", + "System.Resources.ResourceManager": "4.3.0", + "System.Runtime": "4.3.0", + "System.Runtime.Extensions": "4.3.0", + "System.Runtime.Handles": "4.3.0", + "System.Runtime.InteropServices": "4.3.0", + "System.Security.Cryptography.Algorithms": "4.3.0", + "System.Security.Cryptography.Encoding": "4.3.0", + "System.Security.Cryptography.Primitives": "4.3.0", + "System.Text.Encoding": "4.3.0", + "System.Threading": "4.3.0" + } + }, + "System.Security.Cryptography.Encoding/4.3.0": { + "dependencies": { + "Microsoft.NETCore.Platforms": "1.1.1", + "System.Collections": "4.3.0", + "System.Collections.Concurrent": "4.3.0", + "System.Linq": "4.3.0", + "System.Resources.ResourceManager": "4.3.0", + "System.Runtime": "4.3.0", + "System.Runtime.Extensions": "4.3.0", + "System.Runtime.Handles": "4.3.0", + "System.Runtime.InteropServices": "4.3.0", + "System.Security.Cryptography.Primitives": "4.3.0", + "System.Text.Encoding": "4.3.0", + "runtime.native.System.Security.Cryptography.OpenSsl": "4.3.0" + } + }, + "System.Security.Cryptography.OpenSsl/4.3.0": { + "dependencies": { + "System.Collections": "4.3.0", + "System.IO": "4.3.0", + "System.Resources.ResourceManager": "4.3.0", + "System.Runtime": "4.3.0", + "System.Runtime.Extensions": "4.3.0", + "System.Runtime.Handles": "4.3.0", + "System.Runtime.InteropServices": "4.3.0", + "System.Runtime.Numerics": "4.3.0", + "System.Security.Cryptography.Algorithms": "4.3.0", + "System.Security.Cryptography.Encoding": "4.3.0", + "System.Security.Cryptography.Primitives": "4.3.0", + "System.Text.Encoding": "4.3.0", + "runtime.native.System.Security.Cryptography.OpenSsl": "4.3.0" + }, + "runtime": { + "lib/netstandard1.6/System.Security.Cryptography.OpenSsl.dll": { + "assemblyVersion": "4.0.0.0", + "fileVersion": "1.0.24212.1" + } + } + }, + "System.Security.Cryptography.Primitives/4.3.0": { + "dependencies": { + "System.Diagnostics.Debug": "4.3.0", + "System.Globalization": "4.3.0", + "System.IO": "4.3.0", + "System.Resources.ResourceManager": "4.3.0", + "System.Runtime": "4.3.0", + "System.Threading": "4.3.0", + "System.Threading.Tasks": "4.3.0" + }, + "runtime": { + "lib/netstandard1.3/System.Security.Cryptography.Primitives.dll": { + "assemblyVersion": "4.0.1.0", + "fileVersion": "4.6.24705.1" + } + } + }, + "System.Security.Cryptography.ProtectedData/4.5.0": { + "dependencies": { + "System.Memory": "4.5.4" + }, + "runtime": { + "lib/netstandard2.0/System.Security.Cryptography.ProtectedData.dll": { + "assemblyVersion": "4.0.3.0", + "fileVersion": "4.6.26515.6" + } + } + }, + "System.Security.Cryptography.X509Certificates/4.3.0": { + "dependencies": { + "Microsoft.NETCore.Platforms": "1.1.1", + "System.Collections": "4.3.0", + "System.Diagnostics.Debug": "4.3.0", + "System.Globalization": "4.3.0", + "System.Globalization.Calendars": "4.3.0", + "System.IO": "4.3.0", + "System.IO.FileSystem": "4.3.0", + "System.IO.FileSystem.Primitives": "4.3.0", + "System.Resources.ResourceManager": "4.3.0", + "System.Runtime": "4.3.0", + "System.Runtime.Extensions": "4.3.0", + "System.Runtime.Handles": "4.3.0", + "System.Runtime.InteropServices": "4.3.0", + "System.Runtime.Numerics": "4.3.0", + "System.Security.Cryptography.Algorithms": "4.3.0", + "System.Security.Cryptography.Cng": "4.3.0", + "System.Security.Cryptography.Csp": "4.3.0", + "System.Security.Cryptography.Encoding": "4.3.0", + "System.Security.Cryptography.OpenSsl": "4.3.0", + "System.Security.Cryptography.Primitives": "4.3.0", + "System.Text.Encoding": "4.3.0", + "System.Threading": "4.3.0", + "runtime.native.System": "4.3.0", + "runtime.native.System.Net.Http": "4.3.0", + "runtime.native.System.Security.Cryptography.OpenSsl": "4.3.0" + } + }, + "System.Security.Permissions/4.5.0": { + "dependencies": { + "System.Security.AccessControl": "4.5.0" + }, + "runtime": { + "lib/netstandard2.0/System.Security.Permissions.dll": { + "assemblyVersion": "4.0.1.0", + "fileVersion": "4.6.26515.6" + } + } + }, + "System.Security.Principal.Windows/4.5.0": { + "runtime": { + "lib/netstandard2.0/System.Security.Principal.Windows.dll": { + "assemblyVersion": "4.1.1.0", + "fileVersion": "4.6.26515.6" + } + } + }, + "System.Security.SecureString/4.3.0": { + "dependencies": { + "Microsoft.NETCore.Platforms": "1.1.1", + "System.Resources.ResourceManager": "4.3.0", + "System.Runtime": "4.3.0", + "System.Runtime.Handles": "4.3.0", + "System.Runtime.InteropServices": "4.3.0", + "System.Security.Cryptography.Primitives": "4.3.0", + "System.Text.Encoding": "4.3.0", + "System.Threading": "4.3.0" + } + }, + "System.Text.Encoding/4.3.0": { + "dependencies": { + "Microsoft.NETCore.Platforms": "1.1.1", + "Microsoft.NETCore.Targets": "1.1.3", + "System.Runtime": "4.3.0" + } + }, + "System.Text.Encoding.Extensions/4.3.0": { + "dependencies": { + "Microsoft.NETCore.Platforms": "1.1.1", + "Microsoft.NETCore.Targets": "1.1.3", + "System.Runtime": "4.3.0", + "System.Text.Encoding": "4.3.0" + } + }, + "System.Text.Encodings.Web/4.7.2": { + "dependencies": { + "System.Buffers": "4.5.1", + "System.Memory": "4.5.4" + }, + "runtime": { + "lib/netstandard2.0/System.Text.Encodings.Web.dll": { + "assemblyVersion": "4.0.5.1", + "fileVersion": "4.700.21.11602" + } + } + }, + "System.Text.Json/4.7.2": { + "dependencies": { + "Microsoft.Bcl.AsyncInterfaces": "1.1.1", + "System.Buffers": "4.5.1", + "System.Memory": "4.5.4", + "System.Numerics.Vectors": "4.5.0", + "System.Runtime.CompilerServices.Unsafe": "4.7.1", + "System.Text.Encodings.Web": "4.7.2", + "System.Threading.Tasks.Extensions": "4.5.4" + }, + "runtime": { + "lib/netstandard2.0/System.Text.Json.dll": { + "assemblyVersion": "4.0.1.2", + "fileVersion": "4.700.20.21406" + } + } + }, + "System.Text.RegularExpressions/4.3.0": { + "dependencies": { + "System.Collections": "4.3.0", + "System.Globalization": "4.3.0", + "System.Resources.ResourceManager": "4.3.0", + "System.Runtime": "4.3.0", + "System.Runtime.Extensions": "4.3.0", + "System.Threading": "4.3.0" + }, + "runtime": { + "lib/netstandard1.6/System.Text.RegularExpressions.dll": { + "assemblyVersion": "4.1.1.0", + "fileVersion": "4.6.24705.1" + } + } + }, + "System.Threading/4.3.0": { + "dependencies": { + "System.Runtime": "4.3.0", + "System.Threading.Tasks": "4.3.0" + }, + "runtime": { + "lib/netstandard1.3/System.Threading.dll": { + "assemblyVersion": "4.0.12.0", + "fileVersion": "4.6.24705.1" + } + } + }, + "System.Threading.Tasks/4.3.0": { + "dependencies": { + "Microsoft.NETCore.Platforms": "1.1.1", + "Microsoft.NETCore.Targets": "1.1.3", + "System.Runtime": "4.3.0" + } + }, + "System.Threading.Tasks.Extensions/4.5.4": { + "dependencies": { + "System.Runtime.CompilerServices.Unsafe": "4.7.1" + }, + "runtime": { + "lib/netstandard2.0/System.Threading.Tasks.Extensions.dll": { + "assemblyVersion": "4.2.0.1", + "fileVersion": "4.6.28619.1" + } + } + }, + "System.Threading.Thread/4.3.0": { + "dependencies": { + "System.Runtime": "4.3.0" + }, + "runtime": { + "lib/netstandard1.3/System.Threading.Thread.dll": { + "assemblyVersion": "4.0.1.0", + "fileVersion": "4.6.24705.1" + } + } + }, + "System.Threading.ThreadPool/4.3.0": { + "dependencies": { + "System.Runtime": "4.3.0", + "System.Runtime.Handles": "4.3.0" + }, + "runtime": { + "lib/netstandard1.3/System.Threading.ThreadPool.dll": { + "assemblyVersion": "4.0.11.0", + "fileVersion": "4.6.24705.1" + } + } + }, + "System.Xml.ReaderWriter/4.3.0": { + "dependencies": { + "System.Collections": "4.3.0", + "System.Diagnostics.Debug": "4.3.0", + "System.Globalization": "4.3.0", + "System.IO": "4.3.0", + "System.IO.FileSystem": "4.3.0", + "System.IO.FileSystem.Primitives": "4.3.0", + "System.Resources.ResourceManager": "4.3.0", + "System.Runtime": "4.3.0", + "System.Runtime.Extensions": "4.3.0", + "System.Runtime.InteropServices": "4.3.0", + "System.Text.Encoding": "4.3.0", + "System.Text.Encoding.Extensions": "4.3.0", + "System.Text.RegularExpressions": "4.3.0", + "System.Threading.Tasks": "4.3.0", + "System.Threading.Tasks.Extensions": "4.5.4" + }, + "runtime": { + "lib/netstandard1.3/System.Xml.ReaderWriter.dll": { + "assemblyVersion": "4.1.0.0", + "fileVersion": "4.6.24705.1" + } + } + }, + "System.Xml.XDocument/4.3.0": { + "dependencies": { + "System.Collections": "4.3.0", + "System.Diagnostics.Debug": "4.3.0", + "System.Diagnostics.Tools": "4.3.0", + "System.Globalization": "4.3.0", + "System.IO": "4.3.0", + "System.Reflection": "4.3.0", + "System.Resources.ResourceManager": "4.3.0", + "System.Runtime": "4.3.0", + "System.Runtime.Extensions": "4.3.0", + "System.Text.Encoding": "4.3.0", + "System.Threading": "4.3.0", + "System.Xml.ReaderWriter": "4.3.0" + }, + "runtime": { + "lib/netstandard1.3/System.Xml.XDocument.dll": { + "assemblyVersion": "4.0.12.0", + "fileVersion": "4.6.24705.1" + } + } + }, + "System.Xml.XmlDocument/4.3.0": { + "dependencies": { + "System.Collections": "4.3.0", + "System.Diagnostics.Debug": "4.3.0", + "System.Globalization": "4.3.0", + "System.IO": "4.3.0", + "System.Resources.ResourceManager": "4.3.0", + "System.Runtime": "4.3.0", + "System.Runtime.Extensions": "4.3.0", + "System.Text.Encoding": "4.3.0", + "System.Threading": "4.3.0", + "System.Xml.ReaderWriter": "4.3.0" + }, + "runtime": { + "lib/netstandard1.3/System.Xml.XmlDocument.dll": { + "assemblyVersion": "4.0.2.0", + "fileVersion": "4.6.24705.1" + } + } + }, + "System.Xml.XmlSerializer/4.3.0": { + "dependencies": { + "System.Collections": "4.3.0", + "System.Globalization": "4.3.0", + "System.IO": "4.3.0", + "System.Linq": "4.3.0", + "System.Reflection": "4.3.0", + "System.Reflection.Emit": "4.3.0", + "System.Reflection.Emit.ILGeneration": "4.3.0", + "System.Reflection.Extensions": "4.3.0", + "System.Reflection.Primitives": "4.3.0", + "System.Reflection.TypeExtensions": "4.3.0", + "System.Resources.ResourceManager": "4.3.0", + "System.Runtime": "4.3.0", + "System.Runtime.Extensions": "4.3.0", + "System.Text.RegularExpressions": "4.3.0", + "System.Threading": "4.3.0", + "System.Xml.ReaderWriter": "4.3.0", + "System.Xml.XmlDocument": "4.3.0" + }, + "runtime": { + "lib/netstandard1.3/System.Xml.XmlSerializer.dll": { + "assemblyVersion": "4.0.12.0", + "fileVersion": "4.6.24705.1" + } + } + }, + "Microsoft.Azure.PowerShell.Authentication/1.0.0": { + "dependencies": { + "Azure.Core": "1.22.0", + "Azure.Identity": "1.5.0", + "Hyak.Common": "1.2.2", + "Microsoft.ApplicationInsights": "2.12.0", + "Microsoft.Azure.Common": "2.2.1", + "Microsoft.Azure.PowerShell.Authentication.Abstractions": "1.3.57-preview", + "Microsoft.Azure.PowerShell.Clients.Aks": "1.3.57-preview", + "Microsoft.Azure.PowerShell.Clients.Authorization": "1.3.57-preview", + "Microsoft.Azure.PowerShell.Clients.Compute": "1.3.57-preview", + "Microsoft.Azure.PowerShell.Clients.Graph.Rbac": "1.3.57-preview", + "Microsoft.Azure.PowerShell.Clients.KeyVault": "1.3.57-preview", + "Microsoft.Azure.PowerShell.Clients.Monitor": "1.3.57-preview", + "Microsoft.Azure.PowerShell.Clients.Network": "1.3.57-preview", + "Microsoft.Azure.PowerShell.Clients.PolicyInsights": "1.3.57-preview", + "Microsoft.Azure.PowerShell.Clients.ResourceManager": "1.3.57-preview", + "Microsoft.Azure.PowerShell.Clients.Storage.Management": "1.3.57-preview", + "Microsoft.Azure.PowerShell.Clients.Websites": "1.3.57-preview", + "Microsoft.Azure.PowerShell.Common": "1.3.57-preview", + "Microsoft.Azure.PowerShell.Common.Share": "1.3.57-preview", + "Microsoft.Azure.PowerShell.Storage": "1.3.57-preview", + "Microsoft.Azure.PowerShell.Strategies": "1.3.57-preview", + "Microsoft.Rest.ClientRuntime": "2.3.23", + "Microsoft.Rest.ClientRuntime.Azure": "3.3.19", + "Newtonsoft.Json": "10.0.3" + }, + "runtime": { + "Microsoft.Azure.PowerShell.Authentication.dll": {} + } + }, + "Microsoft.Azure.PowerShell.Authentication.ResourceManager/1.0.0": { + "dependencies": { + "Azure.Core": "1.22.0", + "Hyak.Common": "1.2.2", + "Microsoft.ApplicationInsights": "2.12.0", + "Microsoft.Azure.Common": "2.2.1", + "Microsoft.Azure.PowerShell.Authentication": "1.0.0", + "Microsoft.Azure.PowerShell.Authentication.Abstractions": "1.3.57-preview", + "Microsoft.Azure.PowerShell.Clients.Aks": "1.3.57-preview", + "Microsoft.Azure.PowerShell.Clients.Authorization": "1.3.57-preview", + "Microsoft.Azure.PowerShell.Clients.Compute": "1.3.57-preview", + "Microsoft.Azure.PowerShell.Clients.Graph.Rbac": "1.3.57-preview", + "Microsoft.Azure.PowerShell.Clients.KeyVault": "1.3.57-preview", + "Microsoft.Azure.PowerShell.Clients.Monitor": "1.3.57-preview", + "Microsoft.Azure.PowerShell.Clients.Network": "1.3.57-preview", + "Microsoft.Azure.PowerShell.Clients.PolicyInsights": "1.3.57-preview", + "Microsoft.Azure.PowerShell.Clients.ResourceManager": "1.3.57-preview", + "Microsoft.Azure.PowerShell.Clients.Storage.Management": "1.3.57-preview", + "Microsoft.Azure.PowerShell.Clients.Websites": "1.3.57-preview", + "Microsoft.Azure.PowerShell.Common": "1.3.57-preview", + "Microsoft.Azure.PowerShell.Common.Share": "1.3.57-preview", + "Microsoft.Azure.PowerShell.Storage": "1.3.57-preview", + "Microsoft.Azure.PowerShell.Strategies": "1.3.57-preview", + "Microsoft.Rest.ClientRuntime": "2.3.23", + "Microsoft.Rest.ClientRuntime.Azure": "3.3.19", + "Newtonsoft.Json": "10.0.3" + }, + "runtime": { + "Microsoft.Azure.PowerShell.Authentication.ResourceManager.dll": {} + } + }, + "Microsoft.Azure.PowerShell.Authenticators/1.0.0": { + "dependencies": { + "Azure.Identity": "1.5.0", + "Microsoft.Azure.PowerShell.Authentication": "1.0.0" + }, + "runtime": { + "Microsoft.Azure.PowerShell.Authenticators.dll": {} + } + } + } + }, + "libraries": { + "Microsoft.Azure.PowerShell.Cmdlets.Accounts/1.0.0": { + "type": "project", + "serviceable": false, + "sha512": "" + }, + "Azure.Core/1.22.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-ze/xRCHSSDe5TIk5vBDbVrauW1EN7UIbnBvIBfMH8KSt/I9+/7yPAjTBDgNBk0IwG6WBV+BBHp4IUtS/PGAQwQ==", + "path": "azure.core/1.22.0", + "hashPath": "azure.core.1.22.0.nupkg.sha512" + }, + "Azure.Identity/1.5.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-VfF88dqrgKXZNOS/y4XrX/jmIfP3pkY+hBUzBNpoKml1nR+QshX6XlXWyToLtWV80TDQ1CmUVCJksktDg5+j1w==", + "path": "azure.identity/1.5.0", + "hashPath": "azure.identity.1.5.0.nupkg.sha512" + }, + "Hyak.Common/1.2.2": { + "type": "package", + "serviceable": true, + "sha512": "sha512-uZpnFn48nSQwHcO0/GSBZ7ExaO0sTXKv8KariXXEWLaB4Q3AeQoprYG4WpKsCT0ByW3YffETivgc5rcH5RRDvQ==", + "path": "hyak.common/1.2.2", + "hashPath": "hyak.common.1.2.2.nupkg.sha512" + }, + "Microsoft.ApplicationInsights/2.12.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-4vZcVaxywAzfLm5mAc2/llaZQTzbCqu9KirxxI/t49AkZH5Qxf7JxuAMUuv2/6JEdOOkGDzpvdrrIlf6LkFGcg==", + "path": "microsoft.applicationinsights/2.12.0", + "hashPath": "microsoft.applicationinsights.2.12.0.nupkg.sha512" + }, + "Microsoft.Azure.Common/2.2.1": { + "type": "package", + "serviceable": true, + "sha512": "sha512-abzRooh4ACKjzAKxRB6r+SHKW3d+IrLcgtVG81D+3kQU/OMjAZS1oDp9CDalhSbmxa84u0MHM5N+AKeTtKPoiw==", + "path": "microsoft.azure.common/2.2.1", + "hashPath": "microsoft.azure.common.2.2.1.nupkg.sha512" + }, + "Microsoft.Azure.PowerShell.Authentication.Abstractions/1.3.57-preview": { + "type": "package", + "serviceable": true, + "sha512": "sha512-bKDPidNeqBpTDikPnIuoMoGd26pD2PNE41cut0ASwL5exJwLNggYO55U+f/cJkgjCUMR8i5nqnlfpGHSS1I0vw==", + "path": "microsoft.azure.powershell.authentication.abstractions/1.3.57-preview", + "hashPath": "microsoft.azure.powershell.authentication.abstractions.1.3.57-preview.nupkg.sha512" + }, + "Microsoft.Azure.PowerShell.Clients.Aks/1.3.57-preview": { + "type": "package", + "serviceable": true, + "sha512": "sha512-sUGkvOvpqlEK5zdZ7HWaou3GY5bnlNrE0LuZ137+TsNfgx2E3+0Ika3a02i/9+niDDf60xj4LaNOYDSuK5zdJA==", + "path": "microsoft.azure.powershell.clients.aks/1.3.57-preview", + "hashPath": "microsoft.azure.powershell.clients.aks.1.3.57-preview.nupkg.sha512" + }, + "Microsoft.Azure.PowerShell.Clients.Authorization/1.3.57-preview": { + "type": "package", + "serviceable": true, + "sha512": "sha512-Q760F40/qfas2Al+GQhhE4gJt768pQPxlCjqrjjkukgVsq+X/M8IqpCeBzbRTiiyerhcjJoyNxqlGuZpUhqGxw==", + "path": "microsoft.azure.powershell.clients.authorization/1.3.57-preview", + "hashPath": "microsoft.azure.powershell.clients.authorization.1.3.57-preview.nupkg.sha512" + }, + "Microsoft.Azure.PowerShell.Clients.Compute/1.3.57-preview": { + "type": "package", + "serviceable": true, + "sha512": "sha512-1fcsBdYMmEJPMPN8EAgJkaJ2WxxTKH3VcLECYdL2cfg2bgN8CKbbjSvarrXEezhyduE+LdYnL0e8Pigsnaj55Q==", + "path": "microsoft.azure.powershell.clients.compute/1.3.57-preview", + "hashPath": "microsoft.azure.powershell.clients.compute.1.3.57-preview.nupkg.sha512" + }, + "Microsoft.Azure.PowerShell.Clients.Graph.Rbac/1.3.57-preview": { + "type": "package", + "serviceable": true, + "sha512": "sha512-BIMthJ1x2vQAN3iWChnNj8BfgrXvKXn+n06E0/h2MNurMXbAOn5eiPIfE8bnj2BO99uSh1ns09yEgOTPJIvZBQ==", + "path": "microsoft.azure.powershell.clients.graph.rbac/1.3.57-preview", + "hashPath": "microsoft.azure.powershell.clients.graph.rbac.1.3.57-preview.nupkg.sha512" + }, + "Microsoft.Azure.PowerShell.Clients.KeyVault/1.3.57-preview": { + "type": "package", + "serviceable": true, + "sha512": "sha512-MfvwM8ABj/EswmYu0Bf/8kyAO6kUv2zYSihVn384SVmypomVKUu69GN0VXKbmGaovPI8v3H41Ldp7DqbPRun5A==", + "path": "microsoft.azure.powershell.clients.keyvault/1.3.57-preview", + "hashPath": "microsoft.azure.powershell.clients.keyvault.1.3.57-preview.nupkg.sha512" + }, + "Microsoft.Azure.PowerShell.Clients.Monitor/1.3.57-preview": { + "type": "package", + "serviceable": true, + "sha512": "sha512-UyCKG5BWVjYFRtH2JNx6f4KdccaSqww2y0OE2PYgib8VhLqkoPr/BQg6vKzaGsghLIerZ/egQ7ntPPw3PCtS3w==", + "path": "microsoft.azure.powershell.clients.monitor/1.3.57-preview", + "hashPath": "microsoft.azure.powershell.clients.monitor.1.3.57-preview.nupkg.sha512" + }, + "Microsoft.Azure.PowerShell.Clients.Network/1.3.57-preview": { + "type": "package", + "serviceable": true, + "sha512": "sha512-YAAHxw+zzvkGNWAi668NSoTR+V/7vf+gRhu1oFa1O1/f2NGpz5XuqPrQyAPrri64hKqB/k3OMrM7sjlIv16dAg==", + "path": "microsoft.azure.powershell.clients.network/1.3.57-preview", + "hashPath": "microsoft.azure.powershell.clients.network.1.3.57-preview.nupkg.sha512" + }, + "Microsoft.Azure.PowerShell.Clients.PolicyInsights/1.3.57-preview": { + "type": "package", + "serviceable": true, + "sha512": "sha512-urRIwRVzzOwpk8HhKq/b785DiL/arnmGUHbN4HvRN6ZsBkE1PU431YwgUlofb9pfB3buLcl0XJFRPLBJ0yZJUw==", + "path": "microsoft.azure.powershell.clients.policyinsights/1.3.57-preview", + "hashPath": "microsoft.azure.powershell.clients.policyinsights.1.3.57-preview.nupkg.sha512" + }, + "Microsoft.Azure.PowerShell.Clients.ResourceManager/1.3.57-preview": { + "type": "package", + "serviceable": true, + "sha512": "sha512-juWnd63Z2Sp+6bvtOPOF0Gj1v2AfpxXcuyodd9+U7euBro2G7Yfo2UHmHo/uaYyQUbM3HaXJPvse7BLDKjhe6w==", + "path": "microsoft.azure.powershell.clients.resourcemanager/1.3.57-preview", + "hashPath": "microsoft.azure.powershell.clients.resourcemanager.1.3.57-preview.nupkg.sha512" + }, + "Microsoft.Azure.PowerShell.Clients.Storage.Management/1.3.57-preview": { + "type": "package", + "serviceable": true, + "sha512": "sha512-HPpTWIlN+5ALqJssL7+6BD/vYrWi3eWKQ3QpWYjCFk5c9HVLTNpP+M2dq9jbsxLsZj+5Pt6gC4FIS22Q13Uhag==", + "path": "microsoft.azure.powershell.clients.storage.management/1.3.57-preview", + "hashPath": "microsoft.azure.powershell.clients.storage.management.1.3.57-preview.nupkg.sha512" + }, + "Microsoft.Azure.PowerShell.Clients.Websites/1.3.57-preview": { + "type": "package", + "serviceable": true, + "sha512": "sha512-b5yBD9FrY02r0kdNNgZ+uU0/QsW3AtmnCE/x1mUG5j8ka/V04AYUo+sDokQBzu+vnK6Y6OrVDtyWjmnKTDHpWA==", + "path": "microsoft.azure.powershell.clients.websites/1.3.57-preview", + "hashPath": "microsoft.azure.powershell.clients.websites.1.3.57-preview.nupkg.sha512" + }, + "Microsoft.Azure.PowerShell.Common/1.3.57-preview": { + "type": "package", + "serviceable": true, + "sha512": "sha512-9jZYZ9LKbx16r69y7cO9d7bDjpE0/HgeBU386Y/O6q05VRaq2wAsB2rbQ9AjxcPGHfwS0+2US/RImSSqjVABRQ==", + "path": "microsoft.azure.powershell.common/1.3.57-preview", + "hashPath": "microsoft.azure.powershell.common.1.3.57-preview.nupkg.sha512" + }, + "Microsoft.Azure.PowerShell.Common.Share/1.3.57-preview": { + "type": "package", + "serviceable": true, + "sha512": "sha512-4mJSjnwZVLQYWhP47eDzdt0yaLIf2I4pqaEIqcfAjkjdbKpnCXCnJUEFRId061yuKpq1LtfBZkHDRi68I5CJxg==", + "path": "microsoft.azure.powershell.common.share/1.3.57-preview", + "hashPath": "microsoft.azure.powershell.common.share.1.3.57-preview.nupkg.sha512" + }, + "Microsoft.Azure.PowerShell.Storage/1.3.57-preview": { + "type": "package", + "serviceable": true, + "sha512": "sha512-fObXEcuhk1JUoQ0fiCV4nK4NJWqvsfsKCzapF7SFEQ87X6AasL6m5KGT8JQSnHmc849xxxaixPTxyWaf9BBlpw==", + "path": "microsoft.azure.powershell.storage/1.3.57-preview", + "hashPath": "microsoft.azure.powershell.storage.1.3.57-preview.nupkg.sha512" + }, + "Microsoft.Azure.PowerShell.Strategies/1.3.57-preview": { + "type": "package", + "serviceable": true, + "sha512": "sha512-HwyxUwDHCmY6Zdxg2xpFC9Gqmu92Xr0cAr4ElWYwz8Z7PE9uYVkTpKMIKd7oIJJgsIANTfqEU1HKoeI3FXPLqw==", + "path": "microsoft.azure.powershell.strategies/1.3.57-preview", + "hashPath": "microsoft.azure.powershell.strategies.1.3.57-preview.nupkg.sha512" + }, + "Microsoft.Bcl.AsyncInterfaces/1.1.1": { + "type": "package", + "serviceable": true, + "sha512": "sha512-yuvf07qFWFqtK3P/MRkEKLhn5r2UbSpVueRziSqj0yJQIKFwG1pq9mOayK3zE5qZCTs0CbrwL9M6R8VwqyGy2w==", + "path": "microsoft.bcl.asyncinterfaces/1.1.1", + "hashPath": "microsoft.bcl.asyncinterfaces.1.1.1.nupkg.sha512" + }, + "Microsoft.CSharp/4.5.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-kaj6Wb4qoMuH3HySFJhxwQfe8R/sJsNJnANrvv8WdFPMoNbKY5htfNscv+LHCu5ipz+49m2e+WQXpLXr9XYemQ==", + "path": "microsoft.csharp/4.5.0", + "hashPath": "microsoft.csharp.4.5.0.nupkg.sha512" + }, + "Microsoft.Identity.Client/4.30.1": { + "type": "package", + "serviceable": true, + "sha512": "sha512-xk8tJeGfB2yD3+d7a0DXyV7/HYyEG10IofUHYHoPYKmDbroi/j9t1BqSHgbq1nARDjg7m8Ki6e21AyNU7e/R4Q==", + "path": "microsoft.identity.client/4.30.1", + "hashPath": "microsoft.identity.client.4.30.1.nupkg.sha512" + }, + "Microsoft.Identity.Client.Extensions.Msal/2.18.4": { + "type": "package", + "serviceable": true, + "sha512": "sha512-HpG4oLwhQsy0ce7OWq9iDdLtJKOvKRStIKoSEOeBMKuohfuOWNDyhg8fMAJkpG/kFeoe4J329fiMHcJmmB+FPw==", + "path": "microsoft.identity.client.extensions.msal/2.18.4", + "hashPath": "microsoft.identity.client.extensions.msal.2.18.4.nupkg.sha512" + }, + "Microsoft.NETCore.Platforms/1.1.1": { + "type": "package", + "serviceable": true, + "sha512": "sha512-TMBuzAHpTenGbGgk0SMTwyEkyijY/Eae4ZGsFNYJvAr/LDn1ku3Etp3FPxChmDp5HHF3kzJuoaa08N0xjqAJfQ==", + "path": "microsoft.netcore.platforms/1.1.1", + "hashPath": "microsoft.netcore.platforms.1.1.1.nupkg.sha512" + }, + "Microsoft.NETCore.Targets/1.1.3": { + "type": "package", + "serviceable": true, + "sha512": "sha512-3Wrmi0kJDzClwAC+iBdUBpEKmEle8FQNsCs77fkiOIw/9oYA07bL1EZNX0kQ2OMN3xpwvl0vAtOCYY3ndDNlhQ==", + "path": "microsoft.netcore.targets/1.1.3", + "hashPath": "microsoft.netcore.targets.1.1.3.nupkg.sha512" + }, + "Microsoft.Rest.ClientRuntime/2.3.23": { + "type": "package", + "serviceable": true, + "sha512": "sha512-92kNTi1N7zI5wwI2ZXswBRnk61OUYnuYJXrlgOhes5IsAqGmgw9DPGmhUzeY8OaZ8TTrQdDzvgXFnbCHwLzSVA==", + "path": "microsoft.rest.clientruntime/2.3.23", + "hashPath": "microsoft.rest.clientruntime.2.3.23.nupkg.sha512" + }, + "Microsoft.Rest.ClientRuntime.Azure/3.3.19": { + "type": "package", + "serviceable": true, + "sha512": "sha512-+NVBWvRXNwaAPTZUxjUlQggsrf3X0GbiRoxYfgc3kG9E55ZxZxvZPT3nIfC4DNqzGSXUEvmLbckdXgBBzGdUaA==", + "path": "microsoft.rest.clientruntime.azure/3.3.19", + "hashPath": "microsoft.rest.clientruntime.azure.3.3.19.nupkg.sha512" + }, + "Microsoft.Win32.Primitives/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-9ZQKCWxH7Ijp9BfahvL2Zyf1cJIk8XYLF6Yjzr2yi0b2cOut/HQ31qf1ThHAgCc3WiZMdnWcfJCgN82/0UunxA==", + "path": "microsoft.win32.primitives/4.3.0", + "hashPath": "microsoft.win32.primitives.4.3.0.nupkg.sha512" + }, + "Microsoft.Win32.Registry/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-Lw1/VwLH1yxz6SfFEjVRCN0pnflLEsWgnV4qsdJ512/HhTwnKXUG+zDQ4yTO3K/EJQemGoNaBHX5InISNKTzUQ==", + "path": "microsoft.win32.registry/4.3.0", + "hashPath": "microsoft.win32.registry.4.3.0.nupkg.sha512" + }, + "NETStandard.Library/2.0.3": { + "type": "package", + "serviceable": true, + "sha512": "sha512-st47PosZSHrjECdjeIzZQbzivYBJFv6P2nv4cj2ypdI204DO+vZ7l5raGMiX4eXMJ53RfOIg+/s4DHVZ54Nu2A==", + "path": "netstandard.library/2.0.3", + "hashPath": "netstandard.library.2.0.3.nupkg.sha512" + }, + "Newtonsoft.Json/10.0.3": { + "type": "package", + "serviceable": true, + "sha512": "sha512-hSXaFmh7hNCuEoC4XNY5DrRkLDzYHqPx/Ik23R4J86Z7PE/Y6YidhG602dFVdLBRSdG6xp9NabH3dXpcoxWvww==", + "path": "newtonsoft.json/10.0.3", + "hashPath": "newtonsoft.json.10.0.3.nupkg.sha512" + }, + "PowerShellStandard.Library/5.1.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-iYaRvQsM1fow9h3uEmio+2m2VXfulgI16AYHaTZ8Sf7erGe27Qc8w/h6QL5UPuwv1aXR40QfzMEwcCeiYJp2cw==", + "path": "powershellstandard.library/5.1.0", + "hashPath": "powershellstandard.library.5.1.0.nupkg.sha512" + }, + "runtime.debian.8-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-HdSSp5MnJSsg08KMfZThpuLPJpPwE5hBXvHwoKWosyHHfe8Mh5WKT0ylEOf6yNzX6Ngjxe4Whkafh5q7Ymac4Q==", + "path": "runtime.debian.8-x64.runtime.native.system.security.cryptography.openssl/4.3.0", + "hashPath": "runtime.debian.8-x64.runtime.native.system.security.cryptography.openssl.4.3.0.nupkg.sha512" + }, + "runtime.fedora.23-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-+yH1a49wJMy8Zt4yx5RhJrxO/DBDByAiCzNwiETI+1S4mPdCu0OY4djdciC7Vssk0l22wQaDLrXxXkp+3+7bVA==", + "path": "runtime.fedora.23-x64.runtime.native.system.security.cryptography.openssl/4.3.0", + "hashPath": "runtime.fedora.23-x64.runtime.native.system.security.cryptography.openssl.4.3.0.nupkg.sha512" + }, + "runtime.fedora.24-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-c3YNH1GQJbfIPJeCnr4avseugSqPrxwIqzthYyZDN6EuOyNOzq+y2KSUfRcXauya1sF4foESTgwM5e1A8arAKw==", + "path": "runtime.fedora.24-x64.runtime.native.system.security.cryptography.openssl/4.3.0", + "hashPath": "runtime.fedora.24-x64.runtime.native.system.security.cryptography.openssl.4.3.0.nupkg.sha512" + }, + "runtime.native.System/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-c/qWt2LieNZIj1jGnVNsE2Kl23Ya2aSTBuXMD6V7k9KWr6l16Tqdwq+hJScEpWER9753NWC8h96PaVNY5Ld7Jw==", + "path": "runtime.native.system/4.3.0", + "hashPath": "runtime.native.system.4.3.0.nupkg.sha512" + }, + "runtime.native.System.Net.Http/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-ZVuZJqnnegJhd2k/PtAbbIcZ3aZeITq3sj06oKfMBSfphW3HDmk/t4ObvbOk/JA/swGR0LNqMksAh/f7gpTROg==", + "path": "runtime.native.system.net.http/4.3.0", + "hashPath": "runtime.native.system.net.http.4.3.0.nupkg.sha512" + }, + "runtime.native.System.Security.Cryptography.Apple/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-DloMk88juo0OuOWr56QG7MNchmafTLYWvABy36izkrLI5VledI0rq28KGs1i9wbpeT9NPQrx/wTf8U2vazqQ3Q==", + "path": "runtime.native.system.security.cryptography.apple/4.3.0", + "hashPath": "runtime.native.system.security.cryptography.apple.4.3.0.nupkg.sha512" + }, + "runtime.native.System.Security.Cryptography.OpenSsl/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-NS1U+700m4KFRHR5o4vo9DSlTmlCKu/u7dtE5sUHVIPB+xpXxYQvgBgA6wEIeCz6Yfn0Z52/72WYsToCEPJnrw==", + "path": "runtime.native.system.security.cryptography.openssl/4.3.0", + "hashPath": "runtime.native.system.security.cryptography.openssl.4.3.0.nupkg.sha512" + }, + "runtime.opensuse.13.2-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-b3pthNgxxFcD+Pc0WSEoC0+md3MyhRS6aCEeenvNE3Fdw1HyJ18ZhRFVJJzIeR/O/jpxPboB805Ho0T3Ul7w8A==", + "path": "runtime.opensuse.13.2-x64.runtime.native.system.security.cryptography.openssl/4.3.0", + "hashPath": "runtime.opensuse.13.2-x64.runtime.native.system.security.cryptography.openssl.4.3.0.nupkg.sha512" + }, + "runtime.opensuse.42.1-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-KeLz4HClKf+nFS7p/6Fi/CqyLXh81FpiGzcmuS8DGi9lUqSnZ6Es23/gv2O+1XVGfrbNmviF7CckBpavkBoIFQ==", + "path": "runtime.opensuse.42.1-x64.runtime.native.system.security.cryptography.openssl/4.3.0", + "hashPath": "runtime.opensuse.42.1-x64.runtime.native.system.security.cryptography.openssl.4.3.0.nupkg.sha512" + }, + "runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography.Apple/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-kVXCuMTrTlxq4XOOMAysuNwsXWpYeboGddNGpIgNSZmv1b6r/s/DPk0fYMB7Q5Qo4bY68o48jt4T4y5BVecbCQ==", + "path": "runtime.osx.10.10-x64.runtime.native.system.security.cryptography.apple/4.3.0", + "hashPath": "runtime.osx.10.10-x64.runtime.native.system.security.cryptography.apple.4.3.0.nupkg.sha512" + }, + "runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-X7IdhILzr4ROXd8mI1BUCQMSHSQwelUlBjF1JyTKCjXaOGn2fB4EKBxQbCK2VjO3WaWIdlXZL3W6TiIVnrhX4g==", + "path": "runtime.osx.10.10-x64.runtime.native.system.security.cryptography.openssl/4.3.0", + "hashPath": "runtime.osx.10.10-x64.runtime.native.system.security.cryptography.openssl.4.3.0.nupkg.sha512" + }, + "runtime.rhel.7-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-nyFNiCk/r+VOiIqreLix8yN+q3Wga9+SE8BCgkf+2BwEKiNx6DyvFjCgkfV743/grxv8jHJ8gUK4XEQw7yzRYg==", + "path": "runtime.rhel.7-x64.runtime.native.system.security.cryptography.openssl/4.3.0", + "hashPath": "runtime.rhel.7-x64.runtime.native.system.security.cryptography.openssl.4.3.0.nupkg.sha512" + }, + "runtime.ubuntu.14.04-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-ytoewC6wGorL7KoCAvRfsgoJPJbNq+64k2SqW6JcOAebWsFUvCCYgfzQMrnpvPiEl4OrblUlhF2ji+Q1+SVLrQ==", + "path": "runtime.ubuntu.14.04-x64.runtime.native.system.security.cryptography.openssl/4.3.0", + "hashPath": "runtime.ubuntu.14.04-x64.runtime.native.system.security.cryptography.openssl.4.3.0.nupkg.sha512" + }, + "runtime.ubuntu.16.04-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-I8bKw2I8k58Wx7fMKQJn2R8lamboCAiHfHeV/pS65ScKWMMI0+wJkLYlEKvgW1D/XvSl/221clBoR2q9QNNM7A==", + "path": "runtime.ubuntu.16.04-x64.runtime.native.system.security.cryptography.openssl/4.3.0", + "hashPath": "runtime.ubuntu.16.04-x64.runtime.native.system.security.cryptography.openssl.4.3.0.nupkg.sha512" + }, + "runtime.ubuntu.16.10-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-VB5cn/7OzUfzdnC8tqAIMQciVLiq2epm2NrAm1E9OjNRyG4lVhfR61SMcLizejzQP8R8Uf/0l5qOIbUEi+RdEg==", + "path": "runtime.ubuntu.16.10-x64.runtime.native.system.security.cryptography.openssl/4.3.0", + "hashPath": "runtime.ubuntu.16.10-x64.runtime.native.system.security.cryptography.openssl.4.3.0.nupkg.sha512" + }, + "System.Buffers/4.5.1": { + "type": "package", + "serviceable": true, + "sha512": "sha512-Rw7ijyl1qqRS0YQD/WycNst8hUUMgrMH4FCn1nNm27M4VxchZ1js3fVjQaANHO5f3sN4isvP4a+Met9Y4YomAg==", + "path": "system.buffers/4.5.1", + "hashPath": "system.buffers.4.5.1.nupkg.sha512" + }, + "System.Collections/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-3Dcj85/TBdVpL5Zr+gEEBUuFe2icOnLalmEh9hfck1PTYbbyWuZgh4fmm2ysCLTrqLQw6t3TgTyJ+VLp+Qb+Lw==", + "path": "system.collections/4.3.0", + "hashPath": "system.collections.4.3.0.nupkg.sha512" + }, + "System.Collections.Concurrent/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-ztl69Xp0Y/UXCL+3v3tEU+lIy+bvjKNUmopn1wep/a291pVPK7dxBd6T7WnlQqRog+d1a/hSsgRsmFnIBKTPLQ==", + "path": "system.collections.concurrent/4.3.0", + "hashPath": "system.collections.concurrent.4.3.0.nupkg.sha512" + }, + "System.Collections.NonGeneric/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-prtjIEMhGUnQq6RnPEYLpFt8AtLbp9yq2zxOSrY7KJJZrw25Fi97IzBqY7iqssbM61Ek5b8f3MG/sG1N2sN5KA==", + "path": "system.collections.nongeneric/4.3.0", + "hashPath": "system.collections.nongeneric.4.3.0.nupkg.sha512" + }, + "System.Collections.Specialized/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-Epx8PoVZR0iuOnJJDzp7pWvdfMMOAvpUo95pC4ScH2mJuXkKA2Y4aR3cG9qt2klHgSons1WFh4kcGW7cSXvrxg==", + "path": "system.collections.specialized/4.3.0", + "hashPath": "system.collections.specialized.4.3.0.nupkg.sha512" + }, + "System.ComponentModel/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-VyGn1jGRZVfxnh8EdvDCi71v3bMXrsu8aYJOwoV7SNDLVhiEqwP86pPMyRGsDsxhXAm2b3o9OIqeETfN5qfezw==", + "path": "system.componentmodel/4.3.0", + "hashPath": "system.componentmodel.4.3.0.nupkg.sha512" + }, + "System.ComponentModel.Primitives/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-j8GUkCpM8V4d4vhLIIoBLGey2Z5bCkMVNjEZseyAlm4n5arcsJOeI3zkUP+zvZgzsbLTYh4lYeP/ZD/gdIAPrw==", + "path": "system.componentmodel.primitives/4.3.0", + "hashPath": "system.componentmodel.primitives.4.3.0.nupkg.sha512" + }, + "System.ComponentModel.TypeConverter/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-16pQ6P+EdhcXzPiEK4kbA953Fu0MNG2ovxTZU81/qsCd1zPRsKc3uif5NgvllCY598k6bI0KUyKW8fanlfaDQg==", + "path": "system.componentmodel.typeconverter/4.3.0", + "hashPath": "system.componentmodel.typeconverter.4.3.0.nupkg.sha512" + }, + "System.Diagnostics.Debug/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-ZUhUOdqmaG5Jk3Xdb8xi5kIyQYAA4PnTNlHx1mu9ZY3qv4ELIdKbnL/akbGaKi2RnNUWaZsAs31rvzFdewTj2g==", + "path": "system.diagnostics.debug/4.3.0", + "hashPath": "system.diagnostics.debug.4.3.0.nupkg.sha512" + }, + "System.Diagnostics.DiagnosticSource/4.6.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-mbBgoR0rRfl2uimsZ2avZY8g7Xnh1Mza0rJZLPcxqiMWlkGukjmRkuMJ/er+AhQuiRIh80CR/Hpeztr80seV5g==", + "path": "system.diagnostics.diagnosticsource/4.6.0", + "hashPath": "system.diagnostics.diagnosticsource.4.6.0.nupkg.sha512" + }, + "System.Diagnostics.Process/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-J0wOX07+QASQblsfxmIMFc9Iq7KTXYL3zs2G/Xc704Ylv3NpuVdo6gij6V3PGiptTxqsK0K7CdXenRvKUnkA2g==", + "path": "system.diagnostics.process/4.3.0", + "hashPath": "system.diagnostics.process.4.3.0.nupkg.sha512" + }, + "System.Diagnostics.Tools/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-UUvkJfSYJMM6x527dJg2VyWPSRqIVB0Z7dbjHst1zmwTXz5CcXSYJFWRpuigfbO1Lf7yfZiIaEUesfnl/g5EyA==", + "path": "system.diagnostics.tools/4.3.0", + "hashPath": "system.diagnostics.tools.4.3.0.nupkg.sha512" + }, + "System.Diagnostics.Tracing/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-rswfv0f/Cqkh78rA5S8eN8Neocz234+emGCtTF3lxPY96F+mmmUen6tbn0glN6PMvlKQb9bPAY5e9u7fgPTkKw==", + "path": "system.diagnostics.tracing/4.3.0", + "hashPath": "system.diagnostics.tracing.4.3.0.nupkg.sha512" + }, + "System.Dynamic.Runtime/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-SNVi1E/vfWUAs/WYKhE9+qlS6KqK0YVhnlT0HQtr8pMIA8YX3lwy3uPMownDwdYISBdmAF/2holEIldVp85Wag==", + "path": "system.dynamic.runtime/4.3.0", + "hashPath": "system.dynamic.runtime.4.3.0.nupkg.sha512" + }, + "System.Globalization/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-kYdVd2f2PAdFGblzFswE4hkNANJBKRmsfa2X5LG2AcWE1c7/4t0pYae1L8vfZ5xvE2nK/R9JprtToA61OSHWIg==", + "path": "system.globalization/4.3.0", + "hashPath": "system.globalization.4.3.0.nupkg.sha512" + }, + "System.Globalization.Calendars/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-GUlBtdOWT4LTV3I+9/PJW+56AnnChTaOqqTLFtdmype/L500M2LIyXgmtd9X2P2VOkmJd5c67H5SaC2QcL1bFA==", + "path": "system.globalization.calendars/4.3.0", + "hashPath": "system.globalization.calendars.4.3.0.nupkg.sha512" + }, + "System.Globalization.Extensions/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-FhKmdR6MPG+pxow6wGtNAWdZh7noIOpdD5TwQ3CprzgIE1bBBoim0vbR1+AWsWjQmU7zXHgQo4TWSP6lCeiWcQ==", + "path": "system.globalization.extensions/4.3.0", + "hashPath": "system.globalization.extensions.4.3.0.nupkg.sha512" + }, + "System.IO/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-3qjaHvxQPDpSOYICjUoTsmoq5u6QJAFRUITgeT/4gqkF1bajbSmb1kwSxEA8AHlofqgcKJcM8udgieRNhaJ5Cg==", + "path": "system.io/4.3.0", + "hashPath": "system.io.4.3.0.nupkg.sha512" + }, + "System.IO.FileSystem/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-3wEMARTnuio+ulnvi+hkRNROYwa1kylvYahhcLk4HSoVdl+xxTFVeVlYOfLwrDPImGls0mDqbMhrza8qnWPTdA==", + "path": "system.io.filesystem/4.3.0", + "hashPath": "system.io.filesystem.4.3.0.nupkg.sha512" + }, + "System.IO.FileSystem.Primitives/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-6QOb2XFLch7bEc4lIcJH49nJN2HV+OC3fHDgsLVsBVBk3Y4hFAnOBGzJ2lUu7CyDDFo9IBWkSsnbkT6IBwwiMw==", + "path": "system.io.filesystem.primitives/4.3.0", + "hashPath": "system.io.filesystem.primitives.4.3.0.nupkg.sha512" + }, + "System.Linq/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-5DbqIUpsDp0dFftytzuMmc0oeMdQwjcP/EWxsksIz/w1TcFRkZ3yKKz0PqiYFMmEwPSWw+qNVqD7PJ889JzHbw==", + "path": "system.linq/4.3.0", + "hashPath": "system.linq.4.3.0.nupkg.sha512" + }, + "System.Linq.Expressions/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-PGKkrd2khG4CnlyJwxwwaWWiSiWFNBGlgXvJpeO0xCXrZ89ODrQ6tjEWS/kOqZ8GwEOUATtKtzp1eRgmYNfclg==", + "path": "system.linq.expressions/4.3.0", + "hashPath": "system.linq.expressions.4.3.0.nupkg.sha512" + }, + "System.Memory/4.5.4": { + "type": "package", + "serviceable": true, + "sha512": "sha512-1MbJTHS1lZ4bS4FmsJjnuGJOu88ZzTT2rLvrhW7Ygic+pC0NWA+3hgAen0HRdsocuQXCkUTdFn9yHJJhsijDXw==", + "path": "system.memory/4.5.4", + "hashPath": "system.memory.4.5.4.nupkg.sha512" + }, + "System.Memory.Data/1.0.2": { + "type": "package", + "serviceable": true, + "sha512": "sha512-JGkzeqgBsiZwKJZ1IxPNsDFZDhUvuEdX8L8BDC8N3KOj+6zMcNU28CNN59TpZE/VJYy9cP+5M+sbxtWJx3/xtw==", + "path": "system.memory.data/1.0.2", + "hashPath": "system.memory.data.1.0.2.nupkg.sha512" + }, + "System.Numerics.Vectors/4.5.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-QQTlPTl06J/iiDbJCiepZ4H//BVraReU4O4EoRw1U02H5TLUIT7xn3GnDp9AXPSlJUDyFs4uWjWafNX6WrAojQ==", + "path": "system.numerics.vectors/4.5.0", + "hashPath": "system.numerics.vectors.4.5.0.nupkg.sha512" + }, + "System.ObjectModel/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-bdX+80eKv9bN6K4N+d77OankKHGn6CH711a6fcOpMQu2Fckp/Ft4L/kW9WznHpyR0NRAvJutzOMHNNlBGvxQzQ==", + "path": "system.objectmodel/4.3.0", + "hashPath": "system.objectmodel.4.3.0.nupkg.sha512" + }, + "System.Private.DataContractSerialization/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-yDaJ2x3mMmjdZEDB4IbezSnCsnjQ4BxinKhRAaP6kEgL6Bb6jANWphs5SzyD8imqeC/3FxgsuXT6ykkiH1uUmA==", + "path": "system.private.datacontractserialization/4.3.0", + "hashPath": "system.private.datacontractserialization.4.3.0.nupkg.sha512" + }, + "System.Private.Uri/4.3.2": { + "type": "package", + "serviceable": true, + "sha512": "sha512-o1+7RJnu3Ik3PazR7Z7tJhjPdE000Eq2KGLLWhqJJKXj04wrS8lwb1OFtDF9jzXXADhUuZNJZlPc98uwwqmpFA==", + "path": "system.private.uri/4.3.2", + "hashPath": "system.private.uri.4.3.2.nupkg.sha512" + }, + "System.Reflection/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-KMiAFoW7MfJGa9nDFNcfu+FpEdiHpWgTcS2HdMpDvt9saK3y/G4GwprPyzqjFH9NTaGPQeWNHU+iDlDILj96aQ==", + "path": "system.reflection/4.3.0", + "hashPath": "system.reflection.4.3.0.nupkg.sha512" + }, + "System.Reflection.Emit/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-228FG0jLcIwTVJyz8CLFKueVqQK36ANazUManGaJHkO0icjiIypKW7YLWLIWahyIkdh5M7mV2dJepllLyA1SKg==", + "path": "system.reflection.emit/4.3.0", + "hashPath": "system.reflection.emit.4.3.0.nupkg.sha512" + }, + "System.Reflection.Emit.ILGeneration/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-59tBslAk9733NXLrUJrwNZEzbMAcu8k344OYo+wfSVygcgZ9lgBdGIzH/nrg3LYhXceynyvTc8t5/GD4Ri0/ng==", + "path": "system.reflection.emit.ilgeneration/4.3.0", + "hashPath": "system.reflection.emit.ilgeneration.4.3.0.nupkg.sha512" + }, + "System.Reflection.Emit.Lightweight/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-oadVHGSMsTmZsAF864QYN1t1QzZjIcuKU3l2S9cZOwDdDueNTrqq1yRj7koFfIGEnKpt6NjpL3rOzRhs4ryOgA==", + "path": "system.reflection.emit.lightweight/4.3.0", + "hashPath": "system.reflection.emit.lightweight.4.3.0.nupkg.sha512" + }, + "System.Reflection.Extensions/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-rJkrJD3kBI5B712aRu4DpSIiHRtr6QlfZSQsb0hYHrDCZORXCFjQfoipo2LaMUHoT9i1B7j7MnfaEKWDFmFQNQ==", + "path": "system.reflection.extensions/4.3.0", + "hashPath": "system.reflection.extensions.4.3.0.nupkg.sha512" + }, + "System.Reflection.Primitives/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-5RXItQz5As4xN2/YUDxdpsEkMhvw3e6aNveFXUn4Hl/udNTCNhnKp8lT9fnc3MhvGKh1baak5CovpuQUXHAlIA==", + "path": "system.reflection.primitives/4.3.0", + "hashPath": "system.reflection.primitives.4.3.0.nupkg.sha512" + }, + "System.Reflection.TypeExtensions/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-7u6ulLcZbyxB5Gq0nMkQttcdBTx57ibzw+4IOXEfR+sXYQoHvjW5LTLyNr8O22UIMrqYbchJQJnos4eooYzYJA==", + "path": "system.reflection.typeextensions/4.3.0", + "hashPath": "system.reflection.typeextensions.4.3.0.nupkg.sha512" + }, + "System.Resources.ResourceManager/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-/zrcPkkWdZmI4F92gL/TPumP98AVDu/Wxr3CSJGQQ+XN6wbRZcyfSKVoPo17ilb3iOr0cCRqJInGwNMolqhS8A==", + "path": "system.resources.resourcemanager/4.3.0", + "hashPath": "system.resources.resourcemanager.4.3.0.nupkg.sha512" + }, + "System.Runtime/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-JufQi0vPQ0xGnAczR13AUFglDyVYt4Kqnz1AZaiKZ5+GICq0/1MH/mO/eAJHt/mHW1zjKBJd7kV26SrxddAhiw==", + "path": "system.runtime/4.3.0", + "hashPath": "system.runtime.4.3.0.nupkg.sha512" + }, + "System.Runtime.CompilerServices.Unsafe/4.7.1": { + "type": "package", + "serviceable": true, + "sha512": "sha512-zOHkQmzPCn5zm/BH+cxC1XbUS3P4Yoi3xzW7eRgVpDR2tPGSzyMZ17Ig1iRkfJuY0nhxkQQde8pgePNiA7z7TQ==", + "path": "system.runtime.compilerservices.unsafe/4.7.1", + "hashPath": "system.runtime.compilerservices.unsafe.4.7.1.nupkg.sha512" + }, + "System.Runtime.Extensions/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-guW0uK0fn5fcJJ1tJVXYd7/1h5F+pea1r7FLSOz/f8vPEqbR2ZAknuRDvTQ8PzAilDveOxNjSfr0CHfIQfFk8g==", + "path": "system.runtime.extensions/4.3.0", + "hashPath": "system.runtime.extensions.4.3.0.nupkg.sha512" + }, + "System.Runtime.Handles/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-OKiSUN7DmTWeYb3l51A7EYaeNMnvxwE249YtZz7yooT4gOZhmTjIn48KgSsw2k2lYdLgTKNJw/ZIfSElwDRVgg==", + "path": "system.runtime.handles/4.3.0", + "hashPath": "system.runtime.handles.4.3.0.nupkg.sha512" + }, + "System.Runtime.InteropServices/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-uv1ynXqiMK8mp1GM3jDqPCFN66eJ5w5XNomaK2XD+TuCroNTLFGeZ+WCmBMcBDyTFKou3P6cR6J/QsaqDp7fGQ==", + "path": "system.runtime.interopservices/4.3.0", + "hashPath": "system.runtime.interopservices.4.3.0.nupkg.sha512" + }, + "System.Runtime.Numerics/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-yMH+MfdzHjy17l2KESnPiF2dwq7T+xLnSJar7slyimAkUh/gTrS9/UQOtv7xarskJ2/XDSNvfLGOBQPjL7PaHQ==", + "path": "system.runtime.numerics/4.3.0", + "hashPath": "system.runtime.numerics.4.3.0.nupkg.sha512" + }, + "System.Runtime.Serialization.Formatters/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-KT591AkTNFOTbhZlaeMVvfax3RqhH1EJlcwF50Wm7sfnBLuHiOeZRRKrr1ns3NESkM20KPZ5Ol/ueMq5vg4QoQ==", + "path": "system.runtime.serialization.formatters/4.3.0", + "hashPath": "system.runtime.serialization.formatters.4.3.0.nupkg.sha512" + }, + "System.Runtime.Serialization.Json/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-CpVfOH0M/uZ5PH+M9+Gu56K0j9lJw3M+PKRegTkcrY/stOIvRUeonggxNrfBYLA5WOHL2j15KNJuTuld3x4o9w==", + "path": "system.runtime.serialization.json/4.3.0", + "hashPath": "system.runtime.serialization.json.4.3.0.nupkg.sha512" + }, + "System.Runtime.Serialization.Primitives/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-Wz+0KOukJGAlXjtKr+5Xpuxf8+c8739RI1C+A2BoQZT+wMCCoMDDdO8/4IRHfaVINqL78GO8dW8G2lW/e45Mcw==", + "path": "system.runtime.serialization.primitives/4.3.0", + "hashPath": "system.runtime.serialization.primitives.4.3.0.nupkg.sha512" + }, + "System.Security.AccessControl/4.5.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-vW8Eoq0TMyz5vAG/6ce483x/CP83fgm4SJe5P8Tb1tZaobcvPrbMEL7rhH1DRdrYbbb6F0vq3OlzmK0Pkwks5A==", + "path": "system.security.accesscontrol/4.5.0", + "hashPath": "system.security.accesscontrol.4.5.0.nupkg.sha512" + }, + "System.Security.Cryptography.Algorithms/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-W1kd2Y8mYSCgc3ULTAZ0hOP2dSdG5YauTb1089T0/kRcN2MpSAW1izOFROrJgxSlMn3ArsgHXagigyi+ibhevg==", + "path": "system.security.cryptography.algorithms/4.3.0", + "hashPath": "system.security.cryptography.algorithms.4.3.0.nupkg.sha512" + }, + "System.Security.Cryptography.Cng/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-03idZOqFlsKRL4W+LuCpJ6dBYDUWReug6lZjBa3uJWnk5sPCUXckocevTaUA8iT/MFSrY/2HXkOt753xQ/cf8g==", + "path": "system.security.cryptography.cng/4.3.0", + "hashPath": "system.security.cryptography.cng.4.3.0.nupkg.sha512" + }, + "System.Security.Cryptography.Csp/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-X4s/FCkEUnRGnwR3aSfVIkldBmtURMhmexALNTwpjklzxWU7yjMk7GHLKOZTNkgnWnE0q7+BCf9N2LVRWxewaA==", + "path": "system.security.cryptography.csp/4.3.0", + "hashPath": "system.security.cryptography.csp.4.3.0.nupkg.sha512" + }, + "System.Security.Cryptography.Encoding/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-1DEWjZZly9ae9C79vFwqaO5kaOlI5q+3/55ohmq/7dpDyDfc8lYe7YVxJUZ5MF/NtbkRjwFRo14yM4OEo9EmDw==", + "path": "system.security.cryptography.encoding/4.3.0", + "hashPath": "system.security.cryptography.encoding.4.3.0.nupkg.sha512" + }, + "System.Security.Cryptography.OpenSsl/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-h4CEgOgv5PKVF/HwaHzJRiVboL2THYCou97zpmhjghx5frc7fIvlkY1jL+lnIQyChrJDMNEXS6r7byGif8Cy4w==", + "path": "system.security.cryptography.openssl/4.3.0", + "hashPath": "system.security.cryptography.openssl.4.3.0.nupkg.sha512" + }, + "System.Security.Cryptography.Primitives/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-7bDIyVFNL/xKeFHjhobUAQqSpJq9YTOpbEs6mR233Et01STBMXNAc/V+BM6dwYGc95gVh/Zf+iVXWzj3mE8DWg==", + "path": "system.security.cryptography.primitives/4.3.0", + "hashPath": "system.security.cryptography.primitives.4.3.0.nupkg.sha512" + }, + "System.Security.Cryptography.ProtectedData/4.5.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-wLBKzFnDCxP12VL9ANydSYhk59fC4cvOr9ypYQLPnAj48NQIhqnjdD2yhP8yEKyBJEjERWS9DisKL7rX5eU25Q==", + "path": "system.security.cryptography.protecteddata/4.5.0", + "hashPath": "system.security.cryptography.protecteddata.4.5.0.nupkg.sha512" + }, + "System.Security.Cryptography.X509Certificates/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-t2Tmu6Y2NtJ2um0RtcuhP7ZdNNxXEgUm2JeoA/0NvlMjAhKCnM1NX07TDl3244mVp3QU6LPEhT3HTtH1uF7IYw==", + "path": "system.security.cryptography.x509certificates/4.3.0", + "hashPath": "system.security.cryptography.x509certificates.4.3.0.nupkg.sha512" + }, + "System.Security.Permissions/4.5.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-9gdyuARhUR7H+p5CjyUB/zPk7/Xut3wUSP8NJQB6iZr8L3XUXTMdoLeVAg9N4rqF8oIpE7MpdqHdDHQ7XgJe0g==", + "path": "system.security.permissions/4.5.0", + "hashPath": "system.security.permissions.4.5.0.nupkg.sha512" + }, + "System.Security.Principal.Windows/4.5.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-U77HfRXlZlOeIXd//Yoj6Jnk8AXlbeisf1oq1os+hxOGVnuG+lGSfGqTwTZBoORFF6j/0q7HXIl8cqwQ9aUGqQ==", + "path": "system.security.principal.windows/4.5.0", + "hashPath": "system.security.principal.windows.4.5.0.nupkg.sha512" + }, + "System.Security.SecureString/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-PnXp38O9q/2Oe4iZHMH60kinScv6QiiL2XH54Pj2t0Y6c2zKPEiAZsM/M3wBOHLNTBDFP0zfy13WN2M0qFz5jg==", + "path": "system.security.securestring/4.3.0", + "hashPath": "system.security.securestring.4.3.0.nupkg.sha512" + }, + "System.Text.Encoding/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-BiIg+KWaSDOITze6jGQynxg64naAPtqGHBwDrLaCtixsa5bKiR8dpPOHA7ge3C0JJQizJE+sfkz1wV+BAKAYZw==", + "path": "system.text.encoding/4.3.0", + "hashPath": "system.text.encoding.4.3.0.nupkg.sha512" + }, + "System.Text.Encoding.Extensions/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-YVMK0Bt/A43RmwizJoZ22ei2nmrhobgeiYwFzC4YAN+nue8RF6djXDMog0UCn+brerQoYVyaS+ghy9P/MUVcmw==", + "path": "system.text.encoding.extensions/4.3.0", + "hashPath": "system.text.encoding.extensions.4.3.0.nupkg.sha512" + }, + "System.Text.Encodings.Web/4.7.2": { + "type": "package", + "serviceable": true, + "sha512": "sha512-iTUgB/WtrZ1sWZs84F2hwyQhiRH6QNjQv2DkwrH+WP6RoFga2Q1m3f9/Q7FG8cck8AdHitQkmkXSY8qylcDmuA==", + "path": "system.text.encodings.web/4.7.2", + "hashPath": "system.text.encodings.web.4.7.2.nupkg.sha512" + }, + "System.Text.Json/4.7.2": { + "type": "package", + "serviceable": true, + "sha512": "sha512-TcMd95wcrubm9nHvJEQs70rC0H/8omiSGGpU4FQ/ZA1URIqD4pjmFJh2Mfv1yH1eHgJDWTi2hMDXwTET+zOOyg==", + "path": "system.text.json/4.7.2", + "hashPath": "system.text.json.4.7.2.nupkg.sha512" + }, + "System.Text.RegularExpressions/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-RpT2DA+L660cBt1FssIE9CAGpLFdFPuheB7pLpKpn6ZXNby7jDERe8Ua/Ne2xGiwLVG2JOqziiaVCGDon5sKFA==", + "path": "system.text.regularexpressions/4.3.0", + "hashPath": "system.text.regularexpressions.4.3.0.nupkg.sha512" + }, + "System.Threading/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-VkUS0kOBcUf3Wwm0TSbrevDDZ6BlM+b/HRiapRFWjM5O0NS0LviG0glKmFK+hhPDd1XFeSdU1GmlLhb2CoVpIw==", + "path": "system.threading/4.3.0", + "hashPath": "system.threading.4.3.0.nupkg.sha512" + }, + "System.Threading.Tasks/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-LbSxKEdOUhVe8BezB/9uOGGppt+nZf6e1VFyw6v3DN6lqitm0OSn2uXMOdtP0M3W4iMcqcivm2J6UgqiwwnXiA==", + "path": "system.threading.tasks/4.3.0", + "hashPath": "system.threading.tasks.4.3.0.nupkg.sha512" + }, + "System.Threading.Tasks.Extensions/4.5.4": { + "type": "package", + "serviceable": true, + "sha512": "sha512-zteT+G8xuGu6mS+mzDzYXbzS7rd3K6Fjb9RiZlYlJPam2/hU7JCBZBVEcywNuR+oZ1ncTvc/cq0faRr3P01OVg==", + "path": "system.threading.tasks.extensions/4.5.4", + "hashPath": "system.threading.tasks.extensions.4.5.4.nupkg.sha512" + }, + "System.Threading.Thread/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-OHmbT+Zz065NKII/ZHcH9XO1dEuLGI1L2k7uYss+9C1jLxTC9kTZZuzUOyXHayRk+dft9CiDf3I/QZ0t8JKyBQ==", + "path": "system.threading.thread/4.3.0", + "hashPath": "system.threading.thread.4.3.0.nupkg.sha512" + }, + "System.Threading.ThreadPool/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-k/+g4b7vjdd4aix83sTgC9VG6oXYKAktSfNIJUNGxPEj7ryEOfzHHhfnmsZvjxawwcD9HyWXKCXmPjX8U4zeSw==", + "path": "system.threading.threadpool/4.3.0", + "hashPath": "system.threading.threadpool.4.3.0.nupkg.sha512" + }, + "System.Xml.ReaderWriter/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-GrprA+Z0RUXaR4N7/eW71j1rgMnEnEVlgii49GZyAjTH7uliMnrOU3HNFBr6fEDBCJCIdlVNq9hHbaDR621XBA==", + "path": "system.xml.readerwriter/4.3.0", + "hashPath": "system.xml.readerwriter.4.3.0.nupkg.sha512" + }, + "System.Xml.XDocument/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-5zJ0XDxAIg8iy+t4aMnQAu0MqVbqyvfoUVl1yDV61xdo3Vth45oA2FoY4pPkxYAH5f8ixpmTqXeEIya95x0aCQ==", + "path": "system.xml.xdocument/4.3.0", + "hashPath": "system.xml.xdocument.4.3.0.nupkg.sha512" + }, + "System.Xml.XmlDocument/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-lJ8AxvkX7GQxpC6GFCeBj8ThYVyQczx2+f/cWHJU8tjS7YfI6Cv6bon70jVEgs2CiFbmmM8b9j1oZVx0dSI2Ww==", + "path": "system.xml.xmldocument/4.3.0", + "hashPath": "system.xml.xmldocument.4.3.0.nupkg.sha512" + }, + "System.Xml.XmlSerializer/4.3.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-MYoTCP7EZ98RrANESW05J5ZwskKDoN0AuZ06ZflnowE50LTpbR5yRg3tHckTVm5j/m47stuGgCrCHWePyHS70Q==", + "path": "system.xml.xmlserializer/4.3.0", + "hashPath": "system.xml.xmlserializer.4.3.0.nupkg.sha512" + }, + "Microsoft.Azure.PowerShell.Authentication/1.0.0": { + "type": "project", + "serviceable": false, + "sha512": "" + }, + "Microsoft.Azure.PowerShell.Authentication.ResourceManager/1.0.0": { + "type": "project", + "serviceable": false, + "sha512": "" + }, + "Microsoft.Azure.PowerShell.Authenticators/1.0.0": { + "type": "project", + "serviceable": false, + "sha512": "" + } + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/modules/Az.Accounts/2.7.5/Microsoft.Azure.PowerShell.Cmdlets.Accounts.dll b/swaggerci/eventgrid/generated/modules/Az.Accounts/2.7.5/Microsoft.Azure.PowerShell.Cmdlets.Accounts.dll new file mode 100644 index 0000000000000000000000000000000000000000..2eff02a0138e8b7f4b1dd9ed2166bf818dffa7ce GIT binary patch literal 461744 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 + + + + Add-AzEnvironment + Add + AzEnvironment + + Adds endpoints and metadata for an instance of Azure Resource Manager. + + + + The Add-AzEnvironment cmdlet adds endpoints and metadata to enable Azure Resource Manager cmdlets to connect with a new instance of Azure Resource Manager. The built-in environments AzureCloud and AzureChinaCloud target existing public instances of Azure Resource Manager. + + + + Add-AzEnvironment + + Name + + Specifies the name of the environment to add. + + System.String + + System.String + + + None + + + PublishSettingsFileUrl + + Specifies the URL from which .publishsettings files can be downloaded. + + System.String + + System.String + + + None + + + AzureKeyVaultDnsSuffix + + Dns suffix of Azure Key Vault service. Example is vault-int.azure-int.net + + System.String + + System.String + + + None + + + AzureKeyVaultServiceEndpointResourceId + + Resource identifier of Azure Key Vault data service that is the recipient of the requested token. + + System.String + + System.String + + + None + + + TrafficManagerDnsSuffix + + Specifies the domain-name suffix for Azure Traffic Manager services. + + System.String + + System.String + + + None + + + SqlDatabaseDnsSuffix + + Specifies the domain-name suffix for Azure SQL Database servers. + + System.String + + System.String + + + None + + + AzureDataLakeStoreFileSystemEndpointSuffix + + Dns Suffix of Azure Data Lake Store FileSystem. Example: azuredatalake.net + + System.String + + System.String + + + None + + + AzureDataLakeAnalyticsCatalogAndJobEndpointSuffix + + Dns Suffix of Azure Data Lake Analytics job and catalog services + + System.String + + System.String + + + None + + + EnableAdfsAuthentication + + Indicates that Active Directory Federation Services (ADFS) on-premise authentication is allowed. + + + System.Management.Automation.SwitchParameter + + + False + + + AdTenant + + Specifies the default Active Directory tenant. + + System.String + + System.String + + + None + + + GraphAudience + + The audience for tokens authenticating with the AD Graph Endpoint. + + System.String + + System.String + + + None + + + DataLakeAudience + + The audience for tokens authenticating with the AD Data Lake services Endpoint. + + System.String + + System.String + + + None + + + ServiceEndpoint + + Specifies the endpoint for Service Management (RDFE) requests. + + System.String + + System.String + + + None + + + BatchEndpointResourceId + + The resource identifier of the Azure Batch service that is the recipient of the requested token + + System.String + + System.String + + + None + + + AzureOperationalInsightsEndpointResourceId + + The audience for tokens authenticating with the Azure Log Analytics API. + + System.String + + System.String + + + None + + + AzureOperationalInsightsEndpoint + + The endpoint to use when communicating with the Azure Log Analytics API. + + System.String + + System.String + + + None + + + ManagementPortalUrl + + Specifies the URL for the Management Portal. + + System.String + + System.String + + + None + + + StorageEndpoint + + Specifies the endpoint for storage (blob, table, queue, and file) access. + + System.String + + System.String + + + None + + + ActiveDirectoryEndpoint + + Specifies the base authority for Azure Active Directory authentication. + + System.String + + System.String + + + None + + + ResourceManagerEndpoint + + Specifies the URL for Azure Resource Manager requests. + + System.String + + System.String + + + None + + + GalleryEndpoint + + Specifies the endpoint for the Azure Resource Manager gallery of deployment templates. + + System.String + + System.String + + + None + + + ActiveDirectoryServiceEndpointResourceId + + Specifies the audience for tokens that authenticate requests to Azure Resource Manager or Service Management (RDFE) endpoints. + + System.String + + System.String + + + None + + + GraphEndpoint + + Specifies the URL for Graph (Active Directory metadata) requests. + + System.String + + System.String + + + None + + + AzureAnalysisServicesEndpointResourceId + + The resource identifier of the Azure Analysis Services resource. + + System.String + + System.String + + + None + + + AzureAnalysisServicesEndpointSuffix + + The endpoint to use when communicating with the Azure Log Analytics API. + + System.String + + System.String + + + None + + + AzureAttestationServiceEndpointResourceId + + The The resource identifier of the Azure Attestation service that is the recipient of the requested token. + + System.String + + System.String + + + None + + + AzureAttestationServiceEndpointSuffix + + Dns suffix of Azure Attestation service. + + System.String + + System.String + + + None + + + AzureSynapseAnalyticsEndpointResourceId + + The The resource identifier of the Azure Synapse Analytics that is the recipient of the requested token. + + System.String + + System.String + + + None + + + AzureSynapseAnalyticsEndpointSuffix + + Dns suffix of Azure Synapse Analytics. + + System.String + + System.String + + + None + + + ContainerRegistryEndpointSuffix + + Suffix of Azure Container Registry. + + System.String + + System.String + + + None + + + DefaultProfile + + The credentials, tenant and subscription used for communication with azure + + Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer + + Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer + + + None + + + MicrosoftGraphEndpointResourceId + + The resource identifier of Microsoft Graph + + System.String + + System.String + + + None + + + MicrosoftGraphUrl + + Microsoft Graph Url + + System.String + + System.String + + + None + + + Scope + + Determines the scope of context changes, for example, whether changes apply only to the current process, or to all sessions started by this user. + + + Process + CurrentUser + + Microsoft.Azure.Commands.Profile.Common.ContextModificationScope + + Microsoft.Azure.Commands.Profile.Common.ContextModificationScope + + + None + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + + System.Management.Automation.SwitchParameter + + + False + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + + System.Management.Automation.SwitchParameter + + + False + + + + Add-AzEnvironment + + Name + + Specifies the name of the environment to add. + + System.String + + System.String + + + None + + + ARMEndpoint + + The Azure Resource Manager endpoint + + System.String + + System.String + + + None + + + AzureKeyVaultDnsSuffix + + Dns suffix of Azure Key Vault service. Example is vault-int.azure-int.net + + System.String + + System.String + + + None + + + AzureKeyVaultServiceEndpointResourceId + + Resource identifier of Azure Key Vault data service that is the recipient of the requested token. + + System.String + + System.String + + + None + + + DataLakeAudience + + The audience for tokens authenticating with the AD Data Lake services Endpoint. + + System.String + + System.String + + + None + + + BatchEndpointResourceId + + The resource identifier of the Azure Batch service that is the recipient of the requested token + + System.String + + System.String + + + None + + + AzureOperationalInsightsEndpointResourceId + + The audience for tokens authenticating with the Azure Log Analytics API. + + System.String + + System.String + + + None + + + AzureOperationalInsightsEndpoint + + The endpoint to use when communicating with the Azure Log Analytics API. + + System.String + + System.String + + + None + + + StorageEndpoint + + Specifies the endpoint for storage (blob, table, queue, and file) access. + + System.String + + System.String + + + None + + + AzureAnalysisServicesEndpointResourceId + + The resource identifier of the Azure Analysis Services resource. + + System.String + + System.String + + + None + + + AzureAnalysisServicesEndpointSuffix + + The endpoint to use when communicating with the Azure Log Analytics API. + + System.String + + System.String + + + None + + + AzureAttestationServiceEndpointResourceId + + The The resource identifier of the Azure Attestation service that is the recipient of the requested token. + + System.String + + System.String + + + None + + + AzureAttestationServiceEndpointSuffix + + Dns suffix of Azure Attestation service. + + System.String + + System.String + + + None + + + AzureSynapseAnalyticsEndpointResourceId + + The The resource identifier of the Azure Synapse Analytics that is the recipient of the requested token. + + System.String + + System.String + + + None + + + AzureSynapseAnalyticsEndpointSuffix + + Dns suffix of Azure Synapse Analytics. + + System.String + + System.String + + + None + + + ContainerRegistryEndpointSuffix + + Suffix of Azure Container Registry. + + System.String + + System.String + + + None + + + DefaultProfile + + The credentials, tenant and subscription used for communication with azure + + Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer + + Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer + + + None + + + Scope + + Determines the scope of context changes, for example, whether changes apply only to the current process, or to all sessions started by this user. + + + Process + CurrentUser + + Microsoft.Azure.Commands.Profile.Common.ContextModificationScope + + Microsoft.Azure.Commands.Profile.Common.ContextModificationScope + + + None + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + + System.Management.Automation.SwitchParameter + + + False + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + + System.Management.Automation.SwitchParameter + + + False + + + + Add-AzEnvironment + + AutoDiscover + + Discovers environments via default or configured endpoint. + + + System.Management.Automation.SwitchParameter + + + False + + + DefaultProfile + + The credentials, tenant and subscription used for communication with azure + + Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer + + Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer + + + None + + + Scope + + Determines the scope of context changes, for example, whether changes apply only to the current process, or to all sessions started by this user. + + + Process + CurrentUser + + Microsoft.Azure.Commands.Profile.Common.ContextModificationScope + + Microsoft.Azure.Commands.Profile.Common.ContextModificationScope + + + None + + + Uri + + Specifies URI of the internet resource to fetch environments. + + System.Uri + + System.Uri + + + None + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + + System.Management.Automation.SwitchParameter + + + False + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + + System.Management.Automation.SwitchParameter + + + False + + + + + + ActiveDirectoryEndpoint + + Specifies the base authority for Azure Active Directory authentication. + + System.String + + System.String + + + None + + + ActiveDirectoryServiceEndpointResourceId + + Specifies the audience for tokens that authenticate requests to Azure Resource Manager or Service Management (RDFE) endpoints. + + System.String + + System.String + + + None + + + AdTenant + + Specifies the default Active Directory tenant. + + System.String + + System.String + + + None + + + ARMEndpoint + + The Azure Resource Manager endpoint + + System.String + + System.String + + + None + + + AutoDiscover + + Discovers environments via default or configured endpoint. + + System.Management.Automation.SwitchParameter + + System.Management.Automation.SwitchParameter + + + False + + + AzureAnalysisServicesEndpointResourceId + + The resource identifier of the Azure Analysis Services resource. + + System.String + + System.String + + + None + + + AzureAnalysisServicesEndpointSuffix + + The endpoint to use when communicating with the Azure Log Analytics API. + + System.String + + System.String + + + None + + + AzureAttestationServiceEndpointResourceId + + The The resource identifier of the Azure Attestation service that is the recipient of the requested token. + + System.String + + System.String + + + None + + + AzureAttestationServiceEndpointSuffix + + Dns suffix of Azure Attestation service. + + System.String + + System.String + + + None + + + AzureDataLakeAnalyticsCatalogAndJobEndpointSuffix + + Dns Suffix of Azure Data Lake Analytics job and catalog services + + System.String + + System.String + + + None + + + AzureDataLakeStoreFileSystemEndpointSuffix + + Dns Suffix of Azure Data Lake Store FileSystem. Example: azuredatalake.net + + System.String + + System.String + + + None + + + AzureKeyVaultDnsSuffix + + Dns suffix of Azure Key Vault service. Example is vault-int.azure-int.net + + System.String + + System.String + + + None + + + AzureKeyVaultServiceEndpointResourceId + + Resource identifier of Azure Key Vault data service that is the recipient of the requested token. + + System.String + + System.String + + + None + + + AzureOperationalInsightsEndpoint + + The endpoint to use when communicating with the Azure Log Analytics API. + + System.String + + System.String + + + None + + + AzureOperationalInsightsEndpointResourceId + + The audience for tokens authenticating with the Azure Log Analytics API. + + System.String + + System.String + + + None + + + AzureSynapseAnalyticsEndpointResourceId + + The The resource identifier of the Azure Synapse Analytics that is the recipient of the requested token. + + System.String + + System.String + + + None + + + AzureSynapseAnalyticsEndpointSuffix + + Dns suffix of Azure Synapse Analytics. + + System.String + + System.String + + + None + + + BatchEndpointResourceId + + The resource identifier of the Azure Batch service that is the recipient of the requested token + + System.String + + System.String + + + None + + + ContainerRegistryEndpointSuffix + + Suffix of Azure Container Registry. + + System.String + + System.String + + + None + + + DataLakeAudience + + The audience for tokens authenticating with the AD Data Lake services Endpoint. + + System.String + + System.String + + + None + + + DefaultProfile + + The credentials, tenant and subscription used for communication with azure + + Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer + + Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer + + + None + + + EnableAdfsAuthentication + + Indicates that Active Directory Federation Services (ADFS) on-premise authentication is allowed. + + System.Management.Automation.SwitchParameter + + System.Management.Automation.SwitchParameter + + + False + + + GalleryEndpoint + + Specifies the endpoint for the Azure Resource Manager gallery of deployment templates. + + System.String + + System.String + + + None + + + GraphAudience + + The audience for tokens authenticating with the AD Graph Endpoint. + + System.String + + System.String + + + None + + + GraphEndpoint + + Specifies the URL for Graph (Active Directory metadata) requests. + + System.String + + System.String + + + None + + + ManagementPortalUrl + + Specifies the URL for the Management Portal. + + System.String + + System.String + + + None + + + MicrosoftGraphEndpointResourceId + + The resource identifier of Microsoft Graph + + System.String + + System.String + + + None + + + MicrosoftGraphUrl + + Microsoft Graph Url + + System.String + + System.String + + + None + + + Name + + Specifies the name of the environment to add. + + System.String + + System.String + + + None + + + PublishSettingsFileUrl + + Specifies the URL from which .publishsettings files can be downloaded. + + System.String + + System.String + + + None + + + ResourceManagerEndpoint + + Specifies the URL for Azure Resource Manager requests. + + System.String + + System.String + + + None + + + Scope + + Determines the scope of context changes, for example, whether changes apply only to the current process, or to all sessions started by this user. + + Microsoft.Azure.Commands.Profile.Common.ContextModificationScope + + Microsoft.Azure.Commands.Profile.Common.ContextModificationScope + + + None + + + ServiceEndpoint + + Specifies the endpoint for Service Management (RDFE) requests. + + System.String + + System.String + + + None + + + SqlDatabaseDnsSuffix + + Specifies the domain-name suffix for Azure SQL Database servers. + + System.String + + System.String + + + None + + + StorageEndpoint + + Specifies the endpoint for storage (blob, table, queue, and file) access. + + System.String + + System.String + + + None + + + TrafficManagerDnsSuffix + + Specifies the domain-name suffix for Azure Traffic Manager services. + + System.String + + System.String + + + None + + + Uri + + Specifies URI of the internet resource to fetch environments. + + System.Uri + + System.Uri + + + None + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + System.Management.Automation.SwitchParameter + + System.Management.Automation.SwitchParameter + + + False + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + System.Management.Automation.SwitchParameter + + System.Management.Automation.SwitchParameter + + + False + + + + + + System.String + + + + + + + + System.Management.Automation.SwitchParameter + + + + + + + + + + Microsoft.Azure.Commands.Profile.Models.PSAzureEnvironment + + + + + + + + + + + + + + ----- Example 1: Creating and modifying a new environment ----- + Add-AzEnvironment -Name TestEnvironment ` + -ActiveDirectoryEndpoint TestADEndpoint ` + -ActiveDirectoryServiceEndpointResourceId TestADApplicationId ` + -ResourceManagerEndpoint TestRMEndpoint ` + -GalleryEndpoint TestGalleryEndpoint ` + -GraphEndpoint TestGraphEndpoint + +Name Resource Manager Url ActiveDirectory Authority +---- -------------------- ------------------------- +TestEnvironment TestRMEndpoint TestADEndpoint/ + +Set-AzEnvironment -Name TestEnvironment ` + -ActiveDirectoryEndpoint NewTestADEndpoint ` + -GraphEndpoint NewTestGraphEndpoint | Format-List + +Name : TestEnvironment +EnableAdfsAuthentication : False +OnPremise : False +ActiveDirectoryServiceEndpointResourceId : TestADApplicationId +AdTenant : +GalleryUrl : TestGalleryEndpoint +ManagementPortalUrl : +ServiceManagementUrl : +PublishSettingsFileUrl : +ResourceManagerUrl : TestRMEndpoint +SqlDatabaseDnsSuffix : +StorageEndpointSuffix : +ActiveDirectoryAuthority : NewTestADEndpoint +GraphUrl : NewTestGraphEndpoint +GraphEndpointResourceId : +TrafficManagerDnsSuffix : +AzureKeyVaultDnsSuffix : +DataLakeEndpointResourceId : +AzureDataLakeStoreFileSystemEndpointSuffix : +AzureDataLakeAnalyticsCatalogAndJobEndpointSuffix : +AzureKeyVaultServiceEndpointResourceId : +AzureOperationalInsightsEndpointResourceId : +AzureOperationalInsightsEndpoint : +AzureAnalysisServicesEndpointSuffix : +AzureAttestationServiceEndpointSuffix : +AzureAttestationServiceEndpointResourceId : +AzureSynapseAnalyticsEndpointSuffix : +AzureSynapseAnalyticsEndpointResourceId : +VersionProfiles : {} +ExtendedProperties : {} +BatchEndpointResourceId : + + In this example we are creating a new Azure environment with sample endpoints using Add-AzEnvironment, and then we are changing the value of the ActiveDirectoryEndpoint and GraphEndpoint attributes of the created environment using the cmdlet Set-AzEnvironment. + + + + + + ------- Example 2: Discovering a new environment via Uri ------- + <# +Uri https://configuredmetadata.net returns an array of environment metadata. The following example contains a payload for the AzureCloud default environment. + +[ + { + "portal": "https://portal.azure.com", + "authentication": { + "loginEndpoint": "https://login.microsoftonline.com/", + "audiences": [ + "https://management.core.windows.net/" + ], + "tenant": "common", + "identityProvider": "AAD" + }, + "media": "https://rest.media.azure.net", + "graphAudience": "https://graph.windows.net/", + "graph": "https://graph.windows.net/", + "name": "AzureCloud", + "suffixes": { + "azureDataLakeStoreFileSystem": "azuredatalakestore.net", + "acrLoginServer": "azurecr.io", + "sqlServerHostname": ".database.windows.net", + "azureDataLakeAnalyticsCatalogAndJob": "azuredatalakeanalytics.net", + "keyVaultDns": "vault.azure.net", + "storage": "core.windows.net", + "azureFrontDoorEndpointSuffix": "azurefd.net" + }, + "batch": "https://batch.core.windows.net/", + "resourceManager": "https://management.azure.com/", + "vmImageAliasDoc": "https://raw.githubusercontent.com/Azure/azure-rest-api-specs/master/arm-compute/quickstart-templates/aliases.json", + "activeDirectoryDataLake": "https://datalake.azure.net/", + "sqlManagement": "https://management.core.windows.net:8443/", + "gallery": "https://gallery.azure.com/" + }, +…… +] +#> + +Add-AzEnvironment -AutoDiscover -Uri https://configuredmetadata.net + +Name Resource Manager Url ActiveDirectory Authority +---- -------------------- ------------------------- +TestEnvironment TestRMEndpoint TestADEndpoint/ + + In this example, we are discovering a new Azure environment from the `https://configuredmetadata.net` Uri. + + + + + + + + Online Version: + https://docs.microsoft.com/powershell/module/az.accounts/add-azenvironment + + + Get-AzEnvironment + + + + Remove-AzEnvironment + + + + Set-AzEnvironment + + + + + + + Clear-AzContext + Clear + AzContext + + Remove all Azure credentials, account, and subscription information. + + + + Remove all Azure Credentials, account, and subscription information. + + + + Clear-AzContext + + DefaultProfile + + The credentials, tenant and subscription used for communication with azure + + Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer + + Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer + + + None + + + Force + + Delete all users and groups from the global scope without prompting + + + System.Management.Automation.SwitchParameter + + + False + + + PassThru + + Return a value indicating success or failure + + + System.Management.Automation.SwitchParameter + + + False + + + Scope + + Clear the context only for the current PowerShell session, or for all sessions. + + + Process + CurrentUser + + Microsoft.Azure.Commands.Profile.Common.ContextModificationScope + + Microsoft.Azure.Commands.Profile.Common.ContextModificationScope + + + None + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + + System.Management.Automation.SwitchParameter + + + False + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + + System.Management.Automation.SwitchParameter + + + False + + + + + + DefaultProfile + + The credentials, tenant and subscription used for communication with azure + + Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer + + Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer + + + None + + + Force + + Delete all users and groups from the global scope without prompting + + System.Management.Automation.SwitchParameter + + System.Management.Automation.SwitchParameter + + + False + + + PassThru + + Return a value indicating success or failure + + System.Management.Automation.SwitchParameter + + System.Management.Automation.SwitchParameter + + + False + + + Scope + + Clear the context only for the current PowerShell session, or for all sessions. + + Microsoft.Azure.Commands.Profile.Common.ContextModificationScope + + Microsoft.Azure.Commands.Profile.Common.ContextModificationScope + + + None + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + System.Management.Automation.SwitchParameter + + System.Management.Automation.SwitchParameter + + + False + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + System.Management.Automation.SwitchParameter + + System.Management.Automation.SwitchParameter + + + False + + + + + + None + + + + + + + + + + System.Boolean + + + + + + + + + + + + + + --------------- Example 1: Clear global context --------------- + Clear-AzContext -Scope CurrentUser + + Remove all account, subscription, and credential information for any powershell session. + + + + + + + + Online Version: + https://docs.microsoft.com/powershell/module/az.accounts/clear-azcontext + + + + + + Clear-AzDefault + Clear + AzDefault + + Clears the defaults set by the user in the current context. + + + + The Clear-AzDefault cmdlet removes the defaults set by the user depending on the switch parameters specified by the user. + + + + Clear-AzDefault + + DefaultProfile + + The credentials, account, tenant, and subscription used for communication with azure. + + Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer + + Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer + + + None + + + Force + + Remove all defaults if no default is specified + + + System.Management.Automation.SwitchParameter + + + False + + + PassThru + + {{Fill PassThru Description}} + + + System.Management.Automation.SwitchParameter + + + False + + + ResourceGroup + + Clear Default Resource Group + + + System.Management.Automation.SwitchParameter + + + False + + + Scope + + Determines the scope of context changes, for example, whether changes apply only to the current process, or to all sessions started by this user. + + + Process + CurrentUser + + Microsoft.Azure.Commands.Profile.Common.ContextModificationScope + + Microsoft.Azure.Commands.Profile.Common.ContextModificationScope + + + None + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + + System.Management.Automation.SwitchParameter + + + False + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + + System.Management.Automation.SwitchParameter + + + False + + + + + + DefaultProfile + + The credentials, account, tenant, and subscription used for communication with azure. + + Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer + + Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer + + + None + + + Force + + Remove all defaults if no default is specified + + System.Management.Automation.SwitchParameter + + System.Management.Automation.SwitchParameter + + + False + + + PassThru + + {{Fill PassThru Description}} + + System.Management.Automation.SwitchParameter + + System.Management.Automation.SwitchParameter + + + False + + + ResourceGroup + + Clear Default Resource Group + + System.Management.Automation.SwitchParameter + + System.Management.Automation.SwitchParameter + + + False + + + Scope + + Determines the scope of context changes, for example, whether changes apply only to the current process, or to all sessions started by this user. + + Microsoft.Azure.Commands.Profile.Common.ContextModificationScope + + Microsoft.Azure.Commands.Profile.Common.ContextModificationScope + + + None + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + System.Management.Automation.SwitchParameter + + System.Management.Automation.SwitchParameter + + + False + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + System.Management.Automation.SwitchParameter + + System.Management.Automation.SwitchParameter + + + False + + + + + + System.Management.Automation.SwitchParameter + + + + + + + + + + System.Boolean + + + + + + + + + + + + + + -------------------------- Example 1 -------------------------- + Clear-AzDefault + + This command removes all the defaults set by the user in the current context. + + + + + + -------------------------- Example 2 -------------------------- + Clear-AzDefault -ResourceGroup + + This command removes the default resource group set by the user in the current context. + + + + + + + + Online Version: + https://docs.microsoft.com/powershell/module/az.accounts/clear-azdefault + + + + + + Connect-AzAccount + Connect + AzAccount + + Connect to Azure with an authenticated account for use with cmdlets from the Az PowerShell modules. + + + + The `Connect-AzAccount` cmdlet connects to Azure with an authenticated account for use with cmdlets from the Az PowerShell modules. You can use this authenticated account only with Azure Resource Manager requests. To add an authenticated account for use with Service Management, use the `Add-AzureAccount` cmdlet from the Azure PowerShell module. If no context is found for the current user, the user's context list is populated with a context for each of their first 25 subscriptions. The list of contexts created for the user can be found by running `Get-AzContext -ListAvailable`. To skip this context population, specify the SkipContextPopulation switch parameter. After executing this cmdlet, you can disconnect from an Azure account using `Disconnect-AzAccount`. + + + + Connect-AzAccount + + AccessToken + + Specifies an access token. + > [!CAUTION] > Access tokens are a type of credential. You should take the appropriate security precautions to > keep them confidential. Access tokens also timeout and may prevent long running tasks from > completing. + + System.String + + System.String + + + None + + + AccountId + + Account Id / User Id / User Name to login with in Default (UserWithSubscriptionId) parameter set; Account ID for access token in AccessToken parameter set; Account ID for managed service in ManagedService parameter set. Can be a managed service resource ID, or the associated client ID. To use the system assigned identity, leave this field blank. + + System.String + + System.String + + + None + + + ContextName + + Name of the default Azure context for this login. For more information about Azure contexts, see Azure PowerShell context objects (/powershell/azure/context-persistence). + + System.String + + System.String + + + None + + + DefaultProfile + + The credentials, account, tenant, and subscription used for communication with Azure. + + Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer + + Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer + + + None + + + Environment + + Environment containing the Azure account. + + System.String + + System.String + + + None + + + Force + + Overwrite the existing context with the same name without prompting. + + + System.Management.Automation.SwitchParameter + + + False + + + GraphAccessToken + + AccessToken for Graph Service. + + System.String + + System.String + + + None + + + KeyVaultAccessToken + + AccessToken for KeyVault Service. + + System.String + + System.String + + + None + + + MaxContextPopulation + + Max subscription number to populate contexts after login. Default is 25. To populate all subscriptions to contexts, set to -1. + + System.Int32 + + System.Int32 + + + None + + + MicrosoftGraphAccessToken + + Access token to Microsoft Graph + + System.String + + System.String + + + None + + + Scope + + Determines the scope of context changes, for example, whether changes apply only to the current process, or to all sessions started by this user. + + + Process + CurrentUser + + Microsoft.Azure.Commands.Profile.Common.ContextModificationScope + + Microsoft.Azure.Commands.Profile.Common.ContextModificationScope + + + None + + + SkipContextPopulation + + Skips context population if no contexts are found. + + + System.Management.Automation.SwitchParameter + + + False + + + SkipValidation + + Skip validation for access token. + + + System.Management.Automation.SwitchParameter + + + False + + + Subscription + + Subscription Name or ID. + + System.String + + System.String + + + None + + + Tenant + + Optional tenant name or ID. + > [!NOTE] > Due to limitations of the current API, you must use a tenant ID instead of a tenant name when > connecting with a business-to-business (B2B) account. + + System.String + + System.String + + + None + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + + System.Management.Automation.SwitchParameter + + + False + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + + System.Management.Automation.SwitchParameter + + + False + + + + Connect-AzAccount + + AccountId + + Account Id / User Id / User Name to login with in Default (UserWithSubscriptionId) parameter set; Account ID for access token in AccessToken parameter set; Account ID for managed service in ManagedService parameter set. Can be a managed service resource ID, or the associated client ID. To use the system assigned identity, leave this field blank. + + System.String + + System.String + + + None + + + AuthScope + + Optional OAuth scope for login, supported pre-defined values: AadGraph, AnalysisServices, Attestation, Batch, DataLake, KeyVault, OperationalInsights, Storage, Synapse. It also supports resource id like `https://storage.azure.com/`. + + System.String + + System.String + + + None + + + ContextName + + Name of the default Azure context for this login. For more information about Azure contexts, see Azure PowerShell context objects (/powershell/azure/context-persistence). + + System.String + + System.String + + + None + + + DefaultProfile + + The credentials, account, tenant, and subscription used for communication with Azure. + + Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer + + Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer + + + None + + + Environment + + Environment containing the Azure account. + + System.String + + System.String + + + None + + + Force + + Overwrite the existing context with the same name without prompting. + + + System.Management.Automation.SwitchParameter + + + False + + + MaxContextPopulation + + Max subscription number to populate contexts after login. Default is 25. To populate all subscriptions to contexts, set to -1. + + System.Int32 + + System.Int32 + + + None + + + Scope + + Determines the scope of context changes, for example, whether changes apply only to the current process, or to all sessions started by this user. + + + Process + CurrentUser + + Microsoft.Azure.Commands.Profile.Common.ContextModificationScope + + Microsoft.Azure.Commands.Profile.Common.ContextModificationScope + + + None + + + SkipContextPopulation + + Skips context population if no contexts are found. + + + System.Management.Automation.SwitchParameter + + + False + + + Subscription + + Subscription Name or ID. + + System.String + + System.String + + + None + + + Tenant + + Optional tenant name or ID. + > [!NOTE] > Due to limitations of the current API, you must use a tenant ID instead of a tenant name when > connecting with a business-to-business (B2B) account. + + System.String + + System.String + + + None + + + UseDeviceAuthentication + + Use device code authentication instead of a browser control. + + + System.Management.Automation.SwitchParameter + + + False + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + + System.Management.Automation.SwitchParameter + + + False + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + + System.Management.Automation.SwitchParameter + + + False + + + + Connect-AzAccount + + AccountId + + Account Id / User Id / User Name to login with in Default (UserWithSubscriptionId) parameter set; Account ID for access token in AccessToken parameter set; Account ID for managed service in ManagedService parameter set. Can be a managed service resource ID, or the associated client ID. To use the system assigned identity, leave this field blank. + + System.String + + System.String + + + None + + + AuthScope + + Optional OAuth scope for login, supported pre-defined values: AadGraph, AnalysisServices, Attestation, Batch, DataLake, KeyVault, OperationalInsights, Storage, Synapse. It also supports resource id like `https://storage.azure.com/`. + + System.String + + System.String + + + None + + + ContextName + + Name of the default Azure context for this login. For more information about Azure contexts, see Azure PowerShell context objects (/powershell/azure/context-persistence). + + System.String + + System.String + + + None + + + DefaultProfile + + The credentials, account, tenant, and subscription used for communication with Azure. + + Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer + + Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer + + + None + + + Environment + + Environment containing the Azure account. + + System.String + + System.String + + + None + + + Force + + Overwrite the existing context with the same name without prompting. + + + System.Management.Automation.SwitchParameter + + + False + + + Identity + + Login using a Managed Service Identity. + + + System.Management.Automation.SwitchParameter + + + False + + + MaxContextPopulation + + Max subscription number to populate contexts after login. Default is 25. To populate all subscriptions to contexts, set to -1. + + System.Int32 + + System.Int32 + + + None + + + Scope + + Determines the scope of context changes, for example, whether changes apply only to the current process, or to all sessions started by this user. + + + Process + CurrentUser + + Microsoft.Azure.Commands.Profile.Common.ContextModificationScope + + Microsoft.Azure.Commands.Profile.Common.ContextModificationScope + + + None + + + SkipContextPopulation + + Skips context population if no contexts are found. + + + System.Management.Automation.SwitchParameter + + + False + + + Subscription + + Subscription Name or ID. + + System.String + + System.String + + + None + + + Tenant + + Optional tenant name or ID. + > [!NOTE] > Due to limitations of the current API, you must use a tenant ID instead of a tenant name when > connecting with a business-to-business (B2B) account. + + System.String + + System.String + + + None + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + + System.Management.Automation.SwitchParameter + + + False + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + + System.Management.Automation.SwitchParameter + + + False + + + + Connect-AzAccount + + ApplicationId + + Application ID of the service principal. + + System.String + + System.String + + + None + + + AuthScope + + Optional OAuth scope for login, supported pre-defined values: AadGraph, AnalysisServices, Attestation, Batch, DataLake, KeyVault, OperationalInsights, Storage, Synapse. It also supports resource id like `https://storage.azure.com/`. + + System.String + + System.String + + + None + + + CertificateThumbprint + + Certificate Hash or Thumbprint. + + System.String + + System.String + + + None + + + ContextName + + Name of the default Azure context for this login. For more information about Azure contexts, see Azure PowerShell context objects (/powershell/azure/context-persistence). + + System.String + + System.String + + + None + + + DefaultProfile + + The credentials, account, tenant, and subscription used for communication with Azure. + + Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer + + Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer + + + None + + + Environment + + Environment containing the Azure account. + + System.String + + System.String + + + None + + + Force + + Overwrite the existing context with the same name without prompting. + + + System.Management.Automation.SwitchParameter + + + False + + + MaxContextPopulation + + Max subscription number to populate contexts after login. Default is 25. To populate all subscriptions to contexts, set to -1. + + System.Int32 + + System.Int32 + + + None + + + Scope + + Determines the scope of context changes, for example, whether changes apply only to the current process, or to all sessions started by this user. + + + Process + CurrentUser + + Microsoft.Azure.Commands.Profile.Common.ContextModificationScope + + Microsoft.Azure.Commands.Profile.Common.ContextModificationScope + + + None + + + SendCertificateChain + + Specifies if the x5c claim (public key of the certificate) should be sent to the STS to achieve easy certificate rollover in Azure AD. + + + System.Management.Automation.SwitchParameter + + + False + + + ServicePrincipal + + Indicates that this account authenticates by providing service principal credentials. + + + System.Management.Automation.SwitchParameter + + + False + + + SkipContextPopulation + + Skips context population if no contexts are found. + + + System.Management.Automation.SwitchParameter + + + False + + + Subscription + + Subscription Name or ID. + + System.String + + System.String + + + None + + + Tenant + + Optional tenant name or ID. + > [!NOTE] > Due to limitations of the current API, you must use a tenant ID instead of a tenant name when > connecting with a business-to-business (B2B) account. + + System.String + + System.String + + + None + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + + System.Management.Automation.SwitchParameter + + + False + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + + System.Management.Automation.SwitchParameter + + + False + + + + Connect-AzAccount + + ApplicationId + + Application ID of the service principal. + + System.String + + System.String + + + None + + + ContextName + + Name of the default Azure context for this login. For more information about Azure contexts, see Azure PowerShell context objects (/powershell/azure/context-persistence). + + System.String + + System.String + + + None + + + DefaultProfile + + The credentials, account, tenant, and subscription used for communication with Azure. + + Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer + + Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer + + + None + + + Environment + + Environment containing the Azure account. + + System.String + + System.String + + + None + + + FederatedToken + + Specifies a token provided by another identity provider. The issuer and subject in this token must be first configured to be trusted by the ApplicationId. + > [!CAUTION] > Federated tokens are a type of credential. You should take the appropriate security precautions to keep them confidential. Federated tokens also timeout and may prevent long running tasks from completing. + + System.String + + System.String + + + None + + + Force + + Overwrite the existing context with the same name without prompting. + + + System.Management.Automation.SwitchParameter + + + False + + + MaxContextPopulation + + Max subscription number to populate contexts after login. Default is 25. To populate all subscriptions to contexts, set to -1. + + System.Int32 + + System.Int32 + + + None + + + Scope + + Determines the scope of context changes, for example, whether changes apply only to the current process, or to all sessions started by this user. + + + Process + CurrentUser + + Microsoft.Azure.Commands.Profile.Common.ContextModificationScope + + Microsoft.Azure.Commands.Profile.Common.ContextModificationScope + + + None + + + ServicePrincipal + + Indicates that this account authenticates by providing service principal credentials. + + + System.Management.Automation.SwitchParameter + + + False + + + SkipContextPopulation + + Skips context population if no contexts are found. + + + System.Management.Automation.SwitchParameter + + + False + + + Subscription + + Subscription Name or ID. + + System.String + + System.String + + + None + + + Tenant + + Optional tenant name or ID. + > [!NOTE] > Due to limitations of the current API, you must use a tenant ID instead of a tenant name when > connecting with a business-to-business (B2B) account. + + System.String + + System.String + + + None + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + + System.Management.Automation.SwitchParameter + + + False + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + + System.Management.Automation.SwitchParameter + + + False + + + + Connect-AzAccount + + ApplicationId + + Application ID of the service principal. + + System.String + + System.String + + + None + + + CertificatePassword + + The password required to access the pkcs#12 certificate file. + + System.Security.SecureString + + System.Security.SecureString + + + None + + + CertificatePath + + The path of certficate file in pkcs#12 format. + + System.String + + System.String + + + None + + + ContextName + + Name of the default Azure context for this login. For more information about Azure contexts, see Azure PowerShell context objects (/powershell/azure/context-persistence). + + System.String + + System.String + + + None + + + DefaultProfile + + The credentials, account, tenant, and subscription used for communication with Azure. + + Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer + + Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer + + + None + + + Environment + + Environment containing the Azure account. + + System.String + + System.String + + + None + + + Force + + Overwrite the existing context with the same name without prompting. + + + System.Management.Automation.SwitchParameter + + + False + + + MaxContextPopulation + + Max subscription number to populate contexts after login. Default is 25. To populate all subscriptions to contexts, set to -1. + + System.Int32 + + System.Int32 + + + None + + + Scope + + Determines the scope of context changes, for example, whether changes apply only to the current process, or to all sessions started by this user. + + + Process + CurrentUser + + Microsoft.Azure.Commands.Profile.Common.ContextModificationScope + + Microsoft.Azure.Commands.Profile.Common.ContextModificationScope + + + None + + + SendCertificateChain + + Specifies if the x5c claim (public key of the certificate) should be sent to the STS to achieve easy certificate rollover in Azure AD. + + + System.Management.Automation.SwitchParameter + + + False + + + ServicePrincipal + + Indicates that this account authenticates by providing service principal credentials. + + + System.Management.Automation.SwitchParameter + + + False + + + SkipContextPopulation + + Skips context population if no contexts are found. + + + System.Management.Automation.SwitchParameter + + + False + + + Subscription + + Subscription Name or ID. + + System.String + + System.String + + + None + + + Tenant + + Optional tenant name or ID. + > [!NOTE] > Due to limitations of the current API, you must use a tenant ID instead of a tenant name when > connecting with a business-to-business (B2B) account. + + System.String + + System.String + + + None + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + + System.Management.Automation.SwitchParameter + + + False + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + + System.Management.Automation.SwitchParameter + + + False + + + + Connect-AzAccount + + AuthScope + + Optional OAuth scope for login, supported pre-defined values: AadGraph, AnalysisServices, Attestation, Batch, DataLake, KeyVault, OperationalInsights, Storage, Synapse. It also supports resource id like `https://storage.azure.com/`. + + System.String + + System.String + + + None + + + ContextName + + Name of the default Azure context for this login. For more information about Azure contexts, see Azure PowerShell context objects (/powershell/azure/context-persistence). + + System.String + + System.String + + + None + + + Credential + + Specifies a PSCredential object. For more information about the PSCredential object, type `Get-Help Get-Credential`. The PSCredential object provides the user ID and password for organizational ID credentials, or the application ID and secret for service principal credentials. + + System.Management.Automation.PSCredential + + System.Management.Automation.PSCredential + + + None + + + DefaultProfile + + The credentials, account, tenant, and subscription used for communication with Azure. + + Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer + + Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer + + + None + + + Environment + + Environment containing the Azure account. + + System.String + + System.String + + + None + + + Force + + Overwrite the existing context with the same name without prompting. + + + System.Management.Automation.SwitchParameter + + + False + + + MaxContextPopulation + + Max subscription number to populate contexts after login. Default is 25. To populate all subscriptions to contexts, set to -1. + + System.Int32 + + System.Int32 + + + None + + + Scope + + Determines the scope of context changes, for example, whether changes apply only to the current process, or to all sessions started by this user. + + + Process + CurrentUser + + Microsoft.Azure.Commands.Profile.Common.ContextModificationScope + + Microsoft.Azure.Commands.Profile.Common.ContextModificationScope + + + None + + + ServicePrincipal + + Indicates that this account authenticates by providing service principal credentials. + + + System.Management.Automation.SwitchParameter + + + False + + + SkipContextPopulation + + Skips context population if no contexts are found. + + + System.Management.Automation.SwitchParameter + + + False + + + Subscription + + Subscription Name or ID. + + System.String + + System.String + + + None + + + Tenant + + Optional tenant name or ID. + > [!NOTE] > Due to limitations of the current API, you must use a tenant ID instead of a tenant name when > connecting with a business-to-business (B2B) account. + + System.String + + System.String + + + None + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + + System.Management.Automation.SwitchParameter + + + False + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + + System.Management.Automation.SwitchParameter + + + False + + + + Connect-AzAccount + + AuthScope + + Optional OAuth scope for login, supported pre-defined values: AadGraph, AnalysisServices, Attestation, Batch, DataLake, KeyVault, OperationalInsights, Storage, Synapse. It also supports resource id like `https://storage.azure.com/`. + + System.String + + System.String + + + None + + + ContextName + + Name of the default Azure context for this login. For more information about Azure contexts, see Azure PowerShell context objects (/powershell/azure/context-persistence). + + System.String + + System.String + + + None + + + Credential + + Specifies a PSCredential object. For more information about the PSCredential object, type `Get-Help Get-Credential`. The PSCredential object provides the user ID and password for organizational ID credentials, or the application ID and secret for service principal credentials. + + System.Management.Automation.PSCredential + + System.Management.Automation.PSCredential + + + None + + + DefaultProfile + + The credentials, account, tenant, and subscription used for communication with Azure. + + Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer + + Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer + + + None + + + Environment + + Environment containing the Azure account. + + System.String + + System.String + + + None + + + Force + + Overwrite the existing context with the same name without prompting. + + + System.Management.Automation.SwitchParameter + + + False + + + MaxContextPopulation + + Max subscription number to populate contexts after login. Default is 25. To populate all subscriptions to contexts, set to -1. + + System.Int32 + + System.Int32 + + + None + + + Scope + + Determines the scope of context changes, for example, whether changes apply only to the current process, or to all sessions started by this user. + + + Process + CurrentUser + + Microsoft.Azure.Commands.Profile.Common.ContextModificationScope + + Microsoft.Azure.Commands.Profile.Common.ContextModificationScope + + + None + + + SkipContextPopulation + + Skips context population if no contexts are found. + + + System.Management.Automation.SwitchParameter + + + False + + + Subscription + + Subscription Name or ID. + + System.String + + System.String + + + None + + + Tenant + + Optional tenant name or ID. + > [!NOTE] > Due to limitations of the current API, you must use a tenant ID instead of a tenant name when > connecting with a business-to-business (B2B) account. + + System.String + + System.String + + + None + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + + System.Management.Automation.SwitchParameter + + + False + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + + System.Management.Automation.SwitchParameter + + + False + + + + + + AccessToken + + Specifies an access token. + > [!CAUTION] > Access tokens are a type of credential. You should take the appropriate security precautions to > keep them confidential. Access tokens also timeout and may prevent long running tasks from > completing. + + System.String + + System.String + + + None + + + AccountId + + Account Id / User Id / User Name to login with in Default (UserWithSubscriptionId) parameter set; Account ID for access token in AccessToken parameter set; Account ID for managed service in ManagedService parameter set. Can be a managed service resource ID, or the associated client ID. To use the system assigned identity, leave this field blank. + + System.String + + System.String + + + None + + + ApplicationId + + Application ID of the service principal. + + System.String + + System.String + + + None + + + AuthScope + + Optional OAuth scope for login, supported pre-defined values: AadGraph, AnalysisServices, Attestation, Batch, DataLake, KeyVault, OperationalInsights, Storage, Synapse. It also supports resource id like `https://storage.azure.com/`. + + System.String + + System.String + + + None + + + CertificatePassword + + The password required to access the pkcs#12 certificate file. + + System.Security.SecureString + + System.Security.SecureString + + + None + + + CertificatePath + + The path of certficate file in pkcs#12 format. + + System.String + + System.String + + + None + + + CertificateThumbprint + + Certificate Hash or Thumbprint. + + System.String + + System.String + + + None + + + ContextName + + Name of the default Azure context for this login. For more information about Azure contexts, see Azure PowerShell context objects (/powershell/azure/context-persistence). + + System.String + + System.String + + + None + + + Credential + + Specifies a PSCredential object. For more information about the PSCredential object, type `Get-Help Get-Credential`. The PSCredential object provides the user ID and password for organizational ID credentials, or the application ID and secret for service principal credentials. + + System.Management.Automation.PSCredential + + System.Management.Automation.PSCredential + + + None + + + DefaultProfile + + The credentials, account, tenant, and subscription used for communication with Azure. + + Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer + + Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer + + + None + + + Environment + + Environment containing the Azure account. + + System.String + + System.String + + + None + + + FederatedToken + + Specifies a token provided by another identity provider. The issuer and subject in this token must be first configured to be trusted by the ApplicationId. + > [!CAUTION] > Federated tokens are a type of credential. You should take the appropriate security precautions to keep them confidential. Federated tokens also timeout and may prevent long running tasks from completing. + + System.String + + System.String + + + None + + + Force + + Overwrite the existing context with the same name without prompting. + + System.Management.Automation.SwitchParameter + + System.Management.Automation.SwitchParameter + + + False + + + GraphAccessToken + + AccessToken for Graph Service. + + System.String + + System.String + + + None + + + Identity + + Login using a Managed Service Identity. + + System.Management.Automation.SwitchParameter + + System.Management.Automation.SwitchParameter + + + False + + + KeyVaultAccessToken + + AccessToken for KeyVault Service. + + System.String + + System.String + + + None + + + MaxContextPopulation + + Max subscription number to populate contexts after login. Default is 25. To populate all subscriptions to contexts, set to -1. + + System.Int32 + + System.Int32 + + + None + + + MicrosoftGraphAccessToken + + Access token to Microsoft Graph + + System.String + + System.String + + + None + + + Scope + + Determines the scope of context changes, for example, whether changes apply only to the current process, or to all sessions started by this user. + + Microsoft.Azure.Commands.Profile.Common.ContextModificationScope + + Microsoft.Azure.Commands.Profile.Common.ContextModificationScope + + + None + + + SendCertificateChain + + Specifies if the x5c claim (public key of the certificate) should be sent to the STS to achieve easy certificate rollover in Azure AD. + + System.Management.Automation.SwitchParameter + + System.Management.Automation.SwitchParameter + + + False + + + ServicePrincipal + + Indicates that this account authenticates by providing service principal credentials. + + System.Management.Automation.SwitchParameter + + System.Management.Automation.SwitchParameter + + + False + + + SkipContextPopulation + + Skips context population if no contexts are found. + + System.Management.Automation.SwitchParameter + + System.Management.Automation.SwitchParameter + + + False + + + SkipValidation + + Skip validation for access token. + + System.Management.Automation.SwitchParameter + + System.Management.Automation.SwitchParameter + + + False + + + Subscription + + Subscription Name or ID. + + System.String + + System.String + + + None + + + Tenant + + Optional tenant name or ID. + > [!NOTE] > Due to limitations of the current API, you must use a tenant ID instead of a tenant name when > connecting with a business-to-business (B2B) account. + + System.String + + System.String + + + None + + + UseDeviceAuthentication + + Use device code authentication instead of a browser control. + + System.Management.Automation.SwitchParameter + + System.Management.Automation.SwitchParameter + + + False + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + System.Management.Automation.SwitchParameter + + System.Management.Automation.SwitchParameter + + + False + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + System.Management.Automation.SwitchParameter + + System.Management.Automation.SwitchParameter + + + False + + + + + + System.String + + + + + + + + + + Microsoft.Azure.Commands.Profile.Models.Core.PSAzureProfile + + + + + + + + + + + + + + ------------ Example 1: Connect to an Azure account ------------ + Connect-AzAccount + +Account SubscriptionName TenantId Environment +------- ---------------- -------- ----------- +azureuser@contoso.com Subscription1 xxxx-xxxx-xxxx-xxxx AzureCloud + + + + + + + + Example 2: Connect to Azure using organizational ID credentials + $Credential = Get-Credential +Connect-AzAccount -Credential $Credential + +Account SubscriptionName TenantId Environment +------- ---------------- -------- ----------- +azureuser@contoso.com Subscription1 xxxx-xxxx-xxxx-xxxx AzureCloud + + + + + + + + Example 3: Connect to Azure using a service principal account + $Credential = New-Object -TypeName System.Management.Automation.PSCredential -ArgumentList $ApplicationId, $SecuredPassword +Connect-AzAccount -ServicePrincipal -TenantId $TenantId -Credential $Credential + +Account SubscriptionName TenantId Environment +------- ---------------- -------- ----------- +xxxx-xxxx-xxxx-xxxx Subscription1 xxxx-xxxx-xxxx-xxxx AzureCloud + + + + + + + + Example 4: Use an interactive login to connect to a specific tenant and subscription + Connect-AzAccount -Tenant 'xxxx-xxxx-xxxx-xxxx' -SubscriptionId 'yyyy-yyyy-yyyy-yyyy' + +Account SubscriptionName TenantId Environment +------- ---------------- -------- ----------- +azureuser@contoso.com Subscription1 xxxx-xxxx-xxxx-xxxx AzureCloud + + + + + + + + ----- Example 5: Connect using a Managed Service Identity ----- + Connect-AzAccount -Identity + +Account SubscriptionName TenantId Environment +------- ---------------- -------- ----------- +MSI@50342 Subscription1 xxxx-xxxx-xxxx-xxxx AzureCloud + + + + + + + + Example 6: Connect using Managed Service Identity login and ClientId + $identity = Get-AzUserAssignedIdentity -ResourceGroupName 'myResourceGroup' -Name 'myUserAssignedIdentity' +Get-AzVM -ResourceGroupName contoso -Name testvm | Update-AzVM -IdentityType UserAssigned -IdentityId $identity.Id +Connect-AzAccount -Identity -AccountId $identity.ClientId # Run on the virtual machine + +Account SubscriptionName TenantId Environment +------- ---------------- -------- ----------- +yyyy-yyyy-yyyy-yyyy Subscription1 xxxx-xxxx-xxxx-xxxx AzureCloud + + + + + + + + ------------ Example 7: Connect using certificates ------------ + $Thumbprint = 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX' +$TenantId = 'yyyyyyyy-yyyy-yyyy-yyyy-yyyyyyy' +$ApplicationId = '00000000-0000-0000-0000-00000000' +Connect-AzAccount -CertificateThumbprint $Thumbprint -ApplicationId $ApplicationId -Tenant $TenantId -ServicePrincipal + +Account SubscriptionName TenantId Environment +------- ---------------- -------- ----------- +xxxxxxxx-xxxx-xxxx-xxxxxxxxx Subscription1 yyyyyyyy-yyyy-yyyy-yyyy-yyyyyyy AzureCloud + +Account : xxxxxxxx-xxxx-xxxx-xxxxxxxx +SubscriptionName : MyTestSubscription +SubscriptionId : zzzzzzzz-zzzz-zzzz-zzzz-zzzzzzzz +TenantId : yyyyyyyy-yyyy-yyyy-yyyy-yyyyyyy +Environment : AzureCloud + + + + + + + + -------------- Example 8: Connect with AuthScope -------------- + Connect-AzAccount -AuthScope Storage + +Account SubscriptionName TenantId Environment +------- ---------------- -------- ----------- +yyyy-yyyy-yyyy-yyyy Subscription1 xxxx-xxxx-xxxx-xxxx AzureCloud + + + + + + + + ---------- Example 9: Connect using certificate file ---------- + $securePassword = $plainPassword | ConvertTo-SecureString -AsPlainText -Force +$TenantId = 'yyyyyyyy-yyyy-yyyy-yyyy-yyyyyyy' +$ApplicationId = 'zzzzzzzz-zzzz-zzzz-zzzz-zzzzzzzz' +Connect-AzAccount -ServicePrincipal -ApplicationId $ApplicationId -TenantId $TenantId -CertificatePath './certificatefortest.pfx' -CertificatePassword $securePassword + +Account SubscriptionName TenantId Environment +------- ---------------- -------- ----------- +xxxxxxxx-xxxx-xxxx-xxxxxxxx Subscription1 yyyyyyyy-yyyy-yyyy-yyyy-yyyyyyy AzureCloud + + + + + + + + + + Online Version: + https://docs.microsoft.com/powershell/module/az.accounts/connect-azaccount + + + + + + Disable-AzContextAutosave + Disable + AzContextAutosave + + Turn off autosaving Azure credentials. Your login information will be forgotten the next time you open a PowerShell window + + + + Turn off autosaving Azure credentials. Your login information will be forgotten the next time you open a PowerShell window + + + + Disable-AzContextAutosave + + DefaultProfile + + The credentials, tenant and subscription used for communication with azure + + Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer + + Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer + + + None + + + Scope + + Determines the scope of context changes, for example, whether changes apply only to the current process, or to all sessions started by this user + + + Process + CurrentUser + + Microsoft.Azure.Commands.Profile.Common.ContextModificationScope + + Microsoft.Azure.Commands.Profile.Common.ContextModificationScope + + + None + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + + System.Management.Automation.SwitchParameter + + + False + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + + System.Management.Automation.SwitchParameter + + + False + + + + + + DefaultProfile + + The credentials, tenant and subscription used for communication with azure + + Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer + + Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer + + + None + + + Scope + + Determines the scope of context changes, for example, whether changes apply only to the current process, or to all sessions started by this user + + Microsoft.Azure.Commands.Profile.Common.ContextModificationScope + + Microsoft.Azure.Commands.Profile.Common.ContextModificationScope + + + None + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + System.Management.Automation.SwitchParameter + + System.Management.Automation.SwitchParameter + + + False + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + System.Management.Automation.SwitchParameter + + System.Management.Automation.SwitchParameter + + + False + + + + + + None + + + + + + + + + + Microsoft.Azure.Commands.Common.Authentication.ContextAutosaveSettings + + + + + + + + + + + + + + ---------- Example 1: Disable autosaving the context ---------- + Disable-AzContextAutosave + + Disable autosave for the current user. + + + + + + -------------------------- Example 2 -------------------------- + <!-- Aladdin Generated Example --> +Disable-AzContextAutosave -Scope Process + + + + + + + + + + Online Version: + https://docs.microsoft.com/powershell/module/az.accounts/disable-azcontextautosave + + + + + + Disable-AzDataCollection + Disable + AzDataCollection + + Opts out of collecting data to improve the Azure PowerShell cmdlets. Data is collected by default unless you explicitly opt out. + + + + The `Disable-AzDataCollection` cmdlet is used to opt out of data collection. Azure PowerShell automatically collects telemetry data by default. To disable data collection, you must explicitly opt-out. Microsoft aggregates collected data to identify patterns of usage, to identify common issues, and to improve the experience of Azure PowerShell. Microsoft Azure PowerShell doesn't collect any private or personal data. If you've previously opted out, run the `Enable-AzDataCollection` cmdlet to re-enable data collection for the current user on the current machine. + + + + Disable-AzDataCollection + + DefaultProfile + + The credentials, account, tenant, and subscription used for communication with Azure. + + Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer + + Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer + + + None + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + + System.Management.Automation.SwitchParameter + + + False + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + + System.Management.Automation.SwitchParameter + + + False + + + + + + DefaultProfile + + The credentials, account, tenant, and subscription used for communication with Azure. + + Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer + + Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer + + + None + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + System.Management.Automation.SwitchParameter + + System.Management.Automation.SwitchParameter + + + False + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + System.Management.Automation.SwitchParameter + + System.Management.Automation.SwitchParameter + + + False + + + + + + None + + + + + + + + + + System.Void + + + + + + + + + + + + + + -- Example 1: Disabling data collection for the current user -- + Disable-AzDataCollection + + + + + + + + + + Online Version: + https://docs.microsoft.com/powershell/module/az.accounts/disable-azdatacollection + + + Enable-AzDataCollection + + + + + + + Disable-AzureRmAlias + Disable + AzureRmAlias + + Disables AzureRm prefix aliases for Az modules. + + + + Disables AzureRm prefix aliases for Az modules. If -Module is specified, only modules listed will have aliases disabled. Otherwise all AzureRm aliases are disabled. + + + + Disable-AzureRmAlias + + DefaultProfile + + The credentials, account, tenant, and subscription used for communication with Azure. + + Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer + + Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer + + + None + + + Module + + Indicates which modules to disable aliases for. If none are specified, default is all enabled modules. + + System.String[] + + System.String[] + + + None + + + PassThru + + If specified, cmdlet will return all disabled aliases + + + System.Management.Automation.SwitchParameter + + + False + + + Scope + + Indicates what scope aliases should be disabled for. Default is 'Process' + + + Process + CurrentUser + LocalMachine + + System.String + + System.String + + + None + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + + System.Management.Automation.SwitchParameter + + + False + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + + System.Management.Automation.SwitchParameter + + + False + + + + + + DefaultProfile + + The credentials, account, tenant, and subscription used for communication with Azure. + + Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer + + Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer + + + None + + + Module + + Indicates which modules to disable aliases for. If none are specified, default is all enabled modules. + + System.String[] + + System.String[] + + + None + + + PassThru + + If specified, cmdlet will return all disabled aliases + + System.Management.Automation.SwitchParameter + + System.Management.Automation.SwitchParameter + + + False + + + Scope + + Indicates what scope aliases should be disabled for. Default is 'Process' + + System.String + + System.String + + + None + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + System.Management.Automation.SwitchParameter + + System.Management.Automation.SwitchParameter + + + False + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + System.Management.Automation.SwitchParameter + + System.Management.Automation.SwitchParameter + + + False + + + + + + None + + + + + + + + + + System.String + + + + + + + + + + + + + + -------------------------- Example 1 -------------------------- + Disable-AzureRmAlias + + Disables all AzureRm prefixes for the current PowerShell session. + + + + + + -------------------------- Example 2 -------------------------- + Disable-AzureRmAlias -Module Az.Accounts -Scope CurrentUser + + Disables AzureRm aliases for the Az.Accounts module for both the current process and for the current user. + + + + + + + + Online Version: + https://docs.microsoft.com/powershell/module/az.accounts/disable-azurermalias + + + + + + Disconnect-AzAccount + Disconnect + AzAccount + + Disconnects a connected Azure account and removes all credentials and contexts associated with that account. + + + + The Disconnect-AzAccount cmdlet disconnects a connected Azure account and removes all credentials and contexts (subscription and tenant information) associated with that account. After executing this cmdlet, you will need to login again using Connect-AzAccount. + + + + Disconnect-AzAccount + + ApplicationId + + ServicePrincipal id (globally unique id) + + System.String + + System.String + + + None + + + DefaultProfile + + The credentials, tenant and subscription used for communication with azure + + Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer + + Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer + + + None + + + Scope + + Determines the scope of context changes, for example, whether changes apply only to the current process, or to all sessions started by this user. + + + Process + CurrentUser + + Microsoft.Azure.Commands.Profile.Common.ContextModificationScope + + Microsoft.Azure.Commands.Profile.Common.ContextModificationScope + + + None + + + TenantId + + Tenant id (globally unique id) + + System.String + + System.String + + + None + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + + System.Management.Automation.SwitchParameter + + + False + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not executed. + + + System.Management.Automation.SwitchParameter + + + False + + + + Disconnect-AzAccount + + AzureContext + + Context + + Microsoft.Azure.Commands.Profile.Models.Core.PSAzureContext + + Microsoft.Azure.Commands.Profile.Models.Core.PSAzureContext + + + None + + + DefaultProfile + + The credentials, tenant and subscription used for communication with azure + + Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer + + Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer + + + None + + + Scope + + Determines the scope of context changes, for example, whether changes apply only to the current process, or to all sessions started by this user. + + + Process + CurrentUser + + Microsoft.Azure.Commands.Profile.Common.ContextModificationScope + + Microsoft.Azure.Commands.Profile.Common.ContextModificationScope + + + None + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + + System.Management.Automation.SwitchParameter + + + False + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not executed. + + + System.Management.Automation.SwitchParameter + + + False + + + + Disconnect-AzAccount + + ContextName + + Name of the context to log out of + + System.String + + System.String + + + None + + + DefaultProfile + + The credentials, tenant and subscription used for communication with azure + + Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer + + Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer + + + None + + + Scope + + Determines the scope of context changes, for example, whether changes apply only to the current process, or to all sessions started by this user. + + + Process + CurrentUser + + Microsoft.Azure.Commands.Profile.Common.ContextModificationScope + + Microsoft.Azure.Commands.Profile.Common.ContextModificationScope + + + None + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + + System.Management.Automation.SwitchParameter + + + False + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not executed. + + + System.Management.Automation.SwitchParameter + + + False + + + + Disconnect-AzAccount + + InputObject + + The account object to remove + + Microsoft.Azure.Commands.Profile.Models.PSAzureRmAccount + + Microsoft.Azure.Commands.Profile.Models.PSAzureRmAccount + + + None + + + DefaultProfile + + The credentials, tenant and subscription used for communication with azure + + Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer + + Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer + + + None + + + Scope + + Determines the scope of context changes, for example, whether changes apply only to the current process, or to all sessions started by this user. + + + Process + CurrentUser + + Microsoft.Azure.Commands.Profile.Common.ContextModificationScope + + Microsoft.Azure.Commands.Profile.Common.ContextModificationScope + + + None + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + + System.Management.Automation.SwitchParameter + + + False + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not executed. + + + System.Management.Automation.SwitchParameter + + + False + + + + Disconnect-AzAccount + + Username + + User name of the form 'user@contoso.org' + + System.String + + System.String + + + None + + + DefaultProfile + + The credentials, tenant and subscription used for communication with azure + + Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer + + Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer + + + None + + + Scope + + Determines the scope of context changes, for example, whether changes apply only to the current process, or to all sessions started by this user. + + + Process + CurrentUser + + Microsoft.Azure.Commands.Profile.Common.ContextModificationScope + + Microsoft.Azure.Commands.Profile.Common.ContextModificationScope + + + None + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + + System.Management.Automation.SwitchParameter + + + False + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not executed. + + + System.Management.Automation.SwitchParameter + + + False + + + + + + ApplicationId + + ServicePrincipal id (globally unique id) + + System.String + + System.String + + + None + + + AzureContext + + Context + + Microsoft.Azure.Commands.Profile.Models.Core.PSAzureContext + + Microsoft.Azure.Commands.Profile.Models.Core.PSAzureContext + + + None + + + ContextName + + Name of the context to log out of + + System.String + + System.String + + + None + + + DefaultProfile + + The credentials, tenant and subscription used for communication with azure + + Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer + + Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer + + + None + + + InputObject + + The account object to remove + + Microsoft.Azure.Commands.Profile.Models.PSAzureRmAccount + + Microsoft.Azure.Commands.Profile.Models.PSAzureRmAccount + + + None + + + Scope + + Determines the scope of context changes, for example, whether changes apply only to the current process, or to all sessions started by this user. + + Microsoft.Azure.Commands.Profile.Common.ContextModificationScope + + Microsoft.Azure.Commands.Profile.Common.ContextModificationScope + + + None + + + TenantId + + Tenant id (globally unique id) + + System.String + + System.String + + + None + + + Username + + User name of the form 'user@contoso.org' + + System.String + + System.String + + + None + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + System.Management.Automation.SwitchParameter + + System.Management.Automation.SwitchParameter + + + False + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not executed. + + System.Management.Automation.SwitchParameter + + System.Management.Automation.SwitchParameter + + + False + + + + + + Microsoft.Azure.Commands.Profile.Models.PSAzureRmAccount + + + + + + + + Microsoft.Azure.Commands.Profile.Models.Core.PSAzureContext + + + + + + + + + + Microsoft.Azure.Commands.Profile.Models.PSAzureRmAccount + + + + + + + + + + + + + + ----------- Example 1: Logout of the current account ----------- + Disconnect-AzAccount + + Logs out of the Azure account associated with the current context. + + + + + + Example 2: Logout of the account associated with a particular context + Get-AzContext "Work" | Disconnect-AzAccount -Scope CurrentUser + + Logs out the account associated with the given context (named 'Work'). Because this uses the 'CurrentUser' scope, all credentials and contexts will be permanently deleted. + + + + + + ------------- Example 3: Log out a particular user ------------- + Disconnect-AzAccount -Username 'user1@contoso.org' + + Logs out the 'user1@contoso.org' user - all credentials and all contexts associated with this user will be removed. + + + + + + + + Online Version: + https://docs.microsoft.com/powershell/module/az.accounts/disconnect-azaccount + + + + + + Enable-AzContextAutosave + Enable + AzContextAutosave + + Azure contexts are PowerShell objects representing your active subscription to run commands against, and the authentication information needed to connect to an Azure cloud. With Azure contexts, Azure PowerShell doesn't need to reauthenticate your account each time you switch subscriptions. For more information, see Azure PowerShell context objects (https://docs.microsoft.com/powershell/azure/context-persistence). + This cmdlet allows the Azure context information to be saved and automatically loaded when you start a PowerShell process. For example, when opening a new window. + + + + Allows the Azure context information to be saved and automatically loaded when a PowerShell process starts. The context is saved at the end of the execution of any cmdlet that affects the context. For example, any profile cmdlet. If you're using user authentication, then tokens can be updated during the course of running any cmdlet. + + + + Enable-AzContextAutosave + + DefaultProfile + + The credentials, tenant, and subscription used for communication with Azure + + Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer + + Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer + + + None + + + Scope + + Determines the scope of context changes. For example, whether changes apply only to the current process, or to all sessions started by this user. Changes made with the scope `CurrentUser` will affect all PowerShell sessions started by the user. If a particular session needs to have different settings, use the scope `Process`. + + + Process + CurrentUser + + Microsoft.Azure.Commands.Profile.Common.ContextModificationScope + + Microsoft.Azure.Commands.Profile.Common.ContextModificationScope + + + CurrentUser + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + + System.Management.Automation.SwitchParameter + + + False + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet isn't run. + + + System.Management.Automation.SwitchParameter + + + False + + + + + + DefaultProfile + + The credentials, tenant, and subscription used for communication with Azure + + Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer + + Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer + + + None + + + Scope + + Determines the scope of context changes. For example, whether changes apply only to the current process, or to all sessions started by this user. Changes made with the scope `CurrentUser` will affect all PowerShell sessions started by the user. If a particular session needs to have different settings, use the scope `Process`. + + Microsoft.Azure.Commands.Profile.Common.ContextModificationScope + + Microsoft.Azure.Commands.Profile.Common.ContextModificationScope + + + CurrentUser + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + System.Management.Automation.SwitchParameter + + System.Management.Automation.SwitchParameter + + + False + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet isn't run. + + System.Management.Automation.SwitchParameter + + System.Management.Automation.SwitchParameter + + + False + + + + + + None + + + + + + + + + + Microsoft.Azure.Commands.Common.Authentication.ContextAutosaveSettings + + + + + + + + + + + + + + Example 1: Enable autosaving credentials for the current user + Enable-AzContextAutosave + + + + + + + + -------------------------- Example 2 -------------------------- + <!-- Aladdin Generated Example --> +Enable-AzContextAutosave -Scope Process + + + + + + + + + + Online Version: + https://docs.microsoft.com/powershell/module/az.accounts/enable-azcontextautosave + + + + + + Enable-AzDataCollection + Enable + AzDataCollection + + Enables Azure PowerShell to collect data to improve the user experience with the Azure PowerShell cmdlets. Executing this cmdlet opts in to data collection for the current user on the current machine. Data is collected by default unless you explicitly opt out. + + + + The `Enable-AzDataCollection` cmdlet is used to opt in to data collection. Azure PowerShell automatically collects telemetry data by default. Microsoft aggregates collected data to identify patterns of usage, to identify common issues, and to improve the experience of Azure PowerShell. Microsoft Azure PowerShell doesn't collect any private or personal data. To disable data collection, you must explicitly opt out by executing `Disable-AzDataCollection`. + + + + Enable-AzDataCollection + + DefaultProfile + + The credentials, account, tenant, and subscription used for communication with Azure. + + Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer + + Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer + + + None + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + + System.Management.Automation.SwitchParameter + + + False + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + + System.Management.Automation.SwitchParameter + + + False + + + + + + DefaultProfile + + The credentials, account, tenant, and subscription used for communication with Azure. + + Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer + + Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer + + + None + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + System.Management.Automation.SwitchParameter + + System.Management.Automation.SwitchParameter + + + False + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + System.Management.Automation.SwitchParameter + + System.Management.Automation.SwitchParameter + + + False + + + + + + None + + + + + + + + + + System.Void + + + + + + + + + + + + + + --- Example 1: Enabling data collection for the current user --- + Enable-AzDataCollection + + + + + + + + + + Online Version: + https://docs.microsoft.com/powershell/module/az.accounts/enable-azdatacollection + + + Disable-AzDataCollection + + + + + + + Enable-AzureRmAlias + Enable + AzureRmAlias + + Enables AzureRm prefix aliases for Az modules. + + + + Enables AzureRm prefix aliases for Az modules. If -Module is specified, only modules listed will have aliases enabled. Otherwise all AzureRm aliases are enabled. + + + + Enable-AzureRmAlias + + DefaultProfile + + The credentials, account, tenant, and subscription used for communication with Azure. + + Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer + + Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer + + + None + + + Module + + Indicates which modules to enable aliases for. If none are specified, default is all modules. + + System.String[] + + System.String[] + + + None + + + PassThru + + If specified, cmdlet will return all aliases enabled + + + System.Management.Automation.SwitchParameter + + + False + + + Scope + + Indicates what scope aliases should be enabled for. Default is 'Local' + + + Local + Process + CurrentUser + LocalMachine + + System.String + + System.String + + + None + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + + System.Management.Automation.SwitchParameter + + + False + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + + System.Management.Automation.SwitchParameter + + + False + + + + + + DefaultProfile + + The credentials, account, tenant, and subscription used for communication with Azure. + + Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer + + Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer + + + None + + + Module + + Indicates which modules to enable aliases for. If none are specified, default is all modules. + + System.String[] + + System.String[] + + + None + + + PassThru + + If specified, cmdlet will return all aliases enabled + + System.Management.Automation.SwitchParameter + + System.Management.Automation.SwitchParameter + + + False + + + Scope + + Indicates what scope aliases should be enabled for. Default is 'Local' + + System.String + + System.String + + + None + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + System.Management.Automation.SwitchParameter + + System.Management.Automation.SwitchParameter + + + False + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + System.Management.Automation.SwitchParameter + + System.Management.Automation.SwitchParameter + + + False + + + + + + None + + + + + + + + + + System.String + + + + + + + + + + + + + + -------------------------- Example 1 -------------------------- + Enable-AzureRmAlias + + Enables all AzureRm prefixes for the current PowerShell session. + + + + + + -------------------------- Example 2 -------------------------- + Enable-AzureRmAlias -Module Az.Accounts -Scope CurrentUser + + Enables AzureRm aliases for the Az.Accounts module for both the current process and for the current user. + + + + + + + + Online Version: + https://docs.microsoft.com/powershell/module/az.accounts/enable-azurermalias + + + + + + Get-AzAccessToken + Get + AzAccessToken + + Get raw access token. When using -ResourceUrl, please make sure the value does match current Azure environment. You may refer to the value of `(Get-AzContext).Environment`. + + + + Get access token + + + + Get-AzAccessToken + + DefaultProfile + + The credentials, account, tenant, and subscription used for communication with Azure. + + Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer + + Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer + + + None + + + ResourceTypeName + + Optional resource type name, supported values: AadGraph, AnalysisServices, Arm, Attestation, Batch, DataLake, KeyVault, MSGraph, OperationalInsights, ResourceManager, Storage, Synapse. Default value is Arm if not specified. + + System.String + + System.String + + + None + + + TenantId + + Optional Tenant Id. Use tenant id of default context if not specified. + + System.String + + System.String + + + None + + + + Get-AzAccessToken + + DefaultProfile + + The credentials, account, tenant, and subscription used for communication with Azure. + + Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer + + Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer + + + None + + + ResourceUrl + + Resource url for that you're requesting token, e.g. 'https://graph.microsoft.com/'. + + System.String + + System.String + + + None + + + TenantId + + Optional Tenant Id. Use tenant id of default context if not specified. + + System.String + + System.String + + + None + + + + + + DefaultProfile + + The credentials, account, tenant, and subscription used for communication with Azure. + + Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer + + Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer + + + None + + + ResourceTypeName + + Optional resource type name, supported values: AadGraph, AnalysisServices, Arm, Attestation, Batch, DataLake, KeyVault, MSGraph, OperationalInsights, ResourceManager, Storage, Synapse. Default value is Arm if not specified. + + System.String + + System.String + + + None + + + ResourceUrl + + Resource url for that you're requesting token, e.g. 'https://graph.microsoft.com/'. + + System.String + + System.String + + + None + + + TenantId + + Optional Tenant Id. Use tenant id of default context if not specified. + + System.String + + System.String + + + None + + + + + + None + + + + + + + + + + Microsoft.Azure.Commands.Profile.Models.PSAccessToken + + + + + + + + + + + + + + ------- Example 1 Get the access token for ARM endpoint ------- + Get-AzAccessToken + + Get access token of current account for ResourceManager endpoint + + + + + + - Example 2 Get the access token for Microsoft Graph endpoint - + Get-AzAccessToken -ResourceTypeName MSGraph + + Get access token of Microsoft Graph endpoint for current account + + + + + + - Example 3 Get the access token for Microsoft Graph endpoint - + Get-AzAccessToken -ResourceUrl "https://graph.microsoft.com/" + + Get access token of Microsoft Graph endpoint for current account + + + + + + + + Online Version: + https://docs.microsoft.com/powershell/module/az.accounts/get-azaccesstoken + + + + + + Get-AzContext + Get + AzContext + + Gets the metadata used to authenticate Azure Resource Manager requests. + + + + The Get-AzContext cmdlet gets the current metadata used to authenticate Azure Resource Manager requests. This cmdlet gets the Active Directory account, Active Directory tenant, Azure subscription, and the targeted Azure environment. Azure Resource Manager cmdlets use these settings by default when making Azure Resource Manager requests. When the available amount of subscription exceeds the default limit of 25, some subscriptions may not show up in the results of `Get-AzContext -ListAvailable`. Please run `Connect-AzAccount -MaxContextPopulation <int>` to get more contexts. + + + + Get-AzContext + + DefaultProfile + + The credentials, account, tenant and subscription used for communication with azure + + Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer + + Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer + + + None + + + ListAvailable + + List all available contexts in the current session. + + + System.Management.Automation.SwitchParameter + + + False + + + RefreshContextFromTokenCache + + Refresh contexts from token cache + + + System.Management.Automation.SwitchParameter + + + False + + + + Get-AzContext + + Name + + The name of the context + + System.String + + System.String + + + None + + + DefaultProfile + + The credentials, account, tenant and subscription used for communication with azure + + Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer + + Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer + + + None + + + + + + DefaultProfile + + The credentials, account, tenant and subscription used for communication with azure + + Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer + + Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer + + + None + + + ListAvailable + + List all available contexts in the current session. + + System.Management.Automation.SwitchParameter + + System.Management.Automation.SwitchParameter + + + False + + + Name + + The name of the context + + System.String + + System.String + + + None + + + RefreshContextFromTokenCache + + Refresh contexts from token cache + + System.Management.Automation.SwitchParameter + + System.Management.Automation.SwitchParameter + + + False + + + + + + None + + + + + + + + + + Microsoft.Azure.Commands.Profile.Models.Core.PSAzureContext + + + + + + + + + + + + + + ------------ Example 1: Getting the current context ------------ + Connect-AzAccount +Get-AzContext + +Name Account SubscriptionName Environment TenantId +---- ------- ---------------- ----------- -------- +Subscription1 (xxxxxxxx-xxxx-xxxx-xxx... test@outlook.com Subscription1 AzureCloud xxxxxxxx-x... + + In this example we are logging into our account with an Azure subscription using Connect-AzAccount, and then we are getting the context of the current session by calling Get-AzContext. + + + + + + ---------- Example 2: Listing all available contexts ---------- + Get-AzContext -ListAvailable + +Name Account SubscriptionName Environment TenantId +---- ------- ---------------- ----------- -------- +Subscription1 (xxxxxxxx-xxxx-xxxx-xxx... test@outlook.com Subscription1 AzureCloud xxxxxxxx-x... +Subscription2 (xxxxxxxx-xxxx-xxxx-xxx... test@outlook.com Subscription2 AzureCloud xxxxxxxx-x... +Subscription3 (xxxxxxxx-xxxx-xxxx-xxx... test@outlook.com Subscription3 AzureCloud xxxxxxxx-x... + + In this example, all currently available contexts are displayed. The user may select one of these contexts using Select-AzContext. + + + + + + + + Online Version: + https://docs.microsoft.com/powershell/module/az.accounts/get-azcontext + + + Set-AzContext + + + + Connect-AzAccount + + + + + + + Get-AzContextAutosaveSetting + Get + AzContextAutosaveSetting + + Display metadata about the context autosave feature, including whether the context is automatically saved, and where saved context and credential information can be found. + + + + Display metadata about the context autosave feature, including whether the context is automatically saved, and where saved context and credential information can be found. + + + + Get-AzContextAutosaveSetting + + DefaultProfile + + The credentials, account, tenant and subscription used for communication with azure + + Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer + + Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer + + + None + + + Scope + + Determines the scope of context changes, for example, whether changes apply only to the current process, or to all sessions started by this user. + + + Process + CurrentUser + + Microsoft.Azure.Commands.Profile.Common.ContextModificationScope + + Microsoft.Azure.Commands.Profile.Common.ContextModificationScope + + + None + + + + + + DefaultProfile + + The credentials, account, tenant and subscription used for communication with azure + + Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer + + Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer + + + None + + + Scope + + Determines the scope of context changes, for example, whether changes apply only to the current process, or to all sessions started by this user. + + Microsoft.Azure.Commands.Profile.Common.ContextModificationScope + + Microsoft.Azure.Commands.Profile.Common.ContextModificationScope + + + None + + + + + + None + + + + + + + + + + Microsoft.Azure.Commands.Common.Authentication.ContextAutosaveSettings + + + + + + + + + + + + + + ------ Get context save metadata for the current session ------ + Get-AzContextAutosaveSetting + +Mode : Process +ContextDirectory : None +ContextFile : None +CacheDirectory : None +CacheFile : None +Settings : {} + + Get details about whether and where the context is saved. In the above example, the autosave feature has been disabled. + + + + + + -------- Get context save metadata for the current user -------- + Get-AzContextAutosaveSetting -Scope CurrentUser + +Mode : CurrentUser +ContextDirectory : C:\Users\contoso\AppData\Roaming\Windows Azure Powershell +ContextFile : AzureRmContext.json +CacheDirectory : C:\Users\contoso\AppData\Roaming\Windows Azure Powershell +CacheFile : TokenCache.dat +Settings : {} + + Get details about whether and where the context is saved by default for the current user. Note that this may be different than the settings that are active in the current session. In the above example, the autosave feature has been enabled, and data is saved to the default location. + + + + + + + + Online Version: + https://docs.microsoft.com/powershell/module/az.accounts/get-azcontextautosavesetting + + + + + + Get-AzDefault + Get + AzDefault + + Get the defaults set by the user in the current context. + + + + The Get-AzDefault cmdlet gets the Resource Group that the user has set as default in the current context. + + + + Get-AzDefault + + DefaultProfile + + The credentials, account, tenant, and subscription used for communication with azure. + + Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer + + Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer + + + None + + + ResourceGroup + + Display Default Resource Group + + + System.Management.Automation.SwitchParameter + + + False + + + + + + DefaultProfile + + The credentials, account, tenant, and subscription used for communication with azure. + + Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer + + Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer + + + None + + + ResourceGroup + + Display Default Resource Group + + System.Management.Automation.SwitchParameter + + System.Management.Automation.SwitchParameter + + + False + + + + + + System.Management.Automation.SwitchParameter + + + + + + + + + + Microsoft.Azure.Commands.Profile.Models.PSResourceGroup + + + + + + + + + + + + + + -------------------------- Example 1 -------------------------- + Get-AzDefault + +Id : /subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/resourceGroups/myResourceGroup +Name : myResourceGroup +Properties : Microsoft.Azure.Management.Internal.Resources.Models.ResourceGroupProperties +Location : eastus +ManagedBy : +Tags : + + This command returns the current defaults if there are defaults set, or returns nothing if no default is set. + + + + + + -------------------------- Example 2 -------------------------- + Get-AzDefault -ResourceGroup + +Id : /subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/resourceGroups/myResourceGroup +Name : myResourceGroup +Properties : Microsoft.Azure.Management.Internal.Resources.Models.ResourceGroupProperties +Location : eastus +ManagedBy : +Tags : + + This command returns the current default Resource Group if there is a default set, or returns nothing if no default is set. + + + + + + + + Online Version: + https://docs.microsoft.com/powershell/module/az.accounts/get-azdefault + + + + + + Get-AzEnvironment + Get + AzEnvironment + + Get endpoints and metadata for an instance of Azure services. + + + + The Get-AzEnvironment cmdlet gets endpoints and metadata for an instance of Azure services. + + + + Get-AzEnvironment + + Name + + Specifies the name of the Azure instance to get. + + System.String + + System.String + + + None + + + DefaultProfile + + The credentials, account, tenant and subscription used for communication with azure. + + Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer + + Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer + + + None + + + + + + DefaultProfile + + The credentials, account, tenant and subscription used for communication with azure. + + Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer + + Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer + + + None + + + Name + + Specifies the name of the Azure instance to get. + + System.String + + System.String + + + None + + + + + + System.String + + + + + + + + + + Microsoft.Azure.Commands.Profile.Models.PSAzureEnvironment + + + + + + + + + + + + + + ---------- Example 1: Getting all Azure environments ---------- + Get-AzEnvironment + +Name Resource Manager Url ActiveDirectory Authority Type +---- -------------------- ------------------------- ---- +AzureUSGovernment https://management.usgovcloudapi.net/ https://login.microsoftonline.us/ Built-in +AzureGermanCloud https://management.microsoftazure.de/ https://login.microsoftonline.de/ Built-in +AzureCloud https://management.azure.com/ https://login.microsoftonline.com/ Built-in +AzureChinaCloud https://management.chinacloudapi.cn/ https://login.chinacloudapi.cn/ Built-in + + This example shows how to get the endpoints and metadata for the AzureCloud (default) environment. + + + + + + -------- Example 2: Getting the AzureCloud environment -------- + Get-AzEnvironment -Name AzureCloud + +Name Resource Manager Url ActiveDirectory Authority Type +---- -------------------- ------------------------- ---- +AzureCloud https://management.azure.com/ https://login.microsoftonline.com/ Built-in + + This example shows how to get the endpoints and metadata for the AzureCloud (default) environment. + + + + + + ------ Example 3: Getting the AzureChinaCloud environment ------ + Get-AzEnvironment -Name AzureChinaCloud | Format-List + +Name : AzureChinaCloud +Type : Built-in +EnableAdfsAuthentication : False +OnPremise : False +ActiveDirectoryServiceEndpointResourceId : https://management.core.chinacloudapi.cn/ +AdTenant : Common +GalleryUrl : https://gallery.azure.com/ +ManagementPortalUrl : https://go.microsoft.com/fwlink/?LinkId=301902 +ServiceManagementUrl : https://management.core.chinacloudapi.cn/ +PublishSettingsFileUrl : https://go.microsoft.com/fwlink/?LinkID=301776 +ResourceManagerUrl : https://management.chinacloudapi.cn/ +SqlDatabaseDnsSuffix : .database.chinacloudapi.cn +StorageEndpointSuffix : core.chinacloudapi.cn +ActiveDirectoryAuthority : https://login.chinacloudapi.cn/ +GraphUrl : https://graph.chinacloudapi.cn/ +GraphEndpointResourceId : https://graph.chinacloudapi.cn/ +TrafficManagerDnsSuffix : trafficmanager.cn +AzureKeyVaultDnsSuffix : vault.azure.cn +DataLakeEndpointResourceId : +AzureDataLakeStoreFileSystemEndpointSuffix : +AzureDataLakeAnalyticsCatalogAndJobEndpointSuffix : +AzureKeyVaultServiceEndpointResourceId : https://vault.azure.cn +ContainerRegistryEndpointSuffix : azurecr.cn +AzureOperationalInsightsEndpointResourceId : +AzureOperationalInsightsEndpoint : +AzureAnalysisServicesEndpointSuffix : asazure.chinacloudapi.cn +AnalysisServicesEndpointResourceId : https://region.asazure.chinacloudapi.cn +AzureAttestationServiceEndpointSuffix : +AzureAttestationServiceEndpointResourceId : +AzureSynapseAnalyticsEndpointSuffix : dev.azuresynapse.azure.cn +AzureSynapseAnalyticsEndpointResourceId : https://dev.azuresynapse.azure.cn + + This example shows how to get the endpoints and metadata for the AzureChinaCloud environment. + + + + + + ----- Example 4: Getting the AzureUSGovernment environment ----- + Get-AzEnvironment -Name AzureUSGovernment + +Name Resource Manager Url ActiveDirectory Authority Type +---- -------------------- ------------------------- ---- +AzureUSGovernment https://management.usgovcloudapi.net/ https://login.microsoftonline.us/ Built-in + + This example shows how to get the endpoints and metadata for the AzureUSGovernment environment. + + + + + + + + Online Version: + https://docs.microsoft.com/powershell/module/az.accounts/get-azenvironment + + + Add-AzEnvironment + + + + Remove-AzEnvironment + + + + Set-AzEnvironment + + + + + + + Get-AzSubscription + Get + AzSubscription + + Get subscriptions that the current account can access. + + + + The Get-AzSubscription cmdlet gets the subscription ID, subscription name, and home tenant for subscriptions that the current account can access. + + + + Get-AzSubscription + + AsJob + + Run cmdlet in the background and return a Job to track progress. + + + System.Management.Automation.SwitchParameter + + + False + + + DefaultProfile + + The credentials, tenant and subscription used for communication with azure + + Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer + + Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer + + + None + + + SubscriptionId + + Specifies the ID of the subscription to get. + + System.String + + System.String + + + None + + + TenantId + + Specifies the ID of the tenant that contains subscriptions to get. + + System.String + + System.String + + + None + + + + Get-AzSubscription + + AsJob + + Run cmdlet in the background and return a Job to track progress. + + + System.Management.Automation.SwitchParameter + + + False + + + DefaultProfile + + The credentials, tenant and subscription used for communication with azure + + Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer + + Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer + + + None + + + SubscriptionName + + Specifies the name of the subscription to get. + + System.String + + System.String + + + None + + + TenantId + + Specifies the ID of the tenant that contains subscriptions to get. + + System.String + + System.String + + + None + + + + + + AsJob + + Run cmdlet in the background and return a Job to track progress. + + System.Management.Automation.SwitchParameter + + System.Management.Automation.SwitchParameter + + + False + + + DefaultProfile + + The credentials, tenant and subscription used for communication with azure + + Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer + + Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer + + + None + + + SubscriptionId + + Specifies the ID of the subscription to get. + + System.String + + System.String + + + None + + + SubscriptionName + + Specifies the name of the subscription to get. + + System.String + + System.String + + + None + + + TenantId + + Specifies the ID of the tenant that contains subscriptions to get. + + System.String + + System.String + + + None + + + + + + System.String + + + + + + + + + + Microsoft.Azure.Commands.Profile.Models.PSAzureSubscription + + + + + + + + + + + + + + ------- Example 1: Get all subscriptions in all tenants ------- + Get-AzSubscription + +Name Id TenantId State +---- -- -------- ----- +Subscription1 yyyy-yyyy-yyyy-yyyy aaaa-aaaa-aaaa-aaaa Enabled +Subscription2 xxxx-xxxx-xxxx-xxxx aaaa-aaaa-aaaa-aaaa Enabled +Subscription3 zzzz-zzzz-zzzz-zzzz bbbb-bbbb-bbbb-bbbb Enabled + + This command gets all subscriptions in all tenants that are authorized for the current account. + + + + + + ---- Example 2: Get all subscriptions for a specific tenant ---- + Get-AzSubscription -TenantId "aaaa-aaaa-aaaa-aaaa" + +Name Id TenantId State +---- -- -------- ----- +Subscription1 yyyy-yyyy-yyyy-yyyy aaaa-aaaa-aaaa-aaaa Enabled +Subscription2 xxxx-xxxx-xxxx-xxxx aaaa-aaaa-aaaa-aaaa Enabled + + List all subscriptions in the given tenant that are authorized for the current account. + + + + + + ---- Example 3: Get all subscriptions in the current tenant ---- + Get-AzSubscription + +Name Id TenantId State +---- -- -------- ----- +Subscription1 yyyy-yyyy-yyyy-yyyy aaaa-aaaa-aaaa-aaaa Enabled +Subscription2 xxxx-xxxx-xxxx-xxxx aaaa-aaaa-aaaa-aaaa Enabled + + This command gets all subscriptions in the current tenant that are authorized for the current user. + + + + + + Example 4: Change the current context to use a specific subscription + Get-AzSubscription -SubscriptionId "xxxx-xxxx-xxxx-xxxx" -TenantId "yyyy-yyyy-yyyy-yyyy" | Set-AzContext + +Name Account SubscriptionName Environment TenantId +---- ------- ---------------- ----------- -------- +Subscription1 (xxxx-xxxx-xxxx-xxxx) azureuser@micros... Subscription1 AzureCloud yyyy-yyyy-yyyy-yyyy + + This command gets the specified subscription, and then sets the current context to use it. All subsequent cmdlets in this session use the new subscription (Contoso Subscription 1) by default. + + + + + + + + Online Version: + https://docs.microsoft.com/powershell/module/az.accounts/get-azsubscription + + + + + + Get-AzTenant + Get + AzTenant + + Gets tenants that are authorized for the current user. + + + + The Get-AzTenant cmdlet gets tenants authorized for the current user. + + + + Get-AzTenant + + TenantId + + Specifies the ID of the tenant that this cmdlet gets. + + System.String + + System.String + + + None + + + DefaultProfile + + The credentials, tenant and subscription used for communication with azure + + Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer + + Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer + + + None + + + + + + DefaultProfile + + The credentials, tenant and subscription used for communication with azure + + Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer + + Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer + + + None + + + TenantId + + Specifies the ID of the tenant that this cmdlet gets. + + System.String + + System.String + + + None + + + + + + System.String + + + + + + + + + + Microsoft.Azure.Commands.Profile.Models.PSAzureTenant + + + + + + + + + + + + + + ---------------- Example 1: Getting all tenants ---------------- + Connect-AzAccount +Get-AzTenant + +Id Name Category Domains +-- ----------- -------- ------- +xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx Microsoft Home {test0.com, test1.com, test2.microsoft.com, test3.microsoft.com...} +yyyyyyyy-yyyy-yyyy-yyyy-yyyyyyyyyyyy Testhost Home testhost.onmicrosoft.com + + This example shows how to get all of the authorized tenants of an Azure account. + + + + + + ------------- Example 2: Getting a specific tenant ------------- + Connect-AzAccount +Get-AzTenant -TenantId xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx + +Id Name Category Domains +-- ----------- -------- ------- +xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx Microsoft Home {test0.com, test1.com, test2.microsoft.com, test3.microsoft.com...} + + This example shows how to get a specific authorized tenant of an Azure account. + + + + + + + + Online Version: + https://docs.microsoft.com/powershell/module/az.accounts/get-aztenant + + + + + + Import-AzContext + Import + AzContext + + Loads Azure authentication information from a file. + + + + The Import-AzContext cmdlet loads authentication information from a file to set the Azure environment and context. Cmdlets that you run in the current session use this information to authenticate requests to Azure Resource Manager. + + + + Import-AzContext + + AzureContext + + {{Fill AzureContext Description}} + + Microsoft.Azure.Commands.Common.Authentication.Models.AzureRmProfile + + Microsoft.Azure.Commands.Common.Authentication.Models.AzureRmProfile + + + None + + + DefaultProfile + + The credentials, tenant, and subscription used for communication with azure + + Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer + + Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer + + + None + + + Scope + + Determines the scope of context changes, for example, whether changes apply only to the current process, or to all sessions started by this user. + + + Process + CurrentUser + + Microsoft.Azure.Commands.Profile.Common.ContextModificationScope + + Microsoft.Azure.Commands.Profile.Common.ContextModificationScope + + + None + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + + System.Management.Automation.SwitchParameter + + + False + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + + System.Management.Automation.SwitchParameter + + + False + + + + Import-AzContext + + Path + + Specifies the path to context information saved by using Save-AzContext. + + System.String + + System.String + + + None + + + DefaultProfile + + The credentials, tenant, and subscription used for communication with azure + + Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer + + Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer + + + None + + + Scope + + Determines the scope of context changes, for example, whether changes apply only to the current process, or to all sessions started by this user. + + + Process + CurrentUser + + Microsoft.Azure.Commands.Profile.Common.ContextModificationScope + + Microsoft.Azure.Commands.Profile.Common.ContextModificationScope + + + None + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + + System.Management.Automation.SwitchParameter + + + False + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + + System.Management.Automation.SwitchParameter + + + False + + + + + + AzureContext + + {{Fill AzureContext Description}} + + Microsoft.Azure.Commands.Common.Authentication.Models.AzureRmProfile + + Microsoft.Azure.Commands.Common.Authentication.Models.AzureRmProfile + + + None + + + DefaultProfile + + The credentials, tenant, and subscription used for communication with azure + + Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer + + Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer + + + None + + + Path + + Specifies the path to context information saved by using Save-AzContext. + + System.String + + System.String + + + None + + + Scope + + Determines the scope of context changes, for example, whether changes apply only to the current process, or to all sessions started by this user. + + Microsoft.Azure.Commands.Profile.Common.ContextModificationScope + + Microsoft.Azure.Commands.Profile.Common.ContextModificationScope + + + None + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + System.Management.Automation.SwitchParameter + + System.Management.Automation.SwitchParameter + + + False + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + System.Management.Automation.SwitchParameter + + System.Management.Automation.SwitchParameter + + + False + + + + + + Microsoft.Azure.Commands.Common.Authentication.Models.AzureRmProfile + + + + + + + + System.String + + + + + + + + + + Microsoft.Azure.Commands.Profile.Models.Core.PSAzureProfile + + + + + + + + + + + + + + ----- Example 1: Importing a context from a AzureRmProfile ----- + Import-AzContext -AzContext (Connect-AzAccount) + +Account SubscriptionName TenantId Environment +------- ---------------- -------- ----------- +azureuser@contoso.com Subscription1 xxxx-xxxx-xxxx-xxxx AzureCloud + + This example imports a context from a PSAzureProfile that is passed through to the cmdlet. + + + + + + ------- Example 2: Importing a context from a JSON file ------- + Import-AzContext -Path C:\test.json + +Account SubscriptionName TenantId Environment +------- ---------------- -------- ----------- +azureuser@contoso.com Subscription1 xxxx-xxxx-xxxx-xxxx AzureCloud + + This example selects a context from a JSON file that is passed through to the cmdlet. This JSON file can be created from Save-AzContext. + + + + + + + + Online Version: + https://docs.microsoft.com/powershell/module/az.accounts/import-azcontext + + + + + + Invoke-AzRestMethod + Invoke + AzRestMethod + + Construct and perform HTTP request to Azure resource management endpoint only + + + + Construct and perform HTTP request to Azure resource management endpoint only + + + + Invoke-AzRestMethod + + ApiVersion + + Api Version + + System.String + + System.String + + + None + + + AsJob + + Run cmdlet in the background + + + System.Management.Automation.SwitchParameter + + + False + + + DefaultProfile + + The credentials, account, tenant, and subscription used for communication with Azure. + + Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer + + Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer + + + None + + + Method + + Http Method + + + GET + POST + PUT + PATCH + DELETE + + System.String + + System.String + + + None + + + Name + + list of Target Resource Name + + System.String[] + + System.String[] + + + None + + + Payload + + JSON format payload + + System.String + + System.String + + + None + + + ResourceGroupName + + Target Resource Group Name + + System.String + + System.String + + + None + + + ResourceProviderName + + Target Resource Provider Name + + System.String + + System.String + + + None + + + ResourceType + + List of Target Resource Type + + System.String[] + + System.String[] + + + None + + + SubscriptionId + + Target Subscription Id + + System.String + + System.String + + + None + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + + System.Management.Automation.SwitchParameter + + + False + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + + System.Management.Automation.SwitchParameter + + + False + + + + Invoke-AzRestMethod + + AsJob + + Run cmdlet in the background + + + System.Management.Automation.SwitchParameter + + + False + + + DefaultProfile + + The credentials, account, tenant, and subscription used for communication with Azure. + + Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer + + Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer + + + None + + + Method + + Http Method + + + GET + POST + PUT + PATCH + DELETE + + System.String + + System.String + + + None + + + Path + + Path of target resource URL. Hostname of Resource Manager should not be added. + + System.String + + System.String + + + None + + + Payload + + JSON format payload + + System.String + + System.String + + + None + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + + System.Management.Automation.SwitchParameter + + + False + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + + System.Management.Automation.SwitchParameter + + + False + + + + Invoke-AzRestMethod + + Uri + + Uniform Resource Identifier of the Azure resources. The target resource needs to support Azure AD authentication and the access token is derived according to resource id. If resource id is not set, its value is derived according to built-in service suffixes in current Azure Environment. + + System.Uri + + System.Uri + + + None + + + AsJob + + Run cmdlet in the background + + + System.Management.Automation.SwitchParameter + + + False + + + DefaultProfile + + The credentials, account, tenant, and subscription used for communication with Azure. + + Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer + + Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer + + + None + + + Method + + Http Method + + + GET + POST + PUT + PATCH + DELETE + + System.String + + System.String + + + None + + + Payload + + JSON format payload + + System.String + + System.String + + + None + + + ResourceId + + Identifier URI specified by the REST API you are calling. It shouldn't be the resource id of Azure Resource Manager. + + System.Uri + + System.Uri + + + None + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + + System.Management.Automation.SwitchParameter + + + False + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + + System.Management.Automation.SwitchParameter + + + False + + + + + + ApiVersion + + Api Version + + System.String + + System.String + + + None + + + AsJob + + Run cmdlet in the background + + System.Management.Automation.SwitchParameter + + System.Management.Automation.SwitchParameter + + + False + + + DefaultProfile + + The credentials, account, tenant, and subscription used for communication with Azure. + + Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer + + Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer + + + None + + + Method + + Http Method + + System.String + + System.String + + + None + + + Name + + list of Target Resource Name + + System.String[] + + System.String[] + + + None + + + Path + + Path of target resource URL. Hostname of Resource Manager should not be added. + + System.String + + System.String + + + None + + + Payload + + JSON format payload + + System.String + + System.String + + + None + + + ResourceGroupName + + Target Resource Group Name + + System.String + + System.String + + + None + + + ResourceId + + Identifier URI specified by the REST API you are calling. It shouldn't be the resource id of Azure Resource Manager. + + System.Uri + + System.Uri + + + None + + + ResourceProviderName + + Target Resource Provider Name + + System.String + + System.String + + + None + + + ResourceType + + List of Target Resource Type + + System.String[] + + System.String[] + + + None + + + SubscriptionId + + Target Subscription Id + + System.String + + System.String + + + None + + + Uri + + Uniform Resource Identifier of the Azure resources. The target resource needs to support Azure AD authentication and the access token is derived according to resource id. If resource id is not set, its value is derived according to built-in service suffixes in current Azure Environment. + + System.Uri + + System.Uri + + + None + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + System.Management.Automation.SwitchParameter + + System.Management.Automation.SwitchParameter + + + False + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + System.Management.Automation.SwitchParameter + + System.Management.Automation.SwitchParameter + + + False + + + + + + System.string + + + + + + + + + + Microsoft.Azure.Commands.Profile.Models.PSHttpResponse + + + + + + + + + + + + + + -------------------------- Example 1 -------------------------- + Invoke-AzRestMethod -Path "/subscriptions/{subscription}/resourcegroups/{resourcegroup}/providers/microsoft.operationalinsights/workspaces/{workspace}?api-version={API}" -Method GET + +Headers : {[Cache-Control, System.String[]], [Pragma, System.String[]], [x-ms-request-id, System.String[]], [Strict-Transport-Security, System.String[]]…} +Version : 1.1 +StatusCode : 200 +Method : GET +Content : { + "properties": { + "source": "Azure", + "customerId": "{customerId}", + "provisioningState": "Succeeded", + "sku": { + "name": "pergb2018", + "maxCapacityReservationLevel": 3000, + "lastSkuUpdate": "Mon, 25 May 2020 11:10:01 GMT" + }, + "retentionInDays": 30, + "features": { + "legacy": 0, + "searchVersion": 1, + "enableLogAccessUsingOnlyResourcePermissions": true + }, + "workspaceCapping": { + "dailyQuotaGb": -1.0, + "quotaNextResetTime": "Thu, 18 Jun 2020 05:00:00 GMT", + "dataIngestionStatus": "RespectQuota" + }, + "enableFailover": false, + "publicNetworkAccessForIngestion": "Enabled", + "publicNetworkAccessForQuery": "Enabled", + "createdDate": "Mon, 25 May 2020 11:10:01 GMT", + "modifiedDate": "Mon, 25 May 2020 11:10:02 GMT" + }, + "id": "/subscriptions/{subscription}/resourcegroups/{resourcegroup}/providers/microsoft.operationalinsights/workspaces/{workspace}", + "name": "{workspace}", + "type": "Microsoft.OperationalInsights/workspaces", + "location": "eastasia", + "tags": {} + } + + Get log analytics workspace by path. It only supports management plane API and Hostname of Azure Resource Manager is added according to Azure environment setting. + + + + + + + -------------------------- Example 2 -------------------------- + Invoke-AzRestMethod https://graph.microsoft.com/v1.0/me + +Headers : {[Date, System.String[]], [Cache-Control, System.String[]], [Transfer-Encoding, System.String[]], [Strict-Transport-Security, System.String[]]…} +Version : 1.1 +StatusCode : 200 +Method : GET +Content : {"@odata.context":"https://graph.microsoft.com/v1.0/$metadata#users/$entity","businessPhones":["......} + + Get current signed in user via MicrosoftGraph API. This example is equivalent to `Get-AzADUser -SignedIn`. + + + + + + + + Online Version: + https://docs.microsoft.com/powershell/module/az.accounts/invoke-azrestmethod + + + + + + Open-AzSurveyLink + Open + AzSurveyLink + + Open survey link in default browser. + + + + Open survey link in default browser. + + + + Open-AzSurveyLink + + + + + + + None + + + + + + + + + + + + + + + -------------------------- Example 1 -------------------------- + Open-AzSurveyLink + +Opening the default browser to https://aka.ms/azpssurvey?Q_CHL=INTERCEPT + + + + + + + + + + Online Version: + https://docs.microsoft.com/powershell/module/az.accounts/open-azsurveylink + + + + + + Register-AzModule + Register + AzModule + + FOR INTERNAL USE ONLY - Provide Runtime Support for AutoRest Generated cmdlets + + + + FOR INTERNAL USE ONLY - Provide Runtime Support for AutoRest Generated cmdlets + + + + Register-AzModule + + Confirm + + Prompts you for confirmation before running the cmdlet. + + + System.Management.Automation.SwitchParameter + + + False + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + + System.Management.Automation.SwitchParameter + + + False + + + + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + System.Management.Automation.SwitchParameter + + System.Management.Automation.SwitchParameter + + + False + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + System.Management.Automation.SwitchParameter + + System.Management.Automation.SwitchParameter + + + False + + + + + + None + + + + + + + + + + System.Object + + + + + + + + + + + + + + -------------------------- Example 1 -------------------------- + Register-AzModule + + Used Internally by AutoRest-generated cmdlets + + + + + + + + Online Version: + https://docs.microsoft.com/powershell/module/az.accounts/register-azmodule + + + + + + Remove-AzContext + Remove + AzContext + + Remove a context from the set of available contexts + + + + Remove an azure context from the set of contexts + + + + Remove-AzContext + + DefaultProfile + + The credentials, tenant and subscription used for communication with azure. + + Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer + + Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer + + + None + + + Force + + Remove context even if it is the default + + + System.Management.Automation.SwitchParameter + + + False + + + InputObject + + A context object, normally passed through the pipeline. + + Microsoft.Azure.Commands.Profile.Models.Core.PSAzureContext + + Microsoft.Azure.Commands.Profile.Models.Core.PSAzureContext + + + None + + + PassThru + + Return the removed context + + + System.Management.Automation.SwitchParameter + + + False + + + Scope + + Determines the scope of context changes, for example, whether changes apply only to the current process, or to all sessions started by this user + + + Process + CurrentUser + + Microsoft.Azure.Commands.Profile.Common.ContextModificationScope + + Microsoft.Azure.Commands.Profile.Common.ContextModificationScope + + + None + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + + System.Management.Automation.SwitchParameter + + + False + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + + System.Management.Automation.SwitchParameter + + + False + + + + Remove-AzContext + + Name + + The name of the context + + System.String + + System.String + + + None + + + DefaultProfile + + The credentials, tenant and subscription used for communication with azure. + + Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer + + Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer + + + None + + + Force + + Remove context even if it is the default + + + System.Management.Automation.SwitchParameter + + + False + + + PassThru + + Return the removed context + + + System.Management.Automation.SwitchParameter + + + False + + + Scope + + Determines the scope of context changes, for example, whether changes apply only to the current process, or to all sessions started by this user + + + Process + CurrentUser + + Microsoft.Azure.Commands.Profile.Common.ContextModificationScope + + Microsoft.Azure.Commands.Profile.Common.ContextModificationScope + + + None + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + + System.Management.Automation.SwitchParameter + + + False + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + + System.Management.Automation.SwitchParameter + + + False + + + + + + DefaultProfile + + The credentials, tenant and subscription used for communication with azure. + + Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer + + Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer + + + None + + + Force + + Remove context even if it is the default + + System.Management.Automation.SwitchParameter + + System.Management.Automation.SwitchParameter + + + False + + + InputObject + + A context object, normally passed through the pipeline. + + Microsoft.Azure.Commands.Profile.Models.Core.PSAzureContext + + Microsoft.Azure.Commands.Profile.Models.Core.PSAzureContext + + + None + + + Name + + The name of the context + + System.String + + System.String + + + None + + + PassThru + + Return the removed context + + System.Management.Automation.SwitchParameter + + System.Management.Automation.SwitchParameter + + + False + + + Scope + + Determines the scope of context changes, for example, whether changes apply only to the current process, or to all sessions started by this user + + Microsoft.Azure.Commands.Profile.Common.ContextModificationScope + + Microsoft.Azure.Commands.Profile.Common.ContextModificationScope + + + None + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + System.Management.Automation.SwitchParameter + + System.Management.Automation.SwitchParameter + + + False + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + System.Management.Automation.SwitchParameter + + System.Management.Automation.SwitchParameter + + + False + + + + + + Microsoft.Azure.Commands.Profile.Models.Core.PSAzureContext + + + + + + + + + + Microsoft.Azure.Commands.Profile.Models.Core.PSAzureContext + + + + + + + + + + + + + + -------------------------- Example 1 -------------------------- + Remove-AzContext -Name Default + + Remove the context named default + + + + + + + + Online Version: + https://docs.microsoft.com/powershell/module/az.accounts/remove-azcontext + + + + + + Remove-AzEnvironment + Remove + AzEnvironment + + Removes endpoints and metadata for connecting to a given Azure instance. + + + + The Remove-AzEnvironment cmdlet removes endpoints and metadata information for connecting to a given Azure instance. + + + + Remove-AzEnvironment + + Name + + Specifies the name of the environment to remove. + + System.String + + System.String + + + None + + + DefaultProfile + + The credentials, tenant and subscription used for communication with azure. + + Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer + + Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer + + + None + + + Scope + + Determines the scope of context changes, for example, whether changes apply only to the current process, or to all sessions started by this user. + + + Process + CurrentUser + + Microsoft.Azure.Commands.Profile.Common.ContextModificationScope + + Microsoft.Azure.Commands.Profile.Common.ContextModificationScope + + + None + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + + System.Management.Automation.SwitchParameter + + + False + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + + System.Management.Automation.SwitchParameter + + + False + + + + + + DefaultProfile + + The credentials, tenant and subscription used for communication with azure. + + Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer + + Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer + + + None + + + Name + + Specifies the name of the environment to remove. + + System.String + + System.String + + + None + + + Scope + + Determines the scope of context changes, for example, whether changes apply only to the current process, or to all sessions started by this user. + + Microsoft.Azure.Commands.Profile.Common.ContextModificationScope + + Microsoft.Azure.Commands.Profile.Common.ContextModificationScope + + + None + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + System.Management.Automation.SwitchParameter + + System.Management.Automation.SwitchParameter + + + False + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + System.Management.Automation.SwitchParameter + + System.Management.Automation.SwitchParameter + + + False + + + + + + System.String + + + + + + + + + + Microsoft.Azure.Commands.Profile.Models.PSAzureEnvironment + + + + + + + + + + + + + + ----- Example 1: Creating and removing a test environment ----- + Add-AzEnvironment -Name TestEnvironment ` + -ActiveDirectoryEndpoint TestADEndpoint ` + -ActiveDirectoryServiceEndpointResourceId TestADApplicationId ` + -ResourceManagerEndpoint TestRMEndpoint ` + -GalleryEndpoint TestGalleryEndpoint ` + -GraphEndpoint TestGraphEndpoint + +Name Resource Manager Url ActiveDirectory Authority +---- -------------------- ------------------------- +TestEnvironment TestRMEndpoint TestADEndpoint/ + +Remove-AzEnvironment -Name TestEnvironment + +Name Resource Manager Url ActiveDirectory Authority +---- -------------------- ------------------------- +TestEnvironment TestRMEndpoint TestADEndpoint/ + + This example shows how to create an environment using Add-AzEnvironment, and then how to delete the environment using Remove-AzEnvironment. + + + + + + + + Online Version: + https://docs.microsoft.com/powershell/module/az.accounts/remove-azenvironment + + + Add-AzEnvironment + + + + Get-AzEnvironment + + + + Set-AzEnvironment + + + + + + + Rename-AzContext + Rename + AzContext + + Rename an Azure context. By default contexts are named by user account and subscription. + + + + Rename an Azure context. By default contexts are named by user account and subscription. + + + + Rename-AzContext + + TargetName + + The new name of the context + + System.String + + System.String + + + None + + + DefaultProfile + + The credentials, tenant and subscription used for communication with azure + + Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer + + Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer + + + None + + + Force + + Rename the context even if the target context already exists + + + System.Management.Automation.SwitchParameter + + + False + + + InputObject + + A context object, normally passed through the pipeline. + + Microsoft.Azure.Commands.Profile.Models.Core.PSAzureContext + + Microsoft.Azure.Commands.Profile.Models.Core.PSAzureContext + + + None + + + PassThru + + Return the renamed context. + + + System.Management.Automation.SwitchParameter + + + False + + + Scope + + Determines the scope of context changes, for example, whether changes apply only to the current process, or to all sessions started by this user + + + Process + CurrentUser + + Microsoft.Azure.Commands.Profile.Common.ContextModificationScope + + Microsoft.Azure.Commands.Profile.Common.ContextModificationScope + + + None + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + + System.Management.Automation.SwitchParameter + + + False + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + + System.Management.Automation.SwitchParameter + + + False + + + + Rename-AzContext + + SourceName + + The name of the context + + System.String + + System.String + + + None + + + TargetName + + The new name of the context + + System.String + + System.String + + + None + + + DefaultProfile + + The credentials, tenant and subscription used for communication with azure + + Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer + + Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer + + + None + + + Force + + Rename the context even if the target context already exists + + + System.Management.Automation.SwitchParameter + + + False + + + PassThru + + Return the renamed context. + + + System.Management.Automation.SwitchParameter + + + False + + + Scope + + Determines the scope of context changes, for example, whether changes apply only to the current process, or to all sessions started by this user + + + Process + CurrentUser + + Microsoft.Azure.Commands.Profile.Common.ContextModificationScope + + Microsoft.Azure.Commands.Profile.Common.ContextModificationScope + + + None + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + + System.Management.Automation.SwitchParameter + + + False + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + + System.Management.Automation.SwitchParameter + + + False + + + + + + DefaultProfile + + The credentials, tenant and subscription used for communication with azure + + Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer + + Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer + + + None + + + Force + + Rename the context even if the target context already exists + + System.Management.Automation.SwitchParameter + + System.Management.Automation.SwitchParameter + + + False + + + InputObject + + A context object, normally passed through the pipeline. + + Microsoft.Azure.Commands.Profile.Models.Core.PSAzureContext + + Microsoft.Azure.Commands.Profile.Models.Core.PSAzureContext + + + None + + + PassThru + + Return the renamed context. + + System.Management.Automation.SwitchParameter + + System.Management.Automation.SwitchParameter + + + False + + + Scope + + Determines the scope of context changes, for example, whether changes apply only to the current process, or to all sessions started by this user + + Microsoft.Azure.Commands.Profile.Common.ContextModificationScope + + Microsoft.Azure.Commands.Profile.Common.ContextModificationScope + + + None + + + SourceName + + The name of the context + + System.String + + System.String + + + None + + + TargetName + + The new name of the context + + System.String + + System.String + + + None + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + System.Management.Automation.SwitchParameter + + System.Management.Automation.SwitchParameter + + + False + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + System.Management.Automation.SwitchParameter + + System.Management.Automation.SwitchParameter + + + False + + + + + + Microsoft.Azure.Commands.Profile.Models.Core.PSAzureContext + + + + + + + + + + Microsoft.Azure.Commands.Profile.Models.Core.PSAzureContext + + + + + + + + + + + + + + ------ Example 1: Rename a context using named parameters ------ + Rename-AzContext -SourceName "[user1@contoso.org; 12345-6789-2345-3567890]" -TargetName "Work" + + Rename the context for 'user1@contoso.org' with subscription '12345-6789-2345-3567890' to 'Work'. After this command, you will be able to target the context using 'Select-AzContext Work'. Note that you can tab through the values for 'SourceName' using tab completion. + + + + + + --- Example 2: Rename a context using positional parameters --- + Rename-AzContext "My context" "Work" + + Rename the context named "My context" to "Work". After this command, you will be able to target the context using Select-AzContext Work + + + + + + + + Online Version: + https://docs.microsoft.com/powershell/module/az.accounts/rename-azcontext + + + + + + Resolve-AzError + Resolve + AzError + + Display detailed information about PowerShell errors, with extended details for Azure PowerShell errors. + + + + Resolves and displays detailed information about errors in the current PowerShell session, including where the error occurred in script, stack trace, and all inner and aggregate exceptions. For Azure PowerShell errors provides additional detail in debugging service issues, including complete detail about the request and server response that caused the error. + + + + Resolve-AzError + + Error + + One or more error records to resolve. If no parameters are specified, all errors in the session are resolved. + + System.Management.Automation.ErrorRecord[] + + System.Management.Automation.ErrorRecord[] + + + None + + + DefaultProfile + + The credentials, tenant and subscription used for communication with azure + + Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer + + Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer + + + None + + + + Resolve-AzError + + DefaultProfile + + The credentials, tenant and subscription used for communication with azure + + Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer + + Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer + + + None + + + Last + + Resolve only the last error that occurred in the session. + + + System.Management.Automation.SwitchParameter + + + False + + + + + + DefaultProfile + + The credentials, tenant and subscription used for communication with azure + + Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer + + Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer + + + None + + + Error + + One or more error records to resolve. If no parameters are specified, all errors in the session are resolved. + + System.Management.Automation.ErrorRecord[] + + System.Management.Automation.ErrorRecord[] + + + None + + + Last + + Resolve only the last error that occurred in the session. + + System.Management.Automation.SwitchParameter + + System.Management.Automation.SwitchParameter + + + False + + + + + + System.Management.Automation.ErrorRecord[] + + + + + + + + + + Microsoft.Azure.Commands.Profile.Errors.AzureErrorRecord + + + + + + + + Microsoft.Azure.Commands.Profile.Errors.AzureExceptionRecord + + + + + + + + Microsoft.Azure.Commands.Profile.Errors.AzureRestExceptionRecord + + + + + + + + + + + + + + -------------- Example 1: Resolve the Last Error -------------- + Resolve-AzError -Last + +HistoryId: 3 + + +Message : Run Connect-AzAccount to login. +StackTrace : at Microsoft.Azure.Commands.ResourceManager.Common.AzureRMCmdlet.get_DefaultContext() in AzureRmCmdlet.cs:line 85 + at Microsoft.Azure.Commands.ResourceManager.Common.AzureRMCmdlet.LogCmdletStartInvocationInfo() in AzureRmCmdlet.cs:line 269 + at Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet.BeginProcessing() inAzurePSCmdlet.cs:line 299 + at Microsoft.Azure.Commands.ResourceManager.Common.AzureRMCmdlet.BeginProcessing() in AzureRmCmdlet.cs:line 320 + at Microsoft.Azure.Commands.Profile.GetAzureRMSubscriptionCommand.BeginProcessing() in GetAzureRMSubscription.cs:line 49 + at System.Management.Automation.Cmdlet.DoBeginProcessing() + at System.Management.Automation.CommandProcessorBase.DoBegin() +Exception : System.Management.Automation.PSInvalidOperationException +InvocationInfo : {Get-AzSubscription} +Line : Get-AzSubscription +Position : At line:1 char:1 + + Get-AzSubscription + + ~~~~~~~~~~~~~~~~~~~~~~~ +HistoryId : 3 + + Get details of the last error. + + + + + + --------- Example 2: Resolve all Errors in the Session --------- + Resolve-AzError + +HistoryId: 8 + + +RequestId : b61309e8-09c9-4f0d-ba56-08a6b28c731d +Message : Resource group 'contoso' could not be found. +ServerMessage : ResourceGroupNotFound: Resource group 'contoso' could not be found. + (System.Collections.Generic.List`1[Microsoft.Rest.Azure.CloudError]) +ServerResponse : {NotFound} +RequestMessage : {GET https://management.azure.com/subscriptions/00977cdb-163f-435f-9c32-39ec8ae61f4d/resourceGroups/co + ntoso/providers/Microsoft.Storage/storageAccounts/contoso?api-version=2016-12-01} +InvocationInfo : {Get-AzStorageAccount} +Line : Get-AzStorageAccount -ResourceGroupName contoso -Name contoso +Position : At line:1 char:1 + + Get-AzStorageAccount -ResourceGroupName contoso -Name contoso + + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +StackTrace : at Microsoft.Azure.Management.Storage.StorageAccountsOperations.<GetPropertiesWithHttpMessagesAsync + >d__8.MoveNext() + --- End of stack trace from previous location where exception was thrown --- + at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() + at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) + at Microsoft.Azure.Management.Storage.StorageAccountsOperationsExtensions.<GetPropertiesAsync>d__7. + MoveNext() + --- End of stack trace from previous location where exception was thrown --- + at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() + at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) + at Microsoft.Azure.Management.Storage.StorageAccountsOperationsExtensions.GetProperties(IStorageAcc + ountsOperations operations, String resourceGroupName, String accountName) + at Microsoft.Azure.Commands.Management.Storage.GetAzureStorageAccountCommand.ExecuteCmdlet() in C:\ + zd\azure-powershell\src\ResourceManager\Storage\Commands.Management.Storage\StorageAccount\GetAzureSto + rageAccount.cs:line 70 + at Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet.ProcessRecord() in + C:\zd\azure-powershell\src\Common\Commands.Common\AzurePSCmdlet.cs:line 642 +HistoryId : 8 + + + HistoryId: 5 + + +Message : Run Connect-AzAccount to login. +StackTrace : at Microsoft.Azure.Commands.ResourceManager.Common.AzureRMCmdlet.get_DefaultContext() in C:\zd\azur + e-powershell\src\ResourceManager\Common\Commands.ResourceManager.Common\AzureRmCmdlet.cs:line 85 + at Microsoft.Azure.Commands.ResourceManager.Common.AzureRMCmdlet.LogCmdletStartInvocationInfo() in + C:\zd\azure-powershell\src\ResourceManager\Common\Commands.ResourceManager.Common\AzureRmCmdlet.cs:lin + e 269 + at Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet.BeginProcessing() in + C:\zd\azure-powershell\src\Common\Commands.Common\AzurePSCmdlet.cs:line 299 + at Microsoft.Azure.Commands.ResourceManager.Common.AzureRMCmdlet.BeginProcessing() in C:\zd\azure-p + owershell\src\ResourceManager\Common\Commands.ResourceManager.Common\AzureRmCmdlet.cs:line 320 + at Microsoft.Azure.Commands.Profile.GetAzureRMSubscriptionCommand.BeginProcessing() in C:\zd\azure- + powershell\src\ResourceManager\Profile\Commands.Profile\Subscription\GetAzureRMSubscription.cs:line 49 + at System.Management.Automation.Cmdlet.DoBeginProcessing() + at System.Management.Automation.CommandProcessorBase.DoBegin() +Exception : System.Management.Automation.PSInvalidOperationException +InvocationInfo : {Get-AzSubscription} +Line : Get-AzSubscription +Position : At line:1 char:1 + + Get-AzSubscription + + ~~~~~~~~~~~~~~~~~~~~~~~ +HistoryId : 5 + + Get details of all errors that have occurred in the current session. + + + + + + ------------- Example 3: Resolve a Specific Error ------------- + Resolve-AzError $Error[0] + +HistoryId: 8 + + +RequestId : b61309e8-09c9-4f0d-ba56-08a6b28c731d +Message : Resource group 'contoso' could not be found. +ServerMessage : ResourceGroupNotFound: Resource group 'contoso' could not be found. + (System.Collections.Generic.List`1[Microsoft.Rest.Azure.CloudError]) +ServerResponse : {NotFound} +RequestMessage : {GET https://management.azure.com/subscriptions/00977cdb-163f-435f-9c32-39ec8ae61f4d/resourceGroups/co + ntoso/providers/Microsoft.Storage/storageAccounts/contoso?api-version=2016-12-01} +InvocationInfo : {Get-AzStorageAccount} +Line : Get-AzStorageAccount -ResourceGroupName contoso -Name contoso +Position : At line:1 char:1 + + Get-AzStorageAccount -ResourceGroupName contoso -Name contoso + + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +StackTrace : at Microsoft.Azure.Management.Storage.StorageAccountsOperations.<GetPropertiesWithHttpMessagesAsync + >d__8.MoveNext() + --- End of stack trace from previous location where exception was thrown --- + at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() + at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) + at Microsoft.Azure.Management.Storage.StorageAccountsOperationsExtensions.<GetPropertiesAsync>d__7. + MoveNext() + --- End of stack trace from previous location where exception was thrown --- + at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() + at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) + at Microsoft.Azure.Management.Storage.StorageAccountsOperationsExtensions.GetProperties(IStorageAcc + ountsOperations operations, String resourceGroupName, String accountName) + at Microsoft.Azure.Commands.Management.Storage.GetAzureStorageAccountCommand.ExecuteCmdlet() in C:\ + zd\azure-powershell\src\ResourceManager\Storage\Commands.Management.Storage\StorageAccount\GetAzureSto + rageAccount.cs:line 70 + at Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet.ProcessRecord() in + C:\zd\azure-powershell\src\Common\Commands.Common\AzurePSCmdlet.cs:line 642 +HistoryId : 8 + + Get details of the specified error. + + + + + + + + Online Version: + https://docs.microsoft.com/powershell/module/az.accounts/resolve-azerror + + + + + + Save-AzContext + Save + AzContext + + Saves the current authentication information for use in other PowerShell sessions. + + + + The Save-AzContext cmdlet saves the current authentication information for use in other PowerShell sessions. + + + + Save-AzContext + + Profile + + Specifies the Azure context from which this cmdlet reads. If you do not specify a context, this cmdlet reads from the local default context. + + Microsoft.Azure.Commands.Common.Authentication.Models.AzureRmProfile + + Microsoft.Azure.Commands.Common.Authentication.Models.AzureRmProfile + + + None + + + Path + + Specifies the path of the file to which to save authentication information. + + System.String + + System.String + + + None + + + DefaultProfile + + The credentials, tenant, and subscription used for communication with azure. + + Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer + + Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer + + + None + + + Force + + Overwrite the given file if it exists + + + System.Management.Automation.SwitchParameter + + + False + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + + System.Management.Automation.SwitchParameter + + + False + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + + System.Management.Automation.SwitchParameter + + + False + + + + + + DefaultProfile + + The credentials, tenant, and subscription used for communication with azure. + + Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer + + Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer + + + None + + + Force + + Overwrite the given file if it exists + + System.Management.Automation.SwitchParameter + + System.Management.Automation.SwitchParameter + + + False + + + Path + + Specifies the path of the file to which to save authentication information. + + System.String + + System.String + + + None + + + Profile + + Specifies the Azure context from which this cmdlet reads. If you do not specify a context, this cmdlet reads from the local default context. + + Microsoft.Azure.Commands.Common.Authentication.Models.AzureRmProfile + + Microsoft.Azure.Commands.Common.Authentication.Models.AzureRmProfile + + + None + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + System.Management.Automation.SwitchParameter + + System.Management.Automation.SwitchParameter + + + False + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + System.Management.Automation.SwitchParameter + + System.Management.Automation.SwitchParameter + + + False + + + + + + Microsoft.Azure.Commands.Common.Authentication.Models.AzureRmProfile + + + + + + + + + + Microsoft.Azure.Commands.Profile.Models.Core.PSAzureProfile + + + + + + + + + + + + + + ------- Example 1: Saving the current session's context ------- + Connect-AzAccount +Save-AzContext -Path C:\test.json + + This example saves the current session's Azure context to the JSON file provided. + + + + + + -------------- Example 2: Saving a given context -------------- + Save-AzContext -Profile (Connect-AzAccount) -Path C:\test.json + + This example saves the Azure context that is passed through to the cmdlet to the JSON file provided. + + + + + + + + Online Version: + https://docs.microsoft.com/powershell/module/az.accounts/save-azcontext + + + + + + Select-AzContext + Select + AzContext + + Select a subscription and account to target in Azure PowerShell cmdlets + + + + Select a subscription to target (or account or tenant) in Azure PowerShell cmdlets. After this cmdlet, future cmdlets will target the selected context. + + + + Select-AzContext + + DefaultProfile + + The credentials, tenant and subscription used for communication with azure + + Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer + + Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer + + + None + + + InputObject + + A context object, normally passed through the pipeline. + + Microsoft.Azure.Commands.Profile.Models.Core.PSAzureContext + + Microsoft.Azure.Commands.Profile.Models.Core.PSAzureContext + + + None + + + Scope + + Determines the scope of context changes, for example, whether changes apply only to the current process, or to all sessions started by this user + + + Process + CurrentUser + + Microsoft.Azure.Commands.Profile.Common.ContextModificationScope + + Microsoft.Azure.Commands.Profile.Common.ContextModificationScope + + + None + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + + System.Management.Automation.SwitchParameter + + + False + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + + System.Management.Automation.SwitchParameter + + + False + + + + Select-AzContext + + Name + + The name of the context + + System.String + + System.String + + + None + + + DefaultProfile + + The credentials, tenant and subscription used for communication with azure + + Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer + + Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer + + + None + + + Scope + + Determines the scope of context changes, for example, whether changes apply only to the current process, or to all sessions started by this user + + + Process + CurrentUser + + Microsoft.Azure.Commands.Profile.Common.ContextModificationScope + + Microsoft.Azure.Commands.Profile.Common.ContextModificationScope + + + None + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + + System.Management.Automation.SwitchParameter + + + False + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + + System.Management.Automation.SwitchParameter + + + False + + + + + + DefaultProfile + + The credentials, tenant and subscription used for communication with azure + + Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer + + Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer + + + None + + + InputObject + + A context object, normally passed through the pipeline. + + Microsoft.Azure.Commands.Profile.Models.Core.PSAzureContext + + Microsoft.Azure.Commands.Profile.Models.Core.PSAzureContext + + + None + + + Name + + The name of the context + + System.String + + System.String + + + None + + + Scope + + Determines the scope of context changes, for example, whether changes apply only to the current process, or to all sessions started by this user + + Microsoft.Azure.Commands.Profile.Common.ContextModificationScope + + Microsoft.Azure.Commands.Profile.Common.ContextModificationScope + + + None + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + System.Management.Automation.SwitchParameter + + System.Management.Automation.SwitchParameter + + + False + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + System.Management.Automation.SwitchParameter + + System.Management.Automation.SwitchParameter + + + False + + + + + + Microsoft.Azure.Commands.Profile.Models.Core.PSAzureContext + + + + + + + + + + Microsoft.Azure.Commands.Profile.Models.Core.PSAzureContext + + + + + + + + + + + + + + -------------- Example 1: Target a named context -------------- + Select-AzContext "Work" + +Name Account SubscriptionName Environment TenantId +---- ------- ---------------- ----------- -------- +Work test@outlook.com Subscription1 AzureCloud xxxxxxxx-x... + + Target future Azure PowerShell cmdlets at the account, tenant, and subscription in the 'Work' context. + + + + + + -------------------------- Example 2 -------------------------- + <!-- Aladdin Generated Example --> +Select-AzContext -Name TestEnvironment -Scope Process + + + + + + + + + + Online Version: + https://docs.microsoft.com/powershell/module/az.accounts/select-azcontext + + + + + + Send-Feedback + Send + Feedback + + Sends feedback to the Azure PowerShell team via a set of guided prompts. + + + + The Send-Feedback cmdlet sends feedback to the Azure PowerShell team. + + + + Send-Feedback + + DefaultProfile + + The credentials, tenant, and subscription used for communication with azure. + + Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer + + Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer + + + None + + + + + + DefaultProfile + + The credentials, tenant, and subscription used for communication with azure. + + Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer + + Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer + + + None + + + + + + None + + + + + + + + + + System.Void + + + + + + + + + + + + + + -------------------------- Example 1: -------------------------- + Send-Feedback + +With zero (0) being the least and ten (10) being the most, how likely are you to recommend Azure PowerShell to a friend or colleague? + +10 + +What does Azure PowerShell do well? + +Response. + +Upon what could Azure PowerShell improve? + +Response. + +Please enter your email if you are interested in providing follow up information: + +your@email.com + + + + + + + + + + Online Version: + https://docs.microsoft.com/powershell/module/az.accounts/send-feedback + + + + + + Set-AzContext + Set + AzContext + + Sets the tenant, subscription, and environment for cmdlets to use in the current session. + + + + The Set-AzContext cmdlet sets authentication information for cmdlets that you run in the current session. The context includes tenant, subscription, and environment information. + + + + Set-AzContext + + Context + + Specifies the context for the current session. + + Microsoft.Azure.Commands.Profile.Models.Core.PSAzureContext + + Microsoft.Azure.Commands.Profile.Models.Core.PSAzureContext + + + None + + + DefaultProfile + + The credentials, tenant, and subscription used for communication with azure. + + Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer + + Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer + + + None + + + ExtendedProperty + + Additional context properties + + System.Collections.Generic.IDictionary`2[System.String,System.String] + + System.Collections.Generic.IDictionary`2[System.String,System.String] + + + None + + + Force + + Overwrite the existing context with the same name, if any. + + + System.Management.Automation.SwitchParameter + + + False + + + Name + + Name of the context + + System.String + + System.String + + + None + + + Scope + + Determines the scope of context changes, for example, whether changes apply only to the current process, or to all sessions started by this user. + + + Process + CurrentUser + + Microsoft.Azure.Commands.Profile.Common.ContextModificationScope + + Microsoft.Azure.Commands.Profile.Common.ContextModificationScope + + + None + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + + System.Management.Automation.SwitchParameter + + + False + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + + System.Management.Automation.SwitchParameter + + + False + + + + Set-AzContext + + Subscription + + The name or id of the subscription that the context should be set to. This parameter has aliases to -SubscriptionName and -SubscriptionId, so, for clarity, either of these can be used instead of -Subscription when specifying name and id, respectively. + + System.String + + System.String + + + None + + + DefaultProfile + + The credentials, tenant, and subscription used for communication with azure. + + Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer + + Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer + + + None + + + ExtendedProperty + + Additional context properties + + System.Collections.Generic.IDictionary`2[System.String,System.String] + + System.Collections.Generic.IDictionary`2[System.String,System.String] + + + None + + + Force + + Overwrite the existing context with the same name, if any. + + + System.Management.Automation.SwitchParameter + + + False + + + Name + + Name of the context + + System.String + + System.String + + + None + + + Scope + + Determines the scope of context changes, for example, whether changes apply only to the current process, or to all sessions started by this user. + + + Process + CurrentUser + + Microsoft.Azure.Commands.Profile.Common.ContextModificationScope + + Microsoft.Azure.Commands.Profile.Common.ContextModificationScope + + + None + + + Tenant + + Tenant domain name or ID + + System.String + + System.String + + + None + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + + System.Management.Automation.SwitchParameter + + + False + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + + System.Management.Automation.SwitchParameter + + + False + + + + Set-AzContext + + SubscriptionObject + + A subscription object + + Microsoft.Azure.Commands.Profile.Models.PSAzureSubscription + + Microsoft.Azure.Commands.Profile.Models.PSAzureSubscription + + + None + + + DefaultProfile + + The credentials, tenant, and subscription used for communication with azure. + + Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer + + Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer + + + None + + + ExtendedProperty + + Additional context properties + + System.Collections.Generic.IDictionary`2[System.String,System.String] + + System.Collections.Generic.IDictionary`2[System.String,System.String] + + + None + + + Force + + Overwrite the existing context with the same name, if any. + + + System.Management.Automation.SwitchParameter + + + False + + + Name + + Name of the context + + System.String + + System.String + + + None + + + Scope + + Determines the scope of context changes, for example, whether changes apply only to the current process, or to all sessions started by this user. + + + Process + CurrentUser + + Microsoft.Azure.Commands.Profile.Common.ContextModificationScope + + Microsoft.Azure.Commands.Profile.Common.ContextModificationScope + + + None + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + + System.Management.Automation.SwitchParameter + + + False + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + + System.Management.Automation.SwitchParameter + + + False + + + + Set-AzContext + + DefaultProfile + + The credentials, tenant, and subscription used for communication with azure. + + Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer + + Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer + + + None + + + ExtendedProperty + + Additional context properties + + System.Collections.Generic.IDictionary`2[System.String,System.String] + + System.Collections.Generic.IDictionary`2[System.String,System.String] + + + None + + + Force + + Overwrite the existing context with the same name, if any. + + + System.Management.Automation.SwitchParameter + + + False + + + Name + + Name of the context + + System.String + + System.String + + + None + + + Scope + + Determines the scope of context changes, for example, whether changes apply only to the current process, or to all sessions started by this user. + + + Process + CurrentUser + + Microsoft.Azure.Commands.Profile.Common.ContextModificationScope + + Microsoft.Azure.Commands.Profile.Common.ContextModificationScope + + + None + + + Tenant + + Tenant domain name or ID + + System.String + + System.String + + + None + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + + System.Management.Automation.SwitchParameter + + + False + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + + System.Management.Automation.SwitchParameter + + + False + + + + Set-AzContext + + TenantObject + + A Tenant Object + + Microsoft.Azure.Commands.Profile.Models.PSAzureTenant + + Microsoft.Azure.Commands.Profile.Models.PSAzureTenant + + + None + + + DefaultProfile + + The credentials, tenant, and subscription used for communication with azure. + + Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer + + Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer + + + None + + + ExtendedProperty + + Additional context properties + + System.Collections.Generic.IDictionary`2[System.String,System.String] + + System.Collections.Generic.IDictionary`2[System.String,System.String] + + + None + + + Force + + Overwrite the existing context with the same name, if any. + + + System.Management.Automation.SwitchParameter + + + False + + + Name + + Name of the context + + System.String + + System.String + + + None + + + Scope + + Determines the scope of context changes, for example, whether changes apply only to the current process, or to all sessions started by this user. + + + Process + CurrentUser + + Microsoft.Azure.Commands.Profile.Common.ContextModificationScope + + Microsoft.Azure.Commands.Profile.Common.ContextModificationScope + + + None + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + + System.Management.Automation.SwitchParameter + + + False + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + + System.Management.Automation.SwitchParameter + + + False + + + + + + Context + + Specifies the context for the current session. + + Microsoft.Azure.Commands.Profile.Models.Core.PSAzureContext + + Microsoft.Azure.Commands.Profile.Models.Core.PSAzureContext + + + None + + + DefaultProfile + + The credentials, tenant, and subscription used for communication with azure. + + Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer + + Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer + + + None + + + ExtendedProperty + + Additional context properties + + System.Collections.Generic.IDictionary`2[System.String,System.String] + + System.Collections.Generic.IDictionary`2[System.String,System.String] + + + None + + + Force + + Overwrite the existing context with the same name, if any. + + System.Management.Automation.SwitchParameter + + System.Management.Automation.SwitchParameter + + + False + + + Name + + Name of the context + + System.String + + System.String + + + None + + + Scope + + Determines the scope of context changes, for example, whether changes apply only to the current process, or to all sessions started by this user. + + Microsoft.Azure.Commands.Profile.Common.ContextModificationScope + + Microsoft.Azure.Commands.Profile.Common.ContextModificationScope + + + None + + + Subscription + + The name or id of the subscription that the context should be set to. This parameter has aliases to -SubscriptionName and -SubscriptionId, so, for clarity, either of these can be used instead of -Subscription when specifying name and id, respectively. + + System.String + + System.String + + + None + + + SubscriptionObject + + A subscription object + + Microsoft.Azure.Commands.Profile.Models.PSAzureSubscription + + Microsoft.Azure.Commands.Profile.Models.PSAzureSubscription + + + None + + + Tenant + + Tenant domain name or ID + + System.String + + System.String + + + None + + + TenantObject + + A Tenant Object + + Microsoft.Azure.Commands.Profile.Models.PSAzureTenant + + Microsoft.Azure.Commands.Profile.Models.PSAzureTenant + + + None + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + System.Management.Automation.SwitchParameter + + System.Management.Automation.SwitchParameter + + + False + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + System.Management.Automation.SwitchParameter + + System.Management.Automation.SwitchParameter + + + False + + + + + + Microsoft.Azure.Commands.Profile.Models.Core.PSAzureContext + + + + + + + + Microsoft.Azure.Commands.Profile.Models.PSAzureTenant + + + + + + + + Microsoft.Azure.Commands.Profile.Models.PSAzureSubscription + + + + + + + + + + Microsoft.Azure.Commands.Profile.Models.Core.PSAzureContext + + + + + + + + + + + + + + ----------- Example 1: Set the subscription context ----------- + Set-AzContext -Subscription "xxxx-xxxx-xxxx-xxxx" + +Name Account SubscriptionName Environment TenantId +---- ------- ---------------- ----------- -------- +Work test@outlook.com Subscription1 AzureCloud xxxxxxxx-x... + + This command sets the context to use the specified subscription. + + + + + + + + Online Version: + https://docs.microsoft.com/powershell/module/az.accounts/set-azcontext + + + Get-AzContext + + + + + + + Set-AzDefault + Set + AzDefault + + Sets a default in the current context + + + + The Set-AzDefault cmdlet adds or changes the defaults in the current context. + + + + Set-AzDefault + + DefaultProfile + + The credentials, account, tenant, and subscription used for communication with azure. + + Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer + + Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer + + + None + + + Force + + Create a new resource group if specified default does not exist + + + System.Management.Automation.SwitchParameter + + + False + + + ResourceGroupName + + Name of the resource group being set as default + + System.String + + System.String + + + None + + + Scope + + Determines the scope of context changes, for example, whether changes apply only to the current process, or to all sessions started by this user. + + + Process + CurrentUser + + Microsoft.Azure.Commands.Profile.Common.ContextModificationScope + + Microsoft.Azure.Commands.Profile.Common.ContextModificationScope + + + None + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + + System.Management.Automation.SwitchParameter + + + False + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + + System.Management.Automation.SwitchParameter + + + False + + + + + + DefaultProfile + + The credentials, account, tenant, and subscription used for communication with azure. + + Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer + + Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer + + + None + + + Force + + Create a new resource group if specified default does not exist + + System.Management.Automation.SwitchParameter + + System.Management.Automation.SwitchParameter + + + False + + + ResourceGroupName + + Name of the resource group being set as default + + System.String + + System.String + + + None + + + Scope + + Determines the scope of context changes, for example, whether changes apply only to the current process, or to all sessions started by this user. + + Microsoft.Azure.Commands.Profile.Common.ContextModificationScope + + Microsoft.Azure.Commands.Profile.Common.ContextModificationScope + + + None + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + System.Management.Automation.SwitchParameter + + System.Management.Automation.SwitchParameter + + + False + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + System.Management.Automation.SwitchParameter + + System.Management.Automation.SwitchParameter + + + False + + + + + + System.String + + + + + + + + + + Microsoft.Azure.Commands.Profile.Models.PSResourceGroup + + + + + + + + + + + + + + -------------------------- Example 1 -------------------------- + Set-AzDefault -ResourceGroupName myResourceGroup + +Id : /subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/resourceGroups/myResourceGroup +Name : myResourceGroup +Properties : Microsoft.Azure.Management.Internal.Resources.Models.ResourceGroupProperties +Location : eastus +ManagedBy : +Tags : + + This command sets the default resource group to the resource group specified by the user. + + + + + + + + Online Version: + https://docs.microsoft.com/powershell/module/az.accounts/set-azdefault + + + + + + Set-AzEnvironment + Set + AzEnvironment + + Sets properties for an Azure environment. + + + + The Set-AzEnvironment cmdlet sets endpoints and metadata for connecting to an instance of Azure. + + + + Set-AzEnvironment + + Name + + Specifies the name of the environment to modify. + + System.String + + System.String + + + None + + + PublishSettingsFileUrl + + Specifies the URL from which .publishsettings files can be downloaded. + + System.String + + System.String + + + None + + + AzureKeyVaultDnsSuffix + + Dns suffix of Azure Key Vault service. Example is vault-int.azure-int.net + + System.String + + System.String + + + None + + + AzureKeyVaultServiceEndpointResourceId + + Resource identifier of Azure Key Vault data service that is the recipient of the requested token. + + System.String + + System.String + + + None + + + TrafficManagerDnsSuffix + + Specifies the domain-name suffix for Azure Traffic Manager services. + + System.String + + System.String + + + None + + + SqlDatabaseDnsSuffix + + Specifies the domain-name suffix for Azure SQL Database servers. + + System.String + + System.String + + + None + + + AzureDataLakeStoreFileSystemEndpointSuffix + + Dns Suffix of Azure Data Lake Store FileSystem. Example: azuredatalake.net + + System.String + + System.String + + + None + + + AzureDataLakeAnalyticsCatalogAndJobEndpointSuffix + + Dns Suffix of Azure Data Lake Analytics job and catalog services + + System.String + + System.String + + + None + + + EnableAdfsAuthentication + + Indicates that Active Directory Federation Services (ADFS) on-premise authentication is allowed. + + + System.Management.Automation.SwitchParameter + + + False + + + AdTenant + + Specifies the default Active Directory tenant. + + System.String + + System.String + + + None + + + GraphAudience + + The audience for tokens authenticating with the AD Graph Endpoint. + + System.String + + System.String + + + None + + + DataLakeAudience + + The audience for tokens authenticating with the AD Data Lake services Endpoint. + + System.String + + System.String + + + None + + + ServiceEndpoint + + Specifies the endpoint for Service Management (RDFE) requests. + + System.String + + System.String + + + None + + + BatchEndpointResourceId + + The resource identifier of the Azure Batch service that is the recipient of the requested token + + System.String + + System.String + + + None + + + AzureOperationalInsightsEndpointResourceId + + The audience for tokens authenticating with the Azure Log Analytics API. + + System.String + + System.String + + + None + + + AzureOperationalInsightsEndpoint + + The endpoint to use when communicating with the Azure Log Analytics API. + + System.String + + System.String + + + None + + + ManagementPortalUrl + + Specifies the URL for the Management Portal. + + System.String + + System.String + + + None + + + StorageEndpoint + + Specifies the endpoint for storage (blob, table, queue, and file) access. + + System.String + + System.String + + + None + + + ActiveDirectoryEndpoint + + Specifies the base authority for Azure Active Directory authentication. + + System.String + + System.String + + + None + + + ResourceManagerEndpoint + + Specifies the URL for Azure Resource Manager requests. + + System.String + + System.String + + + None + + + GalleryEndpoint + + Specifies the endpoint for the Azure Resource Manager gallery of deployment templates. + + System.String + + System.String + + + None + + + ActiveDirectoryServiceEndpointResourceId + + Specifies the audience for tokens that authenticate requests to Azure Resource Manager or Service Management (RDFE) endpoints. + + System.String + + System.String + + + None + + + GraphEndpoint + + Specifies the URL for Graph (Active Directory metadata) requests. + + System.String + + System.String + + + None + + + AzureAnalysisServicesEndpointResourceId + + The resource identifier of the Azure Analysis Services resource. + + System.String + + System.String + + + None + + + AzureAnalysisServicesEndpointSuffix + + The endpoint to use when communicating with the Azure Log Analytics API. + + System.String + + System.String + + + None + + + AzureAttestationServiceEndpointResourceId + + The The resource identifier of the Azure Attestation service that is the recipient of the requested token. + + System.String + + System.String + + + None + + + AzureAttestationServiceEndpointSuffix + + Dns suffix of Azure Attestation service. + + System.String + + System.String + + + None + + + AzureSynapseAnalyticsEndpointResourceId + + The The resource identifier of the Azure Synapse Analytics that is the recipient of the requested token. + + System.String + + System.String + + + None + + + AzureSynapseAnalyticsEndpointSuffix + + Dns suffix of Azure Synapse Analytics. + + System.String + + System.String + + + None + + + ContainerRegistryEndpointSuffix + + Suffix of Azure Container Registry. + + System.String + + System.String + + + None + + + DefaultProfile + + The credentials, account, tenant and subscription used for communication with azure. + + Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer + + Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer + + + None + + + MicrosoftGraphEndpointResourceId + + The resource identifier of Microsoft Graph + + System.String + + System.String + + + None + + + MicrosoftGraphUrl + + Microsoft Graph Url + + System.String + + System.String + + + None + + + Scope + + Determines the scope of context changes, for example, whether changes apply only to the current process, or to all sessions started by this user. + + + Process + CurrentUser + + Microsoft.Azure.Commands.Profile.Common.ContextModificationScope + + Microsoft.Azure.Commands.Profile.Common.ContextModificationScope + + + None + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + + System.Management.Automation.SwitchParameter + + + False + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + + System.Management.Automation.SwitchParameter + + + False + + + + Set-AzEnvironment + + Name + + Specifies the name of the environment to modify. + + System.String + + System.String + + + None + + + ARMEndpoint + + The Azure Resource Manager endpoint. + + System.String + + System.String + + + None + + + AzureKeyVaultDnsSuffix + + Dns suffix of Azure Key Vault service. Example is vault-int.azure-int.net + + System.String + + System.String + + + None + + + AzureKeyVaultServiceEndpointResourceId + + Resource identifier of Azure Key Vault data service that is the recipient of the requested token. + + System.String + + System.String + + + None + + + DataLakeAudience + + The audience for tokens authenticating with the AD Data Lake services Endpoint. + + System.String + + System.String + + + None + + + BatchEndpointResourceId + + The resource identifier of the Azure Batch service that is the recipient of the requested token + + System.String + + System.String + + + None + + + AzureOperationalInsightsEndpointResourceId + + The audience for tokens authenticating with the Azure Log Analytics API. + + System.String + + System.String + + + None + + + AzureOperationalInsightsEndpoint + + The endpoint to use when communicating with the Azure Log Analytics API. + + System.String + + System.String + + + None + + + StorageEndpoint + + Specifies the endpoint for storage (blob, table, queue, and file) access. + + System.String + + System.String + + + None + + + AzureAnalysisServicesEndpointResourceId + + The resource identifier of the Azure Analysis Services resource. + + System.String + + System.String + + + None + + + AzureAnalysisServicesEndpointSuffix + + The endpoint to use when communicating with the Azure Log Analytics API. + + System.String + + System.String + + + None + + + AzureAttestationServiceEndpointResourceId + + The The resource identifier of the Azure Attestation service that is the recipient of the requested token. + + System.String + + System.String + + + None + + + AzureAttestationServiceEndpointSuffix + + Dns suffix of Azure Attestation service. + + System.String + + System.String + + + None + + + AzureSynapseAnalyticsEndpointResourceId + + The The resource identifier of the Azure Synapse Analytics that is the recipient of the requested token. + + System.String + + System.String + + + None + + + AzureSynapseAnalyticsEndpointSuffix + + Dns suffix of Azure Synapse Analytics. + + System.String + + System.String + + + None + + + ContainerRegistryEndpointSuffix + + Suffix of Azure Container Registry. + + System.String + + System.String + + + None + + + DefaultProfile + + The credentials, account, tenant and subscription used for communication with azure. + + Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer + + Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer + + + None + + + Scope + + Determines the scope of context changes, for example, whether changes apply only to the current process, or to all sessions started by this user. + + + Process + CurrentUser + + Microsoft.Azure.Commands.Profile.Common.ContextModificationScope + + Microsoft.Azure.Commands.Profile.Common.ContextModificationScope + + + None + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + + System.Management.Automation.SwitchParameter + + + False + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + + System.Management.Automation.SwitchParameter + + + False + + + + + + ActiveDirectoryEndpoint + + Specifies the base authority for Azure Active Directory authentication. + + System.String + + System.String + + + None + + + ActiveDirectoryServiceEndpointResourceId + + Specifies the audience for tokens that authenticate requests to Azure Resource Manager or Service Management (RDFE) endpoints. + + System.String + + System.String + + + None + + + AdTenant + + Specifies the default Active Directory tenant. + + System.String + + System.String + + + None + + + ARMEndpoint + + The Azure Resource Manager endpoint. + + System.String + + System.String + + + None + + + AzureAnalysisServicesEndpointResourceId + + The resource identifier of the Azure Analysis Services resource. + + System.String + + System.String + + + None + + + AzureAnalysisServicesEndpointSuffix + + The endpoint to use when communicating with the Azure Log Analytics API. + + System.String + + System.String + + + None + + + AzureAttestationServiceEndpointResourceId + + The The resource identifier of the Azure Attestation service that is the recipient of the requested token. + + System.String + + System.String + + + None + + + AzureAttestationServiceEndpointSuffix + + Dns suffix of Azure Attestation service. + + System.String + + System.String + + + None + + + AzureDataLakeAnalyticsCatalogAndJobEndpointSuffix + + Dns Suffix of Azure Data Lake Analytics job and catalog services + + System.String + + System.String + + + None + + + AzureDataLakeStoreFileSystemEndpointSuffix + + Dns Suffix of Azure Data Lake Store FileSystem. Example: azuredatalake.net + + System.String + + System.String + + + None + + + AzureKeyVaultDnsSuffix + + Dns suffix of Azure Key Vault service. Example is vault-int.azure-int.net + + System.String + + System.String + + + None + + + AzureKeyVaultServiceEndpointResourceId + + Resource identifier of Azure Key Vault data service that is the recipient of the requested token. + + System.String + + System.String + + + None + + + AzureOperationalInsightsEndpoint + + The endpoint to use when communicating with the Azure Log Analytics API. + + System.String + + System.String + + + None + + + AzureOperationalInsightsEndpointResourceId + + The audience for tokens authenticating with the Azure Log Analytics API. + + System.String + + System.String + + + None + + + AzureSynapseAnalyticsEndpointResourceId + + The The resource identifier of the Azure Synapse Analytics that is the recipient of the requested token. + + System.String + + System.String + + + None + + + AzureSynapseAnalyticsEndpointSuffix + + Dns suffix of Azure Synapse Analytics. + + System.String + + System.String + + + None + + + BatchEndpointResourceId + + The resource identifier of the Azure Batch service that is the recipient of the requested token + + System.String + + System.String + + + None + + + ContainerRegistryEndpointSuffix + + Suffix of Azure Container Registry. + + System.String + + System.String + + + None + + + DataLakeAudience + + The audience for tokens authenticating with the AD Data Lake services Endpoint. + + System.String + + System.String + + + None + + + DefaultProfile + + The credentials, account, tenant and subscription used for communication with azure. + + Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer + + Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer + + + None + + + EnableAdfsAuthentication + + Indicates that Active Directory Federation Services (ADFS) on-premise authentication is allowed. + + System.Management.Automation.SwitchParameter + + System.Management.Automation.SwitchParameter + + + False + + + GalleryEndpoint + + Specifies the endpoint for the Azure Resource Manager gallery of deployment templates. + + System.String + + System.String + + + None + + + GraphAudience + + The audience for tokens authenticating with the AD Graph Endpoint. + + System.String + + System.String + + + None + + + GraphEndpoint + + Specifies the URL for Graph (Active Directory metadata) requests. + + System.String + + System.String + + + None + + + ManagementPortalUrl + + Specifies the URL for the Management Portal. + + System.String + + System.String + + + None + + + MicrosoftGraphEndpointResourceId + + The resource identifier of Microsoft Graph + + System.String + + System.String + + + None + + + MicrosoftGraphUrl + + Microsoft Graph Url + + System.String + + System.String + + + None + + + Name + + Specifies the name of the environment to modify. + + System.String + + System.String + + + None + + + PublishSettingsFileUrl + + Specifies the URL from which .publishsettings files can be downloaded. + + System.String + + System.String + + + None + + + ResourceManagerEndpoint + + Specifies the URL for Azure Resource Manager requests. + + System.String + + System.String + + + None + + + Scope + + Determines the scope of context changes, for example, whether changes apply only to the current process, or to all sessions started by this user. + + Microsoft.Azure.Commands.Profile.Common.ContextModificationScope + + Microsoft.Azure.Commands.Profile.Common.ContextModificationScope + + + None + + + ServiceEndpoint + + Specifies the endpoint for Service Management (RDFE) requests. + + System.String + + System.String + + + None + + + SqlDatabaseDnsSuffix + + Specifies the domain-name suffix for Azure SQL Database servers. + + System.String + + System.String + + + None + + + StorageEndpoint + + Specifies the endpoint for storage (blob, table, queue, and file) access. + + System.String + + System.String + + + None + + + TrafficManagerDnsSuffix + + Specifies the domain-name suffix for Azure Traffic Manager services. + + System.String + + System.String + + + None + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + System.Management.Automation.SwitchParameter + + System.Management.Automation.SwitchParameter + + + False + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + System.Management.Automation.SwitchParameter + + System.Management.Automation.SwitchParameter + + + False + + + + + + System.String + + + + + + + + System.Management.Automation.SwitchParameter + + + + + + + + + + Microsoft.Azure.Commands.Profile.Models.PSAzureEnvironment + + + + + + + + + + + + + + ----- Example 1: Creating and modifying a new environment ----- + Add-AzEnvironment -Name TestEnvironment ` + -ActiveDirectoryEndpoint TestADEndpoint ` + -ActiveDirectoryServiceEndpointResourceId TestADApplicationId ` + -ResourceManagerEndpoint TestRMEndpoint ` + -GalleryEndpoint TestGalleryEndpoint ` + -GraphEndpoint TestGraphEndpoint + +Name Resource Manager Url ActiveDirectory Authority +---- -------------------- ------------------------- +TestEnvironment TestRMEndpoint TestADEndpoint/ + +Set-AzEnvironment -Name TestEnvironment ` + -ActiveDirectoryEndpoint NewTestADEndpoint ` + -GraphEndpoint NewTestGraphEndpoint | Format-List + +Name : TestEnvironment +EnableAdfsAuthentication : False +ActiveDirectoryServiceEndpointResourceId : TestADApplicationId +AdTenant : +GalleryUrl : TestGalleryEndpoint +ManagementPortalUrl : +ServiceManagementUrl : +PublishSettingsFileUrl : +ResourceManagerUrl : TestRMEndpoint +SqlDatabaseDnsSuffix : +StorageEndpointSuffix : +ActiveDirectoryAuthority : NewTestADEndpoint +GraphUrl : NewTestGraphEndpoint +GraphEndpointResourceId : +TrafficManagerDnsSuffix : +AzureKeyVaultDnsSuffix : +AzureDataLakeStoreFileSystemEndpointSuffix : +AzureDataLakeAnalyticsCatalogAndJobEndpointSuffix : +AzureKeyVaultServiceEndpointResourceId : +BatchEndpointResourceId : +AzureOperationalInsightsEndpoint : +AzureOperationalInsightsEndpointResourceId : +AzureAttestationServiceEndpointSuffix : +AzureAttestationServiceEndpointResourceId : +AzureSynapseAnalyticsEndpointSuffix : +AzureSynapseAnalyticsEndpointResourceId : + + In this example we are creating a new Azure environment with sample endpoints using Add-AzEnvironment, and then we are changing the value of the ActiveDirectoryEndpoint and GraphEndpoint attributes of the created environment using the cmdlet Set-AzEnvironment. + + + + + + + + Online Version: + https://docs.microsoft.com/powershell/module/az.accounts/set-azenvironment + + + Add-AzEnvironment + + + + Get-AzEnvironment + + + + Remove-AzEnvironment + + + + + + + Uninstall-AzureRm + Uninstall + AzureRm + + Removes all AzureRm modules from a machine. + + + + Removes all AzureRm modules from a machine. + + + + Uninstall-AzureRm + + DefaultProfile + + The credentials, account, tenant, and subscription used for communication with Azure. + + Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer + + Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer + + + None + + + PassThru + + Return list of Modules removed if specified. + + + System.Management.Automation.SwitchParameter + + + False + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + + System.Management.Automation.SwitchParameter + + + False + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + + System.Management.Automation.SwitchParameter + + + False + + + + + + DefaultProfile + + The credentials, account, tenant, and subscription used for communication with Azure. + + Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer + + Microsoft.Azure.Commands.Common.Authentication.Abstractions.Core.IAzureContextContainer + + + None + + + PassThru + + Return list of Modules removed if specified. + + System.Management.Automation.SwitchParameter + + System.Management.Automation.SwitchParameter + + + False + + + Confirm + + Prompts you for confirmation before running the cmdlet. + + System.Management.Automation.SwitchParameter + + System.Management.Automation.SwitchParameter + + + False + + + WhatIf + + Shows what would happen if the cmdlet runs. The cmdlet is not run. + + System.Management.Automation.SwitchParameter + + System.Management.Automation.SwitchParameter + + + False + + + + + + None + + + + + + + + + + System.String + + + + + + + + + + + + + + -------------------------- Example 1 -------------------------- + Uninstall-AzureRm + + Running this command will remove all AzureRm modules from the machine for the version of PowerShell in which the cmdlet is run. + + + + + + + + Online Version: + https://docs.microsoft.com/powershell/module/az.accounts/uninstall-azurerm + + + + \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/modules/Az.Accounts/2.7.5/Microsoft.Azure.PowerShell.Common.Share.dll b/swaggerci/eventgrid/generated/modules/Az.Accounts/2.7.5/Microsoft.Azure.PowerShell.Common.Share.dll new file mode 100644 index 0000000000000000000000000000000000000000..e45ac91a1264184fd86bf3750d545a800176437c GIT binary patch literal 27048 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 F{x6v;GWY-h literal 0 HcmV?d00001 diff --git a/swaggerci/eventgrid/generated/modules/Az.Accounts/2.7.5/Microsoft.Azure.PowerShell.Common.dll b/swaggerci/eventgrid/generated/modules/Az.Accounts/2.7.5/Microsoft.Azure.PowerShell.Common.dll new file mode 100644 index 0000000000000000000000000000000000000000..a705c3fd25a8824c3a6cffa9ae5fdb1098d658c4 GIT binary patch literal 276368 zcmeFad7M$le)WkI=uUTB)On%RE>fY|2p)e-jfAW4lzxhDbsi&$= zojSFhTeoiY0rM|bu2L$3|Ns1_Qjfsr-z0Ir+UY`c-O$JC)Psqi4u7O-|DO(@b=>iV zVN3J=;`~u34O@8B$tU~Eh8=zEu>A6qhaG?Nu)PkNIqW3=m}5uR)+V5 zb?;;8--o6BMvWL&UA3)J9;AvJbWtnlVW1~bQdKXsW8@|vD2Xmmz>j$_f_hCln@Rbv z><2+Y_-g{+gGhkyp-~dSUwuSfybb6hBdP{ocI$|m6~=uXe^^O$NgYRc-->*rmmRxe z8N$n=LA_X4$X)q245g3G7xD`MifoWkc?iVeSNu(a^rQ2~p6DYXWu?r*t8TM&lPj_b zxi9sKKg#B)sQT4MN_}fzMa6WurT++QWJGlZ*jIT&oDQ~1`v}J^3IPE9%K$Lz0ss_m03iUNmIe?4Kr94=0DyjBQV0P65*t7W0Lc�zh>L2mt`fGFgNGP#Xe5 z0H_NAAprCX0U-dOZy6p!07!*^5C9rNKnMVhAs_^RrVtPUK>rXB0zf(hgaFVS0zv>7 z5CTE~7#IRV0B8vTApi^t0U>_o=n+aK9X%4RM%#H#VQY}ZDkO6{==!ZpP-tU#3J~WpXl!4aw+R>RBw~eYZ;G>9C9?sI1bx>7RYueFh2XA9* zv!kJI5Ca^IwgWNH(NM3qQI7)8q?bPnxg3p__trj-td2%E@zz2&RT?EEb%x0tJsfCu zu$TX#BxlIaGCEgE9`s6NnnO*vKKg4i{~03u?Lq1JKqI;8{Qs7d zM)Wi$)l=bSYmD#s4pa_BHE!#vW~iTkj#D@SY4kiM&o@<}upP-$O3ELIu%5-Jp+gEg z5#OJI=E4NhGe{REf^2Q}(L<80X&?QJAv7~Rbhl*d03WTKY%NTJ>+d1tWO4T-uos=Z z;phX&P9Ff*pMr2oWolo6_4RI70 zaR5P^rd@@AJ{z}n)N<+-U#r?pgLAgcf4SuAE>cNi|QCawPks?Yb5iLSO5?=9O zL&S>EFAzNwUJ;D|x_@yte6NF{>V_&rx@gh{wTghA3kPzD49E+c!N`ENMP9dfi1?8r z`U^{n6w%XIz@hMp=!sIm;qbig_BN&bHqKT`aw_~4H& ziUYCud^!(Qgsh8lk?134_^LwLn%L&S=4A@njdU@;tM+AtM(f zP;Ckz5Ec-QeMAZWp_0`t4ii6893npW4;RAl-%9BI#li5s4u%Z>8pEGJC4Y{6L<#>k z$?6uj5kFFd*#P;Y#a8iA&L~58#daY~fm;jRzc>=U*TIk}5S9aHO9DZG;h08DI0i9& zd;V$AC&&JZl3q>!uSf@#+tQiwC+T{PRdDQ+JRGYgZRJ?~7ioL-!_Cv4kUx%V)#(tu zi=#Tf48g8ZpxWCozv-2%(=D9oIy*qN=9=3&SApp9if{{^#JU)xSHo$?yyuEdi)K+y zel3_4yAa_N*1#>EA>;^>XOfIW^#)WG)(W08GR3orxoa`M4$|i^(YXXV2n*===ap0V z=QG6x1kkh>(s%S)c>X##dOaLW#Eq~4v24npqc37iKNOXlv8Gvnc1p`e8v^Tf6OZD11IOEr&2 zf|ahm5?;2!ktn|;a(z|A#Kd&oRbIUVtrxB`EK!g0bGXUai)R#}@BT+6L%-0Rp5$0a7tY@Bxr!AhC8n3pi?(n(z>- z4<1;%e+eHQCFS@i-<$9(f{tFw2a^tVN_pBck59KE=yXW`lb-6|MnLD0Rx|ER^hDM6 zCVH+~?&C?LH5X}1XZp9Hx89Cu{|-3%PB`fvwCXR4@r9yC;zG9y!lZqhRYwBrIKlTo_US1or8q7#-sPZ2~iivao`Okm0S7Gu~YNVV^3btG5Q5b5bZ z6x}Kn$qb7Ga@V$1ph>+9oC*&ieQkrQzYRa9|m0$&nDu{ql==_Saw`2?>Ts$ zdjwJ0)*$dG0{&xg^y7rJ}SEp-Y4UV+Y=1Om>Tn(D_caXk0*`17My_jhzFBpf_YV0m5NnQUZ zWo(T~7Q4XQ8T7TwK>t^m;L)F1i)6amYp61{$ZuC-H&EDhCu3R9GXe+lCe+~8vb@J` zkyi(YAZGo|c$yKOZQWdFNIbbDz<|vKKv`z)N~nY9mu2{h`phY@YuTJ#$SbT5cDZCY zKLNqH%O!#DGQe>Vk$n`bg{i`mRGa4(zX#uo6rY0Ucs<_t;TL`Yry2VEA^afU{*W7s zL8|aHFy{LaeB}Evz34v0pU|(1>{EOO1Q|UGzZavZ*TFR_=k(G1xanFhX?<5L5Z z1FD_;B2+bh0UZ4tQq;sXrmbWy5r?6M2{zN_$jYmK2DDiZ1X7#G#uEMu2v^6vo=Cc< z3i5JY#3~_sbXbr57ZJT246Bme(Y8pk8;|y-y`=hj6~%a{;v9ixN&YIV7nvJmt*aQn znXgFDdwAyN*prrr^%i(phI$So_FUA2bxdRJchoMB);eRDP<#~$E=Motxe9q@U>@OhJ7wAc;L#_lcP((}qvnR?9zzZUZQ4N_39 z-;z(#3Zeg$ln5zZYwEW=76xKf&0e{_hduj@+g2UH=bo z(a$4l49XsavV#IT-$O)&Vg5dX!nn1IF$2)yW$<-}0$mQ&{{T*Qq%m*(4-pvlo~zUt zFlDq`_=t%*tIpKL{J(*yapL;#@MHdGaC0AY z4~Q*qMQRLhFJY`hJZ~@sSO@cGi)z`9OS)3ehB94(1peo6ve@5~z!wOZ%A!e#xc--L z+b0HDBKm(BEUD|?RC7rimw}7_4>;5Y18$**&_Cg{Pj&~6PP#3lJ$GmVgSVM=7=%9Y zM3quou|Hy_LVt9MRq(NrH5FmnCB4E3Wag$ovVbiB%!VF!7?SaH0UHm=B6b~;@g5Hw z3CRL>9Fnz8LSw@rsjtid~YYnoTWN4P%L23LY1S0-&c#YWd?*}XuDV&C&Uk}>heCcIR39_dM=@lr< zEtg|V^tO0MiECpt-RPyFcv83z!UPf2L$1XH@L-Zh5uzK=OF>t6ADr^Cu~gJ7?%jJj z`ZSbNkvTByD&Cyj3hvNU13157B+OO^l5RrO8=lm$w=`I~D9ORG##nbvWr?X6+j5U% zXm27j+7s$jyTGr3&p+Zb@gIFxO#{w(fPcg}Pwo!vbo_53h(F?2BaAgs-3>qF!}W>S z5RNB#Xl+np3g`ap_%}h{5QJ$kY832N>~;8!R37#?dirD18-y1-u8;lyiibeT&OF25 zg~80!S|{{;4ypq5D)^u z4j~`}#_I?ukPqZLh7m#l*eL{r05Bm0gs8|0g_=@@K+2s%KnMU>GEE900PGq9LIBt; z1cU&vdk6>-mNp3QST2CxhI9O4(~aYohKA>3M~*bcn5Qwp3s}@2|Xg5{BcA3bD_1N>VNk%zeCym`Ui1&+xHc9jDwbJWbRd{1FIz|$DY$0nbY{}u|uhFwp3PY5heKtA^UD9vvv z0=E1}W9{_(c0*&~#e}?f6(WjZ$l%R7aFr>){Ekmr~tIr8;G$I=z%y(%qqI z+Fgarm}4}F{|)$$p`|jz^5Ynr8Ddgp()no;u9KEZW;}y? z?Nb~-2f;f>!_ml^X`fbsxEdBhrj%$56Ai9RLkEhv!u>&ubk}+p!2t za^*U1Po$UlMEZ#TU#5si=MIq3C;}@J1{C*3C!>w|hiOmmhwkz&BKn`= z2fD#3ZqW@^POlxht}Fs8vgkUZcOu(=pI_LY{;%sA>xV_x6O685+)&prYos5-n1LVY z8n%Z;*DyIY(>0c=K-UwEuK!(r|7UeQC+u`h9N-wMSTML$$TQYn(zDUGBXtp1?`$-V z^^6+F!bMGUT7~bKk&gw+tBaLJe$0$~tW=w69IH*BaTrAG-G*Nz;1{%@@Y`%A5q_b@ zcSZKzGYOIZ;+dqRahXY=aZKDn|Gpji-WuzP<6=tP&FBToqUagxURlpr>@0f5>fuF1 z`PsuWbL%2L?8juX3ETPWuqNeC#Ioa00)!{5{HX{Gt@rmpu(i5LPbNIbi6PUTgv^Gg z*?+|P@3kXhFGSR%C*(G@W0DgT2G8C=O@A@_hp;grzn%iv!O00MH$EZJuIIbM3|b{xTeZjJuK4|=DGh)MTi+7oiw7+(NK?wMt3UL2OY^$AM}@U zeGa4&dzk@5{x1#Q8LSTXa1IXVN*6;!AH-&kvOiNF8hrtNFiE0{!7#-O$cUa!9biyc z1~j6|y83S#1nl1xX5pcfQ~JZftan7u0>J(-NBp3F&qH8yvv5B1hJy;)>@%o{^f6ff z+Y~{oFc|2^u`;5FnMM&uiUK0~Xz>F@9D~5-ide+FRBQ#m6NqswcGW(m{uQNqspVeG z1Kx*!&4T6!j~27RN**@YR>{&62jTzjVOTN0LYJqCqNpc4HOil?p>wIIs6LTOiRhD! zZuC;|gVC5rU~`jY8PL9sv4YrS*h}HUEz>$S0q_W5_6>w+>4e$D1GZg(-?48PF9f9H z{$2=`l0aw#kJ zSLFHI%{fi&j=lgT<{Y;j&te+mAjvm6u6d(lnAe&uW4X_sYmmQ+H-}mJRC^ zj$$R)@(yPKnm!d<8$1$yFk4NEn_1HNT_10Gi7xS#K8hpSyg_8t( zBd#^qh;uuqBZ0};#ACo-kx@v2#TF@Qf)s__x%ErT`b>R5se2CQ0w4_5G$2v;kmd z%byhJW7bLLe}+=?e}todh;*V9|0G0IB>AkAQou&a}Tm?oPS}i3q=lg zG`w&;2nFSKF%wwjQ2`Ut?0AKFY#1gpiT&dct~?^(=<6VTcAoM50*c7)hq8!D$j3yS z^v{-3%iwZ=O`P+YwK6p$%tOn$$dcI^k!#87G~$@QlRkP>z;ClCjJ%4>j{gu#^)D0m zN^!3e_ZxI|2T~grMga6DPPEdW^p$wg&?oY?QsmDO8P2`37n)?J;o9{h={;-?)-^bR zqN$befvlqDQ}ikkp{y3_YBOzM*d?)Y=o=_?$8@v>UOcjGE$#-m@}*4yy&~ClARAkEfo#7tn2|mGG13I{v%dyW{uy-6 zWFnb2cR{_g($}Oi*b+|WYog(am_R1;qFvxekzmv5n0NRbiJ_5{cix^_i$049ELA{< zNw($(lLf|1G8q8FLZH=r#NeZsB&&nS^|r`XN1ul@Tu75X)|X`dS|-CVNNS9mjK2=l zCT#ds6|fK_{fpq#1Pq`5dJO;cFB#T$@7nfNLVjg|wcRSLy%(qh@8!JktwMet(2e?H z$nC^!V9W+4Y+x#4LFG)1Qlr&3UsAhbPaJ0{BI=N^pW{t9yAP+(pl=Ryvs)R`^)I1D zF<%F9X&(cHM@x}s%R^5_*9;8&GG|v~5GUJr3npuDKnKQ~*HTzkqFxCw-g|{H@_U8R z_j`pgC-e$qR3zK)Fq3n3IL@v>%laCCYdfI>Y!zcUPns{fzRAIXvBG&ATQGf-{u_xn z|9s6tIUD`ULM72J1Ie;>$qLt^Qk~bqNjI6JiZ_z=3_QmW98d|4K)r`y0+F*lDf9u% zKiDgZ=zEccrou*M1x~vH?JjnOo9*Z5ZzCcTLkjBEm<3qMuSX#FLHjt)#V{=}!v*un zfFQ4AVbe*9Fvo`|KdPoVhQCwT9=)p7ESo+oa<5e%03m%Cavr{7VxPk-a2&Y!c+u&# zc5;gIJ&^orCnD?m#7!vC(LaS8`Uh~#vfs%@FD?58C?;56o@SB@7<&^ioWH#iZJ!&e ze?uX`)DtjkJm&w>N)-?01o-}$Zr5FCh{c+`Tj|7=kWp=75EdL{Dy>Dda-uP5N z&f)9@0;egWSl@3&uGTKbXgn%q^zAGUTUhM4w3{#!@I8L2a~eB`yaTH-^c_f<8`@a_ zo`05&e5tCYoPbDg*q!i4?h8@ut|TJnM}E9QRRDGthmk4#~!N zrZE-wA0Uat=c$Ad6VPX5@eWR2#BtUmZeD^Li}yh!Mp`MD#$2-Wt>_;6W3*z#zJULS z;eQTohQ2F*#HS-X4E|F1=#stut^mgWE>Ny#Z1YP%~YfXhJT#A_^OgBl)&gMTPZFfprfY#+gqTo zlA^nhgshN*H&-J5z&?=_Kak#xT}NRh2+rX>j)EPH)gaT|R&jj4jtc%hbc=JA=FmRE z==v49M%Pev?JCLs#B~O}S8XeOV-ETT&cSrhZ_nR`Rzne-vn+xa|?DXubO^Exc?INCCF%yrHFcUg8c z6cB>Rzc$RdqIWsTiky$b&1ewLmiZL>7{C@csh#ZTH zjg`#Qa2i~E|4CE^TLi?AfqP{9 z3%^aD=rsG^14Bo{6`Q3>&Tox{zTD+&kRj=1F==DjN#Ioi@E=CF;Ru4YgqQeP|%{nyaKg}Fyi~gfq&?HeG zMn|&wkkPehY_EBq55p#j1%exJSYwbXm5QcQo)23jDFSA2m`{ktcq$&FIg`wSs!qjf zGJ}Y~O2HY+cq&F~D4E_il8R-j;`m%c!(K^FoQ>~7u+~I+(z`y<{m~;9{Zk46Xk4)_7vyCD%b>$+FjlM z=WuDssh6v&Msg0O{(b0eJm-b{(a2v`X)-em54ECBs;)ZdvTh8jxfm&Hx+fx@^~t@8 z%3w3GqA~*^&W#kOPgS~=MPmK=Uq#)1lSCPXEC6O`6;JbCe<$ z*9#zIhb~!oiC7n7G;DHnhe1T03OR9p(DrQ`uS39i4L{g7C7DTftBUV=Qk6R^GU1x% zvP{zC@bpLQ1+6`?Yp_%lUWNdkeg$qD*9$(QKppaDt4sM?x4=x7uZQq}SB@|{8q=X& z`Sb^y7{9l1>ii`Y!0$9)1<~XE3T~hj#&Gh2QutiGWXtmK5`zkzh!A-eZRXW&O~Ls? zLnJrEAWk4Jrga?ArT)45lWcb#|26tz^P(RcJv5OUFRnO&T?TM+B@T~BVfYNRg`-YZ zjb9^GV2zo%vA=2=WA5#sJypT)4a0BM7Wuu21b+8d@pIH}p?o4jc6%dAHW$?GIOH}9 z!XOhj*VqqLKAzIjM}caof`E(!Q=~$@%&%iuD^fju_?ow;*NxNI@1% zy*wiU(LKvM3TQ1EzN3gJ%-OU{Qsy0pp9del<8TL>wey8nG2Zm=SlZig>Z=?{BHL`P z{|+GYbYAUc)1Ln>!s)TKUfTaXbD(aRVAzJPdJ5(2fN~1&F;BC8pK)kqF8hTK5U7d8 z{SV5@5lRcs$;C})nJ$C=XpWyQ;L>@tW(kEd0a13 z5q#46XpDQby_9W)?C~xIkFxdx)ndg-;!6~K?3gS#aCmP{CWv!QT!e8^#=$BLld)Ote#u?fai=&w@1 zg%$zVzc7eTElbfU@~ch!9-xDl+CEo}_ARAJ%ZqQ5hVO>)Y%YI}KLFyp{y@0B=W#rz z)tPy`rSnkCqI_j9eoH4d1tci`M2#uU%fVW20gv`_a1evxng96?UqW{-L{7&aj2MlH zM*2WRzBil*ojMv5mzUIAA=*ph;lv+87HCsfod{|9F4{?YLvuqj{!qk#JYwjWfE07N z<*@3Q95ctXAg^AzUBRb|%wVtc7%l~voY87Sy!>5IU=XU$--kf{T{wkd;JXsXJX!Gf zMP__mfk5f;Y1ixgkqD7b~gpVQw=2FFgQNwH8{et(K0-oTcYJVCUQfJA(D%w*U@Tf zZx*jL?S4~&L9FAnJH2BxOofcbI-Y^O4QcWHjmD~%X#olyM3+s&qLHPal4Ymy{JW7YreHU$l+>C zcb+`chjDv`aoEekGUoNoEd~c(5V@Q%JtV?{5zODiAk!q&PtI}RwIpV7c^0bnVse-P zb2&N6eH+k~+5>6b?6$7I8)Qpn8a*GU6OvB;D2U)s0$Gop^Uu&BbMIF62lOP&&9dGk z)zDF4pYRl33&~%gm(^iSdg-Mp71Z77RqaV3?Dm37nu=_$sguJjIOJqh1;GLx8!b)Y z8yl*LDX^FabKG=DiE*03*pR{0?)ZD4wm6p}zCRfOA4e&0Lksd`qLK(->FfnaKKDT< zGN1c6{@%dwv;lL3yD&|fHv>{X+)u+2XYA*4Ia83F<Sj=qDe~`7Z&*4q6`eNTJP(4yB7Qd5k-F5(H?8^iklH_l!f`$s zdRntTAHLjUC~L=1=mMvPQl{Wc92*e#aKdm}n-8g1xjzN`ep!BJV5kLTiM{q@ZlE>l zFhpU-$U?n`gKU zPuG<_F@+17`!yST&;i{LoM${k*e_NiDRv{Chaz${p5KKa z-YdaPb2P%tzW`m#jc<@C#>If!P&fmz{+V!i=rKNEUQNthfBb+2<9^|_uPlsW13JYy zXuuw?9f87GWTs)#GCFIb=Sg%fjCRB5F(!JxL_=+Ta*s993nY467#-x6F@=|}Jkyve zj7Kc*Yd92X9sg{|fd081vz!B(m&|6`afks%rkBka-;6j|?gY({IuB`iGeZe!Z=wxo z_T@Qto04YqR#%SR_HT#Bfjf^t@v=#GxX3(#0z3+hwstYb2kEsZo7!9S!_*JTeuxPC zivxcIR|>Y7TRN**K1Pt=AI)v-*c-vLE03NxRO|C0b$%YBjwD(j+G5Z}C3G2kDUR7L z4|;1+2mshZHRqOvfIfLA9qbpiKkDmfn6O^{YOrZu2Ll(K_JvXKia(%Al`FkO+Bapw2EHtdra_mnemQWB23l&%7x{fAc?kR?Kvz~Gv zZP*wNCV`x)WSdD_;hKnxM9Sh7l>St+Ok7OJzXWcZ0R8<-$!!OxgQ!^EQcl)&`JTAqq8oy%I!Sc;T$skvPl5fem4}o1Gh5dfmeAW36 zpxWS(tUC4^ENpR4Uxmc;__a3Q^c1c}sMY@lTvQGAP!-SW@h(5f|F=^9&J8TX(bv%P z^tJG+yJMcd4#XRBr-G?Vld9j^++&6oxgL=+6?4O|y-iLPaX__nUc<&|>AaR6p76zQ z>AWroia$qU&0Fsqz$oXWaS_L3l1QA2DC`4bJr3Se$&sIAmti7_gukH#Z80xiSl@`) z^01R}PT)oqU(u3I$4vlajnEVzdoW%e5^_4Og6l&E9+<8Q7#uCbEisx)3oHbmY< znVdHwr$OWTCeWEG!$h_{Oc8y*0KkBjwX|LBb4s}OCDgK_=_9?r2k0xaD-!nZW#A{z zFbNfY4{)GUK#e?o2pnAbuo2a1|G+71gnY&8SwlnKASB0Ck>xm2BclQtZOBSZa5iC5 zb6?rv=s%6nXP+CI`)b$qZ$@eUH{s;#8?ktA0_AkDbl1Oyv}o%hV5SXNpYN-=%V(vcmn~fy?eELlPqco&fa&0R0EyRLEYl)8lC4xQJgX_x0oO zs+*7o4Wvs&(jpm7CCviA{4uQFLtq2oS}A~~`rjt^0KUHr?~dt0EFOt763Tmbx#T4? z4orTA)F~VVoY&~B9nFm{tl&w!zV4kB0AJU0>pu5vqA3;e{6~<^98j7#k*}V4H(s#0 z9PW+osD2u$N}`Hbd!5p~rjhJ^ZgyW74PfB%6h9tPK=uM27vMXR0{e!Z|AYYFg{z;0 zV=DDMQ0=m2@=lV!qq%3vctN+#{|)uZw=_XpPcdtL2uRnjCNBew79atD=d8a^rY2&t zMAVj3&JzIJWntE30$^;0z*+(Nmx1d6R0wJqe^XKoDyRC10I>B!K7SKnU>QjE=Yl_n zW61EpwWO#9UbBS&4IFT7FeogY7d1Im>A!j3kJ7kz2$$kbe zd?EjH&>=@Ncw>bZh{a{~Y0DhRvn2kD%oz)cOqPno4;Or$B9oRP!BpmoSSpsg7KavJ zLJ8@yJ4f<(Q?OK?>{9X0qrwLYnD%(W+Jz4kzd*v)F2?9R!iPSeHS4@t7Bdb>{W8LO zGNNGsO%=2br zO(Z`IBByFZh*T7>)@6>Di)^UobSByPI&zx(rkX2a1;(V=A4;r%C*TZ^st9-Phj?>^ zRI6$0%_5taf;)R6L}hfT}JKtm%gF^*_>*uttcz#qkcD)_g7S|v0vuY zR6n^8udzN=FBR5rk?#?rBS61FD0gtG*8eRCyyj2UO52+KE(F$7K9jTacjQa6T#j8; z6pRF{q1k(roiddA8STzB-ThPjZOMwdE)wBdLN&9$(v&|5+1#)h!G z5t007QeFvO3|6Ijnkjf_-z$=}eVe^0W1B-P*b8K3I! z|A8r355&F)FZUWwhc)%2PlDP??_*)>JL=ofGbeahiAg^Z%e)t>Bh9_5PvFmnecSPdL&>x_(i<+d=)CsNrs325n?(Q_MTOCRM{Jc^cjqRCC=P|vx?@sQwq5)dF z7*js0pFb2C%^6R5`sVo;?(;y6<{R4%KB8ntIpUW-r(FbA*`_`qTZ_BAe3so6`Dx>q z412uDp3imNSoXMtg(kTFM>v7?{BfoA9KMOGfQ7ctAS&}a_UuPXH(8O=1rgZ z<(l*^2j(}@@8bG4AWZsvko0d7#Wk+*Hwc0+{szLD{X57mO2>yq%qeD% zO9%jWhJX+Nz7+yO0JtjzgaB}N2nYe-o)8eCVn2w_uXq?doeDv^d&6`>a1X#y5KPUL z_FKW;aRQvmjR3h#Jk2e1d?;JKn%d14a7`vNoD9eHKSLd{Te)Qx@y%FtkHx9)EoVq@ zi@sNxJuU5!mG{a!s!pZ1HvPmwFHbKH=`&RN>ahQeRg(*9>;Popv&PSmcOL7>xuEbl zatPWjaG7Kb=={MU9}lnSInfNJuv|0$1X;0Hh%;^M zD#@LmM;MnigIeG+GIQ~euIh3?D{FO3)I=p)VuS#J{ z+zvU-5w2vA{7}r$xs+>OWjZb{!!{XlE~_N&^^R@@H@8{0!PDEo$u{V{$;%vu32J+b zqj7mF`WU{P;8z{;ql!qm=VmD(4|O2h<)9rs3i;afM7ioASL%Fi`0UQiVYughfN~#3 zHN5sKohG~_MTSBK4u427lif^byj&=)&%sE5jOW6`z47>Vond_kTg#m8(HAi4eg}1v zw0Z*K^m&pjOYZ32xLFUctcYK-Wj^OKigh{=^*I8%eu2x7yx=S3z^FRV_h`yJ1`dya zV>l({SAvq=gWG~OfY$$l4zaSQrM$z*O-J)?VYuqIt-?!l{szl%HGFb7_eJCzm?JqZ zrFyc6nZ}XYn=i;sCHqL0ln3VOSYa%s^5VgP{c#9Y?y`#f*uH)Y3en>c>2C)oT=#ZY z{SFLeam9Y8EdNe z;>$f#hgm9lxcU6`e!gHi0h|lFA=gTG6LyKJI(G-HC&9si%r{DruzU3$0I3VU%f`c* z{OQR6`K1I7$u13_)qD^=-adR*!+?WH!x;VwXvU=UF<^sCA{?31#xD7Hcfx3lub4$HEk3?qa+o!aKnGX^-O_p!jq6j?Bxygp3m5?}Oy+0a`Q2h8}1| z&#_z8bi`m=X^X7r^;YypR`gF+v}P+?Y1>)RL#^mJR`d}o`koctZir2WMOO3{ zEBY%d+BDS0cbpZSZbg?_(c7%(^HwxD%qGL(R&;|Eeb0)v4Y%<<(TYB3MgL?)lOt?= z=UCBet>~|;=x0`R$VgjhORea$R&?;zHV$1@^p{q2VylhABUW_hHe1>&tmr3J^pI_A z9DZy?$7oyHbFJu?R&?qp8;7f`=wGeqe(g36H(Sv}#+G(hD|(m}U1LS>v7&ET(XFyJ z8OB@D!>nkB6@AKzer!c^Ihza%tmv6m^ieDNi4`3?+E!Y@iau#Y|6xUU9Ao2qwiSKU zihgWGM{aB5dw>`OO^dDAqn{hT74zi*}D|(j|{jC*k z9B(Uat`)t^iau&ZKe3{*?QErOZ$%ea(bKKyxmNU1EBc`oZQR}_*{)W!Xhom1qOl!p ze7CWptF7o0R`e|^I(A1}X|t{9%~tdeR&?Y}Hop5=(dAb3E-U(}70pbrl{VLk7Om)g zR`l0aG%?Xu+88T(gcUvCir!>JV>{bQJIIROWJTY$qMuvQLA%&W8*fDySka5D=&e@t zO)DDP)h0vEiXLG_&$OZsThWiLXlgf`47*y<1y&Tl)MR<8+hj$bwxWNwqKVyYe0Q~? z$6L{Jt>}GL^nEMZILRi%?pAcM6}{PtK4V2cx1y;%Y%+|sq6@9)byoB_EBd(=#ZHo? zjSsV;S6I z=*?F20W12k6|LRhCfS}=^jIr;wiSKYioR<_KeeJ;9bl7e8!LK}6}{PtzG+3>18t>^ zwW71F=-F2ENh|uk6&-$%O@@Q4=o%|}i50!aioR(@qtk6NY-2?av!b|k*0So|V?}>% zML)KpTODlUJJpK%R`ePx`m`1O+=}io!zRP&R`gaY`kECTIMc>=rWIXhMW3;v|Fojx zXW2^gt?2Dm^ernoa<+}{Ay)KsD|(L=ecy@>oMS6(t`)t)iaupUKe3`i=h{j;%!*!P zMXTo7I2>X{Z?>X;wxUZ8vGIM}idN6Jr9H%o-epCj3v3)_TG35b^iwN((xEoKuUgUS z!)$3sS<#tR^n5G&gcbdR6>UD;Cc~~)bh#D1$BKSzMYlP^R@xFPdXE+T(uz(!(#H21 zEBd|_9dne8!|7J^AuIa66&-%GjqhPr^dc+zv=#l*if*;gR@&}Xv|vRau%aJY(bzGz z(ss6@$6C?*tmv<;XzEy7X$M)+Gp*=zR`(st+ait=qXn8 z8Y}vt72WDMTWNb*QGQ~v`TO}z*0c{<(H~gRx2>tmwg3bfFc!(2727ML)5k zxf5)XEwG~JThV*0=rdOI4_4G&Vv}KeD|&zxU2R1lwxS3Yj2dwCuR#XRfR&>;9 zw$cu;qRXx5?N;;;R&?MBTWK?`=tWla2Uaw3x{dEtD|)UKy~>I{Y(?L-q61gjWZ2n? zF0`U+tms2l^tV>DUx!VG30Bm%qSsi_7p>@Dt?0;AHW|iR(Sxn%X;$lZeye z{sBml9(!^^<6~zWQ-2A$%*~VsA|mb|1h+Ag>4&fXr-O9T3IBN{K@guGBy;bXpJOOO zJaYy)!EdR({H>IWXX<^j!QHSdTuuNBz_Z2XY`NUi=JJ~}M=e!@*WyDp{IRZ+;4frd zmq0nV16eBM&j7n>+`R421i^#j&Hi(cN3L@VzKMC;_DxKq8Xnx6MBeyDSRF&&)2K&$ z+m(lSg<0esb6&vb@#YkA+Mf+b<8*z-p99L#bK&~);M8PB#{EM;)W#B9&Jg^%(JPf_ z+VNE>nJj<<#o~vS{6k4b@!J?%W`tCqL7TZ3d!P7r^kL+6I2m~0<@raDjNx8_uizDY zzDi!W=?0nP^tjhSC1e|UJK%ooBS(UjJ_vPhkMZ|9q|NYgsDoR9$DCl!#ye__8vmd< zWA3P*;v3wm8n$2gly?U{pD^EV3V|Pvy^dd={1|P9E46|z27bcO#2^&W&oGEjT{gfs zpCox2H!OJV8rLVFj|$Gtg`?mdkC-Fj9gl|P2!RNEGhhl90>I-TAjE+clHhJ4VKc*E z5lw+Ya83Y5MXnI#+4zXs1O4b&_M^K|DRhsUN)qqp=uHUZ@S_sPkO(TI@U+xY9VyLcLR zMab_SVXhJRc!S_jbD!tO7`lo4ryRgPMXk)`1EuRbe{JfO-N*Rrv%7g3*HDz0vC?EV z9LyRcUY^`=W674-y%yZwiRSrE(2!4r%_IaOz8eBU0C+M4gaGip5D=nI%L?DVEi2$= zEh{M7^%XS1-WBcot+45GQyhIa0@!qNAlye54V#%6Ymqwg;XHp0^{NDd~DJ{824r3!S7y78`}dGHsZ zj&62mS8j#p?=d%2nR^;ynXJAAt=}6PV5+O9V^Wa28#12x9adhFzz^(s?;1$?tbQ7P z6&q4I`T=~!RK&^^!4Nl)Yl1ttP6u(bB*>4Bcl;o1N+Hm;KO_ME>A?R{;Qu)Ae?lKW z@Kh8637-i8A<9L5pLo6`0fSDYNcK*1QMj8iy*u=>7<&1Nl+pZwRrr?X7*sEf>K@C+ zsB^p`Wdk!24LYupd;Sftr_d^*C8Xu|ml3(|wcN)dIrN3s*nmEMaXMInWj@GkM5(#bv+oB2fp`5{49zX1M)#mJ6Nt#^v~$AL+(SAdve22AI>6KCfhe1$XP>_Y;~_U{~#|T4tB+D%w8Bb8g!|uzd=& zeNF^3+CF>sv3(Av?Q;?$w`BWlF~h%W`)rZXe_;D;nb($VA1cAvJ_peDIT4-;8Mp*WV%>%MV%u3nQvmBG7~% z=j?!wyX3`>=_C1_I6g=8^eW)B`0>Ufe5a#R+|}ZC!A&?FYb3xj^fF{f`)7b`j5oyf znIvNP8Pu~tZD@Dv+1uo2W|r{n4g6Ax1ba{34P z!09~3MjUkQ^Fb9afWyFr46J3qs0B(jN@4=NjuB1=X}NX3xSqf&5&0sLO~s4pbr2tx zh2F>MAaF4PV+Q5NKvxD?i)F4#=J&!SNWHQm-R^fGaS+B=!D<&+?D%QQb+){hB5(0B zIJiT2^nrnFdvIQ#3@7bhj;O|(h8leZiRy-GeI*F!u(_ne>f%*^0v+O`=h@WZchT8! zb*f}?R?+Y2e^DT(wO zVFVL-1G4G45YfL;_{uOSwKucqn#e0A5tT~+^f*D?b4?O?E=Gyd%mwtIXdW}dHVsQkI2QgTSu7Vdyo zssG)&{=FIw{OTI65pMs^;AyJq-ns9T!#e9b;W!;6Yq|$E);U9a%*-bbuF=tUC_4oG9zgJpdu)z3{5N30=rjxDPa%AB8PShmdN{|1xoBL4xz z#`J@5osNg#CYqXXLD;uJX#5M2X6NNP@SAJ`Ez!9ZSV} zSNxp*s=vT(fT3|Hb+^#zAd1Ct75$$6*Mz!bCb0Q2*wl8{L1l?V)=QYpD|AkeDig-S zFy-l=AZ2%BZ&*JAu-)kEQRO^t>|*NciRViCqCl>GmMKkN8-TucvgqqMfT;5G@Sv}A zD*D<_0rl-`#47aVbo>l})A4h-33Rm=;KO?n-q-1IESo* zIQkVmj+rWYT$Vqm&R&;+!P3)zAnJ!--?j9>IQ1qaN=d1BMGq{)K@T+g{GMugz1;ua z_@JauidxbCJass1Mql*l!tRDfJb17fIX|Q@A3T8n4~iKTMMSQ?^JQ?z{~U8@;T2Gr zJBiEnm+7&`nUMTsl{`*nhX-cBAut1Q=bwphmWwir%!sQIg+Vz>Ze&Fk{MNg~m_%~P zpk#A8V#wU2e+dz?flRNJWiqyHEt0?xtE1P!z~;6s@ zeUT)a-VC0~oPE&>PUh{6(@_m>6V8-YA?d$`e2vwaLsHfLZ%AUkEfolB`M1DKkpnCd zeG3gT!22EZy$z=gjHNZM4_c!dtx;{}N~fa+B4l?roJ~k>>XWM{3-6G}yKsV%r_h@J zJ;M3MGqET92S&dKC#dCA=xf6Htl28|VSQ2WsIU;m`R^kx?SBBbv96&`e@LRXp;mtc zB6zOieBh*Niz)i6B5)gU>mly`%DkC{0pWBo0@l_l`aSsO2rrKKT*Z9g^ha|mN1Fa768;Iv(*B>}Hr6-P>;ECquc4p*6h!dUVkGQWYyjIp!hViE zf)ZYUWy0xTL}Nc^75$$6H;2oYNZ3#Rg)GCV0ppc2rXuoehnaaVD7&pfPN(o!q%YR9 ztPbN!KQZ<;0c4`B4X=-#J=|pI6;Zaa|Asu67|Eg7XxQ|%ts5H}&0`yH$PFIbXj>Zv zG!$_UZ>Rw5Mjc57NI&Rc1a5R(MZe;)O%%{z9^243QfkWoI|XSH8TvLHg$pcDlC(g@ z)D!`vZ={;^XUK2tqB0!Up996(O&b)wMxBg?IUYWKe>+^D1jkj8+yhs~V&SQWAO6t> z9f36p*I-uKpzMyW{=)F49rZraEtPc)w_tM}gQ3vNjzR-B1L|uR5Ua2Y0vmK7P-BC( zfU4Yupy?^Q5Hx^f7sA+}ER}ZDAo{D)aA`*!MT=mT(?OJW6#a@V2xbDC^H2?{RO}{U zBn)6Tl~r1XODdJSrD!kR^>}H0XTe+0%V0!7FGJx~+LzGF5I}wPLab6R#=aZ|)aYe6 zsIQ|JmP);hpucJ>xYWzhfnJDGFZ3()!c2YjB8-GVFTIrEuha_*?xmMcO8sRdqM(;H zczx{1RzQ9ALaahBPRBL?oDL0_cH}7d@Y>;h9qq7eY9~W~)z)ySorQsRh*CTBE40H* zeYGQugh4Oul;Kc2=03eT^}ti5KEq-I-Ha}LiN4si3X^eZzjK_smbR(?xcs=5>;EqY zUAP%~AYL4OPp0mt;QHUjN?(fWMBI-g4zFP_>jA1>nf9k16FejZNa|le+ zWJeVoUBC{1Bv;*_divi2EqIxs5nTli@;a^rCiNX)U2qVwmdX0&aKA8Nw7T5hVU#_(373o*Pw=-LbY zyVNPCm>*l72?NTNpIPP$qS1u}n0F=NloIyp_M;2cOi;7M1Ytiq8Y?Ff<&PzQW75_k z+*V>c4Q3bs*RO}`Z$Ne0dqY?K3&;${%b6-H6hDZDM>X)gG{|d0Qo@y+Ls9}>I2=g5 z@O`Zi01gTPAplGd0U^TTLjN2$?KhxY{6<70jp%uIiso*ubf*0`$Uh}NH4s;7?Q~)DoKH^P1LZQoX3pR`6 zyQwj#PXYBQY>!fT2I?>*b2<)X;_K0|eZK$4S)d(4q2#A!OVyZ$3NnY^Obzk}G|-`U zLfWpwftHd5U*0(0S+LubsSc0Zn{~1hPTA(Xp}gR@%KQm zi0P3n2&3FV@VW+*4r@Qej040?Vc~vd;rR8htzCaBByS!+$PKQjl*v!Vj=bb%i=|84 zCOUF}E%@cx63jIuPaXUevr{jWuM_?65LJ_BPMeG$o#NCW2c=HkZuGXJ$8S4+>;xiF z`Q7;KUcp{yr&2eiS0n|z`V>qh=y(pJrVYhxxc6u~d5#^Wk(DIGmXeqRitDZJxU=!WtG^w5KxW2$FH zWZ{1nJQDwJ0k(&WP6GNa{14+30iA)5T|0TdJqSKd%^b@#cqUYvX4RbQsjFtwoj-@} zrkU|`8r6&EGIsQ=Qx;mm|HWR&2wRAM8i`{h5^N&Dg~C4QfM-e4bvs&3sSo z5-0xI!inoW_46X>$SkH`A^2mEtw9|j>2F)Z*mctwd+olYyJ9uxexj~lqf~>Maps8! zq}Af(l;o{ZE!Q-t3zxB!b+f3GbEJ-kwn$#7-DMMN&TXz@-WGLEzc){8QT{$}p6IDR zi^eYNn2XQDo;-_fGAtZI`5Zg( zqf5{VXMJ=@3*PqiCZq@FIO+G-k!}@j?0xq~mkd#@-@F&@1aTj`k@QRA zE;^O;YPgAKff3{fw(zK+&BS^8KS{jEiHFK3BwE~9%b+&cAQ7h7ceWtY^p zsO=EzsT~WK)OzZmW#8yGM7_G2oNw9XUP${C5n-G>?;cnaNl&}55JDBV+yOX?T@I?(5s_<6@bLgZ>uOOK^H zwS#HiiQRQ^i#k>C??8tw>PB(z7JXhepZuS_i*0f5lI0hA>iARWevqJ>kFm%8rO0wy zFMI1!PkjMoh#Jz>zQ3nVxPpD)uge&_;rf{zzd9x|Q7iVm})KhDUY`bUH(4BHqWRa(?UPt$rYv|Tr$&@2!vR)5M z|9tgqYIwYU<0Q-{GZw7&l!sXeJ+O0+b3Jv@%6{Ov^59#K!E7*-?pm1#HXKeqYo*re z&ichkHQ)@+8*f3AX*K(Z8KY7k9L{d%>+!x1DkR(zIH0#uB)T&LFZ4kUBL9 zZi71X435ohp@9|^k5jfq6JJG5pFN8uE?GcNXW0A)6Sx^~KcNInpkd zUBr}&W-!hA{@ctSqPj0)Up?&@x@TQX_jqx45qI1-I8s&|eM#*QrI*ZIGDK~&glUex zXYLYDeHU{Y=FBN`Pia#>?ArCN7WFyw)}ls2!WMN2`bLWyB=l(MC&SMad2XV+&%JDm zGdsw6`TpeAvx<27Qo85X(7kLSYcYKhUH3R5PhQ4(>`s*1q8i)DzxpD&`Bv6w`z3c_ zPTpVKDdMgDPXP+-@t9TfT$6Wuo-_<~58x1~Y1l zI_thSPh6}%#)I3ZZVgs$jJ`Zmez2bIeP=V}-p71=&ImR0_LqH6^~3BpLY)nIgxX8o zwBRxHu{QOO34hrSW9k&j+`RbmyF9h*4ED6A(ThBFT$1#=)81YM4WCD;PLZ`>=tUgS zSKdqa-bJkAG8rAek#H`{(?F zhzvvzuTvjk&cxGtjPCU1bRW5Z?hw$PI#e_{Ry6sZ%osnw+UKc_1-9l-WY$`-maUMU zM)xmQzk!#HO6^rcm$pz9te9&y@^{w5(0*q>wtgz^=AS5W<8HVby>%#mhaD-WUUKz{ zsrX%@Bh*a@k3}3TY}F~DeG$jdYPAL_6a8Lau~k(@Z4fS#W3R6mhPaKY3mXuJU-UY- zY=_^qVd>+)x$9DfUX;-DH!`%N`jv!EKb4`0>MgYf`TlqjLzC1;5*J-Q>e4H!CgB$; z$mI=$Zb#?~3H^H6s7vocD2`|NdbI(e`w&V?=!wFpOOFDVttE5};;In0t%UXr;&zkJ zSj0VwxP2rv4kbK+&`b%9N6M!VI!r?QA?4EuEs@Y^2u()`r&UoCv1^B)J{57NSFsNB zE=CBJ+Dnph$tDx}SmGY+V(4)77YUtt9z(~f&n0xZgpR{`e%2^+?H4Of#6D`9gq9rp z1@w8m%1P*{bziJl<1ANWB$QbF#fnYpG_}3M(qFlfDOal9B=nSo&OnGf>yBsKnGC^j z9CybTE7m#ZtKB7Z+%$&P2B9?)x`-jLa+TWGsTx+V-YR^tV*9GA)HLBarOV_yz(I4WJ*2!_6n@|d<=xZC zxI2Q-ufb)ix>ubhB|LNH&2{gnBuu>(dLTst47T z5^A3P>4o)G533ClS~HWON7RiHnlGX6s5>Q;p7ZI2qui&|qY~N~aiiStE1V++&(*^7 zS@m-X{q#JR@SJ)n!WLVw=&1|WInSw=5vo`F%z6s>UOMHwAXOb{GUP*FrtQBYJ!%*ae} z1VIv>_WfcJwxV{#+9F0PQz9dcd~x5d{)iB?GWL?h8w zYa~@(Bl?NRMcyD92TxD~7NS>(BBc}22Sib_l>zSwV-{m6BV}9i4W(G3WhbIH zD3-C(lPH-eMm|QAPdQ_y7m*;}1nEsQmT02%A%Z3Cp@vD)kEnuZvJ4=~ruN0lUd`G! zMfPb%39=vMe37D_Aw$UbJ<&`#2z)|Zj22?8k}L-|+iorr^rzmUG&zh&kMn6coCu$) zM~Hbc(g1%`5?yGdpOGUC?xJFO6+9H5+rApK7wO3MHJIXd7PPxZ0aW`#TRfWDwL|?! zN7Rj^cSv2^V@ix0YF|%O2M^S|_UE94eWc}Xx8VJSIaJQOZO}WP^m)>Qq)~0Lu5(mN z25GVTr%=M19WH@>-svjnua3BFS*P#7{><|>Xke#%pp!_iwZR%+r&@-0d;sqi8 zOh@~*&8d(xk)r*uJ#M>{BK(|coZSKQ4DrC26We?Re;Cr!^QcdDlkV++b>UXg8H*v3 z=!|(3&lGoTqs*}F?kH?Kp*?G*BSe0bYMdSH0`?u~0Y5QgS)1<8qU*GH=`0E?@iHc( z7UI{$J?I%{ac4+PH%*Mq=+Ipg9m_pH&n)i(+cqD&52C#xrBi_)=#2&O(vil_k;cwZ zoQE-W6pk>Ojsi#4Q7G=HJz;dBGr}`_L%+G0QGX@vLTYE-yStxQKQRdO@l4GB(Z0u_ zEkEUjLC)VM6wBC*CkMrY_S%oCY(cHridz2!>Vg#1ivFm(NVhCOdn4E_#e@kXy0;Yj z4xqgUREpW2I2IlqMnfwU>f5t4>u`3(X6y^2a-Kqci)`l!Xs44M3J>yPGuH1!-9jl@ zLhKD~fD81t%dUB#fuzUhE@+A*sc;F@yKe&Our&O$ zRiX!O>)h7XD8-7l(_!Ci4bgfGDyi_K^WGd4D( z+7|Uyn!UGRZ*>;~X)H$3o_oxF9+dDksJp16IbTZY{W@bUl5%=M3fyG|Vf?yYa>H_b zNq54L$6e%fcpgevN=G5<&X}_ks9yWSe!db>2<^HaggSB;s{f2as6B&@PTzWP?mJ6U6d^Q}+8-?%@s{s1)0<_pkV8%(#d9Rq*9o@kW? zDXnemK-ZaXw|-P_EtGZ^M*m^GKT%y632ybh>!Y08A=yyyW6RpmGt}}lCdW}*Nt(&(R>-y`qWHsxb ze?8}4w>qnJZ{chkthN-L)Bw=#%5*C$@je`*V3g;fHn%&@C{V40HR(@q1hW#lj!r{6 zeIcqg8CBo*&nfSwkB0Jn*L@3G3j42>c-H9_*k0wfMwojh_*(+R^BK&{&*hh(QoY(8 zQzC8P`K1U@(OwO98yNtR{JgG@t(BA7Qp;1oLh=f29xu{y*1Qsuy<_6B+?f4Xy@6Y-XSdm#jS=zIkUtl zsCS(Mwz1=4i~)7D8(hl3Guy#K^Wg2F2~1;$z6WnRB{CfzlINs|6sGDS?>Q>sX{NJ7 zCVH!45mVie=|EXbz30w>KSHl&3Y+^D{JpM#X;@*hW)NGMVhfE%gV@RB{CFNb-Pp(E z`M3q>6(+CHJXm=24W_=KaNjB3W?G$+Crsi)rjis3&}U3tz-Jb9OufKo7L82FPvpVB zliXxl_=E-M9+NsGPuRdYTfk3_$!UlM$cE`AY-cN4Fg<|nY(+b!5!>>Fo$zFe+hzgk z!Sum~JYg?-F@3oK?n%YtOtujXCI^^ndVQTDHklp7D5h-iS;TmzV(?i+0#o$7z9u-U zF-@KKiIby9W3p+J2T$$OnOd~50Igt}9k3(#Grk8|gEw-K@v_F1Os+uUb?tch}3U&xlCt$17~v1U2a2&TnwClNH}u(z8?C%P)Xn`053#B)ri=N|L+5V=fFE8g^eOsr;lbLWTN-Nb85b|XLa z_7>-vW@Iadp5h}W-;zR$ulSg#NGzmPwhu!M>kZ#$-QzT-$!)IijoPZuyoT{l$8s zOjA(43(zLcnU#>N1&dPl6($&s!J>jF8%A?4tljvUo)f5TkH-bB_71a0c*0-7L&b>4 zkm}9iMGv5{L|Ks2t4FAKis-62dz(*>L1H0MrfK~)FQ9DQCtF$qdxQy77cAwf>|sgl zFgQ$XnJhFfy_B9nbA&HbOQ5I4WTwkq_xD&JvYCF`d8)@^QOUFyYFI8VFrDst zt4Ef&&vd`5q33e~7nQ{peGjxo#4vpflrJ)v7L07$vk2aJ*K=+gIizQaNMafeR3>Ve z+K-&xbEgRO)^i$0W%t}GCNsS=GP~yikVc)? zxBfi4r}0fR;pem+&X6WD;HW$z9F;SAMmS^RsJ!1qI4b9x2uJ19Cc;tqqKR-+E;SL3 z%H<})QTe)wa8#~05su2uCc;sHe~6)<(*_)sdrgF+@_Q5EsK6sR&WWP}HycbiDmG1o zqXI9nvJXcEZlRfQRN6HWj*43o;iz~v5spf?Cc;ta*+e)h{!N6V(x-`VRDz`kjSB8@ zG4vOItp2oNjKf;1u%?`eL$|5nO(b_FYmeyc^ycI>Mv6ziTS?97DI!=?4SujbUnpfl z6HQcy%5R8Ho7UMUYa?V>Pm0BqGdoX=ki(g__eL5+lx2#~4>69AlZlE%-RL7dN63Rs zG}C6JwBRc(@D#XY>mqfGZ0Ad53T)q48R(}Iwl7BZCCU~(9N^iG?CX!dEa91aSBsG$ z0eVhsd#v2Sgl&(Nra;|?t&Np2OxP2#@-rrEd#v>Ag*mU9ebS~FVx=F`zTHVcAv(!@ z6Si2#%7smo({6%1N0cuH&RVBVmR);eDfz;7{3%1coJ^D{F78X#5~OV(^koaJl@tjw ziRh|KDm)IfqlvayC(7$h^nAPNGPo~phdDR4n<-0}_GVqto{+CG_3M|c&6coQ6y^Lm z$pU|4=pLj~zXXd&mD8El!gh0HHdEf_wN_8c$|kyPo-14T)3^Ji@E=xbazqoI>iM*s z$W%MZBA$^iFtwO$5%cA1L|MYE)koU1@+?uNC@ETRSRn5QW0|K#9E{&0=>~7W;J61( zc(3Oo8N=j0{^OoYWCqiq372~=lP?kFn5M$@Ql>n}G!w3+GUZVwZTJGK74jsL-Ef0g zA>U;(!?jJ8{5Pi7aBY(%zt9P0xfI#*GW*I0pX?7+UMmhXB#Cm&;)X}JUB!-Tc3l6{!4_Ej>3 zX>)0w$d$vG_LN$HqM6Q>=ZQQS$8@pW0yK?jVsxHZEuUaYinajFW5Rw}BVo-ZY6JGm z8kwyVMZH$8Au58uWdGW8tqdH9IgwPKb@Ff%+4!uNPlcc_U;JZ43!mrZn?zU5Cpx$G z$(I+1GEMJy?f~>P`-b((6EDcS?3>Zc0%RL1;ODB@e(5dm4YC7Krm54?dq95d%LvI6 z1u~3%FN9ctVu|odwX;v5e4>ebd^XEnob#hWd7@Ol#&mU%1?W8@J_w>+#w^`hjH$ZQ;9InV4t1xnI;+kiWhVQu zuiuax*oSR+L+)Z9w&8?)jeXdL6Y@PGy$#i}u89Wwyd`^vW1RXpye9`WQMAuFxr`{& zgl+glKF@@0_(YZy>23H_9$_E0;Zykz`>+k4$~-jRz6@KwxL!!4aQim znz0R^OHZOq6Sm=V*@p<@oZ|C^9Nk38KJ~J+i8}jyBM&!Gw9gIsgHEOtuRL*EDnqb_ zOw&p)3lRQS6V``w{*LUzK5WAs*^hnLh96}l`>+i^%Bk$bHvA;h*oSTSNoKPT+wik2 zVjs5QXIVjnZJ6)#i>z*<44>cS{Gk|2j_G#P0FyzvF{)79K}sJ!SpsfM{!gBjYyBoU1?w+M&_>k z%sz~)lVTpOM~x%hNohx<_n?Q;lYJPOhZ4#@jLcIR%RY?EQ<+Jmk922cNfTxGbXRJ5 zJDhd?$~E2&WARshXCKBApjbvciX}ktAkt$ARC=)wV+mA-u@7VErA%ZW#?nifLxiz( z_UWx;Hj$4{f91GNru33q-l58eyj@<&J)nOl()(+jDm3P>OZAef)XCJm9LAgPsk9(q`jikt+=U?}krHpN&bv{ojvzlm=&pc(JPNur& zp7%~yGKexwx1QSsluJ}#TCwIGpGC^^OeJg10c|46Hl@S!m&HmcZ}%KLe_5h&Slx+gz$cLSS9$!YvCFThb6DO)rIYi-a^*G3nPaMq?qgoAR5KlqzUs4FIm2{) z!wsJdrGd#irdI~r@q0lMe2Ldnnx`dW%C<$d;zh3&GG&zNqzCTrPB zyJ(6`DvRMdQo%1nL7ejIMM&F-vcEkEf0LJF*%Ng>sCd?>b}%{xZO+Rb;A3A zm5SX2o$ziVN9n|bcLmQW{!Mh-yh;gU!YltgWh@h3`L9-{GvR&58f6|6-ao8WvY7BL zWSz2ssr8b>-s_b&nh4(TP%bn1FM;bp#T2JU76~~wC;?4m5rxVGrXfvqYJq^(v!rt8$MhN4&PiB1#m~M7_QXYb3n2<4sf} zZ*E7*##iP=rqEU)Eu5m~)ZmHdHu^_m9CtO%!FQXIF%^ACZG6iWE#V<`_pMNZiB8Lf zTcxN}LUfzO_n9{?$O9TP4YxaOesh5ZXcAG5a9IfNO({u4HFCsgqjA4dNpuxR ziUUfOzMb5Z73h0F`HHB>^x%p0P6w5%OgEn>wm+oYV2aze-szC?Bh!d&#rFSD?lav; zS?}}@MVpSX6q!CvDYk!Ev0;jZGGA6&Foi>zhm|%=PD9o^9acIqsY8nGk0{mnCJOg` zO?hf2mQp18Y#--)OnHmxNr%b4@Ex03y6;Jc>AuI6g-k^g(tJ-S?=;a;-#3-k$$HK; zTXKEhQl4S@sq+iIZ!2q=-k9xRI-~4hI+nQE_g&?}Lm$vtB{)SdB|c)i?*~e|Cv@r? z@v`rEW$SF6KG<>E_hTg~Ri`VRKlc4pDPYPS@U3sHa)jxfyj#9sC^bw);Jc`N!!&KR z@cT+p=jf%JnIilyDIQEqwtVYbr-U!9QmgA4g0H(sZ4yK=#(M%&s`uqK& z%x1bjBg*erWg*kxgsFb_m1?Gv&QJUOt~jRYWu}%a^Al=ErqA{i`KjvTO|%PM!J5W& zZN?(is6N9qH^ISVQmdE}rXKS%t6@*;WhPAhH$OWyhH1cF2a}_k(M0urPU;1wx~bRw zoYjY!)z?N&|gH6fhl;VgXuBVG#|Ii7r&(i`*%^FXBsyp%D=1nJyDUEUOw61OLcx$uc07& zx_>uyAk(@{J&oS#e5QcX6n}4ZB~vG$9_l8hZ^}LVdaC!CdUT!d@1vR)>SgBjcQ6I0 z6NvO#5U8f>BvvM_^bb_CnOw?N`uA3y)Aj8JZ7%WetIlN_ow(kqpSrGzcKP>L_c6@@ z-vIS&6YcVUT)ocJuVBA_h}wP;mRV!MYm`B13{j3LEckPvXLX;z^TQx@2m7MIH&ort z+u_yBP<21&#B&HD4#HZ@5~_IbF8qiQ#G)QKrdls|9Ee`zCIIr@iVw z*f)EN1?U+2@b99L>M8c&-$f(Uv$_vzIOZLtUMH#%)egT~Mys%{0{mQ+zent}8lyfz zq#qf^s82W1Chsw7CQ*^N8F$)$tokC+Y53b9yiuvbiVN^_T0Aw(BF3rJoKs9Z?H{XN zV5*CK-+#R7yA*R4iK~M@^^a4ZVtO(DEB}e=L8jCxSNtcbm=B-2XZEi&O>Uwi{bNMD zdY^LYaZXjWWtbDmBBrW#O{5qS)K)}AriGSb`)O(iCL1TD&P;8c);mp8doTqS728i& z1DQq^t#_KP2J0kzGDBM@sbiSpx2|_eQei~~_$d9fs%03)KdqBJpOtgK41}xfXL4iQ`To z0qN?KL^)#Ii}2)G%^=eEoJFehIx5qYx_PJ7BDEdUVz~NUq;_V?bdC&ItoC49=R5|e zH&d@JaRE!z$C-w7nE^DEX@3da5vik?PLvppOVtTX^XK<9EmISia_4{Iv`kH5@)-Vf zz;ZQ>$$$7lphY^-zL}w}Xrko-8EQV~T)iwOAX6{M%*$`Wq{>{dT!S~KHT zK!y4PQNB2ydMjYB+J2*6`(p6zQ~NTV>;HSe0reo$iT+lBht%Lrdd@H6?E_y{H!H0GSaG_V`eVx}#2Ncl`6A89vJ*+!(}Om!`hK4MCso@iwHtpt4! znBF*mzrU(6y-eP)s zF47lF-%=ZHG99Juj3s(xFQsG7_DtgsAq6nKG8HL;X+6+EM_SEvtpcfx zY3oF!SD8jp+uvup0_VTi)yquv`;qQ4tqnqQ*rvxhJP@ff)3Fzk`ZGOC6wUO334ODe zj+&8{GC9$V+`yFOioOaaht^0Z9_FO6{g~-$IQp(Jou*jii+W@kM6H7_wP%bCtlpA|CQ zcpQCunSQ6JPcr!}MBk@O1D%m>Fx{omRJZGqWpqcMD^mlN;=^Rq3w?u`CeU$W5>wO& z^rbPardj?RQ!wpuB}_q!Fz3rm9fl&EdAMB;(j}&ybC7;yN?w3uQ?AFE08eUOSKXO% zQjz*F1?@zNVoJ3|n$F}#N5yoe$0+A|rVe8;=T4^e(MZRb4%4`wXL_E-;cKRYG!DNp zZK=fVTI|r{e4EYzUQ7{G-#{k&-I#M6lZDEh&GZe$naMP7D(2kCbeoR5`2Xe4isZrc2}K>m^diwHrldH` zIfH2p(PE~fMEOj;XJF3VOt<$U9cOY#MEZ!ypT@S4X%`)d9x&BWPM6(!oMt+@b!W1K zVkx0a<)e|tGyQu%q&ZCQQYl$X3Dir)Ooj!R^8nKaWk_!^WzZ4q3#Msw^uEb7svL6~ zU(zExn~c<+X&W6U0+`a)p)Z0dg2rzuQ!?#U^O;_uGFLM_Nk`K%rZIHndzEPjMfN^Z zAk}x7sW-LuE>jt`$e}`ya}*sFJ2Q2poc)P2n%lIhw6%z2w>0*!-tuU>=oBJ_1+8c4^p zUQEAtM&AggUQ}NqQ&ns9Enu2SM~$^iR&)+1XY!=u#8IYWG-4kz`Siq6t}q>;v+u7= zU(vOOW2GKvA1bp8(@{DW3}8CEA4?g_)Ps(uDNJLgqi;FWY#Ql8rf{OYOoc=znSy%Y zcAqkJUyXEw=?Wd$)qQ$oAvBjcIR z)RXFanaQ6<>DiFVmU4 z=y;vZ6h95OThH`8&54~%!>R4Zn35)9&ht!9K8N%*Qw<#ze`D%fj=mNL^f=R=M)G2+ zk3bs8<4hVp>2{%e0kd-SkFw1#?q6w`xzEM*4MCp1GAGnxCKFP~{O z)xMkQWtyMInLeOvl#iI~=(@F$X*nIw9x$cR-tY1cJ$OP6m-Wb23`T0tbdzRe z0Mk(#u?VIjIucD~y0;Ivo6ppG57KI;t<;7xrr)WxuQEkaYu{&@OLUnjpXS6}rb?Q1 z4u|zPSB}COIy3Dj>d&;A&f(EaZ&I1Fn7*W$yp$=Ht|~V$X)UqL3Z}NBkxnqVK7sV{ zLti1%HKwanyF8*tHk@j2#WaE1(1U3Z?PFm~ElaSJIHtbwNOPGkQ7^4zdTtK-wlG=K z_#I-pN4~e2I???6lIbaG(QT$SG!Euh^f*_wz%n~B1x-fk#Z*f)g6VZCC6VcQq6JJp zQ<-a-_EMSUO!KLfqfAF=ulkVbGs<~|$)9|`GI=h*SR7x~<18d!7p581+5t@dG_S`p zEv4Q~VS1fvU(Pg&W=|p0fk{}yUZw|>^CZ(T>iJKZR?vL8!So3o-PG6g$UG?)SElc1 zp7}7{OT`)nGu2RilbE(r4QWh+sFdfJZ0MX*!epd9{ADJ8>iIKFQ>h0pF?~rj{K)hL z%>tXFdYm@Yc6X*eM17bx(sofy^C+_EOm5UK=}iAl$MW?|ANIiZ?PNN*1nC&l8?H#_ zne6Gl<7*~sI%59DbbTo1Z1K7t=grYbUQD%gh8@V%Istv-n7rx8KATAmMPDYyZ`Ud-8+seC_@A5$B;f*8saP884d z8__(b$7bSoxl9{oBfZEpyA{$ACbuM{_n5+|2kV(qiGF74Py3%;l^$o@T-?rsDUXic zK}^Hx=sk+5jE?g&nBJj&!3A9L+WSs4mXgmjiH`HTnI1fezT-@*h(2OEMbyYNjOYPV z6kYkd9M@}jV~AqW zMpx-yFtwz}ZZdsA#}MNidSvOe=d@=EA_`!d)En!IV0v~t(p07$)VuSUb`_v+HPgGB zkjj|qXl!3)a+-&}_n9WoLb}X!hkE`lQ%D^898TzQcBX6L&P)axvHna|D=}v@(?#mD zSxmFD(YKUoInf5Dbh^W=U|K=@^a-XgYWv4bU5TzSjiK#iwI11rG_zVU{Z6yB2h)WK zSbG@LETTB3Hv7;wm+5QTb5=5aNVJ71iu&^q({ z6q%}LV0|5#w$Kde#qY+9X)RNGI)|4teL#^NWx8XJIX`3y zcS5?tR8PKNnW}=&=lG@`XI}@TE==u-1~BE)>>10{b~)xuVVX=eEN6k znfB5-=Ooi9ItqWv^urp=d4s8K8zl9V9@(4JXRb`))LI{=PJJ-vV5Un`kR~yGMKd{# zX(t__pJQ4Sj5$k~`q8|8naPg!@H0#uhGEW2OixfLKQcMe46&)vWC|FZC*D*qGDQux09|R8 z^OSn4i7eujD&BcmN{pyc9f)e+zew}MX*E#yncjjoLQbo}Oh@3Y+|z0}Q!Tueds>ZR zYM+-J__jKZDL8Kq&=jUg;Cn}%$utjq@2GQig1<2Oi8E?e6U_^JSKZV^iv!Q92Z{8^ zK2(1@Ls6T~Ow1D>s)l!UvWNd_|4_AK@(Z^BwPb2_AXz)7c3|>3U^JdnyDMfnbTZ>i)!U9ZZX*-GAT~t+~98=W7Jn^M!!!#Y< z`213JW?BVrOMa!cV+z@ltbL_=GR+vB-s&sWo2fJT0+|Z-;C8`GFYd7b4QAQ{zDsHp z(-H7pQe$XPv z-Nb~xU)9gPc;x$4{e}sB_tnyWf8@Kb9%Mq_Z|ZB8ANhV$-(f=E@9MdRN50?HIwtfz zP_JKkA1oxmzK>x$OY_#8+ZD*qy z8nH}RUqaLh8_kJGufbO9K&01Tt3Ad!J!Gx0)dHIN?6m&u+o)dA?6jC>K6`C4`%=|P zTYFe5Os}ujP-W|&tza5uK5J{y3YmIa*TQOnFA?drJ81{m*TQfGmaBP#X^2&oZ42!@ z(;_IvS!>X@Gu`!CVCAA+XR_*M5H8w}Oz-Zl4Q#3X#`N*-dLXNBF|r&}!OGgeR+>H2 zi!1AaTIoc4V{5JBAE*ma7R>i=16ykm&3vv}H2YR*$AzmlqnWRbHivyd>dnA5S_aem zhMR%yv<=O2cF?x6Z>V-Ru!HsilV){Xbkypa<#f}&X_nJXYjaKSYs~4cc@ydV*+~mz z-xE+~Cv8|WpNBTOna@K@YUcCQQrY*4X6ogs?QZ7ltQ}xq7pSkZ_9l@&mmbqTXqNLa z?Gw(qSSD+aX|;dIdF2l|Z*b196o+1qY4@1Q4KBU9Xv%fHeaA$*UR^Z@CO<=^$xCx3 z(p%e2b7xNQ&K}wmoO7k{=+#3j zXy)swZDrqJ)gpRodz<-uw3pd;MD5ngM?2Zf=c}DzU!CgL3)gXwV#kF4|LV7~7Fb+j z%?67_g>PK`$2enyaE-RGjhK!$d_m6(Q#K62^@8#jOI&si%Lp z^O613s7Lm5dmh-@JJ^3K*dR-Xi^Txn+Ot^jn|cX z;X_9MOJ)AA#_%vd#(=eJRJ-9nMEjKXb(Yl`;DJ(f^;>5C7G@@9*3GzvKOX zGyl)W!2ix;-T(QSU)ULsx_Hil@1KrAt=Nhwm=4EDO8<{3n#h4X|FxW}>CA;C{IPuO zB?;g0#JalA`=hOj9y9P9(F#ly4`#$y~k!lX^I##T!DIDbi(`> z?J*??-plwa`{5PBzjikN^Hym)urA*+)Vu|#4I@zhoKsJU4Z>@igY)qia^4%yhP{{K z8F^?TZlzz_e9;-bm`9^L2Fe2~r%;~1D*0jg*aLS5{ayKY2jNIzE&r^1J%+!J@ZkKv zE8+j92zQMCyIyMElbF*$;{|JA!I&EVFsA?A{aNPqcXLJ`(=x9|qlWSPvuOW*>>kcB zoWnSKAI{Rhn#1}G*XzPO|JfY=KQ;d^KK>{+jNy-akY3Bh$N%--`0w9~|96iPdK()` z{_Z&N1)Xa!&p$g3{QXSOdtm&K|Gb~|qZ#JZ=$Q7;W}RNzf5(jat5z(9dm>mC67I+( z-y6c*NGXdT3iLQn=9>P%oz% zY`7!##TmPyH=d*M{A=Lz@85ah+tzf}#;p|EO69Heo~aptaqgXhs>kzJJ*KDY@#t43 z`nHd3RW!fq(62poub#g55XOLa>ncSeMKa95Kc?vS^7=J~zHLl6#o*5 zThFOqrPR}%e)E)DaJJG!^Yj#YdZ6d2&&Kj~dnk;>AFq6hs9yBKiXik%02S`#saJJd zf41<*`!J_oW}X9X+q_r9axi7|TvX?Tf39WaSWCB5ytX;K8uMU^6oaAn;FwIGyCB_i#he#g8DG$pHt?*{Dg5y#r%J_=l*fdj9rfTo6jQM z*5_Cm91R{mE5qJU`02{GvAC5>25R#olAeOzhvR;^;!*iW;?dUkGF13_e6y!*`q2!p z0RI@z7vYam40KevPW`4o>00*!mh-X;##s+4#an|hrPc|18~Xv)MSwibRT23A08*UT z{V-h-c6pfp^=B}pobHl>XzXg8Fy+tv^XHUL=s5qV_h3beei+I16<7l9O|Uuz&D#^1 zXzRV9&nw3%I79A4V*1ycQSZ<*L*4!z`b`nvQSV&S(;ubiTm7?s z_;WlbhG8xLb$zlk=GV_?{}mk$`->ueU5i@{E=JW$h=+S~DISkQ?N0k|AKDj|k-koI zL-*>ou78gIJKCGh(76oDSGdgP_Sjum%UerO|7`0i_h|(0lIrzNquBJV^vLxx*V1uG zPbq{W`NMYUTRk49iWE3IwT9n9_+1OvS=R8|PQaSP!YtgSgD8gYK^4O~M8(nxep|q= zGyJ;1FRcC{TfuK@_;rQfwy=$-$W?;HHzHCriYWLU3BRM@cQpJ)!|xdQ9Sgr^f&Ufn z2x@@!5zuxAwHAJ$_*H$>P|^s}Xwo>+MA8(}G}25^7m*7J*AApNNnK?p_%42m#P?&$ zK>LdG^f&(V^tXMpg84&L)Cf|{V-bD^DhF&SPLeIHE@VduchDH&1q%5=C&IfEXjh1# zdlE%4*~LQJDWMlIy;$TdL4C8;91&-Aqxf0UrJzHLv&Bi#5#Gtb^mQV|YT2Ozk!FSe zmYingzj7z6&w=0m50zIBzAVzAF6a%}3ErECvwC&faae)xoo#PI3Z{EQ&RP*j8bmP% z$>^z9M39^~={l(6q}!m~Cfx%KnIvTe#UCU$tT4%7it{9;1dDp7TF7Ht*jfh3-wHhB z8A=bQ^z&rf3hd8FS|2HrRz`}1b7#Daq?M5(X=S8HxFSh~6kH!E63)$YWej|gJQHkO zVJVVUTZ(~R+6w7+rtg=NskF)P_a69)H?0UXnYK!zttP`(wUCZ$G$qkiNwih5tQ-BK zgf+CFoML%rx>QoBoK%V`l}byc(o!j&R4Ox-N=v2Eo)L#LLzN}sT*+7^o9s1Y=gY&H z`N~Oou0)DBS+{$m5+`2)EueS`D24)xVJmI5gSLvJu?T`06(cHXO`%Fy%_dl_r1vTg zLqA8URiG0=aoxEZ>iH^KajuHim#d<0vscl2bXD|?^D0`2?!5BC(2eSOWjTDEy^7YU ztD?2(^2JPeudLPzzh@n!jDa_+f|S889Z(ys{Pw@D1}SF>&w}>M`Vw^Yr0+n}M?C=b zO|WQjR*_vjwTlpgFX=?}rqzb76SYM7AU9EqR{X~#gZ6bw*7B9e)Ku-Jw!GkJtwB^} zuh6awyX{5V9Wj3ISmlmT#_xgjdZz=BzTl-~&5OQ|mngk+Ue&4ueu?m~xDo{OO4+jL zZA}^{M!yf~_}%g{=&R4c#;+q*(K>ro^p*J(NLLJwMyC~KL!Bc8u4+g zi{U=RTr2JiuL;T8eK7*Yu0gz9IndA`UY$AEkWZ_jxEk|jd1^t*lhI=gp$dLwK2*W4 z%WJfEXcAX;(j>0bq)B|2#TL?WbnyG>&XmWQ@;Fl-XNjvnIZIsq$(iz3(KqMgte!pO zsks`)jy`K}H)bvR!r*6I6w_b`GFmp@G2|6)( zyq@Isl(?3ZC#8E+y0^qtq`W1rE9Fg*c#}7fyn*BmByS*j10}986-ar45-HkP3e)89z*H1aBN&_6+%oY zR)-Y3?K`ci1b)5pkb>hrnQ~615++m5DuG|6OrrEeDl>`FQz`ybiECk{N?ZjiRpN?R z&rtd^64%0NggIa|J|l5;tY;*?xw8bkQ80U@b0=e{ap|(2#(K!(59wEef{cyIes~YB zO5i#OHR7AtTG6Qd0N;KLQk)?FO~qsVIM7#TP6Vxo>Z`@1OZa91e zm}dAIi8H)F;tVg4IKv~1FCHp3u7Pt$GT5(eDL2L$8)xk`N;N9UA{?n4M-{&%@2KK8 z>l2L&%1;~JDczmQcPFpAir>%}ImbJ+X%25pI##_k_rZnS6lbo-42hu5CRD|cW-NsKCt;gF{(TDf(wCuq=wi4aK%d@D&R_%&;(;8(0u)T3U>rmfKPwPLHp zJ#MSSJuc07$qQqPhu9?Tt!c)$F>a!4k9mTJeEP*c^ zVN{vMoUZFkxyIkh3QTt)B}zS{-VH7{6@zUwR)9+QV(FQLN>iiNyXCJy`31wW;VbW$ z?yAJKIcLg;7~spElv1o7OKX6oC@|VUI6940U?pUDul2A#CutU)RIe>Jnsbe52U?i( zjkC7JhJ23EgHl;`?A26iKSW-uSVC)>w-Q+uxS0CT;H-_xyEV^YG*j@qq* z5#~gBXx~_KnzlAP&Rk~1<8YY~z2_DDZfu2dd)KMv3gg0kGhkcv)=*ELSMWQsW$KND zXUvC;EmIeny|fz%dGP*j#LQ&vJhk_{+P%94-lEMJw#l4N$F6i`n|+zNRyF7DHlLMI z3CGNhR{cv(o6j4S@jI<9=q0OmS@lr+dvmUv%M@H^>%4+T*YgT~bN0M~dn@W~$b;XO zJ+I(5WzQ@4E!p!5?yct)JYwHehwixxFZ1K^Ar7ug;$@}8V{fIzJ?k#)%kX}x(YBw1 zDbA|jtUQsfVC&KqZ2L_O*S~5IUd0CMi`3hVR<}00TE|&+Ob)VcG@jbzsWloeA4s;o zsb)^8gc61p&$Vu(RyV38ofm*TW0bed`gR#na1;6y_YK$L#3|9EqaOf1&ZYg=!+TDQPZgn*I#90iE zbVRxXkGcy<4I4ii0pEKlK z4K}?EsNh*LTDeO5W=E!Nl7eqDCMoz9W0HbzFM2B3K@V)>Ox^cd+ohP)r53wHnboD8U7G1i z&|_dv?cBpI70zPW*3ZCM437_!4$iV$LM_TQJy`s#9qMAc6fJ5^Cg^WAYd|+ndBHBu zD!l7vyL=eO7?@p8#h2Q-8Z+Z}LAs@+(k{p<5WeMw*Yij1vMJ^=lU3$A&xp44Sd$ z340vP2ex>%_MCk&&EaA?dfn;&EPsCChP@=OlpVX=274N;Y$hT7u6@0!_sj>N ztI{9XH=1^BHaIkziZ)w2+%(0Gc5Q!P7UVIPs4(y?W4QHsXGurd zonl0U#BY1LQ+lp(+Xe^62y?xYi({_wcv3q@cLRR2Gs1jwf`?-z?c))~4Tl09{Y?Aq z!yLU}tD&In_rv{;`Nrb0j)~^GcCnz1cJZJW?WQ^6z7Jljs|RN};$HAB%&Y4qd7>S) zD9B)4vD7izkTW~WF~xjqu?5nxb?ALy>#5?t=B?ts7G!v9`!2@_J$?gTFGUz|wao~F z^^*5cp_~YVIrqF{kRfQ#=Z=9?{!uYH$LJIYWggHx>0aZcNbQRE!b6K~oPrEzpK)}G zHawQ;;goL1Yq@lDG<*d$+R%2kms2LCL>m@&^>L~g z))cLPdxuKXQPN`bNlUSPvH7B9y;BWc`M_7eVIQdwZfRSb!XYX+`l)zz5v*3vJfKOX z``#T+jWPjNEQzF;BdG@>RowSuAO(*6<}EZ6Jl3Cdih~~b1a!pei%yMJbwQV%CR3g? zV-{Q;;ql?P2vS$T^;MkJE$H)`u&3CyNHYeu^3?Lh%j?D&8&y0*r5W?~#LGas5AvjQ zZW8o%+ZL(R+n#h!l&a!YYnmaeORpBSRvY1ebrR+2L3tw0^ie_o7SB+^t0bM9cc|H2v4Xtj7} zX^SN^;@K2Kz5%aK@(ttn?zCzU*jKrJ?L&ddZcc{3o><$&*EUu*VMysz!_i#=$XLZ9FdubZZ*yL{09E%OHqh~l5 z8?@o6&Si$G>=&F5Q#@5LYJ0RQ6^}(VRBr`%KXpD!-WnRULlkqdA#=(-*!I<#on6Wd z)ib?a(v8Pn2y}_F>b5@!>=(d3Z_bDu=yKOswDGvWt6!LV#w&1@j#mhSUGP3M(j`>7 z4~cfEH*Y^U!9|*;cAe^Sfg(>gJ~ITqZVo-*2S>SGGZ(wuh2CD_a>md)F4v_N(zk+b zA6M>@qD}6$#tyH1_PW$l@6{U|W?Doe*^P#fZAN3G;lmd&We@3Z6Kh;<8tO*B2l=Ze zeCpz8jj_2Z%MN|z;tJOlmtD;CJjd1QrJNfs7r7_nOMZ88wR)w{wWS|;JA!VU(xqjY z=CS@b9A{2WK;4-NtEO4Sj`q|VV5guhXo%Lo?w%rC@$3 zYOT7jIo7g4#dEZ~^~{`iTWWB=fQu3hj}PwFZF9bD=}al@IHfw*8fHBmLntK>j=)hc zhi@Gm*s9UWV|{F^XlhFkC|RiKH?ct>WQ|I#)RhSF^cFDqP3LX!zVIM#I&x{j7h2udc^vxZ-z=hAV#iS-)r* z+&ah_k0CJ{KI!tac3KeudGHBXs5S02F&eHx9i!n>vKS55(2mh?{qPtKpO0-7KW>d} zJy|=PIj41!mImM3jnQzO@E8rBm8EJETbDpOKB0=Rz8!TO(s7OP2DcKJeo!v@6ORVuIS?B<#RW9R2urX{X{8kDJUboH~IksanL>1mIdG@JS}M#I(4 zBdlN9ISEvZoaUOXVg5B*;NDu10%bmF^0W3WNpnrrPQcfAQ?<`aYDKDs|7%r1ywr)Z3LBw&*amsES%t0KNCUYXS6Lt*oKmtD@Ge z(YoXQPBqq0jWtwboa``WqjHwYxj^Myq;iTS_WVWKwpe1E#qx7_9#~AzjT!Ul?`f#ONC{%S_NOotwbf#-@>5B6!hL&NKz>om9HU?v|IJK!pD zumR6&!`ezZzf0Mz%Sf=(U_IG8l=D8#VGWL`V-*dKRC_esEA!fBLdk`YbM*F-wr5N~ zzp$fizIE*AJ#BNXw~si~)=v(#yw)~f{|198&dhcO%-PO>^U#xyIi3a_Q*Q%~X@S80DG)f01p>#hlFkKiF9|Cp z;+_P#l;47Vi0s2)+l$xakDyhubw_(qEr)h=5+})9BbR~w7T8YW zW71mEE9Ct~ZUAp1+1KTM*!Bl`6!eb#0MdV?^k3w!VBaPCzU&6E2_*tlQ>H+f1_h%v zDGR_hlWnVPf)tBV4(hDzhjbT8Z><~!+m-BgN)343lnAZ~DGi{JN+alK|%yx{$h(wkLH5wHIC0=b@Y)V4H+5rTdW` zsAA9bRk3G+)kY|70C_`6$C1X7&LB-8ollxhx{@@Pw2-uzw1RXW>2cDNq~}RLCaovE zLVA<*M^dR#yGR{LT}V5VdXWZ^4j_#pjV6sJO(dN`nnF5GLHN(1)o4g>b*O9t%EO2c=c2Mw~DNgOsE;CYG}yX$ zP?Ja`dj@G5>3m90CwnPr38j>gy_56^r5q*uIO!Qmd7td_r1g|?h3rOBvk_~w19gJG zx1hRHN@udYNPAIA5ZMDrqbMbs>~W;?Nz*BPDcPB%`J{!EUQBigX$7V1Bl{5PNlJN( z>@%c|q&F!2CfPrd8cZ0c85ANX+mY0dv=^lZkv)Jkf;5WKqsbmennpUG($mRaN?Jl% zM(I1rt{^>1dYsZvlKmFxm!$QSeueBt(jQ6hQu=RXOEX5^p41)GBs!DrMcRurh|&j; z9ZDKSDbZw)Bb`AhDP+$f%_Ut+nh$Ccg=80#?j)@s-3MwChsZucdYtqmrN2e?8PbnQ zYbpIpvg<(=k!Edy8S7_@Z3!h!B%M#Xlr$Gq5l3w;-R#9lTOmy1En6qp>WrRlXXys- zMUnQfM|+%oEAY;+$1>-W7L%R?b%X!0zU0jiqFlkyew| zk=B!5raVHUT1eeU-AO&Q)lfnR*`cHfq=}>%q?x3pq-CVlq$f%1Nb5<30c&w14IvFB zO(4x6%`#BTWS5g&P4+3W>&O;XR1RqfX#!~mX(nkIX}J}ac9QIRQfb6(;V;FY9>&|E zAvl!m1kyy(4AM-}QqnTga^tV!MsT@Nm6zPgDP@Nd`=^@hlccANSYties_C}y8K9Xk zj|bVICagCM?1%x=L8lMMq?9bMmkzjWx&~fp#yqMS^SF^6LYhE2oiu|qi?o!qoV1$s z6loplWl~{HWsYhLVPnCXgnQPAAPE%_1!&EhnueJw;kaT2FeJRM=pRl2j#i zBXuYBAPpf6B@H7@B%My0Nt#7kMp{mKiu5w6u%&j9x{-R2hS+Wq@AU~II{|Euz8Rp) z`eso|DcGO)EhoF$wp;`Sog%vq?Bzk1$rg6y;{71_Qy#R!4eYl4Jjf0KJF#CF*$H6p z?l+z646wiNmqm6t=_%67q^doZ<6)2E8%FkY(hU18BB*~B*`;8Y_Aev5oV3FJBe8Kn zHKbbypQMyJuonc^lPw*vOn1@*3$`Kyba_xI==(v{pl$orfhP77ju@vK==c51PFQ9{ z3mdtlcVY`HA%*PB7GHo}MjGmZ>4~J7q-CThN$W{vOUzSGDqB$`q@kpVq?x2;q$f%1 zNo8v)pEQ%SjPxXFJ*jl1GD)jlai6Lq6>ZR#ZP4pR>P{L$8cLc#nn;>Knn_wpT1Hw; zDquM#D2FtJG=VgOw3M`tRJ5ajUq#2~8q}8N#q@q3LCk-LZXpfPXl2((R^uj## zq_P|3_dyLIO(4x6EhVkiQ+zQ`DQPun9jO*@3er6T-UF>6yMb)27p3>2bg~=BPU?;6 z*}XB{vk%(geb7$mn+2NG7gI9G&hCrprDRu=){%-J%;`qz8HD*m$PN#pa>&jgts!p% zrHg*F6=_I68`vs=G=ns|AC^-}_Ktp7PBqzeq@q9OcOwlUO(4x6EhVicts`ydkEMxV z+)4|^(%i@nAx$97AT1@WCanp^t?I~bpsmCJs+Tl`G=Vf}0OrgfJ9_|@UpgQQw3@Vz zR6LF;o{wYB@W(Mv_CT~t2V$8!24YGz*>$9DA();Nf_bt-&|4FVc0(xI*@MvDF^JN` zC_M~q&%tPi4@SFga2BW-f~pO{bT_g+hoCov>{8Nd(mGNx6!W{0dJe^{LdXsuid!{M ziZ%@GjA1sQrKHuQb)=pVxK(%r<|&Q9(i$j58;&X2!_m8g?C=q2Cyl^#x5&$w9*HS6 zk(d$^l?9qWnn9W!h2B!KcSK>HYO?D{#YoKWM(Q~dbB2%|J`!^#kexwVO4>kq#3*jUq@^1%y_&R+RBWQ0q#>jUq#2~8r2ijnZvr4! zRi%&LdhcZ?2}wvo2$3LQ*b>N2APMxAPC?}E#SIY|cGtW|LN5C?mKti&OP_sa-DB*5V^@zob?isSJ~Z~&aoywk##P6CVcZYL%^lw| z{(|xMjDKkSFUS9F{9zN$oACY#Z%t^Oc<02QPW;8h<&#dC^yx`YPwLq1m%FW;eDUOm zCOFGGU%dO-yI;5aA9g=@+UjYY(}t#9 zGVLqVem(7|>4(io%{Xty2WC7u3fa!)Bd2>%v*fW+!K7 zXP-O!mf63b{nyz$=FHveoV|X$*8zKfYVYy$rq9EPH05Icc~PB9zN8AG;DEU8~lpkE>(UWlj^mP~D7gPq(UTob~v&Gv;EBQd`=O zSgzEY>xjQuw+7f=Tn9Yy>f?Y1uI&P@ZX({4BOWXG-qUHGwT?J#8}ZCf5?{QE_?~16 zc)j3nt0%!cdoR*onnwKK?!*Jdyk79mJsH<`Tg7h+@sF3B27GLD4mf<}8Nh$L{7m4U zpFIzF>}4MSo+tR+G{#k3MPJi1mjipQxC(gfX$*7lhHC@LN2idoZ=Nn6T|rD=@k!v) zGd>Hv=hnM`%cqn6(s5q|p7%kf;d062?>gxB!fQxbKK;IczW+^hpZhd%at~4a`tbqZ zAbmM0?>U=k{@5`zztl|p|HJl@gLW12K-af+5%04HF@>Y0>TziUquGu|zx?`Lh1o8p zI-1{kA7H&d^`Y+qFO}MVZuL)K{^U&7!uJGqJB+r>t8e=`Y(IT6%i)_F{}VXrs^0(~ z*+I&*Z7%`O{3LPQ>BJKSXRV`o#W}?DX8sYV!)agr7nnB*>M+0d$$x-y&2j$?yy+7R z^Q!BJwpBBPeWnw8K1S3jyyj}U!Kd4CLiXH`GlY-sF&XAl7t8=Yd_8k?ne>tNWA_2& zOXnN_+;q+%z^0DHz;7;PXjgA1cF!bs%^)U)^69f^UblmI{71$1P~x4liC4Ubc%xAE z68uRwDJ=&RZX#h*^m-A!YT@-K3n`PaJzY@iRVg|IZT_{hQ!X#21E% zu9&wMY5t>xdB4yGG@p@$P^96|hxP^L@Dr>rLBbIru>OB(*XmS*P|;_{uumOY5g62gUt(7a4+r!J@Y zWU0rE$I<*@DZOK)E=o4zdsW5t5Sn2_9FdZ$?yB5HYZ+7%6p~#oV}9fzO#wHkkD=x96W)P zj|ko`c%)CtYj+T5q=_peFSkpL|3)a2rB&?FMB7`tiT`yZ@dsj?mDnfjAmt}F5igXM z&@Zhnbu%eH8YF&7>alt`%^i~dyp;CW#7#+B(Pn8O$4UrCi2EZYmRls`l(d%pgz~V2 z?~3_UDd9sdVaO*>Ax@H1B?Su?kn(pa`Ds$x|1IU2mhd~IReyak-7FT{eW%gf+d_Pg zgs@7&eC2pjPL^~|Ig{oVX%CK+?J9Bq;GU$PF10yP+W&!4j}J)7moB31SEbiHCw=oM zadW@a-F%^wzDUy<_p ziS*fN!c{Ji_E42t`;(+%o(KQEw4O*K85(aDOze1s*KiZ!ZbqS*g>rrG(cA_N}1%Ge1TAmZa+Tt7!hg zzY%{Ud6`wF`LqGzKO}{%C(wM5@U97x@&_*>#gmdRUP$u=f@jM}@qVeJc8Tjy!OcSd zlazq7fbM^OJaL=gyQFMimU4bVaHFK>Pg24cNjWT#vOQU9@LN9p-XJ;sm{2CoB;~UQ z5I6S__mvj=6A9rTQ%G4qo%n*7A6!NA>Z#&V@G{BuKIf8hnz-B~A#5KZao;ZPTgCkc#r=mrNZU`ppV%%ue`6cv{O`!@;2D`OAM?SLkluF)e*Z+;E|(eZ z(z_}1PY{>qi_3wXwEd9Gsavn3ZLWJY{2nCcn{TJ>R|QYc()`MG&9HqiL-YQZ)BSZ@ z*K?*&B2GM*v)89?-2n5=7j0Of^$iJ}e0SwH2KomNng`rPqQ=2I7Upp z2f=(G(82Ezm=6Zx7DBZU=0kxFeuu%l2QMVu@+%@w0`N;%X~*qp>J<3;3D8kbs6Lo~3Ut(y2q~fd1L&xqs|?If0Uh-V=#moZX`rKi zsRm$v2I#0~aaTb?{R-%)U#o2}KL>Qw^J)m@-vAx;0`yO~83gF47qM#(w_E`o+&EB% z`6ZyE{)Bye3H4_nZiG=gVE!u*cb%vam|q3rMjPxhNT}C>T;6BC!fJPGJv*Zie0PX;<_O5!q@ zrve?dd*Z_|PXjt?R^kenX9FFzXW~kj=KvkGSK?}z=K>wIcj6kD=K&q{uEe!4?*nwy z{)y{gJ^<*b_av@|c>&N-2jXMu33U((2d>!^Gcwjj!4`I^D3aDj!fJQ^HD(DZIQSK=A(g*Iwo;1%uPT? zH7C9Va|_VH`Qxv^+y-=1d*Z7wuLq)4C%z8zu|Txy#QiXD0HReV9)P(Mh*phrt!ULi zwB*FYF!ut{k`v#Cc{30#Iq@jW#{N}!+Z|VQRgOJfcZS2qs~vf2z+1Scfbo0F9R=3 z`~kKX0Uh=J#49jg40Ny;^v}Rc5`P7LF!3trmjZDkRpK?6F9SO2{>1Are*=j7dJ=EI z{4mf_k0joN`P)E8J(hS2=0|~!`fdXM)OP^5i96xK{5a52e@Kjh`Hw(Hy^mf&Rk%pGY^z5AnucL_JMgL5OwYB3*3w|l(_v0=%^E&1AwPH3qaWhbX49s2<9Q6 zqYBO;Fc*Q28g>@Kds z0^Z^r1^kS&26(G;H1M-d6Yw^t1$evD2E4;*2Y${;0`GK=1K#Cy0Pl9XfS-3Z0`GBB zz%MwPfcH9EfM3Mj6X2rGNx&~VrvSg=^a1a4(!j4e8Q|9(ANX}=0Qm1t4tT$_4fqXb z2>5_g1U~4T0sN*@20r9efe$-7fZuXPfZuk`0zTrL4Sdu&7xJAEx@OpTYo?q7k9`zp|NUjusX>%cMY8^E#do4|4ITfp&d!hz)D zy1*zqk!*m*8mr|M*|OZn}7$oEx?1_HsB#{JMd6930&wN2VCTK01tD!fQP#q zfs5S~aEZGKxYXSOT;`qtT<)F(T;ZMqT{u zZg4LFcDR=UJKf8GUG9g0-R>2@jqa7e9`|Zs%Do2I>s|}o|PJt;@$u}-n|KU zf_pRYME4fpN$#z{lik~Zr?__jPj&AE_PKWhPjl}9rrmpiTiq`KGwxS_S@)|z-~BqU z-@P9=;64BxbiWDAxeo(RcfSqX<~|C{yWas0xsL-2?)QO3_lLk?+%JPM%Y6b^a-Rg2 z-Jby~?o+_3`!sO7`wVc0`z&y$`)lBc`#kVW_XXft?u)?py1xUS?Y;~=$NdBFT=x~= zdG4Qq=evIezR!IXc!B#G@Iv=>;6?5m!1udv0xx#o0)D_vxERY^bO7~1cMR}ScO39T z?gZdv?j+#l?quMH-KoHjxYK}FxHEtsb!P&vbY}yva_0cAcIN^==FS6Nz?>$;Qj74;5XbM-~(fx#KJ4xQe#;#Je%n0@_=tNp@KN_%;A8IjKzvaS_+9rR;N$Ma!0)-2 z0Ke~E3jBe48Ssbhhk-wGuK@noy%P8n_iEr1?lr)ly4M1qbgu*chkHHnXYLKapSw2! zpK@;o{=&Tl__TW~@R#mwz-Qb$fdA><34GSQ8~7{S2?GA_-V1!r{Sxqb_bb5PxL*an z;C>zWU+(?D7u^SdzjeO}{GIzS@Fn-#z?a=efxmaZ1N?*gIPj0|_kpjtKLq{>->(Dz zcb@?M#eEX^SNCVYzqwBVUv-}b{@r~B_?r7H@E`84fv>yI1OMs10DQxJ5%}Nk?|^T* zF9ZMO{sH)w`wCEbe+DMJzXBb6-wgcUdkyG$uLH+;Zve-7Zvw}8Zvn@92@m|=!(|d` zqBjOO$r}gU&6@z6jPFr_|KlrB;Q!uK;O^cu;52UraJn}WIK!I_+{2p#oaxO4&hq8~ zXM6hq_w@D!&hhpG?&Tc-oa-$B?(H1}oaY?^e3!QnxQ}-jaK5(~xUaVq_-=1Ga6fM) z5VtG=5AcoxzQZ1T#$X0Hlt@pb@Py%AuWcNTD+cQ&xyI~Ta#J0FjlUi@^7KzXP7_y$n3Z`vdS??-k&A zxIqm3-}@`@ecr3U3%u8W7kaM)FY?|1zTbNjc(L~u@B?0A4EVnX(MNsI8w0%58wdQ5 zHvxE=Hwk#THyQY0Zz}L3-ZbD9-VESJy_vu(z1hI4a6cC~yf=4DLR|+0C->$7Z}Rp5 z>m`4$ko*E^(N1)?vHNy5B05Pf;faWKCNh`v0g1LpZa zPyIXeRU6bJ6Al4BHen$&I^Tu4LwyhCPW1zrJJpY1?ovO2xl8>N=5F;LFn6n;!@N=b z0_KhCmoWFJ|Ae_m{R-xkdJg84`VGu;q5E2^`l0iA7TS%4i4C~p>pO`bC-!t!ImbC? zIOjNbIWsUGAA%7wg^}x0cVF<6Q)hPeBwXUteI zqj|;`XWT#Ikr~g<_{$8n$9{XTS5y!-+9 z8kX|T<9(j`AD`Xx?vt;R7!n@K=Us*GhJ>zYUOVqYaK*bv!+&e%J<`rMHzdJbvV*S^ zBeeE;JtKULyL$$=$JWL%as_D^v4HkFyou|;TJhw(cDTGtYEuVrXcEBIBR zG2IT0DF01YyWt=!_Jo<|$IbJT=J{FkyxlxMXP$SN=jYAy3+DMn^Zc@T-e;b;bx`8@ zhIu|{o)4Mlx6Jd~=J}|3K5m}hH_soM=a1EwCMS^YADj0l>pGiQB6rzNgLe8T0&4 z^L*C$f7ZPJ$~>Pp&lk+|Me}^iJQE2W?ilkNXPy(xb5cU5Ym#}NYM#@~bB1}&G|$=Q zImh^$W8UYP=RW4SuX%1vOp$!0%yW}GJ)D+iy7p8z7Z(TClmj|(;0uSbN%=S zoPUnH*ZJr8XPo&H=D1Hx*yt{sc)R=Ai4Wp?+Mhufx8nCX{GP(^U+!<+f8qI-nCE)` zawp>Vy8EDe9p*o?CimeUGatVJ{BquTQ-<)o)%)kT0sQ`n-@b_Zbv)n1Z|ay|?EVAT zZ*;#t{f;sJ9Cy!{zfa%jj-9d5-7w=Gy#H>@@Qhc-+%;p;*k#V#vE6%|qW-qWtzLfS zC1YpIdUedVW=+NK+hhMZ?$t5BoIMr4XUATrrjGmUo>RxYvFFlpGv_=DyQSma=Y9*b z;gNA;_WBme`Lc0Cd*Ozey`CQTfTckFSO3!fO)Kv<*`PV z#|l{<+%69uoyXc(9^5vMb+J5F#qwAa%cC{pY&?F4;I{<7m7pDg-zxl$!dl51JlEoP zG=9h6*Mwgye(RxsXWLSn{ZctsEG#+v@W8kvG%gK|%R=Mwz_|E`!`12mztY#2O;^$_ z#eCk+R1jQuso0;(`)jxM^({HP4{p}3>gy9j+fF}It@uslV~bm9EyQ-e($Un?l+Bj> zayg)`&GhxP=E}qQ^hirST`n(MY(rYMgr=5aVY^?dtShC5{N7@!Qpyzu=vmv=`4&I5 z)P}@mOKn7AFiB306f%RQVxd?q=SR9qK@POznzS|~E?Z{96$8@WpDPVDNr_3q#kwXW z?WcygbUB@-{7QAW)!$kj7(mv0OX-X+rME(CS>&t4lq}>bxpY2vroXXRZrkn`DvV9r z)fR~MS{vPpAmL&{RE2U{(%rN@oy(`U>bhR0-PQPRNL;$IQD&Dnq&6fT(a8UjRW_kZ z#nfFKuIAGfAMJ4%O(o}-*OiJxC8;=$qiX&rXjTqW%GVzORh55wlm`ov%e$@-ML{upDQ$U zT4#&?(v;6Pm;CfLRD8=|x-j5}(IyMMBf~Zz?Q|5&-qOgrTp`=SqUq0NP*CM$A%$F8 z->Jc3HJ?SnRC0x?B{r2x>5*uMLkaZwL&fcWM=@K?`z+$_ls0##D}yXDI6?Q;wBBL^ zThp1>S1QBn{d5*wskgYr->S_aV=-YNSDVUywsoYC9?E69(_{e^_%YTx*{C7bilHS7 z+l$+LZPVdb28-FILUv0!S6Npq_4ws#zG7Y4{+=o2hNY(<@oXjFD~or@bzn<(;;gQa zgj(0zRx-$1>JdUjNNAz3e!E6&qNPjQCSiW3jSWuUuJYhyR|OtMmI{gtw6)bfroPz+ zb7Hk_8pasmcc4bn1LzxNu+z0!I63?@I$F zAboWyTN$%P3Dmhb0xp`)td{%@#liskdI7x=;~J>zs)Y<5$!_Eo&(3OIm?TMUh3b%B zBFn^^@SFjJknK&Ew>9lRdo(r@ZWp*#nhXLhbhub3(+kV85gkEgs-+UR`^KtYrAr2h zN88R}j;ja-FM70rAsKcmymhBqV*@xyJ?MsAh5QIQt3R~WFC`28#h4$dLdK!HQ*$+! zN56$n8DiF_3t)46O}3p;#pqKRX(u#@;}Y$5_SCY!&gNZz0FgYp`|9@v0N@ytNU`` zoERH8Ol6r((B3I?fm3E_sm{_;mhXyX2yzf@*fwbf8Pd+E`sIotHSU@mIM<;+1^&TA zmMll0XyoAH^vgFLMGzcFYghL5?I@*(VGKg9?bQtfU!nT?QWcayMz}h~DUPry2vloU zAgVI#s^ykq)@S6P1i`oZ80q6YuVD-;b@HW)bF`(1hM+(Wf@;7%8wPcRTD82nsi|${ z@^woNU$rK_{Et)(~F)!7H*x@7yN9$2R~ zb$9o)rBZ!uJw07LefYnnsi!m9+1}RyYEye#Ut8zqzRgWN$)@HFZGD|h9c>MR>{_>O zL$b3?bvO04tXIuFZB559ke2mLod~0;x3?$Rys5Vh30v3I)6pc!fQRE62G-Hl+Sbv~ zW+K5I^mlq>$wqGXp87i1`^~A|9@SkbS&>cNQ<#R8d_8IEEefd@TDRWK z4b$D-({=m_YCE}6U!SB5;uLs#HdWnPmO&rfq0Av9l^OJh(orYf)vftlc@UEo2$2Kj zhy%J;Ls}pZGx_)Wbh!fpXz*^@RPf%_-(U7CHZMZPP=>aaE0mkg>`t|nO2v|pvkaa= z3WIJdWHX=dj4I?Z%Cv)Uz%4Io_X~arR_pTB@*u`snp1uuE90;X*G*+zp_&r( z+y<;e1(prEb!ZurctUb5*HlK-rfAaR3(wU_VCg5b3Khl&7<92(%J?wSBBg~AV;{ct zl>-Yp>-2Y4D7@PtNJYmZ38)+56UN43sig?{2lG7{swCD?tR(tK)3s@clO*-^?c5~4 z*Ds_C72`AZ(v-;*G4V52ra+7@Ex?2{7ELV;y}p*D=RuvA=G59Sk@UCe&&TJ@FQ?vpYSKFCy|`^F&!n0^?#~AQc8vN63+R z=ua9s9z}*kn>RWI#9=(bWGX+T>Dd){P(P;F9q9sQ1SR;Tek@hZWPIOx)((XcHMe(n z`^a5kU{oiqZ1bq|Y)h_`spcvha)oX0*m3AEoz04D<7<(aos={AIE}S!1aQhhkaa}m zpbHC9{ZJJwOS)YP^#z^9O0(YvsYn>VDH^7)DbI#6Qfmbr1O^DWV|xu=B+^KSWaIBd zX+bg2?5BqP3{(~-Z0G_?yRdF6Y|lY)M~P$?uA)QPDDgxCYMc^N`=j_bQ^XE*6O-FG z1>&(^Vka{BN|rZqvaET1TY)pftjaYavaph68T)EoHy|3ZvnB>OR1YeH8^kLJv6vfPM0xV5?Z{O!gTh51m;0?gCjY`G z#AURRQ%G8eI<0XM=ai!`KhA$@{B@@@+t65bt!I_!GB!a?-0y>_W9HA9kWOwAb0zzp zEbI2#>r)d>b*OQas+P91nBkHnvW6NG+wBIZKC6f|l>vJ#=Chnol)-;e)#2e{$%Z8@ z4pwIN5$VSDZiTfqbQ=rSG#b-Vg!h@D6p1BM4dl=sKjY`N8>&`6u;c?Wv+<6~JRERz z57LE+?g@2?pG|fPZ!1z2MP&^dM{~83s^p+3_K_d!4o#ZThk_+E$;BO}&^P6DN%P5c zS;i`53T1>Lv(-?uTSGQ;g7zw$b^1Hxxf(iyZGC;sXdFnyx}2ZSa^XVMQ4Osk9KVsh z6}0LDtr33e9gHFg)jPC9P`yozUDsR38)&^finX2?RY}*|w(ZPSM6*y=h`P7f4p8rt z&7q#k(Hfe$#+G^_-`EZn8VF15{f%82F^WU27UXn;AKgPJ+3zyIjv&Aw5slpk)+t{G z`}z{7OX4U2rPdeAqXdBgq?gM&b#;PKVS5e>grhou_*AMi_M0p~F)3>&b}6VXcvG0g zV6mvq1q-@9SzxhP?`Uk-mCs6QG@z zE{jF2x}vAncvC4?Z=p53GC8WZ+>qYt=j+K(4(WyYdMn*YN44$-GcTnE{d|5@Cv4cG zT6RmjAJsaj@aBsjUcq}h45I0K&*y*?TY_1+q= zJrrlXyP&3nPS?;`kobnSz3CD}y86KNI9*TIO&($+7gg$VOv$im02NbjrN@f~bWvX$ z)mFWAL@KYhH1q0u3-mlR?0R}+MK)+8J=AP*@GUm-fq`&KdZa!ibe)FuWVso$xgm5B zD0Q-FEW88sW zvTd%Go2rmCO1U$o&-Y+E$SCgG(5EXSloVnP^c**up!R%mYdVi6Eo=s5jp<&gZv&Kk zR%>DHVga@1DzW!S^NP{A-31|9#f^=*KPV9052SF7Q7S~1ej|2KF+NcA#~ejps3|v| z+qtoT@)?#w7sbZ1l(WVt7AYq9KOvRK5MVaeuA1{Y)I;(Q5g4MSKOE2H9Cnu0M) zV=!in6WkXQz73SZ*Wpqz`dZRKwd9LcG+k~l!OX6*qgdJ|x~hJtOt}P4)hSvPw>fl` zwhThwlN#2f$cq$P1rtG8kCA5G3UL`eX_G84(|FMegy0p$6PU5YqurFb$Uw))HBhf% z*p{m>HO&kLZwMeTL&%7{R6}zl1cVm`fEVkZbnBgF;~U1j-(TT6P%4-8RVg`-A%Qh?f%&K1)+SaVE_?Nn>&oiCNyhid0I0g(-AuiyB#cDQw>6r+I!_Jgk&P$V93YChs5cX!QENqQBoz(l zkcjfd5vmz#EVB?gp}ekOZ$>QH9gt#j&_UL$MpKhjmccI?YiIEtIkRC(BI`qmmVABVWfxX#duRirre`hHyIZP2&93F z4aK6U@`|Mfmd3koitumxUxOGhvgP_m7=<2yqfSOuhstt@mYSpPO|0?N3(eBAtl_9z z-Ci)1_19P!?WNQSiZ1HMSk+cb11CMjqUekoSYc_b0Qr;E6182IE0rtVSQa0I{=i!3 zg>=2;&(c_ZqZSNRC!y{n>V;!+r29p!$ao_AlVS~|ft8(0+n#5~n$ZK%0>4=SipH!f zp~eDBBeKo7-l1t|TL#mWWPiPN2bMz9Mu2PN2GbO7qx7+CQ*Rx#SdMOJj`hLUtjI4SQP-y6t!{#+B53y{+wW#X^CHC*od>C5jqbwBuH`QEFyvWZ-DxjNf2ZU*lib zfn=`HGFvnx8@3Nb<`k6d-g)-)-`<~WyZSh5wsBKeE z$LN+ig^(7)1(~Q{_FmI`uy}=a^4h4m3Q#V$`UR|o2f{-%1n#=P9^E=S-)^mlI@YO) z^0}yOXVEO6jpkrf_GDQ{poWVEJE||e=_TrPQ(;>HyF^g^+aYV0qE@4ZvJNac?oO#GNr@(kqyo-)md{(+b~+$5RcRpV}(zvhIGumAmi8x9M*b6QG`vKmWFc$cEfsl z8g;5inkXgUZDpAd);o}?sHokd-mn!OVh6>>bYAPdqPDVn zC{3bHbmB&_G~-fNsSPXlBTc0N9Cs+hiqBM@5kkW}Mx!upP$k1@?t^OVDwIVV+asIF zg1-|-1(1Zsn?RzGntIjS_o5aiHKwv;oL{QSn$P| z!U+dIyBXyxuV{{uDhY85lkC!cz!wFypZ2!b#S6{C-kdaxl*46PW~IDeOyUMw>eqz2`cYqWa8 zBClIY+)%|tp+V{$kjD?@g%GZ}_?E;xhRHQeIF@ShDb5CqP&NjQU29weTQiqCwp=V2 zz7kmVbeQx>F{NT})}}AR7HKmg4pB6^-$F8nPBEJ-fRaMyg5EE)G=0XZ_K1=VmkDot z{8&2MC|2!$#RkwftjpFWiGz}u!%_=KTcG*$OTjDV-%?98K$m>IX3G10m0 zA%R!36d~_rgd2TlJf;=XUUUqBM-yl8ZX8C*438}*a1#|LZGQ_aO#m?uR_zfG8Dt%? zV3Z?)D<)iclWEB@iw!&i*2p5lHDVt0N(9HYMlNhw$Go6*v+4Bum@=at;&wsHYHaOe zhCsg5(3YWsPs<8PLkD&JJt$u(kkPn8;7Us8ZCx1$;Y=l#!wCO~(M8Yvl2KxM2d{&P|1jZ%iQ>LYRNO(U=UW0s*qT z4YGaTx)RP^X7eMFrY=4uZwMkQrDbX}p8FPp?InQ=hS!=)4-_yt&t*3F z+x>hHnqF5P&6Y<31EBY0eWk0c?qmdqv;@DlZy(1b}LRI?P@e9QnWmdAB1U2q_rSw zGG%MszGn@+U2oZw4im(RHWfr%M>O@tjj45ZnIYs$`=zr{$K-mQjwqBQ?-DaMR1fN+ z2r^XHvw|cxwqXJyUB}G2g5YWxS*>-zR_$z3Jj!twF`<{}lMPaG^`kqN%8Y`nfhE(X zH+=<}h`hE8`k8HZC!}U&W>|&H7I?5@ucg_c*SgHq|Ee(n74rm1eXEG<0H};V54VlGQVCF77bT3;w>^mcoMOhfP}Qy&r{>G3MzL#u2Up&Z z&tYppINj1W;izL}IxWF4V9usF`lB7mj%Uet9g!}BF~ue!K8Tnp97a$b4!sDw;6zu~ zPucpkPqIvECv>9-(xhF>D{H>?RbL4p*5E+kP!%(I3j)AA8Y~rA$|B_8o(r+g`vd8W z?6gu9R&&TLMD?*K+%dd}UAtIVB#I&2O(NHIs4dtoXu2 z(Fp=zqY^i#O|OiK&43D7K+V9X_R0M6Rc9VHs5ULYeGM`5AXv*1Ni&XIB#Cx$3{zPNWB z(t79FD4B&mce#=-M;PSd+~?_$Xyd+6}(_a7*8q%@4*@I z1_#I~BSmlF2oHxhI8Z*iW7~y<)sOD1z2@?rI+v0CTi72|XB}?nYGjMhk!LyNSntzr z`D*0R?g49LM_wGP7zIUIvIWoTqp}A2HmMOK0>;;AT8hKCpeygcBZqoAYMshJYhM^y z!w9G=(DJ`^nk-w>sGjVJMIB+_UMqH?a>nV#bjf53z1cL?L8`c8Cp=W90S&Rn_cBQ7 zm&2C%7dz@~-vSeLMh67fc@W4V@Sw2^pdH6;eG zm?v03HsjuIx%`NXBxWzNiu5sU!XOP{P@CJbytSwqtVopMn#eNOQBkjCj(L)?*`%A3 zbDBUV6(iW26STEn&I1!QI}3`jaAXTt68F7{B45^(wYSx47x&4PHoD?;&yvA_dqt$M zpcs|*B`>CKP!`yBrR`HY(!;|Txh+i(c6xAu?2yia{|BSA!XXX_p^O|C?AYs?lsUnP zJ@?@aBgt%N&(R58qhwF@MXUl6cL#(%HgVv@p>eJ~#BJp0>fL1?Y>97qtmcBUo0(cI|dG1+18HO(iquv4wxTqWwhPL>XRbZw;u8h3IAW#5v< zNK_){p<*Va>mvj*E#ns8(4xD%7|RXed%ItWXQmgIcyI)dIjOlX5!-lqm8D-=pTj=I zLg+L&kRFn3E)93&Y4v)`$nK7`Jq;DQl6|Mxg5Hgj$J~_@4MA6)m8oJ@Hs+W{H4N2S zLvd#B#R)BSxpK=^#q0PE{dLUdUklu!CH7Pyy;6js~Vv5*X4T@b|jabG_v<^AQ$fo7c%Cuchll>hbSsJrkffdriP#`Q8MnVfS#T6m4lG~c&1#qFQ z%>d5`Lx9su#X{yv@NO0Q3>qyXW?ZT%fg21f=?0lhnv;Em*F{E?ba~)CZk@YkublN>QT<4N= zgP0;!JBJjFS#0RFMgtmJ=vhNUYuO^l*??9NYCoolu$x55HR{ALe5}^$7Zk7*6sBvO zcxqx+?={dbK^UQL3h&s4YPX5Vo{&6NTq@YAKY$hb(g?Ig+Bs{2%~HQ@=d@5&*&d>| zk*ZXByInVvT4d>?wTQVUGD|jN)#eV~-3GNc2A-joY6W{~HNh^Yf)!yL&`YaWKF884?CK1WU4vl7=#X-ed@WS$}6&zqm=J)8(*Y%FSsU{o!g(XA#<~ zEqLo6cpG;eJk-E3^_@75IKmh#OFTM09y)5uLcN8#83HrQj!}wHHkuizab|9#(jztf ziDb$PmvCdr&Po>s)>4kUCnXcOp)7JAgOFG^wKP3U=c8l}6SCdk1{EJg0{#&UtD<7C zj@f@2ob^@IC^n*#%^0PVY!+ZRq_slYqAKr1Xh&ieS#3 z$^mE^0cgxOR9Gj+e55RzDg}nlr>^(DqpO`Jq|=R7DxPSl8beEv0E~OX0LA()fclV%0Mv! zE;GVxe#J6lZ+C&1SM)E`4sW}QT-S#-8s6Qf#Za^}=xmlOU%?GE#xEK}us6hzhFJ?- zxiarKr-v1+bUs2lJ+#%yw>Ryf%hzAG4(=Z&C2(m5V?Czex~96!$W`qsc15z%{lqxM z=weJ1|F!e1Y#d@w0T;*q7%)!5b3>YFEFx4kUsGk!Vjo{$SX3UH;8F{%Z8$kE0%T=;m+FC56`Je3Sl`tY3G zf4GCqO=MXdZ(_?-ZG|$lYbaxggE;xYs}>|Glt*~^f|OyLB3B-=kf^80s89Qci*NN9GW zJ`*!cU=`F}t|1jvN2JRQeqjKfZ0kTX!@&q?I{I2n4%_GkxKtMR9_6C9o?>NB;(`t* zxQLQwhDsJpGdr&}Z#6X9Lz#`6KPuuz+~e3Fk|3;s{``oU_ShPf>&Hr*4d2`hWuu6^ zmN-w*4yy>Lxb<`#^2Lomn1FA^3Mf+w1#=nOZ?;KFBX@~NYNPLH5OT?g;&s;BR9`=O znU5nI=K4id&rzv|Va1>9~^I0{=$+4WoS7`<2hBdw?%S5y{J<`cbvAI|TO>}wPG;W6O z0Gy~&f|&tC=fSvRTxh0DO4yEXNmkgZ_UCqzR>iN!Y?77xZ82pNzsZU}BrQt}8#&!4 z=iydNp+r|EAxyxVkaP5wWTESPOAtm;k0D8}UsfEfn(_mXk1B&hXx{})z`@9ZREfR7g8u+LC2tyP&W--&!0>=L!%OWM9OqTqfiNoe@Sk_g}E(yXpvD+<5zVc#~Shqh+Z;b%3J{y;{QV9!MA zrC(Vi#|06iES5{2IFwS~D=*yX#82tq9!KdVfhA`!&@&jPO=T;Y1SF=~Z0y0b2?|{K zFi8bGgxeHi&P>>5c*hymn5|(10WEJMO_sqi^0>qTgLiKcfmjPh-7yj&Dyp~^>GuU ztV!S+fn# zAgSP5_PD#?LiRX0B97{g%Jz4tU7{?8Ze1}unItqjgH2(wVNbwOV2r++t_RJq`5>aI{rpa-v5bC+ z2@_kg)p%!Dn4LAC3a1z6(wu7i_>eE<(t}7uV2xGYVQJHZoNtGAkqW9nR|oN1nkivQQaA#W4$KwmI(tkJQ(Z=!Xc)eh)C`>Fr!;1MvaCRhJ#=zFelxm!0pYDMt*@7 znuCHFF9OS~U&c0KEl-LAn+WnrY4icxH)3ka9GIzh5L?k{Ny{htRK`5{k&$Fquzw8m zI(&4*9;TNBhi{bN!nbf}vYQ}6JJzNyXF1pvS_I5WOZkyg{t|P1{!7_B>LPLr9<}6p zRuFYy_m4uZkh9%EJ}|`$ctg|!bISs=yY9k-(uVuJ&GzuPg)BkENz@kM+LIup22Skq zHnvA}^~)LAFoqp++(k%ZOTpwBn|nhV-6hd;N+Bs1e?=1x?Na=3K;&JrWeOm4=_!q9aE(mk3jQhfe!)l)JdIY}Y}eRgD@Qi(Yzaz^j9O zF47M4p6}WO)>AR?aM3a9aQ#Sno5&F0?zN(Yy_#Y)`)~p~nhT@tvs1803|p|%9lP+P zE!N5~Z|iImF4)I_gwR^prTFh)|XzQ{mF(BBpJTVJ=HG>Q~9CVe|4V&5sJ`c&w8PHhsGrh70 zWdnAsP?g9_7&X5bR$GTvc37qIz7O1%8x}fMjpa&uXjo4sp)-+<0Z^0G*w{7IdK+00 z$VR?E*47}~a3 zbB1J8HWpeLjlPLvmzdh^#Gb1B#VXOXdtCG7Z(|NtTC&}+cYtWN;h((6Z*4&tm z?M}Khtz@TX@+H-mHP_IP-N6ksF!DsH;|O4L8heL~Ps=0Znsq7qI3>#d*i~^CgM1Iy z>^QI_c3WDZ=g7tz81(>d-?*t6+rd#NmJ;?~OJTbZiClZdg$ttmx7K8S=DzWK_8X)9T8t+5G?CRwM^(Gfn`6u7p8VOqBEW}8RkwY3Nhx!K^;jeU9ci@{U} z$i>GY1x+y+FzmfG5C~D85xV|%Q|JywE?S_-*P)RJRwU1!!ic5Q+>n@bie*zqNr4X< z6WNO~A_dZVu;YgdF!atP!CG1yr{++(%KkuX48+%$nD62dD-K`GrpTozq>G9J?XFPn zw^vV7Y6T5Y0s*NIs2z@_`eqlS1u|S;m z_T+`_n{E1p^vu>m5>+oR%UmK;Ov@u!k<+k*K@F-1^*+W4_Fakxj2GhK@`=!T)6& zL}(#W57Y_f3OVUmLPMJji1zqK%7<*qo90m3)?~k)PAd9=`Ib80sIbGwhhbX8ljT5p z44WpQC$ylKWo8RQ2ew^`NBKM)cf(3q^0qG6@|vtFzZ+L;p+|#;7Tg?zU>exT*QguN zA-DQafk=$L>~BZZtVI1m5ou=DSi$hhE?dE;d~uS|y3=h>K5c+ejS^o+8EQn{OaZqT z_pwG&#txMlf)(@WteZfytbz@EA0o;al4Zi@>&8D*BvMtlRb6^FE4%}(ghGMw`6 zYC^im@Hoym1HX$(LG(eMxkbhlDv#Be5w9#wN*o0gT@i7bY`BY)FmOUnL)8Uqo4ZVB zFfmq1ea~D-p#Cs?GuyyJLO7QXY2eo33wSaH3a&keG!6{m+dE8SSeDZIBCnKkBd@G_ z!_+|SNBV0l%?8o#bh!*k1#`?@I*TyTw{aO&5jAoe_Nb;H#?-74KH@8II znd@LtoV<@u2Jk5n^pv8F+^|zs0-LI`53KcnMfJ{+=UCEfot}J z#x{%(I?hpjjb;}}@If48a5fGfSMQs|>&11wu9?MpiM0Iq#8jwOVJ0&@p-68RQ<~m} zp)1p65&0aKaE<8u>b1-I`YQNPmmMvGBSDL(b}+3q*aNETFx(TW?F}cz7kZ*L$eest zLOx3#wa7$*gMzf}3~a`WHe;>0HQvMB1ER{sIx`1CxR2}#Eo0t$UIU=ozswGEul-9kHVrS;Xh3WJNqemvWB|P!T($ZMB>G%36UHS+j|_)x1$( zx*H+0+!RDxK?UE3lQK$?bqUI>y3VFA*U&?RtJEhA zx(=%GqdNbl0uD>(@F67}MUsOtJZDx)$+|YG4r^D13NkUA3t#lr6yZAyD%?*e!UouK zMc+Y!bLS20pfRFOdqm4xI-3xjpq^)Jke-YQ3oBF_$O#px=*U}!qZyque%o|)P~jUS zWjX9c&WGhgoU;+<@d1isRm9TBJ)FNpsIieY42ZgZY0Rb#bH7~dT#v+Oj$qVV$e1Jk z&2Id9Cs9^kZ)-vhSMcIa^zlHmPXg_i6YXGm)a1^VQ7xV2TE`^nk4^TKqDM=AUQ&d2e@w**=z zl~KIVI8_(0n3ZYi1v85>SHYhayfwSyzwYQTslYo#^Yio|~dbvoqo~#*?^f z3|mMbnn_?UqA>5#Q_Y5SIwnuXs1?E7Q;FFha%>L>psDb_6x|m5 zik;tp@##Xrpj>l*6qU$>Y=&>HW=2m)&C7j?zWFr(- z#hljBlR52T5o6~Bz<3BJdWL|k)rbs?$25vsn~aW?Va6B6BWIY<;&FecWh$7D8AUxe z&qQvQmh%1|2hv%r4WiLtA9Vv!R5yt>y>*al+Z|XW<%XiJf^VtJl9{)e8bAZ2el6;N z6E$ws#J(LF&Do($sJ?mPw&wxLRg%332h;tdusv5Q7Q|jxMASuOOKFrW%|~{CVonGi z&b=>4SkwuU8hzF7*vN%XMy>ov3XX3rW<>JiT5@1!bdav_CEnOw6K1|_#YV{=P_`!OF#m8kR8vu-To$h8WRV z;%xFj)GW90X&X+8w*`*0{w#P6WGzhz83hy$fuq2T63UeagV#Q2B($S}qG6}z6}8-1 zT#s3eWClx=f!WlSmFms+teO3CK$8Zi?+?HRQ8_Zz{A61q2uoXvbz;5+52v({vZ%mbRG4X3uC6QRz z`*^l6;)c5)L8Jt0cA9XXi}*Ly1a?WuB1#J18|}dCEfyhcGbRMyfi3#xVoRLbF4vAf z@ozqu4zU3PA6zmwM$05MYt1RlIINj&%)Fs#E8>LSkxCj&mSxuy&YSCJyS_+;r!S~W zqUeI*uUIv&zExXG$3o3vgMwaH6W5KbwU{Q>d4?ECNnCj{%4u*rB8=`4wJZmJpmWd+ zf`duSn`sl#0Y;Y^Cd^#>tFx#bj>I)o{xOG^(bm$LLlYz0Ys}B6xeq3-LBfrOGMvgq z&ZsWpVOVZu(BET_<9!r3An zmEVaYJ;{=b@g-C}*E20MzAwsH?ch}b#@vA=(N4@4>@Y*sy##}u6PxwYzF7qfY|MQd zqu6p+#VA&CQ$ho~47UKM_-RYv+1w;LXgStsf&uVYv@`&(dT~qh7NHX5*^WA%lYTX8Xm=X`yquzdV{joa2a!;e;XdE7*eyJu3}%u zh~(SS6(M|OH57|>buWP)fhhwBkRppWx zUJZu);p3rf``mboUXIn8#6>pr z$tFnUQ3mb8FR^`Ll^Y?FZUPDkK{LdL8Z<*~0pSMjb@3-SfX1bdVIFrPg zEH|SGVGr&=NSD^zfNmzE+&@Jbi07o&L7mD3U?V9t4fd6}si&~(1+sy}UaS3%9EXWJ z6y6;taf5tF!Bz?sM)=MYfP>qKv=Lm4RLXVg?KO@ihE#T2JP0HEfZHHrR17+YN=1VXNB}+0W>C)vz_F^UiNlXR4|yDPL_=MU_%*YCFsY zRZ&N(`Kkl7EbQ~3@%=1yxH=oAv(#cdj{>CyE{5=zhM%nJ#B(TcyTrKZM!1_n#b#rL zo9WS%_NgiQ+ZWblVirr-Kt6TqO8^<-Za9_!5zyvERn?29^|orzZ`x8 zO3lb4)QqHR5T-I>RS0zmrOevE+cY1!_Ti?Aw<5w)%aicCUHs(Wt{J9`!gYVJD@y2D z)rHs@Z&;RUD(kSI`VliuR3VlvYEbNxpsA_Nh>t1R27g)Du7h1p(tx)ay8eevn#9G_ zl%!`^VuG9f;^B8A79Sxq6)YdtxSFsYVGbZ(bynCS=c^5pvH{d^DONi3)#s=9(mND1mL1Ep2)p?v*Zp{79_NeQh&(f}*R4v;Zh|k{0(;?>c`hJzn-Bxj zt7f;zlRj8pjHANz@0$|(cA@!-d1Oj5z+t$_Ba9A&A*LB^uw{+lObC!IP%UnikkUfQ zOKFDb(&bkXKiUo{NvKV_H_k^n;QDZhkNITCHV?Wq=BpjB#T*YdY%BATzBJtFzRL9D zj2V#aTAlPi4|VkL=BovUS1dr-i3K)nmTFdNr9QPt1KM%e3PO&w0l8pJ(>K%1mdH|K zNscJBPw1x`v>oE6j9mLDPu9S8!@tywdXA)~Y7Vs(K3Uhwov73hxzKtEi)Bb2G9NLq z6iYC%|LNYOdpb*fKJ3Wl*b3)Ia=|jPX-WlYI$BLsy5G-7&mspb312{N4r3d_d0e38 zi0kl1bF??JWw3XmJ?y7@HaQT>AsQCTt$?vmY}WdbFr5u|3-QyVM`9Awsau3v+@wwf=j;I|r{BK7 zcONL77(J4(>w>96-Vy2qI~pk$Wj816Q#~l7jHD}z6spA|s4@O6gx?Ne7Jmzon)Ucw z2wpG*A5&_@(*CA|4?tw&U*o4i<;R$Q71`sTv@(aW^-vdC~cY@CBn zrfX4+RH&vd4Qi9Mso*Sop^3RSR8rPG(9fs(V_xwq$W{*;K+pD))I0rmh=wP zhnBGF<({YncqB%TprmJSL7QY;KH69qUINlaZ7WdwvCp%9S!=azR&(UU%tkFbu^^P3Aawv*VqG-~K4#MG){=+!Vvn2lb$GhsQ=v`1w|9=_g8Y^xcl0vfC@+hq8Nj#?^oY=DiYXR*n z#R91P1(Bav6$4tCUg_ZPPklLGBzLSV5g}q3~@bbQHkxE z$>8R#U~|3r%?I`%tWLBvQrcicEeLZ-yDne~lG=%Qr$04^m2xQ9k$Ka2pOQBeK*oJseS8ZZ#|z4 z*zhE+6`{PR=8$1(xenjqLJlmmR8vD~Qsj?)qoZvSDcO!ZkUIorGOboKrKYmgP;$`a zt5(L}wM1;kUUI9r6xxkiO`;^#Ox;B}JL{F&B3I*ZQahUWqVrL%P#Bvj{j#J+cLk|$ zKXyTu=n#I)J?BPo`7Pltf#!!Z!BDrSW+ag-&htVYiJBR04?$_qjZ*czI*@5+TY0dC z{{Ptf^1!I7>;F5GKtdoxGJv2aVb}zO1j4>!fUqb_AOS^049O%!vzbYRxU`u7b*Z*$ zU8}ZQwJud#s@A1ywbfRuxYVU}ZPi+>Uw4a3tM&K!+%tFHyKiQ~AojnXl9@N}opbKF z=bn4cx#ynuUcNaWr_zh-N68*JTqKS(R$0Z{&;vZeAD`~LTQT~^@PVTqK~IaJRkg}D zz}V|DxW!of4kJfTgE!CMy9V0JRU)xDl4?XUE%op}!IoAcpB{}IXTvAcuDB!yk$bvv z_JO*`k@ID==o}#DhwE%U^~uWbWz;A&j`TV1ZTO~lV`R-}pT^j|nniC*>G*k`t52~N zlq+op&r94dHX$a_q2igTL)0bWQ*#)|k&Z9dNL;TiH8ky}H{3JhLo9Mhj$`NY8{+)S zOjd>T=A08wxJW6;T=0!bcGXxx_J!`uH#8X(TasCn{JM+<=cRAh8c=bsof-3^i~^q$ z`>1hVh$UJ!9pE|vw!b)5I%%ERPTE5gF#3v<@yrrH zlWfaE;$Et?JuJeaWOUA~hNCB3Gt&}CCgdAyed`MFL5XwiPpZr<+i?I# zR-%9sSRl8ji2&A|A-^TiJyJ5OXRezGVz;@dqyMT$+gYfiw}_I*=Yq?P`sB zVTWUhO7!_D2RVZ~tPw>HE!d^+t&N)Nx%>6F5RIl5p(mj@VLlru9X%S$k zMJ5VD*3Na6F(Ew#ttVG~*kKys;3i&WA5TIG#|=ZPW)eIrFb14`5*N^3tkg5hrdtU) zod8)Ra5mSWyG~1s@l_f4k{kwSxIHVZF{(_4%^1<-(-&)bF;=7nA8nqh^13^-@gaU9H{UHcalrku>a1kDTMS>x7ZRlX+Yb6{DKO zwW-I$oYoWPsoLP4@p4da*O8N~vW;ir{IuJkAFyTE1YCMYlx_X*n>SNF1q(f@^4>*=V8H6>!PlVX-c|8X+qmz%(G`~K z5MIL71#k@#ka?FLJsaKR^D7y3Px|v~=mwW%5`Iuy<;*s^iMfO~0lZtr3lOp}NGHeCo1`TzgWT9A{8wX>ofT`rkV_Je+DR2A zgER|7Ri5lB!$=mualsbuAtaA4F_1)edT4mGsjx-PS~cGd>t4FAMgLF0A5$95DH9SL zD{@Df)oBhT9Z?QB(i)3vj@y^f$)OGBak#0;;oM~wNsQJTtsK|6P{jruC^#W-vQcMiLdTT8cxKHJ=~Ccgn6s2i6iS$O*Fy{X z?Ql~8o!$&c>P~Wv_F&I+W6J_Y=0iPNwnx>2xx&Ge8AnMtiLm6Y%h)ho$1-I}9cZsQ znbfGG5m0e@!ObWyS4MjjaM)APIVJ;WN2$RPt)DeI%;b{4F`g1r(3x~`TowxRo%6Z_ zp(__S-1ZQgZFq@m@C)(JFV;Y@2b4N5pMD5n*X#4)#9oHP%EXDV?L$Ap`Qye{V@<+_cCkjwf;}@@#k95AST>OCD{VXNpjkq% zhLrgm$+2PsM|sKSqLa9wMdAFSb?5emn$Qz8DLA(za0J!l^x><}MiaP7r>wpXuuOBV z2Rzc73wvs%5|ZMqGNVNMS_j^UPkF}*C1%_9pbStOk)Z@rrtL@BxTYoB->a!M zl-W9O1{dr%o@$LFj%BTzufaB!Nl|j#-1f`(XrmWmKCIic~zEtBEdr#?Z({`Qdc&5D=`5cY2 z^vw!7m&i?WYNX9uz36oq�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ν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 NYqnQo?fvTr{XYuy=!^gW literal 0 HcmV?d00001 diff --git a/swaggerci/eventgrid/generated/modules/Az.Accounts/2.7.5/Microsoft.Azure.PowerShell.Strategies.dll b/swaggerci/eventgrid/generated/modules/Az.Accounts/2.7.5/Microsoft.Azure.PowerShell.Strategies.dll new file mode 100644 index 0000000000000000000000000000000000000000..f82770a9ceed0b7d84854e2ae98998d94a87a9f9 GIT binary patch literal 65424 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 literal 0 HcmV?d00001 diff --git a/swaggerci/eventgrid/generated/modules/Az.Accounts/2.7.5/Microsoft.Rest.ClientRuntime.Azure.dll b/swaggerci/eventgrid/generated/modules/Az.Accounts/2.7.5/Microsoft.Rest.ClientRuntime.Azure.dll new file mode 100644 index 0000000000000000000000000000000000000000..1d99c70159127240fc66dcb4bec5e891d960a1ae GIT binary patch literal 97872 zcmd?S37AyH)jxdh(zlmcnC|J>hgpCbF4Hr^GQ*~*EaQ#~5f>B<=(wO@>kMe1r^yfy zV?-i~3yKPgMiezDMoln+;u?&om`DUf#VsL;C`mLi`2U?#)!lc7!I<~|e$VrL&o>W! zs?JiUPMtbcw{BH+bHbU|lSM=}KHq#p^dwUL8!hnLK_}R`mA}lTb-`DwpESn5T0QZi zY3)^)wZ$)Nn>wTFys4L78lPEp?)g=1vo5Wgc4<}1NvBlJh_{~Kn3EIgr&XVPB++=o zqUgC#Z%oy;i~3Y$8H0#UHi!a>dgi6bS0UetlqgT~rm~v}Y`^?%03Y39CCN}Dc40>F>)6mFb({tspX zpK>DX1y9-vyS;x^U^lk4x19%~*ajQP0rEYhp1;xPuEw_Wr^g}4wzAFa13KdXxv|Xl z{*7e6;*V`J$wy0nN_5dHL_whveLcyb6%nH4(+%p>v~No)Ot+jURF^-8H$z@w$m+AI~h+6>=uLNkX0th+WI$LDxO6Nk%uB$LRB|XhW;XwcP1R?~op;7xhSephxPHJyKukk@|U$)IR>6EIX!0>dYRg%X_5$ zx<~3qU8xmjq7O%GAJa-o<^eTIOgq^ZbkpZzrU{w3cCv<3D_P4)ygy*w#b&}q+K^?o z4?vn^M3F=tqjeZ(Jl;kk#Xt#1$V`G3ijW)QBK49lNH!pK5{zX<3@|a?ViD?Kf;$kv zs|U{n(Suo-^$bRm#CS%&AlZb}Nie4Lpib7q1a~Mv-En4O7}EG~reM|#)yjNu5A5SV zGr_HH$eRm;Lv4itx~%;W-UV)+}Ez|ZpcvwVYBXlWot(Knvc~4Pu zzwCVUdz3w!jkK$ zpX))|t_s4g)0uo>kL0%7S>Oy7I7$iBG}yJ#SbvvwseGAeaaoHZgfgYvNolIjJrntm zlQRAp)_j(b>Ow^_P6oqNNBU5W-^t+exH}uElVD8s9r~I3jtQQ=vxwIf{O8^eJ@Dc= z5NQ8COTjC#`fT0Asi0uY$w=jh)L9PVviP}x^@BC(JRqt~KKB9Wtk2O5Zhb?RTLzl$ z03J7(2*{uIe>BS~iWqJyEA;#0=OYc-_4z3WxW(zh4kjQje-FwB(&Z0ggBoYaR2wgV zT2CAEJ*DDoawzsacQsPDbda(Gh5L=V6D?f>k1-VqSc%Cf>XCPDN}gLR&enzg7a4eh z&VY7#$+=4%ScTwo@X z$VSLY&Xv?o{!mgiM|4WQAUO}IlVD8E5tv7Kj$ndkjxdS!W@)`YlCoBEzNB_?fuu_B zRgy1AE=1}i7*l#NzF995(t6AA{E0ztw&>kokWW-*#jl2l>0*q8;;*q6uHhVpcPzBi zs@+K#^hO>EVZ>L|l2wSo#m_OeFGt&lsax8;NK!j_ouuw!B*~vjz94x$QYXQfvM;FY zV}g4FKppgzVQv|OG#7dcLztJ`8(Ds*ueK-zL+VQ`cPR+j?Kd&m-}WY^=0N;rApSaK zqfNma@_B9SrERkA|#q{FpW0;a!z6}FAE)~6kibmhhHmKV9p`z;g_LWh_rt#fN z)^{z*l3pu4W){Zr1PR4G#%d-%<-#Tz94xYQYXQf>T8TO?rSEb#|!IefWENAqotlO{wl7j$u0`T3jI~f z(Up=9`Ky+4-Yg0^JPW!%gC<169<%_Vl8FQu$T85`Qw(I<-(R&>FK6SUpe%j_gYyBj z|HdJ!or0d!j{7bJ#qr&v?tuPmDAqP)B1HN#)<;*Gu~zrim+9Wp66sKDN@z+Z&JL!1 zpq4x`)ue{rijsP+GUGrG9AM1MtnV5+Jm@5JQgIW}akCmVrQ+rR$rmIaMCv3MQ*nd2 zl;eg8DsD>KUO>&=yIf+jxTiiBAIZ2s`GA%;>Xxe>;D&ogl!wYani}w1(hb-8(!DSm zGui)qz#p#FrMvJy4ES#5>Cy-Elbiir`zbxdQ~iYJm%Ib7LF-ff^pNBWk`E(w5{#*S z%2EBqgj7GhikiFj(|?#_(t!durfi668y=B*)$`=%k}pWEMd~CNQ#Rna#<9W#&m3bA z7QFIjx{rc&fSXU$l=O(GAEhaeLA<`mgT&W?vZxY|($wgUPXMLsD}c;DXZI9~na=qx z)5!mq=AW6}y_)imhpuL~|BE+%wO{g9CZMs_#9G9bRk371C`u6|liH4zctTfEfsUug z(QUk5`Gur*@(D?O$tNXspF)!SrQ{2eze4IH7*lbEH4n!b6Wpf(@W@H)hZ!4`kCOq0HE~SgoQJqRbfj#uMPt%)OKbL z#`lX{Hk$3YcyNc}7)K$z<>Hyx{tB|$u_GP7m-rhY4su+K_%70~3Zuwzf174tr4BW( zF(cq@XR&T4W=5Oaxl&R)d5@&N|3mvCT?;Dyg0Pqols%pCncO*(3RaHNcxaE3C2_#%T*hh(8Y&mLVu0c??_oI>6g?_ z1|;<*gOcJ@BP1EMc*&A{K{6YulVD6$gaOCSWI}53!oEBY_0;Nma-^u0%$3wm_L9_> z%##%LgjL3uj7UaRm@oN)WE82BU`$nr5y%xXL08E2al88K`U<3^l`NFhPU7?se)J`= z&PIy*N+hGIDV2OdvJ9z{U`$nmfymV`A=54&9cp5K7WK53gAsD0NcC55;G;Vs2nH_&6obV! zr?C3guw8#**!CP9jP_!gz5jYw+0ZjrP6niBVp^_EP6XK2SfS@=!;@9|uqT@+#?&LL zKgk?ox^*aq&4HWXrMla!hOD*=czF~9b&eIUN78l$2qy1yIdSY0g)Ai|hj3b~u}86^ zw%~E5PVOytAVky|*>&*J0K_rZwLD#y9TgFr%{-8%<=PP0kVdWeASkKKYBHmBmOB{v zkP{z*WG*7hu4yQ$or_?!_dDkrI9zA~qo$KNZWRVpmcKsRA0GQHsgkdbf+`PK*u0^Fe8s3<#L46+to} zV0Kjm$)pzYU|>2_49S2oN;mQ_ZD3L|U>vR)N2C~%0b{ggj7c#h1IAb;T%k{=+s6TO zv9@;1_7={*%wYu!u#i+1NCt#hiXa&f>Qe;CfPijNMI-}4V~QXd?9KXU6JiM(!)BL2 zX+IKGhqfFJ7kloF90g*Qe=a5r6)Tuy5G&_%tQ-wiO(%0)I5!qQ7I=27C=fpmnVg^# zG^6q3k&VX30|w$J05-h0GZd(I0`U`pY&YX4A&KMqQ7GSzm4)s21kU=xKC3au5oXvI z$1R)?SWLqEA+tx$Y0Od6o_o5=kK&o>43%HUd0gCKnKO~NXK}tTIT?wbEYC)^ zKH@>#b3ln1QS6KB(>?7p;)6nr>m7YGZd@PI7T9lghR1h zO?PBuV&hc3r+yDQ*fx1YhJ5iU?2EA$KV<()OLcvYsz=7gR4A)E6Vo9Ft3DOQjSe9r z>@l0E<0Q#|a9)Za84y~TfcI&Ouzn(ppD>CuQL#qyb5CXCGE@H@lT93fAF8jx7A6aN z=obLx%Ox@QBIG0hyfS@qQ)R2VlofiW>@<}178`$%VnWXpySQ7ibJE3d;E*v?$mvoc z2ZzO%pk#f(^t&ABb!KHqW#AoLLsR~f34~Okwa-M(odu8-nu?`!&>NW2FpiHyu-2cX2T8Y{8KKB( z0afNQSLJ)Pare3D*5j4q3NY*arlUKH$86oBy$qQjaM{AWlKJ_)j6#Bnd?GogFREtQICX z3QS)Rk@ZG)t}PD%EY&aMC(Z&G3q?Z}9x{i7qUt&55R_9_X#j&)WTTr^rird6T~(bFQPFQZ;7$`vIBTnbjRX%axp6y zzYD20NtrP>2Gz2NRxQF@=(MkZR81#y+?B{`gMTd9bj_KV%MM7yA;>Y2JMDKv&P7+o z>W@*6^Efv`wY_WI^)L^x($xJ0hrb085i2ER`Mvam>S%ujn zu$xK#z->7}Z^<%Kq1{T#n|ZM9*O@99Ud@MB73r?X?>k)I>sK3dBu-vX8l2#=-+k^$kd6hSf|tVCqQ!XSd6K@s4&}~WFh#C?*{x4=@6b%p8^rj`d_j%Cfra%nIp@Dw*6?lruP9e z{wn~}U4MXFVK0^wx<~Hm1LOvYoX|aTzlIz($<)fGN>_c1h%#%@SUloonWF1|rYHF` zMV?vR=K7Y>#|l@_3NpT=uPjG1LU#@;r7aOjFOM?@%7EYR^Nl8r48v0OFRwWK(MG zQlk}r@moZ3Q#{=mC;k#73kT!ECfn}BUj~XvLs19%b*5Ia+kOCxb=AF5wcze6T-R^7 zTuNMP!=V~eO*hPDDmR$X1ou%EZb(O<8Rn?Bm};(Hso3*O1mVwjG_9qNzUN_r0M9^obSU0&y$; zI^f)asb@(eGW#7Y@SXNIz^LhD4sYDXTujfg_*)=`Ovf#SgjLtp)h=|~@4(kgwBI7^ zE7Gt7>V~ZqP*8uS75_a7NM~2pHWgd(w}H;Wi?zX(6hUUhkD&pIMNX!C-B`rRnezcaabvCrD{6w>yFtb_FN+k$KLpJ7NEA1fdRbboNXeOgJ-TEpv>lI1mBnVD z3**8x!@}AwW921jEAQ!UCC;SNHW!UvAZ#`?$7@Z#?U5>O!rjPBBebBhG+%qQZC=_E zGuXw%Wf=zcoV;OiFyrq?8-L%o8-I1$_V>fOS8e{8g}7Vjq< zG5G-#?=s@Gu;0_FqDhUIs8~r`#=x+@=!|^4*?8oJtkqIpW7T|zS8Mq*6FfNdSUJk# zI4)@nS(W`7eO6^nQ?ug7KZZ41=3!W>txZfeq56~wuV#FtCRH`3+Vlx(z~dU@sYKiH zZbr07J&mkc7eZ^jYu(E!KV?6G?nR8`8R{YbDGFKgd=15hS+j6rXw>&stg;AL_cF!( z6vebqSTTn)Q<1D$KY~m{u{Dd^(2!@%x|P#_HES8tdfcFt9*O@EO7!HQE6Po= zFs1(p=y%*dagjX${M{i-&H;JP&WyT$2C+W9Fy{FKYZJ_|F&C2zf4za%GO_qyn9*$m z!Bi7o1@AD-XEk9*UXR<3N1gG%atWvI0<%~>c-3=FnxIzM@H?;77ppENv$9~&P_uYa z(Xdm^%A83@20=$?(rA40@F~=J#`%L4IQ79NcDPyDx3S5r?1!RN*v&i-wb!*x6Brjb zOJG9ae1X>p{Heg30L?`gz{Q@qTiJ%!LjE2Y1_wVdX0<{l5G``Kb&>D9foI?-U(+2W0$(?q?|JkFNyXAK#07{BwY8>_~lq zwBZP|uqGs5F*5_neV~}~#j*&lxWk^UQ6r!lC>8}D|VJ(hOOMMtQ9lEw)++MJM+7e z-G73p?|$dfwvVX<{xycFrdjU4n5+E9$BKuF|1d+b|FBwM{~aB>$ggfHe$DmssZPlK zH?rNE$ll|kW-z%QY*W5Y7eN!zE3usymb~K)PUH|D7Q324!9<$sk`{OG=E9DtylttEY}jY#L5ZjSi!28+j=w-v~?n4g}Zsg zM;tH*Z*{krVI_ze8x@%HMKq2X_%gQRV~H7NAZ9r6G@MJNVn(X+yFN%L562y3yL*^} zNa_lD>w<^5uAOtu1lIr$_f%0Ti2Phd{87}cMuL1z$G_hRfSx(AANkFG?1WMj1=9*Cwb7zAU+F6vvead-Lz7*#7 z#B_%0jcGrbK`PSvCwJBF5MG7pFwsAc^_z(#67+M6-%QNqS`t45bb~2hck5R!gnkWy zZFY15;eLg^u^neXv6)~7`jrz;zjCQmzq;oEN!>bFgGcaogysG6cgj{uiX|s83bA@Ve z-D{Ljj8gmTe%WXD-gWTH34-6vMpH6(9o!tCJBxC-XT_o7$)KlaGt^WddE;mnT#Y9k z-;`iSV9=xql&8=++-0K|fE$crHX)vjY<7qe@J5==%BKnhC6NLvAn7 z3*&i!`8Kvv!pQKf9YLxe2&@rPT0SVId|Qa8Gz3*_$L*{+!3>N!PWBhzy{Akb2wVz! zqM&B`18xDA_G6e8BGX<3z&A2tNj3{EUk+)x_TiQ=LE#wGq4?S8jFIy=X1WpMrI0L) zmjUMcBYwA>Gfu>Ddn3~@Mjkj~de});fTV559h@WB_IIJuOfVzgF*`WjU+}#y#yf5$ zbAA4>&#gkv&*oPnqs$)-Ep8v7do077FxIA#fag1ga>$x$BezM;ds76ACUxkGZeeH0 zp|4ccH(k{juIel}0uxe@!${gCeG&G?QHI=89KDI&!V8*rKDr8(cZs9hY$CV^adbUc zh>>fNWI0EIOxK`n3~}}WJ_{}GkQOjg-vQr<1&#g^k=qZJCu;z(l~Bt`f|2?oO}9T% zc8`mng9r()eE^fNIB#PON@u(dG~AK^^vl=I+TH;#>~~Q;C|s@VYqb3tWLfj&nCq6B6wXv9!WEk zhH^gW4nxwgWoN`G9GDXc?k}8(xKXDj%G~%Xm^?;a!x7eT9jbDNqkxB{Dlikwi;n=W zFg_A6KRc4`9>STdNS2H1WgN!5sNlXZ!&%8uAekLM1s2J|MGp?+J?IQG!HoPYvxC$9 z1z1C?MH!caro*|I>H>7E>JV|!5u&fVg};IET`U|8vBLNm!2Dj3UhY`V@6+y2HQFB+c!f-dzvWR(E5pMrdi9xwASK_M^x z{}JcIPJE)`3k~~n>6O5#pvO-G;N@)rPiYcC65HVd_jGX7@-{;bxMzThwfY#mmLsN! z7ZUugR*Q~`AWi-4#N34U5^^wURU_rK5%YLWb`EIM@$sz5xYI3nlG4rR(Y&-7Epy=Q zV4>BwAmL}JxCURnUj|%-+m#-~8*cmMC+uP;NvvUL2IW#*ODj^Zfxm z_q+zDxLE1O^8IonD6^0XF2Y-lA!{hL=)pG2-H=9q-ik`RiyYPDKxTb22VEH8E|k_u ztHJ@#>Lx>0PbEG_=08l5{9P8}Co#H=_e0YC)El`NKAwKM4R&;SRxy8!^wWJ{p`TVE z$#O=%2wifUN58*dKPOb?o(nh<4oJP#U;wF@KjfDg;{9pjy+T|8yuL{3!NY$tdZqnr zfFzG?P1dz=(IWM&RZM#+ruT&=h%z$5(~Im;GP|?&SY)3Awkh8(EsqC`r27X%rqUJ$77K<8rY7^!y#w6v>Vi{aO?;@1bkf?ro7fnV3b zB?s~A`iu)vQr~GV(4I+R+{+iv4!J2U=GVOMvrl*ll=ANaJV@+8N6JOt7JL7jPGj5Pv~$I2 z=r?iN@!Dxjh0{3kIE{;Rb($!VZ+d#2mZ9nqi%BsLEyUAn%g(glxXvzqI}(0F)F9r@ zL%ktqB*rWrC#^tmikZ0@-hMtPnADje-vre+xfDSLqJE5v#04yNp{K~9s8}v`;SqEZ z=s5G6hQv%<49Guu5sP1fTs}YdrX!;luxu1R_hxX~aVa1__fCNLj>TdqGx)j3>HdOq zQp-aw2ThkT7tg(%_REpOR}(N5={smaHG7EB!FU_k@pdJXHZ=>+Cx@R;VujQmcHEhe zQcH{s+3(H*wGI}g-oO3G=fSr)kn=u^xCNGbg%akwFSvU{M~VNh1QFY{7vjbH8EzWx z(Sc$nW(%AnFagNFwG>Ns2+lB`WYEKYEGtB?&E=%yhk!gnPh!_SF0Nw+;*Aqeym2WV zZ)QUDcY+e12O#hHKSHMAaCu3V3c_}BK1jL-oS>hK8g`zBtpX`wc5u4C08df%dN2BI zcLAt5LH4kZJuIrkNW3!};3*Gh$o?*Slz#gBtMncvH_fw0X;T4wip2_I`YvpBBc`uH zd)u#q7y@`DNS?0Ogmj;$B(Q_(#22Cn;`MG6LA>6BMAiy6|MF8Tel@rfuRlgc$17LJ z@rr53Hak`Ta=c=DAhzR2;&f(kymGp~;QW+VxE$j3C#+K96^+9?X#a?scGYjH-FTPrEXE+H9%iE>;4(mgRW?O9}Y!ry!>1 zh3kQIofnpX0;e$}eglIWJ%o(;T4E_n+~ko+J05<%8Fcvh79?0b0=lQLpO+yge!dME z?PoTM{d_y89m@gP&lB0tYF=Ol`h?7eZazu?l8 zd$7?x{bk5{`b)*tm2=Z$ldJX2cdA{-NxRm9rP}ouKc7#IFTDBX9$tJD;bPC!v7b^%PRwUtAFF z+Q^A~F`3&nNwUibMn2m6=8|WIc`a&|h5b0rQ3$Uz@>F?RphCGx1x2 zuL;}&c+m011<|h8Iq7%1k-i;JLL-Nu(F5)EC(SB8A>@x|31WPJS| zA*$N74LLLM2Z8Sh+zxoq@x=wvt{t4n7tgs}STV}H!Bn)16VLeKB4}5)@g<5xLznTD zAs>8vy$yw3#ux8FVL6L9d=pJZyC#^4t;m^)w*>x9;O_z5>v-OH8##FxZbL>t47nsf z4FAAs$2)-hF#JARw&N8{OK=fL{4nHnf58t@(a7cSFx<{u-W-Zp>YOJa2P*aDDpmHx zWeeyUUOrEO;vDs*j(}%@66mr(nag{20sba0n!*k8D3}Tb^5u{8gH&1|mg7O1S^j0n zspVgK?XvgF^fQJV+$C0Ouuq3YGJN_W+#Pa`wBUu*Aq2)AJn}IZ2R(rJ6PP%F*uzPJ zk@Nus9~Zf(PI&47!of8XK7dd<^#Oz``U#4v0|-YBAe2bA1Bh&W0P$z3jiL7dg7JX& z0OC^+_yB@abpR2-0YpF@Km^SM7f=TfL3IET^c+A0x*kB_tO+Y7eE?x5*j(=c#2D7+rMG^fc@V{{BCpu zUJ1CPy6*q71wqgLZxnay)yYCmP`+=P?-Tv0(*X%)y{#bDtJ48r>U2P8d^+Hs3eU;0 z08c4$kw^R{5f{$)91CQ~{?xGmje$22jD$%+&IQWgSMRyN7|b69;GKq)r;^lu^BN!_ z;J?sx-1$ODY%1aN8EF5&rv&){pyS>UN54KVz&An4QC5CZbqAY{HGJylR{1AbyVEdA z2RT&jBmVyi5M4V_2J;$lIv-WyUJ%`Z7955OXJGO(+uwyiauf&)yaO&A*c(# z{mXQjvQtd&?`;cn6a-UD@9%A=ncx0<+qw$YB7({H)AqRMBbe%A{Owc>*t8|`b14!~ zW`c#??*YiM0_@GS#!P&`wj)fPc09~NNp=_ZOEPvH!PMQLj`+UJGF(l zVyW{}UfA*M#rx|rd8rF+>}71Ae8fq|$AG+nasiLL+u&$3!3=DmaN?P|xD@oLsVh_Q zSePVVv^eA{^qOjdYLpm;k%n^0GTrzKQIk5@F zn+9|<1Fvo!oO-r)#4=kB_C_3yknvRS**X5M=1ohR$9s0#Jf5+Xc|NasSdNH!=Spvg zd03A0WS&o%cfa^ZV&Elq+~EKtf84X5G z)I*fuj=gA9QJXmld9(+|G(eVJ)$Lb??8Xo_t8}_q8#sedzb>VW4KJC-c`cE_@wSS)Jq5Vm!}va zD;DRgPmc-qsvztpI+aCr5T@Oty2_(af{;5g6@;ool{dKx1fhvU z1tAks6Qnpux~t1YiVQh@HkgXTC*U`ZLwv96fH=eqOM$L&$dRDq(7T4UV1suJtJbU7 zoFW{3U{1Bc#~H$6RD@}D2=`UH545BMU?vpwGl4b9bs0=HfiyEA6^xbXASl!jpnEyo zSs2ekR_aCqd%95l;6P%uDT!a5-qo zV=mrc@%wVfnF)sR2tYmlTaz>*_lUbiw=jE*?jSA#%9|cvXY37!!c@MWu1pOi^SLHv zYQS{c*;Ky8i~F)*;KED?r=I8*Qv>Qv57!}akiz~HmuVY4A>N(kiSslo0_~M>1b*s4 z&8=xp_cqI1uOIF#wBLyWX4XIT_?2m>*QFTNL_hqFAhcZQrAIH_@SB!UO0Q*tWm!vTdGszsB~d_$p;*AAIi=Ul~{Lh{v_vi>0O&FM_PPja1jz z-pXSAykaj{@nT3s-4ek1YK6s1fiy&|Ef|LSYi4CEgr6iYOjq!C%kz^MgV$4RTH5gnFg;q}3;ur8Sfu=SfX+s*&Xrwt;@Oh<`HPg|k1Y9J6Yo!$ z^t0qgNVISz3~1oQ>7-klZf1>~PbQ)(e{H_)T-L7!7QKBf4?fWyyn zACm7iAgJWK1$Y%8Jnr~AWHcWiuw+bdT8j@}WJ!#pTtqhiIaJj9hI)rK2t2)l^G)Ud zh~<;7fw?ow*Y$H~QE!HI0%r(3yn-qFB%dSsCq*(`{wOrK6|4F7l0RQD(v&dgr#Pnbt!{ch1`wiOY(EEO= zz2JuaA<7%_aQ|E~16MUWlw+^z6QZ4c9`5f@ufiJuheGpj=o@SxwbRXTzeAJ6sw)a_ zsDDT3A^NapVy#1;u%{6qJIyb4LErCY{)!~vJSm%4@Rli266tYGKTY{2S1E4{bktW z(Dm+|p$_@`F~tzLw=d^A1%4oKi@*m3-YoE(VwM?G#5!*;WcW@a+xAo~!_~tWZmVS5 zIvTi*uh($9zF&AZ+BH{tYEy(ueJ!^AZZPMkxeR|*!?12p9QtzwzBn*GFhm7?*$<}+ z_v#pX<6_hsq8Iux{m=Hxh^ukUH=wV-5FfrO{#oo3oiUc&UdR6VOuV$SALoy8*;gg- zYKV6AW<49xiV&?vK9{BsxCPvi(%uh6|9Z(!9>_Z5V#x^Uk(JWw9YdM^Y$?MBh4TI8 zOOdY$GUXM(5Y4J!&6Snxjf*7Go%sZ)4w zxD6$L2DVhN#dQrOd-0TBCfM?th7zAqN_Pm>yC0XUp!;bh>L@8~z{9+j)(USZuo9z| z9uw>&yP+h4-wpnSV4c7Uv7&xTuuuIBC8gN^T`$<+80)N~XGCXv6YCsEuLu@JImX@) zYqRj^BN8=H9-;z6?vzvAB@*ymF2hj_X$?@qzy(_jyFH8lx# zhVZVXp@I#?(`Om|l!goTs>9gLG*Yk~0mkm4Lj{{6lK0VJf?X@vLv(~-E!d!6M(b#d zU=3pDuV|cLkBj89xc|hKy(ieqbhKb+NPS!ASiwd~i+)eX3-+b(cG3xgT_Lu7NGAz) z6?l`-LlXoGN$p?IM8SFswx3QD>{7vk#u|5;GX=X{c!kDf!5$Z0wQ-JNRp-&s zSzJROV~PjsXPhUJ*P;I=;kynO2==sK{f&z}k^_uOJXoV~xe=y~eSTXSrVoqXD7ERU zl2!OWmOt#X9`Kuin*fW-78*9)(6j-ubY<>Jz(;!BZ5XsYkKxYn28{P7ss@D(Iydqs z)1a)pzXIm=`WN70{Feg;eHCWO4|19E$6h{AjuQ=ksA6r)B%jD*$0 z$nUTa+0yGB!10mQA%iA^ds^pjhXw(!8qE0{1r8Kg1!&O2VTMg%mj5O%h&-3-3BD@y z!BYDRQtG(yF4VOo@6*x=o!dh}Sn{mEF8~cXs-EE})DHU#R?>vdwISBLO6q;E<}K8C zW9e8M){19bfu)hdKvDKQmirK7&I_*%P3XK#+L)Bu%aqL#)^@vC^oF4Oz*05At*Fx6Y8@1@|@RIztYoP=5U8S&}h~5GH8NxORtR1k1e*dyZmQ9 zZrwEj_RLX1_T;re_VD%~QyQ(cxOO|i`4Z3x-U6NRptp@|!&3A}O7ok|tfA5J)~oDX zFZAwZD;vK$2;KGd+}_gWnkL0)6+-P;TGo_QQ?W(h% z$IkCwJGUsMliSr*=K}?q7X3eAXGZ7jK6f857LF^-)XuT3WDfNF!6LkSY&#Sy8yU#x zi+nL%d=c4Oc{_XoH%aI?lmaGwe1?)CoQ^0W3A$|yEHby<#LZ}?4&ZrextEb;-&XA78ITT(AX`~hMd02 z&W}ZBUyU8ohqa8<*kUPnlE$VDW}fVFT4eT`*Lt4fM#gy>6`-Wr(B^h zM93U$AFkBAcLt8k_0xKd{dwTSxFzzEU@sUKWK|gf%In8ocw~@4 z0lG+IdrKHAu3^bd#>Ikd*4SLp60KD{8!;E4ErQLXtA{N^4cGNoyb*;FGeFmC?0PA; zMPnPJzLWV#05zOZb%zZ}!RFDYrOS*EjUK?fc~qPmF+;RfW529^30Que;+4{sW;XTL z*y$88b7-K(`WaUO8>g{Tf#uRrT4t0`t;QnFd3b9bs3liJXDJQWyceTcz(#A{ z%O(E|m(ekrx1(f$RYnsu@413yMmbH=*rx?~_>HP_6^7V--RMor6-Gn*9F<#1`!qJa z>Zsgm8eh+Cm`5!`T6^`SrGm|;!?It@?MHhwZ&>q%;aVDj9X;L`JT`lLxIbMd*gTqT z6q*C*HjVwBBD@Q52gzY=VrjH&^&MX*i8BcOqT1G$Dx#Btp~%^Ksl zZlDgq=F_Ob+w2B2C5G|^hY zl$IuXQZS{ZiC)r@Z0B&=GbE#BI7OQj##)BcB*B!H;WR}srDZtH(30G~L+MsexkG7} z#(3NwN)wxvPOk4zdU_~h3j?neEi(?K=QZ|rQ66}|)!0vK3(ZmVJB{61+tzCoy{j;J z#vMkV2zE2=%DTGjFgj)!>tyVKvN3eOU^mk8(CcMK(je?bE8Z7n$I|s_ET{Yg`b=Y1 z_SIz*=ww`>V@WIffwEKS=V|PVvPqOTQt{TKzO(7FG?r67mA0g@2g=T;LA>D%E$g$s zD4Ryt3$}zF%NkTZgFe&PVc92_Urs0E1dM12HRfDiK8v<$?A-njlwCp1I09qd`~ByZ z&!OcS8{O~D@*h(6VTwoY-14hvrp6`=-dO$<`V}sjv3D=cUS|B1o)c_dAeo(q{fW(r z2M^}a_4JNln`l$>hviGi9F1a#*7Hg~E5DHj2=)S9+&rk{CK{!&*4lrS-%M|5Y({OM z_ieOYFpdeVEoisG0!y3od*4BOG`6C-1lZp+wxp!0_nq`_jon#N3(Ofq_*)qGbm+Fw zU6iY_&xgJrxQmK3wgxR)L6sW&C0ewCT!l&PD``*~%fo)v$TW6-@NOC>*v)}O4Gq0l z(ODY1OR!l=G7uWP%veQ9jTH>eqgAv}W4&YBLif^QjrEVcAGnup(b#(f9uM6|cWLai z0Y18q?pK&t_A_oA{$9x8He@hv!_VmFBKc8}dH2(k8e`u5w9%twHNEVSTurZgBv;cP zJdzL4`yR;$=#L)B2j~lr8XERsZ!}Er z{b;(}o-Wu+*=-))?(BpI>s`Ifc#M85w%km=sk^H8V>ELdD`KDJS&!4i7RFvMjvm$# zdV)R^Y#|*zY=HR`op_{3O4O~V(=^6Wx1MHbY%*$inr3NiF80)(rnwqx1n<|hP-91e z_iOs8#+H=aYdk}@YV6LEvqI0%Lr1ClmNq|VY@o+Awxapm&<6Uo#yHA1(hC~nDBno0 zY3#J<66;y|y~fUq9vym?c4_RcfwS!A=o5`SHgH<#Iod1OyugD^kB2tVR~mc1iT_t6 z^JrzuS@n;Ho~OJNRvF5Do+<>JA1D-Ft;QPbee^ty(pan@V!lB42{w-&uGkQIfwl^^ zFmP4Pa`Qzx`xvfae&E)cF9R>q1%fRM3@)AFdx`E4OwDdD(Rz*X?DjG(KaR`2Ks>v> zN(;s_wt()dTheMI`cF^kzqhspIvUk#lg54bWX2>(W-=)t4dx4&)TxRT| zk4{dt@8#aR=(9AorT2R@eggA0(Z*qK_x^w;e~+zN{H1e*<@JyphW6ZORPdq%!_|n6(jSW|3%Gt&ijd3}j zaVx%Vz@Fe(@)`GQjCqc6+3XC@F*-HIJioDNPKM_1&tpG zHXpb1t~7(j%^It)t~5i&8eNXHWEo#B$Y{wj0#_-FdD+JOS7&(H#*-RjUXC&7CmCLj zakyZr_FUsA!RFIn`5oPutR=ZzFXN)?GUa+1R|uxc3V=L1WFq zlPZdh(Hi>)Buk7o!IaKYW3FJzmQrJ(mfTLKRg`jQV+S$=-)-XCIKfi6J2MF16~Y-x zhI>n&ygZYJRxxE^AC_DUXwU4ZB*PRMgCwi|1I6y(*L&X|3BqtBci(Yi}J&PbdJ)4_ogZpE9yGOId~~%|8?md^ya~YwYJ^1JQC`6^)d2;RJ(amY7`c%Yc{R z))-Uv(nEzEbgcD@+6BnpJ8Ti|h&>;>0q}Q~w_)#{@6nXYU7K>^^PzINaZ@h0Y|4pG ze#+(cO^aw7FE==X#@f>TG+yp>jF(gWpfRaA+Xxyfs;i8NA~TuRmY$CMo$gdXKKY+a zEHjx_RCnM6fba6O5}yW4wMvHHVNA2e;_Uizi`zTcg|wv%ZbmQ7KonN)}zA~KpXF4Otq#pu0&mYvQuq5T>3cR zF;%RePpHa?Po~O=Po&C;Pom0+PrRzp*Lk=n_e}BID9d-CTICK@tK5NVmD^9Pa{H-O zZa=lk?Wb0`{nRSApIYViQ>)y5io&Wq3orj_`-Za27J z*}H|iTey2baeaG)vPUTUKsnvFPbm9@QciqA5+&Z3>L-@i2Hz>L4ZewE8+=c}Hu%<3 zHvDtCVHEQ)>!2917(g~FYsmK9nhO~{wHN&XO!eyL}!cWX%Ri+rS|cteU39;Y9BAP zPZY`VsC_Z$Z1Y4ZHBm}UmQs_YrIV!;?hvA-lckN5MZQ&JTBTjBBGW1|tG14Zer66q1Mlkz6j4 z%SCdz!M9hIi~MqtUoP^?MSi)+uM+uHBEL!`SBc~*kz6H`t3+}QdefjaBDu!kx8ijM z&z9>9p5->u-*8`KseqKhaInxf8GLK9A4aZ0nU^ zffK9=4X*|FAkX!_SiC#9&$uy`6Z+ctsA-8c+kCU4Dm2^NUeQ0a&ANPO#C*@X1Fyz= zjTM6ihHR51vrU$?O<&H@p{V&nMZ}Dn*H$dCFk51W8&4VRS4W9=-lMbvd+br-9rI?H zXQISAp96&LdrR+zHonmrl^dO?5jQ$v18#Ii3O;vwXsIlRYrO`gxz7p>pW&Yc4Zq#g-Y%%rAwp}2G?h;G{-hH zXY~^g*NcZ&o4GhAo@$j>);yHV)DLsi{z(T zMNR(f7L#}7TTI@6Z!vkNy~X4`^%j$N&s$918E-N9E^Uk1guApYCf}uPF<-^{dLxyN8@!}y!$_1qOQf{-ToGn_w`#$-obA%d9Qw|RoVBn?1>`(slaUl zCz@GRM~A*LcMNII-fNo0v$MZ4KSKUflfC+>`E=xmD7$9xLQtNLTn7y&H9sDjXwL1w z#Ja|28@8Fe;~uu&i2V%kFM}S+o(#=Af~F05HhZ@9&d}Z2OYFggf6p$luC4ewyV|Pj z+Yb0#|6tA-`*8FK>+hAb(yks}kh9n9l~tZI&3>kEK+bBr4y9(B+lCFy8DPDUe@f0& z>(ybCkmp)j#gYM5F|2JhZ|`#vxN8Qt=ggMgA88#|)S2^?{Y2$L(2v5MlxpL;%Ik7I zH6I&%17u!>&ev@fMSY_8)nsD%$uz3z=+I>1 zo!RLkQ%-#6s#R{UloQ{FDkr{|)JlAVWs%54iD%kY;`=pG;(2u`@qOf0xydr!{A|eI za%Y+ab$PuyOtyR}O4T7h1T#`A@!g(QxyiB$vtM6m=G!o>#CLbTvQ}oz?zKQPED{Y% zwFbVQxKwN4n>?+=w_jR`ZxLY)iMub`?5dnt-WuY2pljr&^EUgI?16b3;rV68a*46! zh|ELsw%L>F#^zlk^TQgs4gIol*^sbvjj<#DWYF)gIz6w2Zj7Ciw+dtYio7-E9mAGb zYcPM#viW(j7<8U>x6!|HaC6eE$zGOc7@rMUmA4lC^a}_6#OF^*e{HkZ zG(VsBsXa66)x34m#`V(1P143Sa{qdhv~i8x&faD}RZtXXPz4qEehCCg{>Jj&SHp>XwF8$t0d^2jdf3Je3Th8peSc)1w0gVQXgw3zZt}YEYm?)1pLk%C^v-UR^=vX& z&(|hL?AIno?AInotZi|;+hi)*nhzU!S$e9O(Yc@y}#SMzkd(+G78-iao7TS1YW#)z>ODwn~lDrN)_3V=HQWBHD@? z*Z5{iT^&-kL&|oDZ#$%Hhm`Gr{Pg?|@#g~3vq{2PaRO($SWtU3XrBc^Y zscX4NE*Ht=;z&!Iw`wO%B~X&*NKJe zMRL7JuD5t?yj~>Ni{x~P#!XVodXze@aJ`h;qo~=^XR>asVIh!p$liF8_}V8r_leH0EuP_Rn`iiJn@7+-)bbMK+0Ja6$I(8E zZ~HSV$aL~NhbSZ=ddzcP5WGu!+E&(pQ`wqa!@U)ddH5tG+EHTaIIR&Bb$Ie@TFTfD<5mE0uBqJEO|& z*jMN=x)Av$x*qUQdJ%9Oy#;tYy#sg({T=Wu3RN}Y+k8yFgqo0VmwZCtd^!}AYpJbj z9NkD(-8i}(b&aEY0FRa04TJO50>=oPDsaBRR;`r$MuG1MG)$2fI7Z-9f%61z6!@M% z!(z!X0>@dbZK~ww30x`gIqMy2sq1UApG;0A#k1wJQmm%#S~ zejw2Bu}({1wZOgt#|RuJaEk9Snp-th^5+Tc1m%^gd6J(maHYU|1a1`goWKtRlJgi9 zR$C6&)mPv+f#(VA1owjK`I5g!;Bx{$5NP?iRJFjq0!IrRBXFF+DFUYoJWpV!zApe3+cU|)e_1dbCpRp5C7I|a@YIA7ojfhz^x zBXEPjjRKz&xJw`fxyCAiqXkY8*eP&@zzqU-38aw73mh$Qioi~RD+F#3xJw{qiM+rm zS&z}<)t!J}S6`F$CY@8a0r|7~Q1)ZAx=&R$OO6&eMIhxoM!~+LbC|vh`7`=<<~~OE z^`%~q(HDKE^kRCaz!d^F2&BBn=!kxl$5CB{{B8ZJBtHfDzxA6U`A+0dtm%~e3glPU ztdRT$M)0duDa z>=d{{;0A%a1WqYrnNEQl1nv@8RmAks0y_n+5J<&RqrlMurwHs6xI*9tfx84!iO36_ zQYv056U_pr2<#NNOCXhtyui@{rwHs6xI*9tfmM~FN8m1jR3&8vjutpYV5h(p0yhZU zC6KB`Uf^hf)bBUkYJr^sHwdH}p$qI3xIrM*3SD5QzzqVazt9DC3fv%&T%il>6u3bk z4G_A(PJtT)QXSJ*2;3#GDkcXxB}NY{!e@F0UuS-^^ecpP4AT&VCgksHz9%0Qz1Y? zOhO04CRvh&WH;;Sr`*}aVz|Ng==FH5QGiT16xp!tr{k`=EHBe!{Pt95~>?32}t1Z6FiN&`waoAbv zg7aPDnLqZR0^p_xyn-;6f_as8!P2k;mX7lV`r#~;LD&V$!AzTr{jdVo zj1}Uwk@fAyU>{Z0uz>cHyB5QJu|Bz1nv$CxNbcy4NWYJ%H!!vL61qjW)x5Ea5Gn)@@jJGYT%GqkshKU`6t;)qcAU+-KG?(R6MTYe|* zHfxNSSnlr}Nfdsvb#uhTH);d-M_#vq9jKHK;>mq2jNC`sQhh49Tc$NPRbf9|&3||w z0vzoLzb80a1kV#Jfx83Y`hufz{22IIh1hVo0pMj7((1zv!fvVx5RKu6uqJRr z!O<#kesj3t7%wVte`~mr7&9u2fc9|fvyN~ZU}slF-zdSwE+X8<7*8r#VB+C6!G5j^ zBP0=SGw7dqdjX?L1-yOWw!m(!3fNQNw!-Kl{kR|8HnPIKzTYGFbsvg&pU~@IM1r#a7|`44f?h zSA{PYromkcd@A+=y9es$2P*anS}CzTa8+zCTB%~6qJ1j%8CoW>eQ;Iy#&$K_ zukf{ogtx8N!2bNwipEr{JpCX`Iu7uUye?dW(2F z{O8ba747&V<}zFr-dz0Gu*x^9k@Rk{uZ!E>o5k=;cvjcYEcjcqZ1~%-9QfO? zJowwPq42k5!{KkoM#A5YjfTHHyBq%YY%Kg8SONSUSP}dk**N$+vJ&_^vGMSCVx{m$ zGZXyLxYIy~w=*p8$1ofGo!KP#JF_Y9YuQxzwQM^4IyMu29jk&rmQ}+a%VxnJ$7aJH z#~y&c3!4jn7wn_!AOjwOKc3BlKY=ZPKY=|Ce^<5${;oJvPlws|3HZCQC*e0qbJr92m_5%Dp*-P;EWb5GX1uJT2xSQbb!?wWRhrJ1Z8>FXUgb!tRvl4LHuQ&rH zLz*X@k)l+3)pS*wdc68R^#kfX>aWys9%DU>9*=u$@;Kws)HBm_iswAf6`tRF{_NS* ztF4#TE75DPm&L2v>rJm?UM;-`cvpD8?(OH(*{9IwVV~E1w)@2U&h~xS_i^9lzR&u8 z>+9iH-!I;;w_l#0kAHXn6#upUJN+;E_Y2SmYzfE@JQl=)8wFPf&k3Fv92YV^q&nna z$j>2XLVAQ&gx(kSaM-f2O<{Y&>V;>A-yQy1_}k$hhKEEnh|olIj_4UNEMjrQ(-AL5 zT#bm0>>fEda&F{;$fqJdiPYBXUhmI(E$T0>@82M~!R!Vr8?0;aR)aqqgf{f3qIcQE zANZAxZs>=%=TveGJ(3#M!<%=Q@yLu=_{HKEhhG=`;_*wsuPc7t z@Jqz6JAOUz>xo}4{CeZp2fx1fC1I{g#ypdP`6U&6So`ScWF zEl>AA`zW5CBEGjApDg1;dw6|Q<#4JTPM5>!a=5=7?k|T2$l(EUc#s?(B!{!)aF!g- zmc!X{I7bfW$l*LWoF|8e%Hg4Mc(@!ME{8{=T}1cMa{ET}_Ia?e^0Por$J;Nw{Y7$o zi5x#(4wuU5rE<7j4wuVen;f>u;Yo6Mk{q5Qho{Klsd9L#9G)(Rr_14)a(Jd3u9Cx5 za`-K_1aAj=K+22usqv)#Q%lr;(6c1LXE;HO_nWUA?=Qm#%J6}5e5f2BE{7xK^hi0} zP!2cbVaA&9Fg-68^cVd7JjSpO@Kbw^VX^q>Ju9U*JRg)Uc&?I$ zd2N=Kc~wg9c|9nd@meMMcvngty*Eoa-VaLmc(0O{;JMwqrF0a}2%j;mKYkYc7W)`g zdA^a-Sl`L2C93(VYrdc2X;g*zZ)ewhyQ&}YPsFbWe)w9>|19c~sQ%f1Abw}1E&*%Q z2Lsls&j-AY@auSXRht46@#}$KSM_rEm&3n2@TB_N!0YP9K_}H6@SBKVk6@igmw=P% zr}5l~-`l~{JYEZ#=AjCm=Ft?t;h`thFNVJEG1m8_`WyJY!cMB&;@3Y+B`pj)?D0*Q zholL=uGZlud0Af!|5>%K9hOZ`Y5MHU_uh z;m8Ij)!GIPq-A)1iQjebEdF}t+VmD%wz;$v$Al(XD@}#Hi}LehwRI&FP(nVEdMD=R zbI&lNt;AemOEH@!87ww~r8hu$!jSSJz0Dw_MG-awCB^EL+_B`zG3bj1Sj{G$#8V3M z^HYu1@=|?eN~zvz;|YJZ+3HR?l#@USz@9X< z!eZd`%rRKY%_ghCNrkQiBPfJKbA_eQkZv)T$ml~;v|tOI#}bc)=Oydk2VMJ`=g!ASsQXeNsL`~b1;(*>KG>>ryrGFVNEg><&{{>lN~_u0J6(@HWlYom`oToH)^+bEOOi)XcrkYy8_hA*4qk8ZiF;mfxHdE zce?}FM8Kw3mxy^JAb3w<@0!_arDmfB#zM#zK!U9bC*Vmn!Xs@;xy4|$Vz3}U zV`8wWv@!)!&QM4r2$7ug2s+aM8CH~BVJrpT%NTf@cnEx7S!TABmlz8j0)u3bL*yZc z3rwoPs)&`EPznugW-29PkkM+xb8xEOroXGgV5y`?lPxY*h}XD$cxp&I#M}n^1IlPJ z+92C<3==C1R-0&G?|8^x*3$}kU0Rf9(H9!z7(EI7T76Szq8wQYaU!sR#$0?Qn~N&t zC>kOt=XPa-b}WEv%5fdUYn|~BadpNgiul_bY&t>#P>1Z%#ZruOtYZSy#Z#1^wnJJD zGK1N`J+g=-uml;`tp_fLtbq`f0JC!nIy!)+UtQNaO24tJrX1anBZGqs${7qlDkMC7 zP{%U&f#w)uu{Ri*Kp<2C-gw{xGKx`x*-3dR{V}ajNrQ9qgilNZ!avYZiJ7UwkgYdb zsA{Q3KJfJ5b3y$ay;Jz>;)rJ_$>hx_B342axQojVnx7Rq$w|cqn}cFQETwX+`*^us z;fs=pY4NBvp@XuqU1(S)bWw&SJnqHhBc=r6O&)Dj6~xqqig2JHJdzE?MiWTtWWjg^ ziD)umK~!B>5KVlZGZ-YnG;8GylR%Z!B~XsiQi|yUzd}FADjO6V!pR|OXf1$7^i3rT zA?zv!^(|*80q5GiT@s0StY@aVsG`)+n`IgcEoQ5EoGk`Tu*Ia58c{n;rZ!`lA%-(* z44TJs3rh@?f&3W+NuIp4+`RnE!KrEa{nL_C({fm9T6)ruL5R!9%1=!jlr$ngH!Wpw zR%)&cS}WR-A!&Hc3~Z3Tte{9=vx1^ZTv9VIUVaYh;NZTY21@~&SIBZJtu{khjB}E) z#`H6oFdGyyx9(=S22&C5c$&1_b#IJ1_s-#SSCUnn;x96x^Bo=nznS{Qh*NH^sSwD` zr5DS#m%Cem+; zL?gk84t>7Dnqn?8r0b28N|jEku$6$BNh`rb!F6-)a{;NVKU|WzN>X99B^wm}S84(F zr^FOyjD`}YS)H=4yQNOkry4nr_9WF z&3>y5nj)5fG|P#utqqcikpTU;cETXN)v>1J)FdVQY-NQ#P} zyqZn=(z?@gCm73X=gKqJ5t(iTmVRk@3bib?^YI~{G>%LcwRkk$SXyU1U&hu3Pc_&e z2duRd6n+)7r~`nSM2js^V7A@@hCs=6L2|~dT|}PVg5g~|KDTIskcPFBl&)5kgIdj3 z^qE=-gDqGnC0Eu)$yWijz}*=_DYkA{uwb1DB)fz-;FE^zO)4+PRLWp58EC|lfRv>v zAAtQ0r7)S~r&tV_70BF?Yp~hqHk|w{GXPCuEvQ7Mn=5XDq#tHUrDKrYc1viKT0}E} zzLbh{floDz(?f6LoQHWGRV%K{)R&i|Vs3D50B$LDVQ>Qwa)pyh_R`!fdx=bFvmB~x zsmM$Qo7D!{tG5(E0f9NL(100%Sah&uSP86fx#bik2%BLdSb|U(U7o3hl;*W?OCc%E zW4VV{$02WdRxwauB67-M9$!O(xulXNapP2KybCbrlbV8FRH$~Wd(ASevdw3R31c7| zcFF?Gc+hJNEZ=zJG%hi+2nwncSkh)RSb5MyafOQYG|!AFqqG81R7H8#kb99&I()IF zj36bQU~f71a4ffma#8UV^krhcW2u!UeVMV4G_ncA4P4;^&!R<>U}rUxC5(t{z^E*R z{sV={)oes7K+L~Z9ST1`oLWBPI_FV&WmE6^;iD4x^kS$UWwQ@esw_i^}n5o{J%^h^7P{ zOLbMK&m*Y+^%esgR$_ol$te)6uuRIsS@HRELQg#8BI_p&m;wKyhNlzNe)Q${$);|S-B>v^@4GDv#Vjz)*k>d_5@i>fIa=~O*gzC~VOF(EN9 zv@DgFdqEs{#GJ#59ClVRIu&E6KssQtO`bF;kY-CVb{Dv`;iHOVhf_UO>LQYaRb_h11ZR@ah0{rio@{na01KpGVU1lc2RRiI^*0tlS#!pxO@YCTCN*c2QX-Ue z18hEZC(@F|QpS}}ed!IMl|uh3%TD@SLdyqka}2DscAEm(yk$}yDcr*NOu znNHaTbMfkoQ(6KxEvhKA)lNt;mseVh#U(CDDT8vUs8W)cb!C7UHdQ(k2HRwV!6XY4CA(tpl(~d*q*)8~<%U#j2nl;1%a?2JoJZw^JhSW(OGY`M*a=D4 z$x*o#1y+6oD6gc$BEbnLbSO)v5&L8)J-fnM!l4EkOvSbmVVty*?VZPF2x}G=Tg*l~ zx7ZJ-ITV}E6h$ORqEQMVMPbni#v<3an^~9%fn(}W5Xvi13X&q{63i$znJvx@XP1rT z6n$waS)tH%HnIN4s7D;>>6mA+Om-5JHx6PMDf#2jf6f#UNsS^aB<+Wi2}4lFZ4-z` zQ{`&gM+8kAuK_q(=QN4%Ryk*-x*(_uWb|YFT?Pma#W(^D9CS&WSfMXv=mmwVT&>Sy z+|%O3CAkc?ODK^dmLnCj3DKygf>W1az6fB%$-H&k94V`#Gyv*gSX7y07GFFnl^kAH z%4qa+VFlw1D>aO>(US`u@>JkQP0xTuUCxEc-&jU=NpNd1x5v^tfI(T{#=uOyi6xsc zOW;ZRH&&=7Hh`<5Oqe)b{leTSVhUXhpdyCklk77aO$>Uy*~F{kWDt3$z$L<5gmLQ< z&gC1ed|TNiHopK$o=e!JM_po_UE&s5R$#EWL^$jbE^)vI<-!C5wzB_?8GW)#Xov}0 za4z9w*vQ->49=W&uqM;H?H04!*w9pZy&rBCruS`luT!mTs4Hy(5xHX&nJZFjDC6#l zvi!|4jFWfs8DT)nX}Lmrjpq~uBqPNVw0lej^aUu!4u~X@BYdyR_4OMl9b`(7U&g_L7%aC<#w=G`NukQt z+S}j^R6CYno$4|NatSKJ&czUilKWw;OfPl8OFhliaSNMFuV0F;6eKU$MIb<|sf|$15V}-<{w=CV`Q6XgtxZ&HHOnHk_nFm+~io;sAkiTP7 ziphbqP_0NR%84C~QeF$?;C#sQmI|Mt#qB7q81J&xo!&U%`l2<)qWGAw0zev& zR&2d9gq&7R{GxBUNz_o}6766xmpJECorAYr1l7e{gyjeJpXI1LgN4|H+mCo87^H?B z!%9rU<*mS?l*V~Z(NW~8S!MoqPjepxjx0TUcgfGUl^7k};#l;?kn9$vxyVV#0ha}{ zYXV=X+!k%o<7L=0r)7)4FK?{!L8$m?6w|VT)u4pKaATzxqVSecx!B}$iKkiBCFtIA zmjpf+irK^^R_0!sd1IVvw1YlQEfZ0EF3W|{1WQ}e$Q)40fq{VxVhRAEQT%zzti~sJt2|Tj7djLWD#5V` zkvZ=MTiLwxZnV$M@~t<@#v7qXbo4fV6Q4!{7qd!)*&+uW7ARo^bn(q(*o^otlpKqe$v$Ep zOno$5XeLy25NALb37qL7%&RMV`ShP=Dw2cF8O=~TCeQ4e2@SH?nx^a3^DJh?o3XJG--g&Z@3L6B|0!NWU22G-&cy*mCIIu$G z(>l#qXta?Z16ug`pcU#gRv;Gfk{zcsb+BM3(s^WGo_UaYGOZTmJtc>=hOfo3I56_h zN<>J!r7HvrubJZ|4Z(QID;qqGMx+ZUz3T!_W($t zbfC^MJG}BcKB8;I`#vT- zvQ6Lw5h4PM=@@LtchA$x$^k|3%7oyaqP*@R;0DNQTcw*x$zkqvr1FvO2$jor0Q%0( zoQYE(3Ymq$wt?R`X2W;RIXD%<%6%y~nbe4o385UE?m$l?PK7W4Dv3=+jD`ENIfioh zEgXXKD|pNtst{?oB&%Z*Ac_$~I0#z`&ZIEmpBesS#HAsn9DZCz)$dlY{dnnmKvTJS z_*$NDCBwBMhH7rYlj&}SCks%;$VF|NL^*mTp@uf#6LlmCiBvN%(pegWyT~Oj9eyKX z4TxpBWV8mStm4aVYBSZ%DCe2#k|z!EM0Z>(R`qBK2crs%!%q~4H<^Hv$cI;a0Y=D` z3Q-lTINBov6~fMkO99v?;H%+3^?kCI(Z^+i>~gEikX0)nt%!! zQUGV-b)n9(xKz78AWG3i1eY(@OLPI{sX$s0FNM06a1cR>DbjFIATa@Tu92s(syY9p zm~@~sgG;EHHjWGiI!+8hBvF}~sjfX#S5@r)-Kr3s1x8}QLPwixSBq#ylxM?kw+8)q z!*9e9R5B(PxH8_{JHwlezNY@B0V)QT;2JlaNrdypeVxZ!FZ$h`qw_EpAdzJR;=so=NE04^R=ZB zOqc{_;yt1{QM>}RqxMl6izM0N6m~;U10&9M8iaJ}2{9dz^r6sT-m9*1!gav0q(Oim zd<&=~lv@ORihLj$M|Bv75?LU%K@qGhltQlUU~MTzOhY93h{{w?Q9Gr5XjNzG9V==} zsaE)vG}pE}IfJ!!_U0g9E5pwz%Y;P6*zM?qs>#2C_AVUTRzQfF-DLV}o`*iM;y9+7 zFj;)elrq*6Kd=B89CCEI=IalyPF&{TH>R8oc z(hv+dWu+!s4OmRfDH;$&us1=G099B>gLpCN(LfQ*r9maloKzaXk=WIs1U;YfGK-=YicILBME$+PQpJ2LK7ck#!v>hK7LWj7$zR-ZCBFF7^@~YcIEIQd8`TuVn z?46C%?m&d9d#QJ0(PwoJx&K!0-n37^Z8Wq<7PDaDTPGi|)`eW|3SB-LP&98ALeh&l zAsWvjCIwP1Wu9h{X6WqW5kvCZp+!Z~4CcDLpb!gmn|njW{6RuOUZ8Z;W9gQQGA00% z(EqcMrpGv<#S_&eQx;FGy^~v`F$Qit)}+vy^kDUgX@pisd1-M;^^@w?CGa2!11Iyg z2q@++geR>~a7Hj@rB=W|i!71ei?Q%lsHFw%Agl$bJ>mc*W;(H+L5zPZm+q&sGUNM z5*XdvUpMV&vSA|zqy43vzICyjle)F3N@*naX@+!P4v}SpVNg*I(Tq+s#(dqlGyEo$ z)eZxQN-xBZhCS+`ZjV`>)IP!m!zh;Eq((wC)E6R3#7>rD+aU)IsS8a5K73B=gbpW> zK`}0no}G9J$P=oRM?;Pe8!#L#ub?XGhy}Z&cH&<&26!g=g%s{QOo;uFM!G?F;I^`n z7z9#dQXpLw`nEW~lZHoICV9&Y?e7v-=b%QCvdC=iQ%0z) zE3)5;I-mLKmFkqITirWxY4gAk5-^g7Mv{Cy;e48e zPy5=iN>2?7v%l<3<>Kk3Q3VBs=~Z4TU$4lpJdPz0xg*0Ss)8cJDx@H_S7;fID;w>P zbS2Ku=?(H$MTS<*;u%A$?(=m72%o60Cwjl?J`XQADlZ>zEv|A3Y0CWlBnK?jsmk7f zqk4d&Lej&igs2c9714q2@fgMg7tVsb+!6$Ck;PZTK%Y58C)B6`#|}~o5Bep@0~d}3 zsl3n$sKiF@?&R(M2W%= z4pRkzOR8Q*1H(fkl?ogaDm5j7ysT=W8DsC^GGfK~butK@-loAIBzeW8aJe16nY!KY!a z%_na8y&z|Plgh0eB8B-A|To*`~ql+E072XAmPVAKx>;a^gC!xwbJ1HX=?0f z9}J7COJVkSAMj;UbjT$SKRg?8UVM_Hb+DFb5pknP2(FP5;^aaBD(WDBK{Y{=?dU=z z2k{3wl8;2CM_0HuLfylZ9=pv)Q`Ei#K(0sfLJ zxCjt5t8tf=*hro$1t)$0iQ=9BZ;<bwUEw_-OsD;@sEu=I@3n@Xg zkU#~V_u-SGV6=@ccv$S3Oab=~z5(V{-W&+GHOYkj^K7=EZ5gNPOwgdg<^t@?>$aE?IU6+ih< z(n55pKzXWelpU|hyDf_;lC|~9wJW*U_8BVec!ivi@ z5(_-GC(U#AZ@7EJo2Jytuu4#hOR1}f4z(ZSQh0M%)kQvdF-L_}T_v^VWk6k3MPTZp zNy}~S0>zO=SgW=}WQXy>QR~$W0PTR4v+##J*yRy{CJF5V;R<9Ik4`PULB2~of0(@& zo=H%fdO5sR=fbMaIVx%IC0EkkOVzNBV#O>=HMRFbdDJdsA^8Nf;WQly^w7ehqMAf` zYt#}wIjJsE>Ls-CoD5cVj>rk+j!)0f8~D6Q`UFTV9?)9=0sRpKzsfZQ`&D0vcaWN9 zVPy32)j)AUMS_9?a8aX!s$S@qpb#I--ow>i;S4_sDvA$qgxb>rk;z9C2Zcl>U{!$a zNmJ->F2?L@TX_42*#pGf6K2nh3bWr8B{y(Ln0*MkDN5 zb*MMgo$5$A)KDgZeTYJH>a|zTl*tU;S(QD3M5e}BhX1h!f^I}7;*|;;899f58;)!5AlR{T~)<- zp*j&5dvUzId{BRTCH{kqit!NPOo@(xiibq9xg-8q;0>A^+@xai8NJu?7gzMRS&^7e-g@7Syy8ib; zfJ2S|CeQ$_ryih48dW3>rcfDZE9tHF<(v%5X+VIRJ@5$f)2KO}AjEjL8MziDh%!II z+Y=}QxZDk`T8aMbZs7q*>1Hl6vfg|`34{|L}S#^bKD3_}ahvq^5ULES~f%=LSjVQ)}MkvYYxMe^A zaL!q%^&a%5qC_IN+a(B|Lo&I$K{lGzRyWar8?lsf$>UfOhL#1_Nb`fFq0HcEQj}eB zlL#d2;fzvTE5TK0*N8@bq?fwJASkqYu})R0AE*`LOepxGBR11mp&Da-C_i{}NX0|j zXsFRMR4#)WD=!$pLVZb?hV`X!C>g!$)j>ca3r%CZOQQUcd!M{$hW88E8(MWRwCWp( zXkM0h?k164gTTaN_>W5#RQSKK?N#>OM#F_K~Wg()f6jQNBScW&G+Zj+{YP) zG+Ct*BK`|Uyiy}ST5$-u0WVkzQ+8+>kfENmC`FBl%@1-WItYYf0Rv%8OV6FbG8do; zJR=AL3L}Im0=+DI_K*ka3lSK;aGAvL)Z?uNiDb&<(hUwPr z5n6SEk5#0gWn$68%|;x`(~q(Q@ZOU%ig9@Y2m{bdj?977jgF9Wv4nCtwH!$Rdli}6 zczdBxl$K$l8mY`7ujrXZz8 z;Zg&)8itcd5;&WKcwzmCd?1^{5$!|}^}}=v57>x{JnnTQ2RqOr9*Z#16||tDI!4uc zDD*>$+!gNv7Pc7<3~IsVfi(09TxXx~fJXCD6j=@CfKv#9a1!;%&lieHAi`0AjEHi!eu5 znF3Dy6hfhtleqTl8#PBHxK{T2I6g?7BoYd;U=ZQwttRS;piHtK1n1XC=(Hl6Oc%82n7*L^7i+^G^UUZ&90#(?B>ExZaq(SYBQV}s4LI% zLhIBrM3U=-AYyu=G5@S!xuF+sT&75JEmOo0DgWZx61@X_`0AWDy>FDW-P|uXx-WDE zuG_$c{^n@z6(@}aI!K(bzAm!>4>+_nN^#J&Zxk0lGL`#A)t9^4SrLKV2Vxw((l?4W zC}5WC>)IRvg66=oz-2xe1gb~iKPkm_BNkz__Jd)p5-YtZT9brU&+++WTKM%n(FgDH z(Y`$R=S|P8JME*})@|s^30d(~D{y5L^QdCD4UaJ|6&!?fa+7q-0~f2|-{vdxj;rn| zzQ5_@?vEat(`{Fi1FAO-Z)lo~9npKy`wI+BA9!+mpNPnloBO;Js$1v(dECz5#x^gG zUfkeU-Sg|V2Cne#-1_SoZ<==pUmfwtfp6n~8kG1@T8j5CKlYf_CZgB6-4_?#YhJwT z&wkm*7LP7E+TiK5Ll-7==or@T~B8Q4z~dr8h$ zqyk*u8wjcS+5j4dX47q39>dY-4!8djK}21fukCJkFA_JMdWDU_PY*+r-Its|>T!E( z7*P~YCz{H|ij)8<$mvB+B_M?H5*Yepqd=K$qId#{dIIxsXn7i2xwFr?s98(=k0kDgcjnj2S)h0xxfC#Im zFrL#o*A=We2aDh)vAQ7|GJyxP*=SNTptkeXduW+UEy$ut+3D#D(yVqZklTquBO`Z8 zKkPxd0tAGp$haYz0BoM5<)a{B#B+s&Rk1~g3bb@d$C{!BNK2qla)j>S9t~V$WA@^UD^TDzb_f}mMF}+0SoCpoU14gz=4<9f&IeN7Z3sSe^KUF|G7mo74o!g_y z>C2;)DbuqZ?MTAK9O+N+^2Qs*pi{^Vq+G*&eB>?xb{}7Y6n&xiI&s+c+>Q1@EVobb zV7wAkQ4ss9KvZ| z^0UdU65vScUXx;Dw4h2*gyRf5 z`A#f;B&k0x4CPf#WNe_s(jBGT^fCo;f+ao@92?uQ&f6#cDK31u<@~@_zKVhkme_!Q zP%r+?p!{hp|JaQ1;VLqgg=>2M0lu1-DR6XM7)zH}(ruzc+o(dQ8EzQ@=_nvyufgud z<-Y$A&CQNNFGU1kQ5g z*TfJ(-7mZ#dO^hxc`P(lbu@R7{cUb3}--^N+|6jvQ zw?(mG63h9o*BO#!l*ESKDc)OLG(*&&>*oF~+;lx18;zUQ|Al(%=uWYJGG0h_-R$-q zA_^`)WJwb4K61bF=vJfLA-nnAWGq=?z3vc$>jZ%NweA>&ad3c3!B4VBnkcT$TQ zhXcAFJ;u>;Howzut$~&%JNZj?$B}LvIbEX0^b#BWAJm!mllzD7;`9?<0$sYs`bsQL zInzivQYa=5M^Rd1@X0w25x_~uIIIpw7s#L6i}TF9yToYeAKrqOSYPOyqzDHlm6n<( zXX3CDBTf%wR*9MFI6_IId|0lTjDwXl1qMx#0mnVkO^8Jrqe(Naf{sAfSTN7(af(ok zW`wyyBQE~aSm{g-O$D8Ors1e-oKB01JQ>E=-jB|_Lt5~B{7P%JPHBob1Fn;%%vxx+ zK%efUQFK_jah){s@qE2Z;#}!Yn(T@KoUwt=`uPc)y$ZT^)yEgcC+HI6x)`+G5?j_T zOdJ%Yl!=2cXicEOkN&cgQtAKQv5(E&+`RkJoK78Fe%(K9#D#&L?DDd$ORh8>8sOb8XnVj@2fZRn7fy`y zZ@#^L`hD3^k6!(>X<4~N_r>ao35CgXb5?xuPBCjS#MtZIX%p`~&nADH*mY{)sdm$P zhrK*=iU(s?@$OeNp2NHuTZ7+vRBxIWV`uUF327}*?;d!*fgj%2#-|~SJ%scGEC)Zq zb0(#M==+iP8t~9Eu^Rq%_-#gb1M>fZIQqK|_?7sz27EG}Z}`Gcl!RB7Z}XFXph&+J zct4<{x2?rzAoNWiy-8m4tN&=A(%uSH%@6;n={;}u@$XQSb+d2(cTlOySE{M}MRKym z-Td=^KM?B?>3`P=03A`MBJqs_eRT8h9Re^31wDYq)7KPtR?@$54!{P~rs}_38~SoZ zwC{G00yu|S482{F+}UXWDHyCdcZT|Q4g^>Lw0#Nfe{v?kIv`1>K|@~~{b$Dl`~p(2oiQ}g4Xx(MQAonTCnt(@I`;{ycx z1F(Y=kg$qRujpW!%37yhOa*uw0VF;db^T(>{S=+`0M#hx1k?mmP7*jq_!OXEtAq~tcF=*(FMBMKK z-BB-JF+^!D7;qRJR7;D-R-!j)j5ezVSI?A^0y&B9QqY*kX{PCB#7O;a3z>Y;3{KK5 zg8FJJ(dacM`QinEFGfmpKmJO9341F)^wgk9HA3CRp{JD^aU!3r&5x;RcvL8`VWqAj7bVMU;s77MENnHD!gqcnrE zb7J#6<8UArp_4DF)8ObXe%d&%XfI6*=gZQ1Oe4GFV zmcX&^22`Qswh?J2>qTCd{GBwg-eY9o{waZ3g9F}hfletEK==GPYKE?^!Pf>l4Ola| z1UJf1H}iuDX;|T)MqERpDN>lcyWrOtsTV(_PJ>~H>(DGpOX#G3oI^*fOFiH`GSC5t zMPK2B7)e6|l%tSOSR@R3af%}KSB$hwMIcJe-9Ss^winmNQ?Nvxd21!6@u_{YCCa2$TU$D z#${-^w7S29p;y`hYgOA;c z*WgfVLyR;$!=x$2f?i{(Fwu2)8ah>&*H3hiri7oBs<5|J86k)eXDrg{8wdNMZADxx zVGwbql-l6TI5BL7k6hDsNKOp3jTm~PkF&gLL^%^>k zzPl(-d#8A$Bw`FlJ2;tcK#C$Wgei>>kdV&kgPe5~D8-mW=y(H_@@^84(p;A9KNtA-CnK5b~)K}@udk+jrc8i{5T#*tNH zkgtU1(*s5b2@jchO6khz7%5JW$W0pY8II;#xl^6fG8fM=QWwhPoPi<6xCC&Wh|6$B zFDIyDGM7@_b2;X1Swf4sADmrbA@ZAWLxjeL^O_-RFnIZBCCOKCQ!Kn#2M#N4Jfq9l zA?pZHJ6vmO)=V&&C!+wXrbUU_)`F+BuTe&h^UzyOxj6OKZ4}&$lSFH1<5ma_F<4?= zSRBEAYrJjXrFr*tz7TuxnXCspURt%)YJ7I}*#&EwclhgCM!jYADvE+S7)NKOPu=s{ z@4B$VpS5ZfJ?qSp(OaiZoOEU4!Etw2uNdSVH0*&%y&sHd@y>;W(ZSwZ^v&k-X0O+PTrO$$d|SWj=Uhda!q+>g&fk#x;dOm$9$we|nLgSpKk$_~n(s ze1~mM*S`?g0Q@<*sksL{r5{`W@<-;pt{2W-?7uabaujwSP1=RE9CxaY#)-JtYBoe; zPdS>K%B&@$t(L;kbVw{e7<;tX6;jSe=W0=%apr>Yqj4t~nE*$doEN%cbGfELv<{3h zHY{u}Z{M;%^eC!(h1{#IaO6rSB*tIG}d< z{~0}cvtZOw*mCIn8scGBesdmXr2)OO`1yDmjH^_JSEcY5%e-slui5j?e#iSO`0Iw3 z#_;A2T2H4gm0=W!6Nl=`r{$cYa0}1=|C~Faz*q_2Z(_^6_nl<=f3W{oD3IL>Em5hM zwz^dxFW(Nc`_KL}Q1Vu-sBWc2R40`r>4LR^UcO^z_m>Q64;9Y6(2n-<>*ytUNY!0c zlE;cH?I3M^mzZF!uUcX&Jf2ZiF|DpfUJuRwxFcU3AClpBRnnMyYZm`;_qD|r=B}DB z`iEY+@b`aev0_Dapj}(-d0ktrKE6VYcc4|_c&R~B-`zTDX|q*Lw-DhaHKCO&EBT{J zGj;x2UoZ6#53g|5kX&83Hk1NB;eNyPR@}N?j4KFrA=)5{^bYsVF%;qEnIc_NZ4|}$ zh1dQ5r>>p04W+BYn>pSr(9rG5nq1sWNz1qFlq5~8R;SZ8tskiCrtPYWjn!(qb?G(| z!9;D>*aSJKwf!sglk2a(LH)JWQVUl?q3_hyQZV{j@>5ky65IFqq=cVmznE~%cqx7Q zgAZhXJg@wo4MWzpYBDqNxaZTsFHKv#X|L7q?*q$Pjjp#j@nGYbaiyVGdbIg{$qQq0 zC%mxZRQQ(tXFeTv&nJeD*JsAWZXDV%tBd!XYsThVd#C<=C~WzC+on&NJ;Snb(lY(e zbBhM0?|toy?hj3VY;tk)Ctn-sb$7qn7klpW{V1^4o=qoKW>48S>w%+E&lXqKFY@_h z%+hyHpIkk1$%2c!`eu!{u0QmnZR+Rw>5Jb!THJ2((wDXe>FPbof~9K%@6HSU=zT*U zzaLknfA>cxb@ztvlz7&A^5=WHY+G~x!-m8*y9*DT*?Dkl>uXorUFb5q@}&-6a#gM~1fFvuWBCU3+a?Vjll+m-mAm@2yzz zdIapsW=)Q<(5$PcjUZ6Z@W9wOtyUM?u}fUn#DsWJqn1>os)+ukqGQ>fpI5(7ziZbP zo6Da6s6w?+n@2@9^T^Z=)Ml*cw<2wJ3f-5{y>sWulPAZNIo?DnG?#TQpI|hXTRRt8 zN;`v@!NuTVurF~hUcJ@nqP1P4wcTQnuGK4TmL!iM+Fb2jN?5C!op#Ft&@AgMim+(| zsN&(0blpP*-P(OHtE*KKd-~$;+`vA8ZB9Lt`gP#GrwbQ(4eZl&^v<|d&+aH)-|SuK z&69>xPsN1b0nv6FKXx zCE1z{_1nzOSig5hT4YL>MW5P7H|TWWvGc_*9<}c3wQA3m*rsEnPHbqb{kzj!-Z6`2 zJ(kukZ}gr;S66&z|N1rUM=2YB@Bi+m^r$g+PwFuI=>xx=zi_$#pw0RRH$0Sd;)N~C z=UuoyJ~{Y}-Y0@iJ$~iks<)>6*mBL3QJcz|T^g}{#%uc$cUS&!Z`4@7Z+mUncRFEP zn)ivu38rJcdU&eW99Yvj?9rbmtqOl7ZDfkB`rEH(t$SlbvxuBb z@y}r|th+pC;_fB;pBh;->79pm%!nL6|6Ig{^WVhlwtQ!~{A$In2bPWBwj}Mtahtxn zzIVaAil0vYJbVAH#^1Glcho|2hI#lHV~0bz1ONKvqiKJXMqW}k3=X~Tg~3m3dtunY zu^(KVsJU?0^G|$qV&BOw{d!egZgFZzpYaV7Cxo0B+2@f9EvINVoqw*|$MFxpuw+E5 zzFWE%KkJ>p;@a0eGQ$53IC9#*?B49XXYc9#!#6&^Jk)$Z(tC$aJ~HYz^^PVc)6aSF z>alKl1u{uR**!A(O_9p2t4`g6=M zcDh_1sUb7J8Mh@?Iwt|0wyU;VtTsMTn}|suHh~9qS_=M;Pg2#Y+S7rGrUMnG1B|&B z&tA5KM8&-PwdsZGkjyS`o_}q4^QV&=cbITuWcCYNyt*~=$awRf9RW=bcAfA+*w_AN zyS=y6Ys0R@FQf=v^5=5`D~s-*`S{pYrR$%{c=ANa-TMzO%iZMHX~+6+)^=Ps)pz|@ zi$;7jwvp$Fag%C1j=JBm}B$|ru$$j(5;FlY=ob~aAH`TKr{xkpVXF1y*di?&k z-)(Mdo!_9{YoD}j*RA!E!~qGPPT#m-T~y08Ysa0^HyeMXUB>eK2adKL^Lg`uy>s5* zJgiSE_1S$>M|J+9<&WiKg6~S7{K{YK$lEWes`I~lH}aLOjSmbNcsy}s@QIcgZ#USI zIz8>D?K><}f3O^Hb$DC)(w%4CiyHRby$_$t%+RiR@sY!)Mm@d$%E1lej&5IUpLY7o z(*uuZv|kh6?zuHHimQH}TQDVmQ|DP<4SRC*w#n_!gr|>aj7e3K@aNMkKH#|`P&{J6#7HxPteMRY#{Xcy9z(fAZ zba)!m;R$Vsm#?hlMM@q}#F)$cSLbBZ(2*fRjJ?dw3G(spSYt7+n5P{`*-A2K8r!i15J)W3G?BMS~>zB4$yd*QIm;ZU6 zIbSy05!>MC*`3jQM?LjwMxx&be(!zo^15T2zWFZlfxFU%cZ;3aw$VKsFSPyZP^a!1 zKRQ$aD z@|6cq`d9sG?6Lle_O!>KM-CsZC@Y-bYv1yrS%bG#4QsJ-N@#5Jsb`Y>Hum}Z`A?o5 zvwh_Q%Z5!Hn$ObLX<qE-ri$KD1SV0*;W6)9#-X#x-@Xx$hUre=TDE(jkL)w*#mT4w6QB9s={j9{#G`s zYH*`5?KGUT*eV zp1M&x?ZU3V9e(=S>G^*b4|uLm)Uns&-@SL+f%dOIyLr;b-{ek7QLQV#l>h3$#TCOU z8;1Y>*!&GAeHJ#Dv$E;=h}4%ZW&V86XN%sSwzTQ|SH9?b(eM7sNiUAy@|EHKH#8eB zm&|`}?OhGLuGoszzkT;n%Bt(D7QEJdO=dyMyf3Fs`M|5|F8k4$<@@d~>Dul4oZt)D z&$ZZRyZ*tY#ClQhoT-1vx@1!L$M>nDKVW+^*T3<`@{=cqq;(kg=CPliKYH%{Z9n{# z<`s78^WG!6%pLJ*;>9CP7UgW}*=Y4yeZBn?DnD4((vsXIchSn~@VB(p;jcT0t5!?8 z>hLv)Tjl5>vQ30Pj;MJmNnP7EQ7sMk@>jS3AB(T3mimFVDVWmwfSYC1vqt!-r8!$#ZMRToOO`0pM3{;y5qQq%PBhdy*{bKydj*XRM!Rex@75RR!N5i7NL ztyUWwr;F*@Eq)7tm`E1KyYtSj4STVe9S60}KPi5@o(Yw~h) zHEFq7-Q#pA@zHVGzezBd~dG9pBaDv#HS|J0o5lRz1{j-DiKkvb5;jfUP-Rb5`m14x9RL+MBI2 zIws^S7&WhZ@FT;a~7P62s?=(vqRsroJ&?Up7N z3XWd(ThL*cM(6R(XYcGjuL^QgOuxYH{aoF=-&3YdPj9?4u4LqWWka+>gB$5kcr2sl->Y$P18#_ zwV<^}fYwhbLhVyy2*YM5vE*ddq1~f1-u>$h&GDv_;(I=|VPvxBXZpX+c1r1WD%j_@ zyZb))jOWK*UoAL&b+&e}&?Y%JY8WA%RTCVz*fe>v@Z@?rZE zcYUr_ojenKe@W4)*WM4mw7dQIrA3MHwu;I73LbqXb@O+}o>}JCe#HyzY>kUP`ZK*E z@WW9FA@zet9?JT2bJxcYyqtL6^O&)6Wt&F##B7fk6tp-)XKXNY=FnC@jOZCVvE2KO zLvO#_|M|PqSDu-*W66Gh4~ynoNvgF?0^gn-I=8##)RpkX z7cbvqe0+i}FXW5WeysYwzfVsu8Q3X*=Z<6g_a?pGdtAp+XCrgldgz)ZHEy)9$zI>^ zN2cqwBQ|PNgU^k9U{+pAz*m`Dy7|14eDJZCzO-tGwW(f}7Wmn(7yH@wY-=?(cKF!z z^TYeij-A!irZ1kKZ_nHK>0^TyY=8f`G5hr4rgk4Rx-`4$t;6~&>D${jX;mC%Y1Dk~ z`hi7rvI{njxjMO7ud~A{UfMc0IkWFw`+}eJ>Ro)##c}Vd7p2ZT^Vz_wrejZhwDI}# zQ#<(S&VHNaHUG5-eBytZ61CyP(mg$ocTRnC&4urawmvIu*Z4j*WzUtj-`$-$=I(k= zN}hvTWGa&CXGp4}H(ia_DVqK(tMM=X82a&}zdSR#pk!aK$LEduYVQ*b-v3X9o?|sG z3%!Ks*tq|e(7OR{tio52oWnUS*FCVFu`kftA9Y)Z+qJzE`G`}>XDhd#M5Hf-*s zPx|&vTK4_u`qxKay1Rb-l2$_p+Rh}0>{`F=o)7Lh-*v{wK2hhFRt}h-!`62Tu79y} zrQPt&+RYPw`f%?bA5CTEf!fqoEqZ=>TD^MFqa)hC{n}NJBjr!W4rqII$okILUOVAJmyVnF(Dm^J_Z-|gz<++5qlu>)4wzWDd|LCe9Z#-$rsw5*W-J;% zZ_0CJ`;R<%smYaYUq61~gVlbEWT8l{hH8^pZGec-xF0kKijkBvoka9J$t0bMBl?>Y)e}B=)c{N z-PFAG+!1#8xX%08$GZP%=r`q;zn<^^;-7~sGxZb9lh@imUgP^x;#;Ra`1tGUS1o&* zT-b7-)U@jF#&bI4C2kt^?XJKfOQ+s%?cwwDlIUL_{vj?Vto_AzJLk1+{^zcjvc7G% zW#iiK7HwLS{LJo88zyD`F#A%6Csu`y(|-PzEq37H!f6+m&h6az!{+NpY+m<$YR|>l z6Te!yf9H@NjfaM9-*-s+?$u9z&ip%Y+nB*8mN#wKt@GQT4)=^X6SyKf{@XLYZKJ+; zWoCR+pEtiv`0n%kM-SN^$Ov0mt={7lAzqa!K=Cb0M)_$-u_#DZe*0f&o4{vHp zF_z<#08Lh&SXgyQO-qc{ro^X3$E9f#bse?s2~Zv0!hM;d$u(D43Jsb}oLhw4DW&GZ z39gESC(ge1WQQ-jcwO6~L9k=38ILtg+(<`6f>uOmr)YaS7q%XfPK(dY{bU4Wxb=sF zn_^PmQ^DGbRVp_88}1hn7q8w!5D6~%RkZKzu#oVj@(Mq#564mO$FVp&Tll?KYHHM( zYl`;>8_BJgN+Ux4Oo^lyxZaM zrM>rjbKl%8l}p&Zz2*M9u2;7jyCt{v2vtDFs`}Kq@mkNwXoS=@3~*9zU$a#k(HY8yH1 zD=?h}x>-Sd^ADb_pP{uMbwQvC z(AoEE?VoDxpJ?qHJtFEF+gke)t-b2mng1J!h28$JnSTZhGI{)V?_ZC;bkBneW=xHl zeZiIUVdfz7oodd?ZQUQ5J;^r4vN0p$=<%jKR;*uPUVh?uOw<#N{eC&L%`f-Ei}O3a((7K zcWu|2xuZWm81GXy*K_zw`e#Njey(2A$%$l^~*qhfaSdgb)2tS^0SuLiH*5?yuX%Bzce{Qmy(%i|{HbU9W0 q?Bp+&WpzE%Z~P;Z%c9%f`_l`TOWTg>**ZFHW4-88mk;sv(EkTgxx!2U literal 0 HcmV?d00001 diff --git a/swaggerci/eventgrid/generated/modules/Az.Accounts/2.7.5/Microsoft.Rest.ClientRuntime.dll b/swaggerci/eventgrid/generated/modules/Az.Accounts/2.7.5/Microsoft.Rest.ClientRuntime.dll new file mode 100644 index 0000000000000000000000000000000000000000..4b4be00999a44dc176b392f6ff32e0eac0fa40bf GIT binary patch literal 80248 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 N%es1F>FroV{C~6e!nFVZ literal 0 HcmV?d00001 diff --git a/swaggerci/eventgrid/generated/modules/Az.Accounts/2.7.5/Microsoft.WindowsAzure.Storage.DataMovement.dll b/swaggerci/eventgrid/generated/modules/Az.Accounts/2.7.5/Microsoft.WindowsAzure.Storage.DataMovement.dll new file mode 100644 index 0000000000000000000000000000000000000000..6ac672abd48641e9dc4266d9fc3dfabcfad39110 GIT binary patch literal 302784 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

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

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

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

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

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

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

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

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

f$Wlht$xk2nn;H_wa5qq^7=>BpJfL+gVGG;nflOEWdzv*6>fY z^*SW~e2#U?NL5>}@|TPmKNq7dqAUiIZaw`r$#YRy_l|t(>%0Du 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 z IbU+d`%a@vhU^Rxm~69JzL8 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 Dt>fXGq{9%V!-+Pc`^op5bI)C# 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%0DS9e9WIv68 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%0D$u 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 z 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

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

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

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

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

* 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

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

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

ClTp 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

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

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

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

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

+ /// Monitors the task (which should be ProcessRecordAsync) to control + /// the lifetime of the job itself + /// + /// + public void Monitor(Task task) + { + SetJobState(JobState.Running); + task.ContinueWith(antecedent => + { + if (antecedent.IsCanceled) + { + // if the task was canceled, we're just going to call it completed. + SetJobState(JobState.Completed); + } + else if (antecedent.IsFaulted) + { + foreach (var innerException in antecedent.Exception.Flatten().InnerExceptions) + { + WriteError(new System.Management.Automation.ErrorRecord(innerException, string.Empty, System.Management.Automation.ErrorCategory.NotSpecified, null)); + } + + // a fault indicates an actual failure + SetJobState(JobState.Failed); + } + else + { + // otherwiser it's a completed state. + SetJobState(JobState.Completed); + } + }, CancellationToken); + } + + private void CheckForCancellation() + { + if (IsJobDone) + { + throw new LongRunningJobCancelledException("Long running job is canceled or stopping, continuation of the cmdlet is not permitted."); + } + } + + public void WriteInformation(InformationRecord informationRecord) + { + CheckForCancellation(); + + this.Information.Add(informationRecord); + } + + public bool ShouldContinue(string query, string caption, bool hasSecurityImpact, ref bool yesToAll, ref bool noToAll) + { + CheckForInteractive(); + return false; + } + + public void WriteDebug(string text) + { + _statusMessage = text; + CheckForCancellation(); + + if (Debug.IsOpen && Debug.Count < MaxRecords) + { + Debug.Add(new DebugRecord(text)); + } + } + + public void WriteError(ErrorRecord errorRecord) + { + if (Error.IsOpen) + { + Error.Add(errorRecord); + } + } + + public void WriteObject(object sendToPipeline) + { + CheckForCancellation(); + + if (Output.IsOpen) + { + Output.Add(new PSObject(sendToPipeline)); + } + } + + public void WriteObject(object sendToPipeline, bool enumerateCollection) + { + CheckForCancellation(); + + if (enumerateCollection && sendToPipeline is System.Collections.IEnumerable enumerable) + { + foreach (var item in enumerable) + { + WriteObject(item); + } + } + else + { + WriteObject(sendToPipeline); + } + } + + public void WriteProgress(ProgressRecord progressRecord) + { + CheckForCancellation(); + + if (Progress.IsOpen && Progress.Count < MaxRecords) + { + Progress.Add(progressRecord); + } + } + + public void WriteProgress(long sourceId, ProgressRecord progressRecord) + { + CheckForCancellation(); + + if (Progress.IsOpen && Progress.Count < MaxRecords) + { + Progress.Add(progressRecord); + } + } + + public void WriteVerbose(string text) + { + CheckForCancellation(); + + if (Verbose.IsOpen && Verbose.Count < MaxRecords) + { + Verbose.Add(new VerboseRecord(text)); + } + } + + public void WriteWarning(string text) + { + CheckForCancellation(); + + if (Warning.IsOpen && Warning.Count < MaxRecords) + { + Warning.Add(new WarningRecord(text)); + } + } + + public void WriteCommandDetail(string text) + { + WriteVerbose(text); + } + + public bool ShouldProcess(string target) + { + CheckForInteractive(); + return false; + } + + public bool ShouldProcess(string target, string action) + { + CheckForInteractive(); + return false; + } + + public bool ShouldProcess(string verboseDescription, string verboseWarning, string caption) + { + CheckForInteractive(); + return false; + } + + public bool ShouldProcess(string verboseDescription, string verboseWarning, string caption, out ShouldProcessReason shouldProcessReason) + { + CheckForInteractive(); + shouldProcessReason = ShouldProcessReason.None; + return false; + } + + public bool ShouldContinue(string query, string caption) + { + CheckForInteractive(); + return false; + } + + public bool ShouldContinue(string query, string caption, ref bool yesToAll, ref bool noToAll) + { + CheckForInteractive(); + return false; + } + + public bool TransactionAvailable() + { + // interactivity required? + return false; + } + + public void ThrowTerminatingError(ErrorRecord errorRecord) + { + if (Error.IsOpen) + { + Error.Add(errorRecord); + } + } + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/runtime/AsyncOperationResponse.cs b/swaggerci/eventgrid/generated/runtime/AsyncOperationResponse.cs new file mode 100644 index 000000000000..5bb2e47a0f8b --- /dev/null +++ b/swaggerci/eventgrid/generated/runtime/AsyncOperationResponse.cs @@ -0,0 +1,177 @@ +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell +{ + using static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Extensions; + + [System.ComponentModel.TypeConverter(typeof(AsyncOperationResponseTypeConverter))] + public class AsyncOperationResponse + { + private string _target; + public string Target { get => _target; set => _target = value; } + public AsyncOperationResponse() + { + } + internal AsyncOperationResponse(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject json) + { + // pull target + { Target = If(json?.PropertyT("target"), out var _v) ? (string)_v : (string)Target; } + } + public string ToJsonString() + { + return $"{{ \"target\" : \"{this.Target}\" }}"; + } + + public static AsyncOperationResponse FromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode node) + { + return node is Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject json ? new AsyncOperationResponse(json) : null; + } + + + /// + /// Creates a new instance of , deserializing the content from a json string. + /// + /// a string containing a JSON serialized instance of this model. + /// an instance of the model class. + public static AsyncOperationResponse FromJsonString(string jsonText) => FromJson(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode.Parse(jsonText)); + + } + + public partial class AsyncOperationResponseTypeConverter : System.Management.Automation.PSTypeConverter + { + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false. + /// + public override bool CanConvertFrom(object sourceValue, global::System.Type destinationType) => CanConvertFrom(sourceValue); + + /// + /// Determines if the converter can convert the parameter to the + /// parameter. + /// + /// the instance to check if it can be converted to the type. + /// + /// true if the instance could be converted to a type, otherwise false + /// + public static bool CanConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return true; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + // we say yest to PSObjects + return true; + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + // we say yest to Hashtables/dictionaries + return true; + } + try + { + if (null != sourceValue.ToJsonString()) + { + return true; + } + } + catch + { + // Not one of our objects + } + try + { + string text = sourceValue.ToString()?.Trim(); + return true == text?.StartsWith("{") && true == text?.EndsWith("}") && Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode.Parse(text).Type == Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonType.Object; + } + catch + { + // Doesn't look like it can be treated as JSON + } + return false; + } + + /// + /// Determines if the parameter can be converted to the parameter + /// + /// the to convert from + /// the to convert to + /// + /// true if the converter can convert the parameter to the + /// parameter, otherwise false + /// + public override bool CanConvertTo(object sourceValue, global::System.Type destinationType) => false; + + /// + /// Converts the parameter to the parameter using and + /// + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// + /// an instance of , or null if there is no suitable conversion. + /// + public override object ConvertFrom(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => ConvertFrom(sourceValue); + + /// + /// Converts the parameter to the parameter using and + /// + /// the value to convert into an instance of . + /// + /// an instance of , or null if there is no suitable conversion. + /// + public static object ConvertFrom(dynamic sourceValue) + { + if (null == sourceValue) + { + return null; + } + global::System.Type type = sourceValue.GetType(); + if (typeof(AsyncOperationResponse).IsAssignableFrom(type)) + { + return sourceValue; + } + try + { + return AsyncOperationResponse.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString()); ; + } + catch + { + // Unable to use JSON pattern + } + + if (typeof(System.Management.Automation.PSObject).IsAssignableFrom(type)) + { + return new AsyncOperationResponse { Target = (sourceValue as System.Management.Automation.PSObject).GetValueForProperty("target", "", global::System.Convert.ToString) }; + } + if (typeof(global::System.Collections.IDictionary).IsAssignableFrom(type)) + { + return new AsyncOperationResponse { Target = (sourceValue as global::System.Collections.IDictionary).GetValueForProperty("target", "", global::System.Convert.ToString) }; + } + return null; + } + + /// NotImplemented -- this will return null + /// the to convert from + /// the to convert to + /// not used by this TypeConverter. + /// when set to true, will ignore the case when converting. + /// will always return null. + public override object ConvertTo(object sourceValue, global::System.Type destinationType, global::System.IFormatProvider formatProvider, bool ignoreCase) => null; + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/runtime/BuildTime/Cmdlets/ExportCmdletSurface.cs b/swaggerci/eventgrid/generated/runtime/BuildTime/Cmdlets/ExportCmdletSurface.cs new file mode 100644 index 000000000000..9875d50ab26c --- /dev/null +++ b/swaggerci/eventgrid/generated/runtime/BuildTime/Cmdlets/ExportCmdletSurface.cs @@ -0,0 +1,113 @@ +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ +using System; +using System.Collections.Generic; +using System.IO; +using System.Linq; +using System.Management.Automation; +using System.Text; +using static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell.PsHelpers; + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell +{ + [Cmdlet(VerbsData.Export, "CmdletSurface")] + [DoNotExport] + public class ExportCmdletSurface : PSCmdlet + { + [Parameter(Mandatory = true)] + [ValidateNotNullOrEmpty] + public string ModuleName { get; set; } + + [Parameter(Mandatory = true)] + [ValidateNotNullOrEmpty] + public string CmdletFolder { get; set; } + + [Parameter(Mandatory = true)] + [ValidateNotNullOrEmpty] + public string OutputFolder { get; set; } + + [Parameter] + public bool IncludeGeneralParameters { get; set; } + + [Parameter] + public bool UseExpandedFormat { get; set; } + + protected override void ProcessRecord() + { + try + { + var variants = GetScriptCmdlets(this, CmdletFolder) + .SelectMany(fi => fi.ToVariants()) + .Where(v => !v.IsDoNotExport) + .ToArray(); + var allProfiles = variants.SelectMany(v => v.Profiles).Distinct().ToArray(); + var profileGroups = allProfiles.Any() + ? variants + .SelectMany(v => (v.Profiles.Any() ? v.Profiles : allProfiles).Select(p => (profile: p, variant: v))) + .GroupBy(pv => pv.profile) + .Select(pvg => new ProfileGroup(pvg.Select(pv => pv.variant).ToArray(), pvg.Key)) + : new[] { new ProfileGroup(variants) }; + foreach (var profileGroup in profileGroups) + { + var variantGroups = profileGroup.Variants + .GroupBy(v => new { v.CmdletName }) + .Select(vg => new VariantGroup(ModuleName, vg.Key.CmdletName, vg.Select(v => v).ToArray(), String.Empty, profileGroup.ProfileName)); + var sb = UseExpandedFormat ? ExpandedFormat(variantGroups) : CondensedFormat(variantGroups); + Directory.CreateDirectory(OutputFolder); + File.WriteAllText(Path.Combine(OutputFolder, $"CmdletSurface-{profileGroup.ProfileName}.md"), sb.ToString()); + } + } + catch (Exception ee) + { + Console.WriteLine($"${ee.GetType().Name}/{ee.StackTrace}"); + throw ee; + } + } + + private StringBuilder ExpandedFormat(IEnumerable variantGroups) + { + var sb = new StringBuilder(); + foreach (var variantGroup in variantGroups.OrderBy(vg => vg.CmdletName)) + { + sb.Append($"### {variantGroup.CmdletName}{Environment.NewLine}"); + var parameterGroups = variantGroup.ParameterGroups + .Where(pg => !pg.DontShow && (IncludeGeneralParameters || (pg.OrderCategory != ParameterCategory.Azure && pg.OrderCategory != ParameterCategory.Runtime))); + foreach (var parameterGroup in parameterGroups) + { + sb.Append($" - {parameterGroup.ParameterName} `{parameterGroup.ParameterType.ToSyntaxTypeName()}`{Environment.NewLine}"); + } + sb.AppendLine(); + } + + return sb; + } + + private StringBuilder CondensedFormat(IEnumerable variantGroups) + { + var sb = new StringBuilder(); + var condensedGroups = variantGroups + .GroupBy(vg => vg.CmdletNoun) + .Select(vgg => ( + CmdletNoun: vgg.Key, + CmdletVerbs: vgg.Select(vg => vg.CmdletVerb).OrderBy(cv => cv).ToArray(), + ParameterGroups: vgg.SelectMany(vg => vg.ParameterGroups).DistinctBy(p => p.ParameterName).ToArray(), + OutputTypes: vgg.SelectMany(vg => vg.OutputTypes).Select(ot => ot.Type).DistinctBy(t => t.Name).Select(t => t.ToSyntaxTypeName()).ToArray())) + .OrderBy(vg => vg.CmdletNoun); + foreach (var condensedGroup in condensedGroups) + { + sb.Append($"### {condensedGroup.CmdletNoun} [{String.Join(", ", condensedGroup.CmdletVerbs)}] `{String.Join(", ", condensedGroup.OutputTypes)}`{Environment.NewLine}"); + var parameterGroups = condensedGroup.ParameterGroups + .Where(pg => !pg.DontShow && (IncludeGeneralParameters || (pg.OrderCategory != ParameterCategory.Azure && pg.OrderCategory != ParameterCategory.Runtime))); + foreach (var parameterGroup in parameterGroups) + { + sb.Append($" - {parameterGroup.ParameterName} `{parameterGroup.ParameterType.ToSyntaxTypeName()}`{Environment.NewLine}"); + } + sb.AppendLine(); + } + + return sb; + } + } +} diff --git a/swaggerci/eventgrid/generated/runtime/BuildTime/Cmdlets/ExportExampleStub.cs b/swaggerci/eventgrid/generated/runtime/BuildTime/Cmdlets/ExportExampleStub.cs new file mode 100644 index 000000000000..ca0899f6cd07 --- /dev/null +++ b/swaggerci/eventgrid/generated/runtime/BuildTime/Cmdlets/ExportExampleStub.cs @@ -0,0 +1,74 @@ +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ +using System; +using System.IO; +using System.Linq; +using System.Management.Automation; +using static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell.MarkdownTypesExtensions; +using static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell.PsHelpers; + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell +{ + [Cmdlet(VerbsData.Export, "ExampleStub")] + [DoNotExport] + public class ExportExampleStub : PSCmdlet + { + [Parameter(Mandatory = true)] + [ValidateNotNullOrEmpty] + public string ExportsFolder { get; set; } + + [Parameter(Mandatory = true)] + [ValidateNotNullOrEmpty] + public string OutputFolder { get; set; } + + protected override void ProcessRecord() + { + try + { + if (!Directory.Exists(ExportsFolder)) + { + throw new ArgumentException($"Exports folder '{ExportsFolder}' does not exist"); + } + + var exportDirectories = Directory.GetDirectories(ExportsFolder); + if (!exportDirectories.Any()) + { + exportDirectories = new[] { ExportsFolder }; + } + + var exampleText = String.Join(String.Empty, DefaultExampleHelpInfos.Select(ehi => ehi.ToHelpExampleOutput())); + foreach (var exportDirectory in exportDirectories) + { + var outputFolder = OutputFolder; + if (exportDirectory != ExportsFolder) + { + outputFolder = Path.Combine(OutputFolder, Path.GetFileName(exportDirectory)); + Directory.CreateDirectory(outputFolder); + } + + var cmdletFilePaths = GetScriptCmdlets(exportDirectory).Select(fi => Path.Combine(outputFolder, $"{fi.Name}.md")).ToArray(); + var currentExamplesFilePaths = Directory.GetFiles(outputFolder).ToArray(); + // Remove examples of non-existing cmdlets + var removedCmdletFilePaths = currentExamplesFilePaths.Except(cmdletFilePaths); + foreach (var removedCmdletFilePath in removedCmdletFilePaths) + { + File.Delete(removedCmdletFilePath); + } + + // Only create example stubs if they don't exist + foreach (var cmdletFilePath in cmdletFilePaths.Except(currentExamplesFilePaths)) + { + File.WriteAllText(cmdletFilePath, exampleText); + } + } + } + catch (Exception ee) + { + Console.WriteLine($"${ee.GetType().Name}/{ee.StackTrace}"); + throw ee; + } + } + } +} diff --git a/swaggerci/eventgrid/generated/runtime/BuildTime/Cmdlets/ExportFormatPs1xml.cs b/swaggerci/eventgrid/generated/runtime/BuildTime/Cmdlets/ExportFormatPs1xml.cs new file mode 100644 index 000000000000..471e859436f8 --- /dev/null +++ b/swaggerci/eventgrid/generated/runtime/BuildTime/Cmdlets/ExportFormatPs1xml.cs @@ -0,0 +1,101 @@ +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ +using System; +using System.Collections.Generic; +using System.IO; +using System.Linq; +using System.Management.Automation; +using System.Reflection; + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell +{ + [Cmdlet(VerbsData.Export, "FormatPs1xml")] + [DoNotExport] + public class ExportFormatPs1xml : PSCmdlet + { + [Parameter(Mandatory = true)] + [ValidateNotNullOrEmpty] + public string FilePath { get; set; } + + private const string ModelNamespace = @"Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models"; + private const string SupportNamespace = @"Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support"; + private const string PropertiesExcludedForTableview = @""; + + private static readonly bool IsAzure = Convert.ToBoolean(@"true"); + + protected override void ProcessRecord() + { + try + { + var viewModels = GetFilteredViewParameters().Select(CreateViewModel).ToList(); + var ps1xml = new Configuration + { + ViewDefinitions = new ViewDefinitions + { + Views = viewModels + } + }; + File.WriteAllText(FilePath, ps1xml.ToXmlString()); + } + catch (Exception ee) + { + Console.WriteLine($"${ee.GetType().Name}/{ee.StackTrace}"); + throw ee; + } + } + + private static IEnumerable GetFilteredViewParameters() + { + //https://stackoverflow.com/a/79738/294804 + //https://stackoverflow.com/a/949285/294804 + var types = Assembly.GetExecutingAssembly().GetExportedTypes() + .Where(t => t.IsClass + && (t.Namespace.StartsWith(ModelNamespace) || t.Namespace.StartsWith(SupportNamespace)) + && !t.GetCustomAttributes().Any()); + return types.Select(t => new ViewParameters(t, t.GetProperties() + .Select(p => new PropertyFormat(p)) + .Where(pf => !pf.Property.GetCustomAttributes().Any() + && (!PropertiesExcludedForTableview.Split(',').Contains(pf.Property.Name)) + && (pf.FormatTable != null || (pf.Origin != PropertyOrigin.Inlined && pf.Property.PropertyType.IsPsSimple()))) + .OrderByDescending(pf => pf.Index.HasValue) + .ThenBy(pf => pf.Index) + .ThenByDescending(pf => pf.Origin.HasValue) + .ThenBy(pf => pf.Origin))).Where(vp => vp.Properties.Any()); + } + + private static View CreateViewModel(ViewParameters viewParameters) + { + var entries = viewParameters.Properties.Select(pf => + (TableColumnHeader: new TableColumnHeader { Label = pf.Label, Width = pf.Width }, + TableColumnItem: new TableColumnItem { PropertyName = pf.Property.Name })).ToArray(); + + return new View + { + Name = viewParameters.Type.FullName, + ViewSelectedBy = new ViewSelectedBy + { + TypeName = viewParameters.Type.FullName + }, + TableControl = new TableControl + { + TableHeaders = new TableHeaders + { + TableColumnHeaders = entries.Select(e => e.TableColumnHeader).ToList() + }, + TableRowEntries = new TableRowEntries + { + TableRowEntry = new TableRowEntry + { + TableColumnItems = new TableColumnItems + { + TableItems = entries.Select(e => e.TableColumnItem).ToList() + } + } + } + } + }; + } + } +} diff --git a/swaggerci/eventgrid/generated/runtime/BuildTime/Cmdlets/ExportHelpMarkdown.cs b/swaggerci/eventgrid/generated/runtime/BuildTime/Cmdlets/ExportHelpMarkdown.cs new file mode 100644 index 000000000000..ec4b78a83090 --- /dev/null +++ b/swaggerci/eventgrid/generated/runtime/BuildTime/Cmdlets/ExportHelpMarkdown.cs @@ -0,0 +1,53 @@ +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ +using System; +using System.Linq; +using System.Management.Automation; +using static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell.MarkdownRenderer; + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell +{ + [Cmdlet(VerbsData.Export, "HelpMarkdown")] + [DoNotExport] + public class ExportHelpMarkdown : PSCmdlet + { + [Parameter(Mandatory = true)] + [ValidateNotNullOrEmpty] + public PSModuleInfo ModuleInfo { get; set; } + + [Parameter(Mandatory = true)] + [ValidateNotNullOrEmpty] + public PSObject[] FunctionInfo { get; set; } + + [Parameter(Mandatory = true)] + [ValidateNotNullOrEmpty] + public PSObject[] HelpInfo { get; set; } + + [Parameter(Mandatory = true)] + [ValidateNotNullOrEmpty] + public string DocsFolder { get; set; } + + [Parameter(Mandatory = true)] + [ValidateNotNullOrEmpty] + public string ExamplesFolder { get; set; } + + protected override void ProcessRecord() + { + try + { + var helpInfos = HelpInfo.Select(hi => hi.ToPsHelpInfo()); + var variantGroups = FunctionInfo.Select(fi => fi.BaseObject).Cast() + .Join(helpInfos, fi => fi.Name, phi => phi.CmdletName, (fi, phi) => fi.ToVariants(phi)) + .Select(va => new VariantGroup(ModuleInfo.Name, va.First().CmdletName, va, String.Empty)); + WriteMarkdowns(variantGroups, ModuleInfo.ToModuleInfo(), DocsFolder, ExamplesFolder); + } + catch (Exception ee) + { + Console.WriteLine($"${ee.GetType().Name}/{ee.StackTrace}"); + throw ee; + } + } + } +} diff --git a/swaggerci/eventgrid/generated/runtime/BuildTime/Cmdlets/ExportModelSurface.cs b/swaggerci/eventgrid/generated/runtime/BuildTime/Cmdlets/ExportModelSurface.cs new file mode 100644 index 000000000000..545f11da34b4 --- /dev/null +++ b/swaggerci/eventgrid/generated/runtime/BuildTime/Cmdlets/ExportModelSurface.cs @@ -0,0 +1,117 @@ +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ +using System; +using System.Collections.Generic; +using System.IO; +using System.Linq; +using System.Management.Automation; +using System.Reflection; +using System.Text; + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell +{ + [Cmdlet(VerbsData.Export, "ModelSurface")] + [DoNotExport] + public class ExportModelSurface : PSCmdlet + { + [Parameter(Mandatory = true)] + [ValidateNotNullOrEmpty] + public string OutputFolder { get; set; } + + [Parameter] + public bool UseExpandedFormat { get; set; } + + private const string ModelNamespace = @"Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models"; + private const string SupportNamespace = @"Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Support"; + + protected override void ProcessRecord() + { + try + { + var types = Assembly.GetExecutingAssembly().GetExportedTypes() + .Where(t => t.IsClass && (t.Namespace.StartsWith(ModelNamespace) || t.Namespace.StartsWith(SupportNamespace))); + var typeInfos = types.Select(t => new ModelTypeInfo + { + Type = t, + TypeName = t.Name, + Properties = t.GetProperties(BindingFlags.Public | BindingFlags.Instance).Where(p => !p.GetIndexParameters().Any()).OrderBy(p => p.Name).ToArray(), + NamespaceGroup = t.Namespace.Split('.').LastOrDefault().EmptyIfNull() + }).Where(mti => mti.Properties.Any()); + var sb = UseExpandedFormat ? ExpandedFormat(typeInfos) : CondensedFormat(typeInfos); + Directory.CreateDirectory(OutputFolder); + File.WriteAllText(Path.Combine(OutputFolder, "ModelSurface.md"), sb.ToString()); + } + catch (Exception ee) + { + Console.WriteLine($"${ee.GetType().Name}/{ee.StackTrace}"); + throw ee; + } + } + + private static StringBuilder ExpandedFormat(IEnumerable typeInfos) + { + var sb = new StringBuilder(); + foreach (var typeInfo in typeInfos.OrderBy(mti => mti.TypeName).ThenBy(mti => mti.NamespaceGroup)) + { + sb.Append($"### {typeInfo.TypeName} [{typeInfo.NamespaceGroup}]{Environment.NewLine}"); + foreach (var property in typeInfo.Properties) + { + sb.Append($" - {property.Name} `{property.PropertyType.ToSyntaxTypeName()}`{Environment.NewLine}"); + } + sb.AppendLine(); + } + + return sb; + } + + private static StringBuilder CondensedFormat(IEnumerable typeInfos) + { + var sb = new StringBuilder(); + var typeGroups = typeInfos + .GroupBy(mti => mti.TypeName) + .Select(tig => ( + Types: tig.Select(mti => mti.Type).ToArray(), + TypeName: tig.Key, + Properties: tig.SelectMany(mti => mti.Properties).DistinctBy(p => p.Name).OrderBy(p => p.Name).ToArray(), + NamespaceGroups: tig.Select(mti => mti.NamespaceGroup).OrderBy(ng => ng).ToArray() + )) + .OrderBy(tg => tg.TypeName); + foreach (var typeGroup in typeGroups) + { + var aType = typeGroup.Types.Select(GetAssociativeType).FirstOrDefault(t => t != null); + var aText = aType != null ? $@" \<{aType.ToSyntaxTypeName()}\>" : String.Empty; + sb.Append($"### {typeGroup.TypeName}{aText} [{String.Join(", ", typeGroup.NamespaceGroups)}]{Environment.NewLine}"); + foreach (var property in typeGroup.Properties) + { + var propertyAType = GetAssociativeType(property.PropertyType); + var propertyAText = propertyAType != null ? $" <{propertyAType.ToSyntaxTypeName()}>" : String.Empty; + var enumNames = GetEnumFieldNames(property.PropertyType.Unwrap()); + var enumNamesText = enumNames.Any() ? $" **{{{String.Join(", ", enumNames)}}}**" : String.Empty; + sb.Append($" - {property.Name} `{property.PropertyType.ToSyntaxTypeName()}{propertyAText}`{enumNamesText}{Environment.NewLine}"); + } + sb.AppendLine(); + } + + return sb; + } + + //https://stackoverflow.com/a/4963190/294804 + private static Type GetAssociativeType(Type type) => + type.GetInterfaces().FirstOrDefault(i => i.IsGenericType && i.GetGenericTypeDefinition() == typeof(IAssociativeArray<>))?.GetGenericArguments().First(); + + private static string[] GetEnumFieldNames(Type type) => + type.IsValueType && !type.IsPrimitive && type != typeof(decimal) && type != typeof(DateTime) + ? type.GetFields(BindingFlags.Public | BindingFlags.Static).Where(f => f.FieldType == type).Select(p => p.Name).ToArray() + : new string[] { }; + + private class ModelTypeInfo + { + public Type Type { get; set; } + public string TypeName { get; set; } + public PropertyInfo[] Properties { get; set; } + public string NamespaceGroup { get; set; } + } + } +} diff --git a/swaggerci/eventgrid/generated/runtime/BuildTime/Cmdlets/ExportProxyCmdlet.cs b/swaggerci/eventgrid/generated/runtime/BuildTime/Cmdlets/ExportProxyCmdlet.cs new file mode 100644 index 000000000000..84e50137cd51 --- /dev/null +++ b/swaggerci/eventgrid/generated/runtime/BuildTime/Cmdlets/ExportProxyCmdlet.cs @@ -0,0 +1,169 @@ +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ +using System; +using System.IO; +using System.Linq; +using System.Management.Automation; +using System.Text; +using static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell.PsHelpers; +using static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell.MarkdownRenderer; +using static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell.PsProxyTypeExtensions; +using System.Collections.Generic; + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell +{ + [Cmdlet(VerbsData.Export, "ProxyCmdlet", DefaultParameterSetName = "Docs")] + [DoNotExport] + public class ExportProxyCmdlet : PSCmdlet + { + [Parameter(Mandatory = true)] + [ValidateNotNullOrEmpty] + public string ModuleName { get; set; } + + [Parameter(Mandatory = true)] + [ValidateNotNullOrEmpty] + public string[] ModulePath { get; set; } + + [Parameter(Mandatory = true)] + [ValidateNotNullOrEmpty] + public string ExportsFolder { get; set; } + + [Parameter(Mandatory = true)] + [ValidateNotNullOrEmpty] + public string InternalFolder { get; set; } + + [Parameter(Mandatory = true, ParameterSetName = "Docs")] + [AllowEmptyString] + public string ModuleDescription { get; set; } + + [Parameter(Mandatory = true, ParameterSetName = "Docs")] + [ValidateNotNullOrEmpty] + public string DocsFolder { get; set; } + + [Parameter(Mandatory = true)] + [ValidateNotNullOrEmpty] + public string ExamplesFolder { get; set; } + + [Parameter(Mandatory = true, ParameterSetName = "Docs")] + public Guid ModuleGuid { get; set; } + + [Parameter(Mandatory = true, ParameterSetName = "NoDocs")] + public SwitchParameter ExcludeDocs { get; set; } + + protected override void ProcessRecord() + { + try + { + var variants = GetModuleCmdletsAndHelpInfo(this, ModulePath).SelectMany(ci => ci.ToVariants()).Where(v => !v.IsDoNotExport).ToArray(); + var allProfiles = variants.SelectMany(v => v.Profiles).Distinct().ToArray(); + var profileGroups = allProfiles.Any() + ? variants + .SelectMany(v => (v.Profiles.Any() ? v.Profiles : allProfiles).Select(p => (profile: p, variant: v))) + .GroupBy(pv => pv.profile) + .Select(pvg => new ProfileGroup(pvg.Select(pv => pv.variant).ToArray(), pvg.Key)) + : new[] { new ProfileGroup(variants) }; + var variantGroups = profileGroups.SelectMany(pg => pg.Variants + .GroupBy(v => new { v.CmdletName, v.IsInternal }) + .Select(vg => new VariantGroup(ModuleName, vg.Key.CmdletName, vg.Select(v => v).ToArray(), + Path.Combine(vg.Key.IsInternal ? InternalFolder : ExportsFolder, pg.ProfileFolder), pg.ProfileName, isInternal: vg.Key.IsInternal))) + .ToArray(); + + var license = new StringBuilder(); + license.Append(@" +# ---------------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for license information. +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is regenerated. +# ---------------------------------------------------------------------------------- +"); + HashSet LicenseSet = new HashSet(); + foreach (var variantGroup in variantGroups) + { + var parameterGroups = variantGroup.ParameterGroups.ToList(); + var isValidProfile = !String.IsNullOrEmpty(variantGroup.ProfileName) && variantGroup.ProfileName != NoProfiles; + var examplesFolder = isValidProfile ? Path.Combine(ExamplesFolder, variantGroup.ProfileName) : ExamplesFolder; + var markdownInfo = new MarkdownHelpInfo(variantGroup, examplesFolder); + List examples = new List(); + foreach (var it in markdownInfo.Examples) + { + examples.Add(it); + } + variantGroup.HelpInfo.Examples = examples.ToArray(); + var sb = new StringBuilder(); + sb.Append($"{Environment.NewLine}"); + sb.Append(variantGroup.ToHelpCommentOutput()); + sb.Append($"function {variantGroup.CmdletName} {{{Environment.NewLine}"); + sb.Append(variantGroup.Aliases.ToAliasOutput()); + sb.Append(variantGroup.OutputTypes.ToOutputTypeOutput()); + sb.Append(variantGroup.ToCmdletBindingOutput()); + sb.Append(variantGroup.ProfileName.ToProfileOutput()); + + sb.Append("param("); + sb.Append($"{(parameterGroups.Any() ? Environment.NewLine : String.Empty)}"); + foreach (var parameterGroup in parameterGroups) + { + var parameters = parameterGroup.HasAllVariants ? parameterGroup.Parameters.Take(1) : parameterGroup.Parameters; + parameters = parameters.Where(p => !p.IsHidden()); + if (!parameters.Any()) + { + continue; + } + foreach (var parameter in parameters) + { + sb.Append(parameter.ToParameterOutput(variantGroup.HasMultipleVariants, parameterGroup.HasAllVariants)); + } + sb.Append(parameterGroup.Aliases.ToAliasOutput(true)); + sb.Append(parameterGroup.HasValidateNotNull.ToValidateNotNullOutput()); + sb.Append(parameterGroup.HasAllowEmptyArray.ToAllowEmptyArray()); + sb.Append(parameterGroup.CompleterInfo.ToArgumentCompleterOutput()); + sb.Append(parameterGroup.OrderCategory.ToParameterCategoryOutput()); + sb.Append(parameterGroup.InfoAttribute.ToInfoOutput(parameterGroup.ParameterType)); + sb.Append(parameterGroup.ToDefaultInfoOutput()); + sb.Append(parameterGroup.ParameterType.ToParameterTypeOutput()); + sb.Append(parameterGroup.Description.ToParameterDescriptionOutput()); + sb.Append(parameterGroup.ParameterName.ToParameterNameOutput(parameterGroups.IndexOf(parameterGroup) == parameterGroups.Count - 1)); + } + sb.Append($"){Environment.NewLine}{Environment.NewLine}"); + + sb.Append(variantGroup.ToBeginOutput()); + sb.Append(variantGroup.ToProcessOutput()); + sb.Append(variantGroup.ToEndOutput()); + + sb.Append($"}}{Environment.NewLine}"); + + Directory.CreateDirectory(variantGroup.OutputFolder); + File.WriteAllText(variantGroup.FilePath, license.ToString()); + File.AppendAllText(variantGroup.FilePath, sb.ToString()); + if (!LicenseSet.Contains(Path.Combine(variantGroup.OutputFolder, "ProxyCmdletDefinitions.ps1"))) + { + // only add license in the header + File.AppendAllText(Path.Combine(variantGroup.OutputFolder, "ProxyCmdletDefinitions.ps1"), license.ToString()); + LicenseSet.Add(Path.Combine(variantGroup.OutputFolder, "ProxyCmdletDefinitions.ps1")); + } + File.AppendAllText(Path.Combine(variantGroup.OutputFolder, "ProxyCmdletDefinitions.ps1"), sb.ToString()); + } + + if (!ExcludeDocs) + { + var moduleInfo = new PsModuleHelpInfo(ModuleName, ModuleGuid, ModuleDescription); + foreach (var variantGroupsByProfile in variantGroups.GroupBy(vg => vg.ProfileName)) + { + var profileName = variantGroupsByProfile.Key; + var isValidProfile = !String.IsNullOrEmpty(profileName) && profileName != NoProfiles; + var docsFolder = isValidProfile ? Path.Combine(DocsFolder, profileName) : DocsFolder; + var examplesFolder = isValidProfile ? Path.Combine(ExamplesFolder, profileName) : ExamplesFolder; + WriteMarkdowns(variantGroupsByProfile, moduleInfo, docsFolder, examplesFolder); + } + } + } + catch (Exception ee) + { + Console.WriteLine($"${ee.GetType().Name}/{ee.StackTrace}"); + throw ee; + } + } + } +} diff --git a/swaggerci/eventgrid/generated/runtime/BuildTime/Cmdlets/ExportPsd1.cs b/swaggerci/eventgrid/generated/runtime/BuildTime/Cmdlets/ExportPsd1.cs new file mode 100644 index 000000000000..2eeb1e427c9a --- /dev/null +++ b/swaggerci/eventgrid/generated/runtime/BuildTime/Cmdlets/ExportPsd1.cs @@ -0,0 +1,191 @@ +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ +using System; +using System.IO; +using System.Linq; +using System.Management.Automation; +using System.Text; +using System.Text.RegularExpressions; +using static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell.PsHelpers; + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell +{ + [Cmdlet(VerbsData.Export, "Psd1")] + [DoNotExport] + public class ExportPsd1 : PSCmdlet + { + [Parameter(Mandatory = true)] + [ValidateNotNullOrEmpty] + public string ExportsFolder { get; set; } + + [Parameter(Mandatory = true)] + [ValidateNotNullOrEmpty] + public string CustomFolder { get; set; } + + [Parameter(Mandatory = true)] + [ValidateNotNullOrEmpty] + public string Psd1Path { get; set; } + + [Parameter(Mandatory = true)] + public Guid ModuleGuid { get; set; } + + private static readonly bool IsAzure = Convert.ToBoolean(@"true"); + private const string CustomFolderRelative = "./custom"; + private const string Indent = Psd1Indent; + private const string Undefined = "undefined"; + private bool IsUndefined(string value) => string.Equals(Undefined, value, StringComparison.OrdinalIgnoreCase); + + protected override void ProcessRecord() + { + try + { + if (!Directory.Exists(ExportsFolder)) + { + throw new ArgumentException($"Exports folder '{ExportsFolder}' does not exist"); + } + + if (!Directory.Exists(CustomFolder)) + { + throw new ArgumentException($"Custom folder '{CustomFolder}' does not exist"); + } + + string version = Convert.ToString(@"0.1.0"); + // Validate the module version should be semantic version + // Following regex is official from https://semver.org/ + Regex rx = new Regex(@"^(0|[1-9]\d*)\.(0|[1-9]\d*)\.(0|[1-9]\d*)(?:-((?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*)(?:\.(?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*))*))?(?:\+([0-9a-zA-Z-]+(?:\.[0-9a-zA-Z-]+)*))?$", RegexOptions.Compiled); + if (rx.Matches(version).Count != 1) + { + throw new ArgumentException("Module-version is not a valid Semantic Version"); + } + + string previewVersion = null; + if (version.Contains('-')) + { + string[] versions = version.Split("-".ToCharArray(), 2); + version = versions[0]; + previewVersion = versions[1]; + } + + var sb = new StringBuilder(); + sb.AppendLine("@{"); + sb.AppendLine($@"{GuidStart} = '{ModuleGuid}'"); + sb.AppendLine($@"{Indent}RootModule = '{"./Az.EventGrid.psm1"}'"); + sb.AppendLine($@"{Indent}ModuleVersion = '{version}'"); + sb.AppendLine($@"{Indent}CompatiblePSEditions = 'Core', 'Desktop'"); + sb.AppendLine($@"{Indent}Author = '{"Microsoft Corporation"}'"); + sb.AppendLine($@"{Indent}CompanyName = '{"Microsoft Corporation"}'"); + sb.AppendLine($@"{Indent}Copyright = '{"Microsoft Corporation. All rights reserved."}'"); + sb.AppendLine($@"{Indent}Description = '{"Microsoft Azure PowerShell: EventGrid cmdlets"}'"); + sb.AppendLine($@"{Indent}PowerShellVersion = '5.1'"); + sb.AppendLine($@"{Indent}DotNetFrameworkVersion = '4.7.2'"); + + // RequiredModules + if (!IsUndefined("undefined")) + { + sb.AppendLine($@"{Indent}RequiredModules = @({"undefined"})"); + } + + // RequiredAssemblies + if (!IsUndefined("undefined")) + { + sb.AppendLine($@"{Indent}RequiredAssemblies = @({"undefined"})"); + } + else + { + sb.AppendLine($@"{Indent}RequiredAssemblies = '{"./bin/Az.EventGrid.private.dll"}'"); + } + + // NestedModules + if (!IsUndefined("undefined")) + { + sb.AppendLine($@"{Indent}NestedModules = @({"undefined"})"); + } + + // FormatsToProcess + if (!IsUndefined("undefined")) + { + sb.AppendLine($@"{Indent}FormatsToProcess = @({"undefined"})"); + } + else + { + var customFormatPs1xmlFiles = Directory.GetFiles(CustomFolder) + .Where(f => f.EndsWith(".format.ps1xml")) + .Select(f => $"{CustomFolderRelative}/{Path.GetFileName(f)}"); + var formatList = customFormatPs1xmlFiles.Prepend("./Az.EventGrid.format.ps1xml").ToPsList(); + sb.AppendLine($@"{Indent}FormatsToProcess = {formatList}"); + } + + // TypesToProcess + if (!IsUndefined("undefined")) + { + sb.AppendLine($@"{Indent}TypesToProcess = @({"undefined"})"); + } + + // ScriptsToProcess + if (!IsUndefined("undefined")) + { + sb.AppendLine($@"{Indent}ScriptsToProcess = @({"undefined"})"); + } + + var functionInfos = GetScriptCmdlets(ExportsFolder).ToArray(); + // FunctionsToExport + if (!IsUndefined("undefined")) + { + sb.AppendLine($@"{Indent}FunctionsToExport = @({"undefined"})"); + } + else + { + var cmdletsList = functionInfos.Select(fi => fi.Name).Distinct().Append("*").ToPsList(); + sb.AppendLine($@"{Indent}FunctionsToExport = {cmdletsList}"); + } + + // AliasesToExport + if (!IsUndefined("undefined")) + { + sb.AppendLine($@"{Indent}AliasesToExport = @({"undefined"})"); + } + else + { + var aliasesList = functionInfos.SelectMany(fi => fi.ScriptBlock.Attributes).ToAliasNames().Append("*").ToPsList(); + sb.AppendLine($@"{Indent}AliasesToExport = {aliasesList}"); + } + + // CmdletsToExport + if (!IsUndefined("undefined")) + { + sb.AppendLine($@"{Indent}CmdletsToExport = @({"undefined"})"); + } + + sb.AppendLine($@"{Indent}PrivateData = @{{"); + sb.AppendLine($@"{Indent}{Indent}PSData = @{{"); + + if (previewVersion != null) + { + sb.AppendLine($@"{Indent}{Indent}{Indent}Prerelease = {previewVersion}"); + } + sb.AppendLine($@"{Indent}{Indent}{Indent}Tags = {"Azure ResourceManager ARM PSModule EventGrid".Split(' ').ToPsList().NullIfEmpty() ?? "''"}"); + sb.AppendLine($@"{Indent}{Indent}{Indent}LicenseUri = '{"https://aka.ms/azps-license"}'"); + sb.AppendLine($@"{Indent}{Indent}{Indent}ProjectUri = '{"https://github.com/Azure/azure-powershell"}'"); + sb.AppendLine($@"{Indent}{Indent}{Indent}ReleaseNotes = ''"); + var profilesList = ""; + if (IsAzure && !String.IsNullOrEmpty(profilesList)) + { + sb.AppendLine($@"{Indent}{Indent}{Indent}Profiles = {profilesList}"); + } + + sb.AppendLine($@"{Indent}{Indent}}}"); + sb.AppendLine($@"{Indent}}}"); + sb.AppendLine(@"}"); + + File.WriteAllText(Psd1Path, sb.ToString()); + } + catch (Exception ee) + { + Console.WriteLine($"${ee.GetType().Name}/{ee.StackTrace}"); + throw ee; + } + } + } +} diff --git a/swaggerci/eventgrid/generated/runtime/BuildTime/Cmdlets/ExportTestStub.cs b/swaggerci/eventgrid/generated/runtime/BuildTime/Cmdlets/ExportTestStub.cs new file mode 100644 index 000000000000..9498f08513ea --- /dev/null +++ b/swaggerci/eventgrid/generated/runtime/BuildTime/Cmdlets/ExportTestStub.cs @@ -0,0 +1,148 @@ +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ +using System; +using System.IO; +using System.Linq; +using System.Management.Automation; +using System.Text; +using static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell.PsProxyOutputExtensions; +using static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell.PsHelpers; + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell +{ + [Cmdlet(VerbsData.Export, "TestStub")] + [DoNotExport] + public class ExportTestStub : PSCmdlet + { + [Parameter(Mandatory = true)] + [ValidateNotNullOrEmpty] + public string ModuleName { get; set; } + + [Parameter(Mandatory = true)] + [ValidateNotNullOrEmpty] + public string ExportsFolder { get; set; } + + [Parameter(Mandatory = true)] + [ValidateNotNullOrEmpty] + public string OutputFolder { get; set; } + + [Parameter] + public SwitchParameter IncludeGenerated { get; set; } + + protected override void ProcessRecord() + { + try + { + if (!Directory.Exists(ExportsFolder)) + { + throw new ArgumentException($"Exports folder '{ExportsFolder}' does not exist"); + } + + var exportDirectories = Directory.GetDirectories(ExportsFolder); + if (!exportDirectories.Any()) + { + exportDirectories = new[] { ExportsFolder }; + } + var utilFile = Path.Combine(OutputFolder, "utils.ps1"); + if (!File.Exists(utilFile)) + { + var sc = new StringBuilder(); + sc.AppendLine(@"function RandomString([bool]$allChars, [int32]$len) { + if ($allChars) { + return -join ((33..126) | Get-Random -Count $len | % {[char]$_}) + } else { + return -join ((48..57) + (97..122) | Get-Random -Count $len | % {[char]$_}) + } +} +$env = @{} +if ($UsePreviousConfigForRecord) { + $previousEnv = Get-Content (Join-Path $PSScriptRoot 'env.json') | ConvertFrom-Json + $previousEnv.psobject.properties | Foreach-Object { $env[$_.Name] = $_.Value } +} +# Add script method called AddWithCache to $env, when useCache is set true, it will try to get the value from the $env first. +# example: $val = $env.AddWithCache('key', $val, $true) +$env | Add-Member -Type ScriptMethod -Value { param( [string]$key, [object]$val, [bool]$useCache) if ($this.Contains($key) -and $useCache) { return $this[$key] } else { $this[$key] = $val; return $val } } -Name 'AddWithCache' +function setupEnv() { + # Preload subscriptionId and tenant from context, which will be used in test + # as default. You could change them if needed. + $env.SubscriptionId = (Get-AzContext).Subscription.Id + $env.Tenant = (Get-AzContext).Tenant.Id + # For any resources you created for test, you should add it to $env here. + $envFile = 'env.json' + if ($TestMode -eq 'live') { + $envFile = 'localEnv.json' + } + set-content -Path (Join-Path $PSScriptRoot $envFile) -Value (ConvertTo-Json $env) +} +function cleanupEnv() { + # Clean resources you create for testing +} +"); + File.WriteAllText(utilFile, sc.ToString()); + } + foreach (var exportDirectory in exportDirectories) + { + var outputFolder = OutputFolder; + if (exportDirectory != ExportsFolder) + { + outputFolder = Path.Combine(OutputFolder, Path.GetFileName(exportDirectory)); + Directory.CreateDirectory(outputFolder); + } + + var variantGroups = GetScriptCmdlets(exportDirectory) + .SelectMany(fi => fi.ToVariants()) + .Where(v => !v.IsDoNotExport) + .GroupBy(v => v.CmdletName) + .Select(vg => new VariantGroup(ModuleName, vg.Key, vg.Select(v => v).ToArray(), outputFolder, isTest: true)) + .Where(vtg => !File.Exists(vtg.FilePath) && (IncludeGenerated || !vtg.IsGenerated)); + + foreach (var variantGroup in variantGroups) + { + var sb = new StringBuilder(); + sb.AppendLine($"if(($null -eq $TestName) -or ($TestName -contains '{variantGroup.CmdletName}'))"); + sb.AppendLine(@"{ + $loadEnvPath = Join-Path $PSScriptRoot 'loadEnv.ps1' + if (-Not (Test-Path -Path $loadEnvPath)) { + $loadEnvPath = Join-Path $PSScriptRoot '..\loadEnv.ps1' + } + . ($loadEnvPath)" +); + sb.AppendLine($@" $TestRecordingFile = Join-Path $PSScriptRoot '{variantGroup.CmdletName}.Recording.json'"); + sb.AppendLine(@" $currentPath = $PSScriptRoot + while(-not $mockingPath) { + $mockingPath = Get-ChildItem -Path $currentPath -Recurse -Include 'HttpPipelineMocking.ps1' -File + $currentPath = Split-Path -Path $currentPath -Parent + } + . ($mockingPath | Select-Object -First 1).FullName +} +"); + + + sb.AppendLine($"Describe '{variantGroup.CmdletName}' {{"); + var variants = variantGroup.Variants + .Where(v => IncludeGenerated || !v.Attributes.OfType().Any()) + .ToList(); + + foreach (var variant in variants) + { + sb.AppendLine($"{Indent}It '{variant.VariantName}' -skip {{"); + sb.AppendLine($"{Indent}{Indent}{{ throw [System.NotImplementedException] }} | Should -Not -Throw"); + var variantSeparator = variants.IndexOf(variant) == variants.Count - 1 ? String.Empty : Environment.NewLine; + sb.AppendLine($"{Indent}}}{variantSeparator}"); + } + sb.AppendLine("}"); + + File.WriteAllText(variantGroup.FilePath, sb.ToString()); + } + } + } + catch (Exception ee) + { + Console.WriteLine($"${ee.GetType().Name}/{ee.StackTrace}"); + throw ee; + } + } + } +} diff --git a/swaggerci/eventgrid/generated/runtime/BuildTime/Cmdlets/GetCommonParameter.cs b/swaggerci/eventgrid/generated/runtime/BuildTime/Cmdlets/GetCommonParameter.cs new file mode 100644 index 000000000000..e0955abf3736 --- /dev/null +++ b/swaggerci/eventgrid/generated/runtime/BuildTime/Cmdlets/GetCommonParameter.cs @@ -0,0 +1,52 @@ +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ +using System.Collections.Generic; +using System.Linq; +using System.Management.Automation; + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell +{ + [Cmdlet(VerbsCommon.Get, "CommonParameter")] + [OutputType(typeof(Dictionary))] + [DoNotExport] + public class GetCommonParameter : PSCmdlet + { + [Parameter(Mandatory = true)] + [ValidateNotNullOrEmpty] + public PSCmdlet PSCmdlet { get; set; } + + [Parameter(Mandatory = true)] + [ValidateNotNullOrEmpty] + public Dictionary PSBoundParameter { get; set; } + + protected override void ProcessRecord() + { + try + { + var variants = PSCmdlet.MyInvocation.MyCommand.ToVariants(); + var commonParameterNames = variants.ToParameterGroups() + .Where(pg => pg.OrderCategory == ParameterCategory.Azure || pg.OrderCategory == ParameterCategory.Runtime) + .Select(pg => pg.ParameterName); + if (variants.Any(v => v.SupportsShouldProcess)) + { + commonParameterNames = commonParameterNames.Append("Confirm").Append("WhatIf"); + } + if (variants.Any(v => v.SupportsPaging)) + { + commonParameterNames = commonParameterNames.Append("First").Append("Skip").Append("IncludeTotalCount"); + } + + var names = commonParameterNames.ToArray(); + var keys = PSBoundParameter.Keys.Where(k => names.Contains(k)); + WriteObject(keys.ToDictionary(key => key, key => PSBoundParameter[key]), true); + } + catch (System.Exception ee) + { + System.Console.WriteLine($"${ee.GetType().Name}/{ee.StackTrace}"); + throw ee; + } + } + } +} diff --git a/swaggerci/eventgrid/generated/runtime/BuildTime/Cmdlets/GetModuleGuid.cs b/swaggerci/eventgrid/generated/runtime/BuildTime/Cmdlets/GetModuleGuid.cs new file mode 100644 index 000000000000..215b554acf94 --- /dev/null +++ b/swaggerci/eventgrid/generated/runtime/BuildTime/Cmdlets/GetModuleGuid.cs @@ -0,0 +1,31 @@ +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ +using System.Management.Automation; +using static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell.PsHelpers; + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell +{ + [Cmdlet(VerbsCommon.Get, "ModuleGuid")] + [DoNotExport] + public class GetModuleGuid : PSCmdlet + { + [Parameter(Mandatory = true)] + [ValidateNotNullOrEmpty] + public string Psd1Path { get; set; } + + protected override void ProcessRecord() + { + try + { + WriteObject(ReadGuidFromPsd1(Psd1Path)); + } + catch (System.Exception ee) + { + System.Console.WriteLine($"${ee.GetType().Name}/{ee.StackTrace}"); + throw ee; + } + } + } +} diff --git a/swaggerci/eventgrid/generated/runtime/BuildTime/Cmdlets/GetScriptCmdlet.cs b/swaggerci/eventgrid/generated/runtime/BuildTime/Cmdlets/GetScriptCmdlet.cs new file mode 100644 index 000000000000..7b1be73526bb --- /dev/null +++ b/swaggerci/eventgrid/generated/runtime/BuildTime/Cmdlets/GetScriptCmdlet.cs @@ -0,0 +1,54 @@ +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ +using System.Linq; +using System.Management.Automation; +using static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell.PsHelpers; + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell +{ + [Cmdlet(VerbsCommon.Get, "ScriptCmdlet")] + [OutputType(typeof(string[]))] + [DoNotExport] + public class GetScriptCmdlet : PSCmdlet + { + [Parameter(Mandatory = true)] + [ValidateNotNullOrEmpty] + public string ScriptFolder { get; set; } + + [Parameter] + public SwitchParameter IncludeDoNotExport { get; set; } + + [Parameter] + public SwitchParameter AsAlias { get; set; } + + [Parameter] + public SwitchParameter AsFunctionInfo { get; set; } + + protected override void ProcessRecord() + { + try + { + var functionInfos = GetScriptCmdlets(this, ScriptFolder) + .Where(fi => IncludeDoNotExport || !fi.ScriptBlock.Attributes.OfType().Any()) + .ToArray(); + if (AsFunctionInfo) + { + WriteObject(functionInfos, true); + return; + } + var aliases = functionInfos.SelectMany(i => i.ScriptBlock.Attributes).ToAliasNames(); + var names = functionInfos.Select(fi => fi.Name).Distinct(); + var output = (AsAlias ? aliases : names).DefaultIfEmpty("''").ToArray(); + WriteObject(output, true); + } + catch (System.Exception ee) + { + System.Console.Error.WriteLine($"{ee.GetType().Name}: {ee.Message}"); + System.Console.Error.WriteLine(ee.StackTrace); + throw ee; + } + } + } +} diff --git a/swaggerci/eventgrid/generated/runtime/BuildTime/CollectionExtensions.cs b/swaggerci/eventgrid/generated/runtime/BuildTime/CollectionExtensions.cs new file mode 100644 index 000000000000..e479a639816f --- /dev/null +++ b/swaggerci/eventgrid/generated/runtime/BuildTime/CollectionExtensions.cs @@ -0,0 +1,20 @@ +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ +using System; +using System.Collections.Generic; +using System.Linq; + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell +{ + internal static class CollectionExtensions + { + public static T[] NullIfEmpty(this T[] collection) => (collection?.Any() ?? false) ? collection : null; + public static IEnumerable EmptyIfNull(this IEnumerable collection) => collection ?? Enumerable.Empty(); + + // https://stackoverflow.com/a/4158364/294804 + public static IEnumerable DistinctBy(this IEnumerable collection, Func selector) => + collection.GroupBy(selector).Select(group => group.First()); + } +} diff --git a/swaggerci/eventgrid/generated/runtime/BuildTime/MarkdownRenderer.cs b/swaggerci/eventgrid/generated/runtime/BuildTime/MarkdownRenderer.cs new file mode 100644 index 000000000000..21e0caed7fb7 --- /dev/null +++ b/swaggerci/eventgrid/generated/runtime/BuildTime/MarkdownRenderer.cs @@ -0,0 +1,114 @@ +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ +using System; +using System.Collections.Generic; +using System.IO; +using System.Linq; +using System.Text; +using static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell.MarkdownTypesExtensions; +using static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell.PsProxyOutputExtensions; + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell +{ + internal static class MarkdownRenderer + { + public static void WriteMarkdowns(IEnumerable variantGroups, PsModuleHelpInfo moduleHelpInfo, string docsFolder, string examplesFolder) + { + Directory.CreateDirectory(docsFolder); + var markdownInfos = variantGroups.Where(vg => !vg.IsInternal).Select(vg => new MarkdownHelpInfo(vg, examplesFolder)).OrderBy(mhi => mhi.CmdletName).ToArray(); + + foreach (var markdownInfo in markdownInfos) + { + var sb = new StringBuilder(); + sb.Append(markdownInfo.ToHelpMetadataOutput()); + sb.Append($"# {markdownInfo.CmdletName}{Environment.NewLine}{Environment.NewLine}"); + sb.Append($"## SYNOPSIS{Environment.NewLine}{markdownInfo.Synopsis.ToDescriptionFormat()}{Environment.NewLine}{Environment.NewLine}"); + + sb.Append($"## SYNTAX{Environment.NewLine}{Environment.NewLine}"); + var hasMultipleParameterSets = markdownInfo.SyntaxInfos.Length > 1; + foreach (var syntaxInfo in markdownInfo.SyntaxInfos) + { + sb.Append(syntaxInfo.ToHelpSyntaxOutput(hasMultipleParameterSets)); + } + + sb.Append($"## DESCRIPTION{Environment.NewLine}{markdownInfo.Description.ToDescriptionFormat()}{Environment.NewLine}{Environment.NewLine}"); + + sb.Append($"## EXAMPLES{Environment.NewLine}{Environment.NewLine}"); + foreach (var exampleInfo in markdownInfo.Examples) + { + sb.Append(exampleInfo.ToHelpExampleOutput()); + } + + sb.Append($"## PARAMETERS{Environment.NewLine}{Environment.NewLine}"); + foreach (var parameter in markdownInfo.Parameters) + { + sb.Append(parameter.ToHelpParameterOutput()); + } + if (markdownInfo.SupportsShouldProcess) + { + foreach (var parameter in SupportsShouldProcessParameters) + { + sb.Append(parameter.ToHelpParameterOutput()); + } + } + + sb.Append($"### CommonParameters{Environment.NewLine}This cmdlet supports the common parameters: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutVariable, -OutBuffer, -PipelineVariable, -Verbose, -WarningAction, and -WarningVariable. For more information, see [about_CommonParameters](http://go.microsoft.com/fwlink/?LinkID=113216).{Environment.NewLine}{Environment.NewLine}"); + + sb.Append($"## INPUTS{Environment.NewLine}{Environment.NewLine}"); + foreach (var input in markdownInfo.Inputs) + { + sb.Append($"### {input}{Environment.NewLine}{Environment.NewLine}"); + } + + sb.Append($"## OUTPUTS{Environment.NewLine}{Environment.NewLine}"); + foreach (var output in markdownInfo.Outputs) + { + sb.Append($"### {output}{Environment.NewLine}{Environment.NewLine}"); + } + + sb.Append($"## NOTES{Environment.NewLine}{Environment.NewLine}"); + sb.Append($"ALIASES{Environment.NewLine}{Environment.NewLine}"); + foreach (var alias in markdownInfo.Aliases) + { + sb.Append($"{alias}{Environment.NewLine}{Environment.NewLine}"); + } + if (markdownInfo.ComplexInterfaceInfos.Any()) + { + sb.Append($"{ComplexParameterHeader}{Environment.NewLine}"); + } + foreach (var complexInterfaceInfo in markdownInfo.ComplexInterfaceInfos) + { + sb.Append($"{complexInterfaceInfo.ToNoteOutput(includeDashes: true, includeBackticks: true)}{Environment.NewLine}{Environment.NewLine}"); + } + + sb.Append($"## RELATED LINKS{Environment.NewLine}{Environment.NewLine}"); + foreach (var relatedLink in markdownInfo.RelatedLinks) + { + sb.Append($"{relatedLink}{Environment.NewLine}{Environment.NewLine}"); + } + + File.WriteAllText(Path.Combine(docsFolder, $"{markdownInfo.CmdletName}.md"), sb.ToString()); + } + + WriteModulePage(moduleHelpInfo, markdownInfos, docsFolder); + } + + private static void WriteModulePage(PsModuleHelpInfo moduleInfo, MarkdownHelpInfo[] markdownInfos, string docsFolder) + { + var sb = new StringBuilder(); + sb.Append(moduleInfo.ToModulePageMetadataOutput()); + sb.Append($"# {moduleInfo.Name} Module{Environment.NewLine}"); + sb.Append($"## Description{Environment.NewLine}{moduleInfo.Description.ToDescriptionFormat()}{Environment.NewLine}{Environment.NewLine}"); + + sb.Append($"## {moduleInfo.Name} Cmdlets{Environment.NewLine}"); + foreach (var markdownInfo in markdownInfos) + { + sb.Append(markdownInfo.ToModulePageCmdletOutput()); + } + + File.WriteAllText(Path.Combine(docsFolder, $"{moduleInfo.Name}.md"), sb.ToString()); + } + } +} diff --git a/swaggerci/eventgrid/generated/runtime/BuildTime/Models/PsFormatTypes.cs b/swaggerci/eventgrid/generated/runtime/BuildTime/Models/PsFormatTypes.cs new file mode 100644 index 000000000000..515098d5e75b --- /dev/null +++ b/swaggerci/eventgrid/generated/runtime/BuildTime/Models/PsFormatTypes.cs @@ -0,0 +1,138 @@ +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Reflection; +using System.Xml.Serialization; + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell +{ + internal class ViewParameters + { + public Type Type { get; } + public IEnumerable Properties { get; } + + public ViewParameters(Type type, IEnumerable properties) + { + Type = type; + Properties = properties; + } + } + + internal class PropertyFormat + { + public PropertyInfo Property { get; } + public FormatTableAttribute FormatTable { get; } + + public int? Index { get; } + public string Label { get; } + public int? Width { get; } + public PropertyOrigin? Origin { get; } + + public PropertyFormat(PropertyInfo propertyInfo) + { + Property = propertyInfo; + FormatTable = Property.GetCustomAttributes().FirstOrDefault(); + var origin = Property.GetCustomAttributes().FirstOrDefault(); + + Index = FormatTable?.HasIndex ?? false ? (int?)FormatTable.Index : null; + Label = FormatTable?.Label ?? propertyInfo.Name; + Width = FormatTable?.HasWidth ?? false ? (int?)FormatTable.Width : null; + // If we have an index, we don't want to use Origin. + Origin = FormatTable?.HasIndex ?? false ? null : origin?.Origin; + } + } + + [Serializable] + [XmlRoot(nameof(Configuration))] + public class Configuration + { + [XmlElement("ViewDefinitions")] + public ViewDefinitions ViewDefinitions { get; set; } + } + + [Serializable] + public class ViewDefinitions + { + //https://stackoverflow.com/a/10518657/294804 + [XmlElement("View")] + public List Views { get; set; } + } + + [Serializable] + public class View + { + [XmlElement(nameof(Name))] + public string Name { get; set; } + [XmlElement(nameof(ViewSelectedBy))] + public ViewSelectedBy ViewSelectedBy { get; set; } + [XmlElement(nameof(TableControl))] + public TableControl TableControl { get; set; } + } + + [Serializable] + public class ViewSelectedBy + { + [XmlElement(nameof(TypeName))] + public string TypeName { get; set; } + } + + [Serializable] + public class TableControl + { + [XmlElement(nameof(TableHeaders))] + public TableHeaders TableHeaders { get; set; } + [XmlElement(nameof(TableRowEntries))] + public TableRowEntries TableRowEntries { get; set; } + } + + [Serializable] + public class TableHeaders + { + [XmlElement("TableColumnHeader")] + public List TableColumnHeaders { get; set; } + } + + [Serializable] + public class TableColumnHeader + { + [XmlElement(nameof(Label))] + public string Label { get; set; } + [XmlElement(nameof(Width))] + public int? Width { get; set; } + + //https://stackoverflow.com/a/4095225/294804 + public bool ShouldSerializeWidth() => Width.HasValue; + } + + [Serializable] + public class TableRowEntries + { + [XmlElement(nameof(TableRowEntry))] + public TableRowEntry TableRowEntry { get; set; } + } + + [Serializable] + public class TableRowEntry + { + [XmlElement(nameof(TableColumnItems))] + public TableColumnItems TableColumnItems { get; set; } + } + + [Serializable] + public class TableColumnItems + { + [XmlElement("TableColumnItem")] + public List TableItems { get; set; } + } + + [Serializable] + public class TableColumnItem + { + [XmlElement(nameof(PropertyName))] + public string PropertyName { get; set; } + } +} diff --git a/swaggerci/eventgrid/generated/runtime/BuildTime/Models/PsHelpMarkdownOutputs.cs b/swaggerci/eventgrid/generated/runtime/BuildTime/Models/PsHelpMarkdownOutputs.cs new file mode 100644 index 000000000000..8cd285b80d4b --- /dev/null +++ b/swaggerci/eventgrid/generated/runtime/BuildTime/Models/PsHelpMarkdownOutputs.cs @@ -0,0 +1,199 @@ +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ +using System; +using System.Linq; +using System.Management.Automation; +using static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell.PsHelpOutputExtensions; + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell +{ + internal class HelpMetadataOutput + { + public MarkdownHelpInfo HelpInfo { get; } + + public HelpMetadataOutput(MarkdownHelpInfo helpInfo) + { + HelpInfo = helpInfo; + } + + public override string ToString() => $@"--- +external help file:{(!String.IsNullOrEmpty(HelpInfo.ExternalHelpFilename) ? $" {HelpInfo.ExternalHelpFilename}" : String.Empty)} +Module Name: {HelpInfo.ModuleName} +online version: {HelpInfo.OnlineVersion} +schema: {HelpInfo.Schema.ToString(3)} +--- + +"; + } + + internal class HelpSyntaxOutput + { + public MarkdownSyntaxHelpInfo SyntaxInfo { get; } + public bool HasMultipleParameterSets { get; } + + public HelpSyntaxOutput(MarkdownSyntaxHelpInfo syntaxInfo, bool hasMultipleParameterSets) + { + SyntaxInfo = syntaxInfo; + HasMultipleParameterSets = hasMultipleParameterSets; + } + + public override string ToString() + { + var psnText = HasMultipleParameterSets ? $"### {SyntaxInfo.ParameterSetName}{(SyntaxInfo.IsDefault ? " (Default)" : String.Empty)}{Environment.NewLine}" : String.Empty; + return $@"{psnText}``` +{SyntaxInfo.SyntaxText} +``` + +"; + } + } + + internal class HelpExampleOutput + { + private string ExampleTemplate = + "{0}{1}" + Environment.NewLine + + "{2}" + Environment.NewLine + "{3}" + Environment.NewLine + "{4}" + Environment.NewLine + Environment.NewLine + + "{5}" + Environment.NewLine + Environment.NewLine; + + private string ExampleTemplateWithOutput = + "{0}{1}" + Environment.NewLine + + "{2}" + Environment.NewLine + "{3}" + Environment.NewLine + "{4}" + Environment.NewLine + Environment.NewLine + + "{5}" + Environment.NewLine + "{6}" + Environment.NewLine + "{7}" + Environment.NewLine + Environment.NewLine + + "{8}" + Environment.NewLine + Environment.NewLine; + + public MarkdownExampleHelpInfo ExampleInfo { get; } + + public HelpExampleOutput(MarkdownExampleHelpInfo exampleInfo) + { + ExampleInfo = exampleInfo; + } + + public override string ToString() + { + if (string.IsNullOrEmpty(ExampleInfo.Output)) + { + return string.Format(ExampleTemplate, + ExampleNameHeader, ExampleInfo.Name, + ExampleCodeHeader, ExampleInfo.Code, ExampleCodeFooter, + ExampleInfo.Description.ToDescriptionFormat()); + } + else + { + return string.Format(ExampleTemplateWithOutput, + ExampleNameHeader, ExampleInfo.Name, + ExampleCodeHeader, ExampleInfo.Code, ExampleCodeFooter, + ExampleOutputHeader, ExampleInfo.Output, ExampleOutputFooter, + ExampleInfo.Description.ToDescriptionFormat()); ; + } + } + } + + internal class HelpParameterOutput + { + public MarkdownParameterHelpInfo ParameterInfo { get; } + + public HelpParameterOutput(MarkdownParameterHelpInfo parameterInfo) + { + ParameterInfo = parameterInfo; + } + + public override string ToString() + { + var pipelineInputTypes = new[] + { + ParameterInfo.AcceptsPipelineByValue ? "ByValue" : String.Empty, + ParameterInfo.AcceptsPipelineByPropertyName ? "ByPropertyName" : String.Empty + }.JoinIgnoreEmpty(", "); + var pipelineInput = ParameterInfo.AcceptsPipelineByValue || ParameterInfo.AcceptsPipelineByPropertyName + ? $@"{true} ({pipelineInputTypes})" + : false.ToString(); + + return $@"### -{ParameterInfo.Name} +{ParameterInfo.Description.ToDescriptionFormat()} + +```yaml +Type: {ParameterInfo.Type.FullName} +Parameter Sets: {(ParameterInfo.HasAllParameterSets ? "(All)" : ParameterInfo.ParameterSetNames.JoinIgnoreEmpty(", "))} +Aliases:{(ParameterInfo.Aliases.Any() ? $" {ParameterInfo.Aliases.JoinIgnoreEmpty(", ")}" : String.Empty)} + +Required: {ParameterInfo.IsRequired} +Position: {ParameterInfo.Position} +Default value: {ParameterInfo.DefaultValue} +Accept pipeline input: {pipelineInput} +Accept wildcard characters: {ParameterInfo.AcceptsWildcardCharacters} +``` + +"; + } + } + + internal class ModulePageMetadataOutput + { + public PsModuleHelpInfo ModuleInfo { get; } + + private static string HelpLinkPrefix { get; } = @"https://docs.microsoft.com/en-us/powershell/module/"; + + public ModulePageMetadataOutput(PsModuleHelpInfo moduleInfo) + { + ModuleInfo = moduleInfo; + } + + public override string ToString() => $@"--- +Module Name: {ModuleInfo.Name} +Module Guid: {ModuleInfo.Guid} +Download Help Link: {HelpLinkPrefix}{ModuleInfo.Name.ToLowerInvariant()} +Help Version: 1.0.0.0 +Locale: en-US +--- + +"; + } + + internal class ModulePageCmdletOutput + { + public MarkdownHelpInfo HelpInfo { get; } + + public ModulePageCmdletOutput(MarkdownHelpInfo helpInfo) + { + HelpInfo = helpInfo; + } + + public override string ToString() => $@"### [{HelpInfo.CmdletName}]({HelpInfo.CmdletName}.md) +{HelpInfo.Synopsis.ToDescriptionFormat()} + +"; + } + + internal static class PsHelpOutputExtensions + { + public static string EscapeAngleBrackets(this string text) => text?.Replace("<", @"\<").Replace(">", @"\>"); + public static string ReplaceSentenceEndWithNewline(this string text) => text?.Replace(". ", $".{Environment.NewLine}").Replace(". ", $".{Environment.NewLine}"); + public static string ReplaceBrWithNewline(this string text) => text?.Replace("
", $"{Environment.NewLine}"); + public static string ToDescriptionFormat(this string text, bool escapeAngleBrackets = true) + { + var description = text?.ReplaceBrWithNewline(); + description = escapeAngleBrackets ? description?.EscapeAngleBrackets() : description; + return description?.ReplaceSentenceEndWithNewline().Trim(); + } + + public const string ExampleNameHeader = "### "; + public const string ExampleCodeHeader = "```powershell"; + public const string ExampleCodeFooter = "```"; + public const string ExampleOutputHeader = "```output"; + public const string ExampleOutputFooter = "```"; + + public static HelpMetadataOutput ToHelpMetadataOutput(this MarkdownHelpInfo helpInfo) => new HelpMetadataOutput(helpInfo); + + public static HelpSyntaxOutput ToHelpSyntaxOutput(this MarkdownSyntaxHelpInfo syntaxInfo, bool hasMultipleParameterSets) => new HelpSyntaxOutput(syntaxInfo, hasMultipleParameterSets); + + public static HelpExampleOutput ToHelpExampleOutput(this MarkdownExampleHelpInfo exampleInfo) => new HelpExampleOutput(exampleInfo); + + public static HelpParameterOutput ToHelpParameterOutput(this MarkdownParameterHelpInfo parameterInfo) => new HelpParameterOutput(parameterInfo); + + public static ModulePageMetadataOutput ToModulePageMetadataOutput(this PsModuleHelpInfo moduleInfo) => new ModulePageMetadataOutput(moduleInfo); + + public static ModulePageCmdletOutput ToModulePageCmdletOutput(this MarkdownHelpInfo helpInfo) => new ModulePageCmdletOutput(helpInfo); + } +} diff --git a/swaggerci/eventgrid/generated/runtime/BuildTime/Models/PsHelpTypes.cs b/swaggerci/eventgrid/generated/runtime/BuildTime/Models/PsHelpTypes.cs new file mode 100644 index 000000000000..a264a4df09ff --- /dev/null +++ b/swaggerci/eventgrid/generated/runtime/BuildTime/Models/PsHelpTypes.cs @@ -0,0 +1,202 @@ +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Management.Automation; + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell +{ + internal class PsHelpInfo + { + public string CmdletName { get; } + public string ModuleName { get; } + public string Synopsis { get; } + public string Description { get; } + public string AlertText { get; } + public string Category { get; } + public PsHelpLinkInfo OnlineVersion { get; } + public PsHelpLinkInfo[] RelatedLinks { get; } + public bool? HasCommonParameters { get; } + public bool? HasWorkflowCommonParameters { get; } + + public PsHelpTypeInfo[] InputTypes { get; } + public PsHelpTypeInfo[] OutputTypes { get; } + public PsHelpExampleInfo[] Examples { get; set; } + public string[] Aliases { get; } + + public PsParameterHelpInfo[] Parameters { get; } + public PsHelpSyntaxInfo[] Syntax { get; } + + public object Component { get; } + public object Functionality { get; } + public object PsSnapIn { get; } + public object Role { get; } + public string NonTerminatingErrors { get; } + + public PsHelpInfo(PSObject helpObject = null) + { + helpObject = helpObject ?? new PSObject(); + CmdletName = helpObject.GetProperty("Name").NullIfEmpty() ?? helpObject.GetNestedProperty("details", "name"); + ModuleName = helpObject.GetProperty("ModuleName"); + Synopsis = helpObject.GetProperty("Synopsis"); + Description = helpObject.GetProperty("description").EmptyIfNull().ToDescriptionText().NullIfEmpty() ?? + helpObject.GetNestedProperty("details", "description").EmptyIfNull().ToDescriptionText(); + AlertText = helpObject.GetNestedProperty("alertSet", "alert").EmptyIfNull().ToDescriptionText(); + Category = helpObject.GetProperty("Category"); + HasCommonParameters = helpObject.GetProperty("CommonParameters").ToNullableBool(); + HasWorkflowCommonParameters = helpObject.GetProperty("WorkflowCommonParameters").ToNullableBool(); + + var links = helpObject.GetNestedProperty("relatedLinks", "navigationLink").EmptyIfNull().Select(nl => nl.ToLinkInfo()).ToArray(); + OnlineVersion = links.FirstOrDefault(l => l.Text?.ToLowerInvariant().StartsWith("online version:") ?? links.Length == 1); + RelatedLinks = links.Where(l => !l.Text?.ToLowerInvariant().StartsWith("online version:") ?? links.Length != 1).ToArray(); + + InputTypes = helpObject.GetNestedProperty("inputTypes", "inputType").EmptyIfNull().Select(it => it.ToTypeInfo()).ToArray(); + OutputTypes = helpObject.GetNestedProperty("returnValues", "returnValue").EmptyIfNull().Select(rv => rv.ToTypeInfo()).ToArray(); + Examples = helpObject.GetNestedProperty("examples", "example").EmptyIfNull().Select(e => e.ToExampleInfo()).ToArray(); + Aliases = helpObject.GetProperty("aliases").EmptyIfNull().Split(new[] { Environment.NewLine }, StringSplitOptions.RemoveEmptyEntries); + + Parameters = helpObject.GetNestedProperty("parameters", "parameter").EmptyIfNull().Select(p => p.ToPsParameterHelpInfo()).ToArray(); + Syntax = helpObject.GetNestedProperty("syntax", "syntaxItem").EmptyIfNull().Select(si => si.ToSyntaxInfo()).ToArray(); + + Component = helpObject.GetProperty("Component"); + Functionality = helpObject.GetProperty("Functionality"); + PsSnapIn = helpObject.GetProperty("PSSnapIn"); + Role = helpObject.GetProperty("Role"); + NonTerminatingErrors = helpObject.GetProperty("nonTerminatingErrors"); + } + } + + internal class PsHelpTypeInfo + { + public string Name { get; } + public string Description { get; } + + public PsHelpTypeInfo(PSObject typeObject) + { + Name = typeObject.GetNestedProperty("type", "name").EmptyIfNull().Trim(); + Description = typeObject.GetProperty("description").EmptyIfNull().ToDescriptionText(); + } + } + + internal class PsHelpLinkInfo + { + public string Uri { get; } + public string Text { get; } + + public PsHelpLinkInfo(PSObject linkObject) + { + Uri = linkObject.GetProperty("uri"); + Text = linkObject.GetProperty("linkText"); + } + } + + internal class PsHelpSyntaxInfo + { + public string CmdletName { get; } + public PsParameterHelpInfo[] Parameters { get; } + + public PsHelpSyntaxInfo(PSObject syntaxObject) + { + CmdletName = syntaxObject.GetProperty("name"); + Parameters = syntaxObject.GetProperty("parameter").EmptyIfNull().Select(p => p.ToPsParameterHelpInfo()).ToArray(); + } + } + + internal class PsHelpExampleInfo + { + public string Title { get; } + public string Code { get; } + public string Output { get; } + public string Remarks { get; } + + public PsHelpExampleInfo(PSObject exampleObject) + { + Title = exampleObject.GetProperty("title"); + Code = exampleObject.GetProperty("code"); + Output = exampleObject.GetProperty("output"); + Remarks = exampleObject.GetProperty("remarks").EmptyIfNull().ToDescriptionText(); + } + public PsHelpExampleInfo(MarkdownExampleHelpInfo markdownExample) + { + Title = markdownExample.Name; + Code = markdownExample.Code; + Output = markdownExample.Output; + Remarks = markdownExample.Description; + } + + public static implicit operator PsHelpExampleInfo(MarkdownExampleHelpInfo markdownExample) => new PsHelpExampleInfo(markdownExample); + } + + internal class PsParameterHelpInfo + { + public string DefaultValueAsString { get; } + + public string Name { get; } + public string TypeName { get; } + public string Description { get; } + public string SupportsPipelineInput { get; } + public string PositionText { get; } + public string[] ParameterSetNames { get; } + public string[] Aliases { get; } + + public bool? SupportsGlobbing { get; } + public bool? IsRequired { get; } + public bool? IsVariableLength { get; } + public bool? IsDynamic { get; } + + public PsParameterHelpInfo(PSObject parameterHelpObject = null) + { + parameterHelpObject = parameterHelpObject ?? new PSObject(); + DefaultValueAsString = parameterHelpObject.GetProperty("defaultValue"); + Name = parameterHelpObject.GetProperty("name"); + TypeName = parameterHelpObject.GetProperty("parameterValue").NullIfEmpty() ?? parameterHelpObject.GetNestedProperty("type", "name"); + Description = parameterHelpObject.GetProperty("Description").EmptyIfNull().ToDescriptionText(); + SupportsPipelineInput = parameterHelpObject.GetProperty("pipelineInput"); + PositionText = parameterHelpObject.GetProperty("position"); + ParameterSetNames = parameterHelpObject.GetProperty("parameterSetName").EmptyIfNull().Split(new[] { ", " }, StringSplitOptions.RemoveEmptyEntries); + Aliases = parameterHelpObject.GetProperty("aliases").EmptyIfNull().Split(new[] { ", " }, StringSplitOptions.RemoveEmptyEntries); + + SupportsGlobbing = parameterHelpObject.GetProperty("globbing").ToNullableBool(); + IsRequired = parameterHelpObject.GetProperty("required").ToNullableBool(); + IsVariableLength = parameterHelpObject.GetProperty("variableLength").ToNullableBool(); + IsDynamic = parameterHelpObject.GetProperty("isDynamic").ToNullableBool(); + } + } + + internal class PsModuleHelpInfo + { + public string Name { get; } + public Guid Guid { get; } + public string Description { get; } + + public PsModuleHelpInfo(PSModuleInfo moduleInfo) + : this(moduleInfo?.Name ?? String.Empty, moduleInfo?.Guid ?? Guid.NewGuid(), moduleInfo?.Description ?? String.Empty) + { + } + + public PsModuleHelpInfo(string name, Guid guid, string description) + { + Name = name; + Guid = guid; + Description = description; + } + } + + internal static class HelpTypesExtensions + { + public static PsHelpInfo ToPsHelpInfo(this PSObject helpObject) => new PsHelpInfo(helpObject); + public static PsParameterHelpInfo ToPsParameterHelpInfo(this PSObject parameterHelpObject) => new PsParameterHelpInfo(parameterHelpObject); + + public static string ToDescriptionText(this IEnumerable descriptionObject) => descriptionObject != null + ? String.Join(Environment.NewLine, descriptionObject.Select(dl => dl.GetProperty("Text").EmptyIfNull())).NullIfWhiteSpace() + : null; + public static PsHelpTypeInfo ToTypeInfo(this PSObject typeObject) => new PsHelpTypeInfo(typeObject); + public static PsHelpExampleInfo ToExampleInfo(this PSObject exampleObject) => new PsHelpExampleInfo(exampleObject); + public static PsHelpLinkInfo ToLinkInfo(this PSObject linkObject) => new PsHelpLinkInfo(linkObject); + public static PsHelpSyntaxInfo ToSyntaxInfo(this PSObject syntaxObject) => new PsHelpSyntaxInfo(syntaxObject); + public static PsModuleHelpInfo ToModuleInfo(this PSModuleInfo moduleInfo) => new PsModuleHelpInfo(moduleInfo); + } +} diff --git a/swaggerci/eventgrid/generated/runtime/BuildTime/Models/PsMarkdownTypes.cs b/swaggerci/eventgrid/generated/runtime/BuildTime/Models/PsMarkdownTypes.cs new file mode 100644 index 000000000000..fe49a6d0cac2 --- /dev/null +++ b/swaggerci/eventgrid/generated/runtime/BuildTime/Models/PsMarkdownTypes.cs @@ -0,0 +1,294 @@ +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ +using System; +using System.Collections.Generic; +using System.IO; +using System.Linq; +using System.Management.Automation; +using static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell.MarkdownTypesExtensions; +using static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell.PsHelpOutputExtensions; + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell +{ + internal class MarkdownHelpInfo + { + public string ExternalHelpFilename { get; } + public string ModuleName { get; } + public string OnlineVersion { get; } + public Version Schema { get; } + + public string CmdletName { get; } + public string[] Aliases { get; } + public string Synopsis { get; } + public string Description { get; } + + public MarkdownSyntaxHelpInfo[] SyntaxInfos { get; } + public MarkdownExampleHelpInfo[] Examples { get; } + public MarkdownParameterHelpInfo[] Parameters { get; } + + public string[] Inputs { get; } + public string[] Outputs { get; } + public ComplexInterfaceInfo[] ComplexInterfaceInfos { get; } + public string[] RelatedLinks { get; } + + public bool SupportsShouldProcess { get; } + public bool SupportsPaging { get; } + + public MarkdownHelpInfo(VariantGroup variantGroup, string examplesFolder, string externalHelpFilename = "") + { + ExternalHelpFilename = externalHelpFilename; + ModuleName = variantGroup.RootModuleName != "" ? variantGroup.RootModuleName : variantGroup.ModuleName; + var helpInfo = variantGroup.HelpInfo; + var commentInfo = variantGroup.CommentInfo; + Schema = Version.Parse("2.0.0"); + + CmdletName = variantGroup.CmdletName; + Aliases = (variantGroup.Aliases.NullIfEmpty() ?? helpInfo.Aliases).Where(a => a != "None").ToArray(); + Synopsis = commentInfo.Synopsis; + Description = commentInfo.Description; + + SyntaxInfos = variantGroup.Variants + .Select(v => new MarkdownSyntaxHelpInfo(v, variantGroup.ParameterGroups, v.VariantName == variantGroup.DefaultParameterSetName)) + .OrderByDescending(v => v.IsDefault).ThenBy(v => v.ParameterSetName).ToArray(); + Examples = GetExamplesFromMarkdown(examplesFolder).NullIfEmpty() + ?? helpInfo.Examples.Select(e => e.ToExampleHelpInfo()).ToArray().NullIfEmpty() + ?? DefaultExampleHelpInfos; + + Parameters = variantGroup.ParameterGroups + .Where(pg => !pg.DontShow && !pg.Parameters.All(p => p.IsHidden())) + .Select(pg => new MarkdownParameterHelpInfo( + variantGroup.Variants.SelectMany(v => v.HelpInfo.Parameters).Where(phi => phi.Name == pg.ParameterName).ToArray(), pg)) + .OrderBy(phi => phi.Name).ToArray(); + + Inputs = commentInfo.Inputs; + Outputs = commentInfo.Outputs; + + ComplexInterfaceInfos = variantGroup.ComplexInterfaceInfos; + OnlineVersion = commentInfo.OnlineVersion; + RelatedLinks = commentInfo.RelatedLinks; + + SupportsShouldProcess = variantGroup.SupportsShouldProcess; + SupportsPaging = variantGroup.SupportsPaging; + } + + private MarkdownExampleHelpInfo[] GetExamplesFromMarkdown(string examplesFolder) + { + var filePath = Path.Combine(examplesFolder, $"{CmdletName}.md"); + if (!Directory.Exists(examplesFolder) || !File.Exists(filePath)) return null; + + var lines = File.ReadAllLines(filePath); + var nameIndices = lines.Select((l, i) => l.StartsWith(ExampleNameHeader) ? i : -1).Where(i => i != -1).ToArray(); + //https://codereview.stackexchange.com/a/187148/68772 + var indexCountGroups = nameIndices.Skip(1).Append(lines.Length).Zip(nameIndices, (next, current) => (NameIndex: current, LineCount: next - current)); + var exampleGroups = indexCountGroups.Select(icg => lines.Skip(icg.NameIndex).Take(icg.LineCount).ToArray()); + return exampleGroups.Select(eg => + { + var name = eg.First().Replace(ExampleNameHeader, String.Empty); + var codeStartIndex = eg.Select((l, i) => l.StartsWith(ExampleCodeHeader) ? (int?)i : null).FirstOrDefault(i => i.HasValue); + var codeEndIndex = eg.Select((l, i) => l.StartsWith(ExampleCodeFooter) ? (int?)i : null).FirstOrDefault(i => i.HasValue && i != codeStartIndex); + var code = codeStartIndex.HasValue && codeEndIndex.HasValue + ? String.Join(Environment.NewLine, eg.Skip(codeStartIndex.Value + 1).Take(codeEndIndex.Value - (codeStartIndex.Value + 1))) + : String.Empty; + var outputStartIndex = eg.Select((l, i) => l.StartsWith(ExampleOutputHeader) ? (int?)i : null).FirstOrDefault(i => i.HasValue); + var outputEndIndex = eg.Select((l, i) => l.StartsWith(ExampleOutputFooter) ? (int?)i : null).FirstOrDefault(i => i.HasValue && i > outputStartIndex); + var output = outputStartIndex.HasValue && outputEndIndex.HasValue + ? String.Join(Environment.NewLine, eg.Skip(outputStartIndex.Value + 1).Take(outputEndIndex.Value - (outputStartIndex.Value + 1))) + : String.Empty; + var descriptionStartIndex = (outputEndIndex ?? (codeEndIndex ?? 0)) + 1; + descriptionStartIndex = String.IsNullOrWhiteSpace(eg[descriptionStartIndex]) ? descriptionStartIndex + 1 : descriptionStartIndex; + var descriptionEndIndex = eg.Length - 1; + descriptionEndIndex = String.IsNullOrWhiteSpace(eg[descriptionEndIndex]) ? descriptionEndIndex - 1 : descriptionEndIndex; + var description = String.Join(Environment.NewLine, eg.Skip(descriptionStartIndex).Take((descriptionEndIndex + 1) - descriptionStartIndex)); + return new MarkdownExampleHelpInfo(name, code, output, description); + }).ToArray(); + } + } + + internal class MarkdownSyntaxHelpInfo + { + public Variant Variant { get; } + public bool IsDefault { get; } + public string ParameterSetName { get; } + public Parameter[] Parameters { get; } + public string SyntaxText { get; } + + public MarkdownSyntaxHelpInfo(Variant variant, ParameterGroup[] parameterGroups, bool isDefault) + { + Variant = variant; + IsDefault = isDefault; + ParameterSetName = Variant.VariantName; + Parameters = Variant.Parameters + .Where(p => !p.DontShow && !p.IsHidden()).OrderByDescending(p => p.IsMandatory) + //https://stackoverflow.com/a/6461526/294804 + .ThenByDescending(p => p.Position.HasValue).ThenBy(p => p.Position) + // Use the OrderCategory of the parameter group because the final order category is the highest of the group, and not the order category of the individual parameters from the variants. + .ThenBy(p => parameterGroups.First(pg => pg.ParameterName == p.ParameterName).OrderCategory).ThenBy(p => p.ParameterName).ToArray(); + SyntaxText = CreateSyntaxFormat(); + } + + //https://github.com/PowerShell/platyPS/blob/a607a926bfffe1e1a1e53c19e0057eddd0c07611/src/Markdown.MAML/Renderer/Markdownv2Renderer.cs#L29-L32 + private const int SyntaxLineWidth = 110; + private string CreateSyntaxFormat() + { + var parameterStrings = Parameters.Select(p => p.ToPropertySyntaxOutput().ToString()); + if (Variant.SupportsShouldProcess) + { + parameterStrings = parameterStrings.Append(" [-Confirm]").Append(" [-WhatIf]"); + } + parameterStrings = parameterStrings.Append(" []"); + + var lines = new List(20); + return parameterStrings.Aggregate(Variant.CmdletName, (current, ps) => + { + var combined = current + ps; + if (combined.Length <= SyntaxLineWidth) return combined; + + lines.Add(current); + return ps; + }, last => + { + lines.Add(last); + return String.Join(Environment.NewLine, lines); + }); + } + } + + internal class MarkdownExampleHelpInfo + { + public string Name { get; } + public string Code { get; } + public string Output { get; } + public string Description { get; } + + public MarkdownExampleHelpInfo(string name, string code, string output, string description) + { + Name = name; + Code = code; + Output = output; + Description = description; + } + } + + internal class MarkdownParameterHelpInfo + { + public string Name { get; set; } + public string Description { get; set; } + public Type Type { get; set; } + public string Position { get; set; } + public string DefaultValue { get; set; } + + public bool HasAllParameterSets { get; set; } + public string[] ParameterSetNames { get; set; } + public string[] Aliases { get; set; } + + public bool IsRequired { get; set; } + public bool IsDynamic { get; set; } + public bool AcceptsPipelineByValue { get; set; } + public bool AcceptsPipelineByPropertyName { get; set; } + public bool AcceptsWildcardCharacters { get; set; } + + // For use by common parameters that have no backing data in the objects themselves. + public MarkdownParameterHelpInfo() { } + + public MarkdownParameterHelpInfo(PsParameterHelpInfo[] parameterHelpInfos, ParameterGroup parameterGroup) + { + Name = parameterGroup.ParameterName; + Description = parameterGroup.Description.NullIfEmpty() + ?? parameterHelpInfos.Select(phi => phi.Description).FirstOrDefault(d => !String.IsNullOrEmpty(d)).EmptyIfNull(); + Type = parameterGroup.ParameterType; + Position = parameterGroup.FirstPosition?.ToString() + ?? parameterHelpInfos.Select(phi => phi.PositionText).FirstOrDefault(d => !String.IsNullOrEmpty(d)).ToUpperFirstCharacter().NullIfEmpty() + ?? "Named"; + // This no longer uses firstHelpInfo.DefaultValueAsString since it seems to be broken. For example, it has a value of 0 for Int32, but no default value was declared. + DefaultValue = parameterGroup.DefaultInfo?.Script ?? "None"; + + HasAllParameterSets = parameterGroup.HasAllVariants; + ParameterSetNames = (parameterGroup.Parameters.Select(p => p.VariantName).ToArray().NullIfEmpty() + ?? parameterHelpInfos.SelectMany(phi => phi.ParameterSetNames).Distinct()) + .OrderBy(psn => psn).ToArray(); + Aliases = parameterGroup.Aliases.NullIfEmpty() ?? parameterHelpInfos.SelectMany(phi => phi.Aliases).ToArray(); + + IsRequired = parameterHelpInfos.Select(phi => phi.IsRequired).FirstOrDefault(r => r == true) ?? parameterGroup.Parameters.Any(p => p.IsMandatory); + IsDynamic = parameterHelpInfos.Select(phi => phi.IsDynamic).FirstOrDefault(d => d == true) ?? false; + AcceptsPipelineByValue = parameterHelpInfos.Select(phi => phi.SupportsPipelineInput?.Contains("ByValue")).FirstOrDefault(bv => bv == true) ?? parameterGroup.ValueFromPipeline; + AcceptsPipelineByPropertyName = parameterHelpInfos.Select(phi => phi.SupportsPipelineInput?.Contains("ByPropertyName")).FirstOrDefault(bv => bv == true) ?? parameterGroup.ValueFromPipelineByPropertyName; + AcceptsWildcardCharacters = parameterGroup.SupportsWildcards; + } + } + + internal static class MarkdownTypesExtensions + { + public static MarkdownExampleHelpInfo ToExampleHelpInfo(this PsHelpExampleInfo exampleInfo) => new MarkdownExampleHelpInfo(exampleInfo.Title, exampleInfo.Code, exampleInfo.Output, exampleInfo.Remarks); + + public static MarkdownExampleHelpInfo[] DefaultExampleHelpInfos = + { + new MarkdownExampleHelpInfo("Example 1: {{ Add title here }}", $@"{{{{ Add code here }}}}", $@"{{{{ Add output here }}}}", @"{{ Add description here }}"), + new MarkdownExampleHelpInfo("Example 2: {{ Add title here }}", $@"{{{{ Add code here }}}}", $@"{{{{ Add output here }}}}", @"{{ Add description here }}"), + }; + + public static MarkdownParameterHelpInfo[] SupportsShouldProcessParameters = + { + new MarkdownParameterHelpInfo + { + Name = "Confirm", + Description ="Prompts you for confirmation before running the cmdlet.", + Type = typeof(SwitchParameter), + Position = "Named", + DefaultValue = "None", + HasAllParameterSets = true, + ParameterSetNames = new [] { "(All)" }, + Aliases = new [] { "cf" } + }, + new MarkdownParameterHelpInfo + { + Name = "WhatIf", + Description ="Shows what would happen if the cmdlet runs. The cmdlet is not run.", + Type = typeof(SwitchParameter), + Position = "Named", + DefaultValue = "None", + HasAllParameterSets = true, + ParameterSetNames = new [] { "(All)" }, + Aliases = new [] { "wi" } + } + }; + + public static MarkdownParameterHelpInfo[] SupportsPagingParameters = + { + new MarkdownParameterHelpInfo + { + Name = "First", + Description ="Gets only the first 'n' objects.", + Type = typeof(ulong), + Position = "Named", + DefaultValue = "None", + HasAllParameterSets = true, + ParameterSetNames = new [] { "(All)" }, + Aliases = new string[0] + }, + new MarkdownParameterHelpInfo + { + Name = "IncludeTotalCount", + Description ="Reports the number of objects in the data set (an integer) followed by the objects. If the cmdlet cannot determine the total count, it returns \"Unknown total count\".", + Type = typeof(SwitchParameter), + Position = "Named", + DefaultValue = "None", + HasAllParameterSets = true, + ParameterSetNames = new [] { "(All)" }, + Aliases = new string[0] + }, + new MarkdownParameterHelpInfo + { + Name = "Skip", + Description ="Ignores the first 'n' objects and then gets the remaining objects.", + Type = typeof(ulong), + Position = "Named", + DefaultValue = "None", + HasAllParameterSets = true, + ParameterSetNames = new [] { "(All)" }, + Aliases = new string[0] + } + }; + } +} diff --git a/swaggerci/eventgrid/generated/runtime/BuildTime/Models/PsProxyOutputs.cs b/swaggerci/eventgrid/generated/runtime/BuildTime/Models/PsProxyOutputs.cs new file mode 100644 index 000000000000..94515d5e94d7 --- /dev/null +++ b/swaggerci/eventgrid/generated/runtime/BuildTime/Models/PsProxyOutputs.cs @@ -0,0 +1,611 @@ +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Management.Automation; +using System.Text; +using System.Text.RegularExpressions; +using static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell.PsProxyOutputExtensions; +using static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell.PsProxyTypeExtensions; + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell +{ + internal class OutputTypeOutput + { + public PSTypeName[] OutputTypes { get; } + + public OutputTypeOutput(IEnumerable outputTypes) + { + OutputTypes = outputTypes.ToArray(); + } + + public override string ToString() => OutputTypes != null && OutputTypes.Any() ? $"[OutputType({OutputTypes.Select(ot => $"[{ot}]").JoinIgnoreEmpty(ItemSeparator)})]{Environment.NewLine}" : String.Empty; + } + + internal class CmdletBindingOutput + { + public VariantGroup VariantGroup { get; } + + public CmdletBindingOutput(VariantGroup variantGroup) + { + VariantGroup = variantGroup; + } + + public override string ToString() + { + var dpsText = VariantGroup.DefaultParameterSetName.IsValidDefaultParameterSetName() ? $"DefaultParameterSetName='{VariantGroup.DefaultParameterSetName}'" : String.Empty; + var sspText = VariantGroup.SupportsShouldProcess ? $"SupportsShouldProcess{ItemSeparator}ConfirmImpact='Medium'" : String.Empty; + var pbText = $"PositionalBinding={false.ToPsBool()}"; + var propertyText = new[] { dpsText, pbText, sspText }.JoinIgnoreEmpty(ItemSeparator); + return $"[CmdletBinding({propertyText})]{Environment.NewLine}"; + } + } + + internal class ParameterOutput + { + public Parameter Parameter { get; } + public bool HasMultipleVariantsInVariantGroup { get; } + public bool HasAllVariantsInParameterGroup { get; } + + public ParameterOutput(Parameter parameter, bool hasMultipleVariantsInVariantGroup, bool hasAllVariantsInParameterGroup) + { + Parameter = parameter; + HasMultipleVariantsInVariantGroup = hasMultipleVariantsInVariantGroup; + HasAllVariantsInParameterGroup = hasAllVariantsInParameterGroup; + } + + public override string ToString() + { + var psnText = HasMultipleVariantsInVariantGroup && !HasAllVariantsInParameterGroup ? $"ParameterSetName='{Parameter.VariantName}'" : String.Empty; + var positionText = Parameter.Position != null ? $"Position={Parameter.Position}" : String.Empty; + var mandatoryText = Parameter.IsMandatory ? "Mandatory" : String.Empty; + var dontShowText = Parameter.DontShow ? "DontShow" : String.Empty; + var vfpText = Parameter.ValueFromPipeline ? "ValueFromPipeline" : String.Empty; + var vfpbpnText = Parameter.ValueFromPipelineByPropertyName ? "ValueFromPipelineByPropertyName" : String.Empty; + var propertyText = new[] { psnText, positionText, mandatoryText, dontShowText, vfpText, vfpbpnText }.JoinIgnoreEmpty(ItemSeparator); + return $"{Indent}[Parameter({propertyText})]{Environment.NewLine}"; + } + } + + internal class AliasOutput + { + public string[] Aliases { get; } + public bool IncludeIndent { get; } + + public AliasOutput(string[] aliases, bool includeIndent = false) + { + Aliases = aliases; + IncludeIndent = includeIndent; + } + + public override string ToString() => Aliases?.Any() ?? false ? $"{(IncludeIndent ? Indent : String.Empty)}[Alias({Aliases.Select(an => $"'{an}'").JoinIgnoreEmpty(ItemSeparator)})]{Environment.NewLine}" : String.Empty; + } + + internal class ValidateNotNullOutput + { + public bool HasValidateNotNull { get; } + + public ValidateNotNullOutput(bool hasValidateNotNull) + { + HasValidateNotNull = hasValidateNotNull; + } + + public override string ToString() => HasValidateNotNull ? $"{Indent}[ValidateNotNull()]{Environment.NewLine}" : String.Empty; + } + + internal class AllowEmptyArrayOutput + { + public bool HasAllowEmptyArray { get; } + + public AllowEmptyArrayOutput(bool hasAllowEmptyArray) + { + HasAllowEmptyArray = hasAllowEmptyArray; + } + + public override string ToString() => HasAllowEmptyArray ? $"{Indent}[AllowEmptyCollection()]{Environment.NewLine}" : String.Empty; + } + internal class ArgumentCompleterOutput + { + public CompleterInfo CompleterInfo { get; } + + public ArgumentCompleterOutput(CompleterInfo completerInfo) + { + CompleterInfo = completerInfo; + } + + public override string ToString() => CompleterInfo != null + ? $"{Indent}[ArgumentCompleter({(CompleterInfo.IsTypeCompleter ? $"[{CompleterInfo.Type.Unwrap().ToPsType()}]" : $"{{{CompleterInfo.Script.ToPsSingleLine("; ")}}}")})]{Environment.NewLine}" + : String.Empty; + } + + internal class DefaultInfoOutput + { + public bool HasDefaultInfo { get; } + public DefaultInfo DefaultInfo { get; } + + public DefaultInfoOutput(ParameterGroup parameterGroup) + { + HasDefaultInfo = parameterGroup.HasDefaultInfo; + DefaultInfo = parameterGroup.DefaultInfo; + } + + public override string ToString() + { + var nameText = !String.IsNullOrEmpty(DefaultInfo?.Name) ? $"Name='{DefaultInfo?.Name}'" : String.Empty; + var descriptionText = !String.IsNullOrEmpty(DefaultInfo?.Description) ? $"Description='{DefaultInfo?.Description.ToPsStringLiteral()}'" : String.Empty; + var scriptText = !String.IsNullOrEmpty(DefaultInfo?.Script) ? $"Script='{DefaultInfo?.Script.ToPsSingleLine("; ")}'" : String.Empty; + var propertyText = new[] { nameText, descriptionText, scriptText }.JoinIgnoreEmpty(ItemSeparator); + return HasDefaultInfo ? $"{Indent}[{typeof(DefaultInfoAttribute).ToPsAttributeType()}({propertyText})]{Environment.NewLine}" : String.Empty; + } + } + + internal class ParameterTypeOutput + { + public Type ParameterType { get; } + + public ParameterTypeOutput(Type parameterType) + { + ParameterType = parameterType; + } + + public override string ToString() => $"{Indent}[{ParameterType.ToPsType()}]{Environment.NewLine}"; + } + + internal class ParameterNameOutput + { + public string ParameterName { get; } + public bool IsLast { get; } + + public ParameterNameOutput(string parameterName, bool isLast) + { + ParameterName = parameterName; + IsLast = isLast; + } + + public override string ToString() => $"{Indent}${{{ParameterName}}}{(IsLast ? String.Empty : $",{Environment.NewLine}")}{Environment.NewLine}"; + } + + internal class BaseOutput + { + public VariantGroup VariantGroup { get; } + + protected static readonly bool IsAzure = Convert.ToBoolean(@"true"); + public BaseOutput(VariantGroup variantGroup) + { + VariantGroup = variantGroup; + } + public string ClearTelemetryContext() + { + return (!VariantGroup.IsInternal && IsAzure) ? $@"{Indent}{Indent}[Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext()" : ""; + } + } + + internal class BeginOutput : BaseOutput + { + public BeginOutput(VariantGroup variantGroup) : base(variantGroup) + { + } + + public string GetProcessCustomAttributesAtRuntime() + { + return VariantGroup.IsInternal ? "" : $@"{Indent}{Indent}$cmdInfo = Get-Command -Name $mapping[$parameterSet]{Environment.NewLine}{Indent}{Indent}[Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.MessageAttributeHelper]::ProcessCustomAttributesAtRuntime($cmdInfo, $MyInvocation, $parameterSet, $PSCmdlet)"; + } + private string GetTelemetry() + { + if (!VariantGroup.IsInternal && IsAzure) + { + return $@" +{Indent}{Indent}if ($null -eq [Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion) {{ +{Indent}{Indent}{Indent}[Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet]::PowerShellVersion = $Host.Runspace.Version.ToString() +{Indent}{Indent}}} +{Indent}{Indent}$preTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId +{Indent}{Indent}if ($preTelemetryId -eq '') {{ +{Indent}{Indent}{Indent}[Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId =(New-Guid).ToString() +{Indent}{Indent}{Indent}[Microsoft.Azure.PowerShell.Cmdlets.EventGrid.module]::Instance.Telemetry.Invoke('Create', $MyInvocation, $parameterSet, $PSCmdlet) +{Indent}{Indent}}} else {{ +{Indent}{Indent}{Indent}$internalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets +{Indent}{Indent}{Indent}if ($internalCalledCmdlets -eq '') {{ +{Indent}{Indent}{Indent}{Indent}[Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $MyInvocation.MyCommand.Name +{Indent}{Indent}{Indent}}} else {{ +{Indent}{Indent}{Indent}{Indent}[Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets += ',' + $MyInvocation.MyCommand.Name +{Indent}{Indent}{Indent}}} +{Indent}{Indent}{Indent}[Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = 'internal' +{Indent}{Indent}}} +"; + } + return ""; + } + public override string ToString() => $@"begin {{ +{Indent}try {{ +{Indent}{Indent}$outBuffer = $null +{Indent}{Indent}if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) {{ +{Indent}{Indent}{Indent}$PSBoundParameters['OutBuffer'] = 1 +{Indent}{Indent}}} +{Indent}{Indent}$parameterSet = $PSCmdlet.ParameterSetName +{GetTelemetry()} +{GetParameterSetToCmdletMapping()}{GetDefaultValuesStatements()} +{GetProcessCustomAttributesAtRuntime()} +{Indent}{Indent}$wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) +{Indent}{Indent}$scriptCmd = {{& $wrappedCmd @PSBoundParameters}} +{Indent}{Indent}$steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) +{Indent}{Indent}$steppablePipeline.Begin($PSCmdlet) +{Indent}}} catch {{ +{ClearTelemetryContext()} +{Indent}{Indent}throw +{Indent}}} +}} + +"; + + private string GetParameterSetToCmdletMapping() + { + var sb = new StringBuilder(); + sb.AppendLine($"{Indent}{Indent}$mapping = @{{"); + foreach (var variant in VariantGroup.Variants) + { + sb.AppendLine($@"{Indent}{Indent}{Indent}{variant.VariantName} = '{variant.PrivateModuleName}\{variant.PrivateCmdletName}';"); + } + sb.Append($"{Indent}{Indent}}}"); + return sb.ToString(); + } + + private string GetDefaultValuesStatements() + { + var defaultInfos = VariantGroup.ParameterGroups.Where(pg => pg.HasDefaultInfo).Select(pg => pg.DefaultInfo).ToArray(); + var sb = new StringBuilder(); + + foreach (var defaultInfo in defaultInfos) + { + var variantListString = defaultInfo.ParameterGroup.VariantNames.ToPsList(); + var parameterName = defaultInfo.ParameterGroup.ParameterName; + sb.AppendLine(); + sb.AppendLine($"{Indent}{Indent}if (({variantListString}) -contains $parameterSet -and -not $PSBoundParameters.ContainsKey('{parameterName}')) {{"); + sb.AppendLine($"{Indent}{Indent}{Indent}$PSBoundParameters['{parameterName}'] = {defaultInfo.Script}"); + sb.Append($"{Indent}{Indent}}}"); + } + return sb.ToString(); + } + } + + internal class ProcessOutput : BaseOutput + { + public ProcessOutput(VariantGroup variantGroup) : base(variantGroup) + { + } + + private string GetFinally() + { + if (IsAzure && !VariantGroup.IsInternal) + { + return $@" +{Indent}finally {{ +{Indent}{Indent}$backupTelemetryId = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId +{Indent}{Indent}$backupInternalCalledCmdlets = [Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets +{Indent}{Indent}[Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() +{Indent}}} +"; + } + return ""; + } + public override string ToString() => $@"process {{ +{Indent}try {{ +{Indent}{Indent}$steppablePipeline.Process($_) +{Indent}}} catch {{ +{ClearTelemetryContext()} +{Indent}{Indent}throw +{Indent}}} +{GetFinally()} +}} +"; + } + + internal class EndOutput : BaseOutput + { + public EndOutput(VariantGroup variantGroup) : base(variantGroup) + { + } + + private string GetTelemetry() + { + if (!VariantGroup.IsInternal && IsAzure) + { + return $@" +{Indent}{Indent}[Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $backupTelemetryId +{Indent}{Indent}[Microsoft.WindowsAzure.Commands.Common.MetricHelper]::InternalCalledCmdlets = $backupInternalCalledCmdlets +{Indent}{Indent}if ($preTelemetryId -eq '') {{ +{Indent}{Indent}{Indent}[Microsoft.Azure.PowerShell.Cmdlets.EventGrid.module]::Instance.Telemetry.Invoke('Send', $MyInvocation, $parameterSet, $PSCmdlet) +{Indent}{Indent}{Indent}[Microsoft.WindowsAzure.Commands.Common.MetricHelper]::ClearTelemetryContext() +{Indent}{Indent}}} +{Indent}{Indent}[Microsoft.WindowsAzure.Commands.Common.MetricHelper]::TelemetryId = $preTelemetryId +"; + } + return ""; + } + public override string ToString() => $@"end {{ +{Indent}try {{ +{Indent}{Indent}$steppablePipeline.End() +{GetTelemetry()} +{Indent}}} catch {{ +{ClearTelemetryContext()} +{Indent}{Indent}throw +{Indent}}} +}} +"; + } + + internal class HelpCommentOutput + { + public VariantGroup VariantGroup { get; } + public CommentInfo CommentInfo { get; } + + public HelpCommentOutput(VariantGroup variantGroup) + { + VariantGroup = variantGroup; + CommentInfo = variantGroup.CommentInfo; + } + + public override string ToString() + { + var inputs = String.Join(Environment.NewLine, CommentInfo.Inputs.Select(i => $".Inputs{Environment.NewLine}{i}")); + var inputsText = !String.IsNullOrEmpty(inputs) ? $"{Environment.NewLine}{inputs}" : String.Empty; + var outputs = String.Join(Environment.NewLine, CommentInfo.Outputs.Select(o => $".Outputs{Environment.NewLine}{o}")); + var outputsText = !String.IsNullOrEmpty(outputs) ? $"{Environment.NewLine}{outputs}" : String.Empty; + var notes = String.Join($"{Environment.NewLine}{Environment.NewLine}", VariantGroup.ComplexInterfaceInfos.Select(cii => cii.ToNoteOutput())); + var notesText = !String.IsNullOrEmpty(notes) ? $"{Environment.NewLine}.Notes{Environment.NewLine}{ComplexParameterHeader}{notes}" : String.Empty; + var relatedLinks = String.Join(Environment.NewLine, CommentInfo.RelatedLinks.Select(l => $".Link{Environment.NewLine}{l}")); + var relatedLinksText = !String.IsNullOrEmpty(relatedLinks) ? $"{Environment.NewLine}{relatedLinks}" : String.Empty; + var examples = ""; + foreach (var example in VariantGroup.HelpInfo.Examples) + { + examples = examples + ".Example" + "\r\n" + example.Code + "\r\n"; + } + return $@"<# +.Synopsis +{CommentInfo.Synopsis.ToDescriptionFormat(false)} +.Description +{CommentInfo.Description.ToDescriptionFormat(false)} +{examples}{inputsText}{outputsText}{notesText} +.Link +{CommentInfo.OnlineVersion}{relatedLinksText} +#> +"; + } + } + + internal class ParameterDescriptionOutput + { + public string Description { get; } + + public ParameterDescriptionOutput(string description) + { + Description = description; + } + + public override string ToString() => !String.IsNullOrEmpty(Description) + ? Description.ToDescriptionFormat(false).NormalizeNewLines() + .Split(new[] { Environment.NewLine }, StringSplitOptions.None) + .Aggregate(String.Empty, (c, n) => c + $"{Indent}# {n}{Environment.NewLine}") + : String.Empty; + } + + internal class ProfileOutput + { + public string ProfileName { get; } + + public ProfileOutput(string profileName) + { + ProfileName = profileName; + } + + public override string ToString() => ProfileName != NoProfiles ? $"[{typeof(ProfileAttribute).ToPsAttributeType()}('{ProfileName}')]{Environment.NewLine}" : String.Empty; + } + + internal class DescriptionOutput + { + public string Description { get; } + + public DescriptionOutput(string description) + { + Description = description; + } + + public override string ToString() => !String.IsNullOrEmpty(Description) ? $"[{typeof(DescriptionAttribute).ToPsAttributeType()}('{Description.ToPsStringLiteral()}')]{Environment.NewLine}" : String.Empty; + } + + internal class ParameterCategoryOutput + { + public ParameterCategory Category { get; } + + public ParameterCategoryOutput(ParameterCategory category) + { + Category = category; + } + + public override string ToString() => $"{Indent}[{typeof(CategoryAttribute).ToPsAttributeType()}('{Category}')]{Environment.NewLine}"; + } + + internal class InfoOutput + { + public InfoAttribute Info { get; } + public Type ParameterType { get; } + + public InfoOutput(InfoAttribute info, Type parameterType) + { + Info = info; + ParameterType = parameterType; + } + + public override string ToString() + { + // Rendering of InfoAttribute members that are not used currently + /*var serializedNameText = Info.SerializedName != null ? $"SerializedName='{Info.SerializedName}'" : String.Empty; + var readOnlyText = Info.ReadOnly ? "ReadOnly" : String.Empty; + var descriptionText = !String.IsNullOrEmpty(Info.Description) ? $"Description='{Info.Description.ToPsStringLiteral()}'" : String.Empty;*/ + + var requiredText = Info.Required ? "Required" : String.Empty; + var unwrappedType = ParameterType.Unwrap(); + var hasValidPossibleTypes = Info.PossibleTypes.Any(pt => pt != unwrappedType); + var possibleTypesText = hasValidPossibleTypes + ? $"PossibleTypes=({Info.PossibleTypes.Select(pt => $"[{pt.ToPsType()}]").JoinIgnoreEmpty(ItemSeparator)})" + : String.Empty; + var propertyText = new[] { /*serializedNameText, */requiredText,/* readOnlyText,*/ possibleTypesText/*, descriptionText*/ }.JoinIgnoreEmpty(ItemSeparator); + return hasValidPossibleTypes ? $"{Indent}[{typeof(InfoAttribute).ToPsAttributeType()}({propertyText})]{Environment.NewLine}" : String.Empty; + } + } + + internal class PropertySyntaxOutput + { + public string ParameterName { get; } + public Type ParameterType { get; } + public bool IsMandatory { get; } + public int? Position { get; } + + public bool IncludeSpace { get; } + public bool IncludeDash { get; } + + public PropertySyntaxOutput(Parameter parameter) + { + ParameterName = parameter.ParameterName; + ParameterType = parameter.ParameterType; + IsMandatory = parameter.IsMandatory; + Position = parameter.Position; + IncludeSpace = true; + IncludeDash = true; + } + + public PropertySyntaxOutput(ComplexInterfaceInfo complexInterfaceInfo) + { + ParameterName = complexInterfaceInfo.Name; + ParameterType = complexInterfaceInfo.Type; + IsMandatory = complexInterfaceInfo.Required; + Position = null; + IncludeSpace = false; + IncludeDash = false; + } + + public override string ToString() + { + var leftOptional = !IsMandatory ? "[" : String.Empty; + var leftPositional = Position != null ? "[" : String.Empty; + var rightPositional = Position != null ? "]" : String.Empty; + var type = ParameterType != typeof(SwitchParameter) ? $" <{ParameterType.ToSyntaxTypeName()}>" : String.Empty; + var rightOptional = !IsMandatory ? "]" : String.Empty; + var space = IncludeSpace ? " " : String.Empty; + var dash = IncludeDash ? "-" : String.Empty; + return $"{space}{leftOptional}{leftPositional}{dash}{ParameterName}{rightPositional}{type}{rightOptional}"; + } + } + + internal static class PsProxyOutputExtensions + { + public const string NoParameters = "__NoParameters"; + + public const string AllParameterSets = "__AllParameterSets"; + + public const string HalfIndent = " "; + + public const string Indent = HalfIndent + HalfIndent; + + public const string ItemSeparator = ", "; + + public static readonly string ComplexParameterHeader = $"COMPLEX PARAMETER PROPERTIES{Environment.NewLine}{Environment.NewLine}To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables.{Environment.NewLine}{Environment.NewLine}"; + + public static string ToPsBool(this bool value) => $"${value.ToString().ToLowerInvariant()}"; + + public static string ToPsType(this Type type) + { + var regex = new Regex(@"^(.*)`{1}\d+(.*)$"); + var typeText = type.ToString(); + var match = regex.Match(typeText); + return match.Success ? $"{match.Groups[1]}{match.Groups[2]}" : typeText; + } + + public static string ToPsAttributeType(this Type type) => type.ToPsType().RemoveEnd("Attribute"); + + // https://stackoverflow.com/a/5284606/294804 + private static string RemoveEnd(this string text, string suffix) => text.EndsWith(suffix) ? text.Substring(0, text.Length - suffix.Length) : text; + + public static string ToPsSingleLine(this string value, string replacer = " ") => value.ReplaceNewLines(replacer, new[] { "
", "\r\n", "\n" }); + + public static string ToPsStringLiteral(this string value) => value?.Replace("'", "''").Replace("‘", "''").Replace("’", "''").ToPsSingleLine().Trim() ?? String.Empty; + + public static string JoinIgnoreEmpty(this IEnumerable values, string separator) => String.Join(separator, values?.Where(v => !String.IsNullOrEmpty(v))); + + // https://stackoverflow.com/a/41961738/294804 + public static string ToSyntaxTypeName(this Type type) + { + if (type.IsGenericType && type.GetGenericTypeDefinition() == typeof(Nullable<>)) + { + return $"{type.GetGenericArguments().First().ToSyntaxTypeName()}?"; + } + + if (type.IsGenericType) + { + var genericTypes = String.Join(ItemSeparator, type.GetGenericArguments().Select(ToSyntaxTypeName)); + return $"{type.Name.Split('`').First()}<{genericTypes}>"; + } + + return type.Name; + } + + public static OutputTypeOutput ToOutputTypeOutput(this IEnumerable outputTypes) => new OutputTypeOutput(outputTypes); + + public static CmdletBindingOutput ToCmdletBindingOutput(this VariantGroup variantGroup) => new CmdletBindingOutput(variantGroup); + + public static ParameterOutput ToParameterOutput(this Parameter parameter, bool hasMultipleVariantsInVariantGroup, bool hasAllVariantsInParameterGroup) => new ParameterOutput(parameter, hasMultipleVariantsInVariantGroup, hasAllVariantsInParameterGroup); + + public static AliasOutput ToAliasOutput(this string[] aliases, bool includeIndent = false) => new AliasOutput(aliases, includeIndent); + + public static ValidateNotNullOutput ToValidateNotNullOutput(this bool hasValidateNotNull) => new ValidateNotNullOutput(hasValidateNotNull); + + public static AllowEmptyArrayOutput ToAllowEmptyArray(this bool hasAllowEmptyArray) => new AllowEmptyArrayOutput(hasAllowEmptyArray); + + public static ArgumentCompleterOutput ToArgumentCompleterOutput(this CompleterInfo completerInfo) => new ArgumentCompleterOutput(completerInfo); + + public static DefaultInfoOutput ToDefaultInfoOutput(this ParameterGroup parameterGroup) => new DefaultInfoOutput(parameterGroup); + + public static ParameterTypeOutput ToParameterTypeOutput(this Type parameterType) => new ParameterTypeOutput(parameterType); + + public static ParameterNameOutput ToParameterNameOutput(this string parameterName, bool isLast) => new ParameterNameOutput(parameterName, isLast); + + public static BeginOutput ToBeginOutput(this VariantGroup variantGroup) => new BeginOutput(variantGroup); + + public static ProcessOutput ToProcessOutput(this VariantGroup variantGroup) => new ProcessOutput(variantGroup); + + public static EndOutput ToEndOutput(this VariantGroup variantGroup) => new EndOutput(variantGroup); + + public static HelpCommentOutput ToHelpCommentOutput(this VariantGroup variantGroup) => new HelpCommentOutput(variantGroup); + + public static ParameterDescriptionOutput ToParameterDescriptionOutput(this string description) => new ParameterDescriptionOutput(description); + + public static ProfileOutput ToProfileOutput(this string profileName) => new ProfileOutput(profileName); + + public static DescriptionOutput ToDescriptionOutput(this string description) => new DescriptionOutput(description); + + public static ParameterCategoryOutput ToParameterCategoryOutput(this ParameterCategory category) => new ParameterCategoryOutput(category); + + public static PropertySyntaxOutput ToPropertySyntaxOutput(this Parameter parameter) => new PropertySyntaxOutput(parameter); + + public static PropertySyntaxOutput ToPropertySyntaxOutput(this ComplexInterfaceInfo complexInterfaceInfo) => new PropertySyntaxOutput(complexInterfaceInfo); + + public static InfoOutput ToInfoOutput(this InfoAttribute info, Type parameterType) => new InfoOutput(info, parameterType); + + public static string ToNoteOutput(this ComplexInterfaceInfo complexInterfaceInfo, string currentIndent = "", bool includeDashes = false, bool includeBackticks = false, bool isFirst = true) + { + string RenderProperty(ComplexInterfaceInfo info, string indent, bool dash, bool backtick) => + $"{indent}{(dash ? "- " : String.Empty)}{(backtick ? "`" : String.Empty)}{info.ToPropertySyntaxOutput()}{(backtick ? "`" : String.Empty)}: {info.Description}"; + + var nested = complexInterfaceInfo.NestedInfos.Select(ni => + { + var nestedIndent = $"{currentIndent}{HalfIndent}"; + return ni.IsComplexInterface + ? ni.ToNoteOutput(nestedIndent, includeDashes, includeBackticks, false) + : RenderProperty(ni, nestedIndent, includeDashes, includeBackticks); + }).Prepend(RenderProperty(complexInterfaceInfo, currentIndent, !isFirst && includeDashes, !isFirst && includeBackticks)); + return String.Join(Environment.NewLine, nested); + } + } +} diff --git a/swaggerci/eventgrid/generated/runtime/BuildTime/Models/PsProxyTypes.cs b/swaggerci/eventgrid/generated/runtime/BuildTime/Models/PsProxyTypes.cs new file mode 100644 index 000000000000..d8c749a4a3e8 --- /dev/null +++ b/swaggerci/eventgrid/generated/runtime/BuildTime/Models/PsProxyTypes.cs @@ -0,0 +1,514 @@ +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ +using System; +using System.Collections.Generic; +using System.IO; +using System.Linq; +using System.Management.Automation; +using System.Reflection; +using static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell.PsProxyOutputExtensions; +using static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell.PsProxyTypeExtensions; + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell +{ + internal class ProfileGroup + { + public string ProfileName { get; } + public Variant[] Variants { get; } + public string ProfileFolder { get; } + + public ProfileGroup(Variant[] variants, string profileName = NoProfiles) + { + ProfileName = profileName; + Variants = variants; + ProfileFolder = ProfileName != NoProfiles ? ProfileName : String.Empty; + } + } + + internal class VariantGroup + { + public string ModuleName { get; } + + public string RootModuleName {get => @"";} + public string CmdletName { get; } + public string CmdletVerb { get; } + public string CmdletNoun { get; } + public string ProfileName { get; } + public Variant[] Variants { get; } + public ParameterGroup[] ParameterGroups { get; } + public ComplexInterfaceInfo[] ComplexInterfaceInfos { get; } + + public string[] Aliases { get; } + public PSTypeName[] OutputTypes { get; } + public bool SupportsShouldProcess { get; } + public bool SupportsPaging { get; } + public string DefaultParameterSetName { get; } + public bool HasMultipleVariants { get; } + public PsHelpInfo HelpInfo { get; } + public bool IsGenerated { get; } + public bool IsInternal { get; } + + public string OutputFolder { get; } + public string FileName { get; } + public string FilePath { get; } + + public CommentInfo CommentInfo { get; } + + public VariantGroup(string moduleName, string cmdletName, Variant[] variants, string outputFolder, string profileName = NoProfiles, bool isTest = false, bool isInternal = false) + { + ModuleName = moduleName; + CmdletName = cmdletName; + var cmdletNameParts = CmdletName.Split('-'); + CmdletVerb = cmdletNameParts.First(); + CmdletNoun = cmdletNameParts.Last(); + ProfileName = profileName; + Variants = variants; + ParameterGroups = Variants.ToParameterGroups().OrderBy(pg => pg.OrderCategory).ThenByDescending(pg => pg.IsMandatory).ToArray(); + var aliasDuplicates = ParameterGroups.SelectMany(pg => pg.Aliases) + //https://stackoverflow.com/a/18547390/294804 + .GroupBy(a => a).Where(g => g.Count() > 1).Select(g => g.Key).ToArray(); + if (aliasDuplicates.Any()) + { + throw new ParsingMetadataException($"The alias(es) [{String.Join(", ", aliasDuplicates)}] are defined on multiple parameters for cmdlet '{CmdletName}', which is not supported."); + } + ComplexInterfaceInfos = ParameterGroups.Where(pg => !pg.DontShow && pg.IsComplexInterface).OrderBy(pg => pg.ParameterName).Select(pg => pg.ComplexInterfaceInfo).ToArray(); + + Aliases = Variants.SelectMany(v => v.Attributes).ToAliasNames().ToArray(); + OutputTypes = Variants.SelectMany(v => v.Info.OutputType).Where(ot => ot.Type != null).GroupBy(ot => ot.Type).Select(otg => otg.First()).ToArray(); + SupportsShouldProcess = Variants.Any(v => v.SupportsShouldProcess); + SupportsPaging = Variants.Any(v => v.SupportsPaging); + DefaultParameterSetName = DetermineDefaultParameterSetName(); + HasMultipleVariants = Variants.Length > 1; + HelpInfo = Variants.Select(v => v.HelpInfo).FirstOrDefault() ?? new PsHelpInfo(); + IsGenerated = Variants.All(v => v.Attributes.OfType().Any()); + IsInternal = isInternal; + + OutputFolder = outputFolder; + FileName = $"{CmdletName}{(isTest ? ".Tests" : String.Empty)}.ps1"; + FilePath = Path.Combine(OutputFolder, FileName); + + CommentInfo = new CommentInfo(this); + } + + private string DetermineDefaultParameterSetName() + { + var defaultParameterSet = Variants + .Select(v => v.Metadata.DefaultParameterSetName) + .LastOrDefault(dpsn => dpsn.IsValidDefaultParameterSetName()); + + if (String.IsNullOrEmpty(defaultParameterSet)) + { + var variantParamCountGroups = Variants + .Select(v => ( + variant: v.VariantName, + paramCount: v.CmdletOnlyParameters.Count(p => p.IsMandatory), + isSimple: v.CmdletOnlyParameters.Where(p => p.IsMandatory).All(p => p.ParameterType.IsPsSimple()))) + .GroupBy(vpc => vpc.isSimple) + .ToArray(); + var variantParameterCounts = (variantParamCountGroups.Any(g => g.Key) ? variantParamCountGroups.Where(g => g.Key) : variantParamCountGroups).SelectMany(g => g).ToArray(); + var smallestParameterCount = variantParameterCounts.Min(vpc => vpc.paramCount); + defaultParameterSet = variantParameterCounts.First(vpc => vpc.paramCount == smallestParameterCount).variant; + } + + return defaultParameterSet; + } + } + + internal class Variant + { + public string CmdletName { get; } + public string VariantName { get; } + public CommandInfo Info { get; } + public CommandMetadata Metadata { get; } + public PsHelpInfo HelpInfo { get; } + public bool HasParameterSets { get; } + public bool IsFunction { get; } + public string PrivateModuleName { get; } + public string PrivateCmdletName { get; } + public bool SupportsShouldProcess { get; } + public bool SupportsPaging { get; } + + public Attribute[] Attributes { get; } + public Parameter[] Parameters { get; } + public Parameter[] CmdletOnlyParameters { get; } + public bool IsInternal { get; } + public bool IsDoNotExport { get; } + public string[] Profiles { get; } + + public Variant(string cmdletName, string variantName, CommandInfo info, CommandMetadata metadata, bool hasParameterSets = false, PsHelpInfo helpInfo = null) + { + CmdletName = cmdletName; + VariantName = variantName; + Info = info; + HelpInfo = helpInfo ?? new PsHelpInfo(); + Metadata = metadata; + HasParameterSets = hasParameterSets; + IsFunction = Info.CommandType == CommandTypes.Function; + PrivateModuleName = Info.Source; + PrivateCmdletName = Metadata.Name; + SupportsShouldProcess = Metadata.SupportsShouldProcess; + SupportsPaging = Metadata.SupportsPaging; + + Attributes = this.ToAttributes(); + Parameters = this.ToParameters().OrderBy(p => p.OrderCategory).ThenByDescending(p => p.IsMandatory).ToArray(); + IsInternal = Attributes.OfType().Any(); + IsDoNotExport = Attributes.OfType().Any(); + CmdletOnlyParameters = Parameters.Where(p => !p.Categories.Any(c => c == ParameterCategory.Azure || c == ParameterCategory.Runtime)).ToArray(); + Profiles = Attributes.OfType().SelectMany(pa => pa.Profiles).ToArray(); + } + } + + internal class ParameterGroup + { + public string ParameterName { get; } + public Parameter[] Parameters { get; } + + public string[] VariantNames { get; } + public string[] AllVariantNames { get; } + public bool HasAllVariants { get; } + public Type ParameterType { get; } + public string Description { get; } + + public string[] Aliases { get; } + public bool HasValidateNotNull { get; } + public bool HasAllowEmptyArray { get; } + public CompleterInfo CompleterInfo { get; } + public DefaultInfo DefaultInfo { get; } + public bool HasDefaultInfo { get; } + public ParameterCategory OrderCategory { get; } + public bool DontShow { get; } + public bool IsMandatory { get; } + public bool SupportsWildcards { get; } + public bool IsComplexInterface { get; } + public ComplexInterfaceInfo ComplexInterfaceInfo { get; } + public InfoAttribute InfoAttribute { get; } + + public int? FirstPosition { get; } + public bool ValueFromPipeline { get; } + public bool ValueFromPipelineByPropertyName { get; } + public bool IsInputType { get; } + + public ParameterGroup(string parameterName, Parameter[] parameters, string[] allVariantNames) + { + ParameterName = parameterName; + Parameters = parameters; + + VariantNames = Parameters.Select(p => p.VariantName).ToArray(); + AllVariantNames = allVariantNames; + HasAllVariants = VariantNames.Any(vn => vn == AllParameterSets) || !AllVariantNames.Except(VariantNames).Any(); + var types = Parameters.Select(p => p.ParameterType).Distinct().ToArray(); + if (types.Length > 1) + { + throw new ParsingMetadataException($"The parameter '{ParameterName}' has multiple parameter types [{String.Join(", ", types.Select(t => t.Name))}] defined, which is not supported."); + } + ParameterType = types.First(); + Description = Parameters.Select(p => p.Description).FirstOrDefault(d => !String.IsNullOrEmpty(d)).EmptyIfNull(); + + Aliases = Parameters.SelectMany(p => p.Attributes).ToAliasNames().ToArray(); + HasValidateNotNull = Parameters.SelectMany(p => p.Attributes.OfType()).Any(); + HasAllowEmptyArray = Parameters.SelectMany(p => p.Attributes.OfType()).Any(); + CompleterInfo = Parameters.Select(p => p.CompleterInfoAttribute).FirstOrDefault()?.ToCompleterInfo() + ?? Parameters.Select(p => p.ArgumentCompleterAttribute).FirstOrDefault()?.ToCompleterInfo(); + DefaultInfo = Parameters.Select(p => p.DefaultInfoAttribute).FirstOrDefault()?.ToDefaultInfo(this) + ?? Parameters.Select(p => p.DefaultValueAttribute).FirstOrDefault(dv => dv != null)?.ToDefaultInfo(this); + HasDefaultInfo = DefaultInfo != null && !String.IsNullOrEmpty(DefaultInfo.Script); + // When DefaultInfo is present, force all parameters from this group to be optional. + if (HasDefaultInfo) + { + foreach (var parameter in Parameters) + { + parameter.IsMandatory = false; + } + } + OrderCategory = Parameters.Select(p => p.OrderCategory).Distinct().DefaultIfEmpty(ParameterCategory.Body).Min(); + DontShow = Parameters.All(p => p.DontShow); + IsMandatory = HasAllVariants && Parameters.Any(p => p.IsMandatory); + SupportsWildcards = Parameters.Any(p => p.SupportsWildcards); + IsComplexInterface = Parameters.Any(p => p.IsComplexInterface); + ComplexInterfaceInfo = Parameters.Where(p => p.IsComplexInterface).Select(p => p.ComplexInterfaceInfo).FirstOrDefault(); + InfoAttribute = Parameters.Select(p => p.InfoAttribute).First(); + + FirstPosition = Parameters.Select(p => p.Position).FirstOrDefault(p => p != null); + ValueFromPipeline = Parameters.Any(p => p.ValueFromPipeline); + ValueFromPipelineByPropertyName = Parameters.Any(p => p.ValueFromPipelineByPropertyName); + IsInputType = ValueFromPipeline || ValueFromPipelineByPropertyName; + } + } + + internal class Parameter + { + public string VariantName { get; } + public string ParameterName { get; } + public ParameterMetadata Metadata { get; } + public PsParameterHelpInfo HelpInfo { get; } + public Type ParameterType { get; } + + public Attribute[] Attributes { get; } + public ParameterCategory[] Categories { get; } + public ParameterCategory OrderCategory { get; } + public PSDefaultValueAttribute DefaultValueAttribute { get; } + public DefaultInfoAttribute DefaultInfoAttribute { get; } + public ParameterAttribute ParameterAttribute { get; } + public bool SupportsWildcards { get; } + public CompleterInfoAttribute CompleterInfoAttribute { get; } + public ArgumentCompleterAttribute ArgumentCompleterAttribute { get; } + + public bool ValueFromPipeline { get; } + public bool ValueFromPipelineByPropertyName { get; } + public int? Position { get; } + public bool DontShow { get; } + public bool IsMandatory { get; set; } + + public InfoAttribute InfoAttribute { get; } + public ComplexInterfaceInfo ComplexInterfaceInfo { get; } + public bool IsComplexInterface { get; } + public string Description { get; } + + public Parameter(string variantName, string parameterName, ParameterMetadata metadata, PsParameterHelpInfo helpInfo = null) + { + VariantName = variantName; + ParameterName = parameterName; + Metadata = metadata; + HelpInfo = helpInfo ?? new PsParameterHelpInfo(); + + Attributes = Metadata.Attributes.ToArray(); + ParameterType = Attributes.OfType().FirstOrDefault()?.Type ?? Metadata.ParameterType; + Categories = Attributes.OfType().SelectMany(ca => ca.Categories).Distinct().ToArray(); + OrderCategory = Categories.DefaultIfEmpty(ParameterCategory.Body).Min(); + DefaultValueAttribute = Attributes.OfType().FirstOrDefault(); + DefaultInfoAttribute = Attributes.OfType().FirstOrDefault(); + ParameterAttribute = Attributes.OfType().FirstOrDefault(pa => pa.ParameterSetName == VariantName || pa.ParameterSetName == AllParameterSets); + if (ParameterAttribute == null) + { + throw new ParsingMetadataException($"The variant '{VariantName}' has multiple parameter sets defined, which is not supported."); + } + SupportsWildcards = Attributes.OfType().Any(); + CompleterInfoAttribute = Attributes.OfType().FirstOrDefault(); + ArgumentCompleterAttribute = Attributes.OfType().FirstOrDefault(); + + ValueFromPipeline = ParameterAttribute.ValueFromPipeline; + ValueFromPipelineByPropertyName = ParameterAttribute.ValueFromPipelineByPropertyName; + Position = ParameterAttribute.Position == Int32.MinValue ? (int?)null : ParameterAttribute.Position; + DontShow = ParameterAttribute.DontShow; + IsMandatory = ParameterAttribute.Mandatory; + + var complexParameterName = ParameterName.ToUpperInvariant(); + var complexMessage = $"{Environment.NewLine}To construct, see NOTES section for {complexParameterName} properties and create a hash table."; + var description = ParameterAttribute.HelpMessage.NullIfEmpty() ?? HelpInfo.Description.NullIfEmpty() ?? InfoAttribute?.Description.NullIfEmpty() ?? String.Empty; + // Remove the complex type message as it will be reinserted if this is a complex type + description = description.NormalizeNewLines().Replace(complexMessage, String.Empty).Replace(complexMessage.ToPsSingleLine(), String.Empty); + // Make an InfoAttribute for processing only if one isn't provided + InfoAttribute = Attributes.OfType().FirstOrDefault() ?? new InfoAttribute { PossibleTypes = new[] { ParameterType.Unwrap() }, Required = IsMandatory }; + // Set the description if the InfoAttribute does not have one since they are exported without a description + InfoAttribute.Description = String.IsNullOrEmpty(InfoAttribute.Description) ? description : InfoAttribute.Description; + ComplexInterfaceInfo = InfoAttribute.ToComplexInterfaceInfo(complexParameterName, ParameterType, true); + IsComplexInterface = ComplexInterfaceInfo.IsComplexInterface; + Description = $"{description}{(IsComplexInterface ? complexMessage : String.Empty)}"; + } + } + + internal class ComplexInterfaceInfo + { + public InfoAttribute InfoAttribute { get; } + + public string Name { get; } + public Type Type { get; } + public bool Required { get; } + public bool ReadOnly { get; } + public string Description { get; } + + public ComplexInterfaceInfo[] NestedInfos { get; } + public bool IsComplexInterface { get; } + + public ComplexInterfaceInfo(string name, Type type, InfoAttribute infoAttribute, bool? required, List seenTypes) + { + Name = name; + Type = type; + InfoAttribute = infoAttribute; + + Required = required ?? InfoAttribute.Required; + ReadOnly = InfoAttribute.ReadOnly; + Description = InfoAttribute.Description.ToPsSingleLine(); + + var unwrappedType = Type.Unwrap(); + var hasBeenSeen = seenTypes?.Contains(unwrappedType) ?? false; + (seenTypes ?? (seenTypes = new List())).Add(unwrappedType); + NestedInfos = hasBeenSeen ? new ComplexInterfaceInfo[]{} : + unwrappedType.GetInterfaces() + .Concat(InfoAttribute.PossibleTypes) + .SelectMany(pt => pt.GetProperties() + .SelectMany(pi => pi.GetCustomAttributes(true).OfType() + .Select(ia => ia.ToComplexInterfaceInfo(pi.Name, pi.PropertyType, seenTypes: seenTypes)))) + .Where(cii => !cii.ReadOnly).OrderByDescending(cii => cii.Required).ToArray(); + // https://stackoverflow.com/a/503359/294804 + var associativeArrayInnerType = Type.GetInterfaces() + .FirstOrDefault(i => i.IsGenericType && i.GetGenericTypeDefinition() == typeof(IAssociativeArray<>)) + ?.GetTypeInfo().GetGenericArguments().First(); + if (!hasBeenSeen && associativeArrayInnerType != null) + { + var anyInfo = new InfoAttribute { Description = "This indicates any property can be added to this object." }; + NestedInfos = NestedInfos.Prepend(anyInfo.ToComplexInterfaceInfo("(Any)", associativeArrayInnerType)).ToArray(); + } + IsComplexInterface = NestedInfos.Any(); + } + } + + internal class CommentInfo + { + public string Description { get; } + public string Synopsis { get; } + + public string[] Examples { get; } + public string[] Inputs { get; } + public string[] Outputs { get; } + + public string OnlineVersion { get; } + public string[] RelatedLinks { get; } + + private const string HelpLinkPrefix = @"https://docs.microsoft.com/en-us/powershell/module/"; + + public CommentInfo(VariantGroup variantGroup) + { + var helpInfo = variantGroup.HelpInfo; + Description = variantGroup.Variants.SelectMany(v => v.Attributes).OfType().FirstOrDefault()?.Description.NullIfEmpty() + ?? helpInfo.Description.EmptyIfNull(); + // If there is no Synopsis, PowerShell may put in the Syntax string as the Synopsis. This seems unintended, so we remove the Synopsis in this situation. + var synopsis = helpInfo.Synopsis.EmptyIfNull().Trim().StartsWith(variantGroup.CmdletName) ? String.Empty : helpInfo.Synopsis; + Synopsis = synopsis.NullIfEmpty() ?? Description; + + Examples = helpInfo.Examples.Select(rl => rl.Code).ToArray(); + + Inputs = (variantGroup.ParameterGroups.Where(pg => pg.IsInputType).Select(pg => pg.ParameterType.FullName).ToArray().NullIfEmpty() ?? + helpInfo.InputTypes.Where(it => it.Name.NullIfWhiteSpace() != null).Select(it => it.Name).ToArray()) + .Where(i => i != "None").Distinct().OrderBy(i => i).ToArray(); + Outputs = (variantGroup.OutputTypes.Select(ot => ot.Type.FullName).ToArray().NullIfEmpty() ?? + helpInfo.OutputTypes.Where(it => it.Name.NullIfWhiteSpace() != null).Select(ot => ot.Name).ToArray()) + .Where(o => o != "None").Distinct().OrderBy(o => o).ToArray(); + + // Use root module name in the help link + var moduleName = variantGroup.RootModuleName == "" ? variantGroup.ModuleName.ToLowerInvariant() : variantGroup.RootModuleName.ToLowerInvariant(); + OnlineVersion = helpInfo.OnlineVersion?.Uri.NullIfEmpty() ?? $@"{HelpLinkPrefix}{moduleName}/{variantGroup.CmdletName.ToLowerInvariant()}"; + RelatedLinks = helpInfo.RelatedLinks.Select(rl => rl.Text).ToArray(); + } + } + + internal class CompleterInfo + { + public string Name { get; } + public string Description { get; } + public string Script { get; } + public Type Type { get; } + public bool IsTypeCompleter { get; } + + public CompleterInfo(CompleterInfoAttribute infoAttribute) + { + Name = infoAttribute.Name; + Description = infoAttribute.Description; + Script = infoAttribute.Script; + } + + public CompleterInfo(ArgumentCompleterAttribute completerAttribute) + { + Script = completerAttribute.ScriptBlock?.ToString(); + if (completerAttribute.Type != null) + { + Type = completerAttribute.Type; + IsTypeCompleter = true; + } + } + } + + internal class DefaultInfo + { + public string Name { get; } + public string Description { get; } + public string Script { get; } + public ParameterGroup ParameterGroup { get; } + + public DefaultInfo(DefaultInfoAttribute infoAttribute, ParameterGroup parameterGroup) + { + Name = infoAttribute.Name; + Description = infoAttribute.Description; + Script = infoAttribute.Script; + ParameterGroup = parameterGroup; + } + + public DefaultInfo(PSDefaultValueAttribute defaultValueAttribute, ParameterGroup parameterGroup) + { + Description = defaultValueAttribute.Help; + ParameterGroup = parameterGroup; + if (defaultValueAttribute.Value != null) + { + Script = defaultValueAttribute.Value.ToString(); + } + } + } + + internal static class PsProxyTypeExtensions + { + public const string NoProfiles = "__NoProfiles"; + + public static bool IsValidDefaultParameterSetName(this string parameterSetName) => + !String.IsNullOrEmpty(parameterSetName) && parameterSetName != AllParameterSets; + + public static Variant[] ToVariants(this CommandInfo info, PsHelpInfo helpInfo) + { + var metadata = new CommandMetadata(info); + var privateCmdletName = metadata.Name.Split('!').First(); + var parts = privateCmdletName.Split('_'); + return parts.Length > 1 + ? new[] { new Variant(parts[0], parts[1], info, metadata, helpInfo: helpInfo) } + // Process multiple parameter sets, so we declare a variant per parameter set. + : info.ParameterSets.Select(ps => new Variant(privateCmdletName, ps.Name, info, metadata, true, helpInfo)).ToArray(); + } + + public static Variant[] ToVariants(this CmdletAndHelpInfo info) => info.CommandInfo.ToVariants(info.HelpInfo); + + public static Variant[] ToVariants(this CommandInfo info, PSObject helpInfo = null) => info.ToVariants(helpInfo?.ToPsHelpInfo()); + + public static Parameter[] ToParameters(this Variant variant) + { + var parameters = variant.Metadata.Parameters.AsEnumerable(); + var parameterHelp = variant.HelpInfo.Parameters.AsEnumerable(); + + if (variant.HasParameterSets) + { + parameters = parameters.Where(p => p.Value.ParameterSets.Keys.Any(k => k == variant.VariantName || k == AllParameterSets)); + parameterHelp = parameterHelp.Where(ph => (!ph.ParameterSetNames.Any() || ph.ParameterSetNames.Any(psn => psn == variant.VariantName || psn == AllParameterSets)) && ph.Name != "IncludeTotalCount"); + } + var result = parameters.Select(p => new Parameter(variant.VariantName, p.Key, p.Value, parameterHelp.FirstOrDefault(ph => ph.Name == p.Key))); + if (variant.SupportsPaging) { + // If supportsPaging is set, we will need to add First and Skip parameters since they are treated as common parameters which as not contained on Metadata>parameters + variant.Info.Parameters["First"].Attributes.OfType().FirstOrDefault(pa => pa.ParameterSetName == variant.VariantName || pa.ParameterSetName == AllParameterSets).HelpMessage = "Gets only the first 'n' objects."; + variant.Info.Parameters["Skip"].Attributes.OfType().FirstOrDefault(pa => pa.ParameterSetName == variant.VariantName || pa.ParameterSetName == AllParameterSets).HelpMessage = "Ignores the first 'n' objects and then gets the remaining objects."; + result = result.Append(new Parameter(variant.VariantName, "First", variant.Info.Parameters["First"], parameterHelp.FirstOrDefault(ph => ph.Name == "First"))); + result = result.Append(new Parameter(variant.VariantName, "Skip", variant.Info.Parameters["Skip"], parameterHelp.FirstOrDefault(ph => ph.Name == "Skip"))); + } + return result.ToArray(); + } + + public static Attribute[] ToAttributes(this Variant variant) => variant.IsFunction + ? ((FunctionInfo)variant.Info).ScriptBlock.Attributes.ToArray() + : variant.Metadata.CommandType.GetCustomAttributes(false).Cast().ToArray(); + + public static IEnumerable ToParameterGroups(this Variant[] variants) + { + var allVariantNames = variants.Select(vg => vg.VariantName).ToArray(); + return variants + .SelectMany(v => v.Parameters) + .GroupBy(p => p.ParameterName, StringComparer.InvariantCultureIgnoreCase) + .Select(pg => new ParameterGroup(pg.Key, pg.Select(p => p).ToArray(), allVariantNames)); + } + + public static ComplexInterfaceInfo ToComplexInterfaceInfo(this InfoAttribute infoAttribute, string name, Type type, bool? required = null, List seenTypes = null) + => new ComplexInterfaceInfo(name, type, infoAttribute, required, seenTypes); + + public static CompleterInfo ToCompleterInfo(this CompleterInfoAttribute infoAttribute) => new CompleterInfo(infoAttribute); + public static CompleterInfo ToCompleterInfo(this ArgumentCompleterAttribute completerAttribute) => new CompleterInfo(completerAttribute); + + public static DefaultInfo ToDefaultInfo(this DefaultInfoAttribute infoAttribute, ParameterGroup parameterGroup) => new DefaultInfo(infoAttribute, parameterGroup); + public static DefaultInfo ToDefaultInfo(this PSDefaultValueAttribute defaultValueAttribute, ParameterGroup parameterGroup) => new DefaultInfo(defaultValueAttribute, parameterGroup); + } +} diff --git a/swaggerci/eventgrid/generated/runtime/BuildTime/PsAttributes.cs b/swaggerci/eventgrid/generated/runtime/BuildTime/PsAttributes.cs new file mode 100644 index 000000000000..d20373841f91 --- /dev/null +++ b/swaggerci/eventgrid/generated/runtime/BuildTime/PsAttributes.cs @@ -0,0 +1,114 @@ +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ +using System; + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid +{ + [AttributeUsage(AttributeTargets.Class)] + public class DescriptionAttribute : Attribute + { + public string Description { get; } + + public DescriptionAttribute(string description) + { + Description = description; + } + } + + [AttributeUsage(AttributeTargets.Class | AttributeTargets.Property)] + public class DoNotExportAttribute : Attribute + { + } + + [AttributeUsage(AttributeTargets.Class)] + public class InternalExportAttribute : Attribute + { + } + + [AttributeUsage(AttributeTargets.Class)] + public class GeneratedAttribute : Attribute + { + } + + [AttributeUsage(AttributeTargets.Class | AttributeTargets.Property)] + public class DoNotFormatAttribute : Attribute + { + } + + [AttributeUsage(AttributeTargets.Class)] + public class ProfileAttribute : Attribute + { + public string[] Profiles { get; } + + public ProfileAttribute(params string[] profiles) + { + Profiles = profiles; + } + } + + [AttributeUsage(AttributeTargets.Field | AttributeTargets.Property)] + public class CategoryAttribute : Attribute + { + public ParameterCategory[] Categories { get; } + + public CategoryAttribute(params ParameterCategory[] categories) + { + Categories = categories; + } + } + + [AttributeUsage(AttributeTargets.Field | AttributeTargets.Property)] + public class ExportAsAttribute : Attribute + { + public Type Type { get; set; } + + public ExportAsAttribute(Type type) + { + Type = type; + } + } + + public enum ParameterCategory + { + // Note: Order is significant + Uri = 0, + Path, + Query, + Header, + Cookie, + Body, + Azure, + Runtime + } + + [AttributeUsage(AttributeTargets.Property)] + public class OriginAttribute : Attribute + { + public PropertyOrigin Origin { get; } + + public OriginAttribute(PropertyOrigin origin) + { + Origin = origin; + } + } + + public enum PropertyOrigin + { + // Note: Order is significant + Inherited = 0, + Owned, + Inlined + } + + [AttributeUsage(AttributeTargets.Property)] + public class FormatTableAttribute : Attribute + { + public int Index { get; set; } = -1; + public bool HasIndex => Index != -1; + public string Label { get; set; } + public int Width { get; set; } = -1; + public bool HasWidth => Width != -1; + } +} diff --git a/swaggerci/eventgrid/generated/runtime/BuildTime/PsExtensions.cs b/swaggerci/eventgrid/generated/runtime/BuildTime/PsExtensions.cs new file mode 100644 index 000000000000..9d794b5c8dec --- /dev/null +++ b/swaggerci/eventgrid/generated/runtime/BuildTime/PsExtensions.cs @@ -0,0 +1,169 @@ +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ +using System; +using System.Collections; +using System.Collections.Generic; +using System.Linq; +using System.Management.Automation; +using System.Reflection; + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell +{ + internal static class PsExtensions + { + // https://stackoverflow.com/a/863944/294804 + // https://stackoverflow.com/a/4452598/294804 + // https://stackoverflow.com/a/28701974/294804 + // Note: This will unwrap nested collections, but we don't generate nested collections. + public static Type Unwrap(this Type type) + { + if (type.IsArray) + { + return type.GetElementType().Unwrap(); + } + + var typeInfo = type.GetTypeInfo(); + if (typeInfo.IsGenericType + && (typeInfo.GetGenericTypeDefinition() == typeof(Nullable<>) || typeof(IEnumerable<>).IsAssignableFrom(type))) + { + return typeInfo.GetGenericArguments().First().Unwrap(); + } + + return type; + } + + // https://stackoverflow.com/a/863944/294804 + private static bool IsSimple(this Type type) + { + var typeInfo = type.GetTypeInfo(); + return typeInfo.IsPrimitive + || typeInfo.IsEnum + || type == typeof(string) + || type == typeof(decimal); + } + + // https://stackoverflow.com/a/32025393/294804 + private static bool HasImplicitConversion(this Type baseType, Type targetType) => + baseType.GetMethods(BindingFlags.Public | BindingFlags.Static) + .Where(mi => mi.Name == "op_Implicit" && mi.ReturnType == targetType) + .Any(mi => mi.GetParameters().FirstOrDefault()?.ParameterType == baseType); + + public static bool IsPsSimple(this Type type) + { + var unwrappedType = type.Unwrap(); + return unwrappedType.IsSimple() + || unwrappedType == typeof(SwitchParameter) + || unwrappedType == typeof(Hashtable) + || unwrappedType == typeof(PSCredential) + || unwrappedType == typeof(ScriptBlock) + || unwrappedType == typeof(DateTime) + || unwrappedType == typeof(Uri) + || unwrappedType.HasImplicitConversion(typeof(string)); + } + + public static string ToPsList(this IEnumerable items) => String.Join(", ", items.Select(i => $"'{i}'")); + + public static IEnumerable ToAliasNames(this IEnumerable attributes) => attributes.OfType().SelectMany(aa => aa.AliasNames).Distinct(); + + public static bool IsArrayAndElementTypeIsT(this object item) + { + var itemType = item.GetType(); + var tType = typeof(T); + return itemType.IsArray && !tType.IsArray && tType.IsAssignableFrom(itemType.GetElementType()); + } + + public static bool IsTArrayAndElementTypeIsItem(this object item) + { + var itemType = item.GetType(); + var tType = typeof(T); + return !itemType.IsArray && tType.IsArray && (tType.GetElementType()?.IsAssignableFrom(itemType) ?? false); + } + + public static bool IsTypeOrArrayOfType(this object item) => item is T || item.IsArrayAndElementTypeIsT() || item.IsTArrayAndElementTypeIsItem(); + + public static T NormalizeArrayType(this object item) + { + if (item is T result) + { + return result; + } + + if (item.IsArrayAndElementTypeIsT()) + { + var array = (T[])Convert.ChangeType(item, typeof(T[])); + return array.FirstOrDefault(); + } + + if (item.IsTArrayAndElementTypeIsItem()) + { + var tType = typeof(T); + var array = Array.CreateInstance(tType.GetElementType(), 1); + array.SetValue(item, 0); + return (T)Convert.ChangeType(array, tType); + } + + return default(T); + } + + public static T GetNestedProperty(this PSObject psObject, params string[] names) => psObject.Properties.GetNestedProperty(names); + + public static T GetNestedProperty(this PSMemberInfoCollection properties, params string[] names) + { + var lastName = names.Last(); + var nestedProperties = names.Take(names.Length - 1).Aggregate(properties, (p, n) => p?.GetProperty(n)?.Properties); + return nestedProperties != null ? nestedProperties.GetProperty(lastName) : default(T); + } + + public static T GetProperty(this PSObject psObject, string name) => psObject.Properties.GetProperty(name); + + public static T GetProperty(this PSMemberInfoCollection properties, string name) + { + switch (properties[name]?.Value) + { + case PSObject psObject when psObject.BaseObject is PSCustomObject && psObject.ImmediateBaseObject.IsTypeOrArrayOfType(): + return psObject.ImmediateBaseObject.NormalizeArrayType(); + case PSObject psObject when psObject.BaseObject.IsTypeOrArrayOfType(): + return psObject.BaseObject.NormalizeArrayType(); + case object value when value.IsTypeOrArrayOfType(): + return value.NormalizeArrayType(); + default: + return default(T); + } + } + + public static IEnumerable RunScript(this PSCmdlet cmdlet, string script) + => PsHelpers.RunScript(cmdlet.InvokeCommand, script); + + public static void RunScript(this PSCmdlet cmdlet, string script) + => cmdlet.RunScript(script); + + public static IEnumerable RunScript(this EngineIntrinsics engineIntrinsics, string script) + => PsHelpers.RunScript(engineIntrinsics.InvokeCommand, script); + + public static void RunScript(this EngineIntrinsics engineIntrinsics, string script) + => engineIntrinsics.RunScript(script); + + public static IEnumerable RunScript(this PSCmdlet cmdlet, ScriptBlock block) + => PsHelpers.RunScript(cmdlet.InvokeCommand, block.ToString()); + + public static void RunScript(this PSCmdlet cmdlet, ScriptBlock block) + => cmdlet.RunScript(block.ToString()); + + public static IEnumerable RunScript(this EngineIntrinsics engineIntrinsics, ScriptBlock block) + => PsHelpers.RunScript(engineIntrinsics.InvokeCommand, block.ToString()); + + public static void RunScript(this EngineIntrinsics engineIntrinsics, ScriptBlock block) + => engineIntrinsics.RunScript(block.ToString()); + + /// + /// Returns if a parameter should be hidden by checking for . + /// + /// A PowerShell parameter. + public static bool IsHidden(this Parameter parameter) + { + return parameter.Attributes.Any(attr => attr is DoNotExportAttribute); + } + } +} diff --git a/swaggerci/eventgrid/generated/runtime/BuildTime/PsHelpers.cs b/swaggerci/eventgrid/generated/runtime/BuildTime/PsHelpers.cs new file mode 100644 index 000000000000..1afb1fb5f898 --- /dev/null +++ b/swaggerci/eventgrid/generated/runtime/BuildTime/PsHelpers.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. + *--------------------------------------------------------------------------------------------*/ +using System; +using System.Collections; +using System.Collections.Generic; +using System.IO; +using System.Linq; +using System.Management.Automation; +using Pwsh = System.Management.Automation.PowerShell; + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell +{ + internal static class PsHelpers + { + public static IEnumerable RunScript(string script) + => Pwsh.Create().AddScript(script).Invoke(); + + public static void RunScript(string script) + => RunScript(script); + + public static IEnumerable RunScript(CommandInvocationIntrinsics cii, string script) + => cii.InvokeScript(script).Select(o => o?.BaseObject).Where(o => o != null).OfType(); + + public static void RunScript(CommandInvocationIntrinsics cii, string script) + => RunScript(cii, script); + + public static IEnumerable GetModuleCmdlets(PSCmdlet cmdlet, params string[] modulePaths) + { + var getCmdletsCommand = String.Join(" + ", modulePaths.Select(mp => $"(Get-Command -Module (Import-Module '{mp}' -PassThru))")); + return (cmdlet?.RunScript(getCmdletsCommand) ?? RunScript(getCmdletsCommand)) + .Where(ci => ci.CommandType != CommandTypes.Alias); + } + + public static IEnumerable GetModuleCmdlets(params string[] modulePaths) + => GetModuleCmdlets(null, modulePaths); + + public static IEnumerable GetScriptCmdlets(PSCmdlet cmdlet, string scriptFolder) + { + // https://stackoverflow.com/a/40969712/294804 + var getCmdletsCommand = $@" +$currentFunctions = Get-ChildItem function: +Get-ChildItem -Path '{scriptFolder}' -Recurse -Include '*.ps1' -File | ForEach-Object {{ . $_.FullName }} +Get-ChildItem function: | Where-Object {{ ($currentFunctions -notcontains $_) -and $_.CmdletBinding }} +"; + return cmdlet?.RunScript(getCmdletsCommand) ?? RunScript(getCmdletsCommand); + } + + public static IEnumerable GetScriptCmdlets(string scriptFolder) + => GetScriptCmdlets(null, scriptFolder); + + public static IEnumerable GetScriptHelpInfo(PSCmdlet cmdlet, params string[] modulePaths) + { + var importModules = String.Join(Environment.NewLine, modulePaths.Select(mp => $"Import-Module '{mp}'")); + var getHelpCommand = $@" +$currentFunctions = Get-ChildItem function: +{importModules} +Get-ChildItem function: | Where-Object {{ ($currentFunctions -notcontains $_) -and $_.CmdletBinding }} | ForEach-Object {{ Get-Help -Name $_.Name -Full }} +"; + return cmdlet?.RunScript(getHelpCommand) ?? RunScript(getHelpCommand); + } + + public static IEnumerable GetScriptHelpInfo(params string[] modulePaths) + => GetScriptHelpInfo(null, modulePaths); + + public static IEnumerable GetModuleCmdletsAndHelpInfo(PSCmdlet cmdlet, params string[] modulePaths) + { + var getCmdletAndHelp = String.Join(" + ", modulePaths.Select(mp => + $@"(Get-Command -Module (Import-Module '{mp}' -PassThru) | Where-Object {{ $_.CommandType -ne 'Alias' }} | ForEach-Object {{ @{{ CommandInfo = $_; HelpInfo = ( invoke-command {{ try {{ Get-Help -Name $_.Name -Full }} catch{{ '' }} }} ) }} }})" + )); + return (cmdlet?.RunScript(getCmdletAndHelp) ?? RunScript(getCmdletAndHelp)) + .Select(h => new CmdletAndHelpInfo { CommandInfo = (h["CommandInfo"] as PSObject)?.BaseObject as CommandInfo, HelpInfo = h["HelpInfo"] as PSObject }); + } + + public static IEnumerable GetModuleCmdletsAndHelpInfo(params string[] modulePaths) + => GetModuleCmdletsAndHelpInfo(null, modulePaths); + + public static CmdletAndHelpInfo ToCmdletAndHelpInfo(this CommandInfo commandInfo, PSObject helpInfo) => new CmdletAndHelpInfo { CommandInfo = commandInfo, HelpInfo = helpInfo }; + + public const string Psd1Indent = " "; + public const string GuidStart = Psd1Indent + "GUID"; + + public static Guid ReadGuidFromPsd1(string psd1Path) + { + var guid = Guid.NewGuid(); + if (File.Exists(psd1Path)) + { + var currentGuid = File.ReadAllLines(psd1Path) + .FirstOrDefault(l => l.StartsWith(GuidStart))?.Split(new[] { " = " }, StringSplitOptions.RemoveEmptyEntries) + .LastOrDefault()?.Replace("'", String.Empty); + guid = currentGuid != null ? Guid.Parse(currentGuid) : guid; + } + + return guid; + } + } + + internal class CmdletAndHelpInfo + { + public CommandInfo CommandInfo { get; set; } + public PSObject HelpInfo { get; set; } + } +} diff --git a/swaggerci/eventgrid/generated/runtime/BuildTime/StringExtensions.cs b/swaggerci/eventgrid/generated/runtime/BuildTime/StringExtensions.cs new file mode 100644 index 000000000000..199d0bfd0d43 --- /dev/null +++ b/swaggerci/eventgrid/generated/runtime/BuildTime/StringExtensions.cs @@ -0,0 +1,24 @@ +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ +using System; +using System.Linq; + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell +{ + internal static class StringExtensions + { + public static string NullIfEmpty(this string text) => String.IsNullOrEmpty(text) ? null : text; + public static string NullIfWhiteSpace(this string text) => String.IsNullOrWhiteSpace(text) ? null : text; + public static string EmptyIfNull(this string text) => text ?? String.Empty; + + public static bool? ToNullableBool(this string text) => String.IsNullOrEmpty(text) ? (bool?)null : Convert.ToBoolean(text.ToLowerInvariant()); + + public static string ToUpperFirstCharacter(this string text) => String.IsNullOrEmpty(text) ? text : $"{text[0].ToString().ToUpperInvariant()}{text.Remove(0, 1)}"; + + public static string ReplaceNewLines(this string value, string replacer = " ", string[] newLineSymbols = null) + => (newLineSymbols ?? new []{ "\r\n", "\n" }).Aggregate(value.EmptyIfNull(), (current, symbol) => current.Replace(symbol, replacer)); + public static string NormalizeNewLines(this string value) => value.ReplaceNewLines("\u00A0").Replace("\u00A0", Environment.NewLine); + } +} diff --git a/swaggerci/eventgrid/generated/runtime/BuildTime/XmlExtensions.cs b/swaggerci/eventgrid/generated/runtime/BuildTime/XmlExtensions.cs new file mode 100644 index 000000000000..2eb5a4b6c55b --- /dev/null +++ b/swaggerci/eventgrid/generated/runtime/BuildTime/XmlExtensions.cs @@ -0,0 +1,28 @@ +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ +using System.IO; +using System.Xml; +using System.Xml.Serialization; + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell +{ + internal static class XmlExtensions + { + public static string ToXmlString(this T inputObject, bool excludeDeclaration = false) + { + var serializer = new XmlSerializer(typeof(T)); + //https://stackoverflow.com/a/760290/294804 + //https://stackoverflow.com/a/3732234/294804 + var namespaces = new XmlSerializerNamespaces(new[] { XmlQualifiedName.Empty }); + var xmlSettings = new XmlWriterSettings { OmitXmlDeclaration = excludeDeclaration, Indent = true }; + using (var stringWriter = new StringWriter()) + using (var xmlWriter = XmlWriter.Create(stringWriter, xmlSettings)) + { + serializer.Serialize(xmlWriter, inputObject, namespaces); + return stringWriter.ToString(); + } + } + } +} diff --git a/swaggerci/eventgrid/generated/runtime/CmdInfoHandler.cs b/swaggerci/eventgrid/generated/runtime/CmdInfoHandler.cs new file mode 100644 index 000000000000..815b2a57a759 --- /dev/null +++ b/swaggerci/eventgrid/generated/runtime/CmdInfoHandler.cs @@ -0,0 +1,40 @@ +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ +using System; +using System.Management.Automation; +using System.Net.Http; +using System.Threading; +using System.Threading.Tasks; + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime +{ + using NextDelegate = Func, Task>, Task>; + using SignalDelegate = Func, Task>; + + public class CmdInfoHandler + { + private readonly string processRecordId; + private readonly string parameterSetName; + private readonly InvocationInfo invocationInfo; + + public CmdInfoHandler(string processRecordId, InvocationInfo invocationInfo, string parameterSetName) + { + this.processRecordId = processRecordId; + this.parameterSetName = parameterSetName; + this.invocationInfo = invocationInfo; + } + + public Task SendAsync(HttpRequestMessage request, CancellationToken token, Action cancel, SignalDelegate signal, NextDelegate next) + { + request.Headers.Add("x-ms-client-request-id", processRecordId); + request.Headers.Add("CommandName", invocationInfo?.InvocationName); + request.Headers.Add("FullCommandName", invocationInfo?.MyCommand?.Name); + request.Headers.Add("ParameterSetName", parameterSetName); + + // continue with pipeline. + return next(request, token, cancel, signal); + } + } +} diff --git a/swaggerci/eventgrid/generated/runtime/Conversions/ConversionException.cs b/swaggerci/eventgrid/generated/runtime/Conversions/ConversionException.cs new file mode 100644 index 000000000000..9a90120a4c33 --- /dev/null +++ b/swaggerci/eventgrid/generated/runtime/Conversions/ConversionException.cs @@ -0,0 +1,17 @@ +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ +using System; + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json +{ + internal class ConversionException : Exception + { + internal ConversionException(string message) + : base(message) { } + + internal ConversionException(JsonNode node, Type targetType) + : base($"Cannot convert '{node.Type}' to a {targetType.Name}") { } + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/runtime/Conversions/IJsonConverter.cs b/swaggerci/eventgrid/generated/runtime/Conversions/IJsonConverter.cs new file mode 100644 index 000000000000..f25ab2223939 --- /dev/null +++ b/swaggerci/eventgrid/generated/runtime/Conversions/IJsonConverter.cs @@ -0,0 +1,13 @@ +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json +{ + internal interface IJsonConverter + { + JsonNode ToJson(object value); + + object FromJson(JsonNode node); + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/runtime/Conversions/Instances/BinaryConverter.cs b/swaggerci/eventgrid/generated/runtime/Conversions/Instances/BinaryConverter.cs new file mode 100644 index 000000000000..94956703211e --- /dev/null +++ b/swaggerci/eventgrid/generated/runtime/Conversions/Instances/BinaryConverter.cs @@ -0,0 +1,24 @@ +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ +using System; + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json +{ + public sealed class BinaryConverter : JsonConverter + { + internal override JsonNode ToJson(byte[] value) => new XBinary(value); + + internal override byte[] FromJson(JsonNode node) + { + switch (node.Type) + { + case JsonType.String : return Convert.FromBase64String(node.ToString()); // Base64 Encoded + case JsonType.Binary : return ((XBinary)node).Value; + } + + throw new ConversionException(node, typeof(byte[])); + } + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/runtime/Conversions/Instances/BooleanConverter.cs b/swaggerci/eventgrid/generated/runtime/Conversions/Instances/BooleanConverter.cs new file mode 100644 index 000000000000..4557823a7497 --- /dev/null +++ b/swaggerci/eventgrid/generated/runtime/Conversions/Instances/BooleanConverter.cs @@ -0,0 +1,13 @@ +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json +{ + public sealed class BooleanConverter : JsonConverter + { + internal override JsonNode ToJson(bool value) => new JsonBoolean(value); + + internal override bool FromJson(JsonNode node) => (bool)node; + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/runtime/Conversions/Instances/DateTimeConverter.cs b/swaggerci/eventgrid/generated/runtime/Conversions/Instances/DateTimeConverter.cs new file mode 100644 index 000000000000..3a9407f16d86 --- /dev/null +++ b/swaggerci/eventgrid/generated/runtime/Conversions/Instances/DateTimeConverter.cs @@ -0,0 +1,18 @@ +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ +using System; + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json +{ + public sealed class DateTimeConverter : JsonConverter + { + internal override JsonNode ToJson(DateTime value) + { + return new JsonDate(value); + } + + internal override DateTime FromJson(JsonNode node) => (DateTime)node; + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/runtime/Conversions/Instances/DateTimeOffsetConverter.cs b/swaggerci/eventgrid/generated/runtime/Conversions/Instances/DateTimeOffsetConverter.cs new file mode 100644 index 000000000000..120afe01c738 --- /dev/null +++ b/swaggerci/eventgrid/generated/runtime/Conversions/Instances/DateTimeOffsetConverter.cs @@ -0,0 +1,15 @@ +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ +using System; + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json +{ + public sealed class DateTimeOffsetConverter : JsonConverter + { + internal override JsonNode ToJson(DateTimeOffset value) => new JsonDate(value); + + internal override DateTimeOffset FromJson(JsonNode node) => (DateTimeOffset)node; + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/runtime/Conversions/Instances/DecimalConverter.cs b/swaggerci/eventgrid/generated/runtime/Conversions/Instances/DecimalConverter.cs new file mode 100644 index 000000000000..f9309c2dc710 --- /dev/null +++ b/swaggerci/eventgrid/generated/runtime/Conversions/Instances/DecimalConverter.cs @@ -0,0 +1,16 @@ +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json +{ + public sealed class DecimalConverter : JsonConverter + { + internal override JsonNode ToJson(decimal value) => new JsonNumber(value.ToString()); + + internal override decimal FromJson(JsonNode node) + { + return (decimal)node; + } + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/runtime/Conversions/Instances/DoubleConverter.cs b/swaggerci/eventgrid/generated/runtime/Conversions/Instances/DoubleConverter.cs new file mode 100644 index 000000000000..2dcfa8030a7d --- /dev/null +++ b/swaggerci/eventgrid/generated/runtime/Conversions/Instances/DoubleConverter.cs @@ -0,0 +1,13 @@ +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json +{ + public sealed class DoubleConverter : JsonConverter + { + internal override JsonNode ToJson(double value) => new JsonNumber(value); + + internal override double FromJson(JsonNode node) => (double)node; + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/runtime/Conversions/Instances/EnumConverter.cs b/swaggerci/eventgrid/generated/runtime/Conversions/Instances/EnumConverter.cs new file mode 100644 index 000000000000..319117635ef9 --- /dev/null +++ b/swaggerci/eventgrid/generated/runtime/Conversions/Instances/EnumConverter.cs @@ -0,0 +1,30 @@ +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ +using System; + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json +{ + public sealed class EnumConverter : IJsonConverter + { + private readonly Type type; + + internal EnumConverter(Type type) + { + this.type = type ?? throw new ArgumentNullException(nameof(type)); + } + + public JsonNode ToJson(object value) => new JsonString(value.ToString()); + + public object FromJson(JsonNode node) + { + if (node.Type == JsonType.Number) + { + return Enum.ToObject(type, (int)node); + } + + return Enum.Parse(type, node.ToString(), ignoreCase: true); + } + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/runtime/Conversions/Instances/GuidConverter.cs b/swaggerci/eventgrid/generated/runtime/Conversions/Instances/GuidConverter.cs new file mode 100644 index 000000000000..6215fd9d4fa9 --- /dev/null +++ b/swaggerci/eventgrid/generated/runtime/Conversions/Instances/GuidConverter.cs @@ -0,0 +1,15 @@ +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ +using System; + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json +{ + public sealed class GuidConverter : JsonConverter + { + internal override JsonNode ToJson(Guid value) => new JsonString(value.ToString()); + + internal override Guid FromJson(JsonNode node) => (Guid)node; + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/runtime/Conversions/Instances/HashSet'1Converter.cs b/swaggerci/eventgrid/generated/runtime/Conversions/Instances/HashSet'1Converter.cs new file mode 100644 index 000000000000..6fc4d1b1bb6a --- /dev/null +++ b/swaggerci/eventgrid/generated/runtime/Conversions/Instances/HashSet'1Converter.cs @@ -0,0 +1,27 @@ +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ +using System.Collections.Generic; +using System.Linq; + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json +{ + public sealed class HashSetConverter : JsonConverter> + { + internal override JsonNode ToJson(HashSet value) + { + return new XSet(value); + } + + internal override HashSet FromJson(JsonNode node) + { + var collection = node as ICollection; + + if (collection.Count == 0) return null; + + // TODO: Remove Linq depedency + return new HashSet(collection.Cast()); + } + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/runtime/Conversions/Instances/Int16Converter.cs b/swaggerci/eventgrid/generated/runtime/Conversions/Instances/Int16Converter.cs new file mode 100644 index 000000000000..6dfc64e81efe --- /dev/null +++ b/swaggerci/eventgrid/generated/runtime/Conversions/Instances/Int16Converter.cs @@ -0,0 +1,13 @@ +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json +{ + public sealed class Int16Converter : JsonConverter + { + internal override JsonNode ToJson(short value) => new JsonNumber(value); + + internal override short FromJson(JsonNode node) => (short)node; + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/runtime/Conversions/Instances/Int32Converter.cs b/swaggerci/eventgrid/generated/runtime/Conversions/Instances/Int32Converter.cs new file mode 100644 index 000000000000..9505351fe01b --- /dev/null +++ b/swaggerci/eventgrid/generated/runtime/Conversions/Instances/Int32Converter.cs @@ -0,0 +1,13 @@ +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json +{ + public sealed class Int32Converter : JsonConverter + { + internal override JsonNode ToJson(int value) => new JsonNumber(value); + + internal override int FromJson(JsonNode node) => (int)node; + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/runtime/Conversions/Instances/Int64Converter.cs b/swaggerci/eventgrid/generated/runtime/Conversions/Instances/Int64Converter.cs new file mode 100644 index 000000000000..acef0f685d07 --- /dev/null +++ b/swaggerci/eventgrid/generated/runtime/Conversions/Instances/Int64Converter.cs @@ -0,0 +1,13 @@ +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json +{ + public sealed class Int64Converter : JsonConverter + { + internal override JsonNode ToJson(long value) => new JsonNumber(value); + + internal override long FromJson(JsonNode node) => (long)node; + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/runtime/Conversions/Instances/JsonArrayConverter.cs b/swaggerci/eventgrid/generated/runtime/Conversions/Instances/JsonArrayConverter.cs new file mode 100644 index 000000000000..acd53443ef54 --- /dev/null +++ b/swaggerci/eventgrid/generated/runtime/Conversions/Instances/JsonArrayConverter.cs @@ -0,0 +1,13 @@ +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json +{ + public sealed class JsonArrayConverter : JsonConverter + { + internal override JsonNode ToJson(JsonArray value) => value; + + internal override JsonArray FromJson(JsonNode node) => (JsonArray)node; + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/runtime/Conversions/Instances/JsonObjectConverter.cs b/swaggerci/eventgrid/generated/runtime/Conversions/Instances/JsonObjectConverter.cs new file mode 100644 index 000000000000..3fb8ec6ee739 --- /dev/null +++ b/swaggerci/eventgrid/generated/runtime/Conversions/Instances/JsonObjectConverter.cs @@ -0,0 +1,13 @@ +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json +{ + public sealed class JsonObjectConverter : JsonConverter + { + internal override JsonNode ToJson(JsonObject value) => value; + + internal override JsonObject FromJson(JsonNode node) => (JsonObject)node; + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/runtime/Conversions/Instances/SingleConverter.cs b/swaggerci/eventgrid/generated/runtime/Conversions/Instances/SingleConverter.cs new file mode 100644 index 000000000000..4cc950b37aaf --- /dev/null +++ b/swaggerci/eventgrid/generated/runtime/Conversions/Instances/SingleConverter.cs @@ -0,0 +1,13 @@ +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json +{ + public sealed class SingleConverter : JsonConverter + { + internal override JsonNode ToJson(float value) => new JsonNumber(value.ToString()); + + internal override float FromJson(JsonNode node) => (float)node; + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/runtime/Conversions/Instances/StringConverter.cs b/swaggerci/eventgrid/generated/runtime/Conversions/Instances/StringConverter.cs new file mode 100644 index 000000000000..ccef130222ac --- /dev/null +++ b/swaggerci/eventgrid/generated/runtime/Conversions/Instances/StringConverter.cs @@ -0,0 +1,13 @@ +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json +{ + public sealed class StringConverter : JsonConverter + { + internal override JsonNode ToJson(string value) => new JsonString(value); + + internal override string FromJson(JsonNode node) => node.ToString(); + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/runtime/Conversions/Instances/TimeSpanConverter.cs b/swaggerci/eventgrid/generated/runtime/Conversions/Instances/TimeSpanConverter.cs new file mode 100644 index 000000000000..e09ced62640e --- /dev/null +++ b/swaggerci/eventgrid/generated/runtime/Conversions/Instances/TimeSpanConverter.cs @@ -0,0 +1,15 @@ +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ +using System; + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json +{ + public sealed class TimeSpanConverter : JsonConverter + { + internal override JsonNode ToJson(TimeSpan value) => new JsonString(value.ToString()); + + internal override TimeSpan FromJson(JsonNode node) => (TimeSpan)node; + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/runtime/Conversions/Instances/UInt16Converter.cs b/swaggerci/eventgrid/generated/runtime/Conversions/Instances/UInt16Converter.cs new file mode 100644 index 000000000000..ce1fee49e197 --- /dev/null +++ b/swaggerci/eventgrid/generated/runtime/Conversions/Instances/UInt16Converter.cs @@ -0,0 +1,13 @@ +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json +{ + public sealed class UInt16Converter : JsonConverter + { + internal override JsonNode ToJson(ushort value) => new JsonNumber(value); + + internal override ushort FromJson(JsonNode node) => (ushort)node; + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/runtime/Conversions/Instances/UInt32Converter.cs b/swaggerci/eventgrid/generated/runtime/Conversions/Instances/UInt32Converter.cs new file mode 100644 index 000000000000..f6ee9d94ae13 --- /dev/null +++ b/swaggerci/eventgrid/generated/runtime/Conversions/Instances/UInt32Converter.cs @@ -0,0 +1,13 @@ +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json +{ + public sealed class UInt32Converter : JsonConverter + { + internal override JsonNode ToJson(uint value) => new JsonNumber(value); + + internal override uint FromJson(JsonNode node) => (uint)node; + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/runtime/Conversions/Instances/UInt64Converter.cs b/swaggerci/eventgrid/generated/runtime/Conversions/Instances/UInt64Converter.cs new file mode 100644 index 000000000000..0e6ceeabebdd --- /dev/null +++ b/swaggerci/eventgrid/generated/runtime/Conversions/Instances/UInt64Converter.cs @@ -0,0 +1,13 @@ +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json +{ + public sealed class UInt64Converter : JsonConverter + { + internal override JsonNode ToJson(ulong value) => new JsonNumber(value.ToString()); + + internal override ulong FromJson(JsonNode node) => (ulong)node; + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/runtime/Conversions/Instances/UriConverter.cs b/swaggerci/eventgrid/generated/runtime/Conversions/Instances/UriConverter.cs new file mode 100644 index 000000000000..ceab677285b1 --- /dev/null +++ b/swaggerci/eventgrid/generated/runtime/Conversions/Instances/UriConverter.cs @@ -0,0 +1,15 @@ +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ +using System; + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json +{ + public sealed class UriConverter : JsonConverter + { + internal override JsonNode ToJson(Uri value) => new JsonString(value.AbsoluteUri); + + internal override Uri FromJson(JsonNode node) => (Uri)node; + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/runtime/Conversions/JsonConverter.cs b/swaggerci/eventgrid/generated/runtime/Conversions/JsonConverter.cs new file mode 100644 index 000000000000..b721fbe8dfab --- /dev/null +++ b/swaggerci/eventgrid/generated/runtime/Conversions/JsonConverter.cs @@ -0,0 +1,21 @@ +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json +{ + public abstract class JsonConverter : IJsonConverter + { + internal abstract T FromJson(JsonNode node); + + internal abstract JsonNode ToJson(T value); + + #region IConverter + + object IJsonConverter.FromJson(JsonNode node) => FromJson(node); + + JsonNode IJsonConverter.ToJson(object value) => ToJson((T)value); + + #endregion + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/runtime/Conversions/JsonConverterAttribute.cs b/swaggerci/eventgrid/generated/runtime/Conversions/JsonConverterAttribute.cs new file mode 100644 index 000000000000..c4048e1e46a4 --- /dev/null +++ b/swaggerci/eventgrid/generated/runtime/Conversions/JsonConverterAttribute.cs @@ -0,0 +1,18 @@ +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ +using System; + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json +{ + public sealed class JsonConverterAttribute : Attribute + { + internal JsonConverterAttribute(Type type) + { + Converter = (IJsonConverter)Activator.CreateInstance(type); + } + + internal IJsonConverter Converter { get; } + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/runtime/Conversions/JsonConverterFactory.cs b/swaggerci/eventgrid/generated/runtime/Conversions/JsonConverterFactory.cs new file mode 100644 index 000000000000..a921b6554239 --- /dev/null +++ b/swaggerci/eventgrid/generated/runtime/Conversions/JsonConverterFactory.cs @@ -0,0 +1,91 @@ +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ +using System; +using System.Collections.Generic; + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json +{ + public sealed class JsonConverterFactory + { + private static readonly Dictionary converters = new Dictionary(); + + static JsonConverterFactory() + { + AddInternal(new BooleanConverter()); + AddInternal(new DateTimeConverter()); + AddInternal(new DateTimeOffsetConverter()); + AddInternal(new BinaryConverter()); + AddInternal(new DecimalConverter()); + AddInternal(new DoubleConverter()); + AddInternal(new GuidConverter()); + AddInternal(new Int16Converter()); + AddInternal(new Int32Converter()); + AddInternal(new Int64Converter()); + AddInternal(new SingleConverter()); + AddInternal(new StringConverter()); + AddInternal(new TimeSpanConverter()); + AddInternal(new UInt16Converter()); + AddInternal(new UInt32Converter()); + AddInternal(new UInt64Converter()); + AddInternal(new UriConverter()); + + // Hash sets + AddInternal(new HashSetConverter()); + AddInternal(new HashSetConverter()); + AddInternal(new HashSetConverter()); + AddInternal(new HashSetConverter()); + AddInternal(new HashSetConverter()); + AddInternal(new HashSetConverter()); + + // JSON + + AddInternal(new JsonObjectConverter()); + AddInternal(new JsonArrayConverter()); + } + + internal static Dictionary Instances => converters; + + internal static IJsonConverter Get(Type type) + { + var details = TypeDetails.Get(type); + + if (details.JsonConverter == null) + { + throw new ConversionException($"No converter found for '{type.Name}'."); + } + + return details.JsonConverter; + } + + internal static bool TryGet(Type type, out IJsonConverter converter) + { + var typeDetails = TypeDetails.Get(type); + + converter = typeDetails.JsonConverter; + + return converter != null; + } + + private static void AddInternal(JsonConverter converter) + => converters.Add(typeof(T), converter); + + private static void AddInternal(IJsonConverter converter) + => converters.Add(typeof(T), converter); + + internal static void Add(JsonConverter converter) + { + if (converter == null) + { + throw new ArgumentNullException(nameof(converter)); + } + + AddInternal(converter); + + var type = TypeDetails.Get(); + + type.JsonConverter = converter; + } + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/runtime/Conversions/StringLikeConverter.cs b/swaggerci/eventgrid/generated/runtime/Conversions/StringLikeConverter.cs new file mode 100644 index 000000000000..3faeaf117fb0 --- /dev/null +++ b/swaggerci/eventgrid/generated/runtime/Conversions/StringLikeConverter.cs @@ -0,0 +1,45 @@ +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ +using System; +using System.Reflection; + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json +{ + public sealed class StringLikeConverter : IJsonConverter + { + private readonly Type type; + private readonly MethodInfo parseMethod; + + internal StringLikeConverter(Type type) + { + this.type = type ?? throw new ArgumentNullException(nameof(type)); + this.parseMethod = StringLikeHelper.GetParseMethod(type); + } + + public object FromJson(JsonNode node) => + parseMethod.Invoke(null, new[] { node.ToString() }); + + public JsonNode ToJson(object value) => new JsonString(value.ToString()); + } + + internal static class StringLikeHelper + { + private static readonly Type[] parseMethodParamaterTypes = new[] { typeof(string) }; + + internal static bool IsStringLike(Type type) + { + return GetParseMethod(type) != null; + } + + internal static MethodInfo GetParseMethod(Type type) + { + MethodInfo method = type.GetMethod("Parse", parseMethodParamaterTypes); + + if (method?.IsPublic != true) return null; + + return method; + } + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/runtime/Customizations/IJsonSerializable.cs b/swaggerci/eventgrid/generated/runtime/Customizations/IJsonSerializable.cs new file mode 100644 index 000000000000..c04815a1d81e --- /dev/null +++ b/swaggerci/eventgrid/generated/runtime/Customizations/IJsonSerializable.cs @@ -0,0 +1,263 @@ +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ + +using Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json; +using System; + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime +{ + public interface IJsonSerializable + { + JsonNode ToJson(JsonObject container = null, SerializationMode serializationMode = SerializationMode.None); + } + internal static class JsonSerializable + { + /// + /// Serializes an enumerable and returns a JsonNode. + /// + /// an IEnumerable collection of items + /// A JsonNode that contains the collection of items serialized. + private static JsonNode ToJsonValue(System.Collections.IEnumerable enumerable) + { + if (enumerable != null) + { + // is it a byte array of some kind? + if (enumerable is System.Collections.Generic.IEnumerable byteEnumerable) + { + return new XBinary(System.Linq.Enumerable.ToArray(byteEnumerable)); + } + + var hasValues = false; + // just create an array of value nodes. + var result = new XNodeArray(); + foreach (var each in enumerable) + { + // we had at least one value. + hasValues = true; + + // try to serialize it. + var node = ToJsonValue(each); + if (null != node) + { + result.Add(node); + } + } + + // if we were able to add values, (or it was just empty), return it. + if (result.Count > 0 || !hasValues) + { + return result; + } + } + + // we couldn't serialize the values. Sorry. + return null; + } + + /// + /// Serializes a valuetype to a JsonNode. + /// + /// a ValueType (ie, a primitive, enum or struct) to be serialized + /// a JsonNode with the serialized value + private static JsonNode ToJsonValue(ValueType vValue) + { + // numeric type + if (vValue is SByte || vValue is Int16 || vValue is Int32 || vValue is Int64 || vValue is Byte || vValue is UInt16 || vValue is UInt32 || vValue is UInt64 || vValue is decimal || vValue is float || vValue is double) + { + return new JsonNumber(vValue.ToString()); + } + + // boolean type + if (vValue is bool bValue) + { + return new JsonBoolean(bValue); + } + + // dates + if (vValue is DateTime dtValue) + { + return new JsonDate(dtValue); + } + + // DictionaryEntity struct type + if (vValue is System.Collections.DictionaryEntry deValue) + { + return new JsonObject { { deValue.Key.ToString(), ToJsonValue(deValue.Value) } }; + } + + // sorry, no idea. + return null; + } + /// + /// Attempts to serialize an object by using ToJson() or ToJsonString() if they exist. + /// + /// the object to be serialized. + /// the serialized JsonNode (if successful), otherwise, null + private static JsonNode TryToJsonValue(dynamic oValue) + { + object jsonValue = null; + dynamic v = oValue; + try + { + jsonValue = v.ToJson().ToString(); + } + catch + { + // no harm... + try + { + jsonValue = v.ToJsonString().ToString(); + } + catch + { + // no worries here either. + } + } + + // if we got something out, let's use it. + if (null != jsonValue) + { + // JsonNumber is really a literal json value. Just don't try to cast that back to an actual number, ok? + return new JsonNumber(jsonValue.ToString()); + } + + return null; + } + + /// + /// Serialize an object by using a variety of methods. + /// + /// the object to be serialized. + /// the serialized JsonNode (if successful), otherwise, null + internal static JsonNode ToJsonValue(object value) + { + // things that implement our interface are preferred. + if (value is Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IJsonSerializable jsonSerializable) + { + return jsonSerializable.ToJson(); + } + + // strings are easy. + if (value is string || value is char) + { + return new JsonString(value.ToString()); + } + + // value types are fairly straightforward (fallback to ToJson()/ToJsonString() or literal JsonString ) + if (value is System.ValueType vValue) + { + return ToJsonValue(vValue) ?? TryToJsonValue(vValue) ?? new JsonString(vValue.ToString()); + } + + // dictionaries are objects that should be able to serialize + if (value is System.Collections.Generic.IDictionary dictionary) + { + return Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.JsonSerializable.ToJson(dictionary, null); + } + + // hashtables are converted to dictionaries for serialization + if (value is System.Collections.Hashtable hashtable) + { + var dict = new System.Collections.Generic.Dictionary(); + DictionaryExtensions.HashTableToDictionary(hashtable, dict); + return Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.JsonSerializable.ToJson(dict, null); + } + + // enumerable collections are handled like arrays (again, fallback to ToJson()/ToJsonString() or literal JsonString) + if (value is System.Collections.IEnumerable enumerableValue) + { + // some kind of enumerable value + return ToJsonValue(enumerableValue) ?? TryToJsonValue(value) ?? new JsonString(value.ToString()); + } + + // at this point, we're going to fallback to a string literal here, since we really have no idea what it is. + return new JsonString(value.ToString()); + } + + internal static JsonObject ToJson(System.Collections.Generic.Dictionary dictionary, JsonObject container) => ToJson((System.Collections.Generic.IDictionary)dictionary, container); + + /// + /// Serializes a dictionary into a JsonObject container. + /// + /// The dictionary to serailize + /// the container to serialize the dictionary into + /// the container + internal static JsonObject ToJson(System.Collections.Generic.IDictionary dictionary, JsonObject container) + { + container = container ?? new JsonObject(); + if (dictionary != null && dictionary.Count > 0) + { + foreach (var key in dictionary) + { + // currently, we don't serialize null values. + if (null != key.Value) + { + container.Add(key.Key, ToJsonValue(key.Value)); + continue; + } + } + } + return container; + } + + internal static Func> DeserializeDictionary(Func> dictionaryFactory) + { + return (node) => FromJson(node, dictionaryFactory(), (object)(DeserializeDictionary(dictionaryFactory)) as Func); + } + + internal static System.Collections.Generic.IDictionary FromJson(JsonObject json, System.Collections.Generic.Dictionary container, System.Func objectFactory, System.Collections.Generic.HashSet excludes = null) => FromJson(json, (System.Collections.Generic.IDictionary)container, objectFactory, excludes); + + + internal static System.Collections.Generic.IDictionary FromJson(JsonObject json, System.Collections.Generic.IDictionary container, System.Func objectFactory, System.Collections.Generic.HashSet excludes = null) + { + if (null == json) + { + return container; + } + + foreach (var key in json.Keys) + { + if (true == excludes?.Contains(key)) + { + continue; + } + + var value = json[key]; + try + { + switch (value.Type) + { + case JsonType.Null: + // skip null values. + continue; + + case JsonType.Array: + case JsonType.Boolean: + case JsonType.Date: + case JsonType.Binary: + case JsonType.Number: + case JsonType.String: + container.Add(key, (V)value.ToValue()); + break; + case JsonType.Object: + if (objectFactory != null) + { + var v = objectFactory(value as JsonObject); + if (null != v) + { + container.Add(key, v); + } + } + break; + } + } + catch + { + } + } + return container; + } + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/runtime/Customizations/JsonArray.cs b/swaggerci/eventgrid/generated/runtime/Customizations/JsonArray.cs new file mode 100644 index 000000000000..3904885f7208 --- /dev/null +++ b/swaggerci/eventgrid/generated/runtime/Customizations/JsonArray.cs @@ -0,0 +1,13 @@ +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json +{ + public partial class JsonArray + { + internal override object ToValue() => Count == 0 ? new object[0] : System.Linq.Enumerable.ToArray(System.Linq.Enumerable.Select(this, each => each.ToValue())); + } + + +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/runtime/Customizations/JsonBoolean.cs b/swaggerci/eventgrid/generated/runtime/Customizations/JsonBoolean.cs new file mode 100644 index 000000000000..9de2b07e3a55 --- /dev/null +++ b/swaggerci/eventgrid/generated/runtime/Customizations/JsonBoolean.cs @@ -0,0 +1,16 @@ +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json +{ + internal partial class JsonBoolean + { + internal static JsonBoolean Create(bool? value) => value is bool b ? new JsonBoolean(b) : null; + internal bool ToBoolean() => Value; + + internal override object ToValue() => Value; + } + + +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/runtime/Customizations/JsonNode.cs b/swaggerci/eventgrid/generated/runtime/Customizations/JsonNode.cs new file mode 100644 index 000000000000..ada854e10cfb --- /dev/null +++ b/swaggerci/eventgrid/generated/runtime/Customizations/JsonNode.cs @@ -0,0 +1,21 @@ +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json +{ + using System; + using System.Collections.Generic; + + public partial class JsonNode + { + /// + /// Returns the content of this node as the underlying value. + /// Will default to the string representation if not overridden in child classes. + /// + /// an object with the underlying value of the node. + internal virtual object ToValue() { + return this.ToString(); + } + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/runtime/Customizations/JsonNumber.cs b/swaggerci/eventgrid/generated/runtime/Customizations/JsonNumber.cs new file mode 100644 index 000000000000..27a5c1d6013e --- /dev/null +++ b/swaggerci/eventgrid/generated/runtime/Customizations/JsonNumber.cs @@ -0,0 +1,78 @@ +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json +{ + using System; + + public partial class JsonNumber + { + internal static readonly DateTime EpochDate = new DateTime(1970, 1, 1, 0, 0, 0, DateTimeKind.Utc); + private static long ToUnixTime(DateTime dateTime) + { + return (long)dateTime.Subtract(EpochDate).TotalSeconds; + } + private static DateTime FromUnixTime(long totalSeconds) + { + return EpochDate.AddSeconds(totalSeconds); + } + internal byte ToByte() => this; + internal int ToInt() => this; + internal long ToLong() => this; + internal short ToShort() => this; + internal UInt16 ToUInt16() => this; + internal UInt32 ToUInt32() => this; + internal UInt64 ToUInt64() => this; + internal decimal ToDecimal() => this; + internal double ToDouble() => this; + internal float ToFloat() => this; + + internal static JsonNumber Create(int? value) => value is int n ? new JsonNumber(n) : null; + internal static JsonNumber Create(long? value) => value is long n ? new JsonNumber(n) : null; + internal static JsonNumber Create(float? value) => value is float n ? new JsonNumber(n) : null; + internal static JsonNumber Create(double? value) => value is double n ? new JsonNumber(n) : null; + internal static JsonNumber Create(decimal? value) => value is decimal n ? new JsonNumber(n) : null; + internal static JsonNumber Create(DateTime? value) => value is DateTime date ? new JsonNumber(ToUnixTime(date)) : null; + + public static implicit operator DateTime(JsonNumber number) => FromUnixTime(number); + internal DateTime ToDateTime() => this; + + internal JsonNumber(decimal value) + { + this.value = value.ToString(); + } + internal override object ToValue() + { + if (IsInteger) + { + if (int.TryParse(this.value, out int iValue)) + { + return iValue; + } + if (long.TryParse(this.value, out long lValue)) + { + return lValue; + } + } + else + { + if (float.TryParse(this.value, out float fValue)) + { + return fValue; + } + if (double.TryParse(this.value, out double dValue)) + { + return dValue; + } + if (decimal.TryParse(this.value, out decimal dcValue)) + { + return dcValue; + } + } + return null; + } + } + + +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/runtime/Customizations/JsonObject.cs b/swaggerci/eventgrid/generated/runtime/Customizations/JsonObject.cs new file mode 100644 index 000000000000..d3671db82ef1 --- /dev/null +++ b/swaggerci/eventgrid/generated/runtime/Customizations/JsonObject.cs @@ -0,0 +1,183 @@ +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json +{ + using System; + using System.Collections.Generic; + + public partial class JsonObject + { + internal override object ToValue() => Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.JsonSerializable.FromJson(this, new System.Collections.Generic.Dictionary(), (obj) => obj.ToValue()); + + internal void SafeAdd(string name, Func valueFn) + { + if (valueFn != null) + { + var value = valueFn(); + if (null != value) + { + items.Add(name, value); + } + } + } + + internal void SafeAdd(string name, JsonNode value) + { + if (null != value) + { + items.Add(name, value); + } + } + + internal T NullableProperty(string propertyName) where T : JsonNode + { + if (this.TryGetValue(propertyName, out JsonNode value)) + { + if (value.IsNull) + { + return null; + } + if (value is T tval) + { + return tval; + } + /* it's present, but not the correct type... */ + //throw new Exception($"Property {propertyName} in object expected type {typeof(T).Name} but value of type {value.Type.ToString()} was found."); + } + return null; + } + + internal JsonObject Property(string propertyName) + { + return PropertyT(propertyName); + } + + internal T PropertyT(string propertyName) where T : JsonNode + { + if (this.TryGetValue(propertyName, out JsonNode value)) + { + if (value.IsNull) + { + return null; // we're going to assume that the consumer knows what to do if null is explicity returned? + } + + if (value is T tval) + { + return tval; + } + /* it's present, but not the correct type... */ + // throw new Exception($"Property {propertyName} in object expected type {typeof(T).Name} but value of type {value.Type.ToString()} was found."); + } + return null; + } + + internal int NumberProperty(string propertyName, ref int output) => output = this.PropertyT(propertyName)?.ToInt() ?? output; + internal float NumberProperty(string propertyName, ref float output) => output = this.PropertyT(propertyName)?.ToFloat() ?? output; + internal byte NumberProperty(string propertyName, ref byte output) => output = this.PropertyT(propertyName)?.ToByte() ?? output; + internal long NumberProperty(string propertyName, ref long output) => output = this.PropertyT(propertyName)?.ToLong() ?? output; + internal double NumberProperty(string propertyName, ref double output) => output = this.PropertyT(propertyName)?.ToDouble() ?? output; + internal decimal NumberProperty(string propertyName, ref decimal output) => output = this.PropertyT(propertyName)?.ToDecimal() ?? output; + internal short NumberProperty(string propertyName, ref short output) => output = this.PropertyT(propertyName)?.ToShort() ?? output; + internal DateTime NumberProperty(string propertyName, ref DateTime output) => output = this.PropertyT(propertyName)?.ToDateTime() ?? output; + + internal int? NumberProperty(string propertyName, ref int? output) => output = this.NullableProperty(propertyName)?.ToInt() ?? null; + internal float? NumberProperty(string propertyName, ref float? output) => output = this.NullableProperty(propertyName)?.ToFloat() ?? null; + internal byte? NumberProperty(string propertyName, ref byte? output) => output = this.NullableProperty(propertyName)?.ToByte() ?? null; + internal long? NumberProperty(string propertyName, ref long? output) => output = this.NullableProperty(propertyName)?.ToLong() ?? null; + internal double? NumberProperty(string propertyName, ref double? output) => output = this.NullableProperty(propertyName)?.ToDouble() ?? null; + internal decimal? NumberProperty(string propertyName, ref decimal? output) => output = this.NullableProperty(propertyName)?.ToDecimal() ?? null; + internal short? NumberProperty(string propertyName, ref short? output) => output = this.NullableProperty(propertyName)?.ToShort() ?? null; + + internal DateTime? NumberProperty(string propertyName, ref DateTime? output) => output = this.NullableProperty(propertyName)?.ToDateTime() ?? null; + + + internal string StringProperty(string propertyName) => this.PropertyT(propertyName)?.ToString(); + internal string StringProperty(string propertyName, ref string output) => output = this.PropertyT(propertyName)?.ToString() ?? output; + internal char StringProperty(string propertyName, ref char output) => output = this.PropertyT(propertyName)?.ToChar() ?? output; + internal char? StringProperty(string propertyName, ref char? output) => output = this.PropertyT(propertyName)?.ToChar() ?? null; + + internal DateTime StringProperty(string propertyName, ref DateTime output) => DateTime.TryParse(this.PropertyT(propertyName)?.ToString(), out output) ? output : output; + internal DateTime? StringProperty(string propertyName, ref DateTime? output) => output = DateTime.TryParse(this.PropertyT(propertyName)?.ToString(), out var o) ? o : output; + + + internal bool BooleanProperty(string propertyName, ref bool output) => output = this.PropertyT(propertyName)?.ToBoolean() ?? output; + internal bool? BooleanProperty(string propertyName, ref bool? output) => output = this.PropertyT(propertyName)?.ToBoolean() ?? null; + + internal T[] ArrayProperty(string propertyName, ref T[] output, Func deserializer) + { + var array = this.PropertyT(propertyName); + if (array != null) + { + output = new T[array.Count]; + for (var i = 0; i < output.Length; i++) + { + output[i] = deserializer(array[i]); + } + } + return output; + } + internal T[] ArrayProperty(string propertyName, Func deserializer) + { + var array = this.PropertyT(propertyName); + if (array != null) + { + var output = new T[array.Count]; + for (var i = 0; i < output.Length; i++) + { + output[i] = deserializer(array[i]); + } + return output; + } + return new T[0]; + } + internal void IterateArrayProperty(string propertyName, Action deserializer) + { + var array = this.PropertyT(propertyName); + if (array != null) + { + for (var i = 0; i < array.Count; i++) + { + deserializer(array[i]); + } + } + } + + internal Dictionary DictionaryProperty(string propertyName, ref Dictionary output, Func deserializer) + { + var dictionary = this.PropertyT(propertyName); + if (output == null) + { + output = new Dictionary(); + } + else + { + output.Clear(); + } + if (dictionary != null) + { + foreach (var key in dictionary.Keys) + { + output[key] = deserializer(dictionary[key]); + } + } + return output; + } + + internal static JsonObject Create(IDictionary source, Func selector) + { + if (source == null || selector == null) + { + return null; + } + var result = new JsonObject(); + + foreach (var key in source.Keys) + { + result.SafeAdd(key, selector(source[key])); + } + return result; + } + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/runtime/Customizations/JsonString.cs b/swaggerci/eventgrid/generated/runtime/Customizations/JsonString.cs new file mode 100644 index 000000000000..3a7a6391d7fd --- /dev/null +++ b/swaggerci/eventgrid/generated/runtime/Customizations/JsonString.cs @@ -0,0 +1,34 @@ +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json +{ + using System; + using System.Globalization; + using System.Linq; + + public partial class JsonString + { + internal static string DateFormat = "yyyy-MM-dd"; + internal static string DateTimeFormat = "yyyy'-'MM'-'dd'T'HH':'mm':'ss.FFFFFFFK"; + internal static string DateTimeRfc1123Format = "R"; + + internal static JsonString Create(string value) => value == null ? null : new JsonString(value); + internal static JsonString Create(char? value) => value is char c ? new JsonString(c.ToString()) : null; + + internal static JsonString CreateDate(DateTime? value) => value is DateTime date ? new JsonString(date.ToString(DateFormat, CultureInfo.CurrentCulture)) : null; + internal static JsonString CreateDateTime(DateTime? value) => value is DateTime date ? new JsonString(date.ToString(DateTimeFormat, CultureInfo.CurrentCulture)) : null; + internal static JsonString CreateDateTimeRfc1123(DateTime? value) => value is DateTime date ? new JsonString(date.ToString(DateTimeRfc1123Format, CultureInfo.CurrentCulture)) : null; + + internal char ToChar() => this.Value?.ToString()?.FirstOrDefault() ?? default(char); + public static implicit operator char(JsonString value) => value?.ToString()?.FirstOrDefault() ?? default(char); + public static implicit operator char? (JsonString value) => value?.ToString()?.FirstOrDefault(); + + public static implicit operator DateTime(JsonString value) => DateTime.TryParse(value, out var output) ? output : default(DateTime); + public static implicit operator DateTime? (JsonString value) => DateTime.TryParse(value, out var output) ? output : default(DateTime?); + + } + + +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/runtime/Customizations/XNodeArray.cs b/swaggerci/eventgrid/generated/runtime/Customizations/XNodeArray.cs new file mode 100644 index 000000000000..987c451f5033 --- /dev/null +++ b/swaggerci/eventgrid/generated/runtime/Customizations/XNodeArray.cs @@ -0,0 +1,44 @@ +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json +{ + using System; + using System.Linq; + + public partial class XNodeArray + { + internal static XNodeArray Create(T[] source, Func selector) + { + if (source == null || selector == null) + { + return null; + } + var result = new XNodeArray(); + foreach (var item in source.Select(selector)) + { + result.SafeAdd(item); + } + return result; + } + internal void SafeAdd(JsonNode item) + { + if (item != null) + { + items.Add(item); + } + } + internal void SafeAdd(Func itemFn) + { + if (itemFn != null) + { + var item = itemFn(); + if (item != null) + { + items.Add(item); + } + } + } + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/runtime/Debugging.cs b/swaggerci/eventgrid/generated/runtime/Debugging.cs new file mode 100644 index 000000000000..844111b6c2a0 --- /dev/null +++ b/swaggerci/eventgrid/generated/runtime/Debugging.cs @@ -0,0 +1,28 @@ +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime +{ + internal static class AttachDebugger + { + internal static void Break() + { + while (!System.Diagnostics.Debugger.IsAttached) + { + System.Console.Error.WriteLine($"Waiting for debugger to attach to process {System.Diagnostics.Process.GetCurrentProcess().Id}"); + for (int i = 0; i < 50; i++) + { + if (System.Diagnostics.Debugger.IsAttached) + { + break; + } + System.Threading.Thread.Sleep(100); + System.Console.Error.Write("."); + } + System.Console.Error.WriteLine(); + } + System.Diagnostics.Debugger.Break(); + } + } +} diff --git a/swaggerci/eventgrid/generated/runtime/DictionaryExtensions.cs b/swaggerci/eventgrid/generated/runtime/DictionaryExtensions.cs new file mode 100644 index 000000000000..90801ac6be19 --- /dev/null +++ b/swaggerci/eventgrid/generated/runtime/DictionaryExtensions.cs @@ -0,0 +1,33 @@ +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime +{ + internal static class DictionaryExtensions + { + internal static void HashTableToDictionary(System.Collections.Hashtable hashtable, System.Collections.Generic.IDictionary dictionary) + { + if (null == hashtable) + { + return; + } + foreach (var each in hashtable.Keys) + { + var key = each.ToString(); + var value = hashtable[key]; + if (null != value) + { + try + { + dictionary[key] = (V)value; + } + catch + { + // Values getting dropped; not compatible with target dictionary. Not sure what to do here. + } + } + } + } + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/runtime/EventData.cs b/swaggerci/eventgrid/generated/runtime/EventData.cs new file mode 100644 index 000000000000..a0127633e8dc --- /dev/null +++ b/swaggerci/eventgrid/generated/runtime/EventData.cs @@ -0,0 +1,78 @@ +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime +{ + + using System; + using System.Threading; + + ///Represents the data in signaled event. + public partial class EventData + { + /// + /// The type of the event being signaled + /// + public string Id; + + /// + /// The user-ready message from the event. + /// + public string Message; + + /// + /// When the event is about a parameter, this is the parameter name. + /// Used in Validation Events + /// + public string Parameter; + + /// + /// This represents a numeric value associated with the event. + /// Use for progress-style events + /// + public double Value; + + /// + /// Any extended data for an event should be serialized and stored here. + /// + public string ExtendedData; + + /// + /// If the event triggers after the request message has been created, this will contain the Request Message (which in HTTP calls would be HttpRequestMessage) + /// + /// Typically you'd cast this to the expected type to use it: + /// + /// if(eventData.RequestMessgae is HttpRequestMessage httpRequest) + /// { + /// httpRequest.Headers.Add("x-request-flavor", "vanilla"); + /// } + /// + /// + public object RequestMessage; + + /// + /// If the event triggers after the response is back, this will contain the Response Message (which in HTTP calls would be HttpResponseMessage) + /// + /// Typically you'd cast this to the expected type to use it: + /// + /// if(eventData.ResponseMessage is HttpResponseMessage httpResponse){ + /// var flavor = httpResponse.Headers.GetValue("x-request-flavor"); + /// } + /// + /// + public object ResponseMessage; + + /// + /// Cancellation method for this event. + /// + /// If the event consumer wishes to cancel the request that initiated this event, call Cancel() + /// + /// + /// The original initiator of the request must provide the implementation of this. + /// + public System.Action Cancel; + } + +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/runtime/EventDataExtensions.cs b/swaggerci/eventgrid/generated/runtime/EventDataExtensions.cs new file mode 100644 index 000000000000..b33d1bbc269b --- /dev/null +++ b/swaggerci/eventgrid/generated/runtime/EventDataExtensions.cs @@ -0,0 +1,94 @@ +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime +{ + using System; + + [System.ComponentModel.TypeConverter(typeof(EventDataConverter))] + /// + /// PowerShell-specific data on top of the llc# EventData + /// + /// + /// In PowerShell, we add on the EventDataConverter to support sending events between modules. + /// Obviously, this code would need to be duplcated on both modules. + /// This is preferable to sharing a common library, as versioning makes that problematic. + /// + public partial class EventData : EventArgs + { + } + + /// + /// A PowerShell PSTypeConverter to adapt an EventData object that has been passed. + /// Usually used between modules. + /// + public class EventDataConverter : System.Management.Automation.PSTypeConverter + { + public override bool CanConvertTo(object sourceValue, Type destinationType) => false; + public override object ConvertTo(object sourceValue, Type destinationType, IFormatProvider formatProvider, bool ignoreCase) => null; + public override bool CanConvertFrom(dynamic sourceValue, Type destinationType) => destinationType == typeof(EventData) && CanConvertFrom(sourceValue); + public override object ConvertFrom(dynamic sourceValue, Type destinationType, IFormatProvider formatProvider, bool ignoreCase) => ConvertFrom(sourceValue); + + /// + /// Verifies that a given object has the required members to convert it to the target type (EventData) + /// + /// Uses a dynamic type so that it is able to use the simplest code without excessive checking. + /// + /// The instance to verify + /// True, if the object has all the required parameters. + public static bool CanConvertFrom(dynamic sourceValue) + { + try + { + // check if this has *required* parameters... + sourceValue?.Id?.GetType(); + sourceValue?.Message?.GetType(); + sourceValue?.Cancel?.GetType(); + + // remaining parameters are not *required*, + // and if they have values, it will copy them at conversion time. + } + catch + { + // if anything throws an exception (because it's null, or doesn't have that member) + return false; + } + return true; + } + + /// + /// Returns result of the delegate as the expected type, or default(T) + /// + /// This isolates any exceptions from the consumer. + /// + /// A delegate that returns a value + /// The desired output type + /// The value from the function if the type is correct + private static T To(Func srcValue) + { + try { return srcValue(); } + catch { return default(T); } + } + + /// + /// Converts an incoming object to the expected type by treating the incoming object as a dynamic, and coping the expected values. + /// + /// the incoming object + /// EventData + public static EventData ConvertFrom(dynamic sourceValue) + { + return new EventData + { + Id = To(() => sourceValue.Id), + Message = To(() => sourceValue.Message), + Parameter = To(() => sourceValue.Parameter), + Value = To(() => sourceValue.Value), + RequestMessage = To(() => sourceValue.RequestMessage), + ResponseMessage = To(() => sourceValue.ResponseMessage), + Cancel = To(() => sourceValue.Cancel) + }; + } + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/runtime/EventListener.cs b/swaggerci/eventgrid/generated/runtime/EventListener.cs new file mode 100644 index 000000000000..613e9a0db27b --- /dev/null +++ b/swaggerci/eventgrid/generated/runtime/EventListener.cs @@ -0,0 +1,247 @@ +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime +{ + + using System; + using System.Linq; + using System.Collections; + using System.Collections.Generic; + using System.Net.Http; + using System.Threading; + using System.Threading.Tasks; + using GetEventData = System.Func; + using static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Extensions; + + public interface IValidates + { + Task Validate(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IEventListener listener); + } + + /// + /// The IEventListener Interface defines the communication mechanism for Signaling events during a remote call. + /// + /// + /// The interface is designed to be as minimal as possible, allow for quick peeking of the event type (id) + /// and the cancellation status and provides a delegate for retrieving the event details themselves. + /// + public interface IEventListener + { + Task Signal(string id, CancellationToken token, GetEventData createMessage); + CancellationToken Token { get; } + System.Action Cancel { get; } + } + + internal static partial class Extensions + { + public static Task Signal(this IEventListener instance, string id, CancellationToken token, Func createMessage) => instance.Signal(id, token, createMessage); + public static Task Signal(this IEventListener instance, string id, CancellationToken token) => instance.Signal(id, token, () => new EventData { Id = id, Cancel = instance.Cancel }); + public static Task Signal(this IEventListener instance, string id, CancellationToken token, string messageText) => instance.Signal(id, token, () => new EventData { Id = id, Message = messageText, Cancel = instance.Cancel }); + public static Task Signal(this IEventListener instance, string id, CancellationToken token, string messageText, HttpRequestMessage request) => instance.Signal(id, token, () => new EventData { Id = id, Message = messageText, RequestMessage = request, Cancel = instance.Cancel }); + public static Task Signal(this IEventListener instance, string id, CancellationToken token, string messageText, HttpResponseMessage response) => instance.Signal(id, token, () => new EventData { Id = id, Message = messageText, RequestMessage = response.RequestMessage, ResponseMessage = response, Cancel = instance.Cancel }); + public static Task Signal(this IEventListener instance, string id, CancellationToken token, string messageText, double magnitude) => instance.Signal(id, token, () => new EventData { Id = id, Message = messageText, Value = magnitude, Cancel = instance.Cancel }); + public static Task Signal(this IEventListener instance, string id, CancellationToken token, string messageText, double magnitude, HttpRequestMessage request) => instance.Signal(id, token, () => new EventData { Id = id, Message = messageText, RequestMessage = request, Value = magnitude, Cancel = instance.Cancel }); + public static Task Signal(this IEventListener instance, string id, CancellationToken token, string messageText, double magnitude, HttpResponseMessage response) => instance.Signal(id, token, () => new EventData { Id = id, Message = messageText, RequestMessage = response.RequestMessage, ResponseMessage = response, Value = magnitude, Cancel = instance.Cancel }); + public static Task Signal(this IEventListener instance, string id, CancellationToken token, HttpRequestMessage request) => instance.Signal(id, token, () => new EventData { Id = id, RequestMessage = request, Cancel = instance.Cancel }); + public static Task Signal(this IEventListener instance, string id, CancellationToken token, HttpRequestMessage request, HttpResponseMessage response) => instance.Signal(id, token, () => new EventData { Id = id, RequestMessage = request, ResponseMessage = response, Cancel = instance.Cancel }); + public static Task Signal(this IEventListener instance, string id, CancellationToken token, HttpResponseMessage response) => instance.Signal(id, token, () => new EventData { Id = id, RequestMessage = response.RequestMessage, ResponseMessage = response, Cancel = instance.Cancel }); + public static Task Signal(this IEventListener instance, string id, CancellationToken token, EventData message) => instance.Signal(id, token, () => { message.Id = id; message.Cancel = instance.Cancel; return message; }); + + public static Task Signal(this IEventListener instance, string id, Func createMessage) => instance.Signal(id, instance.Token, createMessage); + public static Task Signal(this IEventListener instance, string id) => instance.Signal(id, instance.Token, () => new EventData { Id = id, Cancel = instance.Cancel }); + public static Task Signal(this IEventListener instance, string id, string messageText) => instance.Signal(id, instance.Token, () => new EventData { Id = id, Message = messageText, Cancel = instance.Cancel }); + public static Task Signal(this IEventListener instance, string id, string messageText, HttpRequestMessage request) => instance.Signal(id, instance.Token, () => new EventData { Id = id, Message = messageText, RequestMessage = request, Cancel = instance.Cancel }); + public static Task Signal(this IEventListener instance, string id, string messageText, HttpResponseMessage response) => instance.Signal(id, instance.Token, () => new EventData { Id = id, Message = messageText, RequestMessage = response.RequestMessage, ResponseMessage = response, Cancel = instance.Cancel }); + public static Task Signal(this IEventListener instance, string id, string messageText, double magnitude) => instance.Signal(id, instance.Token, () => new EventData { Id = id, Message = messageText, Value = magnitude, Cancel = instance.Cancel }); + public static Task Signal(this IEventListener instance, string id, string messageText, double magnitude, HttpRequestMessage request) => instance.Signal(id, instance.Token, () => new EventData { Id = id, Message = messageText, RequestMessage = request, Value = magnitude, Cancel = instance.Cancel }); + public static Task Signal(this IEventListener instance, string id, string messageText, double magnitude, HttpResponseMessage response) => instance.Signal(id, instance.Token, () => new EventData { Id = id, Message = messageText, RequestMessage = response.RequestMessage, ResponseMessage = response, Value = magnitude, Cancel = instance.Cancel }); + public static Task Signal(this IEventListener instance, string id, HttpRequestMessage request) => instance.Signal(id, instance.Token, () => new EventData { Id = id, RequestMessage = request, Cancel = instance.Cancel }); + public static Task Signal(this IEventListener instance, string id, HttpRequestMessage request, HttpResponseMessage response) => instance.Signal(id, instance.Token, () => new EventData { Id = id, RequestMessage = request, ResponseMessage = response, Cancel = instance.Cancel }); + public static Task Signal(this IEventListener instance, string id, HttpResponseMessage response) => instance.Signal(id, instance.Token, () => new EventData { Id = id, RequestMessage = response.RequestMessage, ResponseMessage = response, Cancel = instance.Cancel }); + public static Task Signal(this IEventListener instance, string id, EventData message) => instance.Signal(id, instance.Token, () => { message.Id = id; message.Cancel = instance.Cancel; return message; }); + + public static Task Signal(this IEventListener instance, string id, System.Uri uri) => instance.Signal(id, instance.Token, () => new EventData { Id = id, Message = uri.ToString(), Cancel = instance.Cancel }); + + public static async Task AssertNotNull(this IEventListener instance, string parameterName, object value) + { + if (value == null) + { + await instance.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.ValidationWarning, instance.Token, () => new EventData { Id = Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.ValidationWarning, Message = $"'{parameterName}' should not be null", Parameter = parameterName, Cancel = instance.Cancel }); + } + } + public static async Task AssertMinimumLength(this IEventListener instance, string parameterName, string value, int length) + { + if (value != null && value.Length < length) + { + await instance.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.ValidationWarning, instance.Token, () => new EventData { Id = Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.ValidationWarning, Message = $"Length of '{parameterName}' is less than {length}", Parameter = parameterName, Cancel = instance.Cancel }); + } + } + public static async Task AssertMaximumLength(this IEventListener instance, string parameterName, string value, int length) + { + if (value != null && value.Length > length) + { + await instance.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.ValidationWarning, instance.Token, () => new EventData { Id = Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.ValidationWarning, Message = $"Length of '{parameterName}' is greater than {length}", Parameter = parameterName, Cancel = instance.Cancel }); + } + } + + public static async Task AssertRegEx(this IEventListener instance, string parameterName, string value, string regularExpression) + { + if (value != null && !System.Text.RegularExpressions.Regex.Match(value, regularExpression).Success) + { + await instance.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.ValidationWarning, instance.Token, () => new EventData { Id = Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.ValidationWarning, Message = $"'{parameterName}' does not validate against pattern /{regularExpression}/", Parameter = parameterName, Cancel = instance.Cancel }); + } + } + public static async Task AssertEnum(this IEventListener instance, string parameterName, string value, params string[] values) + { + if (!values.Any(each => each.Equals(value))) + { + await instance.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.ValidationWarning, instance.Token, () => new EventData { Id = Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.ValidationWarning, Message = $"'{parameterName}' is not one of ({values.Aggregate((c, e) => $"'{e}',{c}")}", Parameter = parameterName, Cancel = instance.Cancel }); + } + } + public static async Task AssertObjectIsValid(this IEventListener instance, string parameterName, object inst) + { + await (inst as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.IValidates)?.Validate(instance); + } + + public static async Task AssertIsLessThan(this IEventListener instance, string parameterName, T? value, T max) where T : struct, System.IComparable + { + if (null != value && ((T)value).CompareTo(max) >= 0) + { + await instance.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.ValidationWarning, instance.Token, () => new EventData { Id = Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.ValidationWarning, Message = $"Value of '{parameterName}' must be less than {max} (value is {value})", Parameter = parameterName, Cancel = instance.Cancel }); + } + } + public static async Task AssertIsGreaterThan(this IEventListener instance, string parameterName, T? value, T max) where T : struct, System.IComparable + { + if (null != value && ((T)value).CompareTo(max) <= 0) + { + await instance.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.ValidationWarning, instance.Token, () => new EventData { Id = Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.ValidationWarning, Message = $"Value of '{parameterName}' must be greater than {max} (value is {value})", Parameter = parameterName, Cancel = instance.Cancel }); + } + } + public static async Task AssertIsLessThanOrEqual(this IEventListener instance, string parameterName, T? value, T max) where T : struct, System.IComparable + { + if (null != value && ((T)value).CompareTo(max) > 0) + { + await instance.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.ValidationWarning, instance.Token, () => new EventData { Id = Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.ValidationWarning, Message = $"Value of '{parameterName}' must be less than or equal to {max} (value is {value})", Parameter = parameterName, Cancel = instance.Cancel }); + } + } + public static async Task AssertIsGreaterThanOrEqual(this IEventListener instance, string parameterName, T? value, T max) where T : struct, System.IComparable + { + if (null != value && ((T)value).CompareTo(max) < 0) + { + await instance.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.ValidationWarning, instance.Token, () => new EventData { Id = Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.ValidationWarning, Message = $"Value of '{parameterName}' must be greater than or equal to {max} (value is {value})", Parameter = parameterName, Cancel = instance.Cancel }); + } + } + public static async Task AssertIsMultipleOf(this IEventListener instance, string parameterName, Int64? value, Int64 multiple) + { + if (null != value && value % multiple != 0) + { + await instance.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.ValidationWarning, instance.Token, () => new EventData { Id = Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.ValidationWarning, Message = $"Value of '{parameterName}' must be multiple of {multiple} (value is {value})", Parameter = parameterName, Cancel = instance.Cancel }); + } + } + public static async Task AssertIsMultipleOf(this IEventListener instance, string parameterName, double? value, double multiple) + { + if (null != value) + { + var i = (Int64)(value / multiple); + if (i != value / multiple) + { + await instance.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.ValidationWarning, instance.Token, () => new EventData { Id = Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.ValidationWarning, Message = $"Value of '{parameterName}' must be multiple of {multiple} (value is {value})", Parameter = parameterName, Cancel = instance.Cancel }); + } + } + } + public static async Task AssertIsMultipleOf(this IEventListener instance, string parameterName, decimal? value, decimal multiple) + { + if (null != value) + { + var i = (Int64)(value / multiple); + if (i != value / multiple) + { + await instance.Signal(Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.ValidationWarning, instance.Token, () => new EventData { Id = Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Events.ValidationWarning, Message = $"Value of '{parameterName}' must be multiple of {multiple} (value is {value})", Parameter = parameterName, Cancel = instance.Cancel }); + } + } + } + } + + /// + /// An Implementation of the IEventListener that supports subscribing to events and dispatching them + /// (used for manually using the lowlevel interface) + /// + public class EventListener : CancellationTokenSource, IEnumerable>, IEventListener + { + private Dictionary calls = new Dictionary(); + public IEnumerator> GetEnumerator() => calls.GetEnumerator(); + IEnumerator IEnumerable.GetEnumerator() => calls.GetEnumerator(); + public EventListener() + { + } + + public new Action Cancel => base.Cancel; + private Event tracer; + + public EventListener(params (string name, Event callback)[] initializer) + { + foreach (var each in initializer) + { + Add(each.name, each.callback); + } + } + + public void Add(string name, SynchEvent callback) + { + Add(name, (message) => { callback(message); return Task.CompletedTask; }); + } + + public void Add(string name, Event callback) + { + if (callback != null) + { + if (string.IsNullOrEmpty(name)) + { + if (calls.ContainsKey(name)) + { + tracer += callback; + } + else + { + tracer = callback; + } + } + else + { + if (calls.ContainsKey(name)) + { + calls[name ?? System.String.Empty] += callback; + } + else + { + calls[name ?? System.String.Empty] = callback; + } + } + } + } + + + public async Task Signal(string id, CancellationToken token, GetEventData createMessage) + { + using (NoSynchronizationContext) + { + if (!string.IsNullOrEmpty(id) && (calls.TryGetValue(id, out Event listener) || tracer != null)) + { + var message = createMessage(); + message.Id = id; + + await listener?.Invoke(message); + await tracer?.Invoke(message); + + if (token.IsCancellationRequested) + { + throw new OperationCanceledException($"Canceled by event {id} ", this.Token); + } + } + } + } + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/runtime/Events.cs b/swaggerci/eventgrid/generated/runtime/Events.cs new file mode 100644 index 000000000000..7ecb04382f0a --- /dev/null +++ b/swaggerci/eventgrid/generated/runtime/Events.cs @@ -0,0 +1,27 @@ +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime +{ + public static partial class Events + { + public const string Log = nameof(Log); + public const string Validation = nameof(Validation); + public const string ValidationWarning = nameof(ValidationWarning); + public const string AfterValidation = nameof(AfterValidation); + public const string RequestCreated = nameof(RequestCreated); + public const string ResponseCreated = nameof(ResponseCreated); + public const string URLCreated = nameof(URLCreated); + public const string Finally = nameof(Finally); + public const string HeaderParametersAdded = nameof(HeaderParametersAdded); + public const string BodyContentSet = nameof(BodyContentSet); + public const string BeforeCall = nameof(BeforeCall); + public const string BeforeResponseDispatch = nameof(BeforeResponseDispatch); + public const string FollowingNextLink = nameof(FollowingNextLink); + public const string DelayBeforePolling = nameof(DelayBeforePolling); + public const string Polling = nameof(Polling); + + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/runtime/EventsExtensions.cs b/swaggerci/eventgrid/generated/runtime/EventsExtensions.cs new file mode 100644 index 000000000000..7976d4f55d2e --- /dev/null +++ b/swaggerci/eventgrid/generated/runtime/EventsExtensions.cs @@ -0,0 +1,27 @@ +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime +{ + public static partial class Events + { + public const string CmdletProcessRecordStart = nameof(CmdletProcessRecordStart); + public const string CmdletProcessRecordAsyncStart = nameof(CmdletProcessRecordAsyncStart); + public const string CmdletException = nameof(CmdletException); + public const string CmdletGetPipeline = nameof(CmdletGetPipeline); + public const string CmdletBeforeAPICall = nameof(CmdletBeforeAPICall); + public const string CmdletBeginProcessing = nameof(CmdletBeginProcessing); + public const string CmdletEndProcessing = nameof(CmdletEndProcessing); + public const string CmdletProcessRecordEnd = nameof(CmdletProcessRecordEnd); + public const string CmdletProcessRecordAsyncEnd = nameof(CmdletProcessRecordAsyncEnd); + public const string CmdletAfterAPICall = nameof(CmdletAfterAPICall); + + public const string Verbose = nameof(Verbose); + public const string Debug = nameof(Debug); + public const string Information = nameof(Information); + public const string Error = nameof(Error); + public const string Warning = nameof(Warning); + } + +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/runtime/Extensions.cs b/swaggerci/eventgrid/generated/runtime/Extensions.cs new file mode 100644 index 000000000000..db0cb3da5d1a --- /dev/null +++ b/swaggerci/eventgrid/generated/runtime/Extensions.cs @@ -0,0 +1,117 @@ +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime +{ + using System.Linq; + using System; + + internal static partial class Extensions + { + public static T[] SubArray(this T[] array, int offset, int length) + { + return new ArraySegment(array, offset, length) + .ToArray(); + } + + public static T ReadHeaders(this T instance, global::System.Net.Http.Headers.HttpResponseHeaders headers) where T : class + { + (instance as IHeaderSerializable)?.ReadHeaders(headers); + return instance; + } + + internal static bool If(T input, out T output) + { + if (null == input) + { + output = default(T); + return false; + } + output = input; + return true; + } + + internal static void AddIf(T value, System.Action addMethod) + { + // if value is present (and it's not just an empty JSON Object) + if (null != value && (value as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject)?.Keys.Count != 0) + { + addMethod(value); + } + } + + internal static void AddIf(T value, string serializedName, System.Action addMethod) + { + // if value is present (and it's not just an empty JSON Object) + if (null != value && (value as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject)?.Keys.Count != 0) + { + addMethod(serializedName, value); + } + } + + /// + /// Returns the first header value as a string from an HttpReponseMessage. + /// + /// the HttpResponseMessage to fetch a header from + /// the header name + /// the first header value as a string from an HttpReponseMessage. string.empty if there is no header value matching + internal static string GetFirstHeader(this System.Net.Http.HttpResponseMessage response, string headerName) => response.Headers.FirstOrDefault(each => string.Equals(headerName, each.Key, System.StringComparison.OrdinalIgnoreCase)).Value?.FirstOrDefault() ?? string.Empty; + + /// + /// Sets the Synchronization Context to null, and returns an IDisposable that when disposed, + /// will restore the synchonization context to the original value. + /// + /// This is used a less-invasive means to ensure that code in the library that doesn't + /// need to be continued in the original context doesn't have to have ConfigureAwait(false) + /// on every single await + /// + /// If the SynchronizationContext is null when this is used, the resulting IDisposable + /// will not do anything (this prevents excessive re-setting of the SynchronizationContext) + /// + /// Usage: + /// + /// using(NoSynchronizationContext) { + /// await SomeAsyncOperation(); + /// await SomeOtherOperation(); + /// } + /// + /// + /// + /// An IDisposable that will return the SynchronizationContext to original state + internal static System.IDisposable NoSynchronizationContext => System.Threading.SynchronizationContext.Current == null ? Dummy : new NoSyncContext(); + + /// + /// An instance of the Dummy IDispoable. + /// + /// + internal static System.IDisposable Dummy = new DummyDisposable(); + + /// + /// An IDisposable that does absolutely nothing. + /// + internal class DummyDisposable : System.IDisposable + { + public void Dispose() + { + } + } + /// + /// An IDisposable that saves the SynchronizationContext,sets it to null and + /// restores it to the original upon Dispose(). + /// + /// NOTE: This is designed to be less invasive than using .ConfigureAwait(false) + /// on every single await in library code (ie, places where we know we don't need + /// to continue in the same context as we went async) + /// + internal class NoSyncContext : System.IDisposable + { + private System.Threading.SynchronizationContext original = System.Threading.SynchronizationContext.Current; + internal NoSyncContext() + { + System.Threading.SynchronizationContext.SetSynchronizationContext(null); + } + public void Dispose() => System.Threading.SynchronizationContext.SetSynchronizationContext(original); + } + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/runtime/Helpers/Extensions/StringBuilderExtensions.cs b/swaggerci/eventgrid/generated/runtime/Helpers/Extensions/StringBuilderExtensions.cs new file mode 100644 index 000000000000..47216253b1f5 --- /dev/null +++ b/swaggerci/eventgrid/generated/runtime/Helpers/Extensions/StringBuilderExtensions.cs @@ -0,0 +1,23 @@ +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ +using System.Text; + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json +{ + internal static class StringBuilderExtensions + { + /// + /// Extracts the buffered value and resets the buffer + /// + internal static string Extract(this StringBuilder builder) + { + var text = builder.ToString(); + + builder.Clear(); + + return text; + } + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/runtime/Helpers/Extensions/TypeExtensions.cs b/swaggerci/eventgrid/generated/runtime/Helpers/Extensions/TypeExtensions.cs new file mode 100644 index 000000000000..ead773123e94 --- /dev/null +++ b/swaggerci/eventgrid/generated/runtime/Helpers/Extensions/TypeExtensions.cs @@ -0,0 +1,61 @@ +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ +using System; + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json +{ + internal static class TypeExtensions + { + internal static bool IsNullable(this Type type) => + type.IsGenericType && type.GetGenericTypeDefinition().Equals(typeof(Nullable<>)); + + internal static Type GetOpenGenericInterface(this Type candidateType, Type openGenericInterfaceType) + { + + if (candidateType.IsGenericType && candidateType.GetGenericTypeDefinition() == openGenericInterfaceType) + { + return candidateType; + } + + // Check if it references it's own converter.... + + foreach (Type interfaceType in candidateType.GetInterfaces()) + { + if (interfaceType.IsGenericType + && interfaceType.GetGenericTypeDefinition().Equals(openGenericInterfaceType)) + { + return interfaceType; + } + } + + return null; + } + + // Author: Sebastian Good + // http://stackoverflow.com/questions/503263/how-to-determine-if-a-type-implements-a-specific-generic-interface-type + internal static bool ImplementsOpenGenericInterface(this Type candidateType, Type openGenericInterfaceType) + { + if (candidateType.Equals(openGenericInterfaceType)) + { + return true; + } + + if (candidateType.IsGenericType && candidateType.GetGenericTypeDefinition().Equals(openGenericInterfaceType)) + { + return true; + } + + foreach (Type i in candidateType.GetInterfaces()) + { + if (i.IsGenericType && i.ImplementsOpenGenericInterface(openGenericInterfaceType)) + { + return true; + } + } + + return false; + } + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/runtime/Helpers/Seperator.cs b/swaggerci/eventgrid/generated/runtime/Helpers/Seperator.cs new file mode 100644 index 000000000000..a6791788fe04 --- /dev/null +++ b/swaggerci/eventgrid/generated/runtime/Helpers/Seperator.cs @@ -0,0 +1,11 @@ +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json +{ + internal static class Seperator + { + internal static readonly char[] Dash = { '-' }; + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/runtime/Helpers/TypeDetails.cs b/swaggerci/eventgrid/generated/runtime/Helpers/TypeDetails.cs new file mode 100644 index 000000000000..cfd3ae2daeb6 --- /dev/null +++ b/swaggerci/eventgrid/generated/runtime/Helpers/TypeDetails.cs @@ -0,0 +1,116 @@ +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ +using System; +using System.Collections; +using System.Collections.Concurrent; +using System.Collections.Generic; +using System.Reflection; + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json +{ + + + + internal class TypeDetails + { + private readonly Type info; + + internal TypeDetails(Type info) + { + this.info = info ?? throw new ArgumentNullException(nameof(info)); + } + + internal Type NonNullType { get; set; } + + internal object DefaultValue { get; set; } + + internal bool IsNullable { get; set; } + + internal bool IsList { get; set; } + + internal bool IsStringLike { get; set; } + + internal bool IsEnum => info.IsEnum; + + internal bool IsArray => info.IsArray; + + internal bool IsValueType => info.IsValueType; + + internal Type ElementType { get; set; } + + internal IJsonConverter JsonConverter { get; set; } + + #region Creation + + private static readonly ConcurrentDictionary cache = new ConcurrentDictionary(); + + internal static TypeDetails Get() => Get(typeof(T)); + + internal static TypeDetails Get(Type type) => cache.GetOrAdd(type, Create); + + private static TypeDetails Create(Type type) + { + var isGenericList = !type.IsPrimitive && type.ImplementsOpenGenericInterface(typeof(IList<>)); + var isList = !type.IsPrimitive && (isGenericList || typeof(IList).IsAssignableFrom(type)); + + var isNullable = type.IsNullable(); + + Type elementType; + + if (type.IsArray) + { + elementType = type.GetElementType(); + } + else if (isGenericList) + { + var iList = type.GetOpenGenericInterface(typeof(IList<>)); + + elementType = iList.GetGenericArguments()[0]; + } + else + { + elementType = null; + } + + var nonNullType = isNullable ? type.GetGenericArguments()[0] : type; + + var isStringLike = false; + + IJsonConverter converter; + + var jsonConverterAttribute = type.GetCustomAttribute(); + + if (jsonConverterAttribute != null) + { + converter = jsonConverterAttribute.Converter; + } + else if (nonNullType.IsEnum) + { + converter = new EnumConverter(nonNullType); + } + else if (JsonConverterFactory.Instances.TryGetValue(nonNullType, out converter)) + { + } + else if (StringLikeHelper.IsStringLike(nonNullType)) + { + isStringLike = true; + + converter = new StringLikeConverter(nonNullType); + } + + return new TypeDetails(nonNullType) { + NonNullType = nonNullType, + DefaultValue = type.IsValueType ? Activator.CreateInstance(type) : null, + IsNullable = isNullable, + IsList = isList, + IsStringLike = isStringLike, + ElementType = elementType, + JsonConverter = converter + }; + } + + #endregion + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/runtime/Helpers/XHelper.cs b/swaggerci/eventgrid/generated/runtime/Helpers/XHelper.cs new file mode 100644 index 000000000000..418fa358d043 --- /dev/null +++ b/swaggerci/eventgrid/generated/runtime/Helpers/XHelper.cs @@ -0,0 +1,75 @@ +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ +using System; + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json +{ + internal static class XHelper + { + internal static JsonNode Create(JsonType type, TypeCode code, object value) + { + switch (type) + { + case JsonType.Binary : return new XBinary((byte[])value); + case JsonType.Boolean : return new JsonBoolean((bool)value); + case JsonType.Number : return new JsonNumber(value.ToString()); + case JsonType.String : return new JsonString((string)value); + } + + throw new Exception($"JsonType '{type}' does not have a fast conversion"); + } + + internal static bool TryGetElementType(TypeCode code, out JsonType type) + { + switch (code) + { + case TypeCode.Boolean : type = JsonType.Boolean; return true; + case TypeCode.Byte : type = JsonType.Number; return true; + case TypeCode.DateTime : type = JsonType.Date; return true; + case TypeCode.Decimal : type = JsonType.Number; return true; + case TypeCode.Double : type = JsonType.Number; return true; + case TypeCode.Empty : type = JsonType.Null; return true; + case TypeCode.Int16 : type = JsonType.Number; return true; + case TypeCode.Int32 : type = JsonType.Number; return true; + case TypeCode.Int64 : type = JsonType.Number; return true; + case TypeCode.SByte : type = JsonType.Number; return true; + case TypeCode.Single : type = JsonType.Number; return true; + case TypeCode.String : type = JsonType.String; return true; + case TypeCode.UInt16 : type = JsonType.Number; return true; + case TypeCode.UInt32 : type = JsonType.Number; return true; + case TypeCode.UInt64 : type = JsonType.Number; return true; + } + + type = default; + + return false; + } + + internal static JsonType GetElementType(TypeCode code) + { + switch (code) + { + case TypeCode.Boolean : return JsonType.Boolean; + case TypeCode.Byte : return JsonType.Number; + case TypeCode.DateTime : return JsonType.Date; + case TypeCode.Decimal : return JsonType.Number; + case TypeCode.Double : return JsonType.Number; + case TypeCode.Empty : return JsonType.Null; + case TypeCode.Int16 : return JsonType.Number; + case TypeCode.Int32 : return JsonType.Number; + case TypeCode.Int64 : return JsonType.Number; + case TypeCode.SByte : return JsonType.Number; + case TypeCode.Single : return JsonType.Number; + case TypeCode.String : return JsonType.String; + case TypeCode.UInt16 : return JsonType.Number; + case TypeCode.UInt32 : return JsonType.Number; + case TypeCode.UInt64 : return JsonType.Number; + default : return JsonType.Object; + } + + throw new Exception($"TypeCode '{code}' does not have a fast converter"); + } + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/runtime/HttpPipeline.cs b/swaggerci/eventgrid/generated/runtime/HttpPipeline.cs new file mode 100644 index 000000000000..7c316dc12ef2 --- /dev/null +++ b/swaggerci/eventgrid/generated/runtime/HttpPipeline.cs @@ -0,0 +1,88 @@ +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime +{ + using System.Net.Http; + using System.Collections.Generic; + using System.Threading; + using System.Threading.Tasks; + using System.Collections; + using System.Linq; + + using GetEventData = System.Func; + using NextDelegate = System.Func, System.Threading.Tasks.Task>, System.Threading.Tasks.Task>; + + using SignalDelegate = System.Func, System.Threading.Tasks.Task>; + using GetParameterDelegate = System.Func, string, object>; + using SendAsyncStepDelegate = System.Func, System.Threading.Tasks.Task>, System.Func, System.Threading.Tasks.Task>, System.Threading.Tasks.Task>, System.Threading.Tasks.Task>; + using PipelineChangeDelegate = System.Action, System.Threading.Tasks.Task>, System.Func, System.Threading.Tasks.Task>, System.Threading.Tasks.Task>, System.Threading.Tasks.Task>>; + using ModuleLoadPipelineDelegate = System.Action, System.Threading.Tasks.Task>, System.Func, System.Threading.Tasks.Task>, System.Threading.Tasks.Task>, System.Threading.Tasks.Task>>, System.Action, System.Threading.Tasks.Task>, System.Func, System.Threading.Tasks.Task>, System.Threading.Tasks.Task>, System.Threading.Tasks.Task>>>; + using NewRequestPipelineDelegate = System.Action, System.Action, System.Threading.Tasks.Task>, System.Func, System.Threading.Tasks.Task>, System.Threading.Tasks.Task>, System.Threading.Tasks.Task>>, System.Action, System.Threading.Tasks.Task>, System.Func, System.Threading.Tasks.Task>, System.Threading.Tasks.Task>, System.Threading.Tasks.Task>>>; + +/* + public class DelegateBasedEventListener : IEventListener + { + private EventListenerDelegate _listener; + public DelegateBasedEventListener(EventListenerDelegate listener) + { + _listener = listener; + } + public CancellationToken Token => CancellationToken.None; + public System.Action Cancel => () => { }; + + + public Task Signal(string id, CancellationToken token, GetEventData createMessage) + { + return _listener(id, token, () => createMessage()); + } + } +*/ + /// + /// This is a necessary extension to the SendAsyncFactory to support the 'generic' delegate format. + /// + public partial class SendAsyncFactory + { + /// + /// This translates a generic-defined delegate for a listener into one that fits our ISendAsync pattern. + /// (Provided to support out-of-module delegation for Azure Cmdlets) + /// + /// The Pipeline Step as a delegate + public SendAsyncFactory(SendAsyncStepDelegate step) => this.implementation = (request, listener, next) => + step( + request, + listener.Token, + listener.Cancel, + (id, token, getEventData) => listener.Signal(id, token, () => { + var data = EventDataConverter.ConvertFrom( getEventData() ) as EventData; + data.Id = id; + data.Cancel = listener.Cancel; + data.RequestMessage = request; + return data; + }), + (req, token, cancel, listenerDelegate) => next.SendAsync(req, listener)); + } + + public partial class HttpPipeline : ISendAsync + { + public HttpPipeline Append(SendAsyncStepDelegate item) + { + if (item != null) + { + Append(new SendAsyncFactory(item)); + } + return this; + } + + public HttpPipeline Prepend(SendAsyncStepDelegate item) + { + if (item != null) + { + Prepend(new SendAsyncFactory(item)); + } + return this; + } + } +} diff --git a/swaggerci/eventgrid/generated/runtime/HttpPipelineMocking.ps1 b/swaggerci/eventgrid/generated/runtime/HttpPipelineMocking.ps1 new file mode 100644 index 000000000000..44ba22b13c6d --- /dev/null +++ b/swaggerci/eventgrid/generated/runtime/HttpPipelineMocking.ps1 @@ -0,0 +1,110 @@ +$ErrorActionPreference = "Stop" + +# get the recording path +if (-not $TestRecordingFile) { + $TestRecordingFile = Join-Path $PSScriptRoot 'recording.json' +} + +# create the Http Pipeline Recorder +$Mock = New-Object -Type Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PipelineMock $TestRecordingFile + +# set the recorder to the appropriate mode (default to 'live') +Write-Host -ForegroundColor Green "Running '$TestMode' mode..." +switch ($TestMode) { + 'record' { + Write-Host -ForegroundColor Green "Recording to $TestRecordingFile" + $Mock.SetRecord() + $null = erase -ea 0 $TestRecordingFile + } + 'playback' { + if (-not (Test-Path $TestRecordingFile)) { + Write-Host -fore:yellow "Recording file '$TestRecordingFile' is not present. Tests expecting recorded responses will fail" + } else { + Write-Host -ForegroundColor Green "Using recording $TestRecordingFile" + } + $Mock.SetPlayback() + $Mock.ForceResponseHeaders["Retry-After"] = "0"; + } + default: { + $Mock.SetLive() + } +} + +# overrides for Pester Describe/Context/It + +function Describe( + [Parameter(Mandatory = $true, Position = 0)] + [string] $Name, + + [Alias('Tags')] + [string[]] $Tag = @(), + + [Parameter(Position = 1)] + [ValidateNotNull()] + [ScriptBlock] $Fixture = $(Throw "No test script block is provided. (Have you put the open curly brace on the next line?)") +) { + $Mock.PushDescription($Name) + try { + return pester\Describe -Name $Name -Tag $Tag -Fixture $fixture + } + finally { + $Mock.PopDescription() + } +} + +function Context( + [Parameter(Mandatory = $true, Position = 0)] + [string] $Name, + + [Alias('Tags')] + [string[]] $Tag = @(), + + [Parameter(Position = 1)] + [ValidateNotNull()] + [ScriptBlock] $Fixture = $(Throw "No test script block is provided. (Have you put the open curly brace on the next line?)") +) { + $Mock.PushContext($Name) + try { + return pester\Context -Name $Name -Tag $Tag -Fixture $fixture + } + finally { + $Mock.PopContext() + } +} + +function It { + [CmdletBinding(DefaultParameterSetName = 'Normal')] + param( + [Parameter(Mandatory = $true, Position = 0)] + [string]$Name, + + [Parameter(Position = 1)] + [ScriptBlock] $Test = { }, + + [System.Collections.IDictionary[]] $TestCases, + + [Parameter(ParameterSetName = 'Pending')] + [Switch] $Pending, + + [Parameter(ParameterSetName = 'Skip')] + [Alias('Ignore')] + [Switch] $Skip + ) + $Mock.PushScenario($Name) + + try { + if ($skip) { + return pester\It -Name $Name -Test $Test -TestCases $TestCases -Skip + } + if ($pending) { + return pester\It -Name $Name -Test $Test -TestCases $TestCases -Pending + } + return pester\It -Name $Name -Test $Test -TestCases $TestCases + } + finally { + $null = $Mock.PopScenario() + } +} + +# set the HttpPipelineAppend for all the cmdlets +$PSDefaultParameterValues["*:HttpPipelinePrepend"] = $Mock diff --git a/swaggerci/eventgrid/generated/runtime/IAssociativeArray.cs b/swaggerci/eventgrid/generated/runtime/IAssociativeArray.cs new file mode 100644 index 000000000000..2ca033869473 --- /dev/null +++ b/swaggerci/eventgrid/generated/runtime/IAssociativeArray.cs @@ -0,0 +1,24 @@ +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ +#define DICT_PROPERTIES +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime +{ + /// A subset of IDictionary that doesn't implement IEnumerable or IDictionary to work around PowerShell's aggressive formatter + public interface IAssociativeArray + { +#if DICT_PROPERTIES + System.Collections.Generic.IEnumerable Keys { get; } + System.Collections.Generic.IEnumerable Values { get; } + int Count { get; } +#endif + System.Collections.Generic.IDictionary AdditionalProperties { get; } + T this[string index] { get; set; } + void Add(string key, T value); + bool ContainsKey(string key); + bool Remove(string key); + bool TryGetValue(string key, out T value); + void Clear(); + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/runtime/IHeaderSerializable.cs b/swaggerci/eventgrid/generated/runtime/IHeaderSerializable.cs new file mode 100644 index 000000000000..97d632e0066e --- /dev/null +++ b/swaggerci/eventgrid/generated/runtime/IHeaderSerializable.cs @@ -0,0 +1,14 @@ +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ + +using System; + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime +{ + public interface IHeaderSerializable + { + void ReadHeaders(global::System.Net.Http.Headers.HttpResponseHeaders headers); + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/runtime/ISendAsync.cs b/swaggerci/eventgrid/generated/runtime/ISendAsync.cs new file mode 100644 index 000000000000..4cf62d07756e --- /dev/null +++ b/swaggerci/eventgrid/generated/runtime/ISendAsync.cs @@ -0,0 +1,296 @@ +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime +{ + using System.Net.Http; + using System.Collections.Generic; + using System.Threading; + using System.Threading.Tasks; + using System.Collections; + using System.Linq; + + /// + /// The interface for sending an HTTP request across the wire. + /// + public interface ISendAsync + { + Task SendAsync(HttpRequestMessage request, IEventListener callback); + } + + public class SendAsyncTerminalFactory : ISendAsyncTerminalFactory, ISendAsync + { + SendAsync implementation; + + public SendAsyncTerminalFactory(SendAsync implementation) => this.implementation = implementation; + public SendAsyncTerminalFactory(ISendAsync implementation) => this.implementation = implementation.SendAsync; + public ISendAsync Create() => this; + public Task SendAsync(HttpRequestMessage request, IEventListener callback) => implementation(request, callback); + } + + public partial class SendAsyncFactory : ISendAsyncFactory + { + public class Sender : ISendAsync + { + internal ISendAsync next; + internal SendAsyncStep implementation; + + public Task SendAsync(HttpRequestMessage request, IEventListener callback) => implementation(request, callback, next); + } + SendAsyncStep implementation; + + public SendAsyncFactory(SendAsyncStep implementation) => this.implementation = implementation; + public ISendAsync Create(ISendAsync next) => new Sender { next = next, implementation = implementation }; + + } + + public class HttpClientFactory : ISendAsyncTerminalFactory, ISendAsync + { + HttpClient client; + public HttpClientFactory() : this(new HttpClient()) + { + } + public HttpClientFactory(HttpClient client) => this.client = client; + public ISendAsync Create() => this; + + public Task SendAsync(HttpRequestMessage request, IEventListener callback) => client.SendAsync(request, HttpCompletionOption.ResponseHeadersRead, callback.Token); + } + + public interface ISendAsyncFactory + { + ISendAsync Create(ISendAsync next); + } + + public interface ISendAsyncTerminalFactory + { + ISendAsync Create(); + } + + public partial class HttpPipeline : ISendAsync + { + private ISendAsync pipeline; + private ISendAsyncTerminalFactory terminal; + private List steps = new List(); + + public HttpPipeline() : this(new HttpClientFactory()) + { + } + + public HttpPipeline(ISendAsyncTerminalFactory terminalStep) + { + if (terminalStep == null) + { + throw new System.ArgumentNullException(nameof(terminalStep), "Terminal Step Factory in HttpPipeline may not be null"); + } + TerminalFactory = terminalStep; + } + + /// + /// Returns an HttpPipeline with the current state of this pipeline. + /// + public HttpPipeline Clone() => new HttpPipeline(terminal) { steps = this.steps.ToList(), pipeline = this.pipeline }; + + public ISendAsyncTerminalFactory TerminalFactory + { + get => terminal; + set + { + if (value == null) + { + throw new System.ArgumentNullException("TerminalFactory in HttpPipeline may not be null"); + } + terminal = value; + } + } + + public ISendAsync Pipeline + { + get + { + // if the pipeline has been created and not invalidated, return it. + if (this.pipeline != null) + { + return this.pipeline; + } + + // create the pipeline from scratch. + var next = terminal.Create(); + foreach (var factory in steps) + { + // skip factories that return null. + next = factory.Create(next) ?? next; + } + return this.pipeline = next; + } + } + + public int Count => steps.Count; + + public HttpPipeline Prepend(ISendAsyncFactory item) + { + if (item != null) + { + steps.Add(item); + pipeline = null; + } + return this; + } + + public HttpPipeline Append(SendAsyncStep item) + { + if (item != null) + { + Append(new SendAsyncFactory(item)); + } + return this; + } + + public HttpPipeline Prepend(SendAsyncStep item) + { + if (item != null) + { + Prepend(new SendAsyncFactory(item)); + } + return this; + } + public HttpPipeline Append(IEnumerable items) + { + if (items != null) + { + foreach (var item in items) + { + Append(new SendAsyncFactory(item)); + } + } + return this; + } + + public HttpPipeline Prepend(IEnumerable items) + { + if (items != null) + { + foreach (var item in items) + { + Prepend(new SendAsyncFactory(item)); + } + } + return this; + } + + public HttpPipeline Append(ISendAsyncFactory item) + { + if (item != null) + { + steps.Insert(0, item); + pipeline = null; + } + return this; + } + public HttpPipeline Prepend(IEnumerable items) + { + if (items != null) + { + foreach (var item in items) + { + Prepend(item); + } + } + return this; + } + + public HttpPipeline Append(IEnumerable items) + { + if (items != null) + { + foreach (var item in items) + { + Append(item); + } + } + return this; + } + + // you can use this as the ISendAsync Implementation + public Task SendAsync(HttpRequestMessage request, IEventListener callback) => Pipeline.SendAsync(request, callback); + } + + internal static partial class Extensions + { + internal static HttpRequestMessage CloneAndDispose(this HttpRequestMessage original, System.Uri requestUri = null, System.Net.Http.HttpMethod method = null) + { + using (original) + { + return original.Clone(requestUri, method); + } + } + + internal static Task CloneWithContentAndDispose(this HttpRequestMessage original, System.Uri requestUri = null, System.Net.Http.HttpMethod method = null) + { + using (original) + { + return original.CloneWithContent(requestUri, method); + } + } + + /// + /// Clones an HttpRequestMessage (without the content) + /// + /// Original HttpRequestMessage (Will be diposed before returning) + /// A clone of the HttpRequestMessage + internal static HttpRequestMessage Clone(this HttpRequestMessage original, System.Uri requestUri = null, System.Net.Http.HttpMethod method = null) + { + var clone = new HttpRequestMessage + { + Method = method ?? original.Method, + RequestUri = requestUri ?? original.RequestUri, + Version = original.Version, + }; + + foreach (KeyValuePair prop in original.Properties) + { + clone.Properties.Add(prop); + } + + foreach (KeyValuePair> header in original.Headers) + { + /* + **temporarily skip cloning telemetry related headers** + clone.Headers.TryAddWithoutValidation(header.Key, header.Value); + */ + if (!"x-ms-unique-id".Equals(header.Key) && !"x-ms-client-request-id".Equals(header.Key) && !"CommandName".Equals(header.Key) && !"FullCommandName".Equals(header.Key) && !"ParameterSetName".Equals(header.Key) && !"User-Agent".Equals(header.Key)) + { + clone.Headers.TryAddWithoutValidation(header.Key, header.Value); + } + } + + return clone; + } + + /// + /// Clones an HttpRequestMessage (including the content stream and content headers) + /// + /// Original HttpRequestMessage (Will be diposed before returning) + /// A clone of the HttpRequestMessage + internal static async Task CloneWithContent(this HttpRequestMessage original, System.Uri requestUri = null, System.Net.Http.HttpMethod method = null) + { + var clone = original.Clone(requestUri, method); + var stream = new System.IO.MemoryStream(); + if (original.Content != null) + { + await original.Content.CopyToAsync(stream).ConfigureAwait(false); + stream.Position = 0; + clone.Content = new StreamContent(stream); + if (original.Content.Headers != null) + { + foreach (var h in original.Content.Headers) + { + clone.Content.Headers.Add(h.Key, h.Value); + } + } + } + return clone; + } + } +} diff --git a/swaggerci/eventgrid/generated/runtime/InfoAttribute.cs b/swaggerci/eventgrid/generated/runtime/InfoAttribute.cs new file mode 100644 index 000000000000..2a4daf268a4e --- /dev/null +++ b/swaggerci/eventgrid/generated/runtime/InfoAttribute.cs @@ -0,0 +1,34 @@ +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime +{ + using System; + + [AttributeUsage(AttributeTargets.Property | AttributeTargets.Field | AttributeTargets.Class)] + public class InfoAttribute : Attribute + { + public bool Required { get; set; } = false; + public bool ReadOnly { get; set; } = false; + public Type[] PossibleTypes { get; set; } = new Type[0]; + public string Description { get; set; } = ""; + public string SerializedName { get; set; } = ""; + } + + [AttributeUsage(AttributeTargets.Property | AttributeTargets.Field)] + public class CompleterInfoAttribute : Attribute + { + public string Script { get; set; } = ""; + public string Name { get; set; } = ""; + public string Description { get; set; } = ""; + } + + [AttributeUsage(AttributeTargets.Property | AttributeTargets.Field)] + public class DefaultInfoAttribute : Attribute + { + public string Script { get; set; } = ""; + public string Name { get; set; } = ""; + public string Description { get; set; } = ""; + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/runtime/Iso/IsoDate.cs b/swaggerci/eventgrid/generated/runtime/Iso/IsoDate.cs new file mode 100644 index 000000000000..1519d011cd38 --- /dev/null +++ b/swaggerci/eventgrid/generated/runtime/Iso/IsoDate.cs @@ -0,0 +1,214 @@ +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ +using System; +using System.Text; + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json +{ + internal struct IsoDate + { + internal int Year { get; set; } // 0-3000 + + internal int Month { get; set; } // 1-12 + + internal int Day { get; set; } // 1-31 + + internal int Hour { get; set; } // 0-24 + + internal int Minute { get; set; } // 0-60 (60 is a special case) + + internal int Second { get; set; } // 0-60 (60 is used for leap seconds) + + internal double Millisecond { get; set; } // 0-999.9... + + internal TimeSpan Offset { get; set; } + + internal DateTimeKind Kind { get; set; } + + internal TimeSpan TimeOfDay => new TimeSpan(Hour, Minute, Second); + + internal DateTime ToDateTime() + { + if (Kind == DateTimeKind.Utc || Offset == TimeSpan.Zero) + { + return new DateTime(Year, Month, Day, Hour, Minute, Second, (int)Millisecond, DateTimeKind.Utc); + } + + return ToDateTimeOffset().DateTime; + } + + internal DateTimeOffset ToDateTimeOffset() + { + return new DateTimeOffset( + Year, + Month, + Day, + Hour, + Minute, + Second, + (int)Millisecond, + Offset + ); + } + + internal DateTime ToUtcDateTime() + { + return ToDateTimeOffset().UtcDateTime; + } + + public override string ToString() + { + var sb = new StringBuilder(); + + // yyyy-MM-dd + sb.Append($"{Year}-{Month:00}-{Day:00}"); + + if (TimeOfDay > new TimeSpan(0)) + { + sb.Append($"T{Hour:00}:{Minute:00}"); + + if (TimeOfDay.Seconds > 0) + { + sb.Append($":{Second:00}"); + } + } + + if (Offset.Ticks == 0) + { + sb.Append('Z'); // UTC + } + else + { + if (Offset.Ticks >= 0) + { + sb.Append('+'); + } + + sb.Append($"{Offset.Hours:00}:{Offset.Minutes:00}"); + } + + return sb.ToString(); + } + + internal static IsoDate FromDateTimeOffset(DateTimeOffset date) + { + return new IsoDate { + Year = date.Year, + Month = date.Month, + Day = date.Day, + Hour = date.Hour, + Minute = date.Minute, + Second = date.Second, + Offset = date.Offset, + Kind = date.Offset == TimeSpan.Zero ? DateTimeKind.Utc : DateTimeKind.Unspecified + }; + } + + private static readonly char[] timeSeperators = { ':', '.' }; + + internal static IsoDate Parse(string text) + { + var tzIndex = -1; + var timeIndex = text.IndexOf('T'); + + var builder = new IsoDate { Day = 1, Month = 1 }; + + // TODO: strip the time zone offset off the end + string dateTime = text; + string timeZone = null; + + if (dateTime.IndexOf('Z') > -1) + { + tzIndex = dateTime.LastIndexOf('Z'); + + builder.Kind = DateTimeKind.Utc; + } + else if (dateTime.LastIndexOf('+') > 10) + { + tzIndex = dateTime.LastIndexOf('+'); + } + else if (dateTime.LastIndexOf('-') > 10) + { + tzIndex = dateTime.LastIndexOf('-'); + } + + if (tzIndex > -1) + { + timeZone = dateTime.Substring(tzIndex); + dateTime = dateTime.Substring(0, tzIndex); + } + + string date = (timeIndex == -1) ? dateTime : dateTime.Substring(0, timeIndex); + + var dateParts = date.Split(Seperator.Dash); // '-' + + for (int i = 0; i < dateParts.Length; i++) + { + var part = dateParts[i]; + + switch (i) + { + case 0: builder.Year = int.Parse(part); break; + case 1: builder.Month = int.Parse(part); break; + case 2: builder.Day = int.Parse(part); break; + } + } + + if (timeIndex > -1) + { + string[] timeParts = dateTime.Substring(timeIndex + 1).Split(timeSeperators); + + for (int i = 0; i < timeParts.Length; i++) + { + var part = timeParts[i]; + + switch (i) + { + case 0: builder.Hour = int.Parse(part); break; + case 1: builder.Minute = int.Parse(part); break; + case 2: builder.Second = int.Parse(part); break; + case 3: builder.Millisecond = double.Parse("0." + part) * 1000; break; + } + } + } + + if (timeZone != null && timeZone != "Z") + { + var hours = int.Parse(timeZone.Substring(1, 2)); + var minutes = int.Parse(timeZone.Substring(4, 2)); + + if (timeZone[0] == '-') + { + hours = -hours; + minutes = -minutes; + } + + builder.Offset = new TimeSpan(hours, minutes, 0); + } + + return builder; + } + } + + /* + YYYY # eg 1997 + YYYY-MM # eg 1997-07 + YYYY-MM-DD # eg 1997-07-16 + YYYY-MM-DDThh:mmTZD # eg 1997-07-16T19:20+01:00 + YYYY-MM-DDThh:mm:ssTZD # eg 1997-07-16T19:20:30+01:00 + YYYY-MM-DDThh:mm:ss.sTZD # eg 1997-07-16T19:20:30.45+01:00 + + where: + + YYYY = four-digit year + MM = two-digit month (01=January, etc.) + DD = two-digit day of month (01 through 31) + hh = two digits of hour (00 through 23) (am/pm NOT allowed) + mm = two digits of minute (00 through 59) + ss = two digits of second (00 through 59) + s = one or more digits representing a decimal fraction of a second + TZD = time zone designator (Z or +hh:mm or -hh:mm) + */ +} diff --git a/swaggerci/eventgrid/generated/runtime/JsonType.cs b/swaggerci/eventgrid/generated/runtime/JsonType.cs new file mode 100644 index 000000000000..c96711df57f4 --- /dev/null +++ b/swaggerci/eventgrid/generated/runtime/JsonType.cs @@ -0,0 +1,18 @@ +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json +{ + internal enum JsonType + { + Null = 0, + Object = 1, + Array = 2, + Binary = 3, + Boolean = 4, + Date = 5, + Number = 6, + String = 7 + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/runtime/MessageAttribute.cs b/swaggerci/eventgrid/generated/runtime/MessageAttribute.cs new file mode 100644 index 000000000000..c9b60ad9ffde --- /dev/null +++ b/swaggerci/eventgrid/generated/runtime/MessageAttribute.cs @@ -0,0 +1,360 @@ +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime +{ + using Microsoft.Azure.PowerShell.Cmdlets.EventGrid.generated.runtime.Properties; + using System; + using System.Collections.Generic; + using System.Globalization; + using System.Linq; + using System.Management.Automation; + using System.Text; + + [AttributeUsage(AttributeTargets.All)] + public class GenericBreakingChangeAttribute : Attribute + { + private string _message; + //A dexcription of what the change is about, non mandatory + public string ChangeDescription { get; set; } = null; + + //The version the change is effective from, non mandatory + public string DeprecateByVersion { get; } + public bool DeprecateByVersionSet { get; } = false; + + //The date on which the change comes in effect + public DateTime ChangeInEfectByDate { get; } + public bool ChangeInEfectByDateSet { get; } = false; + + //Old way of calling the cmdlet + public string OldWay { get; set; } + //New way fo calling the cmdlet + public string NewWay { get; set; } + + public GenericBreakingChangeAttribute(string message) + { + _message = message; + } + + public GenericBreakingChangeAttribute(string message, string deprecateByVersion) + { + _message = message; + this.DeprecateByVersion = deprecateByVersion; + this.DeprecateByVersionSet = true; + } + + public GenericBreakingChangeAttribute(string message, string deprecateByVersion, string changeInEfectByDate) + { + _message = message; + this.DeprecateByVersion = deprecateByVersion; + this.DeprecateByVersionSet = true; + + if (DateTime.TryParse(changeInEfectByDate, new CultureInfo("en-US"), DateTimeStyles.None, out DateTime result)) + { + this.ChangeInEfectByDate = result; + this.ChangeInEfectByDateSet = true; + } + } + + public DateTime getInEffectByDate() + { + return this.ChangeInEfectByDate.Date; + } + + + /** + * This function prints out the breaking change message for the attribute on the cmdline + * */ + public void PrintCustomAttributeInfo(Action writeOutput) + { + + if (!GetAttributeSpecificMessage().StartsWith(Environment.NewLine)) + { + writeOutput(Environment.NewLine); + } + writeOutput(string.Format(Resources.BreakingChangesAttributesDeclarationMessage, GetAttributeSpecificMessage())); + + + if (!string.IsNullOrWhiteSpace(ChangeDescription)) + { + writeOutput(string.Format(Resources.BreakingChangesAttributesChangeDescriptionMessage, this.ChangeDescription)); + } + + if (ChangeInEfectByDateSet) + { + writeOutput(string.Format(Resources.BreakingChangesAttributesInEffectByDateMessage, this.ChangeInEfectByDate.ToString("d"))); + } + + if (DeprecateByVersionSet) + { + writeOutput(string.Format(Resources.BreakingChangesAttributesInEffectByVersion, this.DeprecateByVersion)); + } + + if (OldWay != null && NewWay != null) + { + writeOutput(string.Format(Resources.BreakingChangesAttributesUsageChangeMessageConsole, OldWay, NewWay)); + } + } + + public virtual bool IsApplicableToInvocation(InvocationInfo invocation) + { + return true; + } + + protected virtual string GetAttributeSpecificMessage() + { + return _message; + } + } + + [AttributeUsage(AttributeTargets.All)] + public class CmdletBreakingChangeAttribute : GenericBreakingChangeAttribute + { + + public string ReplacementCmdletName { get; set; } + + public CmdletBreakingChangeAttribute() : + base(string.Empty) + { + } + + public CmdletBreakingChangeAttribute(string deprecateByVersione) : + base(string.Empty, deprecateByVersione) + { + } + + public CmdletBreakingChangeAttribute(string deprecateByVersion, string changeInEfectByDate) : + base(string.Empty, deprecateByVersion, changeInEfectByDate) + { + } + + protected override string GetAttributeSpecificMessage() + { + if (string.IsNullOrWhiteSpace(ReplacementCmdletName)) + { + return Resources.BreakingChangesAttributesCmdLetDeprecationMessageNoReplacement; + } + else + { + return string.Format(Resources.BreakingChangesAttributesCmdLetDeprecationMessageWithReplacement, ReplacementCmdletName); + } + } + } + + [AttributeUsage(AttributeTargets.All)] + public class ParameterSetBreakingChangeAttribute : GenericBreakingChangeAttribute + { + public string[] ChangedParameterSet { set; get; } + public ParameterSetBreakingChangeAttribute(string[] changedParameterSet) : + base(string.Empty) + { + ChangedParameterSet = changedParameterSet; + } + + public ParameterSetBreakingChangeAttribute(string[] changedParameterSet, string deprecateByVersione) : + base(string.Empty, deprecateByVersione) + { + ChangedParameterSet = changedParameterSet; + } + + public ParameterSetBreakingChangeAttribute(string[] changedParameterSet, string deprecateByVersion, string changeInEfectByDate) : + base(string.Empty, deprecateByVersion, changeInEfectByDate) + { + ChangedParameterSet = changedParameterSet; + } + + protected override string GetAttributeSpecificMessage() + { + + return Resources.BreakingChangesAttributesParameterSetDeprecationMessageNoReplacement; + + } + + public bool IsApplicableToInvocation(InvocationInfo invocation, string parameterSetName) + { + if (ChangedParameterSet != null) + return ChangedParameterSet.Contains(parameterSetName); + return false; + } + + } + + [AttributeUsage(AttributeTargets.All)] + public class PreviewMessageAttribute : Attribute + { + public string _message; + + public PreviewMessageAttribute() + { + this._message = Resources.PreviewCmdletMessage; + } + + public PreviewMessageAttribute(string message) + { + this._message = message; + } + + public void PrintCustomAttributeInfo(System.Management.Automation.PSCmdlet psCmdlet) + { + psCmdlet.WriteWarning(this._message); + } + + public virtual bool IsApplicableToInvocation(InvocationInfo invocation) + { + return true; + } + } + + [AttributeUsage(AttributeTargets.Property | AttributeTargets.Field)] + public class ParameterBreakingChangeAttribute : GenericBreakingChangeAttribute + { + public string NameOfParameterChanging { get; } + + public string ReplaceMentCmdletParameterName { get; set; } = null; + + public bool IsBecomingMandatory { get; set; } = false; + + public String OldParamaterType { get; set; } + + public String NewParameterType { get; set; } + + public ParameterBreakingChangeAttribute(string nameOfParameterChanging) : + base(string.Empty) + { + this.NameOfParameterChanging = nameOfParameterChanging; + } + + public ParameterBreakingChangeAttribute(string nameOfParameterChanging, string deprecateByVersion) : + base(string.Empty, deprecateByVersion) + { + this.NameOfParameterChanging = nameOfParameterChanging; + } + + public ParameterBreakingChangeAttribute(string nameOfParameterChanging, string deprecateByVersion, string changeInEfectByDate) : + base(string.Empty, deprecateByVersion, changeInEfectByDate) + { + this.NameOfParameterChanging = nameOfParameterChanging; + } + + protected override string GetAttributeSpecificMessage() + { + StringBuilder message = new StringBuilder(); + if (!string.IsNullOrWhiteSpace(ReplaceMentCmdletParameterName)) + { + if (IsBecomingMandatory) + { + message.Append(string.Format(Resources.BreakingChangeAttributeParameterReplacedMandatory, NameOfParameterChanging, ReplaceMentCmdletParameterName)); + } + else + { + message.Append(string.Format(Resources.BreakingChangeAttributeParameterReplaced, NameOfParameterChanging, ReplaceMentCmdletParameterName)); + } + } + else + { + if (IsBecomingMandatory) + { + message.Append(string.Format(Resources.BreakingChangeAttributeParameterMandatoryNow, NameOfParameterChanging)); + } + else + { + message.Append(string.Format(Resources.BreakingChangeAttributeParameterChanging, NameOfParameterChanging)); + } + } + + //See if the type of the param is changing + if (OldParamaterType != null && !string.IsNullOrWhiteSpace(NewParameterType)) + { + message.Append(string.Format(Resources.BreakingChangeAttributeParameterTypeChange, OldParamaterType, NewParameterType)); + } + return message.ToString(); + } + + /// + /// See if the bound parameters contain the current parameter, if they do + /// then the attribbute is applicable + /// If the invocationInfo is null we return true + /// + /// + /// bool + public override bool IsApplicableToInvocation(InvocationInfo invocationInfo) + { + bool? applicable = invocationInfo == null ? true : invocationInfo.BoundParameters?.Keys?.Contains(this.NameOfParameterChanging); + return applicable.HasValue ? applicable.Value : false; + } + } + + [AttributeUsage(AttributeTargets.All)] + public class OutputBreakingChangeAttribute : GenericBreakingChangeAttribute + { + public string DeprecatedCmdLetOutputType { get; } + + //This is still a String instead of a Type as this + //might be undefined at the time of adding the attribute + public string ReplacementCmdletOutputType { get; set; } + + public string[] DeprecatedOutputProperties { get; set; } + + public string[] NewOutputProperties { get; set; } + + public OutputBreakingChangeAttribute(string deprecatedCmdletOutputType) : + base(string.Empty) + { + this.DeprecatedCmdLetOutputType = deprecatedCmdletOutputType; + } + + public OutputBreakingChangeAttribute(string deprecatedCmdletOutputType, string deprecateByVersion) : + base(string.Empty, deprecateByVersion) + { + this.DeprecatedCmdLetOutputType = deprecatedCmdletOutputType; + } + + public OutputBreakingChangeAttribute(string deprecatedCmdletOutputType, string deprecateByVersion, string changeInEfectByDate) : + base(string.Empty, deprecateByVersion, changeInEfectByDate) + { + this.DeprecatedCmdLetOutputType = deprecatedCmdletOutputType; + } + + protected override string GetAttributeSpecificMessage() + { + StringBuilder message = new StringBuilder(); + + //check for the deprecation scenario + if (string.IsNullOrWhiteSpace(ReplacementCmdletOutputType) && NewOutputProperties == null && DeprecatedOutputProperties == null && string.IsNullOrWhiteSpace(ChangeDescription)) + { + message.Append(string.Format(Resources.BreakingChangesAttributesCmdLetOutputTypeDeprecated, DeprecatedCmdLetOutputType)); + } + else + { + if (!string.IsNullOrWhiteSpace(ReplacementCmdletOutputType)) + { + message.Append(string.Format(Resources.BreakingChangesAttributesCmdLetOutputChange1, DeprecatedCmdLetOutputType, ReplacementCmdletOutputType)); + } + else + { + message.Append(string.Format(Resources.BreakingChangesAttributesCmdLetOutputChange2, DeprecatedCmdLetOutputType)); + } + + if (DeprecatedOutputProperties != null && DeprecatedOutputProperties.Length > 0) + { + message.Append(Resources.BreakingChangesAttributesCmdLetOutputPropertiesRemoved); + foreach (string property in DeprecatedOutputProperties) + { + message.Append(" '" + property + "'"); + } + } + + if (NewOutputProperties != null && NewOutputProperties.Length > 0) + { + message.Append(Resources.BreakingChangesAttributesCmdLetOutputPropertiesAdded); + foreach (string property in NewOutputProperties) + { + message.Append(" '" + property + "'"); + } + } + } + return message.ToString(); + } + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/runtime/MessageAttributeHelper.cs b/swaggerci/eventgrid/generated/runtime/MessageAttributeHelper.cs new file mode 100644 index 000000000000..e3c1840f0d82 --- /dev/null +++ b/swaggerci/eventgrid/generated/runtime/MessageAttributeHelper.cs @@ -0,0 +1,161 @@ +// ---------------------------------------------------------------------------------- +// +// Copyright Microsoft Corporation +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// http://www.apache.org/licenses/LICENSE-2.0 +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// ---------------------------------------------------------------------------------- +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime +{ + using Microsoft.Azure.PowerShell.Cmdlets.EventGrid.generated.runtime.Properties; + using System; + using System.Collections.Generic; + using System.Linq; + using System.Management.Automation; + using System.Reflection; + using System.Text; + using System.Threading.Tasks; + public class MessageAttributeHelper + { + public const string BREAKING_CHANGE_ATTRIBUTE_INFORMATION_LINK = "https://aka.ms/azps-changewarnings"; + public const string SUPPRESS_ERROR_OR_WARNING_MESSAGE_ENV_VARIABLE_NAME = "SuppressAzurePowerShellBreakingChangeWarnings"; + + /** + * This function takes in a CommandInfo (CmdletInfo or FunctionInfo) + * And reads all the deprecation attributes attached to it + * Prints a message on the cmdline For each of the attribute found + * + * the boundParameterNames is a list of parameters bound to the cmdlet at runtime, + * We only process the Parameter beaking change attributes attached only params listed in this list (if present) + * */ + public static void ProcessCustomAttributesAtRuntime(CommandInfo commandInfo, InvocationInfo invocationInfo, String parameterSet, System.Management.Automation.PSCmdlet psCmdlet) + { + bool supressWarningOrError = false; + + try + { + supressWarningOrError = bool.Parse(System.Environment.GetEnvironmentVariable(SUPPRESS_ERROR_OR_WARNING_MESSAGE_ENV_VARIABLE_NAME)); + } + catch (Exception) + { + //no action + } + + if (supressWarningOrError) + { + //Do not process the attributes at runtime... The env variable to override the warning messages is set + return; + } + + List attributes = new List(GetAllBreakingChangeAttributesInType(commandInfo, invocationInfo, parameterSet)); + StringBuilder sb = new StringBuilder(); + Action appendBreakingChangeInfo = (string s) => sb.Append(s); + + if (attributes != null && attributes.Count > 0) + { + appendBreakingChangeInfo(string.Format(Resources.BreakingChangesAttributesHeaderMessage, commandInfo.Name.Split('_')[0])); + + foreach (GenericBreakingChangeAttribute attribute in attributes) + { + attribute.PrintCustomAttributeInfo(appendBreakingChangeInfo); + } + + appendBreakingChangeInfo(string.Format(Resources.BreakingChangesAttributesFooterMessage, BREAKING_CHANGE_ATTRIBUTE_INFORMATION_LINK)); + + psCmdlet.WriteWarning(sb.ToString()); + } + + List previewAttributes = new List(GetAllPreviewAttributesInType(commandInfo, invocationInfo)); + + if (previewAttributes != null && previewAttributes.Count > 0) + { + foreach (PreviewMessageAttribute attribute in previewAttributes) + { + attribute.PrintCustomAttributeInfo(psCmdlet); + } + } + } + + + /** + * This function takes in a CommandInfo (CmdletInfo or FunctionInfo) + * And returns all the deprecation attributes attached to it + * + * the boundParameterNames is a list of parameters bound to the cmdlet at runtime, + * We only process the Parameter beaking change attributes attached only params listed in this list (if present) + **/ + private static IEnumerable GetAllBreakingChangeAttributesInType(CommandInfo commandInfo, InvocationInfo invocationInfo, String parameterSet) + { + List attributeList = new List(); + + if (commandInfo.GetType() == typeof(CmdletInfo)) + { + var type = ((CmdletInfo)commandInfo).ImplementingType; + attributeList.AddRange(type.GetCustomAttributes(typeof(GenericBreakingChangeAttribute), false).Cast()); + + foreach (MethodInfo m in type.GetRuntimeMethods()) + { + attributeList.AddRange((m.GetCustomAttributes(typeof(GenericBreakingChangeAttribute), false).Cast())); + } + + foreach (FieldInfo f in type.GetRuntimeFields()) + { + attributeList.AddRange(f.GetCustomAttributes(typeof(GenericBreakingChangeAttribute), false).Cast()); + } + + foreach (PropertyInfo p in type.GetRuntimeProperties()) + { + attributeList.AddRange(p.GetCustomAttributes(typeof(GenericBreakingChangeAttribute), false).Cast()); + } + } + else if (commandInfo.GetType() == typeof(FunctionInfo)) + { + attributeList.AddRange(((FunctionInfo)commandInfo).ScriptBlock.Attributes.Where(e => typeof(GenericBreakingChangeAttribute).IsAssignableFrom(e.GetType())).Cast()); + foreach (var parameter in ((FunctionInfo)commandInfo).Parameters) + { + attributeList.AddRange(parameter.Value.Attributes.Where(e => typeof(GenericBreakingChangeAttribute).IsAssignableFrom(e.GetType())).Cast()); + } + } + return invocationInfo == null ? attributeList : attributeList.Where(e => e.GetType() == typeof(ParameterSetBreakingChangeAttribute) ? ((ParameterSetBreakingChangeAttribute)e).IsApplicableToInvocation(invocationInfo, parameterSet) : e.IsApplicableToInvocation(invocationInfo)); + } + private static IEnumerable GetAllPreviewAttributesInType(CommandInfo commandInfo, InvocationInfo invocationInfo) + { + List attributeList = new List(); + if (commandInfo.GetType() == typeof(CmdletInfo)) + { + var type = ((CmdletInfo)commandInfo).ImplementingType; + attributeList.AddRange(type.GetCustomAttributes(typeof(PreviewMessageAttribute), false).Cast()); + + foreach (MethodInfo m in type.GetRuntimeMethods()) + { + attributeList.AddRange((m.GetCustomAttributes(typeof(PreviewMessageAttribute), false).Cast())); + } + + foreach (FieldInfo f in type.GetRuntimeFields()) + { + attributeList.AddRange(f.GetCustomAttributes(typeof(PreviewMessageAttribute), false).Cast()); + } + + foreach (PropertyInfo p in type.GetRuntimeProperties()) + { + attributeList.AddRange(p.GetCustomAttributes(typeof(PreviewMessageAttribute), false).Cast()); + } + } + else if (commandInfo.GetType() == typeof(FunctionInfo)) + { + attributeList.AddRange(((FunctionInfo)commandInfo).ScriptBlock.Attributes.Where(e => typeof(PreviewMessageAttribute).IsAssignableFrom(e.GetType())).Cast()); + foreach (var parameter in ((FunctionInfo)commandInfo).Parameters) + { + attributeList.AddRange(parameter.Value.Attributes.Where(e => typeof(PreviewMessageAttribute).IsAssignableFrom(e.GetType())).Cast()); + } + } + return invocationInfo == null ? attributeList : attributeList.Where(e => e.IsApplicableToInvocation(invocationInfo)); + } + } +} diff --git a/swaggerci/eventgrid/generated/runtime/Method.cs b/swaggerci/eventgrid/generated/runtime/Method.cs new file mode 100644 index 000000000000..58e967054081 --- /dev/null +++ b/swaggerci/eventgrid/generated/runtime/Method.cs @@ -0,0 +1,19 @@ +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime +{ + internal static class Method + { + internal static System.Net.Http.HttpMethod Get = System.Net.Http.HttpMethod.Get; + internal static System.Net.Http.HttpMethod Put = System.Net.Http.HttpMethod.Put; + internal static System.Net.Http.HttpMethod Head = System.Net.Http.HttpMethod.Head; + internal static System.Net.Http.HttpMethod Post = System.Net.Http.HttpMethod.Post; + internal static System.Net.Http.HttpMethod Delete = System.Net.Http.HttpMethod.Delete; + internal static System.Net.Http.HttpMethod Options = System.Net.Http.HttpMethod.Options; + internal static System.Net.Http.HttpMethod Trace = System.Net.Http.HttpMethod.Trace; + internal static System.Net.Http.HttpMethod Patch = new System.Net.Http.HttpMethod("PATCH"); + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/runtime/Models/JsonMember.cs b/swaggerci/eventgrid/generated/runtime/Models/JsonMember.cs new file mode 100644 index 000000000000..676f8f2db4ca --- /dev/null +++ b/swaggerci/eventgrid/generated/runtime/Models/JsonMember.cs @@ -0,0 +1,83 @@ +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ +using System; +using System.Reflection; +using System.Runtime.Serialization; + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json +{ + + + internal sealed class JsonMember + { + private readonly TypeDetails type; + + private readonly Func getter; + private readonly Action setter; + + internal JsonMember(PropertyInfo property, int defaultOrder) + { + getter = property.GetValue; + setter = property.SetValue; + + var dataMember = property.GetCustomAttribute(); + + Name = dataMember?.Name ?? property.Name; + Order = dataMember?.Order ?? defaultOrder; + EmitDefaultValue = dataMember?.EmitDefaultValue ?? true; + + this.type = TypeDetails.Get(property.PropertyType); + + CanRead = property.CanRead; + } + + internal JsonMember(FieldInfo field, int defaultOrder) + { + getter = field.GetValue; + setter = field.SetValue; + + var dataMember = field.GetCustomAttribute(); + + Name = dataMember?.Name ?? field.Name; + Order = dataMember?.Order ?? defaultOrder; + EmitDefaultValue = dataMember?.EmitDefaultValue ?? true; + + this.type = TypeDetails.Get(field.FieldType); + + CanRead = true; + } + + internal string Name { get; } + + internal int Order { get; } + + internal TypeDetails TypeDetails => type; + + internal Type Type => type.NonNullType; + + internal bool IsList => type.IsList; + + // Arrays, Sets, ... + internal Type ElementType => type.ElementType; + + internal IJsonConverter Converter => type.JsonConverter; + + internal bool EmitDefaultValue { get; } + + internal bool IsStringLike => type.IsStringLike; + + internal object DefaultValue => type.DefaultValue; + + internal bool CanRead { get; } + + #region Helpers + + internal object GetValue(object instance) => getter(instance); + + internal void SetValue(object instance, object value) => setter(instance, value); + + #endregion + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/runtime/Models/JsonModel.cs b/swaggerci/eventgrid/generated/runtime/Models/JsonModel.cs new file mode 100644 index 000000000000..37646823c051 --- /dev/null +++ b/swaggerci/eventgrid/generated/runtime/Models/JsonModel.cs @@ -0,0 +1,89 @@ +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ +using System; +using System.Collections.Generic; +using System.Runtime.Serialization; +using System.Reflection; + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json +{ + internal class JsonModel + { + private Dictionary map; + private readonly object _sync = new object(); + + private JsonModel(Type type, List members) + { + Type = type ?? throw new ArgumentNullException(nameof(type)); + Members = members ?? throw new ArgumentNullException(nameof(members)); + } + + internal string Name => Type.Name; + + internal Type Type { get; } + + internal List Members { get; } + + internal JsonMember this[string name] + { + get + { + if (map == null) + { + lock (_sync) + { + if (map == null) + { + map = new Dictionary(); + + foreach (JsonMember m in Members) + { + map[m.Name.ToLower()] = m; + } + } + } + } + + + map.TryGetValue(name.ToLower(), out JsonMember member); + + return member; + } + } + + internal static JsonModel FromType(Type type) + { + var members = new List(); + + int i = 0; + + // BindingFlags.Instance | BindingFlags.Public + + foreach (var member in type.GetFields()) + { + if (member.IsStatic) continue; + + if (member.IsDefined(typeof(IgnoreDataMemberAttribute))) continue; + + members.Add(new JsonMember(member, i)); + + i++; + } + + foreach (var member in type.GetProperties(BindingFlags.Public | BindingFlags.Instance)) + { + if (member.IsDefined(typeof(IgnoreDataMemberAttribute))) continue; + + members.Add(new JsonMember(member, i)); + + i++; + } + + members.Sort((a, b) => a.Order.CompareTo(b.Order)); // inline sort + + return new JsonModel(type, members); + } + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/runtime/Models/JsonModelCache.cs b/swaggerci/eventgrid/generated/runtime/Models/JsonModelCache.cs new file mode 100644 index 000000000000..e52b59992705 --- /dev/null +++ b/swaggerci/eventgrid/generated/runtime/Models/JsonModelCache.cs @@ -0,0 +1,19 @@ +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ +using System; +using System.Runtime.CompilerServices; + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json +{ + internal static class JsonModelCache + { + private static readonly ConditionalWeakTable cache + = new ConditionalWeakTable(); + + internal static JsonModel Get(Type type) => cache.GetValue(type, Create); + + private static JsonModel Create(Type type) => JsonModel.FromType(type); + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/runtime/Nodes/Collections/JsonArray.cs b/swaggerci/eventgrid/generated/runtime/Nodes/Collections/JsonArray.cs new file mode 100644 index 000000000000..7ae42ef74ccc --- /dev/null +++ b/swaggerci/eventgrid/generated/runtime/Nodes/Collections/JsonArray.cs @@ -0,0 +1,65 @@ +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ +using System; +using System.Collections; +using System.Collections.Generic; + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json +{ + public abstract partial class JsonArray : JsonNode, IEnumerable + { + internal override JsonType Type => JsonType.Array; + + internal abstract JsonType? ElementType { get; } + + public abstract int Count { get; } + + internal virtual bool IsSet => false; + + internal bool IsEmpty => Count == 0; + + #region IEnumerable + + IEnumerator IEnumerable.GetEnumerator() + { + throw new NotImplementedException(); + } + + IEnumerator IEnumerable.GetEnumerator() + { + throw new NotImplementedException(); + } + + #endregion + + #region Static Helpers + + internal static JsonArray Create(short[] values) + => new XImmutableArray(values); + + internal static JsonArray Create(int[] values) + => new XImmutableArray(values); + + internal static JsonArray Create(long[] values) + => new XImmutableArray(values); + + internal static JsonArray Create(decimal[] values) + => new XImmutableArray(values); + + internal static JsonArray Create(float[] values) + => new XImmutableArray(values); + + internal static JsonArray Create(string[] values) + => new XImmutableArray(values); + + internal static JsonArray Create(XBinary[] values) + => new XImmutableArray(values); + + #endregion + + internal static new JsonArray Parse(string text) + => (JsonArray)JsonNode.Parse(text); + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/runtime/Nodes/Collections/XImmutableArray.cs b/swaggerci/eventgrid/generated/runtime/Nodes/Collections/XImmutableArray.cs new file mode 100644 index 000000000000..f334e25d77d6 --- /dev/null +++ b/swaggerci/eventgrid/generated/runtime/Nodes/Collections/XImmutableArray.cs @@ -0,0 +1,62 @@ +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ +using System; +using System.Collections; +using System.Collections.Generic; + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json +{ + internal sealed class XImmutableArray : JsonArray, IEnumerable + { + private readonly T[] values; + private readonly JsonType elementType; + private readonly TypeCode elementCode; + + internal XImmutableArray(T[] values) + { + this.values = values ?? throw new ArgumentNullException(nameof(values)); + this.elementCode = System.Type.GetTypeCode(typeof(T)); + this.elementType = XHelper.GetElementType(this.elementCode); + } + + public override JsonNode this[int index] => + XHelper.Create(elementType, elementCode, values[index]); + + internal override JsonType? ElementType => elementType; + + public override int Count => values.Length; + + public bool IsReadOnly => true; + + #region IEnumerable Members + + IEnumerator IEnumerable.GetEnumerator() + { + foreach (T value in values) + { + yield return XHelper.Create(elementType, elementCode, value); + } + } + + IEnumerator IEnumerable.GetEnumerator() + { + foreach (T value in values) + { + yield return XHelper.Create(elementType, elementCode, value); + } + } + + #endregion + + #region Static Constructor + + internal XImmutableArray Create(T[] items) + { + return new XImmutableArray(items); + } + + #endregion + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/runtime/Nodes/Collections/XList.cs b/swaggerci/eventgrid/generated/runtime/Nodes/Collections/XList.cs new file mode 100644 index 000000000000..60d984f45a41 --- /dev/null +++ b/swaggerci/eventgrid/generated/runtime/Nodes/Collections/XList.cs @@ -0,0 +1,64 @@ +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ +using System; +using System.Collections; +using System.Collections.Generic; + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json +{ + internal sealed class XList : JsonArray, IEnumerable + { + private readonly IList values; + private readonly JsonType elementType; + private readonly TypeCode elementCode; + + internal XList(IList values) + { + this.values = values ?? throw new ArgumentNullException(nameof(values)); + this.elementCode = System.Type.GetTypeCode(typeof(T)); + this.elementType = XHelper.GetElementType(this.elementCode); + } + + public override JsonNode this[int index] => + XHelper.Create(elementType, elementCode, values[index]); + + internal override JsonType? ElementType => elementType; + + public override int Count => values.Count; + + public bool IsReadOnly => values.IsReadOnly; + + #region IList + + public void Add(T value) + { + values.Add(value); + } + + public bool Contains(T value) => values.Contains(value); + + #endregion + + #region IEnumerable Members + + IEnumerator IEnumerable.GetEnumerator() + { + foreach (var value in values) + { + yield return XHelper.Create(elementType, elementCode, value); + } + } + + IEnumerator IEnumerable.GetEnumerator() + { + foreach (var value in values) + { + yield return XHelper.Create(elementType, elementCode, value); + } + } + + #endregion + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/runtime/Nodes/Collections/XNodeArray.cs b/swaggerci/eventgrid/generated/runtime/Nodes/Collections/XNodeArray.cs new file mode 100644 index 000000000000..8565639ec358 --- /dev/null +++ b/swaggerci/eventgrid/generated/runtime/Nodes/Collections/XNodeArray.cs @@ -0,0 +1,68 @@ +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ +using System.Collections; +using System.Collections.Generic; + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json +{ + public sealed partial class XNodeArray : JsonArray, ICollection + { + private readonly List items; + + internal XNodeArray() + { + items = new List(); + } + + internal XNodeArray(params JsonNode[] values) + { + items = new List(values); + } + + public override JsonNode this[int index] => items[index]; + + internal override JsonType? ElementType => null; + + public bool IsReadOnly => false; + + public override int Count => items.Count; + + #region ICollection Members + + public void Add(JsonNode item) + { + items.Add(item); + } + + void ICollection.Clear() + { + items.Clear(); + } + + public bool Contains(JsonNode item) => items.Contains(item); + + void ICollection.CopyTo(JsonNode[] array, int arrayIndex) + { + items.CopyTo(array, arrayIndex); + } + + public bool Remove(JsonNode item) + { + return items.Remove(item); + } + + #endregion + + #region IEnumerable Members + + IEnumerator IEnumerable.GetEnumerator() + => items.GetEnumerator(); + + IEnumerator IEnumerable.GetEnumerator() + => items.GetEnumerator(); + + #endregion + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/runtime/Nodes/Collections/XSet.cs b/swaggerci/eventgrid/generated/runtime/Nodes/Collections/XSet.cs new file mode 100644 index 000000000000..105eb74bb3b8 --- /dev/null +++ b/swaggerci/eventgrid/generated/runtime/Nodes/Collections/XSet.cs @@ -0,0 +1,60 @@ +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ +using System; +using System.Collections; +using System.Collections.Generic; + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json +{ + internal sealed class XSet : JsonArray, IEnumerable + { + private readonly HashSet values; + private readonly JsonType elementType; + private readonly TypeCode elementCode; + + internal XSet(IEnumerable values) + : this(new HashSet(values)) + { } + + internal XSet(HashSet values) + { + this.values = values ?? throw new ArgumentNullException(nameof(values)); + this.elementCode = System.Type.GetTypeCode(typeof(T)); + this.elementType = XHelper.GetElementType(this.elementCode); + } + + internal override JsonType Type => JsonType.Array; + + internal override JsonType? ElementType => elementType; + + public bool IsReadOnly => true; + + public override int Count => values.Count; + + internal override bool IsSet => true; + + #region IEnumerable Members + + IEnumerator IEnumerable.GetEnumerator() + { + foreach (var value in values) + { + yield return XHelper.Create(elementType, elementCode, value); + } + } + + IEnumerator IEnumerable.GetEnumerator() + { + foreach (var value in values) + { + yield return XHelper.Create(elementType, elementCode, value); + } + } + + #endregion + + internal HashSet AsHashSet() => values; + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/runtime/Nodes/JsonBoolean.cs b/swaggerci/eventgrid/generated/runtime/Nodes/JsonBoolean.cs new file mode 100644 index 000000000000..c0604c265112 --- /dev/null +++ b/swaggerci/eventgrid/generated/runtime/Nodes/JsonBoolean.cs @@ -0,0 +1,42 @@ +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ +using System; + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json +{ + internal sealed partial class JsonBoolean : JsonNode + { + internal static readonly JsonBoolean True = new JsonBoolean(true); + internal static readonly JsonBoolean False = new JsonBoolean(false); + + internal JsonBoolean(bool value) + { + Value = value; + } + + internal bool Value { get; } + + internal override JsonType Type => JsonType.Boolean; + + internal static new JsonBoolean Parse(string text) + { + switch (text) + { + case "false": return False; + case "true": return True; + + default: throw new ArgumentException($"Expected true or false. Was {text}."); + } + } + + #region Implicit Casts + + public static implicit operator bool(JsonBoolean data) => data.Value; + + public static implicit operator JsonBoolean(bool data) => new JsonBoolean(data); + + #endregion + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/runtime/Nodes/JsonDate.cs b/swaggerci/eventgrid/generated/runtime/Nodes/JsonDate.cs new file mode 100644 index 000000000000..d468abf877ac --- /dev/null +++ b/swaggerci/eventgrid/generated/runtime/Nodes/JsonDate.cs @@ -0,0 +1,173 @@ +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ +using System; + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json +{ + + + internal sealed partial class JsonDate : JsonNode, IEquatable, IComparable + { + internal static bool AssumeUtcWhenKindIsUnspecified = true; + + private readonly DateTimeOffset value; + + internal JsonDate(DateTime value) + { + if (value.Kind == DateTimeKind.Unspecified && AssumeUtcWhenKindIsUnspecified) + { + value = DateTime.SpecifyKind(value, DateTimeKind.Utc); + } + + this.value = value; + } + + internal JsonDate(DateTimeOffset value) + { + this.value = value; + } + + internal override JsonType Type => JsonType.Date; + + #region Helpers + + internal DateTimeOffset ToDateTimeOffset() + { + return value; + } + + internal DateTime ToDateTime() + { + if (value.Offset == TimeSpan.Zero) + { + return value.UtcDateTime; + } + + return value.DateTime; + } + + internal DateTime ToUtcDateTime() => value.UtcDateTime; + + internal int ToUnixTimeSeconds() + { + return (int)value.ToUnixTimeSeconds(); + } + + internal long ToUnixTimeMilliseconds() + { + return (int)value.ToUnixTimeMilliseconds(); + } + + internal string ToIsoString() + { + return IsoDate.FromDateTimeOffset(value).ToString(); + } + + #endregion + + public override string ToString() + { + return ToIsoString(); + } + + internal static new JsonDate Parse(string text) + { + if (text == null) throw new ArgumentNullException(nameof(text)); + + // TODO support: unixtimeseconds.partialseconds + + if (text.Length > 4 && _IsNumber(text)) // UnixTime + { + var date = DateTimeOffset.FromUnixTimeSeconds(long.Parse(text)); + + return new JsonDate(date); + } + else if (text.Length <= 4 || text[4] == '-') // ISO: 2012- + { + return new JsonDate(IsoDate.Parse(text).ToDateTimeOffset()); + } + else + { + // NOT ISO ENCODED + // "Thu, 5 Apr 2012 16:59:01 +0200", + return new JsonDate(DateTimeOffset.Parse(text)); + } + } + + private static bool _IsNumber(string text) + { + foreach (var c in text) + { + if (!char.IsDigit(c)) return false; + } + + return true; + } + + internal static JsonDate FromUnixTime(int seconds) + { + return new JsonDate(DateTimeOffset.FromUnixTimeSeconds(seconds)); + } + + internal static JsonDate FromUnixTime(double seconds) + { + var milliseconds = (long)(seconds * 1000d); + + return new JsonDate(DateTimeOffset.FromUnixTimeMilliseconds(milliseconds)); + } + + #region Implicit Casts + + public static implicit operator DateTimeOffset(JsonDate value) + => value.ToDateTimeOffset(); + + public static implicit operator DateTime(JsonDate value) + => value.ToDateTime(); + + // From Date + public static implicit operator JsonDate(DateTimeOffset value) + { + return new JsonDate(value); + } + + public static implicit operator JsonDate(DateTime value) + { + return new JsonDate(value); + } + + // From String + public static implicit operator JsonDate(string value) + { + return Parse(value); + } + + #endregion + + #region Equality + + public override bool Equals(object obj) + { + return obj is JsonDate date && date.value == this.value; + } + + public bool Equals(JsonDate other) + { + return this.value == other.value; + } + + public override int GetHashCode() => value.GetHashCode(); + + #endregion + + #region IComparable Members + + int IComparable.CompareTo(JsonDate other) + { + return value.CompareTo(other.value); + } + + #endregion + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/runtime/Nodes/JsonNode.cs b/swaggerci/eventgrid/generated/runtime/Nodes/JsonNode.cs new file mode 100644 index 000000000000..09f319614712 --- /dev/null +++ b/swaggerci/eventgrid/generated/runtime/Nodes/JsonNode.cs @@ -0,0 +1,250 @@ +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ +using System; +using System.IO; +using System.Text; + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json +{ + + + public abstract partial class JsonNode + { + internal abstract JsonType Type { get; } + + public virtual JsonNode this[int index] => throw new NotImplementedException(); + + public virtual JsonNode this[string name] + { + get => throw new NotImplementedException(); + set => throw new NotImplementedException(); + } + + #region Type Helpers + + internal bool IsArray => Type == JsonType.Array; + + internal bool IsDate => Type == JsonType.Date; + + internal bool IsObject => Type == JsonType.Object; + + internal bool IsNumber => Type == JsonType.Number; + + internal bool IsNull => Type == JsonType.Null; + + #endregion + + internal void WriteTo(TextWriter textWriter, bool pretty = true) + { + var writer = new JsonWriter(textWriter, pretty); + + writer.WriteNode(this); + } + + internal T As() + where T : new() + => new JsonSerializer().Deseralize((JsonObject)this); + + internal T[] ToArrayOf() + { + return (T[])new JsonSerializer().DeserializeArray(typeof(T[]), (JsonArray)this); + } + + #region ToString Overrides + + public override string ToString() => ToString(pretty: true); + + internal string ToString(bool pretty) + { + var sb = new StringBuilder(); + + using (var writer = new StringWriter(sb)) + { + WriteTo(writer, pretty); + + return sb.ToString(); + } + } + + #endregion + + #region Static Constructors + + internal static JsonNode Parse(string text) + { + return Parse(new SourceReader(new StringReader(text))); + } + + internal static JsonNode Parse(TextReader textReader) + => Parse(new SourceReader(textReader)); + + private static JsonNode Parse(SourceReader sourceReader) + { + using (var parser = new JsonParser(sourceReader)) + { + return parser.ReadNode(); + } + } + + internal static JsonNode FromObject(object instance) + => new JsonSerializer().Serialize(instance); + + #endregion + + #region Implict Casts + + public static implicit operator string(JsonNode node) => node.ToString(); + + #endregion + + #region Explict Casts + + public static explicit operator DateTime(JsonNode node) + { + switch (node.Type) + { + case JsonType.Date: + return ((JsonDate)node).ToDateTime(); + + case JsonType.String: + return JsonDate.Parse(node.ToString()).ToDateTime(); + + case JsonType.Number: + var num = (JsonNumber)node; + + if (num.IsInteger) + { + return DateTimeOffset.FromUnixTimeSeconds(num).UtcDateTime; + } + else + { + return DateTimeOffset.FromUnixTimeMilliseconds((long)((double)num * 1000)).UtcDateTime; + } + } + + throw new ConversionException(node, typeof(DateTime)); + } + + public static explicit operator DateTimeOffset(JsonNode node) + { + switch (node.Type) + { + case JsonType.Date : return ((JsonDate)node).ToDateTimeOffset(); + case JsonType.String : return JsonDate.Parse(node.ToString()).ToDateTimeOffset(); + + case JsonType.Number: + var num = (JsonNumber)node; + + if (num.IsInteger) + { + return DateTimeOffset.FromUnixTimeSeconds(num); + } + else + { + return DateTimeOffset.FromUnixTimeMilliseconds((long)((double)num * 1000)); + } + + } + + throw new ConversionException(node, typeof(DateTimeOffset)); + } + + public static explicit operator float(JsonNode node) + { + switch (node.Type) + { + case JsonType.Number : return (JsonNumber)node; + case JsonType.String : return float.Parse(node.ToString()); + } + + throw new ConversionException(node, typeof(float)); + } + + public static explicit operator double(JsonNode node) + { + switch (node.Type) + { + case JsonType.Number : return (JsonNumber)node; + case JsonType.String : return double.Parse(node.ToString()); + } + + throw new ConversionException(node, typeof(double)); + } + + public static explicit operator decimal(JsonNode node) + { + switch (node.Type) + { + case JsonType.Number: return (JsonNumber)node; + case JsonType.String: return decimal.Parse(node.ToString()); + } + + throw new ConversionException(node, typeof(decimal)); + } + + public static explicit operator Guid(JsonNode node) + => new Guid(node.ToString()); + + public static explicit operator short(JsonNode node) + { + switch (node.Type) + { + case JsonType.Number : return (JsonNumber)node; + case JsonType.String : return short.Parse(node.ToString()); + } + + throw new ConversionException(node, typeof(short)); + } + + public static explicit operator int(JsonNode node) + { + switch (node.Type) + { + case JsonType.Number : return (JsonNumber)node; + case JsonType.String : return int.Parse(node.ToString()); + } + + throw new ConversionException(node, typeof(int)); + } + + public static explicit operator long(JsonNode node) + { + switch (node.Type) + { + case JsonType.Number: return (JsonNumber)node; + case JsonType.String: return long.Parse(node.ToString()); + } + + throw new ConversionException(node, typeof(long)); + } + + public static explicit operator bool(JsonNode node) + => ((JsonBoolean)node).Value; + + public static explicit operator ushort(JsonNode node) + => (JsonNumber)node; + + public static explicit operator uint(JsonNode node) + => (JsonNumber)node; + + public static explicit operator ulong(JsonNode node) + => (JsonNumber)node; + + public static explicit operator TimeSpan(JsonNode node) + => TimeSpan.Parse(node.ToString()); + + public static explicit operator Uri(JsonNode node) + { + if (node.Type == JsonType.String) + { + return new Uri(node.ToString()); + } + + throw new ConversionException(node, typeof(Uri)); + } + + #endregion + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/runtime/Nodes/JsonNumber.cs b/swaggerci/eventgrid/generated/runtime/Nodes/JsonNumber.cs new file mode 100644 index 000000000000..2b81d4c99ec1 --- /dev/null +++ b/swaggerci/eventgrid/generated/runtime/Nodes/JsonNumber.cs @@ -0,0 +1,109 @@ +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ +using System; + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json +{ + public sealed partial class JsonNumber : JsonNode + { + private readonly string value; + private readonly bool overflows = false; + + internal JsonNumber(string value) + { + this.value = value ?? throw new ArgumentNullException(nameof(value)); + } + + internal JsonNumber(int value) + { + this.value = value.ToString(); + } + + internal JsonNumber(long value) + { + this.value = value.ToString(); + + if (value > 9007199254740991) + { + overflows = true; + } + } + + internal JsonNumber(float value) + { + this.value = value.ToString(System.Globalization.CultureInfo.InvariantCulture); + } + + internal JsonNumber(double value) + { + this.value = value.ToString(System.Globalization.CultureInfo.InvariantCulture); + } + + internal override JsonType Type => JsonType.Number; + + internal string Value => value; + + #region Helpers + + internal bool Overflows => overflows; + + internal bool IsInteger => !value.Contains("."); + + internal bool IsFloat => value.Contains("."); + + #endregion + + #region Casting + + public static implicit operator byte(JsonNumber number) + => byte.Parse(number.Value); + + public static implicit operator short(JsonNumber number) + => short.Parse(number.Value); + + public static implicit operator int(JsonNumber number) + => int.Parse(number.Value); + + public static implicit operator long(JsonNumber number) + => long.Parse(number.value); + + public static implicit operator UInt16(JsonNumber number) + => ushort.Parse(number.Value); + + public static implicit operator UInt32(JsonNumber number) + => uint.Parse(number.Value); + + public static implicit operator UInt64(JsonNumber number) + => ulong.Parse(number.Value); + + public static implicit operator decimal(JsonNumber number) + => decimal.Parse(number.Value, System.Globalization.CultureInfo.InvariantCulture); + + public static implicit operator Double(JsonNumber number) + => double.Parse(number.value, System.Globalization.CultureInfo.InvariantCulture); + + public static implicit operator float(JsonNumber number) + => float.Parse(number.value, System.Globalization.CultureInfo.InvariantCulture); + + public static implicit operator JsonNumber(short data) + => new JsonNumber(data.ToString()); + + public static implicit operator JsonNumber(int data) + => new JsonNumber(data); + + public static implicit operator JsonNumber(long data) + => new JsonNumber(data); + + public static implicit operator JsonNumber(Single data) + => new JsonNumber(data.ToString()); + + public static implicit operator JsonNumber(double data) + => new JsonNumber(data.ToString()); + + #endregion + + public override string ToString() => value; + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/runtime/Nodes/JsonObject.cs b/swaggerci/eventgrid/generated/runtime/Nodes/JsonObject.cs new file mode 100644 index 000000000000..c21b8a14002c --- /dev/null +++ b/swaggerci/eventgrid/generated/runtime/Nodes/JsonObject.cs @@ -0,0 +1,172 @@ +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ +using System; +using System.Collections; +using System.Collections.Generic; +using System.IO; + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json +{ + public partial class JsonObject : JsonNode, IDictionary + { + private readonly Dictionary items; + + internal JsonObject() + { + items = new Dictionary(); + } + + internal JsonObject(IEnumerable> properties) + { + if (properties == null) throw new ArgumentNullException(nameof(properties)); + + items = new Dictionary(); + + foreach (var field in properties) + { + items.Add(field.Key, field.Value); + } + } + + #region IDictionary Constructors + + internal JsonObject(IDictionary dic) + { + items = new Dictionary(dic.Count); + + foreach (var pair in dic) + { + Add(pair.Key, pair.Value); + } + } + + #endregion + + internal override JsonType Type => JsonType.Object; + + #region Add Overloads + + public void Add(string name, JsonNode value) => + items.Add(name, value); + + public void Add(string name, byte[] value) => + items.Add(name, new XBinary(value)); + + public void Add(string name, DateTime value) => + items.Add(name, new JsonDate(value)); + + public void Add(string name, int value) => + items.Add(name, new JsonNumber(value.ToString())); + + public void Add(string name, long value) => + items.Add(name, new JsonNumber(value.ToString())); + + public void Add(string name, float value) => + items.Add(name, new JsonNumber(value.ToString())); + + public void Add(string name, double value) => + items.Add(name, new JsonNumber(value.ToString())); + + public void Add(string name, string value) => + items.Add(name, new JsonString(value)); + + public void Add(string name, bool value) => + items.Add(name, new JsonBoolean(value)); + + public void Add(string name, Uri url) => + items.Add(name, new JsonString(url.AbsoluteUri)); + + public void Add(string name, string[] values) => + items.Add(name, new XImmutableArray(values)); + + public void Add(string name, int[] values) => + items.Add(name, new XImmutableArray(values)); + + #endregion + + #region ICollection> Members + + void ICollection>.Add(KeyValuePair item) + { + items.Add(item.Key, item.Value); + } + + void ICollection>.Clear() + { + items.Clear(); + } + + bool ICollection>.Contains(KeyValuePair item) => + throw new NotImplementedException(); + + void ICollection>.CopyTo(KeyValuePair[] array, int arrayIndex) => + throw new NotImplementedException(); + + + int ICollection>.Count => items.Count; + + bool ICollection>.IsReadOnly => false; + + bool ICollection>.Remove(KeyValuePair item) => + throw new NotImplementedException(); + + #endregion + + #region IDictionary Members + + public bool ContainsKey(string key) => items.ContainsKey(key); + + public ICollection Keys => items.Keys; + + public bool Remove(string key) => items.Remove(key); + + public bool TryGetValue(string key, out JsonNode value) => + items.TryGetValue(key, out value); + + public ICollection Values => items.Values; + + public override JsonNode this[string key] + { + get => items[key]; + set => items[key] = value; + } + + #endregion + + #region IEnumerable + + IEnumerator> IEnumerable>.GetEnumerator() + => items.GetEnumerator(); + + IEnumerator IEnumerable.GetEnumerator() + => items.GetEnumerator(); + + #endregion + + #region Helpers + + internal static new JsonObject FromObject(object instance) => + (JsonObject)new JsonSerializer().Serialize(instance); + + #endregion + + #region Static Constructors + + internal static JsonObject FromStream(Stream stream) + { + using (var tr = new StreamReader(stream)) + { + return (JsonObject)Parse(tr); + } + } + + internal static new JsonObject Parse(string text) + { + return (JsonObject)JsonNode.Parse(text); + } + + #endregion + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/runtime/Nodes/JsonString.cs b/swaggerci/eventgrid/generated/runtime/Nodes/JsonString.cs new file mode 100644 index 000000000000..59ea3f5495a9 --- /dev/null +++ b/swaggerci/eventgrid/generated/runtime/Nodes/JsonString.cs @@ -0,0 +1,42 @@ +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ +using System; + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json +{ + public sealed partial class JsonString : JsonNode, IEquatable + { + private readonly string value; + + internal JsonString(string value) + { + this.value = value ?? throw new ArgumentNullException(nameof(value)); + } + + internal override JsonType Type => JsonType.String; + + internal string Value => value; + + internal int Length => value.Length; + + #region #region Implicit Casts + + public static implicit operator string(JsonString data) => data.Value; + + public static implicit operator JsonString(string value) => new JsonString(value); + + #endregion + + public override int GetHashCode() => value.GetHashCode(); + + public override string ToString() => value; + + #region IEquatable + + bool IEquatable.Equals(JsonString other) => this.Value == other.Value; + + #endregion + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/runtime/Nodes/XBinary.cs b/swaggerci/eventgrid/generated/runtime/Nodes/XBinary.cs new file mode 100644 index 000000000000..b9930732c2d0 --- /dev/null +++ b/swaggerci/eventgrid/generated/runtime/Nodes/XBinary.cs @@ -0,0 +1,40 @@ +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ +using System; + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json +{ + internal sealed class XBinary : JsonNode + { + private readonly byte[] _value; + private readonly string _base64; + + internal XBinary(byte[] value) + { + _value = value ?? throw new ArgumentNullException(nameof(value)); + } + + internal XBinary(string base64EncodedString) + { + _base64 = base64EncodedString ?? throw new ArgumentNullException(nameof(base64EncodedString)); + } + + internal override JsonType Type => JsonType.Binary; + + internal byte[] Value => _value ?? Convert.FromBase64String(_base64); + + #region #region Implicit Casts + + public static implicit operator byte[] (XBinary data) => data.Value; + + public static implicit operator XBinary(byte[] data) => new XBinary(data); + + #endregion + + public override int GetHashCode() => Value.GetHashCode(); + + public override string ToString() => _base64 ?? Convert.ToBase64String(_value); + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/runtime/Nodes/XNull.cs b/swaggerci/eventgrid/generated/runtime/Nodes/XNull.cs new file mode 100644 index 000000000000..ff378cc8815c --- /dev/null +++ b/swaggerci/eventgrid/generated/runtime/Nodes/XNull.cs @@ -0,0 +1,15 @@ +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json +{ + internal sealed class XNull : JsonNode + { + internal static readonly XNull Instance = new XNull(); + + private XNull() { } + + internal override JsonType Type => JsonType.Null; + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/runtime/Parser/Exceptions/ParseException.cs b/swaggerci/eventgrid/generated/runtime/Parser/Exceptions/ParseException.cs new file mode 100644 index 000000000000..4e8bd94b0513 --- /dev/null +++ b/swaggerci/eventgrid/generated/runtime/Parser/Exceptions/ParseException.cs @@ -0,0 +1,24 @@ +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ +using System; + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json +{ + internal class ParserException : Exception + { + internal ParserException(string message) + : base(message) + { } + + internal ParserException(string message, SourceLocation location) + : base(message) + { + + Location = location; + } + + internal SourceLocation Location { get; } + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/runtime/Parser/JsonParser.cs b/swaggerci/eventgrid/generated/runtime/Parser/JsonParser.cs new file mode 100644 index 000000000000..e773c64fd240 --- /dev/null +++ b/swaggerci/eventgrid/generated/runtime/Parser/JsonParser.cs @@ -0,0 +1,180 @@ +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ +using System; +using System.Collections.Generic; +using System.IO; + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json +{ + public class JsonParser : IDisposable + { + private readonly TokenReader reader; + + internal JsonParser(TextReader reader) + : this(new SourceReader(reader)) { } + + internal JsonParser(SourceReader sourceReader) + { + if (sourceReader == null) + throw new ArgumentNullException(nameof(sourceReader)); + + this.reader = new TokenReader(new JsonTokenizer(sourceReader)); + + this.reader.Next(); // Start with the first token + } + + internal IEnumerable ReadNodes() + { + JsonNode node; + + while ((node = ReadNode()) != null) yield return node; + } + + internal JsonNode ReadNode() + { + if (reader.Current.Kind == TokenKind.Eof || reader.Current.IsTerminator) + { + return null; + } + + switch (reader.Current.Kind) + { + case TokenKind.LeftBrace : return ReadObject(); // { + case TokenKind.LeftBracket : return ReadArray(); // [ + + default: throw new ParserException($"Expected '{{' or '['. Was {reader.Current}."); + } + } + + private JsonNode ReadFieldValue() + { + // Boolean, Date, Null, Number, String, Uri + if (reader.Current.IsLiteral) + { + return ReadLiteral(); + } + else + { + switch (reader.Current.Kind) + { + case TokenKind.LeftBracket: return ReadArray(); + case TokenKind.LeftBrace : return ReadObject(); + + default: throw new ParserException($"Unexpected token reading field value. Was {reader.Current}."); + } + } + } + + private JsonNode ReadLiteral() + { + var literal = reader.Current; + + reader.Next(); // Read the literal token + + switch (literal.Kind) + { + case TokenKind.Boolean : return JsonBoolean.Parse(literal.Value); + case TokenKind.Null : return XNull.Instance; + case TokenKind.Number : return new JsonNumber(literal.Value); + case TokenKind.String : return new JsonString(literal.Value); + + default: throw new ParserException($"Unexpected token reading literal. Was {literal}."); + } + } + + internal JsonObject ReadObject() + { + reader.Ensure(TokenKind.LeftBrace, "object"); + + reader.Next(); // Read '{' (Object start) + + var jsonObject = new JsonObject(); + + // Read the object's fields until we reach the end of the object ('}') + while (reader.Current.Kind != TokenKind.RightBrace) + { + if (reader.Current.Kind == TokenKind.Comma) + { + reader.Next(); // Read ',' (Seperator) + } + + // Ensure we have a field name + reader.Ensure(TokenKind.String, "Expected field name"); + + var field = ReadField(); + + jsonObject.Add(field.Key, field.Value); + } + + reader.Next(); // Read '}' (Object end) + + return jsonObject; + } + + + // TODO: Use ValueTuple in C#7 + private KeyValuePair ReadField() + { + var fieldName = reader.Current.Value; + + reader.Next(); // Read the field name + + reader.Ensure(TokenKind.Colon, "field"); + + reader.Next(); // Read ':' (Field value indicator) + + return new KeyValuePair(fieldName, ReadFieldValue()); + } + + + internal JsonArray ReadArray() + { + reader.Ensure(TokenKind.LeftBracket, "array"); + + var array = new XNodeArray(); + + reader.Next(); // Read the '[' (Array start) + + // Read the array's items + while (reader.Current.Kind != TokenKind.RightBracket) + { + if (reader.Current.Kind == TokenKind.Comma) + { + reader.Next(); // Read the ',' (Seperator) + } + + if (reader.Current.IsLiteral) + { + array.Add(ReadLiteral()); // Boolean, Date, Number, Null, String, Uri + } + else if (reader.Current.Kind == TokenKind.LeftBracket) + { + array.Add(ReadArray()); // Array + } + else if (reader.Current.Kind == TokenKind.LeftBrace) + { + array.Add(ReadObject()); // Object + } + else + { + throw new ParserException($"Expected comma, literal, or object. Was {reader.Current}."); + } + } + + reader.Next(); // Read the ']' (Array end) + + return array; + } + + #region IDisposable + + public void Dispose() + { + reader.Dispose(); + } + + #endregion + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/runtime/Parser/JsonToken.cs b/swaggerci/eventgrid/generated/runtime/Parser/JsonToken.cs new file mode 100644 index 000000000000..0ddd6d7682d8 --- /dev/null +++ b/swaggerci/eventgrid/generated/runtime/Parser/JsonToken.cs @@ -0,0 +1,66 @@ +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json +{ + internal enum TokenKind + { + LeftBrace, // { Object start + RightBrace, // } Object end + + LeftBracket, // [ Array start + RightBracket, // ] Array end + + Comma, // , Comma + Colon, // : Value indicator + Dot, // . Access field indicator + Terminator, // \0 Stream terminator + + Boolean = 31, // true or false + Null = 33, // null + Number = 34, // i.e. -1.93, -1, 0, 1, 1.1 + String = 35, // i.e. "text" + + Eof = 50 + } + + internal /* readonly */ struct JsonToken + { + internal static readonly JsonToken BraceOpen = new JsonToken(TokenKind.LeftBrace, "{"); + internal static readonly JsonToken BraceClose = new JsonToken(TokenKind.RightBrace, "}"); + + internal static readonly JsonToken BracketOpen = new JsonToken(TokenKind.LeftBracket, "["); + internal static readonly JsonToken BracketClose = new JsonToken(TokenKind.RightBracket, "]"); + + internal static readonly JsonToken Colon = new JsonToken(TokenKind.Colon, ":"); + internal static readonly JsonToken Comma = new JsonToken(TokenKind.Comma, ","); + internal static readonly JsonToken Terminator = new JsonToken(TokenKind.Terminator, "\0"); + + internal static readonly JsonToken True = new JsonToken(TokenKind.Boolean, "true"); + internal static readonly JsonToken False = new JsonToken(TokenKind.Boolean, "false"); + internal static readonly JsonToken Null = new JsonToken(TokenKind.Null, "null"); + + internal static readonly JsonToken Eof = new JsonToken(TokenKind.Eof, null); + + internal JsonToken(TokenKind kind, string value) + { + Kind = kind; + Value = value; + } + + internal readonly TokenKind Kind; + + internal readonly string Value; + + public override string ToString() => Kind + ": " + Value; + + #region Helpers + + internal bool IsLiteral => (byte)Kind > 30 && (byte)Kind < 40; + + internal bool IsTerminator => Kind == TokenKind.Terminator; + + #endregion + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/runtime/Parser/JsonTokenizer.cs b/swaggerci/eventgrid/generated/runtime/Parser/JsonTokenizer.cs new file mode 100644 index 000000000000..dc3d283bb3be --- /dev/null +++ b/swaggerci/eventgrid/generated/runtime/Parser/JsonTokenizer.cs @@ -0,0 +1,177 @@ +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ +using System; +using System.Text; + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json +{ + using System.IO; + + + public class JsonTokenizer : IDisposable + { + private readonly StringBuilder sb = new StringBuilder(); + + private readonly SourceReader reader; + + internal JsonTokenizer(TextReader reader) + : this(new SourceReader(reader)) { } + + internal JsonTokenizer(SourceReader reader) + { + this.reader = reader; + + reader.Next(); // Start with the first char + } + + internal JsonToken ReadNext() + { + reader.SkipWhitespace(); + + if (reader.IsEof) return JsonToken.Eof; + + switch (reader.Current) + { + case '"': return ReadQuotedString(); + + // Symbols + case '[' : reader.Next(); return JsonToken.BracketOpen; // Array start + case ']' : reader.Next(); return JsonToken.BracketClose; // Array end + case ',' : reader.Next(); return JsonToken.Comma; // Value seperator + case ':' : reader.Next(); return JsonToken.Colon; // Field value indicator + case '{' : reader.Next(); return JsonToken.BraceOpen; // Object start + case '}' : reader.Next(); return JsonToken.BraceClose; // Object end + case '\0' : reader.Next(); return JsonToken.Terminator; // Stream terminiator + + default: return ReadLiteral(); + } + } + + private JsonToken ReadQuotedString() + { + Expect('"', "quoted string indicator"); + + reader.Next(); // Read '"' (Starting quote) + + // Read until we reach an unescaped quote char + while (reader.Current != '"') + { + EnsureNotEof("quoted string"); + + if (reader.Current == '\\') + { + char escapedCharacter = reader.ReadEscapeCode(); + + sb.Append(escapedCharacter); + + continue; + } + + StoreCurrentCharacterAndReadNext(); + } + + reader.Next(); // Read '"' (Ending quote) + + return new JsonToken(TokenKind.String, value: sb.Extract()); + } + + private JsonToken ReadLiteral() + { + if (char.IsDigit(reader.Current) || + reader.Current == '-' || + reader.Current == '+') + { + return ReadNumber(); + } + + return ReadIdentifer(); + } + + private JsonToken ReadNumber() + { + // Read until we hit a non-numeric character + // -6.247737e-06 + // E + + while (char.IsDigit(reader.Current) + || reader.Current == '.' + || reader.Current == 'e' + || reader.Current == 'E' + || reader.Current == '-' + || reader.Current == '+') + { + StoreCurrentCharacterAndReadNext(); + } + + return new JsonToken(TokenKind.Number, value: sb.Extract()); + } + + int count = 0; + + private JsonToken ReadIdentifer() + { + count++; + + if (!char.IsLetter(reader.Current)) + { + throw new ParserException( + message : $"Expected literal (number, boolean, or null). Was '{reader.Current}'.", + location : reader.Location + ); + } + + // Read letters, numbers, and underscores '_' + while (char.IsLetterOrDigit(reader.Current) || reader.Current == '_') + { + StoreCurrentCharacterAndReadNext(); + } + + string text = sb.Extract(); + + switch (text) + { + case "true": return JsonToken.True; + case "false": return JsonToken.False; + case "null": return JsonToken.Null; + + default: return new JsonToken(TokenKind.String, text); + } + } + + private void Expect(char character, string description) + { + if (reader.Current != character) + { + throw new ParserException( + message: $"Expected {description} ('{character}'). Was '{reader.Current}'.", + location: reader.Location + ); + } + } + + private void EnsureNotEof(string tokenType) + { + if (reader.IsEof) + { + throw new ParserException( + message: $"Unexpected EOF while reading {tokenType}.", + location: reader.Location + ); + } + } + + private void StoreCurrentCharacterAndReadNext() + { + sb.Append(reader.Current); + + reader.Next(); + } + + public void Dispose() + { + reader.Dispose(); + } + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/runtime/Parser/Location.cs b/swaggerci/eventgrid/generated/runtime/Parser/Location.cs new file mode 100644 index 000000000000..4314c66405a2 --- /dev/null +++ b/swaggerci/eventgrid/generated/runtime/Parser/Location.cs @@ -0,0 +1,43 @@ +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json +{ + internal struct SourceLocation + { + private int line; + private int column; + private int position; + + internal SourceLocation(int line = 0, int column = 0, int position = 0) + { + this.line = line; + this.column = column; + this.position = position; + } + + internal int Line => line; + + internal int Column => column; + + internal int Position => position; + + internal void Advance() + { + this.column++; + this.position++; + } + + internal void MarkNewLine() + { + this.line++; + this.column = 0; + } + + internal SourceLocation Clone() + { + return new SourceLocation(line, column, position); + } + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/runtime/Parser/Readers/SourceReader.cs b/swaggerci/eventgrid/generated/runtime/Parser/Readers/SourceReader.cs new file mode 100644 index 000000000000..9ee64d0fe319 --- /dev/null +++ b/swaggerci/eventgrid/generated/runtime/Parser/Readers/SourceReader.cs @@ -0,0 +1,130 @@ +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ +using System; +using System.Globalization; +using System.IO; + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json +{ + public sealed class SourceReader : IDisposable + { + private readonly TextReader source; + + private char current; + + private readonly SourceLocation location = new SourceLocation(); + + private bool isEof = false; + + internal SourceReader(TextReader textReader) + { + this.source = textReader ?? throw new ArgumentNullException(nameof(textReader)); + } + + /// + /// Advances to the next character + /// + internal void Next() + { + // Advance to the new line when we see a new line '\n'. + // A new line may be prefixed by a carriage return '\r'. + + if (current == '\n') + { + location.MarkNewLine(); + } + + int charCode = source.Read(); // -1 for end + + if (charCode >= 0) + { + current = (char)charCode; + } + else + { + // If we've already marked this as the EOF, throw an exception + if (isEof) + { + throw new EndOfStreamException("Cannot advance past end of stream."); + } + + isEof = true; + + current = '\0'; + } + + location.Advance(); + } + + internal void SkipWhitespace() + { + while (char.IsWhiteSpace(current)) + { + Next(); + } + } + + internal char ReadEscapeCode() + { + Next(); + + char escapedChar = current; + + Next(); // Consume escaped character + + switch (escapedChar) + { + // Special escape codes + case '"': return '"'; // " (Quotation mark) U+0022 + case '/': return '/'; // / (Solidus) U+002F + case '\\': return '\\'; // \ (Reverse solidus) U+005C + + // Control Characters + case '0': return '\0'; // Nul (0) U+0000 + case 'a': return '\a'; // Alert (7) + case 'b': return '\b'; // Backspace (8) U+0008 + case 'f': return '\f'; // Form feed (12) U+000C + case 'n': return '\n'; // Line feed (10) U+000A + case 'r': return '\r'; // Carriage return (13) U+000D + case 't': return '\t'; // Horizontal tab (9) U+0009 + case 'v': return '\v'; // Vertical tab + + // Unicode escape sequence + case 'u': return ReadUnicodeEscapeSequence(); // U+XXXX + + default: throw new Exception($"Unrecognized escape sequence '\\{escapedChar}'"); + } + } + + private readonly char[] hexCode = new char[4]; + + private char ReadUnicodeEscapeSequence() + { + hexCode[0] = current; Next(); + hexCode[1] = current; Next(); + hexCode[2] = current; Next(); + hexCode[3] = current; Next(); + + return Convert.ToChar(int.Parse( + s : new string(hexCode), + style : NumberStyles.HexNumber, + provider: NumberFormatInfo.InvariantInfo + )); + } + + internal char Current => current; + + internal bool IsEof => isEof; + + internal char Peek() => (char)source.Peek(); + + internal SourceLocation Location => location; + + public void Dispose() + { + source.Dispose(); + } + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/runtime/Parser/TokenReader.cs b/swaggerci/eventgrid/generated/runtime/Parser/TokenReader.cs new file mode 100644 index 000000000000..a08afe48aff9 --- /dev/null +++ b/swaggerci/eventgrid/generated/runtime/Parser/TokenReader.cs @@ -0,0 +1,39 @@ +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ +using System; + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json +{ + public class TokenReader : IDisposable + { + private readonly JsonTokenizer tokenizer; + private JsonToken current; + + internal TokenReader(JsonTokenizer tokenizer) + { + this.tokenizer = tokenizer ?? throw new ArgumentNullException(nameof(tokenizer)); + } + + internal void Next() + { + current = tokenizer.ReadNext(); + } + + internal JsonToken Current => current; + + internal void Ensure(TokenKind kind, string readerName) + { + if (current.Kind != kind) + { + throw new ParserException($"Expected {kind} while reading {readerName}). Was {current}."); + } + } + + public void Dispose() + { + tokenizer.Dispose(); + } + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/runtime/PipelineMocking.cs b/swaggerci/eventgrid/generated/runtime/PipelineMocking.cs new file mode 100644 index 000000000000..dcedd3fcc072 --- /dev/null +++ b/swaggerci/eventgrid/generated/runtime/PipelineMocking.cs @@ -0,0 +1,262 @@ +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime +{ + using System.Threading.Tasks; + using System.Collections.Generic; + using System.Net.Http; + using System.Linq; + using System.Net; + using Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json; + + public enum MockMode + { + Live, + Record, + Playback, + + } + + public class PipelineMock + { + + private System.Collections.Generic.Stack scenario = new System.Collections.Generic.Stack(); + private System.Collections.Generic.Stack context = new System.Collections.Generic.Stack(); + private System.Collections.Generic.Stack description = new System.Collections.Generic.Stack(); + + private readonly string recordingPath; + private int counter = 0; + + public static implicit operator Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep(PipelineMock instance) => instance.SendAsync; + + public MockMode Mode { get; set; } = MockMode.Live; + public PipelineMock(string recordingPath) + { + this.recordingPath = recordingPath; + } + + public void PushContext(string text) => context.Push(text); + + public void PushDescription(string text) => description.Push(text); + + + public void PushScenario(string it) + { + // reset counter too + counter = 0; + + scenario.Push(it); + } + + public void PopContext() => context.Pop(); + + public void PopDescription() => description.Pop(); + + public void PopScenario() => scenario.Pop(); + + public void SetRecord() => Mode = MockMode.Record; + + public void SetPlayback() => Mode = MockMode.Playback; + + public void SetLive() => Mode = MockMode.Live; + + public string Scenario => (scenario.Count > 0 ? scenario.Peek() : "[NoScenario]"); + public string Description => (description.Count > 0 ? description.Peek() : "[NoDescription]"); + public string Context => (context.Count > 0 ? context.Peek() : "[NoContext]"); + + /// + /// Headers that we substitute out blank values for in the recordings + /// Add additional headers as necessary + /// + public static HashSet Blacklist = new HashSet(System.StringComparer.CurrentCultureIgnoreCase) { + "Authorization", + }; + + public Dictionary ForceResponseHeaders = new Dictionary(); + + internal static XImmutableArray Removed = new XImmutableArray(new string[] { "[Filtered]" }); + + internal static IEnumerable> FilterHeaders(IEnumerable>> headers) => headers.Select(header => new KeyValuePair(header.Key, Blacklist.Contains(header.Key) ? Removed : new XImmutableArray(header.Value.ToArray()))); + + internal static JsonNode SerializeContent(HttpContent content, ref bool isBase64) => content == null ? XNull.Instance : SerializeContent(content.ReadAsByteArrayAsync().Result, ref isBase64); + + internal static JsonNode SerializeContent(byte[] content, ref bool isBase64) + { + if (null == content || content.Length == 0) + { + return XNull.Instance; + } + var first = content[0]; + var last = content[content.Length - 1]; + + // plaintext for JSON/SGML/XML/HTML/STRINGS/ARRAYS + if ((first == '{' && last == '}') || (first == '<' && last == '>') || (first == '[' && last == ']') || (first == '"' && last == '"')) + { + return new JsonString(System.Text.Encoding.UTF8.GetString(content)); + } + + // base64 for everyone else + return new JsonString(System.Convert.ToBase64String(content)); + } + + internal static byte[] DeserializeContent(string content, bool isBase64) + { + if (string.IsNullOrWhiteSpace(content)) + { + return new byte[0]; + } + + if (isBase64) + { + try + { + return System.Convert.FromBase64String(content); + } + catch + { + // hmm. didn't work, return it as a string I guess. + } + } + return System.Text.Encoding.UTF8.GetBytes(content); + } + + public void SaveMessage(string rqKey, HttpRequestMessage request, HttpResponseMessage response) + { + var messages = System.IO.File.Exists(this.recordingPath) ? Load() : new JsonObject() ?? new JsonObject(); + bool isBase64Request = false; + bool isBase64Response = false; + messages[rqKey] = new JsonObject { + { "Request",new JsonObject { + { "Method", request.Method.Method }, + { "RequestUri", request.RequestUri }, + { "Content", SerializeContent( request.Content, ref isBase64Request) }, + { "isContentBase64", isBase64Request }, + { "Headers", new JsonObject(FilterHeaders(request.Headers)) }, + { "ContentHeaders", request.Content == null ? new JsonObject() : new JsonObject(FilterHeaders(request.Content.Headers))} + } }, + {"Response", new JsonObject { + { "StatusCode", (int)response.StatusCode}, + { "Headers", new JsonObject(FilterHeaders(response.Headers))}, + { "ContentHeaders", new JsonObject(FilterHeaders(response.Content.Headers))}, + { "Content", SerializeContent(response.Content, ref isBase64Response) }, + { "isContentBase64", isBase64Response }, + }} + }; + System.IO.File.WriteAllText(this.recordingPath, messages.ToString()); + } + + private JsonObject Load() + { + if (System.IO.File.Exists(this.recordingPath)) + { + try + { + return JsonObject.FromStream(System.IO.File.OpenRead(this.recordingPath)); + } + catch + { + throw new System.Exception($"Invalid recording file: '{recordingPath}'"); + } + } + + throw new System.ArgumentException($"Missing recording file: '{recordingPath}'", nameof(recordingPath)); + } + + public HttpResponseMessage LoadMessage(string rqKey) + { + var responses = Load(); + var message = responses.Property(rqKey); + + if (null == message) + { + throw new System.ArgumentException($"Missing Request '{rqKey}' in recording file", nameof(rqKey)); + } + + var sc = 0; + var reqMessage = message.Property("Request"); + var respMessage = message.Property("Response"); + + // --------------------------- deserialize response ---------------------------------------------------------------- + bool isBase64Response = false; + respMessage.BooleanProperty("isContentBase64", ref isBase64Response); + var response = new HttpResponseMessage + { + StatusCode = (HttpStatusCode)respMessage.NumberProperty("StatusCode", ref sc), + Content = new System.Net.Http.ByteArrayContent(DeserializeContent(respMessage.StringProperty("Content"), isBase64Response)) + }; + + foreach (var each in respMessage.Property("Headers")) + { + response.Headers.TryAddWithoutValidation(each.Key, each.Value.ToArrayOf()); + } + + foreach (var frh in ForceResponseHeaders) + { + response.Headers.Remove(frh.Key); + response.Headers.TryAddWithoutValidation(frh.Key, frh.Value); + } + + foreach (var each in respMessage.Property("ContentHeaders")) + { + response.Content.Headers.TryAddWithoutValidation(each.Key, each.Value.ToArrayOf()); + } + + // --------------------------- deserialize request ---------------------------------------------------------------- + bool isBase64Request = false; + reqMessage.BooleanProperty("isContentBase64", ref isBase64Request); + response.RequestMessage = new HttpRequestMessage + { + Method = new HttpMethod(reqMessage.StringProperty("Method")), + RequestUri = new System.Uri(reqMessage.StringProperty("RequestUri")), + Content = new System.Net.Http.ByteArrayContent(DeserializeContent(reqMessage.StringProperty("Content"), isBase64Request)) + }; + + foreach (var each in reqMessage.Property("Headers")) + { + response.RequestMessage.Headers.TryAddWithoutValidation(each.Key, each.Value.ToArrayOf()); + } + foreach (var each in reqMessage.Property("ContentHeaders")) + { + response.RequestMessage.Content.Headers.TryAddWithoutValidation(each.Key, each.Value.ToArrayOf()); + } + + return response; + } + + public async Task SendAsync(HttpRequestMessage request, IEventListener callback, ISendAsync next) + { + counter++; + var rqkey = $"{Description}+{Context}+{Scenario}+${request.Method.Method}+{request.RequestUri}+{counter}"; + + switch (Mode) + { + case MockMode.Record: + //Add following code since the request.Content will be released after sendAsync + var requestClone = request; + if (requestClone.Content != null) + { + requestClone = await request.CloneWithContent(request.RequestUri, request.Method); + } + // make the call + var response = await next.SendAsync(request, callback); + + // save the message to the recording file + SaveMessage(rqkey, requestClone, response); + + // return the response. + return response; + + case MockMode.Playback: + // load and return the response. + return LoadMessage(rqkey); + + default: + // pass-thru, do nothing + return await next.SendAsync(request, callback); + } + } + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/runtime/Properties/Resources.Designer.cs b/swaggerci/eventgrid/generated/runtime/Properties/Resources.Designer.cs new file mode 100644 index 000000000000..da658cf024f6 --- /dev/null +++ b/swaggerci/eventgrid/generated/runtime/Properties/Resources.Designer.cs @@ -0,0 +1,5633 @@ +//------------------------------------------------------------------------------ +// +// This code was generated by a tool. +// Runtime Version:4.0.30319.42000 +// +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// +//------------------------------------------------------------------------------ + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.generated.runtime.Properties +{ + using System; + + + /// + /// A strongly-typed resource class, for looking up localized strings, etc. + /// + // This class was auto-generated by the StronglyTypedResourceBuilder + // class via a tool like ResGen or Visual Studio. + // To add or remove a member, edit your .ResX file then rerun ResGen + // with the /str option, or rebuild your VS project. + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "15.0.0.0")] + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] + public class Resources + { + + private static global::System.Resources.ResourceManager resourceMan; + + private static global::System.Globalization.CultureInfo resourceCulture; + + [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")] + internal Resources() + { + } + + /// + /// Returns the cached ResourceManager instance used by this class. + /// + [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] + public static global::System.Resources.ResourceManager ResourceManager + { + get + { + if (object.ReferenceEquals(resourceMan, null)) + { + global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("Microsoft.Azure.PowerShell.Cmdlets.EventGrid.generated.runtime.Properties.Resources", typeof(Resources).Assembly); + resourceMan = temp; + } + return resourceMan; + } + } + + /// + /// Overrides the current thread's CurrentUICulture property for all + /// resource lookups using this strongly typed resource class. + /// + [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] + public static global::System.Globalization.CultureInfo Culture + { + get + { + return resourceCulture; + } + set + { + resourceCulture = value; + } + } + + /// + /// Looks up a localized string similar to The remote server returned an error: (401) Unauthorized.. + /// + public static string AccessDeniedExceptionMessage + { + get + { + return ResourceManager.GetString("AccessDeniedExceptionMessage", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Account id doesn't match one in subscription.. + /// + public static string AccountIdDoesntMatchSubscription + { + get + { + return ResourceManager.GetString("AccountIdDoesntMatchSubscription", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Account needs to be specified. + /// + public static string AccountNeedsToBeSpecified + { + get + { + return ResourceManager.GetString("AccountNeedsToBeSpecified", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Account "{0}" has been added.. + /// + public static string AddAccountAdded + { + get + { + return ResourceManager.GetString("AddAccountAdded", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to To switch to a different subscription, please use Select-AzureSubscription.. + /// + public static string AddAccountChangeSubscription + { + get + { + return ResourceManager.GetString("AddAccountChangeSubscription", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Skipping external tenant {0}, because you are using a guest or a foreign principal object identity. In order to access this tenant, please run Add-AzureAccount without "-Credential".. + /// + public static string AddAccountNonInteractiveGuestOrFpo + { + get + { + return ResourceManager.GetString("AddAccountNonInteractiveGuestOrFpo", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Subscription "{0}" is selected as the default subscription.. + /// + public static string AddAccountShowDefaultSubscription + { + get + { + return ResourceManager.GetString("AddAccountShowDefaultSubscription", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to To view all the subscriptions, please use Get-AzureSubscription.. + /// + public static string AddAccountViewSubscriptions + { + get + { + return ResourceManager.GetString("AddAccountViewSubscriptions", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Add-On {0} is created successfully.. + /// + public static string AddOnCreatedMessage + { + get + { + return ResourceManager.GetString("AddOnCreatedMessage", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Add-on name {0} is already used.. + /// + public static string AddOnNameAlreadyUsed + { + get + { + return ResourceManager.GetString("AddOnNameAlreadyUsed", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Add-On {0} not found.. + /// + public static string AddOnNotFound + { + get + { + return ResourceManager.GetString("AddOnNotFound", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Add-on {0} is removed successfully.. + /// + public static string AddOnRemovedMessage + { + get + { + return ResourceManager.GetString("AddOnRemovedMessage", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Add-On {0} is updated successfully.. + /// + public static string AddOnUpdatedMessage + { + get + { + return ResourceManager.GetString("AddOnUpdatedMessage", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Role has been created at {0}\{1}.. + /// + public static string AddRoleMessageCreate + { + get + { + return ResourceManager.GetString("AddRoleMessageCreate", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Role has been created at {0}\{1}. For easy access to Microsoft Azure services from your application code, install the Microsoft Azure client library for Node.js by running ‘npm install azure’.. + /// + public static string AddRoleMessageCreateNode + { + get + { + return ResourceManager.GetString("AddRoleMessageCreateNode", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Role has been created at {0}\{1}. For easy access to Microsoft Azure services from your application code, install the Microsoft Azure client library for PHP by running "pear WindowsAzure/WindowsAzure".. + /// + public static string AddRoleMessageCreatePHP + { + get + { + return ResourceManager.GetString("AddRoleMessageCreatePHP", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Unable to set role permissions. Please give the 'Network Service' user 'Read & execute' and 'Modify' permissions to the role folder, or run PowerShell as an Administrator. + /// + public static string AddRoleMessageInsufficientPermissions + { + get + { + return ResourceManager.GetString("AddRoleMessageInsufficientPermissions", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to A role name '{0}' already exists. + /// + public static string AddRoleMessageRoleExists + { + get + { + return ResourceManager.GetString("AddRoleMessageRoleExists", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Profile {0} already has an endpoint with name {1}. + /// + public static string AddTrafficManagerEndpointFailed + { + get + { + return ResourceManager.GetString("AddTrafficManagerEndpointFailed", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Azure PowerShell collects usage data in order to improve your experience. + ///The data is anonymous and does not include commandline argument values. + ///The data is collected by Microsoft. + /// + ///Use the Disable-AzDataCollection cmdlet to turn the feature Off. The cmdlet can be found in the Az.Accounts module. To disable data collection: PS > Disable-AzDataCollection. + ///Use the Enable-AzDataCollection cmdlet to turn the feature On. The cmdlet can be found in the Az.Accounts module. To enable [rest of string was truncated]";. + /// + public static string ARMDataCollectionMessage + { + get + { + return ResourceManager.GetString("ARMDataCollectionMessage", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to [Common.Authentication]: Authenticating for account {0} with single tenant {1}.. + /// + public static string AuthenticatingForSingleTenant + { + get + { + return ResourceManager.GetString("AuthenticatingForSingleTenant", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Windows Azure Powershell\. + /// + public static string AzureDirectory + { + get + { + return ResourceManager.GetString("AzureDirectory", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to https://manage.windowsazure.com. + /// + public static string AzurePortalUrl + { + get + { + return ResourceManager.GetString("AzurePortalUrl", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to AZURE_PORTAL_URL. + /// + public static string AzurePortalUrlEnv + { + get + { + return ResourceManager.GetString("AzurePortalUrlEnv", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Selected profile must not be null.. + /// + public static string AzureProfileMustNotBeNull + { + get + { + return ResourceManager.GetString("AzureProfileMustNotBeNull", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Azure SDK\{0}\. + /// + public static string AzureSdkDirectory + { + get + { + return ResourceManager.GetString("AzureSdkDirectory", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to File '{0}' already exists. Use the -Force parameter to overwrite it.. + /// + public static string AzureVMDscArchiveAlreadyExists + { + get + { + return ResourceManager.GetString("AzureVMDscArchiveAlreadyExists", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Cannot find configuration data file: {0}. + /// + public static string AzureVMDscCannotFindConfigurationDataFile + { + get + { + return ResourceManager.GetString("AzureVMDscCannotFindConfigurationDataFile", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Create Archive. + /// + public static string AzureVMDscCreateArchiveAction + { + get + { + return ResourceManager.GetString("AzureVMDscCreateArchiveAction", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to The configuration data must be a .psd1 file. + /// + public static string AzureVMDscInvalidConfigurationDataFile + { + get + { + return ResourceManager.GetString("AzureVMDscInvalidConfigurationDataFile", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Parsing configuration script: {0}. + /// + public static string AzureVMDscParsingConfiguration + { + get + { + return ResourceManager.GetString("AzureVMDscParsingConfiguration", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Storage Blob '{0}' already exists. Use the -Force parameter to overwrite it.. + /// + public static string AzureVMDscStorageBlobAlreadyExists + { + get + { + return ResourceManager.GetString("AzureVMDscStorageBlobAlreadyExists", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Upload '{0}'. + /// + public static string AzureVMDscUploadToBlobStorageAction + { + get + { + return ResourceManager.GetString("AzureVMDscUploadToBlobStorageAction", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Execution failed because a background thread could not prompt the user.. + /// + public static string BaseShouldMethodFailureReason + { + get + { + return ResourceManager.GetString("BaseShouldMethodFailureReason", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Base Uri was empty.. + /// + public static string BaseUriEmpty + { + get + { + return ResourceManager.GetString("BaseUriEmpty", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to {0} begin processing without ParameterSet.. + /// + public static string BeginProcessingWithoutParameterSetLog + { + get + { + return ResourceManager.GetString("BeginProcessingWithoutParameterSetLog", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to {0} begin processing with ParameterSet '{1}'.. + /// + public static string BeginProcessingWithParameterSetLog + { + get + { + return ResourceManager.GetString("BeginProcessingWithParameterSetLog", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Blob with the name {0} already exists in the account.. + /// + public static string BlobAlreadyExistsInTheAccount + { + get + { + return ResourceManager.GetString("BlobAlreadyExistsInTheAccount", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to https://{0}.blob.core.windows.net/. + /// + public static string BlobEndpointUri + { + get + { + return ResourceManager.GetString("BlobEndpointUri", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to AZURE_BLOBSTORAGE_TEMPLATE. + /// + public static string BlobEndpointUriEnv + { + get + { + return ResourceManager.GetString("BlobEndpointUriEnv", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to The parameter : '{0}' is changing.. + /// + public static string BreakingChangeAttributeParameterChanging + { + get + { + return ResourceManager.GetString("BreakingChangeAttributeParameterChanging", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to The parameter : '{0}' is becoming mandatory.. + /// + public static string BreakingChangeAttributeParameterMandatoryNow + { + get + { + return ResourceManager.GetString("BreakingChangeAttributeParameterMandatoryNow", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to The parameter : '{0}' is being replaced by parameter : '{1}'.. + /// + public static string BreakingChangeAttributeParameterReplaced + { + get + { + return ResourceManager.GetString("BreakingChangeAttributeParameterReplaced", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to The parameter : '{0}' is being replaced by mandatory parameter : '{1}'.. + /// + public static string BreakingChangeAttributeParameterReplacedMandatory + { + get + { + return ResourceManager.GetString("BreakingChangeAttributeParameterReplacedMandatory", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to The type of the parameter is changing from '{0}' to '{1}'.. + /// + public static string BreakingChangeAttributeParameterTypeChange + { + get + { + return ResourceManager.GetString("BreakingChangeAttributeParameterTypeChange", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Change description : {0} + ///. + /// + public static string BreakingChangesAttributesChangeDescriptionMessage + { + get + { + return ResourceManager.GetString("BreakingChangesAttributesChangeDescriptionMessage", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to The cmdlet is being deprecated. There will be no replacement for it.. + /// + public static string BreakingChangesAttributesCmdLetDeprecationMessageNoReplacement + { + get + { + return ResourceManager.GetString("BreakingChangesAttributesCmdLetDeprecationMessageNoReplacement", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to The cmdlet is being deprecated. There will be no replacement for it.. + /// + public static string BreakingChangesAttributesParameterSetDeprecationMessageNoReplacement + { + get + { + return ResourceManager.GetString("BreakingChangesAttributesParameterSetDeprecationMessageNoReplacement", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to The cmdlet '{0}' is replacing this cmdlet.. + /// + public static string BreakingChangesAttributesCmdLetDeprecationMessageWithReplacement + { + get + { + return ResourceManager.GetString("BreakingChangesAttributesCmdLetDeprecationMessageWithReplacement", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to The output type is changing from the existing type :'{0}' to the new type :'{1}'. + /// + public static string BreakingChangesAttributesCmdLetOutputChange1 + { + get + { + return ResourceManager.GetString("BreakingChangesAttributesCmdLetOutputChange1", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to "The output type '{0}' is changing". + /// + public static string BreakingChangesAttributesCmdLetOutputChange2 + { + get + { + return ResourceManager.GetString("BreakingChangesAttributesCmdLetOutputChange2", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to + ///- The following properties are being added to the output type : + ///. + /// + public static string BreakingChangesAttributesCmdLetOutputPropertiesAdded + { + get + { + return ResourceManager.GetString("BreakingChangesAttributesCmdLetOutputPropertiesAdded", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to + /// - The following properties in the output type are being deprecated : + ///. + /// + public static string BreakingChangesAttributesCmdLetOutputPropertiesRemoved + { + get + { + return ResourceManager.GetString("BreakingChangesAttributesCmdLetOutputPropertiesRemoved", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to The output type '{0}' is being deprecated without a replacement.. + /// + public static string BreakingChangesAttributesCmdLetOutputTypeDeprecated + { + get + { + return ResourceManager.GetString("BreakingChangesAttributesCmdLetOutputTypeDeprecated", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to - {0} + /// + ///. + /// + public static string BreakingChangesAttributesDeclarationMessage + { + get + { + return ResourceManager.GetString("BreakingChangesAttributesDeclarationMessage", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to - Cmdlet : '{0}' + /// - {1} + ///. + /// + public static string BreakingChangesAttributesDeclarationMessageWithCmdletName + { + get + { + return ResourceManager.GetString("BreakingChangesAttributesDeclarationMessageWithCmdletName", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to NOTE : Go to {0} for steps to suppress (and other related information on) the breaking change messages.. + /// + public static string BreakingChangesAttributesFooterMessage + { + get + { + return ResourceManager.GetString("BreakingChangesAttributesFooterMessage", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Breaking changes in the cmdlet '{0}' :. + /// + public static string BreakingChangesAttributesHeaderMessage + { + get + { + return ResourceManager.GetString("BreakingChangesAttributesHeaderMessage", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Note : This change will take effect on '{0}' + ///. + /// + public static string BreakingChangesAttributesInEffectByDateMessage + { + get + { + return ResourceManager.GetString("BreakingChangesAttributesInEffectByDateMessage", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Note :The change is expected to take effect from the version : '{0}' + /// + ///. + /// + public static string BreakingChangesAttributesInEffectByVersion + { + get + { + return ResourceManager.GetString("BreakingChangesAttributesInEffectByVersion", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to ```powershell + ///# Old + ///{0} + /// + ///# New + ///{1} + ///``` + /// + ///. + /// + public static string BreakingChangesAttributesUsageChangeMessage + { + get + { + return ResourceManager.GetString("BreakingChangesAttributesUsageChangeMessage", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Cmdlet invocation changes : + /// Old Way : {0} + /// New Way : {1}. + /// + public static string BreakingChangesAttributesUsageChangeMessageConsole + { + get + { + return ResourceManager.GetString("BreakingChangesAttributesUsageChangeMessageConsole", resourceCulture); + } + } + + /// + /// The cmdlet is in experimental stage. The function may not be enabled in current subscription. + /// + public static string ExperimentalCmdletMessage + { + get + { + return ResourceManager.GetString("ExperimentalCmdletMessage", resourceCulture); + } + } + + + + /// + /// Looks up a localized string similar to CACHERUNTIMEURL. + /// + public static string CacheRuntimeUrl + { + get + { + return ResourceManager.GetString("CacheRuntimeUrl", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to cache. + /// + public static string CacheRuntimeValue + { + get + { + return ResourceManager.GetString("CacheRuntimeValue", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to CacheRuntimeVersion. + /// + public static string CacheRuntimeVersionKey + { + get + { + return ResourceManager.GetString("CacheRuntimeVersionKey", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Installing caching version {0} for Role '{1}' (the caching version locally installed is: {2}). + /// + public static string CacheVersionWarningText + { + get + { + return ResourceManager.GetString("CacheVersionWarningText", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Cannot change built-in environment {0}.. + /// + public static string CannotChangeBuiltinEnvironment + { + get + { + return ResourceManager.GetString("CannotChangeBuiltinEnvironment", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Cannot find {0} with name {1}.. + /// + public static string CannotFind + { + get + { + return ResourceManager.GetString("CannotFind", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Deployment for service {0} with {1} slot doesn't exist. + /// + public static string CannotFindDeployment + { + get + { + return ResourceManager.GetString("CannotFindDeployment", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Can't find valid Microsoft Azure role in current directory {0}. + /// + public static string CannotFindRole + { + get + { + return ResourceManager.GetString("CannotFindRole", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to service {0} configuration file (ServiceConfiguration.Cloud.cscfg) is either null or doesn't exist. + /// + public static string CannotFindServiceConfigurationFile + { + get + { + return ResourceManager.GetString("CannotFindServiceConfigurationFile", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Invalid service path! Cannot locate ServiceDefinition.csdef in current folder or parent folders.. + /// + public static string CannotFindServiceRoot + { + get + { + return ResourceManager.GetString("CannotFindServiceRoot", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to The subscription named {0} with id {1} is not currently imported. You must import this subscription before it can be updated.. + /// + public static string CannotUpdateUnknownSubscription + { + get + { + return ResourceManager.GetString("CannotUpdateUnknownSubscription", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to ManagementCertificate. + /// + public static string CertificateElementName + { + get + { + return ResourceManager.GetString("CertificateElementName", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to certificate.pfx. + /// + public static string CertificateFileName + { + get + { + return ResourceManager.GetString("CertificateFileName", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Certificate imported into CurrentUser\My\{0}. + /// + public static string CertificateImportedMessage + { + get + { + return ResourceManager.GetString("CertificateImportedMessage", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to No certificate was found in the certificate store with thumbprint {0}. + /// + public static string CertificateNotFoundInStore + { + get + { + return ResourceManager.GetString("CertificateNotFoundInStore", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Your account does not have access to the private key for certificate {0}. + /// + public static string CertificatePrivateKeyAccessError + { + get + { + return ResourceManager.GetString("CertificatePrivateKeyAccessError", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to {0} {1} deployment for {2} service. + /// + public static string ChangeDeploymentStateWaitMessage + { + get + { + return ResourceManager.GetString("ChangeDeploymentStateWaitMessage", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Cloud service {0} is in {1} state.. + /// + public static string ChangeDeploymentStatusCompleteMessage + { + get + { + return ResourceManager.GetString("ChangeDeploymentStatusCompleteMessage", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Changing/Removing public environment '{0}' is not allowed.. + /// + public static string ChangePublicEnvironmentMessage + { + get + { + return ResourceManager.GetString("ChangePublicEnvironmentMessage", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Service {0} is set to value {1}. + /// + public static string ChangeSettingsElementMessage + { + get + { + return ResourceManager.GetString("ChangeSettingsElementMessage", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Changing public environment is not supported.. + /// + public static string ChangingDefaultEnvironmentNotSupported + { + get + { + return ResourceManager.GetString("ChangingDefaultEnvironmentNotSupported", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Choose which publish settings file to use:. + /// + public static string ChoosePublishSettingsFile + { + get + { + return ResourceManager.GetString("ChoosePublishSettingsFile", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Microsoft.WindowsAzure.Plugins.Caching.ClientDiagnosticLevel. + /// + public static string ClientDiagnosticLevelName + { + get + { + return ResourceManager.GetString("ClientDiagnosticLevelName", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to 1. + /// + public static string ClientDiagnosticLevelValue + { + get + { + return ResourceManager.GetString("ClientDiagnosticLevelValue", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to cloud_package.cspkg. + /// + public static string CloudPackageFileName + { + get + { + return ResourceManager.GetString("CloudPackageFileName", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to ServiceConfiguration.Cloud.cscfg. + /// + public static string CloudServiceConfigurationFileName + { + get + { + return ResourceManager.GetString("CloudServiceConfigurationFileName", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Add-ons for {0}. + /// + public static string CloudServiceDescription + { + get + { + return ResourceManager.GetString("CloudServiceDescription", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Communication could not be established. This could be due to an invalid subscription ID. Note that subscription IDs are case sensitive.. + /// + public static string CommunicationCouldNotBeEstablished + { + get + { + return ResourceManager.GetString("CommunicationCouldNotBeEstablished", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Complete. + /// + public static string CompleteMessage + { + get + { + return ResourceManager.GetString("CompleteMessage", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to OperationID : '{0}'. + /// + public static string ComputeCloudExceptionOperationIdMessage + { + get + { + return ResourceManager.GetString("ComputeCloudExceptionOperationIdMessage", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to config.json. + /// + public static string ConfigurationFileName + { + get + { + return ResourceManager.GetString("ConfigurationFileName", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to VirtualMachine creation failed.. + /// + public static string CreateFailedErrorMessage + { + get + { + return ResourceManager.GetString("CreateFailedErrorMessage", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Creating the website failed. If this is the first website for this subscription, please create it using the management portal instead.. + /// + public static string CreateWebsiteFailed + { + get + { + return ResourceManager.GetString("CreateWebsiteFailed", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Microsoft.ApplicationServer.Caching.DataCacheClientsSection, Microsoft.ApplicationServer.Caching.Core. + /// + public static string DataCacheClientsType + { + get + { + return ResourceManager.GetString("DataCacheClientsType", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to //blobcontainer[@datacenter='{0}']. + /// + public static string DatacenterBlobQuery + { + get + { + return ResourceManager.GetString("DatacenterBlobQuery", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Microsoft Azure PowerShell Data Collection Confirmation. + /// + public static string DataCollectionActivity + { + get + { + return ResourceManager.GetString("DataCollectionActivity", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to You choose not to participate in Microsoft Azure PowerShell data collection.. + /// + public static string DataCollectionConfirmNo + { + get + { + return ResourceManager.GetString("DataCollectionConfirmNo", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to This confirmation message will be dismissed in '{0}' second(s).... + /// + public static string DataCollectionConfirmTime + { + get + { + return ResourceManager.GetString("DataCollectionConfirmTime", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to You choose to participate in Microsoft Azure PowerShell data collection.. + /// + public static string DataCollectionConfirmYes + { + get + { + return ResourceManager.GetString("DataCollectionConfirmYes", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to The setting profile has been saved to the following path '{0}'.. + /// + public static string DataCollectionSaveFileInformation + { + get + { + return ResourceManager.GetString("DataCollectionSaveFileInformation", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Setting: {0} as the default and current subscription. To view other subscriptions use Get-AzureSubscription. + /// + public static string DefaultAndCurrentSubscription + { + get + { + return ResourceManager.GetString("DefaultAndCurrentSubscription", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to none. + /// + public static string DefaultFileVersion + { + get + { + return ResourceManager.GetString("DefaultFileVersion", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to There are no hostnames which could be used for validation.. + /// + public static string DefaultHostnamesValidation + { + get + { + return ResourceManager.GetString("DefaultHostnamesValidation", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to 8080. + /// + public static string DefaultPort + { + get + { + return ResourceManager.GetString("DefaultPort", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to 1000. + /// + public static string DefaultRoleCachingInMB + { + get + { + return ResourceManager.GetString("DefaultRoleCachingInMB", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Auto. + /// + public static string DefaultUpgradeMode + { + get + { + return ResourceManager.GetString("DefaultUpgradeMode", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to 80. + /// + public static string DefaultWebPort + { + get + { + return ResourceManager.GetString("DefaultWebPort", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Delete. + /// + public static string Delete + { + get + { + return ResourceManager.GetString("Delete", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to The {0} slot for service {1} is already in {2} state. + /// + public static string DeploymentAlreadyInState + { + get + { + return ResourceManager.GetString("DeploymentAlreadyInState", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to The deployment in {0} slot for service {1} is removed. + /// + public static string DeploymentRemovedMessage + { + get + { + return ResourceManager.GetString("DeploymentRemovedMessage", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Microsoft.WindowsAzure.Plugins.Caching.DiagnosticLevel. + /// + public static string DiagnosticLevelName + { + get + { + return ResourceManager.GetString("DiagnosticLevelName", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to 1. + /// + public static string DiagnosticLevelValue + { + get + { + return ResourceManager.GetString("DiagnosticLevelValue", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to The key to add already exists in the dictionary.. + /// + public static string DictionaryAddAlreadyContainsKey + { + get + { + return ResourceManager.GetString("DictionaryAddAlreadyContainsKey", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to The array index cannot be less than zero.. + /// + public static string DictionaryCopyToArrayIndexLessThanZero + { + get + { + return ResourceManager.GetString("DictionaryCopyToArrayIndexLessThanZero", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to The supplied array does not have enough room to contain the copied elements.. + /// + public static string DictionaryCopyToArrayTooShort + { + get + { + return ResourceManager.GetString("DictionaryCopyToArrayTooShort", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to The provided dns {0} doesn't exist. + /// + public static string DnsDoesNotExist + { + get + { + return ResourceManager.GetString("DnsDoesNotExist", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Microsoft Azure Certificate. + /// + public static string EnableRemoteDesktop_FriendlyCertificateName + { + get + { + return ResourceManager.GetString("EnableRemoteDesktop_FriendlyCertificateName", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Endpoint can't be retrieved for storage account. + /// + public static string EndPointNotFoundForBlobStorage + { + get + { + return ResourceManager.GetString("EndPointNotFoundForBlobStorage", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to {0} end processing.. + /// + public static string EndProcessingLog + { + get + { + return ResourceManager.GetString("EndProcessingLog", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to To use Active Directory authentication, you must configure the ActiveDirectoryEndpoint, ActiveDirectoryTenantId, and ActiveDirectorServiceEndpointResourceId for environment of '{0}'. You can configure these properties for this environment using the Set-AzureEnvironment cmdlet.. + /// + public static string EnvironmentDoesNotSupportActiveDirectory + { + get + { + return ResourceManager.GetString("EnvironmentDoesNotSupportActiveDirectory", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to The environment '{0}' already exists.. + /// + public static string EnvironmentExists + { + get + { + return ResourceManager.GetString("EnvironmentExists", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Environment name doesn't match one in subscription.. + /// + public static string EnvironmentNameDoesntMatchSubscription + { + get + { + return ResourceManager.GetString("EnvironmentNameDoesntMatchSubscription", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Environment name needs to be specified.. + /// + public static string EnvironmentNameNeedsToBeSpecified + { + get + { + return ResourceManager.GetString("EnvironmentNameNeedsToBeSpecified", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Environment needs to be specified.. + /// + public static string EnvironmentNeedsToBeSpecified + { + get + { + return ResourceManager.GetString("EnvironmentNeedsToBeSpecified", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to The environment name '{0}' is not found.. + /// + public static string EnvironmentNotFound + { + get + { + return ResourceManager.GetString("EnvironmentNotFound", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to environments.xml. + /// + public static string EnvironmentsFileName + { + get + { + return ResourceManager.GetString("EnvironmentsFileName", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Error creating VirtualMachine. + /// + public static string ErrorCreatingVirtualMachine + { + get + { + return ResourceManager.GetString("ErrorCreatingVirtualMachine", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Unable to download available runtimes for location '{0}'. + /// + public static string ErrorRetrievingRuntimesForLocation + { + get + { + return ResourceManager.GetString("ErrorRetrievingRuntimesForLocation", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Error updating VirtualMachine. + /// + public static string ErrorUpdatingVirtualMachine + { + get + { + return ResourceManager.GetString("ErrorUpdatingVirtualMachine", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Job Id {0} failed. Error: {1}, ExceptionDetails: {2}. + /// + public static string FailedJobErrorMessage + { + get + { + return ResourceManager.GetString("FailedJobErrorMessage", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to File path is not valid.. + /// + public static string FilePathIsNotValid + { + get + { + return ResourceManager.GetString("FilePathIsNotValid", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to The HTTP request was forbidden with client authentication scheme 'Anonymous'.. + /// + public static string FirstPurchaseErrorMessage + { + get + { + return ResourceManager.GetString("FirstPurchaseErrorMessage", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to This add-on requires you to purchase the first instance through the Microsoft Azure Portal. Subsequent purchases can be performed through PowerShell.. + /// + public static string FirstPurchaseMessage + { + get + { + return ResourceManager.GetString("FirstPurchaseMessage", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Operation Status:. + /// + public static string GatewayOperationStatus + { + get + { + return ResourceManager.GetString("GatewayOperationStatus", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Resources\Scaffolding\General. + /// + public static string GeneralScaffolding + { + get + { + return ResourceManager.GetString("GeneralScaffolding", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Getting all available Microsoft Azure Add-Ons, this may take few minutes.... + /// + public static string GetAllAddOnsWaitMessage + { + get + { + return ResourceManager.GetString("GetAllAddOnsWaitMessage", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Name{0}Primary Key{0}Seconday Key. + /// + public static string GetStorageKeysHeader + { + get + { + return ResourceManager.GetString("GetStorageKeysHeader", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Git not found. Please install git and place it in your command line path.. + /// + public static string GitNotFound + { + get + { + return ResourceManager.GetString("GitNotFound", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Could not find publish settings. Please run Import-AzurePublishSettingsFile.. + /// + public static string GlobalSettingsManager_Load_PublishSettingsNotFound + { + get + { + return ResourceManager.GetString("GlobalSettingsManager_Load_PublishSettingsNotFound", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Cannot find the WadCfg end element in the config.. + /// + public static string IaasDiagnosticsBadConfigNoEndWadCfg + { + get + { + return ResourceManager.GetString("IaasDiagnosticsBadConfigNoEndWadCfg", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to WadCfg start element in the config is not matching the end element.. + /// + public static string IaasDiagnosticsBadConfigNoMatchingWadCfg + { + get + { + return ResourceManager.GetString("IaasDiagnosticsBadConfigNoMatchingWadCfg", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Cannot find the WadCfg element in the config.. + /// + public static string IaasDiagnosticsBadConfigNoWadCfg + { + get + { + return ResourceManager.GetString("IaasDiagnosticsBadConfigNoWadCfg", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to iisnode.dll. + /// + public static string IISNodeDll + { + get + { + return ResourceManager.GetString("IISNodeDll", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to iisnode. + /// + public static string IISNodeEngineKey + { + get + { + return ResourceManager.GetString("IISNodeEngineKey", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to iisnode-dev\\release\\x64. + /// + public static string IISNodePath + { + get + { + return ResourceManager.GetString("IISNodePath", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to iisnode. + /// + public static string IISNodeRuntimeValue + { + get + { + return ResourceManager.GetString("IISNodeRuntimeValue", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Installing IISNode version {0} in Azure for WebRole '{1}' (the version locally installed is: {2}). + /// + public static string IISNodeVersionWarningText + { + get + { + return ResourceManager.GetString("IISNodeVersionWarningText", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Illegal characters in path.. + /// + public static string IllegalPath + { + get + { + return ResourceManager.GetString("IllegalPath", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Internal Server Error. + /// + public static string InternalServerErrorMessage + { + get + { + return ResourceManager.GetString("InternalServerErrorMessage", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Cannot enable memcach protocol on a cache worker role {0}.. + /// + public static string InvalidCacheRoleName + { + get + { + return ResourceManager.GetString("InvalidCacheRoleName", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Invalid certificate format. Publish settings may be corrupted. Use Get-AzurePublishSettingsFile to download updated settings. + /// + public static string InvalidCertificate + { + get + { + return ResourceManager.GetString("InvalidCertificate", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Invalid certificate format.. + /// + public static string InvalidCertificateSingle + { + get + { + return ResourceManager.GetString("InvalidCertificateSingle", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to The provided configuration path is invalid or doesn't exist. + /// + public static string InvalidConfigPath + { + get + { + return ResourceManager.GetString("InvalidConfigPath", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to The country name is invalid, please use a valid two character country code, as described in ISO 3166-1 alpha-2.. + /// + public static string InvalidCountryNameMessage + { + get + { + return ResourceManager.GetString("InvalidCountryNameMessage", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to No default subscription has been designated. Use Select-AzureSubscription -Default <subscriptionName> to set the default subscription.. + /// + public static string InvalidDefaultSubscription + { + get + { + return ResourceManager.GetString("InvalidDefaultSubscription", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Deployment with {0} does not exist. + /// + public static string InvalidDeployment + { + get + { + return ResourceManager.GetString("InvalidDeployment", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to The deployment slot name {0} is invalid. Slot name must be either "Staging" or "Production".. + /// + public static string InvalidDeploymentSlot + { + get + { + return ResourceManager.GetString("InvalidDeploymentSlot", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to "{0}" is an invalid DNS name for {1}. + /// + public static string InvalidDnsName + { + get + { + return ResourceManager.GetString("InvalidDnsName", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Invalid service endpoint.. + /// + public static string InvalidEndpoint + { + get + { + return ResourceManager.GetString("InvalidEndpoint", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to The provided file in {0} must be have {1} extension. + /// + public static string InvalidFileExtension + { + get + { + return ResourceManager.GetString("InvalidFileExtension", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to File {0} has invalid characters. + /// + public static string InvalidFileName + { + get + { + return ResourceManager.GetString("InvalidFileName", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to You must create your git publishing credentials using the Microsoft Azure portal. + ///Please follow these steps in the portal: + ///1. On the left side open "Web Sites" + ///2. Click on any website + ///3. Choose "Setup Git Publishing" or "Reset deployment credentials" + ///4. Back in the PowerShell window, rerun this command by typing "New-AzureWebSite {site name} -Git -PublishingUsername {username}. + /// + public static string InvalidGitCredentials + { + get + { + return ResourceManager.GetString("InvalidGitCredentials", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to The value {0} provided is not a valid GUID. Please provide a valid GUID.. + /// + public static string InvalidGuid + { + get + { + return ResourceManager.GetString("InvalidGuid", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to The specified hostname does not exist. Please specify a valid hostname for the site.. + /// + public static string InvalidHostnameValidation + { + get + { + return ResourceManager.GetString("InvalidHostnameValidation", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Role {0} instances must be greater than or equal 0 and less than or equal 20. + /// + public static string InvalidInstancesCount + { + get + { + return ResourceManager.GetString("InvalidInstancesCount", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to There was an error creating your webjob. Please make sure that the script is in the root folder of the zip file.. + /// + public static string InvalidJobFile + { + get + { + return ResourceManager.GetString("InvalidJobFile", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Could not download a valid runtime manifest, Please check your internet connection and try again.. + /// + public static string InvalidManifestError + { + get + { + return ResourceManager.GetString("InvalidManifestError", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to The account {0} was not found. Please specify a valid account name.. + /// + public static string InvalidMediaServicesAccount + { + get + { + return ResourceManager.GetString("InvalidMediaServicesAccount", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to The provided name "{0}" does not match the service bus namespace naming rules.. + /// + public static string InvalidNamespaceName + { + get + { + return ResourceManager.GetString("InvalidNamespaceName", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Path must specify a valid path to an Azure profile.. + /// + public static string InvalidNewProfilePath + { + get + { + return ResourceManager.GetString("InvalidNewProfilePath", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Value cannot be null. Parameter name: '{0}'. + /// + public static string InvalidNullArgument + { + get + { + return ResourceManager.GetString("InvalidNullArgument", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to {0} is invalid or empty. + /// + public static string InvalidOrEmptyArgumentMessage + { + get + { + return ResourceManager.GetString("InvalidOrEmptyArgumentMessage", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to The provided package path is invalid or doesn't exist. + /// + public static string InvalidPackagePath + { + get + { + return ResourceManager.GetString("InvalidPackagePath", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to '{0}' is an invalid parameter set name.. + /// + public static string InvalidParameterSetName + { + get + { + return ResourceManager.GetString("InvalidParameterSetName", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to {0} doesn't exist in {1} or you've not passed valid value for it. + /// + public static string InvalidPath + { + get + { + return ResourceManager.GetString("InvalidPath", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Path {0} has invalid characters. + /// + public static string InvalidPathName + { + get + { + return ResourceManager.GetString("InvalidPathName", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Property bag Hashtable must contain one of the following sets of properties: {SubscriptionId, Certificate}, {SubscriptionId, Username, Password}, {SubscriptionId, ServicePrincipal, Password, Tenant}, {SubscriptionId, AccountId, Token}. + /// + public static string InvalidProfileProperties + { + get + { + return ResourceManager.GetString("InvalidProfileProperties", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to The provided publish settings file {0} has invalid content. Please get valid by running cmdlet Get-AzurePublishSettingsFile. + /// + public static string InvalidPublishSettingsSchema + { + get + { + return ResourceManager.GetString("InvalidPublishSettingsSchema", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to The provided role name "{0}" has invalid characters. + /// + public static string InvalidRoleNameMessage + { + get + { + return ResourceManager.GetString("InvalidRoleNameMessage", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to A valid name for the service root folder is required. + /// + public static string InvalidRootNameMessage + { + get + { + return ResourceManager.GetString("InvalidRootNameMessage", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to {0} is not a recognized runtime type. + /// + public static string InvalidRuntimeError + { + get + { + return ResourceManager.GetString("InvalidRuntimeError", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to A valid language is required. + /// + public static string InvalidScaffoldingLanguageArg + { + get + { + return ResourceManager.GetString("InvalidScaffoldingLanguageArg", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to No subscription is currently selected. Use Select-Subscription to activate a subscription.. + /// + public static string InvalidSelectedSubscription + { + get + { + return ResourceManager.GetString("InvalidSelectedSubscription", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to The provided location "{0}" does not exist in the available locations use Get-AzureSBLocation for listing available locations.. + /// + public static string InvalidServiceBusLocation + { + get + { + return ResourceManager.GetString("InvalidServiceBusLocation", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Please provide a service name or run this command from inside a service project directory.. + /// + public static string InvalidServiceName + { + get + { + return ResourceManager.GetString("InvalidServiceName", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to You must provide valid value for {0}. + /// + public static string InvalidServiceSettingElement + { + get + { + return ResourceManager.GetString("InvalidServiceSettingElement", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to settings.json is invalid or doesn't exist. + /// + public static string InvalidServiceSettingMessage + { + get + { + return ResourceManager.GetString("InvalidServiceSettingMessage", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to The subscription named '{0}' cannot be found. Use Set-AzureSubscription to initialize the subscription data.. + /// + public static string InvalidSubscription + { + get + { + return ResourceManager.GetString("InvalidSubscription", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to The provided subscription id {0} is not valid. + /// + public static string InvalidSubscriptionId + { + get + { + return ResourceManager.GetString("InvalidSubscriptionId", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Must specify a non-null subscription name.. + /// + public static string InvalidSubscriptionName + { + get + { + return ResourceManager.GetString("InvalidSubscriptionName", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to A valid subscription name is required. This can be provided using the -Subscription parameter or by setting the subscription via the Set-AzureSubscription cmdlet. + /// + public static string InvalidSubscriptionNameMessage + { + get + { + return ResourceManager.GetString("InvalidSubscriptionNameMessage", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to The provided subscriptions file {0} has invalid content.. + /// + public static string InvalidSubscriptionsDataSchema + { + get + { + return ResourceManager.GetString("InvalidSubscriptionsDataSchema", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Role {0} VM size should be ExtraSmall, Small, Medium, Large or ExtraLarge.. + /// + public static string InvalidVMSize + { + get + { + return ResourceManager.GetString("InvalidVMSize", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to The web job file must have *.zip extension. + /// + public static string InvalidWebJobFile + { + get + { + return ResourceManager.GetString("InvalidWebJobFile", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Singleton option works for continuous jobs only.. + /// + public static string InvalidWebJobSingleton + { + get + { + return ResourceManager.GetString("InvalidWebJobSingleton", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to The website {0} was not found. Please specify a valid website name.. + /// + public static string InvalidWebsite + { + get + { + return ResourceManager.GetString("InvalidWebsite", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to No job for id: {0} was found.. + /// + public static string JobNotFound + { + get + { + return ResourceManager.GetString("JobNotFound", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to engines. + /// + public static string JsonEnginesSectionName + { + get + { + return ResourceManager.GetString("JsonEnginesSectionName", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Scaffolding for this language is not yet supported. + /// + public static string LanguageScaffoldingIsNotSupported + { + get + { + return ResourceManager.GetString("LanguageScaffoldingIsNotSupported", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Link already established. + /// + public static string LinkAlreadyEstablished + { + get + { + return ResourceManager.GetString("LinkAlreadyEstablished", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to local_package.csx. + /// + public static string LocalPackageFileName + { + get + { + return ResourceManager.GetString("LocalPackageFileName", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to ServiceConfiguration.Local.cscfg. + /// + public static string LocalServiceConfigurationFileName + { + get + { + return ResourceManager.GetString("LocalServiceConfigurationFileName", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Looking for {0} deployment for {1} cloud service.... + /// + public static string LookingForDeploymentMessage + { + get + { + return ResourceManager.GetString("LookingForDeploymentMessage", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Looking for cloud service {0}.... + /// + public static string LookingForServiceMessage + { + get + { + return ResourceManager.GetString("LookingForServiceMessage", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Azure Long-Running Job. + /// + public static string LROJobName + { + get + { + return ResourceManager.GetString("LROJobName", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to The cmdlet failed in background execution. The returned error was '{0}'. Please execute the cmdlet again. You may need to execute this cmdlet synchronously, by omitting the '-AsJob' parameter.. + /// + public static string LROTaskExceptionMessage + { + get + { + return ResourceManager.GetString("LROTaskExceptionMessage", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to managementCertificate.pem. + /// + public static string ManagementCertificateFileName + { + get + { + return ResourceManager.GetString("ManagementCertificateFileName", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to ?whr={0}. + /// + public static string ManagementPortalRealmFormat + { + get + { + return ResourceManager.GetString("ManagementPortalRealmFormat", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to //baseuri. + /// + public static string ManifestBaseUriQuery + { + get + { + return ResourceManager.GetString("ManifestBaseUriQuery", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to uri. + /// + public static string ManifestBlobUriKey + { + get + { + return ResourceManager.GetString("ManifestBlobUriKey", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to http://az413943.vo.msecnd.net/node/runtimemanifest_0.7.5.2.xml. + /// + public static string ManifestUri + { + get + { + return ResourceManager.GetString("ManifestUri", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Property bag Hashtable must contain a 'Certificate' of type 'X509Certificate2'.. + /// + public static string MissingCertificateInProfileProperties + { + get + { + return ResourceManager.GetString("MissingCertificateInProfileProperties", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Property bag Hashtable must contain a 'Password' with an associated 'Username' or 'ServicePrincipal'.. + /// + public static string MissingPasswordInProfileProperties + { + get + { + return ResourceManager.GetString("MissingPasswordInProfileProperties", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Property bag Hashtable must contain a 'SubscriptionId'.. + /// + public static string MissingSubscriptionInProfileProperties + { + get + { + return ResourceManager.GetString("MissingSubscriptionInProfileProperties", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Multiple Add-Ons found holding name {0}. + /// + public static string MultipleAddOnsFoundMessage + { + get + { + return ResourceManager.GetString("MultipleAddOnsFoundMessage", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Multiple possible publishing users. Please go to the Portal and use the listed deployment user, or click 'set/reset deployment credentials' to set up a new user account, then reurn this cmdlet and specify PublishingUsername.. + /// + public static string MultiplePublishingUsernames + { + get + { + return ResourceManager.GetString("MultiplePublishingUsernames", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to The first publish settings file "{0}" is used. If you want to use another file specify the file name.. + /// + public static string MultiplePublishSettingsFilesFoundMessage + { + get + { + return ResourceManager.GetString("MultiplePublishSettingsFilesFoundMessage", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Microsoft.WindowsAzure.Plugins.Caching.NamedCaches. + /// + public static string NamedCacheSettingName + { + get + { + return ResourceManager.GetString("NamedCacheSettingName", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to {"caches":[{"name":"default","policy":{"eviction":{"type":0},"expiration":{"defaultTTL":10,"isExpirable":true,"type":1},"serverNotification":{"isEnabled":false}},"secondaries":0}]}. + /// + public static string NamedCacheSettingValue + { + get + { + return ResourceManager.GetString("NamedCacheSettingValue", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to A publishing username is required. Please specify one using the argument PublishingUsername.. + /// + public static string NeedPublishingUsernames + { + get + { + return ResourceManager.GetString("NeedPublishingUsernames", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to New Add-On Confirmation. + /// + public static string NewAddOnConformation + { + get + { + return ResourceManager.GetString("NewAddOnConformation", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to By typing "Yes", I (a) authorize Microsoft to charge my current payment method on a monthly basis + ///for the amount indicated at {0} for {1} until my service is cancelled or terminated, and (b) + ///agree to the {2}'s terms of user and privacy statement at {0} and (c) agree to sharing my + ///contact information with {2}.. + /// + public static string NewMicrosoftAddOnMessage + { + get + { + return ResourceManager.GetString("NewMicrosoftAddOnMessage", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Internal Server Error. This could happen because the namespace name is already used or due to an incorrect location name. Use Get-AzureSBLocation cmdlet to list valid names.. + /// + public static string NewNamespaceErrorMessage + { + get + { + return ResourceManager.GetString("NewNamespaceErrorMessage", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to By typing "Yes", I (a) authorize Microsoft to charge my current payment method on a monthly basis + ///for the amount indicated at {0} for {1} until my service is cancelled or terminated, and (b) + ///acknowledge the offering is provided by {2}, not Microsoft, and agree to {2}'s terms of + ///use and privacy statement at {0} and (c) agree to sharing my contact information with {2}.. + /// + public static string NewNonMicrosoftAddOnMessage + { + get + { + return ResourceManager.GetString("NewNonMicrosoftAddOnMessage", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Service has been created at {0}. + /// + public static string NewServiceCreatedMessage + { + get + { + return ResourceManager.GetString("NewServiceCreatedMessage", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to No. + /// + public static string No + { + get + { + return ResourceManager.GetString("No", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to There is no access token cached for subscription {0}, user id {1}. Use the Add-AzureAccount cmdlet to log in again and get a token for this subscription.. + /// + public static string NoCachedToken + { + get + { + return ResourceManager.GetString("NoCachedToken", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to The service does not have any cache worker roles, add one first by running cmdlet Add-AzureCacheWorkerRole.. + /// + public static string NoCacheWorkerRoles + { + get + { + return ResourceManager.GetString("NoCacheWorkerRoles", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to No clouds available. + /// + public static string NoCloudsAvailable + { + get + { + return ResourceManager.GetString("NoCloudsAvailable", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to "There is no current context, please log in using Connect-AzAccount.". + /// + public static string NoCurrentContextForDataCmdlet + { + get + { + return ResourceManager.GetString("NoCurrentContextForDataCmdlet", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to nodejs. + /// + public static string NodeDirectory + { + get + { + return ResourceManager.GetString("NodeDirectory", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to node. + /// + public static string NodeEngineKey + { + get + { + return ResourceManager.GetString("NodeEngineKey", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to node.exe. + /// + public static string NodeExe + { + get + { + return ResourceManager.GetString("NodeExe", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to There is no default subscription set, please set a default subscription by running Set-AzureSubscription -Default <subscription name>. + /// + public static string NoDefaultSubscriptionMessage + { + get + { + return ResourceManager.GetString("NoDefaultSubscriptionMessage", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Microsoft SDKs\Azure\Nodejs\Nov2011. + /// + public static string NodeModulesPath + { + get + { + return ResourceManager.GetString("NodeModulesPath", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to nodejs. + /// + public static string NodeProgramFilesFolderName + { + get + { + return ResourceManager.GetString("NodeProgramFilesFolderName", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to node. + /// + public static string NodeRuntimeValue + { + get + { + return ResourceManager.GetString("NodeRuntimeValue", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Resources\Scaffolding\Node. + /// + public static string NodeScaffolding + { + get + { + return ResourceManager.GetString("NodeScaffolding", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Microsoft.WindowsAzure.Commands.CloudService.ScaffoldingResources.Node. + /// + public static string NodeScaffoldingResources + { + get + { + return ResourceManager.GetString("NodeScaffoldingResources", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Installing Node version {0} in Azure for Role '{1}' (the Node version locally installed is: {2}). + /// + public static string NodeVersionWarningText + { + get + { + return ResourceManager.GetString("NodeVersionWarningText", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to No, I do not agree. + /// + public static string NoHint + { + get + { + return ResourceManager.GetString("NoHint", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Please connect to internet before executing this cmdlet. + /// + public static string NoInternetConnection + { + get + { + return ResourceManager.GetString("NoInternetConnection", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to <NONE>. + /// + public static string None + { + get + { + return ResourceManager.GetString("None", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to No publish settings files with extension *.publishsettings are found in the directory "{0}".. + /// + public static string NoPublishSettingsFilesFoundMessage + { + get + { + return ResourceManager.GetString("NoPublishSettingsFilesFoundMessage", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to There is no subscription associated with account {0}.. + /// + public static string NoSubscriptionAddedMessage + { + get + { + return ResourceManager.GetString("NoSubscriptionAddedMessage", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to No subscriptions are associated with the logged in account in Azure Service Management (RDFE). This means that the logged in user is not an administrator or co-administrator for any account.\r\nDid you mean to execute Connect-AzAccount?. + /// + public static string NoSubscriptionFoundForTenant + { + get + { + return ResourceManager.GetString("NoSubscriptionFoundForTenant", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to '{0}' must be a cache worker role. Verify that it has proper cache worker role configuration.. + /// + public static string NotCacheWorkerRole + { + get + { + return ResourceManager.GetString("NotCacheWorkerRole", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Certificate can't be null.. + /// + public static string NullCertificateMessage + { + get + { + return ResourceManager.GetString("NullCertificateMessage", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to {0} could not be null or empty. + /// + public static string NullObjectMessage + { + get + { + return ResourceManager.GetString("NullObjectMessage", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Unable to add a null RoleSettings to {0}. + /// + public static string NullRoleSettingsMessage + { + get + { + return ResourceManager.GetString("NullRoleSettingsMessage", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Unable to add new role to null service definition. + /// + public static string NullServiceDefinitionMessage + { + get + { + return ResourceManager.GetString("NullServiceDefinitionMessage", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to The request offer '{0}' is not found.. + /// + public static string OfferNotFoundMessage + { + get + { + return ResourceManager.GetString("OfferNotFoundMessage", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Operation "{0}" failed on VM with ID: {1}. + /// + public static string OperationFailedErrorMessage + { + get + { + return ResourceManager.GetString("OperationFailedErrorMessage", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to The REST operation failed with message '{0}' and error code '{1}'. + /// + public static string OperationFailedMessage + { + get + { + return ResourceManager.GetString("OperationFailedMessage", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Job Id {0} did not complete within expected time or it is in Failed/Canceled/Invalid state.. + /// + public static string OperationTimedOutOrError + { + get + { + return ResourceManager.GetString("OperationTimedOutOrError", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to package. + /// + public static string Package + { + get + { + return ResourceManager.GetString("Package", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Package is created at service root path {0}.. + /// + public static string PackageCreated + { + get + { + return ResourceManager.GetString("PackageCreated", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to {{ + /// "author": "", + /// + /// "name": "{0}", + /// "version": "0.0.0", + /// "dependencies":{{}}, + /// "devDependencies":{{}}, + /// "optionalDependencies": {{}}, + /// "engines": {{ + /// "node": "*", + /// "iisnode": "*" + /// }} + /// + ///}} + ///. + /// + public static string PackageJsonDefaultFile + { + get + { + return ResourceManager.GetString("PackageJsonDefaultFile", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to package.json. + /// + public static string PackageJsonFileName + { + get + { + return ResourceManager.GetString("PackageJsonFileName", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Path {0} doesn't exist.. + /// + public static string PathDoesNotExist + { + get + { + return ResourceManager.GetString("PathDoesNotExist", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Path for {0} doesn't exist in {1}.. + /// + public static string PathDoesNotExistForElement + { + get + { + return ResourceManager.GetString("PathDoesNotExistForElement", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to A value for the Peer Asn has to be provided.. + /// + public static string PeerAsnRequired + { + get + { + return ResourceManager.GetString("PeerAsnRequired", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to 5.4.0. + /// + public static string PHPDefaultRuntimeVersion + { + get + { + return ResourceManager.GetString("PHPDefaultRuntimeVersion", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to php. + /// + public static string PhpRuntimeValue + { + get + { + return ResourceManager.GetString("PhpRuntimeValue", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Resources\Scaffolding\PHP. + /// + public static string PHPScaffolding + { + get + { + return ResourceManager.GetString("PHPScaffolding", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Microsoft.WindowsAzure.Commands.CloudService.ScaffoldingResources.PHP. + /// + public static string PHPScaffoldingResources + { + get + { + return ResourceManager.GetString("PHPScaffoldingResources", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Installing PHP version {0} for Role '{1}' (the PHP version locally installed is: {2}). + /// + public static string PHPVersionWarningText + { + get + { + return ResourceManager.GetString("PHPVersionWarningText", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to You must create your first web site using the Microsoft Azure portal. + ///Please follow these steps in the portal: + ///1. At the bottom of the page, click on New > Web Site > Quick Create + ///2. Type {0} in the URL field + ///3. Click on "Create Web Site" + ///4. Once the site has been created, click on the site name + ///5. Click on "Set up Git publishing" or "Reset deployment credentials" and setup a publishing username and password. Use those credentials for all new websites you create.. + /// + public static string PortalInstructions + { + get + { + return ResourceManager.GetString("PortalInstructions", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to 6. Back in the console window, rerun this command by typing "New-AzureWebsite <site name> -Git". + /// + public static string PortalInstructionsGit + { + get + { + return ResourceManager.GetString("PortalInstructionsGit", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to This cmdlet is in preview. The functionality may not be available in the selected subscription. + /// + public static string PreviewCmdletMessage + { + get + { + return ResourceManager.GetString("PreviewCmdletMessage", resourceCulture); + } + } + + + /// + /// Looks up a localized string similar to A value for the Primary Peer Subnet has to be provided.. + /// + public static string PrimaryPeerSubnetRequired + { + get + { + return ResourceManager.GetString("PrimaryPeerSubnetRequired", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Promotion code can be used only when updating to a new plan.. + /// + public static string PromotionCodeWithCurrentPlanMessage + { + get + { + return ResourceManager.GetString("PromotionCodeWithCurrentPlanMessage", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Service not published at user request.. + /// + public static string PublishAbortedAtUserRequest + { + get + { + return ResourceManager.GetString("PublishAbortedAtUserRequest", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Complete.. + /// + public static string PublishCompleteMessage + { + get + { + return ResourceManager.GetString("PublishCompleteMessage", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Connecting.... + /// + public static string PublishConnectingMessage + { + get + { + return ResourceManager.GetString("PublishConnectingMessage", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Created Deployment ID: {0}.. + /// + public static string PublishCreatedDeploymentMessage + { + get + { + return ResourceManager.GetString("PublishCreatedDeploymentMessage", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Created hosted service '{0}'.. + /// + public static string PublishCreatedServiceMessage + { + get + { + return ResourceManager.GetString("PublishCreatedServiceMessage", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Created Website URL: {0}.. + /// + public static string PublishCreatedWebsiteMessage + { + get + { + return ResourceManager.GetString("PublishCreatedWebsiteMessage", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Creating.... + /// + public static string PublishCreatingServiceMessage + { + get + { + return ResourceManager.GetString("PublishCreatingServiceMessage", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Initializing.... + /// + public static string PublishInitializingMessage + { + get + { + return ResourceManager.GetString("PublishInitializingMessage", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to busy. + /// + public static string PublishInstanceStatusBusy + { + get + { + return ResourceManager.GetString("PublishInstanceStatusBusy", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to creating the virtual machine. + /// + public static string PublishInstanceStatusCreating + { + get + { + return ResourceManager.GetString("PublishInstanceStatusCreating", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Instance {0} of role {1} is {2}.. + /// + public static string PublishInstanceStatusMessage + { + get + { + return ResourceManager.GetString("PublishInstanceStatusMessage", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to ready. + /// + public static string PublishInstanceStatusReady + { + get + { + return ResourceManager.GetString("PublishInstanceStatusReady", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Preparing deployment for {0} with Subscription ID: {1}.... + /// + public static string PublishPreparingDeploymentMessage + { + get + { + return ResourceManager.GetString("PublishPreparingDeploymentMessage", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Publishing {0} to Microsoft Azure. This may take several minutes.... + /// + public static string PublishServiceStartMessage + { + get + { + return ResourceManager.GetString("PublishServiceStartMessage", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to publish settings. + /// + public static string PublishSettings + { + get + { + return ResourceManager.GetString("PublishSettings", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Azure. + /// + public static string PublishSettingsElementName + { + get + { + return ResourceManager.GetString("PublishSettingsElementName", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to .PublishSettings. + /// + public static string PublishSettingsFileExtention + { + get + { + return ResourceManager.GetString("PublishSettingsFileExtention", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to publishSettings.xml. + /// + public static string PublishSettingsFileName + { + get + { + return ResourceManager.GetString("PublishSettingsFileName", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to &whr={0}. + /// + public static string PublishSettingsFileRealmFormat + { + get + { + return ResourceManager.GetString("PublishSettingsFileRealmFormat", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Publish settings imported. + /// + public static string PublishSettingsSetSuccessfully + { + get + { + return ResourceManager.GetString("PublishSettingsSetSuccessfully", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to AZURE_PUBLISHINGPROFILE_URL. + /// + public static string PublishSettingsUrlEnv + { + get + { + return ResourceManager.GetString("PublishSettingsUrlEnv", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Starting.... + /// + public static string PublishStartingMessage + { + get + { + return ResourceManager.GetString("PublishStartingMessage", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Upgrading.... + /// + public static string PublishUpgradingMessage + { + get + { + return ResourceManager.GetString("PublishUpgradingMessage", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Uploading Package to storage service {0}.... + /// + public static string PublishUploadingPackageMessage + { + get + { + return ResourceManager.GetString("PublishUploadingPackageMessage", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Verifying storage account '{0}'.... + /// + public static string PublishVerifyingStorageMessage + { + get + { + return ResourceManager.GetString("PublishVerifyingStorageMessage", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Path '{0}' not found.. + /// + public static string PublishVMDscExtensionAdditionalContentPathNotExist + { + get + { + return ResourceManager.GetString("PublishVMDscExtensionAdditionalContentPathNotExist", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Configuration published to {0}. + /// + public static string PublishVMDscExtensionArchiveUploadedMessage + { + get + { + return ResourceManager.GetString("PublishVMDscExtensionArchiveUploadedMessage", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Copy '{0}' to '{1}'.. + /// + public static string PublishVMDscExtensionCopyFileVerbose + { + get + { + return ResourceManager.GetString("PublishVMDscExtensionCopyFileVerbose", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Copy the module '{0}' to '{1}'.. + /// + public static string PublishVMDscExtensionCopyModuleVerbose + { + get + { + return ResourceManager.GetString("PublishVMDscExtensionCopyModuleVerbose", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Invalid configuration file: {0}. + ///The file needs to be a PowerShell script (.ps1 or .psm1).. + /// + public static string PublishVMDscExtensionCreateArchiveConfigFileInvalidExtension + { + get + { + return ResourceManager.GetString("PublishVMDscExtensionCreateArchiveConfigFileInvalidExtension", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Deleted '{0}'. + /// + public static string PublishVMDscExtensionDeletedFileMessage + { + get + { + return ResourceManager.GetString("PublishVMDscExtensionDeletedFileMessage", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Cannot delete '{0}': {1}. + /// + public static string PublishVMDscExtensionDeleteErrorMessage + { + get + { + return ResourceManager.GetString("PublishVMDscExtensionDeleteErrorMessage", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Path '{0}' not found.. + /// + public static string PublishVMDscExtensionDirectoryNotExist + { + get + { + return ResourceManager.GetString("PublishVMDscExtensionDirectoryNotExist", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Cannot get module for DscResource '{0}'. Possible solutions: + ///1) Specify -ModuleName for Import-DscResource in your configuration. + ///2) Unblock module that contains resource. + ///3) Move Import-DscResource inside Node block. + ///. + /// + public static string PublishVMDscExtensionGetDscResourceFailed + { + get + { + return ResourceManager.GetString("PublishVMDscExtensionGetDscResourceFailed", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to List of required modules: [{0}].. + /// + public static string PublishVMDscExtensionRequiredModulesVerbose + { + get + { + return ResourceManager.GetString("PublishVMDscExtensionRequiredModulesVerbose", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Your current PowerShell version {1} is less then required by this cmdlet {0}. Consider download and install latest PowerShell version.. + /// + public static string PublishVMDscExtensionRequiredPsVersion + { + get + { + return ResourceManager.GetString("PublishVMDscExtensionRequiredPsVersion", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Configuration script '{0}' contained parse errors: + ///{1}. + /// + public static string PublishVMDscExtensionStorageParserErrors + { + get + { + return ResourceManager.GetString("PublishVMDscExtensionStorageParserErrors", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Temp folder '{0}' created.. + /// + public static string PublishVMDscExtensionTempFolderVerbose + { + get + { + return ResourceManager.GetString("PublishVMDscExtensionTempFolderVerbose", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Invalid configuration file: {0}. + ///The file needs to be a PowerShell script (.ps1 or .psm1) or a ZIP archive (.zip).. + /// + public static string PublishVMDscExtensionUploadArchiveConfigFileInvalidExtension + { + get + { + return ResourceManager.GetString("PublishVMDscExtensionUploadArchiveConfigFileInvalidExtension", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Configuration file '{0}' not found.. + /// + public static string PublishVMDscExtensionUploadArchiveConfigFileNotExist + { + get + { + return ResourceManager.GetString("PublishVMDscExtensionUploadArchiveConfigFileNotExist", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Azure PowerShell collects usage data in order to improve your experience. + ///The data is anonymous and does not include commandline argument values. + ///The data is collected by Microsoft. + /// + ///Use the Disable-AzureDataCollection cmdlet to turn the feature Off. The cmdlet can be found in the Azure module. To disable data collection: PS > Disable-AzureDataCollection. + ///Use the Enable-AzureDataCollection cmdlet to turn the feature On. The cmdlet can be found in the Azure module. To enable data collection: PS > Enab [rest of string was truncated]";. + /// + public static string RDFEDataCollectionMessage + { + get + { + return ResourceManager.GetString("RDFEDataCollectionMessage", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Replace current deployment with '{0}' Id ?. + /// + public static string RedeployCommit + { + get + { + return ResourceManager.GetString("RedeployCommit", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Are you sure you want to regenerate key?. + /// + public static string RegenerateKeyWarning + { + get + { + return ResourceManager.GetString("RegenerateKeyWarning", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Generate new key.. + /// + public static string RegenerateKeyWhatIfMessage + { + get + { + return ResourceManager.GetString("RegenerateKeyWhatIfMessage", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Are you sure you want to remove account '{0}'?. + /// + public static string RemoveAccountConfirmation + { + get + { + return ResourceManager.GetString("RemoveAccountConfirmation", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Removing account. + /// + public static string RemoveAccountMessage + { + get + { + return ResourceManager.GetString("RemoveAccountMessage", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Remove Add-On Confirmation. + /// + public static string RemoveAddOnConformation + { + get + { + return ResourceManager.GetString("RemoveAddOnConformation", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to If you delete this add-on, your data may be deleted and the operation may not be undone. You may have to purchase it again from the Microsoft Azure Store to use it. The price of the add-on may not be refunded. Are you sure you want to delete this add-on? Enter “Yes” to confirm.. + /// + public static string RemoveAddOnMessage + { + get + { + return ResourceManager.GetString("RemoveAddOnMessage", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Remove-AzureBGPPeering Operation failed.. + /// + public static string RemoveAzureBGPPeeringFailed + { + get + { + return ResourceManager.GetString("RemoveAzureBGPPeeringFailed", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Removing Bgp Peering. + /// + public static string RemoveAzureBGPPeeringMessage + { + get + { + return ResourceManager.GetString("RemoveAzureBGPPeeringMessage", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Successfully removed Azure Bgp Peering with Service Key {0}.. + /// + public static string RemoveAzureBGPPeeringSucceeded + { + get + { + return ResourceManager.GetString("RemoveAzureBGPPeeringSucceeded", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Are you sure you want to remove the Bgp Peering with service key '{0}'?. + /// + public static string RemoveAzureBGPPeeringWarning + { + get + { + return ResourceManager.GetString("RemoveAzureBGPPeeringWarning", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Are you sure you want to remove the Dedicated Circuit with service key '{0}'?. + /// + public static string RemoveAzureDedicatdCircuitWarning + { + get + { + return ResourceManager.GetString("RemoveAzureDedicatdCircuitWarning", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Remove-AzureDedicatedCircuit Operation failed.. + /// + public static string RemoveAzureDedicatedCircuitFailed + { + get + { + return ResourceManager.GetString("RemoveAzureDedicatedCircuitFailed", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Remove-AzureDedicatedCircuitLink Operation failed.. + /// + public static string RemoveAzureDedicatedCircuitLinkFailed + { + get + { + return ResourceManager.GetString("RemoveAzureDedicatedCircuitLinkFailed", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Removing Dedicated Circui Link. + /// + public static string RemoveAzureDedicatedCircuitLinkMessage + { + get + { + return ResourceManager.GetString("RemoveAzureDedicatedCircuitLinkMessage", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Successfully removed Azure Dedicated Circuit Link with Service Key {0} and Vnet Name {1}. + /// + public static string RemoveAzureDedicatedCircuitLinkSucceeded + { + get + { + return ResourceManager.GetString("RemoveAzureDedicatedCircuitLinkSucceeded", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Are you sure you want to remove the Dedicated Circuit Link with service key '{0}' and virtual network name '{1}'?. + /// + public static string RemoveAzureDedicatedCircuitLinkWarning + { + get + { + return ResourceManager.GetString("RemoveAzureDedicatedCircuitLinkWarning", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Removing Dedicated Circuit. + /// + public static string RemoveAzureDedicatedCircuitMessage + { + get + { + return ResourceManager.GetString("RemoveAzureDedicatedCircuitMessage", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Successfully removed Azure Dedicated Circuit with Service Key {0}.. + /// + public static string RemoveAzureDedicatedCircuitSucceeded + { + get + { + return ResourceManager.GetString("RemoveAzureDedicatedCircuitSucceeded", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Removing cloud service {0}.... + /// + public static string RemoveAzureServiceWaitMessage + { + get + { + return ResourceManager.GetString("RemoveAzureServiceWaitMessage", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to The default subscription is being removed. Use Select-AzureSubscription -Default <subscriptionName> to select a new default subscription.. + /// + public static string RemoveDefaultSubscription + { + get + { + return ResourceManager.GetString("RemoveDefaultSubscription", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Removing {0} deployment for {1} service. + /// + public static string RemoveDeploymentWaitMessage + { + get + { + return ResourceManager.GetString("RemoveDeploymentWaitMessage", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Removing an environment will remove all associated subscriptions and accounts. Are you sure you want to remove an environment '{0}'?. + /// + public static string RemoveEnvironmentConfirmation + { + get + { + return ResourceManager.GetString("RemoveEnvironmentConfirmation", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Removing environment. + /// + public static string RemoveEnvironmentMessage + { + get + { + return ResourceManager.GetString("RemoveEnvironmentMessage", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Removing job collection. + /// + public static string RemoveJobCollectionMessage + { + get + { + return ResourceManager.GetString("RemoveJobCollectionMessage", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Are you sure you want to remove the job collection "{0}". + /// + public static string RemoveJobCollectionWarning + { + get + { + return ResourceManager.GetString("RemoveJobCollectionWarning", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Removing job. + /// + public static string RemoveJobMessage + { + get + { + return ResourceManager.GetString("RemoveJobMessage", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Are you sure you want to remove the job "{0}". + /// + public static string RemoveJobWarning + { + get + { + return ResourceManager.GetString("RemoveJobWarning", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Are you sure you want to remove the account?. + /// + public static string RemoveMediaAccountWarning + { + get + { + return ResourceManager.GetString("RemoveMediaAccountWarning", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Account removed.. + /// + public static string RemoveMediaAccountWhatIfMessage + { + get + { + return ResourceManager.GetString("RemoveMediaAccountWhatIfMessage", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Internal Server Error. This could happen because the namespace does not exist or it does not exist under your subscription.. + /// + public static string RemoveNamespaceErrorMessage + { + get + { + return ResourceManager.GetString("RemoveNamespaceErrorMessage", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Removing old package {0}.... + /// + public static string RemovePackage + { + get + { + return ResourceManager.GetString("RemovePackage", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Removing the Azure profile will remove all associated environments, subscriptions, and accounts. Are you sure you want to remove the Azure profile?. + /// + public static string RemoveProfileConfirmation + { + get + { + return ResourceManager.GetString("RemoveProfileConfirmation", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Removing the Azure profile. + /// + public static string RemoveProfileMessage + { + get + { + return ResourceManager.GetString("RemoveProfileMessage", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Are you sure you want to delete the namespace '{0}'?. + /// + public static string RemoveServiceBusNamespaceConfirmation + { + get + { + return ResourceManager.GetString("RemoveServiceBusNamespaceConfirmation", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Are you sure you want to remove cloud service?. + /// + public static string RemoveServiceWarning + { + get + { + return ResourceManager.GetString("RemoveServiceWarning", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Remove cloud service and all it's deployments. + /// + public static string RemoveServiceWhatIfMessage + { + get + { + return ResourceManager.GetString("RemoveServiceWhatIfMessage", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Are you sure you want to remove subscription '{0}'?. + /// + public static string RemoveSubscriptionConfirmation + { + get + { + return ResourceManager.GetString("RemoveSubscriptionConfirmation", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Removing subscription. + /// + public static string RemoveSubscriptionMessage + { + get + { + return ResourceManager.GetString("RemoveSubscriptionMessage", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to The endpoint {0} cannot be removed from profile {1} because it's not in the profile.. + /// + public static string RemoveTrafficManagerEndpointMissing + { + get + { + return ResourceManager.GetString("RemoveTrafficManagerEndpointMissing", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Remove-AzureTrafficManagerProfile Operation failed.. + /// + public static string RemoveTrafficManagerProfileFailed + { + get + { + return ResourceManager.GetString("RemoveTrafficManagerProfileFailed", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Successfully removed Traffic Manager profile with name {0}.. + /// + public static string RemoveTrafficManagerProfileSucceeded + { + get + { + return ResourceManager.GetString("RemoveTrafficManagerProfileSucceeded", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Are you sure you want to remove the Traffic Manager profile "{0}"?. + /// + public static string RemoveTrafficManagerProfileWarning + { + get + { + return ResourceManager.GetString("RemoveTrafficManagerProfileWarning", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Are you sure you want to delete the VM '{0}'?. + /// + public static string RemoveVMConfirmationMessage + { + get + { + return ResourceManager.GetString("RemoveVMConfirmationMessage", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Deleting VM.. + /// + public static string RemoveVMMessage + { + get + { + return ResourceManager.GetString("RemoveVMMessage", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Removing WebJob.... + /// + public static string RemoveWebJobMessage + { + get + { + return ResourceManager.GetString("RemoveWebJobMessage", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Are you sure you want to remove job '{0}'?. + /// + public static string RemoveWebJobWarning + { + get + { + return ResourceManager.GetString("RemoveWebJobWarning", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Removing website. + /// + public static string RemoveWebsiteMessage + { + get + { + return ResourceManager.GetString("RemoveWebsiteMessage", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Are you sure you want to remove the website "{0}". + /// + public static string RemoveWebsiteWarning + { + get + { + return ResourceManager.GetString("RemoveWebsiteWarning", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Removing public environment is not supported.. + /// + public static string RemovingDefaultEnvironmentsNotSupported + { + get + { + return ResourceManager.GetString("RemovingDefaultEnvironmentsNotSupported", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Deleting namespace. + /// + public static string RemovingNamespaceMessage + { + get + { + return ResourceManager.GetString("RemovingNamespaceMessage", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Repository is not setup. You need to pass a valid site name.. + /// + public static string RepositoryNotSetup + { + get + { + return ResourceManager.GetString("RepositoryNotSetup", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Reserved IP with the Name:'{0}' will no longer be in use after the deployment is deleted, and it is still reserved for later use.. + /// + public static string ReservedIPNameNoLongerInUseButStillBeingReserved + { + get + { + return ResourceManager.GetString("ReservedIPNameNoLongerInUseButStillBeingReserved", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Resource with ID : {0} does not exist.. + /// + public static string ResourceNotFound + { + get + { + return ResourceManager.GetString("ResourceNotFound", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Restart. + /// + public static string Restart + { + get + { + return ResourceManager.GetString("Restart", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Resume. + /// + public static string Resume + { + get + { + return ResourceManager.GetString("Resume", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to /role:{0};"{1}/{0}" . + /// + public static string RoleArgTemplate + { + get + { + return ResourceManager.GetString("RoleArgTemplate", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to bin. + /// + public static string RoleBinFolderName + { + get + { + return ResourceManager.GetString("RoleBinFolderName", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Role {0} is {1}. + /// + public static string RoleInstanceWaitMsg + { + get + { + return ResourceManager.GetString("RoleInstanceWaitMsg", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to 20. + /// + public static string RoleMaxInstances + { + get + { + return ResourceManager.GetString("RoleMaxInstances", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to role name. + /// + public static string RoleName + { + get + { + return ResourceManager.GetString("RoleName", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to The provided role name {0} doesn't exist. + /// + public static string RoleNotFoundMessage + { + get + { + return ResourceManager.GetString("RoleNotFoundMessage", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to RoleSettings.xml. + /// + public static string RoleSettingsTemplateFileName + { + get + { + return ResourceManager.GetString("RoleSettingsTemplateFileName", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Role type {0} doesn't exist. + /// + public static string RoleTypeDoesNotExist + { + get + { + return ResourceManager.GetString("RoleTypeDoesNotExist", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to public static Dictionary<string, Location> ReverseLocations { get; private set; }. + /// + public static string RuntimeDeploymentLocationError + { + get + { + return ResourceManager.GetString("RuntimeDeploymentLocationError", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Preparing runtime deployment for service '{0}'. + /// + public static string RuntimeDeploymentStart + { + get + { + return ResourceManager.GetString("RuntimeDeploymentStart", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to WARNING Runtime Mismatch: Are you sure that you want to publish service '{0}' using an Azure runtime version that does not match your local runtime version?. + /// + public static string RuntimeMismatchWarning + { + get + { + return ResourceManager.GetString("RuntimeMismatchWarning", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to RUNTIMEOVERRIDEURL. + /// + public static string RuntimeOverrideKey + { + get + { + return ResourceManager.GetString("RuntimeOverrideKey", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to /runtimemanifest/runtimes/runtime. + /// + public static string RuntimeQuery + { + get + { + return ResourceManager.GetString("RuntimeQuery", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to RUNTIMEID. + /// + public static string RuntimeTypeKey + { + get + { + return ResourceManager.GetString("RuntimeTypeKey", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to RUNTIMEURL. + /// + public static string RuntimeUrlKey + { + get + { + return ResourceManager.GetString("RuntimeUrlKey", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to RUNTIMEVERSIONPRIMARYKEY. + /// + public static string RuntimeVersionPrimaryKey + { + get + { + return ResourceManager.GetString("RuntimeVersionPrimaryKey", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to scaffold.xml. + /// + public static string ScaffoldXml + { + get + { + return ResourceManager.GetString("ScaffoldXml", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Invalid location entered. Pick one of the locations from Get-AzureSchedulerLocation. + /// + public static string SchedulerInvalidLocation + { + get + { + return ResourceManager.GetString("SchedulerInvalidLocation", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to A value for the Secondary Peer Subnet has to be provided.. + /// + public static string SecondaryPeerSubnetRequired + { + get + { + return ResourceManager.GetString("SecondaryPeerSubnetRequired", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Service {0} already exists on disk in location {1}. + /// + public static string ServiceAlreadyExistsOnDisk + { + get + { + return ResourceManager.GetString("ServiceAlreadyExistsOnDisk", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to No ServiceBus authorization rule with the given characteristics was found. + /// + public static string ServiceBusAuthorizationRuleNotFound + { + get + { + return ResourceManager.GetString("ServiceBusAuthorizationRuleNotFound", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to The service bus entity '{0}' is not found.. + /// + public static string ServiceBusEntityTypeNotFound + { + get + { + return ResourceManager.GetString("ServiceBusEntityTypeNotFound", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Internal Server Error. This could happen due to an incorrect/missing namespace. + /// + public static string ServiceBusNamespaceMissingMessage + { + get + { + return ResourceManager.GetString("ServiceBusNamespaceMissingMessage", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to service configuration. + /// + public static string ServiceConfiguration + { + get + { + return ResourceManager.GetString("ServiceConfiguration", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to service definition. + /// + public static string ServiceDefinition + { + get + { + return ResourceManager.GetString("ServiceDefinition", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to ServiceDefinition.csdef. + /// + public static string ServiceDefinitionFileName + { + get + { + return ResourceManager.GetString("ServiceDefinitionFileName", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to {0}Deploy. + /// + public static string ServiceDeploymentName + { + get + { + return ResourceManager.GetString("ServiceDeploymentName", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to The specified cloud service "{0}" does not exist.. + /// + public static string ServiceDoesNotExist + { + get + { + return ResourceManager.GetString("ServiceDoesNotExist", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to {0} slot for service {1} is in {2} state, please wait until it finish and update it's status. + /// + public static string ServiceIsInTransitionState + { + get + { + return ResourceManager.GetString("ServiceIsInTransitionState", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to "An exception occurred when calling the ServiceManagement API. HTTP Status Code: {0}. Service Management Error Code: {1}. Message: {2}. Operation Tracking ID: {3}.". + /// + public static string ServiceManagementClientExceptionStringFormat + { + get + { + return ResourceManager.GetString("ServiceManagementClientExceptionStringFormat", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Begin Operation: {0}. + /// + public static string ServiceManagementExecuteClientActionBeginOperation + { + get + { + return ResourceManager.GetString("ServiceManagementExecuteClientActionBeginOperation", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Completed Operation: {0}. + /// + public static string ServiceManagementExecuteClientActionCompletedOperation + { + get + { + return ResourceManager.GetString("ServiceManagementExecuteClientActionCompletedOperation", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Begin Operation: {0}. + /// + public static string ServiceManagementExecuteClientActionInOCSBeginOperation + { + get + { + return ResourceManager.GetString("ServiceManagementExecuteClientActionInOCSBeginOperation", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Completed Operation: {0}. + /// + public static string ServiceManagementExecuteClientActionInOCSCompletedOperation + { + get + { + return ResourceManager.GetString("ServiceManagementExecuteClientActionInOCSCompletedOperation", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to service name. + /// + public static string ServiceName + { + get + { + return ResourceManager.GetString("ServiceName", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to The provided service name {0} already exists, please pick another name. + /// + public static string ServiceNameExists + { + get + { + return ResourceManager.GetString("ServiceNameExists", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Please provide name for the hosted service. + /// + public static string ServiceNameMissingMessage + { + get + { + return ResourceManager.GetString("ServiceNameMissingMessage", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to service parent directory. + /// + public static string ServiceParentDirectory + { + get + { + return ResourceManager.GetString("ServiceParentDirectory", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Service {0} removed successfully. + /// + public static string ServiceRemovedMessage + { + get + { + return ResourceManager.GetString("ServiceRemovedMessage", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to service directory. + /// + public static string ServiceRoot + { + get + { + return ResourceManager.GetString("ServiceRoot", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to service settings. + /// + public static string ServiceSettings + { + get + { + return ResourceManager.GetString("ServiceSettings", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to The storage account name '{0}' is invalid. Storage account names must be between 3 and 24 characters in length and use numbers and lower-case letters only.. + /// + public static string ServiceSettings_ValidateStorageAccountName_InvalidName + { + get + { + return ResourceManager.GetString("ServiceSettings_ValidateStorageAccountName_InvalidName", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to The {0} slot for cloud service {1} doesn't exist.. + /// + public static string ServiceSlotDoesNotExist + { + get + { + return ResourceManager.GetString("ServiceSlotDoesNotExist", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to {0} slot for service {1} is {2}. + /// + public static string ServiceStatusChanged + { + get + { + return ResourceManager.GetString("ServiceStatusChanged", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Set Add-On Confirmation. + /// + public static string SetAddOnConformation + { + get + { + return ResourceManager.GetString("SetAddOnConformation", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Profile {0} does not contain endpoint {1}. Adding it.. + /// + public static string SetInexistentTrafficManagerEndpointMessage + { + get + { + return ResourceManager.GetString("SetInexistentTrafficManagerEndpointMessage", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Note - You will be charged the amount for the new plan, without being refunded for time remaining + ///in the existing plan. + ///By typing "Yes", I (a) authorize Microsoft to charge my current payment method on a monthly basis + ///for the amount indicated at {0} for {1} until my service is cancelled or terminated, and (b) + ///agree to the {2}'s terms of user and privacy statement at {0} and (c) agree to sharing my + ///contact information with {2}.. + /// + public static string SetMicrosoftAddOnMessage + { + get + { + return ResourceManager.GetString("SetMicrosoftAddOnMessage", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Note - You will be charged the amount for the new plan, without being refunded for time remaining + ///in the existing plan. + ///By typing "Yes", I (a) authorize Microsoft to charge my current payment method on a monthly basis + ///for the amount indicated at {0} for {1} until my service is cancelled or terminated, and (b) + ///acknowledge the offering is provided by {2}, not Microsoft, and agree to {2}'s terms of + ///use and privacy statement at <url> and (c) agree to sharing my contact information with {2}.. + /// + public static string SetNonMicrosoftAddOnMessage + { + get + { + return ResourceManager.GetString("SetNonMicrosoftAddOnMessage", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Role {0} instances are set to {1}. + /// + public static string SetRoleInstancesMessage + { + get + { + return ResourceManager.GetString("SetRoleInstancesMessage", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to {"Slot":"","Location":"","Subscription":"","StorageAccountName":""}. + /// + public static string SettingsFileEmptyContent + { + get + { + return ResourceManager.GetString("SettingsFileEmptyContent", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to deploymentSettings.json. + /// + public static string SettingsFileName + { + get + { + return ResourceManager.GetString("SettingsFileName", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Insufficient parameters passed to create a new endpoint.. + /// + public static string SetTrafficManagerEndpointNeedsParameters + { + get + { + return ResourceManager.GetString("SetTrafficManagerEndpointNeedsParameters", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Ambiguous operation: the profile name specified doesn't match the name of the profile object.. + /// + public static string SetTrafficManagerProfileAmbiguous + { + get + { + return ResourceManager.GetString("SetTrafficManagerProfileAmbiguous", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Please execute the cmdlet again and include the 'Force' parameter, if available, to avoid unnecessary prompts.. + /// + public static string ShouldContinueFail + { + get + { + return ResourceManager.GetString("ShouldContinueFail", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Confirm. + /// + public static string ShouldProcessCaption + { + get + { + return ResourceManager.GetString("ShouldProcessCaption", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Please execute the cmdlet again and omit the 'Confirm' parameter when using the 'AsJob' parameter.. + /// + public static string ShouldProcessFailConfirm + { + get + { + return ResourceManager.GetString("ShouldProcessFailConfirm", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Please increase the user $ConfirmPreference setting, or include turn off confirmation using '-Confirm:$false' when using the 'AsJob' parameter and execute the cmdet again.. + /// + public static string ShouldProcessFailImpact + { + get + { + return ResourceManager.GetString("ShouldProcessFailImpact", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Please execute the cmdlet again and omit the 'WhatIf' parameter when using the 'AsJob' parameter.. + /// + public static string ShouldProcessFailWhatIf + { + get + { + return ResourceManager.GetString("ShouldProcessFailWhatIf", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Shutdown. + /// + public static string Shutdown + { + get + { + return ResourceManager.GetString("Shutdown", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to /sites:{0};{1};"{2}/{0}" . + /// + public static string SitesArgTemplate + { + get + { + return ResourceManager.GetString("SitesArgTemplate", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to 1000. + /// + public static string StandardRetryDelayInMs + { + get + { + return ResourceManager.GetString("StandardRetryDelayInMs", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Start. + /// + public static string Start + { + get + { + return ResourceManager.GetString("Start", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Started. + /// + public static string StartedEmulator + { + get + { + return ResourceManager.GetString("StartedEmulator", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Starting Emulator.... + /// + public static string StartingEmulator + { + get + { + return ResourceManager.GetString("StartingEmulator", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to start. + /// + public static string StartStorageEmulatorCommandArgument + { + get + { + return ResourceManager.GetString("StartStorageEmulatorCommandArgument", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Stop. + /// + public static string Stop + { + get + { + return ResourceManager.GetString("Stop", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Stopping emulator.... + /// + public static string StopEmulatorMessage + { + get + { + return ResourceManager.GetString("StopEmulatorMessage", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Stopped. + /// + public static string StoppedEmulatorMessage + { + get + { + return ResourceManager.GetString("StoppedEmulatorMessage", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to stop. + /// + public static string StopStorageEmulatorCommandArgument + { + get + { + return ResourceManager.GetString("StopStorageEmulatorCommandArgument", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Account Name:. + /// + public static string StorageAccountName + { + get + { + return ResourceManager.GetString("StorageAccountName", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Cannot find storage account '{0}' please type the name of an existing storage account.. + /// + public static string StorageAccountNotFound + { + get + { + return ResourceManager.GetString("StorageAccountNotFound", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to AzureStorageEmulator.exe. + /// + public static string StorageEmulatorExe + { + get + { + return ResourceManager.GetString("StorageEmulatorExe", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to InstallPath. + /// + public static string StorageEmulatorInstallPathRegistryKeyValue + { + get + { + return ResourceManager.GetString("StorageEmulatorInstallPathRegistryKeyValue", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to SOFTWARE\Microsoft\Windows Azure Storage Emulator. + /// + public static string StorageEmulatorRegistryKey + { + get + { + return ResourceManager.GetString("StorageEmulatorRegistryKey", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Primary Key:. + /// + public static string StoragePrimaryKey + { + get + { + return ResourceManager.GetString("StoragePrimaryKey", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Secondary Key:. + /// + public static string StorageSecondaryKey + { + get + { + return ResourceManager.GetString("StorageSecondaryKey", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to The subscription named {0} already exists.. + /// + public static string SubscriptionAlreadyExists + { + get + { + return ResourceManager.GetString("SubscriptionAlreadyExists", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to The SubscriptionDataFile parameter is deprecated. This parameter will be removed in a future release. See https://github.com/Azure/azure-powershell/wiki/Proposed-Design-Stateless-Azure-Profile for a description of the upcoming mechanism for providing alternate sources of subscription information.. + /// + public static string SubscriptionDataFileDeprecated + { + get + { + return ResourceManager.GetString("SubscriptionDataFileDeprecated", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to DefaultSubscriptionData.xml. + /// + public static string SubscriptionDataFileName + { + get + { + return ResourceManager.GetString("SubscriptionDataFileName", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to The subscription data file {0} does not exist.. + /// + public static string SubscriptionDataFileNotFound + { + get + { + return ResourceManager.GetString("SubscriptionDataFileNotFound", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to The subscription id {0} doesn't exist.. + /// + public static string SubscriptionIdNotFoundMessage + { + get + { + return ResourceManager.GetString("SubscriptionIdNotFoundMessage", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Subscription must not be null. + /// + public static string SubscriptionMustNotBeNull + { + get + { + return ResourceManager.GetString("SubscriptionMustNotBeNull", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Subscription name needs to be specified.. + /// + public static string SubscriptionNameNeedsToBeSpecified + { + get + { + return ResourceManager.GetString("SubscriptionNameNeedsToBeSpecified", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to The subscription name {0} doesn't exist.. + /// + public static string SubscriptionNameNotFoundMessage + { + get + { + return ResourceManager.GetString("SubscriptionNameNotFoundMessage", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Subscription needs to be specified.. + /// + public static string SubscriptionNeedsToBeSpecified + { + get + { + return ResourceManager.GetString("SubscriptionNeedsToBeSpecified", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Suspend. + /// + public static string Suspend + { + get + { + return ResourceManager.GetString("Suspend", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Swapping website production slot .... + /// + public static string SwappingWebsite + { + get + { + return ResourceManager.GetString("SwappingWebsite", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Are you sure you want to swap the website '{0}' production slot with slot '{1}'?. + /// + public static string SwapWebsiteSlotWarning + { + get + { + return ResourceManager.GetString("SwapWebsiteSlotWarning", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to The Switch-AzureMode cmdlet is deprecated and will be removed in a future release.. + /// + public static string SwitchAzureModeDeprecated + { + get + { + return ResourceManager.GetString("SwitchAzureModeDeprecated", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to [AzureLongRunningJob]: Starting cmdlet execution, setting for cmdlet confirmation required: '{0}'. + /// + public static string TraceBeginLROJob + { + get + { + return ResourceManager.GetString("TraceBeginLROJob", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to [AzureLongRunningJob]: Blocking job for ShouldMethod '{0}'. + /// + public static string TraceBlockLROThread + { + get + { + return ResourceManager.GetString("TraceBlockLROThread", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to [AzureLongRunningJob]: Completing cmdlet execution in RunJob. + /// + public static string TraceEndLROJob + { + get + { + return ResourceManager.GetString("TraceEndLROJob", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to [AzureLongRunningJob]: State change from '{0}' to '{1}' because '{2}'. + /// + public static string TraceHandleLROStateChange + { + get + { + return ResourceManager.GetString("TraceHandleLROStateChange", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to [AzureLongRunningJob]: Unblocking job due to stoppage or failure. + /// + public static string TraceHandlerCancelJob + { + get + { + return ResourceManager.GetString("TraceHandlerCancelJob", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to [AzureLongRunningJob]: Unblocking job that was previously blocked.. + /// + public static string TraceHandlerUnblockJob + { + get + { + return ResourceManager.GetString("TraceHandlerUnblockJob", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to [AzureLongRunningJob]: Error in cmdlet execution. + /// + public static string TraceLROJobException + { + get + { + return ResourceManager.GetString("TraceLROJobException", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to [AzureLongRunningJob]: Removing state changed event handler, exception '{0}'. + /// + public static string TraceRemoveLROEventHandler + { + get + { + return ResourceManager.GetString("TraceRemoveLROEventHandler", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to [AzureLongRunningJob]: ShouldMethod '{0}' unblocked.. + /// + public static string TraceUnblockLROThread + { + get + { + return ResourceManager.GetString("TraceUnblockLROThread", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Unable to decode string from base 64. Please make sure the string is correctly encoded: {0}.. + /// + public static string UnableToDecodeBase64String + { + get + { + return ResourceManager.GetString("UnableToDecodeBase64String", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Unable to update mismatching Json structured: {0} {1}.. + /// + public static string UnableToPatchJson + { + get + { + return ResourceManager.GetString("UnableToPatchJson", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to The provider {0} is unknown.. + /// + public static string UnknownProviderMessage + { + get + { + return ResourceManager.GetString("UnknownProviderMessage", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Update. + /// + public static string Update + { + get + { + return ResourceManager.GetString("Update", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Updated settings for subscription '{0}'. Current subscription is '{1}'.. + /// + public static string UpdatedSettings + { + get + { + return ResourceManager.GetString("UpdatedSettings", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to User name is not valid.. + /// + public static string UserNameIsNotValid + { + get + { + return ResourceManager.GetString("UserNameIsNotValid", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to User name needs to be specified.. + /// + public static string UserNameNeedsToBeSpecified + { + get + { + return ResourceManager.GetString("UserNameNeedsToBeSpecified", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to A value for the VLan Id has to be provided.. + /// + public static string VlanIdRequired + { + get + { + return ResourceManager.GetString("VlanIdRequired", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Please wait.... + /// + public static string WaitMessage + { + get + { + return ResourceManager.GetString("WaitMessage", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to The azure storage emulator is not installed, skip launching.... + /// + public static string WarningWhenStorageEmulatorIsMissing + { + get + { + return ResourceManager.GetString("WarningWhenStorageEmulatorIsMissing", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Web.cloud.config. + /// + public static string WebCloudConfig + { + get + { + return ResourceManager.GetString("WebCloudConfig", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to web.config. + /// + public static string WebConfigTemplateFileName + { + get + { + return ResourceManager.GetString("WebConfigTemplateFileName", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to MSDeploy. + /// + public static string WebDeployKeywordInWebSitePublishProfile + { + get + { + return ResourceManager.GetString("WebDeployKeywordInWebSitePublishProfile", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Cannot build the project successfully. Please see logs in {0}.. + /// + public static string WebProjectBuildFailTemplate + { + get + { + return ResourceManager.GetString("WebProjectBuildFailTemplate", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to WebRole. + /// + public static string WebRole + { + get + { + return ResourceManager.GetString("WebRole", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to setup_web.cmd > log.txt. + /// + public static string WebRoleStartupTaskCommandLine + { + get + { + return ResourceManager.GetString("WebRoleStartupTaskCommandLine", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to WebRole.xml. + /// + public static string WebRoleTemplateFileName + { + get + { + return ResourceManager.GetString("WebRoleTemplateFileName", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to WebSite with given name {0} already exists in the specified Subscription and Webspace.. + /// + public static string WebsiteAlreadyExists + { + get + { + return ResourceManager.GetString("WebsiteAlreadyExists", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to WebSite with given name {0} already exists in the specified Subscription and Location.. + /// + public static string WebsiteAlreadyExistsReplacement + { + get + { + return ResourceManager.GetString("WebsiteAlreadyExistsReplacement", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Site {0} already has repository created for it.. + /// + public static string WebsiteRepositoryAlreadyExists + { + get + { + return ResourceManager.GetString("WebsiteRepositoryAlreadyExists", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Workspaces/WebsiteExtension/Website/{0}/dashboard/. + /// + public static string WebsiteSufixUrl + { + get + { + return ResourceManager.GetString("WebsiteSufixUrl", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to https://{0}/msdeploy.axd?site={1}. + /// + public static string WebSiteWebDeployUriTemplate + { + get + { + return ResourceManager.GetString("WebSiteWebDeployUriTemplate", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to WorkerRole. + /// + public static string WorkerRole + { + get + { + return ResourceManager.GetString("WorkerRole", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to setup_worker.cmd > log.txt. + /// + public static string WorkerRoleStartupTaskCommandLine + { + get + { + return ResourceManager.GetString("WorkerRoleStartupTaskCommandLine", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to WorkerRole.xml. + /// + public static string WorkerRoleTemplateFileName + { + get + { + return ResourceManager.GetString("WorkerRoleTemplateFileName", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to (x86). + /// + public static string x86InProgramFiles + { + get + { + return ResourceManager.GetString("x86InProgramFiles", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Yes. + /// + public static string Yes + { + get + { + return ResourceManager.GetString("Yes", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Yes, I agree. + /// + public static string YesHint + { + get + { + return ResourceManager.GetString("YesHint", resourceCulture); + } + } + } +} diff --git a/swaggerci/eventgrid/generated/runtime/Properties/Resources.resx b/swaggerci/eventgrid/generated/runtime/Properties/Resources.resx new file mode 100644 index 000000000000..598cd53e958a --- /dev/null +++ b/swaggerci/eventgrid/generated/runtime/Properties/Resources.resx @@ -0,0 +1,1741 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + The remote server returned an error: (401) Unauthorized. + + + Account "{0}" has been added. + + + To switch to a different subscription, please use Select-AzureSubscription. + + + Subscription "{0}" is selected as the default subscription. + + + To view all the subscriptions, please use Get-AzureSubscription. + + + Add-On {0} is created successfully. + + + Add-on name {0} is already used. + + + Add-On {0} not found. + + + Add-on {0} is removed successfully. + + + Add-On {0} is updated successfully. + + + Role has been created at {0}\{1}. + + + Role has been created at {0}\{1}. For easy access to Microsoft Azure services from your application code, install the Microsoft Azure client library for Node.js by running ‘npm install azure’. + + + Role has been created at {0}\{1}. For easy access to Microsoft Azure services from your application code, install the Microsoft Azure client library for PHP by running "pear WindowsAzure/WindowsAzure". + + + Unable to set role permissions. Please give the 'Network Service' user 'Read & execute' and 'Modify' permissions to the role folder, or run PowerShell as an Administrator + + + A role name '{0}' already exists + + + Windows Azure Powershell\ + + + https://manage.windowsazure.com + + + AZURE_PORTAL_URL + + + Azure SDK\{0}\ + + + Base Uri was empty. + WAPackIaaS + + + {0} begin processing without ParameterSet. + + + {0} begin processing with ParameterSet '{1}'. + + + Blob with the name {0} already exists in the account. + + + https://{0}.blob.core.windows.net/ + + + AZURE_BLOBSTORAGE_TEMPLATE + + + CACHERUNTIMEURL + + + cache + + + CacheRuntimeVersion + + + Installing caching version {0} for Role '{1}' (the caching version locally installed is: {2}) + + + Cannot find {0} with name {1}. + + + Deployment for service {0} with {1} slot doesn't exist + + + Can't find valid Microsoft Azure role in current directory {0} + + + service {0} configuration file (ServiceConfiguration.Cloud.cscfg) is either null or doesn't exist + + + Invalid service path! Cannot locate ServiceDefinition.csdef in current folder or parent folders. + + + The subscription named {0} with id {1} is not currently imported. You must import this subscription before it can be updated. + + + ManagementCertificate + + + certificate.pfx + + + Certificate imported into CurrentUser\My\{0} + + + Your account does not have access to the private key for certificate {0} + + + {0} {1} deployment for {2} service + + + Cloud service {0} is in {1} state. + + + Changing/Removing public environment '{0}' is not allowed. + + + Service {0} is set to value {1} + + + Choose which publish settings file to use: + + + Microsoft.WindowsAzure.Plugins.Caching.ClientDiagnosticLevel + + + 1 + + + cloud_package.cspkg + + + ServiceConfiguration.Cloud.cscfg + + + Add-ons for {0} + + + Communication could not be established. This could be due to an invalid subscription ID. Note that subscription IDs are case sensitive. + + + Complete + + + config.json + + + VirtualMachine creation failed. + WAPackIaaS + + + Creating the website failed. If this is the first website for this subscription, please create it using the management portal instead. + + + Microsoft.ApplicationServer.Caching.DataCacheClientsSection, Microsoft.ApplicationServer.Caching.Core + + + //blobcontainer[@datacenter='{0}'] + + + Setting: {0} as the default and current subscription. To view other subscriptions use Get-AzureSubscription + + + none + + + There are no hostnames which could be used for validation. + + + 8080 + + + 1000 + + + Auto + + + 80 + + + Delete + WAPackIaaS + + + The {0} slot for service {1} is already in {2} state + + + The deployment in {0} slot for service {1} is removed + + + Microsoft.WindowsAzure.Plugins.Caching.DiagnosticLevel + + + 1 + + + The key to add already exists in the dictionary. + + + The array index cannot be less than zero. + + + The supplied array does not have enough room to contain the copied elements. + + + The provided dns {0} doesn't exist + + + Microsoft Azure Certificate + + + Endpoint can't be retrieved for storage account + + + {0} end processing. + + + To use Active Directory authentication, you must configure the ActiveDirectoryEndpoint, ActiveDirectoryTenantId, and ActiveDirectorServiceEndpointResourceId for environment of '{0}'. You can configure these properties for this environment using the Set-AzureEnvironment cmdlet. + + + The environment '{0}' already exists. + + + environments.xml + + + Error creating VirtualMachine + WAPackIaaS + + + Unable to download available runtimes for location '{0}' + + + Error updating VirtualMachine + WAPackIaaS + + + Job Id {0} failed. Error: {1}, ExceptionDetails: {2} + WAPackIaaS + + + The HTTP request was forbidden with client authentication scheme 'Anonymous'. + + + This add-on requires you to purchase the first instance through the Microsoft Azure Portal. Subsequent purchases can be performed through PowerShell. + + + Operation Status: + + + Resources\Scaffolding\General + + + Getting all available Microsoft Azure Add-Ons, this may take few minutes... + + + Name{0}Primary Key{0}Seconday Key + + + Git not found. Please install git and place it in your command line path. + + + Could not find publish settings. Please run Import-AzurePublishSettingsFile. + + + iisnode.dll + + + iisnode + + + iisnode-dev\\release\\x64 + + + iisnode + + + Installing IISNode version {0} in Azure for WebRole '{1}' (the version locally installed is: {2}) + + + Internal Server Error + + + Cannot enable memcach protocol on a cache worker role {0}. + + + Invalid certificate format. + + + The provided configuration path is invalid or doesn't exist + + + The country name is invalid, please use a valid two character country code, as described in ISO 3166-1 alpha-2. + + + Deployment with {0} does not exist + + + The deployment slot name {0} is invalid. Slot name must be either "Staging" or "Production". + + + Invalid service endpoint. + + + File {0} has invalid characters + + + You must create your git publishing credentials using the Microsoft Azure portal. +Please follow these steps in the portal: +1. On the left side open "Web Sites" +2. Click on any website +3. Choose "Setup Git Publishing" or "Reset deployment credentials" +4. Back in the PowerShell window, rerun this command by typing "New-AzureWebSite {site name} -Git -PublishingUsername {username} + + + The value {0} provided is not a valid GUID. Please provide a valid GUID. + + + The specified hostname does not exist. Please specify a valid hostname for the site. + + + Role {0} instances must be greater than or equal 0 and less than or equal 20 + + + There was an error creating your webjob. Please make sure that the script is in the root folder of the zip file. + + + Could not download a valid runtime manifest, Please check your internet connection and try again. + + + The account {0} was not found. Please specify a valid account name. + + + The provided name "{0}" does not match the service bus namespace naming rules. + + + Value cannot be null. Parameter name: '{0}' + + + The provided package path is invalid or doesn't exist + + + '{0}' is an invalid parameter set name. + + + {0} doesn't exist in {1} or you've not passed valid value for it + + + Path {0} has invalid characters + + + The provided publish settings file {0} has invalid content. Please get valid by running cmdlet Get-AzurePublishSettingsFile + + + The provided role name "{0}" has invalid characters + + + A valid name for the service root folder is required + + + {0} is not a recognized runtime type + + + A valid language is required + + + No subscription is currently selected. Use Select-Subscription to activate a subscription. + + + The provided location "{0}" does not exist in the available locations use Get-AzureSBLocation for listing available locations. + + + Please provide a service name or run this command from inside a service project directory. + + + You must provide valid value for {0} + + + settings.json is invalid or doesn't exist + + + The subscription named '{0}' cannot be found. Use Set-AzureSubscription to initialize the subscription data. + + + The provided subscription id {0} is not valid + + + A valid subscription name is required. This can be provided using the -Subscription parameter or by setting the subscription via the Set-AzureSubscription cmdlet + + + The provided subscriptions file {0} has invalid content. + + + Role {0} VM size should be ExtraSmall, Small, Medium, Large or ExtraLarge. + + + The web job file must have *.zip extension + + + Singleton option works for continuous jobs only. + + + The website {0} was not found. Please specify a valid website name. + + + No job for id: {0} was found. + WAPackIaaS + + + engines + + + Scaffolding for this language is not yet supported + + + Link already established + + + local_package.csx + + + ServiceConfiguration.Local.cscfg + + + Looking for {0} deployment for {1} cloud service... + + + Looking for cloud service {0}... + + + managementCertificate.pem + + + ?whr={0} + + + //baseuri + + + uri + + + http://az413943.vo.msecnd.net/node/runtimemanifest_0.7.5.2.xml + + + Multiple Add-Ons found holding name {0} + + + Multiple possible publishing users. Please go to the Portal and use the listed deployment user, or click 'set/reset deployment credentials' to set up a new user account, then reurn this cmdlet and specify PublishingUsername. + + + The first publish settings file "{0}" is used. If you want to use another file specify the file name. + + + Microsoft.WindowsAzure.Plugins.Caching.NamedCaches + + + {"caches":[{"name":"default","policy":{"eviction":{"type":0},"expiration":{"defaultTTL":10,"isExpirable":true,"type":1},"serverNotification":{"isEnabled":false}},"secondaries":0}]} + + + A publishing username is required. Please specify one using the argument PublishingUsername. + + + New Add-On Confirmation + + + By typing "Yes", I (a) authorize Microsoft to charge my current payment method on a monthly basis +for the amount indicated at {0} for {1} until my service is cancelled or terminated, and (b) +agree to the {2}'s terms of user and privacy statement at {0} and (c) agree to sharing my +contact information with {2}. + + + Internal Server Error. This could happen because the namespace name is already used or due to an incorrect location name. Use Get-AzureSBLocation cmdlet to list valid names. + + + By typing "Yes", I (a) authorize Microsoft to charge my current payment method on a monthly basis +for the amount indicated at {0} for {1} until my service is cancelled or terminated, and (b) +acknowledge the offering is provided by {2}, not Microsoft, and agree to {2}'s terms of +use and privacy statement at {0} and (c) agree to sharing my contact information with {2}. + + + Service has been created at {0} + + + No + + + There is no access token cached for subscription {0}, user id {1}. Use the Add-AzureAccount cmdlet to log in again and get a token for this subscription. + + + The service does not have any cache worker roles, add one first by running cmdlet Add-AzureCacheWorkerRole. + + + No clouds available + WAPackIaaS + + + nodejs + + + node + + + node.exe + + + There is no default subscription set, please set a default subscription by running Set-AzureSubscription -Default <subscription name> + + + Microsoft SDKs\Azure\Nodejs\Nov2011 + + + nodejs + + + node + + + Resources\Scaffolding\Node + + + Microsoft.WindowsAzure.Commands.CloudService.ScaffoldingResources.Node + + + Installing Node version {0} in Azure for Role '{1}' (the Node version locally installed is: {2}) + + + No, I do not agree + + + No publish settings files with extension *.publishsettings are found in the directory "{0}". + + + '{0}' must be a cache worker role. Verify that it has proper cache worker role configuration. + + + Certificate can't be null. + + + {0} could not be null or empty + + + Unable to add a null RoleSettings to {0} + + + Unable to add new role to null service definition + + + The request offer '{0}' is not found. + + + Operation "{0}" failed on VM with ID: {1} + WAPackIaaS + + + The REST operation failed with message '{0}' and error code '{1}' + + + Job Id {0} did not complete within expected time or it is in Failed/Canceled/Invalid state. + WAPackIaaS + + + package + + + Package is created at service root path {0}. + + + {{ + "author": "", + + "name": "{0}", + "version": "0.0.0", + "dependencies":{{}}, + "devDependencies":{{}}, + "optionalDependencies": {{}}, + "engines": {{ + "node": "*", + "iisnode": "*" + }} + +}} + + + + package.json + + + A value for the Peer Asn has to be provided. + + + 5.4.0 + + + php + + + Resources\Scaffolding\PHP + + + Microsoft.WindowsAzure.Commands.CloudService.ScaffoldingResources.PHP + + + Installing PHP version {0} for Role '{1}' (the PHP version locally installed is: {2}) + + + You must create your first web site using the Microsoft Azure portal. +Please follow these steps in the portal: +1. At the bottom of the page, click on New > Web Site > Quick Create +2. Type {0} in the URL field +3. Click on "Create Web Site" +4. Once the site has been created, click on the site name +5. Click on "Set up Git publishing" or "Reset deployment credentials" and setup a publishing username and password. Use those credentials for all new websites you create. + + + 6. Back in the console window, rerun this command by typing "New-AzureWebsite <site name> -Git" + + + A value for the Primary Peer Subnet has to be provided. + + + Promotion code can be used only when updating to a new plan. + + + Service not published at user request. + + + Complete. + + + Connecting... + + + Created Deployment ID: {0}. + + + Created hosted service '{0}'. + + + Created Website URL: {0}. + + + Creating... + + + Initializing... + + + busy + + + creating the virtual machine + + + Instance {0} of role {1} is {2}. + + + ready + + + Preparing deployment for {0} with Subscription ID: {1}... + + + Publishing {0} to Microsoft Azure. This may take several minutes... + + + publish settings + + + Azure + + + .PublishSettings + + + publishSettings.xml + + + Publish settings imported + + + AZURE_PUBLISHINGPROFILE_URL + + + Starting... + + + Upgrading... + + + Uploading Package to storage service {0}... + + + Verifying storage account '{0}'... + + + Replace current deployment with '{0}' Id ? + + + Are you sure you want to regenerate key? + + + Generate new key. + + + Are you sure you want to remove account '{0}'? + + + Removing account + + + Remove Add-On Confirmation + + + If you delete this add-on, your data may be deleted and the operation may not be undone. You may have to purchase it again from the Microsoft Azure Store to use it. The price of the add-on may not be refunded. Are you sure you want to delete this add-on? Enter “Yes” to confirm. + + + Remove-AzureBGPPeering Operation failed. + + + Removing Bgp Peering + + + Successfully removed Azure Bgp Peering with Service Key {0}. + + + Are you sure you want to remove the Bgp Peering with service key '{0}'? + + + Are you sure you want to remove the Dedicated Circuit with service key '{0}'? + + + Remove-AzureDedicatedCircuit Operation failed. + + + Remove-AzureDedicatedCircuitLink Operation failed. + + + Removing Dedicated Circui Link + + + Successfully removed Azure Dedicated Circuit Link with Service Key {0} and Vnet Name {1} + + + Are you sure you want to remove the Dedicated Circuit Link with service key '{0}' and virtual network name '{1}'? + + + Removing Dedicated Circuit + + + Successfully removed Azure Dedicated Circuit with Service Key {0}. + + + Removing cloud service {0}... + + + Removing {0} deployment for {1} service + + + Removing job collection + + + Are you sure you want to remove the job collection "{0}" + + + Removing job + + + Are you sure you want to remove the job "{0}" + + + Are you sure you want to remove the account? + + + Account removed. + + + Internal Server Error. This could happen because the namespace does not exist or it does not exist under your subscription. + + + Removing old package {0}... + + + Are you sure you want to delete the namespace '{0}'? + + + Are you sure you want to remove cloud service? + + + Remove cloud service and all it's deployments + + + Are you sure you want to remove subscription '{0}'? + + + Removing subscription + + + Are you sure you want to delete the VM '{0}'? + + + Deleting VM. + + + Removing WebJob... + + + Are you sure you want to remove job '{0}'? + + + Removing website + + + Are you sure you want to remove the website "{0}" + + + Deleting namespace + + + Repository is not setup. You need to pass a valid site name. + + + Reserved IP with the Name:'{0}' will no longer be in use after the deployment is deleted, and it is still reserved for later use. + + + Resource with ID : {0} does not exist. + WAPackIaaS + + + Restart + WAPackIaaS + + + Resume + WAPackIaaS + + + /role:{0};"{1}/{0}" + + + bin + + + Role {0} is {1} + + + 20 + + + role name + + + The provided role name {0} doesn't exist + + + RoleSettings.xml + + + Role type {0} doesn't exist + + + public static Dictionary<string, Location> ReverseLocations { get; private set; } + + + Preparing runtime deployment for service '{0}' + + + WARNING Runtime Mismatch: Are you sure that you want to publish service '{0}' using an Azure runtime version that does not match your local runtime version? + + + RUNTIMEOVERRIDEURL + + + /runtimemanifest/runtimes/runtime + + + RUNTIMEID + + + RUNTIMEURL + + + RUNTIMEVERSIONPRIMARYKEY + + + scaffold.xml + + + Invalid location entered. Pick one of the locations from Get-AzureSchedulerLocation + + + A value for the Secondary Peer Subnet has to be provided. + + + Service {0} already exists on disk in location {1} + + + No ServiceBus authorization rule with the given characteristics was found + + + The service bus entity '{0}' is not found. + + + Internal Server Error. This could happen due to an incorrect/missing namespace + + + service configuration + + + service definition + + + ServiceDefinition.csdef + + + {0}Deploy + + + The specified cloud service "{0}" does not exist. + + + {0} slot for service {1} is in {2} state, please wait until it finish and update it's status + + + Begin Operation: {0} + + + Completed Operation: {0} + + + Begin Operation: {0} + + + Completed Operation: {0} + + + service name + + + Please provide name for the hosted service + + + service parent directory + + + Service {0} removed successfully + + + service directory + + + service settings + + + The storage account name '{0}' is invalid. Storage account names must be between 3 and 24 characters in length and use numbers and lower-case letters only. + + + The {0} slot for cloud service {1} doesn't exist. + + + {0} slot for service {1} is {2} + + + Set Add-On Confirmation + + + Note - You will be charged the amount for the new plan, without being refunded for time remaining +in the existing plan. +By typing "Yes", I (a) authorize Microsoft to charge my current payment method on a monthly basis +for the amount indicated at {0} for {1} until my service is cancelled or terminated, and (b) +agree to the {2}'s terms of user and privacy statement at {0} and (c) agree to sharing my +contact information with {2}. + + + Note - You will be charged the amount for the new plan, without being refunded for time remaining +in the existing plan. +By typing "Yes", I (a) authorize Microsoft to charge my current payment method on a monthly basis +for the amount indicated at {0} for {1} until my service is cancelled or terminated, and (b) +acknowledge the offering is provided by {2}, not Microsoft, and agree to {2}'s terms of +use and privacy statement at <url> and (c) agree to sharing my contact information with {2}. + + + Role {0} instances are set to {1} + + + {"Slot":"","Location":"","Subscription":"","StorageAccountName":""} + + + deploymentSettings.json + + + Confirm + + + Shutdown + WAPackIaaS + + + /sites:{0};{1};"{2}/{0}" + + + 1000 + + + Start + WAPackIaaS + + + Started + + + Starting Emulator... + + + start + + + Stop + WAPackIaaS + + + Stopping emulator... + + + Stopped + + + stop + + + Account Name: + + + Cannot find storage account '{0}' please type the name of an existing storage account. + + + AzureStorageEmulator.exe + + + InstallPath + + + SOFTWARE\Microsoft\Windows Azure Storage Emulator + + + Primary Key: + + + Secondary Key: + + + The subscription named {0} already exists. + + + DefaultSubscriptionData.xml + + + The subscription data file {0} does not exist. + + + Subscription must not be null + WAPackIaaS + + + Suspend + WAPackIaaS + + + Swapping website production slot ... + + + Are you sure you want to swap the website '{0}' production slot with slot '{1}'? + + + The provider {0} is unknown. + + + Update + WAPackIaaS + + + Updated settings for subscription '{0}'. Current subscription is '{1}'. + + + A value for the VLan Id has to be provided. + + + Please wait... + + + The azure storage emulator is not installed, skip launching... + + + Web.cloud.config + + + web.config + + + MSDeploy + + + Cannot build the project successfully. Please see logs in {0}. + + + WebRole + + + setup_web.cmd > log.txt + + + WebRole.xml + + + WebSite with given name {0} already exists in the specified Subscription and Webspace. + + + WebSite with given name {0} already exists in the specified Subscription and Location. + + + Site {0} already has repository created for it. + + + Workspaces/WebsiteExtension/Website/{0}/dashboard/ + + + https://{0}/msdeploy.axd?site={1} + + + WorkerRole + + + setup_worker.cmd > log.txt + + + WorkerRole.xml + + + Yes + + + Yes, I agree + + + Remove-AzureTrafficManagerProfile Operation failed. + + + Successfully removed Traffic Manager profile with name {0}. + + + Are you sure you want to remove the Traffic Manager profile "{0}"? + + + Profile {0} already has an endpoint with name {1} + + + Profile {0} does not contain endpoint {1}. Adding it. + + + The endpoint {0} cannot be removed from profile {1} because it's not in the profile. + + + Insufficient parameters passed to create a new endpoint. + + + Ambiguous operation: the profile name specified doesn't match the name of the profile object. + + + <NONE> + + + "An exception occurred when calling the ServiceManagement API. HTTP Status Code: {0}. Service Management Error Code: {1}. Message: {2}. Operation Tracking ID: {3}." + {0} is the HTTP status code. {1} is the Service Management Error Code. {2} is the Service Management Error message. {3} is the operation tracking ID. + + + Unable to decode string from base 64. Please make sure the string is correctly encoded: {0}. + {0} is the string that is not in a valid base 64 format. + + + Skipping external tenant {0}, because you are using a guest or a foreign principal object identity. In order to access this tenant, please run Add-AzureAccount without "-Credential". + + + Removing an environment will remove all associated subscriptions and accounts. Are you sure you want to remove an environment '{0}'? + + + Removing environment + + + There is no subscription associated with account {0}. + + + Account id doesn't match one in subscription. + + + Environment name doesn't match one in subscription. + + + Removing the Azure profile will remove all associated environments, subscriptions, and accounts. Are you sure you want to remove the Azure profile? + + + Removing the Azure profile + + + The SubscriptionDataFile parameter is deprecated. This parameter will be removed in a future release. See https://github.com/Azure/azure-powershell/wiki/Proposed-Design-Stateless-Azure-Profile for a description of the upcoming mechanism for providing alternate sources of subscription information. + + + Account needs to be specified + + + No default subscription has been designated. Use Select-AzureSubscription -Default <subscriptionName> to set the default subscription. + + + Path must specify a valid path to an Azure profile. + + + Property bag Hashtable must contain one of the following sets of properties: {SubscriptionId, Certificate}, {SubscriptionId, Username, Password}, {SubscriptionId, ServicePrincipal, Password, Tenant}, {SubscriptionId, AccountId, Token} + + + Property bag Hashtable must contain a 'Certificate' of type 'X509Certificate2'. + + + Property bag Hashtable must contain a 'Password' with an associated 'Username' or 'ServicePrincipal'. + + + Property bag Hashtable must contain a 'SubscriptionId'. + + + Selected profile must not be null. + + + The Switch-AzureMode cmdlet is deprecated and will be removed in a future release. + + + OperationID : '{0}' + + + Cannot get module for DscResource '{0}'. Possible solutions: +1) Specify -ModuleName for Import-DscResource in your configuration. +2) Unblock module that contains resource. +3) Move Import-DscResource inside Node block. + + 0 = name of DscResource + + + Your current PowerShell version {1} is less then required by this cmdlet {0}. Consider download and install latest PowerShell version. + {0} = minimal required PS version, {1} = current PS version + + + Parsing configuration script: {0} + {0} is the path to a script file + + + Configuration script '{0}' contained parse errors: +{1} + 0 = path to the configuration script, 1 = parser errors + + + List of required modules: [{0}]. + {0} = list of modules + + + Temp folder '{0}' created. + {0} = temp folder path + + + Copy '{0}' to '{1}'. + {0} = source, {1} = destination + + + Copy the module '{0}' to '{1}'. + {0} = source, {1} = destination + + + File '{0}' already exists. Use the -Force parameter to overwrite it. + {0} is the path to a file + + + Configuration file '{0}' not found. + 0 = path to the configuration file + + + Path '{0}' not found. + 0 = path to the additional content file/directory + + + Path '{0}' not found. + 0 = path to the additional content file/directory + + + Invalid configuration file: {0}. +The file needs to be a PowerShell script (.ps1 or .psm1) or a ZIP archive (.zip). + 0 = path to the configuration file + + + Invalid configuration file: {0}. +The file needs to be a PowerShell script (.ps1 or .psm1). + 0 = path to the configuration file + + + Create Archive + + + Upload '{0}' + {0} is the name of an storage blob + + + Storage Blob '{0}' already exists. Use the -Force parameter to overwrite it. + {0} is the name of an storage blob + + + Configuration published to {0} + {0} is an URI + + + Deleted '{0}' + {0} is the path of a file + + + Cannot delete '{0}': {1} + {0} is the path of a file, {1} is an error message + + + Cannot find the WadCfg end element in the config. + + + WadCfg start element in the config is not matching the end element. + + + Cannot find the WadCfg element in the config. + + + Cannot find configuration data file: {0} + + + The configuration data must be a .psd1 file + + + Cannot change built-in environment {0}. + + + Azure PowerShell collects usage data in order to improve your experience. +The data is anonymous and does not include commandline argument values. +The data is collected by Microsoft. + +Use the Disable-AzDataCollection cmdlet to turn the feature Off. The cmdlet can be found in the Az.Accounts module. To disable data collection: PS > Disable-AzDataCollection. +Use the Enable-AzDataCollection cmdlet to turn the feature On. The cmdlet can be found in the Az.Accounts module. To enable data collection: PS > Enable-AzDataCollection. + + + Microsoft Azure PowerShell Data Collection Confirmation + + + You choose not to participate in Microsoft Azure PowerShell data collection. + + + This confirmation message will be dismissed in '{0}' second(s)... + + + You choose to participate in Microsoft Azure PowerShell data collection. + + + The setting profile has been saved to the following path '{0}'. + + + [Common.Authentication]: Authenticating for account {0} with single tenant {1}. + + + Changing public environment is not supported. + + + Environment name needs to be specified. + + + Environment needs to be specified. + + + The environment name '{0}' is not found. + + + File path is not valid. + + + Must specify a non-null subscription name. + + + The default subscription is being removed. Use Select-AzureSubscription -Default <subscriptionName> to select a new default subscription. + + + Removing public environment is not supported. + + + The subscription id {0} doesn't exist. + + + Subscription name needs to be specified. + + + The subscription name {0} doesn't exist. + + + Subscription needs to be specified. + + + User name is not valid. + + + User name needs to be specified. + + + "There is no current context, please log in using Connect-AzAccount." + + + No subscriptions are associated with the logged in account in Azure Service Management (RDFE). This means that the logged in user is not an administrator or co-administrator for any account.\r\nDid you mean to execute Connect-AzAccount? + + + No certificate was found in the certificate store with thumbprint {0} + + + Illegal characters in path. + + + Invalid certificate format. Publish settings may be corrupted. Use Get-AzurePublishSettingsFile to download updated settings + + + "{0}" is an invalid DNS name for {1} + + + The provided file in {0} must be have {1} extension + + + {0} is invalid or empty + + + Please connect to internet before executing this cmdlet + + + Path {0} doesn't exist. + + + Path for {0} doesn't exist in {1}. + + + &whr={0} + + + The provided service name {0} already exists, please pick another name + + + Unable to update mismatching Json structured: {0} {1}. + + + (x86) + + + Azure PowerShell collects usage data in order to improve your experience. +The data is anonymous and does not include commandline argument values. +The data is collected by Microsoft. + +Use the Disable-AzureDataCollection cmdlet to turn the feature Off. The cmdlet can be found in the Azure module. To disable data collection: PS > Disable-AzureDataCollection. +Use the Enable-AzureDataCollection cmdlet to turn the feature On. The cmdlet can be found in the Azure module. To enable data collection: PS > Enable-AzureDataCollection. + + + Execution failed because a background thread could not prompt the user. + + + Azure Long-Running Job + + + The cmdlet failed in background execution. The returned error was '{0}'. Please execute the cmdlet again. You may need to execute this cmdlet synchronously, by omitting the '-AsJob' parameter. + 0(string): exception message in background task + + + Please execute the cmdlet again and include the 'Force' parameter, if available, to avoid unnecessary prompts. + + + Please execute the cmdlet again and omit the 'Confirm' parameter when using the 'AsJob' parameter. + + + Please increase the user $ConfirmPreference setting, or include turn off confirmation using '-Confirm:$false' when using the 'AsJob' parameter and execute the cmdet again. + + + Please execute the cmdlet again and omit the 'WhatIf' parameter when using the 'AsJob' parameter. + + + [AzureLongRunningJob]: Starting cmdlet execution, setting for cmdlet confirmation required: '{0}' + 0(bool): whether cmdlet confirmation is required + + + [AzureLongRunningJob]: Blocking job for ShouldMethod '{0}' + 0(string): method type + + + [AzureLongRunningJob]: Completing cmdlet execution in RunJob + + + [AzureLongRunningJob]: State change from '{0}' to '{1}' because '{2}' + 0(string): last state, 1(string): new state, 2(string): state change reason + + + [AzureLongRunningJob]: Unblocking job due to stoppage or failure + + + [AzureLongRunningJob]: Unblocking job that was previously blocked. + + + [AzureLongRunningJob]: Error in cmdlet execution + + + [AzureLongRunningJob]: Removing state changed event handler, exception '{0}' + 0(string): exception message + + + [AzureLongRunningJob]: ShouldMethod '{0}' unblocked. + 0(string): methodType + + + +- The parameter : '{0}' is changing. + + + +- The parameter : '{0}' is becoming mandatory. + + + +- The parameter : '{0}' is being replaced by parameter : '{1}'. + + + +- The parameter : '{0}' is being replaced by mandatory parameter : '{1}'. + + + +- Change description : {0} + + + The cmdlet is being deprecated. There will be no replacement for it. + + + The cmdlet parameter set is being deprecated. There will be no replacement for it. + + + The cmdlet '{0}' is replacing this cmdlet. + + + +- The output type is changing from the existing type :'{0}' to the new type :'{1}' + + + +- The output type '{0}' is changing + + + +- The following properties are being added to the output type : + + + +- The following properties in the output type are being deprecated : + + + {0} + + + +- Cmdlet : '{0}' + - {1} + + + Upcoming breaking changes in the cmdlet '{0}' : + + + +- This change will take effect on '{0}' + + + +- The change is expected to take effect from the version : '{0}' + + + ```powershell +# Old +{0} + +# New +{1} +``` + + + + +Cmdlet invocation changes : + Old Way : {0} + New Way : {1} + + + +The output type '{0}' is being deprecated without a replacement. + + + +The type of the parameter is changing from '{0}' to '{1}'. + + + +Note : Go to {0} for steps to suppress this breaking change warning, and other information on breaking changes in Azure PowerShell. + + + This cmdlet is in preview. The functionality may not be available in the selected subscription. + + \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/runtime/Response.cs b/swaggerci/eventgrid/generated/runtime/Response.cs new file mode 100644 index 000000000000..31ca428a7fd0 --- /dev/null +++ b/swaggerci/eventgrid/generated/runtime/Response.cs @@ -0,0 +1,27 @@ +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime +{ + using System; + using System.Threading.Tasks; + public class Response : EventData + { + public Response() : base() + { + } + } + + public class Response : Response + { + private Func> _resultDelegate; + private Task _resultValue; + + public Response(T value) : base() => _resultValue = Task.FromResult(value); + public Response(Func value) : base() => _resultDelegate = () => Task.FromResult(value()); + public Response(Func> value) : base() => _resultDelegate = value; + public Task Result => _resultValue ?? (_resultValue = this._resultDelegate()); + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/runtime/Serialization/JsonSerializer.cs b/swaggerci/eventgrid/generated/runtime/Serialization/JsonSerializer.cs new file mode 100644 index 000000000000..0d01873189fc --- /dev/null +++ b/swaggerci/eventgrid/generated/runtime/Serialization/JsonSerializer.cs @@ -0,0 +1,350 @@ +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ +using System; +using System.Collections; +using System.Collections.Generic; + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json +{ + internal class JsonSerializer + { + private int depth = 0; + + private SerializationOptions options = new SerializationOptions(); + + #region Deserialization + + internal T Deseralize(JsonObject json) + where T : new() + { + var contract = JsonModelCache.Get(typeof(T)); + + return (T)DeserializeObject(contract, json); + } + + internal object DeserializeObject(JsonModel contract, JsonObject json) + { + var instance = Activator.CreateInstance(contract.Type); + + depth++; + + // Ensure we don't recurse forever + if (depth > 5) throw new Exception("Depth greater than 5"); + + foreach (var field in json) + { + var member = contract[field.Key]; + + if (member != null) + { + var value = DeserializeValue(member, field.Value); + + member.SetValue(instance, value); + } + } + + depth--; + + return instance; + } + + private object DeserializeValue(JsonMember member, JsonNode value) + { + if (value.Type == JsonType.Null) return null; + + var type = member.Type; + + if (member.IsStringLike && value.Type != JsonType.String) + { + // Take the long path... + return DeserializeObject(JsonModelCache.Get(type), (JsonObject)value); + } + else if (member.Converter != null) + { + return member.Converter.FromJson(value); + } + else if (type.IsArray) + { + return DeserializeArray(type, (JsonArray)value); + } + else if (member.IsList) + { + return DeserializeList(type, (JsonArray)value); + } + else + { + var contract = JsonModelCache.Get(type); + + return DeserializeObject(contract, (JsonObject)value); + } + } + + private object DeserializeValue(Type type, JsonNode value) + { + if (type == null) throw new ArgumentNullException(nameof(type)); + + if (value.Type == JsonType.Null) return null; + + var typeDetails = TypeDetails.Get(type); + + if (typeDetails.JsonConverter != null) + { + return typeDetails.JsonConverter.FromJson(value); + } + else if (typeDetails.IsEnum) + { + return Enum.Parse(type, value.ToString(), ignoreCase: true); + } + else if (type.IsArray) + { + return DeserializeArray(type, (JsonArray)value); + } + else if (typeDetails.IsList) + { + return DeserializeList(type, (JsonArray)value); + } + else + { + var contract = JsonModelCache.Get(type); + + return DeserializeObject(contract, (JsonObject)value); + } + } + + internal Array DeserializeArray(Type type, JsonArray elements) + { + var elementType = type.GetElementType(); + + var elementTypeDetails = TypeDetails.Get(elementType); + + var array = Array.CreateInstance(elementType, elements.Count); + + int i = 0; + + if (elementTypeDetails.JsonConverter != null) + { + foreach (var value in elements) + { + array.SetValue(elementTypeDetails.JsonConverter.FromJson(value), i); + + i++; + } + } + else + { + foreach (var value in elements) + { + array.SetValue(DeserializeValue(elementType, value), i); + + i++; + } + } + + return array; + } + + internal IList DeserializeList(Type type, JsonArray jsonArray) + { + // TODO: Handle non-generic types + if (!type.IsGenericType) + throw new ArgumentException("Must be a generic type", nameof(type)); + + var elementType = type.GetGenericArguments()[0]; + + IList list; + + if (type.IsInterface) + { + // Create a concrete generic list + list = (IList)Activator.CreateInstance(typeof(List<>).MakeGenericType(elementType)); + } + else + { + list = (IList)Activator.CreateInstance(type); + } + + foreach (var value in jsonArray) + { + list.Add(DeserializeValue(elementType, value)); + } + + return list; + } + + #endregion + + #region Serialization + + internal JsonNode Serialize(object instance) => + Serialize(instance, SerializationOptions.Default); + + internal JsonNode Serialize(object instance, string[] include) => + Serialize(instance, new SerializationOptions { Include = include }); + + internal JsonNode Serialize(object instance, SerializationOptions options) + { + this.options = options; + + if (instance == null) + { + return XNull.Instance; + } + + return ReadValue(instance.GetType(), instance); + } + + #region Readers + + internal JsonArray ReadArray(IEnumerable collection) + { + var array = new XNodeArray(); + + foreach (var item in collection) + { + array.Add(ReadValue(item.GetType(), item)); + } + + return array; + } + + internal IEnumerable> ReadProperties(object instance) + { + var contract = JsonModelCache.Get(instance.GetType()); + + foreach (var member in contract.Members) + { + string name = member.Name; + + if (options.PropertyNameTransformer != null) + { + name = options.PropertyNameTransformer.Invoke(name); + } + + // Skip the field if it's not included + if ((depth == 1 && !options.IsIncluded(name))) + { + continue; + } + + var value = member.GetValue(instance); + + if (!member.EmitDefaultValue && (value == null || (member.IsList && ((IList)value).Count == 0) || value.Equals(member.DefaultValue))) + { + continue; + } + else if (options.IgnoreNullValues && value == null) // Ignore null values + { + continue; + } + + // Transform the value if there is one + if (options.Transformations != null) + { + var transform = options.GetTransformation(name); + + if (transform != null) + { + value = transform.Transformer(value); + } + } + + yield return new KeyValuePair(name, ReadValue(member.TypeDetails, value)); + } + } + + private JsonObject ReadObject(object instance) + { + depth++; + + // TODO: Guard against a self referencing graph + if (depth > options.MaxDepth) + { + depth--; + + return new JsonObject(); + } + + var node = new JsonObject(ReadProperties(instance)); + + depth--; + + return node; + } + + private JsonNode ReadValue(Type type, object value) + { + if (value == null) + { + return XNull.Instance; + } + + var member = TypeDetails.Get(type); + + return ReadValue(member, value); + } + + private JsonNode ReadValue(TypeDetails type, object value) + { + if (value == null) + { + return XNull.Instance; + } + + if (type.JsonConverter != null) + { + return type.JsonConverter.ToJson(value); + } + else if (type.IsArray) + { + switch (Type.GetTypeCode(type.ElementType)) + { + case TypeCode.String: return CreateArray((string[])value); + case TypeCode.UInt16: return CreateArray((ushort[])value); + case TypeCode.UInt32: return CreateArray((uint[])value); + case TypeCode.UInt64: return CreateArray((ulong[])value); + case TypeCode.Int16: return CreateArray((short[])value); + case TypeCode.Int32: return CreateArray((int[])value); + case TypeCode.Int64: return CreateArray((long[])value); + case TypeCode.Single: return CreateArray((float[])value); + case TypeCode.Double: return CreateArray((double[])value); + default: return ReadArray((IEnumerable)value); + } + } + else if (value is IEnumerable) + { + if (type.IsList && type.ElementType != null) + { + switch (Type.GetTypeCode(type.ElementType)) + { + case TypeCode.String: return CreateList(value); + case TypeCode.UInt16: return CreateList(value); + case TypeCode.UInt32: return CreateList(value); + case TypeCode.UInt64: return CreateList(value); + case TypeCode.Int16: return CreateList(value); + case TypeCode.Int32: return CreateList(value); + case TypeCode.Int64: return CreateList(value); + case TypeCode.Single: return CreateList(value); + case TypeCode.Double: return CreateList(value); + } + } + + return ReadArray((IEnumerable)value); + } + else + { + // Complex object + return ReadObject(value); + } + } + + private XList CreateList(object value) => new XList((IList)value); + + private XImmutableArray CreateArray(T[] array) => new XImmutableArray(array); + + #endregion + + #endregion + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/runtime/Serialization/PropertyTransformation.cs b/swaggerci/eventgrid/generated/runtime/Serialization/PropertyTransformation.cs new file mode 100644 index 000000000000..949a78665758 --- /dev/null +++ b/swaggerci/eventgrid/generated/runtime/Serialization/PropertyTransformation.cs @@ -0,0 +1,21 @@ +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ +using System; + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json +{ + internal class PropertyTransformation + { + internal PropertyTransformation(string name, Func transformer) + { + Name = name ?? throw new ArgumentNullException(nameof(name)); + Transformer = transformer ?? throw new ArgumentNullException(nameof(transformer)); + } + + internal string Name { get; } + + internal Func Transformer { get; } + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/runtime/Serialization/SerializationOptions.cs b/swaggerci/eventgrid/generated/runtime/Serialization/SerializationOptions.cs new file mode 100644 index 000000000000..a4fb8f363d12 --- /dev/null +++ b/swaggerci/eventgrid/generated/runtime/Serialization/SerializationOptions.cs @@ -0,0 +1,65 @@ +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ +using System; +using System.Linq; + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json +{ + internal class SerializationOptions + { + internal static readonly SerializationOptions Default = new SerializationOptions(); + + internal SerializationOptions() { } + + internal SerializationOptions( + string[] include = null, + bool ingoreNullValues = false) + { + Include = include; + IgnoreNullValues = ingoreNullValues; + } + + internal string[] Include { get; set; } + + internal string[] Exclude { get; set; } + + internal bool IgnoreNullValues { get; set; } + + internal PropertyTransformation[] Transformations { get; set; } + + internal Func PropertyNameTransformer { get; set; } + + internal int MaxDepth { get; set; } = 5; + + internal bool IsIncluded(string name) + { + if (Exclude != null) + { + return !Exclude.Any(exclude => exclude.Equals(name, StringComparison.OrdinalIgnoreCase)); + } + else if (Include != null) + { + return Include.Any(exclude => exclude.Equals(name, StringComparison.OrdinalIgnoreCase)); + } + + return true; + } + + internal PropertyTransformation GetTransformation(string propertyName) + { + if (Transformations == null) return null; + + foreach (var t in Transformations) + { + if (t.Name.Equals(propertyName, StringComparison.OrdinalIgnoreCase)) + { + return t; + } + } + + return null; + } + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/runtime/SerializationMode.cs b/swaggerci/eventgrid/generated/runtime/SerializationMode.cs new file mode 100644 index 000000000000..c153489abeaf --- /dev/null +++ b/swaggerci/eventgrid/generated/runtime/SerializationMode.cs @@ -0,0 +1,16 @@ +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime +{ + [System.Flags] + public enum SerializationMode + { + None = 0, + IncludeHeaders = 1 << 0, + IncludeReadOnly = 1 << 1, + + IncludeAll = IncludeHeaders | IncludeReadOnly + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/runtime/TypeConverterExtensions.cs b/swaggerci/eventgrid/generated/runtime/TypeConverterExtensions.cs new file mode 100644 index 000000000000..0e86bee20932 --- /dev/null +++ b/swaggerci/eventgrid/generated/runtime/TypeConverterExtensions.cs @@ -0,0 +1,211 @@ +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ +using System.IO; +using System.Linq; +using System.Xml; +using System.Xml.Serialization; + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.PowerShell +{ + internal static class TypeConverterExtensions + { + internal static T[] SelectToArray(object source, System.Func converter) + { + // null begets null + if (source == null) + { + return null; + } + + // single values and strings are just encapsulated in the array. + if (source is string || !(source is System.Collections.IEnumerable)) + { + try + { + return new T[] { (T)converter(source) }; + } +#if DEBUG + catch (System.Exception E) + { + System.Console.Error.WriteLine($"{E.GetType().Name}/{E.Message}/{E.StackTrace}"); + } +#else + catch + { + // silent conversion fail + } +#endif + return new T[0]; // empty result if couldn't convert. + } + + var result = new System.Collections.Generic.List(); + foreach (var each in (System.Collections.IEnumerable)source) + { + try + { + result.Add((T)converter(each)); + } +#if DEBUG + catch (System.Exception E) + { + System.Console.Error.WriteLine($"{E.GetType().Name}/{E.Message}/{E.StackTrace}"); + } +#else + catch + { + // silent conversion fail + } +#endif + } + return result.ToArray(); + } + + internal static System.Collections.Generic.IEnumerable GetPropertyKeys(this System.Collections.Generic.IDictionary dictionary) + { + if (null != dictionary) + { + foreach (var each in dictionary.Keys) + { + yield return each; + } + } + } + internal static System.Collections.Generic.IEnumerable GetPropertyKeys(this System.Collections.IDictionary dictionary) + { + if (null != dictionary) + { + foreach (var each in dictionary.Keys) + { + yield return each; + } + } + } + internal static System.Collections.Generic.IEnumerable GetPropertyKeys(this System.Management.Automation.PSObject instance) + { + if (null != instance) + { + foreach (var each in instance.Properties) + { + yield return each; + } + } + } + + internal static System.Collections.Generic.IEnumerable> GetFilteredProperties(this System.Collections.Generic.IDictionary instance, global::System.Collections.Generic.HashSet exclusions = null, global::System.Collections.Generic.HashSet inclusions = null) + { + return (null == instance || instance.Count == 0) ? + Enumerable.Empty>() : + instance.Keys + .Where(key => + !(true == exclusions?.Contains(key?.ToString())) + && (false != inclusions?.Contains(key?.ToString()))) + .Select(key => new System.Collections.Generic.KeyValuePair(key, instance[key])); + } + + internal static System.Collections.Generic.IEnumerable> GetFilteredProperties(this System.Collections.IDictionary instance, global::System.Collections.Generic.HashSet exclusions = null, global::System.Collections.Generic.HashSet inclusions = null) + { + return (null == instance || instance.Count == 0) ? + Enumerable.Empty>() : + instance.Keys.OfType() + .Where(key => + !(true == exclusions?.Contains(key?.ToString())) + && (false != inclusions?.Contains(key?.ToString()))) + .Select(key => new System.Collections.Generic.KeyValuePair(key, instance[key])); + } + + internal static System.Collections.Generic.IEnumerable> GetFilteredProperties(this System.Management.Automation.PSObject instance, global::System.Collections.Generic.HashSet exclusions = null, global::System.Collections.Generic.HashSet inclusions = null) + { + // new global::System.Collections.Generic.HashSet(System.StringComparer.InvariantCultureIgnoreCase) + return (null == instance || !instance.Properties.Any()) ? + Enumerable.Empty>() : + instance.Properties + .Where(property => + !(true == exclusions?.Contains(property.Name)) + && (false != inclusions?.Contains(property.Name))) + .Select(property => new System.Collections.Generic.KeyValuePair(property.Name, property.Value)); + } + + + internal static T GetValueForProperty(this System.Collections.Generic.IDictionary dictionary, string propertyName, T defaultValue, System.Func converter) + { + try + { + var key = System.Linq.Enumerable.FirstOrDefault(dictionary.Keys, each => System.String.Equals(each.ToString(), propertyName, System.StringComparison.CurrentCultureIgnoreCase)); + return key == null ? defaultValue : (T)converter(dictionary[key]); + } +#if DEBUG + catch (System.Exception E) + { + System.Console.Error.WriteLine($"{E.GetType().Name}/{E.Message}/{E.StackTrace}"); + } +#else + catch + { + } +#endif + return defaultValue; + } + internal static T GetValueForProperty(this System.Collections.IDictionary dictionary, string propertyName, T defaultValue, System.Func converter) + { + try + { + var key = System.Linq.Enumerable.FirstOrDefault(dictionary.Keys.OfType(), each => System.String.Equals(each.ToString(), propertyName, System.StringComparison.CurrentCultureIgnoreCase)); + return key == null ? defaultValue : (T)converter(dictionary[key]); + } +#if DEBUG + catch (System.Exception E) + { + System.Console.Error.WriteLine($"{E.GetType().Name}/{E.Message}/{E.StackTrace}"); + } +#else + catch + { + } +#endif + return defaultValue; + } + + internal static T GetValueForProperty(this System.Management.Automation.PSObject psObject, string propertyName, T defaultValue, System.Func converter) + { + try + { + var property = System.Linq.Enumerable.FirstOrDefault(psObject.Properties, each => System.String.Equals(each.Name.ToString(), propertyName, System.StringComparison.CurrentCultureIgnoreCase)); + return property == null ? defaultValue : (T)converter(property.Value); + } +#if DEBUG + catch (System.Exception E) + { + System.Console.Error.WriteLine($"{E.GetType().Name}/{E.Message}/{E.StackTrace}"); + } +#else + catch + { + } +#endif + return defaultValue; + } + + internal static bool Contains(this System.Management.Automation.PSObject psObject, string propertyName) + { + bool result = false; + try + { + var property = System.Linq.Enumerable.FirstOrDefault(psObject.Properties, each => System.String.Equals(each.Name.ToString(), propertyName, System.StringComparison.CurrentCultureIgnoreCase)); + result = property == null ? false : true; + } +#if DEBUG + catch (System.Exception E) + { + System.Console.Error.WriteLine($"{E.GetType().Name}/{E.Message}/{E.StackTrace}"); + } +#else + catch + { + } +#endif + return result; + } + } +} diff --git a/swaggerci/eventgrid/generated/runtime/UndeclaredResponseException.cs b/swaggerci/eventgrid/generated/runtime/UndeclaredResponseException.cs new file mode 100644 index 000000000000..7197390115cb --- /dev/null +++ b/swaggerci/eventgrid/generated/runtime/UndeclaredResponseException.cs @@ -0,0 +1,112 @@ +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime +{ + using System; + using System.Net.Http; + using System.Net.Http.Headers; + using static Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Extensions; + + public class RestException : Exception, IDisposable + { + public System.Net.HttpStatusCode StatusCode { get; set; } + public string Code { get; protected set; } + protected string message; + public HttpRequestMessage RequestMessage { get; protected set; } + public HttpResponseHeaders ResponseHeaders { get; protected set; } + + public string ResponseBody { get; protected set; } + public string ClientRequestId { get; protected set; } + public string RequestId { get; protected set; } + + public override string Message => message; + public string Action { get; protected set; } + + public RestException(System.Net.Http.HttpResponseMessage response) + { + StatusCode = response.StatusCode; + //CloneWithContent will not work here since the content is disposed after sendAsync + //Besides, it seems there is no need for the request content cloned here. + RequestMessage = response.RequestMessage.Clone(); + ResponseBody = response.Content.ReadAsStringAsync().Result; + ResponseHeaders = response.Headers; + + RequestId = response.GetFirstHeader("x-ms-request-id"); + ClientRequestId = response.GetFirstHeader("x-ms-client-request-id"); + + try + { + // try to parse the body as JSON, and see if a code and message are in there. + var json = Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonNode.Parse(ResponseBody) as Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json.JsonObject; + + // error message could be in properties.statusMessage + { message = If(json?.Property("properties"), out var p) + && If(p?.PropertyT("statusMessage"), out var sm) + ? (string)sm : (string)Message; } + + // see if there is an error block in the body + json = json?.Property("error") ?? json; + + { Code = If(json?.PropertyT("code"), out var c) ? (string)c : (string)StatusCode.ToString(); } + { message = If(json?.PropertyT("message"), out var m) ? (string)m : (string)Message; } + { Action = If(json?.PropertyT("action"), out var a) ? (string)a : (string)Action; } + } +#if DEBUG + catch (System.Exception E) + { + System.Console.Error.WriteLine($"{E.GetType().Name}/{E.Message}/{E.StackTrace}"); + } +#else + catch + { + // couldn't get the code/message from the body response. + // In this case, we will assume the response is the expected error message + if(!string.IsNullOrEmpty(ResponseBody)) { + message = ResponseBody; + } + } +#endif + if (string.IsNullOrEmpty(message)) + { + if (StatusCode >= System.Net.HttpStatusCode.BadRequest && StatusCode < System.Net.HttpStatusCode.InternalServerError) + { + message = $"The server responded with a Request Error, Status: {StatusCode}"; + } + else if (StatusCode >= System.Net.HttpStatusCode.InternalServerError) + { + message = $"The server responded with a Server Error, Status: {StatusCode}"; + } + else + { + message = $"The server responded with an unrecognized response, Status: {StatusCode}"; + } + } + } + + public void Dispose() + { + ((IDisposable)RequestMessage).Dispose(); + } + } + + public class RestException : RestException + { + public T Error { get; protected set; } + public RestException(System.Net.Http.HttpResponseMessage response, T error) : base(response) + { + Error = error; + } + } + + + public class UndeclaredResponseException : RestException + { + public UndeclaredResponseException(System.Net.Http.HttpResponseMessage response) : base(response) + { + + } + } +} \ No newline at end of file diff --git a/swaggerci/eventgrid/generated/runtime/Writers/JsonWriter.cs b/swaggerci/eventgrid/generated/runtime/Writers/JsonWriter.cs new file mode 100644 index 000000000000..38a9e584036a --- /dev/null +++ b/swaggerci/eventgrid/generated/runtime/Writers/JsonWriter.cs @@ -0,0 +1,223 @@ +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ +using System; +using System.Collections.Generic; +using System.IO; +using System.Web; + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.Json +{ + internal class JsonWriter + { + const string indentation = " "; // 2 spaces + + private readonly bool pretty; + private readonly TextWriter writer; + + protected int currentLevel = 0; + + internal JsonWriter(TextWriter writer, bool pretty = true) + { + this.writer = writer ?? throw new ArgumentNullException(nameof(writer)); + this.pretty = pretty; + } + + internal void WriteNode(JsonNode node) + { + switch (node.Type) + { + case JsonType.Array: WriteArray((IEnumerable)node); break; + case JsonType.Object: WriteObject((JsonObject)node); break; + + // Primitives + case JsonType.Binary: WriteBinary((XBinary)node); break; + case JsonType.Boolean: WriteBoolean((bool)node); break; + case JsonType.Date: WriteDate((JsonDate)node); break; + case JsonType.Null: WriteNull(); break; + case JsonType.Number: WriteNumber((JsonNumber)node); break; + case JsonType.String: WriteString(node); break; + } + } + + internal void WriteArray(IEnumerable array) + { + currentLevel++; + + writer.Write('['); + + bool doIndentation = false; + + if (pretty) + { + foreach (var node in array) + { + if (node.Type == JsonType.Object || node.Type == JsonType.Array) + { + doIndentation = true; + + break; + } + } + } + + bool isFirst = true; + + foreach (JsonNode node in array) + { + if (!isFirst) writer.Write(','); + + if (doIndentation) + { + WriteIndent(); + } + else if (pretty) + { + writer.Write(' '); + } + + WriteNode(node); + + isFirst = false; + } + + currentLevel--; + + if (doIndentation) + { + WriteIndent(); + } + else if (pretty) + { + writer.Write(' '); + } + + writer.Write(']'); + } + + internal void WriteIndent() + { + if (pretty) + { + writer.Write(Environment.NewLine); + + for (int level = 0; level < currentLevel; level++) + { + writer.Write(indentation); + } + } + } + + internal void WriteObject(JsonObject obj) + { + currentLevel++; + + writer.Write('{'); + + bool isFirst = true; + + foreach (var field in obj) + { + if (!isFirst) writer.Write(','); + + WriteIndent(); + + WriteFieldName(field.Key); + + writer.Write(':'); + + if (pretty) + { + writer.Write(' '); + } + + // Write the field value + WriteNode(field.Value); + + isFirst = false; + } + + currentLevel--; + + WriteIndent(); + + writer.Write('}'); + } + + internal void WriteFieldName(string fieldName) + { + writer.Write('"'); + writer.Write(HttpUtility.JavaScriptStringEncode(fieldName)); + writer.Write('"'); + } + + #region Primitives + + internal void WriteBinary(XBinary value) + { + writer.Write('"'); + writer.Write(value.ToString()); + writer.Write('"'); + } + + internal void WriteBoolean(bool value) + { + writer.Write(value ? "true" : "false"); + } + + internal void WriteDate(JsonDate date) + { + if (date.ToDateTime().Year == 1) + { + WriteNull(); + } + else + { + writer.Write('"'); + writer.Write(date.ToIsoString()); + writer.Write('"'); + } + } + + internal void WriteNull() + { + writer.Write("null"); + } + + internal void WriteNumber(JsonNumber number) + { + if (number.Overflows) + { + writer.Write('"'); + writer.Write(number.Value); + writer.Write('"'); + } + else + { + writer.Write(number.Value); + } + } + + internal void WriteString(string text) + { + if (text == null) + { + WriteNull(); + } + else + { + writer.Write('"'); + + writer.Write(HttpUtility.JavaScriptStringEncode(text)); + + writer.Write('"'); + } + } + + #endregion + } +} + + +// TODO: Replace with System.Text.Json when available diff --git a/swaggerci/eventgrid/generated/runtime/delegates.cs b/swaggerci/eventgrid/generated/runtime/delegates.cs new file mode 100644 index 000000000000..a3816213034d --- /dev/null +++ b/swaggerci/eventgrid/generated/runtime/delegates.cs @@ -0,0 +1,23 @@ +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ + +namespace Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime +{ + using System; + using System.Collections; + using System.Collections.Generic; + using System.Net.Http; + using System.Threading; + using System.Threading.Tasks; + using GetEventData=System.Func; + + public delegate Task SendAsync(HttpRequestMessage request, IEventListener callback); + public delegate Task SendAsyncStep(HttpRequestMessage request, IEventListener callback, ISendAsync next); + public delegate Task SignalEvent(string id, CancellationToken token, GetEventData getEventData); + public delegate Task Event(EventData message); + public delegate void SynchEvent(EventData message); + public delegate Task OnResponse(Response message); + public delegate Task OnResponse(Response message); +} \ No newline at end of file diff --git a/swaggerci/eventgrid/how-to.md b/swaggerci/eventgrid/how-to.md new file mode 100644 index 000000000000..4c1c75d4ed96 --- /dev/null +++ b/swaggerci/eventgrid/how-to.md @@ -0,0 +1,58 @@ +# How-To +This document describes how to develop for `Az.EventGrid`. + +## Building `Az.EventGrid` +To build, run the `build-module.ps1` at the root of the module directory. This will generate the proxy script cmdlets that are the cmdlets being exported by this module. After the build completes, the proxy script cmdlets will be output to the `exports` folder. To read more about the proxy script cmdlets, look at the [README.md](exports/README.md) in the `exports` folder. + +## Creating custom cmdlets +To add cmdlets that were not generated by the REST specification, use the `custom` folder. This folder allows you to add handwritten `.ps1` and `.cs` files. Currently, we support using `.ps1` scripts as new cmdlets or as additional low-level variants (via `ParameterSet`), and `.cs` files as low-level (variants) cmdlets that the exported script cmdlets call. We do not support exporting any `.cs` (dll) cmdlets directly. To read more about custom cmdlets, look at the [README.md](custom/README.md) in the `custom` folder. + +## Generating documentation +To generate documentation, the process is now integrated into the `build-module.ps1` script. If you don't want to run this process as part of `build-module.ps1`, you can provide the `-NoDocs` switch. If you want to run documentation generation after the build process, you may still run the `generate-help.ps1` script. Overall, the process will look at the documentation comments in the generated and custom cmdlets and types, and create `.md` files into the `docs` folder. Additionally, this pulls in any examples from the `examples` folder and adds them to the generated help markdown documents. To read more about examples, look at the [README.md](examples/README.md) in the `examples` folder. To read more about documentation, look at the [README.md](docs/README.md) in the `docs` folder. + +## Testing `Az.EventGrid` +To test the cmdlets, we use [Pester](https://github.com/pester/Pester). Tests scripts (`.ps1`) should be added to the `test` folder. To execute the Pester tests, run the `test-module.ps1` script. This will run all tests in `playback` mode within the `test` folder. To read more about testing cmdlets, look at the [README.md](examples/README.md) in the `examples` folder. + +## Packing `Az.EventGrid` +To pack `Az.EventGrid` for distribution, run the `pack-module.ps1` script. This will take the contents of multiple directories and certain root-folder files to create a `.nupkg`. The structure of the `.nupkg` is created so it can be loaded part of a [PSRepository](https://docs.microsoft.com/powershell/module/powershellget/register-psrepository). Additionally, this package is in a format for distribution to the [PSGallery](https://www.powershellgallery.com/). For signing an Azure module, please contact the [Azure PowerShell](https://github.com/Azure/azure-powershell) team. + +## Module Script Details +There are multiple scripts created for performing different actions for developing `Az.EventGrid`. +- `build-module.ps1` + - Builds the module DLL (`./bin/Az.EventGrid.private.dll`), creates the exported cmdlets and documentation, generates custom cmdlet test stubs and exported cmdlet example stubs, and updates `./Az.EventGrid.psd1` with Azure profile information. + - **Parameters**: [`Switch` parameters] + - `-Run`: After building, creates an isolated PowerShell session and loads `Az.EventGrid`. + - `-Test`: After building, runs the `Pester` tests defined in the `test` folder. + - `-Docs`: After building, generates the Markdown documents for the modules into the `docs` folder. + - `-Pack`: After building, packages the module into a `.nupkg`. + - `-Code`: After building, opens a VSCode window with the module's directory and runs (see `-Run`) the module. + - `-Release`: Builds the module in `Release` configuration (as opposed to `Debug` configuration). + - `-NoDocs`: Supresses writing the documentation markdown files as part of the cmdlet exporting process. + - `-Debugger`: Used when attaching the debugger in Visual Studio to the PowerShell session, and running the build process without recompiling the DLL. This suppresses running the script as an isolated process. +- `run-module.ps1` + - Creates an isolated PowerShell session and loads `Az.EventGrid` into the session. + - Same as `-Run` in `build-module.ps1`. + - **Parameters**: [`Switch` parameters] + - `-Code`: Opens a VSCode window with the module's directory. + - Same as `-Code` in `build-module.ps1`. +- `generate-help.ps1` + - Generates the Markdown documents for the modules into the `docs` folder. + - Same as `-Docs` in `build-module.ps1`. +- `test-module.ps1` + - Runs the `Pester` tests defined in the `test` folder. + - Same as `-Test` in `build-module.ps1`. +- `pack-module.ps1` + - Packages the module into a `.nupkg` for distribution. + - Same as `-Pack` in `build-module.ps1`. +- `generate-help.ps1` + - Generates the Markdown documents for the modules into the `docs` folder. + - Same as `-Docs` in `build-module.ps1`. + - This process is now integrated into `build-module.ps1` automatically. To disable, use `-NoDocs` when running `build-module.ps1`. +- `export-surface.ps1` + - Generates Markdown documents for both the cmdlet surface and the model (class) surface of the module. + - These files are placed into the `resources` folder. + - Used for investigating the surface of your module. These are *not* documentation for distribution. +- `check-dependencies.ps1` + - Used in `run-module.ps1` and `test-module.ps1` to verify dependent modules are available to run those tasks. + - It will download local (within the module's directory structure) versions of those modules as needed. + - This script *does not* need to be ran by-hand. \ No newline at end of file diff --git a/swaggerci/eventgrid/internal/Az.EventGrid.internal.psm1 b/swaggerci/eventgrid/internal/Az.EventGrid.internal.psm1 new file mode 100644 index 000000000000..6bd338ddf46e --- /dev/null +++ b/swaggerci/eventgrid/internal/Az.EventGrid.internal.psm1 @@ -0,0 +1,38 @@ +# region Generated + # Load the private module dll + $null = Import-Module -PassThru -Name (Join-Path $PSScriptRoot '../bin/Az.EventGrid.private.dll') + + # Get the private module's instance + $instance = [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Module]::Instance + + # Export nothing to clear implicit exports + Export-ModuleMember + + # Export proxy cmdlet scripts + $exportsPath = $PSScriptRoot + $directories = Get-ChildItem -Directory -Path $exportsPath + $profileDirectory = $null + if($instance.ProfileName) { + if(($directories | ForEach-Object { $_.Name }) -contains $instance.ProfileName) { + $profileDirectory = $directories | Where-Object { $_.Name -eq $instance.ProfileName } + } else { + # Don't export anything if the profile doesn't exist for the module + $exportsPath = $null + Write-Warning "Selected Azure profile '$($instance.ProfileName)' does not exist for module '$($instance.Name)'. No cmdlets were loaded." + } + } elseif(($directories | Measure-Object).Count -gt 0) { + # Load the last folder if no profile is selected + $profileDirectory = $directories | Select-Object -Last 1 + } + + if($profileDirectory) { + Write-Information "Loaded Azure profile '$($profileDirectory.Name)' for module '$($instance.Name)'" + $exportsPath = $profileDirectory.FullName + } + + if($exportsPath) { + Get-ChildItem -Path $exportsPath -Recurse -Include '*.ps1' -File | ForEach-Object { . $_.FullName } + $cmdletNames = Get-ScriptCmdlet -ScriptFolder $exportsPath + Export-ModuleMember -Function $cmdletNames -Alias (Get-ScriptCmdlet -ScriptFolder $exportsPath -AsAlias) + } +# endregion diff --git a/swaggerci/eventgrid/internal/Get-AzEventGridOperation.ps1 b/swaggerci/eventgrid/internal/Get-AzEventGridOperation.ps1 new file mode 100644 index 000000000000..14c75eb2e729 --- /dev/null +++ b/swaggerci/eventgrid/internal/Get-AzEventGridOperation.ps1 @@ -0,0 +1,122 @@ + +# ---------------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for license information. +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is regenerated. +# ---------------------------------------------------------------------------------- + +<# +.Synopsis +List the available operations supported by the Microsoft.EventGrid resource provider. +.Description +List the available operations supported by the Microsoft.EventGrid resource provider. +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Outputs +Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IOperation +.Link +https://docs.microsoft.com/en-us/powershell/module/az.eventgrid/get-azeventgridoperation +#> +function Get-AzEventGridOperation { +[OutputType([Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IOperation])] +[CmdletBinding(DefaultParameterSetName='List', PositionalBinding=$false)] +param( + [Parameter()] + [Alias('AzureRMContext', 'AzureCredential')] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Returns true when the command succeeds + ${PassThru}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use 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.EventGrid.private\Get-AzEventGridOperation_List'; + } + + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} diff --git a/swaggerci/eventgrid/internal/ProxyCmdletDefinitions.ps1 b/swaggerci/eventgrid/internal/ProxyCmdletDefinitions.ps1 new file mode 100644 index 000000000000..14c75eb2e729 --- /dev/null +++ b/swaggerci/eventgrid/internal/ProxyCmdletDefinitions.ps1 @@ -0,0 +1,122 @@ + +# ---------------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for license information. +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is regenerated. +# ---------------------------------------------------------------------------------- + +<# +.Synopsis +List the available operations supported by the Microsoft.EventGrid resource provider. +.Description +List the available operations supported by the Microsoft.EventGrid resource provider. +.Example +{{ Add code here }} +.Example +{{ Add code here }} + +.Outputs +Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IOperation +.Link +https://docs.microsoft.com/en-us/powershell/module/az.eventgrid/get-azeventgridoperation +#> +function Get-AzEventGridOperation { +[OutputType([Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Models.Api20211015Preview.IOperation])] +[CmdletBinding(DefaultParameterSetName='List', PositionalBinding=$false)] +param( + [Parameter()] + [Alias('AzureRMContext', 'AzureCredential')] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Azure')] + [System.Management.Automation.PSObject] + # The credentials, account, tenant, and subscription used for communication with Azure. + ${DefaultProfile}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Wait for .NET debugger to attach + ${Break}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be appended to the front of the pipeline + ${HttpPipelineAppend}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Runtime.SendAsyncStep[]] + # SendAsync Pipeline Steps to be prepended to the front of the pipeline + ${HttpPipelinePrepend}, + + [Parameter()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Returns true when the command succeeds + ${PassThru}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Uri] + # The URI for the proxy server to use + ${Proxy}, + + [Parameter(DontShow)] + [ValidateNotNull()] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.PSCredential] + # Credentials for a proxy server to use for the remote call + ${ProxyCredential}, + + [Parameter(DontShow)] + [Microsoft.Azure.PowerShell.Cmdlets.EventGrid.Category('Runtime')] + [System.Management.Automation.SwitchParameter] + # Use 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.EventGrid.private\Get-AzEventGridOperation_List'; + } + + $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet) + $scriptCmd = {& $wrappedCmd @PSBoundParameters} + $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin) + $steppablePipeline.Begin($PSCmdlet) + } catch { + + throw + } +} + +process { + try { + $steppablePipeline.Process($_) + } catch { + + throw + } + +} +end { + try { + $steppablePipeline.End() + + } catch { + + throw + } +} +} diff --git a/swaggerci/eventgrid/internal/README.md b/swaggerci/eventgrid/internal/README.md new file mode 100644 index 000000000000..b3d6b31a18a5 --- /dev/null +++ b/swaggerci/eventgrid/internal/README.md @@ -0,0 +1,14 @@ +# Internal +This directory contains a module to handle *internal only* cmdlets. Cmdlets that you **hide** in configuration are created here. For more information on hiding, see [cmdlet hiding](https://github.com/Azure/autorest.powershell/blob/main/docs/directives.md#cmdlet-hiding-exportation-suppression). The cmdlets in this directory are generated at **build-time**. Do not put any custom code, files, cmdlets, etc. into this directory. Please use `../custom` for all custom implementation. + +## Info +- Modifiable: no +- Generated: all +- Committed: no +- Packaged: yes + +## Details +The `Az.EventGrid.internal.psm1` file is generated to this folder. This module file handles the hidden cmdlets. These cmdlets will not be exported by `Az.EventGrid`. Instead, this sub-module is imported by the `../custom/Az.EventGrid.custom.psm1` module, allowing you to use hidden cmdlets in your custom, exposed cmdlets. To call these cmdlets in your custom scripts, simply use [module-qualified calls](https://docs.microsoft.com/powershell/module/microsoft.powershell.core/about/about_command_precedence?view=powershell-6#qualified-names). For example, `Az.EventGrid.internal\Get-Example` would call an internal cmdlet named `Get-Example`. + +## Purpose +This allows you to include REST specifications for services that you *do not wish to expose from your module*, but simply want to call within custom cmdlets. For example, if you want to make a custom cmdlet that uses `Storage` services, you could include a simplified `Storage` REST specification that has only the operations you need. When you run the generator and build this module, note the generated `Storage` cmdlets. Then, in your readme configuration, use [cmdlet hiding](https://github.com/Azure/autorest/blob/master/docs/powershell/options.md#cmdlet-hiding-exportation-suppression) on the `Storage` cmdlets and they will *only be exposed to the custom cmdlets* you want to write, and not be exported as part of `Az.EventGrid`. diff --git a/swaggerci/eventgrid/license.txt b/swaggerci/eventgrid/license.txt new file mode 100644 index 000000000000..b9f3180fb9af --- /dev/null +++ b/swaggerci/eventgrid/license.txt @@ -0,0 +1,227 @@ +MICROSOFT SOFTWARE LICENSE TERMS + +MICROSOFT AZURE POWERSHELL + +These license terms are an agreement between Microsoft Corporation (or based on where you live, one of its affiliates) and you. Please read them. They apply to the software named above, which includes the media on which you received it, if any. + +BY USING THE SOFTWARE, YOU ACCEPT THESE TERMS. IF YOU DO NOT ACCEPT THEM, DO NOT USE THE SOFTWARE. + + +-----------------START OF LICENSE-------------------------- + + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + +-------------------END OF LICENSE------------------------------------------ + + +----------------START OF THIRD PARTY NOTICE-------------------------------- + + +The software includes the AutoMapper library ("AutoMapper"). The MIT License set out below is provided for informational purposes only. It is not the license that governs any part of the software. + +Provided for Informational Purposes Only + +AutoMapper + +The MIT License (MIT) +Copyright (c) 2010 Jimmy Bogard + + +Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + + + + + + +*************** + +The software includes Newtonsoft.Json. The MIT License set out below is provided for informational purposes only. It is not the license that governs any part of the software. + +Newtonsoft.Json + +The MIT License (MIT) +Copyright (c) 2007 James Newton-King +Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: +The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +-------------END OF THIRD PARTY NOTICE---------------------------------------- + diff --git a/swaggerci/eventgrid/pack-module.ps1 b/swaggerci/eventgrid/pack-module.ps1 new file mode 100644 index 000000000000..8ed48957e579 --- /dev/null +++ b/swaggerci/eventgrid/pack-module.ps1 @@ -0,0 +1,9 @@ +# ---------------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for license information. +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is regenerated. +# ---------------------------------------------------------------------------------- +Write-Host -ForegroundColor Green 'Packing module...' +dotnet pack $PSScriptRoot --no-build /nologo +Write-Host -ForegroundColor Green '-------------Done-------------' \ No newline at end of file diff --git a/swaggerci/eventgrid/readme.md b/swaggerci/eventgrid/readme.md new file mode 100644 index 000000000000..68150ef64523 --- /dev/null +++ b/swaggerci/eventgrid/readme.md @@ -0,0 +1,10 @@ +### AutoRest Configuration +> see https://aka.ms/autorest + +``` yaml +require: + - $(this-folder)/../../tools/SwaggerCI/readme.azure.noprofile.md + - $(this-folder)/../../../azure-rest-api-specs/specification/eventgrid/resource-manager/readme.md +try-require: + - $(this-folder)/../../../azure-rest-api-specs/specification/eventgrid/resource-manager/readme.powershell.md +``` diff --git a/swaggerci/eventgrid/resources/README.md b/swaggerci/eventgrid/resources/README.md new file mode 100644 index 000000000000..736492341e3d --- /dev/null +++ b/swaggerci/eventgrid/resources/README.md @@ -0,0 +1,11 @@ +# Resources +This directory can contain any additional resources for module that are not required at runtime. This directory **does not** get packaged with the module. If you have assets for custom implementation, place them into the `../custom` folder. + +## Info +- Modifiable: yes +- Generated: no +- Committed: yes +- Packaged: no + +## Purpose +Use this folder to put anything you want to keep around as part of the repository for the module, but is not something that is required for the module. For example, development files, packaged builds, or additional information. This is only intended to be used in repositories where the module's output directory is cleaned, but tangential resources for the module want to remain intact. \ No newline at end of file diff --git a/swaggerci/eventgrid/run-module.ps1 b/swaggerci/eventgrid/run-module.ps1 new file mode 100644 index 000000000000..983a205f5688 --- /dev/null +++ b/swaggerci/eventgrid/run-module.ps1 @@ -0,0 +1,54 @@ +# ---------------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for license information. +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is regenerated. +# ---------------------------------------------------------------------------------- +param([switch]$Isolated, [switch]$Code) +$ErrorActionPreference = 'Stop' + +if(-not $Isolated) { + Write-Host -ForegroundColor Green 'Creating isolated process...' + $pwsh = [System.Diagnostics.Process]::GetCurrentProcess().Path + & "$pwsh" -NoExit -NoLogo -NoProfile -File $MyInvocation.MyCommand.Path @PSBoundParameters -Isolated + return +} + +$isAzure = $true +if($isAzure) { + . (Join-Path $PSScriptRoot 'check-dependencies.ps1') -Isolated -Accounts + # Load the latest version of Az.Accounts installed + Import-Module -Name Az.Accounts -RequiredVersion (Get-Module -Name Az.Accounts -ListAvailable | Sort-Object -Property Version -Descending)[0].Version +} + +$localModulesPath = Join-Path $PSScriptRoot 'generated/modules' +if(Test-Path -Path $localModulesPath) { + $env:PSModulePath = "$localModulesPath$([IO.Path]::PathSeparator)$env:PSModulePath" +} + +$modulePsd1 = Get-Item -Path (Join-Path $PSScriptRoot './Az.EventGrid.psd1') +$modulePath = $modulePsd1.FullName +$moduleName = $modulePsd1.BaseName + +function Prompt { + Write-Host -NoNewline -ForegroundColor Green "PS $(Get-Location)" + Write-Host -NoNewline -ForegroundColor Gray ' [' + Write-Host -NoNewline -ForegroundColor White -BackgroundColor DarkCyan $moduleName + ']> ' +} + +# where we would find the launch.json file +$vscodeDirectory = New-Item -ItemType Directory -Force -Path (Join-Path $PSScriptRoot '.vscode') +$launchJson = Join-Path $vscodeDirectory 'launch.json' + +# if there is a launch.json file, let's just assume -Code, and update the file +if(($Code) -or (test-Path $launchJson) ) { + $launchContent = '{ "version": "0.2.0", "configurations":[{ "name":"Attach to PowerShell", "type":"coreclr", "request":"attach", "processId":"' + ([System.Diagnostics.Process]::GetCurrentProcess().Id) + '", "justMyCode":false }] }' + Set-Content -Path $launchJson -Value $launchContent + if($Code) { + # only launch vscode if they say -code + code $PSScriptRoot + } +} + +Import-Module -Name $modulePath \ No newline at end of file diff --git a/swaggerci/eventgrid/test-module.ps1 b/swaggerci/eventgrid/test-module.ps1 new file mode 100644 index 000000000000..4517789949db --- /dev/null +++ b/swaggerci/eventgrid/test-module.ps1 @@ -0,0 +1,86 @@ +# ---------------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for license information. +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is regenerated. +# ---------------------------------------------------------------------------------- +param([switch]$Isolated, [switch]$Live, [switch]$Record, [switch]$Playback, [switch]$RegenerateSupportModule, [switch]$UsePreviousConfigForRecord, [string[]]$TestName) +$ErrorActionPreference = 'Stop' + +if(-not $Isolated) +{ + Write-Host -ForegroundColor Green 'Creating isolated process...' + if ($PSBoundParameters.ContainsKey("TestName")) { + $PSBoundParameters["TestName"] = $PSBoundParameters["TestName"] -join "," + } + $pwsh = [System.Diagnostics.Process]::GetCurrentProcess().Path + & "$pwsh" -NonInteractive -NoLogo -NoProfile -File $MyInvocation.MyCommand.Path @PSBoundParameters -Isolated + return +} + +# This is a workaround, since for string array parameter, pwsh -File will only take the first element +if ($PSBoundParameters.ContainsKey("TestName") -and ($TestName.count -eq 1) -and ($TestName[0].Contains(','))) { + $TestName = $TestName[0].Split(",") +} + +$ProgressPreference = 'SilentlyContinue' +$baseName = $PSScriptRoot.BaseName +$requireResourceModule = (($baseName -ne "Resources") -and ($Record.IsPresent -or $Live.IsPresent)) +. (Join-Path $PSScriptRoot 'check-dependencies.ps1') -Isolated -Accounts:$false -Pester -Resources:$requireResourceModule -RegenerateSupportModule:$RegenerateSupportModule +. ("$PSScriptRoot\test\utils.ps1") + +if ($requireResourceModule) +{ + # Load the latest Az.Accounts installed + Import-Module -Name Az.Accounts -RequiredVersion (Get-Module -Name Az.Accounts -ListAvailable | Sort-Object -Property Version -Descending)[0].Version + $resourceModulePSD = Get-Item -Path (Join-Path $HOME '.PSSharedModules\Resources\Az.Resources.TestSupport.psd1') + Import-Module -Name $resourceModulePSD.FullName +} + +$localModulesPath = Join-Path $PSScriptRoot 'generated/modules' +if(Test-Path -Path $localModulesPath) +{ + $env:PSModulePath = "$localModulesPath$([IO.Path]::PathSeparator)$env:PSModulePath" +} + +$modulePsd1 = Get-Item -Path (Join-Path $PSScriptRoot './Az.EventGrid.psd1') +$modulePath = $modulePsd1.FullName +$moduleName = $modulePsd1.BaseName + +Import-Module -Name Pester +Import-Module -Name $modulePath + +$TestMode = 'playback' +$ExcludeTag = @("LiveOnly") +if($Live) +{ + $TestMode = 'live' + $ExcludeTag = @() +} +if($Record) +{ + $TestMode = 'record' +} +try +{ + if ($TestMode -ne 'playback') + { + setupEnv + } + $testFolder = Join-Path $PSScriptRoot 'test' + if ($null -ne $TestName) + { + Invoke-Pester -Script @{ Path = $testFolder } -TestName $TestName -ExcludeTag $ExcludeTag -EnableExit -OutputFile (Join-Path $testFolder "$moduleName-TestResults.xml") + } else + { + Invoke-Pester -Script @{ Path = $testFolder } -ExcludeTag $ExcludeTag -EnableExit -OutputFile (Join-Path $testFolder "$moduleName-TestResults.xml") + } +} Finally +{ + if ($TestMode -ne 'playback') + { + cleanupEnv + } +} + +Write-Host -ForegroundColor Green '-------------Done-------------' \ No newline at end of file diff --git a/swaggerci/eventgrid/test/Get-AzEventGridChannel.Tests.ps1 b/swaggerci/eventgrid/test/Get-AzEventGridChannel.Tests.ps1 new file mode 100644 index 000000000000..f07b1dcd636e --- /dev/null +++ b/swaggerci/eventgrid/test/Get-AzEventGridChannel.Tests.ps1 @@ -0,0 +1,29 @@ +if(($null -eq $TestName) -or ($TestName -contains 'Get-AzEventGridChannel')) +{ + $loadEnvPath = Join-Path $PSScriptRoot 'loadEnv.ps1' + if (-Not (Test-Path -Path $loadEnvPath)) { + $loadEnvPath = Join-Path $PSScriptRoot '..\loadEnv.ps1' + } + . ($loadEnvPath) + $TestRecordingFile = Join-Path $PSScriptRoot 'Get-AzEventGridChannel.Recording.json' + $currentPath = $PSScriptRoot + while(-not $mockingPath) { + $mockingPath = Get-ChildItem -Path $currentPath -Recurse -Include 'HttpPipelineMocking.ps1' -File + $currentPath = Split-Path -Path $currentPath -Parent + } + . ($mockingPath | Select-Object -First 1).FullName +} + +Describe 'Get-AzEventGridChannel' { + It 'List' -skip { + { throw [System.NotImplementedException] } | Should -Not -Throw + } + + It 'Get' -skip { + { throw [System.NotImplementedException] } | Should -Not -Throw + } + + It 'GetViaIdentity' -skip { + { throw [System.NotImplementedException] } | Should -Not -Throw + } +} diff --git a/swaggerci/eventgrid/test/Get-AzEventGridChannelFullUrl.Tests.ps1 b/swaggerci/eventgrid/test/Get-AzEventGridChannelFullUrl.Tests.ps1 new file mode 100644 index 000000000000..7c703525472a --- /dev/null +++ b/swaggerci/eventgrid/test/Get-AzEventGridChannelFullUrl.Tests.ps1 @@ -0,0 +1,25 @@ +if(($null -eq $TestName) -or ($TestName -contains 'Get-AzEventGridChannelFullUrl')) +{ + $loadEnvPath = Join-Path $PSScriptRoot 'loadEnv.ps1' + if (-Not (Test-Path -Path $loadEnvPath)) { + $loadEnvPath = Join-Path $PSScriptRoot '..\loadEnv.ps1' + } + . ($loadEnvPath) + $TestRecordingFile = Join-Path $PSScriptRoot 'Get-AzEventGridChannelFullUrl.Recording.json' + $currentPath = $PSScriptRoot + while(-not $mockingPath) { + $mockingPath = Get-ChildItem -Path $currentPath -Recurse -Include 'HttpPipelineMocking.ps1' -File + $currentPath = Split-Path -Path $currentPath -Parent + } + . ($mockingPath | Select-Object -First 1).FullName +} + +Describe 'Get-AzEventGridChannelFullUrl' { + It 'Get' -skip { + { throw [System.NotImplementedException] } | Should -Not -Throw + } + + It 'GetViaIdentity' -skip { + { throw [System.NotImplementedException] } | Should -Not -Throw + } +} diff --git a/swaggerci/eventgrid/test/Get-AzEventGridDomain.Tests.ps1 b/swaggerci/eventgrid/test/Get-AzEventGridDomain.Tests.ps1 new file mode 100644 index 000000000000..7790d51aca8c --- /dev/null +++ b/swaggerci/eventgrid/test/Get-AzEventGridDomain.Tests.ps1 @@ -0,0 +1,33 @@ +if(($null -eq $TestName) -or ($TestName -contains 'Get-AzEventGridDomain')) +{ + $loadEnvPath = Join-Path $PSScriptRoot 'loadEnv.ps1' + if (-Not (Test-Path -Path $loadEnvPath)) { + $loadEnvPath = Join-Path $PSScriptRoot '..\loadEnv.ps1' + } + . ($loadEnvPath) + $TestRecordingFile = Join-Path $PSScriptRoot 'Get-AzEventGridDomain.Recording.json' + $currentPath = $PSScriptRoot + while(-not $mockingPath) { + $mockingPath = Get-ChildItem -Path $currentPath -Recurse -Include 'HttpPipelineMocking.ps1' -File + $currentPath = Split-Path -Path $currentPath -Parent + } + . ($mockingPath | Select-Object -First 1).FullName +} + +Describe 'Get-AzEventGridDomain' { + It 'List' -skip { + { throw [System.NotImplementedException] } | Should -Not -Throw + } + + It 'Get' -skip { + { throw [System.NotImplementedException] } | Should -Not -Throw + } + + It 'List1' -skip { + { throw [System.NotImplementedException] } | Should -Not -Throw + } + + It 'GetViaIdentity' -skip { + { throw [System.NotImplementedException] } | Should -Not -Throw + } +} diff --git a/swaggerci/eventgrid/test/Get-AzEventGridDomainEventSubscription.Tests.ps1 b/swaggerci/eventgrid/test/Get-AzEventGridDomainEventSubscription.Tests.ps1 new file mode 100644 index 000000000000..10d9f274c587 --- /dev/null +++ b/swaggerci/eventgrid/test/Get-AzEventGridDomainEventSubscription.Tests.ps1 @@ -0,0 +1,29 @@ +if(($null -eq $TestName) -or ($TestName -contains 'Get-AzEventGridDomainEventSubscription')) +{ + $loadEnvPath = Join-Path $PSScriptRoot 'loadEnv.ps1' + if (-Not (Test-Path -Path $loadEnvPath)) { + $loadEnvPath = Join-Path $PSScriptRoot '..\loadEnv.ps1' + } + . ($loadEnvPath) + $TestRecordingFile = Join-Path $PSScriptRoot 'Get-AzEventGridDomainEventSubscription.Recording.json' + $currentPath = $PSScriptRoot + while(-not $mockingPath) { + $mockingPath = Get-ChildItem -Path $currentPath -Recurse -Include 'HttpPipelineMocking.ps1' -File + $currentPath = Split-Path -Path $currentPath -Parent + } + . ($mockingPath | Select-Object -First 1).FullName +} + +Describe 'Get-AzEventGridDomainEventSubscription' { + It 'List' -skip { + { throw [System.NotImplementedException] } | Should -Not -Throw + } + + It 'Get' -skip { + { throw [System.NotImplementedException] } | Should -Not -Throw + } + + It 'GetViaIdentity' -skip { + { throw [System.NotImplementedException] } | Should -Not -Throw + } +} diff --git a/swaggerci/eventgrid/test/Get-AzEventGridDomainEventSubscriptionDeliveryAttribute.Tests.ps1 b/swaggerci/eventgrid/test/Get-AzEventGridDomainEventSubscriptionDeliveryAttribute.Tests.ps1 new file mode 100644 index 000000000000..8aab1b48e36e --- /dev/null +++ b/swaggerci/eventgrid/test/Get-AzEventGridDomainEventSubscriptionDeliveryAttribute.Tests.ps1 @@ -0,0 +1,25 @@ +if(($null -eq $TestName) -or ($TestName -contains 'Get-AzEventGridDomainEventSubscriptionDeliveryAttribute')) +{ + $loadEnvPath = Join-Path $PSScriptRoot 'loadEnv.ps1' + if (-Not (Test-Path -Path $loadEnvPath)) { + $loadEnvPath = Join-Path $PSScriptRoot '..\loadEnv.ps1' + } + . ($loadEnvPath) + $TestRecordingFile = Join-Path $PSScriptRoot 'Get-AzEventGridDomainEventSubscriptionDeliveryAttribute.Recording.json' + $currentPath = $PSScriptRoot + while(-not $mockingPath) { + $mockingPath = Get-ChildItem -Path $currentPath -Recurse -Include 'HttpPipelineMocking.ps1' -File + $currentPath = Split-Path -Path $currentPath -Parent + } + . ($mockingPath | Select-Object -First 1).FullName +} + +Describe 'Get-AzEventGridDomainEventSubscriptionDeliveryAttribute' { + It 'Get' -skip { + { throw [System.NotImplementedException] } | Should -Not -Throw + } + + It 'GetViaIdentity' -skip { + { throw [System.NotImplementedException] } | Should -Not -Throw + } +} diff --git a/swaggerci/eventgrid/test/Get-AzEventGridDomainEventSubscriptionFullUrl.Tests.ps1 b/swaggerci/eventgrid/test/Get-AzEventGridDomainEventSubscriptionFullUrl.Tests.ps1 new file mode 100644 index 000000000000..ddcd96491b28 --- /dev/null +++ b/swaggerci/eventgrid/test/Get-AzEventGridDomainEventSubscriptionFullUrl.Tests.ps1 @@ -0,0 +1,25 @@ +if(($null -eq $TestName) -or ($TestName -contains 'Get-AzEventGridDomainEventSubscriptionFullUrl')) +{ + $loadEnvPath = Join-Path $PSScriptRoot 'loadEnv.ps1' + if (-Not (Test-Path -Path $loadEnvPath)) { + $loadEnvPath = Join-Path $PSScriptRoot '..\loadEnv.ps1' + } + . ($loadEnvPath) + $TestRecordingFile = Join-Path $PSScriptRoot 'Get-AzEventGridDomainEventSubscriptionFullUrl.Recording.json' + $currentPath = $PSScriptRoot + while(-not $mockingPath) { + $mockingPath = Get-ChildItem -Path $currentPath -Recurse -Include 'HttpPipelineMocking.ps1' -File + $currentPath = Split-Path -Path $currentPath -Parent + } + . ($mockingPath | Select-Object -First 1).FullName +} + +Describe 'Get-AzEventGridDomainEventSubscriptionFullUrl' { + It 'Get' -skip { + { throw [System.NotImplementedException] } | Should -Not -Throw + } + + It 'GetViaIdentity' -skip { + { throw [System.NotImplementedException] } | Should -Not -Throw + } +} diff --git a/swaggerci/eventgrid/test/Get-AzEventGridDomainSharedAccessKey.Tests.ps1 b/swaggerci/eventgrid/test/Get-AzEventGridDomainSharedAccessKey.Tests.ps1 new file mode 100644 index 000000000000..65bba8eeba48 --- /dev/null +++ b/swaggerci/eventgrid/test/Get-AzEventGridDomainSharedAccessKey.Tests.ps1 @@ -0,0 +1,21 @@ +if(($null -eq $TestName) -or ($TestName -contains 'Get-AzEventGridDomainSharedAccessKey')) +{ + $loadEnvPath = Join-Path $PSScriptRoot 'loadEnv.ps1' + if (-Not (Test-Path -Path $loadEnvPath)) { + $loadEnvPath = Join-Path $PSScriptRoot '..\loadEnv.ps1' + } + . ($loadEnvPath) + $TestRecordingFile = Join-Path $PSScriptRoot 'Get-AzEventGridDomainSharedAccessKey.Recording.json' + $currentPath = $PSScriptRoot + while(-not $mockingPath) { + $mockingPath = Get-ChildItem -Path $currentPath -Recurse -Include 'HttpPipelineMocking.ps1' -File + $currentPath = Split-Path -Path $currentPath -Parent + } + . ($mockingPath | Select-Object -First 1).FullName +} + +Describe 'Get-AzEventGridDomainSharedAccessKey' { + It 'List' -skip { + { throw [System.NotImplementedException] } | Should -Not -Throw + } +} diff --git a/swaggerci/eventgrid/test/Get-AzEventGridDomainTopic.Tests.ps1 b/swaggerci/eventgrid/test/Get-AzEventGridDomainTopic.Tests.ps1 new file mode 100644 index 000000000000..5d70bfc59513 --- /dev/null +++ b/swaggerci/eventgrid/test/Get-AzEventGridDomainTopic.Tests.ps1 @@ -0,0 +1,29 @@ +if(($null -eq $TestName) -or ($TestName -contains 'Get-AzEventGridDomainTopic')) +{ + $loadEnvPath = Join-Path $PSScriptRoot 'loadEnv.ps1' + if (-Not (Test-Path -Path $loadEnvPath)) { + $loadEnvPath = Join-Path $PSScriptRoot '..\loadEnv.ps1' + } + . ($loadEnvPath) + $TestRecordingFile = Join-Path $PSScriptRoot 'Get-AzEventGridDomainTopic.Recording.json' + $currentPath = $PSScriptRoot + while(-not $mockingPath) { + $mockingPath = Get-ChildItem -Path $currentPath -Recurse -Include 'HttpPipelineMocking.ps1' -File + $currentPath = Split-Path -Path $currentPath -Parent + } + . ($mockingPath | Select-Object -First 1).FullName +} + +Describe 'Get-AzEventGridDomainTopic' { + It 'List' -skip { + { throw [System.NotImplementedException] } | Should -Not -Throw + } + + It 'Get' -skip { + { throw [System.NotImplementedException] } | Should -Not -Throw + } + + It 'GetViaIdentity' -skip { + { throw [System.NotImplementedException] } | Should -Not -Throw + } +} diff --git a/swaggerci/eventgrid/test/Get-AzEventGridDomainTopicEventSubscription.Tests.ps1 b/swaggerci/eventgrid/test/Get-AzEventGridDomainTopicEventSubscription.Tests.ps1 new file mode 100644 index 000000000000..49080168467f --- /dev/null +++ b/swaggerci/eventgrid/test/Get-AzEventGridDomainTopicEventSubscription.Tests.ps1 @@ -0,0 +1,29 @@ +if(($null -eq $TestName) -or ($TestName -contains 'Get-AzEventGridDomainTopicEventSubscription')) +{ + $loadEnvPath = Join-Path $PSScriptRoot 'loadEnv.ps1' + if (-Not (Test-Path -Path $loadEnvPath)) { + $loadEnvPath = Join-Path $PSScriptRoot '..\loadEnv.ps1' + } + . ($loadEnvPath) + $TestRecordingFile = Join-Path $PSScriptRoot 'Get-AzEventGridDomainTopicEventSubscription.Recording.json' + $currentPath = $PSScriptRoot + while(-not $mockingPath) { + $mockingPath = Get-ChildItem -Path $currentPath -Recurse -Include 'HttpPipelineMocking.ps1' -File + $currentPath = Split-Path -Path $currentPath -Parent + } + . ($mockingPath | Select-Object -First 1).FullName +} + +Describe 'Get-AzEventGridDomainTopicEventSubscription' { + It 'List' -skip { + { throw [System.NotImplementedException] } | Should -Not -Throw + } + + It 'Get' -skip { + { throw [System.NotImplementedException] } | Should -Not -Throw + } + + It 'GetViaIdentity' -skip { + { throw [System.NotImplementedException] } | Should -Not -Throw + } +} diff --git a/swaggerci/eventgrid/test/Get-AzEventGridDomainTopicEventSubscriptionDeliveryAttribute.Tests.ps1 b/swaggerci/eventgrid/test/Get-AzEventGridDomainTopicEventSubscriptionDeliveryAttribute.Tests.ps1 new file mode 100644 index 000000000000..e933a0492ff6 --- /dev/null +++ b/swaggerci/eventgrid/test/Get-AzEventGridDomainTopicEventSubscriptionDeliveryAttribute.Tests.ps1 @@ -0,0 +1,25 @@ +if(($null -eq $TestName) -or ($TestName -contains 'Get-AzEventGridDomainTopicEventSubscriptionDeliveryAttribute')) +{ + $loadEnvPath = Join-Path $PSScriptRoot 'loadEnv.ps1' + if (-Not (Test-Path -Path $loadEnvPath)) { + $loadEnvPath = Join-Path $PSScriptRoot '..\loadEnv.ps1' + } + . ($loadEnvPath) + $TestRecordingFile = Join-Path $PSScriptRoot 'Get-AzEventGridDomainTopicEventSubscriptionDeliveryAttribute.Recording.json' + $currentPath = $PSScriptRoot + while(-not $mockingPath) { + $mockingPath = Get-ChildItem -Path $currentPath -Recurse -Include 'HttpPipelineMocking.ps1' -File + $currentPath = Split-Path -Path $currentPath -Parent + } + . ($mockingPath | Select-Object -First 1).FullName +} + +Describe 'Get-AzEventGridDomainTopicEventSubscriptionDeliveryAttribute' { + It 'Get' -skip { + { throw [System.NotImplementedException] } | Should -Not -Throw + } + + It 'GetViaIdentity' -skip { + { throw [System.NotImplementedException] } | Should -Not -Throw + } +} diff --git a/swaggerci/eventgrid/test/Get-AzEventGridDomainTopicEventSubscriptionFullUrl.Tests.ps1 b/swaggerci/eventgrid/test/Get-AzEventGridDomainTopicEventSubscriptionFullUrl.Tests.ps1 new file mode 100644 index 000000000000..601f2f947927 --- /dev/null +++ b/swaggerci/eventgrid/test/Get-AzEventGridDomainTopicEventSubscriptionFullUrl.Tests.ps1 @@ -0,0 +1,25 @@ +if(($null -eq $TestName) -or ($TestName -contains 'Get-AzEventGridDomainTopicEventSubscriptionFullUrl')) +{ + $loadEnvPath = Join-Path $PSScriptRoot 'loadEnv.ps1' + if (-Not (Test-Path -Path $loadEnvPath)) { + $loadEnvPath = Join-Path $PSScriptRoot '..\loadEnv.ps1' + } + . ($loadEnvPath) + $TestRecordingFile = Join-Path $PSScriptRoot 'Get-AzEventGridDomainTopicEventSubscriptionFullUrl.Recording.json' + $currentPath = $PSScriptRoot + while(-not $mockingPath) { + $mockingPath = Get-ChildItem -Path $currentPath -Recurse -Include 'HttpPipelineMocking.ps1' -File + $currentPath = Split-Path -Path $currentPath -Parent + } + . ($mockingPath | Select-Object -First 1).FullName +} + +Describe 'Get-AzEventGridDomainTopicEventSubscriptionFullUrl' { + It 'Get' -skip { + { throw [System.NotImplementedException] } | Should -Not -Throw + } + + It 'GetViaIdentity' -skip { + { throw [System.NotImplementedException] } | Should -Not -Throw + } +} diff --git a/swaggerci/eventgrid/test/Get-AzEventGridEventChannel.Tests.ps1 b/swaggerci/eventgrid/test/Get-AzEventGridEventChannel.Tests.ps1 new file mode 100644 index 000000000000..52c243d51c60 --- /dev/null +++ b/swaggerci/eventgrid/test/Get-AzEventGridEventChannel.Tests.ps1 @@ -0,0 +1,29 @@ +if(($null -eq $TestName) -or ($TestName -contains 'Get-AzEventGridEventChannel')) +{ + $loadEnvPath = Join-Path $PSScriptRoot 'loadEnv.ps1' + if (-Not (Test-Path -Path $loadEnvPath)) { + $loadEnvPath = Join-Path $PSScriptRoot '..\loadEnv.ps1' + } + . ($loadEnvPath) + $TestRecordingFile = Join-Path $PSScriptRoot 'Get-AzEventGridEventChannel.Recording.json' + $currentPath = $PSScriptRoot + while(-not $mockingPath) { + $mockingPath = Get-ChildItem -Path $currentPath -Recurse -Include 'HttpPipelineMocking.ps1' -File + $currentPath = Split-Path -Path $currentPath -Parent + } + . ($mockingPath | Select-Object -First 1).FullName +} + +Describe 'Get-AzEventGridEventChannel' { + It 'List' -skip { + { throw [System.NotImplementedException] } | Should -Not -Throw + } + + It 'Get' -skip { + { throw [System.NotImplementedException] } | Should -Not -Throw + } + + It 'GetViaIdentity' -skip { + { throw [System.NotImplementedException] } | Should -Not -Throw + } +} diff --git a/swaggerci/eventgrid/test/Get-AzEventGridEventSubscription.Tests.ps1 b/swaggerci/eventgrid/test/Get-AzEventGridEventSubscription.Tests.ps1 new file mode 100644 index 000000000000..567459d26698 --- /dev/null +++ b/swaggerci/eventgrid/test/Get-AzEventGridEventSubscription.Tests.ps1 @@ -0,0 +1,33 @@ +if(($null -eq $TestName) -or ($TestName -contains 'Get-AzEventGridEventSubscription')) +{ + $loadEnvPath = Join-Path $PSScriptRoot 'loadEnv.ps1' + if (-Not (Test-Path -Path $loadEnvPath)) { + $loadEnvPath = Join-Path $PSScriptRoot '..\loadEnv.ps1' + } + . ($loadEnvPath) + $TestRecordingFile = Join-Path $PSScriptRoot 'Get-AzEventGridEventSubscription.Recording.json' + $currentPath = $PSScriptRoot + while(-not $mockingPath) { + $mockingPath = Get-ChildItem -Path $currentPath -Recurse -Include 'HttpPipelineMocking.ps1' -File + $currentPath = Split-Path -Path $currentPath -Parent + } + . ($mockingPath | Select-Object -First 1).FullName +} + +Describe 'Get-AzEventGridEventSubscription' { + It 'Get' -skip { + { throw [System.NotImplementedException] } | Should -Not -Throw + } + + It 'GetViaIdentity' -skip { + { throw [System.NotImplementedException] } | Should -Not -Throw + } + + It 'List' -skip { + { throw [System.NotImplementedException] } | Should -Not -Throw + } + + It 'List1' -skip { + { throw [System.NotImplementedException] } | Should -Not -Throw + } +} diff --git a/swaggerci/eventgrid/test/Get-AzEventGridEventSubscriptionDeliveryAttribute.Tests.ps1 b/swaggerci/eventgrid/test/Get-AzEventGridEventSubscriptionDeliveryAttribute.Tests.ps1 new file mode 100644 index 000000000000..fa2abd749e05 --- /dev/null +++ b/swaggerci/eventgrid/test/Get-AzEventGridEventSubscriptionDeliveryAttribute.Tests.ps1 @@ -0,0 +1,25 @@ +if(($null -eq $TestName) -or ($TestName -contains 'Get-AzEventGridEventSubscriptionDeliveryAttribute')) +{ + $loadEnvPath = Join-Path $PSScriptRoot 'loadEnv.ps1' + if (-Not (Test-Path -Path $loadEnvPath)) { + $loadEnvPath = Join-Path $PSScriptRoot '..\loadEnv.ps1' + } + . ($loadEnvPath) + $TestRecordingFile = Join-Path $PSScriptRoot 'Get-AzEventGridEventSubscriptionDeliveryAttribute.Recording.json' + $currentPath = $PSScriptRoot + while(-not $mockingPath) { + $mockingPath = Get-ChildItem -Path $currentPath -Recurse -Include 'HttpPipelineMocking.ps1' -File + $currentPath = Split-Path -Path $currentPath -Parent + } + . ($mockingPath | Select-Object -First 1).FullName +} + +Describe 'Get-AzEventGridEventSubscriptionDeliveryAttribute' { + It 'Get' -skip { + { throw [System.NotImplementedException] } | Should -Not -Throw + } + + It 'GetViaIdentity' -skip { + { throw [System.NotImplementedException] } | Should -Not -Throw + } +} diff --git a/swaggerci/eventgrid/test/Get-AzEventGridEventSubscriptionFullUrl.Tests.ps1 b/swaggerci/eventgrid/test/Get-AzEventGridEventSubscriptionFullUrl.Tests.ps1 new file mode 100644 index 000000000000..040e255be555 --- /dev/null +++ b/swaggerci/eventgrid/test/Get-AzEventGridEventSubscriptionFullUrl.Tests.ps1 @@ -0,0 +1,25 @@ +if(($null -eq $TestName) -or ($TestName -contains 'Get-AzEventGridEventSubscriptionFullUrl')) +{ + $loadEnvPath = Join-Path $PSScriptRoot 'loadEnv.ps1' + if (-Not (Test-Path -Path $loadEnvPath)) { + $loadEnvPath = Join-Path $PSScriptRoot '..\loadEnv.ps1' + } + . ($loadEnvPath) + $TestRecordingFile = Join-Path $PSScriptRoot 'Get-AzEventGridEventSubscriptionFullUrl.Recording.json' + $currentPath = $PSScriptRoot + while(-not $mockingPath) { + $mockingPath = Get-ChildItem -Path $currentPath -Recurse -Include 'HttpPipelineMocking.ps1' -File + $currentPath = Split-Path -Path $currentPath -Parent + } + . ($mockingPath | Select-Object -First 1).FullName +} + +Describe 'Get-AzEventGridEventSubscriptionFullUrl' { + It 'Get' -skip { + { throw [System.NotImplementedException] } | Should -Not -Throw + } + + It 'GetViaIdentity' -skip { + { throw [System.NotImplementedException] } | Should -Not -Throw + } +} diff --git a/swaggerci/eventgrid/test/Get-AzEventGridEventSubscriptionGlobal.Tests.ps1 b/swaggerci/eventgrid/test/Get-AzEventGridEventSubscriptionGlobal.Tests.ps1 new file mode 100644 index 000000000000..92f1a91e6994 --- /dev/null +++ b/swaggerci/eventgrid/test/Get-AzEventGridEventSubscriptionGlobal.Tests.ps1 @@ -0,0 +1,33 @@ +if(($null -eq $TestName) -or ($TestName -contains 'Get-AzEventGridEventSubscriptionGlobal')) +{ + $loadEnvPath = Join-Path $PSScriptRoot 'loadEnv.ps1' + if (-Not (Test-Path -Path $loadEnvPath)) { + $loadEnvPath = Join-Path $PSScriptRoot '..\loadEnv.ps1' + } + . ($loadEnvPath) + $TestRecordingFile = Join-Path $PSScriptRoot 'Get-AzEventGridEventSubscriptionGlobal.Recording.json' + $currentPath = $PSScriptRoot + while(-not $mockingPath) { + $mockingPath = Get-ChildItem -Path $currentPath -Recurse -Include 'HttpPipelineMocking.ps1' -File + $currentPath = Split-Path -Path $currentPath -Parent + } + . ($mockingPath | Select-Object -First 1).FullName +} + +Describe 'Get-AzEventGridEventSubscriptionGlobal' { + It 'List' -skip { + { throw [System.NotImplementedException] } | Should -Not -Throw + } + + It 'List3' -skip { + { throw [System.NotImplementedException] } | Should -Not -Throw + } + + It 'List1' -skip { + { throw [System.NotImplementedException] } | Should -Not -Throw + } + + It 'List2' -skip { + { throw [System.NotImplementedException] } | Should -Not -Throw + } +} diff --git a/swaggerci/eventgrid/test/Get-AzEventGridEventSubscriptionRegional.Tests.ps1 b/swaggerci/eventgrid/test/Get-AzEventGridEventSubscriptionRegional.Tests.ps1 new file mode 100644 index 000000000000..a31e64de0023 --- /dev/null +++ b/swaggerci/eventgrid/test/Get-AzEventGridEventSubscriptionRegional.Tests.ps1 @@ -0,0 +1,33 @@ +if(($null -eq $TestName) -or ($TestName -contains 'Get-AzEventGridEventSubscriptionRegional')) +{ + $loadEnvPath = Join-Path $PSScriptRoot 'loadEnv.ps1' + if (-Not (Test-Path -Path $loadEnvPath)) { + $loadEnvPath = Join-Path $PSScriptRoot '..\loadEnv.ps1' + } + . ($loadEnvPath) + $TestRecordingFile = Join-Path $PSScriptRoot 'Get-AzEventGridEventSubscriptionRegional.Recording.json' + $currentPath = $PSScriptRoot + while(-not $mockingPath) { + $mockingPath = Get-ChildItem -Path $currentPath -Recurse -Include 'HttpPipelineMocking.ps1' -File + $currentPath = Split-Path -Path $currentPath -Parent + } + . ($mockingPath | Select-Object -First 1).FullName +} + +Describe 'Get-AzEventGridEventSubscriptionRegional' { + It 'List' -skip { + { throw [System.NotImplementedException] } | Should -Not -Throw + } + + It 'List3' -skip { + { throw [System.NotImplementedException] } | Should -Not -Throw + } + + It 'List1' -skip { + { throw [System.NotImplementedException] } | Should -Not -Throw + } + + It 'List2' -skip { + { throw [System.NotImplementedException] } | Should -Not -Throw + } +} diff --git a/swaggerci/eventgrid/test/Get-AzEventGridExtensionTopic.Tests.ps1 b/swaggerci/eventgrid/test/Get-AzEventGridExtensionTopic.Tests.ps1 new file mode 100644 index 000000000000..c7cd6c9b21c7 --- /dev/null +++ b/swaggerci/eventgrid/test/Get-AzEventGridExtensionTopic.Tests.ps1 @@ -0,0 +1,25 @@ +if(($null -eq $TestName) -or ($TestName -contains 'Get-AzEventGridExtensionTopic')) +{ + $loadEnvPath = Join-Path $PSScriptRoot 'loadEnv.ps1' + if (-Not (Test-Path -Path $loadEnvPath)) { + $loadEnvPath = Join-Path $PSScriptRoot '..\loadEnv.ps1' + } + . ($loadEnvPath) + $TestRecordingFile = Join-Path $PSScriptRoot 'Get-AzEventGridExtensionTopic.Recording.json' + $currentPath = $PSScriptRoot + while(-not $mockingPath) { + $mockingPath = Get-ChildItem -Path $currentPath -Recurse -Include 'HttpPipelineMocking.ps1' -File + $currentPath = Split-Path -Path $currentPath -Parent + } + . ($mockingPath | Select-Object -First 1).FullName +} + +Describe 'Get-AzEventGridExtensionTopic' { + It 'Get' -skip { + { throw [System.NotImplementedException] } | Should -Not -Throw + } + + It 'GetViaIdentity' -skip { + { throw [System.NotImplementedException] } | Should -Not -Throw + } +} diff --git a/swaggerci/eventgrid/test/Get-AzEventGridPartnerConfiguration.Tests.ps1 b/swaggerci/eventgrid/test/Get-AzEventGridPartnerConfiguration.Tests.ps1 new file mode 100644 index 000000000000..883674d47ab5 --- /dev/null +++ b/swaggerci/eventgrid/test/Get-AzEventGridPartnerConfiguration.Tests.ps1 @@ -0,0 +1,33 @@ +if(($null -eq $TestName) -or ($TestName -contains 'Get-AzEventGridPartnerConfiguration')) +{ + $loadEnvPath = Join-Path $PSScriptRoot 'loadEnv.ps1' + if (-Not (Test-Path -Path $loadEnvPath)) { + $loadEnvPath = Join-Path $PSScriptRoot '..\loadEnv.ps1' + } + . ($loadEnvPath) + $TestRecordingFile = Join-Path $PSScriptRoot 'Get-AzEventGridPartnerConfiguration.Recording.json' + $currentPath = $PSScriptRoot + while(-not $mockingPath) { + $mockingPath = Get-ChildItem -Path $currentPath -Recurse -Include 'HttpPipelineMocking.ps1' -File + $currentPath = Split-Path -Path $currentPath -Parent + } + . ($mockingPath | Select-Object -First 1).FullName +} + +Describe 'Get-AzEventGridPartnerConfiguration' { + It 'List1' -skip { + { throw [System.NotImplementedException] } | Should -Not -Throw + } + + It 'List' -skip { + { throw [System.NotImplementedException] } | Should -Not -Throw + } + + It 'Get' -skip { + { throw [System.NotImplementedException] } | Should -Not -Throw + } + + It 'GetViaIdentity' -skip { + { throw [System.NotImplementedException] } | Should -Not -Throw + } +} diff --git a/swaggerci/eventgrid/test/Get-AzEventGridPartnerDestination.Tests.ps1 b/swaggerci/eventgrid/test/Get-AzEventGridPartnerDestination.Tests.ps1 new file mode 100644 index 000000000000..290d745ca8c6 --- /dev/null +++ b/swaggerci/eventgrid/test/Get-AzEventGridPartnerDestination.Tests.ps1 @@ -0,0 +1,33 @@ +if(($null -eq $TestName) -or ($TestName -contains 'Get-AzEventGridPartnerDestination')) +{ + $loadEnvPath = Join-Path $PSScriptRoot 'loadEnv.ps1' + if (-Not (Test-Path -Path $loadEnvPath)) { + $loadEnvPath = Join-Path $PSScriptRoot '..\loadEnv.ps1' + } + . ($loadEnvPath) + $TestRecordingFile = Join-Path $PSScriptRoot 'Get-AzEventGridPartnerDestination.Recording.json' + $currentPath = $PSScriptRoot + while(-not $mockingPath) { + $mockingPath = Get-ChildItem -Path $currentPath -Recurse -Include 'HttpPipelineMocking.ps1' -File + $currentPath = Split-Path -Path $currentPath -Parent + } + . ($mockingPath | Select-Object -First 1).FullName +} + +Describe 'Get-AzEventGridPartnerDestination' { + It 'List' -skip { + { throw [System.NotImplementedException] } | Should -Not -Throw + } + + It 'Get' -skip { + { throw [System.NotImplementedException] } | Should -Not -Throw + } + + It 'List1' -skip { + { throw [System.NotImplementedException] } | Should -Not -Throw + } + + It 'GetViaIdentity' -skip { + { throw [System.NotImplementedException] } | Should -Not -Throw + } +} diff --git a/swaggerci/eventgrid/test/Get-AzEventGridPartnerNamespace.Tests.ps1 b/swaggerci/eventgrid/test/Get-AzEventGridPartnerNamespace.Tests.ps1 new file mode 100644 index 000000000000..51a457fdbdff --- /dev/null +++ b/swaggerci/eventgrid/test/Get-AzEventGridPartnerNamespace.Tests.ps1 @@ -0,0 +1,33 @@ +if(($null -eq $TestName) -or ($TestName -contains 'Get-AzEventGridPartnerNamespace')) +{ + $loadEnvPath = Join-Path $PSScriptRoot 'loadEnv.ps1' + if (-Not (Test-Path -Path $loadEnvPath)) { + $loadEnvPath = Join-Path $PSScriptRoot '..\loadEnv.ps1' + } + . ($loadEnvPath) + $TestRecordingFile = Join-Path $PSScriptRoot 'Get-AzEventGridPartnerNamespace.Recording.json' + $currentPath = $PSScriptRoot + while(-not $mockingPath) { + $mockingPath = Get-ChildItem -Path $currentPath -Recurse -Include 'HttpPipelineMocking.ps1' -File + $currentPath = Split-Path -Path $currentPath -Parent + } + . ($mockingPath | Select-Object -First 1).FullName +} + +Describe 'Get-AzEventGridPartnerNamespace' { + It 'List' -skip { + { throw [System.NotImplementedException] } | Should -Not -Throw + } + + It 'Get' -skip { + { throw [System.NotImplementedException] } | Should -Not -Throw + } + + It 'List1' -skip { + { throw [System.NotImplementedException] } | Should -Not -Throw + } + + It 'GetViaIdentity' -skip { + { throw [System.NotImplementedException] } | Should -Not -Throw + } +} diff --git a/swaggerci/eventgrid/test/Get-AzEventGridPartnerNamespaceSharedAccessKey.Tests.ps1 b/swaggerci/eventgrid/test/Get-AzEventGridPartnerNamespaceSharedAccessKey.Tests.ps1 new file mode 100644 index 000000000000..e3d2459323de --- /dev/null +++ b/swaggerci/eventgrid/test/Get-AzEventGridPartnerNamespaceSharedAccessKey.Tests.ps1 @@ -0,0 +1,21 @@ +if(($null -eq $TestName) -or ($TestName -contains 'Get-AzEventGridPartnerNamespaceSharedAccessKey')) +{ + $loadEnvPath = Join-Path $PSScriptRoot 'loadEnv.ps1' + if (-Not (Test-Path -Path $loadEnvPath)) { + $loadEnvPath = Join-Path $PSScriptRoot '..\loadEnv.ps1' + } + . ($loadEnvPath) + $TestRecordingFile = Join-Path $PSScriptRoot 'Get-AzEventGridPartnerNamespaceSharedAccessKey.Recording.json' + $currentPath = $PSScriptRoot + while(-not $mockingPath) { + $mockingPath = Get-ChildItem -Path $currentPath -Recurse -Include 'HttpPipelineMocking.ps1' -File + $currentPath = Split-Path -Path $currentPath -Parent + } + . ($mockingPath | Select-Object -First 1).FullName +} + +Describe 'Get-AzEventGridPartnerNamespaceSharedAccessKey' { + It 'List' -skip { + { throw [System.NotImplementedException] } | Should -Not -Throw + } +} diff --git a/swaggerci/eventgrid/test/Get-AzEventGridPartnerRegistration.Tests.ps1 b/swaggerci/eventgrid/test/Get-AzEventGridPartnerRegistration.Tests.ps1 new file mode 100644 index 000000000000..438412ae3ef5 --- /dev/null +++ b/swaggerci/eventgrid/test/Get-AzEventGridPartnerRegistration.Tests.ps1 @@ -0,0 +1,33 @@ +if(($null -eq $TestName) -or ($TestName -contains 'Get-AzEventGridPartnerRegistration')) +{ + $loadEnvPath = Join-Path $PSScriptRoot 'loadEnv.ps1' + if (-Not (Test-Path -Path $loadEnvPath)) { + $loadEnvPath = Join-Path $PSScriptRoot '..\loadEnv.ps1' + } + . ($loadEnvPath) + $TestRecordingFile = Join-Path $PSScriptRoot 'Get-AzEventGridPartnerRegistration.Recording.json' + $currentPath = $PSScriptRoot + while(-not $mockingPath) { + $mockingPath = Get-ChildItem -Path $currentPath -Recurse -Include 'HttpPipelineMocking.ps1' -File + $currentPath = Split-Path -Path $currentPath -Parent + } + . ($mockingPath | Select-Object -First 1).FullName +} + +Describe 'Get-AzEventGridPartnerRegistration' { + It 'List' -skip { + { throw [System.NotImplementedException] } | Should -Not -Throw + } + + It 'Get' -skip { + { throw [System.NotImplementedException] } | Should -Not -Throw + } + + It 'List1' -skip { + { throw [System.NotImplementedException] } | Should -Not -Throw + } + + It 'GetViaIdentity' -skip { + { throw [System.NotImplementedException] } | Should -Not -Throw + } +} diff --git a/swaggerci/eventgrid/test/Get-AzEventGridPartnerTopic.Tests.ps1 b/swaggerci/eventgrid/test/Get-AzEventGridPartnerTopic.Tests.ps1 new file mode 100644 index 000000000000..c3e5c6f6a2cb --- /dev/null +++ b/swaggerci/eventgrid/test/Get-AzEventGridPartnerTopic.Tests.ps1 @@ -0,0 +1,33 @@ +if(($null -eq $TestName) -or ($TestName -contains 'Get-AzEventGridPartnerTopic')) +{ + $loadEnvPath = Join-Path $PSScriptRoot 'loadEnv.ps1' + if (-Not (Test-Path -Path $loadEnvPath)) { + $loadEnvPath = Join-Path $PSScriptRoot '..\loadEnv.ps1' + } + . ($loadEnvPath) + $TestRecordingFile = Join-Path $PSScriptRoot 'Get-AzEventGridPartnerTopic.Recording.json' + $currentPath = $PSScriptRoot + while(-not $mockingPath) { + $mockingPath = Get-ChildItem -Path $currentPath -Recurse -Include 'HttpPipelineMocking.ps1' -File + $currentPath = Split-Path -Path $currentPath -Parent + } + . ($mockingPath | Select-Object -First 1).FullName +} + +Describe 'Get-AzEventGridPartnerTopic' { + It 'List' -skip { + { throw [System.NotImplementedException] } | Should -Not -Throw + } + + It 'Get' -skip { + { throw [System.NotImplementedException] } | Should -Not -Throw + } + + It 'List1' -skip { + { throw [System.NotImplementedException] } | Should -Not -Throw + } + + It 'GetViaIdentity' -skip { + { throw [System.NotImplementedException] } | Should -Not -Throw + } +} diff --git a/swaggerci/eventgrid/test/Get-AzEventGridPartnerTopicEventSubscription.Tests.ps1 b/swaggerci/eventgrid/test/Get-AzEventGridPartnerTopicEventSubscription.Tests.ps1 new file mode 100644 index 000000000000..32af86bdf4db --- /dev/null +++ b/swaggerci/eventgrid/test/Get-AzEventGridPartnerTopicEventSubscription.Tests.ps1 @@ -0,0 +1,29 @@ +if(($null -eq $TestName) -or ($TestName -contains 'Get-AzEventGridPartnerTopicEventSubscription')) +{ + $loadEnvPath = Join-Path $PSScriptRoot 'loadEnv.ps1' + if (-Not (Test-Path -Path $loadEnvPath)) { + $loadEnvPath = Join-Path $PSScriptRoot '..\loadEnv.ps1' + } + . ($loadEnvPath) + $TestRecordingFile = Join-Path $PSScriptRoot 'Get-AzEventGridPartnerTopicEventSubscription.Recording.json' + $currentPath = $PSScriptRoot + while(-not $mockingPath) { + $mockingPath = Get-ChildItem -Path $currentPath -Recurse -Include 'HttpPipelineMocking.ps1' -File + $currentPath = Split-Path -Path $currentPath -Parent + } + . ($mockingPath | Select-Object -First 1).FullName +} + +Describe 'Get-AzEventGridPartnerTopicEventSubscription' { + It 'List' -skip { + { throw [System.NotImplementedException] } | Should -Not -Throw + } + + It 'Get' -skip { + { throw [System.NotImplementedException] } | Should -Not -Throw + } + + It 'GetViaIdentity' -skip { + { throw [System.NotImplementedException] } | Should -Not -Throw + } +} diff --git a/swaggerci/eventgrid/test/Get-AzEventGridPartnerTopicEventSubscriptionDeliveryAttribute.Tests.ps1 b/swaggerci/eventgrid/test/Get-AzEventGridPartnerTopicEventSubscriptionDeliveryAttribute.Tests.ps1 new file mode 100644 index 000000000000..3ef4abca81b8 --- /dev/null +++ b/swaggerci/eventgrid/test/Get-AzEventGridPartnerTopicEventSubscriptionDeliveryAttribute.Tests.ps1 @@ -0,0 +1,25 @@ +if(($null -eq $TestName) -or ($TestName -contains 'Get-AzEventGridPartnerTopicEventSubscriptionDeliveryAttribute')) +{ + $loadEnvPath = Join-Path $PSScriptRoot 'loadEnv.ps1' + if (-Not (Test-Path -Path $loadEnvPath)) { + $loadEnvPath = Join-Path $PSScriptRoot '..\loadEnv.ps1' + } + . ($loadEnvPath) + $TestRecordingFile = Join-Path $PSScriptRoot 'Get-AzEventGridPartnerTopicEventSubscriptionDeliveryAttribute.Recording.json' + $currentPath = $PSScriptRoot + while(-not $mockingPath) { + $mockingPath = Get-ChildItem -Path $currentPath -Recurse -Include 'HttpPipelineMocking.ps1' -File + $currentPath = Split-Path -Path $currentPath -Parent + } + . ($mockingPath | Select-Object -First 1).FullName +} + +Describe 'Get-AzEventGridPartnerTopicEventSubscriptionDeliveryAttribute' { + It 'Get' -skip { + { throw [System.NotImplementedException] } | Should -Not -Throw + } + + It 'GetViaIdentity' -skip { + { throw [System.NotImplementedException] } | Should -Not -Throw + } +} diff --git a/swaggerci/eventgrid/test/Get-AzEventGridPartnerTopicEventSubscriptionFullUrl.Tests.ps1 b/swaggerci/eventgrid/test/Get-AzEventGridPartnerTopicEventSubscriptionFullUrl.Tests.ps1 new file mode 100644 index 000000000000..13d87728743b --- /dev/null +++ b/swaggerci/eventgrid/test/Get-AzEventGridPartnerTopicEventSubscriptionFullUrl.Tests.ps1 @@ -0,0 +1,25 @@ +if(($null -eq $TestName) -or ($TestName -contains 'Get-AzEventGridPartnerTopicEventSubscriptionFullUrl')) +{ + $loadEnvPath = Join-Path $PSScriptRoot 'loadEnv.ps1' + if (-Not (Test-Path -Path $loadEnvPath)) { + $loadEnvPath = Join-Path $PSScriptRoot '..\loadEnv.ps1' + } + . ($loadEnvPath) + $TestRecordingFile = Join-Path $PSScriptRoot 'Get-AzEventGridPartnerTopicEventSubscriptionFullUrl.Recording.json' + $currentPath = $PSScriptRoot + while(-not $mockingPath) { + $mockingPath = Get-ChildItem -Path $currentPath -Recurse -Include 'HttpPipelineMocking.ps1' -File + $currentPath = Split-Path -Path $currentPath -Parent + } + . ($mockingPath | Select-Object -First 1).FullName +} + +Describe 'Get-AzEventGridPartnerTopicEventSubscriptionFullUrl' { + It 'Get' -skip { + { throw [System.NotImplementedException] } | Should -Not -Throw + } + + It 'GetViaIdentity' -skip { + { throw [System.NotImplementedException] } | Should -Not -Throw + } +} diff --git a/swaggerci/eventgrid/test/Get-AzEventGridPrivateEndpointConnection.Tests.ps1 b/swaggerci/eventgrid/test/Get-AzEventGridPrivateEndpointConnection.Tests.ps1 new file mode 100644 index 000000000000..547605d1e176 --- /dev/null +++ b/swaggerci/eventgrid/test/Get-AzEventGridPrivateEndpointConnection.Tests.ps1 @@ -0,0 +1,29 @@ +if(($null -eq $TestName) -or ($TestName -contains 'Get-AzEventGridPrivateEndpointConnection')) +{ + $loadEnvPath = Join-Path $PSScriptRoot 'loadEnv.ps1' + if (-Not (Test-Path -Path $loadEnvPath)) { + $loadEnvPath = Join-Path $PSScriptRoot '..\loadEnv.ps1' + } + . ($loadEnvPath) + $TestRecordingFile = Join-Path $PSScriptRoot 'Get-AzEventGridPrivateEndpointConnection.Recording.json' + $currentPath = $PSScriptRoot + while(-not $mockingPath) { + $mockingPath = Get-ChildItem -Path $currentPath -Recurse -Include 'HttpPipelineMocking.ps1' -File + $currentPath = Split-Path -Path $currentPath -Parent + } + . ($mockingPath | Select-Object -First 1).FullName +} + +Describe 'Get-AzEventGridPrivateEndpointConnection' { + It 'List' -skip { + { throw [System.NotImplementedException] } | Should -Not -Throw + } + + It 'Get' -skip { + { throw [System.NotImplementedException] } | Should -Not -Throw + } + + It 'GetViaIdentity' -skip { + { throw [System.NotImplementedException] } | Should -Not -Throw + } +} diff --git a/swaggerci/eventgrid/test/Get-AzEventGridPrivateLinkResource.Tests.ps1 b/swaggerci/eventgrid/test/Get-AzEventGridPrivateLinkResource.Tests.ps1 new file mode 100644 index 000000000000..496b5fdd38a4 --- /dev/null +++ b/swaggerci/eventgrid/test/Get-AzEventGridPrivateLinkResource.Tests.ps1 @@ -0,0 +1,29 @@ +if(($null -eq $TestName) -or ($TestName -contains 'Get-AzEventGridPrivateLinkResource')) +{ + $loadEnvPath = Join-Path $PSScriptRoot 'loadEnv.ps1' + if (-Not (Test-Path -Path $loadEnvPath)) { + $loadEnvPath = Join-Path $PSScriptRoot '..\loadEnv.ps1' + } + . ($loadEnvPath) + $TestRecordingFile = Join-Path $PSScriptRoot 'Get-AzEventGridPrivateLinkResource.Recording.json' + $currentPath = $PSScriptRoot + while(-not $mockingPath) { + $mockingPath = Get-ChildItem -Path $currentPath -Recurse -Include 'HttpPipelineMocking.ps1' -File + $currentPath = Split-Path -Path $currentPath -Parent + } + . ($mockingPath | Select-Object -First 1).FullName +} + +Describe 'Get-AzEventGridPrivateLinkResource' { + It 'List' -skip { + { throw [System.NotImplementedException] } | Should -Not -Throw + } + + It 'Get' -skip { + { throw [System.NotImplementedException] } | Should -Not -Throw + } + + It 'GetViaIdentity' -skip { + { throw [System.NotImplementedException] } | Should -Not -Throw + } +} diff --git a/swaggerci/eventgrid/test/Get-AzEventGridSystemTopic.Tests.ps1 b/swaggerci/eventgrid/test/Get-AzEventGridSystemTopic.Tests.ps1 new file mode 100644 index 000000000000..2e61b6637387 --- /dev/null +++ b/swaggerci/eventgrid/test/Get-AzEventGridSystemTopic.Tests.ps1 @@ -0,0 +1,33 @@ +if(($null -eq $TestName) -or ($TestName -contains 'Get-AzEventGridSystemTopic')) +{ + $loadEnvPath = Join-Path $PSScriptRoot 'loadEnv.ps1' + if (-Not (Test-Path -Path $loadEnvPath)) { + $loadEnvPath = Join-Path $PSScriptRoot '..\loadEnv.ps1' + } + . ($loadEnvPath) + $TestRecordingFile = Join-Path $PSScriptRoot 'Get-AzEventGridSystemTopic.Recording.json' + $currentPath = $PSScriptRoot + while(-not $mockingPath) { + $mockingPath = Get-ChildItem -Path $currentPath -Recurse -Include 'HttpPipelineMocking.ps1' -File + $currentPath = Split-Path -Path $currentPath -Parent + } + . ($mockingPath | Select-Object -First 1).FullName +} + +Describe 'Get-AzEventGridSystemTopic' { + It 'List' -skip { + { throw [System.NotImplementedException] } | Should -Not -Throw + } + + It 'Get' -skip { + { throw [System.NotImplementedException] } | Should -Not -Throw + } + + It 'List1' -skip { + { throw [System.NotImplementedException] } | Should -Not -Throw + } + + It 'GetViaIdentity' -skip { + { throw [System.NotImplementedException] } | Should -Not -Throw + } +} diff --git a/swaggerci/eventgrid/test/Get-AzEventGridSystemTopicEventSubscription.Tests.ps1 b/swaggerci/eventgrid/test/Get-AzEventGridSystemTopicEventSubscription.Tests.ps1 new file mode 100644 index 000000000000..8bbe450510b9 --- /dev/null +++ b/swaggerci/eventgrid/test/Get-AzEventGridSystemTopicEventSubscription.Tests.ps1 @@ -0,0 +1,29 @@ +if(($null -eq $TestName) -or ($TestName -contains 'Get-AzEventGridSystemTopicEventSubscription')) +{ + $loadEnvPath = Join-Path $PSScriptRoot 'loadEnv.ps1' + if (-Not (Test-Path -Path $loadEnvPath)) { + $loadEnvPath = Join-Path $PSScriptRoot '..\loadEnv.ps1' + } + . ($loadEnvPath) + $TestRecordingFile = Join-Path $PSScriptRoot 'Get-AzEventGridSystemTopicEventSubscription.Recording.json' + $currentPath = $PSScriptRoot + while(-not $mockingPath) { + $mockingPath = Get-ChildItem -Path $currentPath -Recurse -Include 'HttpPipelineMocking.ps1' -File + $currentPath = Split-Path -Path $currentPath -Parent + } + . ($mockingPath | Select-Object -First 1).FullName +} + +Describe 'Get-AzEventGridSystemTopicEventSubscription' { + It 'List' -skip { + { throw [System.NotImplementedException] } | Should -Not -Throw + } + + It 'Get' -skip { + { throw [System.NotImplementedException] } | Should -Not -Throw + } + + It 'GetViaIdentity' -skip { + { throw [System.NotImplementedException] } | Should -Not -Throw + } +} diff --git a/swaggerci/eventgrid/test/Get-AzEventGridSystemTopicEventSubscriptionDeliveryAttribute.Tests.ps1 b/swaggerci/eventgrid/test/Get-AzEventGridSystemTopicEventSubscriptionDeliveryAttribute.Tests.ps1 new file mode 100644 index 000000000000..f54aeacc28bb --- /dev/null +++ b/swaggerci/eventgrid/test/Get-AzEventGridSystemTopicEventSubscriptionDeliveryAttribute.Tests.ps1 @@ -0,0 +1,25 @@ +if(($null -eq $TestName) -or ($TestName -contains 'Get-AzEventGridSystemTopicEventSubscriptionDeliveryAttribute')) +{ + $loadEnvPath = Join-Path $PSScriptRoot 'loadEnv.ps1' + if (-Not (Test-Path -Path $loadEnvPath)) { + $loadEnvPath = Join-Path $PSScriptRoot '..\loadEnv.ps1' + } + . ($loadEnvPath) + $TestRecordingFile = Join-Path $PSScriptRoot 'Get-AzEventGridSystemTopicEventSubscriptionDeliveryAttribute.Recording.json' + $currentPath = $PSScriptRoot + while(-not $mockingPath) { + $mockingPath = Get-ChildItem -Path $currentPath -Recurse -Include 'HttpPipelineMocking.ps1' -File + $currentPath = Split-Path -Path $currentPath -Parent + } + . ($mockingPath | Select-Object -First 1).FullName +} + +Describe 'Get-AzEventGridSystemTopicEventSubscriptionDeliveryAttribute' { + It 'Get' -skip { + { throw [System.NotImplementedException] } | Should -Not -Throw + } + + It 'GetViaIdentity' -skip { + { throw [System.NotImplementedException] } | Should -Not -Throw + } +} diff --git a/swaggerci/eventgrid/test/Get-AzEventGridSystemTopicEventSubscriptionFullUrl.Tests.ps1 b/swaggerci/eventgrid/test/Get-AzEventGridSystemTopicEventSubscriptionFullUrl.Tests.ps1 new file mode 100644 index 000000000000..d2bd81ee65b6 --- /dev/null +++ b/swaggerci/eventgrid/test/Get-AzEventGridSystemTopicEventSubscriptionFullUrl.Tests.ps1 @@ -0,0 +1,25 @@ +if(($null -eq $TestName) -or ($TestName -contains 'Get-AzEventGridSystemTopicEventSubscriptionFullUrl')) +{ + $loadEnvPath = Join-Path $PSScriptRoot 'loadEnv.ps1' + if (-Not (Test-Path -Path $loadEnvPath)) { + $loadEnvPath = Join-Path $PSScriptRoot '..\loadEnv.ps1' + } + . ($loadEnvPath) + $TestRecordingFile = Join-Path $PSScriptRoot 'Get-AzEventGridSystemTopicEventSubscriptionFullUrl.Recording.json' + $currentPath = $PSScriptRoot + while(-not $mockingPath) { + $mockingPath = Get-ChildItem -Path $currentPath -Recurse -Include 'HttpPipelineMocking.ps1' -File + $currentPath = Split-Path -Path $currentPath -Parent + } + . ($mockingPath | Select-Object -First 1).FullName +} + +Describe 'Get-AzEventGridSystemTopicEventSubscriptionFullUrl' { + It 'Get' -skip { + { throw [System.NotImplementedException] } | Should -Not -Throw + } + + It 'GetViaIdentity' -skip { + { throw [System.NotImplementedException] } | Should -Not -Throw + } +} diff --git a/swaggerci/eventgrid/test/Get-AzEventGridTopic.Tests.ps1 b/swaggerci/eventgrid/test/Get-AzEventGridTopic.Tests.ps1 new file mode 100644 index 000000000000..02f9193f7e53 --- /dev/null +++ b/swaggerci/eventgrid/test/Get-AzEventGridTopic.Tests.ps1 @@ -0,0 +1,33 @@ +if(($null -eq $TestName) -or ($TestName -contains 'Get-AzEventGridTopic')) +{ + $loadEnvPath = Join-Path $PSScriptRoot 'loadEnv.ps1' + if (-Not (Test-Path -Path $loadEnvPath)) { + $loadEnvPath = Join-Path $PSScriptRoot '..\loadEnv.ps1' + } + . ($loadEnvPath) + $TestRecordingFile = Join-Path $PSScriptRoot 'Get-AzEventGridTopic.Recording.json' + $currentPath = $PSScriptRoot + while(-not $mockingPath) { + $mockingPath = Get-ChildItem -Path $currentPath -Recurse -Include 'HttpPipelineMocking.ps1' -File + $currentPath = Split-Path -Path $currentPath -Parent + } + . ($mockingPath | Select-Object -First 1).FullName +} + +Describe 'Get-AzEventGridTopic' { + It 'List' -skip { + { throw [System.NotImplementedException] } | Should -Not -Throw + } + + It 'Get' -skip { + { throw [System.NotImplementedException] } | Should -Not -Throw + } + + It 'List1' -skip { + { throw [System.NotImplementedException] } | Should -Not -Throw + } + + It 'GetViaIdentity' -skip { + { throw [System.NotImplementedException] } | Should -Not -Throw + } +} diff --git a/swaggerci/eventgrid/test/Get-AzEventGridTopicEventSubscription.Tests.ps1 b/swaggerci/eventgrid/test/Get-AzEventGridTopicEventSubscription.Tests.ps1 new file mode 100644 index 000000000000..2a6b3ee6734e --- /dev/null +++ b/swaggerci/eventgrid/test/Get-AzEventGridTopicEventSubscription.Tests.ps1 @@ -0,0 +1,29 @@ +if(($null -eq $TestName) -or ($TestName -contains 'Get-AzEventGridTopicEventSubscription')) +{ + $loadEnvPath = Join-Path $PSScriptRoot 'loadEnv.ps1' + if (-Not (Test-Path -Path $loadEnvPath)) { + $loadEnvPath = Join-Path $PSScriptRoot '..\loadEnv.ps1' + } + . ($loadEnvPath) + $TestRecordingFile = Join-Path $PSScriptRoot 'Get-AzEventGridTopicEventSubscription.Recording.json' + $currentPath = $PSScriptRoot + while(-not $mockingPath) { + $mockingPath = Get-ChildItem -Path $currentPath -Recurse -Include 'HttpPipelineMocking.ps1' -File + $currentPath = Split-Path -Path $currentPath -Parent + } + . ($mockingPath | Select-Object -First 1).FullName +} + +Describe 'Get-AzEventGridTopicEventSubscription' { + It 'List' -skip { + { throw [System.NotImplementedException] } | Should -Not -Throw + } + + It 'Get' -skip { + { throw [System.NotImplementedException] } | Should -Not -Throw + } + + It 'GetViaIdentity' -skip { + { throw [System.NotImplementedException] } | Should -Not -Throw + } +} diff --git a/swaggerci/eventgrid/test/Get-AzEventGridTopicEventSubscriptionDeliveryAttribute.Tests.ps1 b/swaggerci/eventgrid/test/Get-AzEventGridTopicEventSubscriptionDeliveryAttribute.Tests.ps1 new file mode 100644 index 000000000000..daa8fd401a72 --- /dev/null +++ b/swaggerci/eventgrid/test/Get-AzEventGridTopicEventSubscriptionDeliveryAttribute.Tests.ps1 @@ -0,0 +1,25 @@ +if(($null -eq $TestName) -or ($TestName -contains 'Get-AzEventGridTopicEventSubscriptionDeliveryAttribute')) +{ + $loadEnvPath = Join-Path $PSScriptRoot 'loadEnv.ps1' + if (-Not (Test-Path -Path $loadEnvPath)) { + $loadEnvPath = Join-Path $PSScriptRoot '..\loadEnv.ps1' + } + . ($loadEnvPath) + $TestRecordingFile = Join-Path $PSScriptRoot 'Get-AzEventGridTopicEventSubscriptionDeliveryAttribute.Recording.json' + $currentPath = $PSScriptRoot + while(-not $mockingPath) { + $mockingPath = Get-ChildItem -Path $currentPath -Recurse -Include 'HttpPipelineMocking.ps1' -File + $currentPath = Split-Path -Path $currentPath -Parent + } + . ($mockingPath | Select-Object -First 1).FullName +} + +Describe 'Get-AzEventGridTopicEventSubscriptionDeliveryAttribute' { + It 'Get' -skip { + { throw [System.NotImplementedException] } | Should -Not -Throw + } + + It 'GetViaIdentity' -skip { + { throw [System.NotImplementedException] } | Should -Not -Throw + } +} diff --git a/swaggerci/eventgrid/test/Get-AzEventGridTopicEventSubscriptionFullUrl.Tests.ps1 b/swaggerci/eventgrid/test/Get-AzEventGridTopicEventSubscriptionFullUrl.Tests.ps1 new file mode 100644 index 000000000000..da9455825c54 --- /dev/null +++ b/swaggerci/eventgrid/test/Get-AzEventGridTopicEventSubscriptionFullUrl.Tests.ps1 @@ -0,0 +1,25 @@ +if(($null -eq $TestName) -or ($TestName -contains 'Get-AzEventGridTopicEventSubscriptionFullUrl')) +{ + $loadEnvPath = Join-Path $PSScriptRoot 'loadEnv.ps1' + if (-Not (Test-Path -Path $loadEnvPath)) { + $loadEnvPath = Join-Path $PSScriptRoot '..\loadEnv.ps1' + } + . ($loadEnvPath) + $TestRecordingFile = Join-Path $PSScriptRoot 'Get-AzEventGridTopicEventSubscriptionFullUrl.Recording.json' + $currentPath = $PSScriptRoot + while(-not $mockingPath) { + $mockingPath = Get-ChildItem -Path $currentPath -Recurse -Include 'HttpPipelineMocking.ps1' -File + $currentPath = Split-Path -Path $currentPath -Parent + } + . ($mockingPath | Select-Object -First 1).FullName +} + +Describe 'Get-AzEventGridTopicEventSubscriptionFullUrl' { + It 'Get' -skip { + { throw [System.NotImplementedException] } | Should -Not -Throw + } + + It 'GetViaIdentity' -skip { + { throw [System.NotImplementedException] } | Should -Not -Throw + } +} diff --git a/swaggerci/eventgrid/test/Get-AzEventGridTopicEventType.Tests.ps1 b/swaggerci/eventgrid/test/Get-AzEventGridTopicEventType.Tests.ps1 new file mode 100644 index 000000000000..10c83149a47a --- /dev/null +++ b/swaggerci/eventgrid/test/Get-AzEventGridTopicEventType.Tests.ps1 @@ -0,0 +1,21 @@ +if(($null -eq $TestName) -or ($TestName -contains 'Get-AzEventGridTopicEventType')) +{ + $loadEnvPath = Join-Path $PSScriptRoot 'loadEnv.ps1' + if (-Not (Test-Path -Path $loadEnvPath)) { + $loadEnvPath = Join-Path $PSScriptRoot '..\loadEnv.ps1' + } + . ($loadEnvPath) + $TestRecordingFile = Join-Path $PSScriptRoot 'Get-AzEventGridTopicEventType.Recording.json' + $currentPath = $PSScriptRoot + while(-not $mockingPath) { + $mockingPath = Get-ChildItem -Path $currentPath -Recurse -Include 'HttpPipelineMocking.ps1' -File + $currentPath = Split-Path -Path $currentPath -Parent + } + . ($mockingPath | Select-Object -First 1).FullName +} + +Describe 'Get-AzEventGridTopicEventType' { + It 'List' -skip { + { throw [System.NotImplementedException] } | Should -Not -Throw + } +} diff --git a/swaggerci/eventgrid/test/Get-AzEventGridTopicSharedAccessKey.Tests.ps1 b/swaggerci/eventgrid/test/Get-AzEventGridTopicSharedAccessKey.Tests.ps1 new file mode 100644 index 000000000000..42c77365365d --- /dev/null +++ b/swaggerci/eventgrid/test/Get-AzEventGridTopicSharedAccessKey.Tests.ps1 @@ -0,0 +1,21 @@ +if(($null -eq $TestName) -or ($TestName -contains 'Get-AzEventGridTopicSharedAccessKey')) +{ + $loadEnvPath = Join-Path $PSScriptRoot 'loadEnv.ps1' + if (-Not (Test-Path -Path $loadEnvPath)) { + $loadEnvPath = Join-Path $PSScriptRoot '..\loadEnv.ps1' + } + . ($loadEnvPath) + $TestRecordingFile = Join-Path $PSScriptRoot 'Get-AzEventGridTopicSharedAccessKey.Recording.json' + $currentPath = $PSScriptRoot + while(-not $mockingPath) { + $mockingPath = Get-ChildItem -Path $currentPath -Recurse -Include 'HttpPipelineMocking.ps1' -File + $currentPath = Split-Path -Path $currentPath -Parent + } + . ($mockingPath | Select-Object -First 1).FullName +} + +Describe 'Get-AzEventGridTopicSharedAccessKey' { + It 'List' -skip { + { throw [System.NotImplementedException] } | Should -Not -Throw + } +} diff --git a/swaggerci/eventgrid/test/Get-AzEventGridTopicType.Tests.ps1 b/swaggerci/eventgrid/test/Get-AzEventGridTopicType.Tests.ps1 new file mode 100644 index 000000000000..38c332ec70cc --- /dev/null +++ b/swaggerci/eventgrid/test/Get-AzEventGridTopicType.Tests.ps1 @@ -0,0 +1,29 @@ +if(($null -eq $TestName) -or ($TestName -contains 'Get-AzEventGridTopicType')) +{ + $loadEnvPath = Join-Path $PSScriptRoot 'loadEnv.ps1' + if (-Not (Test-Path -Path $loadEnvPath)) { + $loadEnvPath = Join-Path $PSScriptRoot '..\loadEnv.ps1' + } + . ($loadEnvPath) + $TestRecordingFile = Join-Path $PSScriptRoot 'Get-AzEventGridTopicType.Recording.json' + $currentPath = $PSScriptRoot + while(-not $mockingPath) { + $mockingPath = Get-ChildItem -Path $currentPath -Recurse -Include 'HttpPipelineMocking.ps1' -File + $currentPath = Split-Path -Path $currentPath -Parent + } + . ($mockingPath | Select-Object -First 1).FullName +} + +Describe 'Get-AzEventGridTopicType' { + It 'List' -skip { + { throw [System.NotImplementedException] } | Should -Not -Throw + } + + It 'Get' -skip { + { throw [System.NotImplementedException] } | Should -Not -Throw + } + + It 'GetViaIdentity' -skip { + { throw [System.NotImplementedException] } | Should -Not -Throw + } +} diff --git a/swaggerci/eventgrid/test/Get-AzEventGridTopicTypeEventType.Tests.ps1 b/swaggerci/eventgrid/test/Get-AzEventGridTopicTypeEventType.Tests.ps1 new file mode 100644 index 000000000000..92ccd9a5aa53 --- /dev/null +++ b/swaggerci/eventgrid/test/Get-AzEventGridTopicTypeEventType.Tests.ps1 @@ -0,0 +1,21 @@ +if(($null -eq $TestName) -or ($TestName -contains 'Get-AzEventGridTopicTypeEventType')) +{ + $loadEnvPath = Join-Path $PSScriptRoot 'loadEnv.ps1' + if (-Not (Test-Path -Path $loadEnvPath)) { + $loadEnvPath = Join-Path $PSScriptRoot '..\loadEnv.ps1' + } + . ($loadEnvPath) + $TestRecordingFile = Join-Path $PSScriptRoot 'Get-AzEventGridTopicTypeEventType.Recording.json' + $currentPath = $PSScriptRoot + while(-not $mockingPath) { + $mockingPath = Get-ChildItem -Path $currentPath -Recurse -Include 'HttpPipelineMocking.ps1' -File + $currentPath = Split-Path -Path $currentPath -Parent + } + . ($mockingPath | Select-Object -First 1).FullName +} + +Describe 'Get-AzEventGridTopicTypeEventType' { + It 'List' -skip { + { throw [System.NotImplementedException] } | Should -Not -Throw + } +} diff --git a/swaggerci/eventgrid/test/Get-AzEventGridVerifiedPartner.Tests.ps1 b/swaggerci/eventgrid/test/Get-AzEventGridVerifiedPartner.Tests.ps1 new file mode 100644 index 000000000000..90bc5c20b84b --- /dev/null +++ b/swaggerci/eventgrid/test/Get-AzEventGridVerifiedPartner.Tests.ps1 @@ -0,0 +1,29 @@ +if(($null -eq $TestName) -or ($TestName -contains 'Get-AzEventGridVerifiedPartner')) +{ + $loadEnvPath = Join-Path $PSScriptRoot 'loadEnv.ps1' + if (-Not (Test-Path -Path $loadEnvPath)) { + $loadEnvPath = Join-Path $PSScriptRoot '..\loadEnv.ps1' + } + . ($loadEnvPath) + $TestRecordingFile = Join-Path $PSScriptRoot 'Get-AzEventGridVerifiedPartner.Recording.json' + $currentPath = $PSScriptRoot + while(-not $mockingPath) { + $mockingPath = Get-ChildItem -Path $currentPath -Recurse -Include 'HttpPipelineMocking.ps1' -File + $currentPath = Split-Path -Path $currentPath -Parent + } + . ($mockingPath | Select-Object -First 1).FullName +} + +Describe 'Get-AzEventGridVerifiedPartner' { + It 'List' -skip { + { throw [System.NotImplementedException] } | Should -Not -Throw + } + + It 'Get' -skip { + { throw [System.NotImplementedException] } | Should -Not -Throw + } + + It 'GetViaIdentity' -skip { + { throw [System.NotImplementedException] } | Should -Not -Throw + } +} diff --git a/swaggerci/eventgrid/test/Grant-AzEventGridPartnerConfigurationPartner.Tests.ps1 b/swaggerci/eventgrid/test/Grant-AzEventGridPartnerConfigurationPartner.Tests.ps1 new file mode 100644 index 000000000000..92f2ee7ce0c4 --- /dev/null +++ b/swaggerci/eventgrid/test/Grant-AzEventGridPartnerConfigurationPartner.Tests.ps1 @@ -0,0 +1,33 @@ +if(($null -eq $TestName) -or ($TestName -contains 'Grant-AzEventGridPartnerConfigurationPartner')) +{ + $loadEnvPath = Join-Path $PSScriptRoot 'loadEnv.ps1' + if (-Not (Test-Path -Path $loadEnvPath)) { + $loadEnvPath = Join-Path $PSScriptRoot '..\loadEnv.ps1' + } + . ($loadEnvPath) + $TestRecordingFile = Join-Path $PSScriptRoot 'Grant-AzEventGridPartnerConfigurationPartner.Recording.json' + $currentPath = $PSScriptRoot + while(-not $mockingPath) { + $mockingPath = Get-ChildItem -Path $currentPath -Recurse -Include 'HttpPipelineMocking.ps1' -File + $currentPath = Split-Path -Path $currentPath -Parent + } + . ($mockingPath | Select-Object -First 1).FullName +} + +Describe 'Grant-AzEventGridPartnerConfigurationPartner' { + It 'AuthorizeExpanded' -skip { + { throw [System.NotImplementedException] } | Should -Not -Throw + } + + It 'Authorize' -skip { + { throw [System.NotImplementedException] } | Should -Not -Throw + } + + It 'AuthorizeViaIdentityExpanded' -skip { + { throw [System.NotImplementedException] } | Should -Not -Throw + } + + It 'AuthorizeViaIdentity' -skip { + { throw [System.NotImplementedException] } | Should -Not -Throw + } +} diff --git a/swaggerci/eventgrid/test/Initialize-AzEventGridPartnerDestination.Tests.ps1 b/swaggerci/eventgrid/test/Initialize-AzEventGridPartnerDestination.Tests.ps1 new file mode 100644 index 000000000000..51ea27ffaa34 --- /dev/null +++ b/swaggerci/eventgrid/test/Initialize-AzEventGridPartnerDestination.Tests.ps1 @@ -0,0 +1,25 @@ +if(($null -eq $TestName) -or ($TestName -contains 'Initialize-AzEventGridPartnerDestination')) +{ + $loadEnvPath = Join-Path $PSScriptRoot 'loadEnv.ps1' + if (-Not (Test-Path -Path $loadEnvPath)) { + $loadEnvPath = Join-Path $PSScriptRoot '..\loadEnv.ps1' + } + . ($loadEnvPath) + $TestRecordingFile = Join-Path $PSScriptRoot 'Initialize-AzEventGridPartnerDestination.Recording.json' + $currentPath = $PSScriptRoot + while(-not $mockingPath) { + $mockingPath = Get-ChildItem -Path $currentPath -Recurse -Include 'HttpPipelineMocking.ps1' -File + $currentPath = Split-Path -Path $currentPath -Parent + } + . ($mockingPath | Select-Object -First 1).FullName +} + +Describe 'Initialize-AzEventGridPartnerDestination' { + It 'Activate' -skip { + { throw [System.NotImplementedException] } | Should -Not -Throw + } + + It 'ActivateViaIdentity' -skip { + { throw [System.NotImplementedException] } | Should -Not -Throw + } +} diff --git a/swaggerci/eventgrid/test/Initialize-AzEventGridPartnerTopic.Tests.ps1 b/swaggerci/eventgrid/test/Initialize-AzEventGridPartnerTopic.Tests.ps1 new file mode 100644 index 000000000000..28e2941784a8 --- /dev/null +++ b/swaggerci/eventgrid/test/Initialize-AzEventGridPartnerTopic.Tests.ps1 @@ -0,0 +1,25 @@ +if(($null -eq $TestName) -or ($TestName -contains 'Initialize-AzEventGridPartnerTopic')) +{ + $loadEnvPath = Join-Path $PSScriptRoot 'loadEnv.ps1' + if (-Not (Test-Path -Path $loadEnvPath)) { + $loadEnvPath = Join-Path $PSScriptRoot '..\loadEnv.ps1' + } + . ($loadEnvPath) + $TestRecordingFile = Join-Path $PSScriptRoot 'Initialize-AzEventGridPartnerTopic.Recording.json' + $currentPath = $PSScriptRoot + while(-not $mockingPath) { + $mockingPath = Get-ChildItem -Path $currentPath -Recurse -Include 'HttpPipelineMocking.ps1' -File + $currentPath = Split-Path -Path $currentPath -Parent + } + . ($mockingPath | Select-Object -First 1).FullName +} + +Describe 'Initialize-AzEventGridPartnerTopic' { + It 'Activate' -skip { + { throw [System.NotImplementedException] } | Should -Not -Throw + } + + It 'ActivateViaIdentity' -skip { + { throw [System.NotImplementedException] } | Should -Not -Throw + } +} diff --git a/swaggerci/eventgrid/test/Invoke-AzEventGridDeactivatePartnerTopic.Tests.ps1 b/swaggerci/eventgrid/test/Invoke-AzEventGridDeactivatePartnerTopic.Tests.ps1 new file mode 100644 index 000000000000..76f89af497d3 --- /dev/null +++ b/swaggerci/eventgrid/test/Invoke-AzEventGridDeactivatePartnerTopic.Tests.ps1 @@ -0,0 +1,25 @@ +if(($null -eq $TestName) -or ($TestName -contains 'Invoke-AzEventGridDeactivatePartnerTopic')) +{ + $loadEnvPath = Join-Path $PSScriptRoot 'loadEnv.ps1' + if (-Not (Test-Path -Path $loadEnvPath)) { + $loadEnvPath = Join-Path $PSScriptRoot '..\loadEnv.ps1' + } + . ($loadEnvPath) + $TestRecordingFile = Join-Path $PSScriptRoot 'Invoke-AzEventGridDeactivatePartnerTopic.Recording.json' + $currentPath = $PSScriptRoot + while(-not $mockingPath) { + $mockingPath = Get-ChildItem -Path $currentPath -Recurse -Include 'HttpPipelineMocking.ps1' -File + $currentPath = Split-Path -Path $currentPath -Parent + } + . ($mockingPath | Select-Object -First 1).FullName +} + +Describe 'Invoke-AzEventGridDeactivatePartnerTopic' { + It 'Deactivate' -skip { + { throw [System.NotImplementedException] } | Should -Not -Throw + } + + It 'DeactivateViaIdentity' -skip { + { throw [System.NotImplementedException] } | Should -Not -Throw + } +} diff --git a/swaggerci/eventgrid/test/Invoke-AzEventGridPartnerConfigurationUnauthorize.Tests.ps1 b/swaggerci/eventgrid/test/Invoke-AzEventGridPartnerConfigurationUnauthorize.Tests.ps1 new file mode 100644 index 000000000000..5c1d3a84e96d --- /dev/null +++ b/swaggerci/eventgrid/test/Invoke-AzEventGridPartnerConfigurationUnauthorize.Tests.ps1 @@ -0,0 +1,33 @@ +if(($null -eq $TestName) -or ($TestName -contains 'Invoke-AzEventGridPartnerConfigurationUnauthorize')) +{ + $loadEnvPath = Join-Path $PSScriptRoot 'loadEnv.ps1' + if (-Not (Test-Path -Path $loadEnvPath)) { + $loadEnvPath = Join-Path $PSScriptRoot '..\loadEnv.ps1' + } + . ($loadEnvPath) + $TestRecordingFile = Join-Path $PSScriptRoot 'Invoke-AzEventGridPartnerConfigurationUnauthorize.Recording.json' + $currentPath = $PSScriptRoot + while(-not $mockingPath) { + $mockingPath = Get-ChildItem -Path $currentPath -Recurse -Include 'HttpPipelineMocking.ps1' -File + $currentPath = Split-Path -Path $currentPath -Parent + } + . ($mockingPath | Select-Object -First 1).FullName +} + +Describe 'Invoke-AzEventGridPartnerConfigurationUnauthorize' { + It 'PartnerExpanded' -skip { + { throw [System.NotImplementedException] } | Should -Not -Throw + } + + It 'Partner' -skip { + { throw [System.NotImplementedException] } | Should -Not -Throw + } + + It 'PartnerViaIdentityExpanded' -skip { + { throw [System.NotImplementedException] } | Should -Not -Throw + } + + It 'PartnerViaIdentity' -skip { + { throw [System.NotImplementedException] } | Should -Not -Throw + } +} diff --git a/swaggerci/eventgrid/test/New-AzEventGridChannel.Tests.ps1 b/swaggerci/eventgrid/test/New-AzEventGridChannel.Tests.ps1 new file mode 100644 index 000000000000..b65c4c6fe1dd --- /dev/null +++ b/swaggerci/eventgrid/test/New-AzEventGridChannel.Tests.ps1 @@ -0,0 +1,21 @@ +if(($null -eq $TestName) -or ($TestName -contains 'New-AzEventGridChannel')) +{ + $loadEnvPath = Join-Path $PSScriptRoot 'loadEnv.ps1' + if (-Not (Test-Path -Path $loadEnvPath)) { + $loadEnvPath = Join-Path $PSScriptRoot '..\loadEnv.ps1' + } + . ($loadEnvPath) + $TestRecordingFile = Join-Path $PSScriptRoot 'New-AzEventGridChannel.Recording.json' + $currentPath = $PSScriptRoot + while(-not $mockingPath) { + $mockingPath = Get-ChildItem -Path $currentPath -Recurse -Include 'HttpPipelineMocking.ps1' -File + $currentPath = Split-Path -Path $currentPath -Parent + } + . ($mockingPath | Select-Object -First 1).FullName +} + +Describe 'New-AzEventGridChannel' { + It 'CreateExpanded' -skip { + { throw [System.NotImplementedException] } | Should -Not -Throw + } +} diff --git a/swaggerci/eventgrid/test/New-AzEventGridDomain.Tests.ps1 b/swaggerci/eventgrid/test/New-AzEventGridDomain.Tests.ps1 new file mode 100644 index 000000000000..e1f5529a2ba9 --- /dev/null +++ b/swaggerci/eventgrid/test/New-AzEventGridDomain.Tests.ps1 @@ -0,0 +1,21 @@ +if(($null -eq $TestName) -or ($TestName -contains 'New-AzEventGridDomain')) +{ + $loadEnvPath = Join-Path $PSScriptRoot 'loadEnv.ps1' + if (-Not (Test-Path -Path $loadEnvPath)) { + $loadEnvPath = Join-Path $PSScriptRoot '..\loadEnv.ps1' + } + . ($loadEnvPath) + $TestRecordingFile = Join-Path $PSScriptRoot 'New-AzEventGridDomain.Recording.json' + $currentPath = $PSScriptRoot + while(-not $mockingPath) { + $mockingPath = Get-ChildItem -Path $currentPath -Recurse -Include 'HttpPipelineMocking.ps1' -File + $currentPath = Split-Path -Path $currentPath -Parent + } + . ($mockingPath | Select-Object -First 1).FullName +} + +Describe 'New-AzEventGridDomain' { + It 'CreateExpanded' -skip { + { throw [System.NotImplementedException] } | Should -Not -Throw + } +} diff --git a/swaggerci/eventgrid/test/New-AzEventGridDomainEventSubscription.Tests.ps1 b/swaggerci/eventgrid/test/New-AzEventGridDomainEventSubscription.Tests.ps1 new file mode 100644 index 000000000000..f3301e6d686e --- /dev/null +++ b/swaggerci/eventgrid/test/New-AzEventGridDomainEventSubscription.Tests.ps1 @@ -0,0 +1,21 @@ +if(($null -eq $TestName) -or ($TestName -contains 'New-AzEventGridDomainEventSubscription')) +{ + $loadEnvPath = Join-Path $PSScriptRoot 'loadEnv.ps1' + if (-Not (Test-Path -Path $loadEnvPath)) { + $loadEnvPath = Join-Path $PSScriptRoot '..\loadEnv.ps1' + } + . ($loadEnvPath) + $TestRecordingFile = Join-Path $PSScriptRoot 'New-AzEventGridDomainEventSubscription.Recording.json' + $currentPath = $PSScriptRoot + while(-not $mockingPath) { + $mockingPath = Get-ChildItem -Path $currentPath -Recurse -Include 'HttpPipelineMocking.ps1' -File + $currentPath = Split-Path -Path $currentPath -Parent + } + . ($mockingPath | Select-Object -First 1).FullName +} + +Describe 'New-AzEventGridDomainEventSubscription' { + It 'CreateExpanded' -skip { + { throw [System.NotImplementedException] } | Should -Not -Throw + } +} diff --git a/swaggerci/eventgrid/test/New-AzEventGridDomainKey.Tests.ps1 b/swaggerci/eventgrid/test/New-AzEventGridDomainKey.Tests.ps1 new file mode 100644 index 000000000000..1167f09b4323 --- /dev/null +++ b/swaggerci/eventgrid/test/New-AzEventGridDomainKey.Tests.ps1 @@ -0,0 +1,33 @@ +if(($null -eq $TestName) -or ($TestName -contains 'New-AzEventGridDomainKey')) +{ + $loadEnvPath = Join-Path $PSScriptRoot 'loadEnv.ps1' + if (-Not (Test-Path -Path $loadEnvPath)) { + $loadEnvPath = Join-Path $PSScriptRoot '..\loadEnv.ps1' + } + . ($loadEnvPath) + $TestRecordingFile = Join-Path $PSScriptRoot 'New-AzEventGridDomainKey.Recording.json' + $currentPath = $PSScriptRoot + while(-not $mockingPath) { + $mockingPath = Get-ChildItem -Path $currentPath -Recurse -Include 'HttpPipelineMocking.ps1' -File + $currentPath = Split-Path -Path $currentPath -Parent + } + . ($mockingPath | Select-Object -First 1).FullName +} + +Describe 'New-AzEventGridDomainKey' { + It 'RegenerateExpanded' -skip { + { throw [System.NotImplementedException] } | Should -Not -Throw + } + + It 'Regenerate' -skip { + { throw [System.NotImplementedException] } | Should -Not -Throw + } + + It 'RegenerateViaIdentityExpanded' -skip { + { throw [System.NotImplementedException] } | Should -Not -Throw + } + + It 'RegenerateViaIdentity' -skip { + { throw [System.NotImplementedException] } | Should -Not -Throw + } +} diff --git a/swaggerci/eventgrid/test/New-AzEventGridDomainTopicEventSubscription.Tests.ps1 b/swaggerci/eventgrid/test/New-AzEventGridDomainTopicEventSubscription.Tests.ps1 new file mode 100644 index 000000000000..9e5ca83b157f --- /dev/null +++ b/swaggerci/eventgrid/test/New-AzEventGridDomainTopicEventSubscription.Tests.ps1 @@ -0,0 +1,21 @@ +if(($null -eq $TestName) -or ($TestName -contains 'New-AzEventGridDomainTopicEventSubscription')) +{ + $loadEnvPath = Join-Path $PSScriptRoot 'loadEnv.ps1' + if (-Not (Test-Path -Path $loadEnvPath)) { + $loadEnvPath = Join-Path $PSScriptRoot '..\loadEnv.ps1' + } + . ($loadEnvPath) + $TestRecordingFile = Join-Path $PSScriptRoot 'New-AzEventGridDomainTopicEventSubscription.Recording.json' + $currentPath = $PSScriptRoot + while(-not $mockingPath) { + $mockingPath = Get-ChildItem -Path $currentPath -Recurse -Include 'HttpPipelineMocking.ps1' -File + $currentPath = Split-Path -Path $currentPath -Parent + } + . ($mockingPath | Select-Object -First 1).FullName +} + +Describe 'New-AzEventGridDomainTopicEventSubscription' { + It 'CreateExpanded' -skip { + { throw [System.NotImplementedException] } | Should -Not -Throw + } +} diff --git a/swaggerci/eventgrid/test/New-AzEventGridEventChannel.Tests.ps1 b/swaggerci/eventgrid/test/New-AzEventGridEventChannel.Tests.ps1 new file mode 100644 index 000000000000..2ed3204565c3 --- /dev/null +++ b/swaggerci/eventgrid/test/New-AzEventGridEventChannel.Tests.ps1 @@ -0,0 +1,21 @@ +if(($null -eq $TestName) -or ($TestName -contains 'New-AzEventGridEventChannel')) +{ + $loadEnvPath = Join-Path $PSScriptRoot 'loadEnv.ps1' + if (-Not (Test-Path -Path $loadEnvPath)) { + $loadEnvPath = Join-Path $PSScriptRoot '..\loadEnv.ps1' + } + . ($loadEnvPath) + $TestRecordingFile = Join-Path $PSScriptRoot 'New-AzEventGridEventChannel.Recording.json' + $currentPath = $PSScriptRoot + while(-not $mockingPath) { + $mockingPath = Get-ChildItem -Path $currentPath -Recurse -Include 'HttpPipelineMocking.ps1' -File + $currentPath = Split-Path -Path $currentPath -Parent + } + . ($mockingPath | Select-Object -First 1).FullName +} + +Describe 'New-AzEventGridEventChannel' { + It 'CreateExpanded' -skip { + { throw [System.NotImplementedException] } | Should -Not -Throw + } +} diff --git a/swaggerci/eventgrid/test/New-AzEventGridEventSubscription.Tests.ps1 b/swaggerci/eventgrid/test/New-AzEventGridEventSubscription.Tests.ps1 new file mode 100644 index 000000000000..e8e58234e529 --- /dev/null +++ b/swaggerci/eventgrid/test/New-AzEventGridEventSubscription.Tests.ps1 @@ -0,0 +1,21 @@ +if(($null -eq $TestName) -or ($TestName -contains 'New-AzEventGridEventSubscription')) +{ + $loadEnvPath = Join-Path $PSScriptRoot 'loadEnv.ps1' + if (-Not (Test-Path -Path $loadEnvPath)) { + $loadEnvPath = Join-Path $PSScriptRoot '..\loadEnv.ps1' + } + . ($loadEnvPath) + $TestRecordingFile = Join-Path $PSScriptRoot 'New-AzEventGridEventSubscription.Recording.json' + $currentPath = $PSScriptRoot + while(-not $mockingPath) { + $mockingPath = Get-ChildItem -Path $currentPath -Recurse -Include 'HttpPipelineMocking.ps1' -File + $currentPath = Split-Path -Path $currentPath -Parent + } + . ($mockingPath | Select-Object -First 1).FullName +} + +Describe 'New-AzEventGridEventSubscription' { + It 'CreateExpanded' -skip { + { throw [System.NotImplementedException] } | Should -Not -Throw + } +} diff --git a/swaggerci/eventgrid/test/New-AzEventGridPartnerConfiguration.Tests.ps1 b/swaggerci/eventgrid/test/New-AzEventGridPartnerConfiguration.Tests.ps1 new file mode 100644 index 000000000000..03feb077b4e4 --- /dev/null +++ b/swaggerci/eventgrid/test/New-AzEventGridPartnerConfiguration.Tests.ps1 @@ -0,0 +1,21 @@ +if(($null -eq $TestName) -or ($TestName -contains 'New-AzEventGridPartnerConfiguration')) +{ + $loadEnvPath = Join-Path $PSScriptRoot 'loadEnv.ps1' + if (-Not (Test-Path -Path $loadEnvPath)) { + $loadEnvPath = Join-Path $PSScriptRoot '..\loadEnv.ps1' + } + . ($loadEnvPath) + $TestRecordingFile = Join-Path $PSScriptRoot 'New-AzEventGridPartnerConfiguration.Recording.json' + $currentPath = $PSScriptRoot + while(-not $mockingPath) { + $mockingPath = Get-ChildItem -Path $currentPath -Recurse -Include 'HttpPipelineMocking.ps1' -File + $currentPath = Split-Path -Path $currentPath -Parent + } + . ($mockingPath | Select-Object -First 1).FullName +} + +Describe 'New-AzEventGridPartnerConfiguration' { + It 'CreateExpanded' -skip { + { throw [System.NotImplementedException] } | Should -Not -Throw + } +} diff --git a/swaggerci/eventgrid/test/New-AzEventGridPartnerDestination.Tests.ps1 b/swaggerci/eventgrid/test/New-AzEventGridPartnerDestination.Tests.ps1 new file mode 100644 index 000000000000..33d5e6b277c6 --- /dev/null +++ b/swaggerci/eventgrid/test/New-AzEventGridPartnerDestination.Tests.ps1 @@ -0,0 +1,21 @@ +if(($null -eq $TestName) -or ($TestName -contains 'New-AzEventGridPartnerDestination')) +{ + $loadEnvPath = Join-Path $PSScriptRoot 'loadEnv.ps1' + if (-Not (Test-Path -Path $loadEnvPath)) { + $loadEnvPath = Join-Path $PSScriptRoot '..\loadEnv.ps1' + } + . ($loadEnvPath) + $TestRecordingFile = Join-Path $PSScriptRoot 'New-AzEventGridPartnerDestination.Recording.json' + $currentPath = $PSScriptRoot + while(-not $mockingPath) { + $mockingPath = Get-ChildItem -Path $currentPath -Recurse -Include 'HttpPipelineMocking.ps1' -File + $currentPath = Split-Path -Path $currentPath -Parent + } + . ($mockingPath | Select-Object -First 1).FullName +} + +Describe 'New-AzEventGridPartnerDestination' { + It 'CreateExpanded' -skip { + { throw [System.NotImplementedException] } | Should -Not -Throw + } +} diff --git a/swaggerci/eventgrid/test/New-AzEventGridPartnerNamespace.Tests.ps1 b/swaggerci/eventgrid/test/New-AzEventGridPartnerNamespace.Tests.ps1 new file mode 100644 index 000000000000..598b744c7315 --- /dev/null +++ b/swaggerci/eventgrid/test/New-AzEventGridPartnerNamespace.Tests.ps1 @@ -0,0 +1,21 @@ +if(($null -eq $TestName) -or ($TestName -contains 'New-AzEventGridPartnerNamespace')) +{ + $loadEnvPath = Join-Path $PSScriptRoot 'loadEnv.ps1' + if (-Not (Test-Path -Path $loadEnvPath)) { + $loadEnvPath = Join-Path $PSScriptRoot '..\loadEnv.ps1' + } + . ($loadEnvPath) + $TestRecordingFile = Join-Path $PSScriptRoot 'New-AzEventGridPartnerNamespace.Recording.json' + $currentPath = $PSScriptRoot + while(-not $mockingPath) { + $mockingPath = Get-ChildItem -Path $currentPath -Recurse -Include 'HttpPipelineMocking.ps1' -File + $currentPath = Split-Path -Path $currentPath -Parent + } + . ($mockingPath | Select-Object -First 1).FullName +} + +Describe 'New-AzEventGridPartnerNamespace' { + It 'CreateExpanded' -skip { + { throw [System.NotImplementedException] } | Should -Not -Throw + } +} diff --git a/swaggerci/eventgrid/test/New-AzEventGridPartnerNamespaceKey.Tests.ps1 b/swaggerci/eventgrid/test/New-AzEventGridPartnerNamespaceKey.Tests.ps1 new file mode 100644 index 000000000000..f6bc1eac9d66 --- /dev/null +++ b/swaggerci/eventgrid/test/New-AzEventGridPartnerNamespaceKey.Tests.ps1 @@ -0,0 +1,33 @@ +if(($null -eq $TestName) -or ($TestName -contains 'New-AzEventGridPartnerNamespaceKey')) +{ + $loadEnvPath = Join-Path $PSScriptRoot 'loadEnv.ps1' + if (-Not (Test-Path -Path $loadEnvPath)) { + $loadEnvPath = Join-Path $PSScriptRoot '..\loadEnv.ps1' + } + . ($loadEnvPath) + $TestRecordingFile = Join-Path $PSScriptRoot 'New-AzEventGridPartnerNamespaceKey.Recording.json' + $currentPath = $PSScriptRoot + while(-not $mockingPath) { + $mockingPath = Get-ChildItem -Path $currentPath -Recurse -Include 'HttpPipelineMocking.ps1' -File + $currentPath = Split-Path -Path $currentPath -Parent + } + . ($mockingPath | Select-Object -First 1).FullName +} + +Describe 'New-AzEventGridPartnerNamespaceKey' { + It 'RegenerateExpanded' -skip { + { throw [System.NotImplementedException] } | Should -Not -Throw + } + + It 'Regenerate' -skip { + { throw [System.NotImplementedException] } | Should -Not -Throw + } + + It 'RegenerateViaIdentityExpanded' -skip { + { throw [System.NotImplementedException] } | Should -Not -Throw + } + + It 'RegenerateViaIdentity' -skip { + { throw [System.NotImplementedException] } | Should -Not -Throw + } +} diff --git a/swaggerci/eventgrid/test/New-AzEventGridPartnerRegistration.Tests.ps1 b/swaggerci/eventgrid/test/New-AzEventGridPartnerRegistration.Tests.ps1 new file mode 100644 index 000000000000..1c8465861fa9 --- /dev/null +++ b/swaggerci/eventgrid/test/New-AzEventGridPartnerRegistration.Tests.ps1 @@ -0,0 +1,21 @@ +if(($null -eq $TestName) -or ($TestName -contains 'New-AzEventGridPartnerRegistration')) +{ + $loadEnvPath = Join-Path $PSScriptRoot 'loadEnv.ps1' + if (-Not (Test-Path -Path $loadEnvPath)) { + $loadEnvPath = Join-Path $PSScriptRoot '..\loadEnv.ps1' + } + . ($loadEnvPath) + $TestRecordingFile = Join-Path $PSScriptRoot 'New-AzEventGridPartnerRegistration.Recording.json' + $currentPath = $PSScriptRoot + while(-not $mockingPath) { + $mockingPath = Get-ChildItem -Path $currentPath -Recurse -Include 'HttpPipelineMocking.ps1' -File + $currentPath = Split-Path -Path $currentPath -Parent + } + . ($mockingPath | Select-Object -First 1).FullName +} + +Describe 'New-AzEventGridPartnerRegistration' { + It 'CreateExpanded' -skip { + { throw [System.NotImplementedException] } | Should -Not -Throw + } +} diff --git a/swaggerci/eventgrid/test/New-AzEventGridPartnerTopic.Tests.ps1 b/swaggerci/eventgrid/test/New-AzEventGridPartnerTopic.Tests.ps1 new file mode 100644 index 000000000000..e70e64f7ab13 --- /dev/null +++ b/swaggerci/eventgrid/test/New-AzEventGridPartnerTopic.Tests.ps1 @@ -0,0 +1,21 @@ +if(($null -eq $TestName) -or ($TestName -contains 'New-AzEventGridPartnerTopic')) +{ + $loadEnvPath = Join-Path $PSScriptRoot 'loadEnv.ps1' + if (-Not (Test-Path -Path $loadEnvPath)) { + $loadEnvPath = Join-Path $PSScriptRoot '..\loadEnv.ps1' + } + . ($loadEnvPath) + $TestRecordingFile = Join-Path $PSScriptRoot 'New-AzEventGridPartnerTopic.Recording.json' + $currentPath = $PSScriptRoot + while(-not $mockingPath) { + $mockingPath = Get-ChildItem -Path $currentPath -Recurse -Include 'HttpPipelineMocking.ps1' -File + $currentPath = Split-Path -Path $currentPath -Parent + } + . ($mockingPath | Select-Object -First 1).FullName +} + +Describe 'New-AzEventGridPartnerTopic' { + It 'CreateExpanded' -skip { + { throw [System.NotImplementedException] } | Should -Not -Throw + } +} diff --git a/swaggerci/eventgrid/test/New-AzEventGridPartnerTopicEventSubscription.Tests.ps1 b/swaggerci/eventgrid/test/New-AzEventGridPartnerTopicEventSubscription.Tests.ps1 new file mode 100644 index 000000000000..def83a9e33e8 --- /dev/null +++ b/swaggerci/eventgrid/test/New-AzEventGridPartnerTopicEventSubscription.Tests.ps1 @@ -0,0 +1,21 @@ +if(($null -eq $TestName) -or ($TestName -contains 'New-AzEventGridPartnerTopicEventSubscription')) +{ + $loadEnvPath = Join-Path $PSScriptRoot 'loadEnv.ps1' + if (-Not (Test-Path -Path $loadEnvPath)) { + $loadEnvPath = Join-Path $PSScriptRoot '..\loadEnv.ps1' + } + . ($loadEnvPath) + $TestRecordingFile = Join-Path $PSScriptRoot 'New-AzEventGridPartnerTopicEventSubscription.Recording.json' + $currentPath = $PSScriptRoot + while(-not $mockingPath) { + $mockingPath = Get-ChildItem -Path $currentPath -Recurse -Include 'HttpPipelineMocking.ps1' -File + $currentPath = Split-Path -Path $currentPath -Parent + } + . ($mockingPath | Select-Object -First 1).FullName +} + +Describe 'New-AzEventGridPartnerTopicEventSubscription' { + It 'CreateExpanded' -skip { + { throw [System.NotImplementedException] } | Should -Not -Throw + } +} diff --git a/swaggerci/eventgrid/test/New-AzEventGridSystemTopic.Tests.ps1 b/swaggerci/eventgrid/test/New-AzEventGridSystemTopic.Tests.ps1 new file mode 100644 index 000000000000..6b1e4d487a37 --- /dev/null +++ b/swaggerci/eventgrid/test/New-AzEventGridSystemTopic.Tests.ps1 @@ -0,0 +1,21 @@ +if(($null -eq $TestName) -or ($TestName -contains 'New-AzEventGridSystemTopic')) +{ + $loadEnvPath = Join-Path $PSScriptRoot 'loadEnv.ps1' + if (-Not (Test-Path -Path $loadEnvPath)) { + $loadEnvPath = Join-Path $PSScriptRoot '..\loadEnv.ps1' + } + . ($loadEnvPath) + $TestRecordingFile = Join-Path $PSScriptRoot 'New-AzEventGridSystemTopic.Recording.json' + $currentPath = $PSScriptRoot + while(-not $mockingPath) { + $mockingPath = Get-ChildItem -Path $currentPath -Recurse -Include 'HttpPipelineMocking.ps1' -File + $currentPath = Split-Path -Path $currentPath -Parent + } + . ($mockingPath | Select-Object -First 1).FullName +} + +Describe 'New-AzEventGridSystemTopic' { + It 'CreateExpanded' -skip { + { throw [System.NotImplementedException] } | Should -Not -Throw + } +} diff --git a/swaggerci/eventgrid/test/New-AzEventGridSystemTopicEventSubscription.Tests.ps1 b/swaggerci/eventgrid/test/New-AzEventGridSystemTopicEventSubscription.Tests.ps1 new file mode 100644 index 000000000000..c50a9026de22 --- /dev/null +++ b/swaggerci/eventgrid/test/New-AzEventGridSystemTopicEventSubscription.Tests.ps1 @@ -0,0 +1,21 @@ +if(($null -eq $TestName) -or ($TestName -contains 'New-AzEventGridSystemTopicEventSubscription')) +{ + $loadEnvPath = Join-Path $PSScriptRoot 'loadEnv.ps1' + if (-Not (Test-Path -Path $loadEnvPath)) { + $loadEnvPath = Join-Path $PSScriptRoot '..\loadEnv.ps1' + } + . ($loadEnvPath) + $TestRecordingFile = Join-Path $PSScriptRoot 'New-AzEventGridSystemTopicEventSubscription.Recording.json' + $currentPath = $PSScriptRoot + while(-not $mockingPath) { + $mockingPath = Get-ChildItem -Path $currentPath -Recurse -Include 'HttpPipelineMocking.ps1' -File + $currentPath = Split-Path -Path $currentPath -Parent + } + . ($mockingPath | Select-Object -First 1).FullName +} + +Describe 'New-AzEventGridSystemTopicEventSubscription' { + It 'CreateExpanded' -skip { + { throw [System.NotImplementedException] } | Should -Not -Throw + } +} diff --git a/swaggerci/eventgrid/test/New-AzEventGridTopic.Tests.ps1 b/swaggerci/eventgrid/test/New-AzEventGridTopic.Tests.ps1 new file mode 100644 index 000000000000..ed07d7a79af9 --- /dev/null +++ b/swaggerci/eventgrid/test/New-AzEventGridTopic.Tests.ps1 @@ -0,0 +1,21 @@ +if(($null -eq $TestName) -or ($TestName -contains 'New-AzEventGridTopic')) +{ + $loadEnvPath = Join-Path $PSScriptRoot 'loadEnv.ps1' + if (-Not (Test-Path -Path $loadEnvPath)) { + $loadEnvPath = Join-Path $PSScriptRoot '..\loadEnv.ps1' + } + . ($loadEnvPath) + $TestRecordingFile = Join-Path $PSScriptRoot 'New-AzEventGridTopic.Recording.json' + $currentPath = $PSScriptRoot + while(-not $mockingPath) { + $mockingPath = Get-ChildItem -Path $currentPath -Recurse -Include 'HttpPipelineMocking.ps1' -File + $currentPath = Split-Path -Path $currentPath -Parent + } + . ($mockingPath | Select-Object -First 1).FullName +} + +Describe 'New-AzEventGridTopic' { + It 'CreateExpanded' -skip { + { throw [System.NotImplementedException] } | Should -Not -Throw + } +} diff --git a/swaggerci/eventgrid/test/New-AzEventGridTopicEventSubscription.Tests.ps1 b/swaggerci/eventgrid/test/New-AzEventGridTopicEventSubscription.Tests.ps1 new file mode 100644 index 000000000000..2908111605f7 --- /dev/null +++ b/swaggerci/eventgrid/test/New-AzEventGridTopicEventSubscription.Tests.ps1 @@ -0,0 +1,21 @@ +if(($null -eq $TestName) -or ($TestName -contains 'New-AzEventGridTopicEventSubscription')) +{ + $loadEnvPath = Join-Path $PSScriptRoot 'loadEnv.ps1' + if (-Not (Test-Path -Path $loadEnvPath)) { + $loadEnvPath = Join-Path $PSScriptRoot '..\loadEnv.ps1' + } + . ($loadEnvPath) + $TestRecordingFile = Join-Path $PSScriptRoot 'New-AzEventGridTopicEventSubscription.Recording.json' + $currentPath = $PSScriptRoot + while(-not $mockingPath) { + $mockingPath = Get-ChildItem -Path $currentPath -Recurse -Include 'HttpPipelineMocking.ps1' -File + $currentPath = Split-Path -Path $currentPath -Parent + } + . ($mockingPath | Select-Object -First 1).FullName +} + +Describe 'New-AzEventGridTopicEventSubscription' { + It 'CreateExpanded' -skip { + { throw [System.NotImplementedException] } | Should -Not -Throw + } +} diff --git a/swaggerci/eventgrid/test/New-AzEventGridTopicKey.Tests.ps1 b/swaggerci/eventgrid/test/New-AzEventGridTopicKey.Tests.ps1 new file mode 100644 index 000000000000..e180217be4b7 --- /dev/null +++ b/swaggerci/eventgrid/test/New-AzEventGridTopicKey.Tests.ps1 @@ -0,0 +1,33 @@ +if(($null -eq $TestName) -or ($TestName -contains 'New-AzEventGridTopicKey')) +{ + $loadEnvPath = Join-Path $PSScriptRoot 'loadEnv.ps1' + if (-Not (Test-Path -Path $loadEnvPath)) { + $loadEnvPath = Join-Path $PSScriptRoot '..\loadEnv.ps1' + } + . ($loadEnvPath) + $TestRecordingFile = Join-Path $PSScriptRoot 'New-AzEventGridTopicKey.Recording.json' + $currentPath = $PSScriptRoot + while(-not $mockingPath) { + $mockingPath = Get-ChildItem -Path $currentPath -Recurse -Include 'HttpPipelineMocking.ps1' -File + $currentPath = Split-Path -Path $currentPath -Parent + } + . ($mockingPath | Select-Object -First 1).FullName +} + +Describe 'New-AzEventGridTopicKey' { + It 'RegenerateExpanded' -skip { + { throw [System.NotImplementedException] } | Should -Not -Throw + } + + It 'Regenerate' -skip { + { throw [System.NotImplementedException] } | Should -Not -Throw + } + + It 'RegenerateViaIdentityExpanded' -skip { + { throw [System.NotImplementedException] } | Should -Not -Throw + } + + It 'RegenerateViaIdentity' -skip { + { throw [System.NotImplementedException] } | Should -Not -Throw + } +} diff --git a/swaggerci/eventgrid/test/README.md b/swaggerci/eventgrid/test/README.md new file mode 100644 index 000000000000..1969200c6a09 --- /dev/null +++ b/swaggerci/eventgrid/test/README.md @@ -0,0 +1,17 @@ +# Test +This directory contains the [Pester](https://www.powershellgallery.com/packages/Pester) tests to run for the module. We use Pester as it is the unofficial standard for PowerShell unit testing. Test stubs for custom cmdlets (created in `../custom`) will be generated into this folder when `build-module.ps1` is ran. These test stubs will fail automatically, to indicate that tests should be written for custom cmdlets. + +## Info +- Modifiable: yes +- Generated: partial +- Committed: yes +- Packaged: no + +## Details +We allow three testing modes: *live*, *record*, and *playback*. These can be selected using the `-Live`, `-Record`, and `-Playback` switches respectively on the `test-module.ps1` script. This script will run through any `.Tests.ps1` scripts in the `test` folder. If you choose the *record* mode, it will create a `.Recording.json` file of the REST calls between the client and server. Then, when you choose *playback* mode, it will use the `.Recording.json` file to mock the communication between server and client. The *live* mode runs the same as the *record* mode; however, it doesn't create the `.Recording.json` file. + +## Purpose +Custom cmdlets generally encompass additional functionality not described in the REST specification, or combines functionality generated from the REST spec. To validate this functionality continues to operate as intended, creating tests that can be ran and re-ran against custom cmdlets is part of the framework. + +## Usage +To execute tests, run the `test-module.ps1`. To write tests, [this example](https://github.com/pester/Pester/blob/8b9cf4248315e44f1ac6673be149f7e0d7f10466/Examples/Planets/Get-Planet.Tests.ps1#L1) from the Pester repository is very useful for getting started. \ No newline at end of file diff --git a/swaggerci/eventgrid/test/Remove-AzEventGridChannel.Tests.ps1 b/swaggerci/eventgrid/test/Remove-AzEventGridChannel.Tests.ps1 new file mode 100644 index 000000000000..70ae8917f04c --- /dev/null +++ b/swaggerci/eventgrid/test/Remove-AzEventGridChannel.Tests.ps1 @@ -0,0 +1,25 @@ +if(($null -eq $TestName) -or ($TestName -contains 'Remove-AzEventGridChannel')) +{ + $loadEnvPath = Join-Path $PSScriptRoot 'loadEnv.ps1' + if (-Not (Test-Path -Path $loadEnvPath)) { + $loadEnvPath = Join-Path $PSScriptRoot '..\loadEnv.ps1' + } + . ($loadEnvPath) + $TestRecordingFile = Join-Path $PSScriptRoot 'Remove-AzEventGridChannel.Recording.json' + $currentPath = $PSScriptRoot + while(-not $mockingPath) { + $mockingPath = Get-ChildItem -Path $currentPath -Recurse -Include 'HttpPipelineMocking.ps1' -File + $currentPath = Split-Path -Path $currentPath -Parent + } + . ($mockingPath | Select-Object -First 1).FullName +} + +Describe 'Remove-AzEventGridChannel' { + It 'Delete' -skip { + { throw [System.NotImplementedException] } | Should -Not -Throw + } + + It 'DeleteViaIdentity' -skip { + { throw [System.NotImplementedException] } | Should -Not -Throw + } +} diff --git a/swaggerci/eventgrid/test/Remove-AzEventGridDomain.Tests.ps1 b/swaggerci/eventgrid/test/Remove-AzEventGridDomain.Tests.ps1 new file mode 100644 index 000000000000..28ebe1cda118 --- /dev/null +++ b/swaggerci/eventgrid/test/Remove-AzEventGridDomain.Tests.ps1 @@ -0,0 +1,25 @@ +if(($null -eq $TestName) -or ($TestName -contains 'Remove-AzEventGridDomain')) +{ + $loadEnvPath = Join-Path $PSScriptRoot 'loadEnv.ps1' + if (-Not (Test-Path -Path $loadEnvPath)) { + $loadEnvPath = Join-Path $PSScriptRoot '..\loadEnv.ps1' + } + . ($loadEnvPath) + $TestRecordingFile = Join-Path $PSScriptRoot 'Remove-AzEventGridDomain.Recording.json' + $currentPath = $PSScriptRoot + while(-not $mockingPath) { + $mockingPath = Get-ChildItem -Path $currentPath -Recurse -Include 'HttpPipelineMocking.ps1' -File + $currentPath = Split-Path -Path $currentPath -Parent + } + . ($mockingPath | Select-Object -First 1).FullName +} + +Describe 'Remove-AzEventGridDomain' { + It 'Delete' -skip { + { throw [System.NotImplementedException] } | Should -Not -Throw + } + + It 'DeleteViaIdentity' -skip { + { throw [System.NotImplementedException] } | Should -Not -Throw + } +} diff --git a/swaggerci/eventgrid/test/Remove-AzEventGridDomainEventSubscription.Tests.ps1 b/swaggerci/eventgrid/test/Remove-AzEventGridDomainEventSubscription.Tests.ps1 new file mode 100644 index 000000000000..67788b53a45c --- /dev/null +++ b/swaggerci/eventgrid/test/Remove-AzEventGridDomainEventSubscription.Tests.ps1 @@ -0,0 +1,25 @@ +if(($null -eq $TestName) -or ($TestName -contains 'Remove-AzEventGridDomainEventSubscription')) +{ + $loadEnvPath = Join-Path $PSScriptRoot 'loadEnv.ps1' + if (-Not (Test-Path -Path $loadEnvPath)) { + $loadEnvPath = Join-Path $PSScriptRoot '..\loadEnv.ps1' + } + . ($loadEnvPath) + $TestRecordingFile = Join-Path $PSScriptRoot 'Remove-AzEventGridDomainEventSubscription.Recording.json' + $currentPath = $PSScriptRoot + while(-not $mockingPath) { + $mockingPath = Get-ChildItem -Path $currentPath -Recurse -Include 'HttpPipelineMocking.ps1' -File + $currentPath = Split-Path -Path $currentPath -Parent + } + . ($mockingPath | Select-Object -First 1).FullName +} + +Describe 'Remove-AzEventGridDomainEventSubscription' { + It 'Delete' -skip { + { throw [System.NotImplementedException] } | Should -Not -Throw + } + + It 'DeleteViaIdentity' -skip { + { throw [System.NotImplementedException] } | Should -Not -Throw + } +} diff --git a/swaggerci/eventgrid/test/Remove-AzEventGridDomainTopic.Tests.ps1 b/swaggerci/eventgrid/test/Remove-AzEventGridDomainTopic.Tests.ps1 new file mode 100644 index 000000000000..5341328c13bb --- /dev/null +++ b/swaggerci/eventgrid/test/Remove-AzEventGridDomainTopic.Tests.ps1 @@ -0,0 +1,25 @@ +if(($null -eq $TestName) -or ($TestName -contains 'Remove-AzEventGridDomainTopic')) +{ + $loadEnvPath = Join-Path $PSScriptRoot 'loadEnv.ps1' + if (-Not (Test-Path -Path $loadEnvPath)) { + $loadEnvPath = Join-Path $PSScriptRoot '..\loadEnv.ps1' + } + . ($loadEnvPath) + $TestRecordingFile = Join-Path $PSScriptRoot 'Remove-AzEventGridDomainTopic.Recording.json' + $currentPath = $PSScriptRoot + while(-not $mockingPath) { + $mockingPath = Get-ChildItem -Path $currentPath -Recurse -Include 'HttpPipelineMocking.ps1' -File + $currentPath = Split-Path -Path $currentPath -Parent + } + . ($mockingPath | Select-Object -First 1).FullName +} + +Describe 'Remove-AzEventGridDomainTopic' { + It 'Delete' -skip { + { throw [System.NotImplementedException] } | Should -Not -Throw + } + + It 'DeleteViaIdentity' -skip { + { throw [System.NotImplementedException] } | Should -Not -Throw + } +} diff --git a/swaggerci/eventgrid/test/Remove-AzEventGridDomainTopicEventSubscription.Tests.ps1 b/swaggerci/eventgrid/test/Remove-AzEventGridDomainTopicEventSubscription.Tests.ps1 new file mode 100644 index 000000000000..0c6de16fbf7d --- /dev/null +++ b/swaggerci/eventgrid/test/Remove-AzEventGridDomainTopicEventSubscription.Tests.ps1 @@ -0,0 +1,25 @@ +if(($null -eq $TestName) -or ($TestName -contains 'Remove-AzEventGridDomainTopicEventSubscription')) +{ + $loadEnvPath = Join-Path $PSScriptRoot 'loadEnv.ps1' + if (-Not (Test-Path -Path $loadEnvPath)) { + $loadEnvPath = Join-Path $PSScriptRoot '..\loadEnv.ps1' + } + . ($loadEnvPath) + $TestRecordingFile = Join-Path $PSScriptRoot 'Remove-AzEventGridDomainTopicEventSubscription.Recording.json' + $currentPath = $PSScriptRoot + while(-not $mockingPath) { + $mockingPath = Get-ChildItem -Path $currentPath -Recurse -Include 'HttpPipelineMocking.ps1' -File + $currentPath = Split-Path -Path $currentPath -Parent + } + . ($mockingPath | Select-Object -First 1).FullName +} + +Describe 'Remove-AzEventGridDomainTopicEventSubscription' { + It 'Delete' -skip { + { throw [System.NotImplementedException] } | Should -Not -Throw + } + + It 'DeleteViaIdentity' -skip { + { throw [System.NotImplementedException] } | Should -Not -Throw + } +} diff --git a/swaggerci/eventgrid/test/Remove-AzEventGridEventChannel.Tests.ps1 b/swaggerci/eventgrid/test/Remove-AzEventGridEventChannel.Tests.ps1 new file mode 100644 index 000000000000..0b181674bc2f --- /dev/null +++ b/swaggerci/eventgrid/test/Remove-AzEventGridEventChannel.Tests.ps1 @@ -0,0 +1,25 @@ +if(($null -eq $TestName) -or ($TestName -contains 'Remove-AzEventGridEventChannel')) +{ + $loadEnvPath = Join-Path $PSScriptRoot 'loadEnv.ps1' + if (-Not (Test-Path -Path $loadEnvPath)) { + $loadEnvPath = Join-Path $PSScriptRoot '..\loadEnv.ps1' + } + . ($loadEnvPath) + $TestRecordingFile = Join-Path $PSScriptRoot 'Remove-AzEventGridEventChannel.Recording.json' + $currentPath = $PSScriptRoot + while(-not $mockingPath) { + $mockingPath = Get-ChildItem -Path $currentPath -Recurse -Include 'HttpPipelineMocking.ps1' -File + $currentPath = Split-Path -Path $currentPath -Parent + } + . ($mockingPath | Select-Object -First 1).FullName +} + +Describe 'Remove-AzEventGridEventChannel' { + It 'Delete' -skip { + { throw [System.NotImplementedException] } | Should -Not -Throw + } + + It 'DeleteViaIdentity' -skip { + { throw [System.NotImplementedException] } | Should -Not -Throw + } +} diff --git a/swaggerci/eventgrid/test/Remove-AzEventGridEventSubscription.Tests.ps1 b/swaggerci/eventgrid/test/Remove-AzEventGridEventSubscription.Tests.ps1 new file mode 100644 index 000000000000..96d819aa6881 --- /dev/null +++ b/swaggerci/eventgrid/test/Remove-AzEventGridEventSubscription.Tests.ps1 @@ -0,0 +1,25 @@ +if(($null -eq $TestName) -or ($TestName -contains 'Remove-AzEventGridEventSubscription')) +{ + $loadEnvPath = Join-Path $PSScriptRoot 'loadEnv.ps1' + if (-Not (Test-Path -Path $loadEnvPath)) { + $loadEnvPath = Join-Path $PSScriptRoot '..\loadEnv.ps1' + } + . ($loadEnvPath) + $TestRecordingFile = Join-Path $PSScriptRoot 'Remove-AzEventGridEventSubscription.Recording.json' + $currentPath = $PSScriptRoot + while(-not $mockingPath) { + $mockingPath = Get-ChildItem -Path $currentPath -Recurse -Include 'HttpPipelineMocking.ps1' -File + $currentPath = Split-Path -Path $currentPath -Parent + } + . ($mockingPath | Select-Object -First 1).FullName +} + +Describe 'Remove-AzEventGridEventSubscription' { + It 'Delete' -skip { + { throw [System.NotImplementedException] } | Should -Not -Throw + } + + It 'DeleteViaIdentity' -skip { + { throw [System.NotImplementedException] } | Should -Not -Throw + } +} diff --git a/swaggerci/eventgrid/test/Remove-AzEventGridPartnerConfiguration.Tests.ps1 b/swaggerci/eventgrid/test/Remove-AzEventGridPartnerConfiguration.Tests.ps1 new file mode 100644 index 000000000000..fe316cebd208 --- /dev/null +++ b/swaggerci/eventgrid/test/Remove-AzEventGridPartnerConfiguration.Tests.ps1 @@ -0,0 +1,25 @@ +if(($null -eq $TestName) -or ($TestName -contains 'Remove-AzEventGridPartnerConfiguration')) +{ + $loadEnvPath = Join-Path $PSScriptRoot 'loadEnv.ps1' + if (-Not (Test-Path -Path $loadEnvPath)) { + $loadEnvPath = Join-Path $PSScriptRoot '..\loadEnv.ps1' + } + . ($loadEnvPath) + $TestRecordingFile = Join-Path $PSScriptRoot 'Remove-AzEventGridPartnerConfiguration.Recording.json' + $currentPath = $PSScriptRoot + while(-not $mockingPath) { + $mockingPath = Get-ChildItem -Path $currentPath -Recurse -Include 'HttpPipelineMocking.ps1' -File + $currentPath = Split-Path -Path $currentPath -Parent + } + . ($mockingPath | Select-Object -First 1).FullName +} + +Describe 'Remove-AzEventGridPartnerConfiguration' { + It 'Delete' -skip { + { throw [System.NotImplementedException] } | Should -Not -Throw + } + + It 'DeleteViaIdentity' -skip { + { throw [System.NotImplementedException] } | Should -Not -Throw + } +} diff --git a/swaggerci/eventgrid/test/Remove-AzEventGridPartnerDestination.Tests.ps1 b/swaggerci/eventgrid/test/Remove-AzEventGridPartnerDestination.Tests.ps1 new file mode 100644 index 000000000000..49d0785f2606 --- /dev/null +++ b/swaggerci/eventgrid/test/Remove-AzEventGridPartnerDestination.Tests.ps1 @@ -0,0 +1,25 @@ +if(($null -eq $TestName) -or ($TestName -contains 'Remove-AzEventGridPartnerDestination')) +{ + $loadEnvPath = Join-Path $PSScriptRoot 'loadEnv.ps1' + if (-Not (Test-Path -Path $loadEnvPath)) { + $loadEnvPath = Join-Path $PSScriptRoot '..\loadEnv.ps1' + } + . ($loadEnvPath) + $TestRecordingFile = Join-Path $PSScriptRoot 'Remove-AzEventGridPartnerDestination.Recording.json' + $currentPath = $PSScriptRoot + while(-not $mockingPath) { + $mockingPath = Get-ChildItem -Path $currentPath -Recurse -Include 'HttpPipelineMocking.ps1' -File + $currentPath = Split-Path -Path $currentPath -Parent + } + . ($mockingPath | Select-Object -First 1).FullName +} + +Describe 'Remove-AzEventGridPartnerDestination' { + It 'Delete' -skip { + { throw [System.NotImplementedException] } | Should -Not -Throw + } + + It 'DeleteViaIdentity' -skip { + { throw [System.NotImplementedException] } | Should -Not -Throw + } +} diff --git a/swaggerci/eventgrid/test/Remove-AzEventGridPartnerNamespace.Tests.ps1 b/swaggerci/eventgrid/test/Remove-AzEventGridPartnerNamespace.Tests.ps1 new file mode 100644 index 000000000000..22f6b43b22f6 --- /dev/null +++ b/swaggerci/eventgrid/test/Remove-AzEventGridPartnerNamespace.Tests.ps1 @@ -0,0 +1,25 @@ +if(($null -eq $TestName) -or ($TestName -contains 'Remove-AzEventGridPartnerNamespace')) +{ + $loadEnvPath = Join-Path $PSScriptRoot 'loadEnv.ps1' + if (-Not (Test-Path -Path $loadEnvPath)) { + $loadEnvPath = Join-Path $PSScriptRoot '..\loadEnv.ps1' + } + . ($loadEnvPath) + $TestRecordingFile = Join-Path $PSScriptRoot 'Remove-AzEventGridPartnerNamespace.Recording.json' + $currentPath = $PSScriptRoot + while(-not $mockingPath) { + $mockingPath = Get-ChildItem -Path $currentPath -Recurse -Include 'HttpPipelineMocking.ps1' -File + $currentPath = Split-Path -Path $currentPath -Parent + } + . ($mockingPath | Select-Object -First 1).FullName +} + +Describe 'Remove-AzEventGridPartnerNamespace' { + It 'Delete' -skip { + { throw [System.NotImplementedException] } | Should -Not -Throw + } + + It 'DeleteViaIdentity' -skip { + { throw [System.NotImplementedException] } | Should -Not -Throw + } +} diff --git a/swaggerci/eventgrid/test/Remove-AzEventGridPartnerRegistration.Tests.ps1 b/swaggerci/eventgrid/test/Remove-AzEventGridPartnerRegistration.Tests.ps1 new file mode 100644 index 000000000000..830503bca130 --- /dev/null +++ b/swaggerci/eventgrid/test/Remove-AzEventGridPartnerRegistration.Tests.ps1 @@ -0,0 +1,25 @@ +if(($null -eq $TestName) -or ($TestName -contains 'Remove-AzEventGridPartnerRegistration')) +{ + $loadEnvPath = Join-Path $PSScriptRoot 'loadEnv.ps1' + if (-Not (Test-Path -Path $loadEnvPath)) { + $loadEnvPath = Join-Path $PSScriptRoot '..\loadEnv.ps1' + } + . ($loadEnvPath) + $TestRecordingFile = Join-Path $PSScriptRoot 'Remove-AzEventGridPartnerRegistration.Recording.json' + $currentPath = $PSScriptRoot + while(-not $mockingPath) { + $mockingPath = Get-ChildItem -Path $currentPath -Recurse -Include 'HttpPipelineMocking.ps1' -File + $currentPath = Split-Path -Path $currentPath -Parent + } + . ($mockingPath | Select-Object -First 1).FullName +} + +Describe 'Remove-AzEventGridPartnerRegistration' { + It 'Delete' -skip { + { throw [System.NotImplementedException] } | Should -Not -Throw + } + + It 'DeleteViaIdentity' -skip { + { throw [System.NotImplementedException] } | Should -Not -Throw + } +} diff --git a/swaggerci/eventgrid/test/Remove-AzEventGridPartnerTopic.Tests.ps1 b/swaggerci/eventgrid/test/Remove-AzEventGridPartnerTopic.Tests.ps1 new file mode 100644 index 000000000000..b4cd6b8cf7dd --- /dev/null +++ b/swaggerci/eventgrid/test/Remove-AzEventGridPartnerTopic.Tests.ps1 @@ -0,0 +1,25 @@ +if(($null -eq $TestName) -or ($TestName -contains 'Remove-AzEventGridPartnerTopic')) +{ + $loadEnvPath = Join-Path $PSScriptRoot 'loadEnv.ps1' + if (-Not (Test-Path -Path $loadEnvPath)) { + $loadEnvPath = Join-Path $PSScriptRoot '..\loadEnv.ps1' + } + . ($loadEnvPath) + $TestRecordingFile = Join-Path $PSScriptRoot 'Remove-AzEventGridPartnerTopic.Recording.json' + $currentPath = $PSScriptRoot + while(-not $mockingPath) { + $mockingPath = Get-ChildItem -Path $currentPath -Recurse -Include 'HttpPipelineMocking.ps1' -File + $currentPath = Split-Path -Path $currentPath -Parent + } + . ($mockingPath | Select-Object -First 1).FullName +} + +Describe 'Remove-AzEventGridPartnerTopic' { + It 'Delete' -skip { + { throw [System.NotImplementedException] } | Should -Not -Throw + } + + It 'DeleteViaIdentity' -skip { + { throw [System.NotImplementedException] } | Should -Not -Throw + } +} diff --git a/swaggerci/eventgrid/test/Remove-AzEventGridPartnerTopicEventSubscription.Tests.ps1 b/swaggerci/eventgrid/test/Remove-AzEventGridPartnerTopicEventSubscription.Tests.ps1 new file mode 100644 index 000000000000..d4370984b3cc --- /dev/null +++ b/swaggerci/eventgrid/test/Remove-AzEventGridPartnerTopicEventSubscription.Tests.ps1 @@ -0,0 +1,25 @@ +if(($null -eq $TestName) -or ($TestName -contains 'Remove-AzEventGridPartnerTopicEventSubscription')) +{ + $loadEnvPath = Join-Path $PSScriptRoot 'loadEnv.ps1' + if (-Not (Test-Path -Path $loadEnvPath)) { + $loadEnvPath = Join-Path $PSScriptRoot '..\loadEnv.ps1' + } + . ($loadEnvPath) + $TestRecordingFile = Join-Path $PSScriptRoot 'Remove-AzEventGridPartnerTopicEventSubscription.Recording.json' + $currentPath = $PSScriptRoot + while(-not $mockingPath) { + $mockingPath = Get-ChildItem -Path $currentPath -Recurse -Include 'HttpPipelineMocking.ps1' -File + $currentPath = Split-Path -Path $currentPath -Parent + } + . ($mockingPath | Select-Object -First 1).FullName +} + +Describe 'Remove-AzEventGridPartnerTopicEventSubscription' { + It 'Delete' -skip { + { throw [System.NotImplementedException] } | Should -Not -Throw + } + + It 'DeleteViaIdentity' -skip { + { throw [System.NotImplementedException] } | Should -Not -Throw + } +} diff --git a/swaggerci/eventgrid/test/Remove-AzEventGridPrivateEndpointConnection.Tests.ps1 b/swaggerci/eventgrid/test/Remove-AzEventGridPrivateEndpointConnection.Tests.ps1 new file mode 100644 index 000000000000..e2ff11e1675c --- /dev/null +++ b/swaggerci/eventgrid/test/Remove-AzEventGridPrivateEndpointConnection.Tests.ps1 @@ -0,0 +1,25 @@ +if(($null -eq $TestName) -or ($TestName -contains 'Remove-AzEventGridPrivateEndpointConnection')) +{ + $loadEnvPath = Join-Path $PSScriptRoot 'loadEnv.ps1' + if (-Not (Test-Path -Path $loadEnvPath)) { + $loadEnvPath = Join-Path $PSScriptRoot '..\loadEnv.ps1' + } + . ($loadEnvPath) + $TestRecordingFile = Join-Path $PSScriptRoot 'Remove-AzEventGridPrivateEndpointConnection.Recording.json' + $currentPath = $PSScriptRoot + while(-not $mockingPath) { + $mockingPath = Get-ChildItem -Path $currentPath -Recurse -Include 'HttpPipelineMocking.ps1' -File + $currentPath = Split-Path -Path $currentPath -Parent + } + . ($mockingPath | Select-Object -First 1).FullName +} + +Describe 'Remove-AzEventGridPrivateEndpointConnection' { + It 'Delete' -skip { + { throw [System.NotImplementedException] } | Should -Not -Throw + } + + It 'DeleteViaIdentity' -skip { + { throw [System.NotImplementedException] } | Should -Not -Throw + } +} diff --git a/swaggerci/eventgrid/test/Remove-AzEventGridSystemTopic.Tests.ps1 b/swaggerci/eventgrid/test/Remove-AzEventGridSystemTopic.Tests.ps1 new file mode 100644 index 000000000000..f2a381e77692 --- /dev/null +++ b/swaggerci/eventgrid/test/Remove-AzEventGridSystemTopic.Tests.ps1 @@ -0,0 +1,25 @@ +if(($null -eq $TestName) -or ($TestName -contains 'Remove-AzEventGridSystemTopic')) +{ + $loadEnvPath = Join-Path $PSScriptRoot 'loadEnv.ps1' + if (-Not (Test-Path -Path $loadEnvPath)) { + $loadEnvPath = Join-Path $PSScriptRoot '..\loadEnv.ps1' + } + . ($loadEnvPath) + $TestRecordingFile = Join-Path $PSScriptRoot 'Remove-AzEventGridSystemTopic.Recording.json' + $currentPath = $PSScriptRoot + while(-not $mockingPath) { + $mockingPath = Get-ChildItem -Path $currentPath -Recurse -Include 'HttpPipelineMocking.ps1' -File + $currentPath = Split-Path -Path $currentPath -Parent + } + . ($mockingPath | Select-Object -First 1).FullName +} + +Describe 'Remove-AzEventGridSystemTopic' { + It 'Delete' -skip { + { throw [System.NotImplementedException] } | Should -Not -Throw + } + + It 'DeleteViaIdentity' -skip { + { throw [System.NotImplementedException] } | Should -Not -Throw + } +} diff --git a/swaggerci/eventgrid/test/Remove-AzEventGridSystemTopicEventSubscription.Tests.ps1 b/swaggerci/eventgrid/test/Remove-AzEventGridSystemTopicEventSubscription.Tests.ps1 new file mode 100644 index 000000000000..4800f117f88d --- /dev/null +++ b/swaggerci/eventgrid/test/Remove-AzEventGridSystemTopicEventSubscription.Tests.ps1 @@ -0,0 +1,25 @@ +if(($null -eq $TestName) -or ($TestName -contains 'Remove-AzEventGridSystemTopicEventSubscription')) +{ + $loadEnvPath = Join-Path $PSScriptRoot 'loadEnv.ps1' + if (-Not (Test-Path -Path $loadEnvPath)) { + $loadEnvPath = Join-Path $PSScriptRoot '..\loadEnv.ps1' + } + . ($loadEnvPath) + $TestRecordingFile = Join-Path $PSScriptRoot 'Remove-AzEventGridSystemTopicEventSubscription.Recording.json' + $currentPath = $PSScriptRoot + while(-not $mockingPath) { + $mockingPath = Get-ChildItem -Path $currentPath -Recurse -Include 'HttpPipelineMocking.ps1' -File + $currentPath = Split-Path -Path $currentPath -Parent + } + . ($mockingPath | Select-Object -First 1).FullName +} + +Describe 'Remove-AzEventGridSystemTopicEventSubscription' { + It 'Delete' -skip { + { throw [System.NotImplementedException] } | Should -Not -Throw + } + + It 'DeleteViaIdentity' -skip { + { throw [System.NotImplementedException] } | Should -Not -Throw + } +} diff --git a/swaggerci/eventgrid/test/Remove-AzEventGridTopic.Tests.ps1 b/swaggerci/eventgrid/test/Remove-AzEventGridTopic.Tests.ps1 new file mode 100644 index 000000000000..0b0827ac48a8 --- /dev/null +++ b/swaggerci/eventgrid/test/Remove-AzEventGridTopic.Tests.ps1 @@ -0,0 +1,25 @@ +if(($null -eq $TestName) -or ($TestName -contains 'Remove-AzEventGridTopic')) +{ + $loadEnvPath = Join-Path $PSScriptRoot 'loadEnv.ps1' + if (-Not (Test-Path -Path $loadEnvPath)) { + $loadEnvPath = Join-Path $PSScriptRoot '..\loadEnv.ps1' + } + . ($loadEnvPath) + $TestRecordingFile = Join-Path $PSScriptRoot 'Remove-AzEventGridTopic.Recording.json' + $currentPath = $PSScriptRoot + while(-not $mockingPath) { + $mockingPath = Get-ChildItem -Path $currentPath -Recurse -Include 'HttpPipelineMocking.ps1' -File + $currentPath = Split-Path -Path $currentPath -Parent + } + . ($mockingPath | Select-Object -First 1).FullName +} + +Describe 'Remove-AzEventGridTopic' { + It 'Delete' -skip { + { throw [System.NotImplementedException] } | Should -Not -Throw + } + + It 'DeleteViaIdentity' -skip { + { throw [System.NotImplementedException] } | Should -Not -Throw + } +} diff --git a/swaggerci/eventgrid/test/Remove-AzEventGridTopicEventSubscription.Tests.ps1 b/swaggerci/eventgrid/test/Remove-AzEventGridTopicEventSubscription.Tests.ps1 new file mode 100644 index 000000000000..20cf7a5f34e2 --- /dev/null +++ b/swaggerci/eventgrid/test/Remove-AzEventGridTopicEventSubscription.Tests.ps1 @@ -0,0 +1,25 @@ +if(($null -eq $TestName) -or ($TestName -contains 'Remove-AzEventGridTopicEventSubscription')) +{ + $loadEnvPath = Join-Path $PSScriptRoot 'loadEnv.ps1' + if (-Not (Test-Path -Path $loadEnvPath)) { + $loadEnvPath = Join-Path $PSScriptRoot '..\loadEnv.ps1' + } + . ($loadEnvPath) + $TestRecordingFile = Join-Path $PSScriptRoot 'Remove-AzEventGridTopicEventSubscription.Recording.json' + $currentPath = $PSScriptRoot + while(-not $mockingPath) { + $mockingPath = Get-ChildItem -Path $currentPath -Recurse -Include 'HttpPipelineMocking.ps1' -File + $currentPath = Split-Path -Path $currentPath -Parent + } + . ($mockingPath | Select-Object -First 1).FullName +} + +Describe 'Remove-AzEventGridTopicEventSubscription' { + It 'Delete' -skip { + { throw [System.NotImplementedException] } | Should -Not -Throw + } + + It 'DeleteViaIdentity' -skip { + { throw [System.NotImplementedException] } | Should -Not -Throw + } +} diff --git a/swaggerci/eventgrid/test/Update-AzEventGridChannel.Tests.ps1 b/swaggerci/eventgrid/test/Update-AzEventGridChannel.Tests.ps1 new file mode 100644 index 000000000000..4c31959d0704 --- /dev/null +++ b/swaggerci/eventgrid/test/Update-AzEventGridChannel.Tests.ps1 @@ -0,0 +1,25 @@ +if(($null -eq $TestName) -or ($TestName -contains 'Update-AzEventGridChannel')) +{ + $loadEnvPath = Join-Path $PSScriptRoot 'loadEnv.ps1' + if (-Not (Test-Path -Path $loadEnvPath)) { + $loadEnvPath = Join-Path $PSScriptRoot '..\loadEnv.ps1' + } + . ($loadEnvPath) + $TestRecordingFile = Join-Path $PSScriptRoot 'Update-AzEventGridChannel.Recording.json' + $currentPath = $PSScriptRoot + while(-not $mockingPath) { + $mockingPath = Get-ChildItem -Path $currentPath -Recurse -Include 'HttpPipelineMocking.ps1' -File + $currentPath = Split-Path -Path $currentPath -Parent + } + . ($mockingPath | Select-Object -First 1).FullName +} + +Describe 'Update-AzEventGridChannel' { + It 'UpdateExpanded' -skip { + { throw [System.NotImplementedException] } | Should -Not -Throw + } + + It 'UpdateViaIdentityExpanded' -skip { + { throw [System.NotImplementedException] } | Should -Not -Throw + } +} diff --git a/swaggerci/eventgrid/test/Update-AzEventGridDomain.Tests.ps1 b/swaggerci/eventgrid/test/Update-AzEventGridDomain.Tests.ps1 new file mode 100644 index 000000000000..d0ad4ffe7cbf --- /dev/null +++ b/swaggerci/eventgrid/test/Update-AzEventGridDomain.Tests.ps1 @@ -0,0 +1,25 @@ +if(($null -eq $TestName) -or ($TestName -contains 'Update-AzEventGridDomain')) +{ + $loadEnvPath = Join-Path $PSScriptRoot 'loadEnv.ps1' + if (-Not (Test-Path -Path $loadEnvPath)) { + $loadEnvPath = Join-Path $PSScriptRoot '..\loadEnv.ps1' + } + . ($loadEnvPath) + $TestRecordingFile = Join-Path $PSScriptRoot 'Update-AzEventGridDomain.Recording.json' + $currentPath = $PSScriptRoot + while(-not $mockingPath) { + $mockingPath = Get-ChildItem -Path $currentPath -Recurse -Include 'HttpPipelineMocking.ps1' -File + $currentPath = Split-Path -Path $currentPath -Parent + } + . ($mockingPath | Select-Object -First 1).FullName +} + +Describe 'Update-AzEventGridDomain' { + It 'UpdateExpanded' -skip { + { throw [System.NotImplementedException] } | Should -Not -Throw + } + + It 'UpdateViaIdentityExpanded' -skip { + { throw [System.NotImplementedException] } | Should -Not -Throw + } +} diff --git a/swaggerci/eventgrid/test/Update-AzEventGridDomainEventSubscription.Tests.ps1 b/swaggerci/eventgrid/test/Update-AzEventGridDomainEventSubscription.Tests.ps1 new file mode 100644 index 000000000000..3353e74957f8 --- /dev/null +++ b/swaggerci/eventgrid/test/Update-AzEventGridDomainEventSubscription.Tests.ps1 @@ -0,0 +1,25 @@ +if(($null -eq $TestName) -or ($TestName -contains 'Update-AzEventGridDomainEventSubscription')) +{ + $loadEnvPath = Join-Path $PSScriptRoot 'loadEnv.ps1' + if (-Not (Test-Path -Path $loadEnvPath)) { + $loadEnvPath = Join-Path $PSScriptRoot '..\loadEnv.ps1' + } + . ($loadEnvPath) + $TestRecordingFile = Join-Path $PSScriptRoot 'Update-AzEventGridDomainEventSubscription.Recording.json' + $currentPath = $PSScriptRoot + while(-not $mockingPath) { + $mockingPath = Get-ChildItem -Path $currentPath -Recurse -Include 'HttpPipelineMocking.ps1' -File + $currentPath = Split-Path -Path $currentPath -Parent + } + . ($mockingPath | Select-Object -First 1).FullName +} + +Describe 'Update-AzEventGridDomainEventSubscription' { + It 'UpdateExpanded' -skip { + { throw [System.NotImplementedException] } | Should -Not -Throw + } + + It 'UpdateViaIdentityExpanded' -skip { + { throw [System.NotImplementedException] } | Should -Not -Throw + } +} diff --git a/swaggerci/eventgrid/test/Update-AzEventGridDomainTopicEventSubscription.Tests.ps1 b/swaggerci/eventgrid/test/Update-AzEventGridDomainTopicEventSubscription.Tests.ps1 new file mode 100644 index 000000000000..87ac9266129d --- /dev/null +++ b/swaggerci/eventgrid/test/Update-AzEventGridDomainTopicEventSubscription.Tests.ps1 @@ -0,0 +1,25 @@ +if(($null -eq $TestName) -or ($TestName -contains 'Update-AzEventGridDomainTopicEventSubscription')) +{ + $loadEnvPath = Join-Path $PSScriptRoot 'loadEnv.ps1' + if (-Not (Test-Path -Path $loadEnvPath)) { + $loadEnvPath = Join-Path $PSScriptRoot '..\loadEnv.ps1' + } + . ($loadEnvPath) + $TestRecordingFile = Join-Path $PSScriptRoot 'Update-AzEventGridDomainTopicEventSubscription.Recording.json' + $currentPath = $PSScriptRoot + while(-not $mockingPath) { + $mockingPath = Get-ChildItem -Path $currentPath -Recurse -Include 'HttpPipelineMocking.ps1' -File + $currentPath = Split-Path -Path $currentPath -Parent + } + . ($mockingPath | Select-Object -First 1).FullName +} + +Describe 'Update-AzEventGridDomainTopicEventSubscription' { + It 'UpdateExpanded' -skip { + { throw [System.NotImplementedException] } | Should -Not -Throw + } + + It 'UpdateViaIdentityExpanded' -skip { + { throw [System.NotImplementedException] } | Should -Not -Throw + } +} diff --git a/swaggerci/eventgrid/test/Update-AzEventGridEventSubscription.Tests.ps1 b/swaggerci/eventgrid/test/Update-AzEventGridEventSubscription.Tests.ps1 new file mode 100644 index 000000000000..693556e99b09 --- /dev/null +++ b/swaggerci/eventgrid/test/Update-AzEventGridEventSubscription.Tests.ps1 @@ -0,0 +1,25 @@ +if(($null -eq $TestName) -or ($TestName -contains 'Update-AzEventGridEventSubscription')) +{ + $loadEnvPath = Join-Path $PSScriptRoot 'loadEnv.ps1' + if (-Not (Test-Path -Path $loadEnvPath)) { + $loadEnvPath = Join-Path $PSScriptRoot '..\loadEnv.ps1' + } + . ($loadEnvPath) + $TestRecordingFile = Join-Path $PSScriptRoot 'Update-AzEventGridEventSubscription.Recording.json' + $currentPath = $PSScriptRoot + while(-not $mockingPath) { + $mockingPath = Get-ChildItem -Path $currentPath -Recurse -Include 'HttpPipelineMocking.ps1' -File + $currentPath = Split-Path -Path $currentPath -Parent + } + . ($mockingPath | Select-Object -First 1).FullName +} + +Describe 'Update-AzEventGridEventSubscription' { + It 'UpdateExpanded' -skip { + { throw [System.NotImplementedException] } | Should -Not -Throw + } + + It 'UpdateViaIdentityExpanded' -skip { + { throw [System.NotImplementedException] } | Should -Not -Throw + } +} diff --git a/swaggerci/eventgrid/test/Update-AzEventGridPartnerConfiguration.Tests.ps1 b/swaggerci/eventgrid/test/Update-AzEventGridPartnerConfiguration.Tests.ps1 new file mode 100644 index 000000000000..83f818cc9cfc --- /dev/null +++ b/swaggerci/eventgrid/test/Update-AzEventGridPartnerConfiguration.Tests.ps1 @@ -0,0 +1,25 @@ +if(($null -eq $TestName) -or ($TestName -contains 'Update-AzEventGridPartnerConfiguration')) +{ + $loadEnvPath = Join-Path $PSScriptRoot 'loadEnv.ps1' + if (-Not (Test-Path -Path $loadEnvPath)) { + $loadEnvPath = Join-Path $PSScriptRoot '..\loadEnv.ps1' + } + . ($loadEnvPath) + $TestRecordingFile = Join-Path $PSScriptRoot 'Update-AzEventGridPartnerConfiguration.Recording.json' + $currentPath = $PSScriptRoot + while(-not $mockingPath) { + $mockingPath = Get-ChildItem -Path $currentPath -Recurse -Include 'HttpPipelineMocking.ps1' -File + $currentPath = Split-Path -Path $currentPath -Parent + } + . ($mockingPath | Select-Object -First 1).FullName +} + +Describe 'Update-AzEventGridPartnerConfiguration' { + It 'UpdateExpanded' -skip { + { throw [System.NotImplementedException] } | Should -Not -Throw + } + + It 'UpdateViaIdentityExpanded' -skip { + { throw [System.NotImplementedException] } | Should -Not -Throw + } +} diff --git a/swaggerci/eventgrid/test/Update-AzEventGridPartnerDestination.Tests.ps1 b/swaggerci/eventgrid/test/Update-AzEventGridPartnerDestination.Tests.ps1 new file mode 100644 index 000000000000..a53929fef7da --- /dev/null +++ b/swaggerci/eventgrid/test/Update-AzEventGridPartnerDestination.Tests.ps1 @@ -0,0 +1,25 @@ +if(($null -eq $TestName) -or ($TestName -contains 'Update-AzEventGridPartnerDestination')) +{ + $loadEnvPath = Join-Path $PSScriptRoot 'loadEnv.ps1' + if (-Not (Test-Path -Path $loadEnvPath)) { + $loadEnvPath = Join-Path $PSScriptRoot '..\loadEnv.ps1' + } + . ($loadEnvPath) + $TestRecordingFile = Join-Path $PSScriptRoot 'Update-AzEventGridPartnerDestination.Recording.json' + $currentPath = $PSScriptRoot + while(-not $mockingPath) { + $mockingPath = Get-ChildItem -Path $currentPath -Recurse -Include 'HttpPipelineMocking.ps1' -File + $currentPath = Split-Path -Path $currentPath -Parent + } + . ($mockingPath | Select-Object -First 1).FullName +} + +Describe 'Update-AzEventGridPartnerDestination' { + It 'UpdateExpanded' -skip { + { throw [System.NotImplementedException] } | Should -Not -Throw + } + + It 'UpdateViaIdentityExpanded' -skip { + { throw [System.NotImplementedException] } | Should -Not -Throw + } +} diff --git a/swaggerci/eventgrid/test/Update-AzEventGridPartnerNamespace.Tests.ps1 b/swaggerci/eventgrid/test/Update-AzEventGridPartnerNamespace.Tests.ps1 new file mode 100644 index 000000000000..edb122b18ecd --- /dev/null +++ b/swaggerci/eventgrid/test/Update-AzEventGridPartnerNamespace.Tests.ps1 @@ -0,0 +1,25 @@ +if(($null -eq $TestName) -or ($TestName -contains 'Update-AzEventGridPartnerNamespace')) +{ + $loadEnvPath = Join-Path $PSScriptRoot 'loadEnv.ps1' + if (-Not (Test-Path -Path $loadEnvPath)) { + $loadEnvPath = Join-Path $PSScriptRoot '..\loadEnv.ps1' + } + . ($loadEnvPath) + $TestRecordingFile = Join-Path $PSScriptRoot 'Update-AzEventGridPartnerNamespace.Recording.json' + $currentPath = $PSScriptRoot + while(-not $mockingPath) { + $mockingPath = Get-ChildItem -Path $currentPath -Recurse -Include 'HttpPipelineMocking.ps1' -File + $currentPath = Split-Path -Path $currentPath -Parent + } + . ($mockingPath | Select-Object -First 1).FullName +} + +Describe 'Update-AzEventGridPartnerNamespace' { + It 'UpdateExpanded' -skip { + { throw [System.NotImplementedException] } | Should -Not -Throw + } + + It 'UpdateViaIdentityExpanded' -skip { + { throw [System.NotImplementedException] } | Should -Not -Throw + } +} diff --git a/swaggerci/eventgrid/test/Update-AzEventGridPartnerRegistration.Tests.ps1 b/swaggerci/eventgrid/test/Update-AzEventGridPartnerRegistration.Tests.ps1 new file mode 100644 index 000000000000..7d47b7175a96 --- /dev/null +++ b/swaggerci/eventgrid/test/Update-AzEventGridPartnerRegistration.Tests.ps1 @@ -0,0 +1,25 @@ +if(($null -eq $TestName) -or ($TestName -contains 'Update-AzEventGridPartnerRegistration')) +{ + $loadEnvPath = Join-Path $PSScriptRoot 'loadEnv.ps1' + if (-Not (Test-Path -Path $loadEnvPath)) { + $loadEnvPath = Join-Path $PSScriptRoot '..\loadEnv.ps1' + } + . ($loadEnvPath) + $TestRecordingFile = Join-Path $PSScriptRoot 'Update-AzEventGridPartnerRegistration.Recording.json' + $currentPath = $PSScriptRoot + while(-not $mockingPath) { + $mockingPath = Get-ChildItem -Path $currentPath -Recurse -Include 'HttpPipelineMocking.ps1' -File + $currentPath = Split-Path -Path $currentPath -Parent + } + . ($mockingPath | Select-Object -First 1).FullName +} + +Describe 'Update-AzEventGridPartnerRegistration' { + It 'UpdateExpanded' -skip { + { throw [System.NotImplementedException] } | Should -Not -Throw + } + + It 'UpdateViaIdentityExpanded' -skip { + { throw [System.NotImplementedException] } | Should -Not -Throw + } +} diff --git a/swaggerci/eventgrid/test/Update-AzEventGridPartnerTopic.Tests.ps1 b/swaggerci/eventgrid/test/Update-AzEventGridPartnerTopic.Tests.ps1 new file mode 100644 index 000000000000..32860d925592 --- /dev/null +++ b/swaggerci/eventgrid/test/Update-AzEventGridPartnerTopic.Tests.ps1 @@ -0,0 +1,25 @@ +if(($null -eq $TestName) -or ($TestName -contains 'Update-AzEventGridPartnerTopic')) +{ + $loadEnvPath = Join-Path $PSScriptRoot 'loadEnv.ps1' + if (-Not (Test-Path -Path $loadEnvPath)) { + $loadEnvPath = Join-Path $PSScriptRoot '..\loadEnv.ps1' + } + . ($loadEnvPath) + $TestRecordingFile = Join-Path $PSScriptRoot 'Update-AzEventGridPartnerTopic.Recording.json' + $currentPath = $PSScriptRoot + while(-not $mockingPath) { + $mockingPath = Get-ChildItem -Path $currentPath -Recurse -Include 'HttpPipelineMocking.ps1' -File + $currentPath = Split-Path -Path $currentPath -Parent + } + . ($mockingPath | Select-Object -First 1).FullName +} + +Describe 'Update-AzEventGridPartnerTopic' { + It 'UpdateExpanded' -skip { + { throw [System.NotImplementedException] } | Should -Not -Throw + } + + It 'UpdateViaIdentityExpanded' -skip { + { throw [System.NotImplementedException] } | Should -Not -Throw + } +} diff --git a/swaggerci/eventgrid/test/Update-AzEventGridPartnerTopicEventSubscription.Tests.ps1 b/swaggerci/eventgrid/test/Update-AzEventGridPartnerTopicEventSubscription.Tests.ps1 new file mode 100644 index 000000000000..30b7c1a14303 --- /dev/null +++ b/swaggerci/eventgrid/test/Update-AzEventGridPartnerTopicEventSubscription.Tests.ps1 @@ -0,0 +1,25 @@ +if(($null -eq $TestName) -or ($TestName -contains 'Update-AzEventGridPartnerTopicEventSubscription')) +{ + $loadEnvPath = Join-Path $PSScriptRoot 'loadEnv.ps1' + if (-Not (Test-Path -Path $loadEnvPath)) { + $loadEnvPath = Join-Path $PSScriptRoot '..\loadEnv.ps1' + } + . ($loadEnvPath) + $TestRecordingFile = Join-Path $PSScriptRoot 'Update-AzEventGridPartnerTopicEventSubscription.Recording.json' + $currentPath = $PSScriptRoot + while(-not $mockingPath) { + $mockingPath = Get-ChildItem -Path $currentPath -Recurse -Include 'HttpPipelineMocking.ps1' -File + $currentPath = Split-Path -Path $currentPath -Parent + } + . ($mockingPath | Select-Object -First 1).FullName +} + +Describe 'Update-AzEventGridPartnerTopicEventSubscription' { + It 'UpdateExpanded' -skip { + { throw [System.NotImplementedException] } | Should -Not -Throw + } + + It 'UpdateViaIdentityExpanded' -skip { + { throw [System.NotImplementedException] } | Should -Not -Throw + } +} diff --git a/swaggerci/eventgrid/test/Update-AzEventGridSystemTopic.Tests.ps1 b/swaggerci/eventgrid/test/Update-AzEventGridSystemTopic.Tests.ps1 new file mode 100644 index 000000000000..4367714d47fd --- /dev/null +++ b/swaggerci/eventgrid/test/Update-AzEventGridSystemTopic.Tests.ps1 @@ -0,0 +1,25 @@ +if(($null -eq $TestName) -or ($TestName -contains 'Update-AzEventGridSystemTopic')) +{ + $loadEnvPath = Join-Path $PSScriptRoot 'loadEnv.ps1' + if (-Not (Test-Path -Path $loadEnvPath)) { + $loadEnvPath = Join-Path $PSScriptRoot '..\loadEnv.ps1' + } + . ($loadEnvPath) + $TestRecordingFile = Join-Path $PSScriptRoot 'Update-AzEventGridSystemTopic.Recording.json' + $currentPath = $PSScriptRoot + while(-not $mockingPath) { + $mockingPath = Get-ChildItem -Path $currentPath -Recurse -Include 'HttpPipelineMocking.ps1' -File + $currentPath = Split-Path -Path $currentPath -Parent + } + . ($mockingPath | Select-Object -First 1).FullName +} + +Describe 'Update-AzEventGridSystemTopic' { + It 'UpdateExpanded' -skip { + { throw [System.NotImplementedException] } | Should -Not -Throw + } + + It 'UpdateViaIdentityExpanded' -skip { + { throw [System.NotImplementedException] } | Should -Not -Throw + } +} diff --git a/swaggerci/eventgrid/test/Update-AzEventGridSystemTopicEventSubscription.Tests.ps1 b/swaggerci/eventgrid/test/Update-AzEventGridSystemTopicEventSubscription.Tests.ps1 new file mode 100644 index 000000000000..0322a30c2a43 --- /dev/null +++ b/swaggerci/eventgrid/test/Update-AzEventGridSystemTopicEventSubscription.Tests.ps1 @@ -0,0 +1,25 @@ +if(($null -eq $TestName) -or ($TestName -contains 'Update-AzEventGridSystemTopicEventSubscription')) +{ + $loadEnvPath = Join-Path $PSScriptRoot 'loadEnv.ps1' + if (-Not (Test-Path -Path $loadEnvPath)) { + $loadEnvPath = Join-Path $PSScriptRoot '..\loadEnv.ps1' + } + . ($loadEnvPath) + $TestRecordingFile = Join-Path $PSScriptRoot 'Update-AzEventGridSystemTopicEventSubscription.Recording.json' + $currentPath = $PSScriptRoot + while(-not $mockingPath) { + $mockingPath = Get-ChildItem -Path $currentPath -Recurse -Include 'HttpPipelineMocking.ps1' -File + $currentPath = Split-Path -Path $currentPath -Parent + } + . ($mockingPath | Select-Object -First 1).FullName +} + +Describe 'Update-AzEventGridSystemTopicEventSubscription' { + It 'UpdateExpanded' -skip { + { throw [System.NotImplementedException] } | Should -Not -Throw + } + + It 'UpdateViaIdentityExpanded' -skip { + { throw [System.NotImplementedException] } | Should -Not -Throw + } +} diff --git a/swaggerci/eventgrid/test/Update-AzEventGridTopic.Tests.ps1 b/swaggerci/eventgrid/test/Update-AzEventGridTopic.Tests.ps1 new file mode 100644 index 000000000000..c285b2faff04 --- /dev/null +++ b/swaggerci/eventgrid/test/Update-AzEventGridTopic.Tests.ps1 @@ -0,0 +1,25 @@ +if(($null -eq $TestName) -or ($TestName -contains 'Update-AzEventGridTopic')) +{ + $loadEnvPath = Join-Path $PSScriptRoot 'loadEnv.ps1' + if (-Not (Test-Path -Path $loadEnvPath)) { + $loadEnvPath = Join-Path $PSScriptRoot '..\loadEnv.ps1' + } + . ($loadEnvPath) + $TestRecordingFile = Join-Path $PSScriptRoot 'Update-AzEventGridTopic.Recording.json' + $currentPath = $PSScriptRoot + while(-not $mockingPath) { + $mockingPath = Get-ChildItem -Path $currentPath -Recurse -Include 'HttpPipelineMocking.ps1' -File + $currentPath = Split-Path -Path $currentPath -Parent + } + . ($mockingPath | Select-Object -First 1).FullName +} + +Describe 'Update-AzEventGridTopic' { + It 'UpdateExpanded' -skip { + { throw [System.NotImplementedException] } | Should -Not -Throw + } + + It 'UpdateViaIdentityExpanded' -skip { + { throw [System.NotImplementedException] } | Should -Not -Throw + } +} diff --git a/swaggerci/eventgrid/test/Update-AzEventGridTopicEventSubscription.Tests.ps1 b/swaggerci/eventgrid/test/Update-AzEventGridTopicEventSubscription.Tests.ps1 new file mode 100644 index 000000000000..0238da87f99c --- /dev/null +++ b/swaggerci/eventgrid/test/Update-AzEventGridTopicEventSubscription.Tests.ps1 @@ -0,0 +1,25 @@ +if(($null -eq $TestName) -or ($TestName -contains 'Update-AzEventGridTopicEventSubscription')) +{ + $loadEnvPath = Join-Path $PSScriptRoot 'loadEnv.ps1' + if (-Not (Test-Path -Path $loadEnvPath)) { + $loadEnvPath = Join-Path $PSScriptRoot '..\loadEnv.ps1' + } + . ($loadEnvPath) + $TestRecordingFile = Join-Path $PSScriptRoot 'Update-AzEventGridTopicEventSubscription.Recording.json' + $currentPath = $PSScriptRoot + while(-not $mockingPath) { + $mockingPath = Get-ChildItem -Path $currentPath -Recurse -Include 'HttpPipelineMocking.ps1' -File + $currentPath = Split-Path -Path $currentPath -Parent + } + . ($mockingPath | Select-Object -First 1).FullName +} + +Describe 'Update-AzEventGridTopicEventSubscription' { + It 'UpdateExpanded' -skip { + { throw [System.NotImplementedException] } | Should -Not -Throw + } + + It 'UpdateViaIdentityExpanded' -skip { + { throw [System.NotImplementedException] } | Should -Not -Throw + } +} diff --git a/swaggerci/eventgrid/test/loadEnv.ps1 b/swaggerci/eventgrid/test/loadEnv.ps1 new file mode 100644 index 000000000000..0ea394729062 --- /dev/null +++ b/swaggerci/eventgrid/test/loadEnv.ps1 @@ -0,0 +1,21 @@ +# ---------------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for license information. +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is regenerated. +# ---------------------------------------------------------------------------------- +$envFile = 'env.json' +if ($TestMode -eq 'live') { + $envFile = 'localEnv.json' +} + +if (Test-Path -Path (Join-Path $PSScriptRoot $envFile)) { + $envFilePath = Join-Path $PSScriptRoot $envFile +} else { + $envFilePath = Join-Path $PSScriptRoot '..\$envFile' +} +$env = @{} +if (Test-Path -Path $envFilePath) { + $env = Get-Content (Join-Path $PSScriptRoot $envFile) | ConvertFrom-Json + $PSDefaultParameterValues=@{"*:SubscriptionId"=$env.SubscriptionId; "*:Tenant"=$env.Tenant} +} \ No newline at end of file diff --git a/swaggerci/eventgrid/test/utils.ps1 b/swaggerci/eventgrid/test/utils.ps1 new file mode 100644 index 000000000000..1990edd45299 --- /dev/null +++ b/swaggerci/eventgrid/test/utils.ps1 @@ -0,0 +1,31 @@ +function RandomString([bool]$allChars, [int32]$len) { + if ($allChars) { + return -join ((33..126) | Get-Random -Count $len | % {[char]$_}) + } else { + return -join ((48..57) + (97..122) | Get-Random -Count $len | % {[char]$_}) + } +} +$env = @{} +if ($UsePreviousConfigForRecord) { + $previousEnv = Get-Content (Join-Path $PSScriptRoot 'env.json') | ConvertFrom-Json + $previousEnv.psobject.properties | Foreach-Object { $env[$_.Name] = $_.Value } +} +# Add script method called AddWithCache to $env, when useCache is set true, it will try to get the value from the $env first. +# example: $val = $env.AddWithCache('key', $val, $true) +$env | Add-Member -Type ScriptMethod -Value { param( [string]$key, [object]$val, [bool]$useCache) if ($this.Contains($key) -and $useCache) { return $this[$key] } else { $this[$key] = $val; return $val } } -Name 'AddWithCache' +function setupEnv() { + # Preload subscriptionId and tenant from context, which will be used in test + # as default. You could change them if needed. + $env.SubscriptionId = (Get-AzContext).Subscription.Id + $env.Tenant = (Get-AzContext).Tenant.Id + # For any resources you created for test, you should add it to $env here. + $envFile = 'env.json' + if ($TestMode -eq 'live') { + $envFile = 'localEnv.json' + } + set-content -Path (Join-Path $PSScriptRoot $envFile) -Value (ConvertTo-Json $env) +} +function cleanupEnv() { + # Clean resources you create for testing +} + diff --git a/swaggerci/eventgrid/utils/Unprotect-SecureString.ps1 b/swaggerci/eventgrid/utils/Unprotect-SecureString.ps1 new file mode 100644 index 000000000000..cb05b51a6220 --- /dev/null +++ b/swaggerci/eventgrid/utils/Unprotect-SecureString.ps1 @@ -0,0 +1,16 @@ +#This script converts securestring to plaintext + +param( + [Parameter(Mandatory, ValueFromPipeline)] + [System.Security.SecureString] + ${SecureString} +) + +$ssPtr = [System.Runtime.InteropServices.Marshal]::SecureStringToBSTR($SecureString) +try { + $plaintext = [System.Runtime.InteropServices.Marshal]::PtrToStringBSTR($ssPtr) +} finally { + [System.Runtime.InteropServices.Marshal]::ZeroFreeBSTR($ssPtr) +} + +return $plaintext \ No newline at end of file

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

&rswSqMlv8_HU1*~)pLHbpOhXKnDRlo;g4^uM~0@78liDd`kE3sex=inj#(WB9Z z08au|+R3B1NSAzK(We4S2iomm?A00yIn-Hs!8A6!4eP(2UV-yv=X?C!wT5Rvj^gFD zhHLiCxpCkj{`EApKft_Ji#)Wy_$Pxd3>foYe_!Zs@pS1-9;KI9HsL2tDDxrkGcM|L zxtBvdh1WnPevac(*`pk#k(f4l-plEP_I4F8ZNfI{15f`o&eQ?Ma@005tlCdvwUfkZ zhpC%%CjQ`wTwGR((>zKq=}IrL^dx3qK;4KHFR{u-GnDyts9zhvvl_bo6>+i69F($u z8$2t&=0VTljUyMKEm;8khm%6Ly~pdi=UfY5@ef8gV)b|A?}&5Kdx2*$Fw=OL=T|;1 z^>p@4-+M`PV)qSs&Lf%27)#Qz=@#qAIEkxbHm{UfZGL*@!#*@{^DlZW=a$EQVQX%*7Xy1;&4 z<*I|XKkF&wsN53&9%CUCHOwhkdT|Y6%%k#59?2(`OxB}M_7CDVgzfF#xWkui7x4~Q zXWI^P#zFAsSjXB4cocBATSB*c3h(Xl@O~I~0nY+YBjj&aU|v0}wuLem-Ws{1LGR+z zLZ0p^Ji*H+o%le+MXdIOV^q}_V)C@xkaL5<(-(4x&jlXj@rA&Qch~zPHwJhm`aAMe z0}u5)6M;u~d@ZnagXp|&#G^dVH1KSI4ORAtRX)doXFA&CCq0kK#%hFT+LwYp0X$#e zPO#;`?I8FK=(fVs_qiPT1iTFNbFq%N33wCa-#$4Pj}sV|+6U%~u*wEVaei@Z#xV?e zG)`OZ`8jsr)y)jcHj`L&nONx}f3HcAYXg4b0C^gh4dAg&t<20tc zyc!Ya`C*6dt#E%6=uaU`cie0J3*h;nvrP5|o(1}+xG#DjF!PbNIvp58WcLr${c}9N ze@^Hw@R;&Pdb}U*rXtTr-fk>2!qjsa;yQUe$_99N%u6;QR+~@!&FIM82A)b_)!F92 zs)MbekJ3f_V~n@|4u0a%$0qnRWZ=7?uZKQumRjH44m>08!1oD3UkQEQz_{gKz@$^= z#uWY@SaC7$I)LZ1yK=5^8SD(1drdc)q_03U}R4|y~Ii{G3BtG=>j=%{{sH?2rK(gzRF&k6n}f*1JA@e1^7F9 zI*OF*n!&O^c~m|Zf$?!a=3fas8!tW8kkca-mRR{ktTw+lu-bfLwfX%$58p?Iq<9!s zI&4I`4){6tR4|Pwha7*t2|N^O9EzlJhUO(I@14vNW?QF#lHyOcHtO+ zJof;94w<>~#D>J%U|jJv=*_@$+=DsyJ@7E-CL30z@CfiQUv@(LWeD3E<&foExFzU} z>&^3AtdHosgFXoKMiqhECx!O|ZVJ~Qh3g>r?;pBvQ}Wp!&H~T3 zN85WV)1tVD6&KSkI1m6Zbj&3P$sbIK89|2+phAMc3T51-PWe? zh7|4&IsI_IGy9!gpxda6aPKqZ&jtO+Mxpx(xHae-u_uQ-^FddcA^!2Rxp-Vko||S{ zxg~uDF#8eGU)w2k-$4%Pe+A~an)H)a*!Z0ES7wAR1daGlz>R>ZLtJKnyTDC{Zrj7} z0Qy>B)@$nAtjctL3iN*-fqmnktyEa>kbWQTTJ8aQFW{z^MD9e&flidqGSdss#H9C4 zVTKI`hVEk0Q(*_Cc!s9%YViCSak2gq=P-dl%)TQ|3-lQQ{=ru|cLRL#?B%iAy_-R2 z8p(eL@Ft(95EEnNDd}p5n}MI>pC^3S-@In+809R)eP3+Th&ey=5_m?zv5c*NPaR%E zeW5-PB9Z)ZV6}m$>TUw|#e4ytO3*pR`+0@o{V<1ih{vZ74%{)o&B3!~YUEA{(}A4H-Mk*dB5&C_prwroAp3kvQKXxFZ=8M9e@#q1DTnVt!$6SCDqy{rO@|#=2AXV*Hqhf8fjc6+-q(mZ z-?$3lo&r9_j|rzkr=f4>Tr2SNorOHC@1xcV2Qt+jz5>j!GeDmU-Ol_J`>26O`FI(Y_@nb8_WA<@1d-Ss$*D>wXc^P9EOe_&x#OiHLW_UiWg)r+Rx*f6;gL{M3Qt8S==^#BZD% zxmMtz4(hvGqYU5u2=2fE{VBxDGSC*7W&RVq`|J<=3h-WN503|)i}*ChMcnkVWE{nL z#goC)G}X?`@OrY&&i42`@DNXIiaX&TV;=D9_t;th@yU2!cpmfxz-k|eRcDFSK2Q$r zMt;V7Mv3+5!VA4Vq(2GV!Ry9%uEhw;@ek|5N~G~8&iaC-DSA`biacu&whVanZ;Xfd z%`dGlZU>pT}tr-!VRN+ct%4V20)UJLNz3zS(32 zz{4KACLu59|63_ zJhT*>omc@CLk{B3~uJvnf@fQRxg1O6E>>EnF)XTDR;-k^5`o%keRrcw2}+Lsyf zP>#wK@leD&2=qZ-4(-_$^waPTUJW`i_qa|5?g6a2M*5}g@ckFh!|yh8tVJHxL1NXx z-oTPcESdd*C6jc@d;>CxC6hdoNi3N|fMXkCl8u=4muaa4z6STmbOOB`_#W)BWgV&FV8h3^J#<8_#yqCc9Vi~n(ieb)0F z9$}v{a23L`En?b7dpXpBm^Ng4Se>F1kDrP@1{It3+#BVSWteI2kFw45QXkb{(m&{n zZv=s75-{Up9Ulfq`>jHrRbwj7nCmpfyMs<(#y0^ z&&caWJi%ki>;>Hvwi7VJwgO#cgFM?IPg&PUSD#3%vau0in6ANyYc9t2tZUE0J{!^2 z4aAw!7lBDX7x$vQmcsu8W?$KK9p(*zXG7-8rv!1kLEH}Yh;2A=!)Gvt^E`9!M<0rJ z2h#UACXD0li)WR?)zF7H*v@$N1y4C}GmJf`+mAi|6~+ud16~h$$>q2g+vA;p+XGY1 zS_z3SBunFbwe?;WwBJ5INl|9l=2VG&=PqA-ZPJY~B$9|A9HRn&6 zw|?W?Gd?XduFA!ja)$Se+zX&H>^}H@(O{40|>fN#F5dRW?W`W;v%E(HZZ^ zTaYi?qkRBo-`W~@6)^kOBR$r*i~Q-ZdS9SS>VGo$iDe(+)1WhLLQMV1Lw%T!)Q9*i z*!BRAM*@?+i*NsFw>98diT5v-!?nPpaHlx)cLUsR?GwBQ7CCQ)e9}MrS>Waamt$PQ zasqKN{r2&Jdm8jj;Gz8~lRQcn!`_E)9Z7z^Zv{^&;*y*Rx4C$1MmgV|;bMNu*%mz1 zIRX})xa+=&o^N4tk#bn?KD!Zfa66c8^Qv(Vx5w8&PvHr`4Zz5w4?{1fQyJ$*2AE8}}C-eK4Juxn5jBy$}w<&a-}XvdUH>O+}(HiP|AGKs~{ zcz5a-y0gI31Na`46ZRtvOZw%Y_XQ@M`O-Tjr$2EctbKxqm}y+>@g<;h{5%A7wyU3m z&amHniN3~T>7aM*a7WY|@M!!%tZ@Rd_^F%5$z{OnFeiT)!mxUh}<)Vfo%feO97eEr6U! z;L$q{@r#w#{u8TBqn=t5A!Zpk2gW7lx(UZ-#C#uTTBaiG*;`w_%m9{sh-DvQ*@s~{ zSHQ5uoRbvhIs)ahA36CAtZR6l(cW&P|Kx+fee3DuX@CZWavI|s+mr*-#5%K`X^K8k zYm_5A9VUtE=4}{Dvu@6YZffi10W-Zl5tvvyljq6XojVcqF31@-wIp?oi+EqIHlWCkJ(3)&i;BLWwH7XJ$A}MX zi@6WI9NH>!AA<+4VeUEXgXLZ?;$I$#dBvX?J_9;$53G2pXXM`zT6>-WBW(=E zuo`O-KY5nDHxXZXj_FA(or&N6$ljxgU%)*%M|+uXzK`{XK#rQ z+X?N)+a5pp%fNl%@vP-I{|U_fQU`x!^L4F!Tn$-69_CShk6V6=vYMh_ zmcm!0@Kldk_U5PXB4Fkn=}IFp%g@kKqoe4>nDulS__?P<{KTri+%Km+Z0$j3yZ0&h zIq$vZcx$7GdtrW$>sG|ib+-95;{M0lIy?KU{a?af&0UOV2lQ*=Uw}5YCFtU5L!NS5 zQ#cfuZO-YpS-UqK_%~xi*B5m4N9?mm--x~`=kZm&a2}m_9n`$u$e=Lz$ZYZw3L+K_=;+5BGW^?N7o!Oe6JtqCLL14&A5& z`%tb~6O+CgVX1@KjUE}@)P|5QeHhoSXiwNj5Kl(AWn9Eu6Nk7MYkh=$@jo%=Ngj?X zxbLN`CEia!SHAa${PTL?J3M&56MZm#Csr9CmY&3#b0gMX!6A^d$B{PYPrCLu4g+0j zA(kBSw@dL?AQ6`%9K&jlUsZ~qSaL=Kx82#s+r;NxYVBS%u*M0KfR(3Hftg;eyHO7D zYp}yph)cF&Iqd1jjZ;uxn8tsAXA$tB7~3@3)$m^bK>LHjH^a;MDd@93rv2IGkH@B>geWD`Kb^^NfQ&EGMMDc}^71lMtW3x2=y8AJWOvOMF_1&7~0U z37OCPuyY`jWrOsQkjZ>sjps8y2;zOq#I60<<|(A>s8fUZ-FyM~HEt*U15YP^LyT3< zhW_Kwp06B&c~M~UvrKZFM*fZ9XWEHR^O!s;W26f&23`3`tnx66eI?dV{sQ^LoF^e( z>g7y?{HX!*Wuc$@MTEkyAe~%a*u53T+K7vN%3i?jfM>rLy8VEcLk{Pxx_W#a?8&(c z(xn6O6ztK0xOgp9`w5pKUh2&Gs1@MpxGHonLJo0@2W`G+EyA39D)tb1`uz`JznRB3 z2Z4Ln<5m-FPJ>|=cMjc0o<27v^P*~uM?qf&nbM8riu?39mS7rbPtIenhi*@y(d8WA zD#+AY^DrbrVTSotf= z?GowveXYQ(%iIG`9>q%@?T2R{aSHa0uzV7Czs~v#;$44cnC<72({u5=Nf%)0Nz8cv z0NoIc8|ufX+#B{&>U-h!NQ zz}%P1{f!K(v=b|h>@V75%=s1gDTn<|gP)q7l1ZK4YZ%1+2r=gh)P^tJ#oG4iu>VrL zFK}I$JQD}x9QT0D0=?f>csGGeRFC*wZ#OT0P#C#=fH#(6j_ZEg*TFKWbg{hMjqZ-5-iyu^q7O%?7Y0;c>iDCf6&+~@>L z7wI>y!g&@?Kdn4+?|S^i>w#Mfya_yNw9b-yEsMfn4)(D7JrWvy*IGR z*lO65YxmqMLb~|-r}(K4ZOgIEf>c~XQat03cI7GS3+H^emtz=sNavZ6DqzhW5o_*< zSo1KO5XS*%yErFLJO=F&+e6|bcf`66R(4ZjG?IVIBf=z{v|={=FZ7kK>7 z6kdn&aIvSqwI+0zdHhf{#&aG|dE3V1l-aX4#%~QxzRD8mD!0VfLC$o9W%=hEAot0T z{`GHdFACd%yHPeC^zyHP&I>(1=f1>0Y<|u?;d#nn2lktk^YIMK&3gJ9-=Tl-Snpiq zS^2xbz31uMUI!ZiH;276zd9Or*8D2@tB;CY!`3E$uP!!zt_Ba+Roj40taVjl&O`3! z>6(Y6oC}||u*7@7&a6|!2cM6xf}hRi{|CSyrEGjjc;yg(X&4;&fQG zfr~*`S}60lY1jh~nM;8+{~%nBvdMI*ja?2NrIGEq-pAQrG{!pxs=8YN9@%Xbu#3_e!F7?Pv@cQ$y~|7y;VcqQIz9t55I za}N&PLf}Q{9~qWo820H+&x+jBpm&6P(plcRdW>K(=6vR-;OPN6b^cKsw9mlOnf$Z^ z$9}}x2S^^R_mQr#BJ;P)*~u7&?|ma6lYQ2cH=^94&USzvCu5w${)_t0gZ|uC$@Fgf zTHt;Se&X+6wf>I$bHG0ZbmC)xsegaO%XG~GJpzIFK48+1uMXTJp3XU+=fO{&&mWEA z`8s0t^+UkVI`uO6iB&I%RWFEDFBn#1hIY`0>lYs(Ea!E(*L|10U_bDyj1f~e1dHh^ zSEQ>vRAsREN2kJ8dmOh#z>+@+SoSAYe$DXsGQ>L@SaFfAu=9XbRu=#(-xmX`Y%KLW zEE~%+Jc^5Sm4_9;qOSs0yla5fFB7X@CRV?^7FcN~R@e=|vK#3-+eo_7Ld>vny9%s# zfoQ8FEcFq8Iq1@dSo#o4pGsiq)7)c@F+^uvYzMf<_^5rb)|ujO11#IN2bOKgqjarD zz2G{O)}FY2aSh~j1kZ7(;~a+&f8N60d5MP(v$ZqgmctXg^HdwpkUsJo)C(`?Qp~m9 zbf&Uv zl+*=c*{~^i^j^StIacAmXtot9!~KyKm0{|+bzggTAf|oT&W}J?;%}i3ac|6%m+Wi! zy&JHH1h@I`~5ry7AyA=9ocqi6ed)x?4P*JP!f0 z58`}a6NIgT9O}a|Nvv{3toCGdiicP{!_e<*4^=hj!jn?`#QC<@hvhhdbj>M^LmNRI zp8h%V7g#nQ20o=x`=Fi&59f-!S=|K7lWd8HupANk4%$$40hfVX` zi+u%M@jLlf-ss{oz%j#>7&9=v3_E*dJ)kQz`W>lo?Zny?L+#gRz4qrpWiW|-;R0XA9)_G zO-tq!gylRi!xBqQ2*qFa@~?$HuX~&uXttf<%O3e>XRzuo>8j(zD%%VzI@VEIr7# znM@1ucGzGt1@Uf#J`8&!Fm-D)4tYlG%L(nt{2kgTaI-;YyT`MH%u~K!XuX^5KlNw+ zlCE~1ZE1hZ6>#jm(#w2-@)7?18?6uG{)#7YR_m{z6FW;;MVUpT_%5;=aBZcAYkwg0O<9qewS$7QI%#QnOWi~%nPzw%{8 z3O9%T>a&<$o-5?JB=U&93Rw9?y2_09`SiwEqbbs>y(Q}F`yk#;P)g;8SmlRu(pWre zK$o6qg5&)~oQGNA+f0rjmx9i6^)ckL&lNwhblZ@UL#(BSUP92d_Xwn_1zd&uWwd(f4SKuY)*Od`PWv<7VJRMBmVxJyZsP0z>fbj#Kav;IM}UWApsBA@2Vnpzd?auc z_*F+n1IxD6zGa@f9+r|MhWu?G4sp3d?!74j*k z3iMgv}=Hw9&H4cb^V4>4UbNpIdbp-U#ie%aajQ(~oYsh5vooFf)Lv1Agf9uZ6D<-pYQ z(-wHAfc*#GXJ-LcfG(YhC1(||%CmU*?z|?&vldvokuH6--a4%l>L2K`&jw(|#W5$} zyP3xO!L!NpFn=TbMtgcj)hM_LF6X_<&`}e!sU6FW+-nep+Jxs_;vGpPu?_j?E}@5YFPg z1DV833*~o#9d7@?mzwL-SB;&}yWe8ux4J7e6b9lm)7`h3tYM_8`y5^J52 zVQ1hS@Lli_KLGrx$D|+F73oJ^W*>y^BF}Rz=q!_bm(hGOG2cN(K@Q9OLhumtj3M8b znWv=xkurfvXTC^>zj*$Mp!1!YJjCCDzBpyir5UU?fppn}sU(!0{H>ER^SFH{qU4$f*R6(kS{1o-X<1Q6Jg`VIA7!SHMH8cU8SZ#p4I)rm{r3 zbZef{jaa%-f9bFb(*8Wo47TeA8+ba$63yT`y_9oDf!+pmw>7T+wfF*}zSp3xI4(PN0(U$fX8%M4)Fm*m)xTS^lTI(#sAV+nUSmPhsKVQd@ zAn}kcJPR^)7J&6aVOj6QLpvz#RlxcDf}D#m2UXewXI4O0TB?C%6ZPFKz{CFcUlXm5 zCcRy6^u?f$f)1inzU(k571z`hCXdoZIp@DBKgyDgc(-llj$Oz`9kTb>09RFVEZUSBnx_F2slUQ<=K@RhACivH* z{IFhdyhI-9Lo6K_*JqG_C-?^e&%$@%?gi#KDb>5BkSWYD8}ERkok@QZaq-L=v2<%4 zSY3V#ayG!&q;oE-Bf=81tzHg()uR=_DwC^#RhP-H@*kl;mV9FI6O(^PPn1)HW!=9R zcrCEz6Noj3K%RX2kFZ*!p&X4jh&2bx`OJ%^+k7Vb!M5Al9)=B&Lw%4Gw<&{lW|nlF zx1}8JfqbSX-b1l|rm)1~Cl-IX=V4hTR(gq5Pl;t8V$BJ(gRLq5Q^Zw2&v6OQ1^e2&;U>sYepNyTwY{V>F6!SL zbn%d`yN-!9ZXwpVC4#LKwj5aHgjjaqT}yh0BGx+;vEHGWN3tie?A#RjOZhze&vmHF zkw(^Q;?r+~I}Uw4tRFQJIeivw5Rf=BXm&Sk*>1T6?FAA*a8^Ke-!eGub&sXr##*s@7k51 zk)8ualri2bMStXR-HI$J@y$`7&5M-Zzl zRY4E!L!*9_Q-ydjEOSTT%pmt?5+9$-#d|M_@4h8+S9qS4&xP(9V6K-l?47{FJYE4@ z0sdgZlPH}dqL3VTO^8P^^+V4ebaDtKs<86NZdhIe`_ z`;ccxguTbpX{!f3maQ1?GVD=*0d&egry6+)Oda}H*|!@8q0HPg0%z($p8>k+5wXf7 zvC8CX*iiii+d%Fypgm^8DPQIR|K*yTd%ZWtFTl5Bl8pNj$)oZ^%rXp9#60W#+z$CU z_QUWj=GQoo{HpK7EUOzJe*v({DzVyg)}69mc20r#(cXqf`}S}!niM~=_=&|&EPj~P&Glz<)`G6QCVddj@B9Pt5^sxsnfukN zfywigr)!@!d2%1v864tec<&(pQlv#PDW7{tc(2O_VAea{>#_-$^^R*Xl;3D!&RuY_ z(NzZ-mi!!#MNN#K<1yafr!g4A-glpsf6_HhBY#?s+5yVc_>($!yB2%W5HIm1u>aG* z32A!Dep?_~>JnGjNcIuUZ+X@?2$kWU7liu)R>;r*M`tLw*?s+bH z4|hNT4*{LF+8ekMIxqM08rIGu6RbMEl z-90uQAYFBeI2~4LC!LsWDZ?`DyaR;tHNGW}#$cq&&TNZb#r*#PzMbS8KF{@#e%*Db zSJ0Wb=QTFwA!geZ^)>qTO{@-*e($liw}+T*V5R3d4m`U6uWpRJJ=4$!1Gj+=YU|nq ztF0S{e(G7wmvXMSBk1a$i7TG@Wcm(8p;qhG9i22pq$HhLe zzsIG&H2FKckaLwD@7p@(ngf%E?Zfk4hbON`Iq^I{x(|DxDJ}V;=ITz6=9qyL~xj0zc=+gv1YH?8Ngp#Cz_8J^7wz`xNdw zGjLNpU2S+3_*GUJmhJhio=5FDc~pjpRfcKjWyjiF$5USaxa=WM=ObU9gq(5UVgCNe z+e&>O!?r&Jc?TYrF`Yvv*8W)Xw8gsB3hD#=&7YAM@QG()toyd7KZN_i7%#(Cb+$I4 z3YhVJ?s!d4f*o|1 z7qRw#lIL%@$Ls{~Oa+}fFt15hUr&5L>hGCehn{8F*WvMr*v~fFhgI2FkM@Uhs1L*b z>AE1k`+5-wcVPYHa?h`FvJw2fuu-Y%YcT2ksTR<>2XoG^We^!>?eS$je-KXXG{l&rOvL;;Uf8 zosgCp-aZq7Ngs}UEJp*xd|ZeNa&`co4IbUmG%tl00IS>*t9%lxe9nd3c3a!{a{}a7 z<2_;kWYQ*U5ee%T*BxfwX7eQLLEqyYYr}~j0RP$GXM0H7a(!(zWd8Bjp&JAGV#LKc zOtu3{f%Sg699U!i^$1Izm%-lw3@kqHer< zkeGJ97IfPG+$(eLJMa@LEyU8FnEHpOqF-;Cl$p_xqq^1}5IkB6t{9<+&N?BeDPCZ=kcxQ_s(VD-m|ow$=|4|LCI7MFWjKzF*+VfSZF( ze)cKknG1Rw&?!e_`!=4Zmk)dLdTUF`Guq$5!myR7Q>y!wbAxz%*dBED1)~s_SnWBn z#^l6m!z+RBZ4a_%FKhe78rJkS2Vour(5pl3M9 z!OohVCf~2P5q%{@E#h>e&$=NrWk5os}-q{|{H!9~Ws=^`9ArWnfVU7}#-la0g_U0R}=D zV1U^cS3opWOiFykL`6l#L?gqbL`5aVH%v5CR4g(yGE`p0#6l%Sr9?#~#bgZ&3l$3u z74<#ebMD!lPk-!wzt7>^``qU~_qq3+bAODs&k@qsJRy&KUTp(oq@#P2FQPUBedGyl zrR-l*jpzE=nX=C3KNK%=H3`?>Sh#9Mz4UO%{}$r$MhE$Wt35eKT;C(OzDICp#0$Hej#f_ zu|5-L;U=C<;|`S>_w^7zI)bY_FG3EE`2YL2+N{%wFVKCpKEbt4Q0J37rQSZF=fXM` zpO3}`8Vk|`4qhjT*gn>-U|->q$;Tqu2&L6AVkIJfaLpeaI+(A=z22l)6XI7B#z&-u-@Re(OIb44d?45R#wSMH%hVfX zz3;4b_)`-kZ+cp6Na!nf6TdxQ;v3+9GTdwO#C;)OB_Ff=T;Uq`fR6gk(Am5oz7nUU zwu&|b`4fLJa~8zUCHZqChYrer66J|ApmqF({!e-(E#w-zfWF2Vpo6xDeB4xTx_1x! z4^D~Yf}cn+NyOyA_wJV1T92upbMY)BpUAaYmlB73qD{&MUjMe#6?E2V4879m9Iz<9 zB;Xb}Q~Yk^5Kn^T@io=6}gXGWncI^^<7ySB!ozqMYDb zPH-(7cx2iBMRAgEP(I;^wBQ=&2iJVS^?AWHPjJn1fu8H%-=TJ5%JwnU;Q;Xp($P8u z*F3>B&l=*|A3~1&-!^GAf9PmG39kJl>T^EVZf%f0-h1m!;>XpI4*G%k^T~!aJe@e~ zV~wAKYd_OubkH8a_1gqTKQlsU!Sy==*Ekip_AM>MHBWHJ(HDVhybD~@>f9*q+ZK@) zT=(yE5XbkPOnqz@asA$*qj`es95HnC+wUQcv@e+a^||^;uKPH^HJ|WiilrGFX^rX@ z&ysQh+5E(vv0@K{KTp2)P9uj7&Y6Mye`ycwS4h5O(iRyV-Omf1Be&c5ya;fO=YUVs zK40wZ1%K&F`DVfQ?W-kz7tJ@p27vq~DnpgIm)hI7uYTju`6|WqYDovrrQi4fJulki zDBTNO+a$QQZE$USNUQUPLnPPvJBNu;UrG6oM99a8qfYK2c^$P$)%P0xM@ilkA)he% zb0l{goxc3vY1s5iCW zz}0^1qPm7}`!CX&qdf6kU%8NM2IAV5z|nqwK)N)H?Q7dhMjvOdL9XA(ijkwuul*O- z?*(#g|IpWaf$P1%^*aLB{BMnu{-mRo#xA-?W}TeBinUBwKRiHk=-^pUh8lWaor}Mh zDAkT-0UldDozO=Vx#&A7%@ov)p z{mZ`smO7q!0N) zw4oU>5X3`J9^?=CwST2D8y$^hA?^2$wOI}3Ub9v(tUb^QZ${z&z3hN;8rzb(E1^e_B|#K2LXchuAG|B_D! z`5R^~Rre*q?sbrjf@g#ejy(09f?sN$_eQFRf75xw6Xsc<^CWS+Bk&iD{Ql2q&!FM^ z>c=5Eumj`iUg}%9iK}n*sJSo7;5FqzyUK{r4@BrgM}2`OC@tFa``@9y!hHMJ(ISB$ z>7&WF@jUvKpF{2$1>vTRnbkw0K;D#+Du z0@s)f_-Thod0j}pcfbTtDVl3b{x9sPC!Tt!N|I-Qj9cRPSXQHf!FOhukqu-Ak{yxS3-=+46 ze72jhuZ}q0#q*@2e1Uj_k)u3A#!mrnBDuD!7UJ5j+K400f5Z34HXyG3d^YpY@qpW+_#718ixdj4%XxK5!X3_ zE>hIkKDfsHz;&*n&De7I22Y^;(H}lYeKfd!%ivgx^0|@2&X2lObk4k4_{o$H>h@rg zgKHh$NPX|t+hv{7tL=ibKK~{8>LkCL_}_vO|Ag<1{l&i| zIqbb9(s`6Pe&Yfk4xY_m?Gw2xAG@>8WhfggSMv3Bb`lH*LaTQcc8Cq6-W>i51v z&!+tVo-391gyKvjJQvPn#-9Bt(pS3__0YOo_G@=go$GHyxaoNxSfYBqjO-lZpVMzo zurEXWkwiIj74paEY@#80u9K+)7944*DE#}9nsz3l{NP&tgQ;wHnBQQ< z9`-9oX^l`m^)19dX?0i^QrW;C_>j(dCVmC+wCCk}L7!7VWy9~R>Dm4m7xt14-s3Xq zYu}5x*959JtjELeT8>3LJGhn~T%R3W%RfhD#_tv(23SYWhWzoa7f4=0-wt>W*)!UH zpyU3g_~0}hvrivf${XEbUvZ9^m_Pr(DZqmNarhLn>|ALgRgvI=Q;$}XI!Fs!8=0xTp=E!ec7*( zKDg!s9bLx-uKwv7aoG7^l0LZh|KRBJ@jGtd`}+Kd@^lc_`q3CE%Fsn}lp&Rj^$kjk z{HqPu{2@pFCm6ZrkN0&8^_f2*xr6FR$EAwbd0$dx^0_G9uE(Q~!vzH~2$pOT_heoxruNLjQ|I8guDh z;Mzw)=M%~kb~WT5)BG>KcW{kAV6Wx9r#q|%DgOY;^&Nrh?;?St9-cEg>Kg`0u5A)r ze+wy0{AGGCC=a;qOGTU1m}dpabsaL~YFE@mqy^Wsh_Ptf2G@M*NJq;6zVEk+BJyd7 z$ft=o`kaR^r*Ve3zV|lb`n`bby;|sA`rePAy3%`PQD6Ny+0UO*KHw`|4lAaUd~Hgr z?YWD%wr6l{x5!6*G~};s30&I}xVEJpN~`Y$yf&NcRJs@LTYa?6I-dB^lqc@{4dN#d z*ZV>r@9q?mgX_D44$6b}3Az4861e_GQXiE;pQVrFn&$w?wN4<{=Ym|H1zev6T%Tot z^tEjaAs-q@ucx*TxxQ=EkJ?(7QUTAQdD};+{1_8a|2RtrbIss5W9kXAbuRd!_e7GN7pvdIc0;^Et7nR?sYbeHKXOi^?RY^=KNj!o$du4Jv)Lq-3xVfGL;qg z-FyXoM>J-CD`c~hh{qEzOSf5D44xGhtgk3;}r2XifHUNeAf{&UO@if(G(k^ zz6boO<7JFSKIhTcG)DRr5#?NpC@1vsO}#)mkZU=S*7{UzD)22gk&j~T+m|c-C**pD zHhA@wHp_mMl;MI}T7!Nf`CnwyXr16*Un`;g0Hg!`5ju+)eK`2i9Q6T4zLU-XEFwNa z`ugnP+HVgL_tJNQwMk3 zLcT(ErE+i`6QK`|@fZ214tS(oeM98=E&ATkw)=>yf3ZYd+Yh+58E|bg;M!*5$xl)J zHB&Z}0dh?Xu4%#drKNA`qo2^3(p{ua{K}hzBNp03_4$;Mw~}Lo_%?KQ7Sp<7zi{1` z0r`bA2a0^w?9}hvFK0MIuJLVf-LC=eE0Dej{Q5=u4O4Tk!~NuI8-8J&*tF2eKb&ku zBfn{ZVzP!m8Ntt^-&uIy$nT_10%u|)ZMWe#8xZe>x>r7XT;CmZ^z2#i51x^^Gw??8 ziE!pN_{GHWyQtvS&n4cDy3!a3uEZ`j=pDh%jJulJKk9R?`9J|nn3W01JUd?3g3zDD;2*XMu~+fq>{t*;{;=*Pb;dxgNy9Fo2ry!{HBb+yrXd9Tg7$?#pD zn7MV*dGqr9@|z>%haTXtZqxjUlPcfqhFFS!8ad8L$2=+SbvoVaStHMWP}(rszz-jXTqPX0;Hf_GXMkrrI%Ou;oDaO4xXR`fNWhKRJ_st>OB1y}v1 z2z_wX2k)XW>k7&r9BHxl3S85+5Z7k}*R*ZKwJkx8w2x6f;F=aX+LpkzEp-srJi#?j zaO8tF39k8cMd*X8KDa(Fxa#BGp^f3J-Jszq-Slk|Z=-l@n&J3OnQY?F!QP^LBiFP& z=DzhL2iN<8YdOL7z7^Cqu=nkJ(g&|;wlnV|9Xv1c0oQj8u6cqZPt-rS<~cxI(}HVS za7_!YX~8uu>fy5+DNaH69U?iN>z~AHsBAy_9i6FbcpllqUlK<>y!2D~W}$;Qm)IYP zKDgU(%*&@6{&0oNH;qvKDCajx4z6VbN7+s@axEM3M||~ClMncn#K$7?0oUgR*F3?I zCw{9JT=T>;>U*3ZuH^xT{*#nHxav<4S6>6=@!dduG07l5g6a(%@?+^A;#X~(qz(~Z zg^vDKJL>t#ccqU~If<+={il5$xULlh*R_J+y7muT=bgbZ=NnIUfpRx-3VT@}lkWz< z9{kh-i7UdkM|_yXd{*i$SJJxiLgD&Oafa#!y=$C-c{=I4$uGbf-GFny9R;qo+)}KR zA9+Pn&A_AD1R#R-?!1Z0ft{fb2qmUM|qAT|MzawaFOReKe3-P^lFX{XPi-yWs*w_^C=#G6P*%K)x z1CBkykmIbyNd2ctegd^$$hAD+nigF57q?J8+HSE<59bgTQ+d`**-jzeW^_NGfnTNhfU6F;>SRRdfU6F;>I5Qmz*Prab%GH(;Hm?z zI(5WfI9v8vVvC3<^=H@f`6oYf#a;XSBY0p{i1C6okYm@oz+ir z{Y^vYX#5IXf8Vgqq@`pQxPF68#C05LAg+BZ^1p)ado21W>U&kEB_bd2eQVo@Ykv;8 z=HFrTF=l;2b&B$%ze4-O`6u_0tpFWem(oRC%g{qy?;A^fEb@%`3E5S|kq@4wk94#Q z1H`oqwg?^Y-&5LeQ`#ZY(HPnYaecoT2kn2SkZWuTa(!Rm`o6&Rea#Tpd=OhcKiXj( zaubc+bYI+S2k|uGsuLuAZ9kCXUU-%O$&ofl`eUY?Rm3ME$_cJzLq1wIa4j3SmaT@k z#-PBzau~(XDNpc^O37}cegj-%Q(k&6sM~*$&J^8C&#agsu4|0vh{HatqVECxTNHQ2 z{s?fjGr?guzI~p^)ou)!{77rtFy*sBay(1)&BFCrAXobtT%QYE?PqX( zE|f>l*>-H%pC`Dc1=l(O*RQH*j2~t&Bn@RSHkt4o}7%B8!baP71{MzqGo#S3uFa0^`W4(v& z+XC0UhhEBC_f>)G9w_ib?y*}(-9q;zuHRjNxPA-Z+McmKMAwL(P8{#+2b31~`s_Jb zH`SN4e-9euKf9OCry`vJD!+bH$Y+Xdc&vMYT)z=;{YJp`8wpYwv_D~q{om60iiXEuW4DerT-!PHU!pi9;$1XtzptE-A43NeeS`Enh0&>j<{7FiS^5DK$w|O0L=xd)3Irw*}Z^3=_ zJOnaRxPCAeARpaFiL^S$fwUM4kQO=<@0+;^;#&SoP1``90NzLC-*hXrZ>r}~Y7g;- zFHswyCc^UW^JR@0=DaXolo|Ps4B3l>d>W}gNTakBlt^tba4nmg+Mc%CFv+#OK?lzZ z`wen!Z{XVA!1uK`;+oGDbl(J8BlJtUudY|IZliIE`cu^jQ`^(_39fr}!F3&D8`Vz+ ztqFXZ(t__Sq~C}7y6}sq={L)ayqox|hA;IwtT%~wP!6q>xb}zO+LwZBe^^5t&%2%Ukq`Rm zY~pn!*L=WrZ$9`#T@(ZHi;nKWhy24(taQ0 z1OCjJ5`PBQ^A;K?Ey{p%62Ql4?CYkq;D2tX^=XFd`2djX^EMIJxF6&w&+SHE%L5&a z`+;lRuZ7C+Y!3Bl#VkLmc_w zdmJIIZD}Ziw^030(0Pyf$e-kk)l?>@q}6W(@>7ndm<#DVLGAeTf<2J!^& z`Wl^)Xzq39zobnS$k)5EoIO^t_*+@38Kow2-*cY#Cay;}N>Gx|neB)P`TdgxiS-@rT4egj#EzTASs(gUWcIaEyuIC_kz4UiHsN=Rned{%3V|J_qRtdUo`a zwIn~9xRx2;i>~>EJb}iPw!3JJ0j2%jMf5vyhLydIulbE>XT%QYEzh9iGc-coX*2gE(m`grU zFSSo_?E}Xm@|lRp2VC=UQ~ezCby=UkKzu9B?PC8R_`wuN!&!OYf1|#4%g@Eu#ahQS z!?)AA6xdX-hi?hW-b3&gsIgo}5!uRTzF!zp@3v`_5!1V`J$`ap1Pd&uWb7tMpyy=F+R zwkx>WuHbm@_(q_=iELWvgX`}mfS>TL*p{eIlp*mv`sRpZkH4lZSlpk_ZM5I>A(PLQ zCr4Q?5l8utZjr=Q-)a45KOBtE$NMV!v8=&{el@jow4X3^vZRfHtKZ6U zDmQ#p=qHg4iFs=9Rhk2tr~9%#*#KBq33&ne!iZO|Q9A9@Dkx8VM)0rEGvd33{`YAw zRWX$TWviyTt-putQk2Ksw}!a(Z_r<(Sm{-yvq68?e#}AbM*A_Og-!AZ=|HZ15z6zL zPwEz2*V*E}8q>hNwEqOx{u5mL&xMrz`)a}Uyijo6n;cK~ZM{jx9XD~*1I7Z#RUcgS zu?9?i*cEz4=;M40FX`xd8*p831Fri+!F63t2642>yN0Q6Ag=8YT-zbIwnL=V{iHab z_I$tHnxM1+lIyt~D9?vi*{xZUgD((&&2Zgk3Vm&F8>akkl8z&a*8SGltPc#=xzQl$ zqnz%0sUIS)-wwEz8C=T@u4P7^*rS(8X~QJfa>kP!^@jUm-{@6G({CObuJhNB|Na>I z-Bn6kL230_koJcE(AknChmOvD*N_g%c^S#UwVdEuPH>bH^WETD&N||n7F^SUYg%wk z3$AG!i0gBCsXTV_YaXLAfb0Ai=r`kV|YrllGCD=~{yKCmZ^w)3LFIRo!qwDm* z52JNK=$G2)zIdnmxEZG)*YOlw$5Z_+yutfuzLm;w;dRu167L`#oO^T4*M(#4(|bm) z=N@;F4(cKPSM;ukYdwH#I|SEypil*uZ9D0MYo271Z%&8LKPz-LJZ{8>u-7vkQe{jm}7PKu?s+%M~&x6_;y ze4i$I*UQE}957`du?4Pskim660`nC3z2NNMP)sI5A6)gpRUff;?N=L625LXgQU2f> zw;3UQ9Y@B9>o@|gW5)z>eedA94-s732{_vGT@R3tP8@9p`w*vyYyLCDHGgo;-%Iv6 z{MmI%i+uq)?(C&HKXt-po%SI4gT&vZGtAF2yn#Mw)FI>#bjtcVJwqPnGn_#00)53N zq`weRhNX!6Vo#rrt>8NLfujug?!a~IdzbE&K(VPi9-^`k$9sP&NbeN&{1>sAJ51W^ zDD4W}OWPH=?$^UU9n@9L7>(z|FW^A zNUmjo{O32z*a5k|J8+~${WK6)eQ?!jijadt4*L*!CNw#$EsxL`M{<3?;K_TaeyL4@ zuVjh6>Nt4+JBlZ+?+7}`vw`wyBd+fVI{J>FqtECjIlc?{`_R{S0j}=?T;B!Cc^tK| zV$;Spll?PF_kw(?N7lu4kiM1y@_R^*@fUJ^M_t6VexUR2jfinjUmfvW84=F~edJk0 zI*{wLp#0k2z_pD*U!M{AcikXmfE?@p@h$X3lmTlCVLxD9ALNnc|MJK5{B&Q)k>>$d z5gMH@Ne-@Z+$-%qiGdH0Jn|W%sSM{lN@I#ii*^Ejt@%d4H6N76f2G43A^jneqyND= zK=8#4X#?O`i->)!%2Ce&st4E)Sc?d*;{v$a58yhEOi@0%e{h62p56UhinS2e@`FQ; zGJ~U>sKcPS7s>{%wk7J}iUs+0AlJTkg3=aIJ`W?B|*f7 z=;-e)A|Ksn1o;Ux*57IFs~kE=+e`8W;#vl9wSmEPod&r6wg|Y^6}YbN!g>I0Z%rh> z>?+w)!1MK2+pO)6Q@=tw>Z^L~`{$`QOj@)b%;|rplg=o+hQ>r{Q<`T3>1#P#D1UI+ zb@Zw%%%wg;`Ge~|Q0VBhK>jSvv0}~xc*iM_=7Zt^PCZJ z{8k9&;2^({=92zE_idwm@SVP8xPCj3YdjfTzgckoW|2<^a*KzTmhod`WP-XXa4M(^=B;;54m($_i%*SZDQ zXB;CA`*4Bs0S{0;o$BW%v0XFY}Liat=xOCI`r>fb1>+EG)) zb&Q5S(te$EAlI?1fn@Um+LuCd@MnuuaU5L7 zac~{SGZOZ%!RR8nmZyjKB@}djhspr{2KhuckSz?ZXTXB%`Ghl6e*L~6KZW`n+ob3p z@u7@^_>S=I@Ey%X=p!xUusx7=zE|vg$aPI4((1fF;sRaqQ>#Mj$_l%8#=bz~82{kmJ6G(|xhF z8S-Q1sNEU)Piaq<%3F+liF6vymH0gP-|1Xj#2dlUZ{WNI@N3L`G`P-3fNMMr9Ona^ zPtOIeF>~;9s9_?{1u7fb_VuI#j<$`t0B~*FOA$KY(7|~H;Ht9{p#!e@fUC|F-FJrC zD(<^Ra&6}u#I>D62kmOx6XfrZT-!P1SZ{Vrr^Hz+99UOER7aYdv>nUN3V8dGW_zE1Ou z7+-?K)h+^uKHD(F)h?=t(65Qm2ZuiFC~&p?z>yaDxTD1O`{9$+w-|lcnc%9^LR`xL zjyz$rc`5C0ud#7lu`5ESgE*cAbEc5%GeVAd7vgo`H&7Xts1L)sR{VYkY|AB*>pO*y zuj8Yhb9?O+jk#O*w}E)#st>O3o#P%R_5zVs?9!1W9Va6PL5c5=*ye6s;+lP6HW&F8BSN1ecLsv*?x5&iiG<#y{KDku7X^zBcA z8-4WQ(0?X{*2x$hT{i-qt=Y6EhsGW7yF%i(LVx!6bmlzigWoqK^$Zok?#u} zK8x)c$>*4(Xw7^Neok?K zb4d=4wRYbo-a-1P6SPUxgZ|zG>ga{!O$)z?5dARg7fHQ= zYkfjLG)vDY}oR;S~I-k?>S(%I(R)EoO9mW{2iWu{)GRB})&KR;P8N=2wgo)NJtLsJNQ*Is4 z@(QbtvD!MBvBvrqW36>2W1ZE^SZ`gx*kE1E*l2x^vB~OSY__goY_YCkY_+auY_ob9 z+pU`!JFMFnJFUAIyR0F`ZtGsg9_xO_Uh5&oK5Lw@-+G*Jz{S|8`x_%G zlNgt54UEgS(-~K6XEUza&SzXR?{nR}?+sfk%W3-#qr?7vMyLI9#&~-dqs#syMz{Tc z89nx!7`^s>MxXr-#ti$<82$ENG6w7;jQREl7=w2Cena+$`8sTWjIrE4$yj0k17o%Q zImR0M3yih)ImSBspBd}ze_?E}|CO=PzRcKUe~+=*{x8NB`+pc)?Hi13cH1BEzS`}Z z7(48n89VJR#x8p@W4C=PV~>41W3N4fvCp2x*l*8c9IzKK4%$PEL-t*a!}dLlBle>h zN9{F?WA+mm$L-%_oUot5IB9QWoU)(AIBh?VamIcj<&>Q9W`sFxXiQS*!$QExK(quyo=M9F*0kNP`b2cuRPLs8OB!ciacb$QgsjI~jp zG1k$KIN?3jM@2I>M8z>S8f=O>h_9QY+>9+z2Q#)t9m3cabtq$dl%KI9DwnY{>Tt%c zsA9(Ms4!zs)DeumQB{n6QD0;1kE&%Hi24TOVATIG4n>{DI2_f)I1+U(<7m{k8ONf& z!#Ez*&NvbE1IEdyD;cMvu4SB#>S3ITx{+}<>K4YisM{ImqXrolqJF`+7kT$I%J{m`QO?-psAOz*9K+b+IG(Z9QODTkIGM5C@h!#<$C-?sj%LO# z#|4btj*A(49N%N?b#yTHIj&&rcU;3b;JBV~(9z2{1SGY&`3GLA&Q!Z;fJI^$UM zTa4q;OND&PT^HE<`6VE=H#?E=6x+ zT#oiJu0-!(T#e3VT#Nn+<9c+EaU;5f(c1J?M#rWj8J(M|8RIt{%jnwlbw>B5lNddl z8W_EsPG|IOI-4i+ zzKryan8O*JF_nz*G5^Epin*529di$(C*~*F zFBpR{J6?f)C?=aR98=6#9#h9y5pz0YbN=; ztH`%0ri8IM=9`QyG3PM0#tbsH#XQg09<#>S5p(EkNY@!t!PpgZ8e@0N0Ao+guNZq{ ze#h7s^D<+9%o5{3%;tHdAB^!b4#gBQ4#(_a9EmxRaWtldaV+L)#_^b0#)+8s7$;*s zWt@sh{xkBMj`1_j#FR14#?&#+#hl7GAJfXX5OX=>V$3~^OEIr7F2{VzxDs>X>&S04 z=6=Stm_IVE$GpwB5%UqFmtDV)1HO{jbYn|6H z);WK{Snu3mY;d0N7o=}=4l_16KWA)q*1ZLJi}PN_R_CXTZO-EtA#Zm+%-G>PU@xva zofk89IbUP!b_U*tyvKPxW3O|OvCnzrUm@>z_Aw4P_c9JT^OqnWa$e3j>|9_RaTdP= z`Ka?g#xdu%zu|h^c?jc#GmCN3S;{!&JdttQ*~B>Gyqs~?c@N{9^Y@JN&es_ioc(`C zev8i9W#E$Y3&v&VpWemwiu1~U09Tz~{U>nE`4`4@XWI&{H=K7cTCq+sjK0`$#*Emf82z!YG6rJ5{{i&!W4EpXgRxIC zhGOeJ#C16KZ;a)!ZU4e`MeI$C)v*Wv8`m|l4UDz1-(#$c{Rv}z>_dzVvD1u=v2QUp z#eT}z9J_f9>04sGjIFUHjBT+sjP0>!F?PiMkg+rN3dXM3ml(Ta5B&(~dt%!ddt+~6 z?28>_?2mnxaUk|DjDxZ7G7iOl%s3po`D3IXiS;p##^y4P#a1wm$DYYJ5qmb{WbEUN zQ?V)kLAvSKA280u{*7@q_T+WQ=VJfFI3IiDC%9gS{Vn5SY|N*)UW)w|<8tf^j4QEk zGp@#N`wV|yi_K(@eT>s_A2H6vwK^f6jay@! zi#s*cst8CT+tq=gvt{l`7XxEA*^<9ghl10dgs zJD1Vg+|KCO{0gIU^H~&&rSE_9d5o^jD~#^Vtp`Ew*}Rw0ySdJVYv1M<88bH5Cg9q? z`31(n<`WWeoxgd8v1ap|jCGs;#aO@jGscF^2h#bj)Q@kL@uF$-cD`=joX5C+kk}I& z2Z=plxx}7uxWt}ty2PG{cZogWa)~|Rc8NXVafvNIUi!%t(;->`##P97vG% zoSz`=IhY{rIg}vnIh-KvxjaF}g^C0j$Ey=$e5gr~c3ztx<42v*t2cTLMz1kJp0g=I zp0hbYp0g!Ep0hPUp0mw7XS;dM4)dIy<~h5}b9N`lc+!&~<4JFVj3<2t`x9hb8Ay$8vS!<%$XKjgMpS357eb$jE_E~45*k@gdVxM&*2%$={JXHyh@y998K(?{fjhSC5oLlo+x(S zM55SvlZj&IO(lw*H=QVU-b|v{d9#UP=glRGoj0E-cHTmw*m;YIV&^R-hUqsgXuL{% zl5r*R2-GZ>==KN*fD`5v19U+#EuCji5(M4l6nm%$+%yhB;$TXl8pP+Niy!& zB+0m6nA@VKR2c-_)2d~RtM8E$D8ez&xXfLq!{zFXQw&@JsE8{J~(Ho3*lZFY;D+v1k`Y;{Y0wz;J~+uc&1 z9d4=5PPf!&ms{-IZnxOEJ#J}Fy(a%Yx7fS=ZfQ>gZfQ@0ZfQ?LZfQ@$ZfQ>=ZfQ@W zZfQ?rZfQ^BZfQ>wZiz2Vx+VTI<(Bx*v|HjoGj56h%(^8mFy|IOZr&|^+=5&DxJ9@4 zaZ7IT>` z=Sdd-&YLX$oiAC&-3)_%lP-`f{d<10#Lt4s5_^$r3MVOO|*^d$Pn! zI+7(`(wQvrlCETlmvkpfyrd^t;w8Pw5-;gXmT{s#S;oDA;NZDj{6gEAVtuxU33%lF{h zy1{xGTMsHidjHl#7z0}i8S}S(l`&}Kp{*zIb$DwNWBJz087sEl$ymMh5yqOWbBwiH z-(alUD*jUa)_?GI!`4{(jRW$Fx5hIzZB1ot-kQzWvUN9O>(*+Z@q%hX-#jvlkfm*W$VxR+OtjOo4ng(9?@qoV_Ow}KTX?YzPEYX2Q<6llkB7Z8HDcvrXoId$(bJ`9N!C+ryNO-siSI5XM;Z+xF0T8cu67fw97S z8e_Hh48|JoS&X&bX2v@2`Gm1ngZJBvjo$AtHhJ3_o4r3^Z1G;n*y_EOvCZ4V*zUcN zvBP@{W2g6a#xCz5W4HGgj6L4_7<;|HVeIpcG4^{OWgPJSj&acY6yuP0nsM0sN5&EF zON^u5*BHmV3ykC5y^IsyzcEgF|H(MzU1gm1e#AKA{giRm`z7O?*HMD!p7+KwE_e@Q zT=XU}E_pqS%idJR6>mD@syCBy%^P4`_a4T$;VojcQp*?}spX8$)Jn$q)MFT3smC+A zQ|lN#sV5WCuOgh~CfsU3`= z)GHXnsn;-;r(Vxkk=n~xoq984P3moowW)V8)};OUBJQ$JwrOI>3eNJak> zYYnD;!q-EoUoZ}*MwOzTMpK=PW2px)j;AIvPNZ&OoJ{pHPNk+1QootHlW`$c`iI5T z>-l;qb%Aj?^?)+yt)${Rbz06tr2mUQM8+G}Au^u250P~yUh{XK`Fn=>d(g;3MjkfT zwFa9EHk-eoVAF^w-VxhPkF?oZL@2woAF3+a-PccIj8#+vPbt z+vPdDtWR-d-?RL@^}dWSp1Z+!Gh?G~(=J>$`7UK__Px#6;yeDUkhl7N$Jpk}+KuaW zUms(K&sL7>PT#i~yL_)PcKg111mr!wGZ}k*PcruTzPShTe&45z1HSW*#Py)>J;otl zeFd(EeU~$i_#|F5>Jz(l%qQ`pai7GCCVUbvn)FFrY|1Bbv1y;g#b$gG7n}7-Tx`xK zaj|)y#KjhT5*J%Exa5<#*s@RJVk>-3F1F^AxY)W+;$j;MD3(!}0#r->iuNfSTLnA6K0weq2qO_;Iyq;>Xpci62*=CVpH)n%LouY2x2ErHOyvoF@K# zOPcuit!d)lx21`H-<~G^eMg%3_nm3t-*=^nf8U)Z{#cLsdvBWf_kC&NkM*aCKQ@pi z{@7re_+vw9;*Sldi9a@yCjQuHn)qX5Y2uHKr-^?*ktY8AWSaQ*Q)%MgPp650Ka(c@ z{cM`}_j76D-_NIsf4`6>{{3Q_`1ea`;@>Z)i9foMCjRJZn)st@Y2uHrr-?thktY7A zl`j6hBVGJ^XS(?J@#*51FJoQ$8e@I>=Zp>M z*B*`Zjp;*-P3dXJ;JP`zjtk1 z_sy7evnJh~NjGoOEtqtRMsJCc?B+w^cRFe7fRx9PA?0yqNO?j=9yaoFmLF(UXWUbR z`l!#4=W5H4`G)q42Uy<8a;Mc}()XJ5eJ0=j40)b`3_K6n^PGsXywiRxaBgQ3xpLsOPU6~ROac4?A#FHuU5O1c$ zLwuRHv0g^zy^Q|MamGOA-x>2WUB@H;VCFW)Q07j?aAqZAdFE}56`2y>uFmwl(^Pdro`#TGiAJ)$dq{aWTwQ!r!u8KpU#xH=S-%=J!dnkxgO>+A7Gr%9AjL_ z{5|7h<^tnV<~xkbnK<8*?77TO7*{hloq+4L%!3%$Gd+wOnQ4rcU*h@>e;!{u{ks_B z{q>A4zr>~7{xkX7<8NW~`Y&Vj`R`=R@c)L90Bo_nq?po^jeQ_S%eJ z?6q0H%^vk^7l3(Wami;oXx8j$1y;Z-=>#g}EuD9-&xZZ|e z;(At=#Pu9m64!HPNn9^JOX7O2EQ#y6vm~D9$&z@UH|qdiFXhX+m@y;kHAa7y#PI@I z635HWlK5RPOX7KN0!Xnb!N%DU00UO+jVEj zyj@S0%-i*5$-G@(mdxArXUV+XK$gS-2eV|}ZYWFaxZy0Bw;RcldArdpnMWJTl6kc8 zEU|YdvSj{jGE3&qrm|%IY&uKgi8EOePn^w?`Lnq!v76_!#BN^55_@?uOYG&PEU}lD zv&3Fr$r5{cHB0Q}wJfoh*R#Z4-pCSr*~%7s*^w>wvNK!k<@ju|mtEOnFT1nFUiM^* zo$SpX;`iXoKHy}$myB#Tqd)t6#z6KmV}ABI|AW5=vlkdc*(aTX>u~lPjOE#4Cs$U9?lkfcqCiqXGXJSer7CN=3~aQWxdKowyal~%s%}U*gsR*S1?Xz%led=>?ino zHe1%G%w@~^l=*B~pR$lG>r)o9Wqrz0wyaNC&X)BlE7`I>Wi?yYr>tem`jqu-S)a0z zE$dV0*l%9X>d2AxDb5^OpAw%V>r-4gvOdL~BkNNavDUCU@E~P2w{?}2D%{j6zr6ot!rL^YAx|FsYS(nnDBXQP_99fsrnIr2` zx^nv8K>F?+S(nn2BkNLnb7VfNFXt$3fBiXUGY;g)Jk?;1%u@~J$h_2Wj?7Dq7$UM+=j?Dkev$T%;m`Z&wP%||19Ll z{Lf;J%>OLq$o$W8j?Dk8xJoWochSYWIPe8yNCXgCAu>H_C5)(5&78v^$-HU{ix;_pp?gBY6wdl*{+ zS2MN-Mi|=y&oZ_L{=wK0NN7U3&Okb2SKvs-?m#nRPv8#5-oQ(YeSyZapx+<(f^i^l z?%B8=3@kAY1&%%k*TaD>#*x5NjH7`C#<9R>jN^ernxQulC}5ln)G|&5zQZ^jm}Z;_ zyvR5k2%ii6xxg*XlyNZ-WLyeVGA;+c&bSgdlW{e03FBJeYR2`zPZ&1> zA2C|F4d)|2NA4dOow?a9xQ@^LF{3N@V@7xGsTV-*$(>~M=B9lc*S_2a#*EybGWv6W z#~8?chcQ3bb0PGCxoM1{+#<$s?oo{8xh;$pxj$m8&XxIoO?QBOYSv{t+_vCY|9;CY|nk2*D-hGW?qDJow=QiUAeb1 zcIS>V_T)aw*qgiaV(9hd7Bcqd_A(CS{*rMpcZ_i;H|aaj8_vyV9Lc?laWprs4f3(v zQyIr|?_`|F{RQJ>?){8YxsNbT=RVCillubWZ0<7ST<*Ua=W`GIF7jK*O=euo4KOa{ z7BVj99>=(ndotr{?%9lMx!+}6&%K6mBljjoD{q9+k@py*GjE15KJOJqSKixp!>dX_rzAI1s`tCgOC-x~_Ve{U=hf4!+d{PN}k@vmD7#J_GW5Pz(#K>V@x0`bQ> z3dA4lED(RJt3dp*?gH`0dJ4oJ>n#v}tgk@)vHk+_#|8?-9~&$Xe{85g{ITHz@yA9A z#2*_i5Pxi}K>V@s0`bEp3d9eaEcge%kEw!$cD%pof+EJ5g3}pi3tAcH3hrQ>FUYx+ z+jGHh7#9ot-^cY*fy6nM3nXr_QXqccYJvE9YX#!xtrv)&w^8slPG<$LV{`-`WpoDr z!WbX?jL{YJU55PK!D2>FQ2ax0Q2aw*Q2fJ;;4S=jfAAH?fRX11<@*i>rJoK3r9Tb_ zr9UnYN`G7tl>WFnDE)CwQ2OKAp!COeLFtd{gVK*S1f?Hs3`#%R6qJ6nIVk;TOHjs# z)}V|FZ9y3q+JiDKbOfbe?+i-6-W8O7y*nuVdQVXL_1>WL>wQ7#*ZYIguMY&JUmpz0 zcsdl6@pL#S%6K{zl<{;rDC6l&P{z~Qpu|V! zf)Zz%56ZZ?5R`FqF(~8aQc%Xt<)Dn4D?u4ISA#Nct_5Y>Tn~yJuo0AT+A5TB+EFOu zw6jpg>G(n!r(K2O_qz+l@Anjn-|sDyIE$}P#;c4%8L#|>GF}A=WxUESl<_K9DC1SA zP{ylpp^R7Mg)&}M6v}v2T`1#KO`(iewS_WX)fLKkRbMFMRYReSSB-@-o-`H8c+y-b zes4>m_`R)#DII9PZG|T?wik9Xb`;*u*jbqS1N^)yZ=u97`U)k! z*k35|#eqVJCk_@${BWpH;!VSa5^owQlz7uBC#J`MPfg?i)7sQ6v?>nEs}BHS0v+pMv;vB z{vsLo14T0K=NHMiA1o64Ayg#(T)0U5x$+|E&nt?=ud6OH`x%SGzpE`W`x%SGzpF12 z|E{6P>}M}M}M}M}M}M=8`x%SOe#Rp4?*@v@e#RoRpRvg7XDl-N8H>z*#v-$yu}I<{<3(maW0BdzW+#&M21nxxZNA ze1T$#^W_&yTsK%O@#Rpl#Qnm>689@FmVT|GSmJ-x#S;IkDVF$OZL!4v>WU@)S8uSP zSmJ<<#S#Z>Dwa54bFst$TZ$#V-D=9$X71l^%F|)W-)YL-Wy;-c%H3ni*=x$#XUf@c z$~j=}H)!rRR4j4F;bMt9jucDWan#^gvBV$8izWUzQ7rMt$zq8=P8Cc1ak^OIk2A#* zf1E9r_~Tr$#2@F2CH}ZjEb+(1Vu?R46-)eaxme;+MT4 z>5uwC^8NOQBz`#%GV{M?QL$aS>EF}90#zV57U?L>@2_{3b zpI|C9y9NFJbV&9S%!FjVV>Tr79djXxi_V86F1iqs{(Lbc@zJG_#7CDy5+7X&NqlrQ zB=OO;kit_I7(zcfwM&XulN%2zg#8af4NJ<|MHZG|K%+a|I1e* z{#Qnc_+S1K@xKBk;(z6ri2oHV5&tVxBK}vnMEtMv67jz(O2q%FE)oB$rbPU&+7j`< z>Pp1_sxJ}$tD!{vuf`JbznV(K|7tD~|Er}${IAv$@xR(i#Q$n95&x^BMEtML67j#f zO2q%_E)oB$r$qd(-V*V@`bxzA>Ms%hYoJ8@ufY=WzlKUA-aK3)@#c{dc`u_S5_cXe zk+}1CiNu{JN+j+)St4=gsS=4hPnSsCd8S0-&a)*Fcb+Sexbu98#GMyPB<{ReB5~)X z5}6NME|K{2N{PguS4-r(S}Tz_^m>WJp*Kn-4sDf69NJMTacF0$#G&I$B@XQ>l{mD! zRN~N{Qi(%*OC=8NE0s8OMybT1{iPCz4wOn9I=@uDlVGXDqeG<TS}$ATT7+B+e)Rr z+e@XsJ4&U#J4>a$yGo_LyGy0MdrGCgdrPIh`%0z0`%9(12TG-$2TP@%hf1ZMhf5`X zK2j?2^U+d?pO2MF{CvDr;^z~k5FehGY?$|BmC5^Ylu3O%%jEsUm&yBa zmC5^Ym&yC_l*#+?mdX6LuT185Gs{x`8tBTk^{!9vm!_cyOpp;=$oE8TZS} zWZt}@Oy%VZwBrcCC+Ys+LFysk{5bpEi6zk#rsxA7Z_3{w`UU6Wk@|RCVq$@wQzi z-nL8PT|K)bUe>!y;$*`{Z^Y=0vL4NQ?JA^vY2V+jTNu}NeZaWBOUCPsT_4jm?N9mY z=Zx;%azD>*xu18p+|RdL?vt@w;&J}nRUD7YH~K-NA2Ryk-BP}CldfX7tf#8pE$gXj zb|1{?YfXMj<#JA%b%fmCafIC8c?9lHznFLg>cwug8f;^vb)rYuFURwBFgmU7Ba-;K z$6WVueso^w9uLdo_dwrndG<&>*X@z})$ft}HSCe+ZQO(M)B4^$S)@2L))-ZNfp2XNy+0NKqc{^iIt-yp7SSx|h*W^&F$KYA<7amBe3MRT7VJSIK%hPnG!7-l{KH z&sTNO)woYam5NLh+)%O`gRW~z+s~%)5uX=&8qH2Y)x+?Y>Qlz%sspY?`j#rQ?xHG#uiL5$8QZIB89S=J z%h*}f$JkZ%6k~VQ24hcES~v3Pt@UQ~9H{yy<6xERN6;IpI+}5~>idi% zRT8%tt@;&Tk5w%&j#qujI8o)h4(TSVj$oXsI*xI=>H@}@sw)|1s~%vSt9qNzY0Xzj zJb$4|_RTCB^c*GMiT5b!KYT~Ycb9MEK_d?tdF@g1ebt%2*Bg1mQPLkZ9wq%)laV(Y zy%uxbX0YAJI~eWO=uz_hP99ao{npe`G7sUY#{KM;w;F%9TQ$}4-PbZYt>$Ve|2XS8 ztqF5ISuM{oRW0S3Hu=n$bc;rRiS=n6Y4u6hqh434|IN5s{dfo z&DvR<=wQ}~Qsu^?qM|Zoij&P7%O*Ou;bh7b^=3r}lQ}*cPNt~e_j#XtIj`>@JYLWH z?)#qmGsz{rO+MxnW$*n|P8XKFv_fW4*~*nNCzUn+Oy=aWZ`>(!O4$dTQ_I#2%js!l z3+|F>lzqxsT=v+{<@AiQ#=B+CEc?bPnX}4{xku*gvX?pMls$52lKqO5U^%*wKh9GO*RpK?~0{V6N=qg5vNC;i^B?7jzN#>%FQ z%8ZxY%b6%UZ>^k8mTl!sl{Gymr_*Ic56Sb%EmP;gmNK>fx0b2>y{$~`@9kykJlMf~ zv_9XzpXQq&(pReEY+w0%nx@}NmT%`=Rj&R&J5qkp!?Ny_&!a37o66O=+pm_dpS1t4 zzKMT6uOiM_Uhx9=c@=7Xc2}tNnR$(xo^_3!ruUPtIc^<44*dEqt``aK8a4jzYt(x0 zxkj!x9j9yCsh^J1wIiIx*FMHM>)PWUk@eZvp29izT7xrnty-`2wdeA*eXV@oxkwCN zD?d+@z7h0Vb>42dR-MP&{M_N!cl*=({XED?=h6JRJl>S~b(~Y@|Aewgl+Rb!6BYC2 zcG7X4|18(7`D%MM%~#t!tx|4Bk+3S&=SU7$s^hY%@(}ksm7z!F_H3yFd<^yRKW#)3X<-=biWh zf4K|PayKqe<84}?#@oC=jpr^<$6<@#zjc9nUfQ-mUDs@1pss6nEKt`;I~T~m(<>6Y z7O3kRZ-M$8*xd`%{mXk6T*N=$w?KUkY*CdOZ*r9yucAt=M`e{-kE$xQ9@SN9J*+CV z-nIUGF@L^zm0FKPm0FKvm0FKfmH&CPRsQGER;l$^=8wPJAAf~E{xFYE*9TR1^8OyF z`W5f*wf=go^XFUd&$q#!Z==6noBZ|K?5~&Wuh$k{FM9u~>OCHJTh)}uQW zs*iJL)o(d>RZUtif9_S?#JRibN1S`Ae!;n~>O;=`RcAjg`wmpKavrRDobyoCC!Av8 z!YAa<3m0zXELvFoq@13#a6jkdg)275=_w11U&x%g@EOi&3#*@!)5gO0Ig1w#J}swb zEIeVO%$W-x;+(bco4=IPvll)?StRBxRL5=ZLUkO6{aoeOM;6NCNzW$>^E}_$h2_u4 z`PVJ{EoG5dzfj)4PJi#a@YH8zZd`Z)h-HI(%Fu`otS&x_Zq_1JQ~TCc6wtMh4(U*G4~_xtq&*Q@ia`UZ6${lOd5`Bqr1 zUZ;zy<@rVTbydH>%UNE%m6x-kTJ}#6+p5*`$#zb<&!$@bf2&B$U8Ke_7peK@Eqa6J zD_`^`XT_p-IR_W1^;_omEnlR5pSWVtZu&VrKQB`63$I#q%qF>gBa77YjLxXQ`X)IJouAevygfUjs&8jh_3etPzWvc!UjJ!}8##@|-JHdXM>#7OzsOm& zcrR!5;-cr|_F9V@IBOTTa>f?l%^6=@_$&GI#NuN(lZ%&frWW^brWbGFv=^WLyzCoX zT+X>{@eq|DAJW@j*^!ami*m|Jub@ajskZH0S!oNB>&Z zH!MDvvPf)Ote(HOFTR}i2mOC~vAQnXxmdn#(DUx%YVPwEtMh8NKfPzMI)C>qmap^l zcQJk*@bjRbhZf8IO2@w@%FCTx6X)@!*2wdduKQ}_aV!!>joRwd!#=xmG>CruaG4 z&uO*lcpKbD|6i6vs?ST_ zQTr2K-p<;ea_*`f=Jaas;oMz&Kj)s>QOp1tf>T;Zg zb-&{*s{1|Xq`K{#lk5J%Ii>DR&Z%|pa!#w;&1ux_i8>9ps!<_ZjEx zx(P4H<2tAAD9*WclQ_+~FL9REoy<9}?lemJe|MdFo~o!bc)GIgT>iOLr;clFojfk| z|BSlt@XzCQi#QW?%Q%yDzvN8Sy~CNVo9N1M?Yi%B4%XekxvZ{(b4A_VoWpe^oZIW< z^*z0w)Q$4=&bl*ma(Y+YeVksM%elMmGtNDAlV6lS-&c1EC7qx3YCQ|<)$>eIy*%&e z{Ha&>xs}$-*8%!}R=v9at-M}+u0}<@`W%hQdi6OPRrMG0xYhOZIjwqie@$(DoTp>; z>hm??_3HCA67}lyHInuBUns{<)vNbS()H?dHtc%!IU9rZ>T@=h)vNbYme;HM16I_l z&)XQT@8$7V)vw?jsh@g{9M7qrM9&BGJYTOqe`8&}`uvUc_3CpsHq@)XtKV3!et+rK zKTPw}^}oMA_W1i_AMX!(oY$+@?*sMf`r=@{db}K}SC1FbpstGx8`R^bs6ky9Pij!l zlam|Nb@7x2bzMBQL0z9uYfz7`;s$jbW;CeR*O?7!IkOtn__G@>SC8`s^*Ef{pdN>2 zgL=IwZBWk#^BOK1liN|=FqgBUA;MYNa5-mH!kNEF6a^K?;6eqKV6m=tq(dUEVR&MC1+Ij6>+ z(Wi_6FzN*e*^pmgg*uz0Wx>_5o*k zY(Hm3>?6*~*e9G-u`f8QV})DfdRnoGoVBszIAip|ak3tdP326)PUlR<&g4wR&gM+V zW^&rG^En4&7jiC(UCg;WW^%5GUB)>a`#$HY*wvgPu}V%Swvcme>_*OYu^P_xu^8uu zSPSRI*iz0-u};p-u{5U}%W!Uq-NLywb{prm*b2_=vAZ~T#O~$X8C%1-E4G%?i#@`* zJN5+Up4iiz`(m3o_s4$Cc_8*8=fT)ZoQGoDI7Q>DoP~|Aa~3te#W|_brW+eL?Z!CgVB-?bWsM!2%Nu(*S2Wt3!;L@YT-Ep!&XLBSaypH}oNF8J z;at~vKj-?!QO*sG>o_+yKF+zR@hQ&Djn8trjhi{QH0C(BHvW!tTjTFJw>NI*+|l?K z&Yg{Ka_(w;m(y$9&AGdAFXx`d4>|WW{)cma<3Y{?jh}HIY@F~rxxWrI9>pn|CUF)v zeTlQE>157HO{Z~AZZbHhG@Zpcwdre|)0)1)X*A8|EN=QX=ZvQBa?Wfj;hfbpk8^g@ z4>;#EUCTMQX#uC%RLxo16y==PRL@!7)XZ7Yl;EsvYUiwK>gKF&>gTkY203e+Zsm+M z-N6}ex|1`}w2Cv?bRTD`=>g7k)5Dy0(|XRqreAO_YkG!rdDHWpE1F!+;ilhmu4;OP zbEN4{oKDjY&b3W{E6(cX z7dWlvEu6K@FLTD4|Hv6{evLEHypuE8{5EH*`EQ)*=D%~=&HFe9oBxku*b8c$>Cg?Bb-~CFX!CWd?n}h<_gXo%|GPa*?c|cuI8IKz2;iZ-OY`hdzxE0_cgb1 z?r%>7c;U=OvTUSOvlgWwBs{52jk~+ zE{k8txjcR`=Zd(=Iqc`E_+>mj68}D@6Tg~sZM>3mU3?+u`uL5U8{##b8{;v~P4O1a z&GDt2ZoHFoOFYfFHJ;(z7Qcmad;B)e9q|>MJL7k8?uy^b>BZM@?vAhJ+!KFEzh z&We_EIV)RcaaOf_i?h0gZgiq?t(HqUYgHV%2|L@#d=JRx_#pbkI zp5z>Cd4+R#i@J|?Pm8*bc3+FS4|acxx^Lw`i@FcyV2ipR>QIZiA4RmP`)CSV)%`0) zt?K@lNv-Psm&vW_K9nh~>b{q$t?GW3X|3wM6{A(%uTtFl8L!8TR{y@5)}wzf*MC;) zIh?aw)%`MaTGjnAb6eH@F=nf}f2Oom-G4K$Ro#zM-m30IiiO`Nzx*4HI!IoBti<=l|?FXzU@4S$h8-;{WUb93T|*X6XEDCOLeSjo9H zv7d8W;<7j7&$lO5aqdX`i*sk9e5b7MO5DfkB@S}#PR#$StnW!|i&<$wQo#OQ!!#)~l8@aaJ#RiPKs#bzIhKmke>nmTcvWFFAgHR^_+>NYPm^&+|*LF-1JiQe#opg_50P?ZR&ga=CrBr>6_c8 zzNgP@Q{U59+E&2d12?ZteNSI`oBE!gwe1I@g$ul^O zWHD!P@*K_?$@4g8CNJQem7K#lJ9!D`oaFa7=O(YEKlCRS&_6j zE0cAcRmmpK>g3IwRx-(1o9yC@CHpwz$pOwpav5hbc{^t+`7_RR@@`H$Il?)Z%yKSE zKE$~^`55Pl^l6-;FNp9g>n|zsbUGk5d>yxi>Zb=X8_meYP#heLTH2`G1_-lKa!zWGa87PlpMN%`{c@h3 z+I}VHwDt;4qy2}R#qHN~&S<}hb7p%j=dAWd&e`p)oO9aSIOn#fIL-E6&eHZDan5TW z;w*1p&RNmElC!e?=bTmTt2wLN9ZswLLC)ItM>%8dPjbfFH*zN0pW{rn|AsTwKE|1D z-^yvX|ABL`{m-1s+TY+@-oA@-MSGrexcz<3RqY>ejxR-Ng#~RLA9cwvfcRa#5r{f9ExgAe) znjM=sOFMqeIj`eI&hn0zI4e4~aaMM`%30O%I%jpqTbx#h$64F)9%roMADr=ye{m){ z4sa$r{>Pc>_?$D{QLslIAG@Q7bFkxB&Sf1Za4zroGUtkpX`I6yVa`<@U*#O>IG5Au zn8mra<6E5TI=;iXzT;BP4IQPN8#~H4H+5Xaxw&ILr`u7*xus(f=hlwJoZC7YIJbAi zId^m{;oRBL!MUrWhtun@Id^ybm~&6ZPdN8={FHNl$1vxCj(a!{cHGZ-sAH5O7gVy7M$ntJC1D z?L3P!*7-Hgc;`1b6P>d;lbzq@Om%*jGu>IjX?M=!9PIo7=d#XgIhS`X;9SvJ%{kl| zCxwG>b&Rw0)b9$XF=kCtma_;GTg>zr$pE&n-?%+Jo`B%<^ zo$qiS>Kx}3sXd&9sef`7rT)!1DfKbuKINVHJP(GbrR={ z)Tx{^Q)h6_N)>a?PMyO!Cv_g@+|&h}W@-*+Y3dTrd8zMlmZz@ZtVoq}R;I4utV&(S zS)ICp(@I&KwW&JJSgMILp1PSckxFtVQ(c^?R3B$LHNa`7mT?ZIZs%N<`Wff))ZLsb zQX`zhsVwKJ)I*#jsmC~-)CSJAsb6xgOZ|#-ed-0y4XG`h8&fZHZc6=;b93r7PB*oa zb4%)N&aJ7xac)cfopXC?ALowL|8ee2{g-oB>QhcHB|ebHWq0Zb&ONE4IrpWG=iHx~ z!g(Nd3g^MpS2z!)rgMs}8JvY(U*|09`X=Y3u8TM)cg^LT(iP#H+I2bSw5}^TjjjsL z;;tWZ&giqndwT|=Ce zUCTMEx>j;lcm15x>RQcN+vRY^x*p_=cRk9P=z5Yf*|m`~)%6@_y6ZQbcGno^VAod8 zWnF*ZT;BC(&J|s6a1M9v;#}30=N##JpVR63fOBove$I7WA91el`h;^s*B6`{y9)Qo z2+Pqxx35c z+|zX#=f1A*bMEiDn)5(cCFjAeg`9`FZsZi*HJpXrG0vjy7S2iCOF1WZcXCeYPIFG} z&TvlazJ=51zKyfEdj;o=?z=c=cHhf6t9uRS?C!OkbGjeloZI~br`i29XKD8)&UxLx z<}B}ik+Y)vCCy2G3!-CyN&y3gfY+dYeOUH7** z*LQ!1b3^x~oEy7KIX88eac=Iuiqq|$&$*?$igRoCBF=5yi#fMgWdOV9_qfIQ}m2-7WS;;Eb4ijb5hS! zoRfQ=<($&9nR9ASj&oYi?>LQ~-*XoCZ0DTO^B2yUJ#TW(>Uo!QcF%6kIX!zh=k|Qa zY4-ewv$W?R=e(ZJILmt`d?=4gMbA;3l|7R1Cor`2;BXKjzc8S6QVGv4zx z&P2~QIFmiIIa58~=1li|m(%Vk;T-Il$GNQM2b{}$uH{_Ovw(BBrLj zoI85fbMEZ<1?R3Fb$#visO#(9J?i>;PtP;_^L;(fbMEhPIS=&wmh)iGE1ZXV{=_NL zJ2(r|f8{Jnzr#5xJGL?t(-&}7q~~x}rZ3^FN`H^DI(-GFl`iM3 zO<%(qOJBzsPv5|qNL!rAbRB0Z-Nczr-^^*JlbnO;F3x4?KF;N7bzjbkwEy=3Y4!fq zsV2)PY4yI=wzPU*YkOL~ueBqs-q+fhR_|-=N~`y^ytH~>Yj;|`ueB$w?jPEh9^mcR zpI*j!Ag%6;JD9$mrw^rn#wmL5<}BB`;?p04Ws5>Hq6_VBdTdooYg_S!rh>phL9O}#65dULP3Ps{CH&C^?Y9nP)24{~nneUx*1?~|N6 zdN*?J?0t@NSMP5)z1}g--Mw2m_w@dOb6@YDIrsOz!Fix}7w5s=Jm;a__c=x12b_g{ z`#FpHKH{9zC;vXDNKEegf^$k=A>Hp!*Z+MJIj8j<$7%GP$XVPc|1N+Y|9z)(&g@fv zM?9*4G`d;L8`d;E(+qaE#UEiym>-%2k+|c(H=f*ydb5q}Ylt+ureGk#& z>}cWkJ;}MHZxiR%z8vSazE?Q6_r1osqi+}I&c63JclCY9>Ggfgxw}v7m*ef}o5;DZ z?*z{MeW!6A=qu(t*!OkLLw)l8@S}z3zmTU3`!D4z>X-M4A1x;J&*SOI{nv0#>A#+H zYJUyqwEj4!(cjKl+~3DJqko8VX8#J#S^f8L&hCGJl0GN4|1r+F{jYGE{U33b_D}sk z`T8-hUtPbI_p9r*ihgx{RoSnu=c@YEby#)3x(>7Y)pb~Hzq+oA^{e|2L!|CZCc`!{j!>3@rJUw`3$ z}&sM+pD9Whmxf%6y)1NNQsGrZvsNai}XVm?h6&ZP-=yAdrc!tNF zF`(v~IiSXwHK693Js{_!@ADn_ANA4SFAb>Qb8Z_@zvtXOpnlJ}dq90Y&y>O91F~=G z;KiKN2Cw2Y2BVzCgH4<>28%zEeKQA-{IASegJI6ugB6@}hJMUBcW61MIrKDV>CllM z%l>&omvEL3b#PV;J;qr%w2!lDNPUiD_0SIw%6@C8@mQI)L+W!iVna!;$A{GCktK%i z=IP|n{hXg= z=RrC{=kxU1A@wxSm?^!lO8I5!Nb&w1N8w2G%U4P`ku`*nBd5KnIzQlBTXbx8f4 z{I((W_w(C_)ZfqVTUPL?JWmq0`@bK%T^-NV?do{ietpodFZ1imZ&&BXirdxsF?_o^ zKMvk*(RlQC1GnGGDek!Rken{QV}x_Y9qR8Cs($()O`jmDe=3)Igs5F9|Bm1Y5nCz$ zUgQW7U->Bg{0Na)xt=rS|2*yg-1dJy=>L4#$|tyQ`N|EPD^@Jus}c_u#PFu0z9WyTo1U{^-KH)cwmF?^5$^x=YQs`7Slz7QepLuW$3~ zv+q_vckWg5t-V*xx9(n5Uw^M!-iCYC@^<@ud;GqAe&2q-?||QT@LsiEhwk<7+g`2i z+b&wImNRL!TFw-Ida6G?ZM9l%v0tCz*Jt|mS*z9h%wDb5XRhC8`hBH--#ovs-0!Pc zt=6Z?@2~dzEx*6k?~nQYalb#YTCIQ5U;or<_50uSYIWbay;@!04z5<$qsvyS>&E4) z)pg#A)$+QG?vq&k3>|0sJIvMUzW$NbZ}GIV`h?G9eeLSADCzH9N7VjFkEs1)kEs1I zIHIj$+#@GCr`x9&a&Y4^@>2tY$sWs|;m-HI-c@_4Wi?}|xM&0+aY)v^&FJIHlxnj*v zIEUA)uXzJj!FhCz3C^X9CwxBb&bE7d+kM`&@F&xBMXCTfq;4pZ9$+ z^}Oo4guKu9l`zhHvT?6k?hWMGzH7*r`fi5)HuCjUucf?`{>g2b9ui_TdDFRt>{0TI zqbKTPS8x)U)~RSFZ9AEsw#8EEFYBHX@aQS3r-ynXr|NAi zIZf3E<-A`}>mc{-C|QpA7}dwf7tpf)3@-Y*uAAT#dGt&*?^Ckwdn>tQx~l(;Tmv5W zJ@LFkQBVx?o~3*S)oZ@0=bb)7d4{a}zM4En4)*gnxa4a>&}9vuGof$lZLcBAZIs(S zKt9Gl2lCJpo~`>M;3zl)&VqB`JUB$3Y8#wyVQ>T-1!urn@W6$7yVlOp=iV5(hmKbV z?UT_f=opg6_7;e7@bs(nu^zZai07&2&(uHe`^0b1v6!#w*O143uO<&v3h{gDA19BI z<-FgTMaSZY%0C9*Cw-mXx6`Y%OBQL5)oB;hYugQaUzNu6Hm(Ibt-7Zqsn3BL@Myc< zS5}Aax4{nB1$$u8spmDoCfEYoU!aW?@Hn{O zcHKW6Tmr5EkKdvD3x29?tk5>mE1~`~Z3}FJ9q=gF1&@OZ=tU=ZKA8?K7}j+YJOCaA zyWlaf2Ob9(+@;5#4t_-1KXxyJ$DwC0)C+#D$C)VY&pRFJ=Rkc7>NR)kc?ZBAxMY>? zDZ59Ai|P4FUMDnyZzapu_)pI-6pxUvB+vS0p?H}*pZsm|Uf-9KC*G_2=li~adafrM zR1c1Y34X-ye~EftCd+k@*E24?Ukhm6fQYf*1%eA7wmy+9@ISp;8E}x*aMG)_mbtlZJ>47`;fBS4-+5O`}Q1iu+Pi< zy4=qWIauetWI4_VjWfDV*T=x);DSeV&vdW}E&T$-w1&`@^3AhG403HR8 zfycoG>-Ct^!6o1t@BnxeJO-ZrxE`|vTmv2j=fGp&JUH|Oj0vs*4}i1aQE(2N2a6~5 z_#to@Tml{dJK!wX1&@OZHt1zd2bX}O;2LlSJOCaA=fKl{p_g?IS)R`?(fM5F`!n*b zzI$fVc@F(!;Bj!lQ+mwlV3REWpJUPUObOI$z>VbK`EUU0k3fA4>Muim9O`??!Sm$A zr&b4LF-dPzRkbh9srMm$G|U>gXhd~s26P1O81AJ*N%Woz)^4wcoaMiF4?TdtN{;zN5Ny@aq#qC>v2lJHQ)ho$!~Oj4R`=N z3J$%X`wPI+!6o1t@BnxeJO(as_4w1l5pW5(20Q?Ez@eNTvj7|hPX|Z9CEyxxMmi+K zG`dF0`u-+)6nb)g{R*m&L46!N`l4R9F|aYF>n3<$i+;?Gk>&r*pQQgkO4Dsl;+ByK zqTsix{yNpAW&K_9bf`-Q^%AH{2lX1i{$Kh3Q>YL4_0#D(P&()z_3IZ$gx{I;h*^!_T*V z&*RiH06h-$jQTx0s7E>&$Az9Tum>IoM_;1l(l#!n^CaUtP9BgJwEcge_nN?C;Bj!l zR^2}xTmr5E4}eF(Iq(>G99-}+EDKx%9srMm$G`)x2=PfmZR0pO*xr)gYmb7*z}aoO zXMpxmFz+aM3|#U@-BSY|0B6CY;2c=~{ytb%=ug^Va0$2uJOCaAkAcU*@}8DpS<}Iz z;4$zxxZqWo7wnQp>3q9p^#m~n^>Og@KkIqr-=hZWPy-$SkAla*ZwS%Wc4 zz%}3jvV82z$F+3u_!@^EV}~ARI=BQ}10Dd6fycq(FKYh`)BY(S2kSWkT!|8#GRMC-l6jZG#=KM-JZG5pQXS$iey;P`AkAw6ElIg-e##a%a+Of#-TnM}C<+O4scZzEvnf`}LU7{{#P9+y0NX1I~l92Xs&P zBkc${3eJJ^;LOK*Uhkk<|IcZirH}DnQ^fzY4X_E0kZ<$*EvQGKo&h`1lZCnq^&Hea zvOHI3-AC&NJ>nBsH?Rq|z&6+co1d!j8)$s<5Nr$BAqS5g=QGvsP`^tKw%rk-!*;YiVp`5ete_pAi{CRvWN<$2n6s5^eWAZNy~VZ<6J9ZQDWH1$D=-zx@Vn7u3aVAVP*MHhSX&k8Ae*KpHG!E1~zh3?y znrVt2$0W;fPW&(J2dF!K{f&dPAE55}^?N_1{cw_+_rcF;9mv79M99HoISRJ@{%b=8 zA_H}Y9L$@Ay65*#Ei4e?WZh$uBg=VroKhh2P#34@c|+u2olUar|LL>>5rMh|{ZXiAzz$i? zdz3-@8R{-MSWj`P>iN-h+Rx;m9wrCtAiwi2u;usP@KxIX(C_;7E6$<)5A{4bnAbQ> zE$cTkX`hpWx=9X}Yx_MH&7yq^Jr49_p`HVKWVyYMUqJg7>SCH6KSU0eTS&gse|!E!CX=jI6QL+Ek+x>rj3 z5bDNP)R-mn3WP}x#B{wu>CBgXPyhy@9p`>aJgZ@kZJfs2gE5&Ons5g&d4y`}LAq+7_sLe*KpX zv@K`qev{0{tC_Y1>W*K(yOp*D>Ur|vZJDm-J!)xz2$6%jK@Qf(@_X9bX}h5A`t={A zXuF`ECm$Y%?s=5!7Ve?*oE+3maxlK__uSS;+Y5EiuQz09d(YDSCRvUd8KmundXyZD zp8-35|N0@?573{3o;+B5RgHh@Z3SW?d5o5I(uIY>AP4IlCI`!kfGx6Ix7+S05K*Yx z5wJ^^>o)B%+HcSw`kEf!Aj_UTkJDp{9IS)w*I(a2&!y1sK#%A5 zJpVL3XF`uSSC11S2ir1{9IU@dmdkaXq32BKvB<$XM9Iz6Bd_NjzkldC+Mm!PW~y;+ z-c08nIT+s{2jiSWzL>_5zn3oqTV%NoFa3u0E!1stFmIL|tiS8`-v~>;ESL597@eO`H_5@WB2bT#gKf9Ta^A|{6^L8O!L~T$U|!Gf8Qx0g>Up|ulI6TR zUZL|7>W*KZ@`nQP2>CVY;rBqGCr=KxeJ?q9?1*pp>+>f%Z^^+rgvmjF1Z?^J!>`g~ z9O^bXnAi1tK6s7JRj3=Y)Uv+!I-Q^7pg&3umSy`r_w1y{FZ6hR{j)b|pPaAfHOX?H zT>Ccd6R10W{h4>^9D{m}94yO&y7;CZvy2?x!hruS;0^8(q z|NSe6{FZMI>f&3v#{{n>2iGv-LfunH4(bNfO|ZB~FUtU%)|I+Gv0R-GE9AN1Ti&mAD_Nd1^8O<6 z1Kn?covU=+1$$s|weB&%CfL3v#P9E&`Zsz$^nD%Kny=@z!4B93pHrn@FKz`tLYCWd z4{hViQ1{5eKHTfq<-KGR7pi`F58JKei)mh2e}sG`neS)w{m{SY`Gib14%h{IU{SBmFDnblm`(V5d#@xZoUEBz2DgHo+Fy z1$$u8uE#OK9$0kf9s_KGEwBxCz%Dq_smIKxv_oCmHrN5@!FIRqcY3s4u+^*UHdypQ z-PRUA(l)>z*ttdbh+DM{u>3C3;QVhS%g3y|cgwy__d8&7xvpDa8|;8xum={m>v0UQ z3AVtulI8P&d<}iXw|osf=MKI8W#swPBky-@^eyk>DqN}0`BHGSunD%n?mfES1Dp5ix&?Mt>$(f}z+y!A824#gVDo;c zgKe+_cEKK4Wc4@(*adrF>jB+wgUyF@-F#Tv0?Y5m3|=El^kceifyEQLZh%d&1@^$= zNjh8IU(YK)Lo(P8d2nctuFKC^40;;z-?ZfK9Lkw!scK3wFUdum{eA#Zh`4LSO@Ig0tWp*eTNExL^+~ChDFHI0ud# zt$U*23^)tUf%D+dF?yUZI07~&=^hJgAE)b?lU3(kF6&udTB&Vr3obln77;LJ4L#@Fa?SLnI=*xmFxOAgK%>EOBAgSwchdpxlCx~@B57i@e(_n2S{Y=g~j>V6CC zeM{Hv3$-1v3--X`BHeF*O|S*dgF|!lykT$z90g~==C{>;uB82J`~C&l^ZhY7{2e`h z1niOJG5YR%1;V8Nm`e|nZQr}3=jwSKunYFU<|Vq{0!P6%I0yE?;=6hr7wm!aU~#GL z4}lGE7#smd!5Orv$IOBw5nYdhGvF*Z2hM{--_zrS!4a?pw!wLDs079V=Sp=w4-Q?X z>tS#NY=NU-8=L_EFx#pQarS#S<)T%mhRut9Ig1kWKRI8(0cS#S=V2Zw*4`y=2e zI1A2!-K*4N-isQhpy8OgI#c_3VOg1a1@*YXTkaF^*Es$w8P-Yjk+EMXTVu-4x9&vZqnm~!Fh1V zf*x=L90g~D3r1RO=z>7EQY3l7!m9v7Sgd*D1c)1c?g zf^*}e;pAW)a^O7J=+`~c!ErI6E*;c!P|w+V-teGy1RMotzz#SI&Vi#p)?;SCS#S=V z2S;wv^G3lLa2A{cXNL5=S#Wrnu1CO8a0Z+O=fL?}^*EuQXdB=#I1A2!^We~JdYmvg z0*-<+;4C-~&Mntt=E0%cbv+D@fTQ3HI1A2!^We}OFg`d6&VXHTc!i!f0*-<+;4C-? zHiz{%Ik0t?u4lkma1I>$x$cjEGvLtOx+ef{jsKkAS1# z@LK2rI}hr*3y!YS^~fXI8E_Vy2ZtWj{gL(B;z{igI1G+}EpQZ^0cXKEa2{-K(95;J zHrN5@z#drqLXTsDEwBxCz%JMW=fR<;^!Q-a2{;^TK7c3HrN5X;LHnpUc=Qk!BMaccEBE3Pe|1j|oCk;gr+dQS2sjG1!5Odv z&VqAb_Y=LW9M}Wr!QxZh9|9ZTFxUiJVDpe3#{%16>oeWsfL*W$7N6^W18jmVunl&= zd2r|pJ!Tjj0Y||Za2A{c=fPP~aQL;r32EmiXom{4ZLk9l9ie-|U=wVC#gV$-0!NS5 z_0TceVXz5~fGuzooB?OSF4zN`^f%SP>!Sr0$Le|%9HPIq4*J93=<&Mlf<3S~S@%T1 z7TBS`*$&2c!5-K+LHFcO(hi-h9R^3h;xyf3fK9Lkc23v*F4zN$ujn3ergmt$b{HH1 zN5L6z7Mue|i}jc`I0Mdt!)NJ!cZRkH7W8-8!9KUZHrV{S?g^cz9R^3hQLy<9-EV4{R^g z3#!jg6*4hj{|nW9@w;WzXi6z4%mq5eiL1*>mFFt z>AC}U!J=OGcwj+)w;voM6KsKPumd(?FfZ6>f;!j&+h7kYn)SRQu5Ex#umg6%9$2)% zIA9ZOfnBf%7OgN2*adrFGokyPCE9{M*C5#E2G|5!U=J+X^t=|>0lQ$4)cpq71Y6)J z*am07Ystaiu6j@x^jQqSc7?zOxR@Nwn}NF9q389$MyIa3U=M7jbWbTc7~g`r3--XJ zUAo^R2kS4owGFTdcEKJvlGgL)=<_4q3SI}nSzFh|ZMr|aTss1e-mdEo`56CmQCx5y zdaRYYKMS^grt8+Qwzx~%__=l=eO^PbKMiuQf1Fj?h4<(lhaB{H_kvez8~15jU>od# z#r?Y90GnVN?1HT|dR`lBI(i>kU>j^@VP3EUcEKK4JfP<_!0yAk?t!gG3&dk|Z6m+u z#RhxiV1J6oz)xx$U=wVCZLkA&!5&y_fbqfBMqRfyY1?3zEbrOdM%yBu(>(^*1Y77A z)V!zvgFa`#cbqI-RUadJFZw+n6bNHXxkY-5@~_C|D|)$No3`->Z4+#PZLsl2=m%S1 z8*IL&)?v!N0#Um|KQ6X_-8b}@?oQR;K>gxP<>$$c@6-QD+wzv~x4<^o0gGL_-vPT| z4=mo+{RY?sTVNaPfL-)EYFqB4_4j;_lf}ELzVJhGUimSy;rkP^>HFq?(e>(X)#H*q z-^cE!$H;s7@oT=XdTyY)<@=Xpht9v?vE$J>5!j~v8`uGxw0=R|0z0%$@_at-|7aa( zJr4K$8~h(_8*CkbI@m*hqt_ZvrQn_!D9kNZosE#fHMBOTm7W07UgL^|fS?<>e+qV6}q5pWc29izq>qIn(P zyUAH{a9na=Ym(}}n9d{D_nlY(EbdauIt7b+7Yltmi^zR z$FXVX9t)fSyWzsa*KZ!!I8)b6aD*J312)tha1MIhVm*!r7H8?Y0k+6;{qLalcYVK4 z7GG8M@6mIN;rl_d={xi>o%6mIksaU9lf!50b&i0eVEY{1<9tmm>)3;|4(IB+bnsX+ z>3jZy{a}G3^nHXuJqz~0d9a|rpAY&Ca2RZYEpQZUgR|f~I7HvEcX(M~6YPNneV;+l z?|}tesbrWovx^9CVunTs+r~6%S zu1wdB?`vnS)b_wmxmvgTY2C~p=pO0d+z?l(o)6^u`<_j&d*W(U?$GjKu|U^Nuu%nd zumg6%-a_3kuGcoeCfFs*=YgAOpBUB9PY$-%SfuMFIAZB~6dbA5b&o8^e~88xb;^6m zR+H|r!J!si4}&vcr&ag3=!C9&V6jBkbKpEUv{d(m!Jov>wpzq*Z_5AvKRFC%P^|8rvKVN)^K35Rxj$dC+^(@qL;4S3fx-Jj(NLr6y z+pBv9`?Vvt=$^>!+EH)@oC8PhfPQcW?EO^th!xtQmD&c_1V?_Rd!pbBI1A3)r604| zpKIrQucF8D;617?9lcMFp8<#N*Yz+s0?uZ2j~LZ9!4B93dtk9v&uf59a0G0F9k2`b zz!y%g1#St&j7R@-uSXo>rFsSMz+AlOr4T zI1X9Pdmq(Z--7Ji#&iC1MWHZ#Uquf6N{n7L%TfbNP z@J`xquJ6B*oo#wv>EQL(g}QW5kNiRRN5L7e`A6MjfjzMJlkRcA9$0MGJqFl9zp8s| zu=umC8{qKkx}E{sJJtS~6{63Z`m1sWIr6sdx4;>27Mug;!J&8bIAL%E90g~T~u+QuBz^Wc!D#}9)e;3zl)&VlpbP#(qvN5D~V1{@jJ^G3lL zaOgeVWBfzg1Y2MmEIv^C9 z&(oEclkKl4ze_gH(Cci0U9cHe{g)g~%kq5}**;U%|0(OfFFl6NlVUxl2exPEx&wB> z9@siZjXy$TI=+i06^cALIPRfyk2w7QYl|$;)jI02eZNlj$U(n!a6VYy&~+E=fyFG{ zV}MPtd%jw(c`R)^`56EAvz}jHO?By@F21SyKcc#HP9@zc19>)WV@94TYSK9*HU3MnXcPE&=%L| zV`qYGuve{n#3F4IY=LdC19rh4SlkF>f-SHOcEB!J+@!b5B?srE2R1BSH^COz20LI8 z)%)Ba2j`LrcFDnV#bRxbJRY2THQE-~1&cbpEe6=E*LAZ&+X9P5^;o$2IC|{(UO^U3 zdVNf=*R01eTVUO8*8O6Mwh6YuW>WXqV3!;`290)YyF=Rrdtk@bJ$6Rh`jNIdplu9l ziyv#-w`e28e@ym#%io)c z5xxG>!Qb&DLV zkAq$ZJx^=9Ic?`fZDUN^1bbU`UA(MqfUP&7{+6}}c6RBy^|rS0jG+a^{bu|_+X9PydVKeDZ4WF8jy!z4Tyij`DAYE= zHrNG=BcLB_lY{fYJyQ4BM;*!6UH8zoI1`mmno8T{dpX%SM)zA_2keo9@vTX^-vN7I z<5=BefgP|1HjaaSumkqM#_`Y(HYe-#w88EPx?h~AZGs(gu#FznjVZd{K1tgJi<5QT z1l#0bOb6_OovG@$6rDoPA*U$E$u{}$yng+4s(a+%{4q||_Q*lMI8ECCn_vrUgI%x( zHc!{fvcWD`d`0(|U>od$?KAXxI$#&`Fb3SEdL)m zO2=AUpnS|}^xXI@hGYrOfSm>TbJv) z4L0WKF)gq|4z^u2X(Jpk0XAdZGdfZ(C=QQdpxkX zTGtJ*3AVsC*a5p>4=gHRe6V$muG?Ub9IUf(t+q2?+pJXk^9Ns{<4X?qr*tr{2R44F z>lWAndtl=_=m$IGU|BBMUZDG3u&B~?6D+RR;}~EYeS_M@U&(Fs{k1db++L)|bif|i zxDk5D!8&_4>AGQQTVMz5fsH8igB@}(zPVWU*kBhdYIKiBmXF_`(RLZN%10XXSoZxR zvh909n649i_ma&9)&GgC`;MJSkMWqQzeYBFUp~E1xa43xJ+NrhbpvdIEwE_P>u-W> zunQK=YJGl9>)`nQPBE=#TrXETIB!j`4R*nHi=NkP1>dY~fgP|1775*NfK9Lkw!tpg z1B)dvCfEd9U>od!U9eaRV}dQP4R*mso1WJMTVNaPfL*Xi>TwLP3AVsC*a5p>(GFvR zO|S*F!4BBy(Bs%(2ke49u+<6kf?co&7Af6tfKBlKWA811tvI@{-5%NdoU;wLUJ;k_e-kDzBo(AOjAoqbe0Z~*sy-M$=mRsDZt=Vo znvY~?_n@cL7Q#%9_H7u4$vd3W=@UUW9L3}LyrbQE-E}849qW1oy>l$5BgV1L8$tIO zug>cO@*pNC-9H7|?XTMRJ@N@n*C>1<>$(y2tOz>quMzSC?eq~#k&c+Gbi$PAFTUy# z&~>3H{aF$8^$0qA3Wup1LC=byuSd|~Q#t(gX{^Nz);pn{yuEhvFjMIvsgSqX9Hwpr zJu8B~9zloCi4Z=5o)tk~kD$ZnMhG84&x)Y0N6_K(IQ-7}totlry)%Lq3)wykn(9XQ zBDU9!pl3zU*CXig#T-6VxWxke)`$=eGeBgp0^|iXY(u#4HNpB!WYH9%7^0xSW?zyo08?{D9)Ncs zEDEkI$N_4C&R`fA4gLh5LAt0yWCwXcQE5RlfMwtX_zsn56u1Ij0#6K-3n&Td zf`MQ-m;+XUt>6xb5);<|JOCwP2~i)k21mgKa1Go6FF|}%&{QB3C;(alPaGktfNo$Y zNb;Q!xj<1+9y9>G!9;KzJOI(+qD;XwuoP?pdw@3{t`SHJa)9EXI;ab}gF#>sSO;A3 zagD)nFab;j^T0~53G4v-z!7i?oCjY(SOOs;f!H7g$N_4CR-iwa4%UOM;3~KcUIUR3 z^#t*cftd*R1;`Exf>NLYr~_JpvEVGY4DNwA@B%%1ZGl{FDM4efhwRe=m`3N zLEsHAlA)miQ9*1F4pM`xAU|jVI)Wac9~cdO0jt1v@EAl&j`Ia0!Eay;Ft`ZrfePtRZ$S?*8mtFbz$*}z9_=Qm2V!JEUjR~pA3+Du8;k_w!9uVOYzK$I zN$>=G2GKI&J_H#+UQiU21{FXP&<9Khi@|Pi5F7`Wz;*Bh#LtBC2iZXZPz+Q7?Llua z4$K4Fz%lg#7n}xHz*``GK;I7HgOZ>=Xbbv);b0n=2bO@1;1swDUV?<#(YAon zpcZHV=7XhRHFyd>1N%pm4M+*ngY2LTs08|ep<1UXJ@6KU2Vi~wW7G%yFO1?RzQ@Bu_B zgX4kfpe|?$x`N(dAQ%lMfw^ESI0Y_%>);`H2|fV3EYbpLKvs|w6aXbaP0$MT1S7yy z@H==6UISM-Tx0M(_yObx{Bk5LzGoB`6B|g0om=3mpJ>Vp`2=0OBKs3em1#v-AkOve4Wk6+66Ep#B zK^HItj0aP|EU*-u2lv4{;BJPw1xN&nfx%z~SPc$=XTWTZFd!jF1~Py$pdsiFCV({{ za|_(lpd4rkx`UBm8dwANgVW#+cn|EB80&#dpctqOYJ%2a3RnTwgG1mlxB(u4cOY*o z+;Sks&lvB3YM>5i3|fPZpgZUf7J`*vD>wo!fVVp6_Jb4P0=N$DgQvjghVlkcL0M24Gytu^C@=v`2aCW8un`;w7r}jysyo^MP#ZJ? zJ;6XQ5=;csz(TMbtOYy3K5zzH1W&<7VD>;hKt0e0%m9nQR&X6e?TK>+89)Q@6cp%% z`VSg_HlQ2m1BQdeU=z3v{sIYlqb~!OK(;=p3t%eP3yyz6HJrAaWIbbb#06c?G zFF;Pv1*`y9zyshJjQ$QZ0b{@!@CM`_g1HA6308q@LviiEGH?le09l6NUIO_*WzYj` z1be_)a2ebLe}UKF3vdm`y#!)_0-y|-1J;5aU_ZDAUV_gcWCZ3E;5(2Mh-W2U39=pb6*<`hiX0ckmW87>_mtOar??;t6Okz(WvkBJu)4e!(~s8~_hM z=p>A@K~*peYy-D}{VVPt&Qx6pXh)Z}0@?;Gf*GEXOL$m#-`vLux6pYfH7bt$UPhR2ls$`4$1`- z1+_qLun*h>S>_^5P#g>fW5GUf1-u2Gd8lI`3upl@1K)gHJCGN&0;9nT@W%qQ*$YuV z;2JO&p&URP&<6|x>%kXLcrnTji~?tXdkNA7=|LG#2Xq1bz&NlFYy>C48<62Qqz%e} zhF~680oH?E;30^y6xS4_0Ifg|upc}ENtdC`1=GQ5@Cp=Mj$?vp;4HWf?t>4&vjSr} zkPQ?8eZW$16&Nc~M?hLo19Szm!6xt+#94*3L0_;1xK?Al3=)FOAU~)Gx`H8K5||EF zfbHNIxB?QcLB9%mfZ<>+*Z?ko4^pjvVSPIU9mmvQ-)Q|NTGl1W~L6Cd{>Iygy zI&Z}F0!cO@f8Y|xwHaj!&Vx_Dy9H$ll7dtqD<}aPfx%!5m_Yj0 zh2S^{>_&S5j)9_ku$}_if^MK6m;z>lm0&Np2dup)8&DmL1P8!R`!E&)J;7{n9()8j z_oHk<3(yYq0v!*ajDh=-#1@y)iT7#cV`S=cH2nWMoRhDXe$;&Y9*6Tce`#BuAN~Ei|Is(< z{QhZqPY&8_^Rl~n+rXf7x^TZKdqtFY*8 z6%&1};-a5bLJYFXieXlHG0Lha##@!e1gnaeVpSEhtmM0`Iz3>^m-uUcY9}(B?D-ziQL}Gi0NMa8asqL}&)Yo|NgFR8?v?qyN z_7suZo+k3zGekanrpRy45(VtpqM$ub6td@w;`Rbj!d@s!+Dq`MtKaZhtEHl>y-ZZL zmy0U)3OuP_E9%?pMMHZ7KCQGxG`6>jruJ^p+}Y5CX+IR>?MGso{aDPjpNd)bGko^sxmaz#z$ZptiB0xvvBQ2N z_S2&ak=d2f_`#LR z$m2?FH!j;cx?aFU-auqPTxe6IQU4@Nat|CSs zS5c#%tAsJcRoWQps$h(CRW?Sssu<&4RgH zGTOR#8~xmSjPdTh#zgl%;}`dSW0L!zG1-0CnD0JjEOehRR=ZCc>)oe}o$k}d9`{+} zs{4X*-+j^e^2o>< z^2Ep%^3=#4^32E)^4!Q3^3up1^2*2)^4cgE^2R6<^42I8^1&z_^3f<8^2w+b^4X{# z^2KNvBFrWshS@B{G=C1U&2}L!vtx+c>=fcLyM%bnZXp4)dq`xnZ%7oge@IkwKu9!m za7c7>Xhj2fuOacw$szI0sUZo>g(2bQ(vZaFs*oh+>X2mSu8`#B z?vU@zBOxix3n6LDiy>*vKSDB?*F!Rzp`n?~Kxk$&R%jM8ZfI6BVQ6+UN$8K}_n|q= zw4pi8e4)9_{GmUYMMHC&#X|F#bwcx+^+NNT-9rnTJwl6^qeF|DQ$mZG%R)<-n?p;Q zyFyEwyF<&G`$8+2M?$NbCqwI+r$XzSXF?m8mqHtw*FqbaH$xkncSBp7_d?s4k3-v; zPeMDGPeVJJ&qF(#FG9PS??QW+pF?|^c33Yna#(LON?0E=W>{Y{ZdgAvVb}mON!UO$ zS=eARMc8mNRoDnKeb`7dXV_@7K-eU+c-XII>9EOWt+454-LRQvqp-PV`>=Ut$FK!v zr?5rlh_K(xF=5Ni>0ztPSz&9%VB%WJ7N3HyI}{+$6*J}=V6D;_hH9O;W=(vo)f0+ zIcd5*r%kWtj2Xpq*^KGAVkY!lH4}TTnMpiv>}~^1LJ5uOlhl*en0@%XH99=|og6WN;RiDFIiM6;%N zqFd8FF|3)MSk^30N^7#8S@b=fDKRuPKd!FjnU!I!QLr*R1g{QXl(o@%Z zF#V@2||wIX}lSy8?1t!Um3R&;Mi zD~7j|71P_risS8W#q;*C;(L2q3B0|n)ZRW;W^Z3BtGAz(&D-Dl!8^dp?j305_71Z0 zdIwttyhE(Q-l0|r?=Y*3ccfL$JIboy9c@+ej`wcNYF+UQ+qZSgL$ zwtAOX+r7V8d%Vl7z1~&US?^lwymy^-!MonN=G|!h;oW3C@ou(WdAD01y*sQ#zMa!N)z5d^8tA)Y4f5Ty2K(+?LwygeVZKM!c;92|SKo7M zs_%_8&G*)t?fYQO_kFY$_&!@peTKcv=dxG$LhUs^kGQRmz8~y2zU=lp-;eeOUk>}DFQ@&*m&-Q%1#Qz`$hQ22ZQEbkcKOTNq5g7qn7^9s z^VhTe{;qZ;e>Xddzo#9|-^-5f?`_BO54KbIhuEq8L+$kbVRmN!aQg@U2s@{Lq@Bk< z%FgE>ZRhuou?zag*@gY%?PC53c5(j{yM%wLUDiL%uHc_;SM<-eEBWWxRsD1AYW^j5 zb^mX6WB*dSnSYtx+`rat?O$iN_iwa2`Zw8~{G090{%v+w|8~2Ze}~=OztisJ-(~mq z@3H&(_u2#f`|M%<{q{Kj0s9yKL3@h-usy?n#GdUxYR~nbuowAH+DrYX>^1(=_7?vc zd#nF4|U!0hq-S1{jR(IXs(C;7_Mjjn64N8Sgx1;jIP)IOs;qStges#Y_2c< zA6#Z2hszbn=?V?xa(M$kxdMUQt|)=Lu4sXLuGoS6t~h}LuK0nHu7rWIuJAxPSK>f< zSCT*lSJFU5SMoq5SBgM2*Y|-Yu9ShMu2g}Ru5^Jet_*>$u1tZRuFQd6uIzz9uAc&f zT?GO|Ttx%JT*U&DT_pljT;&4uTonTIUDW~$Tr~oVU3CIWT=fDQT#W;pTrC4zT&)A! zTx|l|U2Ow9Tpa>?U7Z8_TwMbDU0nkQUEKpmTs;D(T|EQ8yZQ#sx%vgpyM_cVx`qbs zxkdyYyG8|`xyA(ExPA?MaZL@l-O~ag?ssyO#%2y4M6! zxin>x(IOy*QwLpZ-Sjv4w?LoAf4%5SFlO{%%MEU{9mW>*cdPAUs? z2o)|1=3PoX&u4yByOWXcC#`&at*^eX`ck-MTJ5+(zRNyRdcPkaTcqL?<3=%3;tPda zG=PqlwF}w2A4r95qcaM}`}8WOVZBLR=}v0-CQA9r3Oa7jmy}9J?fYXG#i)sI&8YM? z_M~H6UQKG{NlI^xpVDjih|+VXCEJGE6t4X=QU&vq%G88nEOMF^cQMzIhey;(SsVntZh_en;U1=HM#aUkONMPDpCZF;d&#P>k8X(Q*A)B~o!$ zTqiZ=IjLCD=xDRnQQYZQ$v1f)vh7+)`MXe-Y?msL+M?B_9dz8$JxHNr{F;Lk-RWpe zmQ#8&F4EBgXGzt@26UBYkG|3YecYRuDO}_iq+(;8OvMqNNPhNQVFz5tZVl9 z;uLp@PNj%$U+x~K98}l$em{NhU)J}2`Gpj&qgE5N>QIf&H@a?B8Vw}d5Pgm2X!W~3 z%Rg6A?$c|vLaQ0w>A2Z+%FfEDx^4@WP~6!w$(HIZoo^g{A01mjzH_v#gRTc__4N%5 zp&CU7*KH|rP|7j1`n4AwqfJ}#jopn>o~rNeE)yx`Jb5WbB7;=! zM-AjA~n7x#a*cT^IDO~7AHTc0oy4rGj*RA7taG!%7b;w|BG(T zV(NRVNnAQwCat7@|C3W1Q$0zb2W_ZqR!QMmQGZJIQIZ0EG?nI6+z_EAoqU*k}D zzM@-|Pg*t6?PO|Qchl)IcpIB?-&~(%wIY<>sj*ZB%S(}MwZ5aatta0ty0>4f%fMbn zzR~nZtHLF+{h@o7*p~4+$!AC&Qzv#OH+*Xx; zug9fr6r-2!XHKo5qs7)O(ts`$&cB#cp<)y+?Q=TD{$*sl6@|ie9Zu?@_BDo3S>@L% zv2KBX>`gJIG^6y&B&HZ~wC@d!^ws%(K1#mnbd0tuD3!4d-ttQzTY1;|> zMu0lTOs$q`-vLP}y*YYhS?LI+(prx!+vu4?Wj(gYj9-OPDGzK-WpE%8rB^93se$dO z?6aMra7(nUj<)S-N8x%Wq?GGvHCwj~3v~H){E?0^p#Z7q`uY|uNvSl$@3E+yM%_(0 z*ssUvn{rUxo(6?0_LNlHH>8prr*g@sZSSx+s8SxH$G}hZna9vqKd-)1%IR7+TDN~c z>2Tw9Ya2zkVUKhznHGskXx;%jkJ5F?mQ0sly&>fLpbF(aK~++pPLpqfE2N4YB~|$% zozXR|qV^)+6#8E6bc<}8N>PkMb?F%IbiFcl-*e+MmGjSf?lM7_{ZoA{r|S}W{fS~c z>qRLy+Dk{Ppi{}K>vOe~R2pI76r+1RvTZy{asSv!zO{AP*VV1cLVY(j%1Al*UFTrj zYl>S~`&Q9?V=8_1Kj?d*>^q8aPLE^v>h?aLzP{0Qz4}8RT|$xdTy0tgiqTW63R;cRc{!ll zh>2PaNk?(lX;n^-hsLKQ-yd~-ZlqPL66D)Lt9)7wE>6CewOXZBkFw-@QmX}8z0;~# zISQ9Zt3$f(-qJNYpDyPYZKxjX(CxkR4)WK#QLFB{T;}AZ7+rFaIyZ{y>0~|1eN%w$ z+5&}0)k#S)Dut5mslEpThp6W4Sw=ay9*JVK&?&d}P`K{nD3xX@NFCNOy6QW$O(%-6 zLeJ>O)uxos->2L^{Do2}Ri13`uaS!R2dQ=!DDFl*gFJxUR;tuqX*EXA#=_fC4r&!6 zm17L0vQ&?Amg>>XpIOOwp;qy;k?lzR?1)L^`stcBvnI??^n;I^lr{0 zRZ3s2!uncf7))`a=yknV&ndaOCtF56W3JhW;wCLa`5UGCJYz4}*5sfvxTy1& zvpc0XLg%XCe2Q@s`<~R*|8*aQtGAqdqn{=9R*ygvZY5hMJ(fCimr|LlNBVuSYfz=U zNUN|gI>t^tl1`ypz3hD{MoHaL=hZ!N`u23(ar$l?)0xh<a38>by+UweGFXX=|OAquD7& z?uV30-ocdT!@B+*6cjGzEAq8lP>cyWr|&0FxO4hwA9bC4uiLPe<0)L%6_j3oIKCc*KU+m* zP)Uz+r!6E~_AQiy(Yj^Wq}4tB3?q%Ul?tc)U9UsxQesN)TotlS(5v?2b&I}B-@jXR zjPmCx?iT%|YrjpYJj4!ARoAlU7AbWp%JV3FMu(HobxWdG{j9?jx4gasn(m>v4Lj2@ z8tal=qSYi__Mi1y)pyM)ZX$gT9@Wnwnh&D%3Txjl+Be2bI?D+tEk(OO}eb& z=qJ2SZ_>GK)z4R(t|Z%2T{lYUI#hBH`IbLOd48r>y90&EH+ve&!DD^LhwHm%hHkSz zjH7THwJlXRm2SCdMpD(k-cByv2c2KG!V@+{X zs_H#$aat-5X8B5W(BYzuFvU6PJ6ebP?mP2qI470M(l^5x8}G810&lJS$8jG^Td<@3 zg;hkAgJ8$yWAJe~FW49>-pZ8kjkLvQsh*F(K3t@Ueb&f}N2-LdMV4yGFdOgGIKF8{ z*&?n~p+oU&N>Vj|N+DH(;kHOC)g9O}OEnm_AEhdTRPso*5vdfCs?TU!l#puTOe(+W z=)qJ;o~ui$VHs1Dli|u^ey&va)uyNJHYuy;r#1b*2t;tln zmgV*vBCfQFB<9!q*QpWV(pCavBvr4tzRbXrIAvqsQP@?Y>IUaD16BuBd%(7D=YG5% z!54W#t;+Ik)cUN_bEYE$sFmV8|C?i|oEF5W{_lA%f?0>M1uNa(QO8rra^dqhjxtUA zxAJ>|Qp+rDX)&5pstE2&)e;`SS*l~qjca{XT$2CvJYGLD#E6DFg!Zq2498{l?N;T|aX!|C-+Kas6@Wbc_`bSg5(=pKUJu=jKb}jP2v91IT(6{VvN^g z(N}to7)`GnFPT9(n5kFUmuWRxtJY=dXsa?($`2Y-yVgUm9(}t^o!X?%X!>SS!D4Kh zOSO*MFupQepT8ZK!*N`vrB>~bbG1}mGiFl{apN`B$!A!Dnk?&v=uf_xYf&5V1~UTH zT4X6;ikUJTx0oZUnPRE5@rZ}VIXw0WHsYBd$r77o++h1V*A&G_Rr)5!x~K|Qd7LHo zN?Y&z6t{Xt8rxdcO>tQIuI+A#vr=(RYu2ZBgYSUuSLxg~uOzke7%7g+W#Eje?#h(c zHMYe=sg_l?#Z#%?KB6(#A>8q*#GmL9N@VOUQ?@gh*(lXDwJBc9xZ@YmSq9t1>Kyl@ z4A&D+C{<|`z-|XMN^|zYs`RFh8ij(JKUGTxV9u^oF|>)5 zrSBh8Y*ACHS@)C1{^IH_EdzOyEo;+|BMdQyGK3H4ao-qfKxopH`f8E#%QyelnL=j5cy zFQmBXv^p>qGXfdzIOd_Mc7{wN+eeHnmF?0iQ+$!(oZ6&py|BYYsY6(WRm!Dj)=9#s z4vp}WTCNqJ2e<9dTjSftqnxXi8lwy~b0~U=a=_s@?#ync@X8qXx>9@3F`{DyT%|Y0 zutXFY&JSBGsrWqB!Z*IOl?~V;iB$1=P)!_(y}v1?ZEteQOHb_NRp&b#Gb(j`pP{u- zDrIK_-;r?6V_+g`LAoZOd2-LVqzuegRgDvlx(>SS!JW2$h)=FxGl)FM>^JL8lu$E}^l{@MZuJ4Uel z1+zJIZH+9+x|k!XV{i|~zHHlu_G*)ik-{K_Vcl2T0<>Yu_lvew!R?}K&iq5Edbod; z%7;FFhfHre)}{7IHFA|Hj!0D=>XcMl;Co)GD=SQKRjSPJy(Lw-9hSH+72l0c|NBDP zxW}%n?=rsg{xjU)`)Q8B_cXT=+-`7d@$ELk$;&&LE2oeDB9$`&aE*3a6{oH9O4X_n z)d;7rjUsKoq_RaUsb*rn5MQe51uT(7s_+IB!?}A>N?Rv9i&j^)S6@S9k+ztvO_4*z zz&sM=C-o#fsi*nMQ_-en`^bSlr8^&NF8Kh<5c0I4*3j2Z0y;QNU0Zq5tmfJg8= zx_Oy}<^jRlrk^k~RQZcDm+oIqnUBWD;2v>J2SYTJ<&yZV^|fDh+TG^T=Cr#?Iqj}e zPP?nr>>bn-ZIb$WZ%J3DK>ZDcBZM$SC%zpwc^Gxbg~29J?=#KUV8yi!@KzAbvl z7{1lU*IYR*NIz-g^W`4wM?51KB7L2DuWBb>86FiZ#h71}>5y)8Zafy?p53{(M#=QJ zkI&tNt_R<>e6Rldo}K&ia|LWMK^`qF?%yd={pUT+qxxCWw*ppS7f9u-ajWZbV6-ik zN?RqYaj%wY!eCo$lxhpcyW6Fji8blHQgwtnEY(4TJ1NyxjE2ui<*bTdk;+*WzbTco z7Jg4EXD$4(RL%)rx;VDKd%Js$cY6V>)z*XhpV5&XWZhH%Rm*RU5t zU88Df*L>1;FQF}>N_7BxiegLE70Jm{vY3w=}=bg#xWeS=i&C^3w7>^{_Li+9H)qna39F%QGq- zwR}GxHB6pIUd%+)xaq1^NmtS_9<89eqRLR?>u6-Vo-MA1ubQjH$!CcSG6!34TOylO zJg(z)Th1Ss>EIRAQfJKft#S@vWTeJ*<^H7Wc5AvRa>=7{?s+7*8~u@ru@-A1`DM6T zyXf4iEumES8ZE8KiXT)lt6)!q;&-NN&UvnMiAsZW&-W_l zitqDQc&4sO_nB6o^z}%E{Q~Ow;D4US;=i3oyiat#pRrp`t$B>TVTu(pT%668*d*0U zw3EA~;{3JMZSgqW7B_!J=h0XDF44Z@@P2@5y{l6(jIvt2EJ-o0l_r%YC!KGST%?9-+eWP(X*DGWg*&Cy|DRKQ@$Y|JrZH#G8pWGV zhBzzh#`oAcrPi+Vp{=_lZMU$ld|fK%>6}tL+TZ;z%5s>dBvpa zwzwmY!FPAB+opIZZO(eOnn&^OiGoKg@m%`GKo9#?s_R4P>3=r#AD^YI>ReJUwW>ak zZ1b8^?>ufbwE`2NY>e^oO-ilqYhRv;IQO8sd!j|hw+m&Adzi;7)!@A)qD$M2Uv2T7 zRCUnqs&NjFOX}>vegWw#pi)b96Kkcpq~h^kun`pZF4wV!=gdp+Jgp*=RFmOGo~CPAa4q?EH)yT?FFa{g>qEKmv_*}>It|Bc zOvXK=!`;-r&M&#DvF(GOEYVzs`_PPPPJ3MsZsF>y9&ukk^5wcw@f3|W5~FUkk*NeL zp&h@_s(m(d{ps&ogN4cx9!l&|*{3zABD0;LR?6^0!V^@wm29H#E ze9t2&9x?LDBG(Nbhw+Sn%YgH;vmCA0aeXPioLb<2+6x8i%kDQe#0YsFJYwV$clK|n zJuxj-;pw#uH!znaewAtv#t}25nhP~gs#u7zM5=O=#MftIBemjZ{%dqUvqq1gEPZ!7 zyEazJR2H?f#5$?Iy@x8sK5Ex^*VWwRRIe`UReK(R)=z4QEiz?iWl{CD&dQ=v9a>WV zJ4E->jkS8J)y+dxbN0LNom-h+Dzp|#IlZ$|;Uz6`K>G3>+81NYW72jw8|Czqz6Y;e zp>d+O2IXoGS~Hcu&AMIdeTZu8&O~(o1{>ubj$(;3@@TW(z}HyY8XelVUJJdwUpkJ0%S zZ9-)qFTEvRN#9`M*v2{KT$xo(@j=FIg%v8*)+HW+9s;8tjI!$Bsj5`mhVhvn)FZ*9 zdUbj=>X7O+c$^q)mbFQb4hP?%7*k_XX|zFms#1BY?-Xtsc$~=UKSzv_Wu9|l#Hdt! zj2M-2_K~TSd5>3my(5a(1M?6D-#d*hkyysKsl$!Yqs`dw4Dr46b=tagQU#kQC$s75_tK->@g=B@<-9mK$Rbl= z<=p2vq-|t58r$XwSYK^NunR=>F1#=8JH12gEvET-Wn5>sO=+pJ?k05%?}Mp*U#$9L zG*?lEv!JR=wHtBkO4S)L8cW4@av-CMO<8ejKO%+)3SCKk=}o)@&f&R02C-##vffZev%N z499c(LVL*f6Ry6>>7oUc7k*;L`QtGIk0TzV<@!aYTwU*D?+sp6fW*>`8j<+8HORXOMhtwKc6=^Ts)7N!h#y!|wq@wou=E41|Y8}_pgjkzfBx~5c+@zLa zMNZjDU=2?xu9M%ce{J!$$!eJ%@0i|rjn<5KY{uzD!_J?LGRC)4cAj`{m*MhmqBeqC z2A*N?>NNMi+$Yx@Wr)2pm0?RQaagL1D3{-*I=ROZe@Ml%n0tRvskzbDs`A^qm(J+) zYErdI;Ayjr`%JGAzsyTHefOIso=D$Q{i$8cIDl07X*APpsh_9({223n8G}5L`ZGA=(=ZMO|OYoyIz0V|(Uttdw-j#g>v zTOyJ4jRloLs%CD=eVV%D%g(*yMG z4&xAotAakcsSL-x>7x?VdXL&eWq*2&A%2$O4r|3V=gkRAbdbKM6VX_JYZKQJA4)@w z6c*wMRL;50kSes7B^FD?*Zk}WtnW%2?*trhoXUW&Ot5-TYCnZ@ zuK7BdigV4kNX6HD<31e@S6_u&R>Ts!WVmZu@zv*R#P#4muf8fjzWPt})j!pTu0H3v zsm>|qkMqnq;Pd6Y{AUgh$UHms@3>T)gB}^MlULeaVh(mms3bbY)mW}W->xqm^l`Z!aEr+;VHWIb z{v?ml2)hK-nijXGT-$@StT8iEuDFd2K`Uip^o!rId1Q%zRGb4Ymtc2U>9*8{@!d1< zDvc*k&Z0R9r{_E=R8Om(T%ghQVXS_rvf{eo?Eh0O!%Mwa(uL;`>OLPi&JuBCPA}*u zKU`K^8o|nd&pZ~swxy2C?KAfp>nzIsWvvqHr{;XuHa=;JBr-32uX6j6xdL6I3zbRT z$KDTh-D;F0#VK=r;Z}vy`}b$bcK}~YCzX^k&s?v#hjn^W)x+|2<9^Fo=}0f*4$`B7 z4*jSt86TBYT|7xrSBvjPXMaRi8Ta5Ex|WANn$#R*m)j%ks##cZs3Vp0 zCQ>7*J{Gb?3#sBxqrC7=tcwSzw_mOm_YnL{#A&_T%2asYQm}nmk1)3AEW>&6q@ll5 zE4`)|DOKhcRL6_seJ0i0C)H!A&)DPjwdL2gj;Yb_%ebYmCOBCtu64ZII#`~a_HU+) z5iHN?&}Pq)?>|Er9Ex@^@q_U4^XhRb|jctKYs*D?bS_j;mwnyadYuKgA37Om1vED(BtTsU0u9 zjp|0eS(GcTFTqNe`|h@Q%A>C3u?dv>U}t_K3?mAe`}tV6y(HBbeSf6K``9WK=ZT_f z|Mq5}{H5GSZQ^p&uEwyugWd(W) zb?7|R#D0_M8r9Z{pS$G8$UL)5kMH<0Xa#Il)XI6XTu6rFXD9qTh2KEoyPNNn8cXQ8OR34`*K%eXhg;>Qs}Rihq>bO@ zlR0=+nN+ZFSwpFuJBNHLy_-m{oJ@~X>5Z=-tLOHdEB2j=@7?^}cQAJOsH=JkUtX#r z)9Z|sm2%#~QHrlenZIb)+IX$F{G45}>RufKrJhkaZyl*)IBy*(<d0gWlR-L6{p1tij%2EvBFF{`AFfZXNs-ozyGu}c+}hr&ur9vnNF|a@$Q7dt;x4OX1FRGuO7X_E)Zq={x0>1rJqor zax^3DO62n6XNz24f|bEdJzH#9h0b#0pLC3w+0nDhrw^%hJq>325#u^%hXQ`}SSzk! zTqlp=YN_+!8q4?Z515;(D|j69Riy^KqPzsF&%yH27_Gu4nHN6uMQQQ97HQ+U#yRCZ z>gB@eZY+)`2r8%iX3o5ysf73q9*(iDizW8SV~o)6Yn;&ag;SY}5rsN8POnXCLmZKD zIpys-FIDk&p?U`}`p*>Zr0&J}EV=z-8!KnLtKPVAM%;x*J6DVMk#T$VUbkl4PO>kz zX5UUP-yqr}oMn?fx>KC9JSEGoCPwZiNvb$+(7dOw-&H+~mo z=Q2awkm>c-PY`&g7}qPVIegvtowF~x=Uj!Ayt^{J>UcxpkyJVGTMMeTJMZc%H3Z{` z7t)vS8Rwd-U0lw*Tb;1*4v3zb_Fnd==<8tBiU|){G`?P|UF2CthY%P@mzt_8ViY>e{2fR=4$UMru zxrSo!^*DhwEmhaJtoSXVS^BE-8@aEmQv1Sr=Bvur@|=F&&F>Hu8c$_^OREJ~!B8c{ z&yTpQ_?`4P`h3rH#hgi=CAVC$bq~Qcf}fnRs$2^*DjCvlmcwYg}?lx|tx5T;S=XRV+ zZLPkR@wQMs;2NIp3^OIsHdY zsW>jD$7R4aRvd$K73{cOYg!`Te?11r<({2W;W-4)HF$=>af=SZFVV|ma9loLPMP<6 zJG;14Z}8nr>KC{-or=9erDS@~uoJq1R6OQNqkASUA@*ezEL^Y{Tta+C&UsXm$8~-W zUA2k4|2}#HQ#6#mJkvb1iOz%XykN6v_Kh-zYM8U~)Lf>=>xujhYJU&4%KQ#0zn98y zqXvu1;W#eG;L`Z_aXChdDs*r0+6aGhfXA4;(!nbyyuJ}ET(I=`xI6T&-SXJ&s#ZkU zmvi;+Q~vjHd3CF$9)pa-8|$j(TwX<^NM7^cH7#EI%8c(de;uLd^(L+_(Xk4qR+)JH zir2K7;b?7S9ddRRchah-RGcf$0oP9cPDjn}XoSpfXgz&F?{7J8Ijj9^DY2KNpG=us z^alB8CD5tQ!=-O6+!g8zCC-YMvf)+zuPTjJE3rnVd`D~Le4j?yobS^p_2H@^#>$jS zF2Z*@q-wg5)K3^+O_R1@Jx;LM1kWmi%^~>y`1V{p*l5I!mEJirFW(-Q1e?cm?s=?I zrkN!c$@Dl^*|3hT>I;twI4)nAs~BCYC)%v?-k`e1>G28y&-^*}JgUEO82hheUM_0Y z6l$ZiWzmY?Md6Y3wCmLBRgXfs&ur4$FumvFxvorw-}P|5O`y(_cZl;FEj;$&Rmp!p zUUO>aVR>AB%Z1-MT8CVnl)m523*W0La^ty+jFB-Hsl&g~j&2veaHYIXk7=UpJqJLKxyS?$w(l!8ZYyc)`1>uIr# zzN*aoLAciOUIVUw{B@2@7G3jLZK?iEPeVDFbcR&udbD-2{N6XDFND?DOy3YX0j0hd zv{Zjdmh;l7t0f-DxLmrtO2_5QHJi)1`D^-q80U|3RlPrbzN>XA&9sfrgU|dW){s?teRYiF6=|x#AUJp2H?Z@2u7*xyEum*i;rha}BF@2~AS-tqj%QTO zFlRC+{pWfFuM2Qb%r%jpb@1~KZsFL*;ngx^8ELF`g`2C|E<*9V}i!uM}aQq%s z7~VT6CeJt6F`O@;tG$TfJ7^y2y!oPRoIg&FV+0HL-`*drD0A@bxWV%GzqWCn|JPR` zSWbIk-<3cdVzQ--qf7<#=TZx-A^Ez?V6oaKL|4T!RlNqztC--qM4!BXb*{_lq47L(UxoNv)glGlxA{=8NY zEC#<_7&{4C(P2*8&Z~pYxlNbpIcly{v-H<`hUz)p&mU<zvyx84c2 zMTX>B}}}ZArC%PF(fAGb{cz3g^w;12XP^zFDkn!F+?YyTRJ_?~$^4 zdpX!w8G?QNhhqf$J_El){_XDyabEsuPXE{8{#&1XOqO%7F9QV2!T+Y`bjnn{qaEzc zdw$FQ+wazMD*UcKUypCU`_J$1^V|JSO*|t@!%-Kd;_rd-4(zmFXdiO0(W~>mhWf%) zeEoEDmTsHa#{DJVp~2b>o@?-G9?vg%Wg^%c9{)FNF^l1SL|In6j>&KEe7g_$_6j|} zz4Gl6=U<5Wr)#ulagF|zd2XteA8%bgkhV)7Oz}*r`wwaFIj?Tk+v|@N}qB7Smd3AENR`-wU!#yJ zLjp@wmTEIro@z=}1-AOihCQU5o*L5>%0cU=JhtU}aB2ySa-G%qrZN@3e#(=mAdLk3 z+@zK5GaVw%%i75p{LCiU6Tszo#;0a&iLfJHsSen!t`tA_<7X59t;bO#OCDo7zj)C_ z=78^oZThYAU?WTRb=t{ZGOnWrNX7NuJDSF}4fD}8clLt}li~Pz1wTs&_Vs?}msHd< z^*IM=-6FweQcu?6i^np(0Tp2zFXtNiZIfpD9dgbUKPh~SRHn$dL-c!)9kNs!3++mmyC!}hp zQ|45hx0rsHzRt))-RD#F8YqW*fOg}u3|IUoQ{0g1!+5%X->#!OFIIUvkB3^d#!B1Q z^|dB+j01Yjt_sn+Gdu40dosJRE?|N|W=bWXQW6#I;jFcKy ziCQGCSNu(Ar;oZT&xlp983E61c%AT{hT}S3q@E=n$)g2(3wuX#TfC6IXZw*VxXlvp zq)pVp``suTA=cMM&n{Kx>F8^vN<0={q?anD*AmI3+Psk7&vQoWsim!MCR1dTibscr zw*Av_BDePo=Ar&!?M#U5XvbAeWL2RC)lPnLRxAxYZ3#A7;mYO~vEVba8B9ibU^~i8TMSWiYssUV6M1@bNXy}U!OCz|Zh$f=I(%2UjmL_mb z5goQr(bN|mmS%8G5d;51MRQ+FSX#g}MNAP3mTvyouyluO;{S1ADIfhiSSr9ZMQjll zmWt8i!BPpXi4gH&sT@54ELGs*`HDygOV#M%uvCMKH|<3tSgJ=)3`-5Tridq!z|uK- zQdqjcHIYg(Sh_|}4of$0r47*A$6GdRXoz$NZloC6j&TvL26a>5cLaV}V5!o_>=;wM-- zB+Cs;N4Ta)CGx=1DOp}vI>W_xPendhx+KdFOINtqQ6UPzayfZHSgyb|aaM(338W|t zOC-3aNGFQG5;;XtSfao+ah}CsiJGD~EYaYaB7-OaOY{^aVTl13cbO;!OUx9dVTlFT z6q!UBSW=`Y3(NO#O_W7BSazi@56f=2rpO{Hz;Y^eMOaS5HBma1U^$bzGAw7|nj)L1 z0?Y5ItHN>)u8H!h2Fv->)nT~+*A&@B4OlLwt_jN}xOm%9)PiMDy4tV|hKnygh&r$g zNmmz^p>VO!Qq+TGSi1VK42O#^&Wi@Hj7ZlImXUBxlyW0jMx|>E%V@Z!$Ss<{%_Ew@ z%_~~K%_myH%`aNREg;&$EhyTaO;Z|a2tqKa2tv>a2ttra2tya zaGQutaGQ!PaGQy3aGQ%Aa9fC7a9fH!a9d$pwkduV2jI3Ahv2pmN8q*<$KbXTC*Zah zr{H!FXW(`ezr*b$&cp32F2e01F2n6AuEOmm{(#$E+<@Cd+=AOv{0X<0xC^(pxDU6F zcmTJrcm%hfcmlV-cm{WXcma2ycm;QmcmsE^cn5cg_yBjP_yl*D_yTvhFz`Ly5yFBy zQn=ub5+QI$i!iujgct5u;fFg;M1nhBM1ea&M1wm~#DM#Yhy{0&hy(Xm5f|=c5g+ap zkr3`wkqGWIkp%8^kqqt(kpk{akrM7Kks9u7krwV8ksj_`krD1Zks0oMkrnO&@dMn2 z;zziPL{7Mi#ZPdTh&*tA6ZzmS6$Rif6NTU|7e(N%5XIoG6eZxU5~bj-7G>bB5#`{n z6&2vF6P4hu7ggYH5Y^yr6gA*(61CuN7Iolm5%u716%F8S6OG_*7fs;q5Y6E36fNNH z60P9w7Omm#5pCh_746~f6CL617oFiA5MALO6wX(U4~d>|4~yP#kBGi-kBa_qkBNbB zkBh-@Pl%y#Pm1AiPl=ImPm9rT&xo;b&x-MIe-{(so)eSco)?qhUJz5^Ui?24-F;k> z_5R0ku4`-)cE7P37-NjxakDYTATlE|4-pX=nVETvh|Gx0jLeLPkjRY8h&*OQWJE;f zF(Wb}GczJ0A~G^FBO~&V8Ih40k-yjPpXcNK`0U!S?R)e2ULy@_#;?O#@Mzc${3fgw zkA=12w_)u#8rFf|h3&-SVY~4Au-!Nowg-O*>%{S}F8ncUFP;eN#{Y%&;6&Iy{3&cd zo(wyHKZhN}Q(?XMOIROHhV|pGVFNf7Hi*B44dLmqVf;Pp5Kf1U;2&X!@l4ne{4?w* zo((&Oe}#?WOxSV!J8TSR!^ZKSuoHMLYy!iClPCzMP!uLnB1~bpa2ln;G|GfCC>PG+ z9AO3{gjtLf&Y?mO_)R;dAVHNNMYSMDjSzuaL4i6!g?d4Q20@2Wf&q`hHjEMMXcZh7D>%_6xG_%fqFqSBcp(KHf*%uv06K*rx`hA#{Xe&mi5?*fy~12f z6y{-)kd4Vg4yFk6(I+fGzmSWmLLLT$d`uGxFensay08#KLJ?*Ni!f7IjOPhUFiTj9 z=L^eluCN?05Q=f0P=Xf9>Hm?MpG7gpgV!fIR~tigW?6__im#Y=^C zm?x~q%Y;hI7pm}bp&AQ>8oWZN#X_MDuM{@oLSYkLCDdaP|BNZ?zpw=t2@QCS(1?qL zt$3}l4VMVp@j9UimkP~zz0iWogdO;Ap%s@4ZFqywj>SR;-YD$E5@8qKB<#jgVGrIc zbm9u33vUtj;!2?#Zxwp5OxTCF3Hz~JIDoec2XU3qi+2cpxLWAPJB0yUBMjnQ!Vp#n z!+5uF2-gZDc#m)x*9k}PUg0RN7mne5!YEb>$MJq)46B53d_XvX)xrcmD4fI^;S_EV zCb3qS!iR*@SSL*5!@?QdD4fMdgc;l<%;KZMIjk2L`eBa=65K3E@o_6q>5zM$vh{mS{D{dET_>5r3Cc%Nv3QlYm-1wZ}#TFq6pBGYa zhv3H-gaEb*L3~jNVVjVNF9})LF3iQ3g?ZQ^WaBGB4(=4@=V}GM?xj`3sv~BP>lmZ4Spij;-FB6 zp9&jsNZ5p*3H3NEY{t)pEqF+1z%PVG91*tSm%=tYENsWGgeE*9G~?Go3mz4A;5R}m z9uwN|TcI6Cg%12q*onu5UHHAQ8^?q__=C`i<3bnyDD1@(LO1?T=)nnLAO0ll$CJVV z{8>1Nr-WYoMd-sxp&x%025?Fk#NUJ=JS`04@4_LR7Dn(7;V_;Nj^LldQ9LUg!@q=4 zoDq)W-@+Kq3gh^Xa01T>6Bs6*L_s`-qBw~XaSFr5(2xp)@mh%*==&SIo^ z4i%yh&iXG(P$f!HEy__NMxa(ypiWewUeusL)M1opK%;0xlW0b>7>yRuiqWDCV?;Yz zMF+-;PPB<`j1#?R7n3kvOhJd}#{@BePBDlsF@$b06Fp)Udd0bzD9*zqF&mS`983}C zqfcCbelZtQ#XJm%`IsgaU{EZ?ba5eu#3IZP7h$Hj7|#=zV3xQP&li{BTyZ&GAQt01 zu>>y^OEFtqfftD@F-I)Ji^X!BFRsE%#MQV!T!a4-D==4FiO035saWh^mZox%j170IG;$m?tUMp_HCE|9xPHe)Z zVl!SZw%{^x2mV`Z#pPlf-XOMPvDkq(iaW7H+=VxZyRlTOc;O*i;TqXA69bzA@7W?r|aRAqdgLs!Xgcag2-Yp)&wc-fgBObqVNLu*XCRZWg8ZxG2XhVgx=RDzHIR;gg~U8$}&HB^q$6 zXvF`BX51!5Mzmv-=)h-1CpL?2d`|RYir*uERcYJ$@usV!v30AB)vEAlBd~Vl57eb@-{c5r@Q0_?cLb!{TQA zT-<_(#0LCAY{U_9D}E_%!^7fs{7P)XBVsdtEwAZ)gLq2p#b3leoD}=< zS8)KR#6kQ`9KzG$F#awc!f9~?{}2!38Sx1IDIUeM;xYV79K{*&IQ}h;;jB20|A;5> zoH&7Dl9MP%PN687M2Tby!zHItDw#%^Le=EOEhSZ=rBrRK%>NnCW#r%l4!I@tQak^VT{C%R*3^+B~G+S+!!bE zqFs`N@sbpDNc@-}37}IFM3*FlZb>G3Bw6T{%*8~>JWP^gW3nU%QzY|oo@4=DD9Oca zNgiG#$(Ql}nIS8xqyVpy6k?HNAuf^>@#r*`AJu+J*tFcqEhRPerypvRr-$dq} zWG(qEWZp^Ek>5txqbc_-OO{ur5el1=1Kka;JmCx42}ILT%lmTbY#B@K8;(uiM3wsOq~GDjraa6+;j zf08ue&yr?5C27H5B|C6R(u%)J+IZG9GFHReQ4H@uN%&3-58s6e;k(fpz6V|5o#+nl z!sPJ1m=fNNzVIIOhwsDG@ckGFKY(fB2Qe7li|OHg7z*#ljPL=>3?Ibv!iO*`d>C&H zKZG^mBe)^_FxG}2!AHZ7;+F7Z_(b?9HiRF?C&S0EF?<}K3O|8c!zb`R;U{rh_$hoY zd=gv2r||jk)3_si8ea%MgD-`j#rE(Sd^voUccTOO9K+Ayd*K|m!+OId_-VKlhr;Ff zS$G5vhb!cKCxonB;VS$#T!W+GI_lpcD^<7wC&G>RQ@9yVhDYPi;Z{5oZo@yr?RYla zfq#WNaVFf2qSTAg(j<(Lrl3{o$5?3qZPFmdNkizCW}-)$#n1I3Gf_Ghlce)7S(=S0 z(i{v(=i>#^1vpQdix*1sFk70BmrDzc&~IB zR!NuR1JYuwmX_dVX(>J~U4c8LEAdrn8SavnUSJ$Wy(14=8&-N+6ots?gzJD{|hybsv{r8W4gv=*nNb@-cfBc7ISLaD4C zBV?N~Qnm#ZvIbPj8c{3TiaOag)XTP`LDqy(vSu{NTF@-pffiXSM$6jxxiQEmB5TJu zSqIu>JJBiIg)Z4{^vL#LK-P(AvM!z#MCOHTFNS2@m?7(-o{7v0**vRcaaV~*?q zUMxF^^JTqwiL4KcWc_%xYycO@2Jsr%5H6MtqOo8{yR9Gd`-~%!pR?7_dpv;IhGBa+F zMPseZiVw+bSSPdNqcR89%bfU_%#BaVyx1s9!e?bE*evtobFu)o$b$I1EQC8`nfRJ4 z3-`$8;_I?`*eT1#H)J{3C7X{2Wee~NS?(OxTV#&Q@^D<1k3Y%^sGmT(5m_Nl$QDxh z37Pw{BJ$73YAjoXzsMF-nMC>o`4SZ6OHm?UhT-z%D3up;jSQKs@)FFJm*Pe86?n0H zC6CTWX0E&puaK8xp?noyFJFzzAu~PlIQe2^rbmupUgS8H%aHSF|+w zA)_Tyh!Db_Mdnnbg!~*bry`~Je54$EBO~y`NCoyqs_>&o4faRs@Z(4W4n!JpHqy*1 z{DbUSifBwxSgH7s_fTOYry}p6!cI;@`U-`EoQ|xY3MV-O=_?d&yh7o{LPZi@sYtoMHjCD01<6MIP=@ zHDqinmXlvc=A)vR{06cjDN4w1BAu$Dl>8Pl&J`>0BgIPWSCrw$igFxKtin$et8q}V z2ER~L;D}-^&;1e^^NMxkuaJ|PVmtK7xrOKIkh!C5K#Q^wW0hN}+mLyr+(xz|tAuhp*@5(;$|kZC z*;SRzWH++6DqF~2r1MekASWT6kFu4Vg7m1$HuNjoF;&??J%H@R%AMpOvKK3NkweH{ ztlW*6$~}0VvJ5!G!CK{Ed`Ni&>y$_F zVdXKNwGlb*C`ZYgkbX>g9JeXQs636_15u9SGs+X#q@2KKl_#-Tc?zFXPGXC4itC?8 z#<21wSv zDY*|BrAj&ZV`P*nBk&WYg32J$dn;AsA*AaEm~4PwOFuUbQ1hV-AR3i5K~o~LRpxftn4RqMzlNJpw#kENd5yZb4RriYgC)4Y(VCYsvaLwZKhI(%pKJh+^A~6M^uf} zHz8f6YAe>Owo!QunN6zg__(SGx2T%&2~`U=sCM9!s#a`Nwc%5$cHFA!;JN=n=AddP z`DtVhs&?Tss@+tYkU6N@LvBWP0aYh?CvtjHb&+==rzh23@@}MGRdtj1Al;g(hun$u ztEzqEE~FPy?I-U=PEV=>gJ<6kcWSpyylcSJvt{x+skX=AMPPQQD zDfJ0*40764Pmp7g{z`q49EXg2^(l0yCow@ig--QpOjJ)}lKKoLtIwiOJ%j1$Sq!Pq zVWyg|%)`!8OK_fAiWjQon5~Y$i_{9tQL7YmUr6_**5IXT9hE#}oU0AwE0A%nHj=MI zx(l_Ld==7NsH4eOBkR1{iWO=b-mSLdTD1f3Q9E&++Kts}FV{baj8b(Hc>^-`)G6e8 z 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 literal 0 HcmV?d00001 diff --git a/swaggerci/eventgrid/generated/modules/Az.Accounts/2.7.5/PreloadAssemblies/Newtonsoft.Json.12.0.3.dll b/swaggerci/eventgrid/generated/modules/Az.Accounts/2.7.5/PreloadAssemblies/Newtonsoft.Json.12.0.3.dll new file mode 100644 index 0000000000000000000000000000000000000000..6344999edbb35cb0ca89a042286bb6c6d4ea963f GIT binary patch literal 702400 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⁡v#GnNyNMo#_0Z}g`sov( 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 literal 0 HcmV?d00001 diff --git a/swaggerci/eventgrid/generated/modules/Az.Accounts/2.7.5/PreloadAssemblies/Azure.Identity.dll b/swaggerci/eventgrid/generated/modules/Az.Accounts/2.7.5/PreloadAssemblies/Azure.Identity.dll new file mode 100644 index 0000000000000000000000000000000000000000..0d214db71cad80555ef4d6ed83272de795d4c5a9 GIT binary patch literal 294288 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 literal 0 HcmV?d00001 diff --git a/swaggerci/eventgrid/generated/modules/Az.Accounts/2.7.5/Microsoft.Azure.Common.dll b/swaggerci/eventgrid/generated/modules/Az.Accounts/2.7.5/Microsoft.Azure.Common.dll new file mode 100644 index 0000000000000000000000000000000000000000..1c9d8e2a0ef5888c365e9ef031925877445675ab GIT binary patch literal 35720 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